Hexapon Bein als Vektor < Gleichungssysteme < Lineare Algebra < Hochschule < Mathe < Vorhilfe
|
Hallo,
Ich habe einen Hexapod (sechsbeiniger Roboter) selbst gebaut, und möchte die Beine nicht simpel vorprogrammierte Raumpunkte anfahren lassen um den Roboter zu bewegen, sondern die Beine sollen sich entlang einer Linie im Raum bewegen. Die "imaginäre linie" im Raum werde ich vorgeben. Eine bestimmte Funktion wird einen Vektor erzeugen, der entlang dieser linie zeigt. Jetzt kommen wir zur eigentlichen aufgabe. Diesen direkten Vektor werde ich also vorgeben und im während des Bewegungsablaufs variieren [mm] \vektor{ x \\ y \\ z } [/mm] (später berechnen).
Nach einigen Zeichnungen konnte ich ein Gleichungssytem zur Berechnung des Beinvektors herleiten. Jetzt möchte ich ihn jedoch zu den Winkeln umstellen, da es diese sind, die ich für die Servos vorgeben muss.
[mm] \vektor{ x \\ y \\ z }=20*\vektor{Cos(\gamma) \\ Sin(\gamma) \\ 0} [/mm] + [mm] 100*\vektor{Sin(\beta)*Cos(\gamma) \\ Sin(\beta)*Sin(\gamma) \\ -Cos(\beta)}+ 120\vektor{-Sin(\alpha+\beta)*Cos(\gamma) \\ -Sin(\alpha+\beta)*Sin(\gamma) \\ Cos(\alpha+\beta)}
[/mm]
Zielvektor = Schultervektor+Oberschenkel+Unterschenkel
Ich habe jetzt schon alles versucht, aber ich bin mit meinem Latein am Ende, da ich zwar drei gleichungen und auch drei Unbekannte [mm] (\alpha, \beta, \gamma) [/mm] habe, aber durch die Sin() und Cos() funktionen
sind es quasi sechs...
Selbst mein Voyage 200 konnte nicht ohne Weiteres eine Lösung finden. Also gibt es meiner erfahrung nach auf direktem mathematischem wege auch keine Lösung.
Ich habe aber noch die bedingungen, dass meine Servos, die das Bein Bewegen, nur maximal 180° rotieren können. also [mm] 0<=\alpha, \beta, \gamma<=180
[/mm]
Man kann zwar Sinus oder Cosinus rauswerfen:
Sin(x)=-Cos(x+90)
-Sin(x)=Cos(x-90)
Jedoch durch die 90° in der Cosinusfunktion bleibt das alte problem. Sechs Unbekannte...
Ich flehe um Hilfe und ich hoffe der Praxisbezug genügt als Motivation.
mfg SirVivor
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:46 So 13.04.2008 | Autor: | abakus |
> Hallo,
>
> Ich habe einen Hexapod (sechsbeiniger Roboter) selbst
> gebaut, und möchte die Beine nicht simpel vorprogrammierte
> Raumpunkte anfahren lassen um den Roboter zu bewegen,
> sondern die Beine sollen sich entlang einer Linie im Raum
> bewegen. Die "imaginäre linie" im Raum werde ich vorgeben.
> Eine bestimmte Funktion wird einen Vektor erzeugen, der
> entlang dieser linie zeigt. Jetzt kommen wir zur
> eigentlichen aufgabe. Diesen direkten Vektor werde ich also
> vorgeben und im während des Bewegungsablaufs variieren
> [mm]\vektor{ x \\ y \\ z }[/mm] (später berechnen).
> Nach einigen Zeichnungen konnte ich ein Gleichungssytem
> zur Berechnung des Beinvektors herleiten. Jetzt möchte ich
> ihn jedoch zu den Winkeln umstellen, da es diese sind, die
> ich für die Servos vorgeben muss.
> [mm]\vektor{ x \\ y \\ z }=20*\vektor{Cos(\gamma) \\ Sin(\gamma) \\ 0}[/mm]
> + [mm]100*\vektor{Sin(\beta)*Cos(\gamma) \\ Sin(\beta)*Sin(\gamma) \\ -Cos(\beta)}+ 120\vektor{-Sin(\alpha+\beta)*Cos(\gamma) \\ -Sin(\alpha+\beta)*Sin(\gamma) \\ Cos(\alpha+\beta)}[/mm]
>
> Zielvektor = Schultervektor+Oberschenkel+Unterschenkel
>
> Ich habe jetzt schon alles versucht, aber ich bin mit
> meinem Latein am Ende, da ich zwar drei gleichungen und
> auch drei Unbekannte [mm](\alpha, \beta, \gamma)[/mm] habe, aber
> durch die Sin() und Cos() funktionen
> sind es quasi sechs...
> Selbst mein Voyage 200 konnte nicht ohne Weiteres eine
> Lösung finden. Also gibt es meiner erfahrung nach auf
> direktem mathematischem wege auch keine Lösung.
>
> Ich habe aber noch die bedingungen, dass meine Servos, die
> das Bein Bewegen, nur maximal 180° rotieren können. also
> [mm]0<=\alpha, \beta, \gamma<=180[/mm]
>
> Man kann zwar Sinus oder Cosinus rauswerfen:
> Sin(x)=-Cos(x+90)
> -Sin(x)=Cos(x-90)
> Jedoch durch die 90° in der Cosinusfunktion bleibt das alte
> problem. Sechs Unbekannte...
>
> Ich flehe um Hilfe und ich hoffe der Praxisbezug genügt als
> Motivation.
Hallo,
es gelten noch die Beziehungen [mm] sin(\alpha [/mm] + [mm] \beta)=sin(\alpha)*cos(\beta)+cos(\alpha)sin(\beta) [/mm] und [mm] sin(\alpha)=\pm\wurzel{1-cos^2\alpha}
[/mm]
Klingt nicht wirklich ermutigend, oder?
Viele Grüße
Abakus
>
> mfg SirVivor
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:30 So 13.04.2008 | Autor: | Sirvivor |
> Hallo,
> es gelten noch die Beziehungen [mm]sin(\alpha[/mm] + [mm]\beta)=sin(\alpha)*cos(\beta)+cos(\alpha)sin(\beta)[/mm]
> und [mm]sin(\alpha)=\pm\wurzel{1-cos^2\alpha}[/mm]
> Klingt nicht wirklich ermutigend, oder?
>
> Viele Grüße
> Abakus
[mm]sin(\alpha[/mm]+[mm]\beta)=sin(\alpha)*cos(\beta)+cos(\alpha)*sin(\beta)[/mm]
das steht zwar auch in meinem Tafelwerk, aber es ändert nichts an der problematik, dass Sin() und Cos() in der Gleichung enthalten sind. Ich müsste alle Sin() oder Cos() einheitlich ersetzen, nur eines von beiden oder unter Umständen auch Tan(), aber wie kann ich dass machen? welche equivalente gibt es zu Sin() und Cos() im bezug auf Tan()?
Übrigens: wie ist die bedeutung cos²() oder Tan³() zu verstehen?
(cos())²???
mfg SirVivor
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:20 Di 15.04.2008 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|