PS - Re: [AnyScript] Re: Increasing DOF in the wheelchair model - continued

I just changed all the markers that were in the BRep to the ARep, and I realize
now why I had done what I did. When I try to run the model and
SetInitialConditions the way I have the markers set up now, the model fails.
However, when I have specific nodes, declared in the BRep, for the Sternum and
ACLatBord (on the scapula), the model compiles. So for example, when I have the
AnyRefNode &Sternum as shown below, the model runs. However when I change that
below to AnySeg &Sternum = Main.MyArm.HumanModel.Trunk.SegmentsThorax.ThoraxSeg;
I can’t get the model to SetInitialConditions.

AnyKinEqSimpleDriver STNDriver = {
AnyKinLinear STN = {
Ref = 0;
AnyRefNode &Sternum =
Main.MyArm.HumanModel.Trunk.SegmentsThorax.ThoraxSeg.STNMarker;
AnyRefFrame &ref1 = Main.MyArm.Markers.p1.Seg;
AnyDrawPLine drw={Thickness=0.0015;RGB={0,0,1};};
//Sternum ={AnyDrawRefFrame drw1={RGB={0,1,0};};};
};

 MeasureOrganizer = {0,2};
 DriverPos = {0.0,0};
 DriverVel = {0.0,0};
 Reaction.Type={Off,Off};

};

AnyKinEqSimpleDriver RSHODriver = {
AnyKinLinear RSHOMarkerLin = {
//Ref = 0;
ref2={AnyDrawRefFrame drw2 = {ScaleXYZ={0.15,0.15,0.15};RGB={0,1,0};};};
AnyRefNode &ref2 =
Main.MyArm.HumanModel.Right.ShoulderArm.Seg.Scapula.ACLatBord;
AnyRefFrame &ref1 = Main.MyArm.Markers.p5.Seg;
AnyDrawPLine drw = {Thickness=0.0015;RGB={0,0,1};};
};
MeasureOrganizer = {0};
DriverPos = {0};
DriverVel = {0};
Reaction.Type = {0};
};

How do I change this to go about it correctly without altering the BRep so that
the model still compiles?

Thanks for your help,
Sarah

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

> Date: Wed Jun 27 08:18:42 EDT 2007
> From: “AnyBody Support” <support@anybodytech.com>
> Subject: [AnyScript] Re: Increasing DOF in the wheelchair model - continued
> To: anyscript@yahoogroups.com
>
>
>
> Hi Sarah
>
> The first error you get means that this muscle is overstretched the
> quick fix to this is to switch to the simple muscle model, by
> shifting the include statement, this i would recommend at this stage
> of the model. Shifting the muscle model may help on the recruiment
> problems, too.
>
> The second error is a wrapping error; the fix is usually to increase
> the property SPLine.StringMesh for example by 10 or 20.
>
>
> I have tried to run your model but i miss some markers you have
> defined in the BRep i think.
>
> In the MarkerPosOnBody.any file you define the some new markers by
> creating nodes inside markernodes already existing
>
> So the lines
>
> // AnyFolder &C7 =
> Main.MyArm.HumanModel.Trunk.SegmentsThorax.ThoraxSeg.C7Marker;
> // C7={
> // AnyRefNode C7 = {
> // sRel = {0,0,0};//{-0.06,0.005,0};//{-0.03,-.028,0.00};
> // AnyDrawNode drw={
> // ScaleXYZ={0.01,.01,.01};
> // RGB={0,0,1};
> // };
> // };
> // };
>
> Will create a new node “C7” inside the node named “C7Marker” i do
> not really understand the purpose of this.
>
> I think it would be better to do the following
>
> AnyFolder &thorax =
> Main.MyArm.HumanModel.Trunk.SegmentsThorax.ThoraxSeg;
> // thorax={
> // AnyRefNode C7Marker = {
> // sRel = x?, y?, z?
> // AnyDrawNode drw={
> // ScaleXYZ={0.01,.01,.01};
> // RGB={0,0,1};
> // };
> // };
> // };
>
> and then at the same time remove the markers from the bRep.
>
> This will allow me to run you model without changeing the BRep.
>
>
> Best regards
> Søren
>
>
> — In anyscript@yahoogroups.com, “Sarah R. Sullivan” <sarsulli@…>
> wrote:
> >
> > Thank you for all your help, Soren! I have slowly made progress
> > increasing the degrees of freedom in the model by driving the
> pelvis
> > and trunk positions with mocap data, however I still have a few
> > questions. First off, let me tell you what I have done so far:
> >
> > - Using trochanter markers, I am able to drive the pelvis in
> the x-
> > (anterior/posterior), y- (inferior/superior), and z-
> (medial/lateral)
> > directions. I drive the right trochanter in the x- and y-
> directions,
> > and the left trochanter in the y- and z- directions. In lieu of
> these
> > drivers, I have taken out the old “SeatHeight” driver.
> > - Using the shoulder markers (lateral border of the AC), I am
> driving
> > the x- direction (sterno-clavicular protraction/retraction) with
> mocap
> > data. To do this I took out the corresponding driver in the
> > “SCDriverRight” and “SCDriverLeft.” I still however, am unable to
> > successfully drive the elevation/depression of the shoulders,
> which I
> > eventually want to be able to do.
> > - I am driving the sternum in the x- and z- directions, the C7
> marker
> > in the z- direction, and the T3 marker in the y- direction. I have
> > removed the “SeatBackDriver,” and the PelvisThoraxLateralBending
> and
> > PelvisThoraxRotation from the “PostureDriver” (I still have the
> > PelvisThoraxExtension being driven by the “PostureDriver”).
> >
> > I can get the model to compile, and SetInitialConditions, however
> the
> > individual is inaccurately tilted to the left (see the two images I
> > have uploaded showing the mocap data at pushrim contact for this
> > particular individual). When I run the KinematicAnalysis I get the
> > following warning at frame 46 (out of 58):
> >
> > WARNING(OBJ.MCH.MUS2) :
> > BRep\Aalborg\Arm3D\Muscle-parameters-shoulder.any(1310) :
> > ‘trapezius_scapular_part_4’ : Muscle without strength : The
> muscle
> > has been stretched too much
> >
> > Followed by the error in frame 55:
> >
> > ERROR : BRep\Aalborg\Arm3D\Muscle.any(36) :
> > biceps_brachii_caput_breve : Unexpected exception in the
> library
> > OOSol : OOSol exception : General factorization exception :
> Negative
> > or zero pivot
> >
> > At which point the analysis ends.
> >
> > I would still like to completely free up the posture driver and
> have
> > something drive the thorax flexion/extension (I am still unsure
> as
> > to how to potentially re-adjust the STN, C7, and T3 markers to do
> > this). And I want to allow elevation/depression of the shoulders
> by
> > taking out the driver that holds this constant (in the
> SCDriverRight
> > and –Left), by using the shoulder markers to do this.
> >
> > I have uploaded the current model (SarahArmModel - Muscles -
> > IncreasingDOF_6-22-07.zip), in which there are the aforementioned
> > pictures (PASaggital.jpeg and PAFrontal.bmp) for reference. If you
> > could take a look at it and give me any suggestions you may have, I
> > would really appreciate it!
> >
> > As always, thank you for your help,
> > Sarah
> >
> > PS – At this point, I’m not too concerned because I think when the
> > kinematics are correct it may help, but I am currently unable to
> get
> > the InverseDynamicAnalysis to run at all due to the following
> problem:
> >
> > ERROR(OBJ1) : ArmModel.main.any(61) : ‘MyStudy’ : Muscle
> > recruitment analysis failed, simplex solver reports that solution
> does
> > not satisfy all constraints.
> >
> > Like I said, I think that with correct kinematics this may change,
> but
> > I figured I would let you know about my problems with this
> analysis.
> >
>
>

Hi Sarah

It should make no difference to the model from where you add the
extra marker nodes.

Please try to add them both from the Brep and from the Arep with
small names differences, and then check that the “r” property of the
nodes are exactly the same when the kinematics has been resolved. If
this is the case it should work.

When i look at the lines below the linear measures and drivers looks
ok, but i do not understand why you would want to replace the line

 AnyRefNode &Sternum =

Main.MyArm.HumanModel.Trunk.SegmentsThorax.ThoraxSeg.STNMarker;

with

AnySeg &Sternum =
Main.MyArm.HumanModel.Trunk.SegmentsThorax.ThoraxSeg;

In the previous email we were discussing that the extra marker nodes
should be created inside your application not directly inside the
BRep.

So in MarkerPosOnBody.any you should write something like

> > AnyFolder &thorax =
> > Main.MyArm.HumanModel.Trunk.SegmentsThorax.ThoraxSeg;
> > // thorax={
> > // AnyRefNode C7Marker = {
> > // sRel = x?, y?, z?
> > // AnyDrawNode drw={
> > // ScaleXYZ={0.01,.01,.01};
> > // RGB={0,0,1};
> > // };
> > // };
> > // };

Andy the driver using this marker could look like

> AnyKinEqSimpleDriver C7Driver = {
> AnyKinLinear C7 = {
> Ref = 0;
> AnyRefNode &c7 =
Main.MyArm.HumanModel.Trunk.SegmentsThorax.ThoraxSeg.C7Marker;
> AnyRefFrame &ref1 = Main.MyArm.Markers.p?.Seg;
> };
>
> MeasureOrganizer = {??};
> DriverPos = {??};
> DriverVel = {??};
> Reaction.Type={??};
> };

I hope this made it more clear

Best regards
Søren, AnyBody Support

– In anyscript@yahoogroups.com, “Sarah R. Sullivan” <sarsulli@…>
wrote:
>
> I just changed all the markers that were in the BRep to the ARep,
and I realize now why I had done what I did. When I try to run the
model and SetInitialConditions the way I have the markers set up
now, the model fails. However, when I have specific nodes, declared
in the BRep, for the Sternum and ACLatBord (on the scapula), the
model compiles. So for example, when I have the AnyRefNode &Sternum
as shown below, the model runs. However when I change that below to
AnySeg &Sternum =
Main.MyArm.HumanModel.Trunk.SegmentsThorax.ThoraxSeg; I can’t get
the model to SetInitialConditions.
>
> AnyKinEqSimpleDriver STNDriver = {
> AnyKinLinear STN = {
> Ref = 0;
> AnyRefNode &Sternum =
Main.MyArm.HumanModel.Trunk.SegmentsThorax.ThoraxSeg.STNMarker;
> AnyRefFrame &ref1 = Main.MyArm.Markers.p1.Seg;
> AnyDrawPLine drw={Thickness=0.0015;RGB={0,0,1};};
> //Sternum ={AnyDrawRefFrame drw1={RGB={0,1,0};};};
> };
>
> MeasureOrganizer = {0,2};
> DriverPos = {0.0,0};
> DriverVel = {0.0,0};
> Reaction.Type={Off,Off};
> };
>
> AnyKinEqSimpleDriver RSHODriver = {
> AnyKinLinear RSHOMarkerLin = {
> //Ref = 0;
> ref2={AnyDrawRefFrame drw2 = {ScaleXYZ={0.15,0.15,0.15};RGB=
{0,1,0};};};
> AnyRefNode &ref2 =
Main.MyArm.HumanModel.Right.ShoulderArm.Seg.Scapula.ACLatBord;
> AnyRefFrame &ref1 = Main.MyArm.Markers.p5.Seg;
> AnyDrawPLine drw = {Thickness=0.0015;RGB={0,0,1};};
> };
> MeasureOrganizer = {0};
> DriverPos = {0};
> DriverVel = {0};
> Reaction.Type = {0};
> };
>
> How do I change this to go about it correctly without altering the
BRep so that the model still compiles?
>
> Thanks for your help,
> Sarah
>
>
> -----Original Message-----
>
> > Date: Wed Jun 27 08:18:42 EDT 2007
> > From: “AnyBody Support” <support@…>
> > Subject: [AnyScript] Re: Increasing DOF in the wheelchair model -
continued
> > To: anyscript@yahoogroups.com
> >
> >
> >
> > Hi Sarah
> >
> > The first error you get means that this muscle is overstretched
the
> > quick fix to this is to switch to the simple muscle model, by
> > shifting the include statement, this i would recommend at this
stage
> > of the model. Shifting the muscle model may help on the
recruiment
> > problems, too.
> >
> > The second error is a wrapping error; the fix is usually to
increase
> > the property SPLine.StringMesh for example by 10 or 20.
> >
> >
> > I have tried to run your model but i miss some markers you have
> > defined in the BRep i think.
> >
> > In the MarkerPosOnBody.any file you define the some new markers
by
> > creating nodes inside markernodes already existing
> >
> > So the lines
> >
> > // AnyFolder &C7 =
> > Main.MyArm.HumanModel.Trunk.SegmentsThorax.ThoraxSeg.C7Marker;
> > // C7={
> > // AnyRefNode C7 = {
> > // sRel = {0,0,0};//{-0.06,0.005,0};//{-0.03,-.028,0.00};
> > // AnyDrawNode drw={
> > // ScaleXYZ={0.01,.01,.01};
> > // RGB={0,0,1};
> > // };
> > // };
> > // };
> >
> > Will create a new node “C7” inside the node named “C7Marker” i
do
> > not really understand the purpose of this.
> >
> > I think it would be better to do the following
> >
> > AnyFolder &thorax =
> > Main.MyArm.HumanModel.Trunk.SegmentsThorax.ThoraxSeg;
> > // thorax={
> > // AnyRefNode C7Marker = {
> > // sRel = x?, y?, z?
> > // AnyDrawNode drw={
> > // ScaleXYZ={0.01,.01,.01};
> > // RGB={0,0,1};
> > // };
> > // };
> > // };
> >
> > and then at the same time remove the markers from the bRep.
> >
> > This will allow me to run you model without changeing the BRep.
> >
> >
> > Best regards
> > Søren
> >
> >
> > — In anyscript@yahoogroups.com, “Sarah R. Sullivan”
<sarsulli@>
> > wrote:
> > >
> > > Thank you for all your help, Soren! I have slowly made
progress
> > > increasing the degrees of freedom in the model by driving the
> > pelvis
> > > and trunk positions with mocap data, however I still have a few
> > > questions. First off, let me tell you what I have done so far:
> > >
> > > - Using trochanter markers, I am able to drive the pelvis in
> > the x-
> > > (anterior/posterior), y- (inferior/superior), and z-
> > (medial/lateral)
> > > directions. I drive the right trochanter in the x- and y-
> > directions,
> > > and the left trochanter in the y- and z- directions. In lieu
of
> > these
> > > drivers, I have taken out the old “SeatHeight” driver.
> > > - Using the shoulder markers (lateral border of the AC), I am
> > driving
> > > the x- direction (sterno-clavicular protraction/retraction)
with
> > mocap
> > > data. To do this I took out the corresponding driver in the
> > > “SCDriverRight” and “SCDriverLeft.” I still however, am
unable to
> > > successfully drive the elevation/depression of the shoulders,
> > which I
> > > eventually want to be able to do.
> > > - I am driving the sternum in the x- and z- directions, the C7
> > marker
> > > in the z- direction, and the T3 marker in the y- direction. I
have
> > > removed the “SeatBackDriver,” and the
PelvisThoraxLateralBending
> > and
> > > PelvisThoraxRotation from the “PostureDriver” (I still have the
> > > PelvisThoraxExtension being driven by the “PostureDriver”).
> > >
> > > I can get the model to compile, and SetInitialConditions,
however
> > the
> > > individual is inaccurately tilted to the left (see the two
images I
> > > have uploaded showing the mocap data at pushrim contact for
this
> > > particular individual). When I run the KinematicAnalysis I
get the
> > > following warning at frame 46 (out of 58):
> > >
> > > WARNING(OBJ.MCH.MUS2) :
> > > BRep\Aalborg\Arm3D\Muscle-parameters-shoulder.any(1310) :
> > > ‘trapezius_scapular_part_4’ : Muscle without strength :
The
> > muscle
> > > has been stretched too much
> > >
> > > Followed by the error in frame 55:
> > >
> > > ERROR : BRep\Aalborg\Arm3D\Muscle.any(36) :
> > > biceps_brachii_caput_breve : Unexpected exception in the
> > library
> > > OOSol : OOSol exception : General factorization exception :
> > Negative
> > > or zero pivot
> > >
> > > At which point the analysis ends.
> > >
> > > I would still like to completely free up the posture driver
and
> > have
> > > something drive the thorax flexion/extension (I am still
unsure
> > as
> > > to how to potentially re-adjust the STN, C7, and T3 markers to
do
> > > this). And I want to allow elevation/depression of the
shoulders
> > by
> > > taking out the driver that holds this constant (in the
> > SCDriverRight
> > > and –Left), by using the shoulder markers to do this.
> > >
> > > I have uploaded the current model (SarahArmModel - Muscles -
> > > IncreasingDOF_6-22-07.zip), in which there are the
aforementioned
> > > pictures (PASaggital.jpeg and PAFrontal.bmp) for reference.
If you
> > > could take a look at it and give me any suggestions you may
have, I
> > > would really appreciate it!
> > >
> > > As always, thank you for your help,
> > > Sarah
> > >
> > > PS – At this point, I’m not too concerned because I think when
the
> > > kinematics are correct it may help, but I am currently unable
to
> > get
> > > the InverseDynamicAnalysis to run at all due to the following
> > problem:
> > >
> > > ERROR(OBJ1) : ArmModel.main.any(61) : ‘MyStudy’ : Muscle
> > > recruitment analysis failed, simplex solver reports that
solution
> > does
> > > not satisfy all constraints.
> > >
> > > Like I said, I think that with correct kinematics this may
change,
> > but
> > > I figured I would let you know about my problems with this
> > analysis.
> > >
> >
> >
>