diff options
-rw-r--r-- | apps/multirotor_att_control/multirotor_att_control_main.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/apps/multirotor_att_control/multirotor_att_control_main.c b/apps/multirotor_att_control/multirotor_att_control_main.c index bfa5e1b1f..78ea63018 100644 --- a/apps/multirotor_att_control/multirotor_att_control_main.c +++ b/apps/multirotor_att_control/multirotor_att_control_main.c @@ -68,10 +68,13 @@ #include <systemlib/perf_counter.h> #include <systemlib/systemlib.h> +#include <systemlib/param/param.h> #include "multirotor_attitude_control.h" #include "multirotor_rate_control.h" +PARAM_DEFINE_FLOAT(MC_RCLOSS_THROT, 0.0f); + __EXPORT int multirotor_att_control_main(int argc, char *argv[]); static bool thread_should_exit; @@ -142,6 +145,9 @@ mc_thread_main(int argc, char *argv[]) bool flag_system_armed = false; bool man_yaw_zero_once = false; + param_t failsafe_throttle_handle = param_find("MC_RCLOSS_THROT"); + float failsafe_throttle = 0.0f; + while (!thread_should_exit) { /* wait for a sensor update, check for exit condition every 500 ms */ @@ -228,10 +234,11 @@ mc_thread_main(int argc, char *argv[]) att_sp.thrust = manual.throttle; if(state.rc_signal_lost) { + param_get(failsafe_throttle_handle, &failsafe_throttle); att_sp.roll_body = 0.0f; att_sp.pitch_body = 0.0f; att_sp.yaw_body = 0.0f; - att_sp.thrust = 0.4f; + att_sp.thrust = failsafe_throttle; } att_sp.timestamp = hrt_absolute_time(); |