沙漠中的百万竞赛:自动驾驶汽车是怎样产生的?
2019-07-08 21:00

沙漠中的百万竞赛:自动驾驶汽车是怎样产生的?

Photo by Nicolas Cool on Unsplash


在2004年的一个凉爽的星期四早上,第一次机器人汽车比赛在美国莫哈韦沙漠拉开了战幕。随着太阳升起,一只沙漠乌龟从洞穴中探出头来,希望能在迅速变暖的公路上享受一天的阳光。今天它发现自己被困在了洞穴附近,无论往哪个方向都寸步难行。


大约20名生物学家在这个洞穴和类似的洞穴周围设置了路障,以保护濒临灭绝的动物免受即将驶过附近公路的机器人汽车的伤害。他们恰当地预计了这些汽车无法保持在公路上行驶,更不用说避开它们中间的乌龟了。


自动驾驶汽车挑战赛


当时人们对赛车是否能完成比赛的预期大相径庭。赛事经理毫不含糊地声称,胜利者会在10小时内跑完142英里的赛程。但有人怀疑是否会有任何一辆赛车能完成比赛,机器人社区的很多人都有此怀疑。


百万美元奖金岌岌可危。克里斯•厄姆森(Chris Urmson)是角逐这笔奖金的人之一,他是一个开发自动驾驶悍马汽车的研究团队的设计带头人。克里斯身材颀长,顶着一头凌乱的金发。在传奇机器人专家“老红”威廉•惠特克的指导下,克里斯正在卡内基–梅隆大学攻读博士学位。


克里斯•厄姆森(Chris Urmson)


他非常专注于自己的研究,在沙漠中花了近两个月的时间对车队的悍马进行测试,一度连续工作近40个小时。在一次长时间的测试中,他一直守候到午夜时分,蜷缩在厚厚的毯子下,看着悍马兜圈子。透过薄雾,车头灯光依稀可见,只见悍马突然偏离了路线,撞上了铁丝网围栏。在另一次实验中,悍马在急转弯时翻了车,传感器被甩掉了,花了几个星期才修复。克里斯知道,这些事故发生在比赛前比发生在比赛中要好得多。


比赛当天,克里斯和他的团队设计的装满了传感器的悍马从乌龟洞穴旁边疾驰而过,紧随其后的是另一辆赛车。悍马已经行驶了大约25分钟,它的车速并不快,在驶过的7英里赛程中,它的平均时速略高于15英里,但它仍然比当天其他参赛车辆要好得多。这辆机器人汽车的挡风玻璃被大大的“CAT”(卡特彼勒汽车)徽标盖住,它自信满满地向前奔驰。但突然,随着一个向左的急转弯,它的视野一片漆黑。由于看不见路,汽车成了盲眼行驶。

 

如何设置自动驾驶汽车的速度?


悍马是如何自动行驶7英里的?你可能听说过,自动驾驶汽车实现自动驾驶所使用的技术是机器学习,特别是深度神经网络。但是克里斯和他的同事赛后描述他们的悍马时,根本没有提到机器学习和神经网络。当时是2004年,距离人们研究出如何训练神经网络可靠地“看到”物体还有将近10年的时间。


那么,这些早期的自动驾驶汽车使用了什么技术呢?当人们提供给一辆汽车要访问的一系列地点时,它如何在偏远的交通不便的沙漠公路上行驶数英里?在深入探讨这些细节,即自动驾驶汽车软件的各部分之前,让我们先快速了解一下计算机控制汽车硬件的方式。


如何设置自动驾驶汽车的速度?简而言之,汽车需要把计算机给它的数字(比如“25”)转换成具体的东西,即汽车的行驶速度。让这比听上去更难的是,物理发动机不知道“25”是什么意思。例如,即使你知道给电动发动机施加250伏的电压会让汽车以每小时25英里的速度行驶,你也无法通过简单地调高或调低电压来获得想要的速度。


如果想让汽车以每小时1英里的速度行驶,你不能指望给发动机施加10伏的电压它就能做到。在10伏电压下,发动机根本不会转动。18世纪,人们通过使用一种叫离心调速器的装置解决了这个问题,这种装置创建了一个反馈回路来控制发动机的速度。离心调速器是一种带有两个金属飞球的“旋转”装置,如图所示,你可能会把它同蒸汽机和启蒙时期的机械车间联系起来。当发动机运转得更快时,离心调速器就旋转得更快,金属飞球被离心力向外拉。通过一系列杠杆,一个阀门会关闭进入发动机的燃料通路,使发动机减速。如果发动机运转太慢,装置就会增加发动机的燃料,使其加速。通过调节注入发动机的燃料,离心调速器可以让发动机的转速保持稳定。

 

离心调速器,电子控制系统的前身。当发动机运转得更快时,带有金属飞球的旋转轴旋转得也更快,飞球被离心力向外拉。接下来的一系列杠杆让发动机的阀门关闭。如果发动机运转太慢,阀门就会让更多的燃料通过

 

这个离心调速器的缺点是,它只知道如何让发动机保持单一速度运转。现代自动驾驶汽车使用类似的反馈回路,只是它们可以按照计算机程序控制的任意目标速度运转。在图中,你可以看到这样的反馈回路。你的目标速度(例如每小时25英里)是这个反馈回路的输入,回路使用电子速度计而不是旋转装置来测量车轮速度与目标速度的差异。


人们希望从速度控制算法中得到的直觉行为是:当汽车开得太慢时,它会提高发动机的功率;当汽车开得太快时,它会降低发动机的功率。一种常用的调节发动机功率的方法叫作比例控制,之所以叫比例控制,是因为我们对功率的调节等于目标速度和当前速度的差值乘以一个固定的系数。比例控制并不完美,如果汽车爬坡行驶或逆风行驶,它的行驶速度往往比我们期望的速度慢。因此,我们通常会对控制算法做一些其他调整,例如,如果车速一直太慢,发动机的功率就会稍微提升一些。


最常见的控制算法由三条简单规则组成,它可以使汽车可靠地达到目标速度。我们在接下来的几章中介绍的许多自动驾驶汽车都使用了这种三规则控制器,专家称之为PID(比例–积分–微分)控制器。

既然我们已经对硬件的控制方法有了大致的了解,就无须再过多思考这些复杂的细节。创建硬件固然重要,但我们可以假设它是一项单独的挑战。为了从我们的视角来控制速度和转向,我们需要编写一个软件来告诉汽车应该以什么速度行驶,车轮应该扭转多大角度。把开车从硬件问题转变为软件问题,现在我们便可以只关注软件问题了。


PID控制器的反馈回路,即上文描述的三规则控制器。该控制器使用速度计的反馈来调节发动机的输入,例如功率

 

自动驾驶汽车的路径选择


当悍马在比赛中行驶时,它并不是朝某个随机方向行驶25分钟,而是沿着一条通往特定目的地的道路行驶。汽车可以朝目的地行驶,是因为车里有一个软件告诉它该去哪里。这个规划组件是自动驾驶汽车最重要的部分,它决定了系统其余部分的优先级。汽车所做的其他一切事情,比如利用转向系统保持在道路上行驶、不撞上岩石等,都是为了进一步实现沿着那条路径行驶的目标。


在比赛开始前仅两个小时的时候,机器人汽车比赛的组织者才向参赛者提供了一幅电子地图,因为他们不希望参赛者提前偷看这条路线。这张带有GPS(全球定位系统)坐标的地图描绘了赛车从比赛起点到终点的路线。因此,克里斯和他的团队为汽车配备了GPS传感器来检测位置。


从理论上讲,汽车只需要从地图上的一个地点导航到另一个地点,用GPS传感器调整方向,使自身保持沿路线行进即可。克里斯的团队自称红色车队。他们知道GPS是导航中最重要的部分,但他们也知道这还不够。栅栏和岩石之类的障碍物会挡住去路。因此,红色车队还提前绘制了一幅巨大的地图,称之为“世界上最好的地图”,以此完善他们在比赛当天早上得到的地图。在比赛开始前的几周里,他们研究了54000平方英里a沙漠的卫星图像,以确定障碍物的位置。


接下来,在比赛开始前仅两个小时的时候,他们获得了路线的GPS坐标,14个人连忙在几十台计算机的帮助下手工标注沿途的地形。当这些工作人员手工标注地图时,计算机不断搜索从比赛起点到终点的最佳路线,并将最新信息发送给工作人员,以便其确定研究的优先顺序。克里斯和他的团队计划在比赛开始前把这条预先计算好的路径上传到他们的自动驾驶悍马上。


仅仅走了5%路程的第一名


悍马在沙漠中刚刚驶过7英里里程标后,一头撞上了一块岩石。那里有一个向左的急转弯,但悍马转弯太急了,左侧车轮越过了路肩。它向前滑行,底盘陷入沙土中,最终撞上了岩石。比赛计时器上的时间一分钟又一分钟地流逝,悍马还在沙土中旋转着车轮。几名负责跟踪悍马进程的赛事官员注视着它在晨光中挣扎。


悍马的车轮旋转了将近7分钟,最终着火了。附近的赛事官立刻按下遥控的电子灭火开关,停止了机器人,然后跳出来扑灭了火焰。悍马的车轮转得太快了,当按下电子灭火开关时,它的两个半轴全都断裂了。克里斯的队伍正式退出了比赛。


DARPA(美国国防部高级研究计划局)组织了这次机器人汽车比赛,人们称之为“DARPA无人车挑战赛”(DARPA Grand Challenge)。在106辆报名参赛的车辆中,有15辆在比赛当天参加了比赛,其中包括克里斯和他的团队设计的机器人悍马。


最终,这些自动驾驶汽车没有一辆赢得百万美元奖金。在旁观者看来,这些赛车看起来简直就像一群可怜虫:只见一辆参赛的大卡车慢慢地从灌木丛中退出来;另一辆车因为害怕影子而驶离了道路;18那位自动驾驶摩托车的发明者,在赛前的兴奋和欢呼中,忘记了把摩托车切换到自动驾驶模式,它在起跑线就一头栽倒了。


悍马行驶了7.4英里,最终在路边抛了锚。虽然它是比赛中表现最好的车辆,但它仅仅走完了5%的路程。红色车队研究了他们的比赛记录,发表了一份长篇报告,概述了这辆悍马的优缺点。他们在报告中列举了25分钟行驶过程中的一些问题。报告读起来就像电影《福禄双霸天》(The Blues Brothers,是历史上损毁车辆最多的电影)的剧本。

 

  • 撞上1号围栏桩;

  • 撞上2号围栏桩;

  • 短暂的停顿;

  • 撞上3号围栏桩;

  • 撞上岩石;

  • 通过发夹弯时转弯半径过小。


在红色车队的报告中,这些撞击被描述为“非正常行为”,但保险公司可能会更恰当地称之为事故。DARPA曾向参赛者宣布,比赛可以用普通四驱皮卡完成,但红色车队选择了一辆悍马,因为他们不希望硬件成为瓶颈。这在某些情况下确实有所帮助,例如,3号围栏桩是加固过的,坚固的悍马推了它近两分钟才终于把它推倒,继续前进。克里斯甚至称他们的悍马为“汽车破城槌,时速22英里的猛兽”。但是一辆坚硬的悍马并不足以赢得胜利。



问题是悍马几乎看不到它的去向。它的巨眼太原始,视力太差。除了长距离导航功能之外,悍马的大部分智能行为都涉及使用简单的规则对传感器做出反应。红色车队意识到了这些局限,对悍马进行了编程,让悍马在数据可能不可靠时忽略摄像头和激光扫描仪的数据,然后按照GPS坐标,沿着预定路线盲眼行驶。这就是在悍马致命的撞车之前发生的事情。它必须改进巨眼和任何支持巨眼的软件。


一场失败的比赛,一个全新的开始


对旁观者而言,DARPA无人车挑战赛可能看起来就是一次失败。美国有线电视新闻网以“机器人折戟挑战赛”为题总结了这次比赛。《大众科学》(Popular Science)称之为“DARPA的沙漠溃败”。从好的一面讲,正如一位观众所言,这是“拖车司机的好日子”。


但许多参赛者对结果非常满意。当晚,参赛者和组织者在位于终点的布法罗比尔赌场聚会,在那里,他们被一群热衷于制造机器人汽车的极客包围了。很快,所有人都能详细了解机器人悍马如何在崎岖的沙漠里跑7.4英里了!而且,在连续数月的连夜奋战和周末加班之后,他们终于可以补觉了。


DARPA的官员也很兴奋,互相祝贺这场比赛的成功。在之前的8年中,自从自动驾驶汽车领域的引领者之一恩斯特•迪克曼斯(Ernst Dickmanns)宣称“这个领域需要等到计算机变得更强大才有希望”,该领域就一直在寒冬中蛰伏。计算机的速度提高了25倍,DARPA无人车挑战赛迅速重燃了这个领域,让研究人员得以再度取得进展。


DARPA也更接近于实现国会的目标—到2015年使1/3的军用车辆实现自动驾驶(据我所知,这个目标并没有实现)。与参赛者一样,DARPA也拥有来自世界各地专家的文献,内容涉及如何制造可以在沙漠中自动行驶的汽车。“对我们而言,是否有车辆跑完整个赛程并不重要,”时任DARPA主任的安东尼•特瑟(Anthony Tether)解释道,“我们希望激起人们对这个领域的科学兴趣和工程兴趣。”


从这个角度看,这次比赛大获成功。它吸引了100多名申请者,并在短短几个月内就看到了450多家电视媒体和58家报纸的报道。《连线》(Wired)和《大众科学》等28家顶级杂志用大量篇幅报道了这一赛事。尽管他们当时并不知道,但这至少比重工业投资自动驾驶汽车技术提前了15年。


注:本文根据肖恩·格里什的《智能机器如何思考》整理而成

本内容为作者独立观点,不代表虎嗅立场。未经允许不得转载,授权事宜请联系hezuo@huxiu.com
如对本稿件有异议或投诉,请联系tougao@huxiu.com
正在改变与想要改变世界的人,都在 虎嗅APP
赞赏
关闭赞赏 开启赞赏

支持一下   修改

确定