Benutzer-Werkzeuge

Webseiten-Werkzeuge


adp_laufrobotik:adp_2012_ws_group2:laufmodelle:gehen

Gehen

Neben dem einbeinigen Laufen, wie es in den vorangegangenen Kapiteln dargestellt wurde, soll nun auch das implementierte Modell des zweibeinigen Gehens vorgestellt werden. Hierfür wird der Durchlauf durch das System erst einmal ganz allgemein anhand Abb. 1 erklärt.

<imgcaption image1|Blockschaltbild des Modells Gehen> </imgcaption>
Die Berechnung des Modells zweibeiniges Gehen beginnt im blauen Subsystem Bewegungsgleichung, welches im ersten Unterkapitel näher erläutert wird. Die dort berechneten Positions- und Geschwindigkeitsvektoren werden im orangenen Subsystem Zustandsberechnung verarbeitet. Dieses ermittelt den momentanen Zustand (neuer Schritt, Fußaufsatz, Fuß abheben), die Position des Fußes, den Schrittabstand und die Anzahl der Schritte. In dem roten Subsystem Kraftberechnung wird anhand der Feder, des Dämpfers und des Aktuators die momentan wirkende Kraft berechnet und die Gesamtkraft sowie die Einzelkraft aller beteiligten Komponenten nach linkem und rechtem Bein getrennt ausgegeben. Die Gesamtkräfte werden anschließend in das erste Subsystem zurückgeführt und ein neuer Berechnungszyklus startet.

Bewegungsgleichung

Im Subsystem Bewegungsgleichung werden mittels Integration die aktuellen Positions- und Geschwindigkeitsvektoren des Körperschwerpunkts berechnet. Im Gegensatz zu dem Integrator bei dem Modell Laufen werden hier keine Beschleunigungen als Eingänge in das System eingeführt, sondern Kräfte verwendet, die innerhalb dieses System erst in Beschleunigungen umgerechnet werden. Von dem eingehendem Vektor ($F_x$,$F_y$) (Eingang 1) wird hier zunächst der Vektor der Erdanziehungskraft abgezogen. Der y-Wert dieses Vektors besteht aus dem Produkt aus Masse ($m$) und Erdbeschleunigung ($g$). Da die Erdbeschleunigung nur senkrecht zu dem Bezugssystem (x-Komponente) wirkt, wird der x-Wert des Erdanziehungkraftvektors auf Null gesetzt, um die Kraft in x-Richtung unverändert zu lassen. Somit wird nur die wirkende Kraft in diesem System betrachtet. Aus der allgemeinen Formel $F = m * a$ kann durch Umstellen die Beschleunigung ermittelt werden:

$$a_x = \frac{F_x}{m} $$ $$a_y = \frac{F_y - (m*g)}{m}$$

Der Integrationsvorgang ähnelt nun sehr der Integration aus dem Modell Laufen. Die resultierende Beschleunigung wird, mit dem externen Startwert der Anfangsgeschwindigkeit $v_0$ integriert, die erhaltene Geschwindigkeit aufgetrennt, mit der $v_xPlus$-Komponente in x-Richtung summiert und die so entstehende aktuelle Geschwindigkeit mit dem externen Startwert $x_0$ noch einmal integriert. Somit werden die Positionskoordinaten berechnet. Für weitere Berechnungen werden aus dem System die Vektoren der aktuellen Geschwindigkeit und der aktuellen Position ausgegeben.

Zustandsberechnung

Beim zweibeinigen Laufen ist es wichtig, zu ermitteln, welchen Zustand das System gerade einnimmt. Das Subsystem Zustandsberechnung berechnet also, in welchem Zustand sich das Modell gerade befindet. Dies kann „Fuß aufsetzen“, „Fuß abheben“, „neuer Schritt“ sein. Des Weiteren werden die Schrittweite, die Schrittanzahl, sowie die Fußkoordinaten berechnet.

Landing (Touch Down Condition)

Um zu ermitteln, wann ein Fuß aufsetzt, wird eine Aufsetzbedingung (TakeDown) eingeführt. Für die Berechnung dieser müssen zunächst, wie bereits beim Modell Laufen, die Landehöhen $x_L$ und $y_L$ berechnet werden. Die Berechnung dieser wird im Subsystem Landing durchgeführt, funktioniert in gleicher Weise wie vorher und ist im Blockschaltbild in Abb. 2 dargestellt.

<imgcaption image2|Landebedingung> </imgcaption>
Wiederum ist der Winkel, mit dem der Fuß den Boden berührt fest vorgegeben ($\alpha_0$), sowie die Ruhelänge $L_0$ der Feder ebenso fix. Beide Werte sind als Startparameter in den Anfangsbedingungen vorgegeben. Aus diesen Werten kann dann berechnet werden, in welchen Abstand sich der jeweilige Fuß beim Aufsetzen vor oder hinter dem Körperschwerpunkt befindet. Die geometrischen Beziehungen sind in Abb. 3 dargestellt.

<imgcaption image3|Berechnung der Landehöhen> </imgcaption>

Subsystem: TakeDown

Um zu überprüfen, ob die Feder den Boden berührt, genügt es, die aktuelle Höhe (Eingang 2) mit dem im Subsystem Landing berechneten Wert (Eingang 1) zu vergleichen. Ist die aktuelle Höhe kleiner als die Landehöhe, so wird durch den Block Hit Crossing eine 1 ausgegeben.
Die aktuelle Fußposition kann durch die x-Koordinate des KSP und dem Abstand vom KSP zu dem $Fuß_1$ berechnet werden (s. Abb. 3):

$Fuß_x=KSP_x + L_x$

Analog dazu lässt sich die Schrittweite $d$ berechnen:

$d=d_x + L_x$

Zu beachten ist, dass sich bei jedem Schritt das Bezugssystem ändert. Der $Fuß_1$ in Abb. 3 ist bei dem nächsten Schritt der hintere Fuß und umgekehrt.

Subsystem: Neuer Schritt

Verschwindet die Geschwindigkeit der Punktmasse in y-Richtung, so bedeutet dies, dass die Masse des Modells entweder einen Hochpunkt oder einen Tiefpunkt erreicht hat und die Bewegungsrichtung sich umkehrt. Dies passiert bei jedem Schritt zweimal. Definiert wurde in dieser Simulation, dass ein neuer Schritt beginnt, wenn die Geschwindigkeit von einem positiven Vorzeichen auf ein negatives wechselt, sich also an einem Hochpunkt befindet. Zu diesem Zeitpunkt wird der Trigger neuer Schritt ausgelöst und ein Impuls ausgegeben, der den Schrittzähler um einen Wert erhöht.

Kraftberechnung

In diesem Subsystem werden in Abhängigkeit der jeweiligen Phase die wirkenden Kräfte der Feder und optional des Dämpfers und des Aktuators berechnet. Bei der Berechnung unterscheidet das System Gangzyklen, bei denen entweder abschnittsweise beide Beine auf dem Boden (double support phase) oder solche, bei denen ein Bein auf dem Boden und das andere in der Luft ist (single support phase). Die „double support phase“ beschreibt also den Fall, bei dem, während des Gehens beide Beine Bodenkontakt haben, die „Single support phase“ hingegen beschreibt die übrigen Phasen des Gehens und das Rennen, bei denen sich jeweils ein Bein in der Luft befindet und das andere Bodenkontakt hat. Die beiden Subsysteme „Motionequation1“ und „Motionequation2“ berechnen die Kräfte, die bei den verschiedenen Gangzyklen auf die Punktmasse einwirken. In Subsystem 2 werden diese dann auf das linke und rechte Bein verrechnet.

<imgcaption image4|Übersicht zur Kraftberechnung> </imgcaption>
In den Subsystem Motionequation 1 und 2 wird zusätzlich ermittelt, wann das jeweilige Bein aufkommt (TakeDown) oder abhebt (TakeOff). Bei der Ermittlung dieser Bedingungen werden jeweils Triggerimpulse ausgegeben. Diese Triggerimpulse sollen dazu genutzt werden, die Berechnung der jeweiligen Phasen des Beines zu starten und zu beenden. Dafür reichen jedoch Impulse, also kurzfristig auf den Wert 1 springende Signale nicht aus, da die Berechnung nur aktiviert ist, solange das Signal den Wert 1 besitzt. Um also ein Siganl zu generieren, das den Wert 1 annimmt, sobald das Bein aufkommt und auf den Wert Null zurückspringt, wenn das jeweilige Bein wieder abhebt, muss in Matlab ein zusätzliches m-File (setActive) eingerichtet werden, das die Signale entsprechend den TakeDown- und TakeOff-Impulsen schaltet. Dieses m-File trägt den Namen setActive und ist im Folgenden exemplarisch dargestellt:

<imgcaption image5|Matlab Funktion setActive> </imgcaption>
Zu Beginn der Simulation wird die Variable $k$ mit 0 initialisiert. Diese Variable $k$ beschreibt das Schaltsignal, das die Berechnung eines Beines entsprechend den Phasen schaltet. Das Schlüsselwort „persistent“ ermöglicht es den Wert der Variable solange zu speichern, bis ein neuer Schaltimpuls eingeht. Ein Impuls der Eingangsvariable $u$ setzt das Schaltsignal auf den Wert 1 und $v$ bringt das Signal wieder auf den Wert Null. In Abbildung 2 ist dies anhand von Graphen veranschaulicht. Der erste Graph enthält den Trigger, der das Schaltsignal auf den Wert 1 setzt (Variable $u$). Der zweite Graph zeigt die Zeitpunkte, an denen das Schaltsignal durch die Variable „v“ wieder auf 0 gesetzt wird. Das Ergebnis ist im unteren Graphen (Schaltsignal $k$) zu sehen. Zwischen den beiden Trigger-Zeitpunkten der Variablen $u$ bzw. $v$ bleibt das Signal konstant auf dem Wert 0 oder 1.

<imgcaption image6|setActive; 1: u; 2: v; 3:k> </imgcaption>
Mit Hilfe dieses Schaltsignals kann nun die Kraftberechnung der Beine an- und ausgeschaltet werden, indem die berechnete Kraft mit dem jeweiligen Schaltsignal multipliziert wird.
In dem sich anschließenden Subsystem Addition Kräfte werden beide Federkräfte addiert. Glechzeitig ist hier festgelegt, welches Bein 1 oder 2 nun die Kraft des linken oder rechten Beines ist. Somit ist es möglich die Kräfte der einzelnen Beine und die gesamte Federkraft einzeln zu betrachten. Bein 1 berechnet nämlich nur die Kräfte des hinteren Beines, welches aber je nach Position im Zyklus das linke oder rechte Bein darstellen kann. In dem Subsystem Dämpfer, Aktuator wird für jedes Bein separat der Kraftanteil des Dämpfers bzw. Aktuators hinzuaddiert.

indexmenu_n_3

adp_laufrobotik/adp_2012_ws_group2/laufmodelle/gehen.txt · Zuletzt geändert: 28.11.2022 00:58 von 127.0.0.1


Warning: Undefined variable $orig_id in /is/htdocs/wp1019470_OPI92FFHXV/www/wikiLehre/lib/plugins/openas/action.php on line 232