Read and Parse NMEA Data Directly From GPS Receiver-No example
35 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Douglas Curcio
el 29 de Sept. de 2019
Editada: Walter Roberson
el 1 de Ag. de 2021
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?
0 comentarios
Respuesta aceptada
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
el 20 de Jul. de 2020
openExample('fusion/ReadAndParseTheNMEADataDirectlyFromAGPSReceiverExample')
is what is documented for R2019b on https://www.mathworks.com/help/releases/R2019b/fusion/examples/read-and-parse-nmea-data-directly-from-gps-receiver.html
It is part of the Sensor Fusion Toolbox, and so requires that that toolbox be installed.
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'
Más respuestas (2)
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.
0 comentarios
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
0 comentarios
Ver también
Categorías
Más información sobre Characters and Strings en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!