Motion Planning for Articulated Robots 1 Jane Li Assistant - - PowerPoint PPT Presentation

motion planning for articulated robots 1
SMART_READER_LITE
LIVE PREVIEW

Motion Planning for Articulated Robots 1 Jane Li Assistant - - PowerPoint PPT Presentation

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON S RBE 550 Motion Planning for Articulated Robots 1 Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering http://users.wpi.edu/~zli11 RBE 550 MOTION PLANNING BASED


slide-1
SLIDE 1

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering http://users.wpi.edu/~zli11

Motion Planning for Articulated Robots 1

slide-2
SLIDE 2

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Recap

 We learned about planning algorithms that generalize across many types

  • f robots

 But many robots are articulated linkages

 Arms, humanoids, etc.

 Can we take advantage of this structure in motion planning?

 Yes! But we have to learn how these robots are controlled

slide-3
SLIDE 3

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Outline

 Computing the Jacobian  Using the Jacobian for inverse kinematics  Using the null space to satisfy secondary tasks  Recursive null-space projection

slide-4
SLIDE 4

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Definitions

 C-space is sometimes called joint space for

articulated robots

 Let N be the number of joints (i.e. the dimension of C-

space)

 The end-effector space is called task space

 In 2D: Task space is SE(2) = R2 X S1  In 3D: Task space is SE(3) = R3 X RP3  Let M be the number of DOF in task space

 A point in task space x is called a pose of the

end-effector

Joint Link End-Effector pose* (point is selected arbitrarily)

* Some people call this the Tool Center Point (TCP)

slide-5
SLIDE 5

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Forward Kinematics

 The Forward Kinematics function, given a configuration,

computes the pose of the end-effector:

 If N (number of joints) is greater than M (number of task space

DOF), the robot is called redundant

) (q FK x 

slide-6
SLIDE 6

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Redundancy

 If N>M, FK maps a continuum of configurations to one end-effector pose:  If N=M, FK maps a finite number of configurations to one end-effector pose:  If N<M, you’re in trouble (may not be able to reach a target pose)

C-space Task space FK C-space Task space FK

slide-7
SLIDE 7

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

C-space and Task Space

 For manipulation, we often don’t care about the configuration of the arm (as

long as it’s feasible), we care about what the end-effector is doing

 Controlling an articulated robot is all about computing a C-space motion that

does the right thing in task space

 Inverse Kinematics (IK) is the problem of computing a configuration that places

the end-effector at a given point in task space

 Analytical solutions exist for some robots if N=M  No unique solution if N > M, Why?

For N > M, what can we do?

slide-8
SLIDE 8

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

The Jacobian

 The Jacobian converts a velocity in C-space (dq/dt) to a velocity

in task space (dx/dt)

 Start with Forward Kinematics function  Take the derivative with respect to time:  Now we get the standard Jacobian equation:

) (q FK x 

dt dq dq q dFK dt q FK d dt dx ) ( )] ( [  

dt dq q J dt dx ) ( 

) ( ) ( q J dq q dFK 

slide-9
SLIDE 9

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Example

slide-10
SLIDE 10

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Computing the Jacobian

 The Jacobian – a matrix where each column represents the

effect of a unit motion of a joint on the end-effector

 For simple systems (i.e. up to 3 or 4 links), you can write the FK

function analytically and take its derivative to compute J(q)

) (

2 1

q J dq dx dq dx        

M N Here x is all the end-effector DOF (position and rotation)

slide-11
SLIDE 11

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

The Manipulator Jacobian

             

                 

 q

z q z q z q q x q q x q q x q J

n n n 1 1 2 1 2 1

    

    k Joint Revolute 1 k Joint Prismatic

k

q q J x   ) ( 

position rotation

slide-12
SLIDE 12

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Computing the Jacobian: Translation

 You can compute the translation part of J(q) numerically:

1.

Place the robot in configuration q

2.

For a translation (prismatic) joint:

3.

For a rotation (hinge) joint:

             

                 

 q

z q z q z q q x q q x q q x q J

n n n 1 1 2 1 2 1

    

Joint axis (z axis here) v1

i i

v dq dx  p1

i i i

p v dq dx  

slide-13
SLIDE 13

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Computing the Jacobian: Translation

slide-14
SLIDE 14

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Computing the Jacobian: Rotation

 Represent rotation components with angular velocities

1.

Place the robot in configuration q

2.

Extract joint axis in world frame

             

                 

 q

z q z q z q q x q q x q q x q J

n n n 1 1 2 1 2 1

    

 

i i

v q z 

Joint axis (z axis here) v1

slide-15
SLIDE 15

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Using the Jacobian for Inverse Kinematics (IK)

 Process:

 Starting at some configuration, iteratively move closer to xtarget  We need to invert the Jacobian to get the joint movement dq/dt

xtarget xcurrent

dt dq q J dt dx ) ( 

(xtarget– xcurrent) ???

slide-16
SLIDE 16

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Inverting the Jacobian

 If N=M,

 Jacobian is square  Standard matrix inverse

 If N>M ,

 Pseudo-Inverse  Weighted Pseudo-Inverse  Damped least squares  Iterative Jacobian Pseudo-Inverse

slide-17
SLIDE 17

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Pseudo-Inverse

 Cases

Fat Jacobian, redundant robot Square Jacobian, standard pseudo inverse Tall Jacobian, under-actuated robot

slide-18
SLIDE 18

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Behind Pseudo-inverse

 What does pseudo-inverse optimize? Where J is full (row)-rank matrix  Optimization

Minimize given that

slide-19
SLIDE 19

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Behind Pseudo-inverse

 Minimize given  Derive the optimization problem using Lagrange multipliers  Optimal condition

slide-20
SLIDE 20

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Weighted Pseudo-Inverse

 Weighted Pseudo-Inverse  What to optimize?  Significance of the weight

 W>0 and symmetric  Large weight  small joint velocity  Weight can be chosen proportional to the inverse of the joint angle range

Minimize given that

slide-21
SLIDE 21

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Singular Value Decomposition (SVD)

 The columns of U  eigenvectors of  The columns of V  eigenvectors of

slide-22
SLIDE 22

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Singular Value Decomposition (SVD)

The orthogonal basis for the subspace of joint velocity that generate non- zero task space velocities The orthogonal basis for the subspace of joint velocity that gives zero task space velocity Null space of J

slide-23
SLIDE 23

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Singular Value Decomposition (SVD)

The orthogonal basis for the subspace of achievable task space velocity The orthogonal basis for the subspace of task space velocities that can not be generated by the robots

slide-24
SLIDE 24

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Singular Value Decomposition (SVD)

The velocity transmission ratio from the joint space to the task space

slide-25
SLIDE 25

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Singular Value Decomposition (SVD)

slide-26
SLIDE 26

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Singular Value Decomposition (SVD)

slide-27
SLIDE 27

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Singular Value Decomposition (SVD)

where where

slide-28
SLIDE 28

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Singularities

 (J(q)TJ(q))-1 is square, but what if (J(q)TJ(q))-1 is singular

 E.g., we have lost a degree of freedom?

A singular configuration: no way to move in x! x y

slide-29
SLIDE 29

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Damped Least Squares

 Significance

 To render robust behavior when crossing the singularity, we can add a small

constant along the diagonal of (J(q)TJ(q)) to make it invertible when it is singular  “damped least-squares”

 The matrix will be invertible but this technique introduces a small

inaccuracy  error?

slide-30
SLIDE 30

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Damped Least Squares

 Induced error by DLS  Choice of the damping factor

 As a function the minimum singular value  measure of distance to

singularity

 Induce the damping only/mostly in the non-feasible direction of the task

slide-31
SLIDE 31

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Iterative Jacobian Pseudo-Inverse Inverse Kinematics

F

Xcurrent Xtarget

Configuration qcurrent

While true

Xcurrent = FK(qcurrent) 𝒚 = (xtarget - xcurrent) error = || 𝒚 || If error < threshold return Success 𝒓 = 𝑲 𝒓 + 𝒚 If(||𝒓 || > a) 𝒓 = a(𝒓 / ||𝒓 || ) qcurrent = qcurrent - 𝒓

end

  • This is a local method, it will get stuck in local minima (i.e. joint limits)!!!
  • a is the step size
  • Error handling not shown
  • A correction matrix has to be applied to the angular velocity components to map them into the

target frame (not shown)

slide-32
SLIDE 32

Null Space of Jacobian

slide-33
SLIDE 33

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Families of IK Solutions

 Consider  Family 4 – Flip Family 1 to left plane

slide-34
SLIDE 34

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

IK Solutions for Redundant Manipulators

IK Solution – Family 1

slide-35
SLIDE 35

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

IK Solutions for Redundant Manipulators

IK Solution – Family 2

slide-36
SLIDE 36

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

IK Solutions for Redundant Manipulators

IK Solution – Family 3

slide-37
SLIDE 37

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

IK Solutions for Redundant Manipulators

slide-38
SLIDE 38

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Families of IK Solutions

IK Solution – Family 1

slide-39
SLIDE 39

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Families of IK Solutions

IK Solution – Family 2

slide-40
SLIDE 40

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Families of IK Solutions

IK Solution – Family 3

slide-41
SLIDE 41

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Families of IK Solutions

slide-42
SLIDE 42

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

The Null-space of Jacobian

 We can try to satisfy secondary tasks in the null-space of the Jacobian pseudo-

inverse

 In linear algebra, the null-space of a matrix A is the set of vectors V such that,

for any v in V, 0 = ATv.

 You can prove that V is orthogonal to the range of A 

range of A V range of A V y x 2D example 3D example

slide-43
SLIDE 43

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

The Null-space of Jacobian

 For our purposes, this means that the secondary task will not disturb the

primary task

 The null-space projection matrix for the Jacobian pseudo-inverse is:  To project a vector into the null-space, just multiply it by the above

matrix

)) ( ) ( ( ) ( q J q J I q N

 

range of J(q)+ x

) (q N

range of secondary task v

v q N ) (

slide-44
SLIDE 44

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Why does this work?

 First, decompose v into two orthogonal parts:

range of A y x v r n

v A v r v n ˆ    

Need to find this

n r v  

Part of v that is in the left null-space of A Part of v that is in the range of A

v A A A v v A v A A v A v A n A

T T T T T T 1

) ( ˆ ˆ ) ˆ (

    

slide-45
SLIDE 45

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Why does this work?

 Use this relationship to get r  Now we can find n, the part of v that is in the left null-space of A

range of A y x v r n

v A A A v

T T 1

) ( ˆ

 v AA r v A A A A r v A r

T T  

  

1

) ( ˆ v AA I v AA v n ) (

 

   

This is the left null-space projection matrix

slide-46
SLIDE 46

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Why does this work?

 Now we plug in the Jacobian pseudo-inverse v q J q J I n q J A v AA I n )) ( ) ( ( ) ( ) (

  

    

This is N(q) range of J(q)+ y x

) (q N

range of secondary task v

v q N n ) ( 

r

slide-47
SLIDE 47

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Combining tasks using the null-space

 Combining the primary task dx1/dt and the secondary task dq2/dt :  Guaranteeing that the projection of q2 is orthogonal to J(q)+(dx1/dt)

 Assuming the system is linear

dt dq q J q J I dt dx q J dt dq

2 1

)) ( ) ( ( ) (

 

   

slide-48
SLIDE 48

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Using the Null-space

 The null-space is often used to “push” IK solvers away from

 Joint limits  Obstacles

 How do we define the secondary task for the two constraints

above?

dt dq q J q J I dt dx q J dt dq

2 1

)) ( ) ( ( ) (

 

   

slide-49
SLIDE 49

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Using the Null-space

dt dq q J q J I dt dx q J dt dq

2 1

)) ( ) ( ( ) (

 

   

Why do we need this?

What guarantees do we have about accomplishing the secondary task?

slide-50
SLIDE 50

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Recursive Null-space Projection

 What if you have three or more tasks?  The ith task is:  The ith null-space is:  The recursive null-space formula is then:

))) ( ( (

) 1 ( 4 3 3 2 2 1 1 n n T

N T N T N T N T dt dq

      dt dx q J T

i i i 

 ) (

)) ( ) ( ( q J q J I N

i i i i 

  

slide-51
SLIDE 51

RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON’S RBE 550

Recursive Null-space Projection

 You can do as many tasks as you want, right?  Sadly, no. Every time you go down a level, you loose degrees of

freedom.

 For example, let’s say we have a 6DOF manipulator. It’s primary

task is to place its end-effector at some 6D pose. What is the dimensionality of the null-space of this task?

))) ( ( (

) 1 ( 4 3 3 2 2 1 1 n n T

N T N T N T N T dt dq

     