Spine models in AMMRV1.2 and 1.3

[quote=aalmunajjed;13767]Damon,

this is a wrapping muscle problem. Here is a section from the Wiki on how to resolve this:

Resolve penetration errors

Many muscles in the body are wrapped over bones and slide on the bony surfaces when the body moves. This means that the contact forces between the bone and the muscle are always perpendicular to the bone surface, and the muscle may in fact release the contact with the bone and resume the contact later depending on the movement of the body. Via point muscles are not capable of modeling this type of situation, so the AnyBody Modeling System has a special muscle object for this purpose.
A wrapping muscle is presumed to have an origin and an insertion just like the via point muscle. However, instead of interior via points it passes a set of surfaces. If the surfaces are blocking the way then the muscle finds the shortest geodesic path around the surface. Hence the name of the class: AnyShortestPathMuscle. The fact that the muscle always uses the shortest path means that it slides effortlessly on the surfaces, and hence there is no friction between the muscle and the surface.
Sometimes one or some of the points defining a muscle turn out to be located inside one of the surfaces that the muscle can wrap on. In general this should be avoided because a part of the muscle path will be located inside the surface and this part of the path becomes unpredictable.
The penetration errors can occur at different times:

[ol]
[li]They may happen at load time when the model is in its initial position. If they only occur in this position they are not important. It just means the initial posture creates penetration.[/li][li]They may occur when running inverse analysis of the model. This can be important.[/li][/ol]There can be different reasons for this, including:

[ol]
[li]If for example the arm is penetrating the thorax this may give a penetration warning. This is not an error related to the Body model but related to the way the model is being used. Here the remedy is to change the drivers of the model.[/li][li]In principle all surfaces in the model used for wrapping have been made in a way that makes them scale with the model. When defining a cylinder it is typically defined using three nodes. These nodes control the size and location of the cylinder. When the bone is scaled, these control nodes will also be scaled like any other node on the bone and consequently the cylinder will be scaled too. Ellipsoids are made in a similar way. This setup does not guarantee that penetration errors will never occur. If the via point and the surface are located on the same bone and are very close, different types of scaling and sizes could potentially create penetration errors.[/li][/ol]In general the remedy is to

[ol]
[li]Exclude all muscles from the model except the one causing the problem.[/li][li]Insert an AnyDrawParamSurface in the surface being penetrated to visualize it you can do this directly in the muscle. Typically by writing Surf1={ AnyDrawParamSurf drw={}; }; //assuming a Surf1 reference is existing![/li][li]Insert an AnyDrawRefFrame in the node which is penetrating.[/li][li]Try to understand the root of the problem, whether it is related to scaling or motion.[/li][li]Do modifications on either model or motion to solve the problem[/li][/ol]**************

[/quote=dstambolian]

Hi Amir, Sylvain, or anybody that can help please

Looking at the motion capture I noticed the shape of the torso was changing because of the CLAV STRN markers moving around, so I smoothed the trajectories and now im not getting the same error as before, but am getting this different error. What does maximum number of iterations mean, and what would I do if I get this error?

7.0) Inverse dynamic analysis…
[SIZE=1]ERROR(OBJ.MCH.MUS4)[/SIZE] : [SIZE=1]C:/U…s/DB/D…s/A…s/A…3/A…n/A…n/G…6/GaitFullBody.main.any[/SIZE] : [SIZE=1]InverseDynamicStudy.InverseDynamics[/SIZE] : Muscle recruitment solver : solver aborted after maximum number of iterations

Sincerely Thanks
Damon

Damen,

one thing at a time. About the AnyForceMomentMeasure2:

adapt that to your model:
AnyForceMomentMeasure2 L5Sacrum = {
AnyRefNode &ref = _JointsLumbar.SacrumPelvisJnt.PelvisNode;
AnySeg &seg1 = _Trunk.SegmentsLumbar.L5Seg;
AnySeg &seg2 = _Trunk.SegmentsLumbar.SacrumSeg;
AnyForce &jnt1 = _JointsLumbar.L4L5Jnt.Constraints.Reaction;
AnyForce &jnt2 = _JointsLumbar.SacrumPelvisJnt.Constraints.Reaction;
};

and check if the results make sense! You have now L5 and Sacrum inlcuded and all Reaction Forces that are applied to L5 from above (through L4L5) and to Sacrum through PelvisSacrum.
So Forces and Moments in L5Sacrum without any Muscle Forces between L5 and Sacrum…


about the smoothing of the trajectory lines:

I assume you changed the motion so that a abnormal muscle configuration would be needed to solve the motion.


[quote=aalmunajjed;13788]Damen,

one thing at a time. About the AnyForceMomentMeasure2:

adapt that to your model:
AnyForceMomentMeasure2 L5Sacrum = {
AnyRefNode &ref = _JointsLumbar.SacrumPelvisJnt.PelvisNode;
AnySeg &seg1 = _Trunk.SegmentsLumbar.L5Seg;
AnySeg &seg2 = _Trunk.SegmentsLumbar.SacrumSeg;
AnyForce &jnt1 = _JointsLumbar.L4L5Jnt.Constraints.Reaction;
AnyForce &jnt2 = _JointsLumbar.SacrumPelvisJnt.Constraints.Reaction;
};

and check if the results make sense! You have now L5 and Sacrum inlcuded and all Reaction Forces that are applied to L5 from above (through L4L5) and to Sacrum through PelvisSacrum.
So Forces and Moments in L5Sacrum without any Muscle Forces between L5 and Sacrum…


[/quote=dstambolian]

Hi Amir

Getting graphs now, awesome! The force in the vertical makes sence because the force is much lower without muscles and follow a similar curve as “L5SacrumProximoDistalForce” (with muscle vertical force). Example, at same time, 1.93e+002 vs 2.23+003.

1- I did not see graphs for L4L5, or PelvisSacrum?

To check further I need little help to define the graphs.
The lables on the graphs have this; F[0], F[1], F[2], and M[0], M[1], and M[2].

2- How does F[0], F[1], F[2] map to;
L5SacrumMedioLateralForce = F[?]
L5SacrumProximoDistalForce… i think = F[2]
L5SacrumAnteroPosteriorForce = F[?]

3- For the moments with muscles in this folder “JointMomentMeasure”; I see SacrumPelvis graphs, but not L5Sacrum graphs. How do I get graphs with muscles for L5Sacrum to compare to the graphs without forces, and how do these M[0], M[1], M[2] map to the L5Sacrum graphs?

SacrumPelvisFlexionExtensionMoment = M[?]
SacrumPelvisAxialMoment = M[?]
SacrumPelvisLateralMoment = M[?]

A few more questions on the same subject, hope thats ok.

I see that the code has a F*, and M*.

AnyVec3 Mlocal=Mref.Axes;
AnyVec3 Flocal=F
ref.Axes;

4- Can I seperated the graphs by doing something like this?

AnyVec3[COLOR=#007e00] [/COLOR]Flocal=FL5SacrumMedioLateralForceref.Axes;
AnyVec3 Flocal=FProximalDistalForceref.Axes;
AnyVec3 Flocal=FAnteriorPosteriorForceref.Axes;

5-And what does 1.93e+002 equate to in Newtons ?

6-And 1.20e+001 equate to in mm.N ?

7-Are these the actual values, or are these normalized by the subjects mass ?

Sincerely
Thanks
Damon

Final code.

[SIZE=3]AnyForceMomentMeasure2[/SIZE][SIZE=3] [/SIZE]L5Sacrum[SIZE=3] [/SIZE]=[SIZE=3] [/SIZE]{[SIZE=3]
[/SIZE][SIZE=3]AnyRefNode[/SIZE][SIZE=3] [/SIZE]&ref[SIZE=3] [/SIZE]=[SIZE=3] [/SIZE]Main.Studies.HumanModel.BodyModel.Trunk.JointsLumbar.SacrumPelvisJnt.PelvisNode;
[SIZE=3]AnySeg[/SIZE][SIZE=3] [/SIZE]&seg1=Main.Studies.HumanModel.BodyModel.Trunk.SegmentsLumbar.L5Seg;
[SIZE=3]AnySeg[/SIZE][SIZE=3] [/SIZE]&seg2=[SIZE=3] [/SIZE]Main.Studies.HumanModel.BodyModel.Trunk.SegmentsLumbar.SacrumSeg;
[SIZE=3]AnyForce[/SIZE][SIZE=3] [/SIZE]&jnt1=[SIZE=3] [/SIZE]Main.Studies.HumanModel.BodyModel.Trunk.JointsLumbar.L4L5Jnt.Constraints.Reaction;
[SIZE=3]AnyForce[/SIZE][SIZE=3] [/SIZE]&jnt2=[SIZE=3] [/SIZE]Main.Studies.HumanModel.BodyModel.Trunk.JointsLumbar.SacrumPelvisJnt.Constraints.Reaction;
[SIZE=3]AnyVec3[/SIZE][SIZE=3] [/SIZE]Mlocal=Mref.Axes;
[SIZE=3]AnyVec3[/SIZE][SIZE=3] [/SIZE]Flocal=F
ref.Axes;

//////////////////////////////////

Next to F and M you have a folder for L4L5 and PelvisSacrum. If you go in there you’ll find the loads in there under Constraints & Reaction. However, these folders contain forces including muscles. If you want them without muscles, you have to setup a new measure for them like we did for L5Sacrum.
[0], [1] and [2] are the first values in the coordinate system of your joint. This means F[0] is the force in x direction, F[1] in y and F[2] in z direction. Moments are then around that particular Axis. That means M[1] rotates around the y-axis.
To be sure about the orientation of the coordinate system, you can draw a ref frame in the node of the joint.
You should be able to easily do that getting help from tutorials and wiki.
About the numbers you get, AnyBody uses always SI units, so Forces in N and Moments in Nm!


[quote=aalmunajjed;13789]about the smoothing of the trajectory lines:

I assume you changed the motion so that a abnormal muscle configuration would be needed to solve the motion.


[/quote=dstambolian]

Hi Amir

Basically I just removed any jagged trajectories, and made smooth splices, this was done in Vicon.

[quote=aalmunajjed;13799]Next to F and M you have a folder for L4L5 and PelvisSacrum. If you go in there you’ll find the loads in there under Constraints & Reaction. However, these folders contain forces including muscles. If you want them without muscles, you have to setup a new measure for them like we did for L5Sacrum.
[0], [1] and [2] are the first values in the coordinate system of your joint. This means F[0] is the force in x direction, F[1] in y and F[2] in z direction. Moments are then around that particular Axis. That means M[1] rotates around the y-axis.
To be sure about the orientation of the coordinate system, you can draw a ref frame in the node of the joint.
You should be able to easily do that getting help from tutorials and wiki.
About the numbers you get, AnyBody uses always SI units, so Forces in N and Moments in Nm!


[/quote=dstambolian]

Hi Amir

I compared Anybody L5/S1 kinetic output without muscles with Vicon bodybuilder model without muscles for kinetics at L5/S1 (see attached). The cureves look very similar, but the values are not the same. Are the values from Anybody normalized?

Sincerely Thnaks
Damon

Damon,

looking at your last post, it seems like there was a misunderstanding. I think I thought more complicated. If you want data similar and comparable to Vicon, you can run the model completely without muscles.

If you open the BodyPartsSetup.any file, you can exclude the muslces and run the simulation. The normal force and moments in the selected output will then be comparable to Vicon. So it seems, that the setup of this L5Sacrum AnyForceMomentMeasure2 was not necessary.


[quote=aalmunajjed;13847]Damon,

looking at your last post, it seems like there was a misunderstanding. I think I thought more complicated. If you want data similar and comparable to Vicon, you can run the model completely without muscles.

If you open the BodyPartsSetup.any file, you can exclude the muslces and run the simulation. The normal force and moments in the selected output will then be comparable to Vicon. So it seems, that the setup of this L5Sacrum AnyForceMomentMeasure2 was not necessary.


[/quote=dstambolian]

Hi Amir

There is probably another useful application for this L5Sacrum AnyForceMomentMeasure2 code, can you explain what it actually does? I think what your saying is that the muscles for all but the L5/S1 are still on and that is why the results are different?

I think it should be possible for us to create some programming code so there is an easy interface (to turn all the muscles on/off) so I won’t have to turn off/on the muscles manually/individually. Maybe by having two seperate files BodyPartsSetup.any and BodyPartsSetup2.any (one with muscles on and one with muscles off). Then use similar interface (1/0 0/1 as is used to upload the kinematics and optimization code) the same way to turn the muscels on and off. What do you think?

Sincerely
Damon

Damon,

I was trying to setup something that has all muscles, but the L5S included. However, the way I set it up is not correct. The AnyFroceMomentMeasure2 is not very easy to understand. If you click on it in the script (blue text) and press F1 then you’ll get a description of it!

I do not completely understand the goal of your project. If you do not need the muscles, then have the 1/0 so that you don’t use the muscle groups.
You can also include a BodyPartsSetupNoMuscles.any, when you don’t need muscles and a BodyPartsSetup.any, when you need them. Then you can “outcomment” that one you don’t need.


[quote=aalmunajjed;13849]Damon,

I was trying to setup something that has all muscles, but the L5S included. However, the way I set it up is not correct. The AnyFroceMomentMeasure2 is not very easy to understand. If you click on it in the script (blue text) and press F1 then you’ll get a description of it!

I do not completely understand the goal of your project. If you do not need the muscles, then have the 1/0 so that you don’t use the muscle groups.
You can also include a BodyPartsSetupNoMuscles.any, when you don’t need muscles and a BodyPartsSetup.any, when you need them. Then you can “outcomment” that one you don’t need.


[/quote=dstambolian]

Amir

I need both. The L5/S1 forces (no muscles), and also the L5/S1 forces with muscles. I’d rather run the program once, but it looks like I’ll need to run it twice.

I like that idea of using BodyPartsSetupNoMuscles.any, should work out good.

Thanks
Damon

[quote=dstambolian;13850][quote=aalmunajjed;13849]Damon,

I was trying to setup something that has all muscles, but the L5S included. However, the way I set it up is not correct. The AnyFroceMomentMeasure2 is not very easy to understand. If you click on it in the script (blue text) and press F1 then you’ll get a description of it!

I do not completely understand the goal of your project. If you do not need the muscles, then have the 1/0 so that you don’t use the muscle groups.
You can also include a BodyPartsSetupNoMuscles.any, when you don’t need muscles and a BodyPartsSetup.any, when you need them. Then you can “outcomment” that one you don’t need.


[/quote=dstambolian]

Amir

I need both. The L5/S1 forces (no muscles), and also the L5/S1 forces with muscles. I’d rather run the program once, but it looks like I’ll need to run it twice.

I like that idea of using BodyPartsSetupNoMuscles.any, should work out good.

Thanks
Damon

[/quote=dstambolian]

Amir
I got this one figured out. (After labeling, somehow the right shoulder and upper arm marker was switching without showing up in vicon. When i did dynamic processing in vicon the bones disappeared at that section, that is how I found the problem. So thats what happend to cause below)

[SIZE=1]0.0) Kinematic analysis…
Failed to resolve kinematic constraints. Newton relaxation too small. (final kin. error = 8.238798E-003)
Constraint no. 14 above error tolerance 0.001000, error = 0.001343.
Constraint no. 15 above error tolerance 0.001000, error = 0.001434.
Constraint no. 162 above error tolerance 0.001000, error = 0.008239.
Constraint no. 163 above error tolerance 0.001000, error = 0.001785.
Constraint no. 164 above error tolerance 0.001000, error = 0.006195.
Constraint no. 165 above error tolerance 0.001000, error = 0.006754.
Constraint no. 166 above error tolerance 0.001000, error = 0.003006.
Constraint no. 167 above error tolerance 0.001000, error = 0.002291.
Constraint no. 168 above error tolerance 0.001000, error = 0.005609.
Constraint no. 169 above error tolerance 0.001000, error = 0.006307.
Constraint no. 170 above error tolerance 0.001000, error = 0.003547.
Constraint no. 171 above error tolerance 0.001000, error = 0.004430.
Constraint no. 172 above error tolerance 0.001000, error = 0.003700.
Constraint no. 173 above error tolerance 0.001000, error = 0.003066.
Constraint no. 174 above error tolerance 0.001000, error = 0.006061.
Constraint no. 448 above error tolerance 0.001000, error = 0.001268.
Constraint no. 450 above error tolerance 0.001000, error = 0.001066.
Constraint no. 595 above error tolerance 0.001000, error = 0.001131.
Constraint no. #0 in ‘Main.Studies.KinematicStudyForParameterIdentification.HumanModel.BodyModel.Right.Leg.Jnt.SubTalar.Constraints’ above error tolerance 0.001000, error = 0.001268.
Constraint no. #2 in ‘Main.Studies.KinematicStudyForParameterIdentification.HumanModel.BodyModel.Right.Leg.Jnt.SubTalar.Constraints’ above error tolerance 0.001000, error = 0.001066.
0.5) …Kinematic analysis terminated
[SIZE=1]ERROR(OBJ.MCH.KIN3)[/SIZE] : [SIZE=1]//data/rf/E…n/D…s/1…n/A…3/A…n/M…n/F…y/GaitFullBody.main.any[/SIZE] : [SIZE=1]KinematicStudyForParameterIdentification.Kinematics[/SIZE] : Kinematic analysis failed in time step 5

Macro command > runmacro “SaveMacroOperation-Save.anymcr”

Macro command > classoperation Main.ModelSetup.SaveMacroOperation “Save AnyString to file” --file=“RunMacroOperation-Save.anymcr”

Macro command > runmacro “RunMacroOperation-Save.anymcr”

Macro command > classoperation Main.Studies.ParameterIdentification “Save design” --file=“AAgustoH4_-OptimizedParameters.txt”

Macro command > operation Main.Studies.MotionOptimization.Kinematics

Error : Main.Studies.MotionOptimization.Kinematics : object is not AnyOperation.
[/SIZE]

[quote=dstambolian;13856][quote=dstambolian;13850][quote=aalmunajjed;13849]Damon,

I was trying to setup something that has all muscles, but the L5S included. However, the way I set it up is not correct. The AnyFroceMomentMeasure2 is not very easy to understand. If you click on it in the script (blue text) and press F1 then you’ll get a description of it!

I do not completely understand the goal of your project. If you do not need the muscles, then have the 1/0 so that you don’t use the muscle groups.
You can also include a BodyPartsSetupNoMuscles.any, when you don’t need muscles and a BodyPartsSetup.any, when you need them. Then you can “outcomment” that one you don’t need.


[/quote=dstambolian]

Amir

I need both. The L5/S1 forces (no muscles), and also the L5/S1 forces with muscles. I’d rather run the program once, but it looks like I’ll need to run it twice.

I like that idea of using BodyPartsSetupNoMuscles.any, should work out good.

Thanks
Damon

[/quote=dstambolian]

Amir
I got this one figured out. (After labeling, somehow the right shoulder and upper arm marker was switching without showing up in vicon. When i did dynamic processing in vicon the bones disappeared at that section, that is how I found the problem. So thats what happend to cause below)

[SIZE=1]0.0) Kinematic analysis…
Failed to resolve kinematic constraints. Newton relaxation too small. (final kin. error = 8.238798E-003)
Constraint no. 14 above error tolerance 0.001000, error = 0.001343.
Constraint no. 15 above error tolerance 0.001000, error = 0.001434.
Constraint no. 162 above error tolerance 0.001000, error = 0.008239.
Constraint no. 163 above error tolerance 0.001000, error = 0.001785.
Constraint no. 164 above error tolerance 0.001000, error = 0.006195.
Constraint no. 165 above error tolerance 0.001000, error = 0.006754.
Constraint no. 166 above error tolerance 0.001000, error = 0.003006.
Constraint no. 167 above error tolerance 0.001000, error = 0.002291.
Constraint no. 168 above error tolerance 0.001000, error = 0.005609.
Constraint no. 169 above error tolerance 0.001000, error = 0.006307.
Constraint no. 170 above error tolerance 0.001000, error = 0.003547.
Constraint no. 171 above error tolerance 0.001000, error = 0.004430.
Constraint no. 172 above error tolerance 0.001000, error = 0.003700.
Constraint no. 173 above error tolerance 0.001000, error = 0.003066.
Constraint no. 174 above error tolerance 0.001000, error = 0.006061.
Constraint no. 448 above error tolerance 0.001000, error = 0.001268.
Constraint no. 450 above error tolerance 0.001000, error = 0.001066.
Constraint no. 595 above error tolerance 0.001000, error = 0.001131.
Constraint no. #0 in ‘Main.Studies.KinematicStudyForParameterIdentification.HumanModel.BodyModel.Right.Leg.Jnt.SubTalar.Constraints’ above error tolerance 0.001000, error = 0.001268.
Constraint no. #2 in ‘Main.Studies.KinematicStudyForParameterIdentification.HumanModel.BodyModel.Right.Leg.Jnt.SubTalar.Constraints’ above error tolerance 0.001000, error = 0.001066.
0.5) …Kinematic analysis terminated
[SIZE=1]ERROR(OBJ.MCH.KIN3)[/SIZE] : [SIZE=1]//data/rf/E…n/D…s/1…n/A…3/A…n/M…n/F…y/GaitFullBody.main.any[/SIZE] : [SIZE=1]KinematicStudyForParameterIdentification.Kinematics[/SIZE] : Kinematic analysis failed in time step 5

Macro command > runmacro “SaveMacroOperation-Save.anymcr”

Macro command > classoperation Main.ModelSetup.SaveMacroOperation “Save AnyString to file” --file=“RunMacroOperation-Save.anymcr”

Macro command > runmacro “RunMacroOperation-Save.anymcr”

Macro command > classoperation Main.Studies.ParameterIdentification “Save design” --file=“AAgustoH4_-OptimizedParameters.txt”

Macro command > operation Main.Studies.MotionOptimization.Kinematics

Error : Main.Studies.MotionOptimization.Kinematics : object is not AnyOperation.
[/SIZE]
[/quote=dstambolian]

Hi Amir

Im getting back to this now. One of the projects is to see how well a Vicon bodybuilder L5/S1 kinetics model performs by comparing its values tothe Anybody Validated model. So since the bodybuilder model does not have muscles is why i don’t want to apply muscle forces to the joints in AnyBody. So do you think we are on the right track by turning off the muscles in AnyBody?

Sincerely thanks
Damon

Hi Damon,

yes, that should work. However, I cannot say that the AnyBody forces (x,y,z) are in the same coordinate system as in Vicon.


Hello Amir

Its been a while, hope all is going well with you and the AnyBody research team. Can you please help me with these questions.

Q1, We have four force plates in our lab, if I physically move one of the force plates to a different location but do not change the forceplate layout in the VICON software will AnyBody still make the correct calculations?

Q2, After I do all the kinematic and optimization for kinetic processing to obtain the muscle activities, and kinetic forces, etc., how do I save all the output values? I don’t want to have to run optimization again to look at the outputs.

Sincerely
Thanks
Damon

Hi Damon,

Here are some answers;

A1: if the force plates are the same and their sequence inot changes it should work

A2: This depends a little on which model you are using: In all models you can save the entire output folder by finding the output folder in the Modeltree then rigth click and save output.

To read in the output you need to load the model first then find the output folder in the tree and load data

This will allow you to see all calculated output, you can also reply the motion.

Best regards
Søren

Søren
I wasn't sure what you meant by sequence so I uploaded a picture file to show what we are doing. The location of plate 2 and direction of lift has changed. What do you think, if I use the initial forceplate configuration in Vicon software, but physically move the plate 2 to the new configuratiion will the calculations sill work out correctly in AnyBody?

Hi,

If it is possible, then I’d recommend you to do the re-configuration of your Motion Capture System in VICON NEXUS system.
Of course this is not related to AnyBody Modeling System.

Best regards,
Moonki

Hi AnyBody

I’m comparing the EMG muscle activity to AB muscle activity for lifting a box from floor to a 50" shelf. The subjects lift the box from the floor to the shelf in one motion, but for the comparison, I am separating the muscle activity data into two phases, from floor to waist height and from waist to 50". So for each phase I am comparing the averaged EMG muscle activity value to the averaged AB muscle activity value.

  • For the RA muscles, for both phases, the EMG is ranging from 1% to 6%, but the AB is zero for all subjects.

  • For the ES muscles:
    – For the first phase the EMG is ranging from 20% to 60%, and the AB is ranging from 20% to 35%. When graphically comparing the ES to the AB for each subject the agreement looks pretty good.
    –For the second phase (from waist to shelf), the EMG is ranging from 15% to 50%. But the AB is only ranging from 5 to 20%. The agreement doesn’t look so good when looking at each subject.

-For the EO muscle first phase the EMG and AB are in similar ranges, but when looking at each subject their agreement is ok in some cases, but some subjects have high EMG and low AB muscle activity, and some have high AB but lower EMG.

-For the EO and IO second phase, the AB muscle activity is much lower than the EMG for all cases.

Across the board, all of the AB muscle activities are acting less than the EMG muscle activities.

So I would like us to get better agreement for these muscles, especially with the ES and RA muscles, how do you think we can do this?

Is it possible to infuse the subject specific EMG data, MVC EMG data, or strength data, to improve the comparison. Or do you have some other ideas to improve the comparison without having infuse the EMG or strength data?

Sincerely thanks
Damon

Hi Damon,

“In the AB model there is a linear relationship between the estimated muscle activity and the actuator force, while in reality there is not a straightforward relationship between EMG amplitude and muscle force (Hof, 1997). Only in isometric contractions, like the clenching tasks, one can assume a linear relationship. This might be one of the reasons that for most muscles the correlation coefficient is higher for the clenching conditions than for the dynamic conditions.”

from:
Journal of Biomechanics 40 (2007) 1192–1201
Validation of a musculo-skeletal model of the mandible and its
application to mandibular distraction osteogenesis
Mark de Zeea, Michel Dalstraa, Paolo M. Cattaneoa, John Rasmussenb,
Peter Svenssonc, Birte Melsena

“Unfortunately, the active state computed in musculoskeletal modelling software is not a direct simulation of EMG for dynamic cases. Therefore, many authors compare only the timing of onset and offset of muscles between the model and the experiment, thus failing to take advantage of the richness of the EMG signal.”

from:
On validation of multibody musculoskeletal models
Morten Enemark Lund, Mark de Zee, Michael Skipper Andersen and John Rasmussen

Therefore the absolute values are almost never used to compare muscle activity and EMG. So far, all studies I’ve seen used normalized values and only look at the time of activation.