No announcement yet.

BTK forceplate origin HELP! [Bertec instrumented treadmill + OptiTrack]

  • Filter
  • Time
  • Show
Clear All
new posts

  • BTK forceplate origin HELP! [Bertec instrumented treadmill + OptiTrack]

    Hi Friends,

    I am currently integrating a Bertec instrumented treadmill (ITC-21-20R) and motion capture data (optiTrack Flex13).

    I have analogue data from the force plates (left/right) and a C3D that I am combining via btk (btkAppendForcePlatformType2). Unfortunately the true origin of the force plate is in the bottom left corner of the forceplate, not the center as assumed by btkAppendForcePlatformType2! I am unsure how to move the origin of the force plate to the correct position in 3D space.

    Any help would be much appreciated!
    A medium volume USB camera with excellent precision.

  • #2

    I came across the same issue with the force data from a Kistler instrumented treadmill stored in a C3D file generated by Vicon Nexus. It took a bit of investigating to figure out how to read the data. Hence the need for standardization of how processed force plate data is stored as a Type 2 plate (Forces and Moments) in a C3D file.
    The plate moments are expressed relative to a corner of the plate and in the local plate axes system. The location of this corner relative to the centre of the plate surface is given in the plate calibration parameters Xo, Yo, Zo in the C3D file, also expressed in the local plate axes system. Zo will be zero as both points are on the plate surface. Using the negative of Xo and Yo values the force plate moments can be tranformed from the corner to moments relative to the center of the plate surface. The forces and moment are reactive rather than plate forces so all will need a change of sign. The CoP can then be calculated from the forces and moments, relative to the centrer of the plate surface and in the local plate axes system. Using the global coordinates of the force plate corners, held in the C3D file, the force plate axes and centre of the plate surface relative to the global axes system can be calculated. The final step is transforming the forces and CoP from local to the global axes system.
    I will be interested to know what software was used to generate your C3D file and whether this procedure works? If I can get a copy a C3D file I can check if these steps will read your file correctly.



    • #3
      A potential help would be to use an MTD which allows you to apply a force vector to the plate and observe the force vector recorded by the motion capture system - C-Motion offers the CalTester software that can report the accuracy of the test and is very helpful. If you are viewing the recorded C3D data with the Mokka application then you may get some strange results because Mokka was written a long time ago and can have some issues if the force plate origin is not in the center of the plate or recorded imprecisely.


      • #4
        Hi James,

        If you would like to consider an alternative to Matlab/BTK…The MotionMonitor, our real-time biomechanics software, offers synchronization, data collection and co-location of your Bertec Treadmill + Optitrack Flex 13 cameras. The MotionMonitor offers a co-location routine by taking simultaneous COP and 3D point readings using a stylus. An RMS error for the alignment is provided and, then, the alignment can easily and quickly be verified in real-time by comparing COP reading and the stylus tip point 3D locations as well as visualizations in the animation showing stylus tip point and force vector location.

        The MotionMonitor can also dynamically control the treadmill belts’ speed and acceleration through user-defined variables and formulas. This can be useful for various applications such as self-paced walking or for introducing perturbations.

        Happy to answer any questions.

        Thank you,
        The MotionMonitor


        • #5
          As Altan explained, for locating Force plates in coordinate space of Motion Capture System, you need C3D FORCE_PLATFORM:CORNERS parmeters ( for each force plate, to tranform Force, Moments and COP, from local coordinate reference frame(of Foce Plates) to Global CRF. You can use markers at corners of force plates for FORCE_PLATFORM:CORNERS. Order of the FP Corners is important, and depends on local coordinate reference frame of the force Plates, that varies for each force plate (left and right) in this particular Instrumted traedmill, figure 11 and 12 of the user manual onn page 24.
          So, this is not a simple case of typical Type2 Force Plate. But, as you have collected Analog data from Force Plate/Instrumnted treadmill, I am curious why you are using btkAppendForcePlatformType2 function. There are functions in btk to extract GRF and COP from analog data. Also, you will need to do some signal processing, filtering on analog data, before applying calibration matrix, to be abe to get usable GRF (force moments) and COP values. Refer