# ROBOT KINEMATICS

### Introduction

Kinematics is the relationships between the positions, velocities, and accelerations of the links of a manipulator, where a manipulator is an arm, finger, or leg. In this chapter, we will develop a mathematical framework for describing these relationships, in particular position. The transformation, between a coordinate frame located in the hand of the robot (known as the hand frame) and a coordinate frame located in the base of the robot (known as the base frame) will be studied in detail. This transformation specifies the location (position and orientation) of the hand in space with respect to the base of the robot, but it does not. tell us which configuration of the arm is required to achieve this location. As we will see, it is often possible to achieve the same hand position with many arm configurations. A serial link manipulator is a series of links, which connects the hand to the base, with each link connected to the next by an actuated joint. If a coordinate frame is attached to each link, the relationship between two links can be described with a homogeneous transformation matrix - an A matrix. The first A matrix relates the first link to the base frame, and the last A matrix relates the hand frame to the last link. We use a sequence of these A matrices to describe the transform from the base to the hand of the manipulator, a sequence called the forward kinematic transform of the manipulator

In the kinematic analysis of manipulator position, there are two separate problems to solve: direct kinemalics, and inverse kinematics. Direct kinematics involves solving the forward transformation equation to find the location of the hand in terms of the angles and displacements between the links. The angles and displacements between the links are called joint coordinates and are described with link variables, while the location of the hand in space is described with Cartesian coordinates. Inverse kinematics involves solving the inverse transformation equation to find the relationships between the links of the manipulator from the location of the hand in space.

Inverse kinematics is the more difficult problem to solve and, for some manipulators, closed form solutions cannot be found. However, con-straints are usually placed on manipulator design so that the inverse solution can be found; without this, the robot is difficult to control in Cartesian space. The inverse kinematic solution for a manipulator is usually derived from the direct kinematic transform, so direct kinematics will be discussed first. Before we discuss the direct kinematic algorithm in detail, we will develop a method for assigning coordinate frames to links. To assign a coordinate frame to a link, the relationship between it and the previous link must be understood. This relationship comprises the rotations and trans-lations that occur at the joints.

#### Summary

 Forward Kinematics Computation of the position, orientation and velocity of the end effector, given the displacements and joint angles. Reverse Kinematics Computation of the joint displacements and angles from the end effectors position and velocity.

## Kinematics

Kinematics depends on HOMOGENEOUS TRANSFORMATIONS

Consider a point in space with the co-ordinates:

v = ai + bj + ck

where : i, j, k are the unit vectors along the X,Y,Z axes

v can also be written as:

Hence:

Note:

[0 0 0 w]T : if w is not equal to 0, this defines the origin

[a b c 0]T : represents directions

[0 0 0 0]T : undefined

Transformations A transformation H is a 4 by 4 matrix, so given a point u, its transformation to v is:

Consider two general co-ordinate frames F1 and F2, with origins at P1 and P2.

• The relative position of F2 in F1 is given by the co-ordinates of P2 in F1.
• The relative orientation of the frames is expressed by the cosine of NINE angles.
• The orientation of the x axis of F2 to F1 is given by the angles, x2, y2, z2. The respective cosines are lx, ly, lz
• The orientation cosines for y2 in F1 are mx, my, mz.
• The orientation cosines for z2 in F1 are nx, ny, nz.

The general relationship, H, between frames F2 and F1 is therefore given by:

To simplify considerations, four specific matrices can be constructed.

Rotation of about the x axis.

As x1 and x2 are coincident, the angle is 0, hence lx = 1.

The angles between x2, and y1 and z1 are 90o, hence

Consider y2. 90o to x1 mx =

Between the two y axis is , hence

z1 to y2 is 90 - , hence

As the origins coincide, px = py = pz = 0

Hence Rot[x,q] =

Translation

### Application of Transformations

Let u = [ 7 3 2 1 ]T, and is rotated by 90o around the z axis to v:

v = Rot[z 90o]

u =

If v is the rotated around the y axis by 90o to w:

Hence w = Rot[y 90]Rot[z 90]u

As expected Rot[z 90]Rot[y 90] ¹ Roy[y 90]Rot[z 90], as shown in the figure.

### Movement of co-ordinate frames

Consider a point being moved through the following transformations

Trans[4 -3 7]Rot[y 90] Rot[z 90] =

If the origin of the original frame was [0 0 0 1]T, this will transform to

If we repeat this for the unit vectors;

x = [1 0 0 1] transforms to [4 -2 7 1] y = [0 1 0 1] transforms to [4 -3 8 1] z = [0 0 1 1] transforms to [5 -3 7 1]

If the four vectors are plotted, the new co-ordinate frame can be constructed. The directions of the vectors are found by subtracting the position of the origin, and extending the vector to infinity.

This indicates that the new x axis is at 90o to the original x axis, 0o to the original y axis and 90o to the original z axis, as drawn in the diagram.

This matrix has the same values as the first column of the original vector. Therefore the transformation matrix directly gives the origin and the position vectors of the new co-ordinate frame relative to the reference frame.

### Relative transformations

Up to this point we have considered all movements to be made relative to a fixed co-ordinate frame. Hence the above move can be summarised as

• Frame rotated around the reference z
• Frame rotated around the reference y

Frame translated within the reference frame

It is also possible to interpret the same move as:

Therefore the direction of multiplication of the transformations is crucial to obtaining the correct final position.

If we postmultiply a transform representing a frame by a second transform describing a translation or rotation, then that translation or rotation is made with respect to the frame described by the first transformation

If we premultiply a frame transformation by a second transform describing a translation or rotation, then that translation or rotation is made with respect to the base co-ordinate frame.

Consider a frame C and an arbitrary transformation T

Result with respect to the base co-ordinate frame:

Result with respect to the frame co-ordinate frame:

Given that:

Hence:

The sequence of the moves can be identified from the diagram.

### Robotic Kinematics Equations

As considered in an earlier section, a manipulator consists of a selection of links and joints, each with its own co-ordinate frame, and described by four parameters.

It is possible to state:

[A1] is the position and orientation of the first link with reference to the manipulator's origin. [A2] is the position and orientation of the second link relative to the first link.

Hence for a multijointed manipulator, [Tn] = [A1] [A2].......[An]

and,

If the end effector is considered

where n is the approach vector, and points along the direction that the end effector will approach and object.

m is the orientation vector, conventionally from fingertip to finger tip

l is the final vector, and is defined as l = m´n

p is the position vector

Specification of Orientation

[Tn] has 16 elements, only 12 of which have any real meaning.

· No limit on the value of px py pz

· The l, m and n vectors must satisfy: m.m = 1, n.n = 1, m.n = 0.

It is required to apply a set of rules to the orientation of the end effectors. Two main schemes are possible, either Euler angles or RPY : roll, pitch and yaw

· Rotation around the z axis is defined as roll · Rotation around the y axis is defined as pitch · Rotation around the x axis is defined as yaw

The order is defined as:

and on solving equals:

### Specification of Position

[Tn] =

Position can be specified in the form, px, py pz or in another co-ordinate system, e.g. spherical

Order of the translations are:

Giving:

The orientation will be computed with reference to the rotational co-ordinate frame, if we require it to be with reference to the base fame, we need to post multiply as follows

resulting a spherical transform of:

In summary [Tn] can be defined as:

### Specification of the [A] matrix

The joints and links have been defined as:

To fully describe the relationship, a set of co-ordinate frames are assigned to each link

• The sequence of moves is therefore specified as
• Equate the manipulator transformation matrix and the general orientation matrix to obtain the hand orientation angles.

The relationship between the co-ordinate frame of link n to the co-ordinate frame of link n-1 is given by:

Specification of [Tn] in terms of [A]

For a six degree of freedom manipulator it is possible to write:

If in addition a tool is attached to the robot with a transformation E, and the manipulator is related to the systems reference frame by Z:

Represented by the manipulator transform graph.

1. Move the manipulator to its zero position.
2. Assign a coordinate frame to each link.
3. Describe the rotations and translations between joints with link variables.
4. Define the A matrices relating the links.
5. Multiply the A matrices to calculate the manipulator transformation matrix RTH.
6. Equate the manipulator transformation matrix and the general transformation matrix to obtain Cartesian coordinates in terms of joint coordinates.

If this is applied to the 5 axis manipulator

## Reverse or Inverse kinematics

[Tn] is formally defined as

The robots workspace can be formally defined as

where

The robot control strategy is formally defined as:

where DH is the number of pulses or equivalent required to move the joints, i.e. the command vector.

Dq is the demand vector

p is the precision vector, i.e. counts or equivalent per degree or unit displacement

C is the coupling matrix, which identifies any coupling between links, for example if the robot includes a parallel bar mechanism

General properties of the solution The reverse kinematic solution can be expresses as, given the position and orientation of the manipulator, the values of q that satisfy the initial [Tn], and

### Uniqueness of the solution

If the manipulator has more than six joints, we have a number of possible solutions to the kinematic problem. A manipulator that has more than six joints is defined as a kinematically redundant manipulator, because it has more degrees of freedom than is necessary to establish an arbitrary tool configuration.

A kinematically redundant system has a number of significant advantages:

Even if a robot or manipulator is not redundant a number of joint solutions are possible for a required tool position.

### Solution to Reverse kinematics

The approach to reverse kinematics is to equate the variables in the [T] matrix with those in the tool space matrix. Hence, all the elements in the tool matrix must equal those of the forward kinematic equations:

As the solutions contain sin-1 and cos-1, uncertainties can arise. These can be minimised by:

• Use of the atan2 function, where = atan2(x,y)
 Case Quadrent atan2(x,y) x > 0 1,4 arctan(y/x) x = 0 1,4 sgn(y)(p/2) x < 0 2,3 arctan(y,x) + [sgn(y)p]
• By defining the solution in terms of elbow up or down, left or right handed
 Right Handed, Elbow Down Left handed, Elbow Up
• By avoiding as far as possible solutions that lead to singular matrices.

R M Crowder
January 1998