Was ist ein guter Ansatz für einen Vierbeiner?


12

Ich habe einen kleinen Vierbeiner mit drei Freiheitsgraden, an dem ich gearbeitet habe: 3DOF Mini Quadruped .

Mein ursprünglicher Code dafür war ein einfacher Servocontroller auf dem Arduino und ein Scala-Code, der Servobefehle über die Leitung senden würde. Ich habe die gesamte Inverse Kinematics- und Ganglogik in Scala ausgeführt und es zum Laufen gebracht: 3dof Quadruped First Gang .

Meine Ganglogik in Scala war etwas naiv; Es hing davon ab, dass sich die Beine am Anfang in der richtigen Position befanden (eine Seite erstreckte sich nach vorn und hinten, die andere nach innen). Die Logik bestand einfach darin, alle vier Fuß rückwärts um 1 mm entlang y zu verschieben. Wenn ein Coxa-Winkel übermäßig nach hinten gedreht wurde, halten Sie an und führen Sie eine kleine Routine durch, bei der der Fuß 10 mm in z angehoben und dann 60 mm entlang y vorwärts verschoben und wieder abgesenkt wird. Naiv, aber effektiv.

Jetzt habe ich meinen IK-Code in Arduino C umgeschrieben und ich versuche zu entscheiden, wie ich mit der Gangdynamik vorankomme. Es fiel mir schwer, gute, leicht verständliche Ressourcen über Gangarten zu finden. Ich weiß etwas über den Unterschied zwischen dynamisch stabilen Gängen (wie Kriechgängen), bei denen der Körper zu jeder Zeit ein stabiles Stativ ist, und dynamisch instabilen Gängen (Gehen, Traben), bei denen zwei Beine gleichzeitig vom Boden abheben, und dem Körper Bescheid fällt im Wesentlichen nach vorne in das vorrückende Bein.

Ich hatte einige Gedanken über Zustandsautomaten und versuchte zu berechnen, ob der Körpermittelpunkt in ein Dreieck fällt, das von den verbleibenden Füßen gebildet wurde, um zu entscheiden, welcher Fuß sicher zu heben war, aber ich bin nicht sicher, ob dies Ideen sind, die es wert sind, untersucht zu werden.

Ich weiß, dass dies eine zu allgemeine Frage ist, aber ich bin gespannt, wie andere Leute dieses Problem angegriffen haben, und alles, was ich finden konnte, sind Forschungsarbeiten.


Ich bin beeindruckt von der Arbeit, die Sie an den Robotern geleistet hatten. Ich brauche dringend Ihre Hilfe, um nach wertvollen Lösungen zu suchen. Ich habe in den letzten 6 Monaten nach Lösungen gesucht, um die Kinematik des Hexapods ohne positive Ergebnisse zu lösen. Ich habe es geschafft, Gleichungen für alle Servowinkel mit dem Körper parallel zum Boden zu finden, aber nicht mit dem Körper zur Seite geneigt. Schätzen Sie, wenn Sie helfen können :-) Grüße Gary

Willkommen bei R.Se @ user2350 - bitte stellen Sie keine zusätzlichen Fragen (egal wie ähnlich) als Antworten
Andrew

Antworten:


5

Der Gang, den Sie haben, ist eigentlich nicht schlecht, obwohl die Füße nicht genug Traktion haben, so ist es schwer zu sehen, wie gut es wirklich ist.

Ich bin mir nicht sicher, was Ihre Terminologie für dynamisch stabile Gangarten betrifft. Wie ich es immer verstanden habe, ist der Zwei-Stativ-Gang als statisch stabiler Gang bekannt, während ein guter Zweibeiner wie Petman einen dynamisch stabilen Gang verwendet. Noch nie von einem dynamisch instabilen Gang gehört. Das klingt eher nach Trunkenheit.

Zwei Beine am Boden sind wahrscheinlich die Untergrenze für dieses Roboterkonzept. Im Allgemeinen ist es einfacher, diese Arbeit mit großen humanoiden Robotern auszuführen, deren Umfallen lange dauert. Breite flache Roboter müssen ihre Füße ziemlich schnell anheben und platzieren, wenn sie nicht viele auf dem Boden lassen.

Aber wie entwickelt man ein Gair für seinen Roboter? Zunächst sollten Sie entscheiden, was Sie mit dem Gang erreichen möchten. Suchen Sie maximale Geschwindigkeit auf ebenem Untergrund oder maximale Stabilität auf unebenem Untergrund?

Wenn Ihr Ziel Stabilität ist, dann denke ich, dass es sich lohnt, den Schwerpunkt des Roboters in Bezug auf seine Füße zu kennen. Um dies zu erkennen, kann es sogar sinnvoll sein, einige Kraftsensoren an den Füßen anzubringen, um dies einfach berechnen zu können.

Wenn Ihr Ziel nur die maximale Geschwindigkeit ist, dann würde ich mich einfach darauf konzentrieren, ein optimales Gangmuster zu finanzieren. Das ist schwerer zu machen. Es gibt zwei gute Möglichkeiten, sich dem anzunähern:

  1. Modellieren. Erstellen Sie ein umfassendes Computermodell des Roboters, einschließlich Masse, Steifigkeit, Drehmoment usw. Verwenden Sie dieses Modell, um das dynamische Verhalten vollständig zu verstehen.

  2. Versuch und Irrtum. Sie können dies auf die harte Tour tun, indem Sie in zufälligen Gängen programmieren, sie auf eine Ahnung einstellen und ihre Leistung messen. Versuchen Sie, es sowohl vorwärts als auch diagonal laufen zu lassen. Oder Sie können einen genetischen Algorithmus verwenden , um automatisch nach besseren Gangarten zu suchen. Die Schwierigkeit bei der Verwendung eines GA besteht darin, dass Sie eine Möglichkeit haben müssen, die Leistung des Gangs automatisch zu messen.

Ein dritter Weg besteht darin, den Roboter zu einem Wissenschaftler zu machen, der bewusste Experimente an sich selbst durchführt, um Hypothesen über sich selbst zu validieren und um herauszufinden, wie man wie der Seesternroboter der Cornell University läuft .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.