Datenerfassung

Der komplette Aufnahme-Workflow für den LinkerBot O6. Leader-Follower-Teleoperation, LeRobot-Datensatzformat, Checkliste für die Episodenqualität und Links zur breiteren Datenerfassungspipeline.

Aufnahme-Workflow für das O6

Der komplette Prozess von der Bereitstellung der Hardware bis zur ersten Datensatzepisode. Befolgen Sie die Schritte der Reihe nach.

1

Hardware und CAN-Schnittstelle überprüfen

Stellen Sie sicher, dass der O6 montiert und eingeschaltet ist und die CAN-Schnittstelle aktiv ist. Laufen candump can0 und überprüfen Sie, ob Motor-Heartbeat-Pakete angezeigt werden, bevor Sie fortfahren.

2

Konfigurieren Sie das Aufgaben- und Kameralayout

Definieren Sie die Aufgabenbeschreibung, richten Sie die Kamera(s) im richtigen Winkel ein und platzieren Sie Aufgabenobjekte im Arbeitsbereich. Ein konsistenter Szenenaufbau über alle Episoden hinweg ist für die Verallgemeinerung der Richtlinien von entscheidender Bedeutung.

3

Starten Sie die Aufnahmesitzung

Starten Sie das LeRobot-Steuerungsskript mit record Modus. Dadurch wird das System für die Episodenaufzeichnung aktiviert. Die Sitzung wartet vor der Aufnahme auf Ihren Startauslöser.

python -m lerobot.scripts.control_robot \
  --robot.type=linkerbot_o6 \
  --control.type=record \
  --control.fps=30 \
  --control.repo_id=your-username/o6-task-name \
  --control.num_episodes=50 \
  --control.single_task="Pick up the blue block"
4

Teleoperieren und Episoden aufzeichnen

Verwenden Sie einen Führungsarm (oder Ihre Tastatur für einfache Tests), um den O6 fernzusteuern. Drücken Sie die Start-/Stopp-Taste, um jede Episode in Klammern zu setzen. Setzen Sie die Szene zwischen den Episoden aus Gründen der Konsistenz zurück.

5

Überprüfen und filtern Sie Episoden

Verwenden Sie das LeRobot-Wiedergabetool, um jede Episode visuell zu überprüfen. Entsorgen Sie alle Produkte, die die nachstehende Qualitätscheckliste nicht erfüllen. Qualität vor Quantität: 30 hervorragende Episoden schlagen 100 mittelmäßige.

python -m lerobot.scripts.control_robot \
  --robot.type=linkerbot_o6 \
  --control.type=replay \
  --control.repo_id=your-username/o6-task-name \
  --control.episode=0
6

Auf HuggingFace Hub hochladen

Übertragen Sie Ihren gefilterten Datensatz zum Teilen und Trainieren an den HuggingFace Hub. Der Datensatz steht sofort für die Richtlinienschulung in LeRobot zur Verfügung.

huggingface-cli login
python -m lerobot.scripts.push_dataset_to_hub \
  --repo_id=your-username/o6-task-name

LeRobot-Datensatzformat für O6

Jede aufgezeichnete Episode wird im standardmäßigen LeRobot HuggingFace-Datensatzformat gespeichert. Dieses Format ist direkt kompatibel mit ACT, Diffusion Policy und allen anderen von LeRobot unterstützten Trainingsalgorithmen.

Episodenstruktur

dataset/
  data/
    episode_000000/
      observation.state.npy     # [T, 12] — 6 joint positions + 6 velocities
      action.npy                # [T, 6]  — 6 target joint positions
      observation.images.wrist_cam/
        frame_000000.png        # 640x480 @ 30 fps
        ...
      observation.images.overhead_cam/
        frame_000000.png
        ...
      episode.json              # {task, success, duration_s, num_frames}
  meta_data/
    info.json                   # dataset schema version, robot type, fps
    stats.json                  # per-channel mean, std, min, max

Zustands- und Handlungsdimensionen

# observation.state: [T, 12]
# Columns: [j0_pos, j1_pos, j2_pos, j3_pos, j4_pos, j5_pos,
#            j0_vel, j1_vel, j2_vel, j3_vel, j4_vel, j5_vel]
# Units: radians and radians/second

# action: [T, 6]
# Columns: [j0_target, j1_target, j2_target, j3_target, j4_target, j5_target]
# Units: radians

Trainieren Sie eine Richtlinie anhand Ihres O6-Datensatzes

python -m lerobot.scripts.train \
  --dataset_repo_id=your-username/o6-task-name \
  --policy.type=act \
  --output_dir=./checkpoints/o6-act-v1 \
  --training.num_epochs=100

Checkliste für die Episodenqualität

Wenden Sie diese Checkliste auf jede Episode an, bevor Sie sie in Ihren Trainingsdatensatz aufnehmen. Schlechte Daten sind schlimmer als weniger Daten.

  • Aufgabe erfolgreich abgeschlossen — Der Arm erreichte den Zielzustand ohne menschliches Eingreifen. Keine Teilabschlüsse.
  • Die Bewegung ist sanft und bewusst – keine ruckartigen Korrekturen, Überschwinger oder plötzlichen Richtungsänderungen. Reibungslose Demonstrationen trainieren reibungslosere Richtlinien.
  • Alle Kamerabilder vorhanden – keine ausgelassenen Frames, keine Verdeckungen des aufgabenrelevanten Arbeitsbereichsbereichs.
  • Gemeinsame Staaten sind kontinuierlich — Keine Zeitschrittlücken von mehr als 40 ms im Statusprotokoll.
  • Die Episodendauer ist konsistent — Episoden, die kürzer als 3 Sekunden oder länger als 30 Sekunden sind, sind normalerweise Ausreißer. Überprüfen Sie sie, bevor Sie sie hinzufügen.
  • Die Szene wurde identisch zurückgesetzt — Aufgabenobjekte wurden vor Beginn der Episode an die gleiche Ausgangsposition zurückgebracht.
  • Keine CAN-Fehler während der Aufzeichnung - überprüfen candump can0 Protokolliert Fehlerframes während der Sitzung.
Übersicht über die Datenerfassungspipeline →

Bereit zum Training?

Folgen Sie dem LinkerBot O6-Lernpfad für den vollständigen Arbeitsablauf von der Einrichtung bis zum Training.