Robot Vision Options

I am looking into adding vision processing to my next robot and I am just wondering what the best option is. From what I have seen there is the dedicated sensor option (CMUcam3 or Blackfin) or the webcam and computer option. I am just wondering which option is the easiest and which products are the best. I have a Beagleboard so I could connect a webcam to it but I would buy a dedicated sensor if they are easier to use.

Best option webcam and computer option

So I should use a beagleboard? Or should I get a netbook? Or what?

So I should use a beagleboard? Or should I get a netbook? Or what?

Part of it will depend on your robot and its intended environment.

For instance, in a structured environment (for instance, a tabletop or floor-based environment where colors have fairly good contrast and are low in number), a "simple" (by this I mean to interface with - not that the software or its internal design is simple) device like the CMUcam might be best.

If you intend to build a larger robot navigating an unstructured environment (perhaps inside a home, in an office, outdoors on sidewalks, off-road, etc), or you are needing to process the data at high-speed and/or extract 3D information (or you are needing to use multiple cameras for similar reasons), a standalone camera (web camera, IP camera, capture card, etc) with image processing software running on a larger platform (anything from something like the BeagleBoard all the way up to a large-scale beowulf cluster computer accessed remotely) might be the better way to go.

There's also the question of whether you need a camera at all. For instance, could your robot get by with using an extremely low-resolution insect-like "eye" using a variety of photosensors and/or color filtering? Could you scan such an eye on a pan/tilt platform to build up a higher-resolution "image"? Could you do it in real-time, perhaps immitating a saccade system to stream data and build up a "model" of the enviroment as you go (with accuracy of the model increasing as the environment was explored)?

You also need to take into account whether you will be integrating any other sensor data into the mix, as well as how you intend to use that data plus the data from the cameras. Are you simply wanting to track blobs? Are you wanting to extract 3D data for path planning? Will you be using any target markers in the environment (bar codes, etc)? Will you be tracking projected dots or patterns (anything from a laser dot to complex structured light patterns)?

Answers to these questions may also determine what system you need to use, as well as what kind of camera to purchase (as well as any kind of pan/tilt/zoom motion base). Once you determine what exactly you are trying to do, and the environment the robot will explore, you will have a better grasp as to whether you need a simple camera, or something more complex (as well as whether you can afford it or if you need to increase your budget).

:slight_smile:

The entire purpose of the robot is to experiment with vision processing. I am looking to start with the robot following a certain color or shape in a structured environment. Later I want it to operate in an unstructured environment and do more advanced processing. Simplicity would be nice but documentation and power is most important.