Blog(으)로 돌아가기

진짜 로봇 학습을 위한 '허즈페이스 레로봇'을 시작

레로봇 <unk> 설치, 데이터 수집, ACT 또는 전파 정책 훈련, 평가 및 데이터 공유에 대한 실용적인 가이드

[로봇 데이터 수집 안내]

[← 블로그]

레로봇은 데이터 수집에서 훈련된 정책까지의 전체 파이프라인을 이전 프레임워크보다 더 쉽게 접근 할 수 있게 해줍니다.

레로봇은 무엇 입니까?

레로봇은 허깅페이스의 로봇 학습 라이브러리입니다. 표준화된 데이터 세트 형식, 사전 훈련된 모델의 증가하는 컬렉션 및 ACT, 전파 정책 및 TD-MPC2 정책을위한 훈련 스크립트 이전 프레임워크의 핵심 차별은 표준화입니다. 지원되는 모든 로봇에 레로봇과 함께 수집된 데이터 세트는 사용자 지정 데이터 로더나 포맷 변환 없이 모든 레로봇 훈련 스크립트로 훈련될 수 있습니다.

2025년 초에, 레로봇은 8,000명 이상의 회원으로 활발한 디스코드 커뮤니티를 보유하고 있으며, 핵심 팀에서 매주 연구 업데이트를 하고 있으며, 전 세계 연구 그룹으로부터의 모델 동물원 기여가 증가하고 있습니다. 오픈 소스 로봇 학습 데이터 공유에 대한 실질적인 표준이되었습니다.

설치 및 하드웨어 지원

  • ** 설치:******pip lerobot을 설치합니다. Python 3.10+, PyTorch 2.1+를 필요로 합니다. 선택적으로 하드웨어 의존성을 별도로 설치합니다. (예를 들어, SO-100 팔 지원에 대해 **pip lerobot을 설치합니다).
  • SO-100 팔 ($300): 주요 저렴한 지원 플랫폼. 5DOF 리더+후편 텔레오퍼레이션 팔 Koch 로봇. 물리 로봇 학습에 신규 팀의 가장 좋은 출발점
  • ALOHA 양동력: Stanford ALOHA 및 ALOHA 2 구성은 포함됩니다. 14 DOF 총 (7 팔당), 양동력 조작 연구를 위해 사용된다.
  • OpenArm: 커뮤니티 어댑터를 통해 지원됩니다. RCSV OpenArm 7-DOF 구성은 RCSV의 LeRobot 통합 패키지를 통해 사용할 수 있습니다.

데이터 수집 작업 흐름

데이터 수집은 자동으로 표준화된 HDF5 + MP4 데이터 세트를 생성합니다.

  • 단계 1 로봇을 구성: 로봇의 YAML 구성 (예를 들어, lerobot/configs/robot/so100.yaml) 을 일련 포트 및 카메라 지표로 편집합니다.
  • ** 단계 2 기록 데이터 세트:** python lerobot/scripts/record_dataset.py --robot-path lerobot/configs/robot/so100.yaml --num-episodes 50 --dataset-id my_task_v1. 스크립트는 카메라 간 프레임 동기화, HDF5 에피소드 작성 및 실시간 에피소드 미니얼 생성 작업을 처리합니다.
  • ** 3 단계 에피소드를 검토:** python lerobot/scripts/visualize_dataset.py --dataset-id my_task_v1는 인터랙티브 에피소드 시청자를 열고 훈련 전에 배제할 수 있는 플래그 실패 에피소드를 제공합니다.
  • ** 단계 4 허브로 푸시 (선택):** python lerobot/scripts/push_dataset_to_hub.py --dataset-id my_task_v1 공유를 위해 HuggingFace Hub 또는 관리 저장용 RCSV의 데이터 플랫폼에 업로드됩니다.

정책 훈련

Policy Command Training Time (200 demos, 1× GPU) Best For
ACT (Action Chunking with Transformers) --policy act ~4 hours Fast-moving tasks, reliable baseline
Diffusion Policy --policy diffusion ~12 hours 정밀도 tasks, multimodal behavior
TD-MPC2 --policy tdmpc ~8 hours Tasks with clear reward structure

ACT 훈련 명령어: python lerobot/scripts/train.py --policy act --dataset-id my_task_v1 --training.num_epochs 100. TensorBoard 로그에서 평가/성공률을 모니터링합니다. 배치 전에 목표 >70%입니다. 디푸지션 정책은 더 많은 계산을 필요로 하지만 일반적으로 멀티모달 행동 (예를 들어, 객체를 잡기 위해 여러 가지 유효한 접근 방법이 있는 작업) 을 통해 정확성 작업에 더 나은 성능을 달성합니다.

동물원 모델 및 제로 샷 테스트

르로봇은 허깅페이스 허브에서 미리 훈련된 모델 동물원을 유지하고 있습니다. 2025 년 초부터 사용 가능: 선택 장소, 스택 및 삽입 작업에 대한 SO-100에 훈련 된 ACT 및 전파 정책; 양동력 지우 및 조립을위한 ALOHA 정책. 이 것은 하드웨어에서 제로샷 테스트를 위해 사용할 수 있습니다.

사전 훈련된 정책을 실행하기 위해: python lerobot/scripts/eval.py --pretrained-policy-name-or-path lerobot/act_so100_pick_place --robot-path lerobot/configs/robot/so100.yaml.

레로봇 데이터셋 형식 심층 다이빙

데이터 세트 형식을 이해하는 것은 사용자 지정 통합에 필수적입니다. LeRobot 데이터 세트는 파켓 파일 (구성 데이터) 과 MP4 비디오 (카메라 관측) 의 조합을 사용합니다:

my_dataset_v1/
  meta/
    info.json          # Dataset metadata (robot type, fps, features)
    episodes.jsonl     # Per-episode metadata (length, task description)
    tasks.jsonl        # Task definitions
  data/
    chunk-000/
      episode_000000.parquet   # State + action data per episode
      episode_000001.parquet
      ...
  videos/
    chunk-000/
      observation.images.top/
        episode_000000.mp4     # Camera feed per episode
      observation.images.wrist/
        episode_000000.mp4

각 파켓 파일에는 다음의 열이 포함되어 있습니다: T5 (관각 + 지갑), T6 (목적 합동 위치), T7, T8, 그리고 T9. 카메라 관측은 MP4 비디오 (H.264 코딩) 로 저장되며 프레임 지표가 파켓 데이터에 맞게 조정됩니다.

데이터 세트를 프로그래밍적으로 로드하려면:

from lerobot.common.datasets.lerobot_dataset import LeRobotDataset

# Load from local path or HuggingFace Hub
dataset = LeRobotDataset("lerobot/aloha_sim_insertion_human_image")

# Access episode data
episode = dataset[0]  # First frame of first episode
print(episode.keys())
# dict_keys(['observation.images.top', 'observation.state',
#            'action', 'episode_index', 'frame_index', 'timestamp'])

# Get all frames for episode 5
ep5_frames = [dataset[i] for i in dataset.episode_data_index["from"][5]:
                                    dataset.episode_data_index["to"][5]]

레로봇 (LeRobot) 과 ACT 훈련: 단계별로

키 하이퍼파레머와 함께 완전한 훈련 명령이 설명했습니다.

# Train ACT on your custom dataset
python lerobot/scripts/train.py \
  --policy.type=act \
  --dataset.repo_id=my_org/my_task_v1 \
  --dataset.episodes=[0,1,2,3,4,5,6,7,8,9] \   # Specific episodes
  --training.num_epochs=2000 \
  --training.batch_size=8 \
  --policy.chunk_size=100 \         # Action chunk length
  --policy.kl_weight=10 \           # CVAE KL divergence weight
  --policy.n_action_steps=100 \     # Steps to execute per chunk
  --training.lr=1e-5 \              # Learning rate
  --training.save_freq=500 \        # Checkpoint every 500 epochs
  --output_dir=outputs/act_my_task

조정할 수 있는 주요 하이퍼파레머:

  • chunk_size: 대부분의 작업에 50-100 더 큰 조각은 합성 오류를 줄이지만 예측 문제를 더 어렵게 만듭니다. 100에서 시작하여 50로 줄이십시오.
  • kl_weight: CVAE 정규화를 제어한다. 너무 낮 (1): 잠자리 공간 붕괴, 다모달 행동 손실. 너무 높 (100): 정책은 관찰을 무시한다. 하위 집합에 대한 스파이 [1, 5, 10, 50].
  • 학습율: 1e-5의 정렬, 1e-4의 처음부터 훈련. 훈련이 불안정하다면 2x로 줄일 수 있습니다.

레로봇의 교육 전파 정책

# Train Diffusion Policy
python lerobot/scripts/train.py \
  --policy.type=diffusion \
  --dataset.repo_id=my_org/my_task_v1 \
  --training.num_epochs=4000 \
  --training.batch_size=64 \
  --policy.n_action_steps=8 \       # Prediction horizon
  --policy.n_obs_steps=2 \          # Observation history length
  --policy.num_inference_steps=10 \ # DDIM steps (10 for speed)
  --training.lr=1e-4 \
  --output_dir=outputs/dp_my_task

디스푸시온 정책은 ACT보다 2-3배 느려지만 정확성 작업에서 더 나은 성능을 달성합니다. T10 매트릭을 서보드에서 모니터링하십시오. 그것은 일반적으로 500-1000 시대와 2000-3000에 걸쳐 급격히 상승합니다.

데이터 세트를 HuggingFace Hub로 밀어넣는 것

# Push your dataset to HuggingFace Hub for sharing
huggingface-cli login  # One-time authentication
python lerobot/scripts/push_dataset_to_hub.py \
  --local-dir outputs/my_task_v1 \
  --repo-id my_org/my_task_v1 \
  --tags "openarm,pick-place,tabletop"

HuggingFace Hub의 데이터 세트는 레로봇이 설치된 모든 사람이 즉시 사용할 수 있습니다. 설명 태그를 추가하면 데이터 세트가 발견될 수 있습니다. RCSV의 데이터 세트는 T11 조직 아래의 허브에서 사용할 수 있습니다.

일반적인 오류 및 수정

Error Cause Fix
RuntimeError: CUDA out of memory Batch size too large for GPU VRAM Reduce batch_size to 4 or 2; use gradient accumulation
ValueError: mismatched state dim Robot config does not match dataset DOF Check robot YAML: state_dim must match observation.state columns
Camera not found at index N USB camera enumeration changed Run v4l2-ctl --list-devices and update camera_index in YAML
Serial port permission denied User not in dialout group sudo usermod -aG dialout $USER then log out/in
Policy outputs all zeros KL collapse in ACT training Increase kl_weight to 50; use KL warmup schedule
Video frames out of sync with state USB bandwidth saturation Use USB3 cameras on separate USB controllers; reduce resolution to 480p

성능 기준

레로봇의 참조 구현을 사용하여 표준 작업에 대한 예상 성능:

Task Platform Demos ACT Success DP Success
Pick-place (single object) SO-100 50 75-85% 70-80%
Stacking (2 blocks) SO-100 100 60-75% 65-80%
Bimanual handover ALOHA 200 80-90% 75-85%
Insertion (peg-in-hole) OpenArm 200 50-65% 60-75%

지역사회 및 자원

  • 분별: 8,000명 이상의 회원이 활동하고 있습니다. #Help 및 #Showcase 채널. 대부분의 질문에 몇 시간 안에 답이 있습니다.
  • HuggingFace Hub: hf.co/lerobot - 데이터 세트 및 모델의 증가 추세. 로봇 유형 또는 작업에 따라 필터링.
  • ** 주간 업데이트:** HuggingFace 핵심 팀은 HuggingFace 블로그에 연구 업데이트를 1-2 주마다 게시합니다.
  • RCSV 통합: RCSV의 데이터 플랫폼 는 관리된 저장, 해설 및 훈련 파이프라인 수출을 위해 LeRobot 형식의 데이터 세트를 수용합니다. 우리의 데이터 수집 서비스 는 기본적으로 LeRobot 형식의 데이터 세트를 제공합니다.

관련 독서

이미테이션 학습 가이드 · 행동과 전파 정책 · 열린 X-체체 · 로봇 팔 비교 · 데이터 해석 · 데이터 서비스 · RCSV 플랫폼

레로봇 호환 데이터 수집

RCSV는 ACT 또는 전파 정책 교육 스크립트와 함께 사용할 수 있는 레로봇 형식으로 데이터 수집 출력을 제공합니다.

[데이터 서비스를 탐구]