|
| 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 | + |
| 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 | + |
| 78 | + |
| 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