Robot Kinematics Robot Manipulators
● A robot manipulator is typically moved through its joints
● Revolute: rotate about an axis
● Prismatic: translate along an axis
SCARA 6 axes robot arm Other Robots
Mobile robots
Delta Robot Stewart Platform Kinematics
FORWARD Cartesian Space KINEMATICS Tool Frame (T) Joint Space B B Base Frame (B) [ RT, tT] = f(q) Joint 1 = q1 B B Joint 2 = q [ RT, tT ] 2 ... -1 B B B q = f ( [ RT, tT] ) Joint N = q RT :Orientation of T wrt B N B tT : Position of T wrt B INVERSE KINEMATICS
Rigid body motion Linear algebra Transformation between coordinate frames Transformation Within Joint Space
● Joint spaces are typically qC defined in Rn
Thus for a vector qB
we can use additions qA subtractions
Kinematics
FORWARD Cartesian Space KINEMATICS Tool Frame (T) Joint Space B B Base Frame (B) [ RT, tT] = f(q) Joint 1 = q1 B B Joint 2 = q [ RT, tT ] 2 ... -1 B B B q = f ( [ RT, tT] ) Joint N = q RT :Orientation of T wrt B N B tT : Position of T wrt B INVERSE KINEMATICS
Rigid body motion Linear algebra Transformation between coordinate frames Cartesian Transformation Position and Orientation
● Combine position and orientation:
● Special Euclidean Group: SE(3)
p A A B A p = RB p + tB Homogeneous representation
A A B p = EB p Cartesian Transformation Kinematic Chain
B EC
A A B C p = EB EC p
A EB
Cp Kinematics
FORWARD Cartesian Space KINEMATICS Tool Frame (T) Joint Space B B Base Frame (B) [ RT, tT] = f(q) Joint 1 = q1 B B Joint 2 = q [ RT, tT ] 2 ... -1 B B B q = f ( [ RT, tT] ) Joint N = q RT :Orientation of T wrt B N B tT : Position of T wrt B INVERSE KINEMATICS
Rigid body motion Linear algebra Transformation between coordinate frames Forward Kinematics Guidelines for assigning frames:
● There are several conventions
● Denavit Hartenberg (DH), modified DH, Hayati, etc.
● Choose the base and tool coordinate frame
● Make your life easy!
● Start from the base and move towards the tool
● Make your life easy!
● In general each actuator has a coordinate frame.
● Align each coordinate frame with a joint actuator Barrett WAM Forward Kinematics 2D
p y x q A A B t p = EB p y
x
Forward Kinematics Forward Kinematics 2D y Bp = BE Cp p C q2 B tC x y x
q1 A Ap = AE Bp tB B y
x Forward Kinematics 2D y p q2 B tC x y x B B C A A B Substituting p = EC p in p = EB p A A B C A gives p = EB EC p tB q A A C 1 p = EC p y
x Forward Kinematics Forward Kinematics 3D
q2 z p q1 z x y y
B A z x tC tB y
x Forward Kinematics
Kinematics
FORWARD Cartesian Space KINEMATICS Tool Frame (T) Joint Space B B Base Frame (B) [ RT, tT] = f(q) Joint 1 = q1 B B Joint 2 = q [ RT, tT ] 2 ... -1 B B B q = f ( [ RT, tT] ) Joint N = q RT :Orientation of T wrt B N B tT : Position of T wrt B INVERSE KINEMATICS
Rigid body motion Linear algebra Transformation between coordinate frames Inverse Kinematics 2D
p y x
t A B A q Given p, p, tB find q: y
x Inverse Kinematics 2D
p In practice, however, we are y x interested in solving the inverse kinematics for the basis vectors Bp = [ 0 0 ]T t q Bp = [ 1 0 ]T y Bp = [ 0 1 ]T which gives the friendlier solution x (using Bp = [ 1 0 ]T ) A acos( x – tx ) = q Inverse Kinematics 3D
Likewise, in 3D we want to solve for the q2 position and orientation of the last coordinate
z frame: Find q1 and q2 such that q1 z x y y Solving the inverse kinematics gets messy fast! A) For a robot with several joints, a symbolic B At z x tC solution can be difficult to get B B) A numerical solution (Newton’s method) is y more generic
Note that the inverse kinematics is NOT A -1 C x EC = EA Kinematics
JACOBIAN Cartesian Space Tool Frame (T) Joint Space Base Frame (B) [ v, w ]T = J(q) q ̇ Joint 1 = q̇ 1 Joint 2 = q̇ [ Bv , Bw ] 2 T T ...
-1 T B q ̇ = J (q) [ v, w ] Joint N = q̇ vT :linear vel. of T wrt B N B wT : angular vel. of T wrt B INVERSE JACOBIAN
Rigid body motion Linear algebra Transformation between coordinate frames Cartesian Transformation Linear and Angular Velocities
Given two coordinate systems A and B related by the A transformation EB , the velocity between A and B is given by
A EB
Where the “˄” indicates a skew symmetric matrix Kinematics
JACOBIAN Cartesian Space Tool Frame (T) Joint Space Base Frame (B) [ v, w ]T = J(q) q ̇ Joint 1 = q̇ 1 Joint 2 = q̇ [ Bv , Bw ] 2 T T ...
-1 T B q ̇ = J (q) [ v, w ] Joint N = q̇ vT :linear vel. of T wrt B N B wT : angular vel. of T wrt B INVERSE JACOBIAN
Rigid body motion Linear algebra Transformation between coordinate frames Manipulator Jacobian
Recall: The linear/angular velocity of the tool frame T in the base frame B
The “˅” operator is to extract the meaningful information from V̂
linear
angular Manipulator Jacobian
We change the time varying trajectory to be a time varying joint trajectory Derivative of the forward kinematics
wrt qi
Inverse of the forward kinematics
Applying the chain rule Manipulator Jacobian
Lets rewrite the previous result as
Where J(q) is a 6xN matrix called the manipulator Jacobian that relates joint velocities to Cartesian velocities Kinematics
JACOBIAN Cartesian Space Tool Frame (T) Joint Space Base Frame (B) [ v, w ]T = J(q) q ̇ Joint 1 = q̇ 1 Joint 2 = q̇ [ Bv , Bw ] 2 T T ...
-1 T B q ̇ = J (q) [ v, w ] Joint N = q̇ vT :linear vel. of T wrt B N B wT : angular vel. of T wrt B INVERSE JACOBIAN
Rigid body motion Linear algebra Transformation between coordinate frames Manipulator Jacobian
We just derived that given a vector of joint velocities, the velocity of the tool as seen in the base of the robot is given by
If, instead we want to tool to move with a velocity expressed in the base frame, the corresponding joint velocities can be computed by Manipulator Jacobian
If, instead we want to tool to move with a velocity expressed in the tool frame, we can first transform the velocity in the base frame and then use the inverse Jacobian to compute joint velocities Manipulator Jacobian
What if the Jacobian has no inverse? A) No solution: The velocity is impossible B) Infinity of solutions: Some joints can be moved without affecting the velocity (i.e. when two axes are colinnear) v The robot cannot move q3 In this in this direction when the configuration, robot is in this configuration. q1 and q3 can Hence J(q) is singular. counter rotate. q 1 q Hence J(q) is 2 singular. A) B) q1̇ = -q3̇