## 5 Multi-Drone Guidance Law
### Guidance Law of the Virtual Agent  
Using the predicted 3D coordinates of the target, the virtual agent is guided to remain in the lineState. At every sample-index \(k\), the virtual agent is guided to head towards the _guidance point_\(\mathbf{g}_{k}\), which is defined as follows:  
1. Suppose that \(\|\mathbf{r}_{k}^{s}-\mathbf{r}_{0,k}\|<\beta\). This implies that the ship needs to expel the virtual agent away from the ship. Moreover, suppose that  
\[\|\mathbf{r}_{0,k}-\mathbf{c}_{k}\|\leq v_{max}*T \tag{21}\]  
holds. Then, we set the guidance point as  
\[\mathbf{g}_{k} = \mathbf{c}_{k}+\frac{\mathbf{r}_{k+1}^{t}-\mathbf{c}_{k}}{\| \mathbf{r}_{k+1}^{t}-\mathbf{c}_{k}\|}*\delta_{k}. \tag{22}\]  
Here, \(\delta_{k}>0\) is defined as  
\[\delta_{k}=\sqrt{(v_{max}*T)^{2}-\left(\|\mathbf{r}_{0,k}-\mathbf{c}_{k}\| \right)^{2}}. \tag{23}\]  
This implies that \(\|\mathbf{g}_{k}-\mathbf{r}_{0,k}\|\) is \(v_{max}*T\). See Figure 1 for an illustration of this case. 2. Otherwise, we set the guidance point as  
\[\mathbf{g}_{k} = \mathbf{c}_{k}. \tag{24}\]  
At every sample-index \(k\), the virtual agent moves to reach \(\mathbf{g}_{k}\) if possible. Suppose that \(\|\mathbf{r}_{k}^{s}-\mathbf{r}_{0,k}\|<\beta\). Furthermore, suppose that Equation (21) holds, as depicted in Figure 1. Consider a sphere centered at \(\mathbf{r}_{0,k}\), whose radius is \(v_{max}*T\). Using Equation (21), \(\bar{L}_{k+1}\) meets this sphere at two points. Between these two points, \(\mathbf{g}_{k}\) is the point that is closer to \(\mathbf{r}_{k+1}^{t}\). In this way, the virtual agent can approach the target while staying on the line segment that connects the target and the ship. The direction command \(\mathbf{u}_{0,k}\) is selected to make the virtual agent move towards \(\mathbf{g}_{k}\) at sample-index \(k+1\). At every sample-index \(k\), the direction command is set as follows. _At every sample-index \(k\), the virtual agent sets the new direction command \(\mathbf{u}_{0,k}\) as_  
\[\mathbf{u}_{0,k}=\frac{\mathbf{g}_{k}-\mathbf{r}_{0,k}}{\|\mathbf{g}_{k}- \mathbf{r}_{0,k}\|}. \tag{25}\]  
Note that the direction command is a unit vector. In addition, the speed command at sample-index \(k\) is set as follows. _At every sample-index \(k\), the virtual agent sets the new speed command \(v_{0,k}\) as_  
\[v_{0,k}=min(\frac{\|\mathbf{g}_{k}-\mathbf{r}_{0,k}\|}{T},v_{max}). \tag{26}\]  
This implies that the virtual agent moves with the maximum speed \(v_{max}\) when it is too far from the guidance point \(\mathbf{g}_{k}\). Consider the situation in which \(\|\mathbf{r}_{0,k}-\mathbf{r}_{k+1}^{t}\|<v_{max}*T\) holds. In this situation, the virtual agent heads towards \(\mathbf{r}_{k+1}^{t}\) directly while not using the direction command \(\mathbf{u}_{0,k}=\frac{\mathbf{g}_{k}-\mathbf{r}_{0,k}}{\|\mathbf{g}_{k}- \mathbf{r}_{0,k}\|}\). In this way, the target is caught at sample-index \(k+1\). According to the definitions of the guidance point \(\mathbf{g}_{k}\) (see Equations (22) and (24)), \(\mathbf{g}_{k}\) lies on \(l(\mathbf{r}_{k+1}^{s},\mathbf{r}_{k+1}^{s})\). In the case where \(\frac{\|\mathbf{g}_{k}-\mathbf{r}_{0,k}\|}{T}\leq v_{max}\), the heading command (Equation (25)) and speed command (Equation (26)) lead to  
\[\mathbf{r}_{0,k+1}=\mathbf{g}_{k}. \tag{27}\]  
We thus have the following theorem. **Theorem 1**. : _Suppose that \(\frac{\|\mathbf{c}_{k}-\mathbf{r}_{0,k}\|}{T}\leq v_{max}\). The heading command (Equation (25)) and speed command (Equation (26)) make \(\mathbf{r}_{0,k+1}\) exist on \(l(\mathbf{r}_{k+1}^{t},\mathbf{r}_{k+1}^{s})\)._  
Theorem 1 implies that in the case where \(\frac{\|\mathbf{c}_{k}-\mathbf{r}_{0,k}\|}{T}\leq v_{max}\), the virtual agent position \(\mathbf{r}_{0,k+1}\) is on the line segment \(l(\mathbf{r}_{k+1}^{t},\mathbf{r}_{k+1}^{s})\). Since the target's goal is reaching the ship, the target must be hit by the virtual agent eventually. \(L_{k}\) and \(\bar{L}_{k+1}\) Meet at a Point  
Next, we consider a special case where \(L_{k}\) and \(\bar{L}_{k+1}\) meet at a point.