Hello,
I am new to OpenSim and SimTK and I am trying to use upper extremity dynamic model to simulate human movements and get two matrixes ( Jacobian J and muscle Jacobian Jm).
The Jacobian is a matrix of partial derivates that relates small end-effector (hand) velocity V with small joint angle changes dq. (V = J*dq). The entire model contains 15 degrees of freedom (DOF), but I am only interested in 7 of them: 3 DOFs at the shoulder, 1 DOF at the elbow, 1 DOF for forearm pronation/supination, and 2 DOFs at the wrist. Is there a way to obtain the Jacobian matrix from the shoulder to the elbow, J=6*7 (instead of the full Jacobian)? If there is no built-in function for this, how can I extract the Denavit-Hartenberg (DH) parameters corresponding to these 7 DOFs from the scaled .osim file to perform forward kinematics calculations?
Jm is similar to the muscle moment arm and is a matrix of partial derivatives that relates small muscle length changes with small joint angle changes, partial(L_muscle_i)/partial(q_j). Here, I am also only interested in the 7 degrees of freedom mentioned in the previous paragraph and certain muscles in the upper arm. Could the experts please advise me on how to calculate this?
Many thanks!
forward kinematics (jacobian) calculation and muscle jacobian (muscle moment arm) calculation
- Hongyuan Chen
- Posts: 8
- Joined: Wed Mar 20, 2024 6:37 pm
Re: forward kinematics (jacobian) calculation and muscle jacobian (muscle moment arm) calculation
Hi, as I understand, you are able to extract the Jacobian from Simbody. To truncate the full Jacibian matrix, you only need to know the column indexes of the coordinates that you are forcing. Check out the function Model.getCoordinateNamesInMultibodyTreeOrder to get the correct order of coordinates in Simbody. This function is newly implemented in 4.5 version for MATLAB api.