LogoLogo
  • Welcome
  • Vehicle Operation
    • Getting started
    • Auterion Suite
      • Dashboard
      • Fleet Management
        • Vehicles
          • Cloud Features
          • Groups
        • Flights
        • Compliance
      • Manufacturer
        • Service Bulletins
      • Administration
      • User Management
      • Simulations
    • Auterion Mission Control
      • Installation
      • First steps
      • UI Breakdown
        • Navigating between the views
        • Fly View
          • Fly View UI Overview
          • Vehicle status indicator
          • Flight mode selector
          • Quick actions sidebar
          • Connection manager
          • Vehicle Dashboard
          • Flight Map
          • Camera View
          • Monitoring the Flight
          • Flying Manually (RC/Joystick)
          • Flying a Mission
        • Plan View
          • Plan UI Overview
          • Plan tools
            • Mission Menu
            • Waypoint Missions
            • Survey Patterns
              • Area Survey
              • Corridor Scan
          • Mission Summary
          • Mission Editor Tab
            • Start Section
            • Mission Section
            • End Section
            • Extras
          • Terrain visualization
          • GeoFence
          • Rally Points
        • Quick Vehicle Menu
          • Pre-Flight Checklist
          • Connectivity
        • Photo Gallery
        • Settings
        • Pilot Login
      • Useful resources
        • Mission Planning
          • Mission Cloud Sync
          • Terrain Following
          • Import Geo-Awareness data or KML overlays
        • Maps and Custom Overlays
          • Using Offline Maps
          • Importing GeoPDF overlays
        • Track GCS as Smart Asset in Suite
        • Live PX4 Log Streaming
        • Monitor Local Flights with ADS-B
        • GPS Denied Workflow
        • Windows Crash Logs Analysis
        • Screen Recordings
    • Remote Controllers
      • Skynav Remote Controller
        • Installing Mission Control
        • Joystick and Button Mapping
        • Using LTE for Online Maps in the Field
        • Advanced Radio Settings
        • Drop Guards and Chest Strap
        • Unit Serial Number
    • Settings & Maintenance
      • Vehicle Setup
      • WiFi Setup
      • Compass Calibration
      • Safety Setup
      • Joystick Setup
      • Vehicle Web UI
      • Software Update
      • Remote ID
        • How Remote ID works
        • Remote ID indicators in AMC
        • Frequently Asked Questions
    • Precise Flight
  • App development
    • Getting Started
      • Development environment Setup
      • Connecting to a device
      • Application Development
    • App Framework
      • Building your First App
      • Apps API
      • Sensor Data
      • Video Streams
      • Photos
      • Hardware Peripherals
      • Persistent Storage
      • MAVLink
      • Native Docker Compose
      • App Parameters
      • Log App Data to Auterion Suite
        • How to log Time Series Data
        • How to log basic Text Output
      • How to store an App's Binary Data on Skynode
      • User Web Interfaces
      • Build Arguments
      • Debugging apps with SSH
      • Debugging Apps with gdb
      • PX4 Messages in ROS 2
      • DDS / ROS2 Configuration
      • Structuring Applications with Multiple Services
    • Auterion SDK
      • Installation
      • Write Your First App
      • SDK API
      • Flight Mode API
        • Flight Mode API
        • Dynamics in Body Frame
        • Dynamics in Local Frame
        • Go-To in Local Frame
      • System State API
      • Peripheral Actuator Control API
      • Camera API
      • Navigation Input API
        • Global Navigation
        • Local Navigation
      • Visual Tracking API
    • Simulation
      • Virtual Skynode
        • Simulation-Gazebo Reference
        • Simulation-AirSim Reference
        • Connecting from other Computers
        • Resetting Virtual Skynode
        • Multiple Virtual Skynodes on single machine
      • Physical Skynode
    • Resources
      • Cross Compilation - Faster Builds
      • Auterion CLI Reference
      • Troubleshooting
      • App Tutorial
      • Skynode Vision Kit S
        • Set up the Vision Kit
        • Install and test a simple vision app
    • Legacy app workflow
      • App Development
      • MAVLink
      • Using the App Template
      • Example Applications
        • Autopilot Telemetry (C++)
        • Autopilot Telemetry (Python)
        • Photo Gallery
  • Hardware Integration
    • Getting started
      • Required Sensors
      • Wiring Skynode to the Vehicle
      • Actuators Setup
      • Sensors Setup
        • Set Orientations
        • Compass Calibration
        • Gyroscope calibration
        • Accelerometer calibration
        • Level horizon calibration
        • Airspeed calibration
      • Bench Test
      • Tuning
      • Creating Airframe Configurations for APX4
    • Skynode
      • Skynode X
      • Skynode ENT/GOV
      • Skynode X Integration and Development Kit
        • Get Skynode ready
        • Power Skynode
        • Register Skynode
        • Connect Skynode to AMC
        • Sensors and Peripherals
        • Next steps
      • Payloads
        • Generic USB Webcams (UVC)
        • Workswell Wiris Pro
        • Trillium HD40-LV
        • NextVision Gimbals (with TRIP2)
        • Sony Alpha a7R IV
        • Phase One iXM-100
        • Gremsy Gimbals
      • Connectivity
        • USB-C Network Connection
        • WiFi
        • LTE Setup
        • SIYI MK15
        • Microhard Data Link
        • Data Link Wiring
        • Silvus Data Link
        • Doodle Labs Data Link
        • Custom Data Link
        • Ethernet Interface Configuration
      • Skynode LED Meanings
      • Troubleshooting
      • Legacy DSM/DSMX Support
      • Peripherals
        • Power Module
        • 12S Power Module
        • Pixhawk Adapter Board
        • Pixhawk Payload Bus
        • Data Link Module
        • PX4 F9P GPS
        • Freefly RTK GPS
        • Airspeed Sensor
        • LIDAR
        • USB camera
        • See3CAM_24CUG
    • Skynode S
      • Datasheet
      • Interfaces
      • Basic Vehicle Integration
      • Add LTE to Skynode S
      • Skynode S LED status indicator
      • Skynode S flight logs
    • AI Node
      • Datasheet
      • Evaluation Kit
        • Power AI Node
        • Wiring AI Node to Skynode
        • Internet sharing with Skynode
        • Activate AI Node on Suite
      • Dimensions and CAD model
      • Interfaces
      • Connectivity
        • USB Network Connection
        • Serial Debug Connection
        • AI Node as Network Bridge
        • Standalone Internet Access
      • Updating AuterionOS
    • Advanced Airframe Integration
      • Custom power setup
      • Wiring without Breakout Boards
      • Gripper Integration
        • Setting up Payload Delivery with Gripper
      • ESC Calibration
      • Camera Calibration
        • Camera Calibration on a Computer
        • Camera Calibration on Skynode
      • Serial Port Configuration
    • Flight controller customization
      • AMC's Advanced Mode
      • Flight Controller Shell
      • Micro XRCE-DDS
    • Software customization
    • AuterionOS Customization
      • OEM Tools Installation
      • Adding SSH keys
      • Changing the Root Password
      • Modifying Environment Variables
      • Pre-install Applications
      • Suite Manufacturer Tools
    • AuterionOS System Guide
      • Introduction
      • Flashing PX4 Binary and Vehicle Config
      • Building and Flashing PX4 Firmware
      • SSH Access
      • Filesystem and partitions
      • Environment Variables Reference
      • Types of AuterionOS Images
      • Mavlink Routing and Endpoints
      • Packaging AuterionOS Image
    • Additional Resources
      • Remote ID
        • How Remote ID works
        • Vehicle Serial Number
        • Communication Diagram
        • Remote ID configuration
        • How Auterion tested
      • Auto-Tuning
  • Release Notes
    • APX4
      • APX4 3.2
        • APX4 3.2.1
      • APX4 3.1
        • APX4 3.1.1
        • APX4 3.1.0
      • APX4 3.0
        • APX4 3.0.8
        • APX4 3.0.5
      • APX4 2.7
        • APX4 2.7.37
        • APX4 2.7.25
        • APX4 2.7.20
        • APX4 2.7.12
        • APX4 2.7.7
        • APX4 2.7.6
      • APX4 2.6
        • APX4 2.6.1
      • APX4 2.5
        • APX4 2.5.14
        • APX4 2.5.13
        • APX4 2.5.8
        • APX4 2.5.7
        • APX4 2.5.5
        • APX4 2.5.4
        • APX4 2.5.0
      • APX4 2.4
        • APX4 2.4.2
        • APX4 2.4.1
      • APX4 2.3
        • APX4 2.3.0
      • APX4 2.2
        • APX4 2.2.2
        • APX4 2.2.0
      • APX4 2.1
        • APX4 2.1.1
        • APX4 2.1.0
      • APX4 2.0
        • APX4 2.0.2
        • APX4 2.0.0
    • AuterionOS
      • AOS for AI Node
        • AI Node AOS 1.1.0
        • AI Node AOS 1.0.2
        • AI Node AOS 1.0.0
        • AI Node AOS 0.7.0
        • AI Node AOS 0.6.1
        • AI Node AOS 0.6.0
        • AI Node AOS 0.5.0
        • AI Node AOS 0.4.0
      • AOS for Skynode
        • AOS 3.7
          • AOS 3.7.14
          • AOS 3.7.9
        • AOS 3.6
          • AOS 3.6.14
        • AOS 3.5
          • AOS 3.5.13
        • AOS 3.3
          • AOS 3.3.9
        • AOS 3.2
          • AOS 3.2.9
        • AOS 2.19
          • AOS 2.19.14
        • AOS 2.15
          • AOS 2.15.10
          • AOS 2.15.7
        • AOS 2.12
          • AOS 2.12.8
        • AOS 2.10
          • AOS 2.10.2
        • AOS 2.8
          • AOS 2.8.1
        • AOS 2.7
          • AOS 2.7.15
        • AOS 2.6
          • AOS 2.6.1
        • AOS 2.5
          • AOS 2.5.14
          • AOS 2.5.13
          • AOS 2.5.8
          • AOS 2.5.7
          • AOS 2.5.5
          • AOS 2.5.4
          • AOS 2.5.0
        • AOS 2.4
          • AOS 2.4.1
        • AOS 2.3
          • AOS 2.3.0
        • AOS 2.2
          • AOS 2.2.2
          • AOS 2.2.0
        • AOS 2.1
          • AOS 2.1.1
          • AOS 2.1.0
        • AOS 2.0
          • AOS 2.0.2
          • AOS 2.0.0
    • Auterion Mission Control
      • AMC 1.34
        • AMC 1.34.19
        • AMC 1.34.14
      • AMC 1.33
        • AMC 1.33.13
      • AMC 1.32
        • AMC 1.32.7
      • AMC 1.30
        • AMC 1.30.17
      • AMC 1.29
        • AMC 1.29.7
      • AMC 1.26
        • AMC 1.26.8
      • AMC 1.22
        • AMC 1.22.3
      • AMC 1.19
        • AMC 1.19.5
      • AMC 1.18
        • AMC 1.18.3-1
        • AMC 1.18.3
      • AMC 1.17
        • AMC 1.17.10
        • AMC 1.17.9
      • AMC 1.15
        • AMC 1.15.0
      • AMC 1.14
        • AMC 1.14.6
        • AMC 1.14.0
      • AMC 1.13
      • AMC 1.12
      • AMC 1.11
      • AMC 1.10
        • AMC 1.10.1
        • AMC 1.10.0
      • AMC 1.9
        • AMC 1.9.1
        • AMC 1.9.0
      • AMC 1.8
    • Hardware
      • Skynode Rev 11 (Jan 2022)
Powered by GitBook
On this page
  • Angular rate and attitude controllers auto-tuning
  • Introduction
  • Preliminary test before attempting auto-tuning
  • Parameters relevant to auto-tuning
  • Auto-tuning procedure
  • Troubleshooting
  • The drone oscillates when performing the testing maneuvers prior to the multirotor auto-tuning
  • The auto-tuning sequence fails
  • The drone oscillates after auto-tuning
  1. Hardware Integration
  2. Additional Resources

Auto-Tuning

This page is specifically dedicated to the details of usage of the auto-tuning feature developed for Auterion PX4.

PreviousHow Auterion testedNextAPX4

Last updated 1 year ago

Angular rate and attitude controllers auto-tuning

Auto-tuning is a tool for the experienced flight control engineer meant to speed up the process of finding a suitable controller tuning for an unmanned aerial vehicle. Auto-tuning does not give any guarantee regarding the stability of the resulting tuning parameters applied to the system at hand. It is therefore imperative to have an experienced flight control engineer verify that the auto-tuned parameters are safe to fly with. In case you want to try autotuning parameters and feel unsure, please . Please provide a description of the vehicle such as shape, weight, size and include picture to speed up the process.\

Before using the auto-tuning, you need to make sure the drone can handle moderate disturbances. To test this, please read the section below and perform the .

Introduction

Preliminary test before attempting auto-tuning

To make sure the current controller is able to stabilize the drone during the auto-tune procedure, follow the steps below on how to perform a sanity check:

  1. For a multirotor drone, switch to altitude mode and then take off and hover at about 1m above ground. In case of a fixed-wing drone, fly at cruise speed in altitude or position mode.

  2. Starting with only a few degrees, slightly tilt the drone using the roll stick of the remote controller to perform the following maneuver: "roll left -> roll right -> center" (the whole maneuver should take about 3 seconds)

  3. Repeat the maneuver with larger amplitudes of up to ~20 degrees

  4. Repeat the same maneuvers but on the pitch axis

Parameters relevant to auto-tuning

When the auto-tuning sequence finishes , the gains can be applied following the behavior defined by the MC_AT_APPLY and FW_AT_APPLY parameters respectively:

  • 0: the gains are not applied. This is used for testing purposes if the user wants to inspect results of the auto-tuning algorithm without using them directly.

  • 1: apply the gains after disarm (default for multirotors). The operator can then test the new tuning while taking-off carefully.

  • 2: apply immediately (default for fixed-fings). The new tuning is applied, disturbances are sent to the controller and the stability is monitored during the next 4 seconds. If the control loop is unstable, the control gains are immediately reverted back to their previous value. If the test passes, the pilot can then use the new tuning.

Additionally, for fixed-wings, it is possible so select which axes are going to be tuned using the FW_AT_AXES bitmask parameter:

  • bit 0: roll (default)

  • bit 1: pitch (default)

  • bit 2: yaw

Auto-tuning procedure

The auto-tuning sequence needs to be performed in a safe flight zone, with enough space. For best results, it is recommended to fly in calm weather conditions.

For safety reasons, the sequence can be aborted at any time by the operator by moving the roll/pitch stick of the remote controller.

  1. Cases:

    1. Multirotors / VTOL planes in MC mode: Takeoff using the remote controller in altitude mode. If the drone is known to be stable in position controlled mode, it can also be flown in this mode during the auto-tuning or an automatic takeoff can be triggered from the ground station. Hover the vehicle at a safe distance and at a few meters above ground (between 4 and 20m).

    2. Fixed-wings / VTOL planes in FW mode: once flying at cruise speed, activate auto mode. This will guide the plane to fly in circle at constant altitude and speed. If enough distance is available, it is also possible to fly straight in altitude or position modes. However, this does not give a significantly better tuning result.

  2. The drone will first start to perform quick roll motions followed by pitch and yaw motions. The progress is shown in the progress bar, next to the Autotune button.

  3. When completed, depending on the value of MC/FW_AT_APPLY (see previous section), land and takeoff again to test the new tuning gains, or immediately use them.

  4. If any strong oscillations occur, land immediately and follow the instructions in the Troubleshooting section below. If questions remain, and for assistance, please contact the Auterion engineering team.

Troubleshooting

The drone oscillates when performing the testing maneuvers prior to the multirotor auto-tuning

  • slow oscillations (1 oscillation per second or slower): this often occurs on large platforms and means that the attitude loop is too fast compared to the rate loop -> decrease MC_[ROLL|PITCH]_P by steps of 1.0.

  • fast oscillations (more than 1 oscillation per second): this is because the gain of the rate loop is too high -> decrease MC_[ROLL|PITCH|YAW]RATE_K by steps of 0.1

The auto-tuning sequence fails

If the drone was not moving enough during auto-tuning, the system identification algorithm might have issues to find the correct coefficients. Increase the MC/FW_AT_SYS_ID by steps of 1 and trigger the auto-tune again.

The drone oscillates after auto-tuning

Due to effects not included in the mathematical model such as delays, saturation, slew-rate, airframe flexibility, the loop gain can be too high. To fix this, reduce the MC_[ROLL|PITCH|YAW]RATE_K parameters by steps of 0.1 until the oscillation stops. If a slow oscillation appears, reduce FW_[RPY]R_P by steps of 0.5.

Self-tuning of the rate and attitude controllers needs to be performed in flight. For this reason, the drone must be able to fly decently before using the auto-tuning feature. In most cases, a multirotor or fixed-wing drone can fly with the default parameters of a similar airframe in terms of size and weight. A default configuration is loaded during the initial setup of the drone. Check the section for more details, as well as our guide on creating custom airframes if necessary: Creating Airframe Configurations for APX4

If the drone can stabilize itself after each maneuver without doing more than two oscillations, it is ready for the auto-tuning procedure. If not, go to the section of this page.

Perform the detailed previously

Set the parameters MC_AT_APPLY and FW_AT_APPLY as explained in the section

In (AMC) go to the Tuning tab of the Vehicle setup page, stop moving the joysticks and click on the Autotune button (Fig 1). Read the warning popup and click on "OK" when ready.

For further assistance, please .

PX4's official Airframe Setup
Auterion Mission Control
submit a ticket
troubleshooting
preliminary test
previous
submit a ticket
introduction
preliminary test
Overview of the auto-tuning workflow
Fig 1: Tuning Setup page in AMC - the auto-tuning section can be found on the middle section