Fünf-Achsen-Roboterarm TCP/IP über Raspberry Pi

Software und Applikationen

Als Programmiersprache wurde C# gewählt. Die moderne Sprache ist stark objektorientiert, handlich und effizient in der Programmierung.

Als Kernkomponenten wurde die Rückwärts- (IK) sowie Vorwärtskinematik (FK) des Roboters, die Kommunikation mit den Motoren sowie ein Roboterbahnplaner programmiert. Das Ganze wird von einer einfachen Zustandsmaschine koordiniert. Ein GUI für die Robotersteuerung wurde nicht implementiert.

Der Roboterbahnplaner antizipiert die Bahn, in Rücksicht auf Beschleunigung, Verzögerung und der maximalen Geschwindigkeit im Kartesischen Raum. Jeder Zwischenschritt der Bahn, welche mit einer Periode von 1 ms berechnet ist, wird mit der IK zurückgerechnet und dem Mastermotor über Ethernet/IP gesendet. Dies ermöglicht eine sehr harmonische Bewegung des Endeffektors welche kontrolliert beschleunigen und verzögern kann.

Das C#-6.0-Programm läuft auch fehlerfrei unter Mac oder Linux mit Hilfe des Mono-Projektes. Darum kann die in Windows generierte .exe-Datei ganz ohne neue Kompilierung direkt auf dem Zielsystem, einem Raspberry Pi 2, ausgeführt werden. Dies ist umso einfacher da keinerlei Spezialbibliotheken notwendig sind. Die Kernaufgaben sind Berechnung und Versenden der TCP/IP-XML-Tickets. Dies spiegelt auch in der Energieaufnahme des Raspberrys, welcher nur 1,4 WattRMS (Genauigkeit 1%) Leistung für alle Kalkulationen die mit einem Kilohertz erfolgen, benötigt.

Zum Vergleich braucht der PI selbst in der Standardkonfiguration ohne GUI sowie ohne laufende Benutzerapplikation bereits 1,2 Watt an elektrischer Leistung, einzig mit eingestecktem Strom und LAN-Kabel. Die Applikation benötigt somit nur 200 mW und lastet die CPU nur zu etwa 30% aus. Der Pi würde somit unter laufender Applikation über 2 Stunden mit einer Standard 9-V-Blockbatterie auskommen. In Anbetracht der üblichen Ausmaße industrieller Roboterssteuerungen ist diese Erkenntnis sehr spannend.

Applikationen

Der Roboter wurde für den Proof-of-Concept nicht hinsichtlich einer spezifischen Applikation entwickelt. Dennoch wurden einige Applikationen programmiert. Eine der Imposantesten ist das Zeichnen mit Stift und Papier. Hier wird von Hand auf einem handelsüblichen Wacom-Tablet mit speziellem Stift gezeichnet. Der Roboter setzt die Stiftführung und -position simultan um und gibt diese (optional skaliert) auf einem Blatt Papier wieder. Dazu wurde ein Stift auf die letzte Achse geklemmt und die Kinematik der Stiftlänge angepasst.

Das Wacom-Tablet misst dabei nicht nur die (x,y,z)-Koordinaten des Stiftes sondern auch dessen Lage über zwei Winkel. Dadurch kann eine Linie mit einem virtuellen Pinsel gezogen werden, die je nach Lage ein anderes Muster erzeugt. Da der Roboter auch diese zwei Achsen besitzt, ist das Zeichnen umso genauer und eindrücklicher.

Das Zeichnen mit der Hand und die Umsetzung des Roboters erfolgen nahezu zeitgleich. Es gibt kein kompliziertes Roboter-Interface mit langsamen Zykluszeiten oder komplizierten Protokollen. Hier können die Sollwinkel jeder Achse direkt mit einer Kommunikationsgeschwindigkeit von einem Kilohertz manipuliert werden!