Isaac Sim Version
4.5.0
Operating System
Ubuntu 22.04
GPU Information
- Model: 4090
- Driver Version: 575.64.03
Topic Description
Detailed Description
I add objects into the scene that have physics disabled. Then I try to teleport the objects to a different location. However, I encountered an error that states PhysX does not allow modify the position of objects with `PxActorFlag::eDISABLE_SIMULATION` is set.
Steps to Reproduce
import omni.isaac.core.utils.stage as isaacsim_stage
# add my object usd to the sceen
isaacsim_stage.add_reference_to_stage(usd_path=object_usd_path, prim_path=object_prim_path)
# try to modify the object pose after some simulation steps
obj_xform = XFormPrim(prim_path=obj[“object_prim_path”])
obj_xform.set_local_pose(obj_info.pose.position, obj_info.pose.quaternion)
geom_prim_path = f’{obj[“object_prim_path”]}/Meshes’
obj_geom = GeometryPrim(prim_path=geom_prim_path)
obj_geom.set_local_pose([0,0,0], [1,0,0,0]) # reset mesh local pose
# also tried this but also does not work
xform = UsdGeom.Xformable(isaacsim_prims.get_prim_at_path(obj["object_prim_path"]))
xform_ops = xform.GetOrderedXformOps()
xform_ops[0].Set(tuple(obj_info.pose.position))
Error Messages
2025-09-13 05:16:03 [48,371ms] [Error] [omni.physx.plugin] PhysX error: PxRigidDynamic::setLinearVelocity: Not allowed if PxActorFlag::eDISABLE_SIMULATION is set!, FILE /builds/omniverse/physics/physx/source/physx/src/NpRigidDynamic.cpp, LINE 233
Screenshots or Videos
No.
Additional Information
What I’ve Tried
No.
Related Issues
No.
Additional Context
No.
Hi @mssonglin,
I am not sure how you are hitting this error. I am able to set the pose of an object that is not a RigidBody as shown below.
Can you start from this script and add what you are trying to do to see if it is fixed? Or if you can reproduce your issue from my script can you share it back?
import numpy as np
from isaacsim import SimulationApp
simulation_app = SimulationApp({"headless": False})
from isaacsim.core.prims import SingleGeometryPrim
from isaacsim.core.api import World
import isaacsim.core.utils.stage as stage_utils
import isaacsim.core.utils.prims as prims_utils
import time
world = World()
# world.reset()
# Create a cube prim using stage utilities
cube_prim_path = "/World/cube"
stage_utils.get_current_stage().DefinePrim(cube_prim_path, "Cube")
# Wrap the prim as a SingleGeometryPrim (physics disabled by default)
cube = world.scene.add(
SingleGeometryPrim(
prim_path=cube_prim_path,
name="cube",
position=np.array([-2, -6, 9]),
scale=np.array([1, 1, 1]),
collision=False # No physics/collision
)
)
print(f'Initial cube pose:')
print(f'cube.get_world_pose(): {cube.get_world_pose()}')
print(f'cube.get_local_pose(): {cube.get_local_pose()}')
# Set up circular motion parameters
radius = 5.0 # radius of circular path
center = np.array([0, 0, 0]) # center point of circle
angular_speed = 1.0 # radians per second
# Animate cube in circular motion
while simulation_app.is_running():
# Calculate current time
t = time.time()
# Calculate position on circle
x = center[0] + radius * np.cos(angular_speed * t)
y = center[1] + radius * np.sin(angular_speed * t)
z = center[2]
# Update cube position
cube.set_local_pose(translation=np.array([x, y, z]))
# Step simulation
world.step(render=True)
print(f'After setting local pose:')
print(f'cube.get_world_pose(): {cube.get_world_pose()}')
print(f'cube.get_local_pose(): {cube.get_local_pose()}')
simulation_app.close()
Hello!
We noticed that this topic hasn’t received any recent responses, so we are closing it for now to help keep the forum organized.
If you’re still experiencing this issue or have additional questions, please feel free to create a new topic with updated details. When doing so, we recommend mentioning or linking to this original topic in your new post—this helps provide context and makes it easier for others to assist you.
Thank you for being part of the NVIDIA Isaac Sim community.
Best regards,
The NVIDIA Isaac Sim Forum Team