rpng / open_vins

An open source platform for visual-inertial navigation research.
https://docs.openvins.com
GNU General Public License v3.0
2.05k stars 615 forks source link

With a custom dataset, the locations diverge. #437

Open Z-Xiong opened 2 months ago

Z-Xiong commented 2 months ago

We use mpu6000 to obtain the accelerometer and gyroscope values at 100Hz while collecting the frequency at 20Hz. And used the method in the documentation to calibrate the camera and imu and between the camera and imu. Below are the configuration files used. imu.yaml

#Accelerometer
accelerometer_noise_density: 0.0006739720604502373 
accelerometer_random_walk: 8.573760135961954e-06 

#Gyroscope
gyroscope_noise_density: 0.00497167224696044 
gyroscope_random_walk: 0.00014068225293967367 

rostopic: '/imu0' #Make sure this is correct
update_rate: 100.0 #Make sure this is correct

camchain-imucam.yaml

cam0:
  T_cam_imu:
  - [-0.15648538643630197, 0.9862054960014432, -0.0539540868556353, 0.0005347724669216995]
  - [0.1594151437326083, 0.07913042358480787, 0.9840351558821452, -0.00012586161076496793]
  - [0.9747302887366279, 0.14538602312407162, -0.16959884580849552, -0.00036736308899636025]
  - [0.0, 0.0, 0.0, 1.0]
  camera_model: pinhole
  distortion_coeffs: [0.36261619267439066, -1.4153139694196566, -0.003438440763239287, 0.0032504558613163]
  distortion_model: radtan
  intrinsics: [723.8666745706989, 726.821998039784, 321.1721901213624, 160.84603758249207]
  line_delay: -7.007640624981265e-05
  resolution: [640, 360]
  rostopic: /cam0/image_raw
  timeshift_cam_imu: -0.06350724145105457

imu-report-imucam.pdf

Calibration results
===================
Normalized Residuals
----------------------------
Reprojection error (cam0): mean 0.9636449149800216, median 0.7609756045271983, std: 0.7468461912975807
Gyroscope error (imu0):
mean 3.150741835498185, median 2.80902840927942, std: 2.0930817173652922
Accelerometer error (imu0): mean 2.088231434501006, median 1.6305300620780163, std: 1.6210970086298837
Residuals
----------------------------
Reprojection error (cam0) [px]: mean 0.9636449149800216, median 0.7609756045271983, std: 0.7468461912975807
Gyroscope error (imu0) [rad/s]: mean 0.276911071949382, median 0.24687870621010133, std: 0.1839558847707472
Accelerometer error (imu0) [m/s^2]: mean 0.07037048213037986, median 0.054946585278238695, std:
0.05462870455479994
Transformation (cam0):
-----------------------
T_ci: (imu0 to cam0):
[[-0.26800681 0.95576049 -0.12121976 0.34365608]
[ 0.79429383 0.29041006 0.53362844 -0.58104977]
[ 0.54522442 0.04673195 -0.83698653 0.11096242]
[ 0. 0. 0. 1.]]
T_ic: (cam0 to imu0):
[[-0.26800681 0.79429383 0.54522442 0.49312699]
[ 0.95576049 0.29041006 0.04673195 -0.1648957 ]
[-0.12121976 0.53362844 -0.83698653 0.44459664]
[ 0. 0. 0. 1.]]
timeshift cam0 to imu0: [s] (t_imu = t_cam + shift)
-0.04036013561890319
Gravity vector in target coords: [m/s^2]
[-5.44247206 1.2940873 -8.05439376]

Calibration configuration
=========================
cam0
-----
Camera model: pinhole
Focal length: [723.8666745706989, 726.821998039784]
Principal point: [321.1721901213624, 160.84603758249207]
Distortion model: radtan
Distortion coefficients: [0.36261619267439066, -1.4153139694196566, -0.003438440763239287, 0.0032504558613163]
Type: checkerboard
Rows
Count: 9
Distance: 0.024 [m]
Cols
Count: 6
Distance: 0.024 [m]

IMU configuration
=================
IMU0:
----------------------------
Model: calibrated
Update rate: 100.0
Accelerometer:
Noise density: 0.0033698603022511864
Noise density (discrete): 0.03369860302251186
Random walk: 8.573760135961954e-05
Gyroscope:
Noise density: 0.008788757899156717
Noise density (discrete): 0.08788757899156717

Random walk: 0.0004973868752312219
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]

newest-imu-report-imucam.pdf How should I troubleshoot the problem?