miércoles, 3 de julio de 2013

Robot Diferencial: Realimentación en la dirección de movimiento.

La importancia de un robot diferencial radica en la simpleza de sus dos ruedas, donde el estudio de las formas de movimiento que este puede presentar permiten introducirnos al mundo de la robotica móvil. Es por ello que en esta entrada, se comparte una serie de conceptos importantes que permiten acercarnos a la dinámica de un robot diferencial y a un sistema realimentado que permitirá, sin duda alguna, controlar la dirección a la cual se desea desplazar un robot diferencial. Cabe resaltar que los conceptos que acá se presentan son, en su gran mayoría, extraídos de las notas del curso gratuito "Control of Mobile Robots" disponible en la página https://www.coursera.org/

Example of Differential Drive


Como inicio, se introduce una definición no muy formalizada de un robot diferencial: "un robot diferencial es un equipo inteligente, que por medio de dos llantas con ejes alineados entre sí, es capaz de desplazarse a través de una superficie y generar una serie de curvas por medio de la variación de velocidades lineales en cada una de sus ruedas". Esta definición es propia y empírica, pero permite sintetizar la idea principal de un robot diferencial. Entonces, el objetivo que se plantea con un robot de este estilo, es controlar su movimiento. Es importante destacar lo siguiente: sabemos que para que un sistema de estos se mueva en linea recta, es necesario que las dos ruedas mantengan una velocidad igual entre sí. Para saber lo anterior no es necesario haber tenido experiencia alguna con las ecuaciones que describen el comportamiento de mi sistema, sino algo "intuitivo". En el vídeo que se muestra a continuación, se hace una introducción al movimiento diferencial y la identificación de componentes necesarios para realizar un sistema de control:



Acá no se pretende hacer una demostración de las ecuaciones que describen la dinámica de un equipo móvil de este estilo. Para conocer esto en detalle, ir a la entrada Robot Diferencial: Cinemática (próximamente). Se tendrán en cuenta las ecuaciones directamente. Como primer acercamiento, las ecuaciones que describen el movimiento cinemático son: (cambiar ecuación)

Estas ecuaciones nos permiten obtener la velocidad de traslación y de rotación de un robot, en función de la velocidad. Como podemos observar, la velocidad respecto al centro ubicado entre las dos ruedas, es el promedio de las velocidades lineales de cada una de las ruedas. La velocidad angular del robot es proporcional a la diferencia de velocidades lineales. El problema de estas funciones se debe a lo siguiente: para obtener una velocidad linear y/o angular es necesario definir las velocidad angular de cada una de las ruedas; si se desea definir una velocidad linear y angular, para describir una curva, no es posible porque estos valores físicos están en función de las velocidades angulares de las ruedas. Es por ello que hay que cambiar estas ecuaciones por otras mas prácticas, conservando el principio físico. Si se observa con claridad, se tiene un sistema de dos ecuaciones con dos parámetros independientes. Empleando el álgebra, se reescribe el sistema, para definir la velocidad de cada una de las ruedas en función de los parámetros que se desea establecer: la velocidad linear y angular. Por tanto, el resultado es el siguiente:
Ahora, ya es posible indicarle al robot cual será la velocidad, tanto linear como angular, para que describa una curva, pues las velocidades angulares de cada una de las ruedas está en función de los valores que deseamos establecer en el sistema y que describen mejor el movimiento de un cuerpo sobre una superficie.

Ahora, si se analizan las últimas ecuaciones escritas, es posible observar que cuando el parámetro de la velocidad angular es cero, el sistema no presentará rotación, ya que las velocidades angulares de cada una de las ruedas girará en el mismo sentido con la misma cantidad de revoluciones. Luego, si se anula el término de velocidad lineal, se observa que, las velocidades angulares poseen el mismo valor absoluto, pero una será el negativo de la otra, indicando que una girará en sentido contrario respecto a la otra, generando una rotación sobre el eje que se encuentra en la mitad de las dos. Es así como se puede observar una combinación lineal entre velocidad angular y velocidad lineal, denominando estos dos valores como las entradas del sistema.

Ahora, como se describe en el vídeo mostrado inicialmente, existen factores que afectan el comportamiento del sistema, como lo es la fricción no uniforme del suelo, los parámetros internos del motor como la resistencia y la impedancia, que varia y es diferente en cada motor, aunque sean de la misma referencia, marca, muy parecidos en funcionamiento.

Esto es un problema, debido a la necesidad de aplicar estas ecuaciones en un sistema físico, porque, pro ejemplo, no va a ser posible desplazar al robot en linea recta, ya que si las velocidades angulares de las ruedas son diferentes, se presentará una curva en el desplazamiento.

Pero, por medio de un sistema realimentado, este sistema puede estabilizarse logrando que nuestro sistema se mueva en la dirección que deseamos, y con la velocidad establecida. ¿cómo funciona el sistema realimentado? Primero se debe considerar que para realimentar un sistema, hay que medir lo que se está produciendo en la salida. Como el problema consiste en manipular la dirección de un robot, la salida se considerará como la dirección que presenta el robot. ¿Como se medirá la dirección que lleva el robot? Por medio de un sensor, que para nuestro caso, será la brújula electrónica. Se puede hacer también por un sistema de localización GPS o un sistema de visión artificial, pero la idea es trabajar con algo mas simple y accesible. Luego, la brújula electrónica nos permite medir la dirección que lleva un dispositivo respecto al norte de la tierra.

Antes de continuar, simplifiquemos el resultado de las ecuaciones obtenidas anteriormente:

esto se hace ya que, usualmente los motores y en especial los servomotores, se les define un valor que es proporcional a al velocidad angular, por lo tanto habría que hallar dicha constante, que transforma, por ejemplo un valor PWM en velocidad angular. Como esta constante no es necesaria del todo, simplemente denominamos la parte de la velocidad lineal y angular con dos letras. En caso de trabajar con odometría, esto no se debe hacer, ya que se requiere el cálculo de trayectorias por medio de los cambios en la posición. Esto no se trabajará acá, pero es posible hablar de ello en otra ocasión.

De las ecuaciones resultantes, se observa que si el parámetro de la velocidad angular general, se hace cero, la velocidad angular de cada rueda tendrá un valor igual para ambas. Así, si se quiere describir una curva hacia la izquierda o derecha del robot, será necesario ingresar un valor de velocidad angular general en las dos ruedas, produciendo una velocidad angular mayor que en la otra. Se observa entonces que si el robot no se dirigen en linea recta, es posible hacer una corrección constante por medio de este parámetro, y es allí donde entra un concepto importante de la teoría de control.

A continuación se muestra un diagrama que representa permitirá ilustrar algunos términos que serán útiles para llegar a un resultado muy interesante:

Esta es una representación simple de un robot diferencial, donde se indica claramente que a una referencia dada, existe un error asociado cuando el robot no se encuentra direccionado adecuadamente. El valor de referencia, es el valor deseado de dirección al cual queremos que se dirija el robot. El valor medido es el valor obtenido por el sensor, y el error, es la diferencia entre estos dos valores.

Si no hay error, la idea es que el robot no se desvíe o no presente una curva. Pero en caso de haberlo, hay que generar una curva de corrección. Se dejará, por simplicidad, establecer una velocidad linear constante. Trabajaremos con la velocidad angular como nuestra variable de entrada, o de control. si el sistema se encuentra en la dirección equivocada, haremos la corrección por medio de un valor fijo de la velocidad angular de tal manera que oriente al robot para que se dirija en referencia.

Continuará....

No hay comentarios:

Publicar un comentario