From: Chris Bainbridge <chris.bainbridge@gm...> - 2006-10-13 11:27:24
On 12/10/06, Ethan Glasser-Camp <glasse@...> wrote:
> I played with the third PyODE tutorial to test out GeomTransforms, but
> I can't get them to work. The attached program generates a body and a
> GeomBox translated (0, 1, 0) from it. However, if you run it, the box
> is shown rocking back and forth on the plane. I've tried playing with
> the mass, for instance translating it using Mass.translate, but this
> does not fix the problem. What am I doing wrong?
Your CFM value is too high, which allows the generated contacts to be
violated significantly. Try world.setCFM(1E-8)
From: Chris Bainbridge <chris.bainbridge@gm...> - 2006-10-13 16:32:46
On 13/10/06, Ethan Glasser-Camp <glasse@...> wrote:
> Chris Bainbridge wrote:
> > Your CFM value is too high, which allows the generated contacts to be
> > violated significantly. Try world.setCFM(1E-8)
> How come this is only a problem if the geom is translated?
I haven't looked in detail, but I would guess that it is something to
do with the corrective forces for each contact being generated for the
geom, but applied to the translated body instead (not the centre of
the geom), thus producing a rotation about the centre of the geom.
Normally no rotation would occur since the ground plane is in the way,
but if you have a high CFM the geom will be allowed to sink into the
ground a bit, so the rotation will happen, but then the constraint is
violated on the other side, so the same process occurs there, and you
end up with the oscillating behaviour your simulation shows.