LeRobot으로 로봇 학습 흐름 이해하기
사람이 조작한 시연을 기록하고 데이터셋·정책 학습·로봇 배포로 이어지는 LeRobot의 작업 흐름을 살펴봅니다.
무료 공개 · 최근 수정
시뮬레이션 화면과 실제 로봇 사이의 선택
피지컬 AI와 로봇 학습에 처음 입문할 때 가장 먼저 맞닥뜨리는 고민은 환경 선택입니다. 당장 책상 위에 서보모터와 링크 부품을 조립해 실제 로봇 암을 올려두어야 할지, 아니면 화면 속 물리 시뮬레이터에서 가상 로봇을 먼저 움직여 보아야 할지 결정해야 합니다.
소프트웨어 시뮬레이션(예: PushT, Gym-ALOHA 환경)은 하드웨어 구매 비용이 들지 않고 모터 파손 위험 없이 수천 번의 에피소드를 초고속으로 반복 실험할 수 있습니다. 반면 시뮬레이션에서 완벽히 성공한 알고리즘이라도 실제 물리 환경으로 가져오면 모터 기어의 마찰, 전선 처짐, 미세한 조명 변화와 통신 지연 때문에 실패하는 경우가 많습니다. 이를 가상과 현실 사이의 간극(Sim-to-Real Gap)이라고 부릅니다.
처음 시작하는 단계라면 시뮬레이션 벤치마크 환경에서 데이터 수집과 학습 파이프라인의 입출력 구조를 먼저 파악하고, 이후 SO-100이나 Koch 같은 저비용 3D 프린팅 로봇 암으로 단일 물체 파지(Grasp) 작업부터 확장하는 단계적 접근이 안전합니다. 이러한 전체 개발 여정을 소프트웨어 관점에서 일관되게 연결해 주는 도구가 바로 Hugging Face의 LeRobot 라이브러리입니다.
로컬 환경에서 프레임워크를 시험해 볼 때는 Python 3.12 환경에서 패키지를 설치합니다.
pip install lerobot이 문서 작성 환경에서는 대규모 기계학습 패키지를 새로 내려받지 않아 설치 명령을 실행하지 않았습니다. 최신 버전별 시스템 요구 조건과 가상환경 구성법은 LeRobot 공식 설치 문서에서 안내합니다.
시연 조작부터 배포까지 이어지는 4단계 루프
로봇 학습의 기본 원리는 사람이 보여준 행동을 모델이 흉내 내도록 가르치는 모방 학습(Imitation Learning)에 뿌리를 두고 있습니다. LeRobot 공식 소개는 작업을 Teleoperate → Record → Train → Deploy 네 단계의 순환 흐름으로 정리합니다.
그림: 시연을 기록해 정책을 학습·배포하고 평가 결과로 데이터를 보강하는 순환 흐름
첫째, 텔레오퍼레이션(Teleoperation)입니다. 작업자가 리더 암(Leader Arm)이나 조이스틱을 손으로 움직이면, 연결된 팔로워 암(Follower Arm)이 그 궤적을 실시간으로 추종하며 목표 작업을 수행합니다.
둘째, 기록(Record)입니다. 로봇이 움직이는 동안 작업 공간을 비추는 외부 카메라 영상, 관절 모터의 현재 각도와 속도, 작업자가 인가한 동작 목표값이 타임스탬프에 맞춰 하나의 데이터셋으로 저장됩니다.
셋째, 학습(Train)입니다. 수집된 시연 기록을 바탕으로 현재의 관찰 이미지와 관절 상태로부터 다음 행동 궤적을 예측하는 신경망 모델인 정책(Policy)을 학습시킵니다.
넷째, 배포(Deploy)입니다. 학습된 정책 가중치를 실제 로봇 제어 루프에 탑재하여, 사람의 개입 없이 카메라 관찰값만으로 자율 동작을 수행하도록 지시하고 작업 성공률을 평가합니다. 만약 실패한다면 부족한 상황의 시연을 추가 기록하여 모델을 점진적으로 개선합니다.
몇 번의 시연을 어떤 다양성으로 모을 것인가
모방 학습 프로젝트에서 초심자가 가장 자주 묻는 질문은 "도대체 몇 번을 시연해야 로봇이 동작을 익히는가"입니다.
LeRobot의 실제 로봇 튜토리얼은 단일 물체 조작 과제를 기준으로 최소 50회 이상의 시연 기록을 권장합니다. 이때 단순히 동일한 위치에 물체를 두고 50번을 똑같이 집어 올리는 방식은 피해야 합니다. 특정 좌표에만 과적합되면 물체 위치가 1cm만 틀어져도 로봇 팔이 헛손질을 반복하기 때문입니다. 공식 가이드에서는 작업 영역 안에서 목표 물체의 위치를 최소 5곳 이상으로 분산하고, 각 위치마다 10회씩 나누어 시연을 수집할 것을 제안합니다.
시연을 수집할 때는 다음 두 가지 원칙을 지켜야 합니다.
첫째, 시각적 정보의 충분성입니다. 시연자가 로봇을 조작할 때 실제 로봇을 직접 쳐다보지 않고, 오직 제어 화면의 카메라 스트림만 바라보면서도 작업을 온전히 마칠 수 있어야 합니다. 만약 작업 도중 사람의 손이나 그리퍼 프레임에 가려 목표 물체가 화면에서 사라진다면, 정책 신경망 역시 시각 단서를 잃어버리고 멈추게 됩니다.
둘째, 궤적의 일관성입니다. 사람이 조작하는 도중 주저하거나 중간에 궤적을 갑자기 수정하면 그 비효율적인 방황 동작까지 고스란히 데이터로 학습됩니다. 동작 속도와 그립 시점을 일정하게 유지해야 부드러운 정책이 나옵니다. 이렇게 정제된 멀티모달 시계열 데이터는 LeRobot의 표준 저장 규격인 LeRobotDataset 형식으로 디스크에 안전하게 패키징됩니다.
시작 전 점검표
하드웨어 기반 로봇 학습은 소프트웨어 개발과 달리 작은 설정 오류가 물리적 장비 파손이나 안전사고로 직결됩니다. 로봇 팔을 움직이기 전에는 반드시 작업 공간에서 사람과 장애물을 치우고, 비상 정지 수단을 확보한 상태에서 시작해야 합니다. 데이터 기록을 시작하기 전 다음 점검표를 확인합니다.
| 점검 항목 | 구체적인 확인 방법 | 놓쳤을 때 발생하는 문제 |
|---|---|---|
| 카메라 시야 및 조도 | 웹캠 스트림을 열어 목표 물체와 그리퍼가 가동 범위 전체에서 선명히 보이는지 확인 | 물체 가림(Occlusion)이나 역광으로 인해 정책이 특징을 추출하지 못하고 헛손질 반복 |
| 센서 주기 동기화 | 카메라 FPS(예: 30 FPS)와 모터 제어 루프 주기가 일치하는지 타임스탬프 검사 | 시각 관찰과 모터 동작 사이의 시간 차이로 인해 궤적이 튀거나 지연 발생 |
| 모터 캘리브레이션 | 리더 암과 팔로워 암의 각 관절 영점(Zero Offset)과 가동 범위가 일치하는지 대조 | 지시 각도와 실제 구동 각도가 어긋나 관절 간 기계적 충돌 및 서보 모터 과열 발생 |
| 비상 정지(E-Stop) 확보 | 물리 전원 차단 스위치 또는 비상 정지 단축키의 즉각적인 모터 차단 동작 확인 | 오작동이나 벽 충돌 시 즉시 멈추지 못해 모터 기어가 마모되거나 프레임 파손 |
| 데이터 정규화 통계 | 데이터셋 생성 후 각 관절 상태의 최솟값·최댓값 통계 파일이 정상 계산되었는지 확인 | 정규화 기준값 불일치로 인해 정책 추론 시 모터가 갑작스러운 최고 속도로 급발진 |
배포 실패 시 무엇부터 의심할 것인가
수십 번의 시연을 모아 밤새 정책을 학습시켰는데도 로봇이 현장에서 엉뚱하게 움직인다면, 어떤 계층부터 원인을 찾아야 할까요? 많은 엔지니어가 모델 신경망 구조부터 바꾸려 들지만, 실제 원인은 물리 계층과 데이터 계층에 숨어 있는 경우가 대부분입니다. 디버깅은 다음 세 단계 순서로 진행합니다.
가장 먼저 의심할 대상은 하드웨어와 물리 환경입니다. 낮에 데이터를 수집하고 밤에 형광등 아래에서 평가하지는 않았는지 확인합니다. 실내 조도 변화는 합성곱 신경망이나 비전 트랜스포머의 임베딩을 왜곡하는 가장 흔한 원인입니다. 또한 서보모터 케이블의 접촉 불량, USB 허브의 대역폭 부족으로 인한 웹캠 프레임 드랍, 장시간 구동으로 인한 모터 축의 영점 드리프트(Zero-drift)를 가장 먼저 점검해야 합니다.
두 번째는 시연 데이터의 품질입니다. 학습 손실(Loss)은 정상적으로 감소하는데 현장 성공률이 낮다면, 특정 각도나 배경에 과적합되었을 확률이 높습니다. LeRobot 데이터셋 시각화 도구를 사용해 수집된 에피소드 영상을 프레임 단위로 재생하면서, 조작 중 비정상적인 손떨림이 들어갔거나 그리퍼가 물체를 집기 직전 주저한 구간이 없는지 검토합니다. 결함이 있는 에피소드는 데이터셋에서 과감히 제외합니다.
마지막으로 정책의 하이퍼파라미터입니다. 한 번의 추론으로 미래의 몇 개 타임스텝 행동을 한 묶음으로 예측할지 결정하는 액션 청킹(Action Chunking) 윈도우 크기가 물리 작업 속도와 맞지 않으면 로봇이 뚝뚝 끊기며 움직일 수 있습니다. 물리 환경 점검과 데이터 정제가 탄탄히 뒷받침된 상태에서만 모델 튜닝이 비로소 의미를 갖습니다.
[참고] 실시간 모터 제어와 지연 시간
실제 로봇 제어에서는 모델 추론 시간과 통신 지연의 합이 제어 주기(예: 30Hz 기준 약 33ms)를 넘지 않아야 합니다. 지연이 누적되면 로봇이 과거 관찰에 기반해 뒤늦은 행동을 취하면서 심한 진동이 발생할 수 있습니다.
참고 문서
설명이 어렵거나 잘못된 부분을 발견하셨나요?
문서 수정 의견 보내기