#+TITLE: Modeling musculoskeletal kinematic and dynamic redundancy using null space projection
#+AUTHOR: Dimitar Stanev
#+EMAIL: stanev@ece.upatras.gr
#+OPTIONS: email:t date:nil toc:nil \n:nil num:nil
#+LATEX_HEADER: \usepackage{fullpage}
#+LATEX_HEADER: \usepackage{parskip}
* Overview
This repository contains the setup scripts, documentation and source code
relevant to the publication "D. Stanev and Konstantinos Moustakas, Modeling
musculoskeletal kinematic and dynamic redundancy using null space projection,
PLoS ONE, 14(1): e0209171, Jan. 2019, DOI:
https://doi.org/10.1371/journal.pone.0209171".
* How to run the Docker image
In order to provide a portable setup on which the published simulations and
analyses can be interactively reviewed, modified and executed, the provided
environment is built as a Docker image. Docker is available a multitude of
platforms and detailed installation instructions are provided as [[https://docs.docker.com/install/][part of the
project's online documentation]]. After installation, switch to the toplevel
directory of this repository and build the docker image:
#+BEGIN_SRC bash :exports code
docker build -t ubuntu_opensim_stanev .
#+END_SRC
You can change the name of the image (here =ubuntu_opensim_stanev=) to your
liking. After building, which should take a few minutes, the image can be run
in a container with the following command:
#+BEGIN_SRC bash :exports code
docker run -it -p 4000:80 ubuntu_opensim_stanev
#+END_SRC
The =-it= option instructs =docker= to run in interactive terminal mode, while
the =-p 4000:80= option bind the port 80 of the image to the port 4000 of the
localhost. Of course, the image name should match the one used in the build
command and the port 4000 can be substituted with any available port on the
localhost. After running the docker, open [[http://localhost:4000]] in your
browser and fill in the string 'stanev' (without the quotes) in the password
prompt.
* Demos
The user can navigate into the corresponding folders and inspect the source
code. The following case studies are provided in the form of interactive
Jupyter notebooks:
- *arm\under{}model/model.ipynb* presents a case study using muscle space
projection to study the response of segmental level reflexes
- *arm\under{}model/muscle\under{}space\underprojection.ipynb* demonstrates
muscle space projection in the context of segmental level (reflex) modeling
- *arm\under{}model/feasible\under{}muscle\under{}forces.ipynb* uses task space
projection to simulate a simple hand movement, where the feasible muscle
forces that satisfy this task are calculated and analyzed
- *feasible\under{}joint\under{}reaction\under{}loads/python/feasible\under{}joint\under{}reaction\under{}loads.ipynb*
demonstrates the utilization of the feasible muscle forces to calculate the
bounds of the joint reaction loads during walking
The .html files corresponding to the .ipynb notebooks included in the folders
contain the pre-executed results of the demos.