Tutorial · Intermedio · 30 min de lectura
Patinaje de ruedas: por qué deriva la odometría y cómo combatirlo
Las ruedas giran más de lo que avanza el robot. Límite de tracción, por qué un giro pivotante siempre patina y por qué el patinaje sistemático es el peligroso.
Introducción
Conduce un robot dentro de un cuadrado de un metro, cuatro giros de 90°, y de vuelta al origen. No llega. Calibra el diámetro de rueda y la vía hasta que las rectas sean exactas, ejecútalo otra vez, y sigue sin llegar — y falla por una cantidad distinta en moqueta que en baldosa.
Este site llama patinaje de rueda a la causa en la página de odometría, en la página de encoders, en el proyecto micromouse y en media docena más. Lo que ninguna dice es qué es realmente el patinaje, cuánta cantidad tienes, o qué partes puedes hacer algo.
Un encoder mide la rueda, no el suelo
Esa frase es todo el tema.
Un encoder cuenta la rotación de la rueda. La odometría necesita recorrido sobre el suelo. Son el mismo número solo mientras la zona de contacto no desliza, y la diferencia es el índice de patinaje — la fracción del movimiento de la rueda que no se convirtió en movimiento del robot:
slip = (wheel travel − ground travel) / wheel travel
Dos consecuencias que dan forma a todo lo de abajo:
El patinaje es invisible desde dentro. Ningún encoder, por bueno que sea, puede detectarlo, porque el encoder está midiendo lo que se movió. Esta es la misma ceguera que la holgura de la reductora y tiene el mismo remedio: algo que mida el mundo exterior.
No es ruido. El ruido se promedia; el patinaje por lo general no, y la razón es la sección penúltima.
El presupuesto de tracción
Un neumático solo puede empujar tanto como el rozamiento le permita:
F_max = µ × N
N es el peso que realmente presiona sobre las ruedas motrices — no el peso entero del robot. El mismo producto fija con qué fuerza puede el robot empujar a otra cosa, que es el único trabajo en el que quieres que el límite de tracción sea lo más alto posible en vez de simplemente suficientemente alto. Un chasis 2WD típico con rueda libre lleva entre la mitad y dos tercios de su masa en el eje motriz, y el resto no sirve para nada útil en cuanto a tracción.
Dividiendo entre la masa, el techo es una aceleración:
a_max = µ × (weight fraction on driven wheels) × g
La lectura útil del panel superior es que la marcha recta rara vez está limitada por tracción en un robot de hobby. Incluso la peor superficie de ahí da más de tres veces la aceleración que pide un diseño típico. Si tu robot patina en línea recta, estás ordenando un escalón en vez de una rampa — que es justo lo que existe para evitar un perfil de movimiento.
Girar es otra historia.
Un giro sobre el sitio siempre patina
Un robot de tracción diferencial tiene ruedas fijas. Pueden rodar hacia delante y hacia atrás y no pueden moverse de lado — pero un giro sobre el sitio requiere exactamente eso.
Gira el chasis sobre su centro y cada punto de la zona de contacto de cada neumático traza un arco, mientras que la rueda solo puede rodar a lo largo de una recta tangente a él. La diferencia es el frotamiento: el neumático se arrastra de lado por el suelo durante todo el giro. Una zona de contacto ancha frota más que una estrecha, y una rueda libre que no gira con libertad también pelea contra el giro.
Así que un giro sobre el sitio no es una maniobra que pueda patinar. Es una que patina por construcción, y su rumbo derivado del encoder sale mal cada vez por más o menos la misma cantidad, en la misma dirección.
Esa última cláusula es el problema.
El patinaje sistemático es el tipo peligroso
Toma una vía de 90 mm. Un pivote de 90° hace rodar cada rueda 70,7 mm. Deja que una rueda pierda el 2 % de eso por frotamiento y el rumbo sale 0.9° corto — una cifra lo bastante pequeña como para ser invisible en un solo giro.
Ahora ejecuta un laberinto. El panel inferior de la figura muestra los dos futuros:
- Signo aleatorio — algunos giros cortos, otros largos. El error crece como √N. Tras 50 giros es de unos 6°, y es genuinamente un paseo aleatorio que puedes modelar.
- Sistemático — cada giro a la izquierda frota igual por la misma razón. El error crece como N. Tras 50 giros es de 45°, y el robot va por un pasillo que cree que está en otro sitio.
Los robots reales están mucho más cerca del segundo. El frotamiento viene de una geometría que no cambia entre giros, así que el error tampoco. Por eso «se va un poco» se convierte en «está perdido» a lo largo de una pasada, y por eso el micromouse necesita un giroscopio y no mejores encoders.
Averiguar cuánto tienes
Tres pruebas, de la más barata a la más cara.
Conduce recto y mide. Marca el suelo, ordena exactamente 1000 mm, mide lo que obtuviste. Repite en dos superficies. Un error de escala constante es calibración; un error que cambia con la superficie es patinaje.
Haz 10 pivotes y mira. Ordena diez giros de 90° — eso son 900°, o dos vueltas y media completas. Marca el rumbo inicial y mide el final. Divide el error entre diez. Eso amplifica un error por giro que de otro modo sería imposible de medir, y es lo más útil de toda esta página.
Compara los encoders con un giroscopio. Si tienes un MPU-6050, integra su tasa en Z durante un giro y compárala con el rumbo derivado del encoder. La discrepancia es el patinaje, medido directamente, en vivo, sin marcas en el suelo. Donde difieren los encoders están equivocados — al giroscopio no le importa qué hicieron las ruedas.
Una punta de corriente sin aceleración correspondiente es la otra firma en vivo: el motor está trabajando y el robot no se mueve.
Lo que sí ayuda
Rampa para todo. Un escalón ordenado en la velocidad de rueda pide aceleración infinita, y el neumático da lo que puede y desliza el resto. Perfilar la orden es gratis y es la mayor ganancia individual.
Gira en un arco cuando puedas. Un arco hace rodar ambas ruedas hacia delante a velocidades distintas y frota mucho menos que un pivote. Donde el mapa lo permita, prefiérelo — este es también el arreglo para la holgura, porque un arco tampoco invierte ninguna rueda.
Pasa el peso a las ruedas motrices, y mantén la rueda libre girando. Peso sobre una rueda libre que no motrice es peso que no hace tracción.
Estrecha la zona de contacto si giras mucho. Neumáticos anchos y agarradores ayudan a la aceleración y estorban a los pivotes; el intercambio es real y merece la pena elegirlo a conciencia.
No persigas µ con más agarre por sí solo. Más rozamiento significa que el patinaje ocurre más tarde, no que la odometría se vuelva correcta. Es un margen, no un arreglo.
Lo que no ayuda nada
La odometría de ruedas es navegación por dead reckoning. No tiene ninguna referencia del mundo, así que el patinaje, la holgura y el error de diámetro se acumulan y nunca se corrigen — esta es la misma deriva no acotada que advierte la ruta de control de motores, y es una propiedad del método y no un defecto de tu construcción.
El arreglo es una segunda opinión:
- Un giroscopio corrige el rumbo, que es el error que más duele, y es barato.
- Referencias de pared o de línea restablecen la posición lateral cada vez que ves una — así es como un seguidor de pared se mantiene fiel a lo largo de un pasillo.
- Un mapa — emparejamiento de barridos o SLAM — corrige ambos, al coste de un lidar y muchísimo más cómputo.
La odometría es excelente en un metro y inútil en cien. Diseña en torno a eso en vez de intentar arreglarla.
Cuando va mal
| Síntoma | Normalmente |
|---|---|
| El cuadrado nunca cierra pese a rectas perfectas | Frotamiento del pivote; mídelo con la prueba de diez giros |
| Distancia correcta en baldosa, corta en moqueta | Patinaje, no calibración — el error sigue a la superficie |
| El error de rumbo crece de forma constante en una dirección | Patinaje sistemático; un giroscopio es el arreglo barato |
| El error crece rápido al principio y luego se estabiliza en un pasillo | La pared te está corrigiendo — esa es la referencia haciendo su trabajo |
| El robot patina solo al arrancar | Escalón ordenado en vez de rampa |
| El giroscopio y los encoders discrepan durante los giros | Correcto — esa discrepancia es la medición |
| Neumáticos más agarradores no arreglaron la odometría | El agarre sube el umbral de patinaje; no hace honestos a los encoders |
| Solo una rueda parece patinar | Distribución de masa o una rueda libre atascada, no el motor |
El hábito que vale la pena llevarse es la prueba de diez giros. Convierte un error que nadie ve en un número, y una vez que tienes el número puedes saber si necesitas un giroscopio, una rampa, o nada en absoluto.
El tren motriz donde el patinaje es el mecanismo
Todo lo de arriba trata el patinaje como un fallo. En una base mecanum es el diseño: los rodillos se sueltan de lado a propósito, y así es como el robot se mueve de lado. Las consecuencias merece la pena enunciarlas sin rodeos, porque cambian lo que deberías medir en vez de cuánto deberías esforzarte.
- La odometría lateral es el número más débil del robot, y no es un problema de ajuste. El encoder está atornillado a la rueda y la rueda deliberadamente no es el suelo.
- Hay una comprobación gratis y es medio ciega. Cuatro ruedas y tres grados de libertad
dejan una ecuación sobrante —
FL + FR = RL + RRen cualquier chasis rígido que agarre — así que el residuo detecta que una rueda patina y no puede ver que las cuatro patinan a la vez. La deducción está aquí. - El arreglo son ruedas sin motor. Las ruedas muertas omni sobre soportes de muelle no transmiten par, así que no patinan por orden, y convierten el peor número del robot en el mejor.
Baja el deslizador de agarre y mira cómo los encoders siguen insistiendo en que el robot llegó.
Explora el grafo
Forma parte de estos montajes
Proyectos y rutas de aprendizaje que incluyen este tutorial.
- ProyectoConstrucción de un rover autónomo por waypoints GPS
- ProyectoConstruya un robot mecanum omnidireccional con ESP32
- Ruta de aprendizajeControl de motores en robótica: ruta de aprendizaje
- Ruta de aprendizajeSeguimiento de trayectorias en robótica: ruta guiada
- Ruta de aprendizajeTracción holonómica: desplazamiento omnidireccional
Lecturas adicionales