This branch contains the ROS 2 (Humble) Dockerized version of Swarm-LIO2.
The ROS 1 port is developed in adocker-ros1branch.
Swarm-LIO2-ROS2-Docker is an open-source community-driven port of Swarm-LIO2,
rewritten to support ROS 2 and Docker-based deployment.
The goal is to make Swarm-LIO2 easier to integrate into modern robotics stacks using ROS 2 Humble distribution,
and to simplify reproducible builds through containerization.
Swarm-LIO2 is a decentralized, efficient LiDAR-inertial odometry and mapping framework designed for UAV swarms,
developed by the HKU MARS Lab and published in IEEE Transactions on Robotics 2025.
| Component | Status |
|---|---|
| Repository setup | ✅ |
| ROS 2 package structure | ✅ |
| Dockerfile (base + runtime images) | ✅ |
| swarm_msgs/udp_bridge/swarm_lio ROS 2 port | ✅ |
| Simulation / example data testing | ⏳ Planned |
- ROS 2 Humble
- Ubuntu 22.04
- GTSAM 4.2
- PCL ≥ 1.12
- Eigen ≥ 3.4
- Docker + docker-compose
Swarm-LIO2-ROS2-Docker/
├── docker/
│ ├── Dockerfile.base
│ ├── Dockerfile.dev
│ └── docker-compose.yaml
├── src/
│ ├── swarm_lio2/
│ ├── udp_bridge/
│ └── common/
├── launch/
│ ├── single_uav.launch.xml
│ └── multi_uav.launch.xml
├── config/
│ └── params.yaml
└── README.md
- Fork original repository
- Define ROS 2 and Docker roadmap
- Create ROS 2 package structure
- Update message definitions to ROS 2
.msgtypes (package:swarm_msgs) - Port
udp_bridgepackage to ROS 2 (rclcpp, timers, pubs/subs) - Port core Swarm-LIO2 nodes (C++)
- Replace
ros::Publisher/Subscriberwithrclcppequivalents in core nodes
- Create Dockerfiles for build/runtime (Humble-based image builds successfully)
- Add multi-stage docker build
- Write ROS 2 launch files (Python) for
udp_bridge - Write ROS 2 rviz configs and launch files for
swarm_lio - Run tests for ROS 2 packages (planned)
- Publish example bags and setup guide
- Add installation & usage instructions
Original paper:
Swarm-LIO2: Decentralized, Efficient LiDAR-Inertial Odometry for UAV Swarms
F. Zhu, Y. Ren, L. Yin, F. Kong, Q. Liu, R. Xue, W. Liu, Y. Cai, G. Lu, H. Li, F. Zhang
IEEE Transactions on Robotics, 2025.
Videos:
- Removed
Livox_driverand Livox SDK from packages and code. Pointclouds are processed using Pointcloud2 ros2 messages.
Based on Swarm-LIO2 © HKU MARS Lab.
ROS 2 and Docker port maintained by Roman Voronov.
This fork follows the same license as the original project.
Contributions are very welcome!
If you’re interested in:
- helping with ROS 2 migration,
- testing in real UAV environments,
- or improving documentation —
please open an issue or pull request.