From ffa361185ca71ab2790e90092beeef23a4196f07 Mon Sep 17 00:00:00 2001 From: Jacob Dahl Date: Tue, 17 Mar 2026 21:55:35 -0800 Subject: [PATCH] refactor(mc_rate_control): convert params.c to module.yaml Convert 2 parameter file(s) from legacy C format to YAML module configuration. --- src/modules/mc_rate_control/CMakeLists.txt | 3 + src/modules/mc_rate_control/mc_acro_params.c | 142 -------- .../mc_rate_control/mc_acro_params.yaml | 91 ++++++ .../mc_rate_control/mc_rate_control_params.c | 307 ------------------ .../mc_rate_control_params.yaml | 232 +++++++++++++ 5 files changed, 326 insertions(+), 449 deletions(-) delete mode 100644 src/modules/mc_rate_control/mc_acro_params.c create mode 100644 src/modules/mc_rate_control/mc_acro_params.yaml delete mode 100644 src/modules/mc_rate_control/mc_rate_control_params.c create mode 100644 src/modules/mc_rate_control/mc_rate_control_params.yaml diff --git a/src/modules/mc_rate_control/CMakeLists.txt b/src/modules/mc_rate_control/CMakeLists.txt index 849993e623..5ce1d7303e 100644 --- a/src/modules/mc_rate_control/CMakeLists.txt +++ b/src/modules/mc_rate_control/CMakeLists.txt @@ -39,6 +39,9 @@ px4_add_module( SRCS MulticopterRateControl.cpp MulticopterRateControl.hpp + MODULE_CONFIG + mc_acro_params.yaml + mc_rate_control_params.yaml DEPENDS circuit_breaker mathlib diff --git a/src/modules/mc_rate_control/mc_acro_params.c b/src/modules/mc_rate_control/mc_acro_params.c deleted file mode 100644 index ef9d315d0c..0000000000 --- a/src/modules/mc_rate_control/mc_acro_params.c +++ /dev/null @@ -1,142 +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. - * - ****************************************************************************/ - -/** - * @file mc_acro_params.c - * - * Parameters for Acro mode behavior - */ - -/** - * Acro mode maximum roll rate - * - * Full stick deflection leads to this rate. - * - * @unit deg/s - * @min 0.0 - * @max 1800.0 - * @decimal 1 - * @increment 5 - * @group Multicopter Acro Mode - */ -PARAM_DEFINE_FLOAT(MC_ACRO_R_MAX, 100.f); - -/** - * Acro mode maximum pitch rate - * - * Full stick deflection leads to this rate. - * - * @unit deg/s - * @min 0.0 - * @max 1800.0 - * @decimal 1 - * @increment 5 - * @group Multicopter Acro Mode - */ -PARAM_DEFINE_FLOAT(MC_ACRO_P_MAX, 100.f); - -/** - * Acro mode maximum yaw rate - * - * Full stick deflection leads to this rate. - * - * @unit deg/s - * @min 0.0 - * @max 1800.0 - * @decimal 1 - * @increment 5 - * @group Multicopter Acro Mode - */ -PARAM_DEFINE_FLOAT(MC_ACRO_Y_MAX, 100.f); - -/** - * Acro mode roll, pitch expo factor - * - * Exponential factor for tuning the input curve shape. - * - * 0 Purely linear input curve - * 1 Purely cubic input curve - * - * @min 0 - * @max 1 - * @decimal 2 - * @group Multicopter Acro Mode - */ -PARAM_DEFINE_FLOAT(MC_ACRO_EXPO, 0.f); - -/** - * Acro mode yaw expo factor - * - * Exponential factor for tuning the input curve shape. - * - * 0 Purely linear input curve - * 1 Purely cubic input curve - * - * @min 0 - * @max 1 - * @decimal 2 - * @group Multicopter Acro Mode - */ -PARAM_DEFINE_FLOAT(MC_ACRO_EXPO_Y, 0.f); - -/** - * Acro mode roll, pitch super expo factor - * - * "Superexponential" factor for refining the input curve shape tuned using MC_ACRO_EXPO. - * - * 0 Pure Expo function - * 0.7 reasonable shape enhancement for intuitive stick feel - * 0.95 very strong bent input curve only near maxima have effect - * - * @min 0 - * @max 0.95 - * @decimal 2 - * @group Multicopter Acro Mode - */ -PARAM_DEFINE_FLOAT(MC_ACRO_SUPEXPO, 0.f); - -/** - * Acro mode yaw super expo factor - * - * "Superexponential" factor for refining the input curve shape tuned using MC_ACRO_EXPO_Y. - * - * 0 Pure Expo function - * 0.7 reasonable shape enhancement for intuitive stick feel - * 0.95 very strong bent input curve only near maxima have effect - * - * @min 0 - * @max 0.95 - * @decimal 2 - * @group Multicopter Acro Mode - */ -PARAM_DEFINE_FLOAT(MC_ACRO_SUPEXPOY, 0.f); diff --git a/src/modules/mc_rate_control/mc_acro_params.yaml b/src/modules/mc_rate_control/mc_acro_params.yaml new file mode 100644 index 0000000000..54564d3f1c --- /dev/null +++ b/src/modules/mc_rate_control/mc_acro_params.yaml @@ -0,0 +1,91 @@ +module_name: mc_rate_control +parameters: +- group: Multicopter Acro Mode + definitions: + MC_ACRO_R_MAX: + description: + short: Acro mode maximum roll rate + long: Full stick deflection leads to this rate. + type: float + default: 100.0 + unit: deg/s + min: 0.0 + max: 1800.0 + decimal: 1 + increment: 5 + MC_ACRO_P_MAX: + description: + short: Acro mode maximum pitch rate + long: Full stick deflection leads to this rate. + type: float + default: 100.0 + unit: deg/s + min: 0.0 + max: 1800.0 + decimal: 1 + increment: 5 + MC_ACRO_Y_MAX: + description: + short: Acro mode maximum yaw rate + long: Full stick deflection leads to this rate. + type: float + default: 100.0 + unit: deg/s + min: 0.0 + max: 1800.0 + decimal: 1 + increment: 5 + MC_ACRO_EXPO: + description: + short: Acro mode roll, pitch expo factor + long: |- + Exponential factor for tuning the input curve shape. + + 0 Purely linear input curve + 1 Purely cubic input curve + type: float + default: 0.0 + min: 0 + max: 1 + decimal: 2 + MC_ACRO_EXPO_Y: + description: + short: Acro mode yaw expo factor + long: |- + Exponential factor for tuning the input curve shape. + + 0 Purely linear input curve + 1 Purely cubic input curve + type: float + default: 0.0 + min: 0 + max: 1 + decimal: 2 + MC_ACRO_SUPEXPO: + description: + short: Acro mode roll, pitch super expo factor + long: |- + "Superexponential" factor for refining the input curve shape tuned using MC_ACRO_EXPO. + + 0 Pure Expo function + 0.7 reasonable shape enhancement for intuitive stick feel + 0.95 very strong bent input curve only near maxima have effect + type: float + default: 0.0 + min: 0 + max: 0.95 + decimal: 2 + MC_ACRO_SUPEXPOY: + description: + short: Acro mode yaw super expo factor + long: |- + "Superexponential" factor for refining the input curve shape tuned using MC_ACRO_EXPO_Y. + + 0 Pure Expo function + 0.7 reasonable shape enhancement for intuitive stick feel + 0.95 very strong bent input curve only near maxima have effect + type: float + default: 0.0 + min: 0 + max: 0.95 + decimal: 2 diff --git a/src/modules/mc_rate_control/mc_rate_control_params.c b/src/modules/mc_rate_control/mc_rate_control_params.c deleted file mode 100644 index e9937d00fa..0000000000 --- a/src/modules/mc_rate_control/mc_rate_control_params.c +++ /dev/null @@ -1,307 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2013-2019 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. - * - ****************************************************************************/ - -/** - * @file mc_rate_control_params.c - * - * Parameters for multicopter rate controller - */ - -/** - * Roll rate P gain - * - * Roll rate proportional gain, i.e. control output for angular speed error 1 rad/s. - * - * @min 0.01 - * @max 0.5 - * @decimal 3 - * @increment 0.01 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_ROLLRATE_P, 0.15f); - -/** - * Roll rate I gain - * - * Roll rate integral gain. Can be set to compensate static thrust difference or gravity center offset. - * - * @min 0.0 - * @decimal 3 - * @increment 0.01 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_ROLLRATE_I, 0.2f); - -/** - * Roll rate integrator limit - * - * Roll rate integrator limit. Can be set to increase the amount of integrator available to counteract disturbances or reduced to improve settling time after large roll moment trim changes. - * - * @min 0.0 - * @decimal 2 - * @increment 0.01 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_RR_INT_LIM, 0.30f); - -/** - * Roll rate D gain - * - * Roll rate differential gain. Small values help reduce fast oscillations. If value is too big oscillations will appear again. - * - * @min 0.0 - * @max 0.01 - * @decimal 4 - * @increment 0.0005 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_ROLLRATE_D, 0.003f); - -/** - * Roll rate feedforward - * - * Improves tracking performance. - * - * @min 0.0 - * @decimal 4 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_ROLLRATE_FF, 0.0f); - -/** - * Roll rate controller gain - * - * Global gain of the controller. - * - * This gain scales the P, I and D terms of the controller: - * output = MC_ROLLRATE_K * (MC_ROLLRATE_P * error - * + MC_ROLLRATE_I * error_integral - * + MC_ROLLRATE_D * error_derivative) - * Set MC_ROLLRATE_P=1 to implement a PID in the ideal form. - * Set MC_ROLLRATE_K=1 to implement a PID in the parallel form. - * - * @min 0.01 - * @max 5.0 - * @decimal 4 - * @increment 0.0005 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_ROLLRATE_K, 1.0f); - -/** - * Pitch rate P gain - * - * Pitch rate proportional gain, i.e. control output for angular speed error 1 rad/s. - * - * @min 0.01 - * @max 0.6 - * @decimal 3 - * @increment 0.01 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_PITCHRATE_P, 0.15f); - -/** - * Pitch rate I gain - * - * Pitch rate integral gain. Can be set to compensate static thrust difference or gravity center offset. - * - * @min 0.0 - * @decimal 3 - * @increment 0.01 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_PITCHRATE_I, 0.2f); - -/** - * Pitch rate integrator limit - * - * Pitch rate integrator limit. Can be set to increase the amount of integrator available to counteract disturbances or reduced to improve settling time after large pitch moment trim changes. - * - * @min 0.0 - * @decimal 2 - * @increment 0.01 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_PR_INT_LIM, 0.30f); - -/** - * Pitch rate D gain - * - * Pitch rate differential gain. Small values help reduce fast oscillations. If value is too big oscillations will appear again. - * - * @min 0.0 - * @decimal 4 - * @increment 0.0005 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_PITCHRATE_D, 0.003f); - -/** - * Pitch rate feedforward - * - * Improves tracking performance. - * - * @min 0.0 - * @decimal 4 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_PITCHRATE_FF, 0.0f); - -/** - * Pitch rate controller gain - * - * Global gain of the controller. - * - * This gain scales the P, I and D terms of the controller: - * output = MC_PITCHRATE_K * (MC_PITCHRATE_P * error - * + MC_PITCHRATE_I * error_integral - * + MC_PITCHRATE_D * error_derivative) - * Set MC_PITCHRATE_P=1 to implement a PID in the ideal form. - * Set MC_PITCHRATE_K=1 to implement a PID in the parallel form. - * - * @min 0.01 - * @max 5.0 - * @decimal 4 - * @increment 0.0005 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_PITCHRATE_K, 1.0f); - -/** - * Yaw rate P gain - * - * Yaw rate proportional gain, i.e. control output for angular speed error 1 rad/s. - * - * @min 0.0 - * @max 0.6 - * @decimal 3 - * @increment 0.01 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_YAWRATE_P, 0.2f); - -/** - * Yaw rate I gain - * - * Yaw rate integral gain. Can be set to compensate static thrust difference or gravity center offset. - * - * @min 0.0 - * @decimal 3 - * @increment 0.01 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_YAWRATE_I, 0.1f); - -/** - * Yaw rate integrator limit - * - * Yaw rate integrator limit. Can be set to increase the amount of integrator available to counteract disturbances or reduced to improve settling time after large yaw moment trim changes. - * - * @min 0.0 - * @decimal 2 - * @increment 0.01 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_YR_INT_LIM, 0.30f); - -/** - * Yaw rate D gain - * - * Yaw rate differential gain. Small values help reduce fast oscillations. If value is too big oscillations will appear again. - * - * @min 0.0 - * @decimal 4 - * @increment 0.0005 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_YAWRATE_D, 0.0f); - -/** - * Yaw rate feedforward - * - * Improves tracking performance. - * - * @min 0.0 - * @decimal 4 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_YAWRATE_FF, 0.0f); - -/** - * Yaw rate controller gain - * - * Global gain of the controller. - * - * This gain scales the P, I and D terms of the controller: - * output = MC_YAWRATE_K * (MC_YAWRATE_P * error - * + MC_YAWRATE_I * error_integral - * + MC_YAWRATE_D * error_derivative) - * Set MC_YAWRATE_P=1 to implement a PID in the ideal form. - * Set MC_YAWRATE_K=1 to implement a PID in the parallel form. - * - * @min 0.01 - * @max 5.0 - * @decimal 4 - * @increment 0.0005 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_YAWRATE_K, 1.0f); - -/** - * Battery power level scaler - * - * This compensates for voltage drop of the battery over time by attempting to - * normalize performance across the operating range of the battery. The copter - * should constantly behave as if it was fully charged with reduced max acceleration - * at lower battery percentages. i.e. if hover is at 0.5 throttle at 100% battery, - * it will still be 0.5 at 60% battery. - * - * @boolean - * @group Multicopter Rate Control - */ -PARAM_DEFINE_INT32(MC_BAT_SCALE_EN, 0); - -/** - * Low pass filter cutoff frequency for yaw torque setpoint - * - * Reduces vibrations by lowering high frequency torque caused by rotor acceleration. - * 0 disables the filter - * - * @min 0 - * @max 10 - * @unit Hz - * @decimal 3 - * @group Multicopter Rate Control - */ -PARAM_DEFINE_FLOAT(MC_YAW_TQ_CUTOFF, 2.f); diff --git a/src/modules/mc_rate_control/mc_rate_control_params.yaml b/src/modules/mc_rate_control/mc_rate_control_params.yaml new file mode 100644 index 0000000000..3a89e92abb --- /dev/null +++ b/src/modules/mc_rate_control/mc_rate_control_params.yaml @@ -0,0 +1,232 @@ +module_name: mc_rate_control +parameters: +- group: Multicopter Rate Control + definitions: + MC_ROLLRATE_P: + description: + short: Roll rate P gain + long: Roll rate proportional gain, i.e. control output for angular speed error + 1 rad/s. + type: float + default: 0.15 + min: 0.01 + max: 0.5 + decimal: 3 + increment: 0.01 + MC_ROLLRATE_I: + description: + short: Roll rate I gain + long: Roll rate integral gain. Can be set to compensate static thrust difference + or gravity center offset. + type: float + default: 0.2 + min: 0.0 + decimal: 3 + increment: 0.01 + MC_RR_INT_LIM: + description: + short: Roll rate integrator limit + long: Roll rate integrator limit. Can be set to increase the amount of integrator + available to counteract disturbances or reduced to improve settling time + after large roll moment trim changes. + type: float + default: 0.3 + min: 0.0 + decimal: 2 + increment: 0.01 + MC_ROLLRATE_D: + description: + short: Roll rate D gain + long: Roll rate differential gain. Small values help reduce fast oscillations. + If value is too big oscillations will appear again. + type: float + default: 0.003 + min: 0.0 + max: 0.01 + decimal: 4 + increment: 0.0005 + MC_ROLLRATE_FF: + description: + short: Roll rate feedforward + long: Improves tracking performance. + type: float + default: 0.0 + min: 0.0 + decimal: 4 + MC_ROLLRATE_K: + description: + short: Roll rate controller gain + long: |- + Global gain of the controller. + + This gain scales the P, I and D terms of the controller: + output = MC_ROLLRATE_K * (MC_ROLLRATE_P * error + + MC_ROLLRATE_I * error_integral + + MC_ROLLRATE_D * error_derivative) + Set MC_ROLLRATE_P=1 to implement a PID in the ideal form. + Set MC_ROLLRATE_K=1 to implement a PID in the parallel form. + type: float + default: 1.0 + min: 0.01 + max: 5.0 + decimal: 4 + increment: 0.0005 + MC_PITCHRATE_P: + description: + short: Pitch rate P gain + long: Pitch rate proportional gain, i.e. control output for angular speed + error 1 rad/s. + type: float + default: 0.15 + min: 0.01 + max: 0.6 + decimal: 3 + increment: 0.01 + MC_PITCHRATE_I: + description: + short: Pitch rate I gain + long: Pitch rate integral gain. Can be set to compensate static thrust difference + or gravity center offset. + type: float + default: 0.2 + min: 0.0 + decimal: 3 + increment: 0.01 + MC_PR_INT_LIM: + description: + short: Pitch rate integrator limit + long: Pitch rate integrator limit. Can be set to increase the amount of integrator + available to counteract disturbances or reduced to improve settling time + after large pitch moment trim changes. + type: float + default: 0.3 + min: 0.0 + decimal: 2 + increment: 0.01 + MC_PITCHRATE_D: + description: + short: Pitch rate D gain + long: Pitch rate differential gain. Small values help reduce fast oscillations. + If value is too big oscillations will appear again. + type: float + default: 0.003 + min: 0.0 + decimal: 4 + increment: 0.0005 + MC_PITCHRATE_FF: + description: + short: Pitch rate feedforward + long: Improves tracking performance. + type: float + default: 0.0 + min: 0.0 + decimal: 4 + MC_PITCHRATE_K: + description: + short: Pitch rate controller gain + long: |- + Global gain of the controller. + + This gain scales the P, I and D terms of the controller: + output = MC_PITCHRATE_K * (MC_PITCHRATE_P * error + + MC_PITCHRATE_I * error_integral + + MC_PITCHRATE_D * error_derivative) + Set MC_PITCHRATE_P=1 to implement a PID in the ideal form. + Set MC_PITCHRATE_K=1 to implement a PID in the parallel form. + type: float + default: 1.0 + min: 0.01 + max: 5.0 + decimal: 4 + increment: 0.0005 + MC_YAWRATE_P: + description: + short: Yaw rate P gain + long: Yaw rate proportional gain, i.e. control output for angular speed error + 1 rad/s. + type: float + default: 0.2 + min: 0.0 + max: 0.6 + decimal: 3 + increment: 0.01 + MC_YAWRATE_I: + description: + short: Yaw rate I gain + long: Yaw rate integral gain. Can be set to compensate static thrust difference + or gravity center offset. + type: float + default: 0.1 + min: 0.0 + decimal: 3 + increment: 0.01 + MC_YR_INT_LIM: + description: + short: Yaw rate integrator limit + long: Yaw rate integrator limit. Can be set to increase the amount of integrator + available to counteract disturbances or reduced to improve settling time + after large yaw moment trim changes. + type: float + default: 0.3 + min: 0.0 + decimal: 2 + increment: 0.01 + MC_YAWRATE_D: + description: + short: Yaw rate D gain + long: Yaw rate differential gain. Small values help reduce fast oscillations. + If value is too big oscillations will appear again. + type: float + default: 0.0 + min: 0.0 + decimal: 4 + increment: 0.0005 + MC_YAWRATE_FF: + description: + short: Yaw rate feedforward + long: Improves tracking performance. + type: float + default: 0.0 + min: 0.0 + decimal: 4 + MC_YAWRATE_K: + description: + short: Yaw rate controller gain + long: |- + Global gain of the controller. + + This gain scales the P, I and D terms of the controller: + output = MC_YAWRATE_K * (MC_YAWRATE_P * error + + MC_YAWRATE_I * error_integral + + MC_YAWRATE_D * error_derivative) + Set MC_YAWRATE_P=1 to implement a PID in the ideal form. + Set MC_YAWRATE_K=1 to implement a PID in the parallel form. + type: float + default: 1.0 + min: 0.01 + max: 5.0 + decimal: 4 + increment: 0.0005 + MC_BAT_SCALE_EN: + description: + short: Battery power level scaler + long: |- + This compensates for voltage drop of the battery over time by attempting to + normalize performance across the operating range of the battery. The copter + should constantly behave as if it was fully charged with reduced max acceleration + at lower battery percentages. i.e. if hover is at 0.5 throttle at 100% battery, + it will still be 0.5 at 60% battery. + type: boolean + default: 0 + MC_YAW_TQ_CUTOFF: + description: + short: Low pass filter cutoff frequency for yaw torque setpoint + long: |- + Reduces vibrations by lowering high frequency torque caused by rotor acceleration. + 0 disables the filter + type: float + default: 2.0 + min: 0 + max: 10 + unit: Hz + decimal: 3