Unitree G1 mit Noitom PN Studio vollständig fernsteuern

Mit dem Noitom PN Studio lässt sich der Unitree G1 per Ganzkörper-Motion-Capture in Echtzeit fernsteuern: Eine Person trägt den Inertial-Anzug, Axis Studio berechnet daraus ein Skelett, und dieses wird auf die 29 Gelenke des G1 übertragen (Beine, Hüfte/Taille, Arme, Handgelenke). So bewegt sich der Roboter 1:1 wie der Operator. Beide Systeme erhalten Sie bei der UxS GmbH – wir unterstützen bei Einrichtung und Integration.

Hinweis: Befehle, Pfade und Parameter sind illustrativ und versionsabhängig – maßgeblich sind die mitgelieferte SDK-Anleitung, die Noitom MocapApi sowie das Unitree-SDK.

Funktionsweise / Datenfluss

  1. PN Studio erfasst die Körperbewegung über die IMU-Sensoren.
  2. Axis Studio (Noitom-Software) berechnet daraus ein Skelett und sendet es als BVH-Datenstrom (UDP-Broadcast).
  3. Auf dem Steuerrechner empfängt das Python-SDK den Stream über die MocapApi und rechnet das Skelett per Retargeting auf die Gelenkwinkel des G1 um (Konfiguration robots/unitree_g1_retarget.json).
  4. Die Gelenkbefehle werden über unitree_sdk2py (DDS) an den G1 gesendet.

Voraussetzungen

  • Noitom PN Studio, korrekt angelegt und in Axis Studio kalibriert.
  • Axis Studio auf einem (Windows-)Rechner.
  • Steuerrechner mit Linux (Ubuntu, Python 3.7+) – kann ein separater PC oder der Onboard-Rechner des G1 sein.
  • Das Mocap-SDK (mocap_sdk_python4linux) inkl. passender MocapApi-Bibliothek (lib/librobotapi_x86-64.so bzw. …_arm64.so).
  • unitree_sdk2py für die Roboteransteuerung und eine funktionierende Netzwerkverbindung zum G1 (siehe auch SDK-Einstieg).
  • Alle Geräte im selben Netzwerk.

Schritt 1: PN Studio kalibrieren

Legen Sie den Anzug an, verbinden Sie ihn mit Axis Studio und führen Sie die Kalibrierung (Pose-Kalibrierung) durch, bis das Skelett der Person sauber folgt.

Schritt 2: BVH-Broadcast in Axis Studio konfigurieren

Unter Settings → BVH Data Broadcast aktivieren und wie folgt einstellen:

  • Frame Format: Binary
  • Skeleton: Axis Studio
  • Rotation: YXZ (muss mit dem Skript übereinstimmen)
  • Displacement: aktiviert (Positionsdaten)
  • Protocol: UDP
  • Target address: IP des Steuerrechners : 7012

Schritt 3: Steuerrechner vorbereiten

# SDK auf den Linux-Rechner kopieren
scp -r mocap_sdk_python4linux/ user@192.168.x.x:~/

# passende Bibliothek pruefen (x86_64 -> ...x86-64.so, aarch64 -> ...arm64.so)
uname -m

# Roboter-SDK installieren
pip install unitree_sdk2py

# Firewall: UDP-Port 7012 freigeben
sudo ufw allow 7012/udp

Schritt 4: Datenempfang testen (ohne Roboter)

Zuerst nur den Datenempfang prüfen – der Roboter wird dabei nicht bewegt:

cd ~/mocap_sdk_python4linux
python3 mocap_receiver.py --mode udp --port 7012 --display simple
# alternativ gefuehrt: ./start.sh

Erscheinen laufende Frames mit Avatar und Gelenkzahl (z. B. „Joints: 59″), ist die Mocap-Strecke bereit. Bei Problemen: Broadcast aktiv? Ziel-IP/Port korrekt? Rotation YXZ? Firewall offen?

Schritt 5: Retargeting auf den G1 starten

Jetzt das Skelett auf die G1-Gelenke übertragen. Vor dem ersten Start die Sicherheitshinweise unten lesen und den Roboter sichern.

# UDP-Modus (Axis Studio sendet an Port 7012)
python3 mocap_to_g1.py --mode udp --port 7012

# Direktverbindung zum PN-Link-Geraet (ohne Axis-Studio-PC)
python3 mocap_to_g1.py --mode direct --local-ip 10.42.0.101 --server-ip 10.42.0.202

Das Skript lädt die Retargeting-Konfiguration (robots/unitree_g1_retarget.json) und bildet das Mocap-Skelett auf die 29 G1-Gelenke ab (Hüfte, Knie, Sprunggelenke, Taille, Schultern, Ellbogen, Handgelenke). Die Übergabe an den Roboter erfolgt über unitree_sdk2py; achten Sie darauf, dass die richtige Netzwerk-Schnittstelle zum G1 verwendet wird.

Sicherheit (unbedingt beachten)

Warnung: Das direkte Bespielen aller Gelenke – insbesondere der Beine – kann einen frei stehenden Humanoiden zum Sturz bringen, da die Eigenbalance umgangen wird. Beginnen Sie ausschließlich mit gesichertem Roboter.

  • Roboter beim Einrichten an einem Gestell/Gurt aufhängen, Füße frei.
  • Zunächst nur den Oberkörper (Arme/Taille) teleoperieren; die Lokomotion/Balance über den eigenen Regler des G1 laufen lassen.
  • Großzügigen Freiraum schaffen, keine Personen im Aktionsradius.
  • Eine zweite Person mit griffbereitem Not-Aus.
  • Mit kleinen, langsamen Bewegungen beginnen und schrittweise steigern.

Weiterführend

Alternative ohne Anzug: G1 per XR/VR teleoperieren. Grundlagen: G1-Armsteuerung, Unitree SDK-Einstieg. Mocap-API: pnmocap/MocapApi. Bei Fragen zur Einrichtung unterstützt Sie die UxS GmbH: Kontakt aufnehmen.