visual3d:documentation:pipeline:force_commands:fp_corners
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
visual3d:documentation:pipeline:force_commands:fp_corners [2024/06/19 12:50] – sgranger | visual3d:documentation:pipeline:force_commands:fp_corners [2025/01/16 18:26] (current) – Clean up page. wikisysop | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | c3d parameter force_platform: | + | ===== FP CORNERS ===== |
- | the force platform corners | + | This page provides an overview of the [[visual3d: |
- | the order is (+x,+y), (-x, +y), (-x, -y), ( +x, -y). | + | The force platform' |
+ | - (+x,+y) | ||
+ | - (-x, +y) | ||
+ | - (-x, -y) | ||
+ | - ( +x, -y). | ||
- | visual3d calculates | + | Visual3D uses these force platform corners to calculate |
- | the force platform | + | The Force Platform |
- | ===== transforming | + | ==== Transforming |
- | the following pseudo-code describes the algorithm for computing the transformation from the force platform coordinate system | + | The following pseudo-code describes the algorithm for computing the transformation from the Force Platform Coordinate System |
- | x_vector = unit_vector(corner3 - corner2) | + | < |
- | y_vector = unit_vector(corner1 - corner2) | + | x_vector = unit_vector(corner3 - 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, | + | |
- | 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 | + | Rotation Matrix - FPCS to LCS |
- | capture a short trial of these markers. | + | fpcs_to_lcs column1= x_vector |
+ | | ||
+ | | ||
- | create the following pipeline: | + | location of top center of force platform in LCS |
+ | platform_top_center_lcs= average(corner1, | ||
- | !first define the marker radius as a pipeline parameter | + | vector from plate origin to top center relative to lab |
- | \\ | + | Rotate_to_Lab(forceplatform_origin) |
- | + | ||
- | + | ||
- | [[visual3d: | + | |
- | / | + | |
- | / | + | |
- | **;** | + | |
- | \\ | + | |
- | + | ||
- | + | ||
- | ! compute the median value of the corners over all frames of the trial. | + | |
- | ! the result will be placed in the global workspace | + | |
- | \\ | + | |
+ | vector from LCS origin to platform origin | ||
+ | platform_origin_lcs= platform_top_center_lcs- vector from plate origin to top center | ||
+ | </ | ||
- | [[visual3d: | + | ==== Example 1: Use average marker locations to define force platform corners |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | / | + | |
- | ! / | + | |
- | ! / | + | |
- | / | + | |
- | / | + | |
- | ! / | + | |
- | ! / | + | |
- | \\ | + | |
+ | Consider the following markers to be placed on the corners of a force platform. | ||
+ | * FP1_1 | ||
+ | * FP1_2 | ||
+ | * FP1_3 | ||
+ | * FP1_4 | ||
- | ! if the force platform parameters have already been defined, we only need to modify the corners. | + | Capture a short trial of these markers |
- | ! note that the markers | + | |
- | \\ | + | |
+ | < | ||
+ | !First define the marker radius as a pipeline parameter | ||
+ | Set_Pipeline_Parameter | ||
+ | / | ||
+ | / | ||
+ | ; | ||
- | [[visual3d: | + | ! Compute the median value of the corners over all frames of the trial. |
- | /fp_used=1 | + | ! the result will be placed in the Global Workspace |
- | /fp_corner1= 1000*global:: | + | Metric_Median |
- | +1000*global:: | + | /RESULT_METRIC_NAME=_MED |
- | +1000*(global:: | + | /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE |
- | /fp_corner2= 1000*global:: | + | / |
- | +1000*global:: | + | /SIGNAL_TYPES=TARGET |
- | +1000*(global:: | + | / |
- | /fp_corner3= 1000*global:: | + | ! /SIGNAL_FOLDER=ORIGINAL |
- | +1000*global:: | + | ! / |
- | +1000*(global:: | + | / |
- | /fp_corner4= 1000*global:: | + | /EXCLUDE_EVENTS= |
- | +1000*global:: | + | ! / |
- | +1000*(global:: | + | ! / |
- | **;** | + | ; |
- | ===== example_2 using mocap markers to define the corners ===== | + | |
- | **introduced in visual3d version 5** | + | ! If the force platform parameters have already been defined, we only need to modify |
- | consider | + | ! Note that the markers are in meters, but the following command requires millimeters |
+ | Modify_Force_Platform_Parameters | ||
+ | / | ||
+ | / | ||
+ | +1000*GLOBAL:: | ||
+ | +1000*(GLOBAL:: | ||
+ | / | ||
+ | +1000*GLOBAL:: | ||
+ | +1000*(GLOBAL:: | ||
+ | / | ||
+ | +1000*GLOBAL:: | ||
+ | +1000*(GLOBAL:: | ||
+ | / | ||
+ | +1000*GLOBAL:: | ||
+ | +1000*(GLOBAL:: | ||
+ | ; | ||
+ | </ | ||
- | fp1_1, fp1_2, fp1_3, fp1_4 | + | ==== Example 2: Modify |
- | marker_radius is a model metric containing the radius of the markers. | + | |
- | ! if the force platform | + | |
- | ! note that the markers are in meters, but the following command requires millimeters | + | |
- | \\ | + | |
+ | This example is possible in **Visual3D Version 5 or later**. | ||
- | [[visual3d:documentation: | + | Consider the following markers to be placed on the corners of a force platform in the standing trial: |
- | / | + | * FP1_1 |
- | / | + | * FP1_2 |
- | +1000*model:: | + | * FP1_3 |
- | +1000*(model:: | + | * FP1_4 |
- | / | + | |
- | +1000*model:: | + | |
- | +1000*(model:: | + | |
- | / | + | |
- | +1000*model:: | + | |
- | +1000*(model:: | + | |
- | / | + | |
- | +1000*model:: | + | |
- | +1000*(model:: | + | |
- | **;** | + | |
+ | Given MARKER_RADIUS is a [[visual3d: | ||
+ | < | ||
+ | ! 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 | ||
+ | Modify_Force_Platform_Parameters | ||
+ | /FP_USED=1 | ||
+ | / | ||
+ | +1000*MODEL:: | ||
+ | +1000*(MODEL:: | ||
+ | / | ||
+ | +1000*MODEL:: | ||
+ | +1000*(MODEL:: | ||
+ | / | ||
+ | +1000*MODEL:: | ||
+ | +1000*(MODEL:: | ||
+ | / | ||
+ | +1000*MODEL:: | ||
+ | +1000*(MODEL:: | ||
+ | ; | ||
+ | </ |
visual3d/documentation/pipeline/force_commands/fp_corners.1718801445.txt.gz · Last modified: 2024/06/19 12:50 by sgranger