Read and Parse NMEA Data Directly From GPS Receiver-No example

35 visualizaciones (últimos 30 días)
I am trying to utilize the NMEA converter in the above example however even after downloading the associated toolbox I am unable to access the example above and can not find the example within its desinated toolbox. Additionally when trying to run the code of my own accord the functions that are utilized within the code most importantly HelperParseGPSData() is not included within the toolboxes files. Can these be added to the toolbox, or can an example of the function be posted?

Respuesta aceptada

Gayatri Menon
Gayatri Menon el 23 de En. de 2020
Hi,
The example is available in R2019b. Can you try in R2019b.
If you are using R2019b, executing the below command will add the required files in path.
>> openExample('fusion/ReadAndParseTheNMEADataDirectlyFromAGPSReceiverExample')
The above command is obtained by clicking the 'View MATLAB command' link in the rightmost corner of the example
Hope this helps
Thanks
Gayatri
  3 comentarios
Walter Roberson
Walter Roberson el 20 de Jul. de 2020
openExample('fusion/ReadAndParseTheNMEADataDirectlyFromAGPSReceiverExample')
It is part of the Sensor Fusion Toolbox, and so requires that that toolbox be installed.
FRANCISCO Curado
FRANCISCO Curado el 22 de Jun. de 2021
Editada: Walter Roberson el 1 de Ag. de 2021
I found this post quite helpful but I observe the following problems with function HelperParseGPSData() :
1. HelperParseGPSData() does not recognize sentences with the GNRMC format, which is used by modern GPS that can receive data from a number of GPS satellite systems; it only recognizes GPRMC. This is not difficult to circumvent e.g., replacing strings in the data (or possibly in the function code) but it is undesirable.
2. Apparently the function returns ChecksumValidity: 'Bad Checksum' even for valid sentences (example below).
3. Although the function documentation reads "If there are multiple NMEA sentences available in the input raw GPS Data, an array of structures is returned as output. The size of the array will be the number of available NMEA sentences corresponding to the message IDs.", it apparently only processes one sentence each time. If one passes as input a cell array or a string array, it returns an error; but if one passes as input a single sentence it works; the same happens if the input has been converted from cell array to string array (examples below). Indeed, I have tried several other types of conversions but none worked. Thus, I question: what is the meaning of "If there are multiple NMEA sentences available in the input raw GPS Data, an array of structures is returned as output."?
I have the following data represented in variable y:
y =
3×1 cell array
{'$GNGLL,4038.42327,N,00843.82368,W,090359.00,A,D*61' }
{'$GPRMC,090400.00,A,4038.42282,N,00843.82332,W,1.996,150.99,270521,,,D*6C' }
{'$GNVTG,150.99,T,,M,1.996,N,3.698,K,D*21' }
>> [GPRMC, ~, ~, ~] = HelperParseGPSData(y);
First argument must be a string array, character vector, or cell array of character vectors.
>> [GPRMC, ~, ~, ~] = HelperParseGPSData(y(2))
GPRMC = HelperParseGPSData(y)
struct with fields:
MessageID: 'RMC'
Status: 'A,Data Valid'
DateandTime: '09:04:00.00 27/05/21 UTC'
Latitude: '40.6404°,N'
Longitude: '8.7304°,W'
SOG: '1.996 knots'
COG: '150.99°'
MagneticVariation: ''
Mode: 'Differential GNSS Fix'
Checksum: '6C'
ChecksumValidity: 'Bad Checksum'HelperParseGPSData(y)
>> z=string(y)
z =
3×1 string array
"$GNGLL,4038.42327,N,00843.82368,W,090359.00,A,D*61"
"$GPRMC,090400.00,A,4038.42282,N,00843.82332,W,1.996,150.99,270521,,,D*6C"
"$GNVTG,150.99,T,,M,1.996,N,3.698,K,D*21"
>> [GPRMC, ~, ~, ~] = HelperParseGPSData(z)
First argument must be a string array, character vector, or cell array of
character vectors.
>> [GPRMC, ~, ~, ~] = HelperParseGPSData(z(2))
GPRMC =
struct with fields:
MessageID: 'RMC'
Status: 'A,Data Valid'
DateandTime: '09:04:00.00 27/05/21 UTC'
Latitude: '40.6404°,N'
Longitude: '8.7304°,W'
SOG: '1.996 knots'
COG: '150.99°'
MagneticVariation: ''
Mode: 'Differential GNSS Fix'
Checksum: '6C'
ChecksumValidity: 'Bad Checksum'

Iniciar sesión para comentar.

Más respuestas (2)

Nathan Li
Nathan Li el 13 de En. de 2020
What version of Matlab are you using? Have you tried updating Matlab? This example may have been added recently. I had the same problem as you. I was able to load the example after updating to 2019b.

Gayatri Menon
Gayatri Menon el 1 de Ag. de 2021
Hi,
nmeaParser in Navigation toolbox can be used to parse sentences compliant with NMEA 0183 Standard, Version 4.10. It supports other satellite systems as well.
Hope this helps.
Thanks
Gayatri

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by