# UAV Deployment Using Two Levels of Stigmergy for Unstructured Environments
## 3 Methods
### Slant Beacon Deployment (SLABE)
#### 3.2.3 Role Description  
This section will detail the behavior of _slant beacon deployment_ (SLABE) and the roles required to develop it. Initially, the role of _active_ robots, which are responsible for the reconnaissance phase of the environment, will be described to review the role of _repaters_ or _beacon_ robots, which are mainly responsible for providing the communication and stigmergy mechanisms required by the swarm. Active  
The main purpose of active robots is to explore the environment. Therefore, this behavior has a high energy cost as it requires robots to fly over the environment to develop the deployment behavior. The behavior of these individuals is defined in Figure 4.  
Initially, the active robots (which we will also call explorers) will proceed to determine, through their communication beacons, which drones are close to them (i.e., which drones are within their range of communication). As previously mentioned, the support technology can be Bluetooth Low Energy. Once all the nearby robots are identified, the nearest neighbor will be calculated (for example, using the RSSI signal strength, or for more accuracy, the BLE location protocol). To implement this behavior, we require that our communication system allows the determination of at least three ranges of distance or signal reliabilities: maximum efficiency in communication (near), stable communication (medium), and communication limit (far). If the vehicle is within a close range (_in_range_ in Figure 4), then it will proceed to include the angle recommended by that neighbor _beacon_ to the path to be performed by the robot. However, the vehicle may not detect a nearest neighbor within the limit of communication or, for any particular failure, it may not detect any nearby neighbor. In either case, the robot will change roles and become a _repeater_. Before reaching the limit communication margin, a communication distance is output (_exit_range_ is established in the diagram). If the nearest neighbor is close to that distance, the _active_ robot communicates its current angle (obtained by its onboard compass), which will be stored in the neighbor _repeater_ robot. As we will see later, the purpose of communicating this angle is to determine which angles of exit in this area of the environment make it possible to achieve better deployments. A robot may also become a repeater if it is at a certain battery threshold, in which case, it does not have to fulfill the above conditions. The movement of the _active_ robot will be determined mainly by its onboard collision sensors (for example, using visual navigation or range sensors) and by the angle recommendations of its nearest neighbor. If deployment strategies that allow for the coexistence of several _active_ robots are  
Figure 3: State diagram for each of the deployment strategies used in this article. Note that the linear-temporal incremental deployment (LTID) strategy is a special case of fixed group incremental deployment (FGID) when _max_allowed_ equals the number of swarm agents. tested, the robots can have collision-avoidance mechanisms, which should also be taken into account when planning their movement. \[\mathbf{\tilde{v}} =\mathbf{vangle}(\mathrm{draw}(P(\Lambda_{B_{t}}^{\hat{p}}))) \tag{1}\] \[\mathbf{f}_{t+1}^{\prime} =-\alpha_{1}\sum_{l=1}^{|\mathcal{O}_{t}^{\prime}|}(o_{i}-\mathbf{ pos}(r_{t}))+\alpha_{2}\cdot\mathbf{\tilde{v}}\Lambda_{h_{t}}^{\hat{r}}+ \alpha_{3}\cdot\mathbf{f}_{t}^{\prime}\mathcal{N}(\mu,\sigma) \tag{2}\]  
Equation (1) shows how the velocity vector \(\mathbf{f}_{t+1}^{\prime}\) of a vehicle \(r\) is established by executing the _SLABE_ behavior at instant \(t+1\). The position of the robot \(\mathbf{pos}(r_{t})\) and the position of the obstacles detected by the drone are taken into account, where each detected position \(i\) is a coordinate vector \(\mathbf{o}_{i}\) that is stored in a set of obstacles detected by robot \(r\) at time \(t\) (\(\mathbf{o}_{i}\in\mathcal{O}_{t}^{\prime}\)).