Antwort: Re: Shoulder modelling

Hi Søren,

The suggestion with adding a small amount of gravity works fine. The modell
does not stop at an early phase of the simulation.
Also the corrected GHreactions-file calculates now forces in the same
dimension as shown in the Bergmann study. Thanks a lot for that!

But i get several Warnings or Errors during some of my movements:

While a GH-flexion of 120° i get this warning message:
WARNING(OBJ.MCH.KIN7) :
Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6\BRep\Aalborg\Arm3D
\Muscle.any(584)
: ‘pectoralis_major_clavicular_part_4.SPLine’ : Penetration :
Via-point
‘Main.MyShoulder.HumanModel.Right.ShoulderArm.Seg.Humerus.I_pectoralis_major_cla
vicular_part_4’
on
‘Main.MyShoulder.HumanModel.Right.ShoulderArm.Mus.pectoralis_major_clavicular_pa
rt_4.SPLine’
is located below the wrapping surface
'Main.MyShoulder.HumanModel.Right.ShoulderArm.Seg.Scapula.coracoid_cyl2.cyl
Should i move the Viapiont? If yes, in which direction and how much? Do you
have any rule of thumb for this kind of problem? This warning appears five
times (part 1-5, some clavicular and some thoracic), shortly before the end
of the analysis.

While a GH-abduction from 0 to 90° this Warning appears:
WARNING(OBJ.MCH.KIN6) :
Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6\BRep\Aalborg\Arm3D
\Jnt.any(45)
: ‘GHRot’ : Close to singular position : Orientation close to
Gimbal Lock, i.e., first and third axis of rotation being parallel
Does this mean the axis of rotation of a different joint (Wrist or elbow?)
is parallel or are there more than one rotation axis in the GH-joint?

//Definition of GH joint
AnyKinRotational GHRot = {
AnyRefNode &scapula_gh = …Seg.Scapula.gh;
AnyRefNode &humerus_gh = …Seg.Humerus.gh;
Type = RotAxesAngles;
Axis1 = y;
Axis2 = z;
Axis3 = y; };

Could be a typing error as well: you did not define the x-axis. Which one
should that be?

I get an error during the simulation of the coffeepot-motion (pulling the
coffeepot standing on the table towards him, i only added a small friction
in x-direction). I use flexion in the GH-joint , a rotation in the elbow
and a wrist-abduction.
ERROR :
Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6\BRep\Aalborg\Arm3D
\Muscle.any(499)
: pectoralis_major_thoracic_part_4 : Unexpected exception in the
library OOSol :
OOSol exception : General factorization exception : Negative or zero
pivot

When i add a rotation in the SternoClavicularProtraction of -5°, so that
the clavicula-scapula-construct moves backwards with the arm, the error
disappears. Why can´t i drive only the GH-joint?

If you have any other suggestions, improvements or results you can hand out
relating to the Bergmann study, just tell me.
Thanks a lot.

Best regards,

Alex

Alexander Nolte

Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher Str. 8,
82418 Murnau am Staffelsee
Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
Geschäftsführer Direktor Dr. Peter Schmidt

|---------±--------------------------->
| | “AnyBody Support”|
| | <support@anybodyt|
| | ech.com> |
| | |
| | |
| | Gesendet von: |
| | anyscript@yahoogr|
| | oups.com |
| | |
| | |
| | 20.03.2007 10:47 |
| | Bitte antworten |
| | an anyscript |
| | |
|---------±--------------------------->

>-------------------------------------------------------------------------------
-----------------------------------------------|
|
|
| An: anyscript@yahoogroups.com
|
| Kopie: (Blindkopie: Alexander Nolte/V/BUKM/BGNET/DE)
|
| Thema: [anyscript] Re: Shoulder modelling
|

>-------------------------------------------------------------------------------
-----------------------------------------------|

Hi Alex

I will try to answer your questions.

The property GhReation.FTotal i measured in the global coordinate
system, you can see how it is calculated in the file
BRep/ArmShoulder/GHreactions.any, it is a summation of muscles
forces. It is a long explanation: the gh reaction is created by eight
pushing muscles which all points into the GH rotations center and
originates form the edge of the cavity of scapula. This setup ensures
that the gh reaction force will always fall within the joint cavity.
The FTotal property is a summation of these forces.

How do you drive the arm?, please make sure that you have no
reactions presents in your drivers this make take away load from the
arm and result in a gh lower reaction.

I have reviewed the file GHReactions.any, here i found a bug in the
summation of the shoulder forces, which has the effect that the
forces are too small by a certain factor, the shape and direction of
the forces are not effected. The FTotal is found as a summation of
eight forces as mentioned earlier, here the force in the muscle Ft is
multiplied on a vector, and it was this vector which was not
normalized. Since the eight vectors are all small and all have the
same length this only changes the size of the force. I will upload a
file named GHReaction.any to the file section of this group shortly.

In principle it would be possible to implement friction on the eight
pushing muslces mentioned above but i am not sure how this would work
out and what the size of the friction coefficient should be? If you
are more interested in this please look into the example named
PedelDemoConditional and look in the file JointAndDrivers.any in the
bottom of this file you can see an example on the use of the friction
element.

I can not say exactly why you get this error, here is a suggestion
that may help. Sometimes if you add a small amount of gravity to
another direction it creates a problem which are easier to solve for
the optimizer, so something like this {0.001,-9.81,0.001} could work.

About the timeshift i understand this as you would like to have
motion in one joint and then later on motion in another joint. If
this is the case it can be done with interpolation drivers as you
suggest, fourier drivers might also be an option, depending on what
kind of motion you would like to obtain.

Please ask again if you have further questions

Best regards

Søren, AnyBody Support

— In anyscript@yahoogroups.com, “noltealexander”
<alexander.nolte@…> wrote:
>
> Hi AnyBody-Team,
>
> i am working with a shoulder-model from the repository for my
diploma-
> thesis.
> I used the building block tutorial and included the files
> SpineNoMusclesRightArm.any from the BRep, because i wanted the
> computing time kept as short as possible and i´m not interested in
> the trunk- or leg-muscles.
> There is a Webcast on the 26th April with the subject Validation of
> the AnyBody ver-sion of the Dutch Shoulder Model by the in-vivo
> measurement of GH contact forces by Bergmann et al. (26 Apr).
> I read the paper and tried to simulate the motions Bergmann´s
patient
> did. For e-xample: The GHReactions (FTotal) shows a Resultant Force
> of only about 40 N while 90° abduction with a load of 20 N in the
> hand.
> Are these forces measured in the GHReactionCenterNode? How do you
> measure these forces?
> Could it be , that the fixed position of the humerus with reference
> to the scapula is the reason for the little GHReactions? So how
could
> i implement friction in the GH-joint (main reason for moment and
> additional lever arms which apply high load to the joint-surface)?
> With the simple muscle model (from ShoulderArm.root.any), the
motion
> 90° abducti-on stops after the 5th step with the error-
message „ERROR
> (OBJ1) : Q:\Biomechanik\Projekte\018_AnyBody\Repository.6
> \Repository.6\ARep\Murnau\MyShoulder\MyShoulder.Main.any
> (58) : ‘MyStudy’ : Muscle recruitment analysis fai-led,
simplex
> solver reports that solution does not satisfy all constraints.".
> Other types of motion are working fine, so what could that be?
> Another Question is, how i can activate some of the drivers time-
> shifted? Should i use the interpolation-driver or is there any
other
> alternative?
> Do you already have some ideas how to improve your shoulder-model?
> Unfortunately, my time is running out, so i would appreciate an
> answer ahead, so i don´t need to wait until the 26th April.
>
> Thank you very much,
>
> Alex
>

Hi Alex

The warnings you get may occur in extreme postures, it happens when a
muscle insertation origin or via points are inside a surface which
the muscle is supposed to wrap on. This means that one end of the
muscles are inside the surface. The problem is that it is
undeterminate at which point this muscles leaves the surface so the
muscle may get a kink when the muscle leaves the surface. The size of
the kink are determined by the StringMesh and the aount of
prentration.

Have you noticed at what time you get the warning? it could be that
you get it when you load the model and not when you run it?, if this
is the case it just means that in the initial positions there are a
problem, and this you should not worry about.

If the problem occurs in the analysis, i suggest that you outcomment
all muscles expect the one with the problem and then look closely if
the origin or insertation point penetrates the warpping surfaces of
the muscle. If this is the case you have to move either the surface
of the points sligthly. You can display those by adding a
AnyDrawParamSuface to them, this you can do directly from the muscle,
by adding it to its reference.

I hope this helps you move on

Best regards
Søren, AnyBody Support

— In anyscript@yahoogroups.com, alexander.nolte@… wrote:
>
>
>
>
>
> Hi Søren,
>
> The suggestion with adding a small amount of gravity works fine.
The modell
> does not stop at an early phase of the simulation.
> Also the corrected GHreactions-file calculates now forces in the
same
> dimension as shown in the Bergmann study. Thanks a lot for that!
>
> But i get several Warnings or Errors during some of my movements:
>
> While a GH-flexion of 120° i get this warning message:
> WARNING
(OBJ.MCH.KIN7) :
> Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
\BRep\Aalborg\Arm3D\Muscle.any(584)
> : ‘pectoralis_major_clavicular_part_4.SPLine’ :
Penetration :
> Via-point
> ‘Main.MyShoulder.HumanModel.Right.ShoulderArm.Seg.Humerus.I_pectoral
is_major_clavicular_part_4’
> on
> ‘Main.MyShoulder.HumanModel.Right.ShoulderArm.Mus.pectoralis_major_c
lavicular_part_4.SPLine’
> is located below the wrapping
surface
> 'Main.MyShoulder.HumanModel.Right.ShoulderArm.Seg.Scapula.coracoid_c
yl2.cyl
> Should i move the Viapiont? If yes, in which direction and how
much? Do you
> have any rule of thumb for this kind of problem? This warning
appears five
> times (part 1-5, some clavicular and some thoracic), shortly before
the end
> of the analysis.
>
>
> While a GH-abduction from 0 to 90° this Warning appears:
> WARNING(OBJ.MCH.KIN6) :
> Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
\BRep\Aalborg\Arm3D\Jnt.any(45)
> : ‘GHRot’ : Close to singular position : Orientation close
to
> Gimbal Lock, i.e., first and third axis of rotation being parallel
> Does this mean the axis of rotation of a different joint (Wrist or
elbow?)
> is parallel or are there more than one rotation axis in the GH-
joint?
>
> //Definition of GH joint
> AnyKinRotational GHRot = {
> AnyRefNode &scapula_gh = …Seg.Scapula.gh;
> AnyRefNode &humerus_gh = …Seg.Humerus.gh;
> Type = RotAxesAngles;
> Axis1 = y;
> Axis2 = z;
> Axis3 = y; };
>
> Could be a typing error as well: you did not define the x-axis.
Which one
> should that be?
>
>
> I get an error during the simulation of the coffeepot-motion
(pulling the
> coffeepot standing on the table towards him, i only added a small
friction
> in x-direction). I use flexion in the GH-joint , a rotation in the
elbow
> and a wrist-abduction.
> ERROR :
> Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
\BRep\Aalborg\Arm3D\Muscle.any(499)
> : pectoralis_major_thoracic_part_4 : Unexpected exception in
the
> library OOSol :
> OOSol exception : General factorization exception : Negative or
zero
> pivot
>
> When i add a rotation in the SternoClavicularProtraction of -5°,
so that
> the clavicula-scapula-construct moves backwards with the arm, the
error
> disappears. Why can´t i drive only the GH-joint?
>
>
> If you have any other suggestions, improvements or results you can
hand out
> relating to the Bergmann study, just tell me.
> Thanks a lot.
>
>
> Best regards,
>
> Alex
>
>
> Alexander Nolte
>
> Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
Str. 8,
> 82418 Murnau am Staffelsee
> Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> Geschäftsführer Direktor Dr. Peter Schmidt
>
>
> |---------±--------------------------->
> | | “AnyBody Support”|
> | | <support@anybodyt|
> | | ech.com> |
> | | |
> | | |
> | | Gesendet von: |
> | | anyscript@yahoogr|
> | | oups.com |
> | | |
> | | |
> | | 20.03.2007 10:47 |
> | | Bitte antworten |
> | | an anyscript |
> | | |
> |---------±--------------------------->
> >-----------------------------------------------------------------
-------------------------------------------------------------|
>
|
|
> | An:
anyscript@yahoogroups.com
|
> | Kopie: (Blindkopie: Alexander
Nolte/V/BUKM/BGNET/DE)
|
> | Thema: [anyscript] Re: Shoulder
modelling
|
> >-----------------------------------------------------------------
-------------------------------------------------------------|
>
>
>
>
> Hi Alex
>
> I will try to answer your questions.
>
> The property GhReation.FTotal i measured in the global coordinate
> system, you can see how it is calculated in the file
> BRep/ArmShoulder/GHreactions.any, it is a summation of muscles
> forces. It is a long explanation: the gh reaction is created by
eight
> pushing muscles which all points into the GH rotations center and
> originates form the edge of the cavity of scapula. This setup
ensures
> that the gh reaction force will always fall within the joint cavity.
> The FTotal property is a summation of these forces.
>
> How do you drive the arm?, please make sure that you have no
> reactions presents in your drivers this make take away load from the
> arm and result in a gh lower reaction.
>
> I have reviewed the file GHReactions.any, here i found a bug in the
> summation of the shoulder forces, which has the effect that the
> forces are too small by a certain factor, the shape and direction of
> the forces are not effected. The FTotal is found as a summation of
> eight forces as mentioned earlier, here the force in the muscle Ft
is
> multiplied on a vector, and it was this vector which was not
> normalized. Since the eight vectors are all small and all have the
> same length this only changes the size of the force. I will upload a
> file named GHReaction.any to the file section of this group shortly.
>
> In principle it would be possible to implement friction on the eight
> pushing muslces mentioned above but i am not sure how this would
work
> out and what the size of the friction coefficient should be? If you
> are more interested in this please look into the example named
> PedelDemoConditional and look in the file JointAndDrivers.any in the
> bottom of this file you can see an example on the use of the
friction
> element.
>
> I can not say exactly why you get this error, here is a suggestion
> that may help. Sometimes if you add a small amount of gravity to
> another direction it creates a problem which are easier to solve for
> the optimizer, so something like this {0.001,-9.81,0.001} could
work.
>
> About the timeshift i understand this as you would like to have
> motion in one joint and then later on motion in another joint. If
> this is the case it can be done with interpolation drivers as you
> suggest, fourier drivers might also be an option, depending on what
> kind of motion you would like to obtain.
>
> Please ask again if you have further questions
>
> Best regards
>
> Søren, AnyBody Support
>
> — In anyscript@yahoogroups.com, “noltealexander”
> <alexander.nolte@> wrote:
> >
> > Hi AnyBody-Team,
> >
> > i am working with a shoulder-model from the repository for my
> diploma-
> > thesis.
> > I used the building block tutorial and included the files
> > SpineNoMusclesRightArm.any from the BRep, because i wanted the
> > computing time kept as short as possible and i´m not interested
in
> > the trunk- or leg-muscles.
> > There is a Webcast on the 26th April with the subject Validation
of
> > the AnyBody ver-sion of the Dutch Shoulder Model by the in-vivo
> > measurement of GH contact forces by Bergmann et al. (26 Apr).
> > I read the paper and tried to simulate the motions Bergmann´s
> patient
> > did. For e-xample: The GHReactions (FTotal) shows a Resultant
Force
> > of only about 40 N while 90° abduction with a load of 20 N in the
> > hand.
> > Are these forces measured in the GHReactionCenterNode? How do you
> > measure these forces?
> > Could it be , that the fixed position of the humerus with
reference
> > to the scapula is the reason for the little GHReactions? So how
> could
> > i implement friction in the GH-joint (main reason for moment and
> > additional lever arms which apply high load to the joint-surface)?
> > With the simple muscle model (from ShoulderArm.root.any), the
> motion
> > 90° abducti-on stops after the 5th step with the error-
> message „ERROR
> > (OBJ1) : Q:\Biomechanik\Projekte\018_AnyBody\Repository.6
> > \Repository.6\ARep\Murnau\MyShoulder\MyShoulder.Main.any
> > (58) : ‘MyStudy’ : Muscle recruitment analysis fai-led,
> simplex
> > solver reports that solution does not satisfy all constraints.".
> > Other types of motion are working fine, so what could that be?
> > Another Question is, how i can activate some of the drivers time-
> > shifted? Should i use the interpolation-driver or is there any
> other
> > alternative?
> > Do you already have some ideas how to improve your shoulder-model?
> > Unfortunately, my time is running out, so i would appreciate an
> > answer ahead, so i don´t need to wait until the 26th April.
> >
> > Thank you very much,
> >
> > Alex
> >
>

Hi Søren,

good advice with the wrapping surface. I changed the size of the wrapping
cylinder and the insertion point of the muscles don´t penetrate the surface
anymore. Did you have a reason, why you used this big size of the cylinder?
And why did you use such a complex rotation-matrix for positioning the
cylinder? I used a rotationmatrix (ARel =
RotMat(-40*pi/180,y)RotMat(-15pi/180,x):wink: and rotated the cylinder around
the referenceframe of the gh-node and changed the sRel, so that the
cylinder covers the processus coracoideus.
But I still got another question: Is it possible, to change the
measurment-referenceframe from the GHReactionCenterNode to the humerus
referenceframe, so that I can compare my results directly to the Bergmann
study?
Thanks a lot.

Best regards,

Alex

Alexander Nolte

Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher Str. 8,
82418 Murnau am Staffelsee
Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
Geschäftsführer Direktor Dr. Peter Schmidt

|---------±--------------------------->
| | “AnyBody Support”|
| | <support@anybodyt|
| | ech.com> |
| | |
| | |
| | Gesendet von: |
| | anyscript@yahoogr|
| | oups.com |
| | |
| | |
| | 22.03.2007 09:06 |
| | Bitte antworten |
| | an anyscript |
| | |
|---------±--------------------------->

>-------------------------------------------------------------------------------
-----------------------------------------------|
|
|
| An: anyscript@yahoogroups.com
|
| Kopie: (Blindkopie: Alexander Nolte/V/BUKM/BGNET/DE)
|
| Thema: Antwort: [anyscript] Re: Shoulder modelling
|

>-------------------------------------------------------------------------------
-----------------------------------------------|

Hi Alex

The warnings you get may occur in extreme postures, it happens when a
muscle insertation origin or via points are inside a surface which
the muscle is supposed to wrap on. This means that one end of the
muscles are inside the surface. The problem is that it is
undeterminate at which point this muscles leaves the surface so the
muscle may get a kink when the muscle leaves the surface. The size of
the kink are determined by the StringMesh and the aount of
prentration.

Have you noticed at what time you get the warning? it could be that
you get it when you load the model and not when you run it?, if this
is the case it just means that in the initial positions there are a
problem, and this you should not worry about.

If the problem occurs in the analysis, i suggest that you outcomment
all muscles expect the one with the problem and then look closely if
the origin or insertation point penetrates the warpping surfaces of
the muscle. If this is the case you have to move either the surface
of the points sligthly. You can display those by adding a
AnyDrawParamSuface to them, this you can do directly from the muscle,
by adding it to its reference.

I hope this helps you move on

Best regards
Søren, AnyBody Support

— In anyscript@yahoogroups.com, alexander.nolte@… wrote:
>
>
>
>
>
> Hi Søren,
>
> The suggestion with adding a small amount of gravity works fine.
The modell
> does not stop at an early phase of the simulation.
> Also the corrected GHreactions-file calculates now forces in the
same
> dimension as shown in the Bergmann study. Thanks a lot for that!
>
> But i get several Warnings or Errors during some of my movements:
>
> While a GH-flexion of 120° i get this warning message:
> WARNING
(OBJ.MCH.KIN7) :
> Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
\BRep\Aalborg\Arm3D\Muscle.any(584)
> : ‘pectoralis_major_clavicular_part_4.SPLine’ :
Penetration :
> Via-point
> ‘Main.MyShoulder.HumanModel.Right.ShoulderArm.Seg.Humerus.I_pectoral
is_major_clavicular_part_4’
> on
> ‘Main.MyShoulder.HumanModel.Right.ShoulderArm.Mus.pectoralis_major_c
lavicular_part_4.SPLine’
> is located below the wrapping
surface
> 'Main.MyShoulder.HumanModel.Right.ShoulderArm.Seg.Scapula.coracoid_c
yl2.cyl
> Should i move the Viapiont? If yes, in which direction and how
much? Do you
> have any rule of thumb for this kind of problem? This warning
appears five
> times (part 1-5, some clavicular and some thoracic), shortly before
the end
> of the analysis.
>
>
> While a GH-abduction from 0 to 90° this Warning appears:
> WARNING(OBJ.MCH.KIN6) :
> Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
\BRep\Aalborg\Arm3D\Jnt.any(45)
> : ‘GHRot’ : Close to singular position : Orientation close
to
> Gimbal Lock, i.e., first and third axis of rotation being parallel
> Does this mean the axis of rotation of a different joint (Wrist or
elbow?)
> is parallel or are there more than one rotation axis in the GH-
joint?
>
> //Definition of GH joint
> AnyKinRotational GHRot = {
> AnyRefNode &scapula_gh = …Seg.Scapula.gh;
> AnyRefNode &humerus_gh = …Seg.Humerus.gh;
> Type = RotAxesAngles;
> Axis1 = y;
> Axis2 = z;
> Axis3 = y; };
>
> Could be a typing error as well: you did not define the x-axis.
Which one
> should that be?
>
>
> I get an error during the simulation of the coffeepot-motion
(pulling the
> coffeepot standing on the table towards him, i only added a small
friction
> in x-direction). I use flexion in the GH-joint , a rotation in the
elbow
> and a wrist-abduction.
> ERROR :
> Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
\BRep\Aalborg\Arm3D\Muscle.any(499)
> : pectoralis_major_thoracic_part_4 : Unexpected exception in
the
> library OOSol :
> OOSol exception : General factorization exception : Negative or
zero
> pivot
>
> When i add a rotation in the SternoClavicularProtraction of -5°,
so that
> the clavicula-scapula-construct moves backwards with the arm, the
error
> disappears. Why can´t i drive only the GH-joint?
>
>
> If you have any other suggestions, improvements or results you can
hand out
> relating to the Bergmann study, just tell me.
> Thanks a lot.
>
>
> Best regards,
>
> Alex
>
>
> Alexander Nolte
>
> Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
Str. 8,
> 82418 Murnau am Staffelsee
> Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> Geschäftsführer Direktor Dr. Peter Schmidt
>
>
> |---------±--------------------------->
> | | “AnyBody Support”|
> | | <support@anybodyt|
> | | ech.com> |
> | | |
> | | |
> | | Gesendet von: |
> | | anyscript@yahoogr|
> | | oups.com |
> | | |
> | | |
> | | 20.03.2007 10:47 |
> | | Bitte antworten |
> | | an anyscript |
> | | |
> |---------±--------------------------->
> >----------------------------------------------------------
----------------------------------------------------------|
>
|
|
> | An:
anyscript@yahoogroups.com
|
> | Kopie: (Blindkopie: Alexander
Nolte/V/BUKM/BGNET/DE)
|
> | Thema: [anyscript] Re: Shoulder
modelling
|
> >----------------------------------------------------------
----------------------------------------------------------|
>
>
>
>
> Hi Alex
>
> I will try to answer your questions.
>
> The property GhReation.FTotal i measured in the global coordinate
> system, you can see how it is calculated in the file
> BRep/ArmShoulder/GHreactions.any, it is a summation of muscles
> forces. It is a long explanation: the gh reaction is created by
eight
> pushing muscles which all points into the GH rotations center and
> originates form the edge of the cavity of scapula. This setup
ensures
> that the gh reaction force will always fall within the joint cavity.
> The FTotal property is a summation of these forces.
>
> How do you drive the arm?, please make sure that you have no
> reactions presents in your drivers this make take away load from the
> arm and result in a gh lower reaction.
>
> I have reviewed the file GHReactions.any, here i found a bug in the
> summation of the shoulder forces, which has the effect that the
> forces are too small by a certain factor, the shape and direction of
> the forces are not effected. The FTotal is found as a summation of
> eight forces as mentioned earlier, here the force in the muscle Ft
is
> multiplied on a vector, and it was this vector which was not
> normalized. Since the eight vectors are all small and all have the
> same length this only changes the size of the force. I will upload a
> file named GHReaction.any to the file section of this group shortly.
>
> In principle it would be possible to implement friction on the eight
> pushing muslces mentioned above but i am not sure how this would
work
> out and what the size of the friction coefficient should be? If you
> are more interested in this please look into the example named
> PedelDemoConditional and look in the file JointAndDrivers.any in the
> bottom of this file you can see an example on the use of the
friction
> element.
>
> I can not say exactly why you get this error, here is a suggestion
> that may help. Sometimes if you add a small amount of gravity to
> another direction it creates a problem which are easier to solve for
> the optimizer, so something like this {0.001,-9.81,0.001} could
work.
>
> About the timeshift i understand this as you would like to have
> motion in one joint and then later on motion in another joint. If
> this is the case it can be done with interpolation drivers as you
> suggest, fourier drivers might also be an option, depending on what
> kind of motion you would like to obtain.
>
> Please ask again if you have further questions
>
> Best regards
>
> Søren, AnyBody Support
>
> — In anyscript@yahoogroups.com, “noltealexander”
> <alexander.nolte@> wrote:
> >
> > Hi AnyBody-Team,
> >
> > i am working with a shoulder-model from the repository for my
> diploma-
> > thesis.
> > I used the building block tutorial and included the files
> > SpineNoMusclesRightArm.any from the BRep, because i wanted the
> > computing time kept as short as possible and i´m not interested
in
> > the trunk- or leg-muscles.
> > There is a Webcast on the 26th April with the subject Validation
of
> > the AnyBody ver-sion of the Dutch Shoulder Model by the in-vivo
> > measurement of GH contact forces by Bergmann et al. (26 Apr).
> > I read the paper and tried to simulate the motions Bergmann´s
> patient
> > did. For e-xample: The GHReactions (FTotal) shows a Resultant
Force
> > of only about 40 N while 90° abduction with a load of 20 N in the
> > hand.
> > Are these forces measured in the GHReactionCenterNode? How do you
> > measure these forces?
> > Could it be , that the fixed position of the humerus with
reference
> > to the scapula is the reason for the little GHReactions? So how
> could
> > i implement friction in the GH-joint (main reason for moment and
> > additional lever arms which apply high load to the joint-surface)?
> > With the simple muscle model (from ShoulderArm.root.any), the
> motion
> > 90° abducti-on stops after the 5th step with the error-
> message „ERROR
> > (OBJ1) : Q:\Biomechanik\Projekte\018_AnyBody\Repository.6
> > \Repository.6\ARep\Murnau\MyShoulder\MyShoulder.Main.any
> > (58) : ‘MyStudy’ : Muscle recruitment analysis fai-led,
> simplex
> > solver reports that solution does not satisfy all constraints.".
> > Other types of motion are working fine, so what could that be?
> > Another Question is, how i can activate some of the drivers time-
> > shifted? Should i use the interpolation-driver or is there any
> other
> > alternative?
> > Do you already have some ideas how to improve your shoulder-model?
> > Unfortunately, my time is running out, so i would appreciate an
> > answer ahead, so i don´t need to wait until the 26th April.
> >
> > Thank you very much,
> >
> > Alex
> >
>

[Non-text portions of this message have been removed]

Hi Alex

In general it is best to use as big wrapping objects as the geometry
of the poblem allows. This is because wrapping on small objects in
general requires more points on the lines in order to work. So in
this case as long as the most frontal part of the cylinder fits with
the surface of the ribcage it do not matter that the rest of the
cylinder is inside the ribcage.

I do not recall where the rotmat originates from, sorry.

In a normal joint it would be easy to change which coordinatesystem
the forces is measured in, simply by chnaging the order of the
reference frames in the joint, but in this case it is not so simple
due to the setup with the pushing muscles.

To solve your problem you need to make use of the Axes properties of
the two nodes and do a transformation from the GHReactionCenterNode
to the humerus cooridnate system. So you can defined a new AnyVec3
and multiply the reaction forces with the correct sequence of the
Axes properties of the two nodes. I think the equation should look
something like this

AnyVec3 NewForce=OldForce*GhReactionCenter.Axes’*Humerus.Axes

Best regards
Søren AnyBody Support

— In anyscript@yahoogroups.com, alexander.nolte@… wrote:
>
>
>
>
>
> Hi Søren,
>
> good advice with the wrapping surface. I changed the size of the
wrapping
> cylinder and the insertion point of the muscles don´t penetrate
the surface
> anymore. Did you have a reason, why you used this big size of the
cylinder?
> And why did you use such a complex rotation-matrix for positioning
the
> cylinder? I used a rotationmatrix (ARel =
> RotMat(-40*pi/180,y)RotMat(-15pi/180,x):wink: and rotated the
cylinder around
> the referenceframe of the gh-node and changed the sRel, so that the
> cylinder covers the processus coracoideus.
> But I still got another question: Is it possible, to change the
> measurment-referenceframe from the GHReactionCenterNode to the
humerus
> referenceframe, so that I can compare my results directly to the
Bergmann
> study?
> Thanks a lot.
>
>
> Best regards,
>
> Alex
>
>
>
>
> Alexander Nolte
>
> Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
Str. 8,
> 82418 Murnau am Staffelsee
> Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> Geschäftsführer Direktor Dr. Peter Schmidt
>
>
> |---------±--------------------------->
> | | “AnyBody Support”|
> | | <support@anybodyt|
> | | ech.com> |
> | | |
> | | |
> | | Gesendet von: |
> | | anyscript@yahoogr|
> | | oups.com |
> | | |
> | | |
> | | 22.03.2007 09:06 |
> | | Bitte antworten |
> | | an anyscript |
> | | |
> |---------±--------------------------->
> >-----------------------------------------------------------------
-------------------------------------------------------------|
>
|
|
> | An:
anyscript@yahoogroups.com
|
> | Kopie: (Blindkopie: Alexander
Nolte/V/BUKM/BGNET/DE)
|
> | Thema: Antwort: [anyscript] Re: Shoulder
modelling
|
> >-----------------------------------------------------------------
-------------------------------------------------------------|
>
>
>
>
> Hi Alex
>
> The warnings you get may occur in extreme postures, it happens when
a
> muscle insertation origin or via points are inside a surface which
> the muscle is supposed to wrap on. This means that one end of the
> muscles are inside the surface. The problem is that it is
> undeterminate at which point this muscles leaves the surface so the
> muscle may get a kink when the muscle leaves the surface. The size
of
> the kink are determined by the StringMesh and the aount of
> prentration.
>
> Have you noticed at what time you get the warning? it could be that
> you get it when you load the model and not when you run it?, if this
> is the case it just means that in the initial positions there are a
> problem, and this you should not worry about.
>
> If the problem occurs in the analysis, i suggest that you outcomment
> all muscles expect the one with the problem and then look closely if
> the origin or insertation point penetrates the warpping surfaces of
> the muscle. If this is the case you have to move either the surface
> of the points sligthly. You can display those by adding a
> AnyDrawParamSuface to them, this you can do directly from the
muscle,
> by adding it to its reference.
>
> I hope this helps you move on
>
> Best regards
> Søren, AnyBody Support
>
> — In anyscript@yahoogroups.com, alexander.nolte@ wrote:
> >
> >
> >
> >
> >
> > Hi Søren,
> >
> > The suggestion with adding a small amount of gravity works fine.
> The modell
> > does not stop at an early phase of the simulation.
> > Also the corrected GHreactions-file calculates now forces in the
> same
> > dimension as shown in the Bergmann study. Thanks a lot for that!
> >
> > But i get several Warnings or Errors during some of my movements:
> >
> > While a GH-flexion of 120° i get this warning message:
> > WARNING
> (OBJ.MCH.KIN7) :
> > Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
> \BRep\Aalborg\Arm3D\Muscle.any(584)
> > : ‘pectoralis_major_clavicular_part_4.SPLine’ :
> Penetration :
> > Via-point
>
> ‘Main.MyShoulder.HumanModel.Right.ShoulderArm.Seg.Humerus.I_pectoral
> is_major_clavicular_part_4’
> > on
>
> ‘Main.MyShoulder.HumanModel.Right.ShoulderArm.Mus.pectoralis_major_c
> lavicular_part_4.SPLine’
> > is located below the wrapping
> surface
>
> 'Main.MyShoulder.HumanModel.Right.ShoulderArm.Seg.Scapula.coracoid_c
> yl2.cyl
> > Should i move the Viapiont? If yes, in which direction and how
> much? Do you
> > have any rule of thumb for this kind of problem? This warning
> appears five
> > times (part 1-5, some clavicular and some thoracic), shortly
before
> the end
> > of the analysis.
> >
> >
> > While a GH-abduction from 0 to 90° this Warning appears:
> > WARNING(OBJ.MCH.KIN6) :
> > Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
> \BRep\Aalborg\Arm3D\Jnt.any(45)
> > : ‘GHRot’ : Close to singular position : Orientation close
> to
> > Gimbal Lock, i.e., first and third axis of rotation being parallel
> > Does this mean the axis of rotation of a different joint (Wrist or
> elbow?)
> > is parallel or are there more than one rotation axis in the GH-
> joint?
> >
> > //Definition of GH joint
> > AnyKinRotational GHRot = {
> > AnyRefNode &scapula_gh = …Seg.Scapula.gh;
> > AnyRefNode &humerus_gh = …Seg.Humerus.gh;
> > Type = RotAxesAngles;
> > Axis1 = y;
> > Axis2 = z;
> > Axis3 = y; };
> >
> > Could be a typing error as well: you did not define the x-axis.
> Which one
> > should that be?
> >
> >
> > I get an error during the simulation of the coffeepot-motion
> (pulling the
> > coffeepot standing on the table towards him, i only added a small
> friction
> > in x-direction). I use flexion in the GH-joint , a rotation in the
> elbow
> > and a wrist-abduction.
> > ERROR :
> > Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
> \BRep\Aalborg\Arm3D\Muscle.any(499)
> > : pectoralis_major_thoracic_part_4 : Unexpected exception in
> the
> > library OOSol :
> > OOSol exception : General factorization exception : Negative or
> zero
> > pivot
> >
> > When i add a rotation in the SternoClavicularProtraction of -
5°,
> so that
> > the clavicula-scapula-construct moves backwards with the arm, the
> error
> > disappears. Why can´t i drive only the GH-joint?
> >
> >
> > If you have any other suggestions, improvements or results you can
> hand out
> > relating to the Bergmann study, just tell me.
> > Thanks a lot.
> >
> >
> > Best regards,
> >
> > Alex
> >
> >
> > Alexander Nolte
> >
> > Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
> Str. 8,
> > 82418 Murnau am Staffelsee
> > Eingetragener Verein, Amtsgericht München, Registernummer VR
4704
> > Geschäftsführer Direktor Dr. Peter Schmidt
> >
> >
> > |---------±--------------------------->
> > | | “AnyBody Support”|
> > | | <support@anybodyt|
> > | | ech.com> |
> > | | |
> > | | |
> > | | Gesendet von: |
> > | | anyscript@yahoogr|
> > | | oups.com |
> > | | |
> > | | |
> > | | 20.03.2007 10:47 |
> > | | Bitte antworten |
> > | | an anyscript |
> > | | |
> > |---------±--------------------------->
> > >----------------------------------------------------------
> ----------------------------------------------------------|
> >
> |
> |
> > | An:
> anyscript@yahoogroups.com
> |
> > | Kopie: (Blindkopie: Alexander
> Nolte/V/BUKM/BGNET/DE)
> |
> > | Thema: [anyscript] Re: Shoulder
> modelling
> |
> > >----------------------------------------------------------
> ----------------------------------------------------------|
> >
> >
> >
> >
> > Hi Alex
> >
> > I will try to answer your questions.
> >
> > The property GhReation.FTotal i measured in the global coordinate
> > system, you can see how it is calculated in the file
> > BRep/ArmShoulder/GHreactions.any, it is a summation of muscles
> > forces. It is a long explanation: the gh reaction is created by
> eight
> > pushing muscles which all points into the GH rotations center and
> > originates form the edge of the cavity of scapula. This setup
> ensures
> > that the gh reaction force will always fall within the joint
cavity.
> > The FTotal property is a summation of these forces.
> >
> > How do you drive the arm?, please make sure that you have no
> > reactions presents in your drivers this make take away load from
the
> > arm and result in a gh lower reaction.
> >
> > I have reviewed the file GHReactions.any, here i found a bug in
the
> > summation of the shoulder forces, which has the effect that the
> > forces are too small by a certain factor, the shape and direction
of
> > the forces are not effected. The FTotal is found as a summation of
> > eight forces as mentioned earlier, here the force in the muscle Ft
> is
> > multiplied on a vector, and it was this vector which was not
> > normalized. Since the eight vectors are all small and all have the
> > same length this only changes the size of the force. I will
upload a
> > file named GHReaction.any to the file section of this group
shortly.
> >
> > In principle it would be possible to implement friction on the
eight
> > pushing muslces mentioned above but i am not sure how this would
> work
> > out and what the size of the friction coefficient should be? If
you
> > are more interested in this please look into the example named
> > PedelDemoConditional and look in the file JointAndDrivers.any in
the
> > bottom of this file you can see an example on the use of the
> friction
> > element.
> >
> > I can not say exactly why you get this error, here is a suggestion
> > that may help. Sometimes if you add a small amount of gravity to
> > another direction it creates a problem which are easier to solve
for
> > the optimizer, so something like this {0.001,-9.81,0.001} could
> work.
> >
> > About the timeshift i understand this as you would like to have
> > motion in one joint and then later on motion in another joint. If
> > this is the case it can be done with interpolation drivers as you
> > suggest, fourier drivers might also be an option, depending on
what
> > kind of motion you would like to obtain.
> >
> > Please ask again if you have further questions
> >
> > Best regards
> >
> > Søren, AnyBody Support
> >
> > — In anyscript@yahoogroups.com, “noltealexander”
> > <alexander.nolte@> wrote:
> > >
> > > Hi AnyBody-Team,
> > >
> > > i am working with a shoulder-model from the repository for my
> > diploma-
> > > thesis.
> > > I used the building block tutorial and included the files
> > > SpineNoMusclesRightArm.any from the BRep, because i wanted the
> > > computing time kept as short as possible and i´m not
interested
> in
> > > the trunk- or leg-muscles.
> > > There is a Webcast on the 26th April with the subject Validation
> of
> > > the AnyBody ver-sion of the Dutch Shoulder Model by the in-vivo
> > > measurement of GH contact forces by Bergmann et al. (26 Apr).
> > > I read the paper and tried to simulate the motions Bergmann´s
> > patient
> > > did. For e-xample: The GHReactions (FTotal) shows a Resultant
> Force
> > > of only about 40 N while 90° abduction with a load of 20 N
in the
> > > hand.
> > > Are these forces measured in the GHReactionCenterNode? How do
you
> > > measure these forces?
> > > Could it be , that the fixed position of the humerus with
> reference
> > > to the scapula is the reason for the little GHReactions? So how
> > could
> > > i implement friction in the GH-joint (main reason for moment and
> > > additional lever arms which apply high load to the joint-
surface)?
> > > With the simple muscle model (from ShoulderArm.root.any), the
> > motion
> > > 90° abducti-on stops after the 5th step with the error-
> > message „ERROR
> > > (OBJ1) : Q:\Biomechanik\Projekte\018_AnyBody\Repository.6
> > > \Repository.6\ARep\Murnau\MyShoulder\MyShoulder.Main.any
> > > (58) : ‘MyStudy’ : Muscle recruitment analysis fai-led,
> > simplex
> > > solver reports that solution does not satisfy all constraints.".
> > > Other types of motion are working fine, so what could that be?
> > > Another Question is, how i can activate some of the drivers
time-
> > > shifted? Should i use the interpolation-driver or is there any
> > other
> > > alternative?
> > > Do you already have some ideas how to improve your shoulder-
model?
> > > Unfortunately, my time is running out, so i would appreciate an
> > > answer ahead, so i don´t need to wait until the 26th April.
> > >
> > > Thank you very much,
> > >
> > > Alex
> > >
> >
>
>
>
>
>
>
> [Non-text portions of this message have been removed]
>

Hi Søren,

I´ve still some more questions…
The rotational matrix “Axes” of the gh-node of the humerus is calculated at
every step of the simulation, so that I get at every step the rotational
position of the gh-node-refframe relative to the globalrefframe? (Just to
make sure I didn´t make an error in reasoning. I multiplied the forcevector
in the GH-Joint with the “humerus.gh.axes” and then with a rotational
matrix to turn it 90° around y-axis. You gave me an example like this a few
emails before. So i think, it should be correct.)

Second question is: I used a Fourier Driver to simulate an flexion 0° to
90° and then back to 0°. The forces I got for the GH-Reaction are a to
small. Why? I didn´t change anything but the driver. Does this driver need
more adjustment?

Third question: Is there any possibility to use the InterpolDriver for the
flexion-motion mentioned above? The values of the data-set have to increase
monotonically. So I can´t use the values like this: {0,1,2,3,4,3,2,1,0} .

Thanks a lot.

Best regards,

Alex

Alexander Nolte

Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher Str. 8,
82418 Murnau am Staffelsee
Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
Geschäftsführer Direktor Dr. Peter Schmidt

|---------±--------------------------->
| | “AnyBody Support”|
| | <support@anybodyt|
| | ech.com> |
| | |
| | |
| | Gesendet von: |
| | anyscript@yahoogr|
| | oups.com |
| | |
| | |
| | 10.04.2007 11:08 |
| | Bitte antworten |
| | an anyscript |
| | |
|---------±--------------------------->

>-------------------------------------------------------------------------------
-----------------------------------------------|
|
|
| An: anyscript@yahoogroups.com
|
| Kopie: (Blindkopie: Alexander Nolte/V/BUKM/BGNET/DE)
|
| Thema: [anyscript] Re: Shoulder modelling
|

>-------------------------------------------------------------------------------
-----------------------------------------------|

Hi Alexander

Sorry about the delay…

The error you get is a muscle wrapping error on the
pectoralis_major_thoracic_part_5 muscle, so it will have an effetct
if this muscle was previously outcommented. The drawing stuff will
not affect the analysis in anyway.

To resolve this problem please try to add more points in the
discretization of this particular muscle, this is done by increasing
the StringMesh property of the muscle. Try adding ten more points for
example, it usually makes the problem more robust.

I am not sure what you mean by the AnyDrawRefFrame. I will try to
explain, please ask again if this was not what you had in mind;-).
The AnyDrawRefFrame is just a visual representation of a coordinate
system, so if you add this is a node it will dispaly the cooridnate
system of the node. If it is on a segment it will display the segment
cooridnate system and so on. If you change a sRel or ARel of a node
and there is a AnyDrawRefFrame inside the node this coordinate system
will move according to the changes of Arel and sRel. If the node is
used for calculating forces any change made to aRel or srel will have
an effect on the results.

You are right about the coordinate system of the GHReactions these
are in the globalref system. If yu would liek to have them in another
coordinate system you need to mlutiply the proper rotation matrix.

Please just ask again if you have further questions

Best regards
Søren

— In anyscript@yahoogroups.com, alexander.nolte@… wrote:
>
>
>
>
>
> Hi Søren,
>
> I still have some problems with my shoulder-model. When I run a 45°
> abduction (I drive only the abductin in the gh-joint, the other
values are
> fixed.) with an elbowpronation of 38° and an elbowflexion with 2°,
I get
> this error:
>
> ERROR :
> Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
\BRep\Aalborg\Arm3D\Muscle.any(521)
> : pectoralis_major_thoracic_part_5 : Unexpected exception in
the
> library OOSol :
> OOSol exception : General factorization exception : Negative or
zero
> pivot
>
> Can you help me with that problem? Yesterday the simulation worked
fine and
> I can´t remember I changed something like a variable or a vector.
Or could
> there be any effect, when I outcomment some muscles or outcomment or
> implement some draw-functions?
>
> When I use an AnyDrawRefFrame with an new sRel or ARel, will only
the drawn
> Refframe move, or also the Refframe used for calculating the
forces? If the
> first case is correct (drawn Refframe will move), there would be no
change
> in the force-directions, right?
>
> In which coordinate system are the GHReactionforces measured? I
looked at
> the force-vector while running the simulation and compared it to the
> force-diagram and it seems that the forces are measured in the
global
> coordinate system, right?
>
> I hope, these are not too many questions;-). If it would be easier
for you
> to give me some advices when you see the model, just tell me and I
will
> upload it at the yahoogroup.
> Thanks for your help and Happy Easter.
>
> Best Regards,
>
>
> Alexander Nolte
>
> Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher Str.
8,
> 82418 Murnau am Staffelsee
> Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> Geschäftsführer Direktor Dr. Peter Schmidt
>

[Non-text portions of this message have been removed]

Hi Alex

Yes this is correct, the Axes property measure the orientation wrt to
global for each time step.

I am unsure about the rotations since i am not entirely sure how you
want it to end up, but it sounds basically ok i think. Maybe you
should do a small test and apply the transformations on a know force
like AnyVec3 f={10,0,0} or similar, just to check if it works as
intended.

About the fourier driver did you remember to switch off the reaction
in the driver, it may sound like it is providing the moment.

You may use the interpolation driver for it, it is only the
timeseries which has to be monotonically increasing, it can not go
backwards in time. The Data values are free to choose, so something
like this should work

T={0,1,2,3,4,5,6}/6*Main.tEnd;
Data={{0,30,60,90,60,30,0}};

Best regards
Søren, AnyBody Support

— In anyscript@yahoogroups.com, alexander.nolte@… wrote:
>
>
>
>
>
>
> Hi Søren,
>
> I´ve still some more questions…
> The rotational matrix “Axes” of the gh-node of the humerus is
calculated at
> every step of the simulation, so that I get at every step the
rotational
> position of the gh-node-refframe relative to the globalrefframe?
(Just to
> make sure I didn´t make an error in reasoning. I multiplied the
forcevector
> in the GH-Joint with the “humerus.gh.axes” and then with a
rotational
> matrix to turn it 90° around y-axis. You gave me an example like
this a few
> emails before. So i think, it should be correct.)
>
> Second question is: I used a Fourier Driver to simulate an flexion
0° to
> 90° and then back to 0°. The forces I got for the GH-Reaction are a
to
> small. Why? I didn´t change anything but the driver. Does this
driver need
> more adjustment?
>
> Third question: Is there any possibility to use the InterpolDriver
for the
> flexion-motion mentioned above? The values of the data-set have to
increase
> monotonically. So I can´t use the values like this:
{0,1,2,3,4,3,2,1,0} .
>
> Thanks a lot.
>
> Best regards,
>
> Alex
>
>
>
> Alexander Nolte
>
> Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher Str.
8,
> 82418 Murnau am Staffelsee
> Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> Geschäftsführer Direktor Dr. Peter Schmidt
>
>
> |---------±--------------------------->
> | | “AnyBody Support”|
> | | <support@anybodyt|
> | | ech.com> |
> | | |
> | | |
> | | Gesendet von: |
> | | anyscript@yahoogr|
> | | oups.com |
> | | |
> | | |
> | | 10.04.2007 11:08 |
> | | Bitte antworten |
> | | an anyscript |
> | | |
> |---------±--------------------------->
> >-----------------------------------------------------------------
-------------------------------------------------------------|
>
|
|
> | An:
anyscript@yahoogroups.com
|
> | Kopie: (Blindkopie: Alexander
Nolte/V/BUKM/BGNET/DE)
|
> | Thema: [anyscript] Re: Shoulder
modelling
|
> >-----------------------------------------------------------------
-------------------------------------------------------------|
>
>
>
>
> Hi Alexander
>
> Sorry about the delay…
>
> The error you get is a muscle wrapping error on the
> pectoralis_major_thoracic_part_5 muscle, so it will have an effetct
> if this muscle was previously outcommented. The drawing stuff will
> not affect the analysis in anyway.
>
> To resolve this problem please try to add more points in the
> discretization of this particular muscle, this is done by increasing
> the StringMesh property of the muscle. Try adding ten more points
for
> example, it usually makes the problem more robust.
>
> I am not sure what you mean by the AnyDrawRefFrame. I will try to
> explain, please ask again if this was not what you had in mind;-).
> The AnyDrawRefFrame is just a visual representation of a coordinate
> system, so if you add this is a node it will dispaly the cooridnate
> system of the node. If it is on a segment it will display the
segment
> cooridnate system and so on. If you change a sRel or ARel of a node
> and there is a AnyDrawRefFrame inside the node this coordinate
system
> will move according to the changes of Arel and sRel. If the node is
> used for calculating forces any change made to aRel or srel will
have
> an effect on the results.
>
> You are right about the coordinate system of the GHReactions these
> are in the globalref system. If yu would liek to have them in
another
> coordinate system you need to mlutiply the proper rotation matrix.
>
> Please just ask again if you have further questions
>
> Best regards
> Søren
>
> — In anyscript@yahoogroups.com, alexander.nolte@ wrote:
> >
> >
> >
> >
> >
> > Hi Søren,
> >
> > I still have some problems with my shoulder-model. When I run a
45°
> > abduction (I drive only the abductin in the gh-joint, the other
> values are
> > fixed.) with an elbowpronation of 38° and an elbowflexion with 2°,
> I get
> > this error:
> >
> > ERROR :
> > Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
> \BRep\Aalborg\Arm3D\Muscle.any(521)
> > : pectoralis_major_thoracic_part_5 : Unexpected exception in
> the
> > library OOSol :
> > OOSol exception : General factorization exception : Negative or
> zero
> > pivot
> >
> > Can you help me with that problem? Yesterday the simulation worked
> fine and
> > I can´t remember I changed something like a variable or a vector.
> Or could
> > there be any effect, when I outcomment some muscles or outcomment
or
> > implement some draw-functions?
> >
> > When I use an AnyDrawRefFrame with an new sRel or ARel, will only
> the drawn
> > Refframe move, or also the Refframe used for calculating the
> forces? If the
> > first case is correct (drawn Refframe will move), there would be
no
> change
> > in the force-directions, right?
> >
> > In which coordinate system are the GHReactionforces measured? I
> looked at
> > the force-vector while running the simulation and compared it to
the
> > force-diagram and it seems that the forces are measured in the
> global
> > coordinate system, right?
> >
> > I hope, these are not too many questions;-). If it would be easier
> for you
> > to give me some advices when you see the model, just tell me and I
> will
> > upload it at the yahoogroup.
> > Thanks for your help and Happy Easter.
> >
> > Best Regards,
> >
> >
> > Alexander Nolte
> >
> > Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
Str.
> 8,
> > 82418 Murnau am Staffelsee
> > Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> > Geschäftsführer Direktor Dr. Peter Schmidt
> >
>
>
>
>
>
>
> [Non-text portions of this message have been removed]
>

Hi Søren,

It´s me again.
I checked out your suggestion with the AnyVec3 to control my rotation of
the forcevector. I inserted this control-function at the end of the
GHReactions-file:

AnyVec3 Control = {200,0,0};

AnyVec3 Control1 =
Control*.Main.MyShoulder.HumanModel.Right.ShoulderArm.Seg.Humerus.gh.Axes;

 AnyVec3 ControlRot = Control1*BergmannRotMat;

     AnyDrawVector DrawControl =     {

       AnyRefFrame &ref=....Seg.Humerus.gh;

       Vec

=Main.DrawSettings.DrawSettingsSupport.Lin.ScaleFactor*.ControlRot;

       PointAway = Off;
       DrawCoord = Off;

       Line.RGB = Main.DrawSettings.DrawSettingsSupport.Lin.RGB;
       Line.Thickness =

Main.DrawSettings.DrawSettingsSupport.Lin.Thickness;
Line.End.Thickness =
2*Main.DrawSettings.DrawSettingsSupport.Lin.Thickness;
Line.End.Length = 0.5
*Main.DrawSettings.DrawSettingsSupport.Lin.Thickness;
};

But the vector isn´t drawn correctly in x-direction of the gh-Refframe. The
vector is drawn in z-direction. It seems, that is rotated approximately 90
deg around the y-axis. So maybe the gh-Refframe is not correctly drawn?

The Fourier driver works much better now. The high peaks dissappeared and
the graph is smoother. Thanks for this advice.
But I didn´t understand the operating mode of the Fourier driver
completely, yet. I use the Sinus-type to drive only the flexion of the
GH-joint. Why does the frequency change, when I type in more A-values, for
example A = {{0,0,0},{0,0,pi/2},{0,0,0}}; to
A={{0,0,0,0,0,0},{0,0,0,0,0,pi/2},{0,0,0,0,0,0}};? The movement looks like
he flexes the arm towards 90° and back, but three times more than with the
first A-matrix. The motion should not change, because there only zeros in
the matrix, except the last value, right?

Thanks a lot,

Best regards,

Alex

Alexander Nolte

Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher Str. 8,
82418 Murnau am Staffelsee
Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
Geschäftsführer Direktor Dr. Peter Schmidt

|---------±--------------------------->
| | “AnyBody Support”|
| | <support@anybodyt|
| | ech.com> |
| | |
| | |
| | Gesendet von: |
| | anyscript@yahoogr|
| | oups.com |
| | |
| | |
| | 18.04.2007 10:49 |
| | Bitte antworten |
| | an anyscript |
| | |
|---------±--------------------------->

>-------------------------------------------------------------------------------
-----------------------------------------------|
|
|
| An: anyscript@yahoogroups.com
|
| Kopie: (Blindkopie: Alexander Nolte/V/BUKM/BGNET/DE)
|
| Thema: Antwort: [anyscript] Re: Shoulder modelling
|

>-------------------------------------------------------------------------------
-----------------------------------------------|

Hi Alex

Yes this is correct, the Axes property measure the orientation wrt to
global for each time step.

I am unsure about the rotations since i am not entirely sure how you
want it to end up, but it sounds basically ok i think. Maybe you
should do a small test and apply the transformations on a know force
like AnyVec3 f={10,0,0} or similar, just to check if it works as
intended.

About the fourier driver did you remember to switch off the reaction
in the driver, it may sound like it is providing the moment.

You may use the interpolation driver for it, it is only the
timeseries which has to be monotonically increasing, it can not go
backwards in time. The Data values are free to choose, so something
like this should work

T={0,1,2,3,4,5,6}/6*Main.tEnd;
Data={{0,30,60,90,60,30,0}};

Best regards
Søren, AnyBody Support

— In anyscript@yahoogroups.com, alexander.nolte@… wrote:
>
>
>
>
>
>
> Hi Søren,
>
> I´ve still some more questions…
> The rotational matrix “Axes” of the gh-node of the humerus is
calculated at
> every step of the simulation, so that I get at every step the
rotational
> position of the gh-node-refframe relative to the globalrefframe?
(Just to
> make sure I didn´t make an error in reasoning. I multiplied the
forcevector
> in the GH-Joint with the “humerus.gh.axes” and then with a
rotational
> matrix to turn it 90° around y-axis. You gave me an example like
this a few
> emails before. So i think, it should be correct.)
>
> Second question is: I used a Fourier Driver to simulate an flexion
0° to
> 90° and then back to 0°. The forces I got for the GH-Reaction are a
to
> small. Why? I didn´t change anything but the driver. Does this
driver need
> more adjustment?
>
> Third question: Is there any possibility to use the InterpolDriver
for the
> flexion-motion mentioned above? The values of the data-set have to
increase
> monotonically. So I can´t use the values like this:
{0,1,2,3,4,3,2,1,0} .
>
> Thanks a lot.
>
> Best regards,
>
> Alex
>
>
>
> Alexander Nolte
>
> Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher Str.
8,
> 82418 Murnau am Staffelsee
> Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> Geschäftsführer Direktor Dr. Peter Schmidt
>
>
> |---------±--------------------------->
> | | “AnyBody Support”|
> | | <support@anybodyt|
> | | ech.com> |
> | | |
> | | |
> | | Gesendet von: |
> | | anyscript@yahoogr|
> | | oups.com |
> | | |
> | | |
> | | 10.04.2007 11:08 |
> | | Bitte antworten |
> | | an anyscript |
> | | |
> |---------±--------------------------->
> >----------------------------------------------------------
----------------------------------------------------------|
>
|
|
> | An:
anyscript@yahoogroups.com
|
> | Kopie: (Blindkopie: Alexander
Nolte/V/BUKM/BGNET/DE)
|
> | Thema: [anyscript] Re: Shoulder
modelling
|
> >----------------------------------------------------------
----------------------------------------------------------|
>
>
>
>
> Hi Alexander
>
> Sorry about the delay…
>
> The error you get is a muscle wrapping error on the
> pectoralis_major_thoracic_part_5 muscle, so it will have an effetct
> if this muscle was previously outcommented. The drawing stuff will
> not affect the analysis in anyway.
>
> To resolve this problem please try to add more points in the
> discretization of this particular muscle, this is done by increasing
> the StringMesh property of the muscle. Try adding ten more points
for
> example, it usually makes the problem more robust.
>
> I am not sure what you mean by the AnyDrawRefFrame. I will try to
> explain, please ask again if this was not what you had in mind;-).
> The AnyDrawRefFrame is just a visual representation of a coordinate
> system, so if you add this is a node it will dispaly the cooridnate
> system of the node. If it is on a segment it will display the
segment
> cooridnate system and so on. If you change a sRel or ARel of a node
> and there is a AnyDrawRefFrame inside the node this coordinate
system
> will move according to the changes of Arel and sRel. If the node is
> used for calculating forces any change made to aRel or srel will
have
> an effect on the results.
>
> You are right about the coordinate system of the GHReactions these
> are in the globalref system. If yu would liek to have them in
another
> coordinate system you need to mlutiply the proper rotation matrix.
>
> Please just ask again if you have further questions
>
> Best regards
> Søren
>
> — In anyscript@yahoogroups.com, alexander.nolte@ wrote:
> >
> >
> >
> >
> >
> > Hi Søren,
> >
> > I still have some problems with my shoulder-model. When I run a
45°
> > abduction (I drive only the abductin in the gh-joint, the other
> values are
> > fixed.) with an elbowpronation of 38° and an elbowflexion with 2°,
> I get
> > this error:
> >
> > ERROR :
> > Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
> \BRep\Aalborg\Arm3D\Muscle.any(521)
> > : pectoralis_major_thoracic_part_5 : Unexpected exception in
> the
> > library OOSol :
> > OOSol exception : General factorization exception : Negative or
> zero
> > pivot
> >
> > Can you help me with that problem? Yesterday the simulation worked
> fine and
> > I can´t remember I changed something like a variable or a vector.
> Or could
> > there be any effect, when I outcomment some muscles or outcomment
or
> > implement some draw-functions?
> >
> > When I use an AnyDrawRefFrame with an new sRel or ARel, will only
> the drawn
> > Refframe move, or also the Refframe used for calculating the
> forces? If the
> > first case is correct (drawn Refframe will move), there would be
no
> change
> > in the force-directions, right?
> >
> > In which coordinate system are the GHReactionforces measured? I
> looked at
> > the force-vector while running the simulation and compared it to
the
> > force-diagram and it seems that the forces are measured in the
> global
> > coordinate system, right?
> >
> > I hope, these are not too many questions;-). If it would be easier
> for you
> > to give me some advices when you see the model, just tell me and I
> will
> > upload it at the yahoogroup.
> > Thanks for your help and Happy Easter.
> >
> > Best Regards,
> >
> >
> > Alexander Nolte
> >
> > Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
Str.
> 8,
> > 82418 Murnau am Staffelsee
> > Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> > Geschäftsführer Direktor Dr. Peter Schmidt
> >
>
>
>
>
>
>
> [Non-text portions of this message have been removed]
>

[Non-text portions of this message have been removed]

Hi Alex

Sorry about the slow respond i have been traveling for some days.

I am unsure what the BergmannRotMat is, as i recall your problem you
want the forces measured in another coordinate system. I think you
should create a node on scapula which has the desired orientaion
according to Bergmann and then use this nodes Aexs property instead
of the scapula axes. Then the transformation can be done in one step.

About the Fourier driver: in the first version you have a factor of
0.5pi on the tird term in the second version you have this factor on
the sixth term of the exspansion, this is why it will have a much
higher frequecy. If you wrote {0,0,0.5
pi,0,0,0} instead it should
give you the same as in the first case.

The fundamental frequency do not change but each of the terms has it
own frequency f_j calculated based on the fundamental frequency by an
equation like this:

w_j=(1-j)2pi*freq

This can also be found in the refernece manual

Best regards
Søren, AnyBody Support

— In anyscript@yahoogroups.com, alexander.nolte@… wrote:
>
>
>
>
>
>
> Hi Søren,
>
> It´s me again.
> I checked out your suggestion with the AnyVec3 to control my
rotation of
> the forcevector. I inserted this control-function at the end of the
> GHReactions-file:
>
> AnyVec3 Control = {200,0,0};
>
> AnyVec3 Control1 =
>
Control*.Main.MyShoulder.HumanModel.Right.ShoulderArm.Seg.Humerus.gh.A
xes;
>
> AnyVec3 ControlRot = Control1BergmannRotMat;
>
> AnyDrawVector DrawControl = {
>
> AnyRefFrame &ref=…Seg.Humerus.gh;
>
> Vec
> =Main.DrawSettings.DrawSettingsSupport.Lin.ScaleFactor
.ControlRot;
>
> PointAway = Off;
> DrawCoord = Off;
>
> Line.RGB = Main.DrawSettings.DrawSettingsSupport.Lin.RGB;
> Line.Thickness =
> Main.DrawSettings.DrawSettingsSupport.Lin.Thickness;
> Line.End.Thickness =
> 2*Main.DrawSettings.DrawSettingsSupport.Lin.Thickness;
> Line.End.Length = 0.5
> Main.DrawSettings.DrawSettingsSupport.Lin.Thickness;
> };
>
> But the vector isn´t drawn correctly in x-direction of the gh-
Refframe. The
> vector is drawn in z-direction. It seems, that is rotated
approximately 90
> deg around the y-axis. So maybe the gh-Refframe is not correctly
drawn?
>
> The Fourier driver works much better now. The high peaks
dissappeared and
> the graph is smoother. Thanks for this advice.
> But I didn´t understand the operating mode of the Fourier driver
> completely, yet. I use the Sinus-type to drive only the flexion of
the
> GH-joint. Why does the frequency change, when I type in more A-
values, for
> example A = {{0,0,0},{0,0,pi/2},{0,0,0}}; to
> A={{0,0,0,0,0,0},{0,0,0,0,0,pi/2},{0,0,0,0,0,0}};? The movement
looks like
> he flexes the arm towards 90° and back, but three times more than
with the
> first A-matrix. The motion should not change, because there only
zeros in
> the matrix, except the last value, right?
>
> Thanks a lot,
>
> Best regards,
>
> Alex
>
>
> Alexander Nolte
>
> Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher Str.
8,
> 82418 Murnau am Staffelsee
> Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> Geschäftsführer Direktor Dr. Peter Schmidt
>
>
> |---------±--------------------------->
> | | “AnyBody Support”|
> | | <support@anybodyt|
> | | ech.com> |
> | | |
> | | |
> | | Gesendet von: |
> | | anyscript@yahoogr|
> | | oups.com |
> | | |
> | | |
> | | 18.04.2007 10:49 |
> | | Bitte antworten |
> | | an anyscript |
> | | |
> |---------±--------------------------->
> >-----------------------------------------------------------------
-------------------------------------------------------------|
>
|
|
> | An:
anyscript@yahoogroups.com
|
> | Kopie: (Blindkopie: Alexander
Nolte/V/BUKM/BGNET/DE)
|
> | Thema: Antwort: [anyscript] Re: Shoulder
modelling
|
> >-----------------------------------------------------------------
-------------------------------------------------------------|
>
>
>
>
> Hi Alex
>
> Yes this is correct, the Axes property measure the orientation wrt
to
> global for each time step.
>
> I am unsure about the rotations since i am not entirely sure how you
> want it to end up, but it sounds basically ok i think. Maybe you
> should do a small test and apply the transformations on a know force
> like AnyVec3 f={10,0,0} or similar, just to check if it works as
> intended.
>
> About the fourier driver did you remember to switch off the reaction
> in the driver, it may sound like it is providing the moment.
>
> You may use the interpolation driver for it, it is only the
> timeseries which has to be monotonically increasing, it can not go
> backwards in time. The Data values are free to choose, so something
> like this should work
>
> T={0,1,2,3,4,5,6}/6
Main.tEnd;
> Data={{0,30,60,90,60,30,0}};
>
> Best regards
> Søren, AnyBody Support
>
> — In anyscript@yahoogroups.com, alexander.nolte@ wrote:
> >
> >
> >
> >
> >
> >
> > Hi Søren,
> >
> > I´ve still some more questions…
> > The rotational matrix “Axes” of the gh-node of the humerus is
> calculated at
> > every step of the simulation, so that I get at every step the
> rotational
> > position of the gh-node-refframe relative to the globalrefframe?
> (Just to
> > make sure I didn´t make an error in reasoning. I multiplied the
> forcevector
> > in the GH-Joint with the “humerus.gh.axes” and then with a
> rotational
> > matrix to turn it 90° around y-axis. You gave me an example like
> this a few
> > emails before. So i think, it should be correct.)
> >
> > Second question is: I used a Fourier Driver to simulate an flexion
> 0° to
> > 90° and then back to 0°. The forces I got for the GH-Reaction are
a
> to
> > small. Why? I didn´t change anything but the driver. Does this
> driver need
> > more adjustment?
> >
> > Third question: Is there any possibility to use the InterpolDriver
> for the
> > flexion-motion mentioned above? The values of the data-set have to
> increase
> > monotonically. So I can´t use the values like this:
> {0,1,2,3,4,3,2,1,0} .
> >
> > Thanks a lot.
> >
> > Best regards,
> >
> > Alex
> >
> >
> >
> > Alexander Nolte
> >
> > Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
Str.
> 8,
> > 82418 Murnau am Staffelsee
> > Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> > Geschäftsführer Direktor Dr. Peter Schmidt
> >
> >
> > |---------±--------------------------->
> > | | “AnyBody Support”|
> > | | <support@anybodyt|
> > | | ech.com> |
> > | | |
> > | | |
> > | | Gesendet von: |
> > | | anyscript@yahoogr|
> > | | oups.com |
> > | | |
> > | | |
> > | | 10.04.2007 11:08 |
> > | | Bitte antworten |
> > | | an anyscript |
> > | | |
> > |---------±--------------------------->
> > >----------------------------------------------------------
> ----------------------------------------------------------|
> >
> |
> |
> > | An:
> anyscript@yahoogroups.com
> |
> > | Kopie: (Blindkopie: Alexander
> Nolte/V/BUKM/BGNET/DE)
> |
> > | Thema: [anyscript] Re: Shoulder
> modelling
> |
> > >----------------------------------------------------------
> ----------------------------------------------------------|
> >
> >
> >
> >
> > Hi Alexander
> >
> > Sorry about the delay…
> >
> > The error you get is a muscle wrapping error on the
> > pectoralis_major_thoracic_part_5 muscle, so it will have an
effetct
> > if this muscle was previously outcommented. The drawing stuff will
> > not affect the analysis in anyway.
> >
> > To resolve this problem please try to add more points in the
> > discretization of this particular muscle, this is done by
increasing
> > the StringMesh property of the muscle. Try adding ten more points
> for
> > example, it usually makes the problem more robust.
> >
> > I am not sure what you mean by the AnyDrawRefFrame. I will try to
> > explain, please ask again if this was not what you had in mind;-).
> > The AnyDrawRefFrame is just a visual representation of a
coordinate
> > system, so if you add this is a node it will dispaly the
cooridnate
> > system of the node. If it is on a segment it will display the
> segment
> > cooridnate system and so on. If you change a sRel or ARel of a
node
> > and there is a AnyDrawRefFrame inside the node this coordinate
> system
> > will move according to the changes of Arel and sRel. If the node
is
> > used for calculating forces any change made to aRel or srel will
> have
> > an effect on the results.
> >
> > You are right about the coordinate system of the GHReactions these
> > are in the globalref system. If yu would liek to have them in
> another
> > coordinate system you need to mlutiply the proper rotation matrix.
> >
> > Please just ask again if you have further questions
> >
> > Best regards
> > Søren
> >
> > — In anyscript@yahoogroups.com, alexander.nolte@ wrote:
> > >
> > >
> > >
> > >
> > >
> > > Hi Søren,
> > >
> > > I still have some problems with my shoulder-model. When I run a
> 45°
> > > abduction (I drive only the abductin in the gh-joint, the other
> > values are
> > > fixed.) with an elbowpronation of 38° and an elbowflexion with
2°,
> > I get
> > > this error:
> > >
> > > ERROR :
> > > Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
> > \BRep\Aalborg\Arm3D\Muscle.any(521)
> > > : pectoralis_major_thoracic_part_5 : Unexpected exception in
> > the
> > > library OOSol :
> > > OOSol exception : General factorization exception : Negative or
> > zero
> > > pivot
> > >
> > > Can you help me with that problem? Yesterday the simulation
worked
> > fine and
> > > I can´t remember I changed something like a variable or a
vector.
> > Or could
> > > there be any effect, when I outcomment some muscles or
outcomment
> or
> > > implement some draw-functions?
> > >
> > > When I use an AnyDrawRefFrame with an new sRel or ARel, will
only
> > the drawn
> > > Refframe move, or also the Refframe used for calculating the
> > forces? If the
> > > first case is correct (drawn Refframe will move), there would be
> no
> > change
> > > in the force-directions, right?
> > >
> > > In which coordinate system are the GHReactionforces measured? I
> > looked at
> > > the force-vector while running the simulation and compared it to
> the
> > > force-diagram and it seems that the forces are measured in the
> > global
> > > coordinate system, right?
> > >
> > > I hope, these are not too many questions;-). If it would be
easier
> > for you
> > > to give me some advices when you see the model, just tell me
and I
> > will
> > > upload it at the yahoogroup.
> > > Thanks for your help and Happy Easter.
> > >
> > > Best Regards,
> > >
> > >
> > > Alexander Nolte
> > >
> > > Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
> Str.
> > 8,
> > > 82418 Murnau am Staffelsee
> > > Eingetragener Verein, Amtsgericht München, Registernummer VR
4704
> > > Geschäftsführer Direktor Dr. Peter Schmidt
> > >
> >
> >
> >
> >
> >
> >
> > [Non-text portions of this message have been removed]
> >
>
>
>
>
>
>
> [Non-text portions of this message have been removed]
>

Hi Søren,

You´re suggestions are hitting the bullseye every time… Thanks a lot.
On the first look, the RefFrames seem quite correct right now. But the
forcescomponents are still not comparable to the Bergmann study. I keep
trying to improve it.
The BermannRotMat is a simple rotational matrix, so that the forcevector is
rotated around the y-axis. {0,0-1},{0,1,0},{1,0,0}
With the FourierDriver: Maybe I´ve downloaded and worked with an old
version of the driver demo. But the term in brackets is missing in the
description of the FourierDriver and I didn´t thought about it.

But the more I work with the model the more ideas I got what I could
simulate. So I´ve got another question because of an error. I would like to
simulate static positions (the driver velocity is 0 for every driver, I
choose a flexion of 45 or 60°). But the tendon length adjustment fails at
both static values at time step 0, as you can see.

Muscle Tendon Length Adjustment (Operation:
Main.CalibrationStudy.TendonLengthAdjustment):
0) Design variables have been updated.

  1. Load time positions have been re-established.
    Failed to resolve kinematic constraints (final kin. error = 5.604424E-006)
    Constraint no. 56 above error tolerance 0.000001, error = 0.000004. -
    constr. #3 in
    ‘Main.MyShoulder.HumanModel.Right.ShoulderArm.Jnt.FE.Constraints’
    Constraint no. 57 above error tolerance 0.000001, error = 0.000006. -
    constr. #4 in
    ‘Main.MyShoulder.HumanModel.Right.ShoulderArm.Jnt.FE.Constraints’
    ERROR(OBJ.MCH.KIN3) :
    Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6\ARep\Murnau\MyShou
    lder\MyShoulder.Main.any(74)
    : ‘CalibrationStudy’ : Kinematic analysis failed in time step 0

What could that be?

Best regards,

Alex

Alexander Nolte

Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher Str. 8,
82418 Murnau am Staffelsee
Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
Geschäftsführer Direktor Dr. Peter Schmidt

|---------±--------------------------->
| | “AnyBody Support”|
| | <support@anybodyt|
| | ech.com> |
| | |
| | |
| | Gesendet von: |
| | anyscript@yahoogr|
| | oups.com |
| | |
| | |
| | 23.04.2007 09:59 |
| | Bitte antworten |
| | an anyscript |
| | |
|---------±--------------------------->

>-------------------------------------------------------------------------------
-----------------------------------------------|
|
|
| An: anyscript@yahoogroups.com
|
| Kopie: (Blindkopie: Alexander Nolte/V/BUKM/BGNET/DE)
|
| Thema: Antwort: [anyscript] Re: Shoulder modelling
|

>-------------------------------------------------------------------------------
-----------------------------------------------|

Hi Alex

Sorry about the slow respond i have been traveling for some days.

I am unsure what the BergmannRotMat is, as i recall your problem you
want the forces measured in another coordinate system. I think you
should create a node on scapula which has the desired orientaion
according to Bergmann and then use this nodes Aexs property instead
of the scapula axes. Then the transformation can be done in one step.

About the Fourier driver: in the first version you have a factor of
0.5pi on the tird term in the second version you have this factor on
the sixth term of the exspansion, this is why it will have a much
higher frequecy. If you wrote {0,0,0.5
pi,0,0,0} instead it should
give you the same as in the first case.

The fundamental frequency do not change but each of the terms has it
own frequency f_j calculated based on the fundamental frequency by an
equation like this:

w_j=(1-j)2pi*freq

This can also be found in the refernece manual

Best regards
Søren, AnyBody Support

— In anyscript@yahoogroups.com, alexander.nolte@… wrote:
>
>
>
>
>
>
> Hi Søren,
>
> It´s me again.
> I checked out your suggestion with the AnyVec3 to control my
rotation of
> the forcevector. I inserted this control-function at the end of the
> GHReactions-file:
>
> AnyVec3 Control = {200,0,0};
>
> AnyVec3 Control1 =
>
Control*.Main.MyShoulder.HumanModel.Right.ShoulderArm.Seg.Humerus.gh.A
xes;
>
> AnyVec3 ControlRot = Control1BergmannRotMat;
>
> AnyDrawVector DrawControl = {
>
> AnyRefFrame &ref=…Seg.Humerus.gh;
>
> Vec
> =Main.DrawSettings.DrawSettingsSupport.Lin.ScaleFactor
.ControlRot;
>
> PointAway = Off;
> DrawCoord = Off;
>
> Line.RGB = Main.DrawSettings.DrawSettingsSupport.Lin.RGB;
> Line.Thickness =
> Main.DrawSettings.DrawSettingsSupport.Lin.Thickness;
> Line.End.Thickness =
> 2*Main.DrawSettings.DrawSettingsSupport.Lin.Thickness;
> Line.End.Length = 0.5
> Main.DrawSettings.DrawSettingsSupport.Lin.Thickness;
> };
>
> But the vector isn´t drawn correctly in x-direction of the gh-
Refframe. The
> vector is drawn in z-direction. It seems, that is rotated
approximately 90
> deg around the y-axis. So maybe the gh-Refframe is not correctly
drawn?
>
> The Fourier driver works much better now. The high peaks
dissappeared and
> the graph is smoother. Thanks for this advice.
> But I didn´t understand the operating mode of the Fourier driver
> completely, yet. I use the Sinus-type to drive only the flexion of
the
> GH-joint. Why does the frequency change, when I type in more A-
values, for
> example A = {{0,0,0},{0,0,pi/2},{0,0,0}}; to
> A={{0,0,0,0,0,0},{0,0,0,0,0,pi/2},{0,0,0,0,0,0}};? The movement
looks like
> he flexes the arm towards 90° and back, but three times more than
with the
> first A-matrix. The motion should not change, because there only
zeros in
> the matrix, except the last value, right?
>
> Thanks a lot,
>
> Best regards,
>
> Alex
>
>
> Alexander Nolte
>
> Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher Str.
8,
> 82418 Murnau am Staffelsee
> Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> Geschäftsführer Direktor Dr. Peter Schmidt
>
>
> |---------±--------------------------->
> | | “AnyBody Support”|
> | | <support@anybodyt|
> | | ech.com> |
> | | |
> | | |
> | | Gesendet von: |
> | | anyscript@yahoogr|
> | | oups.com |
> | | |
> | | |
> | | 18.04.2007 10:49 |
> | | Bitte antworten |
> | | an anyscript |
> | | |
> |---------±--------------------------->
> >----------------------------------------------------------
----------------------------------------------------------|
>
|
|
> | An:
anyscript@yahoogroups.com
|
> | Kopie: (Blindkopie: Alexander
Nolte/V/BUKM/BGNET/DE)
|
> | Thema: Antwort: [anyscript] Re: Shoulder
modelling
|
> >----------------------------------------------------------
----------------------------------------------------------|
>
>
>
>
> Hi Alex
>
> Yes this is correct, the Axes property measure the orientation wrt
to
> global for each time step.
>
> I am unsure about the rotations since i am not entirely sure how you
> want it to end up, but it sounds basically ok i think. Maybe you
> should do a small test and apply the transformations on a know force
> like AnyVec3 f={10,0,0} or similar, just to check if it works as
> intended.
>
> About the fourier driver did you remember to switch off the reaction
> in the driver, it may sound like it is providing the moment.
>
> You may use the interpolation driver for it, it is only the
> timeseries which has to be monotonically increasing, it can not go
> backwards in time. The Data values are free to choose, so something
> like this should work
>
> T={0,1,2,3,4,5,6}/6
Main.tEnd;
> Data={{0,30,60,90,60,30,0}};
>
> Best regards
> Søren, AnyBody Support
>
> — In anyscript@yahoogroups.com, alexander.nolte@ wrote:
> >
> >
> >
> >
> >
> >
> > Hi Søren,
> >
> > I´ve still some more questions…
> > The rotational matrix “Axes” of the gh-node of the humerus is
> calculated at
> > every step of the simulation, so that I get at every step the
> rotational
> > position of the gh-node-refframe relative to the globalrefframe?
> (Just to
> > make sure I didn´t make an error in reasoning. I multiplied the
> forcevector
> > in the GH-Joint with the “humerus.gh.axes” and then with a
> rotational
> > matrix to turn it 90° around y-axis. You gave me an example like
> this a few
> > emails before. So i think, it should be correct.)
> >
> > Second question is: I used a Fourier Driver to simulate an flexion
> 0° to
> > 90° and then back to 0°. The forces I got for the GH-Reaction are
a
> to
> > small. Why? I didn´t change anything but the driver. Does this
> driver need
> > more adjustment?
> >
> > Third question: Is there any possibility to use the InterpolDriver
> for the
> > flexion-motion mentioned above? The values of the data-set have to
> increase
> > monotonically. So I can´t use the values like this:
> {0,1,2,3,4,3,2,1,0} .
> >
> > Thanks a lot.
> >
> > Best regards,
> >
> > Alex
> >
> >
> >
> > Alexander Nolte
> >
> > Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
Str.
> 8,
> > 82418 Murnau am Staffelsee
> > Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> > Geschäftsführer Direktor Dr. Peter Schmidt
> >
> >
> > |---------±--------------------------->
> > | | “AnyBody Support”|
> > | | <support@anybodyt|
> > | | ech.com> |
> > | | |
> > | | |
> > | | Gesendet von: |
> > | | anyscript@yahoogr|
> > | | oups.com |
> > | | |
> > | | |
> > | | 10.04.2007 11:08 |
> > | | Bitte antworten |
> > | | an anyscript |
> > | | |
> > |---------±--------------------------->
> > >----------------------------------------------------------
> ----------------------------------------------------------|
> >
> |
> |
> > | An:
> anyscript@yahoogroups.com
> |
> > | Kopie: (Blindkopie: Alexander
> Nolte/V/BUKM/BGNET/DE)
> |
> > | Thema: [anyscript] Re: Shoulder
> modelling
> |
> > >----------------------------------------------------------
> ----------------------------------------------------------|
> >
> >
> >
> >
> > Hi Alexander
> >
> > Sorry about the delay…
> >
> > The error you get is a muscle wrapping error on the
> > pectoralis_major_thoracic_part_5 muscle, so it will have an
effetct
> > if this muscle was previously outcommented. The drawing stuff will
> > not affect the analysis in anyway.
> >
> > To resolve this problem please try to add more points in the
> > discretization of this particular muscle, this is done by
increasing
> > the StringMesh property of the muscle. Try adding ten more points
> for
> > example, it usually makes the problem more robust.
> >
> > I am not sure what you mean by the AnyDrawRefFrame. I will try to
> > explain, please ask again if this was not what you had in mind;-).
> > The AnyDrawRefFrame is just a visual representation of a
coordinate
> > system, so if you add this is a node it will dispaly the
cooridnate
> > system of the node. If it is on a segment it will display the
> segment
> > cooridnate system and so on. If you change a sRel or ARel of a
node
> > and there is a AnyDrawRefFrame inside the node this coordinate
> system
> > will move according to the changes of Arel and sRel. If the node
is
> > used for calculating forces any change made to aRel or srel will
> have
> > an effect on the results.
> >
> > You are right about the coordinate system of the GHReactions these
> > are in the globalref system. If yu would liek to have them in
> another
> > coordinate system you need to mlutiply the proper rotation matrix.
> >
> > Please just ask again if you have further questions
> >
> > Best regards
> > Søren
> >
> > — In anyscript@yahoogroups.com, alexander.nolte@ wrote:
> > >
> > >
> > >
> > >
> > >
> > > Hi Søren,
> > >
> > > I still have some problems with my shoulder-model. When I run a
> 45°
> > > abduction (I drive only the abductin in the gh-joint, the other
> > values are
> > > fixed.) with an elbowpronation of 38° and an elbowflexion with
2°,
> > I get
> > > this error:
> > >
> > > ERROR :
> > > Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
> > \BRep\Aalborg\Arm3D\Muscle.any(521)
> > > : pectoralis_major_thoracic_part_5 : Unexpected exception in
> > the
> > > library OOSol :
> > > OOSol exception : General factorization exception : Negative or
> > zero
> > > pivot
> > >
> > > Can you help me with that problem? Yesterday the simulation
worked
> > fine and
> > > I can´t remember I changed something like a variable or a
vector.
> > Or could
> > > there be any effect, when I outcomment some muscles or
outcomment
> or
> > > implement some draw-functions?
> > >
> > > When I use an AnyDrawRefFrame with an new sRel or ARel, will
only
> > the drawn
> > > Refframe move, or also the Refframe used for calculating the
> > forces? If the
> > > first case is correct (drawn Refframe will move), there would be
> no
> > change
> > > in the force-directions, right?
> > >
> > > In which coordinate system are the GHReactionforces measured? I
> > looked at
> > > the force-vector while running the simulation and compared it to
> the
> > > force-diagram and it seems that the forces are measured in the
> > global
> > > coordinate system, right?
> > >
> > > I hope, these are not too many questions;-). If it would be
easier
> > for you
> > > to give me some advices when you see the model, just tell me
and I
> > will
> > > upload it at the yahoogroup.
> > > Thanks for your help and Happy Easter.
> > >
> > > Best Regards,
> > >
> > >
> > > Alexander Nolte
> > >
> > > Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
> Str.
> > 8,
> > > 82418 Murnau am Staffelsee
> > > Eingetragener Verein, Amtsgericht München, Registernummer VR
4704
> > > Geschäftsführer Direktor Dr. Peter Schmidt
> > >
> >
> >
> >
> >
> >
> >
> > [Non-text portions of this message have been removed]
> >
>
>
>
>
>
>
> [Non-text portions of this message have been removed]
>

[Non-text portions of this message have been removed]

Hi Alex

I think you should try using the simple muscle model for this study,
i think it will give good results for this kind of slow motion or
static situation.

I am unsure why the calibration fails it seems to be a very small
error that it ends up with 5e-6, so it is very close to have solved
the kinematics. Did you have the calibration running for other
situations?

Remember to see the webcast tomorrow about the shoulder validation !

Best regards
Søren, AnyBody Support

— In anyscript@yahoogroups.com, alexander.nolte@… wrote:
>
>
>
>
>
>
> Hi Søren,
>
> You´re suggestions are hitting the bullseye every time… Thanks a
lot.
> On the first look, the RefFrames seem quite correct right now. But
the
> forcescomponents are still not comparable to the Bergmann study. I
keep
> trying to improve it.
> The BermannRotMat is a simple rotational matrix, so that the
forcevector is
> rotated around the y-axis. {0,0-1},{0,1,0},{1,0,0}
> With the FourierDriver: Maybe I´ve downloaded and worked with an old
> version of the driver demo. But the term in brackets is missing in
the
> description of the FourierDriver and I didn´t thought about it.
>
> But the more I work with the model the more ideas I got what I could
> simulate. So I´ve got another question because of an error. I would
like to
> simulate static positions (the driver velocity is 0 for every
driver, I
> choose a flexion of 45 or 60°). But the tendon length adjustment
fails at
> both static values at time step 0, as you can see.
>
> Muscle Tendon Length Adjustment (Operation:
> Main.CalibrationStudy.TendonLengthAdjustment):
> 0) Design variables have been updated.
> 1) Load time positions have been re-established.
> Failed to resolve kinematic constraints (final kin. error =
5.604424E-006)
> Constraint no. 56 above error tolerance 0.000001, error =
0.000004. -
> constr. #3 in
> ‘Main.MyShoulder.HumanModel.Right.ShoulderArm.Jnt.FE.Constraints’
> Constraint no. 57 above error tolerance 0.000001, error =
0.000006. -
> constr. #4 in
> ‘Main.MyShoulder.HumanModel.Right.ShoulderArm.Jnt.FE.Constraints’
> ERROR(OBJ.MCH.KIN3) :
> Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
\ARep\Murnau\MyShoulder\MyShoulder.Main.any(74)
> : ‘CalibrationStudy’ : Kinematic analysis failed in time step
0
>
> What could that be?
>
> Best regards,
>
> Alex
>
>
> Alexander Nolte
>
> Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher Str.
8,
> 82418 Murnau am Staffelsee
> Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> Geschäftsführer Direktor Dr. Peter Schmidt
>
>
> |---------±--------------------------->
> | | “AnyBody Support”|
> | | <support@anybodyt|
> | | ech.com> |
> | | |
> | | |
> | | Gesendet von: |
> | | anyscript@yahoogr|
> | | oups.com |
> | | |
> | | |
> | | 23.04.2007 09:59 |
> | | Bitte antworten |
> | | an anyscript |
> | | |
> |---------±--------------------------->
> >-----------------------------------------------------------------
-------------------------------------------------------------|
>
|
|
> | An:
anyscript@yahoogroups.com
|
> | Kopie: (Blindkopie: Alexander
Nolte/V/BUKM/BGNET/DE)
|
> | Thema: Antwort: [anyscript] Re: Shoulder
modelling
|
> >-----------------------------------------------------------------
-------------------------------------------------------------|
>
>
>
>
> Hi Alex
>
> Sorry about the slow respond i have been traveling for some days.
>
> I am unsure what the BergmannRotMat is, as i recall your problem you
> want the forces measured in another coordinate system. I think you
> should create a node on scapula which has the desired orientaion
> according to Bergmann and then use this nodes Aexs property instead
> of the scapula axes. Then the transformation can be done in one
step.
>
> About the Fourier driver: in the first version you have a factor of
> 0.5pi on the tird term in the second version you have this factor
on
> the sixth term of the exspansion, this is why it will have a much
> higher frequecy. If you wrote {0,0,0.5
pi,0,0,0} instead it should
> give you the same as in the first case.
>
> The fundamental frequency do not change but each of the terms has it
> own frequency f_j calculated based on the fundamental frequency by
an
> equation like this:
>
> w_j=(1-j)2pifreq
>
> This can also be found in the refernece manual
>
> Best regards
> Søren, AnyBody Support
>
> — In anyscript@yahoogroups.com, alexander.nolte@ wrote:
> >
> >
> >
> >
> >
> >
> > Hi Søren,
> >
> > It´s me again.
> > I checked out your suggestion with the AnyVec3 to control my
> rotation of
> > the forcevector. I inserted this control-function at the end of
the
> > GHReactions-file:
> >
> > AnyVec3 Control = {200,0,0};
> >
> > AnyVec3 Control1 =
> >
>
Control
.Main.MyShoulder.HumanModel.Right.ShoulderArm.Seg.Humerus.gh.A
> xes;
> >
> > AnyVec3 ControlRot = Control1BergmannRotMat;
> >
> > AnyDrawVector DrawControl = {
> >
> > AnyRefFrame &ref=…Seg.Humerus.gh;
> >
> > Vec
> >
=Main.DrawSettings.DrawSettingsSupport.Lin.ScaleFactor
.ControlRot;
> >
> > PointAway = Off;
> > DrawCoord = Off;
> >
> > Line.RGB = Main.DrawSettings.DrawSettingsSupport.Lin.RGB;
> > Line.Thickness =
> > Main.DrawSettings.DrawSettingsSupport.Lin.Thickness;
> > Line.End.Thickness =
> > 2*Main.DrawSettings.DrawSettingsSupport.Lin.Thickness;
> > Line.End.Length = 0.5
> > Main.DrawSettings.DrawSettingsSupport.Lin.Thickness;
> > };
> >
> > But the vector isn´t drawn correctly in x-direction of the gh-
> Refframe. The
> > vector is drawn in z-direction. It seems, that is rotated
> approximately 90
> > deg around the y-axis. So maybe the gh-Refframe is not correctly
> drawn?
> >
> > The Fourier driver works much better now. The high peaks
> dissappeared and
> > the graph is smoother. Thanks for this advice.
> > But I didn´t understand the operating mode of the Fourier driver
> > completely, yet. I use the Sinus-type to drive only the flexion of
> the
> > GH-joint. Why does the frequency change, when I type in more A-
> values, for
> > example A = {{0,0,0},{0,0,pi/2},{0,0,0}}; to
> > A={{0,0,0,0,0,0},{0,0,0,0,0,pi/2},{0,0,0,0,0,0}};? The movement
> looks like
> > he flexes the arm towards 90° and back, but three times more than
> with the
> > first A-matrix. The motion should not change, because there only
> zeros in
> > the matrix, except the last value, right?
> >
> > Thanks a lot,
> >
> > Best regards,
> >
> > Alex
> >
> >
> > Alexander Nolte
> >
> > Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
Str.
> 8,
> > 82418 Murnau am Staffelsee
> > Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> > Geschäftsführer Direktor Dr. Peter Schmidt
> >
> >
> > |---------±--------------------------->
> > | | “AnyBody Support”|
> > | | <support@anybodyt|
> > | | ech.com> |
> > | | |
> > | | |
> > | | Gesendet von: |
> > | | anyscript@yahoogr|
> > | | oups.com |
> > | | |
> > | | |
> > | | 18.04.2007 10:49 |
> > | | Bitte antworten |
> > | | an anyscript |
> > | | |
> > |---------±--------------------------->
> > >----------------------------------------------------------
> ----------------------------------------------------------|
> >
> |
> |
> > | An:
> anyscript@yahoogroups.com
> |
> > | Kopie: (Blindkopie: Alexander
> Nolte/V/BUKM/BGNET/DE)
> |
> > | Thema: Antwort: [anyscript] Re: Shoulder
> modelling
> |
> > >----------------------------------------------------------
> ----------------------------------------------------------|
> >
> >
> >
> >
> > Hi Alex
> >
> > Yes this is correct, the Axes property measure the orientation wrt
> to
> > global for each time step.
> >
> > I am unsure about the rotations since i am not entirely sure how
you
> > want it to end up, but it sounds basically ok i think. Maybe you
> > should do a small test and apply the transformations on a know
force
> > like AnyVec3 f={10,0,0} or similar, just to check if it works as
> > intended.
> >
> > About the fourier driver did you remember to switch off the
reaction
> > in the driver, it may sound like it is providing the moment.
> >
> > You may use the interpolation driver for it, it is only the
> > timeseries which has to be monotonically increasing, it can not go
> > backwards in time. The Data values are free to choose, so
something
> > like this should work
> >
> > T={0,1,2,3,4,5,6}/6
Main.tEnd;
> > Data={{0,30,60,90,60,30,0}};
> >
> > Best regards
> > Søren, AnyBody Support
> >
> > — In anyscript@yahoogroups.com, alexander.nolte@ wrote:
> > >
> > >
> > >
> > >
> > >
> > >
> > > Hi Søren,
> > >
> > > I´ve still some more questions…
> > > The rotational matrix “Axes” of the gh-node of the humerus is
> > calculated at
> > > every step of the simulation, so that I get at every step the
> > rotational
> > > position of the gh-node-refframe relative to the globalrefframe?
> > (Just to
> > > make sure I didn´t make an error in reasoning. I multiplied the
> > forcevector
> > > in the GH-Joint with the “humerus.gh.axes” and then with a
> > rotational
> > > matrix to turn it 90° around y-axis. You gave me an example like
> > this a few
> > > emails before. So i think, it should be correct.)
> > >
> > > Second question is: I used a Fourier Driver to simulate an
flexion
> > 0° to
> > > 90° and then back to 0°. The forces I got for the GH-Reaction
are
> a
> > to
> > > small. Why? I didn´t change anything but the driver. Does this
> > driver need
> > > more adjustment?
> > >
> > > Third question: Is there any possibility to use the
InterpolDriver
> > for the
> > > flexion-motion mentioned above? The values of the data-set have
to
> > increase
> > > monotonically. So I can´t use the values like this:
> > {0,1,2,3,4,3,2,1,0} .
> > >
> > > Thanks a lot.
> > >
> > > Best regards,
> > >
> > > Alex
> > >
> > >
> > >
> > > Alexander Nolte
> > >
> > > Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
> Str.
> > 8,
> > > 82418 Murnau am Staffelsee
> > > Eingetragener Verein, Amtsgericht München, Registernummer VR
4704
> > > Geschäftsführer Direktor Dr. Peter Schmidt
> > >
> > >
> > > |---------±--------------------------->
> > > | | “AnyBody Support”|
> > > | | <support@anybodyt|
> > > | | ech.com> |
> > > | | |
> > > | | |
> > > | | Gesendet von: |
> > > | | anyscript@yahoogr|
> > > | | oups.com |
> > > | | |
> > > | | |
> > > | | 10.04.2007 11:08 |
> > > | | Bitte antworten |
> > > | | an anyscript |
> > > | | |
> > > |---------±--------------------------->
> > > >----------------------------------------------------------
> > ----------------------------------------------------------|
> > >
> > |
> > |
> > > | An:
> > anyscript@yahoogroups.com
> > |
> > > | Kopie: (Blindkopie: Alexander
> > Nolte/V/BUKM/BGNET/DE)
> > |
> > > | Thema: [anyscript] Re: Shoulder
> > modelling
> > |
> > > >----------------------------------------------------------
> > ----------------------------------------------------------|
> > >
> > >
> > >
> > >
> > > Hi Alexander
> > >
> > > Sorry about the delay…
> > >
> > > The error you get is a muscle wrapping error on the
> > > pectoralis_major_thoracic_part_5 muscle, so it will have an
> effetct
> > > if this muscle was previously outcommented. The drawing stuff
will
> > > not affect the analysis in anyway.
> > >
> > > To resolve this problem please try to add more points in the
> > > discretization of this particular muscle, this is done by
> increasing
> > > the StringMesh property of the muscle. Try adding ten more
points
> > for
> > > example, it usually makes the problem more robust.
> > >
> > > I am not sure what you mean by the AnyDrawRefFrame. I will try
to
> > > explain, please ask again if this was not what you had in mind;-
).
> > > The AnyDrawRefFrame is just a visual representation of a
> coordinate
> > > system, so if you add this is a node it will dispaly the
> cooridnate
> > > system of the node. If it is on a segment it will display the
> > segment
> > > cooridnate system and so on. If you change a sRel or ARel of a
> node
> > > and there is a AnyDrawRefFrame inside the node this coordinate
> > system
> > > will move according to the changes of Arel and sRel. If the node
> is
> > > used for calculating forces any change made to aRel or srel will
> > have
> > > an effect on the results.
> > >
> > > You are right about the coordinate system of the GHReactions
these
> > > are in the globalref system. If yu would liek to have them in
> > another
> > > coordinate system you need to mlutiply the proper rotation
matrix.
> > >
> > > Please just ask again if you have further questions
> > >
> > > Best regards
> > > Søren
> > >
> > > — In anyscript@yahoogroups.com, alexander.nolte@ wrote:
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Hi Søren,
> > > >
> > > > I still have some problems with my shoulder-model. When I run
a
> > 45°
> > > > abduction (I drive only the abductin in the gh-joint, the
other
> > > values are
> > > > fixed.) with an elbowpronation of 38° and an elbowflexion with
> 2°,
> > > I get
> > > > this error:
> > > >
> > > > ERROR :
> > > > Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
> > > \BRep\Aalborg\Arm3D\Muscle.any(521)
> > > > : pectoralis_major_thoracic_part_5 : Unexpected exception in
> > > the
> > > > library OOSol :
> > > > OOSol exception : General factorization exception : Negative
or
> > > zero
> > > > pivot
> > > >
> > > > Can you help me with that problem? Yesterday the simulation
> worked
> > > fine and
> > > > I can´t remember I changed something like a variable or a
> vector.
> > > Or could
> > > > there be any effect, when I outcomment some muscles or
> outcomment
> > or
> > > > implement some draw-functions?
> > > >
> > > > When I use an AnyDrawRefFrame with an new sRel or ARel, will
> only
> > > the drawn
> > > > Refframe move, or also the Refframe used for calculating the
> > > forces? If the
> > > > first case is correct (drawn Refframe will move), there would
be
> > no
> > > change
> > > > in the force-directions, right?
> > > >
> > > > In which coordinate system are the GHReactionforces measured?
I
> > > looked at
> > > > the force-vector while running the simulation and compared it
to
> > the
> > > > force-diagram and it seems that the forces are measured in the
> > > global
> > > > coordinate system, right?
> > > >
> > > > I hope, these are not too many questions;-). If it would be
> easier
> > > for you
> > > > to give me some advices when you see the model, just tell me
> and I
> > > will
> > > > upload it at the yahoogroup.
> > > > Thanks for your help and Happy Easter.
> > > >
> > > > Best Regards,
> > > >
> > > >
> > > > Alexander Nolte
> > > >
> > > > Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
> > Str.
> > > 8,
> > > > 82418 Murnau am Staffelsee
> > > > Eingetragener Verein, Amtsgericht München, Registernummer VR
> 4704
> > > > Geschäftsführer Direktor Dr. Peter Schmidt
> > > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > [Non-text portions of this message have been removed]
> > >
> >
> >
> >
> >
> >
> >
> > [Non-text portions of this message have been removed]
> >
>
>
>
>
>
>
> [Non-text portions of this message have been removed]
>

Hi Søren,

yes, I had the calibration running for dynamic simulations. Without any
problems.

I´m looking forward to the webcast tonight. I hope some of my questions can
be answered.

If it would be possible, I would appreciate if you could have a look at my
model. I´m unsure where my mistake is.

I will upload it tomorrow or on Saturday with a detailed
problemdiscription. Depends on how big my problemdiscription still is,
after the webcast…:wink:

Best regards,

Alex

Alexander Nolte

Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher Str. 8,
82418 Murnau am Staffelsee
Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
Geschäftsführer Direktor Dr. Peter Schmidt

|---------±--------------------------->
| | “AnyBody Support”|
| | <support@anybodyt|
| | ech.com> |
| | |
| | |
| | Gesendet von: |
| | anyscript@yahoogr|
| | oups.com |
| | |
| | |
| | 25.04.2007 08:50 |
| | Bitte antworten |
| | an anyscript |
| | |
|---------±--------------------------->

>-------------------------------------------------------------------------------
-----------------------------------------------|
|
|
| An: anyscript@yahoogroups.com
|
| Kopie: (Blindkopie: Alexander Nolte/V/BUKM/BGNET/DE)
|
| Thema: Antwort: [anyscript] Re: Shoulder modelling
|

>-------------------------------------------------------------------------------
-----------------------------------------------|

Hi Alex

I think you should try using the simple muscle model for this study,
i think it will give good results for this kind of slow motion or
static situation.

I am unsure why the calibration fails it seems to be a very small
error that it ends up with 5e-6, so it is very close to have solved
the kinematics. Did you have the calibration running for other
situations?

Remember to see the webcast tomorrow about the shoulder validation !

Best regards
Søren, AnyBody Support

— In anyscript@yahoogroups.com, alexander.nolte@… wrote:
>
>
>
>
>
>
> Hi Søren,
>
> You´re suggestions are hitting the bullseye every time… Thanks a
lot.
> On the first look, the RefFrames seem quite correct right now. But
the
> forcescomponents are still not comparable to the Bergmann study. I
keep
> trying to improve it.
> The BermannRotMat is a simple rotational matrix, so that the
forcevector is
> rotated around the y-axis. {0,0-1},{0,1,0},{1,0,0}
> With the FourierDriver: Maybe I´ve downloaded and worked with an old
> version of the driver demo. But the term in brackets is missing in
the
> description of the FourierDriver and I didn´t thought about it.
>
> But the more I work with the model the more ideas I got what I could
> simulate. So I´ve got another question because of an error. I would
like to
> simulate static positions (the driver velocity is 0 for every
driver, I
> choose a flexion of 45 or 60°). But the tendon length adjustment
fails at
> both static values at time step 0, as you can see.
>
> Muscle Tendon Length Adjustment (Operation:
> Main.CalibrationStudy.TendonLengthAdjustment):
> 0) Design variables have been updated.
> 1) Load time positions have been re-established.
> Failed to resolve kinematic constraints (final kin. error =
5.604424E-006)
> Constraint no. 56 above error tolerance 0.000001, error =
0.000004. -
> constr. #3 in
> ‘Main.MyShoulder.HumanModel.Right.ShoulderArm.Jnt.FE.Constraints’
> Constraint no. 57 above error tolerance 0.000001, error =
0.000006. -
> constr. #4 in
> ‘Main.MyShoulder.HumanModel.Right.ShoulderArm.Jnt.FE.Constraints’
> ERROR(OBJ.MCH.KIN3) :
> Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
\ARep\Murnau\MyShoulder\MyShoulder.Main.any(74)
> : ‘CalibrationStudy’ : Kinematic analysis failed in time step
0
>
> What could that be?
>
> Best regards,
>
> Alex
>
>
> Alexander Nolte
>
> Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher Str.
8,
> 82418 Murnau am Staffelsee
> Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> Geschäftsführer Direktor Dr. Peter Schmidt
>
>
> |---------±--------------------------->
> | | “AnyBody Support”|
> | | <support@anybodyt|
> | | ech.com> |
> | | |
> | | |
> | | Gesendet von: |
> | | anyscript@yahoogr|
> | | oups.com |
> | | |
> | | |
> | | 23.04.2007 09:59 |
> | | Bitte antworten |
> | | an anyscript |
> | | |
> |---------±--------------------------->
> >----------------------------------------------------------
----------------------------------------------------------|
>
|
|
> | An:
anyscript@yahoogroups.com
|
> | Kopie: (Blindkopie: Alexander
Nolte/V/BUKM/BGNET/DE)
|
> | Thema: Antwort: [anyscript] Re: Shoulder
modelling
|
> >----------------------------------------------------------
----------------------------------------------------------|
>
>
>
>
> Hi Alex
>
> Sorry about the slow respond i have been traveling for some days.
>
> I am unsure what the BergmannRotMat is, as i recall your problem you
> want the forces measured in another coordinate system. I think you
> should create a node on scapula which has the desired orientaion
> according to Bergmann and then use this nodes Aexs property instead
> of the scapula axes. Then the transformation can be done in one
step.
>
> About the Fourier driver: in the first version you have a factor of
> 0.5pi on the tird term in the second version you have this factor
on
> the sixth term of the exspansion, this is why it will have a much
> higher frequecy. If you wrote {0,0,0.5
pi,0,0,0} instead it should
> give you the same as in the first case.
>
> The fundamental frequency do not change but each of the terms has it
> own frequency f_j calculated based on the fundamental frequency by
an
> equation like this:
>
> w_j=(1-j)2pifreq
>
> This can also be found in the refernece manual
>
> Best regards
> Søren, AnyBody Support
>
> — In anyscript@yahoogroups.com, alexander.nolte@ wrote:
> >
> >
> >
> >
> >
> >
> > Hi Søren,
> >
> > It´s me again.
> > I checked out your suggestion with the AnyVec3 to control my
> rotation of
> > the forcevector. I inserted this control-function at the end of
the
> > GHReactions-file:
> >
> > AnyVec3 Control = {200,0,0};
> >
> > AnyVec3 Control1 =
> >
>
Control
.Main.MyShoulder.HumanModel.Right.ShoulderArm.Seg.Humerus.gh.A
> xes;
> >
> > AnyVec3 ControlRot = Control1BergmannRotMat;
> >
> > AnyDrawVector DrawControl = {
> >
> > AnyRefFrame &ref=…Seg.Humerus.gh;
> >
> > Vec
> >
=Main.DrawSettings.DrawSettingsSupport.Lin.ScaleFactor
.ControlRot;
> >
> > PointAway = Off;
> > DrawCoord = Off;
> >
> > Line.RGB = Main.DrawSettings.DrawSettingsSupport.Lin.RGB;
> > Line.Thickness =
> > Main.DrawSettings.DrawSettingsSupport.Lin.Thickness;
> > Line.End.Thickness =
> > 2*Main.DrawSettings.DrawSettingsSupport.Lin.Thickness;
> > Line.End.Length = 0.5
> > Main.DrawSettings.DrawSettingsSupport.Lin.Thickness;
> > };
> >
> > But the vector isn´t drawn correctly in x-direction of the gh-
> Refframe. The
> > vector is drawn in z-direction. It seems, that is rotated
> approximately 90
> > deg around the y-axis. So maybe the gh-Refframe is not correctly
> drawn?
> >
> > The Fourier driver works much better now. The high peaks
> dissappeared and
> > the graph is smoother. Thanks for this advice.
> > But I didn´t understand the operating mode of the Fourier driver
> > completely, yet. I use the Sinus-type to drive only the flexion of
> the
> > GH-joint. Why does the frequency change, when I type in more A-
> values, for
> > example A = {{0,0,0},{0,0,pi/2},{0,0,0}}; to
> > A={{0,0,0,0,0,0},{0,0,0,0,0,pi/2},{0,0,0,0,0,0}};? The movement
> looks like
> > he flexes the arm towards 90° and back, but three times more than
> with the
> > first A-matrix. The motion should not change, because there only
> zeros in
> > the matrix, except the last value, right?
> >
> > Thanks a lot,
> >
> > Best regards,
> >
> > Alex
> >
> >
> > Alexander Nolte
> >
> > Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
Str.
> 8,
> > 82418 Murnau am Staffelsee
> > Eingetragener Verein, Amtsgericht München, Registernummer VR 4704
> > Geschäftsführer Direktor Dr. Peter Schmidt
> >
> >
> > |---------±--------------------------->
> > | | “AnyBody Support”|
> > | | <support@anybodyt|
> > | | ech.com> |
> > | | |
> > | | |
> > | | Gesendet von: |
> > | | anyscript@yahoogr|
> > | | oups.com |
> > | | |
> > | | |
> > | | 18.04.2007 10:49 |
> > | | Bitte antworten |
> > | | an anyscript |
> > | | |
> > |---------±--------------------------->
> > >----------------------------------------------------------
> ----------------------------------------------------------|
> >
> |
> |
> > | An:
> anyscript@yahoogroups.com
> |
> > | Kopie: (Blindkopie: Alexander
> Nolte/V/BUKM/BGNET/DE)
> |
> > | Thema: Antwort: [anyscript] Re: Shoulder
> modelling
> |
> > >----------------------------------------------------------
> ----------------------------------------------------------|
> >
> >
> >
> >
> > Hi Alex
> >
> > Yes this is correct, the Axes property measure the orientation wrt
> to
> > global for each time step.
> >
> > I am unsure about the rotations since i am not entirely sure how
you
> > want it to end up, but it sounds basically ok i think. Maybe you
> > should do a small test and apply the transformations on a know
force
> > like AnyVec3 f={10,0,0} or similar, just to check if it works as
> > intended.
> >
> > About the fourier driver did you remember to switch off the
reaction
> > in the driver, it may sound like it is providing the moment.
> >
> > You may use the interpolation driver for it, it is only the
> > timeseries which has to be monotonically increasing, it can not go
> > backwards in time. The Data values are free to choose, so
something
> > like this should work
> >
> > T={0,1,2,3,4,5,6}/6
Main.tEnd;
> > Data={{0,30,60,90,60,30,0}};
> >
> > Best regards
> > Søren, AnyBody Support
> >
> > — In anyscript@yahoogroups.com, alexander.nolte@ wrote:
> > >
> > >
> > >
> > >
> > >
> > >
> > > Hi Søren,
> > >
> > > I´ve still some more questions…
> > > The rotational matrix “Axes” of the gh-node of the humerus is
> > calculated at
> > > every step of the simulation, so that I get at every step the
> > rotational
> > > position of the gh-node-refframe relative to the globalrefframe?
> > (Just to
> > > make sure I didn´t make an error in reasoning. I multiplied the
> > forcevector
> > > in the GH-Joint with the “humerus.gh.axes” and then with a
> > rotational
> > > matrix to turn it 90° around y-axis. You gave me an example like
> > this a few
> > > emails before. So i think, it should be correct.)
> > >
> > > Second question is: I used a Fourier Driver to simulate an
flexion
> > 0° to
> > > 90° and then back to 0°. The forces I got for the GH-Reaction
are
> a
> > to
> > > small. Why? I didn´t change anything but the driver. Does this
> > driver need
> > > more adjustment?
> > >
> > > Third question: Is there any possibility to use the
InterpolDriver
> > for the
> > > flexion-motion mentioned above? The values of the data-set have
to
> > increase
> > > monotonically. So I can´t use the values like this:
> > {0,1,2,3,4,3,2,1,0} .
> > >
> > > Thanks a lot.
> > >
> > > Best regards,
> > >
> > > Alex
> > >
> > >
> > >
> > > Alexander Nolte
> > >
> > > Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
> Str.
> > 8,
> > > 82418 Murnau am Staffelsee
> > > Eingetragener Verein, Amtsgericht München, Registernummer VR
4704
> > > Geschäftsführer Direktor Dr. Peter Schmidt
> > >
> > >
> > > |---------±--------------------------->
> > > | | “AnyBody Support”|
> > > | | <support@anybodyt|
> > > | | ech.com> |
> > > | | |
> > > | | |
> > > | | Gesendet von: |
> > > | | anyscript@yahoogr|
> > > | | oups.com |
> > > | | |
> > > | | |
> > > | | 10.04.2007 11:08 |
> > > | | Bitte antworten |
> > > | | an anyscript |
> > > | | |
> > > |---------±--------------------------->
> > > >----------------------------------------------------------
> > ----------------------------------------------------------|
> > >
> > |
> > |
> > > | An:
> > anyscript@yahoogroups.com
> > |
> > > | Kopie: (Blindkopie: Alexander
> > Nolte/V/BUKM/BGNET/DE)
> > |
> > > | Thema: [anyscript] Re: Shoulder
> > modelling
> > |
> > > >----------------------------------------------------------
> > ----------------------------------------------------------|
> > >
> > >
> > >
> > >
> > > Hi Alexander
> > >
> > > Sorry about the delay…
> > >
> > > The error you get is a muscle wrapping error on the
> > > pectoralis_major_thoracic_part_5 muscle, so it will have an
> effetct
> > > if this muscle was previously outcommented. The drawing stuff
will
> > > not affect the analysis in anyway.
> > >
> > > To resolve this problem please try to add more points in the
> > > discretization of this particular muscle, this is done by
> increasing
> > > the StringMesh property of the muscle. Try adding ten more
points
> > for
> > > example, it usually makes the problem more robust.
> > >
> > > I am not sure what you mean by the AnyDrawRefFrame. I will try
to
> > > explain, please ask again if this was not what you had in mind;-
).
> > > The AnyDrawRefFrame is just a visual representation of a
> coordinate
> > > system, so if you add this is a node it will dispaly the
> cooridnate
> > > system of the node. If it is on a segment it will display the
> > segment
> > > cooridnate system and so on. If you change a sRel or ARel of a
> node
> > > and there is a AnyDrawRefFrame inside the node this coordinate
> > system
> > > will move according to the changes of Arel and sRel. If the node
> is
> > > used for calculating forces any change made to aRel or srel will
> > have
> > > an effect on the results.
> > >
> > > You are right about the coordinate system of the GHReactions
these
> > > are in the globalref system. If yu would liek to have them in
> > another
> > > coordinate system you need to mlutiply the proper rotation
matrix.
> > >
> > > Please just ask again if you have further questions
> > >
> > > Best regards
> > > Søren
> > >
> > > — In anyscript@yahoogroups.com, alexander.nolte@ wrote:
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Hi Søren,
> > > >
> > > > I still have some problems with my shoulder-model. When I run
a
> > 45°
> > > > abduction (I drive only the abductin in the gh-joint, the
other
> > > values are
> > > > fixed.) with an elbowpronation of 38° and an elbowflexion with
> 2°,
> > > I get
> > > > this error:
> > > >
> > > > ERROR :
> > > > Q:\Biomechanik\Projekte\018_AnyBody\Repository.6\Repository.6
> > > \BRep\Aalborg\Arm3D\Muscle.any(521)
> > > > : pectoralis_major_thoracic_part_5 : Unexpected exception in
> > > the
> > > > library OOSol :
> > > > OOSol exception : General factorization exception : Negative
or
> > > zero
> > > > pivot
> > > >
> > > > Can you help me with that problem? Yesterday the simulation
> worked
> > > fine and
> > > > I can´t remember I changed something like a variable or a
> vector.
> > > Or could
> > > > there be any effect, when I outcomment some muscles or
> outcomment
> > or
> > > > implement some draw-functions?
> > > >
> > > > When I use an AnyDrawRefFrame with an new sRel or ARel, will
> only
> > > the drawn
> > > > Refframe move, or also the Refframe used for calculating the
> > > forces? If the
> > > > first case is correct (drawn Refframe will move), there would
be
> > no
> > > change
> > > > in the force-directions, right?
> > > >
> > > > In which coordinate system are the GHReactionforces measured?
I
> > > looked at
> > > > the force-vector while running the simulation and compared it
to
> > the
> > > > force-diagram and it seems that the forces are measured in the
> > > global
> > > > coordinate system, right?
> > > >
> > > > I hope, these are not too many questions;-). If it would be
> easier
> > > for you
> > > > to give me some advices when you see the model, just tell me
> and I
> > > will
> > > > upload it at the yahoogroup.
> > > > Thanks for your help and Happy Easter.
> > > >
> > > > Best Regards,
> > > >
> > > >
> > > > Alexander Nolte
> > > >
> > > > Berufsgenossenschaftliche Unfallklinik Murnau, Prof. Küntscher
> > Str.
> > > 8,
> > > > 82418 Murnau am Staffelsee
> > > > Eingetragener Verein, Amtsgericht München, Registernummer VR
> 4704
> > > > Geschäftsführer Direktor Dr. Peter Schmidt
> > > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > [Non-text portions of this message have been removed]
> > >
> >
> >
> >
> >
> >
> >
> > [Non-text portions of this message have been removed]
> >
>
>
>
>
>
>
> [Non-text portions of this message have been removed]
>

[Non-text portions of this message have been removed]