No hay mucha información aquí. Arreglemos las ruedas separadas por la distancia , y cada rueda tiene orientación θ i con respecto a la línea que las une. Luego, suponga que cada rueda se puede conducir independientemente con una velocidad angular v ibθivi .
Si las ruedas son manejadas independientemente, pero fijadas en dirección, , usted tiene algo así como un accionamiento diferencial (huellas del tanque). Vale la pena señalar que, suponiendo que las ruedas no se deslicen perpandicularmente a su orientación, puede resolver el movimiento de la base del robot en forma cerrada dados los comandos de velocidad que se fijan en un período de tiempo corto (como suele ser el caso con los robots con software controlar). El iCreate es una plataforma de este tipo, al igual que los pioneros más pequeños, y el Husky de Clearpath. Luego, el cambio en la orientación de la base, etiquetado como θ a continuación, se puede encontrar en forma cerrada.θ1=θ2=90∘θ
El modelo habitual para estas cosas, donde es la velocidad base y ω b es la velocidad angular de la base, es:vbωb
ωb=1
vb=12⋅(v1+v2)
ωsi= 1si( v2- v1)
Para un incremento de tiempo fijo, , puede encontrar el cambio en la orientación y la distancia lineal recorrida usando estos. Tenga en cuenta que el robot viaja a lo largo de un círculo en esta ventana de tiempo. La distancia a lo largo del círculo es exactamente δ t ⋅ v b , y el radio del círculo es R =δtδt ⋅ vsi . Eso es suficiente para conectarse a estas ecuaciones:segmentos circulares, particularmente la ecuación de longitud de cuerda, que describe la distancia que el robot se desplaza desde su ubicación original. ConocemosRyθ, resolvemos paraa.R = b2⋅ v1+ v2v2- v1Rθuna
Asumiendo que el robot comienza con la orientación y la posición ( 0 , 0 ) y se mueve a lo largo de la ventana de tiempo δ t con velocidades v 1 (rueda izquierda) y v 2 (rueda derecha), su orientación será: θ 1 = δ t0 0( 0 , 0 )δtv1v2con posición:
px=cos( θ 1
θ1= δtsi( v2- v1)
py=sin(θ1pagsX= cos( θ12) ⋅ ( 2 R sin( θ12) )
pagsy= pecado( θ12) ⋅ ( 2 R sin( θ12) )
Tenga en cuenta que como el límite es
p x = δ t ⋅ v p y = 0v1→ v2= v
pagsX= δt ⋅ v
pagsy= 0
como se esperaba.
Actualizar por qué ?.
pagsX para que:
pagsX= c o s ( v2- v12 b) ∗2∗ ( b v1+ v22 ( v2- v 1 )) *Sin ( v2- v12 b)
pagsX= c o s ( v2- v12 b) ∗ ( v2+ v1)2* S i n ( v2- v12 b)v2- v12 b
Ahora tenga en cuenta que tenemos tres límites como v2→ v1.
c o s ( v2- v12 b) →1
( v2+ v1)2→ v1= = v2
s i n ( v2- v12 b)v2- v12 b→ 1 (ver función sinc)
Esto está cubierto en Internet, pero puede comenzar aquí: http://rossum.sourceforge.net/papers/DiffSteer/ o aquí: https://web.cecs.pdx.edu/~mperkows/CLASS_479/S2006/ kinematics-mobot.pdf
Si las ruedas no están fijadas en la dirección, ya que puede variar la velocidad y la orientación, se vuelve más complicado. En ese sentido, un robot puede volverse esencialmente holonómico (puede moverse en direcciones y orientaciones arbitrarias en el plano). Sin embargo, apuesto por una orientación fija, terminas con el mismo modelo.
Hay otros modelos para dos ruedas, como un modelo de bicicleta, que es fácil de imaginar como establecer las velocidades y solo variar una orientación.
Eso es lo mejor que puedo hacer por ahora.