
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.
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.
| Metrika | Výsledek a rozsah |
|---|---|
| Dokončení | 10 / 10 úkolů v uložené sadě seedů 0–9 |
| Průměr / medián | 97,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 cyklu | 4,008 / 5,577 / 5,640 ms skutečného času pro seedy 0 / 3 / 4 |
| Překročení 20 ms | 0 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část | Konfigurace |
|---|---|
| Robot | Unitree G1; model s 29 ovládanými klouby |
| Simulátor | MuJoCo 3.15.0 |
| Jazyky | Python 3.12 a C++17 |
| Chůze | Předtrénovaná neuronová politika ONNX; bez nového trénování v této demonstraci |
| Inference | ONNX Runtime 1.22.0 na CPU |
| Řízení / fyzika | 50 Hz řízení (20 ms simulace); 500 Hz fyzika (krok 2 ms) |
| Klouby a paže | PD regulace kloubů; inverzní kinematika pro polohu paží |
| Scéna | Virtuá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žimy | Ruč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 / DDS | Hlavní 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.

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 893 | 4,008 ms / 0,683 ms |
| 3 / 6 417 | 5,577 ms / 1,111 ms |
| 4 / 3 930 | 5,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.
Další ukázky programování humanoidů
Zdroje a další čtení
- Maloni — Unitree G1 v MuJoCo: README, revize da5f9b1 ↗MALONI / GitHub
- OVLADANI_G1.md — ovládání a pomocné mechanismy ↗MALONI / GitHub
- BuddhaTask — řízení úlohy a podmínky úspěchu ↗MALONI / GitHub
- verify_buddha.py — metoda ověření ↗MALONI / GitHub
- benchmark_performance.py — metoda měření latence ↗MALONI / GitHub
- Závislosti — pevně určené revize původních komponent a úpravy ↗MALONI / GitHub
- MuJoCo MALONI Robotics Laboratory Ubuntu Autonomous Navigation ↗MALONI / YouTube
Č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.