今天开始跟着网友大佬学习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