I made something like this for LabVIEW last year during the summer. Except instead of using encoders or sensors, I just used joystick values recorded at a regular interval. I was going to use encoders, but the robot I was working with was not equipped with encoders on the drivetrain (nor any elsewhere).
I had it working quite well, though it required modifying the code to change which data you want to record and later when replaying what to do with it.
I was working on a version this year to record everything and a few other things, but I'm having a bit of trouble with the file I/O's and clusters and haven't worked on it since the beginning of the season.
You can see a video of it here:
http://www.youtube.com/watch?v=_uLqWPNVLbs
Not entirely the best system, but it worked ok for just relying on joystick data with no sensors. Would probably work better with sensors.
If you want to know anything else, ask.
-Tanner