Apollo进阶课程㉗丨Apollo控制技术详解——控制理论
原文鏈接:進階課程?丨Apollo控制技術詳解——控制理論
控制模塊根據預測的軌跡和估計的車輛狀態向油門、剎車或轉向扭矩發送適當的命令??刂颇K使汽車盡可能接近計劃的軌跡。控制器參數可以通過最小化理想狀態和觀測狀態之間的誤差函數(偏差)來估計。
決策問題通常用POMDP加上一些機器學習的技術來解決。解決好規劃問題,需要把兩個方面做好,一個是數據閉環(Data Driven),另一個是基于規則的方法。
上周阿波君為大家詳細介紹了「進階課程?Apollo規劃技術詳解——Understand More on the MP Difficulty」。詳細地講解了Apollo EM planner規劃框架,以及解決優化問題的常用方法:離散化的方式、Expectation??Maximization(期望最大化)。
本周阿波君將繼續與大家分享Apollo控制技術詳解——控制理論的相關課程。下面,我們一起進入進階課程第27期。
目錄
1.簡介
2.控制模塊
3.什么是控制,為什么需要控制
本節主要介紹Apollo控制相關內容,包括常用控制理論、功能限制與未來趨勢、相似原理在不同模塊中的應用。目的是讓大家了解控制模塊的整體脈絡及理論,通過案例講解將理論轉化成code及真正測試標準的方法。
1.簡介
本次課主要介紹以下三個方面的內容:
-
通用控制理論及其在Apollo自動駕駛平臺上的應用。
-
功能的限制和未來的趨勢。
-
類似的原理怎樣應用于不同的模塊。
首先我們回顧一下Apollo自動駕駛框架的基本結構,如圖1所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????圖1??Apollo 軟件框架
從圖中可以看出,控制模塊的輸入一方面來自planning(規劃模塊),另一方面來自反饋階段信息(如localization和HD Map),此部分信息包括車輛位置、朝向、速度等。
其輸出結果是控制指令,與下層模塊canbus(車輛交互標準)進行交互;同時控制模塊也會從底層車輛得到反饋信號(車輛本身in vehicle reference frame:速度信息、四輪轉速信息、車輛健康狀況信息、底盤是否報錯信息、危險信息)
2.控制模塊
如圖2所示,控制模塊包括三個部分:預處理、控制器和后處理。其中,預處理部分的主要功能包括三方面,第一是對輸入信號的檢查,對不正常信號的過濾;第二是做一些緊急處理,第三是做一些濾波操作,例如信號的平滑等。
????????????????????????????????????????????????????????????? ? ? ? ? ? ? ? ? ? ????????????????圖2 控制模塊的組成
控制器主要功能包括:模型建立、系統識別和分析,控制器/觀察器設計以及參數調優等功能,如圖3所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????圖3 控制器的主要功能
后處理部分將信號發送給執行器,包括限制的處理以及信號濾波,如圖4所示。因為油門、剎車、轉向這種執行器本身有上下限、滯后(回滯曲線),所以需要對信號進行一些相關處理。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????????????圖4 后處理
3.什么是控制,為什么需要控制
控制主要是為了彌補數學模型和物理世界執行之間的不一致性。對于自動駕駛而言,規劃的軌跡和車輛的實際運行軌跡并不完全一致,控制器按照規劃軌跡在條件允許下盡可能地調節車輛本身。為了能夠安全、舒適的行駛,自動駕駛系統對性能的要求需要控制模塊,主要體現在以下幾個方面,如圖5所示。
-
首先是穩定性,包括在所有場景下的車輛行為穩定和安全。
-
其次是穩定狀態的行為,減少或者消除規劃和實際車輛行為的差別。
-
最后是瞬時狀態的行為。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????圖5?自動駕駛系統對性能的要求
具體而言,自動駕駛系統是否滿足性能要求可以從三個角度去評測:時域、頻域以及discrete domain(離散域)。時域是指輸出在時間軸上應該滿足的要求。其衡量的指標包括steady state gain、rising time、setting time、overshoot和undershoot。每個指標對應的具體含義如圖6所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????圖6 控制模塊在時域上的性能要求
類似的,系統在頻域里也需要滿足一定的要求。在頻域空間,X軸是輸入頻率,Y軸是輸出跟輸入的比例,理想狀態下輸出和輸入比例應該為1。系統性能在頻域中的評價指標包括pass band、cutoff frequency等,如圖7所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????圖7?頻域的評判指標
除了時域和頻域的要求,還需要滿足discrete domain的要求。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????圖8 時域和頻域的相互關系
對系統來說,在time domain跟frequency domain中的系統需求是可以等價轉換的。系統在時域中的要求、響應、數學表達跟頻域是可以相互對應的。
此外,系統性能要求還有一些其它的考量指標,如圖9所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????圖9?滿足系統性能要求的額外考量指標
前面介紹了自動駕駛系統需要滿足一些性能需求,如果沒有控制器的話,這些性能指標可能難以滿足,這就是為什么在自動駕駛系統中需要引入控制器的原因。
那么怎么樣設計出好的控制模塊呢?最簡單的控制器就是PID控制器,即比例、積分、微分控制,它是一個model free的控制方法,也就是說PID控制具有通用性。PID控制的基本原理如圖10所示。
????????????????????????????????????????????????????????????????????????????????????????????????圖10 ?PID 控制器
U是參考量,它和反饋信號之間的差距用error 表示,即圖中的e。比例控制P的意思是該控制量與誤差成比例,用kp*e(t)?表示。當kp比較小的時候,接近終值的速度會非常慢,如右圖的紅線所示,但是它有超調與undershoot現象。當kp設置比較大時,則達到穩態速度變快,但會超調,如右圖紫色曲線所示。如果系統中存在損耗,比如汽車上坡的動力或者摩擦損耗,使得比例控制每次增加的控制量就等于或者小于損耗時,出現穩態誤差,這就是引入積分控制的目的,它可以將之前的誤差進行積分,消除穩態誤差。而微分控制的目的是使系統更快的從瞬態轉化為穩態。系統的控制量就是P+I+D三項的和。
總結
以上是生活随笔為你收集整理的Apollo进阶课程㉗丨Apollo控制技术详解——控制理论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 证券公司除了买股票还能买基金吗?证券公司
- 下一篇: 最实用的Git命令总结:新建本地分支、远