cartographer建图
跑通官方例程
下载官方bag
1 | https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag |
运行bag
1 | roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/workspace/carto_ws/src/cartographer_paper_deutsches_museum.bag |
添加map话题/map

保存地图
如果运行ERROR
ERROR: Unable to load type [cartographer_ros_msgs/FinishTrajectory].
Have you typed 'make' in [cartographer_ros_msgs]?
进入工作空间
1 | source ./install_isolated/setup.bash |
停止地图构建
1 | rosservice call /finish_trajectory 0 |
生成地图文件(后缀为.pbstream)
1 | rosservice call /write_state "{filename: '${HOME}/Downloads/carto_map.pbstream'}" |
将地图文件转换为map和yaml文件
1 | rosrun cartographer_ros cartographer_pbstream_to_ros_map -map_filestem=${HOME}/Downloads/carto_map -pbstream_filename=${HOME}/Downloads/carto_map.pbstream -resolution=0.05 |
map文件

yaml文件
1 | image: /home/autobot/Downloads/carto_map.pgm |
实体小车建图
修改文件revo_lds.lua
1 | include "map_builder.lua" |
demo_revo_lds.launch
1 | <launch> |
启动雷达
1 | roslaunch delta_lidar delta_lidar.launch |
运行与建图
1 | roslaunch cartographer_ros demo_revo_lds.launch |
键盘控制运动
1 | python3 keyboard_control.py |
保存地图
参考上面


参考文章手持雷达建立2D地图
离线建图
启动雷达
1 | roslaunch delta_lidar delta_lidar.launch |
键盘控制
1 | python3 keyboard_control.py |
rosbag记录
1 | mkdir ./workspace/bagfiles |
1 | rosbag record -a -O 目标文件 |
默认目标文件名称为时间戳.bag
启动cartographer
1 | roslaunch cartographer_ros demo_revo_lds.launch |
rosbag播放
1 | rosbag play --clock 2023-11-21-17-45-52.bag |
如图所示

保存地图
参考上面
