5.1.1. Space Jacobian

This video introduces the space Jacobian, the Jacobian relating joint velocities to the end-effector twist expressed in the space frame.

In the previous video, the robot's end-effector velocity v_tip was the time derivative of a minimum set of coordinates describing the end-effector's configuration. The Jacobian J maps the joint velocities to v_tip. For this 2R robot, the Jacobian has two columns, one for each joint, which we call J_1 and J_2. Each column is the contribution to v_tip when the speed at that joint is 1 and the speed at all other joints is zero. In this video, the end-effector velocity will be represented by the twist V_s represented in the space frame {s}. We call the corresponding Jacobian the space Jacobian J_s. It also has two columns, one for each joint. Since V_s is a 6-vector and there are 2 joints, the space Jacobian is a 6 by 2 matrix. For a general open-chain robot with n joints, the space Jacobian is 6 by n. Each column of the space Jacobian is the spatial twist when that joint's velocity is 1 and the velocity at all other joints is zero.

To derive the form of the space Jacobian, let's use a specific example: a 5R arm, whose joint angle are given by theta_1 through theta_5. Then the space Jacobian is 6 by 5. Let's focus on J_s3, the third column of the space Jacobian, which corresponds to the spatial twist when the velocity at joint 3 is 1 and the velocity at all other joints is zero. If all joint angles are zero, then J_s3 is simply S3, the screw axis of joint 3 when the arm is at its zero configuration. We used this in Chapter 4 for the product of exponentials formula in the {s} frame.

To find the column of the space Jacobian, though, we need the spatial twist corresponding to a unit velocity at joint 3 when the robot is at an arbitrary configuration, not just the zero configuration. So let's start moving the joints of the robot and see how that affects J_s3.

First we rotate joint 5. Because joint 5 is not between joint 3 and the {s} frame, the relationship between joint 3 and the {s} frame is not affected by joint 5's angle. Therefore, J_s3 is unaffected by joint 5's value, and J_s3 is still equal to S3 at this configuration of the robot.

Now we rotate joint 4. Again, J_s3 is unaffected by joint 4's value.

Now we rotate joint 3. Again, the configuration of joint 3 relative to the {s} frame is unaffected by this motion, so J_s3 is unaffected by joint 3's value.

Now we rotate joint 2 by theta_2. Now we see that the configuration of joint 3 has moved relative to the {s} frame, so J_s3 must change. But, we've drawn a new frame {s-prime} that has the same relationship to joint 3 that the frame {s} had to joint 3 before joint 2 moved. Therefore, the twist due to a unit velocity at joint 3 in the {s-prime} frame is just S3, the spatial screw axis when the robot was at its zero configuration. The configuration of {s-prime} in the {s} frame can be written e to the bracket S2 theta_2, the displacement achieved by the {s} frame by following the screw axis of joint 2 by an angle theta_2.

Now we rotate joint 1 by theta_1. Again, joint 3 moves relative to the {s} frame, so J_s3 changes. We draw a new frame {s-double-prime} where the relationship between joint 3 and {s-double-prime} is the same as the relationship between joint 3 and {s} when the robot is at its zero configuration. The frame {s-double-prime} is obtained from the frame {s-prime} by rotating it about the joint 1 axis by an angle theta_1. Because the joint 1 axis is represented by the spatial screw axis S_1, performing the transformation in the space frame corresponds to multiplying T-s-s-prime by e to the bracket S_1 theta_1 on the left, yielding this expression for the {s-double-prime} frame in the {s} frame.

The reason we constructed this {s-double-prime} frame is that the screw axis of the third joint is the same in the {s-double-prime} frame as the screw axis S_3 of the third joint in the {s} frame when the arm is at its zero configuration. So, to find J_s3, we just need to express S_3, now corresponding to the screw axis in the {s-double-prime} frame, to the screw axis expressed in the {s} frame. We use our standard rule for changing the reference frame of a twist, which gives us this final expression.

The same reasoning applies for any joint, not just joint 3 of this 5R robot. Joint positions of joints between the joint and the {s} frame must be taken into account, while joint positions that do not affect the relationship between the joint and the {s} frame can be ignored. We can generalize to this definition of the space Jacobian J_s. The first column of the space Jacobian is just the screw axis S1 when the robot is at is zero configuration. It does not depend on the joint positions, because no joint is between joint 1 and the {s} frame. Any other column i of the space Jacobian is given by the screw axis S_i premultiplied by the transformation that expresses the screw axis in the {s} frame for arbitrary joint positions. You can see that J_s2 depends only on the position of joint 1, J_s3 depends only on the positions of joints 1 and 2, etcetera. Notice that no differentiation is necessary to calculate the Jacobian. Also, the space Jacobian is independent of the choice of the end-effector {b} frame.

In the next video we will do a similar derivation for the body Jacobian, where the end-effector twist is expressed in the end-effector frame {b}.