PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche Projekthilfe bei 5 Achsen Roboterarm mit Schrittmotoren



FrankSchulze
04.04.2015, 21:14
Hallo,

Nach einigen erfolgreichen Projekten mit 3D Druckern und CNC
Fräsmaschinen (alle mit Arduino mega 2560 und Ramps1.4)möchte ich nun
einen 5-6 Achsigen Knickarmroboter auf Basis eines Industrieroboters
bauen.

Ich möchte dazu auf jeden Fall Schrittmotoren mit Getriebe verwenden und
bin nun auf der Suche nach einer günstigen Lösung für die Steuerung um
dies umzusetzen. Am liebsten wäre es mir wenn ich dies auch wieder mit
dem atmega 2560 und Ramps 1.4 (5achsen) hinbekommen könnte.
Es gibt viele Projekte mit Servos aus dem Modellbaubereich, dies möchte
ich aber auf keinen Fall.
Leider bin ich auf dem Gebiet der Software eine Niete und weiß deshalb
auch nicht wo ich eine Firmware herbekomme und wie ich diese
konfigurieren muß, das zum Beispiel alle 5 Achsen einer Richtung folgen.

Ich würde mich sehr freuen wenn mir jemand helfen könnte, der so etwas
schon gebaut hat, und bin über jede Idee für Hardware, firmware und
natürlich auch Software zur Steuerung dankbar.

LG,Frank

i_make_it
05.04.2015, 11:20
Leider ist die Software genau das wichtigste an einem Knickarmroboter.

Aber vom Prinzip her ist das auch nichts anderes, wie eine Bahnsteuerung für 3D-CNC.
IM ersten Schritt kann man erst mal vom Teach in ausgehen. Punkt 1 Teachen dann Punkt 2 Teachen, der Roboter speichert für jeden Punkt die Achsstellungen und fährt dann das ganze einfach ab.
Ohne Bahnsteuerung fährt jede Achse los und hält bei Erreichen der Zielposition an, unabhängig davon was die anderen Achsen machen.
Mit Bahnsteuerung werden alle Achsen so geregelt, das sie gleichzeitig starten und gleichzeitig die Zielposition erreichen. Damit erhält man eine reproduzierbare Bahn im Raum.
Der Nächste Schritt ist dann das man eine Bahn über Zwichenpunkte laufen lassen kann.
Am Startpunkt wird von 0 Geschwindigkeit gestartet, am Endpunkt wieder auf 0 gebremst. Die anderen Punkte werden mit voller Geschwindigkeit durchfahren.
Wegen der möglichkeit das Raumpositionen durch mehr als eine Kombination von Achsstellungen erreichbar sind, sollte man mit Achsstellungen beginnen.
Aus meiner Erfahrung, sowohl mit Selbstbau als auch meinem Scorbot ER 5 plus, empfehle ich Motoren mit Encodern. Im Gegensatz zu Steppern gibt es da nicht das Problem der Schrittverluste und damit das der Arm eine ganz andere Position anfährt als geplant und wo rein knallt.

FrankSchulze
05.04.2015, 14:04
Super,
3 Foren und die erste vernünftige Antwort.

Als erstes mal... wenn ich soweit komme, das ich dem Roboter Positionen teachen kann...bin ich schon mehr als zufrieden.
Die Sache mit den encodern leuchtet mir ein. Eigentlich wollte ich dies umgehen, weil ich davon ausgehe das es damit um einiges komplizierter wir da, wie ich schon geschrieben habe, ich mich mit der Programmieerung nicht auskenne.
Ich habe mich mal nach einer kostengünstigen version umgeschaut und diese hier gefunden.
http://www.ebay.de/itm/400P-R-Inkremental-Drehgeber-DC5-24V-Weitspannungsnetzteil-6mm-Welle-/181603670626?pt=LH_DefaultDomain_77&hash=item2a486c1a62

Nun stellt sich mir folgende Frage,: muß ich nun trotzdem stepper verwenden? Könnte mir vorstellen das es auf jeden fall besser ist und was für eine Steuerung soll ich verwenden?

LG,Frank

i_make_it
05.04.2015, 19:30
Man kann natürlich Motoren und Drehgeber einzeln kaufen, es gibt aber z.B. von Pololu für einen Stückpreis von 40 USD in der 37Dx57L Reihe einen 12V DC 5A Getriebemotor 131:1 mit integriertem 64 CPR Encoder und 80 RPM.
https://www.pololu.com/product/1447
Also eine Auflösung von 64 Digit pro Motorumdrehung und 8384 Digit pro Umdrehung am Getriebeabgang (2,328 Digit pro Bogenminute).
Bei 80 Umdrehungen pro Minute oder 1,33 Umdrehungen pro Sekunde (480° pro Sekunde). Was ohne weitere Unterstzung schon viel zu schnell für einen Vertikal Knickarm ist.
Ähnliche Motoren sind auch bei meinem Eshed Robotec Scorbot ER 5 plus verbaut.
Da sind dann pro Achse nur noch 2 Endschalter verbaut wovon einer jeweils auch als Referenzschalter dient.

Da ein einzelner Stepper 2 H-Brücken benötigt und ein DC Motor nur eine, sind die Treiberstufen entweder billiger oder können doppelt so viele Motoren bedienen.
Die H-Brücken sollten auf jeden Fall eine Motorstromüberwachung zulassen, Damit man über Motorstrom und Motorspannung das Drehmoment ermitteln kann.
Spätestens beim Greifer kann man dann nicht nur nach Öffnungsweite (Position) sondern auch nach Greifkraft (Rohes Ei kontra Stahlklotz) arbeiten.
Ideal ist eine H-Brücke die 4 Quadranten Betrieb zulässt und Motorstrom und -Spannungsmessung zulässt.

Man kann also jede Achse erst mal aufbauen und mit den Positionsdaten einen Teachbetrieb realisieren. Wenn man dann beim Programmieren besser wird kann man dann nach und nach weitere Funktione (Bahnsteuerung etc.) implementieren.

Das in der Beschreibung von:
http://www.ebay.de/itm/400P-R-Inkrem...item2a486c1a62 (http://www.ebay.de/itm/400P-R-Inkremental-Drehgeber-DC5-24V-Weitspannungsnetzteil-6mm-Welle-/181603670626?pt=LH_DefaultDomain_77&hash=item2a486c1a62)
steht:
"AB-Zweiphasen zum Zählen der durch die Drehung der Reibscheibe und optional identifizierbaren Richtung erzeugten Impulssignals."
gibt mir zu denken.
Reibscheibe weist darauf hin daß das Teil verschleist.
Von daher bin ich dem gegenüber voreingenommen.

FrankSchulze
05.04.2015, 19:54
Vielen Dank für diese Info.
Mit was für einer Steuerung könnte ich dies den realisieren? Bis jetzt hatte ich nur nach Stepper Controllern geschaut.

i_make_it
06.04.2015, 15:05
Also H-Brücken gibt es einige, grade für Mobilroboter. Was man davon einsetzt, ist ja abhängig von den Motoren die man schlußendlich verwendet.
Motorspannung, Dauerstrom und Spitzenstrom sind dann die zur Auswahl nötigen Daten.

Welchen Controller man nimmt ist eigentlich egal. Für einen 6-Achs Vertikal Knickarm Roboter braucht man dann halt 6 PWM Ausgänge, mindestens 6 Digitalausgänge für "direction" (12 wenn man Hochsetzsteller und Tiefsetzsteller, Also 4 Quadrantensteller realisieren möchte)
http://de.wikipedia.org/wiki/Vierquadrantensteller
, mindestens einen Digitalausgang für "enable" (6 wenn man jede Achse einzeln ansteuern will), 12 Digitaleingänge für A und B von den 6 Drehgebern und 12 Digitaleingänge für die Endschalter/Referenzschalter.
Zusätzlich empfehlen sich noch IOs oder ein Bus für die Kommunikation mit externen Systemen.
Alleine für die Motoren müssen halt schon mal 6 PID Regler drauf laufen.
Oder aber man macht es wie bei Driveunits von professionellen Robotern, wo man für je 1 bis 2 Achsen ein Board mit Controller und Motortreiber hat auf dem der PID Regler läuft und ein übergeordneter Controller der aller Achsboards ansteuert und das Roboterprogramm verarbeitet.

Als erstes sollte man sich auf jeden Fall mit der Regelungstechnik für die Motoren und deren Implementierung in Software befassen (von einfacher 2-Punkt Regelung bis zum PID Regler und ggf. noch Fuzzylogic Regler).
Danach mit Compilerbau, da die Verarbeitung eines Roboterprogramms (Textdatei mit Steuerbefehlen und Positionsdaten für die Achsen) eines Parsers bedarf und das ein Teilgebiet des Compilerbaus ist.

i_make_it
07.04.2015, 14:33
So ich habe mal meine selbst entwickelte H-Brücke rausgesucht.
Mit: Enable, DIR, Brake und PWM kann das Modul 5 Zustände annehmen.
1) Enable=0
DIR=beleibig
Brake=beliebig
PWM=beliebig
= Motor aus.

2) Enable=1
DIR=0
Brake=0
PWM=>0%on
= Tiefsetzsteller Antrieb in eine Richtung

3) Enable=1
DIR=1
Brake=0
PWM=>0%on
= Tiefsetzsteller Antrieb in entgegengesetzte Richtung

4) Enable=1
DIR=1
Brake=1
PWM=>0%on
= Hochsetzsteller, Bremsbetrieb in beide Richtungen

2) Enable=1
DIR=0
Brake=1
PWM=beliebig
= Leerlaufbetrieb (kommt bei einem Vertikal Knickarm Roboter nicht besonders gut wenn keine Selbsthemmung oder Bremsen vorhanden sind)

Bild kann ich erst von meinem eigenen Rechner hochladen.