Applying ground reaction forces

Hi everyone,

I’m looking for a possibility to apply ground reaction forces to my
model. We are given the global vector to the position of the contact
point and also the vector of forces in the global coordinate system.

Like this:

t rx ry rz
0.0000000 -0.001578 0.0019055 -0.0041077
0.0025350 -0.001578 0.0019055 -0.0040675
0.0050700 -0.001578 0.0019055 -0.0040272
0.0076050 -0.001578 0.0019055 -0.0039869
.
.

and this:

t ForceX ForceY ForceZ
0.0000000 0 0 0
0.0025350 -0.0022952 0.052367 0.0026903
0.0050700 -0.0057498 0.10911 0.0054355
0.0076050 -0.010264 0.17094 0.0083138
0.0101400 -0.015739 0.23854 0.011403
.
.

How can I include this data to the “AnyForce3D” class?

AnyForce3D <ObjectName> =
{
//F = {0, 0, 0};
//Flocal = {0, 0, 0};
AnyRefFrame &<Insert name0> = <Insert object reference (or full
object definition)>;
};

Kind regards,

Dieter

Hello Dieter,

There’s a good example of this in the Gait3D model example (repository, in
ARep/Gait3D) (in environment.any). Although not the simplest way to do it,
it is the most volatile.

If you want to keep it simple, and just include the data directly in the
AnyForce3D, you can do as in the example:

AnyForce3D ForceOnForcePlate1 ={

AnyFunInterpol force ={

 Type=Bspline;

 BsplineOrder = 8;

 FileName ="ForcePlate1.txt";

};

AnySeg &ref1=.CenterOfPressure1;

F=force(t);

};

Which create a AnyFunInterpol object, that holds all the data from you file
and “feeds” it to the AnyForce3D class, through the force(t) parameter.
CenterOfPressure1 could be replaced by a node on a segment to make things
simple. But in general, this is not the best idea: you should probably
follow the example quite closely.

Hope this helps and good luck,

Jean-Olivier

NexGen Ergonomics

From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
Of dieterkassgim
Sent: Monday, March 10, 2008 8:35 AM
To: anyscript@yahoogroups.com
Subject: [AnyScript] Applying ground reaction forces

Hi everyone,

I’m looking for a possibility to apply ground reaction forces to my
model. We are given the global vector to the position of the contact
point and also the vector of forces in the global coordinate system.

Like this:

t rx ry rz
0.0000000 -0.001578 0.0019055 -0.0041077
0.0025350 -0.001578 0.0019055 -0.0040675
0.0050700 -0.001578 0.0019055 -0.0040272
0.0076050 -0.001578 0.0019055 -0.0039869
.
.

and this:

t ForceX ForceY ForceZ
0.0000000 0 0 0
0.0025350 -0.0022952 0.052367 0.0026903
0.0050700 -0.0057498 0.10911 0.0054355
0.0076050 -0.010264 0.17094 0.0083138
0.0101400 -0.015739 0.23854 0.011403
.
.

How can I include this data to the “AnyForce3D” class?

AnyForce3D <ObjectName> =
{
//F = {0, 0, 0};
//Flocal = {0, 0, 0};
AnyRefFrame &<Insert name0> = <Insert object reference (or full
object definition)>;
};

Kind regards,

Dieter

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

Hi Jean-Olivier,

I am also trying to unput force plate data into my gait model,
I have 8 analog channels giving my 2x 2y and 4*z data sets.
I have started to script in the environment file based on a Florida model
that has similar analog data. I am coming unstuck where my analog data does not
have
a time or frame number column. I have tried to make a column but I
keep on getting the same error;

‘force.Data’ : The matrix must contain the same number of columns as T has
elements, i.e., the number of data and parameter values must match

I have 7826 analog figures and only 1119 frames of motion capture.
I have no forceplate.txt file, do you think i should create one or stick with
inputting the analog data?

Many thanks

peter

Jean-Olivier Racine <jean-olivier.racine.1@ens.etsmtl.ca> wrote: Hello Dieter,

There’s a good example of this in the Gait3D model example (repository, in
ARep/Gait3D) (in environment.any). Although not the simplest way to do it,
it is the most volatile.

If you want to keep it simple, and just include the data directly in the
AnyForce3D, you can do as in the example:

AnyForce3D ForceOnForcePlate1 ={

AnyFunInterpol force ={

 Type=Bspline;

 BsplineOrder = 8;

 FileName ="ForcePlate1.txt";

};

AnySeg &ref1=.CenterOfPressure1;

F=force(t);

};

Which create a AnyFunInterpol object, that holds all the data from you file
and “feeds” it to the AnyForce3D class, through the force(t) parameter.
CenterOfPressure1 could be replaced by a node on a segment to make things
simple. But in general, this is not the best idea: you should probably
follow the example quite closely.

Hope this helps and good luck,

Jean-Olivier

NexGen Ergonomics

From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
Of dieterkassgim
Sent: Monday, March 10, 2008 8:35 AM
To: anyscript@yahoogroups.com
Subject: [AnyScript] Applying ground reaction forces

Hi everyone,

I’m looking for a possibility to apply ground reaction forces to my
model. We are given the global vector to the position of the contact
point and also the vector of forces in the global coordinate system.

Like this:

t rx ry rz
0.0000000 -0.001578 0.0019055 -0.0041077
0.0025350 -0.001578 0.0019055 -0.0040675
0.0050700 -0.001578 0.0019055 -0.0040272
0.0076050 -0.001578 0.0019055 -0.0039869

and this:

t ForceX ForceY ForceZ
0.0000000 0 0 0
0.0025350 -0.0022952 0.052367 0.0026903
0.0050700 -0.0057498 0.10911 0.0054355
0.0076050 -0.010264 0.17094 0.0083138
0.0101400 -0.015739 0.23854 0.011403

How can I include this data to the “AnyForce3D” class?

AnyForce3D =
{
//F = {0, 0, 0};
//Flocal = {0, 0, 0};
AnyRefFrame & =
object definition)>;
};

Kind regards,

Dieter

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

Users of the AnyBody Modeling System help each other create biomechanical models
in the AnyScript language.
Yahoo! Groups Links


Sent from Yahoo! Mail.
The World 's Favourite Email.

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

Hello Peter,

I am not sure I understand exactly your problem, but I’ll try to help you
with what I’ve got.

To my understanding:

  1.   You use the C3D import to get the force plate data, which has 7826
    

frames.

  1.   You use the C3D import to get the motion capture data, which has
    

1119 frames.

  1.   You have a AnyBodyStudy that has nStep = 1119.
    

So right now, you are using directly the analog data in the AnyForce3D in
something that looks like this:

AnyForce3D TheForce = {

             F = C3D.ForcePlate.Data;

};

If this is how you do it, then you don’t need a force plate file, what you
can do is use the AnyFunInterpol class with something like this:

AnyForce3D TheForce = {

             AnyFunInterpol Data = {

                             Type = Bspline;

                             BsplineOrder = 8;

                             Data = C3D.Analog.ForcePlate.Time;

                             Data = C3D.Analog.ForcePlate.Data;

};

F = Data(t);

};

Naturally, you have to replace the C3D paths with valid ones. The
ForcePlate.Time should have the same number of values has your force plate
data (7826).

This will make anybody interpolate you force plate data to match the number
of frames (and time of each frame) has your motion capture data.

Does that help you?

Jean-Olivier Racine

joracine@humancad.com

HumanCAD development team

Nexgen Ergonomics Inc.

From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
Of Peter Worsley
Sent: Tuesday, March 11, 2008 9:47 AM
To: anyscript@yahoogroups.com
Subject: RE: [AnyScript] Applying ground reaction forces

Hi Jean-Olivier,

I am also trying to unput force plate data into my gait model,
I have 8 analog channels giving my 2x 2y and 4*z data sets.
I have started to script in the environment file based on a Florida model
that has similar analog data. I am coming unstuck where my analog data does
not have
a time or frame number column. I have tried to make a column but I
keep on getting the same error;

‘force.Data’ : The matrix must contain the same number of columns as T has
elements, i.e., the number of data and parameter values must match

I have 7826 analog figures and only 1119 frames of motion capture.
I have no forceplate.txt file, do you think i should create one or stick
with inputting the analog data?

Many thanks

peter

Jean-Olivier Racine <jean-olivier.racine.1@ens.etsmtl.ca
<mailto:jean-olivier.racine.1%40ens.etsmtl.ca> > wrote: Hello Dieter,

There’s a good example of this in the Gait3D model example (repository, in
ARep/Gait3D) (in environment.any). Although not the simplest way to do it,
it is the most volatile.

If you want to keep it simple, and just include the data directly in the
AnyForce3D, you can do as in the example:

AnyForce3D ForceOnForcePlate1 ={

AnyFunInterpol force ={

Type=Bspline;

BsplineOrder = 8;

FileName =“ForcePlate1.txt”;

};

AnySeg &ref1=.CenterOfPressure1;

F=force(t);

};

Which create a AnyFunInterpol object, that holds all the data from you file
and “feeds” it to the AnyForce3D class, through the force(t) parameter.
CenterOfPressure1 could be replaced by a node on a segment to make things
simple. But in general, this is not the best idea: you should probably
follow the example quite closely.

Hope this helps and good luck,

Jean-Olivier

NexGen Ergonomics

From: anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com>
[mailto:anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com> ] On
Behalf
Of dieterkassgim
Sent: Monday, March 10, 2008 8:35 AM
To: anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com>
Subject: [AnyScript] Applying ground reaction forces

Hi everyone,

I’m looking for a possibility to apply ground reaction forces to my
model. We are given the global vector to the position of the contact
point and also the vector of forces in the global coordinate system.

Like this:

t rx ry rz
0.0000000 -0.001578 0.0019055 -0.0041077
0.0025350 -0.001578 0.0019055 -0.0040675
0.0050700 -0.001578 0.0019055 -0.0040272
0.0076050 -0.001578 0.0019055 -0.0039869

and this:

t ForceX ForceY ForceZ
0.0000000 0 0 0
0.0025350 -0.0022952 0.052367 0.0026903
0.0050700 -0.0057498 0.10911 0.0054355
0.0076050 -0.010264 0.17094 0.0083138
0.0101400 -0.015739 0.23854 0.011403

How can I include this data to the “AnyForce3D” class?

AnyForce3D =
{
//F = {0, 0, 0};
//Flocal = {0, 0, 0};
AnyRefFrame & =
object definition)>;
};

Kind regards,

Dieter

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

Users of the AnyBody Modeling System help each other create biomechanical
models in the AnyScript language.
Yahoo! Groups Links


Sent from Yahoo! Mail.
The World 's Favourite Email.

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

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

Hi Jean-Olivier,

thanks for the answer. I’ve tried to work through the gait3d
Environment.any file but like you already said it’s very difficult
for a beginner like me to follow the example.

That’s why I prefer the Node solution:

 AnyForce3D GRF1 ={
   AnyFunInterpol force ={
     Type=Bspline;
     BsplineOrder = 8;
     FileName ="GRF_M2.txt";};
   AnyRefNode &ref1=Main.rat_model.Seg.metatarsus.GRF_M;
   // F fuer globale angreifende Kraft
   // FLocal fuer lokale angreifende Kraft
   F=force(t);
 };

The only problem that I have now is that I would like to have the
RefNode moved during the timesteps in the local coordinate system. I
tried to implement a driver but that way my perfectly constraint
model became overconstrained. Is there a way to move a RefNode of a
segment in the local coordinate system by timesteps?

Regards

Dieter

— In anyscript@yahoogroups.com, Jean-Olivier Racine <joracine@…>
wrote:
>
> Hello Peter,
>
>
>
> I am not sure I understand exactly your problem, but I’ll try to
help you
> with what I’ve got.
>
>
>
> To my understanding:
>
> 1. You use the C3D import to get the force plate data, which
has 7826
> frames.
>
> 2. You use the C3D import to get the motion capture data,
which has
> 1119 frames.
>
> 3. You have a AnyBodyStudy that has nStep = 1119.
>
>
>
> So right now, you are using directly the analog data in the
AnyForce3D in
> something that looks like this:
>
> AnyForce3D TheForce = {
>
> F = C3D.ForcePlate.Data;
>
> };
>
>
>
> If this is how you do it, then you don’t need a force plate file,
what you
> can do is use the AnyFunInterpol class with something like this:
>
> AnyForce3D TheForce = {
>
> AnyFunInterpol Data = {
>
> Type = Bspline;
>
> BsplineOrder = 8;
>
> Data = C3D.Analog.ForcePlate.Time;
>
> Data = C3D.Analog.ForcePlate.Data;
>
> };
>
> F = Data(t);
>
> };
>
>
>
> Naturally, you have to replace the C3D paths with valid ones. The
> ForcePlate.Time should have the same number of values has your
force plate
> data (7826).
>
>
>
> This will make anybody interpolate you force plate data to match
the number
> of frames (and time of each frame) has your motion capture data.
>
>
>
> Does that help you?
>
>
>
> Jean-Olivier Racine
>
> joracine@…
>
> HumanCAD development team
>
> Nexgen Ergonomics Inc.
>
>
>
> From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com]
On Behalf
> Of Peter Worsley
> Sent: Tuesday, March 11, 2008 9:47 AM
> To: anyscript@yahoogroups.com
> Subject: RE: [AnyScript] Applying ground reaction forces
>
>
>
>
> Hi Jean-Olivier,
>
> I am also trying to unput force plate data into my gait model,
> I have 8 analog channels giving my 2x 2y and 4*z data sets.
> I have started to script in the environment file based on a Florida
model
> that has similar analog data. I am coming unstuck where my analog
data does
> not have
> a time or frame number column. I have tried to make a column but I
> keep on getting the same error;
>
> ‘force.Data’ : The matrix must contain the same number of columns
as T has
> elements, i.e., the number of data and parameter values must match
>
> I have 7826 analog figures and only 1119 frames of motion capture.
> I have no forceplate.txt file, do you think i should create one or
stick
> with inputting the analog data?
>
> Many thanks
>
> peter
>
> Jean-Olivier Racine <jean-olivier.racine.1@…
> <mailto:jean-olivier.racine.1%40ens.etsmtl.ca> > wrote: Hello
Dieter,
>
> There’s a good example of this in the Gait3D model example
(repository, in
> ARep/Gait3D) (in environment.any). Although not the simplest way to
do it,
> it is the most volatile.
>
> If you want to keep it simple, and just include the data directly
in the
> AnyForce3D, you can do as in the example:
>
> AnyForce3D ForceOnForcePlate1 ={
>
> AnyFunInterpol force ={
>
> Type=Bspline;
>
> BsplineOrder = 8;
>
> FileName =“ForcePlate1.txt”;
>
> };
>
> AnySeg &ref1=.CenterOfPressure1;
>
> F=force(t);
>
> };
>
> Which create a AnyFunInterpol object, that holds all the data from
you file
> and “feeds” it to the AnyForce3D class, through the force(t)
parameter.
> CenterOfPressure1 could be replaced by a node on a segment to make
things
> simple. But in general, this is not the best idea: you should
probably
> follow the example quite closely.
>
> Hope this helps and good luck,
>
> Jean-Olivier
>
> NexGen Ergonomics
>
> From: anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com>
> [mailto:anyscript@yahoogroups.com <mailto:anyscript%
40yahoogroups.com> ] On
> Behalf
> Of dieterkassgim
> Sent: Monday, March 10, 2008 8:35 AM
> To: anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com>
> Subject: [AnyScript] Applying ground reaction forces
>
> Hi everyone,
>
> I’m looking for a possibility to apply ground reaction forces to my
> model. We are given the global vector to the position of the
contact
> point and also the vector of forces in the global coordinate system.
>
> Like this:
>
> t rx ry rz
> 0.0000000 -0.001578 0.0019055 -0.0041077
> 0.0025350 -0.001578 0.0019055 -0.0040675
> 0.0050700 -0.001578 0.0019055 -0.0040272
> 0.0076050 -0.001578 0.0019055 -0.0039869
> …
> …
>
> and this:
>
> t ForceX ForceY ForceZ
> 0.0000000 0 0 0
> 0.0025350 -0.0022952 0.052367 0.0026903
> 0.0050700 -0.0057498 0.10911 0.0054355
> 0.0076050 -0.010264 0.17094 0.0083138
> 0.0101400 -0.015739 0.23854 0.011403
> …
> …
>
> How can I include this data to the “AnyForce3D” class?
>
> AnyForce3D =
> {
> //F = {0, 0, 0};
> //Flocal = {0, 0, 0};
> AnyRefFrame & =
> object definition)>;
> };
>
> Kind regards,
>
> Dieter
>
> [Non-text portions of this message have been removed]
>
> Users of the AnyBody Modeling System help each other create
biomechanical
> models in the AnyScript language.
> Yahoo! Groups Links
>
> ---------------------------------
> Sent from Yahoo! Mail.
> The World 's Favourite Email.
>
> [Non-text portions of this message have been removed]
>
>
>
>
>
> [Non-text portions of this message have been removed]
>

Hello Dieter,

The answer to your question is yes and no:

Yes:

Using a driver, like you tried, you can move a node and it is a perfectly
valid operation, on its own.

No:

Unless your model was planned to be driven by one of its node, adding
unplanned drivers will certainly make your model over constrained. In the
Gait3D webcast, there’s a fairly good example of how to calculate the
degrees of freedom (DOF) a model has. You cannot create more drivers (a
driver, in this case, meaning a constraint to one of the
translation/rotation) than there are DOFs.

That is why the Gait3D example uses another way to input ground reaction
forces. Physiologically, we cannot say that the ground reaction force is in
fact AT the location of the anatomical node. In reality, your COP is moving
around the given node. A good example of this is just before heel strike,
during gait: because the forces are really small, the errors on the COP
calculations are enormous, which makes the COP move several meters around
the model, really far from the true heel strike location, before stabilizing
under the foot AT heel-strike.

So what the Gait3D example does is use the “yes” and “no” answers from
above:

  1.   It creates an zero-mass segment (CenterOfPressure1) onto which it
    

declares a node at its center (node).

a. Because a new segment is created, we added a new 6 DOF to the
model.

  1.   It creates two measures that measures the position and the
    

orientation of the segment in the global reference system (Lin1, Rot1).

  1.   It then drives the position of this zero-mass segment using the COP
    

position data (LinDrv1).

a. Because this segment is not attached to anything, it can move
anywhere freely without having impacts on your model kinematics constraints.

b. Because we are only interested at the position of the COP/zero-mass
segment, we just set the orientation to be the same as the global reference
system (RotDrv1).

  1.   It then creates an AnyForce3D (ForceOnForcePlate1) which takes the
    

force plate data and applies it on the zero-mass segment. In other words,
the force is applied to a free moving zero-mass segment, not directly to
your model.

  1.   Finally, it creates an AnyReactForce (ForcePlate1FootRContactForce)
    

which will link, in terms of force equilibrium equations, the COP node
(zero-mass segment) and the node on the model (in the example, the foot).

This means you have two choices for inputting your ground reaction force to
your model:

  1.   Either you assume the COP is AT the anatomical node and therefore
    

do not use the COP data and just create an AnyForce3D that is applied to the
anatomical node (which is what you did right now).

  1.   Either you use the Gait3D example approach (previous steps 1 to 5)
    

to be able to have a COP that moves independently of your model.

I hope this will help you understand how to do what you want,

Jean-Olivier Racine

joracine@humancad.com

HumanCAD development team

Nexgen Ergonomics Inc.

From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
Of dieterkassgim
Sent: Wednesday, March 12, 2008 9:17 AM
To: anyscript@yahoogroups.com
Subject: [AnyScript] Re: Applying ground reaction forces

Hi Jean-Olivier,

thanks for the answer. I’ve tried to work through the gait3d
Environment.any file but like you already said it’s very difficult
for a beginner like me to follow the example.

That’s why I prefer the Node solution:

AnyForce3D GRF1 ={
AnyFunInterpol force ={
Type=Bspline;
BsplineOrder = 8;
FileName =“GRF_M2.txt”;};
AnyRefNode &ref1=Main.rat_model.Seg.metatarsus.GRF_M;
// F fuer globale angreifende Kraft
// FLocal fuer lokale angreifende Kraft
F=force(t);
};

The only problem that I have now is that I would like to have the
RefNode moved during the timesteps in the local coordinate system. I
tried to implement a driver but that way my perfectly constraint
model became overconstrained. Is there a way to move a RefNode of a
segment in the local coordinate system by timesteps?

Regards

Dieter

— In anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com> ,
Jean-Olivier Racine <joracine@…>
wrote:
>
> Hello Peter,
>
>
>
> I am not sure I understand exactly your problem, but I’ll try to
help you
> with what I’ve got.
>
>
>
> To my understanding:
>
> 1. You use the C3D import to get the force plate data, which
has 7826
> frames.
>
> 2. You use the C3D import to get the motion capture data,
which has
> 1119 frames.
>
> 3. You have a AnyBodyStudy that has nStep = 1119.
>
>
>
> So right now, you are using directly the analog data in the
AnyForce3D in
> something that looks like this:
>
> AnyForce3D TheForce = {
>
> F = C3D.ForcePlate.Data;
>
> };
>
>
>
> If this is how you do it, then you don’t need a force plate file,
what you
> can do is use the AnyFunInterpol class with something like this:
>
> AnyForce3D TheForce = {
>
> AnyFunInterpol Data = {
>
> Type = Bspline;
>
> BsplineOrder = 8;
>
> Data = C3D.Analog.ForcePlate.Time;
>
> Data = C3D.Analog.ForcePlate.Data;
>
> };
>
> F = Data(t);
>
> };
>
>
>
> Naturally, you have to replace the C3D paths with valid ones. The
> ForcePlate.Time should have the same number of values has your
force plate
> data (7826).
>
>
>
> This will make anybody interpolate you force plate data to match
the number
> of frames (and time of each frame) has your motion capture data.
>
>
>
> Does that help you?
>
>
>
> Jean-Olivier Racine
>
> joracine@…
>
> HumanCAD development team
>
> Nexgen Ergonomics Inc.
>
>
>
> From: anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com>
[mailto:anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com> ]
On Behalf
> Of Peter Worsley
> Sent: Tuesday, March 11, 2008 9:47 AM
> To: anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com>
> Subject: RE: [AnyScript] Applying ground reaction forces
>
>
>
>
> Hi Jean-Olivier,
>
> I am also trying to unput force plate data into my gait model,
> I have 8 analog channels giving my 2x 2y and 4*z data sets.
> I have started to script in the environment file based on a Florida
model
> that has similar analog data. I am coming unstuck where my analog
data does
> not have
> a time or frame number column. I have tried to make a column but I
> keep on getting the same error;
>
> ‘force.Data’ : The matrix must contain the same number of columns
as T has
> elements, i.e., the number of data and parameter values must match
>
> I have 7826 analog figures and only 1119 frames of motion capture.
> I have no forceplate.txt file, do you think i should create one or
stick
> with inputting the analog data?
>
> Many thanks
>
> peter
>
> Jean-Olivier Racine <jean-olivier.racine.1@…
> <mailto:jean-olivier.racine.1%40ens.etsmtl.ca> > wrote: Hello
Dieter,
>
> There’s a good example of this in the Gait3D model example
(repository, in
> ARep/Gait3D) (in environment.any). Although not the simplest way to
do it,
> it is the most volatile.
>
> If you want to keep it simple, and just include the data directly
in the
> AnyForce3D, you can do as in the example:
>
> AnyForce3D ForceOnForcePlate1 ={
>
> AnyFunInterpol force ={
>
> Type=Bspline;
>
> BsplineOrder = 8;
>
> FileName =“ForcePlate1.txt”;
>
> };
>
> AnySeg &ref1=.CenterOfPressure1;
>
> F=force(t);
>
> };
>
> Which create a AnyFunInterpol object, that holds all the data from
you file
> and “feeds” it to the AnyForce3D class, through the force(t)
parameter.
> CenterOfPressure1 could be replaced by a node on a segment to make
things
> simple. But in general, this is not the best idea: you should
probably
> follow the example quite closely.
>
> Hope this helps and good luck,
>
> Jean-Olivier
>
> NexGen Ergonomics
>
> From: anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com>
<mailto:anyscript%40yahoogroups.com>
> [mailto:anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com>
<mailto:anyscript%
40yahoogroups.com> ] On
> Behalf
> Of dieterkassgim
> Sent: Monday, March 10, 2008 8:35 AM
> To: anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com>
<mailto:anyscript%40yahoogroups.com>
> Subject: [AnyScript] Applying ground reaction forces
>
> Hi everyone,
>
> I’m looking for a possibility to apply ground reaction forces to my
> model. We are given the global vector to the position of the
contact
> point and also the vector of forces in the global coordinate system.
>
> Like this:
>
> t rx ry rz
> 0.0000000 -0.001578 0.0019055 -0.0041077
> 0.0025350 -0.001578 0.0019055 -0.0040675
> 0.0050700 -0.001578 0.0019055 -0.0040272
> 0.0076050 -0.001578 0.0019055 -0.0039869
> …
> …
>
> and this:
>
> t ForceX ForceY ForceZ
> 0.0000000 0 0 0
> 0.0025350 -0.0022952 0.052367 0.0026903
> 0.0050700 -0.0057498 0.10911 0.0054355
> 0.0076050 -0.010264 0.17094 0.0083138
> 0.0101400 -0.015739 0.23854 0.011403
> …
> …
>
> How can I include this data to the “AnyForce3D” class?
>
> AnyForce3D =
> {
> //F = {0, 0, 0};
> //Flocal = {0, 0, 0};
> AnyRefFrame & =
> object definition)>;
> };
>
> Kind regards,
>
> Dieter
>
> [Non-text portions of this message have been removed]
>
> Users of the AnyBody Modeling System help each other create
biomechanical
> models in the AnyScript language.
> Yahoo! Groups Links
>
> ---------------------------------
> Sent from Yahoo! Mail.
> The World 's Favourite Email.
>
> [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 Jean-Olivier,

thank you for your informations. I will try to implement your
suggestions (steps 1 to 5).

Kind regards,

Dieter

— In anyscript@yahoogroups.com, Jean-Olivier Racine <joracine@…>
wrote:
>
> Hello Dieter,
>
>
>
> The answer to your question is yes and no:
>
>
>
> Yes:
>
> Using a driver, like you tried, you can move a node and it is a
perfectly
> valid operation, on its own.
>
>
>
> No:
>
> Unless your model was planned to be driven by one of its node,
adding
> unplanned drivers will certainly make your model over constrained.
In the
> Gait3D webcast, there’s a fairly good example of how to calculate
the
> degrees of freedom (DOF) a model has. You cannot create more
drivers (a
> driver, in this case, meaning a constraint to one of the
> translation/rotation) than there are DOFs.
>
>
>
> That is why the Gait3D example uses another way to input ground
reaction
> forces. Physiologically, we cannot say that the ground reaction
force is in
> fact AT the location of the anatomical node. In reality, your COP
is moving
> around the given node. A good example of this is just before heel
strike,
> during gait: because the forces are really small, the errors on the
COP
> calculations are enormous, which makes the COP move several meters
around
> the model, really far from the true heel strike location, before
stabilizing
> under the foot AT heel-strike.
>
>
>
> So what the Gait3D example does is use the “yes” and “no” answers
from
> above:
>
> 1. It creates an zero-mass segment (CenterOfPressure1) onto
which it
> declares a node at its center (node).
>
> a. Because a new segment is created, we added a new 6 DOF to
the
> model.
>
> 2. It creates two measures that measures the position and the
> orientation of the segment in the global reference system (Lin1,
Rot1).
>
> 3. It then drives the position of this zero-mass segment
using the COP
> position data (LinDrv1).
>
> a. Because this segment is not attached to anything, it can
move
> anywhere freely without having impacts on your model kinematics
constraints.
>
> b. Because we are only interested at the position of the
COP/zero-mass
> segment, we just set the orientation to be the same as the global
reference
> system (RotDrv1).
>
> 4. It then creates an AnyForce3D (ForceOnForcePlate1) which
takes the
> force plate data and applies it on the zero-mass segment. In other
words,
> the force is applied to a free moving zero-mass segment, not
directly to
> your model.
>
> 5. Finally, it creates an AnyReactForce
(ForcePlate1FootRContactForce)
> which will link, in terms of force equilibrium equations, the COP
node
> (zero-mass segment) and the node on the model (in the example, the
foot).
>
>
>
> This means you have two choices for inputting your ground reaction
force to
> your model:
>
> 1. Either you assume the COP is AT the anatomical node and
therefore
> do not use the COP data and just create an AnyForce3D that is
applied to the
> anatomical node (which is what you did right now).
>
> 2. Either you use the Gait3D example approach (previous steps
1 to 5)
> to be able to have a COP that moves independently of your model.
>
>
>
> I hope this will help you understand how to do what you want,
>
>
>
> Jean-Olivier Racine
>
> joracine@…
>
> HumanCAD development team
>
> Nexgen Ergonomics Inc.
>
>
>
> From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com]
On Behalf
> Of dieterkassgim
> Sent: Wednesday, March 12, 2008 9:17 AM
> To: anyscript@yahoogroups.com
> Subject: [AnyScript] Re: Applying ground reaction forces
>
>
>
> Hi Jean-Olivier,
>
> thanks for the answer. I’ve tried to work through the gait3d
> Environment.any file but like you already said it’s very difficult
> for a beginner like me to follow the example.
>
> That’s why I prefer the Node solution:
>
> AnyForce3D GRF1 ={
> AnyFunInterpol force ={
> Type=Bspline;
> BsplineOrder = 8;
> FileName =“GRF_M2.txt”;};
> AnyRefNode &ref1=Main.rat_model.Seg.metatarsus.GRF_M;
> // F fuer globale angreifende Kraft
> // FLocal fuer lokale angreifende Kraft
> F=force(t);
> };
>
> The only problem that I have now is that I would like to have the
> RefNode moved during the timesteps in the local coordinate system.
I
> tried to implement a driver but that way my perfectly constraint
> model became overconstrained. Is there a way to move a RefNode of a
> segment in the local coordinate system by timesteps?
>
> Regards
>
> Dieter
>
> — In anyscript@yahoogroups.com <mailto:anyscript%
40yahoogroups.com> ,
> Jean-Olivier Racine <joracine@>
> wrote:
> >
> > Hello Peter,
> >
> >
> >
> > I am not sure I understand exactly your problem, but I’ll try to
> help you
> > with what I’ve got.
> >
> >
> >
> > To my understanding:
> >
> > 1. You use the C3D import to get the force plate data, which
> has 7826
> > frames.
> >
> > 2. You use the C3D import to get the motion capture data,
> which has
> > 1119 frames.
> >
> > 3. You have a AnyBodyStudy that has nStep = 1119.
> >
> >
> >
> > So right now, you are using directly the analog data in the
> AnyForce3D in
> > something that looks like this:
> >
> > AnyForce3D TheForce = {
> >
> > F = C3D.ForcePlate.Data;
> >
> > };
> >
> >
> >
> > If this is how you do it, then you don’t need a force plate file,
> what you
> > can do is use the AnyFunInterpol class with something like this:
> >
> > AnyForce3D TheForce = {
> >
> > AnyFunInterpol Data = {
> >
> > Type = Bspline;
> >
> > BsplineOrder = 8;
> >
> > Data = C3D.Analog.ForcePlate.Time;
> >
> > Data = C3D.Analog.ForcePlate.Data;
> >
> > };
> >
> > F = Data(t);
> >
> > };
> >
> >
> >
> > Naturally, you have to replace the C3D paths with valid ones. The
> > ForcePlate.Time should have the same number of values has your
> force plate
> > data (7826).
> >
> >
> >
> > This will make anybody interpolate you force plate data to match
> the number
> > of frames (and time of each frame) has your motion capture data.
> >
> >
> >
> > Does that help you?
> >
> >
> >
> > Jean-Olivier Racine
> >
> > joracine@
> >
> > HumanCAD development team
> >
> > Nexgen Ergonomics Inc.
> >
> >
> >
> > From: anyscript@yahoogroups.com <mailto:anyscript%
40yahoogroups.com>
> [mailto:anyscript@yahoogroups.com <mailto:anyscript%
40yahoogroups.com> ]
> On Behalf
> > Of Peter Worsley
> > Sent: Tuesday, March 11, 2008 9:47 AM
> > To: anyscript@yahoogroups.com <mailto:anyscript%
40yahoogroups.com>
> > Subject: RE: [AnyScript] Applying ground reaction forces
> >
> >
> >
> >
> > Hi Jean-Olivier,
> >
> > I am also trying to unput force plate data into my gait model,
> > I have 8 analog channels giving my 2x 2y and 4*z data sets.
> > I have started to script in the environment file based on a
Florida
> model
> > that has similar analog data. I am coming unstuck where my analog
> data does
> > not have
> > a time or frame number column. I have tried to make a column but I
> > keep on getting the same error;
> >
> > ‘force.Data’ : The matrix must contain the same number of columns
> as T has
> > elements, i.e., the number of data and parameter values must match
> >
> > I have 7826 analog figures and only 1119 frames of motion
capture.
> > I have no forceplate.txt file, do you think i should create one
or
> stick
> > with inputting the analog data?
> >
> > Many thanks
> >
> > peter
> >
> > Jean-Olivier Racine <jean-olivier.racine.1@
> > <mailto:jean-olivier.racine.1%40ens.etsmtl.ca> > wrote: Hello
> Dieter,
> >
> > There’s a good example of this in the Gait3D model example
> (repository, in
> > ARep/Gait3D) (in environment.any). Although not the simplest way
to
> do it,
> > it is the most volatile.
> >
> > If you want to keep it simple, and just include the data directly
> in the
> > AnyForce3D, you can do as in the example:
> >
> > AnyForce3D ForceOnForcePlate1 ={
> >
> > AnyFunInterpol force ={
> >
> > Type=Bspline;
> >
> > BsplineOrder = 8;
> >
> > FileName =“ForcePlate1.txt”;
> >
> > };
> >
> > AnySeg &ref1=.CenterOfPressure1;
> >
> > F=force(t);
> >
> > };
> >
> > Which create a AnyFunInterpol object, that holds all the data
from
> you file
> > and “feeds” it to the AnyForce3D class, through the force(t)
> parameter.
> > CenterOfPressure1 could be replaced by a node on a segment to
make
> things
> > simple. But in general, this is not the best idea: you should
> probably
> > follow the example quite closely.
> >
> > Hope this helps and good luck,
> >
> > Jean-Olivier
> >
> > NexGen Ergonomics
> >
> > From: anyscript@yahoogroups.com <mailto:anyscript%
40yahoogroups.com>
> <mailto:anyscript%40yahoogroups.com>
> > [mailto:anyscript@yahoogroups.com <mailto:anyscript%
40yahoogroups.com>
> <mailto:anyscript%
> 40yahoogroups.com> ] On
> > Behalf
> > Of dieterkassgim
> > Sent: Monday, March 10, 2008 8:35 AM
> > To: anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com>
> <mailto:anyscript%40yahoogroups.com>
> > Subject: [AnyScript] Applying ground reaction forces
> >
> > Hi everyone,
> >
> > I’m looking for a possibility to apply ground reaction forces to
my
> > model. We are given the global vector to the position of the
> contact
> > point and also the vector of forces in the global coordinate
system.
> >
> > Like this:
> >
> > t rx ry rz
> > 0.0000000 -0.001578 0.0019055 -0.0041077
> > 0.0025350 -0.001578 0.0019055 -0.0040675
> > 0.0050700 -0.001578 0.0019055 -0.0040272
> > 0.0076050 -0.001578 0.0019055 -0.0039869
> > …
> > …
> >
> > and this:
> >
> > t ForceX ForceY ForceZ
> > 0.0000000 0 0 0
> > 0.0025350 -0.0022952 0.052367 0.0026903
> > 0.0050700 -0.0057498 0.10911 0.0054355
> > 0.0076050 -0.010264 0.17094 0.0083138
> > 0.0101400 -0.015739 0.23854 0.011403
> > …
> > …
> >
> > How can I include this data to the “AnyForce3D” class?
> >
> > AnyForce3D =
> > {
> > //F = {0, 0, 0};
> > //Flocal = {0, 0, 0};
> > AnyRefFrame & =
> > object definition)>;
> > };
> >
> > Kind regards,
> >
> > Dieter
> >
> > [Non-text portions of this message have been removed]
> >
> > Users of the AnyBody Modeling System help each other create
> biomechanical
> > models in the AnyScript language.
> > Yahoo! Groups Links
> >
> > ---------------------------------
> > Sent from Yahoo! Mail.
> > The World 's Favourite Email.
> >
> > [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 Jean-Olivier,

I now have set up the files you suggested and the interpolation is working. Many
thanks for your advice

best wishes

Peter

Jean-Olivier Racine <joracine@humancad.com> wrote: Hello Peter,

I am not sure I understand exactly your problem, but I’ll try to help you
with what I’ve got.

To my understanding:

  1.   You use the C3D import to get the force plate data, which has 7826
    

frames.

  1.   You use the C3D import to get the motion capture data, which has
    

1119 frames.

  1.   You have a AnyBodyStudy that has nStep = 1119.
    

So right now, you are using directly the analog data in the AnyForce3D in
something that looks like this:

AnyForce3D TheForce = {

             F = C3D.ForcePlate.Data;

};

If this is how you do it, then you don’t need a force plate file, what you
can do is use the AnyFunInterpol class with something like this:

AnyForce3D TheForce = {

             AnyFunInterpol Data = {

                             Type = Bspline;

                             BsplineOrder = 8;

                             Data = C3D.Analog.ForcePlate.Time;

                             Data = C3D.Analog.ForcePlate.Data;

};

F = Data(t);

};

Naturally, you have to replace the C3D paths with valid ones. The
ForcePlate.Time should have the same number of values has your force plate
data (7826).

This will make anybody interpolate you force plate data to match the number
of frames (and time of each frame) has your motion capture data.

Does that help you?

Jean-Olivier Racine

joracine@humancad.com

HumanCAD development team

Nexgen Ergonomics Inc.

From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
Of Peter Worsley
Sent: Tuesday, March 11, 2008 9:47 AM
To: anyscript@yahoogroups.com
Subject: RE: [AnyScript] Applying ground reaction forces

Hi Jean-Olivier,

I am also trying to unput force plate data into my gait model,
I have 8 analog channels giving my 2x 2y and 4*z data sets.
I have started to script in the environment file based on a Florida model
that has similar analog data. I am coming unstuck where my analog data does
not have
a time or frame number column. I have tried to make a column but I
keep on getting the same error;

‘force.Data’ : The matrix must contain the same number of columns as T has
elements, i.e., the number of data and parameter values must match

I have 7826 analog figures and only 1119 frames of motion capture.
I have no forceplate.txt file, do you think i should create one or stick
with inputting the analog data?

Many thanks

peter

Jean-Olivier Racine
> wrote: Hello Dieter,

There’s a good example of this in the Gait3D model example (repository, in
ARep/Gait3D) (in environment.any). Although not the simplest way to do it,
it is the most volatile.

If you want to keep it simple, and just include the data directly in the
AnyForce3D, you can do as in the example:

AnyForce3D ForceOnForcePlate1 ={

AnyFunInterpol force ={

Type=Bspline;

BsplineOrder = 8;

FileName =“ForcePlate1.txt”;

};

AnySeg &ref1=.CenterOfPressure1;

F=force(t);

};

Which create a AnyFunInterpol object, that holds all the data from you file
and “feeds” it to the AnyForce3D class, through the force(t) parameter.
CenterOfPressure1 could be replaced by a node on a segment to make things
simple. But in general, this is not the best idea: you should probably
follow the example quite closely.

Hope this helps and good luck,

Jean-Olivier

NexGen Ergonomics

From: anyscript@yahoogroups.com
[mailto:anyscript@yahoogroups.com ] On
Behalf
Of dieterkassgim
Sent: Monday, March 10, 2008 8:35 AM
To: anyscript@yahoogroups.com
Subject: [AnyScript] Applying ground reaction forces

Hi everyone,

I’m looking for a possibility to apply ground reaction forces to my
model. We are given the global vector to the position of the contact
point and also the vector of forces in the global coordinate system.

Like this:

t rx ry rz
0.0000000 -0.001578 0.0019055 -0.0041077
0.0025350 -0.001578 0.0019055 -0.0040675
0.0050700 -0.001578 0.0019055 -0.0040272
0.0076050 -0.001578 0.0019055 -0.0039869

and this:

t ForceX ForceY ForceZ
0.0000000 0 0 0
0.0025350 -0.0022952 0.052367 0.0026903
0.0050700 -0.0057498 0.10911 0.0054355
0.0076050 -0.010264 0.17094 0.0083138
0.0101400 -0.015739 0.23854 0.011403

How can I include this data to the “AnyForce3D” class?

AnyForce3D =
{
//F = {0, 0, 0};
//Flocal = {0, 0, 0};
AnyRefFrame & =
object definition)>;
};

Kind regards,

Dieter

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

Users of the AnyBody Modeling System help each other create biomechanical
models in the AnyScript language.
Yahoo! Groups Links


Sent from Yahoo! Mail.
The World 's Favourite Email.

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

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

Users of the AnyBody Modeling System help each other create biomechanical models
in the AnyScript language.
Yahoo! Groups Links


Sent from Yahoo! Mail.
The World 's Favourite Email.

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

Hello,

I’m still having trouble to implement the GRFs. This is what I did
(analog to the 3D-Gait model):

(1) Definig an additional segment:

AnySeg GroundSegmentM = {
r0 = {0, 0, 0};
Axes0 = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}};
Mass = 0;
Jii={0.0,0.0,0.0};
AnyRefNode GRF_M = {sRel = {0, 0, 0};
};
};

(2) Implementing kinematic measures:

 AnyKinLinear PLin = {
   //Ref = -1;
   AnyFixedRefFrame  &ref1= Main.rat_model.ground;
   AnyRefFrame &LabOrigin = Main.rat_model.Seg.GroundSegmentM;
 };

 AnyKinEq RotDrvM={
   AnyKinRotational rot={
     AnyFixedRefFrame  &ref1= Main.rat_model.ground;
     AnyRefFrame &LabOrigin = Main.rat_model.Seg.GroundSegmentM;
     Type=RotAxesAngles;    };
 };

(3) Driving the measure

 AnyKinEqInterPolDriver Driver =  {
   Type = PiecewiseLinear ;
   FileName = "GroundDriver_trans.txt";
   AnyKinMeasure &ref = .PLin;
 };

(4) Using the code from the Gait3D model

 AnyReacForce GroundFootContactForceM = {

   AnyKinLinear Lin={
     //very very important this ensure that the reaction is

between artifical segment and the foot
//and not between foot and globalref if Ref had been equal -1
which is default
Ref=0;
AnySeg &ref1 = Main.rat_model.Seg.GroundSegmentM;
AnyRefNode &ref2 =Main.rat_model.Seg.metatarsus;

   };

(5) Applying the forces

 AnyForce3D GRF1 ={
   AnyFunInterpol force = {
     Type = PiecewiseLinear;
     FileName ="GRF_M.txt";
   };
   AnySeg &ref1 = Main.rat_model.Seg.GroundSegmentM;
   F=force(t);
 };

Now I get the warning:
Model Warning: Study ‘Main.MyStudy’ contains more reaction forces
than rigid-body degrees of freedom of the segments. The model may be
statically indeterminate. There are 49 reactions and only 48 rigid
body degrees of freedom.

Here are some model informations:
Total number of rigid-body d.o.f.: 48
Total number of constraints:
Joints: 25
Drivers: 17
Other: 6
Total: 48

Total number of active reaction and driver forces: 49

I can’t understand where the problem is. Can anybody help?

Regards

Dieter

— In anyscript@yahoogroups.com, “dieterkassgim” <dieterkassgim@…>
wrote:
>
> Hi Jean-Olivier,
>
> thanks for the answer. I’ve tried to work through the gait3d
> Environment.any file but like you already said it’s very difficult
> for a beginner like me to follow the example.
>
> That’s why I prefer the Node solution:
>
> AnyForce3D GRF1 ={
> AnyFunInterpol force ={
> Type=Bspline;
> BsplineOrder = 8;
> FileName =“GRF_M2.txt”;};
> AnyRefNode &ref1=Main.rat_model.Seg.metatarsus.GRF_M;
> // F fuer globale angreifende Kraft
> // FLocal fuer lokale angreifende Kraft
> F=force(t);
> };
>
> The only problem that I have now is that I would like to have the
> RefNode moved during the timesteps in the local coordinate system.
I
> tried to implement a driver but that way my perfectly constraint
> model became overconstrained. Is there a way to move a RefNode of a
> segment in the local coordinate system by timesteps?
>
> Regards
>
> Dieter
>
> — In anyscript@yahoogroups.com, Jean-Olivier Racine <joracine@>
> wrote:
> >
> > Hello Peter,
> >
> >
> >
> > I am not sure I understand exactly your problem, but I’ll try to
> help you
> > with what I’ve got.
> >
> >
> >
> > To my understanding:
> >
> > 1. You use the C3D import to get the force plate data,
which
> has 7826
> > frames.
> >
> > 2. You use the C3D import to get the motion capture data,
> which has
> > 1119 frames.
> >
> > 3. You have a AnyBodyStudy that has nStep = 1119.
> >
> >
> >
> > So right now, you are using directly the analog data in the
> AnyForce3D in
> > something that looks like this:
> >
> > AnyForce3D TheForce = {
> >
> > F = C3D.ForcePlate.Data;
> >
> > };
> >
> >
> >
> > If this is how you do it, then you don’t need a force plate file,
> what you
> > can do is use the AnyFunInterpol class with something like this:
> >
> > AnyForce3D TheForce = {
> >
> > AnyFunInterpol Data = {
> >
> > Type = Bspline;
> >
> > BsplineOrder = 8;
> >
> > Data = C3D.Analog.ForcePlate.Time;
> >
> > Data = C3D.Analog.ForcePlate.Data;
> >
> > };
> >
> > F = Data(t);
> >
> > };
> >
> >
> >
> > Naturally, you have to replace the C3D paths with valid ones. The
> > ForcePlate.Time should have the same number of values has your
> force plate
> > data (7826).
> >
> >
> >
> > This will make anybody interpolate you force plate data to match
> the number
> > of frames (and time of each frame) has your motion capture data.
> >
> >
> >
> > Does that help you?
> >
> >
> >
> > Jean-Olivier Racine
> >
> > joracine@
> >
> > HumanCAD development team
> >
> > Nexgen Ergonomics Inc.
> >
> >
> >
> > From: anyscript@yahoogroups.com
[mailto:anyscript@yahoogroups.com]
> On Behalf
> > Of Peter Worsley
> > Sent: Tuesday, March 11, 2008 9:47 AM
> > To: anyscript@yahoogroups.com
> > Subject: RE: [AnyScript] Applying ground reaction forces
> >
> >
> >
> >
> > Hi Jean-Olivier,
> >
> > I am also trying to unput force plate data into my gait model,
> > I have 8 analog channels giving my 2x 2y and 4*z data sets.
> > I have started to script in the environment file based on a
Florida
> model
> > that has similar analog data. I am coming unstuck where my analog
> data does
> > not have
> > a time or frame number column. I have tried to make a column but I
> > keep on getting the same error;
> >
> > ‘force.Data’ : The matrix must contain the same number of columns
> as T has
> > elements, i.e., the number of data and parameter values must match
> >
> > I have 7826 analog figures and only 1119 frames of motion
capture.
> > I have no forceplate.txt file, do you think i should create one
or
> stick
> > with inputting the analog data?
> >
> > Many thanks
> >
> > peter
> >
> > Jean-Olivier Racine <jean-olivier.racine.1@
> > <mailto:jean-olivier.racine.1%40ens.etsmtl.ca> > wrote: Hello
> Dieter,
> >
> > There’s a good example of this in the Gait3D model example
> (repository, in
> > ARep/Gait3D) (in environment.any). Although not the simplest way
to
> do it,
> > it is the most volatile.
> >
> > If you want to keep it simple, and just include the data directly
> in the
> > AnyForce3D, you can do as in the example:
> >
> > AnyForce3D ForceOnForcePlate1 ={
> >
> > AnyFunInterpol force ={
> >
> > Type=Bspline;
> >
> > BsplineOrder = 8;
> >
> > FileName =“ForcePlate1.txt”;
> >
> > };
> >
> > AnySeg &ref1=.CenterOfPressure1;
> >
> > F=force(t);
> >
> > };
> >
> > Which create a AnyFunInterpol object, that holds all the data
from
> you file
> > and “feeds” it to the AnyForce3D class, through the force(t)
> parameter.
> > CenterOfPressure1 could be replaced by a node on a segment to
make
> things
> > simple. But in general, this is not the best idea: you should
> probably
> > follow the example quite closely.
> >
> > Hope this helps and good luck,
> >
> > Jean-Olivier
> >
> > NexGen Ergonomics
> >
> > From: anyscript@yahoogroups.com
<mailto:anyscript%40yahoogroups.com>
> > [mailto:anyscript@yahoogroups.com <mailto:anyscript%
> 40yahoogroups.com> ] On
> > Behalf
> > Of dieterkassgim
> > Sent: Monday, March 10, 2008 8:35 AM
> > To: anyscript@yahoogroups.com
<mailto:anyscript%40yahoogroups.com>
> > Subject: [AnyScript] Applying ground reaction forces
> >
> > Hi everyone,
> >
> > I’m looking for a possibility to apply ground reaction forces to
my
> > model. We are given the global vector to the position of the
> contact
> > point and also the vector of forces in the global coordinate
system.
> >
> > Like this:
> >
> > t rx ry rz
> > 0.0000000 -0.001578 0.0019055 -0.0041077
> > 0.0025350 -0.001578 0.0019055 -0.0040675
> > 0.0050700 -0.001578 0.0019055 -0.0040272
> > 0.0076050 -0.001578 0.0019055 -0.0039869
> > …
> > …
> >
> > and this:
> >
> > t ForceX ForceY ForceZ
> > 0.0000000 0 0 0
> > 0.0025350 -0.0022952 0.052367 0.0026903
> > 0.0050700 -0.0057498 0.10911 0.0054355
> > 0.0076050 -0.010264 0.17094 0.0083138
> > 0.0101400 -0.015739 0.23854 0.011403
> > …
> > …
> >
> > How can I include this data to the “AnyForce3D” class?
> >
> > AnyForce3D =
> > {
> > //F = {0, 0, 0};
> > //Flocal = {0, 0, 0};
> > AnyRefFrame & =
> > object definition)>;
> > };
> >
> > Kind regards,
> >
> > Dieter
> >
> > [Non-text portions of this message have been removed]
> >
> > Users of the AnyBody Modeling System help each other create
> biomechanical
> > models in the AnyScript language.
> > Yahoo! Groups Links
> >
> > ---------------------------------
> > Sent from Yahoo! Mail.
> > The World 's Favourite Email.
> >
> > [Non-text portions of this message have been removed]
> >
> >
> >
> >
> >
> > [Non-text portions of this message have been removed]
> >
>

Hello Dieter,

Your problem is in step (3), you only drove the segment with a linear
driver. You have to drive its orientation too. Because we don’t care about
its orientation, you can just ensure that it is always aligned with the
global reference frame. In the Gait3D example, that driver is called
RotDrv1. If you add this driver, everything should work fine.

Have a good day!

Jean-Olivier Racine

joracine@humancad.com

HumanCAD development team

Nexgen Ergonomics Inc.

http://www.nexgenergo.com/

From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
Of dieterkassgim
Sent: Monday, March 17, 2008 9:28 AM
To: anyscript@yahoogroups.com
Subject: [AnyScript] Re: Applying ground reaction forces

Hello,

I’m still having trouble to implement the GRFs. This is what I did
(analog to the 3D-Gait model):

(1) Definig an additional segment:

AnySeg GroundSegmentM = {
r0 = {0, 0, 0};
Axes0 = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}};
Mass = 0;
Jii={0.0,0.0,0.0};
AnyRefNode GRF_M = {sRel = {0, 0, 0};
};
};

(2) Implementing kinematic measures:

AnyKinLinear PLin = {
//Ref = -1;
AnyFixedRefFrame &ref1= Main.rat_model.ground;
AnyRefFrame &LabOrigin = Main.rat_model.Seg.GroundSegmentM;
};

AnyKinEq RotDrvM={
AnyKinRotational rot={
AnyFixedRefFrame &ref1= Main.rat_model.ground;
AnyRefFrame &LabOrigin = Main.rat_model.Seg.GroundSegmentM;
Type=RotAxesAngles; };
};

(3) Driving the measure

AnyKinEqInterPolDriver Driver = {
Type = PiecewiseLinear ;
FileName = “GroundDriver_trans.txt”;
AnyKinMeasure &ref = .PLin;
};

(4) Using the code from the Gait3D model

AnyReacForce GroundFootContactForceM = {

AnyKinLinear Lin={
//very very important this ensure that the reaction is
between artifical segment and the foot
//and not between foot and globalref if Ref had been equal -1
which is default
Ref=0;
AnySeg &ref1 = Main.rat_model.Seg.GroundSegmentM;
AnyRefNode &ref2 =Main.rat_model.Seg.metatarsus;

};

(5) Applying the forces

AnyForce3D GRF1 ={
AnyFunInterpol force = {
Type = PiecewiseLinear;
FileName =“GRF_M.txt”;
};
AnySeg &ref1 = Main.rat_model.Seg.GroundSegmentM;
F=force(t);
};

Now I get the warning:
Model Warning: Study ‘Main.MyStudy’ contains more reaction forces
than rigid-body degrees of freedom of the segments. The model may be
statically indeterminate. There are 49 reactions and only 48 rigid
body degrees of freedom.

Here are some model informations:
Total number of rigid-body d.o.f.: 48
Total number of constraints:
Joints: 25
Drivers: 17
Other: 6
Total: 48

Total number of active reaction and driver forces: 49

I can’t understand where the problem is. Can anybody help?

Regards

Dieter

— In anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com> ,
“dieterkassgim” <dieterkassgim@…>
wrote:
>
> Hi Jean-Olivier,
>
> thanks for the answer. I’ve tried to work through the gait3d
> Environment.any file but like you already said it’s very difficult
> for a beginner like me to follow the example.
>
> That’s why I prefer the Node solution:
>
> AnyForce3D GRF1 ={
> AnyFunInterpol force ={
> Type=Bspline;
> BsplineOrder = 8;
> FileName =“GRF_M2.txt”;};
> AnyRefNode &ref1=Main.rat_model.Seg.metatarsus.GRF_M;
> // F fuer globale angreifende Kraft
> // FLocal fuer lokale angreifende Kraft
> F=force(t);
> };
>
> The only problem that I have now is that I would like to have the
> RefNode moved during the timesteps in the local coordinate system.
I
> tried to implement a driver but that way my perfectly constraint
> model became overconstrained. Is there a way to move a RefNode of a
> segment in the local coordinate system by timesteps?
>
> Regards
>
> Dieter
>
> — In anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com> ,
Jean-Olivier Racine <joracine@>
> wrote:
> >
> > Hello Peter,
> >
> >
> >
> > I am not sure I understand exactly your problem, but I’ll try to
> help you
> > with what I’ve got.
> >
> >
> >
> > To my understanding:
> >
> > 1. You use the C3D import to get the force plate data,
which
> has 7826
> > frames.
> >
> > 2. You use the C3D import to get the motion capture data,
> which has
> > 1119 frames.
> >
> > 3. You have a AnyBodyStudy that has nStep = 1119.
> >
> >
> >
> > So right now, you are using directly the analog data in the
> AnyForce3D in
> > something that looks like this:
> >
> > AnyForce3D TheForce = {
> >
> > F = C3D.ForcePlate.Data;
> >
> > };
> >
> >
> >
> > If this is how you do it, then you don’t need a force plate file,
> what you
> > can do is use the AnyFunInterpol class with something like this:
> >
> > AnyForce3D TheForce = {
> >
> > AnyFunInterpol Data = {
> >
> > Type = Bspline;
> >
> > BsplineOrder = 8;
> >
> > Data = C3D.Analog.ForcePlate.Time;
> >
> > Data = C3D.Analog.ForcePlate.Data;
> >
> > };
> >
> > F = Data(t);
> >
> > };
> >
> >
> >
> > Naturally, you have to replace the C3D paths with valid ones. The
> > ForcePlate.Time should have the same number of values has your
> force plate
> > data (7826).
> >
> >
> >
> > This will make anybody interpolate you force plate data to match
> the number
> > of frames (and time of each frame) has your motion capture data.
> >
> >
> >
> > Does that help you?
> >
> >
> >
> > Jean-Olivier Racine
> >
> > joracine@
> >
> > HumanCAD development team
> >
> > Nexgen Ergonomics Inc.
> >
> >
> >
> > From: anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com>
[mailto:anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com> ]
> On Behalf
> > Of Peter Worsley
> > Sent: Tuesday, March 11, 2008 9:47 AM
> > To: anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com>
> > Subject: RE: [AnyScript] Applying ground reaction forces
> >
> >
> >
> >
> > Hi Jean-Olivier,
> >
> > I am also trying to unput force plate data into my gait model,
> > I have 8 analog channels giving my 2x 2y and 4*z data sets.
> > I have started to script in the environment file based on a
Florida
> model
> > that has similar analog data. I am coming unstuck where my analog
> data does
> > not have
> > a time or frame number column. I have tried to make a column but I
> > keep on getting the same error;
> >
> > ‘force.Data’ : The matrix must contain the same number of columns
> as T has
> > elements, i.e., the number of data and parameter values must match
> >
> > I have 7826 analog figures and only 1119 frames of motion
capture.
> > I have no forceplate.txt file, do you think i should create one
or
> stick
> > with inputting the analog data?
> >
> > Many thanks
> >
> > peter
> >
> > Jean-Olivier Racine <jean-olivier.racine.1@
> > <mailto:jean-olivier.racine.1%40ens.etsmtl.ca> > wrote: Hello
> Dieter,
> >
> > There’s a good example of this in the Gait3D model example
> (repository, in
> > ARep/Gait3D) (in environment.any). Although not the simplest way
to
> do it,
> > it is the most volatile.
> >
> > If you want to keep it simple, and just include the data directly
> in the
> > AnyForce3D, you can do as in the example:
> >
> > AnyForce3D ForceOnForcePlate1 ={
> >
> > AnyFunInterpol force ={
> >
> > Type=Bspline;
> >
> > BsplineOrder = 8;
> >
> > FileName =“ForcePlate1.txt”;
> >
> > };
> >
> > AnySeg &ref1=.CenterOfPressure1;
> >
> > F=force(t);
> >
> > };
> >
> > Which create a AnyFunInterpol object, that holds all the data
from
> you file
> > and “feeds” it to the AnyForce3D class, through the force(t)
> parameter.
> > CenterOfPressure1 could be replaced by a node on a segment to
make
> things
> > simple. But in general, this is not the best idea: you should
> probably
> > follow the example quite closely.
> >
> > Hope this helps and good luck,
> >
> > Jean-Olivier
> >
> > NexGen Ergonomics
> >
> > From: anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com>
<mailto:anyscript%40yahoogroups.com>
> > [mailto:anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com>
<mailto:anyscript%
> 40yahoogroups.com> ] On
> > Behalf
> > Of dieterkassgim
> > Sent: Monday, March 10, 2008 8:35 AM
> > To: anyscript@yahoogroups.com <mailto:anyscript%40yahoogroups.com>
<mailto:anyscript%40yahoogroups.com>
> > Subject: [AnyScript] Applying ground reaction forces
> >
> > Hi everyone,
> >
> > I’m looking for a possibility to apply ground reaction forces to
my
> > model. We are given the global vector to the position of the
> contact
> > point and also the vector of forces in the global coordinate
system.
> >
> > Like this:
> >
> > t rx ry rz
> > 0.0000000 -0.001578 0.0019055 -0.0041077
> > 0.0025350 -0.001578 0.0019055 -0.0040675
> > 0.0050700 -0.001578 0.0019055 -0.0040272
> > 0.0076050 -0.001578 0.0019055 -0.0039869
> > …
> > …
> >
> > and this:
> >
> > t ForceX ForceY ForceZ
> > 0.0000000 0 0 0
> > 0.0025350 -0.0022952 0.052367 0.0026903
> > 0.0050700 -0.0057498 0.10911 0.0054355
> > 0.0076050 -0.010264 0.17094 0.0083138
> > 0.0101400 -0.015739 0.23854 0.011403
> > …
> > …
> >
> > How can I include this data to the “AnyForce3D” class?
> >
> > AnyForce3D =
> > {
> > //F = {0, 0, 0};
> > //Flocal = {0, 0, 0};
> > AnyRefFrame & =
> > object definition)>;
> > };
> >
> > Kind regards,
> >
> > Dieter
> >
> > [Non-text portions of this message have been removed]
> >
> > Users of the AnyBody Modeling System help each other create
> biomechanical
> > models in the AnyScript language.
> > Yahoo! Groups Links
> >
> > ---------------------------------
> > Sent from Yahoo! Mail.
> > The World 's Favourite Email.
> >
> > [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]

Thanks a lot, Jean-Olivier! It works fine now!

Have a good day too!

Dieter

— In anyscript@yahoogroups.com, Jean-Olivier Racine <joracine@…>
wrote:
>
> Hello Dieter,
>
>
>
> Your problem is in step (3), you only drove the segment with a
linear
> driver. You have to drive its orientation too. Because we don’t
care about
> its orientation, you can just ensure that it is always aligned with
the
> global reference frame. In the Gait3D example, that driver is called
> RotDrv1. If you add this driver, everything should work fine.
>
>
>
> Have a good day!
>
>
>
> Jean-Olivier Racine
>
> joracine@…
>
> HumanCAD development team
>
> Nexgen Ergonomics Inc.
>
> http://www.nexgenergo.com/
>
>
>
> From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com]
On Behalf
> Of dieterkassgim
> Sent: Monday, March 17, 2008 9:28 AM
> To: anyscript@yahoogroups.com
> Subject: [AnyScript] Re: Applying ground reaction forces
>
>
>
> Hello,
>
> I’m still having trouble to implement the GRFs. This is what I did
> (analog to the 3D-Gait model):
>
> (1) Definig an additional segment:
>
> AnySeg GroundSegmentM = {
> r0 = {0, 0, 0};
> Axes0 = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}};
> Mass = 0;
> Jii={0.0,0.0,0.0};
> AnyRefNode GRF_M = {sRel = {0, 0, 0};
> };
> };
>
> (2) Implementing kinematic measures:
>
> AnyKinLinear PLin = {
> //Ref = -1;
> AnyFixedRefFrame &ref1= Main.rat_model.ground;
> AnyRefFrame &LabOrigin = Main.rat_model.Seg.GroundSegmentM;
> };
>
> AnyKinEq RotDrvM={
> AnyKinRotational rot={
> AnyFixedRefFrame &ref1= Main.rat_model.ground;
> AnyRefFrame &LabOrigin = Main.rat_model.Seg.GroundSegmentM;
> Type=RotAxesAngles; };
> };
>
> (3) Driving the measure
>
> AnyKinEqInterPolDriver Driver = {
> Type = PiecewiseLinear ;
> FileName = “GroundDriver_trans.txt”;
> AnyKinMeasure &ref = .PLin;
> };
>
> (4) Using the code from the Gait3D model
>
> AnyReacForce GroundFootContactForceM = {
>
> AnyKinLinear Lin={
> //very very important this ensure that the reaction is
> between artifical segment and the foot
> //and not between foot and globalref if Ref had been equal -1
> which is default
> Ref=0;
> AnySeg &ref1 = Main.rat_model.Seg.GroundSegmentM;
> AnyRefNode &ref2 =Main.rat_model.Seg.metatarsus;
>
> };
>
> (5) Applying the forces
>
> AnyForce3D GRF1 ={
> AnyFunInterpol force = {
> Type = PiecewiseLinear;
> FileName =“GRF_M.txt”;
> };
> AnySeg &ref1 = Main.rat_model.Seg.GroundSegmentM;
> F=force(t);
> };
>
> Now I get the warning:
> Model Warning: Study ‘Main.MyStudy’ contains more reaction forces
> than rigid-body degrees of freedom of the segments. The model may
be
> statically indeterminate. There are 49 reactions and only 48 rigid
> body degrees of freedom.
>
> Here are some model informations:
> Total number of rigid-body d.o.f.: 48
> Total number of constraints:
> Joints: 25
> Drivers: 17
> Other: 6
> Total: 48
>
> Total number of active reaction and driver forces: 49
> ----------------------------------------------------------
>
> I can’t understand where the problem is. Can anybody help?
>
> Regards
>
> Dieter
> –
>
> — In anyscript@yahoogroups.com
<mailto:anyscript%40yahoogroups.com> ,
> “dieterkassgim” <dieterkassgim@>
> wrote:
> >
> > Hi Jean-Olivier,
> >
> > thanks for the answer. I’ve tried to work through the gait3d
> > Environment.any file but like you already said it’s very
difficult
> > for a beginner like me to follow the example.
> >
> > That’s why I prefer the Node solution:
> >
> > AnyForce3D GRF1 ={
> > AnyFunInterpol force ={
> > Type=Bspline;
> > BsplineOrder = 8;
> > FileName =“GRF_M2.txt”;};
> > AnyRefNode &ref1=Main.rat_model.Seg.metatarsus.GRF_M;
> > // F fuer globale angreifende Kraft
> > // FLocal fuer lokale angreifende Kraft
> > F=force(t);
> > };
> >
> > The only problem that I have now is that I would like to have the
> > RefNode moved during the timesteps in the local coordinate
system.
> I
> > tried to implement a driver but that way my perfectly constraint
> > model became overconstrained. Is there a way to move a RefNode of
a
> > segment in the local coordinate system by timesteps?
> >
> > Regards
> >
> > Dieter
> >
> > — In anyscript@yahoogroups.com
<mailto:anyscript%40yahoogroups.com> ,
> Jean-Olivier Racine <joracine@>
> > wrote:
> > >
> > > Hello Peter,
> > >
> > >
> > >
> > > I am not sure I understand exactly your problem, but I’ll try
to
> > help you
> > > with what I’ve got.
> > >
> > >
> > >
> > > To my understanding:
> > >
> > > 1. You use the C3D import to get the force plate data,
> which
> > has 7826
> > > frames.
> > >
> > > 2. You use the C3D import to get the motion capture data,
> > which has
> > > 1119 frames.
> > >
> > > 3. You have a AnyBodyStudy that has nStep = 1119.
> > >
> > >
> > >
> > > So right now, you are using directly the analog data in the
> > AnyForce3D in
> > > something that looks like this:
> > >
> > > AnyForce3D TheForce = {
> > >
> > > F = C3D.ForcePlate.Data;
> > >
> > > };
> > >
> > >
> > >
> > > If this is how you do it, then you don’t need a force plate
file,
> > what you
> > > can do is use the AnyFunInterpol class with something like this:
> > >
> > > AnyForce3D TheForce = {
> > >
> > > AnyFunInterpol Data = {
> > >
> > > Type = Bspline;
> > >
> > > BsplineOrder = 8;
> > >
> > > Data = C3D.Analog.ForcePlate.Time;
> > >
> > > Data = C3D.Analog.ForcePlate.Data;
> > >
> > > };
> > >
> > > F = Data(t);
> > >
> > > };
> > >
> > >
> > >
> > > Naturally, you have to replace the C3D paths with valid ones.
The
> > > ForcePlate.Time should have the same number of values has your
> > force plate
> > > data (7826).
> > >
> > >
> > >
> > > This will make anybody interpolate you force plate data to
match
> > the number
> > > of frames (and time of each frame) has your motion capture data.
> > >
> > >
> > >
> > > Does that help you?
> > >
> > >
> > >
> > > Jean-Olivier Racine
> > >
> > > joracine@
> > >
> > > HumanCAD development team
> > >
> > > Nexgen Ergonomics Inc.
> > >
> > >
> > >
> > > From: anyscript@yahoogroups.com
<mailto:anyscript%40yahoogroups.com>
> [mailto:anyscript@yahoogroups.com
<mailto:anyscript%40yahoogroups.com> ]
> > On Behalf
> > > Of Peter Worsley
> > > Sent: Tuesday, March 11, 2008 9:47 AM
> > > To: anyscript@yahoogroups.com
<mailto:anyscript%40yahoogroups.com>
> > > Subject: RE: [AnyScript] Applying ground reaction forces
> > >
> > >
> > >
> > >
> > > Hi Jean-Olivier,
> > >
> > > I am also trying to unput force plate data into my gait model,
> > > I have 8 analog channels giving my 2x 2y and 4*z data sets.
> > > I have started to script in the environment file based on a
> Florida
> > model
> > > that has similar analog data. I am coming unstuck where my
analog
> > data does
> > > not have
> > > a time or frame number column. I have tried to make a column
but I
> > > keep on getting the same error;
> > >
> > > ‘force.Data’ : The matrix must contain the same number of
columns
> > as T has
> > > elements, i.e., the number of data and parameter values must
match
> > >
> > > I have 7826 analog figures and only 1119 frames of motion
> capture.
> > > I have no forceplate.txt file, do you think i should create one
> or
> > stick
> > > with inputting the analog data?
> > >
> > > Many thanks
> > >
> > > peter
> > >
> > > Jean-Olivier Racine <jean-olivier.racine.1@
> > > <mailto:jean-olivier.racine.1%40ens.etsmtl.ca> > wrote: Hello
> > Dieter,
> > >
> > > There’s a good example of this in the Gait3D model example
> > (repository, in
> > > ARep/Gait3D) (in environment.any). Although not the simplest
way
> to
> > do it,
> > > it is the most volatile.
> > >
> > > If you want to keep it simple, and just include the data
directly
> > in the
> > > AnyForce3D, you can do as in the example:
> > >
> > > AnyForce3D ForceOnForcePlate1 ={
> > >
> > > AnyFunInterpol force ={
> > >
> > > Type=Bspline;
> > >
> > > BsplineOrder = 8;
> > >
> > > FileName =“ForcePlate1.txt”;
> > >
> > > };
> > >
> > > AnySeg &ref1=.CenterOfPressure1;
> > >
> > > F=force(t);
> > >
> > > };
> > >
> > > Which create a AnyFunInterpol object, that holds all the data
> from
> > you file
> > > and “feeds” it to the AnyForce3D class, through the force(t)
> > parameter.
> > > CenterOfPressure1 could be replaced by a node on a segment to
> make
> > things
> > > simple. But in general, this is not the best idea: you should
> > probably
> > > follow the example quite closely.
> > >
> > > Hope this helps and good luck,
> > >
> > > Jean-Olivier
> > >
> > > NexGen Ergonomics
> > >
> > > From: anyscript@yahoogroups.com
<mailto:anyscript%40yahoogroups.com>
> <mailto:anyscript%40yahoogroups.com>
> > > [mailto:anyscript@yahoogroups.com
<mailto:anyscript%40yahoogroups.com>
> <mailto:anyscript%
> > 40yahoogroups.com> ] On
> > > Behalf
> > > Of dieterkassgim
> > > Sent: Monday, March 10, 2008 8:35 AM
> > > To: anyscript@yahoogroups.com
<mailto:anyscript%40yahoogroups.com>
> <mailto:anyscript%40yahoogroups.com>
> > > Subject: [AnyScript] Applying ground reaction forces
> > >
> > > Hi everyone,
> > >
> > > I’m looking for a possibility to apply ground reaction forces
to
> my
> > > model. We are given the global vector to the position of the
> > contact
> > > point and also the vector of forces in the global coordinate
> system.
> > >
> > > Like this:
> > >
> > > t rx ry rz
> > > 0.0000000 -0.001578 0.0019055 -0.0041077
> > > 0.0025350 -0.001578 0.0019055 -0.0040675
> > > 0.0050700 -0.001578 0.0019055 -0.0040272
> > > 0.0076050 -0.001578 0.0019055 -0.0039869
> > > …
> > > …
> > >
> > > and this:
> > >
> > > t ForceX ForceY ForceZ
> > > 0.0000000 0 0 0
> > > 0.0025350 -0.0022952 0.052367 0.0026903
> > > 0.0050700 -0.0057498 0.10911 0.0054355
> > > 0.0076050 -0.010264 0.17094 0.0083138
> > > 0.0101400 -0.015739 0.23854 0.011403
> > > …
> > > …
> > >
> > > How can I include this data to the “AnyForce3D” class?
> > >
> > > AnyForce3D =
> > > {
> > > //F = {0, 0, 0};
> > > //Flocal = {0, 0, 0};
> > > AnyRefFrame & =
> > > object definition)>;
> > > };
> > >
> > > Kind regards,
> > >
> > > Dieter
> > >
> > > [Non-text portions of this message have been removed]
> > >
> > > Users of the AnyBody Modeling System help each other create
> > biomechanical
> > > models in the AnyScript language.
> > > Yahoo! Groups Links
> > >
> > > ---------------------------------
> > > Sent from Yahoo! Mail.
> > > The World 's Favourite Email.
> > >
> > > [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]
>