whatisgithub

What is lio-sam?

tixiaoshan/lio-sam — explained in plain English

Analysis updated 2026-06-26

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

In one sentence

A robotics software package that builds precise 3D maps in real time while tracking a robot's location, by combining lidar laser scans with motion sensor data in the ROS framework.

Mindmap

mindmap
  root((LIO-SAM))
    What it does
      3D environment mapping
      Real-time localization
      Sensor fusion
    Sensors
      Lidar scanner
      9-axis IMU
      Velodyne support
      Ouster support
    Architecture
      Map refinement thread
      IMU-rate pose thread
    Setup
      ROS framework
      Manual calibration
      ROS2 branch available
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

What do people build with it?

USE CASE 1

Build a 3D map of an outdoor environment using a lidar and IMU mounted on a wheeled robot

USE CASE 2

Track the precise position and path of a drone or autonomous vehicle in real time

USE CASE 3

Test the LIO-SAM algorithm on provided sample datasets before deploying on physical hardware

USE CASE 4

Migrate to the ROS2 branch to integrate LIO-SAM into a newer robotics system

What is it built with?

C++ROSGTSAMOpenCV

How does it compare?

tixiaoshan/lio-samurho3d/urho3ddfranx/shadered
Stars4,7374,7324,749
LanguageC++C++C++
Setup difficultyhardhardeasy
Complexity5/53/53/5
Audienceresearcherdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires a compatible mechanical lidar with per-point timestamps, a 9-axis IMU, and manual sensor-to-sensor calibration before mapping works.

License not specified in the explanation, verify the repository before use in commercial projects.

So what is it?

LIO-SAM is a software package for building 3D maps of an environment in real time while simultaneously tracking where a robot or vehicle is located. It is designed for outdoor robots, autonomous vehicles, and drones, and it runs on a widely used robotics framework called ROS (Robot Operating System). The system works by combining data from two sensors: a lidar (a laser scanner that measures distances by bouncing pulses off nearby surfaces) and an IMU (a motion sensor that detects acceleration and rotation). By fusing these two data streams continuously, the system can produce a precise position estimate even at the high update rates that an IMU provides, while the lidar's geometry keeps the long-term map accurate. The package maintains two separate calculation processes running in parallel. One handles the ongoing map and refines position estimates over time. The other runs at the speed of the IMU, which can be up to 500 times per second, to keep the current pose estimate fresh. Together they allow the system to run up to ten times faster than real-time while still producing accurate maps and trajectories. Setting it up requires compatible hardware: a mechanical lidar that reports per-point timestamps and ring numbers, plus a 9-axis IMU. Some manual calibration is needed to align the two sensors to each other. The README provides detailed steps for this alignment, sample datasets for testing, and notes on common hardware combinations including Velodyne and Ouster lidar models. A ROS2 version is available on a separate branch for users on newer systems. This project comes from academic research and includes a companion paper describing the algorithm. The code is practical enough to run on physical robots, with examples using a Jackal wheeled robot and a handheld sensor rig.

Copy-paste prompts

Prompt 1
Walk me through calibrating a Velodyne lidar and 9-axis IMU together to run LIO-SAM on my outdoor robot
Prompt 2
Help me set up LIO-SAM with a sample ROS bag file to verify the mapping pipeline produces accurate trajectories
Prompt 3
Explain the dual-thread architecture in LIO-SAM and how IMU preintegration keeps the pose estimate fresh between lidar scans
Prompt 4
I'm getting drift in my LIO-SAM map after 100 meters, help me diagnose whether it's an IMU calibration or loop closure issue

Frequently asked questions

What is lio-sam?

A robotics software package that builds precise 3D maps in real time while tracking a robot's location, by combining lidar laser scans with motion sensor data in the ROS framework.

What language is lio-sam written in?

Mainly C++. The stack also includes C++, ROS, GTSAM.

What license does lio-sam use?

License not specified in the explanation, verify the repository before use in commercial projects.

How hard is lio-sam to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is lio-sam for?

Mainly researcher.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.