|
a |
|
b/README.md |
|
|
1 |
Modeling musculoskeletal kinematic and dynamic redundancy using null space projection |
|
|
2 |
=== |
|
|
3 |
|
|
|
4 |
[](https://doi.org/10.5281/zenodo.2000421) |
|
|
5 |
|
|
|
6 |
`git lfs install` |
|
|
7 |
|
|
|
8 |
`git lfs clone https://github.com/mitkof6/musculoskeletal-redundancy.git` |
|
|
9 |
|
|
|
10 |
|
|
|
11 |
Description |
|
|
12 |
--- |
|
|
13 |
|
|
|
14 |
This project contains the source code related to the following publication: |
|
|
15 |
|
|
|
16 |
D. Stanev and Konstantinos Moustakas, Modeling musculoskeletal kinematic and |
|
|
17 |
dynamic redundancy using null space projection, PLoS ONE, 14(1): e0209171, |
|
|
18 |
Jan. 2019, DOI: https://doi.org/10.1371/journal.pone.0209171 |
|
|
19 |
|
|
|
20 |
The coordination of the human musculoskeletal system is deeply influenced by its |
|
|
21 |
redundant nature, in both kinematic and dynamic terms. Noticing a lack of a |
|
|
22 |
relevant, thorough treatment in the literature, we formally address the issue in |
|
|
23 |
order to understand and quantify factors affecting the motor coordination. We |
|
|
24 |
employed well-established techniques from linear algebra and projection |
|
|
25 |
operators to extend the underlying kinematic and dynamic relations by modeling |
|
|
26 |
the redundancy effects in null space. We found that there are three operational |
|
|
27 |
spaces, namely task, joint and muscle space, which are directly associated with |
|
|
28 |
the physiological factors of the system. A method for consistently quantifying |
|
|
29 |
the redundancy on multiple levels in the entire space of feasible solutions is |
|
|
30 |
also presented. We evaluate the proposed muscle space projection on segmental |
|
|
31 |
level reflexes and the computation of the feasible muscle space forces for |
|
|
32 |
arbitrary movement. The former proves to be a convenient representation for |
|
|
33 |
interfacing with segmental level models or implementing controllers for tendon |
|
|
34 |
driven robots, while the latter enables the identification of force variability |
|
|
35 |
and correlations between muscle groups, attributed to the system's |
|
|
36 |
redundancy. Furthermore, the usefulness of the proposed framework is |
|
|
37 |
demonstrated in the context of estimating the bounds of the joint reaction |
|
|
38 |
loads, where we show that misinterpretation of the results is possible if the |
|
|
39 |
null space forces are ignored. This work presents a theoretical analysis of the |
|
|
40 |
redundancy problem, facilitating application in a broad range of fields related |
|
|
41 |
to motor coordination, as it provides the groundwork for null space |
|
|
42 |
characterization. The proposed framework rigorously accounts for the effects of |
|
|
43 |
kinematic and dynamic redundancy, incorporating it directly into the underlying |
|
|
44 |
equations using the notion of null space projection, leading to a complete |
|
|
45 |
description of the system. |
|
|
46 |
|
|
|
47 |
Repository Overview |
|
|
48 |
--- |
|
|
49 |
|
|
|
50 |
- arm_model: simulation of simple arm model |
|
|
51 |
- feasible_joint_reaction_loads: calculation of the feasible reaction loads, by |
|
|
52 |
accounting for musculoskeletal redundancy effects |
|
|
53 |
- docker: a self contained docker setup file, which installs all dependencies |
|
|
54 |
related to the developed algorithms |
|
|
55 |
|
|
|
56 |
|
|
|
57 |
Demos |
|
|
58 |
--- |
|
|
59 |
|
|
|
60 |
The user can navigate into the corresponding folders and inspect the source |
|
|
61 |
code. The following case studies are provided in the form of interactive Jupyter |
|
|
62 |
notebooks: |
|
|
63 |
|
|
|
64 |
- [Arm Model](arm_model/model.ipynb) presents a case study using muscle space |
|
|
65 |
projection to study the response of segmental level reflexes |
|
|
66 |
|
|
|
67 |
- [Muscle Space Projection](arm_model/muscle_space_projection.ipynb) |
|
|
68 |
demonstrates muscle space projection in the context of segmental level |
|
|
69 |
(reflex) modeling |
|
|
70 |
|
|
|
71 |
- [Feasible Muscle Forces](arm_model/feasible_muscle_forces.ipynb) uses |
|
|
72 |
task space projection to simulate a simple hand movement, where the feasible |
|
|
73 |
muscle forces that satisfy this task are calculated and analyzed |
|
|
74 |
|
|
|
75 |
- [Feasible Joint Reaction Loads](feasible_joint_reaction_loads/python/feasible_joint_reaction_loads.ipynb) |
|
|
76 |
demonstrates the utilization of the feasible muscle forces to calculate the |
|
|
77 |
bounds of the joint reaction loads during walking |
|
|
78 |
|
|
|
79 |
The .html files corresponding to the .ipynb notebooks included in the folders |
|
|
80 |
contain the pre-executed results of the demos. |
|
|
81 |
|
|
|
82 |
|
|
|
83 |
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img |
|
|
84 |
alt="Creative Commons License" style="border-width:0" |
|
|
85 |
src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is |
|
|
86 |
licensed under a <a rel="license" |
|
|
87 |
href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution |
|
|
88 |
4.0 International License</a>. |