Landing control algorithm for gimbal-serviced UAVs based on field-of-view constraints
Wenlong Mao, Zhanxiang Li, Mingen Huo

TL;DR
This paper introduces a new landing control method for drones using a gimbal camera to improve accuracy and adaptability during autonomous landings.
Contribution
The novel approach integrates FOV constraints and a velocity observer for real-time motion estimation in gimbal-serviced UAVs.
Findings
The method improves landing accuracy and robustness in simulations.
The control strategy is theoretically sound, as confirmed by Lyapunov-based stability analysis.
The approach does not require external communication or infrastructure.
Abstract
This paper presents a robust and adaptive visual servoing-based landing control method for unmanned aerial vehicles (UAVs) equipped with a three-axis gimbal camera. To address the limitations of fixed-camera configurations, the proposed approach integrates pixel-level field-of-view (FOV) constraints and leverages the gimbal’s agility for enhanced visual tracking. The landing task is formulated as a constrained image-based control problem, where tracking errors of image features are rigorously bounded using prescribed performance functions. A velocity observer is incorporated to estimate the time-varying motion of the landing platform in real time, enabling accurate autonomous landing without relying on external communication or infrastructure. Lyapunov-based stability analysis confirms the theoretical soundness of the control strategy. Simulation results validate the effectiveness and…
Click any figure to enlarge with its caption.
Figure 10
Figure 11
Figure 12
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9- —the Research on Safety Separation for Integrated Helicopter and Logistics UAV Operations in Urban Inter-Building Airspace
- —the Regulatory and Safeguard System for Low-Altitude Security in Guangdong Province
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Vision and Imaging · Robotics and Sensor-Based Localization · Robotic Path Planning Algorithms
Introduction
Multi-rotor unmanned aerial vehicles (UAVs), valued for their flexibility, maneuverability, and ease of deployment^1,2^, have become essential tools for performing complex tasks in both military^3^ and civilian domains^4^. This has prompted a wide range of research concerning related UAV systems^5,6^ and their control architectures^7–9^. However, their high energy consumption and limited flight endurance constrain their operational capabilities^10^. The development of safe and reliable autonomous landing technologies^11^ enables UAVs to efficiently interface with dedicated landing platforms that provide energy replenishment and maintenance support, thereby significantly extending flight endurance and enhancing overall mission efficiency.
Vision-based autonomous landing control methods^1^, known for their high precision, low cost, and ease of implementation^12^, have shown strong potential in delivering reliable landing information in complex and unstructured environments. Consequently, considerable research efforts have been devoted to UAV landing control^13,14^.
To address underactuation and external disturbances in UAV systems, an adaptive robust control algorithm with dynamic compensation^15^ was proposed. This approach achieves precise position and attitude control during both horizontal and vertical tracking maneuvers, enabling stable landing operations in complex environments. Furthermore, a novel helical docking mechanism^16^ facilitates autonomous UAV-UGV separation and docking through collaborative information sharing, significantly enhancing the terrain adaptability of heterogeneous systems. Ship hull motion estimation via onboard cameras and nonlinear prediction^17^ enabled the decomposition of unmanned surface vessel (USV) periodic movement. This facilitated the implementation of a model predictive control (MPC) strategy for autonomous UAV landings on maritime platforms. Separately, an invariant ellipsoid theory-based control design^18^ quantified platform motion and environmental disturbances (e.g., wind, noise), enabling optimal gain tuning for smooth landing operations. An autonomous landing framework integrating GPS with vision-based navigation^19^ employs a visual guidance pipeline incorporating convex hull transformation, interference exclusion, ellipse fitting, and feature matching. Separately, a UAV-surface vessel cooperative landing system^20^ utilizes multi-ultrasonic joint localization and hierarchical guidance point generation to achieve stable recovery on dynamic maritime platforms. An adaptive tracking control scheme integrating backstepping with dynamic surface control^21^ guides UAVs to target-centered safe zones using monocular downward-facing vision, enabling precision landings. Concurrently, a mobile UAV relay station featuring a robotically-positioned landing platform^22^ employs external visual tracking to compensate for attitude deviations, facilitating stable landings under wind conditions reaching Beaufort scale 5.
Monocular vision systems have gained popularity in visual servoing for autonomous UAV landing owing to their cost-effectiveness and practical deployment advantages. However, when cameras are rigidly mounted on the UAV, their field of view becomes limited and often suffers from interference due to UAV motion and attitude variations. To mitigate this issue, researchers have turned to gimbal-mounted camera mechanisms. For instance, Chen et al.^23^ used GNSS to determine relative positioning, adjusting the gimbal angle, flight direction, and velocity, and implemented a Gimbal-Based Visual Servoing (GBVS) strategy to guide and execute landings. Wang et al.^24^ proposed a cooperative target-tracking framework combining gimbal cameras with multi-robot systems, leveraging an expanded field of view along with distributed Kalman filtering and swarm control to achieve collaborative mobile target tracking. Springer et al.^25^ developed a high-precision landing system employing a gimbal camera integrated with multi-sensor fusion. By utilizing wide-angle, zoom, and infrared imaging capabilities alongside visual AprilTag markers, their approach facilitated accurate landing under both daytime and nighttime conditions. Wang et al.^26^ introduced a nested landing target and detection algorithm paired with a monocular gimbal camera, enhancing both field of view and recognition reliability. Yoo et al.^27^ achieved integrated dynamic control of a multirotor UAV and gimbal camera via feedback linearization, dividing the landing sequence into horizontal and vertical phases and controlling motion using image coordinates of a single feature point, depth data, and UAV altitude. Cabecinhas et al.^28^ presented an integrated visual servoing method that actively regulates the gimbal to maintain features within the field of view, incorporating image feedback, pose estimation, and angular velocity compensation to attain stable landing control for quadrotor UAVs.
In summary, autonomous landing technology for UAVs plays a critical role in enhancing flight safety, extending mission duration, and expanding operational capabilities. Achieving autonomous landing requires a comprehensive approach that considers visual servo algorithms, estimation and compensation of landing platform motion, and overall system robustness.
Motivated by the above challenges, this paper proposes a vision-constrained gimbal-servo UAV landing control algorithm that leverages the dynamic responsiveness of a three-axis gimbal camera. The main contributions of this work are as follows:
- We formulate the UAV landing task as an image-based control problem with prescribed pixel-level FOV-constraints, thereby preventing feature-point loss and ensuring persistent visual feedback during descent.
- Unlike conventional fixed-camera approaches, the proposed method explicitly incorporates the agility of a three-axis gimbal into the controller design, which effectively enlarges the observable region and enhances tracking capability under platform motion disturbances.
- A coordinated control strategy that exploits the fast dynamics of the gimbal relative to the UAV body, enabling rapid visual tracking and enhancing overall system robustness.
Problem formulation
UAV system equations and variables
All coordinate systems in this paper follow the North-East-Down (NED) orientation convention: the positive X-axis points forward, the positive Y-axis points rightward, and the positive Z-axis points downward, orthogonal to the XOY plane, forming a right-handed coordinate system.
Four coordinate frames are introduced: the world frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{W\}$$\end{document} , which defines global position; the body-fixed frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{B\}$$\end{document} , whose origin is located at the UAV’s geometric center; the gimbal frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{G\}$$\end{document} , which initially coincides with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{B\}$$\end{document} ; and the camera frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{C\}$$\end{document} , which is aligned with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{G\}$$\end{document} . Without loss of generality, the centers of mass of the UAV, gimbal, and the camera’s optical center are assumed to be co-located. Based on these frame definitions, the UAV kinematics^29^ are described as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} &\dot{\textbf{p}}= \textbf{v} \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} &\dot{\varvec{\eta }}= \textbf{W}(\varvec{\eta }) \varvec{\omega }_b \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{p} = [x, y, z]^T$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{v} = [v_x, v_y, v_z]^T$$\end{document} represent position and linear velocity in the world frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{W\}$$\end{document} . The attitude vector \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\eta } = [\phi , \theta , \psi ]^T$$\end{document} denotes roll, pitch, and yaw angles, while \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\omega }_b = [\omega _x, \omega _y, \omega _z]^T$$\end{document} represents angular velocity in the body frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{B\}$$\end{document} . The transformation matrix \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{W}(\varvec{\eta })$$\end{document} is given as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \textbf{W}(\varvec{\eta }) = \begin{bmatrix} 1 & \sin \phi \tan \theta & \cos \phi \tan \theta \\ 0 & \cos \phi & -\sin \phi \\ 0 & \sin \phi / \cos \theta & \cos \phi / \cos \theta \end{bmatrix}. \end{aligned}$$\end{document}The rotation matrix from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{B\}$$\end{document} to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{W\}$$\end{document} , denoted \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{R}_b^w \in SO(3)$$\end{document} , is defined as follows^30^:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \textbf{R}_b^w = \begin{bmatrix} c\theta c\psi & c\psi s\theta s\phi - s\psi c\phi & c\psi s\theta c\phi + s\psi s\phi \\ c\theta s\psi & s\psi s\theta s\phi + c\psi c\phi & s\psi s\theta c\phi - c\psi s\phi \\ -s\theta & s\phi c\theta & c\phi c\theta \end{bmatrix} \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$c(\cdot ) = \cos (\cdot )$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s(\cdot ) = \sin (\cdot )$$\end{document} . The landing platform’s velocity and acceleration expressed in the camera frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{C\}$$\end{document} are denoted by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{V}_m$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\dot{\textbf{V}}_m$$\end{document} , respectively. Figure 1 illustrates the spatial relationship between the UAV, the landing platform, and their associated coordinate frames.Fig. 1. Relationship between UAV, landing platform, and coordinate frames.
Gimbal-camera system description
The three-axis gimbal configuration used in this study, illustrated in Fig. 2, consists of three rotational axes corresponding to yaw (outer frame), roll (middle frame), and pitch (inner frame). The gimbal orientation is described by the angle vector \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\eta }_g = [\phi _g, \theta _g, \psi _g]^T$$\end{document} , where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\phi _g$$\end{document} , \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\theta _g$$\end{document} , and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\psi _g$$\end{document} represent the roll, pitch, and yaw angles, respectively. These angular displacements are defined relative to the UAV body frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{B\}$$\end{document} rather than the world frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{W\}$$\end{document} .
The individual rotation matrices associated with the gimbal axes are defined as follows^31^:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \textbf{R}_{\text {out}}(\psi _g)&= \begin{bmatrix} \cos \psi _g & -\sin \psi _g & 0 \\ \sin \psi _g & \cos \psi _g & 0 \\ 0 & 0 & 1 \end{bmatrix}, \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \textbf{R}_{\text {mid}}(\phi _g)&= \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos \phi _g & -\sin \phi _g \\ 0 & \sin \phi _g & \cos \phi _g \end{bmatrix}, \quad \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \textbf{R}_{\text {in}}(\theta _g)&= \begin{bmatrix} \cos \theta _g & 0 & \sin \theta _g \\ 0 & 1 & 0 \\ -\sin \theta _g & 0 & \cos \theta _g \end{bmatrix}. \quad \end{aligned}$$\end{document}The camera coordinate frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{C\}$$\end{document} is assumed to coincide with the gimbal frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{G\}$$\end{document} , while the gimbal base is aligned with the UAV body frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{B\}$$\end{document} . Consequently, the composite rotation matrix transforming a vector from frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{C\}$$\end{document} to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{B\}$$\end{document} is given as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \textbf{R}_c^b = \textbf{R}_g^b = \textbf{R}_{\text {out}}(\psi _g) \textbf{R}_{\text {mid}}(\phi _g) \textbf{R}_{\text {in}}(\theta _g). \end{aligned}$$\end{document}This transformation employs the ZYX Euler angle convention, where rotations occur sequentially about the yaw (Z-axis), pitch (Y-axis), and roll (X-axis).Fig. 2. Three-axis gimbal-camera structure and associated coordinate frames.
Visual dynamics analysis
In UAV landing control, analyzing the visual dynamics of target features is a key step in designing a visual servoing controller^32^. By observing the temporal variation of image features on the pixel plane, information directly related to the UAV’s motion can be extracted and utilized for control design. This subsection presents the pixel coordinate representation of feature points, analyzes their dynamic behavior, and defines the image feature error, thereby providing the theoretical foundation for subsequent controller development.
Let \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$P_{ci} = [x_i, y_i, z_i]^T$$\end{document} denote the 3D coordinates of the \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$i$$\end{document} -th feature point expressed in the camera frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{C\}$$\end{document} , where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$i = 1, 2, \ldots , n$$\end{document} , and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n \ge 4$$\end{document} . The corresponding pixel coordinates are defined as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} s_i = \begin{bmatrix} u_i \\ v_i \end{bmatrix} = \frac{\lambda }{z_i} \begin{bmatrix} x_i \\ y_i \end{bmatrix} \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\lambda$$\end{document} denotes the focal length of the camera in pixels. The pixel coordinates \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_i$$\end{document} are selected as the visual features, and the overall feature vector is constructed as \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s = [s_1^T, \ldots , s_n^T]^T \in \mathbb {R}^{2n}$$\end{document} .
For a stationary target in the 3D workspace, the velocity of a feature point in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{C\}$$\end{document} is related to the spatial velocity of the camera as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \dot{P}_{ci} = -\textbf{v}_c - \varvec{\omega }_c \times P_{ci} \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{v}_c = [v_{cx}, v_{cy}, v_{cz}]^T$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\omega }_c = [\omega _{cx}, \omega _{cy}, \omega _{cz}]^T$$\end{document} denote the translational and angular velocities of the camera, respectively, expressed in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{C\}$$\end{document} . Expanding equation (9) yields as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} {\left\{ \begin{array}{ll} \dot{x}_i = -v_{cx} - \omega _{cy} z_i + \omega _{cz} y_i \\ \dot{y}_i = -v_{cy} - \omega _{cz} x_i + \omega _{cx} z_i \\ \dot{z}_i = -v_{cz} - \omega _{cx} y_i + \omega _{cy} x_i. \end{array}\right. } \end{aligned}$$\end{document}Differentiating the image feature expression (8) with respect to time, the pixel dynamics are obtained as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} {\left\{ \begin{array}{ll} \dot{u}_i = \frac{\lambda }{z_i} \dot{x}_i - \frac{\lambda x_i}{z_i^2} \dot{z}_i \\ \dot{v}_i = \frac{\lambda }{z_i} \dot{y}_i - \frac{\lambda y_i}{z_i^2} \dot{z}_i. \end{array}\right. } \end{aligned}$$\end{document}Substituting equation (10) into (11) yields the time derivative of the pixel coordinates as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} {\left\{ \begin{array}{ll} \dot{u}_i = -\frac{\lambda }{x_i} v_{cx} + \frac{u_i}{x_i} v_{cz} + \frac{u_i v_i}{\lambda } \omega _{cx} - \frac{\lambda ^2 + u_i^2}{\lambda } \omega _{cy} + v_i \omega _{cz} \\ \dot{v}_i = -\frac{\lambda }{x_i} v_{cy} + \frac{v_i}{x_i} v_{cz} + \frac{\lambda ^2 + v_i^2}{\lambda } \omega _{cx} - \frac{u_i v_i}{\lambda } \omega _{cy} - u_i \omega _{cz}. \end{array}\right. } \end{aligned}$$\end{document}Rearranging equation (12), the image feature dynamics can be compactly expressed as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \dot{s}_i = L_i(z_i, s_i) \varvec{V}_c \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{V}_c \triangleq [\textbf{v}_c^T, \varvec{\omega }_c^T]^T \in \mathbb {R}^6$$\end{document} is the camera velocity vector in the camera frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{C\}$$\end{document} , consisting of translational and angular components. \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$L_i(z_i, s_i)$$\end{document} denotes the image Jacobian matrix associated with the i-th feature point and is given as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} L_i(z_i, s_i) = \begin{bmatrix} -\frac{\lambda }{z_i} & 0 & \frac{u_i}{z_i} & \frac{u_i v_i}{\lambda } & -\frac{\lambda ^2 + u_i^2}{\lambda } & v_i \\ 0 & -\frac{\lambda }{z_i} & \frac{v_i}{z_i} & \frac{\lambda ^2 + v_i^2}{\lambda } & -\frac{u_i v_i}{\lambda } & -u_i \end{bmatrix}. \end{aligned}$$\end{document}In this matrix, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$z_i$$\end{document} represents the depth of the i-th feature point in the camera frame. Given the physical constraints of the UAV airframe and the camera’s focal length, the depth \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$z_i$$\end{document} of the i-th feature point in the camera frame is bounded below by a positive minimum value, which prevents singularities in (11). Considering a total of n feature points in the visual servoing process, the overall image Jacobian matrix is defined as \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$L(z, s) = [L_1^T, \ldots , L_n^T]^T \in \mathbb {R}^{2n \times 6}$$\end{document} , and the system dynamics can be written as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \dot{s} = L(z, s) \varvec{V}_c \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$z = [z_1, \ldots , z_n]^T \in \mathbb {R}^n$$\end{document} is the feature depth vector.
For a moving landing platform undergoing pure translation with velocity \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{v}_m$$\end{document} in the camera frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{C\}$$\end{document} , the motion of its feature points is likewise \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{v}_m$$\end{document} . Accordingly, the full velocity vector of the platform is defined as \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{V}_m = [\textbf{v}_m^T, 0, 0, 0]^T$$\end{document} . Considering the relative motion between the camera and the platform, we reformulate equations (9) to (15) as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \dot{s} = L(z, s)(\varvec{V}_c - \varvec{V}_m). \end{aligned}$$\end{document}This equation characterizes the image feature dynamics under relative motion between the UAV and the moving platform.
The image feature tracking error is defined as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} e_s = s - s_d \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_s = [e_{s1}^T, \ldots , e_{sn}^T]^T = [e_{u1}, e_{v1}, \ldots , e_{un}, e_{vn}]^T \in \mathbb {R}^{2n}$$\end{document} denotes the pixel coordinate error of the feature points, and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_d = [s_{d1}^T, \ldots , s_{dn}^T]^T \in \mathbb {R}^{2n}$$\end{document} represents the desired pixel coordinates corresponding to the UAV’s ideal landing position. These desired features are predefined and time-invariant, i.e., \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\dot{s}_d = 0$$\end{document} . Therefore, the time derivative of the image feature error is as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \dot{e}_s = \dot{s} - \dot{s}_d = L(z, s)(\varvec{V}_c - \varvec{V}_m). \end{aligned}$$\end{document}Field-of-view constraints
During the UAV landing process, constraints can be imposed on the feature pixel coordinates to ensure that image features remain within the camera’s FOV^33^. The upper and lower bounds of the feature point pixel coordinates are defined as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} u_{\text {min}}&\le u_i \le u_{\text {max}} \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} v_{\text {min}}&\le v_i \le v_{\text {max}} \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$u_{\text {min}}, u_{\text {max}}, v_{\text {min}}, v_{\text {max}}$$\end{document} denote the lower and upper bounds of the camera’s pixel coordinates or designer-preset pixel coordinate ranges.
As illustrated in Fig. 3, the upper and lower bounds of the feature point pixel coordinates constrain the position of feature points within the camera’s FOV.Fig. 3. Gimbal attitude angles during landing maneuver.
Let \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\underline{e}_{ui,0}, \overline{e}_{ui,0}, \underline{e}_{vi,0}, \overline{e}_{vi,0}$$\end{document} represent the initial upper and lower bounds of the feature point pixel coordinate errors as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \underline{e}_{ui,0} = u_{di} - u_{\text {min}}, \quad \overline{e}_{ui,0} = u_{\text {max}} - u_{di} \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \underline{e}_{vi,0} = v_{di} - v_{\text {min}}, \quad \overline{e}_{vi,0} = v_{\text {max}} - v_{di} . \end{aligned}$$\end{document}To ensure prescribed transient and steady-state performance of image feature errors, the image feature error \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_{si}$$\end{document} must satisfy constraint conditions described by the inequalities as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} -\underline{e}_{ui,0}\rho _{ui}(t) \le e_{ui}(t) \le \overline{e}_{ui,0}\rho _{ui}(t) \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} -\underline{e}_{vi,0}\rho _{vi}(t) \le e_{vi}(t) \le \overline{e}_{vi,0}\rho _{vi}(t) \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\rho _{ui}(t), \rho _{vi}(t)$$\end{document} are performance functions for the feature point pixel coordinate errors, specifying the time-varying upper and lower bounds for error evolution during transient and steady states. They are defined as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \rho _{ui}(t) = \left( 1 - \frac{e_{ui,\infty }}{c_{ui}}\right) \exp \left( -\kappa _{ui}t\right) + \frac{e_{ui,\infty }}{c_{ui}} \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \rho _{vi}(t) = \left( 1 - \frac{e_{vi,\infty }}{c_{vi}}\right) \exp \left( -\kappa _{vi}t\right) + \frac{e_{vi,\infty }}{c_{vi}} \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$c_{ui} = \max \{\underline{e}_{ui,0}, \overline{e}_{ui,0}\}$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$c_{vi} = \max \{\underline{e}_{vi,0}, \overline{e}_{vi,0}\}$$\end{document} . Constants \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_{ui,\infty }, e_{vi,\infty } > 0$$\end{document} represent the steady-state performance indices for the feature point pixel coordinate errors, and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\kappa _{ui}, \kappa _{vi} > 0$$\end{document} are the decay rates of the performance functions. For \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_{ui,\infty }, e_{vi,\infty }$$\end{document} , setting \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_{ui,\infty } < c_{ui}$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_{vi,\infty } < c_{vi}$$\end{document} ensures effective convergence of the errors at the prescribed rate.
Control objective
This work builds upon the following reasonable assumptions and effective lemmas for the design of the control strategy. All assumptions hold within the valid scope of the physical world and can be stably achieved in practical applications through preliminary positioning control of the camera and UAV.
Assumption 1: The velocity and acceleration vectors of the landing platform, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{V}_m, \dot{\varvec{V}}_m \in \mathbb {R}^6$$\end{document} , are bounded but unknown^34^, satisfying as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \Vert \varvec{V}_m\Vert< \overline{v}_{m1}, \quad \Vert \dot{\varvec{V}}_m\Vert < \overline{v}_{m2}. \end{aligned}$$\end{document}Assumption 2: At the initiation of the landing procedure, all image feature points reside within the camera’s FOV.
Under Assumption 2, the initial pixel coordinate errors of the image features are bounded by the FOV-constraints. Consequently, the initial conditions for equation () are given as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} -e_{ut,0}&\le e_{ut}(0) \le \overline{e}_{ut,0} \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} -e_{vi,0}&\le e_{vi}(0) \le \overline{e}_{vi,0}. \end{aligned}$$\end{document}Thus, the FOV-constraints problem () is transformed into regulating the transient and steady-state performance of the feature point pixel coordinate errors, as specified in equation ().
Control Objective: Given Assumptions 1 and 2, and considering a moving platform with unknown velocity \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{V}_m$$\end{document} , design a three-axis gimbal UAV visual servo controller \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{V}_c$$\end{document} for the UAV position and attitude system model. The controller must ensure that:
- The feature points ultimately converge to a bounded neighborhood of the desired pixel coordinates \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{s}^*$$\end{document} , enabling successful UAV landing.
- The image feature error (17) satisfies the performance constraint () for all time \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$t \ge 0$$\end{document} .
Controller design
This section presents the design of a vision-based servo controller to enable the precise landing of a UAV equipped with a gimbal-mounted camera. The proposed controller ensures that the pixel coordinates of image feature points converge to a bounded neighborhood of their desired values, while strictly satisfying the FOV-constraints defined in equation (21). The system architecture is illustrated in Fig. 4.Fig. 4. Block diagram of vision-constrained gimbal-servo UAV landing control system.
Error transformation
To enforce the FOV-constraints and guarantee both steady-state and transient performance, the image feature error \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_s$$\end{document} is mapped into an unconstrained space through a smooth and strictly increasing transformation function. The normalized error is defined as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \xi _{ui}(t)&= \frac{e_{ui}}{\rho _{ui}} \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \xi _{vi}(t)&= \frac{e_{vi}}{\rho _{vi}} \end{aligned}$$\end{document}for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$i = 1, \ldots , n$$\end{document} , where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\rho _{ui}(t)$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\rho _{vi}(t)$$\end{document} are performance functions specified in equation (22). The transformed error is then defined as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \varepsilon _{ui}(t)&= k_{ui} \ln \left( \frac{\underline{e}_{ui,0} + \xi _{ui}}{\overline{e}_{ui,0} - \xi _{ui}} \right) \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \varepsilon _{vi}(t)&= k_{vi} \ln \left( \frac{\underline{e}_{vi,0} + \xi _{vi}}{\overline{e}_{vi,0} - \xi _{vi}} \right) \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$k_{ui} = \frac{\overline{e}_{ui,0} \cdot \underline{e}_{ui,0}}{\overline{e}_{ui,0} + \underline{e}_{ui,0}}$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$k_{vi} = \frac{\overline{e}_{vi,0} \cdot \underline{e}_{vi,0}}{\overline{e}_{vi,0} + \underline{e}_{vi,0}}$$\end{document} are constants derived from the initial error bounds given in equation (). The overall transformed error vector is given as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \varepsilon (s,t) = [\varepsilon _{u1}, \varepsilon _{v1}, \ldots , \varepsilon _{un}, \varepsilon _{vn}]^T. \end{aligned}$$\end{document}Vision-based servo controller
The vision-based servo controller generates velocity commands for the camera frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{C\}$$\end{document} to regulate the image feature point errors toward zero as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \varvec{V}_c= -k \hat{L}^+ \varepsilon (s,t) + \varvec{\hat{V}}_m \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$k > 0$$\end{document} is a controller gain, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{V}_m$$\end{document} is the estimated velocity of the landing platform, and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{L}^+$$\end{document} is the pseudoinverse of the estimated image Jacobian \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{L}$$\end{document} . The pseudoinverse \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{L}^+$$\end{document} is computed as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \hat{L}^+ \triangleq \left( \hat{L}^T \hat{L} \right) ^{-1} \hat{L}^T. \end{aligned}$$\end{document}If \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{L}$$\end{document} has full column rank, then \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{L}^+ \hat{L} = I$$\end{document} .
Substituting (28) into the error dynamics in equation (18) yields as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \dot{e}_s = -k L \hat{L}^+ \varepsilon - L e_m \end{aligned}$$\end{document}where
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} e_m = \varvec{V}_m - \varvec{\hat{V}}_m \end{aligned}$$\end{document}is the estimation error of the landing platform’s velocity.
Landing platform velocity estimation
To estimate the unknown landing platform velocity \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{V}_m$$\end{document} , an observer is designed based on the measurable camera velocity \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{V}_c$$\end{document} and image feature error \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_s$$\end{document} . Low-pass filters are employed to extract temporal derivatives as follows^35^:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \mu _1 \dot{e}_{fs} + e_{fs}&= e_s, \quad e_{fs}(0) = 0 \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \mu _1 \dot{h} + h&= \hat{L} \varvec{V}_c, \quad h(0) = 0 \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \mu _1 \dot{g} + g&= e_s, \quad g(0) = 0 \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mu _1 > 0$$\end{document} is a time constant, and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_{fs}(t), h(t), g(t) \in \mathbb {R}^{2n}$$\end{document} are the filter states. Solving Eq. 34) yields as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} g(t) = \frac{1}{\mu _1} \left( e_s(t) - e_{fs}(t) - \exp \left( -\frac{1}{\mu _1}t\right) e_s(0) \right) . \end{aligned}$$\end{document}The filtered signal \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$S(t) \in \mathbb {R}^{2n}$$\end{document} , representing \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{L} \varvec{V}_m$$\end{document} , satisfies the dynamics as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \dot{S} = \frac{1}{\mu _1} \left( \hat{L} \varvec{V}_m - S \right) , \quad S(0) = 0 \end{aligned}$$\end{document}with the identity \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$g(t) = h(t) - S(t)$$\end{document} .
Thus, the estimate of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{L} \varvec{V}_m$$\end{document} is as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} S = h - g \end{aligned}$$\end{document}and the estimated platform velocity is as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \hat{\varvec{V}}_m = \hat{L}^+ S. \end{aligned}$$\end{document}To mitigate the peaking phenomenon caused by an improper choice of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mu _1$$\end{document} , a projection-based differential estimator is adopted as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \dot{\hat{\varvec{V}}}_m&= \text {Proj}(\varvec{\hat{V}}_m, \phi _m) = {\left\{ \begin{array}{ll} \phi _m - \varphi _m,&\begin{array}{c} \text {if } f(\varvec{\hat{V}}_m)> 0 \text { and } \phi _m^T \nabla f(\varvec{\hat{V}}_m) > 0 \end{array} \\ \phi _m, & \text {otherwise} \end{array}\right. } \end{aligned} \end{aligned}$$\end{document}with the initial condition \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\hat{V}}_m(0) = 0$$\end{document} . Here, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varphi _m$$\end{document} is defined as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \varphi _m \triangleq \frac{\nabla f(\varvec{\hat{V}}_m)\nabla f(\varvec{\hat{V}}_m)^T}{\Vert \nabla f(\varvec{\hat{V}}_m)\Vert ^2} \phi _m f(\varvec{\hat{V}}_m) \end{aligned}$$\end{document}which represents the weighted projection of the estimation error \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\phi _m \triangleq \frac{1}{\mu _2} (\hat{L}^+ S - \varvec{\hat{V}}_m)$$\end{document} , where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mu _2 > 0$$\end{document} is a design parameter. The error function and its gradient are given as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} f(\varvec{\hat{V}}_m)&= \frac{\Vert \varvec{\hat{V}}_m\Vert ^2 - h_1^2}{\varepsilon _0 h_1^2} \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \nabla f(\varvec{\hat{V}}_m)&= \frac{2\varvec{\hat{V}}_m}{\varepsilon _0 h_1^2} \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$h_1 > 0$$\end{document} denotes the upper bound on the velocity magnitude of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{V}_m$$\end{document} , and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varepsilon _0 > 0$$\end{document} specifies the tolerance in velocity estimation. The projection law in equation (39) is then employed to ensure boundedness of the estimate \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\hat{V}}_m$$\end{document} .
Control allocation
According to equation (28), the designed visual servoing controller \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{V}_c$$\end{document} must be decomposed into executable kinematic commands for both the UAV and the three-axis gimbal. Specifically, the control inputs consist of the UAV translational velocity \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{v}$$\end{document} and the gimbal angular velocity \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\dot{\varvec{\eta }}_g = [\dot{\phi }_g, \dot{\theta }_g, \dot{\psi }_g]^\textrm{T}$$\end{document} .
First, by combining equations (3) and (7), the transformation from the desired camera translational velocity \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v_c$$\end{document} to the UAV velocity \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{v}$$\end{document} in the world coordinate frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{Vv\}$$\end{document} is derived as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \textbf{v}&= R_v^w R_c^b v_c = R_v^w R_{\text {out}}(\psi _g) R_{\text {mid}}(\phi _g) R_{\text {in}}(\theta _g) v_c. \end{aligned} \end{aligned}$$\end{document}Next, based on the 3D geometric relationship between the UAV and the gimbal (as shown in equation (7) and Fig. 2), the camera angular velocity \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\omega _c$$\end{document} can be expressed as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \omega _c&= R_v^c \omega _b + R_{\text {in}}^\textrm{T}(\theta _g) R_{\text {mid}}(\phi _g) \dot{\psi }_g + R_{\text {in}}^\textrm{T}(\theta _g) \dot{\phi }_g + \dot{\theta }_g \\&= R_{\text {in}}^\textrm{T}(\theta _g) R_{\text {mid}}(\phi _g) R_{\text {out}}(\psi _g) \omega _b + R_{\text {in}}^\textrm{T}(\theta _g) R_{\text {mid}}(\phi _g) \dot{\psi }_g + R_{\text {in}}^\textrm{T}(\theta _g) \dot{\phi }_g + \dot{\theta }_g \end{aligned} \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\dot{\psi }_g = [0, 0, \dot{\psi }_g]^\textrm{T}$$\end{document} , \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\dot{\phi }_g = [\dot{\phi }_g, 0, 0]^\textrm{T}$$\end{document} , and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\dot{\theta }_g = [0, \dot{\theta }_g, 0]^\textrm{T}$$\end{document} represent the vector forms of the gimbal angular velocities.
Given the current gimbal orientation \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\eta }_g = [\phi _g, \theta _g, \psi _g]^\textrm{T}$$\end{document} and the UAV angular velocity \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\omega }_b = [\omega _x, \omega _y, \omega _z]^\textrm{T}$$\end{document} , the gimbal angular velocity can be calculated as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \dot{\varvec{\eta }}_g = M \left( \omega _c - R_{\text {in}}^\textrm{T}(\theta _g) R_{\text {mid}}^\textrm{T}(\phi _g) R_{\text {out}}^\textrm{T}(\psi _g) \varvec{\omega }_b \right) \end{aligned}$$\end{document}where the transformation matrix M is defined as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} M = \begin{bmatrix} \cos \theta _g & 0 & \sin \theta _g \\ \sin \theta _g \tan \phi _g & 1 & -\cos \theta _g \tan \phi _g \\ -\sin \theta _g / \cos \phi _g & 0 & \cos \theta _g / \cos \phi _g \end{bmatrix}. \end{aligned}$$\end{document}Note that when \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\phi _g = \pm \pi /2$$\end{document} , the matrix M becomes singular. Therefore, in practical applications, the gimbal pitch angle \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\phi _g$$\end{document} must be constrained to satisfy \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$-\pi /2< \phi _g < \pi /2$$\end{document} .
In practice, control allocation is achieved by applying equations (43) and (45) to compute the desired UAV translational velocity \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{v}$$\end{document} and the gimbal angular velocity \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\dot{\varvec{\eta }}_g$$\end{document} . These control commands are then sent to the UAV flight controller and the gimbal controller, respectively, to execute the landing maneuver.
Stability analysis
Under Assumptions 1 and 2, for the UAV kinematic model (1), visual dynamics (16), control law (28), and velocity estimator (73), there exist sufficiently large \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$k > 0$$\end{document} and sufficiently small \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mu _1, \mu _2 > 0$$\end{document} such that:
- The image feature error \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_s$$\end{document} , velocity estimation error \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_m$$\end{document} , and associated filter states converge to an arbitrarily small neighborhood of the origin. The size of this neighborhood can be tuned via design parameters.
- Both transient and steady-state performances of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_s$$\end{document} are guaranteed while strictly satisfying the FOV-constraints given in (21).
- All signals in the closed-loop system remain uniformly ultimately bounded (UUB). Step 1: Existence and Uniqueness: Define the normalized error vector \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\xi } \triangleq [\xi _{u1}, \xi _{v1}, \ldots , \xi _{un}, \xi _{vn}]^\textrm{T}$$\end{document} and the open set:
Under Assumption 2 and the continuity of the closed-loop system dynamics, a unique solution \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\xi }(t) \in \Omega _\xi$$\end{document} exists for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$t \in [0, \tau _{\max })$$\end{document} .
Step 2: Boundedness and Convergence: We now show that the proposed controller (28) ensures the validity of stability analysis and that the results remain valid as \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tau _{\max } \rightarrow \infty$$\end{document} .
Let the filter error for estimating the visual target’s velocity be defined as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \dot{\varvec{e}}_f = -\frac{1}{\mu _1} \varvec{e}_f + \dot{\hat{\varvec{L}}} \varvec{V}_m + \hat{\varvec{L}} \dot{\varvec{V}}_m \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{e}_f = \hat{\varvec{L}} \varvec{V}_m - \varvec{S}$$\end{document} .
Given the velocity estimation error \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{e}_m = \varvec{V}_m - \hat{\varvec{V}}_m$$\end{document} and the projection-based estimator (39), we have as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \dot{\varvec{e}}_m&= \dot{\varvec{V}}_m - \frac{1}{\mu _2} \left( \hat{\varvec{L}}^+ \varvec{S} + \varvec{e}_m - \varvec{V}_m \right) + \varvec{\varphi }_m. \end{aligned} \end{aligned}$$\end{document}Assuming \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{\varvec{L}}$$\end{document} is full column rank, which holds in practice due to the positive depth \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$z_i$$\end{document} and focal length \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\lambda$$\end{document} , we have \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{\varvec{L}}^+ \hat{\varvec{L}} = I$$\end{document} . Using this, equation (48) becomes as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \dot{\varvec{e}}_m&= -\frac{1}{\mu _2} \varvec{e}_m + \frac{1}{\mu _2} \hat{\varvec{L}}^+ \varvec{e}_f + \dot{\varvec{V}}_m + \varvec{\varphi }_m. \end{aligned} \end{aligned}$$\end{document}From the performance function (22) and transformed error dynamics in equations (26)-(27), the derivative of the transformed error \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\varepsilon }$$\end{document} is as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \dot{\varvec{\varepsilon }}&= \frac{\partial \varvec{\varepsilon }}{\partial \varvec{\xi }} \left( \frac{\partial \varvec{\xi }}{\partial \varvec{e}_s} \dot{\varvec{e}}_s + \frac{\partial \varvec{\xi }}{\partial \varvec{\rho }} \dot{\varvec{\rho }} \right) \\&= \frac{\partial \varvec{\varepsilon }}{\partial \varvec{\xi }} \left( \frac{\partial \varvec{\xi }}{\partial \varvec{e}_s} \varvec{L}(\varvec{V}_c - \varvec{V}_m) + \frac{\partial \varvec{\xi }}{\partial \varvec{\rho }} \dot{\varvec{\rho }} \right) \\&= -k \frac{\partial \varvec{\varepsilon }}{\partial \varvec{\xi }} \frac{\partial \varvec{\xi }}{\partial \varvec{e}_s} \varvec{L} \hat{\varvec{L}}^+ \varvec{\varepsilon } - \frac{\partial \varvec{\varepsilon }}{\partial \varvec{\xi }} \frac{\partial \varvec{\xi }}{\partial \varvec{e}_s} \varvec{L} \varvec{e}_m + \frac{\partial \varvec{\varepsilon }}{\partial \varvec{\xi }} \frac{\partial \varvec{\xi }}{\partial \varvec{\rho }} \dot{\varvec{\rho }}. \end{aligned} \end{aligned}$$\end{document}Define the task variable \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\varepsilon }_L \triangleq \hat{\varvec{L}}^+ \varvec{\varepsilon }$$\end{document} , and for a constant \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$r > 0$$\end{document} , define the set:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Omega _{\varepsilon } \triangleq \left\{ (\varvec{\xi }, t) \in \mathbb {R}^{2n} \times [0, \tau _{\max }) \mid \Vert \varvec{\varepsilon }_L\Vert < r \right\} \subset \Omega _\xi .$$\end{document}Then, the time derivative of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\varepsilon }_L$$\end{document} is given as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \dot{\varvec{\varepsilon }}_L&= \frac{d \hat{\varvec{L}}^+}{dt} \varvec{\varepsilon } + \hat{\varvec{L}}^+ \dot{\varvec{\varepsilon }}= \varvec{O}(\varvec{e}_s,t)(\varvec{V}_c - \varvec{V}_m) + \hat{\varvec{L}}^+ \dot{\varvec{\varepsilon }}. \end{aligned} \end{aligned}$$\end{document}According to reference^36^, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\frac{d \hat{\varvec{L}}^+}{dt} \varvec{\varepsilon } = \varvec{O}(\varvec{e}_s,t)(\varvec{V}_c - \varvec{V}_m)$$\end{document} , where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{O}(\varvec{e}_s,t)$$\end{document} is a matrix satisfying \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{O}({\varvec{e}}_s, t)\big |_{{\varvec{e}}_s=0} = 0_{6 \times 6}$$\end{document} .
Substituting the controller (28) and velocity estimation error (31), we obtain as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \dot{\varvec{\varepsilon }}_L&= (\varvec{O}(\varvec{e}_s,t) + \varvec{m}(t))(-k \varvec{\varepsilon }_L - \varvec{e}_m) + \varvec{n}(t) \end{aligned} \end{aligned}$$\end{document}where
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m(t) = \hat{\varvec{L}}^+ \frac{\partial \varvec{\varepsilon }}{\partial \varvec{\xi }} \frac{\partial \varvec{\xi }}{\partial \varvec{e}_s} \varvec{L}, \quad n(t) = \hat{\varvec{L}}^+ \frac{\partial \varvec{\varepsilon }}{\partial \varvec{\xi }} \frac{\partial \varvec{\xi }}{\partial \varvec{\rho }} \dot{\varvec{\rho }} .$$\end{document}Linearizing equation (51) around \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\varepsilon }_L = 0$$\end{document} yields as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \dot{\varvec{\varepsilon }}_L = \varvec{A}(t) \varvec{\varepsilon }_L + \varvec{B}(t) \varvec{e}_m + \varvec{C}(t) \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{A}(t)$$\end{document} , \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{B}(t)$$\end{document} , and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{C}(t)$$\end{document} are bounded time-varying matrices depending on m(t), \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{O}(t)$$\end{document} , and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{n}(t)$$\end{document} . where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{A}(t)$$\end{document} , \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{B}(t)$$\end{document} , and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{C}(t)$$\end{document} are defined as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \varvec{A}(t)&= -k \varvec{m}(t) \bigg |_{\varepsilon _L=0} \\ \varvec{B}(t)&= \frac{\partial }{\partial \varepsilon _L} \left( \varvec{n}(t) - \varvec{m}(t) e_m \right) \bigg |_{\varepsilon _L=0} \\ \varvec{C}(t)&= \left( \varvec{n}(t) - \varvec{m}(t) e_m\right) \bigg |_{\varepsilon _L=0}. \end{aligned} \end{aligned}$$\end{document}When feature points remain within the image FOV and both true depth values and estimates \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{e}_i$$\end{document} are positive, the boundedness and convergence of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{n}(t)$$\end{document} follow directly from the convergence properties of the performance function (21) for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$t \in [0, \tau _{\text {max}})$$\end{document} . Furthermore, since \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\frac{\partial \varepsilon }{\partial \xi } \frac{\partial \xi }{\partial e_s}$$\end{document} in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{m}(t)$$\end{document} constitutes a diagonal positive definite matrix, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{m}(t)$$\end{document} is bounded and Lipschitz continuous. By Theorems 4.12 and 4.13 in^37^ , for sufficiently large control gain \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$k$$\end{document} , there exist constants \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$c_1, c_2 > 0$$\end{document} such that a continuously differentiable, bounded, positive definite diagonal matrix \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$P(t)$$\end{document} satisfies as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} 0 < c_1 I \le \varvec{P}(t) \le c_2 I \end{aligned}$$\end{document}and the differential equation as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} -\dot{\varvec{P}}(t) = \varvec{P}(t)\varvec{A}(t) + \varvec{A}^T(t)\varvec{P}(t) + \varvec{Q}(t) \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{Q}(t)$$\end{document} is a continuous positive definite diagonal matrix with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{Q}(t) \ge c_3 I > 0$$\end{document} for constant \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$c_3 > 0$$\end{document} .
Given the form of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{B}(t)$$\end{document} , its Lipschitz continuity over \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$t \in [0, t_{\max })$$\end{document} implies \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Vert \varvec{B}(t) \Vert \le c_4 \Vert \varvec{\varepsilon }_L \Vert \Vert \varvec{e}_m \Vert$$\end{document} for Lipschitz constant \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$c_4 > 0$$\end{document} . Similarly, the boundedness of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{C}(t)$$\end{document} yields \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Vert \varvec{C}(t) \Vert \le c_5 \Vert \varvec{e}_m \Vert$$\end{document} with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$c_5 > 0$$\end{document} .
Consider the Lyapunov function candidate as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} V = {\varvec{\varepsilon }}_{L}^{T } {\varvec{P}}(t) {\varvec{\varepsilon }}_{L} + \frac{1}{2} {\varvec{e}}_{m}^{T} {\varvec{e}}_{m} + \frac{1}{2} {\varvec{e}}_{f}^{T} {\varvec{e}}_{f}. \end{aligned}$$\end{document}Differentiating equation (56) using equations (47) and (49) gives as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \dot{V}&= {\varvec{\varepsilon }}_L^T {\varvec{P}}(t) \dot{{\varvec{\varepsilon }}}_L + \dot{{\varvec{\varepsilon }}}_L^T {\varvec{P}}(t) {\varvec{\varepsilon }}_L + {\varvec{\varepsilon }}_L^T \dot{{\varvec{P}}}(t) {\varvec{\varepsilon }}_L \\&+ {\varvec{e}}_m^T \left( -\frac{1}{\mu _2}{\varvec{e}}_m + \frac{1}{\mu _2}\hat{{\varvec{L}}}^\dagger {\varvec{e}}_f + \dot{{\varvec{V}}}_m + {\varvec{\varphi }}_m \right) \\&+ {\varvec{e}}_f^T \left( -\frac{1}{\mu _1}{\varvec{e}}_f + \dot{\hat{{\varvec{L}}}} {\varvec{V}}_m + \hat{{\varvec{L}}} \dot{{\varvec{V}}}_m \right) . \end{aligned} \end{aligned}$$\end{document}Substituting equations (52) and (55) yields as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \dot{V}&= -{\varvec{\varepsilon }}_L^T {\varvec{Q}}(t) {\varvec{\varepsilon }}_L + 2{\varvec{\varepsilon }}_L^T {\varvec{P}}(t) {\varvec{B}}(t) {\varvec{\varepsilon }}_L + 2{\varvec{\varepsilon }}_L^T {\varvec{P}}(t) {\varvec{C}}(t) \\&+ {\varvec{e}}_m^T \left( -\frac{1}{\mu _2}{\varvec{e}}_m + \frac{1}{\mu _2}\hat{{\varvec{L}}}^+ {\varvec{e}}_f + \dot{{\varvec{V}}}_m + {\varvec{\varphi }}_m \right) \\&+ {\varvec{e}}_f^T \left( -\frac{1}{\mu _1}{\varvec{e}}_f + \dot{\hat{{\varvec{L}}}} {\varvec{V}}_m + \hat{{\varvec{L}}} \dot{{\varvec{V}}}_m \right) . \end{aligned} \end{aligned}$$\end{document}During landing with feature points within FOV, the camera height exceeds the landing platform height, ensuring image depth \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$z_i > 0$$\end{document} . Physical constraints of the UAV frame and camera focal length establish a lower bound \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\underline{z_i} = \min (h_c, f_c) > 0$$\end{document} , where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$h_c$$\end{document} is the distance from the gimbal center to the contact point and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$f_c$$\end{document} the focal length. By Assumption 1 and equation (), boundedness of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_i$$\end{document} at \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$t=0$$\end{document} combined with equations (5), (14), and (17) (noting constant \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_d$$\end{document} ) implies as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \Vert \hat{{\varvec{L}}}\Vert \le \sigma _h(\Vert {\varvec{e}}_s\Vert ) \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\sigma _h(\cdot )$$\end{document} increases monotonically with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Vert {\varvec{e}}_s\Vert$$\end{document} . Similarly, equation (29) gives as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \Vert \hat{{\varvec{L}}}^+\Vert \le \sigma _p(\Vert {\varvec{e}}_s\Vert ) \end{aligned}$$\end{document}for monotonic \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\sigma _p(\cdot )$$\end{document} .
Define \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{\varvec{P}}_{ci} = [x_{1i}, x_{2i}, x_{3i}]^T = [u_i, v_i, z_i^{-1}]^T$$\end{document} . The image Jacobian (14) becomes as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \hat{{\varvec{L}}}_i^T = \begin{bmatrix} -\lambda x_{3i} & 0 \\ 0 & -\lambda x_{3i} \\ x_{1i}x_{3i} & x_{2i}x_{3i} \\ \lambda ^{-1}x_{1i}x_{2i} & \lambda ^{-1}(\lambda ^2+x_{2i}^2) \\ -\lambda ^{-1}(\lambda ^2+x_{1i}^2) & -\lambda ^{-1}x_{1i}x_{2i} \\ x_{2i} & -x_{1i} \end{bmatrix} \end{aligned}$$\end{document}with time derivative as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \dot{\hat{{\varvec{L}}}}_i^T = \begin{bmatrix} -\lambda \dot{x}_{3i} & 0 \\ 0 & -\lambda \dot{x}_{3i} \\ x_{1i} \dot{x}_{3i} + \dot{x}_{1i} x_{3i} & x_{2i} \dot{x}_{3i} + \dot{x}_{2i} x_{3i} \\ \lambda ^{-1}(\dot{x}_{1i}x_{2i} + x_{1i}\dot{x}_{2i}) & \lambda ^{-1}(2x_{2i}\dot{x}_{2i}) \\ -\lambda ^{-1}(2x_{1i}\dot{x}_{1i}) & -\lambda ^{-1}(\dot{x}_{1i}x_{2i} + x_{1i}\dot{x}_{2i}) \\ \dot{x}_{2i} & -\dot{x}_{1i} \end{bmatrix}. \end{aligned}$$\end{document}Additionally, the derivative of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{P}_{ci}$$\end{document} with respect to time can be expressed as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \hat{P}_{ci} = \begin{bmatrix} \dot{x}_{1i} \\ \dot{x}_{2i} \\ \dot{x}_{3i} \end{bmatrix} = \begin{bmatrix} -\lambda x_{3i} & 0 & x_{1i}x_{3i} & \frac{x_{1i}x_{2i}}{\lambda } & -\frac{\lambda ^2 + x_{1i}^2}{\lambda } & x_{2i} \\ 0 & -\lambda x_{3i} & x_{2i}x_{3i} & \frac{\lambda ^2 + x_{2i}^2}{\lambda } & -\frac{x_{1i}x_{2i}}{\lambda } & -x_{1i} \\ 0 & 0 & x_{3i}^2 & \frac{x_{2i}x_{3i}}{\lambda } & -\frac{x_{1i}x_{3i}}{\lambda } & 0 \end{bmatrix} (V_c - V_m) \end{aligned}$$\end{document}It can be seen that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\dot{\hat{P}}_{ci} = [\dot{x}_{1i}, \dot{x}_{2i}, \dot{x}_{3i}]^{\textrm{T}}$$\end{document} is a function of the visual servo controller (28). Therefore, combining equation (63) and the visual servo controller (28), we obtain as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \Vert \dot{\hat{{\varvec{L}}}}\Vert&\le \sigma _d(\Vert {\varvec{e}}_s\Vert ) \cdot \Vert -k\hat{{\varvec{L}}}^{+}{\varvec{\varepsilon }} - {\varvec{e}}_m\Vert \\&\le \sigma _d(\Vert {\varvec{e}}_s\Vert ) \cdot \left( k\Vert {\varvec{e}}_L\Vert + \Vert {\varvec{e}}_m\Vert \right) \end{aligned} \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\sigma _d(\cdot )$$\end{document} is another monotonically increasing function with respect to the image feature error \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_s$$\end{document} .
Furthermore, considering that within the set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Omega _\xi$$\end{document} , due to the boundedness and time-convergence property of the performance function (22), \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$${\varvec{e}}_s$$\end{document} is bounded for all \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$t \in [0, t_{\max })$$\end{document} . Therefore, for equations (59), (60), and (64), we have as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \Vert \hat{{\varvec{L}}}\Vert&\le \sigma _h(\Vert {\varvec{e}}_s\Vert ) \le \overline{\sigma }_h , \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \Vert \hat{{\varvec{L}}}^+\Vert&\le \sigma _p(\Vert {\varvec{e}}_s\Vert ) \le \overline{\sigma }_p , \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \Vert \dot{\hat{{\varvec{L}}}}\Vert&\le \overline{\sigma }_d \cdot \left( k\Vert {\varvec{e}}_L\Vert + \Vert {\varvec{e}}_m\Vert \right) . \end{aligned}$$\end{document}According to the definition of equation (39), \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varphi _m$$\end{document} takes effect if and only if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$f(\hat{V}_m) > 0$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\phi _m^{\textrm{T}}\nabla f(\hat{V}_m) > 0$$\end{document} . According to reference^38^, when \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varphi _m$$\end{document} satisfies the activation condition, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_m^{\textrm{T}}\varphi _m \le 0$$\end{document} . Based on Assumption 1 and combining equation (54), rearranging equation (58) yields as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \dot{V} \le&-c_3\Vert {\varvec{\varepsilon }}_L\Vert ^2 + 2c_2c_4\Vert {\varvec{e}}_m\Vert \Vert {\varvec{\varepsilon }}_L\Vert ^3 + 2c_2c_5\Vert {\varvec{e}}_m\Vert \Vert {\varvec{\varepsilon }}_L\Vert ^2 \\&- \frac{1}{\mu _2}\Vert {\varvec{e}}_m\Vert ^2 + \Vert {\varvec{e}}_m\Vert \overline{v}_{m2} + \frac{1}{\mu _2}\Vert {\varvec{e}}_m\Vert \Vert \hat{{\varvec{L}}}^+\Vert \Vert {\varvec{e}}_f\Vert \\&- \frac{1}{\mu _1}\Vert {\varvec{e}}_f\Vert ^2 + \Vert {\varvec{e}}_f\Vert \Vert \dot{\hat{{\varvec{L}}}}\Vert \overline{v}_{m1} + \Vert {\varvec{e}}_f\Vert \Vert \dot{\hat{{\varvec{L}}}}\Vert \overline{v}_{m2}. \end{aligned} \end{aligned}$$\end{document}Combining equation () and considering the definition and convergence property of the performance function (22), we obtain as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \dot{V}&\le -c_3 \Vert {\varvec{\varepsilon }}_L\Vert ^2 + 2 c_2 c_4 \epsilon ^2 \Vert {\varvec{e}}_m\Vert \Vert {\varvec{\varepsilon }}_L\Vert + 2 c_2 c_5 \epsilon \Vert {\varvec{e}}_m\Vert \Vert {\varvec{\varepsilon }}_L\Vert \\&\quad - \frac{1}{\mu _2} \Vert {\varvec{e}}_m\Vert ^2 + \overline{v}_{m2} \Vert {\varvec{e}}_m\Vert + \frac{1}{\mu _2} \overline{\sigma }_p \Vert {\varvec{e}}_m\Vert \Vert {\varvec{e}}_f\Vert \\&\quad - \frac{1}{\mu _1} \Vert {\varvec{e}}_f\Vert ^2 + \overline{v}_{m1} \Vert {\varvec{e}}_f\Vert \overline{\sigma }_d\left( k \Vert {\varvec{\varepsilon }}_L\Vert + \Vert {\varvec{e}}_m\Vert \right) \\&\quad +\overline{\sigma }_h \overline{v}_{m2} \Vert {\varvec{e}}_f\Vert , \quad \forall \Vert {\varvec{\varepsilon }}_L\Vert < \epsilon \end{aligned} \end{aligned}$$\end{document}where \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\epsilon$$\end{document} is a constant that satisfies as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} 0< \epsilon < \min \left\{ r, \left( -\frac{c_5}{2c_4} + \sqrt{\frac{c_5^2}{4c_4^2} + \frac{c_3}{c_2c_4}} \right) \right\} . \end{aligned}$$\end{document}Using the properties of Young’s inequality, we get as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} 2c_2c_4\epsilon ^2\Vert {\varvec{e}}_m\Vert \Vert {\varvec{e}}_L\Vert&\le \varpi _1\Vert {\varvec{e}}_m\Vert ^2 + \varpi _1\Vert {\varvec{e}}_L\Vert ^2 \\ 2c_2c_5\epsilon \Vert {\varvec{e}}_m\Vert \Vert {\varvec{e}}_L\Vert&\le \varpi _2\Vert {\varvec{e}}_m\Vert ^2 + \varpi _2\Vert {\varvec{e}}_L\Vert ^2 \\ \overline{v}_{m2}\Vert {\varvec{e}}_m\Vert&\le \frac{\kappa _1}{2}\Vert {\varvec{e}}_m\Vert ^2 + \frac{\overline{v}_{m2}^2}{2\kappa _1} \\ \frac{1}{\mu _2}\overline{\sigma }_p\Vert {\varvec{e}}_m\Vert \Vert {\varvec{e}}_f\Vert&\le \frac{\overline{\sigma }_p}{2\mu _2}\Vert {\varvec{e}}_m\Vert ^2 + \frac{\overline{\sigma }_p}{2\mu _2}\Vert {\varvec{e}}_f\Vert ^2 \\ \overline{v}_{m1}\overline{\sigma }_d k\Vert {\varvec{e}}_f\Vert \Vert {\varvec{e}}_L\Vert&\le \frac{k\varpi _3}{2}\Vert {\varvec{e}}_L\Vert ^2 + \frac{k\varpi _3}{2}\Vert {\varvec{e}}_f\Vert ^2 \\ \overline{v}_{m1}\overline{\sigma }_d\Vert {\varvec{e}}_f\Vert \Vert {\varvec{e}}_m\Vert&\le \frac{\varpi _3}{2}\Vert {\varvec{e}}_m\Vert ^2 + \frac{\varpi _3}{2}\Vert {\varvec{e}}_f\Vert ^2 \\ \overline{\sigma }_h\overline{v}_{m2}\Vert {\varvec{e}}_f\Vert&\le \frac{\kappa _2}{2}\Vert {\varvec{e}}_f\Vert ^2 + \frac{\overline{\sigma }_h^2\overline{v}_{m2}^2}{2\kappa _2}. \end{aligned}$$\end{document}Substituting the above inequalities into equation (67) gives as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \dot{V} \le&-c_3 \Vert {\varvec{e}}_L\Vert ^2 + \varpi _1 \Vert {\varvec{e}}_L\Vert ^2 + \varpi _2 \Vert {\varvec{e}}_L\Vert ^2 \\&+ \frac{k \varpi _3}{2} \Vert {\varvec{e}}_L\Vert ^2- \frac{1}{\mu _2} \Vert {\varvec{e}}_m\Vert ^2 + \varpi _1 \Vert {\varvec{e}}_m\Vert ^2 \\&+ \varpi _2 \Vert {\varvec{e}}_m\Vert ^2 + \frac{\kappa _1}{2} \Vert {\varvec{e}}_m\Vert ^2 + \frac{\overline{\sigma }_p}{2 \mu _2} \Vert {\varvec{e}}_m\Vert ^2 \\&+ \frac{\varpi _3}{2} \Vert {\varvec{e}}_m\Vert ^2 - \frac{1}{\mu _1} \Vert {\varvec{e}}_f\Vert ^2 + \frac{\overline{\sigma }_p}{2 \mu _2} \Vert {\varvec{e}}_f\Vert ^2 \\&+ \frac{k \varpi _3}{2} \Vert {\varvec{e}}_f\Vert ^2 + \frac{\varpi _3}{2} \Vert {\varvec{e}}_f\Vert ^2+ \frac{\kappa _2}{2} \Vert {\varvec{e}}_f\Vert ^2 \\&+ \frac{\overline{v}_{m2}^2}{2 \kappa _1} + \frac{\overline{\sigma }_h^2 \overline{v}_{m2}^2}{2 \kappa _2}. \end{aligned} \end{aligned}$$\end{document}By selecting sufficiently large control gain k, sufficiently small filter time constants \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mu _1$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\mu _2$$\end{document} , and appropriate parameters \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\kappa _1$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\kappa _2$$\end{document} , the inequalities hold as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \rho _1&= c_3 - \varpi _1 - \varpi _2 - \frac{k \varpi _3}{2} > 0 , \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \rho _2&= \frac{1}{\mu _2} - \varpi _1 - \varpi _2 - \frac{\kappa _1}{2} - \frac{\overline{\sigma }_p}{2\mu _2} - \frac{\varpi _3}{2} > 0 ,\end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \rho _3&= \frac{1}{\mu _1} - \frac{\overline{\sigma }_p}{2\mu _2} - \frac{(k+1)\varpi _3}{2} - \frac{\kappa _2}{2} > 0. \end{aligned}$$\end{document}Rearranging equation (68) yields as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \dot{V} \le -\rho V + \delta \end{aligned}$$\end{document}where
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} \delta&= \frac{\overline{v}_{m2}^2}{2\kappa _1} + \frac{\overline{\sigma }_h^2 \overline{v}_{m2}^2}{2\kappa _2}, \\ \rho&= \min \left\{ \rho _1 / c_2, 2\rho _2, 2\rho _3 \right\} . \end{aligned} \end{aligned}$$\end{document}For equation (72), when \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V = \varsigma$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\rho > \delta /\varsigma$$\end{document} , \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\dot{V} < 0$$\end{document} . Thus, if \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V(0) \le \varsigma$$\end{document} and parameters satisfy \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\rho > \delta /\varsigma$$\end{document} , then \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V \le \varsigma$$\end{document} for all \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$t \in [0, \tau _{\max })$$\end{document} . Solving equation (72) gives as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} V(t) \le V(0) \exp (-\rho t) + \varrho \le V(0) + \varrho , \quad \forall t \in [0, \tau _{\max }) \end{aligned}$$\end{document}with \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varrho = \delta / \rho$$\end{document} . From equations (56) and (74), as \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$t \rightarrow \tau _{\max }$$\end{document} :
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \Vert \varepsilon _L \Vert&\le \sqrt{\varrho / c_2}< \epsilon , \\ \Vert e_m \Vert&< \sqrt{2\varrho }, \\ \Vert e_f \Vert&\le \sqrt{2\varrho }. \end{aligned}$$\end{document}Thus, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varepsilon _L$$\end{document} , \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_m$$\end{document} , and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_f$$\end{document} converge to neighborhoods of zero. The radii \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\sqrt{\varrho / c_2}$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\sqrt{2\varrho }$$\end{document} can be made arbitrarily small via parameter adjustment. When \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{L}^+$$\end{document} has full row rank, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Vert \epsilon _L\Vert \triangleq \Vert \hat{L}^+\epsilon \Vert \ne 0$$\end{document} for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\epsilon \ne 0$$\end{document} near \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\epsilon _L = 0$$\end{document} ^39^. Hence, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Vert e\Vert \le \varepsilon$$\end{document} for some \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varepsilon > 0$$\end{document} , confirming \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\epsilon$$\end{document} converges to a \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\overline{\varepsilon }$$\end{document} -neighborhood of zero. From equations (26a) and (26b) as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \begin{aligned} -\underline{e}_{ui,0}&< -\underline{e}_{ui,0} \left( \frac{ \exp (\overline{\varepsilon }/k_{ui}) - \overline{e}_{ui,0}/\underline{e}_{ui,0} }{ \exp (\overline{\varepsilon }/k_{ui}) + 1 } \right) \le \xi _{ui}< \overline{e}_{ui,0} \\ -\underline{e}_{vi,0}&< -\underline{e}_{vi,0} \left( \frac{ \exp (\overline{\varepsilon }/k_{vi}) - \overline{e}_{vi,0}/\underline{e}_{vi,0} }{ \exp (\overline{\varepsilon }/k_{vi}) + 1 } \right) \le \xi _{vi} < \overline{e}_{vi,0}. \end{aligned} \end{aligned}$$\end{document}Combining equation (75) with constraints (19)-(21), the pixel coordinate error \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_s$$\end{document} is bounded for \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$t \in [0, \tau _{\max })$$\end{document} with guaranteed transient and steady-state performance. Thus, equation (21) holds, and backstepping confirms satisfaction of equation (19), ensuring persistent FOV compliance.
Since equation (19) holds, feature pixel \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$s_i = [u_i, v_i]^T$$\end{document} is bounded. By Assumption 1 and bounded \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_m$$\end{document} , velocity estimate \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{v}_m$$\end{document} is bounded. Controller (28) yields bounded \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$v_c$$\end{document} , so UAV velocity input (43) and gimbal rate (45) are bounded. Thus, all closed-loop signals are ultimately bounded.
In summary, control input (28) satisfies \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$t \in [0, \tau _{\max })$$\end{document} . Inequalities (75) imply \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(\xi , t)$$\end{document} remains in compact set \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\Omega '_\xi \subset \Omega _\xi$$\end{document} . Letting \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\partial \Omega _\xi$$\end{document} be the boundary, there exists \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d > 0$$\end{document} such that:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$d_S((s, t), \partial \Omega _\xi ) \ge d, \quad \forall t \in [0, \tau _{\max }).$$\end{document}Hence,
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\lim _{t \rightarrow \tau _{\max }} \left( \Vert s(t) \Vert + \left[ d_{\mathcal {S}}((s, t), \partial \Omega _\xi ) \right] ^{-1} \right) \ne \infty .$$\end{document}By Lemma^40^ and contradiction, \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\tau _{\max } = \infty$$\end{document} .
Simulation Results
Fig. 5. Trajectory comparison: (a) 3D trajectories in \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{W\}$$\end{document} , (b) X–Y plane projection, (c) Altitude profiles.
This section presents simulation studies validating the effectiveness of the proposed control algorithm. The UAV parameters are configured as follows: mass \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m = 2.48 \text {kg}$$\end{document} , inertia matrix \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$J = \text {diag}\{0.0756, 0.0756, 0.1277\} \text {kg}\cdot \text {m}^2$$\end{document} , and gravitational acceleration \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$g = 9.81 \text {m/s}^2$$\end{document} . The camera features a focal length \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\lambda = 376.1587$$\end{document} and a pixel resolution of \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$640 \times 480$$\end{document} . The position controller employs the backstepping method for velocity input (43), while the attitude controller follows^41^ specifications. Based on equation (19), the camera FOV-constraints define the permissible feature point movement range in pixels as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} u_{\max }&= 319,&u_{\min }&= -319, \end{aligned}$$\end{document} \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} v_{\max }&= 239,&v_{\min }&= -239. \end{aligned}$$\end{document}Four image feature points are uniformly distributed at the corners of a 20 cm square, with the landing platform center coinciding with their centroid. The desired pixel coordinates \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{s}_{di} = [u_{di}, v_{di}]^T$$\end{document} are as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \textbf{s}_{d1}&= [-150, 150]^T,&\textbf{s}_{d2}&= [150, 150]^T, \\ \textbf{s}_{d3}&= [-150, -150]^T,&\textbf{s}_{d4}&= [150, -150]^T, \end{aligned}$$\end{document}yielding \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\textbf{s}_d = [\textbf{s}_{d1}^T, \textbf{s}_{d2}^T, \textbf{s}_{d3}^T, \textbf{s}_{d4}^T]^T \in \mathbb {R}^8$$\end{document} . According to equation (20), the initial error bounds for the integrated feature point coordinates are as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \overline{\textbf{e}}_{u,0}&= [169, 469, 169, 469]^T,&\underline{\textbf{e}}_{u,0}&= [469, 169, 469, 169]^T ,\\ \overline{\textbf{e}}_{v,0}&= [389, 389, 89, 89]^T,&\underline{\textbf{e}}_{v,0}&= [89, 89, 389, 389]^T. \end{aligned}$$\end{document}The performance function parameters are set as \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(e_{ui,\infty }, e_{vi,\infty }) = (30, 30)$$\end{document} and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(\kappa _{ui}, \kappa _{vi}) = (0.2, 0.2)$$\end{document} , with control gain \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$k = 5$$\end{document} . Initial states include the gimbal orientation \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\eta }_{g0} = [0, \pi /5, \pi /12]^T$$\end{document} rad and UAV state as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \textbf{p}_0&= [-1.5, 0.1, -1.5]^T ,\\ \textbf{v}_0&= [0, 0, 0]^T, \\ R_0&= I ,\\ \varvec{\Omega }_0&= [0, 0, 0]^T. \end{aligned}$$\end{document}The landing platform trajectory in world frame \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\{W\}$$\end{document} is governed as follows:
\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} x_t&= 1.0t + 0.2\sin (t), \\ y_t&= 1.2t + 0.1\cos (0.6t) ,\\ z_t&= 0.15\sin (t). \end{aligned}$$\end{document}Fig. 6. Gimbal attitude evolution during landing maneuver.Fig. 7. Gimbal angular velocities.Fig. 8UAV translational velocities.Fig. 9. Landing platform velocity estimation.
Figure 5 illustrates the 3D motion trajectories. The UAV trajectory (solid blue line) and platform path (red dashed line) are shown in Fig. 5a, with markers indicating positions at key timepoints (0 s, 5 s, 30 s).
Figure 5b shows the X-Y plane projection. Initial position offset at \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$t = 0$$\end{document} s is eliminated by \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$t = 5$$\end{document} s, after which precise trajectory tracking is maintained. Figure 5c demonstrates stable altitude regulation despite vertical platform oscillations, confirming the controller’s disturbance rejection capability.
Fig. 6 presents gimbal attitude convergence from \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varvec{\eta }_{g0}$$\end{document} to \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$[0, 0, 0]^T$$\end{document} rad within 5 s. Angular velocities (Fig. 7) and UAV linear velocities (Figure 8) exhibit smooth transitions with convergence near zero, validating the physical realizability of control commands from (28).
Figure 9 depicts the estimated landing platform velocity \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\hat{\varvec{V}}_m$$\end{document} . The estimator achieves stable velocity reconstruction within 5 s, with errors converging to near-zero values, demonstrating the effectiveness of the velocity estimation method for unknown moving targets described in before.Fig. 10A comparative analysis of feature point pixel trajectories under FOV-constraints.
Comparative simulations under FOV-constraints
To evaluate the effectiveness of incorporating camera FOV-constraints, a comparative simulation is conducted between the proposed landing algorithm and the conventional IBVS approach reported in paper ^36^. The corresponding results are presented in Figure 10.
Figure 10adepicts the pixel trajectories of the feature points, illustrating the evolution of image feature errors under the two controllers. In these plots, the circles near the center represent the initial positions of the feature points, the black crosses denote their final positions at the end of the simulation, and the solid colored circles indicate their desired pixel locations.
As shown in Figure 10a, under the proposed FOV-constraints controller, all four feature points remain within the camera’s visible range (demarcated by the red bounding box) and eventually converge to the vicinity of their desired positions. In contrast, Figure 10bpresents the trajectories generated by the conventional IBVS method. The trajectory segments where feature points exit the FOV are highlighted in grey. Although the feature points eventually converge close to their desired positions, in practice, once a feature point leaves the FOV, it becomes untrackable. Compared with Figure 10a, the unconstrained controller produces larger oscillations in the pixel space.Fig. 11. Block diagram of vision-constrained gimbal-servo UAV landing control system.Fig. 12A comparative analysis of feature point pixel errors under FOV-constraints.
A closer examination reveals that Feature Point 2 is the first to leave the FOV, as observed in Fig. 10. To further analyze this case, Figure 11 illustrates the evolution of its u coordinate error \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_{u2}$$\end{document} . The proposed method is shown in blue, while the conventional algorithm is shown in black. The FOV error bound is represented by a solid red line, and the region beyond the visible range is marked with a black dashed line. It can be seen that the proposed method ensures that the pixel error of Feature Point 2 always remains within the FOV, whereas the conventional IBVS method results in the error exceeding the FOV boundary at t = 0 s.
Furthermore, Figure 12 presents the evolution of the overall pixel error \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$e_s$$\end{document} . These results confirm that, in the absence of FOV-constraints, feature points are prone to leave the visible range, which not only causes a loss of tracking but may also lead to larger convergence errors. By contrast, the proposed FOV-constraints algorithm effectively guarantees that all feature points remain observable throughout the landing process, thereby enhancing the robustness and reliability of visual servo control.
Conclusion
This paper presented a vision-constrained gimbal-servo landing control algorithm for UAVs, designed to address the limitations of fixed-camera approaches in autonomous landing. By incorporating FOV constraints and exploiting the agility of a three-axis gimbal, the proposed controller ensures persistent visibility of image features throughout the descent. A prescribed performance-based framework was employed to rigorously regulate the transient and steady-state behavior of image feature errors, while a velocity observer was introduced to estimate platform motion in real time, enhancing robustness against unknown disturbances. Simulation studies demonstrated that the proposed method enables the UAV to achieve precise landing on a moving platform. The results confirmed that image feature errors and velocity estimation errors converge rapidly, the gimbal and UAV velocities remain smooth and physically realizable, and the landing trajectory closely aligns with the motion of the platform. Comparative analysis further highlighted that, unlike unconstrained IBVS controllers, the proposed approach successfully prevents feature points from leaving the FOV, thereby guaranteeing reliable tracking and significantly reducing oscillations in the image plane. Overall, the proposed algorithm provides a robust and adaptive framework for UAV autonomous landing under visual constraints. Its effectiveness in simulation suggests strong potential for real-world deployment, particularly in dynamic and unstructured environments. Future work will extend this study to hardware-in-the-loop experiments and outdoor flight tests, as well as investigate the integration of external disturbance rejection mechanisms to enhance adaptability under challenging environmental conditions.
The reference list from the paper itself. Each links out to its DOI / PubMed record.
- 1Moortgat-Pick, A., Schwahn, M., Adamczyk, A., Duecker, D. A. & Haddadin, S. Autonomous uav mission cycling: A mobile hub approach for precise landings and continuous operations in challenging environments. In 2024 IEEE International Conference on Robotics and Automation (ICRA), 8450–8456, 10.1109/ICRA 57147.2024.10611292 (2024).
- 2Springer, J., Þór Guðmundsson, G. & Kyas, M. A precision drone landing system using visual and ir fiducial markers and a multi-payload camera (2024). ar Xiv:2403.03806.
- 3Wang, Z., She, H. & Si, W. Autonomous landing of multi-rotors uav with monocular gimbaled camera on moving vehicle. In 2017 13th IEEE International Conference on Control & Automation (ICCA), 408–412, 10.1109/ICCA.2017.8003095 (2017).
- 4Carter, D. R., Duffey, P., Bachorski, S., Kägi, M. & Havlicsek, H. 2010 Weighted least-squares based control for a four axis gimbal set. In Technol. Synthetic Environ.: Hardware-in-the-Loop Test. XV 7663, 159–170.
- 5Hu, B., Lu, L. & Mishra, S. Fast, safe and precise landing of a quadrotor on an oscillating platform. In 2015 American Control Conference (ACC), 3836–3841, 10.1109/ACC.2015.7171928 (2015).
- 6Khalil, H. Nonlinear systems, printice-hall. Upper Saddle River, NJ 3 (1996).
- 7Li, Z., Wen, P., Wang, M. & Dai, S.-L. Image-based prescribed performance landing control with velocity observers for uav on mobile platform. In 2024 43rd Chinese Control Conference (CCC), 3036–3041, 10.23919/CCC 63176.2024.10661829 (2024).
