Gait Lower extrmitty only with lower body markers

Hi,
I got only 16 marker data on lower body.so I planned to make a working model with the same 16 markers. So in the gait lower extremitty I have removed upperbody markers and add all suggested drivers to run the program.
when i run the firt part of the gait lower extremitty model i got the folloeing error.
[SIZE=1][SIZE=2]ERROR(OBJ.MCH.KIN3)[/SIZE][/SIZE] : D:/D…s/user/A…a/A…y/A…x/A…1/A…n/E…s/G…y/GaitLowerExtremity.main.any : MotionOptimization.InitialConditions : Kinematic analysis failed in time step 0

It is related with kinematic constraint.Are there any rules when removing the markers.
My markers only uses RASI,LASI,RPSI,LPSI,RTHI,LTHI,RKNE,LKNE,RTIB,LTIB,RANK,LANK,RTOE,LTOE,RHEE,LHEE.

I DIDN’T INPUT MY GAIT DATA.I use the same gait data which come with the model. Only change made minimize markers and subsitute drivers.

How do i fix this problem?

Hi,

When looking in the model i could not find the drivers for the upper body. You succesfully removed the upper body markers but i am pretty sure that the drivers replacing them are simply not there.

Please check again that you introduced the four drivers for thorax flexion, rotation and lateral bending and neck flexion.

Best regards, Sylvain.

Hi again,

I have just seen that you created a file with the drivers, but the file is not included in the model. You should include it in the main file in the KinematicStudyForParamterIdentification study folder.

Best regards, Sylvain.

hi,

I’ve input the drivers into “Joint and Drivers.any” file inside the same working folder.Is that right or wrong place?
Inaddition to that I include AnkleEversion for both legs.

Thankyou

Hi,

thanks for your quick reply to solve the existing problem

Part 1: existing data
Now I place all the divers into a different folder and also include in joint and drivers optimised folder. the model working well with the 16 markers.
inverse dynamics Not working.I got the following error for the inverse dynamics of the same model

.0.1) …Load time positions have been re-established.
ERROR(OBJ.MCH.KIN2) : D:/D…s/user/A…a/A…y/A…x/A…1/A…n/E…s/G…s/GaitLowerExtremity.main.any : InverseDynamicStudy : Model is kinematically over-constrained : Position analysis failed : 1 unsolvable constraint(s) found

Part2:my data
Now I impliment my gait data with similar corrections.
my gait cycle is a stair climbing gait. It’s also initiate working with
otionAndParameterOptimizationModel. but the body was not stable.the body bended automatically.In addition to this, I could not place the forceplate with the body motion in a proper place.
Is this causing the problem?
Or do I need to add any additional parametes to maintain a stable motion.
what about my marker point locations.

I got the following error at time step of 11 and body was bended suddenly without stability before that.

[SIZE=1][SIZE=2]ERROR(OBJ.MCH.KIN3)[/SIZE][/SIZE] : D:/D…s/user/A…a/A…y/A…x/A…1/A…n/E…s/G…g/GaitLowerExtremity.main.any : MotionOptimization.Kinematics : Kinematic analysis failed in time step 11

Thankyou

Hi,

Part 1:
I think you should try to have this step running before going with your own data, so you can understand the principle of the model. You have to place the additional drivers only into the optimization study (the first). Thsi is because the model of the optimization study is normally driven by markers, but as you saw if some markers are missing they have to be replaced by classic drivers. You have done this part well so far.
But the second study for the inverse dynamic works differently in terms of drivers. It will always reproduced the motion of the optimization study and doesn’t need any additional drivers because drivers are automatically generated for each body part from the saved output of the optimization.

Part 2:
The body is completly twisted because the c3d and body markers are not corresponding. When using the marker class in the ModelSetup file, the system try to match the two markers with the same name. But in your model some markers with the same name (RTHI for example) are at oposite sides of the body. That obviously creates non natural results.
So what you have to do is take the marker protocol of your mocap and recreate it on the body markers, same names at the same location.

Best regards, Sylvain.

Hi,

I’ve fixed the problem with the existing 16 marker original model.By placing the drivers properly It’s working with the inverse dynamics as well.

Now I proceed to fix my data. I have eddited RPSI and LPSI marker data.But I still have the twisting of body and got the same termination at time step of 11.

1.Is it possible to input stair climbing tragectories to a normal gait program? Do I need to add any additional parmeter to make the pody to climbing?

  1. I have not input my own forceplate date. when I cheaked with the original force plate date file It has 3 force plate data in the order of Fx1,Fy1,Fz1,Mx1,My1,Mz1. It has 10 analog channel data.
    Is it anybody using the average of these 10 channel data?
    I only have the average value. can I input that for 10 times.
    I tried with my force plate data and got the same twisting and same error and terminated in 11th time step.

3.Can I change the tollerance value. because I got the tollerence in 10^-4 order. but anybody progrmed to 10^-6 order.
Can I increse the tollerance error value in the programme?

Thank you.

Thanesh

Hi Thanesh,

It is completly posible to do stair climbing with this model. The problem is still the position of the markers. It actually seems that in your c3d file left and right have been inverted for all markers (not only RPSI and LPSI), so the body is twisting trying to reach them.
Maybe modifying the c3d file now is not easy? but if you can you should correct left and right side in the marker name.
The other solution is to modify the name of the body markers so that they are also inverted.

In all cases it is necesary that the two sets of marker mach in term of name and position on the body. Otherwise it will not give reasonable results.

So please take the markers one by one and make sure that name and location are maching between the two sets.

Best regards, Sylvain.

Hi,
Thank you. Now it’s fix the twisting problem :). I have changed the names and optimization kinematics working with untill 44time steps.But I can see that the model climbing untill the end of my data and terminating.
I got the KIN3 kinematic parameter identification error and Motion optimization error.

1.0.0.13) …Kinematic analysis terminated
[SIZE=1]ERROR(OBJ.MCH.KIN3)[/SIZE] : [SIZE=1]D:/D…s/user/A…a/A…y/A…x/A…1/A…n/E…s/G…1/GaitLowerExtremity.main.any[/SIZE] : [SIZE=1]KinematicStudyForParamterIdentification.Kinematics[/SIZE] : Kinematic analysis failed in time step 13
5.44) …Kinematic analysis terminated
[SIZE=1]ERROR(OBJ.MCH.KIN3)[/SIZE] : [SIZE=1]D:/D…s/user/A…a/A…y/A…x/A…1/A…n/E…s/G…1/GaitLowerExtremity.main.any[/SIZE] : [SIZE=1]MotionOptimization.Kinematics[/SIZE] : Kinematic analysis failed in time step 44

but How do I set the “time start” and “time end” to stop my work at the end of 44step without error?.
I’m not sure about the C3D parameter to set the frequency. my data has 85steps with time step of 0.02sec.

I hope I can Apply the force plate data shifted to the next plate and the hip tragecteries have too much ossilation. I’ll try some simple fixing in my c3d and keep going.

Thank you.

Thanesh

Hi Thanesh,

In the ModelSetup file there are two variables tStart and tEnd that you can modifiy to control start time and end time.
By default in this model it is automatically calculated from the c3d file. The number of steps is also calculated automatically from the c3d file but you can modify it if you wish.

Best regards, Sylvain.

Hi,
my marker optimization working well without any error.
But when I run the inverse dynamics part I got the following error,

[SIZE=2]7.0.1) …Load time positions have been re-established.
7.0.2) …Kinematic analysis completed. The kinematic constraints have been resolved.
[/SIZE]ERROR(OBJ.LIB.OOS1) : D:/D…s/user/A…a/A…y/A…x/A…1/Body/A…n/L…D/Mus.any : IliacusLateralis1.SPLine : Unexpected exception in the library OOSol :
OOSol exception : MISSING MESSAGE.

How an I fix the problem?

Thank you.

Hi,
My work attached.
my marker optimization working well without any error.
But when I run the inverse dynamics part I got the following error,

[SIZE=2]7.0.1) …Load time positions have been re-established.
7.0.2) …Kinematic analysis completed. The kinematic constraints have been resolved.
[/SIZE]ERROR(OBJ.LIB.OOS1) : D:/D…s/user/A…a/A…y/A…x/A…1/Body/A…n/L…D/Mus.any : IliacusLateralis1.SPLine : Unexpected exception in the library OOSol :
OOSol exception : MISSING MESSAGE.

I think the scrum marker data may have some problem.
Is it possible to fix it?

Thank you

Hi,

This is a wrapping problem. When the error comes from the spline object of a muscle it means it is related to wrapping.

What happens more exactly is that the hip adduction of this model is very big, and that leads the muscle to wrap on the edge of the cylinder and the wrapping then fails. You need to avoid that. A solution is to make the cylinder longer.

However the motion looks quite extreme and not so natural. Was the real recorded motion like this? If the pelvis lateral rotation and hip abduction was not so big, the wrapping of this muscle would work correctly.

Best regards, Sylvain.

Hi,
i didn’t get the point of the “cylinde”.is the distances between markers?

The marker data was generated by modifying the existing tragetory of gait voughan, So I found the hip is seems to be non natural.

I found the problem in that modifiction, I’ll go for another try.

Thank you.

Hi,

The cylinder i was talking about is a cylinder defined on the pelvis segment, and some muscles wrap around this cylinder. It is this wrapping that is failling.

But it is clear now that the cause of it is the motion. So it is better if you don’t modify the cylinder but correct the motion instead. Once you have a more natural motion the problem with disappear.

Best regards, Sylvain.

Dear AnyBody community
Hello
I am using the Mocap lower extremity model with our own C3D data . We do not have any marker on the trunk . The model complete the Kinematic and Inverse dynamic analysis , but somehow the trunk fall forward , something like the person is leaning forward which is not correct …
I have replaced the upper body markers with below drivers , but still the trunk looks weird when the model walks !
Is there anyway to keep the trunk upright !?
#if HeadMarkersOnOff == OFF

#if TRUNK == 1
AnyKinEqSimpleDriver NeckDrv=
{
AnyKinMeasureOrg &ref0 = …BodyModel.Interface.Trunk.NeckJoint;
DriverPos=pi/180*{.JntPos.NeckExtension};
DriverVel=pi/180*{.JntVel.NeckExtension};

// DriverPos=pi/180*{0};
// DriverVel=pi/180*{0};
Reaction.Type={Off};
//CType = {Soft};
};
#endif

#if TRUNK_NECK == 1
AnyKinEqSimpleDriver NeckDrv=
{
AnyKinMeasureOrg &ref0 = …BodyModel.Interface.Trunk.SkullThoraxFlexion;
AnyKinMeasureOrg &ref1 = …BodyModel.Interface.Trunk.SkullThoraxLateralBending;
AnyKinMeasureOrg &ref2 = …BodyModel.Interface.Trunk.SkullThoraxRotation;
DriverPos=pi/180*{0, 0, 0};
DriverVel=pi/180*{0, 0, 0};
Reaction.Type={Off, Off, Off};
//CType = {Soft, Soft, Soft};
};
#endif
#endif

#if TrunkMarkersOnOff == OFF

AnyKinEqSimpleDriver PelvisThoraxDrv =
{
AnyKinMeasure& ref0 = …BodyModel.Interface.Trunk.PelvisThoraxExtension;
AnyKinMeasure& ref1 = …BodyModel.Interface.Trunk.PelvisThoraxLateralBending;
AnyKinMeasure& ref2 = …BodyModel.Interface.Trunk.PelvisThoraxRotation;
// DriverPos=pi/180*{0, 0 , 0};
// DriverVel=pi/180*{0, 0, 0};
//

 DriverPos = pi/180* {
     .JntPos.PelvisThoraxExtension,
     .JntPos.PelvisThoraxLateralBending,
     .JntPos.PelvisThoraxRotation };
 DriverVel =  pi/180* {
     .JntVel.PelvisThoraxExtension,
     .JntVel.PelvisThoraxLateralBending,
     .JntVel.PelvisThoraxRotation };
 Reaction.Type = {Off,Off, Off};
 CType = {Soft, Soft, Soft};

};

#endif

Hi

The code you have listed should make the subject upright, but if the code is active or not depends on the if statements.

So it matters what is the value of e.g.
TrunkMarkersOnOff
it will need to be Off for the driver of pelvis / thorax to be active.

Additionally you will need to have enough markers on Pelvis best would be at least three, depending on the rest of leg markers, possibly two would also be ok.

Best regards
Søren