robot-con-mecanum-wheel-controlado-por-arduino

Robot con Mecanum Wheel controlado por Arduino

Comenzamos con un nuevo proyecto, un robot omni direccional con ruedas Mecanum Wheel. Uno de los proyectos más divertidos e interesantes que podemos realizar con un procesador como Arduino.

Recordamos que un robot omni direccional es aquel que puede desplazarse en cualquier dirección con cualquier, o ninguna, rotación del cuerpo. La combinación de ambos componentes, traslación en cualquier proporción y rotación, hace que puedan seguir cualquier movimiento como, por ejemplo, girar respecto a cualquier punto.

También tenemos otro proyecto de robot omni direccional con ruedas Omni Wheel, en esta serie de entradas.

Los robots con Mecanum Wheel son realmente interesantes. Resulta casi hipnótico verlos en funcionamiento desplazándose suavemente en cualquier dirección. Aunque es un proyecto más caro que el equivalente con ruedas Omni Wheel.

Cómo es habitual en nuestras series de proyectos, en esta entrada veremos una presentación general y el presupuesto del proyecto. En las siguientes veremos el montaje, el esquema eléctrico, y la programación.

¿Qué son las Mecanum Wheel?

Las Mecanum Wheel son una idea que, quizás sea sencilla, pero no por ello deja de parecerme genial. Consisten en una rueda convencional que dispone de una serie de rodillos en su circunferencia.

Los rodillos presentan una configuración de 45º respecto al plano de la rueda. Asimismo, estos rodillos tienen una forma curvada de forma que, vista desde el lateral, la rueda mantiene un perfil circular.

arduino-mecanum-wheel-detalle

El funcionamiento (y genialidad) de las Mecanum Wheel es que, al rodar, los rodillos hacen que la fuerza se transmita al suelo a 45º respecto a los ejes principales de la rueda. Por si misma, una Mecanum Wheel tendería a desplazarse en diagonal.

Sin embargo, al poder girar libremente los rodillos, pueden absorber fuerzas externas. Cuando varias Mecanum Wheel trabajan juntas pueden compensar las fuerzas para generar cualquier movimiento. Así es, precisamente, donde ocurre “la magia”, como veremos en la siguiente sección.

Las ruedas Mecanum Wheel fueron patentadas por Bengt Erland Ilon en Estados Unidos en noviembre de 1972 (ya ha expirado). Posteriormente fue adquirida por el ejército de EEUU, y empleado en mecanismos de transportes de mercancías.

Desde entonces, distintos productos comerciales han empleado ruedas Mecanum Wheel. Podéis buscar ejemplos de plataformas transportadoras, elevadoras, carretillas, o incluso en sillas de ruedas.

arduino-mecanum-wheel-uso-comercial

Por supuesto, existe una gran variedad de Mecanum Wheel, con distintos tipos, tamaños, capacidad de carga, número de rodillos y, por supuesto, precio.

arduino-mecanum-wheel-tipos

En particular, los diseños con rodillos enterizos interiores son más apropiadas para grandes cargas, mientras los diseños con rodillo partidos sujetados de forma central operan mejor en terrenos irregulares o con desniveles.

Finalmente, por si alguno se pregunta “¿Cómo puede ser que todos los coches no lleven aún estas ruedas?” comentar que, aunque apropiadas para soportar grandes pesos, en general, las Mecanum Wheel tienen problemas en aplicaciones de alta velocidad de rotación.

Robot con Mecanum Wheel

Los robots con Mecanum Wheel son auténticamente omni direccionales. Es decir, pueden desplazarse en cualquier dirección, con cualquier rotación, o sin rotación en absoluto.

Para ello, únicamente es necesario disponer de cuatro ruedas en disposición paralela, de forma a como haríamos con una rueda convencional.

arduino-mecanum-wheel-plataforma

Esta es una ventaja respecto a los robots con ruedas Omni Wheel, que necesitan una disposición axial de las ruedas.

Las ruedas tienen que tener una configuración adecuada (no son todas iguales). De hecho puede usarse un mayor número de ruedas, siempre que se elijan correctamente. Así, veréis ciertas plataformas industriales que disponen de múltiples ruedas.

Aquí tenéis un vídeo del robot que vamos a montar, haciendo los movimientos básicos. (Las cajas de leche son porque en esta primera etapa sin baterías, pesaba poco y me deslizaba sobre el parquet)

Como hemos dicho, los movimientos del robot dependen de la velocidad de rotación de todas de las ruedas. Así, para mover el robot adelante o atrás simplemente hacemos girar las ruedas como en el caso de ruedas convencionales.

arduino-mecanum-wheel-move

Si analizamos el movimiento veremos que la fuerza ejercida a 45º por cada una de las ruedas cancela los componentes laterales, y el movimiento resultante es de avance o retroceso.

arduino-mecanum-wheel-move-detail

Para realizar giros en torno al eje del robot, nuevamente es idéntico a emplear ruedas normales. Es decir, avanzamos las ruedas de un lado y en sentido contrario las del otro.

arduino-mecanum-wheel-rotate

Aquí tenemos la explicación en términos de composición de fuerzas donde vemos que, en este caso, no se produce ninguna cancelación de fuerzas.

arduino-mecanum-wheel-rotate-detail

Finalmente, y el más interesante, para hacer desplazar el robot lateralmente hacemos girar las ruedas de un lado hacia el interior, y las del lado contrario al exterior.

arduino-mecanum-wheel-slice

Si observamos la explicación en término de composición de fuerzas, observamos una cancelación similar a la del caso de desplazamiento longitudinal, donde se produce cancelación de fuerzas longitudinales y suma de las laterales.

arduino-mecanum-wheel-slice-detail

Estos son los movimientos básicos del robot. Pero, como hemos dicho, combinándolos podemos conseguir un comportamiento totalmente omni direccional y hacer que el robot se desplace en cualquier dirección, o rote respecto a cualquier punto.

Presupuesto

Las cosas por delante, un robot con Mecanum Wheel es uno de los robots más interesantes y divertidos, pero no es un robot barato.

Mi primer intento fue hacer un robot pequeño, con unas ruedas baratas y motores DC + Encoder. Para ver la dinámica de control, debería valer… no fue así.

arduino-mecanum-wheel-robot-1

Mi consejo es que huyáis de este tipo de ruedas. Es tirar el dinero, tienen demasiado pocos rodillos para permitir un movimiento suave. El desplazamiento (incluso adelante y atrás) es “a saltos”, y los desplazamientos laterales son en una especie de “zig-zag” errático.

Por supuesto no me quedé satisfecho ni remotamente, y realmente quería un robot con Mecanum Wheel. Así que pasé a la siguiente versión, que es uno de mis robots más grandes y potentes.

arduino-mecanum-wheel-robot-2

En este robot montamos ruedas Mecanum Wheel de 4 pulgadas. El coste unos 90€ las cuatro. Si podéis comprarlas en Kit, porque necesitáis dos ruedas “izquierdas” y dos ruedas “derechas” (no son los cuatro iguales).

También tenemos los motores. Unos motores paso a paso tipo Nema 17. Los míos no son bastante estándar, tipo impresora 3D, y podéis conseguirlos por unos 10€. Si los queréis con más para, podía costar hasta 20€ cada uno.

Para poder conectar las ruedas a los motores paso a paso necesitaréis unos acoplamientos (o Hubs). Sumar unos 8€ por cada uno. Por otro lado, tenemos los soportes en “L” que atornillan los motores a la plataforma. Otros 7€ cada uno, aproximadamente.

Finalmente, tenemos la electrónica. Controladores de motores paso a paso, Arduino, placa de conexión, etc. Así que así, sin contar las baterías, estamos hablando de un robot del orden de 200€. No es un robot barato.

Pero, a cambio, tenemos una plataforma omni direccional multipropósito que puede mover más de 10Kg. Como siempre, luego todo lo que le quieras añadir o poner encima. Un brazo robótico, una Raspberry Pi con una cámara, un Lidar,… o una bandeja para que te traiga un plato de calamares… ¡allá tú!

Conclusión

Como he dicho, un robot con Mecanum Wheel es uno de los proyectos más interesantes que se pueden realizar con Arduino. Siguen sin ser demasiados vistos, por lo que son espectaculares y sorprendentes.

A diferencia de un robot con Omni Wheel, que obliga a tener una disposición axial, un robot con Mecanum Wheel parece un vehículo con ruedas convencionales 2WD o 4WD. De hecho, podéis convertir cualquier chasis o vehículo RC a un robot omni direccional.

De hecho, los movimientos “normales” (adelante y atrás y rotación) son idénticos. Pero, añade la posibilidad omni direccional. Y conseguir el control total (por ejemplo, rotación respecto a un punto, o seguir una trayectoria curva) es interesante y complicado.

Como desventajas, es un robot algo caro. Y el movimiento, incluso montando ruedas buenas, no es tan suave como unas ruedas convencionales (los rodillos generan golpecitos, vibraciones, y un ruido de “traqueteo”).

Por supuesto, sólo estamos construyendo una plataforma multiusos. La funcionalidad final dependerá de los sensores, sistemas de comunicación y accionadores que queráis. ¿Queréis ponerle sensores y hacer que aparque? ¿Qué siga una pared? ¿Ponerle un brazo robótico y una cámara y hacer un robot tipo “artificiero”? ¡Las posibilidades son infinitas!

Precisamente, es el motivo por el que me gusta tanto este proyecto. La plataforma es estupenda y puede hacer cualquier cosa. Con unos pequeños cambios, puede servir para convertirse en tantos proyectos como os de la imaginación.

En la próxima entrada de la serie veremos el montaje de la plataforma, y en las siguientes el esquema eléctrico y la programación. ¡Hasta pronto!