[en] The following project describes the design and implementation of a system consisting of a Yumi collaborative robot and an artificial vision camera, for the resolution of both the 3x3 and 2x2 rubik´s cubes. The project englobes all phases of the process, starting from the camera selection to the final implementation, including the design of the necessary auxiliary elements and the programming and communication of the different components that take part in the project. The robot is part of an assembly cell used with the purpose of teaching in the department of systems and automation engineering of the Bilbao engineering school and should be able to solve the rubik´s cube without interference with the elements that compose it, in addition to maintaining a high level of security. Once the cell distribution is designed, the RobotStudio program will be used to simulate the process. This way it will be verified that the movements and programmed paths are correct and that the robot is capable of carrying them out. Hereunder, the real station will be implemented. For this, the design, 3D printing and assembly of the necessary auxiliary elements will be carried out, which will allow to place the artificial vision camera in position. With the camera fixed in its place, the image processing will be programed using the Matlab tool. Thus obtaining information about the cube necessary to solve it, that is to say, the type of cube we are working with, its position on the table (since the user can deposit it randomly in any position) and the way that the cube its undone (the way the colors of the different pieces that make up the cube faces are positioned). Starting from the information collected from the camera and following on Matlab, an algorithm will be programmed to calculate the movements that will solve any configuration of rubik´s cubes in an efficient way. Done this, a TCP/IP connection will be established between the robot and Matlab through which the movements to be carried out for the resolution of the cube will be sent. Finally, the real robot will be programmed, implementing the movements programmed through the simulator and validating the correct operation of the entire system.

[eu] Proiektu honek Yumi robot kolaboratibo batek eta ikusmen artifizialeko kamera batek , 3x3 eta 2x2 rubik kuboak ebazteko osatutatzen duten sistema baten diseinua eta ezarpena deskribatzen du. Proiektuak prozesuaren fase guztiak hartzen ditu, kamera eta robota aukeratzetik, azkenengo ezarpenera arte; beharrezko elementu osagarrien diseinua eta proiektuan parte hartzen duten osagaien programazioa eta komunikazioa barne. Robota Bilboko Ingeniaritza Eskolako Sistemen eta Automatika Sailean irakaskuntzarako erabiltzen den muntaia-zelula baten parte da, eta rubik kuboa konpontzeko gai izan behar du, hura osatzen duten elementuekin interferentziarik sortu gabe, eta segurtasun-maila handia izan maintenduz. Zelularen banaketa diseinatu ondoren, RobotStudio programa erabiliko da prozesua simulatzeko. Horrela, programatutako mugimendu eta ibilbideak zuzenak direla eta robota horiek egiteko gai dela egiaztatuko da. Ondoren, estazio erreala ezarriko da. Horretarako, ikusmen artifizialeko kamera posizioan jartzeko beharrezkoak diren osagarrien 3D diseinua, inprimaketa eta muntaketa egingo da. Kamera finkatuta, irudi-prozesamendua Matlab tresnaren bidez programatuko da. Hartara, kubo horri buruzko informazioa lortuko da, hau da, zer kubo-motarekin lan egiten den, zer posiziotan dagoen mahaian jarrita (erabiltzaileak edozein posiziotan utz baitezake ausaz) eta nola dagoen nahastuta (hau da, kuboaren aurpegiak osatzen dituzten piezen koloreak nola dauden kokatuta). Kamerak emandako informaziotik abiatuta eta Matlab-en jarraituz, rubik kuboa edozein konfiguraziotik modu eraginkorrean ebatziko duen mugimenduak kalkulatzeko algoritmo bat programatuko da. Hori egin ondoren, robotaren eta Matlab-en artean TCP/IP konexio bat ezarriko da, kuboa ebazteko egin beharreko mugimenduak bidaltzeko. Azkenik, robot erreala programatuko da, simulagailuaren bidez programatutako mugimenduak inplementatuz eta sistema osoaren funtzionamendu egokia balidatuz.