ArduPilot / ardupilot

ArduPlane, ArduCopter, ArduRover, ArduSub source
http://ardupilot.org/
GNU General Public License v3.0
10.71k stars 17.17k forks source link

Plane: Option to enable GCS failsafe for Guided, Loiter modes #19065

Open dmagree opened 2 years ago

dmagree commented 2 years ago

There is currently no way to enable the GCS failsafe only for autonomous and GCS controlled modes, specifically AUTO, GUIDED, and LOITER. There is an option to enable for AUTO only (GCS_FS_ENABL = 3), but if an operator is primarily controlling via mouse clicks in guided and loses contact the vehicle would not return. Alternatively, turning on in all cases could interfere with an RC recovery in the case of inconsistent comms. This behavior is available in Copter via the FS_OPTIONS parameter

I would suggest we expand the GCS_FS_ENABL = 3 to include other modes, or further untangle the RC and GCS failsafes.

Platform [ ] All [ ] AntennaTracker [ ] Copter [ x] Plane [ ] Rover [ ] Submarine

yuvala4 commented 2 months ago

I have encountered just the same problem today using plane 4.5.3 I would suggest to reconsider this issue, it is easy change ArduPlane/system.cpp L355

} else if (g.gcs_heartbeat_fs_enabled == GCS_FAILSAFE_HB_AUTO && (control_mode == &mode_auto **|| control_mode == &mode_guided)** && gcs_last_seen_ms != 0 && (tnow - gcs_last_seen_ms) > g.fs_timeout_long*1000) { failsafe_long_on_event(FAILSAFE_GCS, ModeReason::GCS_FAILSAFE); Should also consider another more sophisticated approach such as choosing the modes that would trigger FS, as mentioned above