Der G1 verfügt über zwei Arme mit mehreren Freiheitsgraden. Über die High-Level-Armsteuerung rufen Sie vordefinierte Arm-Aktionen (Gesten/Posen) ab, ohne jedes Gelenk einzeln zu regeln. Dieser Walkthrough zeigt das Vorgehen.
Hinweis: Beispielcode illustrativ; verfügbare Aktions-IDs und Klassennamen je nach SDK-Version – siehe README.
Konzept
Die High-Level-Armsteuerung kennt eine Reihe vordefinierter Aktionen (z. B. winken, Hände zusammenführen, Ausgangspose). Sie wählen eine Aktion per ID und der Controller führt die Bewegung aus. Für frei definierte Trajektorien nutzen Sie die Low-Level-Steuerung.
Voraussetzungen
- Programmierbare G1-Edu-Variante, installiertes SDK
- Roboter steht stabil oder ist gesichert
- Empfehlung: zuerst Locomotion in einen stabilen Stand bringen
Beispiel (Python)
import time, sys
from unitree_sdk2py.core.channel import ChannelFactoryInitialize
from unitree_sdk2py.g1.arm.g1_arm_action_client import G1ArmActionClient
ChannelFactoryInitialize(0, sys.argv[1]) # z. B. eth0
arm = G1ArmActionClient()
arm.SetTimeout(10.0)
arm.Init()
# Vordefinierte Arm-Aktion per ID ausfuehren (IDs siehe Doku/README):
arm.ExecuteAction(ACTION_ID_WINKEN)
time.sleep(3)
arm.ExecuteAction(ACTION_ID_AUSGANGSPOSE)
Die konkreten Aktions-IDs (z. B. Winken, Klatschen, Ausgangspose) sind in der offiziellen Doku bzw. im SDK definiert. Beginnen Sie mit einer einfachen Aktion und genügend Freiraum für die Arme.
Praxis-Tipps
- Vor Arm-Aktionen für sicheren Stand sorgen (oder Roboter aufhängen).
- Freiraum um die Arme schaffen; keine Personen in Reichweite.
- Zwischen Aktionen ausreichend Zeit lassen, bis die Bewegung abgeschlossen ist.
Weiterführend
Verfügbare Aktionen und exakte Signaturen: offizielle Unitree-G1-Doku und das unitree_sdk2_python-Repository.
