Roboti Unitree s dodáním z Itálie · podpora v angličtině

Prices Find the right robot Financing
About us Book a call
Unitree G1 EDU, vývojová platforma humanoidního robota

Unitree G1 · Software

Programování Unitree G1: síť, SDK2 a ROS 2 krok za krokem

Stručně: programovat lze jen G1 EDU. PC připojíte přes Ethernet do podsítě 192.168.123.x, zkompilujete unitree_sdk2 (C++) nebo nainstalujete unitree_sdk2_python, příklady vyzkoušíte v simulaci s unitree_mujoco a pak na zavěšeném robotu v debug mode (L2+R2). ROS 2 Humble přidáte přes unitree_ros2, když potřebujete Nav2, MoveIt nebo rosbag.

K programování Unitree G1 potřebujete tři věci: verzi EDU, PC s Ubuntu připojené do vnitřní sítě robota a oficiální SDK unitree_sdk2. Tento návod vychází z veřejné dokumentace Unitree (repozitáře na GitHubu a Document Center) a u každého kroku uvádí soubor nebo stránku, ze které pochází. Pokud robot právě dorazil, začněte návodem zapnutí, dálkový ovladač a první postavení.

Který G1 lze programovat

Na oficiální produktové stránce G1 je sekundární vývoj uveden jen u G1 EDU; základní G1 má 23 stupňů volnosti a žádný výpočetní modul pro vývoj. Verze EDU mají 23 až 43 DoF, volitelný výpočetní modul (Unitree zmiňuje desky Orin) a volitelné ruce Dex3-1. V ceníku Abra stojí G1 Air od 19 809 € a G1-U1 EDU (23 DoF, výpočetní dok 100 TOPS) od 38 005 €, bez DPH. Všechny verze najdete na stránce G1; s výběrem mezi U1, U2 a verzemi s rukama pomůže návod kterou verzi G1 zvolit.

Produkty zmíněné v článkuCelá řada G1

Architektura: kde běží váš kód

G1 EDU má počítač pro řízení pohybu, který spravuje Unitree, a vývojový počítač (PC2) pro uživatelský kód. Repozitáře Unitree, například xr_teleoperate, uvádějí PC2 na adrese 192.168.123.164 s uživatelem unitree. Výchozí heslo dodává Unitree; vývojářské FAQ a návod LeRobot pro G1 uvádějí 123. Jakmile robot připojíte do sdílené sítě, heslo změňte.

Máte dvě možnosti:

  • Kód na notebooku: PC komunikuje s robotem přes DDS po ethernetovém kabelu. Pro vývoj a ladění je to nejpohodlnější varianta.
  • Kód na PC2: program spouštíte na robotu přes SSH. Hodí se pro autonomní provoz bez kabelu a pro nižší latenci.
ssh unitree@192.168.123.164

Nastavení sítě na PC

  1. Propojte PC s robotem ethernetovým kabelem.
  2. Nastavte rozhraní na ruční IPv4: adresa 192.168.123.99 (doporučuje ji Unitree), maska 255.255.255.0. Nepoužívejte adresy, které už robot používá, například .164.
  3. Příkazem ip a nebo ifconfig si poznamenejte název rozhraní (enp3s0, eth0...): všechny příklady SDK ho vyžadují jako argument.
  4. Ověřte spojení příkazem ping 192.168.123.164. Pokud robot neodpovídá, jde o problém se sítí a nemá smysl otevírat IDE.

Samostatný ethernetový port (stačí i USB adaptér) zabrání konfliktům se sítí laboratoře.

Instalace unitree_sdk2 (C++)

README k unitree_sdk2 uvádí jako referenční prostředí Ubuntu 20.04, gcc 9.4.0, CPU x86_64 nebo aarch64 a CMake 3.10 nebo novější. Na jiných verzích Ubuntu se SDK obvykle zkompiluje, otestované prostředí je ale toto. Windows README jako prostředí nepočítá.

sudo apt-get update
sudo apt-get install -y cmake g++ build-essential libyaml-cpp-dev \
  libeigen3-dev libboost-all-dev libfmt-dev
git clone https://github.com/unitreerobotics/unitree_sdk2.git
cd unitree_sdk2 && mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/unitree_robotics
make
sudo make install

make zkompiluje i příklady, které skončí v build/bin/. Instalaci do /opt/unitree_robotics doporučuje také simulátor unitree_mujoco.

Nebo Python: unitree_sdk2_python

Wrapper pro Python vyžaduje Python 3.8 nebo novější a cyclonedds 0.10.2:

git clone https://github.com/unitreerobotics/unitree_sdk2_python.git
cd unitree_sdk2_python
pip3 install -e .

Pokud se instalace zastaví s hláškou "Could not locate cyclonedds", README popisuje, jak zkompilovat CycloneDDS z větve releases/0.10.x a nastavit CYCLONEDDS_HOME. Příklady pro G1 jsou v example/g1/. Užitečná poznámka z README k příkladům: G1 a H1-2 používají zprávy unitree_hg, zatímco Go2, B2 a H1 používají unitree_go.

Debug mode: před každým low-level testem

Po zapnutí spustí G1 vlastní řízení pohybu, které průběžně posílá příkazy motorům. Pokud souběžně publikujete na rt/lowcmd, příkazy se střetnou a robot vibruje. Postup popsaný v návodu k nasazení v unitree_rl_gym je tento:

  1. zapněte robota zavěšeného v postroji a počkejte na režim nulového momentu;
  2. na dálkovém ovladači stiskněte L2+R2: robot přejde do debug mode s klouby v tlumení;
  3. teprve teď spusťte low-level program.

V debug mode robot sám neudrží rovnováhu: nechte ho zavěšeného, dokud ho neudrží váš regulátor.

První test: pohyb kotníků

Příklad g1_ankle_swing_example (zdrojový kód v example/g1/low_level/) čte rt/lowstate, zapisuje do rt/lowcmd a rozkmitá kotníky. Ze složky build:

./bin/g1_ankle_swing_example enp3s0

Místo enp3s0 zadejte své rozhraní. Pokud terminál vypíše "CRC Error", přijatá zpráva je poškozená nebo neodpovídá očekávanému typu: zkontrolujte kabel, rozhraní a verzi SDK.

Pro příkazy vysoké úrovně (stání, chůze se zadanou rychlostí) slouží g1_loco_client. Ten používá vestavěné řízení pohybu, a proto se spouští mimo debug mode:

./bin/g1_loco_client --network_interface=enp3s0 --get_fsm_id

Hlavní topicy

Topic DDSObsahZdroj
rt/lowstateStav motorů, IMU, bateriepříklad ankle swing
rt/lowcmdPříkazy pro polohu, rychlost, moment a zesílení kp/kdpříklad ankle swing
rt/secondary_imuIMU trupupříklad ankle swing, unitree_mujoco
rt/dex3/left/cmd, rt/dex3/right/cmdPříkazy pro ruku Dex3-1příklad g1_dex3_example
rt/lf/dex3/left/state, rt/lf/dex3/right/stateStav ruky Dex3-1příklad g1_dex3_example

Ruce mají topicy oddělené od lokomoce: řídicí smyčku nohou je vhodné držet v jednom procesu a úchop v jiném, s různými frekvencemi.

Nejdřív simulace: unitree_mujoco

unitree_mujoco je simulátor postavený na MuJoCo, který poskytuje stejné zprávy (LowCmd, LowState, SportModeState, u G1 i IMU trupu). Program napsaný s unitree_sdk2, unitree_sdk2_python nebo unitree_ros2 běží nejdřív v simulaci a potom na robotu. Simulátor podporuje jen low-level vývoj. Pro reinforcement learning pokrývá unitree_rl_gym celý cyklus train, play, sim2sim (MuJoCo) a sim2real pro G1, H1, H1-2 a Go2.

Kdy přidat ROS 2

Přímé SDK je nejkratší cesta k motorům a k izolovaným testům. ROS 2 potřebujete, když integrujete Nav2, MoveIt, standardní pipeline pro vidění, záznam přes rosbag nebo více robotů v jedné laboratoři. Balíček unitree_ros2 obsahuje zprávy unitree_hg a low-level příklad pro G1 (g1/lowlevel/g1_low_level_example); Unitree ho otestoval na Ubuntu 22.04 s Humble (doporučeno) a na Ubuntu 20.04 s Foxy. Instalaci, síť a první topic popisuje návod ROS 2 na robotech Unitree.

Bezpečnostní checklist pro laboratoř

  • První testy vždy se zavěšeným robotem a volným prostorem kolem.
  • V první řídicí smyčce nízká zesílení kp/kd a konzervativní limity momentu.
  • Jedna osoba u dálkového ovladače, připravená přepnout robota do tlumení.
  • Stejná verze SDK na PC i na robotu; po aktualizaci OTA příklady znovu ověřte.

Abra Robotics dodává řadu Unitree do Česka a na Slovensko, s podporou v angličtině, a jako služby oddělené od hardwaru nabízí školení a vývoj softwaru nad SDK: podrobnosti v sekcích Software a Univerzity a výzkum.

Časté dotazy

Lze programovat základní G1 (ne EDU)?

Ne. Na oficiální produktové stránce Unitree je sekundární vývoj uveden jen u G1 EDU; základní G1 nemá výpočetní modul pro vývoj ani přístup k SDK.

Jaký operační systém potřebuje vývojové PC?

README k unitree_sdk2 uvádí jako referenční prostředí Ubuntu 20.04 s gcc 9.4.0, na CPU x86_64 nebo aarch64. Pro ROS 2 Unitree otestoval Ubuntu 20.04 s Foxy a Ubuntu 22.04 s Humble a doporučuje Humble.

Jakou adresu má vývojový počítač G1?

Vývojový počítač (PC2) G1 EDU odpovídá na 192.168.123.164, uživatel unitree. Vaše PC musí být ve stejné podsíti 192.168.123.x s volnou adresou; Unitree doporučuje 192.168.123.99.

Proč robot vibruje, když spustím low-level příklad?

Téměř vždy je ještě aktivní vestavěné řízení pohybu a posílá příkazy souběžně s vašimi. Než začnete posílat příkazy na rt/lowcmd, přejděte do debug mode (L2+R2, robot zavěšený a v tlumení).

Začít simulací, nebo hardwarem?

Simulací. unitree_mujoco používá stejné zprávy DDS jako robot, takže stejný program běží nejdřív v MuJoCo a pak na G1, jen se změní síťové rozhraní.

Zdroje

  1. Unitree, produktová stránka G1 (verze, DoF, sekundární vývoj): unitree.com/g1
  2. Unitree, unitree_sdk2, README a příklady pro G1: github.com/unitreerobotics/unitree_sdk2 · example/g1
  3. Unitree, unitree_sdk2_python: github.com/unitreerobotics/unitree_sdk2_python
  4. Unitree, unitree_ros2: github.com/unitreerobotics/unitree_ros2
  5. Unitree, unitree_mujoco: github.com/unitreerobotics/unitree_mujoco
  6. Unitree, unitree_rl_gym, návod k nasazení na skutečném robotu (debug mode L2+R2): deploy_real/README.md
  7. Unitree, xr_teleoperate (PC2 na 192.168.123.164): github.com/unitreerobotics/xr_teleoperate
  8. Unitree Document Center, sekce pro vývojáře G1: support.unitree.com/home/en/G1_developer
  9. Hugging Face, dokumentace LeRobot pro Unitree G1: huggingface.co/docs/lerobot/en/unitree_g1

Školení a vývoj nad SDK Unitree

Dodáváme nakonfigurované G1 EDU a jako samostatnou službu nabízíme školení a vývoj nad unitree_sdk2 a ROS 2.

Softwarové službyKonfigurace G1 EDU