How chineseljh/mid360_quad_slam works
This ROS 2 stack turns LiDAR and IMU data into odometry and maps, then supports global relocalization, pose-graph optimization, map refinement, and delivery of pose data over serial to a robot controller. The README documents FAST-LIO2 and Point-LIO as alternative front ends. Edges reflect the sampled callbacks and explicit launch remappings; some module internals and topic wiring are not shown in the excerpts.
Main entry points: lio_node.cpp FAST-LIO2 Node · laserMapping.cpp Point-LIO Mapping · localizer_node.cpp ICP Localizer · hba.cpp Map Adjustment
Components 18
Odometry Front Ends
- FAST-LIO2 Node
src/lidar_slam_modules/fastlio2/src/lio_node.cpp - Map Builder
src/lidar_slam_modules/fastlio2/src/map_builder/map_builder.cpp - Point-LIO Mapping
src/lidar_slam_modules/point_lio_ros2/src/laserMapping.cpp - Cloud Preprocessing
src/lidar_slam_modules/point_lio_ros2/src/preprocess.cpp
Mapping And Refinement
- HBA Services
src/lidar_slam_modules/hba/src/hba_node.cpp - Map Adjustment
src/lidar_slam_modules/hba/src/hba/hba.cpp - Voxel Plane Model
src/lidar_slam_modules/hba/src/hba/blam.cpp
Localization And Optimization
- ICP Localizer
src/lidar_slam_modules/localizer/src/localizer_node.cpp - ICP Matching
src/lidar_slam_modules/localizer/src/localizers/icp_localizer.cpp - PGO Node
src/lidar_slam_modules/pgo/src/pgo_node.cpp - Pose Graph
src/lidar_slam_modules/pgo/src/pgos/simple_pgo.cpp
Robot Communications
- Pose Listener
src/tf_to_serial.py - Serial Pose Sender
src/odom_to_serial.py - Jetson UART Sender
src/tf_to_uart_jetson.py
Other components
- LiDAR And IMU
- Odometry And Clouds
- Global Map File
- Robot Controller
Connections 16
- LiDAR And IMU → FAST-LIO2 Node: supplies measurements
- FAST-LIO2 Node → Map Builder: updates map
- FAST-LIO2 Node → Odometry And Clouds: publishes odometry and clouds
- LiDAR And IMU → Point-LIO Mapping: supplies measurements
- Point-LIO Mapping → Cloud Preprocessing: processes LiDAR scans
- Point-LIO Mapping → Odometry And Clouds: publishes odometry and clouds
- Odometry And Clouds → ICP Localizer: provides cloud and odometry
- ICP Localizer → Global Map File: loads map
- ICP Localizer → ICP Matching: matches scans
- Odometry And Clouds → PGO Node: provides cloud and odometry
- PGO Node → Pose Graph: optimizes poses
- HBA Services → Map Adjustment: inserts map data
- Map Adjustment → Voxel Plane Model: uses voxel plane model
- Pose Listener → Robot Controller: sends filtered pose
- Jetson UART Sender → Robot Controller: sends pose over UART
- Serial Pose Sender → Robot Controller: sends serial data