Revolute joint friction?

89 views
Skip to first unread message

Michele Bucceri

unread,
Jan 4, 2025, 9:52:14 AM1/4/25
to ProjectChrono
Hi all, I'm loking into the documentation of this amazing project to understand if it is suitable to be used in my case, so I'm definitly a newbie / beginner and I apologize if the question is trivial.
I'm modelling a serial robot and I'm loking a way to simulate static joint friction (for a revolute or prismatic joint) but I'm not able to find any model for that, even a simple static friction model (Coulomb). 

I've seen that the friction physycs could be added through a ChContactMaterial and a collision box, which seems a bit overkilling for the specific case. I've also seen in the forum a proposal to add a ChLinkLock to the joint, but this do not manage static friction (only constant torque and viscous damping).

Am I missing something? 

Thanks a lot for any hints / help!
Michele Bucceri


Confidentiality Notice:  This email and any documents attached to it, may include information that is confidential and intended only for the use of the recipient(s) named above.  If you believe you have received this email in error, please notify the sender and delete the message and all attached documents.  Disclosure, copying, distribution or use of confidential information included in this email or its attachments, by anyone other than an intended recipient, is strictly prohibited.

Alessandro Tasora

unread,
Jan 7, 2025, 9:40:34 AM1/7/25
to ProjectChrono
Hi Michele,
you are right - at the moment there is no model for static friction in joints. This is a feature that I postponed for a while, and I never had time to implement because it was too low in my priority list.

It is not easy to do because (at least in a context of DVI nonsmooth dynamics) it requires some low level stuff in terms of ChVariable and ChConstraint class hierarchy - even if probably one could just reuse the ChConstraintTwoTuplesFrictionT class that was meant for 3d contact, and put it inside a ChLinkMate-inherited new constraint along with other ChConstrainTwoBodies. But not sure, until I'll have time to play with this.

Also, if you need this feature in smooth dynamics (ex ChSystemSMC, not ChSystemNSC) then it will be a different story. It would be a matter of force fields as in Pacejka formulas etc.

thanks

Alessandro Tasora

Michele Bucceri

unread,
Jan 7, 2025, 10:13:45 AM1/7/25
to ProjectChrono
Thanks Alessandro for your reply!
That's a pitty, but yes, I agree completely about the complexity because of the non-smoothness of the constraint, and that's why I hoped it was implemented and hidden in some dark spot of the code :-).

I will try to go with your hint to use a ChConstraintTwoTuplesFrictionT class!

Cheers and grazie!
Michele

Radu Serban

unread,
Jan 19, 2025, 6:38:57 AM1/19/25
to ProjectChrono

Hi Michele,

 

You didn’t specify if you are interested in non-smooth (NSC) or smooth (SMC) contact formulation.  As Alessandro pointed out, for the latter, there’s no need to mess with the friction constraints. For SMC, you could include the proper friction forces by using a ChRSDA (for revolute joints) or ChTSDA (for prismatic joints) with custom TorqueFunctor or ForceFunctor, respectively.  In the implementation of these custom callbacks, you have access to all quantities you would need to implement a friction model (such as Coulomb).

 

--Radu

--
You received this message because you are subscribed to the Google Groups "ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email to projectchron...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/projectchrono/9e15baa3-72b3-481e-be08-6eb804a0d8b7n%40googlegroups.com.

Reply all
Reply to author
Forward
0 new messages