Commit Graph

387 Commits

Author SHA1 Message Date
Peter Barker ebfbcacfe3 AP_GPS: tidy pre_arm_checks 2024-07-02 09:56:40 +10:00
Andrew Tridgell 1e075aeb80 AP_GPS: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell fe42171268 AP_GPS: make get_RelPosHeading boolean 2024-04-23 10:32:43 +10:00
Peter Barker b03b8309ef AP_GPS: copy GPS metadata in for pre-per-instance-parameters
allows to not break older firmware in terms of available metadata
2024-04-10 16:37:35 +09:00
Peter Barker a0b2753766 AP_GPS: remove blended GPS from small boards
those boards which are not including all backends will lose blended after this
2024-03-26 10:57:35 +11:00
Peter Barker f487a25e09 AP_GPS: move blended-GPS functions into AP_GPS_Blended
collects all of these together in preparation for making a backend
2024-03-20 18:27:28 +11:00
Peter Barker 2a010623b2 AP_GPS: allow forwards/backwards for DroneCAN type autoconfig
ArduPilot configures a connected DroneCAN GPS based on its GPS Type.

Given parameter name changes, ArduPilot must be able to configure both new and old AP_Periphs, and new AP_Periphs have to cope with being configured by old ArduPilots.
2024-03-19 19:50:12 +11:00
Peter Barker 9726e55d1c AP_GPS: rename GPS_ to GPS1_ 2024-03-19 19:50:12 +11:00
Peter Barker 50c36de6a4 AP_GPS: add GPS parameter conversion functions 2024-03-19 19:50:12 +11:00
Peter Barker 21fc013016 AP_GPS: use subgroup to hold GPS instance parameters 2024-03-19 19:50:12 +11:00
Peter Barker 8bd05941a1 AP_GPS: stop passing serial manager to GPS init
it can get this via the singleton
2024-03-19 07:28:55 +11:00
Peter Barker 4811a10e1a AP_GPS: exclude more code based on HAL_LOGGING_ENABLED 2024-03-19 07:28:23 +11:00
Peter Barker 8ab3b0db37 AP_GPS: correct update_primary check
takes an instance, not a type
2024-03-12 20:50:18 +11:00
Peter Barker 466b4b6c2e AP_GPS: create convenience methods is_rtk_base and is_rtk_rover 2024-03-12 08:51:11 +11:00
Peter Barker b4f5d49adb AP_GPS: remove redundant check
get_type has this sanity check
2024-03-12 08:51:11 +11:00
Peter Barker 093709cbe3 AP_GPS: avoid use of _type
some of these methods are taking the instance in externally.  Protect by using get_type
2024-03-12 08:51:11 +11:00
Andrew Tridgell 0f6f738a33 AP_GPS: added option to decode RTCM injected data
this allows for redundent RTCM links (eg. WiFi and SiK links for light
show drones) without causing corruption into the GPS.

If the GPS_DRV_OPTION bit is set then we instantiate a separate RTCM3
decoder per mavlink channel, and only inject when we get a full packet
that passes the RTCM 24 bit CRC
2024-03-06 19:38:06 +11:00
Andrew Tridgell d894f7ac5d AP_GPS: do initial probe at default baudrate
this makes for much faster probe for most users
2024-02-29 11:00:40 +11:00
Andrew Piper 6d6c790e37 AP_GPS: fragments_received is a bitmask not a count 2024-02-26 09:23:08 +11:00
Peter Barker 21a01c5587 AP_GPS: remove dead GPS_MINDGPS variable 2024-02-22 14:41:29 +11:00
Andrew Tridgell 4fca2ee852 AP_GPS: prevent announcing DroneCAN at 5Hz 2024-02-22 13:27:54 +11:00
Peter Barker 494d72503a AP_GPS: use probing when probing for GPS, add detected message 2024-02-20 19:35:01 +11:00
Andrew Tridgell 6aaf6883ef AP_GPS: make L1/L5 check work on M10 modules too
tested on SierraAerospace L1L5 module
2024-01-21 12:23:12 +11:00
bugobliterator 78b0ddcf45 AP_GPS: add support for setting L5 override 2024-01-21 12:23:12 +11:00
Peter Barker fa8f3b5715 AP_GPS: allow compilation with HAL_LOGGING_ENABLED false 2024-01-17 18:25:55 +11:00
Michael du Breuil 772dbfb04f AP_GPS: SBF supports yaw from dual antennas
Co-authored-by: Andrew Tridgell <andrew@tridgell.net>
Co-authored-by: Randy Mackay <rmackay9@yahoo.com>
2023-11-28 11:17:51 +11:00
Ryan Friedman 201c66e417 AP_GPS: Fix GSOF autobaud detection msg
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-11-14 10:26:01 +11:00
Ryan Friedman 08d88ce7c6 AP_GPS: Use GPS_COM_PORT param in GSOF driver
* Instead of hard coding to COM2, allow users to set it
* The enum is confusing, so this needs a wiki entry
* Use the same port in requestBAUD
* If the user configures an invalid param, send an error
* Add values for the GSOF COM ports
* Fix bug in RS232 being port 3 instead of port 0
* Use set_default for the typical user value when the GSOF driver is run

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-11-10 13:38:48 +11:00
Gone4Dirt 3edaea9be9 AP_GPS: Remove GPS_TC_BLEND 2023-11-02 15:51:52 +11:00
Mykhailo Kuznietsov 3a7e939a6c AP_GPS: Fix some typos
Fixed some typos found in the code.
2023-10-12 18:30:42 +11:00
Peter Barker 2175a4a271 AP_GPS: allow for compilation without AP_RTC_ENABLED 2023-10-11 19:17:27 +11:00
Peter Barker 88dd8130f6 AP_GPS: correct placement of voiding clause
should be voided when no logging, not just on periph...
2023-10-10 08:37:57 +09:00
Andrew Tridgell 4cabe0f223 AP_GPS: prevent use of blended GPS with moving baseline
when moving baseline is enabled the rover is slaved to the base for
position and velocity, adding no additional useful data. Only the yaw
comes from the rover
2023-09-30 09:05:08 +10:00
Andrew Tridgell 4e61fb3f26 AP_GPS: allow GPS moving baseline rover at 3Hz
users with busy CAN bus often get significiantly lower GPS rates on a
moving baseline rover, preventing arming. This PR relaxes the required
frame rate as the EKF is quite happy with 3Hz yaw and the yaw is the
only data consumed from a moving baseline rover
2023-09-30 09:05:08 +10:00
Peter Barker f358ddd771 AP_GPS: add an AP_GPS_FixType header
useful when you need nice symbols for the numbers, but are not compiling the GPS headers in
2023-09-27 14:14:57 -07:00
Peter Barker 0824eca776 AP_GPS: use AP_GPS_ENABLED to exclude more code when GPS not compiled in 2023-09-27 16:38:15 +10:00
Andrew Tridgell 89bd6ab218 AP_GPS: implement the GPS_DRV_OPTION for ellisoid height in mode drivers
this allows a lot more drivers to use the GPS_DRV_OPTION but to use
ellisoid height. Particularly useful for DroneCAN GPS modules

using ellisoid height instead of AMSL is useful in some specialised
application
2023-09-21 19:36:26 +10:00
Peter Barker 668e2fa068 AP_GPS: use correct define for DroneCAN GPS drivers 2023-09-03 08:43:03 +10:00
Ryan Friedman 01cd42d1e7 AP_GPS: Allow multiple external AHRS GPS instances
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-08-24 12:01:32 +10:00
Peter Barker 6ee9f01ffb AP_GPS: avoid use of mavlink constructs when GCS not compiled in 2023-08-08 11:33:54 +10:00
Peter Barker bf005731a9 AP_GPS: tidy is_healthy calculations
this removes some duplicate code and simplifies the flow of control
2023-08-08 11:31:18 +10:00
Peter Barker 407cfc22ca AP_GPS: remove code if blended instance is not available 2023-08-01 10:03:19 +10:00
Peter Barker 5664c0a142 AP_GPS: check delay_ok in one place 2023-07-04 08:15:31 +10:00
Andrew Tridgell 848e1bfdf8 AP_GPS: ensure uart buffer sizes are OK for RTK
rover needs higher tx size, base needs higher rx size
2023-06-27 10:32:43 +10:00
Peter Barker a16c9cf64e AP_GPS: log fragments used/fragments discarded for RTCM injection data 2023-05-17 18:37:43 +10:00
Ryan Friedman 1e9403dca6 AP_GPS: Add covariance output to AP_GPS matching ROS NavSatFix
* Zero every iteration in case GPS quality degrades or fix is lost
* Use float precision for now

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-04-14 12:06:42 +10:00
Andrew Tridgell 645fd82507 AP_GPS: rename more variables, types and defines 2023-04-11 10:31:31 +10:00
Andrew Tridgell 5952eb1249 AP_GPS: update header references 2023-04-11 10:31:31 +10:00
Andrew Tridgell 8829f54d89 AP_GPS: rename AP_UAVCAN to AP_DroneCAN 2023-04-08 07:11:23 +10:00
Peter Barker 3c3f383601 AP_GPS: decouple status enumeration from MAVLink fix types
This moves us towards being able to compile the GPS library without having the MAVLink headers available.  We shouldn't need those headers when building for Periph.

If the headers are available then we ensure our values match mavlink so we can do a simple cast from one to the other
2023-03-22 14:23:41 +11:00