Kalibr使用

目的:使用Kalibr来标定出imu与相机的外参矩阵

0.准备工作

标定板:Aprilgrid(推荐),checkerboard, circlegrid

需要提供的参数:
1.imu的配置文件
填写imu的动态特性:需要 noise density以及 bias random walk

#Accelerometers
accelerometer_noise_density: 1.86e-03   #Noise density (continuous-time)
accelerometer_random_walk:   4.33e-04   #Bias random walk

#Gyroscopes
gyroscope_noise_density:     1.87e-04   #Noise density (continuous-time)
gyroscope_random_walk:       2.66e-05   #Bias random walk

rostopic:                    /imu0      #the IMU ROS topic
update_rate:                 200.0      #Hz (for discretization of the values above)

1.相机的标定

ros录制相机的图像,注意相机固定,标定板在前方运动,相机收集的频率推荐降低到4HZ:

rosbag record -O subset /cam 
rosrun topic_tools throttle messages /cam 4.0 /cam_reduce

标定的过程使用命令行

kalibr_calibrate_cameras --bag [filename.bag] 
--topics [TOPIC_0 ... TOPIC_N] --models [MODEL_0 ... MODEL_N] 
--target [target.yaml]

实例:

kalibr_calibrate_cameras --target april_6x6.yaml --bag static.bag --models pinhole-equi pinhole-equi omni-radtan omni-radtan --topics /cam0/image_raw /cam1/image_raw /cam2/image_raw /cam3/image_raw

验证:反投影误差(reprojection errors)应该在 (0.1-0.2 px )

kalibr_camera_validator --chain chain.yaml --target aprilgrid_6x6.yaml

2.相机和IMU的联合标定

标定的过程使用命令行

kalibr_calibrate_imu_camera --bag filename.bag --cam camchain.yaml 
--imu imu.yaml --target target.yaml

实例:

kalibr_calibrate_imu_camera --target april_6x6.yaml --cam camchain.yaml 
--imu imu_adis16448.yaml --bag dynamic.bag --bag-from-to 5 45

增加一个参数,忽略时间空隙:

--no-time-calibration 

增加一个参数,bag从5秒录制到45秒:

--bag-from-to 5 45

你可能感兴趣的:(SLAM)