無(wú)人駕駛?cè)绾芜M(jìn)行規(guī)劃?無(wú)人駕駛?cè)绾巫晕铱刂?
無(wú)人駕駛的重要性不言而喻,小編相信在不久的未來(lái),無(wú)人駕駛將可再度突破。上篇文章中,小編對(duì)無(wú)人駕駛的感知層和定位層有所闡述。為增進(jìn)大家對(duì)無(wú)人駕駛的了解,小編將對(duì)無(wú)人駕駛的規(guī)劃層、控制層予以介紹。如果你對(duì)無(wú)人駕駛具有興趣,不妨繼續(xù)往下閱讀哦。
一、規(guī)劃
1.任務(wù)規(guī)劃
無(wú)人駕駛規(guī)劃系統(tǒng)的分層結(jié)構(gòu)設(shè)計(jì)源于2007年舉辦的DAPRA城市挑戰(zhàn)賽,在比賽中多數(shù)參賽隊(duì)都將無(wú)人車(chē)的規(guī)劃模塊分為三層設(shè)計(jì):任務(wù)規(guī)劃,行為規(guī)劃和動(dòng)作規(guī)劃,其中,任務(wù)規(guī)劃通常也被稱(chēng)為路徑規(guī)劃或者路由規(guī)劃(Route Planning),其負(fù)責(zé)相對(duì)頂層的路徑規(guī)劃,例如起點(diǎn)到終點(diǎn)的路徑選擇。
我們可以把我們當(dāng)前的道路系統(tǒng)處理成有向網(wǎng)絡(luò)圖(Directed Graph Network),這個(gè)有向網(wǎng)絡(luò)圖能夠表示道路和道路之間的連接情況,通行規(guī)則,道路的路寬等各種信息,其本質(zhì)上就是我們前面的定位小節(jié)中提到的高精度地圖的“語(yǔ)義”部分,這個(gè)有向網(wǎng)絡(luò)圖被稱(chēng)為路網(wǎng)圖(Route Network Graph),如下圖所示:
這樣的路網(wǎng)圖中的每一個(gè)有向邊都是帶權(quán)重的,那么,無(wú)人車(chē)的路徑規(guī)劃問(wèn)題,就變成了在路網(wǎng)圖中,為了讓車(chē)輛達(dá)到某個(gè)目標(biāo)(通常來(lái)說(shuō)是從A地到B地),基于某種方法選取最優(yōu)(即損失最小)的路徑的過(guò)程,那么問(wèn)題就變成了一個(gè)有向圖搜索問(wèn)題,傳統(tǒng)的算法如迪科斯徹算法(Dijkstra’s Algorithm)和A*算法(A* Algorithm)主要用于計(jì)算離散圖的最優(yōu)路徑搜索,被用于搜索路網(wǎng)圖中損失最小的路徑。
2.行為規(guī)劃
行為規(guī)劃有時(shí)也被稱(chēng)為決策制定(Decision Maker),主要的任務(wù)是按照任務(wù)規(guī)劃的目標(biāo)和當(dāng)前的局部情況(其他的車(chē)輛和行人的位置和行為,當(dāng)前的交通規(guī)則等),作出下一步無(wú)人車(chē)應(yīng)該執(zhí)行的決策,可以把這一層理解為車(chē)輛的副駕駛,他依據(jù)目標(biāo)和當(dāng)前的交通情況指揮駕駛員是跟車(chē)還是超車(chē),是停車(chē)等行人通過(guò)還是繞過(guò)行人等等。
行為規(guī)劃的一種方法是使用包含大量動(dòng)作短語(yǔ)的復(fù)雜有限狀態(tài)機(jī)(Finite State Machine,F(xiàn)SM)來(lái)實(shí)現(xiàn),有限狀態(tài)機(jī)從一個(gè)基礎(chǔ)狀態(tài)出發(fā),將根據(jù)不同的駕駛場(chǎng)景跳轉(zhuǎn)到不同的動(dòng)作狀態(tài),將動(dòng)作短語(yǔ)傳遞給下層的動(dòng)作規(guī)劃層,下圖是一個(gè)簡(jiǎn)單的有限狀態(tài)機(jī):
如上圖所示,每個(gè)狀態(tài)都是對(duì)車(chē)輛動(dòng)作的決策,狀態(tài)和狀態(tài)之間存在一定的跳轉(zhuǎn)條件,某些狀態(tài)可以自循環(huán)(比如上圖中的循跡狀態(tài)和等待狀態(tài))。雖然是目前無(wú)人車(chē)上采用的主流行為決策方法,有限狀態(tài)機(jī)仍然存在著很大的局限性:首先,要實(shí)現(xiàn)復(fù)雜的行為決策,需要人工設(shè)計(jì)大量的狀態(tài);車(chē)輛有可能陷入有限狀態(tài)機(jī)沒(méi)有考慮過(guò)的狀態(tài);如果有限狀態(tài)機(jī)沒(méi)有設(shè)計(jì)死鎖保護(hù),車(chē)輛甚至可能陷入某種死鎖。
3.動(dòng)作規(guī)劃
通過(guò)規(guī)劃一系列的動(dòng)作以達(dá)到某種目的(比如說(shuō)規(guī)避障礙物)的處理過(guò)程被稱(chēng)為動(dòng)作規(guī)劃。通常來(lái)說(shuō),考量動(dòng)作規(guī)劃算法的性能通常使用兩個(gè)指標(biāo):計(jì)算效率(Computational Efficiency)和完整性(Completeness),所謂計(jì)算效率,即完成一次動(dòng)作規(guī)劃的處理效率,動(dòng)作規(guī)劃算法的計(jì)算效率在很大程度上取決于配置空間(Configuration Space),如果一個(gè)動(dòng)作規(guī)劃算法能夠在問(wèn)題有解的情況下在有限時(shí)間內(nèi)返回一個(gè)解,并且能夠在無(wú)解的情況下返回?zé)o解,那么我們稱(chēng)該動(dòng)作規(guī)劃算法是完整的。
配置空間:一個(gè)定義了機(jī)器人所有可能配置的集合,它定義了機(jī)器人所能夠運(yùn)動(dòng)的維度,最簡(jiǎn)單的二維離散問(wèn)題,那么配置空間就是[x, y],無(wú)人車(chē)的配置空間可以非常復(fù)雜,這取決于所使用的運(yùn)動(dòng)規(guī)劃算法。
在引入了配置空間的概念以后,那么無(wú)人車(chē)的動(dòng)作規(guī)劃就變成了:在給定一個(gè)初始配置(Start Configuration),一個(gè)目標(biāo)配置(Goal Configuration)以及若干的約束條件(Constraint)的情況下,在配置空間中找出一系列的動(dòng)作到達(dá)目標(biāo)配置,這些動(dòng)作的執(zhí)行結(jié)果就是將無(wú)人車(chē)從初始配置轉(zhuǎn)移至目標(biāo)配置,同時(shí)滿(mǎn)足約束條件。
在無(wú)人車(chē)這個(gè)應(yīng)用場(chǎng)景中,初始配置通常是無(wú)人車(chē)的當(dāng)前狀態(tài)(當(dāng)前的位置,速度和角速度等),目標(biāo)配置則來(lái)源于動(dòng)作規(guī)劃的上一層——行為規(guī)劃層,而約束條件則是車(chē)輛的運(yùn)動(dòng)限制(最大轉(zhuǎn)角幅度,最大加速度等)。
顯然,在高維度的配置空間來(lái)動(dòng)作規(guī)劃的計(jì)算量是非常巨大的,為了確保規(guī)劃算法的完整性,我們不得不搜索幾乎所有的可能路徑,這就形成了連續(xù)動(dòng)作規(guī)劃中的“維度災(zāi)難”問(wèn)題。目前動(dòng)作規(guī)劃中解決該問(wèn)題的核心理念是將連續(xù)空間模型轉(zhuǎn)換成離散模型,具體的方法可以歸納為兩類(lèi):組合規(guī)劃方法(Combinatorial Planning)和基于采樣的規(guī)劃方法(Sampling-Based Planning)。
運(yùn)動(dòng)規(guī)劃的組合方法通過(guò)連續(xù)的配置空間找到路徑,而無(wú)需借助近似值。由于這個(gè)屬性,它們可以被稱(chēng)為精確算法。組合方法通過(guò)對(duì)規(guī)劃問(wèn)題建立離散表示來(lái)找到完整的解,如在Darpa城市挑戰(zhàn)賽(Darpa Urban Challenge)中,CMU的無(wú)人車(chē)BOSS所使用的動(dòng)作規(guī)劃算法,他們首先使用路徑規(guī)劃器生成備選的路徑和目標(biāo)點(diǎn)(這些路徑和目標(biāo)點(diǎn)事融合動(dòng)力學(xué)可達(dá)的),然后通過(guò)優(yōu)化算法選擇最優(yōu)的路徑。
另一種離散化的方法是網(wǎng)格分解方法(Grid Decomposition Approaches),在將配置空間網(wǎng)格化以后我們通常能夠使用離散圖搜索算法(如A*)找到一條優(yōu)化路徑。
基于采樣的方法由于其概率完整性而被廣泛使用,最常見(jiàn)的算法如PRM(Probabilistic Roadmaps),RRT(Rapidly-Exploring Random Tree),F(xiàn)MT(Fast-Marching Trees),在無(wú)人車(chē)的應(yīng)用中,狀態(tài)采樣方法需要考慮兩個(gè)狀態(tài)的控制約束,同時(shí)還需要一個(gè)能夠有效地查詢(xún)采樣狀態(tài)和父狀態(tài)是否可達(dá)的方法。后文我們將詳細(xì)介紹State-LatticePlanners,一種基于采樣的運(yùn)動(dòng)規(guī)劃算法。
二、控制
控制層作為無(wú)人車(chē)系統(tǒng)的最底層,其任務(wù)是將我們規(guī)劃好的動(dòng)作實(shí)現(xiàn),所以控制模塊的評(píng)價(jià)指標(biāo)即為控制的精準(zhǔn)度。控制系統(tǒng)內(nèi)部會(huì)存在測(cè)量,控制器通過(guò)比較車(chē)輛的測(cè)量和我們預(yù)期的狀態(tài)輸出控制動(dòng)作,這一過(guò)程被稱(chēng)為反饋控制(Feedback Control)。
反饋控制被廣泛的應(yīng)用于自動(dòng)化控制領(lǐng)域,其中最典型的反饋控制器當(dāng)屬PID控制器(Proportional-Integral-Derivative Controller),PID控制器的控制原理是基于一個(gè)單純的誤差信號(hào),這個(gè)誤差信號(hào)由三項(xiàng)構(gòu)成:誤差的比例(Proportion),誤差的積分(Integral)和誤差的微分(Derivative)。
PID控制因其實(shí)現(xiàn)簡(jiǎn)單,性能穩(wěn)定到目前仍然是工業(yè)界最廣泛使用的控制器,但是作為純反饋控制器,PID控制器在無(wú)人車(chē)控制中卻存在一定的問(wèn)題:PID控制器是單純基于當(dāng)前誤差反饋的,由于制動(dòng)機(jī)構(gòu)的延遲性,會(huì)給我們的控制本身帶來(lái)延遲,而PID由于內(nèi)部不存在系統(tǒng)模型,故PID不能對(duì)延遲建模,為了解決這一問(wèn)題,我們引入基于模型預(yù)測(cè)的控制方法。
預(yù)測(cè)模型:基于當(dāng)前的狀態(tài)和控制輸入預(yù)測(cè)未來(lái)一段時(shí)間的狀態(tài)的模型,在無(wú)人車(chē)系統(tǒng)中,通常是指車(chē)輛的運(yùn)動(dòng)學(xué)/動(dòng)力學(xué)模型;
反饋校正:對(duì)模型施加了反饋校正的過(guò)程,使預(yù)測(cè)控制具有很強(qiáng)的抗擾動(dòng)和克服系統(tǒng)不確定性的能力。
滾動(dòng)優(yōu)化:滾動(dòng)地優(yōu)化控制序列,以得到和參考軌跡最接近的預(yù)測(cè)序列。
參考軌跡:即設(shè)定的軌跡。
下圖表示模型預(yù)測(cè)控制的基本結(jié)構(gòu),由于模型預(yù)測(cè)控制基于運(yùn)動(dòng)模型進(jìn)行優(yōu)化,在PID控制中面臨的控制延時(shí)問(wèn)題可以再建立模型考慮進(jìn)去,所以模型預(yù)測(cè)控制在無(wú)人車(chē)控制中具有很高的應(yīng)用價(jià)值。
以上便是此次小編帶來(lái)的“無(wú)人駕駛”相關(guān)內(nèi)容,通過(guò)本文,希望大家對(duì)無(wú)人駕駛的規(guī)劃層和控制層具備一定的了解。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來(lái)更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!