Source-linked AI summary

GVINS: Tightly Coupled GNSS-Visual-Inertial Fusion for Smooth and Consistent State Estimation

Shaozu Cao, Xiuyuan Lu, Shaojie Shen

arXiv:2103.07899v3cs.RO

TL;DR

Long-term visual-inertial odometry drifts, while global GNSS estimation can be unavailable or unreliable in complex environments. GVINS tightly fuses raw GNSS, visual, and inertial measurements with online frame initialization and factor-graph optimization, and experiments show reduced drift with preserved local accuracy.

  • Problem

    Visual-inertial odometry inevitably accumulates drift, while GNSS-based global positioning requires receiver-clock estimation and is vulnerable when signals are corrupted or unavailable.

  • Method

    GVINS uses a non-linear, tightly coupled optimization framework with online coarse-to-fine local-global transformation calibration and probabilistic factor-graph constraints for raw GNSS, visual, and inertial measurements.

  • Results

    Experiments in simulation and real-world environments show that GVINS effectively eliminates accumulated drift while preserving the local accuracy of visual-inertial estimation.

  • Takeaways & Limitations

    GVINS provides local smoothness and global consistency in complex indoor-outdoor environments, including settings where GNSS signals are largely intercepted or unavailable.

Abstract

from arXiv · show

Visual-Inertial odometry (VIO) is known to suffer from drifting especially over long-term runs. In this paper, we present GVINS, a non-linear optimization based system that tightly fuses GNSS raw measurements with visual and inertial information for real-time and drift-free state estimation. Our system aims to provide accurate global 6-DoF estimation under complex indoor-outdoor environment where GNSS signals may be intermittent or even totally unavailable. To connect global measurements with local states, a coarse-to-fine initialization procedure is proposed to efficiently calibrate the transformation online and initialize GNSS states from only a short window of measurements. The GNSS code pseudorange and Doppler shift measurements, along with visual and inertial information, are then modelled and used to constrain the system states in a factor graph framework. For complex and GNSS-unfriendly areas, the degenerate cases are discussed and carefully handled to ensure robustness. Thanks to the tightly-coupled multi-sensor approach and system design, our system fully exploits the merits of three types of sensors and is capable to seamlessly cope with the transition between indoor and outdoor environments, where satellites are lost and reacquired. We extensively evaluate the proposed system by both simulation and real-world experiments, and the result demonstrates that our system substantially eliminates the drift of VIO and preserves the local accuracy in spite of noisy GNSS measurements. The challenging indoor-outdoor and urban driving experiments verify the availability and robustness of GVINS in complex environments. In addition, experiments also show that our system can gain from even a single satellite while conventional GNSS algorithms need four at least.

I. INTRODUCTION

GVINS addresses long-term visual-inertial drift by tightly integrating GNSS raw measurements with visual and inertial data. Its online initialization and robust design target globally consistent, locally accurate estimation when GNSS is intermittent or unavailable.

  • Motivation: Visual-inertial systems provide accurate local motion but inevitably drift because camera and IMU measurements leave x, y, z, and yaw unobservable.GNSS instead supplies drift-free global information, but conventional positioning generally requires at least four tracked satellites when receiver clock bias must also be estimated.
  • Challenges and approach: GVINS recovers the changing 4-DoF transformation between local visual-inertial and global GNSS frames through an online coarse-to-fine initialization procedure.This avoids offline calibration of a transformation that varies whenever the system starts.
  • Challenges and approach: The system tightly fuses visual-inertial data with multi-constellation GNSS code pseudorange and Doppler measurements in a jointly optimized probabilistic factor graph.Degenerate cases are explicitly handled to preserve robustness in complex environments.
  • Related work and positioning: Unlike prior systems relying on GNSS solutions, GVINS uses raw GNSS measurements and is designed to continue operating when signals are corrupted, unavailable, or fewer than four satellites are tracked.Earlier loosely coupled and tightly coupled approaches described in the related work can fail when GNSS solutions are unavailable below four satellites.
  • Contributions and evaluation: The authors report that GVINS eliminates accumulated visual-inertial drift while preserving local accuracy and achieving local smoothness with global consistency in complex indoor-outdoor environments.The system was evaluated in simulation and real-world environments, and its implementation and synchronized datasets were open-sourced.

III. NOTATION AND DEFINITIONS

GVINS defines local, global, and inertial coordinate frames, transformation notation, and the state variables optimized within a sliding window.

  • Frames: The system distinguishes sensor, local world, ECEF, ENU, and ECI frames for representing measurements and global motion.The ENU frame connects local-world and ECEF coordinates, while ECI simplifies GNSS signal modeling.
  • Frames: The sensor frame is attached to each sensor, while the IMU frame is selected as the body frame and estimation target.
  • Notation: Transformations are denoted by R with superscript and subscript frames, with Hamilton quaternions representing rotational components.Subscripts additionally identify moving frames at specific times.
  • States: The estimated state includes body pose, velocity, accelerometer and gyroscope biases, yaw offset, receiver clock bias, and clock drift.Clock biases are estimated separately for GPS, GLONASS, Galileo, and BeiDou, while the drift rate is shared across constellations.
  • States: States are optimized in a sliding window containing time-indexed system states, feature depths, and the yaw offset.The window size is n and the number of feature points is m.

IV. GNSS FUNDAMENTALS

GNSS provides global localization through satellite signals and raw measurements, whose signal structure and propagation errors determine the resulting observations.

  • GNSS Overview: GNSS comprises four fully operational satellite systems: GPS, GLONASS, Galileo, and BeiDou.Receivers identify satellites and retrieve navigation messages from transmitted radio signals.
  • GNSS Overview: GPS L1C transmits a navigation message mixed with a satellite-specific PRN code, which modulates a high-frequency carrier before reception and reverse processing.
  • Code Pseudorange: Code pseudorange is obtained by multiplying PRN-code-based signal Time of Flight by the speed of light.The measurement also contains geometric range and errors from signal generation, propagation, and processing.
  • Code Pseudorange: Satellite-side pseudorange errors mainly arise from orbit and clock errors, which are monitored and corrected by the system control segment.
  • Code Pseudorange: Pseudorange modeling includes satellite and receiver coordinates, constellation indicators, satellite clock error, atmospheric delays, and measurement noise.Tropospheric and ionospheric delays are expressed in length units after multiplication by c.

C. Doppler Measurement

GVINS uses Doppler and pseudorange measurements to support velocity estimation, SPP localization, and GNSS initialization while addressing satellite-geometry and signal-degeneration issues.

  • Doppler Measurement: Doppler shift measures receiver–satellite relative motion along the signal path and is usually an order of magnitude more accurate than code pseudorange.
  • Doppler Measurement: The Doppler model uses receiver and satellite ECI velocities, carrier wavelength, receiver-to-satellite direction, satellite-clock drift, and measurement noise.
  • SPP Algorithm: SPP estimates 3-DOF global receiver position by trilateration, but receiver clock bias requires at least 4 pseudorange measurements.With multiple constellations, at least (N + 3) simultaneously tracked satellites are required, where N is the number of constellations.
  • SPP Algorithm: SPP stacks corrected pseudorange constraints and minimizes squared residuals after modeling tropospheric and ionospheric delays and excluding low-elevation satellites.
  • SPP Algorithm: Evenly distributed satellites improve SPP performance because solution noise depends on satellite geometry as well as measurement noise.
  • GNSS Initialization: GVINS filters low-elevation and unhealthy satellites, admits only continuously locked signals, and initializes GNSS through coarse SPP anchoring, Doppler-based yaw alignment, and anchor refinement.
  • GNSS Degeneration: If GNSS cannot be initialized or becomes unavailable, the system degrades to VIO while monitoring degeneration cases during sliding-window optimization.

VI. PROBABILISTIC FORMULATION

GVINS formulates sensor fusion as probabilistic sliding-window optimization, combining measurement factors and inertial pre-integration under explicit noise and motion assumptions.

  • VI. PROBABILISTIC FORMULATION: The formulation organizes sensor measurements as factors in a probabilistic factor graph that constrains jointly estimated system states.The visual and inertial factor formulations are inherited from prior work rather than introduced as contributions here.
  • A. MAP Estimation: MAP estimation selects the state maximizing the posterior, which becomes minimization of measurement-associated costs under independent Gaussian noise.
  • A. MAP Estimation: The cost representation aggregates independent sensor measurements, prior information, residual functions, and Mahalanobis norms.
  • A. MAP Estimation: A prior factor constrains the four unobservable directions of the initial local-world pose and becomes densely connected after marginalization.
  • B. Inertial Factor: The inertial factor models biased, noisy accelerometer and gyroscope measurements, including gravity while ignoring Coriolis and centrifugal forces for the low-cost IMU.
  • B. Inertial Factor: Accelerometer and gyroscope noises are modeled as zero-mean Gaussian variables, while their slowly varying biases follow random walks.
  • B. Inertial Factor: IMU pre-integration aggregates high-frequency measurements over [t_k, t_k+1] into relative position, velocity, and rotation information.This avoids estimating a separate state for every IMU sample.
  • B. Inertial Factor: The relative rotation error is represented in 3D Euclidean space using the corresponding rotation-error operator.

C. Visual Factor

The visual factor models sparse tracked image features and their projection relationships across frames, using camera–IMU transformations and measurement noise.

  • Sparse image features are detected at strong corners, tracked with iterative Lucas–Kanade, and distortion-corrected before projection modeling.
  • The projection model relates image-plane coordinates to corresponding 3D landmark positions in the local world frame with measurement noise.
  • For an inverse-depth landmark observed across two frames, the visual residual relates the corresponding frame states.
  • The visual formulation incorporates the transformation between the IMU and camera.

D. Code Pseudorange Factor

The code pseudorange factor connects receiver states with satellite geometry and clock-related quantities while modeling measurement uncertainty and Earth-frame transformations.

  • Code pseudorange measurements provide receiver–satellite range information after compensating satellite clock error and atmospheric delay.
  • The pseudorange noise is modeled as zero-mean Gaussian, with variance based on satellite accuracy, receiver noise, and elevation angle.
  • The elevation-dependent denominator suppresses multipath noise from low-elevation satellites and errors in ionospheric compensation.
  • Receiver antenna positions are related to system states through local-world, ENU, ECEF, and ECI coordinate transformations.
  • Satellite positions are transformed from transmission-time ECEF coordinates into the reception-time ECI frame to account for Earth’s rotation.
  • A single pseudorange measurement produces a residual connecting system states at time t_k with the GNSS receiver.

E. Doppler Factor

The Doppler factor models receiver–satellite relative velocity along the signal path and connects Doppler measurements to transformed receiver and satellite velocities.

  • Doppler shift arises from relative velocity along the signal propagation path between receiver and satellite.
  • Doppler measurement noise is assumed Gaussian, with variance determined using the receiver-reported measurement noise index.
  • Receiver velocity in ECEF is obtained from local-world velocity, while satellite transmission-time velocity is transformed into the reception-time ECI frame.
  • The Doppler residual connects the relevant system states at measurement time t_k.

F. Receiver clock factors

Receiver clock factors model clock-bias evolution and clock-drift behavior, supporting GNSS fusion alongside online initialization and handling of imperfect operating conditions.

  • F. Receiver clock factors: The clock-bias factors relate receiver clock biases at consecutive measurement times to the clock drift rate.
  • F. Receiver clock factors: The discrete clock residual uses a 4 by 4 diagonal covariance matrix whose elements describe discretization error.
  • F. Receiver clock factors: Because low-cost receivers commonly use TCXO clocks, receiver clock drift is modeled as a random-walk process.
  • F. Receiver clock factors: The clock-drift residual variance is determined by the stability of the clock frequency drift.
  • F. Receiver clock factors: The coarse-to-fine initialization module maps local VIO position and velocity results to a trajectory in the global ECEF frame.
  • F. Receiver clock factors: Online initialization recovers initial states without assumptions or manual intervention, while the estimator addresses sensor failures or degeneration.
  • F. Receiver clock factors: GNSS fusion requires calibrating the local-world origin’s ECEF coordinate and the yaw offset, with a minimum 4-meter distance for reliable initial quantities.

1) Coarse Anchor Point Localization:

GVINS initializes the global frame through a coarse-to-fine procedure that estimates an anchor coordinate, yaw offset, and clock parameters over a short measurement window. The design also addresses degraded satellite availability and GNSS outages.

  • Coarse Anchor Point Localization: The first initialization step generates a coarse ECEF anchor coordinate from all code pseudorange measurements at the most recent epoch.This uses GNSS SPP without requiring prior information.
  • Yaw Offset Calibration: The second step estimates the ENU-to-local-world yaw offset and average receiver clock-drift rate using Doppler measurements within a sliding window.The window contains n epochs with p_k observed satellites at epoch k.
  • Anchor Point Refinement: The final step refines the anchor coordinate and aligns the local trajectory to ECEF by optimizing over window measurements with VIO position as prior information.Anchor coordinates and per-epoch receiver clock biases are refined before initialization finishes.
  • Low speed movement: When average velocity falls below 0.3 m/s, GVINS fixes the yaw offset because noisy Doppler and short translation can corrupt yaw estimation.Pure rotation makes GNSS unable to constrain rotational directions, so yaw can drift as in VIO.
  • Satellite availability: With fewer than four satellites, tight coupling still lets GVINS use available measurements, while zero satellites make it degrade to VIO.One satellite can still provide information, whereas SPP or loosely coupled approaches fail below four tracked satellites.
  • No GNSS signal: During total GNSS loss, global states become unobservable, but propagated clock constraints preserve useful values and avoid re-initialization after signal reacquisition.The mechanism is intended to improve stability when GNSS is intermittent.

VIII. EXPERIMENTAL RESULTS

Simulation and real-world experiments compare GVINS with VINS-Mono, VINS-Fusion, and RTKLIB under outdoor and reduced-satellite conditions. GVINS suppresses GNSS noise while limiting VIO drift and maintaining global consistency across repeated trajectories.

  • Experimental setup: The evaluation uses simulation and real-world experiments against VINS-Mono, VINS-Fusion, and RTKLIB, with loop optimization disabled for real-time comparison.The simulations use virtual camera, IMU, and GNSS measurements, while real-world tests use a helmet-mounted VI-Sensor and u-blox receiver.
  • Simulation results: VINS-Mono’s relative error increases with evaluation distance because drift accumulates in VIO’s unobservable x, y, z, and yaw directions.VINS-Fusion bounds accumulated drift through loosely coupled GNSS but exhibits larger relative error and reduced smoothness under noisy measurements.
  • Simulation results: GVINS keeps absolute trajectory error at a low, constant level while tightly fusing raw GNSS with visual-inertial data to suppress GNSS noise.The final RMSE statistics are reported in Table III.
  • Sports Field Experiment: GVINS is initialized 4.1 s after visual-inertial alignment in the sports-field experiment, while global outputs are compared without trajectory alignment.VINS-Mono is instead aligned to RTK using the first 2000 poses, and global methods retain biases from satellite and propagation errors.
  • Satellite configuration: Reducing satellite availability introduces progressively larger degradation: a small bias with three satellites, translational drift with two, and yaw drift with one.With zero satellites, GVINS becomes VIO; one satellite still yields smaller yaw drift than the zero-satellite case.
  • Sports Field Experiment: In the sports-field experiment, GVINS positioning error remains low and does not grow with traveled distance, while varying slowly under unstable GNSS signals near buildings.Its five repeated laps overlap and align well with RTK, demonstrating global consistency and local smoothness.

2) Insufficient Satellites Experiment:

With fewer than four satellites, GVINS degrades progressively: three satellites preserve horizontal drift suppression but not vertical drift elimination, while one satellite permits accumulated error on all VIO-unobservable directions. In the indoor-outdoor experiment, GVINS remained effective despite noisy GNSS and outages, with Doppler improving estimation smoothness.

  • Insufficient satellites: GVINS performs best when all available satellites are used for estimation.
  • Insufficient satellites: Three satellites suppress east, north, and yaw drift but cannot eliminate accumulated up-direction error.With two satellites, horizontal error grows with distance; with one, all four VIO-unobservable directions accumulate error, although yaw error remains smaller than VIO.
  • Indoor-outdoor experiment: GVINS outperforms the other evaluated approaches in positioning error under harsh indoor-outdoor conditions with noisy GNSS measurements.VINS-Fusion is omitted because of huge errors and oscillations, while comparisons use only segments with RTK fix ground truth.
  • Indoor-outdoor experiment: GVINS follows RTK well and recovers positioning effectively in GNSS-unfriendly areas, whereas RTK reaches errors up to 80 m during outages.VINS-Mono shows obvious drift, while GVINS preserves the trajectory across the sequence.
  • GNSS factor experiment: Code pseudorange eliminates accumulated VIO drift, while Doppler shift makes estimation smoother under unstable GNSS conditions.

5) Urban Driving Experiment:

In a 22.9 km urban driving sequence spanning dusk to darkness and difficult GNSS conditions, GVINS remained aligned with RTK while visual-inertial and loosely coupled baselines failed or showed severe errors. The system used robust GNSS-factor weighting to handle outages and multipath.

  • Urban driving conditions: The 22.9 km sequence spans dusk-to-dark driving, urban canyons, open sky, low illumination, fast movement, and highly dynamic traffic.
  • Urban driving conditions: Robust norms re-weight code-pseudorange and Doppler factors to address frequent GNSS outages and severe urban-canyon multipath.
  • Baseline results: VINS-Mono fails at 54% of the distance with 760.22 m RMSE, while VINS-Fusion shows oscillations with RMSE on the order of 10^5 m.
  • GVINS results: GVINS initializes in 2.0 s after visual-inertial initialization and aligns well with RTK horizontally despite RTK non-fixed intervals.
  • System design: GVINS tightly fuses camera, IMU, and GNSS measurements through nonlinear optimization, using online local-global calibration and probabilistic GNSS factors.
  • GVINS results: The RTK and GVINS trajectories totally align in the urban driving experiment, while RTK discontinuities indicate non-fixed status over long distances.
  • Limitations and future work: The authors identify theoretical observability analysis under degenerate situations and observability-aware estimation as future work.
Loading 2103.07899v3…