ethz-asl / kalibr

The Kalibr visual-inertial calibration toolbox
Other
4.18k stars 1.37k forks source link

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

Open zhangbb-john opened 9 months ago

zhangbb-john commented 9 months 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 6 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.