PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kreisbogen Linearisierung



Manf
18.12.2006, 09:20
Die Bewegung der Beine der Standbeesten von Theo Jansen https://www.roboternetz.de/phpBB2/viewtopic.php?t=25253 ist durch eine Konstruktion mit Gelenken bestimmt die durch 11 Längenangaben beschrieben wird. Wie es aussieht wird dabei eine Drehbewegung über einen möglichst großen Winkelbereich in eine gleichmäßige Linear- Bewegung umgesetzt. Da jeweils 3 Beinpaare zusammenarbeiten wird jedes für mindestens 120° verantwortlich sein.

Im vorliegenden Fall soll eine Konstruktion bestimmt werden mit der eine Kreisbewegung von 180° in etwa in eine Linearbewegung umgesetzt wird. Sie enthält neben Gelenken eine drehbare Führung.


https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=1178

Die dargestellte Konstruktion soll die Bewegung der blauen Kurbel auf einem Halbkreis symmetrisch zur Mitte, (so gut wie möglich) in eine lineare Bewegung am anderen Ende der braunen Stange umsetzen. Die braune Stange ist in der drehbaren grünen Hülse geführt.

Die Bewegung die dabei entsteht soll (so gut wie möglich) nicht nur auf einer Geraden liegen sondern auch pro Drehwinkel die gleiche Strecke abfahren.

Für die Konstruktion sind a die Hebellänge der Kurbel und b der Abstand der Kurbelachse und der Drehachse der grünen Führung in Bezug auf c zu bestimmen.
Manfred

PicNick
18.12.2006, 13:58
Du meinst, mit ein paar Hebeln dazu etc. und Anleihen beim Herrn Peaucellier (oder so ähnlich) ?

Jon
18.12.2006, 14:03
Du meinst mit c=100 wahrscheinlich cm?

Ein Lösungsweg fällt mir gerade nicht ein, aber ich werde mal meine Vater fragen :)

jon

Manf
18.12.2006, 14:25
Du meinst mit c=100 wahrscheinlich cm?
Die Größen a, b und c sollen in einem Verhältnis stehen. Man kann sie wie vorgeschlagen auf c normieren, in Prozent von c, oder eben umrechnen, das wäre dann ein kleinerer Schritt.
Ich habe gehört, dass es die Konstruktion öfter mal gegeben haben soll, so in der Größe von 100-200mm für c.



Du meinst, mit ein paar Hebeln dazu etc. und Anleihen beim Herrn Peaucellier (oder so ähnlich) ?
Die Konstruktion ist so wie sie dargestellt ist schon fertig.
Eine Erläuterung zum Peaucellier Apparat gibt es hier: http://www.ies.co.jp/math/java/geo/hantenki/hantenki.html


http://www.ies.co.jp/math/java/geo/hantenki/hantenki1.gif
Er ist schon ein bisschen ähnlich aber anders. Bei ihm wird pro Winkel der Tangens des Winkels an gerader Strecke abgefahren, im obigen Beispiel soll die Strecke pro Winkel in etwa konstant sein. Der Unterschied ist in der Mitte gering, bei der Aussteuerung um bis zu +-90° wird er dann schon erheblich.
Manfred

HannoHupmann
18.12.2006, 19:12
Anstatt für Prüfungen zu lernen hier kurz mein Lösung. Ich hab nicht nachgeprüft ob es stimmt.

Zunächst kann man sich verdeutlichen, dass es reicht den Bereich zwischen 0° und 90° zu betrachten. Diesen wiederrum kann man in zwei Fälle zerlegen.
Fall 1: Der Zapfen auf der Scheibe ist parallel zur Bewegungsachse
Fall 2: Der Zapfen ist Senkrecht auf zur Bewegungsachse.

Zur Verdeutlichung hab ich ein Bild in der Draufsicht gemalt:

http://www.fh-augsburg.de/~hanno/Roboter/Rechnung.jpg

Betrachten wir zunächst Fall 1:

Die Strecke d beschreibt den Abstand des Drehpunktes (grüne Punkt in der Mitte der Stange, wird mit B bezeichnet) und der Bewegungsachse (roter Pfeil). Die braune Stange ändert ihre Länge nicht sie hat die feste Länge c. Der Radius der Scheibe wird mit a festgelegt. Der Abstand von B zum Mittelpunkt der Scheibe mit b.

Um die Länge d zu bestimmen brauchen wir also:
sin (alpha) = d / c* => d = c* sin (alpha) [Gleichung I]mit c = c* + c** [II]
und sin (alpha) = b / c** [III]
[III] in [II] => c = c* + b /sin (alpha) => c* = c - b / sin (alpha)
in [I] eingesetzt: d = (c - b/sin(alpha)) sin(alpha) [IV]


Nun betrachten wir den sehr viel einfacheren Fall 2:
d = c - (a+b) [V]

Somit lässt sich Gleichung [IV] und [V] gleichsetzen indem d elimniert wird.
==>
c - (a+b) = ((c-b/sin(alpha)) sin(alpha)
c - a - b = c sin(alpha) - b
c - a = c sin(alpha)
a = c - c sin(alpha)

Damit ist es erst mal nicht relevant wie lange b ist, bzw. c bestimmt a. B ist nur relevant für die länge der Bewegungsachse. Dafür die Gleichugen hab ich aber nicht mehr aufstellen wollen.

allerdings kann man sin (alpha) durch entsprechende Längen ausdrücken wenn man möchte.

Jon
18.12.2006, 19:17
Ich habe meinen Vater gefragt...
Der hat des net gerafft!!
Jetzt hoffe ich, dass es hier ein ordentliches Ergebins gibt. Mich interessiert das nämlich schon.

jon

Manf
18.12.2006, 21:16
@Hanno,
vielen Dank für den Ansatz und vor allem auch die schönen Zeichnungen. Die Prüfungs-Vorbereitungen sollst Du natürlich nicht unterbrechen, - andererseits, - je nach Mentalität, mir haben kurze(!) Unterbrechungen eher geholfen.

Der Ansatz geht sehr in Richtung der Beschreibung einer analytischen Lösung. Man benötigt zur Lösung sicher auch eine Beschreibung beispielsweise mit dem Strahlensatz. Bis zur Auswertung der Zielbedingungen: möglichst gerade und möglichst linear mit dem Winkel wird man damit aber wohl nicht kommen. (Man weiß ja nie was vielleicht doch irgendwie geht.)

Was man vielleicht sehr elegant mit einem analytischen Ansatz machen könnte wäre, die beiden Variablen a und b durch eine analytische Verknüpfung mit einer Näherung aus einer der beiden Zielsetzungen auf eine zu reduzieren. Das wäre aber nicht der einzige Lösungsweg.

@Jon,
Ich habe von der Kinematik gehört und sie hat mich interessiert. Ich habe sie dann beschrieben und ich fand sie ganz interessant. Ich würde mich auch freuen, wenn sonst schon jemand davon gehört hat und etwas darüber erzählt.

Was wäre "ein ordentliches Ergebins" eine Angabe wie man die Verhältnisse wählen soll damit die Bedingungen auf 1% genau eingahalten werden? auf 1% wäre das möglich? oder doch noch viel genauer? zwei Bedingungen auf dem ganzen Bereich?
Manfred

Manf
19.12.2006, 10:30
Theo Jansen beschreibt im Video seine Lösung der Optimierungsaufgabe so:

... So I had to find another strategy which was the evolution theory. I put into the atari 1500 of this random lengths of tubes and then he found out which ones were looking more or less like this shape. And the 100 best ones got the privilege to multiply themselves. So the tubes are copied and assembled to 1500 new combinations which won the last race. And that went on day and night for months the atari was working on it. And then there came 11 numbers which I call the holy 11 numbers which could let the thing walk. ... https://www.roboternetz.de/phpBB2/viewtopic.php?p=236736#236736

Immerhin hat er 11 Längen zu bestimmen mit den Zielfunktionen möglichst gerade, möglichst gleichmäßig in der Geschwindigkeit und wohl auch über einen möglichst großen Winkel.

Im vorliegenden Fall hat man die gleichen Zielfunktionen, der Winkelbereich wurde schon vorgegeben. Es sind hier aber nur zwei Längen zu bestimmen. Der Lösungsraum ist nicht 11-dimensional sondern 2-dimensional.

Wenn a und b nicht negativ und nicht größer sind als c sind dann ist der Lösungsraum eine Fläche von 100 mal 100 auf der der beste Punkt gefunden werden soll, mit a+b < 100 bleibt ein Dreieck.
Manfred

Manf
19.12.2006, 16:53
In der numerischen Mathematik hat man bei vielen Aufgaben die Lösung selbst oft schneller als man das Problem formuliert und die Lösbarkeit sichergestellt hat.

Falls jemand sich die Funktion mit den Parametern ansehen möchte, im ECXEL sheet ist die Funktion aufgeschrieben mit den Parametern a, b und c links oben. Wenn man 10-20 Wertepaare für a und b eingesetzt hat wird man bald erkennen wo die Lösung ungefähr liegt. Die grüne Führung ist im Nullpunkt, der Kreis ist links.
Manfred

jeffrey
20.12.2006, 01:23
hi,
die einfachste antwort ist wohl a=0 ;-) , dann liegen alle punkte auf einer geraden und der abstand ist bei gleichem winkel auch immer gleich.
mfg jeffrey

jeffrey
20.12.2006, 01:30
noch als ergänzung zum oberen nicht ganz ernst gemeinten beitrag, man sollte wohl schon nen mindest bewegungsweg vorgeben. oder eine mindestgröße für a, sonst führt ein möglichst kleines a, auch zu kleinen absoluten fehlern. oder man betracchtet den relativen fehler.
gute nacht jeffrey

jeffrey
20.12.2006, 01:56
Und nomal hallo,
ich hab des ganze jetzt mal spaßeshalber mit matlab berechnet, dabei habe ich festgelegt, dass a und b >1 sein müssen und folgendes gütekriterium zugrundegelegt: J =(xdiffsum+diffdysum)/dyges; wobei xdiffsum die summe aus den quadraten der einzelnen abweichungen zum mittleren x wert ist und diffdysum die summe der quadrate von der abweichung der mittleren schrittlänge in y-richtung ist.
matlab sagt dann:
Optimaler Wert Zielfunktional: 0.00058242
a: 14.2496
b: 23.8089

jetzt aber entgültig gute nacht jeffrey

Manf
20.12.2006, 06:44
Ein schönes Ergebnis, dann kann ich ja gleich weitermachen. Mit dem Gütekriterium findet man einen guten Wert. Wichtig ist, dass die beiden Bedingungen miteinander kombiniert werden. Da keine anderen Forderungen bestehen, sollten die Abweichungen für die Richtungen x und y die gleiche Gewichtung erhalten. Der Ergebniswert wird auf die Länge der Linie bezogen.

Für die x- Richtung ist die Bestimmung der Abweichung klar, hier sollen ja alle Werte gleich sein. Bei der Y Richtung kann man die Schrittweite mit der mittleren Schrittweite vergleichen oder die Position mit der Sollposition anhand der jeweiligen Treppenfunktion mit konstanter Schrittweite. Der Unterschied führt im vorliegenden Fall zu keiner großen Verschiebung des Optimums.

Anstelle der Minimierung der Summe der Fehlerquadrate kann man auch den größten auftretenden Fehler minimieren.

Interessant wäre dann noch, wie groß die Abweichung von der idealen Line bezogen auf die Länge der Linie ist.

Wenn man also beispielsweise früher einen Linienschreiber gebaut hat bei dem der Messwert mit einer Dreh-Potentiometer-Einstellung kompensiert wurde und auf dem Papierstreifen dann eine Funktion mit einer Auslenkung von 100mm aufgezeichnet werden konnte, wie groß war dann der maximale systematische Fehler aufgrund dieser Konstruktion, (die gesamte Positionsabweichung in x und y Richtung)?
Manfred




Zur Veranschaulichung noch die Kurven für die Positionsabweichungen über dem Winkel für die Werte in x Richtung (blau) in y Richtung (grün) und zusammen (rot). Rechts sind die Werte für die Minimierung des maximalem Fehlers dargestellt, links die Werte nach der oben vorgeschlagenen Optimierung. Sie liegen auch ganz in der Nähe. Je nach Anwendung wird man die Kriterien auch unterschiedlich gewichten.
Manfred

jeffrey
20.12.2006, 11:18
hallo,
auch ein sehr interessanter aspekt ist eine genaue schrittlänge vorzugeben, dann kommen zum teil ganz andere ergebnisse raus. ich hab das mal eingebaut. wenn z.b. die schrittlänge mit 40 vorgegeben wird kommt bei gleichem j folgendes heraus:
Optimaler Wert Zielfunktional: 0.0504809
a: 2.79685
b: 11.9455
mfg jeffrey

Manf
20.12.2006, 12:09
Also speziell bei den zuletzt genannten Werten für a und b ist der Linearitätsfehler (für die y-Werte) 20 mal so groß und die Abweichung von der Geraden (für die x-Werte) 5 mal so groß. Da könnte irgendwo ein Fehler drin sein.
(Man sieht auch bei der Eingabe der Werte oben in EXCEL schon an der Kurve selbst die Krümmung.)
Manfred

Ach so, Du meinst die Länge der geraden Strecke als Vorgabe. Dafür ist die die Konstruktion bei festem Wert für c wenig geeignet. Da sollte man dann besser auch die Länge c anpassen.
Manfred

Manf
21.12.2006, 13:44
Nur um es dann noch abzuschließen.
Die ideale Konfiguration wie sie oben beschrieben ist, mit der Fehlerkurve im rechten Bild, sieht dann so aus:
A = 13,767
B = 23,495
C = 100
Länge der geraden Strecke: L = 73,577
Der maximale systematische Fehler bezogen auf die Läge der geraden Strecke bleibt unter 0,13%, also im Beispiel unter 0,13mm.

Dann hätten wir alles.

Höchstens noch:
Wenn es Hinweise gibt, wie die relativ präzise Funktion erkärt werden kann bin ich interessiert. Zum Glück gibt es die Numerische Mathmatik mit der man das Ergebnis erhält mit denen man weiterarbeiten kann. Welche Systematik dahinter steckt, das wird bei der numerischen Lösung eben nicht aufgeklärt.
Ich hätte nicht gedacht, dass eine Aufgabe mit einem Kreis und einer Geraden zu einer Fehlerfunktion führt die in x- Richtung 4 Nullstellen und in y-Richtung 5 Nullstellen hat.
Bei der Lösung, Variation der Parmeter a und b unter Berücksichtigung des Optimierungskriteriums kommt dann eine Fehlerfunktion heraus die so geglättet ist, dass sie wie es aussieht, mit ihren 6 Maxima den Wert des maximalen Fehlers 6 mal berührt.
Janson sprach bei seiner Aufgabe von "holy numbers", also von etwas was nicht so recht erklärbar ist.
Manfred

HannoHupmann
21.12.2006, 16:26
Wir könnten dem ganzen auch noch einen wirklich interessanten Aspekt hinzufügen, da diese Aufgabe nun ziemlich weit gelöst ist.

Jeder von euch kennt die klassischen Spinnenbeine, welche hier bei etlichen Hexapods verwendet werden. Ich meine jetzt explizit diese mit 3DOF.
Diese werden in der Hüfte gedreht (meist zwischen 0° und 90°) die Fussspitze beschreibt dabei einen Kreisbogen. Um einen Hexapod jedoch ohne Wackeln gerade aus laufen zu lassen MUSS die Spitze eine gerade beschreiben.
Es gilt also den Kreisbogen mittels der Glenke in Schulter und Knie auf eine Gerade umzurechnen.

Meine neue Aufgabe ist nun:
"Wie muss eine Funktion aussehen, die aus der Winkeländerung in der Hüfte die Winkel für Schulter und Knie ermittelt? Dabei sind die Strecke zwischen Hüfte und Knie (A), die Strecke zwischen Knie und Fusspitze (B) als konstant anzunehmen. Der Abstand von Hüftgelenk bis zur linearisierten Geraden (sei D) ist ebenfalls fest."

Für eine saubere Lösung wären alle Spinnenroboterbastler auf ewig dankbar.

PS: Im Prinzip ist ein Algorithmus gesucht, der aus dem Winkel des Servos in der Hüfte die Positionen für Schulter und Knie errechnet.
Allerdings würde ich gerne den Mathematischen Ansatz vor dem Code lösen.

Manf
21.12.2006, 17:16
Meine neue Aufgabe ist nun:
Das ist ja eine gute Aufgabe, aber Du kennst das doch mit dem Quizforum, hier werden pro Thread einzelne Aufagben gestellt deren Lösung der Fragesteller kennt und deren Lösung in wenigen Tagen angegeben wird. Wenn Du einen neuen Thread aufmachst, z.B. in Mechanik oder Projekte dann gib den Link gleich mit an.
Manfred

HannoHupmann
23.12.2006, 09:42
@Manf stimmt da war noch was. Ich hab den Thread neu eröffnet im Mechanik Teil, hier der Link:
https://www.roboternetz.de/phpBB2/viewtopic.php?p=238112#238112

@jeffrey hab ich gemacht, damit wir uns alle einig sind über die Bezeichnungen und weil man das Rad nicht zweimal erfinden muss, hab ich die Bilder aus unserer Wiki zum Thema Spinnenbeine verwendet.

linux_80
23.12.2006, 15:13
Hallo Manf,
kannst Du evtl. die funktionen noch etwas erklären, also wie man auf die Punkte der Linie kommt von den Punkten des Kreisbogens,
den Teil bis zum Pythagoras hab ich noch kapiert, aber das mit dem ..(1-..) ?

Eigentlich dachte ich man kommt hier noch auf eine (ein paar) Funktion(en) mit denen man das von der anderen Seite her berechnen kann, und nicht so per ausprobieren !? :-k

Damit ich über die Feiertage endlich mal zum schlafen komme, und nicht dauernd an dieses Problem hier denken muss ! :-)

Manf
24.12.2006, 10:39
Du meinst Die Funktionen die im EXCEL Sheet:
Der Kreis mit Radius a der um b nach –x verschoben ist hier ist A6 der Wert des Winkels:
B6=a*COS(A6/180*PI())-b
C6=a*SIN(A6/180*PI())
Die Länge c1 von Kreis bis zum Drehpunkt, (=Nullpunkt)
D45=((B6)^2+(C6)^2)^0,5
und die Strecken x und y vom Drehpunkt zur Geraden:
B45=B6*(1-c/$D45)
C45=C6*(1-c/$D45)

Das ist der Strahlensatz für x Werte und für Y Werte:
Es gibt die Länge c1 vom Kreis bis zum Drehpunkt und die Länge c2 = c-c1 von Drehpunkt bis zur Geraden. Die Strecke c2 liegt jeweils auch noch auf der anderen Seite des Nullpunkts, damit Vorzeichenwechsel.
Der Wert xg auf der Geraden in Abhängigkeit von xk auf dem Kreis ist:
xg = - xk * c2/c1
xg = - xk * (c-c1)/c1
xg = xk * (c1-c)/c1
xg = xk * (1 – c/c1)
entsprechend für y
(etwas kurz, von unterwegs, hoffentlich rechtzeitig für die Feiertage)
Manfred