Note that this step used to be called "Smart Smoothing" and was based on a different algorithm. Make sure that you have the most current MATLAB and Maya scripts for this step.
what you need:
- a markercoordinates.csv file 3 columns for each marker (xyz coordinates)
- an *xyzpts.csv file from digitized data (may need to be smoothed before calculating rigid body motion)
Note: The number of columns must be a perfect match between the two files.
if you have 10 markers - you must have 30 columns in both files.
what to do:
*** OBSOLETE, DO NOT USE ***
CRITICAL UPDATE: Use new XMALab software for marker-based XROMM, including Undistortion, Calibration, Marker Tracking, and Rigid Bodies.
XMALab replaces MATLAB XrayProject. See Bitbucket XMALab wiki for XMALab User Manual (not this wiki).
Calculate Rigid Body Motion
- Type rigidBody into the MATLAB commandline.
- Select the .csv file with your calculated CT marker coordinates.
- Select your unfiltered (xyzpts.csv) or filtered (xyzptsButter##.csv) data file.
- Type the number of bones in the input box.
- select Select the markers associated with each bone (omit any markers with all NaNs, i.e. markers that were not digitized).
- save Save the file output.
what you get:
A (yourfilename)BoneTforms.csv file with the translations and rotations to drive your bones (in a bizarre, Maya-friendly 16x1 matrix format)
- To use this file in maya, you will
- select the bones in the same order used above.
- type impMatrix at the command prompt
- select the file saved in step6
- rigidBody calls 2 additional scripts: svdrigid and mayaMatrixFormat
- svdrigid takes marker data for a single bone and outputs rotations and translations
- mayaMatrixFormat converts the framex3x3 rotation matrices and framex3 translations and converts them to a framex16 rotation matrix in a Maya-friendly format
- you need a minimum of 3 markers per bone in order for the program to have enough information to calculate the rigid body motion.