NITROS — NVIDIA Isaac Transport for ROS — to warstwa transportowa dla ROS 2 rozwijana przez firmę NVIDIA jako część ekosystemu Isaac ROS. Jej zadaniem jest przenoszenie danych między węzłami ROS 2 w sposób przyjazny dla akceleracji sprzętowej, z minimalizacją zbędnego kopiowania buforów.
NITROS implementuje dwie natywne funkcje ROS 2: type adaptation (REP 2007) oraz type negotiation (REP 2009). Type adaptation pozwala węzłom operować na własnych, sprzętowo-przyjaznych reprezentacjach danych (np. buforach w pamięci GPU) zamiast standardowych typów wiadomości ROS. Type negotiation pozwala sąsiadującym węzłom uzgodnić wspólny format danych, dzięki czemu połączone węzły akcelerowane GPU mogą wymieniać dane bez kopiowania (zero-copy), przekazując uchwyty do pamięci zamiast serializowanych kopii.
Ekosystem NITROS obejmował m.in. Managed NITROS (zarządzane publishery i subscribery), CUDA with NITROS (integracja z pamięcią CUDA), PyNITROS (wiązania dla Pythona) oraz NITROS Bridge (warstwę interoperacyjności). NITROS stanowił bazę transportową dla akcelerowanych pakietów Isaac ROS, takich jak Visual SLAM (cuVSLAM), inferencja DNN, detekcja AprilTag czy rekonstrukcja sceny.
W wydaniu Isaac ROS 5.0 (zgodnym z ROS 2 Lyrical, wrzesień 2026) NITROS został oznaczony jako przestarzały (deprecated). Zastępuje go natywny mechanizm ROS 2 oparty na polach rosidl::Buffer oraz backendzie bufora CUDA. Zgodność na poziomie węzłów jest utrzymywana, ale API NITROS (type adaptation/negotiation, Managed NITROS, CUDA with NITROS, PyNITROS, NITROS Bridge) zostanie usunięte w przyszłym wydaniu; aplikacje wywołujące je bezpośrednio wymagają migracji.
Transport Layer oznacza warstwę odpowiedzialną za transmisję danych pomiędzy elementami systemu robotycznego lub software'owego, np. między procesami, nodami, urządzeniami i usługami.
Middleware to warstwa oprogramowania pośrednicząca między aplikacjami, usługami, sensorami, sterownikami i warstwami wykonawczymi. W robotyce middleware odpowiada często za komunikację, wymianę wiadomości, abstrakcję sprzętu i integrację modułów w jednym systemie.
Developer Enablement oznacza rolę oprogramowania wspierającego deweloperów w integracji, debugowaniu, walidacji, konfiguracji, testowaniu i uruchamianiu systemów robotycznych oraz ich komponentów.
Perception oznacza rolę oprogramowania przetwarzającego dane z kamer, LiDAR-ów, IMU i innych sensorów w celu wykrywania obiektów, rozpoznawania sceny, lokalizacji, mapowania i interpretacji środowiska.
Rodzina oprogramowania robotycznego i AI rozwijana w ekosystemie NVIDIA Isaac.
Warstwa transportowa dla akcelerowanych pakietów NVIDIA Isaac ROS (m.in. cuVSLAM/Visual SLAM, inferencja DNN, AprilTag) na platformach Jetson.
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.
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.
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.
JetPack Linux oznacza środowisko systemowe i software'owe dla platform NVIDIA Jetson, wykorzystywane do uruchamiania aplikacji AI, computer vision i robotyki edge. W praktyce bazuje na Linuxie i pakietach NVIDIA dla Jetson.
Oficjalny menedżer pakietów systemu Debian i jego pochodnych (Ubuntu, Linux Mint, Raspberry Pi OS, NVIDIA JetPack OS). Pakiety w formacie .deb instalowane przez narzędzia apt, apt-get lub dpkg. Dominujący sposób dystrybucji oprogramowania robotycznego w ekosystemie ROS – wszystkie oficjalne pakiety ROS 1 i ROS 2 są dystrybucowane przez apt z repozytorium packages.ros.org. Instalacja pakietu ROS 2: 'sudo apt install ros-humble-<package-name>'. Zarządzanie zależnościami automatyczne przez rosdep (ROS dependency manager) korzystający z apt jako backend dla platform Ubuntu/Debian. Pakiety binarne prekompilowane dla konkretnej architektury (x86_64, aarch64, arm32) i wersji Ubuntu – brak konieczności kompilacji ze źródeł. Repozytoria PPA (Personal Package Archive) umożliwiają dystrybucję własnych pakietów deb przez Launchpad (Ubuntu) bez konieczności włączenia do oficjalnego rejestru. Stosowany na NVIDIA Jetson (JetPack oparty na Ubuntu), Raspberry Pi OS i większości platform Linux używanych w robotyce. Wymaga systemu operacyjnego z rodziny Debian.
Specjalizowany rejestr kontenerów NVIDIA NGC (NVIDIA GPU Cloud – ngc.nvidia.com) zawierający optymalizowane obrazy dla platform NVIDIA: Jetson (aarch64) i x86_64 z GPU. Dystrybuuje oficjalne kontenery Isaac ROS (GPU-accelerated Computer Vision dla ROS 2), Isaac Sim (symulator robotyczny oparty na Omniverse), Isaac Lab (framework trenowania RL), TensorRT, CUDA, cuDNN i inne biblioteki NVIDIA. Kontenery NGC są prebuildowane i zoptymalizowane dla konkretnych wersji JetPack (np. JetPack 6.x / CUDA 12.x na Jetson AGX Orin) – zapewniają pełne wsparcie GPU bez ręcznej konfiguracji sterowników. Wymagana bezpłatna rejestracja na ngc.nvidia.com i logowanie przez 'docker login nvcr.io'. Isaac ROS containers: 'nvcr.io/nvidia/isaac/ros:humble-isaac-ros-common-aarch64' dla Jetson. Szczególnie ważny dla: perception pipeline opartych na GPU (stereo depth, object detection, pose estimation), Isaac Manipulator, Isaac Perceptor i innych gotowych rozwiązań NVIDIA dla robotyki. Kontenery testowane i certyfikowane przez NVIDIA dla konkretnych platform sprzętowych.
Oficjalne narzędzie budowania (build tool) ekosystemu ROS 2 zastępujące catkin_make i catkin_tools z ROS 1. colcon (COLlective CONstruction) buduje workspace zawierający wiele pakietów ROS 2 w prawidłowej kolejności zależności. Instalacja przez pip: 'pip install colcon-common-extensions'. Komendy: 'colcon build' (budowanie workspace), 'colcon test' (uruchomienie testów), 'colcon build --packages-select <pkg>' (budowanie wybranego pakietu), 'colcon build --symlink-install' (szybszy development – symlinki zamiast kopiowania). Obsługuje pakiety CMake (ament_cmake), Python (ament_python) i inne systemy budowania. Integracja z CI/CD: GitHub Actions, GitLab CI używają colcon do budowania i testowania pakietów ROS 2. Nie jest menedżerem pakietów w sensie dystrybucji – jest narzędziem kompilacji lokalnego workspace. Kluczowe rozszerzenia: colcon-mixin (predefiniowane konfiguracje build), colcon-cd (nawigacja do pakietu), colcon-argcomplete (autocomplete). Wymagany do budowania pakietów ROS 2 ze źródeł gdy apt nie zawiera potrzebnej wersji.
Architektura obliczeniowa NVIDIA CUDA (Compute Unified Device Architecture) na platformie x86_64 – GPU NVIDIA jako koprocesor dla równoległych obliczeń. Nie jest samodzielną architekturą CPU, lecz dodatkowym wymaganiem sprzętowym dla oprogramowania korzystającego z akceleracji GPU. W robotyce kluczowa dla: trenowania modeli foundation i VLA (NVIDIA A100, H100, RTX 4090 na x86_64 serwerach/stacjach), inference modeli AI w symulatora (Isaac Sim wymaga CUDA GPU na x86_64), perception pipeline z akceleracją GPU (CUDA-accelerated stereo depth, optical flow, object detection), generowania syntetycznych datasetów (Omniverse Replicator). Wymagania: CUDA Toolkit (12.x dla najnowszych modeli), cuDNN, TensorRT dla optymalizowanego inference. NVIDIA Isaac ROS na x86_64 wymaga GPU NVIDIA z CUDA 12.x. Frameworki ML: PyTorch (CUDA backend), TensorFlow (CUDA/cuDNN), JAX (XLA + CUDA). Specyficzne wersje CUDA wymagane przez konkretne oprogramowanie – np. Isaac Sim 4.x wymaga CUDA 12.3+. Ograniczenia: wysokie wymagania energetyczne (GPU klasy datacenter: 300–700W), koszty sprzętu, brak mobilności. Środowisko deweloperskie i treningowe, nie deployment na robocie.
Specjalizowana platforma obliczeniowa NVIDIA Jetson oparta na architekturze AArch64 z zintegrowanym GPU NVIDIA (architektura Ampere w Orin, Maxwell/Pascal/Volta w starszych modułach) i akceleratorem DLA (Deep Learning Accelerator). JetPack SDK: kompletny stack software dla Jetson obejmujący L4T (Linux for Tegra – Ubuntu-based OS), CUDA, cuDNN, TensorRT, VPI (Vision Programming Interface), Multimedia API. Moduły Jetson Orin: AGX Orin (12-core Cortex-A78AE, Ampere GPU 2048 CUDA cores, 64 GB RAM, TDP 15–60W), Orin NX 16GB (8-core, 1024 CUDA cores, 16 GB RAM, TDP 10–25W – używany w Unitree G1), Orin Nano (6-core, 1024 CUDA cores, 8 GB RAM, TDP 7–15W). Isaac ROS: oficjalne GPU-accelerated pakiety ROS 2 dla Jetson, dystrybuowane przez NVIDIA NGC Container Registry. Wsparcie ROS 2: tier-1 dla aarch64 Ubuntu 22.04 (Humble) i Ubuntu 24.04 (Jazzy) na JetPack 5.x/6.x. Kluczowa platforma dla robotyki z wymaganiami AI: perception pipeline (stereo depth, object detection, pose estimation), SLAM, VLA inference na edge. Przykłady wdrożeń: Unitree G1 (Orin NX 16GB jako high-level compute), Boston Dynamics (wybrane produkty), drony autonomiczne (Skydio), roboty AMR wymagające edge AI.
Standard middleware OMG (Object Management Group) oparty o model publish-subscribe, zaprojektowany dla systemów rozproszonych czasu rzeczywistego. Definiuje warstwę komunikacyjną DCPS (Data-Centric Publish-Subscribe) oraz protokół przewodowy RTPS (Real-Time Publish-Subscribe). Stosowany jako domyślna warstwa komunikacyjna w ROS 2 – każda implementacja ROS 2 opiera się na jednej z implementacji DDS (CycloneDDS, Fast DDS, Connext DDS). Obsługuje discovery, QoS, reliability, durability i liveliness.
Mechanizm IPC oparty na współdzielonym obszarze pamięci między procesami na tym samym hoście. Stosowany w robotyce jako ultra-low-latency transport dla dużych danych. Latencje poniżej 1 µs.
Mechanizm asynchronicznej komunikacji publish-subscribe w ROS 2, zbudowany na warstwie DDS/RTPS. Węzły publikują wiadomości na nazwanych topicach (np. /joint_states, /cmd_vel, /camera/image_raw), a inne węzły subskrybują te topici bez wiedzy o nadawcy. Obsługuje QoS policies (reliability, durability, history, deadline, lifespan). Podstawowy mechanizm wymiany danych sensorycznych, stanu robota i komend sterowania w ekosystemie ROS 2.
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.
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.
Containerized oznacza typ wdrożenia, w którym oprogramowanie jest pakowane i uruchamiane w kontenerach, np. Docker lub innych technologiach konteneryzacji, co ułatwia przenoszenie, replikację i zarządzanie zależnościami.
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.
NITROS oznaczony jako przestarzały (deprecated) na rzecz rosidl::Buffer i backendu bufora CUDA (Isaac ROS 5.0 / ROS 2 Lyrical).
Wydanie z serii Isaac ROS 4.x.
Pierwsze publiczne wydanie (developer preview) NITROS w ekosystemie Isaac ROS.