A robust LiDAR Odometry and Mapping (LOAM) package for Livox-LiDAR
Loam-Livox is a robust, low drift, and real time odometry and mapping package for Livox LiDARs, significant low cost and high performance LiDARs that are designed for massive industrials uses. Our package address many key issues: feature extraction and selection in a very limited FOV, robust outliers rejection, moving objects filtering, and motion distortion compensation. In addition, we also integrate other features like parallelable pipeline, point cloud management using cells and maps, loop closure, utilities for maps saving and reload, etc. To know more about the details, please refer to our related paper:)
Developer: Jiarong Lin
Our related paper: our related papers are now available on arxiv:
- Loam_livox: A fast, robust, high-precision LiDAR odometry and mapping package for LiDARs of small FoV
- A fast, complete, point cloud based loop closure for LiDAR odometry and mapping
Our related video: our related videos are now available on YouTube (click below images to open):
1.1 Ubuntu and ROS
Ubuntu 64-bit 16.04 or 18.04. ROS Kinetic or Melodic. ROS Installation and its additional ROS pacakge:
sudo apt-get install ros-XXX-cv-bridge ros-XXX-tf ros-XXX-message-filters ros-XXX-image-transport
NOTICE: remember to replace "XXX" on above command as your ROS distributions, for example, if your use ROS-kinetic, the command should be:
sudo apt-get install ros-kinetic-cv-bridge ros-kinetic-tf ros-kinetic-message-filters ros-kinetic-image-transport
1.2. Ceres Solver
Follow Ceres Installation.
Follow PCL Installation.
Clone the repository and catkin_make:
cd ~/catkin_ws/src git clone https://github.com/hku-mars/loam_livox.git cd ../ catkin_make source ~/catkin_ws/devel/setup.bash
3. Directly run
Connect to your PC to Livox LiDAR (mid-40) by following Livox-ros-driver installation, then
roslaunch loam_livox livox.launch
4. Rosbag Example
4.1. Common rosbag
Download Our recorded rosbag and then
roslaunch loam_livox rosbag.launch rosbag play YOUR_DOWNLOADED.bag
4.1. Large-scale rosbag
For large scale rosbag (For example HKUST_01.bag ), we recommand you launch with bigger line and plane resolution (using rosbag_largescale.launch)
roslaunch loam_livox rosbag_largescale.launch rosbag play YOUR_DOWNLOADED.bag
5. Rosbag Example with loop closure enabled
5.1. Loop closure demostration
We provide a rosbag file of small size (named "loop_loop_hku_zym.bag", Download here) for demostration:
roslaunch loam_livox rosbag_loop_simple.launch rosbag play YOUR_PATH/loop_simple.bag
5.2. Other examples
roslaunch loam_livox rosbag_loop.launch rosbag play YOUR_DOWNLOADED.bag
NOTICE: The only difference between launch files "rosbag_loop_simple.launch" and "rosbag_loop.launch" is the minimum number of keyframes (minimum_keyframe_differen) between two candidate frames of loop detection.
6. Our 3D-printable handheld device
To get our following handheld device, please go to another one of our open source reposity, all of the 3D parts are all designed of FDM printable. We also release our solidwork files so that you can freely make your own adjustments.
The source code is released under GPLv2 license.
We are still working on improving the performance and reliability of our codes. For any technical issues, please contact me via email Jiarong Lin < firstname.lastname@example.org >.
For commercial use, please contact Dr. Fu Zhang < email@example.com >