Cartographer系列之四——地图文件导出

Posted wen_hust

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cartographer系列之四——地图文件导出相关的知识,希望对你有一定的参考价值。

个人能力有限,若有错误请批评指正!
转载请标明出处:http://www.cnblogs.com/wenhust/

 

一、目的

Cartographer是google的开源2D Laser-based SLAM方案,可以直接在ROS上运行并建图(可参考之前的文章)。不过到目前为止,还没有提供可以直接保存导出已完成的地图文件的功能,但一些如路径规划等后续工作有赖于地图文件得以进行,因此在这里提供一个简便方法可以将cartographer的地图文件保存出来。

二、方法

在cartographer_ros的源码中已经存在map_writer.h、map_writer.cc的文件,我的方法是直接在occupancy_grid.cc中,增加对map_writer的使用,使其直接将occupancy_grid作为地图文件保存出来,其具体增加代码如下:

  1. 增加头文件包含
    #include "cartographer_ros/map_writer.h"
  2. 将occupancy_grid作为地图文件保存
    在occupancy_grid数据完成后,即occupancy_grid.cc的最后for循环之后增加
    cartographer_ros::WriteOccupancyGridToPgmAndYaml(*occupancy_grid,"/tmp/test");

重新编译文件成功后,运行程序,便可以在tmp目录下看到test.pgm和test.yaml文件了,其中test.pgm是地图文件、test.yaml是地图信息文件。

以上是关于Cartographer系列之四——地图文件导出的主要内容,如果未能解决你的问题,请参考以下文章

cartographer自动更新地图 初探

cartographer保存地图

cartographer地图自动定时更新,初版

Rplidar学习—— rplidar使用cartographer_ros进行地图云生成

cartographer导航的时候更新地图

Java面试题超详细讲解系列之四Jvm篇