Commit Graph

45 Commits

Author SHA1 Message Date
Randy Mackay d0a39e6114 Rover: fix notification in guided and rtl 2019-05-10 06:55:35 +09:00
Peter Barker 40f3f414cd Rover: handle AR_WPNav failing to set desired location 2019-05-10 06:55:35 +09:00
Randy Mackay 75ba96b7a2 Rover: separate nudge from calc_throttle
This is required because AR_WPNav produces an acceleration adjusted desired speed meaning in rare cases where the vehicle is moving in reverse at the time auto is engaged, the desired speed may be temporarily negative as the vehicle slows.  In these situations we do not want to allow the vehicle's speed to be nudged to a higher reverse speed if the pilot's throttle stick is all the way down
2019-05-10 06:55:35 +09:00
Randy Mackay a94ebc5bc3 Rover: integrate navigation library 2019-05-10 06:55:35 +09:00
Tom Pittenger a798f9eb27 Rover: refactor motor.set_steering() to mode.set_steering() 2019-05-03 13:14:11 -07:00
Pierre Kancir f91ffffca7 APMrover2: use past_interval_finish_line and line_path_proportion from Location 2019-04-23 09:20:43 +10:00
Randy Mackay 28ac2c2600 Rover: rename guided limits start_time_ms 2019-03-15 21:18:46 +09:00
Randy Mackay 95d68b0cf5 Rover: reached_destination becomes const 2019-03-15 14:51:35 +09:00
Randy Mackay 3f8adb4e7d Rover: guided-within-auto target moved to structure
also guided's limit_breached made const
also guided limit check uses is_positive
2019-03-15 14:51:35 +09:00
Randy Mackay 89f0418c0f Rover: support do-guided-limits mission command 2019-03-15 14:51:35 +09:00
Randy Mackay 721c200bcc Rover: support guided-within-auto
also adds support for sending position targets to offboard controller which is assumed to return velocity commands
2019-03-15 14:51:35 +09:00
Dr.-Ing. Amilcar do Carmo Lucas 36d755a48a Rover: replace location_offset() and get_distance() function calls with Location object member function calls
This allows removing duplicated code
2019-02-28 11:44:09 +11:00
Randy Mackay 2ba6aa7e8a Rover: guided heading-and-speed control fix
This removes the lane-based-speed-control from guided mode's heading-and-speed controller which does not use the navigation controller
2019-02-13 20:11:27 +09:00
TsuyoshiKawamura 5575eeddab Rover: fixed coverity issue around loiter logic 2019-01-10 20:24:57 +09:00
TsuyoshiKawamura a9781686b1 Rover: Vehicle will stop with loiter in Guided mode for boat. 2018-12-20 20:13:15 +09:00
Peter Barker 86168cd180 Rover: add override keyword where required, fix bad method override 2018-11-08 11:30:12 +11:00
Randy Mackay 743de16c07 Rover: fix calls to calc_steering_to_heading
reversed flag was being passed into the wrong argument
2018-09-11 14:39:50 +09:00
Pierre Kancir 3ef910ff11 Rover: fix initial target when setting Guided 2018-08-22 21:02:40 +09:00
Raouf df3b6202f5 Rover: support DO_SET_REVERSE commands in guided, RTL, SmartRTL 2018-08-22 13:36:44 +09:00
Randy Mackay 82aba6fe56 Rover: guided heading-and-speed control slows using yaw error 2018-07-18 15:11:09 +09:00
Randy Mackay 5dc4b8e66d Rover: guided mode slows to stopping point on init 2018-07-18 15:11:09 +09:00
Randy Mackay 77598f72d1 Rover: remove redundant set_steering calls from Guided
steering is centered within the stop_vehicle method
2018-07-18 15:11:09 +09:00
Randy Mackay 73bdc3be09 Rover: set ahrs flyforward if thr over 15% for 2 seconds
or if throttle is positive and desired speed over 0.5m/s
2018-05-29 16:37:31 +09:00
Randy Mackay fc35e74821 Rover: pass dt to attitude controller 2018-05-24 11:06:20 +09:00
Randy Mackay ef2223a712 Rover: integrate attitude control change to steering output and scaling
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
2018-05-10 08:02:13 +09:00
Randy Mackay 8119c537c7 Rover: integrate vectored thrust support 2018-04-24 19:57:19 +09:00
Randy Mackay 29e8866ea9 Rover: move avoidance into calc_throttle
also enable avoidance for steering and guided modes
2018-04-24 12:24:53 +09:00
Randy Mackay 0da8ff6b2e Rover: boats always navigate when outside waypoint radius 2018-02-07 07:33:11 +09:00
Randy Mackay 916fe80000 Rover: remove mode class's desired-lat-accel
This was a duplicate of the value held in the attitude controller
2018-01-05 09:27:53 +09:00
Randy Mackay 49493fe6a2 Rover: add calc_steering_to_heading
removes some duplicate code in Guided and Auto
2018-01-05 09:27:53 +09:00
Randy Mackay b778546eda Rover: rename mode lateral acceleration and make private 2017-12-09 12:18:49 +09:00
Randy Mackay 34c2fba9a7 Rover: boats stay active at destination in guided, rtl, smartrtl 2017-12-08 08:48:05 +09:00
Randy Mackay 57067fb8bc Rover: add WP_SPEED and RTL_SPEED
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)
2017-12-07 07:29:10 +09:00
Randy Mackay c6689fd2e1 Rover: rename calc_nav_steer to calc_steering_from_lateral_acceleration
rename calc_lateral_acceleration to calc_steering_to_waypoint
calc_steering_to_waypoint internally calls calc_steering_from_lateral_acceleration
non-functional change
2017-11-28 11:46:21 +09:00
Randy Mackay 23028a659b Rover: slew throttle in all modes 2017-11-27 14:31:20 +09:00
Daniel Widmann bc7cf97b4e Rover: don't use GPS speed to detect reversing
instead pass reverse to attitude controller based on desired speed
2017-11-08 14:37:59 +09:00
Randy Mackay 95c5ada3e9 Rover: modes use stop_vehicle to stop gently
modes slow to a stop instead of immediately setting motors to zero
vehicle centers steering when stopping
2017-08-15 20:47:19 +09:00
Randy Mackay d99108f3bc Rover: use AR_AttitudeControl for throttle control
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
2017-08-15 20:47:19 +09:00
Randy Mackay 9097269d6d Rover: use AR_AttitudeControl for steering control 2017-08-15 20:47:19 +09:00
khancyr 848df551ac Rover: formatting and comment fixes to mode class 2017-08-05 17:02:52 +09:00
Randy Mackay 4f5e82f406 Rover: mode fixes for reversing 2017-08-05 11:20:58 +09:00
Randy Mackay 946a0a8e54 Rover: guided mode refactoring
add set-desired methods
add get_distance_to_destination
fix to one interation with no update to motors
slow down for turns
2017-08-05 11:20:58 +09:00
khancyr ded1bad6c3 Rover: remove duplicate calls from update_navigation()
calc_lateral_acceleration() and calc_nav_steer() aren't need here
2017-07-21 10:13:20 +09:00
khancyr b9644c4ec7 Rover: disable slew limit by default on mode 2017-07-21 10:13:20 +09:00
Peter Barker 2a9b1017b6 Rover: add control modes class 2017-07-21 10:13:20 +09:00