Windows创造微软帝国,Android铸就谷歌辉煌,谁将写下无人驾驶操闲谈

来源: AI商业周刊 / 作者:刘凯良 / 2018-07-08 22:38
无人驾驶汽车相比其他移动版机器人的一大优势就在于它们是建立在四个轮子上的,无须借助躯干肢体运动。但是有关知觉和反应的问题,几十年来仍然难以实现自动化。识别周围环境并做

无人驾驶汽车相比其他移动版机器人的一大优势就在于它们是建立在四个轮子上的,无须借助躯干肢体运动。但是有关知觉和反应的问题,几十年来仍然难以实现自动化。识别周围环境并做出针对性反应,能够赋予无人驾驶汽车这些能力的软件始终都是机器人操作系统中最关键的部分。

 

自互联网兴起以来,操作系统就成为巨头必争的战略高地,可毫不夸张地说,得操作系统者得天下!比如微软凭借Windows系统引领PC时代,谷歌当年买下Android才有如今的王者地位,苹果帝国不仅因为其超凡的硬件设计,更在于其安全、便捷、流畅的iOS系统。

眼下,由AI引发的无人驾驶暴风来袭,据预测无人驾驶汽车市场的规模将在2050年前达到7万亿美元。与此同时,一场无人驾驶操作系统争夺战已悄然打响,笔者统计了已经发布或者即将发布无人驾驶操作系统的公司,超过10家,未来10年这个领域必将诞生新的巨头。


 

今年4月,在2018GMIC全球人工智能领袖峰会上,创新工场董事长李开复表示,无人驾驶可能诞生下一个伟大的操作系统。

现阶段无人驾驶还处于非常早期,谈市场尚早,技术才是应该关注的焦点。那么无人驾驶操作系统技术到底是如何实现的呢?它与PC、手机操作系统有何区别?凡此种种疑问,可能对于大多人仍然一脸懵逼,本文就从技术角度为您揭开无人驾驶操作系统的神秘面纱。

20世纪90年代时因特网上曾流传过一个老套的笑话。当时还是微软CEO的比尔·盖茨曾吹嘘,如果让微软来给汽车研发操作系统的话,汽车就会进化成高科技产品,而且1加仑油就能跑1000英里。

后来这个玩笑得以延伸:通用汽车的CEO气愤不已,列出了详细的多个反驳观点作为回应,规劝微软还是老老实实地给电脑做系统,不要染指汽车领域。通用CEO的反驳观点是,如果让微软来给汽车做操作系统,就会出现以下情况:

  1. 汽车会频繁且无征兆地发生故障。这种现象太常见,以至于司机只能接受这种情况,重启汽车,然后继续驾驶。

  2. 所有车门都会偶尔莫名其妙地镇住。这时司机想要进入车里只能一边拉动车把手、旋转车钥匙,一边抓着无线电天线。

  3. 有时汽车还会完全死机,无法重启,司机只能重新安装一套系统启动引擎。

  4. 每当汽车公司发布新车型的时候,买车的人必须重新学驾照,因为所有控制按钮都做了布局调整。

  5. 当城市道路重新规划后,司机需再买辆适配改装路面“操作系统”的新汽车。

  6. 汽车只能承载一名乘客,除非司机再多花些钱办理多乘客许可证。

  7. 油量灯、水温灯以及报警信号灯会被一个通用的“整车故障”信号灯所替代。

  8. 安全气囊在使用前还会问:“你确定要打开吗?”

当然,现如今的 Windows操作系统要比那个时候的安全好用得多。但这个笑话充分说明为无人驾驶汽车研发一个高级的操作系统,需要耗费多少先进工程技术。软件系统必须完美无缺,能够流畅管理“庞大的金属盒子”将尊贵的人类乘客从A点运到B点,同时还要避免与其他车辆相撞,避让突然出现的行人和自行车。

无人驾驶汽车的操作系统横跨了两个存在差异的研究领域。其一是控制工程学( Controls Engineering),专门解决机械零部件协调运行的一个工程学分支;其二则是人工智能研究。

控制工程学要处理复杂系统(如机器人的机械系统)的运行问题,这些系统要通过输入和输出信息来与周围环境进行互动。人工智能中相关领域的研究者则努力研发具备智能行为的软件,人工智能研究的理论基础来源于多个不同的领域,从心理学到语言学,再到统计学都有所贡献。

总结来看,无人驾驶汽车系统分为上中下三层,底层控制管理汽车内部系统的运行方式,如刹车、加速和转向;上层控制则管理汽车的长期策略计划,如导航和路线规划问题;中层控制是指计算机视觉感知反应。

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

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

自从20世纪80年代以来,汽车工程师将底层控制元件应用于防震、刹车和巡航定速控制等功能中。在无人驾驶汽车上,底层控制所涵盖的范围有些许扩大,加入了汽车核心硬件子系统的管理,按照计算好的路径前进的精准调控,刹车和加速过程中的平滑性控制。

现代的底层控制使用了大量种类各异的算法,以确保某个部件或整个系统的流畅运行。预测算法通常基于底层控制,它可以提升汽车的情境识别能力,方法就是始终留意数字地图的变化,以便精准计算引擎的燃料注入量,使得汽车可以顺畅、平稳地翻山越岭。

想要实现汽油发动机的稳定运行,所需应对的重大难题之一就是时间延迟,或者称为“滞后时间(1 ag time)”。时间滞后就意味着汽车的启动、加速以及停止都难以实现精准的时间控制

不过,至少有两种方式可以减少时间滞后问题对自动驾驶汽车的影响:

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

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

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

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

搜索算法中最为常用的一个是A*算法,是由尼尔斯·尼尔森(Nils Nilsson)及其同事于1968年发明。几乎所有涉及将备选方案排序并筛选最佳答案的问题,都会尝试用A*算法来解决。这个算法为全世界的GPS导航设备提供了智能判断,并且它还应用于当今很多不同领域的软件程序中,如桂牌类对弈和工厂任务调度。

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

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

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

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

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

第二个模块借助深度学习软件对汽车附近的物体进行分类,这样一来占据栅格就可以存储这些信息,以供汽车操作系统的其余模块使用。

在过去还无法准确标记数据资料的时代,占据栅格基本派不上用场,为它只是对周边环境中的大型实物物体的一些粗糙模拟。由于不知道“潜伏”在车外的物体到底是什么,汽车软件系统的其他模块也就无法计算出最佳的应对措施,也无法预测这些“不明物体”下一步要做什么。

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

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

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

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

结语

今天,上层控制系统、底层控制系统和中层控制技术都已经比较成熟,并且经过时间的考验后得以应用。然而,它们的成熟却又引发出一个有趣的问题:为什么无人驾驶汽车还没有开始真正在市场中大规模应用?答案就在于莫拉维克悖论(人类所独有的高阶智慧能力只需要非常少的计算能力,例如推理,但是无意识的技能和直觉却需要极大的运算能力),看似简单的移动和感知过程,其实十分难以自动化。

无人驾驶汽车相比其他移动版机器人的一大优势就在于它们是建立在四个轮子上的,无须借助躯干肢体运动。但是有关知觉和反应的问题,几十年来仍然难以实现自动化。识别周围环境并做出针对性反应,能够赋予无人驾驶汽车这些能力的软件始终都是机器人操作系统中最关键的部分。

所以,当下考虑谁是无人驾驶操作系统的“王者荣耀”并不那么重要,首要解决的是底层技术难题。如果从长远来看,无人驾驶操作系统之争一定会比PC操作系统和移动操作系统时代更为激烈。因为传统汽车厂商,英伟达、英特尔这些芯片厂商以及谷歌、百度等AI领头羊都想称王。

注:本文参考哥伦比亚大学人工智能实验室主任Hod Lipson的著作《无人驾驶》
 

阅读延展

1
3