[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [paparazzi-commits] [paparazzi/paparazzi] d8523b: INDI on master,
GitHub <=