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 is written in
C++
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
Quick Start
The library is available as a pip
package. To install the package, run the following command:
pip install coverage_control
See Installation for more details on installation.
See Quick Start guide for a quick introduction to the library.
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.1.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1079bc05e7b217976af5b45de986741459bc4579f8a7206c85c2895b261fc911 |
|
MD5 | 745f6d990e1cca41fa31f9d314ca9890 |
|
BLAKE2b-256 | 902a2844ff3f3f2cfbc5ea3f8df0e412a2d42ac3aba7809e9c3953be62ade87a |
Hashes for coverage_control-1.1.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3a2660d4e08167c0162f31fb26f972172acff23182424a9366b261b3c2c0202 |
|
MD5 | b8eb9d127001a02f57de9c84b8e4007d |
|
BLAKE2b-256 | a7f6b6d01769e94970a479e0f085a237e5267af8439c0cd97d7e28a4268f1784 |
Hashes for coverage_control-1.1.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d9cd6b9c71f728d4bce89e5b63fc39956ce2183a744ee32698fe4968a90df90 |
|
MD5 | f2407b22b70a1a4b62b2e6f9edde0e06 |
|
BLAKE2b-256 | acd82105498e87f4a03322e9ea211d700d8fb1dd5f9ac6b63682b1a931991791 |