Ruta de construcciónIntermedioUn fin de semana

Construya un robot mecanum omnidireccional con ESP32

Un robot que recorre un cuadrado de 1 metro en traslación pura, retorna dentro de 5 cm sin desviar el rumbo y mantiene su trayectoria global mientras rota sobre sí mismo.

Esquema técnico de Construya un robot mecanum omnidireccional con ESP32BASE_LINKVxVyωzFOUR WHEELS · THREE DEGREES OF FREEDOMROLLERS AT 45° MAKE AN X

Qué va a construir

Un robot de cuatro ruedas que se mueve en cualquier dirección por el suelo sin tener que girar antes, y que puede girar sin cambiar hacia dónde va. Empújalo de lado por un pasillo donde apenas cabe; mantén una cámara apuntando a algo mientras orbitas alrededor; corrige 3 cm de desviación respecto a una línea dando pasos de 3 cm, en vez de salir en curva y volver.

Es el primer robot de este sitio con tres velocidades controlables de forma independiente en lugar de dos. También es el primero cuya tracción es realmente más difícil que sus sensores, y por eso casi toda la construcción son motores, encoders y lazos de control.

La prueba de aceptación es deliberadamente directa: recorre un cuadrado de 1 m desplazándote lateralmente y vuelve a casa con 5 cm de margen y el rumbo sin cambios. Ningún robot de tracción diferencial puede ni intentar esa prueba.

La constante que gobierna el proyecto

Todo en esta construcción se reduce a una constante:

k = lx + ly

donde lx es la mitad de la batalla (del eje delantero al trasero, dividido por dos) y ly la mitad de la vía (de las ruedas izquierdas a las derechas, dividido por dos). En la construcción de referencia, 75 mm y 85 mm, así que k = 0.160 m.

Ese único número acopla la rotación con las ruedas. Si está mal, el robot sigue conduciendo, pero una orden de giro puro se arrastra por el suelo y una traslación pura se curva, porque la rotación y la traslación se están contaminando. Mide de centro de rueda a centro de rueda, no la chapa del chasis, que suele ser más ancha de lo que crees.

Las otras cifras que merece la pena escribir en el chasis con un marcador antes de empezar:

Magnitud Construcción de referencia De dónde sale
Radio de rueda r 48.5 mm Ruedas mecanum de 97 mm
Cuentas por vuelta de rueda 1440 12 CPR × 30:1 × 4 flancos en cuadratura
Metros por cuenta 212 µm 2πr ÷ 1440
Velocidad máxima de rueda V_MAX 0.60 m/s Medida en tacos, y luego reducida un 15 %
Techo diagonal 0.424 m/s V_MAX ÷ √2, y ninguna mejora de motor lo quita
Techo de aceleración 5.9 m/s² μg/√2 con μ = 0.85: la masa se cancela

Lista de materiales

Elemento Cant. Coste aprox. Notas
Ruedas mecanum, 80 o 97 mm 4 £28–70 Cómpralas como juego de cuatro: dos zurdas y dos diestras
Motorreductor N20 con encoder, 30:1 4 £9–14 cada uno Igualados. 100–250 rpm en la rueda es la banda útil
TB6612FNG doble puente en H 2 £4–8 cada uno Un L298N funciona y desperdicia ~3 V en ello; en un pack 2S eso es casi toda tu velocidad
Placa de desarrollo ESP32 1 £6–12 Cuatro canales PWM, cuatro pares de interrupción de encoder y telemetría por Wi-Fi gratis
IMU MPU6050 1 £2–4 Móntala plana, lejos de los motores, sobre la línea central del chasis
LiPo 2S, 1500–2200 mAh, 25C 1 £12–20 Dimensionada por corriente, no por capacidad: cuatro motores se bloquean a ~5 A en total
BEC de 5 V o convertidor buck 1 £3–5 No alimentes el ESP32 desde el raíl de motores
Chapa de chasis, 200 × 180 mm 1 £10–25 Acrílico cortado con láser, aluminio de 3 mm, o cortada por ti
Soportes de motor, cubos, fijaciones 1 juego £8–15 Haz coincidir el diámetro del cubo con el eje del motor: 3, 4 o 6 mm
Condensador de desacoplo, 470 µF 2 £1 Uno en cada raíl de motor de driver

£90–170 en total. Las ruedas y el cuádruplo de motores son la razón de que los £50 de un robot de dos ruedas se conviertan en esto.

Cómo se conecta todo

        2S LiPo ──┬── 470 µF ── TB6612FNG #1 ── FL motor ── FL encoder ─┐
                  │                         └── FR motor ── FR encoder ─┤
                  ├── 470 µF ── TB6612FNG #2 ── RL motor ── RL encoder ─┼── ESP32
                  │                         └── RR motor ── RR encoder ─┘   (4 PWM,
                  └── 5 V BEC ──────────────────────────────── ESP32 ──────  8 GPIO,
                                                                   │         I²C)
                                                   MPU6050 ── I²C ─┘

Tres decisiones de cableado que no son obvias:

  • El ESP32 tiene su propio regulador. Cuatro motores arrancando a la vez hunden el pack con fuerza, y un controlador que comparta ese raíl se apaga y se reinicia a mitad de una orden. Parece exactamente un fallo de firmware. Lee el tutorial del presupuesto de alimentación antes de culpar a tu código.
  • Un condensador de desacoplo en cada driver. 470 µF cerca de la placa. Los puentes en H tiran a rafagas y la inductancia de los cables convierte esas ráfagas en picos.
  • La IMU va en la línea central, plana, y tan lejos de los motores como permita la chapa. La deriva en guiñada ya es mala de por sí, sin el campo magnético de cuatro motores encima.

Constrúyelo por hitos

Cada uno tiene su prueba. No arrastres un fallo hacia adelante: en un robot de cuatro motores se multiplican.

1. Ruedas montadas y la comprobación de la X

Atornilla las cuatro ruedas y ponte justo encima del robot. Sigue la línea de los rodillos que ves encima de cada rueda.

Dos vistas cenitales del mismo robot de cuatro ruedas, morro arriba. En el panel superior, titulado correcto, una X, brazo de giro lx más ly igual a 160 milímetros, las líneas cian discontinuas prolongadas desde los rodillos visibles de cada rueda se cruzan en el centro del robot y forman una X. En el panel inferior, titulado incorrecto, una O, brazo de giro el valor absoluto de lx menos ly igual a 10 milímetros, las mismas líneas desde las ruedas marcadas en rojo forman un rombo alrededor del robot y nunca pasan por el centro. Un pie de foto dice que te pongas encima del robot y sigas los rodillos que se ven arriba.
Hito 1, y los cinco segundos más baratos de toda la construcción. Prolonga los rodillos que ves encima de cada rueda: deben cruzarse en el centro del robot. Descargar SVG

Prueba: esas cuatro líneas apuntan al centro del robot y dibujan una X. Si dibujan un rombo, intercambia dos ruedas en diagonal. Superado: una X. Esta es una comprobación de cinco segundos que te ahorra un día.

2. Cada motor por separado

Cablea los cuatro y escribe un sketch que mueva una rueda cada vez al 40 % durante un segundo.

Prueba: llama a cada una y confirma que la rueda correcta gira en el sentido correcto. Superado: cuatro ruedas, cuatro sentidos correctos, ningún par intercambiado. Arregla el cableado en hardware, no con signos menos en el código: acabarás perdiendo el hilo.

3. Encoders

Una vuelta de cada rueda, girada a mano.

Prueba: imprime la cuenta. Superado: dentro del 2 % de 1440, y positiva cuando la rueda gira hacia delante. Una cuenta que da saltos o corre hacia atrás significa que estás interrumpiendo por un canal en vez de dos, o leyendo un volatile long sin desactivar las interrupciones.

4. Cinemática en tacos

Pon el robot en tacos y ordena una traslación lateral pura.

Prueba: los pares diagonales se oponen: delantera-izquierda y trasera-derecha van en un sentido, delantera-derecha y trasera-izquierda en el otro. Superado: exactamente ese patrón. Después ordena un giro puro: lado izquierdo en un sentido, lado derecho en el otro. Si una rueda discrepa, está en la esquina equivocada y el paso 1 te ha mentido.

5. Un lazo de velocidad

Ajusta prealimentación y luego PI en una sola rueda, en tacos, y luego bajo carga.

Prueba: ordena 0.3 m/s y presiona un dedo contra el neumático. Superado: la velocidad se mantiene y el PWM sube de forma visible. Haz esto bien una vez; las otras tres son copias con su propio kS y kV.

6. Las cuatro, en recta

Cuatro lazos, 100 Hz, sobre el suelo. Recorre 3 m recto.

Prueba: mide la deriva lateral al final. Superado: menos de 20 mm, y repetible en tres ejecuciones. En lazo abierto esto suele ser 80–200 mm y distinto cada vez.

7. Traslada 1 m

Prueba: avanza exactamente un metro de lado y mide tanto la distancia como el cambio de rumbo. Superado: dentro de 5 cm, rumbo dentro de 3°. Una curva consistente significa que la constante k está mal; una aleatoria significa que un lazo de velocidad no está aguantando.

8. IMU y orientación de campo

Calibra el sesgo en el arranque y añade el botón de reinicio del rumbo.

Prueba: mantén el joystick hacia delante y gira el robot a mano una vuelta completa. Superado: sigue avanzando en la misma dirección al cruzar el suelo. Quieto, la guiñada deriva menos de 3° por minuto.

9. El cuadrado

La prueba de aceptación. Recorre 1 m recto, 1 m a la derecha, 1 m hacia atrás, 1 m a la izquierda, sin ordenar ninguna rotación.

Prueba: distancia al punto de partida y cambio de rumbo. Superado: dentro de 5 cm y 3°.

Qué significa hacerlo bien

Medida Primer intento, lazo abierto Ajustado, lazo cerrado
Deriva lateral en 3 m recto 80–200 mm, varía con la batería Menos de 20 mm, repetible
Precisión de una traslación de 1 m 10–20 cm, con una curva visible Dentro de 5 cm
Cambio de rumbo en el cuadrado lateral 10–30° Menos de 3°
Velocidad diagonal máxima La que sobreviva al recorte 0.42 m/s: el techo √2, alcanzado limpiamente
Velocidad al caer el pack de 8.4 → 7.0 V Baja ~17 % Sin cambios hasta que los motores saturen
Error de odometría en el cuadrado No merece la pena medirlo 2–5 cm en un buen suelo, mucho peor en uno polvoriento

Esa última fila es honesta más que decepcionante. En esta tracción el mecanismo es el patinaje de los rodillos, así que la odometría es el número más débil del robot incluso cuando todo funciona. Incorpora esa expectativa en lugar de perseguirla.

Notas de hardware que importan

La mano de la rueda es una propiedad del juego. Dos unidades pedidas por separado del mismo anuncio son casi siempre de la misma mano. Compruébalo antes de taladrar nada.

Cada rodillo debe girar libremente. Hazlos girar uno a uno a mano antes de montar las ruedas. Un rodillo atascado convierte esa esquina en una rueda normal apuntando 45° fuera, a ratos, lo que se lee exactamente como un fallo de software.

Las ruedas mecanum son pesadas. 180–400 g cada una, así que hasta 1.6 kg del robot son ruedas, y eso es masa rotando en los extremos de los brazos de palanca. Hace que el robot parezca perezoso y es la razón de que importe el techo de aceleración.

El suelo es un componente. El hormigón pulido y el vinilo están alrededor de μ = 0.8. Un suelo de gimnasio polvoriento, una capa de laca que alguien usó en otro robot, o una junta en el linóleo lo reducen a la mitad localmente, y el robot cambiará de comportamiento al cruzarla. Mira qué hace μ = 0.25 antes de culpar al ajuste.

Cuando va mal

Síntoma Causa Solución
Hacia delante bien, al desplazarse de lado curva y gira Una rueda en la esquina equivocada La comprobación de la X; el residuo cinemático será grande y constante
Se desplaza al lado contrario de lo ordenado Las cuatro ruedas están espejadas Intercambia el par izquierdo con el derecho
Al girar sobre el sitio también se traslada k mal, o medido sobre la chapa Vuelve a medir de centro de rueda a centro de rueda
El robot se reinicia cuando arrancan los cuatro motores Apagón, no un fallo Regulador separado para el ESP32; condensadores; comprueba la resistencia interna del pack
La diagonal es mucho más lenta que la recta El techo √2: funcionando como está diseñado Nada que arreglar
Se inclina fuera de las curvas con cualquier control automático Recorte por motor en vez de escalar la orden Escala por la peor rueda
Conduce bien a mano, inútil en autónomo Odometría, no control IMU para el rumbo; series cortas; considera ruedas pasivas
Una rueda siempre saturada Sobremandada, o ese motor es el flojo Baja V_MAX a lo que las cuatro pueden sostener de verdad
Las cuentas del encoder derivan con los minutos Flancos perdidos a alta velocidad Interrumpe en los dos canales; comprueba que la ISR es corta

Hacia dónde llevarlo después

Ruedas pasivas. Dos o tres ruedas omni sin alimentar, montadas sobre muelles y con sus propios encoders. No transmiten par, así que no patinan, y convierten el peor número de este robot en el mejor.

Seguimiento de trayectorias holonómico. Pure pursuit y Stanley asumen un robot que dirige. Una base que puede desplazarse de lado puede hacer más: sigue la posición sobre la ruta y el rumbo de forma independiente, porque tienes actuadores separados para ellos.

Una cámara sobre una base que mantiene el rumbo. El emparejamiento natural: un pipeline de visión es mucho más fácil cuando la cámara puede seguir apuntando al objetivo mientras la base se reposiciona. Eso es para lo que sirve en realidad la tracción holonómica.

ROS 2. Esta es la primera tracción de aquí donde el linear.y de cmd_vel —que un robot de tracción diferencial ignora explícitamente— por fin significa algo. Cambiar la función de twist a ruedas por la versión de mecanum de cuatro filas es casi todo el trabajo.

Hoja de ruta del proyecto

La ruta de construcción

Sigue el árbol tecnológico desde las piezas hasta un robot que funciona. Cada nodo se desbloquea cuando completas sus requisitos previos, y tu progreso se guarda en este dispositivo.

0 / 17 completados

100%
Objetivo

Trayectoria en cuadrado lateral y retorno a origen

Objetivo global

Tutorial

Idoneidad de la cinemática holonómica

25 min

Abrir tutorial
Componente

Cuatro motorreductores con encoders

Motorreductor N20

Ver componente
Tutorial

La matriz cinemática de cuatro líneas

35 min

Abrir tutorial
Componente

Etapa de potencia de motores

TB6612FNG ×2

Ver componente
Tutorial

Cálculo de velocidad angular de ruedas

30 min

Abrir tutorial
Simulador

Simulación previa interactiva en navegador

20–40 min

Abrir simulador
Componente

Microcontrolador de gestión cinemática

ESP32

Ver componente
Tutorial

Bucle de control temporalmente regular

20 min

Abrir tutorial
Ruta de aprendizaje

Ruta completa de tracción holonómica

Ruta de aprendizaje

Abrir ruta
Tutorial

Alimentación eléctrica de cuatro motores

25 min

Abrir tutorial
Tutorial

Lazo de velocidad PI con prealimentación

35 min

Abrir tutorial
Componente

Sensor inercial para rumbo angular

MPU6050

Ver componente
Tutorial

Control orientado al marco de referencia

25 min

Abrir tutorial
Tutorial

Límites físicos y deriva de odometría

30 min

Abrir tutorial

Componentes

Tutoriales de esta ruta

Practica antes de cablear

Ajústalo en el simulador en vivo

La ruta de construcción pasa por un laboratorio en el navegador. Consigue aquí el comportamiento correcto y luego traslada tus ajustes al robot real.

Preguntas frecuentes

¿Es viable construir este proyecto con un Arduino Uno?

No de forma fiable, debido a la insuficiencia de pines y temporizadores de hardware. Cuatro ruedas exigen cuatro canales PWM independientes y cuatro encoders de cuadratura demandan ocho líneas con capacidad de interrupción. Un Arduino Uno dispone solo de dos interrupciones externas dedicadas y comparte temporizadores con librerías estándar. Una placa ESP32 o Arduino Mega 2560 elimina esta limitación de raíz; se emplea la ESP32 por aportar telemetría Wi-Fi en tiempo real para calibrar cuatro lazos simultáneos.

¿Cuánto cuesta el ensamblaje de un robot mecanum?

Entre 90 y 170 € según el diámetro de las ruedas y la calidad de los motores, aproximadamente el doble que un chasis diferencial equivalente. El incremento proviene de cuatro ruedas mecanum mecanizadas, cuatro motorreductores con encoders, dos controladores de motor de doble canal, mayor capacidad de batería para corrientes de bloqueo y un microcontrolador de mayores prestaciones.

¿Por qué el robot avanza recto pero gira en espiral al desplazarse de lado?

Una de las ruedas está montada en la esquina equivocada, el fallo constructivo más común en plataformas mecanum. En traslación frontal los vectores parásitos de rodillos opuestos se cancelan en gran medida; sin embargo, al solicitar desplazamiento lateral puro, la rueda mal orientada empuja contra el movimiento forzando una rotación parásita. Mire el robot desde arriba: los rodillos superiores visibles deben converger hacia el centro geométrico dibujando una 'X'. Si dibujan un rombo, intercambie dos ruedas diagonalmente.

¿Es indispensable incorporar el sensor inercial IMU?

Para trayectorias autónomas directas no es estrictamente obligatorio, pero para conducción manual es prácticamente imprescindible. Un chasis holonómico puede desplazarse hacia el este mientras su cabina apunta al norte; un piloto humano pierde la orientación relativa del vehículo en escasos segundos. El control orientado al campo rota el vector del mando según la orientación geográfica absoluta de la IMU mediante una matriz de rotación plana.

¿Qué precisión ofrece la odometría de rueda en ruedas mecanum?

Notable en avance longitudinal pero sensiblemente inferior en traslación lateral. El movimiento transversal se produce precisamente por el deslizamiento pasivo de los rodillos inclinados a 45°, por lo que los encoders registran rotación mecánica que no siempre se traduce en avance neto sobre el suelo si hay polvo o desgaste. Se recomienda apoyarse en la IMU para el rumbo angular y recurrir a ruedas locas de medición (dead wheels) sin tracción si se precisa localización milimétrica.

¿Tiene este chasis buena capacidad de empuje o tracción?

No. Los rodillos a 45° solo transmiten fuerza efectiva a lo largo de su ángulo oblicuo, reduciendo la adherencia neta disponible a un ~71 % de la que ofrecería el mismo vehículo sobre neumáticos convencionales de goma lisa. Añadir lastre no lo soluciona, ya que incrementa la inercia lineal en idéntica proporción al rozamiento estático. Para aplicaciones de empuje o combate robótico, las ruedas convencionales son notablemente superiores.