Red Neuronal Difusa en Punto Fijo para Control de Brazo Robótico

May 31, 2017 | Autor: M. Acosta | Categoria: Robotics, Fuzzy Logic, Artificial Neural Networks, Fixed point DSP
Share Embed


Descrição do Produto

Red Neuronal Difusa en Punto Fijo para Control de Brazo Robótico Mariano Leonel Acosta

Universidad Nacional de Mar del Plata Facultad de Ingeniería [email protected] Resumen Se presenta la resolución del problema cinemático inverso para un brazo robótico de 6 grados de libertad. Para ello se utilizan métodos geométricos y redes neuronales ANFIS. El sistema completo es simulado en el entorno Matlab®. Luego se detalla la realización en punto fijo para un microcontrolador PIC 18f4455 de 8 bits. Como conclusión, se muestra la factibilidad de implementación para cualquier sistema embebido de bajo costo. Palabras Claves ANFIS; Robótica; Cinemática; Formato Q; Inteligencia Computacional.

I. INTRODUCIÓN

La resolución de la cinemática inversa para un brazo robótico es una tarea compleja. Dado una serie de puntos a alcanzar, existen varias soluciones posibles para las articulaciones. Clásicamente, el problema consiste en realizar un análisis del manipulador, aplicar criterios de selección en movimientos y plantear ecuaciones no lineales a resolver con diferentes técnicas. Los inconvenientes que presenta este enfoque son la complejidad computacional principalmente en resolución con métodos numéricos la posibilidad de obtener singularidades y el riguroso estudio necesario para desarrollar expresiones matemáticas cerradas.

Andrés Oliva

Universidad Nacional de Mar del Plata Facultad de Ingeniería [email protected] desarrollar un sistema para el control de un brazo robótico en un sistema embebido de prestaciones limitadas aprovechando las ventajas de la inteligencia computacional. En este trabajo se muestra un método de resolución que combina métodos geométricos con redes ANFIS, con el objetivo de implementar el sistema final en un micro-controlador PIC 18f4455 de 8 bits. II. CINEMÁTICA D IRECTA DE UN BRAZO ROBÓTICO A. Representación de la posición En la fig. 1 se muestra el caso de un brazo antropomórfico de tres eslabones de longitudes L1, L2 y L3, con sus respectivos ángulos de uniones 1, 2 y 3. El Angulo de orientación or se establece como la suma de los tres ángulos mencionados anteriormente. Para encontrar la relación entre el último eslabón del brazo con el de la base, es necesario realizar las trasformaciones entre los sistemas de coordenadas de las articulaciones. Se definen las matrices R de rotación para un vector respecto a un eje de un sistema cartesiano como: (1)

Una nueva tendencia se basa en utilizar herramientas de inteligencia computacional, entre ellas lógica difusa y redes neuronales artificiales. En contraste con los métodos convencionales, en este enfoque es posible modelar aspectos cualitativos del proceso de aprendizaje y razonamiento humano sin realizar un análisis cuantitativo preciso [1]. Diversos estudios han implementado técnicas hibridas basas en redes neuronales adaptativas de inferencia difusa o ANFIS. Entre ellos [2] utiliza la información de coordenadas espaciales y orientación para entrenar trayectorias en un manipulador plano de tres grados de libertad. Sin embargo, en los casos [1-4] las estructuras de las redes resultan complejas para ser desarrolladas en arquitectura embebidas con memoria y procesamiento limitados.

Existen trabajos en los cuales ha sido implementado un ANFIS de manera exitosa en lógica programable [5] y en procesadores digitales de señales (DSP). Cabe destacar que en [6] ha sido posible crear una red de este tipo en un microcontrolador de 16 bits de bajo costo. Resulta interesante

(2)

Fig. 1. Manipulador robótico con sus parámetros de movimiento.

Siendo y los ángulos conformados entre el vector y el eje Y y Z respectivamente (fig. 2). La traslación de un vector P en un sistema de referencia XYZ a un sistema UVW, desplazado un vector R respecto al primero, se realiza de la forma: (3)

La ecuación vectorial de cinemática directa se deriva de las expresiones (1), (2), (3) y es función de los parámetros del manipulador: (4)

III. RED NEURONAL ANFIS La utilización de redes neuronales artificiales es un método eficaz para la resolución de problemas a partir del aprendizaje de datos. Estos algoritmos trabajan como aproximadores funcionales universales. Sin embargo, el conocimiento obtenido por una red en el proceso de entrenamiento resulta en una gran cantidad de parámetros imposibles de interpretar con simples palabras. Por otra parte, una regla difusa consiste en sentencias lógicas del tipo if-then que se ajustan perfectamente al lenguaje natural. Hay que destacar que los sistemas difusos no pueden aprender de manera autónoma. Estas dos perspectivas son combinadas en los sistemas neurodifusos, con el fin de lograr simultáneamente el aprendizaje automático y la interpretación de los resultados por parte del usuario. Las reglas obtenidas de esta forma pueden revelar patrones en los datos de un modelo.

Se pretende segmentar datos de entrada que presenten características similares y asociarlos con sus respectivos valores de salida. Una manera de lograrlo es a través de la lógica difusa. Con esto se obtiene una interpolación funcional con un cierto grado de error. Las técnicas de segmentación de datos más comunes son el Hard Clustering, Fuzzy Clustering y Clustering Sustractivo [7]. Luego a cada conjunto de entrada o clúster obtenido se le asigna una sentencia de inferencia difusa.

Un controlador difuso basado en estas reglas puede interpolar la salida ponderando las rectas Y1 e Y2. Si se define i como el resultado de la agregación de la regla i-ésima para valores particulares de y entonces la salida se obtiene mediante el promedio: (7)

Según [7] se define cada parámetro de la red mostrada en la fig. 3 como:

Toda neurona i de la capa 1 es adaptativa con una función de activación paramétrica. La salida es el grado de pertenencia el cual de valor a la entrada satisface la función de membresía. Dicha función tiene la forma de campana generalizada, con sus parámetros a,b y c ajustables: (8)

La salida de los nodos de la capa 2 es el resultado de realizar la operación difusa AND, es decir, i . Esta cuenta se realiza como el producto de los valores de pertenencia entrantes. En la capa 3 se obtiene la fuerza de disparo de cada regla relativa a la suma del peso de todas las reglas: (9)

Los nodos en la capa 4 posee los parámetros adaptativos ci1 y ci2 con salida igual a: (10)

La neurona de salida representa la sumatoria de todas las señales entrantes.

La arquitectura ANFIS es un modelo equivalente a un sistema de control difuso del tipo Sugeno. Básicamente, es un método de ajuste paramétrico de un conjunto de reglas preestablecidas mediante un algoritmo de aprendizaje, en base a datos de entrenamiento. De forma general, un sistema de dos entradas , y una salida Y posee el siguiente conjunto de reglas del tipo Sugeno: (5)

(6)

Fig. 2. Rotación respecto del eje Z e Y dado un ángulo determinado.

Fig. 3. Modelo de ANFIS para dos reglas y sus capas.

IV. IMPLEMENTACIÓN A. Modelo Funcional Se tuvo a disposición un brazo robótico antropomórfico con seis grados de libertad, controlado por un módulo Arduino® con capacidades de comunicación con puerto serie (fig. 4). El manipulador recibe desde un terminal comandos que determinan la configuración angular para cada eslabón. Las características y limitaciones físicas del modelo se presentan en la Tabla I y II. TABLA I. Parám.

Valores

-90º

65º

-60º

2

135º

-70º

3

TABLA II.

Luego, usando (3) se realiza la rotación del vector objetivo en - base respecto al eje Z, obteniendo: (12)

16

(14) (15)

Con la proyección en el plano XZ se obtiene las coordenadas de la muñeca para or: (16)

170º

CARACTERÍSTICAS FISICAS DE LOS ESLABONES

L1

(13)

Máximo

90º

-45º

1

(11)

LIMITACIONES ANGULARES DEL BRAZO DE LABORATORIO Mínimo

base

también en la cantidad de redes neuronales necesarias, una red para cada ángulo. Se propuso limitar la tarea de aprendizaje del ANFIS reduciendo el problema a un espacio de dos dimensiones. Para lograrlo, se calcula a partir de un or y una localización X, Y, Z deseada el ángulo de la base como:

Longitud (cm) L2

11.5

L3

13

B. Sistema Propuesto Dado que interesa obtener un sistema relativamente sencillo en términos computacionales, se elaboró un enfoque que abarca tanto métodos geométricos como aprendizaje supervisado. Trabajos como [1] y [2] utilizan tres coordenadas cartesianas como parámetros de entrada a la red ANFIS. Esto trae aparejado un aumento en la complejidad estructural como

Fig. 4. Brazo de laboratorio donde se desarrollaron las pruebas.

(17)

Siendo L3 la longitud del tercer eslabón en centímetros. Finalmente, el problema a resolver mediante los ANFIS se reduce en encontrar los ángulos 1 y 2 partiendo de las coordenadas Xm y Zm obtenidas anteriormente. Se comenzó modelando un brazo planar de dos eslabones en Matlab®. Luego se desarrollaron scripts que permitieron el cálculo de la cinemática directa a partir de ángulos como valores de entrada. Con estas herramientas se produjeron 727 datos de entrenamiento (fig.5). Si bien existen varias combinaciones de ángulos posibles, se descartaron soluciones implementando las

Fig. 5. Algoritmo para la generación de datos de entrenamiento.

restricciones como muestra la Tabla I. Según se enuncia en [8], la cantidad óptima de funciones de pertenencia en relación al tamaño mínimo de la red y un error aceptable es 7. Esto da como resultado una estructura con 14 funciones de pertenencia 7 para cada entrada y 49 reglas de inferencia difusa (fig. 6). Se generaron dos ANFIS para ser entrenados, uno correspondiente a la estimación de 1 y otro para 2. Un resumen del sistema se ilustra en la fig.7. Finalmente, se desarrolló una interfaz gráfica para verificar el funcionamiento del brazo en un entorno virtual (fig. 8). Esta interfaz permite el control de la posición espacial, ajustar manualmente los ángulos de las uniones, cambiar el punto de vista y verificar cuáles son las coordenadas alcanzadas. En el caso que se produzca una combinación ilegal de las articulaciones, el programa genera un cartel de alerta. C. Realización en Punto Fijo Una gran cantidad de procesadores embebidos de bajo costo no disponen de una arquitectura para la realización de cálculo en punto flotante. Si bien esta representación permite un gran rango dinámico y precisión, el rendimiento en este tipo de plataformas no es adecuado para aplicaciones en tiempo real. Por ello, se optó por usar aritmética en punto fijo, particularmente el formato numérico . Esta representación consiste en utilizar n bits para la parte entera, m bits para la parte fraccionaria y un bit de signo. Un valor numérico interpretado de esta manera se almacena como un entero de n+m+1 bits en complemento a dos. El rango de posibles valores se encuentra comprendido en el intervalo siendo la resolución igual a . Fig. 7. Diagrama de funcionamiento del sistema desarrollado.

El algoritmo para representar un número en punto flotante en consiste en multiplicar dicho valor por y redondear al entero más cercano. Es importante remarcar que este sistema de representación es susceptible al desborde aritmético, debido a su acotado rango dinámico. Se debe asegurar que las operaciones trabajen dentro del límite establecido por el formato. Una manera de evitar el desborde es implementando saturación [9].

Fig. 6. Arquitectura ANFIS implementada.

En el caso del trabajo, el formato (16 bits) fue conveniente en la mayoría de las constantes y operaciones matemáticas. Para los cálculos que involucran las expresiones (8) y (9), resultó más apropiado utilizar los formatos y . Con esto se disminuye el error de cuantización y su subsecuente propagación de error. Las transformaciones de formatos se realizan fácilmente implementando desplazamientos de registros.

V. RESULTADOS A. Simulación en Matlab® Se procedió a evaluar el desempeño de las redes neuronales utilizando datos de posición conocidos y comparándolos con los obtenidos por el sistema (fig. 9 y 10).

Fig. 8. Interfaz gráfica desarrollada para simulación.

Las expresiones trigonométricas (11), (13), (16) y (17) fueron desarrolladas de manera eficiente utilizando operaciones lineales según lo establece [10]. Si bien en [10] se proponen algoritmos en punto flotante, estos fueron modificados para trabajar en punto fijo.

Para la implementación del sistema se eligió un microcontrolador de 8 bits PIC 18F4455, siendo programado en lenguaje C con el IDE MPLAB X. Este entorno utiliza el compilador XC8, el cual permite crear variables de hasta 32 bits y realizar operaciones aritméticas enteras de suma, resta, multiplicación y división Una vez definida la cantidad de nodos para las redes neuronales, se elaboró una estructura fija en lenguaje C. Fue necesario escribir una librería para trabajar con variables de 16 bits en formato Q. Se cargó en memoria un total de 546 variables, correspondiente a todas las funciones de pertenecías de entrada y las funciones lineales a la salida para cada regla. La metodología implementada fue utilizar una única arquitectura ANFIS y leer en memoria los parámetros de cada red en el caso que corresponda. Para el cálculo de (8) se utilizó una aproximación trapezoidal debido a su sencillez de cómputo.

En ciertas situaciones donde una longitud de palabra de 16 bits no fue suficiente para evitar desborde y a su vez disponer de una precisión razonable fueron utilizadas variables de 32 bits. Esto implica que los registros internos para realizar un producto o división son de 64 bits. Conociendo la limitación del compilador 32 bits de longitud máxima se creó una rutina adicional para resolver dicha cuestión. Esto consistió en dividir el registro en dos segmentos de 32 bits y resolver las partes más y menos significativa por separado. Finalmente, esta función utiliza el mismo método aritmético que emplea el compilador para realizar las multiplicaciones de 16 bits, llamado bytewise multiplication. Esta técnica se basa en descomponer las variables en suma de productos de 8 bits, aprovechando la característica Hardware Multiply Instructions de la serie 18F, siendo el algoritmo más veloz y eficiente para realizar estas operaciones [11].

La comunicación con el microcontrolador se establece por medio de la interfaz USB, mientras que para enviar los resultados de los ANFIS a la placa Arduino® se utiliza USART.

Con el conjunto de datos generados, se ajustaron los parámetros de los ANFIS con un algoritmo de aprendizaje híbrido. Las funciones de pertenencia y la relación funcional ajustadas en las sucesivas iteraciones se muestran en las fig. 10 11 y 12. Se logró un error cuadrático medio final de 0.21 en el ajuste de datos para el ANFIS correspondiente al cálculo de 1 y 0.11 para 2, luego de 1000 iteraciones. El entorno gráfico de la Fig. 8 respondió de manera fluida y se logró un error máximo de un 4% en la resolución utilizando el sistema propuesto en el trabajo. Cabe destacar que en la mayoría de los casos el error fue cercano al 0.3%, en especial en las coordenadas de fácil acceso para el brazo robótico. B. Implementación Embebida Las funciones trigonométricas utilizadas para el cálculo de la posición de la muñeca fueron realizadas de manera satisfactoria, siendo el error obtenido menor al 1% respecto con su simulación en Matlab®. El programa final requirió un total de 839 bytes de memoria de datos y 7744 Kilobytes de programa. El tiempo de ejecución del sistema desde la recepción de datos hasta obtener el resultado final es de 14,7641 ms con un ciclo de reloj de 20 MHZ, siendo 13,9797 ms correspondientes al tiempo de cálculo de la salida del ANFIS.

(a) Diferencia en Y entre coordenada deseada y estimada.

(b) Diferencia en X entre coordenada deseada y estimada.

Fig. 9. Diferencias en centimetros para las coordenadas de la muñeca.

Fig. 10.

Conjuto de coordenadas para la muñeca (azul) y sus correspontdientes estimaciones realizadas por el sistema (rojo).

Fig. 11. Funciones de pertenencia obtenidas para una entrada en una red.

VI. CONCLUSIONES Una metodología que combina técnicas geométricas y aprendizaje supervisado para la resolución del problema cinemático inverso fue presentada. La simulación e implementación del sistema dentro del entorno Matlab® resultó totalmente exitosa. Se puede apreciar que para ciertas configuraciones extremas del manipulador, el sistema neurodifuso no se ajustó a lo esperado (fig.10). Un factor a tener en cuenta para perfeccionar la convergencia a una mejor solución en el proceso de aprendizaje de los ANFIS es seleccionar y descartar cuidadosamente del conjunto de entrenamiento combinaciones redundantes. Una manera de lograrlo es considerando la orientación como un tercer parámetro de entrada de la red [1], aunque la complejidad resultante volvería impráctica su realización en una plataforma como la expuesta en el trabajo. Con respecto a la implementación embebida, el error obtenido total puede llegar al orden del 10%. Esto puede ser un problema cuando se necesita aplicaciones de gran precisión. En estos casos, la utilización de una arquitectura embebida con soporte para operaciones en punto flotante sería una solución. Sin embargo, para aplicaciones menos demandantes, se demostró que el método propuesto resulto eficaz e incluso, con capacidad de implementar el control de servos para el manipulador en un único PIC de 8 bits. En cuanto al retardo, se puede concluir que es aceptable, ya que se encuentra dentro del orden de los 10 milisegundos.

Fig. 12. Aproximación funcional encontrada para

1 .

VII. REFERENCIAS [1]

Er. Harpreet Singh1, Dr. Naveen Dhillon and Er. Kailash Rawat3, ANFIS Based Forward and inverse Kinematics of Six Arm Robot Manipulator with Six Degree of Freedom International Journal of Computer & Organization Trends Volume19 Number1 April 2015. [2] Petru Maior, ANFIS based Solution to the Inverse Kinematics of a th International Conference Interdisciplinarity in Engineering, INTER-ENG 2014, 9-10 October 2014, Tirgu-Mures, Romania. [3] Perugu Venkata Narayana1, N. Venkata Ramana, PREDICTION OF INVERSE KINEMATICS SOLUTION OF A PUMA MANIPULATOR USING ANFIS, International Journal of Advanced Engineering Research and Studies E-ISSN2249 8974. [4] Shiv Manjaree1, Vijyant Agarwal and B.C. Nakra Kinematic Analysis Using Neuro-fuzzy Intelligent Technique for Robotic Manipulator, International Journal of Engineering Research and Technology.ISSN 0974-3154 Volume 6, Number 4 (2013), pp. 557-562 . [5] Prasad R. Pande, Prashant L. Paikrao, Devendra S. Chaudhari, Digital ANFIS Model Design, International Journal of Soft Computing and Engineering (IJSCE) ISSN: 2231-2307, Volume-3, Issue-1, March 2013. [6] YFerenc Farkas, Sándor Halász Embedded Fuzzy Controller for Industrial ApplicationsDepartment of Electric Power Engineering, Budapest University of Technology and Economics, 2006. [7] Jan Jantzen, Neurofuzzy Modelling, Technical University of Denmark, Department of Automation, Bldg 326, DK-2800 Lyngby, DENMARK. Tech. report no 98-H-874 (nfmod), 30 Oct 1998. [8] MathWorks. Modeling Inverse Kinematics in a Robotic Arm, http://www.mathworks.com/help/fuzzy/examples/modeling-inversekinematics-in-a-robotic-arm.html [9] http://www.mathworks.com/help/fixedpoint/ug/saturation-andwrapping.html [10] Jack G. Ganssle, A Guide to Approximations, The Ganssle Group, Baltimore. [11] Microchip ,MPLAB® X MPLAB X IDE User's Guide - Microchip 117 & 146

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.