An open API service indexing awesome lists of open source software.

https://github.com/mattwang44/human-motion-analysis-matlab

Human motion capture system written in MATLAB
https://github.com/mattwang44/human-motion-analysis-matlab

matlab motion-analysis

Last synced: about 1 year ago
JSON representation

Human motion capture system written in MATLAB

Awesome Lists containing this project

README

          

# Human Motion Analysis Programming
*Supervised by Prof. [Tung-Wu Lu](http://oemal.bme.ntu.edu.tw/professor/professorE.htm), Dept. of BioMedical Engineering, NTU*

MATLAB programs, which use the data derived from a motion capture system and force plates, for human motion analysis, including motion tracking, evaluation of body balance, and derivation of joint forces and torques of the lower body, etc.

## Requirements
1. MATLAB 2015 (or newer versions)
2. [MTIMESX function](https://www.mathworks.com/matlabcentral/fileexchange/25977-mtimesx-fast-matrix-multiply-with-multi-dimensional-support)(Fast Matrix Multiply with Multi-Dimensional)

## Functions & Execution Results
### Week1: Transformation between Global & Local Coordinate
The transformation between global & local coordinates of marker position on lower body segments.

### Week2: COP Tracking
Derive the COP from data of two force plates and display the positions relative to the force plates.

### Week3: Euler Angle & Fixed Angle
1. Represent the rotations of body segemnts with **Euler angle** and **fixed angle**.
2. Display the difference of Euler angle before and after **static calibration** of the individual.
![Static calibration](/results/hw3.png)

### Week4: Curve Fitting
1. Smoothen the data curve and display the **angular velocity** of the lower body.
2. Consider the right foot only, compare the results of **analytic solution of angular acceleration** & **1st derivation of angular velocity**.
3. Consider the right thigh only, compare the angular velocity derive from 12 sequences of Euler angle.
The one with **Gimbal lock** during motion can be easily observed and avoided.  
 

### Week5: Quaternions (Euler Parameters)
1. Write the function "unwrapEP.m" to eliminate the discontinuity of Quaternions data.  
2. Compare angular velocity & angular acceleration derived from Euler angle and Quaternions(EP).
 

### Week6: Screw Axis (Helical Axis)
1. Compare the rotation axis and angle derived from the Screw axis and Quaternoins.
2. Determine the **joint center & rotation axis with least-square error** from several rotation axes derived during the motion.
 

### Week7: COM Tracking
1. Derive & compare the COM position of the whole body using Dempster's anthropometrical data with simplifying the body model as 7, 11, 12, & 13 segments.
2. Display the COM positions. (Yellow: markers' position, green: COM of body segments, purple: COM of the whole body).

### Week8: Evaluation of Body Balance
Derive the COP data while the recipient is standing still. It determined the eclipse covering 95% of these COPs with **Principal Component Analysis (PCA)**. The area of the eclipse and the length of its axes can be an indicator for evaluating one's body balancing ability.  

 

### Week9: Angular Momentum
Derive the angular momentum and 1st derivation of angular momentum during the motion.

### Week10: Joint Moment & Joint Force
Derive the joint moment & joint force of angular momentum during the motion. The results are normalized by being divided by the weight of recipient.