# FAST-LOCALIZATION
**Repository Path**: slam_-rep/FAST-LOCALIZATION
## Basic Information
- **Project Name**: FAST-LOCALIZATION
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2024-02-22
- **Last Updated**: 2024-02-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# FAST-LOCALIZATION
**A LiDAR-Inertial localization package based on [FAST-LIO2](https://github.com/hku-mars/FAST_LIO), 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](https://github.com/hku-mars/FAST_LIO). It employs [ScanContext](https://github.com/gisbi-kim/scancontext_tro) for initial global localization. Compared to [FAST_LIO_LOCALIZATION](https://github.com/HViktorTsoi/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](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.0, Follow[OpenCV_installation](https://github.com/opencv/opencv)
### 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 ~/$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](https://github.com/hku-mars/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](https://github.com/hku-mars/FAST_LIO), [HBA](https://github.com/hku-mars/HBA) and [ScanContext](https://github.com/gisbi-kim/scancontext_tro)