
Universal Robots URCap to oficjalny model rozszerzeń dla wszystkich cobotów Universal Robots — UR3, UR5, UR10, UR16 (CB-Series od 2008, e-Series od 2018) oraz UR20/UR30 (2023, Series e). URCap to plik `.urcap` (faktycznie JAR + bundled HTML/JS), instalowany na teach pendancie PolyScope (Linux na ARM); rozszerza UI o nowe Program Nodes (kafelki w drzewku programu, np. 'Pick & Place from Conveyor'), Installation Nodes (konfiguracja sprzętu), Toolbars i Daemons (background services).
Stack technologiczny: **PolyScope 5.x** (CB/e-Series) bazuje na OpenJDK 8 + Eclipse RCP — URCaps piszemy w Javie 8 (Swing dla UI). **PolyScope X** (2024+, nowa generacja na UR20/UR30) jest oparta na Linux + Webtech — URCaps są HTML/CSS/TypeScript Single Page Apps. Oba modele można targetować z jednego URCap dzięki `cross-platform` SDK. Niezależnie od UI, URCap wstrzykuje **URScript** (proceduralny język robota, składnia podobna do Pythona) do generowanego programu PolyScope.
Wire protocols do komunikacji z zewnętrznymi systemami:
**RTDE (Real-Time Data Exchange)** — TCP port 30004, 125 Hz update rate (każde 8 ms), pozwala odbierać telemetrię (joint positions, TCP pose, forces) i wysyłać setpointy. **Dashboard Server** (port 29999) — komendy load, play, stop, status — używany do orchestration. **Primary Interface** (30001) i **Secondary Interface** (30002) — legacy URScript streaming. **XML-RPC** (port 30003, e-Series tylko) — alternatywa do RTDE.
ROS support: oficjalny `Universal_Robots_ROS2_Driver` (od 2022, wspierany przez UR + PickNik Robotics) używa RTDE pod spodem i eksponuje `joint_trajectory_controller` plus `cartesian_compliance_controller`. Wcześniejszy `ur_modern_driver` dla ROS 1 — community-maintained.
SDK (Software Development Kit) to zestaw bibliotek, interfejsów, narzędzi i dokumentacji przeznaczonych do tworzenia aplikacji oraz integracji z konkretnym sprzętem, platformą lub usługą. W robotyce SDK często udostępnia dostęp do sterowania urządzeniem, telemetrii, sensorów, konfiguracji i funkcji wykonawczych.
API Library to biblioteka udostępniająca interfejsy programistyczne do komunikacji z urządzeniem, usługą lub systemem. W praktyce może stanowić lekką warstwę integracyjną opartą na oficjalnym API producenta lub projekcie open-source.
Developer Tool to oprogramowanie przeznaczone do wspierania pracy deweloperskiej, w tym konfiguracji, debugowania, testowania, monitorowania, walidacji lub integracji systemów robotycznych i embedded.
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.
API Access oznacza rolę oprogramowania udostępniającego interfejs programistyczny do komunikacji z robotem, sensorem, usługą lub platformą, umożliwiający tworzenie integracji i aplikacji klienckich.
Motion Planning oznacza rolę oprogramowania odpowiedzialnego za planowanie trajektorii, ruchu, kolejności działań oraz wyznaczanie bezpiecznych i wykonalnych ścieżek dla robota lub manipulatora.
Developer Enablement oznacza rolę oprogramowania wspierającego deweloperów w integracji, debugowaniu, walidacji, konfiguracji, testowaniu i uruchamianiu systemów robotycznych oraz ich komponentów.
Visualization oznacza rolę oprogramowania służącego do wizualnego przedstawiania danych z robota, sensorów, trajektorii, map, scen, telemetrii i innych informacji diagnostycznych lub operacyjnych.
Rodzina oficjalnych SDK i API dostarczanych przez producentów robotów: Boston Dynamics (Spot SDK), ABB (RobotStudio), KUKA (RSI / KUKA Sunrise), Universal Robots (URCap / RTDE), Agility Robotics (Digit SDK), Apptronik (Apollo SDK).
Ponad 75 000 cobotów UR sprzedanych do 2024 r.; UR Marketplace ma ~300 publicznych URCaps i ~150 partnerów certyfikowanych. Wdrożenia: BMW (montaż drzwi z UR10), Volkswagen (klejenie reflektorów UR5), Mercedes-Benz (UR5e z Robotiq gripper w testach jakości), Continental (pakowanie z UR10e), Nissan (montaż transmisji z UR10), Foxconn (test electronics z UR3), Ford (pre-assembly UR10). Kolaboracyjne aplikacje w branży e-commerce (Amazon, DHL) i medical device assembly (Boston Scientific).
UR+ ecosystem (ur-plus.com) z ~300 URCapami i ~750 certyfikowanymi komponentami HW (gripper, czujniki). github.com/UniversalRobots/Universal_Robots_ROS2_Driver ~890★. Forum forum.universal-robots.com ~30 k zarejestrowanych deweloperów. UR Academy z bezpłatnymi kursami online (~200 k absolwentów).
Python to wysokopoziomowy język programowania szeroko stosowany w robotyce, AI, computer vision, automatyzacji, testach i szybkiej integracji komponentów sprzętowych oraz software'owych.
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.
JavaScript to język programowania powszechnie wykorzystywany w aplikacjach webowych, panelach administracyjnych, dashboardach, narzędziach frontendowych i lekkich warstwach integracyjnych.
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 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.
Debian to jedna z najbardziej stabilnych i powszechnie stosowanych dystrybucji Linux, wykorzystywana jako baza dla wielu systemów embedded, robotycznych i serwerowych.
Windows to rodzina systemów operacyjnych Microsoft wykorzystywana w środowiskach desktopowych, developerskich i integracyjnych. W robotyce występuje głównie jako środowisko narzędziowe, konfiguracyjne lub developerskie.
macOS to system operacyjny Apple wykorzystywany głównie na stacjach roboczych i laptopach deweloperskich do budowy, testowania i integracji oprogramowania.
OpenJDK 8 dla URCaps PolyScope 5.x. Node.js + TypeScript dla PolyScope X URCaps. URSim (oficjalna VM symulatora) jest darmowa. URCap SDK darmowy, ale podpis cyfrowy URCap przez UR Marketplace wymaga rejestracji partnera (~bezpłatne).
Dystrybucja prekompilowanych binarnych plików wykonywalnych lub bibliotek przez bezpośrednie pobieranie (wget, curl, instalator .sh, .exe, .pkg) ze strony producenta, bez pośrednictwa menedżera pakietów. Stosowane dla: komercyjnych SDK robotów bez publicznego menedżera pakietów, własnościowych komponentów oprogramowania przemysłowego, narzędzi standalone nie wymagających zarządzania zależnościami. Przykłady w robotyce: pobieranie instalatora ze strony producenta robota, skrypt bootstrap.sh SDK, archiwum .tar.gz z bibliotekami. Wady: brak automatycznych aktualizacji, brak zarządzania zależnościami, konieczność ręcznej weryfikacji integralności (checksum SHA256), ryzyko rozbieżności wersji między różnymi komponentami, trudność w zarządzaniu na flocie wielu robotów. Zalety: prostota dla dostawcy (nie wymaga integracji z menedżerem pakietów), pełna kontrola nad tym co i kiedy jest aktualizowane. Stosowane gdy producent sprzętu udostępnia SDK wyłącznie w tej formie (firmware tools, calibration software, proprietary middleware).
Mechanizm dystrybucji oprogramowania przez GitHub Releases – binarne artefakty (skompilowane pliki wykonywalne, biblioteki, archiwia .tar.gz, .zip, pakiety .deb, .rpm, obrazy Docker) dołączane do tagowanych wydań GitHub. GitHub Actions Artifacts: tymczasowe artefakty budowania przechowywane przez ograniczony czas (90 dni domyślnie). Stosowane w robotyce dla: SDK robotów bez własnej infrastruktury dystrybucji (pobranie .deb lub tarball z GitHub Releases), gotowych binarnych buildów dla konkretnych platform (ROS 2 pre-built dla Raspberry Pi aarch64 przez GitHub Actions), narzędzi CLI i aplikacji standalone. GitHub Container Registry (ghcr.io): hosting obrazów Docker w ramach GitHub – alternatywa dla Docker Hub zintegrowana z GitHub Actions. Automatyzacja: GitHub Actions workflow budujący i publikujący release przy każdym tagu (np. 'on: push: tags: v*'). Ograniczenia: brak zarządzania zależnościami (użytkownik musi samodzielnie zainstalować dependencies), brak automatycznych aktualizacji, wymaga ręcznego pobierania nowych wersji (chyba że używany instalator lub package manager pobiera z GitHub Releases API).
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.
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).
Architektura komunikacji usługowej oparta na protokole HTTP z semantyką zasobów (GET, POST, PUT, DELETE, PATCH). Stosowana w cloud robotics i fleet management. Nie nadaje się do sterowania real-time.
Protokół komunikacji czasu rzeczywistego opracowany przez Universal Robots (UR) do wymiany danych z robotami serii e-Series i CB-Series. Działa przez TCP na porcie 30004, obsługuje cykl 500 Hz.
Jeden z najstarszych i najszerzej stosowanych protokołów przemysłowych (Modicon, 1979). Modbus RTU działa przez RS-485/RS-232, Modbus TCP przez Ethernet. Stosowany w robotyce do komunikacji z starszą infrastrukturą przemysłową.
Standard komunikacji przemysłowej oparty na Ethernet, opracowany przez Siemens i zarządzany przez organizację PROFIBUS International. Dominuje w europejskich instalacjach automatyki. Obsługuje tryb RT (cykl 1–10 ms) i IRT (cykl < 1 ms).
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.
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.
Universal Serial Bus 2.0 – standard połączeń peryferyjnych o przepustowości do 480 Mbit/s (High-Speed). W robotyce używany do podłączania kamer RGB (webcams), prostych IMU, modułów GPS, konwerterów USB-UART i urządzeń HID (kontrolery, joysticki). Zasilanie przez magistralę: 5V / 500 mA (USB 2.0). Obsługiwany przez praktycznie wszystkie SBC i moduły obliczeniowe stosowane w robotyce. Sterowniki dostępne natywnie w Linux kernel (usbcore, usb-storage, cdc_acm).
Universal Serial Bus 3.0 (przemianowany na USB 3.1 Gen 1) – standard o przepustowości do 5 Gbit/s (SuperSpeed). Powszechnie stosowany w robotyce do kamer głębi (Intel RealSense D435i, D455), kamer stereo i skanerów 3D wymagających wysokiego pasma dla strumieni depth + RGB. Zasilanie: 5V / 900 mA. Złącza: Type-A, Type-B, Micro-B, Type-C. NVIDIA Jetson AGX Orin posiada 4 porty USB 3.1 Gen 1.
Klasa miękkiego czasu rzeczywistego 20–100 ms – deadline'y wymagane statystycznie, sporadyczne przekroczenia akceptowalne. Realizowany na standardowym Linux z priorytetem SCHED_FIFO. Komunikacja przez Ethernet GbE, DDS/RTPS, ROS 2 topics. Zastosowania: nawigacja AMR (Nav2: 20–50 Hz), high-level sterowanie humanoidów (Unitree SDK2: 50 Hz), planowanie trajektorii (MoveIt 2 servo), integracja sensorów (LiDAR SLAM: 10–20 Hz). Wystarczający dla większości algorytmów nawigacyjnych i SLAM.
Specjalna klasa deterministyczna – latencja i jitter ściśle zdefiniowane przez protokół komunikacyjny, niezależnie od wartości bezwzględnej. Kluczowa jest przewidywalność (predictability) i brak losowych skoków latencji. Protokoły: EtherCAT (jitter < 1 µs), PROFINET IRT (jitter < 1 µs), TSN IEEE 802.1Qbv (jitter < 100 ns), CAN bus (deterministyczny arbitraż). Stosowany gdy ważniejsza jest powtarzalność timingu niż minimalna latencja – np. synchronizacja wielu osi w manipulatorze.
Klasa miękkiego czasu rzeczywistego 100–500 ms – odpowiedź w granicach setek milisekund wymagana dla płynnej pracy, ale przekroczenia nie powodują awarii. Zastosowania: task planning (Nav2 planner: 100–300 ms), rozpoznawanie gestów i mowy dla HRI, przetwarzanie obrazów (YOLO na GPU: 20–100 ms), feedback wizualny. Większość oprogramowania komercyjnego dla AMR i robotów usługowych operuje w tej klasie.
On Robot oznacza typ wdrożenia, w którym oprogramowanie działa bezpośrednio na robocie lub na jego pokładowym module obliczeniowym, np. komputerze przemysłowym, SBC lub platformie edge AI.
Local Workstation oznacza typ wdrożenia, w którym software działa na komputerze lokalnym użytkownika, dewelopera lub operatora, np. laptopie, desktopie lub stacji roboczej.
Edge oznacza typ wdrożenia, w którym oprogramowanie działa na lokalnym urządzeniu obliczeniowym, bramce, komputerze przemysłowym lub innym zasobie blisko robota i sensorów, bez konieczności przetwarzania w chmurze.
Hybrid oznacza typ wdrożenia łączący lokalne lub pokładowe uruchamianie komponentów z dodatkowymi usługami działającymi na edge lub w chmurze.
Rodzina licencji: Własnościowa – komercyjna
Domyślny status prawny oprogramowania bez jawnie określonej licencji – wszystkie prawa zastrzeżone przez właściciela praw autorskich. Użycie, modyfikacja i dystrybucja są zabronione bez pisemnej zgody właściciela. Nie jest licencją w ścisłym sensie, lecz brakiem licencji – kod bez pliku LICENSE jest domyślnie All Rights Reserved.
Ważna informacja dla edytorów: oprogramowanie bez jawnego pliku licencji jest automatycznie All Rights Reserved i nie może być legalnie używane, modyfikowane ani dystrybuowane. Producenci robotów powinni zawsze jawnie określać licencję. Redaktorzy Robocikowo powinni flagować wpisy bez określonej licencji i kontaktować się z producentem w celu wyjaśnienia.
Pełne wsparcie kros-platformowych URCap (jeden codebase 5.x + X), AI Accelerator integration (NVIDIA Jetson on UR pendant).
Nowa generacja PolyScope (web-based UI), URCaps jako HTML/TS SPA, premiera UR20/UR30.
Oficjalny driver ROS 2 współtworzony z PickNik Robotics — ros2_control + RTDE.
Nowy kontroler e-Series, force/torque sensor wbudowany, URCap SDK z nowym Cartesian API.
Real-Time Data Exchange (port 30004) jako oficjalny wire protocol dla external control.
Wprowadzenie URCap — modelu wtyczek Java w PolyScope 3 na CB3.
Pierwsze wydanie wraz z robotem UR5. Brak URCap — tylko URScript przez TCP.