Module 02 - Robot Kinematics

Embed Size (px)

Citation preview

  • 8/3/2019 Module 02 - Robot Kinematics

    1/46

    ME 8209

    Robot Kinematics(Forward and Inverse)

  • 8/3/2019 Module 02 - Robot Kinematics

    2/46

    ME 8209

    Forward kinematics introduction

    Challenge: given all the joint parameters of a manipulator, determinethe position and orientation of the tool frame Tool frame: coordinate frame attached to the most distal link of the

    manipulator Inertial frame: fixed (immobile) coordinate system fixed to the most proximal

    link of a manipulator

    Therefore, we want a mapping between the tool frame and the inertialframe This will be a function of all joint parameters and the physical geometry of

    the manipulator

    Purely geometric: we do not worry about joint torques or dynamics (yet!)

  • 8/3/2019 Module 02 - Robot Kinematics

    3/46

    ME 8209

    Convention

    A n- DOF manipulator will have n joints (either revolute or prismatic) andn +1 links (since each joint connects two links) We assume that each joint only has one DOF. Although this may seem like

    it does not include things like spherical or universal joints, we can think ofmulti-DOF joints as a combination of 1DOF joints with zero length betweenthem

    The o 0 frame is the inertial frame o n is the tool frame Joint i connects links i -1 and i The o i is connected to link i

    Joint variables, q i

    prismaticisjointifrevoluteisjointif

    i d i

    q i

    i i

  • 8/3/2019 Module 02 - Robot Kinematics

    4/46

    ME 8209

    Convention

    We said that a homogeneous transformation allowed us to express theposition and orientation of o j with respect to o i what we want is the position and orientation of the tool frame with respect to

    the inertial frame An intermediate step is to determine the transformation matrix that gives

    position and orientation of o i with respect to o i -1: Ai Now we can define the transformation o j to o i as:

    i j j i j i

    T

    I AAAA

    T j i

    j i j i i i

    j

    if

    if if

    1

    21 ...

  • 8/3/2019 Module 02 - Robot Kinematics

    5/46

    ME 8209

    Convention

    Finally, the position and orientation of the tool frame with respect to theinertial frame is given by one homogeneous transformation matrix: For a n -DOF manipulator

    Thus, to fully define the forward kinematics for any serial manipulator,all we need to do is create the Ai transformations and perform matrixmultiplication

    But there are shortcuts

    n n n n n

    q Aq Aq AT o R

    H 22110

    00

    10

  • 8/3/2019 Module 02 - Robot Kinematics

    6/46

    ME 8209

    The Denavit-Hartenberg (DH) Convention

    Representing each individual homogeneous transformation as theproduct of four basic transformations:

    1000

    0

    1000

    0000

    0001

    1000

    01000010

    001

    1000

    1000010

    0001

    1000

    010000

    00

    ,,,,

    i

    i

    i

    i

    i

    x a x d z z i

    d c s

    s a s c c c s c a s s c s c

    c s s c

    a

    d c s

    s c

    A

    i i

    i i i i i i

    i i i i i i

    i i

    i i i i

    i i

    i i i i

    RotTransTransRot

  • 8/3/2019 Module 02 - Robot Kinematics

    7/46

    ME 8209

    The Denavit-Hartenberg (DH) Convention

    Four DH parameters: a i : link length i : link twist d i : link offset

    i : joint angle Since each Ai is a function of only one variable, three of these will be

    constant for each link d i will be variable for prismatic joints and i will be variable for revolute joints

    But we said any rigid body needs 6 parameters to describe its positionand orientation Three angles (Euler angles, for example) and a 3x1 position vector So how can there be just 4 DH parameters?...

  • 8/3/2019 Module 02 - Robot Kinematics

    8/46

    ME 8209

    Existence and uniqueness

    When can we represent a homogeneous transformation using the 4 DHparameters?

    For example, consider two coordinate frames o 0 and o 1 There is a unique homogeneous transformation between these two frames

    Now assume that the following holds:1. DH1:2. DH2:

    If these hold, we claim that thereexists a unique transformation A:

    01

    z x

    01

    z x

    10

    01

    01

    ,,,,

    o R

    A x a x d z z RotTransTransRot

  • 8/3/2019 Module 02 - Robot Kinematics

    9/46

    ME 8209

    Existence and uniqueness

    Proof:1. We assume that R 10 has the form:2. Use DH1 to verify the form of R 10

    Since the rows and columns of R 10 must be unit vectors: The remainder of R

    1

    0 follows from the properties ofrotation matrices

    Therefore our assumption that there exists a unique and that will give us R 10 is correct given DH1

    0

    1

    0

    0

    0

    31

    31

    21

    11

    0

    0

    0

    101

    r

    r

    r

    r

    z x z x

    T

    ,,01 x z R R R

    3332

    232221

    131211

    0

    1

    0 r r

    r r r

    r r r

    R

    1

    12

    332

    32

    221

    211

    r r

    r r

  • 8/3/2019 Module 02 - Robot Kinematics

    10/46

    ME 8209

    Existence and uniqueness

    Proof:1. Use DH2 to determine the form of o 10

    Since the two axes intersect, we can represent the line between the twoframes as a linear combination of the two axes (within the plane formed byx 1 and z 0 )

    d

    as ac

    s c

    a d o

    ax dz o z x

    01

    0

    0

    01

    01

    00

    0101

  • 8/3/2019 Module 02 - Robot Kinematics

    11/46

  • 8/3/2019 Module 02 - Robot Kinematics

    12/46

    ME 8209

    Assigning coordinate frames

    For any n -link manipulator, we can always choose coordinate framessuch that DH1 and DH2 are satisfied The choice is not unique, but the end result will always be the same

    1. Choose z i as axis of rotation for joint i +1

    z 0 is axis of rotation for joint 1, z 1 is axis of rotation for joint 2, etc If joint i +1 is revolute, z i is the axis of rotation of joint i +1 If joint i +1 is prismatic, z i is the axis of translation for joint i +1

  • 8/3/2019 Module 02 - Robot Kinematics

    13/46

    ME 8209

    Assigning coordinate frames

    2. Assign base frame Can be any point along z 0

    3. Chose x 0 , y 0 to follow the right-handed convention4. Now start an iterative process to define frame i with respect to frame i -1

    Consider three cases for the relationship of z i -1 and z i :i. z i -1 and z i are non-coplanarii. z i -1 and z i intersectiii. z i -1 and z i are parallel

    z i -1 and z i are coplanar

  • 8/3/2019 Module 02 - Robot Kinematics

    14/46

    ME 8209

    Assigning coordinate frames

    i. z i -1 and z i are non-coplanar There is a unique shortest distance between the two axes Choose this line segment to be x i

    o i is at the intersection of z i and x i Choose y

    i by right-handed convention

    ii. z i -1 and z i intersect Choose x i to be normal to the plane defined by z i and z i -1

    o i is at the intersection of z i and x i Choose y i by right-handed convention

    iii. z i -1 and z i are parallel Infinitely many normals of equal length between z i and z i -1 Free to choose o i anywhere along z i , however if we choose x i to be along

    the normal that intersects at o i -1, the resulting d i will be zero Choose y i by right-handed convention

  • 8/3/2019 Module 02 - Robot Kinematics

    15/46

    ME 8209

    Assigning tool frame

    The previous assignments are valid up to frame n -1 The tool frame assignment is most often defined by the axes n , s , a :

    a is the approach direction s is the sliding direction (direction along which the grippers open/close) n is the normal direction to a and s

  • 8/3/2019 Module 02 - Robot Kinematics

    16/46

    ME 8209

    Summary - General procedure for determining fwd. kinematics

    1. Label joint axes as z 0 , , z n-1 (axis z i is joint axis for joint i +1)2. Choose base frame: set o 0 on z 0 and choose x 0 and y 0 using right-

    handed convention3. For i =1: n -1,

    i. Place o i where the normal to z i and z i-1 intersects z i . If z i intersects z i-1, puto i at intersection. If z i and z i-1 are parallel, place o i along z i such that d i =0

    ii. x i is the common normal through o i , or normal to the plane formed by z i-1 and z i if the two intersect

    iii. Determine y i using right-handed convention4. Place the tool frame: set z n parallel to z n- 15. For i =1: n , fill in the table of DH parameters6. Form homogeneous transformation matrices, Ai 7. Create T n 0 that gives the position and orientation of the end-effector in

    the inertial frame

  • 8/3/2019 Module 02 - Robot Kinematics

    17/46

    ME 8209

    Example 1: two-link planar manipulator

    2DOF: need to assign three coordinate frames1. Choose z 0 axis (axis of rotation for joint 1, base frame)2. Choose z 1 axis (axis of rotation for joint 2)3. Choose z 2 axis (tool frame)

    This is arbitrary for this case since we have described no wrist/gripper Instead, define z 2 as parallel to z 1 and z 0 (for consistency)

    4. Choose x i axes All z i s are parallel Therefore choose x i to intersect o i -1

  • 8/3/2019 Module 02 - Robot Kinematics

    18/46

    ME 8209

    Example 1: two-link planar manipulator

    Now define DH parameters First, define the constant parameters a i , i Second, define the variable parameters i , d i

    The i terms are 0 because all z i are parallel Therefore only i are variable

    link a i i d i i

    1 a 1 0 0 12 a 2 0 0 2

    1000

    0100

    0

    0

    1000

    0100

    0

    0

    2222

    2222

    21111

    1111

    1

    s a c s c a s c

    As a c s c a s c

    A ,

    1000

    0100

    0

    0

    122111212

    122111212

    210

    2

    10

    1

    s a s a c s c a c a s c

    AAT

    AT

  • 8/3/2019 Module 02 - Robot Kinematics

    19/46

    ME 8209

    Example 2: three-link cylindrical robot

    3DOF: need to assign four coordinate frames1. Choose z 0 axis (axis of rotation for joint 1, base frame)2. Choose z 1 axis (axis of translation for joint 2)3. Choose z 2 axis (axis of translation for joint 3)4. Choose z

    3 axis (tool frame)

    This is again arbitrary for this case since we have described no wrist/gripper Instead, define z 3 as parallel to z 2

  • 8/3/2019 Module 02 - Robot Kinematics

    20/46

    ME 8209

    Example 2: three-link cylindrical robot

    Now define DH parameters First, define the constant parameters a i , i Second, define the variable parameters i , d i

    link a i i d i i

    1 0 0 d 1 1

    2 0 -90 d 2 0 3 0 0 d

    3 0

    1000

    100

    0010

    0001

    1000

    010

    0100

    0001

    1000

    100

    00

    00

    33

    22

    1

    11

    11

    1 d A

    d A

    d c s s c

    A ,,

    1000

    010

    0

    0

    21

    3111

    3111

    3210

    3 d d d c c s

    d s s c

    AAAT

  • 8/3/2019 Module 02 - Robot Kinematics

    21/46

    ME 8209

    Example 3: spherical wrist

    3DOF: need to assign four coordinate frames yaw, pitch, roll ( 4 , 5 , 6 ) all intersecting at one point o (wrist center)

  • 8/3/2019 Module 02 - Robot Kinematics

    22/46

    ME 8209

    Example 3: spherical wrist

    link a i i d i i

    4 0 -90 0 4

    5 0 90 0 5 6 0 0 d

    6 6

    Now define DH parameters First, define the constant parameters a i , i Second, define the variable parameters i , d i

    1000

    100

    00

    00

    1000

    0010

    00

    00

    1000

    0010

    00

    00

    6

    66

    66

    355

    55

    244

    44

    1 d c s

    s c

    Ac s

    s c

    Ac s

    s c

    A ,,

    10006556565

    654546465464654

    654546465464654

    6543

    6 d c c c s c s d s s s s c c s c s s c c c s

    d s c s c c s s c c s s c c c

    AAAT

  • 8/3/2019 Module 02 - Robot Kinematics

    23/46

    ME 8209

    Example 4: cylindrical robot with spherical wrist

    6DOF: need to assign seven coordinate frames But we already did this for the previous two examples, so we can fill in the

    table of DH parameters:

    link a i i d i i

    1 0 0 d 1 1

    2 0 -90 d 2 0

    3 0 0 d 3 0

    4 0 -90 0 4 5 0 90 0 5 6 0 0 d 6 6

    o 3 , o 4 , o 5 are all atthe same point o c

  • 8/3/2019 Module 02 - Robot Kinematics

    24/46

    ME 8209

    Example 4: cylindrical robot with spherical wrist

    Note that z 3 (axis for joint 4) is collinear with z 2 (axis for joint 3), thus wecan make the following combination:

    1000333231

    232221

    131211

    36

    03

    06

    z

    y

    x

    d r r r

    d r r r d r r r

    T T T

    21654

    316516541

    316516541

    5433

    5154123

    5154113

    6465432

    651641654122

    651641654112

    6465431

    651641654121

    651641654111

    d d d s s d

    d c d c c d s c s d d s d c s d s c c d

    s s r

    c c s c s r c s s c c r c c c c s r

    c s c s s s s c c s r c s s c s c s c c c r

    s c c c s r c s c s s s c c c s r c s s s s c c c c c r

    z

    y

    x

  • 8/3/2019 Module 02 - Robot Kinematics

    25/46

    ME 8209

    Example 5: the Stanford manipulator

    6DOF: need to assign seven coordinate frames:1. Choose z 0 axis (axis of rotation for joint 1, base frame)2. Choose z 1-z 5 axes (axes of rotation/translation for joints 2-6)3. Choose x i axes4. Choose tool frame5. Fill in table of DH parameters:

    link a i i d i i

    1 0 -90 0 1

    2 0 90 d 2 2

    3 0 0 d 3 0

    4 0 -90 0 4

    5 0 90 0 5 6 0 0 d 6 6

  • 8/3/2019 Module 02 - Robot Kinematics

    26/46

    ME 8209

    Example 5: the Stanford manipulator

    Now determine the individual homogeneous transformations:

    1000

    100

    00

    00

    1000

    0010

    00

    00

    1000

    0010

    00

    00

    1000100

    0010

    0001

    1000010

    00

    00

    10000010

    00

    00

    6

    66

    66

    655

    55

    544

    44

    4

    33

    2

    22

    22

    2

    11

    11

    1

    d c s s c

    Ac s

    s c

    Ac s s c

    A

    d A

    d

    c s s c

    Ac s s c

    A

    ,,

    ,,

  • 8/3/2019 Module 02 - Robot Kinematics

    27/46

    ME 8209

    Example 5: the Stanford manipulator

    Finally, combine to give the complete description of the forwardkinematics:

    1000333231

    232221

    131211

    610

    6z

    y

    x

    d r r r d r r r d r r r

    AAT

    524526322155142541621321

    5412515421621321

    5254233

    54152542123

    54152542113

    65264654232

    646541652646542122

    646541652646542112

    65264654231

    646541652646542121

    646542652646542111

    s s c c c d d c d

    s s c s s c c s s c d d c d s s d s s s s c c s c c c d d s d s c d

    c c s c s r s s c c s s c c s r s s s c s s c c c r s s c c s s c c s r

    s c s c s c s s s c s s c c c s r c c s c s s s s s c s s c c c c r

    c s c s s c c c s r

    s c c c s c c s s s s c c c c s r s c c c s d c s s s s c c c c c r

    z

    y

    x

  • 8/3/2019 Module 02 - Robot Kinematics

    28/46

    ME 8209

    Example 6: the SCARA manipulator

    4DOF: need to assign five coordinate frames:1. Choose z 0 axis (axis of rotation for joint 1, base frame)2. Choose z 1-z 3 axes (axes of rotation/translation for joints 2-4)3. Choose x i axes4. Choose tool frame5. Fill in table of DH parameters:

    link a i i d i i

    1 a 1

    0 0

    1

    2 a 2 180 0 2

    3 0 0 d 3 0

    4 0 0 d 4 4

  • 8/3/2019 Module 02 - Robot Kinematics

    29/46

    ME 8209

    Example 6: the SCARA manipulator

    Now determine the individual homogeneous transformations:

    1000

    100

    00

    00

    1000

    100

    0010

    0001

    1000

    0100

    0

    0

    1000

    0100

    0

    0

    4

    44

    44

    43

    32222

    2222

    21111

    1111

    1 d c s s c

    Ad

    As a c s c a s c

    As a c s c a s c

    A ,,,

    1000100

    0

    0

    43

    12211412412412412

    12211412412412412

    410

    4

    d d

    s a s a c c s s s c c s c a c a c s s c s s c c

    AAT

  • 8/3/2019 Module 02 - Robot Kinematics

    30/46

    ME 8209

    Forward kinematics of parallel manipulators

    Parallel manipulator: two or more series chains connect the end-effector to the base (closed-chain)

    # of DOF for a parallel manipulator determined by taking the total DOFsfor all links and subtracting the number of constraints imposed by theclosed-chain configuration

    Grueblers formula (3D):

    j n

    i i j L f n n

    1

    6DOF#

    number of links*

    *excluding ground

    number of joints

    #DOF for joint i

  • 8/3/2019 Module 02 - Robot Kinematics

    31/46

    ME 8209

    Forward kinematics of parallel manipulators

    Grueblers formula (2D):

    Example (2D): Planar four-bar, n L = 3, n j = 4, f i = 1(for all joints)

    3(3-4)+4 = 1DOF Forward kinematics:

    j n

    i i j L f n n

    1

    3DOF#

    2tan

    2

    22cos

    1

    21

    22

    21

    22

    21

    LL

    LL

    L

  • 8/3/2019 Module 02 - Robot Kinematics

    32/46

    ME 8209

    Inverse Kinematics

    Find the values of joint parameters that will put the tool frame at adesired position and orientation (within the workspace) Given H :

    Find all solutions to:

    Noting that:

    This gives 12 (nontrivial) equations with n unknowns

    310

    SE o R

    H

    H q q T n n ,...,10

    n n n n q Aq Aq q T 1110 ,...,

  • 8/3/2019 Module 02 - Robot Kinematics

    33/46

    ME 8209

    For a given H :

    Find 1, 2 , d 3 , 4 , 5 , 6 :

    One solution: 1 = /2, 2 = /2, d 3 = 0.5, 4 = /2, 5 = 0, 6 = /2

    1000

    0001

    763.0100

    154.0010

    H

    Example: the Stanford manipulator

    0763.0

    154.0

    0

    1

    0

    0

    0

    1

    1

    0

    0

    52452632

    2155142541621321

    5412515421621321

    52542

    541525421

    541525421

    652646542

    6465416526465421

    6465416526465421

    652646542

    6465416526465421

    6465426526465421

    s s c c c d d c s s c s s c c s s c d d c d s s

    s s s s c c s c c c d d s d s c

    c c s c s

    s s c c s s c c s

    s s s c s s c c c

    s s c c s s c c s

    s c s c s c s s s c s s c c c s

    c c s c s s s s s c s s c c c c

    c s c s s c c c s

    s c c c s c c s s s s c c c c s

    s c c c s d c s s s s c c c c c

  • 8/3/2019 Module 02 - Robot Kinematics

    34/46

    ME 8209

    Inverse Kinematics

    The previous example shows how difficult it would be to obtain aclosed-form solution to the 12 equations

    Instead, we develop systematic methods based upon the manipulatorconfiguration

    For the forward kinematics there is always a unique solution Potentially complex nonlinear functions

    The inverse kinematics may or may not have a solution Solutions may or may not be unique Solutions may violate joint limits

    Closed-form solutions are ideal!

  • 8/3/2019 Module 02 - Robot Kinematics

    35/46

    ME 8209

    Overview: kinematic decoupling

    Appropriate for systems that have an arm a wrist Such that the wrist joint axes are aligned at a point

    For such systems, we can split the inverse kinematics problem into twoparts:

    1. Inverse position kinematics: position of the wrist center2. Inverse orientation kinematics: orientation of the wrist

    First, assume 6DOF, the last three intersecting at o c

    Use the position of the wrist center to determine the first three jointangles

    o q q o

    R q q R

    6106

    6106

    ,...,

    ,...,

  • 8/3/2019 Module 02 - Robot Kinematics

    36/46

    ME 8209

    Overview: kinematic decoupling

    Now, origin of tool frame, o 6 , is a distance d 6 translated along z 5 (sincez 5 and z 6 are collinear) Thus, the third column of R is the direction of z 6 (w/ respect to the base

    frame) and we can write:

    Rearranging:

    Calling o = [o x o

    y o

    z ]T , o

    c

    0 = [x c y

    c z

    c ]T

    1

    0

    0

    606 R d o o o o c

    1

    0

    0

    6R d o o o

    c

    336

    236

    136

    r d o r d o r d o

    z y x

    z

    y

    x

    c

    c

    c

  • 8/3/2019 Module 02 - Robot Kinematics

    37/46

    ME 8209

    Overview: kinematic decoupling

    Since [ x c y c z c ]T are determined from the first three joint angles, ourforward kinematics expression now allows us to solve for the first three

    joint angles decoupled from the final three. Thus we now have R 3 0

    Note that:

    To solve for the final three joint angles:

    Since the last three joints for aspherical wrist, we can use a set ofEuler angles to solve for them

    36

    03 R R R

    R R R R R T 0310336

  • 8/3/2019 Module 02 - Robot Kinematics

    38/46

    ME 8209

    Inverse position

    Now that we have [ x c y c z c ]T we need to find q 1, q 2 , q 3 Solve for q i by projecting onto the x i-1, y i-1 plane, solve trig problem Two examples: elbow (RRR) and spherical (RRP) manipulators For example, for an elbow manipulator, to solve for 1, project the arm onto

    the x 0 , y 0 plane

  • 8/3/2019 Module 02 - Robot Kinematics

    39/46

    ME 8209

    Background: two argument atan

    We use atan2() instead of atan() to account for the full range ofangular solutions Called four -quadrant arctan

    0,00,02

    0,0

    0,0

    0,2

    ,2

    x y x y

    x y x y

    x y x y

    y x y

    x y

    undefined

    atan

    atan

    atan

    atan

  • 8/3/2019 Module 02 - Robot Kinematics

    40/46

    ME 8209

    Example: RRR manipulator

    1. To solve for 1, project the arm onto the x 0 , y 0 plane

    Can also have: This will of course change the solutions for 2 and 3

    c c y x ,21 atan

    c c y x ,21 atan

  • 8/3/2019 Module 02 - Robot Kinematics

    41/46

    ME 8209

    If there is an offset, then we willhave two solutions for 1: left arm and right arm However, wrist centers cannot

    intersect z 0

    If x c =y c =0, 1 is undefined i.e. any value of 1 will work

    Caveats: singular configurations, offsets

  • 8/3/2019 Module 02 - Robot Kinematics

    42/46

    ME 8209

    Left arm: Right arm:

    Left arm and right arm solutions

    d d y x

    y x

    c c

    c c

    ,2

    ,2

    222

    1

    atan

    atan-

    d d y x

    d d y x

    y x

    c c

    c c

    c c

    ,2

    ,2

    ,2

    222

    222

    1

    atan

    atan

    atan

  • 8/3/2019 Module 02 - Robot Kinematics

    43/46

    ME 8209

    Therefore there are in general two solutions for 1 Finding 2 and 3 is identical to the planar two-link manipulator we have

    seen previously:

    Therefore we can find two solutions for 3 :

    Left arm and right arm solutions

    D

    a a a a d z d y x

    d z s d y x r

    a a a a s r

    c c c

    c

    c c

    32

    23

    22

    21

    222

    3

    1

    2222

    32

    23

    22

    22

    3

    2cos

    2cos

    23 1,2 D D atan

  • 8/3/2019 Module 02 - Robot Kinematics

    44/46

    ME 8209

    The two solutions for 3 correspond to the elbow-down and elbow-uppositions respectively

    Now solve for 2 :

    Thus there are two solutions for the pair ( 2 , 3 )

    Left arm and right arm solutions

    333321222

    333322

    ,2,2

    ,2,2

    s a c a a d z d y x

    s a c a a s r

    c c c

    atanatan

    atanatan

  • 8/3/2019 Module 02 - Robot Kinematics

    45/46

    ME 8209

    In general, there will be a maximum of four solutions to the inverseposition kinematics of an elbow manipulator Ex: PUMA

    RRR: Four total solutions

  • 8/3/2019 Module 02 - Robot Kinematics

    46/46

    ME 8209

    Spherical configuration Solve for 1 using same method as with RRR

    Again, if there is an offset, therewill be left-arm and right-arm solutions

    Solve for 2 :

    Solve for d 3 :

    Example: RRP manipulator

    c c y x ,21 atan

    1

    222

    2 ,2

    d z s y x r

    r s

    c

    c c

    atan

    212222

    3

    d z y x

    s r d

    c c c