PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Welcher Motor mit hoher Positionsgenauigkeit



Blackh
14.08.2021, 14:15
Hallo,

ich habe gerade angefangen mich ein wenig mit Arduinos zu beschäftigen und einen Kurs zu machen, ich würde irgendwann gerne einen Roboterarm bauen da ich einen 3D Drucker sowieso habe.

Nun suche ich einen Motor(Schritmotor/Servo) der eine sehr sehr hohe Genauigkeit aufweist.

Da der Roboterarm sollte ca 50-75 cm Lang sein und Sachen mit einem Durchmesser von 6mm greifen können, sprich mit einem Servo der 180 Grad in 1 Grad Schritten hat brauch ichs gar nicht probieren :D

Bis jetzt glaube ich das ein digitaler Servo hierfür das beste ist, Leider weiß ich beim Servo kaufen nicht auf was ich achten soll bzw wo ich die Positionsgenauigkeit des Servos sehe, ist das der Puls des Servos?

Habt ihr irgendwelche Ideen was für das Projekt funktionieren würde?
Bzw welche Servos dafür infrage kommen würden oder einfach wie ich ermittel welcher Servo genau ist und welcher nicht?


Vielen dank :)

shedepe
14.08.2021, 17:56
Hallo,
als erstes musst du dir überlegen: Wie viel Drehmoment brauchst du im worst case. D.h. arm maximal ausgestreckt (Hängt von der exakten Konstruktion ab) und das bei der maximalen spezifizierten Last. Dazu solltest du dir Gedanken über die maximale Verfahrgeschwindkeit machen.
D.h. um deine letzte Frage zu beantworten. Schau dir an was für Servos in deinem Investitionsbereich liegen. Daran kannst du abschätzen wie viel Drehmoment,bzw. welche Geschwindigkeit für deinen Geldbeutel möglich sind. Dann kannst du anfangen mit deinen Spezifikationen zu Rechnen und mal anfangen zu konstruieren.
Einfach einen Servo kaufen und den irgendwie zusammen zu basteln bringt dich zwar auch irgendwo hin, aber vermutlich bleibst du dann unter deiner Vorstellung.

Rabenauge
15.08.2021, 06:53
Digitale Servos sind nicht präziser als analoge.
Die halten nur die Soll-Position unter Last etwas besser, da sie (meistens) stärker sind.
Für einen Roboterarm dieser Grösse kommen, wenn überhaupt, wohl nur Jumbo-Servos in Frage, da die Hebelverhältnisse äusserst ungünstig sind (am ersten Gelenk dürften etliche kg/cm zusammenkommen).
Die Stellgenauigkeit wirst du aber durch ausprobieren ermitteln müssen- die geben Servo-Hersteller eigentlich nie an.

Erfahrungswert aus dem RC-Modellbau: wenn ich was gutes und präzises brauch: Savöx oder Corally.
Darunter braucht man da nicht anfangen...
Für dich wären eventuell die Dynamixel interessant...

oberallgeier
15.08.2021, 09:05
.. oder einfach wie ich ermittel welcher Servo genau ist und welcher nicht ..Für solche eigenen Messungen hatte ich mir einen Servomesstester (klick (https://www.roboternetz.de/community/threads/62904-Servomesstester-%28Servotester-und-%C2%96messaufbau%29)) gebaut.

Anfangen würde ich heute mit meinen Überlegungen anders, früher - die sind weiter oben schon angeklungen.
o Welche Lasten (Drehmoment - Nm - nicht Gewicht) will ich bedienen?
o Welche Beschleunigungen/Verzögerungen sollen auftreten? = Multiplikatoren für Lasten!
o Wie genau soll der TCP positioniert werden (Tool Center Point - gedachter Punkt vorn am Roboterarm).
o Welche Wiederholgenauigkeit des TCP - bei UNTERschiedlichen Lasten - ist erwünscht/gefordert
o usf

Dazu gibts ein paar bekannte Werte.
Siehe dazu dies (klick wieder) (https://rn-wissen.de/wiki/index.php?title=Servos&redirect=no) im hiesigen RN-Wissen (hamwa extra für solche Fragen zusammengetragen):
Positioniert wird ein Servo üblicherweise mit Pulsen von ein bis zwei Millisekunden für die Positionen irgendwo zwischen "Anfang" und "Anfang + 180°" bzw. "Anfang" und "Anfang - 180°". Eine gute Servosteuerung wird das in Zeitscheibchen (siehe PWM) von rund 0,4 µs hinbekommen - also etwa zwei- bis dreitausend Schritten. Das bedeutet schon mal, dass EINE Zeitscheibe theoretisch einen Weg (Stellungsunterschied des Servohebels) von 180°/2500 bedient.

Je nach Servo/Hersteller ist dessen interne Software mit unterschiedlichen Reglern ausgerüstet. Gute Regler können Vorgaben bis auf (fast/nahe) Null Abweichung anfahren. Oft bleibt aber (z.B. PD-Regler) eine bestimmte Abweichung. Ausserdem sprechen viele Servos erst auf größere Zeitscheiben als 0,4 µs an. Um so etwas halbwegs zu messen wurde der schon erwähnte Messtester gebaut. Der zeigte mir, dass meine einfachen Servos erst so ab etwa 2 µs bis 4 µs Pulsbreiten-Unterschied "in Bewegung" kamen. Dazu kommt noch, dass bei ner Schwenkbewegung die vom Servo gefahrene Position der Vorgabe einige Zeit hinterher hinkt.

Mit nem geeigneten Testgerät kann man nun also die Dynamik messen: Anfahrbeschleunigung, Zieleinlauf-Verzögerung, Geschwindigkeit, zeitliche Abweichung zur Signalvorgabe. Beispiel hier (https://www.roboternetz.de/community/threads/62904-Servomesstester-%28Servotester-und-%C2%96messaufbau%29?p=619401&viewfull=1#post619401). Auch viele weitere Details (z.B. für Fragen zur Kinetik) sind messbar wie z.B. Sprungantwort (wichtig für die Bewegungsabläufe), bleibende Regelabweichung etc etc.

Der genannte Tread (und andere lehrreiche ähnliche) zeigt was an Servotests möglich ist. WENN man weiß, was einem bei der eigenen Problemstellung wichtig ist.

Die eigene Problemstellung/Aufgabenstellung/Pflichtenheft/Lastenheft wirst Du Dir selber erarbeiten müssen. Andeutungen gabs ja.

Defiant
15.08.2021, 09:12
Ja, die Dynamixel kommen z.B. im OpenMANIPULATOR (https://emanual.robotis.com/docs/en/platform/openmanipulator_x/overview/) des gleichen Herstellers zum Einsatz. Hab ich auch auf meinen kleinen (https://hackaday.io/project/25406-wild-thumper-based-ros-robot/log/178713-adding-a-manipulator) gebaut. Die Dynamixel haben einen stolzen Preis und benötigen eine spezielle Ansteuerung, haben aber dafür eine hohe Positionsgenauigkeit. Vielleicht nichts, was man als Arduino-Anfänger ansteuern möchte.

Mit ein wenig Aufwand kann man natürlich auch die Standard-Servos entsprechend aufrüsten. (https://hackaday.com/2021/03/19/robot-arm-achieves-amazing-accuracy-with-just-servos/)

Hast du denn mal als alternative über Schrittmotoren nachgedacht, aber auch hier stellt sich die Frage nach dem Drehmoment..