5Volt-Junkie
15.04.2012, 15:46
Hallo Leute,
da ich bei dem mechanischen Aufbau meines Hexapoden (https://www.roboternetz.de/community/threads/56117-Erster-Hexapod-(5VJ)) nicht weiter komme, dachte ich mir, ich beschäftige mich etwas mit der Inversen Kinematik. Dabei steht die Programmierung erst an der zweiten Stelle. Mir ist halt wichtig es zu verstehen wie die Zahlen bei IK "fließen" ;) Ist vielleicht etwas blöd ausgedrückt aber ich versuche es mal näher zu erläutern.
Um so klein wie möglich anzufangen, habe ich mir ein Hexapod-Bein vorgestellt. Die drei Servos nenne ich mal Schulter-, Knie- und Fuß-Servo. (Jaa, ein Bein hat keine Schulter aber irgendwie habe ich es mir so eingeprägt). Schulter-Servo bewegt das Bein vorwärts und rückwärts, Knie-Servo hebt den Schenkel hoch und runter und Fuß-Servo bewegt den Fuß seitwärts (nach innen und außen).
Die Länge den Schenkel beträgt 80mm
Länge des Fußes beträgt 60cm
Der Hexapod steht absolut gerade und symmetrisch. D.h.Schenkel und Fuß bilden 90° Winkel und die Höhe des Knie-Servos zum Boden ist gleich der Höhe des Fußes. Also bildet das Bein quasi einen Rechteck.
Um mal ganz klein anzufangen, wollte ich mich erst mal im zweidimensionalen Raum bewegen. D.h. ich schaue auf das Bein erst mal von oben. Schulter-Servo steht auch mittig. Das wäre quasi ein Ruhezustand des Roboters. Jetzt mal Angenommen ein Schritt = 5cm. D.h. um diesen Schritt jetzt zu machen muss meine Fußspitze parallel zum Körper des Hexapodes um 2,5cm verschoben werden. Jetzt berechne ich nach dem Satz des Pythagoras die Linie zwischen Fußspitze und Schulter: a=2,5mm b=80mm also ist c= 83,815mm. Die Formel habe ich in Excel eingefügt und diese Linie für den halben Schritt (25mm => 25 mal) berechnen lassen. Wenn ich von 25 wieder bei 0 ankomme, bin ich ja wieder bei Ruhezustand des Beins. Neben der Linie c, habe ich noch in Excel den Winkel Alpha berechnet, was dem Stellwinkel des Servos entspricht.
Excel-Formel für Alpha (Schulter-Servo) =ARCSIN(B3/D3)*180/PI()
B3=a
D3=c
Soweit so gut, kann ich noch alles verstehen. (hoffentlich ihr auch)
Jetzt ändern wir die Ansicht und schauen uns das Bein quasi von hinten an. Es wird wieder angenommen dass die Fußspitze um 2,5cm nach vorn verschoben wurde und von dort aus beginnt wieder unsere Rechnung. a wäre jetzt die Höhe des Knie-Servos zum Boden =>60mm. B ist jetzt das Ergebnis von vorhin also 83,815mm und c (wieder der die Linie zwischen Schulter und Fußspitze) ist wieder gesucht. Das ganze wieder in Excel reingekloppt und zum Ergebnis c=103,078mm gekommen. Kommt ja auch hin. Jetzt berechne ich anhand dieses Ergebnisse, den Winkel des Fußes (Gamma) was 93,73° entspricht. Hier war a wieder 60mm, b=80mm. Nach 25 (25mm zum Ruhezustand) Berechnungen ist gamma wieder 90° und c=100mm. Also passt es wieder.
Excel-Formel für Fuß-Servo =ARCCOS((M3^2+N3^2-O3^2)/(2*M3*N3))*180/PI()
M3=a
N3=b
O3=c
Nur wie berechne ich jetzt den Winkel des Knie-Servos? egal wie ich rechne, komme ich zu keinem Ergebnis, was gefühlt passen würde. Ich sollte ja wieder bei ca. 90° landen (+- einige grad). Aber irgendwie kriege ich es einfach nicht gebacken. Wo muss ich mir den Dreieck genau vorstellen um zum richtigen Ergebnis zu kommen. Bis jetzt kriege ich Anfangsergebnis 50° oder 30° aber das ist ja alles Murks :(
Ich hoffe man kann aus meiner Rechensuppe etwas brauchbares entnehmen um meine Vorgehensweise zu verstehen. Wenn es total unverständlich ist, kann ich demnächst noch einige Zeichnungen einfügen.
Ich bedanke mich jetzt schon ganz herzlich bei den jenigen, die es gelesen haben und versuchen daraus was zu verstehen.;)
da ich bei dem mechanischen Aufbau meines Hexapoden (https://www.roboternetz.de/community/threads/56117-Erster-Hexapod-(5VJ)) nicht weiter komme, dachte ich mir, ich beschäftige mich etwas mit der Inversen Kinematik. Dabei steht die Programmierung erst an der zweiten Stelle. Mir ist halt wichtig es zu verstehen wie die Zahlen bei IK "fließen" ;) Ist vielleicht etwas blöd ausgedrückt aber ich versuche es mal näher zu erläutern.
Um so klein wie möglich anzufangen, habe ich mir ein Hexapod-Bein vorgestellt. Die drei Servos nenne ich mal Schulter-, Knie- und Fuß-Servo. (Jaa, ein Bein hat keine Schulter aber irgendwie habe ich es mir so eingeprägt). Schulter-Servo bewegt das Bein vorwärts und rückwärts, Knie-Servo hebt den Schenkel hoch und runter und Fuß-Servo bewegt den Fuß seitwärts (nach innen und außen).
Die Länge den Schenkel beträgt 80mm
Länge des Fußes beträgt 60cm
Der Hexapod steht absolut gerade und symmetrisch. D.h.Schenkel und Fuß bilden 90° Winkel und die Höhe des Knie-Servos zum Boden ist gleich der Höhe des Fußes. Also bildet das Bein quasi einen Rechteck.
Um mal ganz klein anzufangen, wollte ich mich erst mal im zweidimensionalen Raum bewegen. D.h. ich schaue auf das Bein erst mal von oben. Schulter-Servo steht auch mittig. Das wäre quasi ein Ruhezustand des Roboters. Jetzt mal Angenommen ein Schritt = 5cm. D.h. um diesen Schritt jetzt zu machen muss meine Fußspitze parallel zum Körper des Hexapodes um 2,5cm verschoben werden. Jetzt berechne ich nach dem Satz des Pythagoras die Linie zwischen Fußspitze und Schulter: a=2,5mm b=80mm also ist c= 83,815mm. Die Formel habe ich in Excel eingefügt und diese Linie für den halben Schritt (25mm => 25 mal) berechnen lassen. Wenn ich von 25 wieder bei 0 ankomme, bin ich ja wieder bei Ruhezustand des Beins. Neben der Linie c, habe ich noch in Excel den Winkel Alpha berechnet, was dem Stellwinkel des Servos entspricht.
Excel-Formel für Alpha (Schulter-Servo) =ARCSIN(B3/D3)*180/PI()
B3=a
D3=c
Soweit so gut, kann ich noch alles verstehen. (hoffentlich ihr auch)
Jetzt ändern wir die Ansicht und schauen uns das Bein quasi von hinten an. Es wird wieder angenommen dass die Fußspitze um 2,5cm nach vorn verschoben wurde und von dort aus beginnt wieder unsere Rechnung. a wäre jetzt die Höhe des Knie-Servos zum Boden =>60mm. B ist jetzt das Ergebnis von vorhin also 83,815mm und c (wieder der die Linie zwischen Schulter und Fußspitze) ist wieder gesucht. Das ganze wieder in Excel reingekloppt und zum Ergebnis c=103,078mm gekommen. Kommt ja auch hin. Jetzt berechne ich anhand dieses Ergebnisse, den Winkel des Fußes (Gamma) was 93,73° entspricht. Hier war a wieder 60mm, b=80mm. Nach 25 (25mm zum Ruhezustand) Berechnungen ist gamma wieder 90° und c=100mm. Also passt es wieder.
Excel-Formel für Fuß-Servo =ARCCOS((M3^2+N3^2-O3^2)/(2*M3*N3))*180/PI()
M3=a
N3=b
O3=c
Nur wie berechne ich jetzt den Winkel des Knie-Servos? egal wie ich rechne, komme ich zu keinem Ergebnis, was gefühlt passen würde. Ich sollte ja wieder bei ca. 90° landen (+- einige grad). Aber irgendwie kriege ich es einfach nicht gebacken. Wo muss ich mir den Dreieck genau vorstellen um zum richtigen Ergebnis zu kommen. Bis jetzt kriege ich Anfangsergebnis 50° oder 30° aber das ist ja alles Murks :(
Ich hoffe man kann aus meiner Rechensuppe etwas brauchbares entnehmen um meine Vorgehensweise zu verstehen. Wenn es total unverständlich ist, kann ich demnächst noch einige Zeichnungen einfügen.
Ich bedanke mich jetzt schon ganz herzlich bei den jenigen, die es gelesen haben und versuchen daraus was zu verstehen.;)