[ODE] Simulating Wheels

Michael Lacher michael.lacher at hlw.co.at
Tue Nov 4 15:08:01 MST 2003


Bodo Pfeifer wrote:
> Hi,
> 
> I checked the buggy + test_buggy examples. Both handle the wheels with
> spheres.
> 
> Is this good ? .. I mean, you only have one contact point. A real
> wheel has IMO some sort of contact-rectangle.
> 
> So I thought about using polygonal cylinders (trimesh) .. but
> trimesh-trimesh collision is not available.
> 
> But there obviously exists a lot of car-sims using ODE. Do they
> simulate their wheels with spheres ? .. If yes, would be cool..
> 
> I threw a little test-project together, but my buggy tends to roll
> over in curves with higher speeds. I think this is because of the
> sphere wheels. I played around with different collision-parameters
> (with/without slide, with/without softness, different frictions,
> different chassis/mass/wheel/hinge properties) .. but curves are still
> a problem ..
> 
> Thanks
> 

I have the same problem and actually many people seem to have it 
(according to the posts). But i have seen perfectly stable buggies with 
spherical wheels so I don't think this is really the problem.

Here are some things I thought about when tackling this problem:

a) when a cylindrical wheel would be going through a curve, the force 
would work outward along the axis, eventually (as the cylinder begins to 
tip over) reducing the contact to a point. so in the extreme case they 
behave alike.

b) real cars do not have parallel wheels, and the wheel setup is 
actually quite complex.

c) real cars do not have infinite friction

This leads me to the following solutions:

a) lower friction. Infinite or very high friction will make you car flip 
over more easily.

b) lower the center of mass for the buggy. In a real world car most of 
the mass is very low (chassis, engine), testbuggys often have a very 
high center of gravity.

c) implement ackerman steering. This means that the steering wheels do 
not stay parallel, but the inner wheel turns a little more (because the 
radius of its curve is smaller). If using front or four wheel drive, 
also try to reduce speed for the inner wheel (like a differential 
would). This should also help with bendy wheels problems.

d) you can try to change friciton values for different directions 
(perpendicular to the wheel and in rolling direction) to simulate an 
oval shaped contact instead of a circular one.

I know that a and b work pretty good. I haven't tried c and d yet but I 
think they should help too.

Mucki



More information about the ODE mailing list