Driving model with input moments

I am trying to drive a model with shoulder moment data (computed from
externally measured moments and forces). The task was isometric, so the
posture does not change yet the muscular contraction intensity was
increased, which produced the shoulder moments. I am not sure where to
begin. Could someone point me in some direction? Thanks.

Chris

Hi Chris

I think you should start using for example the Arep/Aalborg/WheelTurn model
and then modify it to suit your purpose. It contains the spine and two arms.

I will try to list the changes I can think of here:

1: in case you are only interested in one arm then shift the body model to
for example SpineRigthArm/Bodymodel.any

2: replace the drivers for the arm in the JointAndDriver.any file with joint
drivers taken from FreePosture/JointAndDriver.any this will create joint
drivers for each dof in the arm and it will set the angles to the values
specified in the mannequin file, so it will be a static posture. In case you
need motion you can use the FreePostureMove/JointAndDrivers instead.

3: You need to apply the measured moment, here it is obviously very
important that you know exactly how this was measured in terms of axis
orientations sequence etc. Then I would I recommend to create a node with
the desired orientation and create rotational measures which can be used for
applying the measured moments.

4: The final step is then to apply the measure moments on these rotational
measures, using an AnyForce object. If you insert an AnyKinRotational
measure in the AnyForce object it will apply a moment.

I hope this helps you move in the right direction, please write again if you
have further questions.

Best regards

Søren , AnyBody Support


From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
Of chrisjgatti
Sent: 14 January 2008 23:00
To: anyscript@yahoogroups.com
Subject: [AnyScript] Driving model with input moments

I am trying to drive a model with shoulder moment data (computed from
externally measured moments and forces). The task was isometric, so the
posture does not change yet the muscular contraction intensity was
increased, which produced the shoulder moments. I am not sure where to
begin. Could someone point me in some direction? Thanks.

Chris

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

Thanks Søren,

I will look into this and reply if I have questions.

Chris

— In anyscript@yahoogroups.com, “AnyBody Support” <support@…> wrote:
>
> Hi Chris
>
>
>
> I think you should start using for example the
Arep/Aalborg/WheelTurn model
> and then modify it to suit your purpose. It contains the spine and
two arms.
>
>
>
>
> I will try to list the changes I can think of here:
>
>
>
> 1: in case you are only interested in one arm then shift the body
model to
> for example SpineRigthArm/Bodymodel.any
>
> 2: replace the drivers for the arm in the JointAndDriver.any file
with joint
> drivers taken from FreePosture/JointAndDriver.any this will create joint
> drivers for each dof in the arm and it will set the angles to the values
> specified in the mannequin file, so it will be a static posture. In
case you
> need motion you can use the FreePostureMove/JointAndDrivers instead.
>
> 3: You need to apply the measured moment, here it is obviously very
> important that you know exactly how this was measured in terms of axis
> orientations sequence etc. Then I would I recommend to create a node
with
> the desired orientation and create rotational measures which can be
used for
> applying the measured moments.
>
> 4: The final step is then to apply the measure moments on these
rotational
> measures, using an AnyForce object. If you insert an AnyKinRotational
> measure in the AnyForce object it will apply a moment.
>
>
>
> I hope this helps you move in the right direction, please write
again if you
> have further questions.
>
>
>
> Best regards
>
> Søren , AnyBody Support

I have created a simple arm model (modified from the dumbbell
tutorial) that remains in a static posture and external forces are
input and imposed on the arm. I have further modified this model to
input external moments, rather than forces. However, I did this using
AnyMoment3D instead of using AnyKinRotational inside AnyForce. I have
two questions concerning this:

  1. Is it okay to use AnyMoment3D rather than AnyKinRotational inside
    AnyForce?

  2. How does AnyMoment3D work? I would guess that the referenced node
    is on the segment that you want the external moments to be imposed on,
    and the axes are either in the global coordinate system (if using ‘M’)
    or the local segment coordinate system (if using ‘Mlocal’). And it
    matters if you specify the reference node being the proximal or distal
    segment node, because the moments will be in the opposite directions.
    Is all of this correct? Is there anything else I should watch out for?

Thanks,

Chris

— In anyscript@yahoogroups.com, “AnyBody Support” <support@…> wrote:
>
> Hi Chris
>
>
>
> I think you should start using for example the
Arep/Aalborg/WheelTurn model
> and then modify it to suit your purpose. It contains the spine and
two arms.
>
>
>
>
> I will try to list the changes I can think of here:
>
>
>
> 1: in case you are only interested in one arm then shift the body
model to
> for example SpineRigthArm/Bodymodel.any
>
> 2: replace the drivers for the arm in the JointAndDriver.any file
with joint
> drivers taken from FreePosture/JointAndDriver.any this will create joint
> drivers for each dof in the arm and it will set the angles to the values
> specified in the mannequin file, so it will be a static posture. In
case you
> need motion you can use the FreePostureMove/JointAndDrivers instead.
>
> 3: You need to apply the measured moment, here it is obviously very
> important that you know exactly how this was measured in terms of axis
> orientations sequence etc. Then I would I recommend to create a node
with
> the desired orientation and create rotational measures which can be
used for
> applying the measured moments.
>
> 4: The final step is then to apply the measure moments on these
rotational
> measures, using an AnyForce object. If you insert an AnyKinRotational
> measure in the AnyForce object it will apply a moment.
>
>
>
> I hope this helps you move in the right direction, please write
again if you
> have further questions.
>
>
>
> Best regards
>
> Søren , AnyBody Support
>
> _____
>
> From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com]
On Behalf
> Of chrisjgatti
> Sent: 14 January 2008 23:00
> To: anyscript@yahoogroups.com
> Subject: [AnyScript] Driving model with input moments
>
>
>
> I am trying to drive a model with shoulder moment data (computed from
> externally measured moments and forces). The task was isometric, so the
> posture does not change yet the muscular contraction intensity was
> increased, which produced the shoulder moments. I am not sure where to
> begin. Could someone point me in some direction? Thanks.
>
> Chris
>
>
>
>
>
> [Non-text portions of this message have been removed]
>

Hi Chris,

> 1. Is it okay to use AnyMoment3D rather than
> AnyKinRotational inside AnyForce?

It depends on what you want to do. The result is not the same. Please
see below.

> 2. How does AnyMoment3D work? I would guess that the
> referenced node is on the segment that you want the
> external moments to be imposed on, and the axes are
> either in the global coordinate system (if using ‘M’)
> or the local segment coordinate system (if using ‘Mlocal’).
> And it matters if you specify the reference node being
> the proximal or distal segment node, because the
> moments will be in the opposite directions.
> Is all of this correct? Is there anything else I
> should watch out for?

You understand it correctly, and the same rules actually apply to the
AnyForce3D class.

However, please beware of the significance of AnyForce3D being an
external load. This means that the load is “between” the reference
frame you apply it to and the global reference frame. Notice that
this applies a load that propagates through the mechanism to wherever
the meachanism is grounded.

If you instead apply an AnyForce inside a kinematic measure like a
joint, then you are applying the load “between” the two segments
meeting in the joint. Since action equals reaction as per Newton’s
third law, such a moment will be in perfect internal balance in the
mechanical system ad will not propagate through the system and have
undesirable consequences. So I recomment this latter method for
application of an ideal joint moment.

Best regards,
John
AnyBody Support

I think I have an arm model working the way I intend, however I am
not sure how to ensure that I have done things correctly. Basically,
I want to apply local external moments (wrt to the humeral coordinate
system) so that the model must apply equal and opposite internal
moments. For example, if I want the model to perform shoulder
flexion, the applied external moment should essentially attempt to
force the model into shoulder extension. For all of the analyses, the
model will remain in a static posture.

In order to do this, I did as suggested: (1) changed the mannequin
file (adding input moments to the local humeral coordinate system
with AnyForce and AnyKinRotational), (2) changed the
JointsAndDrivers.any file to that from the FreePostureMove version,
and (3) modified the InitialPositions.any file.

I tried to validate the imposed moments by applying a singal external
force to the humerus at a known distance from the humerus coordinate
system center, and then comparing muscle force predictions. However,
as I understand, using AnyForce with AnyKinRotational applies a
moment between segments…so I don’t think this is the same as simply
applying an external force.

Could John or Soren check this out and see if I have done what I
intend? I have uploaded the files (cjg_ArmModel); they should work if
they are just added to a folder inside ARep/Aalborg/. The input file
has external moments of shoulder extension and then shoulder flexion,
so that the model simulates shoulder flexion and then shoulder
extension.

Thanks for all your help,

Chris

Hi

There is a problem with the files you uploded: it open as a sit file
and cannot be rename to zip. So it is not possible to look at it.
Can you please try to load it again in .zip so that we can have a
look at it and answer you.

Best regards.
Sylvain, AnyBody support

— In anyscript@yahoogroups.com, “chrisjgatti” <cjgatti@…> wrote:
>
> I think I have an arm model working the way I intend, however I am
> not sure how to ensure that I have done things correctly.
Basically,
> I want to apply local external moments (wrt to the humeral
coordinate
> system) so that the model must apply equal and opposite internal
> moments. For example, if I want the model to perform shoulder
> flexion, the applied external moment should essentially attempt to
> force the model into shoulder extension. For all of the analyses,
the
> model will remain in a static posture.
>
> In order to do this, I did as suggested: (1) changed the mannequin
> file (adding input moments to the local humeral coordinate system
> with AnyForce and AnyKinRotational), (2) changed the
> JointsAndDrivers.any file to that from the FreePostureMove
version,
> and (3) modified the InitialPositions.any file.
>
> I tried to validate the imposed moments by applying a singal
external
> force to the humerus at a known distance from the humerus
coordinate
> system center, and then comparing muscle force predictions.
However,
> as I understand, using AnyForce with AnyKinRotational applies a
> moment between segments…so I don’t think this is the same as
simply
> applying an external force.
>
> Could John or Soren check this out and see if I have done what I
> intend? I have uploaded the files (cjg_ArmModel); they should work
if
> they are just added to a folder inside ARep/Aalborg/. The input
file
> has external moments of shoulder extension and then shoulder
flexion,
> so that the model simulates shoulder flexion and then shoulder
> extension.
>
> Thanks for all your help,
>
> Chris
>

Hopefully this will reach you. I have no problem downloading the yousendit as a
.zip. Weird.

To: anyscript@yahoogroups.com
From: support@anybodytech.com
Date: Fri, 8 Feb 2008 15:16:26 +0000
Subject: [AnyScript] Re: Driving model with input moments

         Hi

There is a problem with the files you uploded: it open as a sit file

and cannot be rename to zip. So it is not possible to look at it.

Can you please try to load it again in .zip so that we can have a

look at it and answer you.

Best regards.

Sylvain, AnyBody support

— In anyscript@yahoogroups.com, “chrisjgatti” <cjgatti@…> wrote:

>

> I think I have an arm model working the way I intend, however I am

> not sure how to ensure that I have done things correctly.

Basically,

> I want to apply local external moments (wrt to the humeral

coordinate

> system) so that the model must apply equal and opposite internal

> moments. For example, if I want the model to perform shoulder

> flexion, the applied external moment should essentially attempt to

> force the model into shoulder extension. For all of the analyses,

the

> model will remain in a static posture.

>

> In order to do this, I did as suggested: (1) changed the mannequin

> file (adding input moments to the local humeral coordinate system

> with AnyForce and AnyKinRotational), (2) changed the

> JointsAndDrivers.any file to that from the FreePostureMove

version,

> and (3) modified the InitialPositions.any file.

>

> I tried to validate the imposed moments by applying a singal

external

> force to the humerus at a known distance from the humerus

coordinate

> system center, and then comparing muscle force predictions.

However,

> as I understand, using AnyForce with AnyKinRotational applies a

> moment between segments…so I don’t think this is the same as

simply

> applying an external force.

>

> Could John or Soren check this out and see if I have done what I

> intend? I have uploaded the files (cjg_ArmModel); they should work

if

> they are just added to a folder inside ARep/Aalborg/. The input

file

> has external moments of shoulder extension and then shoulder

flexion,

> so that the model simulates shoulder flexion and then shoulder

> extension.

>

> Thanks for all your help,

>

> Chris

>


Share what Santa brought you
https://www.mycooluncool.com

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

I just uploaded it from another computer. I think it’s fine as a .zip
now instead of .sit.

Chris

— In anyscript@yahoogroups.com, “AnyBody Support” <support@…> wrote:
>
> Hi
>
> There is a problem with the files you uploded: it open as a sit file
> and cannot be rename to zip. So it is not possible to look at it.
> Can you please try to load it again in .zip so that we can have a
> look at it and answer you.
>
> Best regards.
> Sylvain, AnyBody support

Hi,

It is right that applying a moment with AnyKinRotational is not the
same as applying directly an external force.

Using the AnyKinRotational for applying the moment is difficult. It
can easily trick you and create undesired moments you did not
expect. This comes from the way the rotations are defined, so you
have to be careful.

Then best way to apply an external moment to the shoulder joint is
to use an AnyMoment3D that directly apply a moment from the ground
to the chosen ref without any “unexpected” moments.

One last thing you should take care about is that applying an
external force in a known point of the humerus will give different
results that if you applied the pure equivalent moment in the
shoulder joint. This because the force (simulating a real load
carried by somebody) will give reaction forces in the joint whereas
the moment will not. This force will then have to be carried by some
of scapula’s muscles.
So if you just apply an AnyMoment3D you won’t have this transmitted
force into the joint.

So the solution depends on the situation you would like to simulate.

I modified the file adding the AnyMoment3D and uploaded it the file
section of the group (cjg_ArModel V2).

Best regards
AnyBody Support, Sylvain

— In anyscript@yahoogroups.com, “chrisjgatti” <cjgatti@…> wrote:
>
> I just uploaded it from another computer. I think it’s fine as
a .zip
> now instead of .sit.
>
> Chris
>
> — In anyscript@yahoogroups.com, “AnyBody Support” <support@>
wrote:
> >
> > Hi
> >
> > There is a problem with the files you uploded: it open as a sit
file
> > and cannot be rename to zip. So it is not possible to look at
it.
> > Can you please try to load it again in .zip so that we can have
a
> > look at it and answer you.
> >
> > Best regards.
> > Sylvain, AnyBody support
>

Thanks for the reply Sylvain,

I guess I am confused though. In a previous reply (post #1779), John
recommended using AnyForce with AnyKinRotational, but now you
recommend AnyMoment3D. I guess I don’t understand the difference, and
what you mean by “unexpected” moments. Could you expand on each
method, or provided examples outlining the differences?

Chris

— In anyscript@yahoogroups.com, “AnyBody Support” <support@…> wrote:
>
> Hi,
>
> It is right that applying a moment with AnyKinRotational is not the
> same as applying directly an external force.
>
> Using the AnyKinRotational for applying the moment is difficult. It
> can easily trick you and create undesired moments you did not
> expect. This comes from the way the rotations are defined, so you
> have to be careful.
>
> Then best way to apply an external moment to the shoulder joint is
> to use an AnyMoment3D that directly apply a moment from the ground
> to the chosen ref without any “unexpected” moments.
>
> One last thing you should take care about is that applying an
> external force in a known point of the humerus will give different
> results that if you applied the pure equivalent moment in the
> shoulder joint. This because the force (simulating a real load
> carried by somebody) will give reaction forces in the joint whereas
> the moment will not. This force will then have to be carried by some
> of scapula’s muscles.
> So if you just apply an AnyMoment3D you won’t have this transmitted
> force into the joint.
>
> So the solution depends on the situation you would like to simulate.
>
> I modified the file adding the AnyMoment3D and uploaded it the file
> section of the group (cjg_ArModel V2).
>
> Best regards
> AnyBody Support, Sylvain

Hi Chris

There is nothing wrong by using the AnyKinRotational, for applying the
moment, in some case it can just be difficult to interpret the moment which
will be applied. If the rotational measure is driven to 0,0,0 then the
moment is easy to understand, also if you rotate around for example the z
axis and apply a moment around the z axis. But if the rotations in the other
directions are nonzero it becomes complicate, then the moment which are
applied becomes difficult to interpret, since you will typically get moments
around all three axes. This comes out of the definition of the
AnyKinRotational, I think this is what Sylvian meant by unexpected.

If you would like to explore this more, I would recommend creating a small
example model with one seg, a spherical joint and a driver. Then try out the
different ways of applying the moment to the segment and compare the
reaction moments in the driver when you apply the moment in different ways
to the segment.

When you are using the AnyMoment3d it will simply apply the moment you
specify, using the global coordinate system as reference if have not chosen
the MLocal.

You can of course also apply the moment using a force on humerus, if you
create a new node on the long axis of the bone it should be easy to apply a
moment only in the abducting direction.

Best regards

Søren, AnyBody Support


From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
Of chrisjgatti
Sent: 13 February 2008 14:55
To: anyscript@yahoogroups.com
Subject: [AnyScript] Re: Driving model with input moments

Thanks for the reply Sylvain,

I guess I am confused though. In a previous reply (post #1779), John
recommended using AnyForce with AnyKinRotational, but now you
recommend AnyMoment3D. I guess I don’t understand the difference, and
what you mean by “unexpected” moments. Could you expand on each
method, or provided examples outlining the differences?

Chris

— In anyscript@yahoogrou <mailto:anyscript%40yahoogroups.com> ps.com,
“AnyBody Support” <support@…> wrote:
>
> Hi,
>
> It is right that applying a moment with AnyKinRotational is not the
> same as applying directly an external force.
>
> Using the AnyKinRotational for applying the moment is difficult. It
> can easily trick you and create undesired moments you did not
> expect. This comes from the way the rotations are defined, so you
> have to be careful.
>
> Then best way to apply an external moment to the shoulder joint is
> to use an AnyMoment3D that directly apply a moment from the ground
> to the chosen ref without any “unexpected” moments.
>
> One last thing you should take care about is that applying an
> external force in a known point of the humerus will give different
> results that if you applied the pure equivalent moment in the
> shoulder joint. This because the force (simulating a real load
> carried by somebody) will give reaction forces in the joint whereas
> the moment will not. This force will then have to be carried by some
> of scapula’s muscles.
> So if you just apply an AnyMoment3D you won’t have this transmitted
> force into the joint.
>
> So the solution depends on the situation you would like to simulate.
>
> I modified the file adding the AnyMoment3D and uploaded it the file
> section of the group (cjg_ArModel V2).
>
> Best regards
> AnyBody Support, Sylvain

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

Okay…I’m still thinking about this and still kind of confused what
the difference is.

You mentioned that I could apply a force at a known distance on the
humerus in order to get a single-axis moment. I suppose I could do
this for all three moments (one in each of the three axes directions
for the GH joint), correct? Is this method compareable to AnyMoment3D
or AnyForce with AnyKinRotational?

Also, I have a question regarding the revised version of the files I
uploaded, as edited by Sylvian. He commented out the portion of the
code (in MannequinNew.any) where I had the AnyForce with
AnyKinRotational in order to replace it with AnyMoment3D. In the
commented section though, he modified the force line to:

F = { .moment_interpol(t)[2], .moment_interpol(t)[1], .moment_interpol
(t)[0]};

However, I defined the axes of the AnyKinRotational as Axis1 = x,
Axis2 = y, Axis3 = z. I don’t understand the order here; why was this
done and to which axes order/definition does this correspond?
Additionally, should these axes definitions (Axes1, 2, and 3) and
type (RotAxesAngles) be the same as defined as in the Arm3D Jnt.any
file?

Thanks again,

Chris

— In anyscript@yahoogroups.com, “AnyBody Support” <support@…>
wrote:
>
> Hi Chris
>
> There is nothing wrong by using the AnyKinRotational, for applying
< the moment, in some case it can just be difficult to interpret the
> moment which will be applied. If the rotational measure is driven
> to 0,0,0 then the moment is easy to understand, also if you rotate
> around for example the z axis and apply a moment around the z axis.
> But if the rotations in the other directions are nonzero it becomes
> complicate, then the moment which are applied becomes difficult to
> interpret, since you will typically get moments around all three
> axes. This comes out of the definition of the AnyKinRotational, I
> think this is what Sylvian meant by unexpected.
>
> If you would like to explore this more, I would recommend creating
> a small example model with one seg, a spherical joint and a driver.
> Then try out the different ways of applying the moment to the
> segment and compare the reaction moments in the driver when you
> apply the moment in different ways to the segment.
>
> When you are using the AnyMoment3d it will simply apply the moment
> you specify, using the global coordinate system as reference if
> have not chosen the MLocal.
>
> You can of course also apply the moment using a force on humerus,
> if you create a new node on the long axis of the bone it should be
> easy to apply a moment only in the abducting direction.
>
> Best regards
>
> Søren, AnyBody Support

Hi Chris

Applying the force vector in a known point on humerus is comparable to
applying the moment3d to the gh, at least it terms of moments. It will
generate the same moments around gh, but the reaction in the gh joint will
be different due to the forces.

I think these axes where switched around for testing, so you should not put
any meaning in this.

The definitions of the rotational measure do not necessarily have to be the
same as the one in the jnt.any file, it is ok to have one measure for
controlling the kinematics and another one for applying the force, if this
is what you meant?

Best regards

Søren


From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
Of chrisjgatti
Sent: 14 February 2008 19:40
To: anyscript@yahoogroups.com
Subject: [AnyScript] Re: Driving model with input moments

Okay…I’m still thinking about this and still kind of confused what
the difference is.

You mentioned that I could apply a force at a known distance on the
humerus in order to get a single-axis moment. I suppose I could do
this for all three moments (one in each of the three axes directions
for the GH joint), correct? Is this method compareable to AnyMoment3D
or AnyForce with AnyKinRotational?

Also, I have a question regarding the revised version of the files I
uploaded, as edited by Sylvian. He commented out the portion of the
code (in MannequinNew.any) where I had the AnyForce with
AnyKinRotational in order to replace it with AnyMoment3D. In the
commented section though, he modified the force line to:

F = { .moment_interpol(t)[2], .moment_interpol(t)[1], .moment_interpol
(t)[0]};

However, I defined the axes of the AnyKinRotational as Axis1 = x,
Axis2 = y, Axis3 = z. I don’t understand the order here; why was this
done and to which axes order/definition does this correspond?
Additionally, should these axes definitions (Axes1, 2, and 3) and
type (RotAxesAngles) be the same as defined as in the Arm3D Jnt.any
file?

Thanks again,

Chris

— In anyscript@yahoogrou <mailto:anyscript%40yahoogroups.com> ps.com,
“AnyBody Support” <support@…>
wrote:
>
> Hi Chris
>
> There is nothing wrong by using the AnyKinRotational, for applying
< the moment, in some case it can just be difficult to interpret the
> moment which will be applied. If the rotational measure is driven
> to 0,0,0 then the moment is easy to understand, also if you rotate
> around for example the z axis and apply a moment around the z axis.
> But if the rotations in the other directions are nonzero it becomes
> complicate, then the moment which are applied becomes difficult to
> interpret, since you will typically get moments around all three
> axes. This comes out of the definition of the AnyKinRotational, I
> think this is what Sylvian meant by unexpected.
>
> If you would like to explore this more, I would recommend creating
> a small example model with one seg, a spherical joint and a driver.
> Then try out the different ways of applying the moment to the
> segment and compare the reaction moments in the driver when you
> apply the moment in different ways to the segment.
>
> When you are using the AnyMoment3d it will simply apply the moment
> you specify, using the global coordinate system as reference if
> have not chosen the MLocal.
>
> You can of course also apply the moment using a force on humerus,
> if you create a new node on the long axis of the bone it should be
> easy to apply a moment only in the abducting direction.
>
> Best regards
>
> Søren, AnyBody Support

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

I have made a new model, however rather than trying to input moments
at the shoulder, I now input forces and moments at the location of the
loadcell. The loadcell is placed under the elbow as represented in the
model. I have uploaded a new model (folder cjg_ArmModel, file
cjg_LoadcellInputModel.zip). Could one of the support members check
this out to ensure I’m doing what I intend? I have added a new node in
the HumerusMuscleGeometry.any file, so this must replace the original
file. Thanks again for all your help.

Chris

Hi,

The force and moment are well applied at the LoadCellNode. So that
part is ok.
There is just a typical question you should take care about if you
did not yet: if the force’s data comes from a loadcell measure then
the coordinate system of the measured forces is probably not the same
as the local coordinate system of the humerus where you apply the
forces. In this case you must adapt the data to the humerus local
frame.

Best regards,
Sylvain, AnyBody Support

— In anyscript@yahoogroups.com, “chrisjgatti” <cjgatti@…> wrote:
>
> I have made a new model, however rather than trying to input moments
> at the shoulder, I now input forces and moments at the location of
the
> loadcell. The loadcell is placed under the elbow as represented in
the
> model. I have uploaded a new model (folder cjg_ArmModel, file
> cjg_LoadcellInputModel.zip). Could one of the support members check
> this out to ensure I’m doing what I intend? I have added a new node
in
> the HumerusMuscleGeometry.any file, so this must replace the
original
> file. Thanks again for all your help.
>
> Chris
>

Thanks for checking out the model, Sylvain.

I have ensure that our coordinate systems are appropriately matched.

I was mostly wondering about this method of applying forces and
moments, in that it’s essentially the opposite of measuring forces and
moments at the loadcell. Before, I was getting confused with all the
discussion about forces and moments either between segments or a
segment and ground and the different methods of applying these data.

The loadcell basically measures forces and moments between the arm and
the ground, so in the current model, we apply equal and opposite
forces and moments between the ground and the arm (using AnyForce3D
and AnyMoment3D). Can you confirm this is what is being done? I just
want to make sure everything is as clear in my head is they are in yours.

Thanks,

Chris

— In anyscript@yahoogroups.com, “AnyBody Support” <support@…> wrote:
>
> Hi,
>
> The force and moment are well applied at the LoadCellNode. So that
> part is ok.
> There is just a typical question you should take care about if you
> did not yet: if the force’s data comes from a loadcell measure then
> the coordinate system of the measured forces is probably not the same
> as the local coordinate system of the humerus where you apply the
> forces. In this case you must adapt the data to the humerus local
> frame.
>
> Best regards,
> Sylvain, AnyBody Support
>
>
>
> — In anyscript@yahoogroups.com, “chrisjgatti” <cjgatti@> wrote:
> >
> > I have made a new model, however rather than trying to input moments
> > at the shoulder, I now input forces and moments at the location of
> the
> > loadcell. The loadcell is placed under the elbow as represented in
> the
> > model. I have uploaded a new model (folder cjg_ArmModel, file
> > cjg_LoadcellInputModel.zip). Could one of the support members check
> > this out to ensure I’m doing what I intend? I have added a new node
> in
> > the HumerusMuscleGeometry.any file, so this must replace the
> original
> > file. Thanks again for all your help.
> >
> > Chris
> >
>

Hi Chris

The script you have used will apply the measured force to the new node on
the humerus, it seems as a reasonable approach.

The only thing it still do not understand if is correct?, is the coordinate
system that the force are applied in, but since I do not know much how this
experiment was I can be wrong.

I will explain how we normally do this.

1 create segment which is the load cell

2 create joint and drivers that makes sure it is positioned correctly and
orientated as in the measurement

3 make sure it has no reactions applied at all

4 apply the measured forces to the segment.

5 create an AnyReacForce on the three linear and three rotations between the
contact node on the humerus and the loadcell.

If the coordinate system of the humerus node is in fact orientated like the
coordinate the forces were measured in, then your approach will give the
exact same results.

Please ask again if you have further questions:

Best regards

Søren


From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
Of chrisjgatti
Sent: 06 March 2008 18:04
To: anyscript@yahoogroups.com
Subject: [AnyScript] Re: Driving model with input moments

Thanks for checking out the model, Sylvain.

I have ensure that our coordinate systems are appropriately matched.

I was mostly wondering about this method of applying forces and
moments, in that it’s essentially the opposite of measuring forces and
moments at the loadcell. Before, I was getting confused with all the
discussion about forces and moments either between segments or a
segment and ground and the different methods of applying these data.

The loadcell basically measures forces and moments between the arm and
the ground, so in the current model, we apply equal and opposite
forces and moments between the ground and the arm (using AnyForce3D
and AnyMoment3D). Can you confirm this is what is being done? I just
want to make sure everything is as clear in my head is they are in yours.

Thanks,

Chris

— In anyscript@yahoogrou <mailto:anyscript%40yahoogroups.com> ps.com,
“AnyBody Support” <support@…> wrote:
>
> Hi,
>
> The force and moment are well applied at the LoadCellNode. So that
> part is ok.
> There is just a typical question you should take care about if you
> did not yet: if the force’s data comes from a loadcell measure then
> the coordinate system of the measured forces is probably not the same
> as the local coordinate system of the humerus where you apply the
> forces. In this case you must adapt the data to the humerus local
> frame.
>
> Best regards,
> Sylvain, AnyBody Support
>
>
>
> — In anyscript@yahoogrou <mailto:anyscript%40yahoogroups.com> ps.com,
“chrisjgatti” <cjgatti@> wrote:
> >
> > I have made a new model, however rather than trying to input moments
> > at the shoulder, I now input forces and moments at the location of
> the
> > loadcell. The loadcell is placed under the elbow as represented in
> the
> > model. I have uploaded a new model (folder cjg_ArmModel, file
> > cjg_LoadcellInputModel.zip). Could one of the support members check
> > this out to ensure I’m doing what I intend? I have added a new node
> in
> > the HumerusMuscleGeometry.any file, so this must replace the
> original
> > file. Thanks again for all your help.
> >
> > Chris
> >
>

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

Hi Søren,

The humerus coordinate system in the AnyBody model (with the arm by
the side) has the y-axis pointing superiorly along the humerus, the
z-axis pointing posteriorly parallel to the ground, and the x-axis as
the cross product of the y- and z-axes pointing laterally.

Our loadcell coordinate system (again with the arm by the side) used a
left-hand system where the z-axis was aligned with the long axis of
the humerus and pointed superiorly, the y-axis pointed anteriorly
parallel to the ground, and the x-axis as the cross product of the y-
and z-axes pointing medially.

Thus, these two coordinate systems have parallel axes, however the
axes are different. In order to convert the loadcell system to the
AnyBody system, here’s what was done:

x_AnyBody = -x_loadcell
y_AnyBody = z_loadcell
z_AnyBody = -y_loadcell

I should be all set in this case because the two coordinate systems
are parallel, correct?

Chris

— In anyscript@yahoogroups.com, “AnyBody Support” <support@…> wrote:
>
> Hi Chris
>
>
>
> The script you have used will apply the measured force to the new
node on
> the humerus, it seems as a reasonable approach.
>
>
>
> The only thing it still do not understand if is correct?, is the
coordinate
> system that the force are applied in, but since I do not know much
how this
> experiment was I can be wrong.
>
>
>
> I will explain how we normally do this.
>
>
>
> 1 create segment which is the load cell
>
> 2 create joint and drivers that makes sure it is positioned
correctly and
> orientated as in the measurement
>
> 3 make sure it has no reactions applied at all
>
> 4 apply the measured forces to the segment.
>
> 5 create an AnyReacForce on the three linear and three rotations
between the
> contact node on the humerus and the loadcell.
>
>
>
> If the coordinate system of the humerus node is in fact orientated
like the
> coordinate the forces were measured in, then your approach will give the
> exact same results.
>
>
>
> Please ask again if you have further questions:
>
>
>
> Best regards
>
> Søren

Hi Chris

It sounds reasonable as I see it; I did not realize that the load cell
followed the arm in this setup, I was worried that the axes would not be
parallel.

Switching the axes around like you did should be ok I guess.

Have a nice weekend.

Best regards

Søren


From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
Of chrisjgatti
Sent: 07 March 2008 16:33
To: anyscript@yahoogroups.com
Subject: [AnyScript] Re: Driving model with input moments

Hi Søren,

The humerus coordinate system in the AnyBody model (with the arm by
the side) has the y-axis pointing superiorly along the humerus, the
z-axis pointing posteriorly parallel to the ground, and the x-axis as
the cross product of the y- and z-axes pointing laterally.

Our loadcell coordinate system (again with the arm by the side) used a
left-hand system where the z-axis was aligned with the long axis of
the humerus and pointed superiorly, the y-axis pointed anteriorly
parallel to the ground, and the x-axis as the cross product of the y-
and z-axes pointing medially.

Thus, these two coordinate systems have parallel axes, however the
axes are different. In order to convert the loadcell system to the
AnyBody system, here’s what was done:

x_AnyBody = -x_loadcell
y_AnyBody = z_loadcell
z_AnyBody = -y_loadcell

I should be all set in this case because the two coordinate systems
are parallel, correct?

Chris

— In anyscript@yahoogrou <mailto:anyscript%40yahoogroups.com> ps.com,
“AnyBody Support” <support@…> wrote:
>
> Hi Chris
>
>
>
> The script you have used will apply the measured force to the new
node on
> the humerus, it seems as a reasonable approach.
>
>
>
> The only thing it still do not understand if is correct?, is the
coordinate
> system that the force are applied in, but since I do not know much
how this
> experiment was I can be wrong.
>
>
>
> I will explain how we normally do this.
>
>
>
> 1 create segment which is the load cell
>
> 2 create joint and drivers that makes sure it is positioned
correctly and
> orientated as in the measurement
>
> 3 make sure it has no reactions applied at all
>
> 4 apply the measured forces to the segment.
>
> 5 create an AnyReacForce on the three linear and three rotations
between the
> contact node on the humerus and the loadcell.
>
>
>
> If the coordinate system of the humerus node is in fact orientated
like the
> coordinate the forces were measured in, then your approach will give the
> exact same results.
>
>
>
> Please ask again if you have further questions:
>
>
>
> Best regards
>
> Søren

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