Simplistic yet kinetically overconstrained Leg model-Part2

Hi Sylvain,
I tried to correct the model by:

  1. turning knee reaction off and hip reaction on.
  2. renaming the extra nodes and updating the muscle configuration.
    and it worked!
    Thanks a lot.

Now, I have introduced the two exoskeleton segments UpperExo and LowerExo
parallel to the two original ones and am supposed to find the torque profile at
the exoskeleton’s knee joint when the original knee joint is driven and
vice-versa.
To do this, I tried to add a revolute joint between UpperExo and LowerExo but
understandably, it became kinetically over constrained. Is there any way I can
extract the torque profile at one knee joint by driving the other?

The model files are in Simplistic_Leg_2.zip.

Regards,
Hrishi Shah

— On Tue, 1/20/09, AnyScript Support <anyscriptsup@anybodytech.com> wrote:
From: AnyScript Support <anyscriptsup@anybodytech.com>
Subject: RE: [AnyScript] Simplistic yet kinetically overconstrained Leg model
To: anyscript@yahoogroups.com
Date: Tuesday, January 20, 2009, 8:59 AM

         Hi Hrishi Shah,

The same question have been ask about this model being kinetically over

constrained by Shivaswamy Anirudh some days ago, one of your colleague I

suppose?

Well here is the answer I gave him:

"The model being kinetically over-constrained means that there are too much

reaction forces.

In your case the Reaction.Type of the hip joint and knee joint are switched

On. So all the load is carried by the artificial force of the drivers and

therefore the muscles are not activated. You have to free at least one dof.

As there are no muscles around the hip joint it is indicated to keep the

Reaction.Type On on this joint, but the Reaction.type of the knee joint must

be switched Off in order to load the muscles."

Once this is done I noticed a second issue that will prevent the model to

run the inverse dynamic analysis. The problem is that the Soleus muscle has

its origin and insertion at the same node, it is just a “point” muscle with

no length. The muscle cannot be recruited in such configuration. You should

either remove or modify this muscle.

Also the tibialis anterior and the gluteus maximus are doing some kind of

loop with the origin and insertion at the same node, I think you should

reconsider the definition of those 2 muscles.

Best regards,

Sylvain, AnyBody Support


From: anyscript@yahoogrou ps.com [mailto:anyscript@yahoogrou ps.com] On Behalf

Of hrishi_shah2002

Sent: 16. januar 2009 00:36

To: anyscript@yahoogrou ps.com

Subject: [AnyScript] Simplistic yet kinetically overconstrained Leg model

Hello.

I am Hrishi Shah, a graduate student at SUNY, Buffalo and am currently

on an independent study that examines the effect of an exo-knee on the

actual knee.

I aim to make a model with two actual Leg segments and two exoskeleton

leg segments attached to the leg segments nodes via fixed joints. The

exo-knee and the actual knee are the only revolute joints in the whole

setup.

However, in the first phase itself, when I tried to cut out the pelvis

and foot from the foot model by copying their nodes to the Upper leg

and shank segments resp., it comes up with an error in Inverse Dynamic

Analysis saying that its “Kinetically over constrained” . I have

already removed many muscles that are used for movements other than

the knee movements. Could someone please point out what the error is?

The files are in Simplistic_Leg. zip.

Thanking in anticipation.

Regards,

Hrishi Shah

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

Hi Hrishi Shah,

You need an apropriate configuration of the exoskeleton to avoid the model
being over constrained kinematicaly and kinetically. I guess a real
exoskeleton have has a revolute joint at the level of the knee. So it would
be good to respect this construction.

If we think again the connection between the leg and the exoskeleton from
the beginning, what I can think of is the following : fix the UpperExo
segment at the level of the hip exactly as it is done now. Then add a
revolute joint between UpperExo and LowerExo, this represent the knee. Last
step is to connect the LowerExo segment with the shank, to avoid over
constraints only one linear constraint is needed between the LowerExoNode2
of LowerExo and LowerLeg on the x direction (direction of the movement), and
of course a reaction force on this linear constraint.

This should give you the good boundary conditions. The knee joint can be
either moved by the muscles only or you can apply a moment on the
exoskeleton knee joint that will compensate a part of the muscle activation.

After this you can measure the moment in the joints with
AnyForceMomentMeasure2. This object allows you to measure forces and moments
created by a list muscles, general forces, at a given point of the model.
Please refer to the reference manual for detailed explanation of how to use
this object. There is also an example in the folder SmallExamples in the
file section of the group.

Best regards,

Sylvain, AnyBody Support


From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
Of hrishi shah
Sent: 20. januar 2009 20:23
To: anyscript@yahoogroups.com
Subject: [AnyScript] Simplistic yet kinetically overconstrained Leg
model-Part2

Hi Sylvain,
I tried to correct the model by:

  1. turning knee reaction off and hip reaction on.
  2. renaming the extra nodes and updating the muscle configuration.
    and it worked!
    Thanks a lot.

Now, I have introduced the two exoskeleton segments UpperExo and LowerExo
parallel to the two original ones and am supposed to find the torque profile
at the exoskeleton’s knee joint when the original knee joint is driven and
vice-versa.
To do this, I tried to add a revolute joint between UpperExo and LowerExo
but understandably, it became kinetically over constrained. Is there any way
I can extract the torque profile at one knee joint by driving the other?

The model files are in Simplistic_Leg_2.zip.

Regards,
Hrishi Shah

— On Tue, 1/20/09, AnyScript Support <anyscriptsup@
<mailto:anyscriptsup%40anybodytech.com> anybodytech.com> wrote:
From: AnyScript Support <anyscriptsup@
<mailto:anyscriptsup%40anybodytech.com> anybodytech.com>
Subject: RE: [AnyScript] Simplistic yet kinetically overconstrained Leg
model
To: anyscript@yahoogrou <mailto:anyscript%40yahoogroups.com> ps.com
Date: Tuesday, January 20, 2009, 8:59 AM

Hi Hrishi Shah,

The same question have been ask about this model being kinetically over

constrained by Shivaswamy Anirudh some days ago, one of your colleague I

suppose?

Well here is the answer I gave him:

"The model being kinetically over-constrained means that there are too much

reaction forces.

In your case the Reaction.Type of the hip joint and knee joint are switched

On. So all the load is carried by the artificial force of the drivers and

therefore the muscles are not activated. You have to free at least one dof.

As there are no muscles around the hip joint it is indicated to keep the

Reaction.Type On on this joint, but the Reaction.type of the knee joint must

be switched Off in order to load the muscles."

Once this is done I noticed a second issue that will prevent the model to

run the inverse dynamic analysis. The problem is that the Soleus muscle has

its origin and insertion at the same node, it is just a “point” muscle with

no length. The muscle cannot be recruited in such configuration. You should

either remove or modify this muscle.

Also the tibialis anterior and the gluteus maximus are doing some kind of

loop with the origin and insertion at the same node, I think you should

reconsider the definition of those 2 muscles.

Best regards,

Sylvain, AnyBody Support


From: anyscript@yahoogrou ps.com [mailto:anyscript@yahoogrou ps.com] On
Behalf

Of hrishi_shah2002

Sent: 16. januar 2009 00:36

To: anyscript@yahoogrou ps.com

Subject: [AnyScript] Simplistic yet kinetically overconstrained Leg model

Hello.

I am Hrishi Shah, a graduate student at SUNY, Buffalo and am currently

on an independent study that examines the effect of an exo-knee on the

actual knee.

I aim to make a model with two actual Leg segments and two exoskeleton

leg segments attached to the leg segments nodes via fixed joints. The

exo-knee and the actual knee are the only revolute joints in the whole

setup.

However, in the first phase itself, when I tried to cut out the pelvis

and foot from the foot model by copying their nodes to the Upper leg

and shank segments resp., it comes up with an error in Inverse Dynamic

Analysis saying that its “Kinetically over constrained” . I have

already removed many muscles that are used for movements other than

the knee movements. Could someone please point out what the error is?

The files are in Simplistic_Leg. zip.

Thanking in anticipation.

Regards,

Hrishi Shah

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

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

Hi,
Firstly, thanks a lot to Sylvain for the advice. It worked well in the most
part.

The last part of my project involves giving a moment at the exo-knee (as you
already pointed out) but the purpose is to emulate the condition of leg-weight
lifting exercise with the exoskeleton.
Simply put, the exoknee torque profile should be such that the muscle forces of
the simple leg model without the exoskeleton and with the point load at the foot
should be as close as possible to the muscle forces developed with the
exoskeleton without the weight.

For this, I tried to use Moment3D with a constant value but how do I specify a
time varying moment valueso that I can finetune the moment at each instant in
time to match the muscle activity to the original muscle activity.
The files are placed in Simplistic_Leg_3.zip.

Also, I could not figure out how putting a constraint on the x displacement of
two points would force the shank and the lower exo to move together, since there
is no knee joint. Also, the revolute joint with zero velocity drivers seem to be
working fine in the model. Is there a potential problem with this
implementation?

Regards,
Hrishi Shah

— On Fri, 1/23/09, AnyScript Support <anyscriptsup@anybodytech.com> wrote:
From: AnyScript Support <anyscriptsup@anybodytech.com>
Subject: RE: [AnyScript] Simplistic yet kinetically overconstrained Leg
model-Part2
To: anyscript@yahoogroups.com
Date: Friday, January 23, 2009, 2:40 PM

         Hi Hrishi Shah,

You need an apropriate configuration of the exoskeleton to avoid the model

being over constrained kinematicaly and kinetically. I guess a real

exoskeleton have has a revolute joint at the level of the knee. So it would

be good to respect this construction.

If we think again the connection between the leg and the exoskeleton from

the beginning, what I can think of is the following : fix the UpperExo

segment at the level of the hip exactly as it is done now. Then add a

revolute joint between UpperExo and LowerExo, this represent the knee. Last

step is to connect the LowerExo segment with the shank, to avoid over

constraints only one linear constraint is needed between the LowerExoNode2

of LowerExo and LowerLeg on the x direction (direction of the movement), and

of course a reaction force on this linear constraint.

This should give you the good boundary conditions. The knee joint can be

either moved by the muscles only or you can apply a moment on the

exoskeleton knee joint that will compensate a part of the muscle activation.

After this you can measure the moment in the joints with

AnyForceMomentMeasu re2. This object allows you to measure forces and moments

created by a list muscles, general forces, at a given point of the model.

Please refer to the reference manual for detailed explanation of how to use

this object. There is also an example in the folder SmallExamples in the

file section of the group.

Best regards,

Sylvain, AnyBody Support


From: anyscript@yahoogrou ps.com [mailto:anyscript@yahoogrou ps.com] On Behalf

Of hrishi shah

Sent: 20. januar 2009 20:23

To: anyscript@yahoogrou ps.com

Subject: [AnyScript] Simplistic yet kinetically overconstrained Leg

model-Part2

Hi Sylvain,

I tried to correct the model by:

  1. turning knee reaction off and hip reaction on.

  2. renaming the extra nodes and updating the muscle configuration.

and it worked!

Thanks a lot.

Now, I have introduced the two exoskeleton segments UpperExo and LowerExo

parallel to the two original ones and am supposed to find the torque profile

at the exoskeleton’ s knee joint when the original knee joint is driven and

vice-versa.

To do this, I tried to add a revolute joint between UpperExo and LowerExo

but understandably, it became kinetically over constrained. Is there any way

I can extract the torque profile at one knee joint by driving the other?

The model files are in Simplistic_Leg_ 2.zip.

Regards,

Hrishi Shah

— On Tue, 1/20/09, AnyScript Support <anyscriptsup@

<mailto:anyscriptsu p%40anybodytech. com> anybodytech. com> wrote:

From: AnyScript Support <anyscriptsup@

<mailto:anyscriptsu p%40anybodytech. com> anybodytech. com>

Subject: RE: [AnyScript] Simplistic yet kinetically overconstrained Leg

model

To: anyscript@yahoogrou <mailto:anyscript% 40yahoogroups. com> ps.com

Date: Tuesday, January 20, 2009, 8:59 AM

Hi Hrishi Shah,

The same question have been ask about this model being kinetically over

constrained by Shivaswamy Anirudh some days ago, one of your colleague I

suppose?

Well here is the answer I gave him:

"The model being kinetically over-constrained means that there are too much

reaction forces.

In your case the Reaction.Type of the hip joint and knee joint are switched

On. So all the load is carried by the artificial force of the drivers and

therefore the muscles are not activated. You have to free at least one dof.

As there are no muscles around the hip joint it is indicated to keep the

Reaction.Type On on this joint, but the Reaction.type of the knee joint must

be switched Off in order to load the muscles."

Once this is done I noticed a second issue that will prevent the model to

run the inverse dynamic analysis. The problem is that the Soleus muscle has

its origin and insertion at the same node, it is just a “point” muscle with

no length. The muscle cannot be recruited in such configuration. You should

either remove or modify this muscle.

Also the tibialis anterior and the gluteus maximus are doing some kind of

loop with the origin and insertion at the same node, I think you should

reconsider the definition of those 2 muscles.

Best regards,

Sylvain, AnyBody Support


From: anyscript@yahoogrou ps.com [mailto:anyscript@ yahoogrou ps.com] On

Behalf

Of hrishi_shah2002

Sent: 16. januar 2009 00:36

To: anyscript@yahoogrou ps.com

Subject: [AnyScript] Simplistic yet kinetically overconstrained Leg model

Hello.

I am Hrishi Shah, a graduate student at SUNY, Buffalo and am currently

on an independent study that examines the effect of an exo-knee on the

actual knee.

I aim to make a model with two actual Leg segments and two exoskeleton

leg segments attached to the leg segments nodes via fixed joints. The

exo-knee and the actual knee are the only revolute joints in the whole

setup.

However, in the first phase itself, when I tried to cut out the pelvis

and foot from the foot model by copying their nodes to the Upper leg

and shank segments resp., it comes up with an error in Inverse Dynamic

Analysis saying that its “Kinetically over constrained” . I have

already removed many muscles that are used for movements other than

the knee movements. Could someone please point out what the error is?

The files are in Simplistic_Leg. zip.

Thanking in anticipation.

Regards,

Hrishi Shah

[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,

So you want to replace the load at the foot by a moment on the exoknee. To
apply a time varying moment you can use an AnyFunInterpol that will read the
values in text file like this :

AnyForce Moment = {
AnyJoint &Jnt=.ExoKneeJnt;

AnyFunInterpol MomentFun = {

Type = Bspline;
FileName = “file.txt”;
};

F = MomentFun(t);
};

Then you can find out the appropriate value of the moment by reading the
effect of the foot load at the exoknee joint using AnyForceMomentMeasure2.
This object returns an equivalent force and moment at the specified
location. Please see the reference manual for detailed explanations about
the use of this object. Applying this equivalent moment at the exoknee
should replace the load on the foot.

About the linear constraint I had in mind a slightly different joint
configuration for the leg and exosqueleton, with a revolute joint both in
the real knee and in the exoknee like this (you actually removed the real
knee joint) :

AnyRevoluteJoint GroundThighJnt = {

     Axis = z;

     AnyRefNode &GroundRefNode = ..GlobalRef.PelvisThighJntNode;

     AnyRefNode &UpperLegNode = ..Segs.UpperLeg.PelvisThighJntNode;

   };

AnyRevoluteJoint KneeJnt = {

     Axis = z;

     AnyRefNode &ShankNode = ..Segs.UpperLeg.ThighShankJntNode;

     AnyRefNode &ThighNode = ..Segs.LowerLeg.ThighShankJntNode;

   };

AnyRevoluteJoint UpperExoGndJnt = {

Axis=z;

AnyRefNode &GroundRefNode = …Segs.UpperLeg.UpperExoNode1;

AnyRefNode &UpperExoNode = …Segs.UpperExo.UpperExoNode1;

};

//AnyRevoluteJoint LowerExoGndJnt = {

// Axis=z;

// AnyRefNode &GroundRefNode = …Segs.LowerLeg.LowerExoNode1;

// AnyRefNode &LowerExoNode = …Segs.LowerExo.LowerExoNode1;

//};

AnyRevoluteJoint ExoKneeJnt = {

     Axis = z;

     AnyRefNode &ShankNode = ..Segs.UpperExo.UpperExoNode2;

     AnyRefNode &ThighNode = ..Segs.LowerExo.LowerExoNode1;

   };

//Part constricting lowerexo movement with lowerleg movement

AnyKinLinear LowerExoLin = {

 Ref = 0;

 AnyRefNode &LowerExoNode = ..Segs.LowerExo.LowerExoNode2;

 AnyRefNode &LowerLegNode = ..Segs.LowerLeg.LowerExoNode2;

};

AnyKinMeasureOrg LowerExoLinXY = {

 AnyKinLinear &ref=.LowerExoLin;

 MeasureOrganizer={0}; // x direction

};

AnyKinEq PedalJointLinConstraints = {

 AnyKinMeasureOrg  &ref= .LowerExoLinXY;

};

Best regards,

Sylvain, AnyBody Support


From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
Of hrishi shah
Sent: 24. januar 2009 03:39
To: anyscript@yahoogroups.com
Subject: RE: [AnyScript] Simplistic yet kinetically overconstrained Leg
model-Part2

Hi,
Firstly, thanks a lot to Sylvain for the advice. It worked well in the most
part.

The last part of my project involves giving a moment at the exo-knee (as you
already pointed out) but the purpose is to emulate the condition of
leg-weight lifting exercise with the exoskeleton.
Simply put, the exoknee torque profile should be such that the muscle forces
of the simple leg model without the exoskeleton and with the point load at
the foot should be as close as possible to the muscle forces developed with
the exoskeleton without the weight.

For this, I tried to use Moment3D with a constant value but how do I specify
a time varying moment valueso that I can finetune the moment at each instant
in time to match the muscle activity to the original muscle activity.
The files are placed in Simplistic_Leg_3.zip.

Also, I could not figure out how putting a constraint on the x displacement
of two points would force the shank and the lower exo to move together,
since there is no knee joint. Also, the revolute joint with zero velocity
drivers seem to be working fine in the model. Is there a potential problem
with this implementation?

Regards,
Hrishi Shah

— On Fri, 1/23/09, AnyScript Support <anyscriptsup@
<mailto:anyscriptsup%40anybodytech.com> anybodytech.com> wrote:
From: AnyScript Support <anyscriptsup@
<mailto:anyscriptsup%40anybodytech.com> anybodytech.com>
Subject: RE: [AnyScript] Simplistic yet kinetically overconstrained Leg
model-Part2
To: anyscript@yahoogrou <mailto:anyscript%40yahoogroups.com> ps.com
Date: Friday, January 23, 2009, 2:40 PM

Hi Hrishi Shah,

You need an apropriate configuration of the exoskeleton to avoid the model

being over constrained kinematicaly and kinetically. I guess a real

exoskeleton have has a revolute joint at the level of the knee. So it would

be good to respect this construction.

If we think again the connection between the leg and the exoskeleton from

the beginning, what I can think of is the following : fix the UpperExo

segment at the level of the hip exactly as it is done now. Then add a

revolute joint between UpperExo and LowerExo, this represent the knee. Last

step is to connect the LowerExo segment with the shank, to avoid over

constraints only one linear constraint is needed between the LowerExoNode2

of LowerExo and LowerLeg on the x direction (direction of the movement), and

of course a reaction force on this linear constraint.

This should give you the good boundary conditions. The knee joint can be

either moved by the muscles only or you can apply a moment on the

exoskeleton knee joint that will compensate a part of the muscle activation.

After this you can measure the moment in the joints with

AnyForceMomentMeasu re2. This object allows you to measure forces and
moments

created by a list muscles, general forces, at a given point of the model.

Please refer to the reference manual for detailed explanation of how to use

this object. There is also an example in the folder SmallExamples in the

file section of the group.

Best regards,

Sylvain, AnyBody Support


From: anyscript@yahoogrou ps.com [mailto:anyscript@yahoogrou ps.com] On
Behalf

Of hrishi shah

Sent: 20. januar 2009 20:23

To: anyscript@yahoogrou ps.com

Subject: [AnyScript] Simplistic yet kinetically overconstrained Leg

model-Part2

Hi Sylvain,

I tried to correct the model by:

  1. turning knee reaction off and hip reaction on.

  2. renaming the extra nodes and updating the muscle configuration.

and it worked!

Thanks a lot.

Now, I have introduced the two exoskeleton segments UpperExo and LowerExo

parallel to the two original ones and am supposed to find the torque profile

at the exoskeleton’ s knee joint when the original knee joint is driven and

vice-versa.

To do this, I tried to add a revolute joint between UpperExo and LowerExo

but understandably, it became kinetically over constrained. Is there any way

I can extract the torque profile at one knee joint by driving the other?

The model files are in Simplistic_Leg_ 2.zip.

Regards,

Hrishi Shah

— On Tue, 1/20/09, AnyScript Support <anyscriptsup@

<mailto:anyscriptsu p%40anybodytech. com> anybodytech. com> wrote:

From: AnyScript Support <anyscriptsup@

<mailto:anyscriptsu p%40anybodytech. com> anybodytech. com>

Subject: RE: [AnyScript] Simplistic yet kinetically overconstrained Leg

model

To: anyscript@yahoogrou <mailto:anyscript% 40yahoogroups. com> ps.com

Date: Tuesday, January 20, 2009, 8:59 AM

Hi Hrishi Shah,

The same question have been ask about this model being kinetically over

constrained by Shivaswamy Anirudh some days ago, one of your colleague I

suppose?

Well here is the answer I gave him:

"The model being kinetically over-constrained means that there are too much

reaction forces.

In your case the Reaction.Type of the hip joint and knee joint are switched

On. So all the load is carried by the artificial force of the drivers and

therefore the muscles are not activated. You have to free at least one dof.

As there are no muscles around the hip joint it is indicated to keep the

Reaction.Type On on this joint, but the Reaction.type of the knee joint must

be switched Off in order to load the muscles."

Once this is done I noticed a second issue that will prevent the model to

run the inverse dynamic analysis. The problem is that the Soleus muscle has

its origin and insertion at the same node, it is just a “point” muscle with

no length. The muscle cannot be recruited in such configuration. You should

either remove or modify this muscle.

Also the tibialis anterior and the gluteus maximus are doing some kind of

loop with the origin and insertion at the same node, I think you should

reconsider the definition of those 2 muscles.

Best regards,

Sylvain, AnyBody Support


From: anyscript@yahoogrou ps.com [mailto:anyscript@ yahoogrou ps.com] On

Behalf

Of hrishi_shah2002

Sent: 16. januar 2009 00:36

To: anyscript@yahoogrou ps.com

Subject: [AnyScript] Simplistic yet kinetically overconstrained Leg model

Hello.

I am Hrishi Shah, a graduate student at SUNY, Buffalo and am currently

on an independent study that examines the effect of an exo-knee on the

actual knee.

I aim to make a model with two actual Leg segments and two exoskeleton

leg segments attached to the leg segments nodes via fixed joints. The

exo-knee and the actual knee are the only revolute joints in the whole

setup.

However, in the first phase itself, when I tried to cut out the pelvis

and foot from the foot model by copying their nodes to the Upper leg

and shank segments resp., it comes up with an error in Inverse Dynamic

Analysis saying that its “Kinetically over constrained” . I have

already removed many muscles that are used for movements other than

the knee movements. Could someone please point out what the error is?

The files are in Simplistic_Leg. zip.

Thanking in anticipation.

Regards,

Hrishi Shah

[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]