How ericsii/fast_lio_ros2 works
FAST-LIO is a ROS 2 LiDAR–inertial odometry and incremental mapping package. Its runtime entry point, fastlio_mapping, receives LiDAR and IMU data, preprocesses point clouds, combines inertial propagation with scan-to-map updates, and maintains a map for odometry and visualization. The README also documents sensor/configuration support and saving maps through /map_save. The sampled code confirms the entry point, preprocessing, filter implementation, and PCD writing; finer callback wiring and published topics are not fully visible in the excerpts.
Main entry points: laserMapping.cpp Mapping node · mapping.launch.py Mapping launch · esekfom.hpp Iterated EKF · ikd-Tree Incremental KD-tree
Components 20
ROS Runtime
- Mapping launch
launch/mapping.launch.py - Mapping node
src/laserMapping.cpp
Odometry Estimation
- Cloud preprocessing
src/preprocess.cpp - IMU processing
src/IMU_Processing.hpp - Iterated EKF
include/IKFoM_toolkit/esekfom/esekfom.hpp - Manifold state
include/IKFoM_toolkit/mtk - State utilities
include/common_lib.h
Incremental Mapping
- Incremental KD-tree
include/ikd-Tree - Point-cloud map
src/laserMapping.cpp
Configuration and Output
- Sensor configs
config - Pose message
msg/Pose6D.msg - PCD map saving
src/laserMapping.cpp - RViz
rviz
Other components
- LiDAR
- IMU
- ROS launch
- RViz user
- PCD map file
- ROS outputs
- Livox driver
Connections 21
- ROS launch → Mapping launch: starts
- Mapping launch → Mapping node: launches
- Mapping launch → Sensor configs: selects
- Sensor configs → Mapping node: configures
- LiDAR → Mapping node: publishes scans
- IMU → Mapping node: publishes measurements
- Livox driver → LiDAR: provides data
- Mapping node → Cloud preprocessing: processes clouds
- Mapping node → IMU processing: processes IMU
- Mapping node → Iterated EKF: updates state
- Iterated EKF → Manifold state: uses state representation
- Mapping node → State utilities: uses state utilities
- Mapping node → Incremental KD-tree: searches and updates
- Mapping node → Point-cloud map: maintains
- Incremental KD-tree → Point-cloud map: indexes points
- Mapping node → Pose message: publishes pose type
- Mapping node → ROS outputs: publishes results
- Mapping launch → RViz: optionally launches
- RViz user → RViz: views
- Mapping node → PCD map saving: handles save
- PCD map saving → PCD map file: writes PCD