robotics 2011 04 kinematic functions - ladispe.polito.it

63
Industrial Robots Industrial Robots Kinematics Kinematics Kinematics Kinematics Basilio Bona ROBOTICA 03CFIOR 1

Upload: others

Post on 02-Jun-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Industrial RobotsIndustrial Robots

KinematicsKinematicsKinematicsKinematicsBasilio Bona ROBOTICA 03CFIOR 1

Page 2: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Kinematics and kinematic functions

Kinematics deals with the study of four functions (called kinematic functions or KFs) that mathematically transform joint variables into cartesian variables and vice versa

1. Direct Position KF: from joint space variables to task space pose

2. Inverse Position KF: from task space pose to joint space p p j pvariables

3. Direct Velocity KF: from joint space velocities to task space y j p pvelocities

4. Inverse Velocity KF: from task space velocities to joint space4. Inverse Velocity KF: from task space velocities to joint space velocities

Basilio Bona 2ROBOTICA 03CFIOR

Page 3: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Kinematic functions

Positions and velocities of what?

It can be the position or velocity of any point of the robotIt can be the position or velocity of any point of the robot, but, usually, is the TCPTCP position and velocity

TCP

PR

BASE 0R?

Wh t i th l ti b t

Basilio Bona 3ROBOTICA 03CFIOR

What is the relation between these two RF?

Page 4: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Kinematic functions

The first step for defining KFs is to fix a reference frame on each robot arm

In general, to move from a RF to the following one, it is necessary to define 6 parameters (three translations of the y p (RF origin  + three angles of the RF rotation)

A number of conventions were introduced to reduce theA number of conventions were introduced to reduce the number of parameters and to find a common way to describe the relative position of reference framesp

Denavit‐Hartenberg conventions (1955) were the first to be introduced and are widely used in industry (with someintroduced and are widely used in industry (with some minor modifications)

Basilio Bona 4ROBOTICA 03CFIOR

Page 5: Robotics 2011 04 Kinematic functions - ladispe.polito.it

How to define the robot reference frames?

A RF i iti d h li k/ i th ll dA RF is positioned on each link/arm, using the so‐called Denavit‐Hartenberg (DH) conventionsTh i d fi l 4 DOF b iThe convention defines only 4 DOF between two successive RF, instead of the usual 6

b ( ) l ( ) hJoints can be prismatic (P) or rotational (R); the convention is always valid2 parameters are associated to a translation, 2 parameters are associated to a rotationThree out of four parameters depend only on the robot geometry and therefore are constant in timeOne depends on the relative motion between two successive links, and therefore is a function of time. We call this the i‐th joint variable

Basilio Bona 5ROBOTICA 03CFIOR

( )iq t

Page 6: Robotics 2011 04 Kinematic functions - ladispe.polito.it

DH convention – 1 

Assume a connected multibody system with n rigid linksThe links may not be necessarily symmetricy y yEach link is connected to two joints, one upstream (toward the base), one downstream (toward the TCP)), ( )

We want to locate a RF on this arm linklink

Upstream joint

Downstream joint

Basilio Bona 6ROBOTICA 03CFIOR

Page 7: Robotics 2011 04 Kinematic functions - ladispe.polito.it

DH convention – 2

Joint 4Link 3

Joint 5

Joint 3

Link 2

Joint 6

Link 2

Wrist

Joint 2Link 1

Shoulder

Joint 1/li kb Joint 1

Link 0 = base

arm/linkib =

jointig =

Basilio Bona 7ROBOTICA 03CFIOR

Page 8: Robotics 2011 04 Kinematic functions - ladispe.polito.it

DH convention – 3

We use the term motion axisWe use the term motion axisto include both revolute and prismatic axes

Motion axis

Motion axis Motion axis

1ib +

1ig +

g

g ib

1i+2i

g +

1ib −

ig

b2i

b +

We have this sequence

0 1 1 2 2 3 Nb g b g b g b− − − − − −

Basilio Bona 8ROBOTICA 03CFIOR

0 1 1 2 2 3 Nb g b g b g b

Base TCP

Page 9: Robotics 2011 04 Kinematic functions - ladispe.polito.it

DH convention – 4

Basilio Bona 9ROBOTICA 03CFIOR

Page 10: Robotics 2011 04 Kinematic functions - ladispe.polito.it

DH convention – 5

Motion axis

Motion axis

Motion a isMotion axis Motion axis

Basilio Bona 10ROBOTICA 03CFIOR

Page 11: Robotics 2011 04 Kinematic functions - ladispe.polito.it

DH convention – 6

Motion axis

Motion axis

M ti iMotion axis Motion axis

Basilio Bona 11ROBOTICA 03CFIOR

Page 12: Robotics 2011 04 Kinematic functions - ladispe.polito.it

DH convention – 7

Motion axis

Motion axis

Motion a isMotion axis Motion axis

Basilio Bona 12ROBOTICA 03CFIOR

Page 13: Robotics 2011 04 Kinematic functions - ladispe.polito.it

DH convention – 8

Motion axis

Motion axis

M ti iMotion axis Motion axis

Basilio Bona 13ROBOTICA 03CFIOR

Page 14: Robotics 2011 04 Kinematic functions - ladispe.polito.it

DH convention – 9

Motion axis

Motion axis

Motion iMotion axis Motion axis

Basilio Bona 14ROBOTICA 03CFIOR

Page 15: Robotics 2011 04 Kinematic functions - ladispe.polito.it

DH convention – 10

Motion axis

Motion axis

Motion a isMotion axis Motion axis

Basilio Bona 15ROBOTICA 03CFIOR

Page 16: Robotics 2011 04 Kinematic functions - ladispe.polito.it

DH rules – 1 

Basilio Bona 16ROBOTICA 03CFIOR

Page 17: Robotics 2011 04 Kinematic functions - ladispe.polito.it

DH rules – 2

Basilio Bona 17ROBOTICA 03CFIOR

Page 18: Robotics 2011 04 Kinematic functions - ladispe.polito.it

DH rules – 3

Basilio Bona 18ROBOTICA 03CFIOR

Page 19: Robotics 2011 04 Kinematic functions - ladispe.polito.it

DH parameters

DH parameters define the transformation

1i−R iR

Depending on the joint type

ig

Prismatic joint Rotation jointj j

( )( )i iq t d t≡ ( )( )

i iq t tθ≡Joint variables

, ,i i iaθ α = fixed , ,i i id a α = fissi

Geometrical parameters

Basilio Bona 19ROBOTICA 03CFIOR

Geometrical parameters“calibration”

Page 20: Robotics 2011 04 Kinematic functions - ladispe.polito.it

DH homogeneous roto‐translation matrix

T( , )⎛ ⎞⎟⎜ ⎟⎜= = ⎟⎜R t

T T R t T( , )1 ⎟⎜ ⎟⎜ ⎟⎝ ⎠

T T R t0

⎛ ⎞cos sin cos sin sin cos

sin cos cos cos sin sini i i i i i i

a

a

θ θ α θ α θθ θ α θ α θ

⎛ ⎞− ⎟⎜ ⎟⎜ ⎟⎜ ⎟−⎜ ⎟1sin cos cos cos sin sin

0 sin cosi i i i i i ii

ii i i

a

d

θ θ α θ α θα α

− ⎜ ⎟⎜ ⎟= ⎜ ⎟⎜ ⎟⎟⎜ ⎟⎜ ⎟⎜

T

1 ( ) ( ) ( ) ( )i

0 0 0 1⎜ ⎟⎜ ⎟⎜⎝ ⎠

Basilio Bona 20ROBOTICA 03CFIOR

1, ,

( , ) ( , ) ( , ) ( , )ii k iθ α− =T T I d T R 0 T I a T R 0

Page 21: Robotics 2011 04 Kinematic functions - ladispe.polito.it

From the textbook of Spong ...

Mark W. Spong, Seth Hutchinson, and M. VidyasagarRobot Modeling and ControlJohn Wiley & Sons, 2006

Basilio Bona 21ROBOTICA 03CFIOR

Page 22: Robotics 2011 04 Kinematic functions - ladispe.polito.it

From the textbook of Spong ...

Basilio Bona 22ROBOTICA 03CFIOR

Page 23: Robotics 2011 04 Kinematic functions - ladispe.polito.it

From the textbook of Spong ...

Basilio Bona 23ROBOTICA 03CFIOR

Page 24: Robotics 2011 04 Kinematic functions - ladispe.polito.it

From the textbook of Spong ...

Basilio Bona 24ROBOTICA 03CFIOR

Page 25: Robotics 2011 04 Kinematic functions - ladispe.polito.it

From the textbook of Spong ...

Basilio Bona 25ROBOTICA 03CFIOR

Page 26: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Exercise – The PUMA robot

2

1 3

4

622

From above

35

332 3

4

11

33

1 45 644 55

66

Lateral view

Basilio Bona 26ROBOTICA 03CFIOR

Page 27: Robotics 2011 04 Kinematic functions - ladispe.polito.it

A procedure to compute the KFs – 1

1. Select and identify links and joints2. Set all RFs using the DH conventions2. Set  all RFs using the DH conventions 3. Define the constant geometrical parameters4 D fi th i bl j i t t4. Define the variable joint parameters 5. Compute the homogeneous transformation between the 

base RF and the TCP RF6. Extract the direct position KF from the homogeneous 

transformation7. Compute the inverse position KF7. Compute the inverse position KF8. Inverse velocity KF: analytical or geometrical approach9 I l i KF ki i i l i bl9. Inverse velocity KF: kinematic singularity problem

Basilio Bona 27ROBOTICA 03CFIOR

Page 28: Robotics 2011 04 Kinematic functions - ladispe.polito.it

A procedure to compute the KFs – 2

1. Select and identify links and joints2. Set  all RFs using DH conventions 3 D fi i l3. Define constant geometrical parameters

4( )q t

5( )q t

2( )q t

5( )q

6( )q t

TCPTCP

PR1( )q t

BASE 0R 0PT0 0

0 ( ) ( )( ) q q⎛ ⎞⎟⎜R t

Basilio Bona 28ROBOTICA 03CFIOR

T

0 ( ) ( )( )1

P PP

q qq ⎟⎜= ⎟⎜ ⎟⎜⎝ ⎠R tT0

Page 29: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Joint and cartesian variables

Joint variables Task/cartesian variables/pose

( )⎛ ⎞1

2

( )( )( )

q tq t⎛ ⎞⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟

1

2

( )( )( )

x tx tt

⎛ ⎞⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟position

3

4

( )( ) ( )

( )

q tt q t

q t

⎜ ⎟⎟⎜ ⎟⎜= ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟

q3

1

( )( ) ( )

( )

x tt t

tαα

⎜ ⎟⎟⎜ ⎟⎜= ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎟⎜

p

orientation5

6

( )( )q tq t⎜ ⎟⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜⎝ ⎠

2

3

( )( )tt

αα

⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜⎝ ⎠

orientation

Direct KF Inverse KF

( )( ) ( )t t=p f q ( )1( ) ( )t t−=q f p

Basilio Bona 29ROBOTICA 03CFIOR

Page 30: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Direct position KF – 1 

position1 1( ) ( )( ) ( )q t p tq t p t⎛ ⎞ ⎛ ⎞⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜ ⎛ ⎞

( )2 2

3 3

4 4

( ) ( )( )( ) ( )

( ) ( ( ))( ) ( )

q t p ttq t p t

t tq t p t

⎟ ⎟⎜ ⎜⎟ ⎟ ⎛ ⎞⎜ ⎜⎟ ⎟ ⎟⎜⎜ ⎜⎟ ⎟ ⎟⎜⎟ ⎟⎜ ⎜ ⎟⎜⎟ ⎟⎜ ⎜ ⎟= ⇒ = =⎟ ⎟ ⎜⎜ ⎜ ⎟⎟ ⎟ ⎜ ⎟⎜ ⎜⎟ ⎟

x qq p q

( )4 4

5 5

6 6

( ) ( )( )( ) ( )

( ) ( )

q t p ttq t p t

q t p t

⎜ ⎟⎜ ⎜⎟ ⎟ ⎟⎜⎜ ⎜⎟ ⎟ ⎟⎜⎜ ⎜ ⎝ ⎠⎟ ⎟⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎝ ⎠ ⎝ ⎠

6 6( ) ( )q p⎝ ⎠ ⎝ ⎠orientation

( ) ( ) ( ) ( ) ( ) ( )0 0

0 0 1 2 3 4 5 61 1 2 2 3 3 4 4 5 5 6 6 1

P PP Pq q q q q q

⎛ ⎞⎟⎜ ⎟= = ⎜ ⎟⎜ ⎟⎜⎝ ⎠

R tT T T T T T T T 0 T

⎝ ⎠

orientation position

( )0 0 ( )P P t=R R q ( )0 0 ( )P P t=t t q

Basilio Bona 30ROBOTICA 03CFIOR

( )( )P P tR R q ( )( )P P tt t q

Page 31: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Direct position KF – 2 

0 00

1P P

P

⎛ ⎞⎟⎜ ⎟= ⎜ ⎟⎜ ⎟⎜⎝ ⎠

R tT 0 T

Direct cartesian position KF: easy

1 ⎟⎜⎝ ⎠0

Direct cartesian position KF: easy

11 0txt

⎛ ⎞⎛ ⎞ ⎟⎜⎟⎜ ⎟⎟ ⎜⎜ ⎟⎟ ⎜≡ ⇔ ≡⎜ t02 2

3 3

Px tx t

⎟⎟ ⎜≡ ⇔ ≡⎜ ⎟⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟⎜⎝ ⎠ ⎝ ⎠x t

Direct cartesian orientation KF:not so easy to compute but not difficultnot so easy to compute, but not difficult

We will solve the problem in the following slides

Basilio Bona 31ROBOTICA 03CFIOR

Page 32: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Direct position KF – 3 

( ) ( )( ) ( )t t⇒R q qα

W l f h i iWe want to compute angles from the rotation matrix.But … it is important to decide which representation to use

?( )( )tqα

Euler anglesRPY lRPY anglesQuaternionsAxis‐angle representationAxis angle representation…

Basilio Bona 32ROBOTICA 03CFIOR

Page 33: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Inverse position KF – 11( )

( )

q t

q t

⎛ ⎞⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎛ ⎞( ) 2

3

( )( )

( )( ( )) ( )

( )

q tt

q tt t

t

⎟⎜ ⎟⎛ ⎞ ⎜ ⎟⎟⎜ ⎜ ⎟⎟⎜ ⎜ ⎟⎟⎜ ⎟⎜⎟ ⎟⎜= ⇒ = ⎜⎟ ⎟⎜ ⎜⎟

x qp q q

Thi KF i i i l i li d

( )α 4

5

( ( )) ( )( )

( )( )

q tt

q t

⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎟ ⎜ ⎟⎟⎜ ⎜ ⎟⎝ ⎠ ⎜ ⎟⎜ ⎟⎟⎜

p q q

q

This KF is important, since control action are applied to the joint motors, while the user wants to work with 

cartesian positions and orientations

6( )q t

⎟⎜ ⎟⎜ ⎟⎜⎝ ⎠cartesian positions and orientations

3( )q t

2( )q t

⎛ ⎞2( )q

( )( )( )

( )

t

t

⎛ ⎞⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎟⎜

x q

Basilio Bona 33ROBOTICA 03CFIOR

1( )q t ( )( )t⎜ ⎟⎟⎜⎝ ⎠qα

Page 34: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Inverse position KF – 2

1. The problem is complex and there is no clear recipe to solve it2. If a spherical wristspherical wrist is present, then a solution is guaranteed, but 

we must find it ...3. There are several possibilities

Use brute force or previous solutions found for similar chainsUse inverse velocity KFUse symbolic manipulation programs (computer algebra systems asUse symbolic manipulation programs (computer algebra systems as Mathematica, Maple, Maxima, …, Lisp)Iteratively compute an approximated numerical expression for the nonlinear equation (Newton method or others)

( )1( ) ( )t t−=q f p( )( )

( ){ }1

1

( ) ( )

( ) ( ) 0

( ) ( )

t t

t t−− =

q f p

q f p

Basilio Bona 34ROBOTICA 03CFIOR

( ){ }1min ( ) ( )t t−−q f p

Page 35: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Direct velocity KF – 1 

Li d l di t l it KFLinear and angular direct velocity KFNon redundant robot with 6 DOF

Linear velocity

1 1( ) ( )q t p t⎛ ⎞ ⎛ ⎞⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟

Linear velocity

( )2 2

3 3

( ) ( )( ), ( )

( ) ( )( ) ( )

q t p tt t

q t p t

⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟ ⎛⎜ ⎜⎟ ⎟ ⎜⎜ ⎜⎟ ⎟ ⎜⎜ ⎜⎟ ⎟ ⎜⎟ ⎟⎜ ⎜x q q ( )( ), ( )t t⎞ ⎛ ⎞⎟ ⎟⎜⎟ ⎟⎜⎟ ⎟⎜⎟ ⎟

v q q

( )3 3

4 4

( ) ( )( ) ( )

( ) ( )( ), ( )

( ) ( )

q pt t

q t p tt t

q t p t

⎜⎟ ⎟⎜ ⎜⎟ ⎟= ⇒ = =⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟ ⎝⎜ ⎜⎟ ⎟

q p

q qα ( )( ), ( )t t

⎜⎟ ⎟⎜ ⎜=⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎟ ⎟⎜ ⎜⎠ ⎝ ⎠q qω( )5 5

6 6

( ) ( )

( ) ( )

q t p t

q t p t

⎝⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎝ ⎠ ⎝ ⎠

( )⎠ ⎝ ⎠

Angular velocity

Basilio Bona 35ROBOTICA 03CFIOR

Page 36: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Direct velocity KF – 2

A b i f i f th ti l t tiA brief review of mathematical notations 

( )d( )t

⎛ ⎞⎟⎜ ⎟( )( )dd

( ( ))d

tt

tt

⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟= ⎜ ⎟⎜ ⎟⎟⎜

x q

p q

( )d

d( )

d

tt

t

⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜⎝ ⎠qα

General rule

( ) ( )d d( ) ( ) ( ) ( )f t f q t q t q t=q

General rule

( ) ( )1( ) ( ), , ( ), , ( )

d d

( ) ( ) ( )

i i j n

i i i

f t f q t q t q tt t

f f fq t q t q t

=

∂ ∂ ∂= + + + +

q … …

… …1

1

( ) ( ) ( )j n

j n

q t q t q tq q q

+ + + +∂ ∂ ∂

… …

Basilio Bona 36ROBOTICA 03CFIOR

Page 37: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Direct velocity KF – 31( )q t⎛ ⎞⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜

( ) ( )d( )( ) ( ) ( )

di i i

ji fi

f f fq tf t t t

t q q q

⎟⎜ ⎟⎛ ⎞⎜ ⎟∂ ∂ ∂ ⎟⎜⎜ ⎟⎟⎜ ⎟⎜= =⎟ ⎟⎜⎜ ⎟ ⎟⎜∂ ∂ ∂⎜ ⎟⎝ ⎠ ⎟⎜q J q q… … T

1d

( )

j n

n

t q q q

q t

∂ ∂ ∂ ⎟⎝ ⎠ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜⎝ ⎠n⎝ ⎠1 1 1

( )

f f f

q q q

⎛ ⎞∂ ∂ ∂ ⎟⎜ ⎟⎜ ⎟⎜ ⎟∂ ∂ ∂⎜ ⎟ ⎛ ⎞11( )

d

j nq q q

q t

f f f

∂ ∂ ∂⎜ ⎟ ⎛ ⎞⎜ ⎟ ⎟⎜⎜ ⎟ ⎟⎜⎜ ⎟ ⎟⎜⎟⎜ ⎟⎟ ⎜⎜ ⎟⎟ ⎜⎜ ⎟∂ ∂ ∂ ⎟

JACOBIAN

( ) ( )1

d( )( ) ( ) ( )

di i i

jj n

f f fq tt t t

q q qt

⎜⎜ ⎟∂ ∂ ∂ ⎟ ⎜⎜ ⎟⎟ ⎜⎜ ⎟= =⎟ ⎟⎜⎜ ⎟ ⎟∂ ∂ ∂ ⎜⎜ ⎟ ⎟⎜⎜ ⎟ ⎟⎜⎟⎜ ⎟

f q J q q

( )n

m m m

q tf f f

⎜⎟⎜ ⎟⎟ ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎜⎟ ⎝ ⎠⎜ ⎟∂ ∂ ∂⎜ ⎟⎜ ⎟

Basilio Bona 37ROBOTICA 03CFIOR

1

m m m

j nq q q

⎜ ⎟⎜ ⎟⎜ ⎟∂ ∂ ∂⎜⎝ ⎠

Page 38: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Velocity kinematics is characterized by Jacobians

Further notes on the Jacobians

Velocity kinematics is characterized by Jacobians

Th t t f J bi( )( ) ( ) ( )t t t=p J q q

There are two types of Jacobians:Geometrical Jacobian A l ti l J bi

gJ also called Task Jacobian

Analytical JacobianaJ

⎡ ⎤⎢ ⎥xThe first one is related to

p g⎢ ⎥= =⎢ ⎥⎢ ⎥⎣ ⎦

xv J q

ωThe first one is related to Geometrical VelocitiesGeometrical Velocities

a

⎡ ⎤⎢ ⎥= =⎢ ⎥⎢ ⎥⎣ ⎦

xp J q

αThe second one is related toAnalytical VelocitiesAnalytical Velocities

Basilio Bona 38ROBOTICA 03CFIOR

⎢ ⎥⎣ ⎦αAnalytical VelocitiesAnalytical Velocities

Page 39: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Geometrical and Analytical velocities

What is the difference between these two angular velocities?

On the contrary, linear velocities do not have this problem:analytical and geometrical velocities are the same vector, thaty g ,can be integrated to give the cartesian position

Basilio Bona 39ROBOTICA 03CFIOR

Page 40: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Further notes on the Jacobians

Moreover it is important to remember that in general no vector         exists that is the integral of ( )tu ( )tω

?( ) ( )t t≠∫u ω

( ) ( )( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )θ θ θ S

The exact relation between the two quantities is:∫

( ) ( )( ) ( ) ( ) sin ( ) ( ) 1 cos ( ) ( ) ( )t t t t t t t tθ θ θ= + + −u u S u uω

While it is possible to integrate ( )tpWhile it is possible to integrate   ( )tp

( ) ( )t⎡ ⎤ ⎡ ⎤( ) ( )( )d d

( ) ( )

t

t

ττ τ τ

τ

⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥= =⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦

∫ ∫x x

pα α

Basilio Bona 40ROBOTICA 03CFIOR

Page 41: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Further notes on the Jacobians

The geometrical Jacobian is adopted every time a clear physical interpretation of the rotation velocity is neededThe analytical Jacobian is adopted every time it is necessary to treat differential quantities in the task space

Then, if one wants to implement recursive formula for the joint position

( ) ( ) ( )t t t tΔ= +q q q

he can use

1( ) ( ) ( )k k kt t t tΔ+ = +q q q

11

( ) ( ) ( ( )) ( )k k g k p kt t t t tΔ−

+ = +q q J q v

he can use

1k k g k p k+

1( ) ( ) ( ( )) ( )t t t t tΔ−+q q J q p

or

Basilio Bona 41ROBOTICA 03CFIOR

1( ) ( ) ( ( )) ( )k k a k kt t t t tΔ+ = +q q J q p

Page 42: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Further notes on the Jacobians

Basilio Bona 42ROBOTICA 03CFIOR

Page 43: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Geometric Jacobian – 1

The geometric Jacobian can be constructed taking into account the following stepsa) Every link has a reference frame        defined according to DH 

conventionsb) h i i f h i i f i i b

iR

Rb) The position of the origin of        is given by:iRig

1ig +

1i−R 1i−r

ib

iR

1i−x1,i i−r

ix

Basilio Bona 43ROBOTICA 03CFIOR

0R

0 11 1 1, 1 1,

ii i i i i i i i

−− − − − −= + = +x x R r x r

Page 44: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Geometric Jacobian – 2

Derivation wrt time gives

0 1 0 1i i− −+ + ×x x R r R rω1 1 1, 1 1 1,

1 1, 1 1,

i i i i i i i i i

i i i i i i

− − − − − −

− − − −

= + + ×= + + ×

x x R r R rx v r

ωω

Linear velocity of   wrt 1i i−R R Angular velocity of 

1i−R

Remember:  ( )= = ×R S R Rω ω

Basilio Bona 44ROBOTICA 03CFIOR

Page 45: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Geometric Jacobian – 3

If we derive the composition of two rotations, we have:0 0 1i−R R R

10 0 1 0 1

1 1

i i ii i

i i i i i

−− −

− −

=

= +

R R R

R R R R R0 1 0 1

1 1 1 1,0 1 0 0 1

1 1 1 1 1

( ) ( )

( ) ( )

i ii i i i i i i

i ii i i i i i i i

− −− − − −

− −

= +

= +

S R R R S R

S R R S R R R

ω ωω ω

1 1 1 1, 1

0 01 1 1,

( ) ( )

( ) ( )i i i i i i i i

i i i i i

− − − − −

− − −⎡ ⎤= +⎢ ⎥⎣ ⎦S S R Rω ω

Hence: 01 1 1,i i i i i− − −= +Rω ω ω

angular velocity of RFi‐1 in RF0

angular velocity of RFi in RF0 angular velocity of RFi wrt RFi‐1 in RFi‐1

Basilio Bona 45ROBOTICA 03CFIOR

Page 46: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Geometric Jacobian – 4

To compute the Geometric Jacobian, one can decompose the Jacobian matrix as: 

1q⎡ ⎤⎢ ⎥LINEAR JACOBIAN 1

,1 ,2 , 2 3, ,

( ) ,L L L ng L i A i

q

q⎢ ⎥⎢ ⎥⎡ ⎤ ⎡ ⎤⎢ ⎥⎢ ⎥ ⎢ ⎥= = = ∈⎢ ⎥⎢ ⎥ ⎢ ⎥

x J J Jv J q q J J

J J JωR

LINEAR JACOBIAN

, ,,1 ,2 ,

g L i A iA A A n

nq

⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎢ ⎥⎢ ⎥⎣ ⎦

J J JωANGULAR JACOBIAN

 indicates how   contributes to the linear velocity of the TCP,

dL i i

n n

q

∑ ∑

J

x,

1 1

dd i L i i

i ii

q qq= =

= =∑ ∑xx J

 indicates how   contributes to the angular velocity of the TCP,1A i

n n

q

∑ ∑

J

Basilio Bona 46ROBOTICA 03CFIOR

1, ,1 1

i i A i ii i

q−= =

= =∑ ∑Jω ω

Page 47: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Structure of the Jacobian

LINEAR JACOBIANLINEAR JACOBIAN

ANGULAR JACOBIAN

Basilio Bona 47ROBOTICA 03CFIOR

Page 48: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Structure of the Jacobian

If the robot is non‐redundant, the Jacobian matrix is square square 

If th b t i d d t thIf the robot is redundant, the Jacobian matrix is rectangularrectangular

Basilio Bona 48ROBOTICA 03CFIOR

Page 49: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Geometric Jacobian – 5

If the joint is prismatic

, 1L i i i iq d−=J k0ω

, 1L i i−=J kJ 0

1i−R

R1i−x

TCP1,i−r

If the joint is revolute

1,i i− = 0ω,A i=J 0

R

RTCP1i

xTCP

( ), 1, 1, 1 1,L i i i i i p i i p iq θ− − − −= × = ×J r k rω

0R

1, 1i i i iθ− −= kω

, 1 1,L i i i p− −= ×=

J k rJ k, 1A i i−=J k

All vectors are expresses in 0R

Basilio Bona 49ROBOTICA 03CFIOR

( )TCP TCP is the vector that represents   in 0

1, 1 0i i− −−r x x R

Page 50: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Geometric Jacobian – 5

In conclusions, in a geometrical Jacobian, its elements can be computed as follows:

, ,L i A iJ J

PrismaticRevolute

1

1 1 1

i

i i p i

− − −×k 0

k r k1 1, 1i i p i− − −

Basilio Bona 50ROBOTICA 03CFIOR

Page 51: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Analytical Jacobian – 1

Analytical Jacobian is computed deriving the expression of the TCP pose 

1 1( ( )) ( ( ))

d ( ( ))p t p t

p qt

⎡ ⎤∂ ∂⎢ ⎥⎡ ⎤ ⎡ ⎤⎢ ⎥⎡ ⎤ ∂ ∂⎢ ⎥ ⎢ ⎥

q qx q1 11d ( ( ))d

d ( ( ))

np qt q q

t

⎢ ⎥⎡ ⎤ ∂ ∂⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥= = =⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥

x q

p

6 6 6

d ( ( ))( ( )) ( ( ))d n

tp p t p t qt

⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ∂ ∂⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦⎣ ⎦ ⎣ ⎦⎢ ⎥∂ ∂

qq q

α

1 nq q

⎢ ⎥∂ ∂⎢ ⎥⎣ ⎦

( ( ))tJ q( ( ))atJ q

Basilio Bona 51ROBOTICA 03CFIOR

Page 52: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Analytical Jacobian – 2

The first three lines of the analytical Jacobian are equal to the same lines of the geometric JacobianThe last three lines are usually different from the same lines of the geometric JacobianThese can be computed only when the angle representation has been chosen: here we consider only Euler and RPY anglesA transformation matrix relates the analytical and geometric velocities, and the two Jacobians

( )=Tω α α( )

( ) ( )( )

⎡ ⎤⎢ ⎥= ⎢ ⎥I 0

J q J q

Basilio Bona 52ROBOTICA 03CFIOR

( ) ( )( )g a⎢ ⎥

⎢ ⎥⎣ ⎦J q J q

0 T α

Page 53: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Relations between Jacobians

Euler angles { }φ θ ψαEuler angles 0 cos sin sinϕ ϕ θ⎡ ⎤⎢ ⎥⎢ ⎥

{ }, ,φ θ ψ=α

( ) 0 sin cos sin

1 0 cos

ϕ ϕ θθ

⎢ ⎥= −⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

T α

⎣ ⎦RPY angles  { }, ,

x y zθ θ θ=α

cos cos sin 0

( ) cos sin cos 0y z zθ θ θθ θ θ

⎡ ⎤−⎢ ⎥⎢ ⎥== ⎢ ⎥T α( ) cos sin cos 0

sin 0 1y z z

y

θ θ θθ

⎢ ⎥⎢ ⎥−⎢ ⎥⎣ ⎦

T α

The values of α that zeros the matrix T(α) determinant correspond to a orientation representation singularity

Basilio Bona 53ROBOTICA 03CFIOR

This means that there are (geometrical) angular velocities that cannot be expressed by 

Page 54: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Inverse velocity KF – 1 

When the Jacobian is a square full‐rank matrix, the inverse velocity kinematic function is simply obtained as:

( )1( ) ( ) ( )t t t−=q J q p

When the Jacobian is a rectangular full‐rank matrix (i.e., when the robotic arm is redundant, but not singular), the , g ),inverse velocity kinematic function has infinite solutions, but the (right) pseudo‐inverse can be used to compute one of them

( )( ) ( ) ( )t t t+=q J q p

def

Basilio Bona 54ROBOTICA 03CFIOR

def1( )T T+ −=J J JJ

Page 55: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Inverse velocity KF – 2

If the initial joint vector q(0) is known, inverse velocity can j q( ) ybe used to solve the inverse position kinematics as an integral

10( ) (0) ( ) d ( ) ( ) ( )

t

k k kt t t t tτ τ += + = + Δ∫q q q q q q

Continuous time Discrete time

Basilio Bona 55ROBOTICA 03CFIOR

Page 56: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Singularity – 1 

A square matrix is invertible if

( )det ( ) 0t ≠J q( )det  ( ) 0t ≠J q

( )When

( )det  ( ) 0St =J q

a singularity exists at( )Stq

This is called a singular/singularity configuration

Basilio Bona 56ROBOTICA 03CFIOR

Page 57: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Singularity – 2

For an articulated/anthropomorphic robot threethree singularity conditions exist A. completely extended or folded armB. wrist center on the verticalC. wrist singularity

When joint coordinates approach singularity the joint velocities become very large for small cartesian velocities

1 1 1( )J J J

det1 1 1( )

ε−= = → → ∞q J q p Jp Jp

J

Basilio Bona 57ROBOTICA 03CFIOR

Page 58: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Singularity – 3

A. Extended arm

The velocities span a dim‐2 space

The velocities span a dim‐1 space

(the plane) (the tangent line)i.e., singularitysingularity

Basilio Bona 58ROBOTICA 03CFIOR

i.e., singularitysingularity

Page 59: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Singularity – 4

B. Wrist center on the vertical

these velocities cannot beobtained with infinitesimalobtained with infinitesimal 

joint rotations

Basilio Bona 59ROBOTICA 03CFIOR

Page 60: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Singularity – 5

C. Wrist singularity

Singularity conditionSingularity conditionTwo axes are aligned

Basilio Bona 60ROBOTICA 03CFIOR

Page 61: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Euler Angles (wrist) singularity

c c s c s c s s c c s sφ ψ φ θ ψ φ ψ φ θ ψ φ θ⎛ ⎞− − − ⎟⎜ ⎟⎜

Let us start from the symbolic matrix3 angles

s c c c s s s c c c c sφ ψ φ θ ψ φ ψ φ θ ψ φ θ

φ ψ φ θ ψ φ ψ φ θ ψ φ θ

⎟⎜ ⎟⎜ ⎟+ − + −⎜ ⎟⎜ ⎟⎟⎜ ⎟⎜ s s c s cψ θ ψ θ θ⎟⎜ ⎟⎜⎝ ⎠

Observe that if 1 0cθ θ= ⇒ =

0⎛ ⎞we have

0

0

c c s s c s s c

s c c s c c s sφ ψ φ ψ φ ψ φ ψ

φ ψ φ ψ φ ψ φ ψ

⎛ ⎞− − − ⎟⎜ ⎟⎜ ⎟⎜ ⎟+ −⎜ ⎟⎜ ⎟cos( )φ ψ+1 angle only

0 0 1φ ψ φ ψ φ ψ φ ψ⎜ ⎟⎜ ⎟⎜ ⎟⎟⎜⎝ ⎠

cos( )φ ψ+

sin( )φ ψ+

only

Basilio Bona 61ROBOTICA 03CFIOR

( )φ ψ+

Page 62: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Singularity

In practice, when the joints are near a singularity configuration, the task space velocity may become excessively large, although the joints are not exactly in singularityNear singularity conditions it is not possible to follow a geometric path and at the same time a given velocity 

f lprofile; it is necessary to reduce the cartesian velocity and follow  the path, orto follow the velocity profile, but follow an approximated path

l h bIn exact singularity conditions, nothing can be done … so … avoid singularityavoid singularity

Basilio Bona 62ROBOTICA 03CFIOR

Page 63: Robotics 2011 04 Kinematic functions - ladispe.polito.it

Conclusions

Kinematic functions can be computed once the DH conventions are used

Inverse position KF is complexInverse position KF is complex

Direct velocity KF has the problem of angular velocities: analytical vs geometric Jacobians

Inverse velocity can be computed apart from singularityInverse velocity can be computed apart from singularity points

A id i l itAvoid singularity

Basilio Bona 63ROBOTICA 03CFIOR