A revolute joint is a joint with 1 rotational degree of freedom.
An instance of this class is used as cut joint to break a kinematic
loop of a multibody system. Note, that a Revolute2Dloop joint can
only be used in a planar (2D) loop and NOT in a general 3D loop.
The reason is that in a 2D loop, e.g. the constraint force
orthogonal to the plane of the loop is not unique if only rigid
bodies are within the loop. For a unique solution, additional
assumptions have to be made, e.g., that this force is zero.
These additional assumptions are stated in class Revolute2Dloop.
Use class RevoluteCut3D , if a revolute joint has to be used as
cut joint in a 3D loop.
Parameters:
n: Axis of rotation with respect to the inertial frame in the
home position. n must not necessarily be a unit vector.
Based on n , two vectors npx and npy are constructed which
are perpendicular to n (e.g., if n=[0 0 1] then npx=[1 0 0]
and npy=[0 1 0]). The 2 constraint equations on position level
state, that the distance between the origins of frame_a and frame_b,
projected onto npx and npy is zero.
As constraint forces fc (= Lagrange multipliers) of the joint,
forces in the direction of npx and of npy are used. Due to the
assumed planar (2D) loop, the force in direction of n and the
torques in direction of npx and of npy are assumed to be zero.
Generated at 2024-11-21T19:25:40Z
by OpenModelicaOpenModelica 1.24.2 using GenerateDoc.mos