800g 이족 로봇이 실제로 걷기 전, 컴퓨터 안에서 수천 번 넘어지고 일어나게 하는 훈련장
작은 로봇이 바닥에 발을 디디기 전, 가상 공간에서 수천 번의 시행착오를 겪는 장면을 떠올려 보세요. 이 저장소는 그 훈련 과정을 자동화하는 도구입니다. 실제 로봇의 관절 마찰과 배터리 전압 저하까지 정밀하게 재현해, 시뮬레이션에서 배운 동작이 현실에서도 그대로 작동하도록 돕습니다.
현실과 시뮬레이션의 간극을 메우는 정밀 모델링
이 저장소의 핵심은 단순한 물리 엔진이 아니라, 실제 로봇에 쓰이는 Dynamixel XL330 서보 모터를 전기적 수준까지 모사하는 것입니다. 전압 제어 법칙, 역기전력, 그리고 부하에 따라 변하는 마찰까지 모두 계산에 포함합니다. 또한 기어 간 1도씩의 헛돌음(백래시)을 각 관절에 적용해, 로봇이 실제로 움직일 때 발생하는 미세한 오차까지 학습 데이터에 반영합니다. 이러한 정밀한 액추에이터 모델링 덕분에, 시뮬레이션에서 훈련된 정책이 실제 로봇에 적용될 때 발생하는 불일치 문제를 크게 줄일 수 있습니다.
걷기부터 공 차기까지, 다양한 동작 훈련
저장소에는 평지에서 걷기, 거친 지형에서 걷기, 넘어졌을 때 일어나기, 앉았다 일어서기, 공 차기, 구르기 등 13가지 이상의 훈련 과제가 포함되어 있습니다. 각 과제는 평지(Flat)와 거친 지형(Rough) 두 가지 버전으로 제공되며, 백래시 효과를 포함하는 변형 버전도 함께 준비되어 있습니다. 모든 정책은 61차원의 동일한 관측값 구조를 공유하므로, 로봇이 걷다가 갑자기 넘어졌을 때 걷기 정책에서 회복 정책으로 즉시 전환할 수 있습니다. 이러한 정책 핫스왑 기능은 로봇이 다양한 상황에 유연하게 대응할 수 있게 해줍니다.
훈련부터 배포까지 하나의 파이프라인
특히 uv run publish 명령을 사용하면 훈련된 정책을 Hugging Face Hub에 표준화된 형식으로 업로드할 수 있어, 다른 사용자가 robotctl policy add 한 줄로 자신의 로봇에 정책을 설치할 수 있습니다. 이 과정에서 관측값 정규화기가 ONNX 그래프에 자동으로 포함되므로, 배포 시 추가 변환 과정 없이 바로 사용할 수 있습니다. GPU가 없는 환경에서는 --hf-jobs 옵션을 통해 Hugging Face Jobs에서 훈련을 실행할 수도 있습니다.
사용 전 확인해야 할 사항
이 저장소를 사용하려면 CUDA GPU가 필수이며, ARM 기반 기기(DGX Spark, Jetson 등)에서는 초기 설치 시 CUDA 라이브러리 다운로드에 시간이 오래 걸릴 수 있으므로 UV_HTTP_TIMEOUT=600 환경 변수를 설정하는 것이 좋습니다. 4096개 환경에서 훈련할 경우 사용 가능한 보행을 얻는 데 약 1~2시간이 소요됩니다. 또한 이 저장소는 Apache 2.0 라이선스로 공개되었으나, 3D 모델 파일은 Creative Commons BY-SA-NC 라이선스를 따르므로 상업적 사용 시 주의가 필요합니다. 현재는 상수 명령 기반 정책만 배포가 가능하며, 단계적 동작이나 자세 플래그 기반 동작은 공식 정책 저장소에서 별도로 관리됩니다.