====== FP CORNERS ====== C3D Parameter FORCE_PLATFORM:CORNERS The force platform corners are numbered from 1 to 4. The values are specified in the Laboratory Coordinate System in units consistent with the POINT data. The order is specified by the quadrant numbers in the force platform coordinate system. The order is (+x,+y), (-x, +y), (-x, -y), ( +x, -y). Visual3D calculates the transformation matrix from the force platform coordinate system to the laboratory coordinate system using the force platform corners. This transformation matrix is then used to transform the force vector from the force platform coordinate system (in which it was collected) into the laboratory coordinate system where it is used for the analysis. The Force Platform corners can be modified using the [[Visual3D:Documentation:Pipeline:Force_Commands:Modify_Force_Platform_Parameters|Modify_Force_Platform_Parameters]] selection under the Visual3D File Menu ==== Transforming the Ground Reaction Force into the Laboratory Coordinate System ==== The following pseudo-code describes the algorithm for computing the transformation from the Force Platform Coordinate System (FPCS) to the 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 ==== Example_1 Using mocap markers to define the corners ==== Consider the following markers to be placed on the corners of a force platform. FP1_1, FP1_2, FP1_3, FP1_4 Capture a short trial of these markers. Create the following pipeline: !First define the marker radius as a pipeline parameter \\ [[Visual3D:Documentation:Pipeline:Pipeline_Commands:Set_Pipeline_Parameter|Set_Pipeline_Parameter]] /PARAMETER_NAME=MARKER_RADIUS /PARAMETER_VALUE=10 **;** \\ ! Compute the median value of the corners over all frames of the trial. ! the result will be placed in the Global Workspace \\ [[Visual3D:Documentation:Pipeline:Metric_Commands:Metric_Median|Metric_Median]] /RESULT_METRIC_NAME=_MED /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE /RESULT_METRIC_FOLDER=FPLOC /SIGNAL_TYPES=TARGET /SIGNAL_NAMES=FP1_1 + FP1_2 + FP1_3 + FP1_4 ! /SIGNAL_FOLDER=ORIGINAL ! /SIGNAL_COMPONENTS=ALL_COMPONENTS /EVENT_SEQUENCE= /EXCLUDE_EVENTS= ! /GENERATE_MEAN_AND_STDDEV=TRUE ! /APPEND_TO_EXISTING_VALUES=FALSE \\ ! If the force platform parameters have already been defined, we only need to modify the corners. ! Note that the markers are in meters, but the following command requires millimeters \\ [[Visual3D:Documentation:Pipeline:Force_Commands:Modify_Force_Platform_Parameters|Modify_Force_Platform_Parameters]] /FP_USED=1 /FP_CORNER1= 1000*GLOBAL::METRIC::FPLOC::FP1_1_MED_MEAN::X +1000*GLOBAL::METRIC::FPLOC::FP1_1_MED_MEAN::Y +1000*(GLOBAL::METRIC::FPLOC::FP1_1_MED_MEAN::Z-&::MARKER_RADIUS) /FP_CORNER2= 1000*GLOBAL::METRIC::FPLOC::FP1_2_MED_MEAN::X +1000*GLOBAL::METRIC::FPLOC::FP1_2_MED_MEAN::Y +1000*(GLOBAL::METRIC::FPLOC::FP1_2_MED_MEAN::Z-&::MARKER_RADIUS) /FP_CORNER3= 1000*GLOBAL::METRIC::FPLOC::FP1_3_MED_MEAN::X +1000*GLOBAL::METRIC::FPLOC::FP1_3_MED_MEAN::Y +1000*(GLOBAL::METRIC::FPLOC::FP1_3_MED_MEAN::Z-&::MARKER_RADIUS) /FP_CORNER4= 1000*GLOBAL::METRIC::FPLOC::FP1_4_MED_MEAN::X +1000*GLOBAL::METRIC::FPLOC::FP1_4_MED_MEAN::Y +1000*(GLOBAL::METRIC::FPLOC::FP1_4_MED_MEAN::Z-&::MARKER_RADIUS) **;** ==== Example_2 Using mocap markers to define the corners ==== **Introduced in Visual3D Version 5** Consider the following markers to be placed on the corners of a force platform in the standing trial. FP1_1, FP1_2, FP1_3, FP1_4 MARKER_RADIUS is a model metric containing the radius of the markers. ! If the force platform parameters have already been defined, we only need to modify the corners. ! Note that the markers are in meters, but the following command requires millimeters \\ [[Visual3D:Documentation:Pipeline:Force_Commands:Modify_Force_Platform_Parameters|Modify_Force_Platform_Parameters]] /FP_USED=1 /FP_CORNER1= 1000*MODEL::TARGET::FP1_1::X +1000*MODEL::TARGET::FP1_1::Y +1000*(MODEL::TARGET::FP1_1::Z-&::MARKER_RADIUS) /FP_CORNER2= MODEL::TARGET::FP1_2::X +1000*MODEL::TARGET::FP1_2::Y +1000*(MODEL::TARGET::FP1_2::Z-&::MARKER_RADIUS) /FP_CORNER3= 1000*MODEL::FP1_3::X +1000*MODEL::TARGET::FP1_3::Y +1000*(MODEL::TARGET::FP1_3::Z-&::MARKER_RADIUS) /FP_CORNER4= 1000*MODEL::FP1_4::X +1000*MODEL::TARGET::FP1_4::Y +1000*(MODEL::TARGET::FP1_4::Z-&::MARKER_RADIUS) **;**