- Tuesdays, 17-19h; Thursdays, 17-19h, lab A2 L003, campus São Bernardo do Campo
- Control of human movement, modeling and simulation
- Course Information
- OpenSim software, Mendeley, Github, Python, Anaconda
Tasks (for Lecture 3):
- Install OpenSim and do the first three tutorials (Help menu).
Readings (for Lecture 5):
- TSIANOS, G. A .; LOEB, G. E. Muscle and limb mechanics. Comprehensive Physiology, v. 7, n. 2, p. 429-462, 2017.
- ZAJAC, F. E. Muscle coordination of movement: a perspective. J Biomech, v. 26 Suppl 1, n. SUPPL. 1, p. 109–124, 1993.
Tasks (for Lecture 4):
- Write a Jupyter notebook to compute and plot the acceleration of the particle with displacement data contained in the file pezzack.txt. Additionally, compare the computed acceleration with the true acceleration (contained in the same data).
Readings:
- Shen, H. (2014). Interactive notebooks: Sharing the code. Nature, 5–6. Retrieved from http://europepmc.org/abstract/med/25373681
- Perkel, J. M. (2015). Programming: Pick up Python. Nature, 518(7537), 125–126. https://doi.org/10.1038/518125a
- OpenSim tutorials
- Python programming
Tasks (for Lecture 6):
- Plot the trajectory of a particle during 10 seconds with the gravity force acting on it (gravity acceleration g = -9.81 m/s^2). Consider that the initial velocity of the particle is v0 = 30 m/s and the initial angle with the horizontal plane is 30 degrees.
- Discussion about TSIANOS and LOEB (2017) and Zajac (1993)
- Numerical methods to solve ordinary differential equations. https://github.com/BMClab/bmc/blob/master/notebooks/newtonLawForParticles.ipynb,https://github.com/BMClab/bmc/blob/master/notebooks/OrdinaryDifferentialEquation.ipynb
Task for this class:
- Write a Jupyter notebook to find the trajectory of a ball considering the air drag proportional to the square root of the ball velocity. Consider that the initial velocity of the particle is v0 = 30 m/s and the initial angle with the horizontal plane is 30 degrees, the gravity acceleration is g = 9.81 m/s^2, the mass of the ball is m = 0.43 kg and the air drag coefficient is
$b= 0.006 kg.m^{1/2}/s^{3/2}$ .
Readings (for Lecture 7):
- NIGG, B. M.; HERZOG, W. Modelling. In: Biomechanics of the Musculo-skeletal System. p. 501 - 534.
- Discussion about NIGG, B. M.; HERZOG, W. Modelling. In: Biomechanics of the Musculo-skeletal System. p. 501 - 534.
- Models of Kelvin, Voigt and Maxwell.
Additional reading:
- YAMAGUCHI, Y. T; Dynamic modeling of musculoskeletal motion: A Vectorized Approach for Biomechanical Analysis in Three Dimensions (2001), Sections 2.2.1 and 2.2.2.
Readings (for Lecture 9):
- NIGG, B. M.; HERZOG, W. Modelling. In: Biomechanics of the Musculo-skeletal System. p. 631 - 634.
Tasks (for lecture 9)
- Implement the Kelvin model. Set the parameters of the model so as to the response of the model is similar to the shown in the Figure 3(a) from VAN LOOCKE, M.; LYONS, C. G.; SIMMS, C. K. Viscoelastic properties of passive skeletal muscle in compression: Stress-relaxation behaviour and constitutive modelling. Journal of Biomechanics, v. 41, n. 7, p. 1555–1566, 2008. You can find this article at the Mendeley group.
In this study the initial length of the fibre is 10 mm. Then the length decreases to 7 mm with different velocities.
- Implement muscle model of Nigg and Herzog.
Readings (for Lecture 11)
- BEAR, M. F.; W, C. B.; PARADISO, M. A. Neuroscience: Exploring the brain. 4. ed. Philadelphia, PA, USA: Lippincott Williams & Wilkins, 2015. (Chapter 13)
Nigg and Herzog model implemented in the class
Task (for Lecture 11)
-
Change the derivative of the contractile element length function. The new function must compute the derivative according to the article from Thelen (2003) (Eq. (6) and (7)):
- Thelen D; Adjustment of muscle mechanics model parameters to simulate dynamic contractions in older adults (2003)
- Discussion on * BEAR, M. F.; W, C. B.; PARADISO, M. A. Neuroscience: Exploring the brain. 4. ed. Philadelphia, PA, USA: Lippincott Williams & Wilkins, 2015. (Chapter 13)
Task (for Lecture 12):
- Implement the activation dynamics as in Thelen (2003)
- Activation Dynamics and Pennation angle
Task (for Lecture 13):
- Implement the Knee simulation of the Nigg and Herzog's book (chapter 4.8.6, knee.m) in Python using the muscle model implemented in class. You can use your own model or the contained on this link.
- Knee joint model (adapted from Nigg and Herzog's book)
- Compare the force and vellocity of the active contractile element for the different moment arms
- Ankle joint model
- See Rajagopal et al. (2015) for a list of muscle parameters used in a recent OpenSim model
Task (for Lecture 14):
- Implement a simulation of the ankle joint model using the parameters from Thelen (2003) and Elias (2014)
- Explore the ankle joint model
- Tutorial on classes in Python
- Convert muscle model to class
Task (for Lecture 15):
- Write a Python Class to implement the muscle model developed during the course. You can use this notebook and continue the implememtation of the Class.
- The muscle function into a Python class
- Control of an inverted pendulum model with muscle actuators (using a PID controller) based on ankle angle
- Control of an inverted pendulum model with muscle actuators (using a PID controller) based on muscle length
Task (for Lecture 19):
- Solve problemas 1 and 2 of the notebook above.
Task (for Lecture 20):
- Solve problemas 3 and 4 of the notebook above.
Task (for Lecture 23):
- Implement the numerical simulationn of the double pendulum with joint actuators (solve numerically the equation of motion using forward dynamics).
- Motion capture data of running (3D kinematics and kinetics) in the BMClab. Get the data here.
Task (for Lecture 24):
- Run the inverse dynamics and static optimization analyses for the experimental data collected.
- Modeling and simulation of the data collected with OpenSim
- Modeling and simulation of the data collected with OpenSim