Inverse Kinematics: Robotic Arm

Demo

A lot of people have been asking me what inverse kinematics (IK) is. Well, nothing explains inverse kinematics better than a demo of a robotic arm. The robotic arm in this demo should write on the flat drawing surface whatever you scribble on your screen while holding the left mouse button. This demonstrates interactive IK by figuring out the arm’s joint angles for you. These angles need to be calculated constantly according to where on the drawing surface you point to with your mouse. To use the demo:

  1. Move the mouse to manipulate the camera.
  2. Hold the left mouse button and move the mouse to move the target for the ‘piece of chalk’ the robot arm is using along the x/y axis of the drawing surfaces.
  3. Key ‘1′ negates the planes z position (try holding down the mouse button and hitting ‘1′).
  4. Key ‘2′ erases the writing on the drawing surface.
  5. Key ‘3′ toggles the visibility of the robot arm’s target.

I got the idea for this demo from this you tube video. I’m not using the same method the students in the video use (skip ahead to near the end of the video). Their method is more exact and converges to a solution more quickly than the one I’m using. I’m using the Jacobian Transpose method still for one simple reason…I can have any number of joints I choose and each of those joints can have one, two or three degrees of freedom without the need for writing a more robust matrix math class than is currently available for AS3.

How my IK implementation differs from the one provided with Flash CS4 is another question I get a lot. It’s almost like comparing apples and oranges because the context is so different but let me try and answer that question:

  1. The advantage of Adobe’s IK package is that it comes with a nice little graphical interface and is more user friendly. My implementation is strictly in code and is not very user friendly. You’ll have to really understand the hierarchy of your 3D model to use my classes.
  2. Adobe’s classes are limited to a single degree of freedom and My IK classes can let you realize 3 degrees of freedom for your joints and are designed for use with 3D DAE models and Papervision 3D. However, it would be quite simple for me to adopt my classes to something like 2D movie clips.
  3. I don’t handle bones or mesh deformation. Papervision already let’s you import models with bones and does the mesh deformation for you. CS4 let’s you create bones fairly easily.
  4. My joints can have up to 3 degrees of freedom while Adobe’s only has one.

*EDIT* I removed the source temporarily. I’m going to redo and release it again hopefully in a week or two.

Tags: , , , , , , , , , ,

Wednesday, November 26th, 2008 3D, Inverse Kinematics

14 Comments to Inverse Kinematics: Robotic Arm

Andy Zupko
November 26, 2008

Very cool! Can’t wait to get some source to play with this. Will open a lot of possibilities for people.

great job.

admin
November 26, 2008

Thanks, Andy!

I’ll try and get the source out before the end of next week. I need to comment it well and make it just a little bit more OOP.

-Nate

[...] Inverse Kinematics: Robotic Arm The advantage of Adobe’s IK package is that it comes with a nice little graphical interface and is more user friendly. On the other hand, my IK classes are designed specifically for use with DAE models and Papervision 3D. … [...]

AdamZP
November 29, 2008

гляди! Я ржал - http://ibigdan.livejournal.com/4243319.html - тема дня :))
Фото на тему кризиса..
да, и спасибо за пост) добавил в избранное

Edwin
December 29, 2008

really cool and thx for sharing your source. Been trying to work out a 3d IK system too. Btw Transpose is good as it eliminates singularity problem. Another method to implement IK would be CCD.

Ray1fr
February 17, 2009

Thanks for this demo! (And sorry in advance for my poor english)
Any chance we can get back the source code?
Or any “basic” IK sample source code? I have browsed your demos, but found no source code using IK.
Thanks in advance.
Ray

Minh Tran
February 25, 2009

cool demo. I browsed for sourcecode but the folder is empty. Any chance for source code again?

Serttcocuq
March 15, 2010

how can I find formula of inverse kinematics?


A lot of people have been asking me what inverse kinematics (IK) is. Well, nothing explains inverse kinematics better than a demo of a robotic arm…..

почти даром)…

Kylie Batt
April 12, 2010

По моему мнению Вы не правы. Давайте обсудим. Пишите мне в PM….

инженер проектировщик, инженер-конструктор This demonstrates interactive IK […….

Kylie Batt
April 21, 2010

Прелестная фраза…

менеджер по туризму, помощник менеджера по туризму This demonstrates interactive IK […….

Kylie Batt
April 21, 2010

Сегодня я специально зарегистрировался на форуме, чтобы поучаствовать в обсуждении этого вопроса….

психолог консультант This demonstrates interactive IK […….

Leave a comment