Fix for new stabilization (#3274)

This commit is contained in:
Christophe De Wagter
2024-05-22 15:01:35 +02:00
committed by GitHub
parent 48048bdba2
commit 8a9e1411de
6 changed files with 14 additions and 12 deletions
@@ -64,7 +64,7 @@
<block name="Holding point">
<call_once fun="rotwing_request_configuration(ROTWING_CONFIGURATION_HOVER)"/>
<call_once fun="NavKillThrottle()"/>
<set var="stabilization_cmd[COMMAND_THRUST_X]" value="0"/>
<set var="stabilization.cmd[COMMAND_THRUST_X]" value="0"/>
<attitude pitch="0" roll="0" throttle="0" until="FALSE" vmode="throttle"/>
</block>
<block name="Start Engine" strip_button="Start Engines" strip_icon="on.png">
@@ -64,7 +64,7 @@
<block name="Holding point">
<call_once fun="rotwing_request_configuration(ROTWING_CONFIGURATION_HOVER)"/>
<call_once fun="NavKillThrottle()"/>
<set var="stabilization_cmd[COMMAND_THRUST_X]" value="0"/>
<set var="stabilization.cmd[COMMAND_THRUST_X]" value="0"/>
<attitude pitch="0" roll="0" throttle="0" until="FALSE" vmode="throttle"/>
</block>
<block name="Start Engine" strip_button="Start Engines" strip_icon="on.png">
@@ -64,7 +64,7 @@
<block name="Holding point">
<call_once fun="rotwing_request_configuration(ROTWING_CONFIGURATION_HOVER)"/>
<call_once fun="NavKillThrottle()"/>
<set var="stabilization_cmd[COMMAND_THRUST_X]" value="0"/>
<set var="stabilization.cmd[COMMAND_THRUST_X]" value="0"/>
<attitude pitch="0" roll="0" throttle="0" until="FALSE" vmode="throttle"/>
</block>
<block name="Start Engine" strip_button="Start Engines" strip_icon="on.png">
@@ -56,7 +56,7 @@
<block name="Holding point">
<call_once fun="rotwing_request_configuration(ROTWING_CONFIGURATION_HOVER)"/>
<call_once fun="NavKillThrottle()"/>
<set var="stabilization_cmd[COMMAND_THRUST_X]" value="0"/>
<set var="stabilization.cmd[COMMAND_THRUST_X]" value="0"/>
<attitude pitch="0" roll="0" throttle="0" until="FALSE" vmode="throttle"/>
</block>
<block name="Start Engine" strip_button="Start Engines" strip_icon="on.png">
@@ -200,7 +200,7 @@ float indi_Wu[INDI_NUM_ACT] = {[0 ... INDI_NUM_ACT - 1] = 1.0};
* Limit the maximum specific moment that can be compensated (units rad/s^2)
*/
#ifdef STABILIZATION_INDI_YAW_DISTURBANCE_LIMIT
float stablization_indi_yaw_dist_limit = STABILIZATION_INDI_YAW_DISTURBANCE_LIMIT
float stablization_indi_yaw_dist_limit = STABILIZATION_INDI_YAW_DISTURBANCE_LIMIT;
#else // Put a rediculously high limit
float stablization_indi_yaw_dist_limit = 99999.f;
#endif
@@ -195,10 +195,14 @@ void periodic_rotwing_state(void)
// Check and update desired state
if (guidance_h.mode == GUIDANCE_H_MODE_NAV) {
rotwing_switch_state();
} else if (guidance_h.mode == GUIDANCE_H_MODE_ATTITUDE) {
rotwing_state_set_hover_settings();
} else if (guidance_h.mode == GUIDANCE_H_MODE_FORWARD) {
rotwing_state_set_fw_settings();
} else if (guidance_h.mode == GUIDANCE_H_MODE_NONE) {
if (stabilization.mode == STABILIZATION_MODE_ATTITUDE) {
if (stabilization.att_submode == STABILIZATION_ATT_SUBMODE_FORWARD) {
rotwing_state_set_fw_settings();
} else {
rotwing_state_set_hover_settings();
}
}
}
// Run the wing skewer
@@ -206,9 +210,7 @@ void periodic_rotwing_state(void)
//TODO: incorparate motor active / disbaling depending on called flight state
// Switch on motors if flight mode is attitude
if (guidance_h.mode == GUIDANCE_H_MODE_ATTITUDE) {
bool_disable_hover_motors = false;
} else if (guidance_h.mode == GUIDANCE_H_MODE_FORWARD) {
if (guidance_h.mode == GUIDANCE_H_MODE_NONE) {
bool_disable_hover_motors = false;
}
}