Parameter Optimization - distance between markers

Good morning,

I am using the AnyMoCap model (lower extremity) to run simulations in AnyBody giving in input c3d files containing markers trajectories and data acquired from force plates. Right now, I am focused on determining the values of hip joint angles during gait.

I attach two folders. In the S1 folder, the model works fine and I obtain hip joint angles comparable with the ones found in the literature. In the S2 folder, the model works as well, but I obtain values that don't make sense, especially regarding hip flexion (it shouldn’t be lower than 15°, while I obtain values of about 25°)

Therefore, I have a question regarding the optimization performed during the parameter identification. After running the parameter identification for S2, the markers from the C3D file are not aligned with the locations of the markers in the model, while they are aligned for S1. I am referring specifically to the pelvis markers since I believe they play an important role in determining hip joint angles.

For S2, I have tried to play around with the optimization parameters for each marker (OptX=On/Off, OptY=On/Off, OptZ=On/Off). However, even though C3D markers and model markers seem to be aligned if all the "switches" for the 6 pelvis markers are "ON", their positions in the skeleton model don't seem right, (since they are not placed exactly on the anatomical landmarks, as for the subjects in the lab) and it makes me think that the model is not scaled correctly during the parameter identification.

I believe that there is a correlation regarding the distance between C3D markers and model markers and the wrong values of hip joint angles obtained for S2, but I am not able to understand how can I solve this problem.
Do you have any suggestions regarding that?

Thank you,

Mattia

https://drive.google.com/drive/folders/1ZN3QoWYxX34jcCmNL8jtV82sKIGcggjI?usp=sharing

Hi @Mattia and welcome to the forum!

I looked at your S2 trial and have a few recommendations.

  1. You can readily switch off the markers for the trunk and head since they wont affect the model when you are only using the lower extremity. They can make it hard to scale the model since it have a rigid thorax and subjects can move the trunk very different during gait. You can switch on the default mannequin drivers on the segments instead. This will make the model look a little silly since trunk and head will be moving rigidly - i suggest that you hide the segments so you only see the lower extremities and L1-L5 segments.
  2. You have both ASI, PSI, ILIAC and T10 makers and most of them are set to OFF in the optimization. You need to decide which marker directions to deem to be placed correctly and which are free to be optimized. For instance the ASI is pretty easy to palpate while the ILIAC is probably harder to be sure of.
  3. Your PSI markers seem to be misaligned in the y-direction, that is probably something to look into. You might need to open up that direction in the optimization if they are not placed as intended.

Best regards,
Bjørn

Hi Bjorn,

Thank you for your suggestions, I still have a couple of questions:

  1. I switched off the trunk and head markers for S2 as you suggested. I also tried to switch on the default mannequin drivers, but in this way, I obtain hip joint forces too high, so there must be something wrong. The drivers I added are
    BM_MANNEQUIN_DRIVER_NECK ON
    BM_MANNEQUIN_DRIVER_SKULL_TORAX_FLEXION ON BM_MANNEQUIN_DRIVER_SKULL_TORAX_LATERALBENDING ON BM_MANNEQUIN_DRIVER_SKULL_TORAX_ROTATION ON
    (I added the S2 subject with these modifications in the link previously shared)

  2. Is there a way to see in AnyBody where a marker has been placed on the subject (I am referring to the blue C3D markers), so that if we can see that it has not been placed in the correct position, (so not exactly on the anatomical landmark) it is possible to understand which direction needs to be optimized for that marker?

  3. Yes, there was a mistake in the protocol; I fixed it, but it doesn’t seem the reason why I don’t obtain correct results

I also wanted to point out a doubt regarding S1, always related to optimization.
In the link previously shared, I added two folders, S1_good and S1_not_good. They are identical; the only difference is that the Y-direction for Rpsis is not optimized in S1_good, while it is optimized for S1_not_good. Anyway, the peak hip flexion angles (left and right) for S1_good are about -15°, while for S1_not_good are about -20°.
Do you have any ideas about why by optimizing just one direction of one single marker I obtain such different results?

Best regards,

Mattia

Hi @Mattia

  1. You should enable the pelvis-thoracic mannequin drivers as well.
  2. The AnyMocap markerprotocol use standard anatomical landmarks. Deciding what directions to be optimized is a subjective matter, you might have had difficulties placing some markers depending on your experimental setup so some directions are less trustworthy.

I did not have a look at S1, but i think you should close in on a setup that works well for all subjects. So let S1 follow the same marker and driver setup as you are doing for S2 now.

Best regards,
Bjørn

Hi Bjorn,

  1. I tried to enable the pelvis-thoracic drivers as well, but I keep obtaining warnings during the inverse dynamics and therefore too high hip joint forces.
  2. In your opinion, when a specific marker is not placed exactly on the anatomical landmark (see for example Psis in the screenshot added in the link previously shared) is it because something went wrong during the parameter identification? If so, is it something that should be solvable tuning the markers’ optimisation parameters in the marker protocol?

Thank you for your availability,

Mattia

Hi @Mattia

What warnings do you see?
From the image it seems that your ILIAC marker should be open for optimization in all three directions.
Otherwise you should check if that marker placement on the model is the same as in your experiment.

Best regards,
Bjørn

Hi Bjorn,

I get the following warning:
WARNING(OBJ.MCH.MUS3) : AnyMocapModel.any(60) : InverseDynamicStudy.InverseDynamics : Overloaded muscle configuration.
Actually, I got this warning also while running other subjects, and I noticed that it often appears right after the heel strike.
Do you know what is this error generally due to? Is there a way to understand which muscle configuration is overloaded?

Best regards,

Mattia

Hi @Mattia

It is not an error but a warning that one or more muscles are overloading - meaning that the solver recruited it more than its nominal strength to solve the simulation.

Since you mention it to happen right after heelstrike, you should look into the eversion/inversion degree of freedom. It can be a hard degree of freedom to control, you can try to use the mannequin drivers to see if that removes the warning.

To pinpoint what muscle it is, you can either inspect the model view, overloaded muscles turn purple. Otherwise you can plot all the muscle activations to see which are above 1.

Best regards,
Bjørn

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