joints - Kinematic Joints definition

Simple joints

class Ball(s1, s2, p1, p2=None)

Joint for rotation all around a point.

classical definition: Ball (point) the initial state doen’t require more data the class holds a point for each side

../_images/joints-ball.png
class Pivot(s1, s2, a1, a2=None, position=None)

Junction for rotation only around an axis

classical definition: Pivot (axis) no additional information is required by the initial state this class holds an axis for each side

../_images/joints-pivot.png
class Gliding(s1, s2, a1, a2=None, position=None)

Joint for rotation and translation around an axis

classical definition: Gliding pivot (axis) the initial state doesn’t require more data this class holds an axis for each side

../_images/joints-gliding.png
class Track(s1, s2, b1, b2=None, position=None)

Joint for translation only in a direction

classical definition: Track (direction vector) the initial state requires more parameters: the relative placements of the solids this class holds a base for each of the solids, bases are (0,X,Y) where X,Y are constrained to keep the same direction across bases, and the bases origins lays on their common Z axis

../_images/joints-track.png
class Punctiform(s1, s2, a1, p2=None)

Joint for rotation all around a point belonging to a plane.

classical definition: Punctiform/Sphere-Plane (axis) the initial state does’t require more data the class holds a normal axis for the plane side, and a point for the sphere side (that defaults to the axis’origin)

../_images/joints-punctiform.png
class Planar(s1, s2, a1, a2=None, position=None)

Joint for translation in 2 directions and rotation around the third direction

classical definition: Planar (direction vector) the initial state requires an additional distance between the solids this class holds an axis for each side, the axis origins are constrained to share the same projections on the normal

../_images/joints-planar.png

Complex joints

class Gear(s1, s2, ratio, a1, a2=None, position=None)

Gear interaction between two solids.

ratio is the factor from the rotation of s1 to the rotation of s2 The two pinions are considered circular, but no assumption is made on their radius or relative inclination. The interaction is symetric.

Note

As solids don’t hold more data than only their pose (position and orientation), there is no way to distinguish the gear in a pose, and in the same pose rotated by \(2 \pi\).

Therefore rotation jumps can occurs when several gears are tied.

class Helicoid(s0, s1, step, b0, b1=None, position=None)

Screw a solid into an other.

step is the translation distance needed for that one solid turn by 2*pi around the other The interaction is symetric.

Note

As solids orientation is in \([0;~ 2 \pi]\), when the gap in the helicoid is bigger than step then the joints solids only rotates by gap/step * 2*pi % 2*pi

If the helicoid is involved in any gearings or reductors, the result might be not what was expected.

../_images/joints-helicoid.png