196 lines (147 with data), 5.6 kB
/* ----------------------------------------------------------------
Drivers for the model:
-The model is driven by connecting recorded markers with equivalnet markers on the body
Soeren, March 15, 2006.
---------------------------------------------------------------- */
AnyFolder Drivers = {
// Aliases for convenient referencing
AnyFolder &JntPos=..Mannequin.Posture;
AnyFolder &JntVel=..Mannequin.PostureVel;
AnyFolder &Thorax = ..BodyModel.Trunk.SegmentsThorax.ThoraxSeg;
AnyFolder &ref=Main.Model.BodyModel.Trunk;
// ************************************
// Drivers for attaching the pelvis to the global reference system
// ************************************
AnyKinEqSimpleDriver PelvisGroundDriver ={
AnyKinRotational rot ={
AnyFixedRefFrame &ref1 =....EnvironmentModel.GlobalRef;
AnySeg &ref2 =....BodyModel.Trunk.SegmentsLumbar.PelvisSeg;
Type=RotAxesAngles;
};
DriverPos={
pi/180*.JntPos.PelvisRotZ,
pi/180*.JntPos.PelvisRotY,
pi/180*.JntPos.PelvisRotX
};
DriverVel={
pi/180*.JntVel.PelvisRotX,
pi/180*.JntVel.PelvisRotY,
pi/180*.JntVel.PelvisRotZ
};
Reaction.Type={On,On,On};
};
AnyReacForce PelvisGroundLinReac={
AnyKinLinear lin ={
AnyFixedRefFrame &ref1 =....EnvironmentModel.GlobalRef;
AnySeg &ref2 =....BodyModel.Trunk.SegmentsLumbar.PelvisSeg;
};
};
AnyKinEqSimpleDriver IncisuraJungularisDrv = {
AnyKinLinear lin = {
Ref=1;
AnySeg &ref1 = Main.Model.Markers.MAN.Seg;
AnyRefNode &ref2 = Main.Model.BodyModel.Trunk.SegmentsThorax.ThoraxSeg.IncisuraJungularisMarker;
};
MeasureOrganizer={0,1,2};
DriverPos={0,0.0,0};
DriverVel={0,0,0};
Reaction.Type={Off,Off,Off};
};
AnyKinEqSimpleDriver ProcessusXiphoideus = {
AnyKinLinear lin = {
Ref=0;
AnyRefNode &ref2 = Main.Model.BodyModel.Trunk.SegmentsThorax.ThoraxSeg.ProcessusXiphoideusMarker;
AnySeg &ref1 = Main.Model.Markers.XIP.Seg;
//ref2={AnyDrawRefFrame drwq={};};
};
MeasureOrganizer={0,2};
DriverPos={0.0,0};
DriverVel={0,0};
Reaction.Type={Off,Off};
};
AnyKinEqSimpleDriver T10Drv = {
AnyKinLinear lin = {
Ref=1;
AnySeg &ref1 = Main.Model.Markers.T10.Seg;
AnyRefNode &ref2 = Main.Model.BodyModel.Trunk.SegmentsThorax.ThoraxSeg.T10Marker;
};
MeasureOrganizer={2};
DriverPos={0};
DriverVel={0};
Reaction.Type={Off};
};
// ************************************
// Drivers for the spine
// ************************************
//Neck driver
AnyKinEqSimpleDriver NeckJntDriver = {
AnyKinMeasure& lb = ...BodyModel.Interface.Trunk.SkullThoraxLateralBending;
AnyKinMeasure& ar = ...BodyModel.Interface.Trunk.SkullThoraxRotation;
AnyKinMeasure& fe = ...BodyModel.Interface.Trunk.SkullThoraxFlexion;
DriverPos = pi/180*{.JntPos.NeckLateralBending, .JntPos.NeckRotation, -1*.JntPos.NeckExtension};
DriverVel = pi/180*{.JntVel.NeckLateralBending, .JntVel.NeckRotation, -1*.JntVel.NeckExtension};
Reaction.Type = {Off, Off, Off};
};
// ************************************
// Drivers for the right arm
// ************************************
//Sterno clavicular joint driver
AnyKinEqSimpleDriver SCDriverRight ={
AnyKinMeasure& ref1 =...BodyModel.Interface.Right.SternoClavicularProtraction;
AnyKinMeasure& ref2 =...BodyModel.Interface.Right.SternoClavicularElevation;
DriverPos = pi/180*{
.JntPos.Right.SternoClavicularProtraction,
.JntPos.Right.SternoClavicularElevation
};
DriverVel = {
.JntVel.Right.SternoClavicularProtraction,
.JntVel.Right.SternoClavicularElevation
};
Reaction.Type={Off,Off};
};
AnyKinEqSimpleDriver RightLateralEpicondyleDrv ={
AnyKinLinear Lin={
Ref=0;
AnyRefFrame &ref1 = Main.Model.BodyModel.Right.ShoulderArm.Seg.Humerus.LateralEpicondyleMarker;
AnyRefFrame &ref2=Main.Model.Markers.RLEP.Seg;
};
MeasureOrganizer={0,2};
DriverPos={0,0};
DriverVel={0,0};
Reaction.Type={Off,Off};
};
AnyKinEqSimpleDriver RadialStyloidMarkerDrv ={
AnyKinLinear Lin={
Ref=0;
//ref1={AnyDrawRefFrame drw2={};};
AnyRefFrame &ref1 = Main.Model.BodyModel.Right.ShoulderArm.Seg.Radius.RadialStyloidMarker;
AnyRefFrame &ref2=Main.Model.Markers.RRSP.Seg;
};
MeasureOrganizer={2};
DriverPos={0};
DriverVel={0};
Reaction.Type={Off};
};
AnyKinEqSimpleDriver UlnaStyloidMarkerDrv ={
AnyKinLinear Lin={
Ref=0;
AnyRefFrame &ref1 = Main.Model.BodyModel.Right.ShoulderArm.Seg.Ulna.UlnaStyloidMarker;
AnyRefFrame &ref2=Main.Model.Markers.RUSP.Seg;
};
MeasureOrganizer={0,2};
DriverPos={0,0};
DriverVel={0,0};
Reaction.Type={Off,Off};
};
AnyKinEqSimpleDriver RightMetacarpophalangelJoint3Drv ={
AnyKinLinear Lin={
Ref=0;
AnyRefFrame &ref1 = Main.Model.BodyModel.Right.ShoulderArm.Seg.Hand.MetacarpophalangealJoint3Marker;
AnyRefFrame &ref2=Main.Model.Markers.RM3.Seg;
};
MeasureOrganizer={1,2};
DriverPos={0,0};
DriverVel={0,0};
Reaction.Type={Off,Off};
};
};//Drivers