編譯 | 王宇欣、Edison Ke、Rik R
來源 | IEEE Spectrum
在瑞典哥德堡東部的一個測試車道上,人們被引入自動駕駛汽車中,即將開啟他們的首次試駕之旅。
實際上,這些車輛並不完全是自動化的——車裡還有一位人類陪駕。人們參與這項實驗,是想看看自動駕駛汽車會給他們帶來怎樣的體驗。
Zenuity 是由沃爾沃(Volvo)與一家瑞典的汽車安全公司 Autoliv 合資成立的,他們煞費苦心策劃這次試駕活動,是為了讓消費者親身體驗自動駕駛汽車的可行性,以及過人的安全性。
如果自動駕駛汽車要被推向大眾、真正上路行駛,公眾也需要了解其駕駛規則,知道如何安全跟車。
事實上,汽車也許不再像以前那樣需要人類陪駕了。
自動駕駛汽車中已經配備了先進的計算機視覺、雷達技術和計算平臺,以避免行車事故,提升行車安全性。汽車會繼續承接更多的駕駛任務,直到能夠完全獨立地駕駛自己。這也將是汽車取代馬車之後的最大交通革命。
不過,打造自動駕駛汽車的能力,與證明其安全性的能力是兩回事。
交通狀況就像天氣一樣難以預測,要想即刻應對各種不同的狀況,就需要測試無數個場景。
僅僅透過行車來全面測試所有場景,那得花上幾個世紀。因此,我們必須找到其它方法來確保其安全性,比如透過計算機模擬和數學建模。眼下,人們正將實地的交通測試與用例廣泛的擴增實境模擬演算法相結合,並在世界上最先進的測試車道上展開測試,嘗試真正掌握保證自動駕駛行車安全性的方法。
晴朗的天氣難不住自動駕駛汽車。但其它情況呢?
儘管它們不常發生,比如雷雨天氣,道路上會佈滿了被風颳下的樹枝。這與日落西山,一隻麋鹿悠然過道的場景完全不同,對汽車提出的挑戰也截然不同。
汽車製造商可能會因那些反應不當的車輛而被追究責任,因而他們就希望能夠對車輛的響應方式進行預估。對我們消費者來說,最大的問題則是「怎樣得知車輛是安全的?」
在此之前,必須搞清楚的一點是,一輛自動駕駛汽車的安全性是指什麼。
安全並不意味著完美,因為環境資訊永遠不可能完美。相反,安全性指的是,自動駕駛汽車要處理好它所應當處理好的問題,例如遵守車速限制、隨車併入車道,或是在停車標誌處觀察道路通行權。在此基礎上,安全性還要求汽車必須認識到自己是否有超出其行車設計規範的風險。例如,處於森林中的車輛不應該再嘗試繼續行車。
從美英兩國的資料來看,在造成人員死亡或重傷的各類交通事故中,有 90% 要部分歸因於人類司機犯下的錯誤。正因如此,對於什麼是「足夠安全的」這個問題,一個簡單的回答通常是:「好過人類司機」。但各中細節卻發人深思。要超越酒駕司機很容易,甚至是超過人類司機的平均安全水平。但是,要想超過中值水平的大多數人類司機,可能會有些困難。
因此,對待自動駕駛汽車的態度既不能太嚴格,以致拖慢了先進技術挽救生命的腳步,也不應當太寬鬆,而把最初的消費者當成是小白鼠。相反,首批自動駕駛車輛的安全係數應明顯優於人類司機的中值水平。如果汽車上的每個部件都能表現得比人類更好,且執行在每個部件上的複雜演算法都可以共同作用來驅動車輛,那麼有理由得出結論:自動駕駛汽車是一個比人類更好的駕駛員。
這意味著,自動駕駛汽車系統要能應對給定範圍內的任意情況,且能對其餘情況做出適當反應。比如,一名跳傘者直接降落在了汽車前方,這種情況就得在設計安全測試場景時事先考慮到。
雪天安全測試:在惡劣的天氣情況下,比如大雪天氣,自動駕駛汽車必須意識到其雷達(頂部)、相機(底部)和其它感測器可能會受到損害,同時相應地調整其駕駛策略。
任何潛在的不安全因素——軟體錯誤、硬體故障、感測器限制、意外的天氣條件——都必須證明是非常罕見的。從經驗來看,任何一個這類問題的發生機率都應當在十億分之一以內。在這樣低的故障率下,綜合考慮所有這些潛在因素,才可以保證車輛的安全性,進而交付最終產品,而無需進行太長時間的測試。
然而,對於那些即使是最好的人類司機也無法解決的問題,人們不應該指望汽車來解決。
其中一個就是有軌電車問題(trolley dilemma,救一個還是救幾個?),通常由倫理學教授和媒體丟擲。在這種假設的情況下,你有兩種選擇:1. 不採取任何行動,讓失控的電車撞死那條軌道上的幾個人;2. 主動按下開關,讓電車駛向另一條軌道,撞死那條軌道上的另一個人。
這與自動駕駛汽車的相似之處是顯而易見的。例如,一輛自動駕駛汽車也遇到了這種情況,它也只有兩種選擇:1. 直接開過去殺死幾個行人,2. 轉向一個路障犧牲自己的主人。
不過這個問題只是題外話。由於在任何一起致命事故中,死亡風險都是很低的,那麼,要在這兩種情況下不得不進行二選一的機率就更低了。我們能夠對自動駕駛汽車提出的所有要求就是,它們應該避免讓我們做出這種不可能的選擇。
一旦我們擁有了看似安全的自動駕駛汽車,我們就必須證明它是安全的。
一種方法是直接測試法。在這裡,車輛在真正的交通中進行測試,直到在統計意義上被證明是安全的,但是這將在路上花費數億甚至數十億小時。第一批汽車正以這種方式進行測試,即使那些駕駛這些汽車的人是實驗中不知情的參與者。
此外,也有可能採用分而治之的方法。迴避直接要求解決複雜的問題,如車輛的感測器是否能在暴風雪中發現一隻橫穿馬路的鹿。取而代之的是一些更容易回答的簡單問題,如汽車是否能分辨感測器是否被雪遮蓋了,或者硬體是否由於低溫無法工作。你還可以順便再問一個問題:「如果是的話,汽車能否相應地調整它的決策方法?」然後我們就可以用最適合的驗證方法來解決這些小問題,無論是計算機模擬,快速旋轉測試軌道,還是把車放在真實的交通環境中。
在現實中,任何可行的方法都將介於直接測試和分而治之模式之間。因為技術在快速迭代中發展,所以強調分而治之是明智的。例如,無論何時當硬體或軟體發生了變化,使用直接測試法收集的任何資料都可能不再有效。分而治之則可以專注於重新測試那些更新了的系統的安全性,同時避免重新收集已經擁有的大量資料。
為了解決分而治之問題,可以將自動駕駛汽車的系統分為四部分——人機介面、感知、決策和車輛控制。人機介面與車輛及其使用者互動的方式有關。感知是車輛的感測器如何建立其周圍環境的檢視,決策計劃如何應對該檢視,而車輛控制是計劃的物理執行。每個元件都有自己的極端情況和方法來驗證它是否安全。
考慮到汽車在大多數情況下是自動執行的,但仍然需要偶爾的人工干預,而在這樣的情況下,使用者可能會豪無預警地試圖控制車輛,從而影響車輛的效能。
為了觀察人們如何做出反應,我們透過在車輛後面隱藏一個專業司機來模擬自動駕駛,從而給人一種印象,那就是車輛在大部分時間都在自己駕駛。我們稱它為「綠野仙蹤」車,因為就像電影中著名的奧茲巫師一樣,我們誤導駕駛員的注意力使其忽視「幕後人物」,就像奧茲巫師做的那樣。
這並不是一個精心設計的騙局——我們只是把實際的駕駛員隱藏在膠合板後面。也許令人驚訝的是,測試物件很少質疑後座的外殼。當其中一個人提出疑問時,我們就把它解釋為一個用來存放原型機所必需的電腦或其他裝置的空間。令人滿意的是,我們的測試物件可以坐下來體驗一輛「真正的」自動駕駛汽車。事實上,他們覺得非常舒適,經常感到無聊甚至是睡著了——這說明,如果汽車需要他們在棘手的情況下接手,我們不能總是依賴司機的快速反應。
自動駕駛模擬:對某些場景進行測試實在太危險了,比如測試在開動的自動駕駛汽車前有行人行走的情況,所以這些複雜的「極端情況」是在模擬中進行的,以測試汽車的反應。
隨著人類對車輛的監督減少,證明車輛可以在它可能遇到的任何情況下不受監督地安全自動駕駛成為了更大的問題。這意味著在執行獨立的感測器測試後,將完全依靠車輛的感測器了。
例如,我們可以在真實的駕駛條件下測試攝像頭,但這與在螢幕上顯示真實道路的增強影像同樣容易,卻很難測試相機是否能在現實世界中探測到路上的麋鹿——畢竟我們沒法讓麋鹿配合我們做測試。但我們可以透過在任何我們所需要的距離和角度新增麋鹿的影像來測試攝像機是否能很好地識別駝鹿。
而當我們測試雷達時,我們將雷達放置在一個房間裡,在房間裡我們可以部分或完全地用水或雪覆蓋雷達,並測試它是否能識別出這些阻礙。
當然,我們也測試這些感測器如何在實際的車輛中協同工作。我們可以在讓車輛執行自動駕駛模式,觀察它如何收集和使用感測器資料。鑑於我們主要關心的是瞭解車輛的感測器的功能,所以在手動駕駛過程中也收集感測器資料,以瞭解車輛檢測周圍環境的情況。
這些駕駛測試也帶來了一個確定車輛是否能識別自己的極限情況的機會——例如,雷達在大霧中能工作得很好,但鐳射雷達和照相機卻不能,車輛必須要能認識到這些限制並作出相應的調整。
然後是感知。
一般來說,測試感測器執行這項工作的最佳方式是在各種好壞天氣下將真正的車輛放在真實的交通條件下測試。由於很少出現探測路上的殘骸這類不太常見的極端情況,真實交通測試通常需要一些設計好的測試道路來補充。
AstaZero 試驗場是一個部分歸瑞典研究院所有的大型測試道路。它穿過樹木繁茂的區域和一個模擬城鎮的區域。可以將 AstaZero 配置為任何我們希望自動駕駛汽車處理的測試交通條件。
我們用越來越複雜的虛擬模擬來補充這種交通測試。與此同時,增強影像可以幫助測試某些極端情況。例如,利用擴增實境技術,我們可以用在瑞典行駛的一輛汽車來測試其遵守美國交通標誌的情況;我們所要做的就是把這些交通標誌疊加在瑞典的標誌上。這種方法在測試危險的極端情況時更有幫助,比如在行人附近高速行駛。
決策環節必須與感知分開評估。也就是說,不是要測試車輛是否能正確地看待世界,而是要判斷車輛如何與感知系統提供的不確定性和不完整性相適應。舉個例子,一個盲點角落中可能會藏著一個行人,當車輛靠近時,行人可能會步入道路。決策制定系統必須認識到視線受阻這一情況,在接近角落時計劃減速,將限制納入系統。就如同人類駕駛員一般,車輛必須知道自己的侷限性。
我們正在構建並還在不斷擴充套件龐大的情景資料庫,測試決策系統對我們選擇的任意情景的反應情況。考慮到這一情況,在單一車道一輛自動駕駛汽車在行駛,一輛巨大的 18 輪卡車則緊隨其後。
理想情況下,車輛會識別出它正在卡車的盲區行駛,隨即調整位置以減少事故發生的可能性。我們的場景資料庫可以將車輛的決策過程暴露於各種場景變化之下,包括車道變化、合併,或者是不同行車速度、位置、車間距等不同交通狀況,從而觀察車輛將會作出怎樣的決定。
目前,我們的車輛可以很好地處理車道變化,儘管如此,我們仍然要求自動駕駛車輛要與周圍車輛保持較大距離,這一距離比人類駕駛員所需的距離更大。
現在你看到了:如果自動駕駛汽車周圍的環境中沒有拋錨的汽車或是橫穿馬路的麋鹿等目標,確保其能夠識別這些物體將是非常困難的,但是真正的素材可以用物體的影像進行增強,從而訓練車輛發現它們。
在最後,有一個同樣重要的環節是,車輛必須能夠執行其駕駛計劃。
我們需要知道車輛的正常行駛及制動能力能力可能會受到路況條件的限制,比如結冰等。由於車輛部件的精確模型,我們可以依靠計算機進行模擬路況。但是我們不能模擬所有的情況;為了測試車輛如何處理輪胎爆胎或者意外的坑窪等,我們必須要在測試車道上對車輛進行測試。
我們在測試車道上花費了相當多的時間來應對道路上物體的各種挑戰。即使像是從另一輛汽車上掉落的小石塊或是排氣管這些小東西,如果速度足夠快也能對車輛本身造成巨大的傷害。對於這些物體來說,我們需要車輛能夠從足夠遠的距離檢測到這些目標並及時制動或是改變車道。
我們的測試仍在進行;雖然已經取得了很多的結果,但是仍有一些特定的挑戰。比如,道路上沒有被鐳射雷達或雷達檢測到的輪胎。為了讓車輛及時對這些障礙物做出反應,就需要提高攝像頭的檢測能力。
使用分而治之的方法使我們能夠測試系統元件如何協同工作。要驗系統的完整性意味著要進行無數種不同交通情況和故障組合的計算機模擬。當然,其他公司也正在以不同的方式來解決這個問題。根據經驗來看,一些大型的老牌公司依靠一些暴力方法。但是,我們看到了模組化的價值,根據需要更換硬體。我們還希望讓駕駛員參與其中,學習如何構建對使用者安全的自動駕駛車輛。
此外,也可以使用這些方法來測試完全自動駕駛車輛的冗餘度。假設車輛的剎車失靈。車輛必須要執行一系列複雜的行動:檢測問題、計劃行動且以最小風險做出反應、使用二級系統執行該計劃。感測器、控制單元、軟體、通訊系統和機械系統等元件必須包含類似的冗餘,並且必須進行全面、徹底的測試。
即便如此,我們仍然需要驗證車輛完整的系統在真實交通能安全執行。汽車製造商和自動駕駛汽車初創公司將為這最後一步部署測試車隊和司機。
自動駕駛汽車正在上路,它們的存在會使道路變得更加安全、更加高效。不過,也不要期待很快見到他們。驗證每個角落情況仍然需要大量的時間。一旦自動駕駛汽車在某一特定情景下(比如 7 月份的紐約市中心)得到驗證,還將進行額外的檢驗以確保它可以在冬季的同一區域下正常執行,以及上海市中心,郊區道路等等。
關注那些具體存在的情況,而不要執著於達到完美。將那些海量的安全驗證分解成更小的可管理任務,這樣的話,自動駕駛汽車走進世界各地的客戶手中才完全可期。