All Projects → HViktorTsoi → FAST_LIO_LOCALIZATION

HViktorTsoi / FAST_LIO_LOCALIZATION

Licence: GPL-2.0 license
A simple localization framework that can re-localize in built maps based on FAST-LIO.

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
matlab
3953 projects
CMake
9771 projects

Projects that are alternatives of or similar to FAST LIO LOCALIZATION

dart.cn
Dart docs localization, get started from the wiki page here: https://github.com/cfug/dart.cn/wiki
Stars: ✭ 64 (-67.01%)
Mutual labels:  localization
stone.js
gettext-like client-side Javascript Internationalization Library
Stars: ✭ 20 (-89.69%)
Mutual labels:  localization
cldr-engine
Internationalization and localization in Typescript with Unicode CLDR, batteries included
Stars: ✭ 34 (-82.47%)
Mutual labels:  localization
Lingo-Vapor
Vapor provider for Lingo - the Swift localization library
Stars: ✭ 45 (-76.8%)
Mutual labels:  localization
HEAPUtil
Code for the RA-L (IROS) 2021 paper "A Hierarchical Dual Model of Environment- and Place-Specific Utility for Visual Place Recognition"
Stars: ✭ 46 (-76.29%)
Mutual labels:  localization
EIN-SELD
An Improved Event-Independent Network for Polyphonic Sound Event Localization and Detection
Stars: ✭ 49 (-74.74%)
Mutual labels:  localization
GA SLAM
🚀 SLAM for autonomous planetary rovers with global localization
Stars: ✭ 40 (-79.38%)
Mutual labels:  localization
TransPose
PyTorch Implementation for "TransPose: Keypoint localization via Transformer", ICCV 2021.
Stars: ✭ 250 (+28.87%)
Mutual labels:  localization
SOLocalization
Configure multi-language environment in iOS application
Stars: ✭ 13 (-93.3%)
Mutual labels:  localization
aruco localization
ROS localization node using an ArUco Marker Map.
Stars: ✭ 30 (-84.54%)
Mutual labels:  localization
french
French language pack to localize the Flarum forum software plus its official and third-party extensions.
Stars: ✭ 17 (-91.24%)
Mutual labels:  localization
laravel-translate
Generate translation files for Laravel using Google Translate
Stars: ✭ 22 (-88.66%)
Mutual labels:  localization
lisan
🌈i18n, Reimagined! 🚀A blazing fast and super small i18n library for Javascript
Stars: ✭ 85 (-56.19%)
Mutual labels:  localization
ReaperJPN-Phroneris
製品版REAPER日本語化パッチ(森)
Stars: ✭ 41 (-78.87%)
Mutual labels:  localization
fluent-vue
Internationalization plugin for Vue.js
Stars: ✭ 137 (-29.38%)
Mutual labels:  localization
awesome-translations
😎 Awesome lists about Internationalization & localization stuff. l10n, g11n, m17n, i18n. Translations! 🌎🌍
Stars: ✭ 54 (-72.16%)
Mutual labels:  localization
laravel-localization-route-cache
Translated Route Caching Solution for Laravel Localization
Stars: ✭ 49 (-74.74%)
Mutual labels:  localization
ACKLocalization
Localize your Cocoa apps from Google Spreadsheet
Stars: ✭ 18 (-90.72%)
Mutual labels:  localization
notepad-plus-plus-localization-hong-kong
Hong Kong Cantonese localization / translation for Notepad++
Stars: ✭ 54 (-72.16%)
Mutual labels:  localization
kidnapped-vehicle
Implemented a C++ particle filter for real-time vehicle localization with only current visual observations and a map.
Stars: ✭ 18 (-90.72%)
Mutual labels:  localization

FAST-LIO-LOCALIZATION

A simple localization framework that can re-localize in built maps based on FAST-LIO.

News

  • 2021-08-11: Add Open3D 0.7 support.

  • 2021-08-09: Migrate to Open3D for better performance.

1. Features

  • Realtime 3D global localization in a pre-built point cloud map. By fusing low-frequency global localization (about 0.5~0.2Hz), and high-frequency odometry from FAST-LIO, the entire system is computationally efficient.
  • Eliminate the accumulative error of the odometry.
  • The initial localization can be provided either by rough manual estimation from RVIZ, or pose from another sensor/algorithm.

2. Prerequisites

2.1 Dependencies for FAST-LIO

Technically, if you have built and run FAST-LIO before, you may skip section 2.1.

This part of dependency is consistent with FAST-LIO, please refer to the documentation https://github.com/hku-mars/FAST_LIO#1-prerequisites

2.2 Dependencies for localization module

sudo apt install ros-$ROS_DISTRO-ros-numpy
pip install open3d==0.9

Notice that, there may be issue when installing Open3D directly using pip in Python2.7:

ERROR: Package 'pyrsistent' requires a different Python: 2.7.18 not in '>=3.5'

you may firstly install pyrsistent:

pip install pyrsistent==0.15

Then

pip install open3d==0.9

3. Build

Clone the repository and catkin_make:

    cd ~/$A_ROS_DIR$/src
    git clone https://github.com/HViktorTsoi/FAST_LIO_LOCALIZATION.git
    cd FAST_LIO_LOCALIZATION
    git submodule update --init
    cd ../..
    catkin_make
    source devel/setup.bash
  • Remember to source the livox_ros_driver before build (follow 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}

4. Run Localization

4.1 Sample Dataset

Demo rosbag in a large underground garage: Google Drive | Baidu Pan (Code: ne8d);

Corresponding map: Google Drive | Baidu Pan (Code: kw6f)

The map can be built using LIO-SAM or FAST-LIO-SLAM.

4.2 Run

  1. First, please make sure you're using the Python 2.7 environment;

  2. Run localization, here we take Livox AVIA as an example:

roslaunch fast_lio_localization localization_avia.launch map:=/path/to/your/map.pcd

Please modify /path/to/your/map.pcd to your own map point cloud file path.

Wait for 3~5 seconds until the map cloud shows up in RVIZ;

  1. If you are testing with the sample rosbag data:
rosbag play localization_test_scene_1.bag

Or if you are running realtime

roslaunch livox_ros_driver livox_lidar_msg.launch

Please set the publish_freq in livox_lidar_rviz.launch to 10Hz, to ensure there are enough points for global localization in a single scan. Support for higher frequency is coming soon.

  1. Provide initial pose
rosrun fast_lio_localization publish_initial_pose.py 14.5 -7.5 0 -0.25 0 0 

The numerical value 14.5 -7.5 0 -0.25 0 0 denotes 6D pose x y z yaw pitch roll in map frame, which is a rough initial guess for localization_test_scene_1.bag.

The initial guess can also be provided by the '2D Pose Estimate' Tool in RVIZ.

Note that, during the initialization stage, it's better to keep the robot still. Or if you play bags, fistly play the bag for about 0.5s, and then pause the bag until the initialization succeed.

Related Works

  1. FAST-LIO: A computationally efficient and robust LiDAR-inertial odometry (LIO) package
  2. ikd-Tree: A state-of-art dynamic KD-Tree for 3D kNN search.
  3. FAST-LIO-SLAM: The integration of FAST-LIO with Scan-Context loop closure module.
  4. LIO-SAM_based_relocalization: A simple system that can relocalize a robot on a built map based on LIO-SAM.

Acknowledgments

Thanks for the authors of FAST-LIO and LIO-SAM_based_relocalization.

TODO

  1. Go over the timestamp issue of the published odometry and tf;
  2. Using integrated points for global localization;
  3. Fuse global localization with the state estimation of FAST-LIO, and smooth the localization trajectory;
  4. Updating...
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].