Setting up RRA for a 6Dof joint

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Anders Sandholm
Posts: 30
Joined: Thu Feb 22, 2007 1:53 pm

Setting up RRA for a 6Dof joint

Post by Anders Sandholm » Fri Jun 04, 2010 12:16 am

Hi,

I have some problem setting up the Actuators, ControlConstraints and Task file for a 6Dof joint.

What i have is a 6DoF joint, but there is no <function> in the <TransformAxis>, instead we solve the IK in a special IK tool, which gives the rotation and translation for each coordinate.

What I have is 3 translation nodes (here only one is shown)

<Coordinate name="knee_angle_r">
<default_value> 0.00000000 </default_value>
<initial_value> 0.00000000 </initial_value>
<tolerance> 0.00000001 </tolerance>
<stiffness> 0.00000000 </stiffness>
<range> -2.09439510 0.17453293 </range>
<keys> k_key </keys>
<clamped> true </clamped>
<locked> false </locked>
<restraint_function/>
<min_restraint_function/>
<max_restraint_function/>
<restraint_active> false </restraint_active>
<prescribed_function/>
</Coordinate>

and three translation nodes (here only one shown)

<Coordinate name="knee_r_tx">
<default_value> 0.00000000 </default_value>
<initial_value> 0.00000000 </initial_value>
<tolerance> 0.00000001 </tolerance>
<stiffness> 0.00000000 </stiffness>
<range> -5.00000000 5.00000000 </range>
<keys> p_key </keys>
<clamped> true </clamped>
<locked> false </locked>
<restraint_function/>
<min_restraint_function/>
<max_restraint_function/>
<restraint_active> false </restraint_active>
<prescribed_function/>
</Coordinate>

and a TransformAxis for each coordinate (here only one of each is shown)
<TransformAxis name="tx">
<function/>
<coordinate> knee_r_tx </coordinate>
<is_rotation> false </is_rotation>
<axis> 1.00000000 0.00000000 0.00000000 </axis>
</TransformAxis>
<TransformAxis name="r1">
<function/>
<coordinate> knee_angle_r </coordinate>
<is_rotation> true </is_rotation>
<axis> 0.00000000 0.00000000 1.00000000 </axis>
</TransformAxis>

My problem is that whatever i change the models tibia flyies of but the body goes through the ground (i think due to gravity..)

In the setup files for the RRA i have added the following.

Actuators (for each coordinate)
<GeneralizedForce name="knee_r_adduction">
<coordinate>
knee_r_adduction
</coordinate>
<optimal_force> 100.0 </optimal_force>
</GeneralizedForce>

ControlConstraints
<ControlLinear name="knee_r_adduction.excitation" />

Task (for each)
<rdCMC_Joint name="knee_r_adduction">
<wrt_body> -1 </wrt_body>
<express_body> -1 </express_body>
<on> true </on>
<active> true false false </active>
<weight> 2.0e1 </weight>
<kp> 100.0 </kp>
<kv> 20.0 </kv>
<coordinate> knee_r_adduction </coordinate>
</rdCMC_Joint>


Does anyone know if (RRA, CMC, Static optimization) OpenSim can handle joints without a function?

Am I missing something, I guess that the body part that most resemble the tibia in my model is the pelvis. Should i therefor also add the <Force name="FX"> and <Torque name="MX"> to my tibia.
I tried to find as much information in the manual, but could not figure this out.

Any clue would be really helpful.

Best regards
Anders




User avatar
Ayman Habib
Posts: 2248
Joined: Fri Apr 01, 2005 12:24 pm

RE: Setting up RRA for a 6Dof joint

Post by Ayman Habib » Fri Jun 04, 2010 4:26 pm

Anders,

By making the knee 6-dof joint, you're taking on the responsibility of making sure that the knee kinematics are correct (from the point of view of all the tools, the knee translations are fair game, same as pelvis translations) so it's expected that the IK solver will translate the knee as needed to reduce marker errors. If you know the kinematics you can enforce them by prescribing or locking coordinates (e.g. knee_r_ty). I'd also expect if these were not locked or prescribed that RRA can use them to reduce the residuals (which would be non-physical)

The overriding question is, why do you want to model the knee as a 6-dof?
-Ayman

POST REPLY