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,