Universal

Universal joint (2 degrees-of-freedom, 4 potential states)

    Universal

Library

Mechanics/MultiBody/Joints

Description

Joint where frame_a rotates around axis n_a which is fixed in frame_a and frame_b rotates around axis n_b which is fixed in frame_b. The two frames coincide when "revolute_a.phi=0" and "revolute_b.phi=0". This joint has the following potential states;

  • The relative angle phi_a = revolute_a.phi [rad] around axis n_a,
  • the relative angle phi_b = revolute_b.phi [rad] around axis n_b,
  • the relative angular velocity w_a (= der(phi_a)) and
  • the relative angular velocity w_b (= der(phi_b)).

They are used as candidates for automatic selection of states from the tool. This may be enforced by setting "stateSelect=StateSelect.always" in the Advanced menu. The states are usually selected automatically. In certain situations, especially when closed kinematic loops are present, it might be slightly more efficient, when using the "StateSelect.always" setting.

In the following figure the animation of a universal joint is shown. The light blue coordinate system is frame_a and the dark blue coordinate system is frame_b of the joint (here: n_a = {0,0,1}, n_b = {0,1,0}, phi_a.start = 90o, phi_b.start = 45o).

Parameters

Universal_0

NameLabelDescriptionData TypeValid Values

mo_animation

animation

= true, if animation shall be enabled

Scalar

true
false

mo_n_a

n_a

Axis of revolute joint 1 resolved in frame_a

Vector of size 3

mo_n_b

n_b

Axis of revolute joint 2 resolved in frame_b

Vector of size 3

Universal_1

NameLabelDescriptionData TypeValid Values

mo_cylinderLength

cylinderLength

Length of cylinders representing the joint axes

Scalar

mo_cylinderDiameter

cylinderDiameter

Diameter of cylinders representing the joint axes

Scalar

mo_cylinderColor

cylinderColor

Color of cylinders representing the joint axes

Vector of size 3

mo_specularCoefficient

specularCoefficient

Reflection of ambient light (= 0: light is completely absorbed)

Scalar

Universal_2

NameLabelDescriptionData TypeValid Values

mo_stateSelect

stateSelect

Priority to use joint coordinates (phi_a, phi_b, w_a, w_b) as states

Structure

mo_stateSelect/choice1

StateSelect.never

Number

0
1

mo_stateSelect/choice2

StateSelect.avoid

Number

0
1

mo_stateSelect/choice3

StateSelect.default

Number

0
1

mo_stateSelect/choice4

StateSelect.prefer

Number

0
1

mo_stateSelect/choice5

StateSelect.always

Number

0
1

Universal_3

NameLabelDescriptionData TypeValid Values

mo_revolute_a

revolute_a

revolute_a

Structure

mo_revolute_a/fixed

fixed

Cell of scalars

mo_revolute_b

revolute_b

revolute_b

Structure

mo_revolute_b/fixed

fixed

Cell of scalars

mo_phi_a

phi_a

phi_a

Structure

mo_phi_a/fixed

fixed

Cell of scalars

true
false

mo_phi_a/start

start

Cell of scalars

mo_phi_b

phi_b

phi_b

Structure

mo_phi_b/fixed

fixed

Cell of scalars

true
false

mo_phi_b/start

start

Cell of scalars

mo_w_a

w_a

w_a

Structure

mo_w_a/fixed

fixed

Cell of scalars

true
false

mo_w_a/start

start

Cell of scalars

mo_w_b

w_b

w_b

Structure

mo_w_b/fixed

fixed

Cell of scalars

true
false

mo_w_b/start

start

Cell of scalars

mo_a_a

a_a

a_a

Structure

mo_a_a/fixed

fixed

Cell of scalars

true
false

mo_a_a/start

start

Cell of scalars

mo_a_b

a_b

a_b

Structure

mo_a_b/fixed

fixed

Cell of scalars

true
false

mo_a_b/start

start

Cell of scalars

Ports

NameTypeDescriptionIO TypeNumber

frame_a

implicit

Coordinate system a fixed to the component with one cut-force and cut-torque

input

1

frame_b

implicit

Coordinate system b fixed to the component with one cut-force and cut-torque

output

1