[Bf-committers] Advanced constraint solving for "robots" in Blender...

Herman Bruyninckx bf-committers@blender.org
Mon, 16 Aug 2004 13:21:12 +0200 (CEST)


For your information.

Here
  <http://people.mech.kuleuven.ac.be/~m0116294/LaserHigh.avi>
is a short movie that shows one of the early results of our efforts to
use Blender for robotics purposes. Up to now, we only use Blender to
display a motion that was calculated in an external program.

What you see is a robot whose task is specified by giving _constraints_:
it carries two laser beams that each have to follow a circular
trajectory on different planes, with a given tangential speed. 
The actual trajectory is follows automatically from these constraints,
and is not generated by key frame interpolation or anything.

We can change the planes, the trajectories and the speeds independently,
and our constraint solver still has room to optimize the robot's motion.

I think this kind of constraints are nicely complementary to what exists
already in Blender; their solution relies on knowing the kinematic
structure of the robot.

For the time being, the solver only works with _kinematic_ optimizations
and constraints (e.g., keep the robot close to its desired position by
means of virtual springs, and similar stuff), but in the future we will
try to go for fully _dynamic_ constraint solving. The latter should give
"naturally looking" motions, because humans probably also use minimal
energy consumption as a driving force behind their motions...

The video shows an industrial robot, but the mathematics behind it apply
equally well to all "devices" with armatures, so also to humanoid or
animal like systems.

I hope to be able to give more detailed explanation on the Blender
Conference next October.

Herman

-- 
   K.U.Leuven, Mechanical Engineering, Robotics Research Group
<http://people.mech.kuleuven.ac.be/~bruyninc> Tel: +32 16 322480