Robot - motors run at different speeds

It seems that the two motors in my Arduino robot run at different speeds. So with them both set to full speed (255,255), the robot does not travel in a straight line - instead it veers to the left or the right. Is this to be expected? Do I need to compensate myself in software?

I contacted Arduino about this and they sent me a replacement robot - but it behaves in exactly the same way (actually the replacement veers the other way, but it still won't go straight).

Here's a video: IMG 6833 - YouTube

Any ideas?

I would describe this as normal behavior. The reason why all the sensors (like the electronic compass) are on the robot is to make course corrections.

Thanks for that. I'm kind of glad if that's the case - I'd be very surprised to have received two faulty robots. But I wonder why Arduino didn't simply tell me the same thing when they saw the video...

The wheels need calibration. Take a look at

Examples -> Robot_Control -> Explore -> R06_Wheel_Calibration

If you have not calibrated the wheels.

does it always turn the same way ? Trying sending a different signal to each wheel.

srimadh:
The wheels need calibration. Take a look at

Examples -> Robot_Control -> Explore -> R06_Wheel_Calibration

If you have not calibrated the wheels.

Amazing! This did the trick. Thank you so much. I wonder why on earth neither Arduino nor their distributor thought
of doing this...