diff --git a/conf/airframes/tudelft/rotwing_7kg_common.xml b/conf/airframes/tudelft/rotwing_7kg_common.xml index ca932da4ef..62c4cd9170 100644 --- a/conf/airframes/tudelft/rotwing_7kg_common.xml +++ b/conf/airframes/tudelft/rotwing_7kg_common.xml @@ -2,7 +2,15 @@ -
+
+ + + + + +
+ +
diff --git a/conf/airframes/tudelft/rotwing_v3b.xml b/conf/airframes/tudelft/rotwing_v3b.xml index 9696b4b781..02f0b1557a 100644 --- a/conf/airframes/tudelft/rotwing_v3b.xml +++ b/conf/airframes/tudelft/rotwing_v3b.xml @@ -242,6 +242,9 @@
+ + + diff --git a/conf/airframes/tudelft/rotwing_v3d.xml b/conf/airframes/tudelft/rotwing_v3d.xml index 668e12fbf0..196c668502 100644 --- a/conf/airframes/tudelft/rotwing_v3d.xml +++ b/conf/airframes/tudelft/rotwing_v3d.xml @@ -236,6 +236,9 @@
+ + + diff --git a/conf/airframes/tudelft/rotwing_v3e.xml b/conf/airframes/tudelft/rotwing_v3e.xml index 149423441e..32baea627d 100644 --- a/conf/airframes/tudelft/rotwing_v3e.xml +++ b/conf/airframes/tudelft/rotwing_v3e.xml @@ -236,6 +236,9 @@
+ + + diff --git a/conf/airframes/tudelft/rotwing_v3f.xml b/conf/airframes/tudelft/rotwing_v3f.xml index 6bcdbdd279..f6338e89d4 100644 --- a/conf/airframes/tudelft/rotwing_v3f.xml +++ b/conf/airframes/tudelft/rotwing_v3f.xml @@ -234,6 +234,9 @@
+ + + diff --git a/conf/airframes/tudelft/rotwing_v3g.xml b/conf/airframes/tudelft/rotwing_v3g.xml index 42a6d064f2..7fc5d6a553 100644 --- a/conf/airframes/tudelft/rotwing_v3g.xml +++ b/conf/airframes/tudelft/rotwing_v3g.xml @@ -236,6 +236,9 @@
+ + + diff --git a/conf/airframes/tudelft/rotwing_v3h.xml b/conf/airframes/tudelft/rotwing_v3h.xml index e283da986f..6ce71f2861 100644 --- a/conf/airframes/tudelft/rotwing_v3h.xml +++ b/conf/airframes/tudelft/rotwing_v3h.xml @@ -236,6 +236,9 @@
+ + + diff --git a/sw/airborne/firmwares/rotorcraft/autopilot_static.c b/sw/airborne/firmwares/rotorcraft/autopilot_static.c index c031f8ee21..7591489597 100644 --- a/sw/airborne/firmwares/rotorcraft/autopilot_static.c +++ b/sw/airborne/firmwares/rotorcraft/autopilot_static.c @@ -162,7 +162,11 @@ void autopilot_static_periodic(void) switch (autopilot.mode) { case AP_MODE_FAILSAFE: #ifndef KILL_AS_FAILSAFE +#ifdef FAILSAFE_THROTTLE + thrust_sp = th_sp_from_thrust_i(FAILSAFE_THROTTLE, THRUST_AXIS_Z); +#else thrust_sp = guidance_v_run(autopilot_in_flight()); +#endif stab_sp = stabilization_get_failsafe_sp(); stabilization_run(autopilot_in_flight(), &stab_sp, &thrust_sp, stabilization.cmd); SetRotorcraftCommands(stabilization.cmd, autopilot.in_flight, autopilot.motors_on); diff --git a/sw/airborne/modules/rotwing_drone/rotwing_state.c b/sw/airborne/modules/rotwing_drone/rotwing_state.c index 63d509b030..1de115a433 100644 --- a/sw/airborne/modules/rotwing_drone/rotwing_state.c +++ b/sw/airborne/modules/rotwing_drone/rotwing_state.c @@ -188,7 +188,10 @@ void rotwing_state_periodic(void) /* Override modes if flying with RC */ rotwing_state.state = rotwing_state.nav_state; - if(guidance_h.mode == GUIDANCE_H_MODE_NONE) { + if (autopilot.mode == AP_MODE_FAILSAFE) { + rotwing_state.state = ROTWING_STATE_FORCE_HOVER; + } + else if (guidance_h.mode == GUIDANCE_H_MODE_NONE) { // Kill mode if(stabilization.mode == STABILIZATION_MODE_NONE) { rotwing_state.state = ROTWING_STATE_FORCE_HOVER;