diff --git a/conf/firmwares/rotorcraft.makefile b/conf/firmwares/rotorcraft.makefile
index bfdbf7d4d8..09d2914fe1 100644
--- a/conf/firmwares/rotorcraft.makefile
+++ b/conf/firmwares/rotorcraft.makefile
@@ -98,17 +98,6 @@ $(TARGET).srcs += state.c
include $(CFG_SHARED)/baro_board.makefile
-$(TARGET).srcs += $(SRC_FIRMWARE)/stabilization.c
-$(TARGET).srcs += $(SRC_FIRMWARE)/stabilization/stabilization_none.c
-
-$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_h.c
-$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_h_ref.c
-$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_v.c
-$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_v_ref.c
-$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_v_adapt.c
-$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_flip.c
-
-include $(CFG_ROTORCRAFT)/navigation.makefile
else
$(TARGET).CFLAGS += -DFBW=1
endif
diff --git a/conf/firmwares/subsystems/rotorcraft/guidance_hybrid.makefile b/conf/firmwares/subsystems/rotorcraft/guidance_hybrid.makefile
deleted file mode 100644
index 6aeb1c4b27..0000000000
--- a/conf/firmwares/subsystems/rotorcraft/guidance_hybrid.makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-$(TARGET).CFLAGS += -DHYBRID_NAVIGATION=TRUE
-$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_hybrid.c
diff --git a/conf/firmwares/subsystems/rotorcraft/guidance_indi.makefile b/conf/firmwares/subsystems/rotorcraft/guidance_indi.makefile
deleted file mode 100644
index c6a9504081..0000000000
--- a/conf/firmwares/subsystems/rotorcraft/guidance_indi.makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-$(TARGET).CFLAGS += -DGUIDANCE_INDI=TRUE
-$(TARGET).srcs += $(SRC_FIRMWARE)/guidance/guidance_indi.c
diff --git a/conf/firmwares/subsystems/rotorcraft/navigation.makefile b/conf/firmwares/subsystems/rotorcraft/navigation.makefile
deleted file mode 100644
index da81cc8730..0000000000
--- a/conf/firmwares/subsystems/rotorcraft/navigation.makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-# Hey Emacs, this is a -*- makefile -*-
-
-$(TARGET).CFLAGS += -DUSE_NAVIGATION
-$(TARGET).srcs += $(SRC_FIRMWARE)/navigation.c
-#$(TARGET).srcs += subsystems/navigation/common_nav.c
-$(TARGET).srcs += subsystems/navigation/waypoints.c
-$(TARGET).srcs += subsystems/navigation/common_flight_plan.c
diff --git a/conf/firmwares/subsystems/rotorcraft/stabilization_euler.makefile b/conf/firmwares/subsystems/rotorcraft/stabilization_euler.makefile
deleted file mode 100644
index ee591b2a52..0000000000
--- a/conf/firmwares/subsystems/rotorcraft/stabilization_euler.makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-$(error The stabilization euler subsystem has been renamed, please replace with in your airframe file.)
-
diff --git a/conf/firmwares/subsystems/rotorcraft/stabilization_float_euler.makefile b/conf/firmwares/subsystems/rotorcraft/stabilization_float_euler.makefile
deleted file mode 100644
index 5733e554e5..0000000000
--- a/conf/firmwares/subsystems/rotorcraft/stabilization_float_euler.makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_TYPE_FLOAT
-STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_euler_float.h\"
-STAB_ATT_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_attitude_ref_euler_float.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_euler_float.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
-
-ap.CFLAGS += $(STAB_ATT_CFLAGS)
-ap.srcs += $(STAB_ATT_SRCS)
-
-nps.CFLAGS += $(STAB_ATT_CFLAGS)
-nps.srcs += $(STAB_ATT_SRCS)
diff --git a/conf/firmwares/subsystems/rotorcraft/stabilization_float_quat.makefile b/conf/firmwares/subsystems/rotorcraft/stabilization_float_quat.makefile
deleted file mode 100644
index 4934f223ea..0000000000
--- a/conf/firmwares/subsystems/rotorcraft/stabilization_float_quat.makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_TYPE_FLOAT
-STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_quat_float.h\"
-STAB_ATT_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_attitude_ref_quat_float.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_float.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_transformations.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
-
-ap.CFLAGS += $(STAB_ATT_CFLAGS)
-ap.srcs += $(STAB_ATT_SRCS)
-
-nps.CFLAGS += $(STAB_ATT_CFLAGS)
-nps.srcs += $(STAB_ATT_SRCS)
diff --git a/conf/firmwares/subsystems/rotorcraft/stabilization_heli_indi.makefile b/conf/firmwares/subsystems/rotorcraft/stabilization_heli_indi.makefile
deleted file mode 100644
index 573e8e8dfe..0000000000
--- a/conf/firmwares/subsystems/rotorcraft/stabilization_heli_indi.makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_TYPE_INT
-STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_heli_indi.h\"
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_heli_indi.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_transformations.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
-ap.CFLAGS += $(STAB_ATT_CFLAGS)
-ap.srcs += $(STAB_ATT_SRCS)
-
-nps.CFLAGS += $(STAB_ATT_CFLAGS)
-nps.srcs += $(STAB_ATT_SRCS)
-
diff --git a/conf/firmwares/subsystems/rotorcraft/stabilization_indi.makefile b/conf/firmwares/subsystems/rotorcraft/stabilization_indi.makefile
deleted file mode 100644
index e9a1f68c63..0000000000
--- a/conf/firmwares/subsystems/rotorcraft/stabilization_indi.makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_TYPE_INT
-STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_quat_indi.h\"
-STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_INDI_FULL=true
-
-STAB_ATT_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_indi.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_indi.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_transformations.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
-
-ap.CFLAGS += $(STAB_ATT_CFLAGS)
-ap.srcs += $(STAB_ATT_SRCS)
-
-nps.CFLAGS += $(STAB_ATT_CFLAGS)
-nps.srcs += $(STAB_ATT_SRCS)
-
diff --git a/conf/firmwares/subsystems/rotorcraft/stabilization_indi_simple.makefile b/conf/firmwares/subsystems/rotorcraft/stabilization_indi_simple.makefile
deleted file mode 100644
index 96c6bcd773..0000000000
--- a/conf/firmwares/subsystems/rotorcraft/stabilization_indi_simple.makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_TYPE_INT
-STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_quat_indi.h\"
-STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_INDI_SIMPLE=true
-
-STAB_ATT_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_indi_simple.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_indi.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_transformations.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
-
-ap.CFLAGS += $(STAB_ATT_CFLAGS)
-ap.srcs += $(STAB_ATT_SRCS)
-
-nps.CFLAGS += $(STAB_ATT_CFLAGS)
-nps.srcs += $(STAB_ATT_SRCS)
-
diff --git a/conf/firmwares/subsystems/rotorcraft/stabilization_int_euler.makefile b/conf/firmwares/subsystems/rotorcraft/stabilization_int_euler.makefile
deleted file mode 100644
index cefbb41959..0000000000
--- a/conf/firmwares/subsystems/rotorcraft/stabilization_int_euler.makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_TYPE_INT
-STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_euler_int.h\"
-STAB_ATT_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_attitude_ref_euler_int.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_euler_int.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
-
-ap.CFLAGS += $(STAB_ATT_CFLAGS)
-ap.srcs += $(STAB_ATT_SRCS)
-
-nps.CFLAGS += $(STAB_ATT_CFLAGS)
-nps.srcs += $(STAB_ATT_SRCS)
diff --git a/conf/firmwares/subsystems/rotorcraft/stabilization_int_quat.makefile b/conf/firmwares/subsystems/rotorcraft/stabilization_int_quat.makefile
deleted file mode 100644
index 7b6f5a5ac7..0000000000
--- a/conf/firmwares/subsystems/rotorcraft/stabilization_int_quat.makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_TYPE_INT
-STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_quat_int.h\"
-STAB_ATT_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_attitude_ref_quat_int.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_int.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_quat_transformations.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
-
-ap.CFLAGS += $(STAB_ATT_CFLAGS)
-ap.srcs += $(STAB_ATT_SRCS)
-
-nps.CFLAGS += $(STAB_ATT_CFLAGS)
-nps.srcs += $(STAB_ATT_SRCS)
diff --git a/conf/firmwares/subsystems/rotorcraft/stabilization_passthrough.makefile b/conf/firmwares/subsystems/rotorcraft/stabilization_passthrough.makefile
deleted file mode 100644
index 8eb38047ac..0000000000
--- a/conf/firmwares/subsystems/rotorcraft/stabilization_passthrough.makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-STAB_ATT_CFLAGS = -DSTABILIZATION_ATTITUDE_NO_REF
-STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_INT
-STAB_ATT_CFLAGS += -DSTABILIZATION_ATTITUDE_TYPE_H=\"stabilization/stabilization_attitude_passthrough.h\"
-STAB_ATT_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_attitude_passthrough.c
-STAB_ATT_SRCS += $(SRC_FIRMWARE)/stabilization/stabilization_attitude_rc_setpoint.c
-ap.CFLAGS += $(STAB_ATT_CFLAGS)
-ap.srcs += $(STAB_ATT_SRCS)
-
-nps.CFLAGS += $(STAB_ATT_CFLAGS)
-nps.srcs += $(STAB_ATT_SRCS)
diff --git a/conf/firmwares/subsystems/rotorcraft/stabilization_quaternion.makefile b/conf/firmwares/subsystems/rotorcraft/stabilization_quaternion.makefile
deleted file mode 100644
index 344044bbe6..0000000000
--- a/conf/firmwares/subsystems/rotorcraft/stabilization_quaternion.makefile
+++ /dev/null
@@ -1 +0,0 @@
-$(error The stabilization quaternion subsystem has been changed, for normal rotorcrafts please use , for transitioning rotorcrafts (quadshot) use )
diff --git a/conf/firmwares/subsystems/rotorcraft/stabilization_rate.makefile b/conf/firmwares/subsystems/rotorcraft/stabilization_rate.makefile
deleted file mode 100644
index 62b0724d11..0000000000
--- a/conf/firmwares/subsystems/rotorcraft/stabilization_rate.makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-STAB_RATE_CFLAGS = -DUSE_STABILIZATION_RATE
-STAB_RATE_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_rate.c
-
-ap.CFLAGS += $(STAB_RATE_CFLAGS)
-ap.srcs += $(STAB_RATE_SRCS)
-
-nps.CFLAGS += $(STAB_RATE_CFLAGS)
-nps.srcs += $(STAB_RATE_SRCS)
diff --git a/conf/firmwares/subsystems/rotorcraft/stabilization_rate_indi.makefile b/conf/firmwares/subsystems/rotorcraft/stabilization_rate_indi.makefile
deleted file mode 100644
index b9e3b2fff6..0000000000
--- a/conf/firmwares/subsystems/rotorcraft/stabilization_rate_indi.makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-STAB_RATE_CFLAGS = -DUSE_STABILIZATION_RATE
-STAB_RATE_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_indi.c
-STAB_RATE_SRCS = $(SRC_FIRMWARE)/stabilization/stabilization_rate_indi.c
-STAB_RATE_CFLAGS += -DSTABILIZATION_RATE_INDI=true
-
-ap.CFLAGS += $(STAB_RATE_CFLAGS)
-ap.srcs += $(STAB_RATE_SRCS)
-
-nps.CFLAGS += $(STAB_RATE_CFLAGS)
-nps.srcs += $(STAB_RATE_SRCS)
diff --git a/conf/modules/guidance_hybrid.xml b/conf/modules/guidance_hybrid.xml
new file mode 100644
index 0000000000..69d5650788
--- /dev/null
+++ b/conf/modules/guidance_hybrid.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+ Guidance controller for hybrid vehicles
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/guidance_indi.xml b/conf/modules/guidance_indi.xml
new file mode 100644
index 0000000000..0c9f8dcfae
--- /dev/null
+++ b/conf/modules/guidance_indi.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Guidance controller for rotorcraft using INDI
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/guidance_rotorcraft.xml b/conf/modules/guidance_rotorcraft.xml
new file mode 100644
index 0000000000..9a74073c2b
--- /dev/null
+++ b/conf/modules/guidance_rotorcraft.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+ Base guidance code for rotorcraft
+ It provides:
+ - horizontal guidance with reference
+ - vertical guidance with reference and adaptive control
+ - flip mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/nav_basic_rotorcraft.xml b/conf/modules/nav_basic_rotorcraft.xml
new file mode 100644
index 0000000000..a67f8fb55a
--- /dev/null
+++ b/conf/modules/nav_basic_rotorcraft.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+ Standard navigation patterns and flight plan handling for rotorcraft
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/navigation.xml b/conf/modules/navigation.xml
index a45d63e413..5dab400b4b 100644
--- a/conf/modules/navigation.xml
+++ b/conf/modules/navigation.xml
@@ -3,7 +3,7 @@
- Meta module for loading proper navigation module
+ Meta module for loading proper navigation
diff --git a/conf/modules/stabilization_adaptive_fw.xml b/conf/modules/stabilization_adaptive_fw.xml
new file mode 100644
index 0000000000..a1060c2714
--- /dev/null
+++ b/conf/modules/stabilization_adaptive_fw.xml
@@ -0,0 +1,75 @@
+
+
+
+
+
+ Adaptive attitude and lateral (heading) control for fixedwing aircraft.
+ Mostly based on PID and optional reference generators and feedforward gains.
+ Adaptive parameters should not be used for normal operation at the moment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/stabilization_attitude_fw.xml b/conf/modules/stabilization_attitude_fw.xml
new file mode 100644
index 0000000000..aae769d03a
--- /dev/null
+++ b/conf/modules/stabilization_attitude_fw.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+ Legacy attitude and lateral (heading) control for fixedwing aircraft
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/stabilization_float_euler.xml b/conf/modules/stabilization_float_euler.xml
new file mode 100644
index 0000000000..9c0969ba78
--- /dev/null
+++ b/conf/modules/stabilization_float_euler.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+ Stabilization controller for rotorcraft using float euler implementation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/stabilization_float_quat.xml b/conf/modules/stabilization_float_quat.xml
new file mode 100644
index 0000000000..6dbbcc12b0
--- /dev/null
+++ b/conf/modules/stabilization_float_quat.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+ Stabilization controller for rotorcraft using float quaternion implementation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/stabilization_heli_indi.xml b/conf/modules/stabilization_heli_indi.xml
new file mode 100644
index 0000000000..e32358e888
--- /dev/null
+++ b/conf/modules/stabilization_heli_indi.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+ INDI stabilization controller for helicopters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/stabilization_indi.xml b/conf/modules/stabilization_indi.xml
new file mode 100644
index 0000000000..64a94ed46c
--- /dev/null
+++ b/conf/modules/stabilization_indi.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+ Full INDI stabilization controller for rotorcraft
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/stabilization_indi_simple.xml b/conf/modules/stabilization_indi_simple.xml
new file mode 100644
index 0000000000..2155fab405
--- /dev/null
+++ b/conf/modules/stabilization_indi_simple.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+ Simple INDI stabilization controller for rotorcraft
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/stabilization_int_euler.xml b/conf/modules/stabilization_int_euler.xml
new file mode 100644
index 0000000000..b84ee8b25c
--- /dev/null
+++ b/conf/modules/stabilization_int_euler.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+ Stabilization controller for rotorcraft using integer euler implementation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/stabilization_int_quat.xml b/conf/modules/stabilization_int_quat.xml
new file mode 100644
index 0000000000..5446beb3ca
--- /dev/null
+++ b/conf/modules/stabilization_int_quat.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+ Stabilization controller for rotorcraft using integer quaternion implementation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/stabilization_passthrough.xml b/conf/modules/stabilization_passthrough.xml
new file mode 100644
index 0000000000..8a9df93993
--- /dev/null
+++ b/conf/modules/stabilization_passthrough.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Passthrough controller for rotorcraft
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/stabilization_rate.xml b/conf/modules/stabilization_rate.xml
new file mode 100644
index 0000000000..536535bb61
--- /dev/null
+++ b/conf/modules/stabilization_rate.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+ Rate controller for rotorcraft
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/stabilization_rate_indi.xml b/conf/modules/stabilization_rate_indi.xml
new file mode 100644
index 0000000000..4c3dcfad61
--- /dev/null
+++ b/conf/modules/stabilization_rate_indi.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+ Rate INDI controller for rotorcraft
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/conf/modules/stabilization_rotorcraft.xml b/conf/modules/stabilization_rotorcraft.xml
new file mode 100644
index 0000000000..195838c373
--- /dev/null
+++ b/conf/modules/stabilization_rotorcraft.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+ Base stabilization code for rotorcraft
+ Also provide the direct mode 'stabilization_none'
+ As a durty hack, it also provides navigation and guidance: this should be done in the airframe at some point
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sw/airborne/firmwares/rotorcraft/autopilot.c b/sw/airborne/firmwares/rotorcraft/autopilot.c
index a026d6f240..711af7567e 100644
--- a/sw/airborne/firmwares/rotorcraft/autopilot.c
+++ b/sw/airborne/firmwares/rotorcraft/autopilot.c
@@ -30,6 +30,8 @@
#include
#include "firmwares/rotorcraft/autopilot.h"
+#include "generated/modules.h"
+
#include "mcu_periph/uart.h"
#include "mcu_periph/sys_time.h"
#include "subsystems/radio_control.h"
@@ -38,16 +40,6 @@
#include "subsystems/electrical.h"
#include "subsystems/settings.h"
#include "subsystems/datalink/telemetry.h"
-#include "firmwares/rotorcraft/navigation.h"
-#include "firmwares/rotorcraft/guidance.h"
-
-#include "firmwares/rotorcraft/stabilization.h"
-#include "firmwares/rotorcraft/stabilization/stabilization_none.h"
-#include "firmwares/rotorcraft/stabilization/stabilization_attitude.h"
-
-#if USE_STABILIZATION_RATE
-#include "firmwares/rotorcraft/stabilization/stabilization_rate.h"
-#endif
#include "generated/settings.h"
@@ -264,18 +256,6 @@ void autopilot_init(void)
gpio_clear(POWER_SWITCH_GPIO); // POWER OFF
#endif
- // init GNC stack
- // TODO this should be done in modules init
- nav_init();
- guidance_h_init();
- guidance_v_init();
- stabilization_init();
- stabilization_none_init();
-#if USE_STABILIZATION_RATE
- stabilization_rate_init();
-#endif
- stabilization_attitude_init();
-
// call implementation init
// it will set startup mode
#if USE_GENERATED_AUTOPILOT
diff --git a/sw/airborne/firmwares/rotorcraft/guidance/guidance_h.c b/sw/airborne/firmwares/rotorcraft/guidance/guidance_h.c
index e3742212c0..3ece59b399 100644
--- a/sw/airborne/firmwares/rotorcraft/guidance/guidance_h.c
+++ b/sw/airborne/firmwares/rotorcraft/guidance/guidance_h.c
@@ -197,13 +197,6 @@ void guidance_h_init(void)
register_periodic_telemetry(DefaultPeriodic, PPRZ_MSG_ID_ROTORCRAFT_TUNE_HOVER, send_tune_hover);
#endif
-#if GUIDANCE_INDI
- guidance_indi_enter();
-#endif
-
-#if HYBRID_NAVIGATION
- guidance_hybrid_init();
-#endif
}