Accelerating the pace of engineering and science

# Documentation Center

• Trial Software

## Modeling Joints

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.

 Note:   The Rigid Transform block is similar to the Weld Joint block. Both blocks remove all six mechanical degrees of freedom between the two connecting rigid bodies. However, the Rigid Transform block also allows you to maintain a specified distance and angle between the two rigid bodies.

### Joint Frames

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.

### Joint Primitives

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.

#### Prismatic

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.

#### Revolute

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.

#### Spherical

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 Primitive Composition

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 BlockDegrees of FreedomJoint Primitives
RotationTranslationPrismaticRevoluteSpherical
6–DOF Joint33301
Bearing Joint31130
Bushing Joint33330
Cartesian Joint03300
Cylindrical Joint11110
Pin Slot Joint11110
Gimbal Joint30030
Planar Joint12210
Prismatic Joint01100
Rectangular Joint02200
Revolute Joint10100
Spherical Joint30001
Telescoping Joint31101
Universal Joint20020
Weld Joint00000

### Assembling Joints

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.

Joint primitiveConstraint
Prismatic
• Aligns base and follower frame prismatic axes. For example, the Z Prismatic Primitive aligns the Z axes of the base and follower frames.

• Holds the remaining base and follower frame axes parallel to each other. For example, the Z Prismatic Primitive keeps the base and follower frame X and Y axes parallel to each other.

Revolute
• Aligns base and follower frame revolute axes. For example, the Z Revolute Primitive aligns the Z axes of the base and follower frames.

• Holds base and follower frame origins coincident.

Spherical
• Holds base and follower frame origins coincident.

### Guiding Joint Assembly

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.