Also fix reversed steering response where throttle or acceleration limiting leads to throttle output being in the opposite direction from pilot's throttle input
steering output is always positive for clockwise
steering is scaled in motors library meaning we do not need to tell attitude controller about skid-steering or vectored-thrust
requires_gps is replaced by requires_position and requires_velocity
enter_gps_checks method is removed and enter method directly checks ekf flags and ekf origin
calc_speed_nudge allows the pilot to increase the speed of the vehicle including cases when the vehicle is in reverse. This fixes the nudging code so the pilot-nudged throttle does not surpass the vehicle's maximum speed even in reverse.
Thanks to pavloblindnology for finding this!
This separates the default/maximum speed used in Auto, Guided, RTL and SmartRTL from the CRUISE_SPEED which is used as the base for the speed-to-throttle controller (along with CRUISE_THROTTLE)
new mode class member _desired_speed_final holds target speed at destination
main vehicle code passes heading to next waypoint into auto mode.
we do not provide heading when delaying at waypoint which signals we wish
auto-mode calculates final speed at destination which allows vehicle to
make turn within value of WP_OVERSHOOT parameter assuming vehicle turns at
maximum lateral acceleration.
also direct throttle nudge replaced with speed nudge
calc_speed_max estimates vehicle's top speed based on cruise-speed and
cruise-throttle
steering mode now provides total target speed instead of using speed plug
throttle nudge
motor limits provided to attitude control to stop i-term buildup
uses negative desired speed instead of reversed flag
reporting to GCS uses new throttle controller
braking is simply enabled and allows a reverse motor output regardless of vehicle
speed
add ahrs reference
add set-desired-location method
move _reached_destination member in from child
calc_lateral_acceleration args renamed and added comemnts
calc_lateral_acceleration updates _yaw_error_cd
remove calc_lateral_acceleration method with no arguments
calc_throttle updates _speed_error and becomes protected
remove unused variables from calc_throttle
calc_reduced_speed_for_turn_or_distance reworked
do not use rover throttle or rtl_complete
calc_nav_steer comment updates
remove unused update_navigation