Tutorial · Intermedio · 30 min

Juego mecanico en reductores de robots: como medirlo y arreglarlo

La holgura de todo tren de engranajes que hace caer un brazo y derivar la odometria. Mide la tuya en grados y decide si la eliminas o disenas alrededor.

Introduccion

Hay una familia de fallos de robot que se presentan todos igual: la maquina va bien en un sentido y mal en el otro. El brazo alcanza el mismo punto desde la izquierda y desde la derecha y aterriza en dos posiciones distintas. El robot equilibrista tiembla alrededor de la vertical y no se asienta por mucho que lo sintonices. El rumbo del robot de laberinto se desvia un grado en cada giro y quince al final del recorrido.

Ninguno de esos es un problema de sintonizacion, y todos tienen la misma causa. Entre tu motor y lo que mueve hay un tren de engranajes, y un tren de engranajes tiene que tener un hueco entre sus dientes o se agarrotaria. Ese hueco se llama juego mecanico, y significa que cada vez que el motor cambia de sentido la salida no se mueve en absoluto hasta que los dientes cruzan el hueco y se encuentran por el otro lado.

Este sitio nombra el juego mecanico en siete paginas como la razon de que algo no funcione. Esta es la pagina que lo explica.

Que es en realidad

El juego mecanico no es friccion, y no es un retardo. Es una zona muerta con memoria.

Imagina el diente motor apoyado contra una cara del diente movido. Empuja, y la salida sigue a la entrada con exactitud: ningun error. Ahora invierte el sentido. El diente motor abandona esa cara y recorre el hueco, y durante todo el cruce la salida se queda exactamente donde estaba. Cuando se hace contacto en la cara opuesta, la salida vuelve a seguir, permanentemente desplazada la anchura del hueco.

De esa descripcion se desprenden dos consecuencias, y son las que merece la pena quedarse:

  • El juego mecanico no te cuesta nada mientras te mueves en un solo sentido. Es un impuesto por inversion, cobrado una vez por inversion, sin importar cuanto viajes despues. La inversion mas cara que hace un robot es una parada de emergencia, donde la holgura es recorrido gratis sumado directamente a la distancia de frenado.
  • El error depende de por donde viniste. Eso es lo que lo convierte en una histeresis y no en un simple desplazamiento, y es la razon de que una constante de calibracion no pueda eliminarlo.

La forma que dibuja

Mueve una articulacion con 4° de holgura de un lado a otro y representa graficamente lo que hace la salida.

Dos graficas apiladas para una articulacion con cuatro grados de holgura. La grafica superior muestra la posicion ordenada como una onda senoidal discontinua y la salida real como una curva continua, frente al tiempo. En cada inversion la salida real se mantiene plana dentro de una banda sombreada mientras la posicion ordenada sigue moviendose, y luego se reanuda. La grafica inferior muestra la posicion real frente a la ordenada, formando un bucle en paralelo alrededor de la diagonal punteada que seguiria un reductor sin holgura, con el bucle medido como cuatro grados de anchura.
La misma prueba dos veces. En el tiempo, el juego mecanico es el tramo plano en cada inversion; representando salida frente a entrada, es un paralelogramo cuya anchura horizontal es exactamente la holgura: medida aqui en 4,07° para un hueco de 4°, siendo el exceso la anchura de la banda de muestreo. Descargar SVG

El panel inferior es la imagen mental util, porque hace evidentes las dos ramas. Subiendo, la salida va medio hueco por detras. Bajando, va medio hueco por delante. En cualquier punto intermedio, la salida esta dondequiera que se la dejo.

Mide el tuyo en diez minutos

No puedes disenar alrededor de un numero que no tienes, y cada reductor es distinto. Hay dos formas de obtenerlo.

A mano, para cualquier cosa. Apaga el motor y sujeta el chasis quieto. Pega un trozo de cinta en el borde de la rueda o en el extremo del brazo y balancea la salida con suavidad entre sus dos topes, sin apretar lo suficiente para flexionar nada, solo hasta el punto en que encuentre resistencia en cada sentido. Marca ambos extremos y mide el arco entre ellos. Convierte:

juego (°) = arco / (π · D) × 360

Repite en cuatro o cinco posiciones a lo largo de una vuelta completa de la salida y quedate con el peor. La variacion diente a diente y la excentricidad del eje son reales, y la posicion que probaste primero no es necesariamente representativa.

Con un codificador, con mas precision. Si tu motor tiene un codificador en el eje del motor (un motor N20 con codificador lo tiene), accionalo muy despacio en un sentido hasta que la salida empiece justo a moverse, pon el contador a cero, invierte el sentido y cuenta hasta que la salida vuelva a moverse. Esa cuenta es el hueco:

juego (°) = cuentas / cuentas-por-vuelta-de-salida × 360

Para un N20 con 7 pulsos por canal por vuelta del motor, decodificado x4, detras de un reductor 1:100, eso son 2800 cuentas por vuelta de salida, asi que 31 cuentas son 4°. Resolucion de sobra para medir algo que apenas se ve.

Donde esta el codificador decide lo que puedes ver

Esta es la parte que sorprende, y decide si el numero que acabas de medir es un problema que puedes arreglar por software.

Un codificador en el eje del motor esta antes del reductor. Durante el cruce informa de que el motor gira perfectamente contento, porque el motor gira perfectamente contento. La rueda no. Tu estimacion de posicion dice que te moviste; no lo hiciste. El juego mecanico es invisible para un codificador en el lado del motor y acaba en tu odometria como error puro sin corregir.

Un codificador en el eje de salida esta despues del reductor e informa de la verdad, pero es justo por eso por lo que lee cero durante el cruce, y por eso es el codificador del lado del motor el que usas para medir el juego mecanico. El codificador que no puede compensarlo es el que puede verlo.

Asi que el resumen honesto para un robot de aficionado: en casi todos ellos el codificador esta en el motor y el juego mecanico es error no medido en la estimacion de posicion. Todo lo que sigue va de hacer ese error pequeno o de hacer que no importe.

Lo que te esta costando

La holgura en una articulacion es un angulo; lo que cuesta es una distancia, y la palanca decide cuanto. Los mismos 4° de holgura, tres robots:

Donde Palanca Coste por inversion
Hombro de brazo robotico Eslabon de 150 mm 10,5 mm en la pinza
Rueda motriz Rueda de 65 mm 2,27 mm de recorrido
Rueda de micromouse Rueda de 42 mm 1,47 mm de recorrido

La fila del brazo es la razon de que los brazos articulados sufran mas con tolerancias de aficionado: la holgura del hombro se multiplica por toda la longitud del brazo antes de llegar a la herramienta. Un grado en el hombro de un eslabon de 150 mm ya son 2,6 mm en la pinza.

Las filas de las ruedas parecen inofensivas hasta que cuentas las inversiones. Un micromouse pivota sobre el sitio en cada cruce, y un giro pivotante invierte una rueda cada vez. Con ruedas de 42 mm y una via de 90 mm, 4° de holgura son 0,93° de error de rumbo por giro, y el error de rumbo es lo unico que no se promedia, porque cada recta posterior se conduce sobre un rumbo equivocado. Cien giros son 147 mm de recorrido que tu odometria conto y el robot nunca hizo.

Un robot autoequilibrado es el caso extremo, porque invierte continuamente: cientos de veces por segundo, en incrementos pequenos, y cada incremento es menor que el hueco. Pasa la mayor parte de su vida dentro de la zona muerta, y por eso ningun juego de ganancias lo asienta.

Solucion 1: comprar menos

La solucion mas barata suele ser la pieza.

Engranajes metalicos en lugar de plasticos. Los engranajes de inyeccion tienen tolerancias holgadas y se desgastan hacia mas holgura. Un tren metalico no elimina el juego mecanico, pero suele tener una fraccion de el, que es la unica razon de que los motores N20 aparezcan en todos los montajes de robot equilibrista y de micromouse, y de que el motorreductor TT este bien para un seguidor de linea que en su mayoria avanza.

Sabe que etapa importa. El juego mecanico de cada etapa, referido a la salida, se divide por la relacion de reduccion entre esa etapa y la salida. La ultima etapa tiene una relacion de uno a la salida, asi que su holgura completa aparece y todo lo anterior se divide. Un reductor de relacion alta no es por tanto automaticamente peor, y si vas a mejorar un solo engranaje, mejora el ultimo.

Pretensado. Engranajes partidos con muelle uno contra otro, tuercas antibacklash en husillos, una correa tensada en lugar de un par de engranajes. Todo esto mantiene los dientes en contacto en ambas caras a la vez. Todo ello cuesta friccion, eficiencia y desgaste, que es el intercambio que estas haciendo.

O elimina el reductor. Una articulacion accionada por correa o de accionamiento directo no tiene juego de engranajes que tener. Tiene flexibilidad en su lugar, que es un problema distinto tratado mas abajo.

Solucion 2: aproximarse desde un lado

La solucion mas antigua del mecanizado y la mejor relacion calidad-precio en software, porque no cuesta nada.

El juego mecanico solo se cobra en una inversion. Asi que haz que la ultima parte de cada movimiento vaya en el mismo sentido, y el hueco ya estara cruzado cuando llegues. Si necesitas alcanzar una posicion desde arriba, pasate de largo y vuelve subiendo. Las impresoras 3D lo hacen en el eje Z; los operarios de CNC lo hacen a mano por reflejo.

// Llega siempre viajando en positivo: el hueco se cruza antes de llegar.
void moveTo(float target) {
  if (target < currentPosition()) {
    driveTo(target - APPROACH_MARGIN);   // margen > juego mecanico medido
  }
  driveTo(target);
}

APPROACH_MARGIN debe ser comodamente mayor que la holgura que mediste; el doble es un punto de partida razonable. El coste es tiempo en la mitad de tus movimientos, y el beneficio es una repetibilidad que ya no depende de por donde viniste.

Para un robot movil el mismo truco se lee distinto: prefiere un arco amplio a un giro pivotante cuando el mapa lo permita, porque un arco nunca invierte ninguna de las dos ruedas.

Solucion 3: evitar que el controlador luche contra el

Un lazo PID se encuentra el juego mecanico como una zona muerta en medio de su propio rango de control, y lo lleva mal de una forma concreta y reconocible.

Dentro del hueco, la salida sube y no ocurre nada, asi que el error no se reduce. El termino integral sigue acumulando durante un periodo en el que ningun esfuerzo habria ayudado. Cuando los dientes por fin enganchan, el termino acumulado se aplica de golpe a un mecanismo que ahora esta conectado, y la articulacion se pasa del objetivo de golpe. Luego invierte, cruza el hueco otra vez y hace lo mismo en el otro sentido. Eso es un ciclo limite, una oscilacion de caza estable que nunca converge, y su amplitud la fija la mecanica, no las ganancias.

Lo que de verdad ayuda:

  • Deja de integrar cuando no te mueves pero estas ordenando movimiento. Si la salida esta por encima del umbral que deberia producir movimiento y el codificador dice que la salida no se mueve, congela la integral. Es la misma logica anti-windup que usarias contra un actuador saturado; la zona muerta es solo un actuacion que esta temporalmente desconectado.
  • Baja Ki antes de bajar Kp. El termino integral es el que convierte una zona muerta en un ciclo limite.
  • No persigas la ultima fraccion de grado. Si tu holgura es de 4°, una tolerancia de 1° esta pidiendo oscilacion. Acepta una banda muerta un poco mas ancha que el juego mecanico y el lazo dejara de cazar.
  • Perfila la inversion. Un perfil de movimiento que pasa por velocidad cero con suavidad cruza el hueco con delicadeza en lugar de golpear contra la cara del diente opuesto: mas silencioso y mucho mas amable con los engranajes de plastico.

Mira como ocurre esto en el simulador de PID sintonizando contra una planta que responde con pereza a entradas pequenas: las mismas ganancias que son estables para movimientos grandes cazan alrededor de la consigna en los pequenos.

La flexibilidad es la otra mitad del movimiento perdido

Si mides la holgura balanceando la salida, estas midiendo el juego mecanico y la flexibilidad juntos, y necesitan arreglos distintos. Distinguelos con una prueba: aplica una carga, anota la deformacion y sueltala.

Juego mecanico Flexibilidad
Deformacion frente a carga Hueco fijo, independiente de la carga Proporcional a la carga
Al soltar Se queda donde lo dejaste Vuelve por muelle
Arreglo Mejores engranajes, pretensado, aproximacion desde un lado Piezas mas rigidas, palancas mas cortas, refuerzos
Sintoma Error dependiente del sentido Caida bajo carga, oscilacion tras los movimientos

Un brazo largo de acrilico tiene muy poco juego mecanico y muchisima flexibilidad. Un reductor de plastico barato sobre un eje corto es lo contrario. Ambos se leen como “el brazo no va donde le dije”, y por eso merece la pena hacer la prueba de dos minutos antes de comprar nada.

Cuando algo sale mal

Sintoma Normalmente
El brazo alcanza un punto distinto desde cada lado Juego mecanico, sin mas: midelo antes de tocar nada
El robot equilibrista tiembla y nunca se asienta Holgura mayor que los incrementos de correccion; reductor metalico, no mas sintonizacion
El rumbo deriva un grado por giro Juego mecanico en la rueda que invierte; prefiere arcos o anade un giroscopio
La odometria dice que se movio y no lo hizo Un codificador del lado del motor no puede ver el hueco del reductor
Oscilacion estable alrededor de la consigna El termino integral acumulando a traves de la zona muerta
La posicion es repetible pero cae bajo carga Flexibilidad, no juego mecanico: rigidiza, no cambies engranajes
Empeoro en unos meses Desgaste del engranaje de plastico; el juego mecanico crece con el uso

El juego mecanico es la razon de que un robot perfecto en simulacion decepcione en el banco, porque es justo el tipo de cosa que un modelo ideal omite. Midelo una vez, apunta el numero, y la mayor parte del misterio se va con el. Si el numero sale lo bastante grande como para doler, la respuesta suele ser un motor y reductor mejores en lugar de otra tarde de sintonizacion.

Explora el grafo

Forma parte de estos montajes

Proyectos y rutas de aprendizaje que incluyen este tutorial.

Lecturas adicionales

Referencias