最近使用一個64線激光+IMU在cartographer上建圖,總結以下幾點,備忘。
準備數據
自己錄製的IMU和Pandar64 線Point2數據(一個激光雷達傳感器),並且有LiDAR到IMU的外參。
修改數據包時,注意frame_id要與cartorgrapher參數urdf中描述的一致。
IMU數據因爲要被用於Robot的位姿估計,所以要注意當前數據與Cartographer中的座標一致性。
注意
激光雷達掃描一週時所生成幀的頻率,此處是每旋轉一週生成一幀點雲數據,
當採用npackages模式時,每個UDP包就生成一幀,一個旋轉週期可能會上百幀,
要注意跟 參數 TRAJECTORY_BUILDER_3D.num_accumulated_range_data 配合使用。
在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.
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。