데이터 수집
LinkerBot O6의 전체 녹음 작업 흐름입니다. 리더-팔로어 원격 조작, LeRobot 데이터 세트 형식, 에피소드 품질 체크리스트 및 더 광범위한 데이터 수집 파이프라인에 대한 링크.
O6의 녹음 작업 흐름
하드웨어 준비부터 첫 번째 데이터세트 에피소드까지의 전체 프로세스입니다. 단계를 순서대로 따르세요.
하드웨어 및 CAN 인터페이스 확인
O6가 장착되고, 전원이 켜져 있고, CAN 인터페이스가 작동되는지 확인하세요. 달리다 candump can0 계속하기 전에 모터 하트비트 패킷이 나타나는지 확인하십시오.
작업 및 카메라 레이아웃 구성
작업 설명을 정의하고 카메라를 올바른 각도로 설정하고 작업 개체를 작업 공간에 배치합니다. 에피소드 전반에 걸쳐 일관된 장면 설정은 정책 일반화에 매우 중요합니다.
녹음 세션 시작
다음을 사용하여 LeRobot 제어 스크립트를 실행합니다. record 방법. 이는 에피소드 녹화를 위한 시스템을 준비합니다. 세션은 캡처하기 전에 시작 트리거를 기다립니다.
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"
원격 조작 및 에피소드 녹화
O6를 원격 조종하려면 리더 암(또는 간단한 테스트를 위해 키보드)을 사용하세요. 시작/중지 키를 눌러 각 에피소드를 분류하세요. 일관성을 위해 에피소드 사이의 장면을 재설정하세요.
에피소드 검토 및 필터링
LeRobot 재생 도구를 사용하여 각 에피소드를 시각적으로 검토하세요. 아래 품질 체크리스트를 통과하지 못한 것은 폐기하십시오. 양보다 질: 훌륭한 에피소드 30개가 평범한 에피소드 100개를 능가합니다.
python -m lerobot.scripts.control_robot \
--robot.type=linkerbot_o6 \
--control.type=replay \
--control.repo_id=your-username/o6-task-name \
--control.episode=0
HuggingFace 허브에 업로드
공유 및 훈련을 위해 필터링된 데이터세트를 HuggingFace Hub에 푸시하세요. 데이터 세트는 LeRobot의 정책 교육에 즉시 사용할 수 있습니다.
huggingface-cli login
python -m lerobot.scripts.push_dataset_to_hub \
--repo_id=your-username/o6-task-name
O6용 LeRobot 데이터세트 형식
녹화된 각 에피소드는 표준 LeRobot HuggingFace 데이터 세트 형식으로 저장됩니다. 이 형식은 ACT, 확산 정책 및 기타 모든 LeRobot 지원 교육 알고리즘과 직접 호환됩니다.
에피소드 구조
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
상태와 행동 차원
# 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
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
에피소드 품질 체크리스트
훈련 데이터 세트에 포함하기 전에 모든 에피소드에 이 체크리스트를 적용하세요. 나쁜 데이터는 적은 데이터보다 더 나쁩니다.
- ✓작업이 성공적으로 완료되었습니다 — 팔이 사람의 개입 없이 목표 상태에 도달했습니다. 부분 완료가 없습니다.
- ✓모션은 부드럽고 의도적입니다. — 갑작스런 수정, 오버슈트 또는 갑작스러운 방향 변경이 없습니다. 원활한 시연은 보다 원활한 정책을 교육합니다.
- ✓모든 카메라 프레임 존재 — 프레임 손실이 없고 작업 관련 작업 공간 영역이 가려지지 않습니다.
- ✓결합 상태는 연속적입니다. — 상태 로그에 40ms보다 큰 시간 단계 간격이 없습니다.
- ✓에피소드 기간이 일관됨 — 3초보다 짧거나 30초보다 긴 에피소드는 일반적으로 이상치입니다. 포함하기 전에 검토하세요.
- ✓장면이 동일하게 재설정되었습니다. — 에피소드가 시작되기 전에 작업 개체가 동일한 시작 위치로 반환되었습니다.
- ✓기록 중 CAN 오류 없음 - 확인하다
candump can0세션 중 오류 프레임을 기록합니다.