02. PhysX 5 GPU 강체 물리
Isaac Sim의 물리 백엔드는 NVIDIA PhysX 5다. 강체·관절·연체·천(soft body, cloth)·유체(PBD)까지 GPU에서 한꺼번에 시뮬레이션할 수 있다. 같은 GPU에서 RTX 렌더러와 PhysX가 메모리를 공유하기 때문에 "수천 개 환경 병렬화 + 동시 렌더" 같은 RL 학습 패턴이 자연스럽게 가능하다.
이 기능의 강점
- GPU 가속 강체·관절·소프트바디 동시 시뮬레이션
isaacsim.core.api.World한 줄로 물리 컨텍스트 구성 —world.step()만 호출- USD
UsdPhysics스키마로 mass·friction·CoM이 씬에 인라인 저장 - Determinism 모드 + GPU 시뮬 — RL 학습 재현성 확보
구현 방법
World 생성 → DynamicCuboid/Articulation 등록 → world.reset() → world.step(render=True) 루프. 6.0에서는 render=False가 timeline을 정지시키므로 매 step마다 timeline.play() 확인 필요.
최소 데모
검증 결과
cube_0가 z=1.0 → 0.25로 자유낙하 후 안정. 3장의 PNG에서 적층→붕괴→안정 상태가 분명히 보임.
핵심 코드 발췌
from isaacsim.core.api import World
from isaacsim.core.api.objects import DynamicCuboid
import omni.timeline
world = World(stage_units_in_meters=1.0)
world.scene.add_default_ground_plane()
for i in range(5):
world.scene.add(DynamicCuboid(prim_path=f"/World/Cube_{i}",
name=f"cube_{i}", position=np.array([0,0,1.0+i*0.7]), size=0.5))
world.reset()
timeline = omni.timeline.get_timeline_interface()
for _ in range(180):
if not timeline.is_playing(): timeline.play()
world.step(render=True)
코드 다운로드 (zip)
실무 예제 — Franka + YCB cracker_box + 동적 큐브 타워
Franka Panda 로봇 + YCB 데이터셋의 cracker_box + 4개 동적 큐브 타워를 한 씬에 두고 GPU 물리 시뮬. 산업 매니퓰레이션 학습 데이터에 가까운 구성.
Franka articulation, YCB rigid body, DynamicCuboid 3종이 한 PhysX scene 안에서 동시에 동작. World.step() 하나로 모든 강체 + 관절이 GPU에서 함께 갱신된다.
실무 데모 코드
from isaacsim.core.api import World
from isaacsim.core.api.objects import DynamicCuboid
from isaacsim.core.utils.stage import add_reference_to_stage
from isaacsim.storage.native import get_assets_root_path
assets = get_assets_root_path()
world = World()
world.scene.add_default_ground_plane()
add_reference_to_stage(assets + "/Isaac/Robots/FrankaRobotics/FrankaPanda/franka.usd", "/World/Franka")
add_reference_to_stage(assets + "/Isaac/Props/YCB/Axis_Aligned/003_cracker_box.usd", "/World/Box")
for i in range(4):
world.scene.add(DynamicCuboid(prim_path=f"/World/Tower_{i}",
position=np.array([0.5, 0.4, 0.1+i*0.16]), size=0.12))
실무 데모 코드 zip