PhysX error: Supplied PxGeometry is not valid

I get the following errors and warnings in my original reinforcement learning environment. But learning seems to be working. What does this error indicate? Also what is the solution?
This error does not occur when launching Isaac sim and loading the USD model.
It happens when I use python script for learning.

---------------------------------
| rollout/           |          |
|    ep_len_mean     | 512      |
|    ep_rew_mean     | 2.52e+03 |
| time/              |          |
|    fps             | 17       |
|    iterations      | 1        |
|    time_elapsed    | 145      |
|    total_timesteps | 2560     |
---------------------------------
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,218ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,219ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,219ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,219ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:54:59 [189,219ms] [Error] [omni.physx.plugin] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL., FILE /buildAgent/work/99bede84aa0a52c2/source/physx/src/NpFactory.cpp, LINE 1012
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.
2023-07-19 00:55:00 [190,047ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Supplied PxGeometry is not valid. Shape creation method returns NULL.

Hi @1616ttkj - The error message “Supplied PxGeometry is not valid” is coming from the PhysX physics engine, which is used by Isaac Sim. This error typically occurs when there is a problem with the geometry of one or more of the collision shapes in your robot model.

Here are a few things you can check:

Make sure all your collision shapes have valid dimensions. For example, a box shape should have all its dimensions greater than zero, a sphere should have a radius greater than zero, and so on.

Check if any of your collision shapes are too small. PhysX can have problems with shapes that are very small relative to other shapes in the scene. If you have any shapes that are much smaller than the others, try increasing their size to see if that fixes the problem.

Check if any of your collision shapes are intersecting or overlapping with each other in the initial configuration of the robot. This can cause problems for the physics engine.

If you are using mesh shapes for collision, make sure the mesh is valid. It should be a closed, manifold mesh with no self-intersections, degenerate triangles, or other geometric anomalies.

If you are using a convex hull shape for collision, make sure the set of points you are using to define the hull is valid. The points should define a convex shape, and there should be at least four of them.

If none of the above suggestions help, you might need to simplify your robot model or use a different method to simulate the tactile sensors.

It seems that there is a conflict when reading usd, so I think the following is probably the cause.

“Check if any of your collision shapes are intersecting or overlapping with each other in the initial configuration of the robot. This can cause problems for the physics engine.”

I set different locations when resetting the learning environment as bellow code. However, on the screen of Isaac sim, it seems that all the models are placed in the same place near the origin for a moment when resetting. After that, it will be placed in the position I coded.

    def reset(self):
        self._my_world.reset()
        self.reset_counter = 0

        # get object reset position
        stand_pos, stand_q, pallet_pos, pallet_q, box2_pos, box2_q, box3_pos, box3_q, drum_pos, drum_q = self.get_object_position()
        stand_pos = stand_pos.reshape(1, 3)
        stand_q = stand_q.components.reshape(1, 4)
        pallet_pos = pallet_pos.reshape(1, 3)
        pallet_q = pallet_q.components.reshape(1, 4)
        box2_pos = box2_pos.reshape(1, 3)
        box2_q = box2_q.components.reshape(1, 4)
        box3_pos = box3_pos.reshape(1, 3)
        box3_q = box3_q.components.reshape(1, 4)
        drum_pos = drum_pos.reshape(1, 3)
        drum_q = drum_q.components.reshape(1, 4)

        # put object
        self.stand.set_world_poses(positions=stand_pos, orientations=stand_q)
        self.pallet.set_world_poses(
            positions=pallet_pos, orientations=pallet_q)
        self.box2.set_world_poses(positions=box2_pos, orientations=box2_q)
        self.box3.set_world_poses(positions=box3_pos, orientations=box3_q)
        self.drum.set_world_poses(positions=drum_pos, orientations=drum_q)

        fork_pos, fork_q = self.get_forklift_position()
        fork_pos = fork_pos.reshape(1, 3)
        fork_q = fork_q.components.reshape(1, 4)
        self.forklift.set_world_poses(positions=fork_pos, orientations=fork_q)

        observations = self.get_observations()
        return observations

Hi @1616ttkj - It seems like you’re experiencing a brief moment where all objects are placed at the origin before being moved to their correct positions. This could be due to the order of operations in your reset function.

When you call self._my_world.reset(), it might be resetting all objects to their default positions (possibly the origin) before you have a chance to set their new positions.

One possible solution could be to first calculate all the new positions and orientations, then call self._my_world.reset(), and finally set the new positions and orientations. This way, the objects should directly move to their new positions without appearing at the origin first.

Here’s how you could modify your code:

def reset(self):
    # get object reset position
    stand_pos, stand_q, pallet_pos, pallet_q, box2_pos, box2_q, box3_pos, box3_q, drum_pos, drum_q = self.get_object_position()
    stand_pos = stand_pos.reshape(1, 3)
    stand_q = stand_q.components.reshape(1, 4)
    pallet_pos = pallet_pos.reshape(1, 3)
    pallet_q = pallet_q.components.reshape(1, 4)
    box2_pos = box2_pos.reshape(1, 3)
    box2_q = box2_q.components.reshape(1, 4)
    box3_pos = box3_pos.reshape(1, 3)
    box3_q = box3_q.components.reshape(1, 4)
    drum_pos = drum_pos.reshape(1, 3)
    drum_q = drum_q.components.reshape(1, 4)

    fork_pos, fork_q = self.get_forklift_position()
    fork_pos = fork_pos.reshape(1, 3)
    fork_q = fork_q.components.reshape(1, 4)

    # reset world
    self._my_world.reset()

    # put object
    self.stand.set_world_poses(positions=stand_pos, orientations=stand_q)
    self.pallet.set_world_poses(positions=pallet_pos, orientations=pallet_q)
    self.box2.set_world_poses(positions=box2_pos, orientations=box2_q)
    self.box3.set_world_poses(positions=box3_pos, orientations=box3_q)
    self.drum.set_world_poses(positions=drum_pos, orientations=drum_q)
    self.forklift.set_world_poses(positions=fork_pos, orientations=fork_q)

    observations = self.get_observations()
    return observations

This should hopefully solve the issue of objects appearing at the origin during reset.

1 Like

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