Diseño e Implementación de un Robot Móvil Autónomo Aplicando Redes Neuronales Artificiales

11

Click here to load reader

description

Diseño e implementación de un robot móvil autónomo capaz de evadir obstáculos en entornos desconocidos, con la finalidad de llegar a un punto determinado. Empleando Control No lineal y RNAs para la toma de decisiones

Transcript of Diseño e Implementación de un Robot Móvil Autónomo Aplicando Redes Neuronales Artificiales

Page 1: Diseño e Implementación de un Robot Móvil Autónomo Aplicando Redes Neuronales Artificiales

1

UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE INGENIERÍA MECÁNICA

ESCUELA PROFESIONAL DE INGENIERÍA MECATRÓNICA Grupo de Investigación en Sistemas de Control e Inteligencia Artificial

Av. Túpac Amaru Nº 210, Lima-Perú-América Latina Telf.: (+511) 4811070 - Fax: (+511) 3813825

Lima 25 - Perú

“DISEÑO E IMPLEMENTACIÓN DE UN ROBOT MÓVIL AUTÓNOMO APLICANDO REDES NEURONALES

ARTIFICIALES”

AUTORES

Miyagusuku Ríos, Renato [email protected] Paredes Merino, Jorge Salvador [email protected] Flores Baldoceda, Andrés Francisco [email protected] Villalta Ramirez, Oscar Alfonso [email protected]

Resumen

En este proyecto de investigación presentamos el diseño e implementación de un robot móvil autónomo capaz de

evadir obstáculos en entornos desconocidos, con la finalidad de llegar a un punto determinado.

El móvil empleará como núcleo de decisión una Red Neuronal Artificial (RNA) y para la detección de obstáculos se

emplearan 3 sensores ultrasónicos que serán ubicados en la parte delantera del móvil.

En cuanto al diseño mecánico del robot móvil, se empleará una plataforma omnidireccional, dado que la dirección

de sus velocidades no presenta restricciones, por lo que será capaz de moverse hacia cualquier dirección. Tendrá tres

ruedas acopladas a motores de corriente continua, siendo un sistema MIMO, el cual se controlará mediante técnicas

de control moderno.

Summary

In this research project we present the design and implementation of an autonomous mobile robot capable of

avoiding obstacles in unknown environments, in order to reach a certain point.

The mobile’s core of decision will be an Artificial Neuronal Network (ANN) and in order to detect obstacles it’ll

have 3 ultrasonic sensors placed at the front of the mobile robot.

As for the mechanical design, an omnidirectional platform will be used, because the direction of its velocities has no

constraints, so it can move towards any direction. It will have three wheels attached to DC motors, being a MIMO

system, which will be controlled by modern control techniques.

Page 2: Diseño e Implementación de un Robot Móvil Autónomo Aplicando Redes Neuronales Artificiales

2

I. INTRODUCCIÓN

La Robótica es una ciencia interdisciplinaria que incluye conceptos de mecánica, electrónica y sistemas ofreciendo un amplio campo para el desarrollo de nuevas tecnologías, esta posibilidad de seguir innovando y creando robots más complejos es lo que motiva a muchos investigadores a continuar investigando y desarrollando proyectos. La Robótica a causado un gran impacto en la industria manufacturera, los robots manipuladores, fijos en un punto dentro de una línea productiva pueden moverse a una gran velocidad, tener una precisión sobrehumana y realizar una gran diversidad de acciones, aspectos que los hacen extremadamente valiosos para las empresas, sin embargo poseen un gran defecto, que es su falta de movilidad, dado que, a pesar de su gran versatilidad, poseen un área limitada de acción. Una alternativa es el empleo de un robot móvil, pero para que dicho robot posea una verdadera aplicación práctica se deben desarrollar métodos eficientes que garantice que el robot pueda desplazarse en un medio determinado y desarrollar sus tareas, para el desarrollo de estos métodos podemos basarnos en técnicas de Inteligencia Artificial (IA). Al igual que en el ejemplo anterior se dan muchos casos similares en la industria, es por eso que consideramos de vital importancia el desarrollo de plataformas capaces de realizar estas funciones, lo cual es el tema central del proyecto.

II. PLANTEAMIENTO DE ESTUDIO

Para el desarrollo de este proyecto abordaremos varias áreas de la ingeniería, como lo son la mecánica, robótica, control, inteligencia artificial y procesamiento de señales. En un primer lugar se realizará el diseño mecánico de la plataforma omnidireccional, la cual no debe poseer restricciones en la dirección de su velocidad y debe ser capaz de rotar y desplazarse simultáneamente. Posteriormente se realizará un análisis cinemático y dinámico de la plataforma diseñada, con el objetivo de obtener un modelo matemático lo más exacto posible, este modelado junto con el modelo de los motores de corriente continua que se usarán nos permitirán caracterizar al móvil. Análisis similares al realizado son presentados en [1],[2] y [3]. Otros proyectos como [4] y [5] incluyen en su modelamiento deslizamiento en las ruedas, lo que fue obviado en nuestro caso, dado que nuestro algoritmo de control será capaz de compensar esto. El control de la plataforma es otro punto importante dentro del desarrollo del proyecto, optaremos por el empleo de algoritmos de control no lineales, pues del modelamiento cinemático que se realizó se obtuvo

una planta altamente no lineal. Dentro de los controladores no lineales se encuentran TCL como en [1] y [6], Control de trayectorias usando Sliding [7] y [8], u otros métodos como en [9]. Para lograr que el móvil sea totalmente autónomo se empleará como núcleo de decisión una Red Neuronal Artificial (RNA) del tipo back propagation. El móvil será implementado usando un sistema embebido, que tendrá como entradas las señales de los sensores ultrasónicos y encoders de los motores y nos entregará los voltajes necesarios para alimentar los motores DC mediante canales de PWM.

III. OBJETIVOS

Objetivo general

El objetivo principal de este proyecto es el desarrollo de un robot móvil, autónomo que sea capaz de desplazarse en cualquier sentido sin restricción alguna que pueda solucionar el problema antes expuesto. Objetivos específicos

1. Realizar el diseño e implementación de una plataforma capaz de cumplir con el objetivo general.

2. Obtener un modelo matemático lo suficiente mente exacto que nos permita diseñar nuestros algoritmos de control y simular el móvil.

3. Diseñar un controlador que nos garantice un óptimo funcionamiento del móvil.

4. Diseñar un modulo de evasión de obstáculos, el cual empleará 3 sensores ultrasónicos para la detección de obstáculos y empleará una RNA para la toma de decisiones.

5. Finalmente es nuestro propósito independizar totalmente a este móvil (autónomo).

IV. HIPÓTESIS

Mediante un diseño adecuado de una plataforma omnidireccional y un correcto modelado matemático del sistema es posible obtener un móvil capaz de desplazarse sin restricciones. Desarrollando un adecuado algoritmo de control, un procesamiento de la data proveniente de los sensores y una RNA implementados en un sistema embebido, es factible dotar de autonomía al móvil diseñado.

V. DESRROLLO DEL TRABAJO

Diseño Mecánico

En cuanto al diseño mecánico del móvil, se ha optado por el empleo de una plataforma omnidireccional, las que son ideales para este tipo de aplicaciones pues la dirección de sus velocidades no presenta restricciones, además son capaces de rotar y desplazarse simultáneamente.

Page 3: Diseño e Implementación de un Robot Móvil Autónomo Aplicando Redes Neuronales Artificiales

3

La plataforma está compuesta por tres ruedas omnidireccionales dispuestas en los vértices de un triángulo equilátero, cada rueda está conectada a un motor de corriente continua, siendo un sistema MIMO, el cual será controlado mediante técnicas de control no lineal. La figura 1 representa un prototipo de la plataforma. Las ruedas que emplearemos serán ruedas omnidireccionales (ver figura 2), las que poseen la particularidad de poder deslizarse con gran facilidad en el sentido perpendicular al motriz, permitiéndole al móvil desplazarse hacia cualquier dirección. Para la detección de obstáculos usaremos sensores ultrasónicos, los mismos que estarán ubicados en la parte superior frontal del móvil y le permitirán reconocer los obstáculos para posteriormente poder evadirlos.

Figura 1 Plataforma Omnidireccional

Figura 2 Ruedas Omnidireccionales y montaje

Cinemática

El móvil cuenta con un sistema de referencia fijo (body frame) adherido al cuerpo y uno inercial, es decir que se encuentra fijo en la posición inicial en donde se encuentra, de modo que en un tiempo dado la configuración será la siguiente (ver Fig 3):

El sistema fijo estará representado por las componentes X, Y y Z. Y el sistema adherido al móvil será Xm, Ym y Zm. Los parámetros del modelo son: L: Longitud del radio del circulo que circunscribe al móvil triangular. R: Longitud de radio de las ruedas. φ: (fi) ángulo de rotación del Sistema Móvil respecto del Fijo. θ: (theta) ángulo de giro de cada rueda. i =1, 2, 3. Las llantas se posicionan; Llanta i: 120i 1

respecto del sistema móvil tal como se observa en la Figura 4.

Analizando la relación entre ambos sistemas, la matriz de rotación que relaciona las velocidades, será:

A cos φ senφ 0senφ cos φ 00 0 1 (1)

Donde X A. X Las velocidades se descomponen como: X V sin α Y V cos α (2) Pero las velocidades también son una combinación lineal de las velocidades angulares en cada rueda:

1

2

3

Figura 4 Disposición de las ruedas

X

Y

Y

X

Figura 3 Sistemas de referencia del móvil

Page 4: Diseño e Implementación de un Robot Móvil Autónomo Aplicando Redes Neuronales Artificiales

4

x y φ R. #1 sin 30 sin 300 cos 30 cos 301L 1L 1L & 'θ (θ θ )*

X R. B. θ (3) Pero como nosotros tenemos V, necesitamos calcular ,θ-: 'θ (θ θ )* (. . ,B-/( x y φ (4)

El seguimiento de la Posición: X01( X0 2 A. X . ∆t (5) De la velocidad relativa al sistema fijo (2 y 3): V5 V6 2 V5/6 89: 2 Ω < r5/6 (6) Dinámica

Nos basamos en las leyes de Newton y enunciamos de esta manera: > F@A m < a@A > τ I F φG De modo que habrá una aceleración angular siempre que haya un cambio de dirección en el giro, de lo contrario permanecerá a la velocidad angular de módulo constante y de manera suave. También en el punto inicial (n=1) la aceleración tiene un valor diferente de cero. La fuerza total en el móvil es debida a una aceleración a@A que actúa sobre el sistema en movimiento. ∑ F@@@@@A m F a@A f(@@A 2 f@@A 2 f)@@A (7) τJJ I F φG K2. L 2 K2. L 2 K3. L (8)

Las fuerzas se generan por los torques que es lo que finalmente deseamos calcular: fA(,,) F R τ@A(,,) (9)

Todo esto calculado respecto a un eje inercial, por lo que usaremos la expresión general obtenida de [10] y [11] para determinar los valores de coriolis y aceleraciones en los ejes soldados al cuerpo (body frame): A A 2 ΩN < r/ 2 Ωx OPQ/ROJ 2 OSQ/ROJ (10)

Donde m: Sistema Móvil o : Sistema Fijo (origen) Ω: Velocidad angular del sistema móvil Reemplazando: TaU, aVW 0 2 φG < x, y 2 φ < x , y 2 xG , yG XaUaVY ZφG [ yφG [ x \ 2 Zφ [ yφ [ x \ 2 ZxG yG \ (11)

ZxG yG \ Z φG [ yφG [ x \ 2 Z φ [ yφ [ x \ 2 XaUaVY (12)

Despreciamos la componente de la aceleración, para simplificar los cálculos y dado que es un valor de modulo constante conocido que se puede corregir luego. Con esta aproximación tendremos un vector independiente de aceleraciones que se calculan en base a la dinámica del sistema.

xG yG φG φ [ yφ [ x0 2 ]aUaVα ^ =

φ [ yφ [ x0 2 1/m 0 00 1/m 00 0 1/I 1 sin 30 sin 300 cos 30 cos 30L L L f(ff) φ [ yφ [ x0 2 (. 1/m 0 00 1/m 00 0 1/I 1 sin 30 sin 300 cos 30 cos 30L L L ]τ(ττ)^

(13) Modelo matemático de los motores

Los motores usados son motores de corriente continua cuyas ecuaciones eléctricas son: _ a _b 2 cde (14) _b fg hijhk (15)

Y su ecuación mecánica es: flc m hnijhkn 2 o hijhk 2 pq (16)

Donde Vin es el voltaje de entrada a los motores, i la corriente del motor, θ m la posición del rotor, Km la constante de velocidad del motor. Además el modelo cuenta únicamente con el parámetro eléctrico Ra y los parámetros mecánicos J (momento de inercia), B (coeficiente de viscosidad) t Tc (Torque de carga). Modelamiento del sistema Usando las ecuaciones obtenidas en la cinemática y dinámica, junto con el modelado matemático de los motores obtendremos el modelado de todo el sistema. Podemos escribir las ecuaciones (13), (15) y (16) de la siguiente manera: rG q 2 sopq pq fkc mltG 2 olt c uvw xyvw t (17)

Usando la ecuación cinemática (3) podemos expresar todas las variables anteriores en función de x, sus derivadas y el voltaje, obteniendo la siguiente ecuación: z 2 |jv oo~ rlG q 2 zxvw so~ _ (v zol 2 xyxvw ~ (18) rlG q 2 _ X (19)

Reconocimiento de Parámetros

Una parte fundamental para la obtención de un modelo matemático exacto es la correcta determinación de los parámetros del mismo.

En nuestro robot tenemos parámetros físicos como la masa e inercias. Parámetros geométricos como

Page 5: Diseño e Implementación de un Robot Móvil Autónomo Aplicando Redes Neuronales Artificiales

5

longitudes totales, radios, etc. Estos parámetros pueden ser fácilmente obtenidos con mediciones directas o por medio de software que simulan dichas propiedades mecánicas. Sin embargo, los parámetros propios de los motores DC son algo más complicados de obtener, pues estos varían con el uso, es por tanto de suma importancia realizar un reconocimiento de parámetros cuando se usan motores usados o se desea verificar los datos del fabricante.

Reconocimiento de parámetros en motores DC

Teniendo una entrada de voltaje constante el motor DC alcanza una velocidad determinada luego de pasar por un periodo transitorio, si tuviésemos esos valores y pudiésemos reconstruir esa curva tendríamos la salida del sistema respecto a una entrada tipo step y mediante ajustes de curva podremos obtener la función de transferencia de motor requerido.

Algoritmo de obtención de una función de transferencia de una planta dada

Para obtener los modelos de la data transitoria se asume entrada escalón (step) ya que se conoce el tipo de salida que genera en una planta de segundo orden como es el caso de nuestros motores DC, en la figura 5 se aprecia:

Fig 5 Curva característica de un proceso de bajo orden

Puede asumirse que la curva está dada por una suma exponencial 2 o. /.k 2 . /n.k ∞ (20)

Respuesta al escalón para sistemas de 2do orden:

Considerando el sistema: x1 1n (21)

Suponiendo que p1/p2 >3 x1 1n 2 1 2 1n (22)

Donde . |b x.n

o 2 ( . |/ x./n 2 . |/n xn.n/

Figura 6 Descomposición de Respuesta Escalón

Para un t grande ( , y definiendo: o. /.k . /n.k (23)

Para un tiempo suficientemente grande: o. /.k (24)

Si derivamos la expresión: h ak h ( (25)

Esto gráficamente significa:

Figura 7 Ajuste de Curva logarítmica para cálculo de p1

De esta manera se pueden obtener las otras variables: 2 o

o (

f . (.

Gráficamente podemos analizar:

Page 6: Diseño e Implementación de un Robot Móvil Autónomo Aplicando Redes Neuronales Artificiales

6

Figura 8 Procedimiento de Cálculo de las

Variables p1, p2 A,B,C ω uw x1 1n xn11n 1.n

ω uw Q ¡.¢n1X ¡.£¤¢.¥¡ ¡.¢ Y1¥¡.£¤¦§n ¡.¢ (26)

Comparando ambas expresiones se pueden despejar

los parámetros del motor tales como:

Ra: resistencia de armadura

L: inductancia de armadura

B: coeficiente de fricción viscosa

J: momento de inercia

Km: constante de torque

Kb: constante contra electromotriz

Control del Sistema

De las ecuaciones mostradas en la sección anterior notamos que nuestra plataforma posee una dinámica altamente no lineal, por esta razón no es posible emplear algoritmos de control clásico como los PID ampliamente conocidos y estudiados, al menos no directamente.

En este proyecto se usará una metodología de diseño de controladores no lineales conocida como “Control por Linealización de Trayectoria” o TLC por sus siglas en inglés, la cual ha sido usada con gran éxito en [1] y [6], y en áreas afines que presentan problemas similares como lo es la aeronáutica [12],[13].

Para el control del sistema se usarán dos lazos de control, tal como se observa en la figura 9.

Figura 9 Diagrama del Controlador

El lazo interno realiza el control de las velocidades vistas desde el sistema fijo al móvil, el lazo externo lo hace con respecto a los desplazamientos. El control puede dividirse en dos partes:

1. Se calcula las salidas deseadas en base al cálculo de la cinemática y dinámica inversa.

2. Se realiza la Linealización respecto a la trayectoria como se muestra en [1] y se usan controladores adaptativos para corregir los posibles errores.

Lazo de realimentación externo

De (1) y definiendo a X como ,¨ © ª-« y a ,¬­ ® ®-« como la trayectoria deseada, tenemos:

]©ª^ A/( ¬°°° (27)

Definimos al error de la trayectoria como:

±² ¬ ¬­®® y ³¨³©³ª ¨´(©´(ª ( ®©­ª­ (28)

Linealizando (1) alrededor de la trayectoria deseada

'±² * ( ±² o( ³¨³©³ª (29)

Donde:

( 0 0 sin ® ® cos ® 0 0 cos ® ® sin ® 0 0 0 ; o( µcos ® sin ® 0sin ® cos ® 00 0 1¶

Una vez linealizada la dinámica del error, podemos aplicar métodos de diseño de controladores clásicos como los PI por ubicación de polos [1] y [6] o podemos aplicar métodos de control óptimo, como lo es el diseño de controladores por realimentación de estados.

Para esto hace falta definir la función de costo del sistema:

m· ¸ ¬¹º¬ 2 ¨¹d¨»b

Resolviendo la ecuación de Riccati [14] con ¨ f¬.

De los cálculos realizados se pudo obtener una matriz ( con diagonal dominante, por lo que se simplifico a ¼c½¾,½(( ½( ½()- por facilidades de cálculo.

Page 7: Diseño e Implementación de un Robot Móvil Autónomo Aplicando Redes Neuronales Artificiales

7

Deseamos que dicha matriz en lazo cerrado: (¿ ( o(f sea constante, por lo que usaremos un controlador con ganancia variable fÀ( donde: fÀ( o(/(( ¼c½¾,½(( ½( ½()- (30)

Lazo de realimentación interno

De (26) y definiendo a ,¨(®®® ¨®®® ¨)®®®-« como los voltajes nominales para los motores y a , ® ©­ ª­-« como las velocidades deseada, tenemos:

¨(®®®¨®®®¨)®®® so /( vvwxya ®©­ª­ so /( vvwxya ] ª©ª¨0 ^ 2o¹ vwaxyv zxyxvw 2 ÁÂ~ ®©­ª­ (31)

Definimos los errores en el lazo interno:

·ÃÄ ]©ª^ ¨´(©´(ª ( y ³¨(³©(³ª( ¨(©(ª( ¨(®®®¨®®®¨)®®® (32)

Linealizando (19) alrededor de la trayectoria tenemos:

·ÃÄ ·ÃÄ o ³¨(³©(³ª( (33)

Donde:

/( 0 ª­ ©­ ª­ 0 u®0 0 0 ; o /(

De forma similar se calculan los valores empleando la función de costo para el lazo interno y hallando la matriz en lazo cerrado ¿ of obtenemos: fÀ( o/( ¼c½¾,½(( ½( ½()- (34)

Simulaciones

Para la realización de las simulaciones se implementó el modelo matemático hallado en la cinemática y dinámica (Figuras 10 y 11). Además de implementarse en el software el controlador no lineal descrito anteriormente (Figura 9), el cual usa la cinemática y dinámica inversa, así como los controladores adaptativos. (Figura 12, 13 y 14)

Figura 10 Cinemática del Robot

Figura 11 Dinámica del Robot

Figura 12 Cinemática Inversa

Figura 13 Dinámica Inversa

Figura 14 Controladores Adaptativos

Además se consideró un saturador a la salida del controlador, el que no permitirá el uso de voltajes mayores a 20 voltios, lo cual es una de las restricciones físicas del modelo.

Para el control de trayectoria se le ordenó al robot realizar la trayectoria de una circunferencia de 1m de diámetro iniciando su recorrido en el centro de la circunferencia.

Page 8: Diseño e Implementación de un Robot Móvil Autónomo Aplicando Redes Neuronales Artificiales

8

Figura 15 Trayectoria en X, Y y PHI

Figura 16 Ploteo en XY

Figura 17 Voltajes en los Motores

Red Neuronal Artificial

Para la parte inteligente de nuestro móvil utilizamos una Red Neuronal del tipo Backpropagation, puesto que necesitamos seleccionar un valor adecuado para diversas entradas, puesto que nuestras salidas mas tienden a ser simplemente la significación de determinados valores (izquierda y derecha), utilizaremos una función sigmoidal en las neuronas de la capa oculta, ya que esta función arroja valores que tienen una tendencia a lo binario.

Como se sabe, la red Backpropagation necesita por lo menos una capa oculta, el número de neuronas de la capa oculta no se puede calcular de manera directa por tal motivo, lo que hicimos fue comenzar con un número pequeño de neuronas el mismo que poco a poco fuimos aumentando hasta que observamos en las simulaciones que la red convergía a los valores esperados. A continuación se encuentra la estructura básica de la

red neuronal utilizada (Figura 18):

Figura 18 Estructura de la Red Neuronal Como se puede apreciar para esta red utilizamos la función sigmoidal en la capa oculta mientras que en la capa de salida utilizamos la función identidad, esto debido a la necesidad que poseíamos de obtener valores binarios.

Figura 19 Funciones utilizadas en la red Una de las deficiencias que posee la red Backpropagation es que si el valor de la taza de aprendizaje (α) es demasiado grande se corre el riesgo de saltar alguno de los mínimos, ya sea local o global, en el caso inverso, si la taza de aprendizaje es demasiado pequeña, se tiene más seguridad de llegar a un mínimo pero el llegar hasta dicho punto tomaría mucho tiempo de entrenamiento, para evitar estas dificultades agregamos en la función de entrenamiento un término llamado momento (β) cuya función es introducir una fracción del incremento de pesos que se tuvo en el instante anterior de esta manera garantizamos que no saltaremos por encima el mínimo más cercano al punto de partida. El algoritmo de aprendizaje se basa en regular los pesos de tal forma que el error vaya disminuyendo, a diferencia de otros tipos de red que también utilizan este método, la Backpropagation no solo se centra en el error cometido en la salida, sino que también evalúa el error que se comete en la capa oculta de neuronas. Para el entrenamiento de esta red utilizamos las herramientas que otorga el Matlab, puesto que sólo necesitamos una función que sea capaz de predecir el

Page 9: Diseño e Implementación de un Robot Móvil Autónomo Aplicando Redes Neuronales Artificiales

9

mejor comportamiento para el móvil este software otorga las funciones necesarias para realizar un entrenamiento a mayor velocidad y de esta manera poder emplear ese tiempo ahorrado en pruebas de dicha función obtenida. Como resultado del entrenamiento obtuvimos el siguiente cuadro de progreso:

Figura 20 Cuadro del Progreso en el Entrenamiento

Y la siguiente función del error respecto al progreso

en el entrenamiento:

Figura 21 Función del error respecto al avance en el entrenamiento

Como se puede observar nosotros creemos considerable tener una tolerancia en el error de aproximadamente 10-5 el cual alcanzamos luego de haber realizado una gran cantidad de iteraciones. Para probar que dicha función arrojada por las redes neuronales es efectiva realizamos una GUI en Matlab para poder visualizar de manera sensilla el

comportamiento que el móvil tendría en cualquier circunstancia. Como primer paso necesitamos crear un mapa aleatorio el cual deberá ser recorrido exitosamente por el móvil sea cual sea la disposición de los obstáculos.

Figura 22 Generación aleatoria de un mapa Como siguiente paso introducimos la función que fue otorgada por el Matlab a la trayectoria del móvil y de esta manera comprobamos la eficacia de esta:

Figura 23 Trazo de la trayectoria realizada Sensores Ultrasónicos

Un factor muy importante para la toma de decisiones de la trayectoria a seguir por parte del robot, son los sensores que le permiten reconocer si existen obstáculos en la dirección y sentido en el cual se moviliza y que sean capaces de enviar información aún en situaciones desfavorables (total oscuridad, exceso de luz, niebla, etc.), por lo cual dichos sensores son de tipo ultrasónico. Un sensor ultrasónico, como su nombre ya lo describe, es aquel con el cual podemos explorar el entorno por medio del envío y recepción de ondas ultrasónicas, de esa manera la onda emitida por el sensor recorrerá dos veces la distancia que queremos saber: Distancia ÇÈÉUSÈÊËOÌO OÈÊ Í0O (35)

Page 10: Diseño e Implementación de un Robot Móvil Autónomo Aplicando Redes Neuronales Artificiales

10

El sensor es controlado por un pulso 1 lógico, con una duración de 10uS. Después de recibir este pulso, los sensores envían una señal acústica ultrasónica y coloca la línea de eco en 0 lógico, a la espera de la recepción de eco. Una vez que el eco es recepcionado, se pone nuevamente la línea de eco en 0 lógico. Con el microcontrolador se llega medir el tiempo de los ecos, es decir el tiempo en que la línea de eco estaba en 1 lógico y así calcular la distancia del obstáculo. Pero como el funcionamiento del robot, no requiere de la distancia a la cual está el obstáculo, sino que solo requiere la presencia del mismo, entonces el microcontrolador se encarga de enviar una respuesta 1 lógico, si el obstáculo está entre 3cm y 15 cm frente a él; y una respuesta 0 lógico cuando dicha distancia esté por encima de 15cm.

VI. CONCLUCIONES

Mediante el empleo de 3 ruedas omnidireccionales es posible diseñar una plataforma que cumpla con los requisitos planteados en nuestros objetivos, pues no presenta restricciones en la dirección de su movimiento, además al tener sólo 3 puntos de apoyo garantizamos la existencia de un plano único que los contenga, por lo tanto nos aseguramos que todas las ruedas se encuentren en contacto directo con la superficie y contribuyan al desplazamiento del móvil. Se ha logrado obtener un modelo no lineal que representa satisfactoriamente al sistema. Este modelo se resume en las ecuaciones 17 y 18. El algoritmo de control diseñado se muestra eficiente, (figuras 15 y 16). Además el empleo de técnicas de control óptimo y las funciones de costo nos permiten obtener un equilibrio entre exactitud y potencia, lo cual le otorga al método planteado una gran ventaja, pues ante distintas necesidades pueden fácilmente adaptarse las ganancias de los controladores. Para el diseño del módulo de evasión de obstáculos que empleará 3 sensores ultrasónicos para la detección de obstáculos se planteó colocarlos en la parte frontal del omnidireccional separados unos 15º, esta configuración se ha mostrado satisfactoria ante varios de los casos posibles como los mostrados en la Figura 24, además permite un fácil entrenamiento de la RNA.

3 4

1 2

Figura 24 Casos Posibles

VII. RECOMENDACIONES

Se recomienda la compra de motores con encoders y caja reductora ya incorporada.

Figura 25 Motor DC con encoder Si no se compran motores nuevos o el presupuesto no es lo suficientemente holgado y debe de optarse entre comprar motores con encoders o motores con cajas reductoras se recomienda preferir los motores con encoders pues acoplar los mismos a motores que no los posean es un trabajo aún más complicado que acoplarles cajas reductoras. En el modelado matemático de los motores es posible despreciar el efecto de las inductancias de los motores, pues en la mayoría de casos estas no afectan mucho al modelo y simplifica el sistema. Es necesario recordar que el móvil contendrá deslizamientos en el arrastre de las ruedas omnidireccionales, pero estos pueden ser compensados con el controlador. Se recomienda no tomar en cuenta las aceleraciones pequeñas (como se hizo anteriormente) con el fin de desacoplar la matriz y hacer más sencillo el cálculo inverso, y de este modo la cinemática inversa. BIBLIOGRAFÍA [1] Yong Liu, Xiaofei Wu, Jim Zhu, J. Jae Lew Sch. of Electr.

Eng. & Comput. Sci., Ohio Univ., Athens, OH, USA, “Omni-Directional Mobile Robot Controller Based on Trajectory Linearization”, pp 234-242.

[2] Muir, P. Neuman, C. “Kinematic modeling for feedback control of an omnidirectional wheeled mobile robot” Carnegie Mellon University, Pittsburgh, PA;

[3] V. F. Muñoz Martínez, G. Gil-Gómez y A. García Cerezo “Modelado Cinemático y Dinámico de un Robot Móvil Omni-direccional”. Instituto Andaluz de Automática Avanzada y Robótica. Dpto. Ingeniería de Sistemas y Automática. Universidad de Málaga.

[4] Robert L. Williams II, Brian E. Carter, Paolo Gallina and Giulio Rosati “Dynamic Model with Slip for Wheeled Omni-Directional Robots”, IEEE Transactions on Robotics and Automation Vol. 18, No. 3, pp. 285-293 - 2002

[5] Balakrishna, R.; Ghosal, A. “Modeling of slip for wheeled mobile robots” IEEE Transactions on Robotics and Automation. Volume 11, Issue 1, Feb 1995 Page(s):126 – 132

[6] Watanabe, K., Shiraishi, Y., Tzafestas, S. G., Tang, J. and Fukuda, T., “Feedback Control of an Omnidirectional Autonomous Platform for Mobile Service Robots,” Journal of Intelligent and Robotic Systems, 22(3), pp. 315-330, 1998.

[7] Dongkyoung Chwa, “Sliding-Mode Tracking Control of Nonholonomic Wheeled Mobile Robots in Polar

Page 11: Diseño e Implementación de un Robot Móvil Autónomo Aplicando Redes Neuronales Artificiales

11

Coordinates” IEEE Transactions on Control Systems Technology, Vol. 12, No. 4, July 2004

[8] A Filipescu, U Nunes, S Stamatescu “Discrete-time, sliding-mode WMR control based on parameter identification” 16 th IFAC World Congress, 2005

[9] Giuseppe Oriolo, Member, IEEE, Alessandro De Luca, Member, IEEE, and Marilena Vendittelli “WMR Control Via Dynamic Feedback Linearization: Design, Implementation, and Experimental Validation” IEEE Transactions on Control Systems Technology, Vol. 10, No. 6, November 2002

[10] R.C. Hibbeler, Engineering Mechanics Dynamics, cap ‘rigid body dynamics’, 2008.

[11] James L. Meriam, Dynamics, Edicion 2, Editorial Wiley, 1971. Universidad de Michigan .

[12] Zhu, J. Jim, Banker, Brad D. and Hall, Charles E., “X-33 Ascent Flight Controller Design By Trajectory Linearization-A Singular Perturbational Approach”, Proceedings, AIAA Guidance, Navigation and Control Conference, Denver, CO, to appear, August, 2000

[13] J. Zhu, A. Scott Hodel, Kerry Funston and Charles E. Hall, “X-33 entry flight controller design by trajectory linearization - a singular perturbational approach”. Advances in the Astronautical Sciences, Vol.107, 151-170

[14] Stanislaw H. Zak , “Systems and Control” Capítulos 4-6