diff --git a/src/modules/mc_att_control/CMakeLists.txt b/src/modules/mc_att_control/CMakeLists.txt index d08d100b1d..94842013cd 100644 --- a/src/modules/mc_att_control/CMakeLists.txt +++ b/src/modules/mc_att_control/CMakeLists.txt @@ -41,6 +41,8 @@ px4_add_module( SRCS mc_att_control_main.cpp mc_att_control.hpp + MODULE_CONFIG + mc_att_control_params.yaml DEPENDS AttitudeControl mathlib diff --git a/src/modules/mc_att_control/mc_att_control_params.c b/src/modules/mc_att_control/mc_att_control_params.c deleted file mode 100644 index a503900cff..0000000000 --- a/src/modules/mc_att_control/mc_att_control_params.c +++ /dev/null @@ -1,160 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2013-2015 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_att_control_params.c - * Parameters for multicopter attitude controller. - * - * @author Lorenz Meier - * @author Anton Babushkin - */ - -/** - * Roll P gain - * - * Roll proportional gain, i.e. desired angular speed in rad/s for error 1 rad. - * - * @min 0.0 - * @max 12 - * @decimal 2 - * @increment 0.1 - * @group Multicopter Attitude Control - */ -PARAM_DEFINE_FLOAT(MC_ROLL_P, 4.0f); - -/** - * Pitch P gain - * - * Pitch proportional gain, i.e. desired angular speed in rad/s for error 1 rad. - * - * @min 0.0 - * @max 12 - * @decimal 2 - * @increment 0.1 - * @group Multicopter Attitude Control - */ -PARAM_DEFINE_FLOAT(MC_PITCH_P, 4.0f); - -/** - * Yaw P gain - * - * Yaw proportional gain, i.e. desired angular speed in rad/s for error 1 rad. - * - * @min 0.0 - * @max 5 - * @decimal 2 - * @increment 0.1 - * @group Multicopter Attitude Control - */ -PARAM_DEFINE_FLOAT(MC_YAW_P, 2.8f); - -/** - * Yaw weight - * - * A fraction [0,1] deprioritizing yaw compared to roll and pitch in non-linear attitude control. - * Deprioritizing yaw is necessary because multicopters have much less control authority - * in yaw compared to the other axes and it makes sense because yaw is not critical for - * stable hovering or 3D navigation. - * - * For yaw control tuning use MC_YAW_P. This ratio has no impact on the yaw gain. - * - * @min 0.0 - * @max 1.0 - * @decimal 2 - * @increment 0.1 - * @group Multicopter Attitude Control - */ -PARAM_DEFINE_FLOAT(MC_YAW_WEIGHT, 0.4f); - -/** - * Max roll rate - * - * Limit for roll rate in manual and auto modes (except acro). - * Has effect for large rotations in autonomous mode, to avoid large control - * output and mixer saturation. - * - * This is not only limited by the vehicle's properties, but also by the maximum - * measurement rate of the gyro. - * - * @unit deg/s - * @min 0.0 - * @max 1800.0 - * @decimal 1 - * @increment 5 - * @group Multicopter Attitude Control - */ -PARAM_DEFINE_FLOAT(MC_ROLLRATE_MAX, 220.0f); - -/** - * Max pitch rate - * - * Limit for pitch rate in manual and auto modes (except acro). - * Has effect for large rotations in autonomous mode, to avoid large control - * output and mixer saturation. - * - * This is not only limited by the vehicle's properties, but also by the maximum - * measurement rate of the gyro. - * - * @unit deg/s - * @min 0.0 - * @max 1800.0 - * @decimal 1 - * @increment 5 - * @group Multicopter Attitude Control - */ -PARAM_DEFINE_FLOAT(MC_PITCHRATE_MAX, 220.0f); - -/** - * Max yaw rate - * - * @unit deg/s - * @min 0.0 - * @max 1800.0 - * @decimal 1 - * @increment 5 - * @group Multicopter Attitude Control - */ -PARAM_DEFINE_FLOAT(MC_YAWRATE_MAX, 200.0f); - -/** - * Manual tilt input filter time constant - * - * Setting this parameter to 0 disables the filter - * - * @unit s - * @min 0.0 - * @max 2.0 - * @decimal 2 - * @group Multicopter Position Control - */ -PARAM_DEFINE_FLOAT(MC_MAN_TILT_TAU, 0.0f); diff --git a/src/modules/mc_att_control/mc_att_control_params.yaml b/src/modules/mc_att_control/mc_att_control_params.yaml new file mode 100644 index 0000000000..00def08bc9 --- /dev/null +++ b/src/modules/mc_att_control/mc_att_control_params.yaml @@ -0,0 +1,109 @@ +module_name: mc_att_control +parameters: +- group: Multicopter Attitude Control + definitions: + MC_ROLL_P: + description: + short: Roll P gain + long: Roll proportional gain, i.e. desired angular speed in rad/s for error + 1 rad. + type: float + default: 4.0 + min: 0.0 + max: 12 + decimal: 2 + increment: 0.1 + MC_PITCH_P: + description: + short: Pitch P gain + long: Pitch proportional gain, i.e. desired angular speed in rad/s for error + 1 rad. + type: float + default: 4.0 + min: 0.0 + max: 12 + decimal: 2 + increment: 0.1 + MC_YAW_P: + description: + short: Yaw P gain + long: Yaw proportional gain, i.e. desired angular speed in rad/s for error + 1 rad. + type: float + default: 2.8 + min: 0.0 + max: 5 + decimal: 2 + increment: 0.1 + MC_YAW_WEIGHT: + description: + short: Yaw weight + long: |- + A fraction [0,1] deprioritizing yaw compared to roll and pitch in non-linear attitude control. + Deprioritizing yaw is necessary because multicopters have much less control authority + in yaw compared to the other axes and it makes sense because yaw is not critical for + stable hovering or 3D navigation. + + For yaw control tuning use MC_YAW_P. This ratio has no impact on the yaw gain. + type: float + default: 0.4 + min: 0.0 + max: 1.0 + decimal: 2 + increment: 0.1 + MC_ROLLRATE_MAX: + description: + short: Max roll rate + long: |- + Limit for roll rate in manual and auto modes (except acro). + Has effect for large rotations in autonomous mode, to avoid large control + output and mixer saturation. + + This is not only limited by the vehicle's properties, but also by the maximum + measurement rate of the gyro. + type: float + default: 220.0 + unit: deg/s + min: 0.0 + max: 1800.0 + decimal: 1 + increment: 5 + MC_PITCHRATE_MAX: + description: + short: Max pitch rate + long: |- + Limit for pitch rate in manual and auto modes (except acro). + Has effect for large rotations in autonomous mode, to avoid large control + output and mixer saturation. + + This is not only limited by the vehicle's properties, but also by the maximum + measurement rate of the gyro. + type: float + default: 220.0 + unit: deg/s + min: 0.0 + max: 1800.0 + decimal: 1 + increment: 5 + MC_YAWRATE_MAX: + description: + short: Max yaw rate + type: float + default: 200.0 + unit: deg/s + min: 0.0 + max: 1800.0 + decimal: 1 + increment: 5 +- group: Multicopter Position Control + definitions: + MC_MAN_TILT_TAU: + description: + short: Manual tilt input filter time constant + long: Setting this parameter to 0 disables the filter + type: float + default: 0.0 + unit: s + min: 0.0 + max: 2.0 + decimal: 2