Inverse Kinematics

Inverse kinematics is an advanced branch of mechanics and physics and the term itself is used in two major computer fields….computer animation and robotics and robot building.

You don’t need to know much at all about IK unless you are designing a robot from scratch and most amateur robot builders will be following someone elses patterns or open source design and modifying it…but maybe you are fan of physics and mechanics or will become one. So here is a start for your journey into the world of IK…knock yourself out.:)

Basically, kinematics is the study or the science, of describing moving objects and motion…like the moving arms or legs of a robot.

If you must know Galileo was the inventor of the study of kinematics.

Inverse kinematics, basically means to flip around the term kinematics and start at the end and work your way back to the beginning of the objects movement.

So in regards to a robot moving its arm, with inverse kinematics you might study the outstretched arm and then mathematically, work your way back to where the arm was not outstretched at all.

No matter how you slice it, IK involves math and alot of math and numbers which is why GPU or graphics processing units are used with their increased processing power compared to the old fashioned regular computer processing chips or CPUs.

It gets complicated if you are trying to figure out how a robots leg will move on rough outdoor terrain so that it won’t fall over.

You may already have tilt sensors and gyros and various springs in your robots hip joints to counter the tendency of the robot to fall over.

Now it can get super complicated mathematically with the study of equations and graphs using calculus and linear algebra if you really need to design something from scratch but for now lets just try to understand the terms and how they relate to each other.

A really good description of IK can also be found at this site on youtube “floathead physics”.

Some of the terms you will come across are kinematics, inverse kinematics, forward kinematics, motion and position, degrees of freedom in a joint, 1k versus 2k, jacobian and heuristic methods to solve it mathematically, cartesian, displacement, speed, acceleration, vectors and scalars.

Lets start by tying together the terms vector, scalar, distance and displacement.

These are all mathematics terms.

Scalar is simpler and just keeps track of an amount while vector has more information including the amount and a direction.

Lets add in distance which is a simple scalar term and displacement which is a more broad vector term.

Distance is how far you go or how far a robot arm moves and displacement is where the object or arm is after the movement and if the arm goes back to where it started from then it may have moved 12 inches but it is at a 0 in terms of displacement.

The example usually given to explain this is of a person walking around the block in a square pattern and coming back to where they started.

You go west, east, north , south a few hundred feet in each direction.

The total distance is maybe 500 feet as a scalar term but since you came back to where you started you are at a displacement of 0.

Lets not go to much further for now because you probably won’t need to know much more…but speed and velocity.

Speed is a simple scalar term and velocity is a more broad vector term.

If you go forward only you will have a high speed and velocity number but if you go forward and come back to where you started then your velocity is 0 which is like the displacement term above we described .

We will come back later and talk more about a robots arms and its DOF with the moving joints and its position and its rotation possibilities.

Lets touch on Jacobian matrixes again briefly.