Commit Graph

109 Commits

Author SHA1 Message Date
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 fc5ae600ef AP_GPS: fixed handling of empty HDT/THS sentences
fixes #22432
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 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 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 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
Hwurzburg 3d4f6cc2c4 AP_GPS: add build options for GPS backends 2022-01-12 16:17:21 +11:00
Andrew Tridgell 135c88d474 AP_GPS: use KSXT for position and alt when available
this gets velocity and position from the same message for more
consistency
2022-01-11 10:34:11 +11:00
Andrew Tridgell 9d21c0b6c1 AP_GPS: added GPS data logging system
for debugging GPS protocols
2022-01-11 10:34:11 +11:00
Andrew Tridgell 27cec48b82 AP_GPS: support KSXT message for Unicore NMEA
this gives both yaw and 3D velocity
2022-01-11 10:34:11 +11:00
Jaaaky 6433547592 AP_GPS: Fix multi #include's 2021-12-21 10:38:46 +11:00
Andrew Tridgell f8e40eef00 AP_GPS: fixed printf format errors 2021-08-05 09:43:35 +10:00
Andrew Tridgell e5d878eebd AP_GPS: change handling of moving baseline yaw
this changes yaw handling in a few ways:

 - GPS yaw now has a timestamp associated with the yaw separate from
   the timestamp associated with the GPS fix

 - we no longer force the primary to change to the UBLOX MB rover when
   it has a GPS yaw. This means we don't change GPS primary due to GPS
   loss, which keeps the GPS more stable. It also increases accuracy
   as the rover is always less accurate in position and velocity than
   the base

 - now we force the primary to be the MB base if the other GPS is a
   rover and the base has GPS lock
2021-07-21 17:59:49 +10:00
Philippe Hamelin 738d000f86 AP_GPS: Add NMEA THS message. 2021-04-14 17:20:28 +10:00
Andrew Tridgell 3650c02745 AP_GPS: use common nmea_printf() 2021-04-13 09:36:52 +10:00
Andrew Tridgell 862ae59e28 AP_GPS: support $PHD message for AllyStay NMEA GPS
this adds vertical velocity support
2020-12-01 09:04:43 +11:00
Iampete1 997ffcf30d AP_GPS: NMEA: only decode each measage once 2020-08-09 11:37:16 +10:00
Andrew Tridgell db777c56b9 AP_GPS: provide yaw feedback in GPS_RAW_INT and GPS2_RAW
allow GPS to display status of GPS yaw for moving baseline and NMEA
2020-01-07 12:37:35 +11:00
murata e4455491aa AP_GPS: Use common hexadecimal character to number conversion method 2019-08-06 10:14:12 +10:00
Grant Morphett 64ed76326b AP_GPS: Adding support for the NMEA GPHDT sentence
The NMEA GPHDT sentence can be used to determine the vehicles bearing
instead of a compass even when the vehicle is stationary.  This type
of GPS is normally very expensive and does the bearing using some sort
of phase ambituity algorithm.
2019-07-13 11:05:57 +10:00
Peter Barker 2aa0de49bb AP_GPS: remove pointless initialisers 2019-02-26 09:53:28 +11:00
Arjun Vinod 978cea97cf AP_GPS: whitespace and typo fixes 2019-01-05 08:45:24 +09:00
Andrew Tridgell 4af857da44 AP_GPS: adjust NMEA sentence length calculation
review feedback
2018-12-04 11:37:38 +11:00
Andrew Tridgell 3fe4b9c0f8 AP_GPS: make GPS packet timestamps more accurate
this reduces the effect of processing time and uart transmit time
2018-12-04 11:37:38 +11:00
Michael du Breuil 53c66106d6 AP_GPS: Remove unneeded intilizers
saves 160 bytes on make px4-v2
2018-05-16 20:34:00 +10:00
chobitsfan 02cfe9128d AP_GPS: parse RTK status in NMEA GGA message 2017-09-15 22:33:47 +01:00
Michael du Breuil 2f8f2ffd2d AP_GPS: Remove NMEA init blobs for binary drivers
All of the init strings that were sent in the NMEA driver are for GPS protocols
which have binary drivers, which provide far more features and are more robust.
It also appears that due to driver changes the config strings for SIRF/UBLOX
were no longer correct anyways).
2017-09-15 14:30:48 -07:00
Lucas De Marchi 8389158d76 AP_GPS: use FALLTHROUGH define
When falling through on a case switch, allow to add an empty statement
with the correct attribute to tell the compiler this behavior is
intended.
2017-08-22 23:59:13 -07:00
murata c808ee2f49 Global: To nullptr from NULL.
RC_Channel: To nullptr from NULL.

AC_Fence: To nullptr from NULL.

AC_Avoidance: To nullptr from NULL.

AC_PrecLand: To nullptr from NULL.

DataFlash: To nullptr from NULL.

SITL: To nullptr from NULL.

GCS_MAVLink: To nullptr from NULL.

DataFlash: To nullptr from NULL.

AP_Compass: To nullptr from NULL.

Global: To nullptr from NULL.

Global: To nullptr from NULL.
2016-11-02 16:04:47 -02:00
Mathieu OTHACEHE 152edf7189 Global: remove mode line from headers
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Andrew Tridgell 2239fd6a6e AP_GPS: fixed hexdigit in NMEA detector
thanks to adorus for spotting this! See issue#4255
2016-06-06 07:36:31 +10:00
Lucas De Marchi 035937ea7e AP_GPS: add some safety checks to _parse_decimal_100() 2016-05-20 10:06:45 -03:00
Lucas De Marchi fc6dd97e61 AP_GPS: make _parse_decimal_100() a static function
This allows to easily write tests for it as opposed to having to
construct the entire object.
2016-05-20 10:06:44 -03:00
Bert Regelink 7379d120e1 AP_GPS: fix _parse_decimal_100() with negative numbers
_parse_decimal_100() did not parse the fractional part for negative
numbers. Furthermore, use the third decimal (when present) for proper
rounding.
2016-05-20 10:06:44 -03:00
Andrew Tridgell b424c49bc7 AP_GPS: change ground course to be in degrees
more accuracy for replay
2016-05-07 18:27:21 +10:00
Andrew Tridgell 2a214f1e46 AP_GPS: support a wider variety of NMEA receivers
some reeivers use a different talker ID. This allows us to accept
them.
2016-04-18 15:30:17 +10:00
Andrew Tridgell a7079b730a AP_GPS: GPVTG can give new velocity 2016-02-11 18:46:01 +11:00
Andrew Tridgell 4beb1748c5 AP_GPS: better handle corrupted NMEA sentences
when a NMEA sentence is corrupted we should discard it
completely. This change prevents us considering a set of sentences
that includes corrupted sentences from being seen as new data
2016-02-11 18:46:01 +11:00
Caio Marcelo de Oliveira Filho c33b86a783 AP_GPS: use millis/micros/panic functions 2015-11-20 12:30:48 +09:00