# Quadrotor UAV Dynamic Visual Servoing Based on Differential Flatness Theory
## 4 Simulation Results
### Proposed Algorithm Performance Related to the FOV Constraint  
Since we are in a simulated environment, in order to generate the displacements necessary for the quadrotor to ensure the pursuit of a vehicle (target), we must propose a model for this vehicle. This model will be used to generate the trajectory of a point in the image plane with variable dynamics. We seek to prove that the proposed approach generates a trajectory for the quadrotor that fully copies the dynamics of the vehicle (target) without a priori knowledge of this dynamic. The only knowledge available is that of the instantaneous position (as well as the history of this position) in pixels of the point \(p\) of the vehicle (target). This vehicle is a car-type vehicle, as is described by Figure 4. We assume that this vehicle is located just below the quadrotor and that it starts to move according to the following kinematic model:  
\[\left\{\begin{array}{l}\dot{x}_{v}=v_{v}cos(\theta_{v})\\ \dot{y}_{v}=v_{v}sin(\theta_{v})\\ \dot{\theta}_{v}=\omega_{v}\end{array}\right. \tag{36}\]  
where \(v_{v}\) is the linear speed of the vehicle given by \(v_{r}=\frac{r}{4}(\omega_{1}+\omega_{2})\) and \(\omega_{v}\) is the angular speed of the vehicle given by \(\omega_{v}=\frac{r}{2R}(\omega_{2}-\omega_{1})\).  
The position of the vehicle is given by \(X_{v}=[x_{v},y_{v},\theta_{v}]^{T}\). The two control inputs are \(v_{v}\) and \(\omega_{v}\). \((x_{v},y_{v})\) represent the abscissa and the ordinate of the middle of the axis of the two driving wheels. \(\theta_{v}\) represents the orientation of the vehicle. \(\omega_{1}\) and \(\omega_{2}\) are the speeds of the two driving wheels. \(R\) is the distance between the two wheels, and \(r\) is the diameter of a wheel. The movement of the vehicle is managed by the two rotational speeds (\(\omega_{1}\), \(\omega_{2}\)) of the two driving wheels. In order to achieve any movement at variable speed and orientation and to ensure a variation of the linear velocities of translation and the angular velocities of rotation, we have chosen \((\omega_{1},\omega_{2})\), as follows:  
\[\left\{\begin{array}{l}\omega_{1}(t)=20\sin(0.2\pi t)\\ \omega_{2}(t)=20\sin(0.22\pi t)\end{array}\right.,\text{ for }t\in[0,\ 120 \text{s}]. \tag{37}\]  
In order to facilitate the detection of the descriptor point of the target object (the vehicle), we have chosen the center of gravity of the vehicle's hood. Our objective is to keep the vehicle (target) centered in the image plane of the quadrotor camera throughout its movement. So that the coordinates of this point are not largely affected by displacements along the \(Z\)-axis, it is better that this point is on the horizontal axis, which passes through the center of projection, and that it is not confused with the throwing center. Indeed, the center of projection is invariant with respect to the rotation along the \(Z\)-axis. The desired image that must be satisfied throughout the movement of the vehicle is given in Figure 5.  
Figure 4: Considered car-type vehicle (target).  
The simulation results are given in Figure 6. Figure 6a-d illustrate the displacement along the \(X\)- and \(Y\)-axes as well as the orientation along the \(Z\)-axis, both real and generated by the visual servo loop. Figure 6e-g show linear translational velocities and angular rotational velocities, respectively. It is clear that despite variations in vehicle speed, the desired trajectory is followed perfectly. Figure 6h shows the continuous detection of point \(P\) in the image plane along the trajectory. It is obvious that the object always remains in the field of view of the camera. In a practical situation, it would be possible to adjust the altitude of the quadrotor to widen the field of view because our method allows this variable (the altitude) to be independently controlled from the others.  
Figure 5: Desired image.  
Figure 6: _Cont._