Can not modify angular damping parameter by python command

Hi!

I would like to change the “angular damping” rigid body parameter from python using kit.commands. However the code doesn’t work and there is no error output.

Here is the command I am running:

menv = Sdf.Layer.GetLoadedLayers()[2]
world_session = Sdf.Layer.GetLoadedLayers()[0]

omni.kit.commands.execute('ChangeProperty',
    prop_path=Sdf.Path('/simple_pendulum/pendulum_link.physxRigidBody:angularDamping'),
    value=0.0,
    prev=0.05000000074505806,
    target_layer=menv,
    usd_context_name=Usd.Stage.Open(rootLayer=menv, sessionLayer=world_session))

I was able to modify the rigid body properties using the PhysxRigidBodyAPI.

from omni.isaac.kit import SimulationApp
simulation_app = SimulationApp({"headless": False})
# Must import pxr after starting simulation_app
from pxr import PhysxSchema
from omni.isaac.core.utils.prims import get_prim_at_path

# ...

prim = get_prim_at_path("/simple_pendulum/pendulum_link")
rb = PhysxSchema.PhysxRigidBodyAPI.Apply(prim)
rb.GetAngularDampingAttr().Set(0.0)

This worked for me.

1 Like

Yes, just changing the attribute does not help, the API must be applied. These attributes belong to that API, those are not standalone attributes.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.