Probabilistische Robotik

Einen fahrbaren Roboter zu bauen- das ist schon eine echte Herausforderung. Um diesem aber auch noch beizubringen autonom Aufgaben zu lösen, bedienten sich Michael Fürst und sein Team der Mathematik: Im Rahmen der Gulasch Programmier-Nacht (GPN16) des Entropia e.V. in der Hochschule für Gestaltung (HfG) und dem Zentrum für Kunst und Medien (ZKM) in Karlsruhe berichtete er über die Verfahren der Probabilistischen Robotik (Video) und welche Erfahrungen sie damit machen konnten- und erzählt uns im Gespräch mit Sebastian Ritterbusch davon.

Michael Fürst studiert Informatik am Karlsruher Institut für Technologie (KIT) und befasst sich im Team Informatik der Hochschulgruppe Kamaro Engineering speziell mit robusten probabilistischen Methoden zur Entscheidungsfindung.

Der aktuelle Roboter Beteigeuze der Hochschulgruppe ist die zweite Generation und wurde dafür ausgelegt, Aufgaben in der Überwachung und Bewirtschaftung von Maisfeldern oder der Navigation im urbanen Umfeld zu erfüllen. Die Hochschulgruppe gibt es seit 3 Jahren und besteht aus 30-45 Mitgliedern. Sie ist eingebettet in das Teilinstitut Mobile Arbeitsmaschinen (MOBIMA) am Institut für Fahrzeugsystemtechnik (FAST) am KIT mit dessen Unterstützung und Drittspenden sich die Hochschulgruppe finanziert.

Die interdisziplinäre Hochschulgruppe besteht aus vier Teams: Das Organisationsteam, das Mechanik-Team, das Elektrotechnik-Team und das Informatik-Team. Die Gruppe organisiert sich auch als Verein mit Vorstand und einer Leitung in jedem Team, um mit einer flachen Hierarchie jedem die Möglichkeit zu bieten sich in das Projekt einzubringen. Auf der einen Seite will die Gruppe die autonome Robotik voranzubringen und allen Teammitgliedern gleichzeitig auch die Möglichkeit zu bieten, praktisches Wissen und Erfahrungen neben dem oft theoretischem Studium zu erlangen. Das Team nimmt dazu regelmäßig an verschiedenen internationalen Wettbewerben teil, wie dem Field Robot Event, dem SICK Robot Day oder der Robotour.

Technisch basiert die Software-Lösung des Roboters inzwischen auf dem Robot Operating System (ROS), mit dem auf einer Ubuntu-Plattform auf einem im Roboter eingebauten Computer in Java, Python oder C++ die gestellten Aufgaben bearbeitet werden. Mit 40kg Gewicht ist der Roboter für seine Größe kein Leichtgewicht und kann daher nicht beliebig Batterien transportieren, so dass dem Lademanagement eine besondere Rolle zufällt. Die gewählte Größe ermöglicht gerade bei der Feldarbeit einen nicht-invasiven Ansatz, der im Vergleich zu anderen Varianten, wie der automatischen Steuerung von Traktoren, die Pflanzen nicht schädigt.

Der Roboter erfasst seine Umwelt mit einer Vielzahl von Sensoren: Die Lidar-Sensoren zur Entfernungsmessung in verschiedenen Richtungen sind dabei besonders wichtig, und sie messen bis zu 50mal pro Sekunde. Sie bestimmen die Entfernungen zur Umgebung des Roboters in einer Ebene bis 16m in einer Auflösung von bis zu drei Messpunkten pro Winkel-Grad und 3cm Entfernungsauflösung- mit gewissen Fehlerraten und Problemen mit reflektierenden Oberflächen. Zusätzlich misst eine intertiale Messeinheit translative und radiale Beschleunigungen wie auch die Ausrichtung zum Erdmagnetfeld. Zusätzlich können auch digitale Kameras zur Detektion von befahrbaren Untergründen, Objekten oder zur Analyse von Pflanzen eingebaut und verwendet werden. Zusätzlich messen Radencoder die Umdrehungen und Auslenkung durch Servos der Räder, womit der Roboter durch Odometrie seine durchgeführte Bewegung aus sich selbst heraus abschätzt. Durch die Kombination der Lidar-Daten mit der Odometrie durch ein SLAM-Verfahren (Simultaneous Localization and Mapping) ermöglicht mit einem Kalman-Filter durch Analyse der Kovarianzen die robuste Erstellung einer Karte während des Befahrens, und korrigiert Fehler bei der eigenen Lokalisierung durch die Odometrie. Zusätzlich kann der Roboter mit einem GPS-Empfänger seine Position grob bestimmen.

In der Auswertung der Sensoren wird zwar von einer guten Kalibrierung ausgegangen, jedoch ist es Teil des probabilistischen Ansatzes, die erfassten Werte immer mit einer konservativen Fehlerverteilung zu verarbeiten. Die Kamerabilder werden ebenso robust verarbeitet: Die Bilddaten werden nach einer Konvertierung in den HSV-Farbraum zunächst auf eine konstante Helligkeit gebracht, um Schatteneffekte zu reduzieren. Dann werden alle weniger farbigen Pixel als befahrbarer Weg markiert, und die Anzahl der befahrbaren Pixel pro Spalte in ein Histogramm zusammengeführt. Jeder Wert in dem Histogramm wird nun als Güte bzw. der Wahrscheinlichkeit für Fahrbahn in diese Richtung gewertet. Die GPS-Position wird zur Lokalisierung in der Open Street Map verwendet, wo nach Berechnung einer Route die aktuelle Zielfahrtrichtung bestimmt wird.

Die eigentliche Entscheidungsfindung erfolgt dann auf Basis der verschiedenen Sensordaten durch die Berechnung von Erwartungswerten in Abhängigkeit von einer möglichen Fahrtrichtung. Genauer betrachtet werden für jeden Sensor Zielfunktionen über den erwarteten Nutzen unter Annahme des Fahrens in eine bestimmte Richtung berechnet, und anschließend der von der Fahrtrichtung abhängige Erwartungswert unter Annahme von Sensorungenauigkeiten und Fahrungenauigkeiten bestimmt. Im Falle der gewünschten Fahrtrichtung aus den GPS- und Kartendaten wird eine sehr breite Normalverteilung angesetzt, weil auch abweichende Richtungen noch einen Gewinn darstellen können, wenn sie zumindest etwas in die richtige Richtung gehen.

Aus jedem Sensor ergibt sich pro Fahrtrichtung ein erwarteter Teilnutzen, und aus allen Teilnutzen wird der Gesamtnutzen als Produkt berechnet: Dadurch werden Teilnutzen von 0 sofort als Gesamtnutzen 0 gewertet, ansonsten aber geometrisches Mittel über die Teilnutzen gebildet. Die gewählte Fahrrichtung ergibt sich dann aus der Richtung, unter der sich das Gesamtmaximum des Gesamtnutzens ergibt.

Die Verarbeitung der Sensordaten erfolgt typischerweise in der Geschwindigkeit, in der die Sensoren die Umgebung abtasten. In der Bildverarbeitung wird dies besonders durch die effizienten Routinen der verwendeten OpenCV-Bibliothek möglich. So sind bis zu 30 Entscheidungen in der Sekunde möglich, jedoch können die Motoren die Entscheidungen nur deutlich langsamer umsetzen.

Es wurden auch weitere Verfahren zur Entscheidungsfindung getestet, wie die Verwendung von Clusteranalyse oder die Erstellung von Voronio-Diagrammen. Doch zeigte die robuste Entscheidungsfindung über Erwartungswerte bei der Navigation im urbanen Gebiet ihre Vorteile.

Die beschriebene Entscheidungsfindung bezieht sich dabei bisher nur auf die Fahrtrichtung- die Fahrtgeschwindigkeit wird bisher nur von der freien Wegstrecke in Fahrtrichtung bestimmt. Dadurch verfolgt der Roboter im Normalfalle seine Ziele in Normgeschwindigkeit von 0.5-1m/s (er läuft und läuft und läuft), bremst aber, sobald er in die Gefahr gerät, sonst einen Menschen oder sich selbst zu beschädigen. Dadurch folgt der Roboter den Robotergesetzen von Asimov.

Die Kommunikation im Roboter erfolgt über verschiedene Netze- der Lidar-Sensor wird beispielsweise über Ethernet angesprochen, die Entscheidungsfindung spricht mit den Hauptroutinen in der Recheneinheit über eine TCP-Verbindung, die Kommunikation von der Recheneinheit zum Masterboard erfolgt über USB als serielle Schnittstelle (UART), und das Masterboard gibt seine Steuerbefehle über einen CAN-Bus an Motoren und Servos weiter.

Der Wettbewerb der Robotour 2015 fand in Tschechien in der Innenstadt von Pisek statt. Nach einer Qualifikation vor Ort gab es nach einer Testrunde eine erste Wettkampfrunde, in der die Roboter eine Lieferung von einem Parkplatz durch die gesamte Innenstadt über festgelegte Wegpunkte letztlich zu einem Restaurant bringen sollen. Obwohl der Testlauf noch erfolgreich war, litt der Roboter Beteigeuze der Gruppe in den ersten zwei Segmenten unter Abstürzen und lag damit auf dem letzten Platz. Nachdem der Fehler gefunden war, erreichte der Roboter im dritten Lauf als einziger das Segmentziel; und blieb im vierten Lauf zwar am Hintereingang des Restaurants hängen, war aber auch da gegenüber allen anderen Kandidaten bei weitem am nächsten am Ziel, und gewann so den Wettbewerb.

Für einen Einstieg in die Robotik bieten sich Systeme wie Lego Mindstorms oder andere Roboterbaukästen an, aber auch Programmierspiele, wie sie Michael auch auf der GPN angeboten hat: https://github.com/Programmierspiele.


Literatur und weiterführende Informationen


GPN16 Special