diff --git a/ArduPlane/commands_logic.pde b/ArduPlane/commands_logic.pde index 72a4d621a2b5050d4269099aeec78dcfc424720d..3d72c711bba7e378a3d00b7ac00a61c88c4a7aaa 100644 --- a/ArduPlane/commands_logic.pde +++ b/ArduPlane/commands_logic.pde @@ -513,7 +513,14 @@ static bool verify_continue_and_change_alt() if (abs(adjusted_altitude_cm() - next_WP_loc.alt) <= 500) { return true; } - + + //Is the next_WP less than 200 m away? + if (get_distance(prev_WP_loc, next_WP_loc) < 200.f) { + //push another 300 m down the line + int32_t next_wp_bearing_cd = get_bearing_cd(prev_WP_loc, next_WP_loc); + location_update(next_WP_loc, next_wp_bearing_cd * 0.01f, 300.f); + } + //keep flying the same course nav_controller->update_waypoint(prev_WP_loc, next_WP_loc);