目標識別
關于目標識別已經有大量的案例和教程被公布。使用Tensorflow API或Matlab/Simulink 計算機視覺工具箱,結合各種類型的傳感器數據(如3D激光雷達云點和/或相機拍攝的照片),可以從攝像機視頻流中識別出目標物體。
當然,即便通過ML/DL技術可以識別出目標物體,仍然遠遠不能滿足一個簡單的ADAS功能的開發。自動駕駛汽車首先要借助傳感器數據正確地理解現實環境,然后還要具備思考、規劃和反應的能力。更具體來說,就是系統需要能夠正確地控制車輛。
模型預測控制
基于簡單的自行車模型,可以將運動學和動力學控制方程輸入模型預測控制(MPC)算法。
在當今所有的過程控制中,MPC只是其中一種控制技術。PID當然是用的最多的控制方法,但由于MPC具有多輸入/輸出的優化能力和約束條件,使MPC也超過了10%的占有率。
MPC是一種基于模型的閉環優化控制策略,大量的預測控制權威性文獻都無一例外地指出, 預測控制最大的吸引力在于它具有顯式處理約束的能力, 這種能力來自其基于模型對系統未來動態行為的預測, 通過把約束加到未來的輸入、輸出或狀態變量上, 可以把約束顯式表示在一個在線求解的二次規劃或非線性規劃問題中。
模型預測控制具有控制效果好、魯棒性強等優點,可有效地克服過程的不確定性、非線性和并聯性,并能方便的處理過程被控變量和操縱變量中的各種約束。
線性時不變(LTI)控制系統,連續狀態空間模型可以這樣描述。
連續狀態空間模型。A、B、C、D是常數狀態空間矩陣。x是狀態向量,y是輸出,u是輸入/控制變量
基于一個簡單的自行車模型,狀態函數可以寫成:
Vy, dot_Vy用于橫向控制,psi, dot_psi用于轉向控制,Vx, dot_Vx用于縱向控制。詳細信息可以從Matlab文檔頁面找到。
MPC的主要思路是預測工廠輸出的產量,優化器會找到控制輸入的最優序列,使工廠的產量盡可能接近設定值。
如下圖中展示了一個典型的場景,圖中是一輛行駛在十字路口的汽車。MPC將考慮到道路圖的曲率,并將道路圖和工廠路徑之間的誤差最小化。MPC的主要優點之一就是具有硬約束和軟約束能力的多輸入多輸出,非常適合ADAS函數中的控制策略。
ACC
以下的示例演示了這樣一個場景:前方一輛汽車從右邊進入了自車的車道,雷達和相機傳感器識別到了前車,并已確認。為了安全起見,自車必須估算與出前方車輛的相對距離w.r.t.,如果距離小于允許的距離,則自車必須拉開距離,并保持安全距離直至完全停車。直到距離前車足夠遠,然后自車逐漸加速,直到達到預期的速度。
ACC傳感器融合
在該Test Bench中,ACC的傳感器融合模塊具有檢測同一車道(以及傳感器檢測范圍內的其他車道)是否有前車的功能,融合測驗(去除冗余),將檢測傳遞給MPC,MPC將會根據實際情況相應地減慢或加速自車。
由下圖可見,視覺和雷達識別的對象、仿真時間、自車的縱向速度和路面曲率為輸入參數。傳感器數據融合和前車跟蹤子模塊,包含由于雷達噪聲引起的第一次雷達探測聚類,并將來自視覺和雷達的探測結合輸入到多目標跟蹤器。使用卡爾曼濾波器精確估計檢測的狀態并融合檢測,然后,利用確定的軌道和道路信息確定自車與前車之間的相對距離和相對速度,實現ACC的功能。
利用MPC算法方案,將時間間隔(可以是駕駛員的反應時間)、縱向速度和駕駛員設定的速度與相對距離、相對速度一起加入自適應巡航控制系統。在這個測試臺上,使用了預構建的ACC控制模塊。也可以構建特定于用戶的MPC模塊。
該ACC模塊的主要功能是跟蹤駕駛員設定的速度,并通過調整自車的縱向加速度來保持與前車的安全距離。該模塊使用了模型預測控制(MPC)計算出最佳控制動作,同時還滿足了安全距離和速度,并約束了一定的加速度。
算法結構細節如下圖所示。然后用戶可以從Matlab中對原始ACC模塊進行相應的修改。
到目前為止,ACC的主要控制已經基本完成。然而,車輛在行駛時,司機還必須要一直保持在車道上。因此,車道跟蹤功能(也就是轉向控制)也需要考慮在內。
隨著MPC縱向加速度的調節,Simulink塊中必須要輸入道路(地圖)信息。在本次的測試用例中,道路幾何簡單地通過常曲率1/R來描述,并已創建于Matlab的工作空間中,可以直接從子系統中使用。
使用MPC調節縱向加速度和曲率的道路更新的位置和偏航角的自車,轉向控制采用PID控制。
MPC能夠對自車的加速度進行調節,結合采用比例積分微分(PID)控制方案,將可以實現轉向控制。
基于自行車模型,可以模擬出自車的位置和偏航角。
到這里,我們已經具備了運行ACC模擬的所有必要條件。單擊run按鈕,可以查看結果,如下圖所示(只顯示一幀)。
整個仿真結果如下:
當一輛他車低速車行駛進入速度較快的自車的車道時,只要傳感器檢測到低速行駛的前車,在MPC控制的幫助下,自車會先減速以保持安全距離。當前車離開同一車道時,自車再次加速,加速直到駕駛員設定的速度。自車的速度和駕駛員設定的速度如下圖所示,并顯示了自車的相對距離和加速度曲線。
最后這點很重要,ADAS必須使用C或C++部署到特定的ECU上,而Matlab提供了代碼生成器工具箱,可以輕松實現這一點。如果需要添加或進一步修改C算法,則可以基于生成的C/C++代碼繼續編寫。
以上回顧了利用Matlab/Simulink實現ACC的Test bench。對于更復雜的或不同的駕駛場景,各位朋友們可以使用本文描述的類似方案來進行進一步的功能開發。
-
傳感器
+關注
關注
2548文章
50698瀏覽量
752052 -
ACC
+關注
關注
1文章
56瀏覽量
22730
原文標題:利用模型預測控制技術開發ADAS仿真測試臺架
文章出處:【微信號:IV_Technology,微信公眾號:智車科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論