Learn(으)로 돌아가기

로봇 훈련 데이터를 수집하는 방법

텔레오퍼레이션 <unk> 하드웨어 설정, 레로봇 녹음, RLDS 형식, 품질 점수 및 데이터 세트 준비를 통해 고품질의 로봇 훈련 데이터를 수집하는 완전한 가이드.

텔레오페레이션 하드웨어 설정을 통해 고품질의 로봇 훈련 데이터를 수집하는 완전한 가이드, 레로봇 녹음, RLDS 형식, 품질 점수 및 VLA 정렬을 위한 데이터 세트 준비.

중간 24 시간 설정 업데이트 2026년 4월

1. 하드웨어 2. 설치 3. 구성 4. 텔레오프 설정 5. 기록 6. 검토 7. RLDS 변환 8. 업로드 9. 품질 검사 10. VLA를 준비

전제 조건

  • 로봇 팔 (OpenArm, SO-100, Aloha, Koch, UR5 또는 유사한)
  • 적어도 1개의 RGB 카메라 (목목에 장착된 것이 선호된다) + 1개의 외부 카메라
  • 원전 조작 입력 장치 (리더 팔, 스페이스마우스, 키보드)
  • ROS2 Humble 설치 (ROS2 설정 안내서를 참조하십시오)
  • 파이썬 3.10+ 파이프
  • NVIDIA GPU (비주얼링 및 미래 훈련) 를 위한 Ubuntu 22.04

당신이 건설할 것은

이 튜토리얼의 끝까지, 당신은 완전한 데이터 수집 파이프라인을 갖게 될 것입니다: 텔레오퍼레이션 하드웨어가 구성되어 있고, 로봇이 작업을 수행하는 에피소드를 레로봇으로 기록하고, 품질 점수를 얻은 시범과 RLDS 형식으로 HugsFace Hub에 업로드된 데이터 세트 VLA 정렬을 준비합니다.

데이터 수집 파이프라인

텔레오프 입력 리더 팔 / 스페이스마우스

로봇 팔 공동 국가 + 행동

카메라 손목 + 외부 RGB (RGB)

레로봇 기록 & 동기화

RLDS 데이터 세트 HuggingFace Hub

1

하드웨어 요구 사항

완전한 데이터 수집 설치는 네 가지 요소를 가지고 있습니다. 다음은 당신이 필요로 하는 것 및 우리의 권장 옵션입니다.

Component Recommended Budget
Robot arm OpenArm ($2,400) or Aloha ($20K+) SO-100 ($200 DIY kit)
Wrist camera Intel RealSense D405 ($300) USB webcam ($30)
External camera Intel RealSense D435 ($350) Logitech C920 ($70)
Teleop device Leader arm (matched pair) 3Dconnexion SpaceMouse ($130)

** 예산 경로:** SO-100 팔과 두 개의 웹캠과 스페이스마우스는 전체 500 달러 이하의 데이터 수집을 제공합니다. 품질은 리더-따라자 설정보다 낮지만 작업 흐름을 배우고 간단한 정책을 훈련시키는 데 충분합니다.

2

레로봇을 설치

레로봇은 로봇 학습을 위한 Hugging Face의 오픈소스 도구입니다. 의존성 충돌을 피하기 위해 가상 환경에서 설치하십시오.

복사# 가상 환경을 생성 및 활성화 python3 -m venv ~/lerobot_env 소스 ~/lerobot_env/bin/activate # 데이터 수집 파이프에 필요한 모든 부가와 함께 레로봇을 설치 "레로봇[all]" # 또는 최신 기능 git clone T18 cd lerobot pip 설치 -e .[all]" # 설치 python3 -c "입입 레로봇; print(f'LeRobot {lerobot.__version___} 설치') "

복사# 카메라 녹음 파이프에 추가 의존성을 설치 오프엔스-파이톤 pyrealsense2 h5py # HuggingFace Hub 업로드 로그인

3

레로봇에서 로봇을 구성

레로봇은 YAML 구성 파일을 사용하여 로봇의 특성을 정의합니다. 특정 하드웨어에 대한 구성을 생성합니다.

복사# 로봇 구성 디렉토리를 생성함 mkdir -p ~/lerobot_configs # OpenArm (openarm.yaml) Cat의 구성 예제 > ~/lerobot_configs/openarm.yaml << 'EOF' 로봇: 타입: openarm port: /dev/ttyUSB0rate: 1000000 관절: - 이름: 어깨_판 ID: 1 분: -3.14 max: 3.14 - 이름: 어깨_리프트 ID: 2 분: -1.57 max: 1.57 - 이름: 팔꿈치 ID: 3 분: -2.35 max: 2.35 - 이름: 손목 _피치 ID: 4 분: -1.57 max: 1.57 - 이름: 손목 _틀: 5 분: -3.14 - 높이: 3.14 - 이름: 손목 _틀: 6 분: 1.0

** 중요:** 카메라 지표 (T0, T1) 는 시스템마다 다를 수 있습니다. 카메라에 대한 올바른 지표를 찾기 위해 T2을 실행하십시오. 녹화하기 전에 이것을 정확하게 알아보십시오.

4

텔레오퍼레이션 인터페이스를 설정

시범시 로봇을 제어하는 데에는 두 가지 주요 옵션이 있습니다. 리더와 추종자 팔 쌍 (최고 품질) 또는 스페이스마우스 (더 접근성)

**A 옵션: 리더-따라자 무기 (상담) **

복사# 리더 팔을 구성 (당신이 물리적으로 움직이는 팔) lerobot 기계를 조정 \ --robot-type=openarm \ --robot-port=/dev/ttyUSB0 \ --leader-port=/dev/ttyUSB1 # 이것은 기계를 실행합니다

** 선택 B: 스페이스마우스**

복사# 설치 SpaceMouse 드라이버 pip 설치 pyspacemouse # 테스트 SpaceMouse 연결 python3 -c "입입 pyspacemouse; m = pyspacemouse.open(); print('SpaceMouse 연결') " # 설정 SpaceMouse LeRobot에 로봇을

** 어느 쪽을 선택해야 하는가?** 리더-포로우 팔은 당신의 손 움직임이 로봇의 관절에 직접적으로 지도되기 때문에 더 자연스러운 시범을 만들어냅니다. 스페이스마우스는 설정하기 쉽지만, 덜 부드러운 데이터를 생성합니다. 이는 정책 성과를 10~20% 감소시킬 수 있습니다. 생산 데이터 수집을 위해 항상 리더-포로우를 사용하십시오.

5

첫 에피소드 기록

"피소드"는 처음부터 끝까지 하나의 작업의 완전한 시범입니다. 블록을 들고 목표 구역에 배치하는 것과 같은 간단한 작업으로 시작하십시오.

복사# 로컬 데이터 세트에 에피소드를 기록하는 레로봇 레코드 \ --robot-type=openarm \ --robot-port=/dev/ttyUSB0 \ --leader-port=/dev/ttyUSB1 \ --fps=30 \ --task="pick_red_block_place_target" \ --num-episodes=10 \ --output-dir=~/datasets/openarm_pick_place # 녹음 중에 제어: # Enter start/ttyUSB1 \ Space pause/resume # r redo current episode # q

각 에피소드는 동기화된 데이터로 저장됩니다.

~/datasets/openarm_pick_place/ ── 에피소드_000/ │ ── 관찰/ │ │ │ ── 관절_пози션.npy # (T, 6) 관절 각기 │ │ ── 관절_속도.npy # (T, 6) 관절 속도는 │ │ ── 손목_캠.mp4 # 손목 카메라 비디오 │ │ │ ── 외부_캠.mp4 # 외부 카메라 비디오 │ ── 액션.npy # (T, 7) 목표 관절 + 지리퍼 ── 에피소드_001/ ── ... ── 메타데이터.json

** 에피소드 카운트 가이드라인:** 단일 작업 정책 (ACT, 방산 정책) 에 대해 50200 에피소드를 수집하십시오. VLA 미세 조정을 위해 (OpenVLA, pi0), 3001,200 에피소드를 수집하십시오. 보다 다양한 시범은 더 나은 일반화를 제공합니다. 에피소드 간 객체 위치, 지향 및 조명을 변경하십시오.

6

검토 및 품질 점수 에피소드

모든 에피소드 가 사용 가능 하지 않습니다. 녹음 을 검토 하고 실패 한 시범 을 제거 하고 품질 매트릭 을 계산 합니다.

복사# 특정 에피소드를 시각화하십시오 lerobot 시각화-데이터셋 \ --dataset-path=/datasets/openarm_pick_place \ --episode=0 # 로봇에서 에피소드를 재생하십시오 (선택적 인 확인을 위해) lerobot replay \ --robot-type=openarm \ --robot-port=/dev/ttyUSB0 \ --dataset-path=/datasets/openarm_pick_place \ --episode=3

Copy# 모든 에피소드 python3 -c " import numpy for all episodes for np import json, os, glob dataset_dir = os.path.expanduser('~/datasets/openarm_pick_place') 에피소드 = sorted(glob.glob(os.path.join(dataset_dir, 'episode_*'))) 에피소드: actions = np.loados.path.join(ep_dir, 'actions.npy')) # Smoothness: lower jerk = better demonstration jerk = np.diffactions, n=3, axis=0) smoothness = (1.0 + np.meanp.abs.jerk((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((

품질 규칙: 최종 데이터 세트에 90% 이상의 작업 성공률을 목표로 합니다. 로봇이 객체를 떨어뜨린, 테이블에 충돌한 또는 거칠게 움직인 에피소드를 폐기합니다.

7

RLDS 형식으로 변환

RLDS (Reinforcement Learning Datasets) 는 VLA 모델 훈련의 표준 형식이다. OpenVLA, Octo, RT-2와 호환성을 위해 레로봇 데이터 세트를 RLDS로 변환하십시오.

복사# RLDS 변환 도구를 설치합니다 pip tensorflow tensorflow-data-set rlds # 레로봇 데이터 세트를 RLDS python3 -m lerobot.scripts.convert_to_rlds \ --input-dir=/datasets/openarm_pick_place \ --output-dir=/datasets/openarm_pick_place_rlds --task-description=" 빨간 블록을 들고 목표 녹색 영역에 배치하십시오"

RLDS 데이터 세트는 시간 단계별로 다음과 같은 구조를 가진 TFRecord 파일을 포함합니다.

{ "관측": { "진상": (480, 640, 3) uint8, # 손목 카메라 "진상_외부": (480, 640, 3) uint8, # 외부 카메라 "상태": (6,) float32 # 공동 위치 }, "행동": (7,) float32, # 목표 관절 + 지잡기 "상상": float32, # 1.0 성공, 0.0 그렇지 않으면 "이_터미널": bool, "언어_명령": 문자열 # 작업 설명 }

8

HuggingFace Hub에 업로드

버전 제작, 쉽게 공유, 훈련 중에 직접 로딩을 위해 데이터 세트를 HuggingFace Hub로 밀어 넣습니다.

Copy# 로그인 된 것을 확인하세요 huggingface-cli 로그인 # 푸시 르로봇 형식 데이터 세트 lerobot push-to-hub \ --dataset-path=/datasets/openarm_pick_place \ --repo-id="your-username/openarm-pick-place-v1" \ --private # 또는 RLDS 형식 데이터 세트를 push python3 -c "에서 huggingface_hub 수입 HfApi = HfApi() .upload_path_folder_folder=os..expanduser.

** 버전 팁:** 항상 버전 후자 (T3, T4) 를 포함하십시오. 더 많은 데이터를 수집하거나 품질 문제를 해결하면 새로운 버전으로 밀어 넣으십시오. 이것은 훈련 실행을 재생하고 개선 사항을 추적하는 것을 쉽게 만듭니다.

9

품질 검사를 실시

훈련 전에 GPU 시간을 낭비할 수 있는 문제를 파악하기 위해 최종 품질 검사를 실행하십시오.

Kopypython3 -c " import numpy np import json, os, glob dataset_dir = os.path.expanduser('/datasets/openarm_pick_place') 에피소드 = sorted(glob.glob.os.path.join(dataset_dir, 'episode_*'))) 길이는 = [\] 매끄러움_scores = [\] 액션_ranges = [\] ep_dir 에피소드: 액션 = np.path.expanduser.join'/datasets/openarm_pick_place') 에피소드 = sorted(glob.glob.os.path.join.npy' episodes = 0.append actions.actions) 에피소드: n.actions.n.actions, n.ARN=3, n.actions=5 (n.sc:nl=nl=nl=nl=nl=nl=nl=nl=nl=n

10

VLA 정렬 을 준비 하십시오

적절한 분할과 작업 설명을 생성함으로써 훈련에 필요한 데이터 세트를 구성하십시오.

Copy# Create train/val split (90/10) python3 -c " import os, shutil, random, glob dataset_dir = os.path.expanduser('~/datasets/openarm_pick_place') 에피소드 = sorted(glob.glob.os.path.join(dataset_dir, 'episode_*'))) random.seed(42) random.shuffle(episodes) split = int((lenepisodes) * 0.9) train = episodes[:split] vallit = episodes[split:\] #vallet.train.join.join.txt, 'tlen} file with open pathos.pathos.tlen} 'fw: ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((

VLA 모델을 정비할 준비가 되셨나요?

데이터 세트가 준비되어 있습니다. [VLA 정렬 가이드]T13에 계속하여 OpenVLA 또는 pi0를 데이터에 훈련하십시오. 일반적인 정렬 실행에 GPU 계산에 150400 달러를 투자할 것으로 예상하십시오.

데이터 수집 비용 분할

Cost Component Per Hour Notes
Operator labor $50–80 Skilled teleoperator, varies by market
Hardware depreciation $15–30 Amortized over 2,000 hrs of use
Quality review $20–40 에피소드 filtering and scoring
Compute and storage $8–15 Recording, processing, storage
Facility overhead $25–35 Lab space, lighting, safety
Total $118–200

자료 수집에 도움이 필요해요?

RCSV 데이터 서비스에서는 전문적인 텔레오퍼레이터와 함께 관리되는 로봇 데이터 수집, 품질 보장 및 RLDS 준비 된 배달을 제공합니다. 시속 150 달러에서 시작됩니다.

[데이터 서비스에 대해 알아보기]

문제 해결

카메라 피드 블랙 또는 얼어붙은

T5로 카메라 지수를 확인하세요. USB 케이블을 해제하고 다시 연결해 보세요. RealSense를 사용하는 경우 T6로 확인하세요. RealSense 카메라에는 USB 3.0 포트가 필요합니다.

로봇 팔은 녹음 중에 반응하지 않습니다

T7로 일련 포트를 확인하세요. 권한 확인: T8. 다른 프로세스가 포트를 사용하지 않는지 확인하십시오.

기록 중에 프레임의 떨어지는 경우 (불관성 fps)

카메라 해상도 480x360까지 낮아집니다. 배경 애플리케이션을 닫습니다. 각 카메라에 전용 USB 버스를 사용하세요.

RLDS 변환이 형상 불합동으로 실패

이것은 보통 에피소드가 다른 관찰 차원을 가지고 있음을 의미합니다. 모든 카메라가 모든 에피소드에서 동일한 해상도를 사용했는지 확인하십시오. 부합적인 차원을 가진 에피소드를 다시 녹음하십시오.

HuggingFace 업로드 시간

큰 데이터 세트 (50+ GB) 는 느린 연결에서 시간을 할애 할 수 있습니다. T10T11을 사용하여 부분으로 업로드하거나 업로드하기 전에 비디오를 압축하십시오. 더 빠른 대역폭을 가진 클라우드 VM에서 업로드하는 것을 고려하십시오.

관련 교과서

[

VLA 모델의 정렬

실제 로봇 배포를 위해 원전 조작 데이터 세트에 OpenVLA 또는 pi0를 배열하십시오.

[T15]

레로봇 스타트

2시간 이내에 레로봇을 시작하세요

[T16][

오픈아름 첫 데모

상자를 풀고 첫 번째 텔레오퍼레이션 데모를 오픈아름 하드웨어로 실행하세요.

[T17]

자주 묻는 질문

로봇 정책 훈련에 얼마나 많은 시범 프로그램이 필요할까요?

대부분의 단일 작업 조작 정책 (, , , 등) 에 대해 ACT 또는 방전 정책에 50200 수준 높은 에피소드가 충분합니다. VLA 미세 조정 (OpenVLA, pi0) 에 대해서는 작업 복잡성과 필요한 일반화에 따라 3001,200 에피소드를 계획하십시오.

로봇 훈련 데이터를 수집하는 데 드는 비용은 얼마일까요?

로봇 텔레오퍼레이션 데이터 수집의 전체 로드 비용은 2026년 운영자 기술 수준과 하드웨어에 따라 1시간 당 118,200달러에서 달한다. 여기에는 운영자 시간, 하드웨어 회담, 계산 및 품질 검토가 포함된다. RCSV 데이터 서비스에서는 1시간 당 150달러에서 관리 수집을 제공합니다.

로봇 데이터 수집을 위해 어떤 카메라를 사용해야 할까요?

최소 1개의 손목 장착 RGB 카메라 (640x480, 30fps) 와 1개의 외부 3인관 카메라를 사용하십시오. 최상의 결과를 위해서는 깊이 데이터를 위해 Intel RealSense D435와 같은 RGBD 카메라를 추가하십시오. 많은 VLA 모델은 손목 및 외부 카메라 모두 볼 수 있습니다.

RLDS 형식은 무엇 이며, 왜 중요 합니까?

RLDS (Reinforcement Learning Datasets) 는 로봇 학습 데이터를 저장하기 위해 구글 딥마인드의 표준화된 형식이다. TFRecord 파일에서 관찰, 행동 및 보상의 순서로 에피소드를 저장합니다. 대부분의 VLA 모델 (RT-2, OpenVLA, Octo) 은 RLDS 형식을 기대하고 있어 상호 작용에 대한 실질적인 표준이 된다.

수집된 데이터가 고품질이 있는지 어떻게 보장할 수 있을까요?

3가지 품질 측정값을 추적하세요: (1) 작업 성공률 작업이 성공적으로 완료된 에피소드를만 유지하세요. (2) 궤도 순조함 거동하거나 불규칙한 시범을 필터링합니다. (3) 다양성 에피소드마다 객체 위치, 방향 및 조명 등이 달라집니다. 최종 데이터 세트에 90% 이상의 성공률을 목표로합니다.

이 설명서가 도움이 되었나요?

👍 네 아니

로봇 기술 에서 앞장서

로봇 배포, 데이터 수집, 물리 AI에 대한 최신 정보를 수신 상자에 전달하십시오.