이 글은 Antoine Pirrone, Augustin Crampette, Matthieu Lapeyre, Coralie Deplanne, Anne-Charlotte Passanisi, 그리고 Thomas Wolf와의 협업으로 작성되었습니다.
TL;DR
Microduck 은 Pollen Robotics와 Hugging Face가 새로 출시한 저렴한 오픈소스 이족보행 로봇입니다. 이제 여러분은 Isaac Lab과 Newton으로 Microduck 이 걷도록 학습시킬 수 있습니다. 정책을 테스트하고, ONNX로 내보내 실제 로봇에 배포하세요. Hugging Face Hub에 공유하거나 Microduck Arena에서 대회용으로 검증한 후, NVIDIA Isaac Lab.
소개
시뮬레이션에서 학습된 보행 정책은 실제 로봇 서보의 마찰, 지연, 그리고 기계적 유격도 처리할 수 있어야 합니다. NVIDIA Isaac Lab 은 수천 개의 GPU 병렬 시뮬레이션에서 정책을 학습시키기 위한 오픈소스 프레임워크입니다. Newton, 액추에이터 모델링, 그리고 도메인 랜덤화를 통해 개발자들은 실제 하드웨어에 맞게 정책을 준비할 수 있습니다. Microduck 은 이 워크플로를 실현합니다: 시뮬레이션에서 보행 정책을 학습시키고, ONNX로 내보낸 뒤, 실제 이족보행 로봇에 배포합니다.
이 튜토리얼은 Isaac Lab과 Newton으로 Microduck을 학습시키고 평가한 후, 배포를 위해 정책을 내보내는 과정을 안내합니다. 그 후에는 Hugging Face Hub에 모델을 공유하거나, 호환성을 테스트하고 Microduck Arena에서 경쟁하거나, 여러분의 Microduck에 직접 활용할 수 있습니다. 걷기는 시작점이며, Isaac Lab 3.0을 더 탐색할 수 있도록 연결된 예제들이 제공됩니다.
1. Isaac Lab 설치 및 Microduck 학습 준비
시뮬레이션 및 학습 부분에는 다음이 필요합니다:
지원되는 NVIDIA GPU와 드라이버를 갖춘 Linux 워크스테이션. 자세한 내용은 requirements.
Git과 uv.
배포에는 다음도 필요합니다:
설정된 물리적 Microduck.
온보드 로봇 소프트웨어가 설치되어 정상 작동해야 합니다.
페어링된 게임패드와 같은 지원되는 제어 인터페이스.
빠른 설치
지원되는 NVIDIA GPU와 드라이버가 있는 Linux에서 uv를 설치하고(이미 설치되어 있다면 처음 두 줄은 건너뛰세요), Isaac Lab을 클론하고, 의존성을 설치합니다:
curl -LsSf https://astral.sh/uv/install.sh | sh
source "$HOME/.local/bin/env"
git clone --branch develop https://github.com/isaac-sim/IsaacLab.git
cd IsaacLab
uv sync
Microduck 작업과 프리셋이 사용 가능한지 확인합니다:
uv run isaaclab list_envs --keyword MicroDuck --show_presets
2. 바로 학습 가능한 Microduck 환경 이해하기
Isaac Lab에는 이미 Microduck의 로봇 모델, 씬(scene), 관측값, 행동, 보상 및 도메인 랜덤화가 포함되어 있습니다. 평지 걷기(flat-walking) 작업부터 시작하세요. 거친 지형(rough) 변형은 계단, 경사면 및 고르지 않은 지형을 추가합니다.
Figure 2. 나란히 비교한 Microduck 환경: 평지(왼쪽)와 고르지 않은 지형(오른쪽).
정책(policy)은 61개의 관측값을 입력받아 14개의 관절 위치를 출력합니다. 내보내기 및 배포 시 관측 순서, 정규화 및 행동 스케일링을 일관되게 유지하세요. 자세한 내용은 Microduck 작업 구성 에서 전체 관측값, 보상 및 시뮬레이션 설정을 확인하세요.
3. 병렬 Isaac Lab 환경으로 이동(locomotion) 학습 가속화
Isaac Lab은 GPU에서 시뮬레이션 환경을 병렬로 실행하여 Microduck 이동(locomotion) 학습을 가속화합니다. Isaac Lab은 여러 GPU에 걸쳐 분산 학습을 실행할 수도 있습니다. 예를 들어 16개의 GPU로 학습하면 학습 속도를 높이고 견고성을 높일 수 있습니다. 이 구성에서는 거친 지형과 백래시(backlash)를 활성화한 상태로 초당 최대 1.25M 스텝에 도달할 수 있습니다.
이 튜토리얼에서는 Newton을 MJWarp 솔버와 함께 사용하며 뉴턴(Newton)에 기반을 둔 Better Actuator Models (BAM) 서보 응답을 모델링하고, 백래시 프리셋과 함께 펌웨어 컨트롤러, 모터 전기적 한계, 마찰 및 지연을 모델링하여 위치 목표를 사실적인 서보 토크로 변환합니다. 정책이 시뮬레이션에서 전이될 수 있도록 도메인 랜덤화를 활용합니다. 각 오리(duck)마다 질량/무게중심, 지면 마찰, 관절 관성, 엔코더 오프셋, 배터리 전압/전압 강하 및 명령 지연을 무작위화합니다. 또한 지형을 다양하게 하고 밀어내기(push)를 적용하며, 고르지 않은 마모를 표현하기 위해 관절별로 독립적으로 백래시를 변화시킵니다.
백래시(backlash)는 기어박스의 기계적인 유격으로, 관절이 방향을 바꿀 때 링키지가 맞물리기 전에 약간 움직일 수 있는 현상입니다. 이 효과를 모델링하고 훈련 중 관절마다 다른 값으로 변화시키면 정책이 실제 로봇에서 마주칠 수 있는 차이에 노출됩니다.
다음 명령어를 실행하여 학습을 시작하세요:
uv run isaaclab train \
--rl_library rsl_rl \
--task IsaacContrib-Velocity-Rough-MicroDuck \
--num_envs 4096 \
presets=backlash
저희는 배포를 위해 험한 지형을 사용했지만, 대신 다음 명령어로 평지 환경을 훈련할 수도 있습니다:
uv run isaaclab train \
--rl_library rsl_rl \
--task IsaacContrib-Velocity-Flat-MicroDuck \
--num_envs 4096 \
presets=backlash
4. Microduck 걷기 정책을 평가하고 ONNX로 내보내기
물리 로봇에 Microduck 보행 정책을 배포하려면 시뮬레이션에서 평가한 후 ONNX로 내보내야 합니다. Isaac Lab의 RSL-RL 재생 워크플로는 TorchScript(policy.pt)와 ONNX(policy.onnx) 파일을 모두 자동으로 내보냅니다. Microduck의 온보드 런타임에서 policy.onnx를 사용하되, 관측 순서, 정규화, 행동 스케일링을 학습 시와 일치하게 유지하십시오.
Newton 시각화 도구에서 최신 체크포인트를 실행하세요:
uv run isaaclab play \
--rl_library rsl_rl \
--task IsaacContrib-Velocity-Rough-MicroDuck \
--checkpoint latest \
--num_envs 16 \
--viz newton_gl \
presets=backlash
교체 latest 특정 체크포인트로의 경로와 함께.
그림 4. 시뮬레이션에서 마이크덕(Microducks)이 고르지 않은 지형을 가로질러 보행 정책을 실행하는 모습.
Microduck에 대한 정책 내보내기
배포를 위해서는 험지(rough-terrain) 환경용 정책을 사용할 것입니다. 현재 RSL-RL 재생 구현은 TorchScript와 ONNX 파일을 모두 한 폴더로 내보냅니다 exported 선택한 실행과 연관된 디렉터리:
exported/
├── policy.pt
└── policy.onnx
Microduck의 온보드 런타임은 ONNX 정책을 로드합니다. 다음을 사용하세요 policy.onnx 하드웨어 전달을 위한 것입니다. 자동 내보내기는 Isaac Lab의 RSL-RL 재생 백엔드.
5. Hugging Face에서 정책을 공유하고 Microduck Arena에서 평가하기
함께 policy.onnx 내보냈다면 다음을 수행할 수 있습니다:
다음에서 비교해 보세요: Microduck Arena, 공유된 챌린지에서 호환되는 정책을 테스트하고 리더보드 결과를 비교할 수 있는 Hugging Face Space입니다. Arena는 61개의 관측값, 14개의 액션 값, 그리고 최대 64 MiB 크기의 모델을 허용합니다. 제출 가이드에 따라 호환성을 확인하고 챌린지에 참가하세요.
실제 Microduck에서 실행해 보세요. 4절에서 관측 및 행동 인터페이스를 확인한 후, ONNX 파일을 로봇의 온보드 런타임과 함께 사용하세요. 6절에서 하드웨어로의 전이를 다룹니다.
다음에서 공유하세요: Hugging Face Hub. 정책을 업로드하면 다른 사람들이 이를 검색하고 다운로드할 수 있습니다. 사용 방법을 설명하는 짧은 모델 카드를 추가하는 것을 권장합니다. 다른 사람들이 결과를 재현할 수 있도록 학습 구성을 포함할 수도 있습니다.
6. 실제 Microduck에 ONNX 이동 정책 배포하기
시뮬레이션에서 정책을 검증하고 인터페이스(섹션 4)를 확인한 후, policy.onnx를 구성된 Microduck에 배포합니다:
- 워크스테이션에서 정책을 복사하되, ROBOT_HOST는 해당 로봇의 호스트 이름 또는 IP 주소로 바꾸세요:
scp exported/policy.onnx microduck@ROBOT_HOST:/home/microduck/my_walking.onnx
- 로봇에 연결하여 현재 정책을 확인합니다:
ssh microduck@ROBOT_HOST
robotctl policy list
- 로봇을 스탠드 위에 받쳐둔 후 워킹 폴리시를 로드하세요. 이미 걷고 있는 상태라면 로드 시 홈 포즈로 복귀한 뒤 동작을 재개합니다.
sudo robotctl policy load walk /home/microduck/my_walking.onnx
- 문서화된 컨트롤을 사용하여 서기, 느린 걷기, 회전, 정지를 테스트하세요. 상태를 모니터링하고 필요 시 기본 워킹 폴리시를 복원하세요:
robotctl monitor
sudo robotctl policy reset walk
다음을 따르세요: Microduck 폴리시 로딩 가이드 런타임 설정 및 동작에 대해서는 위 가이드를 참조하세요. 그림 5는 배포된 폴리시가 넘어짐에 대해 갖는 강인함을 보여줍니다. Microduck은 넘어진 후 균형을 회복하고 다시 걷기를 재개합니다.
그림 5. Isaac Lab에서 학습된 로코모션 폴리시로 걷는 실제 Microduck.
7. Isaac Lab으로 Microduck 학습을 험로 지형 및 인식 작업으로 확장하기
Isaac Lab 3.0은 GPU 병렬 로봇 학습을 로코모션, 정교한 조작, 비전 기반 작업 전반에서 가능하게 하며, 확장 가능한 환경과 구성 가능한 물리 및 렌더링 백엔드를 제공합니다. 다음 예제와 도구를 살펴보세요:
더 복잡한 이동: 적용하기 계단, 경사면 및 고르지 않은 지면을 위한 Microduck의 험로 작업 — 지형 난이도를 점진적으로 높이는 커리큘럼 포함.
인식 및 내비게이션 작업: 헤드 카메라 깊이 및 로봇 상태 관측을 통해 Microduck의 보행 정책을 확장하여 시뮬레이션에서 인식 기반 작업을 탐구해 보세요. 아래 GIF는 경사면 통과를 보여줍니다. 카메라 기반 관측은 다음에서 탐구할 수 있습니다: Kuka–Allegro 예제 (비전 기반 조작용).
정교한 조작: 다음을 시도해 보세요. Kuka–Allegro 들어올리기 및 재배향 작업 — 팔과 다지 손으로 물체를 조작하도록 훈련합니다.
커스텀 환경: 다음을 사용하세요. 프로젝트 생성기 로 자신만의 작업을 만들고, 다음에서 시뮬레이션 준비 완료(SimReady) 에셋을 추가하며, SimReady Central Library에서 새로운 도전에 맞춰 관측과 보상을 조정하세요.
그림 7. NVIDIA Isaac Lab의 병렬 훈련을 통해 시뮬레이션된 Microduck들이 서로 다른 경사면과 플랫폼 통과를 연습하면서 균형 유지와 넘어짐 방지를 학습합니다
그림 8. 시뮬레이션에서의 Microduck 인식 작업. 위는 외부 시점이고 아래는 RGB, 깊이, 세그멘테이션 뷰입니다.
다음 보행 정책 만들기
다음으로 시작하세요. Isaac Lab의 Microduck 작업에서 첫 번째 보행 정책을 훈련하고, 내보낸 ONNX 모델을 다음에 공유하세요. Hugging Face Hub. 다음에서 검증하세요. Microduck Arena에서 챌린지에 참가하고 여러분의 정책이 어떻게 비교되는지 확인해 보세요. 그런 다음 배운 것을 바탕으로 더 험난한 지형 시도, 인식 추가, 또는 자신만의 작업 만들기에 도전해 보세요.
리소스
Microduck 홈 페이지 (주문, 빠른 시작, 설치)
감사의 글
이 워크플로는 Pollen Robotics의 Microduck 하드웨어 및 소프트웨어, 원본 Microduck 강화학습 프로젝트, BAM 액추에이터 모델링 작업, 그리고 Isaac Lab 및 Newton 통합을 기반으로 합니다.