bluerobotics / bluerobotics/cockpit

Joystick: account for pilot input failsafes

Open
#717 1 comment 0 reactions 0 assignees View on GitHub
enhancement safety ux
Dominant language
TypeScript
Stars
198
Forks
63
Avg merge
2d 7h
Merged PRs (30d)
57

Description

Extension of #713, to avoid accidentally causing a failsafe while also avoiding needless resource wastage:

> An ideal solution would account for whether there is a pilot input failsafe configured, and if so send repeated inputs only as often as necessitated by the timeout parameter (to minimise resource wastage). That said, I'm not sure whether non-ArduSub vehicles actually have such a failsafe - could be good to check that, and/or offer the repeated message frequency as a user-configurable parameter.

ArduSub has [`FS_PILOT_INPUT`](https://docs.bluerobotics.com/ardusub-zola/software/autopilot/ArduSub-4.1/developers/parameters/#fs-pilot-input-pilot-input-failsafe-action), with times managed by [`FS_PILOT_TIMEOUT`](https://docs.bluerobotics.com/ardusub-zola/software/autopilot/ArduSub-4.1/developers/parameters/#fs-pilot-timeout-timeout-for-activation-of-pilot-input-failsafe).

Rover has [`RC_FS_TIMEOUT`](https://ardupilot.org/rover/docs/parameters.html#rc-fs-timeout-rc-failsafe-timeout), although we should check whether this applies to `MANUAL_CONTROL` (and `RC_CHANNELS_OVERRIDE`, for future reference), or if it only applies to real RC input.

Haven't checked other vehicle firmwares, and it's probably worth supporting a manual override in Cockpit since we can't guarantee all vehicles will have such a parameter for a timeout.

---

**NOTE:** autopilot handling of no pilot input is generally separate to how it handles completely losing connection to the control station software (e.g. triggered via a heartbeat/gcs failsafe, like [`GCS_FS_ENABLE`](https://docs.bluerobotics.com/ardusub-zola/software/autopilot/ArduSub-4.1/developers/parameters/#fs-gcs-enable-ground-station-failsafe-enable)).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the joystick repeated-input work from issue #713, then investigate how MANUAL_CONTROL relates to FS_PILOT_TIMEOUT, RC_FS_TIMEOUT, and other vehicle failsafe parameters. Check the relevant ArduPilot vehicle documentation and determine whether a manual frequency override is needed; done means inputs are sent often enough to avoid failsafe activation without needless resource use.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.