Skip to content
Snippets Groups Projects
Commit 65ed77e8 authored by Randy Mackay's avatar Randy Mackay
Browse files

Copter: ensure motors don't stop during flip

parent e1e010c5
No related branches found
No related tags found
No related merge requests found
...@@ -141,7 +141,9 @@ static void flip_run() ...@@ -141,7 +141,9 @@ static void flip_run()
// between 45deg ~ -90deg request 400deg/sec roll // between 45deg ~ -90deg request 400deg/sec roll
attitude_control.rate_bf_roll_pitch_yaw(FLIP_ROTATION_RATE * flip_roll_dir, 0.0, 0.0); attitude_control.rate_bf_roll_pitch_yaw(FLIP_ROTATION_RATE * flip_roll_dir, 0.0, 0.0);
// decrease throttle // decrease throttle
throttle_out -= FLIP_THR_DEC; if (throttle_out >= g.throttle_min) {
throttle_out = max(throttle_out - FLIP_THR_DEC, g.throttle_min);
}
// beyond -90deg move on to recovery // beyond -90deg move on to recovery
if ((flip_angle < 4500) && (flip_angle > -9000)) { if ((flip_angle < 4500) && (flip_angle > -9000)) {
...@@ -153,7 +155,9 @@ static void flip_run() ...@@ -153,7 +155,9 @@ static void flip_run()
// between 45deg ~ -90deg request 400deg/sec pitch // between 45deg ~ -90deg request 400deg/sec pitch
attitude_control.rate_bf_roll_pitch_yaw(0.0, FLIP_ROTATION_RATE * flip_pitch_dir, 0.0); attitude_control.rate_bf_roll_pitch_yaw(0.0, FLIP_ROTATION_RATE * flip_pitch_dir, 0.0);
// decrease throttle // decrease throttle
throttle_out -= FLIP_THR_DEC; if (throttle_out >= g.throttle_min) {
throttle_out = max(throttle_out - FLIP_THR_DEC, g.throttle_min);
}
// check roll for inversion // check roll for inversion
if ((labs(ahrs.roll_sensor) > 9000) && (flip_angle > 4500)) { if ((labs(ahrs.roll_sensor) > 9000) && (flip_angle > 4500)) {
...@@ -165,7 +169,9 @@ static void flip_run() ...@@ -165,7 +169,9 @@ static void flip_run()
// between 45deg ~ -90deg request 400deg/sec pitch // between 45deg ~ -90deg request 400deg/sec pitch
attitude_control.rate_bf_roll_pitch_yaw(0.0, FLIP_ROTATION_RATE * flip_pitch_dir, 0.0); attitude_control.rate_bf_roll_pitch_yaw(0.0, FLIP_ROTATION_RATE * flip_pitch_dir, 0.0);
// decrease throttle // decrease throttle
throttle_out -= FLIP_THR_DEC; if (throttle_out >= g.throttle_min) {
throttle_out = max(throttle_out - FLIP_THR_DEC, g.throttle_min);
}
// check roll for inversion // check roll for inversion
if ((labs(ahrs.roll_sensor) < 9000) && (flip_angle > -4500)) { if ((labs(ahrs.roll_sensor) < 9000) && (flip_angle > -4500)) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment