Force Plate Data

I am trying to finalise a model where I have incorporated a C3D file into the UniGaitMaimi model. The kinematics seem ok, and I am just altering the environment file to accommodate the C3D file which has 16 force signals. Therefore, I just wondered if there was an example file which I could look at which incorporates a 16 force signal data set, so I know if I am changing the environment file correctly.
Also, I have checked the Anybody publications, but wondered if anyone else has tried to compare the kinematics from a set of gait data modelled in Anybody to that of another kinematical software. We are currently comparing the kinematics from a gait trail modelled in Anybody and Vis3D, but are experiencing a little variance.
Many Thanks

Hi Pete

From your description i am usure how many force plates you have in the C3D file, are all 16 signals from one plate?

In the C3D object i think it is in the header, you will find a section for the forceplate, there should be a type number. Each number corresponds to a specific way of reporting the forces from the plates. The description can be found at

So please try to find the plate there and use this description for creating the environment.any file.

I can not guide you to any paper with a kinematic comparison sorry.

Could you explain in more detail the differences your are seeing?, maybee it can be explained in different ways of measuring the rotations different cooridnate systems etc. Additionally the optimization procedure to obtain the motion should create a small difference if comparing to a non optimized model i guess.

Best regards

Thanks for the reply. The C3D file has four force plates with 16 signals per plate, and have checked the header file which reports, a File Type=PC, Data Type=Real and Data Sign=Signal. I not sure what these relate to in the link which was posted.
The model we have been building , looks to have the same joint angles in the sagital plane compared to another kinematical software (only around 2-4 degress difference). However, the ankle eversions and hip external rotation vary considerably, and don’t even display the correct pattern during the gait cycle. I’m not sure if angles are measured in difference reference frames, which may possibly account for the variation.
Additionally, we are looking a quite a few gait trails, but are having a problem rotating the motion data through the AnyMat33 Orientation =RotMat(0*pi/180,z), so that the motion progresses in the positive x direction, as detailed in the instructions. I have attached an example of a model which moves in the negative x direction (although the gait was captured in the opposite direction), and where the motion does not rotate, even when the AnyMat33 Orientation is altered. I not quite sure why this happens, as other trials we have used have rotated successfully.

Many thanks

Hi Pete

I looked at the this property of you model:

Class: [SIZE=3]AnyInt
[/SIZE]Complete name: [SIZE=3]Main.C3DFileData.Groups.FORCE_PLATFORM.TYPE.Data
[/SIZE]Construction: [SIZE=3]C: est5\AnyBodyModelRepositoryV1.0\AnyBodyModelRepositoryV1.0\Application\unihull\GaitUniHull rial.Groups.any(163)
[/SIZE][SIZE=3]Data[/SIZE] = {4, 4, 4, 3, 3}

This is giving the force plate types of you model, according to your file it has five plates, three of type 4 and two of type 3.

Here is a link to the description of type 4
And here is another link to type3

The overview of the fdiffeent types can be seen here

So it looks like the first three plates has six channles and need calibration to transfer volts to forces and moments. The file contains a calibration matrix
it is a 5x6x6 matrix but it looks like the first three are three 6x6 matrices with real values and the comes two 6x6 zero matrices, meaning that the type 3 plates does not need the calibration.

You can read more about the calibration matrix here:

To be able to compare the results, it is essential that the angles are measured in the exact same way in terms of coordinate systems and sequence of rotations. If you have a description of the way the angles are measured in Vis3D you can create your own AnyKinRotationals and use the output from these for the comparison, you can alway add extra measures to the model.

If you look in the file MarkerListMover.any i think there the rotation of the global ref system somehow has gone missing.

It should be [SIZE=3]
AnyFixedRefFrame[/SIZE] GlobalRef= {
Axes = Main.Orientation;

otherwise there will be no effect of changing the orinetation at all, i guess this could explain the behaviour you are seeing.

Best regards


Thanks for the reply. The rotation matrix is working fine now and I will try and altering the AnyKinRotationals to see if that solves the differences we are getting.
I understand the format of the force plate data in the C3D file better now, although I am still unsure how the type 4 plates should be integrated into the environment.any file. Looking at the UniGaitMiami model I am guessing that there is no calibration via the cal_matrix due to the differing force plate type, therefore I have no idea how to alter the model to include the calibration. I would be very grateful of any advice you may have which would me to do this.
Thanks again,

Hi Pete

I have tried to create an example of a type4 plate for you please see the attached file.

There are still several issues, but i had no more time …
1: the data look’s like pure noise either this is a problem of the current trial or something is messed up in the transformations, or heavy filtering is needed.
2: i have not checked wheter the forces and moments are applied in the correct cooridnate system

The plate i have created is generic you should be able to just change the variable plnr (platenumber) and it will do another plate of the first three type 4 plates.

Please remember to change the foot in contact with the plate.

There are more comments in the file which explains a little more.

So please try evaluate the script and try it out.

Best regards