Motiontracking für Schrittmotoren

Hallo zusammen!

Ich bin gerade dabei einen simplen 6DOF Roboterarm zu entwickeln (Hobbyprojekt). Ich würde gerne Schrittmotoren für den Antrieb verwenden und einen Arduino für die Ansteuerung dieser.

Als erstes komplexeres Feature würde ich es gerne schaffen, den Roboter von einem Ort an den anderen zu ziehen, so dass der Roboter diese Bewegung anschließend wiederholt (bzw. an den Ort "fährt").

Hierfür müsste man ja die Veränderungen der Schrittmotorpositionen messen.
Hat zufällig jemand einen guten Ansatz, wie man dies erreichen kann?

Ein Schrittmotor ist natürlich auch ein Generator. Theoretisch könntest du die Indiktionsimpulse während der erzwungenen externen Bewegung zählen. Gut wäre es, wenn es dir gelingt, den Schrittmotor in der Lernphase vom Treiberchip zu trennen, weil dieser evtl. den Pegel und die Signalform extrem stört. Über die Polarität der Impulse könntest du die Drehrichtung bestimmen ... Müsste man mal Versuche machen.

Von der Auswertung her einfacher, aber technisch deutlich aufwändiger wäre es wohl, an den Schrittmotoren inkrementale oder Absolutwert-Geber (Winkelsensoren?) anzubringen ...

Es gibt schon Gründe dafür, warum die meisten Hobby-Robot-Arme mit Servos aufgebaut werden.

Ich sehe da große Probleme.
Um die Schrittmotore bewegen zu können müssen sie ohne Versorgungsspannung sein. Dann glaube ich aber nicht daß der Arm in seiner position bleibt sondern sein Gewicht einige Motore dreht.
Grüße Uwe

uwefed:
Ich sehe da große Probleme.
Um die Schrittmotore bewegen zu können müssen sie ohne Versorgungsspannung sein. Dann glaube ich aber nicht daß der Arm in seiner position bleibt sondern sein Gewicht einige Motore dreht.
Grüße Uwe

Hallo Uwe,
vielen Dank für den Hinweis! Hättest du vielleicht eine alternative Antriebsart, die dies ermöglicht?

Grüße Julian

Julian28010:
... alternative Antriebsart, die dies ermöglicht?

Was die Kraft angeht, die Du vermutlich benötigst bzw. wünschst, würde ich einen Schrittmotor mit Getriebe empfehlen. Die lassen sich allerdings schlecht bewegen, auch wenn die Energie weg ist. Die solltest Du zum „Lernen“ entkoppeln können.

Um bei entkoppelten Motoren Winkel zu messen, könntest Du Potis/Trimmer benutzen.

Wie sieht es mit der Mechanik des Arms aus? Wie und aus was für einem Material möchtest Du das bauen?

Gruß

Gregor

Hi

Alternativ das Arm-Ende mit Sensoren ausstatten, Die einer vorgegebenen Kraft nachgeben.
Bei mehreren kg Armgewicht wird ein Entkoppeln wohl dazu führen, daß man von dem Arm erst erschlagen wird und dann lernt 'Er', daß die neue Position 'strack nach Unten' sein soll :wink:

Also irgendwie dem Arm 'sagen', was man von Ihm will und mit den Steppern diesen Befehl ausführen.
Dabei vll. gerade zu Anfang nicht wirklich mit den Fingern die Sensoren stimulieren, da ein falsch befehligter Stepper hier keine Verwundeten machen wird.

Hätte hier (unbespielte) Wii-Nunchuk's - vll. könnte man damit das Soll vorgeben, 'Achsen genug' sollte das Ding haben.

MfG

Eigentlich genügt es ja (meist) vollkommen, dass im Lernprozess das Ende des Arms an eine ganz bestimmte Poition geführt wird.

Also muss gar nicht der ganze Arm in jedem einzelnen Gelenk gebogen und gezerrt werden, sondern nur eine Art "Sensor-Gnubbel" am Ende des Armes entsprechend bedient werden - der Arm folgt dann (elektrisch angetrieben) diesem "Ziehen und Drücken".

Welche genaue Position die Gelenke zwischen Basis und Endpunkt einnehmen, kann man theoretisch der Software überlassen ...

Ich würde den traditionellen Weg (teach in) gehen, und den Arm zuerst per Joystick steuern. Dann per Knopfdruck wichtige Positionen speichern, damit sie später wieder angefahren werden können. Beim Speichern im EEPROM bleiben diese Positionen auch nach dem Ausschalten erhalten.

Statt Joystick könnten auch Schalter am Ende des Arms bzw. an jedem Gelenk angebracht werden. Dann besteht aber die Gefahr von Quetschungen. Einen 4-dof Joystick hatte ich schon mal, im Web findet man sogar einen Bauplan für einen 6-dof Joystick. Da kommt es drauf an, wieviele Freiheitsgrade der Arm hat. Ein 6-dof Arm ist ja schon recht anspruchsvoll, wie schwer wird der denn, und wieviel Drehmoment müssen die Motoren aufbringen?