Pollux Logo

Isaac Lab – 데모 실행 및 핵심 키워드 정리

Isaac Lab은 NVIDIA의 Isaac Sim 위에 구축된 강화학습 환경 라이브러리로, 다양한 로봇 시뮬레이션 환경을 빠르게 구성하고 실험할 수 있게 도와줍니다. 이번 글에서는 Isaac Lab의 대표적인 데모 스크립트를 실행하는 방법과 함께, 각 스크립트 구성 요소의 핵심 키워드를 정리합니다.

특히 로컬 환경에서 Showroom Demo를 실행하고, 시뮬레이션 환경 구성, 로봇 배치, 랜덤 동작 부여 등 다양한 기능을 확인하는 과정을 단계적으로 설명합니다.

Showroom Demos란?

Image

Isaac Lab에서는 Showroom Demos를 통해 다양한 로봇 시뮬레이션 데모를 제공하고 있습니다.

공식 링크:

🔗 Isaac Lab Showroom Demos

실행 가능한 데모 예제

Image

아래는 Isaac Lab에서 제공하는 대표적인 데모 예제입니다:

./isaaclab.sh -p source/standalone/demos/quadrupeds.py
  • amrs.py – AMR(Autonomous Mobile Robot) 시뮬레이션
./isaaclab.sh -p source/standalone/demos/amrs.py
  • hands.py – 로봇 핸드 관련 시뮬레이션
./isaaclab.sh -p source/standalone/demos/hands.pyImage

1. Isaac Lab 설치 및 예제 실행

Isaac Lab을 로컬에 설치한 후 다음과 같은 순서로 데모를 실행합니다.

  1. GitHub에서 Isaac Lab 저장소 clone
  2. 로컬 디렉토리 /isaac/isaacLab 로 이동
  3. 실행 명령어 입력
./isaaclab.sh -p source/standalone/demos/quadrupeds.pyImageImage

2. quadrupeds.py 구성 설명

Image

해당 스크립트는 from omni.isaac.lab_assets를 통해 사전에 정의된 로봇 설정(Configuration)을 불러옵니다.

이 구성은 여러 종류의 4족 보행 로봇의 물리적 속성과 동작 세팅이 포함되어 있어, 다양한 로봇 테스트에 활용됩니다.

3. define_origins() 함수

Image

define_origins() 함수는 시뮬레이션 내 각 환경(환경 = 로봇 하나)의 시작 위치를 정의합니다.

이때 생성되는 env_origins(num_envs x 3) 크기의 텐서이며, 3은 x, y, z 좌표를 의미합니다.

  • num_cols: 환경을 가로로 배치할 개수 (예: 정사각형 배치 위해 √N 사용)
  • num_rows: 총 환경 수를 열로 나눈 행 수

이러한 방식으로 수십~수백 개의 로봇을 한 화면에 동시에 배치할 수 있습니다.

4. design_scene() 함수

Image

시뮬레이션 씬(Scene)을 구성하는 함수로, 다음과 같은 요소들이 포함됩니다:

  • Ground plane (지면)
  • Light sources (광원)
  • 환경 조명 강도 설정

이 구성은 Isaac Sim의 UI에서도 수동으로 설정 가능하지만, 코드를 통해 자동화하면 반복 실험에 효율적입니다.

5. origin 및 run_simulator()

  • origin은 학습에 사용될 로봇들의 위치를 일괄 지정합니다.
Image
  • run_simulator()는 설정이 완료된 후 시뮬레이션을 실제로 실행하는 함수입니다.
Image

또한, 카메라 뷰를 설정하기 위해 sim.set_camera_view()를 호출해 관찰 포인트를 정의할 수 있습니다.

6. 반복적 행동 설정 및 랜덤 동작 부여

Image

각 로봇은 시뮬레이션 시작 시 자동으로 spawn되며, 관절의 초기 위치도 설정됩니다.

Image

이때 무작위성(Randomness)을 부여해 다양한 동작을 학습할 수 있게 구성됩니다.

예:

Image

이와 같은 랜덤 초기화는 로봇이 특정 상황에 과적합되지 않도록 방지하는 데에 중요한 역할을 합니다.

7. random function 조정: 0.1 → 5.1

랜덤 함수의 스케일 값을 변경하면 관절의 움직임에도 큰 차이가 발생합니다.

  • 0.1: 상대적으로 안정적인 동작
Image
  • 5.1: 관절 움직임에 큰 변동성 (학습에 따라 더 많은 시나리오를 다룰 수 있음)
ImageImage

이러한 파라미터 조정은 강화학습 성능 향상 또는 테스트 다양성 확보에 중요한 영향을 미칩니다.

마무리

이번 글에서는 Isaac Lab의 대표적인 데모 예제(quadrupeds.py)를 중심으로 시뮬레이션 환경 구성과 실행 과정을 설명했습니다.

또한 각 구성 함수의 역할과 핵심 키워드를 정리해, 로봇 학습 환경을 어떻게 구성하고 동작을 확장할 수 있는지에 대한 기초를 다졌습니다.

특히 Isaac Lab은 다음과 같은 목적에 적합합니다:

  • 멀티 로봇 시뮬레이션
  • 강화학습 환경 셋업
  • 관절 제어 및 커스텀 동작 실험
  • 카메라 시점 설정 및 렌더링 최적화

Isaac Sim 기반의 학습/검증 워크플로우를 계획 중이라면, Isaac Lab을 통해 손쉽고 확장성 있는 구조를 구성할 수 있습니다.

이 글 공유하기:

Copyright 2025. POLLUX All rights reserved.