Apollo自动驾驶入门课程第⑨讲 — 控制(上)
目錄
1. 簡(jiǎn)介
2. 控制流程
3. PID控制
4. PID優(yōu)劣對(duì)比
本文轉(zhuǎn)自微信公眾號(hào):Apollo開發(fā)者社區(qū)?原創(chuàng):?阿波君?Apollo開發(fā)者社區(qū)?9月26日
上周我們發(fā)布了無人駕駛技術(shù)的?規(guī)劃篇,車輛基于高精地圖,感知和預(yù)測(cè)模塊的數(shù)據(jù)來進(jìn)行這一規(guī)劃。
本期我們將介紹和控制相關(guān)的知識(shí),具體講解最常用的控制算法---------?PID控制器。自動(dòng)駕駛的入門課程已經(jīng)接近尾聲,開發(fā)者學(xué)習(xí)的熱情依然高漲。希望開發(fā)者們?cè)谕瓿扇腴T課程后,繼續(xù)深入學(xué)習(xí)無人駕駛技術(shù),在無人駕駛領(lǐng)域越走越遠(yuǎn)。
視頻連接為:https://v.qq.com/x/page/u0719ta7ad7.html
1. 簡(jiǎn)介
控制是驅(qū)使車輛前行的策略。對(duì)于汽車而言,最基本的控制輸入為轉(zhuǎn)向、加速和制動(dòng)。通常,控制器使用一系列路徑點(diǎn)來接收軌跡。控制器的任務(wù)是使用控制輸入讓車輛通過這些路徑點(diǎn)。
首先,控制器必須準(zhǔn)確,這意味著它應(yīng)避免偏離目標(biāo)軌跡。這對(duì)于安全來說,尤為重要。即使路面潮濕或者道路比較陡峭,控制器仍需要準(zhǔn)確地執(zhí)行軌跡。其次,控制策略對(duì)汽車應(yīng)該具備可行性。例如,如果你的汽車向北行駛,而你希望它立即向東轉(zhuǎn)。你可以在游戲中做到這一點(diǎn),但在現(xiàn)實(shí)中無法實(shí)現(xiàn)。最后,需要考慮的是平穩(wěn)度。舒適的駕駛非常重要。如果車輛行駛得不規(guī)律,那乘客永遠(yuǎn)不會(huì)想再次乘坐它了。要使控制順利進(jìn)行,驅(qū)動(dòng)必須是連續(xù)的。這意味著你應(yīng)避免突然轉(zhuǎn)向、加速或制動(dòng)。
總之,我們的目標(biāo)是使用可行的控制輸入,最大限度地降低與目標(biāo)軌跡的偏差、最大限度地提供乘客的舒適度。有三種可用于實(shí)現(xiàn)這些目標(biāo)的控制策略:比例積分微分控制(或PID)、線性二次調(diào)節(jié)器(或LQR)、模型預(yù)測(cè)控制(或MPC)。
2. 控制流程
控制器預(yù)計(jì)有兩種輸入:目標(biāo)軌跡與車輛狀態(tài)。目標(biāo)軌跡來自規(guī)劃模塊,在每個(gè)軌跡點(diǎn),規(guī)劃模塊指定一個(gè)位置和參考速度。在每個(gè)時(shí)間戳都對(duì)軌跡進(jìn)行更新。我們還需要了解車輛狀態(tài),車輛狀態(tài)包括:通過本地模塊來計(jì)算的車輛位置、從車輛內(nèi)部傳感器獲取的數(shù)據(jù)(如速度、轉(zhuǎn)向和加速度)。我們使用這兩個(gè)輸入來計(jì)算目標(biāo)軌跡與實(shí)際行進(jìn)軌跡之間的偏差。
控制器的輸出是控制輸入(轉(zhuǎn)向、加速和制動(dòng))的值。當(dāng)偏離目標(biāo)軌跡時(shí),我們希望采取行動(dòng)來糾正這種偏差。對(duì)于普通汽車,我們使用方向盤控制行駛方向(即轉(zhuǎn)向)、使用油門加速、使用剎車減速(即制動(dòng))。這也是無人駕駛汽車所做的。一旦將這三個(gè)值傳遞給車輛,汽車實(shí)際上已經(jīng)開始無人駕駛了。之后將介紹不同的控制算法,如何計(jì)算這三個(gè)輸出:轉(zhuǎn)向、加速和制動(dòng)。
3. PID控制
首先介紹的算法為PID控制,這個(gè)控制器的優(yōu)點(diǎn)在于它非常簡(jiǎn)單,只需要知道與目標(biāo)軌跡有多大的偏離。PID的第一組件為P代表“比例”(Proportional)。設(shè)想一輛車正試圖遵循目標(biāo)軌跡,P控制器在車輛開始偏離時(shí)立即將其拉回目標(biāo)軌跡。比例控制意味著,車輛偏離越遠(yuǎn),控制器越難將其拉回目標(biāo)軌跡。
在實(shí)踐中P控制器的一個(gè)問題在于,它很容易超出參考軌跡。當(dāng)車輛越來越接近目標(biāo)軌跡時(shí),我們需要控制器更加穩(wěn)定。PID控制器中的D項(xiàng)致力于使運(yùn)動(dòng)處于穩(wěn)定狀態(tài),D代表“微分”(Derivative)。PD控制器類似于P控制器,它增加了一個(gè)阻尼項(xiàng),可最大限度地減少控制器輸出的變化速度。
PID控制器中的最后一項(xiàng)I代表積分(Integral),該項(xiàng)負(fù)責(zé)糾正車輛的任何系統(tǒng)性偏差。例如,轉(zhuǎn)向可能失準(zhǔn),這可能造成恒定的轉(zhuǎn)向偏移。在這種情況下,我們需要稍微向一側(cè)轉(zhuǎn)向以保持直行。為解決這一問題,控制器會(huì)對(duì)系統(tǒng)的累積誤差進(jìn)行懲罰。我們可以將P、I和D組件結(jié)合構(gòu)成PID控制器。
4. PID優(yōu)劣對(duì)比
PID控制器很簡(jiǎn)單,但它在很多情況下的效果很好。對(duì)于PID控制器,你只需要知道你的車輛與目標(biāo)軌跡之間的偏差。但是PID控制器只是一種線性算法,對(duì)于非常復(fù)雜的系統(tǒng)而言,這是不夠的。例如,為控制具有多個(gè)關(guān)節(jié)的四軸飛行器或機(jī)器人,我們需要建立機(jī)器人的物理模型。對(duì)無人駕駛而言,我們需要應(yīng)用不同的PID控制器來控制轉(zhuǎn)向和加速,這意味著很難將橫向和縱向控制結(jié)合起來。另一個(gè)問題在于PID控制器依賴于實(shí)時(shí)誤差測(cè)量,這意味著受到測(cè)量延遲限制時(shí)可能會(huì)失效。
更多詳細(xì)課程內(nèi)容,大家可以登陸官網(wǎng)繼續(xù)學(xué)習(xí)!
也可以添加社區(qū)小助手(Apollodev)為好友,回復(fù)“課程學(xué)習(xí)”進(jìn)群與其他開發(fā)者共同交流學(xué)習(xí)。 ?
自課程上線以來,瀏覽量已超10萬(wàn),已幫助全球97個(gè)國(guó)家約 7000 名學(xué)員入門自動(dòng)駕駛與 Apollo 開源平臺(tái),其中37%為海外學(xué)員,本門課程已成為優(yōu)達(dá)學(xué)城 (Udacity) 近期獲得關(guān)注度最高的免費(fèi)課程之一。
總結(jié)
以上是生活随笔為你收集整理的Apollo自动驾驶入门课程第⑨讲 — 控制(上)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有信用卡就能贷款的APP 2017信用卡
- 下一篇: (2)连续存储数组的方法