cartographer离线利用pbstream生成ros标准格式地图

      利用cartographer的cartographer_pbstream_to_rosmap节点写了个launch文件,功能为离线将pbstream文件转换成标准ros格式地图。在早些版本曾有过类似launch文件,后被开发者删除。该node的代码位于pbstream_to_ros_map_main.cc。


  
  

      launch文件的三个配置参数依次为pbstream文件路径,需要保存的ros格式map文件路径(注意不带文件后缀名),分辨率。

      例:

roslaunch cartographer_ros offline_pbstream_to_rosmap.launch pbstream_filename:=/home/cabin/Desktop/carto_map.pbstream map_filestem:=/home/cabin/Desktop/ros_map resolution:=0.05

      运行后在桌面得到ros_map.pgm和ros_map.yaml。

      更简单的方法,利用cartographer_pbstream_to_ros_map节点:

rosrun cartographer_ros cartographer_pbstream_to_ros_map -map_filestem=/home/cabin/Desktop/ros_map -pbstream_filename=/home/cabin/Desktop/carto_map.pbstream -resolution=0.05

      运行后得到同样的效果。

      另在此记录先前未注意的保存cartographer地图的service用法。在建图过程中执行如下指令将在桌面生成pbstream文件而不影响建图。

rosservice call /write_state /home/cabin/Desktop/carto_map.pbstream

你可能感兴趣的:(cartographer,slam,cartographer,slam)