-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: inverse kinematik für quatropoden

  1. #1
    Neuer Benutzer Öfters hier Avatar von glitsch
    Registriert seit
    29.12.2011
    Beiträge
    12

    inverse kinematik für quatropoden

    Anzeige

    Hiho!

    Bin gerade ganz neu auf diesem Gebiet und möchte in ferner Zukunft einmal einen Quatropoden oder Hexapoden bauen und jetzt zumindest die Mathematik der Programmierung verstehen Dazu lese ich immer wieder von inverser Kinematik. Könntet ihr mir einen tollen Link geben, in dem das einmal nicht allgemein und wissenschaftlich aufgedröselt wird, sondern angepasst an einen Gehroboter?

    Spezielle Frage dazu: So wie ich das verstanden habe, wird ja eine Soll-Position vorgegeben, an dem sich der Roboter (oder ein Stück davon) befinden soll. Dazu müssen sich dann die Servos geeignet bewegen. Aber wenn der Roboter jetzt geht, ändert sich seine Soll-Position ja ständig. Da weiss ich garnicht, wie die Servos (oder das Programm) dann darauf reagieren soll.

    Rechnet man bei den Positionen im Raum mit Polarkordinaten oder mit kartesischen?

    Ich hoffe, die "profis" schlagen jetzt nicht die Hände über dem Kopf zusammen... das sind die ersten Fragen, die sich für mich ergeben haben.
    Mit der Suchfunktion kam ich da auch nicht weiter.

    Danke schonmal im Voraus!

  2. #2
    RN-Premium User Roboter Genie Avatar von 5Volt-Junkie
    Registriert seit
    06.03.2008
    Alter
    30
    Beiträge
    946
    Hi und willkommen im Forum

    hier ein kleiner Link wo es vielleicht nicht so ganz fachchinesisch beschrieben ist.
    http://www.vreal.de/index.php?option...d=98&Itemid=83

    Mich als nicht Mathematiker und ohne Abi, hat es etwas weiter gebracht

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Hallo,

    hab eben schon in einem anderen Thread darauf hingewiesen: Hier hab ich versucht, die inverse Kinematik für ein Hexapodenbein mal darzustellen. Vielleicht hilft es Dir. Ein wenig zu einer einfachen Laufkoordination findest Du hier.

    Gruß
    Malte

  4. #4
    Neuer Benutzer Öfters hier Avatar von glitsch
    Registriert seit
    29.12.2011
    Beiträge
    12
    Ha, super!! danke, das hilft mir echt weiter. Damit beschäftige ich mich jetzt erstmal eine Weile
    Toll, dass es so schnell ging.

  5. #5
    Neuer Benutzer Öfters hier Avatar von glitsch
    Registriert seit
    29.12.2011
    Beiträge
    12
    Hallo!

    Nachdem ich nun ein bißchen gelesen und gerechnet habe, stehe ich immer wieder vor einem Problem. Zwar weiss ich, wo die Beine stehen sollen und wie die zugehörigen Gelenkwinkel usw. sind und auch welches Bein zu welchem Zeitpunkt bewegt werden soll.
    Nur wie gebe ich die Signale für die Bewegungen. Ich möchte den Roboter gern mit einer Fernsteuerung bedienen, er soll also nicht autonom irgendwohin krabbeln. Wenn er jetzt das Signal "nach vorne gehen" bekommt, soll das Programm nicht "nur" die von mir berechneten Winkel der Servos einstellen. Die Formeln für die Berechnung sollen im Programm sein und dann abegarbeitet werden, sodass der Roboter sich selbst "überlegen" muss, welches Bein er wie bewegt. Die Inverse Kinematik soll der Robo also selbst berechnen.
    Könnte jemand vielleicht mal schreiben, wie sein Signal zu "nach vorne gehen" ist und wie das Signal dann im Code verarbeitet wird? Also nicht mit Formeln, sondern nur, "was" das Signal bewirkt und was der Code darauf tut.

    Viele Grüße!!

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    16.03.2011
    Ort
    Dresden
    Alter
    30
    Beiträge
    1.937
    Du hast also schon herausgefunden, wie die IK berechnet wird? Gut.
    Nun wäre der nächste Schritt, wie die Beinbewegung aussehen muss. Dazu brauchst du irgendeine Funktion im Raum, die die Bewegung der Fußspitze beschreibt. Im einfachsten Fall wäre das ein Rechteck, also Fuß hoch, Fuß nach vorne, Fuß runter, Fuß nach hinten. Diese vier Strecken müsstest du in gleich große Abschnitte einteilen (meinetwegen 5mm oder sowas). Der Ablauf wäre dann so, dass immer die folgende Koordinate verwendet werden würde.
    Ein einfaches Beispiel:
    Der Fuß soll 2cm angehoben, 3cm nach vorne bewegt, wieder 2cm nach unten und 3cm nach hinten bewegt werden, in 5mm Inkrementen. Die Folge der Positionen wäre also irgendwie sowas:
    x y z
    0 0 0
    0 0 5
    0 0 10
    0 0 15
    0 0 20
    5 0 20
    10 0 20
    15 0 20
    usw.
    Dazu müsste noch ein Versatz gerechnet werden, da du ja vermutlich deinen Koordinatenursprung in der ersten Achse liegen haben wirst.
    Nun müsste der Controller irgendwie diese Bewegung als Funktion implementiert haben. Nun wird immer nach einer konstanten Zeit die neue Koordinate berechnet und über deine IK die zugehörigen Winkel. Diese Winkel werden dann in das benötigte Servosignal umgerechnet und das Bein sollte dann die gewünschte Bewegung ausführen. Für die anderen Beine könnte man das ähnlich aufbauen.
    Die Streckeninkremente in Kombination mit der Zeit, die dazwischen verstreichen soll, bestimmen die Geschwindigkeit. Am besten ist, wenn der Servo jeden PWM-Takt ein neues Signal bekommt, damit die Bewegung möglichst flüssig wird.

    Dieser Algorithmus ist aber auch noch sehr einfach gehalten und ich bin mir sicher, dass es noch bessere Methoden gibt, damit die Bewegung nicht so hakelig wird.

    Was mich aber noch interessieren würde: wie hast du vor, dass der Bot nicht immer hin und her kippt? Für eine Stabile Position braucht es immer mindestens 3 Punkte. Der Bot müsste also immer ein Bein nach dem anderen setzen.

  7. #7
    Neuer Benutzer Öfters hier Avatar von glitsch
    Registriert seit
    29.12.2011
    Beiträge
    12
    Ah okay. Die Zahlen werden also vom Controller berechnet und nicht einfach dem Controller gegeben. Und der Versatz wird benutzt, damit man nicht für jedes Bein ein eigenes Koordinatensystem benutzen muss.
    Erstmal baue ich mir ein Bein mit 3 Servos, um die Berechnungen auszuprobieren und zu üben.

    Um auf deine Frage zu antworten: Genau, der Robo wird immer nur ein Bein nach dem anderen bewegen können. Vor dem ersten Schritt muss der Körper sich in eine Richtung bewegen, damit der Schwerpunkt zwischen drei Beinen liegt. Auch zwischen zwei Schritten muss der Körper wieder ausgerichtet werden. Und beim Ausrichten müssen auch noch fast alle Servos auf einmal bewegt werden. Oh man, beim Tippen merkt man so richtig, wie weit das noch weg ist
    Hier ist ein Link von einem supereleganten Gang!
    http://www.youtube.com/watch?v=jWP3RnYa_tw

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    16.03.2011
    Ort
    Dresden
    Alter
    30
    Beiträge
    1.937
    Ok, in dem Video mekrt man aber auch, dass der Programmierer versteht, was er da macht. Sieht wirklich sehr gekonnt aus.
    Ansonsten hätte ich die Idee, dass man den Körper des Quadropods gleichmäßig über den Boden bewegen lässt, sodass sich die Füße auf geraden Bahnen bewegen müssen. Dabei wird dannimmer abwechselnd ein Bein nach dem anderen weiterversetzt. Ziel wäre es, dass beim normalen Laufen alle Beine in Bewegung sind, wobei immer drei Beine den Körper vorran bewegen, während das Vierte wieder nach vorne gehoben wird. Die Fußspitzen machen also alle dieselbe Bewegung, nur eben phasenversetzt. Das Nachvorneheben des Fußes müsste auch 1/3 der Zeit brauchen, die die anderen Beine den Körper vorranbewegen. Müsste man also die Geschwindigkeit anpassen. Wenn dabei immer das Bein bewegt wird, was schon am längsten aufgesetzt wurde, dürfte der Schwerpunkt auch gut liegen. Vielleicht wäre es ganz praktisch, das Ganze schonmal vorher irgendwie zu simulieren, also nur mit Fußpositionen, ohne IK. Interessant ist dann nämlich auch das Anlaufen bzw. Stehenbleiben, da die Beine dann ja nicht phasenversetzt sind. Beim Anlaufen müsste also das erste Bein einen Viertelschritt machen, das Zweite einen halben Schritt, das Dritte einen Dreiviertelschritt und die darauffolgenden Schritte sind dann immer vollständig. Mit der Methode könnte man es aber so machen, dass der Hexapod in alle Richtungen laufen kann, ohne sich zu drehen, also auch diagonal laufen, wobei sich der Körper im Idealfall gleichmäßig auf einer Bahn bewegt. Drehung müsste man dann gucken, wie man das realisieren kann. Wahrscheinlich mit Kreisbahnen, die einen gemeinsamen Mittelpunkt haben.
    Du siehst schon, im Grunde geht es jetzt darum, die Bewegungen mathematisch beschreiben zu können, damit du mit den resultierenden Koordinatenverläufen und deiner IK die Servobewegungen errechnen kannst.

    Ich hab mich zwar selbst noch nicht so sehr mit Multipods (ist das der Oberbegriff?) beschäftigt, allerdings beschäftige ich mich mit Roboterarmen und deren Bahnplanung. Daher dnek ich mal, dass man das Wissen hier anwenden kann, auch wenn ich noch keine konkreten Lösungen liefern kann, sondern nur Ideen. Und je mehr ich hier schreibe, desto mehr Lust bekomme ich, das mal irgendwann selbst zu probieren

  9. #9
    Neuer Benutzer Öfters hier Avatar von glitsch
    Registriert seit
    29.12.2011
    Beiträge
    12
    Stimmt! Am besten wäre es wirklich, wenn der Körper sich gleichmäßig über den Boden bewegt. Dein Text liest sich, als wenn du wirklich viele Ideen dazu hast und es eigentlich auch mal ausprobieren möchtest haha. Für dich wäre das sicher nicht die riesige Herausforderung, wenn du dich schon mit Roboterarmen beschäftigst.

    Wahrscheinlich werde ich mich in nächster Zeit auch mit einem Roboterarm (-bzw. dann dem Bein, aber man kann es ja nennen, wie man will:-D) beschäfitgen. Ich denke mal, dass es mit 3 Servos noch überschaubar bleibt, aber trotzdem gibt´s viel zu lernen!

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2004
    Beiträge
    451
    Bin/War selbst am Planen von einem Quadropoden musste ihn aber aus Zeitgründen immer wieder nach hinten verschieben, leider. 3D Zeichnungen sind alle in sketchup erstellt und ein paar programme gibts auch schon, aber die Intelligenz und Sensoren fehlen noch. Wird aber angeganen, sobald ich meine CNC-Fräse feritg hab.

    Wie hast du dir die Controller struktur von deinem Bot gedacht? Pro Bein 1 Controller oder für alle 12 Servos 1 Controller?
    Bei mir hatte ich vor, 1 Servocontroller zu verwenden, der die IK berechnet und die Servos ansteuert. Als signal bekommt er X,Y,Z,alpha,beta,gamma vom Mittelpunkt des Roboters (also die Bewegung des Roboterzentrums), daraus berechnet er dann für jedes Bein die IK und steuert die Servos an. Vorteil von dem ganzen war, dass der Controller immer genau weiß, welches Bein in der Luft ist, und welches Bein geändert werden muss. Und das "Gehirn" (Hauptcontroller) sich um solche dinge keine Gedanken machen muss. Im Datenprotokoll waren aber auch vorgesehen Bein X an eine Bestimmte Position zu bewegen bzw. die Höhe von Punkten abzufragen um das ganze auch Geländegängig zu machen.

    Geistesblitz hat auch das vorgehen von der Beinpositionierung beim Loslaufen gut erklärt. Beim stehen macht man es am besten genau so, sobald keine Bewegungsänderung mehr kommt, alle beine wieder auf die Ausgangsposition (is aber mehr für die optik ). Den einzigen Denkfehler, den er hat ist, das Bein, welches am längsten auf dem Boden ist zu ändern, denn das würde bei einem Richtungswechsel nicht mehr funktionieren. Besser ist es, zu schaun, ob deine Fußspitze aus einer Sicheren Zone (z.B. 5cm weg von der 0 Stellung) ist und es dann wieder auf 0 oder auf den gegenüberliegenden Rand der Zone zu setzen. Sind mehrere Beine gleichzeitig im "verbotenen Bereich" muss der Roboter stehen bleiben und sich erst wieder sammeln.

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Inverse Kinematik
    Von AndyTrendy im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 12
    Letzter Beitrag: 03.11.2008, 19:47
  2. Mega8 Inverse kinematik hexapot
    Von hopix im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 1
    Letzter Beitrag: 11.03.2008, 09:12
  3. Kinematik Simulieren
    Von BlackDevil im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 12
    Letzter Beitrag: 25.12.2007, 17:55
  4. Kinematik animieren mit CAD
    Von vohopri im Forum Konstruktion/CAD/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 4
    Letzter Beitrag: 24.09.2007, 18:44
  5. inverse Kinematik / humanoide Roboter
    Von siroks im Forum Buchempfehlungen
    Antworten: 4
    Letzter Beitrag: 05.09.2007, 17:57

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •