control of industrial robots review of robot kinematics robot kinematics.pdf · control of...

50
Control of industrial robots Review of robot kinematics Prof. Paolo Rocco ([email protected]) Politecnico di Milano, Dipartimento di Elettronica, Informazione e Bioingegneria

Upload: others

Post on 10-Oct-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots

Review of robot kinematics

Prof. Paolo Rocco ([email protected])Politecnico di Milano, Dipartimento di Elettronica, Informazione e Bioingegneria

Page 2: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

With these slides we will cover basic elements in robot kinematics.

We will start from a basic problem of representation of a rigid body in space, and then proceed through the formal tools used in robotics till the definition of the direct, inverse and differential kinematics of the manipulator.

All this material is well covered with better detail in any introductory Robotics course at BSc level. It is reviewed here for the sole purpose of making this course self-contained for students who lack this background.

Most of the pictures in these slides are taken from the textbook:B. Siciliano, L. Sciavicco, L. Villani, G. Oriolo: Robotics: Modelling, Planning and Control, 3rd Ed. Springer, 2009

Introduction

Page 3: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Position and orientation of a body in space

Let us consider a rigid body in space:

How can we characterize the position and orientation of the body in space?

Page 4: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Position and orientation of a body in space

The study of kinematics of mechanical bodies is facilitated if Cartesian frames are introduced.Each point in space has 3 coordinates (x, y, z) in the Cartesian frame.

Page 5: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Position and orientation of a body in space

The best thing to do is to consider a reference frame and to attach a second frame to the body.

The problem is now how to characterize the position and orientation of a frame with respect to another one.

yz

xO

x’

y’z’

O’

Page 6: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Position and orientation of a body in space

The representation of the position is just made with the components of the origin of the body-attached frame with respect to the reference frame:

The three components can be conveniently gathered in a vector:

𝐎𝐎𝐎 =𝑜𝑜′𝑥𝑥𝑜𝑜′𝑦𝑦𝑜𝑜′𝑧𝑧

yz

xO

x’

y’z’

O’

O’x

O’yO’z

Page 7: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Position and orientation of a body in space

The representation of the orientation can be made considering unit length vectors along the axes of the rotated frame and evaluating their components in the reference frame:

We obtain three vectors:

𝐱𝐱′ =𝑥𝑥′𝑥𝑥𝑥𝑥′𝑦𝑦𝑥𝑥′𝑧𝑧

, 𝐲𝐲′ =𝑦𝑦′𝑥𝑥𝑦𝑦′𝑦𝑦𝑦𝑦′𝑧𝑧

, 𝐳𝐳′ =𝑧𝑧′𝑥𝑥𝑧𝑧′𝑦𝑦𝑧𝑧′𝑧𝑧

yz

xO

x’

y’z’

O’

Page 8: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

We can gather the elements of x ', y ', z ' in a matrix:

This matrix is called rotation matrix of the frame (x ', y ', z ') with respect to the frame (x, y, z) .Since the following relations hold:

𝐑𝐑 = 𝐱𝐱′ 𝐲𝐲′ 𝐳𝐳′ =𝑥𝑥′𝑥𝑥 𝑦𝑦′𝑥𝑥 𝑧𝑧′𝑥𝑥𝑥𝑥′𝑦𝑦 𝑦𝑦′𝑦𝑦 𝑧𝑧′𝑦𝑦𝑥𝑥′𝑧𝑧 𝑦𝑦′𝑧𝑧 𝑧𝑧′𝑧𝑧

=𝐱𝐱′𝑇𝑇𝐱𝐱 𝐲𝐲′𝑇𝑇𝐱𝐱 𝐳𝐳′𝑇𝑇𝐱𝐱𝐱𝐱′𝑇𝑇𝐲𝐲 𝐲𝐲′𝑇𝑇𝐲𝐲 𝐳𝐳′𝑇𝑇𝐲𝐲𝐱𝐱′𝑇𝑇𝐳𝐳 𝐲𝐲′𝑇𝑇𝐳𝐳 𝐳𝐳′𝑇𝑇𝐳𝐳

𝐱𝐱′𝑇𝑇𝐱𝐱′ = 1, 𝐲𝐲′𝑇𝑇𝐲𝐲′ = 1, 𝐳𝐳′𝑇𝑇𝐳𝐳′ = 1𝐱𝐱′𝑇𝑇𝐲𝐲′ = 0, 𝐲𝐲′𝑇𝑇𝐳𝐳′ = 0, 𝐳𝐳′𝑇𝑇𝐱𝐱′ = 0

we have: 𝐑𝐑𝑇𝑇𝐑𝐑 = 𝐈𝐈 𝐑𝐑𝑇𝑇 = 𝐑𝐑−1 orthogonal matrix

Rotation matrix

Page 9: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Let us consider a rotation by an angle α around z axis:

The rotation matrix is thus:

𝐱𝐱′ =cos𝛼𝛼sin𝛼𝛼

0, 𝐲𝐲′ =

− sin𝛼𝛼cos𝛼𝛼

0, 𝐳𝐳′ =

001

𝐑𝐑𝑧𝑧 𝛼𝛼 =cos𝛼𝛼 − sin𝛼𝛼 0sin𝛼𝛼 cos𝛼𝛼 0

0 0 1 Similarly for the rotations around the other axes.

Elementary rotations

Page 10: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Consider now a point P whose coordinates are expressed in two reference frames:

The coordinates of the same point in the two frames are:

𝐩𝐩 =𝑝𝑝𝑥𝑥𝑝𝑝𝑦𝑦𝑝𝑝𝑧𝑧

, 𝐩𝐩′ =𝑝𝑝′𝑥𝑥𝑝𝑝′𝑦𝑦𝑝𝑝′𝑧𝑧

Therefore:

𝐩𝐩 = 𝑝𝑝′𝑥𝑥𝐱𝐱′ + 𝑝𝑝′𝑦𝑦𝐲𝐲

′ + 𝑝𝑝′𝑧𝑧𝐳𝐳′ = 𝐱𝐱′ 𝐲𝐲′ 𝐳𝐳′ 𝐩𝐩′ = 𝐑𝐑𝐩𝐩′

The rotation matrix thus encodes the transformation which maps the coordinates expressed in the frame (x', y ', z ') into the coordinates expressed in frame (x, y, z).

Inverse transformation: 𝐩𝐩′ = 𝐑𝐑𝑇𝑇𝐩𝐩

Representation of a vector

Page 11: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

𝐑𝐑𝑖𝑖𝑗𝑗

Let us consider three frames (denoted with 0, 1 and 2) with a common origin.We denote with:

the rotation matrix of frame i with respect to frame j

Thus:

𝐑𝐑𝑖𝑖𝑗𝑗 = 𝐑𝐑𝑗𝑗𝑖𝑖

−1= 𝐑𝐑𝑗𝑗𝑖𝑖

𝑇𝑇

The coordinates of the same point in the three frames can be expressed in different ways:

𝐩𝐩1 = 𝐑𝐑21𝐩𝐩2 𝐩𝐩0 = 𝐑𝐑10𝐩𝐩1 𝐩𝐩0 = 𝐑𝐑20𝐩𝐩2

Rotations can then be obtained by composing partial rotations.Partial rotation matrices are multiplied from left to right.

𝐑𝐑20 = 𝐑𝐑10𝐑𝐑21

Composition of rotation matrices

Page 12: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

A rotation matrix represents the orientation of a frame with respect to another one by means of 9 parameters, among which 6 constraints exist.

In a minimal representation the orientation is described by means of 3 independent parameters.

Possible representations are:

Euler angles (3 parameters) roll-pitch-yaw angles (3 parameters) axis/angle (4 parameters) quaternions (4 parameters)

Minimal representation of the orientation

Page 13: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

With ZYZ Euler angles the sequence is composed as:

I) Rotation around Z(angle ϕ)

II) Rotation around Y’(angle ϑ)

III) Rotation around Z’’(angle ψ)

𝐑𝐑 𝜑𝜑 = 𝐑𝐑𝑧𝑧 𝜙𝜙 𝐑𝐑𝑦𝑦′ 𝜗𝜗 𝐑𝐑𝑧𝑧″ 𝜓𝜓 =𝑐𝑐𝜙𝜙𝑐𝑐𝜗𝜗𝑐𝑐𝜓𝜓 − 𝑠𝑠𝜙𝜙𝑠𝑠𝜓𝜓 −𝑐𝑐𝜙𝜙𝑐𝑐𝜗𝜗𝑠𝑠𝜓𝜓 − 𝑠𝑠𝜙𝜙𝑐𝑐𝜓𝜓 𝑐𝑐𝜙𝜙𝑠𝑠𝜗𝜗𝑠𝑠𝜙𝜙𝑐𝑐𝜗𝜗𝑐𝑐𝜓𝜓 + 𝑐𝑐𝜙𝜙𝑠𝑠𝜓𝜓 −𝑠𝑠𝜙𝜙𝑐𝑐𝜗𝜗𝑠𝑠𝜓𝜓 + 𝑐𝑐𝜙𝜙𝑐𝑐𝜓𝜓 𝑠𝑠𝜙𝜙𝑠𝑠𝜗𝜗

−𝑠𝑠𝜗𝜗𝑐𝑐𝜓𝜓 𝑠𝑠𝜗𝜗𝑠𝑠𝜓𝜓 𝑐𝑐𝜗𝜗

ZYZ Euler angles

𝑐𝑐𝜗𝜗 = cos 𝜗𝜗𝑠𝑠𝜗𝜗 = sin 𝜗𝜗

Page 14: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

𝐩𝐩0 = 𝐨𝐨10 + 𝐑𝐑10𝐩𝐩1

How can we express coordinates of point P in frame 0, based on its coordinates in frame 1?

Homogeneous representation

𝐩𝐩1 = −𝐑𝐑01𝐨𝐨10 + 𝐑𝐑01𝐩𝐩0

Rotation matrix of frame 1 w.r.t. frame 0

In order to represent in a compact form these transformations, it is advisable to introduce a 4-dim vector:

�𝐩𝐩 = 𝑤𝑤𝐩𝐩𝑤𝑤

w is a scale factor which is always set to 1 in robotics (it is used in computer graphics)

Inverse transform:

Homogeneous representation

Page 15: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

𝐀𝐀10 = 𝐑𝐑10 𝐨𝐨10

0𝑇𝑇 1Let us introduce the homogeneous transformation matrix (size 4×4):

𝐩𝐩0 = 𝐨𝐨10 + 𝐑𝐑10𝐩𝐩1The relationship:

can be expressed, in terms of homogeneous coordinates, as :

�𝐩𝐩0 = 𝐀𝐀10�𝐩𝐩1

The inverse transformation is:

�𝐩𝐩1 = 𝐀𝐀01 �𝐩𝐩0 = (𝐀𝐀10)−1�𝐩𝐩0 𝐀𝐀01 = 𝐑𝐑01 −𝐑𝐑01𝐨𝐨10

0𝑇𝑇 1Composing several transformations: �𝐩𝐩0 = 𝐀𝐀10𝐀𝐀21 …𝐀𝐀𝑛𝑛𝑛𝑛−1�𝐩𝐩𝑛𝑛

A10 relates the description (position/orientation) of a point on frame 1 with the

description in frame 0.

A is not orthogonal

Homogeneous transformations

Page 16: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Suppose now that rotation of one frame with respect to the second one changes with time. Let us consider a point P attached to the rotating frame and expressed with the constant vector p′.The coordinates of the same point in the stationary frame are:

𝐩𝐩 𝑡𝑡 = 𝐑𝐑 𝑡𝑡 𝐩𝐩′

Take now the derivative with respect to time:

�̇�𝐩 𝑡𝑡 = �̇�𝐑 𝑡𝑡 𝐩𝐩′

How can we express the derivative of a rotation matrix?

Time dependent rotations

Page 17: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Since the rotation matrix is orthogonal we have:

𝐑𝐑 𝑡𝑡 𝐑𝐑𝑇𝑇 𝑡𝑡 = 𝐈𝐈 ⇒ �̇�𝐑 𝑡𝑡 𝐑𝐑𝑇𝑇 𝑡𝑡 + 𝐑𝐑 𝑡𝑡 �̇�𝐑𝑇𝑇 𝑡𝑡 = 𝟎𝟎

We conclude that the derivative of a rotation matrix is given by:

If we define the new matrix:

𝐒𝐒 𝑡𝑡 = �̇�𝐑 𝑡𝑡 𝐑𝐑𝑇𝑇 𝑡𝑡

It turns out that: 𝐒𝐒 𝑡𝑡 + 𝐒𝐒𝑇𝑇 𝑡𝑡 = 𝟎𝟎 which means that matrix S is skew symmetric.

�̇�𝐑 𝑡𝑡 = 𝐒𝐒 ω 𝐭𝐭 𝐑𝐑 𝑡𝑡

ω =𝜔𝜔𝑥𝑥𝜔𝜔𝑦𝑦𝜔𝜔𝑧𝑧

, 𝐒𝐒 ω =0 −𝜔𝜔𝑧𝑧 𝜔𝜔𝑦𝑦𝜔𝜔𝑧𝑧 0 −𝜔𝜔𝑥𝑥−𝜔𝜔𝑦𝑦 𝜔𝜔𝑥𝑥 0

Matrix S then takes the following form:

Derivative of a rotation matrix

Page 18: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

The derivative of vector p(t) can thus be expressed as :

On the other hand the same vector denotes the velocity of point P in the stationary frame:

�̇�𝐩 𝑡𝑡 = �̇�𝐑 𝑡𝑡 𝐩𝐩′ = 𝐒𝐒 ω 𝐭𝐭 𝐑𝐑 𝑡𝑡 𝐩𝐩′ = 𝐒𝐒 ω 𝐭𝐭 𝐩𝐩 𝑡𝑡

�̇�𝐩 𝑡𝑡 = ω 𝑡𝑡 × 𝐑𝐑 𝑡𝑡 𝐩𝐩′ = ω 𝑡𝑡 × 𝐩𝐩 𝑡𝑡

Thus the skew symmetric matrix S can be interpreted as the operator that computes the cross product.

ω is the angular velocity vector of the rotating frame

symbol × denotes cross product

Skew symmetric matrix

Page 19: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

BASE

END EFFECTOR

JOINTS

How does all this relate to the robot?

Page 20: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

ROTATIONAL JOINTS PRISMATIC JOINTS

Each joint allows for one (and only one) degree of freedombetween two links. We call joint variable the coordinate associated to such degree of freedom, and then we introduce the vector of joint variables:

Schematic draws of the joints:

The joints

𝐪𝐪 =𝑞𝑞1⋮𝑞𝑞𝑛𝑛

Page 21: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Let us define a frame attached to the base and a frame attached to the tool.

The tool frame is defined by means of three unit vectors:

ae (approach): approach direction towards the work-piecese (sliding): orthogonal to ae in the sliding plane of the gripperne (normal): orthogonal to both the other ones

pe points to the origin of the tool frame (central point of the gripper).

Base frame and tool frame

Page 22: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

The direct kinematics problem is to find position and orientation of the tool frame w.r.t. the base frame, as a function of the joint variables.

Direct kinematics

?

Page 23: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

The direct kinematic equation can be expressed through the homogeneous transformation matrix of the tool frame with respect to the base frame.

Example: planar two-link manipulator

(homogeneous transformation matrix)

Direct kinematics

𝐓𝐓𝑒𝑒𝑏𝑏 𝐪𝐪 = 𝐧𝐧𝑒𝑒𝑏𝑏 𝐪𝐪 𝐬𝐬𝑒𝑒𝑏𝑏 𝐪𝐪 𝐚𝐚𝑒𝑒𝑏𝑏 𝐪𝐪 𝐩𝐩𝑒𝑒𝑏𝑏 𝐪𝐪0 0 0 1

𝐓𝐓𝑒𝑒𝑏𝑏 𝐪𝐪 =

0 𝑠𝑠12 𝑐𝑐12 𝑎𝑎1𝑐𝑐1 + 𝑎𝑎2𝑐𝑐120 −𝑐𝑐12 𝑠𝑠12 𝑎𝑎1𝑠𝑠1 + 𝑎𝑎2𝑠𝑠121 0 0 00 0 0 1

Page 24: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

To proceed in a systematic way in the computation of the direct kinematics, a frame should be attached to each link:

𝐓𝐓𝑛𝑛0 𝐪𝐪 = 𝐀𝐀10 𝑞𝑞1 𝐀𝐀21 𝑞𝑞2 …𝐀𝐀𝑛𝑛𝑛𝑛−1 𝑞𝑞𝑛𝑛

link 0 grounded

n is the last link

Every joint allows one degree of freedom

Proceeding iteratively:

𝐓𝐓𝑒𝑒𝑏𝑏 𝐪𝐪 = 𝐓𝐓0𝑏𝑏𝐓𝐓𝑛𝑛0 𝐪𝐪 𝐓𝐓𝑒𝑒𝑛𝑛

Direct kinematics

Page 25: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

zi lies along the axis of joint i+1 Oi is at the intersection of zi axis with the common normal to axes zi e zi-1; we denote with Oi ' the

intersection of this common normal with axis zi-1 xi is aligned with the common normal to axes zi e zi-1, with positive orientation from joint i to joint i+1 yi completes a right-handed frame

It is a convention for the selection of the frames attached to each link.

frame i attached to link i

Denavit-Hartenberg convention

Page 26: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

In order to define a frame w.r.t. to the preceding one, 4 parameters are needed.

ai distance of Oi from Oi' di coordinate on zi-1 of Oi' αi angle around axis xi between axis zi-1 and axis zi computed as positive counter clockwise ϑi angle around axis zi-1 between axis xi-1 and axis xi computed as positive counter clockwise

ai and αi are always constant, either ϑi or di is varying

Denavit-Hartenberg parameters

frame i attached to link i

Page 27: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

https://www.youtube.com/watch?v=rA9tm0gTln8

Denavit-Hartenberg method illustrated

Page 28: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

How to build the transformation matrix from frame i-1 to frame i:

I) In order to superimpose frame i-1 to frame i ' we translate the frame along axis zi-1 by a length di rotating by an angle ϑi around zi-1:

II) In order to superimpose frame i ' to frame iwe translate the frame along axis xi ' by a length ai, rotating of an angle αi around xi ' :

Homogeneous transformation matrix

𝐀𝐀𝑖𝑖′𝑖𝑖−1 =

𝑐𝑐𝜗𝜗𝑖𝑖 −𝑠𝑠𝜗𝜗𝑖𝑖 0 0𝑠𝑠𝜗𝜗𝑖𝑖 𝑐𝑐𝜗𝜗𝑖𝑖 0 00 0 1 𝑑𝑑𝑖𝑖0 0 0 1

𝐀𝐀𝑖𝑖𝑖𝑖′

=

1 0 0 𝑎𝑎𝑖𝑖0 𝑐𝑐𝛼𝛼𝑖𝑖 −𝑠𝑠𝛼𝛼𝑖𝑖 00 𝑠𝑠𝛼𝛼𝑖𝑖 𝑐𝑐𝛼𝛼𝑖𝑖 00 0 0 1

𝐀𝐀𝑖𝑖𝑖𝑖−1 𝑞𝑞𝑖𝑖 = 𝐀𝐀𝑖𝑖′𝑖𝑖−1𝐀𝐀𝑖𝑖𝑖𝑖

′=

𝑐𝑐𝜗𝜗𝑖𝑖 −𝑠𝑠𝜗𝜗𝑖𝑖𝑐𝑐𝛼𝛼𝑖𝑖 𝑠𝑠𝜗𝜗𝑖𝑖𝑠𝑠𝛼𝛼𝑖𝑖 𝑎𝑎𝑖𝑖𝑐𝑐𝜗𝜗𝑖𝑖𝑠𝑠𝜗𝜗𝑖𝑖 𝑐𝑐𝜗𝜗𝑖𝑖𝑐𝑐𝛼𝛼𝑖𝑖 −𝑐𝑐𝜗𝜗𝑖𝑖𝑠𝑠𝛼𝛼𝑖𝑖 𝑎𝑎𝑖𝑖𝑠𝑠𝜗𝜗𝑖𝑖0 𝑠𝑠𝛼𝛼𝑖𝑖 𝑐𝑐𝛼𝛼𝑖𝑖 𝑑𝑑𝑖𝑖0 0 0 1

Page 29: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

The joint space is defined by the vector of joint variables:

Direct kinematic relation:

𝐪𝐪 =𝑞𝑞1⋮𝑞𝑞𝑛𝑛

qi = ϑi (rotating joint)

qi = di (prismatic joint)

The operational space is the space where the task that the manipulator has to accomplish is specified. It is defined by the posture x :

𝐱𝐱 =𝐩𝐩𝜑𝜑

p (position)φ (minimal representation of the orientation)

m components

𝐱𝐱 = 𝐤𝐤 𝐪𝐪

Joint space and operational space

Page 30: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

We can define the orientation with the angle φ formed by the end effector (vector x3) with axis x0

𝐱𝐱 =𝑝𝑝𝑥𝑥𝑝𝑝𝑦𝑦𝜑𝜑

= 𝐤𝐤 𝐪𝐪 =𝑎𝑎1𝑐𝑐1 + 𝑎𝑎2𝑐𝑐12 + 𝑎𝑎3𝑐𝑐123𝑎𝑎1𝑠𝑠1 + 𝑎𝑎2𝑠𝑠12 + 𝑎𝑎3𝑠𝑠123

𝜗𝜗1 + 𝜗𝜗2 + 𝜗𝜗3

Three d.o.f. planar manipulator

𝐓𝐓30 = 𝐀𝐀10𝐀𝐀21𝐀𝐀32 =

𝑐𝑐123 −𝑠𝑠123 0 𝑎𝑎1𝑐𝑐1 + 𝑎𝑎2𝑐𝑐12 + 𝑎𝑎3𝑐𝑐123𝑠𝑠123 𝑐𝑐123 0 𝑎𝑎1𝑠𝑠1 + 𝑎𝑎2𝑠𝑠12 + 𝑎𝑎3𝑠𝑠123

0 0 1 00 0 0 1

𝑎𝑎𝑖𝑖 𝛼𝛼𝑖𝑖 𝑑𝑑𝑖𝑖 𝜗𝜗𝑖𝑖1 𝑎𝑎1 0 0 𝜗𝜗12 𝑎𝑎2 0 0 𝜗𝜗23 𝑎𝑎3 0 0 𝜗𝜗3

Page 31: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

x0z0

y1

x1

x3

y2

x4

y4

x6

z6

x2

z3

x5

z5

A six d.o.f. robot

Page 32: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Kinematic model from a user’s perspective

The robot manuals usually do not give the kinematic model in terms of Denavit-Hartenberg parameters, but in a simplified way.

Here is an example:

Source: ABB

A description like this is specific to this robot and can be understood only with an accompanying sketch.

Denavit-Hartenbergrepresentation is universal and can be understood as it is.

Page 33: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

The inverse kinematics problem is to find joint variables given position and orientation of the tool frame w.r.t. the base frame.

Inverse kinematics problem

?

?

?

Page 34: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Given position and orientation of the tool frame, find the corresponding joint variables.

𝐓𝐓 ⇒ 𝐪𝐪𝐱𝐱 ⇒ 𝐪𝐪

The problem may admit no solutions (if position and orientation do not belong to the workspace of the manipulator)

The analytical solution (in closed form) may not exist. In this case numerical techniques are used

Multiple or an infinite number of solutions might exist

In general the solution is found without a systematic procedure, rather relying on intuition in manipulating the equations.

Inverse kinematics problem

Page 35: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

𝑝𝑝𝑥𝑥 = 𝑎𝑎1𝑥𝑥 + 𝑎𝑎2𝑥𝑥 = 𝑎𝑎1 cos 𝜗𝜗1 + 𝑎𝑎2 cos 𝜗𝜗1 + 𝜗𝜗2𝑝𝑝𝑦𝑦 = 𝑎𝑎1𝑦𝑦 + 𝑎𝑎2𝑦𝑦 = 𝑎𝑎1 sin 𝜗𝜗1 + 𝑎𝑎2 sin 𝜗𝜗1 + 𝜗𝜗2

X

Y

ϑ1

ϑ2

a1

a2

a1x a2x

a1y

a2y

P

COMPLICATED!

Squaring and summing:

𝑐𝑐2 =𝑝𝑝𝑥𝑥2 + 𝑝𝑝𝑦𝑦2 − 𝑎𝑎12 − 𝑎𝑎22

2𝑎𝑎1𝑎𝑎2

𝑠𝑠2 = ± 1 − 𝑐𝑐22⇒ 𝜗𝜗2 = Atan2 𝑠𝑠2, 𝑐𝑐2

2 solutions

𝑐𝑐1 =𝑎𝑎1 + 𝑎𝑎2𝑐𝑐2 𝑝𝑝𝑥𝑥 + 𝑎𝑎2𝑠𝑠2𝑝𝑝𝑦𝑦

𝑝𝑝𝑥𝑥2 + 𝑝𝑝𝑦𝑦2

𝑠𝑠1 =𝑎𝑎1 + 𝑎𝑎2𝑐𝑐2 𝑝𝑝𝑦𝑦 − 𝑎𝑎2𝑠𝑠2𝑝𝑝𝑥𝑥

𝑝𝑝𝑥𝑥2 + 𝑝𝑝𝑦𝑦2

⇒ 𝜗𝜗1 = Atan2 𝑠𝑠1, 𝑐𝑐1

Two d.o.f. planar manipulator

Page 36: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Eight admissible configurations exist

right/left shoulder up/down elbow

up/down wrist

Anthropomorphic manipulator

Page 37: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Let’s introduce now the linear velocity and the angular velocity of the tool frame (attached to the tool): p and ω.

The goal of differential kinematics is to express these velocities in terms of the joint velocities.

�̇�𝐩 = 𝐉𝐉𝑃𝑃 𝐪𝐪 �̇�𝐪ω = 𝐉𝐉𝑂𝑂 𝐪𝐪 �̇�𝐪

.

In a compact form: 𝐯𝐯 = �̇�𝐩ω = 𝐉𝐉 𝐪𝐪 �̇�𝐪

The (6×n) matrix: 𝐉𝐉 𝐪𝐪 = 𝐉𝐉𝑃𝑃 𝐪𝐪𝐉𝐉𝑂𝑂 𝐪𝐪

is called geometrical Jacobian of the manipulator.Systematic methods exist to compute the Jacobian.

Differential kinematics: geometrical Jacobian

Page 38: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Computation of the geometrical Jacobian

We partition the Jacobian in n columns, each one in turn partitioned in two vectors:

𝐉𝐉 =𝐣𝐣𝑃𝑃1 𝐣𝐣𝑃𝑃𝑛𝑛

⋯𝐣𝐣𝑂𝑂1 𝐣𝐣𝑂𝑂𝑛𝑛

Angular velocity

qi jPi: contribution of joint i to the linear velocity

qi jOi: contribution of joint i to the angular velocity

.

.

Joint i prismatic:

�̇�𝑞𝑖𝑖𝐣𝐣𝑂𝑂𝑖𝑖 = 0 ⇒ 𝐣𝐣𝑂𝑂𝑖𝑖 = 0

Joint i rotational:

�̇�𝑞𝑖𝑖𝐣𝐣𝑂𝑂𝑖𝑖 = �̇�𝜗𝑖𝑖𝐳𝐳𝑖𝑖−1 ⇒ 𝐣𝐣𝑂𝑂𝑖𝑖 = 𝐳𝐳𝑖𝑖−1

Page 39: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Computation of the geometrical Jacobian

Linear velocity

Joint i prismatic:

�̇�𝑞𝑖𝑖𝐣𝐣𝑃𝑃𝑖𝑖 = �̇�𝑑𝑖𝑖𝐳𝐳𝑖𝑖−1 ⇒ 𝐣𝐣𝑃𝑃𝑖𝑖 = 𝐳𝐳𝑖𝑖−1

Joint i rotational:

�̇�𝑞𝑖𝑖𝐣𝐣𝑃𝑃𝑖𝑖 = ω𝑖𝑖−1,𝑖𝑖 × 𝐫𝐫𝑖𝑖−1,𝑛𝑛 == �̇�𝜗𝑖𝑖𝐳𝐳𝑖𝑖−1 × 𝐩𝐩 − 𝐩𝐩𝑖𝑖−1

⇓𝐣𝐣𝑃𝑃𝑖𝑖 = 𝐳𝐳𝑖𝑖−1 × 𝐩𝐩 − 𝐩𝐩𝑖𝑖−1

Page 40: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Computation of the geometrical Jacobian

We can then compute the geometrical Jacobian column by column:

𝐣𝐣𝑃𝑃𝑖𝑖𝐣𝐣𝑂𝑂𝑖𝑖

=

𝐳𝐳𝑖𝑖−10 prismatic joint

𝐳𝐳𝑖𝑖−1 × 𝐩𝐩 − 𝐩𝐩𝑖𝑖−1𝐳𝐳𝑖𝑖−1

rotational joint

Page 41: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Computation of the geometrical Jacobian: example

𝐉𝐉 𝐪𝐪 = 𝐳𝐳0 × 𝐩𝐩 − 𝐩𝐩0 𝐳𝐳1 × 𝐩𝐩 − 𝐩𝐩1 𝐳𝐳2 × 𝐩𝐩 − 𝐩𝐩2𝐳𝐳0 𝐳𝐳1 𝐳𝐳2

𝐩𝐩0 =000

𝐩𝐩1 =𝑎𝑎1𝑐𝑐1𝑎𝑎1𝑠𝑠1

0𝐩𝐩2 =

𝑎𝑎1𝑐𝑐1 + 𝑎𝑎2𝑐𝑐12𝑎𝑎1𝑠𝑠1 + 𝑎𝑎2𝑠𝑠12

0

𝐩𝐩 =𝑎𝑎1𝑐𝑐1 + 𝑎𝑎2𝑐𝑐12 + 𝑎𝑎3𝑐𝑐123𝑎𝑎1𝑠𝑠1 + 𝑎𝑎2𝑠𝑠12 + 𝑎𝑎3𝑠𝑠123

0𝐳𝐳0 = 𝐳𝐳1 = 𝐳𝐳2 =

001

𝐉𝐉 =

−𝑎𝑎1𝑠𝑠1 − 𝑎𝑎2𝑠𝑠12 − 𝑎𝑎3𝑠𝑠123 −𝑎𝑎2𝑠𝑠12 − 𝑎𝑎3𝑠𝑠123 −𝑎𝑎3𝑠𝑠123𝑎𝑎1𝑐𝑐1 + 𝑎𝑎2𝑐𝑐12 + 𝑎𝑎3𝑐𝑐123 𝑎𝑎2𝑐𝑐12 + 𝑎𝑎3𝑐𝑐123 𝑎𝑎3𝑐𝑐123

0 0 00 0 00 0 01 1 1

note:

𝐚𝐚 × 𝐛𝐛 =𝑎𝑎2𝑏𝑏3 − 𝑎𝑎3𝑏𝑏2𝑎𝑎3𝑏𝑏1 − 𝑎𝑎1𝑏𝑏3𝑎𝑎1𝑏𝑏2 − 𝑎𝑎2𝑏𝑏1

Page 42: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Let’s go back to the direct kinematic equation of a manipulator:

Matrix: 𝐉𝐉𝐴𝐴 𝐪𝐪 =𝐉𝐉𝑃𝑃 𝐪𝐪𝐉𝐉𝜑𝜑 𝐪𝐪 is called analytical Jacobian of the manipulator.

𝐱𝐱 = 𝐤𝐤 𝐪𝐪 = 𝐩𝐩 𝐪𝐪φ 𝐪𝐪

where φ is a minimal representation of the orientation. Differentiating w.r.t. time we obtain:

�̇�𝐱 =𝜕𝜕𝐤𝐤 𝐪𝐪𝜕𝜕𝐪𝐪 �̇�𝐪 = 𝐉𝐉𝐴𝐴 𝐪𝐪 �̇�𝐪

On the other hand:

�̇�𝐱 = �̇�𝐩φ̇ =

⁄𝜕𝜕𝐩𝐩 𝐪𝐪 𝜕𝜕𝐪𝐪 �̇�𝐪⁄𝜕𝜕φ 𝐪𝐪 𝜕𝜕𝐪𝐪 �̇�𝐪 =

𝐉𝐉𝑃𝑃 𝐪𝐪𝐉𝐉𝜑𝜑 𝐪𝐪 �̇�𝐪

Analytical Jacobian

Page 43: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Let us thus express the velocity (linear and angular) of the tool frame in terms of the derivatives of p and φ:

𝐯𝐯 = �̇�𝐩ω = 𝐈𝐈 𝟎𝟎

𝟎𝟎 𝐓𝐓 φ �̇�𝐱 = 𝐓𝐓𝐴𝐴 φ �̇�𝐱 = 𝐓𝐓𝐴𝐴 φ 𝐉𝐉𝐴𝐴�̇�𝐪

The relation between analytical and geometrical Jacobian follows: 𝐉𝐉 = 𝐓𝐓𝐴𝐴 φ 𝐉𝐉𝐴𝐴

ω = 𝐓𝐓 φ φ̇

The link between the angular velocity ω and the derivative of vector φ expressing the orientation is the following one:

where T is a matrix that depends on the representation of the orientation:

𝐓𝐓 φ =001

−𝑠𝑠𝜙𝜙𝑐𝑐𝜙𝜙0

𝑐𝑐𝜙𝜙𝑠𝑠𝜗𝜗𝑠𝑠𝜙𝜙𝑠𝑠𝜗𝜗𝑐𝑐𝜗𝜗

(for the ZYZ Euler angles)

Analytical vs. geometrical Jacobian

Page 44: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

The equation defining the geometrical Jacobian is:

𝐯𝐯 = 𝐉𝐉 𝐪𝐪 �̇�𝐪

The values of q for which matrix J is rank-deficient are called kinematic singularities. At a kinematic singularity we have:

1. Loss of mobility (it is not possible to impose arbitrary motion laws)2. Possibility of infinite solutions to the kinematic inversion problem3. High velocities in joint space (around the singularity)

The singularities may happen:

1. At the borders of the manipulator work-space2. Inside the manipulator work-space

The latter are more problematic, since they can be incurred with trajectories planned in the operational space.

Kinematic singularities

Page 45: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

For a two-link manipulator the Jacobian is:

These are singularities at the borders of the workspace.

In these configurations the two columns of the Jacobian are not independent.

𝐉𝐉 =−𝑎𝑎1𝑠𝑠1 − 𝑎𝑎2𝑠𝑠12 −𝑎𝑎2𝑠𝑠12𝑎𝑎1𝑐𝑐1 + 𝑎𝑎2𝑐𝑐12 𝑎𝑎2𝑐𝑐12

We can compute singularities:

det 𝐉𝐉 = 𝑎𝑎1𝑎𝑎2𝑠𝑠2 = 0 ⇔ 𝜗𝜗2 = �0𝜋𝜋

Kinematic singularities: example

Page 46: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

Arm singularity Elbow singularity

Wrist singularity Source: ABB

Kinematic singularities of a complete manipulator

Page 47: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

https://www.youtube.com/watch?v=zlGCurgsqg8

Consequences of kinematic singularities on robot motion

Page 48: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

The differential kinematics is linear for a certain value of q:

𝐯𝐯 = 𝐉𝐉 𝐪𝐪 �̇�𝐪

Given a velocity v in the operational space and an initial condition on q we might solve the kinematic inversion problem by inverting the differential kinematics and then integrating. If the Jacobian is square (n = r, number of coordinates in the operational space needed to describe a task):

�̇�𝐪 = 𝐉𝐉−1 𝐪𝐪 𝐯𝐯 ⇒ 𝐪𝐪 𝑡𝑡 = �0

𝑡𝑡

�̇�𝐪 𝜎𝜎 𝑑𝑑𝜎𝜎 + 𝐪𝐪 0

However, using this expression directly, drifts of the solution may occur.The error in the operational space made by the kinematic inversion algorithm is then introduced:

𝐞𝐞 = 𝐱𝐱𝑑𝑑 − 𝐱𝐱

Inversion of the differential kinematics

Page 49: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

If we adopt the following dependence of qfrom e:

�̇�𝐪 = 𝐉𝐉𝐴𝐴−1 𝐪𝐪 �̇�𝐱𝑑𝑑 + 𝐊𝐊𝐞𝐞

we obtain:

�̇�𝐞 + 𝐊𝐊𝐞𝐞 = 0

and the diagram:

.

JA−1(q)K ++

−xd +

xd.

q. q

k(q)x

�̇�𝐞 + 𝐊𝐊𝐞𝐞 = 0

Mathematically, this corresponds to solve the inverse kinematics problem through a Gauss-Newton iterative method.Proof of convergence is trivial as:

Inverse of the Jacobian

Page 50: Control of industrial robots Review of robot kinematics robot kinematics.pdf · Control of industrial robots –Review of robot kinematics – Paolo Rocco With these slides we will

Control of industrial robots – Review of robot kinematics – Paolo Rocco

If we adopt the following (simpler) dependence:

�̇�𝐪 = 𝐉𝐉𝐴𝐴𝑇𝑇 𝐪𝐪 𝐊𝐊𝐞𝐞

we obtain the diagram:

JAT(q)K+

−xd q. q

k(q)x

Mathematically, this corresponds to solve the inverse kinematics problem through a gradient descent iterative method.Proof of convergence can be obtained through a Lyapunov argument.

Transpose of the Jacobian