自DARPA挑戰(zhàn)賽以來(lái),自動(dòng)駕駛的規(guī)劃算法大量涌現(xiàn),但目前還沒(méi)有一種算法能夠覆蓋所有的場(chǎng)景。
在面對(duì)高速場(chǎng)景、低速場(chǎng)景、自動(dòng)泊車場(chǎng)景、復(fù)雜動(dòng)態(tài)的非結(jié)構(gòu)化道路場(chǎng)景,交通參與者密集場(chǎng)景等場(chǎng)景時(shí),大多數(shù)自動(dòng)駕駛系統(tǒng)會(huì)根據(jù)其模型最可能的場(chǎng)景來(lái)規(guī)劃運(yùn)動(dòng),以確定周圍物體的作用。
目前大多數(shù)自動(dòng)駕駛汽車能夠以3 Hz至10 Hz的速度運(yùn)行運(yùn)動(dòng)規(guī)劃系統(tǒng),但這遠(yuǎn)遠(yuǎn)不夠。
美國(guó)杜克大學(xué)內(nèi)部孵化的公司Realtime Robotics能夠以1000 Hz運(yùn)行,并行通過(guò)大量可能軌跡的數(shù)據(jù)網(wǎng)絡(luò),從而讓系統(tǒng)在更短時(shí)間內(nèi)考慮更多潛在結(jié)果,做出最佳決策。
這得益于他們專門為運(yùn)動(dòng)規(guī)劃定制的處理器,提高了運(yùn)算效率。
Realtime Robotics最初在桌面手臂機(jī)器人上做實(shí)驗(yàn),基于FPGA開(kāi)發(fā)出了一種可快速進(jìn)行機(jī)器人運(yùn)動(dòng)規(guī)劃的定制處理器,使運(yùn)動(dòng)規(guī)劃流程的速度提升了三個(gè)數(shù)量級(jí),而使用的電量?jī)H為之前的二十分之一。
現(xiàn)在,他們計(jì)劃把這種芯片運(yùn)用在自動(dòng)駕駛汽車上。
一
為什么要關(guān)注運(yùn)動(dòng)規(guī)劃芯片技術(shù)?
答案很簡(jiǎn)單,它是自動(dòng)駕駛汽車上的決策大師,會(huì)決定車輛下一步要做什么。
為這個(gè)決策過(guò)程加速不僅意味著車輛做起決定來(lái)更加雷厲風(fēng)行,還意味著決策質(zhì)量的提高,并最終為車輛安全性添磚加瓦。
在這個(gè)無(wú)法預(yù)知的世界中,計(jì)算機(jī)是真正的“猜拳大師”,它非常擅長(zhǎng)推測(cè)人類的下一步動(dòng)作,尤其是在像公路這樣的半結(jié)構(gòu)化環(huán)境中。
在對(duì)非確定性物體(那些有獨(dú)立動(dòng)作的物體)的動(dòng)作進(jìn)行預(yù)測(cè)時(shí),大多數(shù)計(jì)算機(jī)用的是概率性模型。
舉例來(lái)說(shuō),大多數(shù)模型都會(huì)默認(rèn)高速上的前方車輛會(huì)待在自己的車道里以相同的速度進(jìn)行巡航,如果不打轉(zhuǎn)向,它變線的概率比較低,至于突然剎車的概率就更低。
大多數(shù)自動(dòng)駕駛系統(tǒng)運(yùn)動(dòng)規(guī)劃主要靠存儲(chǔ)模型,而這些模型涵蓋了大多數(shù)大概率情況,如果不出意外,車輛周邊物體會(huì)遵循這些模型運(yùn)動(dòng)。
這些模型能為車輛提供信息級(jí)別,這樣一來(lái)系統(tǒng)就能根據(jù)該級(jí)別做出運(yùn)動(dòng)規(guī)劃。
舉例來(lái)說(shuō),當(dāng)系統(tǒng)無(wú)法判斷下一步會(huì)發(fā)生什么時(shí)它就會(huì)選擇減速停車。
不過(guò),這樣的規(guī)劃每次只能對(duì)應(yīng)一個(gè)場(chǎng)景,而非像奇異博士那樣一次看穿14000605種可能(包括那些低概率的可能)。
在理想化狀態(tài)下,自動(dòng)駕駛系統(tǒng)確實(shí)應(yīng)該一次看穿所有可能并做出那個(gè)最優(yōu)抉擇以便讓車輛保持最佳狀態(tài)。
可惜,大多數(shù)自動(dòng)駕駛系統(tǒng)所用的芯片都“智商”不夠用,它們每次只能處理一個(gè)運(yùn)動(dòng)規(guī)劃,速率介于3 Hz與10 Hz之間。
Realtime Robotics的技術(shù)就強(qiáng)大得多,它能一次做出數(shù)十甚至數(shù)百個(gè)運(yùn)動(dòng)規(guī)劃,每個(gè)運(yùn)動(dòng)耗時(shí)還不到1毫秒,也就是說(shuō)Realtime Robotics的運(yùn)動(dòng)規(guī)劃速率為1000 Hz。
有了這項(xiàng)技術(shù),系統(tǒng)就能在更短時(shí)間里考慮更多可能并從中找出最佳決策。
Realtime Robotics在搭建車輛運(yùn)動(dòng)規(guī)劃系統(tǒng)時(shí)第一個(gè)用到的是網(wǎng)格,整個(gè)過(guò)程在5-10秒之間,這個(gè)預(yù)先計(jì)算好的巨大圖表包含了所有車輛在無(wú)障礙環(huán)境下的不同軌跡。
除此之外,網(wǎng)格還包含了節(jié)點(diǎn)與界限:
其中節(jié)點(diǎn)指的是特定車輛構(gòu)型(比如位置、速度和行駛方向),而界限則連接了節(jié)點(diǎn)并代表著1秒之內(nèi)這些構(gòu)型間的軌跡。
在這個(gè)網(wǎng)格上有數(shù)不清的界限,它反映了網(wǎng)格涵蓋的完整時(shí)間線上構(gòu)型狀態(tài)間的所有可能。
每個(gè)界限都有自己的“代價(jià)”,比如燃料消耗或乘客舒適度,其中“代價(jià)”最低的界限即是最高效也最平緩的動(dòng)作。
二
在每個(gè)規(guī)劃區(qū)間(約為每10毫秒)內(nèi),Realtime的芯片用了如下步進(jìn)順序來(lái)完成運(yùn)動(dòng)規(guī)劃:
1、將來(lái)自攝像頭、雷達(dá)、激光雷達(dá)和其它傳感器的感知數(shù)據(jù)灌入自動(dòng)駕駛系統(tǒng),系統(tǒng)用這些數(shù)據(jù)來(lái)識(shí)別靜止障礙物(例如建筑物和樹(shù)木)、可確定的移動(dòng)障礙(比如足球)和那些非確定的移動(dòng)物體(比如其他車輛、行人和自行車等)。
帶有靜止和可確定障礙物(在模型中會(huì)被看做大號(hào)的靜止物體)地理位置的感知數(shù)據(jù)會(huì)下沉入網(wǎng)格,而那些與障礙物相交的界限“代價(jià)”很高,因?yàn)槟憧刹幌胱屪约旱能嚫谶@些障礙物屁股后。
2、至于那些非確定性的障礙物,系統(tǒng)就必須進(jìn)行有根據(jù)的推測(cè),判斷它們?cè)谝?guī)劃時(shí)間間隔中會(huì)遵循什么軌跡。
目前已經(jīng)有許多研究人員在這個(gè)問(wèn)題上花了大量時(shí)間,因此相關(guān)的模型并不少。系統(tǒng)會(huì)根據(jù)這些模型做出推測(cè),在模型中將非確定性障礙視作靜止物體,并對(duì)網(wǎng)格界限進(jìn)行升級(jí)。
3、網(wǎng)格中“吸附”了所有障礙物數(shù)據(jù)后,真正的運(yùn)動(dòng)規(guī)劃就要開(kāi)始了。這時(shí),Realtime Robotics的定制化硬件會(huì)正式登場(chǎng),其核心秘方是FPGA芯片,它能在硬件中完成網(wǎng)格數(shù)據(jù)的編碼,隨后穿過(guò)網(wǎng)格界限(大多數(shù)是平行的)以找尋那個(gè)“代價(jià)”最低的路徑。
硬件的平行性讓運(yùn)動(dòng)規(guī)劃步驟變得異常迅速,不到一毫秒就能生成一個(gè)規(guī)劃。此外,如果你想擴(kuò)大規(guī)模,直接添加更多硬件就行。
4、這時(shí),你從Realtime系統(tǒng)中拿到的運(yùn)動(dòng)規(guī)劃已經(jīng)完全可以和其他系統(tǒng)平起平坐了。它們的不同在于Realtime的系統(tǒng)比競(jìng)品快了一到兩個(gè)數(shù)量級(jí),這也意味著它能直接繞回第三步,然后用稍有不同的推測(cè)重新將這個(gè)過(guò)程走一遍,以便猜測(cè)非確定的移動(dòng)障礙物下一步會(huì)有什么動(dòng)作。
鑒于大多數(shù)模型只做概率性的推測(cè),因此它們對(duì)未來(lái)的判斷只能算很有可能,與真實(shí)發(fā)生的還是會(huì)有差距,情況越復(fù)雜推測(cè)正確的難度就越大。重復(fù)執(zhí)行第三和第四步,不論是10遍還是100遍,你就能挑出可能性最高的情況,做出最有安全保證的運(yùn)動(dòng)規(guī)劃。
5、最后一步就是執(zhí)行運(yùn)動(dòng)規(guī)劃,或者更精確地說(shuō),告訴車輛下一步切入網(wǎng)格的哪個(gè)界限。
鑒于每個(gè)界限代表著車輛1秒鐘的行駛時(shí)間,而一個(gè)新的運(yùn)動(dòng)規(guī)劃每10毫秒就能完成計(jì)算和執(zhí)行。
因此,最后一步其實(shí)更像是每秒刷新100遍的運(yùn)動(dòng)規(guī)劃中的第一個(gè)動(dòng)作。車輛可能會(huì)按這個(gè)規(guī)劃執(zhí)行,也可能轉(zhuǎn)投效果更好的新規(guī)劃(甚至是完全不同的)。
在這個(gè)無(wú)法預(yù)知的世界里,更快地運(yùn)動(dòng)規(guī)劃就意味著你的車輛能以最快的速度做出最佳決策。
這一切不只是要在短時(shí)間內(nèi)生成大量運(yùn)動(dòng)規(guī)劃,還與速度息息相關(guān),畢竟系統(tǒng)做運(yùn)動(dòng)規(guī)劃時(shí),車輛可是在高速行駛的。
在60公里/小時(shí)的速度上,10毫秒與100毫秒規(guī)劃速度之間能差出一米半的距離,這點(diǎn)距離足可以決定一個(gè)行人的生死。
在更快的速度和更加受限的環(huán)境中,例如高速公路上,系統(tǒng)可能要考慮更少的規(guī)劃以換取更快的速度,從而為車輛騰出更多的反應(yīng)空間。
在更復(fù)雜的環(huán)境中車輛速度較慢,系統(tǒng)就可以花更長(zhǎng)的時(shí)間進(jìn)行規(guī)劃以應(yīng)對(duì)不可預(yù)知的情況。
三
Realtime已經(jīng)在模擬環(huán)境中做了大量測(cè)試,視頻中列舉了在兩個(gè)場(chǎng)景下,這一系統(tǒng)被證明安全性顯著提高:
1騎自行車者(沒(méi)有通行權(quán))穿過(guò)一個(gè)十字路口
一個(gè)騎自行車的人在一輛車的遮擋下,違規(guī)通過(guò)十字路口。
通過(guò)模擬不同車速,自行車速度和自行車穿越時(shí)間下,以目前自動(dòng)駕駛做決策的平均速度10Hz為例,會(huì)有6.25%的幾率發(fā)生碰撞;而在Realtime系統(tǒng)1000Hz下碰撞不會(huì)發(fā)生。
2行人突然從停放的汽車后面出現(xiàn)
行人突然從停放的汽車后面出現(xiàn),從感知到做出決策的時(shí)間很短,通過(guò)不同車速和行人移動(dòng)速度的不同組合測(cè)試,發(fā)現(xiàn)按照一般決策系統(tǒng)處理的速度22%的幾率會(huì)擊中行人,而更快決策速度下,可以避免此事故。
毫無(wú)疑問(wèn),計(jì)算的速度當(dāng)然是越快越好。
目前,Realtime Robotics的芯片已經(jīng)應(yīng)用在桌面手臂機(jī)器人上,在自動(dòng)駕駛汽車上的應(yīng)用還處于模擬環(huán)境中,在真實(shí)交通環(huán)境中的表現(xiàn)如何,還有待進(jìn)一步測(cè)試。
在這個(gè)以AI與傳感器為主要?jiǎng)?chuàng)新突破口的時(shí)代,Realtime的芯片創(chuàng)新確實(shí)令人欣喜,下一步就看業(yè)界怎么用好這項(xiàng)技術(shù)了。