Page 1 of 1

Rolling on Surface Constraint Usage

Posted: Mon Sep 04, 2023 6:28 pm
by aafox
Hi OpenSim Team,

I have a query about the usage ability of the RollingOnSurfaceConstraint class. For the rolling surface body parameter, I've found it easy enough to link this up to a body in the model (e.g. calcaneus) and I believe this places the constraint at the origin of the body. As far as I can tell, there isn't a property in the constraint that allows you to translate the location of this point in the body in any way - so I suppose my first question is if I am missing how to do this? If my assumption here is correct, then is there a way to link the constraint to the model in some other way so that it can be at a different location point to the origin of a body? I have briefly tried creating different PhysicalFrames in a model and associating the constraint to these frames, but didn't have any success with this. Past studies have used multiple rolling on surface constraints at different locations of the foot (e.g. https://journals.biologists.com/jeb/art ... an-running), and this sort of approach is what I'm trying to replicate by adjusting the point in the model where the constraint is.

Thanks,

Aaron

Re: Rolling on Surface Constraint Usage

Posted: Mon Sep 04, 2023 8:52 pm
by sherm
The constraint is applied at the point of contact.
- Sherm

Re: Rolling on Surface Constraint Usage

Posted: Mon Sep 04, 2023 10:49 pm
by aafox
Thanks Michael. What defines the point of contact when using the constraint? Does it need external loads point data to work appropriately? My main reason for querying this is if it would be an appropriate ground-contact model in predictive simulations where experimental external loads aren't available?

Thanks,

Aaron

Re: Rolling on Surface Constraint Usage

Posted: Tue Sep 05, 2023 8:07 am
by sherm
According to the OpenSim documentation here it uses a Simbody PointInPlane constraint for the normal contact. That is described here.

I'm not sure why it wasn't implemented by a Simbody SphereOnPlaneContact constraint, but I believe it produces a similar result. Ajay Seth might have further insight.

Sherm