drop in muscle force

Dear AnyBody Team

Looking at muscle forces I could observe a drop in soleus muscle forces (also in gastrocnemii muscle forces) - please see the figure attached.

I have tried following changes:

  • muscle recruitment type (currently using the standard 3rd order polynom)
  • switching "ThreeFootMarkersOnOff " Off (currently On)
  • DoF in Ankle marker settings

I have also looked at the GRF and could not observe any reason for the drop in muscle force. Furthermore, this does not only occur in one trial, but several trials for several participants. However, only for the walking condition “very slow” rather than normal or faster walking speeds.

Do you have any recommendations for me on what else to look at?
What else could I change?

Thank you,
Nathalie

AnyBody version : 6. 0. 4.

Hi Nathalie,

Without knowing more about the model it is a bit difficult, but here are some guesses base on the information in the post.

It appears your are predicting the GRF? if this is case please explore if the prediction of strength in the individual contact nodes differs from other trials with no problems.

I would try to run the model without muscles and look at the torques to see if there are any such dips in these moments. If there are no such dips it must related to the muscles recruitment, then there must be another muscle which takes over the load instead. If there are dips in the torques it would look to change settings in the GRF prediction, there are settings related to high and speed.

Hope it helps a bit.

Best regards
Søren

Hi Søren

Thank you for your reply.
Sorry for being not precious enough.

I am using the MoCapModel (AMMR.v1.6.2) and I have measured GRFs implemented.
I have also attached the model I am using with one example trials where I could observe the drop in muscle forces.

Concerning muscle recuitment, I have tried quadratic, 3rd, 4th and 5th polynom, with the UpperBoundConstraint On and Off.
With all settings I observed the muscle force drop.

I have data for this person walking faster as well. And with faster walking speeds, results did not show a drop in muscle force.

Any hints on what else to look at, are appreciated :slight_smile:

Thank you,
kind regards
Nathalie

Hi Nathalie,

I have tried to run the model and the problem appears to be related to the load/motion. If you inspect the GRF vector (blue line) you will see that around the frames where you see the dip in activation the line appears to be in front of the knee axis. This means that the torque the muscles needs to do shifts sign, and this leads to this dip.

To fix it:
I can be either motion or applied forces:

Motion: try to inspect the markers are the knee marker placed correctly

Forces: the direction of the GRF may alter this significantly, if you have any data available that would allow you to verify the direction of the GRF it might be helpful, but i think i would start with the markers.

If you run the model with no muscles i am certain you will see a dip in knee torque.

Hope it helps

Best regards
Søren

Hi Søren

Thanks again.
I have started to look into my data in more detail.

However, I have noticed something different as well.
The duration of the Kinematics and InverseDynamics is not the same.
The Kinematics Sequence runs from 0:159
InverseKinetics: 0:100

Therefore, also my Output has only 101 frames.

To be honest I have no idea what I have changed. In previous calculations my output always equaled the frames of the Kinematic session.

Can you tell me the reason for the differences in the duration of the Kinematics and InverseDynamicsSequences?

Thank you and kind regards,
Nathalie

Hi Nathalie,

I have looked at the code and the nStep value is not specified for the inverse study so it is using the default value which is 101.

You can specify it to be the same as in the kin study, to do that located yout InverseDynamicStudy and paste in

nStep = Main.TrialSpecificData.nStep;

This is how the nstep is specified for kin analysis.

This will not change dramatically your results, it just means that that you have less output data to look at, it has simply calculated the results in fewer sample points.

Best regards
Søren

Hi Søren

  1. Thank for telling me the missing nStep.

  2. I still did not firgure out the problem for the muscle drop. It appears to only happen in AnyBody. I could also observe the Switch in Joint moments. Therefore, I have also looked at joint moments using Visual 3D and everything is fine for the Joint moments calculated usind visual 3D. I have looked at the GRF vector, and I have even rotated forceplates up to 1° in case calibration was not perfect. This however did not solve the problem with the occuring muscle drop. I have also tried to alter the marker placement of the knee marker within my AnyBody model. This also did not help. Can it be an issue with the filters (trajectories and GRF) used? Or the calculated knee joint center?

I’d appreciate any ideas on what else to look at.
Thanks and best regards,
Nathalie

Hi Nathalie

Søren (@toerholm) away on holiday this week. I would like to help but I don't have access to your model, so that have to wait until Søren gets back

Can it be an issue with the filters (trajectories and GRF) used?

Yes, but I have only seen this when markers drop out. So maybe you can check that. While you are at it. Please also check that the filters are configured to use forward/backward filtering (it sometimes called filtfilt in matlab. Check that the following variables are set to On:

Main.ModelSetup.C3DFileData.Filter.FilterForwardBackwardOnOff,
Main.ModelSetup.C3DFileData.LowPassFilter.FilterForwardBackwardOnOff

Or the calculated knee joint center?

The knee joint center is comes implicitly from the marker position since it is fixed to the geometry of the model. So if you move the marker on the knee forward your knee joint center will move backwards compared to the GRF vector.

I hope this can help you a little until Søren gets back.

Best wishes,
Morten

Hi Morten

I’ve checked the filters, both are “On”.

I’ve also tried to move the knee joint marker in the model backwards and forwards to asses the effect of the knee joint marker placement in the model.
Originial x-component: 0.00560937
I’ve set the x-component to -0.025 and +0.025
No matter if I move the location forwards or backwards, I can still observe the drop in muscle forces (also swith in the knee joint moment).

There are also no gaps in marker trajectories.
I am quite clueless on what else the reason might be.
Especially, when the same participant walks faster, we do not observe any drops / switches in muscle forces / joint moments.

Thanks,
Nathalie

MoCapModel_gait speeds.zip (477.3 KB)

Hi Nathalie,

I think we have found the problem.

The issue is that the force from the plate3 is being transmitted to both feet’s when this drop occurs.

To fix it

  • In the file forceplates.any change these settings for all plates
    HeightTolerance=0.04,
    VelThreshold=1.5,

The auto detection force plates automatically transmit force to the limbs above and it it detects this based on height and velocity. I think what goes wrong in your case are that the feet are elevated above ground a bit so the tolerance is too high and it detects both feet to have contact.

The change above should fix, alternatively see both limb1 and limb2 to be the same foot, this requires you to know which foot is on which plates, the results will the same as by changing the tolerances.

Finally in the latest AMMR we have built in more logic so that it will do a detection of which of the two limbs have the best contact conditions and then it will choose only that one. Then there is an additional setting that allows to have both limbs on the plate it this is needed for eg. a standing trial.

Hope it makes sense.

Best regards
Søren