So vereinfachen Sie die Robotikforschung mit einem nativen ROS
HeimHeim > Blog > So vereinfachen Sie die Robotikforschung mit einem nativen ROS

So vereinfachen Sie die Robotikforschung mit einem nativen ROS

Sep 02, 2023

Von The Robot Report Staff | 28. August 2023

Das Robot Operating System (ROS) ist eine leistungsstarke Open-Source-Plattform für die Robotikforschung, aber bis vor Kurzem fehlte es an Hardware in Industriequalität, die eng in den ROS-Software-Stack integriert ist. Hersteller von Roboterausrüstung verwenden proprietäre Closed-Source-Software und Steuerungssysteme für ihre Manipulatoren, sodass Forscher einen steilen Hügel erklimmen müssen, um ROS an Industrierobotern einzusetzen.

Um diesen Bedarf zu decken und die Fähigkeiten der ROS-Entwicklergemeinschaft zu erweitern, hat Tormach ein ROS-basiertes Industrieroboter-Manipulator- und Steuerungssystem entwickelt, das „Black-Box“-Probleme vermeidet, die moderne Robotikanwendungen plagen. Darüber hinaus nutzt Tormachs Steuerungssystem PathPilot Python als Roboterprogrammiersprache, wodurch eine intuitive Programmierschnittstelle für Roboterbewegungen entsteht und das Potenzial des Python-Paket-Ökosystems freigesetzt wird.

Diese Open-Source-Robotikplattform auf ROS-Basis – die das Steuerungssystem, die Industrieroboter-Hardware und vollständigen Zugriff auf alle Systemparameter umfasst – schafft eine schnelle, zugängliche Lösung, die Industrierobotik mehr Forschern, Entwicklern und Studenten zugänglich macht.

Hersteller von Robotersteuerungen zögern aus folgenden Gründen, ROS-Entwicklern den Zugriff auf alle Systemparameter in ihren Closed-Source-Steuerungen zu gestatten:

Aus diesen Gründen sind Integrationen zwischen ROS und kommerziell erhältlicher Roboterhardware begrenzt. Zwar gibt es Treiber, um ROS mit anderen Industrierobotern zu verbinden, doch ihre Implementierungen mit geringer Bandbreite (10 – 100 Hz) leiten Wegpunkte einfach per Tropf an einen proprietären Closed-Source-Controller weiter.

Infolgedessen hat der Benutzer möglicherweise keinen Zugriff darauf, ob der Roboter die Vorgaben für Timing, Geschwindigkeit und Bahngenauigkeit einhält oder nicht. Daten wie Motordrehmoment, Strom und Schleppfehler sind normalerweise nicht verfügbar, und der langsame Regelkreis schränkt die Möglichkeiten der Forscher erheblich ein.

Die am VULCAN-Instrument installierte OpeN-AM-Experimentierplattform verfügt über einen Tormach ZA6-Roboterarm, der Schichten geschmolzenen Metalls druckt, um komplexe Formen zu erzeugen. Durch die mikroskopische Untersuchung der 3D-gedruckten Schweißnähte mit Neutronenstrahlen können Forscher Faktoren wie Spannungen, die durch Erhitzen und Abkühlen verursacht werden, besser verstehen. (Quelle: ORNL/Jill Hemman)

Der ROS/HAL-Hardware- und Software-Stack bietet Feedback, das wertvolle Steuerungsmöglichkeiten bieten kann.

Der ZA6 bietet Folgendes:

Die meisten dieser Feedback-Elemente konzentrieren sich nur auf die untergeordneten Kontrollebenen. Je nach Forschungsbedarf können übergeordnete Kontrollebenen weitere Möglichkeiten bieten.

Die Verbindung zwischen ROS und der Hardware eines Roboters basiert auf einer Hardware-Abstraktionsschicht (HAL). HAL ist aus dem Open-Source-Projekt Enhanced Machine Controller (EMC) hervorgegangen, das vor 25 Jahren am National Institute of Standards and Testing (NIST) seinen Ursprung hatte.

Die aktive Entwicklung von HAL wird heute über die LinuxCNC- und Machinekit-Projekte fortgesetzt, da HAL flexibel und zu 100 % Open Source ist und auf Tausenden von Maschinen auf der ganzen Welt verwendet wird.

HAL besteht aus modularen Komponenten (ladbaren Binärmodulen), die miteinander kommunizieren, indem sie benannte Pins aktualisieren, lesen und schreiben, die über benannte Signale verbunden sind. In mancher Hinsicht ähnelt HAL ROS, es gibt jedoch wichtige Unterschiede:

Der Tormach-Roboter schließt die Lücke zwischen ROS mit der Open-Source-Komponente hal_ros_control. Die Kombination von HAL und ROS ermöglicht es, dem Benutzer eine Fülle von Roboterdaten zugänglich zu machen. Auf alle Prozessdaten kann über Shell-Befehle, Datenlogger-Dienstprogramme und einen grafischen Bereich zugegriffen werden. Alle Informationen über den EtherCAT-Bus, einschließlich Drehmoment, Strom, Schleppfehler, Position, Geschwindigkeit und mehr, sind bei 1 kHz verfügbar und werden über HAL an ROS weitergegeben.

Da HAL modular und flexibel ist, können Benutzer die HAL-Konfiguration ihres Roboters mithilfe vorgefertigter HAL-Komponenten ändern oder neue Komponenten in C oder Python schreiben, was eine einfache Integration mit nahezu jedem externen Gerät oder Prozess ermöglicht.

Bisher musste für die Verwendung eines kommerziell erhältlichen Roboters mit ROS der entsprechende Treiber für die Steuerung gefunden und heruntergeladen werden, eine URDF-Datei zur Beschreibung der Kinematik; Erstellen einer Moveit-Konfiguration, Auswählen eines oder mehrerer Planer, IK-Löser und möglicherweise das Finden und Einbringen von Volumenmodellen in Rviz. Die Konfiguration eines neuen Roboters für die Verwendung mit ROS ist selbst für erfahrene ROS-Entwickler eine Herausforderung.

Python, eine seit Jahrzehnten verwendete Programmiersprache, macht die Programmierung eines Tormachrobots für viele zugänglich. Die schiere Anzahl an Geräten und Software, die auf Python laufen, bedeutet, dass der ZA6 scheinbar unzählige Integrationsmöglichkeiten bietet.

Eine optimierte Standard-ROS-Konfiguration für den Manipulator, wie sie von Tormach als Teil der Steuerung bereitgestellt wird, trägt zur Linderung vieler dieser Probleme bei. Das URDF-Modell (Unified Robot Description Format) wird definiert, Bewegungspipelines konfiguriert und Trajektorienplaner und Kinematiklöser ausgewählt und optimiert, sodass der Roboter sofort einsatzbereit ist.

Die Roboterhardware, die Benutzeroberfläche und die Programmiersprache des Roboters werden vollständig dokumentiert und von Tormach unterstützt. Hier finden Sie die Dokumentation.

Die standardmäßige ROS-Konfiguration des Roboters ist für die meisten Anwendungen ideal und spart monatelange Konfigurationszeit. Außerdem ist sie offen, sodass Benutzer nach Belieben ihre eigenen, einzigartigen Konfigurationen entwickeln können.

Das Fehlen einer Industriestandard-Programmiersprache für Roboter veranlasste Tormach, Python für seinen ZA6-Roboter zu wählen. Die Tormach Robot Programming Language (TRPL) verwendet den Python 3-Interpreter und funktioniert ähnlich wie andere gängige Roboterprogrammiersprachen, mit Befehlen für verschiedene Bewegungsarten, Befehlen zum Lesen und Festlegen von Ein- und Ausgängen sowie Befehlen zum Festlegen und Ändern von Werkzeug- und Benutzerrahmen. Die Sprache ist hier dokumentiert.

Es ist wichtig zu beachten, dass jedes Python 3-Programm ein gültiges Roboterprogramm ist. Die Fähigkeit des Roboters, jedes Python-Programm zu interpretieren, bedeutet, dass nahezu jedes Python-Paket importiert werden kann, um bei anspruchsvolleren Roboteraufgaben zu helfen. Beispiele beinhalten:

Während der TRPL-Interpreter viele Programmieraufgaben wie Bewegungsbefehle und Offsets vereinfacht, können Power-User, die mit ROS vertraut sind, direkt auf die zugrunde liegende ROS-API zugreifen. Weitere Informationen finden Sie hier.

Leif Sorgule, Technikpädagoge in Peru, New York, veröffentlichte eine Reihe von pädagogisch ausgerichteten Projekten mit dem ZA6.

Die PathPilot-Benutzeroberfläche erleichtert das Schreiben einfacher Programme im Lehrmodus, um Schülern das Erlernen der Konzepte zu erleichtern, die sie benötigen, um in der Industrierobotik erfolgreich zu sein. Im Gegensatz zu anderen Robotern, die für den Unterricht entwickelt wurden, vermittelt der ZA6 Industrieroboterkonzepte wie Benutzerrahmen, Werkzeugrahmen, Wegpunktprogrammierung und Wegpunkttypen mit kartesischem versus Gelenkwinkel. Ein weiterer Grund, den Roboter als Lehrmittel zu verwenden, ist seine leicht zu erlernende Benutzeroberfläche.

Die PathPilot-Benutzeroberfläche erleichtert das Schreiben einfacher Programme im Lehrmodus, um Schülern das Erlernen der Konzepte zu erleichtern, die sie benötigen, um in der Industrierobotik erfolgreich zu sein. Im Gegensatz zu anderen Robotern, die für den Unterricht entwickelt wurden, vermittelt der ZA6 Industrieroboterkonzepte wie Benutzerrahmen, Werkzeugrahmen, Wegpunktprogrammierung und Wegpunkttypen mit kartesischem versus Gelenkwinkel. Ein weiterer Grund, den Roboter als Lehrmittel zu verwenden, ist seine leicht zu erlernende Benutzeroberfläche.

Dr. John Wen vom Rensselaer Polytechnic Institute entwickelt Robot Raconteur, ein lizenzfreies Projekt, das eine Lösung für verteilte Steuerung und Komponentenschnittstellen bieten soll. Das System ist genau für das Szenario eines Ingenieurs konzipiert, der eine Komponente aus einer Hochsprache unter verteilten oder nicht verteilten Bedingungen steuern möchte.

Erfahren Sie, wie Forscher am RPI den Tormach-Roboter in sein Robot Raconteur-Programm zur Kraft-Drehmoment-Steuerung integriert haben.