How to load custom USD into IsaacLab as rigid body or articulation

Hi I am new to isaaclab here, I want to load a usd file into isaac and assign velocity on it.

I first use source/standalone/tools/convert_mjcf.py to convert my xml into usd file, I can successfully get a usd file and view it in isaac, while I got the below error message:

2024-11-23 08:19:31 [23,792ms] [Warning] [omni.usd] Warning: in SdfPath at line 81 of /builds/omniverse/usd-ci/USD/pxr/usd/sdf/path.cpp -- Ill-formed SdfPath <>: syntax error

2024-11-23 08:19:31 [23,792ms] [Warning] [omni.usd] Coding Error: in _IsValidPathForCreatingPrim at line 3340 of /builds/omniverse/usd-ci/USD/pxr/usd/usd/stage.cpp -- Path must be an absolute path: <>

MJCF importer output:
Generated USD file: /home/xinyili/IsaacLab/day31_spinning_top.usd
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
2024-11-23 08:19:34 [26,049ms] [Warning] [omni.hydra.scene_delegate.plugin] Calling getBypassRenderSkelMeshProcessing for prim /day31_spinning_top/day31_spinning_top/visuals.proto__geom_0_id0 that has not been populated
2024-11-23 08:20:42 [94,504ms] [Warning] [omni.hydra.scene_delegate.plugin] InstanceAdapter - cannot find cache item for proto /day31_spinning_top/day31_spinning_top/collisions.proto__geom_1_id0
2024-11-23 08:20:42 [94,504ms] [Warning] [omni.hydra.scene_delegate.plugin] InstanceAdapter - cannot find cache item for proto /day31_spinning_top/day31_spinning_top/visuals.proto__geom_0_id0
2024-11-23 08:20:42 [94,504ms] [Warning] [omni.hydra.scene_delegate.plugin] InstanceAdapter - cannot find cache item for proto /day31_spinning_top/day31_spinning_top/visuals.proto__geom_1_id1

the xml code is:

<mujoco model="day31_spinning_top">
  <default>
    <default class="visual">
      <geom group="2" type="mesh" contype="0" conaffinity="0"/>
    </default>
    <default class="collision">
      <geom group="3" type="mesh"/>
    </default>
  </default>
  <asset>
    <material name="Scene_-_Root" specular="0.5" shininess="0.5" rgba="1 1 1 1.0"/>
    <mesh file="day31_spinning_top.obj"/>
  </asset>
  <worldbody>
    <body name="day31_spinning_top">
      <geom material="Scene_-_Root" mesh="day31_spinning_top" class="visual"/>
      <geom mesh="day31_spinning_top" class="collision"/>
    </body>
  </worldbody>
</mujoco>

Then I want to assign velocity to it, so I try to load it with InteractiveSceneCfg:

spinner = RigidObjectCfg(
        prim_path="{ENV_REGEX_NS}/Top",
        spawn=sim_utils.UsdFileCfg(
            usd_path='spintop_rigid.usd',
            rigid_props=sim_utils.RigidBodyPropertiesCfg(
                rigid_body_enabled=True,
                max_linear_velocity=1000.0,
                max_angular_velocity=1000.0,
                max_depenetration_velocity=100.0,
                enable_gyroscopic_forces=True,
            ),
        ),
        init_state=RigidObjectCfg.InitialStateCfg(pos=[0, 0, 1], lin_vel=[10, 0.3, 0]),
)

and I got the error message below:

2024-11-23 08:35:27 [21,442ms] [Warning] [omni.usd] Warning: in _ReportErrors at line 2890 of /builds/omniverse/usd-ci/USD/pxr/usd/usd/stage.cpp -- In </World/envs/env_0/Top>: Unresolved reference prim path @spintop_rigid.usd@<defaultPrim> introduced by @anon:0x15d42ac0:World0.usd@</World/envs/env_0/Top> (recomposing stage on stage @anon:0x15d42ac0:World0.usd@ <0x14116480>)

2024-11-23 08:35:27 [21,451ms] [Warning] [omni.isaac.lab.sim.utils] Could not perform 'modify_rigid_body_properties' on any prims under: '/World/envs/env_0/Top'. This might be because of the following reasons:
	(1) The desired attribute does not exist on any of the prims.
	(2) The desired attribute exists on an instanced prim.
		Discovered list of instanced prim paths: []
Traceback (most recent call last):
  File "/home/xinyili/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/assets/asset_base.py", line 92, in <lambda>
    lambda event, obj=weakref.proxy(self): obj._initialize_callback(event),
  File "/home/xinyili/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/assets/asset_base.py", line 263, in _initialize_callback
    self._initialize_impl()
  File "/home/xinyili/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/assets/rigid_object/rigid_object.py", line 280, in _initialize_impl
    raise RuntimeError(
RuntimeError: Failed to find a rigid body when resolving '/World/envs/env_.*/Top'. Please ensure that the prim has 'USD RigidBodyAPI' applied.

Traceback (most recent call last):
  File "/home/xinyili/IsaacLab/spinning_top.py", line 192, in <module>
    main()
  File "/home/xinyili/IsaacLab/spinning_top.py", line 187, in main
    run_simulator(sim, scene)
  File "/home/xinyili/IsaacLab/spinning_top.py", line 140, in run_simulator
    scene.reset()
  File "/home/xinyili/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/scene/interactive_scene.py", line 351, in reset
    rigid_object.reset(env_ids)
  File "/home/xinyili/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/assets/rigid_object/rigid_object.py", line 103, in reset
    self._external_force_b[env_ids] = 0.0
AttributeError: 'RigidObject' object has no attribute '_external_force_b'

I tried assign rigid body material in issacsim interface by ‘create->physics->physics material → Rigid Body Material’ on the root Xform and save it into a new usd file, but the error message are all the same. Any suggestion about this would be appreciated!

Thank you for your interest in Isaac Lab. A similar issue was discussed here.

To ensure efficient support and collaboration, please submit your topic to its GitHub repo following the instructions provided on Isaac Lab’s Contributing Guidelines regarding discussions, submitting issues, feature requests, and contributing to the project.

We appreciate your understanding and look forward to assisting you.