Robots Atlas>ROBOTS ATLAS
ethercat_grant

Development · Developer Tools

ethercat_grant

0.3.0·Shadow Robot Company

Active Open source Real-time capable
CATEGORYDevelopment · Developer Tools
READINESSTRL 7
ADOPTION SCALEGrowing Community
LICENSESBSD-3-Clause
FIRST RELEASE2014

ethercat_grant is a small ROS package (fork of pr2-grant) created and maintained by Shadow Robot Company. Its sole purpose is to allow running the EtherCAT main loop – `ros_ethercat_loop` – without requiring root (administrator) privileges.

It works through a setuid/sticky mechanism: after installation, the `/usr/local/bin/ethercat_grant` executable receives the sticky bit (`chmod +s`). This allows a process invoked by a regular user to temporarily obtain root permissions only for the duration of opening the network interface for EtherCAT.

Usage is minimal: in a ROS launch file, add `launch-prefix="ethercat_grant"` to the `ros_ethercat_loop` node. The package is distributed via apt (ROS apt repo) for melodic, noetic, and humble distributions.

While the package itself implements no control logic, it is an essential component for safe EtherCAT deployment in multi-user or containerized environments where running as root is not acceptable.

Type & Roles
Software types
CLI Tool

A CLI Tool (Command-Line Interface Tool) is a program run from a terminal or shell, used for administration, integration, configuration, testing, and diagnostics of robotic devices and software systems. CLI tools are common in robotics workflows for flashing firmware, configuring network settings, running diagnostics, launching processes, and automating repetitive tasks in CI/CD pipelines.

Driver

A Driver is a software layer responsible for communication with a specific hardware device or component. In robotics, drivers enable support for sensors (LiDARs, cameras, IMUs), actuators, motor controllers, grippers, and other modules at the hardware or low-level OS layer. They abstract device-specific protocols (USB, CAN, UART, EtherCAT) and expose a standardised interface to the middleware or application layer above.

Select an item to see its description.
Main category
Developer ToolsDrivers & Firmware
Roles in robotics ecosystem
Robot ControlDevice IntegrationDeveloper Enablement
Software family
Family

Family of tools providing hard real-time capabilities in Linux and EtherCAT fieldbus communication – the foundation of industrial and robotic low-level control.

Maturity & Adoption
7 / 9
Prototype / pilot phase
ResearchPrototypeProduction
Adoption scaleGrowing Community
Maintenance statusPassively Maintained
First release2014
Last update1 June 2023
Deployments

Shadow Hand – advanced robotic hand, ROS-Industrial systems using EtherCAT as the control bus.

Community

Small, specialised community. 6 GitHub stars, 10 forks – niche tool but essential for the EtherCAT/ROS ecosystem.

Target robotic platforms
Robotic Arm
Industrial Robot
Mobile Robot
Research Robot
ROS supportCompatibility with ROS / ROS 2 ecosystem
Official ROS 2 PackagePakiet dostępny w oficjalnym rejestrze ROS 2 przez rosdep / apt (packages.ros.org)
Official ROS 1 PackagePakiet dostępny w oficjalnym rejestrze ROS 1 (packages.ros.org)
ROS 2 Launch IntegrationGotowe pliki launch ROS 2 jako forma integracji systemowej
System capabilities
Open source
Source code is publicly available under an open-source license — enables security audits, custom modifications, and integration without licensing barriers.
Real-time capable
Designed with timing-determinism guarantees — meets the requirements of control loops, safety systems, and tasks demanding low, predictable latency.
⟨/⟩
API available
The software exposes a programmable interface (REST, gRPC, SDK, or language bindings) that enables automation and integration with other systems.
×
📦
Pre-built / binary
Distributed as ready-to-use binary packages, container images, or installers — no need to build from source.
Programming languages
C++C
Operating systems
Ubuntu 20.04Ubuntu 22.04Debian
Ubuntu 24.04

Ubuntu 24.04 LTS 'Noble Numbat' — supported until April 2029. The host for ROS 2 Jazzy.

Select an item to see its description.
Minimum hardware requirements
Packaging & distribution
Package managers
apt / debrosdep / bloomSource – CMake / ament_cmake
CPU architectures
x86_64 (AMD64)ARM64 / AArch64aarch64 / ARM64
Installation difficulty
LevelModerate
Protocols and interfaces
Communication protocols
EtherCATEthernet / TCP-IP
Hardware interfaces
Ethernet 1000BASE-T (Gigabit Ethernet)Ethernet 100BASE-TX (Fast Ethernet)EtherCAT (Slave Interface)
Latency classes
Hard Real-Time (1–5 ms)Hard Real-Time (< 1 ms)
Licenses
BSD-3-ClauseBSD 3-Clause Licensev3-Clause

License family: Permissive

ModificationDistributionCommercial useSublicensingPrivate useROS-compatibleOSI approvedFSF Free/LibreRequires attribution
Version history
0.3.0Jun 2023

ROS 2 Humble support; CMakeLists update.

0.2.0Jan 2021

ROS Noetic support, postinst fixes.