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

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:

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

CAD-Teile

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:

  1. STL Datei in Blender öffnen
  2. Szene auf ‚Metric‘ stellen
  3. Dimension prüfen, ggf. Anpassen
  4. Koordinatenursprung platzieren
  5. Rotation anpassen
  6. Export als .DAE
  7. Öffnen mit MeshLab
  8. Filters > Remeshing, simplification and construction > Quadratic Edge Collapse Detection
  9. auf < 1000 Faces reduzieren
  10. 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

Graphviz-Screenshot

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

RViz

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.