====== XSens v5 ======
In Visual3D version 6, the import was enhanced so this information is no longer relevant. For opening MVNX files using Visual3D version 6, see the [[Visual3D:Documentation:Third-Party:XSens:XSens|Xsens page]].
===== Importing Xsens Data =====
=== Download Files ===
* [[https://www.has-motion.com/download/examples/Xsens/MVNX_Files.zip|Sample MVNX files]]
* These sample MVN files were downloaded from the [[https://www.xsens.com/|Xsens Website]] and then exported from MVN Studio as MVNX files
* [[https://www.has-motion.com/download/examples/Xsens/XsensModel.zip|Visual3D model (in .cmo format) for Xsens import]]
* This Visual3D model was created specifically for use with the Xsens MVNX file import and must be loaded into the Visual3D workspace prior to importing the Xsens MVNX data file
* [[https://www.has-motion.com/download/examples/Xsens/Xsens_LoadData_Scripts.zip|Xsens Load Scripts]]
* These sample scripts walk you through the steps to load the Xsens data
=== Step 1: Open Static ===
When loading the mvnx file into Visual3D, is it important to complete two steps prior to loading the data file.
The first step is to open the relevant model, which is saved in the Xsens CMO file (this file can be downloaded from the downloads section above).\\
**Step 1: Open Static - Instructions** (click to expand)
The Xsens Model CMO file MUST be used when importing the Xsens data. This Visual3D model is designed to match the Xsens model from MVN Studio and thus any modifications/alterations to this Visual3D .cmo file will most likely result in errors/erroneous data.
The Xsens model is described here.
To load Xsens data into Visual3d the first step is to open the Xsens compatible CMO file [[https://www.has-motion.com/download/examples/Xsens/XsensModel.zip|Xsens Model CMO]].
File_Open
! Load model
/File_Name=
/SET_PROMPT=Open CMO file containing model template (XsensModel_2015_09_15.cmo)
;
**NOTE:** Typically with motion capture data a static trial is loaded by going to "Model -> Create (Add Static Calibration File) ...". For Xsens data, since no static C3D file is collected, you simply open the [[https://www.has-motion.com/download/examples/Xsens/XsensModel.zip|Xsens Model CMO]].
\\
=== Step 2: Set Model Specific Metrics ===
The second step which should be done prior to loading the mvnx file into Visual3D is to scale the generic Xsens model to the specific subject. This model was created to match the model used by Xsens and the model should not be changed in any way (other than updating the specified metrics).\\
**Step 2: Set Model Specific Metrics - Instructions** (click to expand)
In Visual3D, the subject's height (meters) and weight (kilograms) must always be specified by the user.
The hip height is necessary to position the subject correctly in the static trial, however, it is not a required value, and not updating this value will not affect your results in your dynamic trials.
To accurately calculate kinematics AND kinetics in Visual3D, the following metrics must be manually measured by the user and entered into the model template:
* Distance between the left and right anterior superior iliac spine (ASIS_Width)
To accurately calculate kinetics in Visual3D, the following metrics must be manually measured by the user and entered into the model template:
* Right/left knee radius (Radius_RKNE/LKNE)
* Right/left ankle radius (Radius_RANK/LANK)
* Right/left distal foot radius (Radius_RFT_DIST/LFT_DIST)
* Right/left shoulder radius (Radius_RSHO/LSHO)
* Right/left elbow radius (Radius_REJC/LEJC)
* Right/left wrist radius (Radius_RWRIST/LWRIST)
* Right/left hand radius (Radius_RHAND/LHAND)
The LoadXsensData_PromptMetrics.v3s script (which can be downloaded [[https://www.has-motion.com/download/examples/Xsens/Xsens_LoadData_Scripts.zip|here]]), will prompt the user for all these metrics, and update the metrics in the model template.
A sample collection sheet can be downloaded [[https://www.has-motion.com/download/examples/Xsens/CollectionSheet.pdf|here]]. The sample collection sheet is just provided as an outline and you should determine the best method to collect these measures.
Please note, these values are necessary to accurately calculate kinetics. If you are only calculating kinematics, only the ASIS_Width parameters needs to be updated.
\\
=== Step 3: Import MVNX Data ===
The third step is to import the mvnx file.\\
**Step 3: Import_Xsens_MVNX_Data - Instructions** (click to expand)
This command loads the dynamic trials into the workspace.
The command is listed under File Open/Import:
Import_Xsens_MVNX_Data
! /CALIBRATION_FILE=
! /FILE_NAME=
! /SET_PROMPT=Open Xsens mvnx File
;
* If only one static trial exists (one subject), you can leave the CALIBRATION_FILE parameter blank.
* If FILE_NAME is left blank, you will be prompted for the MVNX file
* You can select multiple dynamic trials at once
\\
\\
===== Processing Xsens Data =====
==== Trunk Graphic ====
The default Xsens model points to the [[https://www.has-motion.com/download/examples/Xsens/Trunk_No_Neck.zip|thoraciccerviclet12toacromium_noneck.obj]] graphic.
This means if the graphic does not appear in your model, you can download the graphic [[https://www.has-motion.com/download/examples/Xsens/Trunk_No_Neck.zip|here]], unzip the files (obj and mtl), and place them in your default graphics folder. Once the graphic file is placed in the models folder, you may need to close and re-open Visual3D. Instructions to find your models folder can be found [[Visual3D:Tutorials:Modeling:Fun_With_Graphics#Finding_your_Graphics_Folder|here]].
==== Filtering ====
You can filter the Xsens data using Visual3D's filtering capabilities. To do this select the raw IMU signal that you want to filter, found under the data type IMU_DATA in the Data Tree, apply the Visual3D filter to the signal and then RECALC the model.
Be aware that if any of the joint angle (JointAng) signals in the IMU_DATA folder suddenly change trigonometric quadrants, leading to a sudden discontinuity in the signal, you should not filter that signal. Joint angle discontinuities are most likely to occur when a subject reverses direction. Although the "_JointAng" signals are relative to the proximal segment, the data is loaded into Visual3D relative to ground, so discontinuity can occur.
==== Joint Angles ====
The _JointAng signal in the IMU_DATA folder are not euler angles, so you will still need to create euler angles. How to define Joint Angles is described [[Visual3D:Documentation:Pipeline:Model_Based_Data_Commands:Joint_Angle|here]].
**NOTE:** Since the Xsens coordinate system is defined as Y ML, X AP, and Z Axial, if you want the default euler sequence used in gait (ML-AP-AX), you should make sure to select a Y-X-Z [[Visual3D:Documentation:Pipeline:Model_Based_Data_Commands:Joint_Angle#Cardan_Sequence|Cardan Sequence]].