在cartographer上调试自己录制的数据(Pandar64 + IMU)

最近使用一个pandar64线激光(和赛)+IMU在cartographer上建图,总结以下几点,备忘。

1. 准备数据

自己录制的IMU和Pandar64 线Point2数据(一个激光雷达传感器),并且有LiDAR到IMU的外参。

修改数据包时,注意frame_id要与cartorgrapher参数urdf中描述的一致。

IMU数据因为要被用于Robot的位姿估计,所以要注意当前数据与Cartographer中的坐标一致性。

注意激光雷达扫描一周时所生成帧的频率,此处是每旋转一周生成一帧点云数据,当采用npackages模式时,每个UDP包就生成一帧,一个旋转周期可能会上百帧,要注意跟 参数 TRAJECTORY_BUILDER_3D.num_accumulated_range_data 配合使用。

2. 在cargographer中的数据校验

只要没有特别醒目的报错,即可认为没问题。

类似以下这样的报警,可以不必在意,基本不影响建图,

Point data (frame_id: "horizontal_vlp16_link") has a large gap, largest is 0.118117 s, recommended is [0.0005, 0.05] s with no jitter.

3. launch和lua参数配置

按照demo_backpack_3d.launch以及对应的lua和urdf参数进行配置即可,需要注意以下参数

map_frame = "map",

? tracking_frame = "imu_link",

? published_frame = "base_link",

? odom_frame = "odom",

? provide_odom_frame = false,

use_odometry = false,

num_point_clouds = 1,

TRAJECTORY_BUILDER_3D.num_accumulated_range_data = 1? #这个参数一定要注意,如果不改成对应的频率,可能会出现点云一直不动,没有轨迹生成的情况

同时也要注意,urdf中 欧拉角给出的顺序,参考backpack_3d.urdf可知,实际顺序为 rpy="pitch roll yaw",而不是想象中的RPY。

4.建好的图