Movement in FreePostureHandSR

Hi There,
I have a problem with the movement in the application
FreePostureHandSR.

I use the AMMR 1.3 in anybody 5.0 .

I want to move the wrist with an fixed position of the arm and shoulder.

Therefor I define the wished angles in the mannequin.any file.
Then i want to stop the drivers movement an in the RightArmDrivers.any file I change the DriverVel to zero and the Reaction type to “off”. I do so for both the glenohumeral joint, the sternoclavicular joint and the elbow joint.

When I now load the modell, everything looks allright, but when starting a kinematic study, the arm moves upwards, and pronates.

So I have following questions:
-How do I set up the drivers to keep the arm in the defined position?
-How do I allow the wrist to move?

Thanks again for your Help

Best wishes

Julian

Hi Julian,

All you have to do is modify the Mannequin file values. If necessary download again a clean version of the repository. The FreePostureHandSR model is static by default, so you have to change the nStep value in the Study.
Then simply input the velocity for the wrist joint in the Mannequin file, and leave the other velocities to zero. And that’s all, only the wrist will move now. No need to touch the driver files.

Best regards, Sylvain.

Thanks for your help.
That is what I wa s doing, but first it didnt work.
Now with a new repository it works well.

Where can I now set the borderangles for the wrist movement, I want to move it within defined ankles.

Best Regards

Julian

Hi Julian,

The wrist position will start at the angle defined in the Posture folder of the Mannequin file (unit is deg). Then it will rotate at the defined velocity (in the Velocity folder of the mannequin file, unit is deg/sec) during the time of the simulation (tStart end tEnd in the Study, unit seconds). So the range of motion is defined by time*angular velocity.

Best regards, Sylvain.

Thanks for all the help, simulation works well.

What if i want to move a joint (WJ Flexion) from 0° to -60° and from -60° to 60° in one fluent motion?

Is there something like a Sinus with borders to determine the motion?

Regards

Julian

Hi Julian,

Yes there is such driver. It is the AnyKinEqFourierDriver, you can choose sinus or cosinus and set the frequency, amplitude etc.
See the reference manual for details on how to use it.

Best regards, Sylvain.

Hi Sylvain,
Everthing seems to work well, i am setting up parameter studys right now, and there seems to be some problems.

If I try to drive the values of Mannequin.any in the parameter studies, i do it this way:

[SIZE=3]AnyDesVar[/SIZE]WristFlexion={
Val=Main.Model.Mannequin.Posture.Right.WristFlexion;
Min=Val-30;
Max=Val+30;
};
[SIZE=3]AnyDesVar[/SIZE]WristAbduction={
Val=Main.Model.Mannequin.Posture.Right.WristAbduction;
Min=Val-15;
Max=Val+15;
};

But the Modell still moves in the way I defined it in the Mannequin.any file, and not as the parameter study defines it.

Hi,

The first thing to check is that the kinematic is really dependent of those mannequin values (you could have created a driver not using those). So try changing the mannequin value manually and run a normal study to see if this has the effect you want.

When this is done, check that the nStep of the parameter study is more than 1. If it is equal to 1 i think the parameter study only runs the simulation for the unmodified value of the DesignVar.

Best regards, Sylvain.

I have done everything you say before, and both the Inverse Dynamics works well and the steps are set to a value different from 1.
I think it is a problem related the “adress” of the Val .

BTW I am still using FreePostureHandSR in Repository 1.3.1.

Thanks for the help

Julian

Ok, there could some other problems in the way the study is defined. I will need to see your model to give you a more detailed help. Please send it if you want me to look at it.

Best regards, Sylvain.

Hi there.
everything works well, and i don’t have any problems with the study.

Now for something completely different:

Is there any any method to proof, that the hand model in FreePostureHandSR is valid?

How has AnybodyTech made the validation?

Best Regards

Julian

Hi Julian,

I think the best is to look at our Wiki, the list of publications might be interesting for you. I don’t think that the FreePostureHand was speficially validated, but there are several validation studies out there; not sure what exactly you are looking into, but I do remember 2 or 3 papers regarding finger mechanics (Wu et al Journal of Biomechanics 2010):
“They compare forces in the index finger obtained from biomechanical experiments and calculations in AnyBody with good correlations in the results. The authors conclude that the current study represents a step towards a realistic hand model for surgeons to predict the biomechanical consequences of the surgical intervention thereby to optimize the chances of hand function recovering.”
The section for validation in the Wiki should explain, what validation methods are used and applied.

Hi!

Actually I am trying to make the validation, but there are still a few thinks i don’t understand.

When I perform a wristflexion from 0° to -60°, with a posture like this (GHangles set to 0 and Elbowflexion 90°):

http://www.thearsen.com/lagerhaus/Ausgangsposition.jpg

The Studys is defined as:

tStart = 0.00001; 
tEnd = 2.0;
Gravity = {0.0, -9.81, 0.0};
nStep = 10;

The Startposture of the wrist is 0° and the vel is -30°

I perform the flexion in an inverseDynamics study.

Lets take a look at the results in Chart FX2 :

The flexor-muscles (Main.Study.Output.Model.HumanModel.Right.ShoulderArm.Mus.Flexor_*.Fm) work like this:

The extensor-muscles (Main.Study.Output.Model.HumanModel.Right.ShoulderArm.Mus.Extensor_*.Fm) work like this:

The activity of the flexor muscles looks like this(Main.Study.Output.Model.HumanModel.Right.ShoulderArm.Mus.Flexor_*.Activity):

The wrist joint reactions (Main.Study.Output.Model.HumanModel.Right.ShoulderArm.Jnt.WristJointFlexion.Constraints.Reaction.Fout) look like this:

Here are my questions:

Why is the force running like it does?
Why is the force starting at the maximum and then tending to 0 ?
How can the reaction forces be described? (I know each is a missing DOF, bus which one is which DOF?)
Why are the activitys equal to the forces?
What is the difference between CorrectedActivity and Activity?
does anyone has an example where the Activity is compared to EMG results?

I know this is a bunch of (maybee stupid) but I am very confused…

Best regards

Julian

Hi Julian,

first, don’t get confused by the names of the muscles. Some of the Flexor muscles are for the finger-flexion and have nothing to do with the wrist flexion. Look exactly what muscles are responsible for wrist flexion. Flex/Ext_carpi_* and palmaris.
Mus_Flexor_Carpi_Ulnaris seems to be the most important one for that example.

I would also suggest to include a little load to the palm (have a look at the validation BergmanGH study to see how it’s done with a dumbbell), and your flexion seems a bit extreme.

Activity is often compared to EMG, but i’m not aware of any case using the arm, wrist or hand.

Amir

When I try to integrate the Wrist Joint reaction force in the Parameterstudy like this:

AnyDesMeasure Flexion_Fout = {
Val = Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.WristJointFlexion.Constraints.Reaction.Fout;
};
It says:

ERROR(SCR.EXP1) : D:/U..s/J..n/e..e/A..5/A..n/E..s/F..R/FreePosture.Main.any : '=' : Illegal operation for given argument types : 'AnyFloat' '=' 'AnyFloat[5]'

Why?
Is it not possible to measure Joint reaction forces in a paramterstudy?

Regards

Julian

Hi Julian,

The Val menber of the AnyDesMeasure is a on dimension value. Whereas the WristJointFlexion.Constraints.Reaction.Fout is a five dimensions array (because it is a revolute joint).
So if you are interested in all five components of the reaction force then you can make a AnyDesMeasure for each of the compenents:

AnyDesMeasure Flexion_Fout0 = {
Val = Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.WristJointFlexion.Constraints.Reaction.Fout[0];
};

AnyDesMeasure Flexion_Fout1 = {
Val = Main.HumanModel.BodyModel.Right.ShoulderArm.Jnt.WristJointFlexion.Constraints.Reaction.Fout[1];
};

etc…

Best regards, Sylvain.