Programování humanoidů v praxi

Unitree G1: autonomní přenášení předmětu v asistované simulaci MuJoCo

MALONI Robotics představuje softwarové řešení pro Unitree G1, které v MuJoCo propojuje plánování trasy, neuronově řízenou chůzi a přenesení předmětu na stůl. Jde o asistovanou simulační demonstraci se znalostí polohy ze simulátoru, pomocným držením a stabilizací. Ukazujeme video, technické řešení a výsledky vymezené testovací sady.

MALONI posuzuje dodávku, programování a integraci podle konkrétního projektu. Pro vybraný model a zemi před objednávkou písemně potvrdíme rozsah dodávky, příslušná oprávnění a dostupné služby. Redakční zásady a zdroje →

Simulovaný Unitree G1 v MALONI Robotics Lab míří k červené sošce Buddhy na podlaze v MuJoCo
Asistovaná simulace v MALONI Robotics Lab: robot a červený předmět ve virtuální místnosti. Poloha cíle pochází ze simulátoru.

Od pohybu humanoida k celému úkolu

MALONI Robotics posunulo projekt Unitree G1 od ukázek pohybu ke koordinované sekvenci: přejít k červené sošce Buddhy, přenést ji na pravý stůl a ověřit stabilní položení. Řadič úkolu propojuje plánování trasy, chůzi řízenou neuronovou politikou, pohyby paží a kontrolu stavu předmětu.

Autonomní je zde průběh naprogramované sekvence v připravené virtuální scéně. Jde o asistovanou simulační demonstraci: souřadnice cíle poskytuje MuJoCo, držení zajišťuje pomocná fyzikální vazba a při manipulaci pomáhá stabilizace. Záznam nepředstavuje kamerové rozpoznávání, samostatný úchop prsty ani ověřenou práci fyzického robota.

Ukázka MALONI: Unitree G1 přechází k předmětu a přenáší jej na stůl v asistované simulaci MuJoCo. Video bylo zveřejněno 19. října 2026. Otevřít video na YouTube ↗

Výsledky performance reportu v kostce

Následující výsledky pocházejí z performance reportu MALONI sestaveného 19. října 2026. Historická sada deseti seedů a tři nová měření latencí jsou dvě odlišné skupiny běhů. Čísla nejsou nezávislou certifikací ani zárukou výkonu na jiných scénách.

MetrikaVýsledek a rozsah
Dokončení10 / 10 úkolů v uložené sadě seedů 0–9
Průměr / medián97,90 / 95,81 s simulovaného času
Rozsah dokončení77,22–128,34 s simulace
Empirický P95 dokončení125,26 s simulace; limit úkolu 180 s
Vodorovná chyba položeníPrůměr 9,83 mm; maximum 12,38 mm v asistované simulaci
P95 intervalu řídicího cyklu4,008 / 5,577 / 5,640 ms skutečného času pro seedy 0 / 3 / 4
Překročení 20 ms0 z 15 240 změřených intervalů ve třech headless bězích

Sto procent znamená pouze 10 dokončených úkolů v této uložené sadě. Sada zahrnuje jednu místnost, jeden předmět a jeden cílový stůl; nejde o reprezentativní vzorek provozních situací. Seed 9 obsahuje přibližně dvousekundovou pauzu při přenášení, zahrnutou v jeho čase. Dřívější neúspěšné vývojové pokusy do tohoto jmenovatele nepatří.

Jak probíhá vyhledání a přenesení předmětu

  • Po spuštění nebo resetu se soška umístí na volné dosažitelné místo na podlaze. Řadič získá její polohu přímo ze stavu simulace.
  • Plánovač připraví trasu podle známých statických kolizí. Původní ONNX politika převádí pohybové příkazy na cílové polohy kloubů pro chůzi.
  • Robot se natočí a paže se přiblíží k definovaným bodům pomocí inverzní kinematiky. Po splnění podmínky blízkosti se aktivuje pomocná vazba předmětu k levé ruce.
  • Řadič koordinuje zvednutí, přenášení a položení na určený pravý stůl. Při těchto fázích využívá popsané podpůrné síly a vazby.
  • Po vypnutí úchopové vazby musí objekt spočinout na stole nejméně jednu sekundu. Teprve potom následuje odstoupení, otočení ke kameře a oslava.

Technické řešení: MuJoCo, Python, C++ a ONNX

SoučástKonfigurace
RobotUnitree G1; model s 29 ovládanými klouby
SimulátorMuJoCo 3.15.0
JazykyPython 3.12 a C++17
ChůzePředtrénovaná neuronová politika ONNX; bez nového trénování v této demonstraci
InferenceONNX Runtime 1.22.0 na CPU
Řízení / fyzika50 Hz řízení (20 ms simulace); 500 Hz fyzika (krok 2 ms)
Klouby a pažePD regulace kloubů; inverzní kinematika pro polohu paží
ScénaVirtuální laboratoř s nábytkem, statickými kolizemi a texturami
PlánováníZnámá geometrie scény, mřížka 0,2 m, kontrola přímé průchodnosti a poloměr 0,39 m
RežimyRuční chůze, tanec a asistované přenesení předmětu; grafické okno nebo headless
OvládáníKlávesnice, sledovací kamera, pauza/pokračování a reset
ProstředíLinux x86_64, Python 3.12; měření reportu ve WSL2
ROS / DDSHlavní demonstrace běží bez ROS a DDS

Python zajišťuje simulační smyčku a řadič úkolu BuddhaTask. Pomocný program policy_runner v C++17 načítá ONNX model a komunikuje s Pythonem přes standardní vstup a výstup procesu. Kloubové momenty vycházejí z PD regulace; paže při manipulaci používají inverzní kinematiku.

Samotná demonstrační aplikace běží bez ROS a DDS. Nabídka MALONI zahrnuje také C++ a ROS 2, ale použití ROS 2 není podmínkou této konkrétní ukázky. Některé popisky videa zmiňují širší technologický kontext; pro popis této implementace vycházíme z ověřené verze repozitáře.

Vývoj Unitree G1 ve Visual Studio Code: dokumentace autonomní sekvence a asistence pro přenesení sošky na stůl v MuJoCo
Dokumentace vývoje MALONI popisuje řízení úkolu, pauzu a reset i pomocné fyzikální vazby. Snímek zachycuje vývojové podklady, nikoli kamerové vnímání.

Co přesně znamená úspěšně položit předmět

Úkol musí skončit do 180 simulovaných sekund aktivního úkolu. Aktivace úchopové vazby vyžaduje, aby obě dlaně byly do 65 mm od svých definovaných úchopových bodů. Validační skript kontroluje, že aktivace vazby nepřepíše polohu ani orientaci předmětu.

Kontrola položení vyžaduje vypnutou úchopovou vazbu, kontakt s deskou pravého stolu, vodorovnou odchylku menší než 160 mm a výškovou odchylku menší než 25 mm. Norma kombinovaného vektoru lineární a úhlové rychlosti musí zůstat pod implementačním prahem 0,06 po dobu nejméně jedné sekundy. Tento smíšený práh není samostatnou rychlostí 0,06 m/s.

Vodorovná chyba 9,83 mm v reportu je průměrná vzdálenost XY kořene sošky od cílové značky při potvrzení stabilního položení. Vychází z přesných souřadnic simulátoru a asistované manipulace; není přesností kamerového měření ani reálného úchopu. Jednosekundová kontrola také neprokazuje dlouhodobou stabilitu po skončení programu.

Jak číst naměřené latence

Report měří latence zvlášť pro seedy 0, 3 a 4, sekvenčně a bez grafického okna. Použité prostředí: Intel Core i9-13900H, Linux ve WSL2, Python 3.12.3, MuJoCo 3.15.0 a NumPy 2.5.3. ONNX běží na CPU s jedním intra-op vláknem; OPENBLAS_NUM_THREADS=1. Frekvence CPU, přiřazení jader a zátěž hostitele nebyly izolovány.

Seed / vzorky intervalůP95 intervalu cyklu / P95 ONNX procesu a IPC
0 / 4 8934,008 ms / 0,683 ms
3 / 6 4175,577 ms / 1,111 ms
4 / 3 9305,640 ms / 1,030 ms

Interval řídicího cyklu zahrnuje řízení úkolu, přípravu pozorování, komunikaci s politikou, PD regulaci, podpůrné síly a deset fyzikálních kroků. Hodnota „ONNX proces a IPC“ zahrnuje také komunikaci a parsování v pomocném procesu, takže není izolovanou dobou inference neuronové sítě. Režie měřicí instrumentace nebyla odečtena.

P95 je počítaný pro každý běh zvlášť lineární interpolací, nikoli průměrováním percentilů. Nastavených 20 ms je interval simulovaného času; latence v tabulce jsou skutečný čas měřený perf_counter_ns v headless smyčce bez uspávání. Nulové překročení 20 ms ve 15 240 intervalech je empirický výsledek těchto běhů, nikoli certifikace hard real-time provozu. FPS, síťová latence, kamerové zpracování ani fyzický robot v tomto benchmarku měřeny nebyly.

Asistence a hranice autonomie

  • Poloha předmětu pochází přímo ze simulátoru. Projekt nepoužívá kamerovou detekci červeného Buddhy.
  • Pevné ruce nemají řízené prsty. Držení zajišťuje bodová vazba a pomocný moment udržuje předmět vzpřímený; předmět koliduje s místností, ne s robotem.
  • Podpůrná vazba a kompenzace tíhy pomáhají při podřepu, položení a finále. Při přenášení pomáhá stabilizační moment trupu; pozorování paží pro původní politiku jsou neutralizována.
  • Plánovač používá známé statické prostředí. Dynamické překážky, změněný nábytek, jiné povrchy a přenos na fyzický G1 nejsou touto sadou ověřeny.

Veřejný zdrojový kód a ověřitelnost výsledků

Zdrojové řešení je veřejně dostupné v repozitáři malonitest/Maloni. Tento článek popisuje revizi da5f9b1751adfe210ca74ef2a30e4d8aeac27bee, zkontrolovanou 19. října 2026. Odkazy ve zdrojích vedou na tuto konkrétní verzi dokumentace, řadiče, validačního a měřicího skriptu.

README obsahuje instalaci a spuštění pro Linux x86_64; přesné revize původních závislostí jsou v dependencies/lock.json. Ovládání a asistenci popisuje OVLADANI_G1.md. Skript verify_buddha.py je určen pro validační seedy a benchmark_performance.py pro měření latencí. Jde o podklady pro vlastní reprodukci, nikoli tvrzení, že instalace a simulace byly při přípravě článku znovu spuštěny.

Číselný souhrn vychází z dodaného performance reportu MALONI. Ve zkontrolované veřejné revizi nejsou původní výsledkové JSON soubory ani kompletní report. Historická desetiseedová sada podle reportu nemá původní fingerprint verzí; u nových měření report uvádí SHA-256 zdrojů, konfigurace, scén a ONNX modelu. Bez surových výsledků nelze původní běhy nezávisle přepočítat.

Repozitář zveřejňuje zdrojové soubory; v kontrolované revizi nebyla uvedena samostatná licence projektu. Podmínky použití je proto potřeba ověřit zvlášť, včetně licencí původních knihoven a modelů Unitree. Samotné veřejné zpřístupnění kódu neznamená neomezené právo dalšího použití.

MALONI pokračuje ve vývoji softwaru pro humanoidy

Demonstrace propojuje více částí humanoidního softwaru do jednoho kontrolovatelného úkolu: plánování, chůzi, manipulaci a ověřování dokončení. Pro MALONI představuje další krok od samostatných pohybových ukázek k řízení celé sekvence. Další rozvoj může postupně řešit vnímání kamerou, omezení pomocných vazeb a testování na skutečné platformě; tyto možnosti nejsou současnými výsledky potvrzené.

MALONI Robotics pokračuje ve vývoji softwaru pro humanoidy, simulaci a integraci robotických systémů. Pro zákaznické projekty v Česku, na Slovensku a v Polsku posuzujeme platformu, dostupná rozhraní, zadání a způsob ověření. Rozsah programování a podpory potvrzujeme pro konkrétní projekt.

Zdroje a další čtení

Článek vychází z veřejného kódu revize da5f9b1, vlastního videa a snímků MALONI a dodaného performance reportu z 19. října 2026. Měřené výsledky jsou tvrzení reportu; původní JSON soubory nejsou v kontrolované veřejné revizi a běhy zde nebyly nezávisle reprodukovány. Report a video popisují asistovanou simulaci, nikoli výkon fyzického robota.

Pojmy pro tento projekt

MALONI Robotics

Máte úkol k posouzení?

Popište úkol, místo a provozní podmínky. MALONI prověří možnosti produktu a podpory pro konkrétní poptávku.

Programování robotů v C++ a ROS 2 ↗Poptat programování robota ↗