Microduck with Isaac Lab 3.0: Training and Deploying Robot Policies from Simulation to Real Hardware

로봇 공학의 핵심 과제 중 하나는 시뮬레이션에서 훈련된 정책이 실제 하드웨어에서 안정적으로 작동하도록 하는 것입니다. 이 워크플로우는 Microduck을 NVIDIA Isaac Lab 3.0과 통합하여 개발자가 병렬 시뮬레이션에서 강력한 보행 정책을 훈련하고 이를 실제 로봇에 직접 배포할 수 있도록 함으로써 이 문제를 해결합니다.

Sim-to-Real 워크플로우 개요

NVIDIA Isaac Lab은 수천 개의 GPU 병렬 시뮬레이션에서 정책을 훈련하도록 설계된 오픈 소스 프레임워크로, 시뮬레이션과 실제 로봇 공학 간의 격차를 해소하는 데 중요합니다. Pollen Robotics에서 개발한 Microduck 로봇은 이 워크플로우의 대상 하드웨어 역할을 합니다. Isaac Lab을 Newton(액추에이터 모델링 시스템)과 결합하고 도메인 무작위화를 구현함으로써 개발자는 시뮬레이션에서 보행 정책을 훈련하고, 이를 ONNX 파일로 내보낸 후 실제 Microduck에 배포할 수 있습니다.

이 프로세스를 통해 연구자는 시뮬레이션의 속도와 안전성을 활용하면서도 마찰, 기계적 지연, 서보 유격과 같은 실제 요인을 처리할 수 있을 만큼 강력한 정책을 보장할 수 있습니다.

훈련 환경 설정

시뮬레이션 및 훈련 프로세스를 시작하려면 특정 하드웨어 및 소프트웨어 사전 요구 사항을 충족해야 합니다. 시뮬레이션 부분의 경우 지원되는 NVIDIA GPU와 드라이버가 장착된 Linux 워크스테이션이 필요합니다. 소프트웨어 종속성에는 Git과 uv가 포함됩니다.

최종 배포 단계에서는 구성된 실제 Microduck 로봇과 함께 온보드 소프트웨어가 설치되고 페어링된 게임패드와 같은 지원 제어 인터페이스가 필요합니다.

빠른 설치 단계

설치에는 Isaac Lab 저장소를 복제하고 uv를 사용하여 종속성을 동기화하는 작업이 포함됩니다. 설치 후 사용자는 uv run isaaclab list_envs --keyword MicroDuck --show_presets 명령을 사용하여 Microduck 작업 및 사전 설정의 가용성을 확인할 수 있습니다.

Microduck 환경 구성

Isaac Lab은 로봇 모델, 장면, 보상 함수 및 도메인 무작위화 기능을 포함하여 Microduck을 위한 완전하고 즉시 훈련 가능한 환경을 제공합니다. 초기 작업은 평지 보행에 초점을 맞추며, 계단, 경사로 및 고르지 않은 지형을 도입하는 거친 변형도 제공됩니다.

정책 인터페이스 세부 사항

보행 정책은 고정된 인터페이스를 사용하여 환경과 상호 작용합니다. 즉, 61개의 관측 값을 입력으로 받아들이고 14개의 관절 위치를 출력합니다. 관측 순서, 정규화 및 동작 스케일링이 훈련, 내보내기 및 배포 단계 전반에 걸쳐 일관되게 유지되는 것이 중요합니다.

보행 훈련 가속화

보행 훈련은 Isaac Lab이 GPU에서 여러 시뮬레이션 환경을 병렬로 실행할 수 있는 기능으로 가속화됩니다. 또한 여러 GPU에 걸친 분산 훈련을 활용하여 훈련 속도와 정책 견고성을 높일 수 있습니다.

실제 역학 모델링

시뮬레이션에서 정책 전송을 성공적으로 보장하기 위해 훈련에는 고급 물리 모델링 및 무작위화 기술이 통합됩니다.

  • 액추에이터 모델링: 시스템은 MJWarp 솔버와 Newton 기반 BAM(더 나은 액추에이터 모델)을 사용하여 서보 응답을 정확하게 모델링합니다. 백래시 사전 설정은 펌웨어 컨트롤러, 모터 전기적 한계, 마찰 및 지연을 모델링하여 위치 목표를 실제 서보 토크로 변환합니다.
  • 도메인 무작위화: 정책을 실제 하드웨어에 대비시키기 위해 각 Microduck 인스턴스에 대해 다양한 물리적 매개변수가 무작위화됩니다. 이러한 무작위화된 매개변수에는 질량/질량 중심, 지면 마찰, 관절 관성, 엔코더 오프셋, 배터리 전압/전압 강하 및 명령 지연이 포함됩니다. 지형 변화와 외부 밀기 또한 적용됩니다.
  • 백래시 시뮬레이션: 백래시는 관절이 방향을 바꿀 때 기어박스가 맞물리기 전의 약간의 움직임으로 정의되며, 훈련 중에 모델링되고 관절마다 다양하게 적용됩니다. 이러한 노출은 정책이 실제 로봇에서 발생하는 기계적 유격을 처리하는 데 도움이 됩니다.

훈련은 작업(예: IsaacContrib-Velocity-Rough-MicroDuck), 환경 수(예: 4096) 및 backlash 사전 설정을 지정하는 명령을 사용하여 시작할 수 있습니다.

정책 평가 및 ONNX 내보내기

정책을 실제 로봇에 배포하기 전에 시뮬레이션에서 평가하고 ONNX 형식으로 내보내야 합니다. Isaac Lab의 RSL-RL 재생 워크플로우가 이 자동 내보내기를 처리합니다.

평가 프로세스

평가는 Newton 시각화 도구에서 최신 체크포인트를 실행하여 수행됩니다. 이를 통해 사용자는 시뮬레이션 환경 전반에 걸쳐 정책의 성능을 관찰할 수 있습니다.

하드웨어 핸드오프를 위한 내보내기

배포를 위해 정책은 policy.onnx로 내보내집니다. 이 ONNX 파일은 실행과 관련된 exported 디렉토리에 배치됩니다. Microduck의 온보드 런타임은 이러한 ONNX 정책을 로드하고 실행하도록 설계되었습니다.

실제 Microduck에 배포

policy.onnx 파일이 시뮬레이션에서 검증되면 표준 네트워킹 도구를 사용하여 구성된 Microduck 로봇에 배포할 수 있습니다.

  1. 전송: 정책 파일은 scp를 사용하여 워크스테이션에서 로봇의 호스트 머신으로 복사됩니다.
  2. 로드: 정책은 robotctl policy load walk 명령을 사용하여 로봇에 로드되어 기본 보행 정책을 대체합니다.
  3. 테스트: 그런 다음 문서화된 컨트롤을 사용하여 로봇을 테스트하여 서기, 걷기, 회전 및 정지 동작을 확인할 수 있습니다. 배포된 정책은 넘어진 후 발판을 회복하는 능력을 포함한 견고성을 입증했습니다.

Isaac Lab 3.0으로 기능 확장

Isaac Lab 3.0은 기본 보행을 넘어 Microduck의 기능을 확장할 수 있는 광범위한 도구를 제공하여 여러 도메인에서 GPU 병렬 학습을 가능하게 합니다.

  • 고급 보행: 사용자는 거친 지형 작업 구성을 조정하여 계단, 경사로 및 고르지 않은 지면을 포함하여 지형 난이도를 점진적으로 증가시키는 커리큘럼을 통합할 수 있습니다.
  • 인식 및 내비게이션: 머리 카메라 깊이 및 로봇 상태 관측을 포함하여 정책을 확장할 수 있어 인식 기반 작업이 가능합니다. 비전 지원 조작의 예는 Kuka–Allegro 예제에서 제공됩니다.
  • 정밀 조작: 프레임워크는 Kuka–Allegro 들어올리기 및 재방향 지정 작업과 같은 조작 작업을 위해 팔과 다중 손가락 손을 훈련하는 것을 지원합니다.
  • 사용자 정의 환경: 개발자는 프로젝트 생성기를 사용하여 사용자 정의 작업을 구축하고 SimReady Central Library의 SimReady 자산을 통합하여 새로운 과제에 맞게 관측과 보상을 조정할 수 있습니다.

커뮤니티 및 리소스

내보낸 ONNX 정책은 Hugging Face Hub에서 공유하거나 Microduck Arena(공유 과제에 대해 호환 가능한 정책을 비교하도록 설계된 Hugging Face Space)에서 테스트할 수 있습니다. 이 생태계는 로봇 AI 모델의 커뮤니티 기여와 검증을 장려합니다.

Sources