Seated Human model drivers

Hello,

I am using Anybody 6. 0. 6. 4504, with AMMR v.1.6.2 and currently working on the Seated Human model. Regardless of how I position the human model or the seat in the mannequin and InitialPositionsEnvironment file, when I run the initial conditions some positions are changed, according to joints and drivers. I would like to modify a couple of initial condition positions:

  • the elbow on the armrest along the global X direction (basically translating it towards the backrest while keeping it in contact with the armrest)

  • the armrest itself, translating it along the global X and Y directions

I was not able to find the drivers/joints I need in the JointsAndDrivers.any file. Could you please indicate me where to find them?

Thank you,

Michele

Hi Michelle

The mannequin file is used to define the position before running analysis. When you run initial position, kinematics, inverse, etc. then the model will follow the joints and kinematic constraints.

The three main parts of the model are the human model i[/i], the environment i[/i] and the ModelEnvironmentConnection i[/i].

In the ModelEnvironmentConnection folder, you will be able to see how the human model is connected to the Environment aka the seat.

Main.Model.ModelEnvironmentConnection.Jnt.UlnaArmRestJnt.Right.ArmRestElbowLinMeasureXDrv .... This is where the armrest and the elbow is connected.

Here is the code for that connection:

  AnyKinEqSimpleDriver ArmRestElbowLinMeasureXDrv={
    AnyKinLinear ArmRestElbowLinMeasure = {
      AnyRefFrame &ArmRest = ....RefP.Seg.Right.ArmRest.ArmRestUlnaJntNodeBack;
      AnyRefFrame &Ulna = ....RefH.Right.ShoulderArm.Seg.Ulna.ol;
    };        
    MeasureOrganizer = {1};
    DriverPos={0};
    DriverVel={0};
    Reaction.Type={Off};
  };

As you can see in this code, there is a measure between the ulna point and the armrest point. Then the measureOrganizer takes out only the Y axis GLOBALLY, which is then driven to 0. This means the elbow can move on the plane freely but not move up and down.

To create a joint that only slide along one axis, you would just include another degree of freedom in your measureOrganizer = {0,1};

So depending on what you wish to do, you can just change these drivers to your applications.

Hope this helps.

Hi Kasperpihl,

thanks for your answer. I tried to modify the JointsAndDrivers.any file as you suggested, but apparently I am not adding a DOF but an additional constrain, which results in an over-constrained model, as AnyBody points out when I run the InitialConditions operation. I guess there should be a constrain on the X DOF already, that I couldn’t find. Does that sound right?

Thank you,

Michele

Hi Michelle,

If you suddenly add an Armrest-Ulna constraint in the Global X direction, you are perhaps violating a constraint in the shoulder, or something similar. So if you want the arms to be placed further back on the armrest, you have to remove other constraints that prevent that.

If you double click the Study folder, you can scroll down and find a List of joints and kinematic constraints. So you cannot force the arm to be at two different places at once.

Remember that if there are no specific drivers for a certain DOF, then the Mannequin file will drive those. So a way of working could be to remove the drivers and then slowly turn them on and creating new ones to fit what you want.

Remember also that the measures are in the global ref, so its a good idea to start drawing the RefFrames, including the global.

Main.Model.EnvironmentModel.GlobalRef = {AnyDrawRefFrame drw = {};};

Hello Kasperpihl,

that was basically my question, in fact; I realized there are constraints/drivers that prescribe the arms into certain positions, but I was not able to locate them, even though I explored the model (including the drivers listed in the study folder). I cannot, for example, run a simulation with a seated human having the arms hanging at his sides, instead of lying on the armrests.
I was wondering whether someone could help me in finding the drivers I need to change those positions.

Thank you,

Michele

Hello Michelle,

As I mentioned earlier, you can find the list of all joints & kinematic constraints if you double click the study folder, here you also find a list of segments and reactions forces.

If you look at the folder “Main.Model.ModelEnvironmentConnection.Drivers.Right” you will find drivers for the sternoclavicular, glenohumeral, elbow pronation and wrist drivers. I assume this is what you are looking for because these measure and drivers needs to allow the position you want for the wrist/forearm.

There are two folders for changing the model, “EnvironmentModel” and “ModelEnvironmentConnection”.

Hope this helps.

Best,
Kasper Pihl Rasmussen