diff --git a/docs/assets/flight_modes/fw_runway_takeoff_wheel_steering.svg b/docs/assets/flight_modes/fw_runway_takeoff_wheel_steering.svg new file mode 100644 index 00000000000..3cbf6537b96 --- /dev/null +++ b/docs/assets/flight_modes/fw_runway_takeoff_wheel_steering.svg @@ -0,0 +1,53 @@ + + + + + 1 — Centered and aligned: the ground roll follows the runway + + + Runway + + + Runway centerline + + + + Takeoff waypoint + + + + Start + + + + + Yaw setpoint = bearing to the takeoff waypoint + + + 2 — Offset from the centerline: the ground roll cuts across the runway + + + Runway + + + Runway centerline + + + + Takeoff waypoint + + + + Start, off the + centerline + + + + + runway direction + + + + + Ground roll: straight line towards the takeoff waypoint + diff --git a/docs/en/flight_modes_fw/takeoff.md b/docs/en/flight_modes_fw/takeoff.md index fbadf5cbae9..87717c29268 100644 --- a/docs/en/flight_modes_fw/takeoff.md +++ b/docs/en/flight_modes_fw/takeoff.md @@ -135,9 +135,38 @@ The _runway takeoff mode_ has the following phases: 2. **Clamped to runway**: Pitch fixed, no roll and takeoff path controlled until the rotation airspeed ([RWTO_ROT_AIRSPD](../advanced_config/parameter_reference.md#RWTO_ROT_AIRSPD)) is reached. The operator is able to nudge the vehicle left/right via yaw stick. 3. **Climbout**: Increase pitch setpoint and climb to takeoff altitude. To prevent wingstrikes, the controller will keep the roll setpoint locked to 0 when close to the ground, and then gradually allow more roll while climbing. It is based on the vehicle geometry as configured in [FW_WING_SPAN](#FW_WING_SPAN) and [FW_WING_HEIGHT](#FW_WING_HEIGHT). +### Wheel Controller {#wheel_controller} + +The wheel controller steers the vehicle on the ground using the steerable nose/tail wheel. +It is enabled with [FW_W_EN](#FW_W_EN) and only runs in automatic modes during runway takeoff and during the landing rollout. +Whenever it is not active (in all manual modes, or if it is disabled), the yaw stick is mapped directly to the wheel. + +The controller is cascaded: + +1. **Heading controller**: The heading (yaw) error is converted into a yaw rate setpoint with a fixed time constant of 0.1s, limited to [FW_W_RMAX](#FW_W_RMAX). +2. **Rate controller**: A P-I-FF controller ([FW_WR_P](#FW_WR_P), [FW_WR_I](#FW_WR_I), [FW_WR_FF](#FW_WR_FF), integrator limited by [FW_WR_IMAX](#FW_WR_IMAX)) turns the yaw rate setpoint into a normalized wheel steering command in the range [-1, 1]. + +The heading setpoint during the ground roll is the bearing from the takeoff position to the takeoff waypoint, so the nose is kept aligned with the intended runway direction. +If no navigation reference is available (takeoff without takeoff waypoint), and during the landing rollout, the controller instead holds the heading that was captured at the moment the wheel steering engaged. + +![Wheel steering heading setpoint during the ground roll](../../assets/flight_modes/fw_runway_takeoff_wheel_steering.svg) + +Operator yaw stick input is added on top of the controller output to "nudge" the vehicle (enabled with [RWTO_NUDGE](#RWTO_NUDGE) for takeoff, and [FW_LND_NUDGE](../advanced_config/parameter_reference.md#FW_LND_NUDGE) for landing). + ::: info -For a smooth takeoff, the runway wheel controller possibly needs to be tuned. -It consists of a rate controller (P-I-FF-controller with the parameters [FW_WR_P](../advanced_config/parameter_reference.md#FW_WR_P), [FW_WR_I](../advanced_config/parameter_reference.md#FW_WR_I), [FW_WR_FF](../advanced_config/parameter_reference.md#FW_WR_FF)). +The gains are scaled with groundspeed (using [FW_AIRSPD_STALL](../advanced_config/parameter_reference.md#FW_AIRSPD_STALL) as the reference speed) so that the steering becomes less aggressive as the vehicle accelerates. +This means the controller should be tuned at low speed, around stall airspeed. +::: + +For a smooth takeoff the wheel controller usually needs to be tuned: + +1. Start with [FW_WR_P](#FW_WR_P) and [FW_WR_FF](#FW_WR_FF) only (set [FW_WR_I](#FW_WR_I) to 0) and taxi/roll the vehicle in _Mission mode_ with active Takeoff waypoint item at low speed. +2. Increase the gains until the vehicle tracks the runway heading without noticeable oscillation of the nose. +3. Add [FW_WR_I](#FW_WR_I) to remove a remaining constant heading offset (e.g. caused by wheel misalignment or crosswind). + +::: warning +Excessive gains lead to oscillations of the nose during the ground roll, which can quickly become dangerous at higher groundspeed. +Always test with increasing speed step by step. ::: ### Parameters (Runway Takeoff) @@ -157,6 +186,19 @@ Runway takeoff is affected by the following parameters: | [FW_WING_SPAN](../advanced_config/parameter_reference.md#FW_WING_SPAN) | The wingspan of the vehicle. Used to prevent wingstrikes. | | [FW_WING_HEIGHT](../advanced_config/parameter_reference.md#FW_WING_HEIGHT) | The height of the wings above ground (ground clearance). Used to prevent wingstrikes. | +### Parameters (Wheel Controller) + +The [wheel controller](#wheel_controller) is affected by the following parameters: + +| Parameter | Description | +| ----------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | +| [FW_W_EN](#FW_W_EN) | Enable wheel controller | +| [FW_W_RMAX](../advanced_config/parameter_reference.md#FW_W_RMAX) | Maximum yaw rate setpoint the heading controller outputs | +| [FW_WR_P](../advanced_config/parameter_reference.md#FW_WR_P) | Yaw rate controller proportional gain | +| [FW_WR_I](../advanced_config/parameter_reference.md#FW_WR_I) | Yaw rate controller integrator gain (trims a constant heading error) | +| [FW_WR_IMAX](../advanced_config/parameter_reference.md#FW_WR_IMAX) | Yaw rate controller integrator limit | +| [FW_WR_FF](../advanced_config/parameter_reference.md#FW_WR_FF) | Yaw rate controller feed forward gain | + ## See Also - [Takeoff Mode (MC)](../flight_modes_mc/takeoff.md)