運行案例
啟動底盤和雷達(dá)
SSH連接OriginBot成功后,在終端中輸入如下指令,啟動機(jī)器人底盤和激光雷達(dá):
$ros2 launch originbot_bringup originbot.launch.py
啟動軌跡跟蹤
選擇Pure Pursuit:
$ ros2 run originbot_autonomous purepursuit_node
選擇 MPC :
$ ros2 launchoriginbot_autonomous originbot_mpc.launch.py
同時,打開rviz后可以在界面中看到,有如下軌跡顯示
原理淺析
PurePuesuit 和 MPC 算法是自動駕駛中常用的控制算法,目的是為了讓規(guī)劃處的軌跡點更加平滑以及滿足車輛本身的運動學(xué)軌跡。
在Autoware和Apollo 中,這兩種算法都是有其實現(xiàn)方式的??蓞⒁姡?/p>
Apollo:
Autoware:
概述
在具體聊到兩種算法實現(xiàn)前,需要先了解到,現(xiàn)在主流的兩種軌跡跟蹤算法分為基于幾何的跟蹤以及基于模型的跟蹤方法。
在此次實現(xiàn)上基本可以視為已知坐標(biāo)信息,包括(x,y,yaw)和曲率Kappa,計算出控制量轉(zhuǎn)向角,也即橫向運動量,使得小車可以在軌跡內(nèi)平穩(wěn)運行。
以MPC為例,圖示如下:
PurePursuit
純跟蹤算法提出“預(yù)瞄距離”的概念,根據(jù)預(yù)瞄距離尋找目標(biāo)軌跡中符合條件的目標(biāo)路徑點,判斷邏輯就是尋找目標(biāo)軌跡上哪個點和當(dāng)前車輛位置的相對距離等于預(yù)瞄距離,則該點就是當(dāng)前時刻的目標(biāo)點。
控制目標(biāo)則是計算多大的前輪偏角,可以使當(dāng)前小車位置運動到目標(biāo)位置。在這個基礎(chǔ)上,不妨簡單看一下其中的核心點,預(yù)瞄距離是什么。
簡單來說,預(yù)瞄距離好比人開車時后找一個跟蹤參考點,比如在行駛在直道時,我們會選擇較高的速度,并且習(xí)慣考慮前方較遠(yuǎn)的點作為跟蹤參考點;在行駛在彎道時,就會選擇減速,習(xí)慣選擇較近的點作為跟蹤參考點。
所以這個值是我們可以自己設(shè)置的一個值。這個值的設(shè)置也會極大影響小車的運動。比如在此次示例的代碼中在findCloestindex函數(shù)內(nèi),我們根據(jù)預(yù)瞄距離找到了一個最近的點
獲取到這個點之后,在根據(jù)小車本身的模型限制計算出轉(zhuǎn)角:
MPC
MPC的求解相對來說更為復(fù)雜。直接亮出代碼框架:
1、獲取車體參數(shù)。
2、選取狀態(tài)量和控制量。
3、對AB矩陣做離散化,Apollo中增加了擾動矩陣。
4、設(shè)定QR矩陣。
5、設(shè)定預(yù)測步數(shù),并對ABQR做增廣。
6、設(shè)定相關(guān)參數(shù)的約束并獲取各傳感器的值。
7、求解控制量u,最后拿到u[0].
-
機(jī)器人
+關(guān)注
關(guān)注
213文章
29697瀏覽量
212602 -
雷達(dá)
+關(guān)注
關(guān)注
50文章
3116瀏覽量
119986 -
軌跡
+關(guān)注
關(guān)注
0文章
46瀏覽量
9462
發(fā)布評論請先 登錄
差速移動機(jī)器人軌跡跟蹤控制方法
淺談差速機(jī)器人的純軌跡跟蹤仿真
跟蹤運動物體軌跡算法的研究

基于PLC的碟式太陽能跟蹤控制系統(tǒng)設(shè)計
基于滑轉(zhuǎn)補(bǔ)償?shù)脑虑蜍?b class='flag-5'>軌跡跟蹤控制算法
飛行器自適應(yīng)軌跡跟蹤滑模控制
四旋翼機(jī)器人軌跡跟蹤控制研究

SCARA機(jī)器人軌跡跟蹤控制

評論