forward kinematics (jacobian) calculation and muscle jacobian (muscle moment arm) calculation

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Hongyuan Chen
Posts: 8
Joined: Wed Mar 20, 2024 6:37 pm

forward kinematics (jacobian) calculation and muscle jacobian (muscle moment arm) calculation

Post by Hongyuan Chen » Mon May 27, 2024 10:55 pm

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!

Tags:

User avatar
Junnan Li
Posts: 7
Joined: Thu Apr 22, 2021 3:38 am

Re: forward kinematics (jacobian) calculation and muscle jacobian (muscle moment arm) calculation

Post by Junnan Li » Thu May 30, 2024 11:58 am

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.

POST REPLY