User Tools

Site Tools


visual3d:tutorials:kinematics_and_kinetics:force_platforms

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
visual3d:tutorials:kinematics_and_kinetics:force_platforms [2024/07/31 14:07] – [Example] wikisysopvisual3d:tutorials:kinematics_and_kinetics:force_platforms [2025/01/15 19:42] (current) – [Practical Example] wikisysop
Line 1: Line 1:
 ====== Force Platforms ====== ====== Force Platforms ======
  
-=====Overview===== +Force platforms provide critical data for biomechanical analysis because they measure the interaction between the participant and the environment. Reaction force data measured by force platforms gives the calculated joint forces, moments and powers physical meaning.
-Force Platforms provide critical data for biomechanical analysis because they measure the interaction between the subject and the environment. If the subject is in contact with the floor, the joint forces, moments and powers have no physical meaning unless the reaction force data are included in the analysis.+
  
-**Note:** The Analog signals that are collected from the force platform are NOT the force signals. The force signals must be computed from these Analog signals using several parameters that specify the type of computations required (different force platforms require different computations).+**Note:** The [[visual3d:documentation:c3d_signal_types:analog_data_type|ANALOG]] signals that are collected from the force platform are NOT the force signals. The force signals must be computed from these analog signals using several parameters that specify the type of computations required. Different force platforms require different computations, which make this a non-trivial task.
  
-===== C3D Parameters =====+This tutorial focuses on working with **Type 4 force platforms** in Visual3D. Type 4 platforms are widely used in biomechanics and allow for the calculation of ground reaction forces using advanced processing of analog signals. Understanding the specific parameters required for this platform type is crucial for accurate analysis.
  
-The following parameters should exist:+To get the most out of this tutorial, we recommend reviewing the [[visual3d:documentation:kinematics_and_kinetics:external_forces:force_platforms|Force Platform Overview]] page. This resource covers essential background information, including: 
 +  * The different types of force platforms and their applications. 
 +  * Key concepts such as force signal computation and calibration. 
 +  * Detailed explanations of parameters and processing required for various platform types.
  
-[[Visual3D:Documentation:Pipeline:Force_Commands:FP_USED|FP_USED]] = number of force platforms used \\ +Once familiar with the foundational concepts outlined in the overviewreturn to this page to follow a step-by-step example of working with Type 4 force platforms in Visual3D. This tutorial provides practical guidance to help you set up and analyze data effectively.
-[[Visual3D:Documentation:Pipeline:Force_Commands:FP_TYPE|FP_TYPE]] = 4 \\ +
-[[Visual3D:Documentation:Pipeline:Force_Commands:FP_ZERO|FP_ZERO]] = the range of frames for which a background noise level is calculated and then subtracted from each of the analog channels \\ +
-[[Visual3D:Documentation:Pipeline:Force_Commands:FP_CHANNELS|FP_CHANNELS]] = FxFy, Fz, Mx, My, Mz \\ +
-[[Visual3D:Documentation:Pipeline:Force_Commands:FP_ORIGIN|FP_ORIGIN]] = The origin of the force platform in the force platform coordinate system (see the force platform manufacturer specifications. \\ +
-[[Visual3D:Documentation:Pipeline:Force_Commands:FP_CORNERS|FP_CORNERS]] = The (x,y,z) coordinates of the force platform corners in the laboratory coordinate systemNote that there is a specific ordering of the four corners.\\ +
-[[Visual3D:Documentation:Pipeline:Force_Commands:FP_CALMATRIX|FP_CALMATRIX]] = 6 x 6 Calibration Matrix.\\+
  
-===== Compute Force, COP, and FreeMoment =====+If you would prefer to watch a video walk-through of this tutorial, please follow the link here: [[https://youtu.be/K0tWmFYWpGc?feature=shared|Visual3D Tutorial Video 5: Force Platforms]] 
 +==== Interpreting the C3D File ====
  
-{{:fp_type6.jpg}}+We will begin by a brief review of the information stored in the [[visual3d:documentation:c3d_signal_types:c3d_format|C3D file]], this is also available on the Force Platforms Overview page mentioned previously.
  
-This figure depicts a Kistler force platform, but the diagrammed force vector is consistent with all force platforms.+=== C3D Parameters ===
  
-===== C3D Channels =====+The following parameters should exist in the C3D file:
  
-The number of channels associated with a force platform varies with the force platform manufacturer (usually represented as a force platform [[Visual3D:Documentation:Pipeline:Force_Commands:FP_TYPE|TYPE]] in the c3d format).+[[Visual3D:Documentation:Pipeline:Force_Commands:FP_USED|FP_USED]] = the number of force platforms used \\ 
 +[[Visual3D:Documentation:Pipeline:Force_Commands:FP_TYPE|FP_TYPE]] = the type of force platform used, which determines how to interpret the recorded analog signals \\ 
 +[[Visual3D:Documentation:Pipeline:Force_Commands:FP_ZERO|FP_ZERO]] = the range of frames for which background noise level is calculated and then subtracted from each of the analog channels \\ 
 +[[Visual3D:Documentation:Pipeline:Force_Commands:FP_CHANNELS|FP_CHANNELS]] = Names of the analog channels, e.g., Fx, Fy, Fz, Mx, My, Mz \\ 
 +[[Visual3D:Documentation:Pipeline:Force_Commands:FP_ORIGIN|FP_ORIGIN]] = The origin of the force platform in the force platform coordinate system (see the force platform manufacturer specifications) \\ 
 +[[Visual3D:Documentation:Pipeline:Force_Commands:FP_CORNERS|FP_CORNERS]] = The (x,y,z) coordinates of the force platform corners in the laboratory coordinate systemNote that there is a specific ordering of the four corners.\\ 
 +[[Visual3D:Documentation:Pipeline:Force_Commands:FP_CALMATRIX|FP_CALMATRIX]] = A calibration matrix for the force platform if required by the force platform's type\\
  
-For example (other options exist),+Force platform data is perhaps the most confusing aspect of the C3D file format. All of the force platform parameters required for the type of force platform being used must be defined correctly. Some of the parameters are specified by the Force Platform manufacturer; these values are provided in the Manufacturer's User Manual. Note that some of these parameters can not be transferred directly in the C3D file.
  
-Type 2, Type 3, and Type 4 platforms have 6 channels as follows as specified by the ANALOG channel numbers:\\ +**Important:** The C3D format assumes consistency between units throughout the file. If the motion capture data has been collected in millimetersthen all distance measures in the file must be consistent. This means that the corner locations and Force Platform ORIGIN values must be in millimeters and the moment channels of the force platform must be expressed in Newton-millimeters.
-  *[Original Analog]= [Fx_original, Fy_original, Fz_original, Mx_original, My_original, Mz_original]\\+
  
 +=== C3D Channels ===
  
-Type 3 and Type 7 platforms have 8 channels as follows as specified by the ANALOG channel numbers:\\ +The number of channels associated with a force platform and the information carried by each channel varies with the force platform manufacturer (usually represented as a force platform [[Visual3D:Documentation:Pipeline:Force_Commands:FP_TYPE|TYPE]] in the C3D format). The specifics of each force platform type can be found on the associated page:
-  *[Original Analog]= [Fx12, Fx34, Fy14, Fy23, Fz1, Fz2, Fz3, Fz4]\\+
  
 +| [[visual3d:documentation:pipeline:force_commands:fp_type_1|FP_TYPE 1]] | [[visual3d:documentation:pipeline:force_commands:fp_type_2|FP_TYPE 2]] | [[visual3d:documentation:pipeline:force_commands:fp_type_3|FP_TYPE 3]] | [[visual3d:documentation:pipeline:force_commands:fp_type_4|FP_TYPE 4]] | [[visual3d:documentation:pipeline:force_commands:fp_type_5|FP_TYPE 5]] | [[visual3d:documentation:pipeline:force_commands:fp_type_6|FP_TYPE 6]] | [[visual3d:documentation:pipeline:force_commands:fp_type_7|FP_TYPE 7]] |
  
-Type 3 and Type 6 platforms have 8 channels as follows as specified by the ANALOG channel numbers:\\ +For this tutorial we will focus on [[visual3d:documentation:pipeline:force_commands:fp_type_4|Type 4]] force platforms.
-  *[Original Analog]= [Fx1, Fy1, Fz1, Fx2, Fy2, Fz2, Fx3, Fy3, Fz3, Fx4, Fy4, Fz4]\\+
  
-===== Compute Baselines =====+Type 4 platforms have 6 channels as follows as specified by the ANALOG channel numbers: 
 +<code> 
 +[Original Analog] [Fx_original, Fy_original, Fz_original, Mx_original, My_original, Mz_original] 
 +</code>
  
-The [[Visual3D:Documentation:Pipeline:Force_Commands:FP_ZERO|FORCE_PLATFORM:ZERO]] C3D parameter defines the range of frames used to calculate an average baseline value for each ANALOG signal that is then subtracted from every frame. This does not affect the ANALOG signals (as seen in the data tree), this processing takes place when the Force Platform signals are computed.+Type 4 platforms also have a 6x6 CalMatrix that specifies how the original analog signals should be transformed.
  
-Note that most of the manufacturers arbitrarily set the range to be the first 10 frames of the trial. If the force platform is loaded during these first 10 frames, **the ground reaction force signals will be incorrect**; in this case the user should either set the frames to 0,0 so that no baseline is subtracted, or should select frames in which the force platform is unloaded+==== Preparing for Tutorial ==== 
-===== Subtract Baselines =====+The required material for this tutorial are contained within [[https://has-motion.com/download/YouTubeTutorial/Visual3D Tutorial 5 Force Platforms.zip|Visual3D Tutorial 5 Sample Data]], containing: 
 +  * **Tutorial5_ForcePlatforms_Start**: Used to start the tutorial, .cmz file containing the .c3d movement trial file. 
 +  * **walkNoFpParameters**: Movement trial file containing no force platform parameterschanges made throughout the tutorial. 
 +  * **Modify_Force_Platform_Parameters.v3s**: Pipeline script to modify force platforms for the example file. 
 +  
 +==== Practical Example ====
  
-[Tared Analog]= [Original Analog]-[Baseline]+The following example creates the force platform parameters for a C3D file that contains the ANALOG signals from the force platform but does not contain any parameters.
  
-==== Pre-Multiply by the CalMatrix ==== +  Download the ZIP file provided above and open **Tutorial5_ForcePlatforms_Start.cmz**. \\ \\ {{:Amti1.png}} \\ \\
- +
-Several of the force platform types have a Calibration Matrix (Inverse Sensitivity Matrix) that is provided by the manufacturer. Pre-multiplying (by Visual3D) of the analog channels by this calibration matrix converts the signals from volts to the appropriate Force and/or Moment signal units. +
- +
-For example: +
- +
-For a type 4\\ +
-[Analog]= [Fx, Fy, Fz, Mx, My, Mz]= [CalMatrix][Original Analog] +
- +
- +
-For a type 7\\ +
-[Analog]= [Fx12, Fx34, Fy14, Fy23, Fz1, Fz2, Fz3, Fz4]= [CalMatrix][Original Analog] +
- +
-**These signals are intermediate signals that are then used to compute the Ground Reaction Force** +
-===== The Ground Reaction Force ===== +
- +
-The Ground Reaction Force is represented by 3 vectors. +
- +
-  - Force +
-  - Center of Pressure +
-  - Free Moment +
- +
-==== Force Vector ==== +
- +
-Different force platform types have different calculations for the force vector. +
- +
-In the simplest case (Types 2 & 4), the force vector is equal to the intermediate force signals from the previous step. +
- +
-Force[X] = Fx \\ +
-Force[Y] = Fy \\ +
-Force[Z] = Fz \\ +
- +
-==== Center of Pressure Vector ==== +
- +
-Different force platform types have different calculations for the center of pressure vector. +
- +
-For Types 2 & 4, the center of pressure vector is computed as follows: +
- +
-COP[X] = (ORIGIN[Z]*Force[X] - My) / Force[Z]\\ +
-COP[Y] = (Mx + ORIGIN[Z]*Force[Y]) / Force[Z]\\ +
-COP[Z] = ORIGIN[Z} +
- +
-Note the use of an [[Visual3D:Documentation:Pipeline:Force_Commands:FP_ORIGIN|ORIGIN vector]].\\ +
- +
-==== Free Moment Vector ==== +
- +
-Different force platform types have different calculations for the center of pressure vector. +
- +
-For Types 2 & 4, the free moment vector is computed as follows: +
- +
-FreeMoment[X] = 0 \\ +
-FreeMoment[Y] = 0 \\ +
-FreeMoment[Z] = Mz - ( COP[X]*Force[Y] - COP[Y]*Force[X] ) \\ +
-===== Applying Threshold ===== +
- +
-[[Visual3D:Documentation:Kinematics_and_Kinetics:External_Forces:Force_Platforms#Minimum_Force|Under the Visual3D Force Menu is an option to set a threshold for force platform/structure data.]] +
- +
-Any signal value less than this threshold is set to 0 (is assumed to be noise). +
- +
-===== Transforming data to the Laboratory Coordinate System ===== +
- +
-At this point the signals have been computed in the Force Platform Coordinate system and must be transformed into the Laboratory Coordinate System to give them meaning relative to the Motion Capture Data. +
- +
-[[Visual3D:Documentation:Kinematics_and_Kinetics:External_Forces:Transform_from_FCS_to_LCS|Translate from Force platform Coordinate System (FCS) to Lab Coordinate System(LCS)]] +
- +
-===== Example ===== +
- +
-The following example creates the force platform parameters for a c3d file that contains the ANALOG signals from the force platform but does not contain any parameters. +
- +
-  - Download and Open the [[https://www.has-motion.com/download/examples/walkNoFpParameters.c3d|example c3d file]]. \\ \\ {{:Amti1.png}} \\ \\+
   - Select Modify Force Platform Parameters from under the Force Menu. The following dialog will appear \\ \\ {{:Amti2.png}}\\ \\   - Select Modify Force Platform Parameters from under the Force Menu. The following dialog will appear \\ \\ {{:Amti2.png}}\\ \\
   - Select the Get Current C3D Parameters. There should be no change to the dialog because there aren't any parameters in the file. You can check this by looking in the Parameters section of the Data Tree; there should be only one parameter used, which is equal to zero indicating no force platforms. \\ \\ {{:Amti3.png}} \\ \\   - Select the Get Current C3D Parameters. There should be no change to the dialog because there aren't any parameters in the file. You can check this by looking in the Parameters section of the Data Tree; there should be only one parameter used, which is equal to zero indicating no force platforms. \\ \\ {{:Amti3.png}} \\ \\
-  - For a type 4 force platform the edit boxes shown must be filled in. \\ \\ {{:Amti4.gif}} \\ \\+  - For a Type 4 force platformthe edit boxes shown must be filled in. \\ \\ {{:Amti4.gif}} \\ \\
   - The CalMatrix and ORIGIN parameters are provided in the AMTI manual. Each force platform has different values.   - The CalMatrix and ORIGIN parameters are provided in the AMTI manual. Each force platform has different values.
   - The channel numbers should correspond with the force platform signals. Visual3D stores the ANALOG signals alphabetically in the data tree, which is not necessarily consistent with the C3D file order. To see the C3D order you must look in the ANALOG parameters. \\ \\ {{:Amti5.gif}} \\ \\   - The channel numbers should correspond with the force platform signals. Visual3D stores the ANALOG signals alphabetically in the data tree, which is not necessarily consistent with the C3D file order. To see the C3D order you must look in the ANALOG parameters. \\ \\ {{:Amti5.gif}} \\ \\
   - The force platform corners are the locations of the corners of the force platform in the laboratory coordinate system.   - The force platform corners are the locations of the corners of the force platform in the laboratory coordinate system.
-  - Download a [[https://www.has-motion.com/download/examples/modifyForcePlatforms.v3s|pipeline command]] to modify the force platform parameters for the example file. +  - Make sure that the **Modify_Force_Platform_Parameter.v3s** pipeline script is within the ZIP file, this will be used to modify the force platform parameters for the example file. 
-  - From the Visual3D pipeline, load the pipeline file that you just downloaded. Execute the pipeline and all force platform parameters will be updated. \\ \\ {{:Amti6.gif}} \\ \\+  - From the Visual3D pipeline, load the in the pipeline file. Execute the pipeline and all force platform parameters will be updated. \\ \\ {{:Amti6.gif}} \\ \\
  
-===== Modifying the Force Platform Parameters =====+=== Modifying the Force Platform Parameters ===
  
-Force Platform data are perhaps the most confusing aspects of the C3D file format. All of the required Force Platform parameters for the type of Force Platform must be defined correctly. Some of the parameters are specified by the Force Platform manufacturer; these values are provided in the Manufacturers User Manual. Note that some of these parameters can not be transferred directly in the C3D file+It can be necessary to modify the force platform parameters that are present in C3D file.
- +
-**Important:** The C3D format assumes consistency between units throughout the file. If the Motion Capture data has been collected in millimeters, ALL distance measures in the file must be consistent. This means that the corner locations, and Force Platform ORIGIN values must be in millimeters, and the moment channels of the force platform must be expressed in Newton-millimeters. +
- +
-To examine or modify the parameters.+
  
   - In the **Force** menu, select **Modify Force Platform Parameters.**\\ \\ {{:tutorial3_2.jpg}}\\ \\    - In the **Force** menu, select **Modify Force Platform Parameters.**\\ \\ {{:tutorial3_2.jpg}}\\ \\ 
-  - Click the **Get Current C3D Parameters** button to populate the dialog box.\\ \\ The **Force Platform Zero Baseline Interval** indicates that the first 10 frames of data will be averaged to define a baseline, which is then subtracted from every frame of data.\\ \\ The ORIGIN (mm) shows a –21 mm Z component. The manufacturer manual will show a positive z-component. The c3d format assumes that this value will be a vector from the ORIGIN to the center of the top surface of the platform in the force platform coordinate system, which means that the value in the C3D file should be negative.\\ \\ Corner 1, Corner 2, Corner 3 and Corner 4 are the locations of the force platform corners specified in the laboratory coordinate system. This information is used to transform the signals from the force platform coordinate system to the laboratory coordinate system. In principle the force platform can be located in any orientation in the 3D data collection volume; e.g. the force platform does not have to be on the floor.\\ \\ The Analog Channels column shows the analog channel assignment number in the order the ANALOG channels appear in the c3d file. \\ \\+  - Click the **Get Current C3D Parameters** button to populate the dialog box.\\ \\ The **Force Platform Zero Baseline Interval** indicates that the first 10 frames of data will be averaged to define a baseline, which is then subtracted from every frame of data.\\ \\ The ORIGIN (mm) shows a –21 mm Z component. The manufacturer manual will show a positive z-component. The C3D format assumes that this value will be a vector from the ORIGIN to the center of the top surface of the platform in the force platform coordinate system, which means that the value in the C3D file should be negative.\\ \\ Corner 1, Corner 2, Corner 3 and Corner 4 are the locations of the force platform corners specified in the laboratory coordinate system. This information is used to transform the signals from the force platform coordinate system to the laboratory coordinate system. In principle the force platform can be located in any orientation in the 3D data collection volume; e.g. the force platform does not have to be on the floor.\\ \\ The Analog Channels column shows the analog channel assignment number in the order the ANALOG channels appear in the C3D file. \\ \\
   - Click Done or Cancel when finished examining data.   - Click Done or Cancel when finished examining data.
  
-===== Thresholding the Force Platform Signals ====+=== Thresholding the Force Platform Signals ===
  
 When force platform data exists, Visual3D attempts to assign the signal to a segment that comes into contact with it. If there is a low level of background noise in the signal, it will appear that something must be in contact with the force platform at all times. To ensure that only "sensible/real" contacts are used, a threshold values is specified such that any ground reaction force signal below this value is assumed to be zero. This ensures clean contacts with the force platform. When force platform data exists, Visual3D attempts to assign the signal to a segment that comes into contact with it. If there is a low level of background noise in the signal, it will appear that something must be in contact with the force platform at all times. To ensure that only "sensible/real" contacts are used, a threshold values is specified such that any ground reaction force signal below this value is assumed to be zero. This ensures clean contacts with the force platform.
Line 149: Line 86:
   - You can also choose one of the other options for modifying force platforms. Select [[Visual3D:Documentation:Modeling:Segments:Segment_to_COFP_Distance|Modify FP Center of Pressure Distance to Segment]] to specify a minimum distance (.2m default). This option allows you to verify that a particular signal has been caused by a segment.   - You can also choose one of the other options for modifying force platforms. Select [[Visual3D:Documentation:Modeling:Segments:Segment_to_COFP_Distance|Modify FP Center of Pressure Distance to Segment]] to specify a minimum distance (.2m default). This option allows you to verify that a particular signal has been caused by a segment.
  
-===== Graphing a Force Platform Signal =====+=== Graphing a Force Platform Signal ===
  
   - If the graph area at the right is still occupied, right-click anywhere on the graph area and select **Remove all graphs.**   - If the graph area at the right is still occupied, right-click anywhere on the graph area and select **Remove all graphs.**
Line 155: Line 92:
   - Right-click **FZ1**, select **Graph Signal**, and **New Graph.** This will open a graph of the Fz ANALOG channel of force platform1.   - Right-click **FZ1**, select **Graph Signal**, and **New Graph.** This will open a graph of the Fz ANALOG channel of force platform1.
   - In the Data Tree, open the folder labeled **FORCE** then open the folder labeled **ORGINAL.**   - In the Data Tree, open the folder labeled **FORCE** then open the folder labeled **ORGINAL.**
-  - Right click **FP1** and select **Graph Z**, and **New Graph.** This will open a graph of Z-component of the Ground Reaction Force signal.\\ +  - Right click **FP1** and select **Graph Z**, and **New Graph.** This will open a graph of Z-component of the Ground Reaction Force signal. 
-**Note:** These two signals are related to each other, but they are not identical. The ANALOG signal is stored in the coordinate system of the force platform. The FORCE (ground force) signal is stored in the Laboratory (Motion Capture) Coordinate System.+ 
 +**Note:** These two signals are related to each other, but they are not identical. The ANALOG signal is stored in the coordinate system of the force platform. The FORCE (ground force) signal is stored in the Laboratory (motion capture) Coordinate System.
  
 {{:tutorial3_1.jpg}}\\ {{:tutorial3_1.jpg}}\\
Line 163: Line 101:
 **Troubleshooting Tip:** If the ANALOG signals for the force platform exist, but the FORCE signal is zero, examine the FZ1 graph and verify that the Fz Channel of the ANALOG signals is negative. If not, then the ANALOG scale factor in the C3D file has probably been stored incorrectly by the motion capture software. The scale factor will need to be changed in the motion capture software and/or the file. **Troubleshooting Tip:** If the ANALOG signals for the force platform exist, but the FORCE signal is zero, examine the FZ1 graph and verify that the Fz Channel of the ANALOG signals is negative. If not, then the ANALOG scale factor in the C3D file has probably been stored incorrectly by the motion capture software. The scale factor will need to be changed in the motion capture software and/or the file.
  
 +Continue to the [[visual3d:tutorials:events:event_processing|Event Processing]].
  
visual3d/tutorials/kinematics_and_kinetics/force_platforms.1722434831.txt.gz · Last modified: 2024/07/31 14:07 by wikisysop