2009年谷歌(Waymo)自动驾驶事业正式开始,但实际上谷歌的自动驾驶可以追溯到2005年第二届DARPA无人驾驶挑战赛,已有了十几年的历史,目前也是自动驾驶领域的标杆企业,不过Waymo也经历了各种坎坷,包括早期领导人职业操守严重不足,跟车企合作被鄙视,骨干员工加入竞争对手等。
Waymo在超过25个城市的公共道路上行驶了超过2000万英里。另外还在模拟环境中行驶了数百亿英里。此外,Waymo正在美国经营L4自动驾驶出租车服务,真正的在没有司机的情况下运送乘客。
下面来梳理一下Waymo的技术,以此来窥探一下头部企业背后的实际情况。
与其他公司的自动驾驶系统一样,Waymo自动驾驶技术主要包括:感知、定位、规划、控制。下面分别对其进行梳理,不过对于控制,由于其与车辆动力学模型是强相关的,就不对其进行介绍。
本文福利:分享报告《2021超级快充时代来临,高电压平台加速渗透报告》,公众号对话框回复【汽车ECU开发011】下载。
01.
感知
感知模块是自动驾驶的基础也是核心,其主要实现对障碍物距离的估计,以及车辆的定位。Waymo的感知系统使用了摄像头、激光雷达和雷达的组合,如图1所示。感知模块的大部分工作是由4个LiDAR完成的,因此其技术路线刚好与特斯拉相反。图2为Waymo的感知系统处理后的视图与原图像。
从图2中可以看出,Waymo的感知系统获取障碍物信息的能力非常高,包括:
1、可以识别常规汽车、警车、救护车、消防车和校车。如果遇到特种车辆,系统可以根据警报器和灯光做出判断;
2、每个检测到的障碍物都有一个状态:移动、停车等。
在Waymo开发感知系统的过程中,遇到过不少棘手的问题,比如在车辆反射问题,如图3所示,不过由于感知系统采用了激光雷达,这种发射问题不会出现在激光雷达的点云中。
另外还有一个极端问题:如果人们可能躺在卡车车顶,举着STOP标志。对于这样的问题,感知系统首先会检测STOP标志,然后将这些信息与地图进行匹配,检测地图上此处是否有STOP标志,是否有道路工程等,如果没有,该标志会被忽略。
02.
架构
最近在讨论Tesla计算机视觉架构时,我探索了HydraNet 架构。它是一种旨在同时运行多个神经网络的架构。“Hydra”这个词意味着一个有多个头的系统。Waymo没有HydraNets。
图4展示了一个神经网络架构搜索(NAS)单元,它是神经网络的构建块,类似于ResNet的大型神经网络中的构建块。这个想法已经被采纳并改编成一种叫做 AutoML 的东西。AutoML 的思想是神经网络架构必须由算法估计,如图5所示。
这些架构是使用NAS单元构建的,最佳组合获胜。测试样本为10000个架构,预选100个模型,然后选出1个最终获胜者,获胜的标准是准确性和推理成本。
03.
数据集和模型
关于数据集和模型,Waymo使用的是一种称为主动学习的过程。主动学习的思想如下:
2、如果模型对其预测非常确定,其将获得一个自动标签。
3、如果不确定,则将数据发送给人工标注员。这样,人工标注员只标注疑难数据,其余的都是自动标注。
Waymo使用主动学习来训练模型,利用TPU(Tensor Processing Units)和谷歌的深度学习框架TensorFlow。与特斯拉类似,这是一个闭环,循环迭代。
图6中的描述已经比较清晰;从底部的Releases开始,然后沿着箭头一步一步执行。
2、一些数据被选中并由神经网络或人工标注员进行标注。
3、将标注的数据集发送到AutoML架构搜索,评估最佳模型。
4、最佳模型经过验证、测试并发Releases新版本。
04.
定位
定位很显然就是获取车辆的实时位置,要求精度在1~3cm。一些公司使用了GPS,或是添加了摄像头和激光雷达信息。Waymo使用了地图、激光雷达和GPS来定位车辆,这方面采用了从Google地图积累的经验。
多年来,Google地图团队一直致力于使用激光雷达、摄像头和GPS进行高精地图绘制。这些传感器正好也是用于自动驾驶相吻合。
谷歌几乎已经绘制了整个世界的地图。如果从相对位置检测到您看到了2号街道,就可以准确地知道您在哪里。这就是他们过去二十年一直在努力的事情。
Waymo的定位模块由地图、摄像头、GPS和算法组成,可在全世界范围内准确定位车辆。另外Waymo还进行了大量冗余设计,使其更加健壮、可靠。
05.
预测
行为预测
Waymo自动驾驶汽车最重要的特点是行为预测。在自动驾驶汽车中,最终想要的是了解人类行为并预测。这就是所谓的行为预测。
这些行为预测是使用循环神经网络进行的:它们使用过去的信息来预测未来的行为。因此,可以确切地知道要做什么,并且可以衡量预测的置信度。举两个行为预测简单的例子:
1、如果车辆观察到有行人注视着它,则发生事故的风险很低。如果观察到行人不注意就跑,风险会更高。
Waymo的系统是如何做到这一点的呢?其预测系统是一个混合体,结合了机器学习和人类知识。所谓的人类知识,就是人类对世界的了解,例如交通法规和不可能的事情——人类行走或者跑步的速度不可能达到50公里/小时)。
06.
仿真
如文章开头所说,Waymo的自动驾驶在模拟器中运行了数百亿公里,该模拟器的输入为真实世界数据。
Waymo的仿真系统可以实时回放,可以模拟行为构建完整的场景,并查看算法是如何表现的。事实上,Waymo平均每天运行25,000辆虚拟汽车,并且在这些模拟中每天行驶1千万英里。
为了模拟更多场景,Waymo正在使用DeepMind和深度强化学习来创建代理和驾驶策略。
在强化学习中,策略是一种行为。其可以模拟一个愤怒的司机试图危险的切入。每次他们都会查看算法的行为和正确性。
一旦他们对驾驶员进行了准确且训练有素的预测,就可以生成要采取的轨迹。这也称为决策和轨迹生成。Waymo的驾驶模型称为ChauffeurNet,如图7所示。
07.
规划
轨迹是一系列点坐标组成,其目标是综合来考虑安全性、速度和可行性,生成误差最合适的轨迹。Waymo的完整规划模块如图8所示。
Agent RNN是一个为自动驾驶车辆生成轨迹的网络。这些轨迹将考虑航向(可行性)、速度(交通规则)、航路点(长度)等。Agent RNN的目标是模拟一个可行的、现实的轨迹。
Road Mask Net用于确保生成的轨迹为动车道,防止生成的轨迹中含有非机动车道。
最后,轨迹还考虑了排斥器和吸引器。用于将车辆维持在车道中,避开路障。
生成轨迹的过程还使用了逆强化学习技术。在逆强化学习中,尝试着眼于真实的人类轨迹,并确定是什么使这条轨迹成为一个好的轨迹,这有利于改进了生成的轨迹并使其更接近人类行为。
总结
Waymo的自动驾驶技术积累了十几年,而且背靠Google,可以借鉴不少地图方面的经验,但是Waymo专注于L4以上的自动驾驶开发,这一点从目前来看,不是大多数,大部分公司先着眼于L2和L3的落地,并且逐步实现L4及以上。像百度之前也专注于L4及以上的开发,但是后来尝试L2和L3的落地。
对传统主机厂的一些思考
Tesla AutoPilot 纯视觉方案解析
如何写一份牛X的汽车软件需求
关于对汽车ECU软件测试的理解
特斯拉最新中央计算模块(CCM)解析
2021款特斯拉Model Y ECU接口梳理
详解CANoe之CAPL编程
关于CAN时间同步的理解
dbc文件的格式以及创建详解
基于UDS的Bootloder详解
关于整车上下电流程的理解
一文详解CAN总线错误帧|附下载
DoIP协议介绍,资料分享!
详解车载网络 OTA系统的开发|文末附下载
一文了解汽车嵌入式AUTOSAR架构|附下载
特斯拉Autopilot系统安全研究|附dbc下载
原文始发于微信公众号(汽车ECU开发):谷歌Waymo自动驾驶详解