Inverse Dynamics

Hey,

i constructed a very simple model very similar to the armdemo-model. I’m using Ammrv1.6.2 and Anybody Version 6.0. The Kinematics run without any problem.
But for the inverse dynamics the problem is as follows:

As long as only one muscle is active, the inverse dynamics run with the
Error:ERROR(OBJ1) : C:/Users/s…d/D…s/A…B/A…o/Al…st/armdemo.any(188) : ArmStudy.InverseDynamics : No solution found : There are fewer unknown forces (muscles and reactions) than dynamic equations.

When I open the Chart, there is no Fm for this muscle.

As soon as i attach a second muscle, the following error occures.
Muscle recruitment solver : maximum number of setbacks occured.

I tried all this as well with the Armdemo-Model (replacing one RefNode after the other and the same for the muscles). It also works until I attach the second muscle. I also tried different Solvers for the Inverse Dynamics, The Only difference is the form of error massage ( KKT-error for excample).

Even in the Object Description I wasn’t able to find something suspicious…

I really hope to get a hint for this problem.

Best Regards,
Sina

Hi Sina,

You were missing one of the reaction forces - here is the solution:

    AnyKinEqSimpleDriver Groundlock = {
        AnyRevoluteJoint &Jnt = Main.MyModel.Joints.GroundingKapsel;
        DriverPos = {0.0};
        DriverVel = {0};
        //Reaction.Type = {Off};
      }; // Shoulder driver

Kind regards,
Pavel

Thank you Pavel!

Now it works. just for me to understand: Why do I have to exclude the reaction for the Groundlock? Is it because there is no DriverVel? Thanks for your replies!
Sina

Sina,

The problem was that you were missing a reaction force to the global ref. frame for one of the DoFs and, thus, you had more equations than unknowns. By outcommenting the line that i suggested you included the missing reaction force back (by default the RF are on). This can be seen on the first error message.

But by adding the second muscle you kind of changed the system and added an unknown that made the number of equations equal to the number of variables, however, this variable did not cover the missing DoF, just changed the overall number of variables vs number of equations, which indicated to the solver that it could try to solve, but since effectively nothing changed - it failed with the KKT error.

Hope this makes sense.

Kind regards,
Pavel

I see, that makes sense and also explains why i wasn’t able to see the disbalance in the object description!
Thanks a lot!