Mit ‘Uni Ulm’ getaggte Artikel

Elektrotechnikerkompetenz

Dienstag, 27. Juli 2010

aus einer nicht naeher genannten Mailingliste:

Unser Drucker eins kann stolz auf sich sein: Er hat eben den ganzen
Switch im Gebäude lahmgelegt.
Dominic ersetzt eben das graue Kabel gegen ein gelbes Netzwerkkabel.

Dies hat FEhlerkorrigierende Wirkung.

GPS und Java: NMEA-Daten auswerten (1)

Freitag, 23. Juli 2010

Bild: GPS Recorder von andyp_uk, cc-by-nc

Irgendwann kommt die Zeit im Leben jedes Menschen, an der er GPS-Daten automatisiert verarbeiten will. Vertraut mir, was das angeht. Das passiert jedem.

Unter C++ ist sowas sicher viel simpler und toller. Ich hatte aber die fixe Idee, das unter Java zu machen, weil das ja gewohntes und damit vermeintlich sicheres Terrain fuer mich sei. Das lassen wir jetzt mal so dahingestellt.

Schritt 1: Daten holen

Die Idee, hier java.io verwenden zu wollen, kann man sich ziemlich in die Haare schmieren. Gleich gnu.io.rxtx zu verwenden, spart Aerger. Weil wir NMEA-Daten ueber die serielle Schnittstelle haben wollen, setzen wir die Parameter entsprechend: setSerialPortParams(4800, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);

Hier kommt jetzt alles moegliche NMEA-Zeug heraus, das man theoretisch direkt parsen koennte. Alternativ kann man mit der Java NMEA API gezielt nach den interessanten NMEA-Saetzen lauschen. Kurz deren Doku ueberfliegen lohnt sich auf jeden Fall, da sich auch ein Beispiel findet, wie man ein GPS-Geraet ueber die serielle Schnittstelle einliest.

PS: Viele GPS-Maeuse kommen heute mit einem integrierten Serial-to-USB-Konverter daher, damit man sie per USB anschliessen kann. Sollte RxTx unter Linux zwar einen USB-Port (a la /dev/ttyUSB0) erkennen, darauf aber nicht zugreifen koennen (“No such port”), helfen unter Umstaenden chown unsinn! chmod 666 /dev/ttyUSB0 und chgrp tty /dev/ttyUSB0 weiter.

Schritt 2: Was brauchen wir da eigentlich?

Wenn man sich mal direkt ansieht, was da ueber die Konsole rauscht, dann ist das ziemlich viel. Beispiel:

$GPRMC,101836.000,A,4825.1856,N,00956.8032,E,0.23,226.38,230710,,*07
$GPVTG,226.38,T,,M,0.23,N,0.4,K*68
$GPGGA,101837.000,4825.1857,N,00956.8023,E,1,04,1.4,567.4,M,48.0,M,,0000*5E
$GPGSA,A,3,17,05,08,18,,,,,,,,,8.6,1.4,8.5*36
$GPRMC,101837.000,A,4825.1857,N,00956.8023,E,0.57,292.18,230710,,*09

Das sieht auf den ersten Blick wenig einladend aus, im Endeffekt aber ziemlich simpel. “$GP” bedeutet, dass es sich um GPS-Daten handelt. “RMC”, “VTG”, “GGA”, “GSA” und Co. sind verschiedene Satztypen, die hierzu gehoeren. RMC muss jeder GPS-Empfaenger koennen, idealerweise nehmen wir uns aber die GGA-Saetze her, weil die in einem Satz alle fuer uns wichtigen Informationen bereitstellen.

Durch Kommas getrennt finden sich hier:

  • Uhrzeit in UTC
  • Breite und Bezeichner N oder S fuer die Breite
  • Laenge und Bezeichner W oder E fuer die Laenge
  • Qualität der Messung (0 == ungueltig, 1 == GPS, 2 == DGPS)
  • Anzahl der gemessenen Satelliten
  • Horizontal Dilution Of Precision (mehr dazu im naechsten Post)
  • Hoehe ueber Meer mit Einheit
  • Hoehe ueber Geoid minus Hoehe ueber Ellipsoid, mit Einheit

…gefolgt zum Schluss von einer Pruefsumme, die ich aber nie irgendwie beruecksichtigt habe. Bis auf das aktuelle Datum ist hier also alles vorhanden, was man braucht, es muss nur noch die Zeichenkette aufgetrennt und die WGS84-Koordinate in ein Format umgerechnet werden, mit dem man weiterarbeiten kann.

Schritt 3: Koordinaten umrechnen

Umrechnen? Ja. In den NMEA-Saetzen steht naemlich folgendes:

4825.1857,N,00956.8023,E

Das sind also 48° 25.1857′ noerdlicher Breite und 9° 56.8023′ oestlicher Laenge. In Minuten wollen wir aber nicht rechnen, wir wollen zwei glatte Dezimalbrueche — in diesem Fall etwa 48.4197616 und 9.946705. Dazu muessen wir aber erst einmal unsere NMEA-Saetze in ihre Bestandteile zerlegen.

In einigen Tutorials, die ich gefunden hatte, war hier immer vom StringTokenizer die Rede, um die Zeichenkette zu zerlegen. Das ist aber nicht immer eine gute Idee, da der NMEA-Output direkt nach dem GPS-Start oder beim Fix-Verlust (z.B. in einem Tunnel) so aussehen kann:

$GPGGA,103927.819,,,,,0,00,,,M,0.0,M,,0000*58

Schoener geht das alles mit der split()-Methode, um die Zeichenkette an den Kommas zu trennen:

String sentence_parts[] = e.getContent().split(",");

Nun ist klar definiert, an welcher Stelle was zu erwarten ist. Sollten wir keinen Fix haben, koennen wir das ganz einfach herausfinden:

if (sentence_parts[6].equals("0")) {
    System.err.println("No fix!");
    // TODO: Handle this further, if needed
 }

Gehen wir aber mal davon aus, dass wir einen Fix haben. Dann hilft uns der Algorithmus aus dem oben genannten Tutorial weiter, mit dem wir die Minutenangabe der NMEA-Koordinate in den Dezimalbruch nach dem Komma der Gradangabe umwandeln koennen:

float lat_val = convertLat(sentence_parts[2], sentence_parts[3]);
float lon_val = convertLon(sentence_parts[4], sentence_parts[5]);
public float convertLat (String raw_latitude, String lat_direction) {

  String lat_deg = raw_latitude.substring(0, 2);
  String lat_min1 = raw_latitude.substring(2, 4);
  String lat_min2 = raw_latitude.substring(5);
  String lat_min3 = "0." + lat_min1 + lat_min2;
  float lat_dec = Float.parseFloat(lat_min3)/.6f;
  float lat_val = Float.parseFloat(lat_deg) + lat_dec;

 // Direction of latitude. North is positive, south negative
  if (lat_direction.equals("N")) {
    // no correction needed
  } else {
    lat_val = lat_val * -1;
  }
 return lat_val;
 }
public float convertLon(String raw_longitude, String lon_direction) {
 // Conversion of longitude to floating point values

  String lon_deg = raw_longitude.substring(0, 3);
  String lon_min1 = raw_longitude.substring(3, 5);
  String lon_min2 = raw_longitude.substring(6);
  String lon_min3 = "0." + lon_min1 + lon_min2;
  float lon_dec = Float.parseFloat(lon_min3)/.6f;
  float lon_val = Float.parseFloat(lon_deg) + lon_dec;

  //direction of longitude, east is positive
  if (lon_direction.equals("E")) {
    // No correction needed
  } else {
    lon_val = lon_val * -1;
  }
 return lon_val;
 }

Jetzt haben wir unseren Standort. Naja, eigentlich nicht, sondern nur eine Annaeherung unserer Position. Hier kommt noch eine bestimmte Abweichung ins Spiel, die in Metern auszudruecken gar nicht so leicht ist. Wie man damit umgehen kann und wie das generell mit Genauigkeit, Praezision und Verfahren wie DGPS und SBAS geht, schreibe ich dann demnaechst mal.

Nachtrag: Waehrend ich das hier schreibe, faellt mir auf, dass ich bei den Vorzeichen automatisch das vom UTM-Koordinatensystem her bekannte Nordwert-Ostwert-Paradigma verwendet habe — bin mir aber aktuell nicht sicher, ob bei WGS84-Koordinaten nicht doch der Westwert ein positives Vorzeichen hat.

Nach-Nachtrag: Gpsvisualizer hat meine Annahme bestaetigt. Puh :)

Von Krakenorakeln und Wahrscheinlichkeiten

Samstag, 10. Juli 2010

Morgens, Redaktionskonferenz. Orakelkrake Paul dominiert die Titelseite der NUZ, cnn.com und Twitter (und wir lassen jetzt mal alle Diskussionen ueber journalistische Relevanz aussen vor). Irgendwann kommt jedenfalls die Frage auf, wie hoch denn die Wahrscheinlichkeit sei, dass das Viech sechs Mal in Folge richtig liegt.

Das Mathe-Vordiplom ist zwar eine Weile her, aber ich male mal eben einen Binaerbaum auf und versuche zu erklaeren, dass die Wahrscheinlichkeit jedes mal 50:50 ist, und sich demzufolge die Wahrscheinlichkeit fuer eine bestimmte Ergebniskombination jedes Mal halbiert, bei sechs Mal richtig also bei 1,5625% liegt.

An dieser Stelle darf man sich Grillenzirpen vorstellen.

So habe ich also den Auftrag bekommen, “mal eben” einen Mathematiker der Uni zu finden, der das erklaeren kann, was angesichts derer Vorlesungsverpflichtungen und der kurzen Zeit gar nicht so einfach ist. Irgendwann bin ich aber bei StaMue gelandet, der dazu bereit war, vor der Kamera ueber Krakenorakel zu sprechen.

Die andere Story ueber das nicht ganz eingesteckte Mikrofonkabel und die resultierenden Hetzfahrten von der SWP zur uulm und zurueck erspare ich euch aber lieber.

PS: Die Wahrscheinlichkeit, fuer die zwei verbleibenden Spiele richtig zu liegen, ist wieder 1/2 — die Kombination, acht Mal richtig zu liegen, bei 1/256.

Fahnenfrage

Freitag, 25. Juni 2010

Wenn ein- und dieselbe Person mehrere Rollen innehat, ist es bisweilen wichtig, diese sauber zu trennen. Ganz banales Beispiel ist mein Praktikum, wo ich den Job als SWP-Prakti vom Job als TU-Mitarbeiter ganz klar trennen moechte. Im groesseren Rahmen gilt das auch fuer die gewaehlte Bundesregierung samt ihrer Minister, die beispielsweise im Vorfeld der Wahlen zwischen ihrer Rolle als Regierungsmitglied und ihrer Rolle als Parteikandidat unterscheiden müssen.

Nun hat die amtierende StuVe gestern mittag alle Studierenden noch einmal per E-Mail auf die Gremienwahlen am Dienstag hingewiesen und um deren Wahlgang gebeten. Inhaltlich bittet die Studierendenvertretung um eine hohe Wahlbeteiligung, weist auf alle Wahllisten samt Link hin und verweist auf die Wahl-Geruechtekueche sowie die Wahlausschreibung der Uni.

Und was macht der RCDS Ulm daraus?

Gut, Finn als Unterzeichner ist nicht nur in der StuVe-Sitzungsleitung, sondern kandidiert auch fuer die kommende Wahl. Die Mail kam aber ganz hochoffiziell nicht von der Unabhaengigen Liste, sondern von der StuVe. Und ich will jetzt auch gar nicht darauf eingehen, ob das ein neuerlicher Angriff auf das U-Modell sein soll, wenn hier augenscheinlich der AStA “hoeher” eingestuft wird als die StuVe.

Viel spassiger ist in diesem Zusammenhang folgender Tweet von vor ein paar Wochen:

Der offizielle Vertreter der StuVe gegenueber dem Verkehrsverbund und den Stadtwerken ist mittlerweile RCDSler. Da draengt sich dann doch auch die Frage auf, unter welcher Fahne hier diskutiert wurde.

Lichtsignale

Freitag, 25. Juni 2010

Das sind Lichtsignalgeber. Abmontiert bei der Modernisierungsaktion an drei grossen Ulmer Kreuzungen, und eigentlich fuer den Schrottcontainer vorgesehen. Weil Dodo aber gleich leuchtende Augen bekam, als ich davon erzaehlte, habe ich bei der Stadt nachgefragt, ob denn das Uni-Kulturreferat ein paar der alten Teile fuer, aeh, Kunstinstallationen haben kann.

Ja, koennen wir. Und aus eigentlich geplanten “zwei oder drei” wurde nun das, was da oben auf dem Bild zu sehen im Students’ Lab der E-Technik liegt. Mal schauen, ob uns auch genuegend Kunstinstallationen einfallen, an denen man die einsetzen koennte.

Zugzwang und Vertrauensfrage

Donnerstag, 17. Juni 2010

Manchmal sitzt man einfach da und fragt sich, ob das Gegenueber eigentlich bis zum Ende durchgedacht hat, was es da tut.

So geht es mir momentan bei einer Kandidatur fuer den Senat der Universitaet Ulm. Als BaWue-Uni mit Pseudo-AStA gab es hier lange Zeit einen UStA, bis dieses Modell 1999 unter Federfuehrung von BCW durch ein unabhaengiges Konstrukt namens StuVe samt Traegerverein TStuVe ersetzt wurde. Dieses Modell ist zwar einerseits vollkommen unabhaengig — der TStuVe e.V. kann selbstaendig Geld verwalten, die StuVe besteht aus Fachschaftsvertretern und dem AStA, den sie formal beraet und der letztlich nur nochmals die Beschluesse bestaetigt — aber auch komplett darauf angewiesen, dass alle studentischen AStA-Kandidaten das U-Modell anerkennen und aktiv unterstuetzen. Oder anders gesagt: Wenn einzelne Studierende versuchen, ihre Absichten ausserhalb des U-Modells durchzusetzen, unterlaufen sie damit den Vertretungsanspruch der StuVe sowie das Modell an sich. Genau dies ist aktuell der Fall.

Zu dem ganzen Wahlvorlauf gehoert naemlich auch, dass zwei studentische Vertreter in den Senat gewaehlt werden sollen. Im Sinne des U-Modells liegt das Vorschlagsrecht hier natuerlich ebenfalls wieder bei der StuVe: Die Senatoren sollen die Entscheidungen der StuVe vertreten, und deswegen werden die Kandidaten auch nach dem Gesichtspunkt der Vertrauenswuerdigkeit gewaehlt und im Vorfeld in groesserer Runde befragt. Am Ende kann die StuVe entweder genau zwei Kandidaten ins Rennen schicken, oder die Studierenden zwei aus vier Kandidaten waehlen lassen, oder gar zwei Listen fuer sich antreten lassen — der Kreativitaet sind hier kaum Grenzen gesetzt.

Eine Grenze gibt es jedoch: Die Wahlvorschlaege fuer den Senat “duerfen” aus den oben genannten Gruenden nur von der StuVe kommen. Im Vorfeld werden deshalb auch immer alle Kandidaten befragt, ob sie hinter dem U-Modell stehen und ob sie fuer eine andere Senatorenliste kandidieren wuerden, wenn sie nicht von der StuVe aufgestellt werden wuerden.

Vor diesem Hintergrund weiss ich nicht, ob die Aufsteller der aktuellen Gegenkandidatur-Liste viel nachgedacht haben. Zumindest ein Kandidat wird angesichts seiner — offensichtlich falschen — Aussagen zu U-Modell und Konkurrenzliste seine Glaubwuerdigkeit verspielt haben. Und nicht zuletzt sollten sich die Gegenkandidaten bewusst machen, dass ihr Antreten fuer die StuVe einen direkten Angriff bedeutet, der sie in einen fatalen Zugzwang versetzt. Unternimmt sie nichts gegen diese Attacke, stellt sie ihr grundliegendes Modell und damit ihre Existenz in Frage. Ihr bleibt also keine andere Wahl als der gezielte Gegenangriff, um zu ueberleben.

Ich bin gespannt, wie beide Seiten mit der Situation umgehen werden.

Hoersaalkino ueber Weizenbaum

Mittwoch, 02. Juni 2010

“Nicht nur fuer Informatiker interessant”, sagen der IN-Dekan und die Uni-Pressestelle, und deswegen auch hier der Hinweis: Am 8. Juni 2010 wird um 17:00 Uhr im Hörsaal H20, Gebäude O27, der Film „Weizenbaum. Rebel at Work“ gezeigt. Nach der Filmvorführung findet eine Diskussion mit den Filmemachern, Silvia Holzinger und Peter Haas, statt.

Der 80-minütige Dokumentarfilm porträtiert den deutsch-amerikanischen Informatikpionier und Gesellschaftskritiker Joseph Weizenbaum. In Berlin geboren, verließ Joseph Weizenbaum Deutschland 1936 und kehrte nach über 60 Jahren dorthin zurück. Der Film ist die erzählte, persönliche Lebensreise des 85-jährigen „Rebellen“ und die Geschichte einer Jahrhunderterfindung, die des Computers.

Im Film schildert der Mathematiker und Informatikpionier, der zur Kultfigur geworden ist, sein Leben und Wirken in Anekdoten und Exkursen. Amüsiert berichtet er, wie er eines Tages zum Full Professor am renommierten Massachusetts Institute of Technology ernannt wurde und wie es zu “ELIZA” kam, seinem wohl bekanntesten Beitrag auf dem Gebiet der Informatik.

„Wir freuen uns, diesen Film an die Universität zu holen, wo er sicher thematisch breit gefächert wahrgenommen wird. Schließlich sind unter dem Dach der Informatik ganz unterschiedliche Ausrichtungen vereint: Von der Künstlichen Intelligenz, der Medieninformatik bis zur Neuroinformatik. Wir hoffen auf regen Zuspruch und eine lebhafte Diskussion.“ sagt Professor Dr. Michael Weber, Dekan der Fakultät für Ingenieurwissenschaften und Informatik sowie Direktor des Instituts für Medieninformatik, der die Filmemacher und ihren Film an die Universität eingeladen hat.

Anschliessend an die Vorfuehrung gibt es eine Diskussion mit den Filmemachern, Silvia Holzinger und Peter Haas.

Trailer:

Amnesty: Kurzfristiger Programmhinweis

Montag, 31. Mai 2010

Hab’s leider erst heute Mittag in der Mensa gesehen: Die Amnesty-Hochschulgruppe veranstaltet heute abend um 1900 Uhr im Hoersaal 6 der Uni Ulm (Gebaeudekreuz O25/Suedeingang) einen Vortrag zum Thema “Aufklaerungsarbeit an Massengraebern”. Auszug aus dem Programm:

Für die Verfolgung von Menschenrechtsverletzungen ist die Identifikation der Opfer ein wichtiger erster Schritt. Dafür sind eine Fülle von Befunden zu erheben: Geschlechts- und Altersdiagnose, bei Massengräbern die Individuentrennung, selten auch einmal die Einschätzung der Liegezeit, stets die Erhebung von Verletzungsspuren (und die Abtrennung von Beschädigungen nach dem Tod); vor allem müssen individuellen Merkmale gesammelt werden (Größen, Formen, DNS-Profil, Asymmetrien, Händigkeit…). Welche dieser Befunde dann für die eigentliche Identifikation nutzbar sind, hängt ganz von den verfügbaren Informationen über die Vermissten ab. So ist deren Sammlung, also die kriminalistische Seite der Arbeit an Massengräbern ebenso wichtig wie die Arbeit mit den Menschenresten. Aus verschiedenen Ländern werden Beispiele für Befunde wie Identifikationen vorgestellt.

Am 8. Juni, 1900 Uhr geht es an selber Stelle um Die Suche nach den verschwundenen Kindern Argentiniens.

Und via Moritz noch ein thematisch verwandter Hinweis: Am 26. Juni moechte Amnesty in Ulm einen Flashmob als Hinweis auf das unterfinanzierte Behandlungszentrum fuer Folteropfer veranstalten. Mehr auf der Amnesty-Seite und in einer eigenen Team-Ulm-Gruppe.

Aerger

Mittwoch, 05. Mai 2010

Vor einem Jahr hab ich fuer ca. acht Wochen einen BECI-Org-Posten uebernommen. Dieser war im Sommer schon schrott, weil irgendwie ziemlich viel Zeit dafuer draufging. Fand ich schon wunderlich, weil ich nur in normaler Unipartynaehe war. Kostete mich dann knapp ein Semester, weil der Hauptorg dafuer keine Garantie uebernehmen wollte. Vor zwei Monaten habe ich den Posten dann wieder uebernommen. Heute dann der naechste Schaden: Schon wieder die Organisation kaputt. Einfach so. Ohne Organisation ist die Planung aber weitgehend wertlos. Mal schauen, was der Hauptorg sagt und ob diesmal die Garantie wenigstens zieht. Ich aergere mich nur, dass ich soviel für den PR-Orgposten ausgegeben habe, der innerhalb eines Jahres zum zweiten Mal kaputt ist. Und mich jetzt wieder mit Marcus rumaergern darf. Nochmal bin ich nicht bereit, Zeit dafuer auszugeben.

beci’10 — Countdown laeuft

Mittwoch, 05. Mai 2010

Nur noch 48 Stunden, dann kann ich wieder normal schlafen und auch die anfallenden anderen Dinge abarbeiten. Gestern haben wir es mal wieder geschafft, 1000 Vorverkaufskarten in deutlich unter zehn Minuten zu verklopfen — allen, die per Google auf der Suche nach Karten hierher finden: Ja, es gibt noch eine begrenzte Anzahl Abendkassenstempel, und es gibt noch ein paar freie Helferschichten. Eintragen, solange noch was frei ist ;)

Wir gehen dann langsam in den Last-Minute-Modus ueber. Gleich gibt’s ein Treffen mit dem Siemens-Brandmeldeanlagentechniker, danach die Orgausweise fertig machen, zwischendurch meinen Teil eines Vortrags fuer morgen frueh ins SVN einchecken, und ich bin wieder mal vollkommen paranoid, was die Sicherheitsmerkmale der diesjaehrigen Eintrittskarten angeht.

Achja, und wir bauen nachher vielleicht noch wahlweise ein Flugzeug oder einen Vulkan aus Pappmache. Nicht fragen.