# Virtual Pheromone Based Network Flow Control For Modular Robotic Systems
## 4 Experiments and Results
### Preliminary Results  
**Neighbourhood discovery & awareness:** In this section, we demonstrate the neighbourhood discovery & awareness and link maintenance processes between the building blocks. Figure 4: **moreBot—an affordable multi-modal modular robotic platform for education and entertainment. **  
In general, robotic modules gather information of its immediate neighbours to establish the neighbourhood communication between them. We used color from the RGB LEDs to indicate the number of physical connections or communication channels of the building blocks. Blinking _Red_ indicates unconnected blocks while steady _Blue_, _Green_, _Cyan_, _Yellow_, _Magenta_ or _White_ indicate number of neighbourhood connections from 1 to 6, respectively. To illustrate the effectiveness of the neighbourhood discovery & awareness, a random morphology is constructed in Figure 5. At the initial stage as shown in Figure 5a, five blocks were in _free_ state while they were blinking in _Red_. The robotic blocks recognized its neighbours only when they were physically connected. As soon as the block discovered a neighbour, its color changes accordingly to indicate the current state. As depicted in Figure 5b, those blocks were in steady _Blue_ because they had one immediate neighbour while the middle one displayed _Green_ as it recognized the second neighbour. At the third stage, we joined two isolated chains of building blocks together to make an united network with three terminals as seen in Figure 5c. One block turned to _Cyan_ because it had found three neighbours. Finally, when we disconnected one block as shown in Figure 5d, the isolated block turned to blinking _Red_ because it lost all neighbours while its former neighbour turned from _Cyan_ to _Green_ as it only had two neighbours. In the physical layer, the standard data frame 8N1 consisting of 8-bit data, non-parity, and 1 stop bit is used. We temporarily excluded the error checking function in this experiment. Table 2 shows parameter setting of the communication process. \begin{table}
\begin{tabular}{l l} \hline \hline
**Communication Parameters** & **Value** \\ \hline USART Baud-rate & 19,200 \\ \hline Closing time _tc_ & 1.8 ms \\ \hline Processing time _(free_ state) _t_w1 & 300 ms \\ \hline Processing time _(busy_ state) _t_w2 & 700 ms \\ \hline Processing time (link maintenance) _t_w3 & 1100 ms \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Communication parameters setting. Figure 5: Demonstration of the neighbourhood awareness process. (**a**) Blocks are in free state, blinking in _Red_. (**b**) Different number of neighbours is shown in different colors. (**c**) Joining two chains of blocks. (**d**) Separation of a block, block states are updated and color is changed accordingly. In the second layer, we set \(t_{w1}\) to 300 ms for robotic modules in _free_ state. The \(t_{w1}\) is the average time between two consecutive discovery signals, which is also a processing time for a channel. A discovery signal is completely transmitted within 1.8 ms, which is the closing time \(t_{c}\). We configured the modules to send only one signal, equivalent to 0.6% of \(t_{w1}\) for reducing energy consumption. The probability for modules in _free_ state to discovery its neighbours with a single discovery signal is  
\[ \begin{split} P_{D1}&=P_{s}\times P_{r}\times F_{ tr}\\ &=\frac{1}{N}\times(1-\frac{t_{c}}{t_{w1}})\\ &=1/6\times(1-1.8/300)=1/6\times 0.994\\ &\approx 0.167\end{split}  \tag{14}\]  
When a robotic module transmits a signal, its receiving channels must be closed to avoid infra-red reflection and interference. Thus the time it needs to complete sending a signal is also its closing time \(t_{c}\). Beside, all the robots are identical so \(t_{c}\) is similar to all the modules. The neighbourhood discovery process continues with the unoccupied channels of the building blocks at greater time interval \(t_{w2}\) to maximize the time slot for data communication and minimize the power consumption.