hallo,
ich wollte mich an die Programmierung einer Joystick Fernsteuerung für einen Differentialantireb ("Panzer") machen, stoße aber auf ein Programmierproblem:
Der Joystick hat ein Sattelgelenk, d.h. zwei Potentiometer übereinander, die im rechten Winkel zueinander stehen.
Die Schrägstellung ist also die Resultierende aus den Einzelauslenkungen (wenn ich mich nicht irre):
(1) Winkel: tan(alpha) = Gegenkathete/Ankathete <=> alpha = atan2(Gegenkathete, Ankathete)
(2) Auslenkung = 1/2 (SQRT (Ankathete² + Gegenkathete²) )
Gedacht ist die Funktion so, dass natürlich bei schräger Joystickstellung die Innenkette langsamer dreht als die andere: soweit logisch.
Aber:
bei voller 90° Seitenbewegung des Joysticks soll nicht die Innenkette still stehen, sondern mir gleicher Geschwindigkeit aber gegenläufig, so dass der Roboter nicht "über die Innenkette schiebt", sondern auf der Stelle wie ein Kreisel um seinen Mittelpunkt dreht ("spinning").
Bei schräg nach vorn mit 45° soll dann der Stillstand der Innenkette erreicht sein, ab 45-90° ihr Rückwärtslauf beginnen.
Bei Drücken des Joysticks nach hinten ist das ganze dann spiegelverkehrt.
Wie fasst man jetzt die ganze Sache trigonometrisch an?
Ich kenne Winkel und Auslenkungsweite, und daher den Ausschlag nach Stärke und Richtung (s. (1)+(2) ),
aber wie kriegt man jetzt daraus die gegenläufige Kettenbewegung zwischen 45-90° ?
Hat das schon mal wer gemacht oder kennt einen Link?
(wenns per Formel nicht klappt muss notfalls eine Lookup-Tabelle her, das finde ich aber SEHR hässlich!)
Lesezeichen