https://github.com/ethz-asl/fgsp
https://github.com/ethz-asl/fgsp
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/ethz-asl/fgsp
- Owner: ethz-asl
- License: mit
- Created: 2021-01-29T10:08:30.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-05-21T19:59:26.000Z (over 1 year ago)
- Last Synced: 2025-03-25T08:23:10.661Z (9 months ago)
- Language: Jupyter Notebook
- Size: 22.1 MB
- Stars: 44
- Watchers: 5
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Collaborative Robot Mapping using Spectral Graph Analysis
This work entitled FGSP (short for Factor Graph Signal Processing) deals with the problem of creating globally consistent pose graphs in a centralized multi-robot SLAM framework.
## Overview
FGSP mainly relies on two separate components for synchronization, the `graph_monitor` (server) and the `graph_client` (robots).
The `graph_monitor` reads the optimized server graph published by a separate system.
This is generally agnostic to the mapping server as long as the specific messages
are used.
The message definitions can be obtained from [maplab_msgs](https://github.com/ethz-asl/maplab_msgs) and an example server is the `maplab_server` which can be found [here](https://github.com/ethz-asl/maplab/tree/develop).
The `graph_client` finds the discrepancies and publishes the required constraints to obtain consistent pose graphs on server and robot.
To do so, it listens to the graph of published by the `graph_monitor` as well as the onboard state estimation.
Similar to the `graph_monitor`, this is also agnostic to the used framework as long as the state estimation is published on the correct topics.
## Getting started
There are mainly two options to build FGSP:
* Regular `colcon` build
* Deployment build with `docker`
For the former, the following dependencies need to be installed on the host machine:
* [liegroups](https://github.com/utiasSTARS/liegroups)
* [maplab_msgs](https://github.com/ethz-asl/maplab_msgs)
* [pygsp](https://github.com/epfl-lts2/pygsp)
A submodule of each dependency can be found in the in the `dependencies/` directory.
Other dependencies are `numpy`, `pandas`, `scipy` and need to be installed with, e.g., `pip`.
### Colcon Build
Having all dependencies installed, FGSP can be built with
```
colcon build
```
The server then runs `graph_monitor.py` (see `launch/graph_monitor.launch` for an example) while the clients runs `graph_client.py` (see `launch/robots/local_client.launch` for an example).
For actual robot deployments, the client configuration needs to be adapted per robot.
### Docker Build
Ensure that you have `docker` installed
```
sudo apt install docker.io docker
```
Run the deployment script that builds the image and makes it available to the local Docker daemon:
```
./deploy/build_docker.sh
```
Run files can be found in the `script/` folder.
For example, for running the graph monitor on the server side:
```
./script/run_graph_monitor
```
## Reference
Our paper is available at
*Bernreiter, Lukas, Shehryar Khattak, Lionel Ott, Roland Siegwart, Marco Hutter, and Cesar Cadena. "Collaborative Robot Mapping using Spectral Graph Analysis." In The International Journal of Robotics Research
, 02783649241246847.* [[Link](https://journals.sagepub.com/doi/full/10.1177/02783649241246847)]
BibTex:
```
@article{bernreiter2024framework,
title={A framework for collaborative multi-robot mapping using spectral graph wavelets},
author={Bernreiter, Lukas and Khattak, Shehryar and Ott, Lionel and Siegwart, Roland and Hutter, Marco and Cadena, Cesar},
journal={The International Journal of Robotics Research},
pages={02783649241246847},
year={2024},
publisher={SAGE Publications Sage UK: London, England}
}
```
and
*Bernreiter, Lukas, Shehryar Khattak, Lionel Ott, Roland Siegwart, Marco Hutter, and Cesar Cadena. "Collaborative Robot Mapping using Spectral Graph Analysis." In 2022 IEEE International Conference on Robotics and Automation (ICRA), IEEE, 2022.* [[Link](https://ieeexplore.ieee.org/document/9812102)] [[ArXiv](https://arxiv.org/abs/2203.00308)]
BibTex:
```
@inproceedings{bernreiter2022collaborative,
author={Bernreiter, Lukas and Khattak, Shehryar and Ott, Lionel and Siegwart, Roland and Hutter, Marco and Cadena, Cesar},
booktitle={2022 International Conference on Robotics and Automation (ICRA)},
title={Collaborative Robot Mapping using Spectral Graph Analysis},
year={2022},
pages={3662-3668},
doi={10.1109/ICRA46639.2022.9812102}
}
```