Apollo自動駕駛課程馬上進入尾聲,在無人駕駛技術控制篇(上)中,具體講解了最常用的控制算法——PID控制器。
本期我們將繼續介紹和控制相關的知識,具體講解線性二次調節器(或LQR)和模型預測控制(或MPC)。本期也是自動駕駛入門課程中的最后一個模塊。希望大家在完成入門課程后,繼續深入學習無人駕駛技術,在無人駕駛領域越走越遠。學習完課程的小伙伴記得做筆記領周邊好禮哦!
第十課,控制(下)
1線性二次調節器
線性二次調節器(Linear Quadratic Regulator 或LQR)是基于模型的控制器,它使用車輛的狀態來使誤差最小化。Apollo使用LQR進行橫向控制。橫向控制包含四個組件:橫向誤差、橫向誤差的變化率、朝向誤差和朝向誤差的變化率。變化率與導數相同,我們用變量名上面的一個點來代表。我們稱這四個組件的集合為X,這個集合X捕獲車輛的狀態。除了狀態之外,該車有三個控制輸入:轉向、加速和制動。我們將這個控制輸入集合稱為U。
LQR處理線性控制,這種類型的模型可以用等式來表示(詳見下圖)。x(上方帶點)=Ax+Bu,x(上方帶點)向量是導數,或X向量的變化率。所以x點的每個分量只是x對應分量的導數。等式x點=Ax+Bu,該等式捕捉狀態里的變化,即x點是如何受當前狀態 x 和控制輸入 u 的影響的。
這個等式是線性的,因為我們用?x來改變x時,并用?u來改變u。x點的變化也會讓這個等式成立(見下圖等式)。現在我們了解了LQR中的L。
接下來我們學習LQR中的Q。這里的目標是為了讓誤差最小化,但我們也希望盡可能少地使用控制輸入。由于使用這些會有成本,例如:耗費氣體或電力。為了盡量減少這些因素,我們可以保持誤差的運行總和和控制輸入的運行總和。當車往右轉的特別厲害之際,添加到誤差總和中。當控制輸入將汽車往左側轉時,從控制輸入總和中減去一點。然而,這種方法會導致問題。因為右側的正誤差只需將左側的負誤差消除即可。對控制輸入來說也是如此。相反,我們可以讓x和u與自身相乘,這樣負值也會產生正平方,我們稱這些為二次項。我們為這些項分配權重,并將它們加在一起。
最優的u應該最小化二次項的和隨時間的積分。在數學中我們將這個積分值稱為成本函數(形式見下圖)。我們經常以緊湊的矩陣形式表示加權二次項的總和。
這里的Q和R代表x和u的權重集合。xT和uT是轉置矩陣,這意味著它們幾乎與x和u相同,只是重新排列以便矩陣相乘。x乘以xT,u乘以uT,實質上是將每個矩陣乘以它自己。最小化成本函數是一個復雜的過程,但通常我們可以依靠數值計算器為我們找到解決方案。Apollo就提供了一個這樣的求解方案。在LQR中,控制方法被描述為u=-Kx。其中,K代表一個復雜的skeme,代表如何從x計算出u。所以找到一個最優的u就是找到一個最優的K。許多工具都可以輕松地用來解決K,尤其當你提供了模擬車輛物理特征的A、B,以及x和u的權重Q、R。
2模型控制預測
模型預測控制(或MPC)是一種更復雜的控制器,它非常依賴于數學優化,但基本上可以將MPC歸結為三個步驟:1、建立車輛模型。2、使用優化引擎計算有限時間范圍內的控制輸入。3、執行第一組控制輸入。MPC是一個重復過程,它著眼未來,計算一系列控制輸入,并優化該序列。但控制器實際上只實現了序列中的第一組控制輸入,然后控制器再次重復該循環。為什么我們不執行整個控制輸入序列呢?那是因為我們只采用了近似測量與計算。如果實現了整個控制輸入序列,實際產生的車輛狀態與我們的模型有很大差異,最好在每個時間步不斷地重新評估控制輸入的最優序列。
MPC的第一步為定義車輛模型,該模型近似于汽車的物理特性,該模型估計了假如將一組控制輸入應用于車輛時會發生什么。接下來,我們決定MPC預測未來的能力。預測越深入,控制器就越精確,不過需要的時間也越長。所以,我們需要在準確度與快速獲取結果之間做出取舍。獲取結果的速度越快,越能快速地將控制輸入應用到實際車輛中。
下一步是將模型發送到搜索最佳控制輸入的優化引擎。該優化引擎的工作原理是通過搜索密集數學空間來尋求最佳解決方案。為縮小搜索范圍,優化引擎依賴于車輛模型的約束條件。
優化引擎可間接評估控制輸入,它通過使用以下方法對車輛軌跡進行建模:通過成本函數對軌跡進行評估。成本函數主要基于與目標軌跡的偏差;其次,基于其他因素,如加速度和提升旅客舒適度的措施。
為使乘客感覺更舒適,對控制輸入的調整應該很小。因為動作變化幅度過大會讓乘客感到不舒服。根據具體情況,我們可能需要為其考慮進一步的成本,并設計成本函數。模型、約束和成本函數合并在一起,并作為優化問題加以解決。我們可以在不同的優化引擎中,選擇一種來尋找最佳解決方案。
3總結
控制實際上是無人駕駛汽車實現自動移動的方式。在控制中,我們使用轉向、加速和制動來運行我們的目標軌跡。我們研究了幾種不同類型的控制器。PID控制是一種簡單而強大的控制算法,線性二次調節器和模型預測控制是另外兩種類型的控制器,它們更復雜,但也更強大、更準確。Apollo支持所有這三種控制器,而你也可以選擇最適合自己的控制器!
-
調節器
+關注
關注
5文章
847瀏覽量
46411 -
PID控制器
+關注
關注
2文章
173瀏覽量
18579 -
Apollo
+關注
關注
5文章
342瀏覽量
18444
原文標題:Apollo自動駕駛入門課程第⑩講 — 控制(下)
文章出處:【微信號:Apollo_Developers,微信公眾號:Apollo開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論