Neck bending while using MOCAP

Hello everyone
I have a problem with my human model that the body seems to lean a bit to the front after finishing analysis. I was guessing it was because of the insufficient markers to drive the upper body. that the neck seems to drop forward a bit. Is there a way i could keep the model stand straight and not lean forward after the kinematics starts.

I have switched on the extra drivers in Extradrivers.any
#define BM_MANNEQUIN_DRIVER_DEFAULT ON
but haven't defined any specific drivers to upper body. should i try to include some extra drivers into the upper body ? how do i know if the extra drivers i add in Extradrivers.any is in effect and is helping the body during kinematics.
can anyone suggest me how i can improve the posture.



Hi @Bharathhs

Have you included a marker tracking study
I would check the position of your c7 marker.
Further, it does not look like you have any sternum or head markers - maybe you have to adjust for this.
You can maybe find some valuable suggestions in our Wiki page on Using your own MoCap data

Best Regards,
Bjørn
Anybody Technology

Hello
Yes, I have created my own markers protocol.
Yes. you are right. I do not have any sternum or head markers.
This is my C7 marker. what is that i should change.

#ifdef _C7
// Marker on the Cervical Vertebra 10
CreateMarkerDriver C7 (
MarkerName= CV7,
MarkerPlacement=Trunk.SegmentsThorax.ThoraxSeg,
PlaceMarkerAt = T1C7JntNode,
OptX=OFF,OptY=OFF,OptZ=OFF,
UseC3DWeightResiduals=ON
) = {
sRelOpt = {-0.075, 0.05, 0.06};
};
#endif

Start by verifying that the c7 marker position in your protocol is consistent with the one in the model.

Next you have to decide if the position of any of your markers need optimization (can be set for x,y,z).

If your protocol is very different from the original in the model I suggest you perform these check on each marker. The link I send you above have a more detailed walkthrough of all these steps and more.

Best Regards,
Bjørn
AnyBody Technology

2 Likes

yes i will try to do that.
thank you

but can you tell me me how the extra drivers in the full body main under mocap example work ?.
does it only work where there is no markers on the body when defined ?. how do we know if there is a extra drivers required ?.

If i add an extra driver such as :
define BM_MANNEQUIN_DRIVER_STERNO_CLAVICULAR_RIGHT ON

You can use the ExtraDrivers.any file to add extra drivers if your marker protocol does not cover all degrees of freedom - then you can add specific drivers to those DoFs.

You have to decide which extra drivers to add based on your marker protocol.

Best Regards,
Bjørn
AnyBody Technology

I think i might have got it figured with the working the extra drivers.
I have a question.
what happens when we have locked all the optimization directions in the makers for the entire body, and do a parameter identification analysis ?. would the parameter identification still size the body model along the body segments ?. is the parameter optimization algorithm scaling also based on kinematics of the markers from the c3d file input.

Great to hear!

Regarding, your question about the parameter identification study and locking all marker directions; Yes you can still scale the the body segments - if you use our example model Plug_in_gait_Simple you will find that the parameter identification both contain segments dimensions and marker positions.

The parameter identification can be made both for a single timestep, if you for instance have a reference trial or you can do it across all timesteps in the model (utilizing the kinematics in the c3d file).

Best Regards,
Bjørn
AnyBody Technology

yes. I am using the plug in gait simple from the Mocap examples.
Can i know how the parameter identification algorithm works, I have gone through the tutorial in the webpage. It did not explain the math behind the working. I would like to include the math or the working of the algorithm in my thesis report.

Hi @Bharathhs

Try and have a look at this conference paper describing the method: https://doi.org/10.4271/2007-01-2477

Best Regards,
Bjørn
AnyBody Technology

1 Like

Hi @Bharathhs,

I just want to let you know that there is a journal paper about the method as well:
A computationally efficient optimisation-based method for parameter identification of kinematically determinate and over-determinate biomechanical systems
M.S. Andersen et al., Computer Methods in Biomechanics and Biomedical Engineering, 13(2): 171-183, 2009

https://www.tandfonline.com/doi/full/10.1080/10255840903067080

Best regards
Michael

thank you so much
Will go through it

May i know what kind of scaling laws are used in fullbody main.any. Is the scaling based only on parameter optimization. But in SubjectSpecificdata.any we also do enter the body mass and height. So does that scale the body mass and height and later on again try to do more scaling based on optimization ?. can i know briefly regarding the scaling procedures in full body main under mocap examples. this would help me a lot in writing.
thank you

Hi Bharathhs,

The height value entered are "overruled" by the parameter optimization which scales the segments so that the markers are matching up in the best possible way.

Secondly there can be different scaling laws used, a scaling law defines how the segment will scale see more info here

https://anyscript.org/ammr-doc/Scaling/intro.html

No matter which scaling law is applied in the model, the aim for the parameter optimization is the same, it will try to make the best fit on the markers, using the variables enabled by the scaling law.

The mocap models use the XYZ scaling laws by default

See the BodyModelConfig.any file.
#define BM_SCALING SCALING_XYZ

Best regards
Søren

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