Joints

A joint is an object that allows for a relative movement between its parent and its child/children. When a parent-child relationship is built between a joint and an object, the object is attached to the joint's second reference frame, thus, a change of the joint's linear/angular position will directly be reflected onto its children. Joints can operate in different modes. New joints can be added to a scene with [Add > Joints].

[Robotic manipulator with highlighted joints]


4 types of joints are supported:

[Revolute joint, prismatic joint, screw and spherical joint]


  • Revolute joint: a revolute joint has one DoF and is used to describe a rotational movement between objects. The rotation happens about its reference frame's z-axis
  • Prismatic joint: a prismatic joint has one DoF and is used to describe a translational movement between objects. The translation happens along its reference frame's z-axis
  • Screw: a screw, which can be seen as a combination of a revolute and prismatic joint with linked values, has one DoF and is used to describe a movement similar to a screw. A lead parameter defines the amount of translation for a full rotation. The translation/rotation happens along/about its reference frame's z-axis
  • Spherical joint: a spherical joint has three DoFs and is used to describe a rotational movement between objects. In some situations, a spherical joint can be thought of as 3 concurrent and orthogonal joints, that are parented in a hierarchy-chain. The analogy is however only valid while all revolute joints keep an orientation distinct from any of the other two: indeed, should two joints come close to coincide, a singular situation might appear and the mechanism will lose one DoF. This does never happen with spherical joints, which are internally handled to avoid this kind of situation:
  • [Two equivalent mechanisms (in this configuration): spherical joint (left) and 3 revolute joints (right)]


    [Two non-equivalent mechanisms: the right configuration is close to a singularity]