An Introduction to Robot Kinematics Renata Melamud Other basic joints Revolute Joint 1 DOF ( Variable - ) Prismatic Joint 1 DOF (linear) (Variables - d) Spherical Joint 3 DOF ( Variables - 1, 2, 3) We are interested in two kinematics topics Forward Kinematics (angles to position) What you are given: The length of each link The angle of each joint What you can find: The position of any point (i.e. it’s (x, y, z) coordinates Inverse Kinematics (position to angles) What you are given: The length of each link The position of some point on the robot What you can find: The angles of each joint needed to obtain that position Quick Math Review Dot Product: a x a y Geometric Representation: A B A B cosθ A b x b y θ B Matrix Representation: a x b x A B a xb x a y b y a y b y Unit Vector Vector in the direction of a chosen vector but whose magnitude is 1. B uB B B uB Quick Matrix Review Matrix Multiplication: An (m x n) matrix A and an (n x p) matrix B, can be multiplied since the number of columns of A is equal to the number of rows of B. Non-Commutative Multiplication AB is NOT equal to BA a b e c d g f ae bg h ce dg af bh cf dh Matrix Addition: a b e c d g f a e h c g b f d h Basic Transformations Moving Between Coordinate Frames Translation Along the X-Axis Y O (VN,VO) VO P VN X Px Px = distance between the XY and NO coordinate planes Notation: V XY V X Y V V NO V N O V Px P 0 N Writing V XY in terms of V NO Y O VO P X V XY VN PX V N NO P V O V N Translation along the X-Axis and Y-Axis O Y VO VN X V XY P V NO P PX V N O P V Y XY Px PY N Using Basis Vectors Basis vectors are unit vectors that point along a coordinate axis O n o Unit vector along the N-Axis Unit vector along the N-Axis V NO Magnitude of the VNO vector VO o n V NO VN N NO V NO cosθ V NO n V N V cosθ O NO NO NO V V sinθ V cos(90 θ) V o Y Rotation (around the Z-Axis) Y X Z V VY VX X = Angle of rotation between the XY and NO coordinate axis V XY V X Y V V NO V N O V x Y V Unit vector along X-Axis Can be considered with respect to the XY coordinates or NO coordinates V V XY V NO VY X VX V X V XY cosα V NO cosα V NO x V (V n V o) x X N O (Substituting for VNO using the N and O components of the vector) V X V N (x n ) V O (x o) V N (cosθ) V O (cos(θ 90)) V N (cosθ) V O (sinθ) Similarly…. V Y V NO sinα V NO cos(90 α) V NO y V Y (V N n V O o) y V Y V N (y n) V O (y o) V N (cos(90 θ)) V O (cosθ) V N (sinθ) V O (cosθ) So…. V V (cosθ) V (sinθ) X N O V Y V N (sinθ) V O (cosθ) V XY V X Y V Written in Matrix Form V XY V X cosθ sinθ V N Y O V sinθ cosθ V Rotation Matrix about the z-axis Y1 (VN,VO) Y0 VNO VXY P X1 Translation along P followed by rotation by X0 V XY V X Px cosθ Y V Py sinθ sinθ V N cosθ V O (Note : Px, Py are relative to the original coordinate frame. Translation followed by rotation is different than rotation followed by translation.) In other words, knowing the coordinates of a point (VN,VO) in some coordinate frame (NO) you can find the position of that point relative to your original coordinate frame (X0Y0). HOMOGENEOUS REPRESENTATION Putting it all into a Matrix V XY V X Px cosθ Y V Py sinθ sinθ V N cosθ V O V X Px cosθ V Y Py sinθ 1 1 0 sinθ cosθ 0 V X cosθ V Y sinθ 1 0 cosθ H sinθ 0 sinθ cosθ 0 sinθ cosθ 0 Px Py 1 What we found by doing a translation and a rotation 0 V N 0 V O 1 1 Px V N Py V O 1 1 Padding with 0’s and 1’s Simplifying into a matrix form Homogenous Matrix for a Translation in XY plane, followed by a Rotation around the z-axis