Skip to content

Commit c723015

Browse files
Saurav AgarwalSaurav Agarwal
authored andcommitted
Linting and doc update
1 parent 23611cf commit c723015

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1507
-1062
lines changed

.github/workflows/cd.yml

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,27 @@ jobs:
1212
uses: actions/checkout@v4
1313
- name: Free Disk Space (Ubuntu)
1414
uses: jlumbroso/[email protected]
15-
# - name: 'CI docker base'
16-
# uses: ./.github/docker-base-action
17-
# with:
18-
# base_tag: pytorch2.2.1-cuda12.3.1-ros2humble
19-
# github_token: ${{ secrets.GITHUB_TOKEN }}
20-
# - name: cleanup
21-
# run: docker system prune -a -f
22-
# - name: 'CI docker base'
23-
# uses: ./.github/docker-base-action
24-
# with:
25-
# base_tag: pytorch2.2.1-ros2humble
26-
# github_token: ${{ secrets.GITHUB_TOKEN }}
27-
# - name: cleanup
28-
# run: docker system prune -a -f
29-
# - name: 'CI docker base'
30-
# uses: ./.github/docker-base-action
31-
# with:
32-
# base_tag: pytorch2.2.1-cuda12.3.1
33-
# github_token: ${{ secrets.GITHUB_TOKEN }}
34-
# - name: cleanup
35-
# run: docker system prune -a -f
15+
- name: 'CI docker base'
16+
uses: ./.github/docker-base-action
17+
with:
18+
base_tag: pytorch2.2.1-cuda12.3.1-ros2humble
19+
github_token: ${{ secrets.GITHUB_TOKEN }}
20+
- name: cleanup
21+
run: docker system prune -a -f
22+
- name: 'CI docker base'
23+
uses: ./.github/docker-base-action
24+
with:
25+
base_tag: pytorch2.2.1-ros2humble
26+
github_token: ${{ secrets.GITHUB_TOKEN }}
27+
- name: cleanup
28+
run: docker system prune -a -f
29+
- name: 'CI docker base'
30+
uses: ./.github/docker-base-action
31+
with:
32+
base_tag: pytorch2.2.1-cuda12.3.1
33+
github_token: ${{ secrets.GITHUB_TOKEN }}
34+
- name: cleanup
35+
run: docker system prune -a -f
3636
- name: 'CI docker base'
3737
uses: ./.github/docker-base-action
3838
with:

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ See full documentation at [https://KumarRobotics.github.io/CoverageControl/](htt
44

55
Coverage control is the problem of navigating a robot swarm to collaboratively monitor features or a phenomenon of interest not known _a priori_.
66
The library provides a simulation environment, algorithms, and GNN-based architectures for the coverage control problem.
7-
<img align="right" width="300" src="doc/graphics/LPAC.gif">
7+
<img align="right" width="300" src="https://github.com/KumarRobotics/CoverageControl/blob/main/doc/graphics/LPAC.gif">
88

99
**Key features:**
1010
- The core library `CoverageControlCore` is written in `C++` and `CUDA` to handle large-scale simulations
@@ -34,7 +34,7 @@ The library provides a simulation environment, algorithms, and GNN-based archite
3434
> arXiv preprint arXiv:2401.04855 (2024).
3535
3636

37-
## Open Source Libraries Dependency
37+
## Acknowledgements
3838
- [PyTorch](https://pytorch.org/)
3939
- [PyTorch Geometric](https://pytorch-geometric.readthedocs.io/en/latest/)
4040
- [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page)

doc/Doxyfile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,20 @@
33

44
PROJECT_NAME = "Coverage Control Library"
55
PROJECT_NUMBER = $(GIT_TAG)
6+
EXTRACT_STATIC = YES
67
USE_MDFILE_AS_MAINPAGE = doc/manual/README.md
78
INPUT = doc/manual/README.md \
89
doc/manual/ref_manual.txt \
910
doc/manual/installation.md \
1011
doc/manual/quick_start.md \
11-
doc/manual/coverage-control.md \
1212
doc/manual/lpac.md \
13+
doc/manual/coverage-control.md \
1314
cppsrc/core \
1415
params \
1516
cppsrc/main/coverage_algorithm.cpp \
16-
python/coverage_control
17+
python/coverage_control \
18+
python/scripts \
19+
python/utils
1720
EXCLUDE = doc/cppsrc/torch doc/cppsrc/main/torch
1821
OUTPUT_DIRECTORY = doc/
1922
LAYOUT_FILE = doc/config/DoxygenLayout.xml
@@ -22,4 +25,4 @@ IMAGE_PATH = doc/graphics
2225
HTML_EXTRA_FILES += doc/graphics/LPAC.gif doc/graphics/coveragecontrol_global.png doc/graphics/learnable_pac.png
2326
FILTER_PATTERNS = "*.md=python doc/bash-filter.py" *.py=doc/py-filter.sh
2427
ALIASES += repo_owner_lower="kumarrobotics"
25-
ALIASES += docker_cr="ghcr.io/kumarrobotics/testdoc"
28+
ALIASES += docker_cr="ghcr.io/kumarrobotics/coveragecontrol"

doc/manual/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ The library provides a simulation environment, algorithms, and GNN-based archite
4141
> arXiv preprint arXiv:2401.04855 (2024).
4242
4343

44-
## External Dependencies
44+
## Acknowledgements
4545
- [PyTorch](https://pytorch.org/)
4646
- [PyTorch Geometric](https://pytorch-geometric.readthedocs.io/en/latest/)
4747
- [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page)

doc/manual/coverage-control.md

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
\page coverage-control-problem Problem Statement
1+
\page coverage-control-problem Theoretical Background
22
\tableofcontents
33

4+
# Coverage Control Problem
45
## Introduction
56
Coverage control is the problem of navigating a robot swarm to collaboratively monitor features or a phenomenon of interest not known _a priori_.
67
The goal is to provide sensor coverage based on the importance of information at each point in the environment.
@@ -63,3 +64,38 @@ In such a setting, a coverage control algorithm needs to provide the following b
6364
Designing such decentralized algorithms is challenging and can be intractable for complex systems.
6465
This motivates us to use a learning-based approach to design a decentralized coverage control algorithm.
6566
The \ref lpac with GNN addresses the above challenges and provides a scalable and robust solution to the problem.
67+
68+
------
69+
70+
# LPAC Architecture
71+
72+
## Navigation of Robot Swarms
73+
Navigating a swarm of robots through an environment to achieve a common collaborative goal is a challenging problem, especially when the sensing and communication capabilities of the robots are limited.
74+
These problems require systems with high-fidelity algorithms comprising three key capabilities: perception, action, and communication, which are executed in a feedback loop, i.e., the Perception-Action-Communication (PAC) loop.
75+
To seamlessly scale the deployment of such systems across vast environments with large robot swarms, it is imperative to consider a decentralized system wherein each robot autonomously makes decisions, drawing upon its own observations and information received from neighboring robots.
76+
77+
## The Challenge
78+
Designing a navigation algorithm for a decentralized system is challenging.
79+
The robots perform perception and action independently, while the communication module is the only component that can facilitate robot collaboration.
80+
Under limited communication capabilities, the robots must decide _what_ information to communicate to their neighbors and _how_ to use the received information to take appropriate actions.
81+
The motivation of designing this library is to study the coverage control problem as a canonical problem for the decentralized navigation of robot swarms.
82+
We develop the learnable PAC (LPAC) architecture that can learn to process sensor observations, communicate relevant information, and take appropriate actions.
83+
84+
## Architecture
85+
The learnable Perception-Action-Communication (LPAC) architecture is composed of three different types of neural networks, one for each module of the PAC system.
86+
1. In the perception module, a convolution neural network (CNN) processes localized IDF observations and generates an abstract representation.
87+
2. In the communication module, a GNN performs computation on the output of the perception module and the messages received from neighboring robots.
88+
It generates a fixed-size message to communicate with the neighbors and aggregates the received information to generate a feature vector for the action module of the robot.
89+
3. In the action module, a shallow multilayer perceptron (MLP) predicts the control actions of the robot based on the feature vector generated by the GNN.
90+
91+
\htmlonly
92+
<img class="center" style="width: 80%; margin-left: auto; margin-right: auto;" src="learnable_pac.png"/>
93+
<figcaption>Learnable Perception-Action-Communication (LPAC) architecture:
94+
The three modules are executed on each robot independently, with the GNN in the communication module facilitating collaboration between robots.
95+
</figcaption>
96+
\endhtmlonly
97+
98+
> [LPAC: Learnable Perception-Action-Communication Loops with Applications to Coverage Control.](https://doi.org/10.48550/arXiv.2401.04855)
99+
> Saurav Agarwal, Ramya Muthukrishnan, Walker Gosrich, Vijay Kumar, and Alejandro Ribeiro.
100+
> arXiv preprint arXiv:2401.04855 (2024).
101+

doc/manual/installation-from-source.md

Lines changed: 0 additions & 88 deletions
This file was deleted.

0 commit comments

Comments
 (0)