<source : greatway9999>


步驟1.進到工作區域並更新環境變量

$ cd ~/tiago_public_ws
$ source ./devel/setup.bash


步驟2.啟動模擬的Launch檔

roslaunch tiago_2dnav_gazebo tiago_navigation.launch public_sim:=true lost:=true


Particle Cloud : 就是環繞在機器人周邊的紅色箭頭所組成的雲,代表AMCL粒子濾波。粒子越集中,代表對位置估計的信心指數越高。

Global costmap : 在既有空間中,依據已存在的障礙物所構建的地圖,由global planner計算從一點到另一點的最佳路徑規劃,而不會撞到障礙物。

Local costmap : 在實際移動中,可能會出現原本不存在於Global costmap的障礙物。在從一點移動到另一點的過程中,local planner會依據global planner所計算的最佳路徑,計算新的躲避障礙物的路徑,再進行移動。


步驟3.定位

開新的Terminal,輸入以下指令 :

rosservice call /global_localization "{}"



一開始機器人並不知道自己的位置,因此AMCL粒子就會呈現雜亂分布,透過讓機器人移動 (本例是原地旋轉),就可以讓無效的AMCL粒子被移除,並逐漸收斂,得到正確的位姿估計。


再來輸入清除錯誤資料的指令

rosservice call /move_base/clear_costmaps "{}"

最後會得到一個將具有實際障礙物的靜態地圖,可作為後續導航之用。


步驟4.導航

請先關閉鍵盤控制的節點。

透過Rviz中的 "2D Nav Goal",左鍵按著,在欲讓機器人前往的位置上放開。箭頭的根部會是機器人抵達的位置,而箭頭的方向則是機器人的朝向。


仔細觀察,的確,機器人在前往目的地的過程中會避開障礙物。

---

參考資料 :

TIAGo/Tutorials/Navigation/Localization

#Navigation #Localization

0 留言