Surface gripper bug

2022-10-20 07:46:47 [56,019ms] [Error] [omni.isaac.dynamic_control.plugin] Failed to register rigid body at ‘/World/defaultGroundPlane/GroundPlane/CollisionPlane’
2022-10-20 07:46:47 [56,019ms] [Error] [omni.isaac.dynamic_control.plugin] DcGetRigidBodyPath: Invalid or expired body handle
2022-10-20 07:46:47 [56,020ms] [Error] [omni.isaac.dynamic_control.plugin] DcGetRigidBodyPose: Invalid or expired body handle
2022-10-20 07:46:47 [56,020ms] [Error] [omni.isaac.dynamic_control.plugin] DcSetRigidBodyDisableGravity: Invalid or expired body handle
2022-10-20 07:46:47 [56,020ms] [Error] [omni.physx.plugin] PhysX error: PxD6JointCreate: actors must be different, FILE /buildAgent/work/99bede84aa0a52c2/source/physxextensions/src/ExtD6Joint.cpp, LINE 45

update:

after some digging this is due to suction gripper try to close.
and there is nothing there, it just try to grasp the ground plane

another bug. when suction gripper is trying to grasp part of the robot itself I will see this error:

2022-10-21 06:07:13 [38,135ms] [Error] [omni.physx.plugin] PhysX error: PxD6JointCreate: actors must be different, FILE /buildAgent/work/99bede84aa0a52c2/source/physxextensions/src/ExtD6Joint.cpp, LINE 45

However, there is really no way I can predict what the ML model is trying to grasp.

@Hammad_M

@rgasoto

From the error it looks like your offset point is contained inside the collision mesh for the gripper, You need to place it out so it can find other elements when you call close.
as an aside, it should not give you an error if it tries to close with the ground plane or any other static mesh. I’ll check that to make sure it behaves as expected.

PhysX error: PxD6JointCreate: actors must be different, FILE /buildAgent/work/99bede84aa0a52c2/source/physxextensions/src/ExtD6Joint.cpp, LINE 45
For this error.
what’s happinging is the gripper offset collides with the robot itself. The gripper is trying to grasp the robot.
the error does not happen if it’s just grasping a cube.

it’s from the predition of a ML model. so I cannot control where to grasp.

@rgasoto

I am using the default UR10 robot without changing the gripper offset.

Here is a screen shot for the crash to happen:
image

ok my temporatory solution is to do raycasting from the tip of the gripper (0.5 cm forward of the gripper tip) to the gripper forward direction for 3.5 cm. If the raycasting returns trying to grasp a robot, then I will not execute close gripper command.

But I feel this is something that the surface gripper is supposed to handle.