Dataset Replay

데이터 기록에서 기록한 데이터가 정말 로봇을 움직일 수 있는 형태로 저장되었는지 확인하는 가장 직접적인 방법은 그 행동을 로봇에 다시 보내 보는 것입니다. 리더 암 없이 데이터셋의 행동만으로 로봇이 시범과 같은 동작을 재현하면, 기록도 로봇도 정상입니다. 학습에 들어가기 전의 점검 단계입니다.

학습 목표

  • 재생이 데이터셋의 어떤 값을 어떻게 로봇에 보내는지 설명할 수 있다.
  • 안전 절차를 지키며 에피소드를 재생하고 기록 상태를 판단할 수 있다.

1. 재생의 원리

재생은 데이터셋에 저장된 action 을 기록 당시와 같은 30 FPS로 순서대로 로봇에 보내는 것입니다. 관측은 쓰지 않고 카메라도 보지 않습니다. 눈을 감고 외운 동작을 그대로 반복하는 것과 같습니다.

텔레오퍼레이션 (제어 스크립트)재생 (이 페이지)추론 (ACT 추론)
행동의 출처사람데이터셋정책
관측을 보는가사람이 본다안 본다정책이 본다
리더 암필요불필요불필요

그래서 재생은 두 가지를 확인해 줍니다. 데이터셋에 행동이 빠짐없이 저장되었는지, 그리고 로봇이 그 궤적을 물리적으로 따라갈 수 있는지입니다.

1.1. 안전

재생은 기록 당시의 절대 관절 각도와 바퀴 속도를 그대로 보냅니다. 주변 환경이 기록 때와 다르면 로봇은 그것을 모른 채 움직여 충돌합니다.


2. [Pi] 호스트 실행

데이터 기록과 같은 방법으로 호스트를 띄웁니다.

./start_lekiwi_host.sh lekiwi07

3. [PC] 에피소드 재생

3.1. 명령

리더 암은 연결하지 않아도 됩니다. 데이터 기록과 같은 환경 변수를 쓰고 첫 번째 에피소드를 재생합니다.

Ubuntu
conda activate lerobot060
cd ~/workspace/lekiwi
export HF_USER="HueyWoo"
export TASK_NAME="lekiwi_pick_and_place"
Ubuntu
python lekiwi-replay.py \
    --robot.remote_ip=192.168.0.207 \
    --robot.id=lekiwi07 \
    --dataset.repo_id=${HF_USER}/${TASK_NAME} \
    --dataset.episode=0

윈도우에서는 다음과 같이 실행합니다.

Windows
conda activate lerobot060
cd %USERPROFILE%\workspace\lekiwi
set "HF_USER=HueyWoo"
set "TASK_NAME=lekiwi_pick_and_place"
Windows
python lekiwi-replay.py ^
    --robot.remote_ip=192.168.0.207 ^
    --robot.id=lekiwi07 ^
    --dataset.repo_id=%HF_USER%/%TASK_NAME% ^
    --dataset.episode=0
인자의미
--dataset.repo_id데이터 기록에서 기록한 데이터셋 이름
--dataset.episode재생할 에피소드 번호. 0부터 시작
--warmup_s첫 프레임 자세까지 이동하는 준비 시간. 기본 2초
--countdown_s준비 후 재생 시작까지 대기. 기본 2초
--dataset.fps재생 주기. 생략하면 데이터셋에 기록된 값을 씁니다. 바꾸지 않는 것을 권합니다

ESC 또는 Ctrl + C 로 즉시 중단할 수 있습니다.

3.2. 무엇을 볼 것인가

재생되는 동안 로봇을 관찰하며 다음을 확인합니다.

에피소드 몇 개를 골라 재생해 보고 문제가 없으면 데이터셋은 학습에 쓸 수 있는 상태입니다. 전체를 하나씩 보기에는 재생이 느리므로, 나머지는 다음 페이지의 시각화 도구로 빠르게 훑습니다.


4. 문제 해결

증상확인할 것
데이터셋을 찾지 못함ls ~/.cache/huggingface/lerobot/${HF_USER}/ 로 이름 확인
팔 관절이 빠져 있다며 멈춤데이터셋이 손상됨. 데이터 기록에서 해당 에피소드 재기록
바퀴가 안 움직이고 경고만 남음기록 때 바퀴 속도가 저장되지 않음. 호스트 설정 확인 후 재기록
시작하자마자 팔이 튐--warmup_s 를 늘림. 기록 때와 너무 다른 자세에서 시작하지 않기
연결 timeout호스트 실행 여부, IP, 같은 와이파이. 제어 스크립트 문제 해결 참고

5. 정리

다음 페이지 데이터 시각화에서는 로봇을 움직이지 않고 화면에서 데이터셋을 확인하는 방법을 다룹니다.