在自動駕駛的定位、感知、預(yù)測、決策規(guī)劃和控制等模塊中,感知模塊就像是人的眼睛和耳朵,負(fù)責(zé)對外部環(huán)境進(jìn)行感知;控制模塊就像人的雙手和雙腳,負(fù)責(zé)最終的加減速、轉(zhuǎn)向等操作;而決策規(guī)劃模塊就像人的大腦,基于接收到的感知等信息進(jìn)行行為決策和軌跡生成。
正如人的大腦又分為左腦和右腦一樣,決策規(guī)劃模塊又可以繼續(xù)分為行為決策層(Behavioral Layer)和運(yùn)動規(guī)劃層(Motion Planning)。
其中,行為決策層在接收到全局路徑后,結(jié)合感知信息,進(jìn)行具體的行為決策;運(yùn)動規(guī)劃層根據(jù)具體的行為決策,規(guī)劃生成一條滿足特定約束條件的軌跡,該軌跡作為控制模塊的輸入決定車輛最終行駛路徑。
隨著自動駕駛等級的不斷提高,決策規(guī)劃層作為自動駕駛的大腦,其重要性也隨之提高。但與人腦相比,自動駕駛的這顆大腦還有太長的路需要追趕。本文將通過萬字詳述路徑規(guī)劃中的Motion Planning存在的問題與挑戰(zhàn)。
1. Motion Planning常用算法
Motion Planning算法是從機(jī)器人領(lǐng)域發(fā)展起來的,逐漸發(fā)展出適用于自動駕駛領(lǐng)域的各種算法。論文[1]對Motion Planning的軌跡生成方法做了綜述,介紹的方法如下圖所示。
基于采樣搜索的算法:Dijkstra、RRT、A*、hybird A*和Lattice等;
基于曲線插值的算法:RS曲線、Dubins曲線、多項(xiàng)式曲線、貝塞爾曲線和樣條曲線等;
基于最優(yōu)化的算法:Apollo的piecewise-jerk等;
上述算法一般都是相互結(jié)合在一起使用的。比如多項(xiàng)式曲線需要對終端狀態(tài)進(jìn)行采樣、貝塞爾曲線對控制點(diǎn)進(jìn)行采樣、hybird A*中使用到了RS曲線或者Dubins曲線等。
論文[1]總結(jié)了各種軌跡生成算法的優(yōu)缺點(diǎn),如下圖所示??梢姏]有哪一種算法是完美的,需要結(jié)合具體的場景和工況選用合適的算法。目前行業(yè)內(nèi)應(yīng)用比較多的是多項(xiàng)式曲線插值(高速場景)和最優(yōu)化的算法。
2. Motion Planning問題與挑戰(zhàn)
上述介紹的Motion Planning的算法,基本能解決大部分的自動駕駛場景軌跡生成問題,軌跡生成算法已經(jīng)不是主要瓶頸。但是在Motion Planning領(lǐng)域內(nèi)仍然存在許多挑戰(zhàn)需要去攻克,主要包括以下幾個(gè)方面:
最優(yōu)性問題;
認(rèn)知推理問題;
不確定性問題(Uncertainty/Probability);
Single-Agent;
Multiple-Agent;
工程化問題。
2.1 最優(yōu)性問題
全局最優(yōu)是NP-hard問題[3],為了實(shí)時(shí)性,行業(yè)內(nèi)多數(shù)采用橫縱向解耦的規(guī)劃方法。但是這么做會犧牲最優(yōu)性,在一些工況下不能得到良好的車輛行為,比如超車[2]、對向來車、向心加速度約束處理、橫向規(guī)劃需要考慮縱向規(guī)劃能力等。 例如,當(dāng)自動駕駛主車(Autonomous Driving Car ,ADC)前方有一個(gè)減速行駛的車輛時(shí),橫縱向解耦的方法一般只有當(dāng)前方車輛車速降低到一定值時(shí)才會超車行駛。ADC的行為表現(xiàn)就是先減速甚至停車,然后再繞障行駛,這顯然不是最優(yōu)的行駛策略。 如果采用時(shí)空一體化規(guī)劃方法,則可以避免減速或者停車行為。下圖中左圖是解耦方法的示例,在前方有減速停車車輛時(shí),ADC會進(jìn)行減速。右圖是時(shí)空規(guī)劃的示例,在前方車輛減速時(shí)ADC會進(jìn)行超車。
2.2 認(rèn)知推理問題
2.2.1 地圖拓?fù)渫评?/p>
以Apollo為例,PNC Map模塊從HD Map模塊提取數(shù)據(jù)形成參考線,并且通過HD Map模塊的API接口查詢道路元素。但Motion Planning模塊會忽略了一些道路的拓?fù)潢P(guān)系,例如匯入?yún)R出路口,而這些特殊的道路拓?fù)涫菚绊懙杰囕v的行為。
此外,在沒有HD Map模塊而單純依靠視覺車道線的情況下,此時(shí)感知車道線會發(fā)生異常。在匯入?yún)R出道路和十字路口道路中,其道路拓?fù)鋯栴}尤為凸顯。
2.2.2 障礙物統(tǒng)一建模
交通場景的參與者有車輛、摩托車、自行車、行人、錐桶等。廣義上來講還包括人行橫道、紅綠燈、道路限速等地圖靜態(tài)元素,Motion Planning需要針對不同的元素做出不同的決策。障礙物統(tǒng)一建??梢院喕瘑栴},并且提升計(jì)算效率。
Aopllo將所有交通參與者抽象為Static Obstacle,Dynamic Obstacle和Virtual Obstacle,Obstacle就是box, Static Obstacle和Dynamic Obstacle為車輛、行人等, Virtual Obstacle為人行橫道、禁停區(qū)等。路徑規(guī)劃時(shí)不考慮Virtual Obstacle。
使用能量場相關(guān)的方法,將交通參與者使用能量函數(shù)表示。上圖中間圖就是清華[4]提出的行車安全場,由靜止物體的勢能場、運(yùn)動物體的動能場和駕駛員的行為場構(gòu)成。最優(yōu)軌跡就是尋找一條能量和最小的軌跡。
論文[5]將交通參與者分為obstacle-like和constraint-like。obstacle-like是動靜態(tài)車輛、紅燈等,將其映射到slt的3D柵格中。constraint-like是限速、停車標(biāo)志等,作為semantic boundary。根據(jù)決策序列動作在slt配置空間內(nèi)生成若干cube邊界供軌跡生成使用。
2.2.3 場景認(rèn)知推理
由于現(xiàn)實(shí)中環(huán)境的復(fù)雜性,一種決策策略或者規(guī)劃方法難以處理不同的工況。因此對行駛環(huán)境進(jìn)行分類,在不同的場景下選擇不同的策略可以提升Motion Planning的性能。那么怎么進(jìn)行場景分類和場景識別,在不同的場景Motion Planning又該有哪些不同?這些問題都是需要解決的。
Aopllo中場景分類為LANE_FOLLOW、SIDE_PASS、STOP_SIGN_UNPROTECTED等。有兩種場景識別方式,一是通過規(guī)則的方法,一是通過機(jī)器學(xué)習(xí)的方法。不同的scenario有不同的stage,stage中依次執(zhí)行task。即使是相同的task在不同scenario中參數(shù)配置也可能不同。
毫末基于城市場景路口多、擁堵多和變道多的特點(diǎn),將行駛場景分為十類,顯然是和Apollo中的scenario分類是不同的,然而毫末的場景識別方法卻不得而知。毫末此外還提出了行駛環(huán)境熵的概念來描述行駛環(huán)境的擁堵狀態(tài)。
2.3 不確定性
2.3.1 定位不確定性
在多數(shù)的Motion Planning中都是認(rèn)為定位是足夠準(zhǔn)確的,但是實(shí)際場景中由于遮擋、多徑干涉等問題,定位往往是不準(zhǔn)確的。以論文[6]中的左下圖所示,由于定位誤差導(dǎo)致從HD Map模塊查詢到的道路邊界產(chǎn)生誤差,從而使規(guī)劃和車輛行駛軌跡在道路邊界上。
論文將定位不確定性假設(shè)為高斯分布,并且定位模塊可以計(jì)算出概率分布的期望與方差。論文將車輛坐標(biāo)系轉(zhuǎn)換到了UTM坐標(biāo)系下,根據(jù)定位的高速分布情況和坐標(biāo)變換公式,就可以計(jì)算出車輛周圍環(huán)境在定位影響下的不確定性,如上右圖所示,其中顏色越深表示不確定性越大,其不確定性計(jì)算公式主要由下式得到。
可以發(fā)現(xiàn)距離ADC越遠(yuǎn)其不確定越高,隨著車輛的前進(jìn),其不確定性會被更新。路徑規(guī)劃方法采用了Lattice(五次多項(xiàng)式曲線)的方法,在cost計(jì)算時(shí),增加了兩個(gè)項(xiàng)目。一個(gè)是硬約束:規(guī)劃路徑上點(diǎn)的最大不確定性不能大于某一個(gè)閾值;二是在cost function中增加了不確定性的權(quán)重和。
2.3.2 感知不確定性
由于傳感器噪聲、車輛震動、行駛環(huán)境和不完善的算法,感知得到結(jié)果具有不確定性,甚至是錯誤的。由于感知的不確定性會造成Motion Planning結(jié)果的不安全性。一種簡單的處理方式是加buffer,但是粗暴的處理方式會減小Motion Planning的可行域,可能造成過于激進(jìn)或者過于保守的行駛策略。
論文[7]以裝備了Around View Monitoring(AVM)的泊車應(yīng)用為例,由于感知誤差會使路徑規(guī)劃在實(shí)際超車位置停車,可能會發(fā)生碰撞,如下左圖所示。論文將感知的不確定性建模為高斯分布,感知效果距離ADC越遠(yuǎn)不確定性越高,如下右圖所示。
論文中整體架構(gòu)如下左圖所示論文,采用此算法后的效果如下右圖所示。
Parking space sampling:對距離ADC最近的兩個(gè)角點(diǎn)進(jìn)行采樣,將采樣點(diǎn)看作是正態(tài)分布的,根據(jù)采樣角點(diǎn)和設(shè)定的??臻g的長度,計(jì)算ADC后軸中心的停車點(diǎn);
Path candidate generation:采用ocp理論對每個(gè)采樣點(diǎn)進(jìn)行路徑規(guī)劃,其中將時(shí)域問題轉(zhuǎn)化為Ferent坐標(biāo)系下,并使用SQP求解非線性問題;
Optimal Path Selection:使用utility theory進(jìn)行最優(yōu)路徑的選擇。Utility function為:EU(s) = P(s) x Uideal(s) +(1-P(s)) x Ureal(s),其中P(s)為路徑對應(yīng)采樣點(diǎn)的概率,Uideal為路徑到目標(biāo)點(diǎn)(當(dāng)前時(shí)刻感知檢測到的,并非采樣得到的)的偏差效用函數(shù)值,Ureal為路徑上到ADC當(dāng)前位置的效用函數(shù)值。
2.3.3 預(yù)測不確定性
預(yù)測是實(shí)現(xiàn)L4以上高級別自動駕駛的重要環(huán)節(jié)。然而截至目前,預(yù)測對整個(gè)行業(yè)來說仍是一個(gè)非常難的問題。因此預(yù)測的準(zhǔn)確性很差,在不確定性預(yù)測結(jié)果下做Motion Planning是非常重要的。
論文[8]提出了一個(gè)基于高斯分布的規(guī)劃架構(gòu),處理預(yù)測和控制不確定性帶來的規(guī)劃軌跡不安全的問題。
候選軌跡生成:通過多階段橫縱向采樣生成。可以理解為Aopllo Lattice方法。
預(yù)測軌跡生成:對于某一個(gè)車輛的軌跡進(jìn)行預(yù)測(進(jìn)行規(guī)劃)時(shí),認(rèn)為其他車輛是勻速行駛的,并且其狀態(tài)都是確定的,則通過對候選軌跡的cost計(jì)算,得到最優(yōu)的預(yù)測軌跡。之后通過卡爾曼濾波計(jì)算預(yù)測軌跡的概率分布,并假設(shè)其遵從正態(tài)分布。
ADC軌跡生成:此時(shí)需要考慮其他交通參與者的預(yù)測的不確定性。針對每一條候選軌跡,通過LQR算法計(jì)算出控制誤差,然后再通過卡爾曼濾波計(jì)算出軌跡的概率分布,在軌跡評價(jià)進(jìn)行cos計(jì)算時(shí),碰撞檢測是基于預(yù)測和ADC規(guī)劃軌跡的概率分布的,即在所有概率分布內(nèi)都不能發(fā)生碰撞。
作者認(rèn)為此方法相當(dāng)于給box加上一個(gè)自適應(yīng)的buffer,而常規(guī)的固定大小的buffer會導(dǎo)致保守或者激進(jìn)的駕駛行為。
論文[9]論文提出了一種可以嵌入現(xiàn)有Motion Planning框架的fail-safe機(jī)制,分為三部分:
Set-based prediction:根據(jù)制定的交通參與者的駕駛策略和車輛運(yùn)動學(xué)模型,將原有的交通參與者單一的預(yù)測軌跡,改為多預(yù)測軌跡;
Fail-safe trajectory:根據(jù)預(yù)測的結(jié)果,計(jì)算原planning trajectory有碰撞風(fēng)險(xiǎn)的第一個(gè)軌跡點(diǎn),然后再根據(jù)最優(yōu)化理論生成軌跡;
Online verification:將ADC在第二步生成的軌跡上進(jìn)行投影,判斷其是否和第一步的預(yù)測車輛軌跡是否有碰撞。
感覺此方法是又重新做了一遍Motion Planning,由于論文中沒有描述fail-safe trajectory是否考慮decision的結(jié)果,可能會造成safe trajectory不滿足decision結(jié)果,并且此論文只是仿真,并沒有實(shí)際應(yīng)用。
2.3.4 Partially Observable Environments
由于傳感器自身的感知范圍受限和感知結(jié)果的不確定性,在不良光照或者惡劣天氣中會進(jìn)一步放大。而在城市工況中,建筑物的遮擋會造成不完全感知,如下圖所示。此外,大型車輛也會造成感知遮擋問題,而多數(shù)的Motion Planning都是以完全感知進(jìn)行處理的,規(guī)劃結(jié)果具有很大的不安全性。
論文[10]提出了一種處理不完全感知的安全的Motion Planning,使規(guī)劃軌跡在最危險(xiǎn)情況下可以在車輛最大制動能力下安全停車而不發(fā)生碰撞。分為兩種情況:一是在直道上行駛考慮感知的不確定性和感知距離范圍,二是在城市十字路口考慮不完全感知情況。并且容易嵌入其他的Motion Planning架構(gòu)中,作者在其之前提出基于最優(yōu)化方法的軌跡規(guī)劃中進(jìn)行了仿真驗(yàn)證(綜述中的圖(b))。
作者為其理論設(shè)計(jì)了幾個(gè)假設(shè):
定位的縱向位置和速度信息遵從高斯分布;
感知的有效范圍是已知的,并且感知的結(jié)果遵從高斯分布;
地圖信息中包含建筑物位置,且為凸多邊形;
使用Intelligent Driver Model(IDM)進(jìn)行車輛加速度預(yù)測。
由于論文分直道和十字路口兩種情況處理,因此需要進(jìn)行場景識別,論文采用了基于規(guī)則的方式進(jìn)行場景識別。
上左圖:紅色虛線是感知觀測到的環(huán)境的時(shí)間,黑色虛線是進(jìn)行Motion Planning的時(shí)間,可見Motion Planning使用的感知信息是tp時(shí)刻前的。此外由于Motion Planning要保證連續(xù)性,在Motion Planning計(jì)算周期tpin時(shí)間內(nèi)的規(guī)劃軌跡要保證一致。更重要的是由于執(zhí)行器的延遲,在tsafe時(shí)間內(nèi)要保證軌跡的安全性。論文中tsafe= 2tpin;
上中圖:在直道行駛分為感知范圍內(nèi)沒有車輛或者感知范圍內(nèi)有車輛兩種情況:一是感知范圍內(nèi)沒有車輛,假設(shè)駕駛感知范圍外有一個(gè)靜止車輛,將其設(shè)為虛擬靜止障礙物,通過其高斯分布特性可以計(jì)算得到tsafe時(shí)刻內(nèi),滿足以最大制動能力剎車的縱向位移和速度約束;二是感知范圍內(nèi)有車輛,考慮感知不確定性情況下的最危險(xiǎn)情況,即前車以最大制動能力剎車,通過其高斯分布特性可以計(jì)算得到tsafe時(shí)刻內(nèi),滿足以最大制動能力剎車的縱向位移和速度約束;
上右圖:在十字路口行駛,根據(jù)IDM模型計(jì)算ADC是需要讓行還是有路權(quán)需要明確表明表明自己優(yōu)先通過的意圖。最后轉(zhuǎn)換為直道行駛的兩種類型的約束。
2.4 Single Agent
Single Agent認(rèn)為是單智能體問題,即ADC會對周圍環(huán)境做出決策,而不考慮ADC行為決策對其他交通參與者的影響,顯然這種假設(shè)是不對的,但是卻簡化了Motion Planning問題。
行為決策是影響自動駕駛發(fā)展的另一個(gè)重要方面,隨著自動駕駛的等級越高,行為決策的重要性越高。行為決策的難點(diǎn)是如何體現(xiàn)自動駕駛車輛的智能性,如何使自動駕駛車輛可以像人類駕駛員一樣處理高維度、多約束的復(fù)雜場景,甚至要比人類駕駛員的表現(xiàn)更好。
目前多數(shù)方法是基于規(guī)則的方法,其能力有限。以基于規(guī)則方法的行為決策來說,在下匝道工況,一般會設(shè)計(jì)一個(gè)距離匝道口的距離閾值。當(dāng)ADC到匝道口的距離在閾值內(nèi)時(shí),就開始向最右側(cè)車道變道。
假設(shè)這個(gè)閾值是2km,如果ADC在匝道口2.1m處位于中間車道行駛,此時(shí)前方剛好有輛車且速度較低,基于規(guī)則的行為決策一般會選擇向左側(cè)車道變道(左側(cè)車道限速高,超車遵從左側(cè)超車,從小鵬NGP等可以看出也是左側(cè)車道優(yōu)先)。但是變道后距離匝道口的距離閾值小于2km,此時(shí)需要向最右側(cè)車道變道,需要連續(xù)進(jìn)行二次變道,會顯得不夠智能。
再比如在匝道前500m最右側(cè)車道行駛,前方由于施工或者事故不能行駛,此時(shí)只能由駕駛員接管。由此可見,由于現(xiàn)實(shí)工況的復(fù)雜性,基于規(guī)則的行為決策方式很難做到良好的駕乘體驗(yàn)。
港科大關(guān)于OPMDP[11]的行為決策工作,相比于基于規(guī)則的方法,性能有了一定提升,其對ADC和其他交通參與者的行為進(jìn)行了剪枝,降低了OPMDP的耗時(shí)。但是其考慮了其他交通參與者會對ADC的行為進(jìn)行規(guī)避等,可以看出是一個(gè)Multiple Agent問題來處理。
2.5 Multiple Agent
上述的Single Agent中認(rèn)為交通參與者不會對ADC的行為做出相應(yīng)的決策.但實(shí)際中,當(dāng)ADC做出決策后,其行為會影響到其他交通參與者的行為,而使原有的預(yù)測結(jié)果的可信性降低,尤其是有些簡單基于規(guī)則的prediction不依賴于Motion Planning結(jié)果,或者使用上一幀Motion Planning的結(jié)果(Apollo)。
例如在下圖左圖中,當(dāng)ADC L沿著trajectory1行駛時(shí),A2可能會減速避讓。當(dāng)ADC L沿著trajectory2行駛時(shí),A2可能會加速通過路口。但是當(dāng)ADC L沿著trajectory2行駛時(shí),預(yù)測A2可能會加速通過路口,但是A2可能會理解錯ADC L的意圖進(jìn)行減速,會造成兩輛車鎖死。因此ADC怎么理解其他交通參與者的意圖和怎么讓其他交通車?yán)斫釧DC的意圖至關(guān)重要[12]。
2.6 工程化問題
在Motion Planning中還面臨一些工程化問題,主要包括如下幾個(gè)方面。
實(shí)時(shí)性:在第一個(gè)問題中提到的了最優(yōu)性問題,如果要解決,由于在三維空間搜索計(jì)算的復(fù)雜性,其實(shí)時(shí)性很能保證,這也是限制時(shí)空聯(lián)合規(guī)劃應(yīng)用的一個(gè)原因。此外最優(yōu)化算法中的大規(guī)模約束和非線性也面臨實(shí)時(shí)性的挑戰(zhàn)。
完備性:插值、Lattice等算法是概率完備的,尤其在復(fù)雜多障礙物環(huán)境中,有限的采樣很難獲得無碰撞的軌跡。而最優(yōu)化方法由于數(shù)值求解,也不能達(dá)到完備性,常用的osqp求解器甚至?xí)o出一個(gè)錯誤的解。
難量化性:Motion Planning中的評價(jià)指標(biāo)多是主觀性的,比如舒適性和通過性等,很難量化評價(jià)。不同工程師調(diào)參得到體感不同,又與乘客的主觀感受不同。因此提出了機(jī)器學(xué)習(xí)的方法來學(xué)習(xí)Motion Planning中的參數(shù)或者變道策略。
3. 行業(yè)解決方案
針對上述問題與挑戰(zhàn),行業(yè)內(nèi)公司也在積極探索并提出了一些解決方案,下面列舉一二。
輕舟智航采用了時(shí)空聯(lián)合規(guī)劃解決最優(yōu)性問題,提高規(guī)劃性能,并且自研了非線性規(guī)劃器高效求解[2]。
圖森未來新一代框架中,感知模塊在提供障礙物位置、速度等信息時(shí),同時(shí)提供不確定性或者概率信息,以保證決策規(guī)劃可以提前做出安全舒適的決策[13]。
特斯拉將planner用于交通參與者的其他車輛。但與其他車輛交互時(shí),不能只為ADC規(guī)劃,而是要為所有交通參與者共同規(guī)劃,針對整體場景的交通流進(jìn)行優(yōu)化。為了做到這一點(diǎn),會為場景中的每個(gè)參與對象都運(yùn)行autopilot規(guī)劃器。除此之外,針對停車場景,采用A*搜索算法和神經(jīng)網(wǎng)絡(luò)結(jié)合策略,大大減少了A*算法的節(jié)點(diǎn)探索[15]。
小鵬和特斯拉針對車道線缺失,道路拓?fù)渥兓瘑栴}做了優(yōu)化[14]。
Waymo提出了ChauffeurNet用于提升決策性能[16],Apollo借鑒ChauffeurNet提出了自己的強(qiáng)化學(xué)習(xí)架構(gòu)[17]。
審核編輯 :李倩
-
算法
+關(guān)注
關(guān)注
23文章
4615瀏覽量
92985 -
自動駕駛
+關(guān)注
關(guān)注
784文章
13838瀏覽量
166537 -
waymo
+關(guān)注
關(guān)注
2文章
312瀏覽量
24685
原文標(biāo)題:自動駕駛決策規(guī)劃中的問題與挑戰(zhàn)
文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論