This repository implements SGBA, a LiDAR bundle adjustment system that uses semantic Gaussian mixture models for robust pose estimation.
- ROS (tested with ROS Noetic)
- PCL
- Eigen3
- OpenMP
cd ~/catkin_ws
catkin build semantic_baEdit config/read_label.yaml to set the test mode and parameters.
Test with synthetic planar data for algorithm validation.
Setup:
-
Set test mode in
config/read_label.yaml:test_mode: "virtual_planes"
-
Configure virtual plane parameters:
virtual_planes: pcd_file: "/path/to/your/virtual_plane_data.pcd" max_frames: 20 use_identity_transforms: true
Run:
rosrun semanticBA algoTestTest with real KITTI semantic dataset.
Setup:
-
Download KITTI semantic dataset
-
Set test mode in
config/read_label.yaml:test_mode: "kitti"
-
Configure KITTI parameters:
semantic_kitti: kittiPath: "/path/to/kitti_semantic/sequence" frameCnt: 400 # starting frame winSize: 20 # sliding window size label2Read: [80, 71, 40, 48] # semantic labels to use
Run:
rosrun semanticBA algoTest- Press 'n' to proceed to next iteration
- Press 's' to show performance statistics
- Press 'q' to quit
- Virtual Planes: PCD files with intensity (frame ID) and curvature (virtual semantic label)
- KITTI: Standard KITTI semantic format with point-wise semantic labels
