The sensor fusion solution provides two different output-streams for the position, attitude, velocity and many more states of solution and quality of solution.
By default it’s possible to configure the hardware to write to a file and/or to broadcast the solution per TCP on a customizable port (standardt-port: 6001). To stream the solution per WLAN or Ethernet, you need additionally to the defined port-number the IP-adress of your MSRTK Module, which is by default 192.168.42.1 (in case you are connected with WLAN-AP “ANavS_MSRTK_AP”).
The ANavS sensor fusion framework provides two different protocols for the solution output, the standardized NMEA-Format and a proprietary binary protocol. In the following the standardized NMEA-Format is described.
This protocol is based on the international standard for maritime navigation and radio communication, equipment and systems and digital interfaces (IEC 61161-1) [1]. This standard adopted the de-facto standards for interfacing marine electronic devices, known as NMEA 0183.
The data is transmitted in sentences of variable length with a specified sentence structure.
Sentence structure
* Address field
* Data fields
* Checksum field
* Terminating field
* All sentences contain only ASCII characters
* The maximum length of a sentence is 82 characters
* All fields are separated by delimiters
Address field
The address field starts with “$” followed by the talker ID and a sentence identifier. The used talker IDs are:
* GP for GPS only solutions
* GL for GLONASS only solutions
* GA for GALILEO only solutions
* GN for multi GNSS solutions
The used sentence identifiers are:
* GGA – Global Positioning System Fix Data
* VTG – Course over Ground and Ground Speed
* GSA – GNSS DOP and Active Satellites
* GSV – GNSS Satellites in View
* RMC – Recommended Minimum Specific GNSS Data
* ZDA – Time and Date
* PASHR – Attitude Data
Data fields
Data fields must always be separated by “,”. They can contain alpha, numeric and alphanumeric values all coded in ASCII characters. The length of a data field can be constant, variable or can contain a fixed and variable portion. This differs for each sentence.
Checksum field
The Checksum field starts with “*” followed by the checksum of the sentence.
The Checksum is generated with a bitwise exclusive OR of all fields including the “,” delimiters, between but not including the “$” and the “*” characters.
The hexadecimal value of the checksum is then converted to two ASCII characters.
Terminating field
The terminating sequence contains the two ASCII characters <CR> and <LF> without any delimiter.
Satellite Numbering
– GPS: 1-32
– GLONASS: 33-96
– GALILEO: 301-336*
*currently no standard way to number Galileo satellites. The numbering is therefore in the same way as [2]
GGA – Global positioning system (GPS) fix data
TALKER ID | XX | All talker IDs usable |
SENTECE ID | GGA | |
UTC of position | hhmmss.ss | Fixed length 2 digits after dot |
Latitude | llll.lllllll | Fixed length 4 digits before and 7 after dot |
Hemisphere of latitude | N/S | N if value of latitude is positive |
Longitude | lllll.lllllll | Fixed length 5 digits before and 7 after dot |
Hemisphere of longitude | E/W | E if value of longitude is positive |
GPS quality indicator | X | 0: GNSS fix not available 1: GNSS fix valid 4: RTK fixed ambiguities 5: RTK float ambiguities |
Number of satellites used for positioning | XX | Fixed length 01 for single digits |
HDOP | XX.X | Variable/fixed length 1 digit after dot, variable before |
Altitude geoid height | (-)X.XX | Variable/fixed length 2 digits after dot, variable before |
Unit of altitude | M | |
Geoidal separation | (-)X.XX | Variable/fixed length 2 digits after dot, variable before |
Unit of geoidal separation | M | |
Age of differential data | Empty field | |
Differential reference station ID | Empty field |
Example:
$GNGGA,185833.80,4808.7402397,N,01133.9325039,E,5,15,1.1,470.50,M,45.65,M,,*75
VTG – Course over ground and ground speed
TALKER ID | XX | All talker IDs usable |
SENTENCE ID | VTG | |
Course over ground | X.XX | Variable/fixed length 2 digits after dot, variable before Values from 0 to 359.99 |
Degrees | T | True course |
Course over ground | X.XX | Variable/fixes length 2 digits after dot, variable before Values from 0 to 359.99 |
Degrees | M | Magnetic course |
Speed over ground | X.XX | Variable/fixed length 2 digits after dot, variable before |
Unit | N | knots |
Speed over ground | X.XX | Variable/fixed length 2 digits after dot, variable before |
Unit | K | Km/h |
Mode indicator | X | A: Autonomous mode |
The VTG sentence is empty ( $GNVTG,,T,,M,,N,,K,A*3D ) until attitude baseline is valid. Course over ground equals heading.
Example:
$GNVTG,112.99,T,109.99,M,0.15,N,0.08,K,A*3B
GSA – GNSS DOP and active satellites
TALKER ID | XX | All talker IDs usable* |
SENTENCE ID | GSA | |
MODE | X | 1: GNSS fix not available 3: 3D |
MODE | XX | M: forced to operate in 3D |
ID number | XX | Fixed length: 01 for single digit Up to 12 satellites per constellation Empty field if not used for positioning GPS: ID is PRN (1-32) GLONASS: ID is slot number + 64 GALILEO: PRN + 300 |
XX | ||
XX | ||
XX | ||
XX | ||
XX | ||
XX | ||
XX | ||
XX | ||
XX | ||
XX | ||
XX | ||
PDOP | XX.XX | Fixed length 2 digits before and after dot |
HDOP | ||
VDOP |
*if GN is used for Talker ID a separate sentence must to created for each GNSS constellation all starting with the Talker ID for multi GNSS.
Example:
$GNGSA,2,M,06,12,15,17,19,24,25,32,1.34,0.96,0.93*1D
$GNGSA,2,M,70,71,79,80,81,82,88,1.34,0.96,0.93*3A
GSV – GNSS satellites in view
TALKER ID | XX | GN must not be used* |
SENTENCE ID | GSV | |
Total number of messages | X | 1-9 |
Message number | X | 1-9 |
Total number of satellites in view | XX | Fixed length: 01 for single digit |
Satellite ID number | XX | Fixed length: 01 for single digit Empty field if not used for positioning GPS: ID is PRN (1-32) GLONASS: ID is slot number + 64 GALILEO: PRN + 300 |
Elevation | XX | Fixed length: 00 for 0° elevation Values from 0 to 90 Empty if not used |
Azimuth | XXX | Fixed length: 000 for 0° azimuth Values from 000 to 360 Empty if not used |
SNR | XX | Fixed length: 05 for 5 db/Hz Values from 0-99 Empty if not used |
*if multi GNSS is used a separate GSV sentence must be created for each constellation starting with the constellation specific talker ID.
This block is repeated 4 times per sentence in total. For more than multiples of 4 a new sentence is started each time. Blocks are left empty if the number of satellites in view is lower than a multiple of 4.
Example:
$GPGSV,6,1,10,02,3.6,133.2,26,10,06,11.7,100.7,39,10,10,9.6,281.5,35,10,12,63.1,256.5,46*58
$GPGSV,6,2,10,15,26.5,186.0,43,10,17,30.5,48.7,42,10,19,43.9,65.3,46,10,24,86.5,103.6,46*5E
$GPGSV,6,3,10,25,21.6,250.8,43,10,32,21.7,316.0,41,,,,,,,,,,*5E
$GLGSV,6,4,09,69,7.0,215.9,30,09,70,30.8,267.4,44,09,71,23.0,324.4,46,09,73,13.0,286.8,33*72
$GLGSV,6,5,09,79,47.8,70.6,43,09,80,54.9,314.5,38,09,81,48.6,86.8,43,09,82,28.4,150.8,46*49
$GLGSV,6,6,09,88,21.3,28.0,40,,,,,,,,,,,,,,,*4E
RMC – Recommended minimum specific GNSS data
TALKER ID | XX | All talker IDs usable |
SENTENCE ID | RMC | |
UTC time | hhmmss.ss | Fixed length |
Status | X | A: data valid |
Latitude | llll.lllll11 | Fixed length 4 digits before and 7 after dot |
Hemisphere of latitude | N/S | N if value of latitude is positive |
Longitude | lllll.lllllll | Fixed length 5 digits before and 7 after dot |
Hemisphere of longitude | E/W | E if value of longitude is positive |
Speed over ground | X.XX | Variable/fixed length 2 digits after dot, variable before |
Course over ground | X.XX | Variable/fixed length 2 digits after dot, variable before Values from 0 to 359.99 |
Date | ddmmyy | |
Magnetic variation | X.XX | Variable/fixed length: 2 digits after dot, variable before |
E/W | E if variation positive | |
Mode indicator | A: Autonomous D: Differential |
Example:
$GNRMC,185823.40,A,4808.7402374,N,01133.9324760,E,0.00,112.64,130117,3.00,E,A*14
ZDA – Time and date
TALKER ID | XX | All talker Ids usable |
SENTECE ID | ZDA | |
UTC time | hhmmss.ss | Fixed length |
Day | XX | Fixed length 01 to 31 |
Month | XX | Fixed length 01 to 12 |
Year | XXXX | |
Local zone hours | Empty field | |
Local zone minutes | Empty field |
Example:
$GNZDA,185823.40,13,01,2017,,*7E
PASHRÂ – Attitude Data
TALKER ID | No talker ID | |
SENTENCE ID | PASHR | |
UTC time | hhmmss.ss | Fixed length |
Heading* | XXX.XX | Fixed value: 000.00 for 0° 3 digits before dot, 2 after |
T | True heading | |
Roll angle* | (-)XXX.XX | Fixed value: 000.00 for 0° 3 digits before dot, 2 after |
Pitch angle* | (-)XXX.XX | |
Heave | Empty field | |
Roll standard deviation* | XX.XXX | Fixed value 2 digits before dot 3 after |
Pitch standard deviation* | XX.XXX | |
Heading standard deviation* | XX.XXX | |
Quality flag | X | 0: No position 1: RTK float position 2: RTK fixed position |
* attitude angles and corresponding deviation values are only filled for defined setup (3D, 2D)
Example:
$PASHR,190558.56,107.09,T,,-0.16,,,0.067,0.056,2*34
[1]Â Â Â Â Â Â Â IEC 61162-1 ed.2
http://read.pudn.com/downloads151/ebook/657722/IEC%2061162-1%20ed.2%20(2000).pdf