写点什么

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

  • 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

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2017-02-15 18:001726

评论

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

JixiPix PuzziPix Pro for mac(强大的拼图软件)v1.0.18激活版

iMac小白

WebSocket是什么,怎么用?

百度搜索:蓝易云

云计算 Linux TCP 运维 websocket

INFINI Labs 产品更新 | 发布 Easysearch Java 客户端,Console 支持 SQL 查询等功能

极限实验室

console Gateway 客户端 easysearch 极限科技

JixiPix Rip Studio for mac(照片拼接合成工具)v1.1.18激活版

iMac小白

物联专栏丨云边协同技术加速AloT能力向边缘侧快速演进

inBuilder低代码平台

物联网

Photo Image Editor Pixelstyle for Mac(图像编辑器)v4.3.0激活版

iMac小白

捆绑销售商业环境中,SaaS初创企业面临采购行为习惯转变

B Impact

WordPress 基于亚马逊云的部署实践(四)- 负载均衡+弹性伸缩

王坤祥

AWS 亚马逊云 弹性伸缩 负载均衡器

2.5A、3MHz开关充电器解决方案

智趣匠

万字长文:从 C# 入门学会 RabbitMQ 消息队列编程

快乐非自愿限量之名

C# 编程语言

WordPress 基于亚马逊云的部署实践(二)- 资源申请

王坤祥

Amazon EC2 亚马逊云 EFS

Donemax DMmenu for mac(Windows风格的MacOS开始菜单)v1.9激活版

iMac小白

基于 DAG 任务编排实现

Bingo

Java DAG 任务编排

阿里云智能集团不再推进分拆,并加大投入

B Impact

OpenAI 治理结构为什么可以罢免CEO Sam Altman面临怎样管理问题

B Impact

PullTube for Mac(在线视频下载软件) 1.8.5.19中文直装版

mac

视频下载工具 苹果mac Windows软件 PullTube

Wirecast Pro for Mac(视频直播制作工具)v16.0.3中文免激活版

iMac小白

NCH PhotoPad for Mac(照片编辑软件)v11.87注册版

iMac小白

探索容灾架构演进之路-从单点到异地多活

柠檬汁Code(binbin0325)

容灾 异地多活 备份 & 恢复 部署架构 同城双活

PDF Expert for Mac(PDF编辑阅读转换器)v3.7.1中文激活版

影影绰绰一往直前

低代码平台技术分享官 | 漫话iGIX前端设计模式

inBuilder低代码平台

前端

intellij idea 2023最新破解版下载

影影绰绰一往直前

WordPress 基于亚马逊云的部署实践(三)- 服务部署

王坤祥

AWS WordPress Amazon EC2 亚马逊云

Docker搭建Hadoop集群教程。

百度搜索:蓝易云

Docker hadoop Linux 运维 运维云计算

CnosDB有主复制演进历程

CnosDB

开源 时序数据库 CnosDB

边缘计算平台如何助力元宇宙实现?

3DCAT实时渲染

边缘计算平台

MacBook触控板窗口管理推荐 Swish免激活最新

胖墩儿不胖y

Mac软件 触控板管理工具

Modern CSV for mac(适用于Mac的CSV文件编辑器)

iMac小白

vmware fusion pro 13破解版下载 支持MacOS14

iMac小白

纯CSS动态渐变文本特效

南城FE

CSS 前端 动画 css3渐变 渐变

向量数据库—加速大模型训练推理

不叫猫先生

大模型 向量数据库

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