MEGN 536 – Computational Biomechanics Prof. Anthony J. Petrella
Inverse Kinematics in Musculoskeletal Analysis Need to know joint angles that define model configuration at each increment in the motion Markers used to track motion and match model to individual We can then do dynamics calcs to find joint reactions / torques Muscle forces and joint contact forces can also be estimated Ali, et al., CMBBE, 2013
Inverse Kinematics in Musculoskeletal Analysis Problems… Model markers don’t perfectly match subject Multiple sources of exp. error Segments may have multiple markers over-determined Cannot solve for model config exactly (closed form) Have to use alternate method, such as optimization Ali, et al., CMBBE, 2013
Optimization in Inverse Kinematics
Optimization Problem Statement Find x that minimizes f(x), subject to A*x ≤ b and A eq *x = b eq x =design vector f(x) objective function A*x ≤ b inequality constraints A eq *x = b eq equality constraints x1:xnx1:xn e.g. -F quad ≤ 0 e.g. F x = 0
Optimization Problem Statement Note that the goal is to minimize the objective function in an absolute sense – not to make it small, but to make it as negative as possible If you are solving a problem in which you wish to maximize a value (e.g., find the maximum volume of a box using a fixed amount of material for the sides of the box), then you simply minimize the negative of the objective function… f(x) = -f vol (x) = -(L * W * H)
Optimization Example Given: the planex 1 + 2x 2 + 4x 3 = 7 Problem: find point on the plane closest to the origin design vector x = obj. function f(x)= dist = sqrt(x x 2 2 +x 3 2 ) ineq. constraints A*x ≤ b - none - eq. constraints x 1 + 2x 2 + 4x 3 = 7 (A eq = [1 2 4]; b eq = [7]) x1x2x3x1x2x3
Optimization Example - Solution
Optimization in MATLAB Type ‘ doc fmincon ’ at the MATLAB command line All of the inputs and outputs of fmincon are explained in the MATLAB documentation To use fmincon you will need to write a MATLAB function and use function handles