Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Intelligens Rendszerek Gyakorlata
GPS alapú rendszerek (gyakorlati feladat)
2
Adatfogadás GPS készülékkel
Kommunikáció: protokollok alapján (NMEA, Sirf) Műholdas rendszer Interfész:RS-232 Bluetooth PC GPS vevő
3
Adat feldolgozása naplófájl alapján
NMEA esetén szöveges állomány PC A GPS készülék működtetése közben napló készíthető Hyperterminal-al, vagy más segédprogrammal. Ennek eredménye egy könnyen értelmezhető szöveges fájl. A napló segítségével helyettesíthető a GPS készülék „visszajátszás” céljából.
4
GPS napló: NMEA mondatok
Kezdőszimbólum ($) a mondat típusával A mondatot sortörés zárja
5
NMEA protokoll ASCII alapú szöveges formátum
Mondat típusokat definiál (GPRMC, GPGGA, stb.) Minden mondat $ jellel kezdődik és sortörés zárja A mondatokon belül mezők hordozzák az adatokat, melyek vesszővel vannak elválasztva Az utolsó mező tartalmazza az ellenőrzőösszeget, ezt a mezőt * karakter választja el a többitől (nem ,) Hexadecimális számként kell értelmezni (1 bájt) A $ és a * közti karakterek között értelmezett XOR művelettel áll elő
6
Néhány mondattípus $GPGGA - Global Positioning System Fix Data
$GPGLL - Geographic position, latitude / longitude $GPGSV - GPS Satellites in view $GPRMC - Recommended minimum specific GPS/Transit data
7
GPGPGGA $GPGGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh 1 = UTC of Position 2 = Latitude 3 = N or S 4 = Longitude 5 = E or W 6 = GPS quality indicator (0=invalid; 1=GPS fix; 2=Diff. GPS fix) 7 = Number of satellites in use [not those in view] 8 = Horizontal dilution of position 9 = Antenna altitude above/below mean sea level (geoid) 10 = Meters (Antenna height unit) 11 = Geoidal separation (Diff. between WGS-84 earth ellipsoid and mean sea level. - =geoid is below WGS-84 ellipsoid) 12 = Meters (Units of geoidal separation) 13 = Age in seconds since last update from diff. reference station 14 = Diff. reference station ID# 15 = Checksum
8
Tengerszint feletti magasság
Konkrét példa $GPGGA,075916, ,N, ,E,1,06,2.4,106.3,M,41.0,M,,*46 A földrajzi koordináták a percértéket decimális formátumban fejezik ki A vízszintes és függőleges polaritási értékeket a szélességi és hosszúsági adatokat tartalmazó mezőket közvetlenül követő mezők tartalmazzák (itt N- észak, E - kelet) Földrajzi szélesség 47° ’ Földrajzi hosszúság 19° ’ Tengerszint feletti magasság Ellenőrzőösszeg (hex)
9
Földrajzi pozíció leképezése bittérképre – kalibrációs pontok
(63, 125) 47° ’ 19° ’ k1 (348, 233) 47° ’ 19° ’
10
Kalibrációs pontok Ki kell jelölni két pontot a bittérképen, majd meg kell adni, hogy ezekhez a pontokhoz milyen földrajzi koordináták tartoznak A kalibrációs pontok segítségével meghatározható, hogy a bittérkép (x, y) pixel-koordinátájához melyik földrajzi koordináta (Lat, Lon) társítható Ehhez csupán egyszerű matematikai számításokat kell elvégezni…
11
Feladat Adott egy térképet ábrázoló képfájl és egy GPS napló (az adott térképre leképezhető pozíciókkal) A naplóban minden sor egy NMEA mondatot tartalmaz A mondatokból ki kell olvasni a földrajzi koordinátákat (GPGGA mondat 2. és 4. mező) A térképen meg kell jeleníteni a naplóból kapott földrajzi pozíciókat a kalibrációs értékek segítségével „visszajátszás” formájában
12
Segítség az első részhez
String műveletekkel kiolvashatók a vesszővel elválasztott mezők, így megkapjuk a szélességi és hosszúsági értékeket String formátumban A Stringeket át kell konvertálni numerikus típusokká, hogy a 2. feladatban számolni lehessen velük
13
Segítség a második részhez
A fok-pixel arányt ki kell számítani a megadott kalibrációs pontok alapján (k1, k2) Az arány ismeretében a fokban mért elmozdulások átválthatók pixeles elmozdulásokra
14
Típusok public class Koordinata { public int szelessegFok;
public float szelessegPerc; public int hosszusagFok; public float hosszusagPerc; } public class KalibraciosPont public int x, y; public Koordinata k = new Koordinata(); Földrajzi koordináta típus Kalibrációs pont típus: Reprezentálja az x, y pixel koordinátához rendelt földrajzi pozíciót
15
Metódusok ismertetése
String readNMEA_GPGGA() Visszatér a fájlból kiolvasott aktuális GPGGA típusú mondattal Koordinata NMEA2Koordinata(String NMEA) A GPGGA mondatból kiolvassa a koordinátákat private void timer1_Tick(object sender, EventArgs e) Meghívja az előző két függvényt, majd a kapott értékek és a kalibrációs pontok alapján kiszámítja és megjeleníti az aktuális pozíciót a térképen
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.