¿Qué factores debo tener en cuenta para que mi vehículo autónomo viaje mejor en línea recta?

Sería más útil si pudiera mostrarnos una foto de su línea de transmisión. Sin embargo, suponiendo que sea muy similar a lo que has mostrado, supongo que los siguientes problemas podrían hacer que el bot se desvíe de una ruta directa:

  1. Las longitudes de los ejes no son exactamente iguales: dependiendo de la desviación, puede averiguar si es causada por una longitud desigual del eje en las cuatro ruedas o algo más.
  2. Distribución de carga: Muchos motores de CC, cuando se enfrentan cerca de sus límites de torque, comienzan a reducir sus velocidades con cargas mayores. Esto rompe drásticamente la sincronización.
  3. Alineación de las ruedas: muchas veces, si las ruedas no están perfectamente paralelas entre sí, hacen que el bot se doble. Además, si una rueda no es perpendicular al eje, causará pérdida de energía por fricción inclinada en esa rueda.
  4. Fuente de alimentación: si no tiene circuitos de alimentación independientes para sus ruedas motrices y, a su vez, está aprovechando la energía de otro circuito que también está alimentando otras utilidades, el mal equilibrio en la alimentación de energía afectará las RPM muy fácilmente.
  5. Diámetro de la rueda: este es el punto más tonto, sin embargo, puede verificar si el exterior de la rueda tiene algún tipo de tracción o plástico pegado. Dependiendo de la extensión de la desviación, el objeto puede ser pequeño o grande.

Si nada de esto ayudó, le pediría que me dé una instantánea de la línea de transmisión y la imagen de la tasa de desviación, para que pueda tomar una respuesta más concluyente.

La dificultad está en mantener ambas ruedas delanteras sincronizadas. Tienes dos opciones.
1. Puede tener ambas ruedas unidas a un eje, y hacer que ambos motores se alimenten en el eje.
2. Puede construir un sistema de sincronización que lea la velocidad de cada rueda y transmita una señal de control a la otra rueda. Esto será difícil, ya que debe tener una relación maestro / esclavo y, en efecto, también debe convertir uno de los motores en un motor paso a paso, o … debe construir un sistema de retroalimentación donde ambos motores se alimenten a un control de sincronización. Aquí nuevamente, probablemente necesite motores paso a paso.

Cerrar el lazo de control. Use un giroscopio MEMS para detectar el guiñada no ordenada. Acelere y desacelere diferencialmente el par del motor para compensar.

Puede hacer esto completamente personalizado, pero podría ser un poco más fácil si se salga de una solución comercial existente como el Gyro de sujeción de rumbo Futaba® GY430 Series.

El software de bucle de control estaría hecho por usted. Sin embargo, está la cuestión de traducir la salida destinada a un servo de dirección para controlar la señal de los dos ESC del motor. La latencia adicional incurrida también podría presentar problemas de estabilidad del bucle de control.

No lo se Tienes un interesante proyecto experimental a mano.

Podrías usar codificadores en las ruedas.
Un codificador mide la rotación de las ruedas. Compara los dos codificadores y aplica más potencia a la rueda más lenta para que ambos giren la misma cantidad.