데이터 수집

VLAI L1은 대규모 원격 작전 데이터 수집을 위해 제작되었습니다. 원클릭 녹화 파이프라인, 듀얼 암 동기화 및 내장된 VR 텔레오프를 통해 로봇 제공에서 교육용 데이터 세트까지 가장 빠른 경로를 제공합니다.

녹음 작업 흐름

양방향 VR 원격조작 녹화

1

모든 시스템 연결 및 확인

rc connect --device l1 --host 192.168.1.45
rc status   # check: arms, base, cameras, battery all green
2

L1을 녹음 위치로 이동

브라우저 패널에서 WASD를 사용하여 L1을 작업 작업 공간으로 이동합니다. 작업에 대한 리프트 높이를 설정합니다(예: 테이블 상단 조작의 경우 130cm). 주차하고 바퀴를 잠그세요.

rc teleop --device l1   # open browser panel
# Drive to position, then lock:
python -c "from roboticscenter import L1; r=L1('192.168.1.45'); r.connect(); r.base.lock_wheels(); r.disconnect()"
3

작업 장면 및 카메라 설정

작업 개체를 일관된 시작 위치에 배치합니다. 브라우저 패널에서 카메라 보기를 확인합니다. 손목 카메라(Developer Max)와 외부 카메라 모두 작업 작업 공간을 덮어야 합니다.

4

CLI를 통해 녹화 세션 시작

rc record \
  --device l1 \
  --task "Pick up the bottle and pour into the glass" \
  --num_episodes 50 \
  --output ~/datasets/l1-pour-v1 \
  --teleop_mode vr   # or: browser, leader_arms
# Press ENTER in VR to start each episode, ENTER again to end
5

에피소드 검토

rc replay \
  --dataset ~/datasets/l1-pour-v1 \
  --episode 0

뷰어에는 모든 카메라 스트림 + 공동 상태 시계열이 동기화되어 표시됩니다. 푸시하기 전에 불량 에피소드를 삭제하세요.

6

HuggingFace 허브로 푸시

huggingface-cli login
rc push_dataset \
  --dataset ~/datasets/l1-pour-v1 \
  --repo_id your-username/l1-pour-v1
데이터세트 형식

L1 데이터세트 스키마

L1 녹음 파이프라인은 양팔, 모바일 베이스, 모든 카메라 및 선택적 언어 주석이 포함된 다중 모드 데이터 세트를 생성합니다.

각 에피소드 Parquet 파일의 필드
관찰.왼쪽_팔_상태 float32[8] 라디안 단위의 왼쪽 팔 관절 위치(8 DOF)
관찰.right_arm_state float32[8] 라디안 단위의 오른쪽 팔 관절 위치(8 DOF)
관찰.베이스_상태 float32[3] 이동 베이스 x, y(미터 및 라디안 단위)
관측.리프트_높이 float32 몸통 리프트 높이(미터)
관찰.이미지.* 비디오 경로 손목 카메라(왼쪽, 오른쪽), 머리 카메라, 외부 작업 공간 카메라
action.left_arm float32[8] VR 텔레오프에서 왼팔 관절 위치를 타겟팅합니다.
action.right_arm float32[8] VR 텔레오프에서 오른팔 관절 위치 타겟팅
언어_지시 VLA 조건화를 위한 자연어 작업 설명
타임스탬프 float64 Unix 타임스탬프(초)
다음.완료 부울 각 에피소드의 마지막 프레임에서 True
품질 보증

품질 체크리스트

L1의 VR 텔레오프는 대기 시간 및 이중 수동 조정과 관련된 고유한 데이터 품질 문제를 일으킬 수 있습니다. 허브로 푸시하기 전에 이 과정을 실행해 보세요.

  • 1
    녹화 중 VR 지연 시간이 50ms 미만이었습니다. 녹화 중에 브라우저 패널에서 대기 시간 모니터를 확인하세요. 50ms를 초과하면 작업자의 손 움직임이 로봇의 동작보다 지연되어 데이터세트에 인과적 불일치가 발생합니다. 필요한 경우 지연 시간이 짧은 WiFi 채널에서 다시 녹음하세요.
  • 2
    양팔이 의도한 대로 움직였습니다(외팔 에피소드 없음). 양손 작업의 경우 두 팔이 모두 중요한 움직임을 보이는지 확인합니다. observation.left_arm_state 그리고 observation.right_arm_state. 단일 팔이 지배적인 에피소드는 운영자가 한 손을 선호한다는 것을 나타낼 수 있습니다.
  • 3
    팔 조작 중에 모바일 베이스가 정지되었습니다. 모바일 조작 작업을 기록하는 것이 아닌 이상, observation.base_state 각 에피소드 내에서 거의 일정해야 합니다. 조작 중 베이스 이동으로 인해 작업 공간이 카메라를 기준으로 이동됩니다.
  • 4
    전체 에피소드에 모든 카메라 스트림이 표시됩니다. L1의 WiFi 대역폭은 로드 시 프레임을 삭제할 수 있습니다. 달리다 rc validate_dataset --dataset ~/datasets/l1-pour-v1 모든 카메라 스트림에서 누락된 프레임을 확인합니다.
  • 5
    언어 교육은 시연된 내용과 일치합니다. 언어 지시는 녹음이 시작되기 전에 설정됩니다. 운영자가 즉석에서 다른 접근 방식을 취한 경우(예: 두 팔 대신 ​​한 팔 사용) 지침을 업데이트하거나 에피소드를 삭제합니다.
다음 단계

데이터 세트에서 VLA 교육

데이터 세트가 HuggingFace Hub에 있으면 L1 작업 공간을 사용하여 VLA를 미세 조정합니다.

L1 데이터에서 OpenVLA 미세 조정

pip install roboticscenter[vla]

python -m roboticscenter.scripts.finetune_vla \
  --model openvla/openvla-7b \
  --dataset your-username/l1-pour-v1 \
  --action_space l1_bimanual \   # registers the 16-DOF bimanual action head
  --epochs 50 \
  --output_dir outputs/openvla-l1-pour

미세 조정된 VLA 온디바이스 배포(Developer Pro/Max)

RC 배포 vla \ --모델 출력/openvla-l1-pour \ --int4 양자화 \ --장치 l1 \ --호스트 192.168.1.45 # 정책을 실행합니다: rc 실행 정책 \ --task "병을 들고 유리잔에 따르세요" \ --max_steps 100

데이터 세트가 준비되었나요? 훈련을 시작하세요.

HuggingFace Hub로 푸시하고 양손 조작 데이터에 대한 VLA 모델을 미세 조정하세요.