Aplicacion de una red neuronal al control de un robot paralelo

Solo disponible en BuenasTareas
  • Páginas : 6 (1467 palabras )
  • Descarga(s) : 0
  • Publicado : 17 de enero de 2012
Leer documento completo
Vista previa del texto
Examen Global de Redes Neuronales
Aplicación de una red neuronal, para la implementación de un controlador de posición para un robot paralelo.
Noviembre/2011
Patricio Reinoso Mendoza.
1.- Introducción.
Un robot paralelo es un tipo especial de robot, donde las articulaciones de los actuadores (usualmente 3 o 6), se encuentran conectadas entre las bases fija y móvil, como lo indicamos en lasiguiente figura:

Este tipo de robots, con respecto al cálculo de su cinemática, presentan una característica especial, ya que el cálculo de su cinemática directa, es mucho más complejo que el de la cinemática inversa, ya que para un determinado juego de longitudes de los actuadores, pueden existir varias posiciones en el espacio para la base móvil del robot; mientras que el cálculo de lacinemática inversa, puede realizárselo incluso geométricamente, entregando una respuesta única de longitudes de los actuadores, para una determinada posición y rotación de la base móvil.
2.- Aplicación de la red neuronal.
Para nuestra aplicación puntual, debemos diseñar y aplicar una red neuronal para calcular la cinemática inversa de una Plataforma Stewart de 6 grados de libertad. En nuestro casoespecífico, los actuadores no serán precisamente lineales, sino servomotores, que tendrán como parámetro un ángulo de giro para determinar la longitud final del actuador. Un modelo tridimensional del robot lo podemos observar en la siguiente figura:

Este tipo de actuadores realizados, generan una complicación adicional al cálculo cinemático, ya que para un determinado ángulo del actuador como tal(el brazo del servomotor) tendremos varias longitudes finales del actuador, dependiendo del ángulo de inclinación del eslabón de acoplamiento. Esto lo podemos observar mejor, si separamos un actuador completo (servomotor, brazo del servomotor y eslabón de acoplamiento), tal como lo indica la siguiente figura:

Como observamos en la figura, para un actuador completo y representándolo por untriángulo, la longitud del actuador como tal (el lado A1-C1) dependerá de las longitudes de A1-B1 y B1-C1, además del ángulo entre los mismos. Esto lo único que genera es un mayor problema en el cálculo de la cinemática inversa de nuestro robot.
Para generar una red neuronal que calcule la cinemática inversa de nuestro robot, es necesario en primera instancia, definir los datos de entrenamiento. Paraesto, es necesario generar un modelo matemático del robot. Esto lo hemos realizado usando Matlab, usando el toolbox de SimMechanics. El modelo de nuestro robot resultaría como lo presentamos en la siguiente imagen:

Con este modelo, procedemos a, mediante una simulación, a ingresar datos de ángulos de giro de los motores, para de esta manera, obtener la posición en el espacio de cada una de lasarticulaciones de la base móvil. Para obtener un número de datos de entrenamiento, vamos a variar los ángulos de los motores, uno a la vez,y luego todos en conjunto, para de esta manera obtener datos de las coordenadas X, Y y Z de cada una de las articulaciones de la base móvil. Estos datos serán almacenados en un archivo en formato XLS, que serán utilizados posteriormente para entrenar nuestrared neuronal.
Nuestra red neuronal tendrá 5 capas, todas del tipo “logsig”, y se ha usado la función de entrenamiento “trainlm” por ser la más rápida, en tiempo de ejecución. Los datos de los valores máximos y mínimos necesarios para las salidas de la red neuronal, son tomados directamente de los sets de datos del archivo XLS.
Para el entrenamiento de la red, tomaremos como datos de entrada, lasposiciones de las articulaciones en la base superior, y como salida esperada, los ángulos de los actuadores. Todo el proceso podemos visualizarlo mejor, con el código generado para la definición de la red, la carga de datos y el entrenamiento de la misma.

clc
clear all

xC1=XLSREAD('datos.xls',1,'H4:H698'); %Entrada
yC1=XLSREAD('datos.xls',1,'I4:I698'); %Entrada...
tracking img