NMEA
De National Marine Electronics Association (NMEA) is een verband van producenten van scheepselektronica. Zij zochten al vroeg naar een standaard om de apparatuur aan boord van een schip compatibel te maken met elkaar. Zo kan een gps van merk A een automatische piloot van merk B aansturen. Echter de NMEA is een belachelijke organisatie die zijn protocollen niet publiceert, anders dan tegen forse bedragen. Kortom we zullen het moeten doen met informatie uit de tweede hand (0183 versie 3.0 standaard) om compatibel te kunnen zijn. Zowel de hardware alsook de software is gespecificeerd in de standaard.

het protocol geeft de interessantste informatie voor een robot. De baudrate is niet instelbaar en bedraagt 4.800bps 8n1geen. Indien de Geko wordt aangesloten op een terminal spuugt hij onmiddelijk data in grote hoeveelheden. Iedere 2 seconden het complete verhaal. Dit is dus eigenlijk niet nodig, maar het protocol is ontworpen voor 1 talker en vele listeners. De talker zendt regels met data die een vast format hebben. Ze beginnen altijd met een $-teken en eindigen altijd met een CRLF. De eerste 2 karakters vormen de ID van de talker. Indien de zin echter niet tot het standaard protocol behoort, dan begint een regel met een P. De kolom Extra laat zien of er voor die regel extra instellingen nodig zijn in de GPS zoals waypoints etc. De regels met een ja als antwoord zijn voor Farmbot niet bruikbaar. Een communicatievoorbeeld is te vinden in een terminal logfile. Deze bevat 2 cycli van data ontvangst. De regels van de Geko zien er als volgt uit en de roodgekleurde velden gebruik ik in mijn database:

$GPRMC dataregel

NMEA: Minimum Recommended Data

Voorbeeld (geen signaal):
$GPRMC,235947.000,V,0000.0000,N

,00000.0000,E,,,041299,,*1D

Voorbeeld (goed signaal):
$GPRMC,092204.999,A,4250.5589

,S,14718.5084,E,0.00,89.68,211200,,*25

Veld Voorbeeld Opmerking
Regel naam $GPRMC
UTC Tijd 092204.999 hhmmss.sss
Status A A=Geldig, V=Ongeldig
Latitude 4250.5589 ggmm.ssss breedtegraad
N/Z Orientatie S N=Noord, S=Zuid
Longitude 14718.5084 gggmm.ssss lengtegraad
O/W Orientatie E E=Oost, W=West
Snelheid over grond 0.00 Knopen * 1,852 = km/u
Koers over grond 0.00 Graden
UTC Datum 211200 DDMMYY
Magnetic variation Graden
Orientatie Magnetic variation E=Oost, W=West
Checksom *25
Terminator CR/LF

$GPRMB dataregel

NMEA: Minimum Recommended Data for Navigation. Deze regel bevat enkel correcte data indien er een koers naar een waypoint is ingevoerd.
Voorbeeld (goed signaal):

$GPRMB,A,0.66,L,003,004,4917.24,N,

12309.57,W,001.3,052.5,000.5,V*20

Veld Voorbeeld Opmerking
Regel naam $GPRMB
Status A A=Geldig, V=Ongeldig
Cross Track Error 0.66 Zeemijlen, max 9,99
StuurActie L L=Links, R=Rechts
ID origin waypoint 003 Volgens navigatie apparaat
ID destination waypoint 004 Volgens navigatie apparaat
Latitude destination 4917.24 Breedtegraad bestemming
Latitude orientation N N=Noord, S=Zuid
Longitude destination 12309.57 Lengtegraad bestemming
Longitude orientation W W=West, E=Oost
Range to destination 001.3 Zeemijlen, max 999,9
True Bearing Destination 052.5 Kompasrichting bestemming
Velocity Toward Destination 000.5 Knopen, max 999,9
Arival Alarm V A=Aangekomen, V=Nog niet
Checksom *20
Terminator CR/LF

$GPGGA dataregel

NMEA: GPS data en informatie

Voorbeeld:
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47

Veld Voorbeeld Opmerking
Regel naam $GPGGA GPS Fix Data
UTC Tijd 123519 UUMMSS
Latitude 4807.038 Breedtegraad DDMM.SSS
Latitude orientatie N N=Noord, S=Zuid
Longitude 01131.000 Lengtegraad DDDMM.SSS
Longitude orientatie E E=Oost, W=West
Fix type 1 0-8 0=Invalid, 1=GPS, 2=DGPS etc.
Aantal satellieten in gebruik 08 Minimaal 3 nodig
Horizontal Dilution of Position 0.9 Horizontale afwijking
Hoogte boven zeenivo 545.5 Gemiddeld zeenivo
Hoogte eenheid M Meters
Hoogte boven WGS84 46.9 Hoogte boven theoretische ellips
Hoogte WGS84 eenheid M Meters
Tijd sinds DGPS update Leeg indien geen DGPS
DGPS station nummer Leeg indien geen DGPS
Checksum *47
Terminator CR/LF

$GPGSA dataregel

NMEA: GPS Dillution Of Position en actieve satellieten

Voorbeeld:
$GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39

Veld Voorbeeld Opmerking
Regel naam $GPGSA Satellite Status
Selectie 2D of 3D fix A A=Automatisch, M=Handmatig
Type huidige fix 3 1=Geen fix, 2=2D, 3=3D
PRNs van gebruikte satellieten 04,05,,... Ruimte voor max 12 satellieten
PDOP Dilution of Position 2.5 Meters?
HDOP Horizontal Dilution 1.3 Meters?
VDOP Vertical Dilution 2.1 Meters?
Checksum *39
Terminator CR/LF

$GPGSV dataregel

NMEA: GPS Informatie over satellieten in zicht, maar die niet noodzakelijkerwijze gebruikt worden voor de positionering. Een regel kan slechts 4 satellieten bevatten en daarom kan het gebeuren dat er meerdere GSV regels worden uitgegeven.

Voorbeeld:
$GPGSV,2,1,08,01,40,083,46,02,17,308,

41,12,07,344,39,14,22,228,45*75

Veld Voorbeeld Opmerking
Regel naam $GPGSV Satellites in View
Aantal uitgegeven GSV regels 2 Max 3 GSV regels
Regelnummer 1 Dit is GSV regel 1 van 2
Aantal zichtbare satellieten 08 Max 12 verdeeld over 3 regels
PRN nummer satelliet 01
Elevatie 40 Graden
Azimut 083 Graden
SNR Signal to Noise Ration 46 Hoger is beter
Bovenstaand blokje kant tot 4 keer worden herhaald per regel
Checksum *75
Terminator CR/LF

$GPGLL dataregel

NMEA: Enkel voor backwards compatibiliteit met verouderde Loran apparatuur. Geeft een (onnauwkeurige) geografische positie

Voorbeeld:
$GPGLL,4916.45,N,12311.12,W,225444,A,*1D

Veld Voorbeeld Opmerking
Regel naam $GPGLL Geografical Latitude Longitude
Latitude 4916.45 Breedtegraad DDMM.SS
Latitude orientatie N N=Noord, S=Zuid
Longitude 1231.12 Lengtegraad DDDMM.SS
Longitude orientatie W W=West, E=Oost
UTC Tijd 225444 UUMMSS
Status A A=Geldig, V=Ongeldig
Checksum *1D
Terminator CR/LF

$GPBOD dataregel

NMEA: Geeft de de koers die dit rak moet worden aangehouden om van het beginpunt in het eindpunt te komen. Dit is dus de koers die je aan de stuurman door zou geven voordat hij overstag gaat.

Voorbeeld:
$GPBOD,045.,T,023.,M,DEST,START*01

Veld Voorbeeld Opmerking
Regel naam $GPBOD Bearing Origin to Destination
Ware koers 045. DDD.
Soort koers T True = Koers op de kaart
Magnetische koers 023. DDD.
Soort koers M Magnetisch = koers op kompas
Bestemming waypoint id 003 In de lijst van de GPS
Origin waypoint id 002 In de lijst van de GPS
Checksum *01
Terminator CR/LF

$PGRME dataregel

GARMIN: Geschatte positie fouten. Dit is geen standaard zin, maar enkel in Garmin apparaten te vinden.

Voorbeeld:
$PGRME,15.0,M,45.0,M,25.0,M*22

Veld Voorbeeld Opmerking
Regel naam $PGRME
HPE Horizontal Position Error 15.0 Geschatte horizontale fout
HPE eenheid M Meter
VPE Vertical Position Error 45.0 Geschatte vertical fout
VPE eenheid M Meter
OSE Overall Spherical Error 25.0 Geschatte ruimtelijke fout
OSE eenheid M Meter
Checksum *22
Terminator CR/LF

$PGRMZ dataregel

GARMIN: Dit is geen standaard zin, maar enkel in Garmin apparaten te vinden. Hij laat de hoogte zien in voet.

Voorbeeld:
$PGRMZ,93,f,3*21

Veld Voorbeeld Opmerking
Regel naam $PGRMZ
Hoogte 93 Vanaf gemiddeld zeenivo
Hoogte eenheid f Voet
Hoogte fix 3 2=User, 3=GPS
Checksum *21
Terminator CR/LF

$GPRTE dataregel

NMEA: Names of waypoints. Deze regel kan meerdere malen voorkomen.

Voorbeeld:
$GPRTE,2,1,c,0,W3IWI,DRIVWY,32CEDR,32-29,

32BKLD,32-I95,32-US1,BW-32,BW-198*69

Veld Voorbeeld Opmerking
Regel naam $GPRTE Waypoints in huidig traject
Aantal regels totaal 2
Regel nummer 1 Regel 1 van 2
Type lijst c c=Alles, w=Start vanaf laatste waypoint
Nummer route 0 Nummer van huidig traject
Waypoint namen W3IWI,
DRIVWY,
etc
Lijst met de namen
Checksum *69
Terminator CR/LF

Voor mijn robot zijn RMC, GGA en RME voldoende. De Geko geeft posities weer met 4 cijfers achter de komma. Achter de komma betekent de seconden van een positie. Een minuut komt overeen met 1 zeemijl = 40.000km / 360*60 =ongeveer 1851,85 meter. Dat betekent dat de uitlezing een nauwkeurigheid suggereert van 0,18 meter oftewel 18 centimeter. Dit wordt in de praktijk echter altijd overtroffen door de meetfout (RME). De meetfout die de Geko in het schermpje laat zien komt overeen met een afgeronde eerste positie van de RME. Verder duurt een willekeurige meting 2 seconden. Bij een streefsnelheid van 5 km/uur betekent dat een afwijking van 5000 / 3600 * 2 = 2,77 meter. Hieruit blijkt ook al dat het niet zoveel zin heeft om GPS nauwkeuriger te meten dan EGNOS aankan (3 meter idealerwijze). De rest van de bewegings nauwkeurigheid zal toch moeten komen van de combinatie met odometrie.

  • Weersomstandigheden
    Grappig is dat ik mijn eerste tests uitvoerde tijdens sneeuw en hagelbuien. De ontvangst van de GPS was op dat moment uitstekend. Hij vond ongeveer 6 satellieten. Later werd het weer beter en vervolgens vond hij nog slechts 1 satelliet! Dit kan meerdere oorzaken hebben. Bijvoorbeeld dat het glas nat was en daardoor makkelijker de signalen doorliet. Of dat de wolken de signalen van diverse satellieten weerkaatsten. Alhoewel in dat laatste geval de foutmarge bijzonder groot zou moeten zijn. Veel groter in ieder geval dan aangegeven.
  • Maak zelf een aansluitkabel voor de Geko 201
  • Maak een externe voeding voor de Geko 201.
  • Maak een GPX bestand van een reis.
  • Laat een GPX bestand zien op Google Maps
  • Jan 2010 - Het lijkt er op dat de stekkeraansluiting van de Geko niet goed meer werkt. Hij accepteert geen voeding via de stekker, maar wel via de batterijen.



    WAAS verhoogt de nauwkeurigheid, maar maakt dat de Geko ontzettend naijlt. Die is leuk voor wandeltochten of een kanotour. Niet gebruiken in de auto.