Hi Soren,
Thanks for your help - you are right, I had made some nodes in the BRep files on
the thorax and scapula for the C7, T3, STN, and AC markers. I have now changed
that so that everything is contained in the ARep. Before I re-upload the file,
I have a question that might help me figure out some of my problems. I have
just realized that the body is slightly twisted in space - not perfectly aligned
to the global reference system as would be indicated in the model. This makes
sense, as when the Vicon mocap cameras are calibrated and the wheelchair
subsequently placed for analysis, it would be nearly impossible to align the
subject/wheelchair up exactly as the room has been calibrated (with regards to
the coordinate systems). So, for example, when I am trying to drive the pelvis
based on coordinates relative to the hubs (whose axes are not aligned with the
global coordinate axes), I have typed in the following:
AnyKinLinear PelvisPos = {
AnyFixedRefFrame &Ground = …EnvironmentModel.GlobalRef;
AnyRefNode &Tuber =
Main.MyArm.HumanModel.Trunk.SegmentsLumbar.PelvisSeg.TuberIschiadicumCenter;
};
AnyKinRotational PelvisRot = {
AnyFixedRefFrame &Ground = …EnvironmentModel.GlobalRef;
AnySeg &Pelvis = Main.MyArm.HumanModel.Trunk.SegmentsLumbar.PelvisSeg;
Type = RotAxesAngles;
};
AnyReacForce PelvisReac = {
AnyKinRotational &ref = .PelvisRot;
};
AnyKinEqSimpleDriver SeatHeight = {
AnyKinLinear &PelvisRot = .PelvisPos;
MeasureOrganizer = {2};
DriverPos = {
0.0125307 //This is because the subject is not evenly situated in the
chair - they are shifted slightly to the right
};
DriverVel = {0};
Reaction.Type = {1};
};
And the fact that I have the following as well:
AnyKinRotational ThoraxRot = {
AnySeg &Thorax= .Thorax;
AnyFixedRefFrame &Ground = …EnvironmentModel.GlobalRef;
Type = RotAxesAngles;
};
Won’t these commands be a problem if the body is slightly twisted in space?
Maybe I am a little confused, but I think I have to rearrange the global axes to
align with the hubs axes if I want to drive my markers with respect to the hub.
Am I correct in thinking this? If so, do you have any suggestions as to how to
go about this, or if I am incorrect, can you point me in the right direction?
Thank you again for your time,
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.
> >
>
>