自动驾驶操作系统是一个流程化、复杂的综合系统,设计到众多流程和领域。首先,分为不同的层,包括:感知层、认知层、决策规划层、控制层和执行层几个层面。
众所周知,我们的电脑除了硬件,还需要软件系统结合才能发挥最大效能,就是我们所说的操作系统,它是支持电脑基础运作的软件,例如任务安排、执行应用程序以及控制外部设备。我们前边讲过支撑自动驾驶汽车的硬件各种雷达、摄像头、声呐等传感器,而将这些硬件组织成一个整体系统,也需要自动驾驶的操作系统来统一协调安排。即支持汽车的基础功能和高级功能,并对接受的到数据实时回馈。但这还远远不够,自动驾驶汽车的操作系统必须绝对安全可靠,而且它必须内置高级的人工智能。
自动驾驶是人类的共同梦想,已经被很广泛的运用到航空飞行领域,但路面汽车的情况要比天空的环境复杂的多,自动驾驶汽车在最近也有很大的进步,但距离真正上路还有一段路要走,还处在初级阶段的操作系统,并面临诸多现实挑战。
自互联网兴起以来,操作系统就成为巨头必争的战略高地,可毫不夸张地说,得操作系统者得天下!比如微软凭借Windows系统引领PC时代,谷歌当年买下Android才有如今的王者地位,苹果帝国不仅因为其超凡的硬件设计,更在于其安全、便捷、流畅的iOS系统。
眼下,由AI引发的无人驾驶暴风来袭,据预测无人驾驶汽车市场的规模将在2050年前达到7万亿美元。与此同时,一场无人驾驶操作系统争夺战已悄然打响,大概统计了已经发布或者即将发布无人驾驶操作系统的公司,超过10家,未来10年这个领域必将诞生新的巨头。
2018年4月,在2018GMIC全球人工智能领袖峰会上,创新工场董事长李开复表示,无人驾驶可能诞生下一个伟大的操作系统。
自动驾驶操作系统是一个流程化、复杂的综合系统,设计到众多流程和领域。首先,分为不同的层,包括:感知层、认知层、决策规划层、控制层和执行层几个层面。下面就这几个层做简单的分析:
1. 感知层这里主要是各种传感器的数据采集和数据整合处理。包括有雷达传感器、视觉传感器、通信传感器、定位传感器和汽车姿态传感器等,将所有传感器接受到的数据进行接受和处理,完成之后进行多传感器的数据融合,这样就完成了将外界环境感知的数据转换成可以进行分析和判断的有效数据,然后进入下面的认知层。
2. 认知层将融合后是数据分为运动目标、静态栅格、道路结构,进行轨迹预测,转换成驾驶场景认知态势图,结合高精度融合定位,完成认知层的过程,总体上讲是全局路径设定,高精度的导航地图,以及后台的监控等,最后将数据传递到决策规划层。
3. 决策规划层这里主要适合进行行为决策、路径规划、运动规划完成决策的过程,将前面处理后的环境数据做出一个车辆行为的规划,也就是觉得如何操作车辆,然后车辆是要开往哪里,具体的路径轨迹是什么,都已经完成计划,包括汽车运动状态的规划,然后进入下面的控制层。
4. 控制层控制层主要是车辆纵向协调控制系统,完成控制过程,然后进入到下一个执行层。
5. 执行层也是最后的一层,也就是车辆底层执行机构,所有的数据处理后就进行车辆行为的执行,完成车辆的自动驾驶功能。
无人驾驶汽车的操作系统横跨了两个存在差异的研究领域。其一是控制工程学( ControlsEngineering),专门解决机械零部件协调运行的一个工程学分支;其二则是人工智能研究。
控制工程学要处理复杂系统(如机器人的机械系统)的运行问题,这些系统要通过输入和输出信息来与周围环境进行互动。人工智能中相关领域的研究者则努力研发具备智能行为的软件,人工智能研究的理论基础来源于多个不同的领域,从心理学到语言学,再到统计学都有所贡献。
所以也有观点把上述五层结构从系统角度分为上中下三层,底层控制管理汽车内部系统的运行方式,如刹车、加速和转向;上层控制则管理汽车的长期策略计划,如导航和路线规划问题;中层控制是指计算机视觉感知反应。
1. 底层控制系统:加速、刹车和转向
无人驾驶汽车底层控制的核心工作是将系统稳定在最佳设定值上。反馈控制设备是一种广泛使用却又鲜为人知的判断性装置,通常用于调节引擎的燃油喷射、生产用机械的电压输入,甚至还可以用于调节房间内温度,使其准确地保持在恒温器设定的数值。
自从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)”。最后,用两条线把小圆和大圆的边缘连接起来。这就是不确定性锥。
当前三个模块完成了它们的工作后,第四个模块短期轨迹规划器就可以上场了。当汽车附近的物体都被标记并计算成了大小不一的不确定性锥,无人驾驶汽车的轨迹规划器就能制定出汽车前进的最佳路线。轨迹规划器使用精密完善的算法计算出最有效的前进路线,并保证遵守交通规则,减少行程时间和碰撞风险。计算机尤其擅长计算这种非线性轨迹预测。在过去的几年中,软件已经被提升到了新的高度—计算机能比人更好地预测出物体的运动轨迹。
领取专属 10元无门槛券
私享最新 技术干货