Roboty Unitree z wysyłką z Włoch · wsparcie po angielsku

Prices Find the right robot Financing
About us Book a call
Unitree G1 EDU, platforma rozwojowa robota humanoidalnego

Unitree G1 · Oprogramowanie

Programowanie Unitree G1: sieć, SDK2 i ROS 2 krok po kroku

W skrócie: programować można tylko G1 EDU. Podłączasz komputer przez Ethernet do podsieci 192.168.123.x, kompilujesz unitree_sdk2 (C++) albo instalujesz unitree_sdk2_python, testujesz przykłady w symulacji w unitree_mujoco, a potem na podwieszonym robocie, w debug mode (L2+R2). ROS 2 Humble dodajesz przez unitree_ros2, gdy potrzebujesz Nav2, MoveIt lub rosbag.

Do programowania Unitree G1 potrzebne są trzy rzeczy: wersja EDU, komputer z Ubuntu podłączony do wewnętrznej sieci robota i oficjalne SDK unitree_sdk2. Ten poradnik opiera się na publicznej dokumentacji Unitree (repozytoria GitHub i Document Center) i przy każdym kroku podaje plik lub stronę, z której pochodzi informacja. Jeśli robot dopiero dotarł, zacznij od artykułu o włączaniu, pilocie i pierwszym postawieniu robota.

Który G1 można programować

W oficjalnej karcie G1 rozwój własnego oprogramowania jest przewidziany tylko dla G1 EDU; podstawowy G1 ma 23 stopnie swobody i nie ma modułu obliczeniowego do rozwoju oprogramowania. Wersje EDU mają od 23 do 43 DoF, z opcjonalnym modułem obliczeniowym (Unitree wymienia płyty Orin) i opcjonalnymi dłońmi Dex3-1. W cenniku Abra G1 Air kosztuje od 19 809 €, a G1-U1 EDU (23 DoF, dok obliczeniowy 100 TOPS) od 38 005 €, netto, bez VAT. Wszystkie wersje są na stronie G1; jak wybrać między U1, U2 a wersjami z dłońmi, wyjaśniamy w artykule którą wersję G1 wybrać.

Produkty wymienione w artykuleCała gama G1

Architektura: gdzie działa Twój kod

G1 EDU ma komputer sterowania ruchem, zarządzany przez Unitree, oraz komputer deweloperski (PC2) na kod użytkownika. Repozytoria Unitree, na przykład xr_teleoperate, podają PC2 pod adresem 192.168.123.164 z użytkownikiem unitree. Hasło początkowe przekazuje Unitree; FAQ dla deweloperów i przewodnik LeRobot dla G1 podają 123. Zmień je, gdy tylko robot trafi do współdzielonej sieci.

Masz dwie możliwości:

  • Kod na laptopie: komputer komunikuje się z robotem przez DDS po kablu Ethernet. To najwygodniejsza opcja do programowania i debugowania.
  • Kod na PC2: uruchamiasz program na robocie przez SSH. Przydaje się do pracy autonomicznej bez kabla i do zmniejszenia opóźnień.
ssh unitree@192.168.123.164

Konfiguracja sieci w komputerze

  1. Połącz komputer z robotem kablem Ethernet.
  2. Ustaw interfejs na ręczną konfigurację IPv4: adres 192.168.123.99 (sugerowany przez Unitree), maska 255.255.255.0. Nie używaj adresów zajętych już przez robota, takich jak .164.
  3. Poleceniem ip a lub ifconfig sprawdź i zapisz nazwę interfejsu (enp3s0, eth0...): wszystkie przykłady SDK wymagają jej jako argumentu.
  4. Sprawdź połączenie przez ping 192.168.123.164. Jeśli robot nie odpowiada, problem leży w sieci: nie ma sensu otwierać IDE.

Osobny port Ethernet (choćby adapter USB) pozwala uniknąć konfliktów z siecią laboratorium.

Instalacja unitree_sdk2 (C++)

README unitree_sdk2 jako środowisko referencyjne podaje Ubuntu 20.04, gcc 9.4.0, procesor x86_64 lub aarch64 oraz CMake 3.10 lub nowszy. Na innych wersjach Ubuntu kompilacja zwykle się udaje, ale przetestowane jest właśnie to środowisko. README nie przewiduje systemu Windows.

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 kompiluje też przykłady, które trafiają do build/bin/. Instalację w /opt/unitree_robotics zaleca również symulator unitree_mujoco.

Albo Python: unitree_sdk2_python

Wrapper dla Pythona wymaga Pythona 3.8 lub nowszego i cyclonedds 0.10.2:

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

Jeśli instalacja zatrzyma się na komunikacie „Could not locate cyclonedds”, README wyjaśnia, jak skompilować CycloneDDS z gałęzi releases/0.10.x i ustawić CYCLONEDDS_HOME. Przykłady dla G1 są w example/g1/. Przydatna uwaga z README przykładów: G1 i H1-2 używają komunikatów unitree_hg, a Go2, B2 i H1 używają unitree_go.

Debug mode: przed każdym testem low-level

Po włączeniu G1 uruchamia własne sterowanie ruchem, które cały czas wysyła polecenia do silników. Jeśli równolegle publikujesz na rt/lowcmd, polecenia wchodzą ze sobą w konflikt i robot drży. Procedura opisana w przewodniku wdrożeniowym unitree_rl_gym wygląda tak:

  1. włącz robota zawieszonego na uprzęży i poczekaj na tryb zerowego momentu;
  2. naciśnij L2+R2 na pilocie: robot przechodzi w debug mode z tłumieniem w stawach;
  3. dopiero teraz uruchom program low-level.

W debug mode robot nie utrzymuje sam równowagi: musi pozostać podwieszony, dopóki Twój kontroler go nie utrzyma.

Pierwszy test: ruch kostek

Przykład g1_ankle_swing_example (kod źródłowy w example/g1/low_level/) odczytuje rt/lowstate, zapisuje rt/lowcmd i porusza kostkami wahadłowo. Z katalogu build:

./bin/g1_ankle_swing_example enp3s0

Zastąp enp3s0 nazwą swojego interfejsu. Jeśli w terminalu pojawi się „CRC Error”, odebrany komunikat jest uszkodzony lub nie odpowiada oczekiwanemu typowi: sprawdź kabel, interfejs i wersję SDK.

Do poleceń wysokiego poziomu (stanie, chód z zadaną prędkością) służy g1_loco_client, który korzysta z wbudowanego sterowania ruchem, więc trzeba go uruchamiać poza debug mode:

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

Najważniejsze topiki

Topik DDSZawartośćŹródło
rt/lowstateStan silników, IMU, akumulatorprzykład ankle swing
rt/lowcmdPolecenia pozycji, prędkości, momentu i wzmocnienia kp/kdprzykład ankle swing
rt/secondary_imuIMU tułowiaprzykład ankle swing, unitree_mujoco
rt/dex3/left/cmd, rt/dex3/right/cmdPolecenia dla dłoni Dex3-1przykład g1_dex3_example
rt/lf/dex3/left/state, rt/lf/dex3/right/stateStan dłoni Dex3-1przykład g1_dex3_example

Dłonie mają topiki oddzielne od lokomocji: warto trzymać pętlę sterowania nogami w jednym procesie, a chwytanie w innym, z różnymi częstotliwościami.

Najpierw symulacja: unitree_mujoco

unitree_mujoco to symulator oparty na MuJoCo, który udostępnia te same komunikaty (LowCmd, LowState, SportModeState, IMU tułowia dla G1). Program napisany z użyciem unitree_sdk2, unitree_sdk2_python lub unitree_ros2 działa najpierw w symulacji, a potem na robocie. Symulator obsługuje tylko rozwój low-level. Do uczenia ze wzmocnieniem unitree_rl_gym obejmuje cykl train, play, sim2sim (MuJoCo) i sim2real dla G1, H1, H1-2 i Go2.

Kiedy dodać ROS 2

Bezpośrednie użycie SDK to najkrótsza droga do sterowania silnikami i do pojedynczych testów. ROS 2 jest potrzebny, gdy musisz zintegrować Nav2, MoveIt, standardowe potoki wizyjne, nagrywanie przez rosbag albo kilka robotów w jednym laboratorium. Pakiet unitree_ros2 zawiera komunikaty unitree_hg i przykład low-level dla G1 (g1/lowlevel/g1_low_level_example); Unitree przetestowało go na Ubuntu 22.04 z Humble (zalecane) i na Ubuntu 20.04 z Foxy. Instalację, sieć i pierwszy topik opisujemy w poradniku ROS 2 na robotach Unitree.

Lista kontrolna bezpieczeństwa w laboratorium

  • Pierwsze testy zawsze z podwieszonym robotem i wolną przestrzenią dookoła.
  • Niskie wzmocnienia kp/kd i zachowawcze limity momentu w pierwszej pętli sterowania.
  • Jedna osoba przy pilocie, gotowa przełączyć robota w tryb tłumienia.
  • Ta sama wersja SDK na komputerze i na robocie; po aktualizacji OTA sprawdź ponownie przykłady.

Abra Robotics dostarcza gamę Unitree w Polsce, ze wsparciem po angielsku, i oferuje szkolenia oraz rozwój oprogramowania na bazie SDK jako usługi niezależne od sprzętu: szczegóły na stronach Oprogramowanie i Uczelnie i badania.

Najczęstsze pytania

Czy można programować podstawowy G1 (nie EDU)?

Nie. W oficjalnej karcie Unitree rozwój własnego oprogramowania jest przewidziany tylko dla G1 EDU; podstawowy G1 nie ma ani modułu obliczeniowego do rozwoju oprogramowania, ani dostępu do SDK.

Jaki system operacyjny jest potrzebny na komputerze deweloperskim?

README unitree_sdk2 podaje jako środowisko referencyjne Ubuntu 20.04 z gcc 9.4.0, na procesorze x86_64 lub aarch64. Dla ROS 2 Unitree przetestowało Ubuntu 20.04 z Foxy i Ubuntu 22.04 z Humble, zalecając Humble.

Jaki jest adres komputera deweloperskiego G1?

Komputer deweloperski (PC2) G1 EDU odpowiada pod adresem 192.168.123.164, użytkownik unitree. Twój komputer musi być w tej samej podsieci 192.168.123.x, z wolnym adresem; Unitree sugeruje 192.168.123.99.

Dlaczego robot drży, gdy uruchamiam przykład low-level?

Prawie zawsze dlatego, że wbudowane sterowanie ruchem jest nadal aktywne i wysyła polecenia równolegle z Twoimi. Przejdź w debug mode (L2+R2 przy podwieszonym robocie w trybie tłumienia), zanim zaczniesz wysyłać polecenia na rt/lowcmd.

Lepiej zacząć od symulacji czy od sprzętu?

Od symulacji. unitree_mujoco używa tych samych komunikatów DDS co robot, więc ten sam program działa najpierw w MuJoCo, a potem na G1, po zmianie samego interfejsu sieciowego.

Źródła

  1. Unitree, karta produktu G1 (wersje, DoF, rozwój własnego oprogramowania): unitree.com/g1
  2. Unitree, unitree_sdk2, README i przykłady dla 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, przewodnik wdrożenia na prawdziwym robocie (debug mode L2+R2): deploy_real/README.md
  7. Unitree, xr_teleoperate (PC2 pod adresem 192.168.123.164): github.com/unitreerobotics/xr_teleoperate
  8. Unitree Document Center, sekcja dla deweloperów G1: support.unitree.com/home/en/G1_developer
  9. Hugging Face, dokumentacja LeRobot dla Unitree G1: huggingface.co/docs/lerobot/en/unitree_g1

Szkolenia i rozwój oprogramowania na SDK Unitree

Dostarczamy skonfigurowane G1 EDU, a jako osobną usługę prowadzimy szkolenia i rozwój oprogramowania na bazie unitree_sdk2 i ROS 2. Komunikacja i wsparcie po angielsku.

Usługi programistyczneKonfiguracje G1 EDU