Die Roboterplattform

An der Hochschule Ravensburg-Weingarten wird der Simatic ET 200SP Open Controller PC2 in einer Linux- Umgebung zur Steuerung einer Roboterplattform eingesetzt. Diese Roboterplattform ist mit vier DC-Antrieben und den zugehörigen Mecanum-Rädern [3] ausgerüstet. Durch separate Ansteuerung der Antriebe lassen sich omnidirektionale Bewegungen der Plattform in allen Richtungen realisieren.

Die Plattform verfügt über folgende Komponenten, die insbesondere hinsichtlich der Ansteuerung durch den Simatic ET 200SP Open Controller PC2 von Bedeutung sind:

  • Zwei Motor-Controller (für jeweils zwei DC-Motoren, 24 V, CAN-Bus-Schnittstelle, CANopen-Protokoll, Geschwindigkeitsregelung der DC-Motoren),

  • USB-CAN-Converter,

  • digitale Ein-/Ausgänge,

  • Wifi-Verbindung für die Einbindung in ein Rechnernetzwerk und

  • DC-24-V-Versorgung (Akku).

Die Ansteuerung der Roboterplattform ist flexibel gestaltet hinsichtlich der möglichen Bewegungsrichtungen, deren Kombinationen und dem Zusammenwirken mehrerer Plattformen. So lassen sich mit omnidirektionalen Bewegungsmöglichkeiten sehr raumsparende Bewegungsabläufe (senkrechte Verläufe) realisieren. Auch Schwarmanordnungen mehrerer Plattformen sind möglich. Für die Entwicklung wurde auf das „Robot Operating System“ ROS [4] zurückgegriffen, das vorzugsweise zusammen mit dem Betriebssystem Linux eingesetzt wird. Das Programmierinterface (API) stellt eine leistungsfähige, skalierbare und für verschiedene Programmiersprachen einsetzbare Schnittstelle dar. 

ROS existiert aktuell in verschiedenen Versionen, die aufwärtskompatibel sind. Für die passende Auswahl sind die Anforderungen an die Komplexität der zu realisierenden Applikationen, aber auch die unterstützten Laufzeitumgebungen (Linux-Distributionen, Intel- oder ARM-Prozessoren) von Bedeutung. 

Im vorliegenden Projekt liegt der Schwerpunkt auf der Applikation, nicht auf ROS selbst. Deshalb wird eine ROS-Version verwendet, für die bereits Distributionen mit vorkompilierten Bibliotheken vorliegen und die Übersetzung aus den Quellen vermieden werden kann (hier die Version „Kinetic Kame“ mit Long Term Support aus dem Jahr 2016). Diese Distribution lässt sich gut zusammen mit dem Betriebssystem Ubuntu 16.04 [5] betreiben.

Eine wesentliche Eigenschaft von ROS ist die Gliederung einer Applikation in verschiedene „Nodes“, die in einem Rechnernetzwerk unter der Kontrolle eines ROS-Masters eingebunden sind. Nodes übernehmen typische Aufgaben in der Robotik, wie das Einlesen und Bereitstellen von Sensordaten (Odometriedaten, Hinderniserkennung, Bildauswertung), die Ansteuerung aktiver Komponenten, mögliche Transformationen verschiedener Sensordaten (Koordinatentransformationen) und die Bereitstellung von Kontrollstrukturen (Regelalgorithmen, Ablaufsteuerungen). Die Funktionalität der Nodes sind meist in einzelnen oder mehreren Programmpaketen, den sogenannten „packages“ abgelegt. Die einzelnen „Nodes“ kooperieren untereinander und mit dem Master über ein „publish-subscribe“-Mechanismus. Sie sind nicht fest miteinander gekoppelt, sondern können nach Bedarf hinzugefügt bzw. verändert werden. Die Kommunikation erfolgt über „messages“, „request“ und „services“.

Die verschiedenen Nodes können über mehrere Targets verteilt sein. Die Kommunikation erfolgt innerhalb der ROS-Umgebung über Sockets. Eine Registrierung der beteiligten Komponenten ist notwendig.

5 / 6

Ähnliche Beiträge