Contact Forces not displaying

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Kamin Beyer
Posts: 4
Joined: Fri Jun 27, 2014 12:51 pm

Contact Forces not displaying

Post by Kamin Beyer » Thu Aug 14, 2014 12:21 pm

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.
Attachments
Ball contact forces.png

User avatar
jimmy d
Posts: 1375
Joined: Thu Oct 04, 2007 11:51 pm

Re: Contact Forces not displaying

Post by jimmy d » Thu Aug 14, 2014 2:25 pm

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

User avatar
Kamin Beyer
Posts: 4
Joined: Fri Jun 27, 2014 12:51 pm

Re: Contact Forces not displaying

Post by Kamin Beyer » Thu Aug 14, 2014 2:41 pm

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>

User avatar
jimmy d
Posts: 1375
Joined: Thu Oct 04, 2007 11:51 pm

Re: Contact Forces not displaying

Post by jimmy d » Thu Aug 14, 2014 3:41 pm

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

User avatar
Alex MacIntosh
Posts: 31
Joined: Tue Jan 22, 2013 5:15 pm

Re: Contact Forces not displaying

Post by Alex MacIntosh » Mon Mar 23, 2015 4:29 pm

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

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

Re: Contact Forces not displaying

Post by Michael Sherman » Mon Mar 23, 2015 8:37 pm

Hi, Alex. This paper describes the contact formulation (see section 5).

Sherm

User avatar
Alex MacIntosh
Posts: 31
Joined: Tue Jan 22, 2013 5:15 pm

Re: Contact Forces not displaying

Post by Alex MacIntosh » Tue Mar 24, 2015 8:47 pm

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

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

Re: Contact Forces not displaying

Post by Michael Sherman » Tue Mar 24, 2015 9:52 pm

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

User avatar
Krishnakumar Sankar
Posts: 115
Joined: Tue Mar 01, 2016 10:06 am

Re: Contact Forces not displaying

Post by Krishnakumar Sankar » Mon Jan 30, 2017 8:14 am

I have used Huntcrosseley force method for the same problem.Is that right approach.What is the difference between Huntcrossely and Elastic foundation method


POST REPLY