This component consists of a universal joint at frame_a,
a spherical joint at frame_b and a prismatic joint along the
line connecting the origin of frame_a and the origin of frame_b,
see the default animation in the following figure (the axes vectors
are not part of the default animation):
This joint aggregation has no mass and no inertia and
introduces neither constraints nor potential state variables.
It is especially useful to build up more complicated force elements
where the mass and/or inertia of the force element shall be taken
into account.
The universal joint is defined in the following way:
- The rotation axis of revolute joint 1 is along parameter
vector n1_a which is fixed in frame_a.
-
- The rotation axis of revolute joint 2 is perpendicular to
axis 1 and to the line connecting the universal and the spherical joint.
The definition of axis 2 of the universal joint is performed according
to the most often occuring case. In a future release, axis 2 might
be explicitly definable via a parameter. However, the treatment is much more
complicated and the number of operations is considerably higher,
if axis 2 is not orthogonal to axis 1 and to the connecting rod.
Note, there is a singularity when axis 1 and the connecting line are parallel
to each other. Therefore, if possible n1_a should be selected in such a way that it
is perpendicular to nAxis_ia in the initial configuration (i.e., the
distance to the singularity is as large as possible).
An additional frame_ia is present. It is fixed on the line
connecting the universal and the spherical joint at the
origin of frame_a. The placement of frame_ia on this line
is implicitly defined by the universal joint (frame_a and frame_ia coincide
when the angles of the two revolute joints of the universal joint are zero)
and by parameter vector nAxis_ia, an axis vector directed
along the line from the origin of frame_a to the spherical joint,
resolved in frame_ia.
An additional
frame_ib is present. It is
fixed in the line
connecting the prismatic and the spherical joint at the
origin of
frame_b.
It is always parallel to
frame_ia.
Note, this joint aggregation can be used in cases where
in reality a rod with spherical joints at each end are present.
Such a system has an additional degree of freedom to rotate
the rod along its axis. In practice this rotation is usually
of no interested and is mathematically removed by replacing one
of the spherical joints by a universal joint.
The easiest way to define the parameters of this joint is by moving the
MultiBody system in a reference configuration where all frames
of all components are parallel to each other (alternatively,
at least frame_a, frame_ia and frame_ib of the JointUSP joint
should be parallel to each other when defining an instance of this
component).