mirror of https://github.com/ArduPilot/ardupilot
Copter: use pilot_desired_throttle rather than limit_throttle_out in stabilize and acro.
This commit is contained in:
parent
f3dc805978
commit
7d70762053
|
@ -28,21 +28,21 @@ void ModeAcro::run()
|
||||||
motors->set_desired_spool_state(AP_Motors::DesiredSpoolState::THROTTLE_UNLIMITED);
|
motors->set_desired_spool_state(AP_Motors::DesiredSpoolState::THROTTLE_UNLIMITED);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool limit_throttle_out = false;
|
float pilot_desired_throttle = get_pilot_desired_throttle();
|
||||||
|
|
||||||
switch (motors->get_spool_state()) {
|
switch (motors->get_spool_state()) {
|
||||||
case AP_Motors::SpoolState::SHUT_DOWN:
|
case AP_Motors::SpoolState::SHUT_DOWN:
|
||||||
// Motors Stopped
|
// Motors Stopped
|
||||||
attitude_control->reset_target_and_rate(true);
|
attitude_control->reset_target_and_rate(true);
|
||||||
attitude_control->reset_rate_controller_I_terms();
|
attitude_control->reset_rate_controller_I_terms();
|
||||||
limit_throttle_out = true;
|
pilot_desired_throttle = 0.0f;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AP_Motors::SpoolState::GROUND_IDLE:
|
case AP_Motors::SpoolState::GROUND_IDLE:
|
||||||
// Landed
|
// Landed
|
||||||
attitude_control->reset_target_and_rate();
|
attitude_control->reset_target_and_rate();
|
||||||
attitude_control->reset_rate_controller_I_terms_smoothly();
|
attitude_control->reset_rate_controller_I_terms_smoothly();
|
||||||
limit_throttle_out = true;
|
pilot_desired_throttle = 0.0f;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AP_Motors::SpoolState::THROTTLE_UNLIMITED:
|
case AP_Motors::SpoolState::THROTTLE_UNLIMITED:
|
||||||
|
@ -66,9 +66,7 @@ void ModeAcro::run()
|
||||||
}
|
}
|
||||||
|
|
||||||
// output pilot's throttle without angle boost
|
// output pilot's throttle without angle boost
|
||||||
attitude_control->set_throttle_out(limit_throttle_out ? 0 : get_pilot_desired_throttle(),
|
attitude_control->set_throttle_out(pilot_desired_throttle, false, copter.g.throttle_filt);
|
||||||
false,
|
|
||||||
copter.g.throttle_filt);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ModeAcro::init(bool ignore_checks)
|
bool ModeAcro::init(bool ignore_checks)
|
||||||
|
|
|
@ -32,21 +32,21 @@ void ModeStabilize::run()
|
||||||
motors->set_desired_spool_state(AP_Motors::DesiredSpoolState::THROTTLE_UNLIMITED);
|
motors->set_desired_spool_state(AP_Motors::DesiredSpoolState::THROTTLE_UNLIMITED);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool limit_throttle_out = false;
|
float pilot_desired_throttle = get_pilot_desired_throttle();
|
||||||
|
|
||||||
switch (motors->get_spool_state()) {
|
switch (motors->get_spool_state()) {
|
||||||
case AP_Motors::SpoolState::SHUT_DOWN:
|
case AP_Motors::SpoolState::SHUT_DOWN:
|
||||||
// Motors Stopped
|
// Motors Stopped
|
||||||
attitude_control->reset_yaw_target_and_rate();
|
attitude_control->reset_yaw_target_and_rate();
|
||||||
attitude_control->reset_rate_controller_I_terms();
|
attitude_control->reset_rate_controller_I_terms();
|
||||||
limit_throttle_out = true;
|
pilot_desired_throttle = 0.0f;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AP_Motors::SpoolState::GROUND_IDLE:
|
case AP_Motors::SpoolState::GROUND_IDLE:
|
||||||
// Landed
|
// Landed
|
||||||
attitude_control->reset_yaw_target_and_rate();
|
attitude_control->reset_yaw_target_and_rate();
|
||||||
attitude_control->reset_rate_controller_I_terms_smoothly();
|
attitude_control->reset_rate_controller_I_terms_smoothly();
|
||||||
limit_throttle_out = true;
|
pilot_desired_throttle = 0.0f;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AP_Motors::SpoolState::THROTTLE_UNLIMITED:
|
case AP_Motors::SpoolState::THROTTLE_UNLIMITED:
|
||||||
|
@ -66,7 +66,5 @@ void ModeStabilize::run()
|
||||||
attitude_control->input_euler_angle_roll_pitch_euler_rate_yaw(target_roll, target_pitch, target_yaw_rate);
|
attitude_control->input_euler_angle_roll_pitch_euler_rate_yaw(target_roll, target_pitch, target_yaw_rate);
|
||||||
|
|
||||||
// output pilot's throttle
|
// output pilot's throttle
|
||||||
attitude_control->set_throttle_out(limit_throttle_out ? 0 : get_pilot_desired_throttle(),
|
attitude_control->set_throttle_out(pilot_desired_throttle, true, g.throttle_filt);
|
||||||
true,
|
|
||||||
g.throttle_filt);
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue