Datenerfassung
Die Erfassung humanoider Daten unterscheidet sich grundlegend von reinen Arm-Workflows. Der K1 verfügt über mehr als 22 Freiheitsgrade, muss während der Teleoperation das Gleichgewicht halten und erfordert eine synchronisierte multimodale Erfassung. Auf dieser Seite werden die Herausforderungen, Methoden, das Datensatzformat und das Sicherheitsprotokoll behandelt.
Herausforderungen bei der Erfassung humanoider Daten
Um qualitativ hochwertige Demonstrationen an einem Humanoiden in Originalgröße zu sammeln, müssen Herausforderungen bewältigt werden, die es auf Desktop-Armen nicht gibt.
Gleichgewicht während der Teleoperation
Der K1 muss das Gleichgewicht des gesamten Körpers aufrechterhalten, während der Bediener die Arme kontrolliert. Armbewegungen verlagern den Schwerpunkt und erfordern einen kontinuierlichen Ausgleich durch die Fortbewegungssteuerung. Schnelle Armbefehle können den Roboter destabilisieren.
Mehr hochdimensionaler Zustand
Der Ganzkörper-Gelenkzustand umfasst 22 DOF plus IMU, Kopfhaltung und optionalen Handzustand – mehr als 30 Dimensionen pro Zeitschritt. Datensatzdateien sind deutlich größer als reine Armdatensätze. Eine Lagerplanung ist unerlässlich.
Synchronisierung mehrerer Kameras
Für humanoide Aufgaben sind typischerweise egozentrische (am Kopf montierte) und exozentrische (externe) Kameras erforderlich. Die Synchronisierung mehrerer Videostreams mit gemeinsamer Telemetrie bei 50 Hz+ erfordert ein sorgfältiges Pipeline-Design.
Ermüdung des Bedieners
VR-basierte Ganzkörper-Teleoperationen sind körperlich anstrengend. Sitzungen, die länger als 30 Minuten pro Bediener dauern, beeinträchtigen die Qualität der Demonstration erheblich. Planen Sie bei erweiterten Sammelkampagnen eine Rotation der Bediener ein.
Teleoperationsmethoden für Humanoide
Für die Teleoperation des Oberkörpers werden zwei Hauptmethoden unterstützt. Die Fortbewegung erfolgt stets über Geschwindigkeitsbefehle per Gamepad oder autonom.
VR-Ganzkörper-Teleoperation Empfohlen
Verwendet Meta Quest 3 oder ein ähnliches VR-Headset, um die Kopf- und Handhaltung des Bedieners zu verfolgen. Die Kopf- und Armgelenke des K1 spiegeln die Bewegungen des Bedieners in Echtzeit wider. Bietet die natürlichsten und ausdrucksstärksten Demonstrationen.
Aufstellen: Quest 3 + SteamVR, k1_vr_teleop ROS2-Knoten, Bediener trägt Handschuhe zur Handverfolgung.
Latenz: ~20 ms Kopf, ~40 ms Arm Ende-zu-Ende.
Am besten für: Manipulationsaufgaben, Pick-and-Place, Ganzkörperlokomanipulation.
Leader-Follower-Oberkörper Fortschrittlich
Ein zweites Exoskelett oder Führungsarmsystem im menschlichen Maßstab spiegelt den Oberkörper des Nachfolgers K1 wider. Gelenkwinkel werden direkt vom Leader zum Follower abgebildet. Erfordert keine VR-Hardware.
Aufstellen: Erfordert ein kompatibles Führungsarmsystem (z. B. OpenArm-Bimanual-Kit oder kundenspezifisches Exoskelett). Wenden Sie sich für Partnerkonfigurationen an SVRC.
Am besten für: Präzise bimanuelle Manipulation, bei der es auf die Tracking-Genauigkeit ankommt.
Fortbewegung während der Teleoperation
Die Teleoperation des Oberkörpers wird typischerweise mit einer per Gamepad gesteuerten Fortbewegung kombiniert. Der Bediener steuert über ein kabelloses Gamepad die Gehgeschwindigkeit, während das VR-System die Arme und den Kopf steuert:
# Launch combined teleop: VR for upper body + gamepad for locomotion
ros2 launch k1_teleop k1_combined_teleop.launch.py \
vr_device:=quest3 \
gamepad:=xbox \
robot_ip:=192.168.10.102
Ganzkörper-Datensatzformat (30+ DoF)
Jede Episode zeichnet den synchronisierten Gelenkstatus, Kamerabilder und Metadaten auf. Das Format ist mit LeRobot- und HuggingFace-Datensätzen kompatibel.
Episodenstruktur
episode_000001/
joint_states.npy # [T, 44] — positions, velocities, torques for 22 joints
imu.npy # [T, 6] — accel (3) + gyro (3) from torso IMU
head_pose.npy # [T, 2] — yaw and pitch in radians
head_cam.mp4 # 1280x720 @ 30 fps, head-mounted egocentric
left_cam.mp4 # 1280x720 @ 30 fps, left wrist
right_cam.mp4 # 1280x720 @ 30 fps, right wrist
external_cam.mp4 # 1920x1080 @ 30 fps, fixed external view
timestamps.npy # [T] unix timestamps for joint_states
metadata.json # task name, operator, duration, success label
Gelenkzustandsschema (22 Gelenke × jeweils 2 Werte)
# joint_states.npy shape: [timesteps, 44]
# Columns: [q0_pos, q0_vel, q1_pos, q1_vel, ..., q21_pos, q21_vel]
# Joint index mapping:
# 0-5: Left leg (hip_pitch, hip_roll, hip_yaw, knee, ankle_pitch, ankle_roll)
# 6-11: Right leg (same order)
# 12: Waist (yaw)
# 13: Head yaw
# 14: Head pitch
# 15-21: Left arm (shoulder_pitch, shoulder_roll, shoulder_yaw,
# elbow_pitch, wrist_pitch, wrist_roll, wrist_yaw)
# 22-28: Right arm (same order)
# Note: total 29 joints in extended K1 config; base K1 has 22
Aufzeichnen einer Sitzung mit k1_agent.py
# Start the platform agent (streams telemetry to RoboticsCenter)
python k1_agent.py \
--robot-ip 192.168.10.102 \
--platform-url https://fearless-backend-533466225971.us-central1.run.app \
--record \
--task "pick up red block" \
--cameras head_cam,left_wrist,right_wrist,external
# Episodes auto-numbered and saved to ./recordings/
In das LeRobot-Format konvertieren
python convert_k1_to_lerobot.py \
--input-dir ./recordings/ \
--output-dir ./dataset/ \
--repo-id your-username/k1-pick-place
Sicherheitsprotokoll während der Datenerfassung
- ✓Es ist jederzeit ein Spotter erforderlich — Eine engagierte Person überwacht den Roboter und hält den Not-Aus-Schalter. Der Teleoperator kann nicht gleichzeitig die Sicherheit überwachen.
- ✓3 m × 3 m lichter Umfang – keine Umstehenden, keine Kabel, keine Ausrüstung im Betriebsbereich während einer Live-Sitzung.
- ✓Maximale Episodendauer: 60 Sekunden – Halten Sie die Episoden kurz. Kürzere Episoden lassen sich leichter qualitätsfiltern und verringern das Risiko eines längeren Betriebs.
- ✓30-minütiger Bedienerwechsel — Wechseln Sie die Teleoperatoren in VR-Sitzungen alle 30 Minuten. Ermüdung beeinträchtigt die Qualität der Demonstration und erhöht die Fehlerquote.
- ✓Bei jeder Instabilität sofort abbrechen und DAMP eingeben — Wenn der K1 unerwartete Schwingungen oder Abweichungen zeigt, betätigen Sie den Not-Aus-Schalter und starten Sie bei DAMP neu. Versuchen Sie nicht, manuell zu stabilisieren.
- ✓Protokollieren Sie alle Vorfälle — Dokumentieren Sie alle Stürze, Beinahe-Stürze oder abgebrochenen Episoden. Diese Daten sind nützlich für die Filterung der Datensatzqualität und für die Verbesserung von Sicherheitsverfahren.
Checkliste für die Episodenqualität
Überprüfen Sie jede Episode, bevor Sie sie Ihrem Trainingsdatensatz hinzufügen. Demonstrationen von schlechter Qualität werden Ihre Politik beeinträchtigen.
- ✓Die Aufgabe wurde Ende-zu-Ende erfolgreich abgeschlossen (keine Teilabschlüsse in den Trainingsdaten)
- ✓Der Roboter behielt die ganze Zeit über ein stabiles Gleichgewicht – kein Stolpern, Schwanken oder kompensatorische Rucke
- ✓Alle Kamerastreams verfügen über vollständige Bilder ohne ausgelassene Segmente
- ✓Gemeinsame Zustandszeitstempel sind kontinuierlich (keine Lücken > 25 ms bei 40-Hz-Aufzeichnung)
- ✓Die Demonstration erfolgt reibungslos und bewusst – nicht überstürzt, nicht überkorrigiert
- ✓Das Objekt und die Aufgabenszene sind durchgehend in mindestens zwei Kamerastreams sichtbar