个人能力有限,若有错误请批评指正!
转载请标明出处: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作为地图文件保存出来,其具体增加代码如下:
- 增加头文件包含
#include "cartographer_ros/map_writer.h"
- 将occupancy_grid作为地图文件保存
在occupancy_grid数据完成后,即occupancy_grid.cc的最后for循环之后增加cartographer_ros::WriteOccupancyGridToPgmAndYaml(*occupancy_grid,"/tmp/test");
重新编译文件成功后,运行程序,便可以在tmp目录下看到test.pgm和test.yaml文件了,其中test.pgm是地图文件、test.yaml是地图信息文件。
时间: 2024-10-17 04:55:03