0% found this document useful (0 votes)
102 views35 pages

10 InverseKinematics

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

10 InverseKinematics

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

Robotics 1

Inverse kinematics
Prof. Alessandro De Luca

Robotics 1

Inverse kinematics
what are we looking for?

Robotics 1

direct kinematics is always unique;


how about inverse kinematics for this 6R robot?

Inverse kinematics problem


!

given a desired end-effector pose (position +


orientation), find the values of the joint variables
that will realize it
a synthesis problem, with input data in the form
!

T=

R p
000 1

classical formulation:
inverse kinematics for a given end-effector pose

" r =

p
!

, or any other task vector

generalized formulation:
inverse kinematics for a given value of task variables

a typical nonlinear problem


!
!
!

Robotics 1

existence of a solution (workspace definition)


uniqueness/multiplicity of solutions
solution methods
3

Solvability and robot workspace


!

primary workspace WS1: set of all positions p that can be


reached with at least one orientation (! or R)
!
!

secondary (or dexterous) workspace WS2: set of positions p


that can be reached with any orientation (among those
feasible for the robot direct kinematics)
!

out of WS1 there is no solution to the problem


for p " WS1 and a suitable ! (or R) there is at least one solution

for p " WS2 there is at least one solution for any feasible ! (or R)

WS2 # WS1

Robotics 1

Workspace of Fanuc R-2000i/165F


section for a
constant angle $1

WS1

(! WS2 for spherical wrist


without joint limits)

rotating the
base joint angle $1
Robotics 1

Workspace of planar 2R arm


2 orientations
y
l2
l1

p
q2

|l1-l2|

q1

(WS1

x
!

if l1 % l2
!
!

l1+l2

inner and outer


boundaries

1 orientation

WS1 = {p " R2: |l1-l2| & !p!& l1+l2}


WS2 = '

if l1 = l2 = "
!
!

Robotics 1

WS1 = {p " R2: !p!& 2"}


WS2 = {p = 0} (infinite number of feasible orientations at the origin)
6

Wrist position and E-E pose

inverse solutions for an articulated 6R robot


LEFT DOWN

Unimation PUMA 560

RIGHT DOWN

4 inverse solutions
out of singularities
(for the position of
the wrist center only)

LEFT UP

Robotics 1

8 inverse solutions considering


the complete E-E pose
(spherical wrist: 2 alternative
solutions for the last 3 joints)

RIGHT UP

Counting and visualizing the 8 solutions


to the inverse kinematics of a Unimation Puma 560

RIGHT UP

RIGHT DOWN

LEFT UP

LEFT DOWN

Robotics 1

Multiplicity of solutions
some examples

E-E positioning of a planar 2R robot arm


!
!
!

singular solutions

E-E positioning of an articulated elbow-type 3R robot arm


!

2 regular solutions in WS1


1 solution on (WS1
for l1 = l2: ) solutions in WS2
4 regular solutions in WS1

spatial 6R robot arms


!

& 16 distinct solutions, out of singularities: this upper bound of


solutions was shown to be attained by a particular instance of
orthogonal robot, i.e., with twist angles *i = 0 or +/2 (,i)
analysis based on algebraic transformations of robot kinematics
!

Robotics 1

transcendental equations are transformed into a single polynomial


equation of one variable
seek for an equivalent polynomial equation of the least possible degree
9

A planar 3R arm

workspace and number/type of inverse solutions


q3

y
l2
l1

q1

q2

l1 = l2 = l3 = "

l3

WS1 = {p " R2: !p!& 3"}


WS2 = {p " R2: !p!& "}
x

any planar orientation is feasible in WS2

1. in WS1 : )1 regular solutions (except for 2. and 3.),


at which the E-E can take a continuum of
) orientations (but not all orientations in the plane!)
2. if !p!= 3" : only 1 solution, singular
3. if !p!=

" : )1 solutions, 3 of which singular

4. if !p!<

" : )1 regular solutions (never singular)

Robotics 1

10

Multiplicity of solutions
summary of the general cases

if m = n
!
!
!

if m < n (robot is redundant for the kinematic task)


!
!
!

! solutions
a finite number of solutions (regular/generic case)
degenerate solutions: infinite or finite set, but anyway
different in number from the generic case (singularity)
! solutions
)n-m solutions (regular/generic case)
a finite or infinite number of singular solutions

use of the term singularity will become clearer when dealing


with differential kinematics
!
!

instantaneous velocity mapping from joint to task velocity


lack of full rank of the associated m"n Jacobian matrix J(q)

Robotics 1

11

Dexter robot (8R arm)


!
!
!

m = 6 (position and orientation of E-E)


n = 8 (all revolute joints)
)2 inverse kinematic solutions (redundancy degree = n-m = 2)

video

exploring inverse kinematic solutions by a self-motion


Robotics 1

12

Solution methods
ANALYTICAL solution
(in closed form)
" preferred, if it can be found*
" use ad-hoc geometric inspection
" algebraic methods (solution of
polynomial equations)
" systematic ways for generating a
reduced set of equations to be
solved
*

sufficient conditions for 6-dof arms

3 consecutive rotational joint axes are


incident (e.g., spherical wrist), or
3 consecutive rotational joint axes are
parallel

NUMERICAL solution
(in iterative form)
" certainly needed if n>m (redundant
case), or at/close to singularities
" slower, but easier to be set up
" in its basic form, it uses the
(analytical) Jacobian matrix of the
direct kinematics map

(fr (q)
Jr(q) =
(q

" Newton method, Gradient method,


and so on

D. Pieper, PhD thesis, Stanford University, 1968

Robotics 1

13

Inverse kinematics of planar 2R arm


y
py

l2
l1

direct kinematics

px = l1 c1 + l2 c12

q2

py = l1 s1 + l2 s12

q1
px

data

q1, q2 unknowns

squaring and summing the equations of the direct kinematics


px2 + py2 - (l12 + l22) = 2 l1 l2 (c1 c12 + s1 s12) = 2 l1 l2 c2
and from this
c2 = (px2 + py2 - l12 - l22)/ 2 l1 l2, s2 = -1 - c22
must be in [-1,1] (else, point p
is outside robot workspace!)
Robotics 1

in analytical form

q2 = ATAN2 {s2, c2}

2 solutions
14

Inverse kinematics of 2R arm


y
py

(contd)

by geometric inspection

q1 = * - .

q2
.
q1

*
px

2 solutions
(one for each value of s2)

x
q1 = ATAN2 {py, px} - ATAN2 {l2 s2 , l1 + l2 c2}

q2

{q1,q2}UP/LEFT

q2
q1
q1

Robotics 1

note: difference of ATAN2 needs


to be re-expressed in (-+ , +]!

{q1,q2}DOWN/RIGHT
q2 e q2 have same absolute
value, but opposite signs
15

Algebraic solution for q1


another
solution
method

px = l1 c1 + l2 c12 = l1 c1 + l2 (c1 c2 - s1 s2)


py = l1 s1 + l2 s12 = l1 s1 + l2 (s1c2 + c1s2)
l1 + l2c2 - l2s2
l2s2

l1 + l2c2

c1
s1

det = (l12 + l22 + 2 l1l2c2) > 0

linear in
s1 and c1

px
py
except for l1=l2 and c2=-1
being then q1 undefined
(singular case: )1 solutions)

q1 = ATAN2 {s1, c1} = ATAN2 {(py(l1+l2c2)-pxl2s2)/det, (px(l1+l2c2)+pyl2s2)/det}

Robotics 1

notes: a) this method provides directly the result in (-+ , +]


b) when evaluating ATAN2, det > 0 can be eliminated
from the expressions of s1 and c1

16

Inverse kinematics of polar (RRP) arm


pz

px = q3 c2 c1

q3

q2 is NOT a
DH variable!

py = q3 c2 s1
pz = d1 + q3 s2

q2
d1

px

px2 + py2 + (pz - d1)2 = q32

py
q1

q3 = + -px2 + py2 + (pz - d1)2


our choice: take here only the positive value...

if q3 = 0, then q1 and q2 remain both undefined (stop); else

(if it stops,
q2 = ATAN2{(pz - d1)/q3, -(px +
}
a singular case:
)2 or )1
if px2+py2 = 0, then q1 remains undefined (stop); else
solutions)
q1 = ATAN2{py/c2, px/c2} (2 regular solutions {q1,q2,q3})
2

Robotics 1

py2)/q32

we have eliminated q3>0 from both arguments!

17

Inverse kinematics
for robots with spherical wrist
j6

first 3 robot joints


of any type (RRR, RRP, PPP, )

j5

z0
y0
x0

j1

z4

z3

z5

j4

d6

y6

x6
O6 = p
z6 = a

find q1, , q6 from the input data:


p (origin O6)
R = [n s a] (orientation of RF6)

1. W = p - d6 a / q1, q2, q3 (inverse position kinematics for main axes)


2. R = 0R3(q1, q2, q3) 3R6(q4, q5, q6) / 3R6(q4, q5, q6) = 0R3T R / q4, q5, q6
(inverse orientation
known, Euler ZYZ or ZXZ
given
kinematics for wrist)
after 1. rotation matrix
Robotics 1

18

6R example: Unimation PUMA 600


spherical
wrist

n = 0x6(q)

s = 0y6(q)
a function of
q1, q2, q3 only!

a = 0z6(q)
p = 06(q)

Robotics 1

here d6=0,
so that 06=W directly

8 different inverse solutions


that can be found in closed form
(see Paul, Shimano, Mayer; 1981)

19

Numerical solution of
inverse kinematics problems
!

use when a closed-form solution q to rd = fr(q) does not exist


or is too hard to be found
(fr
(analytical Jacobian)
Jr(q) =
(q
Newton method (here for m=n)
!

rd = fr(q) = fr(qk) + Jr(qk) (q - qk) + o(!q - qk!2)

0 neglected

qk+1 = qk + Jr-1(qk) [rd - fr(qk)]


!
!
!
!

convergence if q0 (initial guess) is close enough to some q*: fr(q*) = rd


problems near singularities of the Jacobian matrix Jr(q)
in case of robot redundancy (m<n), use the pseudo-inverse Jr#(q)
has quadratic convergence rate when near to solution (fast!)

Robotics 1

20

Operation of Newton method


!
!

in the scalar case, also known as method of the tangent


for a differentiable function f(x), find a root of f(x)=0 by iterating as

x k+1

f(x k )
= xk "
f'(x k )

an approximating sequence

{x1 , x 2 , x 3 , x 4 , x 5 ,...}
animation from
http://en.wikipedia.org/wiki/File:NewtonIteration_Ani.gif

!
Robotics 1

21

Numerical solution of
inverse kinematics problems
!

(contd)

Gradient method (max descent)


!

minimize the error function

H(q) = # !rd - fr(q)!2 = # [rd - fr(q)]T [rd - fr(q)]


qk+1 = qk - * 1qH(qk)
from 1qH(q) = - JrT(q) [rd - fr(q)], we get

qk+1 = qk + * JrT(qk) [rd - fr(qk)]


!

the scalar step size * > 0 should be chosen so as to guarantee a


decrease of the error function at each iteration (too large values
for * may lead the method to miss the minimum)
when the step size * is too small, convergence is extremely slow

Robotics 1

22

Revisited as a feedback scheme


rd

+
-

Jr

T(q)

.
q

q(0)

2
3

r
fr(q)

rd = cost
(* = 1)

e = rd - fr(q) / 0 4 closed-loop equilibrium e=0 is asymptotically stable


V = # eTe 5 0 Lyapunov candidate function
.
.
.
T
d
(
T
T
V=e e=e
(rd - fr(q)) = - e Jr q = - eT Jr JrTe & 0
dt
.
in particular e = 0
V = 0 4 e " Ker(JrT)
asymptotic stability
Robotics 1

23

Properties of Gradient method


!

!
!
!

computationally simpler: Jacobian transpose, rather than its


(pseudo)-inverse
direct use also for robots that are redundant for the task
may not converge to a solution, but it never diverges
the discrete time evolution of the continuous scheme

qk+1 = qk + 6T JrT(qk) [rd - f(qk)]


!

(* = 6T)

is equivalent to an iteration of the Gradient method


scheme can be accelerated by using a gain matrix K>0

.
q = JrT(q) K e

note: K can be used also to escape from being stuck in a stationary point,
by rotating the error e out of the kernel of JrT (if a singularity is encountered)
Robotics 1

24

A case study

analytic expressions of Newton and gradient iterations


!
!

2R robot with l1 = l2 = 1, desired end-effector position rd = pd = (1,1)


direct kinematic function and error
"1%
" c1 + c12 %
e = p d - fr (q) = $ ' - fr (q)
'
fr (q) = $
#1&
# s1 + s12 &
Jacobian matrix
" fr (q) #-(s1 + s12 ) -s12 &
Jr (q) =
=%
(
c
+
c
c
$
"q
1
12
12 '
!
!
Newton versus Gradient iteration
det Jr(q)

k+1

=q +

!
Robotics 1

1
s2

Jr -1(qk )

" c12
%
s12
$
'
-(c
+
c
)
-(s
+
s
)
# 1 12
1
12 &

!#
-(s1 + s12 ) c1 + c12 &
" %
(
-s
c
$
'
12
12
!
Jr T (qk )

q=q

ek

"1 - (c1 + c12 )%


$1 - (s + s )'
#
1
12 &

q=q k

q=q k

25

Error function
!

2R robot with l1=l2=1, desired end-effector position pd = (1,1)

e = pd - fr(q)

plot of !e!2 as a function of q = (q1,q2)


Robotics 1

two local minima


(inverse kinematic solutions)
26

Error reduction by Gradient method


!
!

flow of iterations along the negative (or anti-) gradient


two possible cases: convergence or stuck (at zero gradient)

start
one solution

local maximum

(stop if this is the initial guess)

saddle point

(stop after some iterations)

another start...
...the other solution

(q1,q2) =(0,!/2) (q1,q2) =(!/2,-!/2)


Robotics 1

(q1,q2)max =(-3!/4,0) (q1,q2)saddle =(!/4,0)


e " Ker(JrT) !

27

Convergence analysis

when does the gradient method gets stuck?


!

lack of convergence occurs when


!
!

the Jacobian matrix Jr(q) is singular (the robot is in a singular configuration)


AND the error is in the null space of JrT(q)
p
"1%
pd = $ '
#1&
q2

q1

#1 - 2 &
e = pd " p = %
(
$1 - 2 '

pd

"( 2
" -(s1 + s12 ) c1 + c12 %
J (q) = $
=$
'
-s12
c12 & q=q
#
#( 2
saddle
!
T
r

pd

(q1,q2)saddle =(!/4,0)

2%
'
2&

e " Ker(JrT)

e " Ker(JrT)
p
Robotics 1

(q1,q2)max =(-3!/4,0)

pd

e Ker(JrT) !!
p

(q1,q2) =(!/9,0)
28

Issues in implementation
initial guess q0

!
!

only one inverse solution is generated for each guess


multiple initializations for obtaining other solutions

optimal step size * in Gradient method

a constant step may work good initially, but not close to the
solution (or vice versa)
an adaptive one-dimensional line search (e.g., Armijos rule) could
be used to choose the best * at each iteration

stopping criteria

Cartesian error

(possibly, separate for !rd


position and orientation)
!

f(qk)!

!qk+1-qk! $ #q

understanding closeness to singularities

$min{J(qk)} % $0
Robotics 1

$#

algorithm
increment

numerical conditioning
of Jacobian matrix (SVD)

(or a simpler test on its determinant, for m=n)


29

Numerical tests on RRP robot


!

RRP/polar robot: desired E-E position rd = pd = (1, 1 ,1)


see slide 17, d1=0.5

the two (known) analytic solutions, with q3 % 0, are:


q* = (0.7854, 0.3398, 1.5)
q** = (q1*- +, + - q2*, q3*) = (-2.3562, 2.8018, 1.5)

# = 10-5 (max Cartesian error), #q =10-6 (min joint increment)

norms

kmax=15 (max iterations), |det(Jr)| $ 10-4 (closeness to singularity)

numerical performance of Gradient (with different


! test 1: q0 = (0, 0, 1) as initial guess

*) vs. Newton

test 2: q0 = (-+/4, +/2, 1) singular start, since c2=0 (see slide 17)

test 3: q0 = (0, +/2, 0) double singular start, since also q3=0

solution and plots with Matlab code

Robotics 1

30

Numerical test
!

-1

test 1: q0 = (0, 0, 1) as initial guess; evolution of error norm


Gradient: * = 0.5

Gradient: * = 1
too large, oscillates
around solution

slow, 15 (max)
iterations

good, converges
in 11 iterations

0.5710-5

Newton
very fast, converges
in 5 iterations

Gradient: * = 0.7

Cartesian errors
component-wise

ex

ey

ez

Robotics 1

0.1510-8

31

Numerical test
!

-1

test 1: q0 = (0, 0, 1) as initial guess; evolution of joint variables

Gradient:

*=1

not converging
to a solution

Gradient:

* = 0.7

converges in
11 iterations

Newton
converges in
5 iterations

both to solution q* = (0.7854, 0.3398, 1.5)


Robotics 1

32

Numerical test
!

-2

test 2: q0 = (-+/4, +/2, 1): singular start

error norms

Newton

with check of
singularity:
blocked at start
without check:
it diverges!

Gradient
* = 0.7

starts toward
solution, but
slowly stops
(in singularity):
when Cartesian error
vector e Ker(JrT)

Robotics 1

joint variables

!!

33

Numerical test

test 3: q0 = (0, +/2, 0): double singular start

Robotics 1

0.9610-5

Gradient (with * = 0.7)


starts toward solution
exits the double singularity
slowly converges in 19
iterations to the solution
q*=(0.7854, 0.3398, 1.5)

Newton
is either
blocked at start
or (w/o check)
explodes (NaN)!!

joint variables

Cartesian errors

error norm

-3

34

Final remarks
!

an efficient iterative scheme can be devised by combining


!

joint range limits are considered only at the end


!

check if the found solution is feasible, as for analytical methods

if the problem has to be solved on-line


!

initial iterations with Gradient method (sure but slow, having linear
convergence rate)
switch then to Newton method (quadratic terminal convergence rate)

execute iterations and associate an actual robot motion: repeat steps


at times t0, t1=t0+T, ..., tk=tk-1+T (e.g., every T=40 ms)
the good choice for the initial q0 at tk is the solution of the previous
problem at tk-1 (gives continuity, needs only 1-2 Newton iterations)
crossing of singularities and handling of joint range limits need
special care in this case

Jacobian-based inversion schemes are used also for kinematic


control, along a continuous task trajectory rd(t)

Robotics 1

35

You might also like