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(under review)

Code