The great thing about hacking on Roombas is that iRobot used quality parts to build them. [Jason] got his hands on a broken 5XX series Roomba and posted an article about how he reused the salvaged parts.
What you see above is one of the results of his work. This little bot takes commands from an IR television remote control. But he also used the setup to make a self-balancing bot. The two motors from the Roomba have magnetic rotary encoders with 8-bit resolution. Pair this with a well-tuned PID algorithm and you’re in business. The video below shows him testing a motor with his PID code.
You don’t get very much info on the guts of the donor robot. If that’s what you’re looking for you need to look at [Dino's] Roomba 4000 teardown.