/Lidar_IMU_Localization

Lidar-IMU Localization System with Prior Map Constraint and Lio Constraint

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Ubuntu ROS C++

Lidar-IMU-Localization

This repository is a Lidar-IMU Localization System with Prior Map Constraint and Lio Constraint for 3D LiDAR. The system is developed based on the open-source odometry framework LIO-Livox. And the feature extract moudle is implemented based on LIO-SAM .

  • Mapping Moudle
    • A Modified FeatureExtract Function adapt for traditional spinning lidar,such as velodyne,ouster,robosense etc. ;
    • A Modified Tightly coupled Lidar-imu laserodometry LIO-Livox-modified;
  • Localization Moudle
    • A Lidar-IMU Localization System with Prior Map Constraint and Lio Constraint for 3D LiDAR;
    • Three IMU_Mode: 0-without using IMU, 1-loose couple IMU and Lidar, 2-tightly coupled IMU and LiDAR;
    • Automatic switch Map-Location mode and LIO-Location mode;

demo

A test video of the dataset can be found on BiliBili

UrbanNavDataset test video can be found here

Prerequisites

Compilation

cd ~/catkin_ws/src
git clone https://github.com/chengwei0427/Lidar_IMU_Localization
cd ..
catkin_make

Run with bag

(1) generate global map with LIO-SAM-modified

roslaunch GC_LOAM run.launch  
rosbag play yourbagname.bag --clock
rosserve call /save_map 

(2) run localization with global map and your test bag

rosbag LIO_Localization run_loc.launch
rosbag play yourbagname.bag --clock
Set initial pose in rviz

Notes

The current version of the system is just a demo and we haven't done enough tests.

There are some parameters in params.yaml files:

  • IMU_Mode: choose IMU information fusion strategy, there are 3 modes:
    • 0 - without using IMU information, pure LiDAR odometry, motion distortion is removed using a constant velocity model (added 2022-09-16)
    • 1 - using IMU preintegration to remove motion distortion (added 2022-09-19)
    • 2 - tightly coupling IMU and LiDAR information (added 2022-09-27)

TODO

  • support tightly coupling IMU and LiDAR in Localization moudle
  • estimated positioning accuracy
  • abnormal check
  • Lio and Map constraint weight
  • add test video
  • add demo example
  • add encoder

Acknowledgements

Thanks for LOAM,LIO_SAM ,LIO-Livox.

Support