目標(biāo)識(shí)別
關(guān)于目標(biāo)識(shí)別已經(jīng)有大量的案例和教程被公布。使用Tensorflow API或Matlab/Simulink 計(jì)算機(jī)視覺工具箱,結(jié)合各種類型的傳感器數(shù)據(jù)(如3D激光雷達(dá)云點(diǎn)和/或相機(jī)拍攝的照片),可以從攝像機(jī)視頻流中識(shí)別出目標(biāo)物體。
當(dāng)然,即便通過ML/DL技術(shù)可以識(shí)別出目標(biāo)物體,仍然遠(yuǎn)遠(yuǎn)不能滿足一個(gè)簡(jiǎn)單的ADAS功能的開發(fā)。自動(dòng)駕駛汽車首先要借助傳感器數(shù)據(jù)正確地理解現(xiàn)實(shí)環(huán)境,然后還要具備思考、規(guī)劃和反應(yīng)的能力。更具體來說,就是系統(tǒng)需要能夠正確地控制車輛。
模型預(yù)測(cè)控制
基于簡(jiǎn)單的自行車模型,可以將運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)控制方程輸入模型預(yù)測(cè)控制(MPC)算法。
在當(dāng)今所有的過程控制中,MPC只是其中一種控制技術(shù)。PID當(dāng)然是用的最多的控制方法,但由于MPC具有多輸入/輸出的優(yōu)化能力和約束條件,使MPC也超過了10%的占有率。
MPC是一種基于模型的閉環(huán)優(yōu)化控制策略,大量的預(yù)測(cè)控制權(quán)威性文獻(xiàn)都無一例外地指出, 預(yù)測(cè)控制最大的吸引力在于它具有顯式處理約束的能力, 這種能力來自其基于模型對(duì)系統(tǒng)未來動(dòng)態(tài)行為的預(yù)測(cè), 通過把約束加到未來的輸入、輸出或狀態(tài)變量上, 可以把約束顯式表示在一個(gè)在線求解的二次規(guī)劃或非線性規(guī)劃問題中。
模型預(yù)測(cè)控制具有控制效果好、魯棒性強(qiáng)等優(yōu)點(diǎn),可有效地克服過程的不確定性、非線性和并聯(lián)性,并能方便的處理過程被控變量和操縱變量中的各種約束。
線性時(shí)不變(LTI)控制系統(tǒng),連續(xù)狀態(tài)空間模型可以這樣描述。
連續(xù)狀態(tài)空間模型。A、B、C、D是常數(shù)狀態(tài)空間矩陣。x是狀態(tài)向量,y是輸出,u是輸入/控制變量
基于一個(gè)簡(jiǎn)單的自行車模型,狀態(tài)函數(shù)可以寫成:
Vy, dot_Vy用于橫向控制,psi, dot_psi用于轉(zhuǎn)向控制,Vx, dot_Vx用于縱向控制。詳細(xì)信息可以從Matlab文檔頁(yè)面找到。
MPC的主要思路是預(yù)測(cè)工廠輸出的產(chǎn)量,優(yōu)化器會(huì)找到控制輸入的最優(yōu)序列,使工廠的產(chǎn)量盡可能接近設(shè)定值。
如下圖中展示了一個(gè)典型的場(chǎng)景,圖中是一輛行駛在十字路口的汽車。MPC將考慮到道路圖的曲率,并將道路圖和工廠路徑之間的誤差最小化。MPC的主要優(yōu)點(diǎn)之一就是具有硬約束和軟約束能力的多輸入多輸出,非常適合ADAS函數(shù)中的控制策略。
ACC
以下的示例演示了這樣一個(gè)場(chǎng)景:前方一輛汽車從右邊進(jìn)入了自車的車道,雷達(dá)和相機(jī)傳感器識(shí)別到了前車,并已確認(rèn)。為了安全起見,自車必須估算與出前方車輛的相對(duì)距離w.r.t.,如果距離小于允許的距離,則自車必須拉開距離,并保持安全距離直至完全停車。直到距離前車足夠遠(yuǎn),然后自車逐漸加速,直到達(dá)到預(yù)期的速度。
ACC傳感器融合
在該Test Bench中,ACC的傳感器融合模塊具有檢測(cè)同一車道(以及傳感器檢測(cè)范圍內(nèi)的其他車道)是否有前車的功能,融合測(cè)驗(yàn)(去除冗余),將檢測(cè)傳遞給MPC,MPC將會(huì)根據(jù)實(shí)際情況相應(yīng)地減慢或加速自車。
由下圖可見,視覺和雷達(dá)識(shí)別的對(duì)象、仿真時(shí)間、自車的縱向速度和路面曲率為輸入參數(shù)。傳感器數(shù)據(jù)融合和前車跟蹤子模塊,包含由于雷達(dá)噪聲引起的第一次雷達(dá)探測(cè)聚類,并將來自視覺和雷達(dá)的探測(cè)結(jié)合輸入到多目標(biāo)跟蹤器。使用卡爾曼濾波器精確估計(jì)檢測(cè)的狀態(tài)并融合檢測(cè),然后,利用確定的軌道和道路信息確定自車與前車之間的相對(duì)距離和相對(duì)速度,實(shí)現(xiàn)ACC的功能。
利用MPC算法方案,將時(shí)間間隔(可以是駕駛員的反應(yīng)時(shí)間)、縱向速度和駕駛員設(shè)定的速度與相對(duì)距離、相對(duì)速度一起加入自適應(yīng)巡航控制系統(tǒng)。在這個(gè)測(cè)試臺(tái)上,使用了預(yù)構(gòu)建的ACC控制模塊。也可以構(gòu)建特定于用戶的MPC模塊。
該ACC模塊的主要功能是跟蹤駕駛員設(shè)定的速度,并通過調(diào)整自車的縱向加速度來保持與前車的安全距離。該模塊使用了模型預(yù)測(cè)控制(MPC)計(jì)算出最佳控制動(dòng)作,同時(shí)還滿足了安全距離和速度,并約束了一定的加速度。
算法結(jié)構(gòu)細(xì)節(jié)如下圖所示。然后用戶可以從Matlab中對(duì)原始ACC模塊進(jìn)行相應(yīng)的修改。
到目前為止,ACC的主要控制已經(jīng)基本完成。然而,車輛在行駛時(shí),司機(jī)還必須要一直保持在車道上。因此,車道跟蹤功能(也就是轉(zhuǎn)向控制)也需要考慮在內(nèi)。
隨著MPC縱向加速度的調(diào)節(jié),Simulink塊中必須要輸入道路(地圖)信息。在本次的測(cè)試用例中,道路幾何簡(jiǎn)單地通過常曲率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é)果,如下圖所示(只顯示一幀)。
整個(gè)仿真結(jié)果如下:
當(dāng)一輛他車低速車行駛進(jìn)入速度較快的自車的車道時(shí),只要傳感器檢測(cè)到低速行駛的前車,在MPC控制的幫助下,自車會(huì)先減速以保持安全距離。當(dāng)前車離開同一車道時(shí),自車再次加速,加速直到駕駛員設(shè)定的速度。自車的速度和駕駛員設(shè)定的速度如下圖所示,并顯示了自車的相對(duì)距離和加速度曲線。
最后這點(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。對(duì)于更復(fù)雜的或不同的駕駛場(chǎng)景,各位朋友們可以使用本文描述的類似方案來進(jìn)行進(jìn)一步的功能開發(fā)。
-
傳感器
+關(guān)注
關(guān)注
2553文章
51470瀏覽量
756994 -
ACC
+關(guān)注
關(guān)注
1文章
57瀏覽量
22829
原文標(biāo)題:利用模型預(yù)測(cè)控制技術(shù)開發(fā)ADAS仿真測(cè)試臺(tái)架
文章出處:【微信號(hào):IV_Technology,微信公眾號(hào):智車科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
用matlab里的simulink仿真一個(gè)推挽升壓仿真電路,輸出帶載能力很差?
MathWorks積極推動(dòng)MATLAB與Simulink在教學(xué)項(xiàng)目中的應(yīng)用
Simulink與 Simscape的結(jié)合使用
Simulink與 MATLAB 的結(jié)合使用 Simulink中的信號(hào)處理方法
分享兩則MATLAB和Simulink助力教學(xué)案例
![分享兩則<b class='flag-5'>MATLAB</b>和<b class='flag-5'>Simulink</b>助力教學(xué)案例](https://file1.elecfans.com/web3/M00/01/32/wKgZPGdRaKSAes1oAALZR2dRE6A269.png)
Matlab/Simulink/Stateflow建模開發(fā)及仿真測(cè)試
利用Matlab函數(shù)實(shí)現(xiàn)深度學(xué)習(xí)算法
如何利用Matlab進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練
Matlab R2016b創(chuàng)建STM32H743ZIT6控制工程當(dāng)從Simulink庫(kù)中拖入TIMx模塊出現(xiàn)報(bào)錯(cuò)的原因?
Vivado 使用Simulink設(shè)計(jì)FIR濾波器
電路仿真軟件simulink的工作原理
電路仿真軟件simulink使用方法
【Matlab仿真】單相交交變頻器研究與實(shí)現(xiàn),Simulink建模
![](https://file1.elecfans.com/web2/M00/C3/B8/wKgaomXn4K-AWczbAALbOB5f1pE041.png)
評(píng)論