Developer Preview
Programujte Unitree G1 v Pythonu
Sentio OS udělá z G1 EDU robota, kterého jde skriptovat: něco říct, ujet metr, najít značku AprilTag, zavřít gripper — každá z těch věcí je jeden řádek v Pythonu nebo jeden požadavek HTTP. Stejné API používá webové rozhraní Sentia i blokový editor Flow.
198koncových bodů HTTP
robot, jízda, navigace, LiDAR, kamera, řeč, gripper, Flow
29 + 6kroků a podmínek ve Flow
bloky, které jde spouštět, zastavit a sledovat i z kódu
10 mindo první aplikace
20 vývojářů bez zkušenosti s humanoidy, workshop 17. 9. 2026
Developer Preview. Python SDK i tento návod jsou nové a ještě se vyvíjejí. Hledáme první vývojáře, kteří je vyzkoušejí na vlastním G1 EDU a řeknou nám, co chybí. Přidejte se.
Tři kroky k prvnímu skriptu
Nainstalujte Sentio do G1 EDU
Sentio běží jako kontejner Docker na druhém počítači robota (PC2). Připojte se přes SSH — adresa záleží na vaší síti, na drátové síti robota je to 192.168.123.164:
ssh unitree@<robot> docker --version
Přístup k registru a tři příkazy k instalaci najdete v Mém účtu. Instalátor na konci vypíše adresu webu, klíč API a ID zařízení. Ruční ovládání a péče o robota jsou zdarma a nevyprší.
Získejte klíč API
Hlavní klíč vypíše instalátor na konci (Klíč). Je uložený i na robotovi:
grep BACKPACK_API_KEY ~/sentio/.env
Týmy, které sdílí jednoho robota, dostanou vlastní klíče v Nastavení → Klíče a rezervace
robota. Klíč se posílá v hlavičce X-API-Key.
Spusťte první skript
Spojení ověříte přes curl:
curl -H "X-API-Key: $KEY" http://<robot>:8000/api/v1/robot/status
Pak robota pozdravte z Pythonu (níže). Všechno kdykoli zastaví
robot.stop_all() nebo Zastavit vše ve webovém rozhraní.
Python SDK
Balíček sentio je tenký synchronní klient nad REST API (jediná závislost je
httpx). Během Developer Preview ho posíláme účastníkům přímo.
from sentio import Robot
robot = Robot("http://192.168.0.10:8000", api_key="…") # or env SENTIO_URL / SENTIO_API_KEY
robot.say("Hello", lang="en", output="robot")
robot.gesture("wave_under_head")
robot.walk(1.0) # = drive(vx=0.3, max_m=1.0) + wait until driving=False
robot.turn(90)
print(robot.lidar.front()) # nearest obstacle ahead in metres, None without LiDAR
Co dalšího SDK umí:
robot.health() ; robot.activity() ; robot.stop_all()
robot.say("Hello", lang="en", output="robot")
robot.mode("walk") ; robot.modes()
robot.drive(vx=0.3, vyaw=0.0, max_sec=5, max_m=2) ; robot.drive_stop() ; robot.drive_status()
robot.walk(1.0) # = drive(vx=0.3, max_m=1.0) + wait until driving=False
robot.turn(90) # navigate/turn?wait=true
robot.navigate.go_tag(4, stop_cm=60) ; robot.navigate.search(4, direction="left")
robot.navigate.stop() ; robot.navigate.status()
robot.lidar.front() -> float # from GET /lidar/pruh (nearest in the strip), None without LiDAR
robot.lidar.sectors() ; robot.lidar.strip(width_m=0.7, length_m=4.0)
robot.odom()
robot.camera.snapshot() -> bytes ; robot.camera.apriltags() ; robot.camera.objects() ; robot.camera.describe()
robot.gripper.open(side="auto") ; robot.gripper.close(grip="soft") ; robot.gripper.status()
robot.gesture("wave_under_head")
robot.flow.list() ; robot.flow.start("Pozdrav") ; robot.flow.stop() ; robot.flow.status()
for ev in robot.flow.events(run_id): ... # generator over polling /flow/events?since_seq
Chyby jsou výjimky: AuthError (401), Forbidden (403),
Reserved (423 — robota drží jiný tým), Busy (409),
RobotUnavailable (503), ValidationError (422).
REST API
Všechno, co dělá SDK, je obyčejné HTTP pod /api/v1. Interaktivní dokumentace
běží přímo na robotovi — otevřete http://<robot>:8000/docs a kterýkoli koncový bod vyzkoušíte
v prohlížeči (schéma OpenAPI je na /openapi.json).
| Skupina | Hlavní koncové body | Balíček |
|---|---|---|
| Systém | GET /health · GET /status · GET /activity · POST /stop-all · GET /modules | Základ |
| Robot a jízda | GET /robot/status · GET /robot/modes · POST /robot/mode · POST /robot/drive · GET /robot/drive · POST /robot/drive/stop · POST /robot/gesture · POST /robot/led | Základ |
| Navigace | POST /navigate/go-tag · POST /navigate/search · POST /navigate/turn · POST /navigate/stop · GET /navigate/status | Pohyb a vystoupení |
| LiDAR | GET /lidar/status · GET /lidar/sectors · GET /lidar/pruh · GET /lidar/snapshot · GET /lidar/cloud (proud) · GET /lidar/imu | Základ |
| Odometrie | GET /robot/odom | Základ |
| Kamera | GET /video/snapshot · GET /video/stream · POST /video/apriltag/detect · POST /video/object/detect · POST /video/say-what-you-see | Základ |
| Řeč | POST /say · GET /tts/voices · POST /stt/listen · POST /stt/transcribe | Základ |
| Gripper | GET /gripper/status · POST /gripper/open · POST /gripper/close · POST /gripper/stop | Základ |
| Flow | GET /flow · POST /flow/{name}/start · POST /flow/stop · GET /flow/status · GET /flow/events?since_seq= | Základ |
Cesty jsou relativní k http://<robot>:8000/api/v1. Povely (POST) z týmového klíče
potřebují rezervaci, když robota sdílí víc týmů; čtení a zastavení jde vždy.
Chcete být mezi prvními?
Napište nám — jakého robota máte a co byste chtěli postavit. Pošleme vám SDK a pomůžeme k prvnímu skriptu.
Napište nám info@sentiorobotix.com