Skip to content

V-Roman-V/Swarm-LIO2-ROS2-Docker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Swarm-LIO2-ROS2-Docker

This branch contains the ROS 2 (Humble) Dockerized version of Swarm-LIO2.
The ROS 1 port is developed in a docker-ros1 branch.

Swarm-LIO2-ROS2-Docker: ROS 2 and Docker Port of Swarm-LIO2

Open-source community fork of HKU-MARS Swarm-LIO2

Original Swarm-LIO2 Repository (ROS 1)

HKU MaRS Lab

Introduction

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.


Project Status

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

Planned Tech Stack

  • ROS 2 Humble
  • Ubuntu 22.04
  • GTSAM 4.2
  • PCL ≥ 1.12
  • Eigen ≥ 3.4
  • Docker + docker-compose

Repository Structure (Planned)

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

TODO Roadmap

Phase 1: Setup & Porting

  • Fork original repository
  • Define ROS 2 and Docker roadmap
  • Create ROS 2 package structure
  • Update message definitions to ROS 2 .msg types (package: swarm_msgs)
  • Port udp_bridge package to ROS 2 (rclcpp, timers, pubs/subs)
  • Port core Swarm-LIO2 nodes (C++)
  • Replace ros::Publisher/Subscriber with rclcpp equivalents in core nodes

Phase 2: Build System & Docker

  • Create Dockerfiles for build/runtime (Humble-based image builds successfully)
  • Add multi-stage docker build

Phase 3: Launch & Testing

  • 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

Phase 4: Documentation

  • Add installation & usage instructions

Reference

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:


Notes

  • Removed Livox_driver and Livox SDK from packages and code. Pointclouds are processed using Pointcloud2 ros2 messages.

License and Attribution

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.


Contributing

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.


About

ROS 1/2 and Docker port of HKU-MARS Swarm-LIO2: Decentralized, Efficient LiDAR-inertial Odometry for UAV Swarms

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 97.3%
  • Python 1.2%
  • Other 1.5%