Unitree-robotter leveret fra Italien · support på engelsk

Prices Find the right robot Financing
About us Book a call
Unitree G1 EDU, humanoid udviklingsplatform

Unitree G1 · Software

Programmering af Unitree G1: netværk, SDK2 og ROS 2 trin for trin

Kort fortalt: Kun G1 EDU kan programmeres. Du slutter pc'en til via Ethernet på subnettet 192.168.123.x, kompilerer unitree_sdk2 (C++) eller installerer unitree_sdk2_python, prøver eksemplerne i simulering med unitree_mujoco og derefter på den ophængte robot i debug mode (L2+R2). ROS 2 Humble lægges ovenpå med unitree_ros2, når du har brug for Nav2, MoveIt eller rosbag.

For at programmere Unitree G1 skal du bruge tre ting: EDU-versionen, en Ubuntu-pc forbundet til robottens interne netværk og det officielle SDK unitree_sdk2. Denne guide følger Unitrees offentlige dokumentation (GitHub-repositorier og Document Center) og angiver for hvert trin, hvilken fil eller side det stammer fra. Hvis robotten lige er ankommet, så start med opstart, fjernbetjening og første gang robotten rejser sig.

Hvilken G1 kan programmeres

På den officielle produktside for G1 er sekundær udvikling kun angivet for G1 EDU; basismodellen G1 har 23 frihedsgrader og intet beregningsmodul til udvikling. EDU-versionerne går fra 23 til 43 DoF med valgfrit beregningsmodul (Unitree nævner Orin-moduler) og valgfrie Dex3-1-hænder. I Abras prisliste koster G1 Air fra 19.809 € og G1-U1 EDU (23 DoF, beregningsdock med 100 TOPS) fra 38.005 €, ekskl. moms. Alle versioner findes i G1-oversigten; vil du vælge mellem U1, U2 og versionerne med hænder, så læs guiden hvilken version af G1 skal du vælge.

Produkter nævnt i artiklenG1-serien

Arkitektur: hvor din kode kører

G1 EDU har en computer til bevægelsesstyring, som Unitree står for, og en udviklingscomputer (PC2) til brugerens kode. Unitrees repositorier, for eksempel xr_teleoperate, angiver PC2 på adressen 192.168.123.164 med brugeren unitree. Startadgangskoden leveres af Unitree; udvikler-FAQ'en og LeRobot-guiden til G1 angiver 123. Skift den, så snart robotten kommer på et delt netværk.

Du har to muligheder:

  • Kode på den bærbare: pc'en taler med robotten via DDS over Ethernet-kablet. Det er det mest praktiske valg til udvikling og fejlfinding.
  • Kode på PC2: du starter programmet på robotten via SSH. Det bruges til autonom drift uden kabel og til at sænke latensen.
ssh unitree@192.168.123.164

Opsætning af pc'ens netværk

  1. Forbind pc'en med robotten via et Ethernet-kabel.
  2. Sæt interfacet til manuel IPv4: adresse 192.168.123.99 (den Unitree foreslår), netmaske 255.255.255.0. Brug ikke adresser, der allerede findes på robotten, som .164.
  3. Notér interfacets navn med ip a eller ifconfig (enp3s0, eth0...): alle SDK-eksempler kræver det som argument.
  4. Test med ping 192.168.123.164. Svarer robotten ikke, er problemet netværket, og der er ingen grund til at åbne IDE'en.

En dedikeret Ethernet-port (også en USB-adapter) undgår konflikter med laboratoriets netværk.

Installation af unitree_sdk2 (C++)

README'en til unitree_sdk2 angiver Ubuntu 20.04, gcc 9.4.0, CPU x86_64 eller aarch64 og CMake 3.10 eller nyere som referencemiljø. På andre Ubuntu-versioner kompilerer det som regel, men det testede miljø er dette. Windows er ikke et miljø, som README'en understøtter.

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 kompilerer også eksemplerne, som havner i build/bin/. Installation i /opt/unitree_robotics er også den, simulatoren unitree_mujoco anbefaler.

Eller Python: unitree_sdk2_python

Python-wrapperen kræver Python 3.8 eller nyere og cyclonedds 0.10.2:

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

Stopper installationen med "Could not locate cyclonedds", forklarer README'en, hvordan du kompilerer CycloneDDS fra grenen releases/0.10.x og sætter CYCLONEDDS_HOME. Eksemplerne til G1 ligger i example/g1/. En nyttig note fra eksemplernes README: G1 og H1-2 bruger beskederne unitree_hg, mens Go2, B2 og H1 bruger unitree_go.

Debug mode: før hver low-level-test

Når G1 tændes, starter den sin egen bevægelsesstyring, som hele tiden sender kommandoer til motorerne. Publicerer du samtidig på rt/lowcmd, kolliderer kommandoerne, og robotten vibrerer. Fremgangsmåden, der er dokumenteret i deploy-guiden til unitree_rl_gym, er:

  1. tænd robotten, mens den hænger i selen, og vent på tilstanden med nulmoment;
  2. tryk L2+R2 på fjernbetjeningen: robotten går i debug mode med leddene i dæmpning;
  3. start først nu low-level-programmet.

I debug mode holder robotten ikke selv balancen: den skal blive hængende, indtil din controller kan bære den.

Første test: bevæg anklerne

Eksemplet g1_ankle_swing_example (kildekode i example/g1/low_level/) læser rt/lowstate, skriver rt/lowcmd og får anklerne til at svinge. Fra mappen build:

./bin/g1_ankle_swing_example enp3s0

Erstat enp3s0 med dit interface. Skriver terminalen "CRC Error", er den modtagne besked beskadiget eller passer ikke til den forventede type: kontrollér kabel, interface og SDK-version.

Til kommandoer på højt niveau (stå op, gå med indstillede hastigheder) findes g1_loco_client, som bruger den indbyggede bevægelsesstyring og derfor skal startes uden for debug mode:

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

De vigtigste topics

DDS-topicIndholdKilde
rt/lowstateMotorstatus, IMU, batterieksemplet ankle swing
rt/lowcmdKommandoer for position, hastighed, moment og forstærkninger kp/kdeksemplet ankle swing
rt/secondary_imuTorsoens IMUeksemplet ankle swing, unitree_mujoco
rt/dex3/left/cmd, rt/dex3/right/cmdKommandoer til Dex3-1-håndeneksemplet g1_dex3_example
rt/lf/dex3/left/state, rt/lf/dex3/right/stateStatus for Dex3-1-håndeneksemplet g1_dex3_example

Hænderne har topics adskilt fra gangfunktionen: det er en god idé at køre benenes styringsløkke i én proces og grebet i en anden med forskellige frekvenser.

Simulér først: unitree_mujoco

unitree_mujoco er en simulator baseret på MuJoCo, der eksponerer de samme beskeder (LowCmd, LowState, SportModeState, torsoens IMU for G1). Et program skrevet med unitree_sdk2, unitree_sdk2_python eller unitree_ros2 kører først i simulering og derefter på robotten. Simulatoren understøtter kun udvikling på lavt niveau. Til reinforcement learning dækker unitree_rl_gym hele forløbet train, play, sim2sim (MuJoCo) og sim2real for G1, H1, H1-2 og Go2.

Hvornår du skal tilføje ROS 2

Det direkte SDK er den korteste vej til motorer og isolerede tests. ROS 2 er nødvendigt, når du skal integrere Nav2, MoveIt, standardpipelines til billedbehandling, optagelse med rosbag eller flere robotter i samme laboratorium. Pakken unitree_ros2 indeholder beskederne unitree_hg og et low-level-eksempel til G1 (g1/lowlevel/g1_low_level_example); Unitree har testet den på Ubuntu 22.04 med Humble (anbefalet) og på Ubuntu 20.04 med Foxy. Installation, netværk og første topic finder du i guiden ROS 2 på Unitree-robotter.

Sikkerhedstjekliste til laboratoriet

  • De første tests altid med ophængt robot og frit område omkring den.
  • Lave kp/kd-forstærkninger og forsigtige momentgrænser i den første styringsløkke.
  • Én person ved fjernbetjeningen, klar til at sætte robotten i dæmpning.
  • Samme SDK-version på pc'en og på robotten; efter en OTA-opdatering skal du kontrollere eksemplerne igen.

Abra Robotics leverer Unitree-sortimentet i Danmark med support på engelsk og tilbyder træning og softwareudvikling oven på SDK'et som ydelser adskilt fra hardwaren: detaljer under Software og Universiteter og forskning.

Ofte stillede spørgsmål

Kan man programmere basismodellen G1 (ikke EDU)?

Nej. På Unitrees officielle produktside er sekundær udvikling kun angivet for G1 EDU; basismodellen G1 har hverken beregningsmodulet til udvikling eller adgang til SDK'et.

Hvilket styresystem skal udviklings-pc'en have?

README'en til unitree_sdk2 angiver Ubuntu 20.04 med gcc 9.4.0 som referencemiljø på CPU x86_64 eller aarch64. Til ROS 2 har Unitree testet Ubuntu 20.04 med Foxy og Ubuntu 22.04 med Humble og anbefaler Humble.

Hvad er adressen på G1's udviklingscomputer?

Udviklingscomputeren (PC2) i G1 EDU svarer på 192.168.123.164 med brugeren unitree. Din pc skal på samme subnet 192.168.123.x med en ledig adresse; Unitree foreslår 192.168.123.99.

Hvorfor vibrerer robotten, når jeg starter et low-level-eksempel?

Næsten altid er den indbyggede bevægelsesstyring stadig aktiv og sender kommandoer samtidig med dine. Gå i debug mode (L2+R2 med robotten ophængt og i dæmpning), før du sender kommandoer på rt/lowcmd.

Er det bedst at starte med simulering eller hardware?

Med simulering. unitree_mujoco bruger de samme DDS-beskeder som robotten, så det samme program kører først i MuJoCo og derefter på G1, hvor kun netværksinterfacet skal ændres.

Kilder

  1. Unitree, produktside for G1 (versioner, DoF, sekundær udvikling): unitree.com/g1
  2. Unitree, unitree_sdk2, README og G1-eksempler: 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, guide til deploy på den rigtige robot (debug mode L2+R2): deploy_real/README.md
  7. Unitree, xr_teleoperate (PC2 på 192.168.123.164): github.com/unitreerobotics/xr_teleoperate
  8. Unitree Document Center, udviklersektionen for G1: support.unitree.com/home/en/G1_developer
  9. Hugging Face, LeRobot-dokumentation til Unitree G1: huggingface.co/docs/lerobot/en/unitree_g1

Træning og udvikling med Unitree SDK

Vi leverer G1 EDU konfigureret og tilbyder, som separat ydelse, træning og udvikling oven på unitree_sdk2 og ROS 2.

SoftwareydelserG1 EDU-konfigurationer