Specifications
191
It is advisable when modifying models to make changes in small steps and verify that the model is working
for each step. That way you can avoid agonies over mistakes that were made a long way upstream in the
process. So, before we make the second connection between the left hand and the handle let us remove the
now redundant constraints on the right arm and verify that it can move. We resolved in the introduction to
this lesson to remove the joint drivers for elbow flexion, shoulder rotation, and shoulder flexion. We can find
those drivers further down in the JointsAndDrivers file in this section:
// ************************************
// Drivers for the right arm
// ************************************
//Sterno clavicular joint driver
AnyKinEqSimpleDriver SCDriverRight ={
AnyKinMeasureOrg &ref1
=...HumanModel.Interface.Right.SternoClavicularJointProtraction;
AnyKinMeasureOrg &ref2
=...HumanModel.Interface.Right.SternoClavicularJointElevation;
AnyKinMeasureOrg &ref3
=...HumanModel.Interface.Right.SternoClavicularJointAxialRotation;
DriverPos = pi/180*{
.JntPos.Right.SternoClavicularJointProtraction,
.JntPos.Right.SternoClavicularJointElevation,
.JntPos.Right.SternoClavicularJointAxialRotation
};
DriverVel = {0.0,0.0,0};
Reaction.Type={Off,Off,Off};
};
//Glenohumeral joint
AnyKinEqSimpleDriver GHDriverRight={
AnyKinMeasureOrg &ref1 =...HumanModel.Interface.Right.GlenohumeralAbduction;
AnyKinMeasureOrg &ref2 =...HumanModel.Interface.Right.GlenohumeralFlexion;
AnyKinMeasureOrg &ref3 =...HumanModel.Interface.Right.GlenohumeralExternalRotation;
DriverPos=pi/180*{
.JntPos.Right.GlenohumeralAbduction, //GH joint
.JntPos.Right.GlenohumeralFlexion, //GH joint
.JntPos.Right.GlenohumeralExternalRotation //GH joint
};
DriverVel = pi/180*{
.JntVel.Right.GlenohumeralAbduction, //GH joint
.JntVel.Right.GlenohumeralFlexion, //GH joint
.JntVel.Right.GlenohumeralExternalRotation //GH joint
};
Reaction.Type={Off,Off,Off};
};
//Elbow flexion driver
AnyKinEqSimpleDriver ElbowFEDriverRight={
AnyKinMeasureOrg &Elbow =...HumanModel.Interface.Right.ElbowFlexion;
DriverPos=pi/180*{.JntPos.Right.ElbowFlexion};
DriverVel = pi/180*{.JntVel.Right.ElbowFlexion};
Reaction.Type={Off};
};
The elbow flexion driver is easy to remove simply by commenting it out. The glenohumeral driver has three
separate degrees of freedom of which we can remove the flexion and the joint rotation. When we do so, we
must remember to also remove their entries in the DriversPos, DriverVel and Reaction.Type specifications:
//Glenohumeral joint
AnyKinEqSimpleDriver GHDriverRight={










