bug muscle recruitment?



In this simple model there are two muscles, the lower (muscle, -y direction) pulls a 1-kg ball against gravity and his force is correctly 9.81 N. The upper (ghost_muscle, +y direction) is simply attached to a fully constrained segment which has no mass. Its force (Ft) should be identically zero all time. However, its force is not negligible, being 0.001858616, which is way above numerical noise.


[li]switching off the reaction of ghost_driver makes the ghost_muscle force go to zero (= 3.679053e-038 numerical noise)[/li][li]changing muscle recruitment criterion type or polynomial exponent changes the output force of this muscle[/li][li]changing the mass of the ghost_segment has no effect on this[/li][li]switching off the gravity has no effect on this[/li][li]force direction of ghost_muscle has no effect[/li][/ul]

Is there a flaw in this model or is this a bug in the muscle recruitment solver?

Using AnyBody version : 7. 2. 0. 6089 (64-bit version) Build : 17590.43440 (beta)

Tried as well with AnyBody version : 7. 1. 2. 6044 (64-bit version) Build : 17695.40860

Best regards,



Hi Marco,

Sorry for the slow reply,

The short answer is that is not a bug, it can be explained by that the polynomial muscle criteria is more demanding on the numerics than a linear criterium, for muscles with very low activations. For any practical model this is not be a problem.

In this particular problem the ghost muscle is supposed to do nothing, but it has a relative high strength. This means the accuracy in the solver is at test because this muscle (with very low activation) is in the objective function with a power of 3. If you try with higher power you will see the error getting bigger supporting this explanation, this is also why we have limited the power to a maximum 5.

If you change the solver to minmax strict the error will be very low. I have made an issue in our system, we will take a closer look at the solver being used for the polynomial criteria to see if there are settings which can be improved, to allow a better accuracy for this type of problems, but it is clear that numerics is more demanding and it is not certain it is possible to do any better, it is a balance between accuracy, convergence ability and speed.

Hope it makes sense, please ask again if you have further questions.

Best regards

closed #3

This topic was automatically closed 125 days after the last reply. New replies are no longer allowed.