Robotics

NVIDIA Isaac Lab 및 Newton을 사용하여 4족 보행 정책을 훈련하고 천 조작 시뮬레이션하기

Reading Time: 8 minutes

물리학은 로봇 시뮬레이션에서 매우 중요한 역할을 하며, 현실적인 환경 내에서 로봇의 행동과 상호작용을 정확하게 가상으로 표현하는 기반을 제공합니다. 연구원과 엔지니어는 이러한 시뮬레이터를 사용하여 안전하고 빠르며 비용 효율적인 방식으로 로봇 제어 알고리즘과 프로토타입 설계를 훈련, 개발, 테스트 및 검증할 수 있습니다.

하지만 시뮬레이션은 종종 현실과 일치하지 않으며, 이는 ‘심투리얼 갭(sim-to-real gap)’이라고 알려진 문제입니다. 로보틱스 개발자에게는 다양한 유형의 솔버 지원을 포함하여 실제 세계의 물리학을 모델링하기 위한 통합되고 확장 가능하며 사용자 맞춤형인 솔루션이 필요합니다.

본 게시물에서는 4족 보행 로봇을 한 지점에서 다른 지점으로 이동하도록 훈련하는 방법과, 산업용 매니퓰레이터로 옷을 접는 다중 물리 시뮬레이션을 설정하는 방법을 단계별로 안내합니다. 이 튜토리얼은 NVIDIA Isaac Lab 내의 Newton을 사용합니다.

Newton이란? 

Newton은 로봇 학습 및 개발을 발전시키기 위해 NVIDIA, Google DeepMind, Disney Research가 개발하고 Linux Foundation이 관리하는 오픈 소스 기반의 확장 가능한 물리 엔진입니다.

NVIDIA WarpOpenUSD를 기반으로 구축된 Newton은 로봇이 더 높은 정밀도, 속도, 확장성으로 복잡한 작업을 처리하는 방법을 학습할 수 있도록 지원합니다. Newton은 MuJoCo Playground 및 Isaac Lab과 같은 로봇 학습 프레임워크와 호환됩니다. Newton Solver API는 MuJoCo Warp를 포함한 다양한 물리 엔진이 텐서 기반 데이터 모델에서 작동할 수 있도록 인터페이스를 제공하며, 이를 통해 Isaac Lab의 훈련 환경과 쉽게 통합될 수 있습니다.

그림 1. Newton은 로봇 시스템의 물리적 모델과 상태를 기술하기 위한 GPU 가속 인터페이스를 제공하는 독립형 Python 패키지입니다.

Newton의 핵심에는 수치 적분 및 제약 조건 해결을 위한 솔버 모듈이 있습니다. 솔버는 제약 조건 기반 또는 힘 기반일 수 있으며, 직접법 또는 반복법을 사용하고, 최대 좌표 또는 축소 좌표 표현을 사용할 수 있습니다.

공통 인터페이스와 공유 데이터 모델을 사용하므로 MuJoCo Warp, Disney Research의 Kamino 솔버, 또는 사용자 지정 솔버 중 무엇을 실행하든 Newton과 일관되게 상호작용할 수 있습니다. 또한 이러한 모듈식 접근 방식을 통해 애플리케이션 코드를 다시 작성할 필요 없이 충돌 처리, 역기구학, 상태 관리, 타임스테핑 로직을 재사용할 수 있습니다.

훈련을 위해 Newton은 물리 상태를 PyTorch 및 NumPy 호환 배열로 노출하는 텐서 기반 API를 제공하여, 효율적인 배치 처리와 Isaac Lab 같은 로봇 학습 프레임워크와의 원활한 통합을 지원합니다. 훈련 스크립트는 Newton Selection API를 통해 관절 상태를 쿼리하고, 동작을 적용하며, 결과를 학습 알고리즘에 다시 피드백할 수 있습니다. 이 모든 과정은 단일하고 일관된 인터페이스를 통해 이루어집니다.

Google DeepMind가 개발한 MuJoCo Warp는 Newton 솔버로 완벽하게 통합되어 있으며, DeepMind 스택의 MJX 및 Playground에도 사용됩니다. 이를 통해 모델과 벤치마크는 최소한의 마찰로 Newton, Isaac Lab, MuJoCo 환경 간을 원활하게 이동할 수 있습니다.

마지막으로, Newton과 관련 솔버는 Apache 2.0 라이선스로 출시되어 커뮤니티가 자유롭게 도입하고, 확장하며, 기여할 수 있도록 보장합니다.

Newton 베타 릴리스의 주요 특징은 무엇인가요?

Newton 베타 릴리스의 주요 특징은 다음과 같습니다:

  • Newton의 메인 솔버인 MuJoCo Warp는 GeForce RTX 4090에서 MJX보다 보행 작업에서는 최대 152배, 조작 작업에서는 최대 313배 더 빠릅니다. NVIDIA RTX PRO 6000 Blackwell 시리즈는 MuJoCo Warp의 속도를 최대 44%, MJX의 속도를 최대 75% 추가로 향상시킵니다.
  • 차세대 Isaac Lab 백엔드로 사용되는 Newton 베타는 PhysX 대비 MuJoCo Warp를 사용할 경우, 손을 사용한 정교한 조작(in-hand dexterous manipulation)에서 최대 65% 더 빠른 성능을 달성합니다.
  • 의류와 같은 얇은 변형체(thin deformables)를 위한 Vortex Block Descent(VBD) 솔버와 입상 재료(granular materials)를 위한 암시적 물질점법(MPM) 솔버의 성능 및 안정성이 확장되었습니다.

Isaac Lab에서 Newton을 사용하여 4족 보행 로봇의 보행 정책을 훈련하는 방법

Isaac Lab에 새로 통합된 Newton 물리 엔진은 로보틱스 연구 및 개발을 위한 더 빠르고 견고한 워크플로우를 가능하게 합니다.

이 섹션에서는 4족 보행 로봇의 보행 정책을 훈련하고, 여러 시뮬레이터에서 성능을 검증하며, 실제 환경 배포를 위해 준비하는 엔드투엔드(end-to-end) 예시를 소개합니다. ANYmal 로봇을 사례 연구로 사용하여 이 강력한 ‘훈련-검증-배포’ 과정을 시연해 보겠습니다.

1단계: Newton으로 보행 정책 훈련하기

첫 번째 단계는 Isaac Lab의 강화 학습(Reinforcement Learning) 스크립트 중 하나를 사용하여 리포지토리를 설정하고 정책을 처음부터 훈련하는 것입니다. 이 예제에서는 rsl_rl 프레임워크를 사용하여 ANYmal-D 로봇이 평평하고 단단한 지형에서 걷도록 훈련합니다. GPU 병렬화는 수천 개의 동시 환경에서의 훈련을 가능하게 하여 빠른 정책 수렴을 지원합니다.

최고의 성능을 위해 헤드리스(headless) 모드에서 훈련을 시작하려면 다음 명령어를 실행하세요:

./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py 
--task Isaac-Velocity-Flat-Anymal-D-v0 --num_envs 4096 --headless

Newton 베타 릴리스부터는 이제 전체 Omniverse GUI의 성능 오버헤드 없이, 새로운 경량 Newton Visualizer를 사용하여 훈련 진행 상황을 모니터링할 수 있습니다. 간단히 --newton_visualizer 플래그를 추가하면 됩니다:

./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py 
--task Isaac-Velocity-Flat-Anymal-D-v0 --num_envs 4096 --headless 
--newton_visualizer

훈련을 마치면 다음 단계에서 사용할 수 있는 정책 체크포인트(.pt 파일)가 생성됩니다.

그림 2. Newton Visualizer를 사용하여 시각화한 RL 훈련 타임랩스

2단계: Sim2Sim 전이(transfer)로 정책 검증하기

Sim2Sim 전이는 정책이 단일 물리 엔진의 특정 특성에 과적합(overfit)되지 않았는지 확인하기 위한 중요한 온전성 확인(sanity check) 과정입니다. PhysX와 Newton과 같이 시뮬레이터 간에 성공적으로 전이될 수 있는 정책은 실제 로봇에서도 작동할 가능성이 훨씬 더 높습니다.

여기서 주요 과제는 물리 엔진마다 로봇의 USD를 파싱하고 관절의 순서를 다르게 지정할 수 있다는 점입니다. 이 문제는 간단한 YAML 매핑 파일을 사용하여 정책의 관측(observation)과 행동(action)을 리매핑하여 해결합니다.

Newton에서 훈련된 정책을 PhysX 기반 Isaac Lab에서 실행하려면, 제공된 전이 스크립트를 사용하세요:

./isaaclab.sh -p scripts/newton_sim2sim/rsl_rl_transfer.py \
    --task=Isaac-Velocity-Flat-Anymal-D-v0 \
    --num_envs=32 \
    --checkpoint <PATH_TO_POLICY_CHECKPOINT> \
    --policy_transfer_file
scripts/sim2sim_transfer/config/newton_to_physx_anymal_d.yaml

이 전이 스크립트는 isaac-sim / IsaacLab GitHub 리포지토리에서 찾으실 수 있습니다.

비디오 1. Newton 백엔드로 훈련된 ANYmal-D 정책이 PhysX 기반 Isaac Lab에 성공적으로 배포되어, Sim2Sim 전이가 실제로 작동하는 모습을 보여줍니다.

3단계: Sim2Real 배포 준비하기

워크플로우의 마지막 단계는 시뮬레이션에서 훈련된 정책을 실제 로봇으로 이전하는 것입니다.

이 예제에서는 Newton 백엔드를 사용하여 표준 Isaac Lab 환경 내에서만 ANYmal-D 로봇을 위한 정책을 훈련했습니다. 훈련 과정은 IMU 및 관절 엔코더 데이터와 같이 실제 로봇 센서에서 얻을 수 있는 관측(observation) 정보만을 사용하도록 의도적으로 제한되었습니다(즉, 훈련 중 어떠한 특권 정보도 사용되지 않았습니다).

취리히 연방 공과대학교(ETH Zurich) 로봇 시스템 연구소(RSL)의 NVIDIA 파트너의 도움을 받아, 이 정책은 실제 ANYmal 로봇에 바로 배포되었습니다. 그 결과 진행된 하드웨어 테스트에서 로봇이 걷는 보행 패턴(walking gait)을 성공적으로 수행하는 것이 확인되었으며, 이는 Isaac Lab에서의 훈련이 실제 시스템 테스트로 바로 이어지는 직접적인 경로를 보여줍니다(비디오 2).

비디오 2. Newton 백엔드를 탑재한 Isaac Lab 실험 버전에서 전체 훈련을 거쳐 하드웨어로 바로 이전된 정책에 따라, 실제 ANYmal 로봇이 보행 패턴(walking gait)을 수행하는 영상.

이 전체 ‘훈련-검증-배포’ 과정은 Newton이 어떻게 시뮬레이션에서 실제 로봇 공학의 성공으로 이어지는 길을 열어주는지를 보여줍니다.

독립형(standalone) Newton 엔진을 사용한 다중 물리 시뮬레이션

다중 물리 시뮬레이션은 단일 프레임워크 내에서 강체(예: 로봇 손)와 변형체(예: 천) 사이의 연동 상호작용을 포착합니다. 이를 통해 로봇 설계, 제어, 작업 성능에 대한 더 현실적인 평가와 데이터 기반 최적화가 가능해집니다.

Newton은 Isaac Lab과 함께 작동하지만, 개발자는 독립형(standalone) 모드에서 Python을 통해 직접 사용하여 복잡한 물리 시스템을 실험할 수도 있습니다.

이 워크스루에서는 Newton의 핵심 기능인 ‘서로 다른 물리적 특성을 가진 혼합 시스템 시뮬레이션하기’를 소개합니다. 강체 로봇 팔이 변형 가능한 천을 조작하는 예시를 통해, Newton API를 사용하여 여러 물리 솔버를 단일 실시간 시뮬레이션으로 쉽게 결합하는 방법을 집중적으로 살펴보겠습니다.

1단계: 인터랙티브 데모 실행하기

Newton은 쉽게 실행할 수 있는 다양한 예제 모음을 함께 제공합니다. Franka 로봇 팔과 천 데모는 Newton 리포지토리의 루트에서 단일 명령어로 실행할 수 있습니다.

먼저, 환경이 설정되었는지 확인하세요:

# Set up the uv environment for running Newton examples
uv sync --extra examples

이제, 천 조작 예제를 실행하세요:

# Launch the Franka arm and cloth demo
uv run -m newton.examples cloth_franka

이 명령어를 실행하면 인터랙티브 뷰어가 열리며, 여기에서 GPU 가속 시뮬레이션을 실시간으로 확인할 수 있습니다. Franka-cloth 데모는 GPU 기반 VBD Cloth 솔버를 특징으로 하며, RTX 4090에서 약 30 FPS로 실행되면서도 시뮬레이션 내내 관통 없는(penetration-free) 접촉을 보장합니다.

마찬가지로 관통 없는 동역학(penetration-free dynamics)을 적용하는 GPU-IPC(GPU-based Incremental Potential Contact 솔버)와 같은 다른 GPU 기반 시뮬레이터와 비교했을 때, 이 예제는 300배 이상 더 높은 성능을 달성합니다. 이로 인해 현재까지 공개된 가장 빠른 완전 비관통(fully penetration-free) 천 조작 데모 중 하나가 되었습니다.

비디오 3. Newton 독립형(standalone) 엔진이 강체와 변형체 물리학을 결합하여 천 조작 데모를 실행하는 영상. 이 시각화 자료는 NVIDIA Omniverse Kit으로 렌더링되었습니다.

2단계: 다중 물리 커플링 이해하기

이 데모는 서로 다른 동적 거동(dynamical behaviors)을 보이는 시스템들이 상호작용하는 다중 물리학의 좋은 예시입니다. 이는 각 구성 요소에 특화된 솔버를 할당함으로써 구현됩니다.

example_cloth_franka.py 파일을 살펴보면, 솔버가 어떻게 초기화되는지 확인할 수 있습니다:

# Initialize a Featherstone solver for the robot
self.robot_solver = SolverFeatherstone(self.model, ...)
 
# Initialize a Vertex-Block Descent (VBD) solver for the cloth
self.cloth_solver = SolverVBD(self.model, ...)

SolverFeatherstoneSolverMuJoCo와 같이 강체 시뮬레이션을 지원하는 다른 솔버로 변경하기만 하면 로봇 솔버를 쉽게 교체할 수 있습니다.

핵심은 이러한 솔버들이 조정되는 시뮬레이션 루프에 있습니다. 이 예제에서는 강체가 변형체에 영향을 주지만 그 반대로는 영향을 주지 않는 단방향 커플링(one-way coupling)을 사용합니다. 이는 천이 로봇 동역학에 미치는 영향을 무시할 수 있는 천 조작 사용 사례에서는 허용 가능한 방식입니다. 시뮬레이션 루프 로직은 간단합니다:

  • 천 업데이트: cloth_solver는 로봇과의 충돌에 반응하여 천의 움직임을 시뮬레이션합니다.
  • 로봇 업데이트: robot_solver가 Franka 팔의 상태를 진행시킵니다. 이때 팔은 기구학적 객체(kinematic object)로 작동합니다.
  • 충돌 감지: 엔진이 새롭게 배치된 로봇과 천 입자 사이의 충돌을 확인합니다.
# A simplified view of the simulation loop in example_cloth_franka.py
 
def simulate(self):
    for _step in range(self.sim_substeps):
         
        # 1. Step the robot solver forward
        self.robot_solver.step(self.state_0, self.state_1, ...)
 
        # 2. Check for contacts between the robot and the cloth
        self.contacts = self.model.collide(self.state_0, ...)
 
        # 3. Step the cloth solver, passing in robot contact information
        self.cloth_solver.step(self.state_0, self.state_1, ..., self.contacts, ...)

이렇게 명시적이고 사용자가 제어하는 루프는 Newton API의 강력함을 보여주며, 연구자들이 서로 다른 물리 시스템이 어떻게 결합(couple)되는지에 대해 세밀하게 제어할 수 있도록 해줍니다.

개발팀은 더 깊고 통합적인 커플링으로 Newton을 확장할 계획입니다. 여기에는 양방향 커플링(two-way coupling) 탐구가 포함됩니다. 예를 들어 흙이나 진흙 같은 변형 가능한 재료 위를 로봇이 이동할 때처럼 각 시스템이 서로에게 미치는 동역학적 영향이 큰 시나리오가 여기에 해당합니다. 이러한 환경에서는 흙이 보행하는 로봇(강체)에 역으로 힘을 가할 수 있습니다. 또한 개발팀은 일부 솔버 조합에 대해 시스템 간의 힘 교환을 더 자동적으로 관리하기 위한 암시적 커플링(implicit coupling)도 구상하고 있습니다.

생태계는 Newton을 어떻게 도입하고 있나요?

Newton 오픈 생태계는 빠르게 확장되고 있으며, 선도적인 대학과 기업들이 특화된 솔버와 워크플로우를 통합하고 있습니다. 촉각 감지에서 천 시뮬레이션, 정교한 조작에서 험지 보행에 이르기까지, 이러한 협력들은 Newton이 로봇 학습을 발전시키고 심투리얼 갭(sim-to-real gap)을 해소하기 위한 공통 기반을 어떻게 제공하는지를 잘 보여줍니다.

취리히 연방 공과대학교(ETH Zurich) 로봇 시스템 연구소(RSL)는 토목 공사 애플리케이션, 특히 중장비 자동화를 위한 다중 물리 시뮬레이션에 Newton을 적극적으로 활용해 왔습니다. 그들은 흙, 자갈, 돌이 강체 기계와 충돌하는 것과 같은 입상 재료의 상호작용을 포착하기 위해 Newton의 암시적 물질점법(MPM) 솔버를 사용합니다.

이와 병행하여, ETH는 로보틱스 및 그래픽스 연구 분야에서 Warp를 더욱 광범위하게 적용해 왔습니다. 여기에는 전개 가능한 보행 제어를 위한 미분 가능한 시뮬레이션, 가우시안 스플랫(Gaussian splats)을 이용한 궤적 최적화(FOCI), 그리고 GarmentCodeData 데이터셋을 통한 대규모 3D 의류 모델링 등이 포함됩니다.

비디오 4. Newton을 사용하여 중장비와 쌓여 있는 입상 재료(granular material) 간의 상호작용을 포착한 영상. (데모 제공: 취리히 연방 공과대학교(ETH Zurich)의 Maximilian Krause, Lorenzo Terenzi, Lennart Werner)

Lightwheel은 SimReady 에셋 개발과 솔버 최적화를 통해 Newton에 적극적으로 기여하고 있으며, 특히 다중 물리 시나리오에서의 흙, 케이블과 같은 변형체(deformables) 분야에 집중하고 있습니다.

아래 데모에서는 넓은 환경에 적용된 암시적 MPM 솔버를 사용하여, 여러 재료로 구성된 비강체(non-rigid) 지형 위를 걷는 ANYmal 4족 로봇의 보행을 모델링하는 모습을 보여줍니다.

비디오 5. ANYmal 4족 로봇이 모래와 자갈 같은 여러 재료로 구성된 비강체(non-rigid) 지형과 상호작용하는 영상.

베이징 대학교(Peking University, PKU)는 자체 IPC 기반 솔버인 Taccel을 통합하여 로봇 매니퓰레이터를 위한 비전 기반 촉각 센싱을 시뮬레이션함으로써, Newton을 촉각(tactile) 영역으로 확장하고 있습니다.

PKU 연구원들은 Newton의 GPU 가속 및 미분 가능한 아키텍처를 활용하여, 촉각 및 변형체 조작에 매우 중요한 세밀한 접촉 상호작용을 모델링할 수 있습니다.

비디오 6. Taccel을 이용한 Tac-Man 조작 시뮬레이션은 실제 실행 결과와 거의 일치하며, 매우 작은 심투리얼 갭(sim-real gap)만을 보여줍니다.

Style3D는 의류 및 연체(soft-body) 시뮬레이션 분야의 깊은 전문 지식을 Newton에 도입하여, 복잡한 상호작용이 포함된 의류 및 변형체의 고성능(high-fidelity) 모델링을 지원합니다.

Style3D 솔버의 간소화된 버전은 이미 Newton에 통합되었으며, 향후 고급 사용자들이 수백만 개의 정점(vertex)을 포함하는 전체 규모의 시뮬레이션을 실행할 수 있도록 API를 공개할 계획입니다.\

비디오 7. Newton을 사용하여 복잡한 상호작용이 포함된 의류 및 변형체를 고성능(high-fidelity)으로 모델링하는 영상

뮌헨 공과대학교(TUM)는 실제 로봇에서 검증된 정교한 조작(dexterous manipulation) 정책을 다시 시뮬레이션에서 실행하기 위해 Newton을 활용하고 있으며, 이는 시뮬레이션과 현실의 순환 고리를 닫는(closing the loop) 중요한 첫걸음입니다. 또한, MuJoCo Warp에서 4,000개의 병렬 환경으로 정책을 훈련하는 것도 이미 가능합니다. 다음 목표는 정책을 하드웨어로 이전하는 것이며, 그 후 공간 분해능 촉각 스킨(spatially resolved tactile skin)을 사용한 미세 조작(fine manipulation)으로 프레임워크를 확장할 예정입니다.

TUM AIDX Lab이 촉각 기반 인핸드 조작(tactile in-hand manipulation) 에이전트 학습에 대한 로보틱스 연구를 가속화하기 위해 어떻게 Warp를 활용했는지 더 자세히 알아보세요. 또한, AIDX Lab이 로봇 학습 연구를 발전시키기 위해 Newton을 어떻게 사용하고 있는지 더 자세히 알아보세요.

비디오 8. 실제 로봇에서 검증을 마친 정교한 조작(dexterous manipulation) 정책을 Newton을 통해 다시 시뮬레이션에서 실행하는 모습.

Newton 시작하기

Newton 물리 엔진은 모듈식이고 확장 가능하며 시뮬레이터에 구애받지 않는(simulator-agnostic) 설계를 통해 로보틱스 연구원들에게 필요한 시뮬레이션 충실도를 제공하며, 로봇 학습을 위해 다양한 솔버를 손쉽게 결합할 수 있도록 지원합니다.

오픈 소스, 커뮤니티 주도 프로젝트로서 개발자들은 Newton을 자유롭게 사용, 배포, 확장할 수 있으며, 사용자 지정 솔버를 추가하고 생태계에 다시 기여할 수도 있습니다.

9월 27일부터 10월 2일까지 대한민국 서울에서 열리고 있는 CoRL & Humanoids 학회에서 발표되는 연구에 대해 더 자세히 알아보세요.

또한, 추론, 보행, 조작 능력을 테스트하는 로보틱스 벤치마크인 2025 BEHAVIOR Challenge에 참여하세요. 이 챌린지에는 50개의 가정 내 과제와 10,000개의 원격 조작 데모가 포함됩니다.

뉴스레터를 구독하거나 LinkedIn, Instagram, X, Facebook에서 NVIDIA Robotics 채널을 팔로우하고 최신 소식을 받아보세요. NVIDIA 문서YouTube 채널을 살펴보고, NVIDIA Developer Robotics 포럼에도 참여하세요. 로보틱스 여정을 시작하고 싶다면, 지금 바로 무료 NVIDIA Robotics Fundamentals 클래스에 등록하세요.

Discuss (0)

Tags