A lightweight LIO (Lidar Odometry) system was deployed on a UAV utilizing the Livox Mid-360 sensor.
- The project incorporates incremental refinements to the existing faster-lio framework.
- Add location node.
This project has several different branches. The optimize the based branch, using graph optimization. Testing on the X86 is OK, but the processing speed on the Nvidia NX is very low.
ESKF based performs well on Nvidia NX.
c++ == 17 The project is developed using C++17 standard.
- ROS (melodic or noetic)
- glog:
sudo apt-get install libgoogle-glog-dev
- eigen:
sudo apt-get install libeigen3-dev
- pcl:
sudo apt-get install libpcl-dev
- yaml-cpp:
sudo apt-get install libyaml-cpp-dev
git clone https://github.com/Liansheng-Wang/LIO-Lite.git
cd LIO-Lite
catkin_make
source devel/setup.zsh
roslaunch lio_lite mapping_360.launch
After rebuilding the map, you can follow the following command to load the map for relocation
roslaunch lio_lite location_360.launch
If it is not at the starting point during the repositioning process, it needs to be manually repositioned in rviz
Or modify the parameters in in mid360_location.yaml:
init_trans: [0, 0, 0]
init_rqy: [0, 0, 0]
Added map segmentation to avoid memory overload in large scenes and improve efficiency.
Incremental loading of the map can be selected in the case of relocation.
rosrun lio_lite test_split
rosrun lio_lite test_load
Added the use of gravity as a constraint to define the horizontal plane during the initialization phase.