配置launch文件
launch文件中需要如下几个设置:
1、bag文件的地址与bag文件的名字
2、lua文件的名字
3、topic需要remap成bag文件中发布的topic
类似于这样:
<node name="cartographer_node" pkg="cartographer_ros"
type="cartographer_node" args="
-configuration_directory $(find cartographer_ros)/configuration_files
-configuration_basename mappingcfg.lua
-load_state_filename $(arg load_state_filename)"
output="screen">
<remap from="points2" to="rslidar_points" />
<remap from="scan" to="front_scan" />
<remap from="odom" to="odom_scout" />
<remap from="imu" to="imu" />
配置lua文件
1、tracking_fram 指将所有传感器数据转换到哪个坐标系下处理,有imu的link就设置成imu的link,没有就设置成base_link
2、publisher_frame cartographer发布的tf的最下边一个坐标系,就是bag文件中tf树的最上边的一个坐标系。相当于找到一个坐标系用于发布map到该坐标系之间的变换。
3、provide_odom_frame是否提供里程计,如果有里程计坐标系,这个就是false,如果没有,就需要根据需要决定是否提供里程计的坐标系。这里是提供里程计的TF关系。如果你没有里程计但是这里设置为true会根据当前位姿生成一个odom的TF
4、use_odometry是否使用里程计数据,如果设置为true,tf树中一定要存在odom这个坐标系。
5、num_laser_scans/num_point_clouds单线点云的数量与多线点云的数量,可以同时为1,不能同时为0
6、TRAJECTORY_BUILDER_2D.use_imu_data是否使用imu,如果用imu,tracking_frame一定要设置成imu的link.
7、TRAJECTORY_BUILDER_2D.imu_z点云的最小z的范围,单线点云不能设置大于0的值(不设置),多线点云的这个值要大于0。