I'm currently looking at the idea of enhancing the physical presence of my simulation creatures, which you can see here :
OgreForums : http://www.ogre3d.org/phpBB2/viewtopic.php?t=33301
YouTube : http://www.youtube.com/watch?v=LTzY5kS-DVI
So currently the creatures sense and interact with the world via rigid body spheres that represent the ideal position of each foot, with Inverse Kinematics solving for a comfortable configuration. Procedural animation is generated via the paths of these rigid bodies. There's collision detection throughout the skeleton, but its too basic to gain full tactile feedback from the surface.
So as an alternative technique, I've written some code that takes the creature's skeleton, and from it automatically generate a corresponding collision mesh.
You can see there the skeleton, and underlying collision mesh. The body chassis itself is a rigid body, the legs a chain of hinge joints. The main body is passed to each limb object on creation, and the first bone of the leg connected to the body via another hinge joint.
The limbs are powered by Inverse Kinematics, only this time the end-effector is just a point in 3D space (and not a rigid body like in my previous implementation). The idea is that I can move these 'targets' around (one for each leg), and the creature attempts to touch it at all times.
However, I can't get the creature to remain stable. If I move a target node (lets say for the front left limb), the limb moves perfectly fine, but it also has the effect on the rest of the creature (the body chassis will twist, pulling the other legs out of shape). I've disabled self-collision.
I guess before I spend more time on this, I'm wondering if this is a viable solution to begin with? I am aware I'm doing things backwards (i.e Inverse Kinematics), and Newton is Dynamics based system, so maybe that's the inherent problem?
I have to point out that the creatures don't actually push themselves across the ground, so I'm not looking to create a realistic model of an insect/spider walking - the physics are only used for getting feedback from the surface (i.e when a leg should terminate its stride, what is the friction at point of contact, pushing smaller objects out of the way etc). In a perfect world, the body chassis would remain unaffected by anything the legs do (like a rigid joint), but at the same time be capable of being moved via forces I apply (i.e velocity). Possible?