Hello,
I have trained a policy using IsaacLab 1.4.0/IsaacSim 4.2 and can run it without any issues. I then added an ActionGraph to publish the robot’s joint states :
def joint_states_publisher_graph():
og.Controller.edit(
{“graph_path”: “/ActionGraph”, “evaluator_name”: “execution”},
{
og.Controller.Keys.CREATE_NODES: [
(“ReadSimTime”, “omni.isaac.core_nodes.IsaacReadSimulationTime”),
(“PublishJointState”, “omni.isaac.ros2_bridge.ROS2PublishJointState”),
(“OnPlayback”, “omni.graph.action.OnPlaybackTick”),
],
og.Controller.Keys.CONNECT: [
(“OnPlayback.outputs:tick”, “PublishJointState.inputs:execIn”),
(“ReadSimTime.outputs:simulationTime”, “PublishJointState.inputs:timeStamp”),
],
og.Controller.Keys.SET_VALUES: [
(“PublishJointState.inputs:targetPrim”, “/World/envs/env_0/Robot/base_link”),
(“PublishJointState.inputs:topicName”, “/joint_states”),
],
},
)
Here, everything works fine until I try to retrieve joint values from the /joint_states topic (by running ros2 topic echo /joint_states in a terminal). When I do this, I get the following error:
PhysX error: PxArticulationReducedCoordinate::copyInternalStateToCache : it is illegal to call this method if PxSceneFlag::eENABLE_DIRECT_GPU_API is enabled!, FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationReducedCoordinate.cpp, LINE 199
I’m stuck here. I tried running the simulation in CPU mode, and obviously, it works—I can read values from the topic. However, the policy doesn’t behave the same way, but that’s another issue. ;-)
Thanks for any help,
Regards.