今天開始跟著網友大佬學習cartographer.
1. 如何保存cartographer的地圖數據
在運行cartographer過程中可以隨時保存建好的地圖,步驟如下:
首先是重新打開一個terminal, 如果你沒有將你的cartographer_ros下的setup.bash文件寫入到.bashrc中,那你重新打開一個terminal就需要重新source一下你的setup.bash文件,否則會出錯,有安裝conda的小伙伴,也要確定是否需要關閉當前conda環境,因為ros依賴的Python是2.7版本的。
然后執行指令:rosservice call /write_state /home/yunlei/ROS/cartographer_libs/carto_map/carto_map.pbstream '1'
地圖數據保存成功后會看到提示如下
?
?由于使用cartographer_ros提供的/write_state方法保存的地圖事*.pbstream的格式,而要在后續的自主導航中使用的地圖,需要將*.pbstream格式的地圖轉換為GridMap格式。使用下面的指令進行地圖轉換。轉換成功后,得到額外的兩個文件。ros_map.pgm還有ros_map.yaml.
rosrun cartographer_ros cartographer_pbstream_to_ros_map -map_filestem=/home/yunlei/ROS/cartographer_libs/carto_map/ros_map -pbstream_filename=/home/yunlei/ROS/cartographer_libs/carto_map/carto_map.pbstream -resolution=0.05
?