Cody’s Robot Optical Motion Sensor

optical sensor

[Mac Cody] has continued working on his original optical mouse hack. In the time since we first posted the story, he has repackaged the mouse’s sensor so that it can be used with any robotic platform. He built a custom board for the sensor and modified a lens package so that the sensor plane doesn’t have to be in contact with the ground. His work is based on a NASA paper Insect-inspired Optical-Flow Navigation Sensors. Mac’s sensor seems to be progressing nicely towards his goal of dead reckoning navigation, but he thinks it could do better if the LED illumination was more focused.

13 thoughts on “Cody’s Robot Optical Motion Sensor

  1. if you need it more focused have the light go through a small conelike structure. im no electronics genius but i do know if you use mirrors you can concentrate light better. good luck with your project

  2. if you need it more focused have the light go through a small conelike structure. im no electronics genius but i do know if you use mirrors you can concentrate light better. good luck with your project

  3. Jeff, thanks for your comments. Most of the problem is actually getting good focus with the lens. There isn’t much depth of field available with the lens (only about 2 millimeters), even with the aperture ring I added. Obtaining good focus depends on getting correct both the distance from the lens to the sensor’s focal plane and the distance from the lens to the surface viewed. This has proved to be the most challenging part of this project.

  4. hi, nice site .. cool project; it’s always exciting to see advancement .. of any kind. don’t really know what i’m trying to say exactly, but yea .. just here to say hello; peace, v1adimir.

  5. good hack! btw, I read the ADNS-2610 specs and apparently this IC can’t handle speeds higher than 12 ips … I’ve to admit that I just took a bruef look at your page and I must read it carefully in the near future (the whole thing is sooo promising…), but isn’t it a problem for common robotic appliances?
    good job,

  6. mrk, you make a valid point there. Fortunately, my robot is a slow little guy. It moves about 4-6 ips at full speed, so the sensor will work fine for my application. For faster robots, this sensor limit will indeed be a problem. The 12 ips specification of the ADNS-2610 is based on a 1:1 lens magnification ratio. As shown in the NASA paper, when the sensor’s focus is set on a surface in motion that is father away, then the resultant ips rate will increase. A future version of CROMS-1 could have a more flexible focus to cover a wider range of distances, allowing for a correspondingly higher ips rate.

  7. Mac, I’ve a paper you’d be interested in reading, but I couldn’t find an email address to send it to you. It’s about a group at BYU who used the ADNS-2610 to land a small flying wing. The paper might be available on the BYU website. My email is my name above at if you would like me to email it to ya.

  8. Neat work! Here is a similar project with a somewhat different approach:

    It doesn’t hack the mouse itself (hardware wise) but rather uses the mouse more or less as-is and focuses on making a simple interface to the mouse hardware available. (It’s used on a robot but isn’t specifically limited to robotic use)

    The optical modification featured in your project looks really useful – it would get around the biggest limiting factor of the optical mouse in my opinion: the need for the mouse to be nearly touching the ground in order to “see” properly.

  9. bg_hackaday, thanks for the tip! I did a bit of searching on the BYU website and found three related papers on the subject. Their work has interesting parallels to the JPL/ANU/NASA AMES work described in the NASA TechBrief.

    don, thanks for the pointer! This project is similar to some other optical mouse “odometer trailers” that I’ve seen. A bit more chopping of the mouse was done here than on other applications, though. A complete discourse on the design of the PIC interface is nice, if you have to interface to a PS/2 mouse. I like my solution better though: small in size, direct access to the sensor and all of its features, lower power requirements, and (as you mentioned) physical separation of the sensor from the moving surface.

  10. Hello.

    I read your CROMS-1 guide and it seems like the only way for a dead-reckoning guide for my robot. I have decided to try and make two of these sensors and try to interface them to my robot.

    The question is kind of silly but … the only mouse with the Agilent/Avago ADNS-2610 sensor is the BTC M850? Or would any other mouse do? Asking because the only mice I found in my city are Microsoft and Logitech.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.