Unitree-robotit toimitettuna Italiasta · tuki englanniksi

Prices Find the right robot Financing
About us Book a call
Unitree Go2 EDU, alusta ROS 2 -kehitykseen

ROS 2 · Kehitys

ROS 2 Unitree-roboteissa: tyhjästä ensimmäiseen topiciin

Lyhyesti: Unitree-robotit viestivät DDS:n kautta, ja ROS 2 käyttää samaa väliohjelmistoa. Virallisella unitree_ros2-paketilla, ROS 2 Humblella Ubuntu 22.04:ssä ja CycloneDDS:llä robotin viestit näkyvät suoraan ROS 2 -topiceina ilman siltaa. Tarvitset robotin EDU-version, Ethernet-kaapelin ja PC:n aliverkossa 192.168.123.x.

ROS 2 Unitree-roboteissa toimii ilman takaisinmallinnusta ja ilman käännössolmuja: robotti julkaisee tietonsa DDS:n (CycloneDDS) kautta, ja ROS 2 käyttää DDS:ää tiedonsiirtokerroksenaan. Virallinen unitree_ros2-paketti sisältää viestien määrittelyt ja ympäristöskriptit. Tämä opas tiivistää virallisen README-tiedoston menettelyn ja kertoo kohdat, joihin työ tavallisesti pysähtyy.

Mitkä Unitree-robotit tukevat ROS 2:ta

Ohjelmistokehitys on mahdollista vain kehittäjäversioissa. Go2:n virallinen tuotesivu mainitsee jatkokehityksen EDU-versiossa, ei Air- eikä Pro-versiossa. G1:ssä sama koskee G1 EDU -versiota.

RobottiViestit unitree_ros2:ssaROS 2 -esimerkit repositoriossa
Go2 EDUunitree_gosport client, seisominen, robotin tila, low-level
B2 / B2Wunitree_golow-level, tilan lukeminen
G1 EDUunitree_hgg1_low_level_example
H2esimerkkikansio h2löytyvät repositoriosta
H1 / H1-2unitree_go / unitree_hglow-level H1-2

Malleille R1 ja A2 unitree_sdk2 sisältää lokakuussa 2026 omat C++-esimerkit, mutta unitree_ros2:ssa ei vielä ole niille erillisiä esimerkkejä. Jos projekti perustuu pelkästään ROS 2:een, tarkista repositorion tilanne ennen kuin ostat jommankumman näistä malleista.

Artikkelissa mainitut tuotteetEDU-robotit tutkimukseen

Vaatimukset: Ubuntu ja ROS 2 -versio

unitree_ros2:n README mainitsee kaksi testattua yhdistelmää:

  • Ubuntu 22.04 + ROS 2 Humble, joka on merkitty suositelluksi;
  • Ubuntu 20.04 + ROS 2 Foxy.

ROS 2 -julkaisutaulukon mukaan Foxyn tuki päättyi 20. kesäkuuta 2023, kun taas Humblea tuetaan toukokuuhun 2027 ja Jazzya toukokuuhun 2029 asti. Nyt alkavassa projektissa käytännöllinen valinta on Humble; Jazzy ei kuulu Unitreen testaamiin yhdistelmiin. ROS 2 Humble asennetaan Debian-paketeista virallisen ohjeen mukaan.

unitree_ros2:n asennus vaihe vaiheelta

1. Kloonaa repositorio ja asenna riippuvuudet (Humblea käytettäessä korvaa foxy sanalla humble):

git clone https://github.com/unitreerobotics/unitree_ros2
sudo apt install ros-humble-rmw-cyclonedds-cpp
sudo apt install ros-humble-rosidl-generator-dds-idl
sudo apt install libyaml-cpp-dev

2. Vain Foxyn kanssa: käännä CycloneDDS 0.10.x työtilassa cyclonedds_ws terminaalissa, johon ROS 2:ta ei ole ladattu. Robotti käyttää CycloneDDS:n versiota 0.10.2; Humblea käytettäessä tätä vaihetta ei tarvita.

3. Käännä viestipaketit (unitree_go, unitree_hg, unitree_api):

cd ~/unitree_ros2/cyclonedds_ws
source /opt/ros/humble/setup.bash
colcon build

Verkko ja CycloneDDS

Liitä PC robottiin Ethernet-kaapelilla. Aseta verkkoliitännän asetuksissa IPv4 manuaaliseksi, osoitteeksi 192.168.123.99 ja aliverkon peitteeksi 255.255.255.0, kuten README neuvoo. Selvitä liitännän nimi komennolla ifconfig tai ip a (esimerkiksi enp3s0) ja kirjoita se tiedostoon ~/unitree_ros2/setup.sh:

#!/bin/bash
source /opt/ros/humble/setup.bash
source $HOME/unitree_ros2/cyclonedds_ws/install/setup.bash
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
export CYCLONEDDS_URI='<CycloneDDS><Domain><General><Interfaces>
  <NetworkInterface name="enp3s0" priority="default" multicast="default" />
</Interfaces></General></Domain></CycloneDDS>'

Ratkaiseva rivi on RMW_IMPLEMENTATION=rmw_cyclonedds_cpp: Humblen oletusväliohjelmisto on toinen, ja ilman tätä muuttujaa PC ei näe robottia. ROS 2 -dokumentaatio kertoo, miten DDS-väliohjelmisto valitaan. Ilman kytkettyä robottia voit käyttää tiedostoa setup_local.sh, joka toimii loopback-liitännässä.

Ensimmäinen topic

source ~/unitree_ros2/setup.sh
ros2 topic list
ros2 topic echo /sportmodestate

Go2:ssa ja B2:ssa /sportmodestate kertoo sijainnin, nopeuden ja askellajin; /lowstate kertoo moottorien, IMU:n ja akun tilan. Esimerkkien kääntäminen ja ajaminen:

cd ~/unitree_ros2/example
colcon build
./install/unitree_ros2_example/bin/read_motion_state

README näyttää myös, miten Go2:n LiDARin pistepilvi visualisoidaan RViz2:ssa topicista utlidar/cloud koordinaatistossa utlidar_lidar.

Ohjaus: korkea taso ja matala taso

  • Korkea taso (Go2, B2): pyynnöt topiciin /api/sport/request unitree_api-viesteinä, jotka esimerkkien SportClient-luokka muodostaa. Robotti käyttää omaa liikkeenohjaustaan.
  • Matala taso: asento-, nopeus-, vääntömomentti- ja vahvistuskomennot topiciin /lowcmd. Sisäänrakennettu liikepalvelu on ensin kytkettävä pois, muuten komennot menevät päällekkäin. Humanoideissa debug-tilaan siirrytään yhdistelmällä L2+R2 robotin roikkuessa nostimessa: koko menettely on oppaassa G1:n ohjelmointi.

Simuloi ennen laitteistoa

unitree_mujoco on virallinen MuJoCoon perustuva simulaattori: se hyväksyy ohjelmat, jotka on kirjoitettu unitree_sdk2:lla, unitree_sdk2_python:lla ja unitree_ros2:lla, ja käyttää samoja low-level-viestejä kuin oikea robotti. Suositeltu työnkulku on kehittää simulaatiossa loopbackin kautta ja ajaa sitten sama koodi robotissa vaihtamalla vain verkkoliitäntä. Liikkumisen policyille on unitree_rl_gym (Go2, G1, H1, H1-2).

Yleisimmät virheet

  • Ei yhtään topicia: RMW:tä ei ole asetettu, setup.sh:ssa on väärä liitäntä tai PC on aliverkon ulkopuolella. README suosittelee myös PC:n uudelleenkäynnistystä ensimmäisen määrityksen jälkeen.
  • CycloneDDS:n kääntäminen epäonnistuu Foxyssa: terminaaliin oli jo ladattu /opt/ros/foxy/setup.bash; kommentoi rivi pois tiedostosta ~/.bashrc ja avaa terminaali uudelleen.
  • Useita ROS-asennuksia samassa PC:ssä: älä lisää setup.sh:ta tiedostoon ~/.bashrc, vaan lataa se käsin tarvittaessa.

Yliopistojen laboratorioille Abra Robotics toimittaa EDU-malleja Suomeen englanninkielisellä tuella ja tarjoaa SDK-koulutusta ja -kehitystä erillisinä palveluina: katso Yliopistot ja tutkimus ja Ohjelmistot. Kehittäjäversioiden tuotesivut ovat Go2 EDU ja G1 EDU.

Usein kysytyt kysymykset

Mitä ROS 2 -versiota Unitree-robottien kanssa kannattaa käyttää?

Humblea Ubuntu 22.04:ssä: Unitree suosittelee tätä yhdistelmää unitree_ros2:n README-tiedostossa. Foxy Ubuntu 20.04:ssä on testattu, mutta sen tuki päättyi 20. kesäkuuta 2023. Humblea tuetaan toukokuuhun 2027 asti.

Voiko Go2 Airia tai Prota käyttää ROS 2:n kanssa?

Ei. Go2:n virallisessa taulukossa jatkokehitys on mahdollista EDU-versiossa; Air ja Pro eivät sisällä sitä. ROS 2:ta varten tarvitaan Go2 EDU.

Tarvitaanko SDK:n ja ROS 2:n välille silta?

Ei. Sekä robotti että ROS 2 käyttävät DDS:ää, joten unitree_ros2:n ja CycloneDDS-väliohjelmiston avulla robotin viestit näkyvät suoraan ROS 2 -topiceina ilman käännössolmuja.

Miksi ros2 topic list ei näytä robotin topiceja?

Yleisimpiä syitä on kolme: RMW_IMPLEMENTATION ei ole asetettu arvoon rmw_cyclonedds_cpp, setup.sh:ssa on väärä verkkoliitännän nimi tai PC:tä ei ole määritetty aliverkkoon 192.168.123.x. Tarkista setup.sh uudelleen ja pingaa robottia.

Voiko ROS 2:ta käyttää ilman kytkettyä robottia?

Kyllä. unitree_ros2 sisältää tiedoston setup_local.sh, joka käyttää loopback-liitäntää, ja unitree_mujoco simuloi robottia samoilla viesteillä: voit kehittää ja testata simulaatiossa ennen kuin kosket laitteistoon.

Lähteet

  1. Unitree, unitree_ros2, README ja esimerkit: github.com/unitreerobotics/unitree_ros2
  2. Unitree, unitree_sdk2: github.com/unitreerobotics/unitree_sdk2
  3. Unitree, unitree_mujoco: github.com/unitreerobotics/unitree_mujoco
  4. Unitree, unitree_rl_gym: github.com/unitreerobotics/unitree_rl_gym
  5. Unitree, Go2:n ja G1:n tuotesivut (jatkokehitys vain EDU-versiossa): unitree.com/go2 · unitree.com/g1
  6. Unitree Document Center, kehittäjäosio: support.unitree.com/home/en/developer
  7. ROS 2 Documentation, jakelut ja tuen päättymispäivät: docs.ros.org/en/humble/Releases.html
  8. ROS 2 Documentation, Humblen asennus Debian-paketeista: docs.ros.org
  9. ROS 2 Documentation, DDS-väliohjelmisto ja RMW: docs.ros.org

Tarvitsetko EDU-robotin laboratorioon?

Toimitamme Go2 EDU-, G1 EDU- ja B2-robotit valmiiksi määritettyinä, ja SDK- ja ROS 2 -koulutus on saatavilla erillisenä palveluna.

EDU-robotit yliopistoille ja tutkimukseenPyydä tarjous