Foot Model Problems-

Hello everyone,
I am having trouble getting the corrct muscle activation pattern on my 3-segment Foot model. I have attached the model here. I am driving the model with marker data for walking.

My main concerns is-
Tibialis Anterior(TibAnt) and Extensor Digotorum Longus (EDL) muscles show very high activity during stance phase of walking. They both should only be active during swing phase.

I suspect that these two muscles are trying to move the shank forward during stance, which should actually be controlled by knee joint motion. Model only has muscles below knee and Knee joint is not driven by muscles.

Is there something wrong with the model mechanics. Do I need to add any reaction at Hip or Knee joint?

Thanks for the help.
Prabhav

Hi Prabhav

Nice model!

I have tested the model a bit and i do also see high activations of tibial anterior and EDL until around 0.7 sec.

Looking at the joint definition i see that the ankle joint is a spherical joint, when driving this joint you set the reactions to On,Off,On. The type of the rotaional measure used for the driver is a RotAxesAngles and the sequence of rotations are z,y,x. Plotting the coordinate system of the first mentioned node in the measure

AnyRefFrame &ref1 = …HumanModel.FootSegmentsRight.Shank;
shows that the y axis is pointing almost medial lateral. So at first glance it looks correct to have the second dof with no reaction since this is the flexion extenion axis. But when looking at the motin data for the the joint if you look at the property
Main.OptStudy.Output.OptModel.ModelEnvironmentConnection.JointsAndDrivers.JointMeasures.Pos[9] , i think this is the rotation around the z axis, if this rotation was zero it would mean that the y axis would point medial lateral but this is not the case the position varies between -0.8-0.9. This means that the direction you have with no reaction on is not medial lateral but different because there is a rotation around the z axis first of roughly -0.9 rad
[SIZE=3][SIZE=2][COLOR=#000000][/SIZE][/COLOR][/SIZE]
[SIZE=3][SIZE=2][COLOR=#000000]I have two solutions for this:[/SIZE][/COLOR][/SIZE]
[SIZE=3][SIZE=2][COLOR=#000000]1 introduce a revolute joitn in the angle and repotimize the motion this will ensure the constraints are ok.[/SIZE][/COLOR][/SIZE]
[SIZE=3][SIZE=2][COLOR=#000000]2 remove the reactions applied on the RotAxesAngles measure for this joint and replace them by a reactions applied on a meausre using a RotVector. [/SIZE][/COLOR][/SIZE]
[SIZE=3][SIZE=2][COLOR=#000000][/SIZE][/COLOR][/SIZE]
[SIZE=3][SIZE=2][COLOR=#000000]I have tested the code below in the JOintAnddriversOptimized file and it lower the activations significantly. Firstly i removed the reactions of the ankle joint in the driver please see below[/SIZE][/COLOR][/SIZE]
[SIZE=3][SIZE=2][COLOR=#000000][/SIZE][/COLOR][/SIZE]
[SIZE=3][SIZE=2][COLOR=#000000]
[COLOR=#0000ff]AnyKinEqInterPolDriver Jntdriver =
{
FileErrorContinueOnOff = On;
//MeasureOrganizer = ;
Type = Bspline;
BsplineOrder = 4;
//T = ;
//Data = ;
FileName = “output-euler.txt”;
AnyKinMeasureOrg &meas = .JointMeasures;
Reaction.Type={
On,On,On,
On,On,On,
On,On,On,
Off,Off,Off, //removed the reaction of the these dof replace by RightAnkleReaction object below
On,Off,On,Off};

};

Then these reactions has to be replaced by reactions applied to a RotVector object.

[/COLOR][/SIZE][/COLOR][/SIZE]
AnyReacForce RightAnkleReaction ={
AnyKinMeasureOrg org={
AnyKinRotational RightAnkleReaction = {
Type = RotVector;
AnyRefFrame &ref1 =…HumanModel.FootSegmentsRight.Shank;
AnyRefFrame &ref2 = …HumanModel.FootSegmentsRight.HindFoot;
};
MeasureOrganizer={0,2}; //carry the moment around x and z not y
};
};

[COLOR=black]For more information on how the RotVector works please look at the AnyScript wiki page [/COLOR]
http://wiki.anyscript.org/index.php/Tips_and_tricks#How_to_understand_the_reactions_in_AnyKinRotational_when_using_the_Cartesian_rotation_vector_.28Type.3DRotVector.29
The RotVector does not use cardan angles like the RotAxesAngles object so it is easier to apply the reactions moments you desire. When using a RotAxesAngles object for non-zero rotations the moment reactions are complex to apply correctly, because the applied moment direction depends on the previous rotations, this is not the case with the RotVector.

This also needs to be done for the other joints in the foot to make the model right.

I hope i all made sense, otherwise please write again, it looks like it is going to be a nice model :wink:

Best regards
Søren

Hi Prabhav, Soren,

great to here there some development with the foot. I’ve modeled over 20 peoples gait for my project and there has consistently been over-activation in gastrocnemeus, soleus, and peroneus. I think this is mainly due to the way the foot is currently modelled as a single rigid segment, with high moment about the ankle during toe-off phase of gait. My specialist subject is the knee, but it is currently being hampered by this foot problem.

Have you seen a reduction in muscle recruitment with the additional segments in the foot?

best wishes

Peter