🧪 Neue Tutorials in Arbeit — vom Roboterarm bis zum Sensor
Zum Inhalt springen

04 · Tastatur-Teleoperation ​

Gelenke per Tastatur „schrittweise“ verfahren, um den realen oder simulierten Arm manuell zu steuern – die schnellste Steuerungsmethode, wenn kein Leader-Arm vorhanden ist, und zugleich ein Mittel zur Aufzeichnung von Demonstrationsdaten.

Voraussetzung: Für den Simulationsteil genügt 01; für den realen Roboter zusätzlich 03. COM172/juxi_so101 in den Befehlen sind Beispiele – den Port nach Prüfung gemäß Kapitel 03 ersetzen, für id den bei der Kalibrierung vergebenen Namen verwenden.

Befehl ​

bash
export UV_CACHE_DIR='C:\Users\admin\AppData\Local\Temp\uv-cache'

# 真机从动臂
uv run --frozen --with mujoco python examples/so101_mujoco/teleoperate.py \
    --robot.type=so101_follower --robot.port=COM172 --robot.id=juxi_so101 \
    --robot.use_degrees=false --robot.max_relative_target=5 \
    --teleop.type=so101_keyboard --teleop.rate=150

# 仿真从动臂(MuJoCo 窗口自动打开)
uv run --frozen --with mujoco python examples/so101_mujoco/teleoperate.py \
    --teleop.rate=150

(In teleoperate.py sind standardmäßig --robot.type=so101_mujoco --teleop.type=so101_keyboard eingestellt.)

Tasten (wirken beim Gedrückthalten, globale Überwachung – unabhängig vom fokussierten Fenster) ​

TasteAktionTasteAktion
w / sshoulder_lift hoch / runtera / zshoulder_pan links / rechts
e / delbow_flex strecken / beugent / gwrist_flex + / −
y / hwrist_roll + / −u / jGreifer öffnen / schließen

Die Tasten sind bewusst an den Aufzeichnungs-Steuertasten vorbei gewählt (n/r/q, Pfeiltasten, Esc), sodass Teleoperation und Aufzeichnung gleichzeitig laufen können.

Wichtige Parameter ​

ParameterWirkungEmpfohlener Wert
--teleop.rateZielgeschwindigkeit beim Gedrückthalten (Einheiten/Sekunde)Standard 60 ist eher langsam; am realen Roboter fühlt sich 150 passend an
--robot.max_relative_targetMaximale Bewegung des Gelenks pro Steuerzyklus (sichere Geschwindigkeitsbegrenzung)Realer Roboter 5 (60-Hz-Teleoperation) / 10 (30-Hz-Aufzeichnung)
--robot.use_degrees=falseWeganteils-System (−100 bis 100) statt Gradsystem verwendenAm realen Roboter zwingend, sonst passen die Einheiten nicht (Simulation ist standardmäßig konsistent)

Verhalten ​

  • Während der Teleoperation nicht tippen: Die Tastaturüberwachung ist global und schluckt keine Tasten – in jedem Fenster auf dem Computer lösen die belegten Tasten (w a s z e d t g y h u j, auch Pinyin in Chatfeldern) gleichzeitig den Arm aus. Im Leader-Arm-Modus gibt es dieses Problem nicht.
  • Der Arm bewegt sich beim Verbinden: Der reale Follower bekommt zuerst Drehmoment (wird steif) und fährt dann zur „Mittelstellung“ (Ziel vor dem Tastendruck); der simulierte Arm konvergiert direkt zur Mittelstellung. Platz in Reichweite freihalten.
  • Beenden: Ctrl-C im Terminal (oder Esc drücken; die Tastaturüberwachung trennt sich und beendet sauber). Danach verliert der reale Roboter das Drehmoment und wird weich – kurz festhalten, das ist normales Verhalten.
  • Die vielen clamped to be safe-WARNUNGEN im Startlog sind normale Ausgaben des Geschwindigkeitsbegrenzers beim „Aufholen“; nach Erreichen der Position hören sie automatisch auf.