11月初,一辆自动驾驶接驳车与一辆送货卡车在拉斯维加斯相撞。事故中无人受伤,也没有财产遭受严重损失,但事件仍引起了媒体和公众的关注,部分原因是其中一辆车由自动驾驶;此外,这辆接驳车在事故发生前仅运行了不到一小时。
这并非自动驾驶车辆首次发生碰撞。其他事故涉及优步车辆 在亚利桑那州发生的事故、一辆处于“自动驾驶”模式的特斯拉在佛罗里达州发生的事故,以及另外几起 事故发生在加利福尼亚州。但在几乎所有案例中,问题都是由人为失误造成的,而非自动驾驶汽车。
在拉斯维加斯,自动驾驶接驳车注意到前方一辆卡车正在倒车,于是停下来等待卡车让开。但卡车司机没有看到接驳车,继续倒车。卡车越靠越近,接驳车却没有前进或后退,于是卡车擦碰到了接驳车的前保险杠。

过去十年来,我一直从事自主系统研究。我认为,这一事件引发了许多问题:接驳车为什么没有鸣笛,或倒车避开驶近的卡车?停车不动是最安全的做法吗?如果自动驾驶汽车要让道路更安全,更关键的问题是:这些车辆应该怎样做才能减少事故?在我的实验室里,我们正在研发自动驾驶汽车和接驳车。我们希望解决根本性的安全挑战:即使自动驾驶车辆完全按照预期行驶,附近汽车和卡车的驾驶员仍然是有缺陷、容易出错的人类。
事故如何发生
自动驾驶车辆发生事故主要有两个原因。第一个问题是传感器未能检测到车辆周围发生的情况。每种传感器都有其局限:GPS只有在天空视野开阔时才能工作;摄像头需要充足的光线;激光雷达在雾中无法工作;雷达的准确度也不高。可能没有其他具备不同能力的传感器可以接替工作。目前还不清楚自动驾驶车辆的理想传感器组合是什么;而且成本和计算能力都是限制因素,解决方案不能只是不断增加传感器。
第二个主要问题是车辆遇到了软件编写者没有预料到的情形——例如卡车司机没有看到接驳车,倒车撞向它。和人类驾驶员一样,自动驾驶系统每秒都必须作出数百项决定,并根据从环境中不断获得的新信息进行调整。当自动驾驶汽车遇到程序未设定应对方式的情况时,通常会停车或驶到路边,等待情况发生变化。拉斯维加斯的接驳车想必是在等卡车让开后再继续行驶,但卡车却不断靠近。接驳车可能没有被设定在这种情况下鸣笛或倒车,也可能没有足够空间倒车。
设计人员和程序员面临的挑战,是整合所有传感器的信息,准确呈现车辆周围的空间,也就是建立一个计算机模型。随后,软件可以解读这一模型,帮助车辆导航并应对附近可能发生的各种情况。如果系统的感知能力不够好,车辆就无法作出正确决策。特斯拉致命事故的主要原因是,汽车传感器无法区分明亮的天空与横穿汽车前方的一辆大型白色卡车。
如果自动驾驶车辆要满足人们对减少交通事故的期待,仅仅安全驾驶还不够。它们还必须成为终极防御型驾驶者,随时准备应对附近其他车辆的不安全驾驶。2017年3月,亚利桑那州坦佩市发生的一起优步事故就是一例。
据媒体报道,在那起事故中,一名本田CR-V驾驶员当时正行驶在坦佩市中心附近的一条主干道上。她想左转,穿过三条对向车道。她能看到其中两条车道堵满车辆,车流停滞。她看不到离自己最远的那条车道,而一辆优步自动驾驶汽车正以每小时38英里的速度行驶在限速每小时40英里的路段上。本田车转弯时,撞上了驶入交叉路口的优步汽车。
如果优步车上坐着一名人类驾驶员,驶近交叉路口时,他可能会预料到有车辆横穿自己的车道。驾驶员可能会注意到自己无法看清这种情况是否正在发生,于是减速,也许就能完全避免碰撞。比人类更安全的自动驾驶汽车也应该采取同样做法,但优步汽车并未被设定这样做。
改进测试
坦佩市的事故和最近发生在拉斯维加斯的事故都表明,车辆对情形的理解不足,无法判断正确的应对方式。车辆遵循了既定规则,却没有确保自己的决策是最安全的。这主要是因为大多数自动驾驶车辆的测试方式如此。
当然,基本标准是看自动驾驶汽车能否遵守道路规则:遵守交通信号灯和标志,了解当地关于变道打信号灯的规定,并在其他方面像守法驾驶员一样行驶。但这只是起点。
自动驾驶车辆要真正上路,必须先通过编程,学会在其他车辆行为异常时如何应对。测试人员需要把其他车辆视为潜在对手,并为极端情形制定方案。例如,如果一辆卡车逆向行驶,汽车应该怎么办?目前,自动驾驶汽车可能会尝试变道,但也可能最终突然停下,等待情况好转。当然,人类驾驶员不会这么做:为了避开碰撞,人会采取规避行动,即使这意味着违反交通规则,比如不打信号灯就变道、驶上路肩,甚至加速。
必须教会自动驾驶汽车理解周围环境及其情境:迎面驶来的汽车如果在另一条车道上,就不会构成危险;但如果它在本车道上,情况就完全不同。汽车设计者应根据车辆执行困难任务的表现进行测试,例如在拥挤的停车场停车,或在施工路段变道。这听起来很像给人类驾驶员进行驾驶考试——如果自动驾驶汽车和人类要在道路上安全共存,测试就应该如此。

