FullBodyModelWithNeck

Hi all,

I have previously been working with the FullBodyModel\BodyModel_NoMuscles but recently switched to the FullBodyModelWithNeck\BodyModel_NoMuscles since I need the ability to drive 3 dof of the neck. I have 2 questions regarding the body model:

(1) Do I have to use the model “WithNeck” in order to drive 3 dof of the neck or is there a way I can use the simpler FullBodyModel and control the other 2 dof of the neck in addition to neck flexion/extension?

(2) Where is the FullBodyModelWithNeck grounded? It seems to be grounded differently (i.e. not at the pelvis) than the FullBodyModel based on my experience with trying to set the initial position of the skeleton via the Mannequin.any file. When using the FullBodyModel the initial pelvis position & orientation defined in the Mannequin.any file sets the skeleton to the desired initial position but when using the FullBodyModelWithNeck the initial pelvis position & orientation defined in the Mannequin.any file seems to have no effect on the initial position/orientation of the skeleton.

Thanks in advance for your help,
Suzanne

Hi Suzannne

Here are some answers to your questions:

A1: The model has currently a revolute joint as the neck joint, but you can replace this with another type to ad more dof if you like. This is to be done in the Trunk/JointsLumbar.any file. The joint to be changed is the C0C1Jnt joint.

A2: You are right thanks for bringing this to our attention. It seems that the TrunkNeck model has not been equipped with initial positions like the Trunk folder. This will have the effect you describe that the pelvis will always have its initial pos at 0,0,0 the mannequin values will have not effect because they are not used.

I think the following changes in the Body section of the model will fix this.
1: copy the files Trunk/initialpositions.any and Trunk/initialpostionpelvis.any to the TrunkNeck folder
2: in the TrunkNeck/TrunkLumbarNeck.root.any file insert the line
#include “InitialPositions.any” in the bottom of the file. If in doubt have a look at the Trunk/Trunk.root.any file it resemble it a lot.

I think this should solve the problem, if not please let me know.

Best regards
Søren, AnyBody Support

Hi Soren,

I tried making the changes to the Body section of the model that you suggested. This works for the most part except I guess the initial position of the cervical spine is not defined in these files because all of the skeleton except for the cervical spine moves to the initial position specified while the cervical spine remains in the original position.

thanks,
Suzanne

Hi Suzanne

You are right about this too :wink:

Each of the segments in the cervical spine needs to have an additional line define in order to control the initial pos.

For example the C7 segment needs the following line:

r0=…SegmentsThorax.ThoraxSeg.T1C7JntNode.sRel*…SegmentsThorax.ThoraxSeg.Axes0’+…SegmentsThorax.ThoraxSeg.r0-T1C7JntNode.sRel*Axes0’;

Basically what this do is that it replicates the kinematics of the model to calculate the initial position. The distal segment gets its postion from the proximal seg.

I have attached the modified file where this has been done for all the segments.

The file originates from the AnyBody Managed Model Repository, released yesterday, the modifcation will be part of the next release.

What is still missing is the capability to control the angles in the neck through values in the mannequin file. This requires modification in both the mannequin and initialposition file.

Hope it works in your model.

Best regards
Søren, AnyBody Support