Skip to content

PolyU-TASLAB/DCGVINS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

DC-GVINS: Tightly-Coupled Double-Difference GNSS for Collaborative Visual-Inertial Positioning

Video Paper License

DC-GVINS System Overview

DC-GVINS is a fully distributed, tightly coupled collaborative positioning framework that integrates infrastructure-free double-difference (DD) GNSS constraints into GNSS-visual-inertial state estimation. By exploiting common-satellite observations between nearby agents, DC-GVINS removes common-mode clock and short-baseline atmospheric errors without requiring static base stations or pre-surveyed anchors, improving both absolute and relative positioning accuracy in GNSS-challenged urban environments.


Key Features

  • Infrastructure-Free DD-GNSS: No fixed base station, pre-surveyed anchor, or ground reference receiver is required. Moving agents tracking common satellites provide the geometry needed for DD processing.
  • Tightly Coupled Factor Graph: DD pseudorange constraints are integrated as factors within a unified GVINS optimization framework together with IMU, visual, and GNSS measurements.
  • Distributed Architecture: Each agent maintains an independent local factor graph and exchanges only lightweight peer-to-peer messages.
  • Quality-Aware Optimization: DD covariance is adjusted using satellite elevation, C/N0, communication state, peer-position uncertainty, and MAD-based outlier screening.
  • Graceful Degradation: When communication is degraded or disconnected, DD factors are down-weighted or removed, allowing each agent to fall back to independent GVINS operation.

1. Prerequisites

Dependencies

Dependency Version Notes
ROS Kinetic ros-kinetic-perception meta-package
Eigen 3.3.3 Built from source
Ceres Solver 1.12.0 Built from source
OpenCV Included with ROS Via cv_bridge
gnss_comm latest GNSS message definitions

Additional ROS packages:

cv-bridge image-transport message-filters tf

Hardware for Real-World Deployment

  • Monocular or stereo camera
  • IMU, recommended at 200 Hz or higher
  • Multi-constellation GNSS receiver, such as u-blox F9P
  • Peer-to-peer wireless link between agents

2. Build

Native installation has been tested on Ubuntu 16.04 with ROS Kinetic.

Install system dependencies

sudo apt-get update && sudo apt-get install -y \
    git cmake libatlas-base-dev libgoogle-glog-dev \
    libsuitesparse-dev python-catkin-tools \
    ros-kinetic-cv-bridge ros-kinetic-image-transport \
    ros-kinetic-message-filters ros-kinetic-tf

Build Eigen 3.3.3

git clone https://gitlab.com/libeigen/eigen.git
cd eigen && git checkout tags/3.3.3
mkdir build && cd build
cmake .. && sudo make install
cd ../.. && rm -rf eigen

Build Ceres Solver 1.12.0

git clone https://ceres-solver.googlesource.com/ceres-solver
cd ceres-solver && git checkout tags/1.12.0
mkdir build && cd build
cmake .. && make -j$(nproc) && sudo make install
cd ../.. && rm -rf ceres-solver

Build the ROS workspace

# Create workspace
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src

# Clone gnss_comm
git clone https://github.com/HKUST-Aerial-Robotics/gnss_comm.git

# Clone DC-GVINS
git clone https://github.com/PolyU-TASLAB/DC-GVINS.git

# Configure and build
cd ~/catkin_ws
catkin config \
    --extend /opt/ros/kinetic \
    --cmake-args \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_CXX_STANDARD=14 \
    -DCMAKE_CXX_FLAGS="-std=c++14"

# Build gnss_comm first, then remaining packages
catkin build gnss_comm
catkin build

# Source workspace
source ~/catkin_ws/devel/setup.bash

Note: If a D2R redefinition error occurs during compilation, comment out the duplicate definition in estimator/src/estimator_node.cpp.


3. Usage

Detailed run instructions and example commands will be provided after the dataset release.


4. Datasets

Datasets collected in Hong Kong urban environments will be released.

Dataset Platform Duration Environment Status
HK Harbourfront Handheld 530 s Dense urban canyon Coming soon
UAV Flight Quadcopter 190 s Semi-open campus Coming soon

Citation

If you find this work useful, please cite:

@article{qiu2026dcgvins,
  title  = {Tightly-Coupled Double-Difference GNSS for Cooperative Visual-Inertial Positioning of Connected Transportation Agents in Urban Environments},
  author = {Qiu, Shaoting and Wen, Weisong and Hu, Jiahao and Zhao, Jiaqi and Wang, Yingying},
  year   = {2026},
  note   = {Manuscript under review}
}

The citation information will be updated after publication.


License

This project is released under the GNU General Public License v3.0 (GPL-3.0).

You may use, modify, and redistribute this software under the terms of GPL-3.0. If you redistribute this software or release derivative works based on it, you must preserve the original copyright and license notices and distribute the derivative work under GPL-3.0 as well.

Commercial use is not prohibited by GPL-3.0, but any distribution of modified or derivative software must comply with the GPL-3.0 terms. For details, please see the LICENSE file.

For academic use, please cite the corresponding paper listed above.

License Notice

Please keep the following notice in source files when redistributing or modifying this project:

DC-GVINS: Tightly-Coupled Double-Difference GNSS for Collaborative Visual-Inertial Positioning
Copyright (C) 2025-2026 PolyU TASLAB

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. See the GNU General Public License for more details.

Disclaimer

This repository is provided for research and educational purposes. The software is not certified for safety-critical navigation, autonomous driving, aviation, or other mission-critical applications. Users are responsible for validating the system in their own environments before any deployment.


Acknowledgements

This work was supported by the Smart Traffic Fund under the project "Development of an Assisted Navigation and Collision Avoidance System using AI and Location-based Service" (project no. PSRI/73/2309/PR).

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages