I was also throwing around the idea of aiming the guts of an optical mouse at the ground and getting distance readings from that. Focusing on the ground while going over bumps might be an issue and I don't know if a mouse will read correctly at high speed. What do you guys think?
A mouse works well when it is always pointed in a certain direction relative to its moves. Try moving an optical mouse around like it is a bot and see how well the cursor tracks the mouse position.