## FAST-LIO **FAST-LIO** (Fast LiDAR-Inertial Odometry) is a computationally efficient and robust LiDAR-inertial odometry package. It fuses LiDAR feature points with IMU data using a tightly-coupled iterated extended Kalman filter to allow robust navigation in fast-motion, noisy or cluttered environments where degeneration occurs. Our package address many key issues: 1. Fast iterated Kalman filter for odometry optimization; 2. Automaticaly initialized at most steady environments; 3. Parallel KD-Tree Search to decrease the computation; 4. Robust feature extraction; 5. Surpports for different FOV. To know more about the details, please refer to our related paper:) **Our related paper**: our related papers are now available on arxiv: [FAST-LIO: A Fast, Robust LiDAR-inertial Odometry Package by Tightly-Coupled Iterated Kalman Filter](https://arxiv.org/abs/2010.05957) **Our related video**: Commming soon.
## 1. Prerequisites ### 1.1 **Ubuntu** and **ROS** Ubuntu >= 18.04. ROS >= Melodic. [ROS Installation](http://wiki.ros.org/ROS/Installation) ### 1.2. **PCL && Eigen && openCV** PCL >= 1.8, Follow [PCL Installation](http://www.pointclouds.org/downloads/linux.html). Eigen >= 3.3.4, Follow [Eigen Installation](http://eigen.tuxfamily.org/index.php?title=Main_Page). OpenCV >= 3.2, Follow [openCV Installation](https://opencv.org/releases/). ### 1.3. **livox_ros_driver** Follow [livox_ros_driver Installation](https://github.com/Livox-SDK/livox_ros_driver). ## 2. Build Clone the repository and catkin_make: ``` cd ~/catkin_ws/src git clone https://github.com/XW-HKU/fast_lio.git cd .. catkin_make source devel/setup.bash ``` *Remarks:* - If you want to save the pcd file please add map_file_path in launch file. ## 3. Directly run ### 3.1 For indoor environments and high LiDAR sample rate (20-100hz) Connect to your PC to Livox Avia LiDAR by following [Livox-ros-driver installation](https://github.com/Livox-SDK/livox_ros_driver), then ``` .... roslaunch fast_lio mapping_avia.launch roslaunch livox_ros_driver livox_lidar_msg.launch ``` ### 3.2 For outdoor environments Connect to your PC to Livox Avia LiDAR following [Livox-ros-driver installation](https://github.com/Livox-SDK/livox_ros_driver), then ``` .... roslaunch fast_lio mapping_avia_outdoor.launch roslaunch livox_ros_driver livox_lidar_msg.launch ``` ## 4. Rosbag Example ### 4.1 Indoor rosbag (Livox Avia LiDAR)
Download [avia_indoor_quick_shake_example1](https://drive.google.com/file/d/1SWmrwlUD5FlyA-bTr1rakIYx1GxS4xNl/view?usp=sharing) or [avia_indoor_quick_shake_example2](https://drive.google.com/file/d/1wD485CIbzZlNs4z8e20Dv2Q1q-7Gv_AT/view?usp=sharing) and then ``` roslaunch fast_lio mapping_avia.launch rosbag play YOUR_DOWNLOADED.bag ``` ### 4.2 Outdoor rosbag (Livox Avia LiDAR)
Download [avia_hku_main building_mapping](https://drive.google.com/file/d/1GSb9eLQuwqmgI3VWSB5ApEUhOCFG_Sv5/view?usp=sharing) and then ``` roslaunch fast_lio mapping_avia_outdoor.launch rosbag play YOUR_DOWNLOADED.bag ``` ### 4.3 High-rate rosbag (Livox Avia LiDAR sampled at 100Hz) Download [high_rate_avia](https://drive.google.com/file/d/1UM6O3PRN3b730ZeuvKKT3yuOLNQuz8Yf/view?usp=sharing) and then ``` roslaunch fast_lio mapping_avia.launch rosbag play YOUR_DOWNLOADED.bag ``` ## 5.Acknowledgments Thanks for LOAM(J. Zhang and S. Singh. LOAM: Lidar Odometry and Mapping in Real-time), [Livox_Mapping](https://github.com/Livox-SDK/livox_mapping) and [Loam_Livox](https://github.com/hku-mars/loam_livox).