GPS Datenerfassung und Auswertung

GPS-Logger I-BLUE 747 Für die Erfassung der GPS-Daten verwende ich einen GPS-Logger I-BLUE 747 - haupsächlich zum Festhalten meiner Rad - und Moppedtouren. Natürlich verwende ich den Logger auch um die Daten bei http://www.openstreetmap.org abzugleichen und ggf. zu ergänzen und korrigieren. Der Logger hat zwar auch eine Bluetooth Schnittstelle, doch zum Auslesen verwende ich die USB-Schnittstelle, da diese quasi out of the box direkt unterstützt wird.

Aug 22 19:19:24 compaq-evo kernel: usb 2-1: new full speed USB device using uhci_hcd and address 2
Aug 22 19:19:24 compaq-evo kernel: usb 2-1: configuration #1 chosen from 1 choice
Aug 22 19:19:24 compaq-evo kernel: usbcore: registered new driver usbserial
Aug 22 19:19:24 compaq-evo kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
Aug 22 19:19:24 compaq-evo kernel: usbcore: registered new driver usbserial_generic
Aug 22 19:19:24 compaq-evo kernel: drivers/usb/serial/usb-serial.c: USB Serial Driver core
Aug 22 19:19:24 compaq-evo kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for cp2101
Aug 22 19:19:24 compaq-evo kernel: cp2101 2-1:1.0: cp2101 converter detected
Aug 22 19:19:24 compaq-evo kernel: usb 2-1: reset full speed USB device using uhci_hcd and address 2
Aug 22 19:19:24 compaq-evo kernel: usb 2-1: cp2101 converter now attached to ttyUSB0
Aug 22 19:19:24 compaq-evo kernel: usbcore: registered new driver cp2101
Aug 22 19:19:24 compaq-evo kernel: drivers/usb/serial/cp2101.c: Silicon Labs CP2101/CP2102 RS232 serial adaptor driver v0.07

Der Datenlogger ist nach dem Einstecken über die Gerätedatei /dev/ttyUSB0 ansprechbar.

Zum Auslesen des Datenspeichers unter Linux verwende ich BTKBabel ein kleines Perl-Script. Das Programmarchiv und findet man unter folgender Seite.

benötigte Perl-Pakete nachinstallieren

Damit des Perlscript den Datenlogger richtig ansprechen kann, werden noch ein paar Perl-Pakete benötigt. Wir installieren daher die Pakete perl-Device-SerialPort, perl-DateTime und perl-TimeDate via yum.

yum install perl-Device-SerialPort perl-DateTime perl-TimeDate

MTKBabel installieren

Gemäß den Quellangaben bei rigacci holen wir uns erst einmal das benötigte Programmpaket via wget und entpacken das Archiv an die gewohnte Stelle im System.

cd /usr/local/src/

wget http://www.rigacci.org/wiki/lib/exe/fetch.php/tecnica/download/local_software/mtkbabel-0.7.tar.gz

tar zxvf mtkbabel-0.7.tar.gz
mtkbabel-0.7/
mtkbabel-0.7/mtkbabel
mtkbabel-0.7/MtkExtensionsv1.xsd
mtkbabel-0.7/README
mtkbabel-0.7/changelog
mtkbabel-0.7/copyright
mtkbabel-0.7/mtkbabel.1

Anschließend verlinken wird das Perlscript, damit der User das Script direkt aufrufen kann.

ln -s /usr/local/src/mtkbabel-0.7/mtkbabel /usr/local/bin/

Nun können wir das erste mal mtkbabel aufrufen und uns die Programmversion über die Option -v ausgeben lassen.

[luser@host ~]$ mtkbabel -v

MTKBabel Version 0.7

User Berechtigungen

Damit der User auch beim Aufruf von mtkbabel auf die Gerätedatei /dev/ttyUSB0 zugreifen kann, benötigt er noch die entsprechenden Lese- und Schreibrechte.

[root@host bin]# ll /dev/ttyU*
crw-rw---- 1 root uucp 188, 0 23. Aug 20:19 /dev/ttyUSB0

Wir eränzen also die Gruppe uucp um unseren User django.

usermod -G uucp luser 

Ohne Schreib-/Leseberechtigungen würde der Aufruf von mtkbabel mit folgender Fehlermeldung quittiert werden:

[luser@host ~]$ mtkbabel -p /dev/ttyUSB0 -f gpsdata_080822 -t -w
Can't call method "baudrate" on an undefined value at /usr/local/bin/mtkbabel line 1647.

Programmaufruf

Das Ausleseprogramm mtkbabel verfügt über folgende Programmoptionen.

[django@host ~]$ mtkbabel -h
Usage: mtkbabel [options]
Options:
    -a                       Read all the log memory (overlapped data)
    -b filename.bin          Do not read device, read a previously saved .bin file
    -d debug_level           Debug level: 0..7
    -E                       Erase data log memory
    -f filename              Base name for saved files (.bin and .gpx)
    -h                       Print this message and exit
    -l {on|off}              Turn loggin ON/OFF
    -m {stop|overlap}        Set STOP/OVERLAP recording method on memory full
    -o log_format            Enable or disable log fields (FIELD1,-FIELD2,...), available fields:
                             UTC,VALID,LATITUDE,LONGITUDE,HEIGHT,SPEED,HEADING,DSTA,DAGE,PDOP,HDOP,VDOP
                             NSAT,SID,ELEVATION,AZIMUTH,SNR,RCR,MILLISECOND,DISTANCE
    -p port                  Communication port, default: /dev/ttyUSB0
    -R                       Recover from disabled log: erase data and reset recording criteria
    -r time:distance:speed   Set logging criteria (zero to disable):
                             every 1-999 seconds, every 10-9999 meters, over 10-999 km/h
    -s speed                 Serial port speed, default 115200 baud
    -t                       Create a gpx file with tracks
    -v                       Print MTKBabel version and exit
    -w                       Create a gpx file with waypoints

Example:
    Download traks and waypoints from GPS device, creating the
    following files: gpsdata.bin, gpsdata_trk.gpx and gpsdata_wpt.gpx.

    mtkbabel -s 115200 -f gpsdata -t -w

Datenlogger auslesen

Das Auslesen des Loggers erfolgt über folgenden Aufruf.

[luser@host GPS-Traces]$ mtkbabel -p /dev/ttyUSB0 -f gpsdata_datum_080823 -t -w 
MTK Test OK
MTK Firmware: Version: 1, Release: B-core_1.1, Model ID: 0002
Log format: (0002002F) UTC,VALID,LATITUDE,LONGITUDE,SPEED,RCR
Size in bytes of each log record: 30 + (0 * sats_in_view)
Logging TIME interval:       1.00 s
Logging DISTANCE interval:   0.00 m
Logging SPEED limit:         0.00 km/h
Recording method on memory full: (2) STOP
Log status: (010100000100) AUTOLOG_OFF,STOP_WHEN_FULL,ENABLE_LOG,NEED_FORMAT
WARNING! Log status NEED_FORMAT, log data is not valid!
Next write address: 512 (0x00000200)
Number of records: 0
Memory health status (failed sectors mask): FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
>> Retrieving 65536 (0x00010000) bytes of log data from device...
Saved log data:   0.00%
Saved log data:   3.12%
Saved log data:   6.25%
Saved log data:   9.38%
Saved log data:  12.50%
Saved log data:  15.62%
Saved log data:  18.75%
Saved log data:  21.88%
Saved log data:  25.00%
Saved log data:  28.12%
Saved log data:  31.25%
Saved log data:  34.38%
Saved log data:  37.50%
Saved log data:  40.62%
Saved log data:  43.75%
Saved log data:  46.88%
Saved log data:  50.00%
Saved log data:  53.12%
Saved log data:  56.25%
Saved log data:  59.38%
Saved log data:  62.50%
Saved log data:  65.62%
Saved log data:  68.75%
Saved log data:  71.88%
Saved log data:  75.00%
Saved log data:  78.12%
Saved log data:  81.25%
Saved log data:  84.38%
Saved log data:  87.50%
Saved log data:  90.62%
Saved log data:  93.75%
Saved log data:  96.88%
Total record count: 0

Es werden damit folgende Dateien in unserem Zielverzeichnis angelegt.

[luser@host GPS-Traces]$ ll
insgesamt 88
-rw-rw-r-- 1 luser luser  65536 23. Aug 22:50 gpsdata_datum_080823.bin
-rw-rw-r-- 1 luser luser  665 23. Aug 22:50 gpsdata_datum_080823_trk.gpx
-rw-rw-r-- 1 luser luser  665 23. Aug 22:50 gpsdata_datum_080823_wpt.gpx

Datenlogger löschen

Das Löschen des Datenspeichers unserers GPSloggers erfolgt über:

[luser@compaq-evo GPS-Traces]$ mtkbabel -p /dev/ttyUSB0 -E
MTK Test OK
MTK Firmware: Version: 1, Release: B-core_1.1, Model ID: 0002
>> Erasing log memory...

Der Löschvorgang wird unter Umständen zwar mit folgender fehlermeldung quittiert:

ERROR: Reading from device: Nicht erlaubter Seek at /usr/local/bin/mtkbabel line 610.

Der Speicherinhalt wurde aber erfolgreich gelöscht und der Logger steht für weitere Traces wieder zur Verfügung.

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
  • fun/gps-datenlogging_fuer_openstreetmap.org.txt
  • Zuletzt geändert: 20.04.2018 09:06.
  • (Externe Bearbeitung)