11 Minuten
Projektvorschlag für automatisierte Roboterführung
Einleitung
In diesem Projektvorschlag soll ein Konzept für eine automatisierte interaktive Roboterführung durch das Naturerlebniszentrum in Hondelage beschrieben werden. Dabei wird nicht nur auf die technischen Eigenschaften des Roboters eingegangen, sondern unter anderem auch auf die zu führenden Gruppen und Mitarbeiter des Zentrums. Da es sich bei dem Naturerlebniszentrum um ein umweltfreundliches Projekt handelt, wird besonders auf das Recycling und die Umweltverträglichkeit der zu verwendenden Materialien geachtet. Unter Beachtung der Anforderungen soll dennoch ein gewisses Budget eingehalten werden.
Beschreibung der Anforderung
Wie in der Einleitung schon erwähnt wurde, soll ein Roboter konstruiert werden, welcher eine automatisierte interaktive Führung durch das Erlebniszentrum durchführt. Dabei wird davon ausgegangen, dass die Führungen zumeist mit Gruppen veranstaltet werden, welche zu einem Großteil aus Kindern bestehen. Es soll aber auch möglich sein einzel Personen durch das Zentrum zu führen, was die Testphase höchstwahrscheinlich sehr vereinfachen wird. Die Interaktivität spielt in dem Projekt eine sehr große Rolle, da durch dieses eine größere Anzahl von Gruppen in das Erlebniszentrum geholt werden sollen, um mehr Kinder schon früh mit der Natur vertraut zumachen.
Wichtige Anforderungen
- Interaktivität
- Kommunikation mit Nutzern
- Ausgabe von Informationen
- Informationen zur Ausstellung
- Standortgebundene Ausstellungsinformationen
- Allgemeine Informationen
- Z.B. Batteriestatus, etc.
- Sprachassistent-Informationen
- Frage-Antwort-Prinzip
- Informationen zur Ausstellung
- Ausgabe von Informationen
- Eingabe von Informationen
- Start einer Führung
- Zu verwendende Sprache
- Gruppenführer
- Roboter kann auf einzelne Personen eingehen
- Gesichtserkennung
- Gesten oder Sprachsteuerung
- Z.B. Mitarbeiter können Roboter zum Aufladen schicken
- Roboter kann auf einzelne Personen eingehen
- Kommunikation mit Nutzern
- Bewältigung des Einsatzgebietes
- Roboter soll keine Kollision verursachen
- Soll an Hinternissen vorbeifahren oder gegebenenfalls warten
- Roboter muss auf dem Untergrund fahren können
- Mögliche kleine Hinternisse überwinden
- Liegende Kabel sollten überwunden werden
- Mögliche kleine Hinternisse überwinden
- Roboter muss jederzeit wissen wo er sich befindet
- Lokaler und globaler Plan (Costmap)
- Roboter soll keine Kollision verursachen
- Umweltfreundlichkeit
- Roboter soll größtenteils aus umweltfreundlich Materialien bestehen
- Recyclebarkeit
- Roboter soll größtenteils aus umweltfreundlich Materialien bestehen
- Design
- Roboter soll Kinder und Erwachsen ansprechen
- Akkuleistung
- Die Laufzeit des Roboters sollte mehrere Gruppenführungen mit einer Akkulaufzeit schaffen
Einsatzgebiet des Roboters
Das Einsatzgebiet des Roboters ist primär auf 2 Räume und einen Flur begrenzt, kann aber jederzeit mittels Neuberechnung der Pläne des Roboters erweitert werden. Da der Roboter über mehrere Sensoren verfügt, ist es nicht notwendig bei kleinen Veränderungen des Raumes die Pläne neu zu berechnen, solange die Standorte der jeweiligen Ausstellungsstücke und die Basisstation des Roboters unverändert bleiben. Folgend soll das Einsatzgebiet des Roboters beschrieben werden.
Wie man auf dem obigen Bild erkennen kann, hat der Roboter einen vordefinierten Pfad, der bei Beginn der Führung erst einmal initial als vorgegebener Pfad festgelegt wird. Dieser kann sich jedoch jederzeit durch eine Interaktion eines Mitarbeiters oder ähnliches ändern. Zusätzlich zu dem globalen Plan des Zentrums, erstellt der Roboter selbstständig eine lokale Karte, welche gleichzusetzen mit der Auswertung seiner Sensoren ist und die Reichweite dieser besitzt.
Hardware-Analyse
Bei dem Entwurf des Roboters wurde in erster Linie auf die technischen Funktionen und nicht auf das Design geachtet, da sich das Design erheblich schneller und unkomplizierter anpassen lässt, als z.B. die Lage der Sensoren. Zusätzlich ist es nicht relevant, wo genau die Ausgabegeräte verbaut werden, weil diese nicht für die Navigation, Ortung oder ähnliche wichtige Funktion des Roboters zuständig sind. Bedeutsamer sind dagegen die Position der Eingabegeräte, wie zum Beispiel die Kamera oder die Sensoren, welche bei Kollisionsgefahr den Abstand zu einem Objekt wahrnehmen können.
Hardware
Die Wahl der Hardware, auf welchem das Betriebssystem des Roboters laufen soll, ist nicht wirklich schwierig. Dafür reicht entweder ein handelsübliches Notebook mit möglichst wenig Akkuverbrauch oder ein Embedded-System, wie der Raspberry Pi. Wichtig ist nur, dass alle Sensoren verbunden werden können und dass das Robot Operating System auf der Rechner-Architektur lauffähig ist.
Sensorik
Die Wahl der Sensoren hängt sehr stark von den Anforderungen ab, welche an den Roboter gestellt werden. Ein Beispiel ist etwa die Erkennung von Personen. Dies setzt eine Kamera voraus. Anders ist es natürlich auch so, dass bei dem Roboter nicht unnötig viele Sensoren verbaut werden müssen, welche die Akkuleistung herabsetzen. Ein gutes Beispiel ist dafür der Klippen-Sensor. Dieser wird nicht benötigt, da es in dem beschriebenen Einsatzgebiet keine Treppen oder ähnliches gibt. Anhand dieser Anforderungen kann eine Liste der Sensoren erstellt werden. Die Sensoren stellen sich wie folgt zusammen:
- Abstandssensor
- Misst den Abstand zu Objekten
- Dient der Kollisionsvermeidung
- Misst den Abstand zu Objekten
- Gyrosensor
- Misst Beschleunigung
- Dient der Sicherheit des Roboters
- Beispiel: Wenn keine Beschleunigung, aber Räder sollen sich drehen, Abbruch der Navigation
- Kamera
- Optimal 3D-Kamera Kinect von Microsoft
- Erkennt Objekte und Personen und misst den Abstand
- 4-Array-Mikrofon für Sprachsteuerungs
- Richtungsbestimmung der Sprachsteuerung
- Optimal 3D-Kamera Kinect von Microsoft
Abstandssensor
Um die Wichtigkeit von Abstandssensoren noch einmal zu unterstreichen, widmet sich der folgende Abschnitt den zwei Unterarten von Abstandssensoren. Abstandssensoren messen die Entfernung zwischen dem Sensor und einem Objekt. Sie dienen dem Roboter zur Orientierung in seiner Umgebung und zur Kollisionsvermeidung. Dieser Sensortyp hat gegenüber den anderen Sensoren für die Entfernungsmessung, zum Beispiel dem Näherungssensoren, den Vorteil, dass er eine größere Reichweite erfassen und die Geometrie von Objekten erkennen kann. Man unterscheidet zwischen optischen und akustischen Abstandssensoren sowie Radar.
Optische Abstandssensoren
Der optische Abstandssensor ist eine Verbesserung vom optischen Näherungssensor. Er erzeugt elektromagnetische Wellen im sichtbaren Bereich. Ein Vorteil ist die Stabilität gegenüber Fremdeinwirkungen.
Das Laufzeitverfahren bestimmt den Abstand von zwei Gegenständen zueinander. Es geht von einem Sender ein Impuls in Richtung des Objektes aus. Dieses reflektiert das Signal und sendet es zum Empfänger zurück. Der Zeitraum vom Sender bis zum Empfänger wird gemessen. Mit Hilfe des Laufzeitverfahrens können, gegenüber z.B. der Triangulation, Informationen über größere Entfernungen gewonnen werden
Die Triangulation wird eingesetzt, um räumliche Objekte zu erkennen. Hierbei wird ein Laserstrahl auf die Oberfläche eines Gegenstandes projektiert, diese reflektiert das Licht und leitet dieses weiter an eine Kamera. Mit dem bekannten Abstand von Sender und Empfänger kann die Entfernung zum Objekt mit der in Abbildung 6 angegebenen Triangulationsbeziehung berechnet werden.
Stereoskopie
Stereoskopie wird auch als passive Triangulation bezeichnet, da es eine Triangulation bei Umgebungslicht ist. Sie wird zur Hinderniserkennung und räumlichen Orientierung verwendet. Mit dieser Methode werden 3D-Bilder erzeugt. Bei der Stereoskopie werden, wie zwei nebeneinander liegende menschliche Augen, Kameras im Abstand mit unterschiedlichem Blickwinkel montiert, wodurch Informationen über die Tiefe gegeben werden.
Akustische Abstandsensoren
Ein akustischen Abstandssensor arbeitet im Ultraschallbereich. Er dient zur Hinderniserkennung und zur Entfernungsmessung. Es wird das Prinzip des Echos verwendet. Hierbei sendet das Gerät einen kurzen Ton aus, der von einem Körper reflektiert wird. Diese Sensoren können mit denen eines Delphins oder einer Fledermaus verglichen werden. Akustische Abstandssensoren haben den Vorteil, das sie sehr günstig sind und sich Platz sparend in Ringform anordnen lassen. Aber bei dem Gebrauch von akustischen Abstandssensoren kann es zu Ungenauigkeiten kommen. Zum Beispiel bei der Verwendung von mehreren Sensoren dieser Art. Wenn die einzelnen Sensoren Signale nicht verschlüsselt aussenden, kann es vorkommen, dass ein reflektiertes Signal von einem anderen Sensor aufgenommen wird.
Radar Abstandssensoren
Ein Radarsensor gibt Information zum Beispiel über Entfernung und genaue Position eines Objektes. Radar ist eine Abkürzung für „Radio Detection and Ranging" und bedeutet in etwa Funkortung und Entfernungsbestimmung. Der Sensor bündelt elektromagnetische Wellen und sendet diese aus. An einem Objekt, das sich im Bereich der Strahlung befindet, reflektiert das Signal. Der Radar nimmt die zurück gesendeten Wellen auf und wertet die gewonnenen Informationen aus.
Gyrosensor
Ein Gyrosensor ist ein Beschleunigungs- oder Lagesensor, der auf kleinste Beschleunigungen, Drehbewegungen oder Lageänderungen reagiert. Das Prinzip des Gyrosensors basiert auf der Massenträgheit und wird u.a. in Fliehkraftreglern eingesetzt. Die von einem Gyrosensor erfassten Drehbewegungen werden in einer Spannungsänderung bezogen auf die Drehgeschwindigkeit angegeben: Millivolt pro Grad Drehbewegung pro Sekunde (V/Grad/s).
Kamera
Die Kinect-Kamera von Microsoft eignet sich hervorragend für die Anwendung in einem Roboter. Sie verfügt nicht nur über eine normale RGB-Kamera, sonder auch über einen Infrarot-Laser und eine Infrarot-Kamera. Dadurch ist die Kinect in der Lage Distanzen zu Objekten und zusätzlich die Personen vor der Kamera als eine Art Vektor-Skelett zu ermitteln. Somit nimmt sie den Entwicklern der Roboter-Software eine Menge Arbeit ab.
Genauere Details zu der Kinect-Kamera kann aus dem beigefügten PDF entnommen werden, welches ich für die Vorlesung Bildverarbeitung in diesem Semester geschrieben habe.
Antrieb
Der Antrieb des Roboters besteht aus einem Differentialantrieb. Dieses besteht aus zwei angetriebenen Rädern auf einer Achse mit einem oder zwei passiv mitlaufenden Stützrädern, die sich frei drehen können.
Dieser Antrieb hat den Vorteil, dass sich der Roboter auf der Stelle drehen kann, um zum Beispiel die Berechnung eines neuen Weges durchzuführen, ohne sich von der Stelle zu bewegen. Dabei kommt es nicht auf die Geschwindigkeit, sondern eher auf die Genauigkeit an.
Eingabegeräte
- LCD-Touchscreen
- Sprachsteuerung
Um mit dem Roboter direkt zu kommunizieren, stehen verschiedene Eingabemöglichkeiten zur Verfügung. Die erste Möglichkeit ist die Sprachsteuerung, mit welcher man dem Roboter Anweisungen geben kann. Hierzu wird auf dem Roboter ein Sprachassistent installiert, welcher vergleichbar mit Siri von Apple ist. Dieser kann unter anderem allgemeine Befehle auswerten. Ein Beispiel hierfür ist: „Hey Robo, wie ist das Wetter". Aber auch benutzerdefinierte Befehle sind möglich. Es gibt für die Definition solcher Befehle keine Grenzen. Eine weitere Möglichkeit ist die des LCD-Touchscreen mit dem man in der Lage ist direkt mit dem Roboter zu kommunizieren. Hierüber lässt sich zum Beispiel der Roboter aktivieren und der Nutzer ist fähig verschiedene Einstellungsmöglichkeiten eingegeben werden.
Simulation
Bevor der Roboter in die Realität umgesetzt wird, soll vorher eine Simulation entstehen. In dieser Simulation können mögliche Fehler vermieden bzw. bei anfallenden Problemen eine sofortige Lösung gesucht werden. Dabei wird ein genaues Abbild des Roboters und des Einsatzgebietes erschaffen und im Computer simuliert. Wie weiter oben schon erwähnt wurde, wird auf das Robot Operation System, kurz ROS, gesetzt.
ROS
Das ROS stellt Entwicklern verschiedene Bibliotheken und Werkzeuge zur Verfügung, welche Softwareentwicklern helfen Roboteranwendungen zu erstellen. Dabei sind Hardware Abstraktion, Gerätetreiber, Bibliotheken, Visualisierungen, Nachrichtenvermittlung, Packetverwaltung und andere Komponenten schon vorhanden. Es ermöglicht dem Entwickler sich voll und ganz auf die Programmierung und das Design des Roboters zu konzentrieren.
RVIZ
RVIZ, oder auch ROS visualization, ist ein Tool mit dem man in der Lage ist die gewonnen Daten der unterschiedlichen Sensoren in einer 3D-Virtualisierung zu visualisieren und sich verschiedene Daten des ROS-Kern ausgeben zu lassen.
Gazebo
Gazebo ist ein Open-Source Simulator der Open Source Robotics Foundation und ermöglicht die 3D-Visualisierung, das schnelle Testen von Algorithmen und das schnelle designen von Robotern. Darüber hinaus können diese auf ein realistisches Szenario angewandt werden und mittels der integrierten Physic-Engine physikalischen Eigenschaften ausgesetzt werden.
Entwurf Einsatzgebiet
Das Einsatzgebiet wurde komplett in Gazebo entworfen und soll das Haus des Naturerlebniszentrums darstellen. Dabei wurde sich nur auf die, für die Simulation, notwendigen Dinge konzentriert.

Entwurf Roboter
Bei dem Entwurf des Roboters wurde, wie oben schon erwähnt wurde, momentan nur auf die technischen
Aspekt und weniger auf des Design eingegangen. Wie auf dem Bild zu erkennen ist, besteht der Roboter eher aus einem simplen Design ohne Verkleidung. Dabei sind die drei Ablageflächen für den Akku, das Notebook oder das Embedded-System und andere Sensoren vorgesehen. Deutlich kann man die Kinect-Kamera erkennen, welche ziemlich weit vorne am Roboter angebracht ist. Dies ist notwendig, um der Kamera das bestmögliche Bild zu liefern. Unter dem Roboter sind die Abstandssensoren versteckt, die immer dann benötigt werden, wenn die Kamera etwas übersehen hat oder die Objekte sich dem Roboter nähern. Der komplette Roboter steht als Python-Code zur Verfügung. Bevor der Roboter allerdings durch Blender in ein 3D-Modell umgewandelt wurde, wurden die Einzelteile des Roboters mit LibreCAD entworfen und bemaßt.
Dabei werden einige Teile wiederverwendet und werden deshalb nicht doppelt oder dreifach gezeichnet.
Navigationsziele
Der momentane Entwicklungsstand des Roboters ist, dass er zu angegebenen Navigationszielen unter Berücksichtigung der Daten von Gazebo und RVIZ navigieren kann und mittels der Erkennung von Objekten auch um Objekte herum fährt.

Zusammenspiel zwischen ROS, RVIZ und Gazebo
Wenn das Projekt aus dem Catkin-Workspace gestartet wird, wird erst einmal der ROS-Core mit den Projektdaten initialisiert. Hier ist es schon möglich die Topics des Publisher-Subscriber-Verfahren von ROS zu begutachten. Eine Liste der initialisierten ROS-Topics ist in der mitgelieferten Text-Datei ros_topics_list.txt zu finden. Mithilfe dieser Topics kommuniziert das ROS mit den Anwendungen RVIZ und Gazebo. Als nächstes startet sich das Programm RVIZ.

Auf dem obigen Screenshot wird die Anwendung RVIZ mit der initialisierten 2D-Karte des Zentrums gezeigt. Wie zu erkennen ist, navigiert der Roboter auf einem Pfad zu dem nächsten 2D-Navi-Goal. Die lokale Costmap, welche in den unterschiedlichen Farben zu sehen ist, sind die Daten von den verschiedenen Sensoren. In Gazebo bewegt sich zeitgleich der Roboter Richtung Navigationsziel. Würde man jetzt ein Objekt dem Roboter in den Weg legen, würde dieser den Pfad neu berechnen und an dem Hindernis vorbeifahren, wenn möglich. Wenn der Roboter keinen geeigneten Weg um das Objekt findet, würde dieser stehen bleiben und sich nach einigen Sekunden im Kreis drehen, um wieder mit der Berechnung eines neuen Weges zu starten.

Fazit
Die Entwicklung der Simulation ist noch nicht vollständig abgeschlossen und es fehlen hier und da gewiss noch ein paar Elemente des Roboters, nichtsdestotrotz kann man die ersten Züge des Roboters erleben und wie er theoretisch einmal seine Arbeit verrichten mag. Es ist ein hoch spannendes Thema und jeden Tag werden neue Roboter in den unterschiedlichsten Gebieten eingesetzt. Deshalb werde ich mich weiter in das Thema einarbeiten und höchstwahrscheinlich meine kommende Masterarbeit über dieses Projekt oder ein ähnliches schreiben.
Quellenangaben
- ROS Documentation - http://wiki.ros.org/Documentation
- RN-Wissen - Sensorarten - http://rn-wissen.de/wiki/index.php?title=Sensorarten
- Autonomer mobiler Roboter - https://de.wikipedia.org/wiki/Autonomer_mobiler_Roboter
- Gazebo - http://gazebosim.org
- RVIZ - http://wiki.ros.org/rviz
- Turtlesim Tutorial - http://wiki.ros.org/turtlesim/Tutorials