Skip to content

HITSZ-NRSL/Multi-Proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

multi-proxy

This repository will host the official implementation of the paper:

Communication-Robust Asynchronous Distributed LiDAR Collaborative Smoothing and Mapping

Overview

multi-proxy focuses on communication-robust, asynchronous distributed and decentralized LiDAR collaborative smoothing and mapping.
The project targets multi-robot scenarios where communication is constrained, and aims to maintain consistent and accurate mapping performance.

Note that the algorithm itself does not provide odometry; you must supply your own front-end LiDAR odometry. Alternatively, you may pre-record odometry and point-cloud data from an LIO (LiDAR–Inertial Odometry) or LO (LiDAR Odometry) system.

multi-proxy subscribes to point clouds of type sensor_msgs::PointCloud2 and odometry of type nav_msgs::Odometry, and associates them into keyframes by nearest timestamps, thereby achieving complete decoupling from the front-end LiDAR odometry.

Demo Video

Demo Video

Dependency

  • ROS (tested with Noetic)
  • gtsam (tested with 4.2.0)
    curl -L -o gtsam-4.2.0.tar.gz https://github.com/borglab/gtsam/archive/refs/tags/4.2.0.tar.gz
    tar -xzf gtsam-4.2.0.tar.gz
    rm gtsam-4.2.0.tar.gz && cd gtsam-4.2.0 && mkdir build && cd build && \
    cmake .. -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON -DGTSAM_USE_TBB=ON -DGTSAM_BUILD_TESTS=OFF -DGTSAM_BUILD_EXAMPLES=OFF && \
    make -j$(nproc) && make install && ldconfig

The system can be run either in a Docker environment or locally. Docker is recommended.

Docker

Install Docker and docker-compose (installation methods and URLs may change; please install them yourself and add your user to the Docker group to enable running Docker without sudo). After installation, build the image:

  docker build -t sylaranh/multi-proxy:latest .

After the image is built, you can check it using:

  docker images

To evaluate the impact of inter-robot communication quality, navigate to the docker directory and launch three containers using docker-compose. Each container represents one robot. Network delay, packet loss, and bandwidth constraints are automatically injected between containers via net_work_loss_robot_0.sh.

  xhost +
  cd <your_workspace>/src/multi_proxy/docker/
  docker-compose up

Start ROS Master (Host)

Start roscore on the host machine:

  roslaunch src/multi_proxy/launch/multi_s3e_master.launch

Launch Robots in Docker Containers Open a new terminal and enter the multi-proxy0 container:

  docker exec -it multi-proxy0 bash
  cd ws_code
  catkin_make
  source devel/setup.bash
  roslaunch multi_proxy multi_s3e0.launch

Open another terminal and enter the multi-proxy1 container:

  docker exec -it multi-proxy1 bash
  cd ws_code
  catkin_make
  source devel/setup.bash
  roslaunch multi_proxy multi_s3e1.launch

Open another terminal and enter the multi-proxy2 container:

  docker exec -it multi-proxy2 bash
  cd ws_code
  catkin_make
  source devel/setup.bash
  roslaunch multi_proxy multi_s3e2.launch

Using Pre-recorded Odometry and Pointcloud

rosbag play S3E_College_robot_odom.bag

If Single robot LIO is not configured, instead use a merged single-robot odometry dataset that has been precomputed (e.g., using FastLIO). Typical topics include: /robot_0/odometry /robot_0/cloud_deskewed

A common workflow is: Play each robot’s dataset independently. Add robot name prefixes to the odometry and cloud topics. Merge all robots’ lio output into a single rosbag.

The Multi-Robot Cloud Odometry Dataset is made available here for reference. It should be explicitly noted that this dataset is not an originally collected raw dataset. It is curated and reorganized based on the S3E Dataset, and structured with LiDAR point clouds and odometry outputs from Co-LRIO serving as the front-end of the LiDAR-Inertial Odometry (LIO) system. If you use this dataset in your research or academic publications, you are required to duly acknowledge both the original dataset and the relevant open-source projects.

Citation

If you find this work useful in your research, please consider citing:

@ARTICLE{11358654,
  author={Wang, Jiancheng and Cai, Chenyuan and Tan, JinQian and Chen, Haoyao},
  journal={IEEE Robotics and Automation Letters}, 
  title={Communication-Robust Asynchronous Distributed LiDAR Collaborative Smoothing and Mapping}, 
  year={2026},
  volume={11},
  number={3},
  pages={3700-3707},
  keywords={Robots;Collaboration;Optimization;Location awareness;Laser radar;Simultaneous localization and mapping;Robustness;Point cloud compression;Pipelines;Trajectory;C-LSLAM;multi-robot;asynchronous;distributed;decentralized;collaborative localization},
  doi={10.1109/LRA.2026.3655282}
}

Status

  • 📄 Paper accepted

About

This repository will host the official implementation of the paper: Communication-Robust Asynchronous Distributed LiDAR Collaborative Smoothing and Mapping

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors