mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-02-21 15:23:57 -04:00
Plane: use ground steering logic for final stage of auto landing
this should improve runway tracking
This commit is contained in:
parent
5f3ac159ba
commit
b102c9d19c
@ -206,12 +206,26 @@ static void stabilize_stick_mixing_fbw()
|
||||
*/
|
||||
static void stabilize_yaw(float speed_scaler)
|
||||
{
|
||||
steering_control.ground_steering = (channel_roll->control_in == 0 && fabsf(relative_altitude()) < g.ground_steer_alt);
|
||||
if (control_mode == AUTO && flight_stage == AP_SpdHgtControl::FLIGHT_LAND_FINAL) {
|
||||
// in land final setup for ground steering
|
||||
steering_control.ground_steering = true;
|
||||
} else {
|
||||
// otherwise use ground steering when no input control and we
|
||||
// are below the GROUND_STEER_ALT
|
||||
steering_control.ground_steering = (channel_roll->control_in == 0 &&
|
||||
fabsf(relative_altitude()) < g.ground_steer_alt);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
first calculate steering_control.steering for a nose or tail wheel
|
||||
first calculate steering_control.steering for a nose or tail
|
||||
wheel.
|
||||
We use "course hold" mode for the rudder when either in the
|
||||
final stage of landing (when the wings are help level) or when
|
||||
in course hold in FBWA mode (when we are below GROUND_STEER_ALT)
|
||||
*/
|
||||
if (steer_state.hold_course_cd != -1 && steering_control.ground_steering) {
|
||||
if ((control_mode == AUTO && flight_stage == AP_SpdHgtControl::FLIGHT_LAND_FINAL) ||
|
||||
(steer_state.hold_course_cd != -1 && steering_control.ground_steering)) {
|
||||
calc_nav_yaw_course();
|
||||
} else if (steering_control.ground_steering) {
|
||||
calc_nav_yaw_ground();
|
||||
|
Loading…
Reference in New Issue
Block a user