|On this page…|
Joints constrain the mechanical degrees of freedom between two connecting rigid bodies. The primary purpose of joints is to limit motion of a mechanism or machine so an end effector can move along a specified path. Rigid bodies can contain the following degrees of freedom:
Translational — linear displacement of one rigid body frame relative to another along a common axis.
Rotational — angular displacement of one rigid body frame relative to another about a common axis
A free rigid body contains exactly six degrees of freedom: three rotational and three translational. The free rigid body can translate along any combination of three mutually orthogonal axes, and rotate about any combination of the same axes. When you connect two rigid bodies with a joint, you remove degrees of freedom between the two. Depending on the joint, you can remove anywhere from zero-six degrees of freedom. A joint that removes all six degrees of freedom is called Weld joint.
The joint block contains two frame ports, B and F. The ports identify the base and follower frames of a joint, respectively. You connect the base frame port to one frame on one rigid body, and the follower frame port to another frame on a second rigid body. Switching the base and follower frames of a joint block has no effect on model assembly or simulation.
During simulation, joint blocks apply a time-varying transformation to the follower frame with respect to the base frame. The transformation depends on dynamic inputs (forces and torques) and the kinematic configuration of the model. Transformation components include rotation and translation about or along the joint primitive axes.
Each joint block contains a combination of joint primitives — elementary joint constructs that make up more advanced joints. The joint primitives represent the simplest joints you can find in SimMechanics™. Three joint primitives exist: prismatic, revolute, and spherical. The following three sections briefly describe each primitive. The final section lists the primitives that make up each joint block.
Joint primitive with one translational degree of freedom. The prismatic primitive allows the joint base and follower frames to translate relative to each other along a common axis. Joints with two prismatic primitives allow translation in a 2-D plane that contains the prismatic axes. Joints with three prismatic primitives allow translation in 3-D space.
The following figure shows a schematic of the prismatic joint primitive.
Joint primitive with one rotational degree of freedom. The revolute primitive allows the joint base and follower frames to rotate relative to each other about a common axis. Joints with three revolute primitives allow rotation in 3-D space. The frames must each connect to a non-degenerate mass. The following figure shows a schematic of the revolute joint primitive.
Joint primitive with three rotational degrees of freedom. The spherical joint allows the joint base and follower frames to rotate about three mutually orthogonal axes.
The Spherical primitive is not a serial combination of revolute primitives. Such a combination is susceptible to Gimbal lock — an event in which two revolute axes align, resulting in the loss of one rotational degree of freedom. The Spherical primitive is not susceptible to Gimbal lock at any time. The following figure shows a schematic of the spherical joint primitive.
Joint primitives are the basic elements of joint blocks. Each joint block can contain multiple joint primitives. The number and type of joint primitives that a joint block contains defines the degrees of freedom that joint provides. The table summarizes the joint primitives and degrees of freedom (DOF) for each joint block.
|Joint Block||Degrees of Freedom||Joint Primitives|
|Pin Slot Joint||1||1||1||1||0|
During assembly, joint blocks position and orients base and follower frames according to rules that depend on the joint type. The table summarizes the position and orientation constraints that each joint primitive imposes on the base and follower frames of a joint.
Each joint primitive provides the option to specify a state target: the desired initial state for that joint primitive. You can specify state targets for the position and velocity of the joint primitive, both of which can be either rotational (for revolute and spherical joint primitives), or translational (for prismatic joint primitives). The value of the state target represents the relative state of the follower port frame with reference to the base port frame. For example, when you enter a value for the velocity state target of a joint block, you specify the velocity of the follower port frame relative to the base port frame.
It is not always possible to set the initial state of a joint to the specified state target. This is especially true of closed loops containing state targets specified for multiple joints. However, during assembly, SimMechanics attempts to satisfy as many state targets as possible, and with a maximum level of precision. In the event that all state targets cannot be met, SimMechanics prioritizes state targets according to the priority level you specify. Joints with a priority level of High (desired) assemble earlier, followed by joints with a priority level of Low (approximate).
In the event that it is not possible to set all state targets to their exact values, SimMechanics relaxes the low-priority state targets, and searches for the best-fit approximate values that still allow assembly. Should assembly still fail, SimMechanics begins to relax high-priority state targets, searching for the nearest approximate values that allow for successful assembly. If assembly fails, check that the model is kinematically valid. Check also that closed-loop systems do not contain state targets for every joint in the loop, which by default causes an assembly error.