Velocity of 3-Joint Planar Robot Arm
Let's now consider a slightly more complex example; this is a three link planar robot. As you will remember from the lecture about forward kinematics, a robot with three joints or three degrees of freedom, allows us to control the end effector pose, not just its position, it's X and it's Y, but also the orientation of the end effector.
We're going to label the link lengths of this robot and we're going to indicate the joint angles, Q1, Q2, and Q3. We're going to indicate the end effector pose which comprises an X and a Y component and an orientation theta. We've previously described how to write down an expression for the pose of the end effector in terms of two dimensional homogeneous transformations and it is a chain of transformations, rotation about Q1, translation along the link by an amount A1, rotation about Q2, translation along the second link by a distance to A2, rotation by join angle three and then a translation along link three by the distance A3. It's a little bit tedious but relatively straightforward to multiply all of the matrices together and I end up with a homogeneous transformation matrix, which represents the pose of the robot end effector and this is a three by three, homogeneous transformation matrix, in two dimensions.
You will recall that there are some parts of the matrix which represent the translational component of the pose and there are other parts of the matrix which represent the rotational part of the pose. Let's look first at the translational part that is these are two elements in the matrix up here and I can pull those out and they represent the X and Y co-ordinate of the end effector pose.
It's relatively simple to compute the derivate of these with respect to time and as we did earlier, I can write this in matrix form, so we have an expression for X dot and Y dot, in terms of a Jacobian Matrix and this time our Jacobian Matrix has got two rows and three columns and that is multiplied by a vector of joint angle velocities, Q1 dot, Q2 dot and Q3 dot. This is pretty straightforward. Let's look now at the rotational part and I'm going to pull that out. This is the rotational part of our pose, describes the orientation of the robot end effector.
We learnt very early on that the general form for a rotation matrix in two dimensions looks like this. By equating the arguments of the cos sign and sin functions here, it's pretty clear that we can write this for theta is equal to Q1 plus Q2 plus Q3.
If you think about the geometry of the problem then this result is actually not particularly surprising. Now I can take the derivative of theta with respect to time, so Q dot is equal to Q1 dot, plus Q2 dot, plus Q3 dot and once again I can factorize this and write it in matrix form.
Here is the expression for X dot and Y dot and here is the expression for theta dot. Now both of them are a matrix multiplied by a vector of joint angle velocities. I can combine these together basically I stack two matrices and I end up with a Jacobian Matrix which is three by three. Here I have the joint velocity and over here I have the spatial velocity of the robot end effector, but once again a linear relationship between joint velocity and spatial velocity of the end effector.
So for this three link, planar manipulator with joint angles Q1, Q2 and Q3, I can define and end effector velocity in terms of its translational velocity, that's it's X dot and Y dot component and also in terms of its rotational velocity; theta dot. So if I specify that, that’s what I want in my particular robot control problem, then computing the Jacobian and taking its inverse, I can compute the velocity of the joint angles that I need in order to achieve that end effector velocity.
We extend what we have learnt to a 3-link planar robot where we can also consider the rotational velocity of the end-effector.
This content assumes high school level mathematics and requires an understanding of undergraduate-level mathematics; for example, linear algebra - matrices, vectors, complex numbers, vector calculus and MATLAB programming.