also das in eine Formel zu packen hatte ich versucht aber das war mir zu unübersichtlich. nun sind es 11 schritte zum Ziel.
Bekannt:
• die Länge des Oberarms (Oc)
• die Länge des Unterarms (Uc)
• die Höhe in der sich der Roboter bewegen soll (h)
• die Spurbreite = wie weit außerhalb des Roboters setzen die Füße auf (Spur)
Drehwinkel tau in der Schulter –Vorwärtsbewegung!
aus dem Drehwinkel tau ergibt sich die Länge Sa (Abstand Schulter - Bodenpunkt des Beines)
cos (Tau) = spur / Sa
Die Hypothenus des Substitutionsdreiecks (Sa, Höhe, Sc) ergibtSa = spur / cos (Tau) [1]
Der Winkel Sbeta Cos (Sbeta) = Höhe/ScSc = wurzel ( Sa^2 + h^2) [2]
und Cos (beta1)= - (Oc^2-Uc^2-Sc^2)/ ( 2*Uc*Sc)Sbeta= arccos((Höhe/Sc) [3]
beta1=arccos(Oc^2-Uc^2-Sc^2)/ ( 2*Uc*Sc) [4]
In Armdreieck (Oberarm, Unterarm,Sc) ist Ubeta berechenbar
Mit Ubeta kann einen Winkel im Ellenbogen Ualpha berechenUbeta = Sbeta+beta1 [5]
Ualpha = 90 – Ubeta [6]
Über die Strecke Uc und den Winkel Ubeta lässt sich Ua berechen Cos (Ubeta) = Ua/Uc
Damit ist Ob gegeben – da Sa = Ob + Ua istUa = cos(Ubeta) * Uc [7]
Ob = Sa- Ua [8]
Nun kann man Obeta berechen; sin(Obeta) = Ob/Oc]
Folglich ist der EllbogenwinkelObeta= arcsin(Ob/Oc) [9]
Ellenbogenwinkel= Obeta+Ualpha [10]
Und der Schulterwinkel-Oberarm
Voilá alle Winkel sind aus den gegeben Werten (Oalpha = 90 – Obeta [11]
Uc, Oc sowie h und spur ) berechnet.
servo1, Schulter: Tau muss man vorgeben: läuft von -tau bis +tau oder wie auch immer
servo2, Schulter-Oberarm:Oalpha = 90 – Obeta
servo3, Ellenbogen:Ellenbogenwinkel= Obeta+Ualpha
ich würde nun am Anfang eine Initialisierung auf dem µC laufen lassen und die 3 Werte in einer Tabelle ablegen.
gruß
downad
Lesezeichen