無人駕駛——模型預(yù)測(cè)算法MPC

Overall of the MPC

模型預(yù)測(cè)控制(Model Predictive Control)指一類算法左权,周期性基于當(dāng)幀測(cè)量信息在線求解一個(gè)有限時(shí)間開環(huán)優(yōu)化問題,并將結(jié)果的前部分控制序列作用于被控對(duì)象褐墅。根據(jù)所用模型不同拆檬,分為動(dòng)態(tài)矩陣控制(DMC),模型算法控制(MAC)妥凳、廣義預(yù)測(cè)控制(GPC)竟贯。在智能駕駛方向,重點(diǎn)在于基于狀態(tài)空間模型的模型預(yù)測(cè)控制逝钥。

如下圖屑那,MPC控制器在智能駕駛的應(yīng)用


MPC應(yīng)用

如下為Udacity對(duì)于Model、Cost Function艘款、Constraints的Setup


MPC Setup

如何得到最優(yōu)解持际?
Udacity給出的方案是基于CppAD的ipopt控制器(第三方庫)進(jìn)行二次規(guī)劃求解最優(yōu)解。

Vehicel Models

Kinematic Models

Kinematic models are simplifications of dynamic models that ignore tire forces, gravity, and mass.

Dynamic Models

Dynamic models aim to embody the actual vehicle dynamics as closely as possible. They might encompass tire forces, longitudinal and lateral forces, inertia, gravity, air resistance, drag, mass, and the geometry of the vehicle.
Vehicle Model

各State的解釋如下
Explanation of x y psi v

關(guān)于CTE(車道偏離)和eψ(橫擺角偏離)的解釋如下:
Cross Track Error
Orientation Error

More Studying:
Dynamic Model Forces
Tire Slip Angle滑移角: Alpha = arctan(wheel lateral velocity / wheel longitudinal velocity)
Tire Slip Ratio滑移率: s = Radius of Wheel * Angular Velocity / Longitudinal Velocity
Tire Models

Additional resources: Kinematic and Dynamic Vehicle Models for Autonomous Driving Control Design presents a comparison between a kinematic and dynamic model.

Cost Function

包括CTE(車道偏離)和eψ(橫擺角偏離)等哗咆。
我認(rèn)為實(shí)際應(yīng)用過程中蜘欲,可以根據(jù)規(guī)劃trajectory符合度和平順性等評(píng)估,包括車速偏離晌柬、碰撞cost姥份、縱向加速度、橫向加速度年碘、向心加速度等澈歉。

Constraints

包括Acceleration加速度和Yaw Rate橫擺角加速度的極限約束。

Length and Duration 預(yù)測(cè)Step數(shù)和步長(zhǎng)

MPC預(yù)測(cè)的control inputs [δ,a]僅限于一定范圍的時(shí)間盛泡,包括N = Number of Timesteps 和 dt = Timestep Duration闷祥。
期望N越大越好,dt越小越好。

Latency系統(tǒng)執(zhí)行延遲

In a real car, an actuation command won't execute instantly - there will be a delay as the command propagates through the system. A realistic delay might be on the order of 100 milliseconds.

This is a problem called "latency", and it's a difficult challenge for some controllers - like a PID controller - to overcome. But a Model Predictive Controller can adapt quite well because we can model this latency in the system.

最優(yōu)解求解器

以上闡述了智駕MPC應(yīng)用的整體思路和架構(gòu)凯砍。但是到算法層面箱硕,如何得到最優(yōu)解是最核心的。當(dāng)然對(duì)于工程應(yīng)用悟衩,可以選擇第三方最優(yōu)化求解器剧罩,當(dāng)前這是一個(gè)非線性規(guī)劃問題

Ipopt

關(guān)于Cppad::ipopt算法核心可見Interior Point OPTimizer 內(nèi)點(diǎn)法
Ipopt is the tool we'll be using to optimize the control inputs [δ1?,a1?,…,δN?1?,aN?1?]. It's able to find locally optimal values (non-linear problem!) while keeping the constraints set directly to the actuators and the constraints defined by the vehicle model. Ipopt requires we give it the jacobians and hessians directly - it does not compute them for us. Hence, we need to either manually compute them or have a library do this for us. Luckily, there is a library called CppAD which does exactly this.

CppAD

CppAD is a library we'll use for automatic differentiation. By using CppAD we don't have to manually compute derivatives, which is tedious and prone to error.
Given a C++ algorithm that computes function values, CppAD generates an algorithm that computes corresponding derivative values (of arbitrary order using either forward or reverse mode).
我把CppAD理解為基于Ipopt的應(yīng)用。

More Learning:
Use Ipopt to Solve a Nonlinear Programming Problem
Nonlinear Programming Using CppAD and Ipopt: Example and Test
IPOPT和CppAD簡(jiǎn)介

參考文獻(xiàn):
1.Udacity無人駕駛課程
2.https://blog.csdn.net/qq_42258099/article/details/95353986

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末座泳,一起剝皮案震驚了整個(gè)濱河市惠昔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌挑势,老刑警劉巖镇防,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異潮饱,居然都是意外死亡来氧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門香拉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來啦扬,“玉大人,你說我怎么就攤上這事凫碌∑苏保” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵盛险,是天一觀的道長(zhǎng)瞄摊。 經(jīng)常有香客問我,道長(zhǎng)枉层,這世上最難降的妖魔是什么泉褐? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮鸟蜡,結(jié)果婚禮上膜赃,老公的妹妹穿的比我還像新娘。我一直安慰自己揉忘,他們只是感情好跳座,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著泣矛,像睡著了一般疲眷。 火紅的嫁衣襯著肌膚如雪您朽。 梳的紋絲不亂的頭發(fā)上狂丝,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音几颜,去河邊找鬼。 笑死蛋哭,一個(gè)胖子當(dāng)著我的面吹牛县习,可吹牛的內(nèi)容都是我干的谆趾。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼沪蓬,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼彤钟!你這毒婦竟也來了怜跑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤性芬,失蹤者是張志新(化名)和其女友劉穎剧防,沒想到半個(gè)月后植锉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡峭拘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年俊庇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸡挠。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡辉饱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拣展,到底是詐尸還是另有隱情彭沼,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布备埃,位于F島的核電站姓惑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏按脚。R本人自食惡果不足惜于毙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辅搬。 院中可真熱鬧唯沮,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至甘耿,卻和暖如春踊兜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背佳恬。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工捏境, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人毁葱。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓垫言,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親倾剿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子筷频,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345