Unitree-roboter levert fra Italia · støtte på engelsk

Prices Find the right robot Financing
About us Book a call
Unitree Go2 EDU, plattform for utvikling med ROS 2

ROS 2 · Utvikling

ROS 2 på Unitree-roboter: fra null til første topic

Kort fortalt: Unitree-robotene kommuniserer via DDS, samme mellomvare som ROS 2. Med den offisielle pakken unitree_ros2, ROS 2 Humble på Ubuntu 22.04 og CycloneDDS blir meldingene fra roboten til ROS 2-topics uten bro. Du trenger en EDU-versjon av roboten, en Ethernet-kabel og en PC på subnettet 192.168.123.x.

ROS 2 på Unitree-roboter fungerer uten reverse engineering og uten oversettelsesnoder: roboten publiserer dataene sine over DDS (CycloneDDS), og ROS 2 bruker DDS som kommunikasjonslag. Den offisielle pakken unitree_ros2 inneholder meldingsdefinisjonene og miljøskriptene. Denne guiden oppsummerer fremgangsmåten i den offisielle README-filen, med stedene der folk vanligvis står fast.

Hvilke Unitree-roboter som støtter ROS 2

Programvareutvikling er bare mulig på utviklerversjonene. For Go2 oppgir det offisielle produktarket sekundærutvikling på EDU-versjonen, ikke på Air og Pro. For G1 gjelder det samme med G1 EDU.

RobotMeldinger i unitree_ros2ROS 2-eksempler i repositoriet
Go2 EDUunitree_gosport client, stå opp, robotstatus, lavnivå
B2 / B2Wunitree_golavnivå, lesing av status
G1 EDUunitree_hgg1_low_level_example
H2eksempelmappen h2finnes i repositoriet
H1 / H1-2unitree_go / unitree_hglavnivå H1-2

For R1 og A2 har unitree_sdk2 egne C++-eksempler per oktober 2026, men unitree_ros2 har ennå ingen egne eksempler. Skal du kjøpe til et rent ROS 2-prosjekt på disse modellene, bør du sjekke status i repositoriet først.

Produkter nevnt i artikkelenEDU-roboter for forskning

Krav: Ubuntu og ROS 2-versjon

README-filen til unitree_ros2 oppgir to testede kombinasjoner:

  • Ubuntu 22.04 + ROS 2 Humble, oppgitt som anbefalt;
  • Ubuntu 20.04 + ROS 2 Foxy.

Ifølge oversikten over ROS 2-utgivelser nådde Foxy slutten av støtteperioden 20. juni 2023, mens Humble støttes til mai 2027 og Jazzy til mai 2029. For et prosjekt som starter i dag, er Humble det praktiske valget. Jazzy er ikke blant kombinasjonene Unitree har testet. ROS 2 Humble installeres fra Debian-pakker etter den offisielle veiledningen.

Installere unitree_ros2 trinn for trinn

1. Klon repositoriet og installer avhengighetene (med Humble bytter du foxy med 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. Bare med Foxy: kompiler CycloneDDS 0.10.x i arbeidsområdet cyclonedds_ws, i en terminal der ROS 2 ikke er lastet. Roboten bruker CycloneDDS 0.10.2. Med Humble trengs ikke dette trinnet.

3. Kompiler meldingspakkene (unitree_go, unitree_hg, unitree_api):

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

Nettverk og CycloneDDS

Koble PC-en til roboten med en Ethernet-kabel. I innstillingene for grensesnittet setter du manuell IPv4, adresse 192.168.123.99 og nettmaske 255.255.255.0, slik README-filen sier. Finn navnet på grensesnittet med ifconfig eller ip a (for eksempel enp3s0) og legg det inn i ~/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>'

Den avgjørende linjen er RMW_IMPLEMENTATION=rmw_cyclonedds_cpp: Humble har en annen standard mellomvare, og uten denne variabelen ser ikke PC-en roboten. ROS 2-dokumentasjonen forklarer hvordan du velger DDS-mellomvare. Uten tilkoblet robot kan du bruke setup_local.sh, som går over loopback-grensesnittet.

Første topic

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

På Go2 og B2 gir /sportmodestate posisjon, hastighet og gangart, mens /lowstate gir motorer, IMU og batteri. Slik kompilerer og kjører du eksemplene:

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

README-filen viser også hvordan du ser punktskyen fra LiDAR-en på Go2 i RViz2, på topicen utlidar/cloud med rammen utlidar_lidar.

Styring: høyt nivå og lavt nivå

  • Høyt nivå (Go2, B2): forespørsler på /api/sport/request med unitree_api-meldinger, laget av klassen SportClient i eksemplene. Roboten bruker sin egen bevegelseskontroll.
  • Lavt nivå: kommandoer for posisjon, hastighet, moment og forsterkning på /lowcmd. Først må den innebygde bevegelsestjenesten slås av, ellers kolliderer kommandoene. På humanoidene går du i debug mode med L2+R2 mens roboten henger: hele fremgangsmåten står i guiden programmere G1.

Simuler før du bruker maskinvaren

unitree_mujoco er den offisielle simulatoren basert på MuJoCo. Den tar imot programmer skrevet med unitree_sdk2, unitree_sdk2_python og unitree_ros2, med de samme lavnivåmeldingene som den virkelige roboten. Anbefalt arbeidsflyt er å utvikle i simulering over loopback og deretter kjøre samme kode på roboten ved å bytte nettverksgrensesnitt. For gangpolicyer finnes unitree_rl_gym (Go2, G1, H1, H1-2).

Vanlige feil

  • Ingen topics: RMW er ikke satt, feil grensesnitt i setup.sh, eller PC-en er utenfor subnettet. README-filen anbefaler også å starte PC-en på nytt etter første oppsett.
  • Kompilering av CycloneDDS feiler på Foxy: terminalen hadde allerede lastet /opt/ros/foxy/setup.bash. Kommenter ut linjen i ~/.bashrc og åpne terminalen på nytt.
  • Flere ROS-installasjoner på samme PC: ikke legg setup.sh i ~/.bashrc, men last den manuelt når du trenger den.

For universitetslaboratorier leverer Abra Robotics EDU-modellene i Unitree-sortimentet i Norge, med support på engelsk, og tilbyr opplæring og SDK-utvikling som egne tjenester: se Universiteter og forskning og Programvare. Produktsidene for utviklerversjonene er Go2 EDU og G1 EDU.

Ofte stilte spørsmål

Hvilken ROS 2-versjon bør jeg bruke med Unitree-roboter?

Humble på Ubuntu 22.04: det er kombinasjonen Unitree anbefaler i README-filen til unitree_ros2. Foxy på Ubuntu 20.04 er testet, men nådde slutten av støtteperioden 20. juni 2023. Humble støttes til mai 2027.

Kan Go2 Air eller Pro brukes med ROS 2?

Nei. I den offisielle tabellen for Go2 er sekundærutvikling forbeholdt EDU-versjonen. Air og Pro har det ikke. For ROS 2 trenger du en Go2 EDU.

Må jeg installere en bro mellom SDK og ROS 2?

Nei. Både roboten og ROS 2 bruker DDS. Med unitree_ros2 og CycloneDDS som mellomvare dukker meldingene fra roboten opp direkte som ROS 2-topics, uten oversettelsesnoder.

Hvorfor viser ikke ros2 topic list topicene fra roboten?

Det er tre vanlige årsaker: RMW_IMPLEMENTATION er ikke satt til rmw_cyclonedds_cpp, navnet på nettverksgrensesnittet i setup.sh er feil, eller PC-en er ikke satt opp på 192.168.123.x. Sjekk setup.sh på nytt og ping roboten.

Kan jeg bruke ROS 2 uten at roboten er tilkoblet?

Ja. unitree_ros2 inneholder setup_local.sh, som bruker loopback-grensesnittet, og unitree_mujoco simulerer roboten med de samme meldingene. Du kan utvikle og teste i simulering før du rører maskinvaren.

Kilder

  1. Unitree, unitree_ros2, README og eksempler: 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, produktark for Go2 og G1 (sekundærutvikling bare på EDU): unitree.com/go2 · unitree.com/g1
  6. Unitree Document Center, utviklerseksjonen: support.unitree.com/home/en/developer
  7. ROS 2 Documentation, distribusjoner og datoer for slutt på støtte: docs.ros.org/en/humble/Releases.html
  8. ROS 2 Documentation, installasjon av Humble fra Debian-pakker: docs.ros.org
  9. ROS 2 Documentation, DDS-mellomvare og RMW: docs.ros.org

Trenger laboratoriet en EDU-robot?

Vi leverer Go2 EDU, G1 EDU og B2 ferdig konfigurert, med opplæring i SDK og ROS 2 som egen tjeneste.

EDU-roboter for universiteter og forskningBe om tilbud