A, B und C-Achse sowie Verkabelung
Stefan Falk (23.11.2014, 21:01:31)
Sauber! Kannst Du noch ein paar Details über die Berechnungen verraten? Gruß, Stefan
david-ftc (24.11.2014, 14:26:26)
Das wird jetzt etwas kompliziert, aber ich kann versuchen, es zu erklären:
Man muss sich vorstellen, dass die Mittelpunkte der Drehscheiben der A, B und C Achse drei geometrische Punkte A, B und C darstellen. Um den Punkt A(0|0) malt man nun gedanklich einen Kreis mit dem Radius AB. Punkt C stellt den “Zielpunkt” dar, die Position, die der Roboter anfahren soll (Wir gehen jetzt mal davon aus, dass es keinen Vakuumsauger gibt.) Um diesen Punkt C(x|y) mit den Koordianten der Benutzereingabe x und y zeichnet man gedanklich ebenfalls einen Kreis mit dem Radius BC. Der Schnittpunkt der beiden Kreise ergibt die Koordinaten des Punktes B (Um zu verstehen, wie das funktioniert, sollte man sich etwas in Kreisberechnungen einarbeiten, dazu findet man im Internet viele weiterführenden Beiträge). Zurück zum Roboter: Die Koordinaten A, B und C sind nun bekannt. Die Position der Arme des Roboters wird durch Winkel (alpha, beta und gamma) angegeben.
Ich hoffe, meine Erläuterungen waren verständlich. Gruß, David
david-ftc (24.11.2014, 14:33:04)
Ich hätte beinahe noch etwas vergessen: Ich hatte beschrieben, dass die Vakuumsauger stets nach unten gerichtet sind. Auch dies lässt sich berechnen: Bekannt sind die Winkel alpha und beta wie oben beschrieben. Der Winkel gamma lässt sich über die Winkelsumme im Dreieck errechnen: alpha+beta+gamma = 180° Umgeformt bedeutet das: 180-alpha-beta = gamma.
Wie man diese Winkel genau definiert, bleibt dem Programmierer überlassen. Ich habe Winkel alpha beispielsweise so definiert, dass wenn Achse A den Endschalter berührt, alpah gleich 45° ist. Im Moment ist alpha jedoch 135°
Bei meinen Überlegungen zu dem Programm hat mir auch das Geometrie Programm GeoGebra sehr geholfen: http://www.geogebra.org/
Gruß, David