Commit Graph

86 Commits

Author SHA1 Message Date
Andrew Tridgell 91a5cfea6b AP_ExternalAHRS: added set_origin() call
and remove code that aligns origin to AHRS, this will be handled by
the AHRS common origin logic
2024-09-10 09:28:50 +10:00
James O'Shannessy 39f7d7a3ad AP_ExternalAHRS: Allow InertialLabs to be used as build option properly
build_options cannot autodetect InertialLabs since the feature is extracted as AP_EXTERNAL_AHRS_INERTIALLABS_ENABLED (without the underscore).
This allows you to define in/out InertialLabs properly.
2024-08-13 21:32:11 +10:00
Peter Barker c3b6127b1b AP_ExternalAHRS: correct VectorNAV handling of error term 2024-08-13 08:38:21 +10:00
BLash d7ecf5fbc5 AP_ExternalAHRS_VectorNav: Consolidate EAH3 definition to single method
Resolve SITL failures due to multiply defined logger message by pulling the call to a single method
2024-07-29 15:52:29 +10:00
BLash 1d1bb5724e AP_ExternalAHRS_VectorNav: Address review comments
Remove unnecessary header
Switch parameters to default initialization
Change pointer casting to prevent a const_cast, and remove doubled sync byte when echoing ASCII messages
Fix Valgrind report by preventing use of nmea_printf on buffers which may not be null-terminated
2024-07-29 15:52:29 +10:00
BLash 50980ee03e AP_ExternalAHRS_VectorNav: Update SIM to match new message definitions
Redefine messages to 3 INS packets, and send as appropriate
Resolve SITL failures due to too-long logger message headers
2024-07-29 15:52:29 +10:00
BLash d4ca5fe868 AP_ExternalAHRS_VectorNav: Split IMU and EKF message
In AHRS Mode, split the single message to an IMU packet and an AHRS packet; in EKF Mode, split the two messages into an IMU message, an EKF packet, and a GNSS packet.
Simplify message header definition to consolidate and eliminate the need for static asserts
Update healthy logic and use to represent new packet structure
Replace EAH3 message with messages per-packet
Add Ypr as configured output in the EKF message
2024-07-29 15:52:29 +10:00
BLash 34031cc6b6 AP_ExternalAHRS_VectorNav: Bugfixes and review comment address
"VNERR" does not match beginning of message_to_send, so have to prevent it from returning due to the string compare. Also must prevent exiting the decode before the sentence has completed so that we can go on to print the error code term.
Fix bug preventing disabling of ASCII measurements
Instead of snprintf the command to message_to_send then executing run_command, allow run_command to accept a string and format spec
Add check to ensure message_to_send is greater than length 6 before attempting to read past 6
2024-07-17 17:49:18 +10:00
BLash ed6ee51783 AP_ExternalAHRS_VectorNav: Minor code clarity improvements
Add clarity to send_command_blocking by improving comment and directly returning instead of breaking
2024-07-17 17:49:18 +10:00
BLash 1288810c70 AP_ExternalAHRS_VectorNav: Handle VNERR responses
Print received VNERR response to console and continually retry sending the configuration message, instead of panicing
2024-07-17 17:49:18 +10:00
BLash 024d50ed09 AP_ExternalAHRS: VectorNav: Disable ASCII messages on both ports, rather than just active port
This change prevents a commonly seen baudrate overflow error on the unused port.
Also pause asynchronous communications during initial configuration.
2024-07-17 17:49:18 +10:00
BLash d5ff3ed35a AP_ExternalAHRS: VectorNav: Add response validation to all sent commands
Expands wait_register_response (and renames to send_command_blocking)
to accept any arbitrary command, and uses the new method for all sent
commands
2024-07-17 17:49:18 +10:00
BLash 271f08fc03 AP_ExternalAHRS: VectorNav: Add support for sensors outside VN-100 and VN-300
Includes naming changes to match new broadened usage
2024-07-05 21:41:22 +10:00
Andrew Tridgell 5756b9a3de AP_ExternalAHRS: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Ryan Friedman 2dc547bec2 AP_ExternalAHRS: Fix duplicate condition
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2024-05-14 09:58:59 +10:00
Ryan Friedman b81a5deefe AP_ExternalAHRS: Add pre-arm for misconfigured EAHRS_SENSORS and GPS_TYPE
* This catches when there's a mismatch of GPSx_TYPE and EAHRS_SENSORS
  when GPS is enabled
* Before this pre-arm, failure to set GPS_TYPE2 to 21 (ExternalAHRS)
  resulted in silent rejection of the data in AP_GPS because the default
is off
* And fix a little logging bug

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2024-04-30 09:18:46 +10:00
Ryan Friedman 6fc8185716 AP_ExternalAHRS: Only use GPS data when populating GPS fields
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2024-03-26 11:23:06 +11:00
Ryan Friedman 35451c7021 AP_ExternalAHRS: Check backend pre-arm before origin
* This allows the backend to report more detailed errors
* Before this, many pre-arm errors were hidden by origin failure
* If pre-arm could report multiple errors, that would be ideal

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2024-03-26 11:22:06 +11:00
Ryan Friedman 95ac178f20 Save flash, reduce code duplication
* Add generic health and time utils
* Fix bug only checking first GNSS system
* Use common logging struct
* Improve pre-arm log checks

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2024-03-26 11:22:06 +11:00
Ryan Friedman 9edc0f8ec6 AP_ExternalAHRS: Don't send init message till booted up
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2024-03-26 11:22:06 +11:00
Ryan Friedman d383a19c29 AP_ExternalAHRS: Use state watching instead
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2024-03-26 11:22:06 +11:00
Ryan Friedman 67b89a9b1f AP_ExternalAHRS: Provide warning for init failure
* If the device hasn't initialized in 5 seconds, give a warning

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2024-03-26 11:22:06 +11:00
Ryan Friedman dc2815e9f5 AP_ExternalAHRS: Use filter data to populate EKF status report
* Variances vs uncertainties may still be off
* Requires enabling the following packets in SensorConnect:
  * Position Uncertainty (LLH)
  * Velocity Uncertainty (NED)

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2024-03-26 11:11:39 +11:00
Peter Barker 84a81bebfe AP_ExternalAHRS: rename GPS_ to GPS1_ 2024-03-19 19:50:12 +11:00
Ryan Friedman 3cb4d2ec3b AP_ExternalAHRS: Populate orientation from filter
* Populating AHRS orientation from IMU was not correct

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2024-03-15 18:11:22 +11:00
Pulak Gautam 2d5e6a5f98 AP_ExternalAHRS: added missing #if AHRS logging 2024-03-05 17:11:38 +11:00
Andrew Tridgell 0aee2a436c AP_ExternalAHRS: check for origin in pre-arm check 2024-02-27 21:10:20 +11:00
Andrew Tridgell 9770855c9d AP_ExternalAHRS: make get_accel() and get_gyro() bool 2024-02-27 21:10:20 +11:00
Andrew Tridgell 9fd3e4169a AP_ExternalAHRS: added support for GPS disable and fwd flight
allow backends to determine if we are in fixed wing flight and/or the
GPS is disabled by the user
2024-02-27 21:10:20 +11:00
Andrew Tridgell cb53e64293 AP_ExternalAHRS: added EAHRS_LOG_RATE and common logging
common logging for all EAHRS backends
2024-02-27 21:10:20 +11:00
Jackwooh f67d895677 AP_ExternalAHRS: Reserve aaeron ID
Added new EAHRS_TYPE
2024-01-21 07:33:17 +11:00
Peter Barker f92b02afd0 AP_ExternalAHRS: allow compilation with HAL_LOGGING_ENABLED false 2024-01-17 18:25:55 +11:00
Peter Barker f722457854 AP_ExternalAHRS: correct compilation with MicroStrain5 disabled 2024-01-15 09:39:41 +11:00
Peter Barker 7898d6f107 AP_ExternalAHRS: correct compilation when baro and compass externalahrs disabled 2024-01-15 09:39:41 +11:00
Henry Wurzburg 319202a233 AP_ExternalAHRS: add InertialLabs to type parameter 2024-01-01 13:18:08 +11:00
Andrew Tridgell 1d0fc4e87c AP_ExternalAHRS: fixed InertialLabs gyro/accel data
this fixes a flapping CI test
2023-12-29 06:29:52 +11:00
Andrew Tridgell 2842166b06 AP_ExternalAHRS: avoid uart owner issue
ensure we own uart before read
2023-12-26 06:21:42 +11:00
Ryan Friedman 1d805555f5 AP_ExternalAHRS: Fix typos in configuration for microstrain7
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-12-19 09:32:55 +11:00
Ryan Friedman dee0ca2f34 AP_ExternalARHS: Don't offer IMU by default
* Since MicroStrain won't support >400Hz yet

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-12-18 16:03:35 +11:00
Andrew Tridgell 757607e4f8 AP_ExternalAHRS: added InertialLabs backend 2023-12-17 09:47:30 +11:00
Andrew Tridgell 771dfdf826 AP_ExternalAHRS: added location extrapolation
this copes better with slow backends
2023-12-17 09:47:30 +11:00
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