Kinematic analysis failure during parameter optimization external

Hi,
I'm quite new to AnyBody, bit I'm currently bringing on a study on the effect of different positions on cycling biomechanics.
I have acquired cycling motion on an athlete in three slightly different positions using Xsens.
The scripts adapts the bike to the body positioning adding constraints hands to handlebar, pelvis to saddle and feet to pedals, then, the inverse analysis is run.
Two of the three positions work flawlessly, the third one doesn't go past the kinematic analysis during bike parameter optimization, it doesn't matter which frame I run the optimization on, the output is something like:

1.0.0.2.0.0) Evaluating KKT conditions while decreasing step length (Operation: Main.ParameterIdentification_External.ParameterOptimization):
1.0.0.2.0.0) Evaluating KKT conditions while decreasing step length (Operation: Main.ParameterIdentification_External.ParameterOptimization):
1.0.0.2.0.0) Evaluating KKT conditions while decreasing step length (Operation: Main.ParameterIdentification_External.ParameterOptimization):
1.0.0.2.0.0) Evaluating KKT conditions while decreasing step length (Operation: Main.ParameterIdentification_External.ParameterOptimization):
1.0.0.2.0.0) Evaluating KKT conditions while decreasing step length (Operation: Main.ParameterIdentification_External.ParameterOptimization):
Failed to resolve kinematic constraints. Newton relaxation too small. (final kin. error = 2.587513E-01)

I tried to change the initial bike measures, but I could not find a solution yet.
Unfortunately the motion capture .bvh file is not very good, as there are sometimes problems with wrong body parts rotations, but it worked on the other two positions anyway.
I am not being able to proceed and get some results out of this third position, can somebody help?
Is it also possible to relax the tolerance?

Thank you,
Giovanni

Hi Giovanni,

Welcome to the AnyScript Forum!

It can be a little bit hard to diagnose why the parameter optimization is not working. It looks like you have already tried to change the starting (load-time) positions of the bike and the human, and that doesn't solve the problem.

Does the model look sensible in the model view when you are running the optimization problem? It could be that the model is somehow finding a wrong solution, like you said with wrong body parts rotations. In this case, it might not be possible to solve the parameter identification. Another reason could be an incompatibility between the rider position and the bike model. Maybe there is no solution because bike model doesn't fit the rider in this particular case.

I suggest you try running marker tracking without parameter identification first of all. This might help you diagnose potential issues that may block parameter identification.

I would not recommend changing kinematic tolerance as it will probably hide the problem and not solve the problem. But you can set the following values, and maybe that helps you in seeing something:
Main.Studies.ParameterIdentification.KinematicStudyForParameterIdentification.Kinematics.KinematicTol
and optionally also for initial conditions:
Main.Studies.ParameterIdentification.KinematicStudyForParameterIdentification.InitialConditions.KinematicTol

I hope that helps.

Best regards,
Dave

1 Like