I've only recently began developing my own autonomous indoor robot and it is surprisingly challenging. So far I just have encoder based odometry for dead reckoning but plan to incorporate support for gyroscopes and compasses next.
The odometry approach I think is very useful for localized maneuvers, like moving around obstacles where you are using short-range sensor information and traveling small distances between readings. Over longer distances it quickly becomes less useful.
Good luck with the endeavor. It sounds fun. Let us know if you blog about it as I would be interested in seeing how you get along.