For computer vision using Gadgeteer, two cameras are needed at a fixed distance. Spider supports one camera. Do any of you have some ideas how two cameras could share the same socket? The mainboard would have to toggle between the two cameras. this would be problematic for objects in motion but would work for stationary objects.
How would you go about creating a custom module? one design is to have two cameras a couple centimeters apart, some controller would combine both images into one (left camera is on left side, right camera on right side, like the images from mars rovers). Or the image could go to module memory where the mainboard could retrieve the left and right.
I don’t think the image processing will be too much for a spider - the kernel methods are pretty fast, just looping through the NxM matrix comparing adjacent pixels, and then the stereo part that goes line by line. But…
This is for building a Gadgeteer version of Google/Stanfords self-driving car - a miniature one. The best design would be to have the CV running on a Gadgeteer module and the mainboard would just read in geometry from the module - to free up the spider to handle the AI. it would make alot more sense to do the CV in C code.
the minoru is likely the cheapest stereo web cam. It does no work on the camera system to combine the stereo images though so that has to be all offloaded. http://www.minoru3d.com/ you can find them on ebay for 25 bucks or so. It honestly is 2 web cams properly spaced and then plugged into a internal hub with one usb cord coming out. It tears down nicely. I use them on a ROS based robot but those are run with laptops/PCs and full blown linux not sure how it would do on a smaller embedded chipset. I would guess you could offload that work to a DSP. Or as gus says use some serial cams. The biggest issue is syncing the frames the cheap way this has been done is two exaclty alike cameras hoping they stay in sync. the better ones do this with the 2 cameras before it published to the output.
I really want to go the route of CV module, rather than use openCV. One major reason is for experience for myself and anyone working on the project or following the blog posts to learn about the CV algorithms. but use openCV code wherever possible.
Yeah i have a chinese version sitting on my desk from a old project. It is definitely a good start. My two littles ones would be why i take breaks too :>
they’re cheaper than the serial cameras. I think the simplest way to get started is to get two serial or I2C hooked up to the spider and do processing either on board or on PC by sending images over wi-fi. no clue what I2C is yet, sounds complicated.
Only the control channel is I2C, the data is a special parallel bus called DCMI. Search here on the forum, there was an extensive discussion related to DCMI recently.