0% found this document useful (0 votes)
26 views85 pages

Robotics Book TYK 2022 Chap1 2

This document provides an overview of robotics fundamentals. It discusses the history of robots, definitions of robots and robotics, classifications of robots, robot components, degrees of freedom, configurations, reference frames, programming modes, characteristics, workspaces, applications, and kinematics. The document contains two chapters, with Chapter 1 covering introductory concepts and Chapter 2 focusing on kinematics including homogeneous transformations, Denavit-Hartenberg representation, and forward/inverse kinematics. It serves as a textbook for an industrial electronics and control engineering course on robotics.

Uploaded by

oa380811
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views85 pages

Robotics Book TYK 2022 Chap1 2

This document provides an overview of robotics fundamentals. It discusses the history of robots, definitions of robots and robotics, classifications of robots, robot components, degrees of freedom, configurations, reference frames, programming modes, characteristics, workspaces, applications, and kinematics. The document contains two chapters, with Chapter 1 covering introductory concepts and Chapter 2 focusing on kinematics including homogeneous transformations, Denavit-Hartenberg representation, and forward/inverse kinematics. It serves as a textbook for an industrial electronics and control engineering course on robotics.

Uploaded by

oa380811
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 85

Menoufia University

Faculty of Electronic Engineering, Menouf


Department of Industrial Electronics and Control Engineering

ACE 322

Robotics

‫ِعل ٌم يُنتف ُع به‬


2022
Table of Contents
Chapter 1

Fundamentals of Robots .....................................................................................................1

Introduction .............................................................................................................1

History of Robots ....................................................................................................2

What is a Robot? .....................................................................................................3

Robot Classifications ..............................................................................................3

What is Robotics?....................................................................................................5

Robot Components ..................................................................................................5

Robot Degrees of Freedom .....................................................................................6

Types of Joints ........................................................................................................8

Robot Configurations ..............................................................................................9

Robot Reference Frames .......................................................................................10

Programming Modes .............................................................................................12

Robot Characteristics ............................................................................................13

Robot Workspace ..................................................................................................14

Robot Applications ................................................................................................15

Problems ................................................................................................................18

Chapter 2

Kinematics of Robots .......................................................................................................19

Introduction ...........................................................................................................19

Robots as Mechanisms ..........................................................................................20

Matrix representation ............................................................................................20

Representation of a Point in Space........................................................................21

Representation of a Vector in Space .....................................................................21

i
Representation of a Frame in Space ............................................................. 24

Representation of a Rigid Body in Space..................................................... 27

Homogeneous Transformation Matrices ............................................................. 30

Representation of a Pure Translation ........................................................... 31

Representation of a Pure Rotation about an axis ......................................... 33

Representation of Combined Transformations ............................................ 36

Transformations Relative to the Rotating Frame ......................................... 40

Inverse of Transformation Matrices.................................................................... 43

Forward and Inverse Kinematics of Robots........................................................ 48

Forward and Inverse Kinematic Equations: Position.......................................... 49

Cartesian Coordinates .................................................................................. 50

Cylindrical Coordinates ............................................................................... 51

Spherical Coordinates .................................................................................. 53

Forward and Inverse Kinematic Equations: Orientation .................................... 56

Roll, Pitch, Yaw (RPY) angles..................................................................... 56

Euler angles .................................................................................................. 58

Forward and Inverse Kinematic Equations: Position and Orientation................ 59

Denavit-Hartenberg Representation of Forward Kinematic Equations of Robots .


.............................................................................................................................60

Problems 2........................................................................................................... 77

ii
Chapter 1
Fundamentals of Robots

Introduction
You may have seen machines that try to mimic human motions and
behavior. When you hear the word Robot you imagine a humanoid
machine as you see in movies. Even the Arabic translation of the word
robot is "‫ "إنسان آلي‬which is a big mistake. Although humanoids are
robots, there are many different kinds of robots, varies from industrial
robots to intelligent toys. Figure 1.1 shows examples of different kinds
of robots. The history of industrial automation is characterized by
periods of rapid change in popular methods related to world economics.
Use of industrial Robots became identifiable in the 1960s. In this book
we are concerning with industrial robots. We will study the analysis of
mechanics of robots including kinematics, dynamics and trajectory
planning. Also we will study sensors and actuators used in robots.
Robots are very powerful elements of industry. They are capable of
performing many tasks with high accuracy. They don’t need safety and
comfort elements that humans need. Robots are used together with other
devices, peripherals and machines to construct a system for certain task
or operation.

1
Figure 1.1 Examples for Robots.

History of Robots
In 1922 a Czech author "Karel Capek" wrote a story called
"Rossum's Universal Robots". He used the word "Robota" which means
"workers" to refer to human-like machines. After World War II,
automatic machines were designed to increase productivity and
numerical control is introduced to have better products. In 1946 a
playback device was developed by George Devol. The first numerically
controlled machine was built at MIT in 1952. In 1955 Denavit and
Hartenberg developed homogeneous transformation matrices (explained
later). The first industrial robot (Unimation) appeared in 1962 and used
by GM. In 1983 robots become popular subject in industry and
academia, robotic courses started to be taught.

2
It was reported that over 5,300 robots were ordered by North
American Companies on 2005. In 2014, the International Federation of
Robots (IFR) reported that robot sales increased by 29% to 229,261
units.

What is a Robot?
When comparing a conventional robot with a crane attached to a
vehicle, they look similar to each other. Both has a number of links
attached to each other with joints, and each joint can be moved by an
actuator, the hand can be moved in space in the desired location and
orientation. The main difference between them is that the crane is
controlled manually by the operator while the robot is controlled by a
computer (microprocessor) that executes certain program to perform the
desired task. For robots we can change the operation by changing the
program, while the crane cannot change the operation without an
operator running it all the time.

Robot Classifications
Robots can by classified into different groups. For example, the
Japanese Industrial Robot Association (JIRA) classifies robots into six
classes as follows:
 Class 1: Manual Handling Device: that includes devices with
multy degrees of freedom, controlled by an operator.
 Class 2: Fixed Sequence Robot: includes devices that perform
successive stages of a task according to a predetermined,
unchanging method, which is hard to modify.

3
 Class 3: Variable Sequence Robot: similar to class 2, but easy to
be modified.
 Class 4: Playback Robot: allows the operator to perform the task
manually by leading the robot (teach), which records the motions
to repeat them later. The robot repeats the same motions
according to the recorded information.
 Class 5: Numerical Control Robot: the operator writes a program
to describe movement rather than teaching the robot manually.
 Class 6: Intelligent Robot: the robot is equipped by sensors to
gather information about the environment, and with the aid of the
program, it can complete a task despite of the changes in the
surrounding conditions.
According to The Robotics Institute of America (RIA), the robot
should be easily programmed, so it considers classes 3-6 of the previous
as robots. The Association Francaise de Robotique (AFR) classifies
robots into four types as follows:
 Type A: Handling Devices with manual control to telerobotics.
 Type B: Automatic handling devices with predetermined cycles.
 Type C: programmable, servo controlled robots with continuous
or point-to-point trajectories.
 Type D: similar to type C but with capability to gather
information from the surrounding.

4
What is Robotics?
Robotics is the art, knowledge base, and know-how of designing,
applying and using robots. It includes studying robots and other devices
used with it. As robots are used in many applications like underwater,
space exploration, aid for disabled or even toys, Robotics is not limited
to mechanical and electronic engineering or computer science, it may
include biology, Insects and many other disciplines.

Robot Components
A robot is a system consists of some elements which integrated
together to form the robot. We can summarize these elements as follow:
• Manipulator (rover): this is the main body of the robot which
consists of the links, joints and other structural parts of the robot.
Without other elements, the manipulator is not a robot.
• End Effector: It is the part connected to the last joint (hand) of
the manipulator. It is specifically designed according to the task it
may perform. It may be a gripper, a welding torch, a paint spray
gun or any other constructions.
• Actuators: They are the "muscles" of the manipulator. When an
actuator receives a control signal from the controller it moves the
joint according to these signals. There are many types of actuators
like servomotors, stepper motors, pneumatic, hydraulic actuators.
• Sensors: They are used to collect information about the internal
state of the robot and the surroundings as well. It gives the

5
controller information about the location of each link or joint, and
allows the robot to communicate with the outside world.
• Controller: It is like the "cerebellum". It controls the motion of
actuators. It receives its data from the computer (brain) then sends
the suitable control signal to actuators, like a current to an electric
motor or air to pneumatic cylinder causing it to move.
• Processor: It is the "brain" of the robot. It calculates the motions
of the joints and determines how much and how fast each joint
must move to achieve the desired location and speed. It is
generally a computer dedicated for this purpose. It requires an
operating system, programs and peripherals. In some systems the
processor and controller are integrated together.
• Software: It represents the programs used to manage the robot.
There are three types of software, firstly the operating system
which operates the processor. Secondly the robotic software that
calculates the necessary motions of each joint based on the
construction of the robot. And finally the application-oriented
routines for specific tasks such as assembly, machine loading and
vision routines.

Robot Degrees of Freedom


From mechanics course we know that to locate a point in space we
need to specify three coordinates (like x, y, z coordinates along the
three Cartesian axes). So these three coordinates are enough to
completely define the location of the point. If we have only two

6
coordinates it will be inadequate. If we consider a three dimensional
rigid body, to locate it, we need to specify the location of a selected
point on it, it needs 3 pieces of information to locate its position.
However, although the location of the point on the body is specified,
there are infinite possible ways to orientate that body about the selected
point. To fully specify the orientation of the body, in addition to the
location of a selected point on it, we need to specify the orientation of
the body as well. This means that 6 pieces of information are needed to
fully specify the location and orientation of a rigid body. By the same
way, there need to be 6 degrees of freedom available to fully place an
object in space and orientate it as desired.
For this reason, robots need to have 6 degrees of freedom to freely
place and orientate objects within the workspace. If a robot has fewer
degrees of freedom, it can only go to positions and orientations that the
fewer joints allow. On the other hand, if a robot has 7 degrees of
freedom, it would not have a unique solution, i.e. it will have infinite
ways to place a part in certain position and orientation. This needs
additional decision-making routine to choose one of the infinite
solutions. For example we may choose the fastest or the shortest path to
the desired destination, but this need more computation!
Note that, the End Effector of the robot is not considered as one of
the degrees of freedom. In some cases there are limitations on the
movement of joints, so we assign 1/2 degree of freedom for that joint.

7
The human arm -excluding the hand- has three joints the shoulder,
the elbow and the wrist. The shoulder has 3 degrees of freedom, the
elbow has 1 degree of freedom and the wrist has 3 degrees of freedom.

Types of Joints
Robots may have different types of joints, such as linear (prismatic),
rotary (revolute) or spherical. Although spherical joints have multiple
degrees of freedom, they are difficult to control, so it is not common in
robots except for research. Most robots have either linear joints or
rotary joints. Prismatic joints have linear movements, there is no
rotation involved. They are either hydraulic, pneumatic cylinders or
linear electric actuators.
Revolute joints have rotary movements, most rotary joints are
electrically driven either by stepper motors or servomotors. Hydraulic
and pneumatic are also used. Figure 1.2 shows Symbolic representation
of prismatic and revolute joints.

Figure 1.2 Symbolic representations of Robot Joints.

8
Robot Configurations
Robot configurations generally follow the joints from the base to the
hand. Prismatic joints are denoted by P, revolute joints are denoted by R
and spherical joints are denoted by S. Here are some examples of
common configurations illustrated in figure 1.3:

Figure 1.3 Some common configurations of Robots.


• Cartesian (Rectangular or Gantry) (3P): These robots have three
prismatic joints that position the end effector.
• Cylindrical (R2P): It has one revolute joint and two prismatic
joints.
• Spherical (2RP): It has two revolute joints and one prismatic
joint.

9
• Articulated (3R): It has three revolute joints, similar to the
human's arm. It is the most common configuration for industrial
robots.
• Selective Compliance Assembly Robot Arm (SCARA): It has
two or three revolute joints that are parallel and allow the robot to
move in a horizontal plane, plus an additional prismatic joint that
moves vertically. It is commonly used in assembly operations.

Robot Reference Frames


Robots can move relative to different reference coordinate frames.
In each one of the coordinate frames the motion will be different. There
are three reference frames used to describe motion of robot.
World Reference Frame: This is a universal coordinate frame
usually defined by x-, y- and z-axes. In this case the robot joints move
simultaneously in a coordinated way to create motions along the three
major axes. As shown in figure 1.4, this frame is used to define the
motions of the robot relative to other objects, define other parts and
machines the robot communicates with, and define motion trajectories.

Figure 1.4 World Reference Frame.

10
Joint Reference Frame: This is used to specify movements of
individual joints. In this case, each joint is moved individually;
therefore only one joint move at a time. Depending on the type of joint
used the motion of the robot hand will be different. For example if a
revolute joint is moved the hand will move on a circle.

Figure 1.5 Joint Reference Frame.


Tool Reference Frame: This is used to specify movements of
robot's tools relative to a frame attached to the hand, so all movements
are relative to that local n,o,a-Frame, as shown in figure 1.6. This frame
is moving with the robot. Tool reference frame is useful where the robot
is to approach an object or to assemble parts.

Figure 1.6 Tool Reference Frame.

11
Programming Modes
Robots may be programmed in a number of different modes,
depending on the robot design and its sophistication. Most industrial
robots can be programmed in more than one mode. The following are
the common programming modes:
Physical Set-up: In this mode, an operator sets up switches and hard
stops that control the motions of the robot. This mode is usually used
with PLCs.
Lead Through (Teach): In this mode, an operator moves the joints
with a teach pendent. When the desired location and orientation is
achieved, the location and orientation are recorded into the controller.
During playback, the controller moves the joints to the same locations
and orientations. It is a point-to-point mode, i.e. the motion between
points is not specified or controlled. Only the points taught are
guaranteed to reach.
Continuous Walk-Through Mode: In this mode, all the robot
joints are moved simultaneously, while the motion is continuously
sampled and recorded by the controller. During playback, the exact
motion that was recorded is executed. The motion is taught by the
operator either through a model or by physically moving the end
effector.
Software Mode: In this mode, a program is written offline or online
and executed by the controller. It uses codes like other programming
languages. There are codes for gathering sensors information, codes for

12
branching and conditional statements. It requires the knowledge of the
programming syntax for the robot.

Robot Characteristics
The following definitions are used to characterize robot
specifications:
Payload: it is defined as the weight a robot can carry and still
remain within its other specifications or capable of achieving its tasks.
The robot's maximum load capacity may be much larger than its
payload, as with that maximum load the robot may become less
accurate, may not follow its desired trajectory or may have deflections.
Reach: it is the maximum distance a robot can reach within its
workspace. Is depends on links' length and joints' type. Many points
within the workspace can be reached in any desired orientation, (called
dexterous points), while other points, closed to the limits, orientation
can NOT be specified as desired, called (nondexterous point).

Precision (validity): it is defined as how accurately a specified point


can be reached. This is affected by the resolution of actuators and
feedback devices. Most industrial robots can have precision in the range
of 0.001 inches or better.

Repeatability (variability): it is how accurately the same point can


be reached if the motion is repeated many times. Repeatability is much
more important than precision, as if a robot is not precise it has a
consistent error that can be solved by programming (add or subtract).

13
But repeatability represents random error that is not predicted and
consequently cannot be eliminated.

Figure 1.7 Repeatability versus Precision.

Robot Workspace
According to the configuration and size of joints and links, robot can
reach a collection of points around them that constitute a workspace.
The shape of workspace is defined by the joint types, while the
dimension of the workspace is defined by the links' lengths.
Workspace can be found mathematically by writing equations that
define the robot's links and joints including their limitation. Alternately,
the workspace may be found empirically by virtually moving each joint
through its range of motions, combining all the space it can reach and
subtracting what it cannot reach. Figure 1.8 shows examples of how to
determine the workspace of a robot. Note the difference in shape
according to the type of joints.

14
Figure 1.8 Examples for Workspace of robots.
As the configuration of robot changes, the shape and size of the
workspace is changed. Figure 1.9 shows approximate workspaces for
common robot configurations.

Figure 1.9 Approximate Workspaces for common robot configurations.

Robot Applications
Robots are best suited to work in environment and on tasks where
humans are not. Robots have already been used in many industries for
many purposes. Robots perform better than humans at lower costs. For
example, a welding robot can weld better than a human welder because
it can move more uniformly and more consistently, besides robots do

15
not need safety like protective goggles, ventilation, or other necessities
that human would need.
The following is a list of some robot applications. There are many
other applications find their ways into industry and society all the time:
Machine loading: robots supply other machines with parts or
remove the processed parts. It may not perform any operation on the
parts, but it facilitates material handling.
Pick and place: where robots pick up parts and place them
elsewhere. This may include palletizing, simple assembly by putting to
parts together, placing parts in an oven and removing treated parts from
the oven.
Welding: a robot with proper set-up and a welding end effector is
used to weld parts together. This is the most common applications of
robot in auto-industry.
Painting: since having a ventilated and clean room suited for
humans is difficult to achieve, painting robots are very well-suited for
this job.
Inspection: robots are used in inspection systems of circuit boards
and similar products. The system may include a vision system, x-ray
device, ultrasound detector or other devices.
Assembly: robots can locate parts and identify them, then carry
them in a particular order to fit them together and then assemble them.
Manufacturing: robots may perform many different operations like
drilling, cutting, and so on. It also includes insertion of parts such as
electronic components unto circuit boards.

16
Medical Applications: using robots in medical applications
becomes increasingly common. Nowadays there are internal surgery
robots, where the surgeon directs the robotic movements. Other robots
assist surgeons during microsurgery including operations on heart
valves.
Assisting disabled persons: these applications have a great interest,
as robot can perform simple tasks for disabled persons. The finger-
spelling hand is designed for communication with the deaf individuals.
Hazardous Environments: robots can access, traverse and explore
hazardous environments like radioactive environments. Robots are used
to detect underground mines.
Underwater, Space and Inaccessible locations: these
environments with very high or low pressures and/or temperatures are
easily accessed by robots. Robots are sent to other planets like Mars.

Figure 1.10
Intelligent Toys: toys that react intelligently with people became a
popular field of robot applications.

17
Problems
Pr.1.1 Draw the approximate workspace for the following robot.

Pr.1.2 Draw the approximate workspace for the following robot.

Pr.1.3 Draw the approximate workspace for the following robot.

18
Chapter 2
Kinematics of Robots
Introduction
Kinematics is a branch of mechanics concerned with the motion of
objects without reference to the forces that cause the motion. In this
chapter, we will study forward and inverse kinematics of robots.
Forward kinematic equations can determine where the robot's end
(hand) will be if all joint variables are known, while inverse kinematic
equations enable us to calculate what each joint variable should be in
order to locate the hand at a desired location with a desired orientation.

Firstly, we will use matrix notation to describe objects, locations,


orientations and movements. Then we will study the forward and
inverse kinematic equations for common robot configurations such as
Cartesian, Cylindrical and Spherical coordinates.

Finally, we will use Denavit-Hartenberg representation (D-H) to


drive forward and inverse kinematic equations of all possible
configurations of robots regardless of number of joints, order of joints
and presence or lack of offsets and twists.

It is important to realize that robot manipulators are delivered with


no end effector. In most cases, there may be a gripper attached to the
robot. However depending on the actual application, different end
effectors are attached to the robot by the operator. In this chapter we
will assume
19

19
Chapter 2 Kinematicss of Robots
that the end effector is a plate to which the end effector can be attached
as necessary. We will call it the hand or the end plate of the robot.

Robots as Mechanisms
Manipulator-type robots are multi degree of freedom, three
dimensional, open loop, chain mechanisms. We will explain these terms
briefly.
Multi degree of freedom means that the robot has many joints,
allowing it to move freely within its workspace. Three dimensional
means that the robot can move in space, although it is possible to have a
two-dimensional multi-DOF robot, it is not common.
There is a type of manipulators called parallel robots which is out
of the scope of this book. For open loop manipulators, all the joint
variables should be measured continuously to ensure achieving the
desired position and location for the hand.

Figure 2.1 Examples for Parallel Robots.

Matrix representation
We will use matrices to represent points, vectors, frames,
translations, rotations, transformations and objects. As we will see, this
will make it easy to discuss movements and calculate the position and

20
Chapter 2 Kinematicss of Robots
location of the hand, or the joints variables for the hand to be in a
desired position and orientation.

Representation of a Point in Space


To represent a point P in space relative to a reference frame, we
need three pieces of information about its coordinates relative to that
frame. This can be expressed in the following equation:
P= px i + py j + pz k

Figure 2.2 A Point in Space.

Representation of a Vector in Space


To represent a Vector V, starts at point A and ends at point B, it
could be represented with the following equation:
V= vx i + vy j + vz k
Where:
vx = Bx - Ax vy = B y - A y vz = Bz - Az
vx , vy and vz are the three components (projections) of the vector V
relative to the reference frame.

21
Chapter 2 Kinematicss of Robots

Figure 2.3 A Vector in Space.


Using matrix notation, we can represent the vector V in the
following form:

This representation can be modified to include a scale factor w, such


that we can represent the vector V in the following form:

Where:
vx = vy = vz =

If the value of the scale factor w changes, the magnitude of the


vector changes accordingly. If w is bigger than 1, all vector components
enlarge; if w is smaller than 1, all vector components become smaller.
If w = 0, the components will be infinity. So it represents a
direction vector. In this book we will use w = 0 to represent unit
vectors in the direction of the given vector.

22
Chapter 2 Kinematicss of Robots
Example 2.1: A vector V is described as V= 3 i + 4 j + 12 k, represent
it with a scale factor of 3, then represent a unit vector in its
direction.
Solution

with a scale factor of 3 then

To have a unit vector in the direction of V, we should divide its


components by its magnitude,

Where: = 13
So a unit vector in the direction of V is:

Example 2.2: A vector P is 5 units long and is in the direction of a unit


vector q described below. Represent that vector in matrix
form.

Solution

As q is a unit vector, so =1

23
Chapter 2 Kinematicss of Robots
= 0.743

then P = 5 * =

Representation of a Frame in Space


A frame is generally represented by three mutually orthogonal axes,
like (x, y and z). Since there are many frames at any given time, We use
axes x, y and z to represent the fixed Universe frame (Fx,y,z), and use n,
o and a axes to represent the moving (current) frame (Fn,o,a).

Figure 2.4 Universal (Fixed) Frame, and Local (moving) frame.

The letters n, o and a comes from the words Normal, Orientation


and Approach. As shown in figure 2.4, the a-axis represents the way
that allows the hand to reach the object. While the o-axis represents the

24
Chapter 2 Kinematicss of Robots
orientation of approach, and the n-axis is normal (orthogonal) to the
previous two axes.
Assume a moving frame Fn,o,a with its origin coincides with the
origin of the reference frame Fx,y,z. As shown in figure 2.5, the vectors
n, o and a are located in the fixed frame, we can represent that frame
using a matrix contains these three vectors as follows:

F=

Figure 2.5 A moving frame at the origin of the reference Frame.

In fact the moving frame is not attached to the origin of the


reference frame, it can move anywhere within the workspace of the
robot. So to fully describe the frame we should determine the position
of its origin point and the orientation of its axes relative to the fixed
frame.

25
Chapter 2 Kinematicss of Robots

Figure 2.6 A moving frame in the reference Frame.

So the moving frame shown in figure 2.6 is represented by three


vectors describing its directional unit vectors (n, o and a) and a fourth
vector describing the location of its origin (P) relative to the fixed
frame.

F=

As n, o and a are unit vectors, we use a scale w = 0 with them. But


the vector P which represents the origin of the moving frame has a scale
w = 1 as it is important to know its actual length. Some literature uses a
matrix 3×4 without the scale row, but it is not common. Adding the
fourth row of scale factors to the matrix makes it 4×4 which is called
Homogenous matrix. That will facilitate calculations as we will see
later in this chapter.
Example 2.3: Represent the frame F shown in figure 2.7, if it is located
at (3, 5, 7) units, its n-axis parallel to x-axis, its o-axis at 45º
relative to y-axis and its a-axis at 45º relative to z-axis.

26
Chapter 2 Kinematicss of Robots

Figure 2.7 An example of representation of a frame.


Solution
From the given information we can find the components of n, o and
a axes. Also we can represent the origin of that frame. So the frame is
represented as follow:

F=

Representation of a Rigid Body in Space


An object can be represented in space by attaching a frame to it and
representing this frame. Since the object is permanently attached to this
frame, its position and orientation relative to the frame is always
known. So by describing the frame in space, we know the object's
location and orientation relative to the fixed frame.

Figure 2.8 Representation of an Object in Space

27
Chapter 2 Kinematicss of Robots
This means that the object can be represented as follows:

Fobject =

The matrix representing the object has 12 pieces of information.


Although we stated in chapter one that an object is defined in space
using 6 DOF. There is no contradiction as only 6 of these 12 pieces of
information are enough to describe the object. This is because these
pieces of information must satisfy some constraints. The constraints
comes from the characteristics of a frame. As the axes of the frame
must satisfy that:
* They are Mutually perpendicular.
* Each vector's length is 1, (Unit Vectors).
This could be summarized in the following six equations:
n.o=0 (the dot product of n and o vectors must be zero)
o.a=0
a.n=0
|| n || = 1 (the magnitude of the vector must be one)
|| o || = 1
|| a || = 1
The first three equations can be replaced by the cross product as
follows (note the right order):
n×o=a

Example 2.4: For the following frame, find the missing elements and
complete the matrix represents the frame.

28
Chapter 2 Kinematicss of Robots

F=

Solution
There are only 6 known values. Applying the 6 constraints on the
vectors n, o and a we get the following equations:
n x o x + n y o y + nz o z = 0 0.707 oy + nz oz = 0
ax ox + ay oy + az oz = 0 ay o y = 0
nx ax + ny ay + nz az = 0 nx ax + 0.7.7 ay = 0
n x 2 + ny 2 + nz 2 = 1 nx 2 + 0.707 2 + nz 2 = 1
o x 2 + oy 2 + oz 2 = 1 o y 2 + oz 2 = 1
ax 2 + ay 2 + az 2 = 1 ax 2 + ay 2 = 1
solving these six equations we have: nx = ±0.707, nz = 0, oy = 0, oz = 1,
ax = ±0.707 and ay = -0.707. Notice that both nx and ax must have the
same sign. It is clear that we have two solutions, this is because we have
two sets of mutually perpendicular vectors in the opposite direction.
The final matrix will be:

F1 = or F2 =

The same problem can be solved using the cross product instead of
the dot product, so we have the following equations:

n × o = a, = ax i + ay j + az k

29
Chapter 2 Kinematicss of Robots
ax = –
ay = - – )

az = –
these three equations with the three unit-vector length constraint
equations can be solved to give the solution. We note that only one of
the two previous solutions (F1) satisfies these equations. This is because
the dot product equations are scalar, so they are the same whether the
unit vectors are right-handed or left-handed frames. However the cross
product equations indicate the correct directions. So it is recommended
to use the cross product to have the right solution.

Homogeneous Transformation Matrices


A transformation is defined as making a movement in space. When
a frame (a vector, an object or a moving frame) moves in space relative
to the fixed frame, we can represent this motion in a form similar to a
frame representation. This is because a transformation is a change in the
state of a frame, representing the change in its location and orientation.
A transformation may be one of the following forms:
• A pure translation (linear).
• A pure rotation about an axis.
• A combination of translations and/or rotations.
For simplicity, we will study each one of these transformations
separately.

30
Chapter 2 Kinematicss of Robots
Representation of a Pure Translation
If a frame (or an object) moves in space without changing its
orientation, the transformation is a pure translation. In this case the
directional unit vectors remain in the same direction, and therefore do
not change. The only thing that changes is the location of the origin of
the frame relative to the fixed reference frame, as shown in figure 2.9.

Figure 2.9 Representation of a Pure Translation in space.


The new location of the origin can be found by adding the vector
representing the translation to the vector representing the original
location of the origin of the frame. In matrix form, the new frame
representation can be found by pre-multiplying the frame with a matrix
representing the transformation. Since the directional vectors do not
change in pure translation, the transformation T will simply be:

T = Trans (dx , dy , dz) =

Where dx, dy and dz are the three components of a pure translation


vector d relative to the x-, y- and z-axes of the reference frame. The

31
Chapter 2 Kinematicss of Robots
first three columns represent no-change in direction, while the last
column represents the translation. So for a frame:

F=

The new location of the frame will be:

Fnew = =

This equation is written symbolically as:


Fnew = Trans (dx , dy , dz) × Fold
Or simply Fnew = T × Fold
So pre-multiplying the frame matrix by the transformation matrix
will yield the matrix of the new frame. Note that the directional vectors
remain the same after a pure translation, the new location of the frame
is at d + P, also note how homogeneous matrices facilitate the
multiplication of matrices.

Example 2.5: A frame F moved 4 units along the y-axis, and 7 units
along the z-axis, find its new.

F=

Solution

T = Trans (0 , 4 , 7) =

32
Chapter 2 Kinematicss of Robots
Fnew = T × Fold

Fnew =

Representation of a Pure Rotation about an axis


If a frame (or an object) rotates in space about an axis, the
transformation is a pure rotation. Let us drive a transformation matrix
that represents a pure rotation. To simplify the derivation assume that
the moving frame is at the origin of the reference frame and is parallel
to it. Then we can generalize the derived relation to other rotations.
Assume a frame Fnoa is located at the origin of the reference frame
Fxyz, and a point P is attached to the moving frame. The coordinates of
P are px , py and pz relative to the reference frame and pn , po and pa
relative to the moving frame . Now the moving frame rotates an angle θ
about the x-axis of the reference frame, so the point P will rotate also
with its frame, as shown in figure 2.10.

Figure 2.10 Coordinates of a point in a rotating frame before and after rotation.

33
Chapter 2 Kinematicss of Robots
Now let's drive a relation between the new location of the point and
its old location. To simplify, consider the 2-D coordinates shown in
figure 2.11, where the x-axis is assumed to be out of the paper.

Figure 2.11 Coordinates of a point relative to the rotating frame and reference
frame after a rotation about x-axis.
The coordinates of P relative to the moving frame (pn , po and pa) do
not change with the rotation, as the point is attached to the moving
frame. While its coordinates relative to the reference frame (px , py and
pz) will change according to the rotation. As the rotation is about the x-
axis, the value of px will not change, but the values of py and pz do
change. Form figure 2.11 we can deduce that:
p x = pn
py = L1 – L2 = po cos θ - pa sin θ
pz = L3 + L4 = po sin θ + pa cos θ
this could be put in matrix form as follows:

34
Chapter 2 Kinematicss of Robots

This means that the coordinates of the point P in the rotated frame is
pre-multiplied by a rotation matrix, to get the coordinates in the
reference frame. The above matrix represents a pure rotation about the
x-axis. This can be denoted as:
pxyz = Rot (x,θ) × pnoa

where Rot (x,θ) =

for simplicity we use Cθ to denote cos θ, and Sθ to denote sin θ.


Note that the first column of the rotation matrix about x-axis is 1,0,0
which indicates that the coordinate along the x-axis has not changed.
Now, in a similar way we can drive a transformation matrix for the
rotation about y- and z-axes of the reference frame. This will be:

Rot (y,θ) Rot (z,θ)

We can use a conventional form that assists in easily following the


relationship between different frames. Using the following symbols:
U
TR : to represent the transformation of frame R relative to frame U
R
p : to represent the point p relative to frame R, (Pnoa)
U
p : to represent the point p relative to frame U, (Pxyz)
So we can write the equation:
U
p = UTR× Rp
As we see, cancelling Rs in the right hand side gives the coordinates
of point p relative to U, which is the left hand side.

35
Chapter 2 Kinematicss of Robots
Example 2.6: A point p (2,3,4)T is attached to a moving frame, the
frame is rotating 90º about the x-axis of the reference frame,
find its new location relative to the reference frame.

Solution

T = Rot (x,θ) = =

pnew = Rot (x,90º) × pold

pnew = × =

this could be explained graphically, using the following figure.

Figure 2.12 Rotation of a frame about the x-axis of the reference frame

Representation of Combined Transformations


Combined transformations are consists of a number of successive
translations and rotations about the reference frame axes or the moving
frame axes. Any transformation can be resolved into a set of
translations and rotations in a particular order. We will see that the

36
Chapter 2 Kinematicss of Robots
order is very important, such that if the order of two successive
transformations changes, the result may be completely different.

To see how to handle combined transformations, let's assume a


frame Fnoa is subjected to the following successive transformations
relative to the reference frame:

1- Rotation of α degrees about the x-axis,


2- Followed by a translation of (d1,d2,d3) relative to x-, y- and z- axes,
3- Followed by a rotation of β degrees about the y-axis.
Also let's assume a point pnoa is attached to the rotating frame. As the
frame Fnoa rotates or translates relative to the reference frame, point p
moves as well. The coordinates of the point relative to the reference
frame change. The first transformation is represented by:
T1 = Rot (x,α)
the current coordinates of p can be calculated by:
p1 xyz = T1 × pnoa
the second transformation is represented
by:
T2 = Trans (d1,d2,d3)
the new coordinates of the point p will be:
p2 xyz = T2 × p1 xyz = T2 × T1 × pnoa
the third transformation is represented by:
T3 = Rot (y,β)
the final coordinates of the point p will be:
p xyz = p3 xyz = T3 × p2 xyz = T3 ×T2 × T1 × pnoa

37
Chapter 2 Kinematicss of Robots
Note that the coordinates of the point relative to the reference frame
at the end of each transformation is found by pre-multiplying the
coordinates of the point by the transformation matrix. The order of
matrices cannot be changed, therefore the order is very important.

Example 2.7: A point p (7,3,1)T is attached to a frame Fnoa, it’s


subjected to the following transformations, find its position
relative to the reference frame.

1- Rotates 90º degrees about the z-axis


2- then Rotates 90º degrees about the y-axis
3- then Translates ) along x-, y- and z-axes.
Solution

T1 = Rot (z,90º) = =

T2 = Rot (y,90º) = =

T3 = Trans (4,-3,7) =

pnew = T3 ×T2 × T1 × pold = T3 × T2 × T1 × =

Note: Use Matlab to verify the result.

38
Chapter 2 Kinematicss of Robots
To check the importance of order, let's repeat the last example if two
transformations are changed.

Example 2.8: Assume the same point p (7,3,1)T as the previous example
attached Fnoa, is subjected to the same transformations, but in
different order as shown. Find its position relative to the
reference frame.

1- Rotates 90º degrees about the z-axis


2- then Translates ) along x-, y- and z-axes,
3- then Rotates 90º degrees about the y-axis.
Solution

T1 = Rot (z,90º) = =

T2 = Trans (4,-3,7) =

T3 = Rot (y,90º) = =

pnew = T3 ×T2 × T1 × pold = T3 × T2 × T1 × =

Note: the result is different from the previous one. This confirms the
importance of order. Use Matlab to verify the result.

39
Chapter 2 Kinematicss of Robots
Transformations Relative to the Rotating Frame
All transformations we have discussed so far have been relative to
the fixed frame. This means that all translations, rotations and distances
(except for the location of a point relative to the moving frame) have
been measured to the reference frame axes. However it is possible to
make transformations relative to the axes of the moving frame. This
means, for example, a rotation about n-axis of the moving frame, and
not the x-axis of the reference frame. To calculate the changes in the
coordinates of a point attached to the moving frame relative to the
reference frame, the transformation matrix is post-multiplied. Note that
since the position of a point or an object attached to a moving frame is
always measured relative to that moving frame, the position matrix
describing the point or object is also always post-multiplied.

Example 2.9: Assume the same point p (7,3,1)T as the previous example
attached Fnoa, is subjected to the same transformations, but all
relative to current moving frame. Find its position relative to
the reference frame.

1-Rotates 90º degrees about the a-axis


2- then Translates ) along n-, o- and a-axes,
3- then Rotates 90º degrees about the o-axis.
Solution

T1 = Rot (a,90º) = =

40
Chapter 2 Kinematicss of Robots

T2 = Transnoa (4,-3,7) =

T3 = Rot (o,90º) = =

pnew = T1 ×T2 × T3 × pold = T1 × T2 × T3 × =

Note: the result is completely different from the previous one.


Because the transformations are relative to the moving frame. Also note
that the transformation matrices are post-multiplied. Use Matlab to
verify the result.
Let's consider the case of mixed transformations, some are relative
to the fixed frame while others are relative to the moving frame. As
explained before, transformation matrices representing transformations
relative to the fixed frame are pre-multiplied, while those which
represent transformations relative to the moving frame are post-
multiplied. Let's show this with an example.

Example 2.10: A frame B was rotated 90º about the x-axis, then it was
translated 3 units along the a-axis, then it was rotated 90º
about the z-axis, and finally it was translated 5 units along the
o-axis.

1- Write an equation that describes the motion.

41
Chapter 2 Kinematicss of Robots
2- Find the final location of a point p (1,5,4)T attached to the
frame relative to the reference frame.
Solution

T1 = Rot (x,90º) = =

T2 = Transnoa (0,0,3) =

T3 = Rot (z,90º) = =

T4 = Transnoa (0,5,0) =

-The equation that describes the motion is:


U
TB = T3 × T1 × T2 × T4

-The final location of a point p is:

U
p = UTB × Bp = T3 × T1 × T2 × T4× =

Example 2.11: A frame B is rotated 90º about the z-axis, then


translated 3 and 5 units relative to the n- and o-axes
respectively, then rotated another 90º about the n-axis, and
finally, rotated 90º about the y-axis. Find the new location and
orientation of the frame.

42
Chapter 2 Kinematicss of Robots

Given B =

Solution

T1 = Rot (z,90º) = =

T2 = Transnoa (3,5,0) =

T3 = Rot (n,90º) = =

T4 = Rot (y,90º) = =

-note: the frame B is defined relative to the fixed frame.

-The final location of the frame B is:

Bnew = T4 × T1 × B × T2 × T3 =

Inverse of Transformation Matrices


There are many situations where the inverse of a matrix is needed in
robotic analysis. To illustrate this, consider the following example.
Suppose the robot in figure 2.13 is to be moved toward part p in order

43
Chapter 2 Kinematicss of Robots
to drill a hole in it. The robot's base position relative to the reference
frame U is described by the frame R, the robot's hand is described by
the frame H, and the end effector (drill bit) is described by the frame E.

Figure 2.13 Universe, Robot, Hand, End effector and part frames.

The part's position is also described by frame P. the location of the


point where the hole will be drilled can be related to the reference frame
U through two different paths: one through the part, and the other
trough the robot. For the end effector to reach the point, the following
equation is written:
U
TE = UTR RTH HTE = UTP PTE
The transformation of frame R relative to Universe frame ( UTR) is
known since the location of the robot's base must be known. Even for a
mobile robot, its location at any instant is known by the controller. The
transformation of the end effector relative to the hand ( HTE) is also
known, since the tool used at the end effector in known and its
dimensions and orientation are known. The transformation of the part
relative to the Universe (UTP) is also known, since we must know where
the part is located to deal with it. PTE is also known since we must know
where the hole is to be drilled on the part. Consequently, the only
unknown transformation is RTH, which describes the transformation of

44
Chapter 2 Kinematicss of Robots
robot's hand relative to the robot's base. This means we need to find out
what the robot's joint variables (the length for prismatic joints and the
angle for revolute joints) must be to place the end effector at the hole
for drilling. So it is necessary to calculate this transformation. To
calculate this matrix we need to use the inverse matrices as follows:
(UTR)-1(UTR RTH HTE) (HTE)-1 =(UTR)-1 (UTP PTE) (HTE)-1
R
TH =UTR-1 UTP PTE HTE-1
We can check the accuracy of this equation by realizing that (HTE)-1
is the same as ETH. then the last equation can be rewritten as:
R
TH =UTR-1 UTP PTE HTE-1 = RTU UTP PTE ETH = RTH
It is clear that we need to be able to calculate the inverse of
transformation matrices for kinematic analysis. Now let's try to find the
inverse of a simple rotation matrix about the x-axis (refer to
mathematical course for preparatory year).

Rot (x,θ) =

To get the inverse matrix we take the following steps:


 Calculate the determinant of the matrix.
 Calculate the Cofactor matrix, by replacing each element by its
own minor.
 Transpose the cofactor matrix to get the Adjoint matrix.
 Divide the Adjoint matrix by the determinant.
Applying these steps we get:

Rot (x,θ)-1 =

45
Chapter 2 Kinematicss of Robots
We notice that, the inverse of the rotation matrix is equal to its
transpose, i.e. Rot (x,θ)-1 = Rot (x,θ)T
A matrix like this is called unitary matrix. This means, when we
need to calculate the inverse of a rotation matrix, we simply transpose
it. If fact we can proof that the rotation matrix about y- and z-axes are
unitary matrices. The preceding result is true for the 3×3 rotation
matrix. While for the homogeneous 4×4 transformation matrix, it can be
shown that the inverse matrix can be written by dividing the matrix into
two portions; the rotation portion can be simply transposed, while the
position portion is the negative dot product of the p-vector with each of
the n-, o- and a-axes as follows:

T= then T-1 =

This makes it easy to calculate the inverse for the homogeneous


transformation matrices.
Example 2.12: Calculate the inverse of the following transformation
matrix

T=

Solution

T-1 =

46
Chapter 2 Kinematicss of Robots

T-1 =

Example 2.13: A camera is attached to the 5th link of a robot, it


observes an object and determines its frame w.r.t the camera's
frame. Given the following information, find the necessary
motion for the end effector to get to the object.

5 5
Tcam = TH =

cam H
Tobj = TE =

Solution
We can write the equation that relates the different transformations
and frames together as follows:
R
T5 5TH HTE ETobj = RT5 5Tcam camTobj
The transformation RT5 appears to the left in both sides, so we can
cancel it. All other matrices, except for ETobj are known. Then using the
inverse matrices we get:
E
Tobj = HTE-1 5TH-1 5Tcam camTobj

H
TE-1 = 5
TH-1 =

47
Chapter 2 Kinematicss of Robots

E
Tobj =

Forward and Inverse Kinematics of Robots


If the configuration of the robot is known. i.e. all the link lengths
and joint angles of the robot are known, we can calculate the position
and orientation of the hand of the robot. This analysis is called
Forward Kinematic Analysis. This means, if all robot variables are
known, using forward kinematic equations, we can calculate where the
hand is at any instant. On the other hand, if we want to place the hand of
the robot at a desired location and orientation, we need to know how
much each link length or joint angle of the robot must be to satisfy the
desired position and orientation. This is called Inverse Kinematic
analysis. This means, instead of substituting the known robot variables
in forward kinematic equations, we need to find the inverse of these
equations to enable us to find the necessary joint values to place the
hand at the desired location and orientation. In fact. The inverse
kinematic equations are more important since the robot controller will
calculate the joint variables using these equations and it will run the
robot to the desired position and orientation.

48
Chapter 2 Kinematicss of Robots

Figure 2.14 The Hand frame relative to the Reference frame.


We will first drive the forward kinematic equations of common
configurations of robots then using these equations we will calculate the
inverse kinematic equations. To define the position and orientation of
the hand of the robot, we attach a frame to the hand and define the
position and orientation of the hand frame relative to the reference
frame, as shown in figure 2.14. To simplify the derivation of kinematic
equations, we will develop the position equations first, then we will
derive the orientation equations. Finally, we will combine the two for a
complete set of equations.

Forward and Inverse Kinematic Equations: Position


We will study the forward and inverse kinematic equations for
position. as we know, the position of a frame attached to a rigid body
has three degrees of freedom, therefore, it can be completely defined by
three pieces of information. So the position may be defined in anyone of
the known coordinate systems. For example, it may be defined in
Cartesian coordinates, i.e. there will be three linear movements relative
to x-, y- and z-axes. Or it may be defined using Spherical coordinates,

49
Chapter 2 Kinematicss of Robots
there will be one linear motion and two rotary motions. We
will discuss the following common configurations:
 Cartesian (Gantry, Rectangular) Coordinates.
 Cylindrical Coordinates.
 Spherical Coordinates.

Cartesian Coordinates
In Cartesian robots, there are three linear movements along the x-, y-
and z-axes. This means that, all actuators are linear (such as a hydraulic
ram or a linear power screw), and the positioning of the hand is
achieved by moving the three linear joints along the three axes, as
shown in figure 2.15.

Figure 2.15 Cartesian Coordinates

Since there are no rotations, the transformation matrix representing


this motion to point p is a simple translation matrix. So the
transformation matrix for the position in the Cartesian coordinate
system will be:

50
Chapter 2 Kinematicss of Robots

R
Tp = Tcart (px , py , pz) =

Where RTp is the transformation between the reference frame and the
origin of the hand frame p, and Tcart (px , py , pz) is the Cartesian
transformation matrix. For inverse kinematic equation, we simply set
the desired position equal to p.

Example 2.14: It is desired to put the origin of the hand frame of a


Cartesian robot at point p= (3,4,7)T, Calculate the necessary
motions that need to be made.
Solution
Setting the forward kinematic equation equal to the desired position
will yield the following result:

R
Tp = Tcart (px , py , pz) = =

Hence: px = 3 , py =4 and pz =7

Cylindrical Coordinates
The Cylindrical coordinate system includes two linear translations
and one rotation. The sequence is a translation of ( r ) along the x-axis, a
rotation of ( α ) about the z-axis and a translation of ( ℓ ) along the z-
axis, as shown in figure 2.16-(a). Since these transformations are
relative to the reference frame, the total transformation caused by these

51
Chapter 2 Kinematicss of Robots
three transformations is found by pre-multiplying by each matrix as
follows:
R
Tp = Tcyl (r , α , ℓ ) = T3 × T2 × T1

= Trans(0,0, ℓ) × Rot (z,α) × Trans (r,0,0)

Tcyl (r , α , ℓ )

(a) Cylindrical movements (b) Restore orientation


Figure 2.16 Cylindrical coordinates

The first three columns represent the orientation of the frame after
the three transformations. But we are only interested in the position of
the origin of the frame, or the last column. It is clear that, in Cylindrical
coordinate, due to the rotation about the z-axis, the orientation of the

52
Chapter 2 Kinematicss of Robots
moving frame will change. we can restore the original orientation of the
frame by rotating the n,o,a frame about the a-axis an angle of (-α), as
shown in figure 2.16-(b). This is equivalent to post-multiplying the
cylindrical coordinate matrix by a rotation matrix of Rot (a,-α). As a
result, the frame will be at the same location but parallel to the
reference frame again:

Tcyl (r , α , ℓ ) × Rot (a,-α)

Example 2.15: It is desired to put the origin of the hand frame of a


Cylindrical robot at point p= (3,4,7)T, Calculate the joint
variables of the robot.
Solution
Comparing the components of the location of the origin of the frame
from the Tcyl matrix with the desired position, we get:
rCα =3 , rSα =4 and ℓ = 7
note that, rCα and rSα are both positive, and the length r is
always positive, therefore Cα and Sα are also positive. This
means that the angle α is in the first quadrant.
tan α = 4/3 , then α = 53.1º , r = 5 and ℓ =7
i.e. the joint variables are: (r ,α , ℓ)= (5, 53.1º , 7).

Spherical Coordinates
A Spherical coordinate system consists of one linear motion and two
rotations. The sequence of movements is a translation of (r) along z-

53
Chapter 2 Kinematicss of Robots
axis, a rotation of (β) about y-axis, then a rotation of (γ) about z-axis, as
shown in figure 2.17-(a). Since these transformations are relative to the
reference frame, the total transformation caused by these three
transformations is found by pre-multipling by each matrix as follows:
R
Tp = TSph (r , β , γ) = T3 × T2 × T1

= Rot(z, γ) × Rot (y, β) × Trans (0,0, r)

TSph (r , β , γ)

(a) Spherical movements (b) Restore orientation


Figure 2.17 Spherical coordinates

The first three columns represent the orientation of the frame after
the three transformations, while the last column represents the position
of the origin of the frame. It is clear that, in Spherical coordinate, due to

54
Chapter 2 Kinematicss of Robots
the rotations about y- and z-axes, the orientation of the moving frame
will change. To restore the original orientation of the frame we need to
make a rotation of (-γ) about a-axis then a rotation of (-β) about o-axis
i.e. Rot (o,- β)×Rot (a,- γ) are post multiplied to Tsph matrix, as shown in
figure 2.17-(b). As a result, the frame will be at the same location but
parallel to the reference frame again:

TSph (r , β , γ) × Rot (o,- β) × Rot (a,- γ)

The inverse kinematic equations for Spherical coordinates are more


complicated than Cartesian or Cylindrical coordinates because the two
angles β and γ are coupled.

Example 2.16: It is desired to put the origin of the hand frame of a


Spherical robot at point p= (3,4,7)T, Calculate the joint
variables of the robot.
Solution
Comparing the components of the location of the origin of the frame
from the TSph matrix with the desired position, we get:
rSβCγ =3 , rSβSγ =4 and rCβ = 7
from the third equation Cβ is positive, but there is no information
about the sign of Sβ, therefore β may be in the first or the fourth
quadrant. tan γ = 4 / 3 γ=53.1º or γ= 233.1º
Then Sγ = 0.8 , Cγ= 0.6 or Sγ = -0.8 , Cγ= -0.6
From 1st equ. rSβ =3 /0.6= 5 or rSβ = -5

55
Chapter 2 Kinematicss of Robots
But rCβ = 7 , then β= 35.5º or β= -35.5º
And r = 8.6
The two answers satisfy the position, however only one of them
satisfies the orientation.

Forward and Inverse Kinematic Equations:


Orientation

Suppose the moving frame attached to the hand of the


robot has already moved to a desired position -in Cartesian,
Cylindrical or Spherical coordinates. The next step will be to
rotate the frame in order to achieve the desired orientation without
changing its position. This can only be achieved by rotating about
the local frame axes, since rotations about the reference frame
axes will change the position. The sequence of rotations depends
on the design of the wrist of the robot.
We will consider the following two common configurations:
 Roll, Pitch, Yaw (RPY) angles.
 Euler angles.

Roll, Pitch, Yaw (RPY) angles


To orientate the hand to the desired orientation, the sequence of
three rotations is about the current a-, o- and n-axes respectively, as
shown in figure 2.18. We assume that the current frame was parallel to
the reference frame before the application of RPY.

56
Chapter 2 Kinematicss of Robots

Figure 2.18 RPY rotations about the current axes (a,o and n).

Since the rotations are relative to the moving frame, the


transformation matrices will be post-multiplied.

Roll : T1 = Rot(a, φa)


Pitch: T2 = Rot (o, φo)
Yaw : T3 = Rot (n, φn)
RPY (φa ,φo ,φn) = T1 × T2 × T3
RPY (φa ,φo ,φn) = Rot (a, φa) × Rot (o, φo) × Rot (n, φn)

This matrix represents the orientation change caused by the RPY


alone. The location and final orientation of the frame will be the product
of the two matrices representing the position and orientation. For
example, suppose a robot is designed based on Spherical coordinates
and RPY, then the robot is represented by:
R
TH = TSph (r , β , γ) × RPY (φa ,φo ,φn)

57
Chapter 2 Kinematicss of Robots
The inverse kinematic solution for RPY is more complicated than
the spherical coordinates because there are three coupled angels, we
need information about the sines and cosines of all three angels
individually to solve for the angles. To simplify solution, we have to de-
couple these angels, by using the inverse matrix as follow:

Rot (a, φa)-1 RPY (φa ,φo ,φn) = Rot (o, φo) Rot (n, φn)

Euler angles
The sequence of movements is similar to RPY, except that the third
rotation is about the current a-axis, as shown in figure 2.19.

Figure 2.19 Euler rotations about the current axes (a,o and a).

Again, the rotations are relative to the moving frame, so the


transformation matrices will be post-multiplied.

T1 = Rot(a, φ) , T2 = Rot (o,θ) , T3 = Rot (a,ψ)


Euler (φ , θ, ψ) = T1 × T2 × T3
Euler (φ , θ, ψ) = Rot (a, φ) × Rot (o, θ) × Rot (n, ψ)

58
Chapter 2 Kinematicss of Robots
This matrix represents the orientation change caused by the Euler
angels alone. The location and final orientation of the frame will be the
product of the two matrices representing the position and orientation.
For example, suppose a robot is designed based on Cartesian
coordinates and Euler, then the robot is represented by:
R
TH = Tcart (px , py , pz) × Euler (φ , θ, ψ)

The inverse kinematic solution for Euler can be found in a manner


similar to RPY through de-coupling, by using the inverse matrix as
follow:

Rot (a, φ)-1 Euler (φ ,θ ,ψ)= Rot (o, θ) Rot (a, ψ)

Forward and Inverse Kinematic Equations: Position


and Orientation
The matrix representing the final location and orientation of the
robot is a combination of the matrices discussed in the previous section,
depending on which coordinates are used for position and which
method is used for orientation. If a robot is made of a Cartesian and
RPY set of joints, then the location and final orientation of the hand
frame relative to the reference frame will be the product of the two
matrices representing the Cartesian and RPY. So that robot could be
represented by:
R
TH = Tcart (px , py , pz) × RPY (φa ,φo ,φn)

So using the three common configurations for positioning and the


two common methods for orientation we may have six different

59
Chapter 2 Kinematicss of Robots
configurations. In fact, there are many different combinations. For
complicated designs, it is better to use Denavit-Hartenberg (D-H)
representation. We will discuss this method in details in the next
section.

Denavit-Hartenberg Representation of Forward


Kinematic Equations of Robots
In 1955, Denavit and Hartenberg published a paper in ASME
Journal of Applied Mechanics that was later used to represent and
model Robots and to derive the equations of motion. This method has
become the standard way of representing robots and modeling their
motions. The D-H model of representation is a very simple way of
modeling robot links and joints for any robot configuration, regardless
of the sequence or complexity of the configuration. It can also be used
to represent transformations in any coordinates we have already
discussed, such as Cartesian, Cylindrical, Spherical, Euler and RPY. It
can also be used for representation of Articulated and SCARA robots,
or any possible combinations of joints and links. Although the direct
modeling of robots with the method discussed in the previous section is
faster and more straightforward, the D-H representation has an added
benefit; as we will see later, analysis of differential motions and
Jacobians, dynamic analysis, force analysis and others based on the
results obtained from D-H representation.
Robots may be made of a succession of joints and links in any order.
The joints may be prismatic (linear) or revolute (rotational), move in
different planes, and have offsets. The links may also ne of any length,

60
Chapter 2 Kinematicss of Robots
including zero; may be twisted and bent; and may be in any plane.
Therefore, any general set of joints and links may create a robot. We
need to be able to model and analyze any robot, whether or not it
follows any of the preceding common configurations.
To do this we assign a reference frame to each joint, and later define
a general procedure to transform from one joint to the next (one frame
to the next). If we combine all the transformations from the base to the
first joint, from the first joint to the second joint, and so on, until we get
to the last joint, we will have the robot's total transformation matrix.
Let's begin to define the general procedure for D-H representation,
how to assign a reference frame for each joint, how to calculate
transformations between any two successive joints, and finally how to
write the total transformation matrix for the robot.
Imagine that a robot made of a number of links and joints in any
form.
Figure 2.20 shows three successive joints and two links.

61
Chapter 2 Kinematicss of Robots

Figure 2.20 D-H representation of a general purpose joint-link combination.


Although these joints and links are not necessarily similar to any
real robot joint or link, they are very general and can easily represent
any joints in real robots. These joints may be prismatic or revolute, or
both. Although in real robots it is customary to only have 1-DOF joints,
the joints shown in figure 2.20 represent 1- or 2-DOF joints. The joints
shown may rotate and/or translate. We begin to assign joint number to
each joint, let it be n for the first joint, n+1 to the second joint, and n+2
to the third joint. Each link is also assigned a link number. Link n will
be between joints n and n+1, and link n+1 is between joints n+1 and
n+2.

62
Chapter 2 Kinematicss of Robots
To model the robot with the D-H representation, we need to assign a
local frame for each joint. Therefore, for each joint we will assign a z-
axis and an x-axis. There is no need to assign the y-axis, because we
know that y-axis is mutually perpendicular to both x- and z-axes. So the
D-H representation does not use the y-axis at all. We follow the
following procedure for assigning a local frame to each joint:
 All joint are represented by the z-axis. If the joint is prismatic, its
z-axis is along the direction of linear movement. While for the
revolute joint, its z-axis is in the direction of its axis of rotation
according to the right-hand rule of rotation. The index number for
the z-axis of joint n is n-1. Applying these simple rules will allow
us to assign a-axes to all joints. For prismatic joints, the length of
link along the z-axis represented by (d) will be the joint variable.
While for revolute joints, the rotation angel (θ) about the z-axis
will be the joint variable.
 In general, joints may not be parallel or intersecting, so the
assigned z-axes may be skew lines. There is always one line
mutually perpendicular to any two skew lines, called common
normal, which is the shortest distance between them. We always
assign the x-axis of the local reference frame in the direction of
the common normal. Therefore, if an represents the common
normal between zn-1 and zn, the direction of xn will be along an.
similarly, if the common normal between zn and zn+1 is an+1, the
direction of xn+1 will be along an+1. In general, the common
normal lines between successive joints are not necessarily

63
Chapter 2 Kinematicss of Robots
intersecting or collinear. As a result, the origins of two successive
frames may also not be at the same location. Based on the above
procedure, we can assign coordinate frames to all joints, with the
following two exceptions:
 If two successive z-axes are parallel, this are an infinite
number of common normal between them. We will use the
common normal that is collinear with the previous common
normal. This simplifies the model.
 If two successive z-axes are intersecting, there is no common
normal between them. We will use a line perpendicular to the
plane formed by the two z-axes, i.e. in the direction of the
cross-product of the two z-axes. This simplifies the model.
In figure 2.20, there are four parameters:
θ : represents a rotation about the z-axis,
d : represents the distance on the z-axis between two successive
common normal (or joint offset),
a : represents the length of each common normal (or the length of
a link),
α : represents the angle between two successive z-axes (or joint
twist angel).
In fact, only θ and d are joint variables, while a and α are constants
depends on the mechanical construction of robot. The next step is to
follow the necessary motions to transform from one frame to the next,
as shown in figure 2.21.

64
Chapter 2 Kinematicss of Robots

Figure 2.21 Transformations between joints in D-H representation.


Assume we are at the local frame xn-zn, we will do the following
four standard transformations to get to the next local frame xn+1-zn+1:
1- Rotate about zn-axis an angel θn+1, figure 2.21(1). This will make
xn parallel to xn+1. Because an and an+1 are both perpendicular to zn.
2- Translate along the zn-axis a distance of dn+1, to make xn and xn+1
collinear. Because xn and xn+1 were already parallel and normal to
zn, moving along zn will lay them over each other, figure 2.21(2).
3- Translate along the new xn-axis a distance of an+1 to bring the
origins of the two frames together, figure 2.21(3-1 and 3-2).
4- Rotate zn-axis about xn+1-axis an angle αn+1 to align zn-axis with
zn+1-axis, figure 2.21(4-1 and 4-2). At this point, the two frames n
and n+1 will be exactly the same, i.e. we transformed frame n to
frame n+1.

65
Chapter 2 Kinematicss of Robots
Repeating the same sequence of four movements between the n+1
and n+2 frames will transform one frame to the next. By repeating this
as necessary, we can transform from the first joint to the second joint
and so on to the end effector. Note that this sequence of movements
remains the same between any two successive frames.
n
The transformation Tn+1 (called An+1) between two successive
frames representing the four movements is the product of the four
transformation matrices. Since all transformations are relative to the
current frame, all matrices are post-multiplied. This can be expressed as
follows:
n
Tn+1 = An+1= Rot (z,θn+1) Trans(0,0,dn+1)Trans(an+1,0,0)Rot(x,αn+1)

Example for the transformation between joints 2 and 3 of a robot


will be as follows:

2
T3 = A3 =

Joints θ d a α
0-1
1-2
2-3
….
Table 2.1 D-H parameters table.

66
Chapter 2 Kinematicss of Robots
Now we can find the total transformation between the base of the
robot and the hand as follows:
R
TH =RT1 1T2 2T3 . . . . n-1Tn = A1 A2 A3 . . . . An
Where n is the joint number. For a 6-DOF robot, there will be six A
matrices. To facilitate the calculation of the A matrices, we form a
table, like table 2.1, that contains joint and link parameters, where the
values representing each link and joint are determined from the
schematic drawing of the robot.
Let's see some examples to explain how to use D-H representation to
get a model for a robot. We will start with a simple 2-axis robot and
moving up to a robot with 6 axes.
Example 2.17: For the simple 2-axes, planar robot of figure 2.22,
assign the necessary coordinate systems based on D-H
representation, fill out the parameters table, and drive the
forward kinematic equations for the robot.

Figure 2.22 A simple 2-axis, articulated robot arm.

67
Chapter 2 Kinematicss of Robots
Solution
Note that both joints rotate in the x-y plane. We start by give
numbers to the joints, so we have joints 1 , 2 and the hand. Then we
assign the z-axes for the joints. z0 will be assigned to joint 1, as the
joint is rotary z0 will be in the direction of the joint's axis of rotation,
pointing out of the paper. In a similar way we assign z1 to joint 2,
it is pointing out of the paper as well. As zH is arbitrary, we choose it
parallel to z1 for simplicity. Notice that the 0-frame is fixed and the
robot moves relative to it.
Now we begin to assign the x-axes for each frame. Since frame 0
has no frames preceding it, the direction of x 0 is arbitrary, so for
convenience (only), we may choose it in the same direction of the
Universe x-axis. In fact there is no problem if we use any other
direction perpendicular to z0, but we use this for simplicity.
Since z0 and z1 are parallel, the common normal between them is
in the direction between them, therefore x1-axis is as shown. Since z1
and zH are parallel, the common normal between them is in the
direction between them, therefore xH-axis is as shown.
Table 2.2 shows the parameters table for the robot. To fill the
values in that table, follow the four necessary transformations
required to go from one frame to the next, according to the D-H
convention.
1-Rotate about z0-axis an angle θ1 to make x0 parallel to x1.
2-Since x0 and x1 are in the same plane, translation d along z0-
axis is zero.

68
Chapter 2 Kinematicss of Robots
3-Translate along the (already rotated) x0-axis a distance of a1.
4-Since z0- and z1-axes are parallel, the necessary rotation α
about x1-axis is zero.
The same four steps are repeated for transformation between
frames 1 and H. Note that since there are two revolute joints, the
two unknowns are joint angles θ1 and θ2.
Joints θ d a α
0-1 θ1 0 a1 0
1-H θ2 0 a2 0
Table 2.2 D-H parameters table for example 2.17.
The forward kinematic equation of this robot can be calculated
by substituting the parameters from the table into the A matrices:

A1 = and A2 =

0
TH = A1 × A2

Using the trigonometric functions C1C2-S1S2=C(θ1+θ2)=C12 and


S1C2+C1S2=S(θ1+θ2)=S12 we can simplify the transformation
matrix.

0
TH =

This forward kinematic equation allows us to find the location


and orientation of the robot's end if the values for θ1, θ2, a1 and a2
69
Chapter 2 Kinematicss of Robots
are known. Try to find the location and orientation of the end
effector if (θ1, θ2, a1, a2) have the following values : (0, 0, a1, a2)
(0, 90, a1, a2) (90, 0, a1, a2) (90, 90, a1, a2) (180, 0, a1, a2)

Example 2.18: For 3-DOF robot arm in figure 2.23, Assign the
necessary coordinate systems based on D-H representation,
fill out the parameters table, and drive the forward kinematic
equations for that robot.

Figure 2.23 A 3-DOF robot arm.


Solution
This robot is similar to the robot in the previous example except
that another joint is added to it. The same assignment for frames 0
and 1 are applicable to this robot, but we need to add another frame
for the new joint. Therefore, we add a z2-axis perpendicular to the
joint, as shown. Since z1 and z2 axes intersect at joint 2, x2-axis will

70
Chapter 2 Kinematicss of Robots
be perpendicular to both at the same point, as shown. Table 2.3
shows the parameters table for the robot.
Joints θ d a α
0-1 θ1 0 a1 0
1-2 90+ θ2 0 0 90
2-H θ3 d3 0 0
Table 2.3 D-H parameters table for example 2.18.

As explained before, to fill the values in that table, follow the


four necessary transformations required to go from one frame to the
next, according to the D-H convention.
Note the following:
 The direction of the hand is changed to represent the motions of
the gripper.
 The physical length of link 2 in now a "d" not an "a".
 Joint 3 is a revolute joint, so d3 is fixed. However, if that joint is a
prismatic joint, d3 will be a variable but θ3 would be fixed. Also
this joint could be both revolute and prismatic, in this case both d3
and θ3 would be variables.
 Remember, the rotations are measured with the right-hand rule.
 The rotation about z1 is shown to be 90º+ θ2 and not θ2. This is
because even when θ2 is zero, there is a 90º angle between x1 and
x2 (see figure 2.24 for the reset position). This is an important
factor in real life, when the reset position of the robot must be
defined.

71
Chapter 2 Kinematicss of Robots

Figure 2.24 A 3-DOF robot arm in the rest position.


The A matrices representing the transformations of joints are:

A1 = A2 =

A3 =

0
TH = A1 × A2 × A3

Using the trigonometric functions C1C2-S1S2=C(θ1+θ2)=C12 and


S1C2+C1S2=S(θ1+θ2)=S12 we can simplify the transformation
matrix.
0
TH =

A special location and orientation of the hand if (θ1, θ2, θ3) equals
0
(0, 0, 0), we get TH =

0
if (θ1, θ2, θ3) equals (90, 0, 0), we get TH =

Try these values (180, 0, 0).


72
Chapter 2 Kinematicss of Robots
Example 2.19: For the 6-DOF Articulate Robot in figure 2.25, Assign
the necessary coordinate systems based on D-H
representation, fill out the parameters table, and drive the
forward kinematic equations for that robot.

Figure 2.25 A 6-DOF Articulate Robot.


Solution
Whatever the number of joints, all principles applied are the
same. This robot is still simple as there is no joint offsets or twist
angles. For simplicity we assume the joints 2, 3 and 4 are in the
same plane, this will render their dn values to zero; otherwise, the
presence of offsets will make the equations slightly more envolved.
In general, offsets will change the position terms, but no orientation
terms.
As shown in figure 2.26, Starting from joint 1, we choose x0 to
be parallel to xU for simplicity. Since z0 and z1 are intersecting, x1
will be normal to their plane. Because z1 and z2 are parallel, x2 will
be normal to them along the link. The same for x3. As z3 and z4 are

73
Chapter 2 Kinematicss of Robots
skew and always perpendicular to each other, x4 will be normal to
them along the link. As z4 and z5 are intersecting, x5 will be normal
to their plane. Finally because z5 and z6 are collinear, x6 will be
normal to both of them. It is important to notice the location of the
origins of the frames. For example, the origin of the first joint is not
at the physical location of the joint. Now we can start to fill the
parameters of Table 2.4 for the robot.

Figure 2.26 Reference frames for A 6-DOF Articulate robot.


Joints θ d a α
0-1 θ1 0 0 90
1-2 θ2 0 a2 0
2-3 θ3 0 a3 0
3-4 θ4 0 a4 -90
4-5 θ5 0 0 90
5-6 θ6 0 0 0
Table 2.4 D-H parameters table for example 2.19.

74
Chapter 2 Kinematicss of Robots
It is clear that, as the all the joints are revolute, all the robot
variables are angles.
The A matrices representing the transformations of joints are:

A1 = A2 =

A3 = A4 =

A5 = A6 =

0
TH = A1 × A2 × A3× A4 × A5 × A6
Notes:
 In assigning the x- and z- axes, you may choose either direction
along the chosen line of action. This may change the individual
matrices, however the total transformation will be the same.
 You may not have any fewer or more unknown variables than the
number of joints.
 The D-H representation does not use a transformation along the y-
axis. Therefore, if you find that you need to move along the y-
axis to transform from one frame to another, you either have
made a mistake, or you need an additional frame in between.
 In reality, there may be a small angles between seemingly parallel
z-axes due to manufacturing errors or tolerance. To represent

75
Chapter 2 Kinematicss of Robots
these errors it will be necessary to make transformations along y-
axis. Therefore D-H method cannot represent these errors.
 Frame xn-zn represents link n before itself. It is attached to link n
and moves with it relative to frame n-1. Motions about joint n are
relative to frame n-1.
 Although you may use other representations to develop the
kinematic equations of a robot, D-H representation is useful in the
derivation of differential motions, dynamic analysis and so on.
 In all previous examples we drive the transformation between the
base of the robot and the end effector (0TH). It is also possible to
find the transformation between the Universe frame and the end
effector (UTH). It is a direct relation as UTH =UT0 0TH. since the
location of the base within the Universe is known, i.e. UT0 is
known.
 D-H representation is used for any configurations contrary to
Cartesian, Cylindrical, Spherical, RPY and Euler which are for
special configurations. Additionally you cannot use those
representations if ant twist angles or joint offsets are present. In
fact those special ways were presented for teaching purposes, and
you should use the D-H for analysis.

76
Chapter 2 Kinematicss of Robots

Problems 2
Pr.2.1 Write a unit vector in matrix form that describes the direction of
the cross product of p=5i+3k and q= 3i +4j +5k.
Pr.2.2 A vector p is 8 units long and is perpendicular to vectors q and r
described below. Express the vector in matrix form.

Pr.2.3 Will the three vectors p, q, and r in Problem 2.2 form a


traditional frame? If not, find the necessary unit vector s to form a
frame between p, q and s.
Pr.2.4 Suppose that instead of a frame, a point p = ( 3 , 5 , 7 ) T in space
was translated a distance of d= (2 , 3 , 4 ) T . Find the new location of
the point relative to the reference frame.
Pr.2.5 The following frame B was moved a distance of d= (5 , 2 , 6 ) T ,
Find the new location of the frame relative to the reference frame.

B=

Pr.2.6 Find the values of the missing elements of frame B and complete
the matrix representation of the frame.

B=

77
Chapter 2 Kinematicss of Robots
Pr.2.7 Find the coordinates of point p= (2,3,4)T relative to the reference
frame after a rotation of 45 about the x-axis.
Pr.2.8 Find the coordinates of point p= (3,5,7)T relative to the reference
frame after a rotation of 30 about the z-axis.
Pr.2.9 Find the new location of point p= (1,2,3)T relative to the
reference frame after a rotation of 30 about the z-axis followed by a
rotation of 60 about the y-axis.
Pr.2.10 A point P in space is defined as (5,3,4)T relative to frame
B which is attached to the origin of the reference frame A and is
parallel to it. Apply the following transformations to frame B and
find AP:
• Rotate 90 about x-axis, then
• Translate 3 units about y-axis, 6 units about z-axis, and 5 units
about x-axis. Then,
• Rotate 90 about z-axis.
Pr.2.11 A point P in space is defined as (2,3,5)T relative to frame
B which is attached to the origin of the reference frame A and is
parallel to it. Apply the following transformations to frame B and
find AP:
• Rotate 90 about x-axis, then
• Rotate 90 about local a-axis, then
• Translate 3 units about y-, 6 units about z-, and 5 units about x-
axes
Pr.2.12 A frame B is rotated 90 about the z-axis, then translated 3 and 5
units relative to the n-and o-axes respectively, then rotated another
90 about the n-axis, and finally, 90 about the y-axis. Find the new
location and orientation of the frame.

78
Chapter 2 Kinematicss of Robots

B=

Pr.2.13 The frame B of problem 2.12 is rotated 90 about the a-axis, 90


about the y-axis, then translated 2 and 4 units relative to the x- and
y-axes respectively, then rotated another 90 about the n-axis. Find
the new location and orientation of the frame.
Pr.2.14 Show that rotation matrices about the y- and the z-axes are
unitary.
Pr.2.15 Calculate the inverse of the following transformation matrices:

T1 = T2 =

Pr.2.16 A spherical coordinate system is used to position the hand of a


robot. In a certain situation, the hand orientation of the frame is
later restored in order to be parallel to the reference frame, and the
matrix representing it is described as:

TSph =

 Find the necessary values of r, β, γ to achieve this location.


 Find the components of the original matrix n, o, a vectors for
the hand before the orientation was restored.
Pr.2.17 Frames describing the base of a robot and an object are given
relative to the Universe frame. Find a transformation RTH of the

79
Chapter 2 Kinematicss of Robots
robot configuration if the hand of the robot is to be placed on the
object.

U U
Tobj = TR =

Pr.2.18 A 3-DOF robot arm has been designed for applying paint
on flat walls, as shown. Assign coordinate frames as necessary
based on the D-H representation, Fill out the parameters table, and
Find the UTH matrix.

Pr.2.19 For the following SCARA-type robot, Assign the coordinate


frames based on the D-H representation, Fill out the parameters
table, Write all the A matrices, Write the UTH matrix in terms of
the A matrices.

80
Chapter 2 Kinematicss of Robots

Pr.2.20 A special 3-DOF spraying robot has been designed as shown,


Assign the coordinate frames based on the D-H representation, Fill
out the parameters table, Write all the A matrices, Write the
U
TH matrix in terms of the A matrices.

81

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy