ethz-asl / kalibr

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

Influence of IMU sampling interval on the IMU-camera calibration #692

Open yaanggny opened 3 months ago

yaanggny commented 3 months ago

We used Kalibr to calibrate the IMU and camera extrinsic parameters of the ZED 2i camera. By adjusting the noise parameters, the algorithm successfully converged, but there was a significant difference from the given extrinsic parameters(from zed2i/zed_node/left_cam_imu_transform).

We compared the calibration sample data(imu_april.bag   from issues/514) and found that the sampling interval of IMU in our data was unstable. We slightly adjust the noise parameters, and the calibration results change significantly, but this phenomenon does not exist in the sample data.

My question:

  1. Does the IMU sampling interval need to be very stable (example data is very stable)?
  2. Besides replacing a new ZED camera, what else can I do to improve calibration accuracy? Any suggestion will be
  3. ZED2i's ros driver outputs the commonly used ROS coordinate system, which is different from the example data. Do I need to make the coordinate system of IMU data the same as the example data? (Because our results differ significantly from the given values.)

Ground truth:

translation: 
  x: -0.0020000000949949026
  y: -0.023061001673340797
  z: 0.00021700002253055573
rotation: 
  x: -0.0010641843546181917
  y: -0.00032296768040396273
  z: -0.0015000251587480307
  w: 0.9999982714653015

sampling interval in our data: (unit for $\Delta t$ is millisecondsimage image

example imu interval: image


image image

spline fitted well: report-imucam.pdf

yaanggny commented 3 months ago

There was an error in the sampling interval posed before (I use the false timestamps from rosbag.). Actually, it should be like this IMU: image

image: image