로봇 개발의 중심이 바뀌고 있다
전통적인 로봇 개발은 사람이 규칙을 직접 작성하는 방식에 가까웠다. 예를 들어 물체가 왼쪽에 있으면 왼쪽으로 이동하고, 그리퍼가 물체 위에 오면 집고, 목표 지점에 도착하면 놓는 식이다. 공장처럼 환경이 일정하고 물체의 위치와 모양이 크게 변하지 않는 곳에서는 이런 방식이 강력하다.
문제는 현실이 규칙대로만 움직이지 않는다는 점이다. 조명이 조금 바뀌고, 물체가 약간 돌아가 있고, 카메라가 흔들리고, 그리퍼가 예상보다 미끄러지면 미리 만든 조건문은 금방 복잡해진다. 모든 예외를 사람이 코드로 나열하는 방식은 유지보수가 어렵고, 새로운 작업으로 옮겨 가기도 힘들다.
AI 로보틱스는 이 문제를 다른 방향에서 푼다. 사람이 모든 규칙을 쓰는 대신, 로봇이 관찰한 데이터와 그때 수행해야 할 행동의 관계를 모델이 학습한다. 카메라 이미지, 관절 상태, 그리퍼 상태를 보고 다음 행동을 예측하는 것이다. 이때 모델이 행동을 고르는 함수를 정책이라고 부른다.
현대 로봇 학습에서는 크게 세 흐름이 중요하다. 첫째는 사람이 시연한 행동을 따라 배우는 모방학습이다. 둘째는 시행착오를 통해 보상을 크게 만드는 행동을 찾는 강화학습이다. 셋째는 이미지와 언어 지시를 함께 이해해 행동으로 바꾸는 비전-언어-행동 모델, 즉 VLA 모델이다. Hugging Face의 로보틱스 교육 자료도 고전 로보틱스의 한계와 학습 기반 접근, 강화학습, 모방학습, 로보틱스 파운데이션 모델을 함께 다룬다1.
이 책에서 다루는 LeRobot은 이런 변화의 흐름 위에 있다.
AI 생성 이미지
LeRobot은 단순한 학습 코드가 아니다
LeRobot을 처음 보면 PyTorch로 만든 로봇 학습 라이브러리처럼 보일 수 있다. 하지만 실제로는 더 넓은 역할을 한다. LeRobot은 로봇 데이터 수집, 데이터셋 저장, 정책 학습, 평가, 시뮬레이션, 실제 로봇 배포를 하나의 흐름으로 연결하려는 오픈소스 플랫폼이다.
LeRobot의 공식 설명은 목표를 분명히 말한다. 실제 로보틱스를 위한 모델, 데이터셋, 도구를 PyTorch 기반으로 제공하고, 누구나 공유 데이터셋과 사전학습 모델을 활용할 수 있게 진입 장벽을 낮추는 것이다2. 여기서 중요한 단어는 모델만이 아니라 데이터셋과 도구다. 로봇 학습은 좋은 모델 하나로 끝나지 않는다. 데이터를 어떻게 모으고, 어떤 형식으로 저장하고, 어떻게 다시 불러오며, 어떤 기준으로 평가하고, 실제 로봇에 어떻게 연결할지가 모두 필요하다.
로보틱스 개발이 어려운 이유 중 하나는 파편화다. 로봇마다 제어 SDK가 다르고, 데이터 형식이 다르고, 연구 코드가 다르며, 평가 방식도 제각각이다. LeRobot 논문은 이런 문제를 로봇 학습의 주요 병목으로 설명한다. 특정 로봇에 묶인 미들웨어, 재사용하기 어려운 데이터셋, 구현 세부 사항이 다른 학습·평가 파이프라인이 재현성을 떨어뜨린다는 것이다3.
LeRobot은 이 파편화를 줄이기 위해 몇 가지 축을 제공한다.
로봇을 공통 방식으로 다루기 위한 Python 기반 로봇 인터페이스
카메라 영상과 로봇 상태, 행동을 표준화해 저장하는 LeRobotDataset
ACT, Diffusion Policy, VLA 계열 같은 정책 모델 구현
학습, 평가, 시각화, 데이터 관리 명령어
Hugging Face Hub와 연결되는 데이터셋·모델 공유 흐름
즉 LeRobot은 알고리즘 하나를 실행하는 도구가 아니라, 로봇 학습 프로젝트의 반복 과정을 관리하는 기반이다.
Hugging Face 생태계가 주는 장점
AI 분야에서 모델이 빠르게 발전한 이유 중 하나는 재사용 가능한 생태계가 있었기 때문이다. 누군가 데이터셋을 공개하고, 다른 사람이 그 데이터셋으로 모델을 학습하고, 또 다른 사람이 모델을 내려받아 자기 문제에 맞게 파인튜닝한다. LeRobot은 이 흐름을 로보틱스로 가져오려 한다.
Hugging Face 문서에 따르면 LeRobot은 사전학습 모델, 사람이 수집한 데모 데이터셋, 시뮬레이션 환경, 실제 로봇 도구를 제공한다4. 사용자는 Hub에서 공개 데이터셋을 찾아 내려받고, LeRobotDataset으로 불러오며, 공개 정책 모델을 평가하거나 자기 로봇 데이터로 다시 학습할 수 있다.
이 방식의 장점은 분명하다. 첫째, 처음부터 모든 데이터를 직접 모으지 않아도 된다. 둘째, 다른 사람이 남긴 학습 설정과 모델을 기준선으로 삼을 수 있다. 셋째, 내 실험 결과를 Hub에 올려 팀원이나 커뮤니티와 공유할 수 있다. 넷째, 데이터셋과 모델을 저장소 단위로 관리하므로 어떤 버전의 데이터와 어떤 체크포인트가 연결되었는지 추적하기 쉽다.
물론 공개 모델을 내려받았다고 곧바로 내 로봇에서 잘 작동하는 것은 아니다. 카메라 위치, 그리퍼 구조, 관절 범위, 물체 종류, 조명, 제어 주기가 다르면 성능이 크게 달라질 수 있다. 그래도 공통 형식과 공유 저장소가 있으면 출발선이 달라진다. LeRobot의 핵심 가치는 바로 이 출발선을 낮추는 데 있다.
핵심 용어를 먼저 정리하자
LeRobot을 제대로 이해하려면 몇 가지 용어를 먼저 잡아야 한다. 앞으로 모든 장에서 반복해서 등장한다.
관찰값은 정책이 입력으로 받는 정보다. 카메라 이미지, 로봇 관절 위치, 그리퍼 열림 정도, 힘 센서 값, 작업 지시 문장 등이 포함될 수 있다. LeRobot 데이터셋에서는 보통 observation.images.*, observation.state 같은 이름으로 나타난다.
행동은 로봇이 실제로 수행할 명령이다. 관절 목표 위치, 엔드이펙터 이동량, 그리퍼 열기·닫기 명령처럼 로봇 제어기에 전달되는 값이다. 모방학습에서는 사람이 시연 중 내린 행동이 정답 데이터가 된다.
정책은 관찰값을 행동으로 바꾸는 모델이다. 카메라 영상과 로봇 상태를 보고 다음 행동을 예측한다. LeRobot에서 ACT나 Diffusion Policy 같은 이름은 이 정책을 구현하는 방식이다.
에피소드는 하나의 작업 시도다. 예를 들어 컵을 집어 상자에 넣는 작업이라면, 로봇이 시작 자세에서 움직이기 시작해 성공하거나 실패하거나 중단될 때까지의 기록이 한 에피소드다.
데모 데이터는 사람이 로봇을 조작해 남긴 시연 기록이다. 모방학습에서는 이 데이터가 가장 중요하다. 좋은 데모 데이터는 카메라 영상, 로봇 상태, 행동 명령, 시간 정보가 서로 잘 맞아야 한다.
보상은 강화학습에서 주로 쓰이는 개념이다. 로봇이 좋은 행동을 했는지 숫자로 알려주는 신호다. 예를 들어 물체를 목표 위치에 가까이 옮기면 보상이 커지고, 떨어뜨리면 작아질 수 있다.
모방학습과 강화학습은 이 용어들을 조금 다르게 사용한다. 모방학습에서는 사람이 보여준 행동이 핵심이다. 정책은 관찰값을 보고 전문가 행동과 비슷한 행동을 출력하도록 배운다. 강화학습에서는 정답 행동이 항상 주어지지 않는다. 대신 로봇이 여러 행동을 시도하고, 그 결과 받은 보상을 바탕으로 더 나은 정책을 찾는다. VLA 모델은 여기에 언어 지시와 시각 정보를 결합한다. 예를 들어 "빨간 블록을 집어 왼쪽 상자에 넣어라"라는 문장과 카메라 이미지를 함께 보고 행동을 생성한다.
시뮬레이션과 실제 로봇은 역할이 다르다
로봇 학습을 처음 시작할 때 실제 로봇만 고집할 필요는 없다. 시뮬레이터는 빠르고 안전하다. 로봇이 충돌해도 부품이 망가지지 않고, 같은 장면을 여러 번 반복할 수 있으며, 수많은 실험을 자동으로 돌릴 수 있다. 학습 코드가 제대로 동작하는지, 데이터셋이 잘 불러와지는지, 정책이 최소한의 행동을 배우는지 확인하기에 좋다.
하지만 시뮬레이션은 현실을 완전히 복제하지 못한다. 실제 카메라에는 노이즈가 있고, 조명은 흔들리며, 물체 마찰은 일정하지 않다. 모터에는 지연이 있고, 케이블은 움직임을 방해할 수 있으며, 그리퍼는 생각보다 미끄러질 수 있다. 시뮬레이션에서 성공률이 높다고 실제 로봇에서 바로 성공하는 것은 아니다. 이 차이를 흔히 sim-to-real gap이라고 부른다.
반대로 실제 로봇 실험은 배포 가능성을 확인하는 데 필수적이지만 비용과 위험이 크다. 로봇이 테이블을 치거나, 물체를 떨어뜨리거나, 모터에 무리가 갈 수 있다. 그래서 좋은 흐름은 둘 중 하나를 선택하는 것이 아니라 역할을 나누는 것이다. 시뮬레이션에서 빠르게 검증하고, 실제 로봇에서는 낮은 속도와 짧은 시간으로 조심스럽게 확인한다. 이후 실패 장면을 다시 데이터로 남겨 개선한다.
LeRobot 기반 개발 흐름
LeRobot 프로젝트는 대체로 다음 순서로 진행된다.
먼저 개발 환경을 만든다. Python, PyTorch, LeRobot 패키지, 카메라, 로봇 드라이버, Hugging Face 인증을 준비한다. 이 단계는 단순 설치가 아니라 앞으로 데이터와 모델을 안정적으로 다루기 위한 작업대 만들기다.
다음은 데이터 수집이다. 사람이 키보드, 게임패드, 리더-팔로워 장치 등으로 로봇을 조작하며 데모 에피소드를 기록한다. 이때 카메라 영상, 로봇 상태, 행동 명령, 타임스탬프가 함께 저장된다. LeRobot은 이런 데이터를 표준 형식으로 저장하고 불러올 수 있게 한다.
그다음은 데이터셋 확인과 공유다. 기록된 에피소드가 정상인지 시각화하고, 실패한 기록이나 시간 정렬이 어긋난 데이터를 제거한다. 필요하면 Hugging Face Hub에 올려 팀원과 공유하거나, 공개 데이터셋을 내려받아 함께 사용한다.
이후 정책을 학습한다. 예를 들어 lerobot-train으로 ACT 같은 모방학습 정책을 학습할 수 있다. 학습은 관찰값을 입력으로 받아 데이터셋의 행동을 예측하도록 모델을 조정하는 과정이다. 학습이 끝나면 체크포인트가 남고, 이 체크포인트가 배포 후보가 된다.
다음은 평가다. 시뮬레이션이나 실제 로봇에서 정책을 실행해 성공률, 실패 유형, 완료 시간, 충돌 여부를 확인한다. 손실값이 낮아도 실제 작업을 못 하면 좋은 정책이 아니다. 로봇 정책은 결국 움직임으로 평가해야 한다.
마지막은 배포와 반복 개선이다. LeRobot 문서에서 lerobot-rollout은 학습된 정책을 실제 로봇에 실행하는 배포용 CLI로 설명된다. 정책 경로와 로봇 설정을 넘기면 지정한 시간 동안 정책을 실행할 수 있고, 실행 전략에 따라 기록, 시각화, 사람 개입형 데이터 수집까지 연결할 수 있다5. 특히 DAgger 방식처럼 정책이 움직이다가 사람이 개입해 교정한 장면을 다시 데이터로 남기면, 실패한 상태를 중심으로 정책을 개선할 수 있다.
이 흐름을 한 문장으로 줄이면 이렇다. LeRobot은 로봇을 학습시키는 한 번의 명령어가 아니라, 데이터를 모으고, 정책을 학습하고, 평가하고, 실제 로봇에서 다시 데이터를 얻는 반복 루프를 만드는 도구다.
이 관점을 갖고 다음 장으로 넘어가면 설치 과정도 다르게 보인다. 개발 환경 구축은 단순히 패키지를 설치하는 일이 아니다. 앞으로 데이터셋, 모델, 로봇, Hub, 평가 도구가 서로 맞물려 돌아가게 만드는 첫 단계다.
참고
1Welcome to the Hugging Face Robotics Course
3LeRobot: An Open-Source Library for End-to-End Robot Learning
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.