-
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur zeitdiskreten Steuerung einer Anzahl N antreibbarer Achsen eines Manipulators, insbesondere eines Industrieroboters. Die Erfindung findet Anwendung in der Robotik sowie auch in der Steuerungs- und Automatisierungstechnik.
-
Die (Soll-)Trajektorien antreibbarer Achsen eines Manipulators werden typischerweise offline geplant bzw. berechnet, und dienen dann als Grundlage der Steuerung des Manipulators. Unter dem Begriff „Trajektorie” wird vorliegend eine Funktion der Achspositionen (Bahnpunkte) für eine Achse in Abhängigkeit der Zeit verstanden. Bei Vorhandensein und Verwendung von Sensoren zur Erfassung einer Umgebung des Manipulators, können Änderung der ursprünglich geplanten Trajektorien in Abhängigkeit der von den Sensoren erfassten Umgebung auch online durchgeführt werden. Die Manipulatorbewegung wird in letzterem Fall abhängig von den gemessenen Sensorwerten und der ursprünglich geplanten Trajektorien gesteuert, indem zu einem Zeitpunkt neue Soll-Trajektorien ermittelt und vorgegeben werden. Dabei sind bei der Steuerung typischerweise für jede Achse des Manipulators vorgegebene Grenzwerte für die Geschwindigkeit und die Beschleunigung einzuhalten. Zusätzlich ist die Vorgabe und Einhaltung von Grenzwerten für den Ruck für jede Achse bekannt, um die mechanischen Belastungen der Bauteile des Manipulators zu begrenzen. Unter dem Begriff „Ruck” versteht man vorliegend die 3. Ableitung der jeweiligen Achsposition nach der Zeit.
-
Ein gattungsgemäßes Verfahren zur zeitdiskreten Steuerung einer Anzahl N antreibbarer Achsen eines Manipulators ist beispielsweise aus der
EP 0 583 487 A1 bekannt. Darin wird ein Verfahren offenbart, bei dem das aktuelle Steuerkommando jeder Achse so abgeändert wird, dass es die Beschränkungen von Geschwindigkeit und Beschleunigung erfüllt. Die dabei nicht ausgeführten Anteile der jeweiligen Achs-Bewegung entsprechend der ursprünglich geplanten Trajektorien werden in den folgenden Zeitschritten nachgeholt. Zur Erhöhung der Bahntreue der Bewegung wird die Bewegung aller Achsen gleich skaliert, so wird beispielsweise eine in einer Achse erforderliche Skalierung der Geschwindigkeit auf 80% auch in den anderen Achsen übernommen. Dies ergibt grundsätzlich eine bahntreue Bewegung. Dagegen führt die gleichmäßige Skalierung von Beschleunigung oder Ruck nicht immer zu einer bahntreuen Bewegung.
-
Unter Berücksichtigung des Rucks und in Anbetracht von immer geringer werdenden Abtastzeiten (Zeit-Inkrementen) kommen die bisherigen Verfahren zur Steuerung eines Manipulators an ihre Grenzen. So kommt es beispielsweise beim Anfahren eines Bewegungsablaufs eines Manipulators vor, dass die Achsen des Manipulators über zehn oder mehr Schritte in der vorgegebenen Begrenzung der Beschleunigung oder des Rucks liegen, bis die vorgegebenen Zieltrajektorien (= Soll-Trajektorien) erreicht sind. Dann ist aber die Geschwindigkeit einzelner Achsen jedoch meist höher als gefordert, was zu einem Überschwingen der Bewegung führt. Dadurch kann sich eine schwach gedämpfte Schwingung um die Zieltrajektorie ergeben. Bei engen Grenzen für den Ruck oder bei geringen Abtastzeiten kann die Skalierung der Beschleunigung und des Rucks sogar zu aufklingenden Positionssollwerten führen (Instabilität).
-
Deshalb werden anstelle der reinen Skalierung des aktuellen Bewegungskommandos, wie vorstehend erläutert, Verfahren zur Trajektoriengenerierung, wie beispielsweise in der
DE 10 2009 024 130 A1 vorgeschlagen. Diese Verfahren skalieren eine geometrisch vorgegebene Bahn im Laufe ihres Durchfahrens zeitlich so, dass eine ausführbare Trajektorie entsteht. Allerdings sind sie nicht auf Beschränkungen auf der Basis der Achsen des Manipulators anwendbar, da sie sich auf den 3-dimensionalen kartesischen Raum beziehen und die Orientierungen nicht berücksichtigen. Aus
DE 10 2008 029 657 A1 ist ein Verfahren bekannt, das für jede Achse eine geringstmögliche Zeit zum Erreichen des Zielzustands berechnet und die Gesamtbewegung aufgrund der Achse bestimmt, die zum Erreichen des Zielzustands am längsten braucht. Die Generierung solcher skalierter Trajektorien lehnt sich dabei an die bekannten Verfahren zur offline-Generierung von Trajektorien für Achsen eines Manipulators an, die die vorgegebenen Positionen meist zeitoptimal (d. h. in geringstmöglicher Zeit) unter Berücksichtigung vorgegebener Grenzwerte verbinden. Nachteilig bei diesen Verfahren ist, dass sich die ermittelten Trajektorien zeitoptimal auf die Soll-Bahn hin entwickeln, so dass diese in minimaler Zeit ausgeführt bzw. erreicht wird. Die Bewegung auf zeitlich angepassten Trajektorien, d. h. die Synchronisierung mit den vorgegebenen Soll-Trajektorien ist jedoch nicht vorgesehen. Weiterhin nachteilig ist, dass Zwischen-Zeitschritte zwischen einem aktuellen Zeitschritt und dem Zeitschritt, in dem die Soll-Trajektorien erreicht werden, nicht betrachtet werden. Insofern kann keine Angabe zur Bahntreue gemacht werden. Eine bahntreue Bewegung wird daher nur in Ausnahmefällen erreicht. Weiterhin nachteilig ist, dass Beschleunigungen am oder kurz nach Erreichen der Soll-Trajektorien nicht berücksichtigt werden und somit dort zu einem Verlassen der Zieltrajektorien führen können. Schließlich ist nachteilig, dass die Soll-Trajektorien unabhängig von der Stärke der Beschränkung aus wenigen Abschnitten mit jeweils konstanter Beschleunigung oder konstantem Ruck bestehen, ähnlich der zeitoptimalen Steuerung von zeitdiskreten Regelungssystemen (Dead-beat Regelung). Dies ist gegenüber einer robusten Regelung als ungünstig bekannt, sofern Störungen existieren. Insbesondere können Zwischenzustände erreicht werden, die weit von einer direkten Verbindung zwischen Start- und Zielpunkt einer Trajektorie liegen.
-
Andere bekannte Verfahren erlauben darüber hinaus weder die Berücksichtigung der aktuellen Geschwindigkeit und Beschleunigung noch die Spezifikation einer Geschwindigkeit am Zielpunkt der Soll-Trajektorie. Wiederum andere Verfahren sind so rechenintensiv, dass sie zur online Generierung von Trajektorien bei kleinen Abtastzeiten nicht geeignet sind.
-
Die Aufgabe der Erfindung ist es, ein Verfahren und eine Vorrichtung zur zeitdiskreten Steuerung einer Anzahl N antreibbarer Achsen eines Manipulators bereit zu stellen, die die vorstehend genannten Nachteile zumindest weitgehend überwinden.
-
Die Erfindung ergibt sich aus den Merkmalen der unabhängigen Ansprüche. Vorteilhafte Weiterbildungen und Ausgestaltungen sind Gegenstand der abhängigen Ansprüche. Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung, sowie der Erläuterung von Ausführungsbeispielen der Erfindung, die in den Figuren dargestellt sind.
-
Ein Aspekt der Erfindung betrifft ein Verfahren zur zeitdiskreten Steuerung einer Anzahl N antreibbarer Achsen eines Manipulators, bei dem in einem aktuellen Zeitschritt k Zustände ZN(k – τ) der N Achsen des Manipulators hinsichtlich der jeweiligen Positionen qN(k – τ), Geschwindigkeiten vN(k – τ), Beschleunigungen aN(k – τ) und/oder Rucke jN(k – τ) der Achsen bereitgestellt werden, wobei gilt: τ = 0, 1, 2, ..., τE und τE vorgegeben ist. Die Zustände ZN(k – τ) der N Achsen des Manipulators werden vorteilhaft zunächst von entsprechenden Bewegungssensoren erfasst, wobei Zustände vergangener Zeitschritte k – τ mit: τ = 1, 2, ..., τE vorteilhaft in einem Speichermedium gespeichert und von diesem bereitgestellt werden.
-
Weiterhin wird für jede der Achsen ein Positionsgrenzwert qG,N, ein Geschwindigkeitsgrenzwert vG,N, ein Beschleunigungsgrenzwert aG,N und/oder ein Ruckgrenzwert jG,N vorgegeben. Diese Grenzwerte werden vorteilhaft derart ausgewählt, dass mechanische Belastungen des Manipulators in zulässigen Grenzen gehalten werden und ggf. weitere betrieblich motivierte Grenzbedingungen eingehalten werden. Weiterhin wird für jede der Achsen des Manipulators im Zeitschritt k eine Soll-Trajektorie Tsoll,N(k) vorgegeben, welche die Soll-Positionen qsoll,N(k + κ) der Achse für den aktuellen und künftige Zeitschritte k, k + 1, k + 2, ... angibt, wobei gilt κ = 0, 1, 2, ..., κE und κE vorgegeben ist. Diese Soll-Trajektorien Tsoll,N(k) können beispielsweise durch eine offline-Planung, oder in Abhängigkeit von Sensoren zur Erfassung einer Umgebung des Manipulators, oder durch eine manuelle Eingabe eines Bedieners erzeugt sein. Die Soll-Trajektorien Tsoll,N(k) geben somit die Soll-Positionen qsoll,N(k + κ) der N Achsen für den aktuellen und die künftigen Zeitschritte gilt κ = 0, 1, 2, ..., κE vor. Die Wahl κE, d. h. die Anzahl der dabei zu berücksichtigenden künftigen Zeitschritte hängt unter anderem von der jeweiligen Aufgabenstellung, den Zeitinkrementen und der verfügbaren Rechenleistung ab und ist entsprechend zu wählen.
-
Erfindungsgemäß wird nun basierend auf den bekannten Zuständen ZN(k – τ) und den vorgegebenen Soll-Trajektorien Tsoll,N(k) prädiktiv für die Zeitschritte k, k + 1, ..., k + κE geprüft, ob eine Umsetzung der Soll-Trajektorien Tsoll,N(k) zu einer Überschreitung eines der Grenzwerte qG,N, vG,N, aG,N und/oder jG,N führt. Ist dies der Fall, d. h. wird vorausschauend bei der Umsetzung der Soll-Trajektorien Tsoll,N(k) ein solcher Grenzwert überschritten, dann werden die Soll-Trajektorien Tsoll,N(k) iterativ solange korrigiert, bis Soll-Trajektorien T*soll,N(k) erzeugt sind, welche keinen der vorgegebenen Grenzwerte qG,N, vG,N, aG,N, jG,N für den aktuellen oder die künftigen Zeitschritte überschreiten. Die N antreibbaren Achsen des Manipulators werden in diesem Fall basierend auf den ermittelten Soll-Trajektorien T*soll,N(k) gesteuert. Wird bei der vorstehend angeführten prädiktiven Prüfung, ob eine Umsetzung der Soll-Trajektorien Tsoll,N(k) zu einer Überschreitung eines der Grenzwerte qG,N, vG,N, aG,N und/oder jG,N führt, festgestellt, dass dabei keine Überschreitung der vorgegebenen Grenzwerte erfolgt, dann werden die N antreibbaren Achsen des Manipulators basierend auf den Soll-Trajektorien Tsoll,N(k) gesteuert.
-
Das vorgeschlagene Verfahren berechnet somit in jedem aktuellen Zeitschritt k die den gemessenen Sensordaten [Zustände ZN(k – τ)] entsprechenden Sollpositionen zur Übergabe bspw. an Lageregelkreise der Manipulatorachsen eines Roboters. Dabei handelt sich jeweils um den ersten Zeitschritt einer neu geplanten Soll-Trajektorie T*soll,N(k), die den Manipulator vom aktuellen Zustand auf die durch die Sensordaten ermittelte Soll-Trajektorie überführt. Im aktuellen Zeitschritt k werden die Sensordaten, die erst in diesem Zeitschritt k verfügbar sind, bereits zur Bestimmung der Soll-Trajektorien T*soll,N(k) ab dem Schritt k verwendet.
-
Eine besonders bevorzugte Weiterbildung des Verfahrens zeichnet sich dadurch aus, dass die iterativ erzeugten Soll-Trajektorien T*soll,N(k) bahntreu sind. Das bedeutet, dass die Soll-Trajektorien T*soll,N(k) die durch die ursprünglich vorgegebenen Soll-Trajektorien Tsoll,N(k) definierte räumliche Bahn nicht.
-
Gemäß einer Weiterbildung des Verfahrens umfasst die Ermittlung der iterativ erzeugten Soll-Trajektorien T*soll,N(k) Vorwärts- und Rückwärtsiterationen. Das bedeutet, dass bei der iterativen Ermittlung der Soll-Trajektorien T*soll,N(k) sowohl Iterationen mit Schritten k* – > k* + 1 als auch Iterationen mit Schritte k* -> k* – 1 umfasst sind. Dies erzeugt robustere Ergebnisse für die Soll-Trajektorien T*soll,N(k).
-
Gemäß einer Weiterbildung des Verfahrens werden die einzelnen Soll-Positionen q*soll,N(k + κ) der erzeugten Soll-Trajektorien T*soll,N(k) auf Basis einer Skalierung der Geschwindigkeiten vsoll,N(k + κ – i) ermittelt, die sich aus den vorgegebenen Soll-Trajektorien Tsoll,N(k) oder aus bisher ermittelten Soll-Trajektorien T*soll,N(k) ergeben, wobei i für jeden Zeitpunkt k + κ geeignet gewählt wird.
-
Gemäß einer Weiterbildung des Verfahrens wird die Einhaltung der Grenzwerte aG,N und jG,N für den Zeitschritt k + κ durch iterative Verschiebung der bisher erzeugten vorangegangenen oder folgenden Positionen q*soll,N(k + κ + i) erreicht, wobei i in jedem Korrekturschritt geeignet gewählt wird.
-
Das vorgeschlagene Verfahren wird bevorzugt in Echtzeit ausgeführt.
-
Die Aufgabe wird weiterhin gelöst durch ein Computersystem, mit einer Datenverarbeitungsvorrichtung, wobei die Datenverarbeitungsvorrichtung derart ausgestaltet ist, dass ein Verfahren, wie vorstehend beschrieben, auf der Datenverarbeitungsvorrichtung ausgeführt wird.
-
Zudem wird die Aufgabe gelöst durch ein digitales Speichermedium mit elektronisch auslesbaren Steuersignalen, wobei die Steuersignale so mit einem programmierbaren Computersystem zusammenwirken können, dass ein Verfahren, wie vorstehend beschrieben, ausgeführt wird.
-
Ferner wird die Aufgabe gelöst durch ein Computer-Programm-Produkt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des Verfahrens, wie vorstehend beschrieben, wenn der Programmcode auf einer Datenverarbeitungsvorrichtung ausgeführt wird.
-
Schließlich betrifft die Erfindung ein Computer-Programm mit Programmcodes zur Durchführung des Verfahrens, wie vorstehend beschrieben, wenn das Programm auf einer Datenverarbeitungsvorrichtung abläuft. Dazu kann die Datenverarbeitungsvorrichtung als ein beliebiges aus dem Stand der Technik bekanntes Computersystem ausgestaltet sein.
-
Ein weitere Aspekt der Erfindung betrifft eine Vorrichtung zur zeitdiskreten Steuerung einer Anzahl N antreibbarer Achsen eines Manipulators, umfassend ein erstes Mittel, mit dem in einem aktuellen Zeitschritt k Zustände ZN(k – τ) der N Achsen des Manipulators hinsichtlich der jeweiligen Positionen qN(k – τ), Geschwindigkeiten, vN(k – τ), Beschleunigungen aN(k – τ) und/oder Rucke jN(k – τ) der Achsen bereitgestellt werden, wobei gilt: τ = 0, 1, 2, ..., τE und τ E vorgegeben ist, ein zweites Mittel, mit dem für jede der Achsen ein Positionsgrenzwert qG,N, ein Geschwindigkeitsgrenzwert vG,N, ein Beschleunigungsgrenzwert aG,N und/oder ein Ruckgrenzwert jG,N vorgegeben wird, ein drittes Mittel, mit dem für jede der Achsen im Zeitschritt k eine Soll-Trajektorie Tsoll,N(k) vorgegeben wird, welche die Soll-Positionen qsoll,N(k + κ) der Achse für den aktuellen und künftige Zeitschritte k, k + 1, k + 2, ... angibt, wobei gilt κ = 0, 1, 2, ..., κE und κE vorgegeben ist, und ein viertes Mittel, mit dem basierend auf den bekannten Zuständen ZN(k – τ) und den vorgegebenen Soll-Trajektorien Tsoll,N(k) prädiktiv für die Zeitschritte k, k + 1, ..., k + κE geprüft wird, ob eine Umsetzung der Soll-Trajektorien Tsoll,N(k) zu einer Überschreitung eines der Grenzwerte qG,N, vG,N, aG,N und/oder jG,N führt, und bejahendenfalls die Soll-Trajektorien Tsoll,N(k) iterativ solange korrigiert werden, bis Soll-Trajektorien T*soll,N(k) erzeugt sind, welche keinen der vorgegebenen Grenzwerte qG,N, vG,N, aG,N, jG,N für den aktuellen oder die künftigen Zeitschritte überschreiten, und die N antreibbaren Achsen des Manipulators basierend auf den Soll-Trajektorien T*soll,N(k) gesteuert werden, oder andernfalls die N antreibbaren Achsen des Manipulators basierend auf den Soll-Trajektorien Tsoll,N(k) gesteuert werden.
-
Vorteilhaft ist das vierte Mittel derart ausgeführt, dass die iterativ erzeugten Soll-Trajektorien T*soll,N(k – 1) bahntreu sind.
-
Vorteile und vorteilhafte Weiterbildungen der vorgeschlagenen Vorrichtung ergeben sich durch eine analoge und sinngemäße Übertragung der vorstehend zu dem erfindungsgemäßen Verfahren gemachten Ausführungen.
-
Schließlich betrifft die Erfindung einen Roboter mit einer Vorrichtung, wie sie vorstehend beschrieben ist.
-
Weitere Vorteile, Merkmale und Einzelheiten ergeben sich aus der nachfolgenden Beschreibung, in der – gegebenenfalls unter Bezug auf die Zeichnung – zumindest ein Ausführungsbeispiel im Einzelnen beschrieben ist. Gleiche, ähnliche und/oder funktionsgleiche Teile sind mit gleichen Bezugszeichen versehen. Es zeigen:
-
1 ein schematisiertes Ablaufschema eines erfindungsgemäßen Verfahrens,
-
2 einen schematisierten Aufbau einer erfindungsgemäßen Vorrichtung,
-
3 ein erstes Simulationsergebnis zur Verdeutlichung des Verfahrens
-
4 ein zweites Simulationsergebnis zur Verdeutlichung des Verfahrens
-
1 zeigt ein schematisiertes Ablaufschema eines erfindungsgemäßen Verfahrens zur zeitdiskreten Steuerung einer Anzahl N antreibbarer Achsen eines Manipulators, mit folgenden Schritten. In einem ersten Schritt 101 erfolgt in einem aktuellen Zeitschritt k ein Vorgeben von Zuständen ZN(k – τ) der N Achsen des Manipulators hinsichtlich der jeweiligen Positionen qN(k – τ), Geschwindigkeiten, vN(k – τ), Beschleunigungen aN(k – τ) und/oder Rucke jN(k – τ) der Achsen, wobei gilt: τ = 0, 1, 2, ..., τE und τE vorgegeben ist. Die Zustände werden von entsprechenden Sensoren erfasst und auf einer Speichereinheit gespeichert und von dieser bereitgestellt. In einem Schritt 102 werden für jede der Achsen ein Positionsgrenzwert qG,N, ein Geschwindigkeitsgrenzwert vG,N, ein Beschleunigungsgrenzwert aG,N und/oder ein Ruckgrenzwert jG,N vorgegeben. In einem Schritt 103 wird für jede der Achsen im Zeitschritt k eine Soll-Trajektorie Tsoll,N(k) vorgegeben, welche die Soll-Positionen qsoll,N(k + κ) der Achse für den aktuellen und künftige Zeitschritte k, k + 1, k + 2, ... angibt, wobei gilt κ = 0, 1, 2, ..., κE und κE vorgegeben ist. In einem Schritt 104 wird basierend auf den bekannten Zuständen ZN(k – τ) und den vorgegebenen Soll-Trajektorien Tsoll,N(k) prädiktiv für die Zeitschritte k, k + 1, ..., k + κE geprüft, ob eine Umsetzung der Soll-Trajektorien Tsoll,N(k) zu einer Überschreitung eines der Grenzwerte qG,N, vG,N, aG,N und/oder jG,N führt. Ist diese Prüfung positiv, d. h. wird eine Überschreitung mindestens eines Grenzwertes festgestellt, so werden in einem Schritt 105 die Soll-Trajektorien Tsoll,N(k) iterativ solange korrigiert werden, bis Soll-Trajektorien T*soll,N(k) erzeugt sind, welche keinen der vorgegebenen Grenzwerte qG,N, vG,N, aG,N, jG,N für den aktuellen oder die künftigen Zeitschritte überschreiten. Dabei erfolgt vorteilhaft eine Vorwärts- und eine Rückwärtsiteration.
-
Liegen die Soll-Trajektorien T*soll,N(k) vor, so werden in einem Schritt 106 die N antreibbaren Achsen des Manipulators basierend auf den Soll-Trajektorien T*soll,N(k) gesteuert. Ist die prädiktive Prüfung negativ, d. h. wird keine Überschreitung eines Grenzwertes festgestellt, so werden in einem Schritt 107 die N antreibbaren Achsen des Manipulators basierend auf den ursprünglichen Soll-Trajektorien Tsoll,N(k) gesteuert.
-
Das Verfahren wird online ausgeführt.
-
2 zeigt einen schematisierten Aufbau einer erfindungsgemäßen Vorrichtung zur zeitdiskreten Steuerung einer Anzahl N antreibbarer Achsen eines Manipulators, umfassend: ein erstes Mittel 201, mit dem in einem aktuellen Zeitschritt k Zustände ZN(k – τ) der N Achsen des Manipulators hinsichtlich der jeweiligen Positionen qN(k – τ), Geschwindigkeiten, vN(k – τ), Beschleunigungen aN(k – τ) und/oder Rucke jN(k – τ) der Achsen bereitgestellt werden, wobei gilt: τ = 0, 1, 2, ..., τE und τE vorgegeben ist, ein zweites Mittel 202, mit dem für jede der Achsen ein Positionsgrenzwert qG,N, ein Geschwindigkeitsgrenzwert vG,N, ein Beschleunigungsgrenzwert aG,N und/oder ein Ruckgrenzwert jG,N vorgegeben wird, ein drittes Mittel 203, mit dem für jede der Achsen im Zeitschritt k eine Soll-Trajektorie Tsoll,N(k) vorgegeben wird, welche die Soll-Positionen qsoll,N(k + κ) der Achse für den aktuellen und künftige Zeitschritte k, k + 1, k + 2, ... angibt, wobei gilt κ = 0, 1, 2, ..., κE und κE vorgegeben ist, und ein viertes Mittel 204, mit dem basierend auf den bekannten Zuständen ZN(k – τ) und den vorgegebenen Soll-Trajektorien Tsoll,N(k) prädiktiv für die Zeitschritte k, k + 1, ..., k + κE geprüft wird, ob eine Umsetzung der Soll-Trajektorien Tsoll,N(k) zu einer Überschreitung eines der Grenzwerte qG,N, vG,N, aG,N und/oder jG,N führt, und bejahendenfalls die Soll-Trajektorien Tsoll,N(k) iterativ solange korrigiert werden, bis Soll-Trajektorien T*soll,N(k) erzeugt sind, welche keinen der vorgegebenen Grenzwerte qG,N, vG,N, aG,N, jG,N für den aktuellen oder die künftigen Zeitschritte überschreiten, und die N antreibbaren Achsen des Manipulators basierend auf den Soll-Trajektorien T*soll,N(k) gesteuert werden, oder andernfalls die N antreibbaren Achsen des Manipulators basierend auf den Soll-Trajektorien Tsoll,N(k) gesteuert werden.
-
Im Folgenden wird ein Ausführungsbeispiel des vorgeschlagenen Verfahrens detailliert beschrieben. Das Verfahren gemäß dieses Ausführungsbeispiels berechnet die Soll-Positionen qsoll,N(k + κ) der Soll-Trajektorien Tsoll,N(k) der einzelnen Achsen des Manipulators für den aktuellen Zeitschritt k prädiktiv. Dabei wird nach Möglichkeit bahntreu skaliert, so dass die künftige Bewegungen des Manipulators die Soll-Trajektorien Tsoll,N(k) nicht verlassen werden. Dies ist bei Bewegungen mit reinen Beschleunigungen meist möglich, nicht aber bei Verzögerungen einzelner Achsen, z. B. bei einer abrupten Änderung der Bewegungsrichtung. Dazu werden die aktuellen Soll-Trajektorien Tsoll,N(k) prädiktiv ausgewertet, so dass zukünftige Überschreitungen von Grenzwerten bereits im aktuellen Zeitschritt k berücksichtigt werden. Dadurch wird die Gefahr von Instabilitäten vermieden. Außerdem kann dadurch eine weitgehend bahntreue Bewegung des Manipulators erreicht werden. Konkret werden die berechneten Soll-Trajektorien T*soll,N(k) durch Rückrechnung von zukünftig erforderlichen Skalierungen iterativ so lange korrigiert, bis die gesamten Trajektorien T*soll,N(k) bahntreu die vorgegebenen Begrenzungen für Geschwindigkeit, Beschleunigung und Ruck erfüllen, oder bis ein vorgegebenes Abbruchkriterium erreicht ist, das vermuten lässt, dass eine solche Lösung nicht gefunden werden kann. Weiterhin werden in der Iteration neben den Schritten der Rückrechnung auch eine Vorwärtsrechnung oder mehrere Iterationen mit Rück- und/oder Vorwärtsrechnung verwendet, um eine sonst nicht erreichbare Lösung zu finden oder die Konvergenz zu beschleunigen.
-
Im Folgenden wird qd(k), vd(k), ad(k) und jd(k) für die Sollposition qsoll,N(k) und deren Ableitungen eingeführt, so wie qc(k), vc(k), ac(k) und jc(k) für die korrigierte Sollposition q*soll,N(k) und deren Ableitungen. Die vergangenen Positionen qN(k – τ) werden auch durch qd(k – τ) beschrieben. Das Gleiche gilt für deren Ableitungen. Die Grenzwerte vG,N, aG,N und jG,N werden als v, a und j bezeichnet.
-
Zunächst wird die Skalierung für einen Zeitschritt beschrieben. Dabei sei die gewünschte Achsposition qd(k) der Eingang des jeweiligen Iterationsschrittes, der in ein Kommando qc(k) verändert wird, um die vorgegebenen Restriktionen (Grenzwerte) zu erfüllen. Der Übersichtlichkeit halber wird dies in drei Schritten erklärt, nämlich getrennt für die Begrenzung der Geschwindigkeit, der Beschleunigung, und des Rucks. Die Iterationen werden jedoch vorzugsweise in einer einzigen Schleife erfolgen, die alle Restriktionen berücksichtigt. Dadurch wird verhindert, dass beispielweise eine Skalierung des Rucks einer Achse i1 zu einer unzulässigen Beschleunigung in einer anderen Achse i2 führt. Bei den folgenden Erläuterung wird die Abtastzeit, d. h. das Zeitinkrement, der Einfachheit halber auf T0 = 1 gesetzt und in den Gleichungen weggelassen, was bedeutet, dass die Zeit in Zeitschritten anstelle von Sekunden ausgedrückt wird.
-
Nach der Skalierung der Geschwindigkeit muss die folgende Ungleichung erfüllt sein. |vc(k)| = |qc(k) – qc(k – 1)| ≤ v (1)
-
Wenn die gewünschte Position diese Restriktion auch nur in einer Achse i verletzt, wenn also gilt: |vdi(k)| = |qdi(k) – qdi(k – 1) > v i, dann muss die Geschwindigkeit skaliert werden. Eine Skalierung der Geschwindigkeit zwischen den Zeitpunkten (k – 1) und k ergibt immer eine bahntreue Trajektorie.
-
Diese Änderung erfolgt in zwei Schritten: Zuerst wird der Skalierungsfaktor α aus
berechnet. Dies ist immer möglich und ergibt α > 1. Dann wird die Geschwindigkeit in allen Achsen durch
qc(k) = qd(k – 1) + vd(k)/α. (3) skaliert.
-
Nach der Skalierung der Beschleunigung muss folgende Ungleichung erfüllt sein. |ac(k)| = |qc(k) – 2qc(k – 1) + gc(k – 2)| ≤ a. (4)
-
Wenn die gewünschte Position diese Restriktion auch nur in einer Achse i verletzt, wenn also gilt: |adi(k)| = |qdi(k) – 2qdi(k – 1) + qdi(k – 2)| > a i, dann wird die Geschwindigkeit skaliert.
-
Aus Gleichung (3) ergibt sich:
|qd(k – 1) + vd(k)/α – 2qd(k – 1) + qd(k – 2)| ≤ a (5) und somit den Skalierungsfaktor
-
Das Vorzeichen von a i ist positiv, wenn adi(k) > a i, es ist negativ, wenn gilt:
αdi(k) < –α i. Andernfalls trägt Achse i nicht zur Berechnung von α bei, da (4) für diese Komponente i erfüllt ist.
-
Wenn α > 1 ist, erfüllt die Änderung (3) die Restriktion (4) in allen Achsen. Diese Änderung ist bahntreu. Aber die Bedingung für α ist nicht immer erfüllt. Die Skalierung einer Achse i1 kann eine Begrenzung in einer anderen Achse i2 hervorrufen, da, der Wert von qc(k), der durch (3) verändert wurde, nun in (4) eingesetzt werden muss. Vereinfacht gesagt, wenn die Geschwindigkeit aufgrund einer großen Sollbeschleunigung in Achse i1 reduziert wird, kann diese Reduktion in einer Achse i2 die maximale zulässige Verzögerung übertreffen. Daher muss die Skalierung iterativ erfolgen, bis eine Lösung gefunden ist, die alle Restriktionen erfüllt.
-
Wenn so eine Lösung nicht gefunden wird, ist die Änderung der Trajektorie nicht bahntreu. In dem Fall kann die Beschleunigung direkt skaliert werden, um die Restriktionen zu erfüllen.
-
Der Skalierungsfaktor wird dabei durch
berechnet. Die Skalierung erfolgt dann durch
qc(k) = qd(k – 1) + vd(k – 1) + ad(k)/α. (8)
-
Diese Änderung der Solltrajektorie ist immer möglich, da α > 1, sofern ohne Skalierung eine Beschleunigungsgrenze verletzt wäre. Die Skalierung ergibt eine Position zwischen der Position, die ohne Beschleunigung erreicht würde und der Sollposition, die nicht erreichbar ist.
-
Nach der Skalierung des Rucks muss folgende Ungleichung erfüllt sein. |jc(k)| = |qc(k) – 3qc(k – 1) + 3qc(k – 2) – qc(k – 3)| ≤ j. (9)
-
Eine Skalierung ist erforderlich, wenn die gewünschte Position diese Restriktion auch nur in einer Achse i verletzt, wenn also gilt: |jdi(k)| = qdi(k) – 3qdi(k – 1) + 3qdi(k – 2) – qdi(k – 3)| > j i.
-
Wie bei der Beschleunigung wird zunächst versucht, die Änderung der Solltrajektorie bahntreu auszuführen, also durch Skalierung der Geschwindigkeit. (3) ergibt |qd(k – 1) + vd(k)/α – 3qd(k – 1) + 3qd(k – 2) – qd(k – 3)| ≤ j. (10)
-
Somit kann der Skalierungsfaktor
berechnet und in (3) eingesetzt werden. Wie bei der Beschleunigung muss dies so lange wiederholt werden, bis eine Lösung gefunden wird, die alle Restriktionen erfüllt.
-
Auch hier ist es möglich, dass keine Lösung gefunden wird. Dann kann der Ruck direkt durch:
skaliert werden. Dies ergibt immer dann α > 1, wenn ohne Skalierung eine Begrenzung auftritt. Daher ergibt sich:
qc(k) = qd(k – 1) + vd(k – 1) + ad(k – 1) + jd(k)/α. (13) beschreibt immer eine zulässige Trajektorie. Auf diese Weise wird immer ein zulässiges Kommando q
c(k) gefunden, sofern dies theoretisch überhaupt möglich ist. Es ist aber nicht gewährleistet, dass die Änderung der Sollposition auch bahntreu ist.
-
In der gleichen Weise wie qd(k) verändert wird, können auch Änderungen für zukünftige Sollpositionen qd(k + κ) berechnet werden, sofern diese bekannt sind. Dadurch können Abweichungen von der Sollbahn vermieden werden, also Änderungen der Sollposition, die nicht bahntreu ausgeführt werden können. Beispielsweise wird eine starke Verzögerung zum Zeitpunkt k + κ ein Überschwingen hervorrufen, sofern dies nicht durch rechtzeitiges Abbremsen verhindert wird. Auf diese Weise kann eine Reduktion der Geschwindigkeit bahntreu ausgeführt werden.
-
Dabei wird folgendermaßen wird vorgegangen. Ab dem aktuellen Zeitpunkt k werden die Sollpositionen auf Begrenzungen überprüft und bahntreu verändert, soweit möglich. Sofern das nicht möglich ist, werden die Sollpositionen der vorangegangenen Zeitschritte skaliert. Dies wird Rückrechnung genannt. Danach müssen die Zeitschritte, in denen die Sollposition verändert wurde, noch einmal überprüft werden. Dadurch ergibt sich ggf. eine weitere Rückrechnung. Andernfalls kann zum nächsten Zeitschritt übergegangen werden. Die Iteration wird beendet, wenn alle verfügbaren zukünftigen Sollpositionen überprüft und ggf. so verändert wurden, dass sich eine zulässige Trajektorie ergibt. Außerdem wird die Iteration abgebrochen, wenn eine vorgegebene Zahl an Iterationsschritten erreicht ist oder wenn der Algorithmus versucht, vergangene Positionen zu verändern, also bspw. qc(k – 1).
-
Sofern es in einem Zeitschritt k + κ nicht möglich ist, eine Begrenzung der Beschleunigung durch bahntreue Skalierung zu verhindern, erfolgt eine Rückrechnung von q
d(k + κ) und q
d(k + κ – 1). Dies ist immer möglich und begrenzt die Beschleunigung auf a(k + κ) = q
c(k + κ) – 2q
c(k + κ – 1) + q
c(k + κ – 2). Zur Vereinfachung wird k + κ im Folgenden durch k ersetzt. Dann wird die Veränderung durch zwei Skalierungen der Geschwindigkeit
qc(k) = qd(k – 1) + vd(k)/αk (14) qc(k – 1) = qd(k – 2) + vd(k – 1)/αk-1. (15) vorgenommen. Zur Reduktion der Rechenzeit werden diese beiden Skalierungen durch eine Skalierung mit α
k = α und
ersetzt. Daraus folgt:
qc(k) = qd(k – 1) + vd(k)/α, (16) und
qc(k – 1) = qd(k – 2) + vd(k – 1)·(1 + 1/α)/2, (17) was α aus (7) ergibt. Für α → ∞ konvergiert das zu
qc(k) = qd(k – 1), (18) und
qc(k – 1) = (qd(k – 2) + qd(k – 1))/2 (19) und liefert somit eine Beschleunigung q
c(k) – 2q
c(k – 1) + q
c(k – 2) von Null.
-
Für die kritische Achse, aus der a berechnet wurde, ergibt sich dann
qci(k) = qdi(k – 1) + vdi(k)·a i/|adi(k)|, (20) und
und somit:
qci(k) – 2qci(k – 1) + qci(k – 2) = ±a i. (22)
-
In ähnlicher Weise ist eine bahntreue Änderung von qd(k + κ), qd(k + κ – 1) und qd(k + κ – 2) immer möglich und erfüllt die Begrenzungen des Rucks jc(k + κ) = qc(k + κ) – 3qc(k + κ – 1) + 3qc(k + κ – 2) – qc(k + κ – 3). Auch hier wird k + κ durch k ersetzt. Die Veränderung erfolgt durch qc(k) = qd(k – 1) + vd(k)/αk (23) qc(k – 1) = qd(k – 2) + vd (k – 1)/αk-1 (24) qc(k – 2) = qd(k – 3) + vd(k – 2)/αk-2. (25)
-
Die Wahl von
ergibt:
qc(k) = qd(k – 1) + vd(k)/α (26) qc(k – 1) = qd(k – 2) + vd(k – 1)·(1 + 2/α)/3 (27) qc(k – 2) = qd(k – 3) + vd(k – 2)·(2 + 1/α)/3. (28)
-
Das α ergibt sich aus (12). Für α → ∞ konvergiert das zu qc(k) = qd(k – 1) (29) qc(k – 1) = (2qd(k – 2) + qd(k – 1))/3, (30) und qc(k – 2) = (qd(k – 3) + 2qd(k – 2))/3, (31) was einem Ruck von qc(k) – 3qc(k – 1) + 3qc(k – 2) – qc(k – 3) von Null entspricht.
-
Für die kritische Achse, aus der a berechnet wurde, ergibt sich:
und somit:
qci(k) – 3qci(k – 1) + 3qci(k – 2) – qci(k – 3) = ±j i·(35)
-
Die Rückrechnung wird abgebrochen, wenn der Zeitschritt k + κ mit κ = 0 nicht bahntreu verändert werden kann. Dann erfolgt eine Skalierung nach Gleichung (7) und (8) oder nach Gleichung (12) und (13), damit zumindest die Restriktionen erfüllt sind, wenn auch nicht bahntreu.
-
Neben der beschriebenen Rückrechnung ist es auch möglich, die Trajektorien durch Vorwärtsrechnung zu verändern, da die Rückrechnung allein in manchen Fällen keine bahntreue Trajektorie ergibt. Insbesondere bei Trajektorien, in denen einzelne Achsen beschleunigt werden, während andere verzögert werden, ist eine Kombination aus Vorwärts- und Rückrechnung hilfreich.
-
Zur Unterscheidung von anderen Verfahren kann festgestellt werden, dass der beschriebene Algorithmus keine Auswahl aus einer endlichen Zahl an Basistrajektorien sowie deren Parametrisierung vornimmt. Es werden auch keine abschnittsweise konstanten Stellgrößen (meist Beschleunigung oder Ruck) verwendet. Stattdessen wird die gegebene Solltrajektorie verändert, soweit dies aufgrund der Restriktionen nötig ist. Dabei wird bewusst auf vollständige Optimierungsverfahren verzichtet, da diese die Echtzeitbedingungen meist nicht einhalten können.
-
3 zeigt ein erstes Simulationsergebnis zur Verdeutlichung des zuvor beschriebenen Verfahrens am Beispiel einer Simulation einer eindimensionalen kartesischen z-Achsen-Bewegung eines 6-achsigen Industrieroboters. Dabei wird die zunächst konstante Sollgeschwindigkeit in Zeitschritt 3400 aufgrund von Sensorwerten durch eine konstante Sollposition (z-Position = 639,0 mm vgl. dicke schwarze Linie) ersetzt. 3 zeigt, dass das Steuerverfahren mit der beschriebenen prädiktiven Rückrechnung kein Überschwingen (gestrichelte Linie) bewirkt, während bisherige Verfahren ohne prädiktive Rückrechnung ein Überschwingen zeigt (dünne schwarze Linie).
-
4 zeigt ein zweites Simulationsergebnis zur Verdeutlichung des zuvor beschriebenen Verfahrens am Beispiel einer Simulation einer eindimensionalen kartesischen z-Achsen-Bewegung eines 6-achsigen Industrieroboters. Dabei wird die zunächst konstante Sollgeschwindigkeit in Zeitschritt 3400 aufgrund von Sensorwerten auf eine zeitvariante Soll-Position umgeschaltet (vgl. dicke schwarze Linie). Auch hier zeigt das beschriebene Verfahren mit der prädiktiven Rückrechnung kein Überschwingen, sondern ein Erreichen der Soll-Trajektorie bei Zeitschritt 3415.
-
Insgesamt ermöglicht das vorgeschlagene Verfahren eine spürbar verbesserte Steuerung von insbesondere mehrachsigen Manipulatoren.
-
Obwohl die Erfindung im Detail durch bevorzugte Ausführungsbeispiele näher illustriert und erläutert wurde, so ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen. Es ist daher klar, dass eine Vielzahl von Variationsmöglichkeiten existiert. Es ist ebenfalls klar, dass beispielhaft genannte Ausführungsformen wirklich nur Beispiele darstellen, die nicht in irgendeiner Weise als Begrenzung etwa des Schutzbereichs, der Anwendungsmöglichkeiten oder der Konfiguration der Erfindung aufzufassen sind. Vielmehr versetzen die vorhergehende Beschreibung und die Figurenbeschreibung den Fachmann in die Lage, die beispielhaften Ausführungsformen konkret umzusetzen, wobei der Fachmann in Kenntnis des offenbarten Erfindungsgedankens vielfältige Änderungen beispielsweise hinsichtlich der Funktion oder der Anordnung einzelner, in einer beispielhaften Ausführungsform genannter Elemente vornehmen kann, ohne den Schutzbereich zu verlassen, der durch die Ansprüche und deren rechtliche Entsprechungen, wie etwa weitergehenden Erläuterung in der Beschreibung, definiert wird.
-
Bezugszeichenliste
-
- 101–107
- Verfahrensschritte
- 201
- erstes Mittel
- 202
- zweites Mittel
- 203
- drittes Mittel
- 204
- viertes Mittel
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- EP 0583487 A1 [0003]
- DE 102009024130 A1 [0005]
- DE 102008029657 A1 [0005]