Library for large-scale coverage control using robot swarms
Project description
See full documentation at https://KumarRobotics.github.io/CoverageControl/
Introduction
Coverage control is the problem of navigating a robot swarm to collaboratively monitor features or a phenomenon of interest not known a priori.
The library provides a simulation environment, algorithms, and GNN-based architectures for the coverage control problem.
Key features:
- The core library
CoverageControlCore
is written inC++
andCUDA
to handle large-scale simulations - There are
python
bindings that interface with the core library - Several Centroidal Voronoi Tessellation (CVT)-based algorithms (aka Lloyd's algorithms)
- Learnable Perception-Action-Communication (LPAC) architecture for the coverage control problem is implemented in
PyTorch
andPyTorch Geometric
- GPU and CPU parallelization using
CUDA
andOpenMP
Citation
@article{agarwal2024lpac,
title = {LPAC: Learnable Perception-Action-Communication Loops with
Applications to Coverage Control},
author = {Saurav Agarwal and Ramya Muthukrishnan and
Walker Gosrich and Vijay Kumar and Alejandro Ribeiro},
year = {2024},
eprint = {2401.04855},
archivePrefix = {arXiv},
primaryClass = {cs.RO}
}
LPAC: Learnable Perception-Action-Communication Loops with Applications to Coverage Control.
Saurav Agarwal, Ramya Muthukrishnan, Walker Gosrich, Vijay Kumar, and Alejandro Ribeiro.
arXiv preprint arXiv:2401.04855 (2024).
Acknowledgements
- PyTorch
- PyTorch Geometric
- Eigen
- pybind11
- CGAL
- JSON for Modern C++
- CUDA Samples
- gnuplot-iostream
- hungarian-algorithm-cpp
- toml++
Support and Funding
The work was performed at the GRASP Laboratory and the Alelab, University of Pennsylvania, USA.
This work was supported in part by grants ARL DCIST CRA W911NF-17-2-0181 and ONR N00014-20-1-2822.
Contributors
- Saurav Agarwal
- Ramya Muthukrishnan
License
The library is licensed under the GPL-3.0 License. The documentation is not under the GPL-3.0 License and is licensed under the CC BY-NC-SA 4.0 License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for coverage_control-1.0.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 522dd5e3a16885cb672d04e35fc5c190c5114e414a75436c4389288208a0cc66 |
|
MD5 | 08f3823782a333540d0fc2b8e51e8fb3 |
|
BLAKE2b-256 | 35781b42ae639a2cd61cfb394f4458163a3d2e40c91384eb319bc1e22b25dd2e |
Hashes for coverage_control-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30c9940b1a14bbc1c987cf201e2f70c01402b7a8a825ec229295f42d22215b73 |
|
MD5 | 277a201d1010c03e1da986e90333cab7 |
|
BLAKE2b-256 | 91a97c86769dbd0820e93488c764bfb44c05694c30e24e0b99004ccfe23a6995 |
Hashes for coverage_control-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7dd150552e6cad7c1d09b2d2d9dd54459c07953523cd876d866011ceeb39d658 |
|
MD5 | dde8da9a9e461aaf3e76c643f068f9c2 |
|
BLAKE2b-256 | 619142b9e9be575ca99493183f475249706d8a3b12344ac71cbc6ee34cf5126a |