Force plates: How are the ground reaction forces applied to the foot?

hi,

I am using the GaitLowerExtremity Model 1.5 in AnyBody Version 5.2.

I would like to know how exactly the reaction forces and moments of a force plate are applied to the foot.
As far as I understand the following section is used to transfer the measured data as a point load to the foot.

      AnyReacForce PlateFootReaction={
        
        AnyKinLinear Lin={
          Ref=0;
          AnySeg &ref2=..ForcePlate;
          AnySeg &ref1=..Limb;
        };
        
        AnyKinRotational Rot={
          AnySeg &ref2=..ForcePlate;
          AnySeg &ref1=..Limb;
          Type=RotAxesAngles;
        };
      };

But where is the exact point of application in the foot? Is it the center of mass? In my opinion, if there is only one point of application, the position of the foot on the force plates or equivalent the distance between the sCoM of the foot and the TransducerLocation need to be known as well. But I could not find information about the foot position in the definition of the force plates. How is this implemented?

Thank you in advance.
Greetings, Erika

Hi Erika,

I will assume that you’ve seen the ‘ForcePlateType2.any’ file.

AnyReacForce object can be used with any kind of kinematic measures in the AnyBody Modeling System.

So in this case, AnyReacForce object contains 3 linear forces and 3 moments at a linear and a rotational kinematic measures.

In each instance of ForcePlateType2 class template instance, there is the ‘ForcePlate’ AnySeg object. This is a kind of dummy segment.

Force input data of C3D file is acting on this ‘ForcePlate’ AnySeg object by following scripts:

  AnyForce3D Force ={
    
    AnyRefFrame  &ref=.ForcePlate.TransducerLocation ;
    Flocal=.OnOff*{.load(.ForcePlateDriver.t)[0],.load(.ForcePlateDriver.t)[1],.load(.ForcePlateDriver.t)[2]};
    AnyDrawVector DrawForce =     {
      AnyRefFrame &ref=.ref;
      Vec=.Flocal*1/1000;
      PointAway = Off;
      DrawCoord = Off;
      
      Line.RGB ={0,0,1};
      Line.Thickness = 0.01;
      Line.End.Thickness = 2*0.01;
      Line.End.Length = 4*0.01;
      GlobalCoord=Off;
    };
    
    
  };  
  
  
  AnyMoment3D Moment ={
    
    AnyRefFrame  &ref=.ForcePlate.TransducerLocation ;
    Mlocal=.OnOff*{.load(.ForcePlateDriver.t)[3],.load(.ForcePlateDriver.t)[4],.load(.ForcePlateDriver.t)[5]}*Folder.PointsScaleFactor;
    AnyDrawVector DrawMoment =     {
      AnyRefFrame &ref=.ref;
      Vec=.Mlocal*1/1000;
      PointAway = Off;
      DrawCoord = Off;
      
      Line.RGB ={0,1,1};
      Line.Thickness = 0.01;
      Line.End.Thickness = 2*0.01;
      Line.End.Length = 4*0.01;
      GlobalCoord=Off;
    };
    
    
  }; 

So this ‘ForcePlate’ AnySeg object can just transfer this force and moment into human foot using AnyReacForce.

In this case, the forces and moments are acting on the ‘origin’ of human foot.

I hope this may help you.

Best regards,
Moonki

hi Moonki,

Thank you for your explanation. Yes it did help :).

I had difficulties to understand the way the AnyKinLinear object connects two frames (segments). For me always the information about the distance betweent the two frames was missing. But with your help and the definition in the reference manual I think I understand now how it works.

The AnyKinLinear object can be considered as a rigid bar connecting the foot with the force plate. So the ground reaction force is not applied in the origin of the foot but on the end of this “bar”. This also results in a moment acting on the foot. And thereforce the distance between the foot and the force plate is kind of included in the AnyKinLinear object.