MCPcopy Create free account
hub / github.com/chengwei0427/Lidar_IMU_Localization

github.com/chengwei0427/Lidar_IMU_Localization @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
725 symbols 1,172 edges 43 files 165 documented · 23% updated 3y ago★ 331

Browse by type

Functions 573 Types & classes 152
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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

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

Acknowledgements

Thanks for LOAM,LIO_SAM ,LIO-Livox.

Support

Star History Chart

Core symbols most depended-on inside this repo

Shape

Method 385
Function 188
Class 146
Enum 6

Languages

C++100%

Modules by API surface

include/ikd-Tree/ikd_Tree.cpp46 symbols
include/Estimator/ceresfunc.h46 symbols
include/sophus/se3.hpp45 symbols
include/sophus/so3.hpp42 symbols
include/sophus/se2.hpp39 symbols
include/sophus/rxso3.hpp39 symbols
src/loc/map_location.cpp37 symbols
include/sophus/rxso2.hpp37 symbols
include/sophus/so2.hpp35 symbols
include/sophus/sim3.hpp33 symbols
include/sophus/sim2.hpp33 symbols
include/sophus/types.hpp31 symbols

For agents

$ claude mcp add Lidar_IMU_Localization \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page