imu-相机标定

目录

标定介绍

内参-外参

标定方法

imu标定中的注意事项:

kalibr imu-相机标定

kalibr安装

双目标定

相机驱动

 标定

imu-相机标定

所遇问题:


标定介绍

内参-外参

标定分为内参和外参标定,其中内参标定是确定传感器自身的模型参数,即确定仅与传感器自身存在关系的参数,所以imu和相机都需要进行内参标定。外参标定则是确定imu和相机之间的刚体变换关系,也就是确定两个传感器坐标之间的三维变换矩阵。

标定方法

其中相机内参和外参可以使用kalibr标定,具体步骤可以参考下面的kalibr imu-相机标定;

imu标定则需要使用其他工具,如Allan_variance_ros工具、imu-utils工具进行随即误差标定,一般不需要进行imu的系统误差标定,默认imu性能较好,尺度、工装误差(3个轴之间不正交)在出厂时的校正效果可以直接使用,而加速度计和陀螺仪的bias偏差、重力矢量会在标定算法、SLAM算法中估计,无需确定。

此外,最近发现一个已经集成的ros-imu工具箱,可以在rviz中查看imu姿态:https://github.com/CCNYRoboticsLab/imu_tools

imu标定中的注意事项:

结合之前的几篇博客:

imu 标定_scjdas的博客-CSDN博客

airsim IMU仿真_scjdas的博客-CSDN博客(介绍Imu误差模型,连续时间误差与离散时间误差)

结合其他几个大牛技术团队的建议,在imu随机误差标定完成后,可以适当放大随机误差,以保证没有被建模到的误差也被融入算法中。

ORB-SLAM3、kalibr、TUM-VI都这样建议(依次展示):

kalibr imu-相机标定

参考:

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

Kalibr标定工具箱使用详细过程_随机游走321的博客-CSDN博客

手机上的SLAM(7):Kalibr相机+IMU离线标定 - 知乎

kalibr安装

参考官方安装教程:

参考官方安装教程: https://github.com/ethz-asl/kalibr/wiki/installation

安装完成后使用官方提供的数据包测试

双目标定

相机驱动

双目分为单设备和多设备,我们的双目相机是单设备,也就是双目图像拼接在一起。

使用usb-cam发布ros图像,在其launch文件中设置分辨率的宽度为2倍。这里的分辨率不能乱取,可以根据报错反推对应分辨率!

再写ros包分割拼接在一起的双目图像

相关代码见:

        ROS调用USB双目摄像头模组_ros usb_cam_昼行plus的博客-CSDN博客

 标定

rosbag录制

rosbag record /left_cam/image_raw /right_cam/image_raw -O images.bag

标定板配置文件



#example for aprilgrid
  # target_type: 'aprilgrid' #gridtype
  # tagCols: 6                  #number of apriltags
  # tagRows: 6                  #number of apriltags
  # tagSize: 0.088              #size of apriltag, edge to edge [m]
  # tagSpacing: 0.3             #ratio of space between tags to tagSize
                              #example: tagSize=2m, spacing=0.5m --> tagSpacing=0.25[-]

#example for checkerboard
 target_type: 'checkerboard' #gridtype
 targetCols: 13              #number of internal chessboard corners
 targetRows: 11              #number of internal chessboard corners
 rowSpacingMeters: 0.05       #size of one chessboard square [m]
 colSpacingMeters: 0.05       #size of one chessboard square [m]

标定命令

rosrun kalibr kalibr_calibrate_cameras  --target checkBoard_13x11.yaml     --bag images.bag --bag-from-to 5 60     --models pinhole-radtan  --topics /left_cam/image_raw  --show-extraction

imu-相机标定

checkborad

rosrun kalibr kalibr_calibrate_imu_camera  --target checkBoard_13x11.yaml     --bag images_imu.bag    --bag-from-to 5 60     --cam images-camchain.yaml    --imu imu.yaml     --imu-models scale-misalignment

april_tag 

rosrun kalibr kalibr_calibrate_imu_camera  --target april_6x6.yaml     --bag images_imu.bag    --bag-from-to 5 160     --cam images_imu-camchain.yaml    --imu imu.yaml     --imu-models calibrated

所遇问题:

assert(_bufferTmin <= _time.toScalar() < _bufferTmax) failed [1.40473e+09 <= 1.40473e+09 < 1.40473e+

 解决参考:Kalibr进行相机-IMU联合标定踩坑记录RuntimeError: Optimization failed!_HyperZhu的博客-CSDN博客

但此处要注意,调大博客中提到的参数会导致计算量增大,运行结果的重投影误差也很大,所以要慎重调整参数,一般这里报错说明数据录制效果不好或者设备采集到的数据质量差,需要重新录制或者更换高质量设备

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值