小花猫

谷歌/Waymo 无人车小知识

谷歌的无人驾驶汽车项目已经从谷歌分离出来成为 Alphabet 的子公司 Waymo 了,不过成果基本上还是作为谷歌无人车的时候实现的。我们可以先看一下无人车的这两种车型。

这是原型车(prototype vehicle)。

这是 Chrysler Pacifica Hybrid,谷歌之前用的是 Lexus RX450h SUV。

无人驾驶汽车是一个复杂的软硬件系统,它涉及到的技术和方法不是能简单概括的,很多内容不作为内部的技术人员很难准确的知道和理解的。不过,谷歌和 Waymo 开放了许多资料和视频,我们还是能从中得知他们团队对无人车的思考以及使用或可能使用的技术。

谷歌的无人车使用了三种主要的传感器 :摄像头(cameras),激光雷达(lidars)和 测距雷达(radars) 。激光雷达(lidars)就是那种很贵的,价格可高达几十万,能够用来形成周围物体的三维特征。雷达(radars)与普通汽车上的倒车雷达类似,用来探测前面的车的距离和车速。

那么我就从我查到的资料来简单的举一些典型或者有意思的例子来说明谷歌设计无人车时的思路和方法:

1. 为无人车建立专属地图(BUILDING MAPS FOR A SELF-DRIVING CAR - report0316)

谷歌会为他的无人车建造地图,和我们使用的谷歌地图或者高德地图的 app 不同,无人车使用的地图会包含更多的信息,如路缘的高度,十字路口的宽度,交通标志、红绿灯的高度和准确位置等信息。

这些地图信息不是无人车在行驶的过程中自己生成的,当谷歌的无人车将要进入一个新的环境测试的时候,他们会开着自己的无人车用车上的激光雷达收集周围环境的三维数据,之后会对这些数据进行标定和分类,比如道路线的状态,路灯高度,路边的消防栓等。

这么做的好处是无人车在真正上路的时候能够知道自己在什么样的位置时会遇到什么东西,也能更专注于处理移动的目标,比如行驶的车辆和行人等,还有本不该出现的障碍物等,还可以减少路面永久性(这里的永久指长时间不会改变)的物体对无人车真正上路进行识别定位其它车辆、行人、障碍物时的干扰。

2. 鸣笛算法(Honking Algorithms - report 0516)

如果一辆车突然转进自己的车道,我们是不是应该提醒它一下“喂!你后面还有车呢!”?谷歌就为自己的无人车设计了鸣笛算法用来提醒其他司机注意自己的存在。虽然被鸣笛提醒往往是一种不好的体验,不过谷歌希望它的无人车的鸣笛算法是礼貌且细心周到的,并且只在鸣笛能够让大家更安全的情况下进行。

谷歌希望教会无人车区分真正需要鸣笛的情景和看起来需要但是并不需要的情景,比如车在掉头的时候你需要等待而不是鸣笛,但是车跑在了错误的车道时候你可能就需要鸣笛提醒。在进行鸣笛算法测试的时候,谷歌会让测试驾驶员记录无人车每一次鸣笛的情况以帮助工程师优化算法。

3. 谷歌无人车的三点掉头(THE THREE-POINT TURN)

谷歌希望无人车能够给人提供到位的服务,你出家门就可以坐到车它能够把你直接送到公司门口或者胡同里聚会的小酒吧门口。所以三点掉头是无人车必须要掌握的技能。

三点掉头指的是从马路的最右侧做回转,当接触到最左侧的路沿时做后退动作,同时在后退时继续将车头进行调整,最后换成前进档,继续完成掉头动作。人在进行三点掉头的时候会使车子向前向后多次移动来观察整个路况然后调整角度和距离来掉头,不过无人车有360度的视角,能够计算出最短最快路径,如下图的紫色和绿色的细线(途中紫色的方块是障碍物)。不过无人车并没有这么做,为了给车上的乘客感觉起来更舒适,谷歌选择教无人车模仿人掉头的方式,如下图中宽的车道。

4. 试图理解其他移动物体的目的(Understanding other Vehicles’ intention)

谷歌的无人车会根据其他的车或行人已经作出的一些行为或指示来预测这个车将要做什么,比如下图中无人车依据右前方的这个车的一些微小的位移等预测它将要变道到自己的车道上来,于是无人车减速配合其顺利变道。

又比如下面这张图片中,无人车探测到在它前方的自行车手(红色方框标出)的手势可能是要到马路对面去,于是减速留出足够的空间让自行车顺利通过。

以上的内容希望能对大家理解谷歌的无人车有所帮助。无人车要应对的场景繁多且复杂,有一些可以写成固定的算法,比如三点掉头的方法,面对信号灯或交通标志的行为;还有一些从未遇到的场景可能就需要像上面那样试图预测移动物体的下一步行为,比如一只过马路的狗狗。

谷歌在它的无人车月度报告中多次使用了【taught】这个词,几乎可以肯定很多重要的算法都是基于深度学习的。最后大家可以看这一段来自 Waymo 官网的视频,感受一下这些算法在实际中的应用。

参考资料及所有图片来源:

  • Waymo 官网
  • Waymo Medium Blog
  • Google Self-Driving Car Project Monthly Report