Lenotary 269681d89a first commit | 2 anni fa | |
---|---|---|
Log | 2 anni fa | |
PCD | 2 anni fa | |
config | 2 anni fa | |
doc | 2 anni fa | |
include | 2 anni fa | |
launch | 2 anni fa | |
msg | 2 anni fa | |
rviz_cfg | 2 anni fa | |
src | 2 anni fa | |
.gitignore | 2 anni fa | |
.gitmodules | 2 anni fa | |
CMakeLists.txt | 2 anni fa | |
LICENSE | 2 anni fa | |
README.md | 2 anni fa | |
package.xml | 2 anni fa |
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:
Related video: FAST-LIO2, FAST-LIO1, FAST-LIO2 + Scan-context Loop Closure
Pipeline:
New Features:
Related papers:
FAST-LIO2: Fast Direct LiDAR-inertial Odometry
FAST-LIO: A Fast, Robust LiDAR-inertial Odometry Package by Tightly-Coupled Iterated Kalman Filter
Contributors
Wei Xu 徐威,Yixi Cai 蔡逸熙,Dongjiao He 贺东娇,Fangcheng Zhu 朱方程,Jiarong Lin 林家荣,Zheng Liu 刘政, Borong Yuan
Ubuntu >= 16.04
For Ubuntu 18.04 or higher, the default PCL and Eigen is enough for FAST-LIO to work normally.
ROS >= Melodic. ROS Installation
PCL >= 1.8, Follow PCL Installation.
Eigen >= 3.3.4, Follow Eigen Installation.
Follow livox_ros_driver Installation.
Remarks:
source $Licox_ros_driver_dir$/devel/setup.bash
to the end of file ~/.bashrc
, where $Licox_ros_driver_dir$
is the directory of the livox ros driver workspace (should be the ws_livox
directory if you completely followed the livox official document).Clone the repository and catkin_make:
cd ~/$A_ROS_DIR$/src
git clone https://github.com/hku-mars/FAST_LIO.git
cd FAST_LIO
git submodule update --init
cd ../..
catkin_make
source devel/setup.bash
If you want to use a custom build of PCL, add the following line to ~/.bashrc
## 3. Directly run
Noted:
A. Please make sure the IMU and LiDAR are **Synchronized**, that's important.
B. The warning message "Failed to find match for field 'time'." means the timestamps of each LiDAR points are missed in the rosbag file. That is important for the forward propagation and backwark propagation.
### 3.1 For Avia
Connect to your PC to Livox Avia LiDAR by following [Livox-ros-driver installation](https://github.com/Livox-SDK/livox_ros_driver), then
cd ~/$FAST_LIO_ROS_DIR$ source devel/setup.bash roslaunch fast_lio mapping_avia.launch roslaunch livox_ros_driver livox_lidar_msg.launch ```
For livox serials, FAST-LIO only support the data collected by the livox_lidar_msg.launch
since only its livox_ros_driver/CustomMsg
data structure produces the timestamp of each LiDAR point which is very important for the motion undistortion. livox_lidar.launch
can not produce it right now.
If you want to change the frame rate, please modify the publish_freq parameter in the livox_lidar_msg.launch of Livox-ros-driver before make the livox_ros_driver pakage.
mapping_avia.launch theratically supports mid-70, mid-40 or other livox serial LiDAR, but need to setup some parameters befor run:
Edit config/avia.yaml
to set the below parameters:
lid_topic
imu_topic
extrinsic_T
extrinsic_R
(only support rotation matrix)time_sync_en
to ture to turn on. But turn on ONLY IF external time synchronization is really not possible, since the software time sync cannot make sure accuracy.Step A: Setup before run
Edit config/velodyne.yaml
to set the below parameters:
lid_topic
imu_topic
(both internal and external, 6-aixes or 9-axies are fine)scan_line
extrinsic_T
extrinsic_R
(only support rotation matrix)Step B: Run below
cd ~/$FAST_LIO_ROS_DIR$
source devel/setup.bash
roslaunch fast_lio mapping_velodyne.launch
Step C: Run LiDAR's ros driver or play rosbag.
Set pcd_save_enable
in launchfile to 1
. All the scans (in global frame) will be accumulated and saved to the file FAST_LIO/PCD/scans.pcd
after the FAST-LIO is terminated. pcl_viewer scans.pcd
can visualize the point clouds.
Tips for pcl_viewer:
change what to visualize/color by pressing keyboard 1,2,3,4,5 when pcl_viewer is running.
1 is all random
2 is X values
3 is Y values
4 is Z values
5 is intensity
Thanks for LOAM(J. Zhang and S. Singh. LOAM: Lidar Odometry and Mapping in Real-time), Livox_Mapping, LINS and Loam_Livox.