Stabilitätspolygon

Hi,

folgendes Problem: Ich arbeite an einer Simulation eines 6-Beinigen Laeufers. Die Simulation ist momentan rein kinematisch. Um trotzdem festzustellen, wie es um die statische Stabilitaet bestellt ist, verwende ich ein Stabilitätspolygon. Dazu nimmt man alle aufsatzpunkta und verbindet sie zu einem dem Polygon mit dem groestmoeglichen Flaecheninhalt. Dann ueberprueft man, ob sich der Schwerpunkt im Stabilitaetspolygon befindet.
So, die Funktion, die das bewerkstelligt, bekommt nun eine Reihe von Punkten. Ich muss diese Punkte erst in eine Liste sortieren - das ist mein eigentliches Problem - wie stelle ich also fest, ob ein Punkt ein Eckpunkt des Stabilitaetspolygons ist (oder ob er etwa im Inneren dieses Polygons liegt und somit unberuecksichtigt bleibt) und zwischen welchen beide anderen Eckpunkten er liegt?

Gruss

Thorsten

Hi Thorsten,

verwende ich ein
Stabilitätspolygon. Dazu nimmt man alle aufsatzpunkta und
verbindet sie zu einem dem Polygon mit dem groestmoeglichen
Flaecheninhalt.

wenn ich das richtig verstanden habe, verbindest Du nicht *alle* Input-Punkte zu einem Polygon, sondern nur die *äußersten*. Du hättest dann ein den Informatikern wohlbekanntes Problem zu lösen, nämlich das der „konvexen Hülle“ (N>=3 Nägel an beliebigen Orten in ein Brett schlagen; Gummiband um alle Nägel spannen und loslassen. Wie kann man die Form berechnen, die es annimmt?)

Ich weiß nur, daß zu diesem Problem mehrere Algorithmen existieren. Ich habe mal http:\www.web.de mit dem Suchinput „Konvexe Hülle Algorithmus“ gefüttert und etliche Treffer erhalten, die einen gehaltvollen Eindruck machten. Mit den Verfahren selbst kenne ich mich nicht aus und kann Dir deshalb nicht mehr zu sagen – tut mir leid.

Mit freundlichem Gruß
Martin

Hi,

„konvexen Hülle“ (N>=3 Nägel an beliebigen Orten in ein Brett
schlagen; Gummiband um alle Nägel spannen und loslassen. Wie
kann man die Form berechnen, die es annimmt?)

Genau, damit komme ich bestimmt weiter!

tut mir leid.

Quatsch, vielen dank fuer das Stichwort!

Gruss

Thorsten

P.S.:
Habs gerade bei Google eingegeben, also damit komme ich betimmt weiter.

Hi,

noch zus"atzlich: Nimm eine gen"ugend grosse Menge linearer Funktionen und sortiere nach den Funktionswerten. Maxima/Minima liegen immer auf dem Rand der konvexen H"ulle, und im generischen Fall (=fast immer) sind es Eckpunkte. Brich ab, wenn weitere linearkombinationen keine neuen Punkte mehr liefern.

Ciao Lutz

Einfach nur Interesse-halber:

Wie sieht denn das 6 Bein aus?? Geht es um eine allgemeine Lösung, oder um einen Spezialfall, um die mathematisch exakte Simulation, oder um ne geschwindigkeitsoptimierte Spielerei??

Wenn Dein 6 Bein so aussieht, wie ich mit 6 Beiner vorstelle, d.h. alle 6 Beine vom Körper weg gestreckt und die Beine sich nicht überkreuzen können, dann könnte ich mir vorstellen, dass man dein Stabilitätsproblem mit einfacher logik lösen kann.

1 2
3 4
5 6

Wenn nur 2 Beine Bodenkontakt haben, dann muss der Schwerpunkt auf der Verbindungsgeraden liegen.
Wenn 3 Beine Bodenkontakt haben -> kein Problem.
Wenn 4 Beine oder mehr Bodenkontakt haben würde ich nach folgender Regel vorgehen:
Wenn die Beine 1 UND 3 Bodenkontakt haben, kann Bein 3 ignoriert werden. Das gleiche gilt für 2/6 und 4.
Kann mir nicht vorstellen, dass die Beine 3 bzw. 4 bei Bodenkontakt der beiden anderen Beine, die in der selben Linie sind, so einen gravierenden Einfluss haben, dass sie über stabil oder instabil entscheiden, oder??? (Äh, wohlgemerkt, in dem Spezialfall, dass die Beine alle wie bei Spinnen vom Körper weg zeigen)

Gruß
Benky

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

Wie sieht denn das 6 Bein aus?? Geht es um eine allgemeine
Lösung, oder um einen Spezialfall, um die mathematisch exakte
Simulation, oder um ne geschwindigkeitsoptimierte Spielerei??

Ist eine wissenschaftliche kinematische Simulation einer Stabheuschrecke. Die komplexe inverse Kinematik wird von einem speziell entwickelten kuenstlichen neuronalen Netz berechnet. Geschwindigkeitsoptimierung hat KEINE Prioritaet. Naehere Infos sind unter
http://www.uni-bielefeld.de/biologie/Kybernetik/inde…
zu finden.

Wenn Dein 6 Bein so aussieht, wie ich mit 6 Beiner vorstelle,
d.h. alle 6 Beine vom Körper weg gestreckt und die Beine sich
nicht überkreuzen können, dann könnte ich mir vorstellen, dass
man dein Stabilitätsproblem mit einfacher logik lösen kann.

1 2
3 4
5 6

So ist es momentan geloest. Das funktioniert ordentlich solange alles gut laeuft. Ich benoetige die Funktion allerdings als „Fitnessfunktion“ (da ist eine Art genetischer Algorithmus geplant) zur optimierung des Controllers gerade wenn Probleme auftreten. In Situation, wo die Koordination versagt, kann alles moegliche passieren und gerade dann brauche ich eine solide Bewertung. Darum will ich die Funktion neu - und ordentlich - implementieren.

Gruss

Thorsten

Also, ok. Wenn ich euren Robi so sehe, dann kann es sehr wohl so sein, dass die Beine 3 und 4 Stabilitätsrelevant sind. Was ich trotzdem nicht verstehe, ist die Schwierigkeit, die du damit hast.

Verwende bei der Sortierung doch einfach die Reihenfolge im Uhrzeigersinn. 2 4 6 5 3 1
Bodenkontakte:

1 - äh, sehr unwarscheinlich. Dürfte nur vorkommen, wenn der Robi in unwegsamem Gelände stolpert.
2 - dito
3 - unproblematisch. Einfach die Positionen der Beine mit Bodenkontakt entsprechend der oben genannten Reihenfolge angeben.
4 - unproblematisch. siehe 3
5 und 6 - hier ist jeweils zu überprüfen, ob Bein 3 bzw. 4 zu berücksichtigen ist, oder nicht. Am Beispiel 3:
Hat nur eines der beiden Beine 1 und 5 Bodenkontakt, dann auf jeden Fall berücksichtigen.
Haben 1 und 5 Bodenkontakt, dann kannst du mit ganz einfacher Vektorarithmetik den Winkel zwischen 1-3 und 1-5 bestimmen. Das Vorzeichen gibt dann an, ob 3 zu berücksichtigen ist, oder nicht.

Mit den Beinen 246 geht das dann analog.

Oder???

Äh, könnt ihr mir mal so ein Exemplar zuschicken, damit ich das überprüfen kann ;o)))

Gruß
Benky

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

Also, ok. Wenn ich euren Robi so sehe, dann kann es sehr wohl
so sein, dass die Beine 3 und 4 Stabilitätsrelevant sind. Was
ich trotzdem nicht verstehe, ist die Schwierigkeit, die du
damit hast.

Ja, das stimmt schon … aber es geht nicht um den Roboter (die Abbildung ist vom TU Muenchen Krabbler - mit dem haben wir schon laenger nichts mehr zu tun) sondern um die - kinematische - Simulation. Wenn das Teil aus dem Ruder laeuft, kann alles passieren, auch dass die Beine auf der falschen Seite landen. Der Roboter waere dann natuerlich hin. Aber gerade auf diese Situationen kommt es mir ja an, da ich dafuer Loesungen suchen soll … und die Heuschrecken - um die es ja eigentlich geht - koennen auch sehr viel mehr ab als ein Roboter.
Im Prinzip hast Du natuerlich recht. Da ich das Teil aber schon neu schreibe, will ich da jetzt halt einen Algorithmus verwenden, der in wirklich JEDER Situation vernuenftige Ergebnisse liefert. Das letzte Wort in Sachen Stabilitaetspolygon :smile:
Im Netz gibt es auch jede Menge fertigen Code dazu, ist also nichtmal viel Arbeit, das eben zu implementieren.

Gruss

Thorsten