自动驾驶101

早期历史

不同于现在的无人驾驶,早期的自动驾驶技术(1960s - 2005)主要由美国军方出资赞助。

1983年,隶属于美国国防部的美国国防高级研究计划局DARPA(The Defense Advanced Research Projects Agency),出资开启了Strategic Computing Initiative,旨在加速计算机科学和AI的研究进程,其中有一块内容就是推进自动驾驶技术。那时候,中华人民共和国才刚刚结束文革的动荡,开始尝试改革开放,并在1982年通过了现行的八二宪法。

1984年,CMU开始了相关的研究。NavLab系列是其中一个重要产物,1986年NavLab 1完成,而具有里程碑意义的NavLab 5则在1995年从Pittsburgh开到了San Diego,全程2850英里中有大约50英里是人手动控制方向。其通过前挡风玻璃上的摄像头寻找车道线,由人类负责油门和刹车。之后,陆续有其他的一些研究机构开始对这项技术进行投入。

2004年,DARPA发起了一项名为DARPA Grand Challenge的比赛。比赛要求参赛的自动驾驶车辆在10小时之内,于沙漠中走完一段142英里的赛道。第一名的奖金是100万美元。然而,所有的参赛者在最初的7.5英里内就失败了。

2005年,第二届DARPA Grand Challenge。这次,195支参赛队伍里有5个在要求时间内完成了比赛。斯坦福大学的Stanley以6小时53分的成绩夺得了第一名,赢得了200万美元的奖金。CMU的两辆车夺得了第二和第三名。

2006年,第三届DARPA Grand Challenge。这次的比赛不再是在沙漠中进行,而是模拟了城市的环境。全称60英里。这次,CMU的Tartan Racing获得了第一名,奖金仍然是200万美元,Go Tartan!斯坦福大学获得第二名。

近期发展

DARPA Grand Challenge以后,很多其他的比赛开始出现,而工业界和学术界对这一技术的投入也开始增多。毫无疑问,机器学习的兴起给了资本对这一技术很强的信心。各种自动驾驶公司开始出现。下面介绍几个有代表性的。

  1. Waymo。Google对自动驾驶项目在2009年开始,由德裔美国人Sebastian Thrun领导。他也领导了2005年第一个完成DARPA Grand Challenge的斯坦福队。他于2014年离开了Google。2016年,Google的自动驾驶项目单独成为了一家公司,就是今天的Waymo。Waymo的总部在凤凰城,目前已经开始部分区域的商业化运营

  2. Cruise。2013年,Kyle Vogt和Daniel Kan一起创立了这家公司。值得一提的是,Kyle Vogt的在MIT读本科期间,参加了2004年的第一届DARPA Grand Challenge。2016年,Cruise被通用汽车(General Motors)收购。目前Cruise已经在旧金山开始小规模的商业运营。2022年12月16日,由于收到多个Compliant,美国交通安全相关部门开始对Cruise进行调查

  3. Tesla。2003年创立,Elon Musk在2004年成为该公司最大股东,并在2008年成为CEO。在2015年,Model S上发布了Autopilot。目前,特斯拉的自动驾驶技术可以算L2.5。

  4. Argo AI。于2016年由Google和Uber的前员工创立,且二者都在CMU的National Robotics Engineering Center工作过: Bryan Salesky —— 他在2007年负责了DARPA Grand Challenge的CMU队的软件工程,帮助该队获得第一名,随后于2011年加入Google自动驾驶团队;Peter Rander —— Uber的自动驾驶团队前成员。Ford和大众集团2019年收购了该公司。然而,在2022年10月27日,Ford宣布解散Argo AI,其技术和人员将和大众集团一起分配,预计主要讲用于L2+/L3的技术研发。Ford在这对Argo AI的投资上损失了27亿美元。

级别分类

L0:无自动驾驶。

L1:车辆具有单一的自动化驾驶辅助系统,如“自适应巡航”。

L2:高级的自动化驾驶辅助系统(ADAS),如在高速上的简单“自动转向和Cruise Control”。

L3:在一定条件下,基本可以自动化,但是要求有人在车里,随时接管。

L4:在一定条件下做到无人驾驶,人定义DDO。

L5:完全自动。

系统构成

Onboard —— 车上系统

如果选择使用ROS作为操作系统,那么模块之间的沟通通过ROS Topic来沟通。Rosbag则是一种是用来记录Topic信息的格式,http://wiki.ros.org/rosbag。

  1. Localization: GPS有米级的误差,而Localization的目标是通过一系列的定位算法,如SLAM,算出车的精确位置。

  2. Perception Tracking(面对过去): 识别物体的类别,位置,速度。做的好一点的会有Understanding,类似于状态的识别,比如车门是否打开,双闪是否打开等。

  3. Prediction(面对未来):根据过去的信息(包括Perception的),在未来的几秒内,物体会如何行动。

  4. Planning and Routing:计算要开的路线。

  5. Control:如何开出Plan出的路线,转换成Steering,Pedal,Signal等。

Offboard —— 车下系统

  1. Simulation:在OnBoard的环境中,不同模块的同步会有误差,最终的结果常常是non-deterministic的。但是在Simulation的环境中,为了方便Debug,determinism常常是个很重要的性质。

  2. Data Analysis:包括对路测信息的数据挖掘,场景的建模分析等。

· 自动驾驶