FAST-LOCALIZATION
A LiDAR-Inertial localization package based on FAST-LIO2, operating with a known prior map.
Fig 1 :Indoor test without manual input of the initial pose
Fig 2 :Initial pose given by ScanContext(left) and Localization detail(right)
0. Features
FAST-LOCALIZATION is a framework for relocalization in a known map, based on FAST-LIO2. It employs ScanContext for initial global localization. Compared to FAST_LIO_LOCALIZATION, FAST-LOCALIZATION does not require manual input of the initial pose. By utilizing continuous global point cloud constraints, it achieves more stable and globally consistent accurate pose estimates.
1. Prerequisites
1.1 Ubuntu and ROS
Ubuntu >= 16.04
ROS >= Melodic. ROS Installation
1.2. PCL && Eigen && OpenCV
PCL >= 1.8, Follow PCL Installation.
Eigen >= 3.3.4, Follow Eigen Installation.
Opencv >= 3.2.0, FollowOpenCV_installation
1.3. livox_ros_driver
Follow livox_ros_driver Installation.
2. Build
Clone the repository and catkin_make:
cd ~/$A_ROS_DIR$/src
git clone https://github.com/YWL0720/FAST-LOCALIZATION
cd FAST-LOCALIZATION
git submodule update --init
cd ../..
catkin_make
source devel/setup.bash
- Remember to source the livox_ros_driver before build (follow 1.3 livox_ros_driver)
- If you want to use a custom build of PCL, add the following line to ~/.bashrc
export PCL_ROOT={CUSTOM_PCL_PATH}
3. Map Preparation
FAST-LOCALIZATION can seamlessly integrate with HBA(A Globally Consistent and Efficient Large-Scale LiDAR Mapping Module), enabling real-time localization within maps optimized by HBA. It requires placing the point cloud file for each map frame and the corresponding pose files in the map/ directory. Noted the format of the pose is tx ty tz qw qx qy qz.
.
├── pcd
│ ├── 0.pcd
│ └── 1.pcd
└── pose.json
4. Run
roslaunch fast_localization localization_mid360.launch
5. TODO
- Code Optimization
- Manual Initialization Interface
6.Acknowledgments
Thanks for FAST-LIO2, HBA and ScanContext