Motion Capture Data Error Check

Hi,

I am analyzing motion capture data for upper body extremities using the GaitFullBody Model. Most of the data sets are running for few seconds (1 or 2 seconds, sometimes less than a second) and then the simulation stops. For example, please check the attachment. Moreover, the simulation does not look that good when looked at the model view window. My questions are:

Am I not placing the the markers close enough to the virtual markers on the AnyBody model? Is that causing the problem? Is there any motion capture data cleaning issue? if that is the case, Is there any way I can check the motion capture data for errors. For example missing (marker drops) markers, Or if the data is not cleaned properly for example assigning a wrong id to a marker.

Hi,

On the example you sent the initial position of the body is too far from the markers. So it fails from the begining. Put the body closer and it will start the optimisation.
When the simulation stops after a few steps in your model it seems to be because of the scapula/thorax contact. The shoulder is strongly pulled away at some point and you can see in the model view that the scapula disconects from the rib cage. Increase a little the arm length should help. Depending on what you want to investigate you can also consider fixing the scapula motion and just move the GH joint.

Best regards, Sylvain.

I am only interested in glenohumeral, elbow, hand-wrist motion only. I don’t need to move scapula. Great idea I think. Could you please let me know how to fix the scapula? Thanks for the valuable reply.

You can add those two drivers in the file ExtraDrivers.any:

AnyKinEqSimpleDriver SCDriverLeft ={
AnyKinMeasureOrg &ref1 =…HumanModel.BodyModel.Interface.Left.SternoClavicularProtraction;
AnyKinMeasureOrg &ref2 =…HumanModel.BodyModel.Interface.Left.SternoClavicularElevation;
AnyKinMeasureOrg &ref3 =…HumanModel.BodyModel.Interface.Left.SternoClavicularAxialRotation;
DriverPos = pi/180*{
.JntPos.Left.SternoClavicularProtraction,
.JntPos.Left.SternoClavicularElevation,
.JntPos.Left.SternoClavicularAxialRotation
};
DriverVel = pi/180*{
.JntVel.Left.SternoClavicularProtraction,
.JntVel.Left.SternoClavicularElevation,
.JntVel.Left.SternoClavicularAxialRotation
};
Reaction.Type={Off,Off,Off};
};
AnyKinEqSimpleDriver SCDriverRight ={
AnyKinMeasureOrg &ref1 =…HumanModel.BodyModel.Interface.Right.SternoClavicularProtraction;
AnyKinMeasureOrg &ref2 =…HumanModel.BodyModel.Interface.Right.SternoClavicularElevation;
AnyKinMeasureOrg &ref3 =…HumanModel.BodyModel.Interface.Right.SternoClavicularAxialRotation;
DriverPos = pi/180*{
.JntPos.Right.SternoClavicularProtraction,
.JntPos.Right.SternoClavicularElevation,
.JntPos.Right.SternoClavicularAxialRotation
};
DriverVel = pi/180*{
.JntVel.Right.SternoClavicularProtraction,
.JntVel.Right.SternoClavicularElevation,
.JntVel.Right.SternoClavicularAxialRotation
};
Reaction.Type={Off,Off,Off};
};

Best regards, Sylvain.