alexklwong / void-dataset

Visual Odometry with Inertial and Depth (VOID) dataset
Other
119 stars 9 forks source link

Is it possible to successfully run the VINS-Mono (or other visual-inertial odometry) algorithm ? #8

Closed zinuok closed 2 years ago

zinuok commented 2 years ago

Hi, I'm trying to run VINS-Mono (other than XIVO you used) on your dataset (using ROS bag files). I converted extrinsic parameters like the below values and the result camera marker direction in Rviz seems reasonable. (forward direction; meaning, at least, no significant error in rotation parameters) However, as you can see in the below picture, the VIO diverges every time, even if I've changed some other parameters or slowed down the play speed.

I've tested 'cabinat0, classroom' Does anyone succeed to run VINS-Mono (or other publicly-available VIO) on this dataset? Are there any wrong values in my extrinsic parameters?

#camera calibration
model_type: PINHOLE
camera_name: camera
image_width: 640
image_height: 480
distortion_parameters:
   k1: -0.204
   k2: 0.0
   p1: 0.000488
   p2: 0.0029
projection_parameters:
   fx: 5.14638e+02
   fy: 5.18858e+02
   cx: 3.15267e+02
   cy: 2.47358e+02
#Rotation from camera frame to imu frame, imu^R_cam
extrinsicRotation: !!opencv-matrix
   rows: 3
   cols: 3
   dt: d
   data: [0.0097356,  0.0026042,  0.9999492,
          -0.9988834, -0.0462053,  0.0098456,
       0.0462286, -0.9989285,  0.0021514]

#Translation from camera frame to imu frame, imu^T_cam
extrinsicTranslation: !!opencv-matrix
   rows: 3
   cols: 1
   dt: d
   data: [0.056, 0.048, -0.013]

image

zinuok commented 2 years ago

the odometry is reasonable for the first few seconds, so it is not about extrinsic parameter error. In my opinion, this seems to be a problem caused by VIO not detecting enough features due to motion blur, not enough initialization, etc...

image

rakshith95 commented 2 years ago

Hello @zinuok, were you able to run VINS-Mono on the dataset with acceptable results?

zinuok commented 2 years ago

@rakshith95 Unfortunately, no.. :( I had several tries to make it work, but I confirmed that feature detection was not good due to motion blur, in VINS-Mono. Maybe it is possible to run other VIO (e.g., XIVO..? ), but I haven't tried it.

As you know, the RGB camera in D435i has rolling-shutter that easily causes blur.

If you find another VIO that works, please let me know.