How to apply weight to head

Dear AnyBody,

I am researching into loads and motions of the cervical spine. I am a beginner on AnyBody and I am attempting to load the head of the seated anybody model with a weight. I will then examine the forces generated by the cervical musculature.

  1. How would I go about applying a weight to the head?

Thank you for any assistance.

Kind regards,

Hi Tim,

You can create a new segment which has the extra mass you need and attach it to the skull segment with a AnyStdJoint this will lock all six dof, of the new segment.

So something like these lines (sorry for any typos)

//create a new seg with the mass you nee to add
AnySeg ExtraMass ={
Jii ={0,0,0}; //??

//open a reference to the skull segment 
AnySeg &Skull = Main.HumanModel.BodyModel.Trunk.SegmentsThorax.SkullSeg;
Skull ={
//add a node to the skull this node will be used for attaching the mass... so you can play around with //the location of it (sRel)
AnyRefNode MyNode ={
sRel ={0,0,0};  //??


//connect the mass and skull with a std joint locking all dof
AnyStdJoint LockJoint ={
AnyRefNode &ref1 =Main.HumanModel.BodyModel.Trunk.SegmentsThorax.SkulSeg.MyNode; 
AnySeg &ref2 = .ExtraMass;

Hope it helps

Best regards

Hi Søren,

Thank you for this response it was very helpful.

When I run inverse dynamics of the seated human full with neck, the chair essentially reclines
so that the human is then sitting in a much more leaned back chair. How do I change the parameters
so the initial position of the chair remains the same through out? I couldn't find any discussion/
tutorials mentioning this.

I also want to put the head/neck into 30 degrees of flexion. I have found some code on the forum
and I have adapted it for my model as best I can.

//Neck driver

AnyKinEqSimpleDriver CervicalDriver ={
AnyKinMeasureOrg &Ref1 = Main.HumanModel.BodyModel.Interface.Trunk.SkullThoraxFlexion;
AnyKinMeasureOrg &Ref2 = Main.HumanModel.BodyModel.Interface.Trunk.SkullThoraxLateralBending;
AnyKinMeasureOrg &Ref3 = Main.HumanModel.BodyModel.Interface.Trunk.SkullThoraxRotation;
DriverPos = pi/180*{0, 0, 30};
DriverVel = pi/180*{0, 0, 0};
Reaction.Type = {Off, Off, Off};

However, when I run inverse dynamics it says the model is kinematically over-constrained. Could you
please advise how I could go about fixing this?

Kind regards,

Hi Tim,

You can access the model parameters in the file "Model/InputParameters.any". If you open this file, you will see that the back inclination velocity has been set to 30 deg/s. Feel free to change this and other parameters for the seated model.

Regarding the neck flexion, the model already uses some drivers to set the mannequin in a particular posture. you can set the posture through the file "Model/Mannequin.any". Adding new drivers would often create conflict with another existing driver for the neck and result in a kinematically over-constrained model. If you would like to use your own driver then you must comment out the neck driver defined in the file "Model/JointsAndDrivers.any".

I hope this helps.

Best regards,

Thank you very much Dave. This did the trick.

Kind regards,

That's great! Thanks for the feedback.

Best regards,

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