November 28, 2019

Was the inverse kinematics problem solved?

On the first look, the inverse control of a robot arm is one of the more easier to tackle problems within Artificial Intelligence. The desired joint angles can be determined by normal sinus and cosinus calculations and it's possible to control legs and arms with the same algorithm. The more interesting question is, what the robot should do if the inverse kinematics is working.

A short look into a robotics forum will show, that inverse kinematics can become more complicated than it was imagined. The reason is, that the same question about inverse kinematics is asked many times a week, and each time the answer is a bit different and the bugs can't be solved easily. It seems, that inverse kinematics needs a higher priority than expected. And at the same time, the value of a fully working inverse kinematics is higher than expected.

If a robot arm is able to point towards a desired point in the space, most of the planning problem is solved. Let us imagine a 6dof robot arm, which is only providing an accurate IK solver. Such a robot arm can be used for a variety of tasks. It can become a pick&place robot, a tennis ball playing robot, a robot leg, a finger and much more.

A naive search for literature about the so called inverse kinematics problem will show, that many researchers have investigated the details in the past. It seems, that a lot of papers were written about this simple problem. The amount of possible solver techniques is amazing. Perhaps Inverse kinematics is the core problem in robotics? What we can say for sure, is that a simple FAQ in which a formula is given for controlling the arm of robot won't tackle the problem with the needed amount of priority. The reason is, that apart from simple IK solvers there are many attempts available in which underactuated robot arm are pointing towards a position in the 3d space, and the solver technique is way more complicated than only calculate a simple sinus equation.

I didn't want to explain that an IK solver alone is able to control a robot, but the IK problem is some kind of initial obstacle before somebody can develop the software for a robot. If the IK problem is unsolved the robot project at all will fail. To get an impression about the challenge we have to estimate how long it will take until an ik solver is programmed. Is it a project for a single day, for a month, or can it be figured out only as a large scale programming challange with lots of scientists? The last one is the right answer. Programming an IK solver takes many programmers who are working together over years on the same issue.