9
$\begingroup$

I'm trying to rig a model of a Peaucellier-Lipkin mechanical linkage. While inverse kinematics for a chain of bones in the armature works well for some of the linkage, I don't see how to create the closed loop portion. There must be some way to constrain the tails of two bones to stay together, but I am having trouble finding it.

Here's what I have so far.

Screenshot of Blender 2.69 with armature for PLL

$\endgroup$
  • $\begingroup$ I wonder if non-rigging method is acceptable? If so, I can suggest a better one. $\endgroup$ – Leon Cheung Mar 4 '14 at 11:44
18
$\begingroup$

There are generally two ways here: bone constraints and rigidbody simulation.

Solution 1 - Bone Constraints:


  1. Create the linkages (meshes).
  2. Create armature with bones set as shown on the image below.
  3. Animate the key bone (the red one here).
  4. Rigging.

enter image description here enter image description here enter image description here

Result:

enter image description here

Example file:

Solution 2 - Rigidbody Simulation:


  1. Build the initial state of the linkage, make sure they don't intersect or too close to each other;
  2. Select them all, click Add Active button in Physics tab in Toolshelf;
  3. Select either two linkages, click Connect in that tab to create constraints, set type to Hinge, move them to expected hinge points. Note that Hinge rotates along the Z axis of constraints (empty objects), so you may need to correct the rotation.
  4. Create rotation action for BoneEB (the blue bone in the image below), toggle Animated in its Rigid Body setting panel.

enter image description here enter image description here enter image description here enter image description here

For better result, you need to set the Steps per Second and Solver Iterations relatively high in Scene tab.

Result:

enter image description here

Example file:

| improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ That's cool! Can you provide some details about how you did that? $\endgroup$ – Matt Mar 4 '14 at 16:20
  • $\begingroup$ @Matt OK. See the updated answer. $\endgroup$ – Leon Cheung Mar 4 '14 at 17:09
  • $\begingroup$ Why are the Steps Per Second and Iterations so high? $\endgroup$ – Vader Mar 4 '14 at 17:37
  • $\begingroup$ @Vader I think there are some loop constraints, which needs more accurate calculation in this case. I've tried not to do so, but the result is weird. $\endgroup$ – Leon Cheung Mar 4 '14 at 17:42
  • $\begingroup$ Great! I started looking at rigid body physics, too, but I didn't get very far. Building on what you've done, someday, I'd like to write some Python to output the coordinates of the empty at D as a function of the rotation of the blue arm. $\endgroup$ – John636 Mar 4 '14 at 18:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.