explaingit

hku-mars/fast_lio

4,652C++Audience · researcherComplexity · 5/5Setup · hard

TLDR

Research software that tracks a robot's exact position in real time by fusing LiDAR laser scans with motion sensor data, building a 3D map as it moves, fast enough for live use on drones and ground robots.

Mindmap

mindmap
  root((FAST-LIO))
    What it does
      Robot localization
      3D map building
      Sensor fusion
    Sensors
      LiDAR scanner
      IMU motion sensor
    Algorithms
      Kalman filter
      Incremental KD-tree
      Raw point clouds
    Hardware support
      Velodyne spinning
      Livox solid-state
      ARM computers
    Tech
      Cpp
      ROS
      Ubuntu
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run real-time robot localization and 3D mapping on a drone or ground robot equipped with a LiDAR and IMU sensor

USE CASE 2

Test state estimation on a ROS robot with different LiDAR hardware including Velodyne spinning and Livox solid-state types

USE CASE 3

Deploy SLAM on an ARM-based embedded computer like an NVIDIA Jetson for a mobile robot without GPS

USE CASE 4

Use the pre-built Docker container to get FAST-LIO running without manually compiling ROS and dependencies

Tech stack

C++ROSDockerUbuntu

Getting it running

Difficulty · hard Time to first run · 1day+

Requires Ubuntu Linux, ROS, compatible LiDAR and IMU hardware, and several C++ support libraries, GPU not required but ARM boards need careful dependency management.

In plain English

FAST-LIO is a research software package for robots and autonomous vehicles that need to know where they are in space while moving. It combines data from two types of sensors: a LiDAR, which uses laser pulses to build a 3D map of the surroundings, and an IMU (inertial measurement unit), which measures acceleration and rotation. By fusing these two data streams, the system can track the robot's position and orientation in real time, even in environments where GPS is unavailable. The software is designed to work fast enough for real-world use. It uses a mathematical technique called an iterated extended Kalman filter to continuously refine its position estimate as new sensor readings arrive. A data structure called an incremental KD-tree is used to search the growing map quickly, which allows the system to process LiDAR scans at over 100 times per second on capable hardware. FAST-LIO 2.0, the current version, works directly on raw point cloud data rather than requiring the sensor readings to be pre-processed into features first. This makes it compatible with a wider range of LiDAR hardware, including spinning types like Velodyne and solid-state types like Livox Avia. It can also run on smaller ARM-based computers commonly used in drones and mobile robots. The package runs inside the ROS robotics middleware, which is the standard software framework for robot development in research. Setup requires Ubuntu Linux, ROS, and a few supporting libraries. A Docker container is available for those who want a pre-configured environment. This is an academic research release from the MARS Lab at the University of Hong Kong. Two research papers accompany the code.

Copy-paste prompts

Prompt 1
I have a Velodyne LiDAR and IMU connected to a robot running ROS Noetic on Ubuntu. Walk me through configuring FAST-LIO 2.0 to start localization and mapping.
Prompt 2
My drone uses a Livox Avia LiDAR. What parameter file changes do I need in FAST-LIO to use solid-state instead of spinning LiDAR?
Prompt 3
I want to run FAST-LIO on an NVIDIA Jetson for a mobile robot. Are there ARM-specific compile flags I need to set?
Prompt 4
How do I visualize the 3D point cloud map that FAST-LIO builds in RViz while it is running on my robot?
Open on GitHub → Explain another repo

← hku-mars on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.