MAE263B: Dynamics of Robotic Systems Discussion Section – Week5 : Jacobian (SCARA) Seungmin Jung 02.07.2020. Contents ❑ Jacobian with SCARA example • Velocity propagation • Direct differentiation ❑ Frame of Representation Kinematics Relations - Joint & Cartesian Spaces • A robot is often used to manipulate object attached to its tip (end effector). • The location of the robot tip may be specified using one of the following descriptions: • Joint Space • Cartesian Space / Operational Space R 0 NT = 0 0 N 0 PN 1 1 = 2 N {N} Euler Angles 0 PN X = 0 rN A minimal representation of orientation - Euler angles = A minimal representation of orientation - Euler angles Kinematics Relations - Forward & Inverse • The robot kinematic equations relate the two description of the robot tip location 1 = 2 N X = FK ( ) 0 PN X = 0 rN = IK ( X ) Tip Location in Joint Space Tip Location in Cartesian Space Velocity relationship : Jacobian Matrix – Joint velocity / End-effector velocity 1 d = [ ] = 2 dt N Tip Velocity in Joint Space vx v y v v d X = [ X ] = N = z dt N x y z Tip velocity in Cartesian Space Jacobian Matrix - Introduction • The velocity relationship : The relationship between the joint angle rates ( N ) and the translation and rotation velocities of the end effector ( x ). x = J ( ) • The relationship between the robot joint torques ( ) and the forces and moments ( F ) at the robot end effector (Static Conditions). = J ( )T F F Jacobian Matrix - Calculation Methods Differentiation the Forward Kinematics Eqs. Iterative Propagation (Velocities or Forces / Torques) Jacobian Matrix Jacobian Matrix - Introduction • In the field of robotics the Jacobian matrix describe the relationship between the joint angle rates ( N ) and the translation and rotation velocities of the end effector ( x ). This relationship is given by: x = J ( ) = J ( )−1 x Jacobian Matrix - Introduction • This expression can be expanded to: x y z = x y z • 6x1 Where: x – J ( ) – N – N – J ( ) 6xN 1 2 N Nx1 is a 6x1 vector of the end effector linear and angular velocities is a 6xN Jacobian matrix is a Nx1 vector of the manipulator joint velocities is the number of joints Position Propagation • The homogeneous transform matrix provides a complete description of the linear and angular position relationship between adjacent links. i −1i R T = 0 i i −1 • i Pi −1 1 These descriptions may be combined together to describe the position of a link relative to the robot base frame {0}. T =o1T 12T i −1i T o i Velocity Propagation • Given: A manipulator - A chain of rigid bodies each one capable of moving relative to its neighbor • Problem: Calculate the linear and angular velocities of the link of a robot • Solution (Concept): Due to the robot structure (serial mechanism) we can compute the velocities of each link in order starting from the base. The velocity of link i+1 = The velocity of link i + whatever new velocity components were added by joint i+1 Velocity Propagation – Intuitive Explanation • Three Actions – The origin of frame B moves as a function of time with respect to the origin of frame A – Point Q moves with respect to frame B – Frame B rotates with respect to frame A along an axis defined by A B • Linear and Rotational Velocity – Vector Form VQ = AVBORG + BAR BVQ + A B BAR BPQ A – Matrix Form VQ = AVBORG + BAR BVQ + BAR (BA R BPQ ) A A B B PQ Velocity Propagation – Intuitive Explanation • Three Actions – The origin of frame B moves with respect to the origin of frame A – Point Q moves with respect to frame B – Frame B rotates with respect to frame A about an axis defined by A B A B B PQ VQ = AVBORG + BAR BVQ + BAR (BA R BPQ ) VQ = AVBORG + BAR BVQ + A B BAR BPQ A A Linear Velocity - Rigid Body • Given: Consider a frame {B} attached to a rigid body whereas frame {A} is fixed. The orientation of frame {A} with respect to frame {B} is not =0 changing as a function of time BAR Q B • Problem: describe the motion of of the vector B P relative to frame {A} PQ Q • Solution: Frame {B} is located relative to frame {A} by a position vector A PBORG and the rotation matrix BAR (assume that the orientation is not = 0 ) expressing changing in time BAR both components of the velocity in terms of frame {A} gives A B R = 0 VQ = AVBORG + A ( BVQ )= AVBORG + BAR BVQ A Instructor: Jacob Rosen Advanced Robotic - MAE 263D - Department of Mechanical & Aerospace Engineering - UCLA Frame - Velocity • As with any vector, a velocity vector may be described in terms of any frame, and this frame of reference is noted with a leading superscript. • A velocity vector computed in frame {B} and represented in frame {A} would be written Q Represented (Reference Frame) ( VQ ) = A B A dB PQ dt Computed (Measured) VBORG = 0 A R=0 A B VQ = AVBORG + BAR BVQ + A B BAR BPQ A VQ = AVBORG + BAR BVQ + BAR (BA R BPQ ) A Angular Velocity - Rigid Body • Given: Consider a frame {B} attached to a rigid body whereas frame {A} is fixed. The vector B PQ is constant as view from frame {B} BV = 0 Q • Problem: describe the velocity of the vector B PQ representing the the point Q relative to frame {A} • Solution: Even though the vector B P Q is constant as view from frame {B} it is clear that point Q will have a velocity as seen from frame {A} due to the rotational velocity A B B Q PQ VQ = 0 B VBORG = 0 A VQ = AVBORG + BAR BVQ + A B BAR BPQ A VQ = AVBORG + BAR BVQ + BAR (BA R BPQ ) A Angular Velocity - Rigid Body - Intuitive Approach • The figure shows to instants of time A as the vector PQ rotates around A B This is what an observer in frame {A} would observe. • The Magnitude of the differential change is A PQ = A ( A B t )( A PQ sin ) APQ A • PQ sin A PQ sin A Using a vector cross product we get APQ t = AVQ = A B APQ PQ (t ) PQ (t + t ) Simultaneous Linear and Rotational Velocity • The final results for the derivative of a vector in a moving frame (linear and rotation velocities) as seen from a stationary frame • Vector Form VQ = VBORG + R VQ + B R PQ A • A A B B A A B B Matrix Form VQ = AVBORG + BAR BVQ + BAR (BA R BPQ ) A A B B PQ Simultaneous Linear and Rotational Velocity • Linear and Rotational Velocity – Vector Form VQ = AVBORG + BAR BVQ + A B BAR BPQ A – Matrix Form VQ = AVBORG + BAR BVQ + BAR (BA R BPQ ) A • Angular Velocity – Vector Form – Matrix Form A A C C = A B + BAR B C R = BAR + BARCBR BA RT A B B PQ Velocity of Adjacent Links - Summary • Angular Velocity 0 - Prismatic Joint 0 i +1 i +1 =i +i1R ii + 0 i +1 • Linear Velocity 0 - Revolute Joint 0 i +1 vi +1 =i +i1R (i i Pi +1 + i vi ) + 0 di +1 The velocity of link i+1 = The velocity of link i + whatever new velocity components were added by joint i+1 Jacobian: Velocity propagation • Therefore the recursive expressions for the adjacent joint linear and angular velocities can be used to determine the Jacobian in the end effector frame N • X = N J ( ) This equation can be expanded to: N x y N N z v N X = = N N = x N y z J ( ) 1 2 N Velocity of Adjacent Links - Angular Velocity 5/5 • The result is a recursive equation that shows the angular velocity of one link in terms of the angular velocity of the previous link plus the relative motion of the two links. 0 i +1 i +1 =i +i1R ii + 0 i +1 • Since the term i +1 depends on all previous links through this recursion, the angular velocity is said to propagate from the base to subsequent links. i +1 Velocity of Adjacent Links - Angular Velocity 1/5 • From the relationship developed previously A • C = A B + BAR B C we can re-assign link names to calculate the velocity of any link i relative to the base frame {0} A→0 B→i C → i +1 0 • i +1 =0 i +0i Ri i +1 By pre-multiplying both sides of the equation by of reference for the base {0} to frame {i+1} i +1 0 R ,we can convert the frame Velocity of Adjacent Links - Angular Velocity 2/5 i +1 0 • R0 i +1 =i +01R0 i +i +01R0i Ri i +1 Using the recently defined notation, we have i +1 =i +1i +i +i1Ri i +1 i +1 i +1 i +1 - Angular velocity of frame {i+1} measured relative to the robot base, and expressed in frame {i+1} - Recall the car example c wV =c v c c i +1 Angular velocity of frame {i} measured relative to the robot base, and i expressed in frame {i+1} i +1 i - Angular velocity of frame {i+1} measured relative to frame {i} and i R i +1 expressed in frame {i+1} Velocity of Adjacent Links - Angular Velocity 3/5 i +1 =i +1i +i +i1Ri i +1 i +1 • Angular velocity of frame {i} measured relative to the robot base, expressed in frame {i+1} i =i +i1Rii i +1 Velocity of Adjacent Links - Angular Velocity 4/5 i +1 =i +1i +i +i1Ri i +1 i +1 • • • Angular velocity of frame {i+1} measured (differentiate) in frame {i} and represented (expressed) in frame {i+1} Assuming that a joint has only 1 DOF. The joint configuration can be either revolute joint (angular velocity) or prismatic joint (Linear velocity). Based on the frame attachment convention in which we assign the Z axis pointing along the i+1 joint axis such that the two are coincide (rotations of a link is preformed only along its Z- axis) we can rewrite this term as follows: 3 2 i+1 i 1 0 i +1 i i R i +1 = 0 i +1 SCARA – RRRP – DH Parameter (Modified form) SCARA – RRRP SCARA – RRRP – Forward Kinematics Simplify Function SCARA example _ Jacobian: Velocity propagation • The recursive equation for the Angular Velocity is 0 𝜌 = 0 𝑖𝑛 𝑡ℎ𝑒 𝑝𝑟𝑖𝑠𝑚𝑎𝑡𝑖𝑐 𝑗𝑜𝑖𝑛𝑡 𝑖+1 𝑖 𝑖+1 𝜔𝑖+1 = 𝑖 𝑅 𝜔𝑖 + 𝜌 0 , 𝝆 = 𝟏 𝒊𝒏 𝒕𝒉𝒆 𝒓𝒆𝒗𝒐𝒍𝒖𝒕𝒆 𝒋𝒐𝒊𝒏𝒕 𝜃ሶ𝑖+1 𝑖+1 𝑖𝑅 𝑇 is the transpose of 𝑖+1𝑖𝑅 ( 𝑖+1𝑖𝑅 = 𝑖+1𝑖𝑅 ) and 𝑖+1𝑖𝑅 = 𝑖+1𝑖𝑇(1: 3,1: 3) 𝑖 𝑖+1𝑅 can be obtained from the transformation matrix in the forward kinematics. SCARA example _ Jacobian: Velocity propagation SCARA example _ Jacobian: Velocity propagation • • The recursive equation for the Angular Velocity is 0 𝜌 = 0 𝑖𝑛 𝑡ℎ𝑒 𝑝𝑟𝑖𝑠𝑚𝑎𝑡𝑖𝑐 𝑗𝑜𝑖𝑛𝑡 𝑖+1 𝑖 𝑖+1 𝜔𝑖+1 = 𝑖 𝑅 𝜔𝑖 + 𝜌 0 , 𝝆 = 𝟏 𝒊𝒏 𝒕𝒉𝒆 𝒓𝒆𝒗𝒐𝒍𝒖𝒕𝒆 𝒋𝒐𝒊𝒏𝒕 𝜃ሶ𝑖+1 The base frame does not move 0 • 0 𝜔0 = 0 (The base frame does not move) 0 Three revolute joints 0 1 1 0 𝜔1 = 0𝑅 𝜔0 + 0 𝜃ሶ1 • 0 2 2 1 𝜔2 = 1𝑅 𝜔1 + 0 𝜃ሶ 2 One prismatic joint 4 𝜔4 = 4 3 3 𝑅 𝜔3 0 0 + 𝜃ሶ4 = 0 0 3 𝜔3 = 32𝑅 2𝜔2 + 0 𝜃ሶ 3 SCARA example _ Jacobian: Velocity propagation SCARA example _ Jacobian: Velocity propagation • The recursive equation for Linear Velocity is • 0 𝜌 = 1 𝑖𝑛 𝑡ℎ𝑒 𝑝𝑟𝑖𝑠𝑚𝑎𝑡𝑖𝑐 𝑗𝑜𝑖𝑛𝑡 𝑣𝑖+1 = 𝜔𝑖 × 𝑃𝑖+1 + 𝑣𝑖 + 𝜌 0 , 𝝆 = 𝟎 𝒊𝒏 𝒕𝒉𝒆 𝒓𝒆𝒗𝒐𝒍𝒖𝒕𝒆 𝒋𝒐𝒊𝒏𝒕 𝑑ሶ The base frame does not move 𝑖+1 𝑖+1 𝑖𝑅 𝑖 𝑖 𝑖 0 • 0 𝑣0 = 0 0 Three revolute joints 1 𝑣1 = 10𝑅 2 𝑣2 = 21𝑅 3 𝑣3 = 32𝑅 • 0 𝜔0 × 0𝑃1 + 0𝑣0 1 𝜔1 × 1𝑃2 + 1𝑣1 2 𝜔2 × 2𝑃3 + 2𝑣2 One prismatic joint 4 𝑣4 = 43𝑅 3 𝜔3 × 3𝑃4 + 3𝑣3 0 + 0 𝑑4ሶ SCARA example Jacobian: Velocity propagation SCARA example _ Jacobian: Velocity propagation • 4 4 The Jacobian 𝐽4 is defined as 𝑣4 = 4 𝜔4 4 𝐽4 4 4 𝑣4,1 4 4 𝑣4,2 4 4 𝑣4,3 𝑣4,1 𝑣4,2 4 • 𝑣4 According to the definition 4 = 𝜔4 𝜃ሶ1 𝜃ሶ2 𝜃ሶ3 𝑑ሶ 4 𝑣4,3 , 4 4 𝑤4,1 4 𝑤4,2 4 4 𝑤4,3 4 𝑤4,1 𝑤4,2 𝑤4,3 = 4 𝐽4 𝜃ሶ1 𝜃ሶ2 𝜃ሶ3 𝑑4ሶ SCARA example _ Jacobian: Velocity propagation Jacobian: Frame of Representation • The Jacobian provides the relationship between the end effector’s Cartesian velocity measured relative to the robot base frame {0} • For velocity expressed in frame {N} N • X = N J ( ) For velocity expressed in frame {0} 0 X =0J ( ) Instructor: Jacob Rosen Advanced Robotic - MAE 263D - Department of Mechanical & Aerospace Engineering - UCLA Jacobian: Frame of Representation • Consider the velocities in a different frame {B} B vN B B X = B = J ( ) N • We may use the rotation matrix to find the velocities in frame {A}: A • A A B v R v N B X = A = A B N N B R N The Jacobian transformation is given by a rotation matrix A X = AJ ( )= BARJ B J ( ) Instructor: Jacob Rosen Advanced Robotic - MAE 263D - Department of Mechanical & Aerospace Engineering - UCLA Jacobian: Frame of Representation • where A B RJ is given by A BR A B RJ = 0 0 0 0 0 0 0 0 0 or equivalently, A BR A J ( ) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A BR 0 0 0 0 0 0 0 0 0 B J ( ) A BR Instructor: Jacob Rosen Advanced Robotic - MAE 263D - Department of Mechanical & Aerospace Engineering - UCLA Jacobian: Frame of Representation - 3R Example 0 4 R 0 J 4 ( ) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 J 4 ( ) 40 R Instructor: Jacob Rosen Advanced Robotic - MAE 263D - Department of Mechanical & Aerospace Engineering - UCLA Jacobian: Frame of Representation Jacobian: Direct Differentiation • This expression can be expanded to: x y z = x y z 6x1 J ( ) 6xN 1 2 N Nx1 Jacobian: Direct Differentiation Jacobian: Direct Differentiation 0 0 NR T = N 0 px l2 cos(t1 + t2 ) + l1 cos(t1 ) p = l sin(t + t ) + l sin(t ) 1 2 1 1 y 2 pz −d 4 px [−l2 sin(t1 + t2 ) − l1 sin(t1 )]t1 + [−l2 sin(t1 + t2 )]t2 p = [l cos(t + t ) − l cos(t )]t + [l cos(t + t )]t 1 2 1 1 1 2 1 2 2 y 2 pz −d 4 0 PN 1 Jacobian: Direct Differentiation (Jp) vx v = J p y vz t1 p x p = J t2 p y t3 pz d4 px l2 cos(t1 + t2 ) + l1 cos(t1 ) p = l sin(t + t ) + l sin(t ) 1 2 1 1 y 2 pz −d 4 px [−l2 sin(t1 + t2 ) − l1 sin(t1 )]t1 + [−l2 sin(t1 + t2 )]t2 p = [l cos(t + t ) − l cos(t )]t + [l cos(t + t )]t 1 2 1 1 1 2 1 2 2 y 2 pz −d 4 t1 px (−l2 sin(t1 + t2 ) − l1 sin(t1 )) (−l2 sin(t1 + t2 )) 0 0 p = (l cos(t + t ) − l cos(t )) (l cos(t + t )) 0 0 t2 1 2 1 1 2 1 2 y 2 t pz 3 0 0 0 −1 d4 Jacobian: Direct Differentiation (Jo) wx w = Jo y wz t1 w x w = Jo t2 y t3 wz d4 0 wx w = 0 y wz 1 + 2 + 3 + 0 1 wx 0 0 0 0 w = 0 0 0 0 2 y wz 1 1 1 0 3 d 4 Jacobian: Direct Differentiation Jacobian: Direct Differentiation Jacobian: Direct Differentiation Jacobian: Direct Differentiation Jacobian: Direct Differentiation Jacobian: Direct Differentiation 𝐽𝑃1 = 𝑧0_1 × (𝑝𝑒 − 𝑝0_1 ) = ×( - )= 𝐽𝑃2 = 𝑧0_2 × (𝑝𝑒 − 𝑝0_2 ) = ×( - )= 𝐽𝑃3 = 𝑧0_3 × (𝑝𝑒 − 𝑝0_3 ) = 𝐽𝑃4 = 𝑧0_4 = ×( = - )= Jacobian: Direct Differentiation 𝐽𝑃1 = 𝑧0_1 × (𝑝𝑒 − 𝑝0_1 ) = ×( - )= 𝐽𝑃2 = 𝑧0_2 × (𝑝𝑒 − 𝑝0_2 ) = ×( - )= 𝐽𝑃3 = 𝑧0_3 × (𝑝𝑒 − 𝑝0_3 ) = 𝐽𝑃4 = 𝑧0_4 = ×( = - )= Jacobian: Direct Differentiation 𝑱= Jacobian: Direct Differentiation 𝑱𝑷 𝟏 𝑱𝑶𝟏 𝑱 𝑷𝟐 𝑱𝑶𝟐 𝑱 𝑷𝟑 𝑱𝑶𝟑 𝑱𝑷 𝟒 𝑱𝑶𝟒 Jacobian - Comparison Jacobian: Frame of Representation Summary ✓ Jacobian with SCARA example • Velocity propagation • Direct differentiation ✓ Frame of Representation