Isaac Sim使用代码方式导入将场景usd导入
环境说明
Ubuntu 20.04 Isaac sim 4.0.0
涉及类
omni.isaac.core.utils.stage.stage_utils
omni.isaac.core.prims.XFormPrim
代码实现
from omni.isaac.examples.base_sample import BaseSample
from omni.isaac.core.utils.stage import stage_utils
from omni.isaac.core.core.task import BaseTask
from omni.isaac.core.prims import XFormPrim
class BaseTaskName(BaseTask):
def __init__(self, name):
super().__init__(name=name, offset=None)
return
def set_up_scene(self,scene):
super().set_up_scene(scene)
scene.add_default_ground_plane()
prim_path = "/World/名称(最好小写)"
stage_utils.add_reference_to_stage(usd_path="/xxx/xxx/xxx.usd", prim_path=prim_path)
self._usdobj = scene.add(XFormPrim(prim_path=prim_path ,
name="usd_object",
position=np.array([-0.2, 0, 0.02])))
return
"""
其它代码块
"""
class BaseSampleName(BaseSample):
def __init__(self) -> None:
super().__init__()
return
def setup_scene(self):
world = self.get_world()
world.add_task(BaseTaskName(name="my_first_task"))
return
"""
其它代码块
"""
说明
需先学习Omniverse Isaac sim官方教程的Core API,本代码基于Core API中的 What is a Task修改。
参考资料
1、 Omniverse Isaac sim官方教程
2、 Isaac Sim API 手册
3、 Isaac sim论坛问题:cannot add own usd object to scene in python