Different Approach to Solving Inverse Kinematics
Let's recap what we've learnt about solving the inverse Kinematic problem for particular robot arms. So far we've looked at the analytic solution and that involved us creating a model of the robot's joints and links. We write down the equations for the forward kinematics of the robot arm and that's relatively a straightforward thing to do.
Next comes the hard part, where we need to write down a lot of equations in attempt to solve for the unknown joint variables and that requires some human insight. Often when you're trying to do this, you'll find yourself going down some blind alleys before you come back out and determine the right way to get to the solution.
This process can be automated, using a computer algebra package; you can write software that will solve the inverse kinematics for certain classes of robot arms. The great advantage of the analytic solution is that it explicitly shows the multiple configurations that the robot arm can be in. So for our two link manipulator, we showed two configurations with the middle joint either below the diagonal line or above the diagonal line.
For the Puma 560 robot, we showed configurations where it's like a left handed person or a right handed person and so on. The multiple configurations come out explicitly when you solve the analytic equations.
Another advantage of the analytic solution is you end up writing expressions for the joint angles in terms of the end effector pose and they are quite compact and that means that they are very fast to execute.
The problem becomes increasingly difficult as the number of joints in the robot increases. In an earlier section we derived the solution for a simple two joint robot and already that took quite a number of slides in order to come up with the solution. What comes to our rescue is that over many decades, smart people have determined the inverse kinematic solutions for particular robots or for particular classes of robots, so they've done the hard work of deriving the solutions and these have been published in the literature.
So if you've got a particular robot and you're looking for a solution, go and hit up the literature and see if somebody has already solved this problem for you.
When you're trying to determine the inverse kinematics for a six degree of freedom robot, it's really, really useful to have what's called a "Spherical Wrist." Now a spherical wrist is one in which the three wrist joint axes all intersect at a common point, as shown in this sketch here. Almost all industrial robots have a spherical wrist. It's quite a complex mechanism but it leads to great simplicity when it comes to determining the inverse kinematics of the robot.
In fact what it does is allow us to partition the problem into two. It allows us to solve for the position of the robot’s end effector, the XYZ co-ordinate and then separately to solve for the orientation of the robot's end effector, that is the orientation that could be expressed in terms roll, pitch, yaw angles or in terms of Euler angles. But what happens if it's not possible to determine the analytic solution?
Perhaps the robot doesn't have a spherical wrist or what if it's just too hard to figure out or you can't be bothered to go through the pages of algebra required to determine the solution? Well there is an alternative and that is to find a numerical solution to the problem. We can always determine the forward kinematics of a robot, that's relatively straight forward to do as we showed in the previous lecture. If we know the desired pose of our robot, which I'm going to call Ksi star, then all we have to do is adjust the joint angles until the pose given to us by the forward kinematics Ksi equals the desired value Ksi star. So you could think of it perhaps as having a large number of dials, each dial represents a particular joint angle and I’m just going to adjust all of those dials until the robot's end effector pose equals the pose that I want. A more formal way of describing a problem like this is to represent it as an optimization problem.
What I want to do is minimize the relative pose which is given by the forward kinematics of the robot compounded with the inverse of the desired pose and I want to know the joint angles that cause this minimum.
We've mostly talked about serial linked robots and these are robots formed by a chain of links, starting at the base of the robot we have a link, that link holds up the second link, which holds up the third link and so on.
An alternative structure for a robot is what's called a parallel link robot and that's shown here on the right. They have the advantage that all the motors are placed in the base. This has advantages over a serial link robot where each motor has to hold up not only the next link but also the motor that drives the link beyond that.
Parallel link robots are also very, very ridged and they're capable of very high speed motion. They're used for high speed, very precise, pick and place operations. So for a serial link robot, the kinematics - the forward kinematics is very easy to determine, very easy to write down. However for a parallel link robot, the forward kinematics is very, very complex and an analytical form may not even exist. For a serial link robot, the inverse kinematics is typically complex and analytic form may not exist. However for most parallel link robots, the inverse kinematics is actually very easy to determine and an analytic form always exists. So there is some complementarity between serial and parallel link robots; one has an easy forward kinematics, the other has an easy inverse kinematics.
To simplify the inverse kinematics most robots have a spherical wrist, a particular mechanical wrist design. For robots where the inverse kinematics is too hard to figure out we can solve the problem numerically, treating it as an optimisation problem.
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.