Velocidad requerida de cada rueda en omni bot de 3 ruedas [cerrado]

0

Estoy usando un omni bot de 3 ruedas que puede moverse en cualquier dirección horizontal (ejemplo: enlace ).

Dada una velocidad del objeto (velocidad a la que se debe mover todo el robot) y un ángulo en el que debería moverse (grados), ¿cómo puedo determinar la velocidad requerida de cada rueda?

Intenté lo siguiente, pero he experimentado algunos resultados extraños:

const int wheel1Deg = (90 - (90 - angle)) %  360;
const int wheel2Deg = (90 - (210 - angle)) % 360;
const int wheel3Deg = (90 - (330 - angle)) % 360;

Setpoint = cos ( wheel1Deg * PI / 180.0 );
.....etc
    
pregunta M-R

1 respuesta

1

Este es un simple problema trigonométrico:

S = desired speed
a = desired angle of travel relative to wheel

Si el robot está orientado con una rueda hacia un lado en la parte frontal del robot, las compensaciones de la rueda serán 90, 210, 330 (delantera, derecha, izquierda).

a = desired angle of travel + offset angle of wheel
sin(a) = M / s
M = S * sin(a)

Repita para cada rueda.

Una vez que escriba el código, realice una comprobación rápida de a = 0 y asegúrese de que M = S y de a = 90 y asegúrese de que M = 0.

(edición: ángulos corregidos, mi error)

    
respondido por el Dean Franks

Lea otras preguntas en las etiquetas