HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

在自动驾驶汽车的开发软件中使用模型

  • 2017-02-15
  • 本文字数:2416 字

    阅读完需:约 8 分钟

在类似无人驾驶汽车这样自治动力系统的软件开发中,模型发挥着重要的作用——模仿及验证人们的驾驶行为,记录系统日志并生成代码。在 2016 年度的 GOTO Amsterdam 大会上,美国亚利桑那大学电气与计算机工程专业的副教授 Jonathan Sprinkle 就无人驾驶汽车的软件开发主题发表了演讲,他认为:无人驾驶汽车的软件起初都是单一整体式的,但如今逐渐向着可组合的拼装式方向发展,新的软件可根据需求进行功能拼装。此外,之前大量的数据都来自诸如雷达、GPS 和摄像机等传感器,但如今通过传感器融合,并朝着可感知的方向发展,这些数据都合并到了同一张地图上。这意味着如今的汽车不再将周边整个世界视为静态数据,而是主动去感知,并根据新增类型的传感器推断这些事物会如何移动。

可组合的软件能够通过包含输入、输出及相互补全的过程来完成建模,根据 Sprinkle 教授的看法,这样的过程模型集中在功能方面,对非功能性的行为不太有用。“功能性行为可能很容易测试,但这种过程模型却很少涉及非功能性行为——而后者却是与人类交互的复杂信息物理系统必须要有的行为。”

我们可以这样理解:一辆自动驾驶汽车就是结合了计算、通信和控制的信息物理系统,是一张交互元素网络,因此系统在构建和测试时花费不斐。每添加一个新的组件,就可能影响其他系统的通讯方式以及计算耗费的时间。

至于在运行时如何使用预测模型的控制装置来控制汽车的轨迹,避免与障碍物碰撞,Sprinkle 教授列举了相关案例:如果计算速度太慢,就会因为来不及校正而造成碰撞;如果使用精度较低的简单模型,虽然计算速度快了,但由于精度不够还是可能撞到障碍物。所以在计算轨迹和决定干预时,必须将计算所耗费的时间列入考量,而且我们必须知道模型会有多大的误差,以便计算校正。以上这些任务都必须实时完成。

目前用于自动驾驶汽车的传感器都非常昂贵,在 Sprinkle 教授看来,我们需要相对便宜些的传感器,也许不够完成所有任务,但可以解决大多我们不想做的工作。我们可以把自动驾驶系统看成一个连续统一体,它刚开始可以完成一些简单的自动停车工作,或者在高速路上驾驶时使用自适应巡航系统,直到能够在任何情况下完全自动驾驶汽车。

InfoQ 就以下这些问题采访了 Sprinkle:如何决定将汽车的控制权交给自主系统;如何对自主系统中使用的软件进行建模,以及建模的好处;怎样通过测试数据来测试自动驾驶汽车的软件能否正常工作,以及编写可靠代码的技术。

问: Sprinkle 教授之前曾提及要将汽车的控制权交给自主系统,那么怎样决定给予多大的权限,给予哪些功能的控制权?

答: 实际上,许多人尚未意识到自己已经给了身边系统多大的控制权,不单指交通方面。例如,现代供暖技术会保证我们的生活空间温度接近设定预期,我们做设定,但管理权交给了系统。汽车开始移动时,我们需要在不亲自控制时确保舒适,大多人现在已经适应了自动巡航,因为驾轻就熟。然而,从自动巡航到在人行横道上也完全袖手听凭系统自动驾驶,中间有一个巨大的鸿沟。大多汽车的自主驾驶功能都是从任务引导开始的,不能一蹴而就。

问: 如何对用于自主系统的软件进行建模?

答: 与规划和控制相关的任务是最容易理解的,在规划时需要将类似目的地这样的高层级对象转化为其它高层级的概念——比如期望的行车路线,然后这个行车路线就会转化为期望车速和路径,再根据沿途情况(比如变道或者交通阻塞)来进行相应的调整,最终形成按照期望速度行驶的轨迹路线。在某些情况下,这些概念的软件模型可被解析为 UML 状态模型。例如,系统会根据即时发现的障碍物和行车状态来进行驾驶模式间的切换。序列模型的作用也是相关的,从不同的传感器接收到的信息会触发状态的变化。这些软件组件通常是根据事件调用的,也就是说用户提供需要的输入内容,系统给出响应,又或者系统根据传感器的检测作出回应。因此,我们才说反应模型的效果最佳。

在控制装置的案例中,大多数软件可以当作组件来建模(即功能模块),系统通过这些组件将输入内容转化为输出信号。任务通常根据时间触发,无论系统的新数据是否可用,相应组件都应当作出响应。确保所有模块都能排序十分必要,而且要确保海量数据不会导致系统相应的延迟。反应模型还起到安全开关的作用,一旦传感器掉线,控制装置会发现这一情况并采取相应操作。类似 Simulink 中的框图样式模型可以很好地模拟所需系统的行为。

问: 软件建模有哪些好处呢?

答: 模型对系统行为的推断能力非常惊人,而且无需考虑输入信息的准确与否。我们针对活性或死锁进行检查,还可以调度系统组件,但需利用模型中的数据。对于开发人员来说,在开发中使用模型提供了一种独特的系统日志记录方式,尤其是在将代码生成用于提供最终输出的成品时。

问: 能否就通过测试数据进行软件验证的方式举例说明?

答: 最佳验证案例就是:在人类驾驶员的控制下,检查自主控制器是否根据预期速度做出合理的决策。说到验证方面,在确保系统不会违反约束的情况下,我们通常会使用理论技术验证模型是否正确,再通过代码生成技术来确保输出系统反映了相应的模型。

问: 能否推荐一些其他可用来编写可靠代码的技术?

答: 在手写代码时,想要确保代码可靠,就需要通过严格的步骤和回归测试以保证获得预期的输出信息。因此,我们一直强调,希望大家考虑从模型中合成代码,因为考虑到掉线或者速度变化的问题,最可靠和最稳健的实践就是在开发中代码生成阶段直接合成代码,而不需要修改整个系统的逻辑。当然,如果逻辑错了,代码多完美也是没用的。

关于在亚利桑那大学所进行的自动驾驶方面的研究,研究人员使用了配有传感器和硬件的全尺寸福特 Escape 进行研究。在实际运用前,研究人员先通过建模来进行模拟,通过实验及实际驾驶收集数据。通过这种方法,在实际车辆测试之前我们就能发现设计和集成的问题,并根据之前采集的数据,吸取之前决策的经验,以确保不会有危险的操作发生,研究成果请参见 CAT Vehicle 网站

英文原文: Using Models in Developing Software for Self-Driving Cars

2017-02-15 18:001829

评论

发布
暂无评论
发现更多内容

[Day44]-[回溯]-括号生成

方勇(gopher)

LeetCode 回溯算法 数据结构算法

在线HTML转Excel工具

入门小站

工具

干货| 四种渲染到底是啥?终于有人讲明白了!(下)

Orillusion

开源 WebGL 元宇宙 Metaverse webgpu

DPU芯片企业中科驭数加入龙蜥社区,构建异构算力生态

OpenAnolis小助手

芯片 生态 龙蜥社区 CLA 中科驭数

天翼云高可用虚拟IP(HAVIP)实践

天翼云开发者社区

零基础学Java第三节(基本输入输出)

编程攻略

java开发学习

netty系列之:在netty中使用native传输协议

程序那些事

Java Netty 程序那些事 5月月更

css 学习笔记【三】浮动,不脱离文档流,继承和层叠

恒山其若陋兮

5月月更

使用 Provider 改造屎山代码,代码量降低了2/3!

岛上码农

flutter ios 安卓开发 跨平台开发 5月月更

小红书信息流推荐多样性解决方案

小红书技术REDtech

推荐 SSD 多样性 KDD

SPDK QOS机制解析

天翼云开发者社区

M-DAO开辟区块链全新战场,或成DAO赛道龙头

西柚子

Notification发送消息

空城机

WebApi 5月月更

[Day45]-[BFS]-滑动谜题

方勇(gopher)

LeetCode BFS 数据结构算法

druid 源码阅读 9—— init 中的JMX是干啥的

张大彪

druid源码阅读(十)Druid keepAlive参数

爱晒太阳的大白

5月月更

抖音打击炫富违规视频:自媒体行业的底线在哪

石头IT视角

M-DAO开辟区块链全新战场,或成DAO赛道龙头

小哈区块

M-DAO开辟区块链全新战场,或成DAO赛道龙头

BlockChain先知

一站式Dao打造工具M-DAO:门槛低、效率高

股市老人

Kubernetes 安全权限管理深度剖析

liuzhen007

k8s 5月月更

首发!高性能数据访问中间件 OBProxy(一):功能模块及特性详解

OceanBase 数据库

oceanbase

[Day43]-[回溯]-解数独

方勇(gopher)

LeetCode 数据结构算法

六、云原生可观测性

穿过生命散发芬芳

可观测性 5月月更

在线文本代码对比工具

入门小站

工具

数据库连接池 -Druid 源码学习(九)

wjchenge

Druid 数据库连接池

JVM进阶(十六)——JAVA 双亲委派模型

No Silver Bullet

类加载 双亲委派模型 5月月更

Hoo研究院|币海寻珠—5月区块链行业投资机构动向(上)

区块链前沿News

区块链 投资 虎符 Hoo

时序数据库在桥梁监测领域中的应用

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

linux之sed使用技巧

入门小站

Linux

Redis「8」实现分布式限流与延时队列

Samson

redis 学习笔记 5月月更

在自动驾驶汽车的开发软件中使用模型_软件工程_Ben Linders_InfoQ精选文章