📘 [IsaacSim 6.0] Robot and Sensor Simulation 정리
Development Components 노트에 이어, IsaacSim의 핵심이라 할 수 있는 Robot and Sensor Simulation(로봇·센서 시뮬레이션)을 정리합니다. 로봇을 가져오고(import), 설정하고(setup), 구동하고(simulation), 센서를 붙이고, 물리(physics)로 움직이게 하는 전 과정을 다룹니다.
본 글은 NVIDIA 공식 문서를 학습하며 핵심을 한국어로 요약·정리한 노트입니다. 정확한 원문은 각 절 끝의 🔗 링크를 참고하세요.
📥 Importers and Exporters
외부 로봇·3D 모델을 IsaacSim의 USD 에셋으로 변환하는 도구들입니다. 모든 임포터의 결과물은 USD입니다.
| 도구 | 설명 |
|---|---|
| URDF Importer / Exporter | URDF(Unified Robot Description Format) ↔︎ USD 변환. Exporter는 USD→URDF로 타 로보틱스 툴과 호환 |
| MJCF Importer | MuJoCo MJCF 파일을 USD로 변환 |
| CAD Tools | Onshape Importer(CAD 설계 직접 통합), CAD Converter(다양한 CAD 포맷→USD) |
| ShapeNet Importer | (Deprecated) ShapeNet 데이터셋 3D 모델 임포트 |
💡 Exporter 덕분에 IsaacSim에서 정비한 에셋을 다른 로보틱스 프레임워크로 다시 내보낼 수 있어, 에셋 파이프라인이 양방향으로 이어집니다.
🔗 원문: Importers and Exporters
🔧 Robot Setup
임포트한 로봇을 시뮬레이션에 적합하게 다듬는 도구 모음입니다.
| 도구 | 역할 |
|---|---|
| Robot Wizard (Deprecated) | 자동 로봇 구성 레거시 도구(신규 유틸리티로 대체됨) |
| Robot Inspector Window | UI에서 로봇 속성 조회·수정(마스킹 연산 API 포함) |
| Robot Poser | 이름이 붙은 포즈(named pose)를 schema 기반으로 작성·관리 |
| Robot Assembler | 개별 컴포넌트를 결합해 완성된 로봇 구조로 조립 |
| Asset Structure & Transformer | 로봇 USD 구성 정의 + 규칙 기반 변환·검증 API |
| Editor Tools | 메시 병합(mesh merging), gain 튜닝, self-collision 감지 |
| Inspector Tools | 조인트·물리 검사, 시뮬레이션 데이터 시각화 |
🔗 원문: Robot Setup
🎮 Robot Simulation
설정이 끝난 로봇을 실제로 제어·구동하는 컨트롤러와 도구입니다.
- Articulation Controller: articulated 로봇의 조인트 단위 제어
- Mobile Robot Controllers: 바퀴 로봇 제어. 최소한의 로봇별 파라미터로 동작하는 보편 공식(differential / holonomic / Ackermann)
- Motion Generation (Deprecated): 매니퓰레이터용 복잡한 최적화 기반 컨트롤러
- Surface Gripper Extension: 매니퓰레이션을 위한 그리퍼 시뮬레이션·제어
- Grasp Editor: 로봇 파지(grasping) 동작 설계·구성
💡 신규 Motion Generation (Experimental) API는 바퀴 로봇·매니퓰레이터·휴머노이드의 제어 알고리즘을 하나의 프레임워크로 통합하고, 컨트롤러를 유연하게 조합(composition)할 수 있게 합니다.
🔗 원문: Robot Simulation
🦿 Robot Motion (Experimental) & Newton Actuators
- Robot Motion (Experimental): cuMotion(GPU 가속 모션 플래닝), PINK 통합 등 실험적 모션 생성 기능을 제공.
- Newton Actuators: 차세대 물리 엔진 Newton의 액추에이터 모델. 액추에이터 셋업·authoring, OmniGraph 연동, 튜닝 팁을 다룸. (Newton 물리 엔진에 대한 배경은 Newton 입문 노트 참고)
🔗 원문: Robot Motion · Newton Actuators
📡 Sensors
IsaacSim은 다양한 확장(extension)을 통해 그라운드 트루스(ground truth) 인지 데이터를 제공하는 센서를 시뮬레이션합니다. 합성 데이터 생성, RL 학습, 디지털 트윈에 활용됩니다.
카테고리별 센서
| 분류 | 센서 |
|---|---|
| Camera | RGB, depth, structured light 등 시각 인지 데이터 |
| RTX Sensors (ray-tracing 기반) | RTX Lidar(레이 캐스팅 기반 3D 포인트 클라우드), RTX Radar(합성 개구 레이더), RTX Acoustic(음향 인지) |
| Physics-Based Sensors | articulation joint force, contact, effort/torque, IMU, joint state, physics raycast |
| PhysX SDK Sensors | 커스텀 물리 쿼리용 generic sensor, PhysX lidar, lightbeam proximity, proximity 감지 |
| Sensor Assets | 카메라·depth 조립체, 비시각 센서 컴포넌트 등 사전 구성된 센서 모델 |
💡 RTX 센서는 커스텀 머티리얼 정의와 multi-tick 렌더링을 지원해 더 정확한 물리 기반 인지를 만들어 냅니다.
🔗 원문: Sensors
⚙️ Physics
IsaacSim 물리는 에셋의 USD Physics schema를 파싱해 객체를 이산 타임스텝(discrete timestep)으로 전진시키고, 갱신된 상태를 다시 USD에 기록합니다. 런타임 파라미터 변경도 물리 객체에 전파됩니다.
물리 기본 요소
| 요소 | 설명 |
|---|---|
| Rigid Body | 질량·관성을 가진 물리 객체 |
| Collider | 충돌 경계를 정의하는 기하 형상 |
| Contacts & Friction | 객체 간 상호작용 힘 |
| Joint | 자유도(DoF)를 갖고 rigid body를 잇는 제약 |
| Articulation | 연결된 바디의 계층 구조(로봇에 사용) |
| Drive | 조인트에 힘을 가하는 액추에이터 |
물리 백엔드
- PhysX SDK (기본)
- Newton (실험적) — MuJoCo 설정을 포함한 대안 솔버 전략 제공. 런타임에 엔진 전환 가능.
진단·개발 도구
- Physics Inspector: 조인트·rigid body 속성 검사
- Simulation Data Visualizer: 런타임 물리 데이터 모니터링
- Physics Debug Window: 트러블슈팅·시각화
- Physics Static Collision Extension: 정적 충돌 처리 관리
🔗 원문: Physics
정리
- Importers/Exporters: URDF·MJCF·CAD를 USD로(그리고 일부 역방향) 변환.
- Robot Setup: Inspector·Poser·Assembler·Transformer로 로봇을 시뮬레이션용으로 정비.
- Robot Simulation: articulation/mobile 컨트롤러, 그리퍼, grasp editor로 구동.
- Sensors: Camera / RTX(Lidar·Radar·Acoustic) / Physics·PhysX 센서로 ground truth 데이터 생성.
- Physics: USD Physics schema 기반, PhysX(기본)·Newton(실험) 백엔드, 런타임 전환 지원.
다음 노트에서는 Utilities(Browsers, Templates, Debugging & Profiling, Extensions)를 정리합니다.