单目+IMU 远程标定详细步骤,使用kalibr、imu_utils两个开源工具【D455为例】

之前写了一个T265相机的标定,那个是双目+IMU只写了大纲,可能有些细节还不够清楚,我再写一个D455(单目+IMU,没有用他的depth信息),这次把更细节的操作记录一下:

我还写了一个T265远程标定的文章,里面还写了一些标定的技巧和最后标定的结果,感兴趣的话可以看看:传感器远程标定 机载电脑无线通信【T265为例】_全日制学生混的博客-CSDN博客

一、进入远程桌面

 图 NoMachine远程桌面软件

主要命令:

sudo apt install net-tools
ssh a@192.168.168.165	查看远程命令窗口
ping 192.168.168.165	查看延迟
scp a@192.168.168.165:/home/a/workspace/uav_ws/imu_camera_calibration.bag .	拷贝文件

图 标定时的窗口

 二、单目标定

录制1:双目与联合标定所需bag

1、提前改好rs_camera.launch 主要更改:

1、color相机话题发布
2、acc/groy 话题发布
3、imu_unit => copy
4、把同步打开  <arg name="enable_sync"  default="true"/>

2、启动D455

roslaunch realsense2_camera rs_camera.launch
rosrun topic_tools throttle messages /camera/color/image_raw  10.0 /cam
rosrun topic_tools throttle messages /camera/imu 200.0 /imu

3、录制:(100s)

rosbag record -O imu_camera_calibration.bag /cam /imu –duration=100

4、拷贝bag

scp a@192.168.168.165:/home/a/workspace/uav_ws/imu_camera_calibration.bag .

5、单目标定:

rosrun kalibr kalibr_calibrate_cameras --target ./april_6x6.yaml --bag ./imu_camera_calibration.bag --bag-from-to 8 98 --models pinhole-radtan --topics /cam –show-extraction

三、IMU标定

录制2、IMU静置标定bag

1、提前改好realsense中的 rs_camera.launch

1、acc/groy 话题发布
2、imu_unit => copy

2、启动相机

roslaunch realsense2_camera rs_camera.launch
rosrun topic_tools throttle messages /camera/imu 200.0 /imu

3、录制(2h)

rosbag record -O imu.bag /imu --duration=2h

4、拷贝

scp a@192.168.168.165:/home/a/workspace/uav_ws/imu.bag .

5、编写imu_utils节点的launch文件

<!--路径:imu_utils/launch/-->
<!--文件名:D455_imu.launch-->
<launch>
    <node pkg="imu_utils" type="imu_an" name="imu_an" output="screen">
        <param name="imu_topic" type="string" value= "/imu"/>
        <param name="imu_name" type="string" value= "D455_imu"/>
        <param name="data_save_path" type="string" value= "$(find imu_utils)/data/"/>
        <param name="max_time_min" type="int" value= "119"/>
        <param name="max_cluster" type="int" value= "200"/>
    </node>
</launch>

6、标定

roslaunch imu_utils  D455_imu.launch
rosbag play -r 1000 imu.bag 	1000倍速度播放bag

四、IMU+单目联合标定

1、准备标定结果:

1)单目标定输出文件:imu_camera_calibration-camchain.yaml
2)IMU标定输出文件:D455_imu_imu_param.yaml(此文件在imu_utils/data中)
3)将IMU标定输出文件提取为kalibr格式,与单目标定输出文件放在workspace中,命名为imu.yaml
4)imu.yaml格式如下:
#Accelerometers
accelerometer_noise_density: 9.9482059952620203e-03   #Noise density (continuous-time)
accelerometer_random_walk:   2.9873265404457052e-04   #Bias random walk
 
#Gyroscopes
gyroscope_noise_density:     2.0968928690840842e-03   #Noise density (continuous-time)
gyroscope_random_walk:       2.1343380606616169e-05   #Bias random walk
 
rostopic:                    /imu       #the IMU ROS topic
update_rate:                 200.0      #Hz (for discretization of the values above)

 2、启动联合标定:

rosrun kalibr kalibr_calibrate_imu_camera --target ./april_6x6.yaml  --cam ./imu_camera_calibration-camchain.yaml --imu ./imu.yaml --bag ./imu_camera_calibration.bag --bag-from-to 8 98  --show-extraction

3、至此标定完成

五、技巧

1、机载电脑在录制完单目的bag并发送给笔记本上标定后,在笔记本上做单目标定的同时,可以让机载电脑录制imu标定的bag

2、imu的bag一定要倍速播放,如 -r 1000

3、imu的bag一般录制1-2h,相机的bag一般录制100s,相机的bag不要录制太长时间,对录制帧数也要加以限制,否则标定过程会非常漫长

4、按道理说,相机标定、IMU标定、联合标定需要录制三个bag,但其实第一个和第三个可以使用同一个bag,这就要求我们在录制的时候,不仅要接收相机的话题,还有录制imu的话题,然后在相机标定的时候,只播放bag中的相机话题,在联合标定的时候,播放imu和相机的话题。

六、参考文章

1:https://www.jianshu.com/p/194d6c9ef9a4

2:bmi055 标定_Ubuntu16.04+RealsenseT265跑通VINS-Fusion_之死的博客-CSDN博客

3:Kalibr 之 Camera-IMU 标定 (总结)_晨光ABC的博客-CSDN博客_kalibr标定

4:双目相机与IMU联合标定_合工大机器人实验室的博客-CSDN博客_双目相机和imu联合标定

5:Introduction · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程

6:Intel Realsense T265使用教程_熊猫飞天的博客-CSDN博客_t265

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值