Calis | Roboter mit ROS | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 308 Seiten

Calis Roboter mit ROS

Bots konstruieren und mit Open Source programmieren
1. Auflage 2020
ISBN: 978-3-96088-468-2
Verlag: dpunkt.verlag
Format: EPUB
Kopierschutz: 6 - ePub Watermark

Bots konstruieren und mit Open Source programmieren

E-Book, Deutsch, 308 Seiten

ISBN: 978-3-96088-468-2
Verlag: dpunkt.verlag
Format: EPUB
Kopierschutz: 6 - ePub Watermark



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.
Calis Roboter mit ROS jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


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 haben wir die nötigen Werkzeuge zur Hand.

ROS-Roboter basieren auf , dem . Gazebo basiert auf , dem . Diese Unterschiede in den verwendeten Formaten stellen für uns kein Problem dar, da Gazebo auch Dateien lädt und verarbeitet. Zunächst muss also eine -Datei erstellt werden, die unseren Roboter visuell und physikalisch repräsentiert.

In einer frühen Phase der Konstruktion dient zur Visualisierung und Validierung ,1 die wir mit -Dateien beschreiben werden. Darüber hinaus können in anhand interaktiver Marker Navigationsziele für Fahrzeuge oder Wegpunkte für 2 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.

.

Mittlerweile wird Gazebo weltweit in Wettkämpfen in der -Simulations-Liga sowie der eingesetzt und für die Mars-Mission veranstaltet die NASA die . Die benötigten Roboter gibt es als steuerbare 3D-Modelle in Gazebo unter dem Bedienfeld . Standardmäßig werden Benutzermodelle im Heimatverzeichnis des aktuellen Benutzers gespeichert: .

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 ü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 .

Das folgende XML-Dokument ist »«, 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

version='1.0'?>

version='1.6'>

name='erde'>

name='sonne' type='directional'>

. . .

name='zweiraum-wohnung'>

. . .

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 (.

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 führt und aus, wobei das Hauptprogramm und eine grafische Benutzeroberfläche startet. Der englische Begriff »« 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 beim Client-Rechner, auf welchem ausgeführt wird, korrekt konfiguriert sein. Die Befehle und geben die Speicherorte von...


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.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.