General info for all joints

What a joint is

A joint is a constraint between two rigid markers - MarkerBodyRigid, MarkerNodeRigid, a super element or kinematic tree marker - which fixes some of the relative motions of the two frames and leaves the others free: the revolute joint the rotation about one axis, the prismatic joint the translation along one axis. Everything the page of the constraints says - Lagrange multipliers, index 3 and index 2, activeConnector, redundant constraints - holds for the joints.

Joint frames

The free axes are those of a joint frame in each marker: rotationMarker0 and rotationMarker1 rotate the marker frames into the joint frames, and ObjectJointRevoluteZ, for example, turns about the local \(z\)-axis of the joint frame. mbs.CreateRevoluteJoint, CreatePrismaticJoint, CreateSphericalJoint and CreateGenericJoint take a global position and axis and compute the markers and the joint frames.

Reaction forces

The multipliers of a joint are its reaction forces and torques; the output variables give them - ForceLocal and TorqueLocal in the joint frame \(J0\) of marker 0 for most joints, Force in the global frame for the spherical joint -, as the page of each joint lists them.

Drawing

A joint is drawn as a connector: if connectors.show and its own show are True, at the positions of its markers, in its color or connectors.defaultColor, a drawSize of -1 takes connectors.defaultSize, and connectors.showNumbers writes its number. The 3D joints draw their axes as cylinders (general.cylinderTiling) and, with connectors.showJointAxes, the frames of their markers (connectors.jointAxesLength, connectors.jointAxesRadius, general.axesTiling); the 2D joints draw circles.

The settings: connectors.show, connectors.showNumbers, connectors.defaultColor, connectors.defaultSize.