Add dof to fingers

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Xiang Yang
Posts: 4
Joined: Mon Oct 10, 2016 8:58 pm

Add dof to fingers

Post by Xiang Yang » Wed Apr 05, 2017 11:05 pm

Hi,

I'm trying to add more dofs to the fingers in the forearm.osim model. I was trying to modify the xml code based on the customized joint settings for the index finger. Right now, there are two dofs are added to the middle finger. But my problem is the lateral and flex movement of middle finger are improper, because the middle finger is moving apart with the palm when I change the angles of the lateral and flex. The middle finger is not only rotating but also translating.

I read a former topic in the forum which was talking about the same situation with mine, I tried to change the location_in_parent but I don't think it helps my problem, because when I change the location_in_parent for index finger, the only difference with unchanged index finger is the rotating center. After changing location_in_parent, the index finger is still rotating without translating. But the middle finger rotate with translate.

I also tried to change the rotation axis, but it still not move properly.

Would you please let me know which part should I change to make the middle finger and other fingers move like the build-in index finger? Thank you very much!
Attachments
ForearmAddDOF.osim
(303.82 KiB) Downloaded 80 times

User avatar
jimmy d
Posts: 1375
Joined: Thu Oct 04, 2007 11:51 pm

Re: Add dof to fingers

Post by jimmy d » Thu Apr 06, 2017 8:42 am

Hi, Xiang-

The issue seems to stem from how you are positioning the joint axes relative to the body axis. Each piece of geometry has its own axis, this is how the visualizer knows where to draw each piece of geometry.

To compare, the phalanx_1 body is pretty close to the axis origin (see phalanx_1_axis.png). However, the middle finger geometry is far away from its axis (see middlefinger_axis.png). The authors probably did this because they were not interested in the joints for the other fingers.

First, you will need to change the location of the joint (location_in_parent) to place the rotational axis in the desired position. You should go from this (MCP3_axis_original.png) to this (see MCP3_axis_new.png)

You will see that the geometry is translated. That is not the body, it is the display geometry. To fix it you can translate the geometry (relative to its own axis) back to origin (see middlefinger_axis_displayer.png)

Hope that helps,
-James
MCP3_axis_new.png
MCP3_axis_new.png (189.67 KiB) Viewed 338 times
middlefinger_axis_displayer.png
middlefinger_axis_displayer.png (210.83 KiB) Viewed 338 times
MCP3_axis_original.png
MCP3_axis_original.png (219.01 KiB) Viewed 338 times
phalanx_1_axis.png
phalanx_1_axis.png (222.38 KiB) Viewed 338 times
middlefinger_axis.png
middlefinger_axis.png (212.43 KiB) Viewed 338 times

User avatar
Xiang Yang
Posts: 4
Joined: Mon Oct 10, 2016 8:58 pm

Re: Add dof to fingers

Post by Xiang Yang » Thu Apr 06, 2017 12:45 pm

Hi James,

Thanks a lot, that's really helpful. I understand the logic now. But there's one more question. I'm wondering where do you get the data of the position of the fingers. Is there a file that indicates the locations? These numbers are having many digits and I don't know how should I know the data such precisely. Thank you.

Best,
Xiang

User avatar
jimmy d
Posts: 1375
Joined: Thu Oct 04, 2007 11:51 pm

Re: Add dof to fingers

Post by jimmy d » Thu Apr 06, 2017 1:55 pm

I'm not sure. You could look at the paper that was made from the model.

I found a suitable joint location by putting a marker in the approximate position and getting its x,y,z position (in the local frame) and then applying that position to location_in_parent. That will give you a reasonable estimate, but you may need further data to calibrate.

User avatar
Xiang Yang
Posts: 4
Joined: Mon Oct 10, 2016 8:58 pm

Re: Add dof to fingers

Post by Xiang Yang » Thu Apr 06, 2017 6:26 pm

Thank you so much!

POST REPLY