Roboter mit ROS (eBook)

Bots konstruieren und mit Open Source programmieren

(Autor)

eBook Download: EPUB
2020 | 1. Auflage
308 Seiten
dpunkt (Verlag)
978-3-96088-468-2 (ISBN)

Lese- und Medienproben

Roboter mit ROS -  Murat Calis
Systemvoraussetzungen
34,90 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Bauen Sie Ihren Roboter - mit professionellen Tools - Robotik praktisch erklärt - Robot Operating System (ROS) kennen lernen und für eigene Prototypen einsetzen - Simulation, Konstruktion und Programmierung - zwei Roboter-Selbstbauprojekte für Bots mit fortgeschrittenen Fähigkeiten Mit diesem Buch erweitern Sie Ihr Verständnis für Robotik, können Entwicklungsschritte von der Simulation bis zur Programmierung selbst ausprobieren und lernen, außergewöhnliche Bots für eigene Anwendungszwecke zu konstruieren. Für die Steuerung führt Sie Murat Calis in das Robot Operating System (ROS) ein. Dieses Buch präsentiert die Möglichkeiten der Software auf verständliche Weise. So wird das Steuerungs-Framework nach kurzer Einarbeitung immer einfacher zu verstehen und zu bedienen. Murat Calis bietet in diesem Buch eine detaillierte Anleitung zur Erstellung eines virtuellen Prototyps und zeigt anschließend die Simulations- und Programmiermöglichkeiten mit ROS. Zwei Robotermodelle, die nachgebaut werden können, zeigen beispielhaft den Arbeitsfluss von der Idee zum Prototyp. Behandelt werden folgende Themen: - Simulationen mit Gazebo - Kartografierung und Kinematik mit RViz - Autonome kollisionsfreie Navigation mit SLAM - Gesichtserkennung mit OpenCV Sie lernen anhand der im Buch vorgestellten Robotermodelle das Publish-/Subscribe-Prinzip von ROS kennen. Nachdem Sie das Zusammenspiel unabhängiger Software-Module innerhalb eines Roboters verstanden haben, geht es spielerisch weiter, indem Sie die Roboter in einer Simulation starten oder eine virtuelle Welt kartografieren lassen. Die kommentierten Programmierbeispiele setzen Sie in die Lage, eigene Programme zu schreiben.

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?
EPUBEPUB (Wasserzeichen)
Größe: 13,6 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­gerä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.

Mehr entdecken
aus dem Bereich