Commit Graph

108 Commits

Author SHA1 Message Date
Randy Mackay 607f996232 AC_Avoid: restructure logic of adjust_velocity_circle_fence 2019-06-08 09:35:36 +09:00
Randy Mackay e846840a52 AC_Avoid: fix stopping at circular fence 2019-06-08 09:35:36 +09:00
Peter Barker 35d4555be0 AC_Avoid: improve documentation of AVOID_ENABLE options 2019-06-07 17:37:00 +09:00
Peter Barker e9160cd9d5 AC_Avoid: correct iteration through edges 2019-06-04 09:06:07 +09:00
Peter Barker cd6e5b48a1 AC_Avoid: move check for zero-desired-velocity into adjust_velocity_polygon
This is the method which divides by the length of this vector; the
check belongs in here.
2019-06-04 09:06:07 +09:00
Peter Barker de9fa4c730 AC_Avoid: call Polygon_outside directly; avoids losing first point 2019-05-29 15:34:02 +10:00
Peter Barker 4be3a48275 AC_Avoid: adjust for renamed get_polygon_points 2019-05-29 15:34:02 +10:00
Peter Barker 43152a416c AC_Avoid: stop taking references to ahrs, fence, proximity and beacon 2019-05-22 07:48:02 -06:00
Peter Barker 413ef5a3b4 AC_Avoid: add singleton 2018-10-30 12:10:42 +11:00
Randy Mackay 7aae970ae7 AC_Avoid: constify a few local variables 2018-10-26 14:38:04 +09:00
Randy Mackay b7f3140441 AC_Avoid: stop includes margin for intersection calc
the simpler stop feature (as opposed to slide) was not including the margin when looking for intersections with the boundary meaning it could slow too late
2018-10-26 14:38:04 +09:00
JIMWAR 97b5af60f8 AC_Avoid: fix adjust_velocity_polygon
adjust_velocity_polygon function ignoring boundary[0]
2018-10-24 15:37:14 +09:00
murata 3577def8fd AC_Avoid: use elseif because value does not change 2018-04-23 19:45:50 +09:00
murata 29b1a6ed41 AC_Avoid: fix comment 2018-04-23 19:45:37 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas 8ae4047a00 AC_Avoidance: NFC small renames and comment improvements 2018-03-06 09:30:56 +09:00
Randy Mackay be804aa74e AC_Avoid: limit velocity and get-max-speed become public
this allows AP_Follow to use these function
2018-03-05 15:08:08 +09:00
Randy Mackay ebf405e53d AC_Avoid: reduce min and default DIST_MAX values 2018-01-25 11:16:01 +09:00
Randy Mackay a1bf9d66f0 AC_Avoid: default behaviour to stop for Rovers 2018-01-22 17:18:41 +09:00
Randy Mackay ae4ded86a8 AC_Avoid: get_max_speed supports linear acceleration
Also get_stopping_distance supports linear deceleration
2018-01-22 17:18:41 +09:00
Randy Mackay dfaabb543c AC_Avoid: add adjust_speed
this method accepts a heading and speed instead of a velocity vector
2018-01-22 17:18:41 +09:00
Randy Mackay 9d74d82ff6 AC_Avoid: add stopping behaviour 2018-01-22 17:18:41 +09:00
Leonard Hall f48b14b810 AC_Avoidance: accept dt and pass to sqrt controller 2018-01-16 12:13:48 +09:00
Andrew Tridgell d5c55e0dfe AC_Avoidance: removed create() method for objects
See discussion here:

  https://github.com/ArduPilot/ardupilot/issues/7331

we were getting some uninitialised variables. While it only showed up in
AP_SbusOut, it means we can't be sure it won't happen on other objects,
so safest to remove the approach

Thanks to assistance from Lucas, Peter and Francisco
2017-12-14 08:12:28 +11:00
Peter Barker c4734484e7 AC_Avoid: take an AP_AHRS in place of an AP_AHRS_NavEKF 2017-12-08 11:27:37 +09:00
Peter Barker a1c982be4a AC_Avoid: work in metres to avoid extra work 2017-12-08 11:27:37 +09:00
Peter Barker 0fe45ef6b6 AC_Avoid: eliminate get_position and get_alt_above_home 2017-12-08 11:27:37 +09:00
Peter Barker 54010451bf AC_Avoid: check result of AHRS calls
Work in metres to avoid computation
2017-12-08 11:27:37 +09:00
khancyr b44ba29a05 AC_Avoidance: replace AP_InertialNav by AHRS 2017-12-08 11:27:37 +09:00
Lucas De Marchi e68c5a4668 AC_Avoidance: add static create method 2017-09-26 03:01:21 +01:00
Shingo Matsuura 7b0f6edf31 AC_Avoidance: add adjust velocity by beacon fence 2017-06-14 16:07:32 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas 823bee8a31 AC_Avoidance: Use SI units conventions in parameter units
Follow the rules from:
http://physics.nist.gov/cuu/Units/units.html
http://physics.nist.gov/cuu/Units/outside.html
and
http://physics.nist.gov/cuu/Units/checklist.html
one further constrain is that only printable (7bit) ASCII characters are allowed
2017-05-17 18:07:25 +10:00
Randy Mackay 35a965ebc5 AC_Avoidance: add configurable margin
vehicle will attempt to stop MARGIN meters from objects in GPS modes
2017-04-20 18:11:43 +09:00
Randy Mackay 7a7f8eb7c1 AC_Avoidance: only stop below alt-fence if fence is enabled 2017-03-06 18:02:03 +09:00
Randy Mackay 7b3af58634 AC_Avoidance: fix AVOID_ANGLE_MAX parameter description 2017-02-28 15:33:59 +09:00
Randy Mackay 49f4afc2a1 AC_Avoidance: add 2m margin to upward avoidance 2017-02-27 09:48:29 +09:00
Jacob Walser 5829d4b645 AC_Avoidance: Refactor fence.get_safe_alt() to fence.get_safe_alt_max() 2017-02-21 11:26:14 +11:00
Randy Mackay e799e3a342 AC_Avoidance: stop based on upward facing proximity sensor 2017-01-18 09:35:47 +09:00
Randy Mackay 2133fd94ca AC_Avoidance: adjust_velocity_z uses inav get_hgt_ctrl_limit
inertial navigation's get_hgt_ctrl_limit provides an altitude-above-ekf-origin limit while flying with optical flow
2017-01-18 09:35:47 +09:00
Randy Mackay f73efd5249 AC_Avoidance: add adjust_velocity_z
This allows reducing the climb rate to slow the vehicle's climb so it does not breach the altitude fence
2017-01-18 09:35:47 +09:00
Randy Mackay 12dd6e11fb AC_Avoidance: constify get_position 2017-01-18 09:35:47 +09:00
Randy Mackay e7f2c9870a AC_Avoid: add accessor for proximity enabled 2016-12-20 19:48:07 +09:00
Randy Mackay b114d3928e AC_Avoid: fix distance to lean angle logic
Fixes from PR review including
(a) make some local variables const
(b) rename angle_max to veh_angle_max
(c) fix distance_to_lean_pct logic so distance of zero returns maximum lean angle
2016-12-20 19:48:04 +09:00
Randy Mackay 1b582b2009 AC_Avoid: avoidance for non-GPS flight modes 2016-12-20 19:47:58 +09:00
Randy Mackay b46cc623a0 AC_Avoidance: adjust_velocity_polygon accepts body-frame points 2016-11-27 15:05:42 +09:00
Randy Mackay 55d79d9a32 AC_Avoidance: proximity sensor method re-uses polygon fence boundary code 2016-11-27 15:05:41 +09:00
Randy Mackay cdee68174d AC_Avoidance: rename adjust_velocity_polygon_fence 2016-11-27 15:05:39 +09:00
Randy Mackay 79280036de AC_Avoidance: rename adjust_velocity_circle_fence method 2016-11-27 15:05:38 +09:00
Randy Mackay 40c4e75ae7 AC_Avoidance: remove unnecessary const float arguments 2016-11-27 15:05:36 +09:00
murata c808ee2f49 Global: To nullptr from NULL.
RC_Channel: To nullptr from NULL.

AC_Fence: To nullptr from NULL.

AC_Avoidance: To nullptr from NULL.

AC_PrecLand: To nullptr from NULL.

DataFlash: To nullptr from NULL.

SITL: To nullptr from NULL.

GCS_MAVLink: To nullptr from NULL.

DataFlash: To nullptr from NULL.

AP_Compass: To nullptr from NULL.

Global: To nullptr from NULL.

Global: To nullptr from NULL.
2016-11-02 16:04:47 -02:00
Randy Mackay 4808664fb6 AC_Avoidance: allow use of AP_Proximity 2016-10-13 20:21:07 +09:00
murata 36b5d43efb AC_Avoid: delete variable that is only used once in a simple calculation 2016-10-05 16:25:57 +09:00
Randy Mackay f27cf8d388 AC_Avoidance: add adjust_velocity that accepts Vector3f for convenience
We should actually modify this function to scale back the z axis in order to avoid breaching the vertical fence.  Currently breaching the vertical fence is handled within the position controller which is inconsistent.
2016-07-25 20:24:37 +09:00
Peter Barker 692ff22453 AC_Avoid: move closest_point to AP_Math 2016-07-25 20:24:37 +09:00
Daniel Ricketts 865aad7598 AC_Avoid: add support for stopping at polygon fence 2016-06-25 15:55:55 +09:00
Randy Mackay 26a6234a29 AC_Avoid: do not attempt to stop at circular fence if already breached 2016-06-25 15:55:55 +09:00
Randy Mackay c6f9889a25 AC_Avoid: constify get_max_speed
Also get_stopping_distance and get_margin
2016-06-25 15:55:55 +09:00
Randy Mackay a427768087 AC_Avoidance: reduce maximum acceleration to 1m/s/s
This makes the vehicle slow very gently as it approaches the edge of the fence
2016-06-22 11:38:15 +09:00
Daniel Ricketts ff7bc7c0cb AC_Avoidance: add library to stop at circular fence 2016-06-22 11:38:15 +09:00