We address the problem of controlling a hierarchical system composed of high-level and low-level loops, subject to both matched and unmatched uncertainties with a priori unknown structure. To tackle this challenge, we employ an adaptive observer in the low-level loop to estimate the uncertainties and to make the controlled system behave as close as possible to the nominal model used to design the high-level control. A stability analysis of the hierarchical control architecture is presented. Comparative experiments on a flight control numerical benchmark demonstrate that the proposed approach outperforms several state-of-the-art methods, including those based on fixed control gains or adaptive control gains.
This work presents an adaptive open-source implementation of ArduPilot: the adaptive mechanisms in the autopilot are inspired by model reference stabilization (MRS) and are seamlessly embedded into the open-source ArduPilot suite. We illustrate MRS ArduPilot for the ArduPlane and ArduCopter modules (fixed-wing and rotary-wing vehicles): yet, the approach is general enough to be applicable to all aerial/surface/marine vehicles of ArduPilot, and even to PX4. Our tests show that the embedded adaptation makes the vehicle capable of handling uncertain scenarios like wind and varying payloads. The source code of MRS ArduPilot is released at https://github.com/Sunsun24/MRS.git
We release an autopilot that is fully compatible with all the vehicle types the ArduPilot suite was designed for (copters, multi-copters, fixed-wing aircraft, rovers, surface vessels, etc.). The main feature of this autopilot is that adaptation capabilities are embedded without modifying the original ArduPilot architecture, hence the name ADArduPilot. We test the proposed autopilot in several scenarios requiring adaptation (different payloads, different vehicle mass, environmental disturbances), showing that the proposed adaptation mechanism can consistently deliver improved performance in terms of tracking error and control effort.
This article presents an adaptive method for ArduPilot-based autopilots of fixed-wing unmanned aerial vehicles (UAVs). ArduPilot is a popular open-source unmanned vehicle software suite. We explore how to augment the PID loops embedded inside ArduPilot with a model-free adaptive control method. The adaptive augmentation, adopted for both attitude and total energy control, uses input/output data without requiring an explicit model of the UAV. The augmented architecture is tested in a software-in-the-loop UAV platform in the presence of several uncertainties (unmodeled low-level dynamics, different payloads, time-varying wind, and changing mass). The performance is measured in terms of tracking errors and control efforts of the attitude and total energy control loops. Extensive experiments with the original ArduPilot, the proposed augmentation, and alternative autopilot strategies show that the augmentation can significantly improve the performance for all payloads and wind conditions: the UAV is less affected by wind and exhibits more than 70% improved tracking, with more than 7% reduced control effort.
The operation of Unmanned Aerial Vehicles (UAVs) is often subject to state-dependent alterations and unstructured uncertainty factors, such as unmodelled dynamics, environmental weather disturbances, aerodynamics gradients, or changes in inertia and mass due to payloads. While a large number of autopilot solutions have been proposed to operate UAVs, none of these solutions is able to counteract the effects of state-dependent and unstructured uncertainties online by parameter estimation and adaptive control techniques. This work presents a systematic integration of adaptive control into ArduPilot, a popular open-source autopilot suite maintained by a large community of UAV developers. Adaptation features are embedded in the ArduPilot control structure without altering the original architecture, to allow users to use the autopilot suite as usual. Tests show that the proposed adaptive ArduPilot provides consistent improved performance in several uncertain flight conditions. The source code of the proposed adaptive ArduPilot is released at https://github.com/ Friend-Peng/Adaptive- ArduPilot-Autopilot.