error on markertracking

Hi, I am Shim

I originally used a C3D file of actual walking. Now, I want to use a C3D file created in MotionBuilder with added markers, which simulates walking on a treadmill in place. However, I encounter an error during the marker tracking stage. The model loads and the parameters load fine, but the error occurs during marker tracking. I'm wondering if this is because the model has been switched to one that walks in place, or if it's because I have set the initial pose to a T-pose, whereas the original code did not.

error message is at this code.

AnyKinStudy MarkerTracking = {       
  AnyComponentDefinition obj = {};
  AnyFolder &C3DData= Main.ModelSetup.C3DFileData;
  AnyFolder &BodyModel = Main.HumanModel.BodyModelWithoutMuscles;
  AnyFolder &EnvironmentModel = Main.EnvironmentModel;
  AnyFolder ModelEnvironmentConnection = {
    AnyFolder &MarkerDrivers = Main.ModelSetup.MocapDrivers;
    AnyFolder &ExtraDrivers = Main.ModelSetup.MocapExtraDrivers;
  }; 

Thank you for helping me

image
image

Macro command : Load_parameters(10:10)> classoperation Main "Update Values"

Updating expressions...
...Finished updating expressions
1.0) Operation Sequence: (Operation: Main.RunAnalysis.MarkerTracking):
1.0.0) Operation Sequence: (Operation: Main.RunAnalysis.MarkerTracking.SubOperations):
1.0.0.0) Dummy operation: (Operation: Main.RunAnalysis.MarkerTracking.SubOperations.dummy):
1.0.1.0) Kinematics (Operation: Main.Studies.MarkerTracking.Kinematics):
1.0.1.0.0) PreOperation (Operation: Main.Studies.MarkerTracking.Kinematics.PreOperation):
1.0.1.0.0.0) InitialConditions (Operation: Main.Studies.MarkerTracking.InitialConditions):
1.0.1.0.0.0) ...Design variables have been updated.
1.0.1.0.0.1) ...Load-time positions have been re-established.
1.0.1.0.0.1.0) PreOperation (Operation: Main.Studies.MarkerTracking.InitialConditions.PreOperation):
1.0.1.0.0.1.0.0) Operation Sequence: (Operation: Main.ModelSetup.Views.SetViewMacros.KinematicView):
1.0.1.0.0.1.0.0.0) mcr (Operation: Main.ModelSetup.Views.SetViewMacros.KinematicView.mcr):

Macro command : mcr(1:1)> classoperation Main.ModelSetup.Views.KinematicView"Set View"

Progressing to solve kinematic optimality conditions and hard constraints.
Progressing to solve kinematic optimality conditions and hard constraints.
Progressing to solve kinematic optimality conditions and hard constraints.
Progressing to solve kinematic optimality conditions and hard constraints.
Failed to solve kinematic optimality conditions and hard constraints after 5 fallback attemps.
Constraint violations for study 'Main.Studies.MarkerTracking' :
Constraint #0 is above tolerance 1e-06, error = 0.000017, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SacrumPelvisJnt.Constraints'.
Constraint #1 is above tolerance 1e-06, error = 0.000012, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SacrumPelvisJnt.Constraints'.
Constraint #2 is above tolerance 1e-06, error = 0.000002, constr. #2 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SacrumPelvisJnt.Constraints'.
Constraint #3 is above tolerance 1e-06, error = 0.000260, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.L5SacrumJnt.Constraints'.
Constraint #4 is above tolerance 1e-06, error = 0.000116, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.L5SacrumJnt.Constraints'.
Constraint #5 is above tolerance 1e-06, error = 0.000008, constr. #2 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.L5SacrumJnt.Constraints'.
Constraint #6 is above tolerance 1e-06, error = 0.000084, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.L4L5Jnt.Constraints'.
Constraint #7 is above tolerance 1e-06, error = 0.000051, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.L4L5Jnt.Constraints'.
Constraint #8 is above tolerance 1e-06, error = 0.000038, constr. #2 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.L4L5Jnt.Constraints'.
Constraint #9 is above tolerance 1e-06, error = 0.000096, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.L3L4Jnt.Constraints'.
Constraint #10 is above tolerance 1e-06, error = 0.000130, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.L3L4Jnt.Constraints'.
Constraint #11 is above tolerance 1e-06, error = 0.000073, constr. #2 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.L3L4Jnt.Constraints'.
Constraint #12 is above tolerance 1e-06, error = 0.000077, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.L2L3Jnt.Constraints'.
Constraint #13 is above tolerance 1e-06, error = 0.000195, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.L2L3Jnt.Constraints'.
Constraint #14 is above tolerance 1e-06, error = 0.000097, constr. #2 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.L2L3Jnt.Constraints'.
Constraint #15 is above tolerance 1e-06, error = 0.000039, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.L1L2Jnt.Constraints'.
Constraint #16 is above tolerance 1e-06, error = 0.000196, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.L1L2Jnt.Constraints'.
Constraint #17 is above tolerance 1e-06, error = 0.000091, constr. #2 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.L1L2Jnt.Constraints'.
Constraint #18 is above tolerance 1e-06, error = 0.000004, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.T12L1Jnt.Constraints'.
Constraint #19 is above tolerance 1e-06, error = 0.000092, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.T12L1Jnt.Constraints'.
Constraint #20 is above tolerance 1e-06, error = 0.000043, constr. #2 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.T12L1Jnt.Constraints'.
Constraint #21 is above tolerance 1e-06, error = 0.000056, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #22 is above tolerance 1e-06, error = 0.000036, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #23 is above tolerance 1e-06, error = 0.000042, constr. #2 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #24 is above tolerance 1e-06, error = 0.000021, constr. #3 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #25 is above tolerance 1e-06, error = 0.000098, constr. #4 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #26 is above tolerance 1e-06, error = 0.000114, constr. #5 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #27 is above tolerance 1e-06, error = 0.000019, constr. #6 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #28 is above tolerance 1e-06, error = 0.000146, constr. #7 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #29 is above tolerance 1e-06, error = 0.000169, constr. #8 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #30 is above tolerance 1e-06, error = 0.000043, constr. #9 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #31 is above tolerance 1e-06, error = 0.000156, constr. #10 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #32 is above tolerance 1e-06, error = 0.000180, constr. #11 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #33 is above tolerance 1e-06, error = 0.000044, constr. #12 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #34 is above tolerance 1e-06, error = 0.000121, constr. #13 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #35 is above tolerance 1e-06, error = 0.000139, constr. #14 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #36 is above tolerance 1e-06, error = 0.000011, constr. #15 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #37 is above tolerance 1e-06, error = 0.000058, constr. #16 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #38 is above tolerance 1e-06, error = 0.000069, constr. #17 in 'Main.HumanModel.BodyModel.Trunk.JointsLumbar.SpineRhythmDrv'.
Constraint #144 is above tolerance 1e-06, error = 0.000010, constr. #3 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.Ankle.Constraints'.
Constraint #145 is above tolerance 1e-06, error = 0.000002, constr. #4 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.Ankle.Constraints'.
Constraint #149 is above tolerance 1e-06, error = 0.000013, constr. #3 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.SubTalar.Constraints'.
Constraint #150 is above tolerance 1e-06, error = 0.000006, constr. #4 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.SubTalar.Constraints'.
Constraint #151 is above tolerance 1e-06, error = 0.000001, constr. #0 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.Knee.Constraints'.
Constraint #153 is above tolerance 1e-06, error = 0.000004, constr. #2 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.Knee.Constraints'.
Constraint #154 is above tolerance 1e-06, error = 0.000005, constr. #3 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.Knee.Constraints'.
Constraint #155 is above tolerance 1e-06, error = 0.000003, constr. #4 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.Knee.Constraints'.
Constraint #157 is above tolerance 1e-06, error = 0.000002, constr. #1 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.PatellaFemur.Constraints'.
Constraint #159 is above tolerance 1e-06, error = 0.000003, constr. #3 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.PatellaFemur.Constraints'.
Constraint #160 is above tolerance 1e-06, error = 0.000002, constr. #4 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.PatellaFemur.Constraints'.
Constraint #162 is above tolerance 1e-06, error = 0.000472, constr. #0 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.Hip.Constraints'.
Constraint #163 is above tolerance 1e-06, error = 0.000905, constr. #1 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.Hip.Constraints'.
Constraint #164 is above tolerance 1e-06, error = 0.000489, constr. #2 in 'Main.HumanModel.BodyModel.Right.Leg.Jnt.Hip.Constraints'.
Constraint #222 is above tolerance 1e-06, error = 0.000001, constr. #0 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.Ankle.Constraints'.
Constraint #223 is above tolerance 1e-06, error = 0.000001, constr. #1 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.Ankle.Constraints'.
Constraint #224 is above tolerance 1e-06, error = 0.000007, constr. #2 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.Ankle.Constraints'.
Constraint #225 is above tolerance 1e-06, error = 0.000199, constr. #3 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.Ankle.Constraints'.
Constraint #226 is above tolerance 1e-06, error = 0.000101, constr. #4 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.Ankle.Constraints'.
Constraint #227 is above tolerance 1e-06, error = 0.000011, constr. #0 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.SubTalar.Constraints'.
Constraint #228 is above tolerance 1e-06, error = 0.000005, constr. #1 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.SubTalar.Constraints'.
Constraint #229 is above tolerance 1e-06, error = 0.000014, constr. #2 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.SubTalar.Constraints'.
Constraint #230 is above tolerance 1e-06, error = 0.000161, constr. #3 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.SubTalar.Constraints'.
Constraint #231 is above tolerance 1e-06, error = 0.000022, constr. #4 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.SubTalar.Constraints'.
Constraint #232 is above tolerance 1e-06, error = 0.000061, constr. #0 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.Knee.Constraints'.
Constraint #233 is above tolerance 1e-06, error = 0.000062, constr. #1 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.Knee.Constraints'.
Constraint #234 is above tolerance 1e-06, error = 0.000060, constr. #2 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.Knee.Constraints'.
Constraint #235 is above tolerance 1e-06, error = 0.000249, constr. #3 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.Knee.Constraints'.
Constraint #236 is above tolerance 1e-06, error = 0.000071, constr. #4 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.Knee.Constraints'.
Constraint #237 is above tolerance 1e-06, error = 0.000022, constr. #0 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.PatellaFemur.Constraints'.
Constraint #238 is above tolerance 1e-06, error = 0.000026, constr. #1 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.PatellaFemur.Constraints'.
Constraint #240 is above tolerance 1e-06, error = 0.000053, constr. #3 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.PatellaFemur.Constraints'.
Constraint #241 is above tolerance 1e-06, error = 0.000176, constr. #4 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.PatellaFemur.Constraints'.
Constraint #242 is above tolerance 1e-06, error = 0.000044, constr. #0 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.PatellaMovement'.
Constraint #243 is above tolerance 1e-06, error = 0.000589, constr. #0 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.Hip.Constraints'.
Constraint #244 is above tolerance 1e-06, error = 0.001376, constr. #1 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.Hip.Constraints'.
Constraint #245 is above tolerance 1e-06, error = 0.000882, constr. #2 in 'Main.HumanModel.BodyModel.Left.Leg.Jnt.Hip.Constraints'.
Constraint #354 is above tolerance 1e-06, error = 0.005667, segment constr. 'Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.PelvisSeg'.
Constraint #355 is above tolerance 1e-06, error = 0.005492, segment constr. 'Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.SacrumSeg'.
Constraint #356 is above tolerance 1e-06, error = 0.004897, segment constr. 'Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.L5Seg'.
Constraint #357 is above tolerance 1e-06, error = 0.003906, segment constr. 'Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.L4Seg'.
Constraint #358 is above tolerance 1e-06, error = 0.002658, segment constr. 'Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.L3Seg'.
Constraint #359 is above tolerance 1e-06, error = 0.001389, segment constr. 'Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.L2Seg'.
Constraint #360 is above tolerance 1e-06, error = 0.000387, segment constr. 'Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.L1Seg'.
Constraint #381 is above tolerance 1e-06, error = 0.000015, segment constr. 'Main.HumanModel.BodyModel.Right.Leg.Seg.Talus'.
Constraint #382 is above tolerance 1e-06, error = 0.000022, segment constr. 'Main.HumanModel.BodyModel.Right.Leg.Seg.Foot'.
Constraint #383 is above tolerance 1e-06, error = 0.000016, segment constr. 'Main.HumanModel.BodyModel.Right.Leg.Seg.Shank'.
Constraint #384 is above tolerance 1e-06, error = 0.000020, segment constr. 'Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh'.
Constraint #385 is above tolerance 1e-06, error = 0.000017, segment constr. 'Main.HumanModel.BodyModel.Right.Leg.Seg.Patella'.
Constraint #397 is above tolerance 1e-06, error = 0.000404, segment constr. 'Main.HumanModel.BodyModel.Left.Leg.Seg.Talus'.
Constraint #398 is above tolerance 1e-06, error = 0.000498, segment constr. 'Main.HumanModel.BodyModel.Left.Leg.Seg.Foot'.
Constraint #399 is above tolerance 1e-06, error = 0.000369, segment constr. 'Main.HumanModel.BodyModel.Left.Leg.Seg.Shank'.
Constraint #400 is above tolerance 1e-06, error = 0.000478, segment constr. 'Main.HumanModel.BodyModel.Left.Leg.Seg.Thigh'.
Constraint #401 is above tolerance 1e-06, error = 0.000377, segment constr. 'Main.HumanModel.BodyModel.Left.Leg.Seg.Patella'.
ERROR(OBJ.MCH.KIN3) : AnyMocapModel_1.any(70) : MarkerTracking.InitialConditions : Kinematic analysis failed in time step 0 : Position analysis is not completed

Hi Shim,

If the marker tracking fails on first time step, usually that can be because of one of two reasons:

  • The initial position (or load time position) of the model is far from the expected position of the model from the marker tracking data. If there is a big jump in positions, the solver may have difficulties You can update that in the trial specific data file. However, from the screenshot of the model view, I don't think it's that bad. The solver should be able to solve.
  • The second reason is a potential conflict in the kinematic constraints, and this can be hard to debug. It looks like you have only the leg markers, so you should switch off the arms, and drive the trunk and head using weak mannequin drivers. It's possible you have some conflicting drivers that cause the kinematics to fail.

I think the question about T-pose can be a little bit tricky. For sure, you don't want a synthetic t-pose appended to your motion data, which results in the model jumping from t-pose to the motion data. This big jump will surely make it harder for the kinematics to solve. However, if it is part of your experimental protocol, i.e., the motion recording started with the subject in t-pose and then the subject continued with the experiment, then it can normally work as you will avoid the big jump in the kinematics. However, I would recommend not to have the t-pose as part of your protocol as it involves motion in the scapula, which is driven through rhythms normally.

Best regards,
Dave