MASTERCLASS

# Robotic arms and forward kinematics

### Lessons

#### Share

#### Transcript

Let’s summarize what we’ve learned in this lecture and this lecture has been all about forward kinematics. That’s the problem of determining the pose of the robot tip or the robot’s end effector given a set of the joint coordinates, the things that vary as the robot moves. For a robot within joints, we denote the end effector pose as Ksi N and it is a function of the joint coordinates, which are vector of length N. And, we typically denote the vector of joint coordinates by the symbol Q and this function which maps the joint angles to the end effector pose, we denote by the symbol K, K for kinematic, the forward kinematic function. We looked at a number of examples about how to determine the robot tooltip pose. We did that by drawing the robot, by taking a reference coordinate frame attached to the base of the robot and then walking it through the robot mechanism. We would rotate it and translate it from the base of the robot through to the end effector.

We could then write down a sequence of elementary transformations, which we could expand and multiply out to come up with an expression for a homogeneous transformation which represents the pose of the robot’s end effector. So, we did it for a simple planar robot with just two joints and we also did it for a robot with four joints whose end effector moves in three-dimensional space. We did this for a number of robots that move in two dimensions and in three dimensions, and hope you got the idea about how you can write down this transformation expression almost by inspection, just by looking at the robot and, in your mind, walking a coordinate frame from the base of the robot through each of the links and each of the joints until it get to the end effector. It’s a very simple and very intuitive way of writing the expression for robot end effector pose.

We introduced the rather formal concept of a configuration space. As just mentioned, the configuration of a robot with N joints is the joint configuration vector. The elements in that vector or an angle if the joint is rotational, revolute, and it is a link if the joint is prismatic or sliding. The set of all of these vectors is referred to as the configuration space of the robot. It’s a subset of the N dimensional space of real numbers where N is the number of joints in the robot. The other concept that we introduced is the task space of the robot and this is the space of all possible end effector poses. For a two-dimensional robot, the task space is a subset of SE2 which is the set of all possible positions and orientations in the plane. For a three-dimensional robot, the task space is a subset of SE3, the set of all possible positions and orientations in three-dimensional space. For this 2-degree of freedom planar robot arm, its configuration space is a subset of the space of two-dimensional real numbers because the configuration can be described by two real numbers, Q1 and Q2. Its task space is also a subset of the two-dimensional space of real numbers and that’s because its end effector pose can be described by two real numbers, X and Y. We can describe the configuration and task space for a 3-degree of freedom Cartesian Gantry robot and we can also describe it for a 4-degree of freedom SCARA robot whose end effector moves in three dimensions.

Most functional real world robots, for example industrial robots, have got six joints. So, their configuration space is six dimensional. The task space is also six dimensional which means that the end effector can adopt an arbitrary position and an arbitrary orientation within the limits of the working volume of that particular robot. There is an important constraint that the dimension of the configuration space must be greater than or equal to the dimension of the task space. Here’s an example of a robot where the dimension of the configuration space is much bigger than the dimension of the task space. We refer to a robot like this as a redundant robot. So, although its task space is the same as that of a 6-degree of freedom robot like the Puma robot we looked at previously, it’s able to adopt any pose in three-dimensional space. Its configuration space is much bigger. It uses this logic configuration space so that it can control not only the end effector pose, but also the shape of the arm leading from the base to the end effector.

We introduced Denavit-Hartenberg notation. This involves attaching a coordinate frame to the far end of each link in the robot. And then, we can write an expression for the relative pose between consecutive link reference frames. The Denavit-Hartenberg notation is very concise. We can describe the relationship between frames using simply four parameters. This imposes a number of constraints though on where we place the link coordinate frames. And, the link coordinate frames do not necessarily physically lie on the links of the robots itself. A Denavit-Hartenberg notation allows us to very concisely describe any serial link mechanism. So, here is a very concise table which describes the kinematics of the two-link manipulator arm. The table has got two rows, one per joint, and it has got four columns, one column for each of the Denavit-Hartenberg parameters. Because this robot is all revolute, that means all of its joints are rotational. The joint coordinates fall in the Theta column.

We use a very similar table for a more complex robot like the Puma 560. The table still has four columns, but now it has got six rows, one row per joint of the robot. So, the most general way we can describe the kinematics of a robot arm is in terms of the kinematic function K and the parameters of this function are the joint configuration vector. And remember, that is a vector that contains either joint angles or joint offsets in the case of a prismatic joint, and a number of other vectors. We have a vector of joint angles, a vector of link offsets, a vector of link lengths, and a vector of link twists, and a vector of joint types whose elements describe whether the corresponding joint is revolute or prismatic.

Most of the elements of Theta, D, A and alpha are constant. The joint configuration vector Q contains the variables in the system and we substitute elements of Q in to elements of Theta, or elements of D according to the joint type which is given by the corresponding of the vector sigma.

Denavit-Hartenberg notation allows us to describe links and joints by a group of four elementary homogeneous transformations and we stack them in end on end, one group per joint of the robot. In the case of a robot where all the joints are revolute, we substitute the elements of the joint configuration vector, the vector Q in to the corresponding Theta elements. For the case of a robot that has got a prismatic joint as shown here. We substitute the corresponding joint configuration element in to the corresponding link of set element, in this case, D2.

The robot kinematic function tells us the relationship between the frame 0 and frame 6. And frequently, we might want to relate frame 0 to some sort of factory or world reference frame. So, we introduce a base transform that tells where link 0 is with respect to our world reference frame, and we denote that by Psi B. The forward kinematic function gives us the pose of frame 6 and frame 6 is typically attached to some sort of mounting plate or flange on the end of the robot. The actual tool, the thing that does the work, is attached to that particular flange. So, if we want to know the pose of the end of a tool, the end of the thing that’s doing the work which I’ve denoted here by frame E, then we introduce another relative pose. I call this KsiT and that stands for tool transform. We can write a pose expression for the pose of the end effector with respect to the world frame in terms of the base transform, the forward kinematic function, and the tool transform.

All robots have got a finite workspace. That’s the set of all reachable end point positions. All industrial robots come with a diagram like this in their data sheet which shows quite clearly the parts of the workspace that they can and cannot reach. In robotics, we’re interested in two kinematic problems. The forward kinematic problem has been the subject of this lecture, and that is given the joint angles, what is the pose of the robot's end effector, the robot’s tooltip. The subject of our next lecture is the inverse kinematic problem. That is given, when I have to design pose of the robot’s end effector, what joint angles do I require?

We summarise the important points from this masterclass.

### 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

## Discussion

## Leave a comment

Please Sign In to leave a comment.

Great course! Thanks for posting.

Lessons explained with great competence by Professor Peter Corke. Thanks!

Great content , Great Method and a Fantastic Instructor

Thanks a lot Professor For Your Efforts