From bd8af22ef987a772223afa541652df407098b980 Mon Sep 17 00:00:00 2001 From: Michael du Breuil Date: Mon, 17 Jul 2023 15:25:53 -0700 Subject: [PATCH] Plane: On vtol landings if from a mission perform crosstracking --- ArduPlane/quadplane.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ArduPlane/quadplane.cpp b/ArduPlane/quadplane.cpp index f067b6b0c8..853647efb2 100644 --- a/ArduPlane/quadplane.cpp +++ b/ArduPlane/quadplane.cpp @@ -2407,7 +2407,7 @@ void QuadPlane::vtol_position_controller(void) const float aspeed_threshold = MAX(plane.aparm.airspeed_min-2, assist_speed); // run fixed wing navigation - plane.nav_controller->update_waypoint(plane.current_loc, loc); + plane.nav_controller->update_waypoint(plane.auto_state.crosstrack ? plane.prev_WP_loc : plane.current_loc, loc); // use TECS for throttle SRV_Channels::set_output_scaled(SRV_Channel::k_throttle, plane.TECS_controller.get_throttle_demand()); @@ -3241,7 +3241,8 @@ bool QuadPlane::do_vtol_land(const AP_Mission::Mission_Command& cmd) plane.crash_state.is_crashed = false; // also update nav_controller for status output - plane.nav_controller->update_waypoint(plane.current_loc, plane.next_WP_loc); + plane.nav_controller->update_waypoint(plane.auto_state.crosstrack ? plane.prev_WP_loc : plane.current_loc, + plane.next_WP_loc); poscontrol_init_approach(); return true;