Commit Graph

95 Commits

Author SHA1 Message Date
Andrew Tridgell 3954425f77 AP_ExternalAHRS: allow backends to set default sensor set 2023-12-17 09:47:30 +11:00
Andrew Tridgell cbc14d1fa5 AP_ExternalAHRS: align origin with AHRS origin
automatically set origin to AHRS origin. This means if on boot
external AHRS is not the primary then it will use the origin from the
active backend, preventing a jump on change of backends
2023-12-17 09:47:30 +11:00
Ryan Friedman 7c183f4ab3 AP_ExternalAHRS: Add MicroStrain7 support
* Implement filter state without relying on GPS
* Implement health and initialization check based on filter state
* Fix pre-arm checks missing version
* Add version specifics to microstrain 5 log msgs
* Add utilities to microstrain packet to remove magic number array
  access

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-12-05 11:09:22 +11:00
Andrew Tridgell 2ef560db0b AP_ExternalAHRS: reserve some ExternalAHRS type values 2023-12-01 14:59:57 +11:00
Ryan Friedman be668ddc1b AP_ExternalAHRS: Clarify public interface design intent
* Discussions with Tridge on design intent for these accessors

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-11-28 11:48:22 +11:00
Ryan Friedman ef6105c5e0 AP_ExternalAHRS: Specify brand on all log messages
* The VN driver was likely written before there were multiple types
* The log messages make it seem like core AHRS problems rather than
  issues directly with VN

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-11-14 11:02:26 +11:00
muramura 45fc140e1d AP_ExternalAHRS: Change to Boolean value 2023-11-11 09:06:42 +09:00
Mykhailo Kuznietsov 7f2975d21a AP_ExternalAHRS: Fix some typos
Fixed some typos found in the code.
2023-10-12 18:30:42 +11:00
Peter Barker 429dbefade AP_AHRS: fill in error string when invalid backend specified 2023-09-25 08:11:23 +10:00
Peter Barker f8f28ee767 AP_ExternalAHRS: correct AP_ExternalAHRS init
default clause is in wrong place and shouldn't be present to start with...
2023-08-31 11:08:51 +10:00
Peter Barker 0bb8ec1e57 AP_ExternalAHRS: add missing includes 2023-08-30 12:26:14 +10:00
Ryan Friedman cbc0043b9b AP_ExternalAHRS: Fix nullptr crash on bootup
* If you didn't set the serial port parameter correctly, but enabled MicroStrain AHRS, it would crash on boot
* This is because AP_AHRS calls update() which calls build_packet()

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
Co-authored-by: Peter Hall <33176108+IamPete1@users.noreply.github.com>
2023-08-30 12:21:59 +10:00
Ryan Friedman d8eee6f41a AP_ExternalAHRS: Create common lib for MicroStrain
* Move common parsing to MicroStrain_common
* Add propogation of parsed packet type back to the driver
* Rename the driver to add series-5 specifier
* Unlocks adding 7-series driver with less code duplication
* Add missing includes

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-08-29 10:31:44 +10:00
Ryan Friedman 1839db7c1f AP_ExternalAHRS: Allow multiple external AHRS GPS instances
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-08-24 12:01:32 +10:00
Ryan Friedman cb480d2855 AP_ExternalAHRS: Rename LORD to MicroStrain
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-08-07 19:16:03 +10:00
Ryan Friedman 42abfa9e0e AP_ExternalAHRS: Use sparse-endian be32to<ftype>_ptr
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-06-05 09:09:13 +10:00
Ryan Friedman d0b8e672c0 AP_ExternalAHRS: Switch from type punning to defined behavior
* This was undefined behavior in the C++ standard
* Use the safer options in AP_Common
* Removes a compiler warning

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-06-05 09:09:13 +10:00
Peter Barker b471f9bfac AP_ExternalAHRS: create and use backend defines for AP_ExternalAHRS 2023-04-26 14:09:25 +10:00
Peter Barker de7d5c6899 AP_ExternalAHRS: don't check MINIMIZE_FEATURES when also checking BOARD_FLASH_SIZE
we have an assertion that no board with >1MB of flash is minimized
2023-04-15 09:33:35 +10:00
Peter Barker 74207ea687 AP_ExternalAHRS: add and use a "bool read(c)" method to AP_HAL
this is much less likely to not work vs the int16_t equivalent
2023-03-22 17:59:11 +11:00
Peter Barker f476a47228 AP_ExternalAHRS: specify AP_EXTERNALAHRS_ENABLED for periph in chibios_hwdef.py 2023-03-12 09:35:35 +11:00
Peter Barker c47a698edd AP_ExternalAHRS: honour AP_COMPASS_EXTERNALAHRS_ENABLED 2023-02-22 19:40:13 +11:00
Andrew Tridgell 32ee3002eb AP_ExternalAHRS: added EAHRS_SENSORS parameter
allow selection of what sensors to enable
2023-01-30 09:22:02 +11:00
Iampete1 3d9794a503 AP_ExternalAHRS: VectorNav: remove reset and wait as it causes baro calibration issues 2023-01-03 10:32:20 +11:00
Iampete1 759f035636 AP_ExtneralAHRS: add option to use uncompensated IMU values on vector nav 2023-01-03 10:32:20 +11:00
Iampete1 9040eac91b AP_ExtneralAHRS: VectorNav: get uncompensated IMU values 2023-01-03 10:32:20 +11:00
Iampete1 f441640aba AP_ExternalAHRS: VectorNac: VN-300 remove unused data fields 2023-01-03 10:32:20 +11:00
Iampete1 ec1814da34 AP_ExternalAHRS: add get_name function for reporting 2023-01-03 10:32:20 +11:00
Iampete1 33b09ff0cb AP_ExternalAHRS: add enabled method 2023-01-03 10:32:20 +11:00
Iampete1 8710a651ce AP_ExternalAHRS: VectorNAV: add support for VN-100 2023-01-03 10:32:20 +11:00
Peter Barker 274b6f19bc AP_ExternalAHRS: regularise compass defines
start to make compass backends look like backends from our other libraries
2022-11-15 16:44:38 +11:00
Andrew Tridgell c2b29a92c7 AP_ExternalAHRS: fixes from --ubsan autotest 2022-09-06 10:49:50 +10:00
Peter Barker 74e651e5d7 AP_ExternalAHRS: stop using GCS_MAVLINK.h in header files
... by passing through a reference to a link object instead
2022-08-16 09:45:51 +10:00
Peter Barker e9426b2ff3 AP_ExternalAHRS: correct compilation if AP_Baro_ExternalAHRS isn't available 2022-05-25 18:19:00 +10:00
Andy Piper 4ac73e4ffd AP_ExternalAHRS: nuke clang warnings 2022-03-03 16:34:14 +11:00
Peter Barker 0acccaf4b7 AP_ExternalAHRS: factor substring from allocation_error parameter 2021-10-18 12:49:44 +11:00
Davis Schenkenberger 2026f7efb8 AP_ExternalAHRS: Implement EAHRS Driver for Lord Microstrain AHRS 2021-10-17 08:55:03 +11:00
bugobliterator 224abe7933 AP_ExternalAHRS: use config error instead of panic on allocation failure 2021-09-30 08:51:26 +10:00
Andrew Tridgell 4faa16b0a7 AP_ExternalAHRS: mark logger Write() calls as streaming where appropriate 2021-08-18 10:20:03 +10:00
Tatsuya Yamaguchi 5fd46c02ad AP_ExternalAHRS: remove message when EAHRS_TYPE is None 2021-04-14 14:46:03 +10:00
Andrew Tridgell bb28a58bce AP_ExternalAHRS: added frontend/backend split
allow for multiple backends
2021-04-13 09:36:52 +10:00
Andrew Tridgell ae088f792d AP_ExternalAHRS: added EAHRS_RATE for IMU rate
this allows setting of required data rate from the external AHRS
2021-04-13 09:36:52 +10:00
Patrick José Pereira be37f10d61 AP_ExternalAHRS: Add missing const in member functions
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-03 18:45:14 +11:00
Andrew Tridgell 103d6c54e1 AP_ExternalAHRS: added vnav linux target 2021-01-20 10:06:45 +11:00
Andrew Tridgell 1b60be96d1 AP_ExternalAHRS: added support for external AHRS systems
First supported is VectorNav VN-300 on serial
2021-01-05 21:13:12 +11:00