Hat jemand eine Idee wie man die Bahnkurve bzw. Trajektorie implementiert?
Hat jemand eine Idee wie man die Bahnkurve bzw. Trajektorie implementiert?
Welche Bahnkurve meinst du jetzt? Das Vorranheben des Beines oder meinst du allgemein?
Das was du meinst ist die inverse Kinematik, die ist nun nahezu vollständig implementiert. Was ich jetzt Suche ist die sogenannte Bahnkurve. D.h. die Trajektorie bei der sich der Roboter von A nach B bewegt. Also von einem Ausgangspunkt zu einem Zielpunkt und diesen Weg muss ich irgendwie in der Mathematik abbilden.
- - - Aktualisiert - - -
Das was du meinst ist die inverse Kinematik, die ist nun nahezu vollständig implementiert. Was ich jetzt Suche ist die sogenannte Bahnkurve. D.h. die Trajektorie bei der sich der Roboter von A nach B bewegt. Also von einem Ausgangspunkt zu einem Zielpunkt und diesen Weg muss ich irgendwie in der Mathematik abbilden.
Ich würde es versuchen so zu lösen das man den Anfangspunkt und den Zielpunkt (A-Z) als Variablen, dann den Weg dazwischen in die kleinste Einheit zerlegen die die Beine sich bewegen können und dann solange auf den Anfangstpunkt aufaddieren bis man den Zielpunkt erreicht hat. Sollte auch für Koordinaten funktinieren. Habe ich selbst sovor, aber noch nicht umgesetzt. Daher ist es erstmal nur ne Idee.
Meine Gedanken gehen in eine ähnliche Richtung. D.h. ich habe eine Aktuelle Ist Position definiert durch x=0, y=0, und Drehwinkel alpha = 0° und eine Zielposition mit z.B. x = 150cm, y = 150cm, alpha 45°. Damit müsste der Roboter dann 150cm nach vorn und 150cm nach rechts laufen (translatorisch) und dabei die Orientierung des Körpers um 45° drehen (rotatorisch). Soweit so gut. Einziges Problem was ich bisher noch habe ist, wie ich die Wegstrecke sinnvoll in Schritte unterteile, denn die Zielpositionen können unterschiedlich weit entfernt sein und daher in variablen Anzahl von Schritten erreicht werden, die Anzahl gilt es irgendwie sinnvoll zu bestimmen.
Mir fehlt es an Erfahrung in diesem Bereich aber manchmal können Ideen von "Unwissenden" ja ein Anstoß für die eigene Lösung sein
Als Bezug würde ich das mittlere Beinpaar wählen, um die Bewegungen des vorderen, bzw. hinteren, Beinpaares davon abzuleiten.
Den Bogen, den das kurvenäußere Bein zurücklegt, würde ich in Bogensehnen unterteilen. Die Länge dieser Sehnen könnte die maximal zurücklegbare Strecke des Beins bei einer Bewegung sein, aber kleiner um auf den Untergrund angepasst eine bessere Mobilität zu erziehlen (auf ebener Fläche sind keine Steine oder Löcher zu erwarten).
Die Länge der ermittelten Sehnen würde ich im Verhältnis äußere Kurvenbahn zu innerer Kurvenbahn verkürzen um mit der gleichen Anzahl Schritten den benötigten Weg zurück zu legen. Wenn ein Mensch um eine Kurve läuft hebt er ja auch immer abwechselnd die Füße und macht unterschiedlich große Schritte.
Auf Basis dieser Bewegungen müsste man dann die Bewegungen der verbleibenden vier Beine errechnen. Ich denke, es sollen immer drei Beine Bodenkontakt haben (Mitte links + Vorne/Hinten Rechts oder umgekehrt)
Alles ist möglich. Unmögliches dauert nur etwas länger!
Hallo Arkon,
was du beschreibst - und auch völlig richtig - ist die weiter Führung der Inversen Kinematik zu einer einfachen Bein-Trajektorie. Was allerdings noch fehlt ist die übergeordnete Bahnplanung oder um es weniger technisch auszudrücken: der Weg.
Hier mal meine Lösung, wie ich mir das Vorstelle:
Nur leider wird er bei einer überlagerten translatorischen und rotatorischen Bewegung keine Kurve laufen, sondern einfach schräg mit einer entsprechenden Drehung des Körpers.
Lesezeichen