
自DARPA挑戰賽以來,自動駕駛的規劃算法大量涌現,但目前還沒有一種算法能夠覆蓋所有的場景。
在面對高速場景、低速場景、自動泊車場景、復雜動態的非結構化道路場景,交通參與者密集場景等場景時,大多數自動駕駛系統會根據其模型最可能的場景來規劃運動,以確定周圍物體的作用。
目前大多數自動駕駛汽車能夠以3 Hz至10 Hz的速度運行運動規劃系統,但這遠遠不夠。
美國杜克大學內部孵化的公司Realtime Robotics能夠以1000 Hz運行,并行通過大量可能軌跡的數據網絡,從而讓系統在更短時間內考慮更多潛在結果,做出最佳決策。
這得益于他們專門為運動規劃定制的處理器,提高了運算效率。
Realtime Robotics最初在桌面手臂機器人上做實驗,基于FPGA開發出了一種可快速進行機器人運動規劃的定制處理器,使運動規劃流程的速度提升了三個數量級,而使用的電量僅為之前的二十分之一。
現在,他們計劃把這種芯片運用在自動駕駛汽車上。

一
為什么要關注運動規劃芯片技術?
答案很簡單,它是自動駕駛汽車上的決策大師,會決定車輛下一步要做什么。
為這個決策過程加速不僅意味著車輛做起決定來更加雷厲風行,還意味著決策質量的提高,并最終為車輛安全性添磚加瓦。
在這個無法預知的世界中,計算機是真正的“猜拳大師”,它非常擅長推測人類的下一步動作,尤其是在像公路這樣的半結構化環境中。
在對非確定性物體(那些有獨立動作的物體)的動作進行預測時,大多數計算機用的是概率性模型。
舉例來說,大多數模型都會默認高速上的前方車輛會待在自己的車道里以相同的速度進行巡航,如果不打轉向,它變線的概率比較低,至于突然剎車的概率就更低。
大多數自動駕駛系統運動規劃主要靠存儲模型,而這些模型涵蓋了大多數大概率情況,如果不出意外,車輛周邊物體會遵循這些模型運動。
這些模型能為車輛提供信息級別,這樣一來系統就能根據該級別做出運動規劃。
舉例來說,當系統無法判斷下一步會發生什么時它就會選擇減速停車。
不過,這樣的規劃每次只能對應一個場景,而非像奇異博士那樣一次看穿14000605種可能(包括那些低概率的可能)。
在理想化狀態下,自動駕駛系統確實應該一次看穿所有可能并做出那個最優抉擇以便讓車輛保持最佳狀態。
可惜,大多數自動駕駛系統所用的芯片都“智商”不夠用,它們每次只能處理一個運動規劃,速率介于3 Hz與10 Hz之間。
Realtime Robotics的技術就強大得多,它能一次做出數十甚至數百個運動規劃,每個運動耗時還不到1毫秒,也就是說Realtime Robotics的運動規劃速率為1000 Hz。
有了這項技術,系統就能在更短時間里考慮更多可能并從中找出最佳決策。

Realtime Robotics在搭建車輛運動規劃系統時第一個用到的是網格,整個過程在5-10秒之間,這個預先計算好的巨大圖表包含了所有車輛在無障礙環境下的不同軌跡。
除此之外,網格還包含了節點與界限:
其中節點指的是特定車輛構型(比如位置、速度和行駛方向),而界限則連接了節點并代表著1秒之內這些構型間的軌跡。
在這個網格上有數不清的界限,它反映了網格涵蓋的完整時間線上構型狀態間的所有可能。
每個界限都有自己的“代價”,比如燃料消耗或乘客舒適度,其中“代價”最低的界限即是最高效也最平緩的動作。
二
在每個規劃區間(約為每10毫秒)內,Realtime的芯片用了如下步進順序來完成運動規劃:
1、將來自攝像頭、雷達、激光雷達和其它傳感器的感知數據灌入自動駕駛系統,系統用這些數據來識別靜止障礙物(例如建筑物和樹木)、可確定的移動障礙(比如足球)和那些非確定的移動物體(比如其他車輛、行人和自行車等)。
帶有靜止和可確定障礙物(在模型中會被看做大號的靜止物體)地理位置的感知數據會下沉入網格,而那些與障礙物相交的界限“代價”很高,因為你可不想讓自己的車跟在這些障礙物屁股后。
2、至于那些非確定性的障礙物,系統就必須進行有根據的推測,判斷它們在規劃時間間隔中會遵循什么軌跡。
目前已經有許多研究人員在這個問題上花了大量時間,因此相關的模型并不少。系統會根據這些模型做出推測,在模型中將非確定性障礙視作靜止物體,并對網格界限進行升級。
3、網格中“吸附”了所有障礙物數據后,真正的運動規劃就要開始了。這時,Realtime Robotics的定制化硬件會正式登場,其核心秘方是FPGA芯片,它能在硬件中完成網格數據的編碼,隨后穿過網格界限(大多數是平行的)以找尋那個“代價”最低的路徑。
硬件的平行性讓運動規劃步驟變得異常迅速,不到一毫秒就能生成一個規劃。此外,如果你想擴大規模,直接添加更多硬件就行。
4、這時,你從Realtime系統中拿到的運動規劃已經完全可以和其他系統平起平坐了。它們的不同在于Realtime的系統比競品快了一到兩個數量級,這也意味著它能直接繞回第三步,然后用稍有不同的推測重新將這個過程走一遍,以便猜測非確定的移動障礙物下一步會有什么動作。
鑒于大多數模型只做概率性的推測,因此它們對未來的判斷只能算很有可能,與真實發生的還是會有差距,情況越復雜推測正確的難度就越大。重復執行第三和第四步,不論是10遍還是100遍,你就能挑出可能性最高的情況,做出最有安全保證的運動規劃。
5、最后一步就是執行運動規劃,或者更精確地說,告訴車輛下一步切入網格的哪個界限。
鑒于每個界限代表著車輛1秒鐘的行駛時間,而一個新的運動規劃每10毫秒就能完成計算和執行。
因此,最后一步其實更像是每秒刷新100遍的運動規劃中的第一個動作。車輛可能會按這個規劃執行,也可能轉投效果更好的新規劃(甚至是完全不同的)。
在這個無法預知的世界里,更快地運動規劃就意味著你的車輛能以最快的速度做出最佳決策。
這一切不只是要在短時間內生成大量運動規劃,還與速度息息相關,畢竟系統做運動規劃時,車輛可是在高速行駛的。
在60公里/小時的速度上,10毫秒與100毫秒規劃速度之間能差出一米半的距離,這點距離足可以決定一個行人的生死。
在更快的速度和更加受限的環境中,例如高速公路上,系統可能要考慮更少的規劃以換取更快的速度,從而為車輛騰出更多的反應空間。
在更復雜的環境中車輛速度較慢,系統就可以花更長的時間進行規劃以應對不可預知的情況。
三
Realtime已經在模擬環境中做了大量測試,視頻中列舉了在兩個場景下,這一系統被證明安全性顯著提高:
1騎自行車者(沒有通行權)穿過一個十字路口

一個騎自行車的人在一輛車的遮擋下,違規通過十字路口。
通過模擬不同車速,自行車速度和自行車穿越時間下,以目前自動駕駛做決策的平均速度10Hz為例,會有6.25%的幾率發生碰撞;而在Realtime系統1000Hz下碰撞不會發生。
2行人突然從停放的汽車后面出現

行人突然從停放的汽車后面出現,從感知到做出決策的時間很短,通過不同車速和行人移動速度的不同組合測試,發現按照一般決策系統處理的速度22%的幾率會擊中行人,而更快決策速度下,可以避免此事故。
毫無疑問,計算的速度當然是越快越好。
目前,Realtime Robotics的芯片已經應用在桌面手臂機器人上,在自動駕駛汽車上的應用還處于模擬環境中,在真實交通環境中的表現如何,還有待進一步測試。
在這個以AI與傳感器為主要創新突破口的時代,Realtime的芯片創新確實令人欣喜,下一步就看業界怎么用好這項技術了。