Hysen Labs
Open-source project
v4rl-ucy/decoSLAM avatar
v4rl-ucy

decoSLAM

decoSLAM

100 stars7 forksC++BSD-3-Clause
01
DEEP OPEN-SOURCE ANALYSIS

decoSLAM: decentralized collaborative SLAM for ROS

The official implementation of the paper Cross-Agent Relocalization for Decentralized Collaborative SLAM, built for ROS Noetic on Ubuntu 20.04.

02
DEEP OPEN-SOURCE ANALYSIS

What this implementation is

The repository contains the official implementation of the paper Cross-Agent Relocalization for Decentralized Collaborative SLAM, presented at ICRA 2023. The README says the implementation has been tested using Ubuntu 20.04 LTS and the corresponding ROS distribution, ROS Noetic Ninjemys. Setup follows the installation instructions for that combination.

03
DEEP OPEN-SOURCE ANALYSIS

Dependencies

The system depends on a few frameworks built and installed from source using CMake, including Ceres version 2.0 or higher. The Hyper set of libraries is used for implementations of sensor classes and Lie Groups, and these are fetched automatically at configuration time, so they do not need to be installed manually. The framework itself builds with standard CMake.

04
DEEP OPEN-SOURCE ANALYSIS

Reproducing the EuRoC results

To reproduce the EuRoC experiment results, download the rosbags for the Machine Hall sequences from the dataset website, then adapt the paths in the roslaunch file to where the bags are saved. The launch runs the five Machine Hall sequences concurrently at reduced speed. The experiment runs twice, once with map sharing among the team and once without, and result folders with trajectory estimates, map data, and communication data are saved under the evaluation directory.

05
DEEP OPEN-SOURCE ANALYSIS

Running a custom dataset

Starting points for config files live under the evaluation directory. Three steps are needed for a custom dataset. First, pre-extracted NetVLAD descriptors of 128 floats are used, generated from the rosbag into a csv file. Second, the sensor setup is defined in a separate config file, and currently only stereo setups are supported, with cam0 as the left camera and cam1 as the right camera. Third, the network is defined in a configuration file.

06
DEEP OPEN-SOURCE ANALYSIS

Spinning up the network

To spin up the peer-to-peer network, agents must load the same network configuration file. The file contains an entry for each agent with its IP and a list of ports, and you need as many ports per agent as there are agents in the system. The combination of port and IP must be unique. Agents can run on different machines, and the rosbags are run concurrently using a launch file, as in the EuRoC example.

08
DEEP OPEN-SOURCE ANALYSIS

Official sources

09
Community notes

Community notes