1. 結束構圖,停止接收新數據
ros2 service call /finish_trajectory cartographer_ros_msgs/srv/FinishTrajectory "{trajectory_id: 0}"
其中服務類型可以tab出來,服務的格式可以使用如下命令查看
ros2 interface show cartographer_ros_msgs/srv/FinishTrajectory.srv
2. 序列化保存其當前狀態
ros2 service call /write_state cartographer_ros_msgs/srv/WriteState "{filename: '/home/develop/bags/mymap.pbstream'}"
3. 將pbstream轉換為pgm和yaml
在cartographer_pbstream_to_ros_map文件目錄下執行:
./cartographer_pbstream_to_ros_map -map_filestem=${HOME}/bags/mymap -pbstream_filename=${HOME}/bags/mymap.pbstream -resolution=0.05
這樣地圖已經保存成功了。
