User Tools

Site Tools


visual3d:documentation:pipeline:force_commands:fp_type_6

This is an old revision of the document!


fp_used]]= number of force platforms used. the c3d parameter identifying the number of force platforms defined. this is a required parameter in the c3d file, so if you have no force platforms defined used=0 ==== c3d parameter force_platform:type ==== [[visual3d:documentation:pipeline:force_commands:fp_type|fp_type]]= 5 the c3d parameter identifying the type of force platform is ==== c3d parameter force_platform:zero ==== see also [[visual3d:documentation:pipeline:force_commands:fp_zeros|fp_zeros]] [[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 the 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. 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. in some cases it is not feasible to use the zero parameter to define a baseline for each signal. all force platform signals have some drift in the amplifiers, so it isn't a good idea to simply set the zero parameter to 0,0 so that no baseline is subtracted. see [[visual3d:documentation:pipeline:force_commands:fp_zero|fp_zero]] for examples on alternatives to deal with such situation. ==== c3d parameter force_platform:channels ==== each force platform has analog channels assigned to it. these signals are expected in order ( e.g. the numbers refer to the order of the channels stored in the c3d file, which can be seen by the order in the analog:labels parameter.) there are a number of parameters that are unique to each force platform type. the channels expected for type 2 force platforms are: [[visual3d:documentation:pipeline:force_commands:fp_channels|fp_channels]]= cz, dz, az, bz, yac, xdc, xab, ybd. ==== c3d parameter force_platform:origin ==== === amti force platforms === the origin is the vector from the sensor coordinate system to the top center of the force platform surface. it is expressed in the force platform coordinate system, so the z-value is defined to be negative. === guessing the correct force_platform::origin === [[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). the c3d file format is a public document (http://www.c3d.org) that most hardware vendors currently export. we are only aware of one implementation of the format that has an inconsistency that visual3d must handle explicitly. the force_platform:origin parameter (within the parameter section of the c3d file) describes the location of the working surface of the force platform relative to the force platform coordinate system. for amti force platforms the z-value of the origin should be a negative value. visual3d can correct this value automatically should it read a positive value. should the user not want to have the program correct this value automatically, a dialog is available under the properties menu item labeled "use correct force_platform:origin vector". in this dialog the user can select the check box "perform automatic correction"(the default). ==== c3d parameter force_platform:corners ==== [[visual3d:documentation:pipeline:force_commands:fp_corners|fp_corners]]= the (x,y,z) coordinates of the force platform corners in the laboratory coordinate system. note that there is a specific ordering of the four 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 [[[https://www.c-motion.com/v3dwiki/index.php?title=transform_from_fcs_to_lcs|transform_from_fcs_to_lcs]]] ===== c3d channels ===== [original analog]= [cz_original, dz_original, az_original, bz_original, yac_original, xdc_original, xab_original, ybd_original] as specified by the analog channel numbers ===== compute baselines ===== average the analog signals for the specified zero frames ===== subtract baselines ===== [tared analog]= [original analog]-[baseline] ===== pre-multiply by the calmatrix ===== [analog]= [cz, dz, az, bz, yac, xdc, xab, ybd]= [calmatrix][original analog] fp_type_5_calmatrix.png ==== calmatrix ==== s11 - s12 - s13 - s14 - s15 - s16 - s17 - s18 s21 - s22 - s23 - s24 - s25 - s26 - s27 - s28 s31 - s32 - s33 - s34 - s35 - s36 - s37 - s38 s41 - s42 - s43 - s44 - s45 - s46 - s47 - s48 s51 - s52 - s53 - s54 - s55 - s56 - s57 - s58 s61 - s62 - s63 - s64 - s65 - s66 - s67 - s68 **note: visual3d expects units consistent with the .c3d file. it is therefore important that the calmatrix is also consistent with those units.** ===== specify force vector ===== the following computed forces are in inches. force[x]= (cz*s11)+(dz*s12)+(az*s13)+(bz*s14)+(yac*s15)+(xdc*s16)+(xab*s17)+(ybd*s18) force[y]= (cz*s21)+(dz*s22)+(az*s23)+(bz*s24)+(yac*s25)+(xdc*s26)+(xab*s27)+(ybd*s28) force[z]= (cz*s31)+(dz*s32)+(az*s33)+(bz*s34)+(yac*s35)+(xdc*s36)+(xab*s37)+(ybd*s38) \\ the following computed moments of force are in inch-pounds. m[x]= (cz*s41)+(dz*s42)+(az*s43)+(bz*s44)+(yac*s45)+(xdc*s46)+(xab*s47)+(ybd*s48) m[y]= (cz*s51)+(dz*s52)+(az*s53)+(bz*s54)+(yac*s55)+(xdc*s56)+(xab*s57)+(ybd*s58) m[z]= (cz*s61)+(dz*s62)+(az*s63)+(bz*s64)+(yac*s65)+(xdc*s66)+(xab*s67)+(ybd*s68) \\ for type 5 lengthconversion = point units conversion to meters; e.g. for point units=in lengthconversion=0.0254 e.g. force conversion lbs to n: 1lbs = 4.448n ===== compute center of pressure ===== cop[x]= (origin[z]*force[x] - my) / force[z] cop[y]= (mx + origin[z]*force[y]) / force[z] cop[z]= origin[z] ===== compute free moment ===== freemoment[x]= 0 freemoment[y]= 0 freemoment[z]= mz - ( cop[x]*force[y] - cop[y]*force[z] ) these resulting signals are computed in the force platform coordinate system, and must be transformed into the laboratory coordinate system for use in visual3d. ===== applying threshold ===== 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). }}

visual3d/documentation/pipeline/force_commands/fp_type_6.1718801449.txt.gz · Last modified: 2024/06/19 12:50 by sgranger