Robotic vision for elementary objects
This project was taken under Prof. Jacques Boonaert of the Productique department at Ecole des Mines de Douai. The aim was to develop a guidance program to implement 'artificail vision' for a robot. The robot was a basic industrial level with a single arm. The arm had three degrees of freedom (one rotational, two translational) and hence could reach any position within its working area.
The robotic arm was to track and hold only simple objects (like a cube, sphere, cuboid etc) or objects with such primitive shapes as components. The popular OpenCV library (distributed freely by Intel) was used to create the application package with Visual C++ to prive the User Interface.
The basic principle used was a frame-by-frame (at a certain capturing rate) processing. Based on relative movement between the robot's camera and the target object, outlines of all significantly moving objects were kept track of. An object could be made out to be 'significantly' moving by subtracting two successive frame matrices (converted to grayscale) and noting high pixel values i.e. gray spots. The camera (hence the arm) would keep track of a target object till the outline was 'big' enough in a particular frame. The property of 'bigness' is decided by the relative position of the camera with the actual holding device on the arm. The outlines of target objects were kept in a database (either as classifiers or matrices), which were used for comparing with the outlines tracked.

Click here to view the project report