[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