Actuator page tweaks (#26004)
Some checks failed
Build all targets / Scan for Board Targets (push) Has been cancelled
Build all targets / Build [${{ matrix.runner }}][${{ matrix.group }}] (push) Has been cancelled
Build all targets / Upload Artifacts (push) Has been cancelled
Checks / build (NO_NINJA_BUILD=1 px4_fmu-v5_default) (push) Has been cancelled
Checks / build (NO_NINJA_BUILD=1 px4_sitl_default) (push) Has been cancelled
Checks / build (check_format) (push) Has been cancelled
Checks / build (check_newlines) (push) Has been cancelled
Checks / build (module_documentation) (push) Has been cancelled
Checks / build (px4_fmu-v2_default stack_check) (push) Has been cancelled
Checks / build (px4_sitl_allyes) (push) Has been cancelled
Checks / build (shellcheck_all) (push) Has been cancelled
Checks / build (tests) (push) Has been cancelled
Checks / build (tests_coverage) (push) Has been cancelled
Checks / build (validate_module_configs) (push) Has been cancelled
Clang Tidy / build (push) Has been cancelled
MacOS build / build (px4_fmu-v5_default) (push) Has been cancelled
MacOS build / build (px4_sitl) (push) Has been cancelled
Ubuntu environment build / Build and Test (ubuntu:22.04) (push) Has been cancelled
Ubuntu environment build / Build and Test (ubuntu:24.04) (push) Has been cancelled
Container build / Set Tags and Variables (push) Has been cancelled
Container build / Build Container (amd64) (push) Has been cancelled
Container build / Build Container (arm64) (push) Has been cancelled
Container build / Deploy To Registry (push) Has been cancelled
Docs - Crowdin - Upload Guide sources (en) / upload-to-crowdin (push) Has been cancelled
Docs - Deploy PX4 User Guide to AWS / build (push) Has been cancelled
Docs - Deploy PX4 User Guide to AWS / deploy (push) Has been cancelled
EKF Update Change Indicator / unit_tests (push) Has been cancelled
Failsafe Simulator Build / build (failsafe_web) (push) Has been cancelled
FLASH usage analysis / Analyzing px4_fmu-v5x (push) Has been cancelled
FLASH usage analysis / Analyzing px4_fmu-v6x (push) Has been cancelled
FLASH usage analysis / Publish Results (push) Has been cancelled
ITCM check / Checking nxp_mr-tropic (push) Has been cancelled
ITCM check / Checking nxp_tropic-community (push) Has been cancelled
ITCM check / Checking px4_fmu-v5x (push) Has been cancelled
ITCM check / Checking px4_fmu-v6xrt (push) Has been cancelled
MAVROS Mission Tests / build (map[mission:MC_mission_box vehicle:iris]) (push) Has been cancelled
MAVROS Offboard Tests / build (map[test_file:mavros_posix_tests_offboard_posctl.test vehicle:iris]) (push) Has been cancelled
Nuttx Target with extra env config / build (px4_fmu-v5_default) (push) Has been cancelled
Python CI Checks / build (push) Has been cancelled
ROS Integration Tests / build (push) Has been cancelled
ROS Translation Node Tests / Build and test (map[ros_version:humble ubuntu:jammy]) (push) Has been cancelled
ROS Translation Node Tests / Build and test (map[ros_version:jazzy ubuntu:noble]) (push) Has been cancelled
SITL Tests / Testing PX4 tailsitter (push) Has been cancelled
SITL Tests / Testing PX4 iris (push) Has been cancelled
SITL Tests / Testing PX4 standard_vtol (push) Has been cancelled

This commit is contained in:
Hamish Willee
2025-11-27 17:33:03 +11:00
committed by GitHub
parent 7d034d6087
commit 78ff7469ec

View File

@@ -159,7 +159,8 @@ 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. Prefer using the improved `PWM_CENT` instead: [PWM control surfaces](./actuators.md#pwm-control-surfaces-that-move-both-directions-about-a-neutral-point)
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).
- <a id="slew_rate"></a>(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.
@@ -537,26 +538,27 @@ If a high rate servo is _really_ needed, DShot offers better value.
##### 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 facilitate setting the neutral point of the servos, a bilinear curve function can be defined using the following parameters `PWM_MAIN_CENTx` / `PWM_AUX_CENTx` for each servo. This allows for unequal deflections in the positive and negative direction:
![Asymmetric 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)
![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).
2. 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)
![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.
3. Gradually 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.
4. Gradually decrease the `Minimum` for each servo, until the desired deflection is reached.
5. 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.
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 intervals (`min` to `cent` & `cent` to `max`) are equally large.
![Linear PWM Adjustment](../../assets/config/actuators/servo_pwm_linear.png)
:::
@@ -587,16 +589,13 @@ 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.
:::
@@ -609,8 +608,6 @@ 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.
@@ -671,7 +668,9 @@ For each of the tilt servos:
- 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)`
```plain
PWM_MAIN_CENTx = ((PWM_MAX - PWM_MIN) / 2) * CA_SV_CSx_TRIM + PWM_MIN + ((PWM_MAX - PWM_MIN) / 2)
```
### Reversing Motors