850 likes | 1.04k Vues
Review of static and dynamic manipulator descriptions. Updates. Lab #1 writeup due today Lab #2 (inverse kinematics) next week (3/12) Prelab distributed today Lab #3 (velocity kinematics) tentatively scheduled for week of 3/19. Ch. 2: Rigid Body Motions and Homogeneous Transforms. 02_03.
E N D
Review of static and dynamic manipulator descriptions ES159/259
Updates • Lab #1 writeup due today • Lab #2 (inverse kinematics) next week (3/12) • Prelab distributed today • Lab #3 (velocity kinematics) tentatively scheduled for week of 3/19 ES159/259
Ch. 2: Rigid Body Motions and Homogeneous Transforms ES159/259
02_03 Rotation matrices • General 3D rotation: • Special cases • Basic rotation matrices ES159/259
02_03 Properties of rotation matrices • Summary: • Columns (rows) of R are mutually orthogonal • Each column (row) of R is a unit vector • The set of all n x n matrices that have these properties are called the Special Orthogonal group of order n ES159/259
02_03 Properties of rotation matrices (cont’d) • SO(3) is a group under multiplication • Closure: • Identity: • Inverse: • Associativity: • In general, members of SO(3) do not commute Allows us to combine rotations: ES159/259
02_05 Rotational transformations • Now assume p is a fixed point on the rigid object with fixed coordinate frame o1 • The point p can be represented in the frame o0 (p0) again by the projection onto the base frame ES159/259
02_09 Compositions of rotations • Summary: • Consecutive rotations w/ respect to the current reference frame: • Post-multiplying by successive rotation matrices • w/ respect to a fixed reference frame (o0) • Pre-multiplying by successive rotation matrices • We can also have hybrid compositions of rotations with respect to the current and a fixed frame using these same rules ES159/259
02_10 Parameterizing rotations • There are three parameters that need to be specified to create arbitrary rigid body rotations • We will describe three such parameterizations: • Euler angles • Roll, Pitch, Yaw angles • Axis/Angle ES159/259
02_10 Parameterizing rotations • Euler angles • Rotation by f about the z-axis, followed by q about the current y-axis, then y about the current z-axis ES159/259
Rigid motions • Rigid motion is a combination of rotation and translation • Defined by a rotation matrix (R) and a displacement vector (d) • the group of all rigid motions (d,R) is known as the Special Euclidean group, SE(3) • Consider three frames, o0, o1, and o2 and corresponding rotation matrices R21, and R10 • Let d21 be the vector from the origin o1 to o2, d10 from o0 to o1 • For a point p2 attached to o2, we can represent this vector in frames o0 and o1: ES159/259
Homogeneous transforms • We can represent rigid motions (rotations and translations) as matrix multiplication • Define: • Now the point p2 can be represented in frame o0: • Where the P0 and P1 are: ES159/259
Homogeneous transforms • Basic transforms: • Three pure translation, three pure rotation ES159/259
Ch. 3: Forward and Inverse Kinematics ES159/259
Forward kinematics introduction • Challenge: given all the joint parameters of a manipulator, determine the 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 inertial frame • 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!) ES159/259
Convention • A n-DOF manipulator will have n joints (either revolute or prismatic) and n+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 of multi-DOF joints as a combination of 1DOF joints with zero length between them • The o0 frame is the inertial frame • on is the tool frame • Joint i connects links i-1 and i • The oi is connected to link i • Joint variables, qi ES159/259
Convention • We said that a homogeneous transformation allowed us to express the position and orientation of oj with respect to oi • 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 oi with respect to oi-1: Ai • Now we can define the transformation oj to oi as: ES159/259
Convention • Finally, the position and orientation of the tool frame with respect to the inertial 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 matrix multiplication • But there are shortcuts… ES159/259
The Denavit-Hartenberg (DH) Convention • Representing each individual homogeneous transformation as the product of four basic transformations: ES159/259
The Denavit-Hartenberg (DH) Convention • Four DH parameters: • ai: link length • ai: link twist • di: link offset • qi: joint angle • Since each Ai is a function of only one variable, three of these will be constant for each link • di will be variable for prismatic joints and qi will be variable for revolute joints • But we said any rigid body needs 6 parameters to describe its position and orientation • Three angles (Euler angles, for example) and a 3x1 position vector • So how can there be just 4 DH parameters?... ES159/259
03_02 Existence and uniqueness • When can we represent a homogeneous transformation using the 4 DH parameters? • For example, consider two coordinate frames o0 and o1 • There is a unique homogeneous transformation between these two frames • Now assume that the following holds: • DH1: • DH2: • If these hold, we claim that there exists a unique transformation A: ES159/259
03_03 The physical basis for DH parameters • ai: link length, distance between the o0 and o1 (projected along x1) • ai: link twist, angle between z0 and z1 (measured around x1) • di: link offset, distance between o0 and o1 (projected along z0) • qi: joint angle, angle between x0 and x1 (measured around z0) ES159/259
03_04 Assigning coordinate frames • For any n-link manipulator, we can always choose coordinate frames such that DH1 and DH2 are satisfied • The choice is not unique, but the end result will always be the same • Choose zi as axis of rotation for joint i+1 • z0 is axis of rotation for joint 1, z1 is axis of rotation for joint 2, etc • If joint i+1 is revolute, zi is the axis of rotation of joint i+1 • If joint i+1 is prismatic, zi is the axis of translation for joint i+1 ES159/259
03_04 Assigning coordinate frames • Assign base frame • Can be any point along z0 • Chose x0, y0 to follow the right-handed convention • Now start an iterative process to define frame i with respect to frame i-1 • Consider three cases for the relationship of zi-1 and zi: • zi-1 and zi are non-coplanar • zi-1 and zi intersect • zi-1 and zi are parallel zi-1 and zi are coplanar ES159/259
03_04 Assigning coordinate frames • zi-1 and zi are non-coplanar • There is a unique shortest distance between the two axes • Choose this line segment to be xi • oi is at the intersection of zi and xi • Choose yi by right-handed convention • zi-1 and zi intersect • Choose xi to be normal to the plane defined by zi and zi-1 • oi is at the intersection of zi and xi • Choose yi by right-handed convention • zi-1 and zi are parallel • Infinitely many normals of equal length between zi and zi-1 • Free to choose oi anywhere along zi, however if we choose xi to be along the normal that intersects at oi-1, the resulting di will be zero • Choose yi by right-handed convention ES159/259
03_05 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 ES159/259
General procedure for determining forward kinematics • Label joint axes as z0, …, zn-1 (axis zi is joint axis for joint i+1) • Choose base frame: set o0 on z0 and choose x0 and y0 using right-handed convention • For i=1:n-1, • Place oi where the normal to zi and zi-1 intersects zi. If zi intersects zi-1, put oi at intersection. If zi and zi-1 are parallel, place oi along zi such that di=0 • xi is the common normal through oi, or normal to the plane formed by zi-1 and zi if the two intersect • Determine yi using right-handed convention • Place the tool frame: set zn parallel to zn-1 • For i=1:n, fill in the table of DH parameters • Form homogeneous transformation matrices, Ai • Create Tn0 that gives the position and orientation of the end-effector in the inertial frame ES159/259
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 DOFs for all links and subtracting the number of constraints imposed by the closed-chain configuration • Gruebler’s formula (3D): #DOF for joint i number of links* number of joints ES159/259 *excluding ground
Inverse Kinematics • Find the values of joint parameters that will put the tool frame at a desired position and orientation (within the workspace) • Given H: • Find all solutions to: • Noting that: • This gives 12 (nontrivial) equations with n unknowns • 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! ES159/259
03_12 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 two parts: • Inverse position kinematics: position of the wrist center • Inverse orientation kinematics: orientation of the wrist • First, assume 6DOF, the last three intersecting at oc • Use the position of the wrist center to determine the first three joint angles… ES159/259
03_12 Overview: kinematic decoupling • Now, origin of tool frame, o6, is a distance d6 translated along z5 (since z5 and z6 are collinear) • Thus, the third column of R is the direction of z6 (w/ respect to the base frame) and we can write: • Rearranging: • Calling o = [oxoyoz]T, oc0 = [xcyczc]T ES159/259
03_12 Overview: kinematic decoupling • Since [xcyczc]T are determined from the first three joint angles, our forward kinematics expression now allows us to solve for the first three joint angles decoupled from the final three. • Thus we now have R30 • Note that: • To solve for the final three joint angles: • Since the last three joints for a spherical wrist, we can use a set of Euler angles to solve for them ES159/259
03_13 Inverse position kinematics • Now that we have [xcyczc]T we need to find q1, q2, q3 • Solve for qi by projecting onto the xi-1, yi-1 plane, solve trig problem • Two examples • elbow (RRR) manipulator: 4 solutions (left-arm elbow-up, left-arm elbow-down, right-arm elbow-up, right-arm elbow-down) • spherical (RRP) manipulator: 2 solutions (left-arm, right-arm) ES159/259
03_20 RRR: Four total solutions • In general, there will be a maximum of four solutions to the inverse position kinematics of an elbow manipulator • Ex: PUMA ES159/259
Inverse orientation kinematics • Now that we can solve for the position of the wrist center (given kinematic decoupling), we can use the desired orientation of the end effector to solve for the last three joint angles • Finding a set of Euler angles corresponding to a desired rotation matrix R • We want the final three joint angles that give the orientation of the tool frame with respect to o3 (i.e. R63) ES159/259
Inverse Kinematics: general procedure • Find q1, q2, q3 such that the position of the wrist center is: • Using q1, q2, q3, determine R30 • Find Euler angles corresponding to the rotation matrix: inverse position kinematics inverse orientation kinematics ES159/259
Ch. 4: Velocity Kinematics ES159/259
Velocity Kinematics • We want to relate end-effector linear and angular velocities with the joint velocities • First we will discuss angular velocities about a fixed axis • Second we discuss angular velocities about arbitrary (moving) axes • We will then introduce the Jacobian • Instantaneous transformation between a vector in Rn representing joint velocities to a vector in R6 representing the linear and angular velocities of the end-effector ES159/259
Angular velocity: arbitrary axis • Skew-symmetric matrices • Definition: a matrix S is skew symmetric if: • i.e. • Let the elements of S be denoted sij, then by definition: • Thus there are only three independent entries in a skew symmetric matrix • Now we can use S as an operator for a vector a = [axayaz]T ES159/259
Angular velocity: arbitrary axis • Properties of skew-symmetric matrices • The operator S is linear • The operator S is known as the cross product operator • This can be seen by the definition of the cross product: ES159/259
Angular velocity: arbitrary axis • Properties of skew-symmetric matrices • For • This can be shown for and R as follows: • This can be shown by direct calculation. Finally: • For any ES159/259
Angular velocity: arbitrary axis • Consider that we have an angular velocity about an arbitrary axis • Further, let R = R(t) • Now the time derivative of R is: • Where w(t) is the angular velocity of the rotating frame • To show this, consider a point p fixed to a moving frame o1: ES159/259
Addition of velocities • Want to determine the angular and linear velocity of the end effector given combinations of joint velocities • Linear velocities use vector addition in the inertial frame • Angular velocities can be added once they are projected into the same coordinate frame. • This can be extended to calculate the angular velocity for an n-link manipulator: • Suppose we have an n-link manipulator whose coordinate frames are related as follows: • Now we want to find the rotation of the nth frame in the inertial frame: • We can define the angular velocity of the tool frame in the inertial frame: ES159/259
The Jacobian • Now we are ready to describe the relationship between the joint velocities and the end effector velocities. • Assume that we have an n-link manipulator with joint variables q1, q2, …, qn • Our homogeneous transformation matrix that defines the position and orientation of the end-effector in the inertial frame is: • We can call the angular velocity of the tool frame w0,n0 and: • Call the linear velocity of the end-effector: ES159/259
The Jacobian • Therefore, we want to come up with the following mappings: • Thus Jv and Jw are 3xn matrices • we can combine these into the following: • where: • J is called the Jacobian • 6xn where n is the number of joints ES159/259
Deriving Jw • Remember that each joint i rotates around the axis zi-1 • Thus we can represent the angular velocity of each frame with respect to the previous frame • If the ith joint is revolute, this is: • If the ith joint is prismatic, the angular velocity of frame i relative to frame i-1 is zero • Thus, based upon our rules of forming the equivalent angular velocity of the tool frame with respect to the base frame: • Where the term ri determines if joint i is revolute (ri =1) or prismatic (ri =0) ES159/259
Deriving Jv • End-effector velocity due to prismatic joints • Assume all joints are fixed other than the prismatic joint di • The motion of the end-effector is pure translation along zi-1 • Therefore, we can write the ith column of the Jacobian: ES159/259
Deriving Jv • End-effector velocity due to revolute joints • Assume all joints are fixed other than the revolute joint qi • The motion of the end-effector is given by: • Where the term r is the distance from the tool frame on to the frame oi-1 • Thus we can write the ith column of Jv: ES159/259
The complete Jacobian • The ith column of Jv is given by: • The ith column of Jw is given by: ES159/259
Singularities • We can now derive the Jacobian as a mapping given by the following: • This means that the columns of J form a basis for the space of possible end effector velocities • Thus, for the end effector to be able to achieve any arbitrary body velocity x, J must have rank 6 • We know that J is 6xn and that: • Thus, • For example, for the two link planar manipulator, • For example, for the Stanford manipulator, • Note that the columns the Jacobian of a kinematically redundant manipulator are never linearly independent ES159/259