Page 1 of 1

Trouble with Contact

Posted: Thu Sep 26, 2013 11:30 am
by ambaus
I would like to run a forward dynamics simulation of 2 bones bouncing to check I have contact implemented correctly. I have checked and double checked my geometry and syntax but contact does not occur. Any reason why? What I am I missing?

Thanks,

Anne

Re: Trouble with Contact

Posted: Tue Oct 01, 2013 11:34 am
by jimmy
Hi Anne,
by the look of it, you have prescribed kinematics in the forward simulation. With this type of analysis the kinematics will always win. Your contacts will interact if you put a constraint on the joint (slider?) and then apply a force to the tibia that moves it vertically.
You may also want to change your medial plateau for half-plane force rather than a mesh.

cheers,
-james

Re: Trouble with Contact

Posted: Tue Oct 01, 2013 12:56 pm
by ambaus
Hi James,

Thanks for the reply. However, the tibiofemoral kinematics are set to <prescribed>false<prescribed> in the model so I don't think that is the case. The tibia drops under gravity (+y) and should bounce off of the femur, which it doesn't. I'm using a mesh so later I can substitute in a more detailed tibial cartilage geometry. Regardless, the contact 'should' work.

Thanks,

Anne

Re: Trouble with Contact

Posted: Tue Oct 01, 2013 7:04 pm
by jimmy
Hi Anne,

Sorted that and saw that problem is the meshes themselves. If you attach a force reporter as an analysis in forward dynamics you will see the meshes do exert a force on one another. I increased the stiffness by acouple of zeros and confirmed that this was proportional.

Problem will be that your meshes are thin and interpenetration happens quickly. Once that occurs, the components of the mesh dont interact as you would expect.

Perhaps try modeling the medial plateu as an 'infinite plane' and see the result.

Goodluck,
-james

Re: Trouble with Contact

Posted: Tue Oct 01, 2013 7:42 pm
by ambaus
I dropped each part separately onto an infinite plane to test out the mesh. I found that the femur penetrates the plane a LOT before it bounces. I also dropped a sphere onto an ellipsoid and found the same thing, a lot of penetration. The amount of penetration seems unreasonably large so I suspect an issue with the contact code within OpenSim, so I reported a bug. It shouldn't matter if the parts are thin. There shouldn't be that much penetration, at least it was ok in much previous versions of OpenSim (but really slow in previous versions too). I could increase the stiffness to decrease the penetration, but then this would be much larger than is physiologically realistic. Maybe the transition velocity would affect this?

Re: Trouble with Contact

Posted: Wed Oct 02, 2013 7:29 am
by ambaus
For anyone who runs into this problem, I found a solution. I increased the stiffness and now the parts bounce with much less penetration. Although, the stiffness seems unrealistically high, which suggests other parameters may need adjustment.

James, thanks for all your help.

Re: Trouble with Contact

Posted: Wed Oct 02, 2013 2:10 pm
by sherm
Forwarding an email from Anne:

I'm using the Elastic Foundation contact model in OpenSim. I read your paper on SimBody from the 2011 Symposium on Human Body Dynamics. This is a great paper and very clearly explains the formulation of the elastic foundation force. However, I am a little confused how it is done in OpenSim. What is assumed for elastic material thickness, h? I don't see a way to set this variable in my .osim file. Also, is the 'stiffness' parameter the elastic modulus? Your time is very much appreciated.
Great question! I had to do some code archaeology to answer it. There should be a separate parameter for thickness h of the Elastic Foundation layer, but currently there isn't one in OpenSim. That means you'll have to supply stiffness (which should have elastic modulus units of stress/strain) instead as pre-scaled by the thickness ((stress/strain)/depth). So if the actual stiffness is 1e6 (force/area)/strain and the layer is 1mm thick then the scaled stiffness would be 1e9, meaning that 100% strain would occur at 1mm of penetration. This might explain why the contacts seemed too soft to you -- not scaling is the same as saying the thickness is h=1 meter!

This is a bug in the current contact interface. We are currently reworking contact extensively and will fix this and a number of other contact-related issues when we replace the old contact system with the new one (planned for next year). In the meanwhile scaling the stiffness should produce reasonable behavior.

Regards,
Sherm

Re: Trouble with Contact

Posted: Thu Feb 11, 2016 10:32 am
by dc547
Great post!

I think I am currently experiencing a similar problem. :|
Indeed I am using EF and the contact seems very soft. Also it looks like it responds more to low speed impacts rather than high speed ones. For example, if there is a first high speed impact, a rebound phase, and a low speed impact, the force reporter shows force generated only during the second low-speed impact.

I wanted to change the h (thickness) value but I could not find it.
Has the EF method been already refined in OpenSim 3.3?

Cheers

Dario

Re: Trouble with Contact

Posted: Tue Feb 16, 2016 12:06 pm
by ambaus
Hi Dario,

The modulus in the .osim file is actually modulus divided by thickness. I think a refined contact model is in the works but not sure if/when it will be implemented.

Thanks,

Anne