欢迎光临
我们一直在努力

Isaac Sim,python编程,所涉及的核心概念

在这里插入图片描述

一、从图看Isaac Sim的“层级结构”

这张图直观展示了Isaac Sim中5个核心概念的包含关系:

  • 最外层:Application(App)
    对应图中绿色边框的“软件界面”——它是整个Isaac Sim的“容器”,是你启动的程序本身。
    编程中,你需要先初始化Application对象,才能加载后续所有模块。

  • 中间层:Simulation(Sim)
    对应图中黄色区域——它是App内部的“仿真引擎核心”,负责调度物理计算、时间推进等。
    你的场景、世界都会运行在Sim的调度下。

  • 核心层:World
    对应图中蓝色区域——它是Sim内的“虚拟世界实例”,一个App可以创建多个World(但通常用一个),用来管理所有场景、物体。

  • 内容层:Scene + Stage
    对应图中蓝色圆圈内的部分:

    • Stage(红色标识):是World里的“数据容器”,存储所有3D物体、灯光、相机等资源的原始数据(比如模型文件、位置信息)。
    • Scene(灰色标识):是Stage的“逻辑封装”,你通过Scene来操作Stage里的物体(比如移动模型、添加物理属性)。

二、Python编程中的实际对应

用Isaac Sim的Python API时,这些概念会对应具体的代码对象:

  • 初始化Application
  • from omni.isaac.kit import SimulationApp

    # 启动App(参数是配置文件,默认用空即可)
    sim_app = SimulationApp()

  • 创建World(关联Sim)
  • from omni.isaac.core import World

    # 在App的Sim中创建World实例
    my_world = World()
    # 也可以显式指定Sim:World(stage_units_in_meters=1.0, simulation_app=sim_app)

  • 操作Scene + Stage
    World会自动创建scene对象,而Stage是Scene的底层依赖:
  • # 获取当前World的Scene
    my_scene = my_world.scene

    # 通过Scene向Stage添加物体(比如立方体)
    from omni.isaac.core.objects import DynamicCuboid
    cube = my_scene.add(
    DynamicCuboid(prim_path="/World/Cube", # Stage中存储的路径
    name="my_cube",
    position=[0,0,0.5],
    scale=[0.1,0.1,0.1])
    )

    # 从Stage中读取物体(也可以通过Scene获取)
    from pxr import UsdGeom
    stage = my_world.stage # 获取当前World的Stage
    cube_prim = stage.GetPrimAtPath("/World/Cube")

  • 运行Simulation
  • # 初始化World(加载Stage中的资源)
    my_world.reset()

    # 循环运行仿真
    while sim_app.is_running():
    my_world.step(render=True) # Sim推进一帧,同时渲染画面

    三、总结:概念关系表

    概念作用Python代码对应
    Application 整个Isaac Sim程序容器 SimulationApp()创建的对象
    Simulation 仿真引擎调度核心 隐式关联在World中
    World 虚拟世界实例 World()创建的对象
    Stage 3D资源的数据存储层 my_world.stage
    Scene 操作Stage资源的逻辑层 my_world.scene
    赞(0)
    未经允许不得转载:171主机测评 » Isaac Sim,python编程,所涉及的核心概念
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址