Denavit-Hartenberg Parameters for a Three-Link Robot

Initializing live version
Download to Desktop

Requires a Wolfram Notebook System

Interact on desktop, mobile and cloud with the free Wolfram Player or other Wolfram Language products.

The Denavit–Hartenberg (DH) convention for assigning coordinate frames uses four variables to define the reference coordinate frame for each link in a robotic arm. This Demonstration lets you select a three-link combination of revolute (rotating) and prismatic (sliding) joints. You can then vary their DH parameters to create a variety of robot arms in different configurations.

Contributed by: Aaron T. Becker and Mary Burbage (June 2016)
Open content licensed under CC BY-NC-SA



The Denavit–Hartenberg (DH) convention is used to assign coordinate frames to each joint of a robot manipulator in a simplified and consistent fashion [1]. From these parameters, a homogeneous transformation matrix can be defined, which is useful for both forward and inverse kinematics of the manipulator. This homogeneous transformation is the product of four simpler transformations: (1) a rotation about the axis, (2) a translation along the axis, (3) a translation along the axis, and (4) a rotation about the axis. Joints are either revolute or prismatic. For revolute joints, the variable of movement is , and for prismatic joints, the variable of movement is . Under the DH convention, coordinate frames are assigned using two rules: (1) The axis of the current frame must be perpendicular to the axis of the previous frame, and (2) the axis of the current frame must intersect the axis of the previous frame.

The homogeneous transformation between two coordinate frames with DH parameters , , , is

, where and .

A video showing an animation explaining the assignment of DH parameters may be found at [2].

In this Demonstration, you can vary the four parameters to see the effect each has on the configuration of the robot. The code is modular and can easily be extended for -link robots.

The default settings give a three-link anthropomorphic manipulator arm, so named because the joints map to a waist, shoulder, and elbow rotation:

(Here * indicates the moving joint variable, other parameters are constant.)

Anthropomorphic manipulator arms are often used in assembly lines for welding, painting, and construction.

The snapshots show, in order:

SCARA arm, the Selective Compliant Articulated Robot for Assembly, has two revolute joints and one prismatic joint:

SCARA arms are often used for pick and place tasks on conveyor belts.

A three-link cylindrical robot, an early robot model with one revolute joint and two prismatic joints:

One reason cylindrical robots were popular is because they have simple inverse kinematics that are specified in cylindrical coordinates.

A three-link planar revolute robot:

Three-link planar robots have a disc-shaped workspace that they can reach. The extra joint enables them to achieve desired angles of the end effector (the robot hand) in a subspace of the reachable workspace. This subspace is called the dexterous workspace.

A spherical wrist:

A spherical wrist can be used to achieve any desired orientation of the end effector. Often a spherical wrist is attached to the end of a three-link robot such as a SCARA, anthropomorphic manipulator, or cylindrical robot. The first three joints are used for position control and the spherical wrist is used for orientation control.


[1] M. W. Spong, S. Hutchinson, and M. Vidyasagar, Robot Modeling and Control, Hoboken, NJ: John Wiley & Sons, 2006.

[2] E. Tira–Thompson, prod. Denavit-Hartenberg Reference Frame Layout [Video]. (Jun 15, 2016)

Feedback (field required)
Email (field required) Name
Occupation Organization
Note: Your message & contact information may be shared with the author of any specific Demonstration for which you give feedback.