ERROR(OBJ.MCH.KIN3) : AnyMocapModel.any(60) : InverseDynamicStudy.InverseDynamics : Kinematic analysis failed in time step 111 : Failed to solve position constriants


Hi All

I am using Plug-in-gait-simple with GRF prediction. The input data has been obtained using IMU sensors in .c3d format.

The inverse dynamics analysis fails at 111 time step ERROR(OBJ.MCH.KIN3). I am unable to find the reason for this error.

Thanks and Best Regards
Abdul Aziz

Hi Abdul,

From the description i can not spot the error, when the kinematic analysis has finished successfully the kinematics of the inverse dynamics is supposed to work without problems.

If you are able to share the model here on the forum it would allow us to debug the model, please ensure to remove any personal data.

One thing on the image the spine looks a bit strange, but i do not see why this should cause this problem.

Best regards
Søren


Hi Soren

I tried to check the model and the earlier i omitted markers on spine because of the GeomScale error (screenshot attached).
I think the analysis error is because of this.
What the reason for this error and how to overcome this.

Thanks and Best Regards
Abdul Aziz Vaqar

Hi everybody,
I have a similar problem. I am working with Mocap (plug-in-gait-simple) in version 7.3. I have different postures that I should model with the help of markers. I could model my subject with some of the specific postures and I derived my necessary output like compression force. Unfortunately, in one of my task, a problem occurred. It says that it fails in kinematics and cannot solve further step7. I also read all the recommendations in a similar problem in the forum. I think the number of my markers are sufficient, and that is because it could run the model in other postures. In addition, we do not miss any marker in the motion. I really need your help. What can I do to solve this problem? The frame is from 1 to 1100. I ran the model from the beginning frame 1 to 500 it has not any problem, but after the frame 500 it fails. Do you have any idea? my error message:

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

0.1.0.0.0.0.2) ...Kinematic analysis completed.
0.1.0.0.0.0.3) ...Dependent variables are fully updated.
0.1.0.0.0) Kinematic analysis...
WARNING(OBJ.MCH.KIN6) : Interface.any(268) : GHMeasure : Close to singular position : Orientation close to Gimbal Lock, i.e., first and third axis of rotation being parallel
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.
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.
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.
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.
Progressing to solve kinematic optimality conditions and hard constraints.
WARNING(OBJ.MCH.KIN6) : Interface.any(268) : GHMeasure : Close to singular position : Orientation close to Gimbal Lock, i.e., first and third axis of rotation being parallel
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.
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.
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.
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.ParameterIdentification.KinematicStudyForParameterIdentification' :
ERROR(OBJ.MCH.KIN3) : KinematicStudyForParameterIdentification.any(11) : KinematicStudyForParameterIdentification.Kinematics : Kinematic analysis failed in time step 81 : Position analysis is not completed


you can see the position of its foot is abnormal.


Also, this is the posture of the whole view.

Hi Abdul,

This error is because the marker driver class expects certain things to be already defined on the segment and for these segments this has not been done.

It is quick to fix please add these lines on the segment in question L2 and L3

AnyRefNode AnatomicalFrame ={};
 AnyRefNode& ScalingNode = AnatomicalFrame;
    AnyFunTransform3D& GeomScale = Scale;

Hope it helps drive the model, we will add this to the up-comming version of AMMR.

Best regards
Søren

Hi Parisa,

Please try to add a driver for the inversion/eversion dof in the model, it seems not be driven well by the marker configuration on the foot.

The best way to do this is to open the ExtraDrivers.any file and enable the line

 #define BM_MANNEQUIN_DRIVER_ANKLE_EVERSION_RIGHT ON
   #define BM_MANNEQUIN_DRIVER_ANKLE_EVERSION_LEFT ON

This will automatically create an extra driver for these DOF's in the model.

Best regards
Søren

Hi Soren


I added the line of code to L2 and L3 vertebrae but it gives an error (ERROR(SCR.SCN6) : MarkerProtocol-RIZ-HW.any(275) : 'AnatomicalFrame' : Unexpected character.)

Screenshot attached.

Thanks and Best Regards
Abdul Aziz

Hi Abdul,

Sorry for not being more specific you need to add this lines in the L2 and L3 segments, not in the markerdriver.

if you add these lines e.g. in the top of the makerprotocol file.

Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.L2Seg ={
AnyRefNode AnatomicalFrame ={};
 AnyRefNode& ScalingNode = AnatomicalFrame;
    AnyFunTransform3D& GeomScale = Scale;
};

Best regards
Søren

Hi Søren,
In this regard, I have a problem. I do not understand that why my model has a problem in Inverse dynamic, while it does not have any problems in inverse kinematics. As you mentioned, when the kinematic analysis has finished successfully the kinematics of the inverse dynamics is supposed to work without problems, but in my model, many errors occurred. Could you please look at the below and give me your opinion about this error? How can I overcome this problem?
Thanks in advance
0) Operation Sequence: (Operation: Main.RunAnalysis):
0.0) Operation Sequence: (Operation: Main.RunAnalysis.LoadParameters):
0.0.0) Operation Sequence: (Operation: Main.RunAnalysis.LoadParameters.SubOperations):
0.0.0.0) Dummy operation: (Operation: Main.RunAnalysis.LoadParameters.SubOperations.dummy):
0.1.0) Load_parameters (Operation: Main.ModelSetup.Macros.Load_parameters):

Macro command : Load_parameters(1:10)> classoperation Main "Load Values" --file="C:\Users\user2\Documents\AnyBody.7.3.x\rezaian\Application\MocapExamples\Plug-in-gait_Simple\Output/FullBody_st30 0 45.anyset"

Loading and overriding values from : 'C' ...
...Values updated

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

Updating expressions...
WARNING for Main.HumanModel.BodyModel.Trunk.Buckle.Segments.BuckleSeg: Non-orthogonal axes were adjusted.
WARNING for Main.HumanModel.BodyModel.Trunk.Buckle.Slider1.Seg: Non-orthogonal axes were adjusted.
WARNING for Main.HumanModel.BodyModel.Trunk.Buckle.Slider2.Seg: Non-orthogonal axes were adjusted.
WARNING for Main.HumanModel.BodyModel.Trunk.Buckle.Slider3.Seg: Non-orthogonal axes were adjusted.
WARNING for Main.HumanModel.BodyModel.Trunk.Buckle.Slider4.Seg: Non-orthogonal axes were adjusted.
WARNING for Main.HumanModel.BodyModel.Trunk.Buckle.Slider5.Seg: Non-orthogonal axes were adjusted.
WARNING(OBJ.MCH.KIN7) : Mus.any(1254) : Semitendinosus1.SPLine : Penetration of surface : cyl : Via-point 'SemitendinosusViaNode1' on 'SPLine' is located below the wrapping surface'cyl
WARNING(OBJ.MCH.KIN7) : Mus.any(1294) : Semimembranosus2.SPLine : Penetration of surface : cyl : Via-point 'Semimembranosus2Node' on 'SPLine' is located below the wrapping surface'cyl
WARNING(OBJ.MCH.KIN7) : Mus.any(1306) : Semimembranosus3.SPLine : Penetration of surface : cyl : Via-point 'Semimembranosus3Node' on 'SPLine' is located below the wrapping surface'cyl
WARNING(OBJ.MCH.KIN7) : Mus.any(1254) : Semitendinosus1.SPLine : Penetration of surface : cyl : Via-point 'SemitendinosusViaNode1' on 'SPLine' is located below the wrapping surface'cyl
WARNING(OBJ.MCH.KIN7) : Mus.any(1277) : Semimembranosus1.SPLine : Penetration of surface : cyl : Via-point 'Semimembranosus1Node' on 'SPLine' is located below the wrapping surface'cyl
WARNING(OBJ.MCH.KIN7) : Mus.any(1294) : Semimembranosus2.SPLine : Penetration of surface : cyl : Via-point 'Semimembranosus2Node' on 'SPLine' is located below the wrapping surface'cyl
WARNING(OBJ.MCH.KIN7) : Mus.any(1306) : Semimembranosus3.SPLine : Penetration of surface : cyl : Via-point 'Semimembranosus3Node' on 'SPLine' is located below the wrapping surface'cyl
...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"

1.0.1.0.0.2) ...Kinematic analysis completed.
1.0.1.0.0.3) ...Dependent variables are fully updated.
1.0.1.0) Kinematic analysis...
1.0.1.161) ...Kinematic analysis completed
2.0) Operation Sequence: (Operation: Main.RunAnalysis.InverseDynamics):
2.0.0) Operation Sequence: (Operation: Main.RunAnalysis.InverseDynamics.SubOperations):
2.0.0.0) Dummy operation: (Operation: Main.RunAnalysis.InverseDynamics.SubOperations.dummy):
2.0.1.0) InverseDynamics (Operation: Main.Studies.InverseDynamicStudy.InverseDynamics):
2.0.1.0.0) PreOperation (Operation: Main.Studies.InverseDynamicStudy.InverseDynamics.PreOperation):
2.0.1.0.0.0) InitialConditions (Operation: Main.Studies.InverseDynamicStudy.InitialConditions):
WARNING for Main.HumanModel.BodyModel.Trunk.Buckle.Segments.BuckleSeg: Non-orthogonal axes were adjusted.
WARNING for Main.HumanModel.BodyModel.Trunk.Buckle.Slider1.Seg: Non-orthogonal axes were adjusted.
WARNING for Main.HumanModel.BodyModel.Trunk.Buckle.Slider2.Seg: Non-orthogonal axes were adjusted.
WARNING for Main.HumanModel.BodyModel.Trunk.Buckle.Slider3.Seg: Non-orthogonal axes were adjusted.
WARNING for Main.HumanModel.BodyModel.Trunk.Buckle.Slider4.Seg: Non-orthogonal axes were adjusted.
WARNING for Main.HumanModel.BodyModel.Trunk.Buckle.Slider5.Seg: Non-orthogonal axes were adjusted.
2.0.1.0.0.0) ...Design variables have been updated.
2.0.1.0.0.1) ...Load-time positions have been re-established.
2.0.1.0.0.1.0) PreOperation (Operation: Main.Studies.InverseDynamicStudy.InitialConditions.PreOperation):
2.0.1.0.0.1.0.0) Operation Sequence: (Operation: Main.ModelSetup.Views.SetViewMacros.InverseDynamicView):
2.0.1.0.0.1.0.0.0) mcr (Operation: Main.ModelSetup.Views.SetViewMacros.InverseDynamicView.mcr):

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

Constraint violations for study 'Main.Studies.InverseDynamicStudy' :
Constraint #44 is above tolerance 1e-05, error = 0.000041, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.JointsCervicalSpine.C1C0Jnt.Constraints'.
Constraint #45 is above tolerance 1e-05, error = 0.000020, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.JointsCervicalSpine.C1C0Jnt.Constraints'.
Constraint #46 is above tolerance 1e-05, error = 0.000033, constr. #2 in 'Main.HumanModel.BodyModel.Trunk.JointsCervicalSpine.C1C0Jnt.Constraints'.
Constraint #49 is above tolerance 1e-05, error = 0.002818, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider1.Slider1Jnt.Constraints'.
Constraint #50 is above tolerance 1e-05, error = 0.001004, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider1.Slider1Jnt.Constraints'.
Constraint #54 is above tolerance 1e-05, error = 0.010442, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider1.LinDrv'.
Constraint #55 is above tolerance 1e-05, error = 0.005140, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider2.Slider1Jnt.Constraints'.
Constraint #56 is above tolerance 1e-05, error = 0.000421, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider2.Slider1Jnt.Constraints'.
Constraint #60 is above tolerance 1e-05, error = 0.019593, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider2.LinDrv'.
Constraint #61 is above tolerance 1e-05, error = 0.000099, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider3.Slider1Jnt.Constraints'.
Constraint #62 is above tolerance 1e-05, error = 0.000371, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider3.Slider1Jnt.Constraints'.
Constraint #66 is above tolerance 1e-05, error = 0.001191, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider3.LinDrv'.
Constraint #67 is above tolerance 1e-05, error = 0.000748, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider4.Slider1Jnt.Constraints'.
Constraint #68 is above tolerance 1e-05, error = 0.000252, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider4.Slider1Jnt.Constraints'.
Constraint #72 is above tolerance 1e-05, error = 0.000011, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider4.LinDrv'.
Constraint #73 is above tolerance 1e-05, error = 0.000367, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider5.Slider1Jnt.Constraints'.
Constraint #74 is above tolerance 1e-05, error = 0.000908, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider5.Slider1Jnt.Constraints'.
Constraint #82 is above tolerance 1e-05, error = 0.009683, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc1.Disc.LinDrvRight'.
Constraint #83 is above tolerance 1e-05, error = 0.001004, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc1.Disc.LinDrvLeft'.
Constraint #84 is above tolerance 1e-05, error = 0.005210, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc1.Disc.LinDrvMid'.
Constraint #85 is above tolerance 1e-05, error = 0.003057, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc1.Disc.VirtuelSegDiscJnt.Constraints'.
Constraint #86 is above tolerance 1e-05, error = 0.009114, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc1.Disc.VirtuelSegDiscJnt.Constraints'.
Constraint #90 is above tolerance 1e-05, error = 0.008125, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc1.Disc.drv'.
Constraint #94 is above tolerance 1e-05, error = 0.009883, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc2.Disc.LinDrvRight'.
Constraint #95 is above tolerance 1e-05, error = 0.002315, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc2.Disc.LinDrvLeft'.
Constraint #96 is above tolerance 1e-05, error = 0.002971, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc2.Disc.LinDrvMid'.
Constraint #97 is above tolerance 1e-05, error = 0.003539, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc2.Disc.VirtuelSegDiscJnt.Constraints'.
Constraint #98 is above tolerance 1e-05, error = 0.005569, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc2.Disc.VirtuelSegDiscJnt.Constraints'.
Constraint #102 is above tolerance 1e-05, error = 0.009569, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc2.Disc.drv'.
Constraint #106 is above tolerance 1e-05, error = 0.002918, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc3.Disc.LinDrvRight'.
Constraint #107 is above tolerance 1e-05, error = 0.001441, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc3.Disc.LinDrvLeft'.
Constraint #108 is above tolerance 1e-05, error = 0.001826, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc3.Disc.LinDrvMid'.
Constraint #109 is above tolerance 1e-05, error = 0.000128, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc3.Disc.VirtuelSegDiscJnt.Constraints'.
Constraint #110 is above tolerance 1e-05, error = 0.002804, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc3.Disc.VirtuelSegDiscJnt.Constraints'.
Constraint #114 is above tolerance 1e-05, error = 0.002099, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc3.Disc.drv'.
Constraint #118 is above tolerance 1e-05, error = 0.000011, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc4.Disc.LinDrvRight'.
Constraint #119 is above tolerance 1e-05, error = 0.000020, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc4.Disc.LinDrvLeft'.
Constraint #120 is above tolerance 1e-05, error = 0.000032, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc4.Disc.LinDrvMid'.
Constraint #121 is above tolerance 1e-05, error = 0.000094, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc4.Disc.VirtuelSegDiscJnt.Constraints'.
Constraint #122 is above tolerance 1e-05, error = 0.000183, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc4.Disc.VirtuelSegDiscJnt.Constraints'.
Constraint #126 is above tolerance 1e-05, error = 0.000135, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc4.Disc.drv'.
Constraint #130 is above tolerance 1e-05, error = 0.000012, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc5.Disc.LinDrvRight'.
Constraint #134 is above tolerance 1e-05, error = 0.000015, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc5.Disc.VirtuelSegDiscJnt.Constraints'.
Constraint #139 is above tolerance 1e-05, error = 0.001653, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.JointsAndDrivers.LinTopDrv'.
Constraint #140 is above tolerance 1e-05, error = 0.001230, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.Buckle.JointsAndDrivers.LinTopDrv'.
Constraint #141 is above tolerance 1e-05, error = 0.002004, constr. #2 in 'Main.HumanModel.BodyModel.Trunk.Buckle.JointsAndDrivers.LinTopDrv'.
Constraint #142 is above tolerance 1e-05, error = 0.010205, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.JointsAndDrivers.RotTopDrv'.
Constraint #143 is above tolerance 1e-05, error = 0.000392, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.JointsAndDrivers.LinBottomDrv'.
Constraint #144 is above tolerance 1e-05, error = 0.000378, constr. #1 in 'Main.HumanModel.BodyModel.Trunk.Buckle.JointsAndDrivers.LinBottomDrv'.
Constraint #150 is above tolerance 1e-05, error = 0.000095, constr. #0 in 'Main.HumanModel.BodyModel.Trunk.Buckle.JointsAndDrivers.MeasuringSegmentRight.Drv2'.
Constraint #263 is above tolerance 1e-05, error = 0.000014, constr. #4 in 'Main.HumanModel.BodyModel.Left.ShoulderArm.Jnt.WristJointFlexion.Constraints'.
Constraint #371 is above tolerance 1e-05, error = 0.000018, constr. #1 in 'Main.Studies.InverseDynamicStudy.ModelEnvironmentConnection.JointsAndDrivers.JntDriverLeftArm'.
Constraint #372 is above tolerance 1e-05, error = 0.000011, constr. #2 in 'Main.Studies.InverseDynamicStudy.ModelEnvironmentConnection.JointsAndDrivers.JntDriverLeftArm'.
Constraint #376 is above tolerance 1e-05, error = 0.000041, constr. #6 in 'Main.Studies.InverseDynamicStudy.ModelEnvironmentConnection.JointsAndDrivers.JntDriverLeftArm'.
Constraint #378 is above tolerance 1e-05, error = 0.000022, constr. #8 in 'Main.Studies.InverseDynamicStudy.ModelEnvironmentConnection.JointsAndDrivers.JntDriverLeftArm'.
Constraint #383 is above tolerance 1e-05, error = 0.000011, constr. #0 in 'Main.Studies.InverseDynamicStudy.ModelEnvironmentConnection.JointsAndDrivers.JntDriverRightArm'.
Constraint #389 is above tolerance 1e-05, error = 0.000021, constr. #6 in 'Main.Studies.InverseDynamicStudy.ModelEnvironmentConnection.JointsAndDrivers.JntDriverRightArm'.
Constraint #393 is above tolerance 1e-05, error = 0.000021, constr. #10 in 'Main.Studies.InverseDynamicStudy.ModelEnvironmentConnection.JointsAndDrivers.JntDriverRightArm'.
Constraint #405 is above tolerance 1e-05, error = 0.000037, segment constr. 'Main.HumanModel.BodyModel.Trunk.SegmentsThorax.SkullSeg'.
Constraint #407 is above tolerance 1e-05, error = 0.000021, segment constr. 'Main.HumanModel.BodyModel.Trunk.SegmentsCervicalSpine.C1Seg'.
Constraint #408 is above tolerance 1e-05, error = 0.000017, segment constr. 'Main.HumanModel.BodyModel.Trunk.SegmentsCervicalSpine.C2Seg'.
Constraint #409 is above tolerance 1e-05, error = 0.000010, segment constr. 'Main.HumanModel.BodyModel.Trunk.SegmentsCervicalSpine.C3Seg'.
Constraint #414 is above tolerance 1e-05, error = 0.004149, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Segments.BuckleSeg'.
Constraint #415 is above tolerance 1e-05, error = 0.004149, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider1.Seg'.
Constraint #416 is above tolerance 1e-05, error = 0.004149, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider2.Seg'.
Constraint #417 is above tolerance 1e-05, error = 0.004149, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider3.Seg'.
Constraint #418 is above tolerance 1e-05, error = 0.004149, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider4.Seg'.
Constraint #419 is above tolerance 1e-05, error = 0.004149, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Slider5.Seg'.
Constraint #420 is above tolerance 1e-05, error = 0.000095, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.JointsAndDrivers.MeasuringSegmentRight.Seg'.
Constraint #422 is above tolerance 1e-05, error = 0.045528, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc1.Disc.DiscSeg'.
Constraint #423 is above tolerance 1e-05, error = 0.045528, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc1.Disc.VirtuelSeg'.
Constraint #424 is above tolerance 1e-05, error = 0.082097, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc2.Disc.DiscSeg'.
Constraint #425 is above tolerance 1e-05, error = 0.082097, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc2.Disc.VirtuelSeg'.
Constraint #426 is above tolerance 1e-05, error = 0.018930, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc3.Disc.DiscSeg'.
Constraint #427 is above tolerance 1e-05, error = 0.018930, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc3.Disc.VirtuelSeg'.
Constraint #428 is above tolerance 1e-05, error = 0.000360, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc4.Disc.DiscSeg'.
Constraint #429 is above tolerance 1e-05, error = 0.000360, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc4.Disc.VirtuelSeg'.
Constraint #430 is above tolerance 1e-05, error = 0.000020, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc5.Disc.DiscSeg'.
Constraint #431 is above tolerance 1e-05, error = 0.000020, segment constr. 'Main.HumanModel.BodyModel.Trunk.Buckle.Disc5.Disc.VirtuelSeg'.
Constraint #432 is above tolerance 1e-05, error = 0.000015, segment constr. 'Main.HumanModel.BodyModel.Right.ShoulderArm.Seg.Scapula'.
Constraint #433 is above tolerance 1e-05, error = 0.000013, segment constr. 'Main.HumanModel.BodyModel.Right.ShoulderArm.Seg.Clavicula'.
Constraint #434 is above tolerance 1e-05, error = 0.000017, segment constr. 'Main.HumanModel.BodyModel.Right.ShoulderArm.Seg.Humerus'.
Constraint #435 is above tolerance 1e-05, error = 0.000038, segment constr. 'Main.HumanModel.BodyModel.Right.ShoulderArm.Seg.Radius'.
Constraint #436 is above tolerance 1e-05, error = 0.000019, segment constr. 'Main.HumanModel.BodyModel.Right.ShoulderArm.Seg.Ulna'.
Constraint #437 is above tolerance 1e-05, error = 0.000055, segment constr. 'Main.HumanModel.BodyModel.Right.ShoulderArm.Mus.DeltoidWrappingLateral.WrappingSegment'.
Constraint #438 is above tolerance 1e-05, error = 0.000055, segment constr. 'Main.HumanModel.BodyModel.Right.ShoulderArm.Mus.DeltoidWrappingAnterior.WrappingSegment'.
Constraint #439 is above tolerance 1e-05, error = 0.000038, segment constr. 'Main.HumanModel.BodyModel.Right.ShoulderArm.Seg.WristJointSeg'.
Constraint #440 is above tolerance 1e-05, error = 0.000048, segment constr. 'Main.HumanModel.BodyModel.Right.ShoulderArm.Seg.Hand'.
Constraint #441 is above tolerance 1e-05, error = 0.000048, segment constr. 'Main.HumanModel.BodyModel.Right.ShoulderArm.Seg.Glove'.
Constraint #443 is above tolerance 1e-05, error = 0.000010, segment constr. 'Main.HumanModel.BodyModel.Right.Leg.Seg.Foot'.
Constraint #446 is above tolerance 1e-05, error = 0.000029, segment constr. 'Main.HumanModel.BodyModel.Left.ShoulderArm.Seg.Scapula'.
Constraint #447 is above tolerance 1e-05, error = 0.000021, segment constr. 'Main.HumanModel.BodyModel.Left.ShoulderArm.Seg.Clavicula'.
Constraint #448 is above tolerance 1e-05, error = 0.000026, segment constr. 'Main.HumanModel.BodyModel.Left.ShoulderArm.Seg.Humerus'.
Constraint #449 is above tolerance 1e-05, error = 0.000017, segment constr. 'Main.HumanModel.BodyModel.Left.ShoulderArm.Seg.Radius'.
Constraint #450 is above tolerance 1e-05, error = 0.000019, segment constr. 'Main.HumanModel.BodyModel.Left.ShoulderArm.Seg.Ulna'.
Constraint #451 is above tolerance 1e-05, error = 0.000068, segment constr. 'Main.HumanModel.BodyModel.Left.ShoulderArm.Mus.DeltoidWrappingLateral.WrappingSegment'.
Constraint #452 is above tolerance 1e-05, error = 0.000068, segment constr. 'Main.HumanModel.BodyModel.Left.ShoulderArm.Mus.DeltoidWrappingAnterior.WrappingSegment'.
Constraint #453 is above tolerance 1e-05, error = 0.000032, segment constr. 'Main.HumanModel.BodyModel.Left.ShoulderArm.Seg.WristJointSeg'.
Constraint #454 is above tolerance 1e-05, error = 0.000033, segment constr. 'Main.HumanModel.BodyModel.Left.ShoulderArm.Seg.Hand'.
Constraint #455 is above tolerance 1e-05, error = 0.000033, segment constr. 'Main.HumanModel.BodyModel.Left.ShoulderArm.Seg.Glove'.
ERROR(OBJ.MCH.KIN3) : AnyMocapModel.any(60) : InverseDynamicStudy.InitialConditions : Kinematic analysis failed in time step 0 : Failed to solve position constriants

Hi @parisa

It is a hard error to debug without the model, if it is possible could you send me a copy of the model for me to debug? please strip it of any sensitive information if you do so.

Did you get the inversion/eversion corrected?

You could try and explicitly rerun the parameter identification study if you have not done so after altering the model.
The errors you get seems to be regarding the glenohumeral joint and the buckle segment in the torso.
Maybe you can look at the inital position of you model and move it closer to the actual motion posture.

Also, after it fails try and use the "force recreate view" when right clicking the model view, this could show if any bodyparts are twisted in a wrong direction.

best regards,
Bjørn
AnyBody Technology

Dear Bjørn,
Thanks for your help. I reran parameter identification and also I moved the model closer to the actual motion posture, but it did not work. How can I send you a copy of the model? It seems that its size is big and it could not be attached.
Best regards,
Parisa

Hi Parisa,

I have looked at the model, here are my findings:

  • The posture is un-feasible, if you look at the ribs the clearly penetrate into pelvis.
  • The kinematic problem seems to originate from the abdominal pressure model, there are some measured in this model which will "flip" when the model has a posture like this. I have tried to make the model resilient to extreme posture like this but it did not solve your case.
    *First thing to try is to alter the pelvis markers so that you move markers on back down and markers on the front up this will force more pelvic tilt which would lead to less bending in the spine.
    Second thing you could try is to add joint limit drivers on the spine angles, there is a class for this in AMMR look in the folder, "Tools\ModelUtilities\KinematicLimits" you can use this class to add a limit on throraxpelvic flexion /lateral bend, this may force the posture to be more realistic and solve the kinematic problem.

Finally the model fails in first frame, it might be easier for the model to solve if you started the study in a less flexed position and then moved to this position.

Hope it helps.

Best regards
Søren

This topic was automatically closed 125 days after the last reply. New replies are no longer allowed.