If Simbody fits my potential project

Simbody is useful for internal coordinate and coarse grained molecule modeling, large scale mechanical models like skeletons, and anything else that can be modeled as bodies interconnected by joints, acted upon by forces, and restricted by constraints.
POST REPLY
User avatar
Yury G.
Posts: 12
Joined: Fri May 31, 2019 7:33 am

If Simbody fits my potential project

Post by Yury G. » Fri May 31, 2019 8:59 am

Hi there!

I'm trying to understand if Simbody fits my potential project, so hope somebody who knows the library well can help me :) .

I have 10 IMU sensors and want to make a motion capture system of the human body better, than I have now. The idea is to build a human-like model, which can improve "bare" IMU orientation data. I plan to:

1) describe skeleton tree-like model in terms of rigid bodies (bones) and Mobilized bodies (joints) - ~20 bones or so,

2) describe constraints for the angles of particular axes of the joints. Like lower arm/ulna bone can "bend" only ~150 degrees, and not 360. https://www.kineman.com/new/webapp/index.php - here's a good visualization of constraints of the body bones,

3) then I plan to stream data from 10 IMU sensors (which sometimes can be not very accurate because of gyro drift or magnetic fields), apply inverse-kinematics, and I hope I can get a decent ~20-bones model,

4) and it would be nice to apply IK continuously in real-time, as IMU data comes

I've spent some time reading documentation and here's what I found on every task:

1) skeleton tree-like model looks totally doable

2) I couldn't find the constraint on angle range, but I think I can make custom constraints with equations, describing desired behavior of allowed angle range. Also hope I can then add some additional things, like slowing down the movement of rigid body, as it comes closer to the max\min allowed angles.

3) For now I can' t understand if it will be doable - to have ~20 rigid bodies with mobilizers, 10 IMU's, and be able to fit them all smoothly with IK or some kind of optimization task or something else.

4) As I understood from pdf user guide and some examples, the basic flow is to set up the system\subsystems, then call `realizeTopology()`, and then I can continuously call `ik.track(); ik.updateFromInternalState(state);` . And since the whole engine is pretty fast, it could be done in real time.

I'll continue investigating the documentation and examples, but if somebody can evaluate potential pitfalls or problems with the ideas and comment on particular points it would be super helpful!

User avatar
Michael Sherman
Posts: 802
Joined: Fri Apr 01, 2005 6:05 pm

Re: If Simbody fits my potential project

Post by Michael Sherman » Sun Jun 02, 2019 1:02 pm

Hi, Yury.

Yes, I think Simbody would work well for your project. However, if you haven't already you may want to consider using the OpenSim application, which has direct support for biomechanics (OpenSim uses Simbody as its kinematics and physics engine). You could ask the same question on the OpenSim forum to see if the OpenSim community has already done similar applications.

Joint limits are supported directly by Simbody's Assembler class, which is used for IK. So you don't need to write any constraints for that. Please see the Assembler documentation for that.

Regards,
Sherm

User avatar
Yury G.
Posts: 12
Joined: Fri May 31, 2019 7:33 am

Re: If Simbody fits my potential project

Post by Yury G. » Mon Jun 03, 2019 2:13 am

Thanks for your reply, Michael! I'll continue investigating both OpenSim and Simbody!

POST REPLY