EtherCAT MainDevice Protocol Stack EC-Master for ROS (Robot Operating System)
Introduction
The Robot Operating System (ROS) is an open-source framework and collection of software libraries and tools specifically designed to simplify the development of robotic applications. Despite its name, ROS is not a real operating system like Windows or Linux, but is often referred to as a meta-operating system or middleware layer. It usually runs on a host operating system (mostly Linux; macOS and Windows are also supported).
ROS is based on a modular architecture using so-called nodes, which represent individual executable programs or components (e.g. sensor or motor controls, algorithms). The nodes communicate with each other via a standardized publish-subscribe messaging system (so-called topics), which allows for easy distribution of processing - even across multiple computers.
ROS serves as a standardized platform and software development kit (SDK) for the development and control of complex robot systems.
ROS is used extensively for the development and control of humanoid robots. It is used, among other things, for motion planning and gait control (locomotion), sensor systems for perception of the environment and for the human-robot interaction (HRI).
Control of EtherCAT SubDevices in ROS
Hardware control in ROS is done via a multi-layered, standardized architecture that hides the complexity of direct hardware communication from the higher-level control algorithms and thus makes these control algorithms universally applicable.
To integrate EtherCAT SubDevices, you need an EtherCAT MainDevice software (EtherCAT protocol stack). This software manages and controls all SubDevices and makes the process data (input and output variables) available to the application layer via two memory areas. In addition, the MainDevice software provides numerous other functions, especially for the transmission of parameters (CAN application protocol over EtherCAT) and firmware (File access over EtherCAT). Other necessary functions of this software are: detection and localization of defects at all levels (physical layer and application layer) with detailed messages to the application layer.
The acontis EC-Master also supports sophisticated functions such as dynamic plugging and unplugging of SubDevices, without having to stop or restart the network or application. These Hot Connect operations are also possible for SubDevices that make use of the Distributed Clocks technology for work highly synchronous operation. More information on Hot Connect is available in this blog article.
Applications that require functional safety can also be implemented with EC-Master. The safety logic can be implemented either centrally in the MainDevice or decentral in a SubDevice. The FSoE (FailSafe over EtherCAT) protocol is used for communication between the safety participants. More information on FSoE can be found in this blog article.

Variant A: EtherCAT MainDevice as ROS 2 node – "EcMasterRos2Node"
The EcMasterRos2Node from acontis implements the EtherCAT MainDevice protocol Stack EC-Master as a standalone ROS node. The parameterization of the EtherCAT network is done via the standardized EtherCAT Network Information (ENI) file and supports all EtherCAT SubDevices available on the market, including secure FSoE devices.
After initializing the EtherCAT network, the corresponding ROS topics are automatically generated for all input and output data. This allows convenient access to all cyclic EtherCAT process data by other ROS nodes.
In addition, EcMasterRos2Node provides - among other things - a ROS service for checking the states of the SubDevices and the entire network. Relevant EC-Master APIs are already available as ROS Actions. For example, arbitrary parameters can be transferred to the SubDevices via the "CAN application protocol over EtherCAT" protocol.
EcMasterRos2Node is currently still under development and is expected to be available in Q1/2026.

Variant B: EtherCAT MainDevice as Hardware Interface for ros2_control
The ros2_control control framework represents the link between the ROS logic and the hardware interfaces. Ros2_control provides drivers and interfaces to standardize the control of various sensors (such as cameras and lidar) and actuators (such as motors and robotic arms). The management of the hardware is done by the Resource Manager through specific hardware interface classes. This hardware abstraction layer is critical for data transfer, hardware lifecycle, and error handling in any application.
The configuration of the hardware interfaces is done via the URDF (Unified Robot Definition Format) file. The <ros2_control> tag describes the hardware interface plug-in and its interfaces.
EC-Master is connected as a hardware component of type System and provides all input and output variables defined in the ENI (EtherCAT Network Information) file. The input variables of the SubDevices are provided via <state_interface> and the output variables via the <command_interface>.
The EC-Master Hardware Interface Description for the URDF file can be conveniently generated using the EC-Engineer tool together with the ENI file. This is very efficient and ensures consistency.
EcMasterRos2HwInterface is currently still under development and is expected to be available in Q1/2026.
