[ODE] Modelling Joint Friction
pk at dneg.com
Tue Sep 27 17:05:43 MST 2005
Thanks for your suggestion - it looks like a good solution to the
problem. I have a couple of questions.
- Since there doesn't seem to be access to the force applied by the
motor though the API, I assume the changes would have to be made to the
- Have you implemented this solution, and did it work as expected?
Erin Catto wrote:
> This model lacks position correction, so you are seeing position drift. If
> you can store the position of sticking, then you can apply penalty
> velocities to correct the position errors. Once the max force is reached,
> you need to stop applying the penalty.
> So instead of:
> v = 0
> v = ERP / dt * (pos_stick - pos) // when sticking
> v = 0 // when sliding
> -----Original Message-----
> From: ode-bounces at q12.org [mailto:ode-bounces at q12.org] On Behalf Of Peter
> Sent: Friday, September 23, 2005 4:25 AM
> To: ode at q12.org
> Subject: [ODE] Modelling Joint Friction
> I need friction in my joints, so I've implemented the solution given in the
> "Motors can also be used to accurately model dry (or Coulomb) friction in
> joints. Simply set the desired velocity to zero and set the maximum force to
> some constant value - then all joint motion will be impeded by that force."
> This solution works for an average case, but it does not seem to cope with
> high friction. For example, if I set the maximum force to dInfinity I would
> expect the joint to become completely rigid.
> In actual fact the joint still moves. It appears that all high values of
> maximum force tend towards the same result. Is it not the case that with a
> maximum force of dInfinity and a desired velocity of zero the joint should
> never move?
> ODE mailing list
> ODE at q12.org
More information about the ODE