Cheap optical flow sensor for odometry

Does anyone know where you can find a cheap downward-facing optical flow sensor for measuring odometry on a general-purpose mobile robot?

I've read a few stories of people using hacked optical mice, but these don't usually work well since the lenses are designed to be used within a few millimeters of a very flat surface.

The paper Outdoor Downward-facing Optical Flow Odometry with Commodity Sensors uses this technique in an outdoor domain by using multiple optical mouse sensors fitted with custom lenses to work on varying terrain. However, I can't find anyone who's selling these sensors.

I've used OpenCV's optical flow code to effectively function as an optical mouse sensor using a commodity webcam. Has anyone tried this approach on a mobile robot, or are aware of any pitfalls? Are there alternative solutions?

I guess you should ask that question on an OpenCV forum. The Arduino doesn't have enough power to do OpenCV stuff so you probably don't get a best fit here.

DigiKey.com has a number of optical mouse sensors from Cypress Semiconductor and Avago Technologies available for special order in quantity 1. Perhaps one has an SPI or I2C interface.