Commit Graph

1078 Commits

Author SHA1 Message Date
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 a391b14a6d AP_GPS: replace utility functions with compiler builtins 2023-09-12 09:48:53 +10:00
Peter Barker 668e2fa068 AP_GPS: use correct define for DroneCAN GPS drivers 2023-09-03 08:43:03 +10:00
Andrew Tridgell 74139423cb AP_GPS: fixes for macos CAN SITL build 2023-08-29 15:09:48 +10:00
Andrew Tridgell babd2d2033 AP_GPS: removed native_millis/micros 2023-08-24 13:06:40 +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 941e9785d4 AP_GPS_NOVA: avoid infinite reading of bytes
if we have a very fast stream of garbage coming in available() may never return 0
2023-08-15 08:36:13 +10:00
Ryan Friedman 5b21834827 AP_GPS: Switch to sparse endian to make it portable
* Instead of custom algorithm to reduce flash and code maintenance

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-08-11 11:21:41 +10:00
Peter Barker e6ac368972 AP_GPS: make AP_GPS_MAV dependent on HAL_GCS_ENABLED 2023-08-08 11:33:54 +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 00bc4a9e8b AP_GPS: add and use AP_GPS_DRONECAN_ENABLED 2023-08-02 17:46:30 +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 c45c02ce82 AP_GPS: use AP_AHRS_ENABLED in place of HAL_BUILD_AP_PERIPH
the guard here is just against use of the singleton
2023-07-04 10:27:32 +10:00
Peter Barker 5664c0a142 AP_GPS: check delay_ok in one place 2023-07-04 08:15:31 +10:00
Peter Barker c89ec67333 AP_GPS: move AP_RTC::mktime to be ap_mktime
in preparation for AP_RTC_ENABLED
2023-06-27 11:25:11 +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
Andrew Tridgell 64869b6e16 AP_GPS: fixed RTK injection with moving baseline
when 2nd DroneCAN GPS on the bus is the base in moving baseline we
need to be able to inject to it
2023-06-27 10:32:43 +10:00
Peter Barker 6f292c02da AP_GPS: add and use AP_GPS_ENABLED 2023-06-21 22:28:48 +10:00
Andrew Tridgell 0d4018107b AP_GPS: fixed ublox M10S auto-config
this copes with the M10S rejecting multiple-key VALGET calls. We fall
back to fetching one at a time
2023-06-13 11:00:47 +10:00
Andrew Tridgell 531b12e272 AP_GPS: fixed RTCM injection for DroneCAN GPS
need to check broadcast() return
2023-06-08 10:15:50 +10:00
Alexander Keller 6ba526fa25 AP_GPS:Comform to ardupilot undulation definition 2023-06-08 09:48:30 +10:00
Peter Barker 3f70f2104a AP_GPS: use minimize_features.inc for more features 2023-06-06 10:14:02 +10:00
bugobliterator 5026b3d08c AP_GPS: send RTCM Stream message to over dronecan directly 2023-05-31 17:31:09 +10:00
Ryan Friedman 639ba63560 AP_GPS: Remove gsof zero initialization
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-05-30 09:45:29 +10:00
Peter Barker e415b5fda0 AP_GPS: add clarifying comment on _configure_config_set method
it's a bit confusingly named, because it doesn't actually "set" anything - it gets messages from the GPS which are then parsed and responded to based on the received values.
2023-05-29 09:56:20 +10:00
Ryan Friedman f092c22915 AP_GPS: Enforce max of 10 GSOF outputs per the manual
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-05-20 14:23:17 +10:00
Ryan Friedman 77e169b226 AP_GPS: Update GSOF docs with newer data
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-05-20 14:22:15 +10:00
Ryan Friedman a05af3f3c3 AP_GPS: More const for gsofmsgreq
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-05-19 18:43:31 +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 5c815e2c32 AP_GPS: Reduce extra GSOF namespacing since it's all in class scope
* Also remove in s on enums to follow Peter's conventions
* Fixed incorrect style on class and enum names
2023-05-17 18:12:44 +10:00
Ryan Friedman 2f5f77712f AP_GPS: Use enum classes in GSOF
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-05-17 18:12:44 +10:00
Ryan Friedman 29a6ae4ea1 AP_GPS: Add missing const to the rest of the headers
* Related to #23743, but I missed this since I didn't realize the buffer was not modified in-place

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-05-15 12:25:34 +10:00
Ryan Friedman b8f59b0df5 AP_GPS: Remove unused member variable in gsof driver
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-05-12 19:19:43 +10:00
Ryan Friedman 4b2687352c AP_GPS: Add const and WARN_IF_UNUSED to AP_GPS_GSOF
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-05-11 10:41:17 -07:00
Ryan Friedman d6569d6f79 AP_GPS: Use SI unit abbreviation
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-04-26 14:08:01 +10:00
Peter Barker 271571e29c AP_GPS_NMEA: fix stringop truncation failure on g++ 9 2023-04-18 11:44:57 +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 f6fa35a1f7 AP_GPS: fixed name length 2023-04-11 10:31:31 +10:00
Andrew Tridgell 834831bfeb AP_GPS: text messages and more defines 2023-04-11 10:31:31 +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 258158b0bc AP_GPS: rename UAVCAN drivers to DroneCAN 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
Ryan Friedman c6060dd047 AP_GPS: Fix spelling in receiver
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-04-06 09:13:09 +10:00
bugobliterator 09de24f3d2 AP_GPS: replace libuavcan with libcanard based driver 2023-03-29 17:16:39 +11:00