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 = [ax ay az]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 Thus RS(a)R^T is a similarity transform of S(a) ES159/259
Angular velocity: arbitrary axis Derivative of a rotation matrix let R be an arbitrary rotation matrix which is a function of a single variable q R(q)R(q)T=I Differentiating both sides (w/ respect to q) gives: Now define the matrix S as: Then ST is: Therefore S + ST = 0 and This says that computing the derivative of a rotation matrix R is equivalent to matrix multiplication by a skew symmetric matrix S ES159/259
Angular velocity: arbitrary axis Example: let R=Rx,q, then using the previous results we have: This verifies that our new derivation of the S matrix gives the same results as previously determined ES159/259
Angular velocity: arbitrary axis Now 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: This is seen using a nearly identical argument as the last derivation. ES159/259
Addition of angular velocities For most manipulators we will want to find the angular velocity of one frame due to the rotations of multiple frames We assume that there are no translational components: all coordinate frames have coincident origins Consider three frames: o0, o1, o2: To illustrate how the rotation of multiple frames is determined by the rotations of the individual frames, take the derivative of this rotation matrix: By our previous convention: Where w0,20 is the angular velocity corresponding to a rotation of R20 in the inertial frame w_{I,j} is the angular velocity corresponding to the derivative of R_j^i ES159/259
Addition of angular velocities Now the first term can be derived as follows: Where w0,10 is the angular velocity corresponding to a rotation of R10 in the inertial frame The second term is derived using the properties of so(n) Thus combining these results: from our definition of since because w_{I,j} is the angular velocity corresponding to the derivative of R_j^i ES159/259
Addition of angular velocities Further: And since Therefore 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: w_{I,j} is the angular velocity corresponding to the derivative of R_j^i ES159/259
Linear velocities The linear velocity of any point on a rigid body is the sum of the linear velocity of the rigid body and the velocity of the particle due to rotation of the rigid body First, the position of a point p attached to a rigid body is: Where o is the origin of the o1 frame expressed in the inertial frame To find the velocity, take the derivative as follows: Where v is the velocity of the rigid body in the inertial frame If the point p is moving relative to the rigid body, then we also need to take this in consideration we assume that p is fixed w/ respect to the rigid body 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 In this case, we use the notation w_n^0 as the angular velocity of the tool frame expressed in the inertial frame. 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 Jw Now Jw can simply be written as follows: There are n columns, each is 3x1, thus Jw is 3xn ES159/259
Deriving Jv Linear velocity of the end effector: Therefore we can simply write the ith column of Jv as: However, the linear velocity of the end effector can be due to the motion of revolute and/or prismatic joints Thus the end-effector velocity is a linear combination of the velocity due to the motion of each joint w/o L.O.G. we can assume all joint velocities are zero other than the ith joint This allows us to examine the end-effector velocity due to the motion of either a revolute or prismatic joint Linear velocity of the end-effector is from the chain rule 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
Example: two-link planar manipulator Calculate J for the following manipulator: Two joint angles, thus J is 6x2 Where: ES159/259
Example: velocity of an arbitrary point We can also use the Jacobian to calculate the velocity of any arbitrary point on the manipulator This is identical to placing the tool frame at any point of the manipulator ES159/259
Example: Stanford manipulator The configuration of the Stanford manipulator allows us to make the following simplifications: Where o is the common origin of the o3, o4, and o5 frames ES159/259
Example: Stanford manipulator 03_04tbl Example: Stanford manipulator From the forward kinematics of the Stanford manipulator, we calculated the homogeneous transformations for each joint: 03_04tbl.jpg ES159/259
Example: Stanford manipulator 03_04tbl Example: Stanford manipulator To complete the derivation of the Jacobian, we need the following quantities: z0, z1, … , z5, o0, o1, o3, o6 o3 is o and o0 = [0 0 0]T We determine these quantities by noting the construction of the T matrices oj is the first three elements of the last column of Tj0 zj is Rj0k, or equivalently, the first three elements of the third column of Tj0 Thus we can calculate the Jacobian by first determining the Tj0 Thus the zi terms are given as follows: 03_04tbl.jpg Remember that o3 is just o ES159/259
Example: Stanford manipulator 03_04tbl Example: Stanford manipulator And the oi terms are given as: Finally, the Jacobian can be assembled as follows: 03_04tbl.jpg ES159/259
Example: Stanford manipulator 03_04tbl Example: Stanford manipulator Finally, the Jacobian can be assembled as follows: 03_04tbl.jpg We call o6 = [dx dy dz]^T ES159/259
Example: SCARA manipulator 03_04tbl Example: SCARA manipulator Jacobian will be a 6x4 matrix Thus we will need to determine the following quantities: z0, z1, … , z3, o0, o1, o2, o4 Since all the joint axes are parallel, we can see the following: From the homogeneous transformation matrices we can determine the origins of the coordinate frames 03_04tbl.jpg ES159/259
Example: SCARA manipulator 03_04tbl Example: SCARA manipulator Thus o0, o1, o2, o4 are given by: Finally, we can assemble the Jacobian: 03_04tbl.jpg ES159/259
Next class… Formal definition of singularities Tool velocity manipulability ES159/259