Sunteți pe pagina 1din 5

UNIVERSIDAD NACIONAL DE TRUJILLO– Ingeniería Mecatrónica 1

BRAZO ROBOTICO JUGADOR DE DAMAS INGLESAS


Álvarez Terrones, Bazán Quispe, Fernández Salazar, Miñano Alfaro, Rodríguez Ruiz, Sánchez del Rio, Santos
Pérez, Urbano Ramos.
Estudiantes de Ingeniera Mecatrónica
Universidad Nacional de Trujillo -Perú
Facultad de Ingeniería Mecánica

Resumen— En este trabajo presentamos un brazo II.1. OBJETIVOS ESPECÍFICOS


robótico de 5 grados de libertad, con la capacidad de  Construir e implementar un módulo de
poder jugar damas, para la captación de las imágenes reconocimiento de imágenes en movimiento,
se hizo uso de una cámara ip, estas imágenes que se que nos va a permitir reconocer las jugadas
tuvo del tablero, se le realizaron reconocimiento de realizadas por el contrincante en el tablero de
bordes así se pudo detectar la pieza, por la visión damas.
artificial se tendrá un algoritmo de búsqueda, para asi  Elaborar un algoritmo de búsqueda, enfocado en
determinar la mejor jugada el juego de damas que calcule si el próximo
movimiento a ejecutarse es el ganador, perdedor
o puede terminar en tablas, a fin de ganar el
I. INTRODUCCION juego.
 Elaborar un algoritmo de evaluación; enfocado
S i bien es cierto que ya existen programas de
ordenador que te permiten jugar cuando no tienes
en el juego de damas que calcule si el próximo
movimiento a ejecutarse es el ganador, perdedor
adversario, es decir, que te permiten jugar contra el
o puede terminar en tablas, a fin de ganar el
ordenador, estos adversarios, siguen siendo pantallas.
juego.
Y jugar contra pantallas es algo que, si bien los jóvenes
tienen bastante asimilado, y en su mayoría de hecho  Elaborar un algoritmo de toma de decisiones,
juegan a juegos virtuales, sino diariamente, al menos enfocado en el juego de damas que calcule si el
una vez semanalmente; para una gran mayoría de próximo movimiento a ejecutarse es el ganador,
personas adultas sigue siendo una barrera. Y para perdedor o puede terminar en tablas, a fin de
poder tumbar esa barrera, acaso ¿no sería interesante ganar el juego.
poder jugar físicamente en la mesa de tu salón? [1]
III. METODOLOGÍA
De esta forma, este trabajo presenta un sistema
mecatrónica compuesto por un brazo robótico que
Se realizó un algoritmo de visión artificial para jugar
juega damas de forma autónoma con un oponente. Es
damas, el cual consta del siguiente método
por ello, que la aplicación realizada se basa en un robot
representado a través de un diagrama de flujo; como
manipulador de tipo industrial, un sistema de visión
se muestra en la figura N° 1. [2]
artificial y un motor de juego basado en software libre.

II. OBJETIVOS

II.1. OBJETIVO GENERAL


Diseñar un brazo robótico de 5 GDL que pueda
jugar una partida de damas contra un ser humano,
por medio de visión artificial, dicho brazo deberá
conocer la jugada de su contrincante, utilizando el Figura N° 1: Diagrama de flujo del algoritmo de
lenguaje de Matlab. visión artificial para jugar damas
UNIVERSIDAD NACIONAL DE INGENIERÍA – Ingeniería Mecatrónica 2

IV. DESCRIPCIÓN DEL SISTEMA Asimismo, se utiliza una cámara IP para la detección
del estado de la partida del juego de damas, el cual
Se dispone de un brazo robot de 5 GDL como se puede realiza una captura del tablero y posición de las damas
observar en la figura N° 2. Los tres primeros GDL son en tiempo real e ingresa en un algoritmo realizado en
de rotación y proporcionan el control de posición, Matlab para determinar la posición de la dama que se
mientras que los últimos dos GDL proporcionan el va a mover y esa distancia ser utilizada por el brazo
control y orientación del electroimán en el efector final robot para que realice el respectivo movimiento de la
para el movimiento de las piezas(damas). Dichas dama seleccionada, tal como se muestra en la Figura
articulaciones son controladas por servomotores a fin N° 4.
de darle el movimiento adecuado para el movimiento
de las piezas.

Figura N° 4: Detección de figura para las piezas de


damas

V. DESARROLLO DEL PROYECTO


Figura N° 2: Brazo robot de 5 GDL realizado en
Solidworks
Procedemos primero como se observa en la Figura 1,
una detección de cuadros para saber cuál será el área
de trabajo en la cual seguirá la trayectoria el robot.

Figura N° 5: Detección de cuadros

Tener en consideración que para lograr esto, se debe


Figura N° 3: Implementación del brazo robot de 5 antes pasar la imagen tomada por la cámara, a una
GDL
UNIVERSIDAD NACIONAL DE TRUJILLO– Ingeniería Mecatrónica 3
escala de grises, esto es más notorio en la Figura 2, while apagar==0
donde además de pasar la imagen a una escala de
cam=ipcam('http://192.168.43.186:4747/v
grises, se procede a la detección de formas siendo
ideo/mjpg.cgi');
esta una circunferencia.
hImage=image(zeros(480,640,3),'Parent',
handles.axes1);
preview(cam,hImage);

end

B. Algoritmo para la detección de cuadrados del


tablero de damas:
Se implementa un código en Matlab para realizar una
Figura N° 6: Detección de figura para las piezas de captura en tiempo real del estado actual del tablero de
damas Damas y se procede luego a realizar la segmentación
del sistema para la detección de los cuadrados del
tablero utilizando el borde Canny y la transformada de
Como se observa en la figura 3, se hace un
Hough para la detección de líneas.[3]
reconocimiento de puntos, para cada uno de los
cuadros inferiores anteriormente reconocido. function pushbutton3_Callback(hObject,
eventdata, handles)
global apagar cam
A=snapshot(cam);
A=snapshot(cam);
f=rgb2gray(A*0.1);
f=f(160:480,1:640);
%Canny
[g,t]=edge(f, 'canny',[0.1 0.3]);
[H,theta,rho]=hough(g);

hp=houghpeaks(H,15);
Figura N° 7: Detección de cuadros y puntos para las
lines =
piezas de damas
houghlines(g,theta,rho,hp,'FillGap',1,'
MinLength',5);

VI. IMPLEMENTACIÓN DEL [label,n]=bwlabel(g);


ALGORITMO PARA EL stats=regionprops(g,'Perimeter','Area',
'Centroid','BoundingBox','MajorAxisLeng
PROCESAMIENTO DE IMÁGENES th','MinorAxisLength');
A. Algoritmo para la captura de la imagen en diametro= mean([stats.MajorAxisLength
tiempo real: stats.MinorAxisLength],2);
Se implementa un código en Matlab para activar la
cámara mediante un código IP y posteriormente se axes(handles.axes2)
imshow(g)
empieza a mostrar el tablero en tiempo real para la
hold on
captura del estado de las piezas del tablero de damas j=1;
en tiempo real. for k=1:length(stats)

function pushbutton1_Callback(hObject, thisboundingbox=stats(k).BoundingBox;


eventdata, handles) if stats(k).Area<400 &
global apagar cam stats(k).Area>145
UNIVERSIDAD NACIONAL DE INGENIERÍA – Ingeniería Mecatrónica 4

orden(j)=k; VII. CONCLUSIONES


j=j+1;
 Se diseñó un brazo robótico de 5 GDL que pueda
end
end jugar una partida de damas contra un ser
for l=1:length(orden) humano, por medio de visión artificial, dicho
nuevo(l,:)=stats(orden(l)).Centroid; brazo deberá conocer la jugada de su
end contrincante, utilizando el lenguaje de Matlab.
crear=[nuevo orden'];
 Se construyó e implementó un módulo de
[~,idx]=sort(crear(:,1,1));
data1=crear(idx,:,:); reconocimiento de imágenes en movimiento,
[l m]=size(data1) que nos va a permitir reconocer las jugadas
data2=data1(1:l,1:m) realizadas por el contrincante en el tablero de
for m=1:l damas.
plot(data2(m,1),data2(m,2),'b*');
 Se elaboró un algoritmo para determinar el
end
estado actual del tablero y aplicar los
conocimientos adquiridos en el curso como la
C. Algoritmo para la detección de círculos del segmentación de imágenes; y luego determinar
tablero de damas: la posición de la pieza a mover.
Se implementa un código en Matlab para procesar la  Se elaboró un algoritmo de búsqueda, enfocado
imagen capturada y luego de ser identificado los en el juego de damas que calcule si el próximo
cuadrados del tablero de damas se procede a la movimiento a ejecutarse es el ganador, perdedor
identificación de bordes de las damas que están en o puede terminar en tablas, a fin de ganar el
juego en el tablero para que luego se proceda a juego.
determinar la posición de la dama a mover.[3]  Se elaboró un algoritmo de evaluación;
function pushbutton2_Callback(hObject,
enfocado en el juego de damas que calcule si el
eventdata, handles) próximo movimiento a ejecutarse es el ganador,
global apagar cam perdedor o puede terminar en tablas, a fin de
apagar=0; ganar el juego.
A=snapshot(cam);  Se elaboró un algoritmo de toma de decisiones,
% A=imread(A);
enfocado en el juego de damas que calcule si el
A = rgb2gray(A);
A=A(160:480,1:640)*3; próximo movimiento a ejecutarse es el ganador,
bw=imbinarize(A); perdedor o puede terminar en tablas, a fin de
size(A) ganar el juego.
axes(handles.axes2)
imshow(A);
% Rmin =1;
% Rmax = 400; VIII. REFERENCIAS
Rmin1 =28;
Rmax1 = 50; [1] Urting, D., Berbers, Y.: Marineblue: A low-
[centersDark, radiiDark] = cost chess robot. In: Robotics and
imfindcircles(bw,[Rmin1
Applications. pp. 76–81. Citeseer (2003)
Rmax1],'ObjectPolarity','dark');
[~,idx]=sort(centersDark(:,1));
data=centersDark(idx,:); [2] Bolton, W.: Mechatronics: Electronic Control
data1=radiiDark(idx,:); Systems in Mechanical and Electrical
viscircles(centersDark, Engineering. Essex. Pearson (2011)
radiiDark,'EdgeColor','b');
UNIVERSIDAD NACIONAL DE TRUJILLO– Ingeniería Mecatrónica 5
[3] Rafael Gonzáles, Richard Woods y Steven
Eddins: Digital Image Proccesing Using
Matlab. Gatesmark Publishing (2009)

Álvarez Terrones, Daniel. Nació el 11 de Febrero de


1996, en la ciudad de Trujillo, departamento de La Libertad.
Actualmente es estudiante del IX ciclo de la carrera de
Ingeniería Mecatrónica en la Universidad Nacional de
Trujillo.

Bazán Quispe, Jheremy. Nació el 1 de Noviembre de


1997, en la ciudad de Trujillo, departamento de La Libertad.
Actualmente es estudiante del IX ciclo de la carrera de
Ingeniería Mecatrónica en la Universidad Nacional de
Trujillo.

Fernández Salazar, Pablo. Nació el 12 de Agosto de


1997, en la ciudad de Trujillo, departamento de La Libertad.
Actualmente es estudiante del IX ciclo de la carrera de
Ingeniería Mecatrónica en la Universidad Nacional de
Trujillo.

Miñano Alfaro, Héctor Eduardo. Nació el 21 de Febrero


de 1997, en la ciudad de Trujillo, departamento de La
Libertad. Actualmente es estudiante del IX ciclo de la
carrera de Ingeniería Mecatrónica en la Universidad
Nacional de Trujillo.

Rodriguez Ruiz, Hugo Enrique. Nació el 17 de Junio de


1991, en la ciudad de Cartavio, departamento de La
Libertad. Es técnico egresado de TECSUP y actualmente
es estudiante del IX ciclo de la carrera de Ingeniería
Mecatrónica en la Universidad Nacional de Trujillo.

Sanchez del Rio, Josué. Nació el 16 de Julio de 1996, en


la ciudad de Trujillo, departamento de La Libertad.
Actualmente es estudiante del IX ciclo de la carrera de
Ingeniería Mecatrónica en la Universidad Nacional de
Trujillo.

Santos Pérez, William David. Nació el 14 de Julio de


1996, en la ciudad de Trujillo, departamento de La Libertad.
Actualmente es estudiante del IX ciclo de la carrera de
Ingeniería Mecatrónica en la Universidad Nacional de
Trujillo.

Urbano Ramos, Wilmer Eddy. Nació el 31 de Octubre de


1995, en la ciudad de Trujillo, departamento de La Libertad.
Actualmente es estudiante del IX ciclo de la carrera de
Ingeniería Mecatrónica en la Universidad Nacional de
Trujillo.

S-ar putea să vă placă și