D435i标定摄像头和IMU笔记五(总结篇)

D435i标定摄像头和IMU笔记五(总结篇)

一、 imu标定

  1. 使用生成的avg-axis中的数据进行联合标定。
  2. 在vins中是联合标定产生的(discrete)值。
    比如联合标定产生数据:
IMU configuration
=================

IMU0:
----------------------------
  Model: calibrated
  Update rate: 200.0
  Accelerometer:
    Noise density: 0.0272600517598 
    Noise density (discrete): 0.385515349097 
    Random walk: 0.000579817988633
  Gyroscope:
    Noise density: 0.00302857381362
    Noise density (discrete): 0.0428305016187 
    Random walk: 3.00373059934e-05
  T_i_b
    [[ 1.  0.  0.  0.]
     [ 0.  1.  0.  0.]
     [ 0.  0.  1.  0.]
     [ 0.  0.  0.  1.]]
  time offset with respect to IMU0: 0.0 [s]

在vins中:

#imu parameters       The more accurate parameters you provide, the better performance
acc_n: 0.385515349097          # accelerometer measurement noise standard deviation. #0.2   0.04
gyr_n: 0.0428305016187         # gyroscope measurement noise standard deviation.     #0.05  0.004
acc_w: 0.000579817988633         # accelerometer bias random work noise standard deviation.  #0.002
gyr_w: 3.00373059934e-05       # gyroscope bias random work noise standard deviation.     #4.0e-5
g_norm: 9.8065500033         # gravity magnitude

二、摄像头标定

  1. 网上教程博客都说的是apriltag比checkerboard更精准,但是我经过4次标定,每种标定板两次,获取的结果都是checkerboard更精确。重投影误差均值和方差如下:

使用checkerboard第一次:

cam0 (/infra_left):
reprojection error: [0.000005, 0.000011] +- [0.036071, 0.035218]
cam1 (/infra_right):
reprojection error: [0.000004, 0.000010] +- [0.037011, 0.035529]

在这里插入图片描述

使用checkerboard第二次:

cam0 (/infra_left):
reprojection error: [0.000001, 0.000000] +- [0.048439, 0.045730]
cam1 (/infra_right):
reprojection error: [-0.000001, -0.000000] +- [0.047342, 0.044493]

在这里插入图片描述
使用apriltag第一次(方差大):

cam0 (/infra_left):
reprojection error: [0.000001, -0.000000] +- [0.061405, 0.056376]
cam1 (/infra_right):
reprojection error: [-0.000001, 0.000000] +- [0.062390, 0.056922]

在这里插入图片描述其实最主要还是联合标定更大了:

在这里插入图片描述
第二次找不到了。。

三、联合标定

  1. 录制rosbag的时候,要前后左右上下、roll/pitch/yaw都运动几遍。
  2. 使用好一点的显卡,标定时间会大大节约。
  3. 在标定结果中有Transformation矩阵,在vins中,前为y,右为x,所以right的红外摄像头应该在x方向为正,故而应该用标定结果的T_ic。
    比如标定结果:
Transformation (cam0):
-----------------------
T_ci:  (imu0 to cam0): 
[[ 0.99996133  0.00810621 -0.00341111 -0.00190162]
 [-0.0080871   0.99995172  0.00558147 -0.00841684]
 [ 0.00345619 -0.00555367  0.99997861 -0.00942781]
 [ 0.          0.          0.          1.        ]]

T_ic:  (cam0 to imu0): 
[[ 0.99996133 -0.0080871   0.00345619  0.00186606]
 [ 0.00810621  0.99995172 -0.00555367  0.00837949]
 [-0.00341111  0.00558147  0.99997861  0.0094681 ]
 [ 0.          0.          0.          1.        ]]

timeshift cam0 to imu0: [s] (t_imu = t_cam + shift)
-0.00850749244575


Transformation (cam1):
-----------------------
T_ci:  (imu0 to cam1): 
[[ 0.99996368  0.00818542 -0.00237228 -0.05200772]
 [-0.00817312  0.99995336  0.00514558 -0.00825517]
 [ 0.00241429 -0.00512601  0.99998395 -0.00986848]
 [ 0.          0.          0.          1.        ]]

T_ic:  (cam1 to imu0): 
[[ 0.99996368 -0.00817312  0.00241429  0.05196219]
 [ 0.00818542  0.99995336 -0.00512601  0.0086299 ]
 [-0.00237228  0.00514558  0.99998395  0.00978742]
 [ 0.          0.          0.          1.        ]]

在vins-fusion中的参数应该配置为:

body_T_cam0: !!opencv-matrix
   rows: 4
   cols: 4
   dt: d
   data: [ 0.99996133, -0.0080871,   0.00345619,  0.00186606,
           0.00810621,  0.99995172, -0.00555367,  0.00837949,
          -0.00341111,  0.00558147,  0.99997861,  0.0094681, 
           0.,          0.,          0.,          1.        ]

body_T_cam1: !!opencv-matrix
   rows: 4
   cols: 4
   dt: d
   data: [ 0.99996368, -0.00817312,  0.00241429, 0.05196219,
           0.00818542,  0.99995336, -0.00512601,  0.0086299,
          -0.00237228,  0.00514558,  0.99998395,  0.00978742,
           0.,          0.,          0.,          1.        ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nankel Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值