Commit Graph

230 Commits

Author SHA1 Message Date
Randy Mackay 279b534f67 AP_Proximity: remove duplicate definition
PROXIMITY_NUM_LAYERS is defined in AP_Proximity_Boundary_3D
2021-02-01 14:34:13 +09:00
Randy Mackay 5a0cc08dcc AP_Proximity: refactor Boundary_3D
rename stack to layer
swap order of layer and sector within arrays
rename Boundary_Location to Face
rename get_sector to get_face
rename set_attributes to set_face_attributes
get_distance returns bool and fills in argument instead of returning distance
2021-02-01 14:34:13 +09:00
Rishabh 43717ea55c AP_Proximity: Add OBSTACLE_DISTANCE_3D mavlink message 2021-02-01 14:34:13 +09:00
Rishabh 36bba2e02c AP_Proximity: Convert Proximity Backend drivers to use 3D Boundary methods 2021-02-01 14:34:13 +09:00
Rishabh 4fce715a9a AP_Proximity: Shift methods to Proximity_Boundary_3D class and support 3D Boundary 2021-02-01 14:34:13 +09:00
Rishabh 7569d8bf8e AP_Proximity: Add AP_Proximity_Boundary_3D class 2021-02-01 14:34:13 +09:00
Rishabh c1d67705ce AP_Proximity: Remove Morse backend 2020-11-18 20:23:45 +11:00
Randy Mackay 4381eff482 AP_Proximity: simplify get_horizontal_distances
no need to fill in missing orientations.  This is only used for reporting to the ground stations
2020-10-06 20:52:29 +11:00
Randy Mackay e081d83185 AP_Proximity: Lightware SF45B driver 2020-10-06 20:52:29 +11:00
Randy Mackay 63a21c6c12 AP_Proximity: add correct_angle_for_orientation to backend 2020-10-06 20:52:29 +11:00
Randy Mackay cf020e1d84 AP_Proximity: minor spelling fix for SF40c assert 2020-10-06 20:52:29 +11:00
Peter Barker 460bb7291e AP_Proximity: remove unused variables 2020-10-01 21:13:20 +10:00
Peter Barker 945d19a9c5 AP_Proximity: resolve ambiguity about which distance is in which sector 2020-08-17 11:20:12 +10:00
Peter Barker 574f3a30f9 AP_Proximity: correct output of DISTANCE_SENSOR message 2020-08-17 11:20:12 +10:00
chobitsfan 760e86ff4d AP_Proximity: remove unused definition
`bool initialise()`  is not implemented. Maybe it would be better to remove its definition
2020-07-24 15:35:53 +09:00
Rishabh 8e586bc67d AP_Proximity: Check for valid reading before pushing to OA DB 2020-07-10 15:48:59 +09:00
Randy Mackay 2ca0d400a6 AP_Proximity: remove incorrect comment from SF40c 2020-07-06 13:54:17 +09:00
Rishabh 9b5922786e AP_Proximity: Push 3D data into OA_DB 2020-06-19 09:45:34 +09:00
Randy Mackay ff0460342b AP_Proximity: minor comment fix 2020-06-05 16:57:39 -07:00
Andras Schaffer 43bef1ac9e AP_Proximity: fix proximity ignored zone calulation
It seems there was a typo in the checking of proximity ignored zones.
2020-06-03 16:11:55 +09:00
Iampete1 3618607746 AP_Proximity: AirSimSITL: fix left right swap 2020-04-28 09:37:59 +10:00
Peter Barker 1190b9ff19 AP_Proximity: TeraRangerTower uses intermediate serial class 2020-02-19 11:12:37 +09:00
Peter Barker 107c424a5c AP_Proximity: LightWareSF40C_v09 uses intermediate serial class 2020-02-19 11:12:37 +09:00
Peter Barker 97320e8938 AP_Proximity: TeraRangerTowerEvo uses intermediate serial class 2020-02-19 11:12:37 +09:00
Peter Barker 0d4e72622e AP_Proximity: RPLidarA2 uses intermediate serial class 2020-02-19 11:12:37 +09:00
Peter Barker 788e466c90 AP_Proximity: LightWareSF40C used intermediate serial class 2020-02-19 11:12:37 +09:00
Peter Barker fcdb833f46 AP_Proximity: add intermediate AP_Proximity_Backend_Serial class 2020-02-19 11:12:37 +09:00
Rajat Singhal dccb95efce AP_Proximity: Fix Airsim Proximity sector update
Distance equals least distance in that sector rather than last point sampled
2020-01-08 09:10:54 +09:00
Randy Mackay dac84f4a9d AP_Proximity: integrate oadb ekf-offset change 2020-01-01 13:38:41 +09:00
Randy Mackay 449b8d124b AP_Proximity: remove unused get_horizontal_distance 2020-01-01 13:38:41 +09:00
Randy Mackay 10108819b1 AP_Proximity: sf40c combines seven readings for oadb 2020-01-01 13:38:41 +09:00
Randy Mackay 1d6519af72 AP_Proximity: always use 8 sectors and fix ignore areas 2020-01-01 13:38:41 +09:00
Randy Mackay 1d79ff11b8 AP_Proximity: integrate oadb::queue_push argument swap 2020-01-01 13:38:41 +09:00
Randy Mackay f60ec91993 AP_Proximity: remove unnecessary const from database_push
also shorten current_vehicle_bearing argument to just current_heading
2020-01-01 13:38:41 +09:00
Peter Barker 3942fa2541 AP_Proximity: remove unused include from AP_Proximity_MAV 2019-12-09 11:25:02 +09:00
Peter Barker cff648caf6 AP_Proximity: remove unused AP_AHRS.h include 2019-12-05 22:41:49 +11:00
Peter Barker 8785cc26e8 AP_Proximity: make Status enum class 2019-12-05 16:05:07 +11:00
Randy Mackay 49069c7ad5 AP_Proximity: new lightware SF40C driver
New driver using latest streaming interface
Old driver left in place because older devices cannot be updated
2019-11-15 12:25:53 +08:00
Randy Mackay a747610fc1 AP_Proximity: backup lightware SF40C driver to v09 2019-11-15 12:25:53 +08:00
Peter Barker 0e6f3afe51 AP_Proximity: adjust for renaming of RangeFinder files 2019-11-12 07:14:37 +08:00
Peter Barker 39863bf0b4 AP_Proximity: remove empty constructors
Well, some of them were only essentially empty
2019-10-31 11:58:15 +08:00
Peter Barker 5b2689a7a8 AP_Proximity: use rangefinder singleton 2019-10-31 11:58:15 +08:00
Peter Barker 8fe16f5627 AP_Proximity: use enum class for status 2019-10-31 11:58:15 +08:00
Peter Barker f5f6eb8231 AP_Proximity: correct checking of valid instance in various getters 2019-10-31 11:58:15 +08:00
Peter Barker de7e3acc29 AP_Proximity: use enum class for proximity type
Removes verbiage from AP_Proximity.cpp
2019-10-31 11:58:15 +08:00
Peter Barker 4962b7a98e AP_Proximity: stop passing serial manager around, use singleton 2019-10-31 11:58:15 +08:00
Andrew Tridgell c7fce7568e AP_Proximity: use strtof instead of atof
we don't need double precision
2019-10-28 15:53:16 +11:00
Peter Barker 25fd04d402 AP_Proximity: declare RangeFinder as a class to avoid circular include issue 2019-10-08 11:26:04 +11:00
Andrew Tridgell 1a34fccc71 AP_Proximity: fixed incorrect use of fabs() 2019-10-01 08:12:07 +09:00
Peter Barker a0c6ff95e4 AP_Proximity: polyfence valid() has been renamed 2019-09-28 07:58:48 +09:00
Peter Barker 5fe16d5250 AP_Proximity: cope with polyfence holding boundary points 2019-09-28 07:58:48 +09:00
Randy Mackay 398f427830 AP_Proximity: fix rangefinder backends cm to m conversion 2019-09-19 08:43:11 +09:00
Randy Mackay 2d128e0079 AP_Proximity: remove unused var from AriSimSITL 2019-09-10 09:15:56 +10:00
Andrew Tridgell a4258639c8 AP_Proximity: use strtol instead of sscanf 2019-08-27 15:40:43 +10:00
Rajat Singhal 4af8813014 AP_Proximity: Add license info in Airsim lidar backend 2019-08-15 20:03:31 +10:00
Rajat Singhal 8f1c9759b8 AP_Proximity: Add AirSimSITL lidar sensor 2019-08-04 07:57:46 +10:00
Tom Pittenger 6d1362d569 AP_Proximity: allow MAV driver to accept negative increments and sanity check distances 2019-08-02 09:50:13 -06:00
Tom Pittenger b8dcdca909 AP_Proximity: add Object Avoidance Database, remove old Sector->Location converter 2019-08-02 09:50:13 -06:00
Pierre Kancir 5b745aa1f1 AP_Proximity: pass mavlink_message_t by const reference 2019-07-16 20:51:42 +10:00
Randy Mackay 9c3812e384 AP_Proximity: move copy_locations to backend
also remove unused get_locations
also fix comment for copy_locations method
2019-06-11 13:13:22 +09:00
Tom Pittenger b792fe4b26 AP_Proximity: add Location* object and accessors 2019-06-11 13:13:22 +09:00
Peter Barker d617904726 AP_Proximity: remove dangling update_instance declaration 2019-06-04 19:36:57 +09:00
Tom Pittenger c67a585b68 AP_Proximity: increase angular resoluion to mavlink packet OBSTACLE_DISTANCE 2019-05-29 18:22:53 -07:00
Randy Mackay 2061621951 AP_Proximity: default YAW_CORR to 0
The default of 22 was good when the Lightware SF40C was our only proximity sensor but not good now that we have numerous options
2019-05-29 11:17:28 +09:00
Randy Mackay ff3d3d256c AP_Proximity: RPLidarA2 supports yaw-correction and orientation params 2019-05-29 11:17:28 +09:00
Peter Barker dbbf09d018 AP_Proximity: minor performance enhancements 2019-05-28 09:19:48 +10:00
Peter Barker b086b39f89 AP_Proximity: add AP::proximity() singleton getter 2019-05-22 07:48:02 -06:00
Pierre Kancir 72e4e69add AP_Proximity: move location_update to Location and rename to offset_bearing 2019-04-06 09:10:28 +11:00
murata fb544cab78 AP_Proximity: Change from method reference to macro 2019-03-28 12:02:55 +11:00
Peter Barker 19d8ffb4e4 AP_Proximity: stop passing through old fence contains_return_point parameter 2019-02-04 16:52:42 +09:00
Dmitri Ranfft 221c4ca3cc AP_Proximity: Removed the 3 bit limitation for the enumeration 2019-02-04 11:08:54 +09:00
Randy Mackay 12d6799aaa AP_Proximity: fix morse sector calc 2018-12-14 09:18:23 +09:00
Randy Mackay f7f50d84c9 AP_Proximity: minor typo fix 2018-12-14 09:18:23 +09:00
Peter Barker 3a7ab5f67e AP_Proximity: rename send_extended_status1 to send_sys_status 2018-12-10 12:52:41 +09:00
Andrew Tridgell e883c6392f AP_Proximity: added a MorseSITL sensor
this interfaces with the laser scanner in morse
2018-12-04 18:29:41 +11:00
Peter Barker e0ab431ebd AP_Proximity: add override keyword where required 2018-11-08 11:30:12 +11:00
Randy Mackay 7fa592e673 AP_Proximity: increase MAV driver timeout to 500ms
this comes after testing with ROS/mavros and discovering the update rate is only 4hz
2018-10-26 14:38:04 +09:00
Raouf 8bfb1d2445 AP_Proximity: add support for OBSTACLE_DISTANCE message 2018-10-02 10:37:13 +09:00
pierre-louis.k bf274cd9db AP_Proximity: Change min and max range to support both 60m and 600Hz 2018-08-25 10:22:11 +09:00
Mateusz Sadowski 08332102fe AP_Proximity: Fix sensor order on TeraRanger Tower Evo 2018-08-25 10:22:11 +09:00
Mateusz Sadowski 4b8b8347f2 AP_Proximity: Correctly handle TeraRanger Tower Evo initialization 2018-08-25 10:22:11 +09:00
Mateusz Sadowski f1b550647d AP_Proximity: Change TeraRanger Tower Evo sequence mode to Tower 2018-08-25 10:22:11 +09:00
Mateusz Sadowski 2ca567f409 AP_Proximity: Add support for TeraRanger Tower Evo 2018-08-25 10:22:11 +09:00
Peter Barker e7e0ee0b50 AP_Proximity: add methods covering sensor health, enable and present 2018-06-26 10:25:28 +10:00
Patrick José Pereira 50613c3800 AP_Proximity: Use SITL singleton
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2018-06-26 00:02:01 +01:00
Michael du Breuil f8b10aaa53 AP_Proximity: Make singleton and add an interface to check what type is loaded 2018-05-16 23:21:41 +01:00
Randy Mackay 436f514142 AP_Proximity: resolve compiler warning and format fix 2018-05-15 10:16:30 +09:00
Michael du Breuil 636782375e AP_Proximity: Revert an excessive scan introduced in #8375
Also removes 2 unneeded initilizers, and removes an unneeded runtime
check
2018-05-14 10:53:21 +09:00
Michael du Breuil 00c512c7e2 AP_Proximity: Small fixups to the rangefinder backend 2018-05-12 09:24:04 +09:00
Peter Barker 0c14a309f7 AP_Proximity: correct debugginf for RPLidarA2 2018-04-10 16:25:54 +09:00
Peter Barker 51991fdd76 AP_Proximity: fix compilation warning in LightWare driver
../../libraries/AP_Proximity/AP_Proximity_LightWareSF40C.cpp: In member
function ‘void AP_Proximity_LightWareSF40C::request_new_data()’:
../../libraries/AP_Proximity/AP_Proximity_LightWareSF40C.cpp:235:6:
warning:
‘__builtin___snprintf_chk’ output may be truncated before the last
format
character [-Wformat-truncation=]
 void AP_Proximity_LightWareSF40C::request_new_data()
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/stdio.h:862:0,
                 from ../../libraries/AP_Common/AP_Common.h:179,
                 from ../../libraries/AP_HAL/UARTDriver.h:5,
                 from ../../libraries/AP_HAL/HAL.h:11,
                 from ../../libraries/AP_HAL/AP_HAL_Main.h:19,
                 from ../../libraries/AP_HAL/AP_HAL.h:8,
                 from
../../libraries/AP_Proximity/AP_Proximity_LightWareSF40C.cpp:16:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:65:44: note:
‘__builtin___snprintf_chk’ output between 10 and 16 bytes into a
destination
of size 15
        __bos (__s), __fmt, __va_arg_pack ());
                                            ^
../../libraries/AP_Proximity/AP_Proximity_LightWareSF40C.cpp: In member
function ‘bool
AP_Proximity_LightWareSF40C::send_request_for_distance()’:
../../libraries/AP_Proximity/AP_Proximity_LightWareSF40C.cpp:275:6:
warning:
‘__builtin___snprintf_chk’ output may be truncated before the last
format
character [-Wformat-truncation=]
 bool AP_Proximity_LightWareSF40C::send_request_for_distance()
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/stdio.h:862:0,
                 from ../../libraries/AP_Common/AP_Common.h:179,
                 from ../../libraries/AP_HAL/UARTDriver.h:5,
                 from ../../libraries/AP_HAL/HAL.h:11,
                 from ../../libraries/AP_HAL/AP_HAL_Main.h:19,
                 from ../../libraries/AP_HAL/AP_HAL.h:8,
                 from
../../libraries/AP_Proximity/AP_Proximity_LightWareSF40C.cpp:16:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:65:44: note:
2018-04-04 18:04:57 +09:00
Holger Steinhaus 5af02dde59 AP_Proximity: fix possible overflow/truncation issue 2018-03-16 22:37:16 +01:00
Peter Barker e7d48977ba AP_Proximity: compiler warning fixes
In file included from
../../libraries/AP_Proximity/AP_Proximity_RPLidarA2.cpp:30:
../../libraries/AP_Proximity/AP_Proximity_RPLidarA2.h:88:10: warning:
private field '_payload_data' is not used [-Wunused-private-field]
    bool _payload_data;
         ^
../../libraries/AP_Proximity/AP_Proximity_RPLidarA2.h:91:10: warning:
private field '_skip' is not used [-Wunused-private-field]
    bool _skip;
         ^
../../libraries/AP_Proximity/AP_Proximity_RPLidarA2.h:92:10: warning:
private field '_rp_reset' is not used [-Wunused-private-field]
    bool _rp_reset;
         ^
../../libraries/AP_Proximity/AP_Proximity_RPLidarA2.h:95:13: warning:
private field '_element_len' is not used [-Wunused-private-field]
    uint8_t _element_len[2];
            ^
../../libraries/AP_Proximity/AP_Proximity_RPLidarA2.h:96:13: warning:
private field '_element_num' is not used [-Wunused-private-field]
    uint8_t _element_num;
            ^
5 warnings generated.
2018-03-02 09:26:37 +09:00
Steven Josefs 6e0ff8b169 AP_Proximity: add support for RP Lidar A2
This is a 360degree lidar with up to 16m range
2017-09-18 08:28:11 +09:00
Peter Barker e0bea597c0 AP_Proximity: use rangefinder backend accessors 2017-08-15 18:30:45 +01:00
khancyr f60e7df309 AP_Proximity: correct missing use of PROXIMITY_MAX_DIRECTION 2017-07-14 18:59:36 +01:00
Randy Mackay d636e85eac AP_Proximity: SF40c driver treats zero distances as invalid 2017-07-08 14:09:17 +09:00
Pierre Kancir 38540b4dcc AP_Proximity: add PROXIMITY_MAX_DIRECTION and PROXIMITY_SENSOR_ID_START 2017-06-08 01:22:07 +01:00
Randy Mackay 33ef3bd51d AP_Proximity: MAV driver gets distance validity check 2017-06-06 20:41:54 +09:00
Randy Mackay 0b7ec0dc64 AP_Proximity: validate range finder distances 2017-05-31 16:26:42 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas adc919c7fc AP_Proximity: 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
Dr.-Ing. Amilcar Do Carmo Lucas 6c14f498f7 AP_Proximity: Add missing @RebootRequired: True 2017-05-15 21:51:19 +09:00
Randy Mackay 3ad5c3775e AP_Proximity: rename get_distances to get_horizontal_distances
Also fix existing bug in return
2017-04-20 18:11:43 +09:00
Randy Mackay 09e3d6b7f0 AP_Proximity_MAV: healthy if either horiz or vert positions received 2017-04-20 18:11:43 +09:00
Randy Mackay fd94ab43fa AP_Proximity: minor fix to param description
No functional change
2017-03-01 14:59:44 +09:00
Randy Mackay a093bcb05f AP_Proximity: add rangefinder driver
This allows avoidance using upward or forward facing range finders
2017-02-27 15:18:09 +09:00
Luis Rodrigues 27c5aca6b5 AP_Proximity: add support for TeraRangerTower 2017-02-03 14:27:52 +09:00
Randy Mackay a47e215a8e AP_Proximity: add get_upward_distance
This allow support for upward facing proximity sensor received through a DISTANCE_SENSOR message.
Also added SITL test
2017-01-18 09:35:47 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas bebb128d22 AP_Proximity: Add missing parameter units 2017-01-16 19:07:27 +00:00
Randy Mackay 6aeef76768 AP_Proximity: fix get_boundary_points in case of multiple sensors 2017-01-16 16:38:18 +09:00
Randy Mackay 7c7144fd8f AP_Proximity: minor comment spelling fix 2017-01-11 21:48:23 +09:00
Randy Mackay 74f1899aeb AP_Proximity: boundary_points requires only one valid distance
Object avoidance is possible with just one valid distance
Boundary is initialised in new init_boundary function to be 100m from
vehicle
If sectors do not have valid distance measurements, we use the distance
from adjacent sectors.  This conveniently leads to a concave shaped
boundary that keeps the vehicle from travelling into the dataless sector.
2017-01-11 21:48:23 +09:00
Randy Mackay a0a8472a44 AP_Proximity: fix consumption of distance-sensor messages 2017-01-11 21:48:23 +09:00
Randy Mackay d4daa10045 AP_Proximity: add MAV type to parameter descriptions 2017-01-10 11:00:00 +09:00
murata c2521dd650 AP_Proximity: Change sprintf method to secure snprintf method. 2017-01-07 02:33:46 +00:00
Dr.-Ing. Amilcar Do Carmo Lucas 8419045aea Spell in comments 2017-01-06 10:57:39 -08:00
Randy Mackay e497dedf35 AP_Proximity: add MAV type
This accepts DISTANCE_SENSOR messages from eight sectors around the vehicle
2016-12-27 08:37:48 +09:00
Randy Mackay 2076da3a72 AP_Proximity: minor comment fix
No functional change
2016-12-24 13:55:28 +09:00
Randy Mackay fbbd13db75 AP_Proximity: add get_object methods for use with non-GPS avoidance 2016-12-20 19:47:56 +09:00
Randy Mackay 54a87ad35c AP_Proximity: set minimum boundary distance
AC_Avoidance will not stop if it thinks the vehicle is on or outside the polygon.  Setting a minimum distance ensures the vehicle is always within the polygon.
2016-11-27 15:05:48 +09:00
Randy Mackay 57ae14ab4c AP_Proximity: add get distances, distance_max, distance_min
These are used to send distance-sensor messages to the ground station
2016-11-27 15:05:45 +09:00
Randy Mackay 6293fa1595 AP_Proximity: add boundary points for object avoidance
This returns a fence which can be used for object avoidance by AC_Avoidance
2016-11-27 15:05:35 +09:00
Randy Mackay 26332251f5 AP_Proximity: add ignore areas
Only SF40c uses these ignore areas for now at least.
It is safe to increase the eeprom locations for the 2nd proximity instance because we only define a single instance.
2016-11-27 15:05:27 +09:00
Randy Mackay 87dea46f5d AP_Proximity: add get_closet_object for use in pre-arm checks 2016-11-27 12:03:06 +09:00
Randy Mackay a56c9545bd AP_Proximity: SITL driver filles in backend sector data 2016-11-27 12:03:04 +09:00
Randy Mackay f594a5a7d6 AP_Proximity: move sectors to backend
This prepares for sectors to be re-used by the SITL driver
2016-11-27 12:03:01 +09:00
Andrew Tridgell ae2dc5570e AP_Proximity: added SITL proximity backend
using fence points for avoidance
2016-11-14 15:53:43 +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
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
Randy Mackay c3087edbe8 AP_Proximity: add library and SF40C driver 2016-10-13 20:21:07 +09:00