📘 [IsaacSim 6.0] Base Applications 정리
Concepts 노트에 이어, IsaacSim 위에서 동작하는 Base Applications(기반 응용)들을 정리합니다. 이 섹션은 IsaacSim을 토대로 로봇 학습, ROS 2 연동, 합성 데이터 생성, 디지털 트윈과 같은 실제 활용 시나리오를 구현하는 애플리케이션 군을 다룹니다.
본 글은 NVIDIA 공식 문서를 학습하며 핵심을 한국어로 요약·정리한 노트입니다. 정확한 원문은 각 절 끝의 🔗 링크를 참고하세요.
🦾 Isaac Lab
Isaac Lab은 IsaacSim을 위한 공식 로봇 학습(robot learning) 프레임워크입니다. 강화학습(Reinforcement Learning), 모방학습(Imitation Learning) 등을 위한 API와 예제를 제공합니다.
핵심 목적
- 강화학습 에이전트 학습
- 시연(demonstration) 기반 모방학습
- 커스터마이즈 가능한 액추에이터 모델을 통한 Sim-to-Real 전이
- 태스크 환경 설계 및 평가

주요 특징
- 설정(config) 기반 모듈러 시스템: 환경을 손쉽게 생성·수정
- 성능 최적화된 유연한 워크플로우 아키텍처
- 바로 학습 가능한 사전 구축 환경 제공
- 인기 RL·모방학습 라이브러리와 통합
- 게임패드·키보드 등 주변기기 입력으로 데이터 수집 지원
💡 Isaac Lab은 IsaacSim의 물리·센서·렌더링을 토대로 동작하며, 과거의 IsaacGymEnvs, OmniIsaacGymEnvs, Orbit을 대체하는 권장 프레임워크입니다. 로코모션(locomotion)부터 매니퓰레이션(manipulation)까지 정책 개발·평가·배포에 사용됩니다.
🔗 원문: Isaac Lab Tutorials
🤖 ROS 2
IsaacSim은 ROS 2 Bridge를 통해 시뮬레이션과 ROS 2 생태계를 실시간으로 연결합니다. 외부 ROS 2 노드가 시뮬레이션 로봇을 명령하고 센서 데이터를 받을 수 있습니다.
핵심 기능
- 양방향 통신: 토픽(topic) publish/subscribe, service/client 패턴
- 센서 통합: 카메라, RTX Lidar, RTX Radar, 물리 기반 센서. 압축 이미지 전송·publish rate 조절 지원
- 내비게이션 & 매니퓰레이션: ROS 2 Navigation Stack(멀티 로봇·heightmap importer), MoveIt 2 모션 플래닝, OmniGraph 기반 조인트 제어, Ackermann 컨트롤러
튜토리얼 카테고리
- 기초: TurtleBot URDF 임포트, 기본 주행, 클럭 동기화, real-time factor publish
- 센서: 카메라 publish, 노이즈 주입, 압축 이미지, radar/lidar
- 고급 스택: Navigation, MoveIt 2, 멀티 로봇 협조
- 커스텀 개발: Python/C++ OmniGraph 노드, 커스텀 메시 타입, service 구현
- 프로덕션: launch 파일 관리, 시뮬레이션 제어 인터페이스, RL 정책 배포
🔗 원문: ROS 2 Tutorials
🎨 Synthetic Data Generation (Replicator)
Replicator는 omni.replicator 확장 기반의 합성 데이터 생성(SDG, Synthetic Data Generation) 툴킷입니다. 시뮬레이션 안에서 라벨이 달린 데이터셋을 만들어 ML·인지(perception) 모델 학습에 사용합니다.
핵심 개념
- Domain Randomization(도메인 랜덤화): 조명, 머티리얼, 객체 포즈, 카메라 위치 등 씬 파라미터를 체계적으로 변형해 다양한 학습 시나리오를 생성 → 모델 강건성(robustness) 향상
- Annotators(어노테이터): 라벨 자동 생성
- Bounding box
- Instance / Semantic segmentation
- Depth map
- 커스텀 semantic 데이터
- Writers(라이터): 어노테이션 데이터를 표준 포맷으로 저장 → ML 파이프라인으로 전달
활용 예
- 환경 랜덤화를 적용한 AMR 내비게이션
- UR10 로봇 팔레타이징(palletizing)
- 씬 기반·객체 기반 데이터셋 워크플로우
- 캘리브레이션을 포함한 멀티 카메라 시뮬레이션
💡 실제 하드웨어 없이 인지 시스템을 빠르게 반복(iteration) 개발할 수 있다는 것이 SDG의 가장 큰 장점입니다.
🔗 원문: Replicator Tutorials
🏭 Digital Twin
Digital Twin(디지털 트윈) 섹션은 현실적인 시뮬레이션 환경과 시스템을 구축하는 도구를 제공합니다.
| 기능 | 설명 |
|---|---|
| Warehouse Logistics | Warehouse Creator Extension으로 창고 환경 구축, 컨베이어 벨트 생성, 정적 에셋 라이브러리, NVIDIA cuOpt 연동 경로 최적화 |
| Cortex | (v6.0.0에서 deprecated) 행동 프로그래밍 시스템. py_trees, transitions 등 오픈소스로 마이그레이션 권장 |
| Occupancy Mapping | 환경의 공간 표현(맵) 생성 → 내비게이션 계획·씬 이해 |
| Live Camera Streaming | RTSP 프로토콜 기반 실시간 영상 전송 → 외부 클라이언트·분석 시스템이 시뮬레이션 카메라 피드를 소비 |
이 도구들은 환경 생성 → 자율 시스템 제어 → 센서 스트리밍 → 물류 최적화로 이어지는 완전한 디지털 트윈 워크플로우를 구성합니다.
🔗 원문: Digital Twin
🧩 Application Template
Application Template은 IsaacSim을 기반으로 자체 애플리케이션을 빌드·패키징할 수 있는 템플릿/스타터입니다. 커스텀 앱의 확장(extension) 구성, 의존성, 빌드 설정의 출발점을 제공해 IsaacSim 위에 독립 실행형 제품을 구축할 때 사용합니다.
🔗 원문: Application Template
정리
- Isaac Lab: RL·모방학습용 로봇 학습 프레임워크 (구 Orbit/IsaacGymEnvs 대체).
- ROS 2: 양방향 브리지로 토픽·센서·Nav2·MoveIt 2 연동.
- Replicator (SDG): 도메인 랜덤화 + 어노테이터로 라벨링된 합성 데이터 생성.
- Digital Twin: 창고·맵핑·스트리밍 기반 디지털 트윈 (Cortex는 deprecated).
- Application Template: 커스텀 IsaacSim 앱 빌드의 출발점.
다음 노트에서는 Development Components(Development Tools, Python Scripting, GUI Reference, OmniGraph)를 정리합니다.