MASTERCLASS

# Robotic arms and forward kinematics

### Lessons

#### Share

#### Transcript

Consider a fairly standard industrial robot with 6 rotational joints. Trying to add a coordinate frame on link zero and going to add a coordinate frame on link 6 which is the end-effector frame the bit of the robot that actually does the work. And we talked about kinematic models which relate the pose of frame 6 with respect to frame zero and it's a function of the 6th joint angles of the robot. Let's say now that this robot exists in a factory and the factory is got its own world coordinate frame indicated over here. And we know the pose of the robot link zero with respect to the world coordinate frame. We called this the base transform of the robot. The pose of the robots end effector in the world coordinate frame can be attained for it's simply by compounding the base transform with the forward kinematic transform of the robot which is a function of the robot's joint angles.

Imagine now that I introduced another robot, this one's hanging upside down from the roof and we know its pose with respect to the world coordinate frame then we can write an expression for the end-effector pose of the second robot with respect to the world.

Now, let's look at the tool end of the robot. The kinematics give us the pose of the robots end effector but typically it actually does gives us the pose of some mounting flange on the end of the robot and we would like to affix some sort of tool to that. So, we are going to introduce the tool here, this is some kind of grinding tool that the robot is carrying. And of course, we're interested in the business end of this particular tool. We want to know the pose of this coordinate frame here. In with some careful measurement, we can determine the relative pose from the frame 6 to frame E and this would be constant relative pose.

So, now the pose of the end-effector, with respect to the world coordinate frame, can be written by this set of compounded poses. It's the base transform compounded with the kinematic model of the arm compounded with the constant tool transform from the mounting point to the business end of the tool.

Here's one of our previous MATLAB sessions where we were working with a model of the Puma-560 robot. We can see here under the table of the Denavit-Hartenberg parameters that there is a base transform matrix and a tool transform matrix and each of them corresponds to zero rotation and zero translation. But we can easily change the base transform of the robot for instance by adjusting the base property of the serial link robot object. So, I might change the translational path of the base transform. Perhaps, I will place the robot at 10 meters in the X direction and 15 meters in the Y direction and maybe I will put it up a little bit higher or move it up two meters in the Z direction. So, now the robot object has got a different base transform that we find.

Now, compute the forward kinematics of the robot, this is taken into account and we can see that the end-effector position now is quite different. The base transform is a very powerful function and I could set a more complex base transform. For instance, I could actually turn the robot upside down and I am going to rotate it around the x-axis by pi radians so this is what the robot base transform looks like now and if I again compute the forward kinematics for that same set joint angles, we'll see that the position of the robot end-effector is different and we can see that the orientation of the end-effector is very different the positive and minus signs in the rotations sub matrix are in different locations. So, I have effectively moved the robot and turn it upside down and that's very very easy to do with this concept of a base transform.

The other thing that I might want to do to the robot is to add a tool transform to it and do that by adjusting the tool property and I might declare that the tool has got an offset of zero in the x direction, zero in the Y direction and perhaps it's 0.2 meters in the Z direction which is pointing out of the mounting plate on the end of the robot. And now, you can see that the tool transform represents a finite displacement. And now, if I'm going to compute the forward kinematics for that particular set of joint angles, we'll see that the end-effector position is slightly different because now it's taking this tool transform into a count.

The pose of the working part of a robot’s tool depends on additional transforms. Where is the end of the tool with respect to the end of the arm, and where is the base of the robot with respect to the world?

### Skill level

Undergraduate mathematics

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.

### Rate this lesson

## Check your understanding

## Discussion

## Leave a comment

Please Sign In to leave a comment.

I wonder if a moving end-effector (eg a zoom lens on a camera) would mess things up but it would just mean the final transform was no longer fixed.

Sure, if the end effector changed shape then you need to use the instantaneous value of the end-effector transform. The fingers of a hand are a good example of this. You could have different tool transforms, one for each finger. Then you can put the robot on a mobile base and now you have a time varying base transform. If you know all the transforms they all just chain together.