Roboter mit ROS (eBook)
308 Seiten
dpunkt (Verlag)
978-3-96088-468-2 (ISBN)
Murat Calis wurde in Heidelberg geboren. Er ist Informatiker im öffentlichen Dienst. Nebenberuflich unterstützt er Unternehmen in den Bereichen Programmierung, Informationssicherheit und Automatisierung. In seiner Freizeit beschäftigt er sich leidenschaftlich mit Robotik und experimenteller Informatik. Sein aktuelles Projekt ist ein Roboter, der selbstständig lernt.
Murat Calis wurde in Heidelberg geboren. Er ist Informatiker im öffentlichen Dienst. Nebenberuflich unterstützt er Unternehmen in den Bereichen Programmierung, Informationssicherheit und Automatisierung. In seiner Freizeit beschäftigt er sich leidenschaftlich mit Robotik und experimenteller Informatik. Sein aktuelles Projekt ist ein Roboter, der selbstständig lernt.
2Roboter konstruieren und simulieren
In diesem Kapitel lernen wir Programme und Werkzeuge kennen, um Roboter in Simulationen und ROS verwenden zu können. Die Konstruktionsphase ist ein sehr frühes Stadium in der Entstehung eines Roboters. Deshalb nutzt man sie idealerweise zum Evaluieren von Prototypen. Wir konstruieren einen Roboter zunächst rein softwarebasiert. Anschließend wird der aktuelle Stand des Roboters im Simulator getestet. Gab es konstruktionsbedingte Mängel während der Simulation, setzen wir uns erneut mit der Konstruktion auseinander. Nach jeder Modifikation testen wir den Roboter im Simulator. Diesen Vorgang wiederholen wir so lange, bis wir der Meinung sind, dass der Roboter der Realität und den Bedingungen standhält, denen er später ausgesetzt sein wird. In einem Simulator führt man mit einem virtuellen Roboter Tests durch, die in der Realität große Schäden und hohe Kosten verursachen könnten. Simulationen sind aber nicht nur eine Testumgebung, um rechtzeitig Defizite der Hardware zu erkennen. Sie sind für Wissenschaftler und Forscher die optimale Umgebung, um Software zu evaluieren. Stellen Sie sich Tausende Roboterarme vor, die jeweils eine Kamera haben, um Objekte zu erkennen. Jeder Roboterarm arbeitet isoliert für sich und hat einen Heuhaufen vor sich liegen. Das Ziel ist, eine Nadel aus diesem Heuhaufen herauszuholen. Nun können Tausende unterschiedliche Algorithmen oder Verfahren getestet werden, um herauszufinden, welche die besten oder die schnellsten sind. Solche Tests würden in der Realität Unmengen an Kosten verursachen.
Mit ROS, der Simulationssoftware Gazebo und RViz haben wir die nötigen Werkzeuge zur Hand.
ROS-Roboter basieren auf URDF, dem Universal Robot Description Format. Gazebo basiert auf SDF, dem Simulation Description Format. Diese Unterschiede in den verwendeten Formaten stellen für uns kein Problem dar, da Gazebo auch URDF-Dateien lädt und verarbeitet. Zunächst muss also eine URDF-Datei erstellt werden, die unseren Roboter visuell und physikalisch repräsentiert.
In einer frühen Phase der Konstruktion dient RViz zur Visualisierung und Validierung kinematischer Ketten,1 die wir mit URDF-Dateien beschreiben werden. Darüber hinaus können in RViz anhand interaktiver Marker Navigationsziele für Fahrzeuge oder Wegpunkte für Endeffektoren2 eingegeben werden. Diese Navigationsziele oder Wegpunkte werden dann von unserem Roboter angesteuert.
Die Beispiele in diesem Buch basieren auf Gazebo in der Version 7, da es die zu ROS Kinetic kompatible Version ist und standardmäßig in Ubuntu 16 angeboten wird.
Worauf hier nicht eingegangen wird, sind der Entwurf und die Konstruktion von Roboterteilen bzw. Robotern in CAD-Programmen. Wenn für bestimmte Arbeitsschritte externe CAD-Software benötigt wird, werden wir uns mit Blender und FreeCAD behelfen. Beide Programme sind kostenlos und es existieren ausreichend Video-Tutorials im Internet.
In den nächsten Kapiteln werden wir uns mit folgenden Themen auf dem Entwicklungsrechner beschäftigen:
- Gazebo und Simulationen
- RViz und kinematische Strukturen
- FreeCAD und Formatkonvertierungen
- Blender und 3D-Modelle
- URDF und das Roboter-Modell
2.1Gazebo
Simulationen dienen auch der Qualitätsprüfung. Bevor ein Roboter tatsächlich gebaut wird, durchläuft der virtuelle Roboter verschiedene Tests in einer simulierten Umgebung. Da in einer Simulation nichts kaputt gehen kann, können die Tests so oft wie nötig ausgeführt werden. Eine Simulation ist ein mathematisch berechnetes Abbild der Realität. Und genau hier liegt auch ein Defizit heutiger Simulationen. Möchte man die Realität detailgetreu und mit allen physikalischen Eigenschaften simulieren, bräuchte man eine enorme Rechenkapazität, die es aktuell so noch nicht gibt. Man denke an das Earth Simulator Project, welches globale Klimamodelle simuliert und dessen Rechenzentrum so groß ist wie eine Sporthalle. So ist es eben noch nicht möglich, Regen, Schnee oder Nebel sowie Audio und Flüssigkeiten in Gazebo zu simulieren.
Ein Simulator in der Konstruktionsphase hilft, Konstruktionsfehler früh zu er kennen.
Mittlerweile wird Gazebo weltweit in Wettkämpfen in der RoboCup-Simulations-Liga sowie der Virtual Robotics Challenge eingesetzt und für die Mars-Mission veranstaltet die NASA die Space Robotics Challenge. Die benötigten Roboter gibt es als steuerbare 3D-Modelle in Gazebo unter dem Bedienfeld Insert. Standardmäßig werden Benutzermodelle im Heimatverzeichnis des aktuellen Benutzers gespeichert: ~/.gazebo/models.
2.1.1Virtuelle Welten mit dem Simulation Description Format – SDF
SDF ist eine Beschreibungssprache im XML-Format mit dem wichtigsten Merkmal, dass es keine Syntaxfehler im XML-Dokument geben darf. Das XML-Format kommt oft dort zum Einsatz, wo die Konsistenz des Dokuments gewährleistet sein muss. In XML bezeichnet man syntaktisch einwandfreie Dokumente »wohlgeformt«. Nehmen wir an, der Warenkorb eines Onlineshops wird im XML-Format an einen Bezahldienst wie PayPal übermittelt. Enthält der Warenkorb im digitalen Format, also XML, einen Fehler, könnte das eine Verarbeitung an der virtuellen Kasse, welches in diesem Beispiel PayPal ist, unmöglich machen und somit zu einem finanziellen Schaden beim Shopbetreiber führen. Eine ausführliche Beschreibung des SDF-Formats bieten die Spezifikationsseiten auf http://sdformat.org/spec.
Das folgende XML-Dokument ist »wohlgeformt«, wenn es diese Eigenschaften besitzt: Der Prolog deklariert ein XML-Dokument. Im Anschluss an die XML-Deklaration darf es nur ein einziges Wurzelelement geben, in diesem Fall <sdf>. Als letzte Eigenschaft eines »wohlgeformten« Dokuments muss gewährleistet sein, dass jedes geöffnete Elementwieder geschlossen wird, zum Beispiel <world>…</world>.
<?xml version='1.0'?>
<sdf version='1.6'>
<world name='erde'>
<light name='sonne' type='directional'>
. . .
</light>
<model name='zweiraum-wohnung'>
. . .
</model>
</world>
</sdf>
Gazebo bietet einen Modell-, Gebäude- und Welt-Editor. Modelle und Gebäude werden im SDF-Format gespeichert. Diese können in der Weltansicht eingefügt und mit anderen 3D-Modellen und Gebäuden als Welt ebenfalls im SDF-Format, aber mit der Dateiendung .world, gespeichert werden. So umgeht man das aufwendige Tippen in SDF-Dokumenten. Ein Blick in jene Dateien lohnt sich dennoch und Änderungen darin sind mit einem einfachen Texteditor möglich.
Abb. 2–1Gazebo World-Editor
2.1.2Gazebo-Benutzeroberfläche
Die Standardansicht in Gazebo ist World. Im linken Bereich befinden sich die Bedienfelder zum Auswählen und Inspizieren der Objekte sowie zum Einfügen eigener oder bereitgestellter 3D-Modelle. Auf den Internetseiten sind die Benutzeroberfläche und alle anderen Programmelemente bestens erklärt (http://gazebosim.org).
Abb. 2–2Gazebo-Symbolleiste
Nachdem die Installation auf dem Entwicklungsrechner abgeschlossen ist, werfen wir mit folgendem Konsolen-Befehl einen Blick auf den Gazebo-Simulator.
gazebo
Der Befehl gazebo führt gzserver und gzclient aus, wobei gzserver das Hauptprogramm und gzclient eine grafische Benutzeroberfläche startet. Der englische Begriff »headless« rührt daher, dass man in bestimmten Umgebungen keine grafische Oberfläche benötigt, sondern nur die Simulations- und Sensordatenberechnung. Die Trennung in Server- und Client-Programm ist auch nützlich, wenn man die grafische Oberfläche auf einem entfernten Rechner starten möchte. Dazu muss die Variable GAZEBO_MASTER_URI beim Client-Rechner, auf welchem gzclient ausgeführt wird, korrekt konfiguriert sein. Die Befehle whereis gazebo und whereis gazebo-7 geben die Speicherorte von...
Erscheint lt. Verlag | 25.1.2020 |
---|---|
Verlagsort | Heidelberg |
Sprache | deutsch |
Themenwelt | Technik ► Maschinenbau |
Schlagworte | Aktor • BSD • C++ • Informatik • Kinematik • Kinetic-Kame • Lidar • Mikrocomputer • Parallel-Prototyping • Personal-Robot • Python • Raspberry-Pi • Raspi • Robotik • Robot-Operating-System • Sensor • Sensorplattform • Simulation |
ISBN-10 | 3-96088-468-0 / 3960884680 |
ISBN-13 | 978-3-96088-468-2 / 9783960884682 |
Haben Sie eine Frage zum Produkt? |
Größe: 13,6 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich