请使用下面的模版提问(创建话题后勾选相应的选项):
硬件环境
Workstation
软件版本
Isaac Sim 4.5
系统环境
Ubuntu 20.04
问题描述
isaacsim 中打开GPU物理模拟,仿真时,viewpoint似乎不渲染,停在最初位置,这是为什么?
参考代码如下
from isaacsim import SimulationApp
LAUNCHER_CONFIG = {
“headless”: True, # 显示 GUI (设置为 True 可在服务器上运行)
“active_gpu”: 0, # 应用程序/渲染使用 GPU 0
“physics_gpu”: 0, # [关键] 物理仿真使用 GPU 0 (cuda:0)
“multi_gpu”: True, # 启用多 GPU 支持
“width”: 1280,
“height”: 720,
“renderer”: “RaytracedLighting”,
“vsync”: True, # 启用垂直同步
}
启动 Isaac Sim 应用程序
print(“Starting SimulationApp…”)
simulation_app = SimulationApp(LAUNCHER_CONFIG)
simulation_app = SimulationApp({“headless”: False})
import omni.physics.tensors as tensors
from isaacsim.core.api import SimulationContext
from isaacsim.core.simulation_manager import SimulationManager
from omni.isaac.core.physics_context import PhysicsContext
from omni.isaac.core import World
from isaacsim.core.prims import Articulation
from isaacsim.core.utils.stage import add_reference_to_stage, get_stage_units
from isaacsim.core.cloner import GridCloner, Cloner
import isaacsim.core.utils.stage as stage_utils
from pxr import UsdPhysics
from pxr import Sdf, Usd, PhysxSchema
import sys
import carb
import numpy as np
from isaacsim.core.api.robots import Robot
from isaacsim.core.utils.types import ArticulationAction
from isaacsim.storage.native import get_assets_root_path
from pxr import UsdGeom
from pxr import UsdLux, UsdGeom, Gf, Sdf
from isaacsim.core.api.materials import PhysicsMaterial
from omni.isaac.core.prims import RigidPrim
from isaacsim.core.prims import RigidPrim
from isaacsim.core.prims import GeometryPrim
from isaacsim.core.prims import SdfShapePrim
import torch
import omni.kit.app
import carb
import time
sim_manager = SimulationManager()
sim_manager.enable_fabric(True)
def main():
my_world = World(backend = ‘torch’,
device = ‘cuda’,
physics_dt = 0.01,
rendering_dt =0.01,
stage_units_in_meters = 1.0)
my_world.scene.add_default_ground_plane()
dome = UsdLux.DomeLight.Define(my_world.stage, "/World/Ambient")
dome.CreateIntensityAttr(2000)
sim_context = SimulationContext().instance()
#
USD_PATH = "XXX"
ENV_ZERO_PATH = "/World/envs/env_0"
NUM_ENVS = 2
add_reference_to_stage(USD_PATH, prim_path=f"{ENV_ZERO_PATH}/XXXX")
UsdGeom.Xform.Define(stage_utils.get_current_stage(), ENV_ZERO_PATH)
cloner = GridCloner(spacing=5, num_per_row=10)
base_env_pos = np.array([0, 0, 1.0])
positions = np.tile(base_env_pos, (NUM_ENVS, 1))
cloner.clone(
source_prim_path=ENV_ZERO_PATH,
prim_paths=cloner.generate_paths("/World/envs/env", NUM_ENVS),
copy_from_source=True,
enable_env_ids=True,
position_offsets=positions
)
# reset
my_world.reset()
physics_sim_view = my_world.physics_sim_view
articulation_view = physics_sim_view.create_articulation_view("/World/envs/env*/XXXXX/base_link")
my_world.play()
while simulation_app.is_running():
simulation_app.update()
simulation_app.close()
print("Simulation App closed.")
if name == ‘main’:
main()