Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
cd67c18
implement vtol mission auto transition
mart1npetroff May 12, 2026
58b9fc7
implement VTOL transition automation for smoothing transition
mart1npetroff May 12, 2026
ae15cb9
feat(vtol): add unified manual/mission transition controller with air…
mart1npetroff May 12, 2026
232dfb5
- document explicit USER-bit semantics as absolute per-waypoint platf…
mart1npetroff May 12, 2026
8ab311a
feat(vtol): add optional dynamic scaling ramp timer and clarify legac…
mart1npetroff May 13, 2026
50612a2
docs: regenerate Settings.md from settings definitions
mart1npetroff May 14, 2026
8d781e9
vtol: split global vs per-mixer transition settings, rename manual sw…
mart1npetroff May 16, 2026
587460e
vtol: clean transition state internals and clarify manual switch setup
mart1npetroff May 17, 2026
a73bc70
vtol: harden transition controller docs and per-loop mode handling
mart1npetroff May 17, 2026
421a55c
vtol: add dedicated transition debug mode and clarify transition paths
mart1npetroff May 17, 2026
73707a9
- capture debug values before transition scale cleanup so final succe…
mart1npetroff May 17, 2026
762c310
fix(vtol): report actual MIXER TRANSITION/MIXER PROFILE 2 activity in…
mart1npetroff May 18, 2026
0258521
debug data enchancment
mart1npetroff May 21, 2026
c2cdbfc
feat(nav): add VTOL transition retry and configurable fail actions
mart1npetroff May 28, 2026
799995b
fix(nav): harden VTOL retry scan and map FW->MC LOITER fail action to…
mart1npetroff May 28, 2026
7fd7163
fix(vtol): gate manual profile switch during transition and improve r…
mart1npetroff May 28, 2026
093c0ec
По-здраво: code latch за “manual transition session active” до TRANSI…
mart1npetroff May 28, 2026
cb213fd
docs(vtol): align profile order guidance and clarify switch examples
mart1npetroff Jun 3, 2026
061c7f2
vtol: decouple MC->FW pusher ramp from handoff scaling
mart1npetroff Jun 3, 2026
94a6b34
vtol: restore manual profile hot-switch during transition
mart1npetroff Jun 4, 2026
02e7f86
vtol: simplify transition docs and remove mission track-distance setting
mart1npetroff Jun 4, 2026
8fe6337
docs(vtol): clarify transition timer roles and fallback behavior
mart1npetroff Jun 5, 2026
1d2cd6f
vtol: support overlap mapping with manual transition controller
mart1npetroff Jun 5, 2026
cc85129
vtol: latch fw-to-mc protection and reuse multirotor platform helper
mart1npetroff Jun 5, 2026
a32326a
feat(vtol): add INPUT_AUTOTRANSITION_TARGET_STABILIZED* input source …
mart1npetroff Jun 7, 2026
8218e51
Refine VTOL auto-transition preview and scaling docs
mart1npetroff Jun 7, 2026
aa70689
Merge branch 'maintenance-10.x' into implement-auto-vtol-smooth-trans…
mart1npetroff Jun 7, 2026
1dbaf49
Refine VTOL auto-transition mixer handoff and docs
mart1npetroff Jun 9, 2026
6795b65
Improve VTOL transition motor handoff and target PID preview
mart1npetroff Jun 9, 2026
cec4676
Fix VTOL auto-transition preview and fade edge cases
mart1npetroff Jun 9, 2026
5140a6a
Preserve VTOL transition behavior across profile hot-switches
mart1npetroff Jun 12, 2026
270714d
Fix VTOL servo transition regressions across auto and profile handoff
mart1npetroff Jun 15, 2026
8af084d
vtol: reuse scale ramp time for transition servo handoff fades
mart1npetroff Jun 15, 2026
d311c7d
Improve VTOL MC protection and landing safety
mart1npetroff Jun 16, 2026
b8360ba
fix tilt servos oposite movment after direct switch
mart1npetroff Jun 16, 2026
39c8f16
Improve VTOL auto-transition safety and documentation
mart1npetroff Jun 17, 2026
3699c17
Fix VTOL transition failsafe handling and F7 ITCM usage
mart1npetroff Jun 17, 2026
0bab61f
Add VTOL transition OSD status and low-speed MC fallback
mart1npetroff Jun 18, 2026
85aee0d
Fix VTOL auto transition handoff edge cases
mart1npetroff Jun 19, 2026
64dbf9c
Protect VTOL MC stabilization from MC braking overlap
mart1npetroff Jun 19, 2026
26d3df4
Fix manual VTOL endpoint switch after auto transition
mart1npetroff Jun 22, 2026
83a4b62
Fix VTOL manual switch handoff and OSD reminders
mart1npetroff Jun 24, 2026
e4915a0
SITL build fix
mart1npetroff Jun 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 0 additions & 42 deletions docs/ADSB.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,47 +64,6 @@ AT+SETTINGS=SAVE
* in INAV configurator ports TAB set telemetry MAVLINK, and baudrate 115200
* https://pantsforbirds.com/adsbee-1090/quick-start/

<<<<<<< HEAD
---

---

## Alert and Warning
The ADS-B warning/alert system supports two operating modes, controlled by the parameter osd_adsb_calculation_use_cpa (ON or OFF).

---

### ADS-B Warning and Alert Messages (CPA Mode OFF)
The ADS-B warning/alert system supports two operating modes, controlled by the parameter **osd_adsb_calculation_use_cpa** (ON or OFF).

When **osd_adsb_calculation_use_cpa = OFF**, the system evaluates only the **current distance between the aircraft and the UAV**. The aircraft with the **shortest distance** is always selected for monitoring.

- If the aircraft enters the **warning zone** (`adsb_distance_warning`), the corresponding **OSD element is displayed**.
- If the aircraft enters the **alert zone** (`adsb_distance_alert`), the **OSD element starts blinking**, indicating a higher-priority alert.

This mode therefore provides a simple proximity-based warning determined purely by real-time distance.

---

### ADS-B Warning and Alert Messages (CPA Mode ON)

When **osd_adsb_calculation_use_cpa = ON**, the system evaluates aircraft using the **Closest Point of Approach (CPA)** and predicted trajectories, not only the current distance.

1. **Aircraft already inside the alert zone**
If one or more aircraft are currently inside the **alert zone** (`adsb_distance_alert`), the **closest aircraft** to the UAV is selected and the **OSD element blinks**.

2. **Aircraft in the warning zone, none predicted to enter the alert zone**
If aircraft are present in the **warning zone** (`adsb_distance_warning`), but none of them are predicted to enter the **alert zone** (their CPA distance is greater than `adsb_distance_alert`), the **closest aircraft to the UAV** is selected and the **OSD element remains steady** (no blinking).

3. **Aircraft in the warning zone, one predicted to enter the alert zone**
If at least one aircraft in the **warning zone** is predicted to enter the **alert zone**, that aircraft is selected and the **OSD element blinks**.

4. **Aircraft in the warning zone, multiple predicted to enter the alert zone**
If multiple aircraft are predicted to enter the **alert zone**, the system selects the aircraft that will **reach the alert zone first**, and the **OSD element blinks**.

![ADSB CPA_ON](assets/images/adsb-CPA-on.png)


## SoftRF settings
SoftRF supports only MAVLink version 1.
```
Expand Down Expand Up @@ -150,4 +109,3 @@ When **osd_adsb_calculation_use_cpa = ON**, the system evaluates aircraft using
If multiple aircraft are predicted to enter the **alert zone**, the system selects the aircraft that will **reach the alert zone first**, and the **OSD element blinks**.

![ADSB CPA_ON](assets/images/adsb-CPA-on.png)
>>>>>>> upstream/release/9.1
339 changes: 329 additions & 10 deletions docs/MixerProfile.md

Large diffs are not rendered by default.

100 changes: 100 additions & 0 deletions docs/Navigation.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,106 @@ Parameters:

* `<flag>` - Last waypoint must have `flag` set to 165 (0xA5).

### Mission VTOL transition using existing User Actions

Mission VTOL transition can be requested.
This is available only on targets with more than 512 KB flash, compiled with `USE_AUTO_TRANSITION`.
Targets with 512 KB flash do not include these mission VTOL transition settings.

Configuration:

- `nav_vtol_mission_transition_user_action` selects which waypoint User Action (`USER1..USER4`) is used as the mission VTOL target selector.
- `nav_vtol_mission_transition_min_altitude_cm` optionally enforces a minimum altitude before transition start (`0` disables check).
- During MC->FW mission transition, INAV uses a built-in straight run-up target to help the model build speed before switching to fixed-wing.
- VTOL transition completion logic is shared with manual MIXER TRANSITION and uses mixer transition settings:
- preferred MC->FW threshold: `vtol_transition_to_fw_min_airspeed_cm_s`
- FW->MC threshold: `vtol_transition_to_mc_max_airspeed_cm_s`

Behavior on each navigable mission waypoint (`WAYPOINT`, `POSHOLD_TIME`, `LAND`):

- The configured USER bit is an **absolute target selector**:
- `0`: transition to MC / MULTIROTOR profile
- `1`: transition to FW / AIRPLANE profile
- When `nav_vtol_mission_transition_user_action != OFF`, each navigable waypoint always encodes target state via that selected USER bit.
- This means every navigable waypoint implicitly declares desired VTOL platform state when this feature is enabled; users must intentionally set/clear that bit on each waypoint.
- This command is **not** a toggle.
- The command is idempotent: if already in the requested target profile type, the mission continues immediately.
- If a transition is needed, mission progression pauses while automated transition runs, then resumes only after completion.

Transition behavior in this MVP:

- MC -> FW: straight-line acceleration segment (no loiter), heading from the next waypoint bearing when available, otherwise current heading.
- MC -> FW and FW -> MC completion uses pitot airspeed thresholds when healthy/available (`vtol_transition_to_fw_min_airspeed_cm_s`, `vtol_transition_to_mc_max_airspeed_cm_s`).
- If pitot is unavailable/unhealthy (or threshold is `0`), timer fallback (`mixer_switch_trans_timer`) is used.
- Ground speed is not used for transition progress/completion.
- FW -> MC: mission pauses during automated transition, then resumes after switching back to MC profile.
- Strict altitude hold is not enforced during MC -> FW transition; natural climb is allowed.
- If an airspeed-controlled MC -> FW transition times out, `nav_vtol_transition_retry_on_airspeed_timeout` can run one heading scan/retry before the configured fail action is used.

Safety and scope:

- This path uses authorized automated transition state handling; it does not permit manual mixer profile switching during normal waypoint navigation.
- It still depends on valid mixer profile switching infrastructure (two configured mixer profiles and a valid `MIXER PROFILE 2` mode activation condition).

RTH and failsafe VTOL transitions:

- RTH may request MC -> FW before flying home if the aircraft is in MC and far enough from home.
- RTH landing may request FW -> MC before using the MC landing controller.
- Failsafe RTH/LAND is allowed to continue those navigation-owned `RTH` and `LAND` transition requests.
- `vtol_fw_to_mc_auto_switch_airspeed_cm_s` can also request a navigation-owned FW -> MC safety transition during mission, RTH, or failsafe RTH when trusted pitot airspeed falls too low.
- This low-speed safety transition requires `mixer_automated_switch = ON` and a valid MC target profile.
- After the low-speed safety transition switches to MC, INAV keeps the current navigation task in MC and blocks automatic MC -> FW RTH or mission re-entry for that navigation session.
- Manual and mission transition requests are not allowed to continue just because failsafe became active; they are aborted unless the target profile has already been selected and INAV is only finishing the remaining safe output movement.
- `vtol_transition_to_mc_max_airspeed_cm_s` controls when an already-requested FW -> MC transition is considered safe to complete.

### VTOL MC navigation protection and landing detection

Targets with more than 512 KB flash can enable extra protection for VTOL aircraft flying in MC mode:

- `vtol_mc_protection_mode = OFF`: disabled, legacy behavior.
- `vtol_mc_protection_mode = NAV`: protects VTOL MC navigation and altitude-control behavior.
- `vtol_mc_protection_mode = NAV_AND_STABILIZED`: also shapes ANGLE/HORIZON roll, pitch, and yaw commands at higher horizontal speed.

The protection only activates when the current mixer profile is multicopter-like and another configured mixer profile is fixed-wing. Normal multirotors and fixed-wing mode are not changed.

In NAV modes, VTOL MC protection adds:

- throttle reserve before altitude PID anti-windup, controlled by `vtol_mc_thr_reserve_percent`,
- capture/settle when entering position-holding navigation with horizontal speed,
- soft altitude capture while horizontal speed is being bled off,
- a stricter RTH/WP landing settle gate before descent starts,
- a conservative bailout path if attitude becomes excessive while automatic throttle is active.

The landing settle gate uses `min(nav_wp_radius, 100 cm)` as the capture radius for the landing point. It also requires low horizontal speed, low vertical speed, and safe attitude to be held for the internal settle time. This prevents a large `nav_wp_radius` from starting landing descent after only briefly touching the waypoint radius while still moving.

ANGLE/HORIZON shaping in `NAV_AND_STABILIZED` only runs when armed, VTOL MC mode is detected, velocity estimate is trusted, and horizontal speed is above the shaping threshold. It continuously scales roll, pitch, and yaw commands as speed increases, preserving command sign and small deadband behavior.

#### Landing detector sensitivity

`nav_land_detect_sensitivity` scales the generic landing detector velocity and gyro thresholds. The default `5` is nominal sensitivity. For multirotors, this corresponds to about:

- `100 cm/s` horizontal speed,
- `100 cm/s` vertical speed,
- `4 deg/s` average pitch/roll gyro rate.

Higher values relax these thresholds and can make landing detection faster, but also increase false-detect risk. VTOL MC landing detection adds additional safety gates that `nav_land_detect_sensitivity` does not bypass:

- vertical speed must be near zero when altitude/vertical-speed estimate is available,
- NAV landing must be in the final slow-descent context,
- trusted surface/AGL data, if available, must show near-ground,
- all VTOL MC landing candidates must pass a throttle-probe confirmation before `LANDING_DETECTED`.

The VTOL MC throttle probe gently reduces lift throttle for a short confirmation window. If the aircraft starts descending, shows unloading acceleration, or trusted AGL drops, the candidate is rejected and the detector waits again. This is intended to avoid false disarm during slow descent or ground-effect bounce, without relying on barometric altitude as AGL.

`nav_landing_bump_detection = ON` allows G-bump touchdown detection to create a landing candidate. For VTOL MC it is not an immediate disarm shortcut: trusted high AGL blocks it, and accepted candidates still go through the throttle probe. For non-VTOL multirotors it keeps the existing landing detector behavior.

Automatic disarm still requires `nav_disarm_on_landing = ON`. `nav_auto_disarm_delay` is applied after a landing candidate is detected; in VTOL MC mode the throttle probe must also confirm before the global `LANDING_DETECTED` state is set.

Debugging:

- `debug_mode = VTOL_MC_PROTECT` shows protection flags, safe throttle range, protected throttle, speed, attitude, and settle/command-scale progress.
- `debug_mode = LANDING` shows normal landing detector status and candidate state.

`wp save` - Checks list of waypoints and save from FC to EEPROM (warning: it also saves all unsaved CLI settings like normal `save`).

`wp reset` - Resets the list, sets the number of waypoints to 0 and marks the list as invalid (but doesn't delete the waypoint definitions).
Expand Down
Loading