Giter Site home page Giter Site logo

gnssfgo's Introduction

gnssFGO: an online and time-centric factor graph optimization for GNSS/Multi-sensor vehicle localization

Video Demonstration (click the figure):

IMAGE ALT TEXT

This is the official implementation of gnssFGO using the general framework onlineFGO based on GTSAM, in which a general time-centric factor graph optimization with continuous-time trajectory representation using Gaussian process regression for online applications is implemented. The goal of this framework is to build a fundamental time-centric graph-optimization state estimator for online applications while doing research on:

  1. multi-sensor fusion to improve the robustness of vehicle localization in harsh environments
  2. Fusing both tightly coupled and loosely coupled GNSS observations
  3. Fusing lidar odometries
  4. Fusing visual odometries
  5. Fusing uwb
  6. etc.
  7. advanced inference for e.g., online sensor noise identification and hyper-parameter tuning (onging works)

Currently, only ROS2 is supported, the ROS1 version is in development.

Call for collaborations, contact: [email protected]


Dependencies (mostly as submodules):

  1. ros2
  2. irt_nav_common
  3. irt_gnss_preprocessing
  4. adapted GTSAM
  5. adapted LIO-SAM
  6. Eigen3
  7. novatel_oem7_msgs
  8. ublox_msgs
  9. ublox_serialization
  10. adapted mapviz (optional)

Papers using this package

[1] Haoming Zhang, Chih-Chun Chen, Heike Vallery and Timothy D. Barfoot, GNSS/Multi-Sensor Fusion Using Continuous-Time Factor Graph Optimization for Robust Localization, submitted to IEEE T-RO, arxiv, DOI: 10.48550/arXiv.2309.11134 (cannot be viewed in chrome due to large vector graphics)

[2] Haoming Zhang, Zhanxin Wang and Heike Vallery, Learning-based NLOS Detection and Uncertainty Prediction of GNSS Observations with Transformer-Enhanced LSTM Network, accepted at the IEEE ITSC2023, arxiv, DOI: 10.48550/arXiv.2309.00480 (cannot be viewed in chrome due to large vector graphics)

For more information and sample request, please contact [email protected]


How to start

  1. Download the datasets
  2. Install ros2 (recommend: rolling or humble)
  3. Clone this repo with submodules in your colcon workspace
git clone --recursive https://github.com/rwth-irt/gnssFGO.git
  1. compile
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

How to run

  1. When using the datasets, launch irt_gnss_preprocess
  • For data in AC:
ros2 launch irt_gnss_preprocessing gnss_preprocessor.launch.py
  • For the rest:
ros2 launch irt_gnss_preprocessing deloco_preprecessor.launch.py 
  1. Launch onlineFGO
  • For loosely coupled GNSS fusion AC:
ros2 launch online_fgo aachen_lc.launch.py
  • For tightly coupled GNSS fusion AC:
ros2 launch online_fgo aachen_tc.launch.py
  1. Play ros bag
ros2 bag play AC --clock --start-offset 60
  1. (optional) Visualization in Mapviz (adapted from the official version)
ros2 launch mapviz mapviz.launch.py
  1. (optinal) If LIOIntegrator is used
ros2 launch lio_sam fgorun.launch.py 

ToDos:

  1. Wiki
  2. Clean code base and move general utilities to irt_nav_common
  3. Fix bugs for GNSS carrier phase integration
  4. Implement visual odometry

gnssfgo's People

Contributors

krunt avatar hz658832 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.