Though my apartment isn't overly large, I have still find that a single Roomba doesn't quite get the job done solo. I suspect this is largely due to the layout and number of walls, but rather than try to devise some type of system to escort the Roomba to various parts of the house, the easiest option was to just pick up a second one off Craigslist. One is stationed in the living room, while the other lives under a table in the bedroom.
Since both are automatically set loose whenever the alarm is set in "Away" mode, something was required to keep each Roomba confined to its respective area, else at the end of the cleaning cycle they would just tend to compete with each other for the closest dock.
If you have a Roomba, it likely came with virtual walls that you can set up to keep the vacuum where you want it, but these have to be turned on manually, which somewhat kills the vibe of a truly automated cleaning system. Since the virtual walls are nothing more than an IR LED, MCU, and some batteries, duplicating the "wall" functionality would have been fairly straightforward, but a quick Google search revealed that Eric had already done the work.
From a hardware standpoint, the only other thing I added was an L7808 and support circuitry to knock the 24VDC from my automation system down to 8V, which in turn is fed into the VIN pin on the Arduino Nano. I chose 8V so that the big TO220 was taking the lion's share of the 24V-to-5V drop (16V), leaving only 3V for the VReg on the Arduino Nano board itself. When running, it only draws about 25mA, so the 400mW burnt by the L7808 is no problem.