92/Ò0(1 1Ò0(52 6(37,(0%5( - mecamex.net · ˝ndice diseæo e implementación de un transmisor...

40
92/メ0(1 1メ0(52 6(37,(0%5(

Upload: trinhkien

Post on 18-Oct-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

La Mecatrónica en México

Comité Editorial de la Revista

Diseño Gráfico Mónica Vázquez Guerrero

Kikey Stephanie Méndez Sánchez Alejandra Miguel Vargas Mandujano

Vinculación Luis Alberto Aguilar Bautista Luis Antonio Salazar Licea

Miguel Ángel Bacilio Rodríguez

Revisión de Formato Rodrigo Escobar Díaz-Guerrero

Conrado Vargas Cabrera Alejandro de León Cuevas Ángel Juárez Buenrostro

Soporte Técnico Carlos Alberto Ramos Arreguín

Juan Carlos Moya Morales Ma. Del Carmen García López

Ubaldo Geovanni Villaseñor Carrillo

LA MECATRÓNICA EN MÉXICO, Año 4, No. 3, Septiembre -Diciembre 2015, es una publicación cuatrimestral editada por la Asociación Mexicana de Mecatrónica A. C., Calle Fonología No. 116, Col. Tecnológico C.P. 76158, Querétaro Qro. Tel.(01- 442) 224 0257. www.mecamex.net/revistas/LMEM/ , Editores responsables: Juan Manuel Ramos Arreguín y José Emilio Vargas Soto. Reserva de Derechos al uso exclusivo No. 04-2015-070213294400-30 otorgado por el Instituto Nacional del Derecho de Autor. Responsable de la última actualización este número: Asociación Mexicana de Mecatrónica A.C., José Emilio Vargas Soto, Calle Fonología No. 116, Col. Tecnológico C.P. 76158, Querétaro Qro. Fecha de terminación de impresión: 11 de Agosto del 2015. Las opiniones expresadas por los autores de los artículos no reflejan la postura de la Asociación Mexicana de Mecatrónica A.C. Esta revista es una publicación de acceso abierto, distribuido bajo los términos de la Asociación Mexicana de Mecatrónica A. C., la cual permite el uso, distribución y reproducción sin restricciones por cualquier medio, siempre y cuando los trabajos estén apropiadamente citados, respetando la autoría de las personas que realizaron los artículos.

PROLOGO

Me complace presentar esta edición de la revista La Mecatrónica en México,

en su cuarto año de labores. En esta ocasión se muestran tres artículos que espero sean del agrado de la comunidad académica interesada en impulsar el desarrollo de la ingeniería mecatrónica.

Agradezco la labor del comité editorial y del comité técnico de revisores. Su importante esfuerzo hace posible que la Asociación Mexicana de Mecatrónica A.C. continúe realizando una labor que impulsa en el estudio y la difusión de los trabajos que se presentan en esta edición, y así contribuir en la formación intelectual de la comunidad académica interesada en la Mecatrónica.

La intensión de la revista es estar de cerca con los estudiantes, profesores,

profesionistas e investigadores que de alguna manera realizan proyectos y trabajos afines a la Ingeniería Mecatrónica. Les invito a mantenerse en constante actualización, y por supuesto a colaborar con sus aportaciones, esto permitirá mantener una revista viva y actual. Los cambios tecnológicos y los nuevos proyectos de investigación nos llevan a imaginar nuevos productos, procesos y servicios como nunca antes hemos tenido. Es por ello, que ante esta gran multitud de posibilidades de creación, es sumamente valioso lograr una certeza tecnológica que nos permita mejorar la calidad de vida de nuestra sociedad.

Como siempre, espero en que la información aquí presentada sea el medio para que nuestros lectores se animen a aventurarse en el conocimiento y la comprensión de las tecnologías afines a la Ingeniería Mecatrónica, y así proponer nuevas ideas que nos permitan avanzar hacia una mejor sociedad.

Dr. José Emilio Vargas Soto Fundador Asociación Mexicana de Mecatrónica A.C.

ÍNDICE Diseño e Implementación de un Transmisor Digital Inalámbrico mediante Tecnología FPGA Reyes Cruz Luis Ángel, Pedraza Ortega Jesús Carlos, Ramos Arreguín Juan Manuel, Díaz Delgado Guillermo y Tovar Arriaga Saúl.

77

Diseño, Modelado y Simulación de un Robot Bípedo González Trejo José Enrique, Reyes Cruz Luis Ángel, Andrés Ernesto López Sandoval, Pedraza Ortega Jesús Carlos, Vargas Soto José Emilio y Delgado Rosas Manuel.

90

Sistema de señalización de movimiento basado en dispositivos Android y Flujo Óptico Blanco-Silva Gonzalo-Elías, Jesús Carlos Pedraza Ortega, Efrén Gorrostieta Hurtado y Juan Manuel Ramos Arreguín

104

La Mecatrónica en México, Vol. 4, No. 3, páginas 77 � 89, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

77

Diseño e Implementación de un Transmisor Digital Inalámbrico mediante Tecnología FPGA

Reyes Cruz Luis Ángel, Pedraza Ortega Jesús Carlos, Ramos Arreguín Juan Manuel, Díaz Delgado Guillermo, Tovar Arriaga Saúl.

Facultad de Informática, Universidad Autónoma de Querétaro.Av. de las Ciencias S/N Campus Juriquilla, Juriquilla, Querétaro, Qro.

C.P. 76230 México. Tel. 1921200 EXT. [email protected]

Resumen

En este trabajo se presenta el diseño e implementación de un transmisor digital inalámbrico en una tarjeta de desarrollo con tecnología de lógica programable de tipo FPGA (Field Programmable Gate Array). El transmisor emplea un esquema de modulación por desplazamiento binario de fase (Binary Phase Shift Keying, BPSK), e incluye también un codificador de canal basado en el código corrector de Hamming H(7,4).

La programación de los bloques funcionales del transmisor se realiza mediante el lenguaje de programación de hardware VHDL (Very High Speed circuit Description Language). El transmisor fuevalidado mediante pruebas de simulación en Simulink antes de ser implementado en el dispositivo semiconductor FPGA para las pruebas finales de funcionamiento. El diseño de estos sistemas en tecnología FPGA es posible debido al diseño jerárquico y modular de tal manera que se puede adaptar realizando cambios en el software sin la necesidad de realizar un nuevo desarrollo en el hardware del transmisor; ahorrando costos, tiempos de implementación y desarrollo. Éste trabajo evalúa la capacidad y desempeño de la implementación del transmisor en una tarjeta de desarrollo FPGA usando librerías estándar para permitir una adecuada portabilidad y reutilización de los módulos desarrollados.

Palabras clave: transmisor digital inalámbrico, BPSK, VHDL, Hamming FPGA.

1. Introducción

En la actualidad los avances tecnológicos han tenido un gran efecto en la sociedad al grado de que en nuestra vida cotidiana ya no podemos prescindir de servicios como las comunicaciones (telefonía, internet, televisión, radio, etc.). La evolución de las comunicaciones nos permite como usuarios tener una variedad de opciones de compañías que ofrecen los servicios, reduciendo costos y teniendo un notable aumento en la calidad del servicio. Estos avances se deben en gran parte al desarrollo que la tecnología electrónica ha tenido y en especial la electrónica digital, de manera que se están migrando los servicios de tecnología analógica a tecnología digital, debido a las grandes ventajas que poseen las comunicaciones digitales como: un menor ancho de banda necesario, mayor calidad en el servicio, mejora en la utilización de la banda de frecuencias, facilidad de procesamiento, facilidad de multiplexado e inmunidad al ruido [1].

El objetivo básico de un sistema de comunicación es la transferencia de información de un punto geográfico a otro. En general, los sistemas de comunicación (SDC) se componen de tres subsistemas principales: el transmisor, el canal de comunicación y el receptor.

Los sistemas tradicionales de comunicación que usan esquemas de modulación analógica, como la modulación de amplitud (AM), modulación de frecuencia (FM) y la modulación de fase (PM)

La Mecatrónica en México, Vol. 4, No. 3, páginas 77 � 89, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

78

se están sustituyendo rápidamente debido al gran avance de la electrónica digital y, por consiguiente, el desarrollo de sistemas de comunicaciones digitales, los cuales poseen ventajas sobre los sistemas analógicos que permiten la optimización del canal de transmisión. Así pues, los SDC facilitan el procesamiento de datos y señales, proporcionando una mayor capacidad de multiplexación de comunicaciones simultáneas, así como una mayor inmunidad al ruido y a la interferencia. Los sistemas digitales de comunicación se encuentran conformados por portadoras de frecuencias relativamente altas que se modulan mediante señales de información digital de relativamente bajas frecuencias [2]. La figura 1 muestra un diagrama general a bloques de un sistema digital de comunicación.

Figura 1. Diagrama general de bloques de un sistema digital de comunicación [3].

Por otra parte, una de las herramientas más poderosas con las que se cuenta para el diseño de sistemas digitales son los Lenguajes Descriptivos de Hardware (LDH) que permiten realizar una estructura jerárquica de las etapas del diseño logrando una optimización en el trabajo.

Los lenguajes descriptivos de hardware sirven como una herramienta para obtener soluciones a problemas de diseño de manera rápida y eficiente. Se han desarrollado componentes de hardware que permiten la programación mediante estos lenguajes descriptivos. Estos componentes van desde pequeños dispositivos, con unas cuantas compuertas lógicas, hasta dispositivos más complejos, con una capacidad de integración de miles de compuertas agrupadas en bloques de funcionales [5].

VHDL (Very High-speed Integrated Circuit Hardware Description Language) es el lenguaje descriptivo más usado en la actualidad. Su popularidad se debe principalmente a que es un estándar del Instituto de Ingenieros Eléctricos y Electrónicos (IEEE, Institute of Electrical and Electronics Engineers). El modelado de circuitos en VHDL se basa principalmente en la definición de arquitecturas que representan cada una de las estructuras digitales que pueden aplicarse al diseño del circuito. A partir de cada una de estas estructuras, se pueden declarar entidades con sus correspondientes elementos para llevar acabo la simulación del circuito y la implementación en dispositivos lógicos programables [4].

Algunos trabajos sobre sistemas de comunicaciones implementados en Dispositivos Lógicos Programables (PLD�s Programmable Logic Device) han probado la eficiencia en su implementación gracias a la arquitectura de los PLD�s que permiten: facilidad y rapidez de diseño, flexibilidad y portabilidad; capacidad de funcionar de manera correcta en distintas áreas de aplicación como: aplicaciones RFID (Radio Frecuency IDentification) como un transmisor implementando una modulación BPSK [6]; en redes inalámbricas mediante la creación de un sistemas en FPGA�s usando esquemas como OFDM (Ortogonal Frecuency Division Multiplexing) y modulación BPSK para la implementación del estándar IEEE 802.11 usando librerías de Xilinx junto con Simulink, limitando su

La Mecatrónica en México, Vol. 4, No. 3, páginas 77 � 89, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

79

aplicación a tarjetas de desarrollo con arquitectura de Xilinx [7]; en sistemas de comunicaciones de alta velocidad implementándose en arquitecturas de FPGA especiales para telecomunicaciones [8]; en biomedicina como el diseño de un receptor para telemetría biomédica programada en VHDL, los cuales tienen varias aplicaciones en la ésta área como los dispositivos transcutáneos que contienen sensores con tecnología similar a la de los sistemas RFID [9].

2. Metodología

El modelado de circuitos digitales en VHDL consta básicamente de cinco pasos fundamentales para su desarrollo, como se puede observar en el diagrama de la Figura 2.

Figura 2. Metodología para el modelado de circuitos digitales.

La fase inicial del modelado consiste en el análisis del diseño a partir de los requerimientos, características del sistema y del circuito a implementar. La elaboración del modelo se realiza una vez que se han detectado y corregido los errores en el diseño, entonces se continúa con la especificación del diseño en VHDL. Al término de la fase de elaboración se procede a ejecutar pruebas de simulación del modelo mediante la configuración de las señales de entrada y los tiempos de la simulación, en ésta parte es recomendable la creación de bancos de pruebas para una evaluación óptima de la simulación.

La síntesis del sistema se realiza mediante una herramienta de síntesis, con la cual es posible convertir el diseño a una abstracción de bajo nivel. Una vez que se realiza la síntesis de manera correcta, es factible la implementación del sistema en una tarjeta de desarrollo para realizar las pruebas pertinentes [10].

2.1 Análisis de diseño

El diagrama de bloques que conforma nuestro transmisor digital inalámbrico se desarrolla a partir de la Figura 1, tomando solamente la parte del transmisor y declarando cada uno de los bloques a implementar. En la Figura 3 se muestran cada uno de los bloques que conforman el transmisor digital inalámbrico propuesto.

La Mecatrónica en México, Vol. 4, No. 3, páginas 77 � 89, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

80

Figura 3. Diagrama a bloques del transmisor digital de datos.

La fuente de información, puede ser cualquier señal binaria aleatoria; generada arbitrariamente o mediante un banco de pruebas.

El codificador de Hamming implementado es un código (7,4), de manera que, si queremos transmitir la palabra �1100�, el desarrollo del código de Hamming será el que se muestra en la Tabla 1. Los dígitos de comprobación se encuentran ubicados en las posiciones binarias donde solo hay un �1�, que corresponden a las posiciones 1, 2 y 4 en binario. Las otras posiciones se llenan con los dígitos del mensaje. Para el cálculo de los dígitos de comprobación, se utiliza la relación de la Tabla 1 para la obtención de las ecuaciones. Los dígitos de mensaje que se encuentran en cada ecuación de comprobación corresponden a las posiciones binarias que contienen un �1� en la misma posición que la del digito de comprobación a calcular [11].

Tabla 1. Desarrollo del código de Hamming (7,4).

Así las ecuaciones para los bits de comprobación quedan de la siguiente manera:

(1)

(2)

(3)

Obteniendo la palabra codificada �0111100�, donde el bit menos significativo o el primer bit a transmitir es el bit de la izquierda. Posteriormente esta palabra codificada será el conjunto de bits que entren al modulador.

Para el modulador BPSK, se tomaron en cuenta las ecuaciones especificadas anteriormente, se consideró una señal portadora senoidal con una frecuencia en el orden de los KHz, esto debido a los ciclos de reloj utilizados para generar la señal e implementar la comunicación con el DAC. La estructura del modulador se describe en la Figura 4.

Palabra 1 1 0 0

Posición binaria 001 010 011 100 101 110 111

Tipo de dígito

0 1 1 0

1 1 0 0

1 1 0 0

Palabra codificada 0 1 1 1 1 0 0

La Mecatrónica en México, Vol. 4, No. 3, páginas 77 � 89, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

81

Figura 4. Diagrama del Modulador BPSK.

2.2 Elaboración.

El sistema se diseñó con un enfoque �top-down� para la generación de los bloques funcionales en VHDL; se utilizó el editor de textos de Active-HDL para este proceso. La entidad general del transmisor digital de datos a implementar en Hardware se muestra en la Figura 5. Las señales de entrada son: el reloj maestro del sistema (CLK), la señal de RST para resetear las señales que dependen del reloj maestro. Y la señal INF la cual contiene el grupo de los bits a transmitir sin codificar. Las señales de salida son: las cuatro señales para el DAC y la señal modulante para su visualización física.

Figura 5. Entidad general del transmisor digital de datos.

La primera parte del desarrollo, consistió en el diseño de la portadora y la portadora desfasa, para lo que se utilizó el código de Matlab de Rene Troncoso para la generación de una Look Up Table de 12 bits correspondiente a una función senoidal y que se binariza en 4096 valores. De esta manera se puede implementar una aproximación de la función seno en una FPGA. La entidad de LUT de la Portadora consiste en una señal de entrada de 12 bits que se mapea a la salida con su

La Mecatrónica en México, Vol. 4, No. 3, páginas 77 � 89, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

82

correspondiente valor de la función senoidal. La entidad de la LUT para la portadora desfasada es similar, solo que la función mapeada corresponde a la función senoidal desfasada 180°.

El bloque del Acumulador de fase realiza una suma sistemática de fase, acumulándola de manera que sirva para desplazarse en los valores de las LUT�s de una forma cíclica. El acumulador se forma por en un sumador de 12 bits, una unidad de registro de 12 bits para almacenar la suma acumulada y una unidad de registro de 1 bit para almacenar el acarreo de la sumatoria. La entidad del Acumulador de fase se muestra en la Figura 6. Las señales de entrada son: el reloj maestro delsistema (CLK), la señal de RST para resetear las señales que dependen del reloj maestro. Y la señal P de 12 bits la cual establece el valor de suma para el acumulador. Las señal de salida e es la suma acumulada de 12 bits proveniente del registro.

En el sumador de 12 bits, las señales de entrada son: El valor establecido para la sumatoria R1, el valor de la sumatoria acumulada R2 y el acarreo de entrada correspondiente a la salida del registro de acarreo. Mientras que el resultado de la sumatoria se pasa a la salida del sumador. La unidad de registro de 12 bits almacena la sumatoria acumulada y se actualiza en cada ciclo de reloj con respecto a la salida del sumador. Por lo que sus señales de entrada correspondientes son: el reloj maestro, el reset y el resultado del sumador. A la salida se encuentra la señal de la sumatoria acumulada.

En el bloque de acarreo (Carry), se almacena el décimo tercer bit de la sumatoria y pasa como entrada en el sumador. El valor de almacenamiento se actualiza en cada ciclo de reloj igual que la unidad de registro de 12 bits.

Figura 6. Arquitectura del Acumulador de fase.

El bloque del Modulador consiste en un divisor de frecuencia, el codificador de Hamming y un buffer para separar los datos codificados y mostrarlos en la salida. La entidad del Modular se muestra en la Figura 7. Las señales de entrada son las mismas que las de la entidad general BPSK, y la señal de salida es la señal binaria codificada.

El divisor de frecuencia se establece de acuerdo a la velocidad de bits requerida para la transmisión mediante la siguiente formula, donde M es el valor que debe ser programado para la disminución de la frecuencia de reloj:

La Mecatrónica en México, Vol. 4, No. 3, páginas 77 � 89, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

83

relojdePeriodo

deseadoPeriodoM (4)

De esta manera la salida del divisor de frecuencia sirve para que el buffer entregue a su salida un bit a la vez proveniente del codificador. El codificador recibe en su entrada el grupo de 4 bits que codifica de acuerdo con las ecuaciones para los bits de comprobación establecidas anteriormente.

Figura 7. Entidad del Modulador.

Las salidas de las LUT�s entran a un multiplexor 2 a 1 y la señal selectora proviene de la salida del bloque del modulador, de esta manera, si la señal selectora es un �0� lógico, la salida del multiplexor entrega la seña de la portadora, y si la señal selectora es un �1� lógico, la salida del multiplexor contendrá la señal desfasada de la portadora. La salida del multiplexor está formada por 12 bits, los cuales entran al bloque del DAC.

El bloque del DAC contiene una máquina de estados finita para la implementación del protocolo de 24 bits del DAC LTC2624 [12]. El esquema de la máquina de datos implementada se muestra en la Figura 8.

En este esquema se puede observar las señales que interactuaran con la máquina de estados (SCK, CS, MOSI, RDY e Index), la señal SCK funciona como el reloj para la sincronización con el DAC, la señal CS funciona como reset para la comunicación del DAC, la señal MOSI toma el valor de cada uno de los datos del protocolo de 24 bits. La señal RDY funciona para indicar que los 24 bits fueron transmitidos y la señal de index funciona para el desplazamiento de los 24 bits del protocolo. En total son 25 ciclos los que se requieren para completar el protocolo.

La Mecatrónica en México, Vol. 4, No. 3, páginas 77 � 89, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

84

Figura 8. Esquema de la Máquina de Estados Finita para el DAC.

2.3 Simulación.

Teniendo el desarrollo en VHDL de las entidades descritas anteriormente, se realizó una simulación en Active-HDL mediante el Visor de Formas de Onda, para la validación del transmisor digital.

La simulación en XSG (Xilinx System Generator) nos ayuda a tener otro método para la validación del código VHDL generado, este método genera un entorno más similar a lo que sería la implementación en hardware ya que se simula también la capacidad de la tarjeta de desarrollo utilizada, por lo que si un diseño sobrepasa la capacidad de la tarjeta, la simulación no funcionará [13].

2.4 Síntesis.

Para la síntesis del código VHDL se usa Xilinx ISE, por lo que se exportó el código generado en Active-HDL y se importó en Xilinx ISE. Un paso previo a la síntesis es la asignación de los pines de la FPGA con su correspondiente señal del transmisor, usando la herramienta PlanAhead y la tabla 2 queindica la señal y el pin utilizado de la FPGA.

Una vez que se tiene la asignación de los pines, se realiza la síntesis para la abstracción a bajo nivel del código VHDL, esto da como resultado la generación del archivo de programación (.bit) que se utiliza para la implementación en el hardware. El archivo (.bit) es creado con el mismo nombredel archivo VHDL de más alto nivel y en el mismo directorio en el que se encuentra el proyecto creado en Xilinx ISE.

2.5 Implementación.

Para la programación del (.bit) en la tarjeta de desarrollo, se utilizó la herramienta de iMPACT. Ya que se tiene conectada correctamente la tarjeta mediante el puerto USB de programación, iMPACT escanea la tarjeta y genera la cadena de elementos programables, posteriormente se selecciona el archivo de programación para cargarlo a la tarjeta de desarrollo.

La tarjeta de desarrollo empleada es la Spartan-3E Starter Kit de Xilinx [14]. La conexión de la tarjeta de desarrollo y el osciloscopio digital se llevó a cabo utilizando dos puntas para osciloscopio. La

La Mecatrónica en México, Vol. 4, No. 3, páginas 77 � 89, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

85

primera punta conectada a la salida del canal A del DAC, usando la tierra que contiene el conector de 6 pines del DAC. Esta punta contendrá la señal modulada.

Tabla 2. Tabla para la asignación de pines en la FPGA.

La segunda punta servirá para visualizar la señal de información, por lo que se conecta en el pin D7 de la tarjeta como se especificó en la Tabla 2. La tierra para esta punta puede ser la misma que para la primera punta.

La Figura 9 muestra la conexión física de la tarjeta de desarrollo y el osciloscopio, donde se puede observar las dos puntas del osciloscopio y el cable de alimentación de la tarjeta.

SeñalTipo de señal (entrada

o salida)

Numero de Pin

en la FPGA

AD_CONV Salida P11

AMP_CS Salida N7

FPGA_INIT_B Salida T3

SF_CE0 Salida D13

SPI_SS_B Salida U3

CLK Entrada C9

RST Entrada L3

Modu Salida D7

Enc Salida F12

DAC_CLR Salida P8

DAC_CS Salida N8

DAC_MOSI Salida T4

DAC_SCK Salida U16

La Mecatrónica en México, Vol. 4, No. 3, páginas 77 � 89, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

86

Figura 9. Conexión de la tarjeta de desarrollo y el osciloscopio digital.

3. Resultados

Los resultados de la simulación en Active-HDL se muestran en la Figura 10. Se observa la señal generada por LUT de la portadora y de la portadora desfasada. La señal modulada realiza los cambios de fase de acuerdo a la señal de información o modulante. La frecuencia de la portadora está limitada ya que con un reloj maestro de 50MHz, el DAC puede trabajar hasta 25MHz. Ya que el protocolo para la comunicación consta de 25 estados, tenemos que la frecuencia de actualización del DAC es de 1MHz. Por lo que cada cambio en la salida del DAC se da a 1ns. Si definimos una portadora senoidal en 16 valores discretos junto con la frecuencia de actualización del DAC, obtenemos una frecuencia de 62.5KHz

Figura 10. Simulación en Active-HDL.

En cuanto a la implementación en la tarjeta de desarrollo del transmisor digital incluyendo la codificación y la modulación, la Figura 11 muestra el despliegue de la señal de información (en azul) yla señal modulada (en amarillo) en el osciloscopio.

La Mecatrónica en México, Vol. 4, No. 3, páginas 77 � 89, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

87

Figura 11. Señal de información y señal modulada visualizadas en el osciloscopio.

Los recursos utilizados de la tarjeta de desarrollo para la implementación del transmisor digital se muestran en la Tabla 3. Se puede apreciar que el uso de los recursos de la tarjeta son menores al 70%, por lo que se es capaz de agregar módulos adicionales.

Tabla 3. Utilización de recursos de la tarjeta de desarrollo.

Generando una señal senoidal a partir de 16 valores discretos, como la se vio anteriormente, la frecuencia de la portadora a la salida del transmisor es de 62.5KHz, con esta frecuencia se puede transmitir hasta 62.5Kbps. Si se disminuyen la cantidad de valores discretos para formar la señal portadora, se puede aumentar la frecuencia, de modo que si tenemos 8 valores discretos, la frecuencia de la portadora en la salida sería de 125KHz siendo capaz de transmitir hasta 125Kbps, con el inconveniente que a menor número de valores discretos, la portadora se vuelve más propensa a distorsiones ocasionadas por ruido.

4. Conclusiones

En éste trabajo se presentó el desarrollo e implementación de un transmisor digital de datos utilizando un esquema de codificación para el control de errores mediante códigos de Hamming y un esquema de modulación BPSK. Se llevó a cabo un análisis de los sistemas de comunicaciones digitales, de los lenguajes descriptivos de hardware y de la tecnología FPGA para la definición de la

Recursos UsadosPorcentaje

Utilizado

Flip-Flops 54 1%

LUT de 4 entradas 2494 26%

Segmentos Ocupados 1479 31%

Buffer de Entrada/Salida 13 5%

Buffers de Reloj 2 8%

La Mecatrónica en México, Vol. 4, No. 3, páginas 77 � 89, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

88

metodología que abarcara el diseño completo del transmisor. La validación del diseño del transmisor se hizo por medio de simulaciones que comprobaran el funcionamiento antes de llevarlo a la etapa de implementación para optimizar los tiempos de desarrollo. La implementación se realizó en una tarjeta de desarrollo Spartan-3E Starter Kit que contiene un DAC para la salida de la señal modulada.

Por medio de este trabajo se pudo comprobar que el desarrollo de sistemas de comunicaciones mediante tecnología FPGA es factible y que se pueden explotar los beneficios que ofrece, en especial la flexibilidad de diseño y el tiempo de desarrollo, gracias al concepto modular con el que se realiza la programación. En cuanto al funcionamiento del sistema en la tarjeta de desarrollo, los resultados son los esperados y la respuesta de la tarjeta comprueba que el paralelismo puro de las FPGA�s da una ventaja en el desarrollo de sistemas digitales complejos.

A diferencia de otros desarrollos mencionados anteriormente, donde el uso de XSG tiene la limitante de usar librerías exclusivas, por lo que esos desarrollos solamente pueden ser implementados en tarjetas de arquitectura Xilinx. Éste trabajo utilizó librerías estándar de la IEEE, permitiendo una mayor portabilidad y flexibilidad en el diseño para poder ser implementado en tarjetas de desarrollo con distintas arquitecturas, a su vez, el uso de librerías estándar permite que el diseño sea fácilmente reutilizable para futuros trabajos.

Referencias

[1] Romero J.,� Electrónica digital y lógica programable�. Universidad de Guanajuato, México. 1a edición, 2007.[2] Wayne T., �Sistemas de comunicaciones electrónicas�. Pearson Educación, México. 4a edición, 2003.[3] Couch II L., �Sistemas de comunicación digitales y analógicos�. Prentice Hall, México. 7a edición, 2002.[4] García M. & Pérez J., �Dispositivos lógicos programables (PLDs): diseño práctico de aplicaciones�. RA-MA. México. 2006.[5] Aceves M. & Ramos J., �Fundamentos de Sistemas Embebidos�, Asociación Mexicana de Mecatrónica A.C. México. 1a edición, 2012.[6] Van de Beek, R., Ciacci, M., Al-Kadi, G., Kompan, P., & Stark, M. �A 13.56 Mbps PSK receiver for 13.56 MHz RFID applications�. In Radio Frequency Integrated Circuits Symposium (RFIC). IEEE (pp. 239-242). 2012.[7] Garcia, J., & Cumplido, R. �On the design of an FPGA-Based OFDM modulator for IEEE 802.16-2004�. In Reconfigurable Computing and FPGAs, International Conference on (pp. 4-pp). IEEE. 2005.[8] Tsutsui, A., Miyazaki, T., Yamada, K., & Ohta, N. �Special purpose FPGA for high-speed digital telecommunication systems�. In Computer Design: VLSI in Computers and Processors, Proceedings. IEEE International Conference on (pp. 486-491). 1995.[9] Elamary, G., Chester, G., & Neasham, J. �An analysis of wireless inductive coupling for High Data Rate biomedical telemetry using a new VHDL n-PSK modulator�. In Electronics, Circuits, and Systems. 16th IEEE International Conference on (pp. 211-214). 2009.[10] Sánchez I., García M. Saldívar P., Montiel P., Sepúlveda R., & Charles R., �Modelado de circuitos lógicos digitales en Active HDL 5.1.�, VHDL�Encuentro de Investigación en Ingeniería Eléctrica 2006. (pp. 169-174). ENINVIE. 2006.[11] Bruce C., Crilly P. & Rutledge J., �Sistemas de comunicación�. McGraw-Hill, México. 4a edición, 2002.

La Mecatrónica en México, Vol. 4, No. 3, páginas 77 � 89, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

89

[12] Xilinx, Inc., �Spartan-3E FPGA Starter Kit Board User Guide�. 2011.[13] Linear, Technology. 2004. LTC2604/LTC2614/LTC2624 datasheet.[14] Digilent Inc. 2014. http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,897&Prod=NEXYS3&CFID=5644420&CFTOKEN=24ce718231f10800-1F4F5181-5056-0201-020930A9E23F6C12.

La Mecatrónica en México, Vol. 4, No. 3, páginas 90 � 103, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

90

Diseño, Modelado y Simulación de un Robot Bípedo

González Trejo José Enrique, Reyes Cruz Luis Ángel, Andrés Ernesto López Sandoval, Pedraza Ortega Jesús Carlos, Vargas Soto José Emilio, Delgado Rosas

Manuel.

Facultad de Informática, Universidad Autónoma de Querétaro.Av. de las Ciencias S/N Campus Juriquilla, Juriquilla, Querétaro, Qro.

C.P. 76230 México. Tel. 1921200 EXT. [email protected]

Resumen

Este trabajo propone una estrategia experimental para el diseño, construcción de un robot bípedo de 6 grados de libertad, de forma que se logre la manipulación total de los parámetros de diseño del robot bípedo, tanto de sus componentes de hardware como de software, basados en el modelo de la cinemática directa de una pierna del robot propuesto con los mismos grados de libertad,a fin de contar con una arquitectura abierta que permita adquirir conocimientos experimentales en las áreas de la robótica, programación, telemando y control, entre otras. Se pretende que el robot sea una herramienta y una base experimental que permita desarrollar trabajos de investigaciones futuras en éstas áreas.

La primera parte de la estrategia se basó en analizar trabajos realizados de robots bípedos con los mismos grados de libertad del robot propuesto. Analizar la forma de caminar humana para comprender sus diferentes fases y la relación que tienen con las partes del cuerpo que se involucran en este proceso biomecánico, posteriormente realizar el modelo cinemático directo de una pierna del robot para observar el comportamiento al modificar sus parámetros que nos ayude a comprender mejor los movimientos que se realizan en el proceso de caminata así como los posibles movimientos que realice el robot bípedo.

La segunda parte de la estrategia se refiere al análisis de los materiales y piezas necesarias para construir el robot, tales como los servomotores, el micro-controlador y los componentes electrónicos, así como el diseño y construcción de las piezas que componen el robot bípedo y su ensamble.

Se diseñó un algoritmo básico para generar el movimiento de los servomotores basado en el modelo cinemático directo que se analizó y se realizaron pruebas exhaustivas de estabilidad con los movimientos generados. Se analizaron las limitaciones del robot y las posibles mejoras y adecuaciones.

Palabras clave: Robot bípedo, humanoide, biomecánica, Cinemática directa.

1. Introducción

La robótica está tomando un papel muy importante en el desarrollo de la sociedad ya que cada vez hay más robots que desempeñan tareas que realiza el ser humano y que se implementan en procesos industriales, automatización y control, mediante movimientos y acciones similares como la locomoción humana. En este línea de estudio de la robótica, la parte más difícil es la de mantener el equilibrio de robot, ya que se necesita de una gran cantidad de sensores y actuadores para realizar la

La Mecatrónica en México, Vol. 4, No. 3, páginas 90 � 103, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

91

tarea, además de que se sabe que la forma de caminar de las personas no es similar al igual que en los diferentes tipos de robots bípedos en la actualidad, pero gracias al desarrollo e innovación de este proceso por parte de los investigadores, se han generado conocimientos sobre la biomecánica asociada a la forma de caminar y los patrones de movimiento de los músculos y las demás partes involucradas en este proceso.

Entre más articulaciones tenga un robot, más destreza y capacidad tendrá para realizar tareas, pero la complejidad del diseño, construcción y control se vuelve más complejo [1]. Para poder construir un robot útil, podemos seguir dos enfoques: construir un robot especializado para una tarea en particular que pudiera llegar a ser compleja, o bien construir un robot universal que pueda realizar una amplia variedad de tareas más sencillas o de menor dificultad y tal vez solo en ciertos ambientes o situaciones.

En la actualidad existe una amplia variedad de robots humanoides y bípedos tanto prototipos desarrollados por grupos de investigación de distintas Universidades, así como robots construidos por empresas con tecnología de punta y gran presupuesto, y que algunos han salido al mercado.

El E0 en el año 1986 fue el primer intento de Honda de crear un robot humanoide con capacidad de caminar. Este robot era capaz de caminar en línea recta poniendo una pierna después de la otra, sin embargo su desplazamiento era muy lento, requiriendo de cinco segundos entre cada paso [2].

Más adelante, en el 2000, ASIMO, el robot humanoide más avanzado del mundo hace su debut. Este menudo robot es el resultado de catorce años de investigación por parte de la empresa japonesa Honda Co. Su desarrollo marca un conocimiento innovador sobre la mecánica de la locomoción bípeda. En el año 2005 el nuevo ASIMO se crea para aplicaciones profesionales tales como repartir café, entregar mensajes, empujar carritos, entre otras tareas, además de su nueva capacidad de correr a la velocidad de 6 Km/h [3].

El robot NimbRo-OP desarrollado por la Universidad de Bonn en Alemania, mide 95 centímetros y pesa 6.6 kilogramos, utiliza servomotores Dynamixel y el sistema operativo ROS diseñadoespecialmente para trabajos de robótica e inteligencia artificial, posee 20 grados de libertad, conexión WiFi y la característica más sobresaliente es que constituye un proyecto de plataforma abierta, diseñado para trabajos de investigación en campos como la inteligencia artificial [4].

El robot humanoide �HRP-4C�, desarrollado por un equipo científico del Instituto Nacional de Ciencia y Tecnología Industrial Avanzada de Japón, mide 1,58 centímetros, pesa 43 kilogramos ytiene un rostro de silicón. Este robot reconoce la voz y puede imitar los movimientos del cuerpo humano, por lo que se podría utilizar tanto en la industria del entretenimiento, como sustituyendo a trabajadores humanos en las pruebas de seguridad en el ámbito industrial. El robot puede simular alegría, sorpresa o enfado gracias a los ocho motores ocultos bajo su rostro, que obedecen a las órdenes humanas. El humanoide mueve su cuerpo articulado de aluminio negro y plateado, gracias a otros treinta motores, que le permiten mover los brazos y las piernas, además de caminar [5].

2. Estrategia

El objetivo es diseñar y desarrollar un prototipo de un robot bípedo experimental de arquitectura abierta (utilizando plataformas como Arduino y Processing), que permita la libertad de modificar tanto el software como el hardware del robot bípedo, dando así a conocer una propuesta del diseño mecánico del robot, utilizando componentes comerciales, de bajo costo y de fácil adquisición; que sea capaz de mantener el equilibrio y realizar una caminata básica para un posterior análisis que nos permita construir una estrategia de locomoción heurística basada en un modelo de cinemática directa que sirva como ayuda para trabajos futuros en esta misma rama de la robótic-a. La figura a continuación muestra el proceso de la estrategia utilizada.

La Mecatrónica en México, Vol. 4, No. 3, páginas 90 � 103, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

92

Figura 1. Estrategia propuesta utilizada.

2.1 Análisis de la locomoción humana

Lo primero que hay que entender en el análisis de la locomoción humana es que el caminar es un proceso cíclico, por lo tanto se puede dividir en fases. La manera como se determinan las fases que componen el proceso, depende de la forma como se esté analizando el proceso de caminar: a) sepuede analizar haciendo referencia a todo el cuerpo y como es soportado por cada pierna, o b) se puede analizar el movimiento que realiza cada pierna por separado [6].

Al analizar el proceso de cada pierna por separado, se tiene que el ciclo del caminado consta de 2 fases: fase de soporte doble y fase de soporte único. La fase de soporte doble consta del movimiento que hacen las dos piernas cuando están apoyadas al suelo, por lo que el punto de equilibrio y el peso se distribuye entre las dos piernas; mientras que en la fase de soporte único solo una pierna a la vez está apoyada al suelo y la cual se encarga de mantener el peso del cuerpo y el equilibrio de un solo lado.

El prototipo del robot bípedo se basa en un diseño, en el cual se sigue una secuencia de movimientos mediante su cinemática directa para lograr una forma de caminar con un enfoque similar a la locomoción humana. Los movimientos son poses en diferentes estados, moviendo sus articulaciones un cierto ángulo y determinando las posiciones finales de sus eslabones de tal maneraque permite al robot moverse y al ser repetitivo este proceso permite desplazarse al robot bípedo.

Para el planteamiento del equilibrio en la locomoción del robot bípedo se utilizó el criterio de estabilidad estática, al momento de dar un movimiento con la pierna derecha y no perder el equilibrio,inclinamos la estructura del robot a la izquierda de tal manera que desplazamos el peso del cuerpo hacia la izquierda. La pierna izquierda se convierte en el apoyo del cuerpo y se puede levantar la pierna derecha sin caerse, de esta forma se compensa el centro de gravedad. A este proceso se le

La Mecatrónica en México, Vol. 4, No. 3, páginas 90 � 103, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

93

conoce como fase de soporte único en el cual el pie a que se hace referencia del soporte, es que se encuentra apoyado sobre el suelo y relativamente estacionario y es el encargado de mantener el peso del cuerpo, por lo que se convierte en la base del robot. El inicio de esta fase se observa cuando la pierna que se va a levantar deja el suelo siendo la punta del pie lo último que está en contacto con él; termina cuando se toca el suelo con el talón de la misma pierna, como se muestra en la figura 2.

Figura 2. Fase de soporte único derecho [6].

El sistema que describe el movimiento de las piernas del robot consiste de 3 articulacionesprismáticas, una de ellas en el tobillo que permite inclinar la estructura del robot hacia un lado, las otras dos articulaciones se encargan del movimiento de flexión, desplazamiento de la rodilla y de la cadera respectivamente. La figura 3 muestra el diagrama de las articulaciones prismáticas con su sistema de coordenadas correspondiente de una pierna del robot [7][8].

-Figura 3. Diagrama de las articulaciones del robot bípedo.

Utilizando el diagrama de las articulaciones con sus sistemas de referencias, se obtuvieron los parámetros de Denavit-Hartenberg para el modelado de la cinemática directa de la pierna del robot. Estos parámetros además de un conjunto de transformaciones de translación y rotación nos permiten conocer la orientación y posición de cada uno de los eslabones de la pierna del robot respecto a la

A1

A2

A3

X1 Z1

Y1

Z2

X2Y2

X3Y3

Z3

La Mecatrónica en México, Vol. 4, No. 3, páginas 90 � 103, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

94

base del robot. Los parámetros obtenidos de acuerdo a la convención de Denavit-Hartenberg son listados en la tabla 1.

Tabla 1. Parámetros de Denavit-Hartenberg para la pierna del robot.

Articulación d a

11q 0

1l 90°

22q 0

2l 0°

3 3q 4l 3l 0°

La solución de la cinemática directa mediante el algoritmo de Denavit-Hartenberg da como resultado una matriz de transformación homogénea por cada uno de los eslabones de la cadena articulada del robot respecto a una base fija o sistema de referencia 0 [9]. Estos sistemas pueden ser representados mediante una matriz

i

i A1 donde i es el eslabón al que se realiza la transformación de

coordenadas respecto al eslabón i-1, quedando la matriz del eslabón final respecto a la base del robot de la siguiente manera:

3

2

2

1

1

0

3

0 ** AAAA (1)

1000

3

0

zazoznz

yayoyny

xaxoxnx

prrr

prrr

prrr

A (2)

Donde:

1coscoscoscos 232

2

1 qqqqrnx

1coscoscossin 232

2

1 qqqqrny

322 coscossin qqqrnz

3221 sinsincoscos qqqqrox

3212 sinsinsincos qqqqroy

1sinsinsin 232

2 qqqroz

1cosqrax

1cosqray

0azr

22323411 cos)cos(cos qlqqlllqpx

32123231221411 sinsinsinsincoscossincoscossin qqqqqqlqqlqlqlp y

22323 sin)sin( qlqqlp z

La Mecatrónica en México, Vol. 4, No. 3, páginas 90 � 103, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

95

Teniendo esta serie de matrices, se puede determinar la orientación y posición de cada uno de los eslabones de la pierna del robot, respecto a la base, que en este caso es el pie apoyado al piso.Utilizando este modelo, se realizó una animación para analizar el comportamiento, flexiones ymovimientos posibles que pueda realizar una pierna del robot bípedo. La figura 4 muestra la animación de la cinemática directa realizada de la pierna con tres grados de libertad del robot bípedo con los parámetros obtenidos de Denavit-Hartenberg. Mediante una línea discontinua se muestra el eslabón final respecto a la base. Una demostración más detallada de la animación, así como una muestra del código generado, se puede observar en el siguiente enlace (Youtube: http://youtu.be/EW6a4qZmk0U ).

Figura 4. Animación cinemática directa de la pierna del robot bípedo.

Una vez realizado el análisis anterior, se procedió a diseñar el algoritmo a implementar en la caminata del robot, el cual se muestra a continuación:

1. Flexionar y levantar la pierna hacia delante mientras que el tobillo de la otra pierna gira hacia el costado opuesto de la pierna levantada para que el peso sea soportado por esa pierna y equilibrar el cuerpo.

2. Desplazar hacia delante la cadera de la parte de la pierna que está levantada y flexionar un poco la rodilla de la otra pierna.

3. Flexionar un poco más la pierna de apoyo, girar hacia delante el tobillo de la otra pierna y estirarla hasta tener apoyo con el suelo y así queda distribuido el peso en las dos piernas.

4. Estirar y desplazar hacia delante la parte de la cadera de la pierna que soportaba todo el peso y girar el tobillo hacia delante para que siga apoyado en el piso y flexionar un poco la rodilla de la otra pierna.

2.2 Diseño y construcción del robot

La Mecatrónica en México, Vol. 4, No. 3, páginas 90 � 103, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

96

El diseño del robot bípedo se efectuó considerando una locomoción humana constante, la cual consiste en caminar en una sola dirección. El esquema del exoesqueleto está representado como una cadera articulada que incluye las dos piernas constituidas por: un pie, una rodilla y un muslo; la cadera se encarga de unir las dos piernas por los muslos, como se muestra en la figura 5.

Figura 5. Robot bípedo de 6 grados de libertad.

Cada pierna consta de articulaciones rotacionales: el tobillo, la rodilla y la cadera unidas por eslabones entre cada una de las articulaciones. Las piernas solo tienen movimiento sobre dos ejes, por lo que los movimientos que pueden realizar son limitados para el proceso de la caminata a ejecutar.

Para la elaboración del prototipo del robot bípedo se realizaron comparaciones de materiales como se muestra en la tabla 2 con la final de determinar cuál material es el más adecuado para la construcción del robot.

Tabla 2. Comparación de materiales.

Material Maleabilidad Resistencia Peso

Madera Baja Media Medio

Acrílico Media Media Baja

Aluminio Alta Alta Medio

Plástico Alta Medio Bajo

Se utilizó un sistema de prueba y error en la manipulación de materiales de bajo costo (acrílico y madera) para la construcción del prototipo del robot bípedo, porque de acuerdo con los parámetros determinados para la construcción deberían ser de costo bajo, fácil maleabilidad y ligeros, ya el objetivo es construir un prototipo sencillo.

Como resultado final se utilizó la madera por su resistencia, maleabilidad y facilidad para la construcción y durabilidad de las piezas.

La estructura del robot bípedo es propia ya que el diseño de las piezas se adaptó a las dimensiones de los servomotores Power-HD 1160 (28 x 13.2 x 29.6 mm), los cuales se escogieron por

La Mecatrónica en México, Vol. 4, No. 3, páginas 90 � 103, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

97

su fácil implementación, bajo consumo de energía y costo accesible. Las dimensiones de las piezasexpresadas en milímetros se muestran en la siguiente figura.

Figura 6. Diseño de pieza para sujeción del servomotor Power-HD 1160.

Las piezas están diseñadas de forma prismática para la sencilla unión entre las articulaciones: muslo, rodilla y pie, que conforman la pierna del robot bípedo (Figura 6), evitando lo más posible la fricción de las piezas y los servomotores de tal manera que el eje de giro de la articulación tenga libertad de movimiento.

El diseño particular de la pieza que une los servomotores del muslo y rodilla del robot bípedo es una adaptación propia que se implementó de acuerdo al tipo de movimiento que el robot tiene que generar como se muestra en la figura 6, permite una mejor estabilidad al permanecer los servomotores en una posición rígida y las aspas realicen el movimiento de las piezas hacia arriba y abajo; este mismo fenómeno sucede con los servomotores que están unidos a la cadera, que al realizar el servomotor el movimiento de rotación levanta toda la pierna del robot hacia delante y atrás; El servomotor que se encuentra en medio de la estructura se encarga de flexionar la pieza que conforman la rodilla y el pie del robot bípedo; simulando el punto de unión entre el primer y segundo eslabón como se puede observar en el modelado cinemático realizado. La tabla 3 muestra las características específicas de peso, dimensiones y propiedades mecánicas y electrónicas del robot bípedo mientras que la figura 7 muestra el diseño completo de la pierna del robot con sus dimensionesexpresadas en milímetros y mostrando la posición de los servomotores que corresponden a cada una de las articulaciones.

Tabla 3. Características del robot bípedo.

Característica Valor

Peso 410gr

Altura 20cm

gAncho 16cm

Grosor 6.5cm

Grados de libertad 6 (3 por pierna)

Torque 0.5 Kg-cm

Alimentación 5 Volts

Corriente 40 mA por Servomotor

La Mecatrónica en México, Vol. 4, No. 3, páginas 90 � 103, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

98

Figura 7. Diseño de la pierna del robot bípedo.

2.3 Diseño electrónico y programación

Se construyó el robot con un sistema de arquitectura abierta, los dispositivos electrónicos comerciales y open source, permiten modificar tanto el hardware como el software de manera parcial o total. El hardware está basado en el microcontrolador de la placa Arduino UNO y los servomotores Power HD-1160, con un torque de 2Kg-cm y un consumo de hasta 160 mA a 4.8 V [10].

Los servomotores permite controlar la posición con una rotación de 0-180°, permitiendo establecer y mantener una posición fija, respetando el torque del motor. Los servomotores se controlan usando una Modulación Por Ancho de Pulso (PWM) que genera una onda cuadrada en donde cambia la frecuencia de pulso y al variar este ancho de pulso se consigue modificar el ángulo de giro del servomotor.

La Mecatrónica en México, Vol. 4, No. 3, páginas 90 � 103, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

99

Figura 8. Placa de alimentación de los servomotores y placa Arduino Uno.

Arduino es una plataforma de electrónica abierta para la creación de prototipos basado en software y hardware flexibles y fáciles de utilizar, el software está basado en el lenguaje de programación propio de Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing) [11]. La tarjeta Arduino tiene 14 pines digitales de entrada / salida (de las cuales 6 se puede utilizar como salidas PWM) y 6 entradas analógicas.

Se diseñó una placa para la alimentación y control de los servomotores que va unida a la placa de Arduino UNO como se puede observar en la figura 8. Estas dos placas forman la parte electrónica del robot que se encuentra situada en el torso del robot de forma que el peso quede equilibrado para afectar lo menos posible el comportamiento del robot, como lo muestra la figura 5. La alimentación del circuito se da mediante la placa Arduino que está conectada vía USB a una computadora, por lo queel voltaje proporcionado es de 5 Volts y con un máximo de corriente de 500mA. La corriente total que consume el circuito varía dependiendo el toque que van requiriendo los servomotores para realizar los movimientos. La corriente promedio obtenida de varias mediciones con distintos movimientos y poses fue de 180mA, pero puede llegar hasta 230mA cuando los servomotores están en movimiento ymanteniendo una posición donde se cargue el peso en una de las piernas del robot.

La Mecatrónica en México, Vol. 4, No. 3, páginas 90 � 103, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

100

//mientras esté disponible el serialwhile (Serial.available()) {// obtenemos un nuevo byte y hacemos una resta en codigo ascii // para la conversión del byte a numero; 0 = 48int inChar = Serial.read()- '0';

//Processing envía la información de cada servo separado por una coma//cuando encontramos una coma procesamos los valores obtenidosif (inChar == ',' - '0'){

double valor = 0;//variable para almacenar el ángulo int i = contador-1;//variable para la potencia a la que se va //elevar el digito en su correspondiente posición contador = 0; //ciclo para convertir cada digito a su valor relativo a la posición for(; i >= 0;i--){ valor = valor + inputString[contador]*pow(10,i); contador++; } //reiniciamos el contador de los dígitos contador = 0; Serial.println(valor); servos[cServos] = valor;//almacenamos el valor convertido cServos++;//aumentamos el contador de los servos //cuando tenemos los valores de todos los servos if(cServos == NUMERO_SERVOS){ //escribimos los valores de los servos Cadera_R.write(servos[0]; Rodilla_R.write(servos[1]); Tobillo_R.write(servos[2]); Cadera_L.write(servos[3]; Rodilla_L.write(servos[4]); Tobillo_L.write(servos[5]); cServos = 0;//reiniciamos el contador de los servos }

}else{ //almacenamos el digito obtenido en el arreglo y aumentamos el contador inputString[contador] = inChar; contador++;

}//fin del if-else} //fin del while

Figura 9. Diagrama de flujo y fragmento de código del software del robot bípedo.

Mediante comunicación serial se controlaron los servomotores del robot para la generación de secuencias, mediante un mecanismo de prueba y error. El diagrama de flujo de programa implementado en Arduino y un fragmento del código, se muestra a continuación.

3. Resultados

Uno de los importantes resultados obtenidos es la animación que nos permite observar y analizar la cinemática directa primeramente de la pierna de un robot con tres grados de libertad para posteriormente pasar al desarrollo completo del robot bípedo de seis grados de libertad, es decir, tres grados por pierna.

En lo referente a la animación de una sola pierna del robot bípedo primeramente podemos decir que la animación realizada de la cinemática directa es una técnica usada en gráficos por computadora, para calcular la posición de partes de una estructura articulada a partir de sus

La Mecatrónica en México, Vol. 4, No. 3, páginas 90 � 103, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

101

componentes fijas y las transformaciones inducidas por las articulaciones de la estructura. Como observamos vamos a tener la última posición del eslabón final con respecto al inicial que es fijo.

Utilizando esta parte de la investigación se logró tener una referencia para la consecuente secuencia de movimientos que se desarrolló para el robot bípedo. Esto es de gran importancia para tener mejor referenciada la ubicación de la posición de los eslabones conforme vaya variando ennuestro ciclo de caminata.

También se logró la implementación de movimientos cíclicos que nos permiten de primera instancia caminar sobre una superficie, es decir, únicamente se obtuvo un desplazamiento frontal. Asimismo hay que destacar que el robot bípedo no posee la capacidad de rotar hacia otra dirección; las piernas se deslizan por el suelo manteniendo en todo momento contacto con el suelo, por lo cual no exista la posibilidad de que el robot pueda caer. Sin embargo, se percibe que pueden mejorar dichos movimientos cíclicos basándonos en nuestro sistema de referencias obtenido con la cinemática directa, efectuando un rediseño adecuado del robot para mayor movilidad en las piernas.

Este prototipo es importante porque se pueden analizar y detectar los errores de diseño, elección de material y el estudio para la implementación de servomotores de uso específico en robótica.

Para lograr la locomoción del robot se utilizaron tres diferentes estados de desplazamiento que se obtuvieron conforme al comportamiento que mostraba la estructura en relación con los movimientos generados por los servomotores. Los estados de desplazamiento del robot y los movimientos realizados por los servomotores (representados por posiciones angulares) se muestran en la tabla 3. Un ejemplo de las pruebas realizadas para la generación de secuencias del robot bípedo, así como una muestra de los resultados obtenidos, se puede observar en el siguiente video (youtube: https://www.youtube.com/watch?v=shSf4Hga8xQ ).

Tabla 4. Representación de posiciones angulares.

Servomotor 1era posición 2da posición 3era posición

Cadera D. 40° 90° 40°

Rodilla D. 140° 90° 140°

Pie D. 100° 90° 100°

Cadera I. 140° 90° 140°

Rodilla I. 40° 70° 40°

Pie I. 110° 80° 110°

La posición inicial de los servomotores es de 90°, el desplazamiento de la posición inicial a la 1era posición se requiere para darle un estado al robot donde pueda ciclar el movimiento de locomoción. Las 3 posiciones mostradas en la tabla 4 son el ciclo de locomoción del robot bípedo que se muestran en la figura 10.

4. Conclusiones

En este trabajo se describió el diseñó y el desarrollo un robot bípedo con la finalidad de comprender los aspectos fundamentales de la robótica humanoide y en específico los elementos que intervienen en el desarrollo de un robot bípedo.

Se realizó un modelado matemático de la cinemática directa del robot bípedo así como una simulación que sirvió como punto de partida para la construcción del prototipo, aportando conocimientos experimentales para la investigación, siendo de utilidad este prototipo como antecedente para futuros proyectos de esta área.

La Mecatrónica en México, Vol. 4, No. 3, páginas 90 � 103, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

102

Como se mencionó en el apartado de resultados es imperativo y posible mejorar los movimientos mecánicos y cíclicos del robot bípedo no solamente con lo establecido previamente como la cinemática directa si no también con el desarrollo completo de la cinemática del robot bípedo, es decir, considerando la cinemática inversa y diferencial, así como en un futuro la correcta implementación de algoritmos de control como un PID.

Asimismo se propone como trabajo futuro, diseñar y construir un robot bípedo que realice su locomoción de forma más similar a la humana, implementando un sistema con 12 grados de libertad, tomando como base de desarrollo los resultados aquí expuestos, además de la realización de un modelado matemático más elaborado que nos permita analizar tanto la cinemática como la dinámica asociada al proceso de caminar en éste tipo de robots.

Figura 10. Secuencia de movimiento de la pierna derecha.

Referencias

[1] Aníbal B., �Robotica (manipuladores y robots móviles)�, Alfaomega � Marcombo, España, 1ra edición, 2001.[2] Historia de los robots de Honda, http://www.abadiadigital.com/historia-de-los-robots-de-honda-del-proyecto-e0-a-asimo/ [Fecha de consulta: 10 de julio de 2013].[3] ASIMO website, http://asimo.honda.com/ [Fecha de consulta: 10 de julio de 2013].[4] NimbRo-OP website, http://www.nimbro.net/OP/ [Fecha de consulta: 2 de Febrero de 2014].[5] Kajita S., Morisawa M., Miura K., Nakaoka S., Harada K., Kaneko K., Kanehiro F., Yokoi K., "Biped Walking Stabilization Based on Linear Inverted Pendulum Tracking�, Proceedings of 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems, pp.4489-4496, 2010.[6] Rodríguez A., Cruz C., Vite, A., �Generación de trayectorias para marcha semi-estática de un robot bípedo: diseño y pruebas experimentales�, Ingeniería, Revista Académica de la FIUADY, 15-2, pp 57-68, ISSN: 1665-529-X, 2011.[7] Craig J., �Introduction to Robotics Mechanics and Control�, Pearson Education Inc, United States of America, 3ra edición, 2005.

La Mecatrónica en México, Vol. 4, No. 3, páginas 90 � 103, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

103

[8] Spong M., Hutchinson S., Vidyasagar M., �Robot Modeling and Control�, John Wiley Sons, INC. 1st Edition, United States, 2005.[9] Barrientos A., Peñin L., Balaguer C., Aracil R., �Fundamentos de Robótica�, MacGraw-Hill, España, 1ra edición, 1997.[10] PoweHD-1160-A datasheet, http://www.pololu.com/file/0J318/HD-1160A.pdf [Fecha de consulta: 20 de julio de 2013].[11] Arduino website, http://arduino.cc [Fecha de consulta: 20 de julio de 2013].

La Mecatrónica en México, Vol. 4, No. 3, páginas 104 � 111, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

104

Sistema de señalización de movimiento basado en dispositivos Android y Flujo Óptico

Blanco-Silva Gonzalo-Elías, Jesús Carlos Pedraza Ortega, Efrén Gorrostieta Hurtado, Juan Manuel Ramos Arreguín

Universidad Autónoma de Querétaro, Facultad de InformáticaAv. de las Ciencias S/N Campus Juriquilla, Juriquilla, Querétaro, Qro.

[email protected]

Resumen

Se presenta un sistema de señalización de movimiento para plataformas móviles, el cual emplea como núcleo de funcionamiento el algoritmo de Horn & Schunck, el cual es un algoritmo para determinación de la dirección del movimiento y la velocidad de movimiento de puntos en una imagen, que es ampliamente conocido en cuanto a algoritmos de Flujo Óptico se refiere. Se efectúa el desarrollo del sistema y su comparativa de desempeño con una Computadora Personal empleando dispositivos móviles y el software Matlab con la finalidad de analizar los errores de medición entre ambos dispositivos y su respectivo tiempo de cómputo.

Palabras clave: Android, Flujo Óptico, Android, Dispositivo Movil.

1. Introducción

La estimación del movimiento es el proceso mediante el cual se estiman las velocidades de objetos desplazándose en un espacio 3D y sus respectivas proyecciones en un plano 2D. Este tópico se encuentra sujeto a múltiples investigaciones y cuenta con una amplia variedad de algoritmos los cuales pueden ser clasificados de múltiples maneras. Una tentativa es la propuesta por Tabatabai [1], donde una primera clasificación es la existente entre técnicas de detección del movimiento 3D y técnicas de detección del movimiento 2D. Dentro de cada técnica existen distintos métodos que a su vez, algunos de ellos, pueden sub-clasificarse, y al mismo tiempo complementase con la clasificación propuesta por Barrón [2] tal como se muestra en la Figura 1. Dentro de esta diversidad de técnicas surgen dos enfoques el primero denominado campo de movimiento, el cual es una representación bidimensional de un movimiento tridimensional, y el segundo un enfoque que analiza el movimiento a partir de la obtención del flujo óptico, el cual implica la determinación la dirección del movimiento y la velocidad del movimiento en todos los puntos de la imagen [3].

Siendo este último la mejor medida del movimiento en el espacio bidimensional, y que aún hoy en día continúa siendo campo de investigación en busca de nuevas estrategias [4], métodos de evaluación [5] y técnicas para su cálculo [6, 7]. La razón es que los sistemas de visión artificial todavía no han logrado calcularlo de forma óptima (precisión elevada en poco tiempo).

Sin embargo, el cómputo del flujo óptico así como de algunos otros algoritmos, sufre de alta complejidad computacional. Es decir contrario a tareas donde no existe un requerimiento temporal, aplicaciones robóticas y espaciales, generalmente requieren el cómputo del flujo óptico en tiempo real. Así mismo, dada la aplicación el flujo óptico puede ser solo parte de un pre-procesamiento, lo que implica que debe contar con cierto requerimiento espacial que permita compartir recursos con otros procesos. Aunado a esto y según el dominio que se desee abordar, en algunos casos es necesario contar con cierta autonomía energética, y tener en consideración ciertas limitantes tanto de peso como de espacio [3].

La Mecatrónica en México, Vol. 4, No. 3, páginas 104 � 111, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

105

Por lo cual resulta explorar los las estrategias dominantes en cuanto a la implementación de algoritmos y aplicaciones, si bien tradicionalmente los dispositivos y arquitecturas que toman forma de este tipo de procesos y aplicaciones son PCs, Procesadores Digitales de Señales (DSP por sus siglas en inglés), Microcontroladores y más recientemente Arreglos de Compuertas de Campo Programables (FPGA por sus siglas en inglés) [3], no se cuenta con la exploración de aplicaciones en cuanto al panorama informativo dominante actual, el cual tiende al uso de dispositivos móviles para esta finalidad [8].

Figura 1.- Clasificación de las distintas técnicas para el análisis del movimiento, propuesta por Tabatabai (1998), con su respectiva complementación por Barrón (1994).

Si bien este panorama cuenta con limitaciones del mundo real y el entorno operativo de dispositivos móviles es diferente al tradicional. Es importante resaltar que dispositivos móviles cuentan con el hardware necesario para adaptar una amplia variedad de aplicaciones, tal como pueden ser algoritmos de flujo óptico y es necesario explorar las capacidades de los mismos.

Considerando este el presente artículo plantea el desarrollo de un sistema de señalización de movimiento empleando algoritmos de Flujo óptico, sobre una plataforma móvil con sistema operativo Android, el cual pueda ser adaptado a cualquier dispositivo móvil, así como explorar las limitantes, ventajas y desventajas, que surgen al emplear este tipo de plataformas dentro del marco de algoritmos de Flujo Óptico. En particular ha sido seleccionado el algoritmo de Horn & Schunck [3], debido a su simplicidad y desempeño en comparación con algoritmos similares [2, 4].

2. Algoritmo de Horn & Schunck

En todas las estrategias de estimación de flujo óptico se parte de la hipótesis de que los niveles de gris permanecen constantes ante movimientos espaciales en un tiempo dado. Dicha hipótesis da lugar a la ecuación general de flujo óptico (1).

( 1 )

Donde corresponde a la representación escalar que representa la intensidad de cada

pixel en niveles de la escala de grises en un tiempo o dimensión temporal t. El interés radicara en

obtener el campo vectorial de condensación local que representa el desplazamiento del patrón de iluminación, tal como lo presenta la Figura 2.

La Mecatrónica en México, Vol. 4, No. 3, páginas 104 � 111, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

106

Figura 2.- Desplazamiento de patrones de iluminación en una imagen, representando la constancia de intensidad de cada pixel.

Así bien considerando que la intensidad luminosa varía de forma suave respecto de ydesarrollando por series de Taylor se tiene:

( 2 )

Donde es el conjunto de términos de segundo orden y superiores. Así, despreciando , cancelando

de ambos lados de la igualdad, dividiendo por

y

y considerando que este tiende a cero, se obtiene la ecuación:

( 3 )

Que puede ser representada, de forma más compacta, como:( 4 )

Donde son las derivadas parciales de la imagen respecto a respectivamente, y representa el vector de flujo óptico en cada punto a determinar. Esta expresión es conocida como la "Ecuación de restricción de flujo Óptico" (ERFO) [6].

Sin embargo (4) cuenta con dos vectores desconocidos y en una sola ecuación lineal. Por lo que es necesario introducir ciertas restricciones adicionales a fin de poder calcular estos vectores. Horn & Schunck (1981) introduce una ecuación adicional de restricción de suavidad. Esta segunda restricción es desarrollada en base a la observación a menudo en secuencias de video, los pixeles vecinos a un pixel de la imagen están sujetos a un movimiento similar al del pixel mismo. Este comportamiento resulta en un vector de campo de suave variación y una ecuación de restricción de la suavidad. El término de restricción es obtenido definiendo una función de costo adecuado. El primer componente de este costo es para representar el monto total de cambio en la imagen como una función de la posición de la imagen (x, y). Calculado como el cuadrado de las magnitudes de los gradientes de los vectores de flujo óptico y dado por:

( 5 )Otro componente de la función de costo es acerca de la constancia de iluminación sobre una misma secuencia de imágenes:

( 6 )Dado (10) y (11), el problema puede ser reformulado como una minimización combinada de la función de costo calculado sobre la imagen completa:

( 7 )

Aquí, es un término de peso usado para ajustar la contribución relativa de los dos términos en la

función de costo. Es posible ajustar la suavidad del campo de flujo óptico mediante el ajuste de . Incrementando el valor de este parámetro se incrementara el peso del termino de suavidad en la función de costo y por lo tanto, el algoritmo dará lugar a un campo de flujo óptico más suave. Este parámetro juega un papel importante solo para áreas donde el gradiente de iluminación es pequeño, previniendo ajustes aleatorios para la estimación de la velocidad de flujo ocasionados por ruido en la estimación de las derivadas. Esta formulación acepta que durante la minimización, la iluminación se verá minimizada pero no será exactamente cero. Este no es un problema debido a que en la práctica los valores de iluminación cambian muy levemente para ruido o cuantización de errores.

La Mecatrónica en México, Vol. 4, No. 3, páginas 104 � 111, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

107

Los valores del par que minimizan la función de costo presentada en (12) son el vector de campo del flujo óptico. Esto puede ser reformulado en la Ecuación (13):

( 8 )

La Laplaciana de y puede ser aproximada usando la expresión mostrada en la Ecuación 14 donde

y corresponden al promedio local de y respectivamente:

( 9 )

Reemplazando las Laplacianas de y con su aproximación dada en (14), la Ecuación 13 puede ser reescrita como en (15).

( 10 )

Resolviendo y de la Ecuación (15), los vectores de flujo óptico son:

( 11 )

En la práctica, la solución es obtenida por el método iterativo de Gauss-Seidel:( 12 )

Donde representa el número de iteración. Para el desarrollo computacional de la Ecuación (17), los gradientes y Laplacianos pueden ser estimados numéricamente. Esto es posible mediante diversas formas. Para el cálculo del gradiente, Horn & Schunck (1981) utiliza una diferenciación de primer orden en un arreglo de ocho pixeles mostrado en la Figura 3.a. El Laplaciano es estimado mediante la substracción del valor en un punto promedio, ponderando los valores de los pixeles vecinos. Ellos aproximan la Laplaciana de los vectores de campo mediante el uso de una máscara de 3x3 mostrada en la Figura 3.b, para el cálculo de los promedios locales de vectores de flujo óptico, donde los

subíndices representan los números de fila, columna e imagen respectivamente. Haciendo uso

de la máscara presentada en la Figura 3.a, el cálculo de puede ser obtenido como en la Ecuación

(18), de igual forma para los gradientes y .

( 13 )

Figura 3.- (a) Calculo número de usando diferenciación de primer orden de ocho pixeles. Indican fila, columna y número de imagen respectivamente. (b) Matriz de peso de 3x3 para la estimación

de promedios locales y de los vectores de flujo óptico. La imagen es presentada en [4].

La Mecatrónica en México, Vol. 4, No. 3, páginas 104 � 111, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

108

3. Desarrollo

Una vez considerado el algoritmo y considerando su naturaleza se prosigue a su implementación en el entorno seleccionado, para lo cual se plantea el diagrama a bloques presentado en la Figura 4.

Figura 4.- Diagrama a bloques del algoritmo seleccionado.

Dentro del cual el bloque principal representa una arquitectura general de procesamiento de imágenes[9]; es decir mediante una etapa de adquisición, procesado y etapa final, la cual represente una interpretación del movimiento en la escena, tal como se presenta en la Figura 5.

Figura 5.- Etapas que constituyen un sistema para el procesamiento de imágenes.

Y el algoritmo únicamente representa una etapa intermedia de la etapa de procesamiento, la cual se encontrara aunada a un sistema de interpretación de valores de salida del algoritmo, a fin de identificar movimiento en la escena.

3.1 Desarrollo del sistema de monitoreo en entorno Android.

Una vez definidas las etapas y jerarquía de las mismas, es necesario elaborarlas en un entorno de programación que permita la generación de paquetes para el sistema operativo Android; es decir la generación de un archivo apk. El cual es un formato empleado para distribuir e instalar componentes empaquetados para la plataforma Android y contiene un conjunto la información necesaria para el funcionamiento del sistema. Este tipo de archivos pueden ser desarrollados por programas tales como Eclipse IDE o Android Studio, las cuales son plataformas empleadas para el desarrollo de entornos de desarrollo integrados (por sus siglas en inglés IDE) [8].

Así pues se prosigue al desarrollo de un sistema de procesamiento de imágenes que emplee la cámara de un dispositivo Android como dispositivo de adquisición, la pantalla del mismo como dispositivo de salida e internamente se desarrolle la etapa de procesamiento encargada del sistema de vigilancia y monitoreo. Para ello se ha escogido el entorno Eclipse IDE con los complementos

La Mecatrónica en México, Vol. 4, No. 3, páginas 104 � 111, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

109

necesarios. Teniendo como resultado un sistema que efectúa una comparativa entre pixeles con desplazamiento en la imagen mediante un umbral porcentual de los mismos si este umbral es superado se emplea una discriminación de colores para el reconocimiento de movimiento en la escena, así mismo la imagen puede ser segmentada a una zona de reconocimiento específica y el tamaño de la imagen puede ser parcializado dentro de la aplicación. Para la prueba de funcionamiento se ha seleccionado un dispositivo Inco Flex con Sistema Operativo Android versión 4.2 Jelly Bean, Pantalla 4.5", Camara 5 Mp y Procesador Cortex A9 Dual-Core. Teniendo como resultado el sistema presentado en la Figura 6.

FALTAFigura 6.- Sistema de monitoreo y vigilancia, implementando el algoritmo de Horn & Schunk.

4. Resultados

Una vez concebido el sistema es necesario analizar el desempeño del algoritmo propuesto,para lo cual se ha dispuesto de un sistema complementario al propuesto que sea capaz de cargar imágenes desde la memoria interna del dispositivo seleccionado, realice el procesamiento y cálculo del flujo óptico y al mismo tiempo exporte los vectores de desplazamiento obtenidos por el algoritmo en un formato legible por otra plataforma tal como es Matlab en la cual se ha desarrollado el mismo algoritmo bajo las mismas características a fin de realizar un procesamiento lo más parecido en ambos dispositivos, para esto se han desarrollado las etapas de procesamiento mediante el uso de bucles y no mediante el uso de funciones especiales. Así mismo, ha sido seleccionado como dispositivo comparativo una computadora portátil con procesador Intel Core i5 a 2.67 GHz, 8 Gb RAM, Sistema Operativo Windows 7 64 Bits.

4.1 Banco de pruebas

Como banco de imágenes para prueba del desempeño se han escogido las secuencias de imágenes Venus, Urban2, Urban3, Rubber Whale, Hydrangea, Grove2, Grove3 y Dimetrodon,mostradas en la Figura 7 y contenidas en Middlebury database [4].

Figura 9.- Secuencias de imágenes contenidas en Middlebury database, cada una comprende 8 cuadros y son clasificados de acuerdo a su naturaleza: Textura Oculta (RubberWhale, Hydrangea, Dimetrodon), Sintética (Grove, Urban) o Stereo (Venus).

4.2 Banco de pruebas

La medida más comúnmente usada para medir el desempeño del flujo óptico es el error promedio (AE

por sus siglas en inglés). El AE es calculado entre un vector de flujo estimado y un vector de

referencia

gl

. Este puede ser calculado mediante el producto punto de los vectores, dividiendo por el producto de sus distancias, y entonces calculado la inversa del coseno.

( 19 )

Esta medición fue introducida por [2]. Donde el objetivo del AE es aportar una medición relativa de desempeño que evite la división por cero. Errores de flujo amplio son penalizados menos que errores

La Mecatrónica en México, Vol. 4, No. 3, páginas 104 � 111, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

110

con flujo pequeño, teniendo como base una constante escalar arbitraria (1.0) para convertir las unidades de pixeles a grados.Una aproximación más acertada en la obtención de AE es el uso del vector normalizado, mediante la obtención del producto punto y a continuación obtener el coseno inverso de su propio producto escalar.

Error de punto final EE

De igual forma es posible medir el error absoluto en un punto final de flujo (EE por siglas en inglés), usado por Otte & Nagel (1994) [10] definido como:

( 20 )

Es posible obtener variantes de las mediciones anteriores, por ejemplo promediando los errores angulares en la imagen completa, se obtiene una medida global llamada error medio angular (AAE) para la imagen. Con el fin de evaluar el rendimiento de toda la secuencia, también es posible definir AAE como medición de una secuencia (SAAE) así como su respectiva desviación estándar (SD), mediante estas métricas es posible obtener histogramas completos no solo de esta medida sino para cada una de las medidas de desempeño de acuerdo al porcentaje de pixeles que tienen un error de medida alrededor de x [5].

4.3 Resultados experimentales

A continuación se presenta el Cuadro 1 el cual incluye una comparativa entre los valores obtenidos mediante la plataforma Android y el software Matlab, la comparación se realiza entre AAE y AEE, para las secuencias de video seleccionadas.

Cuadro 1. Evaluación de procesamiento Android vs PC del algoritmo propuesto

Secuencia Tiempo Android Tiempo PC AAE AEE

Venus 29.480 28.971 0.159 0.276

Urban 3 57.324 57.647 0.186 0.384

Urban 2 56.703 56.098 0.177 0.382Rubber Whale 39.932 39.227 0.053 0.071

Hydrangea 39.265 39.671 0.176 0.338

Grove 3 50.497 50.919 0.248 0.539

Grove 2 50.800 49.847 0.212 0.374

Dimetrodon 34.088 34.628 0.071 0.098

El cuadro incluye el contraste en cuanto a tiempos sobre plataformas y los errores seleccionados entre ellos para un total de 50 iteraciones, y es posible concluir, que en cuanto a tiempos ambas plataformas presentan un valor muy aproximado, y en cuanto a los errores analizados aun cuando se trata de 50 iteraciones y la propagación el error tiende a ser muy evidente por el error decimal se encuentra en términos de un valor permisible por la aplicación.

5. Conclusiones

El presente artículo describe el desarrollo de un sistema de señalización de movimiento mediante un discriminante de color que identifica zonas específicas de movimiento en secuencias de imágenes, tanto umbrales como valores de segmentación y escalamiento de imágenes pueden ser establecidas dentro de la aplicación, la cual implementa la detección de desplazamientos de pixeles mediante el

La Mecatrónica en México, Vol. 4, No. 3, páginas 104 � 111, Septiembre 2015Disponible en línea en www.mecamex.net/revistas/LMEMISSN en trámite, 2015 Derechos de autor y derechos conexos, Asociación Mexicana de Mecatrónica A.C

111

algoritmo de Horn & Schunk previamente descrito sobre un paquete de apk, exportable a cualquier dispositivo Android, la idea de emplear este empaquetamiento es exportarlo a diferentes dispositivos y como trabajo a futuro implantarlo en cámaras, con la finalidad de tener sistemas de video inteligentes que sean autónomos en cuanto a la detección de movimiento. Así mismo se presentan pruebas de los algoritmos en cuanto a desempeño y su respectiva comparativa entre dispositivos móviles y PCs, las cuales satisfactoriamente entregan resultados no muy diferentes entre dispositivos.

Referencias

[1] Tabatabai A., Jasindchi R. y Naveen T. �Motion estimation methods for video compression � Areview�. Elsevier Science Ltd, J. Franklin Inst., 335B(8):1411�1441. (1998)

[2] Barron J. y Fleet D. �Performance of Optical-Flow Techniques�. International Journal of Computer Vision 12(1): 43-77. (1994).

[3] Horn B. y Schunck B. �Determining optical flow�. AI 17: 185�203. (1981)[4] Koray G. y Saranli A. �An FPGA based high performance optical flow hardware design for

computer vision applications�. Journal of Microprocessors and Mycrosystems, 37: 270-286. (2013)[5] Baker S., Scharstein D., Lewis J., Roth S., Black M., y Richard S. �A database and evaluation

methodology for optical flow�. International Journal of Computer Vision 92, 1-31. (2011)[6] Sun D., Roth S., Lewis J. P. y Black M. �Learning Optical Flow�. ECCV 2008, Part III: 83-97.

(2008)[7] Sun D., Roth S. y Black M. �Secres of Optical Flow Estimation and Their Principles�. Computer

Vision and Pattern Recognition CVPR : 2432-2439. (2010)[8] Andrus J. y Nieh J. �Teaching Operating Systems Using Android�. SIGCSE�12 : 613-618. (2012)[9] Pajares, G. y Cruz J. �Visión por Computador: Imágenes Digitales y Aplicaciones�. Editorial Ra-

ma. (2008)[10] Otte M. y Nagel H. �Optical Flow estimation: Advances and compaisions� Lecture Notes in

Computer Vision Science Volume 800: 49-60. (1994)