mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-01-03 06:28:27 -04:00
Rover: loiter: sailboats don't try and sail directly into the wind
This commit is contained in:
parent
280792abef
commit
dbb4fafa74
@ -56,8 +56,20 @@ void ModeLoiter::update()
|
|||||||
_desired_speed *= yaw_error_ratio;
|
_desired_speed *= yaw_error_ratio;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 0 turn rate is no limit
|
||||||
|
float turn_rate = 0.0;
|
||||||
|
|
||||||
|
// make sure sailboats don't try and sail directly into the wind
|
||||||
|
if (g2.sailboat.use_indirect_route(_desired_yaw_cd)) {
|
||||||
|
_desired_yaw_cd = g2.sailboat.calc_heading(_desired_yaw_cd);
|
||||||
|
if (g2.sailboat.tacking()) {
|
||||||
|
// use pivot turn rate for tacks
|
||||||
|
turn_rate = g2.wp_nav.get_pivot_rate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// run steering and throttle controllers
|
// run steering and throttle controllers
|
||||||
calc_steering_to_heading(_desired_yaw_cd);
|
calc_steering_to_heading(_desired_yaw_cd, turn_rate);
|
||||||
calc_throttle(_desired_speed, true);
|
calc_throttle(_desired_speed, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user