4 #if HAL_QUADPLANE_ENABLED
6 bool ModeQHover::_enter()
8 // set vertical speed and acceleration limits
9 pos_control
->set_max_speed_accel_z(-quadplane
.get_pilot_velocity_z_max_dn(), quadplane
.pilot_speed_z_max_up
*100, quadplane
.pilot_accel_z
*100);
10 pos_control
->set_correction_speed_accel_z(-quadplane
.get_pilot_velocity_z_max_dn(), quadplane
.pilot_speed_z_max_up
*100, quadplane
.pilot_accel_z
*100);
11 quadplane
.set_climb_rate_cms(0);
13 quadplane
.init_throttle_wait();
17 void ModeQHover::update()
19 plane
.mode_qstabilize
.update();
25 void ModeQHover::run()
27 const uint32_t now
= AP_HAL::millis();
28 if (quadplane
.tailsitter
.in_vtol_transition(now
)) {
29 // Tailsitters in FW pull up phase of VTOL transition run FW controllers
34 if (quadplane
.throttle_wait
) {
35 quadplane
.set_desired_spool_state(AP_Motors::DesiredSpoolState::GROUND_IDLE
);
36 attitude_control
->set_throttle_out(0, true, 0);
37 quadplane
.relax_attitude_control();
38 pos_control
->relax_z_controller(0);
40 plane
.quadplane
.assign_tilt_to_fwd_thr();
41 quadplane
.hold_hover(quadplane
.get_pilot_desired_climb_rate_cms());
44 // Stabilize with fixed wing surfaces
45 plane
.stabilize_roll();
46 plane
.stabilize_pitch();