Forward kinematics, so named to distinguish it from inverse kinematics, is used extensively in the fields of robotics and computer animation. Essentially, what forward kinematics does is take a model of a physical system comprised of joints and links, and calculates the Cartesian coordinates of points along the linkage, given the joint angles and link lengths.

For example, consider this robot arm. This is called a two-link manipulator. The bottom link, l1, is connected to the (fixed) ground by a one-degree-of-freedom joint, j1. It connects to the second link, l2, by another one-DOF joint, j2. At the end of l2 is what is called the end effector. Its location in (x, y) coordinates is what we are calculating.

```                         #
###   (x, y)
/
l2    /
/
(O)  j2
\
\ l1
\  j1
____(O)____
```

(For the rest of this node, Θ1 will refer to the joint angle of j1, which is measured with respect to the ground, and Θ2 will refer to the joint angle of j2, which is measured with respect to l1.)

To begin calculating the forward kinematics, consider first the location of j2. From trigonometry, we can see that the x and y coordinates of the joint are:

x = l1 cos Θ1
y = l1 sin Θ1
Now consider the location of the end effector with respect to j2. Since Θ2 is measured from l1, the total angle between l2 and the ground is (Θ1 + Θ2). Therefore, the coordinates of the end effector, measured from j2 are:
x = l2 cos (Θ1 + Θ2)
y = l2 sin (Θ1 + Θ2)
Therefore the coordinates of the end effector, calculated with respect to the base of the robot, are:
x = l1 cos Θ1 + l2 cos (Θ1 + Θ2)
y = l1 sin Θ1 + l2 sin (Θ1 + Θ2)

From the example above, it seems that deriving the forward kinematics for a system is very simple, and indeed, the calculations are what would follow from common sense. However, I think it is also clear that as the system becomes more complex, the calculations involved grow more and more intricate. Imagine deriving the forward kinematics for a snake robot with 100 joints!

As I mentioned above, forward kinematics are used frequently in many fields. The applications to robotics should be obvious, given the example. Applications to computer graphics are also logical. After all, the human skeletal system is nothing more than a system of joints and links. For example, if I wanted to calculate the location of my hand (the end effector in this system), I would need to know the length of both segments of my arm, and the joint angles of my shoulder and elbow.

To the person who softlinked I don't know what the hell this means, but I'm voting it up anyways, please please ASK ME! I tried to write this as clearly as I could, but if there's something you don't understand, let me know so I can clarify it. This is meant to be informative. It doesn't do anyone any good if it doesn't make sense.

Log in or register to write something here or to contact authors.