From 575fa0850b4ed9e6625dfc8c9fef8015952cb453 Mon Sep 17 00:00:00 2001 From: Nick <145654544+ttechnick@users.noreply.github.com> Date: Wed, 26 Nov 2025 18:12:25 +0100 Subject: [PATCH] PWM: Add servo center setting & asymetric deflection (#25897) Add PWM_*_CENTERx for each servo. Use a bilinear transform to map actuator_servos to PWM signals. This solution only works for PWM based servos. Other types of servos are not affected. * PWM: Add servo trim option * PWM: Improve documentation of PWM trim feature * PWM: cleaner clamping and docs typo * update documentation & safety * add migration formula * rename param from trim to center * docs with center instead of trim * move clamping and reorder values * improve documentation * adress failing range check * improve documentation * CA: add event for setting CENTER with TRIM Signed-off-by: Silvan --------- Signed-off-by: Silvan Co-authored-by: Silvan --- .../generate_actuators_metadata.py | 1 + Tools/module_config/generate_params.py | 8 +++ .../config/actuators/pwm_center_output.png | Bin 0 -> 114494 bytes .../config/actuators/servo_pwm_center.png | Bin 0 -> 18291 bytes .../config/actuators/servo_pwm_linear.png | Bin 0 -> 29247 bytes docs/en/config/actuators.md | 53 ++++++++++++++++-- src/drivers/pwm_out/module.yaml | 1 + src/lib/mixer_module/mixer_module.cpp | 47 ++++++++++++++-- src/lib/mixer_module/mixer_module.hpp | 5 ++ src/lib/mixer_module/mixer_module_tests.cpp | 6 ++ .../ActuatorEffectivenessControlSurfaces.cpp | 49 ++++++++++++++++ src/modules/control_allocator/module.yaml | 6 +- validation/module_schema.yaml | 22 ++++++++ 13 files changed, 187 insertions(+), 11 deletions(-) create mode 100644 docs/assets/config/actuators/pwm_center_output.png create mode 100644 docs/assets/config/actuators/servo_pwm_center.png create mode 100644 docs/assets/config/actuators/servo_pwm_linear.png diff --git a/Tools/module_config/generate_actuators_metadata.py b/Tools/module_config/generate_actuators_metadata.py index 196119259b..5d38ecf499 100755 --- a/Tools/module_config/generate_actuators_metadata.py +++ b/Tools/module_config/generate_actuators_metadata.py @@ -238,6 +238,7 @@ def get_actuator_output(yaml_config, output_functions, timer_config_file, verbos ( 'disarmed', 'Disarmed', 'DIS', False ), ( 'min', 'Minimum', 'MIN', False ), ( 'max', 'Maximum', 'MAX', False ), + ( 'center', 'Center\n(for Servos)', 'CENT', False ), ( 'failsafe', 'Failsafe', 'FAIL', True ), ] for key, label, param_suffix, advanced in standard_params_array: diff --git a/Tools/module_config/generate_params.py b/Tools/module_config/generate_params.py index 92b2593656..ecc29a4519 100755 --- a/Tools/module_config/generate_params.py +++ b/Tools/module_config/generate_params.py @@ -284,6 +284,9 @@ Note that non-motor outputs might already be active in prearm state if COM_PREAR ''' minimum_description = \ '''Minimum output value (when not disarmed). +''' + center_description = \ +'''Servo Center output value (when not disarmed). ''' maximum_description = \ '''Maxmimum output value (when not disarmed). @@ -296,6 +299,7 @@ When set to -1 (default), the value depends on the function (see {:}). standard_params_array = [ ( 'disarmed', 'Disarmed', 'DIS', disarmed_description ), ( 'min', 'Minimum', 'MIN', minimum_description ), + ( 'center', 'Center', 'CENT', center_description ), ( 'max', 'Maximum', 'MAX', maximum_description ), ( 'failsafe', 'Failsafe', 'FAIL', failsafe_description ), ] @@ -312,6 +316,10 @@ When set to -1 (default), the value depends on the function (see {:}). standard_params[key]['default'] = -1 standard_params[key]['min'] = -1 + if key == 'center': + standard_params[key]['default'] = -1 + standard_params[key]['min'] = -1 + param = { 'description': { 'short': channel_label+' ${i} '+label+' Value', diff --git a/docs/assets/config/actuators/pwm_center_output.png b/docs/assets/config/actuators/pwm_center_output.png new file mode 100644 index 0000000000000000000000000000000000000000..ef83e96d88c7d089494ba0eb64a4e4578402604f GIT binary patch literal 114494 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�EdWHrL)ehFRZ!|N$9~KFgXw!*H8zi#E+{_ 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

hc7VuSTi?{Ilr zzY$?Woi}k1m0@w4*JFj=P;0ruUun$ebqMcKaPT*VyinW$2fKJj)@LFg_B#S)w=@7s zAi(Ck%y6s&8z~C)yl2HXVmS3mCTuU7rI;evd7!U{ru{|+aE16~%mIw_Kr*yY7Z!dq z*|RZVE!w0!v3UBP1R67PVY2@~@F+Wa?j?@h-kt+Q;$Z`t)yR3z15Mm!xH^HZN`WRr z%5XIFcRhwQ28}dh5`cq?VW@Zc8Pk+_Kz$vY&*m}6A$sK{X!HPJX+*PaQ-l+B*2j?4 zmv#eAeFV4({514F0De3QfV>EBF90?u0^nyfc`*gna3%oAibTF73V@afPznHJRZl}n z3tcFqdxu5>mZAv@YpMiiyHC%T$rb?_hM}(jk}@OE6ek)p=sg5_oX`$1jvLB;G9H5B zIMI|r?=E@>2Rw{E-e&(17zRiIPCwKd8YA-P*r`DP$n&cKd32OSgc=EhHVlaTLa&-L zM!m9V{3LrGgpu9WjbZU`-zH`U_q|$2q~$20oyXw4)n(c3=u8f@oX;tY;aALtBByZ|K$-4Z0@+bbv8j*#!i+ z4FL)O;A>zmiQ^?oYL!fkV*y+nLK6s<>-GB|TU6p+FdDW3ewdF2r@wcBvN&%8LNv&5 zxDCpZmAe1sCcNMKBLZG3hMW)Y+*Gg3|9w3Q-V1<(bxNt#;wqf!-yxfSteSCrm6%>n zi`F2_DLiYaq?s&OQ1AzGvf@e!9dv2m(Ub|52IO)M&k$}s!2RXYW_UlZ>ubb=2iolR zZZ`Jz1Ldr=p`oD#ytXN63h(3Nv+9T5KAGzI>PU&T(rI;sx2`^-_n!pCe?zDG>2H(UzpPhn4I1dg*2kIJsuEMN04d z=W%Y`!x2m8(0wBo-nqxlH!t6&cFy>K?A%6N)iSH$?@Q zvZvsMpDTfW$;I^-rU5BU;T;EW>(@P5iK~LYA6XF=OHB8*z9*|CCl7fw`>qjJ0Zm!% z5hmi;Uxz-DmZKc`jrG<`{grI}iC(!O{c$fh(UsVP)pw$F-UKS*{F*dY<`tXo^A8al zXYM@OT0Qt8D2L7F7kH740C-VZzLzjt%`2shTE(R%ft7QLv?lT=X|A6exLOBX9Gmd* z`{O2k?ak$#KA64>7d~jk9*mBw6d~tfdKF3CIQEgR>t4H1J32BxHpX`*Wx8J`#6Mm2 zD%XipEFpUEIm!dX7~}05crk{N8*n?&KD*#|7haSaAG+V?#V2eqZf;*`5M4JlQ?*q1 zbQSso%k)KGZ@DuP2h>z+T3KWT!4O82Pg$iK*F0y}^1SJ)k9y{r%2dMc3zCnqJnsqf zk4h_REjfHNkl1Rmett7&1#v&=^Opzf+FA4pCHBNwm*RBurc^!DVvR-2Gsye#(eq18 z_n!{^V5|NSx@(Ph!Q~cg6}226SJCk|rx zq3AkX2=)2ST%Q+unIs%Md}$VJXVo6cIcS-*BeddoTqmFZY8xmW1nhc0bE`iAbQ$v0L_lJNg-J3 zO2FdGkUpE+6T6J~W+$Oe%lN6OUHMK+;c~CU@zuV|Z8I4W?*U#c)`~s1_bXwA>P^}T z3>5~f%zv1oBbk;aR|MI{1om`p<7e+O-*=<=t>qItM^T$mO7E8bLheA=E%F z!UB11BVi~(m7jPQzc9TgU}4&B>~fi?HDSK1u8qZ7E07buiUpBYXWO{dLlXlRua505 zlW^3KS%&tC%h1p;ERoNYEak#=R%mL<@QIyRZT95ya(mlTVe)J1x-M($benIQ&4GEt z&zeYAh1WiP1c_&~E1ilpu(ruAx^;y&Y1MFkvW?tTL=Ci3Q^Cqu<`<`I8GjL4t5fDS zFt+cA?W?=_QeynK*7$Xo;r0l%v7)&GZ%;z=l=YLoqCB?ThM~^gWEw@@X%F%A>jC$I zplm7XtIeh@AymR9k-#;tvCA07t&Ib}C2hBi^a;QA(YJYn)~nHjc%(=yg<4=S_m+zQCsEtBz!NpR81~{Cvxi&~sNg#YX$b zZo&{JE1vNJAhA(VKu}pY!bSB_h+dEJ#J9w2y#ei0f$G9aDzA;qeKRy(8%ZTty*cSv z962Mt1%|Ki5pKMay6xIX!}!Qxrr`nJ@{jTJsZB!)LgquB++9w7X$31fzs_Ug>zX*2 z(DLh_uiR!4E1nn>Y1*OHSBU8gjhb)dJp1g&$1k4esgCSz7x)Lu|9ut6IxIWcN*kLXXAKayN|9jXN(8S9B5zUsU0bekH7@77diaC;#ZY6B# zwJFgc)#ypz?`o#wxBO*f^Cl<;7*;D$d+@nI>Zd5C$j1JF{LXzmm1pX^n}-rIu9=?|Pe&D)>0F7~v-9rJ(*4R}jAbz{|AlG~svYpnH3 zr#bH(;7aW?6HzFgnQ7-NR_iulXXt6bBsBuo9vB#KRTcz`TdJv))tg1~+k8!XDWy%|y!zjKgDMeTyif3n8x7W5SLbp&^&>nLfLEhoPLs!QxN9L=O%?0RY zPp-DJU=xq+b{M1@j|?0=?Gub)$0Prx*C~kkhz`&SW)F$4!W&Q_6=J+c8y8eCY-lrj zvU36}JD{!uY0UnD7=uNI2T4KLaaE1Kz!%+_eNC=bolG$}c_z)V|KXSzH|FR!qpD1% zh3GFO`^`A+4I=b+ZBC4162AKf!=zqG)rL6z>GfTGf0b}KrnaxE7SHXAnYJZ&>egnT z<$h;Inf3`%%|}# z8nRv*igcRJil9eAYTa4!@feA8#RL)T39YNIug`Am2=@NDg2+ssC`eggu~SP;kgE&c zH+CMqA(X0mo^s;@n4LoUN=vUIO`OuDPpxj(C^+Z*L^-5C zG~{2kv!_#@x;SdGw%YcC$Fb;28tsOLj%Rb*ss4*K6V4-NT#A@zw0_vmX9C~6Q`KlY zyQwepn7i4N67lSs?0^meNAiku9X-Dp=iRJTv{Wr73mhP%a>`qN4UjK}l% zpY<0cij3o%awg2u7X#|cO0OzYPtBHcNPT_Ag6$Ts&4vwxcFMxSLLFq%tTr!&$?h`T z6FZj&=Xj4w-0PlI7Yh*BbPmolistPNnhU=6F9m3l`Xx2bukgjhP#J4dymq zZ7#_i>AWz3bM^}irH&SU;!60@5b$-@lbx!1XoRdZHIbI+r|YZnrr~VFr}!Lwi*XNi zEl+%wZDzzjXQ_=D6usrWCrk>+DyGT*aG%mrVtG{+2T~88xWcbX*)KMPAK zJkOen`wG2}7nt09dSHNs*i{TWdCgT_*m|w=Bhj^el4^YWjSSVcQoOsc=FQI5&X3k@ za~{#Y0ppqVx8a9e&-!18Z>PxG6+n+tI-$6JLvYKXh|x}^;qH|lCE2*}0~G}cBHi-z z*ZW(${RCN8&VknTS(*lIw7f(zv?JkJV_oSF9!kaBIvNxv9*J z6&-oXt@0Iqigsvy)AmhQ+g&ukaEiIo9jAEw>g{tBH>JWmKOfQm3lRD%(*0hl`|z_Z zZsY5T=^r^8l~#WK4raB>ea?neZ56~scQmtSnIBWD>)=T+HhTi;TUxco@j6>*@LtUP zytR+wwo`rnGE9%9by#*rT!NT{bH#{9dF`yHjSVOmFFduwM>`H9sk@j z^~Sb`%bz2K>F1YOTXT(_<*TaIJqt5M(;BnbZ4HW~e{EbID>nD}RwXuS)m{eKNU2Us z?aEYpMkvja_sculc(APVrklE-LbxJJ0+lf1u!$Ha77k~P&L>}lR`Cl7`wi)Oy7}k# zd3kl3*ZfJ4CwmDUSWxUsUbe=L--G~Mq;!)LOIDbfS7 z=&yY1kGTo*4lf0y`(nRt<>$;Ka83KDk}}%WiiYpKSV%ZyAwqAq6??bVe{rQ9e>IcM zLby?Q8Y}aMI%AR>zo{tSP3u*cU-}F2$<$$+*n={*H4gO$1$$cLy%oZjO5?P?N71I2^hmO2HW>1f|cd%^mdM@W>MqTI@t&Cl?uQM2ybBUf?ZxPJ8v)^K0 znoHyn>YrN$(>8bsqVEQzY8_PqOKh^hLS!?A-wY>aOR0?{&KEnD`0|(M6`#90?%)453*Y=Y!=k9>bwXyT z?We0nio>&k*20Ae55HOw%zfKfZL&0r;qxw@9g8(C5i@g%J(p-_HrGF)zo|aO_8g%~ z{KdVOJ``7|NsJwL4iBWc2&|bAGKvc)rPv+@tVKZ)CG43mp(U_%Gc@gkSi=ng>`;0}Ew%n&@ zp7&?k=a$ZR_Gtv=^>xk`?S+Ep1D3PB#>a-&qQ1TmyZl8-Ryi$C-vG- zPlbTs@F$Mf20h12Cf*1g%-#>79U@Pj2qYMt`zs#dHR0GTgzMY);C^Y)5FyqIw=>#H%6n z)#6Bp&aoquCL6z%U=zQzSbkOuba0GaKHFmpTr;Hhk_b1dc&B z(w^+%+@{!H#76XNPA%PW?b~lAY*GTsbz;c*Cw=-*^NU)}!teb=kHY>e)5(z#!em>f zd^o@MxXlE1?!;^i8EaD>!v9^+x4?ve;k_FHMTgp%{GU32Ad)IPaHKklBsQT>;D4HV&Q=R literal 0 HcmV?d00001 diff --git a/docs/assets/config/actuators/servo_pwm_linear.png b/docs/assets/config/actuators/servo_pwm_linear.png new file mode 100644 index 0000000000000000000000000000000000000000..176beab77ecc96339bdab25e48a78502cd4d58af GIT binary patch literal 29247 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

3~Ysd6`qRJE6j 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 literal 0 HcmV?d00001 diff --git a/docs/en/config/actuators.md b/docs/en/config/actuators.md index 3eec8f2dd2..56af61c737 100644 --- a/docs/en/config/actuators.md +++ b/docs/en/config/actuators.md @@ -159,7 +159,7 @@ The fields are: - `Yaw Torque`: Effectiveness of actuator around yaw axis (normalised: -1 to 1). [Generally you should use the default actuator value](#actuator-roll-pitch-and-yaw-scaling). - `Trim`: An offset added to the actuator so that it is centered without input. - This might be determined by trial and error. + This might be determined by trial and error. Prefer using the improved `PWM_CENT` instead: [PWM control surfaces](./actuators.md#pwm-control-surfaces-that-move-both-directions-about-a-neutral-point) - (Advanced) `Slew Rate`: Limits the minimum time in which the motor/servo signal is allowed to pass through its full output range, in seconds. - The setting limits the rate of change of an actuator (if not specified then no rate limit is applied). It is intended for actuators that may be damaged or cause flight disturbance if they move too fast — such as the tilting actuators on a tiltrotor VTOL vehicle, or fast moving flaps, respectively. @@ -535,12 +535,40 @@ If you're using PWM servos, PWM50 is far more common. If a high rate servo is _really_ needed, DShot offers better value. ::: -#### Control surfaces that move both directions about a neutral point +##### PWM: Control surfaces that move both directions about a neutral point + +To facilitate setting the neutral point of the servos, a bilinear curve function can be defined using the following parameters `PWM_MAIM_CENTx` / `PWM_AUX_CENTx` for each servo. This allows for unequal deflections in the positive and negative direction: +![Asymetric Servo Deflections](../../assets/config/actuators/servo_pwm_center.png) + +To set this up: + +1. Set all surface `Trim` to `0.00` for all surfaces: + + ![PWM Trimming](../../assets/config/actuators/control_surface_trim.png) + +1. Set the `PWM_MAIN_CENTx` / `PWM_AUX_CENTx` value so that the surface will stay at the neutral (aligned with airfoil) position. +This is usually around `1500` for PWM servos (near the center of the servo range). + +![Control Surface Trimming](../../assets/config/actuators/pwm_center_output.png) + +2. Gradualy increase the `Maximum` for each servo until the desired deflection is reached. Check the deflection with a remote manual mode while [`COM_PREARM_MODE`](../advanced_config/parameter_reference.md#COM_PREARM_MODE) is set to `Always` or use the sliders. +3. Gradualy decrease the `Minimum` for each servo, until the desired deflection is reached. +4. Set `Disarmed` value to the desired value. It is usually desirable to have it the same as the `Center` value. + +::: info +If you want to retain the linear behaviour of the servo after setting the `Center`, make sure to adjust the `Minimum` or `Maximum`, such that both invervals (`min` to `cent` & `cent` to `max`) are equally lare. + +![Linear PWM Adjustment](../../assets/config/actuators/servo_pwm_linear.png) +::: + +#### Non-PWM: Control surfaces that move both directions about a neutral point Control surfaces that move either direction around a neutral point include: ailerons, elevons, V-tails, A-tails, and rudders. To set these up: +0. Set all `PWM_MAIN_CENTx` and `PWM_AUX_CENTx` to default (-1), or trimming will not be possible. + 1. Set the `Disarmed` value so that the surfaces will stay at neutral position when disarmed. This is usually around `1500` for PWM servos (near the centre of the servo range). @@ -559,14 +587,20 @@ To set these up: 3. Move the slider again to the middle and check if the Control Surfaces are aligned in the neutral position of the wing. - If it is not aligned, you can set the **Trim** value for the control surface. - ::: info - This is done in the `Trim` setting of the Geometry panel, usually by "trial and error". - ![Control Surface Trimming](../../assets/config/actuators/control_surface_trim.png) - ::: + ::: info + This is done in the `Trim` setting of the Geometry panel, usually by "trial and error". + ![Control Surface Trimming](../../assets/config/actuators/control_surface_trim.png) + ::: - After setting the trim for a control surface, move its slider away from the centre, release, and then back into disarmed (middle) position. Confirm that surface is in the neutral position. + + +::: tip +If any servo has a `PWM_MAIN_CENTx` or `PWM_AUX_CENTx` not set to default (-1), the system will automatically remove `Trim` from all surfaces. This is done to prevent mixing of old and new trimming tools. +::: + ::: info Another way to test without using the sliders would be to set the [`COM_PREARM_MODE`](../advanced_config/parameter_reference.md#COM_PREARM_MODE) parameter to `Always`: @@ -575,6 +609,8 @@ Another way to test without using the sliders would be to set the [`COM_PREARM_M ::: + + #### Control surfaces that move from neutral to full deflection Control surfaces that move only one direction from neutral include: airbrakes, spoilers, and flaps. @@ -585,6 +621,7 @@ For a flap, that is when the flap is fully retracted and flush with the wing. One approach for setting these up is: +0. Set all `PWM_MAIN_CENTx` and `PWM_AUX_CENTx` to default (-1), or trimming will not be possible. 1. Set values `Disarmed` to `1500`, `Min` to `1200`, `Max` to `1700` so that the values are around the centre of the servo range. 2. Move the corresponding slider up and check the control moves and that it is extending (moving away from the disarmed position). If not, click on the `Rev Range` checkbox to reverse the range. @@ -594,6 +631,7 @@ One approach for setting these up is: - If the value was increased towards `Max`, then set `Max` to match `Disarmed`. 4. The value that you did _not_ set to match `Disarmed` controls the maximum amount that the control surface can extend. Set the slider to the top of the control, then change the value (`Max` or `Min`) so that the control surface is fully extended when the slider is at top. +5. (Only PWM servos) Set the `Center` value to the middle between `Min` and `Max`. ::: info Special note for flaps In some vehicle builds, flaps may be configured such that both flaps are controlled from a single output. @@ -631,6 +669,9 @@ For each of the tilt servos: - Standard VTOL : Motors defined as multicopter motors will be turned off - Tiltrotors : Motors that have no associated tilt servo will turn off - Tailsitters do not turn off any motors in fixed-wing flight +- The following formula can be used to migrate from surface trim to PWM trim: + + `PWM_MAIN_CENTx = ((PWM_MAX - PWM_MIN) / 2) * CA_SV_CSx_TRIM + PWM_MIN + ((PWM_MAX - PWM_MIN) / 2)` ### Reversing Motors diff --git a/src/drivers/pwm_out/module.yaml b/src/drivers/pwm_out/module.yaml index 8c2049cceb..2c5e54e83d 100644 --- a/src/drivers/pwm_out/module.yaml +++ b/src/drivers/pwm_out/module.yaml @@ -8,6 +8,7 @@ actuator_output: disarmed: { min: 800, max: 2200, default: 1000 } min: { min: 800, max: 1400, default: 1000 } max: { min: 1600, max: 2200, default: 2000 } + center: { min: 800, max: 2200} failsafe: { min: 800, max: 2200 } extra_function_groups: [ pwm_fmu ] pwm_timer_param: diff --git a/src/lib/mixer_module/mixer_module.cpp b/src/lib/mixer_module/mixer_module.cpp index b038268d84..fe1b818f86 100644 --- a/src/lib/mixer_module/mixer_module.cpp +++ b/src/lib/mixer_module/mixer_module.cpp @@ -120,6 +120,8 @@ void MixingOutput::initParamHandles(const uint8_t instance_start) _param_handles[i].disarmed = param_find(param_name); snprintf(param_name, sizeof(param_name), "%s_%s%d", _param_prefix, "MIN", i + instance_start); _param_handles[i].min = param_find(param_name); + snprintf(param_name, sizeof(param_name), "%s_%s%d", _param_prefix, "CENT", i + instance_start); + _param_handles[i].center = param_find(param_name); snprintf(param_name, sizeof(param_name), "%s_%s%d", _param_prefix, "MAX", i + instance_start); _param_handles[i].max = param_find(param_name); snprintf(param_name, sizeof(param_name), "%s_%s%d", _param_prefix, "FAIL", i + instance_start); @@ -142,9 +144,9 @@ void MixingOutput::printStatus() const PX4_INFO_RAW("Channel Configuration:\n"); for (unsigned i = 0; i < _max_num_outputs; i++) { - PX4_INFO_RAW("Channel %i: func: %3i, value: %i, failsafe: %d, disarmed: %d, min: %d, max: %d\n", i, + PX4_INFO_RAW("Channel %i: func: %3i, value: %i, failsafe: %d, disarmed: %d, min: %d, max: %d, center: %d\n", i, (int)_function_assignment[i], _current_output_value[i], - actualFailsafeValue(i), _disarmed_value[i], _min_value[i], _max_value[i]); + actualFailsafeValue(i), _disarmed_value[i], _min_value[i], _max_value[i], _center_value[i]); } } @@ -173,6 +175,10 @@ void MixingOutput::updateParams() _min_value[i] = val; } + if (_param_handles[i].center != PARAM_INVALID && param_get(_param_handles[i].center, &val) == 0) { + _center_value[i] = val; + } + if (_param_handles[i].max != PARAM_INVALID && param_get(_param_handles[i].max, &val) == 0) { _max_value[i] = val; } @@ -183,6 +189,7 @@ void MixingOutput::updateParams() _max_value[i] = tmp; } + if (_param_handles[i].failsafe != PARAM_INVALID && param_get(_param_handles[i].failsafe, &val) == 0) { _failsafe_value[i] = val; } @@ -372,6 +379,14 @@ void MixingOutput::setAllMinValues(uint16_t value) } } +void MixingOutput::setAllCenterValues(uint16_t value) +{ + for (unsigned i = 0; i < MAX_ACTUATORS; i++) { + _param_handles[i].center = PARAM_INVALID; + _center_value[i] = value; + } +} + void MixingOutput::setAllMaxValues(uint16_t value) { for (unsigned i = 0; i < MAX_ACTUATORS; i++) { @@ -528,10 +543,34 @@ uint16_t MixingOutput::output_limit_calc_single(int i, float value) const value = -1.f * value; } - const float output = math::interpolate(value, -1.f, 1.f, - static_cast(_min_value[i]), static_cast(_max_value[i])); + float output = _disarmed_value[i]; + + if (_function_assignment[i] >= OutputFunction::Servo1 + && _function_assignment[i] <= OutputFunction::ServoMax + && _param_handles[i].center != PARAM_INVALID + && _center_value[i] >= 800 + && _center_value[i] <= 2200) { + + /* bi-linear interpolation */ + if (value < 0.0f) { + output = math::interpolate(value, -1.f, 0.0f, + static_cast(_min_value[i]), static_cast(_center_value[i])); + + } else { + output = math::interpolate(value, 0.0f, 1.0f, + static_cast(_center_value[i]), static_cast(_max_value[i])); + } + + } + + // Everything except servos, or if center is not set + else { + output = math::interpolate(value, -1.f, 1.f, + static_cast(_min_value[i]), static_cast(_max_value[i])); + } return math::constrain(lroundf(output), 0L, static_cast(UINT16_MAX)); + } void diff --git a/src/lib/mixer_module/mixer_module.hpp b/src/lib/mixer_module/mixer_module.hpp index 7ed8ed8a73..4fdc0f2904 100644 --- a/src/lib/mixer_module/mixer_module.hpp +++ b/src/lib/mixer_module/mixer_module.hpp @@ -167,16 +167,19 @@ public: void setAllFailsafeValues(uint16_t value); void setAllDisarmedValues(uint16_t value); void setAllMinValues(uint16_t value); + void setAllCenterValues(uint16_t value); void setAllMaxValues(uint16_t value); /** Disarmed values: disarmedValue < minValue needs to hold */ uint16_t &disarmedValue(int index) { return _disarmed_value[index]; } uint16_t &minValue(int index) { return _min_value[index]; } + uint16_t ¢erValue(int index) { return _center_value[index]; } uint16_t &maxValue(int index) { return _max_value[index]; } param_t functionParamHandle(int index) const { return _param_handles[index].function; } param_t disarmedParamHandle(int index) const { return _param_handles[index].disarmed; } param_t minParamHandle(int index) const { return _param_handles[index].min; } + param_t centerParamHandle(int index) const { return _param_handles[index].center; } param_t maxParamHandle(int index) const { return _param_handles[index].max; } /** @@ -228,6 +231,7 @@ private: param_t function{PARAM_INVALID}; param_t disarmed{PARAM_INVALID}; param_t min{PARAM_INVALID}; + param_t center{PARAM_INVALID}; param_t max{PARAM_INVALID}; param_t failsafe{PARAM_INVALID}; }; @@ -240,6 +244,7 @@ private: uint16_t _failsafe_value[MAX_ACTUATORS] {}; uint16_t _disarmed_value[MAX_ACTUATORS] {}; uint16_t _min_value[MAX_ACTUATORS] {}; + uint16_t _center_value[MAX_ACTUATORS] {}; uint16_t _max_value[MAX_ACTUATORS] {}; uint16_t _current_output_value[MAX_ACTUATORS] {}; ///< current output values (reordered) uint16_t _reverse_output_mask{0}; ///< reverses the interval [min, max] -> [max, min], NOT motor direction diff --git a/src/lib/mixer_module/mixer_module_tests.cpp b/src/lib/mixer_module/mixer_module_tests.cpp index 7db9a8c513..7f3a6feede 100644 --- a/src/lib/mixer_module/mixer_module_tests.cpp +++ b/src/lib/mixer_module/mixer_module_tests.cpp @@ -54,6 +54,7 @@ static constexpr int MAX_NUM_OUTPUTS = 8; static constexpr int DISARMED_VALUE = 900; static constexpr int FAILSAFE_VALUE = 800; static constexpr int MIN_VALUE = 1000; +static constexpr int CENTER_VALUE = 1500; static constexpr int MAX_VALUE = 2000; class MixerModuleTest : public ::testing::Test @@ -188,6 +189,7 @@ TEST_F(MixerModuleTest, basic) mixing_output.setAllDisarmedValues(DISARMED_VALUE); mixing_output.setAllFailsafeValues(FAILSAFE_VALUE); mixing_output.setAllMinValues(MIN_VALUE); + mixing_output.setAllCenterValues(CENTER_VALUE); mixing_output.setAllMaxValues(MAX_VALUE); EXPECT_EQ(test_module.num_updates, 0); @@ -281,6 +283,7 @@ TEST_F(MixerModuleTest, arming) mixing_output.setAllDisarmedValues(DISARMED_VALUE); mixing_output.setAllFailsafeValues(FAILSAFE_VALUE); mixing_output.setAllMinValues(MIN_VALUE); + mixing_output.setAllCenterValues(CENTER_VALUE); mixing_output.setAllMaxValues(MAX_VALUE); test_module.sendMotors({1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f}); @@ -488,6 +491,7 @@ TEST_F(MixerModuleTest, OutputLimitCalcSingle) mixing_output.setAllMinValues(MIN_VALUE); // default range [1000,2000] mixing_output.setAllMaxValues(MAX_VALUE); + mixing_output.setAllCenterValues(CENTER_VALUE); // Set center to middle value EXPECT_EQ(mixing_output.output_limit_calc_single(0, -1.f), 1000); // In range EXPECT_EQ(mixing_output.output_limit_calc_single(0, -.5f), 1250); EXPECT_EQ(mixing_output.output_limit_calc_single(0, 0.f), 1500); @@ -503,6 +507,7 @@ TEST_F(MixerModuleTest, OutputLimitCalcSingle) mixing_output.setAllMinValues(0); // lower range [0,20] mixing_output.setAllMaxValues(20); + mixing_output.setAllCenterValues(10); // Set center to middle value EXPECT_EQ(mixing_output.output_limit_calc_single(0, -1.f), 0); // In range EXPECT_EQ(mixing_output.output_limit_calc_single(0, -.5f), 5); EXPECT_EQ(mixing_output.output_limit_calc_single(0, 0.f), 10); @@ -518,6 +523,7 @@ TEST_F(MixerModuleTest, OutputLimitCalcSingle) mixing_output.setAllMinValues(20); // inverted range [20,0] mixing_output.setAllMaxValues(0); + mixing_output.setAllCenterValues(10); // Set center to middle value EXPECT_EQ(mixing_output.output_limit_calc_single(0, -1.f), 20); // In range EXPECT_EQ(mixing_output.output_limit_calc_single(0, -.5f), 15); EXPECT_EQ(mixing_output.output_limit_calc_single(0, 0.f), 10); diff --git a/src/modules/control_allocator/VehicleActuatorEffectiveness/ActuatorEffectivenessControlSurfaces.cpp b/src/modules/control_allocator/VehicleActuatorEffectiveness/ActuatorEffectivenessControlSurfaces.cpp index 46fea5f33e..f6e216b855 100644 --- a/src/modules/control_allocator/VehicleActuatorEffectiveness/ActuatorEffectivenessControlSurfaces.cpp +++ b/src/modules/control_allocator/VehicleActuatorEffectiveness/ActuatorEffectivenessControlSurfaces.cpp @@ -32,6 +32,7 @@ ****************************************************************************/ #include +#include #include "ActuatorEffectivenessControlSurfaces.hpp" @@ -74,6 +75,40 @@ void ActuatorEffectivenessControlSurfaces::updateParams() return; } + // Helper to check if a PWM center parameter is enabled, and clamp it to valid range + auto check_pwm_center = [](const char *prefix, int channel) -> bool { + char param_name[20]; + snprintf(param_name, sizeof(param_name), "%s_CENT%d", prefix, channel); + param_t param = param_find(param_name); + + if (param != PARAM_INVALID) + { + int32_t value; + + if (param_get(param, &value) == PX4_OK && value != -1) { + // Clamp PWM center to valid range [800, 2200] + if (value < 800 || value > 2200) { + int32_t clamped = (value < 800) ? 800 : 2200; + PX4_WARN("%s_CENT%d (%d) out of range, clamping to %d", prefix, channel, (int)value, (int)clamped); + param_set(param, &clamped); + } + + return true; + } + } + + return false; + }; + + // Check if any PWM_MAIN or PWM_AUX center is configured + bool pwm_center_set = false; + + for (int i = 1; i <= 8; i++) { + if (check_pwm_center("PWM_MAIN", i) || check_pwm_center("PWM_AUX", i)) { + pwm_center_set = true; + } + } + for (int i = 0; i < _count; i++) { param_get(_param_handles[i].type, (int32_t *)&_params[i].type); @@ -84,6 +119,20 @@ void ActuatorEffectivenessControlSurfaces::updateParams() } param_get(_param_handles[i].trim, &_params[i].trim); + + // If PWM center is set and CA_SV_CS trim is non-zero, warn and reset to 0 + if (pwm_center_set && fabsf(_params[i].trim) > FLT_EPSILON) { + /* EVENT + * @description Display warning in GCS when TRIM settings were present and now CENTER are set. + */ + events::send(events::ID("control_surfaces_reset_trim"), events::Log::Warning, + "CA_SV_CS{1}_TRIM ({2}) is reset to 0 as PWM CENTER is used", i, _params[i].trim); + + _params[i].trim = 0.0f; + // Update the parameter storage + param_set(_param_handles[i].trim, &_params[i].trim); + } + param_get(_param_handles[i].scale_flap, &_params[i].scale_flap); param_get(_param_handles[i].scale_spoiler, &_params[i].scale_spoiler); diff --git a/src/modules/control_allocator/module.yaml b/src/modules/control_allocator/module.yaml index 99d0d5ed85..dd36a2d070 100644 --- a/src/modules/control_allocator/module.yaml +++ b/src/modules/control_allocator/module.yaml @@ -312,7 +312,11 @@ parameters: CA_SV_CS${i}_TRIM: description: short: Control Surface ${i} trim - long: Can be used to add an offset to the servo control. + long: | + Can be used to add an offset to the servo control. + + NOTE: Do not use for PWM servos. Use the PWM CENTER parameters instead (e.g., PWM_MAIN_CENT, PWM_AUX_CENT) instead. + This parameter can only be set if all PWM Center parameters are set to default. type: float decimal: 2 min: -1.0 diff --git a/validation/module_schema.yaml b/validation/module_schema.yaml index 1e1baa1037..1f17bf5fb2 100644 --- a/validation/module_schema.yaml +++ b/validation/module_schema.yaml @@ -352,6 +352,28 @@ actuator_output: # ui only shows the param if this condition is true type: string regex: *condition_regex + center: + type: dict + schema: + min: + # Minimum center value + type: integer + min: 0 + max: 65536 + max: + # Maximum center value + type: integer + min: 0 + max: 65536 + default: + # Default center value + type: integer + min: 0 + max: 65536 + show_if: + # ui only shows the param if this condition is true + type: string + regex: *condition_regex failsafe: type: dict schema: