Joint error: can i add joint for only one link?

Hi everyone, I’m trying to create a task, in which my robotic hand can push the cube to the desired position. To do this, I attempt to create a primitivistic joint(named “PrismaticJoint1”) to the base link of my hand. However, the joint can not be got by the function

self._hiro_hand_idx_5 = self.hiro_hand.get_dof_index("PrismaticJoint1")

and the error is:

 File "d:\isaac\ku\isaac_sim-2022.2.1\exts\omni.isaac.core\omni\isaac\core\articulations\articulation_view.py", line 264, in get_dof_index
    return self._dof_indices[dof_name]
KeyError: 'PrismaticJoint1'

So I was confused about how to set a joint to the base link, so that I can control the base link to move?

Thanks for any suggestions and your kind help!

Could you please share some simplified USD scene?
If you try to create articulation with just one joint - being prismatic joint, I think this wont work for fixed articulations. There is expected a fixed joint and then a prismatic joint. You can try to add a dummy body in between that you connect with a fixed joint.
Anyway if you can confirm that its this case, I will try to fix this for next release.
Thanks, regards,
Ales

thanks for your reply. my usd scene is shown as follow:

I plan to add a body and make it fixed, then connect the body to the base link that I wanna drive.

Right, as said currently for this to work, there has to be one more body with a fixed joint, this is a limitation I am trying to fix, but there are some technical obstacles.
articulation_test.usda (6.9 KB)

I have attached articulation chain that should resolve what you are trying to achieve. Note that there is one more additional body that is connected with a fixed joint. This is currently necessary.

Regards,
Ales

Thanks a lot

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