• Stars
    star
    874
  • Rank 52,219 (Top 2 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created over 4 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

IMU + X(GNSS, 6DoF Odom) Loosely-Coupled Fusion Localization based on ESKF, IEKF, UKF(UKF/SPKF, JUKF, SVD-UKF) and MAP

IMU + X Fusion

IMU + X Loosely-Coupled Fusion Localization


Overview

Features

  • Dataset

    • KAIST dataset: ROS publish
  • Sensors

    • IMU
      • Numerical Integration (TODO: RK4)
      • Pre-Integration
    • Wheel Odometer
    • Manometer
    • GPS
    • 6DoF Odom (Stereo Visual Odometry)
    • LiDAR
    • Multi-modal data
  • State Estimation

    • EKF
      • ESKF
      • IEKF
    • UKF
      • JUKF
      • SVD-UKF
    • Particle Filter
    • MAP
      • User-defined G-N
      • Ceres-Solver
      • G2O
      • GTSAM
  • Local / Global Angular Error (Rotation Perturbation)

    • Local Angular Error (OK)
    • Global Angular Error (TODO: why Poor)
    enum ANGULAR_ERROR { LOCAL_ANGULAR_ERROR, GLOBAL_ANGULAR_ERROR };
  • Debug

    • Check Measurement Jacobian Matrix

Requirements

tested on Ubuntu 16.04 and Ubuntu 18.04

  • Ubuntu 16.04 & ROS Kinetic

    • OpenCV 3
    • ROS package: nmea_navsat_driver
    • GeographicLib 1.50.1 (built from souce code, cmake 3.18.0 tested)
  • Ubuntu 18.04 & ROS Melodic

    • OpenCV 3
    • ROS package: nmea_navsat_driver
    • GeographicLib 1.49
      sudo apt install libgeographic-dev

Build

mkdir -p ws_msf/src
cd ws_msf/src
git clone xxx
cd ..
catkin_make -j4 # error happened when using the default cmake 3.5.1 on Ubuntu 16.04, upgrade it
# or
catkin build -j4

Run on Host

IMU + GNSS

test data: utbm_robocar_dataset_20180719_noimage.bag

  • [sensor_msgs/Imu] /imu/data: 100 hz
  • [nmea_msgs/Sentence] /nmea_sentence: 15 hz
  • [sensor_msgs/NavSatFix] /fix: 5 hz
  • [nav_msgs/Path] /nav_path: 63 hz
roslaunch imu_x_fusion imu_gnss_fusion.launch
rosbag play -s 25 utbm_robocar_dataset_20180719_noimage.bag

ROS graph and path on rviz:

plot the result path (fusion_gps.csv & fusion_state.csv) on Google Map using the scripts folium_csv.py:

IMU + 6DoF Odom

VO: ORB-SLAM2 (Stereo) + EuRoC V1_01_easy.bag

roslaunch imu_x_fusion imu_vo_fusion.launch [est:=ekf, ukf or map]
run ORB-SLAM2 (Stereo) and play back bag file
# https://github.com/cggos/orbslam2_cg
# pose cov:
# sigma_pv: 0.001
# sigma_rp: 0.5
# sigma_yaw: 0.5
roslaunch orbslam2_ros run_stereo_euroc.launch

rosbag play V1_01_easy.bag

results(Green path: estimated pose; Red path: pose of VO):

Use the recorded bag file directly

Download orbslam2_v101easy.bag

rosbag play orbslam2_v101easy.bag

VO: ORB-SLAM2 (Stereo) + MYNTEYE-S1030 Camera

# TODO: Test
roslaunch imu_x_fusion imu_vo_fusion_mynteye.launch

roslaunch mynt_eye_ros_wrapper mynteye.launch

Run with KAIST Dataset

rosrun imu_x_fusion kaist_pub /dev_sdb/datasets/KAIST/urban39-pankyo

Run with Docker

# pull from DockerHub
sudo docker pull cggos/ubuntu-ros-slam:bionic-melodic

# run, e.g.: imu_vo_fusion
./scripts/run_docker.sh

# modify the script for running others

Code Format

code format based on Google style

./batch_format.sh

Docs

  • Requirements

    sudo apt install graphviz
    sudo apt install doxygen
  • Generate

    # output in html and latex dir
    doxygen Doxygen.config

Community

More Repositories

1

shenlan_vio_course

深蓝学院《视觉SLAM进阶:从零开始手写VIO》第一期
C++
174
star
2

vins_mono_cg

Modified version of VINS-Mono (commit 9e657be)
C++
114
star
3

windows_via_cpp

Source Code of the Book "Windows Via C/C++" By Jeffrey Richter And Christopher Nasarre
C++
97
star
4

state_estimation

State Estimation for SLAM: Filter(EKF, Particle Filter), MAP(GN, LM), Solver(Ceres-Solver, G2O, GTSAM), Bundle Adjustment
Jupyter Notebook
95
star
5

msckf_cg

Modified version of KumarRobotics/msckf_vio (commit e3a39a9 on Jul 26, 2019), a stereo version of MSCKF.
C++
60
star
6

ptam_cg

Modified version of the monocular SLAM framework PTAM
C++
51
star
7

opt_matlab

最优化方法及其MATLAB实现 源代码
MATLAB
37
star
8

slamkit

SLAM Kit
C++
36
star
9

CPPGUIProgrammingWithQt4

Source Code of the Book C++ GUI Programming with Qt4, 2nd Edition By Jasmin Blanchette, Mark Summerfield
C++
36
star
10

lidar_radar_fusion_ekf_ukf

Lidar and Radar Fusion with EKF and UKF
Jupyter Notebook
31
star
11

semantic_feature_points

Semantic Feature Points: SuperPoint and GCNv2 feature points test
C++
25
star
12

multicore_gpu_programming

source code(v1.03) for the book <Multicore and GPU Programming> or 《多核与GPU编程》
C++
21
star
13

ccv

Chenguang Computer Vision
C++
18
star
14

CVStudio

CV Studio with GUI using Qt for Computer Vision
C++
16
star
15

svo_cg

Modified version of rpg_svo(commit d616106 on May 9, 2017) which implement a Semi-direct Monocular Visual Odometry pipeline
C++
15
star
16

hpc

High-Performance Computing: CPU Instructions, GPU OpenCL & CUDA, etc. ☀️
Python
14
star
17

stereo_reconstruct

deprecated, moved to https://github.com/cggos/ccv
C++
11
star
18

okvis_cg

Modified version of okvis-1.1.3, include okvis ros wrapper and the core code
C++
10
star
19

viso2_cg

Modified version of LIBVISO2 (C++ Library for Visual Odometry 2)
C++
9
star
20

DSA-CPP

C++ source code for 《C++数据结构与算法(第4版)》, ISBN: 978-7-302-37668-2
C++
9
star
21

rgbdslam2_cg

Modified version of RGBDSLAMv2 which from http://github.com/felixendres/rgbdslam_v2/archive/kinetic.zip
C++
8
star
22

rokit

Robot Kit
C++
6
star
23

dip_vc6_matlab

Source Code of the Book 《数字图像处理与机器视觉——Visual C++与Matlab实现》
C++
5
star
24

OGLPG-9th-Edition

This is the example code for the OpenGL Programming Guide (Red Book), 9th Edition.
C
5
star
25

suitesparse_android

SuiteSparse for Android
C
5
star
26

dl_with_pytorch

Deep learning with PyTorch
Jupyter Notebook
4
star
27

multi_agent_visual_tracking

Multi-Agent Visual Tracking Project based on CamShift
C++
4
star
28

DSA

Data Structures and Algorithms ☀️
C++
4
star
29

kdl

Kinematics and Dynamics Library
C++
3
star
30

sword_point_to_offer

Code of 《剑指Offer:名企面试官精讲典型编程题(纪念版)》
C++
2
star
31

ptam_android

PTAM source code on Android platform and its Android demo.
C
2
star
32

rovio_cg

Modified version of ROVIO (commit 3389c2a on Dec 19, 2017)
C++
2
star
33

GraphX

Graphical Anything
Python
2
star
34

orb_slam2_cg

Modified version from raulmur/ORB_SLAM2 (commit f2e6f51 on Oct 11, 2017)
C++
2
star
35

ARDemoGL

AR Demo based on ROS and Pangolin
C++
2
star
36

SciKit

Scientific Computing & Programming 📊
Jupyter Notebook
1
star
37

DIPDemoCSharp

Digital Image Processing Demos with C#
C#
1
star
38

XRLab

1
star
39

ThirdPartyToolsCPP

Third-party Plug-ins and Tools for Development with C++
C++
1
star
40

lsd_slam_cg

Modified version of tum-vision/lsd_slam (commit d1e6f0e on Dec 12, 2014), Ubuntu 16.04, ROS Kinetic
C++
1
star
41

rgbdslam_cg

根据高翔博客《一起做RGB-D SLAM》,从零搭建 RGBD-SLAM
CMake
1
star
42

cggos.github.io

website cgabc.xyz
1
star