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)
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.
Ubuntu >= 16.04
ROS >= Melodic. ROS Installation
PCL >= 1.8, Follow PCL Installation.
Eigen >= 3.3.4, Follow Eigen Installation.
Opencv >= 3.2.0, FollowOpenCV_installation
Follow livox_ros_driver Installation.
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}
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
roslaunch fast_localization localization_mid360.launch
- Code Optimization
- Manual Initialization Interface
Thanks for FAST-LIO2, HBA and ScanContext