From e1fc31ef5b2d84148e6ac45bef918b7422e38ead Mon Sep 17 00:00:00 2001 From: b14ckyy <33039058+b14ckyy@users.noreply.github.com> Date: Tue, 25 Aug 2026 11:37:11 +0200 Subject: [PATCH 1/2] Document the fixed wing coordinated waypoint turns (INAV 10.0) INAV 10.0 replaces nav_fw_wp_turn_smoothing with nav_fw_wp_turn_mode and flies waypoint corners as predicted, coordinated turns on the aircraft's real turn radius. The docs still described the old loiter-based turn smoothing. New page: Fixed Wing Waypoint Turns. Covers the four turn modes with a diagram each, how they interact with waypoint tracking, what happens in very sharp corners and reversals, the settings, the changed meaning of nav_fw_bank_angle, the reworked loiter circles, the energy guard and the migration from turn smoothing. Deeper geometry sits in collapsible sections so the page stays readable for pilots. Existing pages: - flight-modes-navigation: turn smoothing section replaced by a summary and a link. Also corrects nav_fw_wp_tracking_accuracy, which was still described with its pre-8.0 meaning instead of a deadband in metres, and the nav_fw_bank_angle default in the settings table (35, not 45). - waypoint-missions: the turn smoothing row is now the four turn settings. - fixed-wing-autoland: approach turns are always coordinated FLY_BY corners, and nav_wp_radius no longer shapes the approach corners. Diagrams are exported from the feature's technical overview and restyled for both site themes. Co-Authored-By: Claude Opus 5 (1M context) --- .../flight-modes-navigation.mdx | 32 ++- .../fixed-wing-autoland.mdx | 11 +- .../fixed-wing-waypoint-turns.mdx | 250 ++++++++++++++++++ docs/08-mission-control/waypoint-missions.mdx | 5 +- static/img/features-adv/fw-turns/fallback.svg | 27 ++ static/img/features-adv/fw-turns/flyby.svg | 34 +++ static/img/features-adv/fw-turns/flyinto.svg | 35 +++ .../fw-turns/flyover-tracking.svg | 36 +++ static/img/features-adv/fw-turns/flyover.svg | 30 +++ 9 files changed, 441 insertions(+), 19 deletions(-) create mode 100644 docs/06-advanced-features/fixed-wing-waypoint-turns.mdx create mode 100644 static/img/features-adv/fw-turns/fallback.svg create mode 100644 static/img/features-adv/fw-turns/flyby.svg create mode 100644 static/img/features-adv/fw-turns/flyinto.svg create mode 100644 static/img/features-adv/fw-turns/flyover-tracking.svg create mode 100644 static/img/features-adv/fw-turns/flyover.svg diff --git a/docs/05-core-features/flight-modes-navigation.mdx b/docs/05-core-features/flight-modes-navigation.mdx index 7bbc040..218e0fe 100644 --- a/docs/05-core-features/flight-modes-navigation.mdx +++ b/docs/05-core-features/flight-modes-navigation.mdx @@ -88,7 +88,7 @@ Min Throttle Down Pitch | [fw_min_throttle_down_pitch](https://github.com/iNavFl Pitch to throttle ratio | [nav_fw_pitch2thr](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_pitch2thr) = 10 | Amount of throttle applied related to pitch attitude in GPS assisted modes. Throttle = nav_fw_cruise_throttle - (nav_fw_pitch2thr * pitch_angle). (notice that pitch_angle is in degrees and is negative when climbing and positive when diving, and throttle value is constrained between nav_fw_min_thr and nav_fw_max_thr) Throttle smoothing | [nav_fw_pitch2thr_smoothing](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_pitch2thr_smoothing) | How smoothly the autopilot makes pitch to throttle correction inside a deadband defined by `nav_fw_pitch2thr_threshold`. Instantaneous throttle adjustment threshold | [nav_fw_pitch2thr_threshold](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_pitch2thr_threshold) | Threshold from average pitch where momentary pitch_to_throttle correction kicks in. [decidegrees] -Max navigation bank angle | [nav_fw_bank_angle](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_bank_angle) = 45 | The maximum bank the autopilot will command. +Max navigation bank angle | [nav_fw_bank_angle](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_bank_angle) = 35 | The sustained bank angle that turn and loiter radii are planned for. From INAV 10.0 corrections may briefly exceed it, `max_angle_inclination_rll` remains the hard ceiling. Max alt hold climb rate | [nav_fw_manual_climb_rate](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_manual_climb_rate) | Maximum climb/descent rate firmware is allowed when processing pilot input for ALTHOLD control mode [cm/s] Max. navigation climb angle | [nav_fw_climb_angle](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_climb_angle) = 25 | Max positive pitch angle when climbing in GPS assisted modes, is also restrained by global [max_angle_inclination_pit](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#max_angle_inclination_pit) Max. navigation dive angle | [nav_fw_dive_angle](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_dive_angle) = 18 | Max negative pitch angle when diving in GPS assisted modes, is also restrained by global [max_angle_inclination_pit](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#max_angle_inclination_pit) @@ -265,7 +265,10 @@ The **altitude** can be adjusted via the **pitch stick** if required. Loiter direction can be selected by `fw_loiter_direction`. It can be altered in flight by the Yaw stick or by the LOITER CHANGE mode, via a switch. -**Please see other factors that will also effect the loiter radius** [below](./flight-modes-navigation.mdx#fixed-wing-waypoint-tracking-accuracy-and-turn-smoothing) +**Please see other factors that will also effect the loiter radius** [below](./flight-modes-navigation.mdx#fixed-wing-waypoint-tracking-accuracy-and-turns) + +From INAV 10.0 the configured radius is a minimum rather than a fixed value. +If the aircraft is flying too fast to hold that radius at the planned bank angle, the circle widens instead of demanding a bank it cannot fly, see [Fixed Wing Waypoint Turns](../06-advanced-features/fixed-wing-waypoint-turns.mdx#loiter-and-position-hold-circles). ### MC Braking Mode - POSHOLD modifier @@ -392,16 +395,19 @@ There is an additional [[wiki page further describing way point missions, tools The [MSP navigation message protocol documentation](../06-advanced-features/msp-navigation-messages.mdx) describes optional parameters affecting WP behaviour. -### Fixed Wing Waypoint Tracking Accuracy and Turn Smoothing -Waypoint tracking accuracy forces the craft to quickly head toward and track along the waypoint course line as closely as possible. -2 settings control the alignment behaviour. [nav_fw_wp_tracking_accuracy](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_tracking_accuracy) adjusts the stability of the alignment. Higher values dampen the response reducing possible overshoot and oscillation. [nav_fw_wp_tracking_max_angle](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_tracking_max_angle) +### Fixed Wing Waypoint Tracking Accuracy and Turns +Waypoint tracking accuracy makes the craft fly along the course line between two waypoints instead of simply heading toward the next one. +2 settings control the alignment behaviour. [nav_fw_wp_tracking_accuracy](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_tracking_accuracy) sets the deadband distance from the course line in metres. Tracking is not actively controlled within the deadband, so larger values give smoother flight adjustments but less accurate tracking. A 2 m deadband works well in most cases and 0 disables tracking entirely. [nav_fw_wp_tracking_max_angle](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_tracking_max_angle) sets the maximum alignment convergence angle to the waypoint course line (see below). This is the maximum angle allowed during alignment and in reality will only be acheived when some distance away from the course line with the angle reducing as the craft gets closer to alignment. Lower values result in smoother alignment with the course line but a greater distance along the course line will be required until this is achieved. - -Turn Smoothing helps to smooth turns during WP missions by switching to a loiter turn at waypoints with the turn initiated slightly before the waypoint is actually reached. This helps to avoid the overshoot often seen on tighter turns. The [nav_fw_wp_turn_smoothing](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_turn_smoothing) setting provides 2 options as shown below. -(Available from INAV 6.0) +From INAV 10.0 the turns at the waypoints themselves are flown by the coordinated turn coordinator, selected with [nav_fw_wp_turn_mode](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_turn_mode). +It works out the turn radius the plane actually needs from its current speed and bank angle and begins the turn early enough to roll out aligned with the next leg. +Three coordinated modes are available — cut the corner, fly over the waypoint, or cross it already aligned with the outbound leg — plus `DIRECT` for the pre-10.0 behaviour. +Waypoint tracking also changes what those turns aim for. + +See [Fixed Wing Waypoint Turns](../06-advanced-features/fixed-wing-waypoint-turns.mdx) for the full description, including which mode to pick and how to tune it. -![Wapoint turn smoothing](/img/features-core/nav-wp-turn-smoothing.png) +(Waypoint tracking available from INAV 6.0, coordinated turn modes from INAV 10.0) :::note Besides the waypoint _track angle_ and _accuracy_ settings, there are other setting that will influence the turn accuracy of a fixedwing aircraft in a Waypoint mission, RTH Trackback or Loiter. @@ -409,10 +415,10 @@ It may also be beneficial to adjust these setting for windy conditions or for fl These setting can be found in the _Advanced Tuning Tab_ or the _CLI_. ::: -* [nav_wp_radius](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_wp_radius) - A lower value can be beneficial, however a value around 600 (6m) will allow the plane to commence the turn earlier on a tail wind leg, with less likelihood of it being pushed past or overshooting the turn. -* [nav_fw_bank_angle](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_bank_angle) - A higher bank angle will allow a sharper turn. -This helps the plane pull through the corner faster. -Practical responsive values are between 45° to 55°. +* [nav_wp_radius](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_wp_radius) - Defines how close the craft has to get before a waypoint counts as reached. With the coordinated turn modes it no longer decides when a turn begins, that comes from the turn geometry, but a value that is too large still lets the craft move on to the next leg early. +* [nav_fw_bank_angle](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_bank_angle) - The sustained bank that all turn and loiter radii are planned for, so a higher value gives tighter turns. +From INAV 10.0 this is a planning target rather than a hard limit, see [Fixed Wing Waypoint Turns](../06-advanced-features/fixed-wing-waypoint-turns.mdx#what-nav_fw_bank_angle-means-now). +Set it to the bank your plane can hold comfortably and continuously. * [nav_fw_control_smoothness](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_control_smoothness) - Lower values can produce a more abrupt banking motion, but will also allow the plane to react faster to navigation, course, and heading commands. * [nav_use_fw_yaw_control](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_use_fw_yaw_control) - If your plane has a form of yaw control **e.g. Rudder or Differential Thrust**, this setting allows the plane to yaw as well as bank when making a turn. A lower `nav_fw_bank_angle` (35°) should be used, for a flatter turn. diff --git a/docs/06-advanced-features/fixed-wing-autoland.mdx b/docs/06-advanced-features/fixed-wing-autoland.mdx index bd2e77b..34ace1f 100644 --- a/docs/06-advanced-features/fixed-wing-autoland.mdx +++ b/docs/06-advanced-features/fixed-wing-autoland.mdx @@ -23,6 +23,10 @@ This enables up to 4 different approach directions, based on the landing site an 1. Flare: Only if a LIDAR/Rangefinder sensor is present: the motor remains switched off and the pitch angle of "Flare Pitch" is held 1. Landing: As soon as INAV has detected the landing, it is automatically disarmed, see setting `nav_disarm_on_landing`. +From INAV 10.0 all turns between the approach legs are flown as coordinated FLY_BY corners. +The turn is anticipated from the aircraft's actual turn radius, so the plane rolls out already aligned with the next leg. +This applies during the landing approach whatever [nav_fw_wp_turn_mode](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_turn_mode) is set to, see [Fixed Wing Waypoint Turns](./fixed-wing-waypoint-turns.mdx). + To activate the automatic landing, the parameter `nav_rth_allow_landing` must be set to `ALWAYS` or `FAILSAFE`. :::warning @@ -118,11 +122,8 @@ Wind can intensively alter the final landing heading. Make sure your plane maintains Ground or Airspeed when climbing in any navigation mode. The Craft should not get slower and not speed ub significantly during a navigation climb, if P2T is tuned properly. -* `nav_wp_radius`: This parameter might be too high if you have set up your craft with INAV 6 or INAV 7. -With a too high value, the turning points for the Crosswind-Leg and Final Approach are hit too early and make it difficult for the plane to align to the runway or cut short the approach. -Make sure this parameter is not set greater than 1000 (cm). -The better your craft and navigation system is tuned, the lower this value can be. -We recommend to start with 1000 for flying wings and 800 for a Plane with Tail. +* `nav_wp_radius`: From INAV 10.0 the turning points for the Crosswind-Leg and Final Approach are calculated from the aircraft's own coordinated turn radius, so this parameter no longer shapes the approach corners. +Make sure it is not set greater than 1000 (cm) so the approach waypoints are not treated as reached too early. * Test your Navigation-Tuning: A better Navigation-Tune will reward you with smoother and more reliable landings. To test your nav systems limit, we recommend to create a waypoint missions with many 90° turn angles with shorter and shorter tracks. diff --git a/docs/06-advanced-features/fixed-wing-waypoint-turns.mdx b/docs/06-advanced-features/fixed-wing-waypoint-turns.mdx new file mode 100644 index 0000000..a450508 --- /dev/null +++ b/docs/06-advanced-features/fixed-wing-waypoint-turns.mdx @@ -0,0 +1,250 @@ +--- +title: Fixed Wing Waypoint Turns +description: How a plane flies corners in waypoint missions, and which turn mode to choose +--- + +From INAV 10.0 a plane no longer reacts to a waypoint corner once it arrives there. +It works out the corner in advance and flies a real, coordinated turn through it. + +The autopilot knows the radius your plane actually needs at its current speed and bank angle, so it knows how early the turn has to begin and when to roll out. +The result is a turn that ends on the outbound leg instead of swinging past it, and a flight path that looks like the mission you planned. + +:::note +This page describes fixed wing behaviour in **NAV WP** missions, in RTH trackback and during the automatic landing approach. +Multicopters are not affected. +The old `nav_fw_wp_turn_smoothing` setting has been replaced, see [Upgrading from Turn Smoothing](#upgrading-from-turn-smoothing). +::: + +## How a coordinated turn is flown + +Three things decide the shape of every turn: + +- **Speed.** The faster the plane, the wider the circle it can fly. +- **[nav_fw_bank_angle](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_bank_angle).** The bank the turn is planned for. More bank means a tighter circle. +- **The corner angle.** A 90° corner needs a much earlier turn-in than a 30° corner. + +From those the autopilot places a circle that touches both mission legs, starts banking early enough to reach it smoothly, holds that circle through the corner, and rolls out so that the wings are level exactly when the plane is aligned with the next leg. + +Rolling in and rolling out is not instant, and the autopilot accounts for that too. +It reads your roll rate, [nav_fw_control_smoothness](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_control_smoothness) and the angle mode P gain to predict how long your plane takes to bank and to level again, and it shapes the turn around that. +Retune the plane and the turns follow — there is nothing to measure by hand. + +Corners shallower than about 30° are left to normal navigation, which handles them better than a very short arc would. + +
+The geometry behind it + +The radius of a coordinated turn is fixed by physics: `R = v² / (g · tan φ)`, with `v` the ground speed and `φ` the planned bank angle. +At 20 m/s and 35° of bank that is about 58 m; at 30 m/s it is already 131 m. + +To join the outbound leg cleanly, the circle has to touch both legs, which puts the turn entry a distance `R · tan(Δ/2)` before the waypoint, where `Δ` is the course change. +That factor is what makes sharp corners expensive: it is 0.41 × R at a 45° corner, 1.0 × R at 90°, and 2.4 × R at 135°. +On top of that comes the roll-in distance, because the plane still flies almost straight while it is banking into the turn. + +Everything above is recomputed continuously from the current ground speed, so a leg flown downwind starts its turn earlier than the same leg flown upwind. + +
+ +## Turn modes + +The mode is set with [nav_fw_wp_turn_mode](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_turn_mode) in the Advanced Tuning tab or in the CLI. +It applies to the whole mission. + +### COORD_FLYBY — cut the corner (default) + +![FLY_BY turn](/img/features-adv/fw-turns/flyby.svg) + +The plane turns *before* the waypoint and passes it to the side, rolling out already on the next leg. +This is the smoothest and most predictable option and the right choice for almost every mission. + +Use it when the waypoint marks a corner of your route rather than a place you have to be over. + +### COORD_FLYOVER — fly over the waypoint, then turn + +![FLY_OVER turn](/img/features-adv/fw-turns/flyover.svg) + +The plane flies over the waypoint first and only then banks into the corner. +Because nothing can be anticipated, the turn is instead flown so that it rolls out pointing exactly at the next waypoint. + +Use it when the waypoint itself matters: a photo point, a gate between obstacles, or a corner where cutting inside is not acceptable. + +With waypoint tracking enabled the mode does more, see [Working with waypoint tracking](#working-with-waypoint-tracking). + +### COORD_FLYINTO — cross the waypoint already aligned + +![FLY_INTO turn](/img/features-adv/fw-turns/flyinto.svg) + +The plane eases away from the waypoint first, then curves back and crosses it already flying the bearing of the next leg. + +Use it for survey, mapping and photogrammetry missions where each line has to be entered straight and on heading from the very first metre. +The mode applies to mission legs only. + +### DIRECT — the old behaviour + +No coordinated turns. +The plane steers at the waypoint with the heading controller and turns when it gets there, exactly as INAV 9.x and earlier did with turn smoothing off. + +This is an opt-out for anyone who wants the previous behaviour back. +It is not recommended for new setups. + +### Choosing a mode + +| You want | Mode | +|---|---| +| A clean, smooth route — general missions, corridors, RTH-style flying | `COORD_FLYBY` | +| To actually pass over each waypoint | `COORD_FLYOVER` | +| To enter every survey line straight and on heading | `COORD_FLYINTO` | +| The pre-10.0 behaviour | `DIRECT` | + +## Working with waypoint tracking + +[nav_fw_wp_tracking_accuracy](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_tracking_accuracy) makes the plane fly *on* the line between two waypoints instead of merely heading toward the next one. +It changes what the turn modes aim for: + +| | Tracking off (default) | Tracking on | +|---|---|---| +| `COORD_FLYBY` | Rolls out on the outbound course | Rolls out on the outbound course, on the line | +| `COORD_FLYOVER` | Rolls out pointing at the next waypoint | Flies a short S after the corner and rolls out **on the leg line itself** | +| Very sharp corners | Rolls out on the correct course, slightly offset to the side | The offset is flown out as a curve back onto the line | + +If you fly corridors, survey grids or anything where being a few metres off the planned line matters, turn tracking on. +`nav_fw_wp_tracking_accuracy` is a deadband in metres; 2 m works well for most planes. + +![FLY_OVER with tracking](/img/features-adv/fw-turns/flyover-tracking.svg) + +
+What the S after a FLY_OVER corner actually does + +Rolling out pointing at the next waypoint is not the same as rolling out *on the leg*. +On a long leg the difference is small, but on a survey grid it means entering every line at an angle and letting the tracker pull you back onto it. + +With tracking enabled the corner is therefore flown as two arcs. +The first rolls out on a course that cuts toward the new leg at no more than 45°, a short straight gives the wings time to roll through level, and a second arc in the opposite direction rolls out tangentially on the leg itself. +The turn coordinator stays in charge across the whole manoeuvre, so the path tracker never gets handed a plane that is sitting a turn diameter off its line. + +
+ +## Sharp corners and reversals + +The tighter the corner and the faster the plane, the earlier a turn has to begin — a 135° corner at speed can need several hundred metres of run-up. +[nav_fw_wp_turn_max_lead_time](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_turn_max_lead_time) puts a ceiling on that so a fast model does not leave the leg absurdly early. + +When a corner needs more anticipation than the ceiling allows, the plane flies a bounded maximum-effort turn instead. +It cannot over-rotate, it always ends on the correct outbound course, and it may end slightly to the side of the planned line. +With waypoint tracking on, that offset is flown out; without it, normal navigation converges toward the next waypoint. + +![Capped corner fallback](/img/features-adv/fw-turns/fallback.svg) + +A course reversal (close to 180°) is a special case of the same thing. +In `COORD_FLYBY` the plane rolls out on the reversed course and converges afterwards, `COORD_FLYOVER` flies the reversal as one continuous sweep, and `COORD_FLYINTO` flies it as a teardrop and crosses the waypoint on heading. + +
+Why a reversal always ends beside the line + +At 180° both legs lie on the same line. +Any single circle that starts on that line and turns the plane around ends up a full turn diameter — `2 · R` — to the side of it. +No amount of tuning changes that; it is the geometry of a circle. + +So a reversal is either flown as one arc and the offset is converged afterwards, or it is flown as a teardrop: turn away from the line first, then curve back onto it from the other side. +That is exactly the difference between `COORD_FLYBY` and `COORD_FLYINTO` at a reversal. + +
+ +## Settings + +| Setting Name | CLI Name | Description | +| --- | --- | --- | +| WP Turn Mode | [nav_fw_wp_turn_mode](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_turn_mode) | How the plane turns at mission waypoints: `DIRECT`, `COORD_FLYBY` (default), `COORD_FLYOVER`, `COORD_FLYINTO`. | +| Max Turn Lead Time | [nav_fw_wp_turn_max_lead_time](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_turn_max_lead_time) | Ceiling on how early a turn may start, 3000-12000 ms, default 6000. Raise it for fast or sluggish models flying sharp corners, lower it to keep turns close to the waypoint. `COORD_FLYBY` only. | +| Turn Feed-Forward Gain | [nav_fw_turn_ff_gain](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_turn_ff_gain) | How much of the required bank is commanded directly instead of being built up by the PID, 0-200 %, default 100. Leave it at the default unless you are chasing a specific problem. | +| Turn Control Ease | [nav_fw_wp_turn_control_ease](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_turn_control_ease) | Extra roll response lag of your servos and airframe, 0-500 ms, default 100. Increase it for large or slow-rolling planes. | +| Max navigation bank angle | [nav_fw_bank_angle](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_bank_angle) | The bank all turn and loiter radii are planned for, default 35°. See below. | +| Waypoint Tracking Accuracy | [nav_fw_wp_tracking_accuracy](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_tracking_accuracy) | Deadband in metres for flying on the leg line. 0 disables line tracking. | + +Everything else the turn system needs is derived from tuning you already have. + +## What nav_fw_bank_angle means now + +:::warning +`nav_fw_bank_angle` changed meaning in INAV 10.0. +It used to be the hard limit for navigation bank. +It is now the **sustained bank the autopilot plans for** — every turn radius, every turn-in point and every loiter circle is sized for it. +::: + +While the plane is holding a planned turn or a loiter circle, the roll output may briefly go above that target to hold the geometry against wind, up to the real limit set by [max_angle_inclination_rll](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#max_angle_inclination_rll). +That reserve is what keeps a circle round in wind instead of letting it drift wide. + +In practice: set `nav_fw_bank_angle` to the bank your plane can hold comfortably and continuously, not to the most it can survive. +The default of 35° suits most models. +Raise it carefully if your plane holds more bank without sinking, and lower it if it loses altitude in turns. + +## Loiter and position hold circles + +The same turn machinery now flies loiter circles, and two things change for you: + +- **The circle is held accurately.** Once established, the autopilot regulates the radius itself instead of chasing a moving target point, so the circle stays round and centred in wind. +- **[nav_fw_loiter_radius](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_loiter_radius) is a minimum, not a fixed value.** If your plane is flying too fast to hold the configured radius at the planned bank, the circle widens instead of demanding a bank it cannot fly. + +If your loiter looks bigger than configured, that is the plane telling you it is flying faster than the radius allows at `nav_fw_bank_angle`. + +
+How the circle behaves in wind + +Ground speed changes continuously as the plane goes around a circle in wind, and with it the radius the plane is physically able to hold. +Commanding that raw requirement would make the circle pulse once per revolution and deform into the classic kidney shape. + +Instead the radius floor is smoothed: it rises immediately when more radius is needed, holds that peak for one full revolution, and then eases back down slowly and never below what is currently flyable. +The circle follows the slow trend of the wind rather than every upwind and downwind passage. + +
+ +## Energy protection + +Banking costs lift. +If the plane is already at the limit of what it can do — climbing with full authority and not achieving the commanded climb rate — the autopilot temporarily lowers the bank it is willing to use. + +You will see this as wider circles and earlier turn-ins during a hard climb, and it returns to normal by itself. +It is a safety behaviour, not something to tune. + +## Landing approach + +Turns between the legs of an [automatic landing approach](./fixed-wing-autoland.mdx) always fly as coordinated `COORD_FLYBY` corners, whatever `nav_fw_wp_turn_mode` is set to. +Clean, aligned transitions between the downwind, base and final legs matter more there than the mode preference. + +The approach turning points are calculated from the plane's real turn radius, so [nav_wp_radius](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_wp_radius) no longer shapes the approach corners. + +## Upgrading from Turn Smoothing + +`nav_fw_wp_turn_smoothing` no longer exists. +Its replacement is `nav_fw_wp_turn_mode`: + +| INAV 9.x | INAV 10.0 | | +|---|---|---| +| `nav_fw_wp_turn_smoothing = OFF` | `nav_fw_wp_turn_mode = DIRECT` | Same reactive turns as before | +| `nav_fw_wp_turn_smoothing = ON` | `nav_fw_wp_turn_mode = COORD_FLYOVER` | The waypoint is still passed over, but the turn is planned instead of flown as a loiter arc | +| `nav_fw_wp_turn_smoothing = ON-CUT` | `nav_fw_wp_turn_mode = COORD_FLYBY` | The corner is still cut, now on the plane's real turn radius | + +New installs default to `COORD_FLYBY`. + +:::note +A CLI backup taken from INAV 9.x contains a `set nav_fw_wp_turn_smoothing = ...` line that INAV 10.0 does not know. +Remove that line before restoring, or set the turn mode afterwards. +::: + +## Troubleshooting + +| What you see | What to do | +|---|---| +| The plane leaves the leg far too early | Lower `nav_fw_wp_turn_max_lead_time`. Check that the mission speed is not much higher than you expect. | +| It swings past the outbound leg in sharp corners | Raise `nav_fw_wp_turn_max_lead_time`, raise `nav_fw_bank_angle`, or fly the corner slower. | +| Turns are wide and lazy | Raise `nav_fw_bank_angle` — this is the value the radius is planned from. | +| Roll-in feels abrupt on a big plane | Raise `nav_fw_wp_turn_control_ease`. | +| The plane rolls out on the right heading but beside the planned line | Expected in very tight corners. Enable `nav_fw_wp_tracking_accuracy` to have it flown out. | +| The loiter circle is larger than configured | Expected. See [Loiter and position hold circles](#loiter-and-position-hold-circles). | + +## Further reading + +- [Waypoint Missions](../08-mission-control/waypoint-missions.mdx) — planning and uploading missions +- [Fixed Wing Autoland](./fixed-wing-autoland.mdx) +- [Navigation PID Tuning (FW)](../07-pid-tuning/navigation-pid-tuning-fw.mdx) +- Developers: the `DEBUG_FW_TURN` blackbox channels are documented in [fw-turn-debugging.md](https://github.com/iNavFlight/inav/blob/master/docs/development/fw-turn-debugging.md) diff --git a/docs/08-mission-control/waypoint-missions.mdx b/docs/08-mission-control/waypoint-missions.mdx index e5064a3..db30653 100644 --- a/docs/08-mission-control/waypoint-missions.mdx +++ b/docs/08-mission-control/waypoint-missions.mdx @@ -65,7 +65,10 @@ Load Waypoints on Boot | [nav_wp_load_on_boot](https://github.com/iNavFlight/ina Enforce Altitude at Waypoint | [nav_wp_enforce_altitude](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_wp_enforce_altitude) | Forces craft to achieve the set WP altitude as well as position before moving to next WP. Position is held and altitude adjusted as required before moving on. 0 = disabled, otherwise setting defines altitude capture tolerance [cm], e.g. 100 means required altitude is achieved when within 100cm of waypoint altitude setting. Waypoint Tracking Accuracy | [nav_fw_wp_tracking_accuracy](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_tracking_accuracy) | Waypoint tracking accuracy forces the craft to quickly head toward and track along the waypoint course line as closely as possible. Setting adjusts tracking deadband distance fom waypoint courseline [m]. Tracking isn't actively controlled within the deadband providing smoother flight adjustments but less accurate tracking. A 2m deadband should work OK in most cases. Setting to 0 disables waypoint tracking accuracy. Waypoint Tracking Angle | [nav_fw_wp_tracking_max_angle](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_tracking_max_angle) | Sets the maximum allowed alignment convergence angle to the waypoint course line when nav_fw_wp_tracking_accuracy is active [degrees]. Lower values result in smoother alignment with the course line but will take more distance until this is achieved. -Waypoint Turn Smoothing | [nav_fw_wp_turn_smoothing](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_turn_smoothing) | Smooths turns during WP missions by switching to a loiter turn at waypoints. When set to ON the craft will reach the waypoint during the turn. When set to ON-CUT the craft will turn inside the waypoint without actually reaching it (cuts the corner). +Waypoint Turn Mode | [nav_fw_wp_turn_mode](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_turn_mode) | Fixed wing only. How the plane turns at mission waypoints: `COORD_FLYBY` (default) cuts the corner and passes the waypoint abeam, `COORD_FLYOVER` flies over the waypoint before turning onto the next leg, `COORD_FLYINTO` crosses the waypoint already aligned with the outbound leg, `DIRECT` restores the pre INAV 10.0 turns. See [Fixed Wing Waypoint Turns](../06-advanced-features/fixed-wing-waypoint-turns.mdx). +Max Turn Lead Time | [nav_fw_wp_turn_max_lead_time](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_turn_max_lead_time) | Fixed wing only. Ceiling on how early a coordinated turn may start before the waypoint [ms]. Raise it for fast or sluggish models flying sharp corners, lower it to keep turns close to the waypoint. `COORD_FLYBY` only. +Turn Feed-Forward Gain | [nav_fw_turn_ff_gain](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_turn_ff_gain) | Fixed wing only. How much of the bank a turn requires is commanded directly instead of being built up by the PID [%]. 0 disables the feed-forward. +Turn Control Ease | [nav_fw_wp_turn_control_ease](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_wp_turn_control_ease) | Fixed wing only. Additional roll response lag of the servos and airframe [ms], used to size the roll-in and roll-out of a coordinated turn. Increase it for large or slow-rolling planes. Restart Waypoint Mission | [nav_wp_mission_restart](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_wp_mission_restart) | Sets restart behaviour for a WP mission when interrupted mid mission. START from first WP, RESUME from last active WP or SWITCH between START and RESUME each time WP Mode is reselected ON. SWITCH effectively allows resuming once only from a previous mid mission waypoint after which the mission will restart from the first waypoint. diff --git a/static/img/features-adv/fw-turns/fallback.svg b/static/img/features-adv/fw-turns/fallback.svg new file mode 100644 index 0000000..94720ee --- /dev/null +++ b/static/img/features-adv/fw-turns/fallback.svg @@ -0,0 +1,27 @@ + + + + + + + + WP (Δ = 139°) + + + ideal turn-in (over the lead-time ceiling) + + ceiling: turn-in clamped here + + + + + + offset + course is correct and coordinated; + tracking or the next leg removes the offset + \ No newline at end of file diff --git a/static/img/features-adv/fw-turns/flyby.svg b/static/img/features-adv/fw-turns/flyby.svg new file mode 100644 index 0000000..f73724c --- /dev/null +++ b/static/img/features-adv/fw-turns/flyby.svg @@ -0,0 +1,34 @@ + + + + + + + + WP (Δ = 90°) + + + + R + + + tangent point, in-leg + tangent point, out-leg + + + + + + turn start + + + turn anticipation + roll in + hold the circle + roll out, already aligned + \ No newline at end of file diff --git a/static/img/features-adv/fw-turns/flyinto.svg b/static/img/features-adv/fw-turns/flyinto.svg new file mode 100644 index 0000000..fecf632 --- /dev/null +++ b/static/img/features-adv/fw-turns/flyinto.svg @@ -0,0 +1,35 @@ + + + + + + + + WP (Δ = 100°) + + + + + + + + + + + + + + turn start (scales with the corner) + away arc, + opposite sense + short straight: + room for the bank reversal + + crossing ON the WP, + aligned with the out-leg + \ No newline at end of file diff --git a/static/img/features-adv/fw-turns/flyover-tracking.svg b/static/img/features-adv/fw-turns/flyover-tracking.svg new file mode 100644 index 0000000..db9bca4 --- /dev/null +++ b/static/img/features-adv/fw-turns/flyover-tracking.svg @@ -0,0 +1,36 @@ + + + + + + + + WP (overflown) + + next WP + + + + + + + + + + + + + + main arc, pinned at + the overfly point + bounded intercept course + (≤ 45° to the leg) + reverse-roll straight + corner-cut arc + rolls out ON the leg + + \ No newline at end of file diff --git a/static/img/features-adv/fw-turns/flyover.svg b/static/img/features-adv/fw-turns/flyover.svg new file mode 100644 index 0000000..a44037a --- /dev/null +++ b/static/img/features-adv/fw-turns/flyover.svg @@ -0,0 +1,30 @@ + + + + + + + + WP (must be overflown) + + next WP + + + circle pinned at the + overfly point, + advanced for the roll-in + + + + + + + + exit = tangent through the next WP + (roll-out lands on the direct line) + \ No newline at end of file From ab8e6143c535acfe0f53bddc855c2ca98ded66d6 Mon Sep 17 00:00:00 2001 From: b14ckyy <33039058+b14ckyy@users.noreply.github.com> Date: Tue, 25 Aug 2026 11:47:57 +0200 Subject: [PATCH 2/2] Fix wording: DIRECT is an exception, tangent geometry is the FLY_BY case Review feedback on PR #14. The introduction presented turn anticipation as universal 10.0 behaviour although DIRECT stays reactive, and the geometry section presented FLY_BY's circle tangent to both legs as common to every coordinated mode. Co-Authored-By: Claude Opus 5 (1M context) --- .../fixed-wing-waypoint-turns.mdx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/06-advanced-features/fixed-wing-waypoint-turns.mdx b/docs/06-advanced-features/fixed-wing-waypoint-turns.mdx index a450508..6fdfc2d 100644 --- a/docs/06-advanced-features/fixed-wing-waypoint-turns.mdx +++ b/docs/06-advanced-features/fixed-wing-waypoint-turns.mdx @@ -3,11 +3,12 @@ title: Fixed Wing Waypoint Turns description: How a plane flies corners in waypoint missions, and which turn mode to choose --- -From INAV 10.0 a plane no longer reacts to a waypoint corner once it arrives there. -It works out the corner in advance and flies a real, coordinated turn through it. +From INAV 10.0 a plane no longer has to react to a waypoint corner once it arrives there. +In the coordinated turn modes it works out the corner in advance and flies a real, coordinated turn through it. -The autopilot knows the radius your plane actually needs at its current speed and bank angle, so it knows how early the turn has to begin and when to roll out. +The autopilot knows the radius your plane actually needs at its current speed and bank angle, so it knows where the turn has to begin and when to roll out. The result is a turn that ends on the outbound leg instead of swinging past it, and a flight path that looks like the mission you planned. +One of the coordinated modes is the default, and the reactive behaviour of INAV 9.x and earlier is still available as [DIRECT](#direct--the-old-behaviour). :::note This page describes fixed wing behaviour in **NAV WP** missions, in RTH trackback and during the automatic landing approach. @@ -23,7 +24,8 @@ Three things decide the shape of every turn: - **[nav_fw_bank_angle](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_bank_angle).** The bank the turn is planned for. More bank means a tighter circle. - **The corner angle.** A 90° corner needs a much earlier turn-in than a 30° corner. -From those the autopilot places a circle that touches both mission legs, starts banking early enough to reach it smoothly, holds that circle through the corner, and rolls out so that the wings are level exactly when the plane is aligned with the next leg. +The clearest case is the default `COORD_FLYBY`: the autopilot places a circle that touches both mission legs, starts banking early enough to reach it smoothly, holds that circle through the corner, and rolls out so that the wings are level exactly when the plane is aligned with the next leg. +The other coordinated modes use the same radius and the same roll-in and roll-out shaping, but they place their arcs differently because they have to meet the waypoint rather than cut past it, see [Turn modes](#turn-modes). Rolling in and rolling out is not instant, and the autopilot accounts for that too. It reads your roll rate, [nav_fw_control_smoothness](https://github.com/iNavFlight/inav/blob/master/docs/Settings.md#nav_fw_control_smoothness) and the angle mode P gain to predict how long your plane takes to bank and to level again, and it shapes the turn around that. @@ -37,7 +39,7 @@ Corners shallower than about 30° are left to normal navigation, which handles t The radius of a coordinated turn is fixed by physics: `R = v² / (g · tan φ)`, with `v` the ground speed and `φ` the planned bank angle. At 20 m/s and 35° of bank that is about 58 m; at 30 m/s it is already 131 m. -To join the outbound leg cleanly, the circle has to touch both legs, which puts the turn entry a distance `R · tan(Δ/2)` before the waypoint, where `Δ` is the course change. +To cut a corner and join the outbound leg cleanly, the circle has to touch both legs, which puts the turn entry a distance `R · tan(Δ/2)` before the waypoint, where `Δ` is the course change. That factor is what makes sharp corners expensive: it is 0.41 × R at a 45° corner, 1.0 × R at 90°, and 2.4 × R at 135°. On top of that comes the roll-in distance, because the plane still flies almost straight while it is banking into the turn.