Hi all,
I have done a motion capture session with the BTS Elite system. Unfortunately this specific hardware could not generate a C3D file (due to an old version) and now I just have .txt files with motion and force plate data. Is there any way that I can still use this information with AnyBody or is it exclusively C3D files that need to be used?
AnyBody can work with txt file input for both forceplate and ground reaction force data. However, it is much less work when data is stored in the C3D file format.
I don’t know what other formats your system can produce, but maybe you can find an other way to convert your files to C3D. The open source program Mokka can convert many different formats to C3D. Check it out. If you are really technical you may be able to use the b-tk library (which Mokka uses) to manually convert your txt files to C3D.
Thanks for your answer Morten. Mokka was a great tool for the tracking data, I could easily convert my .trc to a C3D file. Wish I would have known that one a long time ago However now I still have the force plate data in txt. You say that it is possible to import txt force data into anybody but it’s easier with C3D. What does it take for AnyBody to use the txt file I have? Is there a description of this somewhere? I haven’t found one in the tutorials yet. And if I somehow manage to convert even the force data, is it necessary that the force data is in the same C3D file as the tracking data or can I use two separate ones?
The repository contains a number of tools (class_templates) that automatically generate the necessary code for the forceplate setup from the information in the C3D files.
Some one wrote a guide on the Wiki site, on how to setup a Mocap model. It shows how to use the forceplate template files.
You can see what code is generated by looking at the class template files.
For example
AMMR\Body\AAUHuman\ToolBox\Mocap\ForcePlateType2.any
It has the code for the Type 2 force plates. You can find a overview of the different types of force plates on C3D.org
If you don't have a C3D file with force data, then you have to write the that code yourself. So you can certainly use the txt files directly, and there is also a lot of code in the class templates you can reuse. However, if you are a new AnyBody user you may find it hard.
I think Mokka can also add the force plate data to the C3D files. But I don't know what kind of formats it supports.
And if I somehow manage to convert even the force data, is it necessary that the force data is in the same C3D file as the tracking data or can I use two separate ones?
You can use seperate ones, but the time information must be the same in both c3d files. Otherwise the data won't be syncronized.
Now I have managed to get the marker and the force plate data into the same c3d file. However when I try to load the model (still without the force data) I get the following error message: Constructing model tree…
ERROR(SCR.PRS9) : C:/U…s/e…t/M…n/A…y/M…s/A…o/M…s/M…l/I…t/Markers.any(30) : Defined at : C:/P…s/A…y/A…0/AMMR/Body/A…n/T…x/M…p/CreateMarkerDriverClass.any(176) : ‘PosInterpol’ : Unresolved object
Model loading skipped
I guess it is some problem with the markers. As I am very new to AnyBody it might be a really basic mistake but I have tried to follow the instructions on the wiki post you sent me. I have renamed the markers in the Markers.any file so that they correspond to the ones in the .c3d file but I don’t understand why I get this error message.
The error you get is quite typical. This is the first error that everyone get when they adapt the example-models to their own data.
The file “Markers.any” has all the marker definitions for the example model. You are probably not using the exact same marker protocol as the example model. So some of your markers may have different names, hence the error.
You need to change ‘Markers.any’ so it matches your marker setup. The best option is to comment-out all the marker templates in ‘Marker.any’. Then try to load again. You will get more errors in other places. But try to eliminate them them by commenting the code. You want to get to a state where the model can load (even with no markes and forceplates)
After that you can start to add the markers one by one. Make sure the model can always load. This is the best strategy for new users, and it makes easier to find the errors.