I have to change the revolute joints of the subtalar and anklejoint in one spherical joint. I have changed it and the optimization runs properly(after adjustments). But when I wanted to start the inverse dynamics I got this error [SIZE=1]WARNING(OBJ.MCH.KIN1)[/SIZE] : [SIZE=1]H:/J…s/A…t/A…n/E…s/G…b/GaitLowerExtremity.main.any[/SIZE] : [SIZE=1]InverseDynamicStudy[/SIZE] : Model is kinematically indeterminate : Position analysis failed : 253 independent constraints and 259 unknowns
attemps to continue (attempt no. 1) [SIZE=1]WARNING(OBJ.MCH.KIN1)[/SIZE] : [SIZE=1]H:/J…s/A…t/A…n/E…s/G…b/GaitLowerExtremity.main.any[/SIZE] : [SIZE=1]InverseDynamicStudy[/SIZE] : Model is kinematically indeterminate : Position analysis failed : 253 independent constraints and 259 unknowns
attemps to continue (attempt no. 2) [SIZE=1]WARNING(OBJ.MCH.KIN1)[/SIZE] : [SIZE=1]H:/J…s/A…t/A…n/E…s/G…b/GaitLowerExtremity.main.any[/SIZE] : [SIZE=1]InverseDynamicStudy[/SIZE] : Model is kinematically indeterminate : Position analysis failed : 253 independent constraints and 259 unknowns
attemps to continue (attempt no. 3) [SIZE=1]WARNING(OBJ.MCH.KIN1)[/SIZE] : [SIZE=1]H:/J…s/A…t/A…n/E…s/G…b/GaitLowerExtremity.main.any[/SIZE] : [SIZE=1]InverseDynamicStudy[/SIZE] : Model is kinematically indeterminate : Position analysis failed : 253 independent constraints and 259 unknowns
attemps to continue (attempt no. 4) [SIZE=1]WARNING(OBJ.MCH.KIN1)[/SIZE] : [SIZE=1]H:/J…s/A…t/A…n/E…s/G…b/GaitLowerExtremity.main.any[/SIZE] : [SIZE=1]InverseDynamicStudy[/SIZE] : Model is kinematically indeterminate : Position analysis failed : 253 independent constraints and 259 unknowns
attemps to continue (attempt no. 5) [SIZE=1]ERROR(OBJ.MCH.KIN1)[/SIZE] : [SIZE=1]H:/J…s/A…t/A…n/E…s/G…b/GaitLowerExtremity.main.any[/SIZE] : [SIZE=1]InverseDynamicStudy[/SIZE] : Model is kinematically indeterminate : Position analysis failed
I have attacted the Lower extremitymodel Including the adjustments in the model repository in which the error occor. I do not know how to get the inverse dynamics analysis run properly.
Hi Hans,
I think there are several issues here.
First you should fix the subtalar joint if you want to have the spherical joint in the ankle. It could be like this:
AnyKinEqDriver Subfix ={
AnyRevoluteJoint SubTalar = {
//Axis1 = z; //flexion extension
Axis = x; //inversion eversion
AnyRefNode &TalusNode = …Seg.Talus.SubTalarJoint;
AnyRefNode &FootNode = …Seg.Foot.SubTalarJoint;
//TalusNode ={AnyDrawRefFrame drw={RGB={1,0,0};};};
};
Reaction.Type = {On};
};
Secondly it seems you have only two markers on the foot. This will not work. You need at least a third one, which should not lay on the straight line between heel marker and toe marker. Otherwise the eversion is not determined. If you look at the final kinematics analyses of the optimization you will see that it looks wrong.
Also I doubt that the muscles around the ankle will be able to balance the additional axial rotation degree of freedom you have introduced. I think you will have to “carry” this dof. This can be done by switching on reactions in the joint.
Best regards,
Sebastian
Thank you for your response, but I have an additional question. If I put in this driver and run the optimization I got a message that the model is kinematic indeterminate. What Did I do wrong?
Hi Hans,
of course you have to replace the old Subtalar joint with this expression (in the Jnt file of the LegTD). Then it should work.
Best regards,
Sebastian
I have replaced the expression but it still gives the same error. 255 independent constraints and 259 unknowns. I do not understand why it still doesn’t work. Or should I run the optimization first?
If I replace the contend of Jnt File. I still get the warning of the Kinematic indeterminate constraints. Is it necessary to remove the subtalareversion?
HI Hans,
if I replace the Jnt file and use the MotionandParameterOptimization study it runs. But this is of course only the first step. You also have to make sure that you write the new optimised joint angles in a proper way. Start in the JointAngleOutput and add the new defined dof (this would also need some adjustments to the Interface file.) Just follow the same structure as given and add the corresponding lines.
After optimisation also the JointsDriversOptimized needs to be updated.
But again, please review carefully the results of the motion optimization if you only have two markers on the foot.
Best regards,
Sebastian
So if I understand properly I should put in the Subfix in the Joints&Drivers file? And Next Adjust the Interface File As well. And Before running the Inverse Dynamics Analysis I should adjust the JointsAnddrivers optimized.
Hi,
well not completely. You have added two dof in the ankle joint. These have to be added. Maybe you should first change the interface file. Here you have to change the MEasureOrganizer in the Ankle and create two more entries like AnklePlantarFlexion.
Best regards,
Sebastian
I have adjusted all the files and run the optimization succesfully. but my inverse dynamics still has an error:
InitialConditions (Operation: Main.Studies.InverseDynamicStudy.InitialConditions):
.0) …Design variables have been updated.
.1) …Load time positions have been re-established. [SIZE=1]ERROR(OBJ.MCH.KIN2)[/SIZE] : [SIZE=1]H:/J…s/C…d/A…n/E…s/G…b/GaitLowerExtremity.main.any[/SIZE] : [SIZE=1]InverseDynamicStudy[/SIZE] : Model is kinematically over-constrained : Position analysis failed : 2 unsolvable constraint(s) found
.0) InverseDynamics (Operation: Main.Studies.InverseDynamicStudy.InverseDynamics):
.0.0) PreOperation (Operation: Main.Studies.InverseDynamicStudy.InverseDynamics.PreOperation):
.0.0) InitialConditions (Operation: Main.Studies.InverseDynamicStudy.InitialConditions):
.0.0) …Design variables have been updated.
.0.1) …Load time positions have been re-established. [SIZE=1]ERROR(OBJ.MCH.KIN2)[/SIZE] : [SIZE=1]H:/J…s/C…d/A…n/E…s/G…b/GaitLowerExtremity.main.any[/SIZE] : [SIZE=1]InverseDynamicStudy[/SIZE] : Model is kinematically over-constrained : Position analysis failed : 2 unsolvable constraint(s) found
The problem is that you are driving the subtalar eversion two times: once in the Jnt file where it is fixed to zero and again in the JointsAndDriversOptimized file. I suggest you remove the driver in the JointsAndDriversOptimized file.
Hi Hans,
it depends what you wanna change. but I guess you can keep it like it is. Right now, the Patellar is connected through a revolute joint with the thigh and has a fixed distance to the shank.
Best regards,
Sebastian
I have changed the KneeJoint in a spherical joint and I did not change the PatellaFemurJoint. I will add the constraints as well to let the inverse dynamics work. Are these steps correct?
After adding all the constraints and reactions. I could run the inverse dynamics but in the 8th step i will receive this error?
Macro command > run
.0) InverseDynamics (Operation: Main.Studies.InverseDynamicStudy.InverseDynamics):
.0.0) PreOperation (Operation: Main.Studies.InverseDynamicStudy.InverseDynamics.PreOperation):
.0.0) InitialConditions (Operation: Main.Studies.InverseDynamicStudy.InitialConditions):
.0.0) …Design variables have been updated.
.0.1) …Load time positions have been re-established.
.0.2) …Kinematic analysis completed. The kinematic constraints have been resolved.
.0.3) …Initial conditions are fully updated.
.0) Inverse dynamic analysis… [SIZE=1]ERROR(OBJ.MCH.MUS4)[/SIZE] : [SIZE=1]H:/J…s/C…d/A…n/E…s/G…b/GaitLowerExtremity.main.any[/SIZE] : [SIZE=1]InverseDynamicStudy.InverseDynamics[/SIZE] : Muscle recruitment solver : solver aborted after maximum number of iterations