Movimientos para robot omnidireccional
Última actualización el Viernes, 06 de Marzo de 2009 19:20 Escrito por Koldo Sábado, 06 de Septiembre de 2008 17:24
Cálculos
Este es el estudio de velocidades de los motores de un robot omni-direccional sobre bolas montado con la geometría de la figura. El robot se apoya en el suelo en tres bolas que se encuentran sobre los vértices de un triángulo equilátero. a cada una de las bolas se le transmite el movimiento por medio de cuatro ruedas de goma movidas por dos motores.
El movimiento se genera como combinación del giro de 6 motores. Si la relación de transmisión es en todos ellos es la misma no es necesario aplicarla en los cálculos. En la figura se representan con 1Rojo (del mismo modo 2R y 3R) las movidas por uno de los motores (los conectados al puerto rojo de los receptores de infrarrojos) y 1A (del mismo modo 2A y 3A) por el otro (los conectados al puerto azul de los receptores de infrarrojos). Las flechas en rojo representan la dirección y sentido de movimiento generado por el giro en sentido positivo de los motores.
Las velocidades de giro aparecen representadas por las siguientes variables:
n1A, n1R, n2A, n2R, n3A, n3R
Los cálculos que se presentan a continuación son el caso particular del robot con motores PF controlado a distancia. Estos motores permiten 7 niveles de potencia. Si bien en un principio tenía la intención de programarlo para que la velocidad fuera proporcional a la inclinación del mando al final decidí que en todos los casos se desplazase en cada dirección a la mayor velocidad posible.
En las variables definidas anteriormente el número corresponde al canal de infrarrojos y la letra al color del puerto del receptor de infrarrojos al que está conectado cada motor.
Velocidades con motores PF
Los valores de velocidad hay que calcularlos en una escala del 0 al 7. El cero significa que el motor está detenido y el máximo es el 7. Cuando el motor ha de girar en sentido contrario estos valores son los comprendidos entre 9 y 15, pero en sentido inverso, es decir, 9 es la máxima potencia y 15 la mínima. El valor 8 hace que se pare en modo BRAKE, es decir, bloqueando los motores en lugar de simplemente quitarles la alimentación.
Si bien en un principio pensaba introducir todas las fórmulas necesarias para hacer los cálculos de velocidades en el programa, al final decidí definir unas matrices que almacenen las velocidades para los diferentes movimientos. Estos movimientos están definidos de tal modo que cuando el programa se pone en marcha la dirección de avance es la definida por el módulo que se controla por el canal 1 y el centro geométrico del robot. Esa dirección principal puede modificarse por medio de las flechas del NXT que cubre la función de mando a distancia de tal modo que los iniciales 8 movimientos se convierten en 20 diferentes.
Mapa de movimientos
Los diferentes movimientos que se pueden generar son los que aparecen en la siguiente tabla, en ella aparecen relacionados con la zona hacia la que habrá de inclinarse el mando con el número que las representan, aunque también sirven para otros sistemas de control (se corresponden con las zonas definidas en la imagen anterior).
| Avance con giro a la izquierda (0) | Avance (1) | Avance con giro a la derecha (2) |
Giro en contra de las agujas del reloj(3) | STOP (4) | Giro a favor de las agujas del reloj (5) |
| Retroceso con giro a la izquierda (6) | Retroceso (7) | Retroceso con giro a la derecha (8) |
Giros
A continuación se definen los valores de la velocidad de rotación de los motores para generar dos tipos diferentes giros: giro alrededor del centro geométrico del vehículo y giro alrededor de uno de los apoyos (puntos 2 y 3). Todos estos valores son relativos y representan la relación entre las velocidades de los diferentes motores. Para obtener velocidades de giro a aplicar a los motores no hay mas que multiplicarlos por la velocidad de giro máxima deseada.
En estas dos figuras se pueden ver en rojo las direcciones de giro positivas tanto del movimiento generado por los motores conectados a los conectores rojos (1R, 2R y 3R) como del movimiento generado por los motores conectados a los conectores azules (1A, 2A y 3A). Las flechas azules son los vectores de movimiento para el movimiento de giro alrededor del centro y de giro respecto al punto 3.
La geometría del vehículo hace que todos los ángulos a utilizar en los cálculos sean de 30º y 60º. La tabla ofrece las relaciones entre las velocidades de los diferentes motores, en dos de los casos se puede ver la matrices de velocidades a aplicar a los motores para generar los movimientos estudiados.
| n1A | n1R | n2A | n2R | n3A | n3R | |
| Giro a favor de las agujas del reloj alrededor del punto O (GD) | 0 | 1 | 0 | 1 | 0 | 1 |
| Matriz GD | 0 | 7 | 0 | 7 | 0 | 7 |
| Giro en contra de las agujas del reloj alrededor del punto O (GI) | 0 | -1 | 0 | -1 | 0 | -1 |
| Matriz GI | 0 | 9 | 0 | 9 | 0 | 9 |
| Giro alrededor del punto 3 (G3) a favor de las agujas del reloj | -tan30º | 1 | tan30º | 1 | 0 | 0 |
| Giro alrededor del punto 2 (G2) a favor de las agujas del reloj | tan30º | 1 | 0 | 0 | -tan30º | 1 |
Movimiento rectilíneo
El objetivo al realizar los cálculos para el movimiento rectilíneo es que las tres bolas se desplacen a la misma velocidad. Todas las relaciones para que se mueva en línea recta pasan por que se mueva en una de las direcciones que define el centro geométrico del vehículo y el apoyo de una bola. La matriz de velocidades de retroceso tiene los mismos valores pero cambiados de signo.
| n1A | n1R | n2A | n2R | n3A | n3R | |
| Movimiento rectilíneo dirección Y sentido positivo | -1 | 0 | sen30º | cos30º | cos60º | -cos30 |
| Matriz AA (avance) | 9 | 0 | 4 | 6 | 4 | 10 |
| Matriz RR (retroceso) | 7 | 0 | 12 | 10 | 12 | 6 |
Movimiento combinado
El movimiento en muchos casos no es ni rectilíneo ni de giro, sino una combinación de los dos. En ese caso para su estudio puede descomponerse en dos movimientos: un movimiento de giro suponiendo un punto del sólido en reposo y un movimiento rectilíneo puro. Para general un movimiento de este tipo he combinado dos de los movimientos anteriores, el rectilíneo y el de giro respecto al punto de contacto de una bola con el suelo.
Los posibles movimientos son los representados en el mapa de movimientos y se generan de la siguiente manera:
AD = AA + G3 (avance con giro a la derecha)
RD = -AD (retroceso con giro a la derecha)
AI = AA – G2 (avance con giro a la izquierda)
RI = -AI (retroceso con giro a la izquierda)
Una vez realizados los cálculos de velocidades, dado que hay valores superiores a la unidad hay que reducirlos de modo proporcional para que el mayor valor se convierta en la unidad. Para finalizar hay que multiplicar todos los valores por 7 y redondear, y a continuación en los casos en que los valores sean negativos cambiar el signo y convertirlos en el valor a enviar a los receptores de infrarrojos de los motores.
| n1A | n1R | n2A | n2R | n3A | n3R | |
| Movimiento rectilíneo dirección y sentido positivo (AA) | -1 | 0 | sen30º | cos30º | cos60º | -cos30 |
| Giro alrededor del punto 3 (G3) a favor de las agujas del reloj | -tan30º | 1 | tan30º | 1 | 0 | 0 |
| AA + G3 | -1-tan30º | 1 | sen30º+tan30º | cos30º+1 | cos60 | -cos30 |
| Matriz AD | 10 | 4 | 4 | 7 | 2 | 13 |
| Matriz RD | 6 | 12 | 12 | 9 | 14 | 3 |
| Giro alrededor del punto 2 (G2) a favor de las agujas del reloj | tan30º | 1 | 0 | 0 | -tan30º | 1 |
| AA -G2 | -1-tan30º | -1 | sen30º | cos30º | cos60+tan30º | -cos30-1 |
| Matriz AI | 10 | 12 | 2 | 3 | 4 | 9 |
| Matriz RI | 6 | 4 | 14 | 13 | 12 | 7 |
Otras opciones
El estudio de movimientos da para mucho más. en el programa utilizado para la variante número 2 del vehículo omni-direccional se utilizan motores directamente conectados al NXT. Las posibilidades de control de las velocidades son mayores, de -100 a +100. Así que las matrices de velocidades hay que recalcularlas para adaptarlas a dichos valores. Incluso si lo que se desea es que pueda moverse en cualquier dirección habrá que formularlas en función de un ángulo respecto a los ejes de diferencia e introducirlas en el programa para que sea el mismo programa el que haga los cálculos de velocidades para cada ángulo cuando lo necesite. De este modo también se puede introducir un factor que regule la velocidad
Otro ejercicio es modificar las fórmulas para aquellos casos en los que la relación de transmisión no sea la misma en todas las direcciones.
Como ejercicio para el aula otro puede ser hacer el cálculo de velocidad del robot relacionándola con la velocidad de giro de los mootres suponiendo que todas las transmisiones se realizan sin deslizamiento.
Comentarios |
|
|
Powered by !JoomlaComment 3.26
|





