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
Übersicht über die Datenerfassungspipeline →

Sind Sie bereit, Ihre erste humanoide Politik zu trainieren?

Sobald Sie hochwertige Demonstrationen gesammelt haben, begeben Sie sich zum Booster K1-Lernpfad für den vollständigen Trainings- und Bereitstellungsworkflow.