Wednesday, June 3, 2009

Educational Flash Application on Inverse Kinematics

These application were created for the purpose of illustrating Inverse KinematicsInverse Kinematics is a technique applied to manipulate robotic arms or articulated figures. To me IK is a broad and challenging topic unfortunately most text focuses mostly on the Jacobian methods. 

3D arm using Papervision3d : Runs on Jacobian Pseudoinverse and Damped Least Square. Click and hold on the mouse to have the arm move to the corresponding location on the blackboard.

Running skeleton : Using Forward Kinematics + Sinusoidal timer to create a simple animation

Cyclic Coordinate Descent : Illustrates the principle by which it works on. The movement of each joint is slowed down on purpose. This method is more suitable for computer animation as joint angles could be updated instantly. 

Comparison Application :  A general application to display how the various IK approaches manipulates their respective articulated figure. The approaches within the application were those that i have researched on. 

Snake Game : Remember the classic handphone snake game ? ? Well this is a remake of it by using Inverse Kinematics to model how the snake moves. The thought of creating this game seems to come naturally having created so many application related to moving a chain of links. Unfortunately it seems the idea is not new on the internet... ... Anyway this snake moves using the CCD approach. *This application is lacking of music/sound* If you are a interested to contribute your original audio works do drop me an email :) 


  1. Hello Edwin,

    Greetings to you. Introducing myself I am Srinivasan from Bangor, Wales, UK doing my Masters in Computer Science. Firstly, I should say your IK comparison app was really cool. As for me my research is on a new IK algorithm I developed.

    I wish to ask you if I can use your app as a reference in my Thesis?


    #0K Srinivasan
    (hashok dot com)

    1. Sure. The application was developed for my final year thesis at NTU.

      **The application code was not included in the thesis.

  2. Hi, just tried with these nice IK demos.

    I've a question here:
    I can observer that in the CCD demo, there could be a lockdown in such a specific case.

    But such lockdown is not shown in the "Comparison Application",

    Could you tell what kind of improvement you've made to the algorithm?

    Best regards,

    1. Probably a little late in the reply as i seldom visit the blog.
      If i get your question correctly, the "lockdown" should be from the torelant level parameter. As long as the distance from the target to the end of the arm is more than the torelant level then the arm will try to move. Due to rounding errors and IK algo the arm might never be able to reach the target, thus if torelant is low you might see a constant wiggle of the arm.

  3. can you send me the code or algorithm of CCD please ?