欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

都说无人车时代将没有车祸!这是这么做到的?

程序员文章站 2022-03-15 18:10:14
11月初时,一辆无人驾驶公交车和一辆运货卡车在拉斯维加斯相撞。这次事故中,没有人受伤,也没有任何财产受到严重损坏。但它却吸引了许多媒体和公众的关注,部分原因是其中一辆车正处于无人驾驶状态。而且在事故发...

都说无人车时代将没有车祸!这是这么做到的?

11月初时,一辆无人驾驶公交车和一辆运货卡车在拉斯维加斯相撞。这次事故中,没有人受伤,也没有任何财产受到严重损坏。但它却吸引了许多媒体和公众的关注,部分原因是其中一辆车正处于无人驾驶状态。而且在事故发生前的1个小时内,这辆公交车始终在以无人驾驶模式运行。

这并不是第一次涉及无人驾驶车辆的交通事故。其他的事故还包括Uber在亚利桑那州、特斯拉在佛罗里达州以及其他几家公司在加州涉及的意外。但在几乎所有的案例中,都是人为失误所致,而不是无人驾驶汽车导致了问题。

在拉斯维加斯,无人驾驶公交车发现前方有一辆卡车正在倒车,遂停了下来,等待它从离开公交车的轨道。但是,卡车的人类司机没有看到公交车,始终在倒车。当卡车靠近时,公交车没有移动(没有前进也未后退),所以卡车装上公交车的前保险杠。

作为研究无人驾驶系统超过10年的研究人员,我发现这一事件引发了许多问题:为什么公交车没有按喇叭,或者是避开正在逼近的卡车?为什么它会停下而不移动到最安全的地方?如果无人驾驶汽车能让道路变得更安全,那么更大的问题是:这些车辆应该怎样做才能减少事故?

在我的实验室里,我们正在研发无人驾驶汽车和公交车。我们想要解决根本性的安全挑战:即使无人驾驶汽车做了它们应该做的所有事情,附近的汽车和卡车的司机仍然是存在缺陷、容易出错的人类。

车祸是如何发生的

涉及到无人驾驶汽车的撞车事故主要有两大原因:第一个问题是传感器无法检测到车辆周围的情况。每个传感器都有其独特之处:GPS只对天空有清晰的视野,摄像头需要在光线充足的条件下工作,而激光雷达无法在雾中发挥作用,普通雷达也不是特别准确。可能不会有另一个具有不同能力的传感器来接管。目前还不清楚,对于无人驾驶汽车来说,理想的传感器群组如何组成。而且,受成本和计算能力所限,解决方案不能只是增加越来越多的传感器。

第二个主要问题是,当无人驾驶车辆遇到编写软件的人没有预料到的情况,就像卡车司机没有看到公交车,然后不断继续倒车。就像人类司机一样,无人驾驶系统每秒钟都必须做出数百个决策,根据来自环境的新信息做出调整。当无人驾驶汽车经历过没有被编程控制的事情时,它通常会停下来或停在路边,等待情况发生改变。拉斯维加斯的公交车可能是在等着卡车继续前行或离开,但卡车却越来越近了。在这样的情况下,公交车可能没有被设定为按喇叭或倒车设计,也可能没有空间来倒车。

设计师和程序员面临的挑战是,将来自所有传感器的信息结合起来,创造出一种精确描述汽车周围空间的场景,即计算机化的模型。然后,软件就能做出解释,从而帮助车辆导航,并与附近发生的任何事情进行互动。如果系统的感知不够好,那么汽车就无法做出一个好的决定。造成特斯拉致命车祸的主要原因是,汽车的传感器无法分辨出明亮的天空和前方的一辆白色大卡车之间的差别。

如果无人驾驶汽车只能满足人类对减少碰撞的预期,那么它们还不足以实现安全驾驶。它们也必须成为“终极防御驾驶员”,当附近的人做出不安全举动的时候,它们需要随时准备做出反应。2017年3月在亚利桑那州坦佩市发生的一起Uber撞车事故就是一个例子。

据媒体报道,在那起事件中,本田CRV的司机在坦佩中心附近的一条主干道上驾车行驶。她想要向左拐,并穿过三条车道。她可以看到三条车道上有两条道路堵塞了,而且没有移动。但她看不到离她最远的车道上的情况。而在这条车道上,Uber的汽车正以时速61公里的速度在限速64公里的区域内驾驶。这名本田司机决定左转,在进入十字路口时撞上了Uber汽车。

正在接近十字路口的Uber车里的人类司机可能会认为,汽车会在穿过车道时转弯。如果本田车上的司机注意到这种情况,并放慢速度,也许完全可以避免撞车事故。一辆比人类驾驶更安全的无人驾驶汽车也会做同样的事情,但Uber并没有对其进行相关编程。

改进测试

坦帕撞车事故和最近发生在拉斯维加斯发生的交通碰撞,都是无人即使骑车对形势理解不够充分,无法确定正确行动的例子。这些车辆遵守了它们被要求遵守的规定,但它们并没有确保自己的决定是最安全的。这主要是因为大多数无人驾驶汽车接受测试的方式所致。

当然,最基本的标准是,无人驾驶汽车是否能遵守交通规则,遵守交通信号灯和标识,了解当地关于车道变化的法律规定,或者像守法司机一样行事。但这仅仅是个开始。在无人驾驶汽车真正上路前,它们需要被编程指令,告诉它们当其他车辆做出非常规的事情时该如何反应。

测试人员需要将其他车辆视为对手,并制定极端情况的计划。举例来说,如果有其他卡车逆行,无人驾驶汽车该怎么办?目前,无人驾驶汽车可能会试图改变车道,但最终可能会停下来,等待情况好转。当然,没有人类司机会这样做:人们会采取规避动作,即使这意味着打破一条规则,比如在没有信号的情况下切换车道,将车开到路旁,甚至是超速行驶以避免撞车等。