Unitree-robotit toimitettuna Italiasta · tuki englanniksi

Prices Find the right robot Financing
About us Book a call
Unitree G1 EDU, humanoidirobotin kehitysalusta

Unitree G1 · Ohjelmistot

Unitree G1:n ohjelmointi: verkko, SDK2 ja ROS 2 vaihe vaiheelta

Lyhyesti: ohjelmoida voi vain G1 EDU -versiota. Kytke PC Ethernet-kaapelilla aliverkkoon 192.168.123.x, käännä unitree_sdk2 (C++) tai asenna unitree_sdk2_python, kokeile esimerkkejä ensin simulaatiossa unitree_mujoco-simulaattorilla ja sitten valjaisiin ripustetulla robotilla debug modessa (L2+R2). ROS 2 Humble lisätään unitree_ros2-paketilla, kun tarvitset Nav2:ta, MoveIt:iä tai rosbagia.

Unitree G1 -robotin ohjelmointiin tarvitaan kolme asiaa: EDU-versio, robotin sisäverkkoon kytketty Ubuntu-PC ja virallinen SDK unitree_sdk2. Tämä opas seuraa Unitreen julkista dokumentaatiota (GitHub-repositoriot ja Document Center) ja kertoo jokaisen vaiheen kohdalla, mistä tiedostosta tai sivulta tieto on peräisin. Jos robotti on juuri saapunut, aloita oppaasta käynnistys, kaukosäädin ja ensimmäinen pystyyn nousu.

Mitä G1-versiota voi ohjelmoida

G1:n virallisessa tuotesivussa jatkokehitys (SDK-pääsy) mainitaan vain G1 EDU -versiolle. Perus-G1:ssä on 23 vapausastetta, eikä siinä ole laskentamoduulia kehitystyöhön. EDU-versioissa on 23–43 DoF, valinnainen laskentamoduuli (Unitree mainitsee Orin-kortit) ja valinnaiset Dex3-1-kädet. Abran hinnastossa G1 Air on saatavilla alkaen 19 809 € ja G1-U1 EDU (23 DoF, 100 TOPS:n laskentatelakka) alkaen 38 005 €, alv 0 %. Kaikki versiot löytyvät G1-sivulta. Jos mietit, valitako U1, U2 vai jokin käsillä varustettu versio, lue opas mikä G1-versio kannattaa valita.

Artikkelissa mainitut tuotteetG1-mallisto

Arkkitehtuuri: missä koodisi ajetaan

G1 EDU:ssa on liikkeenohjaustietokone, jota Unitree hallinnoi, sekä kehitystietokone (PC2) käyttäjän koodille. Unitreen repositoriot, esimerkiksi xr_teleoperate, ilmoittavat PC2:n osoitteeksi 192.168.123.164 ja käyttäjäksi unitree. Alkuperäisen salasanan antaa Unitree; kehittäjien FAQ ja LeRobotin G1-opas mainitsevat salasanaksi 123. Vaihda se heti, kun robotti liitetään jaettuun verkkoon.

Vaihtoehtoja on kaksi:

  • Koodi kannettavalla: PC keskustelee robotin kanssa DDS:n kautta Ethernet-kaapelia pitkin. Tämä on kätevin tapa kehittää ja debugata.
  • Koodi PC2:lla: käynnistät ohjelman robotilla SSH:n kautta. Tätä tarvitaan, kun robotin pitää toimia itsenäisesti ilman kaapelia ja kun viivettä halutaan pienentää.
ssh unitree@192.168.123.164

PC:n verkkoasetukset

  1. Kytke PC robottiin Ethernet-kaapelilla.
  2. Määritä verkkoliitäntään manuaalinen IPv4-osoite: osoite 192.168.123.99 (Unitreen suosittelema), aliverkon peite 255.255.255.0. Älä käytä osoitteita, jotka ovat jo robotin käytössä, kuten .164.
  3. Katso komennolla ip a tai ifconfig verkkoliitännän nimi (enp3s0, eth0...) ja kirjoita se muistiin: kaikki SDK-esimerkit kysyvät sitä argumenttina.
  4. Tarkista yhteys komennolla ping 192.168.123.164. Jos robotti ei vastaa, vika on verkossa, eikä IDE:n avaamisesta ole hyötyä.

Oma Ethernet-portti (myös USB-sovitin käy) estää ristiriidat laboratorion verkon kanssa.

unitree_sdk2:n asennus (C++)

unitree_sdk2:n README määrittää viiteympäristöksi Ubuntu 20.04, gcc 9.4.0, x86_64- tai aarch64-suoritin sekä CMake 3.10 tai uudempi. Muilla Ubuntu-versioilla kääntäminen yleensä onnistuu, mutta testattu ympäristö on tämä. Windows ei ole README:n tukema ympäristö.

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 kääntää myös esimerkit, jotka päätyvät hakemistoon build/bin/. Asennusta hakemistoon /opt/unitree_robotics suosittelee myös unitree_mujoco-simulaattori.

Tai Python: unitree_sdk2_python

Python-kääre vaatii Pythonin 3.8 tai uudemman sekä cyclonedds-version 0.10.2:

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

Jos asennus pysähtyy virheeseen "Could not locate cyclonedds", README neuvoo, miten CycloneDDS käännetään haarasta releases/0.10.x ja miten ympäristömuuttuja CYCLONEDDS_HOME asetetaan. G1:n esimerkit ovat hakemistossa example/g1/. Esimerkkien README:ssä on hyödyllinen huomio: G1 ja H1-2 käyttävät unitree_hg-viestejä, kun taas Go2, B2 ja H1 käyttävät unitree_go-viestejä.

Debug mode: aina ennen low-level-testiä

Käynnistyessään G1 ottaa käyttöön oman liikkeenohjauksensa, joka lähettää jatkuvasti komentoja moottoreille. Jos julkaiset samaan aikaan viestejä topiciin rt/lowcmd, komennot ovat ristiriidassa ja robotti tärisee. unitree_rl_gymin deploy-oppaassa kuvattu menettely on seuraava:

  1. käynnistä robotti valjaisiin ripustettuna ja odota, että se siirtyy nollamomenttitilaan;
  2. paina kaukosäätimestä L2+R2: robotti siirtyy debug modeen, ja nivelet ovat vaimennustilassa;
  3. käynnistä low-level-ohjelma vasta tämän jälkeen.

Debug modessa robotti ei pidä tasapainoa itse: se on pidettävä ripustettuna, kunnes oma ohjaimesi kannattelee sitä.

Ensimmäinen testi: nilkkojen liikuttaminen

Esimerkki g1_ankle_swing_example (lähdekoodi hakemistossa example/g1/low_level/) lukee topicia rt/lowstate, kirjoittaa topiciin rt/lowcmd ja heiluttaa nilkkoja. Aja se hakemistosta build:

./bin/g1_ankle_swing_example enp3s0

Korvaa enp3s0 oman verkkoliitäntäsi nimellä. Jos pääte tulostaa "CRC Error", vastaanotettu viesti on vioittunut tai se ei vastaa odotettua tyyppiä: tarkista kaapeli, verkkoliitäntä ja SDK:n versio.

Korkean tason komentoja varten (seisominen, kävely annetuilla nopeuksilla) on g1_loco_client. Se käyttää robotin sisäänrakennettua liikkeenohjausta, joten se on käynnistettävä debug moden ulkopuolella:

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

Tärkeimmät topicit

DDS-topicSisältöLähde
rt/lowstateMoottorien tila, IMU, akkuankle swing -esimerkki
rt/lowcmdAsento-, nopeus- ja momenttikomennot sekä vahvistukset kp/kdankle swing -esimerkki
rt/secondary_imuTorson IMUankle swing -esimerkki, unitree_mujoco
rt/dex3/left/cmd, rt/dex3/right/cmdDex3-1-käden komennotg1_dex3_example-esimerkki
rt/lf/dex3/left/state, rt/lf/dex3/right/stateDex3-1-käden tilag1_dex3_example-esimerkki

Käsillä on liikkumisesta erilliset topicit. Siksi jalkojen ohjaussilmukka kannattaa ajaa yhdessä prosessissa ja tarttuminen toisessa, eri taajuuksilla.

Simuloi ensin: unitree_mujoco

unitree_mujoco on MuJoCoon perustuva simulaattori, joka tarjoaa samat viestit (LowCmd, LowState, SportModeState, G1:n torson IMU). Ohjelma, joka on kirjoitettu unitree_sdk2:lla, unitree_sdk2_python:lla tai unitree_ros2:lla, ajetaan ensin simulaatiossa ja sitten robotilla. Simulaattori tukee vain low-level-kehitystä. Vahvistusoppimiseen unitree_rl_gym kattaa koko ketjun train, play, sim2sim (MuJoCo) ja sim2real G1:lle, H1:lle, H1-2:lle ja Go2:lle.

Milloin ROS 2 kannattaa ottaa mukaan

Suora SDK on lyhin tie moottoreihin ja erillisiin testeihin. ROS 2:ta tarvitaan, kun pitää integroida Nav2, MoveIt, tavalliset konenäköputket, tallennus rosbagilla tai useita robotteja samassa laboratoriossa. unitree_ros2-paketti sisältää unitree_hg-viestit ja G1:n low-level-esimerkin (g1/lowlevel/g1_low_level_example). Unitree on testannut sen Ubuntu 22.04:ssä Humblella (suositus) ja Ubuntu 20.04:ssä Foxylla. Asennus, verkko ja ensimmäinen topic käydään läpi oppaassa ROS 2 Unitree-roboteilla.

Laboratorion turvallisuustarkistuslista

  • Ensimmäiset testit aina robotti ripustettuna ja ympärillä vapaata tilaa.
  • Pienet kp/kd-vahvistukset ja varovaiset momenttirajat ensimmäisessä ohjaussilmukassa.
  • Yksi henkilö kaukosäätimen ääressä valmiina viemään robotin vaimennustilaan.
  • Sama SDK-versio PC:llä ja robotilla; tarkista esimerkit uudelleen jokaisen OTA-päivityksen jälkeen.

Abra Robotics toimittaa Unitree-mallistoa Suomeen, ja tuki hoidetaan englanniksi. Tarjoamme SDK:n päälle rakentuvaa koulutusta ja ohjelmistokehitystä laitteistosta erillisinä palveluina: lisätietoja sivuilla Ohjelmistot ja Yliopistot ja tutkimus.

Usein kysytyt kysymykset

Voiko perus-G1:tä (ei EDU) ohjelmoida?

Ei. Unitreen virallisessa tuotesivussa jatkokehitys mainitaan vain G1 EDU -versiolle. Perus-G1:ssä ei ole kehitystyöhön tarkoitettua laskentamoduulia eikä SDK-pääsyä.

Mikä käyttöjärjestelmä kehitys-PC:llä pitää olla?

unitree_sdk2:n README määrittää viiteympäristöksi Ubuntu 20.04:n ja gcc 9.4.0:n x86_64- tai aarch64-suorittimella. ROS 2:n osalta Unitree on testannut Ubuntu 20.04:n Foxylla ja Ubuntu 22.04:n Humblella, ja se suosittelee Humblea.

Mikä on G1:n kehitystietokoneen osoite?

G1 EDU:n kehitystietokone (PC2) vastaa osoitteessa 192.168.123.164, käyttäjä unitree. Oma PC:si asetetaan samaan aliverkkoon 192.168.123.x vapaalla osoitteella; Unitree suosittelee osoitetta 192.168.123.99.

Miksi robotti tärisee, kun käynnistän low-level-esimerkin?

Lähes aina syynä on se, että sisäänrakennettu liikkeenohjaus on yhä päällä ja lähettää komentoja samaan aikaan kuin sinun ohjelmasi. Siirry debug modeen (L2+R2, robotti ripustettuna ja vaimennustilassa) ennen kuin lähetät komentoja topiciin rt/lowcmd.

Kannattaako aloittaa simulaatiosta vai laitteistosta?

Simulaatiosta. unitree_mujoco käyttää samoja DDS-viestejä kuin robotti, joten sama ohjelma toimii ensin MuJoCossa ja sitten G1:llä, kun vain verkkoliitäntä vaihdetaan.

Lähteet

  1. Unitree, G1:n tuotesivu (versiot, DoF, jatkokehitys): unitree.com/g1
  2. Unitree, unitree_sdk2, README ja G1-esimerkit: 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, opas oikealle robotille siirtämiseen (debug mode L2+R2): deploy_real/README.md
  7. Unitree, xr_teleoperate (PC2 osoitteessa 192.168.123.164): github.com/unitreerobotics/xr_teleoperate
  8. Unitree Document Center, G1:n kehittäjäosio: support.unitree.com/home/en/G1_developer
  9. Hugging Face, LeRobotin dokumentaatio Unitree G1:lle: huggingface.co/docs/lerobot/en/unitree_g1

Koulutusta ja kehitystä Unitree SDK:lla

Toimitamme G1 EDU -robotit valmiiksi määritettyinä ja tarjoamme erillisenä palveluna koulutusta ja kehitystä unitree_sdk2:n ja ROS 2:n päälle.

OhjelmistopalvelutG1 EDU -kokoonpanot