-
-
Erfahrener Benutzer
Roboter Genie
Hallo HannoHupmann,
ich habe mich zu Anfang auch mit dem beschäftigt, was so an heftigen mathematischen Konstrukten im Web kursiert, dann aber festgestellt, das man das eigentlich nicht braucht, da jede unserer Achsen am Hexabotbein nur einen Freiheitsgrad hat.
Mein Hexapod bewegt sich in einem 3D-Koordinatensystem (logisch) jedes Bein weiß, wo Marvin ist, in wo es selber in Relation zu Marvins Mittelpunkt ist. Zudem weiß jedes Bein, wo am Boden es hinzielen soll. Nun geht es in einfachen Schritten los mit der Berechnung der Servowinkel:
1.) Hüftservo: ganz einfacher arcustangens um die Vorne/Hinten-Richtung des Bodenpunktes im Verhältnis zum Bein zu bestimmen
2.) Distanz zwischen dem Ende der Hüfte zum Bodenpunkt berechnen. Danach richtet sich der Fußservo, der ja sozusagen mit den beiden unteren Beinsegmenten das Dreieck aufspannt zwischen Hüftende und Bodenpunkt. Das geht per Cosinussatz.
3.) Um den Schulterservo zu berechnen nun den Winkel "Hüftende/Bodenpunkt" mit dem gefundenen Winkel des Fußservos verknüpfen.
Damit steht Marvin, geht aber noch nicht. Dazu bekommen die drei Beincontroller ATMEGA32 (je einer zuständig für 2 Beine) in einem bestimmten Rhythmus ein Signal vom Hauptcontroller, die Bodenpunkte anhand ihrer aktuellen Position neu zu berechnen.
Der Hauptcontroller (ATMEGA644) schickt den Beincontrollern ständig Marvins aktuelle (gewünschte) Position und seinen Winkel im Raum, sowie die Beinhubsignale. Den Rest machen die Beincontroller, was sehr angenehm ist, da dem Hauptcontroller so einiges an Zeit bleibt, um sich anderen Aufgaben zu widmen.
Ich hoffe, das war wenigstens ansatzweise verständlich 
Edit: gibt ja noch die Köpfe ...
Die Köpfe "blicken" auf eine Position im Raum (xyz), die sie vom Hauptcontroller mitgeteilt bekommen. Kommen keine Änderungen vom Hauptcontroller, gleichen sie alle Bewegungen von Marvin aus, und bleiben auf den selben Punkt gerichtet. Marvins Position und Winkel bekommen sie genau so mitgeteilt, wie auch die Beincontroller.
Das Praktische an der ganzen Sache ist nicht nur die bessere Manövrierbarkeit des Hexapods da er viel genauer, sondern einfach die Tatsache, das die Beincontroller so "selbstständig" sind. Der Hauptcontroller braucht nurnoch anzugeben, wo Marvin hin soll und wo er hingucken soll - den Rest macht die IK 
Ach ja, fast vergessen ... zuerst wackelte Marvin arg beim Laufen, bis mir dann mal das Lichtlein aufging, das immer zwei Beine gleichzeitig nen Hubsignal kriegen müssen, und zwar immer zwei gegenüberliegende Beine (vom Mittelpunkt aus gesehen), damit sich der Bot bei seinen Bewegungen nicht aufschaukelt.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen