Retour au classement

HViktorTsoi/FAST_LIO_LOCALIZATION

C++

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

localizationlidar-odometrylivox-lidar
Croissance des étoiles
Étoiles
1k
Forks
212
Croissance hebdomadaire
Issues
41
5001k
août 2021mars 2023nov. 2024juil. 2026
README

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.

  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...
Dépôts similaires
AtsushiSakai/PythonRobotics

Python sample codes and textbook for robotics algorithms.

PythonPyPIOtherpythonrobotics
atsushisakai.github.io/PythonRobotics/
30.1k7.4k
Huanshere/VideoLingo

Netflix-level subtitle cutting, translation, alignment, and even dubbing - one-click fully automated AI video subtitle team | Netflix级字幕切割、翻译、对齐、甚至加上配音,一键全自动视频搬运AI字幕组

PythonPyPIApache License 2.0ai-translationdubbing
docs.videolingo.io
17.8k2k
formatjs/formatjs

The monorepo home to all of the FormatJS related libraries, most notably react-intl.

TypeScriptnpmjavascriptreact
formatjs.github.io
14.7k1.4k
krillinai/KrillinAI

AI video translation & dubbing tool for humans and AI Agents, powered by LLMs. Full pipeline: download, transcribe, translate, TTS dub, reformat, cover generation. 100+ languages, optimized for YouTube, TikTok, Bilibili, Douyin, and more.AI视频翻译配音工具,面向人类与AI Agent,100+语言全链路,CLI分阶段调用,适配抖音、小红书、哔哩哔哩、视频号、TikTok、YouTube

GoGo ModulesGNU General Public License v3.0video-transcriptionvideo-translation
10.5k980
Humanizr/Humanizer

Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities

C#Otherlocalizationhacktoberfest
9.8k1.1k
SwiftGen/SwiftGen

The Swift code generator for your assets, storyboards, Localizable.strings, … — Get rid of all String-based APIs!

SwiftMIT Licenseiosswift
9.6k765
cartographer-project/cartographer

Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.

C++Apache License 2.0slammapping
7.9k2.3k
Laravel-Lang/lang

List of 128 languages for Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel UI.

PHPPackagistMIT Licenselaravellanguage
laravel-lang.com/packages-lang.html
7.8k3k
WeblateOrg/weblate

Web based localization tool with tight version control integration.

PythonPyPIGNU General Public License v3.0localizationinternationalization
weblate.org
6k1.3k
lingui/js-lingui

🌍 📖 A readable, automated, and optimized (2 kb) internationalization for JavaScript

TypeScriptnpmMIT Licensetranslationinternationalization
lingui.dev
5.8k448
tolgee/tolgee-platform

Developer & translator friendly web-based localization platform

TypeScriptnpmOtherlocalizationlocalization-tool
tolgee.io
4k363
github/relative-time-element

Web component extensions to the standard <time> element.

JavaScriptnpmMIT Licenseweb-componentscustom-elements
github.github.io/relative-time-element/examples/
4k189