paparazzi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paparazzi-commits] [paparazzi/paparazzi] d8523b: INDI on master


From: GitHub
Subject: [paparazzi-commits] [paparazzi/paparazzi] d8523b: INDI on master
Date: Tue, 30 Jun 2015 06:01:32 -0700

  Branch: refs/heads/master
  Home:   https://github.com/paparazzi/paparazzi
  Commit: d8523be00088b6fa0bb60daeff5e8874ba9e0c25
      
https://github.com/paparazzi/paparazzi/commit/d8523be00088b6fa0bb60daeff5e8874ba9e0c25
  Author: Ewoud Smeur <address@hidden>
  Date:   2015-06-29 (Mon, 29 Jun 2015)

  Changed paths:
    A conf/airframes/ardrone2_indi.xml
    A conf/firmwares/subsystems/rotorcraft/stabilization_indi.makefile
    M conf/messages.xml
    A conf/settings/control/stabilization_att_indi.xml
    M conf/telemetry/default_rotorcraft.xml
    A 
sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_quat_indi.c
    A 
sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_quat_indi.h

  Log Message:
  -----------
  INDI on master


  Commit: a1aa5edc5080748afb1f34315717e78e5be27c22
      
https://github.com/paparazzi/paparazzi/commit/a1aa5edc5080748afb1f34315717e78e5be27c22
  Author: Ewoud Smeur <address@hidden>
  Date:   2015-06-30 (Tue, 30 Jun 2015)

  Changed paths:
    M 
sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_quat_indi.c
    M 
sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_quat_indi.h

  Log Message:
  -----------
  indi variables in struct and learning limits


  Commit: 50c159ea9dbe1a8851f99fea358fd617a9a43a28
      
https://github.com/paparazzi/paparazzi/commit/50c159ea9dbe1a8851f99fea358fd617a9a43a28
  Author: Felix Ruess <address@hidden>
  Date:   2015-06-30 (Tue, 30 Jun 2015)

  Changed paths:
    A conf/airframes/ardrone2_indi.xml
    A conf/firmwares/subsystems/rotorcraft/stabilization_indi.makefile
    M conf/messages.xml
    A conf/settings/control/stabilization_att_indi.xml
    M conf/telemetry/default_rotorcraft.xml
    A 
sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_quat_indi.c
    A 
sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_quat_indi.h

  Log Message:
  -----------
  Merge pull request #1207 from EwoudSmeur/indi_simplified

simplified INDI stabilization for rotorcrafts

This is a slightly simplified version of the Incremental Nonlinear Dynamic 
Inversion (INDI) controller I made for quadrotor attitude control. I tried to 
condense it to a form where it can be useful and understandable for others.

I submitted a paper to the journal of guidance, control and dynamics which 
covers all the details. In short: By measuring the angular acceleration (which 
is obtained by deriving and filtering it from the gyroscope) we can measure how 
much the actual angular acceleration differs from the desired angular 
acceleration. By multiplying this with the inverse of the actuator 
effectiveness we get the correct increment of the input that will result in the 
desired increment in angular acceleration. The main benefit is that 
disturbances can be rapidly compensated and nonlinear dynamics are controlled 
better.

It also contains an adaptive algorithm, that will update the actuator 
effectiveness in flight. You can take off with a drone without knowing the 
actuator effectiveness and it will learn this during the flight, removing the 
need for tuning. The only thing you need is a constant for the first order 
approximation of the motor dynamics. This can be measured with a step response, 
and a value for the ARDrone is included. I will upload more airframes later.

I hope it will be easy to apply to other airframes, but it is hard to guarantee 
that the adaptive least mean squares algorithm will converge to the right 
values, because it depends on the amount of filtering and the adaptation rate 
(these are linked). In general: if the airframe is well-damped it will work 
better.

In the airframe file I kept the normal attitude stabilization section, to be 
able to switch easily. A small problem is that the setpoint defines need the 
prefix STABILIZATION_ATTITUDE, so they are taken from the 
STABILIZATION_ATTITUDE section instead of the STABILIZATION_INDI section. I 
wasn't sure how to get around this.


Compare: 
https://github.com/paparazzi/paparazzi/compare/03cd5e9596db...50c159ea9dbe

reply via email to

[Prev in Thread] Current Thread [Next in Thread]