Hallo Edding,
hab ihr euch schon einmal Gedanken über die erzielbare Genauigkeit des Roboters gemacht?
Ich werfe hier mal das Thema Positioniergenauigkeit und Wiederholgenauigkeit in den Raum.
Ihr sprecht von einer Konstruktion aus Kohlefaserrohren....das klingt sehr vielversprechend. Ebenso ist das Handlingsgewicht von 400g ein realistischer Wert für einen Hobby-Roboter.
Wenn aber für die Mechanik entsprechend Aufwand betrieben wird, dann sollte an den Antrieben nicht gespart werden. Für eine Genauigkeit von unter 5mm am Endeffektor sind Servos vollkommen ungeeignet.
Diese haben nur eine potentiometrische Erfassung des Gelenkwinkels und dieser ist über 6 Achsen viel zu Ungenau. Dies führt bei dem fertigen Roboter zu folgenden Effekten:
A) Positioniergenauigkeit bezogen auf die Achswinkel von minimal 5mm, alles darunter ist Schwachsinn. Selbst das wird bei anderen Roboterkonfigurationen (bei 6 Achsen kann ein Zielpunkt x,y,z angefahren werden, aber die Orientierung A,B,C geändert werden. D.h. der Endeffektor bleibt am gleichen Punkt, aber der Arm dreht sich um den TCP) schwer sein.
B) Bei Dynamischen Roboterbewegungen oder externe Krafteinwirkung schwingt der Roboter bis zum schätzungsweise 10 -20 mm um die Sollposition, da die Winkelinformation der Potis zusammen mit dem Lageregler Werte darunter nicht richtig auflösen können.
C) Bei Bahnbewegungen, z.B. Linearbewegungen, fährt der Roboter keine Linie, sondern eiert von A nach B. Sieht nicht hübsch aus und ist auch zu nichts zu gebrauchen...
Nebenbei haben die Modellbauservos auch noch ordentlich Getriebespiel.
Außerdem hab ihr noch einen anderen Effekt, die fehlende Positionsrückmeldung. Schreibt ihr ein Programm mit festen Anfahrpunkten A->B->C->D, und die Strecke sind unterschiedlich lang, wisst ihr nicht wann der Roboter im Punkt B angekommen ist. Dies muss aber so sein, denn wenn ihr Position C an den Servocontroller vorab schickt, wird Position B einfach überschrieben, und der Roboter bricht seine aktuelle Bahn ab, überspringt Punkt B und fährt gleich Punkt C an. Das heist ihr müsst abhängig von der Distanz der Punkte Wartezeiten in eurem Programm implementieren...
Was kann getan werden, um die Effekte zu reduzieren...
- Externe Positionsgeber -> Absolutencoder, Inkrementalgeber anstatt der Potis
- Entsprechende Getriebeübersetzungen, welche spielfrei ausgeführt werden, um die Ungenauigkeit der Potis zu vermeiden
- Schrittmotoren mit Zahnriemen.
Wenn ihr mal ein Beipiel für Roboter mit Servos sucht...schaut nach den fertigen Roboterarmen Lyxmotion. Gibts genug Videos bei Youtube. Und diese haben maximal 100g Gewicht am Endeffektor und sehen schon von der Bewegung/Genauigkeit grauenhaft aus....
Ich würde euch zu Schrittmotoren in Verbindung mit Zahnriemen raten...da kann man einiges Machen, und die Kosten halten sich in Grenzen. Vorteil ist, das hier alls Schrittmotoren in dem Grundkörper des Roboters untergebracht werden können. Somit kann der ganze Arm zwar Steif, aber auch relativ leicht gebaut werden....
Beispiele für Roboter mit Schrittmotoren und Zahnriemen:
http://www.youtube.com/watch?v=tkDbm...eature=related
http://www.youtube.com/watch?v=2Dq5C...eature=related
Als Hinweis:
Es gibt durchaus Servos die für diese Aufgabe zu gebrauchen sind...das sind spezielle Robotikservos mit integriertem optischen Encoder, Mosfets, anpassbaren Reglerparametern sowie einer Positionsrückmeldung. Kosten dann allerdings 200 Euro/Stück.
Gruß