Muscles problems

Hi

Can this request supercede my previous one with regard to the
rotational axis of external/internal rotation with I think I’ve
solved.

My model is now kinematically operational in the absence of muscles,
however when simple constant force muscles are introduced the
following message is generated:

ERROR(OBJ1) : C:\scratch\Repository.6\BRep\Aalborg\Arm3D\Muscle.any
(584) : ‘pectoralis_major_clavicular_part_4.SPLine’ : Number of
allowed iterations for contact solution has been exceeded in
Main.Model.HumanModel.Right.ShoulderArm.Mus.pectoralis_major_clavicula
r_part_4.SPLine

(The same error is generated for an InverseDynamicsAnalysis)

I have upload my repository to shippen_service.zip (the low-detail
bones are due to reducing the size of the file so it can be uploded
(what is the maximum size permitted?)).

All assistance, as ever, appreciated.

Thanks

James

PS I assume temporal ground reactions can be modelled using a General
muscle as per Tutorial page 143?

James and others,

This error message is related to the errors others have seen
mentioning the OOSol library. They are all connected with muscles
wrapping over and sliding on surfaces. The full body model probably
has more than 200 such muscles.

The muscles are discretized into a sequence of nodes, and the system
is trying to find the placement of these points that minimizes the
distance from origin to insertion without penetrating any of the
surfaces that the muscle must wrap.

Lots can go wrong with them, but there are mainly two types of
reasons:

  1. If the discretization is too crude then the surface may penetrate
    between two nodes.

  2. The muscle slides on the wrapping surfaces with the movement and
    some postures may cause the muscle to simply slide off the surface.

Both of these conditions may or may not cause problems for the
algorithm.

Ideally, every time it happens, the model should be scrutinized and
the cause of the problem should be identified and corrected. That
causes the models’ robustness to improve with every new release.
Please notice that the model library is in the public domain because
we are hoping you will help us with this monumental task.

It is a good idea to do the muscle modeling tutorial. The part about
wrapping muscles is here: http://www.anybodytech.com/508.0.html

James, we’ll take a look at your model and get back to you as soon
as we possible. In the meantime, please have a look at the
definition of the muscle causing the error. Try changing the number
of nodes on the muscle by the StringMesh value and check, whether
the muscle may be sliding off its wrapping surface.

Best regards,
John

— In anyscript@yahoogroups.com, “jamesshippen” <jamesshippen@…>
wrote:
>
> Hi
>
> Can this request supercede my previous one with regard to the
> rotational axis of external/internal rotation with I think I’ve
> solved.
>
> My model is now kinematically operational in the absence of
muscles,
> however when simple constant force muscles are introduced the
> following message is generated:
>
> ERROR(OBJ1) : C:\scratch\Repository.6
\BRep\Aalborg\Arm3D\Muscle.any
> (584) : ‘pectoralis_major_clavicular_part_4.SPLine’ : Number
of
> allowed iterations for contact solution has been exceeded in
>
Main.Model.HumanModel.Right.ShoulderArm.Mus.pectoralis_major_clavicul
a
> r_part_4.SPLine
>
> (The same error is generated for an InverseDynamicsAnalysis)
>
> I have upload my repository to shippen_service.zip (the low-detail
> bones are due to reducing the size of the file so it can be
uploded
> (what is the maximum size permitted?)).
>
> All assistance, as ever, appreciated.
>
> Thanks
>
> James
>
> PS I assume temporal ground reactions can be modelled using a
General
> muscle as per Tutorial page 143?
>

Hi

Many thanks for your reply. I’ll take a look at the offending muscle
and report back.

James

— In anyscript@yahoogroups.com, “AnyBody Support” <support@…>
wrote:
>
> James and others,
>
> This error message is related to the errors others have seen
> mentioning the OOSol library. They are all connected with muscles
> wrapping over and sliding on surfaces. The full body model probably
> has more than 200 such muscles.
>
> The muscles are discretized into a sequence of nodes, and the
system
> is trying to find the placement of these points that minimizes the
> distance from origin to insertion without penetrating any of the
> surfaces that the muscle must wrap.
>
> Lots can go wrong with them, but there are mainly two types of
> reasons:
>
> 1. If the discretization is too crude then the surface may
penetrate
> between two nodes.
>
> 2. The muscle slides on the wrapping surfaces with the movement and
> some postures may cause the muscle to simply slide off the surface.
>
> Both of these conditions may or may not cause problems for the
> algorithm.
>
> Ideally, every time it happens, the model should be scrutinized and
> the cause of the problem should be identified and corrected. That
> causes the models’ robustness to improve with every new release.
> Please notice that the model library is in the public domain
because
> we are hoping you will help us with this monumental task.
>
> It is a good idea to do the muscle modeling tutorial. The part
about
> wrapping muscles is here: http://www.anybodytech.com/508.0.html
>
> James, we’ll take a look at your model and get back to you as soon
> as we possible. In the meantime, please have a look at the
> definition of the muscle causing the error. Try changing the number
> of nodes on the muscle by the StringMesh value and check, whether
> the muscle may be sliding off its wrapping surface.
>
> Best regards,
> John
>
> — In anyscript@yahoogroups.com, “jamesshippen” <jamesshippen@>
> wrote:
> >
> > Hi
> >
> > Can this request supercede my previous one with regard to the
> > rotational axis of external/internal rotation with I think I’ve
> > solved.
> >
> > My model is now kinematically operational in the absence of
> muscles,
> > however when simple constant force muscles are introduced the
> > following message is generated:
> >
> > ERROR(OBJ1) : C:\scratch\Repository.6
> \BRep\Aalborg\Arm3D\Muscle.any
> > (584) : ‘pectoralis_major_clavicular_part_4.SPLine’ : Number
> of
> > allowed iterations for contact solution has been exceeded in
> >
>
Main.Model.HumanModel.Right.ShoulderArm.Mus.pectoralis_major_clavicul
> a
> > r_part_4.SPLine
> >
> > (The same error is generated for an InverseDynamicsAnalysis)
> >
> > I have upload my repository to shippen_service.zip (the low-
detail
> > bones are due to reducing the size of the file so it can be
> uploded
> > (what is the maximum size permitted?)).
> >
> > All assistance, as ever, appreciated.
> >
> > Thanks
> >
> > James
> >
> > PS I assume temporal ground reactions can be modelled using a
> General
> > muscle as per Tutorial page 143?
> >
>

James,

I really did not have time today, but I had a brief look at your
model, and it is so compelling that I could not resist. It is a
volleyball serve, right? I am very impressed that you have been able
to drive the kinematics of the full body model to such a level of
detail with your short experience with the system.

I have uploaded a version that works – sort of. You can find it as
repository.6.zip in the files section. To everybody else: Grab the
model and have a look. It is really cool.

Here’s what I did:

Most of the problems could be fixed by increasing the StringMesh
value of the offending muscles. The downside to this is that the
more points you have the more computation time.

A couple of muscles caused more problems - particularly the several
branches of teres minor. They were formerly wrapping only on the
humeral column, but now they also have the humeral head as a
wrapping surface. The side effect of this is that its origin point
is actually placed a bit under the surface of the humeral head, so
you will now get warnings about surface penetration until somebody
gets time to correct the origin point. Perhaps you will be able to
do that? If you do, please feed us back a modified model for the
repository.

Another problem was the iliopsoas muscle. It seems to have a
tendency to fall off the end of its wrapping cylinder. The problem
is fixed by rounding off the shape of the cylinder and using more
points, but this may not be the best solution anatomically.

I cannot guarantee that the model still works if you change the
movement, use more time steps or scale the size of the model, but at
least this is a start. I presume that you are aiming to do an
inverse dynamics solution. In that case, you will run into new
challenges in the following areas:

  • changing boundary conditions between then floor and the feet
  • balance
  • smoothness of accelerations.

Let us take those subjects up as you go along.

Good luck!
John

— In anyscript@yahoogroups.com, “jamesshippen” <jamesshippen@…>
wrote:
>
> Hi
>
> Many thanks for your reply. I’ll take a look at the offending
muscle
> and report back.
>
> James
>

Many thanks for your help with the tennis (I have not yet articulated
the wrists nor inserted the raquet) service. I will make the
modifications you suggest and investigate the other issues you
raise. Then, yes, the next step will be inverse dynamics. I was
planning on using AnyGeneralMuscle for the ground reaction force?

I acknowledge, and agree with, your comments in your previous email
with regards to the collective responsibility of the AnyBody user
base for the development of the model.

James

— In anyscript@yahoogroups.com, “AnyBody Support” <support@…>
wrote:
>
> James,
>
> I really did not have time today, but I had a brief look at your
> model, and it is so compelling that I could not resist. It is a
> volleyball serve, right? I am very impressed that you have been
able
> to drive the kinematics of the full body model to such a level of
> detail with your short experience with the system.
>
> I have uploaded a version that works – sort of. You can find it as
> repository.6.zip in the files section. To everybody else: Grab the
> model and have a look. It is really cool.
>
> Here’s what I did:
>
> Most of the problems could be fixed by increasing the StringMesh
> value of the offending muscles. The downside to this is that the
> more points you have the more computation time.
>
> A couple of muscles caused more problems - particularly the several
> branches of teres minor. They were formerly wrapping only on the
> humeral column, but now they also have the humeral head as a
> wrapping surface. The side effect of this is that its origin point
> is actually placed a bit under the surface of the humeral head, so
> you will now get warnings about surface penetration until somebody
> gets time to correct the origin point. Perhaps you will be able to
> do that? If you do, please feed us back a modified model for the
> repository.
>
> Another problem was the iliopsoas muscle. It seems to have a
> tendency to fall off the end of its wrapping cylinder. The problem
> is fixed by rounding off the shape of the cylinder and using more
> points, but this may not be the best solution anatomically.
>
> I cannot guarantee that the model still works if you change the
> movement, use more time steps or scale the size of the model, but
at
> least this is a start. I presume that you are aiming to do an
> inverse dynamics solution. In that case, you will run into new
> challenges in the following areas:
> - changing boundary conditions between then floor and the feet
> - balance
> - smoothness of accelerations.
>
> Let us take those subjects up as you go along.
>
> Good luck!
> John
>
>
> — In anyscript@yahoogroups.com, “jamesshippen” <jamesshippen@>
> wrote:
> >
> > Hi
> >
> > Many thanks for your reply. I’ll take a look at the offending
> muscle
> > and report back.
> >
> > James
> >
>