PDV und Robotik/ Lehre / WS2005 / EES-EEI / Roboteransteuerung
Roboteransteuerung
Der Mitsubishi RM-501 besitzt 5 Gelenk-Motoren und einem
Greifer-Motor. Die Gelenk-Motoren sind mit einem
Schrittmotorinterface ausgestattet. Dieses besteht für jeden
Motor aus 3 Leitungen: Takt, Richtung und Enable. Dabei werden die
Leitungen für Takt und Richtung im Multiplex-Verfahren für
alle Motoren gemeinsam verwendet. D.h., daß die Auswahl des
Motors, für den Takt- und Richtungsleitungen Gültigkeit
haben sollen, durch Setzen der entsprechenden Enable-Leitung erfolgt.
Um mit einem Motor einen Schritt zu fahren, muß folgende Schreibsequenz angewendet werden:
I. Wahl der Schrittrichtung (Inkrementieren/Dekrementieren)
durch entsprechendes Setzen der Richtungs-Leitung,
II. Setzen
der Takt-Leitung (gesetzt = 0),
III Selektieren des Motors
durch Setzen seiner Enable-Leitung (gesetzt = 0).
IV.
Deselektieren des Motors durch Rücksetzen seiner
Enable-Leitung (rückgesetzt = 1).
V. Rücksetzen der
Takt-Leitung (rückgesetzt = 1),
VI. Wie Schritt III. und
IV.
Um mehrere Motorschritte auszuführen, müssen diese
Schritte so oft wiederholt werden, wie es die Anzahl der
Motorschritte erfordert. (Hinweis: die Zeiten in der Abbildung sind
nicht maßstabsgetreu.)
Abbildung 1: Steuersequenz für einen Motorschritt
Die Leistungselektronik zählt Schritte, die nicht sofort
ausführbar sind, in einem internen Vorwärts/Rückwärts-Zähler
mit. Diese ausstehenden Schritte werden dann im Anschluß an den
derzeit in Abarbeitung befindlichen Schritt mit maximaler
Geschwindigkeit ausgeführt. Dadurch kann sich ein Motor auch
dann bewegen, wenn er bereits deselektiert wurde. D.h. die
Abarbeitung findet asynchron zum Programmablauf statt.
Jeder Motor verfügt über einen Endabschalter, der die
"Null-Position" eines Gelenks anzeigt. Noch ausstehende
Schritte werden ohne Rücksicht auf den Zustand dieses
Endabschalters ausgeführt! Die folgenden mechanischen
Gelenkbegrenzungen für die einzelnen Motoren sind definiert als
maximal ausführbare Schritte in Vorwärts-Richtung (gemessen
von der "Null-Position", in der ein Endabschalter gerade
eben noch berührt wird).
Motor Gelenk Schritte Auflösung/Impuls
M0 Körper 0…-12000 0,025º
M1 Schulter 0...-5200 0,025º
M2 Ellbogen 0...3600 0,025º
M3,M4 Handneigung 0...4800 0,0375º
M3,M4 Handdrehung -9600...9600 0,0375º
Die beiden Gelenke der Hand werden jeweils durch die Motoren M3
und M4 angesteuert. Ein Vorwärtsschritt des
Handneigegelenks wird durch Inkrementierung des Schrittwertes für
M3 und (quasi-)gleichzeitige Dekrementierung des Schrittwertes für
M4 erreicht. Ein Vorwärtsschritt des Handdrehgelenks wird durch
Inkrementierung der Schrittwerte für M3 und M4 erreicht.
Bedenken Sie bitte, daß die Leistungselektronik ohne
Überprüfung die ihr zur Ausführung übergebenen
Schritte auch über die Gelenkbegrenzungen hinaus ausführt.
Dies kann zu schwerwiegenden Schäden am Roboter führen.
Etwas komplizierter ist die Ansteuerung des Greifers. Dem Greifer
muß zunächst eine Ausführungskraft übergeben
werden. Daraufhin kann dem Greifer-Motor der Befehl zur Ausführung,
also der Befehl zum Öffnen bzw. Schließen, gegeben werden.
Nach einer bestimmten Zeit, die ausreicht, um den Greifer zu öffnen
bzw. zu schließen oder die Backen in eine bestimmte Position zu
fahren, wird der Hand die Haltekraft übergeben, mit der die
Backen in ihrer derzeitigen Position gehalten werden sollen oder die
Greiferbewegung gestoppt.
Zur Speicherung der Kräfte dient ein Zwischenspeicher. In diesem Zwischenspeicher können die auf dem Bus anliegenden Daten als Kräfte eingeschrieben werden, indem die zugehörige Enable-Leitung gesetzt wird. Die Daten werden nach dem Rücksetzen der Enable-Leitung gespeichert, bis erneut Daten eingeschrieben werden. Die Daten können im Bereich 0...7 angegeben werden, wobei binär 111 einer großen Kraft und binär 000 einer kleinen Kraft entspricht.
Das Interface zum Hand-Motor besteht aus drei Leitungen:
Ausführen, Richtung und Enable. Im Unterschied zu den
Gelenk-Motoren wird hier durch das Setzen der Ausführungs-Leitung
nicht nur ein Schritt, sondern eine vollständige Bewegung
ausgelöst, die erst dann aufhört, wenn die
Ausführungs-Leitung zurückgesetzt wird. Dabei wird die
Bewegung auch dann fortgeführt, wenn der Hand-Motor bereits
deselektiert wurde. Eine weitere Möglichkeit die Bewegung zu
"stoppen" besteht darin, während der Bewegung eine
kleine Kraft einzuspeichern. Dies kann z.B. dazu verwendet werden,
eine Haltekraft anzugeben.
Zum Öffnen bzw. Schließen des Greifers muß folgende Schreibsequenz angewendet werden:
I. Einspeichern der Ausführungskraft
1. Selektieren des Zwischenspeichers durch Setzen seiner
Enable-Leitung sowie
Angabe der Ausführungskraft durch
Setzen der Daten-Leitungen.
2. Deselektieren des Zwischenspeichers durch Rücksetzen seiner Enable-Leitung
II. Ausführen des Öffnens bzw. Schließens
1. Selektieren des Hand-Motors durch Setzen seiner
Enable-Leitung sowie
Wählen der Richtung durch Setzen der
Richtungs-Leitung.
2. Anstoßen der Bewegung durch Setzen der Ausführungs-Leitung
3. Deselektieren des Hand-Motors durch Rücksetzen seiner Enable-Leitung.
III. Stoppen der Ausführung durch Einspeichern einer Haltekraft
1. Selektieren des Zwischenspeichers durch Setzen seiner
Enable-Leitung sowie
Angabe der Haltekraft durch Setzen der
Daten-Leitungen.
2. Deselektieren des Zwischenspeichers durch Rücksetzen seiner Enable-Leitung
alternativ
III. Stoppen der Ausführung ohne Haltekraft
1. Selektieren des Hand-Motors durch Setzen seiner
Enable-Leitung sowie
Wählen der Richtung durch Setzen der
Richtungs-Leitung.
2. Beenden der Bewegung durch Rücksetzen der Ausführungs-Leitung
3. Deselektieren des Hand-Motors durch Rücksetzen seiner
Enable-Leitung.
Um Überlastungen der Leistungselektronik zu vermeiden,
sollten Haltekräfte in der Regel ? 2 gewählt werden. Nach
dem Öffnen sollte sinnvollerweise die Haltekraft 0 angegeben
werden, bzw. die Alternative des Stoppens ohne Haltekraft verwendet
werden. Bei Angabe einer Ausführungskraft ? 2 wird wegen der
großen Reibungskräfte, die überwunden werden müssen,
im Normalfall keine Bewegung ausgelöst. Ebenso führen die
großen Reibungskräfte dazu, daß Bewegungen mit
großer Kraft schneller ausgeführt werden als mit kleiner
Kraft.
Die Leitungen der Leistungselektronik sind mit dem Steuerrechner
über den Ausgangskanal eines Parallel-Interface verbunden. Die
Belegung der einzelnen Bits ist der Abbildung 2 zu entnehmen. Im
Normalfall ist der im RM-501 eingebaute Steuerrechner mit diesen
Leitungen verbunden. Damit die Leitungen unter Kontrolle des
Echtzeitrechners gesetzt werden können, muß das
MVME-Enable-Bit gesetzt sein. Damit wird gleichzeitig dem im RM-501
eingebauten Steuerrechner die Kontrolle entzogen. Bei Beendigung
eines Programmes muß das MVME-Enable-Bit zurückgesetzt
werden.
Abbildung
2: Bitbelegung des Parallel-Interface-Ausgabekanals
Bedeutung der Bits in Abbildung 2:
MVMEENA: MVME-Enable (1 = Kontrolle Echtzeitrechner, 0 = Kontrolle Steuerrechner)
ZwSpENA: Enable-Leitung des Zwischenspeichers (0 = Enable, 1 = Disable)
HandENA: Enable-Leitung des Handmotors (0 = Enable, 1 = Disable)
MnENA: Enable-Leitung des Motors n (mit n Î 0..4) (0 = Enable, 1 = Disable)
Takt: Takt-Leitung zum selektierten Gelenk-Motor (0 = gesetzt, 1 = rückgesetzt)
Ausf: Ausführungs-Leitung zum Hand-Motor (0 = Bewegung, 1 = Stop)
Richt: Richtungs-Leitung zum selektierten Gelenk-Motor,
(0 =
inkrementieren, 1 = dekrementieren)
Richt: Richtungs-Leitung zum Hand-Motor (0 = Öffnen, 1 = Schließen)
Kraft: Ausführungs- bzw. Haltekraft Î
0..7 die in den Zwischenspeicher eingeschrieben werden soll.
Abbildung 2 ist zu entnehmen, daß es möglich ist,
mehrere Motoren gleichzeitig anzusteuern, indem ihre jeweiligen
Enable-Leitungen gleichzeitig gesetzt werden. Das Setzen und
Rücksetzen des Taktes bzw. die angegebene Richtung gilt dann für
alle selektierten Motoren.
Die Leitungen von den Endabschaltern sind mit dem Steuerrechner
über den Eingabekanal eines Parallel-Interface verbunden. Die
Belegung der einzelnen Bits ist Abbildung 2 zu entnehmen. Im
Gegensatz zu den Leitungen am Ausgangskanal sind diese Leitungen
immer zum Echtzeitrechner durchgeschaltet.
Abbildung 3: Bitbelegung des
Parallel-Interface-Eingabekanals
Bedeutung der Bits in Abbildung 3:
EAn: Endabschalter n (mit n Î
0..4) (0 = losgelassen, 1 = gedrückt)
Ein Zustandsübergang der Endabschalter EA0...EA4 von "losgelassen" nach "gedrückt" wird durch einen Interrupt an das Parallelinterface gemeldet. Wenn im Control-Status-Register des Parallel-Interface das Interrupt-Enable-Bit gesetzt ist, führt das Auslösen eines Endabschalters dazu, daß eine Interruptsequenz angestoßen wird.
Beachten Sie bitte, daß es aufgrund von Störungen vorkommen kann, daß die Elektronik fehlerhaft eine Schalterberührung meldet. Innerhalb der Unterbrechungsbehandlung muß durch Auslesen des Eingabekanals geklärt werden, ob sich die Schalterstellungen wirklich verändert haben.
Letzte Änderung: 19.10.2005 |
|