After this morning’s PARTS meeting and Indoor Challenge, a few of us were talking about using optical mouse sensors for tracking robot position rather than wheel-based encoders. Optical mouse sensors use optical-flow techniques to determine X & Y motion based on differences between successive snapshots of the underlying surface texture. These sensors contain very-low resolution (18×18) cameras and all the necessary DSP to distill the information down to a delta-X and a delta-Y value. It’s possible to read the raw image data out as well.
I’ve been wanting to play around with optical mouse sensors for a while, and the PARTS Indoor Challenge seemed like a good target application, so I threw some Avago ADNS-2620 sensors into the last DorkBot group order. Unfortunately I didn’t have time this last week to do anything with them. I figured I would need two sensors to track X, Y, and rotation since the mouse sensor doesn’t do rotation. This certainly isn’t a new idea — mouse sensors have been used for robotics for quite a while, but I hadn’t done much research on it until now. Here are some good links:
Precise Dead-Reckoning for Mobile Robots Using Multiple Optical Mouse Sensors (PDF)
Evaluates accuracy of two vs four mouse sensors compared to encoder-based dead reckoning.
Two sensors are significantly better than encoder-based DR if the robot speed is less than the max rate of the mouse sensors; four sensors are even bettter.
Four sensors are still significantly better than encoder-based DR even when the robot speed is greater than the max rate of the mouse sensors.
Testing was done on a felt surface, however, so the variability of the floor we’ve been running the PARTS Indoor Challenge on may require more than two sensors for robust positioning, even at slower speeds.
Cody’s Robot Optical Motion Sensor #1 (CROMS-1)
Nice writeup on hacking an optical mouse sensor, including creating a custom lens assembly for increased range.
Implementation Of An On-Chip Insect-Inspired Optic Flow Based Navigation Sensor
NASA Tech Brief referenced by Cody’s above writeup. Using optical mouse sensors with custom lens assemblies for flying robots (at low altitudes). Overviews the optical design methodology and presents data from actual flight testing. Concludes that optical mouse sensors are usable for terrain-following behavior on a robotic-flier. Free registration is required to access the report.
Required components for optical mouse sensor (if you want to start from scratch rather than hack a mouse):
(These aren’t necessarily the best mouse sensor for robot navigation, but they are readily available.)
Avago ADNS-2620 optical mouse sensor
Purchase: Mouser 630-ADNS-2620 ($1.58, qty 1)
Avago HDNS-2100-001 lens
Purchase: Mouser 630-HDNS-2100-001 ($0.18, qty 1)
Avago HDNS-2200 LED alignment clip
Purchase: Mouser 630-HDNS-2200 (Non-stocked/Not available in small quantities! Grrr. I think I can do without it.)
Avago HLMP-ED80-K0T0 LED
Purchase: Mouser 630-HLMP-ED80-K0T00 ($0.39, qty 10)
More to come!