User Tools

Site Tools


visual3d:documentation:kinematics_and_kinetics:external_forces: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:documentation:kinematics_and_kinetics:external_forces:force_platforms [2024/07/03 17:37] – created sgrangervisual3d:documentation:kinematics_and_kinetics:external_forces:force_platforms [2024/12/02 15:43] (current) wikisysop
Line 1: Line 1:
-====== Force_Platforms ======+====== Force Platforms Overview ======
  
 Note: This page addresses the representation of external forces and how these forces are included in the inverse dynamics calculations. If you are searching for the computation of Forces and Moments, see the section on [[Visual3D:Documentation:Kinematics_and_Kinetics:Inverse_Dynamics|Inverse Dynamics]]. Note: This page addresses the representation of external forces and how these forces are included in the inverse dynamics calculations. If you are searching for the computation of Forces and Moments, see the section on [[Visual3D:Documentation:Kinematics_and_Kinetics:Inverse_Dynamics|Inverse Dynamics]].
  
-Force Platforms are commonly used for biomechanical analyses. So common that there is a fairly laissez-faire attitude towards force platform data. Many users don't realize the complexity of computing the ground reaction force vector in the laboratory coordinate system (where it is actually needed for Inverse Dynamics calculations), and, therefore don't take the time that is required to ensure that the data are correct. Issues related to force platform coordinates are described below, but we feel it is necessary to emphasize one topic above all others. **The location of the ground reaction force relative to the ankle is the biggest source of error in Inverse Dynamics analysis of gait.** Surprisingly few laboratories, however, undertake the challenge of verifying the location of the force platforms within the 3D motion capture volume (see our [[CalTester:Overview|CalTester]] section), or verifying the scaling and offset parameters on the ANALOG signals. This reluctance to perform a straightforward test inevitably leads to pain later on during your analysis and, in the worst cases, can make your data unusable.+Force Platforms are commonly used for biomechanical analyses. So common that there is a fairly laissez-faire attitude towards force platform data. Many users don't realize the complexity of computing the ground reaction force vector in the laboratory coordinate system (where it is actually needed for Inverse Dynamics calculations), and, therefore don't take the time that is required to ensure that the data are correct. Issues related to force platform coordinates are described below, but we feel it is necessary to emphasize one topic above all others. **The location of the ground reaction force relative to the ankle is the biggest source of error in Inverse Dynamics analysis of gait.** Surprisingly few laboratories, however, undertake the challenge of verifying the location of the force platforms within the 3D motion capture volume (see our [[CalTester:CalTester_Mode_Overview|CalTester]] section), or verifying the scaling and offset parameters on the ANALOG signals. This reluctance to perform a straightforward test inevitably leads to pain later on during your analysis and, in the worst cases, can make your data unusable.
  
 ==== Verify Force Platform Parameters ==== ==== Verify Force Platform Parameters ====
Line 15: Line 15:
 The Ground Reaction Force is represented by 3 vectors: Force, Center of Pressure, and Free Moment. These Ground Reaction Force vectors are computed from the ANALOG signals recorded from the force platform, with the calculations performed as specified by the force platform manufacturer, and the location of the force platform in the laboratory. Within the Visual3D data tree the resulting Force signal is stored in the FORCE folder; the Center of Pressure signal is stored in the COFP folder; and the Free Moment signal is stored in the FREEMOMENT folder. The Ground Reaction Force is represented by 3 vectors: Force, Center of Pressure, and Free Moment. These Ground Reaction Force vectors are computed from the ANALOG signals recorded from the force platform, with the calculations performed as specified by the force platform manufacturer, and the location of the force platform in the laboratory. Within the Visual3D data tree the resulting Force signal is stored in the FORCE folder; the Center of Pressure signal is stored in the COFP folder; and the Free Moment signal is stored in the FREEMOMENT folder.
  
-{{Visual3D_Force_Signal_Calculations.png}}+{{:Visual3D_Force_Signal_Calculations.png}}
  
 ==== Filtering Force Signals ==== ==== Filtering Force Signals ====
Line 23: Line 23:
 1. Filter the ANALOG signals and select the option to use PROCESSED ANALOGS. In this case you will not need to filter the resulting FORCE, COFP, and FREEMOMENT signals. 1. Filter the ANALOG signals and select the option to use PROCESSED ANALOGS. In this case you will not need to filter the resulting FORCE, COFP, and FREEMOMENT signals.
  
-{{Visual3D_Filtering_Analog_Force_Signals.png}}+{{:Visual3D_Filtering_Analog_Force_Signals.png}}
  
 In order to use PROCESSED ANALOGS, verify in the settings menu that the option **Use Processed Anglogs for Ground Reaction Force Calculations** is checked. If this is the case, then Visual3D will calculate the FORCE, COFP, and FREEMOMENT signals using the signals found in ANALOG::PROCESSED. If the PROCESSED folder does not exist, then Visual3D will default to using the ORIGINAL folder instead. In order to use PROCESSED ANALOGS, verify in the settings menu that the option **Use Processed Anglogs for Ground Reaction Force Calculations** is checked. If this is the case, then Visual3D will calculate the FORCE, COFP, and FREEMOMENT signals using the signals found in ANALOG::PROCESSED. If the PROCESSED folder does not exist, then Visual3D will default to using the ORIGINAL folder instead.
Line 29: Line 29:
 2. Filter the FORCE signals directly. In this case you should also filter the COFP and FREEMOMENT signals. 2. Filter the FORCE signals directly. In this case you should also filter the COFP and FREEMOMENT signals.
  
-{{Visual3D_Filtering_Force_Signals.png}}+{{:Visual3D_Filtering_Force_Signals.png}}
  
 In order to use these PROCESSED signals, verify in the settings menu that the option **Use Processed Targets for Model/Segment/LinkModelBased items** is checked. If this is the case, then Visual3D will calculate any [[Visual3D:Documentation:Visual3D_Signal_Types:KINETIC_KINEMATIC_Data_Type|kinetic and kinematic]] signals using the signals in the PROCESSED folder of the TARGETS, FORCE, COFP, and FREEMOMENT signal types. Again, if the PROCESSED folder does not exist, then Visual3D will default to using the respective ORIGINAL folders instead. In order to use these PROCESSED signals, verify in the settings menu that the option **Use Processed Targets for Model/Segment/LinkModelBased items** is checked. If this is the case, then Visual3D will calculate any [[Visual3D:Documentation:Visual3D_Signal_Types:KINETIC_KINEMATIC_Data_Type|kinetic and kinematic]] signals using the signals in the PROCESSED folder of the TARGETS, FORCE, COFP, and FREEMOMENT signal types. Again, if the PROCESSED folder does not exist, then Visual3D will default to using the respective ORIGINAL folders instead.
Line 37: Line 37:
 Visual3D's Force menu contains an option to set a threshold for force platform/structure data. Visual3D's Force menu contains an option to set a threshold for force platform/structure data.
  
-{{MinimumForceMenu.jpg}}+{{:MinimumForceMenu.jpg}}
  
 Applying a threshold value to the force signals ensures that If the computed force is less than the minimum force, then the FORCE and FREEMOMENT are set to zero, the COFP is set to [[Visual3D:Documentation:C3D_Signal_Types:DATA_NOT_FOUND|DATA_NOT_FOUND]]. This value can also be set using the pipeline command **[[Visual3D:Documentation:Pipeline:Force_Commands:Set_Force_Platform_Threshold|Set_Force_Platform_Threshold]]**. This command is listed under the **[[Visual3D:Documentation:Pipeline:Force_Commands:Force_Commands_Review|Force]]** category of the pipeline commands. This threshold value is used to remove noise from the force signals. Often for instrumented treadmills this value must be set higher than for overground gait trials. Applying a threshold value to the force signals ensures that If the computed force is less than the minimum force, then the FORCE and FREEMOMENT are set to zero, the COFP is set to [[Visual3D:Documentation:C3D_Signal_Types:DATA_NOT_FOUND|DATA_NOT_FOUND]]. This value can also be set using the pipeline command **[[Visual3D:Documentation:Pipeline:Force_Commands:Set_Force_Platform_Threshold|Set_Force_Platform_Threshold]]**. This command is listed under the **[[Visual3D:Documentation:Pipeline:Force_Commands:Force_Commands_Review|Force]]** category of the pipeline commands. This threshold value is used to remove noise from the force signals. Often for instrumented treadmills this value must be set higher than for overground gait trials.
  
-{{MinimumForceDlg.jpg}}+{{:MinimumForceDlg.jpg}}
  
 ==== Force Assignment ==== ==== Force Assignment ====
Line 66: Line 66:
   - [[Visual3D:Documentation:Pipeline:Force_Commands:FP_CHANNELS|FP_CHANNELS]] - The channel numbers of the ANALOG signals recorded from the Force Platform. These channel numbers vary according to the [[Visual3D:Documentation:Pipeline:Force_Commands:FP_TYPE|Force Platform type]].   - [[Visual3D:Documentation:Pipeline:Force_Commands:FP_CHANNELS|FP_CHANNELS]] - The channel numbers of the ANALOG signals recorded from the Force Platform. These channel numbers vary according to the [[Visual3D:Documentation:Pipeline:Force_Commands:FP_TYPE|Force Platform type]].
   - [[Visual3D:Documentation:Pipeline:Force_Commands:FP_CORNERS|FP_CORNERS]] - The locations of the Force Platform's corners in the Lab's coordinate system, specified in units consistent with the POINT data. The order of the corner locations is specified by the quadrant numbers in the force platform coordinate system: (+x,+y), (-x, +y), (-x, -y), ( +x, -y).   - [[Visual3D:Documentation:Pipeline:Force_Commands:FP_CORNERS|FP_CORNERS]] - The locations of the Force Platform's corners in the Lab's coordinate system, specified in units consistent with the POINT data. The order of the corner locations is specified by the quadrant numbers in the force platform coordinate system: (+x,+y), (-x, +y), (-x, -y), ( +x, -y).
 +
 +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.
 +
 +**Important:** The C3D format assumes consistency between units throughout the file. If the motion capture data has been collected in millimeters, then 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.
 +
 +==== C3D Channels ====
 +
 +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:
 +
 +| [[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]] |
 +
 +==== Computing Force, COP, and Free Moment ====
 +
 +The force signals of interest for our kinetic analysis are the [[visual3d:documentation:visual3d_signal_types:force_data_type|Force]], [[visual3d:documentation:visual3d_signal_types:cofp_data_type|Centre of Pressure]], and [[visual3d:documentation:visual3d_signal_types:freemoment_data_type|Free Moment]] signals. This figure depicts a Kistler force platform, but the diagrammed force vector is consistent for all force platforms manufacturers.
 +
 +{{:fp_type6.jpg}}
 +
 +Although each force platform type records different information in its different channels, the process for converting the original recorded analog signals into the desired force signals follows the same common steps:
 +  - Compute baselines
 +  - Subtract baselines from original signals
 +  - Pre-multiply by the calibration matrix (if applicable)
 +  - Calculate the Ground Reaction Force
 +  - Apply a threshold
 +  - Transform data to the Laboratory Coordinate System
 +
 +== Compute Baselines ==
 +
 +The [[Visual3D:Documentation:Pipeline:Force_Commands:FP_ZERO|FP_ZERO]] C3D parameter defines the range of frames used to calculate an average baseline value for each ANALOG signal.
 +
 +**Note:** 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, then **the ground reaction force signals will be incorrect**. If this is the case, then 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.
 +
 +== Subtract Baselines ==
 +
 +The baseline value for each ANALOG channel represents the value of that channel's signal under no load. It is subtracted from that ANALOG channel's original signal at every frame to produce a tared signal. This does not affect the original ANALOG signals as seen in the data tree since this processing takes place when the Force Platform signals are computed.
 +
 +<code>
 +[Tared Analog] = [Original Analog]-[Baseline]
 +</code>
 +
 +== Pre-multiply by the CalMatrix ==
 +
 +Several of the force platform types have a Calibration Matrix (Inverse Sensitivity Matrix) that is provided by the manufacturer. Visual3D pre-multiplies the values reported by the analog channels with this calibration matrix in order to convert the recorded analog signals from volts to the appropriate Force and/or Moment signal units.
 +
 +For example, for a type 4 force platform:
 +<code>
 +[Converted Analog] = [Fx, Fy, Fz, Mx, My, Mz]= [CalMatrix][Tared Analog]
 +</code>
 +
 +**Note:** These signals are intermediate signals that are then used to compute the Ground Reaction Force.
 +
 +== Calculate the Ground Reaction Force ==
 +
 +The Ground Reaction Force is represented by 3 vectors: Force, Centre of Pressure (COFP), and Free Moment. Each is calculated from the the appropriate analog signals. Different force platform types require different calculations for these Ground Reaction Force vectors.
 +
 +For a Type 4 force platform, the force vector is equal to the intermediate force signals from the previous step.
 +
 +<code>
 +Force[X] = Fx
 +Force[Y] = Fy
 +Force[Z] = Fz
 +</code>
 +
 +For a Type 4 force platform, the centre of pressure vector is computed as follows:
 +
 +<code>
 +COP[X] = (ORIGIN[Z]*Force[X] - My) / Force[Z]
 +COP[Y] = (Mx + ORIGIN[Z]*Force[Y]) / Force[Z]
 +COP[Z] = ORIGIN[Z]
 +</code>
 +
 +**Note:** The [[Visual3D:Documentation:Pipeline:Force_Commands:FP_ORIGIN|ORIGIN]] is necessary for this calculation.
 +
 +For a Type 4 force platform, the free moment vector is computed as follows:
 +
 +<code>
 +FreeMoment[X] = 0
 +FreeMoment[Y] = 0
 +FreeMoment[Z] = Mz - ( COP[X]*Force[Y] - COP[Y]*Force[X] )
 +</code>
 +
 +== Apply the Threshold ==
 +
 +The Visual3D Force Menu contains an option to set a [[Visual3D:Documentation:Kinematics_and_Kinetics:External_Forces:Force_Platforms#Minimum_Force|threshold for force platform/structure data]]. Any computed signal value that is less than this threshold is assumed to be noise and is set to 0.
 +
 +== Transform 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.
 +
 +As long as the force platform is accurately located within the lab, for example by using the [[caltester:caltester_mode_overview|CalTester]], this is accomplished by a straightforward [[Visual3D:Documentation:Kinematics_and_Kinetics:External_Forces:Transform_from_FCS_to_LCS|translation]] from the force platform coordinate system to the lab coordinate system.
 +
  
 ==== Learn More ==== ==== Learn More ====
visual3d/documentation/kinematics_and_kinetics/external_forces/force_platforms.1720028263.txt.gz · Last modified: 2024/07/03 17:37 by sgranger