Unitree Roboter mit Lieferung aus Italien · Support auf Englisch

Prices Find the right robot Financing
About us Book a call
Unitree Go2 EDU, Plattform für die Entwicklung mit ROS 2

ROS 2 · Entwicklung

ROS 2 auf Unitree Robotern: von null zum ersten Topic

Kurz gesagt: Unitree Roboter kommunizieren über DDS, dieselbe Middleware, die auch ROS 2 nutzt. Mit dem offiziellen Paket unitree_ros2, ROS 2 Humble unter Ubuntu 22.04 und CycloneDDS werden die Nachrichten des Roboters ohne Bridge zu ROS 2 Topics. Sie brauchen eine EDU-Version des Roboters, ein Ethernet-Kabel und einen PC im Subnetz 192.168.123.x.

ROS 2 auf Unitree Robotern funktioniert ohne Reverse Engineering und ohne Übersetzungsknoten: Der Roboter veröffentlicht seine Daten über DDS (CycloneDDS), und ROS 2 verwendet DDS als Kommunikationsschicht. Das offizielle Paket unitree_ros2 liefert die Nachrichtendefinitionen und die Konfigurationsskripte. Die Schritte unten folgen dem offiziellen README.

Welche Unitree Roboter ROS 2 unterstützen

Softwareentwicklung ist nur auf den Entwicklerversionen vorgesehen. Beim Go2 sieht das offizielle Datenblatt den SDK-Zugang für eigene Softwareentwicklung bei der EDU-Version vor, nicht bei Air und Pro; beim G1 gilt dasselbe mit dem G1 EDU.

RoboterNachrichten in unitree_ros2ROS 2 Beispiele im Repository
Go2 EDUunitree_goSport Client, Stand, Roboterstatus, Low-Level-Steuerung
B2 / B2Wunitree_goSport Client, Stand
G1 EDUunitree_hgg1_low_level_example
H2unitree_hgh2_loco_client (High-Level), h2_ankle_swing_example (Low-Level)
H1 / H1-2unitree_go / unitree_hgLow-Level-Steuerung H1-2

Für R1 und A2 enthält unitree_sdk2 im Oktober 2026 eigene C++-Beispiele, unitree_ros2 hat aber noch keine spezifischen Beispiele. Bevor Sie für ein reines ROS 2 Projekt eines dieser Modelle kaufen, prüfen Sie den aktuellen Stand des Repositorys.

Im Artikel erwähnte ProdukteEDU-Roboter für die Forschung

Voraussetzungen: Ubuntu und ROS 2 Version

Das README von unitree_ros2 nennt zwei getestete Kombinationen:

  • Ubuntu 22.04 + ROS 2 Humble, als empfohlen gekennzeichnet;
  • Ubuntu 20.04 + ROS 2 Foxy.

Laut der Übersicht der ROS 2 Releases hat Foxy am 20. Juni 2023 das Ende des Supports erreicht, Humble wird bis Mai 2027 unterstützt und Jazzy bis Mai 2029. Für ein Projekt, das heute startet, ist Humble die praktische Wahl; Jazzy gehört nicht zu den von Unitree getesteten Kombinationen. ROS 2 Humble installieren Sie aus Debian-Paketen nach der offiziellen Anleitung.

unitree_ros2 Schritt für Schritt installieren

1. Klonen Sie das Repository und installieren Sie die Abhängigkeiten. Die Befehle gelten für Humble; bei Foxy ersetzen Sie humble durch foxy:

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. Nur bei Foxy: Kompilieren Sie CycloneDDS 0.10.x im Workspace cyclonedds_ws, in einem Terminal, in dem ROS 2 nicht geladen wurde. Der Roboter verwendet CycloneDDS 0.10.2; mit Humble entfällt dieser Schritt.

3. Kompilieren Sie die Nachrichtenpakete (unitree_go, unitree_hg, unitree_api):

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

Netzwerk und CycloneDDS

Verbinden Sie den PC per Ethernet-Kabel mit dem Roboter. Stellen Sie in den Einstellungen der Schnittstelle IPv4 manuell ein, Adresse 192.168.123.99, Netzmaske 255.255.255.0, wie im README angegeben. Mit ifconfig oder ip a finden Sie den Namen der Schnittstelle (zum Beispiel enp3s0) und tragen ihn in ~/unitree_ros2/setup.sh ein:

#!/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>'

Entscheidend ist die Zeile RMW_IMPLEMENTATION=rmw_cyclonedds_cpp: Humble verwendet standardmäßig eine andere Middleware, und ohne diese Variable sieht der PC den Roboter nicht. Wie man die DDS-Middleware auswählt, erklärt die ROS 2 Dokumentation. Ohne angeschlossenen Roboter können Sie setup_local.sh verwenden, das über die Loopback-Schnittstelle arbeitet.

Das erste Topic

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

Auf Go2 und B2 liefert /sportmodestate Position, Geschwindigkeit und Gangart; /lowstate liefert Motoren, IMU und Akku. So kompilieren und starten Sie die Beispiele:

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

Das README zeigt außerdem, wie Sie die Punktwolke des Go2 LiDAR in RViz2 darstellen, auf dem Topic utlidar/cloud mit dem Frame utlidar_lidar.

Steuerung: High-Level und Low-Level

  • High-Level (Go2, B2): Anfragen auf /api/sport/request mit unitree_api Nachrichten, erzeugt von der Klasse SportClient aus den Beispielen. Der Roboter nutzt dabei seine eigene Bewegungssteuerung.
  • Low-Level: Befehle für Position, Geschwindigkeit, Drehmoment und Verstärkungen auf /lowcmd. Vorher muss der integrierte Bewegungsdienst deaktiviert werden, sonst überlagern sich die Befehle. Bei den Humanoiden wechseln Sie mit L2+R2 in den Debug Mode, während der Roboter hängt: Das vollständige Vorgehen steht in der Anleitung G1 programmieren.

Erst simulieren, dann die Hardware

unitree_mujoco ist der offizielle Simulator auf Basis von MuJoCo: Er akzeptiert Programme, die mit unitree_sdk2, unitree_sdk2_python und unitree_ros2 geschrieben sind, mit denselben Low-Level-Nachrichten wie der echte Roboter. Entwickelt wird in der Simulation über die Loopback-Schnittstelle; danach läuft derselbe Code auf dem Roboter, nur die Netzwerkschnittstelle ändert sich. Für Laufpolicies gibt es unitree_rl_gym (Go2, G1, H1, H1-2).

Häufige Fehler

  • Keine Topics: RMW nicht gesetzt, falsche Schnittstelle in setup.sh oder PC außerhalb des Subnetzes. Das README empfiehlt außerdem, den PC nach der ersten Konfiguration neu zu starten.
  • Kompilierung von CycloneDDS unter Foxy schlägt fehl: Im Terminal war bereits /opt/ros/foxy/setup.bash geladen; kommentieren Sie die Zeile in ~/.bashrc aus und öffnen Sie das Terminal neu.
  • Mehrere ROS-Installationen auf demselben PC: Tragen Sie setup.sh nicht in ~/.bashrc ein, sondern laden Sie es bei Bedarf von Hand.

Für Hochschullabore liefert Abra Robotics die Unitree EDU-Modelle nach Deutschland, Österreich und in die Schweiz, mit Support auf Englisch, und bietet Schulung und SDK-Entwicklung als separate Leistungen an: siehe Hochschulen und Forschung und Software.

Häufige Fragen

Welche ROS 2 Version sollte ich mit Unitree Robotern verwenden?

Humble unter Ubuntu 22.04, die von Unitree empfohlene Kombination, unterstützt bis Mai 2027. Foxy ist getestet, wird aber seit Juni 2023 nicht mehr unterstützt.

Lässt sich der Go2 Air oder Pro mit ROS 2 verwenden?

Nein. Das SDK und damit ROS 2 gibt es nur beim Go2 EDU.

Muss ich eine Bridge zwischen SDK und ROS 2 installieren?

Nein. Roboter und ROS 2 sprechen beide DDS: Mit unitree_ros2 und CycloneDDS sind die Nachrichten des Roboters bereits ROS 2 Topics.

Warum zeigt ros2 topic list die Topics des Roboters nicht an?

Meist fehlt RMW_IMPLEMENTATION=rmw_cyclonedds_cpp, die Schnittstelle in setup.sh ist falsch, oder der PC liegt nicht im Subnetz 192.168.123.x. Ein Ping an den Roboter klärt den dritten Fall.

Kann ich ROS 2 ohne angeschlossenen Roboter nutzen?

Ja, mit setup_local.sh auf der Loopback-Schnittstelle und mit dem Simulator unitree_mujoco, der dieselben Nachrichten wie der Roboter verwendet.

Quellen

  1. Unitree, unitree_ros2, README und Beispiele: 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, Produktseiten Go2 und G1 (SDK nur bei den EDU-Versionen): unitree.com/go2 · unitree.com/g1
  6. Unitree Document Center, Bereich für Entwickler: support.unitree.com/home/en/developer
  7. ROS 2 Documentation, Distributionen und Support-Enddaten: docs.ros.org/en/humble/Releases.html
  8. ROS 2 Documentation, Installation von Humble aus Debian-Paketen: docs.ros.org
  9. ROS 2 Documentation, DDS-Middleware und RMW: docs.ros.org

Brauchen Sie einen EDU-Roboter für Ihr Labor?

Wir liefern Go2 EDU, G1 EDU und B2 konfiguriert, mit Schulung zu SDK und ROS 2 als separater Leistung.

EDU-Roboter für Hochschulen und ForschungAngebot anfragen