Adding custom End Effector to robot in a .usd file

Hello, I am using the Isaac Gym extension to train a reinforcement learning algorithm. As the robot, I would like to use the Panda arm, but with a slight modification: I would like to add a fixed stick to its gripper, that acts as a peg for an insertion.

It was straight forward to add the peg and make it move together with the gripper (I just inserted it in an XForm under the panda_hand, as in the screenshot below).

By adding colliders to the peg in the USD file, I can successfully launch the training and the whole robot behaves as expected, but I cannot get the updated pose of the peg. As seen in the following video, the position of the panda_hand is correctly updated (seen with the blue dots), but the position of the peg stays in its initial state throughout the whole length of the simulation (green points):

I am using the following views for the hand and the peg:

self._hands = RigidPrimView(prim_paths_expr=“/World/envs/.*/franka/panda_link7”, name=“hands_view”, reset_xform_properties=False)

self._pegs = XFormPrimView(prim_paths_expr=“/World/envs/.*/franka/panda_hand/peg”, name=“peg_view”, reset_xform_properties=False)

and to get the current position of both parts, I use the following code:

hand_pos, hand_rot = self._frankas._hands.get_world_poses(clone=False)
peg_pos, peg_rot = self._frankas._pegs.get_world_poses()

Note that I am not inputing the argument “clone=False” in the peg, because the XFormPrimView does not have this option.

Does anybody know what is it that I am doing wrong? Is there one or more ways to sollve this issue?

Thank you in advance

Hi @dfprado

This post may help

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