Gripper object doesn't make use of end_effector_prim_path (unexpected behavior)

I created Gripper object that inherits from the parallelgripper superclass, and imported the Gripper via URDF importer, however when I see the Gripper on isaacsim, Gripper is not attached to the Robot end-effector ! can you please tell me how I can attach the Gripper to the End-Effector Properly? thanks.

I want to assemble the robot with the Gripper similar to here where both of them are imported using the URDF importer, and both inherits superclasses: Robot, Gripper from isaacsim api.

class Robotiq2F140(ParallelGripper):
    def __init__(
        self,
        gripper_name: str,
        urdf_path: str,
        end_effector_prim_path: str,
        joint_prim_names: List[str],
        joint_opened_positions: np.ndarray,
        joint_closed_positions: np.ndarray,
        app: SimulationApp,
        *args, **kwargs
    ) -> None:

        self._gripper_name = gripper_name
        self._end_effector_prim_path = end_effector_prim_path
        self._joint_prim_names = joint_prim_names
        self._joint_opened_positions = joint_opened_positions
        self._joint_closed_positions = joint_closed_positions
        self.robot_prim_path = self._import_gripper(urdf_path)
        self._app = app
        super().__init__(
            end_effector_prim_path=self._end_effector_prim_path,
            joint_prim_names = self._joint_prim_names,
            joint_opened_positions = self._joint_opened_positions,
            joint_closed_positions = self._joint_closed_positions,
            *args, **kwargs
        )

    def _import_gripper(self, urdf_path: str) -> str:
        # Set the settings in the import config
        import_config = _urdf.ImportConfig()
        import_config.set_merge_fixed_joints(False)
        import_config.set_convex_decomp(True) # Collision
        import_config.set_fix_base(True)
        import_config.set_make_default_prim(False)
        import_config.set_self_collision(True) #
        import_config.set_create_physics_scene(False)
        import_config.set_import_inertia_tensor(False) # 
        import_config.set_default_drive_type(_urdf.UrdfJointTargetType.JOINT_DRIVE_POSITION)

        status, self._gripper_prim_path = omni.kit.commands.execute(
            "URDFParseAndImportFile",
            urdf_path=urdf_path,
            import_config=import_config,
            get_articulation_root=False,
        )
        if not status:
            raise RuntimeError("Failed to import URDF file.")

Isaac Sim Version

4.5.0

Operating System

Ubuntu 22.04

GPU Information

  • Model: GeForce RTX 2070
  • Driver Version: 550.127.08
1 Like

Could you please provide more details about how they are not attached to each other?

What is your script for assembling them together? Is it the same as the script in Assemble Robots And Rigid Bodies — Isaac Sim Documentation except for the gripper?

If you can, feel free to share a minimal setup for us to replicate your issue. Thanks!