I am working on a squat model driven by my own c3d files. I was able to get both the ‘motion and parameter optimization’ and ‘inverse dynamics’ running with the c3d file “squat_wijd_btk”. However, the force plate data of this c3d is questionable. A new c3d file was made which would have the correct force plate data (“squatPB”) and implemented in AnyBody.
This time I can’t get passed the ‘motion and parameter optimization’ and get the following error:
ERROR(OBJ.MCH.KIN3) : C:/U…s/H…1/D…s/U…n/A…n/A…n/DVD/A…s/S…t/M…t/AMMR/A…n/E…s/M…l/M…l/Kinematics.any(74) : MotionOptimization.Kinematics : Kinematic analysis failed in time step 16
The model view shows that the lower extremities are rotated relative to the force plates and the upper body but when I open the c3d in Mokka everything seems to be fine.
I am unsure why the rotation of the lower body occurs so any help is welcome.
I was able to fix my model. The ‘motion and parameter optimization’ and ‘inverse dynamics’ are running but I am getting questionable results.
The models purpose are to assess hip joint reaction forces (HJRF). That’s why I added the following line to the “Model/InverseDynamics” folder:
AnyVar HipReacR = (Main.Studies.HumanModel.BodyModel.Right.Leg.Jnt.Hip.Constraints.Reaction.Fout^2+ Main.Studies.HumanModel.BodyModel.Right.Leg.Jnt.Hip.Constraints.Reaction.Fout^2+ Main.Studies.HumanModel.BodyModel.Right.Leg.Jnt.Hip.Constraints.Reaction.Fout^2)^0.5;
Since I got the model to run, I wanted to investigated the HJRF’s for different test subjects. The anthropometric data and MoCap c3d files are supplied to me by another party involved in this project. However, running the simulation with the newly supplied c3d files shows questionable results, HJRF’s are around 4-5k Newton instead of 2-3k Newton.
To narrow down what might be causing this i have the following questions:
Do you need to adjust the position of the markers in the MyMarkers.any every time you switch test subject, even when the protocol is the same?
The anthropometric data: PelvisWidth, is this measured from the right hip joint center to the left hip joint center?
Does anyone have an idea how to compare the force plate data of the different c3d files. This way i could maybe tell if its an error in the measurements
To answer your questions:
I don’t believe that the marker file needs to be changed between subjects if the same protocol was used. An exception to this would be if the subjects had very variable physical characteristics, such as fat around the pelvic region. In that case you might want to allow parameter optimization to vary the marker coordinates in these variable directions. Is there any reason why you suspect the need for this? Did the MoCap and model marker trajectoriess not align very well after the kinematic simulation was run?
Yes, that is indeed correct. However, you do not need to worry about it’s absolute value if you are using it as a design variable in parameter optimization. The simulation will then arrive at a value of PelvisWidth which results in a scaling ratio that minimizes the marker errors.
Since you are using force plates of Type3, I assume you would only be interested in comparing the net force acting on each forceplate. In AnyBody this can be accessed through Main.Studies.KinematicStudyForParameterIdentification.Output.EnvironmentModel.PlateLeft.CenterOfPressure.fx. Similarly you can obtain y and z components of the force on a single plate. Since this is an output variable, you can also plot this in a chart. You can click on the data table button (see Lesson 3 from User Interface Features in the tutorials). You right click on the table which appears below the chart, choose ‘Copy’ and paste the contents in the excel sheet. You could repeat this for different c3d files (after you’ve run the corresdponding Kinematics/InvDynamics simulations) and have a common excel file documenting the reaction forces from all c3d files.
Dear Ananthgk1 and others,
Thank you for your response.
My suspicion arose from the fact that the pelvis of one of my subjects took on an abnormal width. This is probably due to an anomaly in just this one c3d file then.
I have also followed your advice on how to compare the force plate measurements. The recorded forces seem pretty similar which suggest that these are not the cause of the large hip joint reaction forces.
To further exclude certain parameters I have a follow up question:
If I were to redo the MyMarkers.any file, what would be the best approach to obtain the “SRelOpt” (Position of the Marker on the skeleton, relative to the segment) coordinates?
I apologize for the delay in answering your question. The best way to currently figure out marker positions in AnyBody is to visualize the local coordinate systems of the segment using the AnyDrawRefFrame class and then manually gauge the adjustment needed in the 3 cartesian directions to move the marker to the desired location. Make these changes and reload.
Thank you for your response.
I will fine-tune my marker positions and post an update on how it went.