都說無人車時代將沒有車禍!這是這么做到的?
11月初時,一輛無人駕駛公交車和一輛運貨卡車在拉斯維加斯相撞。這次事故中,沒有人受傷,也沒有任何財產受到嚴重損壞。但它卻吸引了許多媒體和公眾的關注,部分原因是其中一輛車正處于無人駕駛狀態。而且在事故發生前的1個小時內,這輛公交車始終在以無人駕駛模式運行。
這并不是第一次涉及無人駕駛車輛的交通事故。其他的事故還包括Uber在亞利桑那州、特斯拉在佛羅里達州以及其他幾家公司在加州涉及的意外。但在幾乎所有的案例中,都是人為失誤所致,而不是無人駕駛汽車導致了問題。
在拉斯維加斯,無人駕駛公交車發現前方有一輛卡車正在倒車,遂停了下來,等待它從離開公交車的軌道。但是,卡車的人類司機沒有看到公交車,始終在倒車。當卡車靠近時,公交車沒有移動(沒有前進也未后退),所以卡車裝上公交車的前保險杠。
作為研究無人駕駛系統超過10年的研究人員,我發現這一事件引發了許多問題:為什么公交車沒有按喇叭,或者是避開正在逼近的卡車?為什么它會停下而不移動到最安全的地方?如果無人駕駛汽車能讓道路變得更安全,那么更大的問題是:這些車輛應該怎樣做才能減少事故?
在我的實驗室里,我們正在研發無人駕駛汽車和公交車。我們想要解決根本性的安全挑戰:即使無人駕駛汽車做了它們應該做的所有事情,附近的汽車和卡車的司機仍然是存在缺陷、容易出錯的人類。
車禍是如何發生的
涉及到無人駕駛汽車的撞車事故主要有兩大原因:第一個問題是傳感器無法檢測到車輛周圍的情況。每個傳感器都有其獨特之處:GPS只對天空有清晰的視野,攝像頭需要在光線充足的條件下工作,而激光雷達無法在霧中發揮作用,普通雷達也不是特別準確。可能不會有另一個具有不同能力的傳感器來接管。目前還不清楚,對于無人駕駛汽車來說,理想的傳感器群組如何組成。而且,受成本和計算能力所限,解決方案不能只是增加越來越多的傳感器。
第二個主要問題是,當無人駕駛車輛遇到編寫軟件的人沒有預料到的情況,就像卡車司機沒有看到公交車,然后不斷繼續倒車。就像人類司機一樣,無人駕駛系統每秒鐘都必須做出數百個決策,根據來自環境的新信息做出調整。當無人駕駛汽車經歷過沒有被編程控制的事情時,它通常會停下來或停在路邊,等待情況發生改變。拉斯維加斯的公交車可能是在等著卡車繼續前行或離開,但卡車卻越來越近了。在這樣的情況下,公交車可能沒有被設定為按喇叭或倒車設計,也可能沒有空間來倒車。
設計師和程序員面臨的挑戰是,將來自所有傳感器的信息結合起來,創造出一種精確描述汽車周圍空間的場景,即計算機化的模型。然后,軟件就能做出解釋,從而幫助車輛導航,并與附近發生的任何事情進行互動。如果系統的感知不夠好,那么汽車就無法做出一個好的決定。造成特斯拉致命車禍的主要原因是,汽車的傳感器無法分辨出明亮的天空和前方的一輛白色大卡車之間的差別。
如果無人駕駛汽車只能滿足人類對減少碰撞的預期,那么它們還不足以實現安全駕駛。它們也必須成為“終極防御駕駛員”,當附近的人做出不安全舉動的時候,它們需要隨時準備做出反應。2017年3月在亞利桑那州坦佩市發生的一起Uber撞車事故就是一個例子。
據媒體報道,在那起事件中,本田CRV的司機在坦佩中心附近的一條主干道上駕車行駛。她想要向左拐,并穿過三條車道。她可以看到三條車道上有兩條道路堵塞了,而且沒有移動。但她看不到離她最遠的車道上的情況。而在這條車道上,Uber的汽車正以時速61公里的速度在限速64公里的區域內駕駛。這名本田司機決定左轉,在進入十字路口時撞上了Uber汽車。
正在接近十字路口的Uber車里的人類司機可能會認為,汽車會在穿過車道時轉彎。如果本田車上的司機注意到這種情況,并放慢速度,也許完全可以避免撞車事故。一輛比人類駕駛更安全的無人駕駛汽車也會做同樣的事情,但Uber并沒有對其進行相關編程。
改進測試
坦帕撞車事故和最近發生在拉斯維加斯發生的交通碰撞,都是無人即使騎車對形勢理解不夠充分,無法確定正確行動的例子。這些車輛遵守了它們被要求遵守的規定,但它們并沒有確保自己的決定是最安全的。這主要是因為大多數無人駕駛汽車接受測試的方式所致。
當然,最基本的標準是,無人駕駛汽車是否能遵守交通規則,遵守交通信號燈和標識,了解當地關于車道變化的法律規定,或者像守法司機一樣行事。但這僅僅是個開始。在無人駕駛汽車真正上路前,它們需要被編程指令,告訴它們當其他車輛做出非常規的事情時該如何反應。
測試人員需要將其他車輛視為對手,并制定極端情況的計劃。舉例來說,如果有其他卡車逆行,無人駕駛汽車該怎么辦?目前,無人駕駛汽車可能會試圖改變車道,但最終可能會停下來,等待情況好轉。當然,沒有人類司機會這樣做:人們會采取規避動作,即使這意味著打破一條規則,比如在沒有信號的情況下切換車道,將車開到路旁,甚至是超速行駛以避免撞車等。