===== FP_Type ===== The FP_TYPE force platform parameter indicates the type of force platform used in the [[visual3d:documentation:c3d_signal_types:c3d_format|C3D file]]. This is important as different force platforms record a different number of analog channels and store different information in these channels. Understanding the type of force platform used allows Visual3D to correctly compute the desired [[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 from the recorded analog signals. More in-depth information about each force platform type is available on the respective 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]] | ==== Analog Channels ==== ^ ^ Ch 1 ^ Ch 2 ^ Ch 3 ^ Ch 4 ^ Ch 5 ^ Ch 6 ^ Ch 7 ^ Ch 8 ^ Ch 9 ^ Ch 10 ^ Ch 11 ^ Ch 12 ^ | [[visual3d:documentation:pipeline:force_commands:fp_type_1|FP_TYPE 1]] | Fx | Fy | Fz | Mx | My | Tz | | | | | | | | [[visual3d:documentation:pipeline:force_commands:fp_type_2|FP_TYPE 2]] | Fx | Fy | Fz | Mx | My | Mz | | | | | | | | [[visual3d:documentation:pipeline:force_commands:fp_type_3|FP_TYPE 3]] | Fx12 | Fx34 | Fy14 | Fy23 | Fz1 | Fz2 | Fz3 | Fz4 | | | | | | [[visual3d:documentation:pipeline:force_commands:fp_type_4|FP_TYPE 4]] | Fx | Fy | Fz | Mx | My | Mz | | | | | | | | [[visual3d:documentation:pipeline:force_commands:fp_type_5|FP_TYPE 5]] | CZ | DZ | AZ | BZ | YAC | XDC | XAB | YBD | | | | | | [[visual3d:documentation:pipeline:force_commands:fp_type_6|FP_TYPE 6]] | Fx1 | Fy1 | Fz1 | Fx2 | Fy2 | Fz2 | Fx3 | Fy3 | Fz3 | Fx4 | Fy4 | Fz4 | | [[visual3d:documentation:pipeline:force_commands:fp_type_7|FP_TYPE 7]] | Fx12 | Fx34 | Fy14 | Fy23 | Fz1 | Fz2 | Fz3 | Fz4 | | | | | Channel contents for Types 3, 6, and 7 refer to the four corners of the force platform numbered 1, 2, 3, and 4. Channel contents for Type 5 refer to the four corners of the force platform named A, B, C, and D. ==== Calibration Matrices ==== A [[Visual3D:Documentation:Pipeline:Force_Commands:FP_CALMATRIX|CalMatrix]] (or Inverse Sensitivity Matrix) is used to pre-multiply the original analog signal recorded when required by the force platform type. Force platforms of [[visual3d:documentation:pipeline:force_commands:fp_type_4|Type 4]] include a 6x6 CalMatrix. [[visual3d:documentation:pipeline:force_commands:fp_type_2|Type 2]] platforms can be thought of as Type 4 platforms where the CalMatrix is the identity matrix. Force platforms of [[visual3d:documentation:pipeline:force_commands:fp_type_6|Type 6]] include a 12x12 CalMatrix. Force platforms of [[visual3d:documentation:pipeline:force_commands:fp_type_7|Type 7]] include an 8x8 CalMatrix. [[visual3d:documentation:pipeline:force_commands:fp_type_3|Type 3]] platforms can be thought of as Type 7 platforms where the CalMatrix is the identity matrix. ==== Computing Force, COFP, and Free Moment ==== 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, COFP, and FreeMoment 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 ==== Transforming the GRF into the Laboratory Coordinate System ==== The following pseudo-code describes the algorithm for transforming the Ground Reaction Force from the Force Platform Coordinate System (FPCS) into the [[visual3d:documentation:definitions:laboratory_coordinate_system|Laboratory Coordinate System]] (LCS). x_vector = unit_vector(corner3 - corner2) y_vector = unit_vector(corner1 - corner2) z_vector = cross_product(x_vector , y_vector) y_vector = cross_product(z_vector , x_vector) Rotation Matrix - FPCS to LCS fpcs_to_lcs column1= x_vector fpcs_to_lcs column2= y_vector fpcs_to_lcs column3= z_vector Location of top center of force platform in LCS platform_top_center_lcs= average(corner1, corner2, corner3, corner4) Vector from plate origin to top center relative to lab Rotate_to_Lab(forceplatform_origin) Vector from LCS origin to platform origin platform_origin_lcs= platform_top_center_lcs- vector from plate origin to top center