[ODE] Tank Tracks

Adam Rotaru adam_rotaru at yahoo.com
Fri Jan 4 16:47:01 2002


--- "John D. Gwinner" <jgwinner@dazsi.com> wrote:
> Do you think I'll have a problem with the fact the
> joints will be
> circular (i.e. the last will attach to the first).

No, I don't think the loop is a problem
(in fact this was one of my first tests with ODE, 
http://www.geocities.com/adam_rotaru/tmp/ode/test_closedchain.cpp.txt).

> I will have close to 1400 such joints (five treads
> per group, four
> groups).  
> 80 road wheels, 4 sprockets and 4 idler/tension
wheels.

But I do think that simulating this many parts and
joints is
going to be problematic.  Especially, since many parts
are
quite small (track links) and move fast relative to
the body,
you would need to use very small timesteps.  
I think it would be very slow!

I would be thinking about some approximate solution
instead.
Such as the 'simulate the wheels only' approach you
mentioned,
which I think is a good one.  Of course, ignoring
individual track links
would preclude the simulation of subtle effects such
as:
- the track bouncing up and down, or 
- increasing/decreasing slack as a result of
acceleration/braking.  
- sideways slide during turning.
- (a broken link, as you say)
Apart these the another effect is the collision
between the bottom track 
and terrain irregularities.
I think four wheels per side approximates this close
enough.
Or you could simulate some trakc parts (4-5
rectangles) below
the wheels *only*, connected to each other by hinges.
As soon as the last blocks gets behind, you would
destroy it and
generate a new one in front of the first one
(programatically).
Another issue is how to constrain all wheels on one
side
to the same (tangential) speed?  

It's not easy.  This is definitely a good application
for testing the 
capabilities of a physics library!

cheers,
  Adam



__________________________________________________
Do You Yahoo!?
Send your FREE holiday greetings online!
http://greetings.yahoo.com