GaitLowerExtermity

Hello,
We are trying to use version 4.1 for incorporating our own gait data to model lower body kinematics. We have added our c3d file to the GaitLowerExtermity model and altered the marker set up so that only [FONT=Calibri]the RASI, LASI, RPSI, LPSI, RTHI, LTHI, RKNE, LKNE, RTIB, LTIB, RANK, LANK, RHEE, LHEE, RTOE and LTOE are defined. However, when we run the RunMotionAndParameterOptimizationSequence, it starts to work and then fails with the following error:- [/FONT]
ERROR(OBJ.MCH.KIN3) : C:/D…s/M…h/D…p/A…1/A…1/A…n/M…l/G…y/GaitLowerExtremity.main.any : MotionOptimization.InitialConditions : Kinematic analysis failed in time step 0.
Is this related to the original GaitLowerExtermity model containing additional markers, and so may need additional alterations? I have uploaded the model we are working on – currently we are looking at the kinetics and have not altered the model to the force plate data so have just blocked the comments in the environment.any file. We would be grateful of any information which may help.
Many thanks
Pete

Hi Pete

I think the problem is that the model now lacks drivers for the upper body, in the original model there was a few markers that was used to driver the upper body, if these has been removed something else is needed instead to drive these dof.

I have briefly looked into the model and did not see find these drivers.

Usually a set of drivers like these will solve the problem

// AnyKinEqSimpleDriver PelvisThoraxDriver ={
// AnyKinMeasureOrg &ref1= …HumanModel.Interface.Trunk.PelvisThoraxExtension;
// AnyKinMeasureOrg &ref3= …HumanModel.Interface.Trunk.PelvisThoraxRotation;
// DriverPos={0,0};
// DriverVel={0,0};
// };
//
// //This is an etsimation of the upper body motion it will enforce that the head is kept above the pelvis medial/laterally
// AnyKinEqSimpleDriver LateralBendDriver ={
// AnyKinLinear lin ={
//Ref=0;
// AnySeg &ref1= …HumanModel.Trunk.SegmentsLumbar.PelvisSeg;
// AnySeg &ref2= …HumanModel.Trunk.SegmentsThorax.SkullSeg;
// };
// DriverPos={0};
// DriverVel={0};
// MeasureOrganizer={2};
// };
//
// AnyKinEqSimpleDriver NeckDrv={
// AnyKinMeasureOrg &ref1= …HumanModel.Interface.Trunk.NeckJoint;
// DriverPos={0};
// DriverVel={0};
// Reaction.Type={Off};
// };

Best regards
Søren

Hi,
Thanks for the quick reply. The lack of upper body drivers makes sense. I have included the drivers for the PelvisThoraxDriver, LateralBendDriver and NeckDriver in the JointandDrivers.any file, but the same error is occurring. Are there other files which need changing to incorporate these changes?
Thanks
Pete

Hi Pete

Please check that the JointAndDriver.any is actually used, i am afraid that it is a left over file in this particular application

you may look in the main file for the driver folder, and include a new file from there containing the extra drivers…

you will need also need to add the same drivers for the second model, a natural place for this is in the JointAndDriversOptimized file

Best regards
Søren

Hi,
Thanks again for the reply and sorry for the questions. I am still having a bit of trouble altering this model. We are just trying to incorporate some old c3d files we used with the GaitUniMiami model into the new GaitLowerExtremity model (hence why we don’t have the upper body markers). I have created a new file in the driver folder which has the drivers for the upper body (taken from the GaitUniMaimi model), but the commands reference parts from HumanModel.any (e.g. …HumanModel.Interface.Trunk.PelvisThoraxExtension) which cause errors as the HumanModel.any file is different in the new model.
Currently I am struggling to make it work. Is it better to try and incorporate gait data with the upper body markers, or should it be quite easy to alter the model to just lower body markers?
Thanks for the help.
Pete

Hi Pete

It should be no big deal to incorporate the drivers for the upper body instead of having them to be marker driven…

Some code like this should do the trick if it is included in main file:

//Connection between environment and the human
AnyFolder ModelEnvironmentConnection = {
AnyFolder Drivers={

      // Aliases for convenient referencing
      AnyFolder &JntPos=..Mannequin.Posture;  
      AnyFolder &JntVel=..Mannequin.PostureVel;
      
      
      
      AnyKinEqSimpleDriver PelvisThoraxDriver ={
        AnyKinMeasureOrg &ref1= ...HumanModel.Interface.Trunk.PelvisThoraxExtension;
        AnyKinMeasureOrg &ref3=     ...HumanModel.Interface.Trunk.PelvisThoraxRotation;
        DriverPos={0,0}; 
        DriverVel={0,0};
      };
      
      //This is an etsimation of the upper body motion it will enforce that the head is kept above the pelvis medial/laterally
      AnyKinEqSimpleDriver LateralBendDriver ={

        AnyKinLinear lin ={

Ref=0;
AnySeg &ref1= …HumanModel.Trunk.SegmentsLumbar.PelvisSeg;
AnySeg &ref2= …HumanModel.Trunk.SegmentsThorax.SkullSeg;
};
DriverPos={0};
DriverVel={0};
MeasureOrganizer={2};
};

      AnyKinEqSimpleDriver NeckDrv={
        AnyKinMeasureOrg &ref1= ...HumanModel.Interface.Trunk.NeckJoint; 
        DriverPos={0};
        DriverVel={0};
        Reaction.Type={Off};
      };
    };
  };

Best regards
Søren

Hi Soren,
Thanks again for the reply. I have altered the model to include the upper body drivers within the ModelEnvironmentConnection folder and within JointAndDriversOptimised.any file as suggested. It works fine when loading the InverseDynamicModel, but when running the MotionAndParameterOptimizationModel the NeckJoint, PelvisThoraxDriver and LateralBendDriver are still unresolved objects.
Is there any else that needs changing in the MotionAndParameterOptimizationModel to enable these drivers to be recognised.
Thanks
Pete

Hi Pete

It should not be needed to do more change if the you have inserted these drivers the correct folder, in my version it will load. So i think it is a matter of a missing . or similar…

Please try to do the following:

1 outcomment the drivers again
2 make sure it loads the model
3 go to the folder where you have the drivers outcommented
4 find the objects that are unresolved by looking in the model tree
5 once the object is found, right click in the model and select insert object in script, this will write the complete location of the object in the script. So here should be no problems with a relative path.

If this does not help please upload the model

Best regards
Søren

Hi Soren,
The model is loading fine now. When loading in the MotionAndParameterOptimizationModel, I had to include .BodyModel in the drivers.
Although it loads up fine now, they old error of not solving the motion optimisation is still occurring (ERROR(OBJ.MCH.KIN3) : C:/D…s/M…h/D…p/A…1/A…1/A…n/N…r/G…)/GaitLowerExtremity.main.any : KinematicStudyForParamterIdentification.Kinematics : Kinematic analysis failed in time step 1). To see if is an error in our .c3d file, I have altered the existing LowerExtremityModel to just include the lower body markers and the same error is occurring. As the original model worked fine, is this another driver problem?
Thanks
Pete

Hi Pete

I have looked through your marker configuration and found that inversion/eversion of the foot is not sufficiently well defined from your marker configuration, this is because that you have a heel maker and toe marker these are on a line and there it is difficult to use these markers for driving the eversion/inversion dof of the ankle.
Usually we recommend having a medial and lateral placed marker on the forefoot.

I have tried to add two additional drivers in the same file you have the upper body drivers:

AnyKinEqSimpleDriver AnkleEversionRight={
AnyKinMeasureOrg &ref1= …HumanModel.BodyModel.Interface.Right.SubTalarEversion;
DriverPos={0};
DriverVel={0};
Reaction.Type={Off};
};

AnyKinEqSimpleDriver AnkleEversionLeft={
AnyKinMeasureOrg &ref1= …HumanModel.BodyModel.Interface.Left.SubTalarEversion;
DriverPos={0};
DriverVel={0};
Reaction.Type={Off};
};

These two drivers drive the subtalar joint and adding these solve the kinematic problem.

It could be that providing a better starting guess for the first time step would make it possible to drive the model without these two drivers, in theory this should be possible, but nevertheless our experience says that it will be difficult to get a realistic motion in this joint from the marker configuration with only one maker on the forefoot.

Best regards
Søren

[SIZE=1]Hi,
I’m a quite new user to the anybody. and I tried to modify Gait Vaugan model with my own gait in a inclined surface environment. I havegenerated the subsitudes of 15 marker data. first I tried with those date to modify the model.

I got similar error as in Gait Lower Extermity thred in the forum.
The error was
{{{
[SIZE=1]Failed to resolve kinematic constraints (final kin. error = 3.094934E-002)
[SIZE=1]Constraint no. 0 above error tolerance 0.000001, error = 0.000012. - constr. #0 in ‘Main.HumanModel.BodyModel.Trunk.JointsLumbar.SacrumPelvisJnt.Constraints’
Constraint no. 1 above error tolerance 0.000001, error = 0.000044. - constr. #1 in ‘Main.HumanModel.BodyModel.Trunk.JointsLumbar.SacrumPelvisJnt.Constraints’
Constraint no. 2 above error tolerance 0.000001, error = 0.000023. - constr. #2 in ‘Main.HumanModel.BodyModel.Trunk.JointsLumbar.SacrumPelvisJnt.Constraints’…


[SIZE=1][COLOR=#0000ff][SIZE=1][COLOR=#0000ff]ERROR(OBJ.MCH.KIN3)[/SIZE] : [SIZE=1]C:/AM…0/A…n/E…s/S…w/GaitAnalysis.main.any[/SIZE] : [SIZE=1]Study.InitialConditions[/SIZE] : Kinematic analysis failed in time step 0

[/COLOR][/SIZE][/SIZE]I got total of 191 constrant errors.
I hope it’s due to initial coditions changed in the environment.because one I use the similar initial condition date with varying in later time step works for the half way…but that data is not suitable for my work.

Then I use ur hint in the Gaitlower_extremity thread to impliment the trick of environment connection beween the model and environment using codes //Connection between environment and the human
AnyFolder ModelEnvironmentConnection = {
AnyFolder Drivers={

// Aliases for convenient referencing
AnyFolder &JntPos=…Mannequin.Posture;
AnyFolder &JntVel=…Mannequin.PostureVel;

AnyKinEqSimpleDriver PelvisThoraxDriver ={
AnyKinMeasureOrg &ref1= …HumanModel.Interface.Trunk.PelvisThoraxExtensio n;
AnyKinMeasureOrg &ref3= …HumanModel.Interface.Trunk.PelvisThoraxRotation ;
DriverPos={0,0};
DriverVel={0,0};
};

//This is an etsimation of the upper body motion it will enforce that the head is kept above the pelvis medial/laterally
AnyKinEqSimpleDriver LateralBendDriver ={

AnyKinLinear lin ={
Ref=0;
AnySeg &ref1= …HumanModel.Trunk.SegmentsLumbar.PelvisSeg;
AnySeg &ref2= …HumanModel.Trunk.SegmentsThorax.SkullSeg;
};
DriverPos={0};
DriverVel={0};
MeasureOrganizer={2};
};

AnyKinEqSimpleDriver NeckDrv={
AnyKinMeasureOrg &ref1= …HumanModel.Interface.Trunk.NeckJoint;
DriverPos={0};
DriverVel={0};
Reaction.Type={Off};
};
};
};

with an additional of the existing driver in gait Vaughan which is
[SIZE=3][COLOR=#0000ff]#include[/SIZE]“JointsAndDriversOldMethod.any”

I got the following error;

[SIZE=1]ERROR(OBJ.MCH.KIN2)[/SIZE] : [SIZE=1]C:/AM…0/A…n/E…s/S…w/GaitAnalysis.main.any[/SIZE] : [SIZE=1]Study[/SIZE] : Model is kinematically over-constrained : Position analysis failed : 1 unsolvable constraint(s) found

I beleive It’s due to too many drivers then I removed the existing [SIZE=3]JointsAndDriversOldMethod.any and run only with your envionment connection code.[/SIZE]

Now I got a waring in the model loading as
Model Warning: Study ‘Main.Study’ contains too few kinematic constraints to be kinematically determinate.

and the error message

[SIZE=1]WARNING(OBJ.MCH.KIN1)[/SIZE] : [SIZE=1]C:/AM…0/A…n/E…s/S…w/GaitAnalysis.main.any[/SIZE] : [SIZE=1]Study[/SIZE] : Model is kinematically indeterminate : Position analysis failed : 206 independent constraints and 224 unknowns

  • attemps to continue (attempt no. 1)
    [SIZE=1]ERROR(OBJ.MCH.KIN1)[/SIZE] : [SIZE=1]C:/AM…0/A…n/E…s/S…w/GaitAnalysis.main.any[/SIZE] : [SIZE=1]Study[/SIZE] : Model is kinematically indeterminate : Velocity and acceleration analysis failed : 174 independent constraints and 192 unknowns

that is the system don’t have enough contrain to solve the problem.

what is your suggestion to solve the problem?I’ve also attach gait “Vaughans Joint and divers old method.any” file

thank you.

Thanesh

[/COLOR][/SIZE][/COLOR][/SIZE]

Hi Thanesh,

I recomend you to use the new GaitLowerExtremity model instead. It is much easier to use and more accurate than GaitVaughan.

You can simply include your own c3d file, make the necesary modification in the ModelSetup file if need to be (marker name and marker position for example) and run the automated optimisation sequence.

Best regards, Sylvain.

Thanks for the reply.In my repository examples I could not find Lower extremity model.That’s why I considered gait vaugan’s model.
I have gathered date similar to gait vaugans model maker points and the intial condition was not implimented. but the bodel was loaded.

where can I get the new lower extremety model?

Now I found according to gait vaughan, I need to change the mannquin values by doing the following
[SIZE=3]//The Mannequin values is used both for setting the initial positions of the model
[/SIZE][SIZE=3]//and driving the model at analysis time. So you can change the values in the Mannequin
[/SIZE][SIZE=3]//file and it will change both initial positions and how it is positioned at analysis time.
[/SIZE][SIZE=3]//If you want to run the model into some posture and then dump the momentary joint angles as the
[/SIZE][SIZE=3]//initial ones then simply do the following:
[/SIZE][SIZE=3]// 1 Double click the folder Main.MannequinValuesFromModel.AnyFolder_Posture and it will dump the joint angles to the message window
[/SIZE][SIZE=3]// 2. Copy the dumped text into the Mannequin.any replacing the “Posture” folder
[/SIZE][SIZE=3]// 3. Press ctrl+h and search and replace “_” with " "
[/SIZE][SIZE=3]// 4. Rename the folder name Main.Model.MannequinValuesFromModel.AnyFolder_Posture to Posture
[/SIZE][SIZE=3]// 5. Once the model is reloaded it will start in the position corresponding to the one which was dumped.
[/SIZE][SIZE=3]//This file contains joint angles which are used at load time for setting the initial positions[/SIZE]
[SIZE=3][/SIZE]
[SIZE=3]but Now after few troble shooting still I could not fixed the problem.I’m attaching my new manninqin value.and all my work with this.[/SIZE]

The values of PelvisPosX,…and other manniquin seem to be input to the program.

Is it possible to do easily with the lower extremity model?
Can I get a link to download the lower extremity model?

Thank you.

I found the new AMMRV1.1 and got the lower extremity model.
but I needto try and see how’s it going?

I already tryed to getthe 15 markers similar to gait Vaugan.so that’s why I just wondering how possible to work with lower extremity model?

Thank you.

Hi,

With those changes the model seems to be working fine now. Thanks again for the help.

Pete

Hi Thanesh,

There is no problem working with the GaitLowerExtremity model if you have a marker set similar to the GaitVaughan one.
In the ModelSetup file there is a list of folders for the body markers, each folder contains the name and location on the body of the marker. You can easily modify that to recreate your Vaughan marker set on the body, then include your c3d file and launch the optimisation.

Best regards, Sylvain.

Hi,
I have a basic problem with my original gait lower extremitty model.
I did not make any modification for the existing model.But I’m getting the error in the original model.

  1. First when I strat run the program i got the following;

Loading Main : “C:\AMMRV1.1\Application\Examples\GaitLowerExtremity\GaitLowerExtremity.main.any”
Scanning…
ERROR(SCR.SCN6) : C:/AM…1/A…n/E…s/G…y/CreateMarkerClass.any : ##X : Unexpected.
Model loading skipped

  1. Then I thought it could be the use of name which include ##.
    so I have changed the ## by different name “aa” for all the work. but then I got a syntax error.I simply getrid of ## now

Loading Main : “C:\AMMRV1.1\Application\Examples\GaitLowerExtremity\GaitLowerExtremity.main.any”
Scanning…
Parsing…
[SIZE=1]ERROR(SCR.PRS11)[/SIZE] : [SIZE=1]C:/AMMRV1.1/A…n/E…s/Gai…ity/ModelSetup.any[/SIZE] : ‘.’ unexpected
Model loading skipped

3)then afer I delete the syntax.then i got the following error from the next line.I could not solve it.

Loading Main : “C:\AMMRV1.1\Application\Examples\GaitLowerExtremity\GaitLowerExtremity.main.any”
Scanning…
[SIZE=1]ERROR(SCR.SCN6)[/SIZE] : [SIZE=1]C:/AMMRV1.1/A…n/E…s/Gai…ity/ModelSetup.any[/SIZE] : OptX=“On”,OptY=“On”,OptZ=“On”, : Unexpected.
Model loading skipped

I tried to get a working gait lower extremity first,
How can I get a proper working gait lower extremity model to my PC.I’m using anybody 4.0 with XP professional 32bit system.

also I tried the others uploaded model with my anybody program. but
this is the error I got with other gait lower extremity which I found that other people upload it in the forum.
I could not move to the next step without a proper working orginal gait lower extremity model.what could be the problem?

But all other model examples working well in my computer.

Thank you

Hi thanesh,
please upgrade to the newest version of the AnyBody Modeling System. It should work then.
Best regards,
Sebastian

Hi,

Thank you for your quick reply.
Is it the version AMSv.4.1?
or any other version solve this problem?

or do I need to input any extra model file?

Thank you

Thanesh

It should be 4.1. This should make the initial model run.
Sebastian