Commit Graph

1031 Commits

Author SHA1 Message Date
Andrew Tridgell 9547a2a6ab 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
2024-01-07 10:59:28 +11:00
Andrew Tridgell daa44701e9 AP_GPS: fixed RTK injection when first module is a BASE
this is a partial backport of #24132 which fixes RTK injection when
the 1st GPS module is a DroneCAN RTK rover. Without this change RTCM
injection for RTK fix on the base will only work if it happens to come
up as the first module
2024-01-07 10:59:26 +11:00
Andrew Tridgell 570f5f0c43 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
2024-01-07 10:59:25 +11:00
Alexander Keller d648e2e21b AP_GPS:Comform to ardupilot undulation definition 2024-01-07 10:59:25 +11:00
Peter Barker 84bf020897 AP_GPS: correct config boards include
Important to include AP_HAL_Boards.h directly, rather than relying on someone else having done it or getting it transitively
2023-03-19 09:08:41 +11:00
Henry Wurzburg eeb72637ec AP_GPS:make Unicore reset to rover in all cases 2023-03-07 10:57:20 +11:00
Tom Pittenger fe37282f77 AP_GPS: allow external libraries to detect CAN instance 2023-03-02 09:22:15 +11:00
Henry Wurzburg 7e214b2695 AP_Compass: add GPYW metadata 2023-03-02 08:37:32 +11:00
Pierre Kancir 8d962f915e AP_GPS: change isnanf for isnan 2023-02-27 04:15:24 -08:00
Andrew Tridgell fd0bf49ca5 AP_GPS: don't try and configure M10 options on non-M10 GPS
this fixes a pre-arm failure "GPS 1 failing configuration checks" on
non-M10 GPS modules, including AP_Periph

it also adds the ublox unconfigured msgs to the DroneCAN GNSS.Status
errors field for easier diagnosis of this type of issue in the future
2023-02-18 15:33:13 +11:00
Peter Barker 5423dd0210 AP_GPS: avoid using struct Location
clang reports this could be a problem when compiling under some EABIs.  Remove it from most places as it is just noise, replace with class where we want to avoid including Location.h
2023-02-04 22:51:54 +11:00
Andrew Tridgell 7a741a0a2d AP_GPS: fixed use of undulation for GPS2_RAW
GPS2_RAW needs to use undulation of 2nd receiver
2023-01-08 13:30:11 +11:00
Andrew Tridgell 17c25780c7 AP_GPS: support UNIHEADINGA message for Unicore NMEA
this allows for good yaw even without a RTK fix, which makes yaw with
dual-antenna Unicore GPS modules much more useful
2023-01-08 13:30:11 +11:00
Andrew Tridgell f53c865c7a AP_GPS: only create GPS logs for active GPS backends 2022-12-20 10:23:58 +11:00
Andrew Tridgell fc5ae600ef AP_GPS: fixed handling of empty HDT/THS sentences
fixes #22432
2022-12-20 10:23:58 +11:00
Andrew Tridgell 761e4a05e2 AP_GPS: don't consume Heading message if we have RelPosHeading
this avoids 2 conflicting yaw sources
2022-12-20 10:23:58 +11:00
Andrew Tridgell b0c006deca AP_GPS: suppress string truncation warnings 2022-12-20 10:23:58 +11:00
Andrew Tridgell 898187950e AP_GPS: give yaw information for AP_Periph from Unicore GPS
this allows for CAN GPS yaw with length and height checks with unicore
GPS
2022-12-20 10:23:58 +11:00
Andrew Tridgell 2fd575aca2 AP_GPS: allow for DroneCAN GPS other than u-blox rover with yaw
single module, dual antenna GPS can give yaw information
2022-12-20 10:23:58 +11:00
Andrew Tridgell d7a3c643a6 AP_GPS: improved unicore setup
log version information and improve auto-bauding
2022-12-20 10:23:58 +11:00
Andrew Tridgell 3c1a54c3df AP_GPS: added measured lag for Unicore GPS
measured as 0.14s from flight log
2022-12-20 10:23:58 +11:00
Andrew Tridgell 9cebe3b880 AP_GPS: added a common velocity_to_speed_course()
this saves flash using common code
2022-12-20 10:23:58 +11:00
Andrew Tridgell 29f1c31854 AP_GPS: added GPYW logging for GPS yaw
this makes it much easier to debug GPS yaw issues, by logging the raw
data even if the yaw is rejected
2022-12-20 10:23:58 +11:00
Andrew Tridgell c453ff1ce2 AP_GPS: fixed vertical velocity with AGRICA support
and add health check for unicore GPS
2022-12-20 10:23:58 +11:00
Andrew Tridgell 55683c51f5 AP_GPS: review changes 2022-12-20 10:23:58 +11:00
Andrew Tridgell d2d6dc8ce4 AP_GPS: only give time if we have a 3D fix
and ensure we configure rate for GGA and RMC for Unicore
2022-12-20 10:23:58 +11:00
Andrew Tridgell 6c9cbe1a58 AP_GPS: fixed NMEA time reporting
basic NMEA does not have an itow, so we need to use time_week_ms

this caused us to always display the time as the start of the GPS week
on NMEA
2022-12-20 10:23:58 +11:00
Andrew Tridgell a7c5c6b728 AP_GPS: allow for disabling of NMEA Unicore support 2022-12-20 10:23:58 +11:00
Andrew Tridgell 2837471ddf AP_GPS: fixed build without GPS_MOVING_BASELINE 2022-12-20 10:23:58 +11:00
Andrew Tridgell 02d6931c4d AP_GPS: fixed re-probing of NMEA GPS
when we lost fix on a NMEA GPS we should retain the driver as long as
it is still sending us NMEA messages that pass the CRC check. This
fixes a bug where we would re-probe the GPS (searching baudrates) when
we lost position
2022-12-20 10:23:58 +11:00
Andrew Tridgell ad9dfe2d51 AP_GPS: added support for Unicore NMEA GPS
this includes dual-antenna moving baseline support, 3D velocity and accuracies
2022-12-20 10:23:58 +11:00
Andrew Tridgell b9642b549b AP_GPS: make GPS_MB parameters clearer
offsets are from the 2nd antenna to the base (primary) antenna
2022-12-20 10:23:58 +11:00
Peter Barker a874938636 AP_GPS: fix GPS_AUTO example 2022-12-15 21:05:35 +11:00
Andrew Tridgell b12cd48843 AP_GPS: improve support for uBlox-M10
this sets up the M10 to use the BaiDou B1C signal instead of B1, and
disables glonass. This is needed to get a consistent 5Hz lock
2022-11-22 19:51:01 +11:00
Peter Barker 6a64b56b0d AP_GPS: fix SIRF defines
this allows SIRF to be included even on minimised boards if it is requested
2022-11-09 18:44:40 +11:00
Andrew Tridgell 9ec13be880 AP_GPS: fixed injection of RTCM on 2 different CAN buses
if we have two CAN GPS on difference can drivers we need to inject to
both
2022-11-09 09:05:33 +11:00
Andrew Tridgell f84e0c9e8b AP_GPS: disable GPS lag checking in AP_Periph
it is much more useful to check on the flight controller, not on the
periph, or users just get mysterious failures
2022-11-08 11:39:20 +11:00
Michael du Breuil 6b0dd7e689 AP_GPS: Fix novatel driver to handle DOP correctly, and fix overly optimistic horizontal accuracy estimate 2022-10-18 10:06:46 +11:00
Andrew Tridgell 6f805cb537 AP_GPS: fixed resolution of KSXT parsing for NMEA
needs to be double precision for lat/lon
2022-10-15 17:20:42 +11:00
Andrew Tridgell 4812b67ad6 AP_GPS: added logging to more serial GPS backends 2022-10-15 17:20:42 +11:00
Andrew Tridgell 5cd1aeaf38 AP_GPS: improve GPS debug logging
use timestamped data allowing for much more precise playback
2022-10-15 17:20:42 +11:00
jackhong12 4a4f361a17 all: use CLASS_NO_COPY() macro 2022-10-04 11:23:04 +11:00
Peter Barker f225592f48 AP_GPS: use default case for sending blob
This structure avoids a compiler warning that a statement isn't reachable when all backends are compiled out.
2022-09-29 20:00:53 +10:00
Peter Barker 288089a158 AP_GPS: no init blobs for SBF/GSOF/NOVA/SITL 2022-09-29 20:00:53 +10:00
Peter Barker 3a3f9bdb84 AP_GPS: cycle through baud rates for SBF/GSOF/NOVA/SITL 2022-09-29 20:00:53 +10:00
Andrew Tridgell fde5c35d35 AP_GPS: removed the old DroneCAN Fix message
only send/process Fix2 message, saving bus bandwidth and flash space
2022-09-28 17:27:32 +10:00
Henry Wurzburg d31f6c2f57 AP_GPS: remove incorrect build option on GPS_DRV_OPTIONS param 2022-09-05 12:48:51 +10:00
Andrew Tridgell 8014f96235 AP_GPS: fixed handling of DroneCAN GPS without vertical velocity
detect first vertical velocity to set flag
2022-08-23 11:17:06 +10:00
Andrew Tridgell cdf8cad801 AP_GPS: fixed undulation for DroneCAN GPS 2022-08-10 05:04:18 +10:00
Joshua Henderson 378dff5568 AP_GPS: added get_undulation support 2022-08-09 14:37:08 +10:00