Abstract

This project is part of the Distributed and Intelligent Disassembly of Products with Mobile Robots project launched by the research program of the Sparkling Science of the "Federal Ministry of Science and Research (BMWF)" with the collaboration of the Institute of Automation and Control, University of Vienna. It contributes to develop software and research on how to provide knowledge to a robotic to disassembly of objects. The fact of providing a robot with a certain ability to develop this task, requires a prior study of the current image processing techniques, with the aim of obtaining the right solution to solve the problem. This thesis shows a study of different image processing algorithms available nowadays. It also studies the possibility of adapting the software to be developed in an embedded platform, in order to avoid the robot to depend from a high performance PC. As a starting point for the development of the idea, it poses a simple problem: the disassembly of Duplo bricks structures. To address the difficult task of image processing, the well known OpenCV libraries created by Intel, currently in Open source, will be used. These libraries contain more than 500 functions. The problem of disassembling the Duplo bricks has been divided into 3 steps: object recognition, verification and feature extraction and calculation of its coordinates in the real world. For the object recognition, the system has been trained with pictures from different angles, backgrounds and lighting of the piece to be recognized. The complexity of this first stage lies on the fact that the Duplo bricks have a uniform color. Due to the difficulty involved in generating models that recognize the full bricks, it has been chosen to recognize the small hollow cylinders that serve as anchorage between bricks, getting an extra edge: Making possible in a future to recognize bricks with different number of cylinders. The verification and feature extraction has been done manually, as the functions provided by OpenCV were not quite optimal. This verification consists in checking if the founded cylinders are lined up in groups of 8 (in our particular case) forming a rectangle. The last step has been solved using a specific function that compares the obtained points in the picture with the points that define the object. After this last stage, and with the previous calibration of the camera, the translation and rotation matrices of the object in the real world are obtained. With these data, the robot is able to find with good precision the brick to take. The result of this Project is a completely functional code able to give the coordinates of the Duplo bricks got through a camera.