Lokalisation, Mapping und Bewegungssteuerung für ein autonom agierendes Radfahrzeug

Lokalisation, Mapping und Bewegungssteuerung für ein autonom agierendes Radfahrzeug

Diese Masterarbeit beschäftigt sich mit der Integration eines Betriebsprogramms zur Lokalisation, Mapping und einer Bewegungssteuerung für ein autonom agierendes Radfahrzeug. Die Lokalisation mit Mapping beschreibt eines der Kernprobleme im Bereich der Robotikund wird auch als Simultaneous Localization and Mapping kurz SLAM bezeichnet. Für die Realisierung eines Betriebsprogramms auf dem „Control Subsystem“ der Roboterplattform ist es jedoch erforderlich einen SLAM so zu implementieren, dass die Rechenlast für den vorhandenen Mikrocontroller (STM32F407) mit 168 MHz möglichst gering gehalten wird, um die weiteren Aufgabenstellungen, wie z. B. die Bewegungssteuerung, noch bewältigen zu können. Die zu erstellenden Funktionen für den Funktionsumfang des SLAM’s sind so aufzuarbeiten, dass sie im Anschluss für die Mastervorlesung „Robotik“ in einer Firmware-Bibliothek bereitgestellt werden können. Die Bewegungssteuerung soll aufgrund einer abstrahierten Karte eine geeignete Wegplanung durchführen und die nötigen Steuerbefehle für eine Start-Ziel-Navigation ableiten. Hierbei müssen die geometrischen Eigenschaften der Roboterplattform berücksichtigt werden, um mögliche Kollisionen mit Hindernissen zu vermeiden.

SLAM

Zur Lokalisation und Kartierung wurde der tinySLAM-Algorithmus aus [1] für die Roboterplattform herangezogen. Zur Verwendung des SLAM’s wurde ein Konzept zur Nutzung und Anpassung von Systemparametern etabliert sowie die Verarbeitung der Sensordaten auf die gegebene Hardware der Roboterplattform angepasst. Darüber hinaus wurde ein eigenes Odometriemodell aufgrund von zurückgelegten Distanzen und Rotationsbewegungen realisiert.
Innerhalb des tinySLAM-Algorithmus wurden verschiedene Prozessabläufe angepasst
und optimiert. Zur Gewährleistung einer deterministischen Lokalisation des tinySLAMAlgorithmus wurde die Monte Carlo Localization so angepasst, dass der Zeitbedarf eine obere Schranke nicht überschreiten kann. Das Sensormodell wurde zur Optimierung der Kartierung für unterschiedliche Umgebungen umgeschrieben. Der Funktionsumfang des SLAM’s wurde erweitert um bereits bestehende Karten zu laden oder im geeigneten Format abzuspeichern sowie eine Erstlokalisation innerhalb einer geladenen Karte vorzunehmen.
Die getätigten Anpassungen, Erweiterungen und Parametrisierungen wurden durch zahlreiche Fahrversuche verifiziert um sicherzustellen, dass der SLAM eine geeignete Lösungsgüte, bei einer zugleich geringen zeitlichen Rechenlast aufweist.
Zur Verifikation der Performance wurden Vermessungen des Zeitbedarfes einzelner SLAMProzesse für unterschiedliche Parametrisierungen bei einer autonom ausgeführten Erkundung der Umgebung vorgenommen. Die unterschiedlich beanspruchten Zeiträume für die einzelnen SLAM-Prozesse verdeutlichen, dass die Lösungsgüte durch das Bereitstellen von mehr Rechenzeit verbessert werden kann. So verändert sich die mittlere Zeit von 0,8099237 [s] für eine akzeptable Re-Lokalisation bis zu 1,904057 [s] für eine exaktere Lösungsgüte.
Dieses zufriedenstellende Ergebnis zeichnet sich in der Performanceanalyse ab. Ein weiterer Versuch zeigt die Fähigkeit einer Erstlokalisation in einer vorab geladenen Karte mit der anschließenden inkrementellen Erweiterung von bislang noch nicht kartierten Bereichen der Umgebung. Die geladene Karte befindet sich in der Abbildung (1a) und die inkrementell erweiterte Karte in der Abbildung (1b). Es ist zu sehen, dass der beschriebene Funktionsumfang wie vorgesehen arbeitet und der unerforschte Bereich der
Karte optimal an der vorgesehenen Stelle inkrementell erweitert wurde.

(a) Geladene Occupancy Grid Map im Dateiformat .pgm

 

(b) Inkrementell erweiterte Occupancy Grid Map

Abbildung 1.: Inkrementelle Erweiterung einer Karte nach einer Erstlokalisation

Sollte es vorkommen, dass die Lösungsgüte einer erstellten Karte dem Anwender nicht
ausreichend ist, kann diese jederzeit für alle relevanten Parameter der Kartierung sowie der Lokalisation durch die Übergabeparameter der etablierten Initialisierungsfunktion angepasst werden.

Bewegungssteuerung

Zur Realisierung und Implementierung einer geeigneten Start-Ziel-Navigation wird ein Theta*-Algorithmus aus [2] herangezogen. Es wurden eine Reihe von Maßnahmen zur Minimierung der Rechenleistung für die Laufzeit des angepassten Theta*-Algorithmus durchgeführt. Der Rechenaufwand für eine Start-Ziel-Navigation steht immer im direkten Zusammenhang mit der Anzahl der zu durchsuchenden Zellen einer Karte und somit auch mit der Entfernung vom Start zum Ziel. Aus diesem Grund wurde bei der Abstraktion einer Navigationskarte eine Anpassung der Zellenauflösung in Abhängigkeit der befahrenen Umgebung sowie die Anzahl der zu bildenden Nachbarzellen auf vier reduziert. Die realisierte Bewegungssteuerung unter Berücksichtigung der Fahrzeuggeometrie sowie die Anpassungen zur Minimierung des Rechenaufwandes wurden durch entsprechende Simulation sichergestellt.
Die Simulation liefert eine visualisierte Darstellung der untersuchten Zellen der Karte als auch den gefundenen Pfad vom Start zum Ziel unter Berücksichtigung einer definierten Schutzzone. Zur Verdeutlichung welche Auswirkungen z. B. die Reduzierung der zu bildenden Nachbarzellen von acht auf vier auf die Arbeitsweise des angepassten Theta*-Algorithmus hat, dient die Abbildung 2. Dieses Simulationsergebnis zeigt, dass für jeden der beiden Fälle ein Pfad detektiert wurde. Der berechnete Pfad weist unter Berücksichtigung von acht Nachbarzellen einen etwas kürzeren Weg auf. Das Ergebnis ist auch unter Berücksichtigung von lediglich vier Nachbarzellen zielführend, und das bei einem zugleich geringeren Rechenaufwand. Dieser gefundene Pfad weist sogar einen natürlicheren Verlauf auf.


Abbildung 2.: Links: Visualisiertes Simulationsergebnis des Wegfindungsalgorithmus unter Berücksichtigung von acht zu bildenden Nachbarzellen. Rechts: Visualisiertes Simulationsergebnis des Wegfindungsalgorithmus unter Berücksichtigung von vier zu bildenden Nachbarzellen.

Des Weiteren stellte sich heraus, dass es am geeignetsten ist mit vollständig abgeschlossenen Karten zu Arbeiten, da hierbei die Anzahl der zu durchsuchenden Zellen durch die natürliche Begrenzung der verzeichneten Hindernisse reduziert wird. Um eine aussagekräftige Performenceanalyse tätigen zu können, wurde der Zeitbedarf für die Untersuchung einer definierten Anzahl von Zellen innerhalb des Theta*-Algorithmus für unterschiedliche Start-Ziel-Navigation auf dem Mikrocontroller ermittelt. Hierbei stellte sich heraus, dass im Mittel für die Untersuchung von 1000 Zellen ein Zeitbedarf von 1,3511065 [s] benötigt wird.
Zur Verifikation wurden umfangreiche Start-Ziel-Navigationen in unterschiedlichen Umgebungen für unterschiedliche Start-Ziel-Positionen durchgeführt, um die einwandfreie Arbeitsweise sicherzustellen. Innerhalb des Betriebsmodus der Start-Ziel-Navigation wird die Ausführbarkeit eines Fahrbefehls auf mögliche Kollisionen stets durch verschiedene Verfahren kontrolliert. Die korrekte Arbeitsweise dieser Verfahren wurden ebenfalls innerhalb dieser Versuche überprüft und optimiert.
Durch verschiedene Versuchsszenarien wurde ebenfalls verifiziert, dass ein nachträglich
in der Umgebung aufgetretenes Hindernis in der Start-Ziel-Navigation mit berücksichtigt
wird. Kreuzt z. B. der gefundene Pfad ein vorab nicht in der geladenen Karte verzeichnetes Hindernis, wird eine alternative Route zum Ziel berechnet und erfolgreich ausgeführt. Bei der Berechnung eines Pfades von der derzeitigen Position des Roboters zum Ziel treten jedoch vereinzelt Probleme auf. Diese Probleme äußern sich darin, dass ein Fehlercode signalisiert, dass die vorgesehene Zielposition nicht befahrbar ist. Der Ursprung dieses Problems liegt in der inkrementell erweiterten Karte des SLAM’s. Kommt es im Verlauf einer Re-Lokalisation zu einem Versatz, kann es dazu kommen, dass die Zielposition durch die eingestellten Ausmaße der Schutzzone des Roboters nicht mehr angefahren werden kann. Ein solches Problem ist in der Abbildung 3 zu sehen.

Abbildung 3.: Fehlerhaft inkrementell erweiterte Karte

Um ausschließen zu können, dass dieses Problem im autonomen Fahrbetrieb auftritt, können die Übergabeparameter der Initialisierungsfunktion für die Lokalisation angepasst werden.
Dadurch erhöht sich der nötige Rechenaufwand für eine Lokalisation, die Lösungsgüte der inkrementell erstellten Karte steigt jedoch.

Ausblick

Für die Weiterentwicklung der Roboterplattform gibt es verschiedene Arbeitsbereiche. Ein interessanter Aspekt der Weiterentwicklung ist die Anpassung des Betriebsprogramms auf einen online SLAM, bei dem alle vom Laser-Entfernungsmesser erhobenen Datensätze über die erfassten Entfernungen in die Verarbeitung des SLAM’s miteinbezogen werden.
Es könnte jedoch erforderlich sein, dass für dieses Konzept dem Control Subsystem der
Roboterplattform ein leistungsstärkerer Mikrocontroller zur Verfügung gestellt werden muss. Ein weiterer Arbeitsbereich stellt das Bedienerprogramm (XBee Communicator) dar.
Derzeit wird die Funktionalität des Bedienerprogramms zum Setzen einer Geschwindigkeit für die rechte und linke Roboterseite zweckentfremdet, um eine neue Zielposition der Start-Ziel-Navigation (x,y- Koordinaten in [m]) vorzugeben. Darüber hinaus wäre es hilfreich, den Funktionsumfang des Bedienerprogramms dahingehend zu erweitern, eine grobe geschätzte Position für eine Erstlokalisation zu übertragen.
Zur Optimierung eines Ausweichmanövers beim Auftreten eines Fehlerfalls in der Start-
Ziel-Navigation, könnte die Funktion zum Ausweichen dahingehend erweitert werden, dass nicht nur die Distanzen des Laser-Entfernungsmessers zur Hilfe genommen werden, sondern auch die hinterlegte Navigationskarte.
Ein interessanter Forschungsansatz einer Weiterentwicklung, ist der Einbezug weiterer
auf der Roboterplattform vorhandener Sensoren für die resultierende Kartierung. Somit
kann die Möglichkeit geschaffen werden, die durch den Laser-Entfernungsmesser (Hokuyo URG-04LX) nicht erkannten Glasscheiben direkt bei der inkrementellen Erweiterung der Occupancy Grid Map mitzuberücksichtigen.

___________________________________________________
[1] Steux, Bruno and EL Mamzaoui, Oussama, “a SLAM Algorithm in less than 200 lines
of C code,” tech. rep., Mines ParisTech - Center of Robotics, Paris, FRANCE, 2010.
[2] Choi, Sunglok, Lee, Wai Jae-Yeong, and Yu, Wonpil, “Fast Any-angle Path Planning
on Grid Maps with Non-collision Pruning.” Proceedings of the 2010 IEEE International
Conference on Robotics and Biomimetics, December 2010.

Raimund Walter, August 2015