ethz-asl / kalibr

The Kalibr visual-inertial calibration toolbox
Other
4.43k stars 1.4k forks source link

why in my result report, the gyroscope error is smaller than 2e-9 rad/s? #648

Closed zhangbb-john closed 3 months ago

zhangbb-john commented 1 year ago

I use kalibr to calibrate the extrinsic parameters of camera and imu. The result is as follows:

Calibration results
===================
Normalized Residuals
----------------------------
Reprojection error (cam0): mean 0.292609768339, median 0.206647586983, std: 0.322625328641
Gyroscope error (imu0): mean 1.41337188173e-06, median 5.59791323474e-09, std: 5.68855649336e-05
Accelerometer error (imu0): mean 0.000290813943325, median 0.000290815634201, std: 6.08102286099e-07
Residuals
----------------------------
Reprojection error (cam0) [px]: mean 0.292609768339, median 0.206647586983, std: 0.322625328641
Gyroscope error (imu0) [rad/s]: mean 2.79833355735e-09, median 1.10833027446e-11, std: 1.12627672405e-07
Accelerometer error (imu0) [m/s^2]: mean 2.81722020603e-06, median 2.81723658616e-06, std: 5.89090752713e-09
Transformation (cam0):
-----------------------
T_ci: (imu0 to cam0): 
[[-0.1014518 0.9944234 0.02880338 0.0006831 ]
[-0.99482069 -0.10122477 -0.00923767 0.000735 ]
[-0.00627054 -0.02959138 0.99954241 0.00001525]
[ 0. 0. 0. 1. ]]
T_ic: (cam0 to imu0): 
[[-0.1014518 -0.99482069 -0.00627054 0.00080059]
[ 0.9944234 -0.10122477 -0.02959138 -0.00060444]
[ 0.02880338 -0.00923767 0.99954241 -0.00002813]
[ 0. 0. 0. 1. ]]
timeshift cam0 to imu0: [s] (t_imu = t_cam + shift)
0.158010531547
Gravity vector in target coords: [m/s^2]
[-0.24508571 0.18034792 -9.80182792]

Calibration configuration
=========================
cam0
-----
Camera model: pinhole
Focal length: [779.4745053234154, 1038.89995713717]
Principal point: [662.3315324942033, 518.6678595645183]
Distortion model: radtan
Distortion coefficients: [-0.4396736969906403, 0.23485666064798882, -0.00026527931810937363,
-0.00200813623046122]
Type: checkerboard
Rows
Count: 11
Distance: 0.05 [m]
Cols
Count: 8
Distance: 0.05 [m]
IMU configuration
=================
IMU0:
----------------------------
Model: calibrated
Update rate: 50.0
Accelerometer:
Noise density: 0.00137 
Noise density (discrete): 0.00968736290226 
Random walk: 0.00016
Gyroscope:
Noise density: 0.00028
Noise density (discrete): 0.00197989898732 
Random walk: 2.68e-05
T_ib (imu0 to imu0)
[[ 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]

Why in my result report, the gyroscope error is smaller than 2e-9 rad/s? that is very strange since my device can never reach that level of accuracy ( (I use Mti-630 xsens device).

goldbattle commented 11 months ago

Do you have the bag, command, and configs to generate this? Likely the IMU readings are not correct (or timestamp) in the bag.