Das Robot-Operating-System, kurz ROS, ist ein weit verbreitetes Open-Source-Softwaresystem, welches für viele Zwecke in der Robotik genutzt werden kann.
Die Hauptbestandteile und -aufgaben von ROS sind
- Hardwareabstraktion
- Gerätetreiber
- Oft wiederverwendete Funktionalität
- Nachrichtenaustausch zwischen Programmen bzw. Programmteilen
- Paketverwaltung
- Programmbibliotheken zum Verwalten und Betreiben der Software auf mehreren Computern
Kurzum: Für viele Anwendungsfälle im Umgang mit Robotern wurde schon viel Software geschrieben, getestet und erprobt. Keine Notwendigkeit also, das Rad noch einmal neu zu erfinden, wie auch Andreas Bihlmaier in folgendem Video demonstriert:
https://www.youtube.com/watch?v=o_M1r23dg2U
Für einen mittelständischen Betrieb haben wir die Aufgabe ein Arbeitsgerät zu simulieren, Kollisionsanalysen und Bewegungssteuerung auszuführen. Die Bauteile liegen in CAD-Software vor, sodass die Roboterkonfiguration in ROS überführt werden muss.
Ausgangslage: CAD Daten
Diese Teile wurden aus dem CAD Programm als .stl Datei exportiert. Sie können im Allgemeinen jedoch nicht gleich für eine korrekte Roboterkonfiguration genutzt werden. Es sind Anpassungen notwendig.
Anpassung mit Hilfe von Blender und Meshlab
Die exportieren .stl Bauteile müssen nun in korrekter Dimension und mit korrektem Koordinatenursprung als Collada Austauschformat .dae vorliegen, damit der Zusammenbau mit Hilfe einer Unified Robot Description Format (URDF) relativ einfach erfolgen kann. Das nachfolgende Tutorial soll diesen Vorgang zeigen.
Benötigt werden die Software Blender und die Software Meshlab. Der Ablauf zur Anpassung einer optimalen Collada Datei zur Nutzung mit ROS ist folgender:
- STL Datei in Blender öffnen
- Szene auf ‘Metric’ stellen
- Dimension prüfen, ggf. Anpassen
- Koordinatenursprung platzieren
- Rotation anpassen
- Export als .DAE
- Öffnen mit MeshLab
- Filters > Remeshing, simplification and construction > Quadratic Edge Collapse Detection
- auf < 1000 Faces reduzieren
- speichern als .DAE
Nun können die .DAE Files mit Hilfe der Unified Robot Description Format (URDF) file genutzt werden, um den Roboter zu visualisieren.
URDF File erstellen mit realen Bauteilen
Dabei ist ein räumliches Verständnis dringen notwendig. Es gilt das rechte Hand Koordinatensystem. Ein Bauteil (so genannter “link“) wird an ein anderes Bauteil ‘ran gebaut’ mit Hilfe von Joints. Diese können fix, translatorisch oder rotatorisch sein. Es gibt genaue Vorgaben an den Aufbau der .urdf Datei, siehe ROS Wiki.
Die Koordinaten und Rotationsachsen sind nach Rechte Hand Koordinatensystem definiert. Dabei wird das Koordinatensystem mit dem Joint verdreht und verschoben. Das neue Bauteil wird dann an das Joint gebaut, jeweils wieder mit Rotation und Translation im eigenen Koordinatensystem, vom Joint ausgehend. So wird nach und nach die Konfiguration vom Roboter aufgebaut.
Check der URDF File
Die erstellte URDF File kann auf korrekte Syntax überprüft werden mit dem ROS Befehl
check_urdf multicar.urdf
Dabei ist auf strikte Verwendung von ASCII Zeichen zu achten. Auch in Kommentaren dürfen keine Umlaute oder Sonderzeichen enthalten sein. Einen grafischen Überblick in Form einer PDF Datei lässt sich mit folgendem Befehl erhalten:
urdf_to_graphiz multicar.urdf
Sieht das nun alles zufriedenstellend aus, können wir die Roboterkonfiguration mit RViz anschauen.
Ansicht und Bewegung mit RViz
Den gesamten Roboter kann man natürlich am einfachsten mit RViz testen. Hier kann über die GUI der State Publisher gesteuert werden, sodass auch die Rotations- und Translationslimits auf Korrektheit überprüft werden können.
roslaunch urdf_tutorial display.launch model:='multicar.urdf' gui:=True
Weiter mit dem MoveIt Setup Assistent
Um Pfadplanung, Sensorintegration Kinematik, Steuerung und Navigation visualisieren zu können, bietet sich ROS MoveIt! an.
MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. It provides an easy-to-use platform for developing advanced robotics applications, evaluating new robot designs and building integrated robotics products for industrial, commercial, R&D and other domains.
https://vimeo.com/122447063
Leave A Comment