About anthropometric scaling

Hi everyone,

I found that in the MoCapModel, the human anthropometric scaling is determined by the position of the markers.

While the certain marker’s position may have displacement among different postures because the connection between the skin and joint is not fixed. This may cause the body scaling results differ from each trial.

I just wonder that if there is a solution in which we can scale the humanmodel by one reference posture, and then fix the body model dimensions. For all the other trials, we use the dimension-fixed bodymodel, and define the postures by markers’ trajectory.

Could you tell me whether I can achieve the goals by AnyBody?

Thanks a lot!

Best regards,
Jing

Hi Jing,

In the TrialSpecificData.any you can set up your optimization task - you can provide your custom anthropometric measurements (found after the first run), and what needs to be optimized (in your case everything will be “off”). Highlighted red needs to be switched to “Off”

TrialSpecificData.any: 

 AnyFolder Anthropometrics={
    AnyVar BodyMass=62;  //the mass is automatically distributed to the segments
    AnyVar BodyHeight=1.73;  //height
    
    AnyVar ThighLength= 0.4234534;  //rigth and left side is mirrored 
    AnyVar ShankLength= 0.4120814;
    AnyVar FootLength=0.21;
    AnyVar PelvisWidth=0.1791738; //distance between hip joints
    AnyVar PelvisDepth=0.1509133;
    AnyVar HeadHeight = 0.14;//height in neutral position from  C1HatNode to top of head
    AnyVar TrunkHeight = 0.620233;//height in neutral position from  C1HatNode to L5SacrumJnt
    AnyVar UpperArmLength = 0.340079;
    AnyVar LowerArmLength =0.2690167;
    AnyVar HandLength = 0.182;
    AnyVar HandBreadth = 0.085;
  };

  // Define what anthropometrics will be optimised, but be aware that inconsiderate changes
  // might lead to model failure! Pelvis and Trunk can only be "On" if there are markers available.
  // Upper and Lower arms can only be "On" if Upper Body is used and sufficient markers are available.
  Main.ModelSetup = 
  {
    // For FullBody model    
    #if BM_ARM_LEFT + BM_ARM_RIGHT >= 1
    OptimizeAnthropometricsOnOff OptimizeOnOff (
    PelvisWidthOnOff ="On", 
    PelvisDepthOnOff ="Off",
    ThighLengthOnOff="On", 
    ShankLengthOnOff="On", 
    FootLengthOnOff="On", 
    HeadHeightOnOff="Off", 
    TrunkHeightOnOff="On", 
    UpperArmLengthOnOff="On",
    LowerArmLengthOnOff="On",
    Model1=MotionAndParameterOptimizationModel, Model2= InverseDynamicModel
    ) ={};


Kind regards,
Pavel

Hi Pavel,

Thank you so much for your kind and fast reply.

That’s really a good idea to achive my goal! And I see how AnyBody is well considered and powerful from this!

Thanks again.

Best regards,
Jing