首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自动驾驶基础-无人驾驶操作系统二

上文介绍了无人驾驶操作系统的五层结构, 也提到有观点把上述五层结构从系统角度分为上中下三层,底层控制管理汽车内部系统的运行方式,如刹车、加速和转向;上层控制则管理汽车的长期策略计划,如导航和路线规划问题;中层控制是指计算机视觉感知反应。

底层控制系统:加速、刹车和转向

无人驾驶汽车底层控制的核心工作是将系统稳定在最佳设定值上。反馈控制设备是一种广泛使用却又鲜为人知的判断性装置,通常用于调节引擎的燃油喷射、生产用机械的电压输入,甚至还可以用于调节房间内温度,使其准确地保持在恒温器设定的数值。

自从20世纪80年代以来,汽车工程师将底层控制元件应用于防震、刹车和巡航定速控制等功能中。在无人驾驶汽车上,底层控制所涵盖的范围有些许扩大,加入了汽车核心硬件子系统的管理,按照计算好的路径前进的精准调控,刹车和加速过程中的平滑性控制。现代的底层控制使用了大量种类各异的算法,以确保某个部件或整个系统的流畅运行。预测算法通常基于底层控制,它可以提升汽车的情境识别能力,方法就是始终留意数字地图的变化,以便精准计算引擎的燃料注入量,使得汽车可以顺畅、平稳地翻山越岭。

想要实现汽油发动机的稳定运行,所需应对的重大难题之一就是时间延迟,或者称为“滞后时间(1 agtime)”。时间滞后就意味着汽车的启动、加速以及停止都难以实现精准的时间控制不过,至少有两种方式可以减少时间滞后问题对自动驾驶汽车的影响:

·一种方式是在底层控制中投入更多的计算能力。计算能力强大的电脑可以减弱燃油喷射器所带来的延迟问题,并为汽油发动机的匀速运行和精准计时提供更高的准确度,最终达到较高的平衡状态;

·解决问题的第二种方式就是更换发动机。电动式引擎更加容易管理调节,这也是谷歌公司和特斯拉公司不约而同为其原型无人驾驶汽车配置电动引擎的原因之一。只要为电动引擎配置好特定的电压电位,引擎就始终能即时产生对应程度的力矩,推动汽车前进。

2. 上层控制系统:路径规划和道路导航

如果将底层控制系统比喻为“条件反射活动”,那么上层控制系统就类似于“高级心智活动”传统上而言的“脑力活动”。上层控制系统的基础是路径规划和导航,而两者都需要通过搜索算法( Search Algorithms)的应用来实现。

搜索算法中最为常用的一个是A*算法,是由尼尔斯·尼尔森(Nils Nilsson)及其同事于1968年发明。A*(A-Star)算法,是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。几乎所有涉及将备选方案排序并筛选最佳答案的问题,都会尝试用A*算法来解决。这个算法为全世界的GPS导航设备提供了智能判断,并且它还应用于当今很多不同领域的软件程序中,如桂牌类对弈和工厂任务调度。

虽然A*算法是一种通用型搜索算法,但它尤其适用于驾驶活动中的上层控制功能。只要软件研发人员适当调整算法中的代价函数,使其重新运行算法,它就可以用于评估各种各样的驾驶行为需要支付的成本,例如信号灯等待时长、道路拥堵情况、道路维修工程、信号灯数量,甚至需要等待的左转弯的数量都可以计算检索。尼尔森和他的同事在发明这个算法之初,就开放了其源代码,这慷慨之举大大加速了数字导航软件的研发进程。

3. 中层控制:计算机视觉感知反应

无人驾驶汽车技术的最后难关仍然是开发软件来监管汽车的感知和反应。这些不能完全归属于底层控制或者上层控制领域的各种新兴软件工具包,归属名为“中层控制( MidlevelControls)”的领域。

我们将通过四个组成模块来解释中层控制系统的工作原理:第一个模块是占据栅格的软件工具;第二个模块是一个软件程序,用于识别并标记流入占据栅格的原始数据;第三个模块使用预测性的人工智能软件对障碍物用不确定性锥(Cones of Uncertainty)做替代;最后,第四个模块由一个短期轨迹规划器( Short- term Trajectory Planner)组成,负责引导汽车绕过感知到的障碍,同时保证遵守相应的交通规则。

我们先来谈谈第一个模块,占据栅格。占据栅格是一种软件工具,针对汽车外部环境进行实时、持续更新的三维数字建模。类似于一个包含了数字记录的后端数据库,占据栅格是一个存储了汽车周围实体对象信息的数字存储库。它既可以与中层控制软件的其他模块相配合,也能作为程序员的视觉参照模型。

第二个模块借助深度学习软件对汽车附近的物体进行分类,这样一来占据栅格就可以存储这些信息,以供汽车操作系统的其余模块使用。在过去还无法准确标记数据资料的时代,占据栅格基本派不上用场,为它只是对周边环境中的大型实物物体的一些粗糙模拟。由于不知道“潜伏”在车外的物体到底是什么,汽车软件系统的其他模块也就无法计算出最佳的应对措施,也无法预测这些“不明物体”下一步要做什么。

直到最近,无人驾驶才开始在一些开发路段开始实际测试。但是无人驾驶汽车在一些几乎没有移动物体的静态环境中则早就可以稳定运行,例如工厂、矿山、农场,以及沙漠。在这些静态的环境中,无人驾驶汽车的引导软件能够很好地发挥作用,是因为它只需要躲避遇到的每一个障碍,而无须区分它们是什么。

深度学习使另一个技术的应用(不确定性锥)成为可能,该技术也大大提高了无人驾驶汽车软件在动态环境中的性能。这个被称为“不确定性锥”的工具是中层控制软件的第三个模块,用于预测汽车附近物体的位置和移动速度。一旦深度学习模块标记了一个物体,占据栅格就会显示出它的存在,不确定性锥就会预测物体下一步的运动方向。

中层控制软件按照如下方法创建圆锥体:

首先,想象下在纸上画出个物体,在物体周围画一个小圆圈,我们称它为“当前活动圈( current circle)”;然后,再画一个大圆圈,标记出未来十秒钟后物体可能会到达的所有位置,我们叫它“未来活动圈( future circle)”。最后,用两条线把小圆和大圆的边缘连接起来。这就是不确定性锥。

当前三个模块完成了它们的工作后,第四个模块短期轨迹规划器就可以上场了。当汽车附近的物体都被标记并计算成了大小不一的不确定性锥,无人驾驶汽车的轨迹规划器就能制定出汽车前进的最佳路线。轨迹规划器使用精密完善的算法计算出最有效的前进路线,并保证遵守交通规则,减少行程时间和碰撞风险。计算机尤其擅长计算这种非线性轨迹预测。在过去的几年中,软件已经被提升到了新的高度—计算机能比人更好地预测出物体的运动轨迹。

关于自动驾驶的技术文章,可以参考前文,下面是链接:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190202G017ZV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券