[es] El presente proyecto describe el diseño e implantación de un sistema formado por un robot colaborativo Yumi y una cámara de visión artificial, para la resolución de cubos de rubik de 3x3 y 2x2. El proyecto abarca todas las fases del proceso. partiendo de la selección de la cámara hasta la implantación final, incluyendo el diseño de los elementos auxiliares necesarios y la programación y comunicación de los distintos componentes que toman parte en el proyecto. El robot forma parte de una célula de montaje utilizada para la docencia en el departamento de Ingeniería de Sistemas y Automática de la Escuela de Ingeniería de Bilbao, y deberá de ser capaz de resolver el cubo de rubik sin interferir con los elementos que la componen, además de mantener un alto nivel de seguridad. Una vez diseñada la distribución de la célula, se utilizará el programa RobotStudio para simular el proceso. De esta forma se comprobará que los movimientos y trayectorias programadas son correctos y que el robot es capaz de realizarlos. A continuación, se implementará la estación real. Para ello, se realiza el diseño, impresión 3D y montaje de los elementos auxiliares necesarios, que permitirán colocar la cámara de visión artificial en posición. Con la cámara fijada, se programará el procesamiento de imágenes mediante la herramienta Matlab. De esta forma se podrá obtener la información del cubo necesaria para resolverlo, es decir, el tipo de cubo con el que se trabaja, su posición en la mesa (ya que el usuario puede depositarlo aleatoriamente en cualquier posición) y la manera en la que está desecho (es decir, cómo de desordenados están los colores de las piezas que conforman las caras del cubo). Partiendo de la información aportada por la cámara y siguiendo en Matlab, se programará un algoritmo que calcule los movimientos que resolverán cualquier configuración de los cubos de rubik de una forma eficiente. Hecho esto, se establecerá una conexión TCP/IP entre el robot y Matlab mediante la cual se le enviarán los movimientos a realizar para la resolución del cubo. Por último, se programará el robot real, implementando los movimientos programados mediante el simulador y validando el correcto funcionamiento de todo el sistema.

[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.