Cómo planificar una trayectoria en robots teniendo en cuenta múltiples restricciones como tirón, aceleración, velocidad

Los movimientos en un dispositivo robótico se “diseñan” desarrollando lo que los ingenieros de control de movimiento llaman una “curva en S”. Una curva S tiene como distancia del eje X, y como es la velocidad del eje Y.

(NOTA: De ahora en adelante en mi respuesta, la palabra “robot” podría interpretarse como cualquier tipo de dispositivo de movimiento controlado; estoy pensando principalmente en un “brazo de robot”, pero también podría ser cualquier otra parte del robot que ha controlado el movimiento)

La cantidad de cambio en la velocidad (aceleración o desaceleración) que su robot puede suministrar está determinada por la velocidad máxima “inherente” de su robot menos cualquier resistencia (resistencia mecánica, “stiction”, resistencia del medio por el que viaja su dispositivo, gravedad: si se mueve hacia arriba o hacia abajo) está presente en cualquier punto dado en el recorrido del dispositivo. Lo importante a tener en cuenta aquí es que las fuerzas contra las cuales intenta superar para mover su robot probablemente variarán dependiendo de en qué parte del “perfil de movimiento” se encuentre su robot en el momento en que desee que cambie la aceleración – resistencia el movimiento probablemente no será constante durante todo el recorrido del robot, por lo que primero deberá “caracterizar” qué resistencias encontrará su robot en todo el rango de recorrido.

Entonces, primero debe determinar cuáles son sus resistencias al movimiento en todos los puntos de viaje. Muchas veces, un robot se encontrará con “stiction” al comenzar desde una parada, lo que requiere que se aplique más fuerza para superar la stiction. Esto también crea un problema, una vez que el robot se ha movido fuera de la zona de “stiction”, se debe reducir la fuerza aplicada rápida y suavemente para que no se produzcan “sacudidas”, ya que el movimiento posterior probablemente requerirá una cantidad de fuerza menor que la inicialmente aplicado. Incluso sin ninguna “condición” apreciable, comenzar el movimiento desde una parada requerirá una acumulación de inercia y debe manejarse de manera similar a la forma en que se maneja la “condición”.

También deberá determinar cuál es la velocidad máxima de su robot. No es qué tan rápido puede moverse teóricamente, sino qué tan rápida es la velocidad máxima en condiciones de funcionamiento del mundo real. La velocidad máxima que puede ser impulsada desde su motor puede ser demasiado alta para la mecánica del robot, por lo que en tal caso su velocidad máxima no está determinada por qué tan rápido puede conducir el motor del robot, sino qué tan rápido puede conducir el motor de manera segura robot sin hacerse daño a sí mismo ni a ninguna otra cosa mientras sigue logrando sus objetivos funcionales.

Ahora que conoce las resistencias que deben superarse en cada punto del “perfil de movimiento”, y cuál es su velocidad máxima posible, debe hacer algunos cálculos para determinar cuánta fuerza necesita que proporcione el motor en cada punto el perfil de movimiento para una “velocidad” de movimiento dada (que depende de lo que pretendes que haga el robot), teniendo en cuenta cualquier velocidad presente (podría ser de 0 a la velocidad máxima). Esto puede ser un poco complicado, hay física involucrada aquí, generalmente es lo que separa a los profesionales robóticos de los aficionados.

La curva S que mencioné anteriormente es una que trazará en función de los datos que recopiló en los pasos anteriores. Para cualquier punto de partida dado a cualquier punto de parada determinado, debe determinar la curva S (cuál es la velocidad planificada en cualquier punto dado del movimiento). En muchos robots de grado “industrial”, la curva en S es algo que se calcula dinámicamente en el firmware del robot en función de su posición actual, velocidad actual y su nuevo punto de parada previsto. La mayoría de los robots “hobby”, o robots “industriales” muy simples, probablemente podrían tolerar una curva S “predeterminada” para ser utilizada en todos los casos, no perfecta, pero tal vez “lo suficientemente cerca”.

Esta respuesta es una descripción bastante resumida y “tonta” de “básicamente” cómo hacer lo que su pregunta le pide. Mi suposición es que después de leer / comprender lo que he escrito, investigará otros materiales sobre control de movimiento que son mucho más completos y detallados de lo que podría proporcionar aquí.

Casi cualquier aficionado puede hacer un simple “control de movimiento”, pero hacer “control de movimiento” correctamente no es una tarea simple, a menudo se vuelve bastante complicado si quieres hacerlo bien.

¡Te deseo el mejor de los éxitos! 🙂