# Three-Dimensional Multi-Agent Foraging Strategy Based on Local Interaction
## 4 Assumptions and Notation
Let \(\mathcal{N}(n_{i})\) indicate the neighbors of an agent \(n_{i}\). Let \(S(n_{i})\) define the sphere with radius \(r^{cs}\) that has its center located at \(n_{i}\). Here, \(S(n_{i})\) is called the _sensing sphere_ of \(n_{i}\). We assume that a puck inside \(S(n_{i})\) is detected by \(n_{i}\). Let \(\partial S(n_{i})\) specify the boundary of \(S(n_{i})\). On \(\partial S(n_{i})\), we uniformly generate \(Q\) points. For instance, we discuss the generation of \(Q=72\times 72\) points on \(\partial S(n_{i})\). (This method is utilized in Section 6). Let \(\phi\) denote the yaw angle such that \(\phi\in[\pi/36,2\times\pi/36,3\times\pi/36\ldots,2\pi]\). In addition, let \(\theta\) denote the elevation angle such that \(\theta\in[\pi/36,2\times\pi/36,3\times\pi/36\ldots,2\pi]\). We define \(\mathbf{fp}(\psi,\theta)\) as  
\[\mathbf{fp}(\psi,\theta)=\mathbf{R}(\psi,\theta)[r,0,0]^{T}. \tag{2}\]  
Here,  
\[\mathbf{R}(\psi,\theta)=\mathbf{R}(\psi)\mathbf{R}(\theta) \tag{3}\]where  
\[\mathbf{R}(\psi)=\left( \begin{array}{ccc}\cos(\psi)&-\sin(\psi)&0\\ \sin(\psi)&\cos(\psi)&0\\ 0&0&1\end{array} \right) \tag{4}\]  
and  
\[\mathbf{R}(\theta)=\left( \begin{array}{ccc}\cos(\theta)&0&\sin(\theta)\\ 0&1&0\\ -\sin(\theta)&0&\cos(\theta)\end{array} \right). \tag{5}\]  
In (4), \(\mathbf{R}(\psi)\) presents the rotation of angle \(\psi\) centered at the z-axis. In (5), \(\mathbf{R}(\theta)\) presents the rotation of angle \(\theta\) centered at the y-axis. As we add \(\mathbf{n}_{i}\) to \(\mathbf{fp}(\psi,\theta)\), we obtain the global position of a point on \(\partial S(n_{i})\). Note that \(\psi\) and \(\theta\) are respectively selected from among 36 values. Therefore, we derive \(Q~{}=~{}72~{}\times~{}72\) points on \(\partial S(n_{i})\). An _open point_ of \(n_{i}\) denotes a point among \(Q\) points of \(n_{i}\) such that a straight line segment connecting \(n_{i}\) and the point does not cross any obstacles. In practice, open points can be detected by an agent's local sensors with range \(r^{cs}\). For instance, lidar sensors on \(n_{i}\) can be used to derive the open points of \(n_{i}\). Consider a case where multiple sensing rays with range \(r^{cs}\) are emitted from an agent in order to sense its surroundings. As long as a ray does not cross an obstacle, it can travel a distance \(r^{cs}\). In this case, the ray is related to an open point. A _frontier point_\(F(n_{i})\) denotes an open point of \(n_{i}\) which exists outside \(S(n_{j})\) for all \(j\
eq i\). As \(Q\rightarrow\infty\), the density of frontier points on \(\partial S(n_{i})\) increases. Let _frontierInf_ define the set of frontier points as \(Q\rightarrow\infty\). A frontierInf is on the border between \(\bigcup_{i\in\{1,2,\ldots,N\}}S(n_{i})\) and an open space covered by no sensing spheres. If every agent has no frontierInf, then all agents' sensing spheres cover the entire open space. Assumptions for Each AgentEvery agent \(n_{i}\) (\(i\in\{1,2,\ldots,N\}\)) is assumed to satisfy the following:  
1. \(n_{i}\) measures the relative position of its neighbor agent with its local sensors;
2. \(n_{i}\) stores the relative position of its frontier point in \(F(n_{i})\);
3. Every puck inside \(S(n_{i})\) is detected by \(n_{i}\). We consider an agent which can measure the relative position of its neighbor agent utilizing proximity sensors. For example, an agent \(n\) emits signal pings for measuring its neighbor agent. Suppose that the pings emitted from \(n\) are reflected from its neighbor agent, say, \(m\in\mathcal{N}(n)\). In this case, \(n\) can estimate the elevation angle, azimuth angle, and range to \(m\) through the 3D multiple signal classification (MUSIC) algorithm [40]. Therefore, Assumption (A1) is viable. We next show that Assumption (A2) is viable. Recall that a frontier point \(F(n_{i})\) denotes an open point of \(n_{i}\), which exists outside \(S(n_{j})\) for all \(j\
eq i\).