Está en la página 1de 226

Benemérita Universidad Autónoma

de Puebla

Facultad de Ciencias de la Computación

INVESTIGACIÓN Y
APLICACIONES DE LAS
CIENCIAS COMPUTACIONALES
BNEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA

José Alfonso Esparza Ortiz


Rector

René Valdiviezo Sandoval


Secretario General

María Del Carmen Martínez Reyes


Vicerrectora de Docencia

Flavio Marcelino Guzmán Sánchez


Encargado de despacho
Vicerrectoría de Extensión y Difusión de la cultura

Ygnacio Martínez Laguna


Vicerrector de Investigación y Estudios de posgrado

Ana María Dolores Huerta Jamarillo


Directora de Fomento Editorial

Marcos González Flores


Director de la Facultad de Ciencias de la Computación.

Primera Edición, Otoño 2016


ISBN: 978-607-525-218-6
Benemérita Universidad Autónoma de Puebla
Dirección de Fomento Editorial
4 sur 104, Col. Centro
Puebla, Pue. CP. 72000
Teléfono y fax 01 222 246 85 89
Hecho en México
Benemérita Universidad Autónoma
de Puebla

Facultad de Ciencias de la Computación

INVESTIGACIÓN Y
APLICACIONES DE LAS
CIENCIAS COMPUTACIONALES

Realizado en
Puebla, Pue. México
Otoño 2016

3
Benemérita Universidad Autónoma
de Puebla

Facultad de Ciencias de la Computación

INVESTIGACIÓN Y
APLICACIONES DE LAS
CIENCIAS COMPUTACIONALES

Editores:
Carmen Santiago Díaz
Lourdes Sandoval Solís
Pilar Amador Alarcón
Mario Anzures García
Graciano Cruz Almanza
Gustavo Rubín Linares

Benemérita Universidad Autónoma de Puebla


Facultad de Ciencias de la Computación
México 2016
PREFACIO

Debido a su naturaleza científica y tecnológica el área de Ciencias de la


Computación, siempre ha estado en constante cambio, cada día se
tienen noticias en materia de tecnología y que son el punto de partida
para el desarrollo y aplicación de los conocimientos teóricos que se
conceptualizan en la academia, sin embargo muchos sectores de nuestra
sociedad realmente tienen una necesidad de resolver problemas en los
que los especialistas de esta área pueden aplicar sus conocimientos y
habilidades.
Sistemas de prótesis, accesorios para personas con alguna discapacidad,
algoritmos y propuestas para sistemas de seguridad informática, e
incluso aplicaciones que buscan resolver o mejorar las condiciones de
algún servicio. Realmente el campo de aplicaciones de esta maravillosa
área que son las ciencias computacionales es casi en su totalidad un
terreno fértil, debido a que hay muchos problemas que resolver o bien
nuevas estrategias para resolverlos, aun cuando se mejoren los sistemas
casi siempre el camino sigue abierto en el sentido de optimizarlo.
Si bien es cierto que la investigación es una de los sectores de nuestra
sociedad que ha sido duramente castigado económicamente a nivel del
presupuesto destinado por las administraciones estatales y federales,
también debemos mencionar que es una responsabilidad de la academia
y de los investigadores servir a la sociedad y para ello afortunadamente
se pueden generar recursos a fin de que esta actividad sea
autosustentable en la medida que se den las condiciones de vinculación
y de competencia en el mercado de consumo de nuestra sociedad.
Esta edición presenta una serie de trabajos de investigación, desarrollo
y aplicación por especialistas en diversos campos de las Ciencias de la
Computación, se presentan resultados y prototipos, que se están
desarrollando para responder a algunas necesidades de nuestra
sociedad.

Gustavo Trinidad Rubín Linares

5
CONTENIDO
Capítulo 1 8
Algoritmos Anti-Forenses para Manipular la Fuente de Adquisición de una
Imagen de Dispositivo Móvil
Jocelin Rosales Corripio, Miguel Á. León Chávez, Ana L. Sandoval
Orozco, Luis J. García Villalba
Capítulo 2 22
Analizador de Grafos para Redes de Afiliación
Pedro Bello López, Meliza Contreras González, Miguel Rodríguez
Hernández, Alejandro F. Martínez Montes
Capítulo 3 32
Identificación de Cambios Estructurales en Imágenes Satelitales
Empleando PCNN
Aida A. Aparicio Arroyo, Aldrin Barreto Flores, Salvador E. Ayala Raggi,
Verónica E. Bautista López
Capítulo 4 41
Sensor de Temperatura, Humedad e Iluminancia con Conexión a Internet
basado en Arduino
Alejandro García Santiago, Víctor M. Méndez Álvarez, Vicente Y. Ponce
Hinestroza, José De J. Salazar Arrieta, Adán Torralba Ayance, Juan C.
Villegas Hernández, Aldrin Barreto Flores, Verónica E. Bautista López,
Carlos Escamilla Weinmann
Capítulo 5 48
Clasificador DD para Datos Funcionales
Gladys Linares Fleites, Ma. de Lourdes Sandoval Solís, Brenda C. Matías
Castillo
Capítulo 6 57
Control Acotado de la Orientación de un Helicóptero con Cuatro Rotores
Juan Díaz Téllez, José M. Gutiérrez Arias, José E. Flores Mena
Capítulo 7 68
Aplicación de Técnicas de Minería de Datos para Predicción de
Desempeño Académico
María A. López Garrido, Erika Y. Morales Mateos, José A. Hernández
Aguilar, Carolina González Constantino
Capítulo 8 74
Clasificador Bayesiano Ingenuo en RapidMiner
Imelda Hernández Baez, María de L. Sandoval Solís, Marcela Rivera
Martínez, Luis R. Marcial Castillo
Capítulo 9 88
Generación de Mapas de Zonas de Desastres Mediante Trabajo
Colaborativo para Búsqueda y Rescate
Yasmin Morales Zitlapopoca, Nancy Montalvo Montalvo, Abel A. Rubín
Alvarado, Gustavo Rubín Linares, Rodrigo A. Cuevas Vede
Capítulo 10 93
Sensado Dinámico de Temperatura en Composta
Carolina Jiménez, Carlos Parra, Gerardo Juárez, Aldrin Barreto,
Salvador E. Ayala, Arturo Parra,Verónica E. Bautista
Capítulo 11 109
Sistema de Aprendizaje Incremental para Reconocimiento Automático de
la Edad Ósea
Fernando Montoya Manzano, Salvador E. Ayala Raggi, Susana Sánchez
Urrieta, Aldrin Barreto Flores, José F. Portillo Robledo, Patricia Ayala
Raggi
Capítulo 12 120
Dispensador Automático de Alimento desde un Servidor Web
Arturo Páez López, Mauricio Quintero Espinoza, Aldrin Barreto Flores
Capítulo 13 129
Sistema de Entrenamiento Virtual usando Leap Motion
Jorge Mateo Juárez, Aldrin Barreto Flores, Verónica E. Bautista López,
Salvador E. Ayala Raggi
Capítulo 14 136
Red Bluetooth de Alarma de Puertas
Daniel Treviño Sánchez, Oscar I. Morales Ramírez, Lessia M. Saynes
Torres, Aldrin Barreto Flores, Verónica E. Bautista López, Salvador E.
Ayala Raggi
Capítulo 15 143
Robot Recolector de Basura para Lagos y Lagunas “JARV-1”
José L. Hernández Ameca, Elsa Chavira Martínez, José Ítalo Cortez,
Gregorio Trinidad García, Lourdes Sandoval Solís, Minerva Hernández
Ameca, Alan J. Fonseca Barrera, Ricardo Pastor Hernández, Valeria
Temozihui Tlahuel
Capítulo 16 149
Manipulador Robótico de Residuos Peligros Biológico-Infecciosos.
José L. Hernández Ameca, Elsa Chavira Martínez, José Ítalo Cortez,
Gregorio Trinidad García, Gustavo Rubín Linares, Minerva Hernández
Ameca, Alan J. Fonseca Barrera, Ricardo Pastor Hernández, Valeria
Temozihui Tlahuel
Capítulo 17 155
Evaluación Colaborativa de Proyectos de Investigación + Desarrollo
basada en un Modelo Semántico
Luz A. Sánchez Gálvez, Mario Anzures García, Omar Hernández
Sarmiento
Capítulo 18 167
Gestión Colaborativa de Eventos Académicos basada en un Patrón
Arquitectónico
Luz A. Sánchez Gálvez, Mario Anzures García, Ana P. Arcos Rodríguez,
Erick Hidalgo Sánchez
Capítulo 19 181
Interfaz para el Lenguaje de Señas
Miguel Vázquez Vázquez, Luz A. Sánchez Gálvez, Mario Anzures García
Capítulo 20 194
Aplicación de Redes Neuronales en Reconocimiento de Imágenes
Stephanie Escalante Ramírez, José M. Suárez Arana, Aldrin Barreto
Flores
Capítulo 21 202
Sistema de Rehabilitación basado en un Exoesqueleto para Mano.
(S.R.E.M.)
Caleb Jiménez, Jessica López, Alan Castillo, Emmanuel Francisco,
Alejandro Rubín, Gustavo Rubín-Linares
Capítulo 22 207
Modelado Dinámico de un Sistema de Paneles Solares
Pilar Amador Alarcón, Gustavo Rubín Linares, Pilar Merino Rosas,
Rodrigo Cuevas Vede, Erick López Chicatto

7
Algoritmos Anti-Forenses para Manipular la Fuente de
Adquisición de una Imagen de Dispositivo Móvil

Jocelin Rosales-Corripio12, Miguel Á. León-Chávez2,


Ana L. Sandoval-Orozco1, Luis J. García-Villalba1
1
Grupo de Análisis, Seguridad y Sistemas (GASS)
Departamento de Ingeniería del Software e Inteligencia Artificial (DISIA)
Facultad de Informática, Despacho 431, Universidad Complutense de Madrid (UCM)
Calle Profesor José García Santesmases, 9, Ciudad Universitaria, 28040 Madrid, España
2
Facultad de Ciencias de la Computación (FCC)
Benemérita Universidad Autónoma de Puebla (BUAP)
14 sur y Av. San Claudio, 72570 Puebla, México
jocelinr@ucm.es,mleon@cs.buap.mx,{asandoval, javiergv}@ fdi.ucm.es

Resumen.Hoy en día las imágenes digitales juegan un papel importante en


nuestra sociedad. La presencia de cámaras digitales en los dispositivos móviles
está creciendo a un ritmo imparable,causando que la mayoría de imágenes
digitales provengan de este tipo de dispositivos. Mientras el desarrollo de la
tecnología permite que el proceso de generación sea más sencillo, al mismo
tiempo facilita la falsificación. Es por esto, que el análisis forense de imágenes
digitales está ganando importancia. En este artículo se propone un par de
algoritmos basados en el ruido del sensor y en la transformada“wavelet”, el
primero para eliminar la posibilidad de identificar el modelo y marca del
dispositivo móvil que generó una imagen y el segundo para falsificar la
identidad de una imagen dada.
Palabras Clave: Análisis anti-forense de imágenes, Análisis forense de
imágenes, Anonimato de imágenes, Falsificación de imágenes, Patrón de ruido
del sensor PRNU, Wavelet.

1 Introducción

Aunque las imágenes fotográficas pueden ser consideradas parte de la verdad, ya que
son hechos reales captados por dispositivos electrónicos (cámaras digitales), nunca ha
sido tan fácil modificar las imágenes como lo es hoy en día, dada la existencia de
potentes y sofisticados programas de software para este fin. Esta facilidad de
manipulación plantea interrogantes sobre la integridad y veracidad de las imágenes
fotográficas.
Actualmente, las ventas de dispositivos móviles siguen aumentando en todo el
mundo. En nuestro día a día es habitual ver cómo se realizan y usan fotografías de
este tipo de dispositivos para una gran diversidad de situaciones (vida personal,
noticias, pruebas judiciales, aplicaciones para teléfonos móviles, etc.).
Este progreso hace que el tratamiento y la toma de fotografías con este tipo de
dispositivos puedan crear situaciones problemáticas o beneficiosas en las
distintasrealidades. Muchos estiman que este tipo de cámaras facilitan la proliferación
de crímenes contra la privacidad y la seguridad de la información (robo con tarjetas
de crédito, secuestros, piratería, pornografía infantil, espionaje industrial, etc.). De
hecho, una de las principales razones de la existencia de dispositivos sin cámaras
fotográficas se debe a que diversas compañías, organizaciones o países poseen
normas que prohíben o limitan su uso[1].
Por todo lo anterior, el análisis forense de imágenes digitales se ha convertido en
un tema de interés en los últimos años. El análisis forense surge con la idea de
restablecer la confiabilidad en las imágenes digitales, que de otro modo se
consideraban muy fácilmente modificables. Como en la mayoría de campos de
estudio existe una contraparte, en este caso, personas que hacen esfuerzos para
manipular las imágenes en su propio beneficio usando el conocimiento del análisis
forense de imágenes para borrar o incluso suplantar las huellas o rastros que se
utilizan para determinar la identidad de las imágenes. Muchos de los algoritmos
forenses existentes en la literatura no fueron diseñados teniendo en cuenta ese tipo de
comportamiento y como consecuencia son fáciles de engañar.
Continuando con el trabajo realizado en [2] donde se utilizaron con éxito el ruido
del sensor y la transformada wavelet para identificar la fuente de imágenes generadas
por dispositivos móviles,en particular de teléfonos celulares, este artículo propone dos
algoritmos anti-forenses:uno para destruir la identidad de la imagen y otro para
falsificar la identidad de una imagen dada. El objetivo del primer algoritmo es
convertir una imagen a anónima, es decir eliminar tanto como sea posible cualquier
rastro que permita a un analista forense la identificación de la fuente (modelo y marca
del teléfono celular) de la imagen. El objetivo del segundo algoritmo es falsificar la
fuente de una imagen, en otras palabraslograr que al hacer un análisis forense no sea
posible identificar la fuente real de la imagen y que ésta aparente pertenecer a otra
fuente.
Estos algoritmos son comparados con los usados por la herramienta “PRNU
Decompare”[3] que permiten la eliminación y la suplantación del patrón de ruido del
sensor. Sin embargo, la herramienta requiere como entrada una fotografía de un
marco oscuro y un mínimo de30 imágenes de superficies planas iluminadas
uniformemente mientras que los algoritmos propuestos requieren solamente una
imagen del dispositivo víctima y no requieren tener acceso a él. Los resultados
obtenidos se compararon usando la herramienta “NFI PRNU Compare”[4] la cual
permite comparar los patrones del ruido del sensor de varias imágenes utilizando
como métrica la correlación. Además, se usaron las métricas de calidad de imagen
(ImageQualityMetrics (IQM)) para evaluar objetivamente la pérdida de calidad de las
imágenes cuya identidad ha sido destruida con respecto a las imágenes originales.
Elresto del documento se estructura en 6 secciones. La sección II explica
brevemente el proceso de formación de una imagen digital. La sección III resume los
principales trabajos relacionados con el análisis forense de imágenes generadas por
dispositivos móviles. Los ataques a las técnicas de análisis forense de imágenes
digitales se presentan enlasecciónIV.EnlasecciónVsedescribenlosalgoritmos para
destruir la identidad y falsificar la identidad de una imagen dada. La sección VI
describe los experimentos realizados y se analizan los resultados obtenidos.
Finalmente, la sección VII presenta las principales conclusiones del trabajo así como
el trabajo a futuro.

2 Formación de una imagen digital

Para la comprensión del análisis forense de imágenes digitales es fundamental


conocer en detalle el proceso de adquisición de imágenes en las cámaras digitales, el
cual se resume en la Fig. 1.

Fig. 1. Proceso de generación de una imagen en una cámara digital.

Aunque muchos de los detalles de la segmentación o pipeline de una cámara


pertenecen a cada fabricante, la estructura general es la misma en todas ellas. El
pipeline de una cámara digital consiste básicamente en un sistema de lentes, un

9
conjunto de filtros, una matriz de filtros de color (Color FilterArray (CFA)), un
sensor de imagen y un procesador de imagen digital (Digital ImageProcessor (DIP)).
Para generar una imagen digital, en primer lugar, el sistema de lentes recoge la luz
de la escena controlando la exposición, el enfoque y la estabilización de imagen.
Seguidamente, la luz entra en la cámara a través de la lente, pasando por una
combinación de filtros (por lo menos infrarrojos y anti-aliasing) para garantizar la
máxima calidad de la imagen. Con el objetivo de producir una imagen en color se
utiliza la CFA. Después, la luz se enfoca sobre el sensor de imagen que es una matriz
de elementos sensibles a la luz llamados píxeles. La incidencia de la luz contra los
píxeles genera una señal analógica proporcional a la intensidad de la luz, la cual se
convierte en una señal digital para ser procesada por el DIP. Por último, la imagen
final completa se forma por el DIP, el cual lleva a cabo algunas operaciones tales
como la interpolación cromática (demosaicing), corrección de puntos blancos,
corrección gamma, compresión, etc., con el objetivo de producir una imagen
visualmente agradable.

3 Técnicas de análisis forense en imágenes

Las tareas de análisis forense de imágenes digitales se dividen, de acuerdo a su


objetivo, en las siguientes ramas[5]: verificación de integridad, recuperación de la
historia de procesamiento, clasificación basada en la fuente, agrupación por
dispositivo fuente e identificación de la fuente [6].
Para el diseño de técnicas y algoritmos en cualquiera de estas ramas se aprovechan
algunas características especiales de las imágenes creadas concámaras digitales que
sirven como herramienta para el análisis forense. En[7] y [8]se realizan estudios
delascaracterísticasquepuedenserobjetodeanálisisforense en dispositivos móviles.
Con respecto a la rama de identificación de la fuente en [9] se muestran a detalle
los estudios realizados en el área. Este trabajo se centra en los ataques contra una de
las técnicas en el campo de la identificación de la fuente: la basada en el ruido del
sensor. Estas técnicas se dividen principalmente en dos ramas: defectos de píxel y
patrón de ruido del sensor (Sensor PatternNoise (SPN)). En la primera se estudian los
defectos de píxel, los píxeles calientes, los píxeles muertos, los defectos de fila o
columna y los defectos de grupo. En la segunda se construye un patrón del ruido
promediando los múltiples residuos de ruido obtenidos mediante algún filtro de
eliminación de ruido. La presencia del patrón se determina utilizando algún método
de clasificación como correlación o máquinas de soporte vectorial(Support Vector
Machine (SVM)).

4 Ataques al análisis forense de imágenes

Encomparaciónconeldestacadopapeldelasimágenes digitales en la sociedad


multimedia de hoy en día, la investigación en el campo de la autenticidad de la
imagen se encuentra en una fase preliminar. La mayoría de las publicaciones en este
campo emergente carecen de discusiones rigurosas y robustas contra los falsificadores
estratégicos, que prevén la existencia de técnicas forenses [10].
Eláreaqueseencargadeestudiar losataquesalastécnicas
deanálisisforensedeimágenesesconocidacomo“counter-forensics”. Los ataques contra
los algoritmos forenses de imágenes digitales son aquellas técnicas cuyo objetivo es
confundir sistemáticamentealosprocedimientosdeidentificaciónde la fuente de la
imagen o de detección de manipulaciones maliciosas en las imágenes. Estos ataques
pueden tener uno de los siguientes objetivos: camuflaje de post-procesamientos
maliciosos sobre la imagen o manipulación de la identificación de la fuente de la
imagen.
Con respecto al objetivo de la manipulación de la identificación de la fuente de la
imagen, así como para el proceso de identificación de la fuente, se utiliza
generalmente el ruido del sensor extraído de las imágenes. Un ataquea esta técnica
consiste en eliminar todo el ruido del sensor. Dando un paso más adelante, se podría
pensar en la posibilidad de eliminar el ruido del sensor y sustituirlo por el ruido del
sensor de otra cámara. Por lo tanto este objetivo se puede dividir en dos ramas: la
destrucción de la identidady la falsificación de la identidad de la imagen.
A continuación, se describen algunos de los conceptos generales del área de la
manipulación de la identificación de la fuente.

4.1 Destrucción de la identidad de una imagen

Así como para el proceso de identificación de la fuente


seusalaextraccióndelruidodelsensorenlaimagen,un contraataque a esta técnica consiste
en la eliminación delruidodelsensor.
En [10] se demostró que la resta de las características del dominio
“wavelet”delasimágenesnoessuficienteparaeliminarel ruido de una imagen, además de
que este procedimiento deja rastros visibles sobre la imagen. Existe otro método
bastante conocido para la eliminación del ruido de una imagen llamado corrección de
sensibilidad (flatfielding). Este método se usa típicamente en astronomía o en el
proceso de escaneado de planos para mejorar la calidad de las imágenes. El
“flatfielding” se realiza en base a los dos principales componentes del ruido de la
imagen: el ruido de patrón fijo (FixedPatternNoise (FPN)) y el ruido de respuesta no
uniforme (Photo Response Non Uniformity (PRNU)).
Existen varias fuentes de ruido e imperfecciones, éstos son introducidosen
diferentes etapas del pipeline de creación de una imagen.Incluso si se toma una
imagen uniforme y completamente iluminadaes posible ver pequeños cambios en la
intensidad entre los píxeles.
El patrón de ruido en una imagen se refiere a cualquier patrón espacial que no
cambia de una imagen a otra y está compuesto por[11]:el ruido espacial FPN que es
independiente de la señaly el ruido espacialPRNUprovocado por la diferencia de
respuesta de cada píxel a la señal incidente.
El ruido FPN se genera por una corriente eléctrica relativamente pequeña que fluye
a través de los sensores aun cuando no reciben luz, a ésta se le denomina corriente de
oscuridad; además depende de la exposición y la temperatura. Debido a que el ruido
del patrón fijo es un ruido independiente aditivo, algunas cámaras lo eliminan
automáticamente restando un marco oscuro a las imágenes que generan.
El ruido PRNU es la parte dominante del patrón de ruido de las imágenes y es un
ruido dependiente multiplicativo. Este ruido está formado principalmente por la
uniformidad de pixel (Pixel Non-Uniformity(PNU)) y los defectos de baja frecuencia
como la configuración del zoom y la refracción de la luz en las partículas de polvo y
lentes.
El ruido PNU es la diferencia de sensibilidad a la luz entre los píxeles de la matriz
del sensor. Se genera por la falta de homogeneidad de las obleas de silicio y las
imperfecciones durante el proceso de fabricación del sensor. Debido a su naturaleza y
origen es muy poco probable que incluso los sensores procedentes de la misma oblea
presenten patrones PNU correlacionados. Este ruido no se ve afectado por la
temperatura ambiente ni por la humedad.El ruido PNU es normalmente más común,
complejo y significativo en los sensores de tipo CMOS (Complementary Metal Oxide
Semiconductor) debido a la complejidad de la circuitería de la matriz de píxeles. Los
sensores CMOS son los más comunes en los dispositivos móviles.
El ruido FPN se calcula con la ecuación (1) en términos de un marco oscuro 𝑑
promediando 𝑑 imágenes 𝑑𝑑𝑑𝑑𝑑𝑑𝑑 capturadas en un ambiente completamente
oscuro que se puede emular cubriendo completamente el lente de la cámara:
𝑑 = 1/𝐾 ∑▒𝑥_𝑜𝑠𝑐𝑢𝑟𝑎 (1)

11
El ruido PRNU se calcula con la ecuación (2) en términos de un marco plano
(flatfield) 𝑑 promediando 𝑑 imágenes 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 de una escena iluminada
homogéneamente. A las 𝑑 imágenes se les elimina el ruido FPN mediante la resta del
marco oscuro 𝑑antes de promediarlas.
𝑓 = 1/𝐿 ∑_𝐿▒〖〖(𝑥〗_𝑖𝑙𝑢𝑚𝑖𝑛𝑎𝑑𝑎 − 𝑑〗) (2)
Como se describe en [10] y [12] los atacantes pueden intentar evitar la
identificación correcta de la fuente ya que existe la posibilidad de extraer y estimar la
huella de una imagen mediante la extracción del FPN y PRNU de una cámara digital.
La destrucción de la huella de una imagen 𝑑 generada con una cámara específica
se realiza con la ecuación (3) restando a la imagen original 𝑑 el marco oscuro 𝑑 y
dividiendo el resultado de la resta entre el marco plano.
𝑥 ̃ = (𝑥 − 𝑑)/𝑓 (3)
A pesar de que los resultados obtenidos con esta técnica son buenos, se presentan
algunos inconvenientes:

 Llevar a cabo una corrección de sensibilidades perfecta en un gran número de


fotos es difícil ya que los parámetros para calcular el PRNU y el FPN deben
coincidir con los de la imagen a atacar.
 Se asume que el atacante puede tener acceso a la cámara fuente de la imagen x
para generar los marcos oscuros y planos y éste no es un escenario próximo a la
realidad.

Existen otras posibilidades menos robustas para destruir la identidad que en ciertos
casos podrían ser efectivas ya que no necesitan contar con imágenes procedentes de la
cámara origen para generar el marco oscuro y el marco plano, pero a cambio de esta
facilidad la calidad de la imagen puede verse reducida y podrían introducirse algunos
rasgos visuales. Por ejemplo, es posible rotar la imagen unos pocos grados, escalar la
imagen, o aplicar un filtro de suavizado gaussiano.
En [13]el PRNU se utiliza para identificar el dispositivo de la cámara que creo una
imagen, esto podría no ser deseable para algunos usuarios que quieren proteger su
privacidad y preservar su anonimato al compartir o difundir imágenes.
En [14]los autores plantean un análisis del método de destrucción de identidad de
una imagen basada en una técnica de redimensionamiento de imágenes llamada
“seam-carving”. Los resultados del análisis muestran que la eficacia de los ataques
depende de varios factores como los parámetros del método de “seam-carving”, la
fuerza del patrón de ruido PRNU de la cámara, y la capacidad de un adversario para
identificar bloques de imagen sin redimensionar en una imagen que ha sido
redimensionada con ese método.

4.2 Manipulación de la identificación de la fuente

De igual forma que se puede eliminar el ruido en una imagen haciendo uso de la
técnica de corrección de sensibilidad, se puede inyectar el ruido de la imagen de otra
cámara diferente mediante la corrección de sensibilidad inversa con la ecuación
(4)[10].
𝑦 ̃ = 𝑥 ̃ ∙ 𝑓_𝑓𝑎𝑙𝑠𝑎 + 𝑑_𝑓𝑎𝑙𝑠𝑎
(4)
Donde, 𝑓_𝑓𝑎𝑙𝑠𝑎y𝑑_𝑓𝑎𝑙𝑠𝑎 corresponden a la cámara que se pretende plagiar y𝑥 ̃ es
la imagen original sin ruido.
5 Propuesta de algoritmos anti-forenses

En esta sección se proponen los algoritmos para destruir y para falsificar la identidad
de una imagen dada. El objetivo del primer algoritmo es convertiruna imagen a
anónima, es decir, eliminar tanto como sea posible cualquier rastro que permita a un
analista forense la identificación de la fuente de la imagen. El objetivo del segundo
algoritmo es falsificar la fuente de una imagen, o en otras palabras, lograr que al hacer
un análisis forense no sea posible identificar la fuente real de la imagen y que ésta
aparente pertenecer a otra fuente.
En[2] se determinó que el uso del PRNU y la transformada“wavelet” son un
método efectivo para la identificación de la fuente, alcanzando un éxito promedio de
87.21%. Una técnica anti-forense estimada para este tipo de identificación debe estar
basada en estos elementos. Por consiguiente, los algoritmos que se presentan a
continuación se basan en el manejo del ruido del sensor PRNU y la
transformada“wavelet”.
En contraste a la transformada de Fourier que representa las señales como una
suma de ondas senoidales que no están localizadas en el tiempo y espacio, la
transformada “wavelet”es más conveniente en el análisis de señales con cambios
abruptos como son las imágenes ya que sus funciones están ubicadas en tiempo y
espacio. Aunado a lo anterior entre las diferentes familias de funciones wavelet (Haar,
Daubechies, Coiflet, Symlet, Meyer, etc.) existe una gran cantidad de alternativas
para analizar las señales permitiendo elegir la base de funciones cuya forma se
aproxime mejor a las características de la señal que se desea analizar. En base a los
resultados de trabajos anteriores para esta propuesta se utilizó a la familia de
funciones Daubechies.
La descomposición “wavelet” permite separar la información a manerade
frecuencias, de esta forma se puede analizar y/o modificar sólo la información de las
frecuencias que son de algún interés en particular y volver a reconstruir la señal.En
particular para la eliminación del ruido, éste se aísla del resto de la imagen para poder
atacarlo directamente sin alterar los detalles significativos de la imagen.

5.1 Algoritmo de eliminación de la huella del sensor

En esta sección proponemos un algoritmo basado en [12] para extraer y eliminar el


ruido del sensor de una imagen, donde se obtiene un vector de características con el
propósito de clasificación. El algoritmo propuesto en este trabajo tiene el objetivo de
eliminar el ruido PRNU para obtener una imagen con su identidad destruida.
Entre los diferentes filtros que existen para eliminar el ruido de las imágeneslos
que usan la transformada “wavelet” dan mejor resultado debido a que el ruido residual
que se obtiene con este filtro contiene la menor cantidad de rasgos de la escena.
Generalmente, las áreas alrededor de los bordes son mal interpretadas cuando se
utilizan únicamente filtros de eliminación de ruido menos robustos, tales como el
filtro de Wiener o el filtro de mediana. Por este motivo se seleccionó el filtro de
eliminación de ruido basado en la transformada “wavelet” en combinación con el
filtro de Wiener.Para cada nivel de la descomposición se obtienen los componentes de
alta frecuencia H (horizontal), V (vertical) y D (diagonal). El Algoritmo 1 describe los
pasos para eliminar la huella del sensor.

Algoritmo 1. Eliminación del PRNU.


Input: La Imagen víctima I
Procedure REMOVEPRNU(I)
Realizar una descomposición wavelet de 4 niveles de I;
foreach nivel de la descomposición wavelet do
foreach componente wavelet c en {H,V,D} do

13
Calcular la varianza local;
if varianza adaptativa then
Calcular 4 varianzas con ventanas de
tamaños 3, 5, 7 y 9, respectivamente;
Seleccionar la varianza mínima;
else
Calcular la varianza con una ventana detamaño 3;
Calcular los componentes wavelet sin ruido aplicando el
filtro de Wiener a la varianza;
Obtener Ilimpia aplicando la transformada wavelet inversa
Con los componentes limpios calculados;
Endprocedure

5.2 Algoritmo de falsificación de la identidad

En esta sección se propone un algoritmo para falsificar el patrón del ruido del sensor
de una cámara C1 a una imagen P2 perteneciente a una cámara C2. Este algoritmo usa
el Algoritmo 1 presentado en la sección 5.1.
Las técnicas de identificación de la fuente basadas en PRNU calculan la huella del
sensor de la imagen con la ecuación 5:
(5)
𝐼_𝑟𝑢𝑖𝑑𝑜 = 𝐼 − 𝐼_𝑙𝑖𝑚𝑝𝑖𝑎

El patrón del ruido PNU se calcula mediante el promedio del ruido residual de
varias imágenes con la ecuación 6:
(6)
𝑃_𝑟𝑢𝑖𝑑𝑜 = 1/𝑚 ∑_(𝑖 = 1)^𝑚▒𝐼_𝑟𝑢𝑖𝑑𝑜

Una vez que se tiene la posibilidad de eliminar el ruido del sensor y de extraer el
patrón del ruido del sensor se puede plantear la falsificación de la identidad de una
imagen. El Algoritmo 2 muestra los pasos a seguir para falsificar la identidad de una
imagen.
Para tener una huella de mejor calidad y obtener mejores resultados en la
falsificación de acuerdo a los experimentos realizados se recomienda que el número N
de imágenes sea superior a 50. Además para evitar ruido proveniente del contenido de
la imagen se sugiere que las imágenes se hayan adquirido de superficies planas sin
textura iluminadas uniformemente, como superficies planas se pueden considerar
fotografías del cielo despejado o de un papel blanco.

Algoritmo 2. Falsificación del PRNU.


Input: La Imagen víctima I
N es el número de imágenes de superficies uniformemente
iluminadas de la cámara suplantadora
Procedure FORGEIMG(I,N)
Ilimpia = REMOVEPRNU(I);
Pruido EXTRACTPRNU(N);
Realizar una descomposición wavelet de un nivel de Ilimpia
obteniendo los componentes LI, HI, VI, DI;
Realizar una descomposición wavelet de un nivel de Pruido
obteniendo los componentes HP, VP, DP;
Calcular los componentes wavelet falsificados
mediante cF = cI+ cP donde c esta en {H,V,D};
Obtener Ifalsa aplicando la transformada wavelet inversa
con LI, HF, VF, DF;
endprocedure
6 Experimentos

En esta sección se describen los experimentos realizados con los algoritmos de


eliminación de la huella del sensor (Algoritmo 1) y de falsificación de la huella de la
cámara fuente (Algoritmo 2).
En estos experimentos se realizó la eliminación y la falsificación de las huellas con
los algoritmos propuestos y también con la herramienta “PRNU Decompare”la cual
utiliza la técnica de “flatfielding”, descrita en la sección 4.2,que permite la
eliminación y la suplantación del patrón de ruido del sensor. Esta herramienta
requiere como entrada una fotografía de un marco oscuro y un número N de imágenes
de superficies planas iluminadas uniformemente (en su documentación se recomienda
un mínimo de 30). Los resultados obtenidos se compararon haciendo uso de la
herramienta “NFI PRNU Compare” la cual permite comparar los patrones del ruido
del sensor de varias imágenes.“NFI PRNU Compare” utiliza como medida de
comparación la correlación, empleada en diferentes trabajos como [15], [16]y [17],
para comparar imágenes y los patrones de ruido.
Es importante notar que los algoritmos propuestos no necesita un conjunto de
imágenes provenientes de la cámara fuente de la imagen a la que se desea destruir la
identidad, sólo se requiere la imagen en sí. Además, en la presente propuesta no es
necesario ningún conjunto de fotografías de la cámara víctima o tener acceso a la
cámara víctima para el caso de la falsificación de la identidad sólo se necesita un
conjunto de imágenes de la cámara atacante. Es decir, el algoritmo propuesto requiere
menos imágenes de entrada que “PRNU Decompare” para hacer la misma función.

6.1 La destrucción de la identidad de la imagen

Para este experimento se utilizaron fotografías de 6 cámaras digitales de los siguientes


teléfonos celulares: LG E510f, LG 400, Nokia Lumia 800, Sony ST25i (Xperia U),
Apple iPhone5, Samsung IMT-9000. De cada dispositivo se tomaron 50 fotos de
imágenes planas uniformemente iluminadas yuna imagen totalmente oscura que se
generó cubriendo por completo la lente de la cámara. De la base de datos se
seleccionó al azar una imagen de cada cámara para eliminarle la identidad. Todas las
fotos fueron cortadas a un tamaño de 1024 x 1024 píxeles.
Inicialmente, se generó el primer grupo de imágenes sin huella usando el
Algoritmo 1. Cabe remarcar que para realizar esta eliminación no se necesitaron
fotografías adicionales a la fotografía de la que se pretendía eliminar el ruido del
sensor. A continuación, se generó el segundo grupo de imágenes sin huella con la
herramienta “PRNU Decompare” usando como entrada las 50 imágenes planas y la
imagen del marco oscuro.
Para evaluar la efectividad del algoritmo de eliminación de la huella del sensor se
compararon seis grupos de imágenes con la herramienta “NFI PRNU Compare”,
obteniendo el patrón del ruido de cada cámara, como se indica en las
recomendaciones de la documentación y utilizando 40 imágenes seleccionadas
aleatoriamente de entre las 50 de cada cámara.
La Tabla 1 muestra la comparativa entrelos patrones del ruido del sensor de cada
cámara generados por “NFI PRNU Compare” con las imágenes sin ruido generadas
previamente. “PRNU Decompare” permite hacer comparaciones midiendo que tanto
se parece un patrón a otro, las filas que están más cerca del patrón con el que se está
comparando son las que más se le asemejan.
Además, la Tabla 1 muestra los coeficientes de correlación para cada canal de
color. Entre más cercano sea el valor a 1 se considera una correlación elevada con un
alto grado de similitud entre dos patrones lineales, un valor de 0.5 representa una
correlación débil y un valor negativo indica una correlación negativa en la que el
incremento de un valor implica el decremento del otro.En todas las pruebas de las
imágenes sin ruido generados con “PRNU Decompare” resultaron tener menor
similitud a la del patrón, esto era de esperarse, ya que la herramientarequieremucha

15
más información para eliminar la huella. En todos los casos, la comparación de las
imágenes sin ruido tuvo resultados muy similares, lo que indica que el algoritmo
propuesto tuvo un buen desempeño al acercarse alresultado de “PRNUDecompare”
sin la necesidad de utilizar la imagen del marco oscuro ni las 50 imágenes planas.
Una cuestión importante a tomar en cuenta es si la imagen cuya identidad ha sido
destruida reduce su calidad o si existen efectos visibles para el ojo humano en la
escena de la imagen. Para ello, en la Fig. 2 se muestra el ejemplo de la imagen
original y de la imagen con la identidad destruida pertenecientes al dispositivo Nokia
Lumia 800. No se muestran cambios visibles sobre la escena de la imagen con
identidad destruida y en la parte inferior de las imágenes se puede observar que
tampoco se modifica significativamente su histograma.
Tabla 1. Comparación entre patrones e imágenes sin ruido.

Teléfono celular Fotografía Rojo Verde Azul Suma


Patrón -0.014645672 -0.0017777978 -0.007864626 -0.024288096
LG E510f Algoritmo 1 -0.015506644 -0.003044259 -0.008411303 -0.026962206
Decompare -0.018929206 -0.0023383496 -0.012027217 -0.033294775
Patrón 0.011481647 0.010190065 0.01825918 0.039930895
LG E400 Algoritmo 1 0.010315191 0.008225861 0.017940063 0.036481116
Decompare 0.010638827 0.009045472 0.016430777 0.036115076
Patrón 0.011352311 0.011754888 0.019119238 0.042226437
Nokia 800 Lumia Algoritmo 1 0.009912337 0.009113852 0.016991276 0.036017465
Decompare 0.010812875 0.009995133 0.014978331 0.035786339
Patrón -0.015712192 -0.002311284 -0.007307031 -0.025330507
Apple iPhone 5 Algoritmo 1 -0.016984729 -0.003462913 -0.009599754 -0.030047396
Decompare -0.019395503 -0.003140395 -0.009915681 -0.032451579
Patrón -0.012013772 -0.002127295 -0.006817536 -0.020958603
Sony ST25i Algoritmo 1 -0.014839721 -0.003142763 -0.009114359 -0.027096843
Decompare -0.016545112 -0.002611324 -0.011200112 -0.030356548
Patrón 0.017310016 0.010754888 0.016119238 0.044184142
Samsung GTI-9000 Algoritmo 1 0.014015311 0.007826601 0.014491394 0.036333306
Decompare 0.014979864 0.007992510 0.012984029 0.035956403

(a) Nokia 800 Lumia: Imagen original (b) Nokia 800 Lumia: Imagen con identidad destruida

Fig. 2. Imagen e Imagen con identidad destruida.

A pesar de ello, se decidió utilizar las métricas de calidad de imagen IQM para
evaluar objetivamente la pérdida de calidad de lasimágenes cuya identidad ha sido
destruida con respecto a las imágenes originales. Para ello, se optó por utilizar la
métrica de Minkowski [18]. En particular se usó la métrica de Minkowski para 𝑑= 1
que corresponde a error absoluto medio (Mean Absolute Error (MAE)) y 𝑑 = 2 para
el error cuadrático medio (Mean Squared Error(MSE)).
En ambos casos, los valores altos de MAE o MSE indican que son imágenes de
baja calidad. Estas métricas se aplican a cada una de los canales RGB (Red-Green-
Blue) por separado, de modo que se obtienen tres métricas para el MAE y otras tres
para el MSE. Los valores de las métricas de calidad para cada uno de los canales de
las 4 imágenes se muestran en la Tabla 2, como se puede observar la destrucción de
las características que permiten la identificación cambia muy poco los índices de
calidad de la imagen. A pesar de que se percibe una pequeña reducción de los valores
en toda la Tabla 2, es importante tener en cuenta que, en realidad las imágenes
originalesprobablementeno estarán disponibles para compararlas y los cambios son
tan mínimos que no permitirán distinguir entre imágenes originales o
falsificadasbasándose exclusivamenteen alguna de ellas.

17
Tabla 2. MAE y MSE de las imágenesy las imágenes con identidad destruida.

MAE MSE
Imagen
Rojo Verde Azul Rojo Verde Azul
Nokia 800 Lumia original 0.8410 0.8183 0.8428 2.6498 2.1777 2.3869
Nokia 800 Lumia sin identidad 0.8368 0.8135 0.8388 2.6245 2.1531 2.3617
Sony ST25i original 0.8976 0.8705 0.8916 4.0664 3.3754 3.7108
Sony ST25i sin identidad 0.8924 0.8656 0.8869 4.0324 3.3465 3.6783

6.2 Falsificación de la identidad de la imagen

Para este experimento se utilizó el mismo grupo de fotografías usado enla sección 6.1.
De una manera similar a la del experimento anterior, se extrajo una huella digital del
sensor de la cámara, después esta huella digital se inyectó en las imágenes captadas
por otras dos cámaras utilizando el Algoritmo 2 y también con la herramienta “PRNU
Decompare”; Finalmente los resultados se compararon con “NFI PRNU Compare”.
Las funciones desempeñadas por cada cámara se muestran en la Tabla 3.

Tabla 3. Cámaras utilizadas para la falsificación.

Cámara atacante Víctima 1 Víctima 2


LG E510f LG-400 Samsung GT-I8160P
Cámara atacante Víctima 3 Víctima 4
Nokia 800 Lumia Sony ST25i Samsung GTI-9000

Para falsificar el patrón de ruido del sensor con el algoritmo propuesto sólo se
requirieron 50 imágenes de la cámara atacante. Para la falsificación con “PRNU
Decompare” se requirieron las mismas 50 imágenes y dos imágenesmás de marco
oscuro: una pertenecientes a la cámara atacante y otra dela cámara víctima.
Después de realizar la falsificación en las 4 cámaras víctimas se compararon los
resultados que se resumen en la Tabla 4. En ésta también semuestran coeficientes de
correlación para cada canal de color con respeto al patrón de la cámara atacante como
en el último experimento.
Para las víctimas 1, 3 y 4 se puede observar que las tres falsificaciones tienen una
mayor similitud con el patrón de la cámaraatacante y que el resultado de “PRNU
Decompare” está más cerca que la propuesta, aunque esta diferencia no es
significativa considerando que la herramientautiliza un número mucho mayor de
imágenes como fuente de información. En el caso de víctima 2 el resultado con el
algoritmo propuesto tiene la menor similitud con el patrónde la cámara atacante.

Tabla 4.Comparativa de patrones, imágenes originales y víctimas.

Fotografía Rojo Verde Azul Suma


Decompare 0.009219962 0.0054620425 0.009098741 0.023780745
Víctima 1 Algoritmo 2 0.007900867 0.0046529872 0.0083521 0.020905953
Original 0.0073570074 0.004183661 0.0075896666 0.019130334
Decompare 0.01418404 0.013986045 0.013574668 0.041744754
Víctima 2 Original 0.011300047 0.013949845 0.0125216115 0.0377715
Algoritmo 2 0.008964902 0.0066337977 0.004440412 0.020039111
Decompare 0.00811001 0.004442147 0.009333811 0.021885968
Víctima 3 Algoritmo 2 0.007201833 0.00419231 0.009112659 0.020506802
Original 0.006232409 0.003880702 0.007871138 0.017984249
Decompare 0.009913582 0.007213382 0.008788015 0.025914979
Víctima 4 Algoritmo 2 0.008271773 0.007621801 0.008141919 0.024035493
Original 0.008137003 0.005338104 0.00790911 0.021384217
Los resultados obtenidos hasta el momento fueron satisfactorios, debido a que el
algoritmo propuesto en este trabajo no asume tener acceso a la cámara víctima como
en el caso de “PRNU Decompare”. Sin embargo, en todos los casos los resultados de
nuestra propuesta se encuentran cerca de los resultados de “PRNU Decompare”. Es
importante notar que en escenarios reales, normalmente no es posibleacceder a la
cámara víctima. A diferencia de “PRNU Decompare” con la propuesta sólo se
necesita un conjunto de fotos de la cámara atacante. Además, con la propuesta no se
necesita ningún tipo especial contenido en el conjunto de imágenes como en el caso
de “PRNU Decompare”, como se ha comentado anteriormente.
Como en el caso de destrucción de la identidad de la imagen, se realiza el mismo
estudio sobre la pérdida de calidad de la imagen para las imágenes víctimas
falsificadas 3 y 4. En la Tabla 5 se muestran los índices de calidad de imagen MAE y
MSE de las imágenes originales y sus respectivas falsificaciones. Del mismo modo
que en el experimento anterior los cambios resultaron imperceptibles al ojo humano.
Como se puede observar en la Tabla 5, la falsificación de los datos de
identificación de una imagen no cambian significativamente cualquiera de los índices
de calidad de imagen que se presentan y esta diferencia será casi imposible notar si las
imágenes originales no están al alcance.

Tabla 5.MAE y MSE de las imágenes y las imágenes con identidad falsificada.

MAE MSE
Imagen
Rojo Verde Azul Rojo Verde Azul
Víctima 3 original 0.8976 0.8705 0.8916 4.0664 3.3754 3.7108
Víctima 3 falsificada 0.8926 0.8656 0.8872 4.0323 3.3445 3.6787
Víctima 4 original 0.7836 0.7800 0.7820 2.3412 2.2525 2.2724
Víctima 4 falsificada 0.7685 0.7639 0.7661 2.2940 2.2062 2.2207

7 Conclusiones y trabajos futuros

Este artículo ha presentado dos algoritmos anti-forenses, uno que permite destruir la
identidad de una imagen y otro que posibilita falsificar la identidad en una imagen
dada. Los dos algoritmos tienen como base la utilización del ruido del sensor y la
transformada “wavelet”.Asimismo, ambos algoritmos tienen como gran ventaja con
respecto a otros con los mismos fines que necesitan una menor variedad de datos de
entrada ajustándose en mayor medida a escenarios reales. Concretamente, para el
algoritmo de eliminación de la huella de una imagen se necesita únicamente la propia
imagen y no un conjunto de imágenes planas y una imagen del marco oscuro de la
propia cámara como ocurre en el caso de “PRNU Decompare”.La aplicación a la
realidad del algoritmo que utiliza “PRNU Decompare” no tiene gran facilidad de
encaje, ya que se necesitan numerosas fotos con características concretas para su
ejecución. Para el caso del algoritmo de falsificación de la identidad de una imagen
propuesto no se necesita tener acceso a la cámara víctima.Ambos algoritmos pueden
verse desde otras perspectivas distintas a la del estudio para el futuro fortalecimiento
de técnicas forenses de detección de manipulaciones intencionadas. Precisamente el
primer algoritmo que permite destruir la identidad de una imagen puede ser de gran
utilidad en aplicaciones web que presentan imágenes en Internet (redes sociales,
directorios de imágenes, ...) ya que permiten que la imagen publicada sea anónima
desde el punto de vista de la identificación de la fuente de adquisición.
En general la eficacia de los algoritmos propuestos es buena, a pesar de que en
algunos casos no se obtienen resultados comparables con los de otros algoritmos pero
se logran resultados cercanos y bastante aceptables con la ventaja de reducir
drásticamente la entrada requerida de los datos y ser más práctico y realista.
Estos algoritmos pueden ser útiles como punto de partida para futuras mejoras que
permitan resultados similares para otros algoritmos o herramientas, destacando y

19
teniendo en cuenta queno requieren tanta información de entrada y que pueden
trabajar incluso sin tener acceso a la cámara víctima para el caso de la falsificación de
la identidad de una imagen. Además, la aplicación de los dos algoritmos no causa
cambios visuales notables o degradación en las imágenes y no reduce
significativamente la calidad de imagen.

Agradecimientos.El Grupo de Investigación GASS agradece a la Facultad de


Ciencias de la Computación de la Benemérita Universidad Autónoma de Puebla por
ofrecer la oportunidad de realizar esta colaboración.
Referencias

1. Al-Zarouni, M.: Mobile Handset Forensic Evidence: A Challenge for Law Enforcement.
Proceedings of the 4th Australian Digital Forensics Conference, pp.1-10 (2006)
2. Rosales Corripio, J.; Arenas González, D.M.; Sandoval Orozco, A.L.; García Villalba, L.J.;
Hernandez-Castro, J.C. and Gibson, S.J.: Source Smartphone Identification using Sensor
Pattern Noise and Wavelet Transform. Proceedings of the 5th International Conference on
Imaging for Crime Detection and Prevention, pp.1-6 (2013)
3. Netherlands Forensic Institute: PRNU Decompare.https://www.forensicinstitute.nl/
products_and_services/forensic_products/PRNU/ Accedido el Agosto 11 de 2016
4. Netherlands Forensic Institute: NFI PRNU Compare. http://ftparmy.com/60782-nfi-prnu-
compare.html Accedido el Agosto 11 de 2016
5. Chen, M.; Fridrich, J.; Goljan, M. and Lukas, J.: Determining Image Origin and Integrity
using Sensor Noise. IEEE Transactions on Information Forensics and Security, Vol. 3,
No.1, pp.74-90 (2008)
6. GarcíaVillalba, L.J.; Sandoval Orozco, A.L. and Rosales Corripio, J.: Smartphone Image
Clustering. Expert Systems with Applications, Vol. 42, No.4, pp.1927-1940 (2015)
7. Van Lanh T.; Chong, K.S.; Emmanuel, S. and Kankanhalli, M.S.: A Survey on Digital
Camera Image Forensic Methods. Proceedings of the IEEE International Conference on
Multimedia and Expo, pp.16-19 (2007)
8. Thing, V.L.L.; Ng, K.Y. and Chang, E.C.: Live Memory Forensics of Mobile Phones.
Digital Investigation, Vol. 7, pp.74-82 (2010)
9. Sandoval Orozco, A.L.; Rosales Corripio, J.; Arenas González, D.M.; García Villalba, L.J.
and Hernández Castro, J.C.: Techniques for Source Camera Identification. Proceedings of
the 6th International Conference on Information Technology, pp.1-9 (2013)
10. Gloe, T.; Kirchner, M.; Winkler, A. and Bohme, R.: Can we Trust Digital Image
Forensics?.Proceedings of the 15th International Conference on Multimedia, pp.78-86
(2007)
11. Adams, J. and Pillman, B.: Digital Camera Image Formation: Introduction and Hardware.
Sencar, H.T. and Memon, N.: Digital Image Forensics. Springer, pp.3-44 (2013)
12. Lukas, J.; Fridrich, J. and Goljan, M.: Digital Camera Identification from Sensor Pattern
Noise. IEEE Transactions on Information Forensics and Security, Vol. 1, No.2, pp.205-214
(2006)
13. Böhme, R. and Kirchner, M.: Counter-Forensics: Attacking Image Forensics. Sencar, T.H.
and Memon, N.: Digital Image Forensics: There is More to a Picture than Meets the Eye.
Springer New York, pp.327-366 (2013)
14. Dirik, A.E.; Sencar, H.T. and Memon, N.: Analysis of Seam-Carving-Based
Anonymization of Images Against PRNU Noise Pattern-Based Source Attribution. IEEE
Transactions on Information Forensics and Security, Vol. 9, No.12, pp.2277-2290 (2014).
15. Goljan, M.; Fridrich, J. and Chen, M.: Defending Against Fingerprint-Copy Attack in
Sensor-Based Camera Identification. IEEE Transactions on Information Forensics and
Security, Vol. 6, No.1, pp.227-236 (2011)
16. Costa, F.D.O.; Eckmann, M.; Scheirer, W.J. and Rocha, A.: Open Set Source Camera
Attribution. Proceedings of the 25th Conference on Graphics, Patterns and Images, pp.71-
78 (2012)
17. Uhl, A. and Holler, Y.: Iris-Sensor Authentication using Camera PRNU Fingerprints.
Proceedings of the 5th IAPR International Conference on Biometrics, pp.230-237 (2012)
18. Hu, Y.; Li, C.T. and Zhou, C.: Selecting Forensic Features for Robust Source Camera
Identification. Proceedings of the International Computer Symposium, pp.506-511 (2010)

21
Analizador de Grafos para Redes de Afiliación

Pedro Bello-López1,Meliza Contreras-Gonzalez1, Miguel Rodríguez-Hernández 1,


Alejandro F. Martínez-Montes 2
Facultad de Ciencias de la Computación, Benemérita Universidad Autónoma de Puebla,
Av. San Claudio y 14 sur, cp.72550Puebla, México
1
{pbello,mcontreras,mrodriguez}@cs.buap.mx,2panchito@hotmail.com

Resumen.Las redes de afiliación muestran cómo están relacionados los actores


y acontecimientos. En este proyecto se aplicó un método computacional para
analizar una clase especial de redes sociales bimodales que representan la
afiliación de un conjunto de actores con un conjunto de acontecimientos. Se
realizó una aplicación web interactiva para validar redes de afiliación basada en
grafos bipartitos.
Palabras Clave: Red de Afiliación, Hipergrafo, Sociograma, Grafo bipartito.

1 Introducción

En el estudio y análisis de redes aplicado a asuntos variados desde hace décadas ha


sido las tradiciones dominantes en las ciencias sociales, construir los modelos de
explicación científica bien a partir de modelos causales que generalmente se han
aplicado a estructuras macro-sociales o económicas en los años sesentas se consolidó
el esfuerzo por aplicar la formalización matemática a instituciones previamente
expresada con metáforas desde entonces la teoría de grafos (Harary y Norman, 1953)
se han convertido en el sustrato formalizado para el desarrollo de análisis de redes, el
cual es un método, un conjunto de instrumentos para conectar el mundo de los actores
(individuos, organizaciones etc.)[2].
Cuando se representan las relaciones de los actores con determinados hechos y a
través de éstos, la relación entre los actores, a esta relación subordinada se le
denomina filiación y a este tipo concreto de redes se conocen como redes de afiliación
que representa por tanto la asociación de un conjunto de actores con un conjunto de
acontecimientos.
La forma más directa de estudiar una estructura social es analizar los patrones de
vínculos que ligan a sus miembros. El análisis de redes busca las estructuras
profundas. La red es una construcción relacional en el cual las descripciones se basan
en los conceptos de vínculos (ligas) que unen actores (nodos) que pueden ser
personas, grupos, organizaciones o personas un sistema social. Dada la importancia
de las redes de filiación en el entorno académico y socialtomando como base
fundamental para su estudio y aplicación el uso de grafos que juegan un papel
importante en el manejo y distribución de la información para determinar cuándo un
grafo es o será bipartito y una red de afiliación podrá entonces representarse como un
grafo bipartito mostrando a los actores y acontecimientos como nodos [1].

1.1 Teoría de grafos

La teoría de grafos juega un papel importante en la fundamentación matemática de las


ciencias de la computación. Los grafos constituyen una herramienta básica para
modelar fenómenos discretos y son fundamentales para la comprensión de las
estructuras de datos y análisis de algoritmos.
Un grafo es un par G=(V,E) donde V es un conjunto finito no vacío cuyos
elementos se llaman vértices o nodos, y E es un conjunto cuyos elementos se llaman
aristas o ejes [1].
Un grafo bipartito se denomina al grafo cuyos vértices se pueden separar en dos
subconjuntos disjuntos V1(G) y V2(G) y las líneas siempre unen vértices de un
subconjunto con vértices de otro subconjunto [1]. Además se tiene que: V1(G) U
V2(G) = V(G).Un grafo bipartito completo es un grafo bipartito simple con partición
(X, Y ) en el que cada vértice de X es adyacente a todo vértice de Y ; si |X| = m y |Y|
= n tal grafo se denota por Km,n, conν (Km,n) = m + n vértices y α (Km,n) = mn aristas.

1.2 Redes de afiliación

Hay muchas maneras de describir matemáticamente los datos de redes sociales, entre
las notaciones se consideran: teoría de grafos, sociométrica, algebraica. Donde la
notación de teoría de grafos es útil sobre todo para los métodos de la centralidad y el
prestigio, las ideas de los subgrupos cohesivos. La notación sociométrica suele usarse
para el estudio de la equivalencia estructural y los modelos de bloque. La notación
algebraica es apropiada sobre todo para los análisis de rol y posición y las algebras
relacionales [2].
El sistema de notación grafo-teórica se puede considerar como una manera
elemental de representar los actores y las relaciones. Esta notación se emplea desde
finales de los años 40 para estudiar las redes sociales puesto que proporciona una
manera directa de referirse a los actores y a sus relaciones [2].
La notación sociométrica se relaciona con la primera, se presentan los datos en una
matriz bidimensional, llamada sociomatriz donde las filas y las columnas se refieren a
los actores que forman los pares. También las sociomatrices se definen como matrices
de adyacencia para grafos [2].

Notación grafo-teórica
Las redes se pueden representar como un grafo formado por nodos unidos por líneas.
Por ejemplo, supongamos que se cuenta con un conjunto de g actores N={n 1,n2,..,ng}
y también se tiene una relación simple donde se registra si cada actor se relaciona con
algún otro. Considerando un par ordenado de actores, n i y nj. El primer actor del par
ordenado se relaciona o no con el segundo actor. Si la relación es direccional, el par
de actores ni y nj es diferente a nj, ni.
Los elementos básicos que definen una red son esencialmente dos, los actores que
establecen las relaciones entre sí y estas relaciones; los primeros son representados
por puntos en la red o nodos y los segundos por líneas. Si los actores se describen
como nodos y sus relaciones como líneas entre pares de nodos el concepto de red
social pasa de ser una metáfora a una herramienta operativa analítica qué utiliza el
lenguaje matemático de la teoría de grafos, de la matrices y del álgebra relacional se
pueden construir múltiples tipos de redes, la mayoría se corresponden con redes de
modo-uno es decir aquellas en las que todos los actores pertenecen a un único
conjunto; un caso particular de redes de modo-dos son las denominadas redes de
afiliación[4].
La representación más sencilla de una red de afiliación es una matriz que registre la
afiliación de cada actor a cada acontecimiento, esta matriz a la cual llamaremos
matriz de afiliación codifica para cada actor los acontecimientos a los cuales cada
actor está afiliado, de igual modo registra para cada acontecimiento los actores
afiliados a él por lo tanto la matriz es una sociomatriz bimodal en la cual las filas
indexan a los actores y las columnas indexan a los acontecimientos. Dado que existen
g actores y h acontecimientos, la matriz es g x h y se pondrá un 1 en las celdas (i,j)-
ésimas si el actor de la fila i está afiliado con el acontecimiento de la columna j y un 0
si el actor de la fila i no está afiliado al acontecimiento j [4].

23
En la tabla 1 se muestra un ejemplo de una matriz de filiación para 6 niños y 3
fiestas donde el actor es el niño y los acontecimientos son las fiestas así es como
podemos ver que Antonio asistió a la fiesta 1 y a la fiesta 3 pero no a la fiesta 2.

Tabla 1. Matriz de afiliación


Acontecimientos
Actor Fiesta 1 Fiesta 2 Fiesta 3
Antonio 1 0 1
Pedro 0 1 0
María 0 1 1
Martha 0 0 1
Luis 1 1 1
Juan 1 1 0

2 Desarrollo del evaluador

En este proyecto se aplicó un método computacional para analizar redes sociales


bimodales que representan la afiliación de un conjunto de actores con un conjunto de
acontecimientos. Las redes de afiliación son relacionales en tres modos: primero
muestran cómo están relacionados entre ellos los actores y los acontecimientos;
segundo, los acontecimientos crean lazos entre los actores; y en tercer lugar los
actores crean lazos entre los acontecimientos. En este caso será orientado a la relación
de investigadores con eventos para el desarrollo científico.

Tabla 2. Matriz de una red de afiliación Investigadores / Congresos


Acontecimiento
Investigadores Congreso 1 Congreso 2 Congreso 3
Fred 1 0 1
Andrew 0 1 0
John 1 1 1
Eliot 0 1 1
Ross 1 0 0

En la tabla 2 se muestra un ejemplo de la representación de una red de afiliación de


5 actores (investigadores) y 3 acontecimientos (congresos) donde cada aij = 1 si el
actor i está afiliado al acontecimiento j. Además se pueden obtener algunos elementos
que caracterizan a la red de afiliación como la sociomatriz donde se relacionan los
actores y los acontecimientos todos juntos en una matriz extendida, así también se
puede obtener el hipergrafo que corresponde a mapear con conjuntos quienes van al
congreso 1, quienes al congreso 2 y quienes al congreso 3 según el ejemplo.
El método computacional para evaluar si una red de afiliación está bien formada es
utilizando la teoría de grafos y en particular por medio de un grafo bipartito. Un grafo
bipartito es un grafo en el cual los nodos pueden dividirse en dos subconjuntos, y
todas las líneas están entre pares de nodos pertenecientes a diferentes subconjuntos.
Una red de afiliación puede representarse por un grafo bipartito (Figura 1) donde los
actores y los acontecimientos son nodos y asignando a los actores a un subconjunto de
nodos y los acontecimientos al otro subconjunto.
Fig. 2. Grafo bipartito de actores y acontecimientos de la Tabla 2

Para determinar si un grafo es bipartito se utilizara el teorema que dice que si el


grafo G es conexo, G es bipartito si y sólo si no tiene ciclos de longitud impar [1]. Por
lo que el algoritmo planteado determinará si el grafo es bipartito o no y en caso de que
sea bipartito se obtendrá su sociomatriz [4] correspondiente (tabla 3) y el hipergrafo
(figura 2).

Tabla 3. Sociomatriz correspondiente al grafo bipartito de la red de afiliación


Fred Andrew John Eliot Ross Congreso1 Congreso2 Congreso3
Fred 0 0 0 0 0 1 0 1
Andrew 0 0 0 0 0 0 1 0
John 0 0 0 0 0 1 1 1
Eliot 0 0 0 0 0 0 1 1
Ross 0 0 0 0 0 1 0 0
Congreso1 1 0 1 0 1 0 0 0
Congreso2 0 1 1 1 0 0 0 0
Congreso3 1 0 1 1 0 0 0 0

Fig. 2. Grafo bipartito de actores y acontecimientos de la Tabla 2

La propuesta algorítmica (figura 3) para determinar si un grafo es bipartito tiene


los siguientes pasos:

• Leer el grafo de entrada


• Obtener el recorrido a lo profundo a partir de cualquier nodo
• Generar el árbol de recorrido a lo profundo
• Obtener los ciclos fundamentales del grafo
• Determinar las aristas de retroceso para los ciclos
• Verificar si los ciclos están formados por un número impar de aristas.

25
Si existe entonces el grafo no es bipartito, en caso contrario si es bipartito (ver
ejemplo figura 3) y se podrán obtener la sociomatriz, el hipergrafo y el hipergrafo
dual.

Fig. 3.En el lado izquierdo se tiene un grafo y en el derecho el recorrido a lo profundo y sus
ciclos fundamentales, como son de longitud par, entonces el grafo si es bipartito.

El estudio de soluciones para grafos con ciertas características constituye un tópico


de investigación y aplicación en ciertas áreas como lo son en redes computacionales
en donde puede variar la topología y un algoritmo especifico llegará a ser más
eficiente sin embargo la necesidad de tener una solución general es igualmente útil
para cuando se desconoce la estructura.
El desarrollo del algoritmo [3] para el sistema mencionado consiste en dado un
archivo de entrada de forma matricial con los nodos y las aristas de la red o grafo, se
le aplica el recorrido a lo profundo ordenando y transformando en una lista ligada
identificando los ciclos fundamentales y evaluándolos para determinar su longitud y si
ésta es de longitud par entonces el grafo es bipartito y forma una red de afiliación.
Como primer paso se escribirá una matriz de entrada la cual se escribirá en
formato modo texto y tendrá los siguientes elementos. En el primer renglón
corresponde al número de nodos y los renglones a partir del renglón 2 son las aristas
de (grafo).Al momento de ejecutar el programa leerá el archivo y una vez mediante un
recorrido a lo profundo transformándolo en una lista ligada donde se identifican los
ciclos fundamentales, se evalúan los ciclos si todos son de longitud par, entonces el
grafo es bipartito y por lo tanto forma una red de afiliación como se observa en la
Figura 4. El resultado de salida obtenido será una red de afiliación con sus elementos
en forma gráfica ver figura 5.
Fig. 4.Flujo del modelo propuesto

Fig. 5.Salida del sistema de un grafo bipartito.

3 Descripción de la aplicación

En la figura 6 se presenta la pantalla inicial del sistema donde se describe brevemente


qué es una red de afiliación, en esta pantalla se tienen las opciones:

• Inicio: es la pantalla inicial del sistema.


• Evaluar: evalúa la red de afiliación para determinar si está bien formada o no
dicha red.
• Modelo: Aquí se muestra el modelo utilizado en el sistema.
• Acerca de: muestra los participantes del proyecto.

27
Fig. 6.Pantalla inicial del sistema

En la figura 7 se muestra la pantalla para evaluar la red de afiliación donde se


solicita seleccionar el archivo de entrada donde se tiene almacenada la red a evaluar
además se indica que para evaluar correctamente la red es necesario que el grafo que
representa la red sea conexo, no contenga aristas paralelas ni lazos.

Fig. 7.Pantalla de evaluación de la red de afiliación


En la figura 8 se muestra una red de afiliación que fue evaluada con el sistema
donde nos indica que si es una red de afiliación, en esta figura los nodos de la parte
superior denotan los acontecimientos y los nodos de la parte inferior los recursos o
eventos, aunque también se pueden considerar en sentido opuesto. El sistema permite
redibujar el grafo con la opción “redraw” de forma automática, o utilizando el mouse
de forma manual.
En la figura 9 se muestra otro ejemplo evaluado con el sistema donde el resultado
es que la red de afiliación no está bien formada debido a que el grafo que la representa
no es bipartito, en la figura podemos observar por ejemplo que el nodo 5 no puede ser
parte de los acontecimientos ya que es adyacente al 1 o parte de los recursos ya que es
adyacente al 2.

Fig. 8.Pantalla de evaluación de la red de afiliación

29
Fig. 9. Grafo que no representa una red de afiliación (no es bipartito)

En la figura 10 se muestra un grafo de 100 nodos y 119 aristas generado de forma


aleatoria, el cual fue evaluado con la herramienta computacional y resulto no ser un
grafo bipartito y por tanto no forma una red de afiliación.

Fig. 10. Grafo que no representa una red de afiliación de 100 nodos y 119 aristas

Se realizaron diferentes pruebas de funcionalidad para verificar que el algoritmo


esté funcionando adecuadamente. Para grafos con más de 20 nodos se generaron
conexiones (adyacencias) aleatorias, en la tabla 4 se muestran los resultados obtenidos
de diferentes grafos y como las adyacencias se generaron de forma aleatoria entonces
el resultado fue que no son bipartitos.

Tabla 4. Resumen de resultados de distintos grafos probados con el sistema


Nodos Aristas Tiempo Bipartito
8 16 1 Si
10 13 1 No
20 42 2 Si
30 35 2 No
50 100 2 No
80 140 3 No
100 119 3 No

4 Conclusiones y trabajos futuros

En la investigación sobre grafos se han presentado algoritmos que resuelven


problemas sobre diversas áreas de la ciencia y aquí se presentó un algoritmo para
tratar un tipo especial de redes sociales como lo es una red de afiliación. En general
mostramos como la teoría de grafos permite modelar este tipo de problemas de la vida
real. En particular se desarrolló un trabajo donde se modela una red de afiliación
utilizando la teoría de grafos. Se creó un algoritmo que permite evaluar si la red de
afiliación está bien formada, es decir si corresponde a un grafo bipartito.
Se creó una aplicación computacional que permite en general evaluar si un grafo es
bipartito o no, es decir para el caso de que sea bipartito significa que se tiene una red
de afiliación.
De igual forma la aplicación desarrollada puede ser usada como ayuda didáctica en
materias de matemáticas discretas, análisis y diseño de algoritmos, estructuras de
datos y complejidad de algoritmos.Se utilizó la tecnología de php, javascript y la
programación orientada a objetos para ejemplificar el algoritmo desarrollado.
Como perspectivas del trabajo iniciado se plantea extraer información de
comunidades y obtener sociogramas y relaciones para aplicaciones de comercio
electrónico, trabajo colaborativo, toma de decisiones y economía del comportamiento.

Agradecimientos.Este trabajo ha sido apoyado por el Proyecto: Implementación de


aplicaciones de combinatoria con teoría de grafos VIEP 2016.

Referencias

1. Epp S.S: Matemáticas discretas con aplicaciones. CengageLearning, (2012).


2. Faust K: Análisis de redes sociales Métodos y aplicaciones. Centro de Investigaciones
Sociológicas, (2013).
3. Martínez R., Quiroga E.: Estructuras de datos: referencia práctica con orientación a
objetos. Alfa omega, (2002).
4. Sanz L.: Análisis de redes sociales: o cómo representar las estructuras sociales subyacentes.
Apuntes de Ciencia y Tecnología. Vol. 7. pp. 21-29 (2003).

31
Identificación de Cambios Estructurales en Imágenes
Satelitales Empleando PCNN

Aida A. Aparicio-Arroyo1, Aldrin Barreto-Flores1, Salvador E. Ayala-Raggi1,


Verónica E. Bautista-López2
1 Maestría en Ingeniería Electrónica, Opción Instrumentación Electrónica
Benemérita Universidad Autónoma de Puebla
18 Sur y Av. San Claudio, Ciudad Universitaria, Puebla, Puebla.
2
Facultad de Ciencias de la Computación, Benemérita Universidad Autónoma de Puebla
14 Sur y Av. San Claudio, Ciudad Universitaria, Puebla, Puebla.
1aida.aparicio@alumno.buap.mx

Resumen.Como resultado de los diversos tipos de análisis de imágenes, se


pueden realizar diferentes pruebas como lo son la identificación de cambios
estructurales mediante el análisis de textura, detección de bordes, o la
identificación de objetos a través de color, entre otros. Estos cambios puedes ser
provocados por diversos factores como lo son por consecuencias de desastres
naturales, o por el mismo ser humano. En el presente trabajose tiene como
objetivo la identificación de cambios estructurales en imágenes satelitales
empleando PCNN (Pulse Coupled Neural Network), para así realizar un análisis
de manera automática y reducir el tiempo de la identificación de los cambios.
Tras los resultados obtenidos se concluye que es un método factible para la
identificación automática.
Palabras Clave: Detección de Cambios Estructurales, Redes Neuronales
Pulsantes, Análisis de Imágenes Satelitales.

1 Introducción

La detección de cambios a partir de una secuencia multi-temporal de imágenes de


satélite es una de las aplicaciones importantes en percepción remota y en sistemas de
información geográfica. Los cambios pueden deberse a diversos factores, desde
desastres naturales o eventos climáticos extremos hasta políticas públicas o
económicas.
La identificación de estos cambios es un proceso que requiere de una adecuada
manipulación de las imágenes y la implementación de los algoritmos que realicen el
procesamiento de imágenes, para así obtener un buen resultado [1].
Actualmente en la mayoría de trabajos realizados en el tema de la identificación de
cambios estructurales, se usan métodos relacionados al análisis de textura usando
técnicas como detección de bordes, matriz de co-ocurrencia, transformada de Fourier,
transformada de Wavelets. También existen trabajos en los que se utiliza el método de
PCNN, pero generalmente para la segmentación de la imagen o para la detección de
objetos.
Como ejemplo de trabajos de identificación de cambios es en [2], en este trabajo se
usa la matriz co-ocurrencia, se da una breve explicación de cómo se calcula la matriz
y cómo esta es usada para el análisis de textura y que puede servir para algoritmos de
clasificación, de igual manera, se describen las propiedades de la matriz, como
homogeneidad, contraste, energía, entropía, correlación, desviación estándar.
Un trabajo similar se presenta en [3], se realiza una segmentación a la imagen para
la extracción de objetos de construcción, estos elementos son extraídos por el límite
inferior de la relación de aspecto y de la entropía de la matriz de co-ocurrencia, para
posteriormente generar una clasificación de los objetos que se encuentran en la
imagen.
En [4], se presenta un trabajo aplicando la detección de bordes utilizando los
algoritmos de Sobel y Canny. De manera inicial son descritos esos algoritmos para
posteriormente implementarlos en una tarjeta FPGA y así integrar los conocimientos
en electrónica digital e informática.
En [5] se presenta un trabajo donde se aplica el método de PCNN para la
generación de una clasificación de imágenes a través del reconocimiento de patrones.
PCNN produce distintas señales para cada una de las imágenes de entrada, el sistema
es entrenado para recordarlos y posteriormente clasificarlos.
Otro ejemplo de PCNN es en [6], donde es usado para la detección de objetos, se
realiza un pre-procesamiento donde una red neuronal suprime el ruido de la imagen
de entrada. En la etapa de segmentación, durante cada iteración del proceso se
eliminan las regiones que no satisfacen los criterios. En la etapa final, de cada grupo
de regiones conectadas que satisfaga los criterios de detección se identifica como una
instancia del objeto de interés.
En [7] se presenta otro trabajo donde PCNN es usado para la detección de objetos,
pero de igual manera es comparado con otras técnicas usadas para la detección de
bordes como lo son Prewitt, Sobel, Canny.

1.1 PCNN

PCNN es un modelo matemático propuesto por EckhornSynchronous basado en el


fenómeno de liberación de impulsos de las neuronas de la corteza visual del gato.
Debido a que el mecanismo de trabajo de PCNN es similar a las actividades de las
neuronas de la corteza visual del humano, el modelo es ampliamente utilizado en el
procesamiento de imágenes, la fusión de imágenes, eliminación de ruido dentro de la
imagen, reconocimiento de objetos, así como compresión de la imagen.
En la actualidad este algoritmo tiene dos puntos a considerar: es difícil encontrar
valores generales de los parámetros en PCNN del modelo matemático y depende de
un continuo ajuste y realización de varios experimentos [8].
Cada neurona en la red corresponde a un pixel en una imagen de entrada,
recibiendo información de color de su correspondiente pixel (por ejemplo, intensidad)
como un estímulo externo. Cada neurona también se conecta con sus neuronas
vecinas para recibir estímulos locales de ellos.
En comparación con el modelo de red neuronal tradicional, cuando se utilizó el
modelo PCNN en segmentación de la imagen digital, su ventaja es que no se necesita
ninguna preparación de la muestra.
Sin embargo, los parámetros de umbral, coeficiente de conexión, factor de
ponderación constante tiempo de decaimiento, y otros parámetros, deben establecerse
de antemano. Estodetermina la calidaden la segmentación [9].

Fig. 1. PCNN Modelo neuronal.

Como se muestra en la figura 1 el PCNN es una neurona de impulsos acoplada. El


modelo de neurona PCNN consta de tres partes: los campos receptivos, los de
modulación, y el generador de impulsos. Las ecuaciones matemáticas discretas del
modelo simplificado se describen como:

33
Fij (n)  I ij (1)

Lij (n)   wijkl Yij (n  1) (2)

U ij (n)  Fij (n)(1  Lij (n)) (3)

Eij (n)  e  E Eij (n  1)  VE Yij (n  1) (4)

1;U ij (n)  Eij (n)


Yij (n)   (5)
0; otherwise

G(n)   Yij (n) (6)


ij
Cada neurona es denotada con índices (i, j) y cada vecino por (k, l), n es la
iteración actual, Iij es la señal de entrada de estimulación (cuando se hace
procesamiento de imágenes Iijes usualmente el valor del pixel en escala de gris que
está localizado en la línea i y la columna j de la imagen), Fijes la alimentación de las
neuronas y ésta entrada en combinación con el enlace Lijentran a la actividad interna
de las neuronas. Durante las iteraciones, cuando la actividad interna Uij excede el
umbral Eijse genera el pulso. w es una señal de sinapsis, βes la fuerza de la unión,
mientras que αE es una constante de tiempo y finalmente VE es la magnitud de ajuste
[10].
Otro factor importante es G(n),el cual es un vector que contiene la sumatoria de
todos pixeles de las imágenes binarias que dan como resultado en Y(n) como
respuesta a cada impulso emitido.

1.2 Matriz de co-ocurrencia

La matriz de co-ocurrencia es un modelo de textura que se aplica en la segmentación


de textura de una imagen. La matriz de co-ocurrencia considera la relación espacial
entre 2 pixeles, llamados pixel de referencia y pixel vecino [2].

Fig. 2. Pixel de referencia y pixeles vecinos.

Como se observa en la figura 2, la X es el pixel de referencia y los demás


recuadros son los pixeles vecinos. Para el cálculo de la GLCM se puede analizar en
cualquiera de las cuatro direcciones posibles, verticalmente, horizontalmente o
diagonalmente, de igual manera se debe tomar en cuenta los bits de resolución.A
partir de esto se pueden desglosar diferentes propiedades de la matriz de co-
ocurrencia que nos permiten caracterizar la textura de la imagen.
La energía está dada de la siguiente manera:
G 1 G 1

 p(i, j )
i 0 j 0
2

(7)

Permite medir la uniformidad de los valores de grises de la matriz de co-


ocurrencia. La energía es grande cuando la imagen es constante.
Por su parte el contraste está definido por:

G 1 G 1
1
(G  1) 2
 (i  j )
i 0 j 0
2
p(i, j )
(8)

El contraste mide la intensidad de contraste entre un pixel y su vecino. Si la imagen


es constante el contraste es cero.
Y finalmente la entropía:

G 1 G 1
  p(i, j ) log p(i, j ) (9)
i 0 j 0
Mide la aleatoriedad de los elementos de la matriz de co-ocurrencia. La entropía
es grande si los elementos de la matriz de co-ocurrencia son iguales. G es el número
de valores de grises que se van a usar en relación a los bits de la imagen. Para una
imagen de 8 bits G=256, i y j son las filas y columnas de la imagen, mientras que p (i,
j) es la sumatoria de los valores de la matriz en función de (i, j)

2 Desarrollo

2.1 Obtención de imágenes

Primeramente, se generó una captura de imágenes satelitales, las cuales se obtuvieron


de la plataforma de Google Earth, en ellas son apreciables cambios significativos de
la zona urbana. Después de haber obtenido las imágenes se realizó el análisis de ellas.

Fig. 3. Imagen tomada en 2009.

35
Fig. 4. Imagen tomada en 2015.

Fig. 5.Regiones analizadas.

En la figura 3, se puede observar la imagen tomada en el año 2009 de la zona


urbana de la Cd. de León, Guanajuato, mientras que en la figura 4, se observa la
misma zona urbana pero tomada con 6 años de diferencia. Por su parte en la figura 5,
se observan una serie de cuadros rojos los cuales indican los lugares de las 15
regiones que se analizaron para evaluar el desempeño de la red neuronal pulsante y el
valor de G(n).
Las regiones analizadas, fueron seleccionadas debido a que en un previo análisis
visual se identificó que en ellas existía un cambio estructural.

2.2 Metodología

A continuación, se muestra el diagrama a bloques del proceso que se realizó.


Fig. 6. Diagrama a bloques.

Como se muestra en la figura 6, la primera etapa que se realizó fue la selección de


las imágenes a analizar, una la llamaremos pasada y la otra actual. Posteriormente se
realizó el registro de las imágenes, el cual consiste en la localización de una serie de
características en común entre las dos imágenes utilizando una detección de bordes,
después de haber verificado de manera visual que, si estuvieran en la misma posición,
se realizó la selección de las regiones a analizar, ésta selección se hizo de manera
manual y así verificar el área seleccionada, ya que, si se hubiera realizado de manera
automática, las áreas no serían las correctas. Ya seleccionadas las regiones se aplicó el
algoritmo de PCNN, dentro de este proceso se realiza el análisis de cada una de las
regiones seleccionadas, posteriormente a cada región se le realizó un proceso de 20
iteraciones, las cuales fueron graficadas, y finalmente se hizo una comparación entre
las gráficas de las regiones seleccionadas para determinar si hubo un cambio
estructural o no. Se debe mencionar que el método de PCNN no se usó en su
modalidad de entrenamiento de patrones, solamente se tomaron en cuenta los valores
resultantes después de cada proceso.

3 Resultados

Posterior a la obtención de las imágenes y la selección de las regiones a analizar, se


realizó una serie de pruebas las cuales fueron 3, en la primera prueba se analizó una
cantidad de 8 regiones, de estas regiones 4 tienen cambios y las otras 4 no, a estas
regiones se aplicó el algoritmo de PCNN con un proceso de 15 iteraciones, este
número se seleccionó debido a que los picos representativos de las curvas se
presentan dentro de las primeras 10 iteraciones, durante la segunda prueba se
analizaron las 15 regiones seleccionadas y para cada región se hizo un proceso con 15
iteraciones y para finalizar, en la última prueba se analizaron las 15 regiones pero con
un proceso de 20 iteraciones por cada región seleccionada. El número de iteraciones
se aumentó para ver el comportamiento de las curvas, pero se observó que al llegar a
las 20 iteraciones las curvas se mantenían estables. A continuación, se presentan
algunos de los valores obtenidos después de la aplicación del algoritmo de PCNN.

37
Fig. 7. Valores de la región 1 donde si hay un cambio estructural.

Fig. 8. Valores de la región 2 en la cual si hay un cambio estructural.

Fig. 9. Valores de la región 3 en la que si hay un cambio estructural.

Como se puede apreciar en las figuras 7, 8 y 9, son las gráficas correspondientes de


3 de las regiones analizadas en las cuales, si hay cambios, en cada gráfica se observa
la comparación de la imagen pasada con la imagen actual con respecto a sus 20
iteraciones. Se observa en las figuras que las curvas que predominan en la mayoría de
los casos son las gráficas con los círculos, las cuales corresponden a la imagen actual,
esto quiere decir que este algoritmo es factible para la detección de cambios
estructurales, es decir, que en la imagen pasada no había nada de construcción y en la
imagen actual si la hay.
De igual manera como se observa en las gráficas hay algunos valores de las
iteraciones de la imagen pasada que son mayores con respecto a los de la imagen
actual, esto se debe a que en ese número de iteración los impulsos generan la
estructura completa de la imagen analizada, por tal motivo al momento de hacer la
sumatoria de los pixeles de la imagen resultante el valor es mayor.
Retomando el método de la matriz de co-ocurrencia que fue descrito al principio
del trabajo, éste algoritmo es aplicado a las mismas 15 regiones, donde se obtiene la
siguiente gráfica.

Fig. 10. Gráfica de valores de contraste.

En la figura 10, se observa que en 12 regiones los valores de la imagen actual


son superiores a los de la imagen pasada, esto quiere decir que en esas regiones si
hubo un cambio estructural, pero de estas regiones solamente en 8 se obtuvieron
aciertos, en las otras 4 regiones se tuvieron errores, esto nos da que utilizando este
algoritmo de textura se tiene un promedio del 66.66% de aciertos.

4 Conclusiones

En función de los resultados obtenidos se puede observar en las figuras que los
valores correspondientes a la imagen actual son mayores a diferencia que los de la
imagen pasada, esto en otras palabras, nos dice que la implementación de éste método
si es factible para la identificación de cambios estructurales.
Como resultado de éstas pruebas preliminares se obtiene una eficiencia de un 85%
de detección de cambios, a comparación de usar otros métodos de análisis, como es el
caso de la matriz de co-ocurrencia que se obtuvo un 66.66% de promedio de aciertos.
Además, a comparación de que si se realizara el análisis de manera manual se
tendría menos efectividad, por lo cual si es factible la identificación de los cambios
haciendo uso del método de PCNN.

Referencias

1. Pajares Martinsanz, G.; de la Cruz García, J.:Visión por computador: Imágenes digitales y
aplicaciones. Madrid, España.Alfaomega. 2001.
2. Presutti, M.: La matriz de co-ocurrencia en la clasificación multiespectral: Tutorial para la
enseñanza de medidas texturales en cursos de grado universitario. 4° Jornada de
EducacaoemSensoriamento Remoto no Ambito do Mercosul, 11 a 13 de agosto de 2004.
3. Gong, L.; Li, Q.; Zhang, J.: Earthquake Building Damage Detection with Object-Oriented
Change Detection, IGARSS, 2013.
4. Castillo, A.; Vázquez, J.; Ortegón, J.; Rodríguez, C.: Prácticas de laboratorio para
estudiantes de ingeniería con FPGA. IEEE Latin América Transactions, Vol. 6, No. 2, junio
2008.
5. Gollamudi, A.; Calvin, P.; Yuen, G.; Bodruzzaman, M.; Malkani, M.: Pulse Coupled
Neural Network Based Image Classification. IEEE, 1998.

39
6. Ranganath, H.; Kuntimad, G.: Object Detection Usinf Pulse Coupled Neural Network.
IEEE Transactions on Neural Networks, Vol. 10, No. 3, Mayo 1999.
7. Mingliang, W.; Gang, Z.; Jiankang, H.; Yu, S.; Ling, S.: Edge detection for aluminum alloy
MIG welding pool based on pulse coupled neural network. Seventh International
Conference on Natural Computation. 2011.
8. Li, J.; Zou, B.; Ding, L.; Gao, X.: Image Segmentation with PCNN Model and Immune
Algorithm. Journal of Computer, Vol. 8, No. 9, Septiembre 2013.
9. Ma, H.R.; Cheng, X.W.: Automatic Image Segmentation with PCNN Algorithm Based on
Garyscale Correlation. International Journal of Signal Processing, Image Processing and
Pattern Recognition, Vol. 7, No. 5, pp. 249-258, 2014.
10. Ma, Y.; Zhan, K.; Wang, Z.: Applications of Pulse-Coupled Neural Networks. Springer.
2010.
Sensor de Temperatura, Humedad e Iluminancia con
Conexión a Internet basado en Arduino

Alejandro García-Santiago1, Víctor M. Méndez-Alvarez1, Vicente Y. Ponce


Hinestroza1, José De J. Salazar-Arrieta1, Adán Torralba-Ayance1, Juan C.
Villegas-Hernandez1, Aldrin Barreto-Flores1, Verónica E. Bautista-López2,Carlos
Escamilla-Weinmann3
1
Facultad de Ciencias de la Electrónica
2
Facultad de Ciencias de la Computación
3
Bioterio Claude Bernard
Benemérita Universidad Autónoma de Puebla, Av. San Claudio S/N Ciudad Universitaria,
Puebla, Puebla, México.
abarreto@ece.buap.mx

Resumen.Se presenta en este artículo un dispositivo desarrollado e


implementado en el Bioterio Claude Bernard de la Benemérita Universidad
Autónoma de Puebla con el cual es posible monitorizar la humedad,
temperatura e iluminancia de un área de manera periódica. La propuesta se basa
en la plataforma Arduino Mega junto con diferentes sensores para las variables
de temperatura, humedad e iluminancia, así como en el servidor del Internet de
las Cosas denominado Xively. Además, es posible guardar estos datos para un
análisis posterior, enviar estos datos de manera remota vía internet y recibir
avisos en caso de haber algún cambio inesperado en el ambiente sensado vía
Twitter. El sistema fue probado en el Bioterio Claude Bernard funcionando de
manera adecuada a la hora de realizar el monitoreo y enviar alertas en caso de
no cubrir los rangos permitidos de valores de las variables en estudio.
Palabras Clave: Arduino, Xively, Humedad, Temperatura, Twitter,
Iluminancia.

1 Introducción

En distintos sectores como hogares, industrias, universidades, centros de


investigación, actividades agrícolas, entre otras áreas, existe la necesidad de
monitorizar las variables físicas de temperatura, humedad e iluminancia, que permitan
a los usuarios controlar estas variables ambientales para un óptimo desarrollo de las
actividades que estén realizando.
Basándose en esta necesidad, se desarrolló un dispositivo robusto, que permite
monitorizar las variables físicas de temperatura, humedad e iluminancia que se
encuentre en torno a él. En cuanto al entorno en el cual podría ser instalado se
encuentran: bioterios, invernaderos, museos, laboratorios farmacéuticos, o cualquier
lugar que necesite un equipo con las características que se ofrecen.
El dispositivo desarrollado es capaz de monitorizar humedad, temperatura e
iluminancia mediante rutinas programables que miden los valores de estas variables
en su entorno y a su vez los almacena en una micro SD en un formato para ser leído
en Microsoft Excel. Puesto que el sistema cuenta con un módulo de Wifi, es capaz de
transmitir inalámbricamente los datos para ser almacenados y visualizados
gráficamente en una página de internet (Xively). De esta forma, los datos son
accesibles en cualquier momento o lugar con cualquier dispositivo que tenga acceso a
internet (PC, smartphones, tablets, etc.).
Dado que el sistema realiza un monitoreo preciso, cuenta con la capacidad de
mandar avisos a una red social (Twitter) en caso de que algunas de las variables se
encuentran fuera del rango ideal o también sí todo se encuentra en condiciones

41
normales. El dispositivo puede ser instalado en cualquier espacio que cuente con una
fuente de energía eléctrica y señal de Wifi con seguridad WPA y WEB.

2 Estado del arte

Actualmente existen dispositivos muy sofisticados pero costosos, tal es el caso de la


empresa Ditecom Design [1], la cual cuenta con un amplio catálogo de varios
sistemas de monitoreo para distintas variables de manera remota, el dispositivo que
más se asemeja a nuestro sistema es el HWg-STE. El modelo HWg-STE es un
termómetro IP. Permite monitorizar dos sondas de temperatura/humedad. Si la
medida del sensor sale fuera del rango definido se envía una alerta por e-mail.
Combinado con el software HWg-PDMS suministrado se convierte en un
almacenador de datos con posibilidad de exportarlos a Excel. Incluye dos entradas: 2
sondas de temperatura / humedad y además incluye una sonda de temperatura de 3m,
alimentador y software HWg-PDMS.
Por otra parte, se encuentra la empresa Biosistemas [2] con un sistema de
monitoreo de temperatura llamado Sixcan. Sixcan es un sistema que mide, procesa y
registra parámetros físicos tales como temperatura, humedad, concentración de gases,
peso, caudal, presión, estados lógicos y muchos más. Visualiza en tiempo real los
valores de medición de cada uno de los sensores conectados al sistema, capta y
registra en base de datos todas las mediciones efectuadas en intervalos de tiempo
definidos por el usuario.

3 Características del sistema

Para el desarrollo de este dispositivo se hizo un análisis de las ventajas y desventajas


de los diferentes dispositivos comerciales existentes hoy en día. Se observó que
presentan algunas limitaciones, tales como: solo muestran humedad y temperatura, no
guardan un archivo para ser visto en Microsoft Excel, entre otros puntos. Nuestra
propuesta ante esta problemática fue crear un sistema de monitoreo de humedad,
temperatura y luminosidad utilizando la plataforma de desarrollo que nos brindan los
micro controladores Arduino [3].
Para el desarrollo de la parte lógica de nuestro sistema, específicamente se utilizó
un micro controlador Arduino Mega 2560 [4], el cual se comunica con diversos
periféricos que se muestran en la figura 1.

Fig. 3. Diagrama general del sistema.


• Sensor de humedad y temperatura DHT22: Es un dispositivo de entrada, que
permite al micro controlador adquirir los valores de las variables de humedad y
temperatura en su entorno.
• Sensor de luminosidad TSL2561: Es un dispositivo de entrada, que permite al
micro controlador adquirir el valor de la luminosidad en su entorno.
• Reloj en tiempo real PCF8563: Es un dispositivo de entrada que permite al
sistema tener una sincronización precisa en tiempo real. Además de contar con
una pila propia que en caso de que el sistema no se encuentre conectado a la red
eléctrica, el reloj no perderá sincronización en tiempo real.
• Display de cristal líquido: Es un dispositivo de salida que permite al usuario
visualizar los valores de la humedad, temperatura y luminosidad del entorno
donde se encuentre el sistema.
• Arduino Wifi shield: Es una placa que se le conecta al Arduino permitiéndole
poder conectarse inalámbricamente a internet.

3.1 Rutina Principal

En la figura 2 se muestra la lógica del programa principal donde se encuentra la


adquisición y manejo de los datos, básicamente es la función más relevante en todo
el código.

• Conexión: El sistema empieza desplegando un mensaje en el display en donde se


le muestra al usuario que el sistema está intentando conectarse a una red Wifi. El
sistema cuenta con una rutina la cual lo mantendrá en espera hasta que puede
conectarse a una red de Wifi y a su vez cuenta con un indicador (Led Rojo) que
indica al usuario que aún no se ha establecido la conexión. Una vez que el
sistema se conectó a una red de Wifi activa su indicador (Led Verde) y procede
con el resto de sus rutinas.

43
Fig. 4. Diagrama general del sistema.

• Adquisición de datos: El sistema adquiere los valores de las variables y datos de


interés tales como: la humedad, temperatura, luminosidad, fecha y hora. Así
como, los valores de los rangos ingresados por el usuario desde la página de
Xively [5].
• Guardar en la microSD: Se inicializa el guardado en una microSD, así mismo, se
le da el nombre y tipo de formato al documento en la que se almacenara en la
microSD, en este caso se guarda en un archivo separados por comas para ser
visto en el programa Excel (véase figura 3).
• Visualización de los datos en internet: Los valores de las variables de humedad,
temperatura y luminosidad son cargados por el sistema a un servicio cloud
llamado Xively, para su visualización de manera inalámbrica a través del
servicio de Wifi. El sistema cuenta con una rutina de evaluación que se encarga
de verificar que los datos hayan sido cargados de manera exitosa; en caso de no
haber cargado los datos el dispositivo manda al sistema a checar su conexión y
en caso de haberse desconectado manda a la rutina de conexión, mandando
también un aviso en el display al usuario avisándole que existe un problema con
la señal Wifi.
• Envío de avisos: Previamente se adquieren los valores de los rangos ideales de
las variables que el usuario ingresa desde la página de Xively; con estos datos el
sistema compara los valores leídos de los sensores, con los valores de los rangos
ideales. De esta manera, el sistema enviará el mensaje pertinente dependiendo si
se encuentra una o más variables fuera de su rango o si éstas se encuentran
dentro del rango. A su vez, el sistema cuenta con una rutina que le permite saber
cuál fue el último mensaje que envió; esto se hace para no duplicar el mismo
mensaje en caso de que en la siguiente lectura de datos se tuviera el mismo aviso
y así no saturar de mensajes repetidos la cuenta de Twitter.
• Tiempo de espera para el siguiente muestreo: El sistema espera un tiempo X que
el usuario haya ingresado desde la página de Xively. Posteriormente el programa
volverá a ejecutar todas las rutinas. (ver figura 2).

Fig. 5. Registro de las variables adquiridas por el sistema guardadas en un archivo


Excel.

4 Pruebas y Resultados

El sistema desarrollado se muestra en la figura 4 y ha sido probado en el Bioterio


Claude Bernard de la Benemérita Universidad Autónoma de Puebla, en esta etapa se
probaron todas las funciones del sistema como son la carga de datos a Xively, el
cambio de los rangos mínimos y máximos de humedad, temperatura y luminosidad y
los avisos en Twitter. Las figuras 5, 6 y 7 muestran los valores de la humedad,
temperatura y luminosidad cargados en la página Xively, también se muestran los
valores de los rangos máximo y mínimo que pueden ser ajustados por el usuario. En
la figura 8 se muestran los mensajes enviados a Twitter que corresponden cuando el
sistema se encuentra en condiciones normales donde los datos están dentro de los
valores preestablecidos, también se ilustra cuando el sistema encuentra que alguna de
las variables en estudio ha sobrepasado los límites preestablecidos. En este caso el
sistema imprime una alerta directamente en la cuenta de twitter.

Fig. 6. Imagen del dispositivo desarrollado, se observa el display, así como el sensor
de temperatura y humedad en una de las esquinas.

45
Fig. 7. Captura de pantalla de las gráficas de luminosidad y humedad junto con losrangos
mínimos y máximos ajustables por el usuario.

Fig. 8.El usuario podrá ingresar requerimientos necesarios. En este caso puede configurar el
tiempo de muestreo del sistema.

Fig. 9.Muestra el valor de la luminosidad de la página de Xively. También se muestra el


valor de luxes máximo, el cual puede ser modificado por el usuario.
Fig. 10.Muestra los avisos enviados por el sistema a Twitter.

5 Conclusiones

El sistema desarrollado fue probado en el Bioterio Claude Bernard de la Benemérita


Universidad Autónoma de Puebla y funcionó adecuadamente. Todas las variables
fueron monitoreadas a través de la página de Xively, lo cual demuestra que el
desarrollo de aplicaciones para el Internet de las Cosas es de relevancia en este
problema donde se necesita conocer el momento de cambios que pongan en riesgo a
la población de animales en un Bioterio. Un punto importante del sistema a diferencia
de otras propuestas fue el agregar una cuenta sólo para notificaciones en twitter. Esto
junto con el almacenamiento de los datos en los servidores para su posterior análisis y
estudio ayudó a tener un mejor control de las variables de interés en un Bioterio.
Actualmente se está trabajando en incluir nuevas variables al sistema en función del
contexto del hábitat de los animales.

Referencias

1. Ditecom.http://www.ditecom.com/monitorizacion_IP/hgw-ste-termometro-ip.shtml (rev.
01/06/2014).
2. Biosistemas.http://www.biosistemas.com.uy/producto/sistema-de-monitoreo-de-temperatura
(rev. 01/06/2014).
3. Arduino. http://www.arduino.cc/ (revisado 20/01/2014).
4. ArduinoBoardMega, http://arduino.cc/en/Main/arduinoBoardMega (rev. 20/01/2014).
5. Xively con Arduino http://xively.com/dev/tutorials/arduino_wifi/ (rev. 27/01/2013).

47
Clasificador DD para Datos Funcionales

Gladys Linares-Fleites1, Ma. de Lourdes Sandoval-Solís2, Brenda C. Matías


Castillo3
1
Dpto. de Investigaciones en Ciencias Agrícolas. Instituto de Ciencias.
2
Facultad de Ciencias de la Computación.
3
Facultad de Ciencias Físico Matemáticas.
Benemérita Universidad Autónoma de Puebla
14 Sur y Av. San Claudio, Ciudad Universitaria, Puebla, Puebla.
1
gladys.linares@correo.buap.mx, maria.sandoval@correo.buap.mx,
3
caty_b26@hotmail.com

Resumen. En el trabajo se expone el cambio de paradigma que se está produciendo en el


ámbito de la ciencia, para resolver problemas de clasificación supervisada. Se desarrolla la
solución basada en funciones kernel y se analiza su adecuación como vía para tratar
dereconciliar el dilema entre lo lineal y lo no lineal en estos problemas. En particular,
utilizamos el clasificador DD(Depth – Depth) que realiza la clasificación de un grupo de datos
multivariados (base de datos IRIS) utilizando la estimación de ese clasificador, a través del
paquete fda.usc, que desarrolla diversos procedimientos de clasificación para datos
funcionales, donde los métodos kernel están incluidos.

Palabras Clave: Clasificación Supervisada, Métodos Kernels, Aprendizaje Estadístico

1 Introducción

Los problemas de clasificación, denominados también como discriminación,


aprendizaje estadístico, o reconocimiento de patrones, están siendo incluidos en una
rama reciente de la Estadística conocida como Análisis de Datos Funcionales [1].
El Análisis de Datos Funcionales implica el análisis de los datos cuyas unidades
ideales de observación son funciones definidas en un dominio continuo, y los datos
observados consisten en una muestra de funciones tomada de alguna población,
muestreada en una cuadrícula discreta. Esta rejilla puede ser fina o escasa, regular o
irregular, común o variando a través de funciones incluidas en la muestra. Por lo
general, estas funciones están definidas en un espacio euclidiano de una dimensión,
pero este paradigma también incluye funciones en espacios de dimensiones
superiores, tales como la bidimensional o la tridimensional y también incluye
funciones observadas en otros dominios no euclidianos.
Estos tipos de datos funcionales han recibido mucha atención en las aplicaciones y
en el desarrollo metodológico, debido a que el progreso tecnológico ha conducido al
desarrollo de nuevos procedimientos de medición más rápidos y precisos. Como una
consecuencia, han surgido otras posibilidades para obtener datos experimentales.
Además, en muchas áreas de la ciencia y de la tecnología es común trabajar con
grandes bases de datos. Es necesario centrarnos en los nuevos paradigmas surgidos
para la modelización de datos donde el objetivo es clasificar nuevas observaciones
teniendo conocimiento previo de la existencia de patrones o grupo en la muestra [2].
.
El capítulo se ha estructurado de la manera siguiente: en el epígrafe 2 se hace un
recuento de la clasificación supervisada y se introducen los conceptos fundamentales
de la clasificación por funciones kernel y los nuevos procedimientos que han surgido
al introducir medidas de profundidad (depth). En el epígrafe 3, tomando como
ejemplo la base de datos IRIS se desarrolla el clasificador DD (Depth – Depth) y, a
través del paquete fda.usc en R [3], se exponen varios de los procedimientos de
clasificación posibles y se muestran sus ventajas. Finalmente, se brindan las
conclusiones y las referencias.

2 La clasificación supervisada
Cuando conocemos una muestra de elementos bien clasificados que sirve de pauta o
modelo para la clasificación de nuevas observaciones, se utilizan técnicas que se
agrupan bajo el nombre de clasificación supervisada.
El tratamiento del problema de clasificación tiene su origen en el campo de la
estadística. El científico británico K. Pearson, en 1921, en un trabajo con datos
antropométrico, propuso un coeficiente “C” que midiera la distancia entre dos
poblaciones. En 1925, el estadístico hindú P.C. Mahalonobis propuso el coeficiente
D2 que generalizaba la distancia entre dos poblaciones y se conoce como “medida de
distancia generalizada”. En 1936, el estadístico inglés R. Fisher publicó su primer
trabajo sobre Funciones Discriminantes. El enfoque de Fisher no fue medir
“distancias” entre poblaciones, sino clasificar un valor de una muestra en alguna de
dos poblaciones teóricas, usando para ello, la información de dos o más variables
observables [4].
A partir de estos primeros resultados, las técnicas de discriminación se fueron
desarrollando paralelamente con el desarrollo de la computación, existiendo en la
actualidad gran cantidad de herramientas computacionales que permiten
clasificaciones y predicciones de gran precisión.El desarrollo del aprendizaje
estadístico y, en particular, el de la clasificación supervisada, basado en funciones
kernel es, hasta 2000, paralelo al surgimiento y desarrollo de las support vector
machines.Tras la llegada de las funciones kernel al ámbito del aprendizaje estadístico
a través de las supportvector machines, los últimos años han sido testigo de la
proliferación de procedimientos de clasificacióncentrados en la kernelización de las
técnicas lineales y no lineales más conocidas.
Los procedimientos de detección de patrones basados en funciones kernel son, en
esencia, métodos de detección de patrones lineales que gozan de todas las ventajas
que se buscan en estos algoritmos, entre ellos, sencillez, estabilidad en la solución, y
eficiencia computacional [2].

2.1 Clasificación supervisada con Funciones Kernel

En esencia, un algoritmo de detección de patrones basado en funciones kernel


consiste en:
• Un conjunto de elementos en el que se desea explorar la existencia de patrones o
grupos. Llamaremos a este conjunto Espacio de Entrada (Input Space) y lo
denotaremos por X.

• Un conjunto de patrones al que llamaremos Espacio de Características (Feature


Space), que debe tener una estructura algebraica de Espacio de Hilbert y que
denotaremos por F. En particular, el espacio F debe estar dotado de un producto
escalar:
<·, ·>: F × F → ℝ

• Una función Φ: X →F que incrusta (embeds) cada elemento del input space X en
elfeature space F . Esta función Φrecibe el nombre de incrustación (embedding).

• Un algoritmo de detección de patrones lineales en el feature space F que ha sido


kernelizado, es decir, ha sido rediseñado de manera tal que para alcanzar su
objetivo de detección de patrones en F el algoritmo no necesita disponer de los
valores concretos de Φ(x) ∀x∈X sino tan solo de los productos escalares entre las

49
imágenes de loselementos de X , es decir, <Φ(x),Φ(z) >∀x , z∈X , siendo <· , ·>:
F×F→ℝelproducto escalar definido en F al que se ha aludido previamente.

• Una función real definida sobre el producto cartesiano del input space con él
mismok : X×X → ℝ, llamada función kernel, que a cada pareja de elementos del
input spaceX le hace corresponder el producto escalar en F de sus respectivas
imágenes por lafunción Φ, es decir que:

k (x, z) = <Φ(x),Φ(z) >∀x , z∈X

Este sencillo esquema proporciona una inteligente solución al dilema entre los
algoritmos de detección de patrones lineales o no lineales, reuniendo en un nuevo
enfoque las mejores características de cada uno [2].
En otras palabras, la elección de la función kernel es la que va a determinar qué
patrones cabe esperar en el input space.
En la última década, los métodos basados en kernels se incluyen en una rama de la
Estadística conocida como el Análisis de Datos Funcionales, permitiendo utilizar las
herramientas computacionales desarrolladas en lenguaje R [3].
Las reglasde clasificación incluyen, pero no se limitan, al análisis de
discriminación lineal, al análisis de discriminante cuadrático, y al análisis de k-
vecinos más cercanos, entre otros.
Los procedimientos citados [4], dado que no se basan en el supuesto de normalidad
multivariada de las variables consideradas (como es el enfoque clásico debido a
Fisher), se conocen como procedimientos no paramétricos.
El análisis de discriminación lineal (lda) es el caso más simple, ya que considera
que todas las matrices de covarianza poblacional son iguales, aunque no se conocen.
Una observación se clasifica en un grupo si la distancia (generalmente de
Mahalanobis) de una observación al centro del grupo es la mínima. El “lda” tiene la
propiedad de simetría, esto es, la función discriminante lineal del grupo i evaluada
con la media del grupo j es igual a la función discriminante lineal del grupo j evaluada
con la media del grupo i.
En el análisis de discriminación cuadrática (QDA) no es necesario hacer la
suposición de igualdad de las matrices de covarianza poblacional, y al igual que en el
discriminante lineal, una observación se clasifica en un grupo con la distancia más
pequeña; pero no es simétrica y entonces la función discriminante cuadrática del
grupo i evaluada con la media del grupo j no es igual a la función discriminante
cuadrática del grupo j evaluada con la media del grupo i.
El análisis de discriminación del vecino más cercano (knn) no depende de que los
datos estén distribuidos normalmente, sino interesa las distancias entre las parejas de
vectores de observaciones. La idea básica es la siguiente: para una nueva observación
que deba clasificarse, debe encontrarse, primero, la observación del conjunto de
datos que esté más cercana a esa nueva observación y segundo, debe asignarse la
nueva observación al grupo del que proviene los k vecinos más cercanos.
Otras ideas, en vez de distancias, han surgido para trabajar con estos
procedimientos [5] [6] y [7].

2.2 Clasificadores DD

Por otra parte, para el análisis de los problemas de la clasificación supervisada o de


discriminación con datos funcionales, ha surgido un gran número de nuevas
herramientas, entre los que se encuentran clasificadores de profundidad (Depth).
Las profundidades son herramientas, relativamente simples, que se idearon para
ordenar puntos en un espacio, dependiendo de la profundidad en que están con
respecto a una distribución de probabilidad P.
En el caso unidimensional, es fácil ordenar puntos con respecto a P, siendo la
medianael punto más interior y los percentiles extremos las periféricas. En el caso
multidimensional, no existe ningún orden natural, por lo tanto, ordenar los puntos de
la parte interior a la parte externa de una distribución o de la muestra no es tan fácil.
Para superar esta dificultad, se ha propuesto el uso de profundidades con diferentes
enfoques.
El clasificador de Máxima Profundidad fue el primer intento en problemas de
clasificación, al utilizar bases de datos de profundidades en lugar de bases de datos
observados (datos en bruto).Para mejorar la regla ProfundidadMáx, [8] Li et al.,
(2012) introdujeron el clasificador Depth - Depth, que se utilizará en el caso de
estudio en el próximo epígrafe de este trabajo.
Estas y otros enfoques de profundidad están basadas sobre proyecciones aleatorias
usando el mismo esquema, que se desarrolló anteriormente, esto es, dada una muestra
de X1, …, Xn de funciones en un espacio de Hilbert con producto escalar <·,· >, se
selecciona un vector unitario a en este espacio (independientemente de las Xi)y los
datos se proyectan sobre un subespacio unidimensional generado por a.
La muestra de profundidad de un dato x es la profundidad univariada de la
proyección < a,·x> con respecto a la muestra proyectada < a,·x> } de i=1 hasta n.
Las funciones necesarias para llevar a cabo estos procedimientos están libremente
disponibles en el CRAN del paquete fda.usc [3]. En particular, utilizaremos en este
trabajo el clasificador DD. Este procedimiento realiza la clasificación de un grupo de
datos utilizando la estimación DD-clasificador en los siguientes pasos:

Paso 1. Calcula la medida de profundidad seleccionada de los puntos de una


submuestra de cada grupo de nivel g y dimensión p de los datos. Se pueden
especificar distintos tipos de medidas de profundidad a partir de datos multivariados;
aquí solo mencionamos las dos siguientes:
• "MhD": profundidad de Mahalanobis
• "RP": proyecciones aleatorias de profundidad.
.
Paso 2. Los errores de clasificación dr calcula en base a la profundidad de datos
computarizada en el paso 1 utilizando las diferentes técnicas de clasificación, como:
• "lda": análisis discriminante lineal.
• "QDA": análisis discriminante. Cuadrático
• "knn": clasificación de k-vecino más cercano

2.3 Caso de estudio: IRIS

La base de datos IRIS fue introducida por R. Fisher en 1936 y ha sido muy utilizada
en la literatura referida a problemas de clasificación supervidada. La base muestra
datos de lirios de tres especies: IRIS setosa, IRIS versicolor e IRIS virgínica.
Representa una muestra de 150 plantas ylas variables aleatorias observadas, en
centímetros, son medidas sobre el sépalo y el pétalo de esos lirios, a saber, longitud
del sépalo, ancho del sépalo, longitud del pétalo y ancho del pétalo.

A continuación se muestran algunos de los resultados que pueden obtenerse del


procedimiento de Clasificación DD, del paquete fda.usc. Se combinaron dos
medidas de profundidad (MhD y RP)ytres clasificadores (lda, QDA yknn).

Los comandos a utilizar del paquete fda. usc[3], en el caso de la profundidad “RP”
y el clasificador “ lda” son los siguientes:

# DD-classif for multivariate data


data(iris)
group<-iris[,5]
x<-iris[,1:4]
out10=classif.DD(group,x,depth="RP",classif="lda")
summary.classif(out10)

51
La salida típica del programa brinda las probabilidades de clasificación correcta
por grupo y total. Obsérvese en la tabla 1, que las seis posibilidades desarrolladas
muestran altas probabilidades de clasificación correcta. Las combinaciones de la
medida de profundidad RP con los clasificadores QDA yknnpresentan casi el 99% de
clasificación correcta. Esto ocurre también con la profundidad de Mahalanobis
combinado con el lda y knn. El resultado señala la bondad del clasificador knn con
cualquiera de las dos medidas de profundidad.
En la columna central de la tabla 1 se destaca que las IRIS setosa son siempre
bien clasificadas.
.

Tabla 3. Probabilidades de clasificación correcta

Medida Clasifica Probabilidad de Clasificación Probabilid


de dor por grupo ad
profundidad Clasificación
Correcta
RP lda setosa versicolor virginica 0.9733
1.00 0.94 0.98

RP qda setosa versicolor virginica 0.9867


1.00 0.98 0.98

RP knn setosa versicolor virginica 0.9867


1.00 0.98 0.98

MhD lda setosa versicolor virginica 0.9867


1.00 0.96 1.00

MhD qda setosa versicolor virginica 0.9733


1.00 0.96 0.96

MhD knn setosa versicolor virginica 0.9867


1.00 0.98 0.98

La tabla 2 muestra las matrices de confusión, que son tablas cruzadas de dos
entradas: en una entrada se dan las frecuencias verdaderas de cada especie, mientras
que en la otra entrada se dan las frecuencias estimadas por el análisis de clasificación
utilizado. Obsérvese que las 50 IRIS setosa son clasificadas siempre correctamente,
ya que la frecuencia 50 aparece en el primer elemento de la diagonal de cada matriz
de confusión.

Tabla 2.Matriz de confusión


Medida Clasifica Matriz de confusion
de dor
profundidad
RP lda setosa versicolor virginica
setosa 50 0 0
versicolor 0 47 3
virginica 0 1 49

RP qda setosa versicolor virginica


setosa 50 0 0
versicolor 0 49 1
virginica 0 1 49

RP knn setosa versicolor virginica


setosa 50 0 0
versicolor 0 49 1
virginica 0 1 49

MhD lda Setosa versicolor virginica


setosa 50 0 0
versicolor 0 48 2
virginica 0 0 50

MhD qda Setosa versicolor virginica


setosa 50 0 0
versicolor 0 48 2
virginica 0 2 48

MhD knn setosa versicolor virginica


setosa 50 0 0
versicolor 0 49 1
virginica 0 1 49

El procedimiento brinda, además, gráficas que permiten profundizar en las


interpretaciones y que se muestran en las figuras 1 y 2. Cada figura agrupa las
medidas de profundidad utilizadas en cada uno los métodos de clasificación.

DD-plot(RP,lda)
0.1 0.2 0.3 0.4 0.5
0.0 0.1 0.2 0.3 0.4 0.5 0.6

x.RP.setosa

Points
setosa Classif y
versicolor good
virginica bad
0.5

x.RP.versicolor
0.4
0.3
0.2

Points
setosa Classif y
0.1

versicolor good
virginica bad
0.5

x.RP.virginica
0.4
0.3
0.2

Points
setosa Classif y
0.1

versicolor good
virginica bad

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.1 0.2 0.3 0.4 0.5

53
DD-plot(RP,qda)
0.1 0.2 0.3 0.4 0.5

0.1 0.2 0.3 0.4 0.5


x.RP.setosa

Points
setosa Classif y
versicolor good
virginica bad

0.5
x.RP.versicolor

0.3 0.4
0.1 0.2
Points
setosa Classif y
versicolor good
virginica bad

x.RP.virginica

0.4
0.3
0.2
Points
setosa Classif y

0.1
versicolor good
virginica bad

0.1 0.2 0.3 0.4 0.5 0.1 0.2 0.3 0.4

DD-plot(RP,knn)
0.1 0.2 0.3 0.4 0.5

0.0 0.1 0.2 0.3 0.4 0.5 0.6


x.RP.setosa

Points
setosa Classif y
versicolor good
virginica bad
0.5

x.RP.versicolor
0.4
0.3
0.2

Points
setosa Classif y
0.1

versicolor good
virginica bad

0.5
x.RP.virginica

0.4
0.3
0.2
Points
setosa Classif y

0.1
versicolor good
virginica bad

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.1 0.2 0.3 0.4 0.5

Fig. 1. Medida de profundidad RP con los clasificadores lda, qda y knn


DD-plot(M hD,lda)
0.0 0.2 0.4 0.6

x.MhD.setosa
0.6
0.4

Points
0.2

setosa Classif y
versicolor good
virginica bad
0.0

x.MhD.versicolor
0.6
0.4

Points
0.2

setosa Classif y
versicolor good
virginica bad
0.0

0.0 0.1 0.2 0.3 0.4 0.5

x.MhD.virginica

Points
setosa Classif y
versicolor good
virginica bad

0.0 0.2 0.4 0.6 0.0 0.1 0.2 0.3 0.4 0.5
DD-plot(M hD,qda)
0.0 0.2 0.4 0.6

x.MhD.setosa

0.6
0.4
Points

0.2
setosa Classif y
versicolor good
virginica bad

0.0
x.MhD.versicolor

0.6
0.4
Points

0.2
setosa Classif y
versicolor good
virginica bad

0.0

0.0 0.1 0.2 0.3 0.4 0.5


x.MhD.virginica

Points
setosa Classif y
versicolor good
virginica bad

0.0 0.2 0.4 0.6 0.0 0.1 0.2 0.3 0.4 0.5

DD-plot(MhD,knn)
0.0 0.2 0.4 0.6

x.MhD.setosa

0.6
0.4
Points

0.2
setosa Classif y
versicolor good
virginica bad

0.0
x.MhD.versicolor
0.6
0.4

Points
0.2

setosa Classif y
versicolor good
virginica bad
0.0

0.0 0.1 0.2 0.3 0.4 0.5


x.MhD.virginica

Points
setosa Classif y
versicolor good
virginica bad

0.0 0.2 0.4 0.6 0.0 0.1 0.2 0.3 0.4 0.5

Fig.2. Medida de profundidad MhD con los clasificadores lda, qda y knn

3 Conclusiones

En el trabajo se ha destacado el papel que jugará el desarrollo de nuevos algoritmos


en la clasificación supervisada, mostrando cómo es posible (y sencillo) kernelizar
algunos algoritmos lineales de detección de patrones, adaptándose para su utilización
con funciones kernel, MhD y RP.
La base de datos IRIS, referente obligado en los problemas de clasificación se
resolvió, en diversas maneras, con el entorno de programación R[3], que por su
potencia y versatilidad abre un amplio campo para investigación de estos nuevos
procedimientos.
Recientes publicaciones, [9] y[10] entre otras muchas, señalan las áreas de
posibles líneas de investigación en el tema de clasificación supervisada con datos
funcionales.

Referencias

1. Ramsay J, Silverman B (2005). Functional Data Analysis. Springer. New York. EU.
2. Gibaja - Martíns JJ (2010). Aprendizaje Estadístico con Funciones Kernel. Tesis de
Maestría UNED. España.
3. Febrero - Bande M, Oviedo de la Fuente M. (2012) Statistical computing in functional data
analysis: the R package fda.usc. J Stat Softw 51(4):1 -28.

55
4. Linares, G. (2006). Análisis de Datos Multivariados. Editorial de la Benemérita
Universidad de Puebla. México.
5. Liu RY, Parelius JM, Singh K (1999) Multivariate analysis by data depth: descriptive
statistics, graphics and inference. Ann Statist 27(3):783 - 858.
6. Ghosh AK, Chaudhuri P (2005). On maximum depth and related classifiers. Scand J Statist
32(2):327- 350.
7. López - Pintado S, Romo J (2009). On the concept of depth for functional data. J Amer
Statist Assoc 104(486):718 – 734
8. Li J, Cuesta - Albertos JA, Liu RY (2012) DD - Classifier: Nonparametric classification
procedure based on DD - plot. J Amer Statist Assoc 107(498):737-753.
9. Ieva F, Paganoni AM (2013) Depth measures for multivariate functional data. Comm
Statist-Theory Methods 42(7):1265 - 1276.
10. Galeano P, Esdras J, Lillo RE (2015) The Mahalanobis Distance for Functional Data With
Applications to Classification. Technometrics (57)2:281-291.
Control Acotado de la Orientación de un Helicóptero
con Cuatro Rotores.

Juan Díaz-Téllez1, José M. Gutiérrez-Arias1,José E. Flores-Mena1


1
Facultad de Ciencias de la Electrónica, Benemérita Universidad Autónoma de Puebla,
Av. San Claudio 18 sur, Ciudad Universitaria 72570, Puebla, México.
1
quatro0166@gmail.com, jmgutierrez@ece.buap.mx, eflores@ece.buap.mx

Resumen. Se presenta un control acotado para la estabilización de la


orientación de un helicóptero con cuatro rotores. Esta ley de control está basada
en el gradiente de la energía potencial de la aeronave. Se propone también un
controlador acotado para la estabilización de la altitud. Finalmente se
comprueba la robustez del control para la orientación en presencia de viento e
incertidumbres paramétricas.
Palabras Clave: Control Acotado, Gradiente, Energía Potencial.

1 Introducción

En los últimos años un creciente interés por los vehículos aéreos no tripulados se ha
mostrado en la comunidad científica. Este interés se centra en el control, modelado y
diseño de este tipo de vehículos. Particularmente el helicóptero de cuatro rotores ha
destacado entre los demás, debidos a su capacidad de realizar vuelos verticales,
estacionarios, y a baja velocidad. Este vehículo de despeje y aterrizaje vertical tiene
varias aplicaciones tanto militares como civiles, algunas de estas aplicaciones son
tareas de búsqueda, rescate, vigilancia, espionaje, filmación cinematográfica e
inspección en situaciones donde se realicen vuelos en condiciones hostiles.
La dinámica del helicóptero de cuatro rotores es sub-actuada, cuenta con cuatro
entradas de control y seis grados de libertad. Sin embargo, su dinámica se puede
descomponer en dos subsistemas, el subsistema de rotación y el subsistema de
traslación. Estos subsistemas están acoplados en cascada ya que el subsistema de
traslación depende del subsistema de rotación, y el subsistema de rotación es
independiente del subsistema de traslación. El control de vuelo de bajo nivel llamado
control de la orientación, es aquel que estabiliza al subsistema de rotación y permite
mantener al vehículo en una pose deseada, además de prevenir que se voltee o se
estrelle [3].
Varias técnicas de control han sido utilizadas para la estabilización de la
orientación del helicóptero de cuatro rotores, por ejemplo, en [5] se presentó una
estrategia de control basada en funciones de Lyapunov y un controlador para
estabilizar la altura, en [6] se realizó una comparación entre dos técnicas de control:
PID y LQ, donde el control PID resultó ser más eficaz, en [7] se presentaron dos
técnicas de control Backstappingy Sliding-Mode, en [8] se presentó un control por
retroalimentación de estados, además de un estimador para calcular los parámetros del
viento.Más recientemente se han utilizadotécnicas de control las cuales toman en
cuenta el problema de saturación en los actuadores, por ejemplo en [9], se presentó
un control basada en la técnica de saturaciones anidadas, en [10] se presentó una ley
de control para estabilizar cualquier sistema que clasifique como un cuerpo rígido,
esta ley de control se aplica experimentalmente a un helicóptero de cuatro rotores.
En este artículo se presenta una manera general de abordar el problema de la
orientación del helicóptero de cuatro rotores, se diseña el algoritmo de control basado
en la energía potencial de la aeronave, y se demuestra la estabilidad asintótica del
punto de equilibrio mediante una función de energía o función candidata de
Lyapunov, la cual está compuesta por la energía cinética y potencial de la aeronave.

57
Empleando el principio de invariancia de Lasalle se demuestra la estabilidad
asintótica del punto de equilibrio en forma global.
Se diseña una ley de control con acciones acotadas, tomando en cuenta los límites
físicos de los actuadores y así evitar su saturación.
El artículo está organizado como sigue: en la sección 2 se presenta el modelo
matemático del helicóptero de cuatro rotores, se describe en la sección 3 la
metodología utilizada para abordar el problema de la orientación, además de la prueba
de estabilidad, en la sección 4 se presenta el diseño del control acotado, las
simulaciones se presentan en la sección 5, y finalmente se discuten las conclusiones
en la sección 6.

2 Modelo dinámico del helicóptero de cuatro rotores.

En esta sección se desarrolla el modelado basado en leyes físicas que describan la


posición y orientación del cuadricóptero. El modelo dinámico se presenta bajo la
formulación matemática de Newton Euler, para obtenerlo suponemos al vehículo
como un cuerpo rígido en el espacio, sujeto a una fuerza principal llamada empuje y
tres momentos o pares.
El cuadricóptero es un vehículo aéreo cuya fuente de sustentación y propulsión son
los cuatro rotores ubicados en un mismo plano espacial.La disposición de los rotores
es en forma simétrica y equidistante del centro del vehículo, teniendo generalmente
una forma de cruz, como se muestra en Fig. 1.

Fig. 1. Configuración del helicóptero de cuatro rotores.

Los motores 1 y 3 giran en sentido antihorario, y los motores 2 y 4 giran en sentido


horario, esto hace que el momento lineal aportado por la rotación de las hélices se
compense, evitando una rotación constante e indeseada sobre su centro de masa.
Si variamos la velocidad de los motores en la misma cantidad, éste producirá una
fuerza vertical, llamada empuje, lo que permitirá el despeje y aterrizaje vertical.
El par para generar un movimiento de alabeo (ángulo roll) se realiza aumentando la
velocidad del motor 2 y disminuyendo la velocidad del motor 4, o viceversa para
sentido contrario, este movimiento genera además un desplazamiento en el eje y.
El par para generar un movimiento de cabeceo (ángulo pitch) se realizaaumentando
la velocidad del motor 1 y disminuyendo la velocidad del motor 3, o viceversa para el
sentido contrario, este movimiento genera además un desplazamiento en el eje x.
El movimiento de guiñada (ángulo yaw), se realiza por la diferencia en el par de
torsión entre cada par de motores, es decir, se aumentan las velocidades en los dos
motores con sentido horario mientras se disminuyen los motores con sentido
antihorario.
Sedefinen dos sistemas de coordenadas, el sistema de coordenadas inercial fijo a la
tierra denotado por 𝐸 = {𝑂𝐸 , 𝑋𝐸 , 𝑌𝐸 , 𝑍𝐸 }, y el sistema de coordenadas fijo al cuerpo,
en este caso a la aeronave, denotado por ℬ = {𝑂𝐵 , 𝑋𝐵 , 𝑌𝐵 , 𝑍𝐵 }, ver Fig. 2.
Fig. 2. Sistema de coordenadas inerciales E y sistema de coordenadas fijas al cuerpo B.

El vector 𝜉 = [𝑥𝑦𝑧]𝑇 es la posición del centro de masa del helicóptero con respecto al
sistema inercialE.
La rotación de un cuerpo rígido en el espacio, se realiza a través de tres rotaciones
sucesivas en torno a los ejes del sistema móvil en el cual están definidos. La matriz de
rotación completa está dada por (1).

𝑐𝜓 𝑐𝜃 −𝑠𝜓 𝑐𝜙 + 𝑐𝜓 𝑠𝜃 𝑠𝜙 𝑠𝜓 𝑠𝜙 + 𝑐𝜓 𝑠𝜃 𝑐𝜙
𝑅 = [𝑠𝜓 𝑐𝜃 𝑐𝜓 𝑐𝜙 + 𝑠𝜓 𝑠𝜃 𝑠𝜙 −𝑐𝜓 𝑠𝜙 + 𝑠𝜓 𝑠𝜃 𝑐𝜙 ] (1)
−𝑠𝜃 𝑐𝜃 𝑠𝜙 𝑐𝜃 𝑐𝜙

En este artículo se ha utilizado la siguiente nomenclatura: 𝑐𝑘 = 𝑐𝑜𝑠𝑘, 𝑠𝑘 =


𝑠𝑒𝑛𝑘, 𝑡𝑘 = 𝑡𝑎𝑛𝑘.
El vector 𝑉 = [𝑢0 𝑣𝑜 𝑤𝑜 ]𝑇 , es la velocidad lineal del helicóptero definida en el
sistema de coordenadas fijo al cuerpo B, y está relacionacon la derivada con respecto
al tiempo de la posición 𝜉, como se muestra en (2).

𝜉̇ = 𝑅 ∙ 𝑉 (2)

La ecuación (3) relaciona la velocidad angular definida enB la cual está denotada
por el vector𝜔 = [𝑝0 𝑞0 𝑟0 ]𝑇 , con la derivada con respecto al tiempo de la posición
angular 𝜂 = [∅ 𝜃𝜓]𝑇 definida en E,

𝜂̇ = 𝐋(𝜂) ∙ 𝜔 (3)

Donde𝐋(𝜂) es una matriz, la cual se obtiene relacionando la derivada de la matriz


ortonormal con cierta matriz anti-simétrica [11], como se muestra en (4).

1 𝑠𝜙 𝑡𝜃 𝑐𝜙 𝑡𝜃
𝐋(η) = [0 𝑐𝜙 −𝑠𝜓 ] (4)
0 𝑠𝜙 ⁄𝑐𝜃 𝑐𝜙 ⁄𝑐𝜃

La cinemática del cuadricóptero está representada por medio de las ecuaciones (2)
y (3), las cuales describen el movimiento de traslación y de rotación respectivamente.
La dinámica de un cuerpo rígido bajo fuerzas externas aplicadas en su centro de
masa y expresado en Bestá dado por las ecuaciones(5) y (6).

𝑚𝑉̇ + 𝜔 × 𝑚𝑉 = 𝐹 (5)
𝐹𝜔̇ + 𝜔 × 𝐽𝜔 = 𝜏 (6)

59
Donde el símbolo × denota el producto cruz, 𝐽 = 𝑑𝑖𝑎𝑔{𝐼𝑥𝑥 , 𝐼𝑦𝑦 , 𝐼𝑧𝑧 }es una matriz
diagonal inercial, F y τ son la suma de todas las fuerzas y pares externos aplicados al
helicóptero de cuatro rotores.
Rescribiendo las ecuaciones que definen la cinemática y la dinámica de la aeronave
en variables de estado, tenemos:

𝜉̇ = 𝜈
𝑚𝜈̇ = 𝑅 · 𝐹
{ (7)
𝑅̇ = 𝑅 · 𝑆(𝜔)
𝐽𝜔̇ = −𝜔 × 𝐽𝜔 + 𝜏

Donde𝜈 = 𝑅 · 𝑉 y 𝑆(𝜔) = 𝑅𝑇 · 𝑅̇.


La suma de todas las fuerzas que consisten principalmente de su propio peso de la
aeronave, fuerzas aerodinámicas y empuje se expresa en (8), y la suma de todos los
pares externos desarrollados por los cuatro motores se expresa en (9).

𝑅 ∙ 𝐹 = −𝑚𝑔 ∙ 𝐸3 + 𝛤 + 𝐴 𝑇 (8)
𝜏 = − ∑4𝑖=1 𝐽𝑅 (𝜔 × 𝐸3 ) ∙ Ω𝑖 + 𝜏𝑎 + 𝐴𝑅 (9)

Donde Γ es el empuje total debido a la suma de los empujes de los cuatro motores,
como se muestra en (10), 𝐴 𝑇 = [𝐴𝑥 𝐴𝑦 𝐴𝑧 ]𝑇 y 𝐴𝑅 = [𝐴𝑝 𝐴𝑞 𝐴𝑟 ]𝑇 son el resultado de las
fuerzas y momentos que actúan sobre el cuadricóptero, son calculados a partir de los
1
coeficientes aerodinámicos 𝐶𝑖 , por ejemplo, 𝐴 𝑇 = 𝜌𝑎𝑡𝑟 𝐶𝑖 𝑊 2 , (𝜌 es la densidad del
2
aire, W es la velocidad del cuadricóptero con respecto al viento), g es la constante
gravitacional, Ω𝑖 es la velocidad angular del i-ésimo rotor y 𝜏𝑎 = [𝜏∅ 𝜏𝜃 𝜏𝜓 ]𝑇 son los
pares de control aplicado en los tres ejes del cuadricóptero. Estos pares de control se
muestran en (11).

Γ = (∑4𝑖=1 𝑏Ω𝑖 2 ) (10)

𝜏∅ 𝑙𝑏(Ω2 2 − Ω4 2 )
𝜏
𝜏𝑎 = [ 𝜃 ] = [ 𝑙𝑏(Ω3 2 − Ω1 2 ) ](11)
𝜏𝜓 2 2 2 2
𝑑(Ω1 + Ω3 − Ω2 − Ω4 )

Donde b es el coeficiente de empuje del motor, d es el coeficiente de torsión del


motor y l es la distancia entre los ejes de los motores y el centro de masa de la
aeronave.
El modelo dinámico completo del sistema se muestra en (12) y (13), donde la
ecuación (12) describe el movimiento de traslación y la ecuación (13) describe el
movimiento de rotación, estos subsistemas están acoplados en cascada como se
muestra en la Fig. 3.

𝑥̇ = 𝑢
𝑦̇ = 𝑣
𝑧̇ = 𝑤
(𝑐∅ 𝑠𝜃 𝑐∅ +𝑠𝜓 𝑠∅ )Γ 𝐴𝑥
𝑢̇ = + (12)
𝑚 𝑚
(𝑠𝜓 𝑠𝜃 𝑐∅ −𝑐𝜓 𝑠∅ )Γ 𝐴𝑦
𝑣̇ = +
𝑚 𝑚
(𝑐Ѳ 𝑠∅ )Γ 𝐴𝑧
{ 𝑤̇ = −𝑔 + 𝑚
+
𝑚
∅̇ = 𝑝 + 𝑞𝑠∅ 𝑡𝜃 + 𝑟𝑐∅ 𝑡𝜃
𝜃̇ = 𝑞𝑐∅ − 𝑟𝑠∅
𝜓̇ = 𝑞𝑠∅ 𝑠𝑐𝜃 + 𝑟𝑐∅ 𝑠𝑐𝜃
𝐼𝑌𝑌 −𝐼𝑌𝑌 𝐽𝑅 Ω 𝜏∅ 𝐴𝑝
𝑝̇ = 𝑞𝑟 − 𝑞+ + (13)
𝐼𝑋𝑋 𝐼𝑋𝑋 𝐼𝑋𝑋 𝐼𝑋𝑋
𝐼𝑍𝑍 −𝐼𝑋𝑋 𝐽𝑅 Ω 𝜏𝜃 𝐴𝑞
𝑞̇ = 𝑝𝑟 − 𝑝+ +
𝐼𝑌𝑌 𝐼𝑌𝑌 𝐼𝑌𝑌 𝐼𝑌𝑌
𝐼𝑍𝑍 −𝐼𝑋𝑋 𝜏𝜓 𝐴𝑟
{ 𝑟̇ = 𝑝𝑞 + +
𝐼𝑌𝑌 𝐼𝑌𝑌 𝐼𝑌𝑌

Como se puede ver el subsistema de rotación es independiente de las variables de


estado del subsistema de traslación, sin embargo el subsistema de traslación depende
de la posición angular 𝜂 = [∅ 𝜃𝜓]𝑇 definido en el subsistema de traslación.

Fig. 3. Conexión en cascada de los dos subsistemas.

Algunos términos dependientes de fuerzas y momentos aerodinámicos son


desconocidos enpresencia de vientos y turbulencias imprevisibles, términos como 𝐴 𝑇
y 𝐴𝑅 dependen de la densidad del aire, por lo que serán considerados como
perturbaciones externas, y los efectos giroscópicos como 𝐽𝑅 se considerará
desconocido debido a que no tiene acceso a las velocidades de los motores.

3 Diseño de la metodología de control.

Para abordar el problema de la estabilización de la orientación de la aeronave,


reescribiremos las ecuaciones dadas en (13), las cuales describen el subsistema de
rotación en una ecuación matricial como se muestra en (14),

𝑀𝐵 𝜔̇ + 𝐶(𝜔)𝜔 = 𝜏𝑎 (14)

Donde𝑀𝐵 es una matriz inercial diagonal constante dada por (15),

𝐼𝑋𝑋 0 0
𝑀𝐵 = [0 𝐼𝑌𝑌 0 ] (15)
0 0 𝐼𝑍𝑍

y 𝐶(𝜔) es una matriz anti-simétrica, la cual está dada por (16).

0 𝐼𝑍𝑍 𝑟𝑜 −𝐼𝑌𝑌 𝑞𝑜
C(ω) = [−𝐼𝑍𝑍 𝑟𝑜 0 𝐼𝑋𝑋 𝑝𝑜 ] (16)
𝐼𝑌𝑌 𝑞𝑜 −𝐼𝑋𝑋 𝑝𝑜 0

Definiendo 𝜔 = 𝓆̇ , donde 𝓆 la definiremos como la posición angular definida en B,


y sustituyéndola en la ecuación (14) obtenemos:

61
𝑀𝐵 𝓆̈ + 𝐶(𝓆̇ )𝓆̇ = 𝜏𝑎 (17)

Definiendo una función vectorial continua y diferenciable 𝑓𝑥 , la cual relaciona la


posición angular𝓆 definida en B, con la posición angular 𝜂definida en E,obtenemos:

𝓆 = 𝑓𝑥 −1 (𝜂) (18)

Derivando la ecuación (18) con respecto al tiempo:

𝑑 −1 𝜕𝑓𝑥 −1
𝓆̇ = 𝑓𝑥 (𝜂) = (𝜂)𝜂̇ = 𝐿−1 (𝜂)𝜂̇ (19)
𝑑𝑡 𝜕𝜂

Donde𝐿−1 (𝜂) es la inversa de la matriz definida en (4), la cual llamaremos


Jacobiano del sistema de rotación, la segunda derivada con respecto el tiempo de la
ecuación (19) es:
𝓆̈ = −[𝐿−1 (𝜂)𝐿̇(𝜂)𝐿−1 (𝜂)]𝜂̇ + 𝐿−1 (𝜂)𝜂̈ (20)

Sustituyendo las ecuaciones (19) y (20) en la ecuación (14) obtenemos:

𝜏𝑎 = 𝑀𝐵 [𝐿−1 (𝜂)𝜂̈ − [𝐿−1 (𝜂)𝐿̇ (𝜂)𝐿−1 (𝜂)]𝜂̇ ] + 𝐶(𝐿(𝜂)𝜂̇ )𝐿−1 (𝜂)𝜂̇ (21)

Finalmente multiplicando la ecuación (21) por 𝓆̇ 𝑇 obtenemos:


𝜂̇ 𝑇 𝐿−𝑇 (𝜂)𝜏𝑎 = 𝜂̇ 𝑇 𝐿−𝑇 (𝜂) [𝑀𝐵 [𝐿−1 (𝜂)𝜂̈ − (𝐿−1 (𝜂)𝐿̇(𝜂)𝐿−1 (𝜂)) 𝜂̇ ] + 𝐶(𝐿(𝜂)𝜂̇ )𝐿−1 (𝜂)𝜂̇ ](22)

𝐿−𝑇 (𝜂)𝜏𝑎 = 𝑓𝜂 (23)

𝑓𝜂 = (𝑀𝜂 𝜂̈ + 𝐶𝜂 𝜂̇ ) (24)

La ecuación (24) representa la dinámica rotacional del helicóptero de cuatro rotores la


cual es equivalente en las ecuaciones en (13), 𝜏𝑎 son los pares de control los cuales
estabilizan la posición angular 𝓆 definido en B ver ecuación (17), como consecuencia,
para estabilizar la posición angular 𝜂 definido en E, se multiplica los pares de control
𝜏𝑎 por el Jacobiano transpuesto 𝐿𝑇 (𝜂), como se muestra en (23).
Las matrices 𝑀𝜂 y 𝐶𝜂 se muestran en las ecuaciones (25) y (26).

𝑀𝜂 = 𝐿−𝑇 (𝜂)𝑀𝐵 𝐿−1 (𝜂) (25)

𝐶𝜂 = 𝐿−𝑇 (𝜂)𝐶(𝐿−1 (𝜂)𝜂̇ )𝐿−1 (𝜂) − 𝑀𝜂 𝐿̇(𝜂)𝐿−1 (𝜂) (26)

Supongamos la siguiente ley de control:

𝜏𝑎 = 𝛥𝑈𝑎 (𝑘𝑝 , 𝓆̃) − 𝑓𝑣 (𝑘𝑣 . 𝓆̇ ) (27)


Donde:

 𝛥𝑈𝑎 (𝑘𝑝 , 𝓆̃)es el gradiente de la energía potencial de la aeronave.


 𝑓𝑣 (𝑘𝑣 . 𝓆̇ ) satisface 𝓆𝑇 𝑓𝑣 (𝑘𝑣 . 𝓆̇ )>0, y 𝑘𝑣 es una matriz definida positiva.
 𝑈𝑎 (𝑘𝑝 , 𝓆̃)es la energía potencial, es una función diferenciable y definida
positiva,𝑘𝑝 es una matriz definida positiva, y 𝓆̃ = 𝓆 − 𝓆𝑑 , 𝓆𝑑 es la
orientación deseada.

La ecuación en lazo cerrado queda expresada como se muestra en (28).


𝑑 𝓆̃ −𝓆̇
[ ] = [ −1 ] (28)
𝑑𝑡 𝓆̇ 𝑀𝐵 [𝛥𝑈𝑎 (𝑘𝑝 , 𝓆̃) − 𝑓𝑣 (𝑘𝑣 . 𝓆̇ )] − 𝐶(𝓆̇ )𝓆̇

El punto de equilibrio [0𝑇 0𝑇 ]𝑇 existe y es único debido a que 𝑘𝑝 𝑦 𝑘𝑣 son matrices


definidas positivas, además 𝓆̇ = 0.
La demostración de estabilidad del punto de equilibrio de la ecuación en lazo cerrado
en el sentido de Lyapunov queda de la siguiente forma.
Considere la siguiente función de Lyapunov:
1
𝑉(𝓆̇ , 𝓆̃) = 𝓆̇ 𝑇 𝑀𝐵 𝓆̇ + 𝑈𝑎 (𝑘𝑝 , 𝓆̃) (29)
2

la derivada temporal de la función de energía en (29), queda de la siguiente forma:

𝜕
𝑉̇ (𝓆̇ , 𝓆̃) = 𝓆̇ 𝑇 𝑀𝐵 𝓆̈ − 𝑈𝑎 (𝑘𝑝 , 𝓆̃)𝑇 𝓆̇ (30)
𝜕𝓆̃

sustituyendo la ecuación (28) en (30) obtenemos:

𝑉̇ (𝓆̇ , 𝓆̃) = 𝓆̇ 𝑇 (𝛥𝑈𝑎 (𝑘𝑝 , 𝓆̃) − 𝑓𝑣 (𝑘𝑣 . 𝓆̇ ) − 𝐶(𝓆̇ )𝓆̇ ) − 𝛥𝑈𝑎 (𝑘𝑝 , 𝓆̃)𝑇 𝓆̇ (31)

como 𝓆̇ 𝑇 𝐶(𝓆̇ )𝓆̇ =0, debido a que 𝐶(𝓆̇ ) es una matriz anti-simétrica, 𝑀𝐵 es constante
y por lo tanto su derivada es cero, finalmente la derivada temporal queda de la
siguiente forma:
𝑉̇ (𝓆̇ , 𝓆̃) = 𝓆̇ 𝑇 𝑓𝑣 (𝑘𝑣 . 𝓆̇ )< 0 (32)

Cumple con el teorema de estabilidad de Lyapunov, por lo que queda demostrada la


estabilidad global del punto de equilibrio.
Para demostrar la estabilidad asintótica del punto de equilibrio utilizaremos el
teorema de LaSalle, 𝑉̇ (𝓆̇ , 𝓆̃) = 0, si 𝓆̇ =0 y 𝓆̃ puede ser cualquier vector.
Puesto que 𝑈𝑎 (𝑘𝑝 , 𝓆̃)=0 solo si 𝓆̃ = 0, entonces el máximo conjunto invariante es
[𝓆̃𝑇 𝓆̇ 𝑇 ]𝑇 = [0𝑇 0𝑇 ]𝑇 .

𝓆̃
Ʊ = {[ ] ∈ ℝ2𝑛 : 𝑉̇ (𝓆̇ , 𝓆̃) = 0 ⇔ 𝓆̇ = 0 ^𝓆̃ = 0} (33)
𝓆̇

Puesto que 𝑉(𝓆̇ , 𝓆̃) es una función definida positiva con un único y mínimo global
[𝓆̃𝑇 𝓆̇ 𝑇 ]𝑇 = 0, entonces el máximo conjunto invariante en Ʊ es el origen. Por lo tanto
hemos demostrado estabilidad asintótica del punto de equilibrio.

4 Control con acciones acotadas.

Con motivación por el problema practico de mantener la acción de control acotada


dentro de ciertos límites determinados por los pares máximos disponibles en los
actuadores, se ha considerado el control con acciones acotadas. El control con
acciones acotadas se encuentra sujeto a la siguiente restricción:

𝜏𝑖 ≤ 𝜏𝑖 𝑚𝑎𝑥 (34)

donde 𝜏𝑖 es el máximo par disponible para el actuador.


Si no se toma en cuenta estas limitaciones en el diseño de la ley de control, puede
crear inestabilidad, degradar su desempeño, crear efectos térmicos y fallas mecánicas.

63
Para la simulación de la ley de control se utilizan los parámetros que se muestran en
la Tabla 1.

Descripción Símbolo Valor Unidades

Masa del UAV m 1.54 Kg


Empuje 𝑓𝑖 8.513 N
Velocidad angular Ω𝑖 796 rad ∙ 𝑠 −1
Longitud l 0.28 m
Factor empuje b 1.38 × 10−5 𝑁 ∙ 𝑟𝑎𝑑 −2
Factor arrastre d 2.56 × 10−6 𝑁 ∙ 𝑚 ∙ 𝑟𝑎𝑑 −2
Inercia eje X 𝐼𝑋𝑋 9.63 × 10−3 𝑘𝑔 ∙ 𝑚2
Inercia eje Y 𝐼𝑌𝑌 9.63 × 10−3 𝑘𝑔 ∙ 𝑚2
Inercia eje Z 𝐼𝑍𝑍 12.71 × 10−3 𝑘𝑔 ∙ 𝑚2

Los pares máximos están dados por,

𝜏∅,𝜃 = 2.5 𝑁𝜏𝜓 = 1.6 𝑁 · 𝑚 (35)

El empuje máximo está dado por:

𝛤 𝑚𝑎𝑥 = (∑4𝑖=1 𝑏Ω𝑖 2 ) = 34 𝑁(36)

donde Γ max es el empuje máximo dado por la suma de los pares de cada uno de los 4
motores.
Considere la siguiente ley de control dada por (35),

𝜏𝑎 = 𝑘𝑝 atan(𝛬𝓆̃) − 𝑘𝑣 atan(Ƴ𝓆̇ ) (37)

donde 𝛥𝑈𝑎 (𝑘𝑝 , 𝓆̃) = 𝑘𝑝 atan(𝛬𝓆̃), 𝑓𝑣 (𝑘𝑣 . 𝓆̇ ) = 𝑘𝑣 atan(Ƴ𝓆̇ ),


𝑘𝑝 = 𝑑𝑖𝑎𝑔{0.016, 0.016,0.016}, 𝑘𝑣 = 𝑑𝑖𝑎𝑔{0.009,0.009,0.009} y 𝛬 = Ƴ =
𝑑𝑖𝑎𝑔{5,4,5} son ganancias diagonales definidas positivas y representan la pendiente
de la función.
La ecuación en lazo cerrado formada por el modelo del sistema de rotación y el
control arco tangente definido en (35), está dado como se muestra en (36).

𝑑 𝓆̃ −𝓆̇
[ ] = [ −1 ] (38)
𝑑𝑡 𝓆̇ 𝑀𝐵 [𝑘𝑝 atan(𝛬𝓆̃) − 𝑘𝑣 atan(Ƴ𝓆̇ )] − 𝐶(𝓆̇ )𝓆̇

Como se mostró en la sección anterior el punto de equilibrio es único [𝓆̃𝑇 𝓆̇ 𝑇 ]𝑇 =


[0𝑇 𝑇 𝑇
0 ] .
La función de Lyapunov está dada por la ecuación (37).
1
̇ 𝑈𝑎 (𝑘𝑝 , 𝓆̃)
𝑉(𝓆̇ , 𝓆̃) = 𝓆̇ 𝑇 𝑀𝐵 𝓆 + (39)
2
Donde:
𝑇
1 1
𝑈𝑎 (𝑘𝑝 , 𝓆̃) = [√𝓆̃atan(𝛬𝓆̃) − ln[1 + 𝑞̃ 2 ]] 𝑘𝑝 𝛬−1 √𝓆̃atan(𝛬𝓆̃) − ln[1 + 𝑞̃ 2 ]
2 2

La derivada temporal de la función (37) queda de la siguiente forma:

𝑉̇ (𝓆̇ , 𝓆̃) = 𝓆̇ 𝑇 𝑀𝐵 𝓆̈ − atan(𝛬𝓆̃)𝑘𝑝 𝓆̇ (40)


= −𝓆̇ 𝑇 𝑘𝑣 atan(Ƴ𝓆̇ ) ≤ 0 (41)
La estabilidad asintótica global se obtiene aplicando el teorema de La Salle, como
se realizó en la sección anterior. Para estabilizar ηse utiliza la ecuación (23).

4.1 Diseño de un controlador acotado para estabilizar la altura de la aeronave

Para estabilizar la altura de la aeronave se utilizará dos ecuaciones definidas en el


subsistema de traslación, estas se muestran en (42).

𝑤
[𝑤𝑧̇̇ ] = [ (𝑐 𝑠 )Γ 𝐴 ] (42)
−𝑔+ Ѳ ∅ + 𝑧
𝑚 𝑚
Donde z representa la altura de la aeronave con respecto al sistema inercial E.
Utilizaremos una retroalimentación de estados para linealizar al sistema definido en
(42).
Considere la siguiente ley de control:

(𝑟1 +𝑚𝑔−𝐴𝑧 )
Γ= (43)
𝑐Ѳ 𝑠∅
donde 𝑟1 esta definido como:
𝑟1 = 𝑘𝑝 atan(𝑧̃) − 𝑘𝑣 atan(𝑤) (44)

donde 𝑧̃ = 𝑧𝑑 − 𝑧 es el error de la altura de la aeronave.

5 Simulación de las leyes de control.

Se muestran las simulaciones obtenidas por la ley de control, para las simulaciones se
utilizaron los parámetros de la Tabla 1. La Fig. 4 muestra la estabilización de la
orientación deseada η𝑑 = [0 0 0]𝑇 , partiendo de condiciones iniciales η𝑑 =
[37° −19° −50° ]𝑇 .

Fig. 4. Estabilización de la orientación ∅, 𝜃, 𝜓 .

Como se muestra en Fig. 4 el cuadricóptero parte de condiciones diferentes de cero


y se logra estabilizar en 2.5 segundos, éste se mantiene flotando en el aire en una
posición estacionaria, alineado con el sistema de referencia fijo al cuerpo.
En Fig. 5 se muestra los pares de control, se observa que éstos están acotados en la
región permitida definida en (33).
Para realizar la prueba de robustez ante perturbaciones de viento, se le han dado
valores a 𝐴𝑟 = [0.5, 0.6, 0.4], ya que como se comentó anteriormente éstos
dependen de la densidad del aire. Como es de esperarse, el sistema tarda más tiempo
en estabilizarse, 3.5 segundos.

65
Fig. 5. Evolución de los pares de control.

Fig. 6. Control de la orientación, con perturbaciones debidas al viento, 𝐴𝑝 = 0.5, 𝐴𝑞 =


0.6, 𝐴𝑟 = 0.4.

La fig. 7 muestra la estabilización de la altura de la aeronave en 15 metros, como


se observa la respuesta es suave y rápida. Se llega a estabilizar a los 7 segundos
partiendo de condiciones iguales a cero.

Fig. 7. Control de la altura del helicóptero de cuatro rotores.

En la fig. 8 se muestra la entrada de control acotada se mantiene por debajo de los


34 newton, después de llegar a la posición deseada la fuerza de empuje se mantienen
constantes a los 9 segundos con un total de aproximadamente 16 newton, los cuales
son los necesarios para vencer la fuerza gravitacional.
Fig. 8. Evolución de la fuerza de sustentación o empuje.

6 Conclusiones.

Una metodología basada en el gradiente de la energía potencial se ha diseñado, la cual


permite crear diferentes leyes de control. Se diseñará un sistema embebido basado en
el microprocesador Microblaze de la compañía Xilinx para probar el algoritmo de
control creado, la tarjeta de desarrollo que se utilizará es la Spartan 6 LX9
microboard, el sensor que se utilizará para estimar la posición y orientación es la
UM7, la cual puede trasmitir a una velocidad máxima de 250 Hz.

Referencias

1. Fantoni, I.; Lozano, R. Nonlinear Control for Underactuated Mechanical Systems. TS-
pringer, (1995).
2. Guerrero-Castellanos, J.F.; Téllez-Guzmán, J.J.; Durand, S.; Marchand, N.; Alvarez-Muñoz,
J.U.; González-Díaz, V.R.: Attitude Stabilization of a Quadrotor by Means of Event-
Triggered Nonlinear Control, Journal of Intelligent and Robotics Systems, Vol. 73, pp. 123-
135, (2014).
3. Tayerabi A.; McGilvray S.: Attitude stabilization of a four-rotor aerial robot. In proc. 43rd
IEEE Conf. Decision and Control, pp. 1216-1221 (2004).
4. Lizarraide, F; Wen, J.T.: Attitude control without angular velocity measurement: A passivity
approach. IEEE Trans. Autom. Control, Vol. 41, No. 3, pp. 468-472 (1996).
5. Bouabdallah, S.; Siegwart, R: Design and Control of an Indoor Micro Quadrotor. In Proc.
IEEE Int. Conf. on robotics and automation, Vol. 5,pp. 4393-4398 (2004).
6. Bouabdallah, S.; Ñoth, A.; Siegwart, R.: PID vs LQ Control Techniques Applied to an
Indoor Micro Quadrotor. In Proc. IEEE Int. Conf. on Intelligent Robots and Systems, Vol. 3,
pp 2451-2456 (2004).
7. Bouabdallah, S.; Siegwart, R.: Backstepping and Sliding-mode Techniques Applied to an
Indoor Micro Quadrotor. In Proc. IEEE Int. Conf. on robotics and automation, pp. 2259-
2264 (2005).
8. Mokhtari, A.; Benallegue, A.: Dynamic feedback controller of Euler angles and wind
parameters estimation for a quadrotor unmanned aerial vehicle, IEEE Int. Conf. on robotics
and automation (ICRA’04), pp. 2360-2366 (2004).
9. Castillo, P.; Dzul, A.; Lozano, R.: Real-Time stabilization and tracking of a four rotor mini
rotorcraft. IEEE Trans. Control System Technol., Vol. 12, No. 4, pp. 510-516 (2004).
10. Guerrero-Castellanos, J.F.; Marchand, N.; Hably, A.; Lesecq, S.; Delamare, J.: Bounded
attitude control of rigid bodies: Real-time experimentation to a quadrotor mini helicopter.
Control Engineering practice, Vol.19, pp. 790-79 (2011).
11. Craig, J.J.: Introduction to Robotics – Mechanics and Control, Addison-Wesley Publishing
Company, (1989).

67
Aplicación de Técnicas de Minería de Datos para
Predicción de Desempeño Académico

María A. López-Garrido1, Erika Y. Morales-Mateos2, José A. Hernández-Aguilar3,


Carolina González-Constantino4
1
División Académica de Ciencias Básicas, Universidad Juárez Autónoma de Tabasco,
Carretera Cunduacán-Jalpa KM. 1 Col. La Esmeralda CP. 86690, Cunduacán, Tabasco, México
2
División Académica de Informática y Sistemas, Universidad Juárez Autónoma de Tabasco
Carretera Cunduacán-Jalpa KM. 1 Col. La Esmeralda CP. 86690, Cunduacán, Tabasco,
México
3
Facultad de Contaduría Administración e Informática. Universidad Autónoma del Estado
de Morelos
Campus Norte, Av. Universidad 1001, C.P. 62209, Cuernavaca, Morelos, México
4
División Académica de Ciencias Económico Administrativas, Universidad Juárez
Autónoma de Tabasco
Av. Universidad S/N Zona de la Cultura, Villahermosa, Tabasco, México
1
a_garrido72@hotmail.com, 2 erika.m.m@hotmail.com ,3alberto_doctor@hotmail.com,
4
carolajun06@hotmail.com

Resumen.El objetivo de este trabajo es emplear técnicas de clasificación de


minería de datos. De estas técnicas de clasificación se usaron los árboles de
decisión específicamente los algoritmos J48, ADTree, RepTree y Simple Cart
aplicando métodos de selección de los mejores atributos que permitan obtener
un mejor modelo. Se utilizó el método de selección de atributos de
CfsSubsetEval de WEKA. El mejor resultado lo obtuvo el algoritmo J48 con un
porcentaje de 77.26 % de clasificación correcta.
Palabras Clave: Desempeño académico, Eficiencia terminal, Minería de datos,
Árboles de decisión.

1 Introducción

Las Instituciones Educativas en México tienen la encomienda de disminuir los índices


de reprobación o rezago y la deserción para incrementar la eficiencia terminal, a
través de la implementación de programas como Tutorías. [1]
En las Instituciones de Educación Superior el índice de Eficiencia Terminal es del
71% [1] mismo que es afectado por la reprobación o rezago, situación que es
conocida por la ANUIES (Asociación Nacional de Universidades e Instituciones de
Educación Superior) por lo cual desde el año 2000 que elaboró el documento La
Educación Superior en el Siglo XXI incluye el programa Desarrollo integral de los
alumnos, en el cual se establece el apoyo a los alumnos a través de la implementación
de programas de tutorías y desarrollo integral para que estos terminen sus estudios en
los plazos previstos[2], antes de esta publicación de acuerdo a un estudio realizado en
el que participaron 47 instituciones, el 55.3% no tenían implementado un Programa
de Tutoría y el 44.7% contaban con este programa, para el año 2003 el 70.2% tenían
implementado programas de tutorías y el 63.4% adopto el modelo propuesto por la
ANUIES el resto de las instituciones lo diseño de manera independiente [3].
El objetivo de un Programa Institucional de Tutorías es disminuir la deserción y
reprobación, mejorar el rendimiento académico y como consecuencia de esto
incrementar los índices de eficiencia terminal, desde el 2004 el 86.1% de las
instituciones tienen implementado un sistema de información de apoyo al programa
institucional de Tutorías [3] muchas instituciones también tienen Sistemas de
Información para el control escolar, contando con una gran cantidad de datos que no
se han explorado y explotado, siendo evidente la necesidad de contar con información
para la adecuada toma de decisiones académicas y elaborar estrategias a partir del
conocimiento oportuno [4] sin embargo encontrar información oculta en las bases de
datos, identificar y construir modelos apropiados es una tarea difícil, por lo cual es
conveniente el uso de técnicas de minería de datos [5].
Esta investigación consiste en generar un modelo predictivo del desempeño de
alumnos universitarios empleando árboles de decisión, utilizando algunas
características socioeconómicas relacionándolas con el desempeño académico este en
función de la reprobación de asignaturas.

1.1 Minería de Datos

La minería de datos es una fase del proceso de extracción del conocimiento (KDD
Knowledge Discovery from Data) [6], El KDD es un proceso no trivial de identificar
patrones potencialmente útiles y comprensibles a partir de los datos [7].
Las tareas de la minería de datos son predictivas y descriptivas. La clasificación es
una tarea predictiva, esta consiste en encontrar un modelo que describa o distinga
clases de datos, para que posteriormente sea capaz de predecir la clase de datos a la
cual pertenece un objeto, cuya etiqueta de clase se conoce. El modelo se obtiene del
análisis de un conjunto de datos de entrenamiento, este modelo se puede representar
mediante reglas IF THEN, árboles de decisión, redes neuronales [8].
Un árbol de decisión es un diagrama con una estructura de árbol, donde cada nodo
interno representa una decisión en un atributo, cada rama representa una salida de la
decisión, cada hoja representa una etiqueta de clase. El nodo más alto representa la
raíz del árbol [8].

1.2 Estudios de predicción de desempeño académico

Se han realizado varios estudios de rendimiento académico empleando técnicas de


minería de datos, uno de ellos un trabajo para detectar los factores que más influyen
para que los estudiantes de enseñanza media o secundaria fracasen, concluyendo que
los algoritmos de clasificación pueden utilizarse con éxito para predecir el
rendimiento académico y que es útil las técnicas de características cuando se dispone
de muchos atributos al mejorar los resultados de los resultados de los algoritmos [9].
En la Universidad Nacional de la Matanza, realizaron un proyecto con el objetivo
de construir modelos predictivos del rendimiento académico de los estudiantes,
utilizaron técnicas de Regresión Logística, Árboles de Decisión y Redes Neuronales,
realizaron el modelado de los datos y predicción del rendimiento académico en
función de las características socioeconómicas. El resultado es un análisis del perfil
socioeconómico y educativo de los alumnos y su relación con su rendimiento
académico [10].
Otro estudio realizado en la Universidad Politécnica de Valencia, consistió en un
análisis del rendimiento académico relacionándolo con las características
socioeconómicas y académicas de los alumnos, definiendo un indicador del
rendimiento para cada alumno de acuerdo a las calificaciones obtenidas. Las técnicas
utilizadas para generar los modelos predictivos fueron los árboles de decisión [11].

1.3 Metodología

Esta investigación es cuantitativa no experimental. El tipo de investigación


cuantitativa es correlacional porqué el propósito es conocer la relación que existe
entre dos o más variables y el comportamiento de las variables relacionadas; y de
diseño transversal ya que en este tipo de diseño se recolectan datos en un solo
momento, en un tiempo único para describir variables y analizar su incidencia e
interrelación [12].

69
La muestra es no probabilística o dirigida [12], se eligió por conveniencia a los
alumnos de nuevo ingreso de las licenciaturas de: Ingeniería en Alimentos, Ingeniería
en Acuacultura, Administración, Informática Administrativa, Derecho y Enfermería
de las cohortes generacionales 2010 a 2012 de la División Académica
Multidisciplinaria de los Ríos que contestaron el EDAOM. La población de las
cohortes de 2010 a 2012 es de 608 alumnos de nuevo ingreso. La muestra está
compuesta por 316 alumnos, la Tabla 3.1 muestra la cantidad de alumnos de nuevo
ingreso que componen la muestra.

Tabla 4.Población de nuevo ingreso por Licenciatura

Licenciatura No. de alumno


Derecho 76
Ing. en Acuacultura 7
Ing. en Alimentos 28
Informática Administrativa 53
Administración 101
Enfermería 51

Para la minería de datos se utilizó la metodología del proceso de descubrimiento


del conocimiento (KDD), el cual está compuesto por cinco fases a continuación se
muestra la Fig. 1

Fig. 11.Metodología del Descubrimiento del Conocimiento (KDD)

 Fase de integración y recopilación. En esta fase se determinaron las fuentes de


información, las fuentes de información son el Sistema de Servicios Escolares, El
Sistema Institucional de Tutorías y algunos datos de la encuesta CENEVAL. Los
datos de estas fuentes una vez procesadas se juntaron en una hoja de cálculo.
 Fase de Selección, limpieza y transformación Para esta fase se hizo la limpieza al
eliminar los registros que no estaban completos de la aplicación del inventario de
Estilos de Aprendizaje y Orientación Motivacional. Se generaron algunos datos,
como el número de asignaturas cursadas y reprobados en un año escolar.
 Fase de Minería de Datos. El objetivo de esta fase es generar conocimiento. Se
construye un modelo basado en los datos recopilados. En este proyecto se va a
realizar una predicción mediante la tarea de clasificación y se emplea las técnicas
de árboles de clasificación J48 y el ID3.
 Fase de evaluación e interpretación. La evaluación que se utilizó para este
modelo es validación cruzada.
2 Resultados

Para la realización de la fase de minería, utilizando WEKA que es un software de


código abierto emitido bajo la Licencia Pública General GNU, está desarrollado en
JAVA[13], incluye algoritmos para las tareas de minería de datos de asociación,
agrupamiento, clasificación[14].
A continuación se muestra la Tabla 2 en la que se muestra la vista minable:

Tabla 2. Variables vista minable

Variables
Horas trabajadas a la semana, Estudios alcanzados,
Con quien vive, Escolaridad de la madre,
Escolaridad del padre, Licenciatura cursada,
Género, Edad, Promedio de Bachller, Reprobó,
Rendimiento.
Variables del EDAOM:
Selectiva_T, Generativa_T, Recuperación ante
tareas, Recuperación ante exámenes,Convergente,
Divergente, Eficacia, Contingencia, Autonomía,
Aprobación, Logro, Tareas, Material

Se obtuvo un total de 24 atributos y 299 instancias. Para esta fase se utilizan los
algoritmos de árboles de decisión J48, utilizando la validación cruzada.
Al utilizar el evaluador CfsSubsetEval con el método de búsqueda de los mejores
atributos, se obtuvo que los mejores atributos para predecir si un alumno reprueba en
el primer año escolar son: Con quien vive (Ambos Padres, Padre, Madre, Ninguno),
El promedio de bachiller, Rendimiento (promedio de calificaciones), Material.

Tabla 3 Resultados utilizando el evaluador CfsSubsetEval con el método de búsqueda


BestFirt y usando validación cruzada.

Algoritmo %Clasificación %Clasificación


incorrecta correcta
J48 27.42 72.58
ADTree 20.40 79.60
RepTree 21.74 78,26
Simple Cart 26.42 73.58

El mejor resultado obtenido utilizando los 29 atributos es el algoritmo ADTree con


una clasificación correcta del 79.60%.

Tabla 4Resultados utilizando selección de mejores atributos.

Agoritmo %Clasificación %Clasificación


incorrecta correcta
J48 22.74 77.26
ADTree 23.75 76.25
RepTree 23.41 76.59
Simple Cart 24.41 75.59

A diferencia de realizar la clasificación sin seleccionar los mejores atributos, el


mejor resultado lo obtiene el algoritmo J48.

71
3 Conclusiones trabajos futuros

Con este proyecto se generara un modelo predictivo que permita la clasificación


correcta de los alumnos con alta probabilidad de reprobar durante el transcurso del
primer año escolar, esto con el objetivo de mejorar la eficiencia terminal
implementado talleres o asesorías que permitan que los alumnos conozcan las
estrategias de aprendizaje que le ayuden a transitar en su trayectoria escolar
universitaria.
En este experimento se obtuvo un modelo en el cual, se observa que los atributos
que determinan el que un alumno repruebe es el promedio de bachiller, con quien
vive, observando que quienes ingresan con un promedio menor a 8.4 tienen alta
probabilidad de reprobar, que si viven con ambos padres es alta la probabilidad de no
reprobar y que si viven con la madre se considera también el promedio de bachiller
para predecir si reprobara,
Este tipo de investigación es importante ya que se puede apoyar a los alumnos a
concluir sus estudios en el tiempo indicado y mejorar la eficiencia terminal de las
Instituciones de Educación Superior.
Como trabajo futuro se requiere hacer un análisis de que otros atributos ayuden a
incrementar el porcentaje de clasificación correcta así mismo que otros métodos de
selección de atributos ayudarían a mejorar este resultado.

Referencias

1. Peña, E., 3er Informe de Gobierno 2013 – 2014. Presidencia de la Republica pp 252-281
(2014)
2. ANUIES. La Educación Superior en el Siglo XXI. Líneas estratégicas de desarrollo. Una
propuesta de la ANUIES. pp 212 (2000)
3. Romo, A.: La incorporación de los programas de tutorías en las instituciones de educación
superior. Asociación Nacional de Universidades e Instituciones de Educación Superior pp
11-12,15 (2004)
4. Eckert, K., Suénaga, R.: Aplicación de técnicas de Minería de Datos el análisis de situación
y comportamiento académico de alumnos de la UGD. Repositorio Institucional de la
Universidad Nacional de la Plata
http://sedici.unlp.edu.ar/bitstream/handle/10915/27103/Documento_completo.pdf?sequence
=1 (2015). Accedido el 20 de junio de 2015.
5. Quadril, M.N.; Kalyankar, N.V. : Drop Out Feature of student Data for Acadmeic
Performance Using Decision Tree Techniques. Global Journal of Computer Science and
Technologyhttp://computerresearch.org/index.php/computer/article/view/891/890 (2010).
Accedido el 15 de Agosto de 2015
6. Han, J.; Kamber, M.: Data minning: Conceptos and Tecniques. 3era Edición, USA, Elsevier
(2012)
7. Fayyad, U.; Piatetsky-Shapiro, G.;Smyth, P.: From data mining to knowledge discovery in
databases. AI magazine, vol. 17, no 3, p. 37 http://dx.doi.org/10.1609/aimag.v17i3.1230
(1996). Accedido el 15 de junio de 2015
8. Han, J.; Kamber, M.: Data minning: Conceptos and Tecniques. United States of America:
Morgan Kaufmann Publishers (2006)
9. Márquez, C.; Romero, C.; Ventura, S.: Predicción del Fracaso Escolar mediante Técnicas de
Minería de Datos. IEEE-RITA, Vol. 7, Num. 3 ()
http://rita.det.uvigo.es/201208/uploads/IEEE-RITA.2012.V7.N3.A1.pdf (2012). Accedido
el 10 de junio de 2015.
10. Porcel E.; Dapozo G;, López M.V.: Modelos Predictivos y técnicas de minería de datos
para la identificación de factores asociados al rendimiento académico de alumnos
universitarios.En: XI Workshop de Investigadores en Ciencias de la
Computación. http://hdl.handle.net/10915/19846 (2009). Accedido el 01 de junio de 2015
11. Alcover, R.; Benlloch, J.; Blesa, P.; Calduch, M. A.; Celma, M.; Ferri, C.; Hernández –
Orallo, J.; Iniesta L.; Mas J.; Ramírez – Quintana, M.J.; Robles A.; Valiente J.M.; Vicent
M.J.; Zúnica, L. R.: Análisis del rendimiento académico en los estudios de informática de la
Universidad Politécnica de Valencia aplicando técnicas de minería de datos. In: XIII
Jornadas de Enseñanza universitaria de la Informática. Teruel, España, http://bioinfo. uib.
es/~ joemiro/aenui/procJenui/Jen2007/alanal. pdf.[Links] (2007). Accedido el 10 de abril de
2015
12. Hernández, R.; Fernández, C.; Baptista, M.P.: Metodología de la Investigación. McGraw-
Hill. 5ta Ed (2010)
13. Hall M.; Frank E.; Holmes G.; Pfahringer B.; Reutemann P.; Witten Ian H.:The WEKA
Data Mining Software: An Update, SIGKDD Explorations, Volume 11, Issue 1.(2009)
14. Molina, J. M.; y García J.: Técnicas de análisis de datos. Aplicaciones Prácticas utilizando
Microsoft Excel y WEKA. Universidad Carlos III de Madrid. http://ocw.uc3m.es/ingenieria-
informatica/analisis-de-datos/libroDataMiningv5.pdf (2012) Accedido el 20 de agosto de
2016

73
Clasificador Bayesiano Ingenuo en RapidMiner

Imelda Hernández-Baez1, María de L. Sandoval-Solís2, Marcela Rivera Martínez3,


Luis R. Marcial-Castillo4
Facultad de Ciencias de la Computación, Benemérita Universidad Autónoma de Puebla
14 Sur y Av. San Claudio. Col. San Manuel. Puebla, Pue. México
1
hebi.1305@gmail.com, 2maria.sandoval@correo.buap.mx, 3, 4{cmr,
lmc}@solarium.cs.buap.mx

Resumen.En el presente trabajo se utiliza el Clasificador Bayesiano Ingenuo


(CBI), y su variante CBI-Kernel incluidos en el software de Minería de Datos
llamado RapidMiner, para probar su eficiencia en el entrenamiento y predicción
de bases de datos reales y académicas. El objetivo es entrenar al clasificador
con la base de datos completa y/o con diferentes tamaños de muestra, para
luego probar su eficiencia al realizar la clasificación con nuevos datos. Se
utilizan las opciones disponibles en RapidMiner para ambos clasificadores y se
realiza una combinación con los diferentes parámetros para cada caso.

Palabras Clave: Clasificación Supervisada,Clasificador Bayesiano Ingenuo,


Kernel, RapidMiner.

1 Introducción

Clasificar cosas es parte de la vida desde que se es pequeño. Este proceso está
implícito en muchas de nuestras actividades cotidianas, se clasifica la fruta como
verde o madura, un auto como último modelo o clásico, el médico clasifica a los
pacientes con base en ciertos estudios o valoraciones físicas como apto o no apto para
realizar una cirugía, etc. Catalogar objetos en distintas clases, a partir de un criterio
determinado, es sumamente común, y muchas veces necesario.
Hoy en día, con las tecnologías de la información relacionadas casi a todos los
aspectos de la vida diaria, se puede tener acceso a grandes cantidades de información
que guardan las características más comunes para clasificar objetos.
Debido a esto, se necesitan herramientas que faciliten el proceso de clasificación
de grandes cantidades de información, y que sea relativamente fácil catalogar
personas u objetos con base en ciertos criterios. Una propuesta es el Clasificador
Bayesiano Ingenuo (CBI), conocido también como Naive Bayes, que toma las
características de cada objeto y supone que todas ellas son independientes entre sí y
no afectan en la clasificación, además, los datos tienen una distribución normal; y por
último, sólo requiere una pequeña cantidad de datos de entrenamiento para lograr un
resultado exitoso.
Existen algunas aplicaciones para utilizar el CBI, una alternativa es RapidMiner,
una aplicación de software libre, que tiene una interfaz sencilla y ofrece una gran
cantidad de operadores no sólo para clasificación, sino para otras técnicas de análisis
y minería de datos.
El presente artículo está organizado de la siguiente manera: en la sección 2 se
describe la clasificación y dos de sus principales algoritmos, Clasificador Bayesiano
Ingenuo (CBI) y CBI-Kernel, en la sección 3 se describe el software de minería de
datos RapidMiner, en la sección 4 se muestran los experimentos y resultados
obtenidos, en la sección 5 se presentan las conclusiones y finalmente en la sección 6
el trabajo futuro.
2 Clasificación

Clasificar consiste en asignar un objeto (instancia, dato) a una clase (categoría).


Por ejemplo, se puede clasificar una imagen como paisaje, retrato, urbana, etc. Otro
ejemplo es asignar palabras a categorías gramaticales: sustantivo, verbo, adjetivo, etc.
El poder clasificar lo que se percibe con los sentidos es algo natural en el ser humano;
esto permite abstraer la información, llevándola a una representación más adecuada
para la toma de decisiones. [1]
La clasificación es también muy importante en el desarrollo de sistemas
computacionales para muchas aplicaciones, por ejemplo:

 Diagnóstico médico: Dados algunos síntomas o características, saber si una


persona es candidata a desarrollar ciertas enfermedades.
 Control de calidad en la industria: clasificar una pieza o producto como correcta
o defectuosa.
 Sistemas de seguridad: identificar si una persona tiene acceso o no a cierto lugar.
 Análisis de sentimientos: Analizar sentimientos, opiniones de las personas hacia
productos o servicios.
 Lectores de correo electrónico: filtrar mensajes que sean “basura” (spam).
 Análisis de imágenes médicas: detectar tumores en rayos-X.
 Sistemas biométricos: asignar una imagen de una huella a la persona
correspondiente.

Por lo tanto, es importante diseñar clasificadores que puedan ayudar a resolver


dichos problemas.

2.1 Clasificación Bayesiana

Desde un enfoque bayesiano, el problema de clasificación supervisada consiste en


asignar a un objeto descrito por un conjunto de atributos o características,
X 1 , X 2 ,..., X n , a una de m clases posibles, c1 , c2 ,..., cm , tal que la probabilidad de
la clase dados los atributos se maximiza: [2]
Arg c [MaxP(C | X 1 , X 2 ,..., X n )] (1)
Si se denota al conjunto de atributos como: X  X 1 , X 2 ,..., X n  , la expresión (1)
se puede escribir como: Arg c MaxP(C | X ) . La formulación del clasificador
bayesiano se basa en utilizar la regla de Bayes para calcular la probabilidad posterior
de la clase dados los atributos:
P(C ) P( X 1 , X 2 ,..., X n | C )
P(C | X 1 , X 2 ,..., X n )  (2)
P( X 1 , X 2 ,..., X n )

Que se puede escribir de la forma:


P(C ) P( X | C )
P(C | X )  (3)
P( X )
Entonces el problema de clasificación basado en la ecuación (3) se puede expresar
como:
  P(C ) P( X | C )  
Arg c Max  P(C | X )   (4)
  P( X ) 

75
El denominador P(X ) , no varía para las diferentes clases, por lo que se puede
considerar como una constante si lo que interesa es maximizar la probabilidad de la
clase:
Arg c MaxP(C | X )  P(C ) P( X | C ) (5)

Para resolver un problema de clasificación bajo el enfoque bayesiano, se requiere


la probabilidad a priori de cada clase, P(C ) , y la probabilidad de los atributos dada
la clase, P( X | C ) , conocida como verosimilitud; para obtener la probabilidad
posterior P(C | A) . En términos comunes, la ecuación se puede expresar como:

apriori * verosimilitud
posterior 
evidencia
Entonces, para que este clasificador aprenda de un conjunto de datos, se requiere
estimar estas probabilidades, a priori y verosimilitud, a partir de los datos, conocidos
como los parámetros del clasificador.
La aplicación directa de la ecuación (5), resulta en un sistema muy complejo al
implementarlo en una computadora, ya que el término P( X 1 , X 2 ,..., X n | C ) ,
incrementa exponencialmente de tamaño en función del número de atributos;
resultando en un requerimiento muy alto de memoria para almacenarlo, y también el
número de operaciones para calcular la probabilidad crece significativamente. Una
alternativa es considerar relaciones de independencia mediante lo que se conoce como
el clasificador bayesiano simple, también conocido como Clasificador Bayesiano
Ingenuo.

2.2 Clasificador Bayesiano Ingenuo

El Clasificador Bayesiano Ingenuo (CBI) se basa en la suposición de que todos los


atributos son independientes dada la clase; esto es, cada atributo Xi es
condicionalmente independiente de los demás atributos dada la clase: [2]
P( X i | X j , C )  P( X i | C ), j  i . Considerando esto, la ecuación (2) se puede
escribir como:
P(C ) P( X 1 | C ) P( X 2 | C )...P( X n | C )
P(C | X 1 , X 2 ,..., X n )  (6)
P(C )
Donde P(X ) se puede considerar como una constante de normalización.
Para que un CBI aprenda se requiere la probabilidad previa de cada clase, P(C ) ,
y la probabilidad condicional de cada atributo dada la clase, P( X i | C ) . Estas
probabilidades se pueden obtener mediante estimados subjetivos de expertos en el
área, o a partir de datos mediante máxima verosimilitud.

2.3 Clasificador Bayesiano Ingenuo-Kernel

Una variante del CBI es el Clasificador Bayesiano Ingenuo Kernel (CBI-Kernel), que
mantiene las ventajas del CBI y además se puede aplicar en situaciones donde los
datos no siguen una distribución normal.
Un kernel es una función de peso usada en técnicas de estimación no paramétrica.
Los kernels son usados en Estimación de Densidad de Kernel (KDE, por sus siglas en
inglés), para la estimación de la función de densidad de una variable aleatoria, o en
regresión kernel, para estimar el valor esperado de una variable aleatoria. [3]
Los estimadores de densidad de kernel pertenecen a la clase de estimadores de
densidad no paramétricos. A diferencia de los modelos paramétricos, que fijan
completamente la distribución, excepto por el valor de uno o varios parámetros reales
que deben ser estimados. El modelo paramétrico más utilizado es el normal. Sin
embargo, hay muchas situaciones prácticas en que un sencillo análisis de los datos
muestra claramente que la suposición de normalidad es inadecuada. [4]
Los estimadores de tipo kernel fueron diseñados para superar las dificultades al
utilizar técnicas paramétricas en situaciones donde el comportamiento de los datos no
sigue una distribución normal. Son los más utilizados en estimación no paramétrica.
Definición: Estimador de densidad de kernel. [5] Sea ( x1 , x2 ,..., xn ) una muestra
independiente e idénticamente distribuida trazada desde alguna distribución con una
densidad no conocida f . Se está interesado en estimar la forma de esa función f .
El estimador de densidad de kernel es:
1 n 1 n x  xi
fˆh   K h ( x  xi )   K( ) (7)
n i 1 nh i 1 h
Donde K (.) es el kernel – una función no negativa que se integra a uno y tiene
media igual a cero– y h  0 es un parámetro de suavizado llamado ancho de banda.
Un kernel con subíndice h es llamado kernel escalado y se define como
1 x
K h ( x)  K ( ) . Intuitivamente, se desea elegir h lo más pequeña posible como
h h
los datos lo permitan ( h →0), para poder asegurar que fˆh tiende a la verdadera
densidad f de las variables xi .
Las propiedades más importantes de estos estimadores no se ven afectadas por la
función kernel que se elija. Frecuentemente se toma K como la función de densidad
de la distribución normal estándar.
La elección correcta del parámetro h es el problema más difícil en la estimación
no paramétrica. Si se elige demasiado pequeño, el estimador aparece
“infrasuavizado”, e incorpora demasiado “ruido”, reflejado en la presencia de muchas
modas (máximos relativos) que no aparecen en la densidad que se desea estimar. Por
el contrario, si h se elige demasiado grande, se da el fenómeno contrario de
“sobresuavizado” y el estimador es casi insensible a los datos. [4]
Existen varias formas que permiten asignar h de manera óptima. El criterio más
común para seleccionar este parámetro es la función de riesgo L2 , también conocida
como Mean Integrated Squared Error (MISE):

MISE(h)  E  ( fˆh ( x)  f ( x)) 2 dx (8)


Si se usan funciones Gaussianas para aproximar datos univariados, y la densidad
subyacente es Gaussiana, la elección óptima de h (que minimiza la MISE) es:
1
 4ˆ 5  5 
1

h     1.06ˆn 5 (9)
 3n 
Donde ˆ es la desviación estándar de la muestra. Esta se denomina aproximación
Gaussiana o la Regla de Thumb de Silverman. [5, 6]

77
3 RapidMiner

RapidMiner es un programa informático para el análisis y minería de datos. Permite el


desarrollo de procesos de análisis de datos mediante el encadenamiento de operadores
a través de un entorno gráfico. Se usa en investigación y en aplicaciones
empresariales. [3]
RapidMiner proporciona más de 500 operadores orientados al análisis de datos,
incluyendo los necesarios para realizar operaciones de entrada y salida, pre
procesamiento de datos y visualización. Puede ser descargado desde el sitio:
http://www.rapidminer.com

3.1 Clasificador Bayesiano Ingenuo en RapidMiner

Los algoritmos de clasificación son métodos que dado un conjunto de datos de


entrenamiento infieren un modelo de las categorías en las que se agrupan losdatos, de
tal forma que se pueda asignar a nuevos datos una o más categorías de manera
automática mediante analogías a los patrones de dicho modelo. [7]
En todo proceso de clasificación supervisada, se cuenta con dos conjuntos de
datos etiquetados, uno de entrenamiento y otro de pruebas o de “datos nuevos”.
Primeramente seutiliza el conjunto de entrenamiento a finde construir el modelo de
clasificación y se verifica haber alcanzado el resultado adecuado según la métrica
definida,entonces el proceso termina, sino el proceso de entrenamiento se repite,
hastaobtener el resultado deseado.Considere el ejemplo mostrado en la Figura 1:
Clasificar a una persona como hombre o mujer, considerando 7 atributos: estatura,
edad, pie, largo de brazo, ancho de espalda, perímetro de cráneo y peso.

Fig. 1. Modelo general de clasificación

Elaborar un modelo de clasificación en RapidMiner es sumamente sencillo, sólo basta


“unir” el conjunto de entrenamiento, con el algoritmo CBI, que en este software es el
operador Naive Bayes, y establecer el atributo sobre el cual se elaborará la
clasificación.
La figura 2 muestra el entorno de RapidMiner para construir el modelo de
clasificación usando CBI. Se requieren sólo 5 operadores para obtener los datos
clasificados. En el operador Retrieve se guardan los datos de entrenamiento y los
nuevos para clasificar; el operador Set Role se usa para definir el atributo (categoría)
con el cual se llevará a cabo la clasificación; el operador Naive Bayes es el algoritmo
CBI en sí y finalmente el operador Apply Model recibe como entrada los datos nuevos
y los datos de entrenamiento. Como salida se obtiene el conjunto de datos clasificados
y las tablas y gráficas para cada atributo.
Fig.2. Modelo de clasificación usando el operador Naive Bayes en RapidMiner

3.2 Clasificador Bayesiano Ingenuo- Kernel en RapidMiner

El modelo de CBI-Kernel se construye de forma análoga al CBI, la diferencia son los


atributos necesarios para ejecutarlo. En RapidMiner, el operador Naive Bayes Kernel
ofrece 2 modos de estimación: greedy (voraz) y full (completo). Dependiendo del
modo que se elija, diferentes atributos serán necesarios. La figura 3 muestra un cuadro
resumen con los dos métodos disponibles:

- Ancho de banda mínimo


Voraz
-Número de Kernels

Modos de
CBIKe
Estimación
rnel - Heurística
Selección del
Completo ancho de banda -Fija

Fig. 3. Opciones de estimación para el CBI-Kernel en RapidMiner

79
4 Pruebas y Resultados

En esta sección se describen las condiciones de las pruebas realizadas y los resultados
obtenidos.

4.1 Clasificación de sexo con CBI

Se desea clasificar a una persona en hombre o mujer, tomando en cuenta 7


características: estatura, edad, tamaño de pie, largo de brazo, ancho de espalda,
perímetro de cráneo y peso. Se definen 2 clases, hombre y mujer.
Se realizó la prueba con un conjunto de entrenamiento de 36 personas de la ciudad
de Puebla, que proporcionaron sus medidas reales, y se probó con 3 datos muestra. El
resultado fue una clasificación sin errores, los datos muestra corresponden
efectivamente a un hombre y 2 mujeres. La tabla de salida en RapidMiner se muestra
a continuación en la figura 4.

Fig. 4. Tabla de predicción para datos muestra usando el CBI, en la clasificación de sexo.

4.2 Clasificación de Sexo con CBI-Kernel

Para realizar esta prueba, se toma como referencia los datos de entrenamiento de la
prueba 4.1, para ejecutar el CBI-Kernel con sus dos métodos de estimación: voraz y
completo.
a) VORAZ
Para este modo de estimación, se requieren dos parámetros, ancho de banda
mínimo y número de kernels. Para cada atributo se realizó una combinación de estos
dos parámetros y se utilizó el ancho de banda óptimo, calculado de acuerdo a la
teoría, con la ecuación (9).
Se puede observar que la elección del ancho de banda es de suma importancia en el
resultado final. Si el ancho de banda es muy pequeño o muy grande, con respecto al
óptimo, se generan errores en la clasificación, y se observa gráficamente una
diferencia significativa en la densidad de los datos.
Las figuras 5 a), b) y c) muestran a continuación la tabla resumen y las gráficas de
densidad para el atributo estatura con diferentes valores de h.

Ancho de banda (h) # de kernels Predicción Error


0.1 10 h, m, h 1
1 10 h, m, h 1
1 5 h, m, h 1
2 10 h, m, h 1
2 5 h, m, h 0
5 10 h, m, h 0
5.46 5 h, m ,m 0
5.46 10 h, m, m 0
10 5 H, m, h 1
10 10 H, m,h 1
Fig. 5 a) Tabla resumen con los diferentes anchos de banda y números de kernel para el
atributo estatura.Valor óptimo de h=5.46

h=0.1
#Kernels: 10

Fig. 5 b) Gráfica de densidad para el atributo estatura, h=0.1

h=5.46
#Kernels: 5

Fig.5 c) Gráfica de densidad para el atributo estatura, h=5.46

NOTA: En todos los casos se probó el operador con los atributos dados por
omisión en RapidMiner, ancho de banda=0.1 y # de kernels=10.

b) COMPLETO
Para este caso, se necesita sólo un atributo, que es el ancho de banda. Se puede
seleccionar un ancho de banda heurística o elegir la opción fija.
Se realizaron pruebas con ambas opciones, se muestran a continuación los
resultados.

i) HEURÍSTICA
Con la selección de ancho de banda heurística, se logró una clasificación sin
errores. La predicción fue correcta, hombre, mujer, mujer. Se puede observar en las
gráficas la correcta densidad de los atributos. La figura 6 muestra la gráfica del
atributo largo de brazo.

81
Fig. 6. Gráfica de densidad para el atributo largo de brazo

ii) ANCHO DE BANDA FIJO

Para este caso, se probó el operador con los anchos de banda óptimos calculados de
acuerdo a la teoría y se usó un ancho de banda muy pequeño, 0.1 y uno muy grande,
10. La tabla resumen se muestra a continuación en la figura 7.

Ancho de banda (h) Predicción Error


0.1 h, m, h 1
1.18 h, m, m 0
1.39 h, m, m 0
3 h, m, m 0
5.46 h, m, m 0
10 h, m, h 1
Fig. 7. Tabla resumen con distintos valores para h
Se observa que con los anchos de banda óptimos, se logra una buena clasificación,
mientras que con el pequeño y grande, se obtuvieron errores. Conocer el valor óptimo
del ancho de banda es indispensable para obtener una clasificación exitosa.
El mejor resultado obtenido para CBI-Kernel, se da cuando se usa la opción de
estimación completa y la elección del ancho de banda heurística. El usuario final no
debe preocuparse por calcular un ancho de banda óptimo ni conocer el número de
kernels apropiado para lograr una buena clasificación.

4.3 PIMA-Diabetes

Este ejemplo se realizó con la base de datos PIMA-INDIANS-DIABETES [8]. Consta


de 768 entradas que representan pacientes de sexo femenino, de al menos 21 años de
edad, a quienes se les realizaron pruebas para determinar si mostraban síntomas de
diabetes mellitus, de acuerdo con el criterio de la OMS. Se definen 2 clases: 1,
“positivo para diabetes” y 0, “negativo para diabetes”. Los 8 atributos que se tomaron
como referencia son:
1. Número de embarazos
2. Concentración de glucosa en sangre
3. Presión diastólica (mm Hg)
4. Espesor del pliegue cutáneo del tríceps
5. Insulina en suero (2 horas) (mu U/ml)
6. Índice de masa corporal
7. Función Pedigree Diabetes
8. Edad

Se ejecutó el CBI con algunos datos de entrenamiento de diferentes tamaños, y se


probó su eficiencia en la predicción.
Es importante mencionar que la elección del conjunto de entrenamiento es muy
importante para lograr una clasificación exitosa. Se debe considerar mantener la
misma proporción de clases que en la base de datos original, pues de no ser así, el
desempeño del clasificador se ve afectado, aumentando el número de errores en la
predicción.
Para este caso, la proporción de clases en la base de datos original es de 35%
“positivo” y 65% “negativo”.
La figura 8 muestra el resultado de las pruebas realizadas.

83
TAMAÑO PROPORCIÓN NÚMERO PORCENTAJE
PRUEBA MUESTRA Positivo Negativo ERRORES ERROR
1 50 19 31 206 27%
2 100 44 56 196 26%
3 200 68 132 179 23%
4 300 115 185 190 25%
5 300 105 195 181 24%
6 400 146 254 202 26%
7 400 140 260 200 26%
8 50 25 25 226 29%
9 100 65 35 235 31%
Fig. 8. Resultados de las pruebas con CBI para los datos PIMA

La eficiencia del clasificador se medirá con base en el porcentaje de error, que se


calcula con:
número _ errores _ en _ clasificac ión
porcentaje _ error 
número _ total _ datos

Denotando como mejor clasificación el menor porcentaje de error.


Se puede notar que las pruebas 3y5 dan los mejores resultados, cuando la muestra
es de tamaño 200 y 300, respectivamente; además la distribución de clases, se
mantiene como la original. Aquí el número de errores es sólo de 179.
Por otra parte, se observa en las pruebas 8 y 9, que el porcentaje de error aumenta
hasta el 30%, aquí no importa el tamaño de la muestra de entrenamiento, sino que no
se mantuvo la proporción de clases que en la base original.

4.4 Clasificación de Vehículos

Para este ejemplo se toma como referencia la base de datos académica conocida como
Vehicle Silhouettes [10], que guarda información sobre 846 siluetas de vehículos
descritas a través de 18 atributos.
El objetivo es clasificar una silueta dada como uno de cuatro tipos de vehículos,
utilizando un conjunto de características extraídas de la silueta. El vehículo puede ser
visto desde diferentes ángulos. Las 4 clases disponibles son opel, saab, bus y van.
Se ejecutó el CBI y CBI-Kernel con algunos datos de entrenamiento de diferentes
tamaños, y se probó su eficiencia en la predicción. En el caso de CBI-Kernel se utilizó
la opción completa y el ancho de banda heurística.

Es importante recordar que la elección del conjunto de entrenamiento es muy


importante para lograr una buena clasificación. Se debe considerar mantener la misma
proporción de clases que en la base de datos original.
Para este caso, la proporción de clases en la base de datos original es de 23.6%
para van, 25.6% para saab, 25.7% para bus y 25% para opel. En este caso se tomaron
las muestras con una proporción del 25% cada una.
La figura 9 muestra los resultados obtenidos.

TAMAÑO NÚMERO DE ERRORES PORCENTAJE DE ERROR


MUESTRA CBI CBI-KERNEL CBI CBI-KERNEL
100 469 460 55% 54%
200 465 397 55% 47%
300 484 390 57% 46%
400 462 367 55% 43%
Fig. 9. Resultados obtenidos en la clasificación de siluetas de vehículos

Se puede observar que el resultado para este caso, donde el número de clases es
mayor a 2 y los datos de la base de datos no siguen una distribución normal, el
porcentaje de error varía, de acuerdo al clasificador que se elija. CBI-Kernel funcionó
mejor al reducir significativamente el número de errores.

4.5 Base de datos Zoo

Este ejemplo es una base de datos que contiene animales, descritos a través de
características que se pueden evaluar como falsas o verdaderas. Incluye variables
numéricas y nominales. [10]
Para este caso, existen 7 clases, que corresponden a los 7 tipos de animales:
mamíferos, aves, peces, anfibios, invertebrados, insectos y reptiles. Se tomó una
muestra al azar del total de datos disponibles, considerando la proporción de cada
clase en la base de datos original, para realizar el entrenamiento del clasificador y
posteriormente se probó con el total de los datos.
La figura 10 muestra los resultados obtenidos:

Muestra Distribución Núm.


Mamífero Ave Pez Invertebrado Insecto Reptil Anfibio Error
20 0.381 0.19 0.143 0.095 0.095 0.048 0.048 65
50 0.4 0.2 0.12 0.1 0.08 0.06 0.04 60
Fig. 10. Resultados del entrenamiento del CBI para los datos Zoo.
Se pudo notar que la elección de la muestra para el entrenamiento afecta en gran
medida el resultado del clasificador. Se debe tener en cuenta que la muestra mantenga
la misma proporción de elementos de cada clase que en la base de datos original, para
que el desempeño del clasificador sea lo más eficiente posible.
En este caso, al usar una muestra de 20 y 50 datos iniciales para el entrenamiento,
produjo casi el mismo número de errores al clasificar los datos, 60 y 65,
respectivamente.
Se observó que, para este ejemplo cuyos datos son nominales y el número de clases
es 7, la eficiencia del CBI no es buena, ya que se puede ver en [11] que al aplicar otra
técnica de minería de datos, como lo es el algoritmo de las k-medias se logra un mejor
resultado.

5 Conclusiones

La clasificación está presente en muchos ámbitos de la vida diaria. Es importante


contar con herramientas que faciliten este proceso cuando se cuenta con una gran
cantidad de información que no es fácil de analizar.
El Clasificador Bayesiano Ingenuo y su variante Kernel, son dos algoritmos que
funcionan adecuadamente para obtener una clasificación exitosa. La suposición de
independencia de sus atributos lo hace uno de los más sencillos clasificadores
disponibles.
Estos clasificadores están presentes en algunas aplicaciones, una de ellas es el
software RapidMiner, que ofrece estos algoritmos junto con una gran cantidad de
herramientas para el análisis y minería de datos.

85
El desempeño del Clasificador Bayesiano Ingenuo es mucho mejor cuando se usan
sólo 2 clases y los datos son numéricos, como se pudo ver en las pruebas 4.1, 4.2 y
4.3, aunque su desempeño es en general bastante aceptable.
El CBI no es adecuado para elaborar clasificaciones en donde los datos no sigan
una distribución normal y/o los datos sean nominales, como se pudo ver en las
pruebas 4.4 y 4.5.
En el caso del Clasificador Bayesiano Ingenuo Kernel, funciona sin problema
cuando se conoce el valor óptimo de la variable h, ancho de banda de los datos, y el
número de kernels, que casi siempre está asociado con h.
Una ventaja del Clasificador Bayesiano Ingenuo Kernel es que puede usarse en el
modo de estimación completo y usar un ancho de banda heurístico, esto ofrece al
usuario final una experiencia más agradable, ya que no se necesita calcular un ancho
de banda ni saber cuántos kernels son apropiados para sus datos; además reduce
significativamente el número de errores cuando los datos a clasificar no tienen una
distribución normal, como pudo verse en la prueba 4.4.

6 Trabajo Futuro

Se tiene considerado para trabajo futuro el análisis de otras bases de datos reales en el
área médica, para comparar la eficiencia del CBI y CBI-Kernel con los resultados
obtenidos con otros clasificadores y otras aplicaciones que se están usando
actualmente.

Referencias

1. Sucar, Luis Enrique. Clasificadores Bayesianos: de Datos a Conceptos. INAOE,


Tonantzintla, Puebla, México.
http://www.ai.org.mx/ai/images/sitio/2014/05/ingresos/less/trabaj_final_dr._sucar.pdf
Accedido el 1 de febrero de 2016.
2. Rich, Irina. An Empirical Study of the naive Bayes Classifier. IBM Research
Division.http://www.research.ibm.com/people/r/rish/papers/RC22230.pdf. Accedido
el 25 de enero de 2016.
3. Documentación de RapidMiner en línea. http://rapidminer.com/documentation/
4. Cuevas, Antonio. El análisis estadístico de grandes masas de datos: algunas
tendencias recientes. Departamento de Matemáticas. Universidad Autónoma de
Madrid.http://www.mat.ucm.es/~rrdelrio/documentos/acuevas.pdf. Accedido el 29 de
marzo de 2016.
5. Rosenblatt, M. (1956). Remarks on Some Nonparametric Estimates of a
Density Function. The Annals of Mathematical Statistics 27 (3):
832.doi:10.1214/aoms/1177728190 Accedido el 29 de marzo de 2016.
6. Wand, M.P; Jones, M.C. (1995). Kernel Smoothing. London: Chapman & Hall/CRC.
ISBN 0-412-55270-1. Accedido el 2 de abril de 2016.
7. Ramírez García, Monserrat; Carrillo Ruiz, Maya; Sánchez López Abraham.
Combinación de clasificadores para el análisis de sentimientos. BUAP-FCC,
Puebla, México. Research in Computing Science 94 (2015), pp 193-206.
8. UCI Machine Learning Repository.
http://archive.ics.uci.edu/ml/datasets/Pima+Indians+Diabetes. Accedido el 17 de
febrero de 2016.
9. UCI Machine Learning Repository. https://archive.ics.uci.edu/ml/datasets/Zoo.
Accedido el 16 de febrero de 2016.
10. UCI Machine Learning Repository. http://archive.ics.uci.edu/ml/machine-learning-
databases/statlog/vehicle/. Accedido el 13 de febrero de 2016.
11. Hernández Baez Imelda. K-Medias en RapidMiner. Tesis de Licenciatura,
Benemérita Universidad Autónoma de Puebla, Puebla, 2015.

87
Generación de Mapas de Zonas de Desastres Mediante
Trabajo Colaborativo para Búsqueda y Rescate.

Yasmin Morales-Zitlapopoca1,Nancy Montalvo-Montalvo2,


Abel A. Rubín-Alvarado2, Gustavo Rubín-Linares1
Rodrigo A. Cuevas-Vede1
1
Facultad de Ciencias de la Computación, Benemérita Universidad Autónoma de Puebla
Av. San Claudio y 14 Sur, CU, 72592 Puebla, Pue.
2
Facultad de Ciencias de la Electrónica, Benemérita Universidad Autónoma de Puebla
Av. San Claudio y 18 Sur, CU, 72592 Puebla, Pue.
1
yasminzita94@hotmail.com, 2montalvo.ncym@gmail.com
3
arubinwb@hotmail.com, 4gustavo@cs.buap.mx, 5roalcuve@gmail.com

Resumen. Se describe el diseño e implementación de un sistema robótico


autónomo, que sirva como herramienta de apoyo, en zonas de desastres,
especialmente a los cuerpos de rescate, para explorar y evaluar la zona,
generando rutas seguras de acceso, haciendo un mapeo de la zona a explorar,
esto con la finalidad de no exponer la vida de los rescatistas y haciendo más
eficiente su trabajo. Para esto, se realizarán un conjunto de robots tipo
hexápodo, que se desplazarán en la zona de desastre, haciendo uso de sensores
que les servirán para recolectar información durante su desplazamiento y
evaluar las condiciones bajo las cuales se encuentran; a su vez van a estar en
comunicación con un robot tipo Drone, el cual recibirá todos los datos
recabados por los robots hexápodos; misma que después será procesada en una
plataforma gráfica y de fácil interpretación, para una evaluación de riesgo más
eficiente.
Palabras Clave:Robótica, Drone, Hexápodo, Terremoto, Superficies, Control,
Mapas, Información, Comunicación

1 Introducción

México es una de las naciones más expuesta a los desastres naturales por su ubicación
geográfica, historia y dinámica geológica. [1].Los terremotos son desastres naturales
que dejan como consecuencia daños a estructuras y extensas áreas del
terreno.Estadísticas de sismos en los últimos años, de acuerdo al Servicio Sismológico
Nacional, en México se encuentran registrados un total de 10717 sismos en el año
2015, de los cuales varían en número según su magnitud. [2]

Tabla 5:Se muestran datos de las estadísticas del SSN. [2]

Año Total de MAGNITUD


sismos 0- 3- 4- 5- 6- 7- 8-
2.9 3.9 4.9 5.9 6.9 7.9 8.9
2015 10717 240 888 155 32 3 0 0
5 7

Según la Real Academia Española, el término robótica es la técnica que aplica la


informática al diseño de aparatos que, en sustitución de personas, realizan operaciones
o trabajos. [3]
El presente artículo presenta un sistema robótico, conformado por dos robots tipo
hexápodo y un robot tipo Drone, los primeros actúan como móviles exploradores y
captadores de datos en la zona afectada, gracias al equipamiento de sensores
especializados tanto para condicionar su desplazamiento como para generar una base
de datos los cuales serán enviados hacia el dron receptor, mismo que a su vez se
llevara a una estación de trabajo donde pueda ser procesada la información de forma
gráfica para evaluar las rutas más seguras de rescate a personas.
2 Descripción del sistema.

2.1 Hexápodos
Los robots tipo hexápodo, están inspirados básicamente en la locomoción de
movimiento de los insectos de este tipo, pues estos móviles robóticos están
constituidos por seis patas simétricas con tres grados de libertad; su distribución
simétrica proporciona un centro de masa equilibrado, proporcionando estabilidad a la
base, que está formada por la circuitería que controla los movimientos de los
servomotores, mismos que a su vez controlan las tres intersecciones que conforman
cada pata.

En la base también se encuentran los sensores con los que está equipado el
hexápodo, estos elementos sensitivos cumplen un papel importante para la captura de
datos. Todos los sensores que se integran son importantes, pero cabe mencionar que el
sensor ultrasónico de tipo HS-SR4, en conjunto con el sensor de
temperatura/humedad de tipo DHTII juegan un papel crucial para el desplazamiento
de este móvil, ya que bajo ciertas condiciones programadas, ayudan al hexápodo a
tomar la decisión de crear una ruta más segura tanto para sí mismo, como para el
cuerpo de rescate.

2.2Drone

Este tipo de robotjuega un papel muy importante para el sistema, pues es el mediador
del sistema; en términos de comunicación, éste elemento volador es el
receptor/transmisor que estará sobrevolando la zona de desastre a aproximadamente
40 m de altura, éste contará con un módulo Wifi, para establecer el enlace entre los
hexápodos y la estación de trabajo, donde ahí finalmente los datos obtenidos serán
procesados para fungir como una herramienta de interpretación por el cuerpo de
rescate.

3 Algoritmo de desplazamiento.
Es importante saber que para que el hexápodo se desplace, es necesario hacer énfasis
acerca de las condiciones que éste debe respetar en todo momento; para esto se ha
hecho un análisis detallado sobre las variables que van a intervenir, es decir, con qué
tipo de elementos sensitivos (sensores electrónicos) va a estar equipado, que tipo
datos nos van a arrojar y cuales serán las condiciones que limiten o no el
desplazamiento del móvil.
A continuación se muestra una tabla donde se describen los tipos de sensores, los
tipos de datos que nos proporcionan y los parámetros delimitados a conveniencia
sobre el cual está enfocado todo el sistema.

Tabla 2: Se muestra la descripción general de los componentes electrónicos más


importantes con los que estará dotado el móvil hexápodo.

ELEMENTO TIPO DATOS QUE


PROPORCIONA
Ultrasónico HS-SR04 Distancia en cm
Temperatura/Humedad DHTII Señal digital

89
Gas TGS2610 500-10000ppm
GPS NMA Ubicación

Para el caso del hexápodo existe un rango de distancias mínimas y máximas que se
tienen que respetar, con respecto a su tamaño y anatomía, tomando en cuenta que a la
hora de programar este parámetro existe un punto ciego de 5 cm aproximadamente:

-PARA EL HEXAPODO:
 Altura min: 30cm
 Altura máx.: 40cm
 Ancho min: 39cm
 Ancho máx.: mayor a 39cm

-PARA EL HUMANO:
 Altura min: 50cm
 Altura máx.: 170cm
 Ancho min: 60cm
 Ancho máx.: mayor a 80cm

-PARA LOS OBSTACULOS


 Longitud min: 15cm

El análisis de los obstáculos obedece a las condiciones programadas de los datos de


los sensores ultrasónico y de temperatura, pues el primero proporcionara la condición
para la evaluación de la toma de decisiones, es decir, si las dimensiones especificadas
en la sección anterior se cumplen, éste continúa avanzando. Para el caso del segundo
sensor, proporciona información para evaluar una temperatura brusca de calor, pues
esto nos advierte con mucha probabilidad de un incendio cercano;ante esta situación y
dado que el sensor ultrasónico no detectará un elemento sólido, seguirá avanzando
teniendo como consecuencia un daño a nivel de diseño o a nivel de los componentes,
es por ello que la delimitación de este parámetro es de suma importancia.
A continuación se muestra de una manera gráfica un diagrama de flujo que
describe el algoritmo que obedece el desplazamiento del móvil hexápodo.

3.1Exploración de la zona y captura de datos


Como se habló anteriormente los sensores cumplen una tarea muy importante, pues
su misión es recabar información continuamente para la toma de decisiones del móvil,
la captura de datos de los 2 sensores ultrasónicos HS-SR4, estará ligada al
movimiento circular, para el primero que se encuentra ubicado en la parte baja de la
base, describirá un barrido de 0° a 180°, obteniendo datos a una frecuencia de 40 Hz,
cabe mencionar que el parámetro del tiempo del movimiento es un factor muy
importante, pues está relacionado directamente con la cantidad de datos que se
capturen, es decir hay una relación:
Si el movimiento circular de los 0°-180° dura un segundo, la cantidad de datos va a
oscilar entre los 30-40 datos capturados.
Fig. 3.12: Diagrama de flujo que muestra el algoritmo de desplazamiento del
hexápodo.

4 Trabajo colaborativo
La importancia del trabajo colaborativo es esencial no solo en la vida diaria; este
proyecto se rige bajo las leyes de este concepto, pues el sistema completo (Drone,
hexápodo 1 y hexápodo 2), trabajan de manera colaborativa para recabar los datos de
cada sensor, independiente.
Los personajes principales son los hexápodos, que estarán en la zona de
exploración y que con ayuda de los sensores estarán recabando información continua
(ultrasónico y temperatura), y activando los sensores de gas cada cierto lapso de
tiempo , hasta que el dron, que estará sobrevolando la zona, recabe toda esa
información a través del módulo Wifi, este robot ira a la estación de trabajo para que
los datos se procesen de manera eficaz y regresará nuevamente al punto de
exploración de los hexápodos.

4.1Estableciendo comunicación Hexápodo-Drone.

91
En la sección anterior se habló del envío de datos a través del módulo Wifi, que es
precisamente el medio de comunicación entre Hexápodos-Drone, hablando
específicamente del módulo de comunicación este cuenta con una amplia alcance,
pudiendo llegar hasta 1Km de distancia, para una buena recepción de datos, sin
interrupciones o perdida de datos.

5 Procesamiento de datos para la generación de mapas.


El procesamiento de los datos recabados por el Drone, se procesaran bajo la ayuda de
la plataforma del software Matlab v.15, que con ayuda de un programa diseñado
específicamente para este proyecto, ploteará los datos obtenidos de cada dron para
generar un mapa en tres dimensiones que especifiquen tanto las opciones de rutas,
como las condiciones bajo las cuales se encuentran dichas rutas.

6 Conclusiones y trabajos futuros

Podemos concluir de manera conjunta que la realización de este artículo de


investigación nos hizo darnos cuenta de que la robótica es un área de estudio de
mucho provecho y que existen numerosas formas de manipularla a nuestra
conveniencia, no solo para fines monetarios sino como herramientas para realizar
actos que tienen que ver directamente con la supervivencia misma de nosotros como
seres humanos.

Consideramos que este proyecto puede crecer a futuro, automatizando a los


hexápodos para que sean más autónomos, específicamente hablando de aumentar
dispositivos para disminuir el rango de error en las mediciones del sensor ultrasónico,
como la utilización de infrarrojos, para hacer más exactas y optimas las mediciones.
Por otro lado también puede considerarse instalar una tarjeta con más capacidad de
procesamiento para que los mismos hexápodos puedan hacer el procesamiento de los
datos sin la necesidad de que un software independiente a ellos lo haga.

Referencias

1. UDLAP, Desastres naturales, disponible en:


http://catarina.udlap.mx/u_dl_a/tales/documentos/lps/hernandez_p_yg/capitulo1.pdf.
Accedido el 24 de Agosto de 2016.

2. Servicio Sismológico Nacional, UNAM, Estadísticas de los sismos reportados por el


SSN, disponible en: http://www2.ssn.unam.mx:8080/estadisticas/, accedido el 19 de
Agosto de 2016.

3. Real Academia Española, Diccionario de lengua española, disponible en:


http://dle.rae.es/?id=WYTm4uf, accedido el 19 de Agosto de 2016
Sensado dinámico de temperatura en composta
Carolina Jiménez1, Carlos Parra1, Gerardo Juárez1, Aldrin Barreto1, Salvador E.
Ayala1
Arturo Parra ,Verónica E. Bautista3
2

Facultad de Ciencias de la Electrónica


1

2
Jardín Botánico, Facultad de Ciencias Computacionales. Benemérita Universidad
2

Autónoma de Puebla
Av. San Claudio, s/n, Puebla, Puebla
1
jimenez.201215108@gmail.com

Resumen. En este trabajo se presenta el diseño y desarrollo de un sistema para


el sensado dinámico de la temperatura en tres puntos de una composta, esto se
logra mediante la tarjeta de desarrollo Electric Imp, que permite subir los datos
obtenidos en tiempo real, almacenarlos y graficarlos, para después concentrar
toda esa información en una página web diseñada específicamente para el
usuario final.
Palabras Clave: Internet de las Cosas, Sensado, Temperatura, Composta.

1. Introducción

Los dispositivos de programación encontrados en la actualidad permiten realizar


infinidad de proyectos interesantes con las herramientas con las que cuentan, y
brindan una ventaja mucho más poderosa al poder conectarlos a internet e
interconectarlos con otros dispositivos y plataformas. Esto abre una puerta importante
para la automatización de espacios importantes tales como el control de la
temperatura en una composta, en dónde se tiene que tener un control estricto. Para
llevar a cabo el monitoreo de la temperatura en este espacio, dos trabajadores realizan
las mediciones regularmente dos veces por día.
Electric Imp es una plataforma que permite realizar proyectos que son parte de “El
internet de las cosas”, este es un concepto que nació en el Instituto de Tecnología de
Massachusetts (MIT), y se trata de una revolución en las relaciones entre los objetos y
las personas, incluso entre los objetos directamente, que se conectan entre ellos y con
la Red y ofrecen datos en tiempo real. La tarjeta de Electric Imp permite la conexión a
Internet debido a que posee un mini procesador con conectividad Wifi, en su
“encapsulado” tipo tarjeta SD, en el cual también aloja tanto entradas de alimentación
como pines configurables vía software, de forma que se pueda controlar casi cualquier
dispositivo mediante la tarjeta.

2. Objetivo general

Monitoreo y almacenamiento de la temperatura de tres espacios específicos dentro


de una composta, y generar condiciones de comparación para emitir una alerta en
caso de presentar anomalías, así como el control de forma remota para la
modificación de los parámetros para las temperaturas.

3. Objetivos específicos

● Comunicación por One-Wire con la tarjeta de adquisición (Electric Imp)


● Comunicación desde la tarjeta hasta un servidor web
● Almacenamiento de datos en la nube
● Comparación de datos con respecto a parámetros definidos

93
● Envío de un SMS en caso de alerta

4. Estado de arte

4.1. Implementación del sistema de monitoreo de temperatura del cuarto de


servidores 3ª
Informe de un proyecto de graduación escrito por el autor Humberto Zúñiga
Valverde, el cual desarrolla un sistema de monitoreo de temperatura para la empresa
Sykes Latin America, S.A., con el fin de permitir que las personas encargadas del
mantenimiento cuenten con un dispositivo que alerte por medio del correo electrónico
o mensajes tipo “beeper” cuando la temperatura, dentro de un cuarto de servidores,
sobrepase uno o varios valores definidos; además el dispositivo despliega la
temperatura localmente en una pantalla de cristal líquido y la envía a través de un
puerto RS- 232 a una computadora personal (figura 1). El sistema es propuesto para
utilizar con un PIC16F877, con el protocolo 1-Wire, y el sensor de temperatura
DS18B20. Como característica adicional, el sistema desarrollado permite agregar (y
eliminar) los contactos a los cuales enviar la alarma, así como especificar la
temperatura para activarla a cada contacto agregado (figura 2).

Fig.1. Sistema SYKES

Fig.2.Panel de control para modificar contactos

4.2. Sistema de adquisición de datos de humedad y temperatura utilizando


tecnología 1-Wire y Labview.
Proyecto desarrollado en la facultad de Ingeniería en Electricidad y Computación en
Ecuador, en donde se diseñó un sistema de monitoreo y control de temperatura y
humedad de un área específica. El sistema es funcional en un microcontrolador
PIC16F886 con el protocolo 1-Wire, con un sensor de temperatura DS2438 y el
sensor de humedad HIH3610. Cuando se obtienen los datos requeridos, se ingresan a
una computadora por medio de una tarjeta de adquisición de datos NI USB-6009 para
que sean procesador y controlados. Los datos monitoreados son mostrados en una
interfaz mediante el software Labview (figura 3), en la figura 4 se puede apreciar el
prototipo de dicho sistema.

Fig. 3. Software en labview Fig. 4. Prototipo final

5. Desarrollo
El sistema desarrollado se muestra gráficamente en figura 5, el sistema a bloques
describe de manera sencilla el funcionamiento general, por medio de tres sensores de
temperatura se recaba la información necesaria, la cual es procesada mediante la
tarjeta Electric Imp y su plataforma, que se conecta a un servidor en donde los datos
son almacenados y comparados para que de esta forma se esté monitoreando que las
temperaturas se encuentren dentro de los rangos deseados, y en caso necesario se
envíen las alertas.

Figura 5: Diagrama a bloques del sistema

5.1. Programación
5.1.1. Conexión Electric Imp
Para utilizar la tarjeta primero se debe registrar en la página web de Electric Imp, en
donde creamos un usuario y una contraseña para poder ingresar a su plataforma y
empezar a programar (figura 6), el lenguaje de programación utilizado se llama
Squirrel. También se debe descargar la aplicación para poder conectar la tarjeta
(figura 7), esta se instala en un dispositivo móvil.

95
Figura 6: Interfaz de programación para la Electric Imp

Figura 7: Aplicación para programa la Electric Imp

En la plataforma para programar se encuentran dos secciones, una es utilizada para


el código del agente y la otra para el código del dispositivo. El agente es el código que
se corre en la nube de Electric Imp, lo que permite hacer el procesamiento pesado,
realizar y procesar solicitudes HTTP y almacenar pequeñas solicitudes de datos.
Mientras tanto, el dispositivo en sí es el imp, el código que se ponga en el editor de
device se corre en el imp.
Actualmente se ha desarrollado el código para la lectura del sensor DS18B20, el
cual se encarga de comunicar por medio del protocolo 1-Wire, esto se hace con ayuda
de una librería que se dedica a hacer todos los procesos a bajo nivel. Para la
comunicación con el agente se usa el objeto “agent.” en paralelo con el objeto
“device.” Mediante estas se envían los datos del dispositivo al agente, el cual se
encarga de enviar el código al servidor de “carriots”. En la figura 8 se muestra una
captura de pantalla del código que se está usando para la lectura y envío de
temperatura. En la programación de esta parte se requiere una ApiKey y el device, la
cual se explica cómo obtener en la sección siguiente.

Fig.8. Código de Electric Imp para el proyecto

5.1.2. Carriots
Carriots es una página que permite vincular dispositivos a la web, gestionando los
datos y pudiendo manipularlos, también permite los servicios de almacenar los datos
en la nube, enviar SMS a algún dispositivo e incluso enviar un e-mail, todo esto
apoyando el internet de las cosas.
Para comenzara usar la plataforma es necesario primero registrarse, esto se puede
hacer mediante una cuenta gratuita, la cual vincula a un panel de control (figura 9)
donde se pueden manipular todas las opciones que brinda esta página, la captura de
datos está en la sección “Data Management” mediante el asistente para crear un
Stream.

Fig. 9.

El asistente permite ocupar temporalmente el dispositivo que la página asigna por


defecto, y en el paso dos como key se asgina “temperatura” y se inicializa con de 32
en la parte de value (figura 10).

Fig.10. Parametro para recibir en Carriots

En el tercer paso se obtiene la Apikey y el device (figura 11).

Fig. 11. Código final del stream

Para observar cuales son los datos recibidos se debe visualizar “Data Streams”, en
donde se pueden ver los datos que se han registrado (figura 12).

Fig.12. Tabla donde se muestran los datos recibidos

97
Las cuentas gratuitas tienen un límite de datos que pueden recibir al día, por ello
hay que prestar atención a la frecuencia de envío de datos.

5.1.2.1. Graficación
Otra herramienta importante que brinda lla página es la opción de graficar datos,
que se encuentra en “wizard Widget Graphs”, seleccionado en la figura 13.

Fig.13. Menú de opciones del manejo de datos

Siguiendo los parámetros que vienen por defecto se obtiene una gráfica como la
que se muestra en la figura 14.

Fig. 14. Grafica de 50 datos recibidos por Carriots

Esta gráfica se puede incorporar a una página web manipulando el código (que se
puede ver en la figura 15) que la misma página facilita. Para que el código de la
gráfica funcione de manera adecuada y muestre la gráfica en la página web, se
requiere insertar lo junto con otro código, mostrado en la figura 16, reemplazando el
código que se encuentra en el recuadro rojo.

Fig.15. Código para insertar en una página web


Fig.16. Código completo para insertar grafica a un blog

5.1.2.2. Comunicación con google drive


Para poder almacenar los datos en una hoja de datos en google drive para poder
manipularla se requiere hacer una cuenta en IFTTT, esto es en https://ifttt.com/join/.
Después se necesita conectar con Maker Channel, en Channels en el menú dentro de
IFTTT (figura 17). Al conectarse, se obtendrá una “Key” la cual se necesitará más
adelante.

99
Fig.17. Canales para vincular

Siguiendo los pasos descritos anteriormente, se hace la conexión Google drive.


Teniendo estas dos aplicaciones conectadas se crea un “Recipe”, encontrado también
dentro del menú principal dentro del IFTTT (figura 18). Se selecciona la palabra
“This”, y luego “Receive a web request”; así se crea un evento y ponerle nombre
(figura 19).

Fig. 18. Vinculando Google Drive

Fig.19. Creando evento

Después se selecciona la palabra “That” y se agrega una hoja de cálculo en “Add


row to spreadsheet”. Y se configura dicha hoja asignándole un nombre y agregando
los datos que ésta contendrá (figura 20).
Fig.20. Configuración de los datos a almacenar en Google Drive

Finalmente se crea un listeners en carriot, como se puede ver en la figura 21, para
poder empezar a subir los datos a nuestra hoja de datos. El resultado se muestra en la
figura 22, en donde se puede ver la tabla en excel con los datos recabados por el
Electric Imp de los tres sensores.

Fig.21. Listener creado en Carriots para el envió de datos a la tabla

101
Fig.22. Tabla dinámica

Como la información obtenida en excel se requiere mostrar en un blog, explicado


más adelante, es necesario publicar esta información en la web.
Seleccionando en el menú archivo, publicar en la web, muestra un recuadro en el
cual se puede escoger las hojas a publicar y nos permite código HTML que será
insertado en el blog (figura 23).

Fig.23. Código para insertar la tabla dinámica en un blog

5.1.2.3. Enviar correo y SMS


Para enviar una alerta, es necesario crear un Listener definiendo las condiciones en
las cuales se desea activar, y se pueden enviar por correo, SMS y Twitter. La página
de carriots, tiene un asistente que facilita el uso de estas opciones (figura 24).
Siguiendo el asistente es fácil crear una alarma, solo basta definir los parámetros que
se solicitan, en la figura 25 se aprecia el código que debe quedar para enviar un email
y en la figura 26 el código para enviar un SMS.
Fig.24. Menú de listeners

Fig.25. Enviar un correo

Fig.26. Enviar un SMS

5.2. Sensores
Para el sistema que va a ser implementado dentro de la composta, se propuso la
adaptación del sensor de temperatura a un tubo (figura 27), con la finalidad de que
esté más en contacto con la composta y pueda entregar los datos más exactos, y al
mismo tiempo proteger sus terminales y evitar que se junten o que sean afectados por
factores externos como la humedad. Cada sensor podrá ser enterrado en la composta a
cierta distancia de profundidad por lo cual el tubo será un poco largo para poder
manipularlo (figura 28). El prototipo se diseñó y simuló en el software SolidWorks.

103
Figura 27: Diseño del Sensor

Fig.28. Largo de las 3 barras de sensores

El diseño final se muestra en la figura 29, el sensor fue adaptado a un tubo de


acrílico de 90 cm de largo, y fue sellado de ambos lados para evitar que cualquier
agente externo (polvo, humedad) dañara las conexiones de los cables con el sensor.

Fig.29. Acabado final

5.3. Electric Imp


Con respecto a la tarjeta de desarrollo y la comunicación con los sensores, se hizo una
placa en la cual se encuentran todas las conexiones hacia éstos y para el
funcionamiento del Electric Imp, dicha placa se puede observar en la figura 30 y 31, y
todo este sistema se guardó en un pequeño gabinete de 2.5cmx5cmx7cm (figura 32),
éste nos proporciona mayor seguridad y facilidad para colocarlo en cualquier sitio
para empezar a ser utilizado, además de que resulta sencillo para el usuario conectar
los sensores pues cuentan con un conector jack (figura 33) para mayor comodidad.

Fig.30. Placa PCB del proyectoFig.31. Placa PCB del proyecto


Fig.32. Gabinete finalFig.33. Conector Jack

5.4. Interfaz
Se diseñó un blog en el cual se muestra la información resumida sobre el monitoreo
en la composta, en la figura 34 se puede ver cómo se visualiza la página completa.

Fig.34. Blog

Primero se muestra el título con una pequeña descripción de la información


encontrada (figura 35). Después se puede encontrar la tabla de Excel (figura 36),
explicada en la sección 5.1.2.2, en donde se almacenan las temperaturas de los tres
sensores, esta información es recabada cada 6 minutos y la tabla se actualiza
automáticamente. También se obtiene la gráfica (figura 37), esta es insertada en el
blog con el código explicado en la sección 5.1.2.1, en la cual el usuario puede analizar
de forma visual y más sencilla el comportamiento de las temperaturas sensadas, de las
5 horas anteriores a la hora en que se está consultando, si requiere conocer la
temperatura en algún punto exacto, basta con que el usuario posicione el cursor en
dicho punto. Por último, se brinda el contacto si el usuario tiene alguna sugerencia o
duda acerca del sistema, así como la posibilidad para solicitar la modificación de

105
algún parámetro (figura 38). El usuario puede acceder a este blog en la dirección
web: http://temperaturaencomposta.blogspot.mx/.

Figura 35: Titulo del blog

Fig.36. Tabla Dinámica

Fig.37. Grafica

Fig.38. Contacto

6. Resultados y conclusiones
El sistema quedó listo y se hicieron algunas pruebas iniciales dentro de una casa
para comprobar su funcionamiento y garantizar el envío correcto de los datos. Los
sensores fueron calibrados, comparando los valores obtenidos con un termómetro de
laboratorio (figura 39). El sistema se quedó en funcionamiento un día entero, y se
probó el envío de las alarmas, que al sobrepasar la temperatura establecida en
cualquiera de los sensores se enviaba un mensaje alertando al usuario de dicho
evento.
Fig.39. Termómetro de laboratorio

Los objetivos, desde el general hasta los específicos, fueron cubiertos de forma
satisfactoria. Tanto Carriots como la tarjeta de desarrollo Electric Imp, en conjunto
con su plataforma para su programación, son herramientas poderosas pues permiten
en primera instancia poder manejar y programar la tarjeta con tan solo tener una
conexión a internet y tener configurada la tarjeta con alguna red, por otro lado
Carrriots nos permite recibir datos ( en este caso de los sensores de temperatura) y
poder manipularlos, almacenarlos y mostrarlos en una gráfica para ver su
comportamiento; también nos ofrece una herramienta más, al poder comunicar esos
datos a una hoja en drive y la posibilidad de mostrar cualquier resultado en alguna
página web, para así poder hacer el sistema de más fácil acceso para el usuario final.

Bibliografía
1. Zùñiga Valeverde Humberto. Implementación del sistema de monitoreo de
temperatura del cuarto de servidores 3A.
http://bibliodigital.itcr.ac.cr/bitstream/handle/2238/5708/IMPLEMENTACION_S
ISTEMA_MONITOREO_3A.pdf?sequence=1&isAllowe=y. Accedido el 11 de
Marzo de 2016.
2. Mera Villavicencio Diogenes, Valdivieso Feijoo Fernando, Fernando Vasquez
Luis. Sistema de adquisición de datos de humedad y temperatura utilizando
tecnología 1-Wire y Labview.
https://www.dspace.espol.edu.ec/bitstream/123456789/19092/1/Sistema%20de%2
0Adquisicion%20de%20Datos%20de%20Humedad%20y%20Temperatura%20uti
lizando%20Tecnologia%201%20wire%20y%20Labview.pdf.Accedidoel 11
deMarzode2016.
3. Bioetica y biopolitica. https://bioeticaybiopolitica.wordpress.com/dr-carlos-
escamilla-weinmann/. Accedido el 11 de Marzo de 2016.
4. Carriots Dev.
https://www.carriots.com/tutorials/electric_imp_carriots/alert_system. Accedido el
11 de Marzo de 2016.
5. Documentation for Carriots graph. Carriots Forum. 8 de Noviembre de 2013.
http://forum.carriots.com/index.php/topic/58-documentation-for-carriots-graph/.
Accedido el 16 de Marzo de 2016.
6. How to update Google Spreadsheets using Carriots & IFTTT. Carriots Dev.
https://www.carriots.com/tutorials/others_APIs/ifttt. Accedido el 17 de Marzo de
2016.
7. Graphs. Carriots Dev. https://www.carriots.com/documentation/graphs. Accedido
el 16 de Marzo de 2016.
8. Blogger y google drive hojas de cálculo. Inicia Blog.
http://www.iniciablog.com/2013/09/Blogger-Google-Docs-Hojas-Calculo.html.
Accedido el 16 de Marzo de 2016

107
Sistema de Aprendizaje Incremental para
Reconocimiento Automático de la Edad Ósea

Fernando Montoya-Manzano1, Salvador E. Ayala-Raggi1, Susana Sánchez-


Urrieta1, Aldrin Barreto-Flores1, José F. Portillo-Robledo1, Patricia Ayala-Raggi2
1
Facultad de Ciencias de la Electrónica,Benemérita Universidad Autónoma de Puebla,
Av. San Claudio y 18 sur, Col. Jardines de San Manuel, C.P. 72570, Puebla, Pue., México.
2
Imagenología Médica S.C.,
2
31 Oriente No. 208-A, C.P. 72530, Puebla, Puebla, México.
fmm_ferix@hotmail.com, 2 payala@exakta.mx
1
{saraggi, surrieta, abarreto, portillo}@ece.buap.mx

Resumen.En este trabajo, se propuso y desarrolló un sistema simple de


detección de la edad ósea basado en el uso de un Modelo Activo de Apariencia
(AAM) creado a partir un conjunto de imágenes de entrenamiento con
suficiente variabilidad en forma y textura. Un segundo conjunto de
entrenamiento alineado en forma mediante el AAM se va construyendo
incrementalmente y es utilizado como base de un clasificador de regresión
basado en los K-Vecinos más cercanos. Para ello, se diseñó un arreglo de
puntos clave o “landmarks” colocadas en regiones representativas de imágenes
radiográficas de manos. También, con la finalidad de que el sistema sea
“incremental” en su aprendizaje, se hizo uso de la intensidad de los pixeles
como características de clasificación. Los resultados muestran que el uso de los
pixeles como características es posible siempre y cuando las imágenes, de
entrenamiento y prueba, estén previamente alineadas en pose y forma.
Palabras Clave: Identificación de Edad Ósea, Estimación de Edad Ósea,
Modelos Activos de Apariencia, Regresión K-NN.

1 Introducción

La estimación de la edad ósea es un procedimiento vital para diagnosticar


adecuadamente un gran número de enfermedades y problemas relacionados con el
crecimiento. Dicho procedimiento es realizado manualmente por un médico radiólogo
quien de forma subjetiva compara los huesos y los núcleos de crecimiento del
paciente en una imagen radiológica de la mano izquierda con una cantidad
considerable de plantillas tomadas de un atlas estandarizado [1], [2]. Este
procedimiento es propenso a clasificar la edad errónea o imprecisamente comúnmente
causado por dos factores importantes: errores humanos debido a comparaciones
subjetivas, y el hecho de que sólo existe una plantilla por edad ósea en los atlas.
A pesar de que muchos de los atlas utilizados han sido cuidadosamente diseñados
por expertos en el campo el hecho de utilizar un solo prototipo de imagen podría ser
inadecuado por la gran variación en la apariencia de las manos humanas. Por otro
lado, otra propuesta utilizada por algunos radiólogos se basa en el cálculo de
diferentes resultados de diferentes grupos de huesos para después obtener un
promedio de los cálculos realizados. Este proceso es impráctico y subjetivo para
bastantes médicos a pesar de ser más preciso que métodos anteriores [3] [4].
Se han propuesto sistemas automáticos para abordar el problema de la subjetividad.
Niemeijer y otros [5] proponen un sistema automático basado en el método de Tanner
y Whithouse el cual consiste en utilizar un gran número de ROIs (Región de Interés
por sus siglas en inglés) etiquetadas con edades por un radiólogo. Luego para cada
edad se computa una imagen promedio. Después, al ingresar una imagen nueva
marcada con ROI (para clasificarse) un ASM (Modelo Activo de Forma por sus siglas
en inglés) se emplea para ajustarse a la forma. Finalmente, utilizando un algoritmo de

109
correlación se selecciona la edad asignada a la forma media que mejor se ajusta a la
imagen de entrada. En ésta propuesta se observan dos desventajas: Primero, la imagen
media utilizada no contiene la variabilidad que se observa en las imágenes originales
que se usaron para formarla. Segundo, la cantidad de edades etiquetadas es finita, por
lo tanto, la edad estimada no es una variable continua, es decir, siendo las edades A y
B, a la hora de estimar la edad no se puede tener como resultado ninguna edad que no
sea A o B. En [3], Hsieh y otros proponen extraer parámetros geométricos de los
huesos carpales de forma manual con edades de entre 1 y 8 años, y entonces utilizar
ANN (Redes Neurales Artificiales por sus siglas en inglés) como método de
clasificación. En [17], Daniel Abad propone un método de estimación de edad ósea
automática basado en la segmentación de los huesos que utiliza filtros de pre-
procesamiento de detección de bordes y rellenado de contornos para recrear la
estructura ósea de una radiografía entrante. Después realiza un cálculo de las
distancias euclidianas que hay entre los huesos y los núcleos de crecimiento. Luego
calcula la edad ósea de manera similar al método de Tanner y Whitehouse. A pesar de
sus resultados prometedores y precisión, este método depende de los mismos
parámetros de etiquetado que el método de Tanner y Whitehouse.
La propuesta en este trabajo no es la de automatizar los métodos clínicos de
estimación de edad ósea conocidos [1] [2] como se han hecho en trabajos anteriores
[6]. En lugar de eso se investigó y diseñó un sistema para la estimación de edad ósea
el cual es capaz de aprender de los ejemplos de prueba para mejorar su desempeño.
Como conocimiento previo sólo las etiquetas de las edades de los ejemplos de prueba
serán usadas. Se han realizado esfuerzos para lograr algoritmos de estimación de edad
ósea basados en el aprendizaje de parámetros estadísticos de un gran número de
ejemplos como en [7] [8] pero no se han visto tales para diseñar un sistema para la
estimación de la edad ósea con la capacidad de mejorar su desempeño y aprender
mientras más ejemplos se presenten en el sistema. Sería de gran utilidad que un
sistema pueda mejorar su desempeño incluso sin la necesidad de reentrenarlo. Un
algoritmo típico de clasificación que es inherentemente incremental en ese sentido es
el algoritmo de los K-vecinos más cercanos.
En este trabajo se ha utilizado una versión regresiva del clásico algoritmo de los K-
vecinos el cual se basa en el uso de una función radial. A primera vista parece posible
el agregar nuevas imágenes al sistema cada vez que se quiera incrementar el
aprendizaje y por consiguiente mejorar el desempeño en el proceso de clasificación
también. Sin embargo, y considerando que las imágenes originales no están alineadas
es necesario un considerable número de imágenes de entrenamiento para poder
obtener una clasificación aceptable. Para enfrentar este problema se ha implementado
un algoritmo de alineación previo a la clasificación basado en un pre-entrenado
Modelo Activo de Apariencia el cual segmenta la región de interés de la mano y luego
traslada su textura hacia una forma de mano normalizada. La normalización en forma
permite tener en el mismo marco de referencia tanto a la forma como a la textura
trasladada. Dentro del ajuste del AAM se aplica tanto a forma como a textura un
análisis estadístico para reducir su dimensionalidad y obtener un conjunto reducido de
parámetros de forma y textura. La textura trasladada a la forma normalizada y el
conjunto reducido de parámetros de forma devueltos por el proceso de ajuste del
AAM (Modelos Activos de Apariencia por sus siglas en inglés) se unen en un nuevo
vector de parámetros el cual puede ser agregado a una Base de Conocimiento o
conjunto de ejemplos de entrenamiento con la cual el algoritmo de los K-NN (K-
vecinos más cercanos por sus siglas en inglés) realiza la clasificación y finalmente el
cálculo de la edad ósea utilizando regresión lineal para permitir que la edad se trate
como continua a pesar del número finito de edades.
2 Resumen del sistema

En el sistema propuesto de reconocimiento se distinguen dos etapas muy importantes:


la primera es la etapa de desarrollo y la segunda es la etapa de uso. Durante la etapa
de desarrollo un modelo AAM [9] fue creado a partir de un conjunto de imágenes
manualmente etiquetadas las cuales tienen la suficiente variación en forma, textura y
edad entre ellas. El propósito de éste modelo AAM es alinearse o ajustarse a una
nueva imagen de prueba durante la etapa de uso. Entonces, durante la etapa de uso el
usuario tiene dos opciones: realizar la estimación con una nueva imagen o ingresar
una imagen para incrementar el aprendizaje. En ambas opciones el usuario ingresa
una nueva imagen al sistema y el proceso de ajuste del AAM se lleva a cabo luego de
que el usuario provea una posición inicial para el modelo. Cuando el proceso de ajuste
finaliza y el modelo ha convergido y recreado a la imagen original se puede
segmentar automáticamente la ROI de la mano y trasladar la textura de la imagen
original hacia una forma normalizada con la finalidad de crear una nueva imagen
normalizada en forma y pose con la mejor textura. Esta imagen se une a los
parámetros de forma devueltos por el AAM creando un vector de parámetros de la
nueva imagen. Si el usuario elige la opción de probar el sistema, el nuevo vector
obtenido se clasificará utilizando la regresión K-NN. Por otro lado, si el usuario elige
la opción de incrementar aprendizaje entonces el vector de parámetros junto a la edad
etiquetada por el sistema o manualmente son agregados a la base de conocimiento la
cual es un conjunto de vectores de parámetros. Al inicio de la etapa de uso cuando no
se ha ingresado imagen para probar la base de conocimiento está formada por los
vectores de parámetros correspondientes a las imágenes utilizadas para entrenar al
modelo AAM. La Fig. 1 muestra el proceso completo.

Fig. 13. Diagrama del proceso en general.

3 Creación del Modelo Activo de Apariencia de Imágenes


Radiográficas de Manos.

Se construyó un Modelo Activo de Apariencia o AAM para modelar las variaciones


en la forma y la textura de manos en imágenes radiográficas. Los AAM son modelos
paramétricos basados en la aplicación de Análisis por Componentes Principales (PCA
por sus siglas en inglés) tanto a forma como a textura de un conjunto de imágenes de
entrenamiento. La forma es modelada colocando manualmente un conjunto de puntos
o landmarks sobre zonas distintivas en cada imagen de manos. Una forma o
simplemente 𝑠𝑖 es un conjunto de puntos (𝑥𝑗 , 𝑦𝑗 ) de una imagen particular. Por lo
tanto, luego del proceso de alineación se aplica PCA al conjunto de 𝑠𝑖 para obtener un
conjunto reducido de componentes o eigenformas capaces de representar un alto
porcentaje de la variación den forma vista en el conjunto de entrenamiento. Por otro
lado, las texturas contenidas dentro de 𝑠𝑖 están normalizadas en forma por un traslado
de textura o warping hacia la forma media antes de aplicarles PCA también. De igual
modo que con las formas, al aplicar PCA a las texturas se obtiene un conjunto
reducido de componentes o eigentexturas [10] capaz de representar un alto porcentaje
de la variación en textura vista en el conjunto de entrenamiento. Esta capacidad de

111
alta representación utilizando un reducido conjunto de eigenparametros
(eigenformas+eigentexturas) es posible gracias a la gran similitud que existe entre las
imágenes de entrenamiento. Computando una combinación lineal de los
eigenparametros podemos reconstruir cada mano dentro del conjunto de
entrenamiento o incluso crear una síntesis de una imagen nueva. Los coeficientes
comúnmente llamados pesos de esas combinaciones lineales son los parámetros del
modelo AAM.
Una vez que el modelo AAM ha sido creado puede ser utilizado para alinearse a
una imagen entrante utilizando un algoritmo de ajuste iterativo similar al
implementado en [11] con lo que es posible recobrar los parámetros de forma y
textura del modelo que mejor se ajusten a la mano de la imagen entrante.
Para construir el modelo de forma se diseñó una plantilla adecuada de puntos o
landmarks así como una malla de triángulos (para trasladar la textura) que
geométricamente no se volteen ni se encimen a causa de las variaciones en forma
presentadas en el conjunto de entrenamiento. En la Fig. 2 se muestra la plantilla
propuesta de landmarks mientras que en la Fig. 3 se ilustra nuestra triangulación
manual utilizada en éste trabajo comparada con una triangulación delaunay [12]
calculada automáticamente con Matlab. Se puede apreciar que la triangulación
propuesta es más robusta a la variación en cuanto a posición de los landmarks que la
triangulación delaunay ya que algunos landmarks de algunos triángulos son casi
colineales.

Fig. 2. Plantilla de Landmarks colocados en puntos distintivos de la estructura ósea.

Fig. 3. Modelo de la forma media, triangulación propuesta y triangulación calculada con el


método de delaunay.
Una vez que las imágenes han sido etiquetadas manualmente con un conjunto de
landmarks un proceso iterativo basado en el Análisis de Procrustes [9][13] debe
aplicarse al conjunto de formas para alinearlas en escala, rotación y traslación. El
objetivo de realizar esta alineación es el de reducir la distancia que hay entre los
puntos de cada forma y los puntos correspondientes de la forma media. En la Fig. 4 se
ve un ejemplo de algunas formas alineadas a otra forma en particular.

Fig. 4. Particularmente, todas las formas en éste trabajo fueron alineadas a la forma
correspondiente al ejemplo numero 5 pues tiene poca variación visual y permite ver cómo será
la forma media aproximadamente.

Luego de aplicar PCA al conjunto alineado, cada forma en el conjunto de


entrenamiento puede entonces ser reconstruido por la siguiente expresión:
𝑆 = 𝑆̅+𝑄𝑠 𝑊𝑠 (1)
Donde 𝑆 es la forma de salida, 𝑆̅ es la forma media, 𝑄𝑠 es una matriz cuyas
columnas son las eigenformas y 𝑊𝑠 es un vector de parámetros de forma o pesos de
forma. El número de eigenformas (y por lo tanto el número de parámetros de forma)
puede ser reducido si se preservan sólo los parámetros que corresponden a sus
eigenvalores más grandes. Así, el número de eigenformas o componentes necesarios
para representar cada imagen del conjunto de entrenamiento será muchísimo menor
que el número de imágenes del conjunto de entrenamiento.
Las texturas de las imágenes de entrenamiento pueden ser trasladadas hacia la
forma media utilizando la ecuación 2 y su respectivo conjunto de formas
correspondiente a cada imagen de entrenamiento, creando así texturas normalizadas
en forma. La Fig. 5 ilustra éste proceso. Entonces, se puede aplicar PCA a éste nuevo
conjunto de texturas normalizadas en forma para obtener eigentexturas [10].
Del mismo modo que con las formas una vez aplicado el PCA a las texturas
cualquier textura del conjunto de entrenamiento puede ser representada entonces por
la siguiente expresión:
𝑔 = 𝑔̅ +𝑄𝑔 𝑊𝑔 (2)
Donde 𝑔 es la forma de salida, 𝑔̅ es la forma media, 𝑄𝑔 es una matriz cuyas
columnas son las eigentexturas y 𝑊𝑔 es un vector de parámetros de textura o pesos de
textura. El número de eigentexturas puede ser reducido si se preservan sólo los
parámetros que corresponden a sus eigenvalores más grandes.

113
Fig. 5. Ejemplo de cómo se ven las imágenes trasladadas hacia la forma media.

Los parámetros del modelo AAM estarán completos una vez que los parámetros de
pose (𝑠, 𝜃, 𝑡𝑥 , 𝑡𝑦 ) (escala, rotación y traslación en x e y) sean agregados.
𝑃 = (𝑤𝑠𝑇 𝑤𝑔𝑇 |𝑠, 𝜃, 𝑡𝑥 , 𝑡𝑦 ) (3)

3.1 Ajuste del modelo AAM a una imagen de mano entrante

Se ha utilizado el algoritmo iterativo descrito en [11] para alinear el modelo AAM a


una imagen entrante. Aunque en esencia es el mismo algoritmo de alineaciónse
hicieron algunas modificaciones para que funcionase de manera adecuada con
imágenes radiográficas de manos en lugar de rostros.
En un rostro el fondo es independiente, los rostros aparecen como objetos solidos
sobre el fondo mientras que en el caso de las manos en radiografías las manos son
objetos con un cierto grado de transparencia, es decir, hay huecos entre los dedos
volviéndose un objeto irregular a diferencia de un rostro. Por lo tanto, un nivel de gris
del fondo está presente en la estructura de la mano.
El proceso de ajuste del modelo AAM a una imagen entrante es computado
utilizando un algoritmo iterativo el cual calcula el residual 𝒓(𝒑) (la actual diferencia
entre el modelo y la imagen) en cada iteración, éste residual es siempre medido en un
marco de textura normalizada en forma asumiendo que la relación que hay entre el
𝜹𝒓
residual 𝒓(𝒑 + ∆𝒑)y 𝒓(∆𝒑)es aproximadamente constante (denotada como ).
𝜹𝒑
Entonces un incremento adicional para el parámetro ∆𝒑puede ser computado en cada
iteración por:
−1
𝛿𝑟 𝑇 𝛿𝑟 𝛿𝑟 𝑇 (4)
𝛿𝒑 = −𝑹𝒓(𝒑) 𝑑𝑜𝑛𝑑𝑒 𝑹=( )
𝛿𝒑 𝛿𝒑 𝛿𝒑
𝛿𝑟
Donde es una matriz Jacobina compuesta por un número de columnas igual al
𝛿𝒑
número de parámetros. La j-ésima columna de ésta Jacobina se calcula previamente
de forma sistemática desplazando cada parámetro de su valor inicial para el modelo
de apariencia. Para evitar errores numéricos e incrementar la velocidad de cómputo se
hace uso de la matriz seudo-inversa de Moore-Penrose en lugar de la matriz inversa
normal durante el cálculo de la matriz R.
En [11] el algoritmo de ajuste del AAM funciona perfectamente en imágenes cuyo
fondo es negro si y solo si la matriz R ha sido computada a partir de imágenes
sintéticas de rostros con el fondo negro. Similarmente, en el caso de las radiografías
un ajuste adecuado es posible si y solo si la matriz R ha sido computada a partir de
imágenes sintéticas de manos con un fondo el cual dependa del nivel de gris dentro de
la estructura de la mano. Para abordar ese requisito un fondo gris sintético ha sido
generado durante el cálculo de la matriz R. Después de muchas pruebas se propuso
que nivel de gris se calcule con lo siguiente:
𝑏=𝑚
̅ 𝑥,𝑦 − 0.8 𝜎𝑥,𝑦 (5)
Donde 𝑚 ̅ 𝑥,𝑦 es la media de intensidad de todos los pixeles de la región de la mano
sintética (incluyendo entre los dedos) y 𝜎𝑥,𝑦 es la desviación estándar de la intensidad
de los mismos pixeles. La Fig. 6 muestra dos casos en el proceso de construcción de
la matriz R. En ambos casos la textura media 𝑔(𝒑 = 0) fue alterada desplazando
sistemáticamente los parámetros p en incrementos de ∆𝒑. La Fig. 7 ilustra el proceso
de ajuste en una radiografía de un bebé de un adolescente.

Fig. 6. Dos casos en la construcción de la matriz R. Izquierda: en éste caso el fondo es


completamente negro y los residuales calculados son distintos naturalmente a los obtenidos
durante el proceso de ajuste, como resultado se produce un ajuste erróneo. Derecha: el fondo es
calculado estadísticamente con los pixeles dentro de la estructura de la mano, incluyendo los
pixeles entre los dedos, y los residuales calculados son similares a los computados durante el
proceso de ajuste.

Fig. 7. Proceso iterativo del ajuste del modelo AAM a una imagen de entrada, en ambos
ejemplos la convergencia se obtuvo a las 78 iteraciones, no siempre se obtiene la convergencia
en la misma cantidad de iteraciones.

4 Clasificación de la Edad Ósea

Los parámetros de forma devueltos del modelo ajustado a la imagen nueva son unidos
a la textura normalizada en forma de la imagen original para crear un vector de
parámetros útil para la clasificación con los K-NN. En teoría se pueden utilizar los
parámetros de forma y textura devueltos por el proceso de ajuste del AAM para
formar un vector reducido de parámetros el cual es adecuado para clasificar, sin
embargo, proceder de ése modo no permite el implementar un proceso de aprendizaje
incremental dado que se debería construir un nuevo modelo AAM cada vez que se
quiera agregar un nuevo ejemplo a la base de conocimiento. Obviamente este es un
proceso pesado computacionalmente hablando, por lo tanto, para diseñar un sistema

115
de aprendizaje incremental práctico se propuso formar el vector de parámetros con los
parámetros de forma devueltos por el ajuste iterativo junto con la textura original
normalizada en forma
𝑭 = (𝑤𝑠𝑇 |𝑔𝑇 ) (6)
Así no se tiene que reconstruir el modelo AAM cada vez que se quiera ingresar un
nuevo ejemplo a la base de conocimiento para aprender. De este modo, hay que
asegurarse que el modelo AAM está construido con la suficiente variación en forma y
textura para ser capaz de ajustarse a casi cualquier imagen de entrada. Se eligieron 3
ejemplos de cada edad partiendo de 1 año hasta 19 años dando un total de 57
ejemplos, del mismo modo se eligieron 8 ejemplos de distintas edades que aportaran
variaciones en pose y forma que no estuvieran presentes en los primeros 57 ejemplos.
Esto con la finalidad de que dentro del entrenamiento se tuviera la mayor cantidad
posible de información de variación en pose y forma pero al mismo tiempo tuviera un
equilibrio en las edades.

4.1 Clasificación de Edad usando Regresión K-NN

El vector de parámetros estimado F puede ser clasificado comparándolo con los


almacenados el conjunto que llamamos base de conocimiento. Para abordar la
clasificación se implementó un algoritmo de regresión de los K-vecinos más cercanos
(KNN) [14] [15]. El proceso consiste en encontrar los K vectores de parámetros
almacenados en la base de conocimiento que son los más cercanos en distancia
euclidiana. Utilizamos éstas distancias 𝑑𝑖 (𝑖 − 1, … , 𝑘) para computar los valores
respectivos de peso 𝑊𝑖 para cada vecino talque entre mayor distancia el peso es menor
−𝑑2
𝑖
𝑊𝑖 = 𝑒 2𝜎2 (7)
Donde 𝜎 es una constante que se obtiene a prueba y error por lo que la edad ósea
puede ser calculada como un promedio de pesos de las respectivas edades etiquetadas
de los k vecinos.
∑𝑘𝑖=1 𝑊𝑖 𝑌𝑖
𝑒𝑑𝑎𝑑 = 𝑘 (8)
∑𝑖=1 𝑊𝑖
Donde 𝑌𝑖 son los valores de las edades de los K vecinos.

5 Resultados Experimentales

Para probar éste método de estimación de edad ósea, se hizo uso de un conjunto de
imágenes compuesto por 165 radiografías, todas ellas recortadas y redimensionadas a
256x256 pixeles. 125 imágenes fueron utilizadas para el entrenamiento y el
aprendizaje y las restantes 40 se reservaron para la etapa de prueba. Del
entrenamiento y el aprendizaje, se usaron 65 imágenes para entrenamiento del modelo
AAM, las texturas normalizadas en forma de esas 65 imágenes unidas a sus
respectivos parámetros de forma fueron utilizadas como un conjunto inicial de la base
de conocimiento. Las 60 imágenes restantes se usaron para el aprendizaje incremental
durante la etapa de prueba.
Para el modelo AAM, se diseñó una plantilla de 71 landmarks colocadas sobre
distintos puntos característicos de los huesos de las manos. Se decidió preservar 30
eigenformas que representan un 99% de la varianza observada en el conjunto de
entrenamiento. De forma similar se preservaron 25 eigentexturas que representan un
99% de la varianza observada en el conjunto de entrenamiento. Para la regresión K-
NN se ajustó una K=5 con la que se obtuvo el mejor resultado. Para evaluar la
capacidad del aprendizaje incremental se hizo un reconocimiento de edad ósea
iterativo con los 40 ejemplos de prueba empezando con una base de conocimiento
formada por los 65 vectores del conjunto de entrenamiento y aumentando 10 ejemplos
en cada iteración hasta llegar a un total de 125 ejemplos en la base de conocimiento.
En la Fig. 8 se muestra un decremento gradual en el error (R-MSE) cada vez que la
base de conocimiento es incrementada (A). También muestra que las edades
estimadas de los 40 ejemplos de prueba usando una base de conocimiento de 125
ejemplos tienen un Error Medio Absoluto (MAE) de aproximadamente 1.7 años, un
Error Medio (ME) de -0.08 años y un Raíz de Error Cuadrático Medio (RMSE) de
1.87 años. (B). Dado que la media normal de diferencia en la estimación de la edad
ósea realizada por un médico radiólogo va de 1 año a los 2 años [16] nuestros
resultados están dentro del rango aceptable, y dado que al incrementar la base de
conocimiento se reduce el error es factible pensar que se pueden llegar a obtener
resultados de 0 años a 1 año de error.

Fig. 8. (A). El R-MSE fue medido inicialmente con 40 ejemplos, en cada iteración fueron
agregados 10 ejemplos más a la base de conocimiento de modo que se nota la reducción del
error al clasificar entre 65 imágenes en la base de conocimiento hasta 125 imágenes. (B).
Edades reales contra las edades estimadas al utilizar 125 ejemplos en la base de conocimiento.

117
6 Conclusión y Trabajo Futuro

En este trabajo se propuso e implementó un sistema automático de reconocimiento de


la edad ósea con una precisión aceptable. En contraste con otros trabajos se propuso
investigar el problema de la estimación de edad ósea en el contexto del aprendizaje
supervisado basado en únicamente dar los ejemplos de entrenamiento y las etiquetas
de edad a la computadora. Sólo las imágenes y las edades fueron dadas como
conocimiento previo. Además, se propuso una metodología simple de aprendizaje
incremental el cual reduce gradualmente el error en la clasificación mientras más
imágenes les son presentadas al sistema durante la etapa de prueba. Esta capacidad de
aprendizaje incremental no puede ser implementada usando sólo los parámetros
devueltos por el AAM porque al agregar una nueva imagen se implica una
reconstrucción del modelo AAM y eso no es práctico. Por otro lado, imágenes no
alineadas pueden ser utilizadas directamente en clasificadores como los K-NN o redes
neurales, pero requieren de una cantidad exorbitante de ejemplos para obtener
resultados aceptables. En éste enfoque, se propone el uso de modelos AAM sólo para
segmentar, alinear y ajustar. Se propone utilizar la textura original trasladada a la
forma normalizada junto con los parámetros devueltos por el ajuste del AAM. Por lo
tanto, utilizando una pequeña cantidad de imágenes, es posible lograr clasificaciones
aceptables, como ya se ha demostrado.
Como trabajo futuro, se propone investigar formas para reducir la cantidad de
ejemplos necesarios para el aprendizaje incremental de modo que ejemplos
redundantes sean evitados tal que sólo información nueva sea ingresada al sistema.

Referencias

1. Greulich, W., Pyle, S.: Radiographic atlas of skeletal development of hand


and wrist. Stanford University Press, 2nd ed. (1971)
2. Tanner, J., Whitehouse, R., Cameron, N., Marshall, W., Healy, M., Goldstein,
H.: Maturity and prediction of adult height (tw2 method). Academic Press,
London, 2nd ed. (1975)
3. Hsieh, C.W., Jong, T.L., Chou, Y.H., Tiu, C.M.: Computerized geometric
features of carpal bone for bone age estimation. Chinese Medical Journal 120
(2007) 767-770
4. Molinari, L., Gasser, T., Largo, R.H.: Tw3 bone age: Rus/cb and gender
differences of percentiles for score and score increments. Annals of Human
Biology 31 (2004) 421-435
5. Niemeijer, M., van Ginneken, B., Maas, C., Beek, F., Viergever, M.:
Assessing the Skeletal Age From a Hand Radiograph: Automating the
Tanner-Whitehouse Method. In Sonka, M., Fitzpatrick, J., eds.: SPIE Medical
Imaging. Volume 5032, SPIE, SPIE (2003) 1197-1205
6. Aja-Fernández, S., de Luis-Garcia, R., Martin-Fernandez, M.A., Alberola-
López, C.: A computational tw3 classifier for skeletal maturity assessment. a
computing with words approach. Journal of Biomedical Informatics 37
(2004) 99-107
7. Liu, H., Chou, Y., Tiu, C., Lin, C., Chen, C., Hwang, C., Hsieh, C., Jong, T.:
Bone age pre-estimation using partial least squares regression analysis with a
priori knowledge. In: 2014 IEEE International Symposium on Medical
Measurements and Applications, MeMeA 2014, Lisboa, Portugal, June 11-
12, 2014. (2014) 164-167
8. Adeshina, S.A., Cootes, T.F., Adams, J.E.: Evaluating different structures for
predicting skeletal maturity using statistical appearance models. In: In Proc.
MIUA. (2009)
9. Cootes, T.F., Edwards, G.J., Taylor, C.J.: Active appearance models. Lecture
Notes in Computer Science 1407 (1998) 484-498
10. M. Turk, A.P.: Eigenfaces for recognition. Journal of Cognitive Neuroscience
3 (1991) 71-86
11. Cootes, T.F., Edwards, G.J., Taylor, C.J.: Active appearance models. IEEE
Transactions on Pattern Analysis and Machine Intelligence 23 (2001) 681-
685
12. Luo, B., Hancock, E.: Iterative procrustes alignment with the {EM}
algorithm. Image and Vision Computing 20 (2002) 377-396
13. Ross, A.: Procrustes analysis. Technical Report, Department of Computer
Science and Engineering, University of South Carolina, SC 29208. Source:
www.cse.sc.edu/~songwang/CourseProj/proj2004/ross/ross.pdf (2004)
14. Passerini, A.: k-nearest neighbour learning. Department of Information
Engineering and Computer Science. University of Trento, Italy. Source:
http://disi.unitn.it/~passerini/teaching/2015-
2016/MachineLearning/slides/02b_nearest_neighbour/talk.pdf (2015)
15. Altman, N.S.: An introduction to kernel and nearest-neighbor nonparametric
regression. The American Statistician 46 (1992) 175-185
16. Vicene Gilsanz, Osman Ratib: Hand Bone Age: A Digital Atlas of Skeletal
Maturity. Springer, 2005
17. Daniel Abad Camarero: Estimación Automática de la Edad Ósea Mediante
Procesado y Segmentación de Radiografías. Universidad Carlos III de
Madrid, 2011

119
Dispensador Automático de Alimento desde un
Servidor Web

Arturo Páez-López1, Mauricio Quintero-Espinoza1, Aldrin Barreto-Flores1


1
Facultad de Ciencias de la Electrónica, Benemérita Universidad Autónoma de Puebla
Av. 18 sur y Av. San Claudio, C.U. San Manuel, C.P. 72570, Puebla Pue., México
1
arturo.paez@alumno.buap.mx

Resumen.El presente artículo, expone el desarrollo de un sistema automático


de alimento para animales en bioterios, en caso específico de los conejos. El
cual está basado en la placa de desarrollo Arduino en conjunto con un módulo
de ethernet compatible con éste. El control del sistema se realiza mediante un
servidor web, donde el microcontrolador Arduino espera instrucciones para
configurar el momento deseado de dispensar alimento a los animales. Este
trabajo satisface las necesidades de los bioterios, ya que les facilita alimentar a
los animales sin la necesidad de un supervisor, además permite estandarizar el
horario y la cantidad de alimento, para que los animales puedan adquirir los
nutrientes óptimos para su organismo. La interfaz del sistema de control es
amigable con cualquier usuario, siendo sencilla y eficiente la manipulación de
la misma. Se espera que este dispensador sea fácil de usar en cualquier
bioterio, además esperamos recibir nuevas ideas y opiniones de los usuarios
para en un futuro mejorar el dispensador.
Palabras Clave: Ethernet, HTML, Servidor Web, Tiny RTC.

1 Introducción

Aunque diversas compañías han desarrollado diferentes dispensadores automáticos


para perros y gatos, en su mayoría tienen un gran defecto, el cual es de disponerle al
animal la cantidad de comida que el desee y a la hora que el animal lo desee, por lo
que dicho ser tiende a desperdiciar la comida al comer más de lo necesario
ocasionándole enfermedades como la obesidad; para resolver estos problemas,
algunas asociaciones han creado dispensadores automatizados programables para que
la cantidad y hora de suministro sea controlado por el humano sin necesidad de su
presencia.
En el mercado actual se pueden encontrar dispensadores como la Equimatic [1],
diseñada para alimentar a los caballos, en la página web que vende dichos comederos,
mencionan que la tolva admite cualquier tipo de alimento y otros beneficios como
alimentar al caballo hasta 3 veces por día de manera programable.
Los mismos creadores del Equimatic, también tienen a la venta el Dogsimatic [2], el
cual es el comedero para los perros, en este también mencionan los beneficios como
acostumbrar al perro a comer a la misma hora y aunque no especifican su
funcionamiento, ellos aseguran que previene los roedores, con esto se puede suponer
que no está hecho para cualquier animal de raza pequeña.
No se encontró información relacionada a la venta de dispensadores para animales en
laboratorio y mucho menos en Latinoamérica, por lo que abre una gran disponibilidad
para innovar en este ámbito, ya que no son las mismas necesidades las de un humano
con su mascota que unos investigadores con una gran cantidad de roedores.
Haciendo uso de las tecnologías actuales, las necesidades de los animales en el
bioterio pueden ser atendidas por dispositivos automáticos que sin necesidad de la
presencia humana, puedan atender a estos seres de forma debida. Esto permite cubrir
la necesidad de alimentación de un animal independientemente de su tamaño, edad o
dieta.
El dispensador podrá cubrir todo aquello que el encargado desee y que el animal
necesite, con un mínimo de atención y de errores.
En esta propuesta se implementó un eje dentro del dispensador utilizado
actualmente en un bioterio con el fin de hacer girar dicho eje y de esa forma desplazar
el alimento hacia el exterior, esta rotación es realizada mediante un servomotor
direccionado a través de un microcontrolador, en este caso un Arduino uno.
La hora en la que se programará el dispensador para alimentar a los animales se
hará vía remota desde un dispositivo con acceso a internet con la cual el usuario
encargado de realizar la actividad de alimentar a los animales sólo tendrá que elegir la
hora y automáticamente se asignará dicho valor en el sistema automatizado que tendrá
un reloj en tiempo real con un DS1307 en un módulo llamado Tiny RTC.

2 Desarrollo
La manera habitual de alimentar a los animales del bioterio es abasteciendo de comida
especial sus contenedores que a su vez dispensan y suministran dicho recurso de
manera manual. Para poder hacer que el proceso de servir el alimento a estos seres sea
más cómodo y eficiente se decidió modificar la tolva que se utiliza para alimentarlos.
El primer paso fue rediseñar el dispensador a partir de la tolva original que fuera
amigable al individuo que se encarga de velar por los cuidados de los animales. Para
ello se procedió a dibujar con ayuda del software “SolidWorks” (Fig. 1), el
mecanismo propuesto integrando una serie de materiales para su eficaz realización
como lo son la tolva, un eje, una base para el alimento, un servomotor y un par de
rodamientos.

Fig. 14. Diseño asistido por computadora del mecanismo para el dispensador de alimento.
Para lograr el giro de ángulo recto se recurre a la utilización de un servomotor que
estará conectado al eje de rotación. Dicho servomotor debe tener un torque capaz de
soportar la carga del alimento.
La base del alimento que se utiliza, tiene una medida diseñada de tal forma que
cuando gire a cierto ángulo no presente inconvenientes con la rampa que está justo
debajo de ella, tales como el que se pueda originar un atasco de alimento entre dicha
rampa y la base giratoria. Cuando el alimento haya sido vaciado completamente, el
motor regresará a su posición inicial. Esto es con respecto a la parte mecánica, pero
para que ésta pueda ser efectuada se necesita de un mando electrónico para limitar el
movimiento de la parte mecánica. Dicho mando envía una señal por medio de
conexión Wi-Fi, el dispositivo la recibe y ejecuta la acción. El mando en esta ocasión
será un elemento de uso cotidiano para el hombre, un celular, una computadora o
cualquier dispositivo con acceso a internet. Cuando el usuario desee alimentar a sus
animales, lo que debe hacer es conectarse a la red, mediante su móvil e inicializar la
interfaz que estará estrechamente vinculada con el sistema de control del mecanismo
y posteriormente configurar la hora en la cual se pondrá en marcha el motor. A
continuación en la Figura 2 se presenta el diagrama de bloques del sistema de control.

121
Fig. 2. Diagrama de bloques del programa de control.

Se usó un módulo de Ethernet compatible con Arduino, después se hizo la


programación en un lenguaje de alto nivel con el cual el microcontrolador Arduino
ejecutaría las instrucciones.
La implementación del dispensador se logra con la sinergia de la programación, la
electrónica y la parte mecánica.

2.1 Metodología a desarrollar

El sistema ha sido desarrollado de manera sinérgica con los aspectos mencionados


anteriormente, por lo que el diseño mecatrónico implementado se basa en la
elaboración de dichas secciones de manera conjunta para alcanzar un entregable lo
más óptimo posible.
Arduino: Es una plataforma de hardware libre, basada en una placa con un
microcontrolador, en este proyecto se utiliza el Arduino Uno que incluye las salidas
digitales necesarias para el control del dispensador [3].
Éste microcontrolador con ayuda del módulo ethernet será el encargado de crear
una conexión de cliente a un servidor, donde si el cliente se encuentra habilitado
procederá a la creación del servidor web o interfaz de usuario [4].
Arduino recibirá las instrucciones de control desde este servidor web, leyendo
caracteres de la petición HTTP, estas instrucciones serán principalmente las variables
de hora y minuto en la cual se dispensará el alimento.
El Tiny RTC (Real Time Clock) es un módulo mediante el bus I2C que incorpora
un reloj de tiempo real que facilita usar el tiempo como variable [5]. Por lo tanto
Arduino se encargará de comparar las variables enviadas del servidor web con el
valor de la hora y minuto del reloj en tiempo real.
La respuesta a la comparación será el giro del servomotor (dispensando alimento),
para cuando la comparación sea verdadera, el servomotor gira 70º, posteriormente
espera 2 segundos y regresa a su posición inicial.
Además de crear la alarma programada para dispensar alimento, la interfaz de
usuario del servidor web incluye un botón para dispensar alimento en el momento en
que se presione. Esto será posible comparando únicamente el estado del botón.
Por otra parte el programa de Arduino está diseñado para escribir la fecha y hora
del reloj de tiempo real en una LCD de 16x2. Este muestreo del tiempo real sirve de
ayuda visual para el usuario y saber que el RTC está funcionando correctamente.
Servidor Web: Cabe mencionar que es necesario haber configurado una IP estática a
Arduino desde la página web del router como se muestra en la Figura 3.
Fig. 3. Configuración de IP

La dirección IP que se muestra en la imagen, es la utilizadara la conexión desde la red


local. Para establecer la comunicación al servidor desde una red externa, bastara con
conocer la IP de la red local y el puerto asignado que en este caso fue el 80. El código
para la interfaz de usuario se desarrolló en código HTML y se encuentra
completamente en el sketch de arduino [6].La programación de la hora en la que se
requiere dispensar alimento es intuitiva, ya que la interfaz de usuario cuenta con 2
seleccionadores de texto donde simplemente hay que indicar la hora y minuto
deseado. Estos valores de hora y minuto se asignan a las variables “X” y “Y”, las
cuales se comparan con los valores del reloj en tiempo real, que determinan la hora
exacta para dispensar alimento. La interfaz de usuario se muestra en la Figura 4 y 5.
En la figura 4 se muestra que como medida de seguridad se pide una contraseña de
acceso, la cual servirá para mostrar o no el control del sistema.

Fig. 4. Login-Interfaz de usuario.

Cuando el usuario ingrese la contraseña correcta, se mostrara el control del sistema


como se muestra en la siguiente ilustración.

Fig. 5. Interfaz de usuario en la web.

123
El botón de “Alimentar Ahora” sirve para dispensar alimento en el momento en
que se dé clic sobre este, independientemente de alguna programación.
Mecanismo. Se logró obtener una tolva como las que utilizan en el bioterio de la
Benemérita Universidad Autónoma de Puebla, a ésta tolva se le adaptó un eje a la
altura necesaria para que pueda retener el alimento y pueda tener un giro libre en
donde no exista problema alguno con alimento. En la Figura 6, se observa el eje
acoplado a la tolva junto con la tabla transversal a la cual llamamos cama.
Fig. 6. Tolva con eje, rodamientos y cama.

Ahora que ya tenemos la estructura principal del dispensador se procede a


adaptarle el servomotor al eje para que el giro sea comandado por él mismo. El
sistema de volteo de la cama consta de dos rodamientos con dientes, unidos por
una banda dentada que va de acuerdo al paso de dichos rodamientos. Uno de los
rodamientos está acoplado a nuestro servomotor y el otro al eje que atraviesa la
tolva como ya se mencionó. Se hicieron mediciones correspondientes para que
nuestro sistema no quedara desfasado y se tradujera en la presentación de
problemas que puedan afectar a nuestras pruebas. Este sistema de transmisión se
observa en la siguiente figura 7.

Fig. 7. Sistema de transmisión.

Se hizo el proceso de corte y unión de piezas de MDF para formar una caja
tal que fuera el contenedor de nuestro Arduino y el módulo de ethernet y su
respectivo espacio para visualizar la LCD. Se tomaron las medidas respectivas
tanto del módulo como del Arduino y con base a ello se realizó un diseño
asistido por computadora de la caja (Fig. 10). Posteriormente se hicieron las
medidas reales en el MDF para hacer los cortes y se acoplaron las caras como
fue diseñado previamente.

125
Fig. 8. Diseño del Contador

3 Resultados

Se hicieron las pruebas correspondientes en tanto que se hizo girar el servomotor para
uno y otro sentido para observar el movimiento de la cama y revisar si existe algún
inconveniente al momento del cambio de posición. (Calculando el tiempo que le
llevará al dispensador entregar la comida y regresar la cama a su posición inicial y
traducirlo en grados.
Así mismo se encontró una relación entre tiempo y gramos debido a que se
observó experimentalmente que en función del tiempo que permanece abierto el
dispensador está en función directa con la cantidad de alimento suministrado, esto
para tener un control sobre la cantidad de alimento dispensada.
Las pruebas experimentales se realizaron especialmente para el caso de los
conejos, cabe mencionar que los conejos necesariamente deben ingerir alimento por
las mañanas debido a que los nutrientes ingeridos en la primera comida son los más
importantes.
Debido a la estandarización, la cantidad de alimento suministrada es de 200
gramos por lo que las pruebas se basaron en el cumplimiento de esta.
Fig. 9. Suministro de alimento.

Se probó el dispensador desde distintas ubicaciones geográficas con diferentes


redes inalámbricas, a su vez se comprobó la funcionalidad de éste desde
diferentes dispositivos y el resultado fue satisfactorio al seleccionar cada una de
las opciones disponibles en la interfaz.La hora programada se muestra tanto en la
LCD del controlador como en la interfaz de usuario brindando mayor confianza
al operador de que la hora programada se encuentra cargada (figura 10).

Fig. 10. Hora real y hora programada.

4 Conclusiones y trabajos futuros

El proyecto consta de un sistema programable capaz de dispensar alimento a los


animales a través de un eje rotatorio con el torque de un servomotor. Este diseño
funcionó conforme a lo esperado y a su vez se alcanzaron los objetivos establecidos.
En cuanto a la interfaz del usuario se logró establecer una conexión vía remota desde
cualquier dispositivo con acceso a internet sin importar la ubicación geográfica.
Cabe destacar que una gran ventaja de este sistema es la implementación del Tiny
RTC que fue de gran trascendencia ya que dispone de una memoria EEPROM para
que en cualquier situación de fallo de energía, el dispensador no pierda su hora actual,
debido a que cuenta con una batería de respaldo para este evento.
Este producto puede ser de ayuda para futuros proyectos relacionados con
animales de laboratorio, para que en un futuro se puedan alimentar animales al mismo
tiempo incluso de forma inalámbrica. Dicho producto puede llegar al mercado
adaptándolo a las necesidades de cada cliente, aunque el enfoque principal son
animales de raza pequeña en bioterios.
Así mismo una mejora adicional incluirá un sistema de notificación, por medio de
un mensaje de texto al celular, de que el dispositivo dispenso alimento
satisfactoriamente.

Agradecimientos.Gracias a la colaboración del Bioterio Claude Bernard por


facilitarnos la tolva utilizada en sus investigaciones y el alimento para conejo que eran
necesarias para realizar las pruebas pertinentes.

Referencias

1. Comederos aumaticos para perros [en linea] disponible http://perros.comederos-


automaticos.com, sitio visitado el 15/06/2015.
2. Comederos automaticos [ en linea ] disponible http://www.comederos-automaticos.com sitio
visitado el 15/06/2015
3. Arduino [en linea], disponible http://www.arduino.cc/en/Main/ArduinoBoardUno, sitio
visitado el 03/05/2015
4. Enrique Palacios, Fernando Remiro, Lucas J Lopez. Microcontrolador, PIC16F84A:
Desarrollo de Proyectos. RA-MA. 2004. Paginas 331-343.

127
5. Jon Duckett. Beginning Web Programming with HTML, XHTML, and CSS. Wrox. 2008.
Paginas 323 – 360.
6. Arduino [en línea], disponible.
http://www.arduino.cc/en/pmwiki.php?n=Main/ArduinoEthernetShield, sitio visitado el
03/05/20215.
Sistema de Entrenamiento Virtual usando Leap Motion

Jorge Mateo-Juárez1, Aldrin Barreto-Flores1, Verónica E. Bautista-López2,


Salvador E. Ayala-Raggi1
1
Facultad de Ciencias de la Electrónica,Benemérita Universidad Autónoma de Puebla,
18 Sur y Av. San Claudio,
2
Facultad de Ciencias de la Computación, Benemérita Universidad Autónoma de Puebla,
14 Sur y Av. San Claudio, Ciudad Universitaria, San Manuel, 72570, Puebla, Pue.
1
jorge.mateo@alumno.buap.mx

Resumen.Los usos de roedores de laboratorio en un Bioterio son importantes,


ya que son empleados para realizar protocolos experimentales y se deben
mantener en un estado idóneo para obtener mejores resultados en estos
procedimientos. Se presenta la integración de Leap Motion y Unity para el
desarrollo de un entrenamiento virtual del personal para el manejo adecuado del
roedor y de esta forma se garantizará el aprendizaje; así como también
disminuir la tasa de decesos de roedores, cuando son empleados en la
capacitación para el manejo de estos y finalmente se reduce en la adquisición de
los mismos.
Palabras Clave: Modelado, Objetos 3D, Leap Motion, Unity.

1 Introducción

En la mayoría de los laboratorios dedicados a la investigaciónutilizan roedores para


diversos procedimientos, pero estos a su vez están constantementeexpuestos a rutinas
dentro del laboratorio como, por ejemplo: cambio de jaula,movimientos de sala a sala,
toma de muestras, etcétera, donde alteran el estado de homeostasis (capacidad de
mantener una condición interna estable); modificando variables fisiológicas y
comportamentales. Elimpacto de los procedimientos de rutina en los animales se ha
estudiado ampliamente. Un factor importante que contribuye es el personal que los
maneja,ya que se forman lazos emocionales y reconocen las personas que las
manejan,como también reaccionan ante situaciones y estímulos desconocidos por lo
queno están familiarizados por ello la importancia de la adaptación previa a los
procedimientos [3].
Las técnicas actuales para la manipulación y sujeción, son consideradas como no
invasivas, pero el impacto de una mala técnica ocasiona resultadosexperimentales que
podrían sersignificativos con el tiempo. La sugerencia es nominimizar los métodos de
manipulación y sujeción, porque es el principio de todaexperimentación y del buen
proceder en las maniobras. De estos procedimientosdepende la respuesta de los
animales y en definitiva la obtención de resultadosválidos [4], [5]. Este trabajo tiene
como objetivo desarrollar un entorno virtual, donde el usuario tenga la sensación de
estar inmerso en el, de tal forma generar un ambiente donde se muestre el manejo del
roedor y la interacción en los diversos objetos que lo conformarían como por ejemplo:
el ratón, una rejilla y las manos, este último es de mucha importancia ya que nos
permitirá ver como el usuario toma al ratón y que movimientos realiza.

1.1 Antecedentes

En la actualidad la forma en que se transmite el conocimiento para la manipulación de


roedores es a través de la capacitación o cursos que son proporcionados por las
instituciones como los Bioterios, pero en este caso para lograr la experiencia se
trabaja directamente con los animales. En México no se tienen sistemas de

129
entrenamiento para el manejo adecuado del roedor solo existen empresas extranjeras
que se dedican en productos para observar el comportamiento de estos, como es
Panlab S.L.U, que es especializada en la investigación en neurociencias
proporcionando una amplia gama de soluciones para el estudio de la fisiología y el
comportamiento en animales de laboratorio pequeños [7]. Algunos que se dedican al
análisis para el descubrimiento de medicamentos como, por ejemplo: CMA
Microdialysis. Hasta el momento no existe un sistema de entrenamiento como el que
se esta planteando en el proyecto, los únicos sistemas o equipos que se han
encontrado vigentes son los mencionados anteriormente.

1.2 Manejo de ratones

Al manipular y sujetar a los ratones de experimentación se debe tener en cuenta que


por ser de tamaño pequeño pueden lesionarse con facilidad si no se toman
correctamente. El manejo debe realizarse con firmeza, pero a la vez con suavidad y
sobre todo con confianza. Existen varias formas de tomar un ratón, pero la técnica de
manipulación más utilizada es de acuerdo a los siguientes pasos [4]:
 Realizar un acercamiento suave a los animales, Fig. 15
 Levantar al animal tomándolo desde la base de la cola, Fig. 16
 Lo más distalmente posible del punto medio con los dedos pulgar eíndice,sin
ejercer demasiada presión; hay que colocarlo de inmediato en la
superficiedeseada, o bien darle apoyo en la palma de nuestra mano hasta
trasladarloal lugar definitivo, Fig. 17

Fig. 15.Acercamiento al ratón [4]

Fig. 16. Toma de un ratón [4]


Fig. 17.Apoyo sobre superficie rugosa [4]

2 Planteamiento

Se propone el desarrollo de un simulador de realidad virtual se simulará elmovimiento


de las manos mediante un sensor conocido como Leap Motion, elcual permitirá
observar el adecuado movimiento de estos al manipular al roedor.Con este sistema
permitirá adiestrar las manos en los puntos clave del roedor,indicando también la
evaluación de la rutina. El simulador está conformado por:
 El software de realidad virtual.
 Sensor de realidad virtual.
 Computadora.

En la Fig. 18, se muestra la integración mencionada así como la interacción del


sensor de realidad virtual capturando los movimientos de las las manos, el cual se
envía la información a lacomputadora y por medio delsoftware de realidad virtual se
interactuará en el ambiente virtual simulando lamanipulación del roedor.

Fig. 18.Sistema de realidad virtual

2.1 Leap Motion

La tecnología para Leap Motion fue desarrollado por primera vez en2008, mientras
que el co-fundador David Holz estaba estudiando para un doctoradoen matemáticas.
De acuerdo con una inversión inicial ángel, Holz co-fundó laempresa en 2010 con su
amigo de la infancia de Michael Buckwald. El 7 deabril, 2014 COO Andy Miller dejó
la compañía.En mayo de 2014, LeapMotion dio a conocer su versión 2 del software a
los desarrolladores en unaversión beta pública. En marzo de 2015, se anunció que el
próximo kit Hacker desarrolló OSVR incluiría una placa frontal opcional con módulo

131
desalto demovimiento incorporado. En febrero de 2016, Leap
Motionlanzadounnuevosoftware,llamado Orion, construido específicamente para VR.
El controlador Leap Motion, Fig. 19, es un dispositivo periférico USB
pequeño,queestá diseñado para ser colocado en un escritorio físico, hacia arriba.
Tambiénse puede montar en un casco de realidad virtual. Usa de dos cámaras de
infrarrojos monocromática y tres LEDs infrarrojos, el dispositivo observa un
áreaaproximadamente semiesférica, a una distancia de aproximadamente 1 metro.Los
LED generan patrón con menos luz IR y las cámaras generan cerca de 200 cuadros
por segundo de datos reflejados. Esto es enviado a través de un cable USBal
ordenador principal, donde es analizada por el software Leap Motion utilizando
matemáticas complejas de una manera que no ha sido divulgada por lacompañía, de
alguna manera sintetizan los datos de posición en 3D mediante lacomparación de los
marcos 2D generados por las dos cámaras. En un estudio de2013, la precisión
promedio general del controlador se demostró que era de 0,7milímetros [6].

Fig. 19. Sensor Leap Motion [9]

3 Resultados

A continuación se muestran los siguientes resultados que se han obtenidohasta el


momento de acuerdo a lo planteado anteriormente. En la Fig. 21, semuestra el
modelo del roedor diseñado en el software para modelado 3D Blender.El modelo es
realizado en base a una imagen de referencia del roedor con la vistalateral, mostrado
en laFig. 20, el tamaño del animal corresponde al ratón albinoque es uno de los mas
utilizados en los Bioterios.Se logró simular la mano usando Unity y Leap Motion,
donde se ha observado una buena resolución para poder representar los movimientos
descritos en lasección 1, Fig. 22, también se muestra con un diagrama de flujo la
forma de trabajar con el área de interacción de leap motion, Fig. 23.
Unity es un motor de videojuego multiplataforma creado porUnity Technologies.
Está disponible como plataforma de desarrollo para Microsoft Windows, OS X y
Linux. Puede usarse junto con 3ds Max, Maya, Softimage,Blender, Modo, ZBrush,
Cinema 4D, Cheetah3D, Adobe Photoshop, Adobe Fireworks y Allegorithmic
Substance. Los cambios realizados a los objetos creadoscon estos productos se
actualizan automáticamente en todas las instancias de eseobjeto durante todo el
proyecto sin necesidad de volver a importar manualmente.En este caso se emplearon
los softwares Unity y Blender para el desarrollo deltrabajo, donde ambos presentan un
ambiente amigable y la compatibilidad menciona anteriormente. También Unity
permite la integración con el sensor LeapMotion por medio de bibliotecas
proporcionadas por el distribuidor. Finalmenteal ser un motor de videojuegos, tiene la
capacidad de implementar algoritmospara la interacción con objetos virtuales y otros
dispositivos (mouse, teclado,etc.). Actualmente se esta trabajando en la integración
del modelo junto con lodesarrollado en Unity para poder simular todos los
movimientos planteados.
Fig. 20. Modelo del ratón y una imagen de referencia en Blender [135]

Fig. 21.Modelo del ratón en Blender [8]

Fig. 22.Interacción del sensor Leap Motion con Unity [8]

El diagrama de flujo que se empleó para saber el área de trabajo que tiene lead motion
y la interacción con otros objetos es como el que se muestra a continuación, Fig. 23.

133
Fig. 23.Diagrama de flujo para la interacción con el área de trabajo de Leap Motion

4 Conclusiones y trabajos futuros

El sensor Leap Motion permite realizar diversas aplicaciones en donde sepueda


sustituir el mouse u otro dispositivo que controle o interactúe el ambiente de algún
sistema operativo o software. En esencia permite la interaccióncon ambientes de
realidad virtual como es el caso, en donde el uso de las manospermitirá manipular
objetos virtuales, el cual se está trabajando actualmentede tal forma que nuestro
objetivo es la interacción entre objetos que con ellopermitirá que el usuario se entrene
en cuanto al manejo de roedores como silo hiciera en la realidad. Esto es posible por
la precisión del sensor que es delorden de milímetros por área. El sistema aún esta en
desarrollo y se pretendeimplementar todos los pasos para la manipulación de
roedores. También el sistema será capaz de llevar un historial del rendimiento del
usuario dondese consideraran los aspectos mencionados anteriormente, además de
indicarle lasobservaciones del mismo. Leap motion nos arroja un conjunto de datos de
las trayectorias que son detectados por el movimiento de las manos, entonces se esta
trabajando con el algoritmo de análisis de componentes principales y de esta forma
construir un modelo predictivo para el entrenamiento del manejo del roedor.

Referencias

1. Brandon, S.: Mastering Leap Motion, Third edition, Pack Publishing, pp. 361 (2014)
2. Alberto, J.N; Mónica, P.M.: Búsqueda de metástasis óseas en radiografías. Anales de
Radiología México, pp. 6 (2012)
3. Cloutier, S.; Panksepp, J.; Newberry, R.: Playful handling by caretakers reduces fear of
humans in the laboratory rat, Appl Anim Behav Sci, Sep (2012)
4. Mourelle, A.C.; Herrero, E.; Ricca, M.: Recomendaciones para la manipulación y sujeción
de ratas y ratones de laboratorio, Spei Domus, (2013)
5. Ma. De la luz, S.; Ma. Teresa, D.; Grabiel S.: Development and use of methodologies
applied to improve the teaching-learning process of different routes of administration in
laboratory rodents, Foro de investigación, desarrollo e innovación. http://virtualeduca.org.
6. Frank, W.; Daniel, B.; Bartholomaus, R.; Denis, F.: Analysis of the Accuracy and
Robustness of the Leap Motion Controller. Sensors (Basel, Switzerland), (2013)
7. Superior products for Behavioral Research: Species Guide for Behavioral Systems,
http://www.coulbourn.com, http://www.panlab.com
8. Blender: Blender 2.77a, http://www.blender.org, (2016)
9. Leap Motion, http://www.leapmotion.com

135
Red Bluetooth de Alarma de Puertas

Daniel Treviño-Sánchez1, Oscar I. Morales-Ramírez1, Lessia M. Saynes-Torres1 ,


Aldrin Barreto-Flores1, Verónica E. Bautista-López2, Salvador E. Ayala-Raggi1.
Maestría en Ingeniería Electrónica1, Facultad de Ciencias de la Computación2,
Benemérita Universidad Autónoma de Puebla,
14 Sur y Av. San Claudio, C.U. San Manuel, Puebla, Pue. México
1
lessiam.saynes@alumno.buap.com

Resumen. Se presenta un sistema de detección de intrusión, el cual está


formado por tres nodos y una consola central, cada nodo esta compuesto por un
sensor de movimiento tipo PIR y un sensor magnético para monitorear la
apertura de una puerta. La consola principal es un teléfono inteligente el cual es
notificado vía inalámbrica el estado de los sensores, utilizando la tecnología
bluetooth, luego de activarse los sensores se genera un mensaje SMS que va
dirigido a un número de teléfono predefinido, el evento se guarda en un registro
de actividades del sistema.
Palabras Clave: Alarma, Seguridad, Detección de Intrusión.

1 Introducción

Un sistema de alarma es un elemento de seguridad pasivo ya que no evita una


situación anormal, pero si advierte cuando sucede. Este tipo de sistemas basa su
activación en el tipo de sensores que utiliza, y dependiendo de su programación puede
tomar decisiones en forma automática como por ejemplo enviar un mensaje telefónico
a uno o varios números, notificando un evento.
Un sistema de alarma se compone de varios dispositivos conectados a una central
procesadora, los cuales pueden ser un teclado el cual permitir a los usuarios
autorizados (usualmente mediante códigos preestablecidos) armar (activar) y
desarmar (desactivar) el sistema, así también un gabinete de sirena exterior el cual es
el elemento mas visible del inmueble protegido. Detectores de movimiento (PIR),
sensores que detectan cambios de temperatura y movimiento. Detectores magnéticos
los cuales son sensores que forman un circuito cerrado por un imán y un contacto muy
sensible que cuando se separan, cambia el estado y se utiliza para monitorear la
apertura de puertas y ventanas. Sensores inerciales o sísmicos, detectores de ruptura
de vidrio, etc. Si alguno de estos sensores detectan movimiento estando el sistema
conectado, activan la alarma.
Sin embargo, todos estos sistemas suelen ser cableados, por lo general a un solo
controlador maestro, en sistemas más grandes varios módulos se conectan en una red
alámbrica. Si la red es dedicada, la información que viaja entre ellos de alguna
manera no puede ser vista o alterada remotamente, sin embargo, si es en una red LAN
está expuesta como una red inalámbrica dependiendo solamente de los firewalls de
dicha red. Por otro lado, este tipo de instalaciones encarece al sistema ya que no solo
es la longitud del cableado sino toda una infraestructura que lo proteja de cualquier
intento de ataque al sistema o del vandalismo. En algunos casos esto resulta más
costoso que los controles y sensores mismos.
Actualmente la tecnología inalámbrica ha avanzado bastante, de forma que existen
módulos que no solo tienen una clave de acceso, sino que pueden configurarse
(localmente y por conexión directa) de tal forma que solo permitan establecer la
comunicación con un solo controlador a través de su dirección única MAC, y con una
aplicación privada para teléfonos inteligentes. Mientras ignora a cualquier otro
dispositivo inalámbrico a su alcance.
El objetivo general de este trabajo es lograr la implementación de un sistema de
alarma que maneje tres nodos y mediante una red Bluetooth se monitoree el estado de
los sensores integrados en cada nodo, utilizando un SMS para alertar al usuario de la
activación de un nodo y registrar el evento sucedido.

2 Estado del Arte

Uno de los trabajos encontrados en la literatura referente al tema de interés se


encuentra en [1], donde se emplea un microcontrolador Arduino ATMEGA 328 y un
módulo Bluetooth HC-06 configurado como esclavo, junto con accesorios y un
relevador. En esta aplicación se usa un teléfono inteligente para activar remotamente
un mecanismo de apertura y cierre automático de puerta de cochera. Además del
circuito receptor, desarrollaron una aplicación llamada “roboremo app”, la cual no
está disponible al público, sino que se mantiene para su uso interno, y de esta manera
ayudar a mantener la seguridad de su sistema. En este sistema tiene la ventaja de
haber creado una aplicación propietaria y al mantener controlada la información de su
funcionamiento aumenta la seguridad del mismo, sin embargo, solo se comunica con
un módulo y la comunicación es en una sola dirección, es decir no puede saber el
estado del sistema y este no puede reportar ningún aviso o falla a la controla central.

En otro artículo ubicado en [2] el autor emplea un microprocesador arduino UNO


y un módulo GSM para enlazar vía la red de los teléfonos celulares, también emplea
un sensor de movimiento PIR, un teclado para armar o desarmar el sistema, además
de algunas alarmas sonoras. El sistema manda un mensaje SMS cuando se activa una
alarma y también puede hacer una llamada a un celular predefinido en tan solo 5
segundos o menos si no hubo ningún código válido para desarmar el sistema. En esta
otra propuesta, el sistema sigue siendo inalámbrico y cuanta con un módulo remoto
con sensores y la opción de armar o desarmarse usando una clave, sin embargo, a
pesar de ser en dos vías la comunicación solo se monitorea a un solo módulo y no se
tiene un registro que almacenes los eventos o alarmas que se presenten.

Existe otra idea bastante interesante donde el autor del artículo [3] emplea un
microprocesador Arduino UNO basado en ATMEGA 328 y un sensor de movimiento
tipo IR que al detectar una alarma se conecta a internet usando una tarjeta de datos
instalada en la laptop, y puede verse desde un celular que tenga una aplicación
propietaria desarrollada en J2ME. Adicionalmente el sistema hace uso del servicio de
google C2DM para mantener un registro de actividades y eventos en la nube, es decir
de manera remota y segura (fuera del módulo local) desde una aplicación móvil. Este
nuevo planteamiento permite avisar remotamente de un suceso en el sistema y a la
vez mantiene un registro con todos los datos disponibles lejos del lugar afectado.
Como valor agregado, la aplicación propietaria, junto con las claves de acceso
permiten un acceso a la información de forma controlada y segura. En contraparte, el
sistema requiere tener una computadora de forma permanente y dedicada para lograr
su tarea de notificación, además de la interface electrónica entre los sensores o
controles y la laptop.

En el artículo llamado “One Texting Door Alarm“ referido en [4] el autor


desarrolla un sistema de alarma en el cual por medio de un mensaje SMS notifica al
usuario la detección de un evento en su puerta principal de su propiedad. Para el
desarrollo del sistema utiliza un sensor PIR y una tarjeta de desarrollo Linkit de
Media Tek la cual requiere una tarjeta sim de teléfono móvil. El sistema se ve seguro
ya que no depende de redes inalámbricas para poder recibir la notificación de aviso,
es una ventaja que tiene el sistema. Una desventaja seria la notificación de falsas
alarmas y la desactivación del sistema cuando se acerque alguien conocido.

137
Finalmente, el sistema que se plantea en [5] el autor implementa un sistema con
una red de sensores con un indicador de la señal recibida (RSSI) valor para buscar
actividad de intrusión en el hogar. La aplicación envía una notificación de alarma vía
SMS. El propietario tiene acceso a habilitar o deshabilitar el sistema así mismo recibe
la notificación cuando se presente un evento. El nodo donde se encuentra el sensor
envía la notificación. En el trabajo se realizaron pruebas con personas adultos, niños,
mascotas y obstáculos para hacer que el sistema fuera confiable y que no genere
falsas alarmas. El sistema completo utiliza de igual manera una aplicación propietaria
desarrollada para aumentar la seguridad.

3 Desarrollo y Metodología

El sistema desarrollado incluye tres nodos locales, en los cuales cada uno contiene un
sensor PIR, un sensor magnético y un bluetooth HC-05, los tres componentes se
conectan hacia el microcontrolador PIC18F4550 utilizando una tarjeta de desarrollo
PIC40 V3. Mediante una comunicación Bluetooth se realiza el enlace entre la estación
maestra hacia los nodos y viceversa cuando se recibe información del estado de los
sensores. La estación maestra se comprende de un celular inteligente con sistema
operativo Android el cual contiene una aplicación desarrollada en App Inventor,
siendo la aplicación utilizada como interfaz de usuario. Un diagrama general del
sistema se presenta en la figura 1.

Fig. 24. Diagrama que representa en forma general el sistema de alarma.


Fig. 25. Diagrama de flujo de la interfaz de usuario del sistema de alarma.
Como se puede observar en la figura 2 se cuenta con 5 intentos para poder acceder a la
ventana donde se encuentra el estado de los sensores, superando el número de intentos
se presenta un mensaje de advertencia.

Al querer registrar un usuario nuevo teniendo como base que ya se han registrado
los usuarios de confianza que pueden observar el estado del sistema se presenta una
alerta de error. También se cuenta con la acción de poder eliminar un usuario.

3.1 Aplicación en App Inventor

App inventor es una plataforma de programación en la nube basado en bloques en


donde el usuario puede crear aplicaciones y descargarlas de la web hacia un
dispositivo móvil, siendo un sistema gratuito. La aplicación desarrollada en App
Inventor cuenta con tres ventanas, las dos de inicio se muestran en la figura 3:

a) b)

Fig. 26. Interfaz de usuario integrado en el teléfono inteligente del sistema de alarma.

La primera ventana que se presenta al abrir la aplicación es una imagen relacionada al


sistema de seguridad (figura 3-a), su presentación dura 5 segundos, después se
muestra la segunda ventana (figura 3-b), donde el usuario debe ingresar su nombre y
contraseña para poder acceder a la tercera ventana donde se muestra el estado de los

139
sensores. En la segunda pantalla también se cuenta con la opción de registrar usuario
pero por ser un sistema de alarma por seguridad esta restringido a solo dos personas
para el acceso hacia la tercera ventana, cuando alguien ajeno al sistema quisiera
registrarse al presionar el botón registrar usuario aparecerá un mensaje de
advertencia.

En la tercera ventana (figura 4), se presenta el estado de los tres nodos


identificados por una etiqueta, así también cada sensorpresenta una etiqueta y tiene un
indicador el cual cambia de color verde a rojo al presentarse una activación. También
en esta ventana el usuario cuenta con un botón de salida.

Fig. 27. Ventana número tres de la interfaz del sistema de alarma.

3.2 Resultados

La implementación de los tres nodos se puede observar en la figura 5:

3 2
1

Fig. 28. Nodos del sistema de alarma.

La verificación de la prueba de los nodos en primera instancia se realizó haciendo una


conexión con la estación maestra. Se simulo un evento al hacer activar el sensor PIR
donde el sistema recibe el dato y activa el indicador que corresponde como se muestra
en la figura 6.

Fig. 29. Prueba de activación del sensor PIR en el nodo 1.

Verificación de mensaje de alerta al usuario por activación del sensor PIR y


sensor Magnético.

Fig. 30. Prueba de envió del SMS al usuario.

4 Conclusiones y trabajos futuros

El sistema funciona de manera completa, se detecta cada nodo y se obtiene la


información de los sensores integrados en ellos, se muestra el estado de los sensores
en la interfaz de usuario y se envía un mensaje SMS al ser activados los dos sensores
en un nodo, en el mensaje se notifica al usuario el nodo que se activó, así mismo se
completó el sistema guardando la información del evento en una base de datos. Se

141
mejoró el tiempo del polling y el sistema de alarma siguió trabajando de manera
correcta.
Como trabajos futuros se mejoraría la presentación del sistema y también se
realizarían pruebas en un ambiente fijo como lo son las puertas del laboratorio en el
edificio de maestría. El sistema desarrollado no es dependiente de una red wifi por lo
hace un sistema más eficiente y cómodo al realizar la comunicación hacia la estación
maestra. Con la versatilidad que da App Inventor se logró desarrollar la aplicación
que funciona como interface de usuario, la cual al mismo tiempo de realizar la
comunicación recibe información importante de los nodos.

Referencias

1. Zarkani: Bluetooth door opener/ monitor. Instructables.


http://www.instructables.com. 2016. Accedido el 17 de Agosto de 2016.
2. Ben G.: GSM Shield Home Alarm. Instructables. http://www.instructables.com,
September 2015. Accedido el 17 de Agosto de 2016.
3. Prakash K.; Pradeep K.: Arduino Based Wireless Intrusion Detection Using IR
Sensorand GSM. International Journal of Computer Science and Mobile
Computing, Monthly Journal of Computer Science and Information Technology.
Vol. 2, Issue. 5, Mayo 2013.
4. Jckelley: LinkIt One Texting Door Alarm. instructables
http://www.instructables.com. 2015. Accedido el 17 de Agosto de 2016.
5. Firdous K.; Eisa Al E.; Bakhsh I.: Intelligent Home Monitoring Using RSSI In
Wireless Sensor Networks. International Journal of Computer Networks and
Communications (IJCNC), Vol. 4, No. 6, Noviembre 2012.
6. Wolber D.: Abelson H.: Spertus E.: Looney L. Rachel Roumeliotis: App Inventor
2 Create Your Own Android Apps. (Ed): O’REILY, pp. 51-66. (2014).
7. Sensor PIR: http://www.electronicoscaldas.com/sensores-de-movimiento/415-
sensor-de-movimiento-piroelectrico-infrarrojo-hc-sr501.html Accedido el 25 de
Agosto de 2016.
Robot Recolector de Basura para Lagos y Lagunas
“JARV-1”
1
José L. Hernández-Ameca1, Elsa Chavira-Martínez , José Ítalo Cortez1, Gregorio
1
Trinidad-García1, Lourdes Sandoval-Solís , Minerva Hernández-Ameca2, Alan J.
1 1
Fonseca-Barrera1, Ricardo Pastor-Hernández , Valeria Temozihui-Tlahuel
1
Facultad de Ciencias de la Computación, Benemérita Universidad Autónoma de Puebla,
14 sur y Ave. San. Claudio, C.U., San. Manuel, C.P. 72570, Puebla Pue., México.
2
Subsistema de Centros Escolares SEP, Puebla, Pue; México.
1 1
amecajl@hotmail.com, elsachavira56@hotmail.com, 1jose.italo.cortez@gmail.com,
1
tgarcia@cs.buap.mx, 1lulu@cs.buap.mx, ameca.minerv@gmail.com,
1
alanjoshep22@gmail.com, 1richard_yo@msn.com, 1valerykery@gmail.com

Resumen. Se presenta la primera versión del robot autónomo “JARV-1”


diseñado para colaborar en el rescate y mantenimiento de lagos y lagunas. El
robot se desplaza tomando como referencia la orilla de estos depósitos de agua,
utiliza una red para la recolección y depósito de desechos flotantes. En este
trabajo se muestra el diseño, implementación y pruebas de funcionamiento del
robot.
Palabras Clave:Autónomo, Freático, Maquina de Estados, PET, PVC, Robot.

1. Introducción
Desde el comienzo de la humanidad los ríos, lagos y lagunas han estado ligados
íntimamente al desarrollo de las civilizaciones humanas brindado un equilibrio
ecológico y climático, fungiendo como fuentes de vida y en ocasiones como medios
de transporte. En Latinoamérica muchas de estas aguas han sufrido una degradación
casi paralela al crecimiento de las poblaciones al utilizarse como basureros de
plásticos, cartón y vidrio, a causa de una cultura nula de prevención y cuidado.
Aunado a esto se han detectado diversos factores de contaminación como:
deforestación, desechos industriales, destrucción del suelo, sobreexplotación y
cambios climáticos.
En este trabajo nos enfocamos a la limpieza de lagos y lagunas, tanto naturales
“los formados por volcanes, ríos o afloramientos freáticos” como artificiales “creados
por el hombre”, teniendo como objetivo recolectar los contaminantes que flotan en la
superficie acuática como plásticos, hojas, ramas, pedazos de troncos y algas que en
exceso producen perturbaciones en el ecosistema acuático, mal olor y son
antiestéticos.
Para realizar esta limpieza se propone el robot JARV-1 que recolecta desechos
autónomamente evitando riesgos, daños, y esfuerzo al ser humano durante dicha
actividad. Este problema se ha abordado desde la perspectiva de la ciencia y el
desarrollo tecnológico al servicio de la humanidad y sus futuras generaciones.

2. Idea
En este trabajo se realizó un robot capaz de moverse sin la intervención del hombre
con la misión de recolectar la basura flotante sobre las aguas de lagos y lagunas. Con
este robot se evita que el ser humano arriesgue su vida al realizar dicha actividad,
debido a la contaminación, visibilidad o difícil acceso. La idea surge gracias a la
cercana ubicación del Laboratorio de Sistemas Robóticos “SIRO” a la laguna artificial
que se encuentra dentro de Ciudad Universitaria, perteneciente a la Benemérita
Universidad Autónoma de Puebla. Es ahí donde la observación provocó la inquietud

143
de generar un proyecto que sirva como herramienta tecnología para la recolecta de
basura. En la figura 1, se muestra el recorrido ideal que realiza el robot.

Fig.1. Trayectoria ideal del Robot JARV-1


3. Diseño

El robot utiliza un arreglo de sensores ultrasónicos en el rango de los 40 kHz de


frecuencia, para ubicarse a una distancia de 50cm de la orilla del lago o laguna. Una
vez que el sistema verificó que la distancia es la deseada, se activan dos servomotores
con un torque de 20kg c/u alimentados por una batería tipo lipo de 12v, que permiten
desplazar al robot durante su recorrido. Al desplazarse el robot recolecta en una red
colocada en su parte trasera la basura que encuentra a su paso hasta que detecta una
fuerza de arrastre menor o igual a 5kg, lo cual es la condición para que regrese al
punto donde inicio su recorrido. En la figura 2, se muestra una fotografía y las vistas
de la estructura del prototipo el cual cuenta son las siguientes dimensiones: 90 cm de
ancho, 40cm de largo y 35cm de altura.
Fig.2. Vistas del Robot JARV-1 en perspectiva isométrica

El robot se construyó uniendo un subsistema mecánico, electrónico e informático.


La estructura se realizó con materiales reciclados de PVC y flotadores de PET, para el
desplazamiento cuenta con un par de motoreductores donde en cada eje está adaptada
una hélice. La comunicación de las señales se hizo mediante alambre del No. 22,
como fuente de alimentación se utilizó una batería Sla Power Sonic de12v y18 Ah. Y
una etapa de potencia en circuito impreso capaz de soportar hasta 2 A y 20v. El sistema
inteligente de control se implementó mediante una máquina de estados lógicos la cual
se muestra en la figura 3, tomándose los estados de: inicio, recorrido, recolección,
reubicación y fin.

Fig.3. Máquina de estados del Robot JARV-1

En la tabla 1 se muestran las entradas X y Y a la maquina

Estado Entrada Estado


actual x y Siguiente
a 1 1 B
b 1 1 C
c 0 1 D

145
d 1 1 B
b 1 1 C
c 1 0 E
e 0 0 D
d 1 0 E
e 1 0 A
Tabla 1 Tabla de Estados

a. Punto de inicio
b. Recorrer laguna
c. Recolectar basura
d. Reubicar
e. Terminar

X = sensor >= 50 cm
Y= basura >=5 kg

Fig.4. Diagrama de Flujo del Robot JARV-1

El robot parte desde un punto de inicio, tal como se muestra en el diagrama anterior,
donde una condición “S” definida como START indica si el robot inicia su
funcionamiento y si no lo hace regresa a un punto inicial. Una vez que el robot ha
iniciado su recorrido este entra en un proceso definido como “recorrer y recolectar” el
cual solo va a cambiar mediante una serie de condicionales aplicadas a las variables X
y Y antes mencionadas, la primera condicional a tomar en cuenta es sobre la variable
X donde se indica la ubicación del robot, si el robot se encuentra ubicado a una
distancia menor o igual de 50cm del contorno del lago procede a la evaluación de una
siguiente condicional, ahora sobre la variable Y, donde si el robot cuenta con una
cantidad de basura menor o igual a 5Kg sigue su recorrido, en caso contrario,
haciendo que la cantidad de basura llegue a un total de 5Kg el robot procede a
terminar su proceso y regresar al punto inicial. Si el peso total de basura recolectada
por el robot no sobrepasa el máximo de 5kg y se encuentra ubicado a la distancia
especificada, este sigue en su proceso de recolecta. En dado caso que el robot no se
encuentre ubicado pero ya cuenta con una cantidad menor o igual a 5kg de basura este
avanza a un proceso o estado de reubicación. Como caso final, si este no se encuentra
ubicado y ya cuenta con la capacidad máxima de basura recolectada el JARV-1
procede a terminar su proceso de trabajo y así regresar a su punto inicial.

Desarrollo y Pruebas de Funcionamiento


El robot se construyó dentro del laboratorio SIRO, adaptando materiales al diseño
planteado, como botellas de plástico y placas de circuitos impresos. Se probó que la
estructura flotara con un peso de 10kg, después se adaptaron los motores con la
batería para verificar la potencia y velocidad de desplazamiento, se adaptaron los
sensores y la tarjeta de control para tener el ensamblado completo.
Por último se cambió la etapa de control realizada en un protoboard por un circuito
impreso en el cual se soldaron los componentes con la finalidad de evitar falsos
contactos.
Las pruebas de funcionamiento se realizaron en la laguna de Ciudad Universitaria

Fig. 5. Pruebas de funcionamiento en laguna de Ciudad Universitaria

Conclusiones y trabajos futuros


El JARV-1 ha logrado alcanzar sus objetivos de funcionamiento lo cual nos motiva a
seguir trabajando y mejorarlo en una segunda versión. La experiencia ha sido
enriquecedora para profesores y alumnos donde se desarrollaron habilidades de
creatividad, investigación, comunicación y trabajo en equipo.
Como trabajo a futuro, se propone que el robot pueda comunicarse con otros
robots para realizar trabajo colaborativo, implementarle algoritmos de inteligencia

147
artificial, mejorar las funciones de los sensores utilizando un sonar, optimizar el
consumo de voltaje mediante celdas solares y diversificar sus aplicaciones de
limpieza a mares y ríos, buscando la vinculación entre universidad, gobierno y
empresa.
Agradecimientos. A profesores y alumnos que trabajaron dentro de este proyecto, a nuestra
Facultad de Ciencias de la Computación, las autoridades encargadas del mantenimiento de la
laguna de la Benemérita Universidad Autónoma de Puebla.

Referencias
1. Italo Cortez J, Cortez L, Paredes Camacho A, Trinidad Garcia G, “Análisis y
Diseño de Circuitos Eléctricos,” Alfaomega, 1ra. Edición, 2014.
2. Tanenbaum Andrew S., “Computer Networks” 3ra edition, Pretince-Hall PTR,
1996.
3. Roberts M. J., “Señales y Sistemas”, McGraw-Hill, 2005.
4. Palacios Enrique, Fernando Remiro, Lucas J. López, “Microcontrolador
PIC16F84 Desarrollo de Proyectos”, Alfaomega, México, 2006.
5. Vesga Ferreira Juan Carlos, “Microcontroladores Motorola – Freescale”,
Alfaomega, México, 2008.
6. Mead Carver, “Analog VLSI and Neural Systems”, Adison-Wesley Publishing
Company, Canada, 1989.
7. Boylestad Robert l. Y Nashelsky, Louis, “Electrónica: Teoría de Circuitos y
Dispositivos Electrónicos”, Pearson Educación, México, 2009.
8. Trinidad García G; López Marín N; Ítalo Cortez J; Cortez L; Ríos Acevedo C.
A; García Juárez P; Hernández Ameca J. L: Real-Time Dynamic Level Meter
Non-Invasive with Optical Sensor. International Journal of Engineering and
Management Research, Vol.5, NO. 6, pp 518-521 (2015).
9. Flores Ochoa R: Pedagogía del Conocimiento. Mc Graw-Hill (2005).
10. Bravo Sánchez F. A; Forero Guzmán A: Teoría de la Educación. Educación y
Cultura en la Sociedad de la Información. La Robótica como un recurso para
facilitar el Aprendizaje y Desarrollo de Competencias Generales. Vol. 13, NO
2, pp 120-136 (2012).
11. López Ramírez P. A; Andrade Sosa H: Revista Educación. Aprendizaje con
robótica, algunas experiencias. Vol. 37, NO 1, pp43-63 (2013).
12. Mead Carver, “Analog VLSI and Neural Systems”, Adison-Wesley Publising
Company, Canada, 1989.
Manipulador Robótico de Residuos Peligros Biológico-
Infecciosos.

1
José L. Hernández-Ameca1, Elsa Chavira-Martínez , José Ítalo Cortez1, Gregorio
1
Trinidad-García1, Gustavo Rubín-Linares , Minerva Hernández-Ameca2, Alan J.
1 1
Fonseca-Barrera1, Ricardo Pastor-Hernández , Valeria Temozihui-Tlahuel
1
Facultad de Ciencias de la Computación, Benemérita Universidad Autónoma de Puebla,
14 sur y Ave. San. Claudio, C.U. San. Manuel, C.P. 72570 Puebla, Pue; México.
2
Subsistema de Centros Escolares SEP, Puebla, Pue; México.
1 1
amecajl@hotmail.com, elsachavira56@hotmail.com, 1jose.italo.cortez@gmail.com,
1
tgarcia@cs.buap.mx, 1gustavo@cs.buap.mx, ameca.minerv@gmail.com,
1
alanjoshep22@gmail.com, 1richard_yo@msn.com, 1valerykery@gmail.com

Resumen. En el presente trabajo se muestra la realización de un


manipulador robótico diseñado para el manejo de residuos peligrosos
biológicos infecciosos. El diseño se realizó uniendo el subsistema de control y
el de movimiento, de acuerdo a las características requeridas por personal
médico y técnicos especializados. Se hace un resumen de las pruebas de
funcionamiento realizadas con usuarios reales y por último se muestran las
conclusiones obtenidas.
Palabras clave: Hepatitis, Manipulador, RPBI, VIH, Virus.

1. Introducción

De acuerdo al Manual de Procedimientos para el Manejo de los RPBI(Residuos


Peligrosos Biológicos Infecciosos), se identifica que la población que se encuentra en
mayor riesgo de contagio causado por la interacción con RPBI, son los trabajadores
del sector salud como: personal médico, enfermería, laboratoristas e intendencia.
La norma Mexicana para el manejo de residuos peligrosos NOM-087-ECOL-
SSA1-2002 señala como agentes Biológico-Infeccioso cualquier organismo que sea
capaz de producir enfermedades cuando está presente en concentraciones suficientes,
en un ambiente propicio, con un vía de entrada y estar en contacto con una persona
susceptible. Considerando como RPBI a: sangre, cultivos y cepas de agentes
biológico-infecciosos patológicos.
Estos residuos son generadores de virus como VIH (Virus de Inmunodeficiencia
Humana), Hepatitis B y C, los cuales se transmiten a través de grietas y cortes en la
piel, por absorción a través de las membranas mucosas y por lesiones con objetos
punzocortantes.
En el presente proyecto sereporta el desarrollo de una herramienta tecnológica que
permite, a los trabajadores del sector salud manipular de forma segura los RPBI.
2. Idea.
Se detectó el riesgo en el que diariamente se encuentran los trabajadores de
hospitales y unidades médicas que tratan con los RPBI, mediante colaboradores del
Laboratorio de Sistemas Robóticos de la Facultad de Ciencias de la Computación que
realizaron prácticas profesionales en el Hospital General Regional 36 IMSS San
Alejandro de la ciudad de Puebla. Por lo que en conjunto, profesores y alumnos se
dieron a la tarea de desarrollar este proyecto de brazo semiautomático con la finalidad
de brindar mayor seguridad a un sector específico de trabajadores de la salud. Se
busca que un usuario medianamente capacitado controle los movimientos del brazo
robótico para: sujetar, levantar, trasladar y colocar en una posición específica a
contenedores como tubos de ensayo, precipitado, pipetas, probetas etc.
3. Diseño

149
Este robot se conforma de un subsistema de control de lazo abierto llamado
botonera y otro de movimiento llamado Brazo Manipulador. (Reyes Cortes, 2001)
Mediante la botonera el usuario puede posicionar al brazo robótico, sujetar y
transportar tubos de ensayo hacia un lugar deseado, las dimensiones de dichos tubos
son: diámetro de 3mm a 5mm y largo de 100mm. En la figura 1 se muestra el
esquema de la botonera.

Fig.1. Botonera de control para brazo robótico

El funcionamiento consiste en oprimir un botón el cual manda 5v d.c al


microcontrolador, este los codifica y convierte, mediante un programa grabado en su
memoria flash que se encarga de modular el ancho de pulso de la señal recibida y da
como resultado un tren de valores digitales con una frecuencia variable de 1 a
1.5KHz. Con estos valores digitales se controla la posición y velocidad de los
servomotores utilizados en el subsistema de movimiento. El proceso se repite de
manera individual para cada botón como se describe en la Figura 2 y solo se realizará
durante el tiempo que el botón este presionado. (Boylestad, 2009).

Fig.2. Diagrama a Bloques del Subsistema de Control (Botonera).

Para ejecutar y codificar las órdenes enviadas desde la botonera se utilizó un PIC
(Controlador de Interfaz Periférico) 16F877A, el cual es un circuito fabricado en
tecnología CMOS (Semiconductor Complementario de Oxido Metálico),
reprogramable gracias a su memoria de programa tipo flash de 8K, con instrucciones
de 14 bits c/u. Tiene una memoria de datos de 368 bytes RAM, 256 bytes EEPROM.
El circuito cuenta con 40 pines y trabaja con un oscilador externo de 12 MHz. En la
figura 3 se muestra el diagrama electrónico para implementar el subsistema de
control. (López, 2006)
Fig.3. Diagrama de conexión PIC16F877A para el subsistema de control.

Las posiciones y velocidades de desplazamiento de los servomotores que conforman


al subsistema de movimiento o manipulador robótico dependen de las órdenes
provenientes del microcontrolador. De acuerdo a las características eléctricas y
mecánicas de los servomotores utilizados en este prototipo que se muestran en la tabla
1, el subsistema es capaz de levantar entre 30 y 50g correspondientes al peso máximo
que puede alcanzar un tubo de ensayo. (Chavira, 2015)

Tabla 1. Características de los servomotores utilizados en el Manipulador Robótico

Servomotores
Velocidad 260 grados/seg.
Par de salida 3.2 Kg/cm
Dimensiones (40.4 x 19.8 x 36) mm
Masa 37.2 gr
Frecuencia de trabajo 1.5KHz

En la tabla 2 se muestran las características del manipulador donde en la primera


columna se encuentra el número de eslabones, en la segunda columna se hace
referencia al nombre correspondiente en analogía de un brazo humano, en la tercera
se especifican las dimensiones en largo, ancho y altura, la cuarta se muestra el rango
de giro de acuerdo al servomotor utilizado.

Tabla 2. Características del subsistema de movimiento del Manipulador Robótico con 4


grados de libertad

No. de Eslabón Eslabón Dimensiones (cm) Grado


s
l=9
0 Base a=7.5 180
h=10.5

151
1 Hombro l= 12 90
a=1.5
Brazo l=1.5
2 a=2 90
h=13
l=1.5
3 Pinza a=4.5 90
h=4

En la figura 4 se muestran las características del manipulador implementado en


madera macocel con espesor de 6mm, articulaciones de tipo rotacional por los
servomotores eléctricos mencionados en la tabla 1, también se puede observar que
como efector final se tiene una pinza que es análoga a un par de dedos de la mano
humana, la cual permite al usuario sujetar y cambiar de posición un tubo de ensayo a
la vez. (Kumar, 2010).

Fig.4. Subsistema de movimiento del Manipulador Robótico

En la figura 5 se muestra el proceso de funcionamiento del prototipo conformado


por los subsistemas de control y de movimiento, mediante un diagrama de flujo.
Donde se representan a través de un hexágono las ocho condicionales múltiples
correspondientes a los botones para controlar 4 servomotores, a cada uno de estos
servomotores se les asigno un nombre, como base, hombro, brazo y pinza. (Cairo,
2005).

Fig. 5. Diagrama de flujo del prototipo robótico.

Para hacer trabajar al brazo el PIC debe recibir una señal de alguno de los botones,
esto indica que dependiendo el botón es la acción a realizar hasta que este se deje de
ser presionado o hasta que el motor alcance su movimiento máximo permitido, una
vez terminada esta función el PIC vuelve a esperar a que otro botón o incluso el
mismo sea presionado para volver a ejecutar la función en un ciclo, este ciclo es
representado por un conector multicondicional mediante la letra A.

4. Pruebas
Se realizaron diez pruebas de funcionamiento con médicos y técnicos,
identificados como los usuarios potenciales del Manipulador Robótico. La prueba de
funcionamiento consistió en:

Antes de utilizar el manipulador se le dio a cada participante una breve explicación


oral sobre las características y uso adecuado del prototipo. Enseguida se les pidió
utilizar el manipulador con el objetivo de, tomar un objeto y depositarlo en un lugar
deseado.

Resultados.
El objetivo de la prueba fue alcanzado por el 90% de los participantes ya que lograron
tomar y cambiar de posición un tubo de ensayo controlando el prototipo robótico
mediante la botonera, el 10% restante de la población tomada se negó a realizar la
prueba.

153
Conclusiones.

Es importante especificar que en esta primera versión del proyecto el usuario se


encarga de la localización de los objetos y mediante la botonera manipula el brazo
que funciona como una herramienta para tomar y trasladar objetos.

Con respecto a la información obtenida en la prueba de funcionamiento se llegó a


la conclusión de que este proyecto permite al usuario manipular RPBI de forma
indirecta logrando evitar el contacto con estos residuos.

Se planea realizar a futuro una serie de mejoras, como la implementación de


sensores para automatizar la manipulación de objetos de laboratorio que contengan
diversas sustancias peligrosas para el ser humano.
Concluimos que este prototipo es una herramienta innovadora la cual puede
mejorase continuamente retroalimentándonos con las experiencias de los usuarios.

Referencias
1. Boylestad R., Nashelsky L.: “Electrónica: Teoría de Circuitos y Dispositivos
Electrónicos”, Pearson Educación, México, 2009.
2. Chavira Martínez, E., Duran López, R., Fraguela Collar, A., Pedroza Mendoza,
A.: “Introducción al Bioelectromagnetismo y Bioseñales”, Editorial Corinter,
México, 2015.
3. Cairo O. “Metodología de la Programación”, Alfaomega, 2005.
4. García Juárez, P., Hernández Ameca, J. L., Ítalo Cortez, J., Cortez, L., López
Marín, N., Trinidad García, G., Ríos Acevedo, C. A.: Real-Time Dynamic Level
Meter Non-Invasive with Optical Sensor. International Journal of Engineering
and Management Research, Vol.5, NO. 6, pp 518-521 (2015).
5. Reyes Cortés F., “Control de Robots Manipuladores”, S.A., 2001
6. Kumar, S; “Introducción a la Robótica” McGraw-Hill/InteramericanaEditores
S.A. de C.V., México DF, 2010
7. López Perez, L.J., Palacios Municio, E., Remiro Domínguez, F.:
“Microcontrolador PIC16F84 Desarrollo de Proyectos”, Alfaomega, México,
2006.
8. Mandal, A.: Cerebral Palsy Treatment. News medical life sciences & medicine.
http://www.news-medical.net/health/Cerebral-Palsy-treatment.aspx. (2012).
Accedido el 11 de Diciembre del 2012.
9. Mead, C. A.: “Analog VLSI and Neural Systems”, Adison-Wesley Publishing
Company, Canada, 1989.
10. México secretaria de salud “Norma oficial mexicana NOM-087-ECOL-
SSA1-2002, Protección ambiental, Salud ambiental, Residuos peligrosos
biológico-infecciosos, Clasificación y especificaciones de manejo” 2002
11. México Secretaria de Salud “Manual de Procedimientos para el Manejo de los
Residuos Peligrosos Biológicos Infecciosos (RPBI)” 2011.
12. Netter Frank, H.: “Atlas of Human Anatomy: Including student consult
interactive ancillaries and guides”, 6a Edition, 2014.
13. Ollero Baturone, Aníbal, “Manipuladores y Robots Móviles” Marcombo, S.A.,
2001
14. Roberts, M. J., “Señales y Sistemas”, McGraw-Hill, 2005.
Evaluación Colaborativa de Proyectos de Investigación
+Desarrollo basada en un Modelo Semántico

Luz A. Sánchez-Gálvez, Mario Anzures-García, Omar Hernández-Sarmiento


Facultad de Ciencias de la Computación, Benemérita Universidad Autónoma de Puebla,
Avenida San Claudio y 14 Sur, Ciudad Universitaria. 72570 Puebla, México
{sanchez.galvez, mario.anzures}@correo.buap.mx; omar.350.hs@gmail.com

Resumen.En la actualidad, la valoración de Proyectos de Investigación +


Desarrollo (I+D) involucra a más de un evaluador, lo que implica que trabajen
conjuntamente para determinar si el proyecto es aceptado o no. Es decir, existe
una necesidad de reunirse para tomar una decisión, el problema principal
sucede cuando no todos los evaluadores pueden llegar al lugar de reunión. Por
tanto, en este proyecto, se propone crear una aplicación web colaborativa
basada en un modelo semántico, que permita a todos los usuarios involucrados
realizar sus actividades en línea y de manera asíncrona o síncrona. Así como
generar un conjunto de reportes que sirvan para llevar un mejor control de la
evaluación de proyectos I+D. La idea principal es crear una aplicación
colaborativa que sirva para la evaluación de este tipo de proyectos, a través de
un modelo que permita desarrollar este tipo de aplicaciones, de manera ágil,
clara y precisa.
Palabras Clave: Aplicación Colaborativa, CSCW, Proyectos I+D, Evaluación
de Proyectos,Aplicación Web.

8 Introducción

En la actualidad, un factor clave del éxito de las organizaciones (compañías e


instituciones) es su capacidad para realizar el trabajo en grupo de manera adecuada y
eficiente. Actualmente, hay una fuerte tendencia hacia el trabajo en grupos
distribuidos, traspasando límites geográficos, organizacionales, culturales, etc.
Consecuentemente, se ha originado un interés, cada vez más creciente, por sistemas
de “Trabajo Cooperativo Asistido por Computadora” (Computer Supported
Cooperative Work,CSCW), que investiga cómo el trabajo en grupo puede ser apoyado
por tecnologías de la información y la comunicación para mejorar el rendimiento del
grupo de personas involucradas en la ejecución de tareas comunes o interrelacionadas
[1, 2].
CSCW comenzó como un esfuerzo de los expertos en computación por aprender de
economistas, psicólogos, sociólogos y de todos aquellos que pudiesen aportar algo
para entender mejor las actividades de grupo, llegando a ser una área de investigación
y desarrollo en computación en la que se comparten experiencias y discuten diferentes
posibilidades y restricciones tecnológicas con respecto al trabajo en grupo. CSCW se
orienta en tres componentes primarios: la tecnología que apoyará el proceso de
colaboración, los tipos de usuarios que se benefician, y la importancia de relaciones
de trabajo eficaces.
El término groupware es el software para los sistemas CSCW, que permite a los
usuarios interactuar directamente entre ellos, ya sea preparando un documento,
consultando una base de datos o, incluso jugando, utilizando el ordenador como
herramienta de interacción. Groupware (también conocido como aplicaciones
colaborativas) se define como sistemas basados en computadoras que asisten a grupos
de personas implicadas en una tarea (o meta), proporcionando una interfaz para un
entorno compartido [3, 4]. Para algunos autores, los términos de CSCW y groupware
se refieren a lo mismo; sin embargo, la principal diferencia es que CSCW es la

155
disciplina que analiza el trabajo en grupo mientras groupware es la tecnología que lo
permite [5].
Las aplicaciones colaborativas son sistemas complejos que requieren mecanismos
para gestionar la interacción del grupo, de tal forma, que puedan suministrar la
comunicación, colaboración y coordinación para soportar la naturaleza dinámica y las
necesidades cambiantes del trabajo de grupo.
Por otra parte, las tecnologías web sirven para acceder a los recursos de
conocimiento disponibles en Internet o en las intranets utilizando un navegador. Su
uso se ha incrementado por muchas razones: facilitan el desarrollo de lasaplicaciones
colaborativas, ofrecen flexibilidad en términos de escalabilidad; ponen a disposición
de todos, el conocimiento de los demás, por encima de jerarquías, barreras formales u
otras cuestiones. Estas tecnologías pueden llegar a proporcionar recursos estratégicos,
pero, evidentemente, no por la tecnología en sí misma, que está disponible
ampliamente, sino por lo fácil que es personalizarlas y construir con ellasaplicaciones.
Dando resultados extraordinarios a todos.
Por tanto, en este proyecto, se pretende crear una aplicación colaborativa que sirva
para la evaluación de cualquier tipo de proyecto de Investigación + Desarrollo (I+D),
basándose en un modelo semántico.
Este documento se organiza de la siguiente manera: En la sección 2se presentan los
trabajos relacionados. En la sección 3 se muestran las principales tecnologías
utilizadas para el desarrollo de la aplicación colaborativa. En la sección 4 se explica el
modelo semántico para desarrollar aplicaciones colaborativas. En las sección 5 se
detalla el proceso de elaboración de la aplicación colaborativa para la Evaluación de
Proyectos I+D. Finalmente, en la sección 6 seproporcionan las conclusiones y el
trabajofuturo.

9 Trabajos relacionados

En la literatura existen aplicaciones similares a la Aplicación Colaborativa para la


Evaluación de Proyectos I+D, tales como [6, 7, 8, 9]. En general, se puede decir que
éstas presentan las siguientes funciones: Evaluación conjunta de proyectos,
comunicación entre usuarios, manejo de versiones de proyecto, comentarios y notas,
separación por grupos de usuarios para una división de trabajo.Los usuarios pueden
seguir proyectos y tareas; cuando cambia el estado de un proyecto o una tarea, los
involucrados tienen la información de dichos cambios.De manera particular, es
interesante considerar que estos sistemas tienen una similitud en espacios de trabajo,
proyectos, tareas, etiquetas, notas, comentarios,así como un buzón dónde se organiza
y actualiza la información en tiempo real. Están diseñados para facilitar tanto a las
personas como a las organizaciones la planificación y gestión de proyectos como de
tareas.
Por otra parte, el desarrollo de la mayoría de estas aplicaciones usa tecnologías
web, tales como: PHP, JAVASCRIPT, bases de datos MYSQL o MONGODB. Con
excepción de [8] que utilizan otros motores de base de datos como PostgreSQL.
Además, estas aplicaciones no se basan en metodologías o algoritmos para su
creación;sólo el trabajo presentado en [7], que es un software de gestión de proyectos
y colaboración en línea diseñado para gestionar la carga de trabajo en empresas y
organizaciones de distintos tamaños.
En este trabajo se propone crear una aplicación web para evaluar
colaborativamente proyectos I+D. Por una parte, utilizando tecnologías centradas en
el desarrollo web, como: HTML5 [10, 11, 12],CSS3 [11, 12, 13],JavaScript [14, 15],
MySQL [16, 17, 18], PHP (Page Home Personal) [19, 20], Codeigniter[21] y el
patrón arquitectónico Modelo-Vista-Controlador (MVC) [22, 23, 24] junto con la
separación de dicho desarrollo en back-endy frond-end[11]. Por otra, un modelo
semántico a través de una ontología de la política de manejo de sesión, que permita
especificar de manera formal y sin ambigüedades la estructura organizacional del
grupo; la cual permite controlar y gestionar la comunicación, colaboración y
coordinación de los miembros implicados en el trabajo en grupo de la aplicación
colaborativa.

10 Tecnologías utilizadas.

Para la elaboración de este proyecto se emplearon diversas tecnologías web como


HTML5, CSS3, JavaScript, utilizamos frameworks para el desarrollo del back-endy el
frond-end y un sistema de gestión de base de datos MySQL.
 Framework: Es un esquema (un esqueleto, un patrón) para el desarrollo y/o
implementación de una aplicación.
 Front-end: Son todas aquellas tecnologías que corren del lado del cliente o
navegador web, generalizándose principalmente en tres lenguajes: Lenguaje
de Marcado de Hipertexto (HTML, HyperText Markup Language), Hoja de
Estilo en Cascada (CSS,Cascading Style Sheets) y JavaScript.
 Back-end: Son todas aquellas tecnologías del lado del servidor, que permiten
procesar la información como lenguajes: PreProcesador de Hipertexto (PHP,
Page Home Personal), Python, .Net, Java, etc.
 Base de datos MySQL: Consiste de unaarquitectura cliente/servidor que se
compone de un servidor SQL multi-hilo, varios programas clientes,
bibliotecas, herramientas administrativas y una gran variedad de interfaces
de programación (APIs). Se puede obtener también como una biblioteca
multi-hilo que se puede enlazar dentro de otras aplicaciones para obtener un
producto más pequeño, más rápido, y más fácil de manejar.
 Framework Codeigniter: Creado con PHP, contiene una serie de bibliotecas,
las cuales permite un desarrollo más rápido y eficaz. Además, este
framework se basa en el patrón arquitectónico Modelo-Vista-Controlador
(MVC).
 MVC: Patrón arquitectónicopara permitir que el diseño y desarrollo de una
aplicación sea más ágil y sencillo. MVC es un estilo arquitectónico de
software que separa los datos de una aplicación, la interfaz de usuario, y la
lógica de control en tres componentes distintos (véase la Fig. 1): Modelo,
contiene la información que se procesa, genera y almacena para la ejecución
apropiada de la aplicación. Vista o interfaz de usuario, contiene la
información que se envía al cliente y los mecanismos de interacción con
éste; así como también se encarga de recibir los datos del modelo y
mostrarlos al usuario. Controlador, que actúa como intermediario entre el
Modelo y la Vista, gestionando el flujo de información entre ellos y las
transformaciones realizadas para adaptar los datos a las necesidades de cada
uno. Además, recibe los eventos de entrada y contiene reglas de gestión de
eventos. Estas acciones pueden suponer peticiones al modelo o a las vistas
[23].

157
Fig. 1. Esquema del patrón arquitectónico Modelo-Vista-Controlador. [24]

 Materialize:Framework web front-end moderno y responsivo basado en


Material Design creado por Google, para el desarrollo de las diferentes
interfaces de usuario [25].
Con estas tecnologías, se consiguió hacer una interacción entre ellas para
conformar una aplicación web colaborativa estable, robusta y segura.

11 Modelo semántico

El concepto de ontología tiene su origen en el campo de conocimiento de la Filosofía.


En la actualidad, es considerada una rama de la Filosofía que tiene por objetivo la
explicación de la existencia de una manera sistemática, trata sobre los tipos y
estructuras de objetos, propiedades, eventos, procesos y relaciones relativas a cada
porción de la realidad.A principios de los años noventa, el concepto de ontología fue
utilizado en la Inteligencia Artificial, especialmente en la Ingeniería del
Conocimiento, el Procesamiento de Lenguaje Natural y la Representación del
Conocimiento. Existen diversas definiciones de ontología en la literatura, que tienen
connotaciones diferentes con respecto a su uso del dominio de aplicación. Para
Gruber [25] una ontología es "la especificación explícita de una conceptualización".
En esta definición, una conceptualización se refiere a un modelo abstracto de cómo la
gente piensa sobre algo del mundo real, determinada por objetos, conceptos y otras
entidades existentes en un área, así como sus relaciones. Especificación explícita
significa que los conceptos y las relaciones de un modelo abstracto reciben nombres y
definiciones explícitas.
Gruber [25] propusó utilizar técnicas de Inteligencia Artificial para especificar
ontologías, como marcos (frames, que proporcionan más poder expresivo, pero menos
capacidad de inferencia), lógicas de primer orden (que proporcionan poderosas
primitivas de modelado) y lógica descriptiva (que es más robusta para el
razonamiento). Identificó los siguientes componentes que sirven para representar el
conocimiento de algún dominio:
 Clases: Representan los conceptos (abstractos o concretos) del dominio a
formalizar. Las clases en una ontología se suelen organizar en taxonomías,
aplicándoles los mecanismos de herencia. Las clases pueden contener
individuos (o instancias) con sus correspondientes atributos.
 Relaciones: Definen las interrelaciones entre dos o más clases (propiedades
del objeto) o un concepto para un tipo de datos (propiedades de tipo de
datos).
 Axiomas: Los axiomas formales representan expresiones (enunciados
lógicos) que son siempre ciertos. Se utilizan para imponer restricciones a los
valores de las clases o instancias. representar conocimiento y verificar la
consistencia de la propia ontología.
 Instancias: Se usan para representar objetos, elementos o individuos
determinados de un concepto en una ontología.
El desarrollo de ontologías es una tarea laboriosa y propensa a error, especialmente
si se hace manualmente, por esto, es necesario contar con herramientas que puedan
automatizar parte de esta tarea y ocultar las peculiaridades y formalismos de los
lenguajes de especificación de ontologías. Estas herramientas ofrecen interfaces
gráficas que facilitan la adquisición de conocimiento.Protégé es una herramienta de
ingeniería de ontologías de código abierto y un marco de trabajo basado en
conocimiento. Las ontologías en Protégé se pueden desarrollar en una variedad de
formatos, incluyendo OWL, RDF (S), y XML Schema. Protégé está basado en Java, es
extensible, y proporciona un entorno de plug-and-play que hace que sea una base
flexible para la creación rápida de prototipos y desarrollo de aplicaciones. Además,
Protégéincluye razonadores para la inferencia de conocimiento como Pellet y Hermit.
En este trabajo, el modelo semántico es representado por una ontología de la
política de manejo de sesión (véase la Fig. 2), que se utiliza para establecer la
estructura organizacional del trabajo en grupo, de tal modo, que permita establecer el
control de la sesión (determinando quién autoriza el registro de un usuario, cómo se
realiza la interacción entre los usuarios y cómo se definen los turnos para la
participación del usuario en la sesión) y soportar los cambios (determinando cómo se
modifica el rol de usuario, los permisos de rol y/o la política actual) de esta
interacción.
Esta ontología establece que la estructura organizacional del Grupo se rige por una
política específica que determina cómo se organiza el trabajo en grupo. Esta
estructura se compone de los usuarios. Política determina una configuración de la
estructura organizativa del grupo, de acuerdo con cada función definida. Los usuarios
pueden ser personas, individuos o grupos, pero también puede referirse a los sistemas,
jugando uno o más roles. Rol es responsable de las tareas que los usuarios pueden
realizar y proporciona un conjunto de derechos de acceso -relacionados con su estado-
que tienen en los recursos compartidos que se utilizan para llevar a cabo las
actividades. Estatus define la jerarquía del Rol, es decir, establece la prioridad del Rol
dentro del grupo. Tarea está formado por una o más actividades que permiten a los
usuarios para lograr un objetivo determinado en un período de tiempo determinado.
Cada Tarea es activada por un Evento y tiene una precedencia (orden de ejecución).
Una tarea puede ser de tipo: Secuencial, una tarea sigue después de la otra; Paralela,
dos o más tareas diferentes que se ejecutan al mismo tiempo; Concurrente Parcial,
tareas que se ejecutan al mismo tiempo pero que acceden a diferente recurso; y
Concurrente Completa, tareas que se ejecutan al mismo tiempo accediendo al mismo
recurso. Las actividades son acciones que permiten a un rol ejecutar un conjunto de
operaciones. Los recursos compartidos representan los recursos utilizados por los
usuarios para llevar a cabo las actividades. Una fase es un momento de colaboración,
que contiene una o más tareas, cada fase tiene un orden en que se ejecuta
(Precedencia de la Fase).

Precedencia
Fase
de Fase

Estructura concurrente concurrente


Organizacional Usuario secuencial paralelo parcial completa
de Grupo

Tarea Actividad

Precedencia
de Tareas
Política Rol Recurso

Evento
Precedencia
de Tarea

Derecho/
Estatus
Obligación

Fig. 2. Modelo Semántico.

12 Desarrollo de la Aplicación colaborativa

Las tendencias en el mundo actual van hacia la descentralización, a la formación de


grupos de trabajo, a realizar las tareas fuera de los centros de trabajo, etcétera; por lo
tanto, toma mayor importancia la necesidad de métodos eficaces para compartir
información y coordinar actividades, es decir, se requieren aplicaciones que

159
proporcionen acceso a la información compartida en cualquier momento y lugar
usando una mínima infraestructura técnica.
La Web apunta hacia el trabajo colaborativo en: investigación, desarrollo,
comercialización, publicidad, negocios, ventas, y soporte, debido a que provee un
marco ideal para el desarrollo de aplicaciones colaborativas principalmente gracias a
su amplia extensión alrededor de todo el mundo; lo cual facilita la distribución de las
aplicaciones, la comunicación y colaboración entre los usuarios de los grupos de
trabajo. La Web posee tres componentes que le permiten ser utilizada como la base
del desarrollo de aplicaciones colaborativas [27]:
 Acceso a Documentos Compartidos: El modelo básico de acceso provisto
por HTTP proporcionado para acceder a documentos repositorios a través de
Internet. El acceso unificado a repositorios compartidos de documentos
permite soportar actividades colaborativas.
 Manejo de Interfaces de Usuario: HTML extiende el modelo básico de
documentos de marcado con soporte a interfaces de usuario construidas a
partir de componentes básicos Widgets. Proporciona una plataforma
independiente para el manejo de interfaces de usuario.
 Acceso Unificado a Servicios: A través de los mecanismos CGI (Common
Graphics Interface, Interfaz de Entrada Común en español) se puede acceder
a los programas externos como si se tratase de documentos Web. La
tecnología Web proporciona acceso distribuido a los servicios de red a los
participantes a través del Internet.
Es por ello, que se decidió realizar este proyecto, que permite crear una aplicación
colaborativa basada en tecnologías web para evaluar proyectos. Esta aplicación
facilita el trabajo en grupos, mejorando su rendimiento y permitiendo a personas que
están localizadas en puntos geográficos diferentes trabajar conjuntamente, ya sea de
manera síncrona o asíncrona a través del internet.
El desarrollo de la aplicación web, consideró un ciclo de vida de software clásico,
que realiza: análisis de requisitos, diseño e implementación. Los cuales serán
explicados en las siguientes subsecciones.

12.1 Usando el modelo semántico para desarrollar la aplicación colaborativa

De acuerdo, al modelo semántico especificado en la sección 5 para desarrollar la


evaluación colaborativa de proyectos, sólo es necesario definir las instancias de los
conceptos mostrados en la Fig. 2. Estas instancias se colocarán en la Tabla 1, se
considera que la aplicación tiene una única Fase, por tanto, no se presenta en la tabla.
Además, dicha aplicación sólo presenta dos roles: Profesor (P) y Estudiante (E) (se
omite el Rol Administrador). El primero tiene como Derecho/Obligación “Enviar
proyecto (o avances) y consultar evaluación” y Estatus 2. El segundo tiene como
Derecho/Obligación “Revisar y evaluar proyectos” y Estatus 3. Por tanto, las
instancias que se muestran en la Tabla 1 son: Rol (R), Evento (V), Tarea (T),
Precedencia de la Tarea (I), Tipo de Tarea (TT) que puede ser Secuencial (Q),
Paralela (L), Concurrente Parcial (U) y Concurrente Completa (C), Actividad (A) y
Recurso (O). Las demás se omiten por razones de espacio.

Tabla 6. Instancias del modelo semántico.

R T I Actividad Recurso TT
P Registrarse Aplicación 1 Ingresar datos Formulario, etiquetas, botón y BD Q
P Entrar Aplicación 2 Ingresar datos Formulario, etiquetas, botón y BD Q
P Perfil de usuario 3 Crear o editar perfil Formulario, etiquetas, botón y BD Q, P
E Registrarse Aplicación 1 Ingresar datos Formulario, etiquetas, botón y BD Q
E Entrar Aplicación 2 Ingresar datos Formulario, etiquetas, botón y BD Q
E Perfil de usuario 3 Crear o editar perfil Formulario, etiquetas, botón y BD Q, P
P Ver curso 4 Ver cursos activos Etiquetas y BD Q
P Agregar curso 5 Ingresar datos Formulario, etiquetas, botón y BD Q
E Ver curso 6 Ver cursos activos Etiquetas y BD U
E Inscribirse a curso 7 Ingresar datos Formulario, etiquetas, botón y BD C
E Agregarproyecto 8 Subir proyecto Formulario, etiquetas, botón y BD Q
Agregar parte del
E Agregar avance 9
proyecto
Formulario, etiquetas, botón y BD Q

P Verproyectos 10 Ver proyectos Etiquetas y BD U


Ver avances y
P Ver avances 11
correcciones
Etiquetas y BD U
Agregar comentario y
P Evaluar 12
calificación
Formulario, etiquetas, botón y BD C
Ver comentarios del
E Ver observaciones 13
profesor
Etiquetas y BD Q
Ver estado del
E Ver estado 14
proyecto
Etiquetas y BD Q

E Ver evaluación 15 Ver calificaciones Etiquetas y BD Q

A partir de las instancias especificadas en la Tabla 1, es posible identificar los


requisitos, así como los elementos del diseño y de la implementación.

12.1.1 Análisis de requisitos

Los requisitos son características del sistema o descripciones de algo que éste es
capaz de hacer, con el objetivo de satisfacer el propósito del mismo, durante esta fase
no se consideran las descripciones específicas de la implementación, por
consiguiente, se centra en los usuarios y en el problema en general [28]. Los
requisitos, se dividen en dos categorías: funcionales (Tabla 2), los cuales describen las
funcionalidades o servicios del sistema; y no funcionales (Tabla 3), los cuales se
refieren a los atributos de calidad del sistema.

Tabla 2. Requisitos Funcionales.

Requerimiento Descripción
Perfiles del profesor y Profesores y estudiantes tendrán perfil de usuario; datos
estudiante básicos como nombre, matricula, etc.
El profesor administrara El profesor creará materias para que sus alumnos se
sus materias inscriban y posteriormente suban proyectos a evaluar.
Administración de usuarios Editar usuarios dentro del sistema.
Los estudiantes crean El sistema permitirá al estudiante crear un proyecto para
proyectos ser evaluado
Los estudiantes generan El estudiante podrá subir a lo largo del curso los avances
avances de sus proyectos y/o correcciones de sus proyectos.
El profesor acepta o no El sistema permitirá al profesor dar el visto bueno al
proyectos proyecto del estudiante para que este trabaje a lo largo
del curso.
El profesor evalúa El profesor verá y calificará los proyectos.
Los estudiantes colaboran El sistema permitirá que los estudiantes trabajar
en un proyecto colaborativamente en un proyecto
Los profesores evaluan Los profesores evalúa colaborativamente los diferentes
colaborativamente proyectos de los estudiantes.
Los profesores escribirán Los profesores enviarán observaciones a los estudiantes
observaciones de sus proyectos.

Tabla 3. Requisitos No Funcionales.

161
Requerimiento Descripción
Desempeño No presentará ningún problema para su manejo e implementación.
Multiplaforma Funcionará en distintos tipos de navegadores web.
Rendimiento Soportar el manejo de una gran cantidad de información durante su
ejecución.
Usabilidad Será fácil de usar,al contar con interfaces intuitivas.
Seguridad El ingreso ala aplicación colabroativa estará restringido bajo usuarios
definidos y contraseñas cifradas.
Portabilidad El sistema deberá brindar comodidad al usuario además de que se
pueda usar con otras herramientas tecnológicas.

12.1.2 Diseño

La interfaz de usuario es el medio con que el usuario puede comunicarse con una
aplicación o computadora, y comprende todos los puntos de contacto entre el usuario
y la computadora. Normalmente, suelen ser fáciles de entender y fáciles de accionar.
[29]. El diseñador de interfaces debe facilitar y simplificar el acceso así como
lanavegación de los usuarios. A menudo se usa la metáfora del viaje o del camino a
recorrer y se presentan iconos o símbolos de interfaz,así como otros dispositivos que
tienen que ver con las señales utilizadas en mapas, urbanismo o arquitectura. [30].
Por una parte,para el diseño de la aplicación, se decidió usar como color primario
el color azul, los colores secundarios son verde y rojo, se pone énfasis en el uso de los
colores porque despiertan respuestas emocionales específicas en las personas y con
esto se puede lograr una mejor interacción entre los usuarios y el sistema.El azul en la
web permite dar color sin perder la seriedad o formalidad deseada, volviéndolo un
sitio atractivo y lleno de vida [31], también es sinónimo de confianza y seguridad,
además de ayuda a controlar la mente, a tener claridad de ideas y a ser creativos.
Por otra parte, el diseño de la aplicación se desarrolló considerando el modelo
semántico, por cada tarea se generó una interfaz de usuario, que contiene como
elementos los recursos listados en la Tabla 1. Tomando en consideración que una
tarea siempre presenta Vista de Información (muestra los objetos colaborativos y las
operaciones sobre éstos, así que cada acción colaborativa debe ser notificada a la
interfaz de cada miembro del grupo). En caso de ser Paralela o Concurrente Parcial
muestra, además, Vista de Participante (proporciona la conciencia de grupo entre sus
integrantes; permitiendo conocer las actividades del resto de participantes) y si es una
tarea Concurrente Completa despliega, también, Vista de Contexto (presentarecursos
y condiciones que están inmersos en todas las actividades colaborativas que han sido
desarrolladas, lo que se conoce como contexto o memoria de grupo). Por otra parte,
cualquier tipo de tarea requiere implementar un mecanismo de notificación, mientras
la tarea Concurrente Completa necesita agregar un mecanismo de concurrencia para
gestionar los permisos a los recursos compartidos, evitando inconsistencias en la
aplicación.
De esta forma, el modelo semántico simplifico el desarrollo de la aplicación
colaborativa para evaluar proyecto I+D.

12.2 Implementación.

Para implementar este proyecto se tuvo que subir a un servidor dedicado todos los
archivos correspondientes al sistema y también se cargó la base de datos, la cual
recibe la información de los usuarios, así como el contenido de los proyectos. Se
utilizó Windows Azure, porque suministra las herramientas necesarias para poder
hacer la implementación y las pruebas correspondientes.
Para poder acceder al sistema el profesor y el estudiante deben escribir su usuario
y contraseña correspondiente, en esta interfaz (Fig.3) se muestran pocos elementos, lo
que la hace intuitiva y fácil de usar.
También, se tomó en cuenta el modelo semántico, por ello, el desarrollador debe
implementar las tareas que se muestran en la tabla 1, con sus respectivas interfaces de
usuario.
Cuando el estudiante ingresa al sistema se muestra la interfaz de pantalla principal
(Fig. 4) en donde puede ver datos importantes como su clase y el profesor, además de
ver su proyecto actual y en que status se encuentra, con un botón para agregar nuevos
avances y también ver sus datos personales más relevantes.
El estudiante podrá ver en esta interfaz (Fig. 5) su proyecto, la fecha de creación y
en que status se encuentra, además de agregar nuevos avances (Fig. 6) podrá ver las
observaciones que realiza el profesor

Fig. 3. Acceso a la aplicación colaborativa.

Fig. 4. Pantalla principal de estudiante.

163
Fig. 5. Agregar nuevo proyecto.

Fig. 6. Avances de proyecto.

En la pantalla principal del profesor (Fig.7), éste podrá ver sus materias de cada
periodo, los proyectos de sus estudiantes, en esta parte se muestra la palabra new para
indicarle al profesor que hay nuevos cambios en el proyecto y también tendrá sus
datos académicos.
Fig. 7. Pantalla inicial profesor.

13 Conclusiones y Trabajo Futuro

Se realizó un prototipo de una aplicación colaborativasimple, robusta, dinámica,


interactiva y usable, para evaluar proyectos de Investigación + Desarrollo.
Fundamentada en un modelo semántico, que permitió llevar a cabo el proceso del
ciclo de vida de software, es decir, se realizó: análisis de requisitos, diseño e
implementación de dicho prototipo. Se ejecutaron algunas pruebas, que demostraron
que el proceso realizado y el prototipo creado cumplían con atributos de calidad, tales
como: usabilidad, robustez, interactividad, dinamismo e integridad. Estos atributos se
alcanzaron gracias a que por una parte, el desarrollo se basó en el modelo semántico y
en nuevas tecnologías web. Por ejemplo: Materialize permite crear interfaces de
usuario usables, simples, robustas y dinámicas; tanto MVC como dividir el desarrollo
en front-end y back-end facilitan la simplicidad y dinamismo de las aplicaciones;
CodeIgniter proporciona la robustez e interactividad; finalmente MySQL ayuda a la
robustez manteniendo la integridad de la información de la aplicación colaborativa.
Finalmente, el trabajo futuro se centrará en crear una aplicación que pueda ser usada
para evaluar cualquier tipo de proyecto de investigación.

Referencias

1 Beaudouin-Lafon M.; et al.:Computer Supported Cooperative Work. Trends in Software,


John Wiley & Sons. (1999)
2 Borghoff, U.M.; and Schlichter J.H.: Computer-Supported Cooperative Work: Springer-
Verlag. (1998)
3 Ellis, C.; and Wainer, J.: A conceptual model of groupware. Proceedings of the 1994
ACM Conference on CSCW, pp. 79-88, (1994)
4 Ellis, C.A.; Gibas, S.J.; and Rein, G.L.: Groupware: Some Issues and Experiences.
Communications of the ACM, Vol. 34-1, pp. 39-58, (1991)

165
5 Martínez-Acuña, M.I.: Trabajo Cooperativo Asistido por Computadora. Revista de
divulgación científica y tecnológica de la Universidad Veracruzana, Vol. XVIII-2,(2005)
6 Asana, https://asana.com/product.Accedido el 31 de Septiembre de 2016
7 Wrike, http://www.pcworld.com/article/2603720/wrike-boosts-reporting-capabilities-of-
its-social-project-management-software.html Accedido el 1 de Octubre de 2016
8 dotProject, http://www.dotproject.net/index.php Accedido el 1 de Octubre de 2016
9 Egroupware, http://www.egroupware.org/start.html Accedido el 1 de Octubre de 2016.
10 Robson, E.; and Freeman, E.: Head First HTML and CSS, 2nd Edition, O'Reilly Media
(2012)
11 Libby, A.; Gupta, G.; and Talesra, A.: Responsive Web Design with HTML5 and CSS3
Essentials, Packt Publishing (20016)
12 Schmitt, C.: CSS Cookbook, 3rd Edition, O'Reilly Media (2009)
13 Osmani, A.: Learning JavaScript Design Patterns. O'Reilly (2015)
14 Flanagan, D.: JavaScript: The Definitive Guide, 6th Edition, O'Reilly Media (2011)
15 Crockford, D.: JavaScript: The Good Parts. O'Reilly (2008)
16 Duckett, J.: JavaScript and Jquery: Interactive Front-End Web Development, John Wiley
& Sons, Inc. (2014)
17 Schwartz, B.; Zaitsev, P.; and Tkachenko, V.: High Performance MySQL, 3rd Edition,
O'Reilly Media (2012)
18 Forta, B.: MySQL Crash Course, SAMS (2005)
19 Ullman, L.: PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide, 4th
Edition, Peachpit Prees (2012)
20 Ullman, L.: PHP for the Web: Visual QuickStart Guide, 4th Edition, Peachpit Prees
(2011)
21 Myer, T.: Professional CodeIgniter 1st Edition, Wiley Publisher Inc. (2008)
22 Addy, O.: Learning JavaScript Design Patterns. O’Reilly (2015)
23 Goldberg, A.:Smalltalk-80: The Interactive Programming Environmen’t. Addison-
Wesley, (1984)
24 Modelo Vista Controlador (MVC), Universidad de Alicante, Accedido 14 de Enero de
2016 http://si.ua.es/es/documentacion/asp-net-mvc-3/1-dia/modelo-vista-controlador-
mvc.html. Accedido el 30 de Septiembre de 2016
25 Materialize. Un framework web front-end moderno y responsivo basado en Material
Design. http://materializecss.com/ Accedido el 4 de Agosto de 2016
26 Gruber, R. A translation approach to portable ontology specification. Knowledge
Acquisition. Vol. 5, pp. 199-220, (1993).
27 Dourish, P., Open Implementation and Flexibility in CSCW Toolkits. PhD Thesis.
Department of Computer Science, University College London, 1996
28 Análisis de requisitos http://es.slideshare.net/SergioRios/unidad-13-analisis-de-
requerimientos
29 Interfaz de Usuario. http://www.ecured.cu/Interfaz_de_usuario. Accedido el 31 de
Septiembre de 2016.
30 Interfaz. http://www.hipertexto.info/documentos/interfaz.htm-Accedido el 31 de
Septiembre de 2016
31 Color. http://es.slideshare.net/telmoviteri/el-color-en-la-educacin. Accedido el 31 de
Septiembre de 2016
Gestión Colaborativa de Eventos Académicos
basada en un Patrón Arquitectónico

Luz A. Sánchez-Gálvez, Mario Anzures-García, Ana P. Arcos-Rodríguez,


Erick Hidalgo-Sánchez
Facultad de Ciencias de la Computación, Benemérita Universidad Autónoma de Puebla,
Avenida San Claudio y 14 Sur, Ciudad Universitaria. 72570 Puebla, México
{sanchez.galvez, mario.anzures}@correo.buap.mx;{paola.arcos0409,
erick.hidalgos}@hotmail.com

Resumen.En la Facultad de Ciencias de la Computación de la Benemérita


Universidad Autónoma de Puebla se realizan varios eventos académicos
durante todo el año.Lo cual implica la necesidad de utilizar diferentes
herramientas para gestionar el evento,así como generar un sitio web
correspondiente. Por tanto, en este trabajo se plantea el desarrollo de
unaaplicación colaborativa para la Gestión de Eventos Académicos,
considerando que esta gestión es llevada a cabo porun grupo de personas que
deseangestionar y/o participar en un evento académico. La creación de dicha
aplicación está basada en un patrón arquitectónicoModelo-Vista-Controlador
modificado para construir aplicaciones colaborativas. El patrón arquitectónico
sirve como una guía al desarrollador para simplificar y agilizar este proceso de
construcción. Además, en este proceso se consideró crear tanto el front-end
como el back-end, ya que las aplicaciones colaborativas son inherentemente
aplicaciones web.
Palabras Clave: Aplicación Colaborativa, Gestión de Eventos Académicos,
Patrón Arquitectónico, Front-end,Back-end,

1. Introducción

El avance tecnológico, sobre todo en telecomunicaciones, así como el desarrollo de


nuevas tecnologías de software y la globalización marcan una fuerte tendencia hacia
el trabajo en grupos distribuidos, traspasando límites geográficos, organizacionales,
culturales, etc. Debido a esto, se requieren aplicaciones de software que soporten,
contribuyan y fortalezcan el trabajo en grupo, y a la vez, estás deben estar soportadas
por modelos, metodologías, arquitecturas y plataformas que permitan el desarrollo de
aplicaciones CSCW (Computer Supported Cooperative Work) [1, 2] congruentes a las
necesidades actuales.
Internet, junto con el enorme crecimiento en la banda ancha de la red y el poder de
cómputo, el uso de sistemas abiertos, que permiten la interoperabilidad entre estos, y
avances en bases de datos, gráficos de computadora, sistemas basados en agentes y
una amplia aceptación de tecnologías de gestión de redes y protocolos, han fomentado
una gran variedad de herramientas que ayudan al desarrollo de aplicaciones
colaborativas, también conocidas como groupware.
Groupware hace referencia a los sistemas basados en computadora que asisten a
grupos de personas comprometidas en unatarea (o meta) común y proporcionan una
interfaz a un entorno compartido [3, 4]. Esto permite realizar diversos procesos a
distancia, siendo la razón por la cual el desarrollo y uso de este tipo de aplicaciones va
en aumento.
Por una parte, estas aplicaciones son inherentemente distribuidas y por tanto Web,
lo que ha simplificado su desarrollo; ya que en la actualidad también existe un auge
en el desarrollo de aplicaciones Web. Lo que ha implicado que en los últimos años,
consista en separarlo en dos partes [5]: front-end, para facilitar la interacción de los
usuarios en la aplicación web, y back-end, para el procesamiento de la información.

167
Por otra parte, dicho desarrollo se ha visto soportado por una variedad de
metodologías y/o modelos, que reducen el esfuerzo,tiempo y costo empleado en el
mismo.
Por consiguiente, en este proyecto se genera el front-endy back-endde la aplicación
colaborativa de gestión de eventos académicos. El primero, se centra en un conjunto
de formularios o plantillas web; que ayudan a la configuración, gestión y uso de la
misma. Mientras el segundo, consiste en crear y manipularlas bases de datos, verificar
manejos de sesiones de usuarios, montar la página en un servidor, y desde el mismo
“servir” (proporcionar) todas las vistas que el front-end crea.
El desarrollo de la aplicación está basado en el patrón arquitectónico Modelo-
Vista-Controlador (MVC) [6, 7, 8], que ha sido modificado para especificar, diseñar e
implementar cada una de las entidades implicadas en dicho desarrollo; permitiendo
obtener fácilmente los elementos correspondientes tanto al front-end como al back-
end para la gestión de eventos académicos.
El presente documento se organiza de la siguiente manera: En la sección 2 se
presentan los trabajos relacionados. En la sección 3 se describe el patrón
arquitectónico MVC modificado para desarrollar aplicaciones colaborativas. En la
sección 4 se explica el desarrollo tanto del front-endcomo delback-end tomando como
fundamento dicho patrón. Finalmente, en la sección 5 se ofrecen las conclusiones y el
trabajo futuro.

2. Trabajos relacionados

Se revisaron varias aplicaciones [9, 10, 11, 12, 13, 14, 15] similares a la Gestión
Colaborativa de Eventos Académicos. En general se puede decir que éstas presentan
las siguientes funciones: creación de eventos, promoción, inscripción, presentación de
los eventos del día, modalidades, cuotas. De manera particular, es interesante
considerar que estas aplicaciones ofrecen la posibilidad de dar a los usuarios acceso a
servicios e información de eventos por medio de tecnologías web. Por tanto, brindan:
 Simplicidad de despliegue:Tienen la disponibilidad de un explorador y una
conexión de red, dos características que se consiguen ampliamente.
 Soporte multiplataforma: Se basan en protocolos y formatos estandarizados
soportados por una gran cantidad de plataformas.
 Actualización automática para los clientes: Como dichas aplicaciones son
almacenadas en servidores, al realizar una actualización requierenúnicamente
el despliegue de nuevos archivos en los servidores.
Por otra parte, el desarrollo de la mayoría de estas aplicaciones utilizan tecnologías
web, tales como: lenguajes de programación, principalmente PHP y HTML [9, 10, 11,
13, 14, 15], Lenguaje de modelado unificado [9,14], Arquitectura de tres capas [9] y
Arquitectura MVC [12]. Aunque algunas de estas aplicaciones se basan en modelos,
éstos no están centrados en el desarrollo de aplicaciones colaborativas.
La aplicación de Gestión Colaborativa de Eventos Académicos propuesta se basa
en un patrón arquitectónico MVC ajustado para crear aplicaciones colaborativas. Por
tanto, dicha aplicación brinda un conjunto de plantillas web que suministran un
entorno para adentrarse a las funcionalidades propias de la gestión de eventos.
Mientras que las aplicaciones analizadas no ofrecen un entorno en el cual el usuario
pueda participar, registrarse y tener comunicación con el administrador de la
aplicación.
La aplicación propuesta suministra:
 La actualización de eventos a través de cuentas de usuarios.
 Tres tipos de usuarios:Usuario invitado, participante y administrador.
 Un calendario interactivo, en el que se podrá consultar los eventos.
 Una plantilla con una organización adecuada para el evento.
 Una plantilla de registro a eventos.
3. Patrón arquitectónico MVC para desarrollar aplicaciones
colaborativas

Un patrón de diseño captura la esencia de una solución exitosa a problemas que


ocurren comúnmente en el diseño de software. En consecuencia, puede ser visto como
un conjunto claro y genérico de instrucciones, permitiendo personalizar el patrón para
resolver problemas específicos. La importancia del enfoque es su potencial para
reducir la brecha entre los requisitos de alto nivel y el diseño. Por esta razón, los
patrones de diseño pueden ser usados para la obtención de requisitos; determinando
los elementos necesarios para el desarrollo de software y cómo estos se aplican al
patrón [16, 17, 18].
MVC es un patrón arquitectónico creado para reducir el costo y mejorar la calidad
del software en el paradigma orientado a objetos, ya que suscita la modularidad al
encapsular los detalles de la implementación detrás de las interfaces estables,
reduciendo el esfuerzo necesario para entender y mantener el software existente. Este
patrón aporta un principio claro de separación entre la interfaz de usuario y la
semántica de la aplicación subyacente, a través de sus tres componentes: Modelo,
Vista y Controlador.
MVC es uno de los patrones de diseño más utilizados en CSCW, principalmente
para la gestión de la interacción entre los objetos en diferentes procesos distribuidos,
ya que permite separar la presentación o vista de los datos del modelo de los mismo y
controlar ambos componentes a través del controlador.
El patrón arquitectónico MVC [19, 20, 21] presenta todos los elementos necesarios
para desarrollar una aplicación colaborativa, separados en tres componentes (véase la
Fig. 1). En el Modelo, se especifican aquellos que corresponden a la estructura
organizacional del grupo, de tal manera que suministra todos los datos que son
requeridos en este tipo de aplicaciones. En la Vista, se tiene la interfaz de usuario
constituida por la Vista de Información (muestra los objetos colaborativos y las
operaciones sobre éstos, así que cada acción colaborativa debe ser notificada a la
interfaz de cada miembro del grupo), Vista de Participantes (proporciona la
conciencia de grupo entre sus integrantes; permitiendo conocer las actividades del
resto de los participantes) y Vista de Contexto (presentarecursos y condiciones que
están inmersos en todas las actividades colaborativas que han sido desarrolladas, lo
que se conoce como contexto o memoria de grupo). En el Controlador, se
especifican los mecanismos que permiten especificar y regular las condiciones de
competencia entre los participantes (mecanismo de concurrencia), así como también
informar (mecanismo de notificación) a las entidades correspondientes de los cambios
hechos tanto en el Modelo como la Vista para realizar las acciones necesarias en la
sesión.

169
VISTA
Interfaz de Usuario
Vista de
sequentia Vista de Vista de
Información
l Participante Contexto

SESIÓN
Notificación Concurrencia

CONTROLADOR
Fase

Estructura concurrente
Usuario sequential paralela concurrente
Organizacional secuencial parcial completa
de Grupo

Tarea Actividad

Política Rol Precedencia de


Tareas

Recurso
Estatus Derecho/
Evento
Obligación

MODELO
Fig. 1.Patrón arquitectónico MVC para desarrollar aplicaciones colaborativas [6].

4. Desarrollo de la gestión colaborativa de eventos académicos

En este proyecto, se desarrolla elfront-end (análisis, diseño e implementación de las


interfaces de usuario para la interacción entre los usuarios y con la
aplicación,considerando el diseño responsivo) del sitio web para la gestión de eventos
académicos, así como el back-end (base de datos —BD—que se define como una
entidad en la cual se pueden almacenar datos de manera estructurada, con la menor
redundancia posible; manejo de sesiones de usuarios, montar la aplicación
colaborativa en un servidor, y “servir” todas las vistas desarrolladas en elfront-end.
El front-end son aquellas tecnologías que interactúan con el cliente, es decir, las
que se ejecutan del lado del navegador web, generalizándose en tres lenguajes:
Lenguaje de Marcado de Hipertexto (HiperText Markup Langauge, HTML) [22, 23,
24], Hoja de Estilo en Cascada (Cascading Style Sheets, CSS) [24, 25, 26] y
JavaScript [27, 28, 29]. Comúnmente el front-end se encarga de estilizar la aplicación
web, de tal manera, que las interfaces proporcionen una interacción adecuada y
amigable al usuario.
El back-endse encarga de almacenar, procesar y generar la información de una
aplicación. Por ende, en este proyecto se han utilizado bases de datos relacionales
MySQL [30, 31] yel frameworkdenominado Wampserver con el PreProcesador de
Hipertexto (Personal Home Page, PHP) [32, 33]. De esta forma, el back-end cuenta
con un tipo de base de datos relacional (colección de elementos de datos organizados
en un conjunto de tablas formalmente descritas de la que se puede acceder a
lainformación),en la que se puede almacenar todo lo que engloba dicha aplicación,
desde la publicación de los eventos hasta los datos específicos de cada participante.
A partir de los elementos del patrón arquitectónico MVC presentado en la sección
3, se pudo definir el Modelo, la Vista y el Controlador de la aplicación colaborativa
de gestión de eventos académicos.
13.1 Elementos del Modelo

Al aplicar la metodología para crear aplicaciones colaborativas se obtuvo la estructura


organizacional del grupo (véase la Fig. 1). Estableciéndose que la aplicación contará
con tres Fases: Configuración del evento, Actualización del Evento, Realización del
Evento. Así como los roles:
 Rol administrador. Sólo los usuarios de este tipo configuran y actualizan
información del evento, de igual forma modifican aspectos importantes del
diseño dela aplicación colaborativa y tienen conocimiento de los usuarios de
tipo invitado, ya que en algunos casos, el administrador otorgará los horarios
por evento a los usuarios invitados registrados.
 Rolparticipante.Tendrá una cuenta registrada para acceder a cierta
información, así como también a dichos eventos en los que podrán registrarse
y participar; ellos no podrán modificar el entorno solo tendrán ciertos
privilegiossin modificar la aplicación.
 Rol invitado.Sirve para que los usuarios sin una cuenta personal, puedan ver la
información de dichos eventos sin tener que registrarse.
De esta forma y gracias a la estructura organizacional del grupo se puede tener el
control de las tareasque realizaran cada uno de los roles, a qué fases e interfaces
podrán acceder, dependiendo de su status y derechos/obligaciones. Así como, conocer
cada tarea, qué actividades la componen y qué recursos usan para ejecutarlas. Por
tanto, se puede deducir que un evento contiene las características listadas a
continuación:
 Título
 Dónde se realiza
- Lugar
- Institución
- Municipio
- Estado
- País
 Objetivo
 A quién se dirige
 Comité Organizador
- Organizadores
- Colaboradores
 Participantes o Invitados
- Nombre del Participante
- Cargo
- Grado de estudios
- Nombre del Trabajo o Ponencia
- CV o Archivo que agrega
- Hora y Día en que participará
 Programa
- Generar Agenda
 Sitio Web del Evento
- Inicio (Título, Dónde se realiza,Objetivo, A quién se dirige)
- Comité Organizador
- Participantes o Invitados
- Programa
- Contacto
Cada una de estas características se dividen en tres tablas principales de la base de
datos, que se implementan en la aplicación colaborativa, partiendo de un esquema del
modelo relacional de bases de datos, tal y como se muestra en la Fig.2.
Posteriormente, se crean las tablas con sus atributos, adjuntando el tipo de cada
uno, esto sirve para organizar los datos en un formato de filas y columnas, donde cada

171
fila representa un registro único y cada columna un campo dentro del registro, de esta
manera, fácilmente se podrá consultar la información guardada en estos registros.
Las tablas contenidas en este sistema son las siguientes:
 Tabla evento. Consta de los atributos (véase la Tabla 1): Titulo, lugar,
institución, municipio, estado, país, objetivo, organizadores y colaboradores.
En el sistema web se mostrará el nombre, ubicación y duración del evento,
dando a conocer de igual manera tanto al comité organizador como
colaboradores. Así mismo, se incluye el objetivo del evento, es decir, con qué
fines se realiza o la meta a la que se pretende llegar.

Evento

+Titulo()
+Lugar()
+Institucion()
+Municipio()
+Estado()
+Pais()
+Objetivo()
+Organizadores()
+Colaboradores()

Participante
Usuario_
+Nombre()
+Cargo() +Id()
+Grado() +Usuario()
+Nombre de la Ponencia() +Password()
+Archivo a Subir() * 1..*
+Hora()
+Dia()

Fig. 2. Esquema de la base de datos relacional.

Tabla 1. Evento.

Campo Tipo
Titulo varchar(50)
Lugar varchar(50)
Institución varchar(50)
Municipio varchar(50)
Estado varchar(50)
País varchar(50)
Objetivo varchar(50)
Organizadores varchar(50)
Colaboradores varchar(50)

 Tabla participante. Contiene los atributos (véase la Tabla 2): Nombre, cargo,
grado, nombre de la ponencia, archivo o reporte que se agregará, hora y día en
que participará. El usuario podrá registrarse en el sistema creando una cuenta
de acceso al sitio, en el formulario de registro tendrá que llenar cada uno de los
campos mencionados, agregando el nombre de la ponencia y adjuntando un
archivo de acuerdo al evento en el que participará, por lo general se trata de un
reporte o en otros casos un Currículum Vitae.
 Tabla usuario. Permitirá el control del sistema web, los únicos que podrán
entrar a modificar los eventos y a publicarlos al sitio serán los administradores.
Incluirá los campos: Id, Usuario, Password (véase la Tabla 3).

Tabla 2. Participante.
Campo Tipo
Nombre varchar(50)
Cargo varchar(50)
Grado varchar(50)
Nombre de la Ponencia varchar(50)
Archivo a subir varchar(50)
Hora int(4)
Día date

Tabla 3. Usuario.

Campo Tipo
Id int(11)
Usuario varchar(50)
Password varchar(50)

Además, el sistema contendrá una agenda para que los participantes registren el día
y la hora de su participación dentro de las fechas establecidas de duración del
evento;así se reserva debidamente su lugar en algún evento de los publicados por
dichaaplicación.

13.2 Elementos de la Vista

La creación de las interfaces de usuario de la aplicación, se fundamentó en generar


unos bocetos de las mismas en Balsamiq, de tal manera, que fuese posible analizar los
escenarios y las distintas funcionalidades que éstos pueden ofrecer. En este proyecto,
se crearon diferentes escenarios para cada rolconforme a la estructura organizacional
del grupo establecida por la metodología. Con ayuda de WAMPServer version 2.0 se
creó un entorno de desarrollo web,permitiendo tener un servidor propio o host local.
En la Fig.3, semuestra un escenario simulado de lo que podrá ver el usuario
invitado al ingresar por primera vez al sitio web, ya que esteserá el entorno principal
donde se mostrará el evento del día con sus respectivas características queserán lo
más importante de la página principal.
Para que el usuario pueda desempeñarel rol de participante deberá ingresar a la
parte de registro y llenar los datos que se muestra en la Fig.4, con estos datos será
aceptado como participante y así el rol administrador podrá verificar la información
de los usuarios que tendrá registrados en la aplicación.
Para que el evento este registrado existe el usuario administrador, en la Fig.5 se
muestra la simulación del entorno que se mostrará a un usuario registrado cuando
quiera acceder a su cuenta. En esta parte, ingresará su nombre de usuario y su
contraseña para poder acceder, de esta manera podrá modificar o generar un nuevo
evento, de igual forma este entorno funcionará para el rol participante, ya que cada
uno de ellos podrá ingresar de la misma forma.

173
Fig. 3. Inicio de la aplicación.

Fig. 4. Registro de un nuevo usuario.

Para generar un nuevo evento que solo el rol administrador puede realizar, es
necesario llenar un formulario que contendrácaracterísticas específicas del evento,
como se muestra en la Fig. 6, en esta simulación se presentan las características
queserán almacenadas de cualquier evento que se registre, así como también se
muestra las acciones que podrá realizar el usuario administrador.
Fig. 5. Ingresar a cuenta personal.

Fig. 6. Crear nuevo evento.

De acuerdo con lo anteriormente mencionado, se muestran las diferentes vistas de


la aplicación colaborativa para cada tipo de usuario y de esta manera el evento pueda
ser publicado.
En la Fig. 7,se muestra la interfaz principal del sistema, donde se puede encontrar
un menú que ofrece distintas opciones al usuario, referentes a eventos académicos en
los cuales podría participar.

175
Fig. 7. Interfaz principal del sistema web.
En la Fig.8, el usuario crea una cuenta para tener acceso al sistema, registrando sus
datos, se le pedirá que ingrese un nombre de usuario, un correo electrónico donde le
llegará una confirmación de que ha quedado registrado en el sistema, ademásde
información relevante acerca de los eventos de la Facultad de Ciencias de la
Computación (FCC), y su contraseña para tener seguridad en su cuenta.

Fig. 8. Interfaz deregistro de usuarios.

La Fig.9, muestra la plantilla de registro del participante, donde llenará cada campo
con los datos correspondientes, tales como su nombre,responsabilidad(invitado o
participante), grado de estudios, nombre del trabajo que presentará o nombre de la
ponencia que impartirá, en el espacio de adjuntar archivo se pondrá algún tipo de
reporte del mismo proyecto que mostrará, o en otros casos tendrá que subir
documentos de distinto tipo como un currículum vitae, así mismo pondrá el día y la
hora en la que puede exponer dicho proyecto, cabe mencionar que tendrá que cumplir
las fechas establecidas del evento mostradas en un calendario.

Fig. 9. Interfaz de registro de participante.

En la Fig.10, se muestra la ventana de inicio de sesión donde se valida a los


usuarios registrados en el sistema, de esta manera acceden a su cuenta personal y se
registrana un evento.
En la Fig. 11, se muestra el calendario de eventos a los cuales los usuarios podrán
acceder, para localizar qué eventos se realizaran por semana, los usuarios con cuenta
personal podrán elegir el día del evento y registrar la fecha de participación. Para
elegir la fecha del evento se utilizó PHP [21].

177
Fig. 10. Inicio de sesión.

Fig. 11.Calendario de evento.

13.3 Elementos del Controlador

En esta parte, se generaron los diferentes métodos que permiten la interacción del
usuario con las distintas interfaces, así como de las mismas con el Modelo, que está
representado por la base de datos que se construyó de acuerdo a las tablas (1, 2 y 3)
especificadas anteriormente. Por ejemplo, el formulario de la Fig. 9 (interacción del
usuario con la interfaz) toda la información registrada en éste, se quedará guardada
también en la base de datos (interacción de la Vista —Interfaz de registro de
participante— con el Modelo —base de datos del sistema), de esta forma podrá
participar en cada evento que se publique.
5. Conclusiones y trabajos futuros

En este trabajo, se ha presentado una aplicación colaborativa para gestionar los


eventos académicos de la FCC, basada en un patrón arquitectónico MVC. Como una
aplicación colaborativa inherentemente web, su desarrollo ha consistido en generar
tanto el front-end como el back-end. Lo cual ha permitido desarrollar de una manera
simple y organizada una aplicación robusta, usable y responsiva. El trabajo futuro se
centrará en lograr que la aplicación se adapte a las necesidades de cada evento.

Referencias

1 Beaudouin-Lafon M.; et al.:Computer Supported Cooperative Work. Trends in Software,


John Wiley & Sons. (1999)
2 Borghoff, U.M.; and Schlichter J.H.: Computer-Supported Cooperative Work. Springer-
Verlag. (1998)
3 Ellis, C.; and Wainer, J.: A conceptual model of groupware. Proceedings of the 1994
ACM Conference on CSCW, pp. 79-88, (1994)
4 Ellis, C.A.; Gibas, S.J.; and Rein, G.L. Groupware: Some Issues and Experiences.
Communications of the ACM, Vol. 34-1, pp. 39-58, (1991)
5 Robbins, J.N.: Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript,
and Web Graphics, O'Reilly Media (2012)
6 Addy, O.: Learning JavaScript Design Patterns. O’Reilly (2015)
7 Goldberg, A.: Smalltalk-80: The Interactive Programming Environmen’t. Addison-
Wesley, (1984)
8 Modelo Vista Controlador (MVC), Universidad de Alicante, Accedido 14 de Enero de
2016 http://si.ua.es/es/documentacion/asp-net-mvc-3/1-dia/modelo-vista-controlador-
mvc.html
9 https://prezi.com/usrvr2h12bfn/sistema-de-gestion-de-eventos-7/
10 http://www.eventos.unam.mx
11 http://cele.unam.mx/eventos/index.php?seccion=registro&evento=1
12 http://159.90.80.55/tesis/000155247.pdf
13 http://eduteka.icesi.edu.co/
14 https://www.eventbrite.com.ar/blog/category/eventbrite-para-eventos/
15 https://ungerboeck.com/es/productos-de-locales
16 C.Alexander, S.Ishikawa, M.Silverstein, M.Jacobson, I. Fiksdahl-King, and S. Angel, A
Pattern Language: Towns, Buildings, Construction. Oxford University Press, New York,
NY, USA,1977.
17 C. Alexander,The Timeless Way of Building. Oxford University Press, New York, NY,
USA,1979.
18 F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal.Pattern-oriented
Software Architecture. A System of Patterns,vol. 1, John Wiley and Sons, England, 1996.
19 Anzures-Garcia, M.; Sanchez-Galvez, L.A.; Hornos, M.J.; and Paderewski-Rodriguez,
P.Facilitating the development of Collaborative Applications with the MVC Architectural
Pattern. Chapter 19 of the Book "Software Engineering: Methods, Modeling, and
Teaching, vol. 4". 2016. In press.
20 Anzures-Garcia, M.; Sanchez-Galvez, L.A.; Hornos, M.J.; and Paderewski-Rodriguez, P.:
MVC Design Pattern based-Development of Groupware. In Proccedings of the 4th
International Conference in Software Engineering Research and Innovation
(CONISOFT), pp. 71-80, (2016)
21 Anzures-Garcia, M.; Sanchez-Galvez, L.A.; Hornos, M.J.; and Paderewski-Rodriguez, P.:
A software architecture for defining a methodologic approach to develop Collaborative
Applications. Research in Computing Science: Advances in Computer Science and
Engineering, Vol. 105, pp. 9-20, (2015)
22 Pilgrim, M.: HTML5: Up and Running. Dive into the Future of Web Development,
O'Reilly Media (2010)
23 Robson, E.; and Freeman, E.: Head First HTML and CSS, 2nd Edition, O'Reilly Media
(2012)
24 Libby, A.; Gupta, G.; and Talesra, A.: Responsive Web Design with HTML5 and CSS3
Essentials, Packt Publishing (20016)
25 Schmitt, C.: CSS Cookbook, 3rd Edition, O'Reilly Media (2009)

179
26 Osmani, A.: Learning JavaScript Design Patterns. O'Reilly (2015)
27 Flanagan, D.: JavaScript: The Definitive Guide, 6th Edition, O'Reilly Media (2011)
28 Crockford, D.: JavaScript: The Good Parts. O'Reilly (2008)
29 Duckett, J.: JavaScript and Jquery: Interactive Front-End Web Development, John Wiley
& Sons, Inc. (2014)
30 Schwartz, B.; Zaitsev, P.; and Tkachenko, V.: High Performance MySQL, 3rd Edition,
O'Reilly Media (2012)
31 Forta, B.: MySQL Crash Course, SAMS (2005)
32 Ullman, L.: PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide, 4th
Edition, Peachpit Prees (2012)
33 Ullman, L. PHP for the Web: Visual QuickStart Guide, 4th Edition, Peachpit Prees (2011)
Interfaz para el Lenguaje de Señas

Miguel Vázquez-Vázquez, Luz A. Sánchez-Gálvez, Mario Anzures García


Facultad de Ciencias de la Computación, Benemérita Universidad Autónoma de Puebla
14 sur y Av. San Claudio, Ciudad Universitaria Col. San Manuel. Puebla, México.
mvk_12@oulook.com, lgalvez@cs.buap.mx, anzures@cs.buap.mx

Resumen. El Lenguaje de Señas es un medio dedicado a establecer un canal de


comunicación con personas sordas.El presente proyecto se centra en el
desarrollo de una interfaz computacional, que permita interpretar de manera
visual las diferentes configuraciones de la mano. Para su elaboración, se ha
utilizado el dispositivo de interfaz natural Kinect, el cual permite capturar el
mundo real utilizando sensores de imagen e infrarrojo. Dada la amplitud del
proyecto, en esta primera etapa se dedica a analizar la estructura del lenguaje de
señas mexicano para plantear un algoritmo de interpretación, aprovechando las
características de las interfaces naturales del usuario. Esta estrategia permitirá
que el sistema pueda ser adaptable a los diferentes elementos gestuales del
lenguaje.
Palabras Clave: Sordomudo, sordo, discapacidad auditiva, lenguaje de señas,
lenguaje de signos, Interfaz Natural de Usuario, Kinect, SkeletalTracking,
Depth Image.

14 Introducción

De acuerdo con las estadísticas del Censo de Población y Vivienda 2010 (INEGI),
existen 5 millones 739 mil personas en el territorio nacional que declararon tener
dificultad para realizar al menos una de las siete actividades siguientes: caminar,
moverse, subir o bajar; ver, aun usando lentes; hablar, comunicarse o conversar; oír
aun usando aparato auditivo; vestirse, bañarse o comer; poner atención o aprender
cosas sencillas; así como limitación mental. Esta cifra representa 5.1% de la
población total del país, de la cual, el 12.1% tiene problemas para escuchar y 8.3%
para hablar o comunicarse [1]. El presente documento es un enfoque basado en el
sector de la comunidad que tiene la dificultad de hablar y comunicarse por un
impedimento físico, en este caso la comunidad sorda.
Según el diccionario de la Real Academia Española, se define como sordomudo(a):
Dicho de una persona que es sorda de nacimiento y que padece por ello graves
dificultades para hablar mediante la voz [2]. Sin embargo, esta condición física no
representa un impedimento para poder ejercer una interacción social con los demás.
La genialidad del ser humano para poder expresar un mensaje en diferentes formas
hacia los que le rodean es una característica digna de ser estudiada.

Uno de los instrumentos utilizados por la comunidad sorda para poder comunicarse
con los demás integrantes de su entorno es el “Lenguaje de Señas”, que consiste en un
conjunto de configuraciones gestuales representativas, permitiéndole expresar
palabras, ideas o frases, de acuerdo a un contexto y lingüísticodeterminado. Este
artículo, presenta un análisis para el desarrollo de una interfaz que permita reconocer
el Lenguaje de Señas Mexicano.

El documento se encuentra organizado de la siguiente manera: En la Sección 2, se


describe el Lenguaje de Señas con los elementos que forman parte de su estructura.
En la Sección 3, se presentan los trabajos relacionados. En la sección 4,sedetallan las

181
Interfaces Naturales de Usuario, poniendo énfasis en el dispositivo Kinect de la
compañía Microsoft. En la Sección 5 se establece un análisis de la información
recolectada para proponer un diagrama de estados que represente de manera general
el uso del lenguaje, y con ello se permita establecer un vínculo más cercano a una
implementación con el usode las interfaces naturales de usuario. Por último, en la
Sección 6 se precisan las conclusiones y trabajofuturo.

15 El Lenguaje de Señas.

El Lenguaje de Señas, como es propiamente conocido en México, permite establecer


un canal de comunicación con las personas sordomudas. Una persona sorda, muda o
con ambas condiciones, cuya incapacidad de comunicación se deba por causas
fisiológicas o psicológicas, no puede expresarse mediante la lengua hablada ni escrita
y se ve limitado.

2.1. Historia.

Los orígenes de los lenguajes corporales para comunicación se remontan a las formas
estandarizadas de las lenguas de señas usadas en España, Italia y Francia durante el
siglo XVIII para la educación de los sordos. De los antecedentes en México, se
encuentra la creación de la Escuela de sordomudos, además de la fundación de la
Escuela Nacional de Sordomudos. Ambas escuelas fueron creadas por decreto
presidencial. Fue el 15 de abril de 1861 cuando Benito Juárez, quien era Presidente
Interino Constitucional de los Estados Unidos Mexicanos, decreta una Ley de
Instrucción; en el apartado correspondiente De la Instrucción Primaria en la cual
señala, según el artículo tercero, la creación de una escuela de sordomudos. Entre los
objetivos que tenían en esta escuela se encontraban la enseñanza del español tanto en
forma escrita como expresada por medio del alfabeto manual, o de forma oral en caso
de que hubiera “aptitud para ello en el discípulo” [3].
Haciendo referencia a tiempos más recientes, existía la confusión acerca de que el
sistema de lenguaje de señas era universal radicadas en el desconocimiento de la
estructura del mismo lenguaje.Sin embargo,en la realidad existen diferencias de
acuerdo a la región en la que se hace uso de este lenguaje, el documento Lenguaje de
signos mexicano: la identidad como lenguaje del sistema de signos mexicano [4] se
expresan dos premisas importantes acerca de las similitudes que forman parte de este
dilema. Primero, muchos de los lenguajes de signos de América Latina que fueron
implementados son producto de los esfuerzos de misioneros norteamericanos o de
personal del Departamento de Sordos del Cuerpo de Paz de los Estados Unidos. La
segunda razón, de acuerdo con la historia es proporcionada por la comunidad sorda,
ambos lenguajes se derivan del antiguo lenguaje de signos francés, que fue traído a
los Estados Unidos y a México con una diferencia de aproximadamente 50 años: a los
Estados Unidos en 1816 y a México alrededor de 1869. Aunque ambos países ya
tenían personas sordas que usaban señas, éstas se incorporaron al nuevo lenguaje y
con el paso del tiempo se complementaron y adaptaron ampliamente de acuerdo a la
situación existente en cada país.
Como objeto de análisis, en ese mismo documento[4] se abarca un estudio
extenuante acerca de las similitudes entre el Lenguaje de Signos Americano
(American Sign Language,ASL) y la Lengua de Señas Mexicana (LSM), dentro de los
que figuran los modismos, significados discrepantes de acuerdo al contexto y algunos
términos del habla común. [4].
2.2. La estructura del lenguaje.

La Lengua de Señas Mexicana (LSM) consta de signos visuales con estructura


lingüística propia con la que se pueden articular los pensamientos y emociones,
permitiendo satisfacer las necesidades comunicativas así como desarrollar
capacidades cognitivas al máximo, todo ello mientras interactúan con el mundo que
les rodea.
Durante este proceso de comunicación son realizadas diferentes configuraciones
manuales y gestuales dirigidas primordialmente con la mano dominante del usuario,
es decir, si la persona es diestra realiza los movimientos principales con la mano
derecha; si es zurda, se usa la mano izquierda. Cuando se realizan señas con ambas
manos, la mano dominante siempre hace los movimientos principales y la otra mano
le sirve de apoyo. Aunque existen otras ocasiones en que ambas manos ejecutan el
mismo movimiento [5].
En modo general, el LSM se compone de dactilologías e ideogramas. En la
dactilología –que sería considerada como un homólogo al deletreo en el lenguaje
hablado, donde se utilizanlos fonemas de las grafías del abecedario–, cada seña
representa a una letra del abecedario español (véase las Fig. 1 y 2). En la
ideogramática,el significado de las señas realizadas corresponde a la representación
de una palabra, frase, idea o acción (véase la Fig. 3). Las señas establecidas bajo este
criterio dependen en gran medida al orden de ejecución, misma que puede ser descrita
con una o varias configuraciones de mano, por lo que se hace énfasis en la existencia
de reglas para la denominación de género, pluralismos, tiempos verbales,
ymetodologíasde comunicación [5]. Por ello es que los ideogramas permiten que el
practicante de la lengua tenga mayor expresión y control, todas ellas bajo el contexto
del mensaje a transmitir.

Fig. 1 Conjunto de gestos dactilológicos del lenguaje de señas mexicano [6].

Fig. 2 Representación dactilológica de la palabra ‘MAMÁ’ [5].

183
Fig. 3 Ideograma de la palabra “MAMÁ”. Nótese la colocación de la letra m sobre la
barba, tocándola con el dorso de los dedos, y la golpea ligeramente[5].

Esta clasificación mostrada es solo una parte de la estructura básica del lenguaje que puede
ser aprendida a través del uso del diccionario de señas [5]. Para mayor informaciónde la
estructura del lenguaje es posible consultar la tesis de la Dra. Miroslava Cruz Aldrete llamada
“Gramática de la Lengua de Señas Mexicana” [7].

16 Trabajos Relacionados

En esta sección se presenta la investigación realizada acerca de las propuestas de


solución endesarrollo o implementación en el área del lenguaje de señas con el fin de
obtener características fundamentales, las tecnologías utilizadas así como el enfoque
en torno a la solución presentada en cada una de ellas.

3.1. HeTAH

En Colombia, la fundación HeTAH (Herramientas Tecnológicas para Ayuda


Humanitaria) realizó una aplicación web que funciona como un intérprete del
lenguaje escrito al lenguaje de señas [8]. Esta herramienta proporciona una interfaz en
la cual se le permite al usuario ingresar el texto a traducir. El sistema genera la
secuencia de señas requeridas para expresar el texto introducido con el apoyo de un
modelo visual dentro de la interfaz. La herramienta basa su interpretación a través de
un catálogo inicial de señas relacionado a un diccionario de palabras y estos son
procesados a través de la implementación de técnicas de inteligencia artificial, según
lo relata el autor. [8]
El proyecto cuenta con actualización de un avatar en tres dimensiones del cuerpo
humano. También, tiene un apartado que le permite utilizar la cámara web de la
computadora para comunicarse con el sistema, de tal manera que el usuario pueda
ingresar sus movimientos. El catálogo de señas en el cual se basa su traducción es
aplicable para el lenguaje español originario de ese país e incluso permite ingresar
datos lenguajes de otras regiones del continente americano. Sin embargo, la riqueza
del catálogo de datos para el español de México está muy limitado, por lo que no se
puede asegurar que la traducción sea precisa. [8]
3.2. M.I.M.O.

El proyecto M.I.M.O fue desarrollado por un grupo de programadores argentinos,


quienes realizaron pruebas con un dispositivo que interpretaba visualmente los gestos
del usuario [9] [10]. El punto de apoyo en este dispositivo consiste en la posibilidad
de que un usuario del lenguaje de señas pueda enviar un mensaje y este deba ser
entendido por otro usuario que no tuviese conocimiento del lenguaje, realizando la
conversión del mensaje a un medio auditivo.
El punto clave de este prototipo consiste en la posibilidad de dar seguimiento de
los movimientos del cuerpo humano, suministrando un significado a los mismos, de
acuerdo a la estructura del lenguaje de señas.

3.3. Prototipo en la UNLaM.

Un grupo de cinco estudiantes argentinos de la carrera en Ingeniería de la Universidad


de La Matanza (UNLaM) creó Onis [11], un software para el sistema operativo
Windows para la comunicación con los usuarios del lenguaje de señas. El sistema
aprovecha las características que proporciona el dispositivo Kinect, en este caso la
cámara y el seguimiento de extremidades, para reconocer el conjunto de señas y
movimientos de las extremidades y el resultado de la interpretación es mostrado en la
pantalla principal del software.
Estesistema cuenta con varias funciones de uso. La primera es un traductor donde
el usuario realiza una seña, el sistema procesa el movimiento y registra la salida de la
interpretación mostrando el texto correspondiente en pantalla. El segundo modo
permite al usuario construir el mensaje mediante un deletreo, esto es, el usuario
selecciona la seña a utilizar, posicionando la mano encima del dibujo representativo
en el lenguaje de señas, correspondiente a cada una de las letras que componen a las
palabras a transmitir. Una tercera funcionalidad corresponde a un módulo de chat
básico para la comunicación entre los usuarios.
Los desarrolladores hicieron énfasis en que el presente desarrollo requirió de un
análisis matemático adicional para el tratamiento de los movimientos de los dedos, los
cuales no pueden ser procesados por el Kinect. Para obtener los resultados de frases
más completas, el sistema hace uso de un catálogo de señas del lenguaje de señas
argentino (LSA).

3.4. Kinect Sign Language Translator.

En China, a través de Microsoft Research Connections, China Academy of Sciences,


Beijing Union University en conjunto con Microsoft Research Asian, comenzaron en
el año 2012 el desarrollo de un prototipo de reconocimiento de señas chinas,
utilizando la capacidad de reconocimiento visual-espacial del Kinect [12].
El proyecto basa su funcionamiento en dos modos principales: El modo de
traducción, que permite reconocer las configuraciones manuales de un usuario del
lenguaje de señas y corresponder a su significado en modo texto o con sonido. El
modo de comunicación, en el cual el sistema reconoce lo que un usuario dice
verbalmente y lo traduce a modo escrito. En ambos modos de trabajo, se utiliza como
apoyo un modelo de avatar en 3D que va describiendo los movimientos que un
usuario del lenguaje de señas debe realizar u observar [13] [14]. En este esquema, el
equipo multidisciplinario de desarrollo centró los resultados en la interpretación del
lenguaje de señas chino y el lenguaje de señas americano.

185
3.5. DIELSEME y DIELSEME 2.

La Secretaria de Educación Pública (SEP) tiene como meta brindar educación a todos
los niños,en especial a aquellos con discapacidades físicas con el fin de evitar
discriminación. La SEP cuenta con programas de enseñanza del lenguaje de señas que
pueden ser accesibles a través de su sitio web.
Ente algunas opciones que se encuentran disponibleson un diccionario para la
enseñanza, así como un programa didáctico en formato de CD disponible para el
profesor,de manera que el material sirva de apoyo para asistir al alumno[15]. El
material didáctico proporcionado muestra ejemplos de señas, las cuales son apoyadas
con videos, que proporcionan el significado tanto escrito como con los movimientos
de señas.
Este tipo de material resulta de gran ayuda, para usuarios que están comenzando a
comprender la estructura del lenguaje de signos, dado que los ejemplos visuales que
proporciona el software son completamente ilustrativos y relacionados con
actividades cotidianas, tanto personales como escolares.

17 Interfaz Natural de Usuario (NIU)

Una Interfaz Natural de Usuario (Natural User Interface, —NIU) es un dispositivo


que permite al usuario interactuar con un sistema del mismo modo que lo haría en su
ambiente natural. El significado de la palabra natural se refiere a un objetivo en la
experiencia del usuario, en la cualsiente y/o manipula de manera natural mientras
interactúa con la tecnología,realizando gestos y movimientos de las extremidades del
cuerpo requeridos para comunicarse. [16]
Una NUI se basa en que un usuario puede rápidamente hacer la transición de
principiante a experto el uso de un sistema que implique la utilización de estos
dispositivos debido a que es más fácil interactuar con medio que se encuentre
familiarizado con su entorno usando un lenguaje conocido, lo cual resulta ser mejor
que otras interfaces de computadora que utilizan dispositivos artificiales o físicos de
control, cuyo funcionamiento tiene que ser aprendido por el individuo [17].Este tipo
de tecnología permite que un equipo de cómputo pueda reconocer un conjunto más
variado de diferentes mandos que el usuario quiera expresar de un modo más simple y
eficiente.

4.1. Sensor Kinect

Uno de los dispositivos más comunes que permite interpretar los movimientos
kinestésicos del cuerpo del ser humano es el Kinect Sensor [18]. Este es un
dispositivo físico que contiene cámaras, micrófonos para el procesamiento de
imágenes del ambiente natural del usuario. Utiliza la tecnología de cámara de
profundidad desarrollada por la compañía israelí PrimeSense, actualmente absorbida
por la compañía Apple en noviembre de 2013[19].

Un Sensor Kinect está compuesto por:


 Una cámara RGB. Almacena una imagen a color usando tres canales de
información con una resolución de hasta 1280x960 pixeles.
 Un emisor infrarrojo y un sensor infrarrojo. El emisor manda una señal y el
rebote es captado por el sensor, lo que le permite calcular la distancia de
profundidad entre el objeto reflejado y el sensor.
 Un conjunto de 4 micrófonos. Permiten capturar el sonido existente del ambiente
desde diferentes ángulos de colocación.
 Un acelerómetro de tres ejes, el cual puede ser utilizado para determinar la
posicion7 actual del dispositivo

4.2. Kinect SDK

Para manipular el dispositivo, la compañía de Microsoft brindó el Kinect SDK (Kinect


Software Development Kit) o Conjunto de Herramientas de Desarrollo de Software
para Kinect[20], el cual comprende de un conjunto de librerías de fácil integración
con los lenguajes de programación C++, C# y .NET, aunados al entorno de desarrollo
integrado Microsoft Visual Studio. Combinando estas herramientas es posible
desarrollar de aplicaciones tanto de escritorio como aplicaciones web posibilitan la
recolección de información de los movimientos del usuario que se encuentre en el
alcance del dispositivo. Este SDK está diseñado específicamente para crear
aplicaciones únicamente compatibles con el sistema operativo Microsoft Windows.
El dispositivo Kinect ofrece diferentes funcionalidades a través de estas librerías.
Una de ellas se conoce comoSkeletal Tracking [21], que permite dar seguimiento a las
articulaciones del cuerpo humano, generando un esqueleto virtual durante el proceso
de ejecución. El Kinect SDK v1.8 permite reconocer 20 joints o uniones del cuerpo
humano tal y como se puede observar en la Fig. 4.

Fig. 4Articulaciones del cuerpo humano (Joints) reconocidas por el Kinect [18].

Otra funcionalidad que el Kinect ofrece es la creación de imágenes de profundidad


(Depth Image) [22] gracias al emisor y sensor de señales infrarrojas, logrando generar
una imagen representativa de la posición de los objetos más cercanos a la posición del
Kinect. Cada pixel de la imagen tiene una correspondencia en milímetros de la
distancia que ha sido censada por el emisor infrarrojo del dispositivo. La imagen
resultante contiene un solo canal de información para su visualización. Con estos
sensores es posible identificar el número de usuarios dentro del rango de
reconocimiento del dispositivo. La implementación de cada uno de estos elementos
pueden observarse a través de los diferentes videojuegos creados por la empresa para
la consola de videojuegos Xbox.

187
18 Desarrollo

Referenciando al contendido de la sección dos, la cual nos describe parte de la


estructura del lenguaje de señas, se puede identificar una característica fundamental y
que hace que este instrumento de comunicación sea rico para transmitir cualquier
mensaje. La estructura del lenguaje tiene una gran flexibilidad para representar
información con las diferentes configuraciones gestuales, por lo que es necesario
abordar la temática usando distintos puntos de vista. Como primer acercamiento, se
procede a analizar la dactilología para plantear un algoritmo base y sobre este generar
las modificaciones pertinentes para el caso de estudio de la ideogramática. Esta forma
inicial permitirá plantear futuras estrategiasque permitan abordarde manera sosiega
hacia una propuesta más amplia y en su defecto, plantear nuevos métodos para
enlazar cada una de las configuraciones del usuario; todo ellos para desplegar el
significado y/o interpretación correspondiente.

5.1. El proceso del deletreo

Como punto de entrada se debe analizar el funcionamiento del deletreo en el lenguaje


oral y escrito. El algoritmo 1 planteado describe a manera general este proceso. Una
persona realiza esta actividad de este modo: inicialmente se tiene una palabra la cual
identifica la composición en caracteres o fonemas. Durante una conversación, los
caracteres de la palabra son expresados uno por uno de manera iterativa y
consecutiva. El receptor del mensaje identifica los fonemas recibidos y los
correlaciona al mismo conjunto del que tiene conocimiento, reconstruyendo durante
este proceso la palabra que ha sido transmitida.

Algoritmo 1. Comportamiento expresivo de un usuario de deletreo oral.


1. Inicio.
2. Preparar Palabra.
3. Variable índice: Primer carácter en la palabra
4. Repetir
4.1. Tomar carácter en el índice.
4.2. Pronunciar sonido fonético del carácter.
4.3. Mover índice a la siguiente posición del carácter.
4.4. Regresar a 3 si existen más caracteres.
5. Terminar.

El diagrama de estados de la Fig.5 muestra cómo es posible adaptar el contenido


del algoritmo anterior. Una vez que un individuo realiza una seña correspondiente del
lenguaje, ésta será procesada para que el sistema pueda compararla dentro de un
conjunto del catálogo de señas, el cualestará conformado por los patrones de
movimiento, y así obtendrá el carácter asociado que el individuo está precisando
transmitir.
Fig. 5 Diagrama del algoritmo planteado para la interpretación de dactilologías.

Para este catálogo de dactilologías es requerido enfocar la distribución de cada una


de estas señas. El abecedario del lenguaje español comprende con un total de 27
letras, mismas existentes dentro del LSM. Sin embargo, algunas de estas señas
difieren ligeramente poco por la posición de los dedos, por lo que es posible agrupar
los parentescos entre señas.
Las letras S y T las cuales presentan un patrón semejante al puño cerrado. Las
letras C y O se asemejan al grupo anterior pero el centro de la mano contiene abierta
la parte central del puño. A y L solo difieren por la posición del dedo índice. M, N y
Ñ presentan una disposición frontal de la palma. D, F, P, R con una disposición de los
dedos levantados. Las letras U, V, W cumplen el mismo criterio anterior, aunque estas
últimas solo difieren por una separación relativa de los dedos índice, medio y anular. I
y J son expresadas con la misma seña, con la diferencia radical del movimiento
adicional que se le brinda a la letra J. Las letras que no forman parte de los grupos
anteriores son Y, E y B. Las letras que requieren de más de un movimiento para ser
expresadas son J, K, Ñ, Q, X y Z. Refiérase a la referencia [5] consultada para
observar estos cambios.
Estas letras requieren, siguiendo el proceso de categorización, en ser
descompuestas en un conjunto de sub-gestos de manera que el algoritmo planteado en
la figura 4 le permita captar solo la posición de la mano. Tomando como ejemplo la
letra J, esta puede ser diseñada como un conjunto de sub-señas J1, J2 y J3, en la cual,
dependiendo de la posición actual de la mano y comparando la seña realizada con
anterioridad permita adelantarse al significado. Figure la modificación de esta lógica
en los estados “Búsqueda en Catálogo” y “Resultado” de la Fig. 5 en el sub-diagrama
de estados de la Fig.6.

189
Fig. 6. Adaptación de la búsqueda en catalogo para el análisis de dactilologías.

Al realizar esta separación permitirá definir un conjunto más reducido de


búsqueda. De este modo, tenemos diferentes asociaciones de señas, por lo que al
momento de realizar una búsqueda solo se refiera a la localización general de la seña
y después particularizar en las diferencias. Esta disposición permite interpretar las
señas que necesitan más de un movimiento a través del estado “Temporal”, donde se
asignará el posible valor de la seña de acuerdo al estado en el tiempo del gesto. Con
esta agrupación, el siguiente paso será definir un formato de almacenamiento de
acuerdo al lenguaje de programación utilizado.

5.2. Enfoque en la ideogramática.

Haciendo un comparativo en el lenguaje escrito, se puede hacer la comparativa a la


estructura una oración escrita. Estaoración está compuesta por tres partes
fundamentales: sujeto, verbo y predicado. Para el caso de la interpretación de
ideogramas, es necesario realizar algunas modificaciones que permitan construir las
oraciones del lenguaje de señas.
El diagrama de la Fig. 7muestra las adaptaciones realizadas con respecto a la
máquina de estados de la figura 5. El procesamiento establecido para la captura de
movimiento permanece invariante pero se añade un estado más llamado “Analiza”
enel cual, bajo ciertos criterios tomados de las reglas de sintaxis del LSM, elegirá la
mejor opción del significado que deba ser agregado a la interpretación. De este modo
se podrá construir la frase que el individuo desee expresar.
Fig. 7 Adaptación del diagrama 4 para interpretar ideogramas del lenguaje de señas.

Todas estas reglas mencionadas deberán ser cuidadosamente estudiadas dado que
la riqueza del lenguaje de señas que ofrece para brindar significados o
interpretaciones. Un ideograma también se ve clasificado de acuerdo a la posición
física de las manos y brazos, que al contrario de las dactilologías, la mayoría de estas
últimas son representadas mientras la mano dominante permanece en una posición fija
con respecto al tiempo. Estas características representan datos variables que deben
tomarse en consideración para mejorar la técnica de análisis propuesta. Así que si se
parte del hecho de que puedan existir diferentes significados de acuerdo a una
situación, contexto o lógica dada. Otra variable en torno a esta parte del lenguaje son
los ideogramas inicializados.
Los ideogramas inicializados son un ejemplo de señas cuya característica
primordial es que su presentación es requerido realizar la dactilología correspondiente
a la primara letra de la palabra a expresar [15]. Estas señas son particularmente
especiales gracias a que esta estructura inicial la implementación de los diversos
ideogramas, dado que al tener una base de inicialización, es posible crear un
diccionario inicial de ideogramas inicializados tomando como base el diagrama de
estados de las dactilologías. En el LSM, una gran parte de las señas existentes son
inicializadas con una dactilología.

5.3. Detalles de implementación

Como es mencionado en apartados anteriores, el lenguaje realiza un uso amplio del


movimiento de las extremidades del cuerpo humado, llámese brazos, manos y dedos.
La NIU presentada ha sido utilizada en diversos contextos de desarrollo, como por
ejemplo la manipulación de imágenes de un museo virtual [19]. Aunque es mínima la
cantidad de movimientos utilizados para este sistema, el desarrollo del planteamiento
de solución en la detección de patrones de movimiento refleja que es necesario
recurrir al uso de técnicas de inteligencia artificial. El ejemplo del uso redes
neuronales para el reconocimiento de patrones representa un enfoque inicial para dar
cabida a la implementación de los algoritmos planteados.
Otro detalle a considerar son las capacidades del Kinect no son completamente
satisfactorias para implementar un solución. El prototipo elaborado por la UnLAM
[11] hacen énfasis en que la primera versión del dispositivo Kinect no permite dar
seguimiento completo de los movimientos de los dedos, los cuales son una parte
fundamental en la expresión del lenguaje y el equipo de desarrollo se basó en el
desarrollo de la lógica matemática adicional para capturar el movimiento de los
dedos.

191
Este impedimento también puede ser abordado con el uso de los sensores de
dispositivo. Esta tarea puede ser explorada del lado de procesamiento de imágenes
con la cámara RGB, también las características de censado de profundidad que trae
consigo el Kinect resultan de gran utilidad para mapear de forma más exacta la
posición de la extremidades.

19 Conclusiones y trabajos futuros

Se realizó una investigación incluyente a las referencias iniciales del lenguaje de


señas, así como la teoría e información referente a los proyectos y/o prototipos
existentes del lenguaje de señas, centrándose en el Lenguaje de Señas Mexicano. Con
esta información, fue posible deducir que es posible abordar esta área con el uso de
interfaces naturales de usuario.
Al analizar las tecnologías relacionadas se pudo concluir que es necesario una
interfaz usuario natural que comprenda tanto las dactilologías e ideogramas. Por tanto,
este proyecto contempla una propuesta utilizando el Kinect, que permite dar
seguimiento a los movimientos del cuerpo humano gracias al uso de la herramientas
de desarrollo oficiales, ofreciendo la oportunidad de comunicarse de manera simple y
dinámica, es decir, proporcionando una interfaz natural que se adapta al usuario.
Se realizó un análisis inicial de la estructura del lenguaje de señas, de manera que
se encontraran estructuras que ayuden a cimentar las primeras ideas para la
implementación. El resultado de ello es la creación de un algoritmo a modo de
máquina de estados de manerasimple y compacta. Esta podrá modificarse de modo
iterativa de acuerdo al avance en el desarrollo del sistema para el procesamiento de
los movimientos de los brazos, manos y dedos del cuerpo humano.
Para trabajo futuro, se requiere estudiar técnicas de reconocimiento de patrones que
puedan ser adaptados a esta necesidad y consigo trabajar en una implementación más
robusta de reconocimiento de gestos a fin de organizar de manera eficaz el proceso de
interpretación, primordialmente realizando un énfasis en el algoritmo del
procesamiento de la ideogramática al conjuntarla mayor o mejor cantidad de reglas
del LSM.En recalco a la tecnología utilizada, es preciso señalar que no representa el
único medio o dispositivo que desea probarse, por lo que se estarán analizando
alternativas adicionales de hardware.

Referencias

1. Instituto Nacional de Estadística y Geografía (INEGI): Las personas con discapacidad en


México, una visión al 2010.
http://www3.inegi.org.mx/sistemas/biblioteca/ficha.aspx?upc=702825051785 (2013).
Accedido el 16 de marzo del 2016.
2. Real Academia Española; Diccionario de la Lengua Española. Sordomudo(a).
http://dle.rae.es/?id=YPzjN82 . Accedido el 22 de septiembre de 2016.
3. Miroslava, M.; Cultura Sorda: La educación del sordo en México siglos XIX y XX: La
Escuela Nacional de Sordomudos. http://www.cultura-sorda.org/la-educacion-del-sordo-
en-mexico-siglos-xix-y-xx-la-escuela-nacional-de-sordomudos/ (2009). Accedido el 24
de septiembre del 2016.
4. Karla Faurot; Dianne Dellinger; Andy Eatough; Steve Parkhurst: El Instituto Lingüístico
de Verano en México. The identity of Mexican sign as a language.
http://www.mexico.sil.org/es/resources/archives/9069 (1999). Accedido el 26 de marzo
de 2016.
5. Consejo Nacional para Prevenir la Discriminación (CONAPRED): Manos con Voz.
Diccionario de Lengua de Señas
Mexicana.http://www.conapred.org.mx/documentos_cedoc/DiccioSenas_ManosVoz_AC
CSS.pdf. Accedido el 20 de febrero de 2016.
6. Asociación de Sordos de Jalisco AC: Lenguaje de Señas Mexicana.
http://asocsordosjalisco.galeon.com/aficiones1804145.html. Accedido el 20 de febrero de
2016.
7. Cultura Sorda: Catálogo por Autor; Cruz Aldrete, M. http://www.cultura-
sorda.org/category/autores/a-c/cruz-aldrete-m/. Accedido el 20 de febrero de 2016.
8. Herramientas Tecnológicas para Ayuda Humanitaria (HeTAH):
Traductorhttp://www.hetah.net/traductor. Accedido el 16 de marzo de 2016.
9. Thunderclap: Proyecto MIMO. https://www.thunderclap.it/es/projects/7512-proyecto-
mimo Accedido el 16 de marzo de 2016.
10. YouTube: Proyecto MIMO. https://www.youtube.com/watch?v=44OYb7sS9M4.
Accedido el 16 de marzo de 2016.
11. . D'Agostino, A.: Red Users, Estudiantes crean un sistema con Kinect para traducir el
lenguaje de señas argentino. http://www.redusers.com/noticias/estudiantes-crean-un-
sistema-con-kinect-para-traducir-el-lenguaje-de-senas-argentino (2013). Accedido el 28
de febrero de 2016.
12. Microsoft Research Connections: Kinect Sign Language Translator expands
communication possibilitieshttp://research.microsoft.com/en-
us/collaboration/stories/kinectforsignlanguage_cs.pdf.Accedido el 28 de febrero de 2016.
13. Microsoft Research Blog: Kinect Sign Language Translator. Part 1.
https://www.microsoft.com/en-us/research/blog/kinect-sign-language-translator-part-1/.
Accedido el 15 de agosto del 2016.
14. Microsoft Research Blog: Kinect Sign Language Translator. Part 2.
https://www.microsoft.com/en-us/research/blog/kinect-sign-language-translator-part-2/.
Accedido el 15 de agosto del 2016.
15. Secretaría de Educación Pública (SEP): DIELSEME 2.Diccionario de Legua de Señas
Mexicana.
http://educacionespecial.sepdf.gob.mx/escuela/documentos/publicaciones/DIELSEME.pd
f. . Accedido el 29 de febrero de 2016.
16. Qbit México Blog: Blog del equipo de desarrollo de software en Qbit Mexhico. Natural
User Interface (NUI).http://qbit.com.mx/blog/2012/03/02/nui-natural-user-interface/.
Accedido el 20 de febrero de 2016.
17. Pacheco, F.; Salvo, J.; Wangnet, R.; Cerda, G.; Vidal, J.: Diseño Centrado en el Usuario
para Sistemas con Interfaces Naturales de Usuario.
http://www.revistaakademeia.cl/wp/wp-content/uploads/2014/04/05_DIS1.pdf. Accedido
el 29 de febrero de 2016.
18. Microsoft Robotics: DSS Interop and Device Samples C#. Kinect Sensor.
https://msdn.microsoft.com/en-us/library/hh438998.aspx. Accedido 25 de abril de 2016.
19. Hernández, E.: Universidad Tecnológica de la Mixteca. Reconocimiento de Gestos de la
mano aplicado al desarrollo de una interfaz Kinect para el museo regional de Huajapan
(MureH).http://jupiter.utm.mx/~tesis_dig/12556.pdf. Accedido el 25 de abril del 2016.
20. Microsoft: Developing with Kinect for Windows. https://developer.microsoft.com/en-
us/windows/kinect/develop Accedido el 20 de febrero de 2016.
21. Microsoft Programming Guide: Natural User Interface. Skeletal Tracking.
https://msdn.microsoft.com/en-us/library/hh973074.aspx. Accedido el 21 de febrero de
2016.
22. Microsoft Programming Guide: Natural User Interface. Depth Stream.
https://msdn.microsoft.com/en-us/library/jj131028.aspx. Accedido el 21 de febrero de
2016.

193
Aplicación de Redes Neuronales en Reconocimiento de
Imágenes

Stephanie Escalante-Ramírez, José M. Suárez-Arana, Aldrin Barreto-Flores


Facultad de Ciencias de la Electrónica, Benemérita Universidad Autónoma de Puebla,
Av. San Claudio y 18 Sur Ciudad Universitaria, Puebla, México
1
escalante.201014750@outlook.es, 2jmarti37@yahoo.com, 3aldrin.barreto@correo.buap.mx

Resumen.El siguiente trabajo está basado en pruebas con las redes neuronales
LVQ y Kohonen aplicado al reconocimiento de imagen implementado en la
identificación de credenciales, iniciando desde el entrenamiento de cada red
para su aprendizaje hasta las pruebas de efectividad para poder comparar dichas
redes.
Palabras Clave: Inteligencia Artificial,Redes Neuronales, Reconocimiento de
Imagen, Entrenamiento de Redes.

1 Introducción

La inteligencia artificial ha tenido como modelo primordial la implementación de


sistemas autónomos e inteligentes para cada aplicación que se desee, los campos a los
que está enfocada esta disciplina se encuentran desde la robótica hasta el
procesamiento de lenguaje natural (Ponce, 2010).
En este trabajo colaborativo el campo está enfocado hacia el reconocimiento de
modelos, probando diferentes tipos de redes neuronales con aplicación en la
identificación de credenciales de la Benemérita Universidad Autónoma de Puebla.
Las redes neuronales son un método de reproducción del aprendizaje semejante al
proceso humano, “una red neuronal toma como ejemplos problemas resueltos para
construir un sistema que toma de decisiones y realiza clasificaciones” (Ponce, 2010),
mediante algoritmos por software pueden ser aplicadas a problemas computacionales
para remplazar algoritmos extensos.

1.1 Estructura de una red neuronal y su clasificación

El perceptrón es la unidad básica de una red neuronal artificial, la estructura básica


consta de entradas, pesos (dadas por el entrenamiento) y salidas, y para un esquema
multicapa consta de varios perceptrones siendo los pesos aquellos factores que dictan
la operación de cada capa de las redes neuronales, en la referencia [2] ejemplifica
dicha estructura (Fig. 1)
Fig. 31Estructura básica de red neuronal

1.2 Clasificación de redes neuronales

Con respecto al número de capas, pueden dividirse en redes monocapa y multicapa,


dentro de las redes multicapa se encuentras clasificadas según el numero de capas que
ocupa sean 2 capas, 3 hasta N número de capas; al igual que pueden clasificarse en
unidireccional y bidireccional y en la dirección de conexiones (laterales y hacia un
solo clúster) como muestra la Fig. 2 la clasificación y los tipos de redes.

Fig. 32Clasificación de redes neuronales

Para este proyecto, se ocuparon dos tipos de redes neuronales como prueba de
rendimiento para la identificación de imágenes Kohonen y LVQ (learning vector
quantization), las referencias [1] y [3] mencionan de forma detallada las
características principales de estas redes.

Técnica de cuantificación vectorial-learning vector quantization (LVQ)

195
Algoritmo híbrido entre aprendizaje no supervisado y supervisado, la segunda capa es
no supervisada mientras que la primera capa es supervisada; donde la primera capa es
asignada a una clase y cada clase se la asigna una a la siguiente capa donde lo esencial
es que cada vector no tiene que normalizarse para el cálculo de sus distancias,
compitiendo entre ellas para su salida y en base a los resultados se ajustan los pesos.
Esta técnica es empleada para la transmisión de datos, clasificación de patrones y
reconociendo de imágenes y algunos problemas que pueden surgir con este método
son la falta de entrenamiento y el número de iteraciones elegidas deben ser precisas
para un buen desempeño.

Mapas autorganizados de redes Kohonen (PTM)

La característica principal de esta red son los mapas topológicos autorganizado, este
método es no supervisado y competitivo, donde consta de dos capas, una de entrada y
otra de competición donde realiza el procesamiento y siendo un método lateral donde
genera relación con sus redes vecinas.
Sus aplicaciones son similares a las de LVQ, pero es óptima para control de
movimiento en espacios tridimensionales y útil para establecer relaciones entre datos.

2 Desarrollo

A continuación se explicitará la metodología empleada y los resultados obtenidos para


cada método probado, cabe resaltar que los programas fueron realizados en el
lenguaje Python tanto en la captura de imágenes, entrenamiento de redes y su
implementación (ver Referencia [5]).

2.1 Generación de entradas y base de datos

El desarrollo de este trabajo consta de varias etapas de implementación, la primera


etapa en la generación de entradas para nuestra red neuronal es el Creador de
captura para credenciales necesarias para el entrenamiento de las redes neuronales,
dichas fotografías fueron tomadas con una cámara web, cerca de 16 credenciales
institucionales con la que se cuentan 4 tipos diferentes de credenciales.

Fig. 33 Tipos de credenciales institucionales


Para obtener la imagen de las credenciales, se implementó un programa para su
búsqueda y guardado automático, donde básicamente busca contornos en la imagen, si
uno de ellos tiene una aproximación de polígonos de 4 lados se asume que es una
credencial y se realiza la transformación de perspectiva para poder tener una vista
frontal de la credencial sin importar su posición en la imagen, ejemplificada en la
figura 4.
Fig. 4 Resultado de programa para captura

Y al encontrar las credenciales, solamente se genera un método para guardar las


imágenes generadas, en este caso por cada credenciales se sacaron 3 muestras de cada
una para tener un mejor entrenamiento por cada credencial que se desea mantener en
la base de das, la imagen 5 muestra la base final gracias a las muestras prestadas de
las credenciales institucionales.

Fig. 5 Base de datos final


La siguiente pre-etapa es acondicionamiento de imágenes, cada imagen fue
adaptada para poder generar las entradas necesarias para la etapa de entrenamiento y
llevar a cabo la implementación y prueba, en el caso de las redes Kohonen y LVQ el
tratamiento de imagen fue en escala de grises con un rango de valores entre (0-255).

2.2 Entrenamiento de las redes neuronales

Como base en la referencia [6], muestra algunos métodos de aplicación de redes


neuronales con ejemplos básicos, en este trabajo, se mejoraron estas metodologías y
se realizaron los entrenamientos correspondientes a cada red neuronal, la referencia
[5] contiene los códigos utilizados para dicho entrenamiento.

2.2.1 Entrenamiento de Mapas de Kohonen.

Consta de varias etapas


1. Se inicializan al azar el número de mapas que se deseen como el método
requiere.
2. Mientras un valor alfa con un valor de decaimiento constante sea mayor
a un mínimo dado, se repite lo siguiente:
a. Busca el clúster más parecido a la entrada, con la distancia
euclidiana como discriminador.

197
b. Actualiza los pesos (clústeres) del similar o sus vecinos más
próximos, con el valor alfa.

2.2.2 Entrenamiento de LVQ (Learning Vector Quantization).

Con LVQ:
1. Al igual que Kohonen, contiene dos capas con conexiones laterales pero
inicializa los clúster con las imágenes que se quieren identificar llamados
“targets”.
2. Mientras un valor alfa con un valor de decaimiento constante sea mayor a un
mínimo dado, se repite lo siguiente:
a. Busca el clúster parecido a la entrada, con la distancia euclidiana
como discriminador.
b. Actualizan los pesos (clúster) del similar y sus vecinos más
próximos, con el valor alfa.
3. La diferencia con Kohonen, requiere de salidas deseadas por cada entrada,
así, la actualización depende de la coincidenciadel clúster más cercano y el
deseado, si son iguales:
a. La actualización suma la entrada (para semejarla)
b. O restarla (distanciarlas entre ellas)

3 Implementación de redes neuronales

Se realizaron dos diferentes pruebas principales: la primera etapa donde verifica con
las mismas imágenes de la base de datos, la eficiencia de las redes neuronales, los
resultados de las pruebas se muestran en la imagen 6.

Fig. 6 Resultados de pruebas para identificación de tipo y pertenencia de credencial.

Con un total de 16 pruebas siendo el 100% de las imágenes muestra, la tabla 1


indica los resultados de la identificación por color:

Tabla 7.Resultados de pruebas en credenciales conocidas

Tipo(Color)/ Método Azul marino Azul Cielo Verde Naranja

No. De muestras 1 6 2 7
100.00% 100.00% 100.00% 14.29%
Kohonen
100.00% 100.00% 100.00% 85.71%
LVQ

Encontrando una mayor efectividad del método LVQ sobre Kohonen al generar
menos error en las credenciales con mayor concentración de muestras, las de tipo
color naranja.

Ahora, la segunda etapa consistió en pruebas con imágenes que actualmente no


se encuentran en nuestra base de datos, con la finalidad de demostrar que ambas
redes son capacees de generar una topología cercana (en caso de Kohonen) o de
colocar en un clúster cercano a aquellas que son parecidas entre sí, la figura 7 muestra
los resultados.

Fig. 7 Resultados de pruebas con nuevas credenciales.

Como resultado, ambos métodos lograron identificar el tipo de credencial


generada, colocándola en un nuevo clúster sin confundir con otras credenciales
similares a ellas.

En la tabla 2 muestra el porcentaje de efectividad para identificar el tipo y


reconocimiento de la credencial, siendo un 100% la población, 22 en total

Tabla 2. Resultado total de pruebas con credenciales

Método/ Reconocimiento (Base Reconocimiento por tipo Reconocimiento (Nuevas


Imágenes de datos) (Base de datos) credenciales)
Kohonen 62.5% 100% 100%
LVQ 87.5% 100% 100%

En el caso las credenciales de la base de datos, las imágenes no son tomadas de


ella, es decir, son imágenes en tiempo real de la credencial vista con la cámara web.

199
4 Conclusiones y trabajos futuros

Fig. 8Clasificación hecha por el método Kohonen

La red neuronal con mejor rendimiento fue la técnica LVQ con un alto porcentaje
de aciertos al identificar tanto usuarios como tipo de credencial, Kohonen con éxito
realiza su mayor característica, la topología entre credenciales, como se observa en la
figura 8 pudo colocar en clúster cercanos las credenciales semejantes con lo que se
concluye que puede realizar la topología de imágenes sin necesidad de supervisar las
salidas y categorizarlas.
Al ser un entrenamiento con pocas muestras, el ser supervisado es recomendable
ya que no dificulta colocar los objetivos (target) que requiere LVQ por lo que lleva
una ventaja sobre Kohonen en este criterio, asimismo Kohonen es susceptible al ruido
de imágenes por el hecho de ser no supervisada, por lo que podemos concluir que
LVQ es el mejor método que no requiere tantos recursos de entrenamiento, con pocas
muestras puede llevar una buena categorización y se desempeña de modo supervisado
y con pocos objetivos de manera altamente efectiva; en cambio, métodos como ART
y Backpropagation requiere de mayores recursos RAM y maypr heurística para su
implementación por esta razón adjudicamos los malos resultados al tratar de
implementar estos métodos, al contrario, k-Means logró resultados regulares pero se
recomienda ser una técnica se complemento a otra red neuronal para una mayor
efectividad.
Como trabajos futuros, al ser ART una técnica de mejor desempeño es este tipo de
aplicaciones, encontramos que tiende a hallar los factores de error por
experimentación y análisis riguroso con la finalidad de evitar sobreentrenamiento o
falta de entrenamiento, en trabajos posteriores, mejorar este método es de prioridad
alta como prueba de que esta red es ideal para reconocimiento de imágenes con alto
contenido de análisis; Backpropagation requiere de mayor número de muestras, así
como encontrar las iteraciones correctas para un menor error, por último implementar
K-means como mejoramiento en otras técnicas para lograr una mayor eficiencia, sin
tanto recurso computacional.

Agradecimientos. A los compañeros Filiberto Regino Medina y Ricardo Garcia


Alonso por su valiosa contribución a esta labor, además de todos los compañeros de la
clase de Control por Inteligencia Artificial y a nuestro profesor y tutor Aldrín Barreto
Flores

Referencias

1. Andrade Tepán C. : Universida Politécnica Salesiana. Estudio de los principales


tipos de redes neuronales y las herramientas para su aplicación, pp.28-33 (2013)
2. Ponce Cruz P.: Inteligencia Artificial con aplicaciones a la ingeniería, pp. 6-20 (2010)
3. Basogain Olabe X.: Redes neuronales artificiales y sus aplicaciones, pp. 28-59(2008)
4. Rodríguez Rodríguez J. Redes neuronales artificiales para clasificación de imágenes
satelitales, p.p. 29-30 (2008)
5. Suárez Arana M; Escalante Ramírez S. Códigos Python.
https://www.dropbox.com/sh/qszcguzul9iu9cz/AAAXUmUITypdcCBhGeEaTUOva?dl=0
6. McCullock John: Mnemosyne_Studio(); Artificial Intelligence .
http://mnemstudio.org/index.php. Accedido el 10 de Agosto del 2016.

201
Sistema de Rehabilitación basado en un
Exoesqueleto para Mano. (S.R.E.M.)

Caleb Jiménez1, Jessica López1, Alan Castillo1,


Emmanuel Francisco2, Alejandro Rubín2, Gustavo Rubín-Linares1.
1
Facultad de Ciencias de la Computación, Benemérita Universidad Autónoma de Puebla.
2
Facultad de Ciencias de la Electrónica, Benemérita Universidad Autónoma de Puebla.
calebji@hotmail.com, acissejol@hotmail.com, alan.castillo_89@hotmail.com,
2
francisco.201141360@gmail.com, arubinwb@hotmail.com, 3gtrubin@gmail.com.

Resumen.En este proyecto se diseñará e implementará un exoesqueleto para


mano de una persona con espasticidad controlado por un sistema electrónico. El
exoesqueleto consistirá en un mecanismo diseñado para generar movimiento a
los dedos de una mano que se encuentre con los músculos atrofiados debido a
espasticidad. Es decir, por medio de este exoesqueleto la mano tomará diversas
posturas como abierta, cerrada, y realizará rutinas específicas descritas por
fisioterapeutas durante el proceso de rehabilitación.
Palabras Clave:Exoesqueleto, Mecanismos, Rehabilitación.

1. Introducción

En México del total de personas discapacitadas el 58.3% es referente a capacidades


motrices [5],. Una de estas discapacidades se presenta como espasticidad en manos y
en la mayoría de ocasiones aparece después de sufrir algún tipo de lesión o contusión
en el cerebro.

Tanto el diseño de exoesqueletos para manos como el diseño de manos robóticas


tienen en común la búsqueda de una representación analítica de las características de
la mano humana para tomarla como referencia. Muchos trabajos relacionados a estas
tareas han ideado metodologías para encontrar un modelo adecuado, como se muestra
en [6] donde los autores desarrollaron un prototipo mecatrónico de mano
antropomórfica, tratando de simular en lo posible algo muy parecido a la mano
humana. Estudiaron los movimientos de presión y manipulación de la mano, y
posteriormente diseñaron un sistema de palancas para recrear la reflexión y extensión
del dedo humano. El sistema posee 6 grados de libertad en total, cada dedo tiene 1
GDL (Grados de Libertad) y el dedo pulgar tiene 2 GDL. Una de las aplicaciones que
los autores encontraron a su prototipo es que puede ser utilizado como gripper
industrial o en la prótesis para rehabilitación.

Así mismo como lo indica [7], en su tesis de maestría, el autor diseño y construyó
una prótesis robótica de mano que realiza agarres prensibles a partir de ordenes
efectuadas desde un sistema de mando. El diseño mecánico de la prótesis se realizó en
CAD (Diseño Asistido por Computadora). La mano de este trabajo tiene 6 GDL, los
dedos pueden realizar movimientos de flexo-extensión y además el dedo pulgar puede
realizar movimientos de prono-supinación. La mano está equipada de sensores de
fuerza y de posición, este trabajo consideró diversas propuestas de exoesqueletos
tanto del mercado como propuestas en vías de desarrollo para así lograr un diseñó
orientado hacia sectores que incluyen a personas de bajos recursos.

El presente proyecto tiene la finalidad de impactar en un sector conformado por


personas e instituciones dedicadas a la rehabilitación, así como incursionar una línea
de investigación en el área de rehabilitación de este tipo de lesiones.
2. Metodología.
Para llevar a cabo este proyecto se realizará el diseño de un sistema de transmisión de
trabajo mecánico que permite transformar movimiento angular a lineal, además de un
modelo desarrollado en el software SolidWorks.

La metodología empleada en el desarrollo de este proyecto consiste en lo siguiente:

 Observar el comportamiento de la mano humana, hacer descripciones cualitativas


y abstraer sus principales características (dimensionales, dinámica, etc.).
 Determinar las principales posiciones y movimientos que el mecanismo debe
realizar con apoyo de un fisioterapeuta y pacientes que padezcan de este
problema.
 Seleccionar un conjunto de criterios de diseño mecánico basados en las
necesidades del sistema a desarrollar.
 Realizar una serie de propuestas de diseño en base a los criterios del punto
anterior y por medio del software CAD.
 Realizar simulaciones en software CAD para evaluar las diferentes propuestas.
 Implementar los diseños por medio de impresión 3D.
 Ajustar el proyecto a un proceso de evolución continua que le permita
evolucionar hacia un grado de idealidad cada vez mayor.
 Dividir el trabajo de manera funcional según las disciplinas involucradas.
Las siguientes imágenes describen el diseño del sistema, el cual ha sido probado en
un modelo a escala 1 : 1 con una rigidez considerable para las primeras pruebas.

203
Fig. 1. Diseño en CAD del sistema mecánico para una falange, donde se muestra en la
primera imagen la falange extendida, y en la siguiente imagen el desplazamiento para cerrar.

Una vez realizada la simulación en CAD se procede a efectuar la impresión de las


piezas, con ayuda de una impresora que emplea un filamento PLA (ácido poli-
láctico), el cual nos brindará una mayor rigidez debido a las pequeñas dimensiones
del diseño, las piezas son las que se muestran a continuación antes de realizar el
ensamble del sistema:

Fig. 2. Piezas ya impresas, detalladas y listas para su ensamble.

A continuación, se muestra el sistema ya ensamblado sobre el modelo de una mano


para llevar a cabo pruebas, y verificar que la simulación efectuada en CAD necesita
modificaciones, las cuales no fueron detectadas en la misma. Una vez realizadas las
correcciones e impreso las piezas modificadas, se realizan nuevamente las pruebas,
logrando que el movimiento fuese el buscado, como se muestra en el video [8], en
donde se puede apreciar el movimiento para el cierre y apertura de la falange, para
ello se replicara el sistema para cada una de las principales falanges, considerando las
dimensiones de cada una, y de esta manera obtener el sistema deseado.

Fig. 3.
Sistema

implementado en el modelo, se verifica el comportamiento del sistema.

Para el sistema electrónico empleamos una tarjeta de desarrollo FPGA (Field


Programmable Gate Array), en donde aplicamos un control para los actuadores por
medio de señales PWM (pulse-width modulation), las cuales son activadas por el
censado de corriente que cada uno de los actuadores consume, así el sistema logra
adaptar el nivel de torque necesario para realizar la rutina especifica.

Como se muestra en el siguiente diagrama:

Fig. 4. Diagrama a bloques del sistema de control implementado en FPGA.

3. Conclusión.
Con la elaboración de este sistema podremos apoyar a la rehabilitación de las
personas que padecen espasticidad en las manos, además de ser accesible por el bajo
costo que se plantea, y de esta manera contribuir social, económica y
tecnológicamente.

Con los resultados obtenidos hasta el momento para la falange del dedo
meñique, resta replicar estos movimientos en las demás falanges del mismo dedo,
considerando las dimensiones correspondientes a cada una de ellas. Posteriormente,
se realizará una optimización, logrando así continuar con la línea de investigación
para este tipo de lesiones.

En lo que respecta al sistema electrónico que se encarga del control del sistema
mecánico, su complejidad hasta el momento es lograr la apertura y cierre de la mano,
sin embargo, ya se tiene una visión de este sistema para que no solo se encargue del
movimiento, sino que también realice un monitoreo de la fuerza empleada en las
rutinas dictaminadas y se pueda determinar si es que existe una mejora o incluso que
tipo de rutinas son las adecuadas.

Referencias

1. Ocampo Gustavo, Rondón Julián, Diseño y construcción de una Mano robot de cuatro
dedos que imite los modelos prensiles humanos, Universidad Militar Nueva Granada,
Articulo , 2004.
2. Garcia F., Martinez Alvarez J., Diseño mecatrónico de un dedo antropomórfico, Universidad
Politécnica de Cartagena / Murcia, Articulo, España.

205
3. Lotti F., Basura G., A Novel Approach to Mechanical Design of Articulated Fingers for
Robotic Hands, Articulo.
4. Ceccarelli M., Nava Rodriguez N., Optimal design of driving mechanism in A 1-D.O.F.
Anthropomorphic finger,vol. 41, no. 8, pp. 897-911 Mechanism and machine theory, 2006.
5. INEGI,http://cuentame.inegi.org.mx/poblacion/discapacidad.aspx?tema=P, Censo de
Población y Vivienda 2010, 2016
6. Áviles Oscar, Rosário Mauricio & Niño Paola, Diseño de un Sistema Mecatrónico
Antropomórfico de Cinco Dedos, articulo, 2010.
7. Quinayás Burgos, Cesar Augusto, Diseño y construcción de una protesis robótica de mano
funcional adaptada a varios agarres, Popayán , 2010.
Modelado Dinámico de un Sistema de Paneles Solares

Pilar Amador-Alarcón1, Gustavo Rubín-Linares1, Pilar Merino-Rosas1, Rodrigo


Cuevas-Vede1, Erick López-Chicatto2
1
Facultad de Ciencias de la Computación, Benemérita Universidad Autónoma de Puebla
2
Facultad de Ciencias de la Electrónica, Benemérita Universidad Autónoma de Puebla
14 Sur y Av. San Claudio, C.U. San Manuel, Puebla México
pilar_amalar13, pimerofloral@hotmail.com, gustavo@cs.buap.mx

Resumen.Se diseña un prototipo basado en el modelodinámico de un sistema


XY de paneles solares a fin de incluir este modelo matemático en el sistema de
control para alcanzar un movimiento suave y un mínimo de consumode
potencia, para lo cual se obtienen las ecuaciones diferenciales y se llevan a
variables de estado donde se resuelven con la regla de Mason y se obtiene la
función de transferencia. Con la función de transferencia ya es posible obtener
toda la información de implementación en el sistema de control para aplicarlo a
un sistema habitacional.
Palabras Clave: Modelo Dinámico, Variables de Estado, Funcion de
Transferencia.

20 Introducción

El Sol contiene más del 99% de toda la materia del Sistema Solar. El Sol se formó
hace 4.650 millones de años y tiene combustible para 5.000 millones más, es también
nuestra principal fuente de energía, que se manifiesta, sobre todo, en forma de luz y
calor [1].
El uso de paneles solares ha causado gran impacto en el mundo, aprovechando la
energía solar y transformándola en energía eléctrica. La función de los paneles
solares es convertir la energía que es emitida por el sol en energía eléctrica,
disminuyendo en este proceso la contaminación que otros tipos de energía generarían.
En el mundo se tienen zonas geográficas con distintas condiciones que permiten el
aprovechamiento de la energía solar, dentro de esas zonas México se encuentra como
uno de los países más favorecidos para aprovechar este recurso. Por este motivo se
realizan esfuerzos en distintos institutos y universidades en el país para desarrollar la
tecnología necesaria que optimice el aprovechamiento de este recurso, reduciendo la
explotación de recursos no renovables (petróleo).
En este trabajo se propone una metodología de optimización de la energía solar
aplicable a distintos entornos geográficos, mediante un prototipo autónomo y
reconfigurable basándonos en el desarrollo e implementación de un modelo
matemático del sistema.
En este trabajo nos enfocamos exclusivamente en la obtención de un modelo
matemático que describa el movimiento del sistema ya que un sistema diseñado para
aprovechar la energía solar debe estar optimizado en cada etapa, pero esto se logra
analizando y modelando desde el sistema dinámico hasta el sistema electrónico de
control. Ya que el movimiento de los paneles solares se lleva a cabo con motores y
estos son alimentados con voltaje preferentemente del mismo panel, es de vital
importancia que se conozcan las características del movimiento y su evolución
temporal, a fin de que el sistema de control posea esta información y cuando el
sistema libere la acción de control, en ese caso la salida dependa no solo de la
ubicación final del panel sino de las características de movimiento como velocidad

207
aceleración y desplazamiento del panel. De esta forma el panel ira a la ubicación
deseada optimizando el consumo de energía para su movimiento.

2 Metodología
Se propone una metodología que inicia con la obtención del análisis de cuerpo libre
del motor para obtener la ecuación diferencial que rige el movimiento del eje del
motor, posteriormente se lleva esta ecuación a variables de estado y finalmente
después de utilizar un gráfico de flujo de señal se resuelve con la fórmula de ganancia
de Mason.

3 Modelado matemático

3.1 Diagrama de Cuerpo Libre


El sistema se basa en un sistema mecánico que en la primera aproximación posee dos
grados de libertad a fin de generar una inclinación en el panel a lo largo de los ejes X
y Y, este movimiento debe ser lo más lento posible a fin de no causar una
inestabilidad en el sistema completo y la cual podría manifestarse con un conjunto de
oscilaciones para buscar el equilibrio del sistema, además de minimizar el consumo
de energía ya que es un hecho conocido que cuando un motor inicia su movimiento se
generan picos de corriente debido a la interferencia electromagnética. Ya que el
objetivo es generar un movimiento del panel en estos dos grados de libertad,
analizamos el sistema y partimos de que los motores generan un pequeño
desplazamiento angular de menos de 50 Siendo 𝛼 𝑦 𝛽 dos ángulos para describir cada
uno de los grados de libertad del sistema, además se supone que estos ángulos son
independientes. En la figura 1 se muestran estos ángulos con sus ejes respectivos y la
identificación con el panel solar.

Fig. 1. Identificación de los ángulos ,  y , en el panel solar


Ya que el análisis de los dos ángulos es el mismo entonces nos enfocamos solo en
uno de ellos como se muestra en la figura 2.

Fig. 2. Movimiento alrededor del eje X, y un ángulo .

El comportamiento dinámico de cualquier cuerpo se describe con las leyes de


Newton y en particular con la segunda ley la cual nos lleva al diagrama de cuerpo
libre siguiente:

Fig. 3. Diagrama de cuerpo libre donde se identifican las fuerzas actuando


en el eje del motor.

Donde:
• T : Torque
• ∝ (𝑡) : Desplazamiento Angular
• a: coeficiente de amortiguamiento de velocidad angular
• b: coeficiente de amortiguamiento para desplazamiento angular
• m: masa

209
El diagrama de cuerpo libre de la figura 3. representa simbólicamente todas las
fuerzas que están actuando en este caso en el eje del motor, y se construye de la
siguiente forma. Lo primero que se debe considerar es que el movimiento es debido al
torque T(t) que genera el voltaje aplicado al motor y que se supone una dirección sin
pérdida de generalidad en el mismo sentido del desplazamiento angular (t). lo
siguiente a considerar es que el sistema al poseer una masa m, debe tener un
amortiguamiento en la aceleración angular dado por la segunda derivada del
desplazamiento angular, esta fuerza se encuentra en sentido contrario al torque o
fuerza aplicada y al desplazamiento. Posteriormente también se localiza una fuerza
que se opone al cambio en la velocidad y esta es dada por el coeficiente a y la primera
derivada del desplazamiento angular, y finalmente un coeficiente para el cambio en el
desplazamiento. Todos estos coeficientes de amortiguamiento son opuestos al
desplazamiento y son los encargados de frenar el movimiento del sistema y su origen
puede ser variado, como gravedad, fricción interna del motor, fricción mecánica del
dispositivo físico, ruido en la señal de alimentación y control de los motores, etc.
gracias al diagrama de cuerpo libre es posible obtener de forma sencilla la ecuación
diferencial que nos representa el modelo matemático del sistema, la cual es una
ecuación diferencial lineal no homogénea de segundo orden, como se muestra en
seguida.

𝑑 2 𝛼(𝑡) 𝑑𝛼(𝑡)
𝑇(𝑡) = 𝑚 +𝑎 + 𝑏𝛼(𝑡) = 𝑚𝛼̈ + 𝑎𝛼̇ + 𝑏𝛼 (1)
𝑑𝑡 2 𝑑𝑡

3.2. Solución en variables de estado


Para resolver la ecuación diferencial anterior por el método de variables de estado,
primero asignamos las variables de estado.
𝑥1 =∝
𝑥2 = 𝑥̇1 =∝̇ (2)
𝑇 𝑎 𝑏
𝑥̇ 2 =∝̈= − 𝑥2 − 𝑥1
𝑚 𝑚 𝑚

Lo cual puede expresarse como

𝑥̇ 0 1 𝑥1 0
( 1 ) = (− 𝑏 −
𝑎 ) ( ) + ( 1 ) 𝑇(𝑡)
𝑥 (3)
𝑥̇ 2 𝑚
2
𝑚 𝑚

Y para la salida es evidente

𝑥1
∝ (𝑡) = (1 0) (𝑥 ) (4)
2

Y en forma simplificada las ecuaciones 3 y 4 quedan como las ecuaciones

𝑥̇ (𝑡) = 𝐴𝑥(𝑡) + 𝐵𝑢(𝑡)


(5)
𝑦(𝑡) = 𝐶𝑥(𝑡) + 𝐷𝑢(𝑡)

Donde

0 1
𝐴 = (− 𝑏 − )
𝑎 (6)
𝑚 𝑚
0
𝐵 = (1) (7)
𝑚

𝐶 = (1 0) (8)

𝐷=0 (9)

3.3. Función de transferencia


Con las ecuaciones 3 y 4 tenemos una descripción del sistema en variables de
estado, este es uno de los principales resultados de este trabajo, ya que es un sistema
de ecuaciones de primer orden y que podemos ahora resolverlo por diversos métodos.
Utilizamos la técnica de gráficos de flujo de señal, ya que es muy utilizada en
sistemas lineales y es muy certera para análisis de sistemas de mayor complejidad y
multivariables.

Fig. 4. Grafico de flujo de señal del sistema

Para determinar la función de transferencia del grafico de la figura 4.4, utilizamos


la regla de Mason, que a continuación se cita:
∝(𝑆) ∑𝑁
𝑖=1 𝑇𝑖 ∆𝑖
= (10)
𝑇(𝑆) ∆

Donde:
𝑇𝑖 : i_esima trayectoria directa que une entrada con salida
∆ : 1-∑ 𝑙𝑖 + ∑ 𝑙𝑖 𝑙𝑗 -∑ 𝑙𝑖 𝑙𝑗 𝑙𝑘
∆𝑖 : ∆ -(elementos que tocan la i_esima trayectoria directa )
li: i_esimo lazo de ganancia o trayectoria cerrada.
li lj: pares de lazos de ganancia disjuntos.
Entonces tenemos que

1 1
∝(𝑆) 𝑚𝑠2
= 𝑎 𝑏 = 𝑚
𝑎𝑆 𝑏 (11)
𝑇(𝑆) 1+ + 2 𝑆 2+ +
𝑚𝑠 𝑠 𝑚 𝑚 𝑚

4. Resultados

211
Esta ecuación de la función de transferencia es el resultado más notable de este
trabajo, ya que se ha obtenido por métodos de análisis de teoría de control y nos
representa el Angulo de salida del eje del motor en términos del torque o función de
entrada del sistema y que en este caso es la señal de excitación del motor, ahora
podemos expresar hecho de forma más clara en la figura 5:

Fig. 5. Función de transferencia del sistema

Ahora con esta información podemos proponer una señal de excitación y observar
los efectos en el movimiento, es decir en el desplazamiento angular con respecto al
tiempo. Esto se logra tomando ∝ (𝑠) = 𝐺(𝑠)𝑇(𝑠) y si suponemos una señal escalón
unitario, la cual es la una de las funciones más utilizadas y que nos brindan mayor
información por sus características de respuesta transitoria y de estado estacionario,
tenemos que si T(s)=1/s, entonces:
1
∝ (𝑠) = 𝑚
𝑎 𝑏 (12)
𝑠(𝑠2 + 𝑠+ )
𝑚 𝑚

La respuesta del sistema tiene las características de un sistema de segundo orden ya


sea sub amortiguado 0 <𝜁< 1, sobre amortiguado 𝜁>1 o con amortiguamiento crítico
𝜁 =1. Lo más adecuado es llevar el sistema a ser sobre amortiguado o con
amortiguamiento crítico, ya que el caso sub amortiguado posee un transitorio que en
ocasiones es difícil de minimizar o aumenta complejidad al sistema de control que lo
corrige.
Para finalizar mostramos los resultados obtenidos en motores de c.d.
convencionales pero que tienen una función de transferencia sub amortiguada, así
como la simulación respectiva para identificar los coeficientes de amortiguamiento m,
b y a, así como las simulaciones propuestas para un sistema de control PI
convencional simulado.
Fig. 6. Respuesta al escalón de la planta (rojo), el modelo dinámico obtenido sub
amortiguado simulado (azul) y la planta junto con la acción de control PI simulada
(verde)

5. Conclusiones
Se determinó la ecuación diferencial del modelo matemático dinámico generalizado
del sistema de paneles solares que contiene la información necesaria y suficiente para
determinar la dinámica real de un sistema físico con estas características, ya que la
ecuación diferencial posee los coeficientes de amortiguamiento generalizados y que
dan información de los distintas fluctuaciones o elementos que se oponen al
movimiento y las derivadas de este como velocidad y aceleración, y que están
relacionados con desgaste, ruido eléctrico, la carga, etc.
Se transformó el sistema de ecuaciones diferenciales convencional en un sistema
más sofisticado para su solución, como lo es el método de variables de estado ya que
este método puede utilizarse para resolver sistemas de múltiples entradas y múltiples
salidas, mediante esta técnica las ecuaciones diferenciales de cualquier orden se
reducen a ecuaciones de primer orden y adquieren un carácter vectorial, pero sin
embargo, aunque en este problema no se utilizó, también pueden existir señales de
excitación que contienen sus derivadas, lo que sin duda vuelve el sistema mucho más
complejo e incluso imposible de resolver con técnicas convencionales.
Se determinó la función de transferencia utilizando la regla de Mason y Gráficos
de flujo de señal. Estas técnicas son también herramientas sofisticadas del control
moderno a diferencia de los diagramas de bloques y el álgebra asociada para resolver
estos sistemas, ya que los sistemas lineales pueden representarse en un gráfico de
flujo de señal y resolverlo con la fórmula de Ganancia de Mason, lo que permite
visualizar y resolver sistemas mucho más complejos. Pero la virtud principal de ellos
es que es posible determinar la función de transferencia no solo entre puntos inicial y
final sino también en puntos intermedios y que podrían ser incluso imposibles de
medir o imaginar.
Finalmente se ha comprendido la teoría de control y se ha logrado implementar
esta metodología para extraer de un sistema físico real la información que nos
permitirá diseñar el sistema de control con relativa facilidad, así como el proceso de
optimización de este. Y por si fuera poco implementarlo en cualquier sistema del cual
poseamos información y su evolución temporal.

Referencias

213
1. IEA, 2008. Renewables Information 2008.
2. Nilsson N. J., Artificial Intelligence: A New Synthesis. Morgan Kaufmann
Publishers, Inc. (1998).
3. Rich E. y Knight K., Artificial Intelligence. Mac-Graw Hill, Inc. (1991).
4. Winston P. H. y Horn B. K. P., Lisp. Addison-Wesley Pub. Comp. (1981).
5. Planning, Learning, and Executing in Autonomous Systems
6. Un Método de Ponderación de Planes en Sistemas Inteligentes Autónomos
7. Robots Autónomos:” Arquitectura y Control “, Autores :José Manuel Molina
López ,Vicente Matellan Olivera
8. Ogata, Katsuhiko, “INGENIERÍA DE CONTROL MODERNA”, Pearson
Prentice Hall. México, (2002).
9. Nise, Norman S., “Sistemas de control para ingeniería”, Grupo editorial patria,
México, (2008).
10. Bolton, W., “Ingeniería de control”, Alfaomega. México, (2009).
11. Soisson, Harold E., “Instrumentación industrial”, Limusa Noriega Editores
.México, (1997).
12. Ernest E. Doebelin, “Sistemas de medición de instrumentación diseño y
aplicación”, Editorial McGraw Hill. México, (2005).
13. Julio Duarte, Flavio Hernández, Mauricio Moreno, “Técnicas de medida para
pequeños desplazamientos”, Centro Nacional de Microelectrónica de la
Universidad Autónoma de Barcelona, (2008).
14. Autores varios, “Enciclopedia de la ciencia y la técnica”, Ediciones Nauta.
España, (1979).
15. Mario R. Modesti, Pablo M. Savanco, “Control en tiempo real de un horno para
aplicaciones químicas”, Centro de Investigaciones en Informática para la
Ingeniería (CIII), Universidad Tecnológica Nacional- Facultad Regional
Córdoba Argentina, (2005).
16. Ogata, Katsuhiko, “PROBLEMAS DE INGENIERÍA DE CONTROL
UTILIZANDO MATLAB”, Pearson Prentice Hall. México, (1999).
17. Autores varios, “Enciclopedia de la ciencia y la técnica”, Ediciones Nauta.
España, (1979).
18. Mario R. Modesti, Pablo M. Savanco, “Control en tiempo real de un horno para
aplicaciones químicas”, Centro de Investigaciones en Informática para la
Ingeniería (CIII), Universidad Tecnológica Nacional- Facultad Regional
Córdoba Argentina, (2005).
19. Ogata, Katsuhiko, “PROBLEMAS DE INGENIERÍA DE CONTROL
UTILIZANDO MATLAB”, Pearson Prentice Hall. México, (1999).
20. Aguado, Behar Alberto. Martínez Iranzo Miguel, “IDENTIFICACIÓN Y
CONTROL ADAPTATIVO”, Ed. Prentice Hall. España, (2003).
21. Rodríguez, Ávila Jesús Ernesto, “INTRODUCCIÓN A LA INGENIERÍA DEL
CONTROL AUTOMÁTICO”, Ed. McGraw-Hill. México, (1998).
22. Golten, Jack. Verwer, Andy, “CONTROL SYSTEM DESIGN AND
SIMULATION”, Ed. McGraw-Hill. Singapore, (1991).
23. Paraskevopoulos, P.N., “MODERN CONTROL ENGINEERING”, CRC Press
Taylor & Francis Group. U.S.A, (2002).
24. Kuo, Benjamin C., “SISTEMAS DE CONTROL DIGITAL”, Compañía
Editorial Continental. México, (2006).
25. C., Robert Dunn, “INSTRUMENTATION, SENSORS AND PROCESS
CONTROL”, Artech House. UK, (2006).
LISTA DE AUTORES
NOMBRE NACIONALIDAD
Amador Alarcón María del Pilar Mexicana Editora
Anzures García Mario Mexicana Editor
Cruz Almanza Graciano Mexicana Editor
Santiago Díaz María del Carmen Mexicana Editora
Sandoval Solís María de Lourdes Mexicana Editora
Rubín Linares Gustavo Trinidad Mexicana Editor y
Coordinador

Amador Alarcón María del Pilar Mexicana


Anzures García Mario Mexicana
Aparicio Arroyo Aida Anaí Mexicana
Arcos Rodríguez Ana Mexicana
Ayala Raggi Patricia Mexicana
Ayala Raggi Salvador Eugenio Mexicana
Barreto Flores Aldrin Mexicana
Bautista López Verónica Edith Mexicana
Bello López Pedro Mexicana
Castillo Hernández Alan Mexicana
Chavira Martínez Elsa Mexicana
Contreras González Meliza Mexicana
Cortez José Ítalo Mexicana
Cuevas Vede Rodrigo Alberto Mexicana
Díaz Téllez Juan Mexicana
Escalante Ramírez Stephanie Mexicana
Escamilla Weinmann Carlos Guillermo Mexicana
Flores Mena José Eladio Mexicana
Fonseca Barrera Alan Joshep Mexicana
Francisco Bautista Emmanuel Mexicana
García Santiago Alejandro Mexicana
García Villalba Luis Javier Mexicana
González Constantino Carolina Mexicana
Gutiérrez Arias José Eligio Moisés Mexicana
Hernández Aguilar José Mexicana
Hernández Ameca José Luis Mexicana
Hernández Ameca Minerva Mexicana
Hernández Báez Imelda Mexicana
Hernández Sarmiento Omar Mexicana
Hidalgo Sánchez Erick Mexicana
Jiménez Gómez Carolina Mexicana
Jiménez Herrera Caleb Mexicana
Juárez Valseca Gerardo Jadihel Mexicana
León Chávez Miguel Ángel Mexicana
Linares Fleites Gladys Mexicana
López Chicatto Erick Mexicana
López Espejel Jessica Nayeli Mexicana
López Garrido María A. Mexicana
Marcial Castillo Luis Rene Mexicana
Martínez Montes Alejandro Mexicana
Mateo Juárez Jorge Mexicana
Matías Castillo Brenda Mexicana
Méndez Álvarez Víctor Manuel Mexicana
Mexicana Mexicana
Merino Rosas Pilar Mexicana
Montalvo Montalvo Nancy Mexicana

215
Montoya Manzano Fernando Mexicana
Morales Mateos Erika Mexicana
Morales Ramírez Oscar Mexicana
Morales Zitlalpopoca Yasmin Mexicana
Páez López Arturo Mexicana
Parra Carpio Carlos Emmanuel Mexicana
Parra Suárez José Luis Arturo Mexicana
Pastor Hernández Ricardo Mexicana
Ponce Hinestroza Vicente Yair Mexicana
Portillo Robledo José Francisco Mexicana
Quintero Espinoza Mauricio Mexicana
Rivera Martínez Marcela Mexicana
Rodríguez Hernández Miguel Mexicana
Rosales Corripio Jocelin Mexicana
Rubín Alvarado Abel Alejandro Mexicana
Rubín Linares Gustavo Trinidad Mexicana
Salazar Arrieta José De Jesús Mexicana
Sánchez Gálvez Luz Adolfina Mexicana
Sánchez Urrieta Susana Mexicana
Sandoval Orozco Ana Lucia Mexicana
Sandoval Solís María de Lourdes Mexicana
Saynes Torres Lessia Mexicana
Suárez Arana José Martín Mexicana
Temozihui Tlahuel Valeria Mexicana
Torralba Ayance Adán Mexicana
Treviño Sánchez Daniel Mexicana
Trinidad García Gregorio Mexicana
Vázquez Vázquez Miguel Mexicana
Villegas Hernández Juan Carlos Mexicana

COMPILADORES

Amador Alarcón María del Pilar


Anzures García Mario
Cruz Almanza Graciano
Santiago Díaz María del Carmen
Sandoval Solís María de Lourdes
Rubín Linares Gustavo Trinidad

REVISORES
Gustavo Rubín Linares
Arturo López Olvera
Iván Olmos Pineda
Luz A. Sánchez Gálvez
Mario Ansurez García
Maya Carrillo Ruiz
Mario Bustillo Díaz
Enrique Colmenares Guillen
Miguel Rodríguez Hernández
Pilar Amador Alarcón
Nicolás Quiroz Hernández
Elsa Chavira Martínez
Rogelio González Velázquez
Andrés Vázquez Flores
Lourdes Sandoval Solís
Beatriz Beltrán Martínez
Carmen Santiago Díaz
Martin Estrada Analco
Teresa Torrijos Muñoz
José Ítalo Cortez

EDITORES
Amador Alarcón María del Pilar
Anzures García Mario
Cruz Almanza Graciano
Santiago Díaz María del Carmen
Sandoval Solís María de Lourdes
Rubín Linares Gustavo Trinidad

217
INVESTIGACION Y APLICACIONES DE LAS
CIENCIAS COMPUTACIONALES

EDITORES

Amador Alarcón María del Pilar


Anzures García Mario
Cruz Almanza Graciano
Santiago Díaz María del Carmen
Sandoval Solís María de Lourdes
Rubín Linares Gustavo Trinidad

Se terminó de editar en Noviembre de 2016


En la Facultad de Ciencias de la Computación
Av. San Claudio y 14 Sur
Jardines de San Manuel
Ciudad Universitaria
C.P. 72570

Peso del Archivo PDF: 6.3Mb


Reproducción: 200 CD-ROM

219
INVESTIGACION Y APLICACIONES
DE LAS CIENCIAS
COMPUTACIONALES

Este libro presenta una serie de trabajos de investigación, desarrollo y


aplicación de las Ciencias Computacionales realizados por especialistas
de la Benemérita Universidad Autónoma de Puebla.
3

También podría gustarte