Optical Flow: Introduction, algorithms, etc.

I am currently undertaking an undergraduate UAV project at the Naval Academy in which I have been tasked to build and implement a sensor onboard a small indoor helicopter. I am using optical flow to direct my research, since it seems to be widely used and a preferred method for indoor navigation.I am currently using MATLAB as a test platform to test algorithms on sample frames to calculate optical flow using the Lucas-Kanade algorithm.Although I have a working algorithm, I am failing to understand the concept of its calculations which will help me develop the control algorithms and will also help me convert the MATLAB code onto a PIC processor which will eventually be my main processor onboard my helicopter.I have the idea in my head that eventually I would like to have the sensor looking forward and used for a sort of obstacle avoidance. I would ideally like my helicopter to "steer away" from the areas of dense optical flow, or once the flow reaches a certain magnitude, sensing close objects.I'm hoping this forum will generate discussion in the field of optical flow, specifically related to using the Lucas-Kanade algorithm on a 16X16 frame size.If anyone has any ideas or questions, please post here. I am more than willing to share updates on my project as they come. Also please remember I am an undergrad doing an independent research project, and am therefore not nearly as experienced in this field as most others, so any advice, no matter how simple, will probably help.Best Regards,Mike

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Developer

    Hi Mike,

     

         there's quite a bit of research on optical flow around.  Here's three papers I know of:

                  http://www.araa.asn.au/acra/acra2007/papers/paper181final.pdf

                 http://www.mecatronica.eesc.usp.br/wiki/upload/0/0a/2006_Thesis_Rem...

                 http://www.dis.uniroma1.it/~lmarchetti/private/quadrotor/lange-visi...

     

         I recently used optical flow (a mouse sensor actually) to control the horizontal movement of a quad copter.  My blog post is here.  The sensor I used was the ADNS2620 mouse sensor on an evaluation board from Sparkfun.  With a mouse sensor you only get a pair of optical flow values (one representing x movement, one representing y movement). 

     

         I guess you're trying to do something different in that you want to use a single sensor and it will return a whole grid of movement values (which sounds great, i'd love to see what sensor you're using).  if it was me, i'd probably use more than one sensor...point one out the left and one out the right..then i'd probably try and balance the optical flow values.  so if the right sensor had higher optical flow values, i'd move left and vice-versa.  I guess you could do the same thing with a single sensor, a wide angle lense and divide the frame in two.

     

        anyway, i haven't totally thought through how to do what you're trying to do so these are just some random thoughts.

     

         By the way, there's also this open source group which focusses on optical flow using centeye sensors: http://embeddedeye.com/

     

    -Randy

    http://www.araa.asn.au/acra/acra2007/papers/paper181final.pdf
This reply was deleted.

Activity