upper body (only) model for MoCap?

Dear experts,

Is there a model that only has upper extremities in it?

I am asking because of the motion capture data that I am currently working with. For example, I do not have RASI, LASI, RPSI, LPSI etc. and these markers happen to be used in figuring out the posture of the mannequin (PelvisPosX, PelvisPosY, … lumbar segment rotation, …).

I do see a MaxForceNeckModel but I am not sure if it is built for motion capture or not. So, if there is no upper extremity (only) model available, then what would you recommend?

Thank you.

Vikas

Dear Vikas,

  1. If you don’t have any marker information on the pelvis segment, then you should modify the ‘Mannequin.any’ file in the ‘Model’ folder of MocapModel.

As you mentioned, the variables for pelvis location(PelvisPosX, PelvisPosY, PelvisPosZ) are determined on those markers. So it will be better if you can define those variables in the ‘TrialSpeicificData.any’ file.

And make the connections between those two files like what you can see for PelvisRotZ, PelvisRotY and PelvisRotX.

  1. Then because there is no evidence to calculate the relative rotations between the thorax and the pelvis segments, it will be better if you can fix those values.

I would recommend you to fix those values by referring the ‘ExtraDrivers.any’ file in the ‘Model’ folder.

I hope this may help you.

Best regards,
Moonki

Thank you, Moonki.

Yes, your comments are very helpful (and align with what I had in mind).

Hi Moonki:

After a long detour into a different computational world, here is where I am at this point in the context of this thread:

[ul]
[li]I edited the Mannequin.any by commenting out AnyParamFun &RASI/&LASI/&RPSI/&LPSI and AnyVar PelvisPosX, PelvisPosY, and PelvisPosZ, and specified specific values for AnyVar PelvisPosX, PelvisPosY, and PelvisPosZ. I also edited variables (e.g., AnyVar PelvisRotX, PelvisRotY, PelvisRotZ, HipFlexion, etc.) in TrialSpecificData.any to position the body parts that seem (by eyeballing)to match the initial position of the subject in the motion capture (C3D) file.[/li][/ul]

[ul]
[li]I added markers to make the model kinematically determinate. However, the model is still not fully specified (i.e., there are insufficient markers).[/li][/ul]

[ul]
[li]Is it okay to tweak the InitialPositionsPelvis.any (specifically, SegmentsLumbar.PelvisSeg.r0)? I directly specified the JointPos.PelvisPosX, … so that the model is positioned (visually) as close to the experimental markers as possible. So, again, is this tweak okay?[/li][/ul]

[ul]
[li]Finally, to your second point, I am not entirely sure what to do in ExtraDrivers.any. Could you please explain that a little more? Did you mean to suggest that I should turn on the various Reaction.Types or uncomment the CTypes? Or, perhaps, directly specify numerical values for AnyKinMeasureOrgs?[/li][/ul]

So, in a nutshell, the key issue I am facing is how to make the model fully specified. Say, how to fix the pelvis or pelvis-thorax rotation, left shoulder, elbow, wrist, etc.

Thank you,

Vikas

Dear Vikas,

  1. I would not recommend you to modify the ‘InitialPositionsPelvis.any’ file in the AMMR repository.
    You can modify the ‘TrialSpecificData.any’ file to add the position variables for pelvis:
...
  AnyFolder InitialPositionOfBody ={
    
AnyVar PelvisPosX = 0;
AnyVar PelvisPosY = 0;
AnyVar PelvisPosZ = 0;

    AnyVar PelvisRotZ = 0;
    AnyVar PelvisRotY = 0;
    AnyVar PelvisRotX = 0;
...

Then you can use these changes in the ‘Mannequin.any’ file:

AnyFolder Mannequin = {
  
  AnyFolder Posture = {
    
    AnyVar PelvisPosX = Main.TrialSpecificData.InitialPositionOfBody.PelvisPosX;
    AnyVar PelvisPosY = Main.TrialSpecificData.InitialPositionOfBody.PelvisPosY;
    AnyVar PelvisPosZ = Main.TrialSpecificData.InitialPositionOfBody.PelvisPosZ;
    
    AnyVar PelvisRotZ = Main.TrialSpecificData.InitialPositionOfBody.PelvisRotZ;
    AnyVar PelvisRotY = Main.TrialSpecificData.InitialPositionOfBody.PelvisRotY;
    AnyVar PelvisRotX = Main.TrialSpecificData.InitialPositionOfBody.PelvisRotX;
...

By doing that, you can control the position of the pelvis segment by adjusting this ‘TrialSpecificData.any’ file.

  1. Try to copy and paste the following code at the ‘very top’ of the ‘ExtraDrivers.any’ file in the ‘Model’ folder:
 AnyKinEqSimpleDriver PelvisThoraxDrv =
 {
     AnyKinMeasure& ref0 = ...BodyModel.Interface.Trunk.PelvisThoraxExtension;
     AnyKinMeasure& ref1 = ...BodyModel.Interface.Trunk.PelvisThoraxLateralBending;
     AnyKinMeasure& ref2 = ...BodyModel.Interface.Trunk.PelvisThoraxRotation;
     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};
 };

Best regards,
Moonki