[Bf-committers] new IK algorithms in Blender
rogerwickes at yahoo.com
Mon Jan 12 22:24:28 CET 2009
This could be the start of goal-oriented IK solving, getting around obstacles, which could be applied to many things.
----- Original Message -----
From: Benoit Bolsee
To: bf-committers at blender.org
Sent: Monday, January 12, 2009 5:54 PM
Subject: [Bf-committers] new IK algorithms in Blender
As some of you might know already, I have started a project with the KUL (University of Leuven) to implement new IK algorithms for Blender and the BGE. I know everybody is busy with 2.5 atm but I'd like to have your opinion on a couple of things. I'll first explain in a few words the scope of the project.
It is a robotic project and the primary goal is to make Blender a flexible platform to test, simulate, control and monitor industrial robotic arms. The intention is to build a "task" layer where the user can easily define complex tasks and have the (simulated or real) robotic setup execute the task intellligently. The IK algorithms have been developped over the years by the KUL and are now mature enough to be ported to Blender. The core principle of the algorithms is the integration of all the constraints and internal dynamics in a single global equation system to solve the joints velocities (or accelaration) over time. In the end, this work should also be useful to animators because the new algorithms will be available to animate custom armatures.
Unlike the current IK algorithm in Blender, the new algorithms are stateful and time dependent: you cannot getthe pose for a given frame number if you don't know the pose and the internal state at the previous frame (and recursively at the begining of the simulation). The BGE is a natural place to implement the algorithm because it is naturally time dependent but we also want to have the animation available in Blender for frame by frame inspection of the actions.
One possible approach is baking via the BGE: you prepare the setup, define the task by constraints and run the simulation in the BGE. The joints positions are stored in Ipo curves and retrieved in Blender.
Another approach is to have baking or caching in Blender like cloth (I didn't look at cloth code yet). Baking the IK solution should be fairly quick, potentially much quicker than the current IK algorithm that always starts from the rest position at each frame.
My idea is to implement a flexible caching system that will be available in Blender for animation and in the BGE for recording the simulation or the actual physics parameters when the BGE is used to control a real robotic setup. I'm interested to hear your opinion on that.
Bf-committers mailing list
Bf-committers at blender.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Bf-committers