mirror of https://github.com/ArduPilot/ardupilot
ACM: Altitude Adjust
This commit is contained in:
parent
98cc65862d
commit
9d64bea2ef
|
@ -1679,8 +1679,8 @@ void update_roll_pitch_mode(void)
|
||||||
update_simple_mode();
|
update_simple_mode();
|
||||||
}
|
}
|
||||||
// mix in user control with Nav control
|
// mix in user control with Nav control
|
||||||
nav_roll += constrain(wrap_180(auto_roll - nav_roll), -g.auto_slew_rate.get(), g.auto_slew_rate.get()); // 40 deg a second
|
nav_roll += constrain(wrap_180(auto_roll - nav_roll), -g.auto_slew_rate.get(), g.auto_slew_rate.get()); // 40 deg a second
|
||||||
nav_pitch += constrain(wrap_180(auto_pitch - nav_pitch), -g.auto_slew_rate.get(), g.auto_slew_rate.get()); // 40 deg a second
|
nav_pitch += constrain(wrap_180(auto_pitch - nav_pitch), -g.auto_slew_rate.get(), g.auto_slew_rate.get()); // 40 deg a second
|
||||||
|
|
||||||
control_roll = g.rc_1.control_mix(nav_roll);
|
control_roll = g.rc_1.control_mix(nav_roll);
|
||||||
control_pitch = g.rc_2.control_mix(nav_pitch);
|
control_pitch = g.rc_2.control_mix(nav_pitch);
|
||||||
|
@ -1699,8 +1699,8 @@ void update_roll_pitch_mode(void)
|
||||||
control_pitch = g.rc_2.control_in;
|
control_pitch = g.rc_2.control_in;
|
||||||
|
|
||||||
// mix in user control with optical flow
|
// mix in user control with optical flow
|
||||||
g.rc_1.servo_out = get_stabilize_roll(get_of_roll(control_roll));
|
g.rc_1.servo_out = get_stabilize_roll(get_of_roll(control_roll));
|
||||||
g.rc_2.servo_out = get_stabilize_pitch(get_of_pitch(control_pitch));
|
g.rc_2.servo_out = get_stabilize_pitch(get_of_pitch(control_pitch));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// THOR
|
// THOR
|
||||||
|
@ -1834,6 +1834,7 @@ void update_throttle_mode(void)
|
||||||
|
|
||||||
case THROTTLE_HOLD:
|
case THROTTLE_HOLD:
|
||||||
// allow interactive changing of atitude
|
// allow interactive changing of atitude
|
||||||
|
/*
|
||||||
if(g.rc_3.control_in < 200) {
|
if(g.rc_3.control_in < 200) {
|
||||||
reset_throttle_counter = 150;
|
reset_throttle_counter = 150;
|
||||||
nav_throttle = get_throttle_rate(-120);
|
nav_throttle = get_throttle_rate(-120);
|
||||||
|
@ -1845,6 +1846,22 @@ void update_throttle_mode(void)
|
||||||
g.rc_3.servo_out = g.throttle_cruise + nav_throttle + angle_boost;
|
g.rc_3.servo_out = g.throttle_cruise + nav_throttle + angle_boost;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
if(g.rc_3.radio_in < (g.rc_3.radio_min + 200)){
|
||||||
|
int16_t _rate = 120 - (((g.rc_3.radio_in - g.rc_3.radio_min) * 12) / 20);
|
||||||
|
reset_throttle_counter = 150;
|
||||||
|
nav_throttle = get_throttle_rate(-_rate);
|
||||||
|
g.rc_3.servo_out = g.throttle_cruise + nav_throttle + angle_boost;
|
||||||
|
break;
|
||||||
|
}else if(g.rc_3.radio_in > (g.rc_3.radio_max - 200)){
|
||||||
|
int16_t _rate = 180 - ((g.rc_3.radio_max - g.rc_3.radio_in) * 18) / 20;
|
||||||
|
reset_throttle_counter = 150;
|
||||||
|
nav_throttle = get_throttle_rate(_rate);
|
||||||
|
g.rc_3.servo_out = g.throttle_cruise + nav_throttle + angle_boost;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// allow 1 second of slow down after pilot moves throttle back into deadzone
|
// allow 1 second of slow down after pilot moves throttle back into deadzone
|
||||||
if(reset_throttle_counter > 0) {
|
if(reset_throttle_counter > 0) {
|
||||||
|
|
Loading…
Reference in New Issue