Modelo cinemático y simulación de un robot móvil diferencial

¿Qué es un robot móvil diferencial?

Un robot con tracción diferencial es un vehículo que utiliza un sistema de transmisión de dos ruedas independientes, es decir, cada rueda esta unida a su propio motor. En consecuencia, su movimiento (locomoción) se basa en la diferencia de velocidades de las dos ruedas instaladas en un único eje. Además, en la parte trasera o delantera se coloca una rueda libre o castor que gira pasivamente, y sirve para dar estabilidad al robot.
Además, en la figura se puede observar otras configuraciones diferentes al sistema de locomoción a). Por ejemplo,  b) con dos ruedas activas y dos pasivas, c) cuatro ruedas activas conectadas por un sistemas de correas, al final todas estas configuraciones pertenecen a un robot diferencial.

Sin duda, uno de los mecanismos más utilizados en la investigación como en las aplicaciones industriales. Por lo tanto, si estas empezando en este grandioso mundo de la Robótica, te recomiendo iniciar con este robot móvil. 

Principio de funcionamiento de un robot diferencial

En primer lugar, si dos ruedas giran en la misma dirección y velocidad, el robot se moverá en línea recta hacia adelante, ahora, si cambia el sentido de giro y mantiene la velocidad, el vehículo se desplazará hacia atrás.

Ahora, si dos ruedas giran en la misma dirección, pero con diferentes velocidades, el robot se alejará del motor más rápido. Por ejemplo, si la rueda derecha gira más que la otra, el vehículo se moverá a la izquierda.

Finalmente, si ambas ruedas giran a la misma velocidad, pero en direcciones opuestas, el vehículo girará en su propio eje en sentido horarioantihorario.

Modelo cinemático de un robot diferencial

Para determinar la localización del móvil en el plano cartesiano, vamos a utilizar el modelo cinemático diferencial directo. Este modelo relaciona las velocidades del punto de interés o control h(x,y) con las velocidades de los actuadores considerando al vehículo como una masa puntual, es decir, sin analizar las fuerzas que ejercen sobre el mismo (momentos de inercia y rozamientos).

Para el obtener el modelo cinemático, vamos a guiarnos de la Figura 2, donde se muestra la geometría de un vehículo tipo diferencial, cuya posición la define el punto h(x,y) y la orientación el ángulo (phi).

Aprende robótica ahora

En la robótica, cada error es una oportunidad para aprender y mejorar

50

%

Off

Como resultado del análisis geométrico, la cinemática diferencial con el punto de control ubicado en el centro del eje que une las ruedas es la siguiente.

Como se menciona anteriormente este modelo proporciona velocidades (no posiciones), por lo tanto, para obtener la posición y orientación del móvil es necesario integrar las velocidades en un periodo de tiempo constante (ts) llamado tiempo de muestreo.

Modelo cinemático videotutorial

Si quieres aprender como se determina la cinemática del robot, puedes revisar el tutorial. ¡No olvides suscribirte a mi canal de YouTube!

Simulador 3D con Python

Para realizar la simulación en Python es necesario instalar los siguientes módulos y realizar los siguientes pasos.

  • pip install pyvista==0.23.1
  • pip install PyQt5
  • pip install numpy
  • descargar el módulo pyRobotics creado por Roboticoss

Código de simulación en Python

Aquí proporcionamos el código para observar el comportamiento del robot usando el modelo cinemático. Copie el siguiente código en su IDE de Python, y recuerde instalar antes las librerías anteriores.

Implementa este código en un robot físico

Arduino| Odometría | Visión por computador | Ingeniería de control

50

%

Off

Modelos matemáticos para navegación autónoma de robots

Ahora que ya sabes como localizar un robot usando la cinemática, el siguiente paso es usar este modelo para la navegación autónoma de robots, mira este  articulo para aprender como controlar robots de manera autónoma.

👉Control de posición de vehículos aéreos no tripulados

6 comentarios en “Modelo cinemático y simulación de un robot móvil diferencial”

  1. Hola, disculpe, ya realice todos los pasos pero al ejecutar el código la ventana de python robotics no responde. Incluso he instalado la versión de python que se muestra en el video (3.8.6), pero sigue sucediendo lo mismo. ¿De casualidad se les ocurre alguna solución? https://prnt.sc/10kfemt

    1. Sebastián Pavón

      Hola edalxgoam, a mi me está pasando lo mismo. Puedo saber cómo lo resolviste?
      Gracias. Saludos.

Los comentarios están cerrados.