Thoughts on optical flow sensors

1,184 views
Skip to first unread message

Ted Meyers

unread,
Feb 10, 2013, 10:31:25 PM2/10/13
to diyr...@googlegroups.com
I've been doing some more research on optical flow sensors.  

I've found two interesting  products, one is the adns3080 sensor sold by diydrones (which they don't seem to sell anymore), and the other is the PX4Flow - https://pixhawk.ethz.ch/px4/modules/px4flow - also sold by diydrones.  I suspect that an optical flow sensor could work really well on a rover, as the sensor could be kept parallel to the ground (except when the rover tilts over or becomes airborne, etc).  I always thought that the main problem would be distinguishing lateral x,y movement from rotation, but then I realized that a gyro would work great for compensating for rotation.   And actually the PX4Flow looks like it does this, and does a really great job (there is a picture of a ground trace using only the optical flow sensor and it at least looks really good: https://pixhawk.ethz.ch/px4/_detail/modules/px4flow_trajectory.png?id=modules%3Apx4flow).  But, there is a problem I think, in order for a pixel to be found in sequential frames, the rover can not be moving too fast (or the sensor has to high up, or it needs a faster frame rate).  The PX4Flow claims a 2 to 1 altitude to max speed (5 m above ground gives 10 m/s).  I couldn't find a specification for the ADNS3080.  At any rate, I had something more on the order of a few cm above ground, which is clearly unworkable.

Michael Shimniok

unread,
Feb 11, 2013, 12:20:45 AM2/11/13
to diyr...@googlegroups.com
I have one of the original diydrones sensors with the lens. So, you could swap the lens to change the speed / altitude ratio. it uses a common lens mount so shouldn't be hard to find lenses with different focal lengths.

I know Wayne had tried his. I've forgotten the details. My plan was to have it pointing forward and down, maybe focused on a point a meter or two out from the robot and see what kind of data I'd get out of it.


On Sun, Feb 10, 2013 at 8:31 PM, Ted Meyers <ted.m...@gmail.com> wrote:
I've been doing some more research on optical flow sensors.  

I've found two interesting  products, one is the adns3080 sensor sold by diydrones (which they don't seem to sell anymore), and the other is the PX4Flow - https://pixhawk.ethz.ch/px4/modules/px4flow - also sold by diydrones.  I suspect that an optical flow sensor could work really well on a rover, as the sensor could be kept parallel to the ground (except when the rover tilts over or becomes airborne, etc).  I always thought that the main problem would be distinguishing lateral x,y movement from rotation, but then I realized that a gyro would work great for compensating for rotation.   And actually the PX4Flow looks like it does this, and does a really great job (there is a picture of a ground trace using only the optical flow sensor and it at least looks really good: https://pixhawk.ethz.ch/px4/_detail/modules/px4flow_trajectory.png?id=modules%3Apx4flow).  But, there is a problem I think, in order for a pixel to be found in sequential frames, the rover can not be moving too fast (or the sensor has to high up, or it needs a faster frame rate).  The PX4Flow claims a 2 to 1 altitude to max speed (5 m above ground gives 10 m/s).  I couldn't find a specification for the ADNS3080.  At any rate, I had something more on the order of a few cm above ground, which is clearly unworkable.

--
You received this message because you are subscribed to the Google Groups "diyrovers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+...@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg/diyrovers/-/ato-ohvu6HIJ.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

wholder

unread,
Feb 11, 2013, 1:38:59 AM2/11/13
to diyr...@googlegroups.com
Info on the chip, and a datasheet can be found, here:


A page describing my experiments with this chip in the form of the DIY Drones board is here:


According to the data sheet, the ADNS-3080 can run at a frame rate of either 1500 fps, or 6469 fps (which is damn fast), but requires about 4x more light to run at the faster rate.  I plan to do more with the chip, but haven't had time to circle back and run more experiments.  

Also, at one point I was planning on doing my own PCB for the ADNS-3080 and purchased some M12x0.5 lens holders and lens off eBay (the exact same kind as are used on the DIY Drones board) and some lens of various focal lengths (search for "M12 lens".( There are a whole range of lens available that will fit this M12 holder, including some very wide angle lens.

BTW, to focus the ADNS-3080 I wrote some code on the Arduino that printed out a crude ASCII image onto the monitor.

Wayne

Ted Meyers

unread,
Feb 12, 2013, 12:35:52 AM2/12/13
to diyr...@googlegroups.com
Great!  I found some specs on the 3080, it can handle up to 40 inches per second (that is at 2mm above ground -- as in a mouse), I'm guessing that it can read much higher velocities if much higher above ground level.  I think that the higher frame rate makes it a lot better for odometry than a web cam at 60 fps.  Too bad the 3080 isn't a little better suited for odometry.  Well, if anyone finds anything more user friendly on the market, please let me know.

Michael Shimniok

unread,
Mar 12, 2013, 10:24:15 PM3/12/13
to diyr...@googlegroups.com
Did you see the HaD mention of this optical flow sensor for full scale car?

http://www.mand3l.com/work/velocimeter/

Michael

Ted Meyers

unread,
Mar 12, 2013, 11:56:52 PM3/12/13
to diyr...@googlegroups.com
Yes, but there isn't much in the way of details, is there.  I did see that he sourced a good lens for the optics  (edmund optics -- when I was a kid I came across an Edmund Scientifics catalog; at the time I thought it was the coolest catalog ever, good memories).

Vinny

unread,
Mar 20, 2013, 2:10:37 AM3/20/13
to diyr...@googlegroups.com
Here are some items that are optical flow sensor related:

Mouse Sensor Kit (#28560)
The Parallax Mouse Sensor is a module in kit form which, when assembled, provides the tracking functions of an optical mouse. The two-wire serial interface is directly compatible with the Parallax BASIC Stamp® 2 family, the Parallax Propeller™, and other microcontrollers.

Features
  • Compact module, including illumination, optics, and custom laser-cut base
  • “Close-to-the-metal” register-based serial interface for maximum flexibility
  • Holes for mounting to other equipment
  • Compatible with any BS2-family BASIC Stamp, the SX, and the Parallax Propeller
  • Accommodation for single or dual three-wire (servo-type) interface cables
Key Specifications
  • Power requirements: 5 VDC at 35 mA
  • Communication: Two-wire serial (clock and data)
  • Logic compatible with 3.3V (using external resistor) and 5V microcontrollers
  • Dimensions: 1.80” (45.7mm) L x 1.00” (25.4 mm) W x 0.65” (16.5 mm) H
Application Ideas
  • Measuring X and Y displacement on a flat surface
  • Detecting vibration in two dimensions over a flat surface

This kit comes with a MCS-12086 mouse sensor chip, which has similar specs to the ADNS-3080.  The kit could be easily modified by adding a 6mm lens which is described in the next reference. This is the website that describes how to add a lens to an optical mouse sensor (Update: Optical flow based Odometry sensor – optics idea worked!)

Ted Meyers

unread,
Apr 3, 2013, 10:20:34 PM4/3/13
to diyr...@googlegroups.com
Hackaday just posted a link to a guy name Tim using an optical mouse to do optical flow for the AVC.  Looks interesting.

Ted

Michael Shimniok

unread,
Apr 3, 2013, 10:50:33 PM4/3/13
to diyr...@googlegroups.com

On Apr 3, 2013, at 8:20 PM, Ted Meyers <ted.m...@gmail.com> wrote:

Hackaday just posted a link to a guy name Tim using an optical mouse to do optical flow for the AVC.  Looks interesting.

Ted

--
You received this message because you are subscribed to the Google Groups "diyrovers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+...@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg/diyrovers/-/5ks5RSGatMkJ.

Timothy Giles

unread,
Apr 23, 2013, 12:51:22 PM4/23/13
to diyr...@googlegroups.com
Hey guys,

I was just reading through the posts here and see that you linked to my optical mouse hacking post.  I haven't managed to make any more progress on it that what is on my blog.  The next step is sorting out the optics and I haven't had any success with that.  I'm working on my entry for the AVC (that's why i was looking at the optical mouse stuff) and for now i'm just counting wheel rotations with a hall effect sensor.  It seems to be working OK as long as you do a good job mounting the magnets and sensor.  I'm going to put up a post about the design of my car soon.  and i want to start participating on this google group also.

Tim

Michael Shimniok

unread,
Apr 23, 2013, 2:37:40 PM4/23/13
to diyr...@googlegroups.com
Good to hear from you! I'm looking forward to hearing more. I've had really good luck with IR reflectance sensors for what it's worth.

Michael
--
You received this message because you are subscribed to the Google Groups "diyrovers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+...@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg/diyrovers/-/aq_hfaqar5IJ.

Ted Meyers

unread,
Apr 23, 2013, 11:57:33 PM4/23/13
to diyr...@googlegroups.com
Cool, I've been hoping to hear from some more AVC competitors!

I too have had good luck with IR reflectance.  The only trick is finding a good way to mount it to the wheel.

I'm planning on getting a mouse sensor working as an odometer at some point, but not this year; too much to do!  (This always happens)

Ted
Reply all
Reply to author
Forward
0 new messages