AC_AttitudeControl: ATC_ACC_R/P/Y_MAX renamed and scaled to deg/s/s#32192
AC_AttitudeControl: ATC_ACC_R/P/Y_MAX renamed and scaled to deg/s/s#32192rmackay9 merged 28 commits intoArduPilot:masterfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Renames four attitude-control acceleration/slew parameters and converts their units from centi-degrees to degrees (including QuadPlane and ArduSub variants), updating defaults and parameter conversion logic accordingly.
Changes:
- Introduces new
*_ACC_*and*_SLEW_YAW_MAXparameters usingdeg/s/sanddeg/s, deprecating the older*_ACCEL_*and*_SLEW_YAW(cdeg-based) params. - Adds scaled parameter migration entries to convert existing saved params to the new names/units.
- Updates SITL examples, hardware defaults, frame params, and autotest model/default param sets to use the new parameter names/units.
Reviewed changes
Copilot reviewed 54 out of 54 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| libraries/SITL/examples/Morse/quadcopter.parm | Updates example params to new ATC_ACC_* names and deg-based scaling |
| libraries/SITL/examples/Morse/quad_scanner.parm | Updates example params to new ATC_ACC_* names and deg-based scaling |
| libraries/AP_Scripting/examples/config_profiles.lua | Renames scripted profile parameter to ATC_ACC_P_MAX with deg-based value |
| libraries/AP_HAL_ESP32/hwdef/esp32s3m5stampfly/defaults.parm | Converts board defaults to new ATC_ACC_* names (deg/s/s) |
| libraries/AP_HAL_ChibiOS/hwdef/skyviper-v2450/defaults.parm | Converts defaults to ATC_ACC_* and ATC_SLEW_YAW_MAX (deg units) |
| libraries/AP_HAL_ChibiOS/hwdef/skyviper-journey/defaults.parm | Converts defaults to ATC_ACC_* and ATC_SLEW_YAW_MAX (deg units) |
| libraries/AP_HAL_ChibiOS/hwdef/luminousbee5/defaults.parm | Converts defaults to new ATC_ACC_* names |
| libraries/AP_HAL_ChibiOS/hwdef/crazyflie2/defaults.parm | Converts defaults to new ATC_ACC_* names |
| libraries/AP_HAL_ChibiOS/hwdef/Swan-K1/defaults.parm | Converts QuadPlane defaults to Q_A_ACC_* names (deg/s/s) |
| libraries/AP_HAL_ChibiOS/hwdef/CubeSolo/defaults.parm | Converts defaults to new ATC_ACC_* names |
| libraries/AP_HAL_ChibiOS/hwdef/CubeOrange-joey/defaults.parm | Converts readonly defaults to new ATC_ACC_* names |
| libraries/AP_HAL_ChibiOS/hwdef/CubeGreen-solo/defaults.parm | Converts defaults to new ATC_ACC_* names |
| libraries/AC_AttitudeControl/AC_AttitudeControl_Sub.h | Renames Sub yaw-accel default macro to reflect deg-based unit |
| libraries/AC_AttitudeControl/AC_AttitudeControl_Sub.cpp | Applies new Sub yaw-accel default to renamed param member |
| libraries/AC_AttitudeControl/AC_AttitudeControl.h | Switches internal storage to deg-based _degss/_degs members and updates defaults |
| libraries/AC_AttitudeControl/AC_AttitudeControl.cpp | Adds new params, removes old ones, and migrates old param values with scaling |
| Tools/autotest/quadplane.py | Updates autotest parameter references to Q_A_ACC_* names |
| Tools/autotest/models/freestyle.param | Converts model params to new ATC_ACC_* and ATC_SLEW_YAW_MAX |
| Tools/autotest/models/Callisto.param | Converts model params to new ATC_ACC_* and ATC_SLEW_YAW_MAX |
| Tools/autotest/default_params/quadplane-copter_tailsitter.parm | Converts default params to Q_A_ACC_* names (deg/s/s) |
| Tools/autotest/default_params/copter-octaquad.parm | Converts default params to ATC_ACC_* names |
| Tools/autotest/default_params/copter-octaquad-cw-cor.parm | Converts default params to ATC_ACC_* names |
| Tools/autotest/default_params/copter-octaquad-cor.parm | Converts default params to ATC_ACC_* names |
| Tools/autotest/default_params/copter-heli.parm | Converts default params to ATC_ACC_* names |
| Tools/Frame_params/iflight-chimera7-4.2.param | Converts frame params to ATC_ACC_* names (deg/s/s) |
| Tools/Frame_params/WLToys_V383_HeliQuad.param | Converts frame params to ATC_ACC_* names (deg/s/s) |
| Tools/Frame_params/Solo-Copter-GreenCube.param | Converts frame params to ATC_ACC_* and ATC_SLEW_YAW_MAX |
| Tools/Frame_params/QuadPlanes/XPlane-Alia.parm | Converts QuadPlane frame params to Q_A_ACC_* and Q_A_SLEW_YAW_MAX |
| Tools/Frame_params/QuadPlanes/SparkleTech-EagleHero.param | Converts QuadPlane frame params to Q_A_ACC_* |
| Tools/Frame_params/QuadPlanes/Mugin_EV350.param | Converts QuadPlane frame params to Q_A_ACC_* |
| Tools/Frame_params/QuadPlanes/MFE_StriverMini.param | Converts QuadPlane frame params to Q_A_ACC_* |
| Tools/Frame_params/QuadPlanes/Foxtech_GreatShark.param | Converts QuadPlane frame params to Q_A_ACC_* and Q_A_SLEW_YAW_MAX |
| Tools/Frame_params/QuadPlanes/Foxtech_Altair370.parm | Converts QuadPlane frame params to Q_A_ACC_* |
| Tools/Frame_params/QuadPlanes/Aerofox_AYK320.param | Converts QuadPlane frame params to Q_A_ACC_* and Q_A_SLEW_YAW_MAX |
| Tools/Frame_params/Parrot_Bebop2.param | Converts frame params to ATC_ACC_* |
| Tools/Frame_params/Parrot_Bebop.param | Converts frame params to ATC_ACC_* |
| Tools/Frame_params/ModalAI/D0013.parm | Converts frame params to ATC_ACC_* using deg-based values |
| Tools/Frame_params/ModalAI/AutonomyDevKit.parm | Converts frame params to ATC_ACC_* using deg-based values |
| Tools/Frame_params/Holybro-kospi1.param | Converts frame params to ATC_ACC_* |
| Tools/Frame_params/Holybro-X500v2-bdshot.param | Converts frame params to ATC_ACC_* |
| Tools/Frame_params/Holybro-S500.param | Converts frame params to ATC_ACC_* |
| Tools/Frame_params/Holybro-QAV250.param | Converts frame params to ATC_ACC_* |
| Tools/Frame_params/Holybro-QAV250-bdshot.param | Converts frame params to ATC_ACC_* |
| Tools/Frame_params/Hexsoon-td860.param | Converts frame params to ATC_ACC_* |
| Tools/Frame_params/Hexsoon-edu650.param | Converts frame params to ATC_ACC_* |
| Tools/Frame_params/Hexsoon-edu450.param | Converts frame params to ATC_ACC_* |
| Tools/Frame_params/EFlight_Convergence.param | Converts QuadPlane yaw slew param to Q_A_SLEW_YAW_MAX |
| Tools/Frame_params/EAMS_445.param | Converts frame params to ATC_ACC_* |
| Tools/Frame_params/DJI_AGRAS_MG-1.param | Converts frame params to ATC_ACC_* |
| Tools/Frame_params/Amovlab-p200.param | Converts frame param to ATC_ACC_Y_MAX |
| Tools/Frame_params/3DR_Iris+.param | Converts frame param to ATC_ACC_Y_MAX |
| ArduSub/Parameters.h | Updates ArduSub defaults table to ATC_ACC_Y_MAX with deg/s/s value |
| ArduPlane/tailsitter.cpp | Updates tailsitter defaults table to Q_A_ACC_{P,R}_MAX in deg/s/s |
| ArduPlane/quadplane.cpp | Updates quadplane defaults table to Q_A_ACC_* in deg/s/s |
Comments suppressed due to low confidence (4)
libraries/AC_AttitudeControl/AC_AttitudeControl.cpp:1
- The PR adds non-trivial parameter migration (rename + unit scaling) across vehicle types. Please add an autotest that boots with legacy params set (
*_ACCEL_*+*_SLEW_YAW), triggers parameter conversion, and asserts the new params exist with correctly scaled values (×0.01) for Copter, ArduSub, and QuadPlane.
libraries/AC_AttitudeControl/AC_AttitudeControl.cpp:1 - The new
SLEW_YAW_MAXdocumentation says it applies to 'RTL and Auto' only, but the in-code member comment inAC_AttitudeControl.hdescribes it as applying to 'Loiter, RTL, Auto'. Please align the parameter description with the actual modes where the limit is used to avoid user confusion.
Tools/autotest/default_params/quadplane-copter_tailsitter.parm:1 - Several converted
.parmvalues appear truncated rather than rounded when scaling by 0.01 (e.g.,207069.531250cdeg/s/s becomes2070.69instead of rounding to2070.70). To preserve the original tuning as closely as possible, please round to a consistent precision (typically 2 decimals for a ×0.01 conversion) instead of truncating.
libraries/AC_AttitudeControl/AC_AttitudeControl_Sub.h:1 - The macro name mixes the old
ACCEL_*terminology with the new unit-based suffix (_DEGSS). Consider renaming this constant to match the updated parameter naming (e.g.,AC_ATC_SUB_ACC_Y_MAX_DEFAULT_DEGSS) so it's clearer that it corresponds toACC_Y_MAXin deg/s/s.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
lthall
left a comment
There was a problem hiding this comment.
Line by line looks good. Couple little fixes for the autotests.
Like Peter I have reservations about "SLEW", I think AUTO_Y_RATE would be an improvement but I am not going to delay anything over it.
I am happy to approve.
603ced4 to
c770b65
Compare
c770b65 to
20acd5a
Compare
20acd5a to
692f53c
Compare
|
I've tested this in SITL and while I found an issue with the yaw slew, the issue also exists in master and Leonard has a PR to fix it here: #32359 |
This is a continuation of PR #32186 and helps to address issue #31562
This PR renames and converts four ATC_xxx parameters so they are in deg instead of centi-degrees:
On quadplane the change appears like this:
This has been lightly tested in SITL but only to confirm that the parameter conversion works as expected