Cannot add own usd object to scene in IsaacLab simulation

This topic is very similar to this one, however the affected file is different to the one which the proposed solution suggests modifying, causing me to be reluctant to modify other core files without certainty.

My issue is as follows: I can add other objects to the simulation through the code below, but whereas the only modification was to change the USD model from one (the tree in comments) to another (the rock in the line beneath the tree’s), said modification prevents the simulation from launching (see error message).

tree_cfg = RigidObjectCfg(
            prim_path = f"/World/envs/env_.*/Obstacle_{ob_idx}",
            spawn = sim_utils.UsdFileCfg(
                #usd_path=f"/home/lunar5/robbinshel/robbins_docs/Tree3.usd",
                usd_path=f"/home/lunar5/robbinshel/robbins_docs/Rock1.usd",
                rigid_props=schemas.RigidBodyPropertiesCfg(kinematic_enabled = True),
                #mass_props=schemas.MassPropertiesCfg(mass=1.0),
                collision_props=schemas.CollisionPropertiesCfg(),
            ),
            init_state=RigidObjectCfg.InitialStateCfg(pos=(current_obstacle[0], current_obstacle[1], 0)),
        )
Traceback (most recent call last):
  File "/home/lunar5/robbinshel/isaaclab_heloisa/source/standalone/workflows/sb3/train.py", line 139, in <module>
    main()
  File "/home/lunar5/robbinshel/isaaclab_heloisa/source/standalone/workflows/sb3/train.py", line 92, in main
    env = gym.make(args_cli.task, cfg=env_cfg, render_mode="rgb_array" if args_cli.video else None)
  File "/home/lunar5/anaconda3/envs/my_env/lib/python3.10/site-packages/gymnasium/envs/registration.py", line 802, in make
    env = env_creator(**env_spec_kwargs)
  File "/home/lunar5/robbinshel/isaaclab_heloisa/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct/adam_rover/adam_rover_env_validation.py", line 236, in __init__
    super().__init__(cfg, render_mode, **kwargs)
  File "/home/lunar5/robbinshel/isaaclab_heloisa/source/extensions/omni.isaac.lab/omni/isaac/lab/envs/direct_rl_env.py", line 102, in __init__
    self._setup_scene()
  File "/home/lunar5/robbinshel/isaaclab_heloisa/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct/adam_rover/adam_rover_env_validation.py", line 295, in _setup_scene
    self.obstacles = [RigidObject(obs_cfg) for obs_cfg in self.cfg.obstacles_cfg]
  File "/home/lunar5/robbinshel/isaaclab_heloisa/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct/adam_rover/adam_rover_env_validation.py", line 295, in <listcomp>
    self.obstacles = [RigidObject(obs_cfg) for obs_cfg in self.cfg.obstacles_cfg]
  File "/home/lunar5/robbinshel/isaaclab_heloisa/source/extensions/omni.isaac.lab/omni/isaac/lab/assets/rigid_object/rigid_object.py", line 58, in __init__
    super().__init__(cfg)
  File "/home/lunar5/robbinshel/isaaclab_heloisa/source/extensions/omni.isaac.lab/omni/isaac/lab/assets/asset_base.py", line 75, in __init__
    self.cfg.spawn.func(
  File "/home/lunar5/robbinshel/isaaclab_heloisa/source/extensions/omni.isaac.lab/omni/isaac/lab/sim/utils.py", line 275, in wrapper
    cloner.clone(prim_paths[0], prim_paths[1:], replicate_physics=False, copy_from_source=cfg.copy_from_source)
  File "/home/lunar5/.local/share/ov/pkg/isaac-sim-4.0.0/exts/omni.isaac.cloner/omni/isaac/cloner/cloner.py", line 214, in clone
    xform_op_rot.Set(current_orientation)
pxr.Tf.ErrorException: 
	Error in 'pxrInternal_v0_22__pxrReserved__::UsdStage::_SetValueImpl' at line 6189 in file /buildAgent/work/ac88d7d902b57417/USD/pxr/usd/usd/stage.cpp : 'Type mismatch for </World/envs/env_0/Obstacle_0.xformOp:orient>: expected 'GfQuatf', got 'GfQuatd''

I would be infinitely grateful if @Hammad_M, who proposed the original solution, were able to provide insight.

I’m having the same issue. I can spawn 1 robot without issue. There might be some error in the clonner.

I solved the problem by using manager-based base environment instead of spawn robot using ArticulationCFG

Thank you very much for the reply!

In my case I am pretty much stuck with the Direct RL environments, and the non-spawning object is an obstacle, not a robot. But I’m sure this will help someone else