Isaac Lab은 NVIDIA의 Isaac Sim 위에 구축된 강화학습 환경 라이브러리로, 다양한 로봇 시뮬레이션 환경을 빠르게 구성하고 실험할 수 있게 도와줍니다. 이번 글에서는 Isaac Lab의 대표적인 데모 스크립트를 실행하는 방법과 함께, 각 스크립트 구성 요소의 핵심 키워드를 정리합니다.
특히 로컬 환경에서 Showroom Demo를 실행하고, 시뮬레이션 환경 구성, 로봇 배치, 랜덤 동작 부여 등 다양한 기능을 확인하는 과정을 단계적으로 설명합니다.
Isaac Lab에서는 Showroom Demos를 통해 다양한 로봇 시뮬레이션 데모를 제공하고 있습니다.
공식 링크:
실행 가능한 데모 예제
아래는 Isaac Lab에서 제공하는 대표적인 데모 예제입니다:
Isaac Lab을 로컬에 설치한 후 다음과 같은 순서로 데모를 실행합니다.
/isaac/isaacLab
로 이동해당 스크립트는 from omni.isaac.lab_assets
를 통해 사전에 정의된 로봇 설정(Configuration)을 불러옵니다.
이 구성은 여러 종류의 4족 보행 로봇의 물리적 속성과 동작 세팅이 포함되어 있어, 다양한 로봇 테스트에 활용됩니다.
define_origins()
함수는 시뮬레이션 내 각 환경(환경 = 로봇 하나)의 시작 위치를 정의합니다.
이때 생성되는 env_origins
는 (num_envs x 3)
크기의 텐서이며, 3은 x, y, z 좌표를 의미합니다.
이러한 방식으로 수십~수백 개의 로봇을 한 화면에 동시에 배치할 수 있습니다.
시뮬레이션 씬(Scene)을 구성하는 함수로, 다음과 같은 요소들이 포함됩니다:
이 구성은 Isaac Sim의 UI에서도 수동으로 설정 가능하지만, 코드를 통해 자동화하면 반복 실험에 효율적입니다.
또한, 카메라 뷰를 설정하기 위해 sim.set_camera_view()
를 호출해 관찰 포인트를 정의할 수 있습니다.
각 로봇은 시뮬레이션 시작 시 자동으로 spawn되며, 관절의 초기 위치도 설정됩니다.
이때 무작위성(Randomness)을 부여해 다양한 동작을 학습할 수 있게 구성됩니다.
예:
이와 같은 랜덤 초기화는 로봇이 특정 상황에 과적합되지 않도록 방지하는 데에 중요한 역할을 합니다.
랜덤 함수의 스케일 값을 변경하면 관절의 움직임에도 큰 차이가 발생합니다.
이러한 파라미터 조정은 강화학습 성능 향상 또는 테스트 다양성 확보에 중요한 영향을 미칩니다.
이번 글에서는 Isaac Lab의 대표적인 데모 예제(quadrupeds.py)를 중심으로 시뮬레이션 환경 구성과 실행 과정을 설명했습니다.
또한 각 구성 함수의 역할과 핵심 키워드를 정리해, 로봇 학습 환경을 어떻게 구성하고 동작을 확장할 수 있는지에 대한 기초를 다졌습니다.
특히 Isaac Lab은 다음과 같은 목적에 적합합니다:
Isaac Sim 기반의 학습/검증 워크플로우를 계획 중이라면, Isaac Lab을 통해 손쉽고 확장성 있는 구조를 구성할 수 있습니다.
이 글 공유하기: