Commit Graph

617 Commits

Author SHA1 Message Date
bugobliterator 805a8707da AP_RangeFinder: replace libuavcan with libcanard based driver 2023-03-29 17:16:39 +11:00
Andrew Tridgell e300db5be0 AP_RangeFinder: allow re-init if no sensors found
needed for AP_Periph with slow startup sensors or sensors that power
on separately to the CAN node
2023-03-06 19:48:07 +11:00
rishabsingh3003 d084ae0153 AP_RangeFinder: Allow multiple USD-D1-CAN 2023-03-02 07:56:56 +11:00
rishabsingh3003 52bdca950b AP_RangeFinder: Add Lua Script based backend 2023-02-21 16:47:56 +11:00
Iampete1 b155731f33 AP_RangeFinder: skip GPIO arming check on analog backend 2022-12-13 12:06:06 +11:00
Peter Barker df8276997a AP_RangeFinder: remove GCS.h from library header files 2022-11-16 18:29:07 +11:00
Peter Barker a6510daf6a AP_RangeFinder: tidy AP_SerialManager.h includes 2022-11-08 09:49:19 +11:00
Peter Barker 1b7ced4e2e AP_RangeFinder: remove conversion code from 2019 2022-10-20 08:00:32 +11:00
Peter Barker 5e7ae1213f AP_RangeFinder: remove sitl pointer from header
similar to what we do elsewhere, just grab the singleton in the cpp file rather than taking a pointer to it
2022-10-11 10:50:13 +11:00
jackhong12 4a4f361a17 all: use CLASS_NO_COPY() macro 2022-10-04 11:23:04 +11:00
Andrew Tridgell b7b02bd369 AP_Rangefinder: fixed out of range issue with benewake uart lidars
this impacts the TF03 180m lidar
2022-09-06 12:34:41 +10:00
Peter Barker 03ce5f62d2 AP_RangeFinder: fix examples 2022-08-19 18:33:58 +10:00
Henry Wurzburg a46c774698 AP_RangeFinder: add TeraRange Neo Rangefinder 2022-08-09 09:01:34 +10:00
Andrew Tridgell a0902e39fe AP_RangeFinder: default orientation to NONE for AP_Periph
this removes a setup step for AP_Periph rangefinders
2022-08-03 09:04:25 +10:00
Peter Barker 7e5808a97b AP_RangeFinder: add prearm for analogue/pwm pin conflicts 2022-07-22 09:09:25 +10:00
Andrew Tridgell 0a7757a720 AP_RangeFinder: support Benewake H30 radar
30m max radar
2022-07-13 18:47:57 +10:00
Peter Barker ffc4910c7e AP_RangeFinder: reduce verbiage when detecting serial rangefinders 2022-07-13 18:39:06 +10:00
Peter Barker f4df4298a0 AP_RangeFinder: make LeddarOne calculations more efficient 2022-06-22 21:15:18 +10:00
Peter Barker 90362a4849 AP_RangeFinder: tighten scope of stack variable definition 2022-06-22 21:15:18 +10:00
Peter Barker 6923f20ce6 AP_RangeFinder: stop persisting detections in LeddarOne driver
We don't use these readings except immediately after where we store them - so don't store them persistently.
2022-06-22 21:15:18 +10:00
Peter Barker deba0b712b AP_RangeFinder: correct creation/use of TFMINI_ADDR_DEFAULT
Named incorrectly and defined in wrong file...
2022-06-21 09:15:20 +10:00
Peter Barker 3a347d32ca AP_RangeFinder: allow rangefinder backends to be individually compiled in 2022-06-21 09:15:20 +10:00
Andrew Tridgell 2e1af59057 AP_Rangefinder: fixed scaling on PWM driver and enable SCALING parameter
this fixes a bug introduced here:

  https://github.com/ArduPilot/ardupilot/pull/18829

and allows the scaling of PWM rangefinders to be adjusted
2022-06-17 08:21:44 +10:00
Andrew Tridgell 5413893c91 AP_RangeFinder: fixed use of configured() vs configured_in_storage() 2022-06-06 13:11:50 +10:00
Ruffalo-sunghwan 86cd266010 AP_RangeFinder : correct comment spelling 2022-05-24 20:27:45 +09:00
Peter Barker 51246fda45 AP_RangeFinder: enable SITL rangefinder for sim-on-hardware 2022-05-24 10:38:57 +10:00
murata 5728d2fd7c AP_RangeFinder: Console output can be disabled 2022-05-17 09:53:06 +10:00
Peter Barker cef436b272 AP_RangeFinder: implement distance_cm_orient in terms of distance_orient 2022-05-03 09:23:37 +10:00
Peter Barker 50fc43b2d2 AP_RangeFinder: tidy includes 2022-05-03 09:14:58 +10:00
Peter Barker 414d3d27db AP_RangeFinder: add PARAMETER CONVERSION comments 2022-04-28 10:17:11 +10:00
Mohammad Hefny ce8405b7a4 AP_Rangefinder: preserve new address 2022-04-27 10:16:40 +10:00
Henry Wurzburg 4a2aeb03f3 AP_RangeFinder: add note to desc's on how to determine GPIO pin numbers 2022-04-24 08:21:01 +09:00
Henry Wurzburg 8ab92f42cd AP_RangeFinder: add build option for Rangefinders 2022-03-08 14:33:38 -08:00
Peter Barker c7d72821da AP_RangeFinder: add AP_RANGEFINDER_LEDDARVU8_ENABLED 2022-03-08 11:29:13 +11:00
Peter Barker ade6b3ddfe AP_RangeFinder: include cleanups 2022-03-01 11:21:33 +11:00
Peter Barker 6fb8a4fc15 AP_RangeFinder: correct grammar on type field 2022-02-08 10:42:56 +09:00
chobits 051104a3f7 AP_RangFinder: support various maxbotix serial sonar 2022-01-18 11:08:34 +11:00
Andrew Tridgell 366ff24941 AP_RangeFinder: use have_serial when detecting
avoid find_serial() as it changes port options
2021-12-21 11:07:44 +11:00
Hwurzburg b95d3df7ab AP_RangeFinder: change UAVCAN to DroneCAN in param metadata 2021-12-15 09:53:21 +11:00
Peter Barker 8973dfa8e0 AP_RangeFinder: use HAL_LOGGING_ENABLED in place of HAL_BUILD_AP_PERIPH 2021-12-14 10:34:06 +11:00
Andrew Tridgell 7ab343dd66 AP_RangeFinder: fixed support for multiple Benewake_CAN CAN lidars 2021-12-04 16:31:35 +11:00
Shiv Tyagi e1a528213d AP_Rangefinder: Use default address for TFMiniPlus I2C unless configured
This fixes the issue #13419. If RNGFNDx_ADDR is not configured, it uses default address for TFmini i2c
2021-11-30 10:09:24 +11:00
Andrew Tridgell 4f6da39bb7 AP_CANManager: support Benewake CAN 2021-11-30 09:49:20 +11:00
Andrew Tridgell 3f85eab272 AP_RangeFinder: added Benewake CAN Lidars
includes support for setting CAN ID and min SNR
2021-11-30 09:49:20 +11:00
Peter Barker f6aeb01994 AP_RangeFinder: signal quality reporting 2021-11-23 18:20:58 +11:00
Wynn, Jesse Stewart a7321cbae1 AP_RangeFinder_LightWareSerial: check dist for lost signal flags
consider messages valid only if they are non-negative AND if the value is not a known lost-signal reading
2021-11-18 12:06:57 +11:00
TunaLobster ba9381f40c AP_RangeFinder: fix ADC scaling on IOMCU 2021-11-16 14:12:43 +11:00
Shiv Tyagi 516eafa45b AP_Rangefinder: fail RF prearm checks for NoData/NotConnected statuses
Earlier we only failed RF checks if we could not detect an RF instance but we should also fail it if the RF is not connected or we receive no data.
2021-11-13 09:47:39 +09:00
divyateja04 001f6a29ee AP_RangeFinder: removed empty constructors 2021-10-31 09:49:25 +11:00
Andrew Tridgell 4f2bec72b6 AP_RangeFinder: rename uLanding to USD1_Serial
this was rebranded by the vendor Ainstein a long time ago
2021-10-26 15:31:12 +11:00
Andrew Tridgell c1b9585926 AP_RangeFinder: average over 100Hz frames in USD1 CAN driver
this reduces noise
2021-10-26 15:31:12 +11:00
Andy Piper a2bb0b01e8 AP_RangeFinder: convert APM_BUILD_COPTER_OR_HELI() to APM_BUILD_COPTER_OR_HELI 2021-10-26 11:42:12 +11:00
Sebastian Quilter 0f7c3e3964 AP_RangeFinder: make rangefinder ranges m rather than cm 2021-10-21 21:28:53 +11:00
Randy Mackay 85dbb70df5 AP_RangeFinder_NMEA: add hondex custom message support 2021-10-20 19:46:21 +11:00
Iampete1 f667c098a2 AP_RangeFinder: analog: check for valid pin 2021-10-06 18:42:51 +11:00
Shiv Tyagi 9729377bb3 AP_Rangefinder : make get_temp const
This makes backend get_temp methods const

Co-Authored-By: Josh Henderson <69225461+hendjoshsr71@users.noreply.github.com>
2021-10-03 09:21:31 -04:00
Gone4Dirt e0af10886b AP_RangeFinder: Add APM_BUILD_Heli 2021-09-29 19:55:48 +10:00
Iampete1 17e8ea0136 AP_RangeFinder_Params: update PIN discription 2021-09-15 17:31:54 +10:00
Iampete1 0d3c00cb96 AP_Rangefinder: MAVLink: accept data only from configured orentation 2021-09-01 17:50:58 +10:00
Pierre Kancir bcfb07b39f AP_Rangefinder: fix override in constructor 2021-08-26 21:48:19 +10:00
bugobliterator e51d358552 AP_RangeFinder: use typename SIM instead of SITL as it conflicts with namespace name 2021-08-05 07:25:31 +10:00
bugobliterator 4312213e18 AP_RangeFinder: change class name from SITL::SITL to SITL::SIM 2021-08-05 07:25:31 +10:00
bugobliterator 98f5eb28db AP_RangeFinder: use separate register_driver method while contructing CAN Driver 2021-07-23 16:01:29 +10:00
Andrew Tridgell a0ef4f76e2 AP_RangeFinder: replaced Pixhawk with more appropriate wording in docs 2021-07-22 07:48:12 +10:00
Siddharth Purohit 0795225475 AP_RangeFinder: Use HAL_CANMANAGER_ENABLED instead of HAL_ENABLE_LIBUAVCAN_DRIVERS 2021-06-24 09:02:42 +10:00
Michael du Breuil b3a1e6a1ce AP_RangeFinder: Rearrange parameters to reduce memory usage
Saves 4 bytes per instance, and with 10 instances this gives us an extra
40 bytes of RAM
2021-06-22 10:08:02 +10:00
Pierre Kancir 117ca8a6ef AP_Rangefinder: make backend get_reading() pure virtual 2021-06-09 10:52:00 +09:00
Pierre Kancir 88b5ff8c6f AP_Rangefinder: make get_temp const 2021-06-09 10:52:00 +09:00
Siddharth Purohit 2e41077347 AP_RangeFinder: fix using labs on unsigned value subtraction 2021-05-26 17:40:19 +10:00
Randy Mackay fee30b4447 AP_RangeFinder: add get_temp and implement for NMEA driver 2021-04-20 09:17:48 +10:00
PYBrulin 240bfeb6bd AP_RangeFinder: TeraRangerI2C added case of out of range measurement 2021-04-06 10:44:13 +10:00
PYBrulin afe9573900 AP_RangeFinder: TeraRangerI2C redefining the output distance logic with OutOfRange cases 2021-04-06 10:44:13 +10:00
Randy Mackay 5912052a39 AP_RangeFinder: lightware legacy I2C retry count to 20
This is consistent with the non-legacy I2C protocol
2021-03-17 21:23:14 +09:00
murata 09f04e8a5a AP_RangeFinder: Devices are enabled and disabled by type
AP_RangeFinder: Devices are enabled and disabled by type

AP_RangeFinder: Delete some description of I2C function address.
2021-02-05 09:44:27 +11:00
Patrick José Pereira efffed0510 AP_RangeFinder: Add missing const in member functions
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-03 18:45:14 +11:00
Peter Barker 78b49a2c35 AP_RangeFinder: maxbotix: use i2c-address parameter 2021-01-19 11:20:47 +11:00
Peter Barker 496267115c AP_RangeFinder: MAVLink: use larger of min ranges / smaller of max ranges 2021-01-06 15:33:41 +11:00
Peter Barker cba5f142a7 AP_RangeFinder: correct MAVLink backend's out-of-range checks 2021-01-06 15:33:41 +11:00
Peter Barker 223e775a3c AP_RangeFinder_MAVLink: only set sensor type if we accept a reading 2021-01-06 15:33:41 +11:00
Peter Barker 40eb9a8b99 AP_RangeFinder: do not start the mavlink rangefinder as healthy
Also takes the opportunity to clean things up a little
2021-01-06 15:33:41 +11:00
Andrew Tridgell 66c05bef76 AP_RangeFinder: added USD1 CAN driver
also known as uLanding CAN
2021-01-01 17:29:54 +11:00
murata 282590668d AP_RangeFinder: Make measurement time and call back time static constant
Co-authored-by: Pierre Kancir <pierre.kancir.emn@gmail.com>
2020-12-30 18:29:35 +11:00
Tatsuya Yamaguchi 4dc5162d0a AP_RangeFinder: change i2c reading frequency to 50Hz 2020-12-19 08:14:54 -03:00
ashvath 54708d916b AP_RangeFinder: TFminiPlus driver outputs init failure to ground station 2020-12-19 08:14:54 -03:00
Tatsuya Yamaguchi b0ee6393ae AP_RangeFinder: TFminiPlus: set frame rate to 250hz 2020-12-19 08:14:54 -03:00
Peter Barker 1c57eed66c AP_RangeFinder: remove unused voltage_mv_orient method
This is really backend-specific data and shouldn't be exposed
2020-12-06 16:49:43 +11:00
Andrew Tridgell 0c05e9a2e7 AP_RangeFinder: fixed handling of instance numbers
if a backend allocation failed then we could end up with the backend
being assigned to the wrong instance number. Switch to using
_add_backend() everywhere, and pass the instance number to
_add_backend() to ensure that it always uses the correct slot.

Also added comment explaining how num_sensors() works when we have a
sparse set of rangefinders configured
2020-12-01 10:53:08 +11:00
Brent McLaughlin e241433c89 AP_Rangefinder: change lightware lost signal timer to 20
The LightWare lost signal timer is set to 20 by the manufacturer.
2020-12-01 10:34:54 +11:00
murata bbc673c668 AP_RangeFinder: Change rangefinder number 10 to A 2020-11-17 11:46:25 +11:00
Lucas De Marchi 4be9b4171b AP_RangeFinder: TFMiniPlus: respect max configured via param
Do like other drivers do and cap the maximum reported value with what is
configured in the parameter.
2020-11-11 19:23:41 +11:00
Lucas De Marchi 0e63a833e9 AP_RangeFinder: TFMiniPlus: fix out-of-range returned a no-data
Other drivers consider that they received data even if the value is
reported as "out of range" by sensor. On the I2C driver for TFMiniPlus
we considered this case, too. However when the signal strength is very
low (and thus the distance would likely be out of range), we would end up
ignoring the new sample. With enough samples without any value this
would lead the status to turn to "NoData".
2020-11-11 19:23:41 +11:00
Peter Barker 914316a529 AP_RangeFinder: remove unused variables 2020-10-01 21:13:20 +10:00
Peter Barker dd8361ba33 AP_RangeFinder: remove default case from Rangefinder init switch
Allows the compiler to help the programmer fill in required code
2020-09-10 20:52:06 +10:00
yaapu bc21e505e3 AP_RangeFinder: aligned msp message data struct name to gps,baro and mag 2020-09-09 06:35:50 +10:00
Peter Barker 72b49efc78 AP_RangeFinder: create and use new AP_HAL::PWMSource object 2020-09-08 16:10:50 +10:00
Rajat Singhal e9b3c54e6d AP_Rangefinder: Add SITL option in param description 2020-09-02 17:25:43 +10:00
Andrew Tridgell 34430e9d6c AP_RangeFinder: allow separate enable of MSP rangefinder 2020-09-02 05:56:46 +10:00
Andrew Tridgell 84f7589f2d AP_RangeFinder: allow separate enable of MSP rangefinder 2020-09-02 05:56:46 +10:00
Andrew Tridgell 17173871a4 AP_RangeFinder: fixed non-MSP build 2020-09-02 05:56:46 +10:00
yaapu 699ffcbcd2 AP_RangeFinder: added support for MSP based range finders 2020-09-02 05:56:46 +10:00