Winkelmessung zur Steuerung (Bewegung) eines Roboterarms [geschlossen]

Ich arbeite an einem Roboterarm, ich werde Servomotoren verwenden, diese werden vom PC mit Befehlen gesteuert (es ist ein Schachspielarm), also wird der Befehl so etwas wie eine Figur von A1 nach E7 bewegen Zum Beispiel.

Wie kann ich den Winkel berechnen, den ich für jeden bestimmten Befehl an die Servos weitergeben werde?

Ich bin mir nicht sicher, ob Sie und ich dasselbe mit „berechnen“ meinen. Die offensichtliche Antwort ist „Trigonometrie“, aber da das so offensichtlich ist, müssen Sie etwas anderes meinen. Sie müssen wissen, wo sich A1 und E7 in einem Koordinatensystem befinden, das in Maschineneinheiten übersetzt und kalibriert werden muss, die in Servobewegungen übersetzt werden müssen. Ich neige dazu, SI in meinen Programmen aus Konsistenzgründen zu verwenden und in andere Koordinatensysteme (falls erforderlich) direkt an der Grenze zu übersetzen, sodass meine Stepper in Schritten / Meter kalibriert werden. Stellen Sie vielleicht ein Blockdiagramm sowohl Ihres mechanischen Systems als auch des vorgeschlagenen Codes zur Verdeutlichung auf

Antworten (1)

Nummeriere die Quadrate 1-8 in x-Richtung und 1-8 in y-Richtung, dann wird der Winkel sein: A R C T A N ( ( N e X T j ) ( C u R R e N T j ) ( N e X T X ) ( C u R R e N T X ) ) .

Dies funktioniert, wenn es um zwei Dimensionen geht, aber ich habe einen Arm mit 3 Motoren (der vierte ist für den Greifer), also muss ich drei Winkel für jedes Patch -Quadrat- berechnen.
Bewegen Sie stattdessen den Tisch.