From 22e700b6d7d2effdafb15456796feabac399d8aa Mon Sep 17 00:00:00 2001 From: Jacob Dahl Date: Tue, 17 Mar 2026 21:55:35 -0800 Subject: [PATCH] refactor(mc_pos_control): convert params.c to module.yaml Convert 10 parameter file(s) from legacy C format to YAML module configuration. --- src/modules/mc_pos_control/CMakeLists.txt | 11 ++ .../multicopter_altitude_mode_params.c | 117 ------------ .../multicopter_altitude_mode_params.yaml | 82 ++++++++ .../multicopter_autonomous_params.c | 178 ------------------ .../multicopter_autonomous_params.yaml | 132 +++++++++++++ .../multicopter_nudging_params.c | 69 ------- .../multicopter_nudging_params.yaml | 38 ++++ ...multicopter_position_control_gain_params.c | 137 -------------- ...ticopter_position_control_gain_params.yaml | 86 +++++++++ ...lticopter_position_control_limits_params.c | 152 --------------- ...copter_position_control_limits_params.yaml | 105 +++++++++++ .../multicopter_position_control_params.c | 121 ------------ .../multicopter_position_control_params.yaml | 78 ++++++++ .../multicopter_position_mode_params.c | 131 ------------- .../multicopter_position_mode_params.yaml | 92 +++++++++ .../multicopter_responsiveness_params.c | 80 -------- .../multicopter_responsiveness_params.yaml | 46 +++++ .../multicopter_stabilized_mode_params.c | 96 ---------- .../multicopter_stabilized_mode_params.yaml | 61 ++++++ .../multicopter_takeoff_land_params.c | 123 ------------ .../multicopter_takeoff_land_params.yaml | 80 ++++++++ 21 files changed, 811 insertions(+), 1204 deletions(-) delete mode 100644 src/modules/mc_pos_control/multicopter_altitude_mode_params.c create mode 100644 src/modules/mc_pos_control/multicopter_altitude_mode_params.yaml delete mode 100644 src/modules/mc_pos_control/multicopter_autonomous_params.c create mode 100644 src/modules/mc_pos_control/multicopter_autonomous_params.yaml delete mode 100644 src/modules/mc_pos_control/multicopter_nudging_params.c create mode 100644 src/modules/mc_pos_control/multicopter_nudging_params.yaml delete mode 100644 src/modules/mc_pos_control/multicopter_position_control_gain_params.c create mode 100644 src/modules/mc_pos_control/multicopter_position_control_gain_params.yaml delete mode 100644 src/modules/mc_pos_control/multicopter_position_control_limits_params.c create mode 100644 src/modules/mc_pos_control/multicopter_position_control_limits_params.yaml delete mode 100644 src/modules/mc_pos_control/multicopter_position_control_params.c create mode 100644 src/modules/mc_pos_control/multicopter_position_control_params.yaml delete mode 100644 src/modules/mc_pos_control/multicopter_position_mode_params.c create mode 100644 src/modules/mc_pos_control/multicopter_position_mode_params.yaml delete mode 100644 src/modules/mc_pos_control/multicopter_responsiveness_params.c create mode 100644 src/modules/mc_pos_control/multicopter_responsiveness_params.yaml delete mode 100644 src/modules/mc_pos_control/multicopter_stabilized_mode_params.c create mode 100644 src/modules/mc_pos_control/multicopter_stabilized_mode_params.yaml delete mode 100644 src/modules/mc_pos_control/multicopter_takeoff_land_params.c create mode 100644 src/modules/mc_pos_control/multicopter_takeoff_land_params.yaml diff --git a/src/modules/mc_pos_control/CMakeLists.txt b/src/modules/mc_pos_control/CMakeLists.txt index 0dea1c6147..46b119a885 100644 --- a/src/modules/mc_pos_control/CMakeLists.txt +++ b/src/modules/mc_pos_control/CMakeLists.txt @@ -42,6 +42,17 @@ px4_add_module( SRCS MulticopterPositionControl.cpp MulticopterPositionControl.hpp + MODULE_CONFIG + multicopter_altitude_mode_params.yaml + multicopter_autonomous_params.yaml + multicopter_nudging_params.yaml + multicopter_position_control_gain_params.yaml + multicopter_position_control_limits_params.yaml + multicopter_position_control_params.yaml + multicopter_position_mode_params.yaml + multicopter_responsiveness_params.yaml + multicopter_stabilized_mode_params.yaml + multicopter_takeoff_land_params.yaml DEPENDS GotoControl PositionControl diff --git a/src/modules/mc_pos_control/multicopter_altitude_mode_params.c b/src/modules/mc_pos_control/multicopter_altitude_mode_params.c deleted file mode 100644 index 4f617d0092..0000000000 --- a/src/modules/mc_pos_control/multicopter_altitude_mode_params.c +++ /dev/null @@ -1,117 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2023 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * Maximum upwards acceleration in climb rate controlled modes - * - * @unit m/s^2 - * @min 2 - * @max 15 - * @decimal 1 - * @increment 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_ACC_UP_MAX, 4.f); - -/** - * Maximum downwards acceleration in climb rate controlled modes - * - * @unit m/s^2 - * @min 2 - * @max 15 - * @decimal 1 - * @increment 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_ACC_DOWN_MAX, 3.f); - -/** - * Manual yaw rate input filter time constant - * - * Not used in Stabilized mode - * Setting this parameter to 0 disables the filter - * - * @unit s - * @min 0 - * @max 5 - * @decimal 2 - * @increment 0.01 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_MAN_Y_TAU, 0.08f); - -/** - * Altitude reference mode - * - * Control height - * 0: relative earth frame origin which may drift due to sensors - * 1: relative to ground (requires distance sensor) which changes with terrain variation. - * It will revert to relative earth frame if the distance to ground estimate becomes invalid. - * 2: relative to ground (requires distance sensor) when stationary - * and relative to earth frame when moving horizontally. - * The speed threshold is MPC_HOLD_MAX_XY - * - * @min 0 - * @max 2 - * @value 0 Altitude following - * @value 1 Terrain following - * @value 2 Terrain hold - * @group Multicopter Position Control - */ -PARAM_DEFINE_INT32(MPC_ALT_MODE, 2); - -/** - * Maximum horizontal velocity for which position hold is enabled (use 0 to disable check) - * - * Only used with MPC_POS_MODE Direct velocity or MPC_ALT_MODE 2 - * - * @unit m/s - * @min 0 - * @max 3 - * @decimal 2 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_HOLD_MAX_XY, 0.8f); - -/** - * Maximum vertical velocity for which position hold is enabled (use 0 to disable check) - * - * Only used with MPC_ALT_MODE 1 - * - * @unit m/s - * @min 0 - * @max 3 - * @decimal 2 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_HOLD_MAX_Z, 0.6f); diff --git a/src/modules/mc_pos_control/multicopter_altitude_mode_params.yaml b/src/modules/mc_pos_control/multicopter_altitude_mode_params.yaml new file mode 100644 index 0000000000..18030117bb --- /dev/null +++ b/src/modules/mc_pos_control/multicopter_altitude_mode_params.yaml @@ -0,0 +1,82 @@ +module_name: mc_pos_control +parameters: +- group: Multicopter Position Control + definitions: + MPC_ACC_UP_MAX: + description: + short: Maximum upwards acceleration in climb rate controlled modes + type: float + default: 4.0 + unit: m/s^2 + min: 2 + max: 15 + decimal: 1 + increment: 1 + MPC_ACC_DOWN_MAX: + description: + short: Maximum downwards acceleration in climb rate controlled modes + type: float + default: 3.0 + unit: m/s^2 + min: 2 + max: 15 + decimal: 1 + increment: 1 + MPC_MAN_Y_TAU: + description: + short: Manual yaw rate input filter time constant + long: |- + Not used in Stabilized mode + Setting this parameter to 0 disables the filter + type: float + default: 0.08 + unit: s + min: 0 + max: 5 + decimal: 2 + increment: 0.01 + MPC_ALT_MODE: + description: + short: Altitude reference mode + long: |- + Control height + 0: relative earth frame origin which may drift due to sensors + 1: relative to ground (requires distance sensor) which changes with terrain variation. + It will revert to relative earth frame if the distance to ground estimate becomes invalid. + 2: relative to ground (requires distance sensor) when stationary + and relative to earth frame when moving horizontally. + The speed threshold is MPC_HOLD_MAX_XY + type: enum + values: + 0: Altitude following + 1: Terrain following + 2: Terrain hold + default: 2 + min: 0 + max: 2 + MPC_HOLD_MAX_XY: + description: + short: Max horizontal velocity for position hold + long: |- + Maximum horizontal velocity for which position hold is enabled (use 0 to disable check) + + Only used with MPC_POS_MODE Direct velocity or MPC_ALT_MODE 2 + type: float + default: 0.8 + unit: m/s + min: 0 + max: 3 + decimal: 2 + MPC_HOLD_MAX_Z: + description: + short: Max vertical velocity for position hold + long: |- + Maximum vertical velocity for which position hold is enabled (use 0 to disable check) + + Only used with MPC_ALT_MODE 1 + type: float + default: 0.6 + unit: m/s + min: 0 + max: 3 + decimal: 2 diff --git a/src/modules/mc_pos_control/multicopter_autonomous_params.c b/src/modules/mc_pos_control/multicopter_autonomous_params.c deleted file mode 100644 index 4237c02a77..0000000000 --- a/src/modules/mc_pos_control/multicopter_autonomous_params.c +++ /dev/null @@ -1,178 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2023 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * Default horizontal velocity in autonomous modes - * - * e.g. in Missions, RTL, Goto if the waypoint does not specify differently - * - * @unit m/s - * @min 3 - * @max 20 - * @decimal 0 - * @increment 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_XY_CRUISE, 5.f); - -/** - * Ascent velocity in autonomous modes - * - * For manually controlled modes and offboard see MPC_Z_VEL_MAX_UP - * - * @unit m/s - * @min 0.5 - * @max 8 - * @decimal 1 - * @increment 0.5 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_Z_V_AUTO_UP, 3.f); - -/** - * Descent velocity in autonomous modes - * - * For manual modes and offboard, see MPC_Z_VEL_MAX_DN - * - * @unit m/s - * @min 0.5 - * @max 4 - * @decimal 1 - * @increment 0.5 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_Z_V_AUTO_DN, 1.5f); - -/** - * Acceleration for autonomous and for manual modes - * - * When piloting manually, this parameter is only used in MPC_POS_MODE Acceleration based. - * - * @unit m/s^2 - * @min 2 - * @max 15 - * @decimal 1 - * @increment 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_ACC_HOR, 3.f); - -/** - * Jerk limit in autonomous modes - * - * Limit the maximum jerk of the vehicle (how fast the acceleration can change). - * A lower value leads to smoother vehicle motions but also limited agility. - * - * @unit m/s^3 - * @min 1 - * @max 80 - * @decimal 1 - * @increment 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_JERK_AUTO, 4.f); - -/** - * Proportional gain for horizontal trajectory position error - * - * @min 0.1 - * @max 1 - * @decimal 1 - * @increment 0.1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_XY_TRAJ_P, 0.5f); - -/** - * Maximum horizontal error allowed by the trajectory generator - * - * The integration speed of the trajectory setpoint is linearly - * reduced with the horizontal position tracking error. When the - * error is above this parameter, the integration of the - * trajectory is stopped to wait for the drone. - * - * This value can be adjusted depending on the tracking - * capabilities of the vehicle. - * - * @min 0.1 - * @max 10 - * @decimal 1 - * @increment 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_XY_ERR_MAX, 2.f); - -/** - * Maximum yaw rate in autonomous modes - * - * Limits the rate of change of the yaw setpoint to avoid large - * control output and mixer saturation. - * - * @unit deg/s - * @min 5 - * @max 360 - * @decimal 0 - * @increment 5 - * @group Multicopter Attitude Control - */ -PARAM_DEFINE_FLOAT(MPC_YAWRAUTO_MAX, 60.f); - -/** - * Maximum yaw acceleration in autonomous modes - * - * Limits the acceleration of the yaw setpoint to avoid large - * control output and mixer saturation. - * - * @unit deg/s^2 - * @min 5 - * @max 360 - * @decimal 0 - * @increment 5 - * @group Multicopter Attitude Control - */ -PARAM_DEFINE_FLOAT(MPC_YAWRAUTO_ACC, 20.f); - -/** - * Heading behavior in autonomous modes - * - * @min 0 - * @max 4 - * @value 0 towards waypoint - * @value 1 towards home - * @value 2 away from home - * @value 3 along trajectory - * @value 4 towards waypoint (yaw first) - * @value 5 yaw fixed - * @group Mission - */ -PARAM_DEFINE_INT32(MPC_YAW_MODE, 0); diff --git a/src/modules/mc_pos_control/multicopter_autonomous_params.yaml b/src/modules/mc_pos_control/multicopter_autonomous_params.yaml new file mode 100644 index 0000000000..49ea2ab8a9 --- /dev/null +++ b/src/modules/mc_pos_control/multicopter_autonomous_params.yaml @@ -0,0 +1,132 @@ +module_name: mc_pos_control +parameters: +- group: Mission + definitions: + MPC_YAW_MODE: + description: + short: Heading behavior in autonomous modes + type: enum + values: + 0: towards waypoint + 1: towards home + 2: away from home + 3: along trajectory + 4: towards waypoint (yaw first) + 5: yaw fixed + default: 0 + min: 0 + max: 4 +- group: Multicopter Attitude Control + definitions: + MPC_YAWRAUTO_MAX: + description: + short: Maximum yaw rate in autonomous modes + long: |- + Limits the rate of change of the yaw setpoint to avoid large + control output and mixer saturation. + type: float + default: 60.0 + unit: deg/s + min: 5 + max: 360 + decimal: 0 + increment: 5 + MPC_YAWRAUTO_ACC: + description: + short: Maximum yaw acceleration in autonomous modes + long: |- + Limits the acceleration of the yaw setpoint to avoid large + control output and mixer saturation. + type: float + default: 20.0 + unit: deg/s^2 + min: 5 + max: 360 + decimal: 0 + increment: 5 +- group: Multicopter Position Control + definitions: + MPC_XY_CRUISE: + description: + short: Default horizontal velocity in autonomous modes + long: e.g. in Missions, RTL, Goto if the waypoint does not specify differently + type: float + default: 5.0 + unit: m/s + min: 3 + max: 20 + decimal: 0 + increment: 1 + MPC_Z_V_AUTO_UP: + description: + short: Ascent velocity in autonomous modes + long: For manually controlled modes and offboard see MPC_Z_VEL_MAX_UP + type: float + default: 3.0 + unit: m/s + min: 0.5 + max: 8 + decimal: 1 + increment: 0.5 + MPC_Z_V_AUTO_DN: + description: + short: Descent velocity in autonomous modes + long: For manual modes and offboard, see MPC_Z_VEL_MAX_DN + type: float + default: 1.5 + unit: m/s + min: 0.5 + max: 4 + decimal: 1 + increment: 0.5 + MPC_ACC_HOR: + description: + short: Acceleration for autonomous and for manual modes + long: When piloting manually, this parameter is only used in MPC_POS_MODE + Acceleration based. + type: float + default: 3.0 + unit: m/s^2 + min: 2 + max: 15 + decimal: 1 + increment: 1 + MPC_JERK_AUTO: + description: + short: Jerk limit in autonomous modes + long: |- + Limit the maximum jerk of the vehicle (how fast the acceleration can change). + A lower value leads to smoother vehicle motions but also limited agility. + type: float + default: 4.0 + unit: m/s^3 + min: 1 + max: 80 + decimal: 1 + increment: 1 + MPC_XY_TRAJ_P: + description: + short: Proportional gain for horizontal trajectory position error + type: float + default: 0.5 + min: 0.1 + max: 1 + decimal: 1 + increment: 0.1 + MPC_XY_ERR_MAX: + description: + short: Maximum horizontal error allowed by the trajectory generator + long: |- + The integration speed of the trajectory setpoint is linearly + reduced with the horizontal position tracking error. When the + error is above this parameter, the integration of the + trajectory is stopped to wait for the drone. + + This value can be adjusted depending on the tracking + capabilities of the vehicle. + type: float + default: 2.0 + min: 0.1 + max: 10 + decimal: 1 + increment: 1 diff --git a/src/modules/mc_pos_control/multicopter_nudging_params.c b/src/modules/mc_pos_control/multicopter_nudging_params.c deleted file mode 100644 index 89f8f9714f..0000000000 --- a/src/modules/mc_pos_control/multicopter_nudging_params.c +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2023 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * Enable nudging based on user input during autonomous land routine - * - * Using stick input the vehicle can be moved horizontally and yawed. - * The descend speed is amended: - * stick full up - 0 - * stick centered - MPC_LAND_SPEED - * stick full down - 2 * MPC_LAND_SPEED - * - * Manual override during auto modes has to be disabled to use this feature (see COM_RC_OVERRIDE). - * - * @min 0 - * @max 1 - * @value 0 Nudging disabled - * @value 1 Nudging enabled - * @group Multicopter Position Control - */ -PARAM_DEFINE_INT32(MPC_LAND_RC_HELP, 0); - -/** - * User assisted landing radius - * - * When nudging is enabled (see MPC_LAND_RC_HELP), this defines the maximum - * allowed horizontal displacement from the original landing point. - * - If inside of the radius, only allow nudging inputs that do not move the vehicle outside of it. - * - If outside of the radius, only allow nudging inputs that move the vehicle back towards it. - * - * Set it to -1 for infinite radius. - * - * @unit m - * @min -1 - * @decimal 0 - * @increment 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_LAND_RADIUS, -1.0f); diff --git a/src/modules/mc_pos_control/multicopter_nudging_params.yaml b/src/modules/mc_pos_control/multicopter_nudging_params.yaml new file mode 100644 index 0000000000..bf14c9241f --- /dev/null +++ b/src/modules/mc_pos_control/multicopter_nudging_params.yaml @@ -0,0 +1,38 @@ +module_name: mc_pos_control +parameters: +- group: Multicopter Position Control + definitions: + MPC_LAND_RC_HELP: + description: + short: Enable nudging based on user input during autonomous land routine + long: |- + Using stick input the vehicle can be moved horizontally and yawed. + The descend speed is amended: + stick full up - 0 + stick centered - MPC_LAND_SPEED + stick full down - 2 * MPC_LAND_SPEED + + Manual override during auto modes has to be disabled to use this feature (see COM_RC_OVERRIDE). + type: enum + values: + 0: Nudging disabled + 1: Nudging enabled + default: 0 + min: 0 + max: 1 + MPC_LAND_RADIUS: + description: + short: User assisted landing radius + long: |- + When nudging is enabled (see MPC_LAND_RC_HELP), this defines the maximum + allowed horizontal displacement from the original landing point. + - If inside of the radius, only allow nudging inputs that do not move the vehicle outside of it. + - If outside of the radius, only allow nudging inputs that move the vehicle back towards it. + + Set it to -1 for infinite radius. + type: float + default: -1.0 + unit: m + min: -1 + decimal: 0 + increment: 1 diff --git a/src/modules/mc_pos_control/multicopter_position_control_gain_params.c b/src/modules/mc_pos_control/multicopter_position_control_gain_params.c deleted file mode 100644 index df36d1f733..0000000000 --- a/src/modules/mc_pos_control/multicopter_position_control_gain_params.c +++ /dev/null @@ -1,137 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2023 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * Proportional gain for vertical position error - * - * Defined as corrective velocity in m/s per m position error - * - * @min 0.1 - * @max 1.5 - * @decimal 2 - * @increment 0.1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_Z_P, 1.f); - -/** - * Proportional gain for horizontal position error - * - * Defined as corrective velocity in m/s per m position error - * - * @min 0 - * @max 2 - * @decimal 2 - * @increment 0.1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_XY_P, 0.95f); - -/** - * Proportional gain for vertical velocity error - * - * Defined as corrective acceleration in m/s^2 per m/s velocity error - * - * @min 2 - * @max 15 - * @decimal 2 - * @increment 0.1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_Z_VEL_P_ACC, 4.f); - -/** - * Proportional gain for horizontal velocity error - * - * Defined as corrective acceleration in m/s^2 per m/s velocity error - * - * @min 1.2 - * @max 5 - * @decimal 2 - * @increment 0.1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_XY_VEL_P_ACC, 1.8f); - -/** - * Integral gain for vertical velocity error - * - * Defined as corrective acceleration in m/s^2 per m velocity integral - * - * @min 0.2 - * @max 3 - * @decimal 2 - * @increment 0.1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_Z_VEL_I_ACC, 2.f); - -/** - * Integral gain for horizontal velocity error - * - * Defined as correction acceleration in m/s^2 per m velocity integral - * Allows to eliminate steady state errors in disturbances like wind. - * - * @min 0 - * @max 60 - * @decimal 2 - * @increment 0.02 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_XY_VEL_I_ACC, 0.4f); - -/** - * Differential gain for vertical velocity error - * - * Defined as corrective acceleration in m/s^2 per m/s^2 velocity derivative - * - * @min 0 - * @max 2 - * @decimal 2 - * @increment 0.02 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_Z_VEL_D_ACC, 0.f); - -/** - * Differential gain for horizontal velocity error - * - * Defined as corrective acceleration in m/s^2 per m/s^2 velocity derivative - * - * @min 0.1 - * @max 2 - * @decimal 2 - * @increment 0.02 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_XY_VEL_D_ACC, 0.2f); diff --git a/src/modules/mc_pos_control/multicopter_position_control_gain_params.yaml b/src/modules/mc_pos_control/multicopter_position_control_gain_params.yaml new file mode 100644 index 0000000000..ec757671ed --- /dev/null +++ b/src/modules/mc_pos_control/multicopter_position_control_gain_params.yaml @@ -0,0 +1,86 @@ +module_name: mc_pos_control +parameters: +- group: Multicopter Position Control + definitions: + MPC_Z_P: + description: + short: Proportional gain for vertical position error + long: Defined as corrective velocity in m/s per m position error + type: float + default: 1.0 + min: 0.1 + max: 1.5 + decimal: 2 + increment: 0.1 + MPC_XY_P: + description: + short: Proportional gain for horizontal position error + long: Defined as corrective velocity in m/s per m position error + type: float + default: 0.95 + min: 0 + max: 2 + decimal: 2 + increment: 0.1 + MPC_Z_VEL_P_ACC: + description: + short: Proportional gain for vertical velocity error + long: Defined as corrective acceleration in m/s^2 per m/s velocity error + type: float + default: 4.0 + min: 2 + max: 15 + decimal: 2 + increment: 0.1 + MPC_XY_VEL_P_ACC: + description: + short: Proportional gain for horizontal velocity error + long: Defined as corrective acceleration in m/s^2 per m/s velocity error + type: float + default: 1.8 + min: 1.2 + max: 5 + decimal: 2 + increment: 0.1 + MPC_Z_VEL_I_ACC: + description: + short: Integral gain for vertical velocity error + long: Defined as corrective acceleration in m/s^2 per m velocity integral + type: float + default: 2.0 + min: 0.2 + max: 3 + decimal: 2 + increment: 0.1 + MPC_XY_VEL_I_ACC: + description: + short: Integral gain for horizontal velocity error + long: |- + Defined as correction acceleration in m/s^2 per m velocity integral + Allows to eliminate steady state errors in disturbances like wind. + type: float + default: 0.4 + min: 0 + max: 60 + decimal: 2 + increment: 0.02 + MPC_Z_VEL_D_ACC: + description: + short: Differential gain for vertical velocity error + long: Defined as corrective acceleration in m/s^2 per m/s^2 velocity derivative + type: float + default: 0.0 + min: 0 + max: 2 + decimal: 2 + increment: 0.02 + MPC_XY_VEL_D_ACC: + description: + short: Differential gain for horizontal velocity error + long: Defined as corrective acceleration in m/s^2 per m/s^2 velocity derivative + type: float + default: 0.2 + min: 0.1 + max: 2 + decimal: 2 + increment: 0.02 diff --git a/src/modules/mc_pos_control/multicopter_position_control_limits_params.c b/src/modules/mc_pos_control/multicopter_position_control_limits_params.c deleted file mode 100644 index 8307b82d72..0000000000 --- a/src/modules/mc_pos_control/multicopter_position_control_limits_params.c +++ /dev/null @@ -1,152 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2023 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * Maximum horizontal velocity - * - * Absolute maximum for all velocity controlled modes. - * Any higher value is truncated. - * - * @unit m/s - * @min 0 - * @max 20 - * @decimal 1 - * @increment 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_XY_VEL_MAX, 12.f); - -/** - * Maximum ascent velocity - * - * Absolute maximum for all climb rate controlled modes. - * In manually piloted modes full stick deflection commands this velocity. - * - * For default autonomous velocity see MPC_Z_V_AUTO_UP - * - * @unit m/s - * @min 0.5 - * @max 8 - * @increment 0.1 - * @decimal 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_Z_VEL_MAX_UP, 3.f); - -/** - * Maximum descent velocity - * - * Absolute maximum for all climb rate controlled modes. - * In manually piloted modes full stick deflection commands this velocity. - * - * For default autonomous velocity see MPC_Z_V_AUTO_UP - * - * @unit m/s - * @min 0.5 - * @max 4 - * @increment 0.1 - * @decimal 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_Z_VEL_MAX_DN, 1.5f); - -/** - * Maximum tilt angle in air - * - * Absolute maximum for all velocity or acceleration controlled modes. - * Any higher value is truncated. - * - * @unit deg - * @min 20 - * @max 89 - * @decimal 0 - * @increment 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_TILTMAX_AIR, 45.f); - -/** - * Maximum tilt during inital takeoff ramp - * - * Tighter tilt limit during takeoff to avoid tip over. - * - * @unit deg - * @min 5 - * @max 89 - * @decimal 0 - * @increment 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_TILTMAX_LND, 12.f); - -/** - * Minimum collective thrust in climb rate controlled modes - * - * Too low thrust leads to loss of roll/pitch/yaw torque control authority. - * With airmode enabled this parameters can be set to 0 - * while still keeping torque authority (see MC_AIRMODE). - * - * @unit norm - * @min 0.05 - * @max 0.5 - * @decimal 2 - * @increment 0.01 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_THR_MIN, 0.12f); - -/** - * Maximum collective thrust in climb rate controlled modes - * - * Limit allowed thrust e.g. for indoor test of overpowered vehicle. - * - * @unit norm - * @min 0 - * @max 1 - * @decimal 2 - * @increment 0.05 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_THR_MAX, 1.f); - -/** - * Acceleration to tilt coupling - * - * Set to decouple tilt from vertical acceleration. - * This provides smoother flight but slightly worse tracking in position and auto modes. - * Unset if accurate position tracking during dynamic maneuvers is more important than a smooth flight. - * - * @boolean - * @group Multicopter Position Control - */ -PARAM_DEFINE_INT32(MPC_ACC_DECOUPLE, 1); diff --git a/src/modules/mc_pos_control/multicopter_position_control_limits_params.yaml b/src/modules/mc_pos_control/multicopter_position_control_limits_params.yaml new file mode 100644 index 0000000000..e3adece62e --- /dev/null +++ b/src/modules/mc_pos_control/multicopter_position_control_limits_params.yaml @@ -0,0 +1,105 @@ +module_name: mc_pos_control +parameters: +- group: Multicopter Position Control + definitions: + MPC_XY_VEL_MAX: + description: + short: Maximum horizontal velocity + long: |- + Absolute maximum for all velocity controlled modes. + Any higher value is truncated. + type: float + default: 12.0 + unit: m/s + min: 0 + max: 20 + decimal: 1 + increment: 1 + MPC_Z_VEL_MAX_UP: + description: + short: Maximum ascent velocity + long: |- + Absolute maximum for all climb rate controlled modes. + In manually piloted modes full stick deflection commands this velocity. + + For default autonomous velocity see MPC_Z_V_AUTO_UP + type: float + default: 3.0 + unit: m/s + min: 0.5 + max: 8 + increment: 0.1 + decimal: 1 + MPC_Z_VEL_MAX_DN: + description: + short: Maximum descent velocity + long: |- + Absolute maximum for all climb rate controlled modes. + In manually piloted modes full stick deflection commands this velocity. + + For default autonomous velocity see MPC_Z_V_AUTO_UP + type: float + default: 1.5 + unit: m/s + min: 0.5 + max: 4 + increment: 0.1 + decimal: 1 + MPC_TILTMAX_AIR: + description: + short: Maximum tilt angle in air + long: |- + Absolute maximum for all velocity or acceleration controlled modes. + Any higher value is truncated. + type: float + default: 45.0 + unit: deg + min: 20 + max: 89 + decimal: 0 + increment: 1 + MPC_TILTMAX_LND: + description: + short: Maximum tilt during inital takeoff ramp + long: Tighter tilt limit during takeoff to avoid tip over. + type: float + default: 12.0 + unit: deg + min: 5 + max: 89 + decimal: 0 + increment: 1 + MPC_THR_MIN: + description: + short: Minimum collective thrust in climb rate controlled modes + long: |- + Too low thrust leads to loss of roll/pitch/yaw torque control authority. + With airmode enabled this parameters can be set to 0 + while still keeping torque authority (see MC_AIRMODE). + type: float + default: 0.12 + unit: norm + min: 0.05 + max: 0.5 + decimal: 2 + increment: 0.01 + MPC_THR_MAX: + description: + short: Maximum collective thrust in climb rate controlled modes + long: Limit allowed thrust e.g. for indoor test of overpowered vehicle. + type: float + default: 1.0 + unit: norm + min: 0 + max: 1 + decimal: 2 + increment: 0.05 + MPC_ACC_DECOUPLE: + description: + short: Acceleration to tilt coupling + long: |- + Set to decouple tilt from vertical acceleration. + This provides smoother flight but slightly worse tracking in position and auto modes. + Unset if accurate position tracking during dynamic maneuvers is more important than a smooth flight. + type: boolean + default: 1 diff --git a/src/modules/mc_pos_control/multicopter_position_control_params.c b/src/modules/mc_pos_control/multicopter_position_control_params.c deleted file mode 100644 index 2639898c03..0000000000 --- a/src/modules/mc_pos_control/multicopter_position_control_params.c +++ /dev/null @@ -1,121 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2023 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * Vertical thrust required to hover - * - * Mapped to center throttle stick in Stabilized mode (see MPC_THR_CURVE). - * Used for initialization of the hover thrust estimator. - * The estimated hover thrust is used as base for zero vertical acceleration in altitude control. - * The hover thrust is important for land detection to work correctly. - * - * @unit norm - * @min 0.1 - * @max 0.8 - * @decimal 2 - * @increment 0.01 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_THR_HOVER, 0.5f); - -/** - * Horizontal thrust margin - * - * Margin that is kept for horizontal control when higher priority vertical thrust is saturated. - * To avoid completely starving horizontal control with high vertical error. - * - * @unit norm - * @min 0 - * @max 0.5 - * @decimal 2 - * @increment 0.01 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_THR_XY_MARG, 0.3f); - -/** - * Velocity low pass cutoff frequency - * - * A value of 0 disables the filter. - * - * @unit Hz - * @min 0 - * @max 50 - * @decimal 1 - * @increment 0.5 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_VEL_LP, 0.0f); - -/** - * Velocity notch filter frequency - * - * The center frequency for the 2nd order notch filter on the velocity. - * A value of 0 disables the filter. - * - * @unit Hz - * @min 0 - * @max 50 - * @decimal 1 - * @increment 0.5 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_VEL_NF_FRQ, 0.0f); - -/** - * Velocity notch filter bandwidth - * - * A value of 0 disables the filter. - * - * @unit Hz - * @min 0 - * @max 50 - * @decimal 1 - * @increment 0.5 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_VEL_NF_BW, 5.0f); - -/** - * Velocity derivative low pass cutoff frequency - * - * A value of 0 disables the filter. - * - * @unit Hz - * @min 0 - * @max 50 - * @decimal 1 - * @increment 0.5 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_VELD_LP, 5.0f); diff --git a/src/modules/mc_pos_control/multicopter_position_control_params.yaml b/src/modules/mc_pos_control/multicopter_position_control_params.yaml new file mode 100644 index 0000000000..86bc9d8288 --- /dev/null +++ b/src/modules/mc_pos_control/multicopter_position_control_params.yaml @@ -0,0 +1,78 @@ +module_name: mc_pos_control +parameters: +- group: Multicopter Position Control + definitions: + MPC_THR_HOVER: + description: + short: Vertical thrust required to hover + long: |- + Mapped to center throttle stick in Stabilized mode (see MPC_THR_CURVE). + Used for initialization of the hover thrust estimator. + The estimated hover thrust is used as base for zero vertical acceleration in altitude control. + The hover thrust is important for land detection to work correctly. + type: float + default: 0.5 + unit: norm + min: 0.1 + max: 0.8 + decimal: 2 + increment: 0.01 + MPC_THR_XY_MARG: + description: + short: Horizontal thrust margin + long: |- + Margin that is kept for horizontal control when higher priority vertical thrust is saturated. + To avoid completely starving horizontal control with high vertical error. + type: float + default: 0.3 + unit: norm + min: 0 + max: 0.5 + decimal: 2 + increment: 0.01 + MPC_VEL_LP: + description: + short: Velocity low pass cutoff frequency + long: A value of 0 disables the filter. + type: float + default: 0.0 + unit: Hz + min: 0 + max: 50 + decimal: 1 + increment: 0.5 + MPC_VEL_NF_FRQ: + description: + short: Velocity notch filter frequency + long: |- + The center frequency for the 2nd order notch filter on the velocity. + A value of 0 disables the filter. + type: float + default: 0.0 + unit: Hz + min: 0 + max: 50 + decimal: 1 + increment: 0.5 + MPC_VEL_NF_BW: + description: + short: Velocity notch filter bandwidth + long: A value of 0 disables the filter. + type: float + default: 5.0 + unit: Hz + min: 0 + max: 50 + decimal: 1 + increment: 0.5 + MPC_VELD_LP: + description: + short: Velocity derivative low pass cutoff frequency + long: A value of 0 disables the filter. + type: float + default: 5.0 + unit: Hz + min: 0 + max: 50 + decimal: 1 + increment: 0.5 diff --git a/src/modules/mc_pos_control/multicopter_position_mode_params.c b/src/modules/mc_pos_control/multicopter_position_mode_params.c deleted file mode 100644 index 97c905f819..0000000000 --- a/src/modules/mc_pos_control/multicopter_position_mode_params.c +++ /dev/null @@ -1,131 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2023 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * Position/Altitude mode variant - * - * The supported sub-modes are: - * Direct velocity: - * Sticks directly map to velocity setpoints without smoothing. - * Also applies to vertical direction and Altitude mode. - * Useful for velocity control tuning. - * Acceleration based: - * Sticks map to acceleration and there's a virtual brake drag - * - * @value 0 Direct velocity - * @value 4 Acceleration based - * @group Multicopter Position Control - */ -PARAM_DEFINE_INT32(MPC_POS_MODE, 4); - -/** - * Maximum horizontal velocity setpoint in Position mode - * - * Must be smaller than MPC_XY_VEL_MAX. - * - * The maximum sideways and backward speed can be set differently - * using MPC_VEL_MAN_SIDE and MPC_VEL_MAN_BACK, respectively. - * - * @unit m/s - * @min 3 - * @max 20 - * @increment 1 - * @decimal 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_VEL_MANUAL, 10.f); - -/** - * Maximum sideways velocity in Position mode - * - * If set to a negative value or larger than - * MPC_VEL_MANUAL then MPC_VEL_MANUAL is used. - * - * @unit m/s - * @min -1 - * @max 20 - * @increment 1 - * @decimal 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_VEL_MAN_SIDE, -1.f); - -/** - * Maximum backward velocity in Position mode - * - * If set to a negative value or larger than - * MPC_VEL_MANUAL then MPC_VEL_MANUAL is used. - * - * @unit m/s - * @min -1 - * @max 20 - * @increment 1 - * @decimal 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_VEL_MAN_BACK, -1.f); - -/** - * Maximum horizontal acceleration - * - * MPC_POS_MODE - * 1 just deceleration - * 4 not used, use MPC_ACC_HOR instead - * - * @unit m/s^2 - * @min 2 - * @max 15 - * @increment 1 - * @decimal 2 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_ACC_HOR_MAX, 5.f); - -/** - * Maximum horizontal and vertical jerk in Position/Altitude mode - * - * Limit the maximum jerk (acceleration change) of the vehicle. - * A lower value leads to smoother motions but limits agility. - * - * Setting this to the maximum value essentially disables the limit. - * - * Only used with MPC_POS_MODE Acceleration based. - * - * @unit m/s^3 - * @min 0.5 - * @max 500 - * @decimal 0 - * @increment 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_JERK_MAX, 8.f); diff --git a/src/modules/mc_pos_control/multicopter_position_mode_params.yaml b/src/modules/mc_pos_control/multicopter_position_mode_params.yaml new file mode 100644 index 0000000000..0cc21463af --- /dev/null +++ b/src/modules/mc_pos_control/multicopter_position_mode_params.yaml @@ -0,0 +1,92 @@ +module_name: mc_pos_control +parameters: +- group: Multicopter Position Control + definitions: + MPC_POS_MODE: + description: + short: Position/Altitude mode variant + long: |- + The supported sub-modes are: + Direct velocity: + Sticks directly map to velocity setpoints without smoothing. + Also applies to vertical direction and Altitude mode. + Useful for velocity control tuning. + Acceleration based: + Sticks map to acceleration and there's a virtual brake drag + type: enum + values: + 0: Direct velocity + 4: Acceleration based + default: 4 + MPC_VEL_MANUAL: + description: + short: Maximum horizontal velocity setpoint in Position mode + long: |- + Must be smaller than MPC_XY_VEL_MAX. + + The maximum sideways and backward speed can be set differently + using MPC_VEL_MAN_SIDE and MPC_VEL_MAN_BACK, respectively. + type: float + default: 10.0 + unit: m/s + min: 3 + max: 20 + increment: 1 + decimal: 1 + MPC_VEL_MAN_SIDE: + description: + short: Maximum sideways velocity in Position mode + long: |- + If set to a negative value or larger than + MPC_VEL_MANUAL then MPC_VEL_MANUAL is used. + type: float + default: -1.0 + unit: m/s + min: -1 + max: 20 + increment: 1 + decimal: 1 + MPC_VEL_MAN_BACK: + description: + short: Maximum backward velocity in Position mode + long: |- + If set to a negative value or larger than + MPC_VEL_MANUAL then MPC_VEL_MANUAL is used. + type: float + default: -1.0 + unit: m/s + min: -1 + max: 20 + increment: 1 + decimal: 1 + MPC_ACC_HOR_MAX: + description: + short: Maximum horizontal acceleration + long: |- + MPC_POS_MODE + 1 just deceleration + 4 not used, use MPC_ACC_HOR instead + type: float + default: 5.0 + unit: m/s^2 + min: 2 + max: 15 + increment: 1 + decimal: 2 + MPC_JERK_MAX: + description: + short: Maximum horizontal and vertical jerk in Position/Altitude mode + long: |- + Limit the maximum jerk (acceleration change) of the vehicle. + A lower value leads to smoother motions but limits agility. + + Setting this to the maximum value essentially disables the limit. + + Only used with MPC_POS_MODE Acceleration based. + type: float + default: 8.0 + unit: m/s^3 + min: 0.5 + max: 500 + decimal: 0 + increment: 1 diff --git a/src/modules/mc_pos_control/multicopter_responsiveness_params.c b/src/modules/mc_pos_control/multicopter_responsiveness_params.c deleted file mode 100644 index e0097f6ca0..0000000000 --- a/src/modules/mc_pos_control/multicopter_responsiveness_params.c +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2023 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * Responsiveness - * - * Changes the overall responsiveness of the vehicle. - * The higher the value, the faster the vehicle will react. - * - * If set to a value greater than zero, other parameters are automatically set (such as - * the acceleration or jerk limits). - * If set to a negative value, the existing individual parameters are used. - * - * @min -1 - * @max 1 - * @decimal 2 - * @increment 0.05 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(SYS_VEHICLE_RESP, -0.4f); - -/** - * Overall Horizontal Velocity Limit - * - * If set to a value greater than zero, other parameters are automatically set (such as - * MPC_XY_VEL_MAX or MPC_VEL_MANUAL). - * If set to a negative value, the existing individual parameters are used. - * - * @min -20 - * @max 20 - * @decimal 1 - * @increment 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_XY_VEL_ALL, -10.f); - -/** - * Overall Vertical Velocity Limit - * - * If set to a value greater than zero, other parameters are automatically set (such as - * MPC_Z_VEL_MAX_UP or MPC_LAND_SPEED). - * If set to a negative value, the existing individual parameters are used. - * - * @min -3 - * @max 8 - * @decimal 1 - * @increment 0.5 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_Z_VEL_ALL, -3.f); diff --git a/src/modules/mc_pos_control/multicopter_responsiveness_params.yaml b/src/modules/mc_pos_control/multicopter_responsiveness_params.yaml new file mode 100644 index 0000000000..715108cdd7 --- /dev/null +++ b/src/modules/mc_pos_control/multicopter_responsiveness_params.yaml @@ -0,0 +1,46 @@ +module_name: mc_pos_control +parameters: +- group: Multicopter Position Control + definitions: + SYS_VEHICLE_RESP: + description: + short: Responsiveness + long: |- + Changes the overall responsiveness of the vehicle. + The higher the value, the faster the vehicle will react. + + If set to a value greater than zero, other parameters are automatically set (such as + the acceleration or jerk limits). + If set to a negative value, the existing individual parameters are used. + type: float + default: -0.4 + min: -1 + max: 1 + decimal: 2 + increment: 0.05 + MPC_XY_VEL_ALL: + description: + short: Overall Horizontal Velocity Limit + long: |- + If set to a value greater than zero, other parameters are automatically set (such as + MPC_XY_VEL_MAX or MPC_VEL_MANUAL). + If set to a negative value, the existing individual parameters are used. + type: float + default: -10.0 + min: -20 + max: 20 + decimal: 1 + increment: 1 + MPC_Z_VEL_ALL: + description: + short: Overall Vertical Velocity Limit + long: |- + If set to a value greater than zero, other parameters are automatically set (such as + MPC_Z_VEL_MAX_UP or MPC_LAND_SPEED). + If set to a negative value, the existing individual parameters are used. + type: float + default: -3.0 + min: -3 + max: 8 + decimal: 1 + increment: 0.5 diff --git a/src/modules/mc_pos_control/multicopter_stabilized_mode_params.c b/src/modules/mc_pos_control/multicopter_stabilized_mode_params.c deleted file mode 100644 index c804a034bb..0000000000 --- a/src/modules/mc_pos_control/multicopter_stabilized_mode_params.c +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2023 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * Maximal tilt angle in Stabilized, Altitude and Altitude Cruise mode - * - * @unit deg - * @min 1 - * @max 70 - * @decimal 0 - * @increment 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_MAN_TILT_MAX, 35.f); - -/** - * Max manual yaw rate for Stabilized, Altitude, Position mode - * - * @unit deg/s - * @min 0 - * @max 400 - * @decimal 0 - * @increment 10 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_MAN_Y_MAX, 150.f); - -/** - * Minimum collective thrust in Stabilized mode - * - * The value is mapped to the lowest throttle stick position in Stabilized mode. - * - * Too low collective thrust leads to loss of roll/pitch/yaw torque control authority. - * Airmode is used to keep torque authority with zero thrust (see MC_AIRMODE). - * - * @unit norm - * @min 0 - * @max 1 - * @decimal 2 - * @increment 0.01 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_MANTHR_MIN, 0.08f); - -/** - * Thrust curve mapping in Stabilized Mode - * - * Defines how the throttle stick is mapped to collective thrust in Stabilized mode. - * - * Rescale to hover thrust estimate: - * Stick input is linearly rescaled, such that a centered throttle stick corresponds to the hover thrust estimator's output. - * - * No rescale: - * Directly map the stick 1:1 to the output. - * Can be useful with very low hover thrust which leads to much distortion and the upper half getting sensitive. - * - * Rescale to hover thrust parameter: - * Similar to rescaling to the hover thrust estimate, but it uses the hover thrust parameter value (see MPC_THR_HOVER) instead of estimated value. - * With MPC_THR_HOVER 0.5 it's equivalent to No rescale. - * - * @value 0 Rescale to estimate - * @value 1 No rescale - * @value 2 Rescale to parameter - * @group Multicopter Position Control - */ -PARAM_DEFINE_INT32(MPC_THR_CURVE, 0); diff --git a/src/modules/mc_pos_control/multicopter_stabilized_mode_params.yaml b/src/modules/mc_pos_control/multicopter_stabilized_mode_params.yaml new file mode 100644 index 0000000000..52e8d08e16 --- /dev/null +++ b/src/modules/mc_pos_control/multicopter_stabilized_mode_params.yaml @@ -0,0 +1,61 @@ +module_name: mc_pos_control +parameters: +- group: Multicopter Position Control + definitions: + MPC_MAN_TILT_MAX: + description: + short: Maximal tilt angle in Stabilized, Altitude and Altitude Cruise mode + type: float + default: 35.0 + unit: deg + min: 1 + max: 70 + decimal: 0 + increment: 1 + MPC_MAN_Y_MAX: + description: + short: Max manual yaw rate for Stabilized, Altitude, Position mode + type: float + default: 150.0 + unit: deg/s + min: 0 + max: 400 + decimal: 0 + increment: 10 + MPC_MANTHR_MIN: + description: + short: Minimum collective thrust in Stabilized mode + long: |- + The value is mapped to the lowest throttle stick position in Stabilized mode. + + Too low collective thrust leads to loss of roll/pitch/yaw torque control authority. + Airmode is used to keep torque authority with zero thrust (see MC_AIRMODE). + type: float + default: 0.08 + unit: norm + min: 0 + max: 1 + decimal: 2 + increment: 0.01 + MPC_THR_CURVE: + description: + short: Thrust curve mapping in Stabilized Mode + long: |- + Defines how the throttle stick is mapped to collective thrust in Stabilized mode. + + Rescale to hover thrust estimate: + Stick input is linearly rescaled, such that a centered throttle stick corresponds to the hover thrust estimator's output. + + No rescale: + Directly map the stick 1:1 to the output. + Can be useful with very low hover thrust which leads to much distortion and the upper half getting sensitive. + + Rescale to hover thrust parameter: + Similar to rescaling to the hover thrust estimate, but it uses the hover thrust parameter value (see MPC_THR_HOVER) instead of estimated value. + With MPC_THR_HOVER 0.5 it's equivalent to No rescale. + type: enum + values: + 0: Rescale to estimate + 1: No rescale + 2: Rescale to parameter + default: 0 diff --git a/src/modules/mc_pos_control/multicopter_takeoff_land_params.c b/src/modules/mc_pos_control/multicopter_takeoff_land_params.c deleted file mode 100644 index 77444cc65b..0000000000 --- a/src/modules/mc_pos_control/multicopter_takeoff_land_params.c +++ /dev/null @@ -1,123 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2023 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * Smooth takeoff ramp time constant - * - * Increasing this value will make climb rate controlled takeoff slower. - * If it's too slow the drone might scratch the ground and tip over. - * A time constant of 0 disables the ramp - * - * @unit s - * @min 0 - * @max 5 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_TKO_RAMP_T, 3.f); - -/** - * Takeoff climb rate - * - * @unit m/s - * @min 1 - * @max 5 - * @decimal 2 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_TKO_SPEED, 1.5f); - -/** - * Altitude for 1. step of slow landing (descend) - * - * Below this altitude descending velocity gets limited to a value - * between "MPC_Z_VEL_MAX_DN" (or "MPC_Z_V_AUTO_DN") and "MPC_LAND_SPEED" - * Value needs to be higher than "MPC_LAND_ALT2" - * - * @unit m - * @min 0 - * @max 122 - * @decimal 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_LAND_ALT1, 10.f); - -/** - * Altitude for 2. step of slow landing (landing) - * - * Below this altitude descending velocity gets - * limited to "MPC_LAND_SPEED" - * Value needs to be lower than "MPC_LAND_ALT1" - * - * @unit m - * @min 0 - * @max 122 - * @decimal 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_LAND_ALT2, 5.f); - -/** - * Altitude for 3. step of slow landing - * - * If a valid distance sensor measurement to the ground is available, - * limit descending velocity to "MPC_LAND_CRWL" below this altitude. - * - * @unit m - * @min 0 - * @max 122 - * @decimal 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_LAND_ALT3, 1.f); - -/** - * Landing descend rate - * - * @unit m/s - * @min 0.6 - * @decimal 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_LAND_SPEED, 0.7f); - -/** - * Land crawl descend rate - * - * Used below MPC_LAND_ALT3 if distance sensor data is availabe. - * - * @unit m/s - * @min 0.1 - * @decimal 1 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MPC_LAND_CRWL, 0.3f); diff --git a/src/modules/mc_pos_control/multicopter_takeoff_land_params.yaml b/src/modules/mc_pos_control/multicopter_takeoff_land_params.yaml new file mode 100644 index 0000000000..dffb79aedf --- /dev/null +++ b/src/modules/mc_pos_control/multicopter_takeoff_land_params.yaml @@ -0,0 +1,80 @@ +module_name: mc_pos_control +parameters: +- group: Multicopter Position Control + definitions: + MPC_TKO_RAMP_T: + description: + short: Smooth takeoff ramp time constant + long: |- + Increasing this value will make climb rate controlled takeoff slower. + If it's too slow the drone might scratch the ground and tip over. + A time constant of 0 disables the ramp + type: float + default: 3.0 + unit: s + min: 0 + max: 5 + MPC_TKO_SPEED: + description: + short: Takeoff climb rate + type: float + default: 1.5 + unit: m/s + min: 1 + max: 5 + decimal: 2 + MPC_LAND_ALT1: + description: + short: Altitude for 1. step of slow landing (descend) + long: |- + Below this altitude descending velocity gets limited to a value + between "MPC_Z_VEL_MAX_DN" (or "MPC_Z_V_AUTO_DN") and "MPC_LAND_SPEED" + Value needs to be higher than "MPC_LAND_ALT2" + type: float + default: 10.0 + unit: m + min: 0 + max: 122 + decimal: 1 + MPC_LAND_ALT2: + description: + short: Altitude for 2. step of slow landing (landing) + long: |- + Below this altitude descending velocity gets + limited to "MPC_LAND_SPEED" + Value needs to be lower than "MPC_LAND_ALT1" + type: float + default: 5.0 + unit: m + min: 0 + max: 122 + decimal: 1 + MPC_LAND_ALT3: + description: + short: Altitude for 3. step of slow landing + long: |- + If a valid distance sensor measurement to the ground is available, + limit descending velocity to "MPC_LAND_CRWL" below this altitude. + type: float + default: 1.0 + unit: m + min: 0 + max: 122 + decimal: 1 + MPC_LAND_SPEED: + description: + short: Landing descend rate + type: float + default: 0.7 + unit: m/s + min: 0.6 + decimal: 1 + MPC_LAND_CRWL: + description: + short: Land crawl descend rate + long: Used below MPC_LAND_ALT3 if distance sensor data is availabe. + type: float + default: 0.3 + unit: m/s + min: 0.1 + decimal: 1