Detecting distance travelled (Cartesian)

At the moment it has 3x sensors (2 Infrared short-range, 1 Ultra sonic. Each can measure distance fairly accurate assuming the right surfaces).

I'm picking up a GPS but we're talking a small living room, not really outside (though it's not out of the question).

FYI: http://download.milesburton.com/Arduino/Robotics/ArduinoAWD/ArduinoAWD_Loaded.JPG

That's the base it'll sit on. So you'd suggest a more accurate mouse sensor - Do you, err, have any suggestions on a module? I find that they pretty much have to drag against the floor to be useful.