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