General info for all connectors
The principle every connector follows
A connector has no coordinates of its own. Its markers give it positions, orientations, velocities, coordinates - whatever its types request -, it computes a force from them, and the force goes back to the coordinates through the Jacobians of the markers: for a force \(\LU{0}{\fv}\) at marker 1 and \(-\LU{0}{\fv}\) at marker 0, the virtual work
gives the generalized forces \(\LU{0}{\Jm_{pos,m1}}\tp\LU{0}{\fv}\) and \(-\LU{0}{\Jm_{pos,m0}}\tp\LU{0}{\fv}\) on the coordinates of the two bodies or nodes, and a torque the same with the rotation Jacobians. This is the same for all connectors, so each page gives only its force law: how the force follows from the marker quantities. The connector adds its forces to the left-hand side of the equations of motion, and so to the Jacobian of the solver.
Headings of a connector page
Definition of quantities - the marker quantities and the intermediate variables -, geometric relations - distance, relative rotation, contact geometry -, and connector forces
the force law, and a user function where there is one.
activeConnector
A connector with activeConnector = False computes its kinematic quantities but no force; it can
be switched on and off during a simulation, e.g. in a preStepUserFunction.
Output variables
Force is the force vector, usually on marker 1 and in the global frame; ForceLocal a force in
the frame of the connector, or a scalar force; Distance, Displacement and Velocity the
kinematic quantities the force law uses. The page of each connector says which it has and in which
frame.
The joints and the connectors of two points name the same quantity the same way (#2870): Position
and Velocity are those of marker 0; Displacement is the global vector from marker 0 to marker 1;
DisplacementLocal is that vector in the joint frame \(J0\) - for a joint its drift -, and it exists
only where the markers have a frame; HomogeneousTransformation is the joint frame \(J0\) of the
classical joints, and HomogeneousTransformationLocal the frame \(J1\) relative to \(J0\), for the joints
and connectors on rigid markers. Both give an exu.HT and are stored by a sensor as 16 values row by
row.
Contact connectors
The contact connectors - ObjectContact..., ObjectConnectorRollingDiscPenalty - are penalty
formulations with a discontinuous contact state. They need a NodeGenericData, whose data
coordinates hold the state of the last post Newton step - gap, friction regime, impact velocity -,
and the solver repeats a step when the state changes (active set strategy). mbs.CreateSphereSphereContact
and its relatives add the node, the markers and the connector.
Drawing
A connector is drawn if connectors.show and its own show are True, between the positions
of its markers, in its color or connectors.defaultColor; a drawSize of -1 takes connectors.defaultSize.
connectors.showNumbers writes its number. Circles and cylinders take the tilings of general
(general.circleTiling, general.cylinderTiling, general.sphereTiling, general.axesTiling for frames and
arrows), items that are large compared to the others 4 times as many; space curves such as the windings of a spring
take connectors.curveTiling. connectors.drawSimplified draws springs and the distance connector as lines.
The settings: connectors.show, connectors.showNumbers, connectors.defaultColor, connectors.defaultSize.