Mannequin model doesn't follow marker's movement

Hello,
I have been trying to run a simulation using my own C3D file. When I run parameter identification or Analysis, or pretty much anything other than Marker Tracking, my model (mannequin) gets deformed (it starts floating, the legs go backwards and the head gets compressed into the chest. Very weird!) and does not follow what the markers are doing. I know AnyBody is reading my C3D file because when I run Marker Tracking I can see the markers moving in the right direction and they do follow the normal gait. The frame of reference for the markers is not the same as the one I have as my Global Ref. Maybe that's the issue? If so, how could I fix it? The force plates are correctly placed, and I even added 3 more.

Thanks,
Mel

Hi @MelVR

It is a little hard to guess what is going on.
Do the human model follow the markers when you run the marker tracking study?

Have you ensured that the marker protocol defined in the MarkerProtocol.any is consistent with you experiment?
Here is a link to more checks when adjusting the model to your own data:

Best regards,
Bjørn

Hi Bjorn,
I did follow that Tutorial
The first thing that is mentioned is to:
Make a copy of the existing "S1" folder (found in "MocapExamples\Plug-in-gait_MultiTrial_StandingRef\Subjects\S1") model folder (this text fits on the multi trial example in AMMR) and rename the folder from e.g. "S1" to "MySubjectXX" I did this
Then you need to copy your C3D file into the folder "c3d_files" be aware of the name of your c3d file it will be needed in the next step the file name could be in the form "MySubjectXX_MyTrialName". Done
In the "Subjects/MySubjectXX" folder modify the name of the trial from "S1_FlywheelSquat" to "MySubjectXX_MyTrialName" Done
Now you have the basic files created and can continue with modifying them to fit the data, the main file to load is "Subject/MySubjectXX/MySubjectXX_MyTrialName/Main.any"
The model we have used here as a starting point expects a standing trial to be present, in case you do not have this open the "TrialSpecific.any" file and out-comment the line " LoadParametersFrom = {"S1_StandingRef"};" Also did this

I then proceeded to do the modifications in ForcePlates.any and I am able to visualize the correct number of plates and their position.

Modifications in LabSpecific.any file
I adjusted the gravity in accordance to my C3D file that states Z as the vertical.
I turned HEAD_HEIGHT = OFF,
TRUNK_HEIGHT= OFF, because my file only includes lower body.

I tried to add the suggestion:
CreateMarkerDriver RHEE ( MarkerName= RHEE , MarkerPlacement=Right.Leg.Seg.Foot, PlaceMarkerAt = HeelNode, OptX=OFF, OptY=OFF , OptZ=OFF, WeightX=1.0,WeightY=1.0,WeightZ=1.0, UseC3DWeightResiduals=ON ) = { sRelOpt = {-0.025, 0.01, -0.0}; };
But it showed me an error and the model wouldn't load.

I don't have all the markers on the feet on ON for optimization. I did notice 2 markers do not appear on my model view. I adjusted the model so the markers that do appear could be in the right position. And still, when I run parameterIdentification my model starts floating and gets deformed while my markers are still in the right position.

I verified the position of my markers and it's in accordance to what I have on the C3D file (that's the position that appears on the tree when I load the model).
I also defined INCLUDE_UPPERBODY OFF as I do not have markers there, just in the lower body


I honestly don't know what else to do.

Hi @MelVR

It sounds like you are doing many of the right things.
I have a couple of question though.

You are using the Multi_trial example model and modifying the standing reference trial - do you have standing reference trials that you want to use for parameter identification on subsequent trials? otherwise maybe the plug_in_gait example is closer to what you want.

The INCLUDE_UPPER_BODY flag is not present in the multi_trial example, so unless you added the if/else clauses needed, it will not have any effect. What it essentially does is to define/undefine certain upperbody drivers in the MarkerProtocol file. These can undefine yourself - be aware that you need to add other drivers/constraints if you remove some of the ones set in the example.

What error do you ghet when defining your own RHEE driver? is it conflicting with the one already defined?

Best regards,
Bjørn

Hi Bjorn,

I used the plug_in_gait lower body example this time, and I obtained the same results.
I get this error: ERROR(OBJ.MCH.KIN3) : KinematicStudyForParameterIdentification.any(11) : KinematicStudyForParameterIdentification.Kinematics : Kinematic analysis failed in time step 32 : Position analysis is not completed
And the same thing happens to the body...
I kept modifying the marker placement, I do not get an error now, but the mannequin doesn't follow the body. The markers in the pelvis have the same names that are indicated in the AutoPelvisPos. It looks like this: AutoPos(RASIS=RASIS, LASIS=LASIS, BACK=RPSIS) = { };
Is it possible that this is causing the issues?

Hi @MelVR

I think you need to adjust the MarkerProtocol.any file.
From your image you seem to have quite a few markers that are named differently than default.
There are options in the C3dSettings.any file to adjust this.

If you used markerplacements that are not part of the default protocol, you will need to add these yourself in the protocol file. The process is also described on our wiki page here.

Best regards,
Bjørn

I do have different markers as I’m using my c3d file. The wiki indicates:
“If you want to run your own C3D files with different marker names, you might have to change marker names and marker positions.”
I changed the names and positions so they could match my c3dfile. Should I change them back to the original names even though my file doesn’t have those names?

How did you change the names? In the MarkerProtocol.any file? for both the define statements and marker classes? And did you ensure that the positions match your markers?

This topic was automatically closed 125 days after the last reply. New replies are no longer allowed.