最近第二次把cartographer_ros跑了一下,先跑了下作者给的demo数据(德意志博物馆),然后跑了下自己录制的rosbag,记录一些细节。
安装cartographer需要在catkin_ws下再建一个catkin_ws,然后通过wstool和rosdep工具管理,编译用ninja(速度很快)。
安装好后下载demo数据跑就行了,跑之前记得source一下carto*所在catkin_ws下的setup.bash,其它一般不会有什么问题。
跑自己bag
跑自己bag时需要在目录${HOME}/catkin_ws/catkin_ws/install_isolated/share/cartographer_ros/下建立自己的启动文件(launch/demo_my_robot.launch和launch/my_robot.launch)和机器人配置文件以及运行参数(configuration_files/my_robot.lua)。
demo_my_robot.launch负责启动rviz和rosbag play,并包含my_robot.launch。而my_robot.launch负责启动carto*相关节点和tf(或发布机器人状态)。
my_robot.lua中主要需要修改:
- 各frame的名称,如"map", "odom"等
- use_pose_extrapolator 是否启用位姿外推器
- use_odometry 是否使用里程计(true时会订阅"odom" topic)
- num_laser_scans 激光扫描的数量,根据传感器类型也有可能是设置num_multi_echo_laser_scans或num_point_clouds
- MAP_BUILDER.use_trajectory_builder_2d = true
- TRAJECTORY_BUILDER_2D.num_accumulated_range_data = 1
- TRAJECTORY_BUILDER_2D.use_imu_data = false 这个比较重要,如果没有imu一定需要设为false,否则会订阅"imu" topic
- TRAJECTORY_BUILDER_2D.min_range = 0.1
- TRAJECTORY_BUILDER_2D.max_range = 80
运行tf和graph: