Scapula position

Dear Anybody community.

Since the initial Scapula position is not physiological, I would like to adapt it in the shoulder model.

I am in the scapula folder of the ArmModelParameters.any script and want to change the position. I changed the following:

// AnyFloat NeutralPositionOnPelvis_pos = {-0.2914858, -0.3801103, -0.07873066}; //{-0.2914858, -0.3801103, -0.07873066};// Before: AnyVec3 StandardsRel = {-0.218944, -0.399176, -0.087378};
AnyFloat NeutralPositionOnPelvis_pos = {-0.218944, -0.399176, -0.087378};

However, I get a Kinematic analysis constraint error:

ERROR(OBJ.MCH.KIN3) : FreePostureFullBodyStatic.Main.any(165) : Study.InitialConditions : Kinematic analysis failed in time step 0 : Failed to solve position constriants

How could I correct the initial position of the scapula instead? The problem is that its really sitting inside the rip cage:

Thank you and best regards
Johanna

Hi Johanna.

Sorry about the slow reply here. I think that is weird. My first thought was that this variable was only used to generate the load time position for the scapula. Essentially the initial guess for the kinematic solver. I can't understand why your value causes it fail.

I will try to take a closer look today.

Best wishes,
Morten

@jmenze Ok. I think I found some something.

The values below are all used for the initial positions for the scapula and clavicula.

ShoulderArm.ModelParameters.Clavicula.NeutralPositionOnPelvis_pos
ShoulderArm.ModelParameters.Clavicula.Clavicula_Axes
ShoulderArm.ModelParameters.Scapula.NeutralPositionOnPelvis_pos
ShoulderArm.ModelParameters.Scapula.Scapula_Axes

But they are also used to calculate a length of the 'conoid ligament'.

See: "Body\AAUHuman\Arm\ScapulaConoideumDriver.any"

The ligament acts as a kinematic driver on the scapula. Scapula position is given by the AC joint (3DOF), it's contact with the trunk ellipsoid (2 DOF), and the a constant conoid ligament length (1 DOF).

So when you changed scapula value "NeutralPositionOnPelvis_pos", you also made the conoid ligament much longer. This caused the scapula to fall off its trunk surface.

image

You can see the little conoid ligament (selected) is too long.

How could I correct the initial position of the scapula instead? The problem is that its really sitting inside the rip cage

Maybe I should ask why you care that the initial position of the scapula looks a bit od?

If you want to prevent the scapula from penetrating the thorax we should change the surface upon which the scapula slides. Or move the contact points under scapula a little deeper. After doing this we should update the values below so we get the right neutral scapula position.

ShoulderArm.ModelParameters.Clavicula.NeutralPositionOnPelvis_pos
ShoulderArm.ModelParameters.Clavicula.Clavicula_Axes
ShoulderArm.ModelParameters.Scapula.NeutralPositionOnPelvis_pos
ShoulderArm.ModelParameters.Scapula.Scapula_Axes

I have a made a small model that does this. It removes the conoid driver and allow me to adjust the medial rotation of the scapula freely. If I knew the correct neutral scapula position, I can just read out new values for the variables above. With the variables update the conoid ligament length should automatically get the right length.

It is probably easier if I just show you. Do yo have time for meeting? Send me a email, and we can schedule a meeting.

Thank you so much Morten! I will send you an email and look forward to discussing it in detail with you in a meeting. Best, Johanna

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