Kinematic Constraints Exceeded - help with SetInitialPositions

Hi,

I have been working with Jerome on the standing sway model and I have
a couple of questions. First off, we were finally able to load the
model using the gait 3D marker system – we took a previous version
you had helped with and enabled the model to be driven purely by
markers (as opposed to the previous mixed driving system that drove
the model with both markers and joint drivers). We were struggling
for a while regarding the Ref = 0 parameter for each driver, however
when we referenced everything to the global coordinate system, that
problem was solved. The problem that remains is that there are a
couple of kinematic constraints that exceed the kinematic tolerance
and prevent the model from successfully running (FYI the KinematicTol
was set to 0.05 in the AnyStudy folder – I realize that this is too
high, however it was a good starting point for us).

There are a couple of differences between our model and the gait
model that may be responsible for the errors we are seeing, however
trouble shooting them ourselves has resulted in more questions than
answers:

1.) The gait model has a sacrum marker – we have two PSIS markers
(right and left). In the gait model, the sacrum is used to drive the
z-direction of the pelvis (medial-lateral position). To do that, we
are driving the RPSIS in the z-direction (and neglecting the LPSIS).
Are our Ref = ___ values correct?
2.) The gait model uses an AnyKinMeasureLinComb to combine the y-
direction of the kinematic measures for the right and left ASIS and
the Sacrum markers, and in combining those three, drives the pelvis
in global z-direction. To do that, we are using the right and left
ASIS (similar to the gait model), and the right PSIS. Using the same
format we are attempting to drive the height of the pelvis based on a
combination of these three markers. There are two things I don’t
understand with this though:
a. I know that the number of columns in the “Coef” is related to
the number of measures that we are looking at, but how do the values
get assigned? What is the difference between 1 and -1, and how do we
know how to assign our “Coef” matrix values? Adjusting the values
randomly appears to make differences in the value of our kinematic
constraints and I’m not sure how to explain this.
b. Should we be trying to do this with all four of our markers
instead of trying to mimic the fact that three are used in the gait
model? It seems that this is where we are getting errors in our
kinematic constraints. The model will load, but the
SetInitialPositions fails because of this one driver. Also, should
we combine the 2-PSIS markers in the same way to drive our model
similarly to the gait’s sacrum marker? Does this have anything to do
with setting the Ref = ___ values?
3.) Lastly, here are a couple of issues when the model tries to
SetInitialPositions:
a. The knees become hyperextended. It is clear that the motion
analysis markers should have the knees slightly flexed, not slightly
extended.
b. The ankles become slightly everted. Again, as above, it is
clear that the motion analysis markers should not have the ankles
rolled.
c. The feet are no longer moving (most likely as a result of the
fact that the model can’t fully run yet), but ideally the ankles
should be cyclically flexing and extending.
d.
In addition, we took the platform out because it was really just for
visual clarity (although I’m sure that’s clear from the model),
however we are going to eventually put it back in.

Any help in fixing the problems that I have mentioned above would be
greatly appreciated. I have uploaded the most recent model entitled
StandingSway in the file section of this user group.

Thank you in advance for your help,

Sarah

Hi Sarah

Normally i would always recommend making use of the local coordinate system,
otherwise the model will be driven differently if the direction of the
subject is changed.

Using a high kinematic tolerance can be ok when you are trying to resolve
kinematic problems, but it should be set to default value as soon as the
root of the problem is resolved, otherwise it will lead to strange and
flickering results.

Q1:

I think you should make use of the Ref=0 option this will give you the best
results, I have looked in the JointAndDriverlowerTorso file and seen that
the Ref=0 has been removed for almost all the markers. This changes the way
the model is driven completely, and it is difficult for me to tell if your
setup is correct or not, but I am sure that the missing Ref=0 will lead to
problems.

There should be no problem in changing the sacrum marker with the PSIS
marker, they are pretty close…

Q2a: This is the code in question

AnyKinEqSimpleDriver AllSisZDrv={

 AnyKinMeasureLinComb LinComb = {

   AnyKinMeasure &u1 = ..AsisRy;

   AnyKinMeasure &u2 = ..AsisLy;

  AnyKinMeasure &u4 = ..PsisRy;



   Coef={

    {-1,1,-1}



   };

 };

 DriverPos={0};

 DriverVel={0};

 Reaction.Type={Off};

};

This code will create a driver that will attempt o make the following
equation equal zero

-1AsisRy+1AsisLy-PsisRy=0

So I think this might not be what you are looking to obtain…

In the original model it looked like this

AnyKinEqSimpleDriver AsisZDrv={

 AnyKinMeasureLinComb LinComb = {

   AnyKinMeasure &u1 = ..AsisRy;

   AnyKinMeasure &u2 = ..AsisLy;

   AnyKinMeasure &u3 = ..SacrumLy;



   Coef={

     {-1,-1,1}

   };

 };

 DriverPos={0};

 DriverVel={0};

 Reaction.Type={Off};

};

Here the equation will be

-AsisRy-AsisLy+SacrumY =0

Which is the same as

-AsisRy-AsisLy=-SacrumY

So the sum of the hight differences on the asis markers should add up the
error on the sacrum marker.

Please read more about this object in the reference manual if needed.

Q2b You could use all four markers in the following way

AnyKinEqSimpleDriver AllSisZDrv={

 AnyKinMeasureLinComb LinComb = {

   AnyKinMeasure &u1 = ..AsisRy;

   AnyKinMeasure &u2 = ..AsisLy;

  AnyKinMeasure &u3 = ..PsisLy;

        AnyKinMeasure &u4 = ..PsisRy;





   Coef={

    {-1,-1,1,1}



   };

 };

 DriverPos={0};

 DriverVel={0};

 Reaction.Type={Off};

};

-1AsisRy-1AsisLy 1PsisLy+1PsisRy=0

The ref=0 is not in use in this measure directly but the measures which are
being used by this driver is of course so changing this ref in these
measures will have an impact.

Q3a These questions are related to the drivers making use of the Ref=0, may
resolve those issues…

On this webapage there are some general guidelines about how to resolve
kinematic problems

http://www.anybodytech.com/804.0.html

Repository 7 has recently been released; this repository contains a gait
model where the motion has been created using an external application named
GaitApplication2. This setup requires you to have a C3D but all the
questions about which marker to driver in which direction is gone and the
results are much better. The gaitapplication2 has been posted on this group
recently by Michael Skipper Andersen which has developed it, please read
posting #2143 and the recent posting by Michael some users have already
started to make use of it.

There is also a webcast on the topic, it can be seen on
http://www.anybodytech.com/199.0.html

It is still not easy do the first time you try it, but once you figure out
how it works it is rather easy, so in my opinion the time will be better
spend on using this method instead of on the old model :wink:

Best regards

Søren, AnyBody Support


From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
Of Sarah R. Sullivan
Sent: 13 May 2008 01:45
To: anyscript@yahoogroups.com
Subject: [AnyScript] Kinematic Constraints Exceeded - help with
SetInitialPositions

Hi,

I have been working with Jerome on the standing sway model and I have
a couple of questions. First off, we were finally able to load the
model using the gait 3D marker system – we took a previous version
you had helped with and enabled the model to be driven purely by
markers (as opposed to the previous mixed driving system that drove
the model with both markers and joint drivers). We were struggling
for a while regarding the Ref = 0 parameter for each driver, however
when we referenced everything to the global coordinate system, that
problem was solved. The problem that remains is that there are a
couple of kinematic constraints that exceed the kinematic tolerance
and prevent the model from successfully running (FYI the KinematicTol
was set to 0.05 in the AnyStudy folder – I realize that this is too
high, however it was a good starting point for us).

There are a couple of differences between our model and the gait
model that may be responsible for the errors we are seeing, however
trouble shooting them ourselves has resulted in more questions than
answers:

1.) The gait model has a sacrum marker – we have two PSIS markers
(right and left). In the gait model, the sacrum is used to drive the
z-direction of the pelvis (medial-lateral position). To do that, we
are driving the RPSIS in the z-direction (and neglecting the LPSIS).
Are our Ref = ___ values correct?
2.) The gait model uses an AnyKinMeasureLinComb to combine the y-
direction of the kinematic measures for the right and left ASIS and
the Sacrum markers, and in combining those three, drives the pelvis
in global z-direction. To do that, we are using the right and left
ASIS (similar to the gait model), and the right PSIS. Using the same
format we are attempting to drive the height of the pelvis based on a
combination of these three markers. There are two things I don’t
understand with this though:
a. I know that the number of columns in the “Coef” is related to
the number of measures that we are looking at, but how do the values
get assigned? What is the difference between 1 and -1, and how do we
know how to assign our “Coef” matrix values? Adjusting the values
randomly appears to make differences in the value of our kinematic
constraints and I’m not sure how to explain this.
b. Should we be trying to do this with all four of our markers
instead of trying to mimic the fact that three are used in the gait
model? It seems that this is where we are getting errors in our
kinematic constraints. The model will load, but the
SetInitialPositions fails because of this one driver. Also, should
we combine the 2-PSIS markers in the same way to drive our model
similarly to the gait’s sacrum marker? Does this have anything to do
with setting the Ref = ___ values?
3.) Lastly, here are a couple of issues when the model tries to
SetInitialPositions:
a. The knees become hyperextended. It is clear that the motion
analysis markers should have the knees slightly flexed, not slightly
extended.
b. The ankles become slightly everted. Again, as above, it is
clear that the motion analysis markers should not have the ankles
rolled.
c. The feet are no longer moving (most likely as a result of the
fact that the model can’t fully run yet), but ideally the ankles
should be cyclically flexing and extending.
d.
In addition, we took the platform out because it was really just for
visual clarity (although I’m sure that’s clear from the model),
however we are going to eventually put it back in.

Any help in fixing the problems that I have mentioned above would be
greatly appreciated. I have uploaded the most recent model entitled
StandingSway in the file section of this user group.

Thank you in advance for your help,

Sarah

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

Hi Søren,

Thank you so much for taking the time to help me out with this model. I realize
that there is a new GaitApplication2 Model in Repository 7, however before
transitioning to that, we wanted to finish up the model we had started. We were
hoping to be done with it in the next week or so in time to submit an abstract
for a fall conference, which is why we have stuck with this version of the model
(as soon as the abstract is in we will most likely transition to using the
GaitApplication2 Model).

Anyway, I have made the changes you suggest, and here are the problems I am
getting:

1.) First off, before any changes are made, the model will load however during
the SetInitialPositions phase, the model fails in time step 0, and the overall
kinematic constraint is 1.88e-01.

2.) When I set the KinematicTol to default in the main file, I get the same
kinematic constraint as in 1.), however this time I get about 60 constraints
that are “above error tolerance.”

3.) Next, I reset the KinematicTol back to 0.05, and when I added 4 markers to
drive the pelvis with the AnyKinMeasureLinComb the kinematic constraint
skyrocketed to 5.24e+05. There were numerous kinematic constraints that
exceeded the KinematicTol.

4.) In addition to number 3 above, I added back the Ref=0 (uncommented them),
and I got the resulting kinematic constraint to be even larger at 7.27e+09.

5.) After that, I went back to using 3-pelvis markers (instead of the 4), kept
the Ref=0 uncommented, and the resulting kinematic constraint is 9.9e+08.

So pretty much I tried everything you suggested and am still having some
problems. Any further suggestions would really be appreciated.

Lastly, I am a little confused regarding the Ref variable. In our situation, in
which Vicon collects 3-D marker trajectory data in reference to a Global
Reference point (defined during calibration), why wouldn’t we set our Ref=0 so
that our marker movement would be with respect to the Global Reference Frame?
Have we defined that wrong? By setting Ref=0 that throws the whole system off
hugely and I’m not understanding the reasoning why we wouldn’t have our markers
(as defined on the skeleton), in reference to the markers defined in space
driven with respect to the global calibrated reference frame?

Thanks so much for your help,
Sarah

-----Original Message-----

> Date: Tue May 13 04:41:45 EDT 2008
> From: “AnyBody Support” <support@anybodytech.com>
> Subject: RE: [AnyScript] Kinematic Constraints Exceeded - help with
SetInitialPositions
> To: anyscript@yahoogroups.com
>
> Hi Sarah
>
>
>
> Normally i would always recommend making use of the local coordinate system,
> otherwise the model will be driven differently if the direction of the
> subject is changed.
>
>
>
> Using a high kinematic tolerance can be ok when you are trying to resolve
> kinematic problems, but it should be set to default value as soon as the
> root of the problem is resolved, otherwise it will lead to strange and
> flickering results.
>
>
>
> Q1:
>
>
>
> I think you should make use of the Ref=0 option this will give you the best
> results, I have looked in the JointAndDriverlowerTorso file and seen that
> the Ref=0 has been removed for almost all the markers. This changes the way
> the model is driven completely, and it is difficult for me to tell if your
> setup is correct or not, but I am sure that the missing Ref=0 will lead to
> problems.
>
> There should be no problem in changing the sacrum marker with the PSIS
> marker, they are pretty close…
>
>
>
> Q2a: This is the code in question
>
>
>
> AnyKinEqSimpleDriver AllSisZDrv={
>
> AnyKinMeasureLinComb LinComb = {
>
> AnyKinMeasure &u1 = …AsisRy;
>
> AnyKinMeasure &u2 = …AsisLy;
>
> AnyKinMeasure &u4 = …PsisRy;
>
>
>
> Coef={
>
> {-1,1,-1}
>
>
>
> };
>
> };
>
> DriverPos={0};
>
> DriverVel={0};
>
> Reaction.Type={Off};
>
> };
>
>
>
> This code will create a driver that will attempt o make the following
> equation equal zero
>
>
>
> -1AsisRy+1AsisLy-PsisRy=0
>
>
>
> So I think this might not be what you are looking to obtain…
>
>
>
>
>
> In the original model it looked like this
>
>
>
> AnyKinEqSimpleDriver AsisZDrv={
>
> AnyKinMeasureLinComb LinComb = {
>
> AnyKinMeasure &u1 = …AsisRy;
>
> AnyKinMeasure &u2 = …AsisLy;
>
> AnyKinMeasure &u3 = …SacrumLy;
>
>
>
> Coef={
>
> {-1,-1,1}
>
> };
>
> };
>
> DriverPos={0};
>
> DriverVel={0};
>
> Reaction.Type={Off};
>
> };
>
>
>
>
>
> Here the equation will be
>
>
>
> -AsisRy-AsisLy+SacrumY =0
>
>
>
> Which is the same as
>
>
>
> -AsisRy-AsisLy=-SacrumY
>
>
>
> So the sum of the hight differences on the asis markers should add up the
> error on the sacrum marker.
>
>
>
> Please read more about this object in the reference manual if needed.
>
>
>
> Q2b You could use all four markers in the following way
>
>
>
> AnyKinEqSimpleDriver AllSisZDrv={
>
> AnyKinMeasureLinComb LinComb = {
>
> AnyKinMeasure &u1 = …AsisRy;
>
> AnyKinMeasure &u2 = …AsisLy;
>
> AnyKinMeasure &u3 = …PsisLy;
>
> AnyKinMeasure &u4 = …PsisRy;
>
>
>
>
>
> Coef={
>
> {-1,-1,1,1}
>
>
>
> };
>
> };
>
> DriverPos={0};
>
> DriverVel={0};
>
> Reaction.Type={Off};
>
> };
>
>
>
> -1AsisRy-1AsisLy 1PsisLy+1PsisRy=0
>
>
>
> The ref=0 is not in use in this measure directly but the measures which are
> being used by this driver is of course so changing this ref in these
> measures will have an impact.
>
>
>
> Q3a These questions are related to the drivers making use of the Ref=0, may
> resolve those issues…
>
> On this webapage there are some general guidelines about how to resolve
> kinematic problems
>
> http://www.anybodytech.com/804.0.html
>
>
>
> Repository 7 has recently been released; this repository contains a gait
> model where the motion has been created using an external application named
> GaitApplication2. This setup requires you to have a C3D but all the
> questions about which marker to driver in which direction is gone and the
> results are much better. The gaitapplication2 has been posted on this group
> recently by Michael Skipper Andersen which has developed it, please read
> posting #2143 and the recent posting by Michael some users have already
> started to make use of it.
>
> There is also a webcast on the topic, it can be seen on
> http://www.anybodytech.com/199.0.html
>
> It is still not easy do the first time you try it, but once you figure out
> how it works it is rather easy, so in my opinion the time will be better
> spend on using this method instead of on the old model :wink:
>
>
>
> Best regards
>
> Søren, AnyBody Support
>
>
>
>
>
> _____
>
> From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
> Of Sarah R. Sullivan
> Sent: 13 May 2008 01:45
> To: anyscript@yahoogroups.com
> Subject: [AnyScript] Kinematic Constraints Exceeded - help with
> SetInitialPositions
>
>
>
> Hi,
>
> I have been working with Jerome on the standing sway model and I have
> a couple of questions. First off, we were finally able to load the
> model using the gait 3D marker system – we took a previous version
> you had helped with and enabled the model to be driven purely by
> markers (as opposed to the previous mixed driving system that drove
> the model with both markers and joint drivers). We were struggling
> for a while regarding the Ref = 0 parameter for each driver, however
> when we referenced everything to the global coordinate system, that
> problem was solved. The problem that remains is that there are a
> couple of kinematic constraints that exceed the kinematic tolerance
> and prevent the model from successfully running (FYI the KinematicTol
> was set to 0.05 in the AnyStudy folder – I realize that this is too
> high, however it was a good starting point for us).
>
> There are a couple of differences between our model and the gait
> model that may be responsible for the errors we are seeing, however
> trouble shooting them ourselves has resulted in more questions than
> answers:
>
> 1.) The gait model has a sacrum marker – we have two PSIS markers
> (right and left). In the gait model, the sacrum is used to drive the
> z-direction of the pelvis (medial-lateral position). To do that, we
> are driving the RPSIS in the z-direction (and neglecting the LPSIS).
> Are our Ref = ___ values correct?
> 2.) The gait model uses an AnyKinMeasureLinComb to combine the y-
> direction of the kinematic measures for the right and left ASIS and
> the Sacrum markers, and in combining those three, drives the pelvis
> in global z-direction. To do that, we are using the right and left
> ASIS (similar to the gait model), and the right PSIS. Using the same
> format we are attempting to drive the height of the pelvis based on a
> combination of these three markers. There are two things I don’t
> understand with this though:
> a. I know that the number of columns in the “Coef” is related to
> the number of measures that we are looking at, but how do the values
> get assigned? What is the difference between 1 and -1, and how do we
> know how to assign our “Coef” matrix values? Adjusting the values
> randomly appears to make differences in the value of our kinematic
> constraints and I’m not sure how to explain this.
> b. Should we be trying to do this with all four of our markers
> instead of trying to mimic the fact that three are used in the gait
> model? It seems that this is where we are getting errors in our
> kinematic constraints. The model will load, but the
> SetInitialPositions fails because of this one driver. Also, should
> we combine the 2-PSIS markers in the same way to drive our model
> similarly to the gait’s sacrum marker? Does this have anything to do
> with setting the Ref = ___ values?
> 3.) Lastly, here are a couple of issues when the model tries to
> SetInitialPositions:
> a. The knees become hyperextended. It is clear that the motion
> analysis markers should have the knees slightly flexed, not slightly
> extended.
> b. The ankles become slightly everted. Again, as above, it is
> clear that the motion analysis markers should not have the ankles
> rolled.
> c. The feet are no longer moving (most likely as a result of the
> fact that the model can’t fully run yet), but ideally the ankles
> should be cyclically flexing and extending.
> d.
> In addition, we took the platform out because it was really just for
> visual clarity (although I’m sure that’s clear from the model),
> however we are going to eventually put it back in.
>
> Any help in fixing the problems that I have mentioned above would be
> greatly appreciated. I have uploaded the most recent model entitled
> StandingSway in the file section of this user group.
>
> Thank you in advance for your help,
>
> Sarah
>
>
>
>
>
> [Non-text portions of this message have been removed]
>

Hi Sarah

Here are some answers to the questions:

Q1: when the model fails in the intialpositions step this means that the
kinematic analysis has failed in the first time step.

Q2: this ok the largest kinematic error is stil the same there are just more
of the constraints which are above the tolerance…

Q3: sounds a bit strange, if this driver was added like I suggest I can not
see why the error should be this large.

One thing comes to my my mind, did you adjust the mannequin values so that
the human model is close to the recorded markers? It is very important to
have agood guess on the starting positions otherwise you will typicall see
errors in the first step.

Q4: I am sure the Ref=0 should be there even the error got larger…

Q5: it sounds as problem with the intial positions of the segments.

One more thing it is also important that the marker are positioned correctly
on the segments, like they where measured. So when you load the model the
blue and red markers should be close to each other, otherwise it may create
problems.

The free floating marker in the model are of course driven wrt global ref
system like they have been recorded. But when it comes to connecting them
with the equivalent marker on the segments it is important to use the local
coordinate system. Otherwise the model will be driven different if it
changes direction, you will also risk trying to stretch the segments for
certain positions. So it very important to understand this concept, there is
a tutorial on the topic that might be helpful
http://www.anybodytech.com/677.0.html

Best regards

Søren, AnyBody Support


From: anyscript@yahoogroups.com [mailto:anyscript@yahoogroups.com] On Behalf
Of Sarah R. Dubowsky
Sent: 13 May 2008 18:05
To: anyscript@yahoogroups.com
Subject: Re: RE: [AnyScript] Kinematic Constraints Exceeded - help with
SetInitialPositions

Hi Søren,

Thank you so much for taking the time to help me out with this model. I
realize that there is a new GaitApplication2 Model in Repository 7, however
before transitioning to that, we wanted to finish up the model we had
started. We were hoping to be done with it in the next week or so in time to
submit an abstract for a fall conference, which is why we have stuck with
this version of the model (as soon as the abstract is in we will most likely
transition to using the GaitApplication2 Model).

Anyway, I have made the changes you suggest, and here are the problems I am
getting:

1.) First off, before any changes are made, the model will load however
during the SetInitialPositions phase, the model fails in time step 0, and
the overall kinematic constraint is 1.88e-01.

2.) When I set the KinematicTol to default in the main file, I get the same
kinematic constraint as in 1.), however this time I get about 60 constraints
that are “above error tolerance.”

3.) Next, I reset the KinematicTol back to 0.05, and when I added 4 markers
to drive the pelvis with the AnyKinMeasureLinComb the kinematic constraint
skyrocketed to 5.24e+05. There were numerous kinematic constraints that
exceeded the KinematicTol.

4.) In addition to number 3 above, I added back the Ref=0 (uncommented
them), and I got the resulting kinematic constraint to be even larger at
7.27e+09.

5.) After that, I went back to using 3-pelvis markers (instead of the 4),
kept the Ref=0 uncommented, and the resulting kinematic constraint is
9.9e+08.

So pretty much I tried everything you suggested and am still having some
problems. Any further suggestions would really be appreciated.

Lastly, I am a little confused regarding the Ref variable. In our situation,
in which Vicon collects 3-D marker trajectory data in reference to a Global
Reference point (defined during calibration), why wouldn’t we set our Ref=0
so that our marker movement would be with respect to the Global Reference
Frame? Have we defined that wrong? By setting Ref=0 that throws the whole
system off hugely and I’m not understanding the reasoning why we wouldn’t
have our markers (as defined on the skeleton), in reference to the markers
defined in space driven with respect to the global calibrated reference
frame?

Thanks so much for your help,
Sarah

-----Original Message-----

> Date: Tue May 13 04:41:45 EDT 2008
> From: “AnyBody Support” <support@anybodytech
<mailto:support%40anybodytech.com> .com>
> Subject: RE: [AnyScript] Kinematic Constraints Exceeded - help with
SetInitialPositions
> To: anyscript@yahoogrou <mailto:anyscript%40yahoogroups.com> ps.com
>
> Hi Sarah
>
>
>
> Normally i would always recommend making use of the local coordinate
system,
> otherwise the model will be driven differently if the direction of the
> subject is changed.
>
>
>
> Using a high kinematic tolerance can be ok when you are trying to resolve
> kinematic problems, but it should be set to default value as soon as the
> root of the problem is resolved, otherwise it will lead to strange and
> flickering results.
>
>
>
> Q1:
>
>
>
> I think you should make use of the Ref=0 option this will give you the
best
> results, I have looked in the JointAndDriverlowerTorso file and seen that
> the Ref=0 has been removed for almost all the markers. This changes the
way
> the model is driven completely, and it is difficult for me to tell if your
> setup is correct or not, but I am sure that the missing Ref=0 will lead to
> problems.
>
> There should be no problem in changing the sacrum marker with the PSIS
> marker, they are pretty close…
>
>
>
> Q2a: This is the code in question
>
>
>
> AnyKinEqSimpleDriver AllSisZDrv={
>
> AnyKinMeasureLinComb LinComb = {
>
> AnyKinMeasure &u1 = …AsisRy;
>
> AnyKinMeasure &u2 = …AsisLy;
>
> AnyKinMeasure &u4 = …PsisRy;
>
>
>
> Coef={
>
> {-1,1,-1}
>
>
>
> };
>
> };
>
> DriverPos={0};
>
> DriverVel={0};
>
> Reaction.Type={Off};
>
> };
>
>
>
> This code will create a driver that will attempt o make the following
> equation equal zero
>
>
>
> -1AsisRy+1AsisLy-PsisRy=0
>
>
>
> So I think this might not be what you are looking to obtain…
>
>
>
>
>
> In the original model it looked like this
>
>
>
> AnyKinEqSimpleDriver AsisZDrv={
>
> AnyKinMeasureLinComb LinComb = {
>
> AnyKinMeasure &u1 = …AsisRy;
>
> AnyKinMeasure &u2 = …AsisLy;
>
> AnyKinMeasure &u3 = …SacrumLy;
>
>
>
> Coef={
>
> {-1,-1,1}
>
> };
>
> };
>
> DriverPos={0};
>
> DriverVel={0};
>
> Reaction.Type={Off};
>
> };
>
>
>
>
>
> Here the equation will be
>
>
>
> -AsisRy-AsisLy+SacrumY =0
>
>
>
> Which is the same as
>
>
>
> -AsisRy-AsisLy=-SacrumY
>
>
>
> So the sum of the hight differences on the asis markers should add up the
> error on the sacrum marker.
>
>
>
> Please read more about this object in the reference manual if needed.
>
>
>
> Q2b You could use all four markers in the following way
>
>
>
> AnyKinEqSimpleDriver AllSisZDrv={
>
> AnyKinMeasureLinComb LinComb = {
>
> AnyKinMeasure &u1 = …AsisRy;
>
> AnyKinMeasure &u2 = …AsisLy;
>
> AnyKinMeasure &u3 = …PsisLy;
>
> AnyKinMeasure &u4 = …PsisRy;
>
>
>
>
>
> Coef={
>
> {-1,-1,1,1}
>
>
>
> };
>
> };
>
> DriverPos={0};
>
> DriverVel={0};
>
> Reaction.Type={Off};
>
> };
>
>
>
> -1AsisRy-1AsisLy 1PsisLy+1PsisRy=0
>
>
>
> The ref=0 is not in use in this measure directly but the measures which
are
> being used by this driver is of course so changing this ref in these
> measures will have an impact.
>
>
>
> Q3a These questions are related to the drivers making use of the Ref=0,
may
> resolve those issues…
>
> On this webapage there are some general guidelines about how to resolve
> kinematic problems
>
> http://www.anybodyt <http://www.anybodytech.com/804.0.html>
ech.com/804.0.html
>
>
>
> Repository 7 has recently been released; this repository contains a gait
> model where the motion has been created using an external application
named
> GaitApplication2. This setup requires you to have a C3D but all the
> questions about which marker to driver in which direction is gone and the
> results are much better. The gaitapplication2 has been posted on this
group
> recently by Michael Skipper Andersen which has developed it, please read
> posting #2143 and the recent posting by Michael some users have already
> started to make use of it.
>
> There is also a webcast on the topic, it can be seen on
> http://www.anybodyt <http://www.anybodytech.com/199.0.html>
ech.com/199.0.html
>
> It is still not easy do the first time you try it, but once you figure out
> how it works it is rather easy, so in my opinion the time will be better
> spend on using this method instead of on the old model :wink:
>
>
>
> Best regards
>
> Søren, AnyBody Support
>
>
>
>
>
> _____
>
> From: anyscript@yahoogrou <mailto:anyscript%40yahoogroups.com> ps.com
[mailto:anyscript@yahoogrou <mailto:anyscript%40yahoogroups.com> ps.com] On
Behalf
> Of Sarah R. Sullivan
> Sent: 13 May 2008 01:45
> To: anyscript@yahoogrou <mailto:anyscript%40yahoogroups.com> ps.com
> Subject: [AnyScript] Kinematic Constraints Exceeded - help with
> SetInitialPositions
>
>
>
> Hi,
>
> I have been working with Jerome on the standing sway model and I have
> a couple of questions. First off, we were finally able to load the
> model using the gait 3D marker system – we took a previous version
> you had helped with and enabled the model to be driven purely by
> markers (as opposed to the previous mixed driving system that drove
> the model with both markers and joint drivers). We were struggling
> for a while regarding the Ref = 0 parameter for each driver, however
> when we referenced everything to the global coordinate system, that
> problem was solved. The problem that remains is that there are a
> couple of kinematic constraints that exceed the kinematic tolerance
> and prevent the model from successfully running (FYI the KinematicTol
> was set to 0.05 in the AnyStudy folder – I realize that this is too
> high, however it was a good starting point for us).
>
> There are a couple of differences between our model and the gait
> model that may be responsible for the errors we are seeing, however
> trouble shooting them ourselves has resulted in more questions than
> answers:
>
> 1.) The gait model has a sacrum marker – we have two PSIS markers
> (right and left). In the gait model, the sacrum is used to drive the
> z-direction of the pelvis (medial-lateral position). To do that, we
> are driving the RPSIS in the z-direction (and neglecting the LPSIS).
> Are our Ref = ___ values correct?
> 2.) The gait model uses an AnyKinMeasureLinComb to combine the y-
> direction of the kinematic measures for the right and left ASIS and
> the Sacrum markers, and in combining those three, drives the pelvis
> in global z-direction. To do that, we are using the right and left
> ASIS (similar to the gait model), and the right PSIS. Using the same
> format we are attempting to drive the height of the pelvis based on a
> combination of these three markers. There are two things I don’t
> understand with this though:
> a. I know that the number of columns in the “Coef” is related to
> the number of measures that we are looking at, but how do the values
> get assigned? What is the difference between 1 and -1, and how do we
> know how to assign our “Coef” matrix values? Adjusting the values
> randomly appears to make differences in the value of our kinematic
> constraints and I’m not sure how to explain this.
> b. Should we be trying to do this with all four of our markers
> instead of trying to mimic the fact that three are used in the gait
> model? It seems that this is where we are getting errors in our
> kinematic constraints. The model will load, but the
> SetInitialPositions fails because of this one driver. Also, should
> we combine the 2-PSIS markers in the same way to drive our model
> similarly to the gait’s sacrum marker? Does this have anything to do
> with setting the Ref = ___ values?
> 3.) Lastly, here are a couple of issues when the model tries to
> SetInitialPositions:
> a. The knees become hyperextended. It is clear that the motion
> analysis markers should have the knees slightly flexed, not slightly
> extended.
> b. The ankles become slightly everted. Again, as above, it is
> clear that the motion analysis markers should not have the ankles
> rolled.
> c. The feet are no longer moving (most likely as a result of the
> fact that the model can’t fully run yet), but ideally the ankles
> should be cyclically flexing and extending.
> d.
> In addition, we took the platform out because it was really just for
> visual clarity (although I’m sure that’s clear from the model),
> however we are going to eventually put it back in.
>
> Any help in fixing the problems that I have mentioned above would be
> greatly appreciated. I have uploaded the most recent model entitled
> StandingSway in the file section of this user group.
>
> Thank you in advance for your help,
>
> Sarah
>
>
>
>
>
> [Non-text portions of this message have been removed]
>

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