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