Unitree-robotter leveret fra Italien · support på engelsk

Prices Find the right robot Financing
About us Book a call
Unitree Go2 EDU, platform til udvikling med ROS 2

ROS 2 · Udvikling

ROS 2 på Unitree-robotter: fra nul til det første topic

Kort fortalt: Unitree-robotter kommunikerer via DDS, samme middleware som ROS 2. Med den officielle pakke unitree_ros2, ROS 2 Humble på Ubuntu 22.04 og CycloneDDS bliver robottens beskeder til ROS 2-topics uden bridge. Du skal bruge en EDU-version af robotten, et Ethernet-kabel og en pc på subnettet 192.168.123.x.

ROS 2 på Unitree-robotter virker uden reverse engineering og uden oversættelsesnoder: robotten publicerer sine data på DDS (CycloneDDS), og ROS 2 bruger DDS som kommunikationslag. Den officielle pakke unitree_ros2 indeholder beskeddefinitionerne og miljøscripts. Denne guide opsummerer fremgangsmåden fra den officielle README og peger på de steder, hvor man typisk går i stå.

Hvilke Unitree-robotter understøtter ROS 2

Softwareudvikling er kun mulig på udviklerversionerne. For Go2 angiver den officielle produktside sekundær udvikling på EDU-versionen, ikke på Air og Pro; for G1 gælder det samme med G1 EDU.

RobotBeskeder i unitree_ros2ROS 2-eksempler i repositoriet
Go2 EDUunitree_gosport client, stand, robottilstand, low-level
B2 / B2Wunitree_golow-level, aflæsning af tilstand
G1 EDUunitree_hgg1_low_level_example
H2eksempelmappen h2findes i repositoriet
H1 / H1-2unitree_go / unitree_hglow-level H1-2

For R1 og A2 indeholder unitree_sdk2 i oktober 2026 egne C++-eksempler, men unitree_ros2 har endnu ingen specifikke eksempler. Før du køber til et rent ROS 2-projekt på disse modeller, bør du tjekke repositoriets status.

Produkter nævnt i artiklenEDU-robotter til forskning

Krav: Ubuntu og ROS 2-version

README'en til unitree_ros2 nævner to testede kombinationer:

  • Ubuntu 22.04 + ROS 2 Humble, angivet som anbefalet;
  • Ubuntu 20.04 + ROS 2 Foxy.

Ifølge oversigten over ROS 2-udgivelser nåede Foxy end of life den 20. juni 2023, mens Humble understøttes til maj 2027 og Jazzy til maj 2029. For et projekt, der starter i dag, er Humble det praktiske valg; Jazzy er ikke blandt de kombinationer, Unitree har testet. ROS 2 Humble installeres fra Debian-pakker efter den officielle vejledning.

Installation af unitree_ros2 trin for trin

1. Klon repositoriet og installer afhængighederne (med Humble erstatter 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. Kun med Foxy: kompilér CycloneDDS 0.10.x i workspacet cyclonedds_ws i en terminal, hvor ROS 2 ikke er indlæst. Robotten bruger CycloneDDS 0.10.2; med Humble er dette trin ikke nødvendigt.

3. Kompilér beskedpakkerne (unitree_go, unitree_hg, unitree_api):

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

Netværk og CycloneDDS

Forbind pc'en med robotten med et Ethernet-kabel. I interfacets indstillinger sætter du IPv4 til manuel med adressen 192.168.123.99 og masken 255.255.255.0, som README'en angiver. Find interfacets navn med ifconfig eller ip a (for eksempel enp3s0), og skriv det ind 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 afgørende linje er RMW_IMPLEMENTATION=rmw_cyclonedds_cpp: Humbles standard-middleware er en anden, og uden denne variabel kan pc'en ikke se robotten. ROS 2-dokumentationen forklarer, hvordan man vælger DDS-middleware. Uden tilsluttet robot kan du bruge setup_local.sh, som arbejder på loopback-interfacet.

Første topic

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

På Go2 og B2 viser /sportmodestate position, hastighed og gangart; /lowstate viser motorer, IMU og batteri. Sådan kompilerer og kører du eksemplerne:

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

README'en viser også, hvordan du visualiserer punktskyen fra Go2's LiDAR i RViz2 på topic'et utlidar/cloud med framen utlidar_lidar.

Styring: højt niveau og lavt niveau

  • Højt niveau (Go2, B2): requests på /api/sport/request med unitree_api-beskeder, genereret af klassen SportClient i eksemplerne. Robotten bruger sin egen bevægelsesstyring.
  • Lavt niveau: kommandoer for position, hastighed, drejningsmoment og forstærkninger på /lowcmd. Først skal den indbyggede bevægelsestjeneste slås fra, ellers overlapper kommandoerne hinanden. På humanoiderne går man i debug mode med L2+R2, mens robotten hænger i ophænget: hele proceduren står i guiden programmering af G1.

Simulér før hardwaren

unitree_mujoco er den officielle simulator baseret på MuJoCo: den accepterer programmer skrevet med unitree_sdk2, unitree_sdk2_python og unitree_ros2, med de samme low-level-beskeder som den fysiske robot. Det anbefalede forløb er udvikling i simulering på loopback og derefter samme kode på robotten, hvor kun netværksinterfacet ændres. Til locomotion-politikker findes unitree_rl_gym (Go2, G1, H1, H1-2).

Typiske fejl

  • Ingen topics: RMW er ikke sat, forkert interface i setup.sh, eller pc'en er uden for subnettet. README'en anbefaler også at genstarte pc'en efter den første konfiguration.
  • Kompilering af CycloneDDS fejler på Foxy: terminalen havde allerede indlæst /opt/ros/foxy/setup.bash; kommentér linjen ud i ~/.bashrc, og åbn terminalen igen.
  • Flere ROS-installationer på samme pc: undgå at lægge setup.sh i ~/.bashrc, og indlæs den manuelt, når du har brug for den.

Til universitetslaboratorier leverer Abra Robotics Unitrees EDU-modeller i Danmark med support på engelsk og tilbyder træning og udvikling med SDK som separate ydelser: se Universiteter og forskning og Software. Produktsiderne for udviklerversionerne er Go2 EDU og G1 EDU.

Ofte stillede spørgsmål

Hvilken ROS 2-version skal man bruge med Unitree-robotter?

Humble på Ubuntu 22.04: det er den kombination, Unitree anbefaler i README'en til unitree_ros2. Foxy på Ubuntu 20.04 er testet, men nåede end of life den 20. juni 2023. Humble understøttes til maj 2027.

Kan Go2 Air eller Pro bruges med ROS 2?

Nej. I den officielle Go2-tabel er sekundær udvikling forbeholdt EDU-versionen; Air og Pro har det ikke. Til ROS 2 skal du bruge en Go2 EDU.

Skal man installere en bridge mellem SDK og ROS 2?

Nej. Robotten og ROS 2 bruger begge DDS, så med unitree_ros2 og CycloneDDS som middleware dukker robottens beskeder direkte op som ROS 2-topics uden oversættelsesnoder.

Hvorfor viser ros2 topic list ikke robottens topics?

Der er tre almindelige årsager: RMW_IMPLEMENTATION er ikke sat til rmw_cyclonedds_cpp, interfacets navn i setup.sh er forkert, eller pc'en er ikke konfigureret på 192.168.123.x. Tjek setup.sh igen, og ping robotten.

Kan man bruge ROS 2 uden tilsluttet robot?

Ja. unitree_ros2 indeholder setup_local.sh, som bruger loopback-interfacet, og unitree_mujoco simulerer robotten med de samme beskeder: du kan udvikle og teste i simulering, før du rører hardwaren.

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, produktsider for Go2 og G1 (sekundær udvikling kun på EDU): unitree.com/go2 · unitree.com/g1
  6. Unitree Document Center, udviklersektionen: support.unitree.com/home/en/developer
  7. ROS 2 Documentation, distributioner og datoer for end of life: docs.ros.org/en/humble/Releases.html
  8. ROS 2 Documentation, installation af Humble fra Debian-pakker: docs.ros.org
  9. ROS 2 Documentation, DDS-middleware og RMW: docs.ros.org

Har du brug for en EDU-robot til laboratoriet?

Vi leverer Go2 EDU, G1 EDU og B2 konfigureret, med træning i SDK og ROS 2 som separat ydelse.

EDU-robotter til universiteter og forskningFå et tilbud