Learn about Robots and Robotics

About this Site
Law Enforcement
Expert Witness
Robotics Engineer
Inverse Kinematics
Solar Power
Robot Vision
Motion Control
Guitar Ergonomics
Ergonomic Guitar Project

Robot Forward Kinematics

The figure above is a schematic of a simple robot lying in the X-Y plane. The robot has three links each of length l1-3. Three joints (the little circles) connect the three links of the robot. The angles at each of these joints are 1-3. The forward kinematics problem is stated as follows: Given the angles at each of the robots joints, where is the robot's hand (Xhand, Yhand, hand)?

For this simple planar robot, the solution to the forward kinematics problem is trivial:

Xhand = l1cos1 + l2cos(1 + 2) + l3cos(1 + 2 + 3)
Yhand = l1sin1 + l2sin(1 + 2) + l3sin(1 + 2 + 3)
hand = 1 + 2 + 3

For the general spatial case, the solution is not so trivial. This is because the joint angles do not simply add as they do in the planar case.

Denavit and Hartenberg used screw theory in the 1950's to show that the most compact representation of a general transformation between two robot joints required four parameters. These are now known as the Denavit and Hartenberg parameters (D-H parameters) and they are the de-facto standard for describing a robot's geometry. Here is a description of the four D-H parameters:

a - the perpendicular distance between two joint axes measured along the mutual perpendicular. The mutual perpendicular is designated the x-axis.

a - the relative twist between two joint axes measured about the mutual perpendicular

d - the distance between the two perpendiculars measured along the joint axis

Q - joint angle about the z axis measured between the two perpendiculars

Learning the proper procedure for assigning the D-H parameters is a typical exercise in an upper-level undergraduate or first graduate course in robotics.

Once the parameters have been assigned we can solve the forward kinematics problem by moving from the base of the robot out to the hand using the following transformations at each joint:

Transformation = Screwx(a, a)Screwz(d, Q) = Transx(a)Rotx(a)Transz(d)Rotz(Q)

Though the D-H parameters are the most compact general representation of the robot's geometry, they are seldom the most computationally efficient. In practice more specialized and computationally efficient equations are developed for each particular robot.

copyright notice