Ground reaction forces during stair climb

Hi Jeevan,

This looks interesting and I agree, the GRF prediction in the standard model will look for contact only at ground. I think the quickest fix could be to implement multiple instances of GRF prediction, once (or twice, if you don't know which leg will land on which step) for each step. So, in the file where you have your GRF prediction (typically in Setup\ForcePlates_GRFPrediction.any), you could add extra implementations of GRF prediction, for example:

FootPlateConditionalContact GRF_Prediction_RightStep1(
  NORMAL_DIRECTION = "Y",
  NUMBER_OF_NODES = 25,
  NODES_FOLDER = FootNodes,
  SHOW_TRIGGER_VOLUME = ON,
  PLATE_BASE_FRAME = Main.EnvironmentModel.GlobalRef) =
  {
    CreateFootContactNodes25 FootNodes(foot_ref = 
    Main.HumanModel.BodyModel.Right.Leg.Seg.Foot,
    NAME="Step1") = {};
    
    // Additional force plate settings
    Settings = 
    {
      LimitDistHigh = 0.315; // Vertical height
      LimitDistLow = 0.215; // Vertical height
    };
  };

A couple of points are important when you do this:

  • You should set the contact detection threshold (Settings.LimitDistHigh and LimitDistLow) for each step height correctly. Alternatively, you could create reference node for Step1 and use that as PLATE_BASE_FRAME instead of GlobalRef.
  • In the CreateFootContactNodes25 class template, you will need to add a unique name (as I have done in NAME="Step1"). This class template tries to create contact nodes on the foot and when you implement it multiple times for the same foot, then you will have existing reference nodes on the foot with the same name. That is why you need to provide unique names.

Then, you should consider if you want to do this also for the left leg for Step1, in case this is random for different subjects. Likewise, then you will need to define GRF prediction for both legs for step2.

I haven't tried it on a stair-climbing model so I am not 100% sure if it will work perfectly. But i hope it does :slight_smile:

Best regards,
Dave

1 Like