Disturbance-Observer-Based Precision Tracking Control for Insulator Cleaning Drones

Maintaining the operational integrity of high-voltage transmission lines is paramount for modern power grids. A critical component requiring regular maintenance is the insulator, which is susceptible to contamination from dust, salt, and industrial pollutants. Traditional cleaning methods, such as manual wiping or live-line washing with handheld guns or manned helicopters, present significant challenges including safety risks, high operational costs, and logistical complexities. The advent of multi-rotor Unmanned Aerial Vehicles (UAVs) offers a promising, flexible, and cost-effective alternative for this task. A specialized cleaning drone can be equipped with a precision spray system to apply cleaning agents or water jets directly onto the insulator surfaces without the need for power shutdowns. However, the operational stability of such a cleaning drone is severely challenged by external disturbances. Specifically, the reactive force (or backlash) generated by the high-pressure water jet and unpredictable wind gusts can destabilize the UAV, leading to imprecise spraying, inefficient cleaning, and potential collisions. Therefore, developing a robust flight control system capable of rejecting these disturbances while accurately tracking a predefined trajectory is essential for the reliable deployment of cleaning drones.

This paper addresses the precise trajectory tracking problem for an insulator cleaning drone under the influence of time-varying external disturbances. We propose a novel hierarchical control framework centered on Nonlinear Disturbance Observers (NDOs). The core innovation lies in the synthesis of thrust and torque feedback control laws that actively compensate for estimated disturbances. Unlike simple PID strategies that may exhibit steady-state errors under persistent disturbances, or robust control methods like H∞ that are complex to tune, our approach provides asymptotic disturbance rejection and guarantees that the tracking error can be made arbitrarily small. This is a crucial feature for a cleaning drone that must maintain a precise position and orientation relative to the insulator string. The control design is rigorously supported by Lyapunov stability analysis, and its superior performance is validated through numerical simulations comparing it against a conventional cascade PID controller.

1. Dynamic Modeling of the Cleaning Drone

To design an effective controller, we first establish a mathematical model for the cleaning drone. We consider a standard multi-rotor UAV (e.g., a quadrotor or octocopter) equipped with a cleaning mechanism. The following standard assumptions are made to simplify the model while retaining the essential dynamics for control design:

  1. The UAV is a rigid body with its center of mass coinciding with its geometric center.
  2. The inertia matrix is constant and diagonal.
  3. During the stable cleaning operation, the roll ($\phi$) and pitch ($\theta$) angles are small ($< \pi/2$).
  4. Terms like the Coriolis and gyroscopic effects in the rotational dynamics are considered negligible compared to the dominant control torques and disturbances for a cleaning drone in relatively slow, precision flight.

Let $\mathcal{I} = \{O_E, x_E, y_E, z_E\}$ denote an inertial, earth-fixed frame, and $\mathcal{B} = \{O_B, x_B, y_B, z_B\}$ denote a body-fixed frame attached to the UAV’s center of mass. The key states of the system are:

  • Position and Linear Velocity: $ \mathbf{p} = [x, y, z]^T \in \mathbb{R}^3 $ and $ \mathbf{v} = \dot{\mathbf{p}} \in \mathbb{R}^3 $ expressed in $\mathcal{I}$.
  • Attitude (Euler Angles): $ \boldsymbol{\eta} = [\phi, \theta, \psi]^T $ representing roll, pitch, and yaw.
  • Angular Velocity: $ \boldsymbol{\omega} = [p, q, r]^T \in \mathbb{R}^3 $ expressed in $\mathcal{B}$.

The rotation matrix $\mathbf{R}(\boldsymbol{\eta}) \in SO(3)$ mapping from $\mathcal{B}$ to $\mathcal{I}$ is given by:
$$ \mathbf{R} = \begin{bmatrix}
C_\theta C_\psi & S_\phi S_\theta C_\psi – C_\phi S_\psi & C_\phi S_\theta C_\psi + S_\phi S_\psi \\
C_\theta S_\psi & S_\phi S_\theta S_\psi + C_\phi C_\psi & C_\phi S_\theta S_\psi – S_\phi C_\psi \\
-S_\theta & S_\phi C_\theta & C_\phi C_\theta
\end{bmatrix} $$
where $C_\alpha = \cos(\alpha)$ and $S_\alpha = \sin(\alpha)$.

The complete dynamic model, incorporating disturbances, is presented below. The parameters are summarized in Table 1.

Table 1: Parameters of the Cleaning Drone Model
Symbol Description Unit
$m$ Total mass (including payload) kg
$\mathbf{J} = \text{diag}(J_x, J_y, J_z)$ Diagonal inertia matrix kg·m²
$g$ Gravitational acceleration m/s²
$f$ Total thrust (control input) N
$\boldsymbol{\tau} = [\tau_\phi, \tau_\theta, \tau_\psi]^T$ Control torque vector N·m
$\mathbf{d}_p(t)$ External disturbance on translational dynamics (e.g., jet backlash, wind) N
$\mathbf{d}_\eta(t)$ External disturbance on rotational dynamics (e.g., wind gusts, unbalanced payload) N·m

Translational Dynamics:
$$ \dot{\mathbf{p}} = \mathbf{v} $$
$$ m \dot{\mathbf{v}} = -\frac{1}{m} f \mathbf{R} \mathbf{e}_3 + g \mathbf{e}_3 + \mathbf{d}_p $$
where $\mathbf{e}_3 = [0, 0, 1]^T$.

Rotational Dynamics:
$$ \dot{\boldsymbol{\eta}} = \boldsymbol{\omega} $$
$$ \mathbf{J} \dot{\boldsymbol{\omega}} = \boldsymbol{\tau} + \mathbf{d}_\eta $$
Note: For small angles, the relationship $\dot{\boldsymbol{\eta}} \approx \boldsymbol{\omega}$ is used, simplifying the attitude kinematics.

Control Objective: Given a desired cleaning trajectory $\mathbf{p}_d(t)$ and a desired yaw angle $\psi_d(t)$, which are assumed to be at least twice differentiable (Assumption 1), design control inputs $f$ and $\boldsymbol{\tau}$ such that the cleaning drone tracks them with arbitrary precision despite the disturbances $\mathbf{d}_p$ and $\mathbf{d}_\eta$. Formally, for any arbitrarily small $\epsilon > 0$, the controller should ensure:
$$ \limsup_{t \to \infty} \left( \| \mathbf{p}(t) – \mathbf{p}_d(t) \| + \| \boldsymbol{\eta}(t) – \boldsymbol{\eta}_d(t) \| \right) \leq \epsilon $$
where $\boldsymbol{\eta}_d(t) = [\phi_d(t), \theta_d(t), \psi_d(t)]^T$. The desired roll and pitch angles ($\phi_d, \theta_d$) are not directly specified but are derived from the position control command, as will be shown later.

We also make a practical assumption about the disturbances (Assumption 2): they are differentiable and their derivatives are bounded, i.e., $\| \dot{\mathbf{d}}_p \| \leq d_1$ and $\| \dot{\mathbf{d}}_\eta \| \leq d_2$. This is reasonable for a cleaning drone as the jet force is relatively steady during operation, and wind gusts do not change with infinite speed.

2. Disturbance-Observer-Based Controller Design

The control structure follows a standard inner-outer loop scheme but is augmented with disturbance observers at both levels. The outer position loop computes the required total thrust $f$ and the desired attitude $\boldsymbol{\eta}_d$. The inner attitude loop generates the control torque $\boldsymbol{\tau}$ to achieve this desired attitude. NDOs estimate and cancel the disturbances in each loop.

2.1 Position Tracking Control with Disturbance Rejection

First, we define tracking errors for the position loop. Let $\mathbf{z}_1 = \mathbf{p} – \mathbf{p}_d$. We introduce a virtual control state $\mathbf{z}_2$:
$$ \mathbf{z}_2 = \mathbf{v} – \dot{\mathbf{p}}_d + \mathbf{K}_1 \mathbf{z}_1 $$
where $\mathbf{K}_1 = k_1 \mathbf{I}_{3\times3} > 0$ is a diagonal gain matrix.

To counteract $\mathbf{d}_p$, we design a Nonlinear Disturbance Observer (NDO):
$$ \dot{\mathbf{z}}_{p} = -\mathbf{K}_p \mathbf{z}_{p} – \mathbf{K}_p \left( \mathbf{K}_p \mathbf{v} + g\mathbf{e}_3 – \frac{1}{m} \mathbf{u} \right) $$
$$ \hat{\mathbf{d}}_p = \mathbf{z}_{p} + \mathbf{K}_p \mathbf{v} $$
where $\mathbf{z}_p$ is the observer’s internal state, $\hat{\mathbf{d}}_p$ is the disturbance estimate, $\mathbf{K}_p = k_p \mathbf{I}_{3\times3} > 0$ is the observer gain matrix, and $\mathbf{u} = f\mathbf{R}\mathbf{e}_3$ is an intermediate control variable representing the total thrust vector in the inertial frame. The estimation error is defined as $\tilde{\mathbf{d}}_p = \mathbf{d}_p – \hat{\mathbf{d}}_p$.

The virtual control law $\mathbf{u}$ is designed as:
$$ \mathbf{u} = m \left[ \mathbf{z}_1 + \mathbf{K}_2 \mathbf{z}_2 + g\mathbf{e}_3 + \hat{\mathbf{d}}_p – \ddot{\mathbf{p}}_d + \mathbf{K}_1 (\mathbf{v} – \dot{\mathbf{p}}_d) \right] $$
where $\mathbf{K}_2 = k_2 \mathbf{I}_{3\times3} > 0$. This law combines PD-type tracking, gravity compensation, disturbance compensation, and feedforward of desired acceleration.

Stability Analysis (Sketch): Consider the Lyapunov function candidate for the position subsystem:
$$ V_p = \frac{1}{2} \mathbf{z}_1^T \mathbf{z}_1 + \frac{1}{2} \mathbf{z}_2^T \mathbf{z}_2 + \frac{1}{2} \tilde{\mathbf{d}}_p^T \tilde{\mathbf{d}}_p $$
Using the dynamics and the observer error equation $\dot{\tilde{\mathbf{d}}}_p = \dot{\mathbf{d}}_p – \mathbf{K}_p \tilde{\mathbf{d}}_p$, the derivative $\dot{V}_p$ can be shown to satisfy:
$$ \dot{V}_p \leq -\sigma_1 V_p + \frac{1}{2} d_1^2 $$
where $\sigma_1 > 0$ is a constant dependent on the gains $\mathbf{K}_1, \mathbf{K}_2, \mathbf{K}_p$. According to the Lyapunov theory for ultimately bounded systems, this guarantees that the position tracking error $\mathbf{z}_1$ and the disturbance estimation error $\tilde{\mathbf{d}}_p$ are uniformly ultimately bounded. Furthermore, by choosing gains to make $\sigma_1$ sufficiently large, the ultimate bound on $\|\mathbf{z}_1\|$ can be made arbitrarily small, meeting the control objective for position.

2.2 Attitude Tracking Control with Disturbance Rejection

The output of the position controller is $\mathbf{u} = [u_x, u_y, u_z]^T$. From the definition $\mathbf{u} = f\mathbf{R}\mathbf{e}_3$, we can solve for the actual thrust magnitude $f$ and the desired roll and pitch angles $\phi_d, \theta_d$ that align the thrust vector to achieve $\mathbf{u}$ while maintaining the desired yaw $\psi_d$:
$$ f = \|\mathbf{u}\| = \sqrt{u_x^2 + u_y^2 + u_z^2} \quad \text{(or more robustly, } f = u_z / (C_{\phi_d} C_{\theta_d}) \text{)} $$
$$ \phi_d = \arctan\left( \frac{C_{\theta_d}(u_x S_{\psi_d} – u_y C_{\psi_d})}{u_z} \right) $$
$$ \theta_d = \arctan\left( \frac{u_x C_{\psi_d} + u_y S_{\psi_d}}{u_z} \right) $$
These equations define the attitude setpoint $\boldsymbol{\eta}_d = [\phi_d, \theta_d, \psi_d]^T$ for the inner loop.

Similar to the position loop, we define attitude tracking errors:
$$ \boldsymbol{\zeta}_1 = \boldsymbol{\eta} – \boldsymbol{\eta}_d $$
$$ \boldsymbol{\zeta}_2 = \boldsymbol{\omega} – \dot{\boldsymbol{\eta}}_d + \mathbf{K}_3 \boldsymbol{\zeta}_1 $$
with $\mathbf{K}_3 = k_3 \mathbf{I}_{3\times3} > 0$.

The NDO for the attitude loop is:
$$ \dot{\mathbf{z}}_{\eta} = -\mathbf{K}_\eta \mathbf{z}_{\eta} – \mathbf{K}_\eta \left( \mathbf{K}_\eta \boldsymbol{\omega} + \mathbf{J}^{-1} \boldsymbol{\tau} \right) $$
$$ \hat{\mathbf{d}}_\eta = \mathbf{z}_{\eta} + \mathbf{K}_\eta \boldsymbol{\omega} $$
where $\mathbf{K}_\eta = k_\eta \mathbf{I}_{3\times3} > 0$. The estimation error is $\tilde{\mathbf{d}}_\eta = \mathbf{d}_\eta – \hat{\mathbf{d}}_\eta$.

The torque control law is designed as:
$$ \boldsymbol{\tau} = \mathbf{J} \left[ -\boldsymbol{\zeta}_1 – \mathbf{K}_4 \boldsymbol{\zeta}_2 + \ddot{\boldsymbol{\eta}}_d – \mathbf{K}_3 (\boldsymbol{\omega} – \dot{\boldsymbol{\eta}}_d) – \hat{\mathbf{d}}_\eta \right] $$
where $\mathbf{K}_4 = k_4 \mathbf{I}_{3\times3} > 0$.

Stability Analysis (Sketch): A parallel Lyapunov analysis using $V_\eta = \frac{1}{2} \boldsymbol{\zeta}_1^T \boldsymbol{\zeta}_1 + \frac{1}{2} \boldsymbol{\zeta}_2^T \boldsymbol{\zeta}_2 + \frac{1}{2} \tilde{\mathbf{d}}_\eta^T \tilde{\mathbf{d}}_\eta$ yields:
$$ \dot{V}_\eta \leq -\sigma_2 V_\eta + \frac{1}{2} d_2^2 $$
where $\sigma_2 > 0$ depends on $\mathbf{K}_3, \mathbf{K}_4, \mathbf{K}_\eta$. This proves the uniform ultimate boundedness of the attitude tracking error $\boldsymbol{\zeta}_1$, with its bound being arbitrarily reducible by increasing the control gains.

2.3 Integrated Control Law for the Cleaning Drone

The complete, integrated control algorithm for the insulator cleaning drone is summarized below. This algorithm runs in real-time on the drone’s flight controller.

Step 1: Compute Position Control.
Given $\mathbf{p}_d, \dot{\mathbf{p}}_d, \ddot{\mathbf{p}}_d, \psi_d$ and current states $\mathbf{p}, \mathbf{v}$:
1. Calculate errors: $\mathbf{z}_1 = \mathbf{p} – \mathbf{p}_d$, $\mathbf{z}_2 = \mathbf{v} – \dot{\mathbf{p}}_d + \mathbf{K}_1 \mathbf{z}_1$.
2. Update the position NDO to obtain $\hat{\mathbf{d}}_p$.
3. Compute virtual control: $\mathbf{u} = m \left[ \mathbf{z}_1 + \mathbf{K}_2 \mathbf{z}_2 + g\mathbf{e}_3 + \hat{\mathbf{d}}_p – \ddot{\mathbf{p}}_d + \mathbf{K}_1 (\mathbf{v} – \dot{\mathbf{p}}_d) \right]$.

Step 2: Calculate Desired Attitude and Thrust.
1. Calculate total thrust: $f = \sqrt{u_x^2 + u_y^2 + u_z^2}$ (or use the division formula for small angles).
2. Calculate desired roll/pitch:
$$ \theta_d = \arctan\left( \frac{u_x \cos\psi_d + u_y \sin\psi_d}{u_z} \right) $$
$$ \phi_d = \arctan\left( \frac{\cos\theta_d (u_x \sin\psi_d – u_y \cos\psi_d)}{u_z} \right) $$
Set $\boldsymbol{\eta}_d = [\phi_d, \theta_d, \psi_d]^T$.

Step 3: Compute Attitude Control.
Given $\boldsymbol{\eta}_d, \dot{\boldsymbol{\eta}}_d, \ddot{\boldsymbol{\eta}}_d$ and current states $\boldsymbol{\eta}, \boldsymbol{\omega}$:
1. Calculate errors: $\boldsymbol{\zeta}_1 = \boldsymbol{\eta} – \boldsymbol{\eta}_d$, $\boldsymbol{\zeta}_2 = \boldsymbol{\omega} – \dot{\boldsymbol{\eta}}_d + \mathbf{K}_3 \boldsymbol{\zeta}_1$.
2. Update the attitude NDO to obtain $\hat{\mathbf{d}}_\eta$.
3. Compute torque: $\boldsymbol{\tau} = \mathbf{J} \left[ -\boldsymbol{\zeta}_1 – \mathbf{K}_4 \boldsymbol{\zeta}_2 + \ddot{\boldsymbol{\eta}}_d – \mathbf{K}_3 (\boldsymbol{\omega} – \dot{\boldsymbol{\eta}}_d) – \hat{\mathbf{d}}_\eta \right]$.

Step 4: Actuator Allocation.
For an X-configuration octocopter cleaning drone, the thrust $f$ and torque $\boldsymbol{\tau}$ are mapped to individual motor speeds $\bar{\omega}_i$ via the control effectiveness matrix $\mathbf{M}_8$:
$$ \begin{bmatrix} f \\ \tau_\phi \\ \tau_\theta \\ \tau_\psi \end{bmatrix} = \mathbf{M}_8 \begin{bmatrix} \bar{\omega}_1^2 \\ \bar{\omega}_2^2 \\ \vdots \\ \bar{\omega}_8^2 \end{bmatrix} \quad \Rightarrow \quad \begin{bmatrix} \bar{\omega}_1^2 \\ \bar{\omega}_2^2 \\ \vdots \\ \bar{\omega}_8^2 \end{bmatrix} = \mathbf{M}_8^{\dagger} \begin{bmatrix} f \\ \tau_\phi \\ \tau_\theta \\ \tau_\psi \end{bmatrix} $$
where $\mathbf{M}_8^{\dagger}$ is the pseudo-inverse of $\mathbf{M}_8$.

3. Simulation Results and Analysis

To validate the performance of the proposed NDO-based controller (NDOB) for the cleaning drone, we conducted numerical simulations in MATLAB/Simulink and compared it against a widely-used cascade PID controller. The drone parameters are listed in Table 2.

Table 2: Simulation Parameters for the Cleaning Drone
Parameter Value Unit
Mass, $m$ 1.117 kg
Inertia, $J_x, J_y, J_z$ 0.0098, 0.0092, 0.0179 kg·m²
Gravity, $g$ 9.81 m/s²

Desired Trajectory: A smooth cleaning path was chosen.
$$ \mathbf{p}_d(t) = \begin{bmatrix} 2\cos(\pi t / 2) \\ \sin(\pi t / 2) \\ 0.5t \end{bmatrix} \text{m}, \quad \psi_d(t) = 0 \text{ rad}. $$
This represents a helical ascent along the insulator column.

Disturbance Models: To rigorously test the cleaning drone controller, we injected significant, time-varying disturbances plus sensor noise.
Translational Disturbance $\mathbf{d}_p$: Simulates combined jet backlash and wind.
$$ d_{p,x} = 0.6\sin(0.1\pi t) + 0.4\cos(\pi t) + w_{n1} $$
$$ d_{p,y} = 0.5\cos(0.1\pi t) + 0.5\sin(\pi t) + w_{n2} $$
$$ d_{p,z} = 0.7\sin(0.1\pi t) + 0.3\cos(\pi t) + w_{n3} $$
Rotational Disturbance $\mathbf{d}_\eta$: Simulates torque disturbances from wind gusts.
$$ d_{\eta,\phi} = 0.5\sin(0.1\pi t) + 0.4\cos(\pi t) + w_{n4} $$
$$ d_{\eta,\theta} = 0.3\cos(0.1\pi t) + 0.4\sin(\pi t) + w_{n5} $$
$$ d_{\eta,\psi} = 0.5\sin(0.1\pi t) + 0.3\cos(\pi t) + w_{n6} $$
Here, $w_{ni}$ represents band-limited white noise. Additionally, large step disturbances were injected at $t=5s$: $\mathbf{d}_{p,step} = [2, 2, 3]^T$ N and $\mathbf{d}_{\eta,step} = [0.9, 0.9, 0.9]^T$ N·m, simulating a sudden change in jet pressure or a strong wind gust.

Controller Gains: The gains for the NDOB controller were tuned for optimal performance. The cascade PID controller was tuned according to standard practices for multi-rotor UAVs.

The simulation results are summarized in Table 3 and described below.

Table 3: Comparison of Maximum Steady-State Tracking Errors
Control Method Max Pos. Error $||\mathbf{p}-\mathbf{p}_d||$ Max Att. Error $||\boldsymbol{\eta}-\boldsymbol{\eta}_d||$ Recovery from Step Dist.
Proposed NDOB < 0.15 m < 0.17 rad Fast, smooth recovery
Cascade PID 0.2 m – 0.7 m 0.1 rad – 0.3 rad Slow, oscillatory recovery

Performance Analysis:
1. Tracking Accuracy: The proposed NDOB controller maintained superior tracking precision throughout the simulation. The position error (Fig. 1) remained tightly bounded below 0.15 m, even in the presence of complex time-varying disturbances. In contrast, the PID controller exhibited significantly larger and more variable errors (0.2 m to 0.7 m). This precision is critical for a cleaning drone to ensure the spray consistently hits the target insulator.
2. Disturbance Rejection: The key strength of the NDOB controller is evident in its response to the step disturbance at t=5s. Both the position and attitude loops (Fig. 2) exhibited a fast and smooth recovery to the original tracking performance, thanks to the rapid and accurate estimation by the NDOs. The PID controller, lacking explicit disturbance estimation, showed a pronounced and oscillatory deviation, taking much longer to settle.
3. Control Effort: The control inputs $f$ and $\boldsymbol{\tau}$ for the NDOB controller were smooth and remained within practical limits. The initial transients and the activity during the step disturbance were direct, purposeful actions to cancel the estimated disturbances, not high-frequency chattering.
4. Attitude Tracking: The inner loop performance (Fig. 3) directly impacts stability. The NDOB controller kept attitude errors very small (<0.17 rad), ensuring the cleaning drone maintained the correct orientation for both flight and spraying. The PID controller had comparable but slightly worse and less consistent attitude tracking.

These results conclusively demonstrate that the NDO-based control framework significantly enhances the robustness and precision of an insulator cleaning drone operating in a disturbed environment, outperforming conventional PID control.

4. Conclusion and Future Work

This paper presented a comprehensive solution for the precise trajectory tracking control of an insulator cleaning drone subject to time-varying external disturbances such as water jet backlash and wind gusts. The core of the solution is a hierarchical control law augmented with Nonlinear Disturbance Observers at both the position and attitude levels. The proposed method offers several key advantages for this application:

  1. Asymptotic Disturbance Rejection: The NDOs provide accurate, real-time estimates of the disturbances, allowing the controller to cancel their effect actively, leading to asymptotically stable error dynamics.
  2. Arbitrarily Small Tracking Error: Through Lyapunov-based analysis, it was proven that the ultimate bound on the tracking error can be made arbitrarily small by appropriately selecting control gains, fulfilling the high-precision requirement of cleaning operations.
  3. Practical Stability: The control structure accounts for practical assumptions (bounded disturbance derivatives) and provides uniform ultimate boundedness, which is sufficient for real-world cleaning drone operations.

The numerical simulations confirmed the theoretical findings, showing that the NDOB controller maintains precise tracking (errors < 0.15 m, < 0.17 rad) under significant composite disturbances and recovers swiftly from sudden shock-like disturbances, outperforming a standard cascade PID controller.

Future work will focus on the physical implementation and testing of this control algorithm on a prototype insulator cleaning drone. This will involve addressing practical challenges such as sensor noise filtering, real-time computational constraints, actuator dynamics, and the integration of the cleaning mechanism’s dynamics into the control model. Furthermore, research into adaptive or learning-based techniques to tune the observer and controller gains online could enhance the autonomy and adaptability of the cleaning drone in diverse and uncertain field conditions.

Scroll to Top