Ode angular velocity variation

I’m using ode to simulate and model the drive characteristics of an 4 wheeled robot. I’m controlling the robot by setting the velocity of the left and right wheels. I can the drive the robot in the a circle by setting a differential velocity for the left and right wheels. It will drive in a circle and end up in the starting location as expected, however I’m finding that the ode body angularVelocity is varying as it moves around the circle. The angularVelocity variation is periodic with max when the robot orientaion of 0, 90, 180 and 270, and min at 45 degree increments. When I plot the path, its more like an elipse than a circle. This is independent of the starting position, speed or direction of rotation.

I’m not sure why this is happening or how to fix it.

ODE is a game physics engine so its not 100% accurate. Its probably not even 50% accurate. What you see is normal. What ODE does is try to make fastest physics simulation not very accurate. How big are the differences? You can also ask on ODE mailing list because honestly ODE has just been integrated and we are not comfortable with it yet.

When using ODE, make sure you are using a constant timestep to get stable simulations.