I am using GaitLowerExtremity and want to optimise the joint contact force (hip) instead of muscle force to solve the redundant system.
For example, we usually minimise the cost function of muscles; but I would like to minimise the joint contact force, i.e. to make the muscles generate a minimum joint force.
Anybody knows how to achieve this?
Anyhelp would be great appreciated.
I’m not sure whether you would like to use the normal hip joint model(AnySphericalJoint) or FDK hip implant model.
If you would like to use the normal hip joint model, then there is a way which may be close to your intention.
If you can see the ‘\Body\AAUHuman\LegTD\Jnt.any’ file, then the following code defines the hip joint:
AnySphericalJoint Hip = {
AnyRefNode &ThighNode = ..Seg.Thigh.HipJoint;
AnyRefNode &PelvisNode = ..HipNodeRef.HipJoint;
}; // End of Hip
This is the physical spherical joint so there is no limitation in the amount of the hip joint reaction force. And this spherical joint contains 3 reactions.
Now you can eliminate these these reactions like these:
AnySphericalJoint Hip = {
AnyRefNode &ThighNode = ..Seg.Thigh.HipJoint;
AnyRefNode &PelvisNode = ..HipNodeRef.HipJoint;
[b]Constraints.Reaction.Type = {Off, Off, Off}[/b];
}; // End of Hip
Instead, you should put some AnyGeneralMuscle objects to replace the above reactions. You should put 6 AnyGeneralMuscles in 3 linear directions because AnyGeneralMuscle is a unidirectional force element.
If you set the F0 value of AnyMuscleModel for this AnyGeneralMuscle well, then these reactions can be solved with other muscles in the body by muscle recruitment optimization.
After all, the sum of all 6 AnyGeneralMuscle force will be the resultant hip joint reaction force.
I would suggest you to try with different muscle optimization criteria then you may be able to figure out which is the best for you.
I think you sugessted that we need to replace the joint reaction force with 6 muscles, with 2 muscles oriented reversely along each direction.
For the muscle optimisation, if we optimise the all the muscles together, these 6 muscles may not generate the minimum force. If we want to make these muscles generate the min force, we have to only optimise these 6 muscles, in order to get the min joint reaction force. Is this possible?
There is no way in AMS to optimize only a few muscles in the model.
Instead, I would set the maximum strength of those AnyGeneralMuscle as very small value. Then of course the inverse dynamics may fail due to the small available force in those muscles.
Maybe you can do some kind of parameter study regarding those muscles.
My suggestion to you is to find the minimum strength of those AnyGeneralMuscle by which your inverse dynamics can run without failure.
Thanks for the reply.
If I have to optimize the 6 muscles representing the joint reaction force and the muscles wrapping the joint together, I may approach but never get the lowest value of joint reaction force.
Take linear optimization recruitment for example, it minimize the sum of Ni normalized force. Ni is some choice of normalization factors. If we set it as very small value for Ni of the 6 muscles representing joint force, we may get a very small joint reaction force.
I think Ni is different from muscle strength. The muscle strengh controls the max muscle force. So why did you say that inverse dynamics may fail if we make it very small?
My suggestion is not to remove the muscles around the hip joint. My suggestion is to remove 3 reactions in the hip joint (spherical) and put 6 AnyGeneralMuscle objects.
We can guess the the hip joint reaction force will be influenced by the muscles around the hip joint. In our original model, because the hip joint is modelled as a rigid spherical joint, there is no limitation in the amount of hip joint reaction force.
But if we use AnyGeneralMuscles to replicate the hip joint, then the forces in these AnyGeneralMuscle will be limited according to its maximum strengths. So if you set the maximum strength of these AnyGeneralMuscle as very low, then AnyBody can’t find the solution because those AnyGeneralMuscle can’t make enough reaction forces.
In my conclusion,
In AnyBody, we will only pursuit the muscle optimization using its activation.
You can remove the 3 reactions in the hip spherical joint and put 6 AnyGeneralMuscle in the 3 direction(positive and negative).
If you set the maximum strength of those AnyGeneralMuscle as very low, then the inverse dynamics will fail.
There is no way for us to optimize ‘only’ those AnyGeneralMuscles in the hip joint. All muscles should be considered altogether.
I would suggest you to test this concept. This will not be very difficult.