联合标定双目相机和imu,使用工具Kalibr

文章目录

  1. imu标定,产生数据写入imu.yaml中,见下文,imu.yaml文件要用于联合标定。
  2. 双目相机标定,产生数据文件用于联合标定,文件名类似camchain-homeubuntustereo_calibra.yaml文件。
  3. 双目和imu联合标定需要用到的文件为,录制的包含双目和imu和topic的bag,用于标定的标定板的数据信息文件(pril_6x6.yaml),第二步产生的双目相机文件,第一步产生的imu数据imu.yaml.

一、imu标定,步骤可参考之前的博客,也可自行搜索教程,两种方法,使用imu_utils或者kalibr标定imu 的随机误差。

1. imu_utils方法
2. kalibr方法

两种方法最终都会获得gyroscope_random_walk、gyroscope_noise_density、accelerometer_random_walk、accelerometer_noise_density四个数据,新建一个文件并命名为imu.yaml把上面四个数据按照以下格式输入。

rostopic: /boteye/sensor/IMU_data
update_rate: 200.0 #Hz
accelerometer_noise_density: 1.5566153514326565e-02 #continous
accelerometer_random_walk: 8.3652091911342024e-04
gyroscope_noise_density: 7.7729009328349717e-04 #continous
gyroscope_random_walk: 2.4797414306508005e-05

将其中的rostopic更改乘自己imu topic的名字。

二、双目相机标定,需要事先准备标定板,并录制相机的bag。

1.标定板,可在kalibr的wiki中下载,地址:https://github.com/ethz-asl/kalibr/wiki/downloads

联合标定双目相机和imu,使用工具Kalibr_第1张图片
上一步中的imu.yaml也可以下载,但是需要外网,而且内容不是很多,所以这里建议自己写一份。
我用的标定板文件是Aprilgrid 6x6 0.8x0.8 m (A0 page),下载之后打印,新建或者下载一个文件april_6x6.yaml,格式如下。

target_type: ‘aprilgrid’ #gridtype
tagCols: 6 #number of apriltags
tagRows: 6 #number of apriltags
tagSize: 0.021 #size of apriltag, edge to edge [m]
tagSpacing: 0.3 #ratio of space between tags to tagSize

Aprilgrid 6x6 0.8x0.8 m (A0 page)标定板,测量得出大的方格的长度是21厘米,所以把tagsize这一项改成了0.021.

2.录制bag,记录双目相机的topic信息。

打开双目相机,降低双目相机的采样频率,不然数据太多,处理时间会很长。降低采样频率的命令

rosrun topic_tools throttle messages 左目topic 4.0 /left
rosrun topic_tools throttle messages 右目topic 4.0 /right

录制bag,录制bag 的同时,相机对准标定板,或是固定相机或是固定标定板,晃动另一个,动作不要太大,不要让相机看不清标定板(具体怎么动最好,没有在网上查到过,自己瞎搞,就争取把标定板晃动到过相机像素平面的每个地方)

rosbag record -O stereo_calibra1011.bag /left /right

结束录制,在kalibr-cde文件下执行一下命令

./kalibr_calibrate_cameras --target dynamic/april_6x6.yaml --bag ~/stereo_calibra1011.bag --models pinhole-radtan pinhole-radtan --topics /left /right

其中的每个文件,各自对应自己电脑中的目录即可。成功之后会生成一个camchain-homeubuntustereo_calibra.yaml文件,第三步联合标定会用到。

三、联合标定

1. 录制bag

打开相机输入以下指令

rosbag record -o stereo_imu_biaoding.bag 你的左目topic 你的右目topic 你的imutopic

录制的过程需要相机对准标定板,分别激活imu的每个轴,我的理解就是绕着每个轴做一定角度的旋转,不要把标定板旋转出视野。每个轴做个3、4次,然后在标定板前做平移,上下、左右、前后。做完之后空中画几个8字。(这里的动作,也不确定那种最好,反正做的不好出不了数据就再来一次。。。。。。)

2. 录制好bag之后,在kalibr-cde文件下执行一下命令

./kalibr_calibrate_imu_camera --target dynamic/april_6x6.yaml --cam camchain-homeubuntustereo_calibra1011.yaml --imu dynamic/imu_adis16448.yaml --bag ~/stereo_imu_biaoding_2019-10-11-13-35-24.bag

其中的文件对应自己电脑中的文件位置即可。
结束之后会得到一个文件名类似camchain-imucam-homeubuntustereo_imu.yaml的文件,这里面包含了相机到imu的旋转平移和两个相机之间的旋转平移。

你可能感兴趣的:(imu标定)