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

\[ \delta W = \left(\delta\LU{0}{\pv}_{m1} - \delta\LU{0}{\pv}_{m0}\right)\tp \LU{0}{\fv} \]

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.