58 lines (48 with data), 1.9 kB
// Definitions of joints in the right lower extremity.
//
// Mark de Zee
#if BM_FOOT_MODEL == _FOOT_MODEL_DEFAULT_
/// Ankle joint definition
AnyUniversalJoint Ankle = {
Axis1 = z; //flexion extension
Axis2 = y; //abduction adduction
AnyRefNode &ShankNode = ..Seg.Shank.AnkleJoint;
AnyRefNode &FootNode = ..Seg.Foot.AnkleJoint;
Constraints.Reaction.Type = {On, On, On, Off}; //See reaction force below, AnkleAxialRotationMoment.
};
// This reaction force replace the reaction moment of the joint, the point is to have this reaction
// applied to the same kinematic measure as the joint muscles. This allowed to output correct moments
// on the joint muscles, otherwise there would be a contribution of the joint reaction to the general muscles
// that result in incorrect values for the eversion joint muscle.
AnyReacForce AnkleAxialRotationMoment ={
AnyKinMeasureOrg AnkleExternalRotation={
AnyKinRotational Ankle = {
Type=RotAxesAngles;
AngVelOnOff = On;
AnyRefNode &ShankNode = ....Seg.Shank.AnkleJoint.RotNode;
AnyRefNode &FootNode = ....Seg.Foot.AnkleJoint.RotNode;
};
MeasureOrganizer={0};
};
};
#endif
/*
AnyRevoluteJoint Ankle = {
Axis = z; //flexion extension
AnyRefNode &ShankNode = ..Seg.Shank.AnkleJoint;
AnyRefNode &FootNode = ..Seg.Foot.AnkleJoint;
}; // End of Ankle
*/
/// Knee joint definition
AnyRevoluteJoint Knee = {
Axis = z;
AnyRefNode &ThighNode = ..Seg.Thigh.KneeJoint;
AnyRefNode &ShankNode = ..Seg.Shank.KneeJoint;
// Constraints.Reaction.Type = {On, On, On, Off,Off};
}; // End of knee
/// Hip joint definition.
/// Defined with the femoral node first so reactions are reported in femur based reference frame.
AnySphericalJoint Hip = {
AnyRefNode &ThighNode = ..Seg.Thigh.HipJoint;
AnyRefNode &PelvisNode = ..HipNodeRef;
}; // End of Hip