Accionamiento diferencial para robot pesado

Estoy haciendo aquí otra pregunta en relación con mi anterior .

Me gustaría saber cómo se procedería cuando se quiere controlar un robot pesado con tracción diferencial. Cuando se trata de enviar valores PWM, no puedo controlar el robot, es decir, no puedo hacer que el robot vaya en línea recta.

Otro problema sería frenar el robot. Piense en 100 kg en su peso máximo, por lo que tendrá MUCHO impulso e inercia. Sabiendo esto, ¿qué harías para controlar su movimiento, con un sistema de tracción diferencial, y cómo controlarías su frenada?

Nota: Esto no debe considerarse como un proyecto de pasatiempo. Piense en esto como la mejor manera de implementarlo.

Respuestas (1)

Una respuesta: sistemas de circuito cerrado y/o fusiones de sensores

No puede simplemente enviar los comandos correctos al motor y esperar que el robot actúe exactamente como se espera. Piense en una diferencia muy pequeña en el par producido por sus dos motores que recibieron dos señales PWM idénticas (debido a las tolerancias de fabricación del motor). Uno irá un poco más rápido que el otro y el robot correrá a lo largo de un círculo (muy grande, pero sigue siendo un círculo) en lugar de una línea recta. La respuesta a este problema es el control de bucle cerrado. Sus motores o sus ruedas tendrán codificadores. Y su sistema de control recibirá las señales de los codificadores y reaccionará de una manera que asegure que sus ruedas estén haciendo exactamente lo que espera que hagan.

Pero en el caso de un robot autónomo, esto no es suficiente. Piense en tener una rueda que sea un poco más grande que la otra, debido al desgaste o simplemente debido a las tolerancias de fabricación. O piense en una rueda que resbala un poco en el suelo. En este caso ya no sabes con certeza dónde estás. Este método se llama odometría o navegación a estima. Para resolver esto, debe usar sensores que agreguen conocimiento sobre su entorno a su sistema. (Visión, sensor de proximidad, parachoques, magnetómetro, giroscopios, etc). Luego, se utilizan algoritmos avanzados para usar lo mejor de cada sensor en cada paso de tiempo.

¿Qué posibles desventajas puedo obtener usando codificadores? Supongo que habrá un retraso en la respuesta del robot, ya que los pid del motor tendrán que ajustar el PWM a la velocidad deseada, ¿correcto?
La desventaja es la mayor complejidad: debe cablear los codificadores y decodificar las señales de cuadratura (generalmente, el microcontrolador tiene un módulo dedicado para esto). Siempre hay un retraso: ¡Incluso el cálculo lleva algún tiempo! La teoría del control no es tan simple. Especialmente cuando se enfoca en un sistema discreto (no un simple PID analógico traducido al mundo digital, sino algoritmos que utilizan todo el poder de los cálculos digitales). Podría tener en cuenta los diversos retrasos y esto ya no será un problema. Lanzar un PID y ajustar manualmente 3 valores no llegará aquí.