Loading c3d files.

I have some problems to load c3d files.

Firstly, I want to load a walking motion which is exactly same motion with GaitFullBody motion.
But my marker set is a little bit different from yours.
My c3d file doesn’t have RFRA, LFRA, RMT5, LMT5 markers.
So I remove it in ModelSetup.any file.
Then it makes a error as below.

ERROR(SCR.PRS9) : D:/AnyBody/A…1/A…n/E…s/Ga…y/ModelSetup.any : Defined At : D:/A…y/A…1/A…n/E…s/G…y/CreateMarkerClass.any : ‘PosInterpol’ : Unresolved object

Secondly, I tried to use vicon’s marker set.(It is not gait motion.)
It doesn’t have RFRA, LFRA, RMT5, LMT5 markers as well.
So I remove it in ModelSetup.any file.
In this case, it makes a error as below.

ERROR(OBJ.FILE1) : D:/AnyBody/A…1/A…n/E…s/Ga…y/ModelSetup.any : ModelSetup.C3DFileData.FileName : Problem with file : D:\AnyBody\AMMRV1.1\Application\Examples\GaitFullBody kd1.c3d : The group names in the c3d file are not unique

Please inform me what makes the problem.


I think you removed the markers from the MarkerLabels list but you did not remove the coresponding folder further down the file for each of those markers. Make sure to remove them as well.

There must be some markers with the same name in the c3d file. Anybody needs to have each marker with a unique name to identify them properly. Please make sure to give each marker a unique name in the c3d file.

Hi, thanks a lot about your kindness.
I made sure to remove every unneccessary markers folders as well.
But it was not loaded.
So I did another motion capture about walking motion.
Now… I can load it.
However… there is another problem.
There is an error with following message.

‘ERROR(OBJ.MCH.KIN3) : D:/A…y/A…1/A…n/E…s/G…1/GaitLowerExtremity.main.any : KinematicStudyForParamterIdentification.InitialConditions : Kinematic analysis failed in time step 0’

and I can see this message as well. ‘Failed to resolve kinematic constraints. Newton relaxation too small. (final kin. error = 5.100175E+000)’

I think I have a problem about kinematic constraints…But I don’t know what should I do.
Do you have any idea about this problem?



for the first c3d file if you still have the error ‘PosInterpol’ : Unresolved object it means that probably some markers names in the model do not correspond to the names in the c3d file. The names must be the same for the model to work properly.

Now about the initial conditions error: it can be that the initial posture defined by the mannequin file is too far from the real one, you can try to improve it. Also make sure that there are no joint drivers that are conflicting. If you have enough markers there is no need for joint drivers.

Best regards, Sylvain.

Thanks a lot about your concern.:slight_smile:
I got what the problem is.
Now I can simulate my motion capture data.

Thank you again and have a nice day.

Sorry… I thought I solved all problems…
But there is another problem…
Now I can load my c3d files with no problem.
And I can operate Initial Condition and Kinematics as well.

But… the problem is Inverse Dynamics.
When I load my c3d file, AnyBody doesn’t get Fx, Fy, Fz, Mx, My, Mz.
When I did the motion capture, I used 2 force plates.
Then AnyBody doesn’t recognize any force at all.

So there is a following error.

ERROR(SCR.PRS9) : D:/AnyBody/A…1/A…n/E…s/G…y/Environment.any : Defined At : D:/AnyBody/A…1/A…n/E…s/G…y/Environment.any : ‘Fx1’ : Unresolved object

Could you tell me what the problem is??

the problem could be related to a different name convention in your C3d file.
Have a look at the C3d file like its loaded in the AMS and see if the links from the Environment file are right. Sometimes we saw that some motion capture systems will not place the Force data in the C3d files.
Best regards,

Thanks a lot.
I’ve solved all problems.
I tried 4 c3d files and 2 of them was simulated properly.

But the other 2 have an error something like follow.

ERROR(OBJ.MCH.MUS4) : D:/A…y/A…)/A…1/A…1/A…n/E…s/G…y/GaitFullBody.main.any : InverseDynamicStudy.InverseDynamics : Muscle recruitment solver : solver aborted after maximum number of iterations

Do you have any good idea to solve this problem?

And Activity of some muscles is too high.
I think 1 should be the highest activity.
Could you tell me about this problem?

Thank you.


There can be many reasons for the recruitment error. It could be just numeric, you can try a different solver type or change the number of time step.

For the muscle over activity you can start by checking the force plate: that the center of presure is correctly placed under the foot, that the force is applied to the correct foot.

Best regards, Sylvain.

Thank you very much for your reply.
I will try some other methods.

I have other questions.
I’m so sorry about so many questions.

Firstly, your c3d file has the analog signal data, not the force and moment data. So you should compute the force and moment from the analog data.
Somewhere in the file, you should’ve compute it. And I cannot find it where it is.
Anyway, I’ve used another force plate and the analog value is a little bit different from yours. So I need another computation.
Then the value which is used when you calculate the force is in the c3d file. So I guess you do something in ‘Cal’.
The question I hope to know is that I have to modify something or not when I use another force plate.
I know how to derive the force from my analog data. I mean I know the computation.

Secondly, if I have a gimbal lock problem when I use c3d file, what can I do to solve this problem? I think rotating the axis could be a method but I cannot find where I can do it.

Thirdly, can I know the distance between the standard marker location and my marker location. I mean that I cannot attatch markers at the exact location on my body. So is there any method to know how different it is?

Lastly, my friend uses version 4.0 and is there any method to use c3d file?



The forceplates are defined in the forceplate class file if you are looking at the GaitLowerExteremityModel it is in the CreateForceplate class which is included in the top section of the main file, just click the link and it will direct you to the correct file.

There are different types of force plates, which can report the data in various ways, the type can be seen as the Type value in the Forceplate section of the c3d file header. Depending on which type you have you can select to use one of the other predefined forceplate classes available in the repository. These classes can all be found in the Body/Toolbox/mocap folder of the repository. Some of the classes make use of the calibration matrix it depends on the type.

Concerning the gimbal lock which joint is it? if it is a joint which is not being driven and just used for measuring it may not influence the model output.

In the CreateMarkerClass also to be found in mocap folder of the toolbox there is an AnyKinDriverMarker object the x,y,z distance can be found in the “pos” value of the this object. So from this you can see the distance between the markers.

Version 4.0 supports the c3d format so it allows you to read in the files, but it does not have the new overdeterminate kinematic solver as in 4.1 and 4.2. So driving the models with mocap data you need to rely on an external application named Gaitapplication2, there are many post on this forum on this subject. I would highly recommend to use the newest AMS version it is much easier that running the external application, the workflow is much simpler now.

Best regards