-6 degrees bedrest setting

I would like to implement a -6 degrees bed rest model. To do this, I made some modifications to the default AnyBody model "SpinePressureLyingOnBack." Below is the code I modified:
AnyFolder DrvPos = {
AnyVar PelvisSeatLinXPos = 0.057; ///< Position of the pelvis on the seat
AnyVar SeatGlobalLinYPos = 0; ///< Seat Height
AnyVar SeatGlobalZRot = -6; ///< Forward seat inclination fixing!!!!!!!!!!!!!!!!!!!
AnyVar BackRestHeadResRotZPos = -6; ///< Rotation of the headrest with respect to the backrest fixing!!!!!!!!!!!!!!!!!!!
AnyVar GlobalLegRestRotZPos = 96; ///< Inclination of the leg rest fixing!!!!!!!!!!!!!!!!!!!
AnyVar GlobalBackRestRotZPos = 96; ///< Backrest inclination fixing!!!!!!!!!!!!!!!!!!!
AnyVar LegRestFootRestLinYPos = 0.16; //< Position of the footrest along the leg rest
}; // DrvPos

/// Driver Velocities - angles are in degrees per second
AnyFolder DrvVel = {
AnyVar PelvisSeatLinXVel = 0; ///< Movement of the pelvis on the seat
AnyVar SeatGlobalLinYVel = 0; ///< Movement of the seat Height
AnyVar SeatGlobalZRotVel = 0; ///< Movement of seat inclination
AnyVar GlobalBackRestRotZVel = 0; ///< Backrest inclination velocity
AnyVar GlobalLegRestRotZVel = 0; ///< Leg rest inclination velocity
AnyVar LegRestFootRestLinYVel = 0; //< Movement of the footrest along the leg rest
}; // DrvVel

// --------------------------------------------------------
// Support settings
// --------------------------------------------------------
/// Settings for the support elements, friction coefficients, and
/// strength of the support contact elements. If the strength
/// gets too low, it means that the body will start using muscle
/// force to avoid laying too much
AnyFolder SupportSettings = {

// Friction coefficients between the human and the chair fixing!!!!!!!!!!!!!!!!!!!

AnyVar StaticFrictionSeat = 0.6;
AnyVar StaticFrictionBackrest = 0.6;
AnyVar StaticFrictionFootrest = 0.6; 
AnyVar StaticFrictionArmrest = 0.6; 

};
Is my modification correct?

Hi Pengcheng,

I had a look at your modifications, and from what I see, you want to incline the bed so that the head is lower than the legs.

I think the modifications look ok. You should also consider updating the armrest angle in Environment.any (GlobalArmRestAngle) as the armrest is still horizontal in the simulation.

Best regards,
Dave

Hello, thank you for your response. Now, I would like to know how to modify the connection points between the human body and the chair in this model, so that these connection points can slide or a few of them can be removed. What should I do to achieve this?

Hi Pengcheng,

The sliding of the connection points depends on the drivers that you give for the human. Normally, some sliding will be ok and the human and the chair should still be in contact.

How do you want to drive the human motion? You will need to switch off some of the drivers in the current model and replace them with drivers that slide the human model.

In order to remove some of the connection points, you can go to the individual files in the Model folder (e.g., BackrestSupport.any, SeatSupport.any, etc.) and comment out the points where you don't want contact. Alternatively, you can also adjust the contact detection limits in these files (UserDefinedLimitLow, UserDefinedLimitHigh, UserDefinedRadiusLimit) for the individual points to ensure they are in contact (when sliding) or not in contact (if you want to remove the connection).

I hope this helps.

Best regards,
Dave

Hello, thank you for your response. I am currently puzzled and seeking information about how the human back and a backrest are connected. I couldn't find any joint settings in the model configuration that address the connection between the human back and the backrest.
AnyFolder BackRestThoraxJnt = {

AnyKinLinear BackRestThoraxLinMeasure = {
  AnyRefFrame &BackRestRef = ..RefP.Seg.BackRest;
  AnyRefFrame &ThoraxRef = ..RefH.Trunk.SegmentsThorax.ThoraxSeg.T2SupportNode;//ThoraxBackRestJntNode;
  Ref = 0;
};

AnyKinEqSimpleDriver BackRestThoraxEq = {
  AnyKinLinear &LinearMeasure = .BackRestThoraxLinMeasure;
  MeasureOrganizer = {0};
  DriverPos = {0.03};
  DriverVel = {0};
  Reaction.Type = {Off};
};

}; // BackRestThoraxJnt

Could you please explain how they are connected and provide the relevant code? Furthermore, with regards to the following code, I can roughly grasp that it pertains to measuring friction, but I'm curious if it is related to the attachment of the human body to the backrest. If it is, how is it configured?
AnyFolder L2Support={
AnyRefFrame &BaseObject =....EnvironmentModel.Seg.BackRest;
AnyRefFrame &TargetObject =....BodyModel.Trunk.SegmentsLumbar.L2Seg.L2SupportNode;
AnyRefFrame &StrengthObject=TargetObject; //Node used for strength measurement, occasionally this is different from the target object

AnyFolder &DrawRef=Main.DrawSettings; //reference to the folder which contains drawsettings
//low limit for the strength measure function, if the distance measured along Direction[0] is below this val. the strength will be zero (negative)
AnyVar UserDefinedLimitLow=-0.05; 
//high limit for the strength measure function, if the distance measured along Direction[0] is above this val. the strength will be zero
AnyVar UserDefinedLimitHigh=0.05; 

//high limit for the strength measure function, if the radius measured along the plane with Direction[0] as normal is above this val. the strength will be zero
AnyVar UserDefinedRadiusLimit=0.7; 

AnyVar Strength =.Strength;  //strength of muscles
AnyVar StaticFrictionCoefficient=.StaticFrictionCoefficient; //Friction coefficient
AnyVar ScaleFactor =1; //scale factor for draw vectors it can be set differently than by the drawsettings

AnyIntArray Direction={0,1,2}; //first element gives normal direction
#include  "<ANYBODY_PATH_MODELUTILS>\FrictionContactMuscles\ContactSurfaceLinPush.any"

};

Hi Pengcheng,

You have correctly identified the connection between the human back and the backrest.

The kinematic connection is indeed provided through the BackRestThoraxJnt folder.

Then, the second part of the code that you mentioned (L2Support folder), is used purely for the calculation of the contact force. It does not define how the back will be positioned. But only how much contact force will be estimated at L2. Likewise, there are several other points where the contact force is estimated on the back.

Best regards,
Dave

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