Continuous-Time Spline Visual-Inertial Odometry

 

Abstract

We propose a continuous-time spline-based formulation for visual-inertial odometry (VIO). Specifically, we model the poses as a cubic spline, whose temporal derivatives are used to synthesize linear acceleration and angular velocity, which are compared to the measurements from the inertial measurement unit (IMU) for optimal state estimation. The spline boundary conditions create constraints between the camera and the IMU, with which we formulate VIO as a constrained nonlinear optimization problem. Continuous-time pose representation makes it possible to address many VIO challenges, e.g., rolling shutter distortion and sensors that may lack synchronization. We conduct experiments on two publicly available datasets that demonstrate the state-of-the-art accuracy and real-time computational efficiency of our method.

Method

 

spline_vio_factor_graph
Factor Graph

 

 

spline_vio_state_vector
State Vector

 

 

spline_vio_energy_function
Energy Function

 

 

spline_vio_position
Spline Position

 

 

spline_vio_rotation
Spline Rotation

 

 

spline_vio_acc
Accelerator Synthesis

 

 

spline_vio_gyro

Gyroscope Synthesis

 

 

spline_vio_cv
Velocity Continunity Constraint

 

 

spline_vio_cr
Rotation Continunity Constraint

 

Results

 

spline_vio_mh1
The proposed VIO system running on MH1 of EuRoC dataset. The estimated trajectory (red) is well aligned (by SE(3)) to the ground-truth poses (green). The scale is also recovered accurately.

 

 

spline_vio_rmse
RMSEs (in meters) of 10 runs (rows) for different methods on each sequence (columns) from EuRoC dataset (MH, V1, V2) and TUM VI dataset (TR). DSO results are aligned with Sim(3); VI-DSO and SplineVIO are  aligned with SE(3).

 

 

spline_vio_median
The median RMSEs over 10 runs for different methods on each sequence from EuRoC dataset and TUM VI dataset. For VI-DSO, [27] are the results of the 3rd party implementation; [16] are the original results reported in the paper [16], we include these results for reference.

 

 

spline_vio_time
Computational Efficiency

 

Links

Paper(ICRA22)

Code