[ODE] A fix for the bendy wheels (with code)

Gary R. Van Sickle g.r.vansickle at worldnet.att.net
Thu May 8 18:19:02 2003


> 2. The wheels position gets pushed away and toward the cars body, along the
> wheels axle.  This effect is clear when you implement the below function.
> I've experimented with a bunch of code to correct this problem, but had poor
> results.  The problem is ODE doesn't store the original location of bodies,
> so its hard to calculate the NON-pushed wheel position away from the car's
> body.

It seems to me that a number of problems with ODE could be made easier to solve
if the bodies' states from the previous frame were available.  I think I brought
this up before and people balked at the extra memory that would be required,
but:

a) We're currently limited by stack size, not heap size, so until StepFast
becomes canon this is a nonissue.
b) It wouldn't have to be every body.  Perhaps one could:
  - derive a "dBodyWithPreviousFrameState" class from dBody.
  - add some sort of registration functionality so that you register which
bodies you want to keep prev-frame info on.
then the user could choose which bodies would benefit from this and which
wouldn't.

I immediately see a few applications:

- The bendy wheels issue mentioned by Michael.
- Collision tunnelling could be eliminated.
- "Temporal bisection" collision resolution schemes could be investigated.
- ...well, that's all I can think of right now.

An avenue to explore, or just a crazy idea?

--
Gary R. Van Sickle
Brewer.  Patriot.