How to resolve this error "Rigid Body of missing xformstack reset when child of rigid body in hierarchy."

Isaac Sim Version

[*] 4.2.0
4.1.0
4.0.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):

Operating System

[*] Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):

GPU Information

  • Model: A6000
  • Driver Version: 535.183.01

Topic Description

Detailed Description

I use the USD file in YCB DATASET and upload it to ISAAC SIM, the following error message occurs.

i’m also wondering about what is a_name"(Xform)?
i haven’t created it.

I’ve looked hard for material on how to create a prim, but couldn’t find it, so if anyone knows of it, I’d appreciate a link.

sorry. i can’t upload any media file because i’m new member

Steps to Reproduce

  1. I’ve created the code so you can reproduce it, and I’ve also attached the usd file provided by the ycb dataset, so you can download it, change the path and test it out.

Error Messages

2025-01-14 05:05:33 [17,285ms] [Error] [omni.physicsschema.plugin] Rigid Body of (/World/object_0/a_name) missing xformstack reset when child of rigid body (/World/object_0) in hierarchy. Simulation of multiple RigidBodyAPI’s in a hierarchy will cause unpredicted results. Please fix the hierarchy or use XformStack reset.
2025-01-14 05:05:33 [17,286ms] [Error] [omni.physicsschema.plugin] Rigid Body of (/World/object_1/a_name) missing xformstack reset when child of rigid body (/World/object_1) in hierarchy. Simulation of multiple RigidBodyAPI’s in a hierarchy will cause unpredicted results. Please fix the hierarchy or use XformStack reset.
2025-01-14 05:05:33 [17,286ms] [Error] [omni.physicsschema.plugin] Rigid Body of (/World/object_2/a_name) missing xformstack reset when child of rigid body (/World/object_2) in hierarchy. Simulation of multiple RigidBodyAPI’s in a hierarchy will cause unpredicted results. Please fix the hierarchy or use XformStack reset.

Screenshots or Videos

This is what it looks like in ISAAC SIM when I run the code I attached.

Additional Information

What I’ve Tried

I also saw other solution in nvidia forum. but it doesn’t help me.

Code

from omni.isaac.kit import SimulationApp
simulation_app = SimulationApp({"headless": False}) 

from omni.isaac.core import World
from omni.isaac.core.scenes.scene import Scene

from omni.isaac.core.utils.stage import add_reference_to_stage

from omni.isaac.core.scenes.scene import Scene
from omni.isaac.core.utils.prims import is_prim_path_valid
from omni.isaac.core.utils.string import find_unique_string_name
from omni.isaac.core.utils.prims import create_prim, get_prim_path, define_prim
from omni.isaac.core.utils.stage import get_stage_units
from omni.isaac.core.materials import PhysicsMaterial
from omni.isaac.core.prims import RigidPrim, GeometryPrim

import numpy as np                                      #

my_world = World(stage_units_in_meters=1.0)

scene = Scene()
scene.add_default_ground_plane()\

usd_path = ['CHANGE IT : usd_path1',
            'CHANGE IT : usd_path2',
            'CHANGE IT : usd_path3']

usd_path = ['/home/ysson/sangtaepark/code/lecture/dataset/ycb/013_apple/final.usd',
            '/home/ysson/sangtaepark/code/lecture/dataset/ycb/014_lemon/final.usd',
            '/home/ysson/sangtaepark/code/lecture/dataset/ycb/015_peach/final.usd']

imported_objects_prim_path = '/World/object'

object_positions = [[0, 0.5, 0.2],
                    [0, 1.0, 0.2],
                    [0, 1.5, 0.2]]

for object_number in range(len(usd_path)):

    # https://forums.developer.nvidia.com/t/set-mass-and-physicalmaterial-properties-to-prim/229727/4
    define_prim(imported_objects_prim_path + f"_{object_number}")
    define_prim(imported_objects_prim_path + f"/geometry_prim_{object_number}")

    task_object = add_reference_to_stage(usd_path = usd_path[object_number],
                                         prim_path = imported_objects_prim_path + f"_{object_number}")
    rigid_prim = RigidPrim(prim_path = imported_objects_prim_path + f"_{object_number}",
                            position = object_positions[object_number],
                            orientation = np.array([1, 0, 0, 0]),
                            name = "rigid_prim",
                            scale = np.array([0.2] * 3),
                            mass = 0.01)
    rigid_prim.enable_rigid_body_physics()

    geometry_prim = GeometryPrim(prim_path = imported_objects_prim_path + f"/geometry_prim_{object_number}",
                                    name = "geometry_prim",
                                    position = object_positions[object_number],
                                    orientation = np.array([1, 0, 0, 0]),
                                    scale = np.array([0.2] * 3),
                                    collision = True,
                                )
    
    geometry_prim.apply_physics_material(
        PhysicsMaterial(
            prim_path = imported_objects_prim_path + f"/physics_material_{object_number}",
            static_friction = 10,
            dynamic_friction = 10,
            restitution = None
        )        
    )


while simulation_app.is_running():
    my_world.step(render=True)
simulation_app.close()

Please check if discussions on topics mentioning “missing xformstack reset when a child of a rigid body” are helpful.

Hi. VickNV.
Thank you for your reply.

I have already reviewed all the related information and understand why this issue occurs.
When I upload my USD file in Isaac Sim, an a_name Xform is created in the Looks folder.
However, after removing the RigidBody attribute from a_name, the issue no longer occurs.
Could you explain why the a_name Xform is generated when uploading a USD file?