The main issue is sensing - I don't see anything that can easily be detected and reliable identified with a basic sensor.
The best you can do is using encoders on the wheels, but there will always be error and wheel slip, so it might not be very reliable:
http://www.societyofrobots.com/sensors_encoder.shtml