EtherCAT MainDevice Software EC-Master for ROS (Robot Operating System)
Einführung
Das Robot Operating System (ROS) ist ein Open-Source-Framework und eine Sammlung von Softwarebibliotheken und Tools, die speziell zur Vereinfachung der Entwicklung von Roboteranwendungen entwickelt wurden. Trotz seines Namens ist ROS kein echtes Betriebssystem wie Windows oder Linux, sondern wird oft als Meta-Betriebssystem oder Middleware-Schicht bezeichnet. Es läuft in der Regel auf einem Host-Betriebssystem (meistens Linux; macOS und Windows werden ebenfalls unterstützt).
ROS basiert auf einer modularen Architektur mit sogenannten Knoten, die einzelne ausführbare Programme oder Komponenten (z. B. Sensor- oder Motorsteuerungen, Algorithmen) darstellen. Die Knoten kommunizieren miteinander über ein standardisiertes Publish-Subscribe-Nachrichtensystem (sogenannte Topics), das eine einfache Verteilung der Verarbeitung (auch über mehrere Computer hinweg) ermöglicht.
ROS dient als standardisierte Plattform und Software Development Kit (SDK) für die Entwicklung und Steuerung komplexer Robotersysteme.
ROS wird intensiv für die Entwicklung und Steuerung von humanoiden Robotern verwendet. Eingesetzt wird es unter anderem für die Bewegungsplanung und Gangsteuerung (Locomotion), die Sensorik und Wahrnehmung und auch für die Mensch-Roboter-Interaktion (HRI).
Ansteuerung von EtherCAT SubDevices in ROS
Die Hardware-Ansteuerung in ROS erfolgt über eine mehrschichtige, standardisierte Architektur, die die Komplexität der direkten Hardwarekommunikation vor den übergeordneten Steuerungsalgorithmen verbirgt und somit diese Steuerungsalgorithmen auch universell einsetzbar macht.
Um EtherCAT SubDevices einzubinden, benötigt man eine EtherCAT MainDevice Software (EtherCAT Protokoll Stack). Diese Software verwaltet und steuert alle SubDevices und stellt die Prozessdaten (Eingangs- und Ausgangsvariablen) der Anwendungsschicht über zwei Speicherbereiche zur Verfügung. Daneben stellt die MainDevice Software zahlreiche weitere Funktionen zur Verfügung, insbesondere für die Übertragung von Parametern (CAN application protocol over EtherCAT) und Firmware (File access over EtherCAT). Weitere notwendige Funktionen der Software sind: Erkennung und Lokalisierung von Fehlern auf allen Ebenen (Physical Layer und Application Layer) mit den detaillierten Meldungen an die Applikationsschicht.
EC-Master von acontis unterstützt auch anspruchsvolle Funktionen wie, z. B., das dynamische Anstecken und Abstecken von SubDevices, und dies ohne das Netzwerk oder die Applikation anzuhalten oder neu starten zu müssen. Diese Hot Connect Vorgänge können auch mit SubDevices erfolgen, welche mit der Distributed Clocks Technologie hochsynchron arbeiten. Weitere Informationen zu Hot Connect finden Sie in diesem Blogartikel.
Auch Applikationen, welche Funktionale Sicherheit erfordern, können mit EC-Master realisiert werden. Hierbei kann die Safety Logik entweder zentral im MainDevice, oder dezentral in einen SubDevice implementiert sein. Zur Kommunikation zwischen den Safety-Teilnehmern wird das Protokoll FSoE (FailSafe over EtherCAT) eingesetzt. Weitere Informationen zu FSoE gibt es in diesem Blogartikel.

Variante A: EtherCAT MainDevice als ROS 2 Node – “EcMasterRos2Node”
Der EcMasterRos2Node von acontis implementiert den EtherCAT MainDevice Protokoll Stack EC-Master als eigenständigen ROS Node. Die Parametrierung des EtherCAT Netzwerkes erfolgt über die standardisierte EtherCAT Network Information (ENI) Datei und unterstützt alle am Markt verfügbaren EtherCAT SubDevices einschließlich von sicheren FSoE Devices.
Nach der Initialisierung des EtherCAT Netzwerkes werden für alle Ein- und Ausgangsdaten die entsprechenden ROS Topics automatisch generiert. Dies erlaubt den komfortablen Zugriff auf alle zyklischen EtherCAT Prozessdaten durch andere ROS Nodes.
Daneben stellt EcMasterRos2Node, u.a., ein ROS Service zur Überprüfung der Zustände der SubDevices und des gesamten Netzwerkes zur Verfügung. Bereits jetzt sind wichtige EC-Master APIs als ROS Actions verfügbar. Beispielsweise können beliebige Parameter über das „CAN application protocol over EtherCAT“ Protokoll in die SubDevices übertragen werden.
EcMasterRos2Node ist aktuell noch in Entwicklung und voraussichtlich in Q1/2026 verfügbar.

Variante B: EtherCAT MainDevice als Hardware Interface for ros2_control
Das ros2_control Steuerungsframework stellt das Bindeglied zwischen der ROS-Logik und den Hardware-Schnittstellen dar. Ros2_control bietet Treiber und Schnittstellen, um die Steuerung verschiedener Sensoren (wie Kameras und Lidar) und Aktoren (wie Motoren und Roboterarme) zu standardisieren. Die Verwaltung der Hardware erfolgt durch den Ressource Manager durch spezifische Hardware-Interface-Klassen. Diese Hardware-Abstraktionsschicht ist entscheidend für die Datenübertragung, den Hardware-Lebenszyklus und die Fehlerbehandlung in jeder Anwendung.
Die Konfiguration der Hardware Interfaces erfolgt über die URDF (Unified Robot Definition Format) Datei. Mit dem <ros2_control>-Tag werden die Hardware-Interface-Plugin sowie deren Schnittstellen beschrieben.
EC-Master wird als Hardware Komponente vom Typ System angebunden und stellt alle in der ENI (EtherCAT Network Information) Datei definierten Eingangs- und Ausgangsvariablen zur Verfügung. Die Eingangsvariablen der SubDevices werden über <state_interface> und die Ausgangsvariablen über das <command_interface> bereitgestellt.
Die EC-Master Hardware Interface Description für die URDF Datei kann komfortabel über das Tool EC-Engineer zusammen mit der ENI Datei generiert werden. Dies ist sehr effizient und sorgt für Konsistenz.
EcMasterRos2HwInterface ist aktuell noch in Entwicklung und voraussichtlich in Q1/2026 verfügbar.
