Eine der herausfordernden Fragen für Informatiker im Bereich der Robotik lautet (aus Sicht des Roboters): „Wo bin ich?“ Während wir Menschen uns mit unseren Sinnen schnell in einer fremden Umgebung zurechtfinden, tut sich der Roboter diesbezüglich viel schwerer: mit seinen visuellen Sensoren sieht er (nach einer teils aufwändigen mathematischen Nachbearbeitung, z.B. Hough Transformation) stets nur geometrische Formen wie Ecken und Kanten, die er zu interpretierbaren und identifizierbaren Objekten formen und darüber hinaus in Umgebungsszenarien abbilden muss. Die der generellen Orientierung dienende wichtigste Information für den Roboter betrifft die sogenannte „Welt“, in der er sich inmitten dieser Objekte gerade bewegt; und diese Welt besteht vornehmlich aus einer bestimmten Anzahl von irgendwie aneinander angrenzenden Wänden in einem abgeschlossenen Raum. Im Service-Robotikbereich kann diese Welt ein Industriegelände, ein Museum, eine Krankenstation, eine zu staubsaugende Wohnung oder was auch immer sein, das über mehrere Raumbereiche verfügt.

Der denkbar schwierigste Fall für einen Roboter liegt vor, wenn er sich seine Welt selber erst neu erschließen muss. Wie im Fall des willkürlich aus seiner bekannten Umgebung herausgenommene und woanders hingesetzte „kidnapped robot“ weiß der Bot (=Kurzform für Roboter) anfangs überhaupt nicht, wo er sich befindet, muss sich im Laufe der Zeit immer weiter fortbewegen, dabei alle Objekt- und Hindernisdaten sammeln, um sich nach und nach eine Karte zu erstellen. Dieser Fall, in der Fachsprache auch SLAM genannt (Simultaneous Localisation and Mapping), ist wie schon gesagt äußerst anspruchsvoll und vor allem auch rechenintensiv.

Ein etwas einfacherer Fall liegt vor, wenn der Roboter nach dem Einschalten zwar ebenfalls nicht weiß, wo in seiner Welt er sich gerade befindet, er es aber durch ein paar Hin- und Her-Bewegungen sehr schnell herausfinden kann, weil seine gesamte mögliche Welt als Karte schon irgendwo abgespeichert ist und er sie sich nicht (wie bei SLAM) erst selbst erschließen muss. Im vorliegenden Fall unseres Projektes "URGino-Bot going PLAYER" liegt diese Karte auf einem PC, ist eingebunden in einen äußerst mächtigen Simulator (namens Player, Abb. s.u.), und es muss nur noch über den Weg von etwas Statistik (namens Adaptive Monte Carlo) in möglichst kurzer Zeit die exakte Position des Bots bestimmt werden.

Project-Poster

(Zur Verständniserleichterung werden unten die Zusammenhänge dieses Projektes anhand dreier Poster gezeigt. Ein Video ist geplant.)

Die unten abgebildeten drei Project-Poster 1-3 zeigen in einer groben Vereinfachung, wie eine einfache Lokalisation und Navigation mit einer bekannten Roboter-Welt ablaufen kann.

Auf der LNdW2015 haben wir dieses Projekt live vorgeführt und gezeigt, wie sich unser realer Bot "URGino" in einer abgegrenzten Welt, einem 1,50 x 1,50 Meter großen Holz-Labyrinth, simultan zu seinem virtuellen Pendant, das ist ein Avatar in dem grafischen Player-Simulator, selbstständig seine Anfangsposition ermittelt und dann souverän den kürzesten Weg zu einem Zielpunkt gefahren ist, der durch die Besucher immer wieder durch Weghindernisse (ein Bowling-Kegel) gestört wurde.

Um diese Aufgabe zu realisieren, liefert der reale Bot über seinen Sensor, ein Laser-Scanner, die Umgebungs -/Hindernisdaten an den Simulator, und dieser versucht aus den erhaltenen Daten die Position des Bots in seiner Welt (dem Holz-Labyrinth) zu ermitteln. War dieser erste Schritt der zweiteiligen Aufgabe erfolgreich, wird von einem Anwender durch einen Klick mit der Maus in dem Simulator eine neue Position bestimmt, zu der sich der Bot hinbewegen soll. Der in den Simulator integrierte A*-Algorithmus (sprich: A-Stern-Algorithmus) berechnet hierzu den kürzest möglichen Weg, übergibt die Daten an den Simulator, und dieser schickt sowohl seinen Avatar als auch den realen Bot auf die Reise. Wird dieser berechnete Weg nachträglich durch ein hinzugefügtes Hindernis gestört, erfolgen die nötigen Korrekturberechnungen, um das Hindernis zu umfahren. 

URGino
URGino-Bot im Holz-Labyrinth (1,50x1,50m)
Virtuelle Darstellung des URGino
Virtuelle Darstellung des URGino als Avatar im Player-Simulator, der dieselben Raumverhältnisse aufweist wie das "reale" Holz-Labyrinth

Das Zusammenspiel von Hardware und Software im Überblick
Project-Poster 1

Dieses erste Poster zeigt schematisch jeweils die Hardware und die Software des für das vorliegende Projekt verwendeten Bots, dem URGino.

Hardwaretechnisch ist der Bot zunächst ausgestattet mit einem Arduino-Microcontroller, auf dem die Motorsteuerung für die beiden Motoren des Roboters realisiert ist. Die Motorsteuerung sorgt u.a. durch einen PID-Regler dafür, dass sich die Räder immer konstant mit einer vorgegebenen Geschwindigkeit bewegen.

Die eigentliche Anwendersteuerung, das ist hier der Player-Server, befindet sich auf dem Raspberry Pi, einem sogenannten Einplatinencomputer mit einem Linux-Betriebssystem. Die Aufgaben, die der Player-Server nur unter Zuhilfenahme eines Laser-Scanners insgesamt zu erfüllen mag, sind in der schematischen Darstellung "Software" abgebildet. Für das vorliegende Projekt sind jedoch nur die beiden zur "Localisation (and Path-Planning)" gehörenden Aspekte Monte-Carlo-Localisation und A*-Pathfinding von Bedeutung. Diese werden in den beiden nachfolgenden Postern genauer erklärt.

Über Statistik zur Localisation, mit A* zur Navigation
Project-Poster 2 und 3