by Julio Jerez » Tue Nov 06, 2018 8:29 am
I thought I saw a video of the whole thing moving like a vehicle?
In. a previous post you mentioned and expantion joint, and you add that is does jitter without it, what is an expantion joint?
is that what moves the tooth horizontally?
the jitter when you start to move, I think I know what it is,
it is the other bug I said I found, it is because when I added the option to deal with contact to the joint solver, I did not added the capability to calculate coulomb friction, instead I added a hack that uses the normal force calculated in previous frame as the normal for the calculatation the friction limits.
this work well when dealing with similar masses ratios, but breaks down in cases like yours.
in 1.52 this was called adaptive friction, but I decided to remove it because iterative solver can calculate the friction normal per iteration, so that option was not longer needed.
them when adding the joint solver since joints do not need coulomb friction, the option was not needed it still, but now we come full circle, the joint solver now deal with contacts, but only uses the adaptive friction trick which generate that jitter when the forces are changing drastically.
the problem with the coulomb friction trick, is the is add a transients behavior when the force in one frame is very different than the calculated normal force for the current frame.
the most extreme example is imagine a ball hitting the ground, at the mover of contact the normal force has not been calculated yet, therefore the friction is zero, then in next frame it use the normal force to calculate the friction, but since the ball is bouncing off the ground, the normal force is zero, and friction should be zero, but is not,
so what we get is a delay in the friction force which the to stabilize in most cases, but your case it last a long time because the problem persist.
I copy the solver that deal with this cases in the joint solver, but is not fully completed yet, I will do so this weekend.