MCPcopy Create free account
hub / github.com/BingqiShen/EMV-LIO

github.com/BingqiShen/EMV-LIO @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
778 symbols 1,686 edges 94 files 91 documented · 12% updated 2y ago★ 1734 open issues

Browse by type

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

EMV-LIO

An Efficient Multiple Vision aided LiDAR-Inertial Odometry

EMV-LIO is an Efficient Multiple vision aided LiDAR-inertial odometry system based on LVI-SAM, which introduces multiple cameras in the VIO subsystem to expand the range of visual observation to guarantee the whole system can still maintain the relatively high accuracy in case of the failure of the monocular visual observation. Apart from this, an efficiency-enhanced LVIO system is also introduced to increase the system’s efficiency, including removing LiDAR’s noise via range image, setting condition for nearest neighbor search, and replacing kd-Tree with ikd-Tree.

Our implementation will be available upon acceptance

<img src="https://github.com/BingqiShen/EMV-LIO/raw/main/doc/demo.gif" alt="drawing" width="800"/>

1. Prerequisites

1.1 Ubuntu and ROS

Ubuntu 64-bit 16.04 or 18.04. ROS Kinetic or Melodic. ROS Installation and its additional ROS pacakge:

1.2. Ceres Solver

Follow Ceres Installation.

  sudo apt-get install -y libgoogle-glog-dev
  sudo apt-get install -y libatlas-base-dev
  wget -O ~/Downloads/ceres.zip https://github.com/ceres-solver/ceres-solver/archive/1.14.0.zip
  cd ~/Downloads/ && unzip ceres.zip -d ~/Downloads/
  cd ~/Downloads/ceres-solver-1.14.0
  mkdir ceres-bin && cd ceres-bin
  cmake ..
  sudo make install -j4

1.3. GTSAM

Install the dependencies

sudo apt-get install libboost-all-dev
sudo apt-get install cmake
sudo apt-get install libtbb-dev

Compile the GTSAM's code

git clone https://bitbucket.org/gtborg/gtsam.git
cd gtsam/
mkdir build &&cd build
cmake ..
make check 
sudo make install 

2. Compile

You can use the following commands to download and compile the package.

cd ~/emv_ws/src
git clone https://github.com/BingqiShen/EMV-LIO.git
cd ..
catkin_make -j4

3. Run our examples

3.1 Download our rosbag files

<img src="https://github.com/BingqiShen/EMV-LIO/raw/main/doc/device.png" alt="drawing" width="400"/>

The datasets used in the paper can be downloaded from Baidu Drive. The data-gathering sensor suite includes: HESAI PandarXT-32 LiDAR, DAHENG MER2-202 camera, and Xsens MTi-300 IMU.

url:https://pan.baidu.com/s/1QjQzn1ZwN1SHqHPghYN2tw 

code:sreu 

3.2 Run the package

  1. Configure parameters:
Configure sensor parameters in the .yaml files in the ```config``` folder.

You can select the number of camera used by change NUM_OF_CAM in params_lidar.yaml
  1. Run the launch file:
roslaunch emv_lio run.launch
  1. Play existing bag files:
rosbag play iplus.bag 

4. Acknowledgement

Our repository mainly develops from LVI-SAM, where the visual-inertial odometry module is adapted from Vins-Mono and the lidar-inertial odometry module is adapted from LIO-SAM. Besides, our implementation also use the codes of ikd-Tree, M-LOAM, and Cartographer.

Core symbols most depended-on inside this repo

Shape

Method 572
Class 100
Function 94
Enum 12

Languages

C++100%

Modules by API surface

src/lidar_odometry/mapOptmization.cpp53 symbols
include/ikd-Tree/ikd_Tree.cpp46 symbols
src/visual_odometry/visual_loop/ThirdParty/DBoW/TemplatedVocabulary.h33 symbols
src/visual_odometry/visual_feature/camera_models/EquidistantCamera.cc30 symbols
src/visual_odometry/visual_feature/camera_models/CataCamera.cc30 symbols
include/ikd-Tree/ikd_Tree.h30 symbols
src/visual_odometry/visual_feature/camera_models/PinholeCamera.cc29 symbols
src/lidar_odometry/imageProjection.cpp26 symbols
src/visual_odometry/visual_loop/ThirdParty/DBoW/TemplatedDatabase.h24 symbols
src/visual_odometry/visual_feature/camera_models/gpl.cc21 symbols
src/visual_odometry/visual_feature/camera_models/ScaramuzzaCamera.cc21 symbols
src/visual_odometry/visual_loop/ThirdParty/DUtils/Timestamp.cpp20 symbols

For agents

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

⬇ download graph artifact

Ask about this repo answers extend the page