Skip to content

Commit

Permalink
Plane: Don't declare transition done until rotor fwd tilt finished
Browse files Browse the repository at this point in the history
  • Loading branch information
priseborough committed Mar 10, 2025
1 parent e9e4a20 commit de31524
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions ArduPlane/quadplane.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1563,11 +1563,12 @@ void SLT_Transition::update()

case TRANSITION_TIMER: {
quadplane.set_desired_spool_state(AP_Motors::DesiredSpoolState::THROTTLE_UNLIMITED);
// after airspeed is reached we degrade throttle over the
// transition time, but continue to stabilize
// after airspeed is reached we degrade throttle over the transition time, but continue
// to stabilize and wait for any required forward tilt to complete and the timer to expire
const uint32_t transition_timer_ms = now - transition_low_airspeed_ms;
const float trans_time_ms = constrain_float(quadplane.transition_time_ms,500,30000);
if (transition_timer_ms > unsigned(trans_time_ms)) {
const bool tilt_fwd_complete = !quadplane.tiltrotor.enabled() || quadplane.tiltrotor.tilt_angle_achieved();
if (transition_timer_ms > unsigned(trans_time_ms) && tilt_fwd_complete) {
transition_state = TRANSITION_DONE;
in_forced_transition = false;
transition_start_ms = 0;
Expand Down

0 comments on commit de31524

Please sign in to comment.