Hello everyone,
I am quite new here, working with AnyBody to develop a simulation of human standing in different, programmable poses. I need my model to output the body geometry along with ground reaction forces for both feet.
In my attempts to simulate the ground contact realistically, yet in a simple way, my model employs four conditional contact points, two per foot - located at the heel and big toe of each one of them.
I implemented the stance control such that the user selects the location of heels, and the angular orientation of feet with respect to the x axis of the fixed reference frame. I programmed drivers which keep feet in these locations, serving as hard constrains. Moreover, I introduced a driver that keeps the body CoM's X and Z coordinates in the geometric centre of the base of support.
With these constrains I want the inverse dynamics to optimize the force distribution between the four contact points.
The problem is that for most configurations a notorious KKT error strikes, and I cannot diagnose its origin. So far my observations are:
-
There is a certain range of postures (eg. when feet are less than 0.7 m apart), when the inverse dynamics works and gives reasonable force distribution - exactly what I want to achieve.
-
When the body muscles are taken out of the model and all body joints given the "Reaction.Type={On}", this stable range diminishes significantly.
-
At any other position, the KKT error pops out.
I tried changing the "muscle force" at the conditional contacts, ran through all possible combinations of "Reaction.Type" setups, and I just cannot find any explanation why my model fails. I even made an initial attempt to follow the suggestions in this paper (see the NumStabMuscles.any file) - with no effect:
http://www.sciencedirect.com/science/article/pii/S0021929014002516#
To improve numerical stability, additional muscle-like actuators were attached at the origin of the pelvis segment, which could generate small residual forces and moments up to 10 N or Nm. The activation level of these muscles was solved as part of the muscle recruitment optimization problem, so as to minimize their contribution.
I would be extremely grateful for any suggestions.
I attach all the files necessary to recreate my model in the .zip file in this post. When open, several points of different colours should be seen along with the body:
Red - desired position of the heels (modifiable through Mannequin)
Green - final position of the toes (computed from heel position and foot orientation)
Blue - the point the body CoM will be kept over (nominally the geometric center of the base of support, but the offset can be introduced in the Mannequin file)
Magenta - unrelated. These are the points I need for further data processing outside of AnyBody. They should cause no problem.
If you need any of my files commented in larger details, or any other information that could facilitate your understanding of what I have done wrong, please let me know.
Thank you very much for any help in advance.
Jakub Sikorski
Ps. I use AnyBody v. 6.0.3 along with AMMR v. 1.6