PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Inverse Kinematik



AndyTrendy
24.06.2008, 22:31
Hallo Roboterfreunde

Ich würde mich gerne in nechster Zeit mit dem Thema Inverse Kinematik beschäftigen.Aus diesem Grund wollte ich mal Fragen wer von euch schon Erfahrungen auf diesem Gebiet gemacht hat.Könnt ihr mir vieleicht ein gutes Buch empfehlen , welches das Thema behandelt.Am besten natürlich speziel für Robotik.Auch für Links uns sonstige Tips wäre ich sehr dankbar.Achso eins hätte ich fast vergessen kennt ihr Programme mit denen man paralel zum lesen sein erlerntes mal testen , ausprobieren kann.

MFG

Vincent

jaepen
09.10.2008, 18:51
Hallo
Ich möchte gerne hier nochmal anknüpfen.
Ich würde mich auch gerne in die Kinematik eines Roboters (vorallem 3-Rad Oniwheels) einarbeiten. Sowohl die vorwärts, als auch die inverse.
Leider konnte ich da bisher auch wenig darüber finden.
Wer hat ahnung davon oder kennt gute Bücher?
Ich hab mir einiges angeschaut von Industrierobotern, aber die sind weitaus koplizierter.

gruß

HannoHupmann
10.10.2008, 09:16
Omnidirektional mit Inverser Kinematik dürfte nicht schwerer sein, als die IK eines Hexabot Beins. Am einfachsten ist der Zugang es sich auf ein Blatt zu malen und dann einfach Gleichungen aufzustellen. Unsere Aufgabenstellungen sind oft einfach genug um mit Sinus und Cosinus gelöst zu werden.

jaepen
31.10.2008, 13:43
Hallo
Also ich hab mich da jetzt mal eingearbeitet und das ganze auch aufgemalt usw.
Im großen ganzen ist das auch alles recht einfach. Das einzige Problem welches ich noch habe, ist die Berechnung des Winkels bzw der Winkelgeschw. mit der ich mich bewege.
Wie mache ich das?

Mein bisheriger Ansatz:

Winkelgeschw= ((v1+v2+v3)*(1/3)*360°)/Roboterumfang

So lange der Robot sich um sich selbst dreht klappt das. Wenn ich mich aber gerade aus bewege (v1=-0,5;v2=1;v3=1) müssten sich die einzelnen Radgeschwindigkeiten (vi) gegenseitig aufheben, tun sie aber nicht???

Kann mir da vll jemand weiter helfen??

Gruß Jaepen

mare_crisium
31.10.2008, 21:34
jaepen,

doch, Du bist schon auf dem richtigen Weg: Das mit der Winkelgeschwindigkeit stimmt aber erst, wenn Du von den allen vi die Durchschnittsgeschwindigkeit abgezogen hast:

Also die Durchschnittsgeschwindigkeit heisst V:
V=(1/3)*(v1+v2+v3)

Damit rechnest Du die reduzierten Geschwindigkeiten vi' aus:
v1'=v1-V; v2'=v2-V; v3'=v3-V

Und danach ist dann

Winkelgeschw = (1/3)(v1'+v2'+v3')*2*pi/Umfang

Probier's mal ;-) !

Ciao,

mare_crisium

jaepen
01.11.2008, 13:30
Hallo,
so ähnlich habe ich mir das auch schon gedacht, aber:

Angenommen der Robo dreht sich um die eigene Achse und jeder Rad hat die Geschwindigkeit v=1.
Dann ergibt sich für die Durchschnittsgeschw. V=1.
Demnach sind dann die Geschwindigkeiten v1'= v2' =v3' = 0
und somit verschwindet meine Winkelgeschwindigkeit....
....obwohl ich mich um die eigene Achse drehe.??????

Oder mache ich noch was falsch???

mare_crisium
01.11.2008, 20:44
Guten Abend, Jaepen,

nee, da hast Du einen Denkfehler gemacht: Du darfst nicht vergessen, dass Du ja Geschwindigkeitsvektoren addierst um den Vektor der Durchschnittsgeschwindigkeit zu berechnen! Also:
Wenn alle drei Räder mit derselben Drehzahl 1 angetrieben werden, dann ist die Durchschnittsgeschwindigkeit:
Vx=(1/3)(v1x+v2x+v3x)=(1/3)(-1+(1/2)+(1/2))=0
Vy=(1/3)(v1y+v2y+v3y)=(1/3)(0-(wurzel(3)/2)+(wurzel(3)/2))=0
Also ist V=0, und Dein Robby dreht wunderschöne Pirouetten ;-) .

Hast Du die Rechnung gesehen, die ich im Thread "omnidirektionaler Antrieb (kreise Fahren)" eingestellt habe? Da erkläre ich ein paar dieser Vektorgeschichten.

Ciao,

mare_crisium

jaepen
01.11.2008, 23:28
Hi
Vielen dank für die Antwort.
Ich hab das jetzt mal hin und her exerziert.
Im Prinzip ist das ja nicht anderes als die Gefahrene Strecke zu messen, mit diesen Daten eine "vorwärtskinematik" zu berechnen, die beiden Ergebnisse zu subtrahieren und im Rest ist die Drehung um die eigene Achse enthalten?? :-)

richtig?
geht das nicht einfacher?

mare_crisium
02.11.2008, 10:07
Guten Morgen, Jaepen,

ja, so kann man das ausdrücken. Ich hätte gesagt: Zuerst betrachtet man das Fahrzeug von oben und von sehr weit weg, so dass es nur als ein Punkt erscheint. Die Bewegungen des Punktes gegenüber der Umgebung lässt sich mit der Durchschnittsgeschwindigkeit beschreiben.
Danach versetzt man sich auf das Fahrzeug, und betrachtet, wie sich seine Orientierung gegenüber der Umgebung ändert. Mathematisch erreicht man das, indem man die Durchschnittsgeschwindigkeit subtrahiert.
Kurz gesagt: Man betrachtet man das Fahrzeug zuerst als ruhender, und dann als mitbewegter Beobachter. ;-)

Ich glaube nicht, das es einfacher geht: Ich bastele schon 'ne ganze Weile an einer gut verständlichen mathematischen Beschreibung herum, aber habe noch nichts Gutes hingekriegt.

Schönen Sonntag,

mare_crisium

jaepen
02.11.2008, 10:20
Guten Morgen
Ich hab das jetzt mal in C Code umgestezt und doch noch einen kleinen Fehler/Problem entdeckt.

Ich bewege mich gerade aus, mit v=(-0,5;1;1)
dann ist v1=0,5;0
v2=0,5;-0,866
v3=0,5;0,866

dann bekomme ich V=(0,5;0)

weiter ist dann

v1'=(0;0) v2'=(0;-0,866) v3'=(0;0,866)

so, jetzt bilde ich eigentlich wieder mit meinen sin und cos Funktionen die Beträge der Vektoren. Wenn ich das aber mache bekomm ich dann v2'=0,75 und v3'=0,75 -> und sie heben sich nicht mehr auf.
?????seltsam, aber die Beträge muss ich doch bilden sonst klappt es doch bei v=(1,1,1) nicht????

gruß

jaepen
02.11.2008, 11:45
Hi
so, ich hab meine Berechnung für 3 verschiedene Richtungen eingescannt und im Anhang hochgeladen. Oben rechts wo ich den Betrag bilde hab ich irgendwie den Fehler drin. Es wäre nett wenn du/ihr euch das mal anschauen könntet.

Gruß

mare_crisium
03.11.2008, 15:44
Guten Abend, Jaepen,

genau das ist die Ecke, an der ich bisher auch nicht weiter weiss. Ich vermute, es hängt damit zusammen, dass die Räder, eben weil sie Omniwheels sind, sich auch in andere Richtung bewegen können, als nur senkrecht zur Radachse. Ich kann das aber noch nicht richtig fassen.

Ausserdem habe ich in meinem Post vom 31.10. einen Fehler gemacht: Die Summe der reduzierten Geschwindigkeiten ist immer Null:
v'1+v'2+v'3=0.
Die Winkelgeschwindigkeit kann man aus dieser Summe nicht berechnen. Das muss irgendwie mit den Vektorprodukten der Abstandsvektoren (vom Bezugspunkt zum Aufpunkt der Räder) mit den reduzierten Geschwindigkeiten gehen.

Wenn Du nur eine Formel ohne Herleitung brauchst, dann guck' mal hier

http://www.informatik.uni-ulm.de/ni/Lehre/SS06/SeminarNI/ausarbeitungen/Siciliano.pdf

auf Seite 3. ;-)

Ciao,

mare_crisium

jaepen
03.11.2008, 18:47
Hi
so, hab jetzt einen alternativen Lösungsweg gefunden.
Hab ihn mal im Anhang hochgeladen. Das ganze sieht für mich eigentlich recht gut aus.

Gruß


@mare_crisium
vielen Dank für deine hilfe.