diff --git a/conf/airframes/CDW/ChimuLisaFw.xml b/conf/airframes/CDW/ChimuLisaFw.xml
index 49bb81b77a..c41fbb30a9 100644
--- a/conf/airframes/CDW/ChimuLisaFw.xml
+++ b/conf/airframes/CDW/ChimuLisaFw.xml
@@ -66,7 +66,7 @@
-
+
@@ -77,7 +77,7 @@
-
+
@@ -85,21 +85,21 @@
diff --git a/conf/airframes/CDW/ChimuTinyFw.xml b/conf/airframes/CDW/ChimuTinyFw.xml
index 8bb3dc7a19..75af2eac19 100644
--- a/conf/airframes/CDW/ChimuTinyFw.xml
+++ b/conf/airframes/CDW/ChimuTinyFw.xml
@@ -90,7 +90,7 @@
-
+
@@ -101,7 +101,7 @@
-
+
@@ -109,7 +109,7 @@
-
+
@@ -117,13 +117,13 @@
-
+
-
-
+
+
diff --git a/conf/airframes/CDW/ChimuTinyFwSpi.xml b/conf/airframes/CDW/ChimuTinyFwSpi.xml
index 530b6bc7f4..fd896e3c2a 100644
--- a/conf/airframes/CDW/ChimuTinyFwSpi.xml
+++ b/conf/airframes/CDW/ChimuTinyFwSpi.xml
@@ -90,7 +90,7 @@
-
+
@@ -101,7 +101,7 @@
-
+
@@ -109,7 +109,7 @@
-
+
@@ -117,13 +117,13 @@
-
+
-
-
+
+
diff --git a/conf/airframes/CDW/debug_i2c.xml b/conf/airframes/CDW/debug_i2c.xml
index ecb9ae64f1..33919cb9ea 100644
--- a/conf/airframes/CDW/debug_i2c.xml
+++ b/conf/airframes/CDW/debug_i2c.xml
@@ -84,9 +84,9 @@
-
-
-
+
+
+
@@ -115,17 +115,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -172,12 +172,12 @@
-
-
+
+
@@ -189,10 +189,10 @@
diff --git a/conf/airframes/ENAC/fixed-wing/firestorm.xml b/conf/airframes/ENAC/fixed-wing/firestorm.xml
index c281de4dc1..8f1f2e60a9 100644
--- a/conf/airframes/ENAC/fixed-wing/firestorm.xml
+++ b/conf/airframes/ENAC/fixed-wing/firestorm.xml
@@ -149,7 +149,7 @@
-
+
@@ -160,12 +160,12 @@
-
+
-
+
@@ -175,23 +175,23 @@
diff --git a/conf/airframes/ENAC/fixed-wing/funjet2.xml b/conf/airframes/ENAC/fixed-wing/funjet2.xml
index 40ed286e60..fc1eea3acf 100644
--- a/conf/airframes/ENAC/fixed-wing/funjet2.xml
+++ b/conf/airframes/ENAC/fixed-wing/funjet2.xml
@@ -144,7 +144,7 @@
-
+
@@ -155,12 +155,12 @@
-
+
-
+
@@ -170,15 +170,15 @@
-
+
-
-
+
+
-
+
diff --git a/conf/airframes/ENAC/fixed-wing/funjet2_nc.xml b/conf/airframes/ENAC/fixed-wing/funjet2_nc.xml
index c37c57e674..b81515dc1d 100644
--- a/conf/airframes/ENAC/fixed-wing/funjet2_nc.xml
+++ b/conf/airframes/ENAC/fixed-wing/funjet2_nc.xml
@@ -149,7 +149,7 @@
-
+
@@ -160,14 +160,14 @@
-
+
-
-
-
+
+
+
@@ -190,20 +190,20 @@
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
diff --git a/conf/airframes/ENAC/fixed-wing/funjet2_new.xml b/conf/airframes/ENAC/fixed-wing/funjet2_new.xml
index 1b8c04bc0d..34c951909d 100644
--- a/conf/airframes/ENAC/fixed-wing/funjet2_new.xml
+++ b/conf/airframes/ENAC/fixed-wing/funjet2_new.xml
@@ -149,7 +149,7 @@
-
+
@@ -160,14 +160,14 @@
-
-
+
+
-
-
-
+
+
+
@@ -190,20 +190,20 @@
-
+
-
-
-
+
+
+
-
-
-
+
+
+
diff --git a/conf/airframes/ENAC/fixed-wing/funjet3.xml b/conf/airframes/ENAC/fixed-wing/funjet3.xml
index 7994869e47..4474096979 100644
--- a/conf/airframes/ENAC/fixed-wing/funjet3.xml
+++ b/conf/airframes/ENAC/fixed-wing/funjet3.xml
@@ -120,7 +120,7 @@
-
+
@@ -133,15 +133,15 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -167,20 +167,20 @@
-
+
-
-
-
+
+
+
-
+
-
+
diff --git a/conf/airframes/ENAC/fixed-wing/merlin.xml b/conf/airframes/ENAC/fixed-wing/merlin.xml
index aff770ec3b..42b93e31db 100644
--- a/conf/airframes/ENAC/fixed-wing/merlin.xml
+++ b/conf/airframes/ENAC/fixed-wing/merlin.xml
@@ -119,7 +119,7 @@
-
+
@@ -130,14 +130,14 @@
-
+
-
-
-
+
+
+
@@ -151,20 +151,20 @@
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
diff --git a/conf/airframes/ENAC/fixed-wing/minimag1.xml b/conf/airframes/ENAC/fixed-wing/minimag1.xml
index 98be9ac59d..a416db1dc2 100644
--- a/conf/airframes/ENAC/fixed-wing/minimag1.xml
+++ b/conf/airframes/ENAC/fixed-wing/minimag1.xml
@@ -131,7 +131,7 @@
-
+
@@ -142,12 +142,12 @@
-
+
-
+
@@ -156,7 +156,7 @@
-
+
@@ -164,7 +164,7 @@
-
+
diff --git a/conf/airframes/ENAC/fixed-wing/obsolete/drops.xml b/conf/airframes/ENAC/fixed-wing/obsolete/drops.xml
index d31460909d..558226830c 100644
--- a/conf/airframes/ENAC/fixed-wing/obsolete/drops.xml
+++ b/conf/airframes/ENAC/fixed-wing/obsolete/drops.xml
@@ -132,7 +132,7 @@ on
-
+
@@ -143,12 +143,12 @@ on
-
+
-
+
@@ -158,23 +158,23 @@ on
diff --git a/conf/airframes/ENAC/fixed-wing/obsolete/funjet1.xml b/conf/airframes/ENAC/fixed-wing/obsolete/funjet1.xml
index 6b13ce095a..8d1e2ca662 100644
--- a/conf/airframes/ENAC/fixed-wing/obsolete/funjet1.xml
+++ b/conf/airframes/ENAC/fixed-wing/obsolete/funjet1.xml
@@ -115,7 +115,7 @@
-
+
@@ -126,12 +126,12 @@
-
+
-
+
@@ -142,23 +142,23 @@
diff --git a/conf/airframes/ENAC/fixed-wing/obsolete/malolo_sim.xml b/conf/airframes/ENAC/fixed-wing/obsolete/malolo_sim.xml
index f85500fd6a..daddc4fc3a 100644
--- a/conf/airframes/ENAC/fixed-wing/obsolete/malolo_sim.xml
+++ b/conf/airframes/ENAC/fixed-wing/obsolete/malolo_sim.xml
@@ -113,7 +113,7 @@
-
+
@@ -124,12 +124,12 @@
-
+
-
+
@@ -139,23 +139,23 @@
diff --git a/conf/airframes/ENAC/fixed-wing/obsolete/slayer2.xml b/conf/airframes/ENAC/fixed-wing/obsolete/slayer2.xml
index 05f6d33121..454e24bb65 100644
--- a/conf/airframes/ENAC/fixed-wing/obsolete/slayer2.xml
+++ b/conf/airframes/ENAC/fixed-wing/obsolete/slayer2.xml
@@ -113,7 +113,7 @@
-
+
@@ -124,13 +124,13 @@
-
+
-
+
@@ -140,21 +140,21 @@
diff --git a/conf/airframes/ENAC/fixed-wing/obsolete/solarstorm.xml b/conf/airframes/ENAC/fixed-wing/obsolete/solarstorm.xml
index 2db888b270..cf30dd8658 100644
--- a/conf/airframes/ENAC/fixed-wing/obsolete/solarstorm.xml
+++ b/conf/airframes/ENAC/fixed-wing/obsolete/solarstorm.xml
@@ -118,7 +118,7 @@
-
+
@@ -129,12 +129,12 @@
-
+
-
+
@@ -144,29 +144,29 @@
diff --git a/conf/airframes/ENAC/fixed-wing/obsolete/spocII.xml b/conf/airframes/ENAC/fixed-wing/obsolete/spocII.xml
index dccb44c269..a36cb2fa2f 100644
--- a/conf/airframes/ENAC/fixed-wing/obsolete/spocII.xml
+++ b/conf/airframes/ENAC/fixed-wing/obsolete/spocII.xml
@@ -120,7 +120,7 @@
-
+
@@ -131,12 +131,12 @@
-
+
-
+
@@ -146,23 +146,23 @@
diff --git a/conf/airframes/ENAC/fixed-wing/overview.xml b/conf/airframes/ENAC/fixed-wing/overview.xml
index eb26eb4613..d98916856e 100644
--- a/conf/airframes/ENAC/fixed-wing/overview.xml
+++ b/conf/airframes/ENAC/fixed-wing/overview.xml
@@ -119,7 +119,7 @@
-
+
@@ -130,12 +130,12 @@
-
+
-
+
@@ -145,15 +145,15 @@
-
+
-
-
+
+
-
+
diff --git a/conf/airframes/ENAC/fixed-wing/soarzi.xml b/conf/airframes/ENAC/fixed-wing/soarzi.xml
index fc8011f4aa..9766aaf447 100644
--- a/conf/airframes/ENAC/fixed-wing/soarzi.xml
+++ b/conf/airframes/ENAC/fixed-wing/soarzi.xml
@@ -110,7 +110,7 @@
-
+
@@ -121,12 +121,12 @@
-
+
-
+
@@ -136,7 +136,7 @@
-
+
@@ -144,7 +144,7 @@
-
+
diff --git a/conf/airframes/ENAC/fixed-wing/spocIII-1.xml b/conf/airframes/ENAC/fixed-wing/spocIII-1.xml
index 30477c3b21..5feea6c8a7 100644
--- a/conf/airframes/ENAC/fixed-wing/spocIII-1.xml
+++ b/conf/airframes/ENAC/fixed-wing/spocIII-1.xml
@@ -121,7 +121,7 @@
-
+
@@ -132,12 +132,12 @@
-
+
-
+
@@ -147,23 +147,23 @@
diff --git a/conf/airframes/ENAC/fixed-wing/spocIII-2.xml b/conf/airframes/ENAC/fixed-wing/spocIII-2.xml
index 8ca2f3ebe7..872c679760 100644
--- a/conf/airframes/ENAC/fixed-wing/spocIII-2.xml
+++ b/conf/airframes/ENAC/fixed-wing/spocIII-2.xml
@@ -124,7 +124,7 @@
-
+
@@ -139,15 +139,15 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -174,21 +174,21 @@
-
+
-
-
-
+
+
+
-
-
-
+
+
+
diff --git a/conf/airframes/ENAC/fixed-wing/spocIII-3.xml b/conf/airframes/ENAC/fixed-wing/spocIII-3.xml
index 631d75a1f0..61c1e445c5 100644
--- a/conf/airframes/ENAC/fixed-wing/spocIII-3.xml
+++ b/conf/airframes/ENAC/fixed-wing/spocIII-3.xml
@@ -127,7 +127,7 @@
-
+
@@ -142,15 +142,15 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -177,21 +177,21 @@
-
+
-
-
-
+
+
+
-
-
-
+
+
+
diff --git a/conf/airframes/ENAC/fixed-wing/twinjet2.xml b/conf/airframes/ENAC/fixed-wing/twinjet2.xml
index 91cf90a9cb..187f4f4f92 100644
--- a/conf/airframes/ENAC/fixed-wing/twinjet2.xml
+++ b/conf/airframes/ENAC/fixed-wing/twinjet2.xml
@@ -131,7 +131,7 @@
-
+
@@ -142,15 +142,15 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -164,21 +164,21 @@
-
+
-
+
-
-
-
+
+
+
-
-
-
+
+
+
diff --git a/conf/airframes/ENAC/fixed-wing/weasel.xml b/conf/airframes/ENAC/fixed-wing/weasel.xml
index 655d81553d..6fc2dbab9d 100644
--- a/conf/airframes/ENAC/fixed-wing/weasel.xml
+++ b/conf/airframes/ENAC/fixed-wing/weasel.xml
@@ -144,7 +144,7 @@
-
+
@@ -157,15 +157,15 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -191,20 +191,20 @@
-
+
-
-
-
+
+
+
-
+
-
+
diff --git a/conf/airframes/ENAC/quadrotor/blender.xml b/conf/airframes/ENAC/quadrotor/blender.xml
index e6a47257d5..44e4371d67 100644
--- a/conf/airframes/ENAC/quadrotor/blender.xml
+++ b/conf/airframes/ENAC/quadrotor/blender.xml
@@ -142,9 +142,9 @@
-
-
-
+
+
+
@@ -173,17 +173,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -208,8 +208,8 @@
-
-
+
+
@@ -218,10 +218,10 @@
diff --git a/conf/airframes/ENAC/quadrotor/booz2_g1.xml b/conf/airframes/ENAC/quadrotor/booz2_g1.xml
index 3232d17180..2c55323d36 100644
--- a/conf/airframes/ENAC/quadrotor/booz2_g1.xml
+++ b/conf/airframes/ENAC/quadrotor/booz2_g1.xml
@@ -105,9 +105,9 @@
-
-
-
+
+
+
@@ -136,17 +136,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -170,8 +170,8 @@
-
-
+
+
@@ -182,10 +182,10 @@
diff --git a/conf/airframes/ENAC/quadrotor/g1_vision.xml b/conf/airframes/ENAC/quadrotor/g1_vision.xml
index b346f87f90..1a9fd10b02 100644
--- a/conf/airframes/ENAC/quadrotor/g1_vision.xml
+++ b/conf/airframes/ENAC/quadrotor/g1_vision.xml
@@ -79,9 +79,9 @@
-
-
-
+
+
+
@@ -110,17 +110,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -152,8 +152,8 @@
-
-
+
+
@@ -164,10 +164,10 @@
diff --git a/conf/airframes/ENAC/quadrotor/mkk1-vision.xml b/conf/airframes/ENAC/quadrotor/mkk1-vision.xml
index d67ba5f0be..653ae0fafe 100644
--- a/conf/airframes/ENAC/quadrotor/mkk1-vision.xml
+++ b/conf/airframes/ENAC/quadrotor/mkk1-vision.xml
@@ -99,9 +99,9 @@
-
-
-
+
+
+
@@ -111,9 +111,9 @@
-
-
-
+
+
+
@@ -143,17 +143,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -186,8 +186,8 @@
-
-
+
+
@@ -197,10 +197,10 @@
diff --git a/conf/airframes/ENAC/quadrotor/mkk1.xml b/conf/airframes/ENAC/quadrotor/mkk1.xml
index 5ea9bfa549..752a5d2aa5 100644
--- a/conf/airframes/ENAC/quadrotor/mkk1.xml
+++ b/conf/airframes/ENAC/quadrotor/mkk1.xml
@@ -129,9 +129,9 @@
-
-
-
+
+
+
@@ -141,9 +141,9 @@
-
-
-
+
+
+
@@ -173,17 +173,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -206,8 +206,8 @@
-
-
+
+
@@ -217,10 +217,10 @@
diff --git a/conf/airframes/ENAC/quadrotor/navgo.xml b/conf/airframes/ENAC/quadrotor/navgo.xml
index 745662131c..5b898ba78f 100644
--- a/conf/airframes/ENAC/quadrotor/navgo.xml
+++ b/conf/airframes/ENAC/quadrotor/navgo.xml
@@ -158,9 +158,9 @@
-
-
-
+
+
+
@@ -189,17 +189,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -219,8 +219,8 @@
-
-
+
+
@@ -229,10 +229,10 @@
diff --git a/conf/airframes/ENAC/quadrotor/nova1.xml b/conf/airframes/ENAC/quadrotor/nova1.xml
index 545c1038e8..6b7a49cf36 100644
--- a/conf/airframes/ENAC/quadrotor/nova1.xml
+++ b/conf/airframes/ENAC/quadrotor/nova1.xml
@@ -100,9 +100,9 @@
-
-
-
+
+
+
@@ -112,9 +112,9 @@
-
-
-
+
+
+
@@ -144,17 +144,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -177,8 +177,8 @@
-
-
+
+
@@ -188,10 +188,10 @@
diff --git a/conf/airframes/LAAS/mmlaas_N1.xml b/conf/airframes/LAAS/mmlaas_N1.xml
index 795c167978..d56a35d931 100644
--- a/conf/airframes/LAAS/mmlaas_N1.xml
+++ b/conf/airframes/LAAS/mmlaas_N1.xml
@@ -140,7 +140,7 @@
-
+
@@ -151,12 +151,12 @@
-
+
-
+
@@ -166,15 +166,15 @@
@@ -182,7 +182,7 @@
diff --git a/conf/airframes/LAAS/mmlaas_N2.xml b/conf/airframes/LAAS/mmlaas_N2.xml
index d2804f4425..d5f35f384d 100644
--- a/conf/airframes/LAAS/mmlaas_N2.xml
+++ b/conf/airframes/LAAS/mmlaas_N2.xml
@@ -136,7 +136,7 @@
-
+
@@ -147,12 +147,12 @@
-
+
-
+
@@ -162,15 +162,15 @@
@@ -178,7 +178,7 @@
diff --git a/conf/airframes/LAAS/mmlaas_N3.xml b/conf/airframes/LAAS/mmlaas_N3.xml
index 4c3654119e..8eb4d5dde1 100644
--- a/conf/airframes/LAAS/mmlaas_N3.xml
+++ b/conf/airframes/LAAS/mmlaas_N3.xml
@@ -136,7 +136,7 @@
-
+
@@ -147,12 +147,12 @@
-
+
-
+
@@ -162,15 +162,15 @@
@@ -178,7 +178,7 @@
diff --git a/conf/airframes/NoVa_L.xml b/conf/airframes/NoVa_L.xml
index 6a995299f0..09e9ba1a0e 100644
--- a/conf/airframes/NoVa_L.xml
+++ b/conf/airframes/NoVa_L.xml
@@ -112,9 +112,9 @@
-
-
-
+
+
+
@@ -143,17 +143,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -200,12 +200,12 @@
-
-
+
+
@@ -217,10 +217,10 @@
diff --git a/conf/airframes/PPZUAV/fixed-wing/ppzimu_tiny.xml b/conf/airframes/PPZUAV/fixed-wing/ppzimu_tiny.xml
index b2aa803eda..602b5dd20d 100644
--- a/conf/airframes/PPZUAV/fixed-wing/ppzimu_tiny.xml
+++ b/conf/airframes/PPZUAV/fixed-wing/ppzimu_tiny.xml
@@ -127,7 +127,7 @@
-
+
@@ -138,7 +138,7 @@
-
+
@@ -146,7 +146,7 @@
-
+
@@ -154,14 +154,14 @@
-
+
-
+
diff --git a/conf/airframes/PPZUAV/quadrotor/ppzuav_booz2_asctec_example.xml b/conf/airframes/PPZUAV/quadrotor/ppzuav_booz2_asctec_example.xml
index 8e8f29094a..039210f933 100644
--- a/conf/airframes/PPZUAV/quadrotor/ppzuav_booz2_asctec_example.xml
+++ b/conf/airframes/PPZUAV/quadrotor/ppzuav_booz2_asctec_example.xml
@@ -76,9 +76,9 @@
-
-
-
+
+
+
@@ -108,30 +108,30 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -160,9 +160,9 @@
-
-
-
+
+
+
@@ -171,9 +171,9 @@
diff --git a/conf/airframes/PPZUAV/quadrotor/ppzuav_booz2_mkk_example.xml b/conf/airframes/PPZUAV/quadrotor/ppzuav_booz2_mkk_example.xml
index 378aa2f8ea..9dcfcbfb62 100644
--- a/conf/airframes/PPZUAV/quadrotor/ppzuav_booz2_mkk_example.xml
+++ b/conf/airframes/PPZUAV/quadrotor/ppzuav_booz2_mkk_example.xml
@@ -76,9 +76,9 @@
-
-
-
+
+
+
@@ -109,31 +109,31 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -178,9 +178,9 @@
-
-
-
+
+
+
@@ -189,9 +189,9 @@
diff --git a/conf/airframes/Poine/booz2_a1.xml b/conf/airframes/Poine/booz2_a1.xml
index 493d489ba4..994704b005 100644
--- a/conf/airframes/Poine/booz2_a1.xml
+++ b/conf/airframes/Poine/booz2_a1.xml
@@ -90,9 +90,9 @@
-
-
-
+
+
+
@@ -122,17 +122,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -151,9 +151,9 @@
-
-
-
+
+
+
@@ -163,9 +163,9 @@
diff --git a/conf/airframes/Poine/booz2_a1p.xml b/conf/airframes/Poine/booz2_a1p.xml
index 097c2993de..b400829f6e 100644
--- a/conf/airframes/Poine/booz2_a1p.xml
+++ b/conf/airframes/Poine/booz2_a1p.xml
@@ -88,9 +88,9 @@
-
-
-
+
+
+
@@ -120,17 +120,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -155,9 +155,9 @@
-
-
-
+
+
+
@@ -167,9 +167,9 @@
diff --git a/conf/airframes/Poine/booz2_a7.xml b/conf/airframes/Poine/booz2_a7.xml
index 9faac66fac..aee822cb0a 100644
--- a/conf/airframes/Poine/booz2_a7.xml
+++ b/conf/airframes/Poine/booz2_a7.xml
@@ -84,9 +84,9 @@
-
-
-
+
+
+
@@ -115,17 +115,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -172,12 +172,12 @@
-
-
+
+
@@ -189,10 +189,10 @@
diff --git a/conf/airframes/Poine/easy_glider1.xml b/conf/airframes/Poine/easy_glider1.xml
index 3bd44a7ea7..6c489be107 100644
--- a/conf/airframes/Poine/easy_glider1.xml
+++ b/conf/airframes/Poine/easy_glider1.xml
@@ -94,7 +94,7 @@
-
+
@@ -105,7 +105,7 @@
-
+
@@ -113,21 +113,21 @@
diff --git a/conf/airframes/Poine/funjet42.xml b/conf/airframes/Poine/funjet42.xml
index 5d97a1cb11..bd61934340 100644
--- a/conf/airframes/Poine/funjet42.xml
+++ b/conf/airframes/Poine/funjet42.xml
@@ -118,7 +118,7 @@
-
+
@@ -127,12 +127,12 @@
-
+
-
+
@@ -141,14 +141,14 @@
-
+
-
+
diff --git a/conf/airframes/Poine/h_hex.xml b/conf/airframes/Poine/h_hex.xml
index 255f460a26..2026f69d02 100644
--- a/conf/airframes/Poine/h_hex.xml
+++ b/conf/airframes/Poine/h_hex.xml
@@ -86,9 +86,9 @@
-
-
-
+
+
+
@@ -117,17 +117,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -146,9 +146,9 @@
-
-
-
+
+
+
@@ -158,9 +158,9 @@
diff --git a/conf/airframes/Poine/swift_1.xml b/conf/airframes/Poine/swift_1.xml
index 3d34bdc37a..970c7cf8e4 100644
--- a/conf/airframes/Poine/swift_1.xml
+++ b/conf/airframes/Poine/swift_1.xml
@@ -112,7 +112,7 @@
-
+
@@ -121,12 +121,12 @@
-
+
-
+
@@ -135,14 +135,14 @@
-
+
-
+
diff --git a/conf/airframes/TU_Delft/EasyStartPanTiltCHIMU_SPI.xml b/conf/airframes/TU_Delft/EasyStartPanTiltCHIMU_SPI.xml
index 7f6f6ea37c..ba06b1beed 100644
--- a/conf/airframes/TU_Delft/EasyStartPanTiltCHIMU_SPI.xml
+++ b/conf/airframes/TU_Delft/EasyStartPanTiltCHIMU_SPI.xml
@@ -91,7 +91,7 @@
-
+
@@ -102,7 +102,7 @@
-
+
@@ -110,7 +110,7 @@
-
+
@@ -118,13 +118,13 @@
-
+
-
-
+
+
diff --git a/conf/airframes/TU_Delft/MicrojetBR.xml b/conf/airframes/TU_Delft/MicrojetBR.xml
index ddf94c4484..1f8f270954 100644
--- a/conf/airframes/TU_Delft/MicrojetBR.xml
+++ b/conf/airframes/TU_Delft/MicrojetBR.xml
@@ -109,7 +109,7 @@
-
+
@@ -120,12 +120,12 @@
-
+
-
+
@@ -135,18 +135,18 @@
-
+
-
+
-
-
+
+
@@ -167,7 +167,7 @@
diff --git a/conf/airframes/TU_Delft/MicrojetBRimu.xml b/conf/airframes/TU_Delft/MicrojetBRimu.xml
index b952175c80..45f61c2641 100644
--- a/conf/airframes/TU_Delft/MicrojetBRimu.xml
+++ b/conf/airframes/TU_Delft/MicrojetBRimu.xml
@@ -144,7 +144,7 @@
-
+
@@ -160,7 +160,7 @@
-
+
@@ -170,7 +170,7 @@
-
+
@@ -178,11 +178,11 @@
-
+
-
-
+
+
@@ -203,7 +203,7 @@
diff --git a/conf/airframes/TU_Delft/MicrojetCDW.xml b/conf/airframes/TU_Delft/MicrojetCDW.xml
index b3f56673cf..3ae16b42a4 100644
--- a/conf/airframes/TU_Delft/MicrojetCDW.xml
+++ b/conf/airframes/TU_Delft/MicrojetCDW.xml
@@ -128,7 +128,7 @@
-
+
@@ -146,19 +146,19 @@
diff --git a/conf/airframes/TU_Delft/Trip50A.xml b/conf/airframes/TU_Delft/Trip50A.xml
index 500f836d4f..994f0b9d40 100644
--- a/conf/airframes/TU_Delft/Trip50A.xml
+++ b/conf/airframes/TU_Delft/Trip50A.xml
@@ -112,19 +112,19 @@
-
+
+
-
+
-
-
+
+
-
+
@@ -136,7 +136,7 @@
-
+
@@ -144,7 +144,7 @@
-
+
@@ -152,15 +152,15 @@
-
+
-
-
+
+
diff --git a/conf/airframes/TU_Delft/skywalkerfiber.xml b/conf/airframes/TU_Delft/skywalkerfiber.xml
index daaef74cfe..8c3adb94f7 100644
--- a/conf/airframes/TU_Delft/skywalkerfiber.xml
+++ b/conf/airframes/TU_Delft/skywalkerfiber.xml
@@ -251,7 +251,7 @@
-
+
@@ -262,7 +262,7 @@
-
+
@@ -272,7 +272,7 @@
-
+
@@ -280,15 +280,15 @@
-
+
-
-
+
+
diff --git a/conf/airframes/UofAdelaide/A1000_BOOZ.xml b/conf/airframes/UofAdelaide/A1000_BOOZ.xml
index a1de5fec40..aab64eeeab 100644
--- a/conf/airframes/UofAdelaide/A1000_BOOZ.xml
+++ b/conf/airframes/UofAdelaide/A1000_BOOZ.xml
@@ -152,13 +152,13 @@ second attempt
-
-
-
+
+
+
-
-
-
+
+
+
@@ -166,9 +166,9 @@ second attempt
+
+
+ -->
@@ -196,17 +196,17 @@ second attempt
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -225,9 +225,9 @@ second attempt
-
-
-
+
+
+
@@ -236,9 +236,9 @@ second attempt
diff --git a/conf/airframes/UofAdelaide/A1000_LISA.xml b/conf/airframes/UofAdelaide/A1000_LISA.xml
index 54ab42de05..ebd6bd5bbe 100644
--- a/conf/airframes/UofAdelaide/A1000_LISA.xml
+++ b/conf/airframes/UofAdelaide/A1000_LISA.xml
@@ -84,9 +84,9 @@
-
-
-
+
+
+
@@ -115,13 +115,13 @@
+ -->
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -162,9 +162,9 @@
-
-
-
+
+
+
@@ -174,9 +174,9 @@
diff --git a/conf/airframes/UofAdelaide/A1000_NOVA.xml b/conf/airframes/UofAdelaide/A1000_NOVA.xml
index f6da7f4fcc..5bc4f2fbc9 100644
--- a/conf/airframes/UofAdelaide/A1000_NOVA.xml
+++ b/conf/airframes/UofAdelaide/A1000_NOVA.xml
@@ -79,13 +79,13 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -119,30 +119,30 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -185,8 +185,8 @@
-
-
+
+
@@ -196,11 +196,11 @@
diff --git a/conf/airframes/UofAdelaide/booz2_NoVa_001_1000.xml b/conf/airframes/UofAdelaide/booz2_NoVa_001_1000.xml
index 550ef036c3..062a08ed32 100644
--- a/conf/airframes/UofAdelaide/booz2_NoVa_001_1000.xml
+++ b/conf/airframes/UofAdelaide/booz2_NoVa_001_1000.xml
@@ -79,13 +79,13 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -119,30 +119,30 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -185,8 +185,8 @@
-
-
+
+
@@ -196,11 +196,11 @@
diff --git a/conf/airframes/UofAdelaide/booz2_a1000.xml b/conf/airframes/UofAdelaide/booz2_a1000.xml
index f46a9fbbe9..b42cb89a90 100755
--- a/conf/airframes/UofAdelaide/booz2_a1000.xml
+++ b/conf/airframes/UofAdelaide/booz2_a1000.xml
@@ -151,13 +151,13 @@ second attempt
-
-
-
+
+
+
-
-
-
+
+
+
@@ -165,9 +165,9 @@ second attempt
+
+
+ -->
@@ -196,17 +196,17 @@ second attempt
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -226,9 +226,9 @@ second attempt
-
-
-
+
+
+
@@ -238,9 +238,9 @@ second attempt
diff --git a/conf/airframes/UofAdelaide/lisa_a1000.xml b/conf/airframes/UofAdelaide/lisa_a1000.xml
index ac45acf0c9..50be06bc31 100644
--- a/conf/airframes/UofAdelaide/lisa_a1000.xml
+++ b/conf/airframes/UofAdelaide/lisa_a1000.xml
@@ -81,9 +81,9 @@
-
-
-
+
+
+
@@ -112,17 +112,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -141,9 +141,9 @@
-
-
-
+
+
+
@@ -153,9 +153,9 @@
diff --git a/conf/airframes/booz2_flixr.xml b/conf/airframes/booz2_flixr.xml
index d36ddb88d5..6f381ae18c 100644
--- a/conf/airframes/booz2_flixr.xml
+++ b/conf/airframes/booz2_flixr.xml
@@ -125,13 +125,13 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -165,17 +165,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -194,9 +194,9 @@
-
-
-
+
+
+
@@ -205,9 +205,9 @@
diff --git a/conf/airframes/booz2_ppzuav.xml b/conf/airframes/booz2_ppzuav.xml
index 09f4cfc87c..602e744aa7 100644
--- a/conf/airframes/booz2_ppzuav.xml
+++ b/conf/airframes/booz2_ppzuav.xml
@@ -64,13 +64,13 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -104,30 +104,30 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -160,8 +160,8 @@
-
-
+
+
@@ -171,11 +171,11 @@
diff --git a/conf/airframes/delta_wing_minimal_example.xml b/conf/airframes/delta_wing_minimal_example.xml
index 927b9e7864..d9d1ce0dab 100644
--- a/conf/airframes/delta_wing_minimal_example.xml
+++ b/conf/airframes/delta_wing_minimal_example.xml
@@ -101,7 +101,7 @@
-
+
@@ -110,12 +110,12 @@
-
+
-
+
@@ -124,14 +124,14 @@
-
+
-
+
diff --git a/conf/airframes/demo_module.xml b/conf/airframes/demo_module.xml
index e43fc6cfb6..a4ee7bea79 100644
--- a/conf/airframes/demo_module.xml
+++ b/conf/airframes/demo_module.xml
@@ -93,7 +93,7 @@
-
+
@@ -103,12 +103,12 @@
-
+
-
+
@@ -116,19 +116,19 @@
diff --git a/conf/airframes/easy_glider_example.xml b/conf/airframes/easy_glider_example.xml
index 8fde61a734..c5e961ff91 100644
--- a/conf/airframes/easy_glider_example.xml
+++ b/conf/airframes/easy_glider_example.xml
@@ -87,7 +87,7 @@
-
+
@@ -98,7 +98,7 @@
-
+
@@ -106,21 +106,21 @@
diff --git a/conf/airframes/easystar_ets_example.xml b/conf/airframes/easystar_ets_example.xml
index 754e80baee..7fcba768ea 100644
--- a/conf/airframes/easystar_ets_example.xml
+++ b/conf/airframes/easystar_ets_example.xml
@@ -115,7 +115,7 @@
-
+
@@ -124,7 +124,7 @@
-
+
@@ -134,7 +134,7 @@
-
+
@@ -142,15 +142,15 @@
diff --git a/conf/airframes/easystar_example.xml b/conf/airframes/easystar_example.xml
index 6763ad6666..7a8a513af7 100644
--- a/conf/airframes/easystar_example.xml
+++ b/conf/airframes/easystar_example.xml
@@ -109,7 +109,7 @@
-
+
@@ -118,10 +118,10 @@
-
+
-
+
@@ -129,15 +129,15 @@
diff --git a/conf/airframes/esden/jt_lisam.xml b/conf/airframes/esden/jt_lisam.xml
index ea97bc4dfa..86b1693f8a 100644
--- a/conf/airframes/esden/jt_lisam.xml
+++ b/conf/airframes/esden/jt_lisam.xml
@@ -75,9 +75,9 @@
-
-
-
+
+
+
@@ -108,17 +108,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -137,9 +137,9 @@
-
-
-
+
+
+
@@ -157,9 +157,9 @@
diff --git a/conf/airframes/esden/lisa_asctec.xml b/conf/airframes/esden/lisa_asctec.xml
index 29e07554de..00857bc39a 100644
--- a/conf/airframes/esden/lisa_asctec.xml
+++ b/conf/airframes/esden/lisa_asctec.xml
@@ -91,9 +91,9 @@
-
-
-
+
+
+
@@ -122,17 +122,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -151,9 +151,9 @@
-
-
-
+
+
+
@@ -163,9 +163,9 @@
diff --git a/conf/airframes/esden/lisa_asctec_aspirin.xml b/conf/airframes/esden/lisa_asctec_aspirin.xml
index 010fddb963..ae66c2ab02 100644
--- a/conf/airframes/esden/lisa_asctec_aspirin.xml
+++ b/conf/airframes/esden/lisa_asctec_aspirin.xml
@@ -91,9 +91,9 @@
-
-
-
+
+
+
@@ -122,17 +122,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -151,9 +151,9 @@
-
-
-
+
+
+
@@ -163,9 +163,9 @@
diff --git a/conf/airframes/esden/lisa_m_pwm.xml b/conf/airframes/esden/lisa_m_pwm.xml
index 2d927048d0..7d12fe3094 100644
--- a/conf/airframes/esden/lisa_m_pwm.xml
+++ b/conf/airframes/esden/lisa_m_pwm.xml
@@ -105,9 +105,9 @@
-
-
-
+
+
+
@@ -136,17 +136,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -165,9 +165,9 @@
-
-
-
+
+
+
@@ -183,9 +183,9 @@
diff --git a/conf/airframes/esden/lisa_pwm_aspirin.xml b/conf/airframes/esden/lisa_pwm_aspirin.xml
index 214b5a246c..8f1250065d 100644
--- a/conf/airframes/esden/lisa_pwm_aspirin.xml
+++ b/conf/airframes/esden/lisa_pwm_aspirin.xml
@@ -79,9 +79,9 @@
-
-
-
+
+
+
@@ -110,17 +110,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -146,9 +146,9 @@
-
-
-
+
+
+
@@ -158,9 +158,9 @@
diff --git a/conf/airframes/esden/synerani_4B.xml b/conf/airframes/esden/synerani_4B.xml
index 455243644f..fdd7b1a817 100644
--- a/conf/airframes/esden/synerani_4B.xml
+++ b/conf/airframes/esden/synerani_4B.xml
@@ -82,9 +82,9 @@
-
-
-
+
+
+
@@ -113,17 +113,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -149,9 +149,9 @@
-
-
-
+
+
+
@@ -161,9 +161,9 @@
diff --git a/conf/airframes/example_twog_analogimu.xml b/conf/airframes/example_twog_analogimu.xml
index 606c0d78d1..5d07183008 100644
--- a/conf/airframes/example_twog_analogimu.xml
+++ b/conf/airframes/example_twog_analogimu.xml
@@ -117,7 +117,7 @@
-
+
@@ -128,12 +128,12 @@
-
+
-
+
@@ -143,7 +143,7 @@
-
+
@@ -151,7 +151,7 @@
-
+
diff --git a/conf/airframes/flixr_discovery.xml b/conf/airframes/flixr_discovery.xml
index f0c9ca7613..36a3dd6528 100644
--- a/conf/airframes/flixr_discovery.xml
+++ b/conf/airframes/flixr_discovery.xml
@@ -252,7 +252,7 @@ http://paparazzi.enac.fr/w/index.php?title=Theory_of_Operation
-
+
@@ -267,18 +267,18 @@ http://paparazzi.enac.fr/w/index.php?title=Theory_of_Operation
-
-
-
+
+
+
-
-
-
-
+
+
+
+
@@ -308,7 +308,7 @@ http://paparazzi.enac.fr/w/index.php?title=Theory_of_Operation
-
+
@@ -321,11 +321,11 @@ http://paparazzi.enac.fr/w/index.php?title=Theory_of_Operation
-
-
+
+
-
+
@@ -333,11 +333,11 @@ http://paparazzi.enac.fr/w/index.php?title=Theory_of_Operation
-
+
-
-
+
+
diff --git a/conf/airframes/funjet_cam_example.xml b/conf/airframes/funjet_cam_example.xml
index d9f9421b92..3857117f77 100644
--- a/conf/airframes/funjet_cam_example.xml
+++ b/conf/airframes/funjet_cam_example.xml
@@ -130,7 +130,7 @@
-
+
@@ -141,12 +141,12 @@
-
+
-
+
@@ -155,14 +155,14 @@
-
+
-
+
diff --git a/conf/airframes/funjet_example.xml b/conf/airframes/funjet_example.xml
index b8035a41c2..04a48470ca 100644
--- a/conf/airframes/funjet_example.xml
+++ b/conf/airframes/funjet_example.xml
@@ -121,7 +121,7 @@
-
+
@@ -132,12 +132,12 @@
-
+
-
+
@@ -146,14 +146,14 @@
-
+
-
+
diff --git a/conf/airframes/jsbsim.xml b/conf/airframes/jsbsim.xml
index 1706dacc79..afbd4bdac3 100644
--- a/conf/airframes/jsbsim.xml
+++ b/conf/airframes/jsbsim.xml
@@ -103,7 +103,7 @@
-
+
@@ -114,12 +114,12 @@
-
+
-
+
@@ -129,19 +129,19 @@
diff --git a/conf/airframes/mentor_tum.xml b/conf/airframes/mentor_tum.xml
index 6a2907fc34..3965ca9ada 100644
--- a/conf/airframes/mentor_tum.xml
+++ b/conf/airframes/mentor_tum.xml
@@ -143,7 +143,7 @@
-
+
@@ -154,12 +154,12 @@
-
+
-
+
@@ -168,20 +168,20 @@
diff --git a/conf/airframes/microjet_example.xml b/conf/airframes/microjet_example.xml
index 676fa7bc54..6ce9c7e8f0 100644
--- a/conf/airframes/microjet_example.xml
+++ b/conf/airframes/microjet_example.xml
@@ -101,7 +101,7 @@
-
+
@@ -112,7 +112,7 @@
-
+
@@ -120,22 +120,22 @@
diff --git a/conf/airframes/mm/extra/press_t.xml b/conf/airframes/mm/extra/press_t.xml
index 62011a757b..fbc2bf3f31 100644
--- a/conf/airframes/mm/extra/press_t.xml
+++ b/conf/airframes/mm/extra/press_t.xml
@@ -109,7 +109,7 @@
-
+
@@ -120,12 +120,12 @@
-
+
-
+
@@ -135,20 +135,20 @@
diff --git a/conf/airframes/mm/extra/probe_t.xml b/conf/airframes/mm/extra/probe_t.xml
index 5abe57d195..3a825469f9 100644
--- a/conf/airframes/mm/extra/probe_t.xml
+++ b/conf/airframes/mm/extra/probe_t.xml
@@ -129,7 +129,7 @@
-
+
@@ -140,12 +140,12 @@
-
+
-
+
@@ -155,20 +155,20 @@
diff --git a/conf/airframes/mm/extra/turbine_trigger.xml b/conf/airframes/mm/extra/turbine_trigger.xml
index d213fd0fdf..962034a273 100644
--- a/conf/airframes/mm/extra/turbine_trigger.xml
+++ b/conf/airframes/mm/extra/turbine_trigger.xml
@@ -114,7 +114,7 @@
-
+
@@ -122,10 +122,10 @@
-
+
-
+
@@ -133,13 +133,13 @@
diff --git a/conf/airframes/mm/fixed-wing/drops.xml b/conf/airframes/mm/fixed-wing/drops.xml
index 03dedd2394..fcd566968e 100644
--- a/conf/airframes/mm/fixed-wing/drops.xml
+++ b/conf/airframes/mm/fixed-wing/drops.xml
@@ -148,7 +148,7 @@
-
+
@@ -159,12 +159,12 @@
-
+
-
+
@@ -174,22 +174,22 @@
-
+
-
-
+
+
-
-
-
+
+
+
diff --git a/conf/airframes/mm/fixed-wing/funjet43.xml b/conf/airframes/mm/fixed-wing/funjet43.xml
index af60e2c2c6..ee2a9decbe 100644
--- a/conf/airframes/mm/fixed-wing/funjet43.xml
+++ b/conf/airframes/mm/fixed-wing/funjet43.xml
@@ -132,7 +132,7 @@
-
+
@@ -141,14 +141,14 @@
-
+
-
+
@@ -157,14 +157,14 @@
-
+
-
+
diff --git a/conf/airframes/mm/fixed-wing/funjetdca.xml b/conf/airframes/mm/fixed-wing/funjetdca.xml
index a54d336b4d..ecae589dab 100644
--- a/conf/airframes/mm/fixed-wing/funjetdca.xml
+++ b/conf/airframes/mm/fixed-wing/funjetdca.xml
@@ -142,7 +142,7 @@
-
+
@@ -153,12 +153,12 @@
-
+
-
+
@@ -168,20 +168,20 @@
diff --git a/conf/airframes/mm/fixed-wing/funjetdcb.xml b/conf/airframes/mm/fixed-wing/funjetdcb.xml
index 3b9f7d933b..66bf71f34b 100644
--- a/conf/airframes/mm/fixed-wing/funjetdcb.xml
+++ b/conf/airframes/mm/fixed-wing/funjetdcb.xml
@@ -142,7 +142,7 @@
-
+
@@ -153,12 +153,12 @@
-
+
-
+
@@ -168,20 +168,20 @@
diff --git a/conf/airframes/mm/fixed-wing/funjetdcc.xml b/conf/airframes/mm/fixed-wing/funjetdcc.xml
index f1c911241d..060a0fe0df 100644
--- a/conf/airframes/mm/fixed-wing/funjetdcc.xml
+++ b/conf/airframes/mm/fixed-wing/funjetdcc.xml
@@ -142,7 +142,7 @@
-
+
@@ -153,12 +153,12 @@
-
+
-
+
@@ -168,20 +168,20 @@
diff --git a/conf/airframes/mm/fixed-wing/funjeteth1.xml b/conf/airframes/mm/fixed-wing/funjeteth1.xml
index 5aed5f95b8..ce27ab3d70 100644
--- a/conf/airframes/mm/fixed-wing/funjeteth1.xml
+++ b/conf/airframes/mm/fixed-wing/funjeteth1.xml
@@ -105,7 +105,7 @@
-
+
@@ -116,12 +116,12 @@
-
+
-
+
@@ -131,20 +131,20 @@
diff --git a/conf/airframes/mm/fixed-wing/funjeteth2.xml b/conf/airframes/mm/fixed-wing/funjeteth2.xml
index 696bba2a46..9380acb59c 100644
--- a/conf/airframes/mm/fixed-wing/funjeteth2.xml
+++ b/conf/airframes/mm/fixed-wing/funjeteth2.xml
@@ -106,7 +106,7 @@
-
+
@@ -117,12 +117,12 @@
-
+
-
+
@@ -132,20 +132,20 @@
diff --git a/conf/airframes/mm/fixed-wing/funjetfmi1.xml b/conf/airframes/mm/fixed-wing/funjetfmi1.xml
index 8dd2155c64..b61c373043 100644
--- a/conf/airframes/mm/fixed-wing/funjetfmi1.xml
+++ b/conf/airframes/mm/fixed-wing/funjetfmi1.xml
@@ -104,7 +104,7 @@
-
+
@@ -115,12 +115,12 @@
-
+
-
+
@@ -130,20 +130,20 @@
diff --git a/conf/airframes/mm/fixed-wing/funjetfmi2.xml b/conf/airframes/mm/fixed-wing/funjetfmi2.xml
index 14bfe029e2..0f1a1e5497 100644
--- a/conf/airframes/mm/fixed-wing/funjetfmi2.xml
+++ b/conf/airframes/mm/fixed-wing/funjetfmi2.xml
@@ -103,7 +103,7 @@
-
+
@@ -114,12 +114,12 @@
-
+
-
+
@@ -129,20 +129,20 @@
diff --git a/conf/airframes/mm/fixed-wing/funjetfmi3.xml b/conf/airframes/mm/fixed-wing/funjetfmi3.xml
index 86ff520fa6..c9e1cf65e8 100644
--- a/conf/airframes/mm/fixed-wing/funjetfmi3.xml
+++ b/conf/airframes/mm/fixed-wing/funjetfmi3.xml
@@ -103,7 +103,7 @@
-
+
@@ -114,12 +114,12 @@
-
+
-
+
@@ -129,20 +129,20 @@
diff --git a/conf/airframes/mm/fixed-wing/funjetgfi1.xml b/conf/airframes/mm/fixed-wing/funjetgfi1.xml
index 57ffd69a91..a889cc65ca 100644
--- a/conf/airframes/mm/fixed-wing/funjetgfi1.xml
+++ b/conf/airframes/mm/fixed-wing/funjetgfi1.xml
@@ -102,7 +102,7 @@
-
+
@@ -113,12 +113,12 @@
-
+
-
+
@@ -128,19 +128,19 @@
diff --git a/conf/airframes/mm/fixed-wing/funjetgfi3.xml b/conf/airframes/mm/fixed-wing/funjetgfi3.xml
index 6f8b1cd526..13302fb736 100644
--- a/conf/airframes/mm/fixed-wing/funjetgfi3.xml
+++ b/conf/airframes/mm/fixed-wing/funjetgfi3.xml
@@ -101,7 +101,7 @@
-
+
@@ -112,12 +112,12 @@
-
+
-
+
@@ -127,14 +127,14 @@
-
+
-
+
diff --git a/conf/airframes/mm/fixed-wing/funjetgfi4.xml b/conf/airframes/mm/fixed-wing/funjetgfi4.xml
index c3686fff8e..c1de946238 100644
--- a/conf/airframes/mm/fixed-wing/funjetgfi4.xml
+++ b/conf/airframes/mm/fixed-wing/funjetgfi4.xml
@@ -101,7 +101,7 @@
-
+
@@ -112,12 +112,12 @@
-
+
-
+
@@ -127,20 +127,20 @@
diff --git a/conf/airframes/mm/fixed-wing/funjetgfi5.xml b/conf/airframes/mm/fixed-wing/funjetgfi5.xml
index 465e07119b..4fc37cc3b8 100644
--- a/conf/airframes/mm/fixed-wing/funjetgfi5.xml
+++ b/conf/airframes/mm/fixed-wing/funjetgfi5.xml
@@ -103,7 +103,7 @@
-
+
@@ -114,12 +114,12 @@
-
+
-
+
@@ -129,20 +129,20 @@
diff --git a/conf/airframes/mm/fixed-wing/funjetgfi6.xml b/conf/airframes/mm/fixed-wing/funjetgfi6.xml
index 1051312984..9df7592ba8 100644
--- a/conf/airframes/mm/fixed-wing/funjetgfi6.xml
+++ b/conf/airframes/mm/fixed-wing/funjetgfi6.xml
@@ -103,7 +103,7 @@
-
+
@@ -114,12 +114,12 @@
-
+
-
+
@@ -129,20 +129,20 @@
diff --git a/conf/airframes/mm/fixed-wing/funjetgfi7.xml b/conf/airframes/mm/fixed-wing/funjetgfi7.xml
index 8d44915973..869bb9a981 100644
--- a/conf/airframes/mm/fixed-wing/funjetgfi7.xml
+++ b/conf/airframes/mm/fixed-wing/funjetgfi7.xml
@@ -103,7 +103,7 @@
-
+
@@ -114,12 +114,12 @@
-
+
-
+
@@ -129,20 +129,20 @@
diff --git a/conf/airframes/mm/fixed-wing/funjetgfi8.xml b/conf/airframes/mm/fixed-wing/funjetgfi8.xml
index 7a9da170de..57b1e4ede7 100644
--- a/conf/airframes/mm/fixed-wing/funjetgfi8.xml
+++ b/conf/airframes/mm/fixed-wing/funjetgfi8.xml
@@ -138,7 +138,7 @@
-
+
@@ -149,12 +149,12 @@
-
+
-
+
@@ -163,14 +163,14 @@
-
+
-
+
diff --git a/conf/airframes/mm/fixed-wing/funjetgfi9.xml b/conf/airframes/mm/fixed-wing/funjetgfi9.xml
index 0333184611..3fbb93ee36 100644
--- a/conf/airframes/mm/fixed-wing/funjetgfi9.xml
+++ b/conf/airframes/mm/fixed-wing/funjetgfi9.xml
@@ -103,7 +103,7 @@
-
+
@@ -114,12 +114,12 @@
-
+
-
+
@@ -129,20 +129,20 @@
diff --git a/conf/airframes/mm/fixed-wing/funjetlisa.xml b/conf/airframes/mm/fixed-wing/funjetlisa.xml
index d1367b4bd5..e2386465d9 100644
--- a/conf/airframes/mm/fixed-wing/funjetlisa.xml
+++ b/conf/airframes/mm/fixed-wing/funjetlisa.xml
@@ -119,7 +119,7 @@
-
+
@@ -128,12 +128,12 @@
-
+
-
+
@@ -142,14 +142,14 @@
-
+
-
+
diff --git a/conf/airframes/mm/fixed-wing/funjetlisam.xml b/conf/airframes/mm/fixed-wing/funjetlisam.xml
index ddcef511ad..503d2cb20c 100644
--- a/conf/airframes/mm/fixed-wing/funjetlisam.xml
+++ b/conf/airframes/mm/fixed-wing/funjetlisam.xml
@@ -119,7 +119,7 @@
-
+
@@ -128,12 +128,12 @@
-
+
-
+
@@ -142,14 +142,14 @@
-
+
-
+
diff --git a/conf/airframes/mm/fixed-wing/funjetmm.xml b/conf/airframes/mm/fixed-wing/funjetmm.xml
index bf03e24173..f7fca1b037 100644
--- a/conf/airframes/mm/fixed-wing/funjetmm.xml
+++ b/conf/airframes/mm/fixed-wing/funjetmm.xml
@@ -174,7 +174,7 @@
-
+
@@ -185,12 +185,12 @@
-
+
-
+
@@ -200,20 +200,20 @@
diff --git a/conf/airframes/mm/fixed-wing/funjetmm2.xml b/conf/airframes/mm/fixed-wing/funjetmm2.xml
index 19f5f2b100..2e24ad138c 100644
--- a/conf/airframes/mm/fixed-wing/funjetmm2.xml
+++ b/conf/airframes/mm/fixed-wing/funjetmm2.xml
@@ -109,7 +109,7 @@
-
+
@@ -120,12 +120,12 @@
-
+
-
+
@@ -135,20 +135,20 @@
diff --git a/conf/airframes/mm/fixed-wing/fw_ins_arduimu.xml b/conf/airframes/mm/fixed-wing/fw_ins_arduimu.xml
index 33ab31ed52..8d69163c7b 100644
--- a/conf/airframes/mm/fixed-wing/fw_ins_arduimu.xml
+++ b/conf/airframes/mm/fixed-wing/fw_ins_arduimu.xml
@@ -134,7 +134,7 @@
-
+
@@ -145,12 +145,12 @@
-
+
-
+
@@ -160,20 +160,20 @@
diff --git a/conf/airframes/mm/fixed-wing/merlin.xml b/conf/airframes/mm/fixed-wing/merlin.xml
index 4a88b9f934..a582746903 100644
--- a/conf/airframes/mm/fixed-wing/merlin.xml
+++ b/conf/airframes/mm/fixed-wing/merlin.xml
@@ -98,7 +98,7 @@
-
+
@@ -109,12 +109,12 @@
-
+
-
+
@@ -123,20 +123,20 @@
diff --git a/conf/airframes/mm/fixed-wing/miniwing.xml b/conf/airframes/mm/fixed-wing/miniwing.xml
index ee409af625..d877733960 100644
--- a/conf/airframes/mm/fixed-wing/miniwing.xml
+++ b/conf/airframes/mm/fixed-wing/miniwing.xml
@@ -101,7 +101,7 @@
-
+
@@ -112,12 +112,12 @@
-
+
-
+
@@ -127,20 +127,20 @@
diff --git a/conf/airframes/mm/fixed-wing/slowfast.xml b/conf/airframes/mm/fixed-wing/slowfast.xml
index ec9501ac9c..0b5e9f2acf 100644
--- a/conf/airframes/mm/fixed-wing/slowfast.xml
+++ b/conf/airframes/mm/fixed-wing/slowfast.xml
@@ -132,7 +132,7 @@
-
+
@@ -143,12 +143,12 @@
-
+
-
+
@@ -158,20 +158,20 @@
diff --git a/conf/airframes/mm/fixed-wing/slowfast2.xml b/conf/airframes/mm/fixed-wing/slowfast2.xml
index 1a78cadf50..eb123ba784 100644
--- a/conf/airframes/mm/fixed-wing/slowfast2.xml
+++ b/conf/airframes/mm/fixed-wing/slowfast2.xml
@@ -138,7 +138,7 @@
-
+
@@ -149,12 +149,12 @@
-
+
-
+
@@ -174,20 +174,20 @@
diff --git a/conf/airframes/mm/fixed-wing/twinstarmm.xml b/conf/airframes/mm/fixed-wing/twinstarmm.xml
index df6e4bcf0b..2ec04ed767 100644
--- a/conf/airframes/mm/fixed-wing/twinstarmm.xml
+++ b/conf/airframes/mm/fixed-wing/twinstarmm.xml
@@ -125,7 +125,7 @@
-
+
@@ -136,12 +136,12 @@
-
+
-
+
@@ -152,20 +152,20 @@
diff --git a/conf/airframes/mm/hangar/black_one.xml b/conf/airframes/mm/hangar/black_one.xml
index 5525d58319..7bbc9f1281 100644
--- a/conf/airframes/mm/hangar/black_one.xml
+++ b/conf/airframes/mm/hangar/black_one.xml
@@ -123,7 +123,7 @@
-
+
@@ -134,12 +134,12 @@
-
+
-
+
@@ -149,7 +149,7 @@
-
+
@@ -157,7 +157,7 @@
-
+
diff --git a/conf/airframes/mm/hangar/glass_one1.xml b/conf/airframes/mm/hangar/glass_one1.xml
index 5ed8fc2512..5dbbf8e3fa 100644
--- a/conf/airframes/mm/hangar/glass_one1.xml
+++ b/conf/airframes/mm/hangar/glass_one1.xml
@@ -112,7 +112,7 @@
-
+
@@ -123,12 +123,12 @@
-
+
-
+
@@ -146,7 +146,7 @@
-
+
diff --git a/conf/airframes/mm/hangar/glass_one2.xml b/conf/airframes/mm/hangar/glass_one2.xml
index 1c376bbd29..8c693facc8 100644
--- a/conf/airframes/mm/hangar/glass_one2.xml
+++ b/conf/airframes/mm/hangar/glass_one2.xml
@@ -96,7 +96,7 @@
-
+
@@ -107,12 +107,12 @@
-
+
-
+
@@ -122,7 +122,7 @@
-
+
@@ -130,7 +130,7 @@
-
+
diff --git a/conf/airframes/mm/hangar/glass_one3.xml b/conf/airframes/mm/hangar/glass_one3.xml
index 50528eafac..99dd864100 100644
--- a/conf/airframes/mm/hangar/glass_one3.xml
+++ b/conf/airframes/mm/hangar/glass_one3.xml
@@ -113,7 +113,7 @@
-
+
@@ -124,12 +124,12 @@
-
+
-
+
@@ -139,7 +139,7 @@
-
+
@@ -147,7 +147,7 @@
-
+
diff --git a/conf/airframes/mm/hangar/lila.xml b/conf/airframes/mm/hangar/lila.xml
index 788907070f..f0bb6c24df 100644
--- a/conf/airframes/mm/hangar/lila.xml
+++ b/conf/airframes/mm/hangar/lila.xml
@@ -115,7 +115,7 @@
-
+
@@ -126,12 +126,12 @@
-
+
-
+
@@ -141,22 +141,22 @@
diff --git a/conf/airframes/mm/hangar/mac06a.xml b/conf/airframes/mm/hangar/mac06a.xml
index 64c144144d..d52fef4707 100644
--- a/conf/airframes/mm/hangar/mac06a.xml
+++ b/conf/airframes/mm/hangar/mac06a.xml
@@ -108,7 +108,7 @@
-
+
@@ -119,12 +119,12 @@
-
+
-
+
@@ -134,12 +134,12 @@
-
+
-
+
diff --git a/conf/airframes/mm/hangar/red_one.xml b/conf/airframes/mm/hangar/red_one.xml
index 301e06f331..8bb328e7b8 100644
--- a/conf/airframes/mm/hangar/red_one.xml
+++ b/conf/airframes/mm/hangar/red_one.xml
@@ -122,7 +122,7 @@
-
+
@@ -133,12 +133,12 @@
-
+
-
+
@@ -148,7 +148,7 @@
-
+
@@ -156,7 +156,7 @@
-
+
diff --git a/conf/airframes/mm/rotor/qmk1.xml b/conf/airframes/mm/rotor/qmk1.xml
index a680057c38..eb3cf417e2 100644
--- a/conf/airframes/mm/rotor/qmk1.xml
+++ b/conf/airframes/mm/rotor/qmk1.xml
@@ -91,9 +91,9 @@
-
-
-
+
+
+
@@ -122,17 +122,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -152,8 +152,8 @@
-
-
+
+
@@ -164,9 +164,9 @@
diff --git a/conf/airframes/obsolete/booz2_Aron.xml b/conf/airframes/obsolete/booz2_Aron.xml
index 80af3ce202..8512e7990a 100644
--- a/conf/airframes/obsolete/booz2_Aron.xml
+++ b/conf/airframes/obsolete/booz2_Aron.xml
@@ -83,9 +83,9 @@
-
-
-
+
+
+
@@ -114,17 +114,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -145,9 +145,9 @@
-
-
-
+
+
+
@@ -155,9 +155,9 @@
diff --git a/conf/airframes/obsolete/booz2_NoVa.xml b/conf/airframes/obsolete/booz2_NoVa.xml
index a9e7ff831d..472114d6a7 100644
--- a/conf/airframes/obsolete/booz2_NoVa.xml
+++ b/conf/airframes/obsolete/booz2_NoVa.xml
@@ -79,13 +79,13 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -119,30 +119,30 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -185,8 +185,8 @@
-
-
+
+
@@ -196,11 +196,11 @@
diff --git a/conf/airframes/obsolete/booz2_NoVa_001.xml b/conf/airframes/obsolete/booz2_NoVa_001.xml
index 582d05c7b4..c6e20076fd 100644
--- a/conf/airframes/obsolete/booz2_NoVa_001.xml
+++ b/conf/airframes/obsolete/booz2_NoVa_001.xml
@@ -79,13 +79,13 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -119,30 +119,30 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -185,8 +185,8 @@
-
-
+
+
@@ -196,11 +196,11 @@
diff --git a/conf/airframes/obsolete/booz2_NoVa_002.xml b/conf/airframes/obsolete/booz2_NoVa_002.xml
index 27229199c7..c243de3ae4 100644
--- a/conf/airframes/obsolete/booz2_NoVa_002.xml
+++ b/conf/airframes/obsolete/booz2_NoVa_002.xml
@@ -79,13 +79,13 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -119,30 +119,30 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -185,8 +185,8 @@
-
-
+
+
@@ -196,11 +196,11 @@
diff --git a/conf/airframes/obsolete/booz2_a2.xml b/conf/airframes/obsolete/booz2_a2.xml
index 95bb96b694..c6dc404e3c 100644
--- a/conf/airframes/obsolete/booz2_a2.xml
+++ b/conf/airframes/obsolete/booz2_a2.xml
@@ -77,9 +77,9 @@
-
-
-
+
+
+
@@ -108,17 +108,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -145,9 +145,9 @@
-
-
-
+
+
+
@@ -155,9 +155,9 @@
diff --git a/conf/airframes/obsolete/booz2_a3.xml b/conf/airframes/obsolete/booz2_a3.xml
index b16d1e39ae..7e7755e84e 100644
--- a/conf/airframes/obsolete/booz2_a3.xml
+++ b/conf/airframes/obsolete/booz2_a3.xml
@@ -64,9 +64,9 @@
-
-
-
+
+
+
@@ -95,17 +95,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -131,8 +131,8 @@
-
-
+
+
@@ -140,9 +140,9 @@
diff --git a/conf/airframes/obsolete/booz2_a4.xml b/conf/airframes/obsolete/booz2_a4.xml
index 8d1a6b0822..337c76d244 100644
--- a/conf/airframes/obsolete/booz2_a4.xml
+++ b/conf/airframes/obsolete/booz2_a4.xml
@@ -66,9 +66,9 @@
-
-
-
+
+
+
@@ -84,10 +84,10 @@
-
-
+
+
-
+
@@ -109,8 +109,8 @@
-
-
+
+
@@ -118,9 +118,9 @@
diff --git a/conf/airframes/obsolete/booz2_a5.xml b/conf/airframes/obsolete/booz2_a5.xml
index 9b4918ead3..bcdd61a563 100644
--- a/conf/airframes/obsolete/booz2_a5.xml
+++ b/conf/airframes/obsolete/booz2_a5.xml
@@ -87,9 +87,9 @@
-
-
-
+
+
+
@@ -118,17 +118,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -147,9 +147,9 @@
-
-
-
+
+
+
@@ -159,9 +159,9 @@
diff --git a/conf/airframes/obsolete/booz2_s1.xml b/conf/airframes/obsolete/booz2_s1.xml
index 106ad4cb11..9711a48c3f 100644
--- a/conf/airframes/obsolete/booz2_s1.xml
+++ b/conf/airframes/obsolete/booz2_s1.xml
@@ -78,9 +78,9 @@
-
-
-
+
+
+
@@ -110,17 +110,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -138,9 +138,9 @@
-
-
-
+
+
+
@@ -151,9 +151,9 @@
diff --git a/conf/airframes/obsolete/booz2_x1.xml b/conf/airframes/obsolete/booz2_x1.xml
index d24a301207..7ce46bd0d3 100644
--- a/conf/airframes/obsolete/booz2_x1.xml
+++ b/conf/airframes/obsolete/booz2_x1.xml
@@ -89,9 +89,9 @@
-
-
-
+
+
+
@@ -121,17 +121,17 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -150,9 +150,9 @@
-
-
-
+
+
+
@@ -161,9 +161,9 @@
diff --git a/conf/airframes/obsolete/easystar2.xml b/conf/airframes/obsolete/easystar2.xml
index a129d1f39d..cbda2b48f6 100644
--- a/conf/airframes/obsolete/easystar2.xml
+++ b/conf/airframes/obsolete/easystar2.xml
@@ -103,7 +103,7 @@
-
+
@@ -112,7 +112,7 @@
-
+
@@ -122,7 +122,7 @@
-
+
@@ -130,15 +130,15 @@
diff --git a/conf/airframes/obsolete/hitl_usb.xml b/conf/airframes/obsolete/hitl_usb.xml
index 5a2c64da06..b2d5a21c1b 100644
--- a/conf/airframes/obsolete/hitl_usb.xml
+++ b/conf/airframes/obsolete/hitl_usb.xml
@@ -46,7 +46,7 @@
-
+
@@ -57,7 +57,7 @@
-
+
@@ -65,21 +65,21 @@
diff --git a/conf/airframes/obsolete/kalscott_easystar.xml b/conf/airframes/obsolete/kalscott_easystar.xml
index 211b238d28..8fc7177256 100644
--- a/conf/airframes/obsolete/kalscott_easystar.xml
+++ b/conf/airframes/obsolete/kalscott_easystar.xml
@@ -90,7 +90,7 @@
-
+
@@ -99,10 +99,10 @@
-
+
-
+
@@ -110,15 +110,15 @@
diff --git a/conf/airframes/obsolete/malolo_sim.xml b/conf/airframes/obsolete/malolo_sim.xml
index f72cb96d61..9bde735206 100644
--- a/conf/airframes/obsolete/malolo_sim.xml
+++ b/conf/airframes/obsolete/malolo_sim.xml
@@ -112,7 +112,7 @@
-
+
@@ -123,12 +123,12 @@
-
+
-
+
@@ -138,19 +138,19 @@
diff --git a/conf/airframes/obsolete/microjet5.xml b/conf/airframes/obsolete/microjet5.xml
index 5d20dc5d0f..e6390f07fd 100644
--- a/conf/airframes/obsolete/microjet5.xml
+++ b/conf/airframes/obsolete/microjet5.xml
@@ -109,7 +109,7 @@
-
+
@@ -120,12 +120,12 @@
-
+
-
+
@@ -135,19 +135,19 @@
diff --git a/conf/airframes/obsolete/microjet5_tp_auto.xml b/conf/airframes/obsolete/microjet5_tp_auto.xml
index 702715819d..959828e6a7 100644
--- a/conf/airframes/obsolete/microjet5_tp_auto.xml
+++ b/conf/airframes/obsolete/microjet5_tp_auto.xml
@@ -86,7 +86,7 @@
-
+
-
-
-
+
+
+
@@ -114,7 +114,7 @@
-
+
@@ -125,12 +125,12 @@
-
+
-
+
diff --git a/conf/airframes/obsolete/microjet6.xml b/conf/airframes/obsolete/microjet6.xml
index eb339a907c..cbce102e34 100644
--- a/conf/airframes/obsolete/microjet6.xml
+++ b/conf/airframes/obsolete/microjet6.xml
@@ -105,7 +105,7 @@
-
+
@@ -116,12 +116,12 @@
-
+
-
+
@@ -131,7 +131,7 @@
-
+
@@ -139,7 +139,7 @@
-
+
@@ -162,7 +162,7 @@
diff --git a/conf/airframes/obsolete/microjetI.xml b/conf/airframes/obsolete/microjetI.xml
index b5b6cf71c3..1e816a3d29 100644
--- a/conf/airframes/obsolete/microjetI.xml
+++ b/conf/airframes/obsolete/microjetI.xml
@@ -115,7 +115,7 @@
-
+
@@ -126,7 +126,7 @@
-
+
@@ -134,21 +134,21 @@
diff --git a/conf/airframes/obsolete/microjetII.xml b/conf/airframes/obsolete/microjetII.xml
index 40d42dcdd2..f522378c6c 100644
--- a/conf/airframes/obsolete/microjetII.xml
+++ b/conf/airframes/obsolete/microjetII.xml
@@ -117,7 +117,7 @@
-
+
@@ -128,7 +128,7 @@
-
+
@@ -136,19 +136,19 @@
diff --git a/conf/airframes/obsolete/microjetIII.xml b/conf/airframes/obsolete/microjetIII.xml
index 424a3bce9c..89c5e2b519 100644
--- a/conf/airframes/obsolete/microjetIII.xml
+++ b/conf/airframes/obsolete/microjetIII.xml
@@ -103,7 +103,7 @@
-
+
@@ -114,7 +114,7 @@
-
+
@@ -122,21 +122,21 @@
diff --git a/conf/airframes/obsolete/microjet_raw_makefile.xml b/conf/airframes/obsolete/microjet_raw_makefile.xml
index cc7c722062..4de83c91ff 100644
--- a/conf/airframes/obsolete/microjet_raw_makefile.xml
+++ b/conf/airframes/obsolete/microjet_raw_makefile.xml
@@ -114,7 +114,7 @@
-
+
@@ -125,12 +125,12 @@
-
+
-
+
@@ -140,19 +140,19 @@
diff --git a/conf/airframes/obsolete/minimag1.xml b/conf/airframes/obsolete/minimag1.xml
index 666e1bea24..e047ab17d6 100644
--- a/conf/airframes/obsolete/minimag1.xml
+++ b/conf/airframes/obsolete/minimag1.xml
@@ -102,7 +102,7 @@
-
+
@@ -113,12 +113,12 @@
-
+
-
+
@@ -128,7 +128,7 @@
-
+
@@ -136,7 +136,7 @@
-
+
diff --git a/conf/airframes/obsolete/minimag_fs.xml b/conf/airframes/obsolete/minimag_fs.xml
index f48b353aea..5fe2a47676 100644
--- a/conf/airframes/obsolete/minimag_fs.xml
+++ b/conf/airframes/obsolete/minimag_fs.xml
@@ -116,7 +116,7 @@
-
+
@@ -127,12 +127,12 @@
-
+
-
+
@@ -142,14 +142,14 @@
diff --git a/conf/airframes/obsolete/mmlaas_N1_carto_cam.xml b/conf/airframes/obsolete/mmlaas_N1_carto_cam.xml
index e9efa41b10..be58d5e523 100644
--- a/conf/airframes/obsolete/mmlaas_N1_carto_cam.xml
+++ b/conf/airframes/obsolete/mmlaas_N1_carto_cam.xml
@@ -101,7 +101,7 @@
-
+
@@ -112,12 +112,12 @@
-
+
-
+
@@ -127,7 +127,7 @@
-
+
@@ -135,7 +135,7 @@
-
+
@@ -144,7 +144,7 @@
diff --git a/conf/airframes/obsolete/osam_xsens_twog.xml b/conf/airframes/obsolete/osam_xsens_twog.xml
index 4c573d4d2b..425ae845d6 100644
--- a/conf/airframes/obsolete/osam_xsens_twog.xml
+++ b/conf/airframes/obsolete/osam_xsens_twog.xml
@@ -145,7 +145,7 @@
-
+
@@ -156,7 +156,7 @@
-
+
@@ -165,13 +165,13 @@
-
+
-
+
diff --git a/conf/airframes/obsolete/slayer1.xml b/conf/airframes/obsolete/slayer1.xml
index e104bfbf0a..a097cfc2da 100644
--- a/conf/airframes/obsolete/slayer1.xml
+++ b/conf/airframes/obsolete/slayer1.xml
@@ -105,7 +105,7 @@
-
+
@@ -116,12 +116,12 @@
-
+
-
+
@@ -131,7 +131,7 @@
-
+
@@ -139,7 +139,7 @@
-
+
diff --git a/conf/airframes/obsolete/slayer3.xml b/conf/airframes/obsolete/slayer3.xml
index 2cb82585a6..62c18d9fe3 100644
--- a/conf/airframes/obsolete/slayer3.xml
+++ b/conf/airframes/obsolete/slayer3.xml
@@ -105,7 +105,7 @@
-
+
@@ -116,12 +116,12 @@
-
+
-
+
@@ -131,7 +131,7 @@
-
+
@@ -140,7 +140,7 @@
-
+
diff --git a/conf/airframes/obsolete/slayerJH.xml b/conf/airframes/obsolete/slayerJH.xml
index 920295fb1b..e1a8f7255b 100644
--- a/conf/airframes/obsolete/slayerJH.xml
+++ b/conf/airframes/obsolete/slayerJH.xml
@@ -102,7 +102,7 @@
-
+
@@ -113,7 +113,7 @@
-
+
@@ -121,18 +121,18 @@
diff --git a/conf/airframes/obsolete/slicer1.xml b/conf/airframes/obsolete/slicer1.xml
index 914538a39b..163152da50 100644
--- a/conf/airframes/obsolete/slicer1.xml
+++ b/conf/airframes/obsolete/slicer1.xml
@@ -116,7 +116,7 @@
-
+
@@ -127,7 +127,7 @@
-
+
@@ -135,19 +135,19 @@
diff --git a/conf/airframes/obsolete/slicer2.xml b/conf/airframes/obsolete/slicer2.xml
index 1a89a8a100..c8798feae4 100644
--- a/conf/airframes/obsolete/slicer2.xml
+++ b/conf/airframes/obsolete/slicer2.xml
@@ -110,7 +110,7 @@
-
+
@@ -121,7 +121,7 @@
-
+
@@ -129,19 +129,19 @@
diff --git a/conf/airframes/obsolete/spirit.xml b/conf/airframes/obsolete/spirit.xml
index 7e839d4829..d3804aaf2a 100644
--- a/conf/airframes/obsolete/spirit.xml
+++ b/conf/airframes/obsolete/spirit.xml
@@ -112,7 +112,7 @@
-
+
@@ -123,7 +123,7 @@
-
+
@@ -131,21 +131,21 @@
diff --git a/conf/airframes/obsolete/spirit_proto.xml b/conf/airframes/obsolete/spirit_proto.xml
index ca9971afa2..9ae2acdc93 100644
--- a/conf/airframes/obsolete/spirit_proto.xml
+++ b/conf/airframes/obsolete/spirit_proto.xml
@@ -101,7 +101,7 @@
-
+
@@ -112,7 +112,7 @@
-
+
@@ -120,21 +120,21 @@
diff --git a/conf/airframes/obsolete/storm1.xml b/conf/airframes/obsolete/storm1.xml
index 80cdfed726..3ada34c50a 100644
--- a/conf/airframes/obsolete/storm1.xml
+++ b/conf/airframes/obsolete/storm1.xml
@@ -129,7 +129,7 @@
-
+
@@ -140,12 +140,12 @@
-
+
-
+
@@ -155,7 +155,7 @@
-
+
@@ -163,7 +163,7 @@
-
+
diff --git a/conf/airframes/obsolete/tiny2.xml b/conf/airframes/obsolete/tiny2.xml
index 494b269a55..8003be219f 100644
--- a/conf/airframes/obsolete/tiny2.xml
+++ b/conf/airframes/obsolete/tiny2.xml
@@ -101,7 +101,7 @@
-
+
@@ -112,12 +112,12 @@
-
+
-
+
@@ -127,7 +127,7 @@
-
+
@@ -135,7 +135,7 @@
-
+
diff --git a/conf/airframes/obsolete/tiny_hitl.xml b/conf/airframes/obsolete/tiny_hitl.xml
index e1278378b9..c3f70f7f3b 100644
--- a/conf/airframes/obsolete/tiny_hitl.xml
+++ b/conf/airframes/obsolete/tiny_hitl.xml
@@ -97,7 +97,7 @@
-
+
@@ -108,7 +108,7 @@
-
+
@@ -116,21 +116,21 @@
diff --git a/conf/airframes/obsolete/twinjet1.xml b/conf/airframes/obsolete/twinjet1.xml
index 0f70ebc62b..b9d9f5b702 100644
--- a/conf/airframes/obsolete/twinjet1.xml
+++ b/conf/airframes/obsolete/twinjet1.xml
@@ -80,25 +80,25 @@
-
+
@@ -109,7 +109,7 @@
-
+
diff --git a/conf/airframes/obsolete/twinstar1.xml b/conf/airframes/obsolete/twinstar1.xml
index 52832ed439..725d44586c 100644
--- a/conf/airframes/obsolete/twinstar1.xml
+++ b/conf/airframes/obsolete/twinstar1.xml
@@ -70,7 +70,7 @@
-
+
@@ -82,7 +82,7 @@
-
+
@@ -90,7 +90,7 @@
-
+
@@ -110,7 +110,7 @@
-
+
@@ -121,12 +121,12 @@
-
+
-
+
diff --git a/conf/airframes/obsolete/twinstar6.xml b/conf/airframes/obsolete/twinstar6.xml
index 8429b9bd93..515270a9d7 100644
--- a/conf/airframes/obsolete/twinstar6.xml
+++ b/conf/airframes/obsolete/twinstar6.xml
@@ -90,7 +90,7 @@
-
+
@@ -98,7 +98,7 @@
-
+
@@ -119,7 +119,7 @@
-
+
@@ -130,7 +130,7 @@
-
+
diff --git a/conf/airframes/obsolete/tyto1.xml b/conf/airframes/obsolete/tyto1.xml
index 5da82221f8..9f77189137 100644
--- a/conf/airframes/obsolete/tyto1.xml
+++ b/conf/airframes/obsolete/tyto1.xml
@@ -119,7 +119,7 @@
-
+
@@ -130,12 +130,12 @@
-
+
-
+
@@ -145,7 +145,7 @@
-
+
@@ -157,8 +157,8 @@
-
-
+
+
diff --git a/conf/airframes/obsolete/xxx1.xml b/conf/airframes/obsolete/xxx1.xml
index a634c1204a..29c376bf5b 100644
--- a/conf/airframes/obsolete/xxx1.xml
+++ b/conf/airframes/obsolete/xxx1.xml
@@ -115,7 +115,7 @@
-
+
@@ -126,12 +126,12 @@
-
+
-
+
@@ -141,7 +141,7 @@
-
+
@@ -149,7 +149,7 @@
-
+
diff --git a/conf/airframes/test_hb.xml b/conf/airframes/test_hb.xml
index 8ab20eb739..7026a0513d 100644
--- a/conf/airframes/test_hb.xml
+++ b/conf/airframes/test_hb.xml
@@ -140,7 +140,7 @@
-
+
@@ -151,12 +151,12 @@
-
+
-
+
@@ -165,14 +165,14 @@
-
+
-
+
diff --git a/conf/airframes/twinjet_example.xml b/conf/airframes/twinjet_example.xml
index 4abed81cd9..a4bd629534 100644
--- a/conf/airframes/twinjet_example.xml
+++ b/conf/airframes/twinjet_example.xml
@@ -108,25 +108,25 @@
-
+
@@ -137,7 +137,7 @@
-
+
diff --git a/conf/airframes/twinjet_overo.xml b/conf/airframes/twinjet_overo.xml
index a3fdadd5fa..90a9b62cb5 100644
--- a/conf/airframes/twinjet_overo.xml
+++ b/conf/airframes/twinjet_overo.xml
@@ -110,25 +110,25 @@
-
+
@@ -139,7 +139,7 @@
-
+
diff --git a/conf/airframes/twinstar_example.xml b/conf/airframes/twinstar_example.xml
index cf91db9734..09d2582cee 100644
--- a/conf/airframes/twinstar_example.xml
+++ b/conf/airframes/twinstar_example.xml
@@ -138,7 +138,7 @@
-
+
@@ -149,12 +149,12 @@
-
+
-
+
@@ -164,15 +164,15 @@
diff --git a/conf/airframes/usb_test.xml b/conf/airframes/usb_test.xml
index 21fcd7e3f3..3946645082 100644
--- a/conf/airframes/usb_test.xml
+++ b/conf/airframes/usb_test.xml
@@ -119,7 +119,7 @@
-
+
@@ -130,12 +130,12 @@
-
+
-
+
@@ -144,14 +144,14 @@
-
+
-
+
diff --git a/conf/settings/fw_h_ctl_a_settings.xml b/conf/settings/fw_h_ctl_a_settings.xml
index 4defb5ded3..22631d80a9 100644
--- a/conf/settings/fw_h_ctl_a_settings.xml
+++ b/conf/settings/fw_h_ctl_a_settings.xml
@@ -5,12 +5,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/conf/settings/settings_UofAdelaide.xml b/conf/settings/settings_UofAdelaide.xml
index 16ebab381e..0ad179f67e 100644
--- a/conf/settings/settings_UofAdelaide.xml
+++ b/conf/settings/settings_UofAdelaide.xml
@@ -33,9 +33,9 @@
-
-
-
+
+
+
@@ -55,9 +55,9 @@
-
-
-
+
+
+
@@ -66,11 +66,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/conf/settings/settings_booz2.xml b/conf/settings/settings_booz2.xml
index 97cff2e7b1..20a04ce36b 100644
--- a/conf/settings/settings_booz2.xml
+++ b/conf/settings/settings_booz2.xml
@@ -22,9 +22,9 @@
-
-
-
+
+
+
@@ -44,9 +44,9 @@
-
-
-
+
+
+
@@ -55,11 +55,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/conf/settings/settings_booz2_jtm.xml b/conf/settings/settings_booz2_jtm.xml
index 3441e55d55..22b005f7e6 100644
--- a/conf/settings/settings_booz2_jtm.xml
+++ b/conf/settings/settings_booz2_jtm.xml
@@ -22,9 +22,9 @@
-
-
-
+
+
+
@@ -44,9 +44,9 @@
-
-
-
+
+
+
@@ -55,11 +55,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/conf/settings/tuning.xml b/conf/settings/tuning.xml
index 5309586e6e..80375b75d6 100644
--- a/conf/settings/tuning.xml
+++ b/conf/settings/tuning.xml
@@ -39,17 +39,17 @@
-
-
+
+
-
-
+
+
-
+
@@ -58,9 +58,7 @@
-
-
-
+
@@ -72,12 +70,12 @@
-
+
-
+
@@ -89,7 +87,7 @@
-
+
diff --git a/conf/settings/tuningJH.xml b/conf/settings/tuningJH.xml
index a4907a95fb..573ed4302d 100644
--- a/conf/settings/tuningJH.xml
+++ b/conf/settings/tuningJH.xml
@@ -38,19 +38,19 @@
-
+
-
-
+
+
-
+
@@ -61,7 +61,7 @@
-
+
@@ -73,7 +73,7 @@
-
+
@@ -84,7 +84,7 @@
-
+
diff --git a/conf/settings/tuning_ctl_adaptive.xml b/conf/settings/tuning_ctl_adaptive.xml
index c51a014118..ff57cd5608 100644
--- a/conf/settings/tuning_ctl_adaptive.xml
+++ b/conf/settings/tuning_ctl_adaptive.xml
@@ -12,12 +12,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -26,32 +26,32 @@
-
-
-
-
+
+
+
+
-
+
-
-
+
+
-
-
-
+
+
+
-
+
@@ -63,7 +63,7 @@
-
+
diff --git a/conf/settings/tuning_ctl_new.xml b/conf/settings/tuning_ctl_new.xml
index 192fdb2fe5..2a8e4d9a82 100644
--- a/conf/settings/tuning_ctl_new.xml
+++ b/conf/settings/tuning_ctl_new.xml
@@ -12,12 +12,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -26,14 +26,14 @@
-
-
-
-
+
+
+
+
-
+
@@ -44,20 +44,20 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
+
@@ -69,7 +69,7 @@
-
+
diff --git a/conf/settings/tuning_infrared.xml b/conf/settings/tuning_infrared.xml
index 92f0b23bd3..94cd218dfd 100644
--- a/conf/settings/tuning_infrared.xml
+++ b/conf/settings/tuning_infrared.xml
@@ -49,19 +49,19 @@
-
-
+
+
-
-
+
+
-
+
@@ -72,7 +72,7 @@
-
+
@@ -84,12 +84,12 @@
-
+
-
+
@@ -101,7 +101,7 @@
-
+
diff --git a/conf/settings/tuning_ins.xml b/conf/settings/tuning_ins.xml
index 571e67b2d4..da1020dd73 100644
--- a/conf/settings/tuning_ins.xml
+++ b/conf/settings/tuning_ins.xml
@@ -45,19 +45,19 @@
-
+
-
-
+
+
-
+
@@ -68,7 +68,7 @@
-
+
@@ -80,12 +80,12 @@
-
+
-
+
@@ -97,7 +97,7 @@
-
+
diff --git a/conf/settings/tuning_ins_dcm.xml b/conf/settings/tuning_ins_dcm.xml
index 4691283559..f89fbd498a 100644
--- a/conf/settings/tuning_ins_dcm.xml
+++ b/conf/settings/tuning_ins_dcm.xml
@@ -47,19 +47,19 @@
-
+
-
-
+
+
-
+
@@ -70,7 +70,7 @@
-
+
@@ -82,12 +82,12 @@
-
+
-
+
@@ -99,7 +99,7 @@
-
+
diff --git a/conf/settings/tuning_loiter.xml b/conf/settings/tuning_loiter.xml
index 7dd510d56c..8b5b7966a2 100644
--- a/conf/settings/tuning_loiter.xml
+++ b/conf/settings/tuning_loiter.xml
@@ -52,19 +52,19 @@
-
-
+
+
-
-
+
+
-
+
@@ -75,7 +75,7 @@
-
+
@@ -87,12 +87,12 @@
-
+
-
+
@@ -104,7 +104,7 @@
-
+
diff --git a/conf/settings/tuning_pers.xml b/conf/settings/tuning_pers.xml
index 68c7e55a7a..18edc644e8 100644
--- a/conf/settings/tuning_pers.xml
+++ b/conf/settings/tuning_pers.xml
@@ -49,19 +49,19 @@
-
-
+
+
-
-
+
+
-
+
@@ -72,7 +72,7 @@
-
+
@@ -84,12 +84,12 @@
-
+
-
+
@@ -101,7 +101,7 @@
-
+
diff --git a/conf/settings/tuning_tp_auto.xml b/conf/settings/tuning_tp_auto.xml
index 627fb9dd1c..a1e8f5a52e 100644
--- a/conf/settings/tuning_tp_auto.xml
+++ b/conf/settings/tuning_tp_auto.xml
@@ -30,10 +30,10 @@
-
-
+
+
-
+
@@ -43,7 +43,7 @@
-
+
@@ -54,7 +54,7 @@
-
+
@@ -63,7 +63,7 @@
-
+
@@ -74,7 +74,7 @@
-
+
diff --git a/sw/airborne/firmwares/fixedwing/guidance/guidance_v.c b/sw/airborne/firmwares/fixedwing/guidance/guidance_v.c
index 00a2174460..cd7fecb7c0 100644
--- a/sw/airborne/firmwares/fixedwing/guidance/guidance_v.c
+++ b/sw/airborne/firmwares/fixedwing/guidance/guidance_v.c
@@ -48,6 +48,10 @@ float v_ctl_climb_setpoint;
uint8_t v_ctl_climb_mode;
uint8_t v_ctl_auto_throttle_submode;
+#ifndef V_CTL_AUTO_THROTTLE_DGAIN
+#define V_CTL_AUTO_THROTTLE_DGAIN 0.
+#endif
+
/* "auto throttle" inner loop parameters */
float v_ctl_auto_throttle_cruise_throttle;
float v_ctl_auto_throttle_nominal_cruise_throttle;
@@ -112,7 +116,7 @@ void v_ctl_init( void ) {
/* outer loop */
v_ctl_altitude_setpoint = 0.;
v_ctl_altitude_pre_climb = 0.;
- v_ctl_altitude_pgain = V_CTL_ALTITUDE_PGAIN;
+ v_ctl_altitude_pgain = ABS(V_CTL_ALTITUDE_PGAIN);
v_ctl_altitude_error = 0.;
/* inner loops */
@@ -123,19 +127,18 @@ void v_ctl_init( void ) {
/* "auto throttle" inner loop parameters */
v_ctl_auto_throttle_nominal_cruise_throttle = V_CTL_AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE;
v_ctl_auto_throttle_cruise_throttle = v_ctl_auto_throttle_nominal_cruise_throttle;
- v_ctl_auto_throttle_climb_throttle_increment =
- V_CTL_AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT;
- v_ctl_auto_throttle_pgain = V_CTL_AUTO_THROTTLE_PGAIN;
- v_ctl_auto_throttle_igain = V_CTL_AUTO_THROTTLE_IGAIN;
- v_ctl_auto_throttle_dgain = 0.;
+ v_ctl_auto_throttle_climb_throttle_increment = V_CTL_AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT;
+ v_ctl_auto_throttle_pgain = ABS(V_CTL_AUTO_THROTTLE_PGAIN);
+ v_ctl_auto_throttle_igain = ABS(V_CTL_AUTO_THROTTLE_IGAIN);
+ v_ctl_auto_throttle_dgain = ABS(V_CTL_AUTO_THROTTLE_DGAIN);
v_ctl_auto_throttle_sum_err = 0.;
v_ctl_auto_throttle_pitch_of_vz_pgain = V_CTL_AUTO_THROTTLE_PITCH_OF_VZ_PGAIN;
v_ctl_auto_throttle_pitch_of_vz_dgain = V_CTL_AUTO_THROTTLE_PITCH_OF_VZ_DGAIN;
#ifdef V_CTL_AUTO_PITCH_PGAIN
/* "auto pitch" inner loop parameters */
- v_ctl_auto_pitch_pgain = V_CTL_AUTO_PITCH_PGAIN;
- v_ctl_auto_pitch_igain = V_CTL_AUTO_PITCH_IGAIN;
+ v_ctl_auto_pitch_pgain = ABS(V_CTL_AUTO_PITCH_PGAIN);
+ v_ctl_auto_pitch_igain = ABS(V_CTL_AUTO_PITCH_IGAIN);
v_ctl_auto_pitch_sum_err = 0.;
#endif
@@ -194,7 +197,7 @@ void v_ctl_altitude_loop( void ) {
#endif
v_ctl_altitude_error = estimator_z - v_ctl_altitude_setpoint;
- v_ctl_climb_setpoint = altitude_pgain_boost * v_ctl_altitude_pgain * v_ctl_altitude_error
+ v_ctl_climb_setpoint = altitude_pgain_boost * -v_ctl_altitude_pgain * v_ctl_altitude_error
+ v_ctl_altitude_pre_climb;
BoundAbs(v_ctl_climb_setpoint, V_CTL_ALTITUDE_MAX_CLIMB);
@@ -244,7 +247,7 @@ inline static void v_ctl_climb_auto_throttle_loop(void) {
last_err = err;
float controlled_throttle = v_ctl_auto_throttle_cruise_throttle
+ v_ctl_auto_throttle_climb_throttle_increment * v_ctl_climb_setpoint
- + v_ctl_auto_throttle_pgain *
+ - v_ctl_auto_throttle_pgain *
(err + v_ctl_auto_throttle_igain * v_ctl_auto_throttle_sum_err
+ v_ctl_auto_throttle_dgain * d_err);
@@ -314,7 +317,7 @@ inline static void v_ctl_climb_auto_throttle_loop(void) {
float err = estimator_z_dot - v_ctl_climb_setpoint;
v_ctl_auto_pitch_sum_err += err;
BoundAbs(v_ctl_auto_pitch_sum_err, V_CTL_AUTO_PITCH_MAX_SUM_ERR);
- v_ctl_pitch_of_vz = v_ctl_auto_pitch_pgain *
+ v_ctl_pitch_of_vz = -v_ctl_auto_pitch_pgain *
(err + v_ctl_auto_pitch_igain * v_ctl_auto_pitch_sum_err);
// Ground speed control loop (input: groundspeed error, output: airspeed controlled)
@@ -356,7 +359,7 @@ inline static void v_ctl_climb_auto_pitch_loop(void) {
v_ctl_throttle_setpoint = nav_throttle_setpoint;
v_ctl_auto_pitch_sum_err += err;
BoundAbs(v_ctl_auto_pitch_sum_err, V_CTL_AUTO_PITCH_MAX_SUM_ERR);
- nav_pitch = v_ctl_auto_pitch_pgain *
+ nav_pitch = -v_ctl_auto_pitch_pgain *
(err + v_ctl_auto_pitch_igain * v_ctl_auto_pitch_sum_err);
Bound(nav_pitch, V_CTL_AUTO_PITCH_MIN_PITCH, V_CTL_AUTO_PITCH_MAX_PITCH);
}
diff --git a/sw/airborne/firmwares/fixedwing/guidance/guidance_v_n.c b/sw/airborne/firmwares/fixedwing/guidance/guidance_v_n.c
index b036b03399..ce55b59f14 100644
--- a/sw/airborne/firmwares/fixedwing/guidance/guidance_v_n.c
+++ b/sw/airborne/firmwares/fixedwing/guidance/guidance_v_n.c
@@ -49,6 +49,10 @@ float v_ctl_climb_setpoint;
uint8_t v_ctl_climb_mode;
uint8_t v_ctl_auto_throttle_submode;
+#ifndef V_CTL_AUTO_THROTTLE_DGAIN
+#define V_CTL_AUTO_THROTTLE_DGAIN 0.
+#endif
+
/* "auto throttle" inner loop parameters */
float v_ctl_auto_throttle_cruise_throttle;
float v_ctl_auto_throttle_nominal_cruise_throttle;
@@ -117,7 +121,7 @@ void v_ctl_init( void ) {
/* outer loop */
v_ctl_altitude_setpoint = 0.;
v_ctl_altitude_pre_climb = 0.;
- v_ctl_altitude_pgain = V_CTL_ALTITUDE_PGAIN;
+ v_ctl_altitude_pgain = ABS(V_CTL_ALTITUDE_PGAIN);
v_ctl_altitude_error = 0.;
/* inner loops */
@@ -129,17 +133,17 @@ void v_ctl_init( void ) {
v_ctl_auto_throttle_nominal_cruise_throttle = V_CTL_AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE;
v_ctl_auto_throttle_cruise_throttle = v_ctl_auto_throttle_nominal_cruise_throttle;
v_ctl_auto_throttle_climb_throttle_increment = V_CTL_AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT;
- v_ctl_auto_throttle_pgain = V_CTL_AUTO_THROTTLE_PGAIN;
- v_ctl_auto_throttle_igain = V_CTL_AUTO_THROTTLE_IGAIN;
- v_ctl_auto_throttle_dgain = 0.;
+ v_ctl_auto_throttle_pgain = ABS(V_CTL_AUTO_THROTTLE_PGAIN);
+ v_ctl_auto_throttle_igain = ABS(V_CTL_AUTO_THROTTLE_IGAIN);
+ v_ctl_auto_throttle_dgain = ABS(V_CTL_AUTO_THROTTLE_DGAIN);
v_ctl_auto_throttle_sum_err = 0.;
v_ctl_auto_throttle_pitch_of_vz_pgain = V_CTL_AUTO_THROTTLE_PITCH_OF_VZ_PGAIN;
v_ctl_auto_throttle_pitch_of_vz_dgain = V_CTL_AUTO_THROTTLE_PITCH_OF_VZ_DGAIN;
/* "auto pitch" inner loop parameters */
- v_ctl_auto_pitch_pgain = V_CTL_AUTO_PITCH_PGAIN;
- v_ctl_auto_pitch_dgain = V_CTL_AUTO_PITCH_DGAIN;
- v_ctl_auto_pitch_igain = V_CTL_AUTO_PITCH_IGAIN;
+ v_ctl_auto_pitch_pgain = ABS(V_CTL_AUTO_PITCH_PGAIN);
+ v_ctl_auto_pitch_dgain = ABS(V_CTL_AUTO_PITCH_DGAIN);
+ v_ctl_auto_pitch_igain = ABS(V_CTL_AUTO_PITCH_IGAIN);
v_ctl_auto_pitch_sum_err = 0.;
#if USE_AIRSPEED
@@ -179,7 +183,7 @@ void v_ctl_altitude_loop( void ) {
//static float last_lead_input = 0.;
// Altitude error
- v_ctl_altitude_error = estimator_z - v_ctl_altitude_setpoint;
+ v_ctl_altitude_error = v_ctl_altitude_setpoint - estimator_z;
v_ctl_climb_setpoint = v_ctl_altitude_pgain * v_ctl_altitude_error + v_ctl_altitude_pre_climb;
// Lead controller
@@ -203,13 +207,13 @@ static inline void v_ctl_set_pitch ( void ) {
v_ctl_auto_pitch_sum_err = 0;
// Compute errors
- float err = estimator_z_dot - v_ctl_climb_setpoint;
+ float err = v_ctl_climb_setpoint - estimator_z_dot;
float d_err = err - last_err;
last_err = err;
- if (v_ctl_auto_pitch_igain < 0.) {
+ if (v_ctl_auto_pitch_igain > 0.) {
v_ctl_auto_pitch_sum_err += err*(1./60.);
- BoundAbs(v_ctl_auto_pitch_sum_err, V_CTL_AUTO_PITCH_MAX_SUM_ERR / (-v_ctl_auto_pitch_igain));
+ BoundAbs(v_ctl_auto_pitch_sum_err, V_CTL_AUTO_PITCH_MAX_SUM_ERR / v_ctl_auto_pitch_igain);
}
// PI loop + feedforward ctl
@@ -228,13 +232,13 @@ static inline void v_ctl_set_throttle( void ) {
v_ctl_auto_throttle_sum_err = 0;
// Compute errors
- float err = estimator_z_dot - v_ctl_climb_setpoint;
+ float err = v_ctl_climb_setpoint - estimator_z_dot;
float d_err = err - last_err;
last_err = err;
- if (v_ctl_auto_throttle_igain < 0.) {
+ if (v_ctl_auto_throttle_igain > 0.) {
v_ctl_auto_throttle_sum_err += err*(1./60.);
- BoundAbs(v_ctl_auto_throttle_sum_err, V_CTL_AUTO_THROTTLE_MAX_SUM_ERR / (-v_ctl_auto_throttle_igain));
+ BoundAbs(v_ctl_auto_throttle_sum_err, V_CTL_AUTO_THROTTLE_MAX_SUM_ERR / v_ctl_auto_throttle_igain);
}
// PID loop + feedforward ctl
@@ -258,26 +262,26 @@ static inline void v_ctl_set_airspeed( void ) {
Bound(v_ctl_auto_airspeed_setpoint, V_CTL_AIRSPEED_MIN, V_CTL_AIRSPEED_MAX);
// Compute errors
- float err_vz = estimator_z_dot - v_ctl_climb_setpoint;
+ float err_vz = v_ctl_climb_setpoint - estimator_z_dot;
float d_err_vz = (err_vz - last_err_vz)*AIRSPEED_LOOP_PERIOD;
last_err_vz = err_vz;
- if (v_ctl_auto_throttle_igain < 0.) {
+ if (v_ctl_auto_throttle_igain > 0.) {
v_ctl_auto_throttle_sum_err += err_vz*AIRSPEED_LOOP_PERIOD;
- BoundAbs(v_ctl_auto_throttle_sum_err, V_CTL_AUTO_THROTTLE_MAX_SUM_ERR / (-v_ctl_auto_throttle_igain));
+ BoundAbs(v_ctl_auto_throttle_sum_err, V_CTL_AUTO_THROTTLE_MAX_SUM_ERR / v_ctl_auto_throttle_igain);
}
- if (v_ctl_auto_pitch_igain < 0.) {
+ if (v_ctl_auto_pitch_igain > 0.) {
v_ctl_auto_pitch_sum_err += err_vz*AIRSPEED_LOOP_PERIOD;
- BoundAbs(v_ctl_auto_pitch_sum_err, V_CTL_AUTO_PITCH_MAX_SUM_ERR / (-v_ctl_auto_pitch_igain));
+ BoundAbs(v_ctl_auto_pitch_sum_err, V_CTL_AUTO_PITCH_MAX_SUM_ERR / v_ctl_auto_pitch_igain);
}
float err_airspeed = v_ctl_auto_airspeed_setpoint - estimator_airspeed;
float d_err_airspeed = (err_airspeed - last_err_as)*AIRSPEED_LOOP_PERIOD;
last_err_as = err_airspeed;
- if (v_ctl_auto_airspeed_throttle_igain > 0.) { // ! sign
+ if (v_ctl_auto_airspeed_throttle_igain > 0.) {
v_ctl_auto_airspeed_throttle_sum_err += err_airspeed*AIRSPEED_LOOP_PERIOD;
BoundAbs(v_ctl_auto_airspeed_throttle_sum_err, V_CTL_AUTO_AIRSPEED_THROTTLE_MAX_SUM_ERR / v_ctl_auto_airspeed_throttle_igain);
}
- if (v_ctl_auto_airspeed_pitch_igain > 0.) { // ! sign
+ if (v_ctl_auto_airspeed_pitch_igain > 0.) {
v_ctl_auto_airspeed_pitch_sum_err += err_airspeed*AIRSPEED_LOOP_PERIOD;
BoundAbs(v_ctl_auto_airspeed_pitch_sum_err, V_CTL_AUTO_AIRSPEED_PITCH_MAX_SUM_ERR / v_ctl_auto_airspeed_pitch_igain);
}
diff --git a/sw/airborne/firmwares/fixedwing/stabilization/stabilization_adaptive.c b/sw/airborne/firmwares/fixedwing/stabilization/stabilization_adaptive.c
index 5c02751a26..a5348bc16c 100644
--- a/sw/airborne/firmwares/fixedwing/stabilization/stabilization_adaptive.c
+++ b/sw/airborne/firmwares/fixedwing/stabilization/stabilization_adaptive.c
@@ -150,19 +150,19 @@ void h_ctl_init( void ) {
h_ctl_course_setpoint = 0.;
h_ctl_course_pre_bank = 0.;
h_ctl_course_pre_bank_correction = H_CTL_COURSE_PRE_BANK_CORRECTION;
- h_ctl_course_pgain = H_CTL_COURSE_PGAIN;
- h_ctl_course_dgain = H_CTL_COURSE_DGAIN;
+ h_ctl_course_pgain = ABS(H_CTL_COURSE_PGAIN);
+ h_ctl_course_dgain = ABS(H_CTL_COURSE_DGAIN);
h_ctl_roll_max_setpoint = H_CTL_ROLL_MAX_SETPOINT;
h_ctl_disabled = FALSE;
h_ctl_roll_setpoint = 0.;
- h_ctl_roll_attitude_gain = H_CTL_ROLL_ATTITUDE_GAIN;
- h_ctl_roll_rate_gain = H_CTL_ROLL_RATE_GAIN;
- h_ctl_roll_igain = H_CTL_ROLL_IGAIN;
+ h_ctl_roll_attitude_gain = ABS(H_CTL_ROLL_ATTITUDE_GAIN);
+ h_ctl_roll_rate_gain = ABS(H_CTL_ROLL_RATE_GAIN);
+ h_ctl_roll_igain = ABS(H_CTL_ROLL_IGAIN);
h_ctl_roll_sum_err = 0;
- h_ctl_roll_Kffa = H_CTL_ROLL_KFFA;
- h_ctl_roll_Kffd = H_CTL_ROLL_KFFD;
+ h_ctl_roll_Kffa = ABS(H_CTL_ROLL_KFFA);
+ h_ctl_roll_Kffd = ABS(H_CTL_ROLL_KFFD);
h_ctl_aileron_setpoint = 0;
#ifdef H_CTL_AILERON_OF_THROTTLE
h_ctl_aileron_of_throttle = H_CTL_AILERON_OF_THROTTLE;
@@ -170,12 +170,12 @@ void h_ctl_init( void ) {
h_ctl_pitch_setpoint = 0.;
h_ctl_pitch_loop_setpoint = 0.;
- h_ctl_pitch_pgain = H_CTL_PITCH_PGAIN;
- h_ctl_pitch_dgain = H_CTL_PITCH_DGAIN;
- h_ctl_pitch_igain = H_CTL_PITCH_IGAIN;
+ h_ctl_pitch_pgain = ABS(H_CTL_PITCH_PGAIN);
+ h_ctl_pitch_dgain = ABS(H_CTL_PITCH_DGAIN);
+ h_ctl_pitch_igain = ABS(H_CTL_PITCH_IGAIN);
h_ctl_pitch_sum_err = 0.;
- h_ctl_pitch_Kffa = H_CTL_PITCH_KFFA;
- h_ctl_pitch_Kffd = H_CTL_PITCH_KFFD;
+ h_ctl_pitch_Kffa = ABS(H_CTL_PITCH_KFFA);
+ h_ctl_pitch_Kffd = ABS(H_CTL_PITCH_KFFD);
h_ctl_elevator_setpoint = 0;
h_ctl_elevator_of_roll = 0; //H_CTL_ELEVATOR_OF_ROLL;
#ifdef H_CTL_PITCH_OF_ROLL
@@ -203,7 +203,7 @@ void h_ctl_course_loop ( void ) {
static float last_err;
// Ground path error
- float err = estimator_hspeed_dir - h_ctl_course_setpoint;
+ float err = h_ctl_course_setpoint - estimator_hspeed_dir;
NormRadAngle(err);
float d_err = err - last_err;
@@ -277,50 +277,44 @@ inline static void h_ctl_roll_loop( void ) {
#ifdef USE_KFF_UPDATE
// update Kff gains
- h_ctl_roll_Kffa -= KFFA_UPDATE * h_ctl_ref_roll_accel * cmd_fb / (H_CTL_REF_MAX_P_DOT*H_CTL_REF_MAX_P_DOT);
- h_ctl_roll_Kffd -= KFFD_UPDATE * h_ctl_ref_roll_rate * cmd_fb / (H_CTL_REF_MAX_P*H_CTL_REF_MAX_P);
+ h_ctl_roll_Kffa += KFFA_UPDATE * h_ctl_ref_roll_accel * cmd_fb / (H_CTL_REF_MAX_P_DOT*H_CTL_REF_MAX_P_DOT);
+ h_ctl_roll_Kffd += KFFD_UPDATE * h_ctl_ref_roll_rate * cmd_fb / (H_CTL_REF_MAX_P*H_CTL_REF_MAX_P);
#ifdef SITL
printf("%f %f %f\n", h_ctl_roll_Kffa, h_ctl_roll_Kffd, cmd_fb);
#endif
- h_ctl_roll_Kffa = Min(h_ctl_roll_Kffa, 0);
- h_ctl_roll_Kffd = Min(h_ctl_roll_Kffd, 0);
+ h_ctl_roll_Kffa = Max(h_ctl_roll_Kffa, 0);
+ h_ctl_roll_Kffd = Max(h_ctl_roll_Kffd, 0);
#endif
// Compute errors
- float err = estimator_phi - h_ctl_ref_roll_angle;
+ float err = h_ctl_ref_roll_angle - estimator_phi;
#ifdef SITL
static float last_err = 0;
estimator_p = (err - last_err)/(1/60.);
last_err = err;
#endif
- float d_err = estimator_p - h_ctl_ref_roll_rate;
+ float d_err = h_ctl_ref_roll_rate - estimator_p;
if (pprz_mode == PPRZ_MODE_MANUAL || launch == 0) {
h_ctl_roll_sum_err = 0.;
}
else {
- if (h_ctl_roll_igain < 0.) {
+ if (h_ctl_roll_igain > 0.) {
h_ctl_roll_sum_err += err * H_CTL_REF_DT;
- BoundAbs(h_ctl_roll_sum_err, (- H_CTL_ROLL_SUM_ERR_MAX / h_ctl_roll_igain));
+ BoundAbs(h_ctl_roll_sum_err, H_CTL_ROLL_SUM_ERR_MAX / h_ctl_roll_igain);
} else {
h_ctl_roll_sum_err = 0.;
}
}
- cmd_fb = h_ctl_roll_attitude_gain * err;// + h_ctl_roll_rate_gain * d_err;
- float cmd = h_ctl_roll_Kffa * h_ctl_ref_roll_accel
- + h_ctl_roll_Kffd * h_ctl_ref_roll_rate
+ cmd_fb = h_ctl_roll_attitude_gain * err;
+ float cmd = - h_ctl_roll_Kffa * h_ctl_ref_roll_accel
+ - h_ctl_roll_Kffd * h_ctl_ref_roll_rate
- cmd_fb
- h_ctl_roll_rate_gain * d_err
- h_ctl_roll_igain * h_ctl_roll_sum_err
+ v_ctl_throttle_setpoint * h_ctl_aileron_of_throttle;
-// float cmd = h_ctl_roll_Kffa * h_ctl_ref_roll_accel
-// + h_ctl_roll_Kffd * h_ctl_ref_roll_rate
-// - h_ctl_roll_attitude_gain * err
-// - h_ctl_roll_rate_gain * d_err
-// - h_ctl_roll_igain * h_ctl_roll_sum_err
-// + v_ctl_throttle_setpoint * h_ctl_aileron_of_throttle;
-//
+
cmd /= airspeed_ratio2;
// Set aileron commands
@@ -390,9 +384,9 @@ inline static void h_ctl_pitch_loop( void ) {
#endif
// Compute errors
- float err = estimator_theta - h_ctl_ref_pitch_angle;
+ float err = h_ctl_ref_pitch_angle - estimator_theta;
#if USE_GYRO_PITCH_RATE
- float d_err = estimator_q - h_ctl_ref_pitch_rate;
+ float d_err = h_ctl_ref_pitch_rate - estimator_q;
#else // soft derivation
float d_err = (err - last_err)/H_CTL_REF_DT - h_ctl_ref_pitch_rate;
last_err = err;
@@ -402,16 +396,16 @@ inline static void h_ctl_pitch_loop( void ) {
h_ctl_pitch_sum_err = 0.;
}
else {
- if (h_ctl_pitch_igain < 0.) {
+ if (h_ctl_pitch_igain > 0.) {
h_ctl_pitch_sum_err += err * H_CTL_REF_DT;
- BoundAbs(h_ctl_pitch_sum_err, (- H_CTL_PITCH_SUM_ERR_MAX / h_ctl_pitch_igain));
+ BoundAbs(h_ctl_pitch_sum_err, H_CTL_PITCH_SUM_ERR_MAX / h_ctl_pitch_igain);
} else {
h_ctl_pitch_sum_err = 0.;
}
}
- float cmd = h_ctl_pitch_Kffa * h_ctl_ref_pitch_accel
- + h_ctl_pitch_Kffd * h_ctl_ref_pitch_rate
+ float cmd = - h_ctl_pitch_Kffa * h_ctl_ref_pitch_accel
+ - h_ctl_pitch_Kffd * h_ctl_ref_pitch_rate
+ h_ctl_pitch_pgain * err
+ h_ctl_pitch_dgain * d_err
+ h_ctl_pitch_igain * h_ctl_pitch_sum_err;
diff --git a/sw/airborne/firmwares/fixedwing/stabilization/stabilization_attitude.c b/sw/airborne/firmwares/fixedwing/stabilization/stabilization_attitude.c
index 97bde53917..f331067369 100644
--- a/sw/airborne/firmwares/fixedwing/stabilization/stabilization_attitude.c
+++ b/sw/airborne/firmwares/fixedwing/stabilization/stabilization_attitude.c
@@ -119,8 +119,8 @@ void h_ctl_init( void ) {
h_ctl_course_setpoint = 0.;
h_ctl_course_pre_bank = 0.;
h_ctl_course_pre_bank_correction = H_CTL_COURSE_PRE_BANK_CORRECTION;
- h_ctl_course_pgain = H_CTL_COURSE_PGAIN;
- h_ctl_course_dgain = H_CTL_COURSE_DGAIN;
+ h_ctl_course_pgain = ABS(H_CTL_COURSE_PGAIN);
+ h_ctl_course_dgain = ABS(H_CTL_COURSE_DGAIN);
h_ctl_roll_max_setpoint = H_CTL_ROLL_MAX_SETPOINT;
#ifdef USE_AOA
@@ -140,8 +140,8 @@ void h_ctl_init( void ) {
h_ctl_pitch_setpoint = 0.;
h_ctl_pitch_loop_setpoint = 0.;
- h_ctl_pitch_pgain = H_CTL_PITCH_PGAIN;
- h_ctl_pitch_dgain = H_CTL_PITCH_DGAIN;
+ h_ctl_pitch_pgain = ABS(H_CTL_PITCH_PGAIN);
+ h_ctl_pitch_dgain = ABS(H_CTL_PITCH_DGAIN);
h_ctl_elevator_setpoint = 0;
h_ctl_elevator_of_roll = H_CTL_ELEVATOR_OF_ROLL;
@@ -163,8 +163,8 @@ void h_ctl_init( void ) {
#endif
#ifdef H_CTL_ROLL_ATTITUDE_GAIN
- h_ctl_roll_attitude_gain = H_CTL_ROLL_ATTITUDE_GAIN;
- h_ctl_roll_rate_gain = H_CTL_ROLL_RATE_GAIN;
+ h_ctl_roll_attitude_gain = ABS(H_CTL_ROLL_ATTITUDE_GAIN);
+ h_ctl_roll_rate_gain = ABS(H_CTL_ROLL_RATE_GAIN);
#endif
#ifdef AGR_CLIMB
@@ -238,7 +238,7 @@ void h_ctl_course_loop ( void ) {
h_ctl_course_heading_mode = 0;
}
*/
-#endif
+#endif //STRONG_WIND
float d_err = err - last_err;
last_err = err;
@@ -248,7 +248,7 @@ void h_ctl_course_loop ( void ) {
#ifdef H_CTL_COURSE_SLEW_INCREMENT
/* slew severe course changes (i.e. waypoint moves, block changes or perpendicular routes) */
static float h_ctl_course_slew_rate = 0.;
- float nav_angle_saturation = -(h_ctl_roll_max_setpoint/h_ctl_course_pgain); /* heading error corresponding to max_roll */
+ float nav_angle_saturation = h_ctl_roll_max_setpoint/h_ctl_course_pgain; /* heading error corresponding to max_roll */
float half_nav_angle_saturation = nav_angle_saturation / 2.;
if (launch) { /* prevent accumulator run-up on the ground */
if (err > half_nav_angle_saturation) {
@@ -270,7 +270,7 @@ void h_ctl_course_loop ( void ) {
float speed_depend_nav = estimator_hspeed_mod/NOMINAL_AIRSPEED;
Bound(speed_depend_nav, 0.66, 1.5);
- float cmd = h_ctl_course_pgain * speed_depend_nav * (err + d_err * h_ctl_course_dgain);
+ float cmd = -h_ctl_course_pgain * speed_depend_nav * (err + d_err * h_ctl_course_dgain);
@@ -280,11 +280,11 @@ void h_ctl_course_loop ( void ) {
if (v_ctl_auto_throttle_submode == V_CTL_AUTO_THROTTLE_AGRESSIVE || V_CTL_AUTO_THROTTLE_BLENDED) {
BoundAbs(cmd, h_ctl_roll_max_setpoint); /* bound cmd before NAV_RATIO and again after */
if (v_ctl_altitude_error < 0) {
- nav_ratio = AGR_CLIMB_NAV_RATIO + (1 - AGR_CLIMB_NAV_RATIO) * (1 - (fabs(v_ctl_altitude_error) - AGR_BLEND_END) / (AGR_BLEND_START - AGR_BLEND_END));
- Bound (nav_ratio, AGR_CLIMB_NAV_RATIO, 1);
+ nav_ratio = AGR_CLIMB_NAV_RATIO + (1 - AGR_CLIMB_NAV_RATIO) * (1 - (fabs(v_ctl_altitude_error) - AGR_BLEND_END) / (AGR_BLEND_START - AGR_BLEND_END));
+ Bound (nav_ratio, AGR_CLIMB_NAV_RATIO, 1);
} else {
- nav_ratio = AGR_DESCENT_NAV_RATIO + (1 - AGR_DESCENT_NAV_RATIO) * (1 - (fabs(v_ctl_altitude_error) - AGR_BLEND_END) / (AGR_BLEND_START - AGR_BLEND_END));
- Bound (nav_ratio, AGR_DESCENT_NAV_RATIO, 1);
+ nav_ratio = AGR_DESCENT_NAV_RATIO + (1 - AGR_DESCENT_NAV_RATIO) * (1 - (fabs(v_ctl_altitude_error) - AGR_BLEND_END) / (AGR_BLEND_START - AGR_BLEND_END));
+ Bound (nav_ratio, AGR_DESCENT_NAV_RATIO, 1);
}
cmd *= nav_ratio;
}
@@ -320,8 +320,8 @@ inline static void h_ctl_roll_loop( void ) {
estimator_p = (err - last_err)/(1/60.);
last_err = err;
#endif
- float cmd = - h_ctl_roll_attitude_gain * err
- - h_ctl_roll_rate_gain * estimator_p
+ float cmd = h_ctl_roll_attitude_gain * err
+ + h_ctl_roll_rate_gain * estimator_p
+ v_ctl_throttle_setpoint * h_ctl_aileron_of_throttle;
h_ctl_aileron_setpoint = TRIM_PPRZ(cmd);
@@ -421,9 +421,7 @@ inline static void h_ctl_pitch_loop( void ) {
if (h_ctl_elevator_of_roll <0.)
h_ctl_elevator_of_roll = 0.;
- h_ctl_pitch_loop_setpoint =
- h_ctl_pitch_setpoint
- - h_ctl_elevator_of_roll / h_ctl_pitch_pgain * fabs(estimator_phi);
+ h_ctl_pitch_loop_setpoint = h_ctl_pitch_setpoint + h_ctl_elevator_of_roll / h_ctl_pitch_pgain * fabs(estimator_phi);
float err = 0;
@@ -446,7 +444,7 @@ inline static void h_ctl_pitch_loop( void ) {
float d_err = err - last_err;
last_err = err;
- float cmd = h_ctl_pitch_pgain * (err + h_ctl_pitch_dgain * d_err);
+ float cmd = -h_ctl_pitch_pgain * (err + h_ctl_pitch_dgain * d_err);
#ifdef LOITER_TRIM
cmd += loiter();
#endif
diff --git a/sw/airborne/firmwares/rotorcraft/guidance/guidance_h.c b/sw/airborne/firmwares/rotorcraft/guidance/guidance_h.c
index 5bb1c2dfa8..0e45915486 100644
--- a/sw/airborne/firmwares/rotorcraft/guidance/guidance_h.c
+++ b/sw/airborne/firmwares/rotorcraft/guidance/guidance_h.c
@@ -86,11 +86,11 @@ void guidance_h_init(void) {
INT_VECT2_ZERO(guidance_h_pos_err_sum);
INT_EULERS_ZERO(guidance_h_rc_sp);
INT_EULERS_ZERO(guidance_h_command_body);
- guidance_h_pgain = GUIDANCE_H_PGAIN;
- guidance_h_igain = GUIDANCE_H_IGAIN;
- guidance_h_dgain = GUIDANCE_H_DGAIN;
- guidance_h_ngain = GUIDANCE_H_NGAIN;
- guidance_h_again = GUIDANCE_H_AGAIN;
+ guidance_h_pgain = ABS(GUIDANCE_H_PGAIN);
+ guidance_h_igain = ABS(GUIDANCE_H_IGAIN);
+ guidance_h_dgain = ABS(GUIDANCE_H_DGAIN);
+ guidance_h_ngain = ABS(GUIDANCE_H_NGAIN);
+ guidance_h_again = ABS(GUIDANCE_H_AGAIN);
}
@@ -224,12 +224,12 @@ void guidance_h_run(bool_t in_flight) {
__attribute__ ((always_inline)) static inline void guidance_h_hover_run(void) {
/* compute position error */
- VECT2_DIFF(guidance_h_pos_err, ins_ltp_pos, guidance_h_pos_sp);
+ VECT2_DIFF(guidance_h_pos_err, guidance_h_pos_sp, ins_ltp_pos);
/* saturate it */
VECT2_STRIM(guidance_h_pos_err, -MAX_POS_ERR, MAX_POS_ERR);
/* compute speed error */
- VECT2_COPY(guidance_h_speed_err, ins_ltp_speed);
+ VECT2_COPY(guidance_h_speed_err, -ins_ltp_speed);
/* saturate it */
VECT2_STRIM(guidance_h_speed_err, -MAX_SPEED_ERR, MAX_SPEED_ERR);
@@ -295,13 +295,13 @@ __attribute__ ((always_inline)) static inline void guidance_h_nav_run(bool_t in
#endif
/* compute position error */
- VECT2_DIFF(guidance_h_pos_err, ins_ltp_pos, guidance_h_pos_ref);
+ VECT2_DIFF(guidance_h_pos_err, guidance_h_pos_ref, ins_ltp_pos);
/* saturate it */
VECT2_STRIM(guidance_h_pos_err, -MAX_POS_ERR, MAX_POS_ERR);
/* compute speed error */
//VECT2_COPY(guidance_h_speed_err, ins_ltp_speed);
- VECT2_DIFF(guidance_h_speed_err, ins_ltp_speed, guidance_h_speed_ref);
+ VECT2_DIFF(guidance_h_speed_err, guidance_h_speed_ref, ins_ltp_speed);
/* saturate it */
VECT2_STRIM(guidance_h_speed_err, -MAX_SPEED_ERR, MAX_SPEED_ERR);
@@ -324,8 +324,8 @@ __attribute__ ((always_inline)) static inline void guidance_h_nav_run(bool_t in
}
// multiply by vector orthogonal to speed
VECT2_ASSIGN(guidance_h_nav_err,
- vect_prod * (-ins_ltp_speed.y),
- vect_prod * ins_ltp_speed.x);
+ vect_prod * ins_ltp_speed.y,
+ vect_prod * (-ins_ltp_speed.x));
// divide by 2 times dist ( >> 16 )
VECT2_SDIV(guidance_h_nav_err, guidance_h_nav_err, dist*dist);
// *2 ??
diff --git a/sw/airborne/firmwares/rotorcraft/guidance/guidance_v.c b/sw/airborne/firmwares/rotorcraft/guidance/guidance_v.c
index d8745f9ce5..eba0bee30c 100644
--- a/sw/airborne/firmwares/rotorcraft/guidance/guidance_v.c
+++ b/sw/airborne/firmwares/rotorcraft/guidance/guidance_v.c
@@ -97,9 +97,9 @@ void guidance_v_init(void) {
guidance_v_mode = GUIDANCE_V_MODE_KILL;
- guidance_v_kp = GUIDANCE_V_HOVER_KP;
- guidance_v_kd = GUIDANCE_V_HOVER_KD;
- guidance_v_ki = GUIDANCE_V_HOVER_KI;
+ guidance_v_kp = ABS(GUIDANCE_V_HOVER_KP);
+ guidance_v_kd = ABS(GUIDANCE_V_HOVER_KD);
+ guidance_v_ki = ABS(GUIDANCE_V_HOVER_KI);
guidance_v_z_sum_err = 0;
@@ -261,9 +261,9 @@ __attribute__ ((always_inline)) static inline void run_hover_loop(bool_t in_flig
guidance_v_zd_ref = gv_zd_ref<<(INT32_SPEED_FRAC - GV_ZD_REF_FRAC);
guidance_v_zdd_ref = gv_zdd_ref<<(INT32_ACCEL_FRAC - GV_ZDD_REF_FRAC);
/* compute the error to our reference */
- int32_t err_z = ins_ltp_pos.z - guidance_v_z_ref;
+ int32_t err_z = guidance_v_z_ref - ins_ltp_pos.z;
Bound(err_z, GUIDANCE_V_MIN_ERR_Z, GUIDANCE_V_MAX_ERR_Z);
- int32_t err_zd = ins_ltp_speed.z - guidance_v_zd_ref;
+ int32_t err_zd = guidance_v_zd_ref - ins_ltp_speed.z;
Bound(err_zd, GUIDANCE_V_MIN_ERR_ZD, GUIDANCE_V_MAX_ERR_ZD);
if (in_flight) {
@@ -297,12 +297,13 @@ __attribute__ ((always_inline)) static inline void run_hover_loop(bool_t in_flig
#endif
/* our error command */
- guidance_v_fb_cmd = ((-guidance_v_kp * err_z) >> 12) +
- ((-guidance_v_kd * err_zd) >> 21) +
- ((-guidance_v_ki * guidance_v_z_sum_err) >> 21);
+ guidance_v_fb_cmd = ((guidance_v_kp * err_z) >> 12) +
+ ((guidance_v_kd * err_zd) >> 21) +
+ ((guidance_v_ki * guidance_v_z_sum_err) >> 21);
- guidance_v_delta_t = guidance_v_ff_cmd + guidance_v_fb_cmd;
- // guidance_v_delta_t = guidance_v_fb_cmd;
+ // z-axis pointing down -> positive error means we need less thrust
+ guidance_v_delta_t = - (guidance_v_ff_cmd + guidance_v_fb_cmd);
+ // guidance_v_delta_t = -guidance_v_fb_cmd;
}
diff --git a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_euler_float.c b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_euler_float.c
index daf738ed93..140cc9f44a 100644
--- a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_euler_float.c
+++ b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_euler_float.c
@@ -42,24 +42,24 @@ void stabilization_attitude_init(void) {
stabilization_attitude_ref_init();
VECT3_ASSIGN(stabilization_gains.p,
- STABILIZATION_ATTITUDE_FLOAT_PHI_PGAIN,
- STABILIZATION_ATTITUDE_FLOAT_THETA_PGAIN,
- STABILIZATION_ATTITUDE_FLOAT_PSI_PGAIN);
+ ABS(STABILIZATION_ATTITUDE_FLOAT_PHI_PGAIN),
+ ABS(STABILIZATION_ATTITUDE_FLOAT_THETA_PGAIN),
+ ABS(STABILIZATION_ATTITUDE_FLOAT_PSI_PGAIN));
VECT3_ASSIGN(stabilization_gains.d,
- STABILIZATION_ATTITUDE_FLOAT_PHI_DGAIN,
- STABILIZATION_ATTITUDE_FLOAT_THETA_DGAIN,
- STABILIZATION_ATTITUDE_FLOAT_PSI_DGAIN);
+ ABS(STABILIZATION_ATTITUDE_FLOAT_PHI_DGAIN),
+ ABS(STABILIZATION_ATTITUDE_FLOAT_THETA_DGAIN),
+ ABS(STABILIZATION_ATTITUDE_FLOAT_PSI_DGAIN));
VECT3_ASSIGN(stabilization_gains.i,
- STABILIZATION_ATTITUDE_FLOAT_PHI_IGAIN,
- STABILIZATION_ATTITUDE_FLOAT_THETA_IGAIN,
- STABILIZATION_ATTITUDE_FLOAT_PSI_IGAIN);
+ ABS(STABILIZATION_ATTITUDE_FLOAT_PHI_IGAIN),
+ ABS(STABILIZATION_ATTITUDE_FLOAT_THETA_IGAIN),
+ ABS(STABILIZATION_ATTITUDE_FLOAT_PSI_IGAIN));
VECT3_ASSIGN(stabilization_gains.dd,
- STABILIZATION_ATTITUDE_FLOAT_PHI_DDGAIN,
- STABILIZATION_ATTITUDE_FLOAT_THETA_DDGAIN,
- STABILIZATION_ATTITUDE_FLOAT_PSI_DDGAIN);
+ ABS(STABILIZATION_ATTITUDE_FLOAT_PHI_DDGAIN),
+ ABS(STABILIZATION_ATTITUDE_FLOAT_THETA_DDGAIN),
+ ABS(STABILIZATION_ATTITUDE_FLOAT_PSI_DDGAIN));
FLOAT_EULERS_ZERO( stabilization_att_sum_err );
@@ -100,7 +100,7 @@ void stabilization_attitude_run(bool_t in_flight) {
struct FloatEulers att_float;
EULERS_FLOAT_OF_BFP(att_float, ahrs.ltp_to_body_euler);
struct FloatEulers att_err;
- EULERS_DIFF(att_err, att_float, stab_att_ref_euler);
+ EULERS_DIFF(att_err, stab_att_ref_euler, att_float);
FLOAT_ANGLE_NORMALIZE(att_err.psi);
if (in_flight) {
@@ -116,7 +116,7 @@ void stabilization_attitude_run(bool_t in_flight) {
struct FloatRates rate_float;
RATES_FLOAT_OF_BFP(rate_float, ahrs.body_rate);
struct FloatRates rate_err;
- RATES_DIFF(rate_err, rate_float, stab_att_ref_rate);
+ RATES_DIFF(rate_err, stab_att_ref_rate, rate_float);
/* PID */
diff --git a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_euler_int.c b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_euler_int.c
index 24569f0e78..1e5a845b81 100644
--- a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_euler_int.c
+++ b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_euler_int.c
@@ -42,24 +42,24 @@ void stabilization_attitude_init(void) {
VECT3_ASSIGN(stabilization_gains.p,
- STABILIZATION_ATTITUDE_PHI_PGAIN,
- STABILIZATION_ATTITUDE_THETA_PGAIN,
- STABILIZATION_ATTITUDE_PSI_PGAIN);
+ ABS(STABILIZATION_ATTITUDE_PHI_PGAIN),
+ ABS(STABILIZATION_ATTITUDE_THETA_PGAIN),
+ ABS(STABILIZATION_ATTITUDE_PSI_PGAIN));
VECT3_ASSIGN(stabilization_gains.d,
- STABILIZATION_ATTITUDE_PHI_DGAIN,
- STABILIZATION_ATTITUDE_THETA_DGAIN,
- STABILIZATION_ATTITUDE_PSI_DGAIN);
+ ABS(STABILIZATION_ATTITUDE_PHI_DGAIN),
+ ABS(STABILIZATION_ATTITUDE_THETA_DGAIN),
+ ABS(STABILIZATION_ATTITUDE_PSI_DGAIN));
VECT3_ASSIGN(stabilization_gains.i,
- STABILIZATION_ATTITUDE_PHI_IGAIN,
- STABILIZATION_ATTITUDE_THETA_IGAIN,
- STABILIZATION_ATTITUDE_PSI_IGAIN);
+ ABS(STABILIZATION_ATTITUDE_PHI_IGAIN),
+ ABS(STABILIZATION_ATTITUDE_THETA_IGAIN),
+ ABS(STABILIZATION_ATTITUDE_PSI_IGAIN));
VECT3_ASSIGN(stabilization_gains.dd,
- STABILIZATION_ATTITUDE_PHI_DDGAIN,
- STABILIZATION_ATTITUDE_THETA_DDGAIN,
- STABILIZATION_ATTITUDE_PSI_DDGAIN);
+ ABS(STABILIZATION_ATTITUDE_PHI_DDGAIN),
+ ABS(STABILIZATION_ATTITUDE_THETA_DDGAIN),
+ ABS(STABILIZATION_ATTITUDE_PSI_DDGAIN));
INT_EULERS_ZERO( stabilization_att_sum_err );
@@ -108,7 +108,7 @@ void stabilization_attitude_run(bool_t in_flight) {
OFFSET_AND_ROUND(stab_att_ref_euler.theta, (REF_ANGLE_FRAC - INT32_ANGLE_FRAC)),
OFFSET_AND_ROUND(stab_att_ref_euler.psi, (REF_ANGLE_FRAC - INT32_ANGLE_FRAC)) };
struct Int32Eulers att_err;
- EULERS_DIFF(att_err, ahrs.ltp_to_body_euler, att_ref_scaled);
+ EULERS_DIFF(att_err, att_ref_scaled, ahrs.ltp_to_body_euler);
INT32_ANGLE_NORMALIZE(att_err.psi);
if (in_flight) {
@@ -126,7 +126,7 @@ void stabilization_attitude_run(bool_t in_flight) {
OFFSET_AND_ROUND(stab_att_ref_rate.q, (REF_RATE_FRAC - INT32_RATE_FRAC)),
OFFSET_AND_ROUND(stab_att_ref_rate.r, (REF_RATE_FRAC - INT32_RATE_FRAC)) };
struct Int32Rates rate_err;
- RATES_DIFF(rate_err, ahrs.body_rate, rate_ref_scaled);
+ RATES_DIFF(rate_err, rate_ref_scaled, ahrs.body_rate);
/* PID */
stabilization_att_fb_cmd[COMMAND_ROLL] =
diff --git a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_quat_float.c b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_quat_float.c
index 36f6dd9df7..e84c238123 100644
--- a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_quat_float.c
+++ b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_quat_float.c
@@ -86,15 +86,15 @@ void stabilization_attitude_init(void) {
stabilization_attitude_ref_init();
for (int i = 0; i < STABILIZATION_ATTITUDE_FLOAT_GAIN_NB; i++) {
- VECT3_ASSIGN(stabilization_gains[i].p, phi_pgain[i], theta_pgain[i], psi_pgain[i]);
- VECT3_ASSIGN(stabilization_gains[i].d, phi_dgain[i], theta_dgain[i], psi_dgain[i]);
- VECT3_ASSIGN(stabilization_gains[i].i, phi_igain[i], theta_igain[i], psi_igain[i]);
- VECT3_ASSIGN(stabilization_gains[i].dd, phi_ddgain[i], theta_ddgain[i], psi_ddgain[i]);
- VECT3_ASSIGN(stabilization_gains[i].rates_d, phi_dgain_d[i], theta_dgain_d[i], psi_dgain_d[i]);
- VECT3_ASSIGN(stabilization_gains[i].surface_p, phi_pgain_surface[i], theta_pgain_surface[i], psi_pgain_surface[i]);
- VECT3_ASSIGN(stabilization_gains[i].surface_d, phi_dgain_surface[i], theta_dgain_surface[i], psi_dgain_surface[i]);
- VECT3_ASSIGN(stabilization_gains[i].surface_i, phi_igain_surface[i], theta_igain_surface[i], psi_igain_surface[i]);
- VECT3_ASSIGN(stabilization_gains[i].surface_dd, phi_ddgain_surface[i], theta_ddgain_surface[i], psi_ddgain_surface[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].p, phi_pgain[i], theta_pgain[i], psi_pgain[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].d, phi_dgain[i], theta_dgain[i], psi_dgain[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].i, phi_igain[i], theta_igain[i], psi_igain[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].dd, phi_ddgain[i], theta_ddgain[i], psi_ddgain[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].rates_d, phi_dgain_d[i], theta_dgain_d[i], psi_dgain_d[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].surface_p, phi_pgain_surface[i], theta_pgain_surface[i], psi_pgain_surface[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].surface_d, phi_dgain_surface[i], theta_dgain_surface[i], psi_dgain_surface[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].surface_i, phi_igain_surface[i], theta_igain_surface[i], psi_igain_surface[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].surface_dd, phi_ddgain_surface[i], theta_ddgain_surface[i], psi_ddgain_surface[i]);
}
FLOAT_QUAT_ZERO( stabilization_att_sum_err_quat );
@@ -136,35 +136,35 @@ static void attitude_run_fb(float fb_commands[], struct FloatAttitudeGains *gain
{
/* PID feedback */
fb_commands[COMMAND_ROLL] =
- GAIN_PRESCALER_P * -gains->p.x * att_err->qx +
+ GAIN_PRESCALER_P * gains->p.x * att_err->qx +
GAIN_PRESCALER_D * gains->d.x * rate_err->p +
GAIN_PRESCALER_D * gains->rates_d.x * rate_err_d->p +
GAIN_PRESCALER_I * gains->i.x * sum_err->qx;
fb_commands[COMMAND_PITCH] =
- GAIN_PRESCALER_P * -gains->p.y * att_err->qy +
+ GAIN_PRESCALER_P * gains->p.y * att_err->qy +
GAIN_PRESCALER_D * gains->d.y * rate_err->q +
GAIN_PRESCALER_D * gains->rates_d.y * rate_err_d->q +
GAIN_PRESCALER_I * gains->i.y * sum_err->qy;
fb_commands[COMMAND_YAW] =
- GAIN_PRESCALER_P * -gains->p.z * att_err->qz +
+ GAIN_PRESCALER_P * gains->p.z * att_err->qz +
GAIN_PRESCALER_D * gains->d.z * rate_err->r +
GAIN_PRESCALER_D * gains->rates_d.z * rate_err_d->r +
GAIN_PRESCALER_I * gains->i.z * sum_err->qz;
fb_commands[COMMAND_ROLL_SURFACE] =
- GAIN_PRESCALER_P * -gains->surface_p.x * att_err->qx +
+ GAIN_PRESCALER_P * gains->surface_p.x * att_err->qx +
GAIN_PRESCALER_D * gains->surface_d.x * rate_err->p +
GAIN_PRESCALER_I * gains->surface_i.x * sum_err->qx;
fb_commands[COMMAND_PITCH_SURFACE] =
- GAIN_PRESCALER_P * -gains->surface_p.y * att_err->qy +
+ GAIN_PRESCALER_P * gains->surface_p.y * att_err->qy +
GAIN_PRESCALER_D * gains->surface_d.y * rate_err->q +
GAIN_PRESCALER_I * gains->surface_i.y * sum_err->qy;
fb_commands[COMMAND_YAW_SURFACE] =
- GAIN_PRESCALER_P * -gains->surface_p.z * att_err->qz +
+ GAIN_PRESCALER_P * gains->surface_p.z * att_err->qz +
GAIN_PRESCALER_D * gains->surface_d.z * rate_err->r +
GAIN_PRESCALER_I * gains->surface_i.z * sum_err->qz;
@@ -189,7 +189,7 @@ void stabilization_attitude_run(bool_t enable_integrator) {
/* rate error */
struct FloatRates rate_err;
- RATES_DIFF(rate_err, ahrs_float.body_rate, stab_att_ref_rate);
+ RATES_DIFF(rate_err, stab_att_ref_rate, ahrs_float.body_rate);
/* integrated error */
if (enable_integrator) {
@@ -199,7 +199,7 @@ void stabilization_attitude_run(bool_t enable_integrator) {
scaled_att_err.qx = att_err.qx / IERROR_SCALE;
scaled_att_err.qy = att_err.qy / IERROR_SCALE;
scaled_att_err.qz = att_err.qz / IERROR_SCALE;
- FLOAT_QUAT_COMP_INV(new_sum_err, stabilization_att_sum_err_quat, scaled_att_err);
+ FLOAT_QUAT_COMP(new_sum_err, stabilization_att_sum_err_quat, scaled_att_err);
FLOAT_QUAT_NORMALIZE(new_sum_err);
FLOAT_QUAT_COPY(stabilization_att_sum_err_quat, new_sum_err);
FLOAT_EULERS_OF_QUAT(stabilization_att_sum_err_eulers, stabilization_att_sum_err_quat);
diff --git a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_quat_int.c b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_quat_int.c
index a221633e5e..767c99f06f 100644
--- a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_quat_int.c
+++ b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_attitude_quat_int.c
@@ -33,12 +33,7 @@
#include "subsystems/ahrs.h"
#include "generated/airframe.h"
-struct Int32AttitudeGains stabilization_gains = {
- {STABILIZATION_ATTITUDE_PHI_PGAIN, STABILIZATION_ATTITUDE_THETA_PGAIN, STABILIZATION_ATTITUDE_PSI_PGAIN },
- {STABILIZATION_ATTITUDE_PHI_DGAIN, STABILIZATION_ATTITUDE_THETA_DGAIN, STABILIZATION_ATTITUDE_PSI_DGAIN },
- {STABILIZATION_ATTITUDE_PHI_DDGAIN, STABILIZATION_ATTITUDE_THETA_DDGAIN, STABILIZATION_ATTITUDE_PSI_DDGAIN },
- {STABILIZATION_ATTITUDE_PHI_IGAIN, STABILIZATION_ATTITUDE_THETA_IGAIN, STABILIZATION_ATTITUDE_PSI_IGAIN }
-};
+struct Int32AttitudeGains stabilization_gains;
struct Int32Quat stabilization_att_sum_err_quat;
struct Int32Eulers stabilization_att_sum_err;
@@ -98,18 +93,38 @@ void stabilization_attitude_init(void) {
/*
for (int i = 0; i < STABILIZATION_ATTITUDE_GAIN_NB; i++) {
- VECT3_ASSIGN(stabilization_gains[i].p, phi_pgain[i], theta_pgain[i], psi_pgain[i]);
- VECT3_ASSIGN(stabilization_gains[i].d, phi_dgain[i], theta_dgain[i], psi_dgain[i]);
- VECT3_ASSIGN(stabilization_gains[i].i, phi_igain[i], theta_igain[i], psi_igain[i]);
- VECT3_ASSIGN(stabilization_gains[i].dd, phi_ddgain[i], theta_ddgain[i], psi_ddgain[i]);
- VECT3_ASSIGN(stabilization_gains[i].rates_d, phi_dgain_d[i], theta_dgain_d[i], psi_dgain_d[i]);
- VECT3_ASSIGN(stabilization_gains[i].surface_p, phi_pgain_surface[i], theta_pgain_surface[i], psi_pgain_surface[i]);
- VECT3_ASSIGN(stabilization_gains[i].surface_d, phi_dgain_surface[i], theta_dgain_surface[i], psi_dgain_surface[i]);
- VECT3_ASSIGN(stabilization_gains[i].surface_i, phi_igain_surface[i], theta_igain_surface[i], psi_igain_surface[i]);
- VECT3_ASSIGN(stabilization_gains[i].surface_dd, phi_ddgain_surface[i], theta_ddgain_surface[i], psi_ddgain_surface[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].p, phi_pgain[i], theta_pgain[i], psi_pgain[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].d, phi_dgain[i], theta_dgain[i], psi_dgain[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].i, phi_igain[i], theta_igain[i], psi_igain[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].dd, phi_ddgain[i], theta_ddgain[i], psi_ddgain[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].rates_d, phi_dgain_d[i], theta_dgain_d[i], psi_dgain_d[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].surface_p, phi_pgain_surface[i], theta_pgain_surface[i], psi_pgain_surface[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].surface_d, phi_dgain_surface[i], theta_dgain_surface[i], psi_dgain_surface[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].surface_i, phi_igain_surface[i], theta_igain_surface[i], psi_igain_surface[i]);
+ VECT3_ASSIGN_ABS(stabilization_gains[i].surface_dd, phi_ddgain_surface[i], theta_ddgain_surface[i], psi_ddgain_surface[i]);
}
*/
+ VECT3_ASSIGN_ABS(stabilization_gains.p,
+ STABILIZATION_ATTITUDE_PHI_PGAIN,
+ STABILIZATION_ATTITUDE_THETA_PGAIN,
+ STABILIZATION_ATTITUDE_PSI_PGAIN);
+
+ VECT3_ASSIGN_ABS(stabilization_gains.d,
+ STABILIZATION_ATTITUDE_PHI_DGAIN,
+ STABILIZATION_ATTITUDE_THETA_DGAIN,
+ STABILIZATION_ATTITUDE_PSI_DGAIN);
+
+ VECT3_ASSIGN_ABS(stabilization_gains.i,
+ STABILIZATION_ATTITUDE_PHI_IGAIN,
+ STABILIZATION_ATTITUDE_THETA_IGAIN,
+ STABILIZATION_ATTITUDE_PSI_IGAIN);
+
+ VECT3_ASSIGN_ABS(stabilization_gains.dd,
+ STABILIZATION_ATTITUDE_PHI_DDGAIN,
+ STABILIZATION_ATTITUDE_THETA_DDGAIN,
+ STABILIZATION_ATTITUDE_PSI_DDGAIN);
+
INT32_QUAT_ZERO( stabilization_att_sum_err_quat );
INT_EULERS_ZERO( stabilization_att_sum_err );
}
@@ -152,17 +167,17 @@ static void attitude_run_fb(int32_t fb_commands[], struct Int32AttitudeGains *ga
{
/* PID feedback */
fb_commands[COMMAND_ROLL] =
- GAIN_PRESCALER_P * -gains->p.x * QUAT1_FLOAT_OF_BFP(att_err->qx) / 4 +
+ GAIN_PRESCALER_P * gains->p.x * QUAT1_FLOAT_OF_BFP(att_err->qx) / 4 +
GAIN_PRESCALER_D * gains->d.x * RATE_FLOAT_OF_BFP(rate_err->p) / 16 +
GAIN_PRESCALER_I * gains->i.x * QUAT1_FLOAT_OF_BFP(sum_err->qx) / 2;
fb_commands[COMMAND_PITCH] =
- GAIN_PRESCALER_P * -gains->p.y * QUAT1_FLOAT_OF_BFP(att_err->qy) / 4 +
+ GAIN_PRESCALER_P * gains->p.y * QUAT1_FLOAT_OF_BFP(att_err->qy) / 4 +
GAIN_PRESCALER_D * gains->d.y * RATE_FLOAT_OF_BFP(rate_err->q) / 16 +
GAIN_PRESCALER_I * gains->i.y * QUAT1_FLOAT_OF_BFP(sum_err->qy) / 2;
fb_commands[COMMAND_YAW] =
- GAIN_PRESCALER_P * -gains->p.z * QUAT1_FLOAT_OF_BFP(att_err->qz) / 4 +
+ GAIN_PRESCALER_P * gains->p.z * QUAT1_FLOAT_OF_BFP(att_err->qz) / 4 +
GAIN_PRESCALER_D * gains->d.z * RATE_FLOAT_OF_BFP(rate_err->r) / 16 +
GAIN_PRESCALER_I * gains->i.z * QUAT1_FLOAT_OF_BFP(sum_err->qz) / 2;
@@ -188,7 +203,7 @@ void stabilization_attitude_run(bool_t enable_integrator) {
/* rate error */
struct Int32Rates rate_err;
- RATES_DIFF(rate_err, ahrs.body_rate, stab_att_ref_rate);
+ RATES_DIFF(rate_err, stab_att_ref_rate, ahrs.body_rate);
/* integrated error */
if (enable_integrator) {
@@ -198,7 +213,7 @@ void stabilization_attitude_run(bool_t enable_integrator) {
scaled_att_err.qx = att_err.qx / IERROR_SCALE;
scaled_att_err.qy = att_err.qy / IERROR_SCALE;
scaled_att_err.qz = att_err.qz / IERROR_SCALE;
- INT32_QUAT_COMP_INV(new_sum_err, stabilization_att_sum_err_quat, scaled_att_err);
+ INT32_QUAT_COMP(new_sum_err, stabilization_att_sum_err_quat, scaled_att_err);
INT32_QUAT_NORMALIZE(new_sum_err);
QUAT_COPY(stabilization_att_sum_err_quat, new_sum_err);
INT32_EULERS_OF_QUAT(stabilization_att_sum_err, stabilization_att_sum_err_quat);
diff --git a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_rate.c b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_rate.c
index 44ff7ac984..62891feed3 100644
--- a/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_rate.c
+++ b/sw/airborne/firmwares/rotorcraft/stabilization/stabilization_rate.c
@@ -101,17 +101,17 @@ void stabilization_rate_init(void) {
INT_RATES_ZERO(stabilization_rate_sp);
RATES_ASSIGN(stabilization_rate_gain,
- STABILIZATION_RATE_GAIN_P,
- STABILIZATION_RATE_GAIN_Q,
- STABILIZATION_RATE_GAIN_R);
+ ABS(STABILIZATION_RATE_GAIN_P),
+ ABS(STABILIZATION_RATE_GAIN_Q),
+ ABS(STABILIZATION_RATE_GAIN_R));
RATES_ASSIGN(stabilization_rate_igain,
- STABILIZATION_RATE_IGAIN_P,
- STABILIZATION_RATE_IGAIN_Q,
- STABILIZATION_RATE_IGAIN_R);
+ ABS(STABILIZATION_RATE_IGAIN_P),
+ ABS(STABILIZATION_RATE_IGAIN_Q),
+ ABS(STABILIZATION_RATE_IGAIN_R));
RATES_ASSIGN(stabilization_rate_ddgain,
- STABILIZATION_RATE_DDGAIN_P,
- STABILIZATION_RATE_DDGAIN_Q,
- STABILIZATION_RATE_DDGAIN_R);
+ ABS(STABILIZATION_RATE_DDGAIN_P),
+ ABS(STABILIZATION_RATE_DDGAIN_Q),
+ ABS(STABILIZATION_RATE_DDGAIN_R));
INT_RATES_ZERO(stabilization_rate_ref);
INT_RATES_ZERO(stabilization_rate_refdot);
@@ -169,7 +169,7 @@ void stabilization_rate_run(bool_t in_flight) {
OFFSET_AND_ROUND(stabilization_rate_ref.q, (REF_FRAC - INT32_RATE_FRAC)),
OFFSET_AND_ROUND(stabilization_rate_ref.r, (REF_FRAC - INT32_RATE_FRAC)) };
struct Int32Rates _error;
- RATES_DIFF(_error, ahrs.body_rate, _ref_scaled);
+ RATES_DIFF(_error, _ref_scaled, ahrs.body_rate);
if (in_flight) {
/* update integrator */
RATES_ADD(stabilization_rate_sum_err, _error);
diff --git a/sw/airborne/math/pprz_algebra.h b/sw/airborne/math/pprz_algebra.h
index a57e67dd7c..9bc9b54c8a 100644
--- a/sw/airborne/math/pprz_algebra.h
+++ b/sw/airborne/math/pprz_algebra.h
@@ -27,6 +27,7 @@
#include /* for FLT_EPSILON */
#include /* for memcpy */
+#include "std.h" /* for ABS */
#define SQUARE(_a) ((_a)*(_a))
@@ -101,6 +102,13 @@
(_a).z = (_z); \
}
+/* a = {abs(x), abs(y), abs(z)} */
+#define VECT3_ASSIGN_ABS(_a, _x, _y, _z) { \
+ (_a).x = ABS(_x); \
+ (_a).y = ABS(_y); \
+ (_a).z = ABS(_z); \
+ }
+
/* a = b */
#define VECT3_COPY(_a, _b) { \
(_a).x = (_b).x; \
@@ -199,6 +207,13 @@
if ((_v).z > (_v_max).y) (_v).z = (_v_max).z; else if ((_v).z < (_v_min).z) (_v).z = (_v_min).z; \
}
+/* */
+#define VECT3_ABS(_vo, _vi) { \
+ (_vo).x = ABS((_vi).x); \
+ (_vo).y = ABS((_vi).y); \
+ (_vo).z = ABS((_vi).z); \
+ }
+
#define VECT3_CROSS_PRODUCT(_vo, _v1, _v2) { \
(_vo).x = (_v1).y*(_v2).z - (_v1).z*(_v2).y; \
(_vo).y = (_v1).z*(_v2).x - (_v1).x*(_v2).z; \
diff --git a/sw/airborne/modules/cam_control/booz_cam.c b/sw/airborne/modules/cam_control/booz_cam.c
index 77d762db46..2082a831d3 100644
--- a/sw/airborne/modules/cam_control/booz_cam.c
+++ b/sw/airborne/modules/cam_control/booz_cam.c
@@ -28,6 +28,7 @@
#include "firmwares/rotorcraft/navigation.h"
#include "subsystems/ins.h"
#include "generated/flight_plan.h"
+#include "std.h"
uint8_t booz_cam_mode;
@@ -83,7 +84,6 @@ void booz_cam_init(void) {
#endif
}
-#define ABS(_x) ((_x) < 0 ? -(_x) : (_x))
#define D_TILT (BOOZ_CAM_TILT_MAX - BOOZ_CAM_TILT_MIN)
#define CT_MIN Min(BOOZ_CAM_TILT_MIN,BOOZ_CAM_TILT_MAX)
#define CT_MAX Max(BOOZ_CAM_TILT_MIN,BOOZ_CAM_TILT_MAX)
diff --git a/sw/airborne/subsystems/nav.c b/sw/airborne/subsystems/nav.c
index 12aadf70d6..53c5384702 100644
--- a/sw/airborne/subsystems/nav.c
+++ b/sw/airborne/subsystems/nav.c
@@ -208,7 +208,7 @@ static inline void nav_follow(uint8_t _ac_id, float _distance, float _height);
static void nav_ground_speed_loop( void ) {
if (MINIMUM_AIRSPEED < nav_ground_speed_setpoint
&& nav_ground_speed_setpoint < MAXIMUM_AIRSPEED) {
- float err = estimator_hspeed_mod - nav_ground_speed_setpoint;
+ float err = nav_ground_speed_setpoint - estimator_hspeed_mod;
v_ctl_auto_throttle_cruise_throttle += nav_ground_speed_pgain*err;
Bound(v_ctl_auto_throttle_cruise_throttle, V_CTL_AUTO_THROTTLE_MIN_CRUISE_THROTTLE, V_CTL_AUTO_THROTTLE_MAX_CRUISE_THROTTLE);
} else {
@@ -331,7 +331,7 @@ void fly_to_xy(float x, float y) {
NormRadAngle(diff);
BoundAbs(diff,M_PI/2.);
float s = sin(diff);
- h_ctl_roll_setpoint = atan(2 * estimator_hspeed_mod*estimator_hspeed_mod * s * (-h_ctl_course_pgain) / (CARROT * NOMINAL_AIRSPEED * 9.81) );
+ h_ctl_roll_setpoint = atan(2 * estimator_hspeed_mod*estimator_hspeed_mod * s * h_ctl_course_pgain / (CARROT * NOMINAL_AIRSPEED * 9.81) );
BoundAbs(h_ctl_roll_setpoint, h_ctl_roll_max_setpoint);
lateral_mode = LATERAL_MODE_ROLL;
}
@@ -424,7 +424,7 @@ void nav_init(void) {
nav_mode = NAV_MODE_COURSE;
#ifdef NAV_GROUND_SPEED_PGAIN
- nav_ground_speed_pgain = NAV_GROUND_SPEED_PGAIN;
+ nav_ground_speed_pgain = ABS(NAV_GROUND_SPEED_PGAIN);
nav_ground_speed_setpoint = NOMINAL_AIRSPEED;
#endif
}
diff --git a/sw/include/std.h b/sw/include/std.h
index a359db6361..3def069a3e 100644
--- a/sw/include/std.h
+++ b/sw/include/std.h
@@ -86,6 +86,8 @@ typedef uint8_t unit_t;
#define Min(x,y) (x < y ? x : y)
#define Max(x,y) (x > y ? x : y)
+#define ABS(val) ((val) < 0 ? -(val) : (val))
+
#define Bound(_x, _min, _max) { if (_x > _max) _x = _max; else if (_x < _min) _x = _min; }
#define BoundAbs(_x, _max) Bound(_x, -(_max), (_max))
#define Chop(_x, _min, _max) ( (_x) < (_min) ? (_min) : (_x) > (_max) ? (_max) : (_x) )