Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
  • Melissa Boswell
  • Hannah O'Day

...

Inertial Measurement Unit (IMU) sensors are electronic devices that measure and report a body's specific force, angular rate, and sometimes the magnetic field surrounding the body, using a combination of accelerometers, gyroscopes and magnetometers. Most people interact with these devices daily, via the IMU in their smartphone that allows them accurate navigating ability. Recent advances in wearable IMU technology, however, are allowing users to capture and store hours of  kinematic data. Traditionally, kinematic data was only attainable in motion capture laboratories equipped with multiple cameras that tracked a subject's motion via reflective markers worn on the body.  With wearable, wireless IMU sensors, we have a unique opportunity - the ability to capture human motion in "natural" settings (outside of the laboratory) lasting multiple hours.  One such IMU company, Xsens, uses a 3D accelerometer, 3D gyroscope, and 3D magnetometer in each of their IMU sensors to capture full 6 degree-of-freedom tracking of body segments.

...

Instructions for creating an OpenSim motion file from XSens .mnvx file in Matlab (See README_JointAngles.txt)

1. Run read_jointAngles_lowerbody_write_motion_file.m (Matlab)

a. This runs main_mvnx.m (this is code modified from Xsens Toolkit, Xsens North America Inc.)

This file loads two figures of the “first segment position” - the pelvis rotation in 3D and the pelvis 3D translation

...

       i. main_mvnx.m uses the load_mvnx.m function (Xsens Toolkit)

...

       ii. Outputs a data tree with all the biomechanical model segment and IMU sensor data (joint angles, joint velocities, joint accelerations etc.)

b. Creates a table of all joints and joint angles from IMU data at every time point (jointTable)

c. Outputs selected joint angles to a matrix with time as first row (allAnglesMatrix)

d. Creates motion file named “mvnxfilename_Xsens_jointangle_q.mot” of joint angles to input in Open Sim from Xsens IMU Data

This file has required OpenSim headings and formats data correctly for use with OpenSim model (but only has pelvis_tilt pelvis_tx pelvis_ty hip_flexion_r knee_angle_r ankle_angle_r)

2. Open your .osim model in OpenSim (the .osim models we have included correspond to each .mvnx file, and all start in the default position determined by the subject’s physical body position at the beginning of the experiment).

For example, if you used the LegSwing_40bpm_5-26-17.mvnx then you should load the gait10dof18musc_40.osim model

3. Input created .mot file into OpenSim through 'File -> Load Motion' and pick the mvnxfilename_Xsens_jointangle_q.mot filemot file.


 

~5 deg~90 deg

Examples of the reconstructed seated knee flexion motion in the OpenSim model.

IV. Reconstructing motion in OpenSim from Inverse Kinematics using Xsens IMU orientation data (see README_OpenSIMIK.txt)

  1. Output IMU orientation data as quaternions in .mvnx file (default setting for Xsens Awinda sensors using MVN Studio)
  2. Run ??Run rotationMatricesForOsimIK.m
    1. This code transforms quaternions from .mvnx file into a rotation matrix
    Run C++ code
    1. This code takes the determined rotation matrices and applies them to each respective segment
    2. The code then runs an inverse kinematic simulation and outputs an OpenSim motion file
  3. The model used in this code must have the initial conditions to that of the experimental set-up
    1. This can be done by opening the OpenSim model (gait10dof18musc.osim), and setting the initial condition of the joints to that of the subject at time = 0, and saving the pose as the "Default Pose"
    Open the OpenSim motion file
    1. . This has been done in the following files for the 40, 80 and 120 BPM trials respectively: gait10dof18musc_40.osimgait10dof18musc_80.osimgait10dof18musc_120.osim
  4. Build and run futureOrientationInverseKinematics.cpp, (you'll need to add these to your directory where the C++ code is saved CMakeLists.txtfutureOrientationInverseKinematics.trc)
    1. This code takes the determined rotation matrices and applies them to each respective segment
    • The code then runs an inverse kinematic simulation and outputs OpenSim kinematics files:
      futureOrientationInverseKinematics_Kinematics_q.sto

      futureOrientationInverseKinematics_Kinematics_u.sto

      futureOrientationInverseKinematics_Kinematics_dudt.sto

      It is helpful to rename these based on the trial you are analyzing e.g. futureOrientationInverseKinematics_Kinematics_q_40.sto
  5. Load the motion, the OpenSim joint angles file (e.g. futureOrientationInverseKinematics_Kinematics_q_40.sto) to observe the reconstructed motion and plot the knee joint angle in OpenSim.

Results

40 BPM (Walking)80 BPM120 BPM (Running)

Xsens

Xsens

Xsens

OpenSim

OpenSim

OpenSim

 

...

Many studies have shown that fatigue alters running kinematics.  A review of  incidence and associated potential risk factors of lower extremity running injuries in long distance runners found that long distance training increases injury risk, with knee injuries being the most common [6].  While some studies have been able to observe these changes, motion capture limits the studies to treadmill running and most of the studies have only studied fatigue in less than 30 minutes.  IMUs can be used outside of the lab to characterize running kinematics of fatigue and the resulting injuries.  Additionally, the change in kinematics while running on different terrains can be studied which could also help prevent injury. Though this has been tried by Reenalda et al. in 2016 using Xsens IMU sensors, there were limitations with data acquisition and battery life [7]. Rapid improvements in this technology will allow for effective exploration of running kinematics and fatigue. 

...

  1. Xsens Technologies (2013). Xsens MVN: Full 6DOF Human Motion Tracking Using Miniature Inertial Sensors.

  2. Gait 2392 and 2354 Models - OpenSim Documentation

  3. Ferrari A, Cutti A G and Cappello A 2010a A new formulation of the coefficient of multiple correlation to assess the similarity of waveforms measured synchronously by different motion analysis protocols Gait Posture 31 540–2 

  4. Zhang, J. T., Novak, A. C., Brouwer, B., & Li, Q. (2013). Concurrent validation of Xsens MVN measurement of lower limb joint angular kinematics. Physiological measurement34(8), N63.

  5. Morris, M., Iansek, R., McGinley, J., Matyas, T. and Huxham, F. (2005), Three-dimensional gait biomechanics in Parkinson's disease: Evidence for a centrally mediated amplitude regulation disorder. Mov. Disord., 20: 40–50. doi:10.1002/mds.20278

  6. van Gent, R.N. et al. (2007). Incidence and determinants of lower extremity running injuries in long distance runners: A systematic review. British Journal of Sports Medicine.

  7. Reenalda, J., Maartens, E., Homan, L., & Buurke, J. J. (2016). Continuous three dimensional analysis of running mechanics during a marathon by means of inertial magnetic measurement units to objectify changes in running mechanics. Journal of Biomechanics49(14), 3362-3367.

 

Panel
borderColorgray
bgColorwhite
borderWidth5
borderStylesolid

Home: BIOE-ME 485 Spring 2017