Search code examples
drake

Implementing a joint that allows motion in curvilinear path


I am building a two link system. The parent link is a curved object and the second link has a single degree of freedom to follow the curved length. I attempted to implement this with a prismatic joint but I can only define a linear path. How can I model this system in drake?


Solution

  • You could use a joint with more degrees of freedom and then use a controller (e.g. PD) to force it to track the curve you want. If you really only need 1 dof you could use two prismatic joints; if the object needs also to be able to rotate you could start with a planar joint (two translations and a rotation) and use the controller just to constrain one of the dofs.

    It is also possible to create a new joint type that would have a single dof and follow a curved slot. That would require some engineering though. The basic theory is covered in this paper which Drake follows closely.