From 2a1985d0f94a868272683e29797baa8d57071da4 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 21 Apr 2016 22:29:29 +1000 Subject: [PATCH] Plane: fixed loiter radius at end of mission --- ArduPlane/commands_logic.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ArduPlane/commands_logic.cpp b/ArduPlane/commands_logic.cpp index 4f4d3bbef19ee1..813e5ccac96768 100644 --- a/ArduPlane/commands_logic.cpp +++ b/ArduPlane/commands_logic.cpp @@ -601,7 +601,10 @@ bool Plane::verify_nav_wp(const AP_Mission::Mission_Command& cmd) bool Plane::verify_loiter_unlim() { - if (mission.get_current_nav_cmd().p1 <= 1 && abs(g.rtl_radius) > 1) { + if (control_mode == AUTO && mission.state() != AP_Mission::MISSION_RUNNING) { + // end of mission RTL + update_loiter(g.rtl_radius? g.rtl_radius : g.loiter_radius); + } else if (mission.get_current_nav_cmd().p1 <= 1 && abs(g.rtl_radius) > 1) { // if mission radius is 0,1, and rtl_radius is valid, use rtl_radius. loiter.direction = (g.rtl_radius < 0) ? -1 : 1; update_loiter(abs(g.rtl_radius));