Die SDK-Repositories enthalten lauffähige Beispielprogramme – ideal, um Verbindung, Sensordaten und Steuerung Schritt für Schritt auszuprobieren. Dieser Walkthrough zeigt das Vorgehen für C++ und Python und empfiehlt eine sichere Reihenfolge.
Hinweis: Pfade und Dateinamen der Beispiele sind illustrativ und können je nach SDK-Version abweichen – maßgeblich ist das jeweilige Repository.
Schritt 1: Netzwerkschnittstelle ermitteln
ip a
Notieren Sie den Namen der mit dem Roboter verbundenen Schnittstelle (z. B. eth0). Fast alle Beispiele erwarten ihn als Startargument.
Schritt 2 (C++): Bauen und starten
git clone https://github.com/unitreerobotics/unitree_sdk2.git
cd unitree_sdk2
mkdir build && cd build
cmake ..
make
# Beispiel starten (Binary im build-Verzeichnis), Interface als Argument:
./example_go2_sport_client eth0
Schritt 2 (Python): Installieren und starten
git clone https://github.com/unitreerobotics/unitree_sdk2_python.git
cd unitree_sdk2_python
pip install -e .
# Beispiel aus dem example-Ordner starten, Interface als Argument:
python3 example/go2/high_level/sport_client_example.py eth0
Schritt 3: Sichere Reihenfolge
- Zuerst lesen: Starten Sie ein Beispiel, das nur den Roboterzustand ausliest (z. B. Low-State oder Bewegungszustand). So prüfen Sie die Verbindung gefahrlos.
- Dann High-Level: ein Bewegungsbeispiel (aufstehen, kurze Bewegung) auf freier Fläche.
- Erst zuletzt Low-Level: direkte Motoransteuerung nur mit aufgebocktem Roboter.
Beispiel: Zustand auslesen (Python, Auszug)
import sys
from unitree_sdk2py.core.channel import ChannelFactoryInitialize, ChannelSubscriber
from unitree_sdk2py.idl.unitree_go.msg.dds_ import LowState_
def on_state(msg: LowState_):
print("IMU/Quaternion:", msg.imu_state.quaternion)
ChannelFactoryInitialize(0, sys.argv[1]) # z. B. eth0
sub = ChannelSubscriber("rt/lowstate", LowState_)
sub.Init(on_state, 10)
while True:
pass
Ein reines Lese-Beispiel wie dieses ist der beste erste Test – es bewegt nichts und bestätigt, dass Daten ankommen.
Bei Problemen
Keine Daten? Prüfen Sie Kabel, IP-Adresse und Schnittstellennamen (siehe Anleitung „Häufige Fragen & Fehlerbehebung“).
Weiterführend
Konkrete Beispiel-Dateien und aktuelle Pfade: offizielle Unitree-Doku sowie die Repositories unitree_sdk2 und unitree_sdk2_python.
