Trayectoria

De la física al robot móvil · Tema 5.3

Cinemática inversa del robot diferencial

Tiempo estimado
30 min
Ruta: 0 de 27 temas
Seccionesver ▾ocultar ▴

01Gancho

Quieres que tu robot avance a 0.4 m/s girando a 1.5 rad/s. ¿Qué velocidad angular mandas a cada rueda?

02Concepto

En la cinemática directa partías de las ruedas: v = (v_R + v_L)/2 y ω = (v_R − v_L)/L. La cinemática inversa recorre el camino contrario: das la v y la ω que quieres para el robot y obtienes lo que debe hacer cada rueda.

Son dos ecuaciones con dos incógnitas. Sumarlas y restarlas da v_R = v + ω·L/2 y v_L = v − ω·L/2. Cada rueda va a la velocidad del centro del eje más o menos una corrección ω·L/2, que crece con el giro y con la distancia entre ruedas. Sin deslizamiento, cada rueda gira a ω_R = v_R/r y ω_L = v_L/r.

Con ω positiva, antihoraria, el robot gira a la izquierda y la rueda derecha queda por fuera de la curva. La rueda exterior siempre va más rápido que la interior: recorre un arco de radio mayor en el mismo tiempo. Si ω cambia de signo, las ruedas intercambian los papeles.

Con los datos del gancho y el robot de referencia, ω·L/2 = 1.5·0.15/2 = 0.1125 m/s. Entonces v_R = 0.5125 m/s y v_L = 0.2875 m/s, y con r = 0.032 m, ω_R = 16.02 rad/s y ω_L = 8.98 rad/s.

Una rueda no gira más rápido que su ω_max. Si alguna necesita más, el comando no es realizable: el motor satura y la rueda va más lenta de lo pedido. Hay que reducir v, ω o ambas hasta que max(|ω_L|, |ω_R|) ≤ ω_max.

Si pides v = ω·L/2, la rueda interior se detiene: v_L = 0. El robot hace un pivote sobre esa rueda, y el centro del eje describe un círculo de radio R = L/2.

Esto es lo que hace al final el controlador de un seguidor de línea: calcula una corrección de giro y la convierte en dos comandos de rueda con estas mismas ecuaciones.

03Fórmulas

  • v_R, v_L · velocidad lineal de rueda derecha e izquierda · m/s
  • v · velocidad lineal del robot · m/s
  • ω · velocidad angular del robot · rad/s
  • L · distancia entre ruedas · m
  • ω_R, ω_L · velocidad angular de rueda derecha e izquierda · rad/s
  • v_R, v_L · velocidad lineal de rueda derecha e izquierda · m/s
  • r · radio de rueda · m
  • ω_L, ω_R · velocidad angular de rueda izquierda y derecha · rad/s
  • ω_max · velocidad angular máxima de la rueda · rad/s

04Explora

Con el robot de referencia, el robot recibe el comando del gancho, v = 0.4 m/s y ω = 1.5 rad/s, durante 6 s. El simulador calcula la velocidad de cada rueda, las muestra junto al robot y dibuja el CIR y el radio de giro.

Cambiaω de 1.5 a 3 rad/s, con v = 0.4 m/s fijaObservalas velocidades de las dos ruedas

¿Por qué se separan lo mismo hacia arriba y hacia abajo?

Ver la respuesta

Cada rueda se aparta de v en ω·L/2, la derecha hacia arriba y la izquierda hacia abajo. Con ω = 3 rad/s la corrección es 3·0.15/2 = 0.225 m/s: v_R = 0.625 m/s y v_L = 0.175 m/s. Su media sigue siendo v = 0.4 m/s.

Cambiav hacia arriba desde 0.4 m/s, con ω = 1.5 rad/sObservala rueda derecha, hasta que su velocidad aparece marcada como error

¿Por qué ocurre con v por encima de unos 0.56 m/s?

Ver la respuesta

La rueda derecha necesita v_R = v + 0.1125 m/s, y con ω_max = 20.94 rad/s y r = 0.032 m no pasa de ω_max·r = 0.670 m/s. Con v por encima de 0.558 m/s el comando supera ω_max y deja de ser realizable. El simulador satura la rueda en ω_max.

Cambiaω a 2 rad/s y v a 0.15 m/sObservala velocidad de la rueda izquierda y la posición del CIR

¿Por qué se detiene la rueda interior?

Ver la respuesta

Con v = ω·L/2 = 2·0.15/2 = 0.15 m/s, la rueda izquierda queda en v_L = 0.15 − 0.15 = 0 y ω_L = 0. El robot pivota sobre ella: el CIR cae en esa rueda, a R = L/2 = 0.075 m del centro del eje.

05Al robot

Para el comando del gancho, v = 0.4 m/s y ω = 1.5 rad/s, las ruedas de tu robot necesitan:

Antes de mandar el comando, compáralo con la velocidad angular máxima de tus ruedas, ω_max, que sale de las rpm del motor y de la reducción de tu perfil:

Si tu perfil de «Mi robot» no es un robot móvil, los cálculos usan el robot de referencia.

Con el robot de referencia, ω_R = 16.02 rad/s y ω_L = 8.98 rad/s, las dos por debajo de ω_max = 20.94 rad/s: el comando es realizable.

Pide ahora algo más rápido: v = 0.6 m/s y ω = 2 rad/s. La rueda exterior necesita v_R = 0.6 + 2·0.15/2 = 0.75 m/s, y ninguna rueda pasa de v_max = ω_max·r:

Con el robot de referencia, 0.75 m/s supera v_max = 0.670 m/s: el comando no es realizable. Para girar a 2 rad/s, v tiene que bajar hasta que v_R ≤ 0.670 m/s, es decir, v ≤ 0.520 m/s. La otra salida es mantener v y reducir ω.

06Verifica

E1Tu robot tiene ruedas de r = 0.032 m separadas L = 0.15 m. Quieres que avance a v = 0.5700 m/s girando a ω = 0.7000 rad/s. ¿Qué velocidad angular necesita cada rueda, ω_L y ω_R, en rad/s?obligatorio

1rad/s2rad/s

E2Tu robot tiene las ruedas separadas L = 0.15 m. Quieres que recorra un círculo de radio R = 0.8800 m a v = 0.5800 m/s, girando a la izquierda. ¿Qué velocidad lineal necesita cada rueda, v_L y v_R, en m/s?obligatorio

1m/s2m/s

E3Tu robot tiene las ruedas separadas L = 0.15 m. Detienes la rueda izquierda (v_L = 0) y la derecha va a v_R = 0.5800 m/s: el robot pivota sobre la rueda izquierda. ¿Cuál es su velocidad angular ω, en rad/s, y su radio de giro R, en m?obligatorio

1rad/s2m

E4Tu robot tiene ruedas de r = 0.032 m separadas L = 0.15 m, con ω_max = 20.94 rad/s. ¿Es realizable el comando v = 0.6 m/s, ω = 2 rad/s? Para decidirlo, da la velocidad lineal v_R que necesita la rueda derecha, en m/s.

m/s

07Profundiza

  • Siegwart, R., Nourbakhsh, I. R. y Scaramuzza, D. Introduction to Autonomous Mobile Robots, 2.ª ed. The MIT Press, 2011. ISBN 978-0-262-01535-6. Cap. 3, "Mobile Robot Kinematics".

¿Viste un error en este tema?Escríbenos por correo