Centralized Multi-agent Visual SLAM

NAVARCH 568 Mobile Robotics

University of Michigan, Ann Arbor

Winter 2022

Presentation video

Team in action

Four people sitting around a table

Team

Akshay TondakEECS, SIPML
Goro YehRobotics
Rui ChenRobotics
Hao ChenEECS, Robotics and Math
Simeng ZhaoRobotics


ORB-SLAM

ORB-SLAM is an open source implementation of pose landmark graph SLAM. It supports monocular, stereo, and RGBD camera input through the OpenCV library.

Our multi-agent system is an enhancement of the second generation of ORB-SLAM, ORB-SLAM2.

Flow chart of the ORB-SLAM2 implementation

Diagram of the ORB-SLAM2 implementation from Mur-Artal and Tardos' 2017 paper, "ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras".


Multi-Agent ORB-SLAM

Merged Map
  1. Two robots exploring can cover the same space in half the time.
  2. If the two robots can identify each other, they can use recognition of the other robot as an additional opportunity for loop closure. We make use of Ed Olson's popular April tag system for robot identification.

However, a multi-agent system requires a mechanism for combining map data from the ORB-SLAM implementation running on each robot. While future implementations may utilize a client-server architecture to do this fusion, here we are just parallely running ORB-SLAM instances on the 2 robots.


Datasets

Image of the museum simulation used

We used a ROS simulation of a museum dataKITTI dataset taken in Karlsruhe, Germany. To simulate two simultaneously running clients, we split the grayscale 00 stereo portion of the KITTI dataset in half, adjusting the timestamps on the second half to align with the first half.

image with ORB features highlighted. Mapping segment


Modifications to ORB-SLAM

To simulate running two clients, we ran two simultaneous instances of ORB-SLAM. Each client instance of ORB-SLAM spawns three threads: tracking, mapping, and loop closing.

The complete code for our implementation of multi-agent ORB-SLAM can be found here on Github.


Results

Image of the museum simulation used

Final merged map of our implementation Image of the museum simulation used

A simulation showing 3 different paths taken by 3 different robots


Future Work

More robots

We hope that in the future, we will be able to implement collaborative SLAMs that include more robots, and even map construction based on robot swarms.

Joint pose graph estimation

Our current approach to merging is overlapping maps based on the estimated initial relative location while the internal pose graphs are independent between robots, which leads to uncontrollable errors at map junctions. In the future, we hope to modify the pipeline of ORB\_SLAM so that robots can identify, register, and synchronize common feature points among robots, and then use these feature points as edges to connect independent graphs between robots for loop closure detection and further online optimization.

Better Dataset

The current data set of our project comes from the simulation environment, which is different from the data in the real world. At the same time, there are currently few datasets suitable for multi-robot SLAM, so in the future, we hope to use multi-robot field collection data to build a dataset, and continue to develop our project on this dataset.

Better Data storage

In addition, Finally, we want to optimize the data storage method. At present, we also save some log information when producing maps, which makes the amount of data we store grow rapidly and makes it difficult for us to generate large-scale maps. Therefore, we want to optimize map information in the future. storage method to increase the scale of our stored data.



References