
ethercat_grant to niewielka paczka ROS (fork pr2-grant) tworzona i utrzymywana przez Shadow Robot Company. Jej jedynym celem jest umożliwienie uruchamiania głównej pętli EtherCAT – `ros_ethercat_loop` – bez konieczności posiadania uprawnień administratora.
Działanie opiera się na mechanizmie setuid/sticky: po instalacji wykonywalny plik `/usr/local/bin/ethercat_grant` otrzymuje bit sticky (`chmod +s`). Dzięki temu proces wywołany przez zwykłego użytkownika tymczasowo uzyskuje uprawnienia root jedynie na czas otwierania interfejsu sieciowego dla EtherCAT.
Użycie jest minimalne: w pliku launch ROS dodaje się `launch-prefix="ethercat_grant"` do węzła `ros_ethercat_loop`. Pakiet jest dystrybuowany przez apt (ROS apt repo) dla dystrybucji melodic, noetic oraz humble.
Choć sama paczka nie implementuje żadnej logiki sterowania, stanowi niezbędny element bezpiecznego wdrożenia EtherCAT w środowiskach wieloużytkownikowych lub kontenerowych, gdzie działanie jako root jest niedopuszczalne.
CLI Tool to program uruchamiany z linii komend, wykorzystywany do administracji, integracji, konfiguracji, testów i diagnostyki urządzeń oraz oprogramowania robotycznego.
Driver to warstwa oprogramowania odpowiedzialna za komunikację z konkretnym urządzeniem lub komponentem sprzętowym. W robotyce sterowniki umożliwiają obsługę sensorów, kamer, manipulatorów, napędów i innych modułów na poziomie sprzętowym lub niskopoziomowym.
Robot Control oznacza rolę oprogramowania odpowiedzialnego za sterowanie ruchem, wykonywanie komend, koordynację działania elementów wykonawczych oraz bezpośrednią logikę operacyjną robota.
Device Integration oznacza rolę oprogramowania odpowiedzialnego za komunikację, konfigurację, inicjalizację i obsługę konkretnych urządzeń, sensorów, kontrolerów lub komponentów sprzętowych w systemie robotycznym.
Developer Enablement oznacza rolę oprogramowania wspierającego deweloperów w integracji, debugowaniu, walidacji, konfiguracji, testowaniu i uruchamianiu systemów robotycznych oraz ich komponentów.
Rodzina narzędzi zapewniających twardy czas rzeczywisty w systemie Linux oraz komunikację po magistrali EtherCAT – fundament sterowania przemysłowego i robotycznego.
Shadow Hand – zaawansowana robotyczna dłoń, systemy ROS-Industrial stosujące EtherCAT jako magistralę sterowania.
Mała, wyspecjalizowana społeczność. 6 gwiazdek GitHub, 10 forków – narzędzie niszowe, ale kluczowe dla ekosystemu EtherCAT/ROS.
C++ to język programowania szeroko wykorzystywany w robotyce, systemach embedded, middleware, sterowaniu i przetwarzaniu danych, szczególnie tam, gdzie istotna jest wydajność oraz bliska integracja ze sprzętem.
C to język programowania powszechnie wykorzystywany w firmware, sterownikach, mikrokontrolerach i systemach embedded, gdzie wymagana jest bezpośrednia kontrola nad zasobami sprzętowymi.
Ubuntu 20.04 LTS to długoterminowo wspierana wersja systemu Linux, szeroko wykorzystywana w robotyce, systemach embedded, AI i środowiskach developerskich. Jest popularna m.in. w środowiskach ROS oraz na platformach obliczeniowych takich jak NVIDIA Jetson.
Ubuntu 22.04 LTS to długoterminowo wspierana wersja systemu Linux wykorzystywana w robotyce, AI, systemach edge i środowiskach programistycznych. Stanowi popularną bazę dla nowszych stosów oprogramowania oraz dystrybucji ROS 2.
Ubuntu 24.04 LTS 'Noble Numbat' — wspierane do kwietnia 2029. Host dla ROS 2 Jazzy.
Debian to jedna z najbardziej stabilnych i powszechnie stosowanych dystrybucji Linux, wykorzystywana jako baza dla wielu systemów embedded, robotycznych i serwerowych.
Menedżer pakietów Debian/Ubuntu – apt-get install.
ROS dependency manager i release tool.
Dystrybucja wyłącznie przez kod źródłowy z systemem budowania CMake lub ament_cmake (ROS 2 extension CMake). Użytkownik pobiera kod źródłowy (git clone lub tarball) i kompiluje lokalnie przez: 'cmake -B build && cmake --build build' (CMake) lub 'colcon build' (ament_cmake w workspace ROS 2). Stosowana gdy: pakiet nie jest dostępny w żadnym rejestrze binarnym, wymagana jest custom konfiguracja kompilacji (specyficzne flagi kompilatora, opcje cmake), oprogramowanie targetuje niestandardową platformę sprzętową (exotic embedded SoC), deweloper chce modyfikować kod źródłowy. Typowy workflow w ROS 2: vcstool importuje źródła do workspace/src, colcon build kompiluje. Wymaga zainstalowania wszystkich build dependencies (compilery, biblioteki systemowe) – rosdep automatyzuje instalację dependencies. Najdłuższy czas instalacji (kompilacja może trwać dziesiątki minut na embedded hardware), ale maksymalna kontrola i konfigurowalność. Standard dla pakietów ROS 2 niedostępnych jeszcze w apt lub wymagających niestandardowej kompilacji.
64-bitowa architektura procesora wywodząca się z rodziny x86, opracowana przez AMD (jako AMD64) i zaadoptowana przez Intel (jako Intel 64 / EM64T). Dominująca architektura w komputerach osobistych, serwerach, stacjach roboczych i komputerach przemysłowych. W robotyce stosowana jako główna platforma obliczeniowa dla: stacji operatorskich i komputerów deweloperskich (Ubuntu 22.04/24.04 x86_64), serwerów fleet management i cloud robotics, symulatorów (Gazebo, Isaac Sim wymagają x86_64 z GPU NVIDIA dla pełnej wydajności), komputerów pokładowych robotów mobilnych wyższej klasy (Intel NUC, mini-PC przemysłowe jak Nuvo, OnLogic). Oficjalne wsparcie ROS 2 dla x86_64 jest tier-1 – wszystkie dystrybucje ROS 2 (Humble, Jazzy, Kilted) są w pełni wspierane i testowane. Pakiety apt dostępne przez packages.ros.org dla Ubuntu x86_64. Dominuje w środowiskach deweloperskich i symulacyjnych. Na robotach mobilnych i humanoidach x86_64 jest stosowane gdy wymagana jest wysoka moc obliczeniowa (np. Intel Core Ultra, AMD Ryzen Embedded) bez ograniczeń energetycznych typowych dla ARM. Przykłady hardware: Intel NUC 13 Pro, AMD Ryzen Embedded V2000, Advantech MIC-770.
64-bitowa architektura ARM (Advanced RISC Machine) w wersji ARMv8-A i nowszych – dominująca architektura w embedded computing, robotyce mobilnej i edge AI. Dwie nazwy oznaczają to samo: ARM64 (nazwa stosowana przez Apple i w kontekście macOS/iOS), AArch64 (oficjalna nazwa architektury ARM, używana w Linuksie i ekosystemie embedded). Absolutnie dominująca architektura w nowoczesnej robotyce mobilnej i humanoidalnej: NVIDIA Jetson (Orin NX, AGX Orin – Cortex-A78AE), Raspberry Pi 4/5 (Cortex-A72/A76), Qualcomm Robotics RB5/RB6 (Kryo), Apple M1/M2/M3 (dla stacji deweloperskich macOS), procesory w smartfonach używanych jako moduły robotyczne. Oficjalne wsparcie ROS 2 tier-1 dla aarch64 od dystrybucji Humble – pakiety apt dostępne przez packages.ros.org dla Ubuntu 22.04/24.04 aarch64. Unitree SDK2 dostępne dla aarch64 (target: Jetson Orin NX w G1). Boston Dynamics Spot: Qualcomm aarch64. Zalety wobec x86_64: znacznie niższy pobór energii (TDP 5–65W vs 45–125W), lepsza wydajność na wat, wbudowane NPU/GPU dla edge AI, mniejszy footprint fizyczny. Ograniczenia: historycznie mniejsza dostępność prebuildowanych pakietów (szybko zmniejsza się), niektóre biblioteki x86-only nie są portowane.
ARM 64-bit – NVIDIA Jetson, Raspberry Pi 4/5, Apple Silicon.
Deterministyczny protokół komunikacji przemysłowej oparty na Ethernet, opracowany przez Beckhoff Automation, zarządzany przez organizację ETG (EtherCAT Technology Group). Używa standardowych ramek Ethernet przetwarzanych w locie przez węzły slave (on-the-fly processing), co zapewnia cykle komunikacyjne poniżej 100 µs przy synchronizacji rozproszonych osi. Stosowany powszechnie w napędach stawowych robotów humanoidalnych (np. Boston Dynamics, Agility Robotics), manipulatorach przemysłowych i systemach motion control wymagających hard real-time.
Standardowy protokół sieciowy IEEE 802.3 z TCP/IP jako warstwą transportową. Stosowany jako główny interfejs komunikacji między komputerem nadrzędnym (host PC) a robotem w SDK takich jak Unitree SDK2, Boston Dynamics API, Universal Robots URScript. Nie zapewnia deterministyczności (best-effort delivery).
Standard IEEE 802.3ab – Ethernet 1 Gbit/s przez skrętkę Cat5e/Cat6, złącze RJ-45. Dominujący interfejs sieciowy w robotyce: komunikacja SDK-robot (Unitree SDK2, Boston Dynamics API, UR e-Series), przesyłanie obrazów z kamer IP, integracja z ROS 2 przez DDS/RTPS.
Standard IEEE 802.3u – Ethernet 100 Mbit/s przez skrętkę (Cat5 i wyżej), złącze RJ-45. W robotyce stosowany jako legacy interfejs w starszych robotach przemysłowych (KUKA KR C2, Fanuc R-J3), PLC i urządzeniach embedded niskiej klasy.
Interfejs EtherCAT po stronie urządzenia slave – każdy slave zawiera dedykowany ASIC ESC (EtherCAT Slave Controller), np. ET1100 (Beckhoff), LAN9252 (Microchip). ESC przetwarza ramki Ethernet w locie (on-the-fly) bez buforowania – minimalna latencja ~300 ns na węzeł.
Deterministyczna klasa latencji 1–5 ms z twardą gwarancją dotrzymania deadline'ów. Realizowane na RTOS lub Linux RT-PREEMPT z izolacją CPU. Typowe cykle: 1 ms (1 kHz) dla pętli prędkości silników, 2 ms (500 Hz) dla pętli pozycji stawów, 5 ms (200 Hz) dla pętli sił i momentów. Komunikacja przez EtherCAT, CAN FD. Zastosowania: pętle regulacji prędkości w manipulatorach przemysłowych, sterowanie stawami robotów humanoidalnych w trybie low-level.
Najwyższa klasa latencji – deterministyczne czasy odpowiedzi poniżej 1 ms z gwarancją dotrzymania deadline'ów bez żadnych wyjątków. Przekroczenie terminu jest traktowane jako błąd krytyczny systemu (system failure). Realizowane wyłącznie na dedykowanych systemach operacyjnych czasu rzeczywistego (RTOS): VxWorks, QNX Neutrino, LynxOS, RTEMS, Zephyr RTOS lub jądrze Linux z łatką RT-PREEMPT. Typowe zastosowania: kontrola prądów silników BLDC/PMSM (10–100 kHz), synchronizacja enkoderów absolutnych, safety-critical E-Stop. Odpowiednik TRL 9 w deterministyczności.
Rodzina licencji: Licencja permisywna
Licencja BSD z trzema klauzulami – rozszerza BSD 2-Clause o trzeci warunek zakazujący używania nazwy organizacji ani nazwisk kontrybutorów do promocji produktów pochodnych bez pisemnej zgody (non-endorsement clause). Zwana też 'New BSD License' lub 'Modified BSD License'.
Oficjalna licencja Unitree SDK2 i Unitree Python SDK2. Powszechna w pakietach ROS 2 i bibliotekach robotycznych. Klauzula non-endorsement chroni reputację oryginalnych twórców przed nieuprawnioną asocjacją z produktami pochodnymi. Praktycznie identyczna z MIT pod względem swobody użytkowania.
Wsparcie dla ROS 2 Humble; aktualizacja CMakeLists.
Wsparcie dla ROS Noetic, poprawki postinst.