Page 1 of 1

Contact Forces not displaying

Posted: Thu Aug 14, 2014 12:21 pm
by beyerk
Hello,

I have recently created a model of the wrist that is grasping a ball and have run the analyze tool to calculate the contact forces between the ball and the fingertips. However the forces that I get back jump up and down between about -32 and 10 N after the fingers make contact, I am unsure of how to fix this. The attached picture is of the graph showing this.

Re: Contact Forces not displaying

Posted: Thu Aug 14, 2014 2:25 pm
by jimmy
Hi Kamin,

The issue will most likely lay in the contact properties you have chosen. Could you let us give us more details on how you modeled contact?

-james

Re: Contact Forces not displaying

Posted: Thu Aug 14, 2014 2:41 pm
by beyerk
Hello,
I have modeled the Ball as a contactsphere and the fingertips and contactmeshes.
Here is my contact geometry code portion:

Code: Select all

<ContactGeometrySet>
			<objects>
				<ContactMesh name="cont2distph">
					<!--Body name to connect the contact geometry to-->
					<body_name>2distph</body_name>
					<!--Location of geometry center in the body frame-->
					<location>0.001 -0.0125 0.0005</location>
					<!--Orientation of geometry in the body frame-->
					<orientation> -1.570796326795 0 0</orientation>
					<!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded-->
					<display_preference>4</display_preference>
					<!--Display Color-->
					<color>0 1 1</color>
					<filename>fingerpad.obj</filename>
				</ContactMesh>
				<ContactMesh name="cont3distph">
					<!--Body name to connect the contact geometry to-->
					<body_name>3distph</body_name>
					<!--Location of geometry center in the body frame-->
					<location> 0.00075 -0.015 0.0005</location>
					<!--Orientation of geometry in the body frame-->
					<orientation>-1.5707 -.025 0</orientation>
					<!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded-->
					<display_preference>4</display_preference>
					<!--Display Color-->
					<color>0 1 1</color>
					<filename>fingerpad.obj</filename>
				</ContactMesh>
				<ContactSphere name="contball">
					<!--Body name to connect the contact geometry to-->
					<body_name>ball</body_name>
					<!--Location of geometry center in the body frame-->
					<location>0 0 0</location>
					<!--Orientation of geometry in the body frame-->
					<orientation>0 0 0</orientation>
					<!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded-->
					<display_preference>4</display_preference>
					<radius>0.036</radius>
				</ContactSphere>
			</objects>
		</ContactGeometrySet>
Here is the ElasticFoundationForce that I used to have the contact between them:

Code: Select all

<ElasticFoundationForce name="ball grabI">
					<!--Flag indicating whether the force is disabled or not. Disabled means that the force is not active in subsequent dynamics realizations.-->
					<isDisabled>false</isDisabled>
					<!--Material properties.-->
					<ElasticFoundationForce::ContactParametersSet name="contact_parameters">
						<objects>
							<ElasticFoundationForce::ContactParameters>
								<!--Names of geometry objects affected by these parameters.-->
								<geometry>cont2distph contball</geometry>
								<stiffness>500000000</stiffness>
								<dissipation>10000</dissipation>
								<static_friction>100</static_friction>
								<dynamic_friction>100</dynamic_friction>
								<viscous_friction>1000</viscous_friction>
							</ElasticFoundationForce::ContactParameters>
						</objects>
						<groups />
					</ElasticFoundationForce::ContactParametersSet>
					<!--Slip velocity (creep) at which peak static friction occurs.-->
					<transition_velocity>10</transition_velocity>
				</ElasticFoundationForce>
				<ElasticFoundationForce name="ball grabM">
					<!--Flag indicating whether the force is disabled or not. Disabled means that the force is not active in subsequent dynamics realizations.-->
					<isDisabled>false</isDisabled>
					<!--Material properties.-->
					<ElasticFoundationForce::ContactParametersSet name="contact_parameters">
						<objects>
							<ElasticFoundationForce::ContactParameters>
								<!--Names of geometry objects affected by these parameters.-->
								<geometry>cont3distph contball</geometry>
								<stiffness>500000000</stiffness>
								<dissipation>10000</dissipation>
								<static_friction>100</static_friction>
								<dynamic_friction>100</dynamic_friction>
								<viscous_friction>1000</viscous_friction>
							</ElasticFoundationForce::ContactParameters>
						</objects>
						<groups />
					</ElasticFoundationForce::ContactParametersSet>
					<!--Slip velocity (creep) at which peak static friction occurs.-->
					<transition_velocity>10</transition_velocity>
				</ElasticFoundationForce>

Re: Contact Forces not displaying

Posted: Thu Aug 14, 2014 3:41 pm
by jimmy
Hi Kamin,

Seems like some of your parameters are abit high. The stiffness should be in the ball park of 1e6 or 1e7, dissipation around 1 ish and friction coefficients all < 1. Perhaps try parameters in those ranges.

Gluck,
-james

Re: Contact Forces not displaying

Posted: Mon Mar 23, 2015 4:29 pm
by macintar
Hi James,

Would you be able to explain a bit about how friction and dissipation are derived? I was not able to find a clear descriptor. Are these values normalized?

I am finding that I need a very high dissipation value to get the desired penetration.

Any comments would be a big help.

Thanks.

Alex

Re: Contact Forces not displaying

Posted: Mon Mar 23, 2015 8:37 pm
by sherm
Hi, Alex. This paper describes the contact formulation (see section 5).

Sherm

Re: Contact Forces not displaying

Posted: Tue Mar 24, 2015 8:47 pm
by macintar
Hi,

Thanks again for the quick response.

I have read over this paper, but perhaps what I am missing or misunderstanding form it is: if I am trying to set EFM properties, do I need to adjust the Stribeck friction curve (Figure 5) with the appropriate static, dynamic and viscous friction values?

Similarly, to determine the composite stiffness, we would need Young’s modulus and Poisson’s ratio for each surface and then calculate stiffness through Appendix A?

I just want to make sure I am understanding this correctly.

Thanks,

Alex

Re: Contact Forces not displaying

Posted: Tue Mar 24, 2015 9:52 pm
by sherm
Hi, Alex. Yes, technically that's correct. Simbody's SimTK::ContactMaterial class has utility methods available for calculating stiffness from material properties. For example, see calcPlaneStrainStiffness(). However, in practice it is more common just to experiment with the stiffness and dissipation until you get reasonable behavior.

If you have frictional contact you do need to specify the friction coefficients, but those are just supplied directly. The curve is calculated internally.

I highly recommend tuning your contact parameters on a very small model system before you embed them into a larger model.

Regards,
Sherm

Re: Contact Forces not displaying

Posted: Mon Jan 30, 2017 8:14 am
by kishan
I have used Huntcrosseley force method for the same problem.Is that right approach.What is the difference between Huntcrossely and Elastic foundation method

Re: Contact Forces not displaying

Posted: Tue Jan 31, 2017 12:54 am
by mitkof6