最近使用一个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.建好的图
网友评论