-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate mismatches between SKEL model distribution in nimblephysics and OpenSim #222
Comments
FYI @aymanhab, there might be a GUI issue related to |
This is the output returned when trying to load the model with the big blue sphere in opensim 4.4:
|
The |
Thanks @nickbianco Can you attach the model or a link to it here so I can try the 4.5 GUI? |
@aymanhab here is the OpenSim version of Marilyn Keller's SKEL model, with markers removed since some of those were incorrect. |
For the record, the problematic big blueberry sphere is coming from scapulothoracic_l joint which happens to have -ve radii (-.08, -.19999, -.083) |
Aha! Thanks for finding that @aymanhab. |
EllipsoidJoint
in nimblephysics and OpenSim
After corresponding with @MarilynKeller, she informed me that the missing geometry files were not originally created from existing VTP files. After attempting to convert the distributed files (via this script) and loading them into OpenSim, she received an XML parsing error:
Attached below is an example of a converted file. |
Here's the vtp file converted to .obj file which should work out of the box by changing the name in the osim file to lunate_l.obj |
Nice! I used @MarilynKeller's script to convert the other PLY files into VTP files (see attached). @aymanhab could you convert those to obj files too? |
Sure, will write a script to do it and will post it here by tomorrow. |
Can OpenSim load .obj meshes ? I assumed it was only .vtp. That would make things much easier. |
Absolutely, we support vtp, obj and stl files for meshes. |
Thanks @aymanhab! These worked great: Note that the geometries for both patellas were not included in the BSM distribution Geometry folder, so I'm using the VTP files from the GUI distribution for those. |
It's clear that the @MarilynKeller if you have any details on how the model was exported from nimblephysics to OpenSim, that could be useful here. |
That is helpful to know. This suggests that our test coverage of these joints in OpenSim isn't as quite as strong as it could be. I will continue to investigate. |
I need to choose a full-body OpenSim model, and I have potential applications with SMPL meshes, so the BSM model from SKEL would be the perfect fit. I'm not sure how to help but if I can, I will! What would be the idea? Editing the joint definitions in Nimble Physics, or in OpenSim? Either way, the model is not going to work in one of these applications anymore, right? |
@davidpagnon the first step would be to identify the differences in the implementation of the EllipsoidJoint in nimblephysics and OpenSim. The nimblephysics implementation is here, and the Simbody implementation (which OpenSim uses) is here. The implementation of OpenSim::EllipsoidJoint uses Simbody's Ellipsoid mobilized body class. EDIT: I corrected the link for Simbody's implementation of Ellipsoid. |
Thanks! I won't be able to work on it within the next two weeks, but if it has not been solved by then I'll have a look! |
Sounds good @davidpagnon! Thanks for being willing to take a look. |
Hi all, unfortunately, I've been busier than I expected, and I can't give a date when I'll be able to dive into it... If anyone is on it, I'm interested in any case! |
Hi @davidpagnon, thanks for the update and no worries. Actually, @keenon and I recently realized that the ellipsoid joint between Nimble and OpenSim are implemented very differently, so there's not much to investigate here. We essentially need to rewrite the Nimble ellipsoid joint to match OpenSim, which is some nontrivial geometry work. |
Thanks, that's what I figured, and I got overwhelmed 😅 |
We currently don't have a timeline for this fix. But we will reprioritize as more people find it useful. @keenon, I'm wondering if the easiest solution is just to implement your version of the ellipsoid joint in OpenSim. OpenSim's EllipsoidJoint relies on Simbody's notion of a mobilizer, which I'm not sure dart/Nimble actually support. |
Issue reported here: https://simtk.org/plugins/phpBB/viewtopicPhpbb.php?f=91&t=17422&p=48432
The text was updated successfully, but these errors were encountered: