Skip to content

IMU + X(GNSS, VO) Loose Fusion Localization based on ESKF

Notifications You must be signed in to change notification settings

zichaotong/imu_x_fusion

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IMU + X Loose Fusion Localization based on ESKF


[TOC]

Requirements

  • Ubuntu (16.04 or later)
  • ROS (kinetic or later)
  • GeographicLib 1.50.1 (cmake 3.18.0 tested)
  • OpenCV3
  • C++14 (for using std::make_unique)

Build

mkdir -p ws_msf/src
cd ws_msf/src
git clone xxx
cd ..
catkin_make -j5 # error happened when using the default cmake 3.5.1, upgrade it

Run

IMU + GNSS

test data: utbm_robocar_dataset_20180719_noimage.bag

  • /imu/data: 100 hz
  • /nmea_sentence: 15 hz
  • /fix: 5 hz
  • /nav_path: 63 hz
roslaunch imu_gnss_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 + VO

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

run ORB-SLAM2 (Stereo) and play back bag file
roslaunch imu_x_fusion imu_vo_fusion.launch

# 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

roslaunch imu_x_fusion imu_vo_fusion.launch

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

TODO

  • Sensors
    • Wheel Odometer
    • Manometer
  • State Estimation
    • UKF
    • Particle Filter
    • GN/LM

About

IMU + X(GNSS, VO) Loose Fusion Localization based on ESKF

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 80.5%
  • CMake 16.6%
  • Python 2.9%