How to solve "kinematics analysis failure"

Hi AnyBody,

I am trying to use the open-source C3D data from website “https://doi.org/10.6084/m9.figshare.14420756” to drive the human body model. However, when the "RunMotionAndParameterOptimizationSequence" operation is executed, it prompts that the kinematics analysis failed.

#### Macro command : RunMotionAndParameterOptimizationSequence(5:5)> run
5.0) Kinematics (Operation: Main.Studies.MotionOptimization.Kinematics): 
5.0.0) PreOperation (Operation: Main.Studies.MotionOptimization.Kinematics.PreOperation): 
5.0.0.0) InitialConditions (Operation: Main.Studies.MotionOptimization.InitialConditions): 
5.0.0.0) ...Design variables have been updated.
5.0.0.1) ...Load-time positions have been re-established.
5.0.0.2) ...Kinematic analysis completed.
5.0.0.3) ...Dependent variables are fully updated.
5.0) Kinematic analysis...
Failed to resolve kinematic constraints. Newton relaxation too small. (final kin. error = 9.151032E-005)
Constraint no. 7 above error tolerance 0.000001, error = 0.000001.
Constraint no. 10 above error tolerance 0.000001, error = 0.000004.
Constraint no. 11 above error tolerance 0.000001, error = 0.000003.
Constraint no. 12 above error tolerance 0.000001, error = 0.000002.
Constraint no. 14 above error tolerance 0.000001, error = 0.000011.
Constraint no. 15 above error tolerance 0.000001, error = 0.000014.
Constraint no. 16 above error tolerance 0.000001, error = 0.000011.
Constraint no. 17 above error tolerance 0.000001, error = 0.000007.
Constraint no. 18 above error tolerance 0.000001, error = 0.000007.
Constraint no. 19 above error tolerance 0.000001, error = 0.000009.
Constraint no. 20 above error tolerance 0.000001, error = 0.000011.
Constraint no. 23 above error tolerance 0.000001, error = 0.000001.
Constraint no. 28 above error tolerance 0.000001, error = 0.000001.
Constraint no. 29 above error tolerance 0.000001, error = 0.000003.
Constraint no. 30 above error tolerance 0.000001, error = 0.000004.
Constraint no. 35 above error tolerance 0.000001, error = 0.000003.
Constraint no. 36 above error tolerance 0.000001, error = 0.000005.
Constraint no. 37 above error tolerance 0.000001, error = 0.000007.
Constraint no. 42 above error tolerance 0.000001, error = 0.000004.
Constraint no. 43 above error tolerance 0.000001, error = 0.000007.
Constraint no. 44 above error tolerance 0.000001, error = 0.000009.
Constraint no. 49 above error tolerance 0.000001, error = 0.000005.
Constraint no. 50 above error tolerance 0.000001, error = 0.000009.
Constraint no. 51 above error tolerance 0.000001, error = 0.000012.
Constraint no. 56 above error tolerance 0.000001, error = 0.000006.
Constraint no. 57 above error tolerance 0.000001, error = 0.000012.
Constraint no. 58 above error tolerance 0.000001, error = 0.000015.
Constraint no. 63 above error tolerance 0.000001, error = 0.000006.
Constraint no. 64 above error tolerance 0.000001, error = 0.000013.
Constraint no. 65 above error tolerance 0.000001, error = 0.000017.
Constraint no. 67 above error tolerance 0.000001, error = 0.000015.
Constraint no. 68 above error tolerance 0.000001, error = 0.000019.
Constraint no. 69 above error tolerance 0.000001, error = 0.000004.
Constraint no. 92 above error tolerance 0.000001, error = 0.000002.
Constraint no. 97 above error tolerance 0.000001, error = 0.000001.
Constraint no. 105 above error tolerance 0.000001, error = 0.000007.
Constraint no. 108 above error tolerance 0.000001, error = 0.000019.
Constraint no. 109 above error tolerance 0.000001, error = 0.000004.
Constraint no. 110 above error tolerance 0.000001, error = 0.000004.
Constraint no. 111 above error tolerance 0.000001, error = 0.000007.
Constraint no. 112 above error tolerance 0.000001, error = 0.000034.
Constraint no. 113 above error tolerance 0.000001, error = 0.000001.
Constraint no. 114 above error tolerance 0.000001, error = 0.000056.
Constraint no. 115 above error tolerance 0.000001, error = 0.000092.
Constraint no. 116 above error tolerance 0.000001, error = 0.000027.
Constraint no. 117 above error tolerance 0.000001, error = 0.000026.
Constraint no. 118 above error tolerance 0.000001, error = 0.000039.
Constraint no. 119 above error tolerance 0.000001, error = 0.000006.
Constraint no. 120 above error tolerance 0.000001, error = 0.000034.
Constraint no. 121 above error tolerance 0.000001, error = 0.000009.
Constraint no. 122 above error tolerance 0.000001, error = 0.000015.
Constraint no. 123 above error tolerance 0.000001, error = 0.000010.
Constraint no. 124 above error tolerance 0.000001, error = 0.000008.
Constraint no. 125 above error tolerance 0.000001, error = 0.000005.
Constraint no. 215 above error tolerance 0.000001, error = 0.000014.
Constraint no. 216 above error tolerance 0.000001, error = 0.000012.
Constraint no. 217 above error tolerance 0.000001, error = 0.000017.
Constraint no. 218 above error tolerance 0.000001, error = 0.000011.
Constraint no. 219 above error tolerance 0.000001, error = 0.000002.
Constraint no. 220 above error tolerance 0.000001, error = 0.000014.
Constraint no. 221 above error tolerance 0.000001, error = 0.000006.
Constraint no. 222 above error tolerance 0.000001, error = 0.000025.
Constraint no. 223 above error tolerance 0.000001, error = 0.000014.
Constraint no. 224 above error tolerance 0.000001, error = 0.000012.
Constraint no. 227 above error tolerance 0.000001, error = 0.000005.
Constraint no. 228 above error tolerance 0.000001, error = 0.000006.
Constraint no. 235 above error tolerance 0.000001, error = 0.000004.
Constraint no. 236 above error tolerance 0.000001, error = 0.000005.
Constraint no. 238 above error tolerance 0.000001, error = 0.000001.
Constraint no. 253 above error tolerance 0.000001, error = 0.000008.
Constraint no. 267 above error tolerance 0.000001, error = 0.000018.
Constraint no. 268 above error tolerance 0.000001, error = 0.000018.
Constraint no. 269 above error tolerance 0.000001, error = 0.000008.
Constraint no. 270 above error tolerance 0.000001, error = 0.000009.
Constraint violations for study 'Main.Studies.MotionOptimization' : 
Constraint #68 is above tolerance 1e-006, error = 0.000014, constr. #0 in 'Main.Studies.HumanModel.BodyModel.Left.Leg.Jnt.Ankle.Constraints'.
Constraint #68 is above tolerance 1e-006, error = 0.000012, constr. #1 in 'Main.Studies.HumanModel.BodyModel.Left.Leg.Jnt.Ankle.Constraints'.
Constraint #68 is above tolerance 1e-006, error = 0.000017, constr. #2 in 'Main.Studies.HumanModel.BodyModel.Left.Leg.Jnt.Ankle.Constraints'.
Constraint #68 is above tolerance 1e-006, error = 0.000011, constr. #3 in 'Main.Studies.HumanModel.BodyModel.Left.Leg.Jnt.Ankle.Constraints'.
Constraint #68 is above tolerance 1e-006, error = 0.000002, constr. #4 in 'Main.Studies.HumanModel.BodyModel.Left.Leg.Jnt.Ankle.Constraints'.
Constraint #73 is above tolerance 1e-006, error = 0.000014, constr. #0 in 'Main.Studies.HumanModel.BodyModel.Left.Leg.Jnt.SubTalar.Constraints'.
Constraint #73 is above tolerance 1e-006, error = 0.000006, constr. #1 in 'Main.Studies.HumanModel.BodyModel.Left.Leg.Jnt.SubTalar.Constraints'.
Constraint #73 is above tolerance 1e-006, error = 0.000025, constr. #2 in 'Main.Studies.HumanModel.BodyModel.Left.Leg.Jnt.SubTalar.Constraints'.
Constraint #73 is above tolerance 1e-006, error = 0.000014, constr. #3 in 'Main.Studies.HumanModel.BodyModel.Left.Leg.Jnt.SubTalar.Constraints'.
Constraint #73 is above tolerance 1e-006, error = 0.000012, constr. #4 in 'Main.Studies.HumanModel.BodyModel.Left.Leg.Jnt.SubTalar.Constraints'.
Constraint #78 is above tolerance 1e-006, error = 0.000005, constr. #2 in 'Main.Studies.HumanModel.BodyModel.Left.Leg.Jnt.Knee.Constraints'.
Constraint #78 is above tolerance 1e-006, error = 0.000006, constr. #3 in 'Main.Studies.HumanModel.BodyModel.Left.Leg.Jnt.Knee.Constraints'.
Constraint #86 is above tolerance 1e-006, error = 0.000004, constr. #2 in 'Main.Studies.HumanModel.BodyModel.Left.Leg.Jnt.PatellaFemur.Constraints'.
Constraint #86 is above tolerance 1e-006, error = 0.000005, constr. #3 in 'Main.Studies.HumanModel.BodyModel.Left.Leg.Jnt.PatellaFemur.Constraints'.
Constraint #91 is above tolerance 1e-006, error = 0.000001, constr. #0 in 'Main.Studies.HumanModel.BodyModel.Left.Leg.Jnt.PatellaMovement'.
Constraint #166 is above tolerance 1e-006, error = 0.000008, segment constr. 'Main.Studies.HumanModel.BodyModel.Left.Leg.Seg.Thigh'.
Constraint #180 is above tolerance 1e-006, error = 0.000018, segment constr. 'Main.Studies.HumanModel.BodyModel.Left.Leg.Seg.Talus'.
Constraint #181 is above tolerance 1e-006, error = 0.000018, segment constr. 'Main.Studies.HumanModel.BodyModel.Left.Leg.Seg.Foot'.
Constraint #182 is above tolerance 1e-006, error = 0.000008, segment constr. 'Main.Studies.HumanModel.BodyModel.Left.Leg.Seg.Shank'.
Constraint #183 is above tolerance 1e-006, error = 0.000009, segment constr. 'Main.Studies.HumanModel.BodyModel.Left.Leg.Seg.Patella'.
ERROR(OBJ.MCH.KIN3) :   E:/AnyBodyStudy/C..6/Model/Kinematics.any(74)  :   MotionOptimization.Kinematics  :  Kinematic analysis failed in time step 73 : Failed to solve position analysis

This is very important to me, if possible, please tell me how to modify it. I use AnyBody V6.1 and the model is as follows.
C3DTest20230416.zip (2.6 MB)

Thank you in advance.

Chen

Hi Chen,

Unfortunately, I am not able to load your model in the current version of AnyBody. Can you possibly attach a screenshot of the model view when the model fails. Does it fail at the first time step or during the analysis?

Also, the final error doesn't look too large, maybe you can try to increase the kinematic tolerance to 1e-5 or 1e-4?

Best regards,
Dave

Hi Dave,

This may be a problem with the model size, and it can run normally when I select c3D data with a height that is close to the default model.

This model uses two force plates. Is the muscle activity output reliable when the human body is moving outside the force plate?

In addition, I am trying to study the biomechanical behavior of ankle joint injury patients under abnormal gait. I would like to know if you have any relevant c3D data that can be provided to me.

Thank you in advance,
Chen

Hi Chen,

It could be an issue if the model height is not set correctly. It's good to know that the model works ok when the subject height is correctly set.

In this model of the lower extremity, the muscle activity output won't be reliable when your model is moving outside the force plates. There are residual forces between the pelvis and the ground that keep the model in balance. When your model is outside the force plate, the residual forces would be very large, basically to support the model's weight. This is equivalent to having the model suspended in air by the pelvis and being carried forward by the so-called "hand of god" forces. That is, the legs are not carrying the body weight and are just moving in free air.

Unfortunately, I am not aware of C3D data for abnormal gait that could be shared with you.

Best regards
Dave

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