Skip to content

Commit 2868de5

Browse files
committed
Added topology manipulation supplementary material
1 parent d058c64 commit 2868de5

1 file changed

Lines changed: 188 additions & 0 deletions

File tree

Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
<!--
2+
.. title: Local Topology Manipulation - Supplementary Material
3+
.. slug: 2022/TopologyManipulation
4+
.. date: 2022-09-26 13:45:07 UTC-04:00
5+
.. tags:
6+
.. category:
7+
.. link: https://mistlab.ca/papers/2022/TopologyManipulation
8+
-->
9+
10+
11+
12+
# Supplementary Material
13+
14+
We provide extra information for the experiments and results in the paper.
15+
16+
<!-- \section{Appendix}\label{Appendix}
17+
In this section, we provide extra information required for replicating the results in Section~\ref{sec:Exp} and the simulation codes are available on our repository\footnote{\href{https://git.mistlab.ca/skarthik/local-operations-on-trees}{https://git.mistlab.ca/skarthik/local-operations-on-trees}}. -->
18+
19+
20+
## Decentralised rules for robots to form Line and star
21+
***
22+
23+
### 1. Line formation
24+
25+
The line topology is a special topology, where all the robots have either one neighbor (the ends of the line) and all other robots have two neighbors. The rules that the robots have to follow to form a line are:
26+
27+
* Robots with **degree(robot)>2** to be called Leaf transferer will do a random leaf transfer or super leaf transfer operation. For this they need at least two of their neighbors to be free (i.e., not involved in any other operation). To avoid getting caught in loops the leaf/super leaf remembers the previous leaf transferer and passes this information to the current leaf transferer. The leaf transferer, therefore, doesn't transfer the leaf or super leaf to the previous leaf transferer.
28+
29+
* Robots with exactly two neighbors try to straighten the angle between their neighbors by moving towards a direction so as to reduce the obtuse angle.
30+
31+
The parameters used for line formation experiment are $R_{transfer} = 1m$, *R_{mission} = 1.5m*, $R_{range} = 2.5m$.
32+
33+
***
34+
35+
### 2. Star formation
36+
We consider a single root star formation. In star topology, all the robots except the root have one neighbor and the root has $N-1$ neighbors. The rules that the robots have to follow to form a line are:
37+
38+
* Each robot connected to the root with more than one neighbor is called a leaflizer, which leaflizes with the root by transferring all its neighbors to the root.
39+
* The root calculates the angles between its leaves and informs them about the direction to make these angles equal.
40+
41+
This table shows the parameters used in the star formation experiments.
42+
43+
No of robots | $R_{range}$(m) | $R_{transfer}$(m) | $R_{Mission}$ |
44+
------------- | ------------- | ------------- | ------------- |
45+
15 | 2.5 | 1 | 1.5 |
46+
30 | 5 | 2 | 3 |
47+
60 | 10 | 4 | 6 |
48+
49+
***
50+
51+
## Verification of Theorem and Lemma
52+
53+
54+
### An example for conversion from one tree to another tree with Prufer Sequence
55+
56+
This shows an example as to how to use the prufer sequences and the operations to converrt from any initial tree to final tree.
57+
58+
![Example-12](https://user-images.githubusercontent.com/47322496/179253692-27db898f-b635-484e-ba93-de5220ed956e.png)
59+
60+
***
61+
62+
### `test_theorem.ipynb`
63+
64+
In order to verify transformation of trees, we implemented a script in python which verifies the conversion of all possible topologies for a swarm of size 10 to a specific random topology. We also verify that from a random topology it is possible to convert to all other possible topologies.
65+
66+
***
67+
68+
### `test_theorem_line_star.ipynb`
69+
70+
71+
We also have verified this algorithm in a python script where starting from any random topology we were able to form a star/line for a swarm of size 10 for all the possible $10^8$ combinations.
72+
73+
***
74+
75+
## Supplementary plots for the experiments
76+
77+
![DARS2022_paper_9102-2-10(1)](https://user-images.githubusercontent.com/47322496/190194702-f57e9ee3-b5fd-492a-ba48-8d9bb8b18aff.png)
78+
![DARS2022_paper_9102-2-11(1)](https://user-images.githubusercontent.com/47322496/190194705-6338c10d-d549-4aae-845b-ff5c8a79aaa7.png)
79+
80+
% Figures~\ref{fig:line_formation} and \ref{fig:star_formation} depict
81+
% $\lambda_2$, coverage area, and progress of operations. We plot the time
82+
% evolution of $\lambda_2$ of the graph and the maintained spanning tree, as a connectivity index and a parameter specifying consensus rate.
83+
84+
% The evolution of the number of nodes with $\text{degree(robot)}=1$ (i.e., having only one
85+
% neighbor) and $\text{degree(robot)}=2$ is sketched for the line formation and
86+
% the evolution of the number of nodes with $\text{degree(robot)}=1$ and nodes
87+
% with $\text{degree(robot)}\geq2$ for the star formation, which is a progress
88+
% index in each case. The $\lambda_2$ of the manipulated spanning tree and the
89+
% whole graph examine the connectivity awareness of our method which has to stay
90+
% greater than zero over the experiment. In the specific case of line, $\lambda_2$
91+
% of the tree reduces with time and reaches a constant value when the line has
92+
% been straightened out. Also, $\lambda_2$ of the graph will approach the same
93+
% value, if $R_{\text{mission}}$ is close to $R_{\text{range}}$, which is the minimum for a
94+
% given connected graph of $N$ nodes. However, In the case of the star topology,
95+
% $\lambda_2$ of the tree increases to a constant value of one at the end of the
96+
% experiment no matter the number of nodes in the system, and the $\lambda_2$ of
97+
% the graph increases. If $R_{\text{mission}}<R_{\text{range}}/2$ it would have approached an
98+
% all to all graph which has the maximum $\lambda_2$ for a given connected graph
99+
% of $N$ nodes. The coverage area has been shown to decrease for the star and to
100+
% increase for the line case which is showing the trade-off between $\lambda_2$
101+
% and the coverage area and that is why topology manipulation is needed to provide
102+
% flexibility. Furthermore, for the star formation, we have plotted the number of
103+
% nodes with $\text{degree(robot)}=1$ and the number of nodes with
104+
% $\text{degree(robot)}\geq2$. This is to show that the manipulation operations
105+
% are changing the topology closer to the star topology with time. The number of
106+
% nodes with $\text{degree(robot)}=1$ for the star case increases to $N-1$ and
107+
% there is exactly one node that has $N-1$ neighbors, which is the root. The plots
108+
% show the evolution of these metrics which is increasing for the number of nodes
109+
% with $\text{degree(robot)}=1$ and decreasing for the number of nodes with
110+
% $\text{degree(robot)}\geq2$. For line formation, we have shown a similar metric
111+
% that reduces to 2 for the number of nodes $\text{degree(robot)}=1$ and increases
112+
% to $N-2$ for the number of nodes $\text{degree(robot)}=2$ which is the
113+
% definition of a line topology.
114+
115+
116+
117+
118+
## Setting up the simlations for Line and Star in Argos3 and Buzz.
119+
120+
ARGoS3 Simulator ARGoS3 simulator can also be installed from binaries please refer to the official website for more information: https://www.argos-sim.info/
121+
The instructions below are for installing ARGoS3 from its source.
122+
Official code repository: https://github.com/ilpincy/argos3
123+
Dependencies for ARGoS3 can be installed using the following command:
124+
125+
```
126+
sudo apt-get install cmake libfreeimage-dev libfreeimageplus-dev \
127+
qt5-default freeglut3-dev libxi-dev libxmu-dev liblua5.3-dev \
128+
lua5.3 doxygen graphviz graphviz-dev asciidoc
129+
```
130+
131+
Installations for Argos3
132+
133+
```
134+
$ git clone https://github.com/ilpincy/argos3.git argos3
135+
$ cd argos3
136+
$ mkdir build_simulator
137+
$ cd build_simulator
138+
$ cmake ../src
139+
$ make
140+
$ sudo make install
141+
```
142+
143+
Installations for Buzz
144+
145+
```
146+
$ cd Buzz
147+
$ mkdir build
148+
$ cd build
149+
$ cmake ../src
150+
$ sudo make install
151+
$ sudo ldconfig
152+
```
153+
154+
Installations for Khepera V
155+
156+
```
157+
$ git clone https://github.com/ilpincyargos3-kheperaiv.git
158+
$ mkdir build_sim
159+
$ cd build_sim
160+
$ cmake -DCMAKE_BUILD_TYPE=Release ../src
161+
$ make
162+
$ sudo make install
163+
```
164+
165+
Building the loop function for ARGoS:
166+
167+
```
168+
$ cd files/loop_fun_src/
169+
$ mkdir build
170+
$ cd build/
171+
$ cmake ..
172+
$ make
173+
```
174+
175+
Building the buzz script.
176+
177+
```
178+
$ cd buzz_scripts
179+
$ bzzc leaf_transfer2.bzz/leaflize_15.bzz/leaflize_30.bzz/leaflize_60.bzz
180+
# for line/star_15/star_30/star_60
181+
```
182+
183+
```
184+
To run the Argos3 file.
185+
argos3 -c files/star.argos # for 15 robots
186+
argos3 -c files/line.argos # for 15 robots
187+
```
188+

0 commit comments

Comments
 (0)