From 0ba1bc0ce1c60eaf2945d6fa14ae2f7dc3ed7931 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Sun, 28 Feb 2021 22:07:08 -0500 Subject: [PATCH] MPC_POS_MODE remove old metadata and explicitly handle invalid configuration --- src/modules/flight_mode_manager/FlightModeManager.cpp | 6 ++++++ src/modules/mc_pos_control/mc_pos_control_params.c | 2 -- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/modules/flight_mode_manager/FlightModeManager.cpp b/src/modules/flight_mode_manager/FlightModeManager.cpp index 9481062d34..01f0669f4e 100644 --- a/src/modules/flight_mode_manager/FlightModeManager.cpp +++ b/src/modules/flight_mode_manager/FlightModeManager.cpp @@ -314,6 +314,12 @@ void FlightModeManager::start_flight_task() case 4: default: + if (_param_mpc_pos_mode.get() != 4) { + PX4_ERR("MPC_POS_MODE %d invalid, resetting", _param_mpc_pos_mode.get()); + _param_mpc_pos_mode.set(4); + _param_mpc_pos_mode.commit(); + } + error = switchTask(FlightTaskIndex::ManualAcceleration); break; } diff --git a/src/modules/mc_pos_control/mc_pos_control_params.c b/src/modules/mc_pos_control/mc_pos_control_params.c index f96da1be56..0ffa9abca3 100644 --- a/src/modules/mc_pos_control/mc_pos_control_params.c +++ b/src/modules/mc_pos_control/mc_pos_control_params.c @@ -708,13 +708,11 @@ PARAM_DEFINE_FLOAT(MPC_TKO_RAMP_T, 3.0f); * The supported sub-modes are: * 0 Simple position control where sticks map directly to velocity setpoints * without smoothing. Useful for velocity control tuning. - * 1 Smooth position control with maximum acceleration and jerk limits based on slew-rates. * 3 Smooth position control with maximum acceleration and jerk limits based on * jerk optimized trajectory generator (different algorithm than 1). * 4 Smooth position control where sticks map to acceleration and there's a virtual brake drag * * @value 0 Simple position control - * @value 1 Smooth position control * @value 3 Smooth position control (Jerk optimized) * @value 4 Acceleration based input * @group Multicopter Position Control