首页 > 代码库 > Cartographer系列之四——地图文件导出

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系列之四——地图文件导出