Anybody assumptions

Hi

I know that Anybody allows the modification of many of the inputs into the repositories such as LowerGaitExtremities. However, I wanted to know what the underlying assumptions that are made to produce these models? Could someone explain or provide a link.

Regards

Hey Ammar,

if you mean by assumption what motion is used, then I can tell you that the Gait models use recordings from subjects in a Gait Lab.
So it is a specific person walking as input.
Gait analyses are very subject specific, so if you want to analyze some specific subject, you need his/her MoCap recordings…

Hi Amir,

I wanted to know if Anybody recruits all possible muscles during gait in the limbs to provide force or if only a certain amount are used. Furthermore, is it possible to locate the hip centre using the Anybody software or do I have to find it on the actual .C3d file.

Many thanks

Ammar

Hi Ammar,

Amir is now out of office so I’m writing the answer…

All the muscle objects in the human model are considered to solve the muscle recruitment optimization problem.

And I don’t get what you mean about the hip joint center location. If you use GaitFullBody example,
then the kinematics information of all human segments can be determined by motion capture markers, then of course the hip joint center could be determined.

Or, do you want to change the hip joint definition? Then you have to modify AMMR by yourself.

Best regards,
Moonki

Hello Moonki

Yes I would like to locate the hip joint centre as I would like to compare what the model shows to clinical data. Sorry I didn’t quite understand your answer, is the hip centre located in one of the directories in the gaitfullbody? Or does it have to be determined by running the model?

Hi Ammar,

this is what I think:
The hip joint centre is defined in the jnt.any:

AnySphericalJoint Hip = {
AnyRefNode &ThighNode = …Seg.Thigh.HipJoint;
AnyRefNode &PelvisNode = …HipNodeRef.HipJoint;
};

So if you for example want to know where the hip joint is located on the pelvis you’ll have with to look at Pelvis-Ref-Node (HipNodes.any):

AnyRefNode HipJoint={
AnyVec3 sRel0=.LegAttachmentNodes.sRel0+(.LegAttachmentNodes.ARel*.LegAttachmentNodes.StdPar.HipJoint’)’;
// The Hip Joint is positioned based on the data in the cadaver data set
sRel=.Scale(sRel0);
#ifdef USE_AMMR14_HIP_ROTATIONS
// Setting the USE_AMMR14_HIP_ROTATIONSflag will emitate AMMR1.4 behaviour
ARel=RotMat(-24*pi/180,z);
#endif
};

with (also HipNodes.any):

AnyRefNode LegAttachmentNodes= {
/// Folder with cadaver parameters for pelvis in the LegTD model
AnyFolder &StdPar = …CadaverParameters.Pelvis;
/// Rotation of the Pelvis Anatomical Frame relative to lab frame of the Cadaver dataset
AnyMat33 CadaverPelvisAnatomicalFrame_ARel = RotMat(0.5*(StdPar.PsisIpsilateral+StdPar.PsisColateral),
0.5*(StdPar.AsisIpsilateral+StdPar.AsisColateral) ,
0.5*(StdPar.PsisIpsilateral+StdPar.PsisColateral)+…Sign*(StdPar.AsisIpsilateral-StdPar.AsisColateral) )RotMat(-pi/2,x);
/// Position of the Pelvis Anatomical Coordinate system relative to the lab frame of the Cadaver dataset
AnyVec3 CadaverPelvisAnatomicalFrame_sRel = 0.5
(StdPar.AsisIpsilateral+StdPar.AsisColateral);
/// Rotation of the Pelvis Anatomical Coordinate system relative to the Pelvis Segment coordinate system
AnyMat33 PelvisAnatomicalFrame_ARel = …Trunk.SegmentsLumbar.PelvisSeg.PelvisAnatomicalFrame.ARelUnscaled;
/// Position of the Pelvis Anatomical Coordinate system relative to the Pelvis Segment coordinate system
AnyVec3 PelvisAnatomicalFramePos = …Trunk.SegmentsLumbar.PelvisSeg.PelvisAnatomicalFrame.sRelUnscaled;
/// The ARel rotates the LegTD dataset to match the generic pelvis in the AnyBody repository.
/// This is done by alligning the anatomically defined coordinate systems
ARel = PelvisAnatomicalFrame_ARel CadaverPelvisAnatomicalFrame_ARel’;
/// The sRel aligns the LegTD dataset to match the generic pelvis in the AnyBody repository.
/// This is done by alligning the anatomically defined coordinate systems
AnyVec3 sRel0 = PelvisAnatomicalFramePos - CadaverPelvisAnatomicalFrame_sRel
ARel’;
sRel = .Scale(sRel0);

Then you can find the final values in the CadaverParameters.any and PelvisSeg.any.

Hi

Thank you for your replies. Pat, I think what you have shown me is the location of the hip joint in respect to the pelvis. What I am trying to find is the centre of rotation of the hip joint, or the virtual hip centre as it is known in literature. Can this be found in the CadaverParameters.any and PelvisSeg.any. files? Or do I have to do something else.

Thank you

Ammar

Hi Ammar,

Patrick explained already very detailed the HipJoint definition. The Center of Rotation in the Hip is in the

AnyRefNode &ThighNode = ..Seg.Thigh.HipJoint;