I want to start a new thread, only focusing on the residual forces. (previous thread has other factors that all make the case too confusing)
I modified the MoCap model by replacing the c3d file. it took a while to complete MPO. I kept getting error message "
Failed to resolve kinematic constraints. Newton relaxation too small. (final kin. error = 5.151314E-001)" Then I relaxed the kinematics tolerance as below and finally MPO was completed.
During ID, there are lots of warning messages popped up regarding overloaded muscles, mostly in the upper body. It can also be seen in the attached picture, where biceps are red. However the muscle activity plot (lower figure on the right) didn’t show any muscle go beyond 50%. The residual force (top figure on the right) are within -200 to 200 N, indicating something is wrong. The ID didn’t finish, and was terminated with an error message: [SIZE=1][SIZE=1]
…
…
WARNING(OBJ.MCH.MUS3)[/SIZE] : [SIZE=1]D:/G…s/A…r/S…3/L…y/M…l/InverseDynamics.any(29)[/SIZE] : [SIZE=1]InverseDynamicStudy.InverseDynamics[/SIZE] : Overloaded muscle configuration. [SIZE=1] WARNING(OBJ.MCH.MUS3)[/SIZE] : [SIZE=1]D:/G…s/A…r/S…3/L…y/M…l/InverseDynamics.any(29)[/SIZE] : [SIZE=1]InverseDynamicStudy.InverseDynamics[/SIZE] : Overloaded muscle configuration. [SIZE=1] WARNING(OBJ1)[/SIZE] : [SIZE=1]C:/P…s/A…y/A…0/AMMR/Body/A…n/Arm/Muscle.any(2323)[/SIZE] : [SIZE=1]Extensor_Carpi_Ulnaris.SPLine[/SIZE] : Number of allowed iterations for contact solution has been exceeded in Main.Studies.HumanModel.BodyModel.Right.ShoulderArm.Mus.Extensor_Carpi_Ulnaris.SPLine. Final error at time 1.454802e+000: 1.658387e-007 rel error, 2.216886e-006 abs error [SIZE=1] WARNING(OBJ1)[/SIZE] : [SIZE=1]C:/P…s/A…y/A…0/AMMR/Body/A…n/Arm/Muscle.any(466)[/SIZE] : [SIZE=1]latissimus_dorsi_5.SPLine[/SIZE] : Number of allowed iterations for contact solution has been exceeded in Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Mus.latissimus_dorsi_5.SPLine. Final error at time 1.828106e+000: 1.401190e-007 rel error, 7.391021e-006 abs error [SIZE=1] ERROR(OBJ1)[/SIZE] : [SIZE=1]C:/P…s/A…y/A…0/AMMR/Body/A…n/Arm/Muscle.any(466)[/SIZE] : [SIZE=1]latissimus_dorsi_5.SPLine[/SIZE] : Factorization of stiffness matrix for velecity analysis failed. Try to use a use a larger AugLagCoef value.
My questions are:
how to minimize the residual forces? I know the GRFs match the weight of the subject, the high residual forces must come from errors;
how to deal with the error message in ID? I followed every step in the tutorial but still cannot figure out what went wrong.
just a follow up wrt my normal walking model, which was modified based on MoCap using my own c3d.
I added some extra drivers on the upper body so no error messages in MPO and ID.
During ID, I did receive warning messages:
[LEFT]#### Macro command : InverseDynamicAnalysisSequenceu> run[/u][/LEFT]
[LEFT]4.0) InitialConditions (Operation: Main.Studies.InverseDynamicStudy.InitialConditions): [/LEFT]
[LEFT]…[/LEFT]
[LEFT] [/LEFT]
[LEFT][COLOR=black][FONT=Calibri]8.0) Inverse dynamic analysis…[/LEFT]
[LEFT]WARNING(OBJ1) : C:/P…s/A…y/A…0/AMMR/Body/A…n/Arm/Muscle.any(2323) : Extensor_Carpi_Ulnaris.SPLine : Number of allowed iterations for contact solution has been exceeded in Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Mus.Extensor_Carpi_Ulnaris.SPLine. Final error at time 7.081938e-001: 1.926538e-007 rel error, 3.502148e-006 abs error[/LEFT]
[LEFT]WARNING(OBJ1) : C:/P…s/A…y/A…0/AMMR/Body/A…n/Arm/Muscle.any(2323) : Extensor_Carpi_Ulnaris.SPLine : Number of allowed iterations for contact solution has been exceeded in Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Mus.Extensor_Carpi_Ulnaris.SPLine. Final error at time 7.081938e-001: 1.926538e-007 rel error, 3.502148e-006 abs error[/LEFT]
[/FONT][/COLOR] [LEFT] [/LEFT]
[LEFT]The JRF results look reasonable to me. The problem is the residual forces - still within the range of -200-100N. I am not sure if this is due to the extra drivers added due to bad marker signals on upper body. How does high residual forces affect the JRF results? and how to reduce the residual forces?[/LEFT]
[LEFT]Thank you![/LEFT]
[LEFT]-Phoebe[/LEFT]
There are several ways which you can try to reduce the pelvis residuals if you are not very happy with those values.
You can adjust the mass of the subject. Also, if the subject was using a kind of backpack, then you can try to add an extra segment for that back pack. Of course in this case the kinematics of the back pack will make some effects on the results.
Also you can adjust the filter settings for both markers and the force plates. Usually they are using a kind of low-pass filter to remove high frequency noises. For instance, you can try to adjust the cut-off frequency for those filters.
You can try to adjust the ‘SPLine.StringMesh’ property of AnyShortestPathMuscle object to avoid those warnings in the muscles.
Thanks Moonki! Very helpful suggestions! My biggest question is: regardless what I tried (see below for details) it seems that the residual forces always fluctuate between -200-200 N, which appears to be due to some kind of instability rather than non-accounted weight. How does these unbalanced residual forces affect the results of JRF / muscle forces?
You can adjust the mass of the subject. Also, if the subject was using a kind of backpack, then you can try to add an extra segment for that back pack. Of course in this case the kinematics of the back pack will make some effects on the results.
I am only focusing on whole-body gait. Do you think recommend adjusting the mass of the subject? I used to think the mass and GRF are both given conditions and shouldn’t be changed, is that correct?
Also you can adjust the filter settings for both markers and the force plates. Usually they are using a kind of low-pass filter to remove high frequency noises. For instance, you can try to adjust the cut-off frequency for those filters.
Actually both markers and the forces have been filtered before being imported to anybody. Nevertheless, I played around with the filter parameters (Fc and N). I am not sure what the optimal parameters should be so I changed each parameter in both directions while keeping the other unchanged. Unfortunately I didn’t get better results. Any suggestions?
You can try to adjust the ‘SPLine.StringMesh’ property of AnyShortestPathMuscle object to avoid those warnings in the muscles.T
Thanks! What exactly does it change?
I also have a question about extra drivers. my experience is that adding extra drivers to upper body helps kinematic analysis. Is there any guideline on that practice? I want enough extra drivers to help the model to converge, but a little concerned if artificial movement is added.
Hello Phoebe
Hey i am also getting the same error also asking to change the value of AugLagCoef but i searched the script could not find where to change the value . I am also getting lot of warning.
I decided to not to worry about those warnings because: 1) I got a few warnings when running the example (MoCap) model. If they were left the way it is I guess it’s not too harmful 2) I don’t understand what those warnings mean. Hopefully we can get more instructions by AnyBody support.
Regarding the error message, just to confirm with you, is it an error message during MPO? if so, you better check your markers. For my case, I didn’t have enough markers for upper body, which was fixed by adding extra drivers in Kinematics.any. Regarding how to determine the influence of those extra drivers (i.e., do they introduce artificial movement in addition to stabilize the model), it’s still a mystery for me, too.