Raspbuggy ( http://cmcrobotics.github.io/raspbuggy ) is an educational platform used to initiate children to programming and automation.
It is presented in the form of a wifi-enabled RC car that ships with its own (Google Blockly-based) programming environment.
The idea is to create custom Blockly blocks to enable computer vision support in the Raspbuggy platform - using the library SimpleCV and a standard Raspberry Pi camera unit.
Raspbuggy is based on the Raspberry Pi platform, and allows the integration of a large number of hardware sensors, camera support and software packages.
Currently, attempts have been made to introduce computer vision with OpenCV, but without much success. SimpleCV is a simplified, cut-down version of OpenCV, which should help the Raspbuggy gain vision.
Objective : Introduce custom Blockly programming blocks to enable computer vision support
- Image acquisition (with preset resolutions) and storage in variables for later reference
- Image filtering as provided by SimpleCV (colours, edges)
- Boolean operator ( Is IMAGE A featured somewhere in IMAGE B - for instance, "does this image contains a RED CIRCLE ?")
- Coordinate extraction operator ( At which coordinates is IMAGE A featured inside IMAGE B ? What is the size of IMAGE A with regards to IMAGE B ? - for instance, determine if the RED CIRCLE is more on the left or the right of the image, determine whether the RED CIRCLE is growing or shrinking with regards to the field of vision)
Implement one or many of the following principles, as Google blockly blocks :
- Image acquisition (with preset resolutions) and storage in variables for later reference
- Image filtering as provided by SimpleCV (colours, edges)
- Boolean operator ( Is IMAGE A featured somewhere in IMAGE B - for instance, "does this image contains a RED CIRCLE ?")
- Coordinate extraction operator ( At which coordinates is IMAGE A featured inside IMAGE B ? What is the size of IMAGE A with regards to IMAGE B ? - for instance, determine if the RED CIRCLE is more on the left or the right of the image, determine whether the RED CIRCLE is growing or shrinking with regards to the field of vision)
- Essential : fluency in Javascript
- Essential : Python basics
- Essential : understanding of signal processing, image processing principles
- A plus : Familiarity with OPENCV
- A plus : Familiarity with Google Blockly Custom Block creation and code generation concepts
References and Background Material:
- http://cmcrobotics.github.io/raspbuggy
- http://github.com/CMCRobotics/raspbuggy
- https://en.wikipedia.org/wiki/Logo_(programming_language)
- https://developers.google.com/blockly/
Prerequisites:
Python programming basics + Javascript + OpenCV / SimpleCV