Hilfe bei Gyro->Servo Steuerung...
LTD 15.12.2010 - 22:35 1268 1
LTD
frecher fratz
|
Ich bin gerade dabei mit meinem Arduino zu experimentieren, mit dem Ziel irgendwann die Weltherrschaft an mich zu reißen und mir einen balancierenden Roboter zu bauen. Für letzteres habe ich bereits den Grundstein gelegt und mir einen Wii-Motion-Plus Controller organisiert. Der Controller ist bereits mit dem Board verbunden und alle drei Achsen funktionieren soweit einwandfrei (von der Ungenauigkeit des 2-Achs-Gyro für Pitch/Roll mal abgesehen). Yaw funktioniert ohne die zwei anderen Achsen auch wunderbar, wird aber mit jeder weiteren berechneten Achse ungenauer. Werden alle drei Achsen berechnet, ist das Ausleseergebnis kaum mehr akkurat.
Mein Problem besteht nun in folgender Überlegung: Drehe ich den Baustein um 90° nach rechts, danach um 90° nach oben, dann 90° gegen den Uhrzeigersinn und schlußendlich mit einer weiteren 90° Drehung zurück in die Ausgangsposition, hängt mein Servo um 90° verdreht nach rechts fest. -> klar, ich habe 90° Yaw benutzt, danach nurmehr Pitch+Roll.
Ich als mathematisches Genie habe mir nun folgendes überlegt: ich nehme einen Ursprung, um den eine Einheitskugel (gibts soetwas? Sozusagen das Volumen-Pendant zum Einheitskreis) liegt und bewege mein Servo von nun an auf der Kugeloberfläche, die durch irgendetwas (Geographische Koordinaten?!) berechnet werden können sollte.
Tja und aus dieser waghalsigen Überlegung heraus, habe ich - genau garnichts geboren. Kann mir einer von euch da weiterhelfen? Ich bekomme vom Gyro pro Achse (-90) - 90 als Wert, je nach Drehung. Das heißt ich brauchte nur eine Hemisphere in der ich mich bewegen kann...
Eine Formel würde mir schon reichen =), programmieren könnte ich das dann selbst!
Thx a lot
|
Taltos
Here to stay
|
muss zugeben ich weiß jetzt nicht genau was genau das problem ist, aber vielleicht helfen dir euler winkel weiter: http://de.wikipedia.org/wiki/Eulersche_WinkelEinziges Problem: der Gimbal-Lock, wenn man durch die Gimbal-Lock, welcher aber bei dir wahrsch. eh nicht relevant wird, und den man durch Quaternionen los wird. Was willst du jetzt eigtl genau erreichen? Arduino: Uno, oder welches?
|