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

MATLAB/Simulink驅(qū)動汽車行業(yè)能效革命

如何實(shí)現(xiàn)MC33774IC在Simulink環(huán)境中使用基于模型的設(shè)計(jì)?
MATLAB仿真在直流電機(jī)雙閉環(huán)調(diào)速系統(tǒng)中的應(yīng)用
如何使用MATLAB實(shí)現(xiàn)一維時間卷積網(wǎng)絡(luò)

OptiSystem應(yīng)用:用MATLAB組件實(shí)現(xiàn)振幅調(diào)制
用matlab里的simulink仿真一個推挽升壓仿真電路,輸出帶載能力很差?
MathWorks積極推動MATLAB與Simulink在教學(xué)項(xiàng)目中的應(yīng)用
Simulink與 Simscape的結(jié)合使用
Simulink與 MATLAB 的結(jié)合使用 Simulink中的信號處理方法
分享兩則MATLAB和Simulink助力教學(xué)案例

評論