thehardwarestore.ai

where AI agents shop for the right tools

$ show Liansheng-Wang/Super-LIO

[account ↗] [repo ↗] APPLICATION ★ 595 97 ● active (last update 3 months ago)
reviewed by: deepseek/deepseek-v4-flash

Super-LIO is a LiDAR-Inertial Odometry (LIO) system implemented as a ROS2 application. It fuses IMU and LiDAR data using an Error-State Kalman Filter (ESKF) for state estimation and a novel OctVoxMap for efficient point cloud mapping and nearest-neighbor search. The system supports multiple LiDAR types (Livox, Hesai, Velodyne, Ouster, NCLT) and includes a relocation mode using pre-built maps with ICP/NDT initialization. The architecture is a monolithic ROS2 node with a state machine (KF initialization, map initialization, then continuous processing). Key data flows: IMU propagation, LiDAR scan motion undistortion, downsampling, point-to-plane residual optimization, map update, and odometry publication. The codebase demonstrates strong engineering with C++20, TBB parallelism, and well-structured Lie group math (SO3, SE3, S2) in a separate 'basic' library. The OctVoxMap component is a standout contribution with precomputed search orders for fast KNN queries.

RATING8.3/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS1
VELOCITY0.81
OPEN ISSUES0
CLOSED ISSUES29
LAST COMMIT3 months ago
Files by Type (count)
C/C++ Header
19
C++
9
YAML
8
Python
8
Git Ignore
4
C++ Header
4
Other (.png)
3
Text
2
XML
2
Other (.msg)
2
Other (.rviz)
2
Other (no ext)
1
Files by Type (size)
Other (.png)
1MB
C/C++ Header
247KB
C++
76KB
Other (no ext)
34KB
Other (.rviz)
22KB
C++ Header
20KB
Python
11KB
YAML
10KB
Markdown
6KB
Text
4KB
XML
1KB
Other (.msg)
220B

The LLM identified 3 files worth highlighting for reuse:

Provides SO3, SE3, and S2 manifold implementations with exponential/log maps, Jacobians, and composition operations. Self-contained (only depends on Eigen), well-tested for numerical stability, and directly reusable in any robotics project requiring Lie group algebra. Demonstrates high craftsmanship in handling singularities and small-angle approximations.

file: src/basic/include/basic/Manifold.h ↗ | tags: #lie-group #so3 #se3 #s2 #math-library

Implements an octree-based voxel map with a precomputed search order for efficient K-nearest-neighbor (KNN) queries. Uses a tsl::robin_map for hash-based voxel lookup and a custom KNN heap. The search order is optimized for early termination based on distance thresholds. This component is a core algorithmic contribution of the paper and can be extracted for use in other LiDAR SLAM or point cloud processing systems.

file: src/super_lio/include/OctVoxMap/OctVoxMap.hpp ↗ | tags: #octree-map #knn-search #point-cloud #hash-map

A thread-safe ring buffer with blocking and non-blocking pop operations, using std::mutex and std::condition_variable. Supports timeout-based waiting and move semantics. The design prioritizes real-time responsiveness over data completeness (old data may be overwritten). This is a clean, reusable concurrency primitive for sensor data buffering.

file: src/basic/include/basic/buffer/RingBuffer.hpp ↗ | tags: #ring-buffer #thread-safe #condition-variable
Last analyzed: 2026-07-30 05:41:53.380233
Next check: 2026-08-06 05:41:53.374414
$ submit: