Humanoid Figure 02 jako przykład wdrożenia stosu ROS 2 w produkcyjnym robocie
← Artykuły

Technologia · 12 min czytania

ROS 2 w humanoidach: jak Figure, Agility i inni budują stack software'owy

ROS 2 to dziś de facto standard warstwy middleware w robotach humanoidalnych. Sprawdzamy, jak wygląda realny stack u Figure, Agility, 1X i Unitree — i gdzie kończy się ROS, a zaczyna własny kod.

Mateusz · 14 maja 2026

Humanoid Figure 02 jako przykład wdrożenia stosu ROS 2 w produkcyjnym robocie
Humanoid Figure 02 jako przykład wdrożenia stosu ROS 2 w produkcyjnym robocie

ROS 2 (Robot Operating System w wersji 2) jest w 2026 roku faktycznym standardem middleware w robotach humanoidalnych klasy komercyjnej — używa go Agility Robotics w Digicie, 1X w modelu Neo, Unitree w G1 i H1, a Figure oraz Tesla wykorzystują go w narzędziach deweloperskich i symulacji. ROS 2 dostarcza komunikację między węzłami (DDS), TF2 do transformacji układów współrzędnych, Nav2 do nawigacji i MoveIt 2 do planowania ruchu. Nie zastępuje jednak stosu sterowania niskopoziomowego ani modeli VLA — te powstają poza ROS-em i komunikują się z nim przez dedykowane bridge'e.

Dla inżyniera oznacza to konkretną architekturę: warstwa czasu rzeczywistego (EtherCAT, 1 kHz) po C++ obok jądra RT, warstwa percepcji i planowania w ROS 2 Humble lub Jazzy (~100–200 Hz), a nad tym model językowo-wizualny działający na GPU pokładowym z częstotliwością 5–10 Hz. Ten trójwarstwowy podział przewija się przez większość działających dziś humanoidów i to on decyduje o realnym wyborze narzędzi.

Czym właściwie jest ROS 2 i dlaczego wyparł ROS 1?

ROS 2 to zestaw bibliotek i konwencji do budowy oprogramowania robotów, oparty na warstwie komunikacyjnej DDS (Data Distribution Service). W przeciwieństwie do ROS 1, nie wymaga centralnego mastera, obsługuje QoS, działa na Windows, Linux i systemach wbudowanych oraz jest projektowany pod twarde wymagania czasu rzeczywistego.

Kluczowe różnice, które sprawiły, że przemysł przeszedł na ROS 2:

  1. Brak SPOF (single point of failure) — węzły odkrywają się przez DDS, master nie istnieje.
  2. QoS na poziomie topicu — możesz wymagać niezawodnej dostawy lub odrzucać stare próbki.
  3. Wsparcie dla Micro-ROS na mikrokontrolerach STM32 i NXP.
  4. Bezpieczeństwo (SROS 2) z szyfrowaniem i uwierzytelnianiem węzłów.
  5. Stabilne LTS-y: Humble Hawksbill (2022–2027) i Jazzy Jalisco (2024–2029).

W praktyce firmy budujące humanoidy startują dziś na Humble albo Jazzy — ROS 1 Noetic wygasa w maju 2025 i nikt nowego robota już na nim nie projektuje.

Jakie komponenty ROS 2 są używane w humanoidach najczęściej?

Nie każdy pakiet ROS 2 znajduje zastosowanie w robocie dwunożnym. Poniżej realny przekrój tego, co widać w publicznych repozytoriach i wystąpieniach z ROSCon 2025.

  • rclcpp / rclpy — biblioteki klienckie w C++ i Pythonie, podstawa każdego węzła.
  • tf2 — drzewo transformacji między kilkudziesięcioma układami (base_link, każdy przegub, kamera, IMU).
  • MoveIt 2 — planowanie ruchu ramion i chwytaków, zwykle z solverem TRAC-IK lub BioIK.
  • Nav2 — nawigacja mobilnej podstawy w trybie kołowym lub jako warstwa nad footstep plannerem.
  • ros2_control — abstrakcja sterowników sprzętowych, hardware interface do EtherCAT.
  • image_pipeline + depthai-ros — akwizycja z kamer RGB-D i stereo, kalibracja.
  • rosbag2 — nagrywanie danych z pola do trenowania modeli VLA.

Jak wygląda realny stack u Agility Robotics w Digicie?

Agility jest dziś najbardziej otwartym producentem — ich Agility SDK jest publicznie dokumentowane, a integracja z ROS 2 działa przez dedykowany bridge. Digit V4 używa ROS 2 Humble do warstwy percepcji i zadań wysokiego poziomu, ale sterowanie chodem (bipedal locomotion) działa poza ROS-em, w dedykowanym kontrolerze MPC (Model Predictive Control) z częstotliwością 1 kHz.

Architektura, jaką Agility prezentowała na ROSCon 2024 i doprecyzowała w 2025, wygląda tak:

WarstwaCzęstotliwośćTechnologiaZadanie
Low-level control1000 HzC++ na RT-LinuxMPC, whole-body control
State estimation500 HzC++ / EKFFuzja IMU + enkoderów + LiDAR
Perception30–100 HzROS 2 HumbleDetekcja palet, ludzi, przeszkód
Task planning1–10 HzROS 2 + Behavior TreesZadania: podnieś, przenieś, odłóż
Cloud fleet mgmton-demandREST + gRPCArc — panel zarządzania flotą

Deweloperzy zewnętrzni piszą pod Digita głównie w warstwie zadań przy użyciu Behavior Trees (BT.CPP) i standardowych akcji ROS 2. Warstwa lokomocji jest zamknięta — i to jest wzorzec, który powtarza się u każdego producenta.

Dlaczego lokomocja nie mieści się w ROS 2?

Ponieważ ROS 2 nie gwarantuje twardego czasu rzeczywistego na poziomie 1 kHz przy pełnej fuzji sensorycznej. DDS wprowadza jitter rzędu setek mikrosekund, garbage collector w Pythonie jest wykluczony, a nawet w C++ scheduler Linuxa bez PREEMPT_RT potrafi zaburzyć pętlę sterowania. Dlatego kontrolery chodu piszą się w C++ na jądrze z łatką RT lub — coraz częściej — na dedykowanym mikrokontrolerze przez Micro-ROS, z ROS 2 tylko do wymiany celów i telemetrii.

Jak robi to Figure, 1X i Unitree?

Figure AI publicznie nie deklaruje ROS 2 jako głównego middleware — ich model Helix (VLA uruchamiany lokalnie na dwóch GPU pokładowych) jest zintegrowany z własnym stackiem inspirowanym architekturami z Autopilota Tesli. ROS 2 pojawia się w Figure głównie w narzędziach do zbierania danych i w symulacji (Isaac Sim + ros2_bridge).

1X w modelu Neo Gamma używa ROS 2 do warstwy percepcji i telemetrii, a lokomocja i manipulacja miękka są obsługiwane przez model neuronowy trenowany end-to-end. Publiczne demo z Investor Day 2025 pokazywało dashboard oparty o Foxglove Studio — to praktycznie standard debugowania dla ROS 2.

Unitree z kolei dostarcza w G1 i H1 pełne SDK w C++ i Pythonie z opcjonalnym mostem do ROS 2 Humble (unitree_ros2). Dla środowiska akademickiego to najprostsza droga: kupujesz G1 za 13,9 tys. USD i w kilka godzin masz działającą demo Nav2.

  • Agility — ROS 2 Humble + zamknięty MPC, publiczne SDK.
  • Figure — własny stack, ROS 2 głównie w narzędziach.
  • 1X — ROS 2 do percepcji, sieć neuronowa do sterowania.
  • Unitree — SDK natywne + oficjalny bridge do ROS 2.
  • Tesla — brak ROS w produkcji, ROS 2 wyłącznie w symulacji zewnętrznych partnerów.

Które dystrybucje ROS 2 wybrać w 2026?

Wybór dystrybucji nie jest neutralny — decyduje o długości wsparcia, dostępności pakietów i kompatybilności ze sterownikami sprzętowymi.

DystrybucjaData wydaniaKoniec wsparciaRekomendacja
Humble Hawksbill05/202205/2027Produkcja, stabilne środowisko
Iron Irwini05/202311/2024Nie używać, EOL
Jazzy Jalisco05/202405/2029Nowe projekty, wsparcie długie
Kilted Kaiju05/202512/2026Krótki cykl, tylko dev
Lyrical (planowana)05/202605/2031LTS, jeszcze nie stabilna

Dla nowego projektu humanoida w 2026 rozsądny wybór to Jazzy — pakiety dojrzały, MoveIt 2 i Nav2 są w pełni wspierane, a wsparcie do 2029 pokrywa cykl komercjalizacji.

Jak wygląda pipeline danych do trenowania modeli VLA?

Modele Vision-Language-Action potrzebują ogromnych ilości nagrań teleoperowanych i autonomicznych. Pipeline w firmach takich jak Agility czy 1X wygląda podobnie:

  1. Robot nagrywa dane przez rosbag2 do formatu MCAP.
  2. Bagi trafiają do S3, gdzie są indeksowane po zadaniu i lokalizacji.
  3. Foxglove Studio służy do przeglądu, adnotacji i wycinania fragmentów.
  4. Dane wychodzą do frameworków treningowych (PyTorch, JAX) przez konwerter do LeRobot lub Open X-Embodiment.
  5. Wytrenowany model wraca do robota jako węzeł ROS 2 publikujący cele dla warstwy sterowania.

Format MCAP wypiera stary rosbag właśnie dlatego, że jest agnostyczny wobec ROS-a — te same bagi można przetwarzać w pipeline'ach niezwiązanych z ROS 2.

Jakie są największe pułapki ROS 2 w humanoidach?

Nie ma sensu udawać, że ROS 2 jest gotowym rozwiązaniem plug-and-play. Realne problemy, o których mówią inżynierowie Agility, PAL Robotics i Boston Dynamics:

  • Domyślny DDS (Fast DDS) potrafi zapchać interfejs Wi-Fi przy wielu topicach z obrazami — trzeba stroić QoS i domain ID.
  • Debug drzewa TF przy 40+ przegubach wymaga narzędzi zewnętrznych, rviz nie skaluje się dobrze.
  • Micro-ROS na STM32 wymaga ręcznego zarządzania pamięcią i customowego agenta.
  • Kombinacja ros2_control + EtherCAT nie ma jednego oficjalnego sterownika — każdy producent robi swój.
  • Aktualizacje między dystrybucjami LTS nie są bezbolesne, mimo obietnicy ABI stability.

FAQ

Czy da się zbudować humanoida bez ROS 2?

Tak — Tesla i Figure w dużej mierze go omijają. Wymaga to jednak własnego middleware, własnych narzędzi wizualizacyjnych i własnego formatu danych. Dla zespołów mniejszych niż 200 inżynierów jest to nieopłacalne.

Czy ROS 2 działa w twardym czasie rzeczywistym?

Nie w pełni. Można uzyskać miękki RT z jitterem poniżej 1 ms przy PREEMPT_RT i executorze static single-threaded, ale twarde 1 kHz z gwarancją terminów wymaga wyjścia poza ROS 2.

Jakiego języka używać do węzłów?

C++ dla wszystkiego, co ma częstotliwość powyżej 50 Hz i wymaga stabilnego opóźnienia. Python do zadań wysokiego poziomu, prototypowania i integracji z modelami ML.

Czy MoveIt 2 nadaje się do manipulacji dwuramiennej?

Tak, od 2024 roku obsługuje bimanualne planowanie z solverem BioIK. Ograniczeniem jest brak natywnego wsparcia dla planowania whole-body z uwzględnieniem chodu.

Czy Foxglove zastąpi rviz?

W praktyce już to zrobił w większości nowych projektów. rviz2 pozostaje do lokalnego debugowania, Foxglove obsługuje pracę zdalną i nagrania.

Glosariusz

  • DDS — Data Distribution Service, standard komunikacji publish/subscribe leżący pod ROS 2.
  • MPC — Model Predictive Control, sterowanie predykcyjne oparte o model dynamiki robota.
  • VLA — Vision-Language-Action, model neuronowy mapujący obraz i polecenie językowe na akcje robota.
  • Micro-ROS — port ROS 2 na mikrokontrolery, komunikuje się z hostem przez agenta.
  • Behavior Tree — drzewo zachowań, struktura sterująca zadaniami wyższego poziomu.
  • MCAP — nowoczesny format nagrań, wypiera stary rosbag.
  • PREEMPT_RT — łatka jądra Linux dodająca preempcyjność potrzebną do soft real-time.

TL;DR

  • ROS 2 jest standardem middleware w humanoidach, ale nie w warstwie sterowania niskopoziomowego.
  • Agility, 1X i Unitree używają ROS 2 oficjalnie; Figure i Tesla — głównie w narzędziach.
  • Rekomendowana dystrybucja na 2026 to Jazzy Jalisco (wsparcie do 2029).
  • Realny stack ma trzy warstwy: 1 kHz C++/RT, 30–100 Hz ROS 2, 5–10 Hz model VLA.
  • MCAP + Foxglove wypierają stare narzędzia i tworzą pipeline danych do trenowania modeli.