Empezamos un nuevo proyecto con uno de los robots más interesantes y educativos que podemos hacer, un robot omnidireccional con Omni Wheel controlado por Arduino.
Los robots omnidireccionales pueden moverse en todas las direcciones sin necesidad de girar, a diferencia de un vehículo con ruedas direccionales como el que vimos al ver el Robot 2WD.
Para que un robot sea omnidireccional podemos emplear ruedas normales encima de un mecanismo que las gire. O podemos usar distintos tipos de ruedas especiales que permitan este movimiento. Entre alternativas de ruedas tenemos las Omni Wheel, las Mecanum Wheel, las Omni Ball, y los Omni Crawl, entre otros.
En el próximo proyecto, que llevaremos un en paralelo con este, haremos un robot con Mecanum Wheel. Pero en este nos centraremos en las Omni Wheel, una alternativa muy popular, y algo más sencilla y barata.
En concreto, os presento el robot con ruedas Omni Wheel que vamos a ver en este proyecto, en su versión más básica. Luego podemos añadirle sensores de distancia, Bluetooth, Wifi, y todos los extras que se os ocurra.
Como es habitual en nuestros proyectos, en esta primera entrada veremos el planteamiento general y el presupuesto. En las siguientes entradas de la serie veremos el montaje, esquema eléctrico y la programación.
¿Qué son las Omni Wheel?
Las Omni Wheel son una idea que resulta a la vez sencilla y genial. Una Omni Wheel es una rueda que dispone de rodillos en el perímetro, que pueden girar libremente.
Las ruedas Omni Wheel se comportan de forma similar a una rueda convencional al rodar, es decir, proporcionan tracción en el sentido tangencial. Sin embargo, en sentido transversal los rodillos giran libremente y hacen que deslice lateralmente.
Parece sencillo, pero en realidad es un mecanismo con gran potencial. Ante un esfuerzo combinado, por ejemplo, un movimiento en diagonal, una Omni Wheel reacciona únicamente a los componentes tangenciales, mientras que ignora los transversales.
Por supuesto existen muchos modelos de ruedas Omni Wheel, con distintos tamaños, número de rodillos, capacidad de carga, geometría y, por supuesto, un gran abanico de precios.
Robots con Omni Wheel
Los robots con Omni Wheel pueden desplazarse en cualquier dirección sin rotar, rotar, o una combinación de ambas. Esto es lo que llamamos robot omni direccional.
Por combinación de movimiento y rotación los robots con Omni Wheel pueden realizar cualquier movimiento posible. Por ejemplo, pueden desplazarse manteniendo la rotación, desplazarse mientras gira, girar respecto a un punto. ¡Cualquier combinación posible!
Durante el movimiento es imprescindible que la velocidad de rotación de las Omni Wheel estén perfectamente sincronizadas. Cada rueda un componente tangencial a su eje de rotación, y la suma de las velocidades resultante es la dirección y rotación global del robot.
Aquí vemos el robot que vamos a montar rotando sobre su eje, y moviendo las ruedas a la misma velocidad de dos en dos dejando la tercera parada. El aporte de cada rueda se suma, y la velocidad resultante hace que el robot se mueva en los tres sentidos.
Si jugamos con la velocidad de cada rueda, cualquier movimiento es posible. Aquí vemos el robot recorriendo un circulo sin variar la orientación del cuerpo (varia un poquito, porque aún no hemos calibrado los servos).
Los robots con Omni Wheel normalmente emplean una disposición axial con tres o cuatro ruedas, aunque un número superior de ruedas es posible.
Con una disposición axial el chasis puede adoptar cualquier forma, un círculo, un cuadrado, un polígono, a condición de que las ruedas queden perfectamente alineadas y sus ejes se corten en un único punto.
Realmente no es necesario que las ruedas tengan una disposición estrictamente axial. Otras disposiciones son posibles aunque, salvo algunas excepciones, el control es más complicado. La sencillez del control es el principal motivo por el que la distribución axial es la preferida.
En realidad, existen infinitas disposiciones posibles. Lo que no es posible es que todas las ruedas sean paralelas. Para eso necesitaremos otro tipo de ruedas, como las Mecanum Wheel, que veremos en el próximo proyecto.
Motores y control para Omni Wheel
Como hemos dicho, para que un robot con ruedas Omni Wheel funcione correctamente es necesario que cada una de las ruedas funcione en perfecta sincronía. Esto significa que vamos a necesitar un control fino de la velocidad. Entre las opciones de motores disponibles, esto las reduce a DC+Encoder, motores paso a paso, o servo con rotación continua.
En este proyecto usaremos servos de rotación continua. En primer lugar, porque las ruedas que vamos a usar están pensadas para acoplarse a un servo y, por otro lado, porque ya hemos usado motores DC+Encoder y en el proyecto de Mecanum Wheel usaremos motores paso a paso. Así le vemos un poco de variedad.
Respecto al control de posición, vamos a tener que hacer un control integral a través de la velocidad, que como sabemos no es la opción más precisa. Pero las ruedas Omni Wheel tampoco son especialmente precisas, porque su propio funcionamiento implica deslizamiento. Así que el control de posición integral es algo con lo que podremos vivir.
Presupuesto
Las ruedas Omni Wheel no son los componentes más caros del mundo, pero tampoco son precisamente baratas. Podemos encontrar las ruedas más pequeñas desde unos 6€ cada una, mientras que las más grandes pueden costar 20€ o más. Evitaremos las ruedas más pequeñas porque el comportamiento no es bueno.
Para nuestro robot vamos a elegir unas ruedas Omni Wheel de 58mm. Podemos encontrarlas por unos 8€ cada rueda, e incluyen un acoplamiento de plástico para conectarlas con un servo de corriente continua. Por tanto llevamos unos 27€ en las ruedas.
Por otro lado, necesitaremos los servos de corriente continua, que cuestan unos 7€ cada uno. También necesitaremos tres, así que llevamos otros 21€ en motores.
Por otro lado, necesitaremos un chasis. Es difícil encontrar piezas con disposición triangular y la forma y dimensiones que necesitamos. Así que vamos a optar por una forma circular, más conveniente y más de comprar.
Una base de madera nos permitirá poder hacer agujeros, atornillar los motores, etc, a la vez que nos dará una buena resistencia. Yo he elegido una tabla de cortar queso/pulpo que he comprado en un chino por unos 3€. Si, tan raro como suena, pero son unas bases para botos estupendas.
Al chasis deberemos añadirle unos servo brackets multifunción para fijar los servos a la base del robot. Podemos comprarlos por 1.5 y, como necesitamos tres, suman unos 4.5€ más al presupuesto.
En cuanto a electrónica, no vamos a necesitar mucha cosa. En realidad, es un robot sencillo desde el punto de vista eléctrico. Únicamente necesitaremos un Arduino (2€), una breadboard, cables y un interruptor. Digamos unos 5€ en total.
Por tanto, podemos montar un robot con ruedas Omni Wheel por unos 55-60€, sin contar las baterías. Es decir, es un robot de rango de precio medio, ni de los más caros ni de los más baratos.
No hemos contado las baterías, porque lo normal es que las reaprovechemos entre proyectos. Entre las opciones de baterías, necesitamos una batería entre 5V a 6V. En mi caso he usado una batería de NiCd que me da una tensión de 6V, muy adecuada para alimentar los servos y sacarles un poco más de rendimiento que a 5V.
A partir de ahí, podemos añadirle los extras que queramos. Por ejemplo, sensores de distancia de ultrasonidos o de infrarrojos, un acelerómetro con giroscopio, Bluetooth o Wifi. ¡Lo que queramos!
Conclusión
Construir un robot con Omni Wheel es un proyecto muy interesante. Es un robot de precio medio y la parte electrónica es muy sencilla. La programación es interesante y requiere de un poco de matemáticas, pero tampoco es demasiado complicado.
Eso sí, es un proyecto que hay que construir con cariño si queréis dejarlo realmente afinado. Pero una vez que tengáis la plataforma y consigáis moverla como queráis, da un montón de opciones para construir robots y proyectos interesante.
En la próxima entrada de este proyecto de robot con Omni Wheel con Arduino veremos el montaje, y en las siguientes el montaje eléctrico y programación. ¡Hasta pronto!