This is a follow-on to an earlier post about an Arduino-based optical flow sensor prototype. Here I actually constructed a complete sensor that could actually be integrated into a robotic platform. To achieve a smaller size, I used an Arduino Pro Mini board from Sparkfun, and added a "shield" to interface that with a Centeye image sensor and optics. The breakout of parts is shown above- The complete sensor is shown next to a US Quarter. You can also see the individual blue Arduino board and the green "shield" board. On the right are individual "sensor heads" which are basically small PCBs holding the image sensor chip (here the "FireflySmall"), optional optics, and two capacitors. The sensor head plugs into the green shield board via a Hirose DF30 board to board connector. Three sensor heads are shown- on top is a sensor head with optics, in the middle the board-to-board connector side, and on the bottom the image sensor chip side.

 

I wrote a simple Arduino script to grab pixels from the vision chip (configuring it to grab rectangular pixels), compute 1D optical flow using a variation of Srinivasan's "image interpolation algorithm", and dump a display of the optical flow to the serial monitor. (Some of you may know Professor Mandyam Srinivasan as the Australian biologist who has studied honey bee navigation, in particular how honey bees use optical flow to close control loops using simple but elegant heuristics.) A simple video of the sensor is shown below. I've also attached the Arduino script code, in case anyone is interested.

 

 

PIO12Firefly_ProMini_LinearOF.pde

Views: 3439

Comment by DaveyWaveyBunsenBurner on January 10, 2011 at 7:37am

Very nice! With this, the Ladar and Kinect hacking going on, we are going to be spoilt for obstacle avoidance technologies!


Developer
Comment by Jani Hirvinen on January 10, 2011 at 7:44am

yeah that looks great. what is the range it can detect movement with your optics?

one word: i want (ok two words) :)

Comment by Geoffrey L. Barrows on January 10, 2011 at 8:11am

Actually at some point I'd like to start a discussion about open optical flow / vision sensors. As of now we have two versions- this one based on an Arduino, and the CYE8 (Google Code site) based on an ATmega644P processor. The Arduino one is easier to program, but the CYE8 is slightly faster (20MHz vs 8MHz) and has more memory. We may also kick off more powerful version based on an AVR32 (60MHz) or a full DSP.

 

There are lots of issues surrounding the development and manufacture of such a sensor, in particular one using our own chips. Benefits- we design the silicon, so we can reveal as much about the insides as we like, allowing everyone to hack it to their heart's content. We can also design a chip specifically for an Arduino! (know any chip companies that do that???) Disadvantages- we get the chips in bare die form, thus have to package them or wire bond them to a board, and then apply optics.

 

(BTW- we did get back the injection molded optics- they look great! I'll make another post as soon as we test them...)

Comment by Ravi Gaddipati on January 10, 2011 at 8:50am
Looks Great! Are you using pinhole optics, or the injection molded ones in the video? Is the LED simply an indicator, or does it provide illumination, infrared or otherwise?
Comment by Sebastian Gralla on January 10, 2011 at 10:07am
Great! I'd love to see those sensors in shops!
Comment by Geoffrey L. Barrows on January 10, 2011 at 10:10am
@Ravi- For this one I used the press-molded optics discussed in my last post. The shape and design is essentially the same as the injection molded version. The LED could be for either illumination or indication, and could be visible or near-infrared (since the chip is silicon).
Comment by lionel on January 10, 2011 at 11:06am
Definitvely great +++ I am very interested about these :-))
Comment by Ravi Gaddipati on January 10, 2011 at 2:52pm
I noticed you didnt use JBWeld to cover the wirebonds. Did you use some sort of silicone?
Comment by Geoffrey L. Barrows on January 10, 2011 at 3:10pm
Ravi- For that one we used a UV curable optical adhesive. That is what I happened to have on hand.
Comment by Istvan Pall on June 8, 2014 at 7:07am

Hi Geoffrey, any progress with your optical flow sensor since 2011?

Comment

You need to be a member of DIY Drones to add comments!

Join DIY Drones

Groups

Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2018   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service