SLAM(同時定位和地圖繪制)是一種通過估計地圖在任意空間中的當前位置來繪制地圖的技術:它是TurtleBot的前代產品的眾所周知的功能。cartographer是google推出的一套基於圖優化的SLAM算法。cartographer算法的主要目標是實現低計算資源消耗,達到實時SLAM的目的。本例程以cartographer算法為例作說明。
1.運行SLAM節點
[TurtleBot3]
- 在Turtlebot3上打開一個終端。
- 調出基本的軟件包來啟動其應用。
export TURTLEBOT3_MODEL=${TB3_MODEL} ros2 launch turtlebot3_bringup robot.launch.py
注:指定${TB3_MODEL}
:burger
,waffle
,waffle_pi
命令之前。請參考文檔“ TurtleBot3 MODEL的相應說明”來設置機器人模型。
[遠程PC]
- 在遠程PC上打開一個新終端。
- 啟動SLAM文件。
ros2 launch turtlebot3_cartographer cartographer.launch.py
2.運行遠程操作節點
為了實現A映射的高級別准確性,您需要在給定位置手動重復幾次SLAM。使用以下程序包(遠程操作節點)進行手動操作。
請參閱映射過程的圖片,其中顯示了機器人如何使用SLAM繪制地圖。
[遠程PC]
- 在遠程PC上打開終端。
- 運行遠程操作節點。
export TURTLEBOT3_MODEL=${TB3_MODEL} ros2 run turtlebot3_teleop teleop_keyboard
使用鍵盤控制器
Control Your TurtleBot3! --------------------------- Moving around: w a s d x w/x : increase/decrease linear velocity a/d : increase/decrease angular velocity space key, s : force stop CTRL-C to quit
3.保存地圖
使用map_saver節點通過SLAM保存繪制的地圖。
該地圖由機器人收集的數據繪制:里程表,tf和傳感器的掃描信息,您可以使用RViz進行監視。
映射文件默認的名稱map.pgm
,map.yaml
,這是其中保存在目錄map_saver運行。
[遠程PC]
- 在遠程PC上打開一個新終端。
- 運行map_saver節點。
ros2 run nav2_map_server map_saver -f ~/map
該-f
選項是指文件夾和文件名,用於保存地圖文件。如果~/map
作為一個選項,map.pgm
並且map.yaml
將被保存在位於地圖文件夾~/
($ HOME目錄:/home/<username>
)。