control of industrial robots robot dynamics

55
Control of industrial robots Robot dynamics Prof. Paolo Rocco ([email protected]) Politecnico di Milano, Dipartimento di Elettronica, Informazione e Bioingegneria

Upload: others

Post on 15-Apr-2022

8 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Control of industrial robots Robot dynamics

Control of industrial robots

Robot dynamics

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

Page 2: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

With these slides we will derive the dynamic model of the manipulator

The dynamic model accounts for the relation between the sources of motion (forces and moments) and the resulting motion (positions and velocities)

u(t)

q(t)

Systematic methods exist to derive the dynamic model of the manipulators, which will be reviewed here, along with the main properties of such model

Introduction

Page 3: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Consider a point with mass m, whose position is described by vector ๐ฉ๐ฉ with respect to a xyz frame.

We define kinetic energy of the point the quantity:

P

x

y

z

O๐‘‡๐‘‡ =12๐‘š๐‘š๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘‡๐‘‡๏ฟฝฬ‡๏ฟฝ๐ฉ

Consider now a rigid body, with mass ๐‘š๐‘š, volume ๐‘‰๐‘‰ and density ๐œŒ๐œŒ. The kinetic energy is defined with the integral:

๐‘‡๐‘‡ =12๏ฟฝ๐‘‰๐‘‰๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘‡๐‘‡๏ฟฝฬ‡๏ฟฝ๐ฉ๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰

P

x

y

z

O

dV

Similarly, for a system of points:

๐‘‡๐‘‡ =12๏ฟฝ๐‘–๐‘–=1

๐‘›๐‘›

๐‘š๐‘š๐‘–๐‘–๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘–๐‘–๐‘‡๐‘‡๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘–๐‘–

Kinetic energy

Page 4: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

A system of position forces (i.e. depending only on the positions of the points of application) is said to be conservative is the work made by each force does not depend on the trajectory followed by the point of application, but only on the initial and final positions.In this case the elementary work coincides with the differential, with changed sign, of a function called potential energy:

๐œŒ๐œŒ๐‘‘๐‘‘ = โˆ’๐œŒ๐œŒ๐‘‘๐‘‘

An example of a system of conservative forces is the gravitational force.For a point mass we have the potential energy:

๐‘‘๐‘‘ = โˆ’๐‘š๐‘š๐ ๐ 0๐‘‡๐‘‡๐ฉ๐ฉ

For a rigid body:

๐‘‘๐‘‘ = โˆ’๏ฟฝ๐‘‰๐‘‰๐ ๐ 0๐‘‡๐‘‡๐ฉ๐ฉ๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰ = โˆ’๐‘š๐‘š๐ ๐ 0๐‘‡๐‘‡๐ฉ๐ฉ๐‘™๐‘™

where ๐ ๐ 0 is the gravity acceleration vector.

where ๐ฉ๐ฉ๐‘™๐‘™ is the position of the center of mass.

Potential energy

Page 5: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Let us consider a system of r rigid bodies (as for example, the links of a robot). If all these bodies are free to move in space, the motion of the system is, at each time instant, described by means of 6๐‘Ÿ๐‘Ÿ coordinates ๐ฑ๐ฑ.

Suppose now that limitations exist in the motion of the bodies of the system (as for example the presence of a joint, which eliminates five out of the six relative degrees of freedom between two consecutive links).A constraint thus exists on the motion of the bodies, which we will express with the relation:

๐ก๐ก ๐ฑ๐ฑ = 0

Such a constraint is said to be holonomic (it depends only on position coordinates, not velocities) and stationary (it does not change with time).

Systems of rigid bodies

Page 6: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

๐ก๐ก ๐ฑ๐ฑ = 0

If the constraints ๐ก๐ก are composed of ๐‘ ๐‘  scalar equations and they are all continuously differentiable, it is possible, by means of the constraints, to eliminate ๐‘ ๐‘  coordinates from the system equations.

The remaining ๐‘›๐‘› = 6๐‘Ÿ๐‘Ÿ โˆ’ ๐‘ ๐‘  coordinates are called free, or Lagrangian, or natural, or generalized coordinates. ๐‘›๐‘› is the number of degrees of freedom of the mechanical system.

For example in a robot with 6 joints, out of the 36 original coordinates, 30 are eliminated by virtue of the constraints imposed by the 6 joints. The remaining 6 are the Lagrangiancoordinates (typically the joint variables used in the kinematic model).

Free coordinates

Page 7: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

๐ฟ๐ฟ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช = ๐‘‡๐‘‡ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช โˆ’ ๐‘‘๐‘‘ ๐ช๐ช

๐œŒ๐œŒ๐‘‘๐‘‘ = ๏ฟฝ๐‘–๐‘–=1

๐‘›๐‘›

๐œ‰๐œ‰๐‘–๐‘–๐œŒ๐œŒ๐‘ž๐‘ž๐‘–๐‘–

Given a system of rigid bodies, whose positions and orientations can be expressed by means of ๐‘›๐‘›generalized coordinates ๐‘ž๐‘ž๐‘–๐‘–, we define Lagrangian of the mechanical system the quantity:

where ๐‘‡๐‘‡ and ๐‘‘๐‘‘ are the kinetic and the potential energies, respectively. Let then ๐œ‰๐œ‰๐‘–๐‘– be the generalized forces associated with the generalized coordinates ๐‘ž๐‘ž๐‘–๐‘–. The elementary work performed by the forces acting on the system can be expressed as:

It can be proven that the dynamics of the system of bodies is expressed by the following Lagrangeโ€™s equations:

๐œŒ๐œŒ๐œŒ๐œŒ๐‘‘๐‘‘

๐œ•๐œ•๐ฟ๐ฟ๐œ•๐œ•๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘–๐‘–

โˆ’๐œ•๐œ•๐ฟ๐ฟ๐œ•๐œ•๐‘ž๐‘ž๐‘–๐‘–

= ๐œ‰๐œ‰๐‘–๐‘– , ๐‘–๐‘– = 1, โ€ฆ ,๐‘›๐‘›

Lagrangeโ€™s equations

Page 8: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Let us consider a system composed of a motor rigidly connected to a load, subjected to the gravitational force. Let: ๐ผ๐ผ๐‘š๐‘š and ๐ผ๐ผ the moments of inertia of the motor and the load with

respect to the motor spinning axis ๐‘š๐‘š the mass of the load ๐‘™๐‘™ the distance of the center of mass of the load from the axis of

the motor.

Kinetic energy of the motor: ๐‘‡๐‘‡๐‘š๐‘š =12๐ผ๐ผ๐‘š๐‘š๏ฟฝฬ‡๏ฟฝ๐œ—2

mg

ฯ‘

ฯ„

l x

y

C

Kinetic energy of the load: ๐‘‡๐‘‡๐‘๐‘ =12๐ผ๐ผ๏ฟฝฬ‡๏ฟฝ๐œ—2

An example

Page 9: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Gravitational potential energy:

Lagrangian: ๐ฟ๐ฟ = ๐‘‡๐‘‡๐‘š๐‘š + ๐‘‡๐‘‡๐‘๐‘ โˆ’ ๐‘‘๐‘‘ =12๐ผ๐ผ๐‘š๐‘š + ๐ผ๐ผ ๏ฟฝฬ‡๏ฟฝ๐œ—2 โˆ’ ๐‘š๐‘š๐‘š๐‘š๐‘š sin๐œ—๐œ—

Lagrangeโ€™s equations:

mg

ฯ‘

ฯ„

l๐‘‘๐‘‘ = โˆ’๐‘š๐‘š๐ ๐ 0๐‘‡๐‘‡๐ฉ๐ฉ๐‘™๐‘™ = โˆ’๐‘š๐‘š 0 โˆ’๐‘š๐‘š ๐‘š cos๐œ—๐œ—

๐‘š sin๐œ—๐œ— = ๐‘š๐‘š๐‘š๐‘š๐‘š sin๐œ—๐œ—

๐œŒ๐œŒ๐œŒ๐œŒ๐‘‘๐‘‘๐œ•๐œ•๐ฟ๐ฟ๐œ•๐œ•๏ฟฝฬ‡๏ฟฝ๐œ—

โˆ’๐œ•๐œ•๐ฟ๐ฟ๐œ•๐œ•๐œ—๐œ—

= ๐œ๐œ โ‡’๐œŒ๐œŒ๐œŒ๐œŒ๐‘‘๐‘‘

๐ผ๐ผ + ๐ผ๐ผ๐‘š๐‘š ๏ฟฝฬ‡๏ฟฝ๐œ— + ๐‘š๐‘š๐‘š๐‘š๐‘š cos๐œ—๐œ— = ๐œ๐œ

Then:

๐ผ๐ผ + ๐ผ๐ผ๐‘š๐‘š ๏ฟฝฬˆ๏ฟฝ๐œ— + ๐‘š๐‘š๐‘š๐‘š๐‘š cos๐œ—๐œ— = ๐œ๐œ This equation can be easily interpreted as the equilibrium of moments around the rotation axis.

An example

Page 10: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

The contribution of kinetic energy of a single link can be computed with the following integral:

๐‘‡๐‘‡๐‘–๐‘– =12๏ฟฝ๐‘‰๐‘‰๐‘–๐‘–๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘–๐‘–โˆ—

๐‘‡๐‘‡๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘–๐‘–โˆ—๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰

generic point along the link๐ฉ๐ฉ๐‘–๐‘–โˆ—

Position of the center of mass: ๐ฉ๐ฉ๐‘™๐‘™๐‘–๐‘– =1๐‘š๐‘š๐‘–๐‘–

๏ฟฝ๐‘‰๐‘‰๐‘–๐‘–๐ฉ๐ฉ๐‘–๐‘–โˆ—๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰

Velocity of the generic point: ๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘–๐‘–โˆ— = ๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘™๐‘™๐‘–๐‘– + ฯ‰๐‘–๐‘– ร— ๐ซ๐ซ๐‘–๐‘– = ๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘™๐‘™๐‘–๐‘– + ๐’๐’ ฯ‰๐‘–๐‘– ๐ซ๐ซ๐‘–๐‘–

where: ๐’๐’ ฯ‰๐‘–๐‘– =0 โˆ’๐œ”๐œ”๐‘–๐‘–๐‘–๐‘– ๐œ”๐œ”๐‘–๐‘–๐‘–๐‘–๐œ”๐œ”๐‘–๐‘–๐‘–๐‘– 0 โˆ’๐œ”๐œ”๐‘–๐‘–๐‘–๐‘–โˆ’๐œ”๐œ”๐‘–๐‘–๐‘–๐‘– ๐œ”๐œ”๐‘–๐‘–๐‘–๐‘– 0

(skew-symmetric matrix)

Kinetic energy of a link

Page 11: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Translational contribution: 12๏ฟฝ๐‘‰๐‘‰๐‘–๐‘–๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘™๐‘™๐‘–๐‘–

๐‘‡๐‘‡๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘™๐‘™๐‘–๐‘–๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰ =12๐‘š๐‘š๐‘–๐‘–๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘™๐‘™๐‘–๐‘–

๐‘‡๐‘‡๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘™๐‘™๐‘–๐‘–

Mutual contribution:

๏ฟฝ๐‘‰๐‘‰๐‘–๐‘–๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘™๐‘™๐‘–๐‘–

๐‘‡๐‘‡๐’๐’ ฯ‰๐‘–๐‘– ๐ซ๐ซ๐‘–๐‘–๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰ = ๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘™๐‘™๐‘–๐‘–๐‘‡๐‘‡๐’๐’ ฯ‰๐‘–๐‘– ๏ฟฝ

๐‘‰๐‘‰๐‘–๐‘–๐ฉ๐ฉ๐‘–๐‘–โˆ— โˆ’ ๐ฉ๐ฉ๐‘™๐‘™๐‘–๐‘– ๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰ = 0

Rotational contribution:

12๏ฟฝ๐‘‰๐‘‰๐‘–๐‘–

๐ซ๐ซ๐‘–๐‘–๐‘‡๐‘‡๐’๐’๐‘‡๐‘‡ ฯ‰๐‘–๐‘– ๐’๐’ ฯ‰๐‘–๐‘– ๐ซ๐ซ๐‘–๐‘–๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰ =12ฯ‰๐‘–๐‘–

๐‘‡๐‘‡ ๏ฟฝ๐‘‰๐‘‰๐‘–๐‘–๐’๐’๐‘‡๐‘‡ ๐ซ๐ซ๐‘–๐‘– ๐’๐’ ๐ซ๐ซ๐‘–๐‘– ๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰ ฯ‰๐‘–๐‘– =

12ฯ‰๐‘–๐‘–

๐‘‡๐‘‡๐ˆ๐ˆ๐‘–๐‘–ฯ‰๐‘–๐‘–๐’๐’ ฯ‰๐‘–๐‘– ๐ซ๐ซ๐‘–๐‘– = โˆ’๐’๐’ ๐ซ๐ซ๐‘–๐‘– ฯ‰๐‘–๐‘–

Note:

Then: ๐‘‡๐‘‡๐‘–๐‘– =12๐‘š๐‘š๐‘–๐‘–๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘™๐‘™๐‘–๐‘–

๐‘‡๐‘‡๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘™๐‘™๐‘–๐‘– +12ฯ‰๐‘–๐‘–๐‘‡๐‘‡๐ˆ๐ˆ๐‘–๐‘–ฯ‰๐‘–๐‘–

velocity of center of mass

angular velocity of the link

Kรถnig Theorem

Kinetic energy of a link

Page 12: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

ฯ‰๐‘–๐‘–๐‘–๐‘– = ๐‘๐‘๐‘–๐‘–๐‘‡๐‘‡ฯ‰๐‘–๐‘–

(symmetric matrix)

๐ˆ๐ˆ๐‘–๐‘– =

๏ฟฝ ๐‘Ÿ๐‘Ÿ๐‘–๐‘–๐‘–๐‘–2 + ๐‘Ÿ๐‘Ÿ๐‘–๐‘–๐‘–๐‘–2 ๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰ โˆ’๏ฟฝ๐‘Ÿ๐‘Ÿ๐‘–๐‘–๐‘–๐‘–๐‘Ÿ๐‘Ÿ๐‘–๐‘–๐‘–๐‘–๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰ โˆ’๏ฟฝ๐‘Ÿ๐‘Ÿ๐‘–๐‘–๐‘–๐‘–๐‘Ÿ๐‘Ÿ๐‘–๐‘–๐‘–๐‘–๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰

โˆ— ๏ฟฝ ๐‘Ÿ๐‘Ÿ๐‘–๐‘–๐‘–๐‘–2 + ๐‘Ÿ๐‘Ÿ๐‘–๐‘–๐‘–๐‘–2 ๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰ โˆ’๏ฟฝ๐‘Ÿ๐‘Ÿ๐‘–๐‘–๐‘–๐‘–๐‘Ÿ๐‘Ÿ๐‘–๐‘–๐‘–๐‘–๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰

โˆ— โˆ— ๏ฟฝ ๐‘Ÿ๐‘Ÿ๐‘–๐‘–๐‘–๐‘–2 + ๐‘Ÿ๐‘Ÿ๐‘–๐‘–๐‘–๐‘–2 ๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰

=๐ผ๐ผ๐‘–๐‘–๐‘–๐‘–๐‘–๐‘– โˆ’๐ผ๐ผ๐‘–๐‘–๐‘–๐‘–๐‘–๐‘– โˆ’๐ผ๐ผ๐‘–๐‘–๐‘–๐‘–๐‘–๐‘–โˆ— ๐ผ๐ผ๐‘–๐‘–๐‘–๐‘–๐‘–๐‘– โˆ’๐ผ๐ผ๐‘–๐‘–๐‘–๐‘–๐‘–๐‘–โˆ— โˆ— ๐ผ๐ผ๐‘–๐‘–๐‘–๐‘–๐‘–๐‘–

The inertia tensor, if expressed in the base frame, depends on the robot configuration. If the angular velocity is expressed with reference to a frame rigidly attached to the link (for example the DH frame):

the inertia tensor referred to this frame is a constant matrix. Moreover:

๐ˆ๐ˆ๐‘–๐‘– = ๐‘๐‘๐‘–๐‘–๐ˆ๐ˆ๐‘–๐‘–๐‘–๐‘–๐‘๐‘๐‘–๐‘–๐‘‡๐‘‡

We define inertia tensor the matrix:

Inertia tensor

Page 13: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Let us sum the translational and rotational contributions:

๐‘‡๐‘‡๐‘–๐‘– =12๐‘š๐‘š๐‘–๐‘–๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘™๐‘™๐‘–๐‘–

๐‘‡๐‘‡๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘™๐‘™๐‘–๐‘– +12ฯ‰๐‘–๐‘–๐‘‡๐‘‡๐‘๐‘๐‘–๐‘–๐ˆ๐ˆ๐‘–๐‘–๐‘–๐‘–๐‘๐‘๐‘–๐‘–๐‘‡๐‘‡ฯ‰๐‘–๐‘–

Linear velocity:

๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘™๐‘™๐‘–๐‘– = ๐ฃ๐ฃ๐‘ƒ๐‘ƒ1๐‘™๐‘™๐‘–๐‘– ๏ฟฝฬ‡๏ฟฝ๐‘ž1 + โ‹ฏ+ ๐ฃ๐ฃ๐‘ƒ๐‘ƒ๐‘–๐‘–

๐‘™๐‘™๐‘–๐‘– ๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘–๐‘– = ๐‰๐‰๐‘ƒ๐‘ƒ๐‘™๐‘™๐‘–๐‘– ๏ฟฝฬ‡๏ฟฝ๐ช ๐‰๐‰๐‘ƒ๐‘ƒ

๐‘™๐‘™๐‘–๐‘– = ๐ฃ๐ฃ๐‘ƒ๐‘ƒ1๐‘™๐‘™๐‘–๐‘– โ‹ฏ ๐ฃ๐ฃ๐‘ƒ๐‘ƒ๐‘–๐‘–

๐‘™๐‘™๐‘–๐‘– 0 โ‹ฏ 0

Angular velocity:

ฯ‰๐‘–๐‘– = ๐ฃ๐ฃ๐‘‚๐‘‚1๐‘™๐‘™๐‘–๐‘– ๏ฟฝฬ‡๏ฟฝ๐‘ž1 + โ‹ฏ+ ๐ฃ๐ฃ๐‘‚๐‘‚๐‘–๐‘–

๐‘™๐‘™๐‘–๐‘– ๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘–๐‘– = ๐‰๐‰๐‘‚๐‘‚๐‘™๐‘™๐‘–๐‘– ๏ฟฝฬ‡๏ฟฝ๐ช ๐‰๐‰๐‘‚๐‘‚

๐‘™๐‘™๐‘–๐‘– = ๐ฃ๐ฃ๐‘‚๐‘‚1๐‘™๐‘™๐‘–๐‘– โ‹ฏ ๐ฃ๐ฃ๐‘‚๐‘‚๐‘–๐‘–

๐‘™๐‘™๐‘–๐‘– 0 โ‹ฏ 0

Sum of the contributions

Page 14: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

๐ฃ๐ฃ๐‘ƒ๐‘ƒ๐‘ƒ๐‘ƒ๐‘™๐‘™๐‘–๐‘–

๐ฃ๐ฃ๐‘‚๐‘‚๐‘ƒ๐‘ƒ๐‘™๐‘™๐‘–๐‘–

=

๐ณ๐ณ๐‘ƒ๐‘ƒโˆ’10 prismatic joint

๐ณ๐ณ๐‘ƒ๐‘ƒโˆ’1 ร— ๐ฉ๐ฉ๐‘™๐‘™๐‘–๐‘– โˆ’ ๐ฉ๐ฉ๐‘ƒ๐‘ƒโˆ’1๐ณ๐ณ๐‘ƒ๐‘ƒโˆ’1

rotationa๐‘š joint

The Jacobians are computed column by column, accounting for the effect of the related joint velocity on the end effector linear and angular velocities.

Prismatic jointo Contribution of linear velocity along axis ๐ณ๐ณ๐‘ƒ๐‘ƒโˆ’1o No contribution of angular velocity

Rotational jointo Contribution of linear velocity at point ๐ฉ๐ฉ๐‘™๐‘™๐‘–๐‘– induced by a rotation around axis ๐ณ๐ณ๐‘ƒ๐‘ƒโˆ’1o Contribution of angular velocity around axis ๐ณ๐ณ๐‘ƒ๐‘ƒโˆ’1

Computation of the Jacobians

Page 15: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Substituting expressions for the linear and angular velocities:

๐‘‡๐‘‡๐‘–๐‘– =12๐‘š๐‘š๐‘–๐‘–๏ฟฝฬ‡๏ฟฝ๐ช๐‘‡๐‘‡๐‰๐‰๐‘ƒ๐‘ƒ

๐‘™๐‘™๐‘–๐‘– ๐‘‡๐‘‡๐‰๐‰๐‘ƒ๐‘ƒ๐‘™๐‘™๐‘–๐‘– ๏ฟฝฬ‡๏ฟฝ๐ช +

12๏ฟฝฬ‡๏ฟฝ๐ช๐‘‡๐‘‡๐‰๐‰๐‘‚๐‘‚

๐‘™๐‘™๐‘–๐‘– ๐‘‡๐‘‡๐‘๐‘๐‘–๐‘–๐ˆ๐ˆ๐‘–๐‘–๐‘–๐‘–๐‘๐‘๐‘–๐‘–๐‘‡๐‘‡๐‰๐‰๐‘‚๐‘‚๐‘™๐‘™๐‘–๐‘– ๏ฟฝฬ‡๏ฟฝ๐ช

By summing the contributions of all the links we obtain the kinetic energy of the whole arm:

๐‘‡๐‘‡ =12๏ฟฝ๐‘–๐‘–=1

๐‘›๐‘›

๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ ๐ช๐ช ๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘–๐‘–๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ =12๏ฟฝฬ‡๏ฟฝ๐ช๐‘‡๐‘‡๐๐ ๐ช๐ช ๏ฟฝฬ‡๏ฟฝ๐ช

where:

๐๐ ๐ช๐ช = ๏ฟฝ๐‘–๐‘–=1

๐‘›๐‘›

๐‘š๐‘š๐‘–๐‘–๐‰๐‰๐‘ƒ๐‘ƒ๐‘™๐‘™๐‘–๐‘– ๐‘‡๐‘‡๐‰๐‰๐‘ƒ๐‘ƒ

๐‘™๐‘™๐‘–๐‘– + ๐‰๐‰๐‘‚๐‘‚๐‘™๐‘™๐‘–๐‘– ๐‘‡๐‘‡๐‘๐‘๐‘–๐‘–๐ˆ๐ˆ๐‘–๐‘–๐‘–๐‘–๐‘๐‘๐‘–๐‘–๐‘‡๐‘‡๐‰๐‰๐‘‚๐‘‚

๐‘™๐‘™๐‘–๐‘–

is the inertia matrix of the manipulator.

๏ฟฝsymmetric

positive definite

depends on ๐ช๐ช

Inertia matrix

Page 16: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

The potential energy of a rigid link is related just to the gravitational force:

๐‘‘๐‘‘๐‘–๐‘– = โˆ’๏ฟฝ๐‘‰๐‘‰๐ ๐ 0๐‘‡๐‘‡๐ฉ๐ฉ๐‘–๐‘–โˆ—๐œŒ๐œŒ๐œŒ๐œŒ๐‘‰๐‘‰ = โˆ’๐‘š๐‘š๐‘–๐‘–๐ ๐ 0๐‘‡๐‘‡๐ฉ๐ฉ๐‘™๐‘™๐‘–๐‘–

where ๐ ๐ 0 is the gravity acceleration vector expressed in the base frame.

The potential energy of the whole manipulator is then the sum of the single contributions:

๐‘‘๐‘‘ = ๏ฟฝ๐‘–๐‘–=1

๐‘›๐‘›

๐‘‘๐‘‘๐‘–๐‘– = โˆ’๏ฟฝ๐‘–๐‘–=1

๐‘›๐‘›

๐‘š๐‘š๐‘–๐‘–๐ ๐ 0๐‘‡๐‘‡๐ฉ๐ฉ๐‘™๐‘™๐‘–๐‘–

Potential energy

Page 17: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

The Lagrangian of the manipulator is:

๐ฟ๐ฟ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช = ๐‘‡๐‘‡ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช โˆ’ ๐‘‘๐‘‘ ๐ช๐ช =12๏ฟฝ๐‘–๐‘–=1

๐‘›๐‘›

๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ ๐ช๐ช ๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘–๐‘–๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ + ๏ฟฝ๐‘–๐‘–=1

๐‘›๐‘›

๐‘š๐‘š๐‘–๐‘–๐ ๐ 0๐‘‡๐‘‡๐ฉ๐ฉ๐‘™๐‘™๐‘–๐‘– ๐ช๐ช

If we differentiate the Lagrangian:

Furthermore:

๐œ•๐œ•๐‘‘๐‘‘๐œ•๐œ•๐‘ž๐‘ž๐‘–๐‘–

= โˆ’๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๐‘š๐‘š๐‘ƒ๐‘ƒ๐ ๐ 0๐‘‡๐‘‡๐œ•๐œ•๐ฉ๐ฉ๐‘™๐‘™๐‘ƒ๐‘ƒ๐œ•๐œ•๐‘ž๐‘ž๐‘–๐‘–

= โˆ’๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๐‘š๐‘š๐‘ƒ๐‘ƒ๐ ๐ 0๐‘‡๐‘‡๐ฃ๐ฃ๐‘ƒ๐‘ƒ๐‘–๐‘–๐‘™๐‘™๐‘—๐‘— ๐ช๐ช = ๐‘š๐‘š๐‘–๐‘– ๐ช๐ช

๐œŒ๐œŒ๐œŒ๐œŒ๐‘‘๐‘‘

๐œ•๐œ•๐ฟ๐ฟ๐œ•๐œ•๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘–๐‘–

=๐œŒ๐œŒ๐œŒ๐œŒ๐‘‘๐‘‘

๐œ•๐œ•๐‘‡๐‘‡๐œ•๐œ•๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘–๐‘–

=๐œŒ๐œŒ๐œŒ๐œŒ๐‘‘๐‘‘

๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ ๐ช๐ช ๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ = ๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ ๐ช๐ช ๏ฟฝฬˆ๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ + ๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›๐œŒ๐œŒ๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ ๐ช๐ช๐œŒ๐œŒ๐‘‘๐‘‘ ๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ =

= ๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ ๐ช๐ช ๏ฟฝฬˆ๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ + ๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๏ฟฝ๐‘˜๐‘˜=1

๐‘›๐‘›๐œ•๐œ•๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ ๐ช๐ช๐œ•๐œ•๐‘ž๐‘ž๐‘˜๐‘˜

๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘˜๐‘˜ ๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ

๐œ•๐œ•๐‘‡๐‘‡๐œ•๐œ•๐‘ž๐‘ž๐‘–๐‘–

=12๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๏ฟฝ๐‘˜๐‘˜=1

๐‘›๐‘›๐œ•๐œ•๐‘๐‘๐‘ƒ๐‘ƒ๐‘˜๐‘˜ ๐ช๐ช๐œ•๐œ•๐‘ž๐‘ž๐‘–๐‘–

๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘˜๐‘˜๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ

Equations of motion

Page 18: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

From Lagrangeโ€™s equations we obtain:

where:

๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ ๐ช๐ช ๏ฟฝฬˆ๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ + ๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๏ฟฝ๐‘˜๐‘˜=1

๐‘›๐‘›

โ„Ž๐‘–๐‘–๐‘ƒ๐‘ƒ๐‘˜๐‘˜ ๐ช๐ช ๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘˜๐‘˜๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ + ๐‘š๐‘š๐‘–๐‘– ๐ช๐ช = ๐œ‰๐œ‰๐‘–๐‘– ๐‘–๐‘– = 1, โ€ฆ ,๐‘›๐‘›

โ„Ž๐‘–๐‘–๐‘ƒ๐‘ƒ๐‘˜๐‘˜ =๐œ•๐œ•๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ๐œ•๐œ•๐‘ž๐‘ž๐‘˜๐‘˜

โˆ’12๐œ•๐œ•๐‘๐‘๐‘ƒ๐‘ƒ๐‘˜๐‘˜๐œ•๐œ•๐‘ž๐‘ž๐‘–๐‘–

Acceleration terms:

๐‘๐‘๐‘–๐‘–๐‘–๐‘– : inertia moment as โ€œseenโ€ from the axis of joint ๐‘–๐‘–

๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ : effect of the acceleration of joint ๐‘—๐‘— on the joint ๐‘–๐‘–

Centrifugal and Coriolis terms:

โ„Ž๐‘–๐‘–๐‘ƒ๐‘ƒ๐‘ƒ๐‘ƒ๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ2 : centrifugal effect induced at joint ๐‘–๐‘– by the velocity of joint ๐‘—๐‘—

โ„Ž๐‘–๐‘–๐‘ƒ๐‘ƒ๐‘˜๐‘˜๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘˜๐‘˜: Coriolis effect induced at joint ๐‘–๐‘– by the vel. of joints ๐‘—๐‘— and ๐‘˜๐‘˜

gravitational term, depends only on the joint positions

โ„Ž๐‘–๐‘–๐‘–๐‘–๐‘–๐‘– = 0

๏ฟฝ

Equations of motion

Page 19: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Besides the gravitational conservative forces, other forces act on the manipulator: actuation torques

viscous friction torques

static friction torques

ฯ„

โˆ’๐…๐…๐‘ฃ๐‘ฃ๏ฟฝฬ‡๏ฟฝ๐ช

โˆ’๐Ÿ๐Ÿ๐‘ ๐‘  ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช

diagonal matrix of viscous friction coefficients๐…๐…๐‘ฃ๐‘ฃ

๐Ÿ๐Ÿ๐‘ ๐‘  ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช function that models the static friction at the joint

Non conservative forces

Page 20: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

In vector form the dynamic model can be expressed as follows:

๐๐ ๐ช๐ช ๏ฟฝฬˆ๏ฟฝ๐ช + ๐‚๐‚ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช ๏ฟฝฬ‡๏ฟฝ๐ช + ๐…๐…๐‘ฃ๐‘ฃ๏ฟฝฬ‡๏ฟฝ๐ช + ๐Ÿ๐Ÿ๐‘ ๐‘  ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช + ๐ ๐  ๐ช๐ช = ฯ„

where ๐‚๐‚ is a suitable ๐‘›๐‘› ร— ๐‘›๐‘› matrix, whose elements satisfy the equation:

๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ = ๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๏ฟฝ๐‘˜๐‘˜=1

๐‘›๐‘›

โ„Ž๐‘–๐‘–๐‘ƒ๐‘ƒ๐‘˜๐‘˜๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘˜๐‘˜๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ ๐‚๐‚ is not symmetric in general

Complete dynamic model

Page 21: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

The choice of matrix ๐‚๐‚ is not unique. One possible choice is the following one:

๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ = ๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๏ฟฝ๐‘˜๐‘˜=1

๐‘›๐‘›

โ„Ž๐‘–๐‘–๐‘ƒ๐‘ƒ๐‘˜๐‘˜๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘˜๐‘˜๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ = ๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๏ฟฝ๐‘˜๐‘˜=1

๐‘›๐‘›๐œ•๐œ•๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ๐œ•๐œ•๐‘ž๐‘ž๐‘˜๐‘˜

โˆ’12๐œ•๐œ•๐‘๐‘๐‘ƒ๐‘ƒ๐‘˜๐‘˜๐œ•๐œ•๐‘ž๐‘ž๐‘–๐‘–

๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘˜๐‘˜๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ =

=12๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๏ฟฝ๐‘˜๐‘˜=1

๐‘›๐‘›๐œ•๐œ•๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ๐œ•๐œ•๐‘ž๐‘ž๐‘˜๐‘˜

๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘˜๐‘˜๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ +12๏ฟฝ๐‘ƒ๐‘ƒ=1

๐‘›๐‘›

๏ฟฝ๐‘˜๐‘˜=1

๐‘›๐‘›๐œ•๐œ•๐‘๐‘๐‘–๐‘–๐‘˜๐‘˜๐œ•๐œ•๐‘ž๐‘ž๐‘ƒ๐‘ƒ

โˆ’๐œ•๐œ•๐‘๐‘๐‘ƒ๐‘ƒ๐‘˜๐‘˜๐œ•๐œ•๐‘ž๐‘ž๐‘–๐‘–

๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘˜๐‘˜๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ

The generic element of ๐‚๐‚ is:

๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ = ๏ฟฝ๐‘˜๐‘˜=1

๐‘›๐‘›

๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ๐‘˜๐‘˜๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘˜๐‘˜

๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ๐‘˜๐‘˜ =12

๐œ•๐œ•๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ๐œ•๐œ•๐‘ž๐‘ž๐‘˜๐‘˜

+๐œ•๐œ•๐‘๐‘๐‘–๐‘–๐‘˜๐‘˜๐œ•๐œ•๐‘ž๐‘ž๐‘ƒ๐‘ƒ

โˆ’๐œ•๐œ•๐‘๐‘๐‘ƒ๐‘ƒ๐‘˜๐‘˜๐œ•๐œ•๐‘ž๐‘ž๐‘–๐‘–

Christoffel symbols of the first kindwhere:

Computation of the elements of C

Page 22: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

The previous choice of matrix ๐‚๐‚ allows to prove an important property of the dynamic model of the manipulator. Matrix:

๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ =12 ๏ฟฝ๐‘˜๐‘˜=1

๐‘›๐‘›๐œ•๐œ•๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ๐œ•๐œ•๐‘ž๐‘ž๐‘˜๐‘˜

๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘˜๐‘˜ +12 ๏ฟฝ๐‘˜๐‘˜=1

๐‘›๐‘›๐œ•๐œ•๐‘๐‘๐‘–๐‘–๐‘˜๐‘˜๐œ•๐œ•๐‘ž๐‘ž๐‘ƒ๐‘ƒ

โˆ’๐œ•๐œ•๐‘๐‘๐‘ƒ๐‘ƒ๐‘˜๐‘˜๐œ•๐œ•๐‘ž๐‘ž๐‘–๐‘–

๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘˜๐‘˜ =12 ๏ฟฝฬ‡๏ฟฝ๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ

+12 ๏ฟฝ๐‘˜๐‘˜=1

๐‘›๐‘›๐œ•๐œ•๐‘๐‘๐‘–๐‘–๐‘˜๐‘˜๐œ•๐œ•๐‘ž๐‘ž๐‘ƒ๐‘ƒ

โˆ’๐œ•๐œ•๐‘๐‘๐‘ƒ๐‘ƒ๐‘˜๐‘˜๐œ•๐œ•๐‘ž๐‘ž๐‘–๐‘–

๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘˜๐‘˜

๐๐ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช = ๏ฟฝฬ‡๏ฟฝ๐ ๐ช๐ช โˆ’ 2๐‚๐‚ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช

is skew-symmetric:

๐ฐ๐ฐ๐‘‡๐‘‡๐๐ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช ๐ฐ๐ฐ = 0, โˆ€๐ฐ๐ฐ

In fact:

๐‘›๐‘›๐‘–๐‘–๐‘ƒ๐‘ƒ = ๏ฟฝฬ‡๏ฟฝ๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ โˆ’ 2๐‘๐‘๐‘–๐‘–๐‘ƒ๐‘ƒ = ๏ฟฝ๐‘˜๐‘˜=1

๐‘›๐‘›๐œ•๐œ•๐‘๐‘๐‘ƒ๐‘ƒ๐‘˜๐‘˜๐œ•๐œ•๐‘ž๐‘ž๐‘–๐‘–

โˆ’๐œ•๐œ•๐‘๐‘๐‘–๐‘–๐‘˜๐‘˜๐œ•๐œ•๐‘ž๐‘ž๐‘ƒ๐‘ƒ

๏ฟฝฬ‡๏ฟฝ๐‘ž๐‘˜๐‘˜ ๐‘›๐‘›๐‘–๐‘–๐‘ƒ๐‘ƒ = โˆ’๐‘›๐‘›๐‘ƒ๐‘ƒ๐‘–๐‘– (skew-symmetric)

Skew-symmetry of matrix ๏ฟฝฬ‡๏ฟฝ๐ โˆ’ 2๐‚๐‚

Page 23: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

The equation:

๏ฟฝฬ‡๏ฟฝ๐ช๐‘‡๐‘‡๐๐ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช ๏ฟฝฬ‡๏ฟฝ๐ช = 0

(particular case of the previous one) is valid whatever the choice of matrix ๐‚๐‚ is. From the energy conservation principle, the derivative of the kinetic energy equals the power generated by all the forces acting at the joint of the manipulator:

12๐œŒ๐œŒ๐œŒ๐œŒ๐‘‘๐‘‘ ๏ฟฝฬ‡๏ฟฝ๐ช๐‘‡๐‘‡๐๐ ๐ช๐ช ๏ฟฝฬ‡๏ฟฝ๐ช = ๏ฟฝฬ‡๏ฟฝ๐ช๐‘‡๐‘‡ ฯ„ โˆ’ ๐…๐…๐‘ฃ๐‘ฃ๏ฟฝฬ‡๏ฟฝ๐ช โˆ’ ๐Ÿ๐Ÿ๐‘ ๐‘  ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช โˆ’ ๐ ๐  ๐ช๐ช

Taking the derivative at the left hand side and using the equation of the model:

12๐œŒ๐œŒ๐œŒ๐œŒ๐‘‘๐‘‘ ๏ฟฝฬ‡๏ฟฝ๐ช๐‘‡๐‘‡๐๐ ๐ช๐ช ๏ฟฝฬ‡๏ฟฝ๐ช =

12 ๏ฟฝฬ‡๏ฟฝ๐ช

๐‘‡๐‘‡๏ฟฝฬ‡๏ฟฝ๐ ๐ช๐ช ๏ฟฝฬ‡๏ฟฝ๐ช + ๏ฟฝฬ‡๏ฟฝ๐ช๐‘‡๐‘‡๐๐ ๐ช๐ช ๏ฟฝฬˆ๏ฟฝ๐ช =12 ๏ฟฝฬ‡๏ฟฝ๐ช

๐‘‡๐‘‡ ๏ฟฝฬ‡๏ฟฝ๐ ๐ช๐ช โˆ’ 2๐‚๐‚ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช ๏ฟฝฬ‡๏ฟฝ๐ช + ๏ฟฝฬ‡๏ฟฝ๐ช๐‘‡๐‘‡ ฯ„ โˆ’ ๐…๐…๐‘ฃ๐‘ฃ๏ฟฝฬ‡๏ฟฝ๐ช โˆ’ ๐Ÿ๐Ÿ๐‘ ๐‘  ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช โˆ’ ๐ ๐  ๐ช๐ช

from which the equation follows.

Energy conservation

Page 24: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

If we assume a simplified expression for the static friction function:

๐Ÿ๐Ÿ๐‘ ๐‘  ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช = ๐…๐…๐‘ ๐‘  sgn ๏ฟฝฬ‡๏ฟฝ๐ช

ฯ€: vector of ๐‘๐‘ constant parameters

๐˜๐˜ : ๐‘›๐‘› ร— ๐‘๐‘ matrix, function of joint positions, velocities and accelerations (regression matrix)

ฯ„ = ๐˜๐˜ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช, ๏ฟฝฬˆ๏ฟฝ๐ช ฯ€

it is possible to prove that the dynamic model of the manipulator is linear with respect to a suitable set of dynamic parameters (masses, moments of inertia)We can then write:

Linearity in the dynamical parameters

Page 25: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Consider a two-link Cartesian manipulator, characterized by link masses ๐‘š๐‘š1 and ๐‘š๐‘š2.The vector of generalized coordinates is:

The Jacobians needed for the computation of the inertia matrix are:

๐ช๐ช = ๐œŒ๐œŒ1๐œŒ๐œŒ2

๐‰๐‰๐‘ƒ๐‘ƒ๐‘™๐‘™1 = ๐ฃ๐ฃ๐‘ƒ๐‘ƒ1

๐‘™๐‘™1 0 = ๐ณ๐ณ0 0 =0 00 01 0

๐‰๐‰๐‘ƒ๐‘ƒ๐‘™๐‘™2 = ๐ฃ๐ฃ๐‘ƒ๐‘ƒ1

๐‘™๐‘™2 ๐ฃ๐ฃ๐‘ƒ๐‘ƒ2๐‘™๐‘™2 = ๐ณ๐ณ0 ๐ณ๐ณ1 =

0 10 01 0

while there are no contributions to the angular velocities.

x0

z0

z1

m1

m2

d1

d2

Two-link Cartesian manipulator

Page 26: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Computing the inertia matrix with the general formula, we obtain:

As ๐๐ is constant, ๐‚๐‚ = 0, i.e. there are no centrifugal and Coriolis terms.Then, since:

the vector of the gravitational terms is:

๐ ๐ 0 =00โˆ’๐‘š๐‘š

๐๐ = ๐‘š๐‘š1๐‰๐‰๐‘ƒ๐‘ƒ๐‘™๐‘™1 ๐‘‡๐‘‡๐‰๐‰๐‘ƒ๐‘ƒ

๐‘™๐‘™1 + ๐‘š๐‘š2๐‰๐‰๐‘ƒ๐‘ƒ๐‘™๐‘™2 ๐‘‡๐‘‡๐‰๐‰๐‘ƒ๐‘ƒ

๐‘™๐‘™2 = ๐‘š๐‘š1 + ๐‘š๐‘š2 00 ๐‘š๐‘š2

๐ ๐  = ๐‘š๐‘š1 + ๐‘š๐‘š2 ๐‘š๐‘š0

Two-link Cartesian manipulator

Page 27: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

If there are no friction torques and no forces at the end-effector:

๐‘š๐‘š1 + ๐‘š๐‘š2 ๏ฟฝฬˆ๏ฟฝ๐œŒ1 + ๐‘š๐‘š1 + ๐‘š๐‘š2 ๐‘š๐‘š = ๐‘“๐‘“1๐‘š๐‘š2๏ฟฝฬˆ๏ฟฝ๐œŒ2 = ๐‘“๐‘“2

๐‘“๐‘“1 e ๐‘“๐‘“2 : forces which act along the generalized coordinates

Two-link Cartesian manipulator

Page 28: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Let us consider a two-link planar manipulator: masses: ๐‘š๐‘š1 and ๐‘š๐‘š2 lengths: ๐‘Ž๐‘Ž1 and ๐‘Ž๐‘Ž2 distances of the centers of mass from the joint axes: ๐‘™๐‘™1 and ๐‘™๐‘™2 moments of inertia around axes passing through the centers of

mass and parallel to ๐ณ๐ณ0 : ๐ผ๐ผ1 and ๐ผ๐ผ2

๐ช๐ช = ๐œ—๐œ—1๐œ—๐œ—2

m1, I1

m2, I2

a1

a2

ฯ‘1

ฯ‘2

l1

l2

x0

y0

The Jacobians needed for the computation of the inertia matrix depend on the following vectors:

๐ฉ๐ฉ๐‘™๐‘™1 =๐‘š1๐‘๐‘1๐‘š1๐‘ ๐‘ 1

0, ๐ฉ๐ฉ๐‘™๐‘™2 =

๐‘Ž๐‘Ž1๐‘๐‘1 + ๐‘š2๐‘๐‘12๐‘Ž๐‘Ž1๐‘ ๐‘ 1 + ๐‘š2๐‘ ๐‘ 12

0, ๐ฉ๐ฉ0 =

000

, ๐ฉ๐ฉ1 =๐‘Ž๐‘Ž1๐‘๐‘1๐‘Ž๐‘Ž1๐‘ ๐‘ 1

0

Generalized coordinates:

๐ณ๐ณ0 = ๐ณ๐ณ1 =001

Two-link planar manipulator

Page 29: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Link 1

๐‰๐‰๐‘ƒ๐‘ƒ๐‘™๐‘™1 = ๐ฃ๐ฃ๐‘ƒ๐‘ƒ1

๐‘™๐‘™1 0 = ๐ณ๐ณ0 ร— ๐ฉ๐ฉ๐‘™๐‘™1 โˆ’ ๐ฉ๐ฉ0 0 =โˆ’๐‘š1๐‘ ๐‘ 1 0๐‘š1๐‘๐‘1 0

0 0

๐‰๐‰๐‘‚๐‘‚๐‘™๐‘™1 = ๐ฃ๐ฃ๐‘‚๐‘‚1

๐‘™๐‘™1 0 = ๐ณ๐ณ0 0 =0 00 01 0

Link 2

๐‰๐‰๐‘ƒ๐‘ƒ๐‘™๐‘™2 = ๐ฃ๐ฃ๐‘ƒ๐‘ƒ1

๐‘™๐‘™2 ๐ฃ๐ฃ๐‘ƒ๐‘ƒ2๐‘™๐‘™2 = ๐ณ๐ณ0 ร— ๐ฉ๐ฉ๐‘™๐‘™2 โˆ’ ๐ฉ๐ฉ0 ๐ณ๐ณ1 ร— ๐ฉ๐ฉ๐‘™๐‘™2 โˆ’ ๐ฉ๐ฉ1 =

โˆ’๐‘Ž๐‘Ž1๐‘ ๐‘ 1 โˆ’ ๐‘š2๐‘ ๐‘ 12 โˆ’๐‘š2๐‘ ๐‘ 12๐‘Ž๐‘Ž1๐‘๐‘1 + ๐‘š2๐‘๐‘12 ๐‘š2๐‘๐‘12

0 0

๐‰๐‰๐‘‚๐‘‚๐‘™๐‘™2 = ๐ฃ๐ฃ๐‘‚๐‘‚1

๐‘™๐‘™2 ๐ฃ๐ฃ๐‘‚๐‘‚2๐‘™๐‘™2 = ๐ณ๐ณ0 ๐ณ๐ณ1 =

0 00 01 1

Two-link planar manipulator

Page 30: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Taking into account that the angular velocity vectors ๐›š๐›š1 and ๐›š๐›š2 are aligned with ๐ณ๐ณ0 it is not necessary to compute rotation matrices ๐‘๐‘๐‘–๐‘– , so that the computation of the inertia matrix gives:

๐๐ ๐ช๐ช = ๐‘š๐‘š1๐‰๐‰๐‘ƒ๐‘ƒ๐‘™๐‘™1 ๐‘‡๐‘‡๐‰๐‰๐‘ƒ๐‘ƒ

๐‘™๐‘™1 + ๐‘š๐‘š2๐‰๐‰๐‘ƒ๐‘ƒ๐‘™๐‘™2 ๐‘‡๐‘‡๐‰๐‰๐‘ƒ๐‘ƒ

๐‘™๐‘™2 + ๐ผ๐ผ1๐‰๐‰๐‘‚๐‘‚๐‘™๐‘™1 ๐‘‡๐‘‡๐‰๐‰๐‘‚๐‘‚

๐‘™๐‘™1 + ๐ผ๐ผ2๐‰๐‰๐‘‚๐‘‚๐‘™๐‘™2 ๐‘‡๐‘‡๐‰๐‰๐‘‚๐‘‚

๐‘™๐‘™2 = ๐‘๐‘11 ๐œ—๐œ— ๐‘๐‘12 ๐œ—๐œ—๐‘๐‘21 ๐œ—๐œ— ๐‘๐‘22

depends on ฯ‘2depends on ฯ‘2constant!

Two-link planar manipulator

๐‘๐‘11 = ๐‘š๐‘š1๐‘š12 + ๐ผ๐ผ1 + ๐‘š๐‘š2 ๐‘Ž๐‘Ž12 + ๐‘š22 + 2๐‘Ž๐‘Ž1๐‘š2๐‘๐‘2 + ๐ผ๐ผ2๐‘๐‘12 = ๐‘๐‘21 = ๐‘š๐‘š2 ๐‘š22 + ๐‘Ž๐‘Ž1๐‘š2๐‘๐‘2 + ๐ผ๐ผ2๐‘๐‘22 = ๐‘š๐‘š2๐‘š22 + ๐ผ๐ผ2

Page 31: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

From the inertia matrix it is simple to compute the Christoffel symbols:

๐‘๐‘111 =12๐œ•๐œ•๐‘๐‘11๐œ•๐œ•๐‘ž๐‘ž1

= 0

๐‘๐‘112 = ๐‘๐‘121 =12๐œ•๐œ•๐‘๐‘11๐œ•๐œ•๐‘ž๐‘ž2

= โˆ’๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2 = โ„Ž

๐‘๐‘122 =๐œ•๐œ•๐‘๐‘12๐œ•๐œ•๐‘ž๐‘ž2

โˆ’12๐œ•๐œ•๐‘๐‘22๐œ•๐œ•๐‘ž๐‘ž1

= โˆ’๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2 = โ„Ž

๐‘๐‘211 =๐œ•๐œ•๐‘๐‘21๐œ•๐œ•๐‘ž๐‘ž1

โˆ’12๐œ•๐œ•๐‘๐‘11๐œ•๐œ•๐‘ž๐‘ž2

= ๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2 = โˆ’โ„Ž

๐‘๐‘212 = ๐‘๐‘221 =12๐œ•๐œ•๐‘๐‘22๐œ•๐œ•๐‘ž๐‘ž1

= 0

๐‘๐‘222 =12๐œ•๐œ•๐‘๐‘22๐œ•๐œ•๐‘ž๐‘ž2

= 0

โ„Ž = โˆ’๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2

Two-link planar manipulator

Page 32: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

The expression of matrix ๐‚๐‚ is then:

๐‚๐‚ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช =โ„Ž๏ฟฝฬ‡๏ฟฝ๐œ—2 โ„Ž ๏ฟฝฬ‡๏ฟฝ๐œ—1 + ๏ฟฝฬ‡๏ฟฝ๐œ—2โˆ’โ„Ž๏ฟฝฬ‡๏ฟฝ๐œ—1 0

=โˆ’๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—2 โˆ’๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2 ๏ฟฝฬ‡๏ฟฝ๐œ—1 + ๏ฟฝฬ‡๏ฟฝ๐œ—2๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—1 0

We can verify that matrix ๐๐ is skew-symmetric:

๐๐ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช = ๏ฟฝฬ‡๏ฟฝ๐ ๐ช๐ช โˆ’ 2๐‚๐‚ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช

= 2โ„Ž๏ฟฝฬ‡๏ฟฝ๐œ—2 โ„Ž๏ฟฝฬ‡๏ฟฝ๐œ—2โ„Ž๏ฟฝฬ‡๏ฟฝ๐œ—2 0

โˆ’ 2โ„Ž๏ฟฝฬ‡๏ฟฝ๐œ—2 โ„Ž ๏ฟฝฬ‡๏ฟฝ๐œ—1 + ๏ฟฝฬ‡๏ฟฝ๐œ—2โˆ’โ„Ž๏ฟฝฬ‡๏ฟฝ๐œ—1 0

=

= 0 โˆ’2โ„Ž๏ฟฝฬ‡๏ฟฝ๐œ—1 โˆ’ โ„Ž๏ฟฝฬ‡๏ฟฝ๐œ—22โ„Ž๏ฟฝฬ‡๏ฟฝ๐œ—1 + โ„Ž๏ฟฝฬ‡๏ฟฝ๐œ—2 0

= โˆ’๐๐๐‘‡๐‘‡ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช

Furthermore, since ๐ ๐ 0 =0โˆ’๐‘š๐‘š0

, the

vector of the gravitational terms is:๐ ๐  = ๐‘š๐‘š1๐‘š1 + ๐‘š๐‘š2๐‘Ž๐‘Ž1 ๐‘š๐‘š๐‘๐‘1 + ๐‘š๐‘š2๐‘š๐‘š๐‘š2๐‘๐‘12

๐‘š๐‘š2๐‘š๐‘š๐‘š2๐‘๐‘12

Two-link planar manipulator

Page 33: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

๐œ๐œ๐‘–๐‘– : torques applied at the joints

๐‘š๐‘š1๐‘š12 + ๐ผ๐ผ1 + ๐‘š๐‘š2 ๐‘Ž๐‘Ž12 + ๐‘š22 + 2๐‘Ž๐‘Ž1๐‘š2๐‘๐‘2 + ๐ผ๐ผ2 ๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๐‘š๐‘š2 ๐‘š22 + ๐‘Ž๐‘Ž1๐‘š2๐‘๐‘2 + ๐ผ๐ผ2 ๏ฟฝฬˆ๏ฟฝ๐œ—2 +โˆ’2๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—1๏ฟฝฬ‡๏ฟฝ๐œ—2 โˆ’ ๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—22 ++ ๐‘š๐‘š1๐‘š1 + ๐‘š๐‘š2๐‘Ž๐‘Ž1 ๐‘š๐‘š๐‘๐‘1 + ๐‘š๐‘š2๐‘š๐‘š๐‘š2๐‘๐‘12 = ๐œ๐œ1

๐‘š๐‘š2 ๐‘š22 + ๐‘Ž๐‘Ž1๐‘š2๐‘๐‘2 + ๐ผ๐ผ2 ๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๐‘š๐‘š2๐‘š22 + ๐ผ๐ผ2 ๏ฟฝฬˆ๏ฟฝ๐œ—2 ++๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—1

2 + ๐‘š๐‘š2๐‘š2๐‘š๐‘š๐‘๐‘12 = ๐œ๐œ2

Without friction at the joints, the equations of motion are:

Two-link planar manipulator

Page 34: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

By simple inspection, we can obtain the dynamical parameters with respect to which the model is linear, i.e. those parameters for which we can write:

ฯ„ = ๐˜๐˜ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช, ๏ฟฝฬˆ๏ฟฝ๐ช ฯ€

We have:

ฯ€ = ๐œ‹๐œ‹1 ๐œ‹๐œ‹2 ๐œ‹๐œ‹3 ๐œ‹๐œ‹4 ๐œ‹๐œ‹5 ๐‘‡๐‘‡

๐œ‹๐œ‹1 = ๐‘š๐‘š1๐‘š1๐œ‹๐œ‹2 = ๐ผ๐ผ1 + ๐‘š๐‘š1๐‘š12๐œ‹๐œ‹3 = ๐‘š๐‘š2๐œ‹๐œ‹4 = ๐‘š๐‘š2๐‘š2๐œ‹๐œ‹5 = ๐ผ๐ผ2 + ๐‘š๐‘š2๐‘š22

Two-link planar manipulator

Page 35: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

๐‘ฆ๐‘ฆ11 = ๐‘š๐‘š๐‘๐‘1๐‘ฆ๐‘ฆ12 = ๏ฟฝฬˆ๏ฟฝ๐œ—1๐‘ฆ๐‘ฆ13 = ๐‘Ž๐‘Ž12๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๐‘Ž๐‘Ž1๐‘š๐‘š๐‘๐‘1๐‘ฆ๐‘ฆ14 = 2๐‘Ž๐‘Ž1๐‘๐‘2๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๐‘Ž๐‘Ž1๐‘๐‘2๏ฟฝฬˆ๏ฟฝ๐œ—2 โˆ’ 2๐‘Ž๐‘Ž1๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—1๏ฟฝฬ‡๏ฟฝ๐œ—2 โˆ’ ๐‘Ž๐‘Ž1๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—22 + ๐‘š๐‘š๐‘๐‘12๐‘ฆ๐‘ฆ15 = ๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๏ฟฝฬˆ๏ฟฝ๐œ—2๐‘ฆ๐‘ฆ24 = ๐‘Ž๐‘Ž1๐‘๐‘2๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๐‘Ž๐‘Ž1๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—12 + ๐‘š๐‘š๐‘๐‘12๐‘ฆ๐‘ฆ25 = ๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๏ฟฝฬˆ๏ฟฝ๐œ—2

๐˜๐˜ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช, ๏ฟฝฬˆ๏ฟฝ๐ช =๐‘ฆ๐‘ฆ11 ๐‘ฆ๐‘ฆ12 ๐‘ฆ๐‘ฆ13 ๐‘ฆ๐‘ฆ14 ๐‘ฆ๐‘ฆ150 0 0 ๐‘ฆ๐‘ฆ24 ๐‘ฆ๐‘ฆ25

The coefficients of ๐˜๐˜ depend on ๐œ—๐œ—1, ๐œ—๐œ—2, their first and second derivatives, ๐‘š๐‘š and ๐‘Ž๐‘Ž1.

Two-link planar manipulator

Page 36: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

The linearity of the dynamic model with respect to the dynamical parameters:

ฯ„ = ๐˜๐˜ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช, ๏ฟฝฬˆ๏ฟฝ๐ช ฯ€

allows to setup a procedure for the experimental identification of the same parameters, which are usually unknown or uncertain.

Suitable motion trajectories must be executed, along which the joint positions ๐ช๐ช are recorded, the velocities ๏ฟฝฬ‡๏ฟฝ๐ช are measured or obtained by numerical differentiation, and the accelerations ๏ฟฝฬˆ๏ฟฝ๐ช are obtained with filtered (also non-causal) differentiation.Also the torques ฯ„ are measured, directly (with suitable sensors) or indirectly, from the measurements of currents in the motors.

Suppose to have the measurements (direct or indirect ones) of all the variables for the time instants ๐‘‘๐‘‘1, ๐‘‘๐‘‘2,โ‹ฏ , ๐‘‘๐‘‘๐‘๐‘

Identification of dynamical parameters

Page 37: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

With N measurement sets:

ฯ„ฬ„ =ฯ„ฬ„ ๐‘‘๐‘‘1โ‹ฎ

ฯ„ฬ„ ๐‘‘๐‘‘๐‘๐‘=

๐˜๐˜ ๐‘‘๐‘‘1โ‹ฎ

๐˜๐˜ ๐‘‘๐‘‘๐‘๐‘ฯ€ = ๏ฟฝฬ„๏ฟฝ๐˜ฯ€

Solving with a least-squares technique:

ฯ€ = ๏ฟฝฬ„๏ฟฝ๐˜๐‘‡๐‘‡๏ฟฝฬ„๏ฟฝ๐˜ โˆ’1๏ฟฝฬ„๏ฟฝ๐˜๐‘‡๐‘‡ฯ„ฬ„ Left pseudo-inverse matrix of ๏ฟฝฬ„๏ฟฝ๐˜

Only the elements of ฯ€ for which the corresponding column is different from zero can be identified.

Some parameters are identifiable only in combination with other ones. The trajectories to be used must be sufficiently rich (good conditioning of matrix ๏ฟฝฬ„๏ฟฝ๐˜๐‘‡๐‘‡๏ฟฝฬ„๏ฟฝ๐˜): they

need to involve all components in the dynamic model

Identification of dynamical parameters

Page 38: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

An alternative way to formulate the dynamic model of the manipulator is the Newton-Euler method.It is based on balances of forces and moments acting on the single link, due to the interactions with the nearby links in the kinematic chain.

We obtain a system of equations that might be solved in a recursive way, propagating the velocities and accelerations from the base to the end effector, while the forces and moments in the opposite way:

Recursion makes Newton-Euler algorithm computationally efficient.

velo

cities

acce

lerati

ons

forc

esm

omen

ts

Newton-Euler formulation

Page 39: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Let us consider the generic link i of the kinematic chain:

๐‘š๐‘š๐‘–๐‘– and ๐ˆ๐ˆ๐‘–๐‘– mass and inertia tensor of the link๐ซ๐ซ๐‘–๐‘–โˆ’1,๐ถ๐ถ๐‘–๐‘– vector from the origin of frame (๐‘–๐‘– โˆ’ 1) to the center of mass ๐ถ๐ถ๐‘–๐‘–๐ซ๐ซ๐‘–๐‘–,๐ถ๐ถ๐‘–๐‘– vector from the origin of frame ๐‘–๐‘– to the center of mass ๐ถ๐ถ๐‘–๐‘–๐ซ๐ซ๐‘–๐‘–โˆ’1,๐‘–๐‘– vector from the origin of frame (๐‘–๐‘– โˆ’ 1) to the origin of frame ๐‘–๐‘–

We define the following parameters:

This picture is taken from the textbook:

B. Siciliano, L. Sciavicco, L. Villani, G. Oriolo: Robotics: Modelling, Planning and Control, 3rd Ed. Springer, 2009

Definition of the parameters

Page 40: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

๏ฟฝฬ‡๏ฟฝ๐ฉ๐ถ๐ถ๐‘–๐‘– linear velocity of the center of mass ๐ถ๐ถ๐‘–๐‘–๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘–๐‘– linear velocity of the origin of frame ๐‘–๐‘–ฯ‰๐‘–๐‘– angular velocity of the link๏ฟฝฬˆ๏ฟฝ๐ฉ๐ถ๐ถ๐‘–๐‘– linear acceleration of the center of mass ๐ถ๐ถ๐‘–๐‘–๏ฟฝฬˆ๏ฟฝ๐ฉ๐‘–๐‘– linear acceleration of the origin of frame ๐‘–๐‘–ฯ‰ฬ‡๐‘–๐‘– angular acceleration of the link๐ ๐ 0 gravity acceleration๐Ÿ๐Ÿ๐‘–๐‘– force exerted by link ๐‘–๐‘– โˆ’ 1 on link ๐‘–๐‘–โˆ’๐Ÿ๐Ÿ๐‘–๐‘–+1 force exerted by link ๐‘–๐‘– + 1 on link ๐‘–๐‘–ฮผ๐‘–๐‘– moment exerted by link ๐‘–๐‘– โˆ’ 1 on link ๐‘–๐‘– with respect to the origin of frame ๐‘–๐‘– โˆ’ 1โˆ’ฮผ๐‘–๐‘–+1 moment exerted by link ๐‘–๐‘– + 1 on link ๐‘–๐‘– with respect to the origin of frame ๐‘–๐‘–All vectors are expressed in the base frame.

Definition of the variables

Page 41: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Newtonโ€™s equation (translational motion of the center of mass)

๐Ÿ๐Ÿ๐‘–๐‘– โˆ’ ๐Ÿ๐Ÿ๐‘–๐‘–+1 + ๐‘š๐‘š๐‘–๐‘–๐ ๐ 0 = ๐‘š๐‘š๐‘–๐‘–๏ฟฝฬˆ๏ฟฝ๐ฉ๐ถ๐ถ๐‘–๐‘–

Eulerโ€™s equation (rotational motion)

ฮผ๐‘–๐‘– + ๐Ÿ๐Ÿ๐‘–๐‘– ร— ๐ซ๐ซ๐‘–๐‘–โˆ’1,๐ถ๐ถ๐‘–๐‘– โˆ’ ฮผ๐‘–๐‘–+1 โˆ’ ๐Ÿ๐Ÿ๐‘–๐‘–+1 ร— ๐ซ๐ซ๐‘–๐‘–,๐ถ๐ถ๐‘–๐‘– =๐œŒ๐œŒ๐œŒ๐œŒ๐‘‘๐‘‘

๐ˆ๐ˆ๐‘–๐‘–ฯ‰๐‘–๐‘– = ๐ˆ๐ˆ๐‘–๐‘–ฯ‰ฬ‡๐‘–๐‘– + ฯ‰๐‘–๐‘– ร— ๐ˆ๐ˆ๐‘–๐‘–ฯ‰๐‘–๐‘–

Generalized force at joint ๐‘–๐‘–:

it can be proven gyroscopic effect

๐œ๐œ๐‘–๐‘– = ๏ฟฝ๐Ÿ๐Ÿ๐‘–๐‘–๐‘‡๐‘‡๐ณ๐ณ๐‘–๐‘–โˆ’1 prismatic jointฮผ๐‘–๐‘–๐‘‡๐‘‡๐ณ๐ณ๐‘–๐‘–โˆ’1 rotationa๐‘š joint

Newton-Euler formulation

Page 42: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Propagation of the velocities:

ฯ‰๐‘–๐‘– = ๏ฟฝฯ‰๐‘–๐‘–โˆ’1 prismatic joint

ฯ‰๐‘–๐‘–โˆ’1 + ๏ฟฝฬ‡๏ฟฝ๐œ—๐‘–๐‘–๐ณ๐ณ๐‘–๐‘–โˆ’1 rotationa๐‘š joint

๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘–๐‘– = ๏ฟฝ๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘–๐‘–โˆ’1 + ๏ฟฝฬ‡๏ฟฝ๐œŒ๐‘–๐‘–๐ณ๐ณ๐‘–๐‘–โˆ’1 + ฯ‰๐‘–๐‘– ร— ๐ซ๐ซ๐‘–๐‘–โˆ’1,๐‘–๐‘– prismatic joint๏ฟฝฬ‡๏ฟฝ๐ฉ๐‘–๐‘–โˆ’1 + ฯ‰๐‘–๐‘– ร— ๐ซ๐ซ๐‘–๐‘–โˆ’1,๐‘–๐‘– rotationa๐‘š joint

Propagation of the accelerations:

ฯ‰ฬ‡๐‘–๐‘– = ๏ฟฝฯ‰ฬ‡๐‘–๐‘–โˆ’1 prismatic joint

ฯ‰ฬ‡๐‘–๐‘–โˆ’1 + ๏ฟฝฬˆ๏ฟฝ๐œ—๐‘–๐‘–๐ณ๐ณ๐‘–๐‘–โˆ’1 + ๏ฟฝฬ‡๏ฟฝ๐œ—๐‘–๐‘–ฯ‰๐‘–๐‘–โˆ’1 ร— ๐ณ๐ณ๐‘–๐‘–โˆ’1 rotationa๐‘š joint

๏ฟฝฬˆ๏ฟฝ๐ฉ๐‘–๐‘– = ๏ฟฝ๏ฟฝฬˆ๏ฟฝ๐ฉ๐‘–๐‘–โˆ’1 + ๏ฟฝฬˆ๏ฟฝ๐œŒ๐‘–๐‘–๐ณ๐ณ๐‘–๐‘–โˆ’1 + 2๏ฟฝฬ‡๏ฟฝ๐œŒ๐‘–๐‘–ฯ‰๐‘–๐‘– ร— ๐ณ๐ณ๐‘–๐‘–โˆ’1 + ฯ‰ฬ‡๐‘–๐‘– ร— ๐ซ๐ซ๐‘–๐‘–โˆ’1,๐‘–๐‘– + ฯ‰๐‘–๐‘– ร— ฯ‰๐‘–๐‘– ร— ๐ซ๐ซ๐‘–๐‘–โˆ’1,๐‘–๐‘– prismatic joint

๏ฟฝฬˆ๏ฟฝ๐ฉ๐‘–๐‘–โˆ’1 + ฯ‰ฬ‡๐‘–๐‘– ร— ๐ซ๐ซ๐‘–๐‘–โˆ’1,๐‘–๐‘– + ฯ‰๐‘–๐‘– ร— ฯ‰๐‘–๐‘– ร— ๐ซ๐ซ๐‘–๐‘–โˆ’1,๐‘–๐‘– rotationa๐‘š joint

๏ฟฝฬˆ๏ฟฝ๐ฉ๐ถ๐ถ๐‘–๐‘– = ๏ฟฝฬˆ๏ฟฝ๐ฉ๐‘–๐‘– + ฯ‰ฬ‡๐‘–๐‘– ร— ๐ซ๐ซ๐‘–๐‘–,๐ถ๐ถ๐‘–๐‘– + ฯ‰๐‘–๐‘– ร— ฯ‰๐‘–๐‘– ร— ๐ซ๐ซ๐‘–๐‘–,๐ถ๐ถ๐‘–๐‘– center of mass

Note: derivative of a vector ๐š๐š๐‘–๐‘–attached to the moving frame ๐‘–๐‘–

๐œŒ๐œŒ๐œŒ๐œŒ๐‘‘๐‘‘๐š๐š๐‘–๐‘– ๐‘‘๐‘‘ =

๐œŒ๐œŒ๐œŒ๐œŒ๐‘‘๐‘‘๐‘๐‘๐‘–๐‘– ๐‘‘๐‘‘ ๐š๐š๐‘–๐‘–๐‘–๐‘– =

= ๐‘†๐‘† ฯ‰๐‘–๐‘– ๐‘‘๐‘‘ ๐‘๐‘๐‘–๐‘– ๐‘‘๐‘‘ ๐š๐š๐‘–๐‘–๐‘–๐‘– = ฯ‰๐‘–๐‘– ๐‘‘๐‘‘ ร— ๐š๐š๐‘–๐‘– ๐‘‘๐‘‘

Accelerations of a link

Page 43: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

A forward recursion of velocities and accelerations is made: initial conditions on ฯ‰0, ๏ฟฝฬˆ๏ฟฝ๐ฉ0 โˆ’ ๐ ๐ 0, ฯ‰ฬ‡0

computation of ฯ‰๐‘–๐‘– , ฯ‰ฬ‡๐‘–๐‘– , ๏ฟฝฬˆ๏ฟฝ๐ฉ๐‘–๐‘– , ๏ฟฝฬˆ๏ฟฝ๐ฉ๐ถ๐ถ๐‘–๐‘–A backward recursion of forces and moments is made:

terminal conditions on ๐Ÿ๐Ÿ๐‘›๐‘›+1 and ฮผ๐‘›๐‘›+1 computations:

๐Ÿ๐Ÿ๐‘–๐‘– = ๐Ÿ๐Ÿ๐‘–๐‘–+1 + ๐‘š๐‘š๐‘–๐‘–๏ฟฝฬˆ๏ฟฝ๐ฉ๐ถ๐ถ๐‘–๐‘–ฮผ๐‘–๐‘– = โˆ’๐Ÿ๐Ÿ๐‘–๐‘– ร— ๐ซ๐ซ๐‘–๐‘–โˆ’1,๐‘–๐‘– + ๐ซ๐ซ๐‘–๐‘–,๐ถ๐ถ๐‘–๐‘– + ฮผ๐‘–๐‘–+1 + ๐Ÿ๐Ÿ๐‘–๐‘–+1 ร— ๐ซ๐ซ๐‘–๐‘–,๐ถ๐ถ๐‘–๐‘– + ๐ˆ๐ˆ๐‘–๐‘–ฯ‰ฬ‡๐‘–๐‘– + ฯ‰๐‘–๐‘– ร— ๐ˆ๐ˆ๐‘–๐‘–ฯ‰๐‘–๐‘–

The generalized force at joint ๐‘–๐‘– (including friction contributions) is computed:

๐œ๐œ๐‘–๐‘– = ๏ฟฝ๐Ÿ๐Ÿ๐‘–๐‘–๐‘‡๐‘‡๐ณ๐ณ๐‘–๐‘–โˆ’1 + ๐น๐น๐‘ฃ๐‘ฃ๐‘–๐‘–๏ฟฝฬ‡๏ฟฝ๐œŒ๐‘–๐‘– + ๐‘“๐‘“๐‘ ๐‘ ๐‘–๐‘– prismatic jointฮผ๐‘–๐‘–๐‘‡๐‘‡๐ณ๐ณ๐‘–๐‘–โˆ’1 + ๐น๐น๐‘ฃ๐‘ฃ๐‘–๐‘–๏ฟฝฬ‡๏ฟฝ๐œ—๐‘–๐‘– + ๐‘“๐‘“๐‘ ๐‘ ๐‘–๐‘– rotationa๐‘š joint

velo

cities

acce

lerati

ons

forc

esm

omen

ts

Recursive algorithm

Page 44: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Up to now we have supposed that all the vectors are referred to the base frame.

It is more convenient to express the vectors with respect to the current frame on link i. In this way, vectors ๐ซ๐ซ๐‘–๐‘–โˆ’1,๐‘–๐‘– and ๐ซ๐ซ๐‘–๐‘–,๐ถ๐ถ๐‘–๐‘– and the inertia tensor ๐ˆ๐ˆ๐‘–๐‘– are constant, which makes the algorithm computationally more efficient.

The equations are modified in some terms (we need to multiply the vectors by suitable rotation matrices) but nothing changes in the nature of the method.

Local reference frames

Page 45: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Let us consider again a two-link planar manipulator with rotational joints, whose model has been already derived with the Euler-Lagrange method: masses: ๐‘š๐‘š1 and ๐‘š๐‘š2 lengths: ๐‘Ž๐‘Ž1 and ๐‘Ž๐‘Ž2 distances of the centers of mass from the joint axes: ๐‘™๐‘™1 and ๐‘™๐‘™2 moments of inertia around axes passing through the centers of

mass and parallel to ๐ณ๐ณ0 : ๐ผ๐ผ1 and ๐ผ๐ผ2

Initial conditions for the forward recursion of velocities and accelerations;

๏ฟฝฬˆ๏ฟฝ๐ฉ00 โˆ’ ๐ ๐ 00 = 0 ๐‘š๐‘š 0 ๐‘‡๐‘‡ , ฯ‰00 = ฯ‰ฬ‡0

0 = 0

m1, I1

m2, I2

a1

a2

ฯ‘1

ฯ‘2

l1

l2

x0

y0

Initial conditions for the backward recursion of forces and moments:

๐Ÿ๐Ÿ33 = 0, ฮผ33 = 0

Two-link planar manipulator

Page 46: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Let us refer all the quantities to the current frame on the link. We derive these constant vectors:

The rotation matrices are:

๐ซ๐ซ1,๐ถ๐ถ11 =

๐‘š1 โˆ’ ๐‘Ž๐‘Ž100

, ๐ซ๐ซ0,11 =

๐‘Ž๐‘Ž100

, ๐ซ๐ซ2,๐ถ๐ถ22 =

๐‘š2 โˆ’ ๐‘Ž๐‘Ž200

, ๐ซ๐ซ1,22 =

๐‘Ž๐‘Ž200

๐‘๐‘10 =๐‘๐‘1 โˆ’๐‘ ๐‘ 1 0๐‘ ๐‘ 1 ๐‘๐‘1 00 0 1

, ๐‘๐‘21 =๐‘๐‘2 โˆ’๐‘ ๐‘ 2 0๐‘ ๐‘ 2 ๐‘๐‘2 00 0 1

, ๐‘๐‘32 =1 0 00 1 00 0 1

Definition of vectors and matrices

Page 47: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

ฯ‰11 = ๐‘๐‘10๐‘‡๐‘‡ ฯ‰0 + ๏ฟฝฬ‡๏ฟฝ๐œ—1๐ณ๐ณ0 =

00๏ฟฝฬ‡๏ฟฝ๐œ—1

ฯ‰ฬ‡11 = ๐‘๐‘10๐‘‡๐‘‡ ฯ‰ฬ‡0 + ๏ฟฝฬˆ๏ฟฝ๐œ—1๐ณ๐ณ0 + ๏ฟฝฬ‡๏ฟฝ๐œ—1ฯ‰0 ร— ๐ณ๐ณ0 =

00๏ฟฝฬˆ๏ฟฝ๐œ—1

๏ฟฝฬˆ๏ฟฝ๐ฉ11 = ๐‘๐‘10๐‘‡๐‘‡๏ฟฝฬˆ๏ฟฝ๐ฉ0 + ฯ‰ฬ‡11 ร— ๐ซ๐ซ0,1

1 + ฯ‰11 ร— ฯ‰1

1 ร— ๐ซ๐ซ0,11 =

โˆ’๐‘Ž๐‘Ž1๏ฟฝฬ‡๏ฟฝ๐œ—12 + ๐‘š๐‘š๐‘ ๐‘ 1๐‘Ž๐‘Ž1๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๐‘š๐‘š๐‘๐‘1

0

๏ฟฝฬˆ๏ฟฝ๐ฉ๐ถ๐ถ11 = ๏ฟฝฬˆ๏ฟฝ๐ฉ11 + ฯ‰ฬ‡1

1 ร— ๐ซ๐ซ1,๐ถ๐ถ11 + ฯ‰1

1 ร— ฯ‰11 ร— ๐ซ๐ซ1,๐ถ๐ถ1

1 =โˆ’๐‘š1๏ฟฝฬ‡๏ฟฝ๐œ—12 + ๐‘š๐‘š๐‘ ๐‘ 1๐‘š1๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๐‘š๐‘š๐‘๐‘1

0

Forward recursion: link 1

Page 48: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

ฯ‰22 = ๐‘๐‘21๐‘‡๐‘‡ ฯ‰1

1 + ๏ฟฝฬ‡๏ฟฝ๐œ—2๐ณ๐ณ0 =00

๏ฟฝฬ‡๏ฟฝ๐œ—1 + ๏ฟฝฬ‡๏ฟฝ๐œ—2

ฯ‰ฬ‡22 = ๐‘๐‘21๐‘‡๐‘‡ ฯ‰ฬ‡1

1 + ๏ฟฝฬˆ๏ฟฝ๐œ—2๐ณ๐ณ0 + ๏ฟฝฬ‡๏ฟฝ๐œ—2ฯ‰11 ร— ๐ณ๐ณ0 =00

๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๏ฟฝฬˆ๏ฟฝ๐œ—2

๏ฟฝฬˆ๏ฟฝ๐ฉ22 = ๐‘๐‘21๐‘‡๐‘‡๏ฟฝฬˆ๏ฟฝ๐ฉ11 + ฯ‰ฬ‡22 ร— ๐ซ๐ซ1,2

2 + ฯ‰22 ร— ฯ‰2

2 ร— ๐ซ๐ซ1,22 =

๐‘Ž๐‘Ž1๐‘ ๐‘ 2๏ฟฝฬˆ๏ฟฝ๐œ—1 โˆ’ ๐‘Ž๐‘Ž1๐‘๐‘2๏ฟฝฬ‡๏ฟฝ๐œ—12 โˆ’ ๐‘Ž๐‘Ž2 ๏ฟฝฬ‡๏ฟฝ๐œ—1 + ๏ฟฝฬ‡๏ฟฝ๐œ—22 + ๐‘š๐‘š๐‘ ๐‘ 12

๐‘Ž๐‘Ž1๐‘๐‘2๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๐‘Ž๐‘Ž2 ๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๏ฟฝฬˆ๏ฟฝ๐œ—2 + ๐‘Ž๐‘Ž1๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—12 + ๐‘š๐‘š๐‘๐‘120

๏ฟฝฬˆ๏ฟฝ๐ฉ๐ถ๐ถ22 = ๏ฟฝฬˆ๏ฟฝ๐ฉ22 + ฯ‰ฬ‡22 ร— ๐ซ๐ซ2,๐ถ๐ถ2

2 + ฯ‰22 ร— ฯ‰2

2 ร— ๐ซ๐ซ2,๐ถ๐ถ22 =

๐‘Ž๐‘Ž1๐‘ ๐‘ 2๏ฟฝฬˆ๏ฟฝ๐œ—1 โˆ’ ๐‘Ž๐‘Ž1๐‘๐‘2๏ฟฝฬ‡๏ฟฝ๐œ—12 โˆ’ ๐‘š2 ๏ฟฝฬ‡๏ฟฝ๐œ—1 + ๏ฟฝฬ‡๏ฟฝ๐œ—22 + ๐‘š๐‘š๐‘ ๐‘ 12

๐‘Ž๐‘Ž1๐‘๐‘2๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๐‘š2 ๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๏ฟฝฬˆ๏ฟฝ๐œ—2 + ๐‘Ž๐‘Ž1๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—12 + ๐‘š๐‘š๐‘๐‘120

Forward recursion: link 2

Page 49: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

๐Ÿ๐Ÿ22 = ๐‘๐‘32๐Ÿ๐Ÿ33 + ๐‘š๐‘š2๏ฟฝฬˆ๏ฟฝ๐ฉ๐ถ๐ถ22 = ๐‘š๐‘š2๏ฟฝฬˆ๏ฟฝ๐ฉ๐ถ๐ถ2

2

=๐‘š๐‘š2 ๐‘Ž๐‘Ž1๐‘ ๐‘ 2๏ฟฝฬˆ๏ฟฝ๐œ—1 โˆ’ ๐‘Ž๐‘Ž1๐‘๐‘2๏ฟฝฬ‡๏ฟฝ๐œ—12 โˆ’ ๐‘š2 ๏ฟฝฬ‡๏ฟฝ๐œ—1 + ๏ฟฝฬ‡๏ฟฝ๐œ—2

2 + ๐‘š๐‘š๐‘ ๐‘ 12๐‘š๐‘š2 ๐‘Ž๐‘Ž1๐‘๐‘2๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๐‘š2 ๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๏ฟฝฬˆ๏ฟฝ๐œ—2 + ๐‘Ž๐‘Ž1๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—12 + ๐‘š๐‘š๐‘๐‘12

0

ฮผ22 = โˆ’๐Ÿ๐Ÿ22 ร— ๐ซ๐ซ1,22 + ๐ซ๐ซ2,๐ถ๐ถ2

2 + ๐‘๐‘32ฮผ33 + ๐‘๐‘32๐Ÿ๐Ÿ33 ร— ๐ซ๐ซ2,๐ถ๐ถ22 + ๐ˆ๐ˆ22ฯ‰ฬ‡2

2 + ฯ‰22 ร— ๐ˆ๐ˆ22ฯ‰2

2 =

=โˆ—โˆ—

๐ผ๐ผ2 + ๐‘š๐‘š2๐‘š22 ๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๏ฟฝฬˆ๏ฟฝ๐œ—2 + ๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘๐‘2๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—12 + ๐‘š๐‘š2๐‘š2๐‘š๐‘š๐‘๐‘12

๐œ๐œ2 = ฮผ22๐‘‡๐‘‡๐‘๐‘21๐‘‡๐‘‡๐ณ๐ณ0 == ๐ผ๐ผ2 + ๐‘š๐‘š2 ๐‘š22 + ๐‘Ž๐‘Ž1๐‘š2๐‘๐‘2 ๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๐ผ๐ผ2 + ๐‘š๐‘š2๐‘š22 ๏ฟฝฬˆ๏ฟฝ๐œ—2 + ๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—12

(identical to the equation obtained with Euler-Lagrange method)

Backward recursion: link 2

Page 50: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

๐Ÿ๐Ÿ11 = ๐‘๐‘21๐Ÿ๐Ÿ22 + ๐‘š๐‘š2๏ฟฝฬˆ๏ฟฝ๐ฉ๐ถ๐ถ11

=โˆ’๐‘š๐‘š2๐‘š2๐‘ ๐‘ 2 ๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๏ฟฝฬˆ๏ฟฝ๐œ—2 โˆ’ ๐‘š๐‘š1๐‘š1๏ฟฝฬ‡๏ฟฝ๐œ—12 โˆ’ ๐‘š๐‘š2๐‘Ž๐‘Ž1๏ฟฝฬ‡๏ฟฝ๐œ—12 โˆ’ ๐‘š๐‘š2๐‘š2๐‘๐‘2 ๏ฟฝฬ‡๏ฟฝ๐œ—1 + ๏ฟฝฬ‡๏ฟฝ๐œ—2

2 + ๐‘š๐‘š1 + ๐‘š๐‘š2 ๐‘š๐‘š๐‘ ๐‘ 1๐‘š๐‘š1๐‘š1 + ๐‘š๐‘š2๐‘Ž๐‘Ž1 ๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๐‘š๐‘š2๐‘š2๐‘๐‘2 ๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๏ฟฝฬˆ๏ฟฝ๐œ—2 โˆ’ ๐‘š๐‘š2๐‘š2๐‘ ๐‘ 2 ๏ฟฝฬ‡๏ฟฝ๐œ—1 + ๏ฟฝฬ‡๏ฟฝ๐œ—2

2 + ๐‘š๐‘š1 + ๐‘š๐‘š2 ๐‘š๐‘š๐‘๐‘10

ฮผ11 = โˆ’๐Ÿ๐Ÿ11 ร— ๐ซ๐ซ0,11 + ๐ซ๐ซ1,๐ถ๐ถ1

1 + ๐‘๐‘21ฮผ22 + ๐‘๐‘21๐Ÿ๐Ÿ22 ร— ๐ซ๐ซ1,๐ถ๐ถ11 + ๐ˆ๐ˆ11ฯ‰ฬ‡11 + ฯ‰1

1 ร— ๐ˆ๐ˆ11ฯ‰11 =

=

โˆ—โˆ—

๐ผ๐ผ1 + ๐‘š๐‘š2๐‘Ž๐‘Ž12 + ๐‘š๐‘š1๐‘š12 + ๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘๐‘2 ๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๐ผ๐ผ2 + ๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘๐‘2 + ๐‘š๐‘š2๐‘š22 ๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๏ฟฝฬˆ๏ฟฝ๐œ—2 +

+๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—12 โˆ’ ๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2 ๏ฟฝฬ‡๏ฟฝ๐œ—1 + ๏ฟฝฬ‡๏ฟฝ๐œ—22 + ๐‘š๐‘š1๐‘š1 + ๐‘š๐‘š2๐‘Ž๐‘Ž1 ๐‘š๐‘š๐‘๐‘1 + ๐‘š๐‘š2๐‘š2๐‘š๐‘š๐‘๐‘12

๐œ๐œ1 = ฮผ11๐‘‡๐‘‡๐‘๐‘10๐‘‡๐‘‡๐ณ๐ณ0 == ๐ผ๐ผ1 + ๐‘š๐‘š1๐‘š12 + ๐ผ๐ผ2 + ๐‘š๐‘š2 ๐‘Ž๐‘Ž12 + ๐‘š22 + 2๐‘Ž๐‘Ž1๐‘š2๐‘๐‘2 ๏ฟฝฬˆ๏ฟฝ๐œ—1 + ๐ผ๐ผ2 + ๐‘š๐‘š2 ๐‘š22 + ๐‘Ž๐‘Ž1๐‘š2๐‘๐‘2 ๏ฟฝฬˆ๏ฟฝ๐œ—2

โˆ’2๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—1๏ฟฝฬ‡๏ฟฝ๐œ—2 โˆ’ ๐‘š๐‘š2๐‘Ž๐‘Ž1๐‘š2๐‘ ๐‘ 2๏ฟฝฬ‡๏ฟฝ๐œ—22 + ๐‘š๐‘š1๐‘š1 + ๐‘š๐‘š2๐‘Ž๐‘Ž1 ๐‘š๐‘š๐‘๐‘1 + ๐‘š๐‘š2๐‘š2๐‘š๐‘š๐‘๐‘12

(identical to the equation obtained with Euler-Lagrange method)

Backward recursion: link 1

Page 51: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Euler-Lagrange formulation

it is systematic and easy to understand it returns the equations of motion in an analytic and compact form, separating the inertia matrix,

the Coriolis and centrifugal terms, the gravitational terms. All these elements are useful for the design of a model based controller

it lends itself to the introduction into the model of more complex effects (like joint or link deformation)

Newton-Euler formulation

it is a computationally efficient recursive method

Euler-Lagrange vs. Newton-Euler

Page 52: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Dynamic model

s(1)=0;s(2)=pi/2;s(3)=0;s(4)=pi/2;s(5)=0;s(6)=0;ds(1)=0;ds(2)=0;ds(3)=0;ds(4)=0;ds(5)=0;ds(6)=0;dds(1)=0;dds(2)=0;dds(3)=0;dds(4)=0;dds(5)=0;dds(6)=0;

cq(1) = cos(s(1));sq(1) = sin(s(1));cq(2) = cos(s(2));sq(2) = sin(s(2));cq(3) = cos(s(3));sq(3) = sin(s(3));cq(4) = cos(s(4));sq(4) = sin(s(4));cq(5) = cos(s(5));sq(5) = sin(s(5));cq(6) = cos(s(6));sq(6) = sin(s(6));wy(1) = -ds(1);dwy(1) = -dds(1);dvsecz(1, 1) = -0.15*wy(1);dvterx(1, 1) = dvsecz(1, 1)*wy(1);dvquaz(1, 1) = -0.15*dwy(1);dvsecz(2, 1) = -0.15*wy(1);dvterx(2, 1) = dvsecz(2, 1)*wy(1);dvquaz(2, 1) = -0.15*dwy(1);aprx(1) = -0.023*wy(1);aprz(1) = 0.077*wy(1);asecx(1) = -0.023*dwy(1);asecz(1) = 0.077*dwy(1);aterx(1) = aprz(1)*wy(1);aterz(1) = -(aprx(1)*wy(1));ax(1) = asecx(1) + aterx(1) + dvterx(1, 1);az(1) = asecz(1) + aterz(1) + dvquaz(1, 1);fex(1) = 48.9*ax(1);fez(1) = 48.9*az(1);wprx(2) = sq(2)*wy(1);wpry(2) = cq(2)*wy(1);dwprx(2) = ds(2)*wy(1);dwx(2) = cq(2)*dwprx(2) + dwy(1)*sq(2);dwy(2) = cq(2)*dwy(1) - dwprx(2)*sq(2);dvprx(2, 2) = cq(2)*dvterx(2, 1) - 9.8062*sq(2);dvpry(2, 2) = -9.8062*cq(2) - dvterx(2, 1)*sq(2);dvsecy(2, 2) = -0.61*ds(2);dvsecz(2, 2) = 0.61*wpry(2);dvterx(2, 2) = -(ds(2)*dvsecy(2, 2)) + dvsecz(2, 2)*wpry(2);dvtery(2, 2) = -(dvsecz(2, 2)*wprx(2));

dvterz(2, 2) = dvsecy(2, 2)*wprx(2);dvquay(2, 2) = -0.61*dds(2);dvquaz(2, 2) = 0.61*dwy(2);vdx(2, 2) = dvprx(2, 2) + dvterx(2, 2);vdy(2, 2) = dvpry(2, 2) + dvquay(2, 2) + dvtery(2, 2);vdz(2, 2) = dvquaz(2, 1) + dvquaz(2, 2) + dvterz(2, 2);dvprx(3, 2) = cq(2)*dvterx(2, 1) - 9.8062*sq(2);dvpry(3, 2) = -9.8062*cq(2) - dvterx(2, 1)*sq(2);dvsecy(3, 2) = -0.61*ds(2);dvsecz(3, 2) = 0.61*wpry(2);dvterx(3, 2) = -(ds(2)*dvsecy(3, 2)) + dvsecz(3, 2)*wpry(2);dvtery(3, 2) = -(dvsecz(3, 2)*wprx(2));dvterz(3, 2) = dvsecy(3, 2)*wprx(2);dvquay(3, 2) = -0.61*dds(2);dvquaz(3, 2) = 0.61*dwy(2);vdx(3, 2) = dvprx(3, 2) + dvterx(3, 2);vdy(3, 2) = dvpry(3, 2) + dvquay(3, 2) + dvtery(3, 2);vdz(3, 2) = dvquaz(2, 1) + dvquaz(3, 2) + dvterz(3, 2);aprx(2) = 0.146*wpry(2);apry(2) = 0.776*ds(2) - 0.146*wprx(2);aprz(2) = -0.776*wpry(2);asecx(2) = 0.146*dwy(2);asecy(2) = 0.776*dds(2) - 0.146*dwx(2);asecz(2) = -0.776*dwy(2);aterx(2) = -(apry(2)*ds(2)) + aprz(2)*wpry(2);atery(2) = aprx(2)*ds(2) - aprz(2)*wprx(2);aterz(2) = apry(2)*wprx(2) - aprx(2)*wpry(2);ax(2) = asecx(2) + aterx(2) + vdx(2, 2);ay(2) = asecy(2) + atery(2) + vdy(2, 2);az(2) = asecz(2) + aterz(2) + vdz(2, 2);fex(2) = 90.57*ax(2);fey(2) = 90.57*ay(2);fez(2) = 90.57*az(2);wprx(3) = cq(3)*wprx(2) + sq(3)*wpry(2);wprz(3) = sq(3)*wprx(2) - cq(3)*wpry(2);wy(3) = ds(2) + ds(3);dwprx(3) = ds(3)*wpry(2);dwpry(3) = -(ds(3)*wprx(2));dwsecx(3) = dwprx(3) + dwx(2);dwsecy(3) = dwpry(3) + dwy(2);dwsecz(3) = dds(2) + dds(3);dwx(3) = cq(3)*dwsecx(3) + dwsecy(3)*sq(3);dwz(3) = -(cq(3)*dwsecy(3)) + dwsecx(3)*sq(3);dvprx(3, 3) = cq(3)*vdx(3, 2) + sq(3)*vdy(3, 2);dvprz(3, 3) = sq(3)*vdx(3, 2) - cq(3)*vdy(3, 2);dvsecy(3, 3) = -0.11*wprz(3);dvsecz(3, 3) = 0.11*wy(3);dvterx(3, 3) = -(dvsecy(3, 3)*wprz(3)) + dvsecz(3, 3)*wy(3);dvtery(3, 3) = -(dvsecz(3, 3)*wprx(3));dvterz(3, 3) = dvsecy(3, 3)*wprx(3);dvquay(3, 3) = -0.11*dwz(3);dvquaz(3, 3) = 0.11*dwsecz(3);vdx(3, 3) = dvprx(3, 3) + dvterx(3, 3);vdy(3, 3) = dvquay(3, 3) + dvtery(3, 3) + vdz(3, 2);vdz(3, 3) = dvprz(3, 3) + dvquaz(3, 3) + dvterz(3, 3);dvprx(4, 3) = cq(3)*vdx(3, 2) + sq(3)*vdy(3, 2);dvprz(4, 3) = sq(3)*vdx(3, 2) - cq(3)*vdy(3, 2);dvsecy(4, 3) = -0.11*wprz(3);dvsecz(4, 3) = 0.11*wy(3);dvterx(4, 3) = -(dvsecy(4, 3)*wprz(3)) + dvsecz(4, 3)*wy(3);

dvtery(4, 3) = -(dvsecz(4, 3)*wprx(3));dvterz(4, 3) = dvsecy(4, 3)*wprx(3);dvquay(4, 3) = -0.11*dwz(3);dvquaz(4, 3) = 0.11*dwsecz(3);vdx(4, 3) = dvprx(4, 3) + dvterx(4, 3);vdy(4, 3) = dvquay(4, 3) + dvtery(4, 3) + vdz(3, 2);vdz(4, 3) = dvprz(4, 3) + dvquaz(4, 3) + dvterz(4, 3);aprx(3) = 0.018*wprz(3) - 0.029*wy(3);apry(3) = 0.029*wprx(3) + 0.052*wprz(3);aprz(3) = -0.018*wprx(3) - 0.05200000000000001*wy(3);asecx(3) = -0.029*dwsecz(3) + 0.018*dwz(3);asecy(3) = 0.029*dwx(3) + 0.052*dwz(3);asecz(3) = -0.05200000000000001*dwsecz(3) - 0.018*dwx(3);aterx(3) = -(apry(3)*wprz(3)) + aprz(3)*wy(3);atery(3) = -(aprz(3)*wprx(3)) + aprx(3)*wprz(3);aterz(3) = apry(3)*wprx(3) - aprx(3)*wy(3);ax(3) = asecx(3) + aterx(3) + vdx(3, 3);ay(3) = asecy(3) + atery(3) + vdy(3, 3);az(3) = asecz(3) + aterz(3) + vdz(3, 3);fex(3) = 33*ax(3);fey(3) = 33*ay(3);fez(3) = 33*az(3);wprx(4) = cq(4)*wprx(3) + sq(4)*wy(3);wpry(4) = -wprz(3);wprz(4) = -(sq(4)*wprx(3)) + cq(4)*wy(3);wy(4) = -ds(4) + wpry(4);dwprx(4) = ds(4)*wy(3);dwpry(4) = -(ds(4)*wprx(3));dwsecx(4) = dwprx(4) + dwx(3);dwsecy(4) = dwpry(4) + dwsecz(3);dwsecz(4) = dds(4) + dwz(3);dwx(4) = cq(4)*dwsecx(4) + dwsecy(4)*sq(4);dwy(4) = -dwsecz(4);dwz(4) = cq(4)*dwsecy(4) - dwsecx(4)*sq(4);dvprx(4, 4) = cq(4)*vdx(4, 3) + sq(4)*vdy(4, 3);dvpry(4, 4) = -vdz(4, 3);dvprz(4, 4) = -(sq(4)*vdx(4, 3)) + cq(4)*vdy(4, 3);dvsecx(4, 4) = 0.61*wprz(4);dvsecz(4, 4) = -0.61*wprx(4);dvterx(4, 4) = dvsecz(4, 4)*wy(4);dvtery(4, 4) = -(dvsecz(4, 4)*wprx(4)) + dvsecx(4, 4)*wprz(4);dvterz(4, 4) = -(dvsecx(4, 4)*wy(4));dvquax(4, 4) = 0.61*dwz(4);dvquaz(4, 4) = -0.61*dwx(4);vdx(4, 4) = dvprx(4, 4) + dvquax(4, 4) + dvterx(4, 4);vdy(4, 4) = dvpry(4, 4) + dvtery(4, 4);vdz(4, 4) = dvprz(4, 4) + dvquaz(4, 4) + dvterz(4, 4);dvprx(5, 4) = cq(4)*vdx(4, 3) + sq(4)*vdy(4, 3);dvpry(5, 4) = -vdz(4, 3);dvprz(5, 4) = -(sq(4)*vdx(4, 3)) + cq(4)*vdy(4, 3);dvsecx(5, 4) = 0.61*wprz(4);dvsecz(5, 4) = -0.61*wprx(4);dvterx(5, 4) = dvsecz(5, 4)*wy(4);dvtery(5, 4) = -(dvsecz(5, 4)*wprx(4)) + dvsecx(5, 4)*wprz(4);dvterz(5, 4) = -(dvsecx(5, 4)*wy(4));dvquax(5, 4) = 0.61*dwz(4);dvquaz(5, 4) = -0.61*dwx(4);vdx(5, 4) = dvprx(5, 4) + dvquax(5, 4) + dvterx(5, 4);vdy(5, 4) = dvpry(5, 4) + dvtery(5, 4);vdz(5, 4) = dvprz(5, 4) + dvquaz(5, 4) + dvterz(5, 4);

aprx(4) = -0.282*wprz(4);aprz(4) = 0.282*wprx(4);asecx(4) = -0.282*dwz(4);asecz(4) = 0.282*dwx(4);aterx(4) = aprz(4)*wy(4);atery(4) = -(aprz(4)*wprx(4)) + aprx(4)*wprz(4);aterz(4) = -(aprx(4)*wy(4));ax(4) = asecx(4) + aterx(4) + vdx(4, 4);ay(4) = atery(4) + vdy(4, 4);az(4) = asecz(4) + aterz(4) + vdz(4, 4);fex(4) = 19.52*ax(4);fey(4) = 19.52*ay(4);fez(4) = 19.52*az(4);wprx(5) = cq(5)*wprx(4) + sq(5)*wy(4);wprz(5) = sq(5)*wprx(4) - cq(5)*wy(4);wy(5) = ds(5) + wprz(4);dwprx(5) = ds(5)*wy(4);dwpry(5) = -(ds(5)*wprx(4));dwsecx(5) = dwprx(5) + dwx(4);dwsecy(5) = dwpry(5) + dwy(4);dwsecz(5) = dds(5) + dwz(4);dwx(5) = cq(5)*dwsecx(5) + dwsecy(5)*sq(5);dwz(5) = -(cq(5)*dwsecy(5)) + dwsecx(5)*sq(5);dvprx(5, 5) = cq(5)*vdx(5, 4) + sq(5)*vdy(5, 4);dvprz(5, 5) = sq(5)*vdx(5, 4) - cq(5)*vdy(5, 4);dvsecx(5, 5) = -0.113*wprz(5);dvsecz(5, 5) = 0.113*wprx(5);dvterx(5, 5) = dvsecz(5, 5)*wy(5);dvtery(5, 5) = -(dvsecz(5, 5)*wprx(5)) + dvsecx(5, 5)*wprz(5);dvterz(5, 5) = -(dvsecx(5, 5)*wy(5));dvquax(5, 5) = -0.113*dwz(5);dvquaz(5, 5) = 0.113*dwx(5);vdx(5, 5) = dvprx(5, 5) + dvquax(5, 5) + dvterx(5, 5);vdy(5, 5) = dvtery(5, 5) + vdz(5, 4);vdz(5, 5) = dvprz(5, 5) + dvquaz(5, 5) + dvterz(5, 5);dvprx(6, 5) = cq(5)*vdx(5, 4) + sq(5)*vdy(5, 4);dvprz(6, 5) = sq(5)*vdx(5, 4) - cq(5)*vdy(5, 4);dvsecx(6, 5) = -0.113*wprz(5);dvsecz(6, 5) = 0.113*wprx(5);dvterx(6, 5) = dvsecz(6, 5)*wy(5);dvtery(6, 5) = -(dvsecz(6, 5)*wprx(5)) + dvsecx(6, 5)*wprz(5);dvterz(6, 5) = -(dvsecx(6, 5)*wy(5));dvquax(6, 5) = -0.113*dwz(5);dvquaz(6, 5) = 0.113*dwx(5);vdx(6, 5) = dvprx(6, 5) + dvquax(6, 5) + dvterx(6, 5);vdy(6, 5) = dvtery(6, 5) + vdz(5, 4);vdz(6, 5) = dvprz(6, 5) + dvquaz(6, 5) + dvterz(6, 5);aprx(5) = 0.011*wprz(5) - 0.034*wy(5);apry(5) = 0.034*wprx(5);aprz(5) = -0.011*wprx(5);asecx(5) = -0.034*dwsecz(5) + 0.011*dwz(5);asecy(5) = 0.034*dwx(5);asecz(5) = -0.011*dwx(5);aterx(5) = -(apry(5)*wprz(5)) + aprz(5)*wy(5);atery(5) = -(aprz(5)*wprx(5)) + aprx(5)*wprz(5);aterz(5) = apry(5)*wprx(5) - aprx(5)*wy(5);ax(5) = asecx(5) + aterx(5) + vdx(5, 5);ay(5) = asecy(5) + atery(5) + vdy(5, 5);az(5) = asecz(5) + aterz(5) + vdz(5, 5);fex(5) = 5.79*ax(5);

fex(5) = 5.79*ax(5);fey(5) = 5.79*ay(5);fez(5) = 5.79*az(5);wprx(6) = cq(6)*wprx(5) + sq(6)*wy(5);wpry(6) = -(sq(6)*wprx(5)) + cq(6)*wy(5);wz(6) = ds(6) + wprz(5);dwprx(6) = ds(6)*wy(5);dwpry(6) = -(ds(6)*wprx(5));dwsecx(6) = dwprx(6) + dwx(5);dwsecy(6) = dwpry(6) + dwsecz(5);dwsecz(6) = dds(6) + dwz(5);dwx(6) = cq(6)*dwsecx(6) + dwsecy(6)*sq(6);dwy(6) = cq(6)*dwsecy(6) - dwsecx(6)*sq(6);dvprx(6, 6) = cq(6)*vdx(6, 5) + sq(6)*vdy(6, 5);dvpry(6, 6) = -(sq(6)*vdx(6, 5)) + cq(6)*vdy(6, 5);dvsecx(6, 6) = 0.103*wpry(6);dvsecy(6, 6) = -0.103*wprx(6);dvterx(6, 6) = -(dvsecy(6, 6)*wz(6));dvtery(6, 6) = dvsecx(6, 6)*wz(6);dvterz(6, 6) = dvsecy(6, 6)*wprx(6) - dvsecx(6, 6)*wpry(6);dvquax(6, 6) = 0.103*dwy(6);dvquay(6, 6) = -0.103*dwx(6);vdx(6, 6) = dvprx(6, 6) + dvquax(6, 6) + dvterx(6, 6);vdy(6, 6) = dvpry(6, 6) + dvquay(6, 6) + dvtery(6, 6);vdz(6, 6) = dvterz(6, 6) + vdz(6, 5);aprx(6) = -0.027*wpry(6);apry(6) = 0.027*wprx(6);asecx(6) = -0.027*dwy(6);asecy(6) = 0.027*dwx(6);aterx(6) = -(apry(6)*wz(6));atery(6) = aprx(6)*wz(6);aterz(6) = apry(6)*wprx(6) - aprx(6)*wpry(6);ax(6) = asecx(6) + aterx(6) + vdx(6, 6);ay(6) = asecy(6) + atery(6) + vdy(6, 6);az(6) = aterz(6) + vdz(6, 6);fex(6) = 1.69*ax(6);fey(6) = 1.69*ay(6);fez(6) = 1.69*az(6);fx(6) = -fex(6);fy(6) = -fey(6);fz(6) = -fez(6);pprx(6) = -0.001*dwx(6);ppry(6) = -0.001*dwy(6);pprz(6) = -0.001*dwsecz(6);psecx(6) = 0.001*wprx(6);psecy(6) = 0.001*wpry(6);psecz(6) = 0.001*wz(6);pterx(6) = -(psecz(6)*wpry(6)) + psecy(6)*wz(6);ptery(6) = psecz(6)*wprx(6) - psecx(6)*wz(6);pterz(6) = -(psecy(6)*wprx(6)) + psecx(6)*wpry(6);pquix(6) = 0.076*fey(6);pquiy(6) = -0.076*fex(6);px(6) = pprx(6) + pquix(6) + pterx(6);py(6) = ppry(6) + pquiy(6) + ptery(6);pz(6) = pprz(6) + pterz(6);fprx(5, 1) = cq(6)*fx(6) - fy(6)*sq(6);fpry(5, 1) = cq(6)*fy(6) + fx(6)*sq(6);fx(5) = -fex(5) + fprx(5, 1);fy(5) = -fey(5) + fpry(5, 1);fz(5) = -fez(5) + fz(6);

pprx(5) = -0.037*dwx(5);ppry(5) = -0.035*dwsecz(5);pprz(5) = -0.01*dwz(5);psecx(5) = 0.037*wprx(5);psecy(5) = 0.035*wy(5);psecz(5) = 0.01*wprz(5);pterx(5) = psecy(5)*wprz(5) - psecz(5)*wy(5);ptery(5) = psecz(5)*wprx(5) - psecx(5)*wprz(5);pterz(5) = -(psecy(5)*wprx(5)) + psecx(5)*wy(5);pquix(5) = -0.034*fey(5) - 0.102*fez(5);pquiy(5) = 0.034*fex(5);pquiz(5) = 0.102*fex(5);px(5) = 0.113*fz(6) + pprx(5) + pquix(5) + pterx(5) + cq(6)*px(6) - py(6)*sq(6);py(5) = ppry(5) + pquiy(5) + ptery(5) + cq(6)*py(6) + px(6)*sq(6);pz(5) = -0.113*fprx(5, 1) + pprz(5) + pquiz(5) + pterz(5) + pz(6);fprx(4, 1) = cq(5)*fx(5) + fz(5)*sq(5);fpry(4, 1) = -(cq(5)*fz(5)) + fx(5)*sq(5);fx(4) = -fex(4) + fprx(4, 1);fy(4) = -fey(4) + fpry(4, 1);fz(4) = -fez(4) + fy(5);pprx(4) = -0.818*dwx(4);ppry(4) = -0.0276*dwy(4) + 0.014*dwz(4);pprz(4) = 0.014*dwy(4) - 0.817*dwz(4);psecx(4) = 0.818*wprx(4);psecy(4) = -0.014*wprz(4) + 0.0276*wy(4);psecz(4) = 0.817*wprz(4) - 0.014*wy(4);pterx(4) = psecy(4)*wprz(4) - psecz(4)*wy(4);ptery(4) = psecz(4)*wprx(4) - psecx(4)*wprz(4);pterz(4) = -(psecy(4)*wprx(4)) + psecx(4)*wy(4);pquix(4) = 0.328*fez(4);pquiz(4) = -0.328*fex(4);px(4) = -0.61*fy(5) + pprx(4) + pquix(4) + pterx(4) + cq(5)*px(5) + pz(5)*sq(5);py(4) = ppry(4) + ptery(4) - cq(5)*pz(5) + px(5)*sq(5);pz(4) = 0.61*fprx(4, 1) + pprz(4) + pquiz(4) + pterz(4) + py(5);fprx(3, 1) = cq(4)*fx(4) - fz(4)*sq(4);fpry(3, 1) = cq(4)*fz(4) + fx(4)*sq(4);fprz(3, 1) = -fy(4);fx(3) = -fex(3) + fprx(3, 1);fy(3) = -fey(3) + fpry(3, 1);fz(3) = -fez(3) + fprz(3, 1);pprx(3) = 0.034*dwsecz(3) - 0.5360000000000001*dwx(3) - 0.05600000000000001*dwz(3);ppry(3) = -0.48*dwsecz(3) + 0.034*dwx(3) + 0.01*dwz(3);pprz(3) = 0.01*dwsecz(3) - 0.05600000000000001*dwx(3) - 0.4060000000000001*dwz(3);psecx(3) = 0.536*wprx(3) + 0.056*wprz(3) - 0.034*wy(3);psecy(3) = -0.034*wprx(3) - 0.01*wprz(3) + 0.48*wy(3);psecz(3) = 0.056*wprx(3) + 0.406*wprz(3) - 0.01*wy(3);pterx(3) = psecy(3)*wprz(3) - psecz(3)*wy(3);ptery(3) = psecz(3)*wprx(3) - psecx(3)*wprz(3);pterz(3) = -(psecy(3)*wprx(3)) + psecx(3)*wy(3);pquix(3) = -0.029*fey(3) + 0.018*fez(3);pquiy(3) = 0.029*fex(3) - 0.05800000000000001*fez(3);pquiz(3) = -0.018*fex(3) + 0.05800000000000001*fey(3);px(3) = pprx(3) + pquix(3) + pterx(3) + cq(4)*px(4) - pz(4)*sq(4);py(3) = 0.11*fprz(3, 1) + ppry(3) + pquiy(3) + ptery(3) + cq(4)*pz(4) + px(4)*sq(4);pz(3) = -0.11*fpry(3, 1) + pprz(3) + pquiz(3) + pterz(3) - py(4);fprx(2, 1) = cq(3)*fx(3) + fz(3)*sq(3);fpry(2, 1) = -(cq(3)*fz(3)) + fx(3)*sq(3);fx(2) = -fex(2) + fprx(2, 1);fy(2) = -fey(2) + fpry(2, 1);fz(2) = -fez(2) + fy(3);

pprx(2) = -1.022*dds(2) - 0.831*dwx(2);ppry(2) = -8.832*dwy(2);pprz(2) = -8.983*dds(2) - 1.022*dwx(2);psecx(2) = 1.022*ds(2) + 0.831*wprx(2);psecy(2) = 8.832*wpry(2);psecz(2) = 8.983*ds(2) + 1.022*wprx(2);pterx(2) = ds(2)*psecy(2) - psecz(2)*wpry(2);ptery(2) = -(ds(2)*psecx(2)) + psecz(2)*wprx(2);pterz(2) = -(psecy(2)*wprx(2)) + psecx(2)*wpry(2);pquix(2) = 0.146*fey(2);pquiy(2) = -0.146*fex(2) + 0.166*fez(2);pquiz(2) = -0.166*fey(2);px(2) = pprx(2) + pquix(2) + pterx(2) + cq(3)*px(3) + pz(3)*sq(3);py(2) = 0.61*fy(3) + ppry(2) + pquiy(2) + ptery(2) - cq(3)*pz(3) + px(3)*sq(3);pz(2) = -0.61*fpry(2, 1) + pprz(2) + pquiz(2) + pterz(2) + py(3);fprx(1, 1) = cq(2)*fx(2) - fy(2)*sq(2);fpry(1, 1) = cq(2)*fy(2) + fx(2)*sq(2);fx(1) = -fex(1) + fprx(1, 1);fy(1) = 479.5231800000001 + fpry(1, 1);fz(1) = -fez(1) + fz(2);pprx(1) = 0.314*dwy(1);ppry(1) = -0.731*dwy(1);pprz(1) = -0.099*dwy(1);psecx(1) = -0.314*wy(1);psecy(1) = 0.731*wy(1);psecz(1) = 0.099*wy(1);pterx(1) = -(psecz(1)*wy(1));pterz(1) = psecx(1)*wy(1);pquix(1) = 11.02903314 + 0.762*fez(1);pquiy(1) = 0.023*fex(1) + 0.07299999999999998*fez(1);pquiz(1) = 35.00519213999999 - 0.762*fex(1);px(1) = -0.85*fz(2) + pprx(1) + pquix(1) + pterx(1) + cq(2)*px(2) -py(2)*sq(2);py(1) = -0.15*fz(2) + ppry(1) + pquiy(1) + cq(2)*py(2) + px(2)*sq(2);pz(1) = 0.85*fprx(1, 1) + 0.15*fpry(1, 1) + pprz(1) + pquiz(1) + pterz(1) + pz(2);tau(1) = py(1) ;tau(2) = -pz(2);tau(3) = -py(3);tau(4) = py(4) ;tau(5) = -py(5);tau(6) = -pz(6);

However it is derived, the dynamic model is definetely complexโ€ฆ.

Page 53: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

Direct dynamicsFor given joint torques ฯ„(t), determine the joint accelerations ๏ฟฝฬˆ๏ฟฝ๐ช(๐‘‘๐‘‘) and, if initial positions ๐ช๐ช ๐‘‘๐‘‘0 and velocities ๏ฟฝฬ‡๏ฟฝ๐ช ๐‘‘๐‘‘0 are known, the positions ๐ช๐ช ๐‘‘๐‘‘ and the velocities ๏ฟฝฬ‡๏ฟฝ๐ช ๐‘‘๐‘‘ .

๐๐ ๐ช๐ช ๏ฟฝฬˆ๏ฟฝ๐ช + ๐‚๐‚ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช ๏ฟฝฬ‡๏ฟฝ๐ช + ๐ ๐  ๐ช๐ช + ๐…๐…๐‘ฃ๐‘ฃ๏ฟฝฬ‡๏ฟฝ๐ช + ๐Ÿ๐Ÿ๐‘ ๐‘  ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช = ฯ„

Inverse dynamicsFor given accelerations ๏ฟฝฬˆ๏ฟฝ๐ช(๐‘‘๐‘‘), velocities ๏ฟฝฬ‡๏ฟฝ๐ช ๐‘‘๐‘‘ and positions ๐ช๐ช ๐‘‘๐‘‘ determine the joint torques ฯ„(t) needed for motion generation.

Problem whose solution is useful in order to compute the simulation model of the robot manipulator It can be solved both with Euler-Lagrange and with Newton-Euler approaches

Problem whose solution is useful for trajectory planning and model based control It can be efficiently solved with the Newton-Euler formulation

Direct and inverse dynamics

Page 54: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

๐๐ ๐ช๐ช ๏ฟฝฬˆ๏ฟฝ๐ช + ๐ง๐ง ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช = ฯ„

As for the computation of the direct dynamics, let us rewrite the dynamic model of the manipulator in these terms:

๐ง๐ง ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช = ๐‚๐‚ ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช ๏ฟฝฬ‡๏ฟฝ๐ช + ๐ ๐  ๐ช๐ช + ๐…๐…๐‘ฃ๐‘ฃ๏ฟฝฬ‡๏ฟฝ๐ช + ๐Ÿ๐Ÿ๐‘ ๐‘  ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช

where:

Computation of the inverse dynamics can be easily done both with the Euler-Lagrange method and with the Newton-Euler one.

We thus have to numerically integrate the explicit system of differential equations:

๏ฟฝฬˆ๏ฟฝ๐ช = ๐๐ ๐ช๐ช โˆ’1 ฯ„ โˆ’ ๐ง๐ง ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช

where all the elements needed to build the system are directly computed by the Euler-Lagrange method.

Computation of direct and inverse dynamics

Page 55: Control of industrial robots Robot dynamics

Control of industrial robots โ€“ Robot dynamics โ€“ Paolo Rocco

With the current values of ๐ช๐ช and ๏ฟฝฬ‡๏ฟฝ๐ช, a first iteration of the script is performed, setting ๏ฟฝฬˆ๏ฟฝ๐ช = 0. In this way the torques ฯ„ computed by the method directly return the vector ๐ง๐ง.

How to compute the direct dynamics with the Newton-Euler method?

Then we set ๐ ๐ 0 = 0 inside the script (in order to eliminate the gravitational effects) and ๏ฟฝฬ‡๏ฟฝ๐ช = 0 (in order to eliminate Coriolis, centrifugal and friction effects). ๐‘›๐‘› iterations of the script are performed, with ๏ฟฝฬˆ๏ฟฝ๐‘ž๐‘–๐‘– = 1 and ๏ฟฝฬˆ๏ฟฝ๐‘ž๐‘ƒ๐‘ƒ = 0, ๐‘—๐‘— โ‰  ๐‘–๐‘–. This way matrix ๐๐ is formed column by column and all elements to form the system of equations are available.

Newton-Euler script (Matlab, C, โ€ฆ):

ฯ„ = ฮฮ• ๐ช๐ช, ๏ฟฝฬ‡๏ฟฝ๐ช, ๏ฟฝฬˆ๏ฟฝ๐ช

Computation of direct and inverse dynamics