\chapter{Differentielle GPS - Messung}
\label{differential_gps_de}
 \subsubsection{Aufgabenstellung}
 Um die mittlerweile abgeschaltete künstliche Verschlechterung 
 der GPS-Daten (SA selectiv availability) zu kompensieren und die
 Genauigkeit bei der Positionsbestimmung mittels GPS in den
 Submeterbereich zu bringen, wurde die differentielle
 GPS-Messung entwickelt. Hierbei wird auf
 einer sogenannten Referenzstation, deren Position genau bekannt
 ist, von einem GPS-Empf"anger kontinuierlich seine Position bestimmt
 und diese mit der bekannten verglichen. In der Anfangszeit wurde diese so 
 ermittelte Differenz einfach an die zu referenzierenden Empf"anger, also
 beispielsweise dem im Tutorial benutzten Garmin,
 übermittelt und damit die seinerseits
 bestimmte Position verbessert. Diese Methode funktioniert aber nur
 zufriedenstellend, wenn von Referenzstation und Garmin dieselben
 Satelliten zu Positionierung benutzt werden.
 Aufgrund der oftmals unterschiedlichen Satellitenkonstellationen
 bei Referenzstation und Empfänger ist diese 
 Methodik nur eingeschr"ankt anwendbar. Viel flexibler wird man duch die
 Übermittlung von Korrekturdaten f"ur jeden einzelnen Satelliten, den die
 Referenzstation empf"angt. Diese Korrekturdaten werden vom Empf"anger
 w"ahrend der Messung auf jeden einzelnen Satelliten angewendet.
 In der Schriftenreihe der TU München findet sich ein Tutorial zur 
 "`Einführung in GPS"'\cite{rothacher/zebhauser}.
 \subsubsection{Beispieldaten}
 Die ben"otigten Korrekturdaten werden in Echtzeit "uber das Internet "ubertragen
 und dem Programm zur Verf"ugung gestellt.
% \subsubsection{Weitere Verwendung der Beispieldaten}

 
 \section{L"osung mit DGPSIP}
 \label{differential_gps_de:dgpsip}

Es wurde DGPSIP 1.32 unter einer Debian GNU/Linux Installation
(woody) verwendet.\\

\nomenclature{\bf RTCM}{\input{glossary-de/glossary-rtcm-de}}
Ein Problem bei der "Ubermittlung der Korrekturdaten ist es, die Verbindung
 zur Referenzstation auch "uber weitere Entfernungen aufbauen zu k"onnen. 
 Ist ein Rechner mit Internetzugang und serieller Schnittstelle vorhanden,
 k"onnen solche Korrekturdaten im RTCM-Format \index{RTCM}
 direkt an den Garmin "ubermittelt werden. Laut Homepage des Initiators
 dieses Services Wolfgang 
 Rupprecht\footnote{http://www.wsrcc.com/wolfgang/gps/dgps-ip.html},
 gibt es zur Zeit 3 Referenzstationen in den USA,
 die solche Korrekturdaten im Internet zur Verf"ugung stellen.
 Trotz der Entfernung ist es bereits gelungen in den USA und
 Deutschland gleichzeitig dieselben Satelliten zu empfangen, und so eine
 differentielle GPS-Messung durchzuführen, die zu einer Verbesserung der 
 im Garmindisplay angezeigten Punktgenauigkeit führte. W"ahrend der Erstellung
  des Tutorials ist die 
 Verbindung mit einer Referenzstation in Kalifornien und New York gelungen,
 aber durch die denkbar schlechte Satellitenkonstellation (Empfang von 4 
 Satelliten durch ein Bürofenster) hat sich die angezeigte Genauigkeit eher
 veschlechtert. Dessen ungeachtet wurde vom Garmin eine differentielle
 Messung angezeigt, was nach R"ucksprache mit dem Entwickler best"atigt,
 da"s wenigstens 1 identischer Satellit von Garmin und Referenzstation
 empfangen wurde.

\subsection{Durchf"uhrung der Messung}

\paragraph{Einstellungen am Garmin}
Am Garmin wird unter dem Menu Interface die Verbindungsart "`RTCM/NONE"\ 
mit der Baudrate 4800 eingestellt. Die Meldung "`BEACON RCVR: RECEVING"\
im Garmin Display zeigt an, dass tats"achlich Daten empfangen werden.
Die "'FREQ"\ Frequenz wird zusammen mit der aktuellen D"ampfung des
Signales an der Empfangsantenne automatisch "ubermittelt. Eine Berechnung der
Entfernung vom Empf"anger zu der Referenzstation wird bei "'DIST"\ ausgegeben. 
Die Übertragungsrate der Korrekturdaten ist im Moment bei 200 bps (bits per
second), diese Einstellung kann beim Garmin II + in dem Verbindungsprotokoll
"`RTCM/NMEA"\ ver"andert werden.

\paragraph{Einstellungen am Rechner}
Grundlegende Voraussetzung ist eine Verbindung
 zum Internet. Ist die Daten"ubertragung
Rechner-Computer etabliert, wird nur das Programm
{\em DGPSIP} gestartet werden.
Im Betrieb unter GNU/LINUX arbeitet man an der Kommandozeile
für Windows gbt es ein GUI. Die bei jedem Aufruf angezeigte Warnung 
 kann durch setzen des Schalters {\tt -w} im Programmaufruf 
verhindert werden.

\begin{kommando}
\begin{verbatim}
bash-2.05$ ./dgpsip --help
dgpsip receives DGPS over IP and sends to serial port
Usage: dgpsip [OPTIONS]
  Options are:
    -c capture_file  saves GPS NMEA data to file
    -d    decode RTCM and print to stdout
       this turns off tty output, use -o to turn it on again
    -h DGPS_host  sets name of server to connect to
       default is dgps.wsrcc.com
    -p DGPS_port  sets IP port #/name to connect to
       default is IANA assigned port rtcm-sc104 (2101)
\end{verbatim}\\[-\bigskipamount]\begin{verbatim}
    -o serial_port  sets name of serial output device
       default is /dev/gps - a link to /dev/tty??
    -s serial_speed  sets serial output baud rate
       default is 4800 baud
    -v verblevel  turns on extra output
       see README for details
    -w turns off startup warranty message
\end{verbatim}
\end{kommando}

Mit der Option {\tt -o} wird der serielle Anschluss angegeben, an dem
der Garmin-Empf"anger angeschlossen ist. Die Internet-Adresse kann mit {\tt 
h} angepasst werden, die Portnummer mit {\em -p}. Als Grundeinstellung
sind hier jeweils die passenden Angaben für die Referenzstation in
Point Blunt, Kalifornien angegeben.
Um den Empfang der Korrekturdaten aus dem Internet zu "uberpr"ufen, kann
beim Aufruf von {\tt dgpsip} der Schalter {\tt -d} gesetzt werden, der die
empfangenen Korrekturdaten dekodiert und an die Kommandozeile "ubergibt.
Nach ein paar Zeilen ohne Daten, die zur Synchronisation des Empfangs 
mit der Ausgabe dienen, werden die Korrekturdaten an der Kommandozeile
ausgegeben. (s.u.)

\begin{kommando}
\begin{verbatim}
bash-2.05$ ./dgpsip -o /dev/ttyS1 -w -d

S       17      0       76      2984.4  2.940   0.000
S       6       0       84      2984.4  -0.100  0.002
S       15      0       190     2984.4  2.740   0.000
H       9       268     2985.0  3       5       2
S       23      0       77      2985.0  2.740   0.000
S       18      0       22      2985.0  2.660   0.002
S       22      0       223     2985.0  0.600   -0.002
f       3100    200
s       321     36
H       9       268     2986.2  4       4       2
S       26      0       30      2986.2  -1.780  -0.004
S       21      0       151     2986.2  -0.900  0.004
H       9       268     2987.4  5       5       3
S       17      0       76      2987.4  2.940   0.000
S       6       0       84      2987.4  -0.120  0.002
S       15      0       190     2987.4  2.780   0.000
H       9       268     2988.0  6       5       2
S       23      0       77      2988.0  2.740   0.000
S       18      0       22      2988.0  2.700   0.004
S       22      0       223     2988.0  0.600   0.002
H       9       268     2989.2  7       4       2
S       26      0       30      2989.2  -1.700  0.000
S       21      0       151     2989.2  -0.900  0.002
H       9       268     2990.4  0       5       3
S       17      0       76      2990.4  2.980   0.002
S       6       0       84      2990.4  -0.060  0.002
\end{verbatim}\\[-\bigskipamount]\begin{verbatim}
S       15      0       190     2990.4  2.840   0.002
f       3100    200
s       321     36
\end{verbatim}
\end{kommando}

Bekommt man eine Ausgabe "ahnlich der angegebenen, kann man diese Daten nun 
an den Garmin umleiten, oder besser gesagt die Umleitung an die Kommandozeile
, die sogenannte Standardausgabe (stdout) aufheben.
Hierzu entfernt man einfach den im vorigen Aufruf gesetzten Schalter {\tt -d}.
Nach ein paar Sekunden sollten nun im Garmin-Display Angaben "uber Frequenz, 
D"ampfung und, falls eine Positionsbestimmung m"oglich war, auch die Entfernung 
zur Referenzstation abzulesen sein.

\begin{kommando}
\begin{verbatim}
bash-2.05$ ./dgpsip -o /dev/ttyS1 -w 
\end{verbatim}
\end{kommando}


