200 likes | 387 Views
ECE 450 Introduction to Robotics. Section: 50883 Instructor: Linda A. Gee 10/05/99 Lecture 10. Geometric Approach to Inverse Kinematics. Purpose: To generate an arm solution for the manipulator Example: PUMA-type Robot 6-link manipulator with rotary joints
E N D
ECE 450 Introduction to Robotics Section: 50883 Instructor: Linda A. Gee 10/05/99 Lecture 10
Geometric Approach to Inverse Kinematics • Purpose: To generate an arm solution for the manipulator • Example: PUMA-type Robot • 6-link manipulator with rotary joints • There are three configuration indicators: • ARM • ELBOW • WRIST
PUMA Robot *Fu, page 37
Inverse Kinematics Solution Properties • Two solutions are associated with the first three joints (i = 1, 2, 3) • One solution is associated with the last three joints (i = 4, 5, 6) • By solving the arm solution geometrically, a consistent solution is found
Inverse Kinematics Solution of PUMA Robot • For a 6-axis PUMA robot arm • Four solutions exist for the first three joints (i = 1, 2, 3) • Two solutions exist for the last three joints (i = 4, 5, 6)
Inverse Kinematics Solution cont’d • The first two indicators lead to a solution (1 of 4) for the first three joints • ARM • ELBOW • Third indicator leads to a solution (1 of 2) for the last three joints • WRIST • Arm configuration indicators are specified by the user for finding the inverse transform
Inverse Kinematic Solution cont’d • Calculate the solution in two steps: • Derive a position vector that points from the shoulder to the wrist • Obtain a solution to the joints (i = 1, 2, 3) by examining the projection of the position vector onto the xi-1 yi-1 plane • Solve for the last three joints by using the calculated joint solution from the first three joints • Use orientation submatrices 0Ti and i-1Ai (i = 4, 5, 6) • Projection of link coordinate frames onto xi-1 yi-1 plane
nx sx ax px 0T6 T = B-1refTtoolH-1 = ny sy ay py nz sz az pz 0 0 0 1 Inverse Kinematic Solution cont’d • Given refTtool, it is possible to find 0T6 by • premultiplying refTtool by B-1 • postmultiplying refTtool by H-1 • Apply the joint-angle solution to 0T6
Definition of Arm Configurations • RIGHT (shoulder) ARM • positive 2 moves the wrist in the positive z0 direction while joint 3 is inactive • LEFT (shoulder) ARM • positive 2 moves the wrist in the negative z0 direction while joint 3 is inactive
Arm Configurations cont’d • ABOVE ARM (elbow above wrist) • position of wrist of RIGHT/LEFT arm w.r.t. shoulder coordinate system has negative/positive coordinate value along the y2 axis • BELOW ARM (elbow below wrist) • position of wrist of RIGHT/LEFT arm w.r.t. shoulder coordinate system has negative/positive coordinate value along the y2 axis
Arm Configurations con’td • WRIST DOWN • the s unit vector of the hand coordinate system and the y5 unit vector of (x5, y5, z5) coordinate system have a positive dot product • WRIST UP • the s unit vector of the hand coordinate system and the y5 unit vector of (x5, y5, z5) coordinate system have a negative dot product
Arm Configurations and Solutions • Two indicators are defined for each arm configuration • ARM • ELBOW • Combine these to yield one solution of four possible for the first three joints • Third indicator • WRIST • gives one solution of two possible for the last three joints
Indicator Definitions • ARM • +1: RIGHT arm • -1: LEFT arm • ELBOW • +1: ABOVE arm • -1: BELOW arm • WRIST • +1: WRIST DOWN • -1: WRIST UP FLIP +1: Flip wrist orientation -1: Remains stationary
Arm Configurations *Fu, Page 63
Arm Solution for the First Three Joints (i = 1, 2, 3) • For the PUMA robot, • Define a position vector, p, that points from the origin of the shoulder coordinate system (x0, y0, z0) to the point of intersection of the last three joints p = p6 - d6a = (px, py, pz)T which represents the position vector 0T4
Hand Coordinate System *Fu, page 43
C1(a2C2 + a3C23 + d4S23) - d2S1 px py pz = S1(a2C2 + a3C23 + d4S23) +d2C1 d4C23 - a3S23 - a2S2 Arm Solution for the First Three Joints cont’d Position vector 0T4 :
Joint 1 Solution Method • Project p onto the x0y0 plane • Solve for 1 in terms of sin 1 and cos 1 • 1 = tan-1 (sin 1/cos 1)
R L + + - = = 1 1 Joint 1 Solution Setup y0 (px, py) radius = d2 L B Z1 A L X1 y0 x0 O (px, py) B Left Arm O x0 A R Z1 R X1 Right Arm