Collecte de données
Le flux de travail d'enregistrement complet pour le LinkerBot O6. Téléopération leader-suiveur, format d'ensemble de données LeRobot, liste de contrôle de la qualité des épisodes et liens vers le pipeline plus large de collecte de données.
Flux de travail d'enregistrement pour l'O6
Le processus complet, depuis le matériel prêt jusqu'au premier épisode de jeu de données. Suivez les étapes dans l'ordre.
Vérifier le matériel et l'interface CAN
Vérifiez que l'O6 est monté, sous tension et que l'interface CAN est active. Courir candump can0 et vérifiez que les paquets de battements de cœur du moteur apparaissent avant de continuer.
Configurer la disposition des tâches et des caméras
Définissez la description de la tâche, configurez la ou les caméras aux angles corrects et placez les objets de la tâche dans l'espace de travail. Une configuration de scène cohérente entre les épisodes est essentielle à la généralisation des politiques.
Démarrer la session d'enregistrement
Lancez le script de contrôle LeRobot avec le record mode. Cela arme le système pour l’enregistrement des épisodes. La session attendra votre déclencheur de démarrage avant de capturer.
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"
Téléopérer et enregistrer des épisodes
Utilisez un bras leader (ou votre clavier pour des tests simples) pour téléopérer l'O6. Appuyez sur la touche start/stop pour mettre chaque épisode entre parenthèses. Réinitialisez la scène entre les épisodes pour plus de cohérence.
Examiner et filtrer les épisodes
Utilisez l'outil de relecture LeRobot pour revoir chaque épisode visuellement. Jetez ceux qui ne satisfont pas à la liste de contrôle de qualité ci-dessous. La qualité plutôt que la quantité : 30 excellents épisodes battent 100 médiocres.
python -m lerobot.scripts.control_robot \
--robot.type=linkerbot_o6 \
--control.type=replay \
--control.repo_id=your-username/o6-task-name \
--control.episode=0
Télécharger sur le hub HuggingFace
Transférez votre ensemble de données filtré vers le HuggingFace Hub pour le partage et la formation. L’ensemble de données est immédiatement disponible pour la formation aux politiques dans LeRobot.
huggingface-cli login
python -m lerobot.scripts.push_dataset_to_hub \
--repo_id=your-username/o6-task-name
Format de l'ensemble de données LeRobot pour O6
Chaque épisode enregistré est stocké au format de jeu de données standard LeRobot HuggingFace. Ce format est directement compatible avec ACT, Diffusion Policy et tous les autres algorithmes de formation pris en charge par LeRobot.
Structure des épisodes
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
Dimensions de l’état et de l’action
# 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
Entraîner une politique à partir de votre ensemble de données O6
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
Liste de contrôle de la qualité des épisodes
Appliquez cette liste de contrôle à chaque épisode avant de l'inclure dans votre ensemble de données d'entraînement. De mauvaises données sont pires que moins de données.
- ✓Tâche terminée avec succès — le bras a atteint l'état cible sans intervention humaine. Pas de réalisations partielles.
- ✓Le mouvement est fluide et délibéré — pas de corrections saccadées, de dépassements ou de changements brusques de direction. Des manifestations fluides entraînent des politiques plus fluides.
- ✓Tous les cadres de caméra présents — pas de perte d'images, pas d'occlusions de la région de l'espace de travail pertinente pour la tâche.
- ✓Les États conjoints sont continus — aucun intervalle de temps supérieur à 40 ms dans le journal d'état.
- ✓La durée de l'épisode est cohérente — les épisodes de moins de 3 s ou de plus de 30 s sont généralement des valeurs aberrantes. Passez-les en revue avant de les inclure.
- ✓La scène a été réinitialisée à l'identique — les objets de tâche ont été remis à la même position de départ avant le début de l'épisode.
- ✓Aucune erreur CAN pendant l'enregistrement - vérifier
candump can0enregistre les trames d’erreur au cours de la session.