Universal
Universal joint (2 degrees-of-freedom, 4 potential states)
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
Name | Label | Description | Data Type | Valid Values |
---|---|---|---|---|
mo_animation | animation | = true, if animation shall be enabled | Scalar | true |
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 |
Name | Label | Description | Data Type | Valid 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 |
Name | Label | Description | Data Type | Valid 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 | |
mo_stateSelect/choice2 | StateSelect.avoid | Number | 0 | |
mo_stateSelect/choice3 | StateSelect.default | Number | 0 | |
mo_stateSelect/choice4 | StateSelect.prefer | Number | 0 | |
mo_stateSelect/choice5 | StateSelect.always | Number | 0 |
Name | Label | Description | Data Type | Valid 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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
mo_a_b/start | start | Cell of scalars |
Ports
Name | Type | Description | IO Type | Number |
---|---|---|---|---|
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 |