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

David Whittaker david at csworkbench.com
Thu May 8 20:07:01 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.
>

And maybe even higher order solvers for "engineering applications" (i.e.
any application where accuracy is more important than speed).

> An avenue to explore, or just a crazy idea?
>
> --
> Gary R. Van Sickle
> Brewer.  Patriot.
>
> _______________________________________________
> ODE mailing list
> ODE@q12.org
> http://q12.org/mailman/listinfo/ode