Commit Graph

207 Commits

Author SHA1 Message Date
Peter Barker 062ee71135 AC_Fence: simplify fence loading
There's only one caller to this, who didn't force loading - so remove
the unused parameter.

Also remove the _boundary_loaded boolean; it was only set to true in one
place - just before the sole caller called the function!
2019-05-30 16:03:58 +09:00
Peter Barker 2822c635ec AC_Fence: correct get_boundary_points to account for closing point
Also rename from get_polygon_points
2019-05-29 15:34:02 +10:00
Pierre Kancir 4dbac3de60 GCS_Common: remove mavlink send_buf usage 2019-04-23 09:41:00 +10:00
Pierre Kancir e4987f17b9 AC_Fence: use get_distance_NE instead of location_diff 2019-04-08 08:00:52 -07:00
Peter Barker 3629273959 AC_Fence: use enum class for AltFrame enumeration 2019-03-19 10:31:18 +11:00
Michael du Breuil 281d3b1189 AC_Fence: check the return value of fetching the EKF origin 2019-03-12 08:27:42 +09:00
Peter Barker 8991fd8fcf AC_Fence: clear breaches if boundary invalid etc 2019-03-08 08:57:27 +09:00
Peter Barker 434f22cf40 AC_Fence: correct fence upload reload boundary trigger
The check in AC_Fence::check_fence_polygon is for boundary points, not
boundary loaded
2019-03-08 08:57:27 +09:00
Peter Barker c04d2145a1 AC_Fence: correct fence pre-arm position check 2019-03-07 11:42:39 +09:00
Dr.-Ing. Amilcar do Carmo Lucas f2ca3556cd AC_Fence: 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
Peter Barker 7198234a44 AC_Fence: clean headers 2019-02-19 09:16:26 +11:00
Peter Barker 4c3a93d8ca AC_Fence: remove keywords.txt 2019-02-17 00:29:38 -08:00
Peter Barker 5448cfda80 AC_Fence: remove always-true contains_return_point parameter 2019-02-04 16:52:42 +09:00
Peter Barker a52a1f710f AC_Fence: add singleton (AP::fence()) 2019-01-31 13:44:29 +09:00
Peter Barker 6313cbca0b AC_Fence: stop taking reference to AHRS in constructor 2019-01-31 11:25:38 +09:00
chobitsfan e7f87f767a AC_Fence: add SmartRTL and Brake actions 2019-01-25 15:43:18 +09:00
Peter Barker 9deee2a805 AP_Fence: adjust for Location_Class and Location unification 2019-01-16 11:45:29 +11:00
Peter Barker c4bee518bb AC_Fence: rename send_extended_status1 to send_sys_status 2018-12-10 12:52:41 +09:00
Peter Barker 9c0bb9c47d AC_Fence: do not enable altitude fence on Rover by default 2018-10-30 12:10:42 +11:00
Randy Mackay 06aa29eb2a AC_Fence: get_polygon_points does not include return point 2018-10-26 14:38:04 +09:00
Raouf e55369b1c8 AC_Fence: add always land option 2018-07-26 10:08:45 +09:00
Steven Josefs e8debde4b7 AC_Fence: hide ALT_MAX parameter from Rover 2018-01-22 20:42:31 +09:00
Peter Barker c8e0ae6890 AC_Fence: adjust fence sys_status failed based on position and parameters 2018-01-09 17:15:19 +00:00
Peter Barker e30a6bbce3 AC_Fence: rename sys_status methods from geofence_ to sys_status_ 2018-01-09 17:15:19 +00:00
Peter Barker a5aafab7ff AC_Fence: use pre-arm checks for sanity checks
Magically resetting people's parameters not a great look.
2018-01-09 17:15:19 +00:00
Peter Barker 155407956c AC_Fence: add a pre-arm check for polygon fence validity
Also change SYS_STATUS bit to be unhealthy if boundary invalid
2018-01-09 17:15:19 +00:00
Peter Barker 588b0c17c8 AC_Fence: remove AC_FENCE_TYPE_NONE define
0 is the appropriate value for a bitmask which is empty
2017-12-28 15:38:37 +00:00
Peter Barker aa482bae40 AC_Fence: remove argument to check()
Also, rename check_fence() to check()
2017-12-28 15:38:37 +00:00
Peter Barker 0f94fde434 AC_Fence: get home distance directly from ahrs 2017-12-15 01:42:49 +00:00
Peter Barker 20e295c23a AC_Fence: check supplied location within fence rather than current loc 2017-12-15 01:24:13 +00:00
Andrew Tridgell 25b9a7e711 AC_Fence: 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 86fe1671c1 AC_Fence: fix comment 2017-12-13 10:04:50 +09:00
Peter Barker e8151a7ec1 AC_Fence: require home as well as origin for prearm checks 2017-12-13 10:04:50 +09:00
Peter Barker 1ecfdffa76 AC_Fence: methods to help populate SYS_STATUS 2017-12-13 10:04:50 +09:00
Peter Barker ac3f030a34 AC_Fence: factor out check_fence_alt_max
NFC
2017-12-13 10:04:50 +09:00
Peter Barker d04a4dd0f8 AC_Fence: factor out check_fence_circle
NFC
2017-12-13 10:04:50 +09:00
Peter Barker d379c7bbd9 AC_Fence: factor out check_fence_polygon
NFC
2017-12-13 10:04:50 +09:00
Peter Barker 518399c13a AC_Fence: stop looking at EKF filter status
Fence has no business looking at what the filter status is.

Fence should only care whether it can currently get a position.
2017-12-13 10:04:50 +09:00
khancyr 65373b85f0 AC_Fence: replace AP_InertialNav by AHRS 2017-12-13 10:04:50 +09:00
Michael du Breuil 983a330cd5 AC_Fence: Remove unused duplicate methods
The Vector2l methods completely duplicate the code of the Vector2f
methods, but aren't used anywhere. They are therefore subject to bitrot
and aren't adding any value. (Also shrinks the build by 8 bytes for some
reason, given that it's unused code I expected to see no difference in
binary size).
2017-11-21 17:04:11 +09:00
Lucas De Marchi 52686ec838 AC_Fence: add static create method 2017-09-26 03:01:21 +01:00
khancyr f583121433 AC_Fence: reset fences breach on disable
Also rename enable function parameter
2017-07-27 20:41:40 +09:00
Peter Barker ae6df4fc04 AC_Fence: remove global static send_statustext_chan 2017-07-11 23:53:53 +01:00
Dr.-Ing. Amilcar Do Carmo Lucas 9ac429ab13 AC_Fence: 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 c1a25c25f7 AC_Fence: return failure message 2017-03-25 10:50:58 +09:00
Randy Mackay 8171645876 AC_Fence: pre-arm check requires GPS if polygon fence enabled 2017-03-25 10:50:58 +09:00
Jacob Walser 3c6df7cc0e AC_Fence: Add minimum altitude limit
get_safe_alt() -> get_safe_alt_max() and get_safe_alt_min()
2017-02-21 11:26:14 +11:00
murata 0f486aeecb AC_Fence: shorten calculation of return value 2016-12-15 10:42:48 +09:00
murata b48ea53f60 Revert "AC_Fence: Activate the create flag."
This reverts commit c63a6a2738.
2016-12-09 23:55:29 +00:00
murata c63a6a2738 AC_Fence: Activate the create flag. 2016-12-09 17:25:27 +00: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
Mathieu OTHACEHE 152edf7189 Global: remove mode line from headers
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Peter Barker d188504b8b AC_Fence: remove unused variable _boundary_revalidate 2016-10-24 08:57:56 -02:00
Randy Mackay e7020b218a AC_Fence: revert param Enable to be FLAG_ENABLE
This reverts commit 5e811b8463.
2016-08-31 08:55:31 +09:00
Tom Pittenger 5e811b8463 AC_Fence: set param "Enable" to be FLAG_ENABLE 2016-08-04 11:29:30 -07:00
murata b6c27b58a8 AC_Fence: magic number 4 changed to size of uint32_t 2016-08-04 15:26:18 +09:00
Randy Mackay e820506c5a AC_Fence: add polygon fence check to check_destination_within_fence 2016-07-04 18:25:03 +09:00
Randy Mackay a9d1dcd6ac AC_Fence: trigger reloading of polygon fence if update from GCS
The GCS can either modify a point with a mavlink message or directly change the FENCE_TOTAL parameter value
2016-07-04 18:25:03 +09:00
Randy Mackay 5153c3d195 AC_Fence: merge with add polygon support 2016-06-25 15:55:55 +09:00
Randy Mackay d91805edbf AC_Fence: add support for polygon fences 2016-06-25 15:55:55 +09:00
Randy Mackay f0bb1ac1d2 AC_Fence: AC_Polygon_loader loads points from eeprom
Thanks to Peter Barker for his work to library-ify Plane's geofence which was the basis for this work.
2016-06-25 15:55:55 +09:00
Daniel Ricketts e60710332b AC_Fence: add accessors to return radius and safety margin 2016-06-22 11:38:15 +09:00
Randy Mackay 4829dbb55d AC_Fence: rename check_destination_within_fence and accept distances in meters 2016-05-21 09:56:12 +09:00
Saloni Jain ff843448aa AC_Fence: Added a new function to check whether the guided waypoint is within the fence 2016-05-21 09:56:12 +09:00
Lucas De Marchi 7dc3942ad4 AC_Fence: replace header guard with pragma once 2016-03-16 18:40:39 +11:00
Lucas De Marchi 2591261af6 Global: rename min and max macros to uppercase
The problem with using min() and max() is that they conflict with some
C++ headers. Name the macros in uppercase instead. We may go case by
case later converting them to be typesafe.

Changes generated with:

	git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)max(/\1MAX(/g'
	git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)min(/\1MIN(/g'
2015-12-01 16:28:09 -02:00
Caio Marcelo de Oliveira Filho ccd03bcf60 AC_Fence: use millis/micros/panic functions 2015-11-20 12:27:11 +09:00
Lucas De Marchi 831d8acca5 Remove use of PROGMEM
Now variables don't have to be declared with PROGMEM anymore, so remove
them. This was automated with:

    git grep -l -z PROGMEM | xargs -0 sed -i 's/ PROGMEM / /g'
    git grep -l -z PROGMEM | xargs -0 sed -i 's/PROGMEM//g'

The 2 commands were done so we don't leave behind spurious spaces.

AVR-specific places were not changed.
2015-10-30 14:35:16 +09:00
Gustavo Jose de Sousa d030e817d9 AC_Fence: standardize inclusion of libaries headers
This commit changes the way libraries headers are included in source files:

 - If the header is in the same directory the source belongs to, so the
 notation '#include ""' is used with the path relative to the directory
 containing the source.

 - If the header is outside the directory containing the source, then we use
 the notation '#include <>' with the path relative to libraries folder.

Some of the advantages of such approach:

 - Only one search path for libraries headers.

 - OSs like Windows may have a better lookup time.
2015-08-11 16:28:41 +10:00
Andrew Tridgell aa1bfb1ca7 AC_Fence: revert AP_Math class change 2015-05-05 13:27:04 +10:00
Tom Pittenger 94ffc9b942 AC_Fence: compiler warnings: apply is_zero(float) or is_equal(float) 2015-05-05 13:26:55 +10:00
Randy Mackay f06c859d93 AC_Fence: add comment re check_fence method 2015-04-14 16:10:09 +09:00
Jonathan Challinger 05fda4ee4c AC_Fence: accept curr_alt parameter instead of getting alt from inav 2015-04-14 16:10:07 +09:00
Jonathan Challinger f06cc5d0c1 AC_Fence: change inav to const reference 2015-04-14 16:10:02 +09:00
Randy Mackay 9aba885231 AC_Fence: fix prearm check
before arming the EKF's pred_horiz_pos_abs flag should be used
2015-03-18 21:25:47 +09:00
Randy Mackay 4754ecc9e2 AC_Fence: remove example sketch
This only tested compiling anyway
2015-03-13 16:40:52 +09:00
Randy Mackay 99046ebda6 AC_Fence: fix example sketch 2015-01-28 17:15:32 +09:00
Randy Mackay c24e997fb2 AC_Fence: use inertial nav's get_filter_status 2015-01-22 14:39:40 +09:00
Andrew Tridgell 55ec316718 AC_Fence: updates for new AP_Baro API 2015-01-09 11:50:56 +11:00
Andrew Tridgell 4fcf46005b AC_Fence: fixed example build 2014-10-24 12:10:39 +11:00
Andrew Tridgell f721e020f5 AC_Fence: fixed example build 2014-08-13 21:45:43 +10:00
Randy Mackay 71df1eb94f AC_Fence: fix example sketch 2014-07-29 12:00:46 +09:00
Andrew Tridgell 2b3becd252 AC_Fence: fixed example build 2014-07-25 17:53:27 +10:00
Randy Mackay 0c0521a555 AC_Fence: append f to floating point constants 2014-07-16 14:38:48 +09:00
Randy Mackay cc9c3bb5aa AC_Fence: increase default radius to 300m
300m is still within line of sight and this should reduce the number of
false breaches due to bad GPS positions
2014-07-14 11:25:04 +09:00
Randy Mackay e855cfec02 AC_Fence: add 10sec manual recovery
This resolves issue #461 by giving the pilot a minimum of 10 seconds to
attempt to manually recover before the autopilot will attempt to retake
control to bring the copter home or land.
2014-04-27 11:11:07 +09:00
Andrew Tridgell 7b2d56a8cb AC_Fence: disable example build
fails to build with compiler error
2014-04-01 06:38:25 +11:00
Andrew Tridgell 4507c0fc4c AC_Fence: fixed example build 2014-03-19 12:13:57 +09:00
Randy Mackay 4484a4232a AC_Fence: fix example sketch 2014-02-15 06:09:08 +11:00
Randy Mackay 4c02212404 AC_Fence: minor comment fix 2014-02-15 05:27:39 +11:00
Randy Mackay c4df3ea187 Fence: parameter display name fix 2013-11-26 22:18:05 +09:00
Andrew Tridgell 979c6ae3b6 AC_Fence: update for AHRS API changes 2013-11-04 21:21:42 +11:00
Randy Mackay c602f7da0c AC_Fence: fix example sketch 2013-10-27 21:53:22 +09:00
Tobias b94d6848de AC_Fence: replace "_ina->geT_position().z" with more efficent
"_inav->get_altitude()"
2013-10-27 13:41:19 +09:00
Tobias 596c7a25b7 AC_Fence: make member pointer to AP_InertialNav const, remove unused
gps-pointer member
2013-10-27 13:41:09 +09:00
Randy Mackay f144de21b4 AC_Fence: fix example sketch 2013-09-26 17:52:13 +09:00
Andrew Tridgell e1aa6e3ff1 libraries: fixed examples for no flash_leds() callback 2013-09-19 18:38:28 +10:00
Andrew Tridgell 9be02fb493 AC_Fence: changed to AP_Vehicle.h 2013-09-13 11:46:32 +10:00
Andrew Tridgell e6794239ca AC_Fence: fixed example build 2013-08-30 13:01:36 +10:00
Randy Mackay 04b84664e5 AC_Fence: add safety margin parameter
This will allow auto modes to proactively avoid breaching the fence
2013-08-15 16:05:38 +09:00
Randy Mackay 47f5c9b7a4 AC_Fence: remove unused gps pointer 2013-08-03 19:04:59 +09:00
Randy Mackay de59ea3ddc Copter Fence: reduce circle @Range to 30m 2013-07-27 10:28:33 +09:00
Andrew Tridgell 04835b095f AC_Fence: fixed examples build 2013-07-15 14:09:18 +10:00
Andrew Tridgell 56694fd9b1 AC_Fence: fixed example build 2013-05-08 16:44:50 +10:00
Randy Mackay bd75de6a22 AC_Fence: reduce to 150m radius and 100m high
100m high,
2013-05-03 14:57:37 +09:00
Randy Mackay 2d17688363 AC_Fence: add backup fence
Also includes fixes from code review with Tridge
2013-05-01 17:05:04 +09:00
Randy Mackay 9910d6d1cd AC_Fence: first implemenation of library 2013-04-27 11:14:05 +09:00