로봇 훈련 데이터를 수집하는 방법
텔레오퍼레이션 <unk> 하드웨어 설정, 레로봇 녹음, RLDS 형식, 품질 점수 및 데이터 세트 준비를 통해 고품질의 로봇 훈련 데이터를 수집하는 완전한 가이드.
텔레오페레이션
중간
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에 업로드된 데이터 세트
데이터 수집 파이프라인
텔레오프 입력 리더 팔 / 스페이스마우스
→
로봇 팔 공동 국가 + 행동
→
카메라 손목 + 외부 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
복사# 카메라 녹음 파이프에 추가 의존성을 설치 오프엔스-파이톤 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
** 중요:** 카메라 지표 (
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
각 에피소드는 동기화된 데이터로 저장됩니다.
~/datasets/openarm_pick_place/
** 에피소드 카운트 가이드라인:** 단일 작업 정책 (ACT, 방산 정책) 에 대해 50
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() .expanduser.
** 버전 팁:** 항상 버전 후자 (
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 정렬 가이드]
데이터 수집 비용 분할
| 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 달러에서 시작됩니다.
[데이터 서비스에 대해 알아보기]
문제 해결
카메라 피드 블랙 또는 얼어붙은
로봇 팔은 녹음 중에 반응하지 않습니다
기록 중에 프레임의 떨어지는 경우 (불관성 fps)
카메라 해상도 480x360까지 낮아집니다. 배경 애플리케이션을 닫습니다. 각 카메라에 전용 USB 버스를 사용하세요.
RLDS 변환이 형상 불합동으로 실패
이것은 보통 에피소드가 다른 관찰 차원을 가지고 있음을 의미합니다. 모든 카메라가 모든 에피소드에서 동일한 해상도를 사용했는지 확인하십시오. 부합적인 차원을 가진 에피소드를 다시 녹음하십시오.
HuggingFace 업로드 시간
큰 데이터 세트 (50+ GB) 는 느린 연결에서 시간을 할애 할 수 있습니다.
관련 교과서
[
VLA 모델의 정렬
실제 로봇 배포를 위해 원전 조작 데이터 세트에 OpenVLA 또는 pi0를 배열하십시오.
[
레로봇 스타트
2시간 이내에 레로봇을 시작하세요
[
오픈아름 첫 데모
상자를 풀고 첫 번째 텔레오퍼레이션 데모를 오픈아름 하드웨어로 실행하세요.
[
자주 묻는 질문
로봇 정책 훈련에 얼마나 많은 시범 프로그램이 필요할까요?
대부분의 단일 작업 조작 정책 (
로봇 훈련 데이터를 수집하는 데 드는 비용은 얼마일까요?
로봇 텔레오퍼레이션 데이터 수집의 전체 로드 비용은 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) 작업 성공률
이 설명서가 도움이 되었나요?
👍 네
로봇 기술 에서 앞장서
로봇 배포, 데이터 수집, 물리 AI에 대한 최신 정보를 수신 상자에 전달하십시오.







