Forward Kinematics
The goal of the forward kinematics problem is to solve for the location and orientation of the end effector in the base coordinate system. In our classic human arm example, this would be like holding my hand out to the side and being able to describe where my hand is and how it’s oriented based on the configuration of my joints. This is where everything that we’ve discussed comes together. Remember the transformation matrices we discussed? Transformation matrices allow you to go from one reference frame to another. We can find the transformation matrix between the base and end effector reference frames by starting at the base reference frame and multiplying by each successive reference at each successive joint. In other words: say if there are 5 joints, then the overall transformation matrix will be 0T4 (0 representing the starting frame and the 4 representing the last frame, with the ‘T’ standing for transformation) and it will be solved by multiplying together all of these successive transformation matrices: (0T1)(1T2)(2T3)(3T4). This resulting transformation frame will give us the X, Y, and Z location of the end-effector expressed in the base frame, as well as the rotation of the end effector frame – everything we need!
But what about the whole DH convention/procedure we discussed earlier – how does that fit in? The DH procedure helps us create these transformation matrices, and therefore is very necessary. As we go along the robot manipulator and create reference frames for each link according to the DH convention, we record the values of the four link parameters – the DH convention basically helps us find those values. We can then take these values and plug them into a ‘template’ transformation matrix, allowing us to easily create the transformation matrices we need. The tedious part of this is actually the DH procedure. Once you’ve gone through this, it’s pretty simply to create the transformation matrices.
Since you have to multiply all of these matrices together, the equations can get quite long. For example – if we want to find the 0T6 transformation matrix for a FANUC S-900W robot, the end result is a matrix with such long expressions that it will take up almost a page to write. Solving each expression is not difficult, it’s just a matter of plugging in values – and the angles are quite often either 0 degrees or 90 degrees, and so many of the trigonometric terms reduce to 0. The main difficulty lies in keeping your wits about you when you’re juggling so many terms. But of course, in any practical, real-world kinematics problem, you’ll be using a computer to do this for you.
The whole process, summarized
Okay, so now that we know all the pieces, let’s summarize the whole thing in a single paragraph:
For any given robot configuration, we need a process to find the location and orientation of the end effector frame with respect to the base frame. We can do this by first assigning reference frames to each link. In order to do this, we can follow DH convention (we don’t need to – we could use another convention) which gives us a procedure for assigning reference frames to each link. The process of assigning reference frames using the DH convention helps complete the information we need about each link and joint of the robot manipulator. For each link, we need to know the link length, the link offset, the link twist, and the joint angle. Once we’ve gone through the DH convention from the base frame to the end effector, we will have these four variables for each link (which we will have written down, probably in a table format, if we’re doing this by hand). Now, we can plug in this information to quickly create transformation matrices between each reference frame. For example, we can quickly create the transformation matrix 1T2, which specifies the rotation and position of reference frame {2} in relation to reference frame {1}. We’ll need create transformation matrices to jump from one link to the next as we move along the manipulator. In the end, we can multiply all of these matrices together, in order, and get a single matrix that tells us the position of the end effector reference frame in relation to the base frame – the transformation matrix that we were after the whole time.
Phew. If you managed to follow all of that, well, you’re a big step ahead in terms of learning about robotic manipulators. Of course, understanding the process and doing the math are two separate, but (in my opinion!), equally important things. Almost anyone can solve equations with the help of a computer. Sometimes it’s better to know why the hell you’re solving these equations in the first place.
Shouldn’t we use computers?
It is tedious to solve the forward kinematics of a robot manipulator by hand. We can only do one configuration at a time, and slowly. Obviously, with real functioning robots, software takes over this arduous task. As the computer needs to more or less continuously evaluate the forward kinematics to determine exactly where the end effector is, we need to consider computation efficiency somewhat. The calculations can be performed using a backwards recursive algorithm – which basically means solving a smaller version of the same problem, and as the using the solution again as the input for solving the next problem. Don’t worry about the implementation of this algorithm. Just know that the way we calculate it by hand and the way the computer can calculate may not be quite the same.