Rigid body linkage glitch? (FIXED)

Hi folks. I’ve run into a little glitch in rigid body mechanics using the game engine. Here’s what I’m trying to do:

I’ve set myself the challenge of creating a steam powered prosthetic hand in Blender.

I’m using rigid bodies to model the motion of various component parts of the structure so that the final modelling will be accurate and functionally correct.

What I have so far is a rigid body structure representing a finger joint consisting of a mechanical linkage powered by a piston. There are brass plates attached to the outside of the finger to which the linkage chain is attached. It’s working up to a point, but there seems to be a glitch in the motion of the piston. As it extends, the piston arm bends in relation to the cylinder. I’m wondering if anyone has any hints about how to minimise/remove this glitch.

I’ve tried using the “Track to” and “Child of” constraints, but these don’t seem to be supported in the game engine. The solution I’m working with involves 6DOF rigid body joints to limit the motion of the piston arm to the piston cylinder.

Any hints/tips would be appreciated.

Finger_linkage_sketch.blend (46 KB)

The model structure in the .blend is pretty messy since I’m just playing with ideas right now, but the finger linkage is gravity driven and can be seen if you open the .blend and press P. The glitch between the piston cylinder and arm can be easily seen. It bends then straightens again.

The messy structure is possibly contributing to this glitch, but I think it is unlikely to be the sole cause. If I’ve missed some kind of restraint that would help then please let me know, or If I’m not using the rigid body joint constraints right then please lend me some words of advice.

Thanks for reading.

Edit: Updated the file to better represent the issue. All action is animated via a rotation ipo on a single empty. The glitch can be seen again and again as the joint bends and straightens.

Edit2: Fixed it. :smiley:

Finger_linkage_sketch-1.blend (178 KB)

For anyone who’s interested, I just needed to move the pivot point of the 6DOF constraint on the piston arm to the back of the piston cylinder. Check out the revised file, I’m pretty impressed with the rigid body functionality of the game engine. :wink:

Your problems are the folowing:

1.Structure: your model does not represent an accurate replica of a piston system. It looks more like an hydraulic arm system. In any case, the arm that seems to bend, only follows the physical and contrain restrictions you imposed.
When designing your system, make sure the dimensions are good (draw it in the main phases of its operation), and the restrictions are where bolts or joints should go. The piston should be inside the chamber, not outside it. You could also use hinge joints if you want…but since it’s a challenge…

  1. Dynamic: Your meshes have no physical boundaries, the more accurate should be triangle mesh. Therfore its colisions are not very accurate. Give us a more workable model pliz. e.i.: Try again…

Thanks for the feedback, torakunsama. Yeah, the model is really poor, but my emphasis for this was on the rigid body constraints. There is currently no collision due to the technical nature of this exercise. I didn’t want to have to tweak models/collision bounds whilst figuring out the mechanics of the rigid body joints. I’ve got it working with an armature now and will update later with a first draft of the actual finger model, hopefully with keyboard controls.

Edit: Updated model. Needs tweaking… The bell crank needs reshaping so that the piston doesn’t intersect with it at full extension. The piston probably wants shortening. I’ve tried to keep it to scale. 1mm = 0.1BU.
Finger_linkage_2.blend (108 KB)

Edit to edit: Normals are also inside out on the bell crank. Guess I’ll just get rid of it and start that piece again. :wink: