Ich versuche, den Rover 5-Roboter mithilfe einer Android-App mit einer berührungsbasierten Joystick-Steuerung in der App-Benutzeroberfläche zu steuern. Ich möchte die Geschwindigkeit des linken und rechten Motors im Rover berechnen, wenn der Joystick bewegt wird.
Vom Joystick erhalte ich zwei Werte: Schwenken und Neigen. Ich konvertiere sie mit und in das Polarkoordinatensystem . Wobei r von 0 bis 100 und Theta von 0 bis 360 reicht. Ich möchte eine Gleichung ableiten, die das in für Rover umwandeln kann . Die Geschwindigkeitswerte liegen ebenfalls im Bereich [0; 100].r
theta
(r, theta)
(left_speed, right_speed)
Hier ist, was ich bis jetzt herausgefunden habe. Für jeden Wert von r
,
Wenn theta = 0
dann left_speed = r, right_speed = -r
(rechts vor Ort abbiegen)
Wenn theta = 90
dann left_speed = r, right_speed = r
(mit Geschwindigkeit r vorwärts fahren)
Wenn theta = 180
dann left_speed = -r, right_speed = r
(auf Punkt links abbiegen)
Wenn theta = 270
dann left_speed = -r, right_speed = -r
(mit Geschwindigkeit r rückwärts fahren)
Für andere Werte möchte ich, dass es sich gleichzeitig bewegt und dreht. Zum Beispiel,
Wenn theta = 45
dann left_speed = alpha*r, right_speed = beta*r
(vorwärts bewegen, während Sie nach rechts abbiegen)
Grundsätzlich kann (r, theta)
ich für jeden folgende Geschwindigkeiten einstellen:
(left_speed, right_speed) = (alpha*r, beta*r)
Ich muss eine Gleichung formulieren, in der ich all diese Fälle verallgemeinern kann, indem ich finde alpha
und beta
basierend darauf theta
.
Wie kann ich das machen? Gibt es eine Arbeit, auf die ich mich beziehen kann?