DE102012022190A1 - Inverse Kinematik - Google Patents

Inverse Kinematik Download PDF

Info

Publication number
DE102012022190A1
DE102012022190A1 DE201210022190 DE102012022190A DE102012022190A1 DE 102012022190 A1 DE102012022190 A1 DE 102012022190A1 DE 201210022190 DE201210022190 DE 201210022190 DE 102012022190 A DE102012022190 A DE 102012022190A DE 102012022190 A1 DE102012022190 A1 DE 102012022190A1
Authority
DE
Germany
Prior art keywords
robot
joint
starting
primary
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE201210022190
Other languages
English (en)
Other versions
DE102012022190B4 (de
Inventor
Harry Halfar
Wolfgang Echelmeyer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hochschule Reutlingen
Original Assignee
Hochschule Reutlingen
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hochschule Reutlingen filed Critical Hochschule Reutlingen
Priority to DE102012022190.8A priority Critical patent/DE102012022190B4/de
Publication of DE102012022190A1 publication Critical patent/DE102012022190A1/de
Application granted granted Critical
Publication of DE102012022190B4 publication Critical patent/DE102012022190B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39398Convert hand to tool coordinates, derive transform matrix
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40495Inverse kinematics model controls trajectory planning and servo system

Abstract

Der vorliegende Erfindung betrifft ein Verfahren und ein System zur Steuerung bzw. Regelung für einen Roboter (100) mit einer Vielzahl von Robotergelenken (106, 108) und einem Roboterendelement (112), dessen Lage x in einem Arbeitsraum gemäß einer Vorwärtskinematik x = F(q) des Roboters von einem Gelenkwert q abhängt, der für jedes Robotergelenk eine Gelenkstellung festlegt. Das Verfahren umfasst ein Bestimmen einer Ziellage x* (222) des Roboterendelements (112) im Arbeitsraum des Roboters; ein Erfassen einer Vielzahl von Gelenkstartwerten qi; ein Ermitteln einer Startlage xi des Roboterendelements (112) für jeden Gelenkstartwert qi der Vielzahl von Gelenkstartwerten gemäß der Vorwärtskinematik xi = F(qi) des Roboters (100); Ermitteln einer primären Startlage xj (228, 230) aus zumindest einem Teil der Vielzahl von Startlagen xi (206; 218; 230; 307), welche eine minimale Distanz d zur Ziellage x* (222; 232) im Arbeitsraum des Roboters aufweist; ein Bestimmen einer Näherungsfunktion –1j (x) einer Rückwärtskinematik in einer Umgebung der primären Startlage xj, welche die Bedingung F~ –1j (xj) = qj erfüllt, für einen primären Gelenkstartwert qj aus der Vielzahl von Gelenkstartwerten, der gemäß der Vorwärtskinematik xj = F(qj) der primären Startlage xj entspricht; und ein Generieren von Steuer-/Regelsignalen zum Anfahren der Ziellage x* basierend auf der ermittelten Näherungsfunktion –1j (x).

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zur automatischen Generierung Steuerung bzw. Regelung für einen Roboter mit einer Vielzahl von Robotergelenken, das insbesondere zur Erstellung einer Rückwärtskinematik bzw. inversen Kinematik geeignet ist. Insbesondere betrifft die vorliegende Erfindung auch ein System zum automatischen Steuern bzw. Regeln von Robotern und ein Computerprogrammprodukt.
  • Im Folgenden sind hierin unter den Begriff „Roboter” Manipulatoren bzw. Industrieroboter zu verstehen, die ein oder mehrere Gelenke aufweisen, die insbesondere translatorische und/oder rotatorische Bewegungen ausführen können, so dass ein oder mehrere Endeffektoren eines Roboters verschiedene Positionen (räumliche Lagen bzw. Posen) in einem Arbeitsraum des Roboters einnehmen können. Zu den translatorischen und/oder rotatorischen Bewegungen zählen hierbei insbesondere auch Bewegungen entlang einer oder mehrerer Schienen, an denen Teile/Arme (Glieder) des Roboters geführt werden. Auch solche Schienen bilden damit Gelenke im Sinne einer kinematischen Kette, die die Bewegungsmöglichkeit eines Roboters beschreibt. Unter dem hierin verwendeten Begriff „Roboter” kann insbesondere ein kartesischer Roboter/Portalroboter, SCARARoboter/horizontaler Knickarmroboter, zylindrischer Roboter/Zylinderkoordinatenroboter, sphärischer Roboter/Kugelkoordinatenroboter, Hexapod/Stewart-GoughPlattform verstanden werden. Weiterhin kann unter dem hierin verwendeten Begriff „Roboter” ein Roboter mit externen Gelenkachsen, ein Parallelogramm-Roboter oder Roboter mit modular rekonfigurierbaren Strukturen oder kooperierende Mehrrobotersysteme verstanden werden.
  • Im Allgemeinen werden Roboter bzw. Manipulatoren in der Industrie verwendet, um beispielsweise Bauteile zu bearbeiten und/oder zu montieren. Beispielsweise kann ein Roboter, der mit einer Farbspritzdüse ausgestattet ist, zum Lackieren von Autoteilen verwendet werden. Der Raum, den der Roboter mit seinem Endeffektor (beispielsweise einem Greifarm, Bohrgerät, Spritzdüse, etc.) erreichen kann, wird als Arbeitsraum bezeichnet. Je nach Aufgabenstellung, die der Roboter zu absolvieren hat, kann der Arbeitsraum unterschiedliche Anzahl an Dimensionen haben, innerhalb derer sich der Endeffektor bewegen kann bzw. innerhalb derer der Endeffektor eingestellt werden kann und muss. Beispielsweise könnte ein Endeffektor in allen drei Raumrichtungen bewegbar und um alle drei Achsen im Raum rotierbar sein. Eine konkrete Lage (bzw. Pose), die der Endeffektor in diesem Arbeitsraum einnimmt, wird dann insbesondere mittels drei Positionskoordinaten (Ortskoordinaten) und drei Orientierungswerte (Winkelkoordinaten) beschrieben. Besonders bevorzugt wird dabei der Arbeitsraum des Roboters mit kartesischen Koordinaten beschrieben. Der Arbeitsraum weist in diesem beispielhaften Fall also sechs Dimensionen auf.
  • Im Allgemeinen bildet somit ein Roboter eine kinematische Kette mit n Gelenken (insbesondere translatorischen und/oder rotatorischen Freiheitsgraden), entlang welcher entsprechende Glieder der kinematischen Kette bewegt werden, um den Endeffektor an den gewünschten Punkt x = [x1, x2, ..., xm]T im m-dimensionalen Arbeitsraum zu bringen. Jede Gelenkstellung q = [q1, q2, ..., qn]T, welche die Einstellungen qi (Stellungswerte) der einzelnen Gelenke (i = 1...n) beschreibt, legt über eine Funktion x = F(q) eindeutig eine entsprechende Lage des Endeffektors im Arbeitsraum fest. Diese Funktion wird auch als Vorwärtskinematik bezeichnet.
  • Um einen Punkt x = [x1, x2, ..., xm]T im Arbeitsraum mit dem Endeffektor des Roboters anzufahren, wobei m die Anzahl der Dimensionen des Arbeitsraums bezeichnet, müssen die erforderlichen Gelenkstellungen q1, q2, ..., qn aller n Robotergelenke, welche im Vektor q = [q1, q2, ..., qn]T als Gelenkwert zusammengefasst werden können, ermittelt werden. Die Position x steht mit den Gelenkstellungen (bzw. dem Gelenkwert q) über die Funktion x = F(q) in Beziehung, welche auch als Vorwärtskinematik bezeichnet wird. Insbesondere kann mit bekannten, definierten Gelenkstellungen über die Funktion x = F(q) eine Position x im Arbeitsraum exakt bestimmt werden. Die Rechenvorschrift, die zur Ermittlung der jeweiligen Gelenkstellungen bei vorgegebener Position x verwendet wird, wird auch inverse Kinematik bzw. Rückwärtskinematik bezeichnet und insbesondere durch q = F–1(x) beschrieben.
  • Problematisch ist hierbei oft, dass die Erstellung einer inversen Kinematik eine mathematisch nicht triviale Aufgabe darstellt. Die bloße Kenntnis über eine bestehende bzw. bekannte Vorwärtskinematik x = F(q) reicht meist nicht aus, um die exakten Gelenkstellungen zu bestimmen, um damit eine gewünschte Position x mit dem Roboter anfahren zu können. Vor allem ist eine inverse Kinematik von der Kinematik des Roboters abhängig, wodurch die inverse Kinematik roboterspezifisch ist. Zwar existieren für gängige Industrieroboter und einfache kinematische Anordnungen geschlossene Lösungen für die inverse Kinematik, jedoch gibt es keine zufriedenstellende Methode, welche es ermöglicht, für eine gegebene beliebige Vorwärtskinematik eine inverse Kinematik vollautomatisch und mit der benötigten Zuverlässigkeit zu erstellen.
  • Insbesondere existieren Methoden zur numerischen Bestimmung von Gelenkstellungen, welche allgemein anwendbar sind, jedoch weisen diese Methoden oft ein instabiles Verhalten in der Nähe von Singularitäten auf und sind zusätzlich hinsichtlich der erforderlichen Berechnungszeit schwer abzuschätzen. Ebenfalls ist es schwer vorhersagbar mit welcher erreichbaren Genauigkeit die Gelenkstellungen bestimmt werden können, so dass ein Fehler bzw. eine Differenz zwischen der gewünschten Position/Ziellage x und der tatsächlich angefahrenen Position nicht abgeschätzt werden kann. Durch diese Nachteile verlieren diese Methoden ihre Eignung zur Anwendung bei Industrierobotern, da insbesondere die Laufzeit, stabiles Verhalten und Genauigkeit wichtige Eigenschaften sind, die Ansteuerungen erfüllen müssen. Weiterhin existieren Methoden, welche auf dem symbolischen Rechnen basieren. Der Nachteil dieser Methoden ist, dass diese nicht universell für verschiedenste Roboter anwendbar sind. Das Berechnen und Abspeichern aller Koordinaten, die zum Arbeitsraum des Roboters gehören, mittels der Vorwärtskinematik ist unmöglich, da hierfür derart viel Speicherplatz erforderlich wäre, dass dies zu nicht praxistauglichen Kosten, Platzbedarf, Rechnerleistung etc. führen würde.
  • Es ist daher Aufgabe der vorliegenden Anmeldung, eine automatische Generierung von Robotersteuer-/Roboterregelungen bereitzustellen, die eine universelle und automatische Anwendbarkeit ermöglicht.
  • Erfindungsgemäß wird diese Aufgabe durch die Merkmale der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen der Erfindung sind Gegenstand der abhängigen Ansprüche.
  • Verfahren gemäß einem Aspekt
  • Ein Aspekt der Erfindung betrifft ein Verfahren zur automatischen Generierung einer Steuerung bzw. Regelung für einen Roboter mit einer Vielzahl von Robotergelenken (k = 1...n) und einem Roboterendelement (auch als Endeffektor bezeichnet), dessen Lage x in einem Arbeitsraum gemäß einer Vorwärtskinematik x = F(q) des Roboters von einem Gelenkwert q = [q1, q2, ..., qn]T abhängt, der für jedes Robotergelenk k eine Gelenkstellung qk festlegt. Die Lage x = [x1, x2, ..., xm]T legt dabei alle Koordinaten (einschließlich aller erforderlicher Orts- und/oder Winkelkoordinaten) des Roboterendelements eindeutig fest.
  • Das Verfahren umfasst dabei
    • – ein Bestimmen einer Ziellage x* des Roboterendelements im Arbeitsraum des Roboters;
    • – ein Erfassen einer Vielzahl von Gelenkstartwerten qi (welche sich insbesondere paarweise in der Stellung zumindest eines Robotergelenks unterscheiden);
    • – ein Ermitteln einer Startlage xi des Roboterendelements für jeden Gelenkstartwert qi der Vielzahl von Gelenkstartwerten gemäß der Vorwärtskinematik xi = F(qi) des Roboters;
    • – ein Ermitteln einer primären Startlage xj aus zumindest einem Teil (Insbesondere dem Teil, der nicht-singuläre Punkte im Arbeitsraum betrifft) der Vielzahl von Startlagen xi, welche eine minimale Distanz d zur Ziellage x* im Arbeitsraum des Roboters aufweist;
    • – ein Bestimmen einer Näherungsfunktion q = F ~ –1 / j(x) einer Rückwärtskinematik insbesondere der Form F ~ –1 / j(x) = A·x + b in einer Umgebung der primären Startlage xj welche die Bedingung F ~ –1 / j(xj) = qj erfüllt, für einen primären Gelenkstartwert qj aus der Vielzahl von Gelenkstartwerten, der gemäß der Vorwärtkinematik xj = F(qj) der primären Startlage xj entspricht; und
    • – ein Generieren von Steuer-/Regelsignalen zum Anfahren der Ziellage x* basierend auf der ermittelten Näherungsfunktion q = F ~ –1 / j(x).
  • Alternativ zu einer linearen Näherungsfunktion F ~ –1 / j(x) = A·x + b könnte auch eine andere vorzugsweise analytische Näherungsfunktion herangezogen werden. Die Bestimmung oder Verwendung einer Näherungsfunktion einer Rückwärtskinematik oder Rechenvorschrift zur Näherung einer Rückwärtskinematik erfolgt dabei insbesondere derart, dass deren (gedachte) Umkehrfunktion wiederum die (bekannte) Vorwärtskinematik insbesondere in der Umgebung um den primären Gelenkstartwert qj möglichst gut approximiert. Die Vorwärtskinematik ist das einzig wirklich bzw. exakt bekannte, weshalb insbesondere die Vorwärtskinematik als Kriterium für die Wahl einer Näherungsfunktion bzw. für die Bestimmung von Parametern für die Näherungsfunktion herangezogen wird.
  • Vorzugsweise erfolgt das Bestimmen einer Näherungsfunktion derart, dass ein (analytischer) funktionaler Zusammenhang in einer parametrisierten Weise vorgegeben wird, und dass die Parameter aus einer Vielzahl von Wertepaaren (qi, xi) (Tabellenwerten) aus den erfassten Gelenkstartwerten und den dazu ermittelten Startlagen in einer Umgebung der primären Startlage bestimmt werden. So kann beispielsweise eine lineare Näherungsfunktion der Form F ~ –1 / j(x) = A·x + b vorgegeben sein, wobei die Parameter A und b aus linear unabhängigen Paaren (qi, xi) bestimmt werden.
  • Alternativ könnte man auch den konkreten Sollwert (x*) mit heranziehen und damit das Kriterium nehmen, dass für das Ergebnis (q') der Berechnung gelten soll, dass |F(q') – x*| möglichst gering ist. Dies wäre vor allem dann besonders vorteilhaft, wenn das Gleichungssystem überbestimmt ist.
  • In einer bevorzugten Ausführungsform umfasst das Generieren von Steuer-/Regelsignalen ein Ermitteln eines Zielgelenkwerts q* aus der Näherungsfunktion q = F ~ –1 / j(x) an der Ziellage x*; und ein Generieren von Steuer-/Regelsignalen zum Anfahren der Ziellage x* basierend auf dem ermittelten Zielgelenkwert q*.
  • Insbesondere ist unter einem automatischen Generieren einer Robotersteuerung und/oder Roboteregelung das automatische Erzeugen von inversen Kinematiken zu verstehen. In anderen Worten kann eine Lage x im Arbeitsraum des Roboters durch dessen Endeffektor bzw. Roboterendelement eingenommen werden, indem basierend auf den Koordinaten dieses Punkts im Arbeitsraum (Lage) die inverse Kinematik bzw. Rückwärtskinematik des Roboters berechnet wird und entsprechende Steuersignale und/oder Regelsignale ausgegeben werden, die an die einzelnen Robotergelenke (Aktoren) übertragen werden müssen, damit der Endeffektor die gewünschte Lage einnimmt. Unter dem Begriff „Anfahren” ist insbesondere zu verstehen, dass ein bestimmter Punkt x im Arbeitsraum basierend auf der inversen Kinematik/Rückwärtskinematik von dem Endeffektor des Roboters angefahren bzw. eingenommen werden kann. Insbesondere kann unter einem „Anfahren” ein Ansteuern basierend auf Regelungs- und/oder Steuersignalen verstanden werden. Das Roboterendelement ist vorzugsweise ein Endeffektor des Roboters. Weiterhin kann unter der Begrifflichkeit „Roboterendelements” der sog. TCP (Tool Center Point) verstanden werden.
  • Insbesondere ist unter einer Ziellage x* ein Punkt im Arbeitsraum eines Roboters zu verstehen, welche das Roboterendelement bzw. der Endeffektor des Roboters einnehmen/anfahren soll. Die Ziellage x* umfasst dabei insbesondere sämtliche Koordinaten, die erforderlich sind, um die Lage bzw. Stellung (einschließlich Ort und Winkel) des Roboterendelements eindeutig festzulegen. In der Robotik kann die Lage bzw. Ziellage des Roboterendelements auch als „Pose” bzw. Zielpose bezeichnet werden. Das Bestimmen einer Ziellage x* kann insbesondere durch Festlegen der Ziellage x* durch einen Benutzer erfolgen. Weiterhin kann eine Ziellage x* bestimmt werden, indem sie von einem Computerprogramm bzw. aus einer Datenbank erhalten bzw. übermittelt wird. Unter dem Begriff Bestimmen einer Ziellage x* kann ebenfalls das Detektieren bzw. Vorgeben dieser Ziellage x* basierend auf Sensordaten verstanden werden. In anderen Worten ist unter einer Ziellage x* eine gesuchte bzw. gewünschte Lage (Pose) zu verstehen, die durch das Robotersystem angefahren werden soll.
  • Unter einem Gelenk (joint) des Roboters wird insbesondere eine bewegliche Verbindung zwischen (vorzugsweise starren) Körpern bzw. Gliedern (z. B. Armen) des Roboters verstanden. Die Gelenke bilden damit zusammen mit den (starren) Gliedern (Armen) eine kinematische Kette. Die möglichen Bewegungen von Gelenken im Sinne der Erfindung schließen unter anderem ein Abknicken, ein Rotieren, ein Verschieben beispielsweise entlang einer geraden oder gekrümmten Schiene, ein Abrollen und ein teleskopartiges Ausziehen bzw. Zusammenschieben ein. Als Robotergelenk (oder einfach Gelenk) wird dabei insbesondere jeder Freiheitsgrad einer Bewegung, also eine Dimension der Bewegungsfreiheit, genannt.
  • Soweit eine Bewegung in mehreren Dimensionen möglich ist, insbesondere soweit eine mechanische Verbindung zwischen Roboterkomponenten in mehreren Freiheitsgraden bewegt werden kann, wird vorzugsweise jeder dieser Freiheitsgrade als ein Gelenk im Sinne der kinematischen Kette des Roboters bezeichnet. So wird beispielsweise eine Verbindung zwischen zwei Roboterarmen mittels eines Kugelkopfs und einer dazu passenden Pfanne, welche ein Abknicken der beiden Arme in zwei Dimensionen und zusätzlich eine axiale Rotation unterstützt vorzugsweise durch drei Gelenke der kinematischen Kette beschrieben.
  • Ein Robotergelenk kann beispielsweise eine Gelenkstellung in einem Winkelbereich von 0° bis 90°, 0° bis 180° oder 0° bis 360° oder Zwischenwerte zwischen 0° und 360° einnehmen. Ein Robotergelenk kann in Stufen oder stufenlos einstellbar bzw. bewegbar sein. Entsprechend kann für ein bestimmtes Robotergelenk beispielsweise eine minimale Gelenkstellung (minimaler Gelenkstellungswert) 0° entsprechen und eine maximale Gelenkstellung (maximaler Gelenkstellungswert) 180°. In diesem Fall können Gelenkzwischenstellungen beispielsweise 5°, 10°, 15° etc. sein.
  • Um eine Vielzahl von Gelenkstartwerten qi zu erfassen, wird beispielsweise für ein Robotergelenk k (vorzugsweise für jedes Robotergelenk der kinematischen Kette) eine minimale Gelenkstellung qmin,k um einen Inkrementwert bzw. Abstandswert Δqk erhöht, so dass der Zwischenwert (qmin,k + Δqk) erhalten wird, wobei dieser wiederum um den Abstandswert Δqk erhöht wird. Diese Vorgehensweise wird vorzugsweise so oft wiederholt bis entsprechend viele verschiedene Gelenkstellungen für zumindest ein Robotergelenk (vorzugsweise für alle Robotergelenke) gesammelt wurden, d. h. entsprechende Zwischenwerte sowie die maximale Gelenkstellung qmax,k erhalten wurden.
  • Die einzelnen Gelenkstellungen aller Robotergelenke der kinematischen Kette des Roboters werden im Gelenkwert q = [q1, q2, ..., qn] zusammengefasst. Der Gelenkwert q bildet also einen Vektor, dessen n Komponenten den jeweiligen Gelenkstellungen der n Robotergelenke entsprechen.
  • Die Gesamtheit aller möglichen Gelenkwerte bildet damit einen Gelenkwerteraum, der durch n Achsen (Dimensionen) dargestellt werden kann, von denen jede Achse die Gelenkstellung eines Robotergelenks (Freiheitsgrades) darstellt. Als Gelenkstartwerte qi werden dabei viele Punkte in diesem Gelenkwerteraum bereitgestellt. Vorzugsweise sind die Gelenkstartwerte möglichst gleichmäßig über den Gelenkwerteraum verteilt. Wie bereits dargestellt, könnten sich einige dieser Gelenkstartwerte beispielsweise dadurch ergeben, dass für einen Freiheitsgrad k die entsprechenden Gelenkstellungen eine Vielzahl von Werten von einem Minimalwert zu einem Maximalwert (mit einem oder mehreren Zwischenwerten) einnimmt. Besonders bevorzugt sind diese Werte entlang einer Achse äquidistant. Vorzugsweise wird diese Rasterung für jeden der Freiheitsgrade (Gelenke) vorgenommen, so dass die Vielzahl an Gelenkstartwerten qi vorzugsweise ein regelmäßiges Gitter (Raster) im n-dimensionalen Gelenkwerteraum bilden. Vorzugsweise umfasst das Erfassen einer Vielzahl von Gelenkstartwerten qi also ein Festlegen eines vorzugsweise äquidistanten Gitters über den Gelenkwerteraum. Dabei legt jeder Gitterpunkt eine spezifische Kombination von Gelenkstellungen aller einzelnen Gelenke fest. Unterschiedliche Gitterpunkte (Gelenkstartwerte) unterscheiden sich dabei jeweils in zumindest einer Gelenkstellung.
  • Weiterhin vorzugsweise kann eine Randbedingung für die Wahl der Inkrementwerte bzw. Abstandswerte Δqk einer bestimmten Bewegungsfreiheit k (Achse bzw. Gelenk) von einem bevorzugten Arbeitsbereich des Roboters abhängen. Weiterhin kann eine Randbedingung für die Wahl der Inkrementwerte bzw. Abstandswerte Δqk von einem zur Verfügung stehenden Speicherplatz eines Computers oder eines Speichermediums abhängen. Weder die Inkrementwerte bzw. Abstandswerte Δqk noch die Anzahl an Gitterpunkten müssen für alle Freiheitsgrade gleich groß sein.
  • Unter dem Begriff „Erfassen” von Gelenkstartwerten qi kann insbesondere ein Bestimmen basierend auf Simulationsdaten oder reellen Daten verstanden werden, die vom Roboter erhalten bzw. vom Roboter übermittelt oder ausgelesen werden.
  • Unter einem Erfassen von Gelenkstartwerten qi kann ein einmaliges und/oder mehrmaliges Erfassen verstanden werden. In anderen Worten können in einem Ausführungsbeispiel die Gelenkstartwerte qi einmal bestimmt oder vorgegeben werden und dann abgespeichert oder in einer Datenbank erfasst werden. In einem anderen Ausführungsbeispiel kann vorgesehen sein, dass die Gelenkstartwerte qi jedes Mal oder in einem bestimmten Zyklus(neu-)bestimmt werden. Unter dem Begriff „Erfassen” von Gelenkstartwerten qi kann ebenfalls ein Entnehmen von Gelenkstartwerten verstanden werden, welche aus einer Tabelle, einer Datenbank oder einem Speichermedium entnommen bzw. ausgelesen werden. Weiterhin kann das Erfassen als Verwenden vorgegebener Gelenkstartwerte qi verstanden werden. Beispielsweise kann ein Hersteller eines Roboters verschiedene Gelenkstartwerte qi festlegen bzw. vorgeben, die für das Verfahren zur automatischen Generierung einer Robotersteuerung bzw. Roboterregelung verwendet werden können. Weiterhin kann Erfassen bedeuten, dass durch eine Benutzereingabe Gelenkstartwerte definiert werden.
  • Das Ermitteln einer Vielzahl von Startlagen xi ist derart zu verstehen, dass die zuvor erfassten Gelenkstartwerte qi verwendet werden, um zu jedem Gelenkstartwert qi die jeweilige Startlage xi derart zu definieren (bspw. durch Berechnung), dass jedes Paar (q, x) = (qi, xi) die Funktion x = F(q) der Vorwärtskinematik des Roboters erfüllt. Entsprechend ist eine bestimmte Startlage xi über die Funktion F(q) eindeutig bestimmbar. Unter dem Ermitteln der Vielzahl von Startlagen xi kann somit ein Berechnen der Startlagen xi basierend auf den erfassten Gelenkstartwerten qi verstanden werden. Weiterhin kann unter einem Erfassen ein Entnehmen aus einer Tabelle oder Datenbank oder sonstigem Speichermedium verstanden werden. Schließlich kann ein Erfassen auch ein Verwenden oder Erhalten von Startlagen xi beinhalten, die von einem Hersteller bereitgestellt werden bzw. vorgegeben werden. Eine entsprechende Vorwärtskinematik des Roboters kann insbesondere über die Anwendung der Denavit-Hartenberg Konvention beschrieben bzw. berechnet werden. Bezüglich der Bestimmung von Vorwärtskinematiken sei beispielsweise auf das Buch „Kinematik und Robotik" von Manfred Husty et al. verwiesen, welches 1997 beim Springer Verlag erschienen ist.
  • Um die inverse Kinematik für einen Roboter im Hinblick auf eine Ziellage (Solllage) x* festzulegen, kann aus der Vielzahl von Startlagen xi eine primäre Startlage xj ermittelt (bestimmt bzw. ausgewählt) werden, die eine möglichst kleine Distanz d zu der Ziellage x* aufweist. Ein solches Auswählen bzw. Bestimmen kann beispielsweise durch Vergleichen der ermittelten Startlagen xi mit der bestimmten Ziellage x* erfolgen. Vorzugsweise ist die primäre Startlage xj diejenige Startlage xi, die der Ziellage x* am nächsten liegt. In diesem Fall weisen die primäre Startlage xj und die Ziellage x* im Vergleich zu allen anderen Startlagen xi den kleinsten (euklidischen) Abstand zueinander auf. Die primäre Startlage xj ist dabei über die Funktion F(qj) = xj der Vorwärtskinematik einem primären Gelenkstartwert qj zugeordnet.
  • Mit der Näherungsfunktion F –1 / j kann die Näherung für die nächste Umgebung/den nahen Umkreis um die primäre Startlage xj und damit auch in der Nähe der Ziellage x* ermittelt werden. In anderen Worten ist die Näherungsfunktion F –1 / j für Punkte (Lagen) im Arbeitsraum, die sich in der Nähe der primären Startlage xj befinden besonders geeignet, wobei die Eignung der Näherungsfunktion im Hinblick auf eine Distanz zur primären Startlage xj variieren kann und von einzelnen Positionen sowie von der Roboterart selbst abhängen kann.
  • Unter dem Ausdruck „Bestimmen einer Näherungsfunktion” kann hierbei das einmalige Bestimmen einer Näherungsfunktion zu verstehen sein, wobei eine Näherungsfunktion berechnet und dann abgespeichert wird, so dass bei Bedarf immer wieder auf die bereits berechnete Näherungsfunktion zurückgegriffen werden kann. Alternativ kann Bestimmen einer Näherungsfunktion auch beinhalten, dass eine Näherungsfunktion jedes Mal bestimmt bzw. berechnet wird, wenn eine Rückwärtskinematik für einen bestimmten Wert bzw. Punkt festzulegen ist. Mittels der Näherungsfunktion wird vorzugsweise ein zu der Ziellage x* gehörender Zielgelenkwert q* bzw. ein Gelenkwert nahe dem Zielgelenkwert q* ermittelt, so dass die Ziellage x* möglichst genau angesteuert bzw. angefahren werden kann. In anderen Worten ist es basierend auf den Ergebnissen der ermittelten Näherungsfunktion möglich, den Roboter derart anzusteuern, dass das Roboterendelement (der Endeffektor) als Position/Orientierung die Ziellage x* einnehmen kann bzw. sehr nahe an die Position/Orientierung der Ziellage x* gesetzt/hingefahren werden kann.
  • Vorzugsweise wird das sog. Newton-Raphson Verfahren verwendet, um die Genauigkeit des Verfahrens zu steigern. Vorteilhafterweise wird hierbei das Ergebnis der Näherungsfunktion bzw. der ermittelte Wert bzw. der Zielgelenkwert q* und/oder der primäre Gelenkstartwert qj als Startwert für das Newton-Raphson Verfahren genutzt. In anderen Worten kann der Schritt des Bestimmens einer Näherungsverfahrens weiterhin umfassen, dass das Ergebnis des Näherungsverfahrens in einem Newton-Raphson Verfahren weiterverwendet wird. Anders ausgedrückt könnte der Schritt des Ermittelns einer Näherungsfunktion einen ersten Schritt in einem Newton-Raphson Verfahren darstellen.
  • In einer bevorzugten Ausführungsform wird somit der primäre Gelenkstartwert qj als Startwert q(0) eines (insbesondere iterativen) numerischen Näherungsverfahrens (vorzugsweise einer Newton-Iteration) verwendet, mittels welcher ein Zielgelenkwert q(*) ermittelt wird, der gemäß der Vorwärtskinematik x(*) = F(q(*)) eine Lage x(*) des Roboterendelements festlegt, die sich um weniger als eine vorgegebene Lagenabweichung (Toleranzwert) von der Ziellage x* unterscheidet. In weiteren bevorzugten Ausführungsform kommt ein Bisektionsverfahren und/oder ein Sekantenverfahren und/oder ein Gauss-Newton-Verfahren und/oder ein Levenberg-Marquard-Verfahren und/oder ein Fixpunktverfahren zum Einsatz.
  • Unter Steuer- bzw. Regelsignalen können insbesondere Signale bzw. Anweisungen verstanden werden, die dazu führen, dass der Roboter automatisch, d. h. insbesondere ohne weitere Steuer-/Regeleingriffe, die Ziellage x* anfährt. Steuer-/Regelsignale können auch Anweisungen sein, die ein Controller an den Roboter übermittelt. Weiterhin kann das Generieren von Steuer- bzw. Regelsignalen derart verstanden werden, dass entsprechende Steuer- bzw. Regelsignalen bzw. Anweisungen hinterlegt bzw. abgespeichert werden, um zu einem späteren Zeitpunkt die Ziellage x* anzusteuern bzw. anzufahren.
  • Da eine Rückwärtskinematik bzw. inverse Kinematik hinsichtlich verschiedener Lagen (Punkte) im Arbeitsraum sehr unterschiedlich sein kann, wird vorzugsweise jede der Lagen xi eine Näherungsfunktion bestimmt.
  • Vorzugsweise kann das vorliegende Verfahren als Computer-implementieres Verfahren ausgestaltet sein.
  • In einer bevorzugten Ausführungsform wird als Näherungsfunktion q = F ~ –1 / j(x) einer Rückwärtskinemtik eine Funktion der Form F ~ –1 / j(x) = A·x + b derart bestimmt, dass A das Inverse der Jakobi-Matrix der Vorwärtskinematik x = F(q) am primären Gelenkstartwert qj ist. Es wird also vorzugsweise die Funktion F der Vorwärtskinematik am primären Gelenkstartwert qj abgeleitet und die dabei entstehende Jakobi-Matrix invertiert.
  • In einer anderen bevorzugten Ausführungsform wird als Näherungsfunktion q = F ~ –1 / j(x) einer Rückwärtskinemtik eine Funktion der Form F ~ –1 / j(x) = A·x + b aus linear unabhängigen Paaren (qi, xi) von Gelenkstartwerten und gemäß der Vorwärtskinematik entsprechenden Startlagen, welche am nächsten an der primären Startlage xj liegen, derart bestimmt, dass für die linear unabhängigen Paare gilt: qi = F ~ –1 / j(xi). Vorzugsweise wird auch der Wert b entsprechend bestimmt.
  • In einer bevorzugten Ausführungsform wird die primäre Startlage xj (228, 230) aus denjenigen Startlagen der Vielzahl von Startlagen xi (206; 218; 230; 307) ermittelt wird, die nicht in einer Singularität und/oder nicht in der Nähe einer Singularität liegen. Dazu wird vorzugsweise, wie später noch beschrieben wird, beispielsweise anhand der Jacobimatrix eine Überprüfung von Singularitätseigenschaften vorgenommen.
  • Liegt die primäre Startlage xj in der Nähe einer Singularität (208; 210) oder in einer Singularität (208; 210), wird in einer bevorzugten Ausführungsform die Näherungsfunktion gemäß F ~ –1 / j(x)= qj bestimmt. Insbesondere ergibt sich damit auf für die Ziellage x* der zugehörige Gelenkwert qj.
  • Alternativ ist das Verfahren derart ausgelegt, dass, wenn die Lage xj in der Nähe einer Singularität oder in einer Singularität liegt, der Schritt des Ermittelns einer Näherungsfunktion umfasst, dass oder eine Lage xneb verwendet wird, die in der Nähe der Lage xj liegt und bei dem die Jakobi-Matrix J(qneb) nicht singulär ist.
  • Singuläre Konfigurationen bei Robotern sind beispielsweise solche Gelenkstellungen bzw. Gelenkwerte qi, bei denen der Roboter eine oder mehrere Freiheitsgrade im kartesischen Raum verliert. Insbesondere können beispielsweise folgende zwei Arten von Singularitäten unterschieden werden. Die erste Art sind äußere Singularitäten, welche an den Rändern des Arbeitsraums des Roboters vorliegen. Im Fall einer solchen Singularität ist beispielsweise ein Roboter(-arm) mit mehreren Gelenken/beweglichen Roboterelementen voll ausgestreckt oder zusammengefaltet, so dass eine weitere Bewegung in zumindest eine Raumrichtung nicht mehr möglich ist. Die zweite Art sind inneren Singularitäten, welche im Inneren des Arbeitsraums vor liegen. In diesem Fall gibt es unendlich viele Gelenkstellungen, die zu gleichen Positionen des Endeffektors führen. Dies kann beispielsweise auftreten, wenn zwei Gelenkachsen bzw. die Achsen zweier beweglicher Roboterelemente auf einer Linie liegen. Hierbei kann der Fall auftreten, dass die Drehung einer Gelenkachse bzw. eines beweglichen Roboterelements durch entsprechende Gegendrehung der anderen Gelenksachse bzw. des anderen beweglichen Roboterelements kompensiert wird.
  • Im Bereich von Singularitäten können Fälle auftreten, in denen es zu numerisch instabilem und oszillierendem Verhalten kommt, obwohl es unendlich viele Lösungen gibt. Dies kann insbesondere dahingehend problematisch sein, dass während eines Simulationsverfahrens eine singuläre Position angefahren werden kann, jedoch bei der tatsächlichen Ausführung und Ansteuerung/Anfahren einer Koordinate durch den Roboter eine Kollision auftritt, da nicht vorherbestimmbar ist, welche Konfiguration die jeweiligen Robotergelenke (auch als bewegliche Roboterelemente bezeichnet) einnehmen werden. Weiterhin können in der Nähe von Singularitäten unendlich hohe Gelenkgeschwindigkeiten auftreten, wenn die Geschwindigkeiten des Roboters im (kartesischen) Arbeitsraum in Gelenkgeschwindigkeit überführt werden.
  • Bei der Verwendung einer Jacobi-Matrix zeigt vorzugsweise das Ergebnis der Jacobi-Matrix an, ob eine Singularität vorliegt bzw. ob die Zielkoordinate in der Nähe einer Singularität liegt. Beispielsweise ist bei einem sechsachsigen Roboter die Jacobi-Matrix singulär, wenn der Roboter eine Position bzw. Konfiguration einnimmt, die singulär ist. in einem solchen Fall ist die Jacobi-Matrix nicht mehr invertierbar. Bei dem sechsachsigen Roboter können singuläre Positionen bzw. singuläre Konfigurationen ermittelt werden, indem die Nullstellen der Jacobi-Determinante bestimmt werden. Ist die Jacobi-Matrix singulär oder nahezu singulär, ist es möglich als Näherungsfunktion F ~ –1 / j(x) = qj zu verwenden. Alternativ oder zusätzlich kann eine andere Lage als primäre Startlage im Arbeitsraum für das Näherungsverfahren verwendet werden. Vorzugsweise könnte hier die Startlage verwendet werden, die der Ziellage x* am zweitnächsten liegt. In anderen Worten weist die alternativ gewählte Startlage eine euklidische Distanz zur Ziellage x* auf, die zwar größer ist als die Distanz dmin, aber kleiner als die euklidische Distanz der Ziellage x* zu allen anderen Startlagen. In diesem Fall würde vorzugsweise die Näherungsfunktion dieser alternativ gewählten Startlage ermittelt bzw. verwendet bzw. bestimmt.
  • Entsprechend ist es ein Vorteil des vorliegenden Verfahrens, dass Singularität bereits vor dem Anfahren eines Punktes im Arbeitsraum durch den Roboter erkannt werden, und sogleich eine alternative Ansteuerung/Regelung generiert werden kann, um den Roboter zeitnah und stabil ansteuern/ausregeln zu können. In einer Ausführungsform kann bei einer auftretenden Singularität das Ergebnis der Näherungsfunktion F ~ –1 / j(x*) = qj mit dem Ergebnis bei Verwendung der alternativ gewählten Startlage verglichen werden, um basierend auf einem Vergleich zu entscheiden, welches Ergebnis weiterverwendet werden soll. Alternativ, können die Ergebnisse beider Optionen miteinander verrechnet werden, und das Ergebnis dieses Verrechnens weiterverwendet werden.
  • In einer bevorzugten Ausführungsform umfasst das Ermitteln der primären Startlage xj:
    • – ein Unterteilen des Arbeitsraums in eine Vielzahl von (vorzugsweise konvexen) Zellen;
    • – ein Bestimmen einer ersten Zelle Zx*, die die Ziellage x* enthält;
    • – ein Bestimmen einer temporären Startlage xtemp aus zumindest einem Teil der innerhalb der erste Zelle Zx* liegenden Startlagen, welche eine temporäre, minimale Distanz dtemp zur Ziellage x* aufweist;
    • – ein Bestimmen von benachbarten Zellen Zni (226), deren Distanz dG ihrer Grenzen zur Ziellage kleiner ist als dtemp; und
    • – ein Ermitteln der primären Startlage xi als diejenige Startlage aus zumindest einem Teil der in der ersten Zelle Zx* und den benachbarten Zellen Zni enthaltenen Startlagen, welche eine minimale Distanz d zur Ziellage x* aufweist.
  • Im Einzelnen kann ein weiter bevorzugtes Verfahren dabei umfassen:
    • – Festlegen eines Gitters über den Arbeitsraum des Roboters;
    • – Unterteilen dieses Gitters in Zellen Zi;
    • – Zuordnen von Startlagen xi mit deren zugeordneten Gelenkwerten qi zu einer entsprechenden Zelle Zi des Gitters.
  • Ein Gitter, welches über den Arbeitsraum des Roboters festgelegt wird, kann beispielsweise ein äquidistantes bzw. reguläres Gitter sein. Dieses Gitter kann beispielsweise eine Gitterdistanz von Δx für die Positionskoordinaten bzw. Koordinaten im Arbeitsraum und einen Gitterabstand von ΔΘ für die Orientierungskoordinaten bzw. Koordinaten des Roboters im Arbeitsraum umfassen. Der Arbeitsraum ist vorzugsweise ein kartesischer Arbeitsraum. Der Koordinatenursprung eines solchen Koordinatensystems kann vorzugsweise mit dem Ort übereinstimmen, an dem jede Achse des Roboterarbeitsraums den geringsten Wert aufweist. Alternativ kann der Arbeitsraum beispielsweise auch durch Zylinder- oder Polarkoordinaten definiert werden.
  • Unter einem Unterteilen des Gitters in Zellen Zi ist insbesondere zu verstehen, dass im Arbeitsraum des Roboters Zellen bzw. Zellbereiche definiert werden, wobei jeder Zelle Koordinaten zugeordnet werden, welche das Roboterendelement des Roboters einnehmen kann. Ist das Koordinatensystem ein kartesisches Koordinatensystem ist jede Zelle, die durch das Gitter definiert wird, vorzugsweise eine kartesische Zelle ζp, wobei p = [p1...pm] die Position einer Zelle in dem kartesischen Raum bestimmt, wobei der Positionsvektor xi, bestimmt wird durch xi = pi·Δx, i = 1...m für die kartesischen Koordinaten und xi = pi·ΔΘ für die Orientierungswerte.
  • In einer bevorzugten Ausführungsform umfasst das Verfahren ein Erstellen einer Tabelle, welche eine Vielzahl von Tabelleneinträgen Ti umfasst, wobei jeder Tabelleneintrag Ti eine Startlage xi und den dieser Startlage xi zugeordneten Gelenkstartwert qi umfasst. Insbesondere sind die Tabelleneinträge jeweils einer Zelle Zi zugeorddet.
  • Eine Tabelle ist insbesondere als Auflistung zu verstehen, welche im Wesentlichen alle ermittelten Startlagen xi listet, wobei den Startlagen xi die entsprechenden Gelenkstartwerte qi zugeordnet sind. Die Tabelle hat dabei insbesondere so viele Dimensionen wie der Roboter (also die kinematische Kette) Freiheitsgrade, also Gelenke hat. In einem anderen Aspekt kann eine Spalte der Tabelle die Startlagen xi, i = 1...n enthalten, während eine weitere Spalte die jeweiligen Gelenkstartwerte qi enthält. Unter einer Tabelle kann weiterhin eine Zuordnung bzw. Verknüpfung zwischen einer Lage x im Arbeitsraum und deren Gelenkwert q in einer Datenbank verstanden werden, wobei jede Lage im Arbeitsraum sowie jeder Gelenkwert einem Datenbankeintrag entspricht, die einander zugeordnet bzw. miteinander verknüpft sind. Insbesondere kann eine Tabelle bzw. eine Datenbank mehrdimensional sein. Dies kann insbesondere dann der Fall sein, wenn der Arbeitsraum des Roboters mehrdimensional ist.
  • Ein Tabelleneintrag ist insbesondere als Paarung einer Lage x im Arbeitsraum und des ihr zugeordneten Gelenkwerts q zu verstehen.
  • Insbesondere kann eine Tabelle eine lookup-Tabelle sein. Jeder Tabelleneintrag ist einer Zelle zugeordnet, in der ihre Koordinate liegt.
  • Weiterhin vorzugsweise umfasst das Verfahren ein Unterteilen einer Zelle Zi in zumindest zwei Unterzellen zunt, falls die Anzahl von Startlagen xi innerhalb der Zelle Zi (insbesondere von Tabelleneinträgen Ti in der Zelle) eine vorgegebene Maximalzahl übersteigt.
  • Die Funktion F(q) = x ist meist eine nicht-lineare Funktion, daher kann es vorkommen, dass die Anzahl der den jeweiligen Zellen zugeordneten Tabelleneinträgen Ti bzw. Paarungen variiert. Dies liegt insbesondere darin begründet, dass, wenn die Lagen xi im Arbeitsraum basierend auf äquidistant gewählten Gelenkwerten qi erfasst oder ermittelt werden, durch die nicht-lineare Funktion F(qi) = xi ungleiche (euklidische) Distanzen zwischen den einzelnen Lagen (Punkten) xi bzw. eine ungleiche Verteilung der Punkte xi im/über den Arbeitsraum auftritt. Zur Begrenzung der Anzahl an Tabelleneinträgen bzw. Paarungen, die einer Zelle zugeordnet sind, kann eine maximale Zahl Nζmax von Tabelleneinträgen bzw. Paarungen für eine Zelle definiert werden. Sollte diese Zahl Nζmax überstiegen werden, kann die entsprechende Zelle Zi in Unterzellen zunt unterteilt werden. Eine solche Unterzelle zunt kann beispielsweise eine halbe Größe der ursprünglichen Zellenabmessungen bzw. Kantenlängen aufweisen. Die Tabelleneinträge der Zelle, die unterteilt wurde, können dann gemäß ihrer Lokalisierung bzw. Position der jeweiligen Unterzelle zugeordnet werden. In anderen Worten ist eine Zelle Zi eine Basiszelle, welche zwei oder mehr Unterzellen aufweisen kann. Solche Zellunterteilungen können ebenso bei Unterzellen vorgenommen werden, so dass beispielsweise eine geteilte Unterzelle, wiederum zwei Unterzellen aufweist. Dieses Unterteilen kann vorzugsweise auch mehrmals für eine Zelle bzw. entsprechende Unterzellen vorgenommen werden.
  • Beispielsweise können solche Unterzellen als
    Figure DE102012022190A1_0002
    bezeichnet werden, wobei p1,i = [p1,1...p1,m] die Position der Unterzelle relativ zur Basiszelle definiert mit xi = p1,i·Δx/2 für die kartesische Koordinate und xi = p1,i·ΔΘ/2 für die Orientierungswerte. Dieser Prozess kann rekursiv fortgeführt werden bis die maximale Zahl von Tabelleneinträgen Nζmax pro Zelle bzw. Unterzelle nicht mehr überstiegen wird oder eine bestimmte bzw. vorbestimmt maximale Rekursionstiefe rmax erreicht wurde.
  • Vorzugsweise wird die Zellgröße einer Basiszelle derart gewählt, dass jeder Basiszelle zumindest ein Tabelleneintrag bzw. eine Lage im Arbeitsraum zugeordnet ist. Um dies zu erreichen kann beispielsweise die maximale Distanz, die zwischen zwei benachbarten Startlagen xi gemessen wird, als Gitterabstand Δx gewählt werden. Alternativ oder zusätzlich können die Parameter für die zu erfassenden Gelenkstartwerte qi anders gewählt werden bzw. zusätzliche Gelenkstartwerte qi und somit auch entsprechende Startlagen xi erfasst bzw. ermittelt werden.
  • Vorzugsweise umfasst das Verfahren ein Bestimmen einer Zelle Zx*, die die Ziellage x* enthält. Das Bestimmen einer Zelle Zx* kann auch als Lokalisieren der Zelle Zx* verstanden werden, die die Ziellage x* enthält. In diesem Zusammenhang kann Bestimmen beispielsweise Filtern von Tabellendaten oder Datenbankeinträgen enthalten. Vorzugsweise können in der vorhergehend beschriebenen Tabelle bzw. Datenbank Koordinatenbereiche oder Lagenbereiche definiert werden, die der jeweiligen Zelle zuzuordnen sind, und wobei die jeweilige Zelle mit den Tabelleneinträgen bzw. Lagen im Arbeitsraum verknüpft ist, die dieser Zelle zugeordnet ist. Entsprechend ist die Tabelle bzw. die Datenbank nach Zellen sowie Tabelleneinträgen durchsuchbar bzw. abfragbar gestaltet. In einem Beispiel können die Tabelleneinträge Ti, welche die Paarung von Startlage xi und Gelenkstartwert qi beinhalten, zusätzlich mit einer Liste bzw. Tabelle bzw. Tabellenspalte verbunden bzw. zugeordnet bzw. gekoppelt sein, die die jeweilige Paarung mit der entsprechenden Zelle verknüpft.
  • Vorzugsweise umfasst das Verfahren ein Bestimmen eines Tabelleneintrags Ttemp, der der bestimmten Zelle Zx* zugeordnet ist und eine minimale Distanz dtemp zu der Ziellage x* aufweist. Das Bestimmen eines Tabelleneintrags Ttemp, kann insbesondere das Zugreifen und Auswerten von Tabelleneinträgen umfassen. Weiterhin kann das Bestimmen als Berechnen der jeweiligen Distanz/Abstand eines Tabelleneintrags (bzw. einer Lage oder Koordinate des Tabelleneintrags) zur Zielkoordinate x* beinhalten.
  • Vorzugsweise umfasst das Verfahren ein Bestimmen von benachbarten Zellen Zni, deren Distanz dG ihrer Grenzen zu der Ziellage x* kleiner ist als dtemp. Um sicherzustellen, dass keine weitere Startlage im Arbeitsraum existiert, die näher an der Ziellage x* liegt als die Lage xtemp des Tabelleneintrags Ttemp, kann überprüft werden, ob eine benachbarte Zelle Zni besonders nahe an der Ziellage x* liegt. Hierzu kann zuerst überprüft werden, ob die Grenzen zwischen der Zelle Zx* und benachbarten Zellen Zni näher an der Ziellage x* liegen als die bisher durch den Tabelleneintrag Ttemp aufgefundene Startlage. Das Bestimmen kann insbesondere ein Abfragen der Tabelle umfassen, wenn zu jedem Tabelleneintrag bereits hinterlegt wird, ob und ggf. welche Zellen Zni ihre Grenze näher an dG haben bzw. haben könnten als dtemp.
  • Vorzugsweise umfasst das Verfahren ein Überprüfen der Tabelleneinträge Tni, die der benachbarten Zelle/n Zni zugeordnet ist/sind, ob deren Distanz dni zur Ziellage x* kleiner ist als die Distanz dtemp. Wurde festgestellt, dass eine oder mehrere Zellen Zni, eine Distanz dG ihrer Grenzen aufweisen, die zu der Ziellage x* kleiner ist als dtemp, können die Tabelleneinträge Tni der jeweiligen Zellen Zni überprüft werden, ob diese näher an der Ziellage x* liegen/angeordnet sind als dtemp. Das Überprüfen kann beispielsweise eine Routine sein, die vollautomatisch durchgeführt wird.
  • Vorzugsweise umfasst das Verfahren ein Auswählen des Tabelleneintrags mit der primären Startlage xj aus der Zelle Zx* oder der Zelle Zni, deren Distanz d zur Ziellage x* minimal ist. Vorteilhafterweise kann der Tabelleneintrag ausgewählt/bestimmt werden, der den geringsten Abstand zur Ziellage x* aufweist. Dieser Tabelleneintrag kann entweder aus der Zelle Zx* stammen oder aus der Zelle Zni (bzw. einer der Zellen Zni, falls mehrere Zellen die Bedingung dnz < dtemp erfüllt haben). Gibt es keine Zelle Zni, die die Bedingung dnz < dtemp erfüllt, kann sofort der Tabelleneintrag Ttemp verwendet werden, so dass dessen Lage zur primären Startlage xj ausgewählt bzw. festgelegt wird.
  • Ein Auswählen kann beispielsweise durch einen Benutzer erfolgen oder vollautomatisch durch eine Steuer-/Regelanweisung bzw. ein Computerprogramm erfolgen.
  • Ein Unterteilen des Arbeitsraums in Zellen Zi und Zuordnen von Startlagen im Arbeitsraum in die jeweiligen Zellen ist insbesondere vorteilhaft, weil hierdurch nicht mehr jede der erfassten bzw. ermittelten Startlagen xi abgefragt bzw. deren Abstand/Distanz d zur Ziellage x* bestimmt werden muss, sondern nur die Startlagen, welche der Zelle Zx* bzw. zusätzlich einer/mehrerer benachbarten Zelle/n Zni zugeordnet bzw. zugewiesen sind.
  • Gemäß einer weiteren bevorzugten Ausführungsform ist das Gitter gemäß dem Verfahren derart gestaltet, dass das Gitter über den Arbeitsraum des Roboters ein äquidistantes Gitter mit einer Gitterdistanz von Δx ist, und wobei die Startlagen xi in kartesischen Koordinaten angegeben bzw. festgelegt bzw. ermittelt sind bzw. werden.
  • Wie bereits weiter oben angedeutet umfasst das Erfassen einer Vielzahl von Gelenkstartwerten qi vorzugsweise ein Festlegen eines vorzugsweise äquidistanten Gitters (mit einer Gitterdistanz von Δq) über den Gelenkwerteraum zumindest eines Robotergelenks.
  • Das Verfahren bietet insbesondere den Vorteil, dass die Steuerungen/Regelungen verschiedenster Roboter mittels dieses Verfahrens generiert werden können. Hierbei ist es besonders vorteilhaft, dass durch dieses Verfahren generierte Steuerungen/Regelungen robust sind, dass heißt stabil laufen. Weiterhin ermöglicht dieses Verfahren, dass Positionierungsfehler sowie kritisches Verhalten bereits im Vorhinein abgeschätzt bzw. erkannt werden können.
  • Eine weitere Maßgabe an die Steuerung/Regelung von Robotern ist die Durchführung von Bewegungsabläufen/Arbeitsschritten innerhalb einer vorgegebenen Zeit. Die Einhaltung der zeitlichen Vorgaben ist beispielsweise wichtig, damit Arbeitsschritte exakt durchgeführt werden können. Daher muss eine Ansteuerung bzw. Anfahren einer Lage im Arbeitsraum innerhalb weniger Millisekunden erfolgen. Dies bedingt, dass die entsprechenden Ziellage in Echtzeit angefahren werden, und somit auch in Echtzeit berechnet werden. Auch hierin liegt der Vorteil des Verfahrens, weil die Ziellagen zeitnah, nämlich im Echtzeitbetrieb erfolgen kann. Vorzugsweise kann das vorliegende Verfahren als Computerimplementiertes und damit automatisches Verfahren ausgeführt werden.
  • System gemäß einem Aspekt
  • Ein weiterer Aspekt der vorliegenden Erfindung betrifft ein System zum automatischen Steuern bzw. Regeln von Robotern mit einer Vielzahl von Robotergelenken und einem Roboterendelement, dessen Lage x in einem Arbeitsraum gemäß einer Vorwärtskinematik x = F(q) des Roboters von einem Gelenkwert q abhängt, der für jedes Robotergelenk eine Gelenkstellung festlegt, umfassend:
    • – ein Bestimmungsmodul zum Bestimmen einer Ziellage x* des Roboterendelements im Arbeitsraum des Roboters;
    • – ein Erfassungsmodul zum Erfassen einer Vielzahl von Gelenkstartwerten qi;
    • – ein Ermittlungsmodul zum Ermitteln einer Startlage xi des Roboterendelements für jeden Gelenkstartwert qi der Vielzahl von Gelenkstartwerten gemäß der Vorwärtskinematik xi = F(qi) des Roboters;
    • – ein Ermittlungsmodul zum Ermitteln einer primären Startlage xj aus zumindest einem Teil der Vielzahl von Startlagen xi, welche eine minimale Distanz d zur Ziellage x* im Arbeitsraum des Roboters aufweist;
    • – ein Bestimmungsmodul zum Bestimmen einer Näherungsfunktion q = F ~ –1 / j(x) einer Rückwärtskinematik der Form F ~ –1 / j(x) = A·x + b in einer Umgebung der primären Startlage xj, welche die Bedingung F ~ –1 / j(xj) = qj erfüllt, für einen primären Gelenkstartwert qj aus der Vielzahl von Gelenkstartwerten, der gemäß der Vorwärtskinematik xj = F(qj) der primären Startlage xj entspricht; und
    • – ein Generierungsmodul zum Generieren von Steuer- bzw. Regelsignalen zum Anfahren der Ziellage x* basierend auf der ermittelten Näherungsfunktion q = F ~ –1 / j(x).
  • Ein Bestimmungsmodul zum Bestimmen einer Ziellage x* ist insbesondere mit dem System derart verbunden, so dass die Daten, nämlich eine oder mehrere Ziellagen x* dem System zur Weiterverarbeitung zur Verfügung gestellt werden können. Ein Bestimmungsmodul kann beispielsweise einen Sensor umfassen, der eine bestimmte Ziellage x* detektiert. Zusätzlich oder alternativ kann ein Bestimmungsmodul eine Benutzeroberfläche beinhalten, so dass ein Benutzer eine/mehrere (gewünschte) Ziellagen x* eingeben kann. Das Bestimmungsmodul kann ebenfalls einen Computer und/oder Computerprogramm umfassen. Ein solches Computerprogramm kann beispielsweise einen bestimmten Bewegungsablauf/Trajektorie, welche das Roboterendelement eines Roboters durchführen soll, zum Inhalt haben, wobei eine Vielzahl von Ziellagen x*l in diesem Bewegungsablauf beinhaltet sein können. Jede dieser Vielzahl von Ziellagen x*l kann dann von dem Bestimmungsmodul erfasst bzw. erhalten werden, um dann von dem System parallel oder seriell weiterverarbeitet zu werden.
  • Ein Erfassungsmodul zum Erfassen von Gelenkstartwerten, welche beispielsweise minimale, maximale oder Gelenkzwischenstellungen insbesondere ein Gitter im Gelenkwerteraum festlegen können, kann beispielsweise zumindest einen Computer mit einem CD-Laufwerk umfassen, so dass Gelenkstartwerte – und falls nötig deren Zuordnung zu bestimmten beweglichen Roboterelementen (Gelenken) – aus einer CD ausgelesen und von dem System weiterverarbeitet werden können. Alternativ oder zusätzlich zu einer CD können Gelenkstartwerte auf anderen Massenspeichermedien bereitgestellt werden. Beispielsweise können Gelenkstartwerte auf einem Festkörperlaufwerk (Solid-State-Drive, SSD), einem USB-Stick oder ähnlichem hinterlegt bzw. abgespeichert sein und bei Bedarf ausgelesen werden. Alternativ oder zusätzlich kann das Erfassungsmodul mit einem Roboter gekoppelt sein, so dass am Roboter eingestellte Gelenkstartwerte über Internet, Bussysteme oder andere Datenübertragungssysteme von dem Erfassungsmodul erfasst werden können. Weiterhin kann das Erfassungsmodul Daten/Datensätze zu Gelenkwerten von anderen Quellen beziehen wie beispielsweise mittels direkter oder indirekter Benutzereingabe. Eine direkte Benutzereingabe kann beispielsweise eine Eingabe in einer Benutzeroberfläche/Benutzerschnittstelle des Erfassungsmoduls sein. Eine indirekte Benutzereingabe kann beispielsweise eine Eingabe über eine graphische Benutzerschnittstelle sein, die einem Benutzer über einen (externen) Computer/Laptop zur Verfügung steht, und die Benutzereingaben mittels Internet, Intranet etc. an das Erfassungsmodul übertragen bzw. übermittelt werden.
  • Das Ermittlungsmodul zum Ermitteln einer Vielzahl von Startlagen xi kann analog zum Erfassungsmodul zum Erfassen von Gelenkstartwerten funktionieren. Insbesondere kann in einer Ausführungsform das Erfassungsmodul zum Erfassen von Gelenkstartwerten auch das Ermittlungsmodul zum Ermitteln einer Vielzahl von Startlagen xi sein. In einer Ausführungsform können beim Erfassen von Gelenkstartwerten qi zugleich bzw. unmittelbar die zugehörigen Startlagen xi ermittelt werden, da jeder Gelenkwert q mit einer entsprechenden Lage x im Arbeitsraum über die Funktion F(q) = x miteinander in Beziehung steht.
  • Ein Ermittlungsmodul zum Ermitteln einer primären Startlage xj kann insbesondere ein Computer mit einem Rechenprogramm bzw. Auswerteprogramm sein, welches determiniert, welche Startlage xj aus der Vielzahl der Startlagen xi die kleinste (euklidische) Distanz d zu der Ziellage x* im Arbeitsraum des Roboters aufweist.
  • Ein Bestimmungsmodul zum Bestimmen einer Näherungsfunktion F –1 / j kann insbesondere ein Computer mit einem Rechenprogramm sein, welches eine Rückwärtskinematik berechnet. In einem Ausführungsbeispiel kann das Bestimmungsmodul mit dem Ermittlungsmodul zum Ermitteln einer primären Startlage xj gekoppelt sein. In einem anderen Ausführungsbeispiel sind das Bestimmungsmodul und das Ermittlungsmodul ein gemeinsames Modul.
  • Ein Generierungsmodul kann insbesondere ein Controller oder Steuer/Regelprogramm sein, welches den Roboter basierend auf den vorher ermittelten/erfassten/bestimmten Daten bzw. Werten (wie Zielkoordinate, Elementwert, etc.) ansteuert bzw. eine Koordinate anfahren lässt, so dass eine gewünschte Position im Arbeitsraum angefahren bzw. eine bestimmte Trajektorie ausgeführt werden kann.
  • In einer bevorzugten Ausführungsform können sämtliche Module (wie Ermittlungsmodul, Bestimmungsmodul etc.) des Systems auf einem Computer, PC, Laptop oder einem Controller vorgesehen sein. Alternativ oder zusätzlich kann ein Netzwerk bzw. mehrere Computer mit ggf. erforderlichen Schnittstellen für Sensoren etc. das System bilden. Weiterhin könnte beispielsweise ein diskretes Bauteil vorgesehen sein bzw. eine kompakte Baugruppe, die sämtliche Module beinhaltet. In einer anderen bevorzugten Ausführungsform sind nur einige Module oder keines der Module (physisch) als Baugruppe montiert, sondern über Datenübertragung miteinander verkoppelt, so dass entsprechende Module miteinander kommunizieren können.
  • Insbesondere kann das System ausgestaltet sein, um die bevorzugten Ausführungen des Verfahrens auszuführen.
  • Neben entsprechenden Verfahren zur automatischen Generierung einer Robotersteuerung/-Regelung bietet die Erfindung auch ein Computerprogrammprodukt, insbesondere in Form eines Speichermediums oder einer Signalfolge, umfassend computerlesbare Anweisungen, welche, wenn geladen in einen Speicher eines Computers und ausgeführt von dem Computer, bewirken, dass der Computer ein Verfahren gemäß der vorliegenden Erfindung, insbesondere in einer bevorzugten Ausführungsform durchführt.
  • In anderen Worten beinhaltet ein weiterer Aspekt ein Computerprogrammprodukt umfassend computerlesbare Anweisungen, welche, wenn geladen in einen Speicher eines Computers und ausgeführt von dem Computer, bewirken, dass der Computer ein Verfahren gemäß der vorangehend beschriebenen Ausführungsformen durchführt.
  • Die Erfindung wird nachfolgend anhand begleitender Zeichnungen anhand eines Ausführungsbeispiels beispielhaft beschrieben. Dabei zeigt:
  • 1: eine schematische Darstellung eines planaren Zweiarmroboters;
  • 2: eine Darstellung eines Gitters über den Arbeitsraum des Roboters mit eingezeichneten Startlagen xi und einer Sollwert-Trajektorie X2 = 0.25·X1 + 50 des planaren Zweiarmroboters;
  • 3: eine Darstellung eines Gitters über den Arbeitsraum des planaren Zweiarmroboters mit eingezeichneten Startlagen xi und der tatsächlichen Trajektorie des planaren Zweiarmroboters;
  • 4: eine graphische Darstellung der Positionsfehler bezüglich der tatsächlichen Trajektorie im Vergleich zu der Sollwert-Trajektorie X2 = 0.25·X1 + 50 entlang X1 des planaren Zweiarmroboters;
  • 5: eine graphische Darstellung der mittels der jeweiligen Näherung ermittelten, tatsächlichen Positionen der beweglichen Roboterelemente und den Sollpositionen entlang X1;
  • 6: eine graphische Darstellung der Gelenkstellungsfehler der beweglichen Roboterelemente und der Soll-Elementwerte entlang X1;
  • 7: eine graphische Darstellung der Positionsfehler bezüglich einer tatsächlichen Trajektorie im Vergleich zu einer Sollwert-Trajektorie X2 = 0.25·X1 + 5 entlang X1; und
  • 8: eine schematische Darstellung eines Systems.
  • Detaillierte Beschreibung der Figuren und eines Ausführungsbeispiels
  • Nachstehend wird nun die vorliegende Erfindung anhand eines detaillierten Ausführungsbeispiels beschrieben.
  • 1 zeigt eine schematische Darstellung eines planaren Zweiarmroboters 100, welcher einen ersten Arm 102 (erstes Glied der kinematischen Kette) und einen zweiten Arm 104 (zweites Glied der kinematischen Kette) umfasst. Während der erste Arm 102 über ein erstes Gelenk 108 mit einer Roboterbasis 110 (Lagerung) verbunden ist, sind die beiden Arme 102, 104 über ein zweites Gelenk 106 miteinander verbunden. Der erste Arm 102 und der zweite Arm 104 haben im vorliegenden Beispiel je eine Länge 1000 mm. An einem Ende des zweiten Arms 104 ist ein Roboterendelement 112 (Endeffektor) angeordnet. Wie aus 1 veranschaulicht, ist der erste Arm 102 um das erste Gelenk 108 (bewegliches Roboterelement) zwischen 0° bis etwa 360° beweglich bzw. schwenkbar, wobei der erste Arm 102 jede Gelenkstellung q1 von 0° bis etwa 360° einnehmen kann. In anderen Worten stellt die erste Gelenkstellung q1 einen Achswert dar, welcher bei einem Anfahren einer Lage im Arbeitsraum eingenommen werden kann. Der zweite Arm 104 ist um das zweite Gelenk 106 (zweites bewegliches Roboterelement) zwischen 0° bis etwa 360° beweglich bzw. schwenkbar, wobei der zweite Arm 104 jede Gelenkstellung q2 von 0° bis etwa 360° einnehmen kann. In anderen Worten stellt die erste Gelenkstellung q2 einen Achswert dar, welcher bei einem Ansteuern/Ausregeln des Roboters bzw. Anfahren einer Lage im Arbeitsraum einstellbar ist.
  • X1 und X2 stellen die Koordinatenachsen des kartesischen Koordinatensystems dar, welches den kartesischen Arbeitsraum des Zweiarmroboters 100 aufspannt. Dieses Koordinatensystem wird für die nachstehenden Berechnungen und Erklärungen verwendet.
  • Der Zweiarmroboter 100 hat zwei Singularitäten. Die erste Singularität ist in der Mitte des Arbeitsraums im Koordinatenursprung (X1 = 0; X2 = 0). Die zweite Singularität ist verteilt über die äußere Grenze bzw. den Rand des Arbeitsraums. Mit Blick auf die 1 und 2 wird die Lage der ersten Singularität im Koordinatenursprung des X1-X2-Koordinatensystems deutlich erkennbar.
  • Der planare Zweiarmroboter 1 weist folgende Vorwärtskinematik auf: X1 = l·cos(q1) + l·cos(q1 + q2) X2 = l·sin(q1) + l·sin(q1 + q2).
  • Die exakten Achswerte bzw. Gelenkstellungen q1 und q2 sind über die direkte Lösung der inversen Kinematik bestimmbar:
    Figure DE102012022190A1_0003
  • Die inverse Kinematik wird in diesem Fall verwendet, um die exakten Elementwerte zu erhalten, um basierend auf diesen exakten Werten die Genauigkeit der Näherungsfunktion bewerten zu können.
  • Die obenstehende arctan-Funktion ist nicht eindeutig in Wert π, daher müssen Ergebnisse durch entsprechendes Addieren oder Subtrahieren von π oder einem Vielfachen von π angepasst werden.
  • Im weiteren Ausführungsbeispiel wird als exemplarische Trajektorie X2 = 0.25·X1 + 50 verwendet, wobei eine Tastrate von 1 mm in die X1-Richtung verwendet wird. Dadurch passiert die Trajektorie die erste Singularität in einem Abstand von etwa 45 mm.
  • Im vorliegenden Beispiel sind nun einige Lagen im Arbeitsraum, die auf der Trajektorie X2 = 0.25·X1 + 50 liegen, Ziellagen x*. Durch die Bestimmung der Trajektorie und der Festlegung, dass eine Tastrate von 1 mm verwendet wird, wird bestimmt, welche Lagen im Arbeitsraum als Ziellagen x* sein sollen. Eine Tastrate ist vorliegend derart zu verstehen, dass nicht jeder Punkt auf der Trajektorie eine Ziellage x* bildet, sondern nur die Punkt, die ausgehend von einem Startpunkt jeweils 1 mm (-Schritten) voneinander beabstandet sind. So kann dann basierend auf einer Näherungsfunktion hinsichtlich der jeweiligen Ziellage x* der zu dieser gehörende Zielgelenkwert q* bestimmt werden, so dass durch eine entsprechende Ansteuerung der Roboters die jeweilige Ziellage angefahren werden kann.
  • Im nächsten Schritt werden die Gelenkstellungen q1 und q2 der beiden Gelenke 108 und 106 festgelegt, die eine Vielzahl von Gelenkstartwerten qi bilden. Insbesondere sollen die zu erfassenden Gelenkstartwerte qi in der hier dargestellten Ausführungsform ein Gitter bzw. Raster im Gelenkwerteraum bilden, wobei für jede Dimension des Gelenkwerteraums, also für jedes Gelenk eine Rasterweite festgelegt ist. Hierzu werden ausgehend von einer minimalen Gelenkstellung qmin,1 bis zu einer maximalen Gelenkstellung qmax,1 die Rasterwerte der Gelenkstellung des ersten Robotergelenks 108 ermittelt, wobei vorgegebene konstante Schritte vorgenommen werden. In anderen Worten wird eine Listung von Gelenkstellungen vorgenommen, die vorzugsweise elektronisch geschieht.
  • Für das zweite Robotergelenk 106 werden ebenfalls Gelenkstellungen q2 von einer minimalen Gelenkstellung qmin,2 bis zu einer maximalen Gelenkstellung qmax,2 ermittelt, wobei auch hier vorgegebene konstante Schritte vorgenommen werden. Die Schrittgröße für die ersten und zweiten Gelenkstellungen kann dabei gleich groß sein, muss aber nicht.
  • Gemäß einer bevorzugten Ausführungsform ist damit ein Gitter über den Gelenkwerteraum (auch joint space genannt) festgelegt. So spannen die Vielzahl der entstehenden bzw. festgelegten Gelenkstellungen in den beiden Dimensionen des zweidimensionalen Gelenkwerteraums ein Gitter (Raster) auf, dessen Schnittpunkte die Vielzahl von Gelenkstartwerten qi festlegen. Die Vielzahl von Gelenkstartwerten enthält also zu jeder Gelenkstellung des ersten Robotergelenkes eine Vielzahl von Gelenkstartwerten mit unterschiedlicher zweiter Gelenkstellung und umgekehrt. Ein solches Gitter könnte beispielsweise ein äquidistantes Gitter sein, welches eine Gitterdistanz von Δq aufweist. Im vorliegenden Beispiel könnte die Gitterdistanz bzw. Gitterabstände Δq 0.3 rad betragen.
  • Im Hinblick auf das Vorgesagte, wird nur eine sog. Rechte-Hand-Konfiguration als kinematische Konfiguration verwendet. Positionen, die exakt auf der Grenze bzw. dem Rand des Arbeitsraums liegen werden nicht verwendet.
  • Während des Erfassens der Gelenkstartwerte qi (welche insbesondere die Gitterpunkte des oben beschriebenen Gitters bilden) kann beispielsweise zu einem bestimmten Gelenkstartwert qi = [q1, q2]T dessen zugehörige Startlage xi erfasst oder ermittelt werden, wobei die Koordinaten der Startlage durch X1 und X2 definiert werden. Dies kann beispielsweise durch Berechnen mittels der Formeln X1 = l·cos(q1) + l·cos(q1 + q2) X2 = l·sin(q1) + l·sin(q1 + q2). oder durch Messen der Lage (Koordinaten) des Endeffektors 112 geschehen. Die Startlagen xi mit deren zugeordneten Gelenkstartwerten qi werden vorzugsweise gemeinsam gelistet bzw. miteinander verknüpft abgespeichert.
  • In einem bevorzugten Ausführungsbeispiel können die Startlagen xi und der der jeweiligen Startlage xi zugeordnete Gelenkstartwert qi als ein Tabelleneinträgen Ti in einer Tabelle hinterlegt werden, wodurch sie bei Bedarf abrufbar bzw. einsehbar sind.
  • Die Gelenkstartwerte qi, die einer jeweiligen Startlage xi zugeordnet werden, sind insbesondere Kombinationen aus den einzelnen Gelenkstellungen eines Roboters. Beispielsweise weist der Roboter 100 im vorliegenden Ausführungsbeispiel zwei Gelenke 106 und 108 auf. Entsprechend ist jeder Gelenkstartwert qi eine Kombination aus einer bestimmten Gelenkstellung q1 des ersten Gelenks 106 und einer bestimmten Gelenkstellung q2 des zweiten Gelenks 108. Ein Tabelleneintrag Ti enthält somit einen Eintrag für einen Gelenkstartwerte qi, der sich aus einer bestimmten Kombination von Gelenkstellungen q1 und q2 der Gelenke eines Roboters zusammensetzen. Unter einer bestimmten Kombination ist insbesondere zu verstehen, dass jedem Robotergelenk eine bestimmte Winkel- bzw. Gelenkstellung zugeordnet wird. Zum Beispiel kann sich ein Gelenkwert qi aus einer Kombination eines ersten Gelenkwinkels q1 von 30° für das erste Robotergelenk und eines zweiten Gelenkwinkels q2 von 45° für das zweite Robotergelenk ergeben.
  • 2 zeigt eine Darstellung eines 2-dimensionalen Gitters 200 über den Arbeitsraum des Roboters 100 aus 1 mit eingezeichneten Startlagen xi 206 und einer Sollwert-Trajektorie 204, wobei die Sollwert-Trajektorie definiert ist durch X2 = 0.25·X1 + 50. Entsprechend sind die Ausführungen der zu 1 genannten Trajektorie ebenfalls für die Sollwert-Trajektorie 204 gültig.
  • Wie aus 2 ersichtlich, kann das Gitter 200 über den Arbeitsraum des Roboters ein äquidistantes Gitter sein. Das Gitter kann eine freiwählbare bzw. definierbare Gitterdistanz Δx bzw. Gitterabstände aufweisen. Im vorliegenden Beispiel wurde eine Gitterdistanz Δx von 500 mm gewählt. Durch das Gitter 200 wird eine Vielzahl von Zellen 202 definiert. Jede Zelle 202 ist durch die Koordinatenbereiche, die sie umfasst, eindeutig identifizierbar, so können jeder Zelle 202 entsprechende Startlagen xi zugeordnet bzw. zugewiesen werden. Beispielsweise kann der Zelle 220 die Startlage 218 eindeutig zugewiesen werden.
  • Weiterhin ist aus 2 ersichtlich, dass keine der erfassten bzw. ermittelten Startlagen xi 206 direkt auf der Sollwert-Trajektorie 204 liegt, sondern lediglich in der näheren oder weiteren Umgebung um die Sollwert-Trajektorie 204. Die erste Singularität 210 und die zweite Singularität 208 des Roboters 100 sind ebenfalls aus der 2 ersichtlich.
  • Die Dichte bzw. Anzahl der ermittelten Startlagen xi 206 ist im Bereich/in der Nähe der Singularitäten 208, 210 höher bzw. ansteigend im Vergleich zum sonstigen Arbeitsbereich. Insbesondere steigt die Dichte der erfassten oder ermittelten Startlagen xi 206 in der näheren Umgebung der ersten Singularität 210 an.
  • Wird beispielsweise als eine der Ziellagen x* der Punkt mit den Koordinaten [X1 = 800; X2 = 250] gewählt, so liegen die Startlagen 212, 214 und 216 aus der Vielzahl der ermittelten Startlagen xi 206 in der nächsten Umgebung zu dieser Ziellage mit den Werten [X1 = 800; X2 = 250]. In diesem Beispiel würde die Startlage 214 die geringste Distanz d zu der Ziellage mit den Koordinaten [X1 = 800; X2 = 250] aufweisen. In anderen Worten wäre die Startlage 214 die primäre Startlage xj aus der Vielzahl von Startlage xi, da sie die Bedingung d = |x* – xj|2 = min erfüllt.
  • Basierend auf dieser primären Startlage xj kann nun die Näherungsfunktion F ~ –1 / j einer Rückwärtskinematik basierend auf den Bedingungen F ~ –1 / j(xj) = qj und F ~ –1 / j(x) = A·x + b bestimmt werden.
  • Beispielsweise kann in einem Ausführungsbeispiel vorgesehen sein, dass auf der Suche nach einer geeigneten bzw. der bestgeeigneten primären Startlage xj zuerst die Koordinaten einer Zelle durchsucht bzw. abgefragt werden, in der die Ziellage x* liegt. Wäre zum Beispiel der Punkt 232 in der 2 die Ziellage x*, dann wäre die Startlage 230 diejenige Startlage innerhalb der Zelle 224, die der Ziellage x* 232 am nächsten liegen würde. Die bestgeeignete primäre Startlage xj wäre somit gefunden. Der Vorteil in der Suche innerhalb einer Zelle ist, dass nur wenige ermittelte oder erfasste Startlagen überprüft werden müssen, um die bestgeeigneten primären Startlagen xj zu finden.
  • Wäre jedoch der Punkt 222 die Ziellage x* dann wäre die Startlage 230 zwar diejenige Startlage innerhalb der Zelle 224, die der Ziellage x* 222 am nächsten wäre. Jedoch ist die Startlage 228 in der Zelle 226 tatsächlich die Startlage, die die geringste Distanz d zu der Ziellage 222 aufweist. Durch die geringere Distanz d zwischen den Punkten 222 und 228 im Arbeitsraum kann davon ausgegangen werden, dass die Startlage 228 einen besseren Ausgangwert für eine Näherung bereitstellt.
  • Um immer den besten Ausgangswert zu finden, kann in einer bevorzugten Ausführungsform des Verfahrens vorgesehen sein, dass zuerst die Zelle Zx*, die die Ziellage x* enthält, bestimmt wird. Für die Ziellage x* 222 ist dies die Zelle 224. In einem nächsten Schritt wird eine temporäre Startlage xtemp bzw. der Tabelleneintrag Ttemp bestimmt, der der bestimmten Zelle Zx* zugeordnet ist und eine minimale Distanz dtemp zu der Ziellage x* aufweist. Die temporäre Startlage xtemp/der Tabelleneintrag Ttemp ist im vorliegenden Fall die Startlage 230. Als nächstes wird nach einer benachbarten Zellen Zni gesucht, deren Distanz dG ihrer Grenzen zu der Ziellage x* kleiner ist als dtemp. Die Zelle Zni ist in diesem Beispiel die Zelle 226. Nun werden die Tabelleneinträge Tni überprüft, die der benachbarten Zelle Zni 226 zugeordnet sind, ob deren Distanz dni zur Ziellage x* kleiner ist als die Distanz dtemp. Diese Überprüfung ergibt, dass die Startlage 228 näher an der Ziellage x* 222 liegt als die Startlage 230. Entsprechend wird der Tabelleneintrag mit der Startlage 228 aus den beiden Zellen Zx* 224 und Zni 226 ausgewählt. Vorteilhaft an dieser Vorgehensweise ist, dass nur die Punkte (Startlagen) von vorherbestimmten, ausgewählten Zellen überprüft werden müssen und nicht alle Zellen des Arbeitsraums.
  • Die oben dargelegte Vorgehensweise gilt in analoger Weise für jeden anderen Punkt auf der Trajektorie, der eine Ziellage x* darstellt.
  • Basierend auf den ermittelten Daten bzw. Datensätzen zu der Näherungsfunktion können entsprechende Steuer-/Regelsignale generiert werden, um die Koordinaten der Ziellage x* anzusteuern/anzufahren.
  • 3 zeigt eine Darstellung eines Gitters 300 über den Arbeitsraum des Roboters 100, der in 1 gezeigt wurde, mit eingezeichneten Startlagen xi 306 und der tatsächlichen Trajektorie 302 des planaren Zweiarmroboters 2, welche mittels des erfindungsgemäßen Verfahrens ermittelt wurde. Die primären Startlagen xi 306, welche zur Ermittlung der tatsächlichen Trajektorie 302 herangezogen wurden, sind in der 3 eingekreist. Exemplarisch ist die Startlage 304 zu nennen, die eine primäre Startlage aus der Vielzahl der ermittelten Startlagen xi 306 ist und zur Ermittlung der Trajektorie 302 verwendet wurde.
  • 4 zeigt eine graphische Darstellung 400 der Positionsfehler (in mm) bezüglich der tatsächlichen Trajektorie im Vergleich zu der Sollwert-Trajektorie X2 = 0.25·X1 + 50. Wie aus der 4 ersichtlich ist, fluktuiert bzw. variiert die Größe des Fehlers zwischen den tatsächlich erreichten bzw. angenäherten Werten/Koordinaten, welche die tatsächliche Trajektorie darstellen, und den ursprünglich, gewünschten Werten/Koordinaten, die die Sollwert-Trajektorie darstellen. Die Abweichungen zwischen beiden Trajektorien variieren in Abhängigkeit von der entsprechenden Koordinate entlang der X1-Richtung zwischen 0 mm und etwa 20 mm. In der Nähe der Ränder bzw. Grenzen des Arbeitsraums (zweite Singularität) erreicht die Abweichung ihren Höchstwert mit etwa 55 mm. In der Umgebung um die erste Singularität bei X1 = 0 ist die Abweichung nicht höher als etwa 5 mm.
  • 5 zeigt eine graphische Darstellung 500 der mittels der jeweiligen Näherung ermittelten, tatsächlichen („q1 real” und „q2 real”) Gelenkstellungen q1, q2 (Winkel zwischen –π und π) der Robotergelenke 108, 106 und den Sollwerten („q1 setpoint” und „q2 setpoint”) entsprechend der Sollwert-Trajektorie X2 = 0.25·X1 + 50 entlang X1-Richtung.
  • 6 zeigt eine graphische Darstellung 600 der Gelenkstellungsfehler (Differenz zwischen den tatsächlichen Werten und den Sollwerten aus 5) für die Gelenkstellungen q1, q2 der Robotergelenke 108 und 106.
  • 7 zeigt eine graphische Darstellung 700 der Positionsfehler (in mm) in X2-Richtung bezüglich einer tatsächlichen Trajektorie im Vergleich zur Sollwert-Trajektorie X2 = 0.25·X1 + 5 entlang der X1-Richtung des planaren Zweiarmroboters 100. Diese Trajektorie kommt der ersten Singularität – siehe Bezugszeichen 202 der 2 – näher als die vorhergehend beschriebene Trajektorie X2 = 0.25·X1 + 50. Wie aus 7 ersichtlich ist, bleibt der Positionsfehler in einem Intervall von X1 = +/–25 mm, welche die nahesten Punkte/Koordinaten zur ersten Singularität darstellen, unterhalb 1.8 mm, während der Positionsfehler in dem vorherigen Beispiel bei etwa 5 mm lag.
  • 8 zeigt eine schematische Darstellung eines Systems 800 mit einem Bestimmungsmodul 810 zum Bestimmen einer Ziellage x*, einem Erfassungsmodul 820 zum Erfassen einer Vielzahl von Gelenkstartwerten qi, einem Ermittlungsmodul 830 zum Ermitteln einer Vielzahl von Startlagen xi basierend auf der Funktion F(qi) = xi einer Vorwärtskinematik des Roboters, einem Ermittlungsmodul 840 zum Ermitteln einer primären Startlage xj aus der Vielzahl von Startlagen xi, einem Bestimmungsmodul 850 zum Bestimmen einer Näherungsfunktion F ~ –1 / j, und einem Generierungsmodul 860 zum Generieren von Steuer-/Regelsignalen zum Ansteuern/Anfahren der Ziellage x* basierend auf der bestimmten Näherungsfunktion.
  • Das Bestimmungsmodul 810 zum Bestimmen einer Ziellage x* ist insbesondere mit dem System 800 bzw. den anderen Komponenten/Modulen des Systems derart verbunden, so dass die Daten, nämlich eine oder mehrere Zielkoordinaten x* dem System zur Weiterverarbeitung zur Verfügung gestellt werden können. Das Bestimmungsmodul 810 kann beispielsweise einen Sensor umfassen. Zusätzlich oder alternativ kann das Bestimmungsmodul 810 eine Benutzeroberfläche beinhalten, so dass ein Benutzer eine/mehrere (gewünschte) Ziellagen x* eingeben kann. Das Bestimmungsmodul 810 kann ebenfalls einen Computer und/oder Computerprogramm umfassen.
  • Das Erfassungsmodul 820 zum Erfassen von Gelenkstartwerten kann beispielsweise zumindest einen Computer mit einem CD-Laufwerk umfassen, so dass Gelenkstartwerte aus einer CD ausgelesen und von dem System 800 weiterverarbeitet werden können. Weiterhin können Gelenkstartwerte auf anderen Massenspeichermedien wie beispielsweise einem Festkörperlaufwerk (Solid-State-Drive, SSD), einem USB-Stick oder ähnlichem hinterlegt bzw. abgespeichert sein und bei Bedarf ausgelesen werden. Alternativ oder zusätzlich kann das Erfassungsmodul 830 mit einem Roboter 100 gekoppelt sein, so dass am Roboter 100 eingestellte Gelenkstartwerte über Internet, Bussysteme oder andere Datenübertragungssysteme von dem Erfassungsmodul 830 erfasst werden können.
  • Analog zum Erfassungsmodul 820 zum Erfassen von Gelenkstartwerten kann das Ermittlungsmodul 830 zum Ermitteln einer Vielzahl von Startlagen xi funktionieren. Insbesondere kann in einer Ausführungsform das Erfassungsmodul 820 zum Erfassen von Gelenkstartwerten auch das Ermittlungsmodul 830 zum Ermitteln einer Vielzahl von Startlagen xi sein. In einer Ausführungsform können beim Erfassen von Gelenkstartwerten qi zugleich die Startlagen xi ermittelt (insbesondere erfasst) werden, da jeder Gelenkwert q mit einer entsprechenden Lage x im Arbeitsraum über die Funktion F(q) = x miteinander in Beziehung steht.
  • Das Ermittlungsmodul 840 zum Ermitteln einer primären Startlage xj kann insbesondere ein Computer mit einem Rechenprogramm bzw. Auswerteprogramm sein, welches determiniert.
  • Das Bestimmungsmodul 850 zum Bestimmen einer Näherungsfunktion F ~ –1 / j kann insbesondere ein Computer mit einem Rechenprogramm sein, welches eine Rückwärtskinematik berechnet. In einem Ausführungsbeispiel kann das Bestimmungsmodul 850 mit dem Ermittlungsmodul 840 zum Ermitteln einer primären Startlage xj gekoppelt sein. In einem anderen Ausführungsbeispiel sind das Bestimmungsmodul und das Ermittlungsmodul ein gemeinsames Modul.
  • Ein Generierungsmodul 860 kann insbesondere ein Controller zum Steuern und Regeln, ein Steuerprogramm oder ein Regelprogramm sein, welches den Roboter 100 basierend auf den vorher ermittelten/erfassten/bestimmten Daten bzw. Werten (wie Zielkoordinate, Elementwert, etc.) veranlasst eine oder mehrere Lagen im Arbeitsraum anzufahren, so dass beispielsweise eine gewünschte Trajektorie ausgeführt werden kann.
  • Die nachstehenden Ausführungen beziehen insbesondere in erklärender und weiterführender Weise auf die vorherstehenden Ausführungen.
  • Performance
  • Angenommen ein Roboter weist eine Kinematik mit 6 Freiheitsgraden auf, dann wären 36 Multiplikations- und 36 Additionsoperationen erforderlich, um die Gleichung F ~ –1 / j(x) = A·x + b auszuwerten. Diese Operationen können zeitnah und somit auch bei hohen Echtzeitanforderungen erfüllt werden. Entsprechend ist es vorteilhaft den Fokus auf die Laufzeit der heuristischen Suche zu legen, um die primäre Startlage xj aufzufinden bzw. zu bestimmen bzw. zu ermitteln. Entsprechend kann basierend auf den folgenden Bedingungen/Regeln die Suche optimiert werden:
    • 1) Jede Startlage xi bzw. jeder Tabelleneintrag einer Zelle Zx* (einer Ziellage x*) und ggf. deren benachbarter Zellen Zni sind zu überprüfen. Falls eine Rekursionstiefe rmax für eine bzw. alle Zelle(n) nicht erreicht wurde, ist die Anzahl der Startlagen xi, die einer Zelle zugeordnet sind, durch die maximale Anzahl Nζmax begrenzt.
    • 2) Es sollte eine Regel definiert werden, wie Zellen behandelt werden, die die maximale Anzahl von Startlagen Nζmax überschreiten. Beispielsweise kann die Suche in dieser Zelle nach einer festgelegten Zahl von Überprüfungen abgebrochen werden – unter Inkaufnahme der Tatsache, dass es sich bei der bestimmten (ermittelten) Startlage nicht um die Startlage handelt, die der Ziellage am Nächsten liegt.
    • 3) Für einen Roboter mit 6 Freiheitsgraden und einem Arbeitsraum mit 6 Freiheitsgraden, wird die maximale Anzahl von benachbarten Zellen bestimmt durch die Bedingung 12·(
      Figure DE102012022190A1_0004
      )5 + 26.
    • 4) Im Falle, dass nur eine Startlage/ein Tabelleneintrag in der Nähe der Mitte der Zelle liegt/lokalisiert ist, muss nur die Hälfte der benachbarten Zellen durchsucht bzw. deren zugeordneten Koordinaten überprüft werden. Dies stellt das „worst case”-Szenario dar.
  • Die zweite Bedingung/Regel basiert auf dem Fall, dass die ursprüngliche Zelle eine Basiszelle ist und in der Umgebung jede Zelle mit der maximalen Rekursionstiefe geteilt wurde. Dies stellt jedoch eine eher pessimistische Annahme dar.
  • Weiterhin angenommen, dass die Überprüfung/Bestimmung der (euklidischen) Distanz zwischen einer Ziellage x* und einer Startlage xj 12 (Rechen-)Operationen bedingt, kann als Obergrenze für die Zahl der benötigten Operationen (OPS) für die heuristische Suche folgendes angegeben werden:
    Figure DE102012022190A1_0005
  • Genauigkeit
  • Im Hinblick auf die praktische Anwendbarkeit sind die nachstehenden Aussagen zu verstehen. Aufgrund der Tatsache, dass F ~ –1 / j(x) = A·x + b ebenfalls als erster Schritt einer Newton-Raphson Iteration mit dem Anfangswerten bei qj interpretiert werden kann, kann die Basisinformation für eine Genauigkeitsabschätzung aus der Konvergenzprüfung der Newton Iteration entnommen werden. Sei
    Figure DE102012022190A1_0006
    offen und konvex. Es gibt eine stetig differenzierbare Funktion
    Figure DE102012022190A1_0007
    Angenommen für x(0) ∊ G, gelten folgende Bedingungen:
    Figure DE102012022190A1_0008
  • Dann sind folgende Aussagen gültig:
    • 1) Die Newton Iteration x(n+1) := x(n) – [f'(x( n ))]–1f(x(n)) ist wohldefiniert mit dem Start-Vektor x(0)
    • 2) Die Reihe x(n) konvergiert zu einem Nullpunkt x* von f, wobei gilt:
      Figure DE102012022190A1_0009
  • Insbesondere gilt folgende Bedingung: ∥f(y) – f(x) – f'(x)(y – x) ∥≤ γ / 2∥x – y∥2∀x, y ∊ G. (21)
  • Ersetzt man x durch q(0) := qj und y durch q(1) als Ergebnis der Näherung, beschreibt die linke Seite von Gleichung (21) den Positionsfehler. Entsprechend ist es erforderlich, eine gute Schätzung für die Obergrenze von γ sowie für ∥q(1) – q(0)∥. Dies wird im Anhang in (47) und (40) angegeben. Eine Schätzung für γ ist gegeben durch
    Figure DE102012022190A1_0010
    wobei di der Vektor ausgehend vom Rahmen des Gelenks/beweglichen Roboterelements hin zum Tool Center Point (TCP) des Roboters ist. Unter Verwendung der Gleichung (47), kann die Abschätzung des Fehlers E durch
    Figure DE102012022190A1_0011
    angegeben werden. Hierbei bezeichnet Δq* = qj – q* die Differenz zwischen den Gelenkwerten der Lagen xi/Tabelleneinträgen und dem gewünschten Gelenkwert bzw. Zielgelenkwert q*. Hierbei ist eine Obergrenze für ‖Δq*‖ erforderlich. Eine Obergrenze ist durch Δqi gegeben, welches durch die Zwischenwerte bzw. Zwischenschritte beim Erfassen der minimalen und maximalen Gelenkstellungen definiert wurde. Basierend hierauf kann festgelegt werden, dass
    Figure DE102012022190A1_0012
    ist. Dies ist eine eher grobe Abschätzung und mit Blick auf das Prozedere, um die Gelenkstartwerte qi und die Startlagen xi (Tabelleneinträge Ti) zu erhalten, kann angenommen werden, dass die maximalen Werte von ∥Δq*∥ etwa
    Figure DE102012022190A1_0013
  • Die Größe von ∥J –1 / j∥ kann direkt berechnet werden. Dabei sei VTΣU eine Singulärwertzerlegung von J ist, wobei Σ = diag(σ1, ...σn) mit σ1 ≥ σ2 ≥ ... ≥ σn ≥ 0. Dann ist ∥J –1 / j∥ geben durch
    Figure DE102012022190A1_0014
  • Durch die Verwendung von σn sowie die Abschätzung von Δqi und γ kann das Konvergenzverhalten der Newton-Raphson Iteration in der Umgebung von qi mittels
    Figure DE102012022190A1_0015
    abgeschätzt werden.
  • Hierbei ist anzumerken, dass diese Gleichungen nur eine grobe Abschätzung angeben. Insbesondere die Verwendung der Frobeniusnorm in Gleichung (40) führt zu deutlich höheren Werten von γ als erforderlich. Dies sollte bei der Betrachtung der Ergebnisse berücksichtigt werden.
  • Verhalten der Jakobi-Matrix
  • Die Transformation ausgehend von dem Bezugskoordinatensystem des Roboters (base frame) zu dem Koordinatensystem des Gelenkabschnitts des vorliegenden bzw. aktuell zu bestimmenden Robotergelenks i (frame of the current joint i) ist
    Figure DE102012022190A1_0016
  • Hierbei wird angenommen, das bewegliche Roboterelement (Gelenk, joint) ist ein Drehgelenk. Gemäß der Gleichung aus M. Mark W. Spong, Seth Hutchinson, Robot Modeling and Control. Wiley, 2006., ist die Jakobi-Matrix definiert durch
    Figure DE102012022190A1_0017
  • Nachstehend wird die Differenz der Jacobi-Matrix ΔJ = J'' – J' verursacht durch kleine Differenzen von q, mit
    Figure DE102012022190A1_0018
    abgeschätzt.
  • In allen Fällen, in dem zi nur durch die vorherigen beweglichen Roboterelemente (Gelenke, joints) beeinflusst wird, kann in einfacher Weise gezeigt werden, dass
    Figure DE102012022190A1_0019
  • Die translatorischen Komponenten können wie folgt abgeschätzt werden:
    Figure DE102012022190A1_0020
  • Dadurch ist
    Figure DE102012022190A1_0021
    wobei Δdi angegeben ist durch
    Figure DE102012022190A1_0022
    und eine Obergrenze für ∥Δdi-1∥ durch
    Figure DE102012022190A1_0023
    angegeben werden kann.
  • Entsprechend kann die Abschätzung für die translatorische Komponente durch
    Figure DE102012022190A1_0024
    angegeben werden.
  • Durch Anwendung der Frobeniusnorm ist die gewünschte Abschätzung angegeben durch
    Figure DE102012022190A1_0025
  • Abschätzung der Newton-Korrektur
  • Die Größe der Newton-Korrektur wird im Folgenden abgeschätzt. Die Newton-Korrektur ist gegeben durch δ = [Jj]–1(xj – x*). (41)
  • Das Residuum kann wie folgt angegeben werden: xj – x* = J*Δq* (42) J* = Jj + ΔJ* (43) Δq* = q* – qj (44)
  • Hier ist J* die Jakobi-Matrix am Punkt des Tabelleneintrags um den Wert ΔJ* modifiziert, welcher mittels der Gleichung (40) abschätzbar ist. Dadurch ist, unter Verwendung der Gleichungen (41) und (42): δ = J –1 / jJ*Δq* = J –1 / j(Jj + ΔJ*)Δq* (45) = Δq* + J –1 / jΔJ*Δq* (46)
  • Eine Obergrenze für δ kann durch die Verwendung der Gleichung (40) angegeben werden:
    Figure DE102012022190A1_0026
  • Schlussbemerkung: Die Werkzeugposition eines Industrieroboters wird über seinen so genannten TCP (Tool Center Point) beschrieben. Dies ist ein gedachter Referenzpunkt, der sich an geeigneter Stelle am Werkzeug befindet. Aufgrund der geschichtlichen Entwicklung von Industrierobotern war es üblich, eine Elektrode einer Punktschweißzange als TCP zu definieren. Stillschweigend hat man damit das Tool- oder Werkzeugkoordinatensystem definiert. Der Ursprung ist deckungsgleich mit dem TCP. Die Z-Richtung weist zur anderen Elektrode. Die X-Richtung steht orthogonal auf der durch die Elektrodenarme gebildeten Fläche.
  • Um zu beschreiben, welche Lage das Roboterwerkzeug einnehmen soll, genügt es, die Position und Orientierung des TCP im Raum zu definieren. Im vorliegenden Beispiel bezeichnet das Roboterendelement 112 den TCP. Die Stellung eines Industrieroboters kann nur achsbezogen beschrieben werden.
  • achsbezogenen: Für jede einzelne (lineare oder rotatorische) Achse des Roboters wird angegeben, in welcher Stellung sie sich befindet. Zusammen mit den konstruktiven Längen der Glieder ergibt sich daraus eine eindeutige Position des Roboterflansches. Dies ist die einzige Möglichkeit, die Stellung oder Konfiguration der kinematischen Kette Roboter zu beschreiben.
  • raumbezogen: Der TCP oder das Werkzeugkoordinatensystem kann nur raumbezogen beschrieben werden. Die Basis bildet das kartesische Koordinatensystem. Um zwischen der achsspezifischen Beschreibung des Roboters und der raumbezogenen Beschreibung zu wechseln, werden Transformationen verwendet.
  • Bezugszeichenliste
  • 100
    planarer Zweiarmroboter
    102
    erster Arm
    104
    zweiter Arm
    106
    zweites Robotergelenk
    108
    erstes Robotergelenk
    110
    Roboterbasis (Lagerung)
    112
    Roboterendelement (Endeffektor)
    200, 300
    Gitter
    202, 220, 224, 226
    Zelle
    204, 302
    Sollwert-Trajektorie
    206, 212, 214, 216, 218, 306
    Startlagen xi
    208
    zweite Singularität
    210
    erste Singularität
    222, 232
    Ziellagen x*
    228, 230, 304
    primäre Startlagen xj
    800
    System
    810
    Bestimmungsmodul
    820
    Erfassungsmodul
    830
    Ermittlungsmodul
    840
    Ermittlungsmodul
    850
    Bestimmungsmodul
    860
    Generierungsmodul
  • 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 Nicht-Patentliteratur
    • „Kinematik und Robotik” von Manfred Husty et al. verwiesen, welches 1997 [0027]
    • M. Mark W. Spong, Seth Hutchinson, Robot Modeling and Control. Wiley, 2006. [0140]

Claims (12)

  1. Verfahren zur automatischen Generierung einer Steuerung bzw. Regelung für einen Roboter (100) mit einer Vielzahl von Robotergelenken (106, 108) und einem Roboterendelement (112), dessen Lage x in einem Arbeitsraum gemäß einer Vorwärtskinematik x = F(q) des Roboters von einem Gelenkwert q abhängt, der für jedes Robotergelenk eine Gelenkstellung festlegt, umfassend die Schritte: – Bestimmen einer Ziellage x* (222) des Roboterendelements (112) im Arbeitsraum des Roboters; – Erfassen einer Vielzahl von Gelenkstartwerten qi; – Ermitteln einer Startlage xi des Roboterendelements (112) für jeden Gelenkstartwert qi der Vielzahl von Gelenkstartwerten gemäß der Vorwärtskinematik xi = F(qi) des Roboters (100); – Ermitteln einer primären Startlage xj (228, 230) aus zumindest einem Teil der Vielzahl von Startlagen xi (206; 218; 230; 307), welche eine minimale Distanz d zur Ziellage x* (222; 232) im Arbeitsraum des Roboters aufweist; – Bestimmen einer Näherungsfunktion q = F ~ –1 / j(x) einer Rückwärtskinematik in einer Umgebung der primären Startlage xj, welche die Bedingung F ~ –1 / j(xj) = qj erfüllt, für einen primären Gelenkstartwert qj aus der Vielzahl von Gelenkstartwerten, der gemäß der Vorwärtkinematik xj = F(qj) der primären Startlage xj entspricht; und – Generieren von Steuer-/Regelsignalen zum Anfahren der Ziellage x* basierend auf der ermittelten Näherungsfunktion q = F ~ –1 / j(x).
  2. Verfahren nach Anspruch 1, wobei als Näherungsfunktion q = F ~ –1 / j(x) einer Rückwärtskinematik eine Funktion der Form F ~ –1 / j(x) = A·x + b derart bestimmt wird, dass A das Inverse der Jakobi-Matrix der Vorwärtskinematik x = F(q) am primären Gelenkstartwert qj ist.
  3. Verfahren nach Anspruch 1, wobei als Näherungsfunktion q = F ~ –1 / j(x) einer Rückwärtskinematik eine Funktion der Form F ~ –1 / j(x) = A·x + b aus linear unabhängigen Paaren (qi, xi) von Gelenkstartwerten und gemäß der Vorwärtskinematik entsprechenden Startlagen, welche am nächsten an der primären Startlage xj liegen, derart bestimmt wird, dass für die linear unabhängigen Paare gilt: qi = F ~ –1 / j(xi).
  4. Verfahren nach einem der vorangegangenen Ansprüche, wobei die primäre Startlage xj (228, 230) aus denjenigen Startlage der Vielzahl von Startlagen xi (206; 218; 230; 307) ermittelt wird, die nicht in einer Singularität und/oder nicht in der Nähe einer Singularität liegen.
  5. Verfahren nach Anspruch 1, wobei, wenn die primäre Startlage xj in der Nähe einer Singularität (208; 210) oder in einer Singularität (208; 210) liegt, die Näherungsfunktion gemäß F ~ –1 / j(x) = qj bestimmt wird
  6. Verfahren nach einem der vorangegangenen Ansprüche, wobei der primäre Gelenkstartwert qj als Startwert q(0) eines insbesondere iterativen, numerischen Näherungsverfahrens verwendet wird, mittels welchem ein Zielgelenkwert q(*) ermittelt wird, der gemäß der Vorwärtskinematik x(*) = F(q(*)) eine Lage x(*) des Roboterendelements festlegt, die sich um weniger als eine vorgegebene Lagenabweichung von der Ziellage x* unterscheidet.
  7. Verfahren nach Anspruch 6, wobei als numerisches Näherungsverfahren eine Newton-Iteration verwendet wird.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Ermitteln der primären Startlage xj umfasst: – Unterteilen des Arbeitsraums in eine Vielzahl von Zellen; – Bestimmen einer ersten Zelle Zx*, die die Ziellage x* enthält; – Bestimmen einer temporären Startlage xtemp aus zumindest einem Teil der innerhalb der erste Zelle liegenden Startlagen, welche eine temporäre, minimale Distanz dtemp zur Ziellage x* aufweist; – Bestimmen von benachbarten Zellen Zni (226), deren Distanz dG ihrer Grenzen zur Ziellage kleiner ist als dtemp; und – Ermitteln der primären Startlage xj als diejenige Startlage aus zumindest einem Teil der in der ersten Zelle Zx* und den benachbarten Zellen Zni enthaltenen Startlagen, welche eine minimale Distanz d zur Ziellage x* aufweist.
  9. Verfahren nach Anspruch 8, wobei das Verfahren den weiteren Schritt umfasst: – Unterteilen einer Zelle Zi (202) in zumindest zwei Unterzellen zunt, falls die Anzahl von Startlagen xi der Zelle Zi (202) eine vorgegebene Maximalzahl übersteigt.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Erfassen einer Vielzahl von Gelenkstartwerten qi ein Festlegen eines vorzugsweise äquidistanten Gitters über einen Gelenkwerteraum zumindest eines Robotergelenks umfasst.
  11. System (800) zum automatischen Steuern bzw. Regeln eines Roboters mit einer Vielzahl von Robotergelenken und einem Roboterendelement, dessen Lage x in einem Arbeitsraum gemäß einer Vorwärtskinematik x = F(q) des Roboters von einem Gelenkwert q abhängt, der für jedes Robotergelenk eine Gelenkstellung festlegt, umfassend: – ein Bestimmungsmodul (810) zum Bestimmen einer Ziellage x* (222) des Roboterendelements (112) im Arbeitsraum des Roboters (100); – ein Erfassungsmodul (820) zum Erfassen einer Vielzahl von Gelenkstartwerten qi; – ein Ermittlungsmodul (830) zum Ermitteln einer Startlage xi des Roboterendelements (112) für jeden Gelenkstartwert qi der Vielzahl von Gelenkstartwerten gemäß der Vorwärtskinematik xi = F(qi) des Roboters (100); – ein Ermittlungsmodul (840) zum Ermitteln einer primären Startlage xj aus zumindest einem Teil der Vielzahl von Startlagen xi, welche eine minimale Distanz d zur Ziellage x* im Arbeitsraum des Roboters aufweist; – ein Bestimmungsmodul (850) zum Bestimmen einer Näherungsfunktion q = F ~ –1 / j(x) einer Rückwärtskinematik in einer Umgebung der primären Startlage xj welche die Bedingung F ~ –1 / j(xj) = qj erfüllt, für einen primären Gelenkstartwert qj aus der Vielzahl von Gelenkstartwerten, der gemäß der Vorwärtskinematik xj = F(qj) der primären Startlage xj entspricht; und – ein Generierungsmodul (860) zum Generieren von Steuer- bzw. Regelsignalen zum Anfahren der Ziellage x* basierend auf der ermittelten Näherungsfunktion q = F ~ –1 / j(x).
  12. Computerprogrammprodukt umfassend computerlesbare Anweisungen, welche, wenn geladen in einen Speicher eines Computers und ausgeführt von dem Computer, bewirken, dass der Computer ein Verfahren gemäß einem der Ansprüche 1 bis 10 durchführt.
DE102012022190.8A 2012-11-12 2012-11-12 Inverse Kinematik Expired - Fee Related DE102012022190B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102012022190.8A DE102012022190B4 (de) 2012-11-12 2012-11-12 Inverse Kinematik

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102012022190.8A DE102012022190B4 (de) 2012-11-12 2012-11-12 Inverse Kinematik

Publications (2)

Publication Number Publication Date
DE102012022190A1 true DE102012022190A1 (de) 2014-05-15
DE102012022190B4 DE102012022190B4 (de) 2019-02-07

Family

ID=50555484

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012022190.8A Expired - Fee Related DE102012022190B4 (de) 2012-11-12 2012-11-12 Inverse Kinematik

Country Status (1)

Country Link
DE (1) DE102012022190B4 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016010945B3 (de) * 2016-09-09 2017-10-26 Dürr Systems Ag Optimierungsverfahren für einen Beschichtungsroboter und entsprechende Beschichtungsanlage
DE102016212911A1 (de) * 2016-07-14 2018-01-18 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Steuern einer Roboterbewegung eines Roboters anhand einer zweiten Trajektorie
WO2018229540A1 (en) * 2017-06-12 2018-12-20 Siemens Industry Software Ltd. Method and system for teaching a robot in reaching a given target in robot manufacturing
DE102021111237B3 (de) 2021-04-30 2022-06-15 Physik Instrumente (PI) GmbH & Co KG Beschleunigung direkter und indirekter Kinematiken

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112020006594B4 (de) 2020-04-28 2024-02-29 Yamaha Hatsudoki Kabushiki Kaisha Maschinenlernverfahren und Robotersystem

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030171847A1 (en) * 2002-03-07 2003-09-11 Fanuc Robotics America, Inc. Method of controlling a robot through a singularity
US7756606B2 (en) * 2003-12-26 2010-07-13 Japan Aerospace Exploration Agency Method of controlling redundant manipulator
EP2359989A1 (de) * 2010-02-15 2011-08-24 Honda Research Institute Europe GmbH Robotersteuerung mit Bootstrapping Inverse Kinematik
US20110224958A1 (en) * 2010-03-12 2011-09-15 Kyungpook National University Industryacademic Cooperation Foundation Error compensation method for multi-axis controlled machines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030171847A1 (en) * 2002-03-07 2003-09-11 Fanuc Robotics America, Inc. Method of controlling a robot through a singularity
US7756606B2 (en) * 2003-12-26 2010-07-13 Japan Aerospace Exploration Agency Method of controlling redundant manipulator
EP2359989A1 (de) * 2010-02-15 2011-08-24 Honda Research Institute Europe GmbH Robotersteuerung mit Bootstrapping Inverse Kinematik
US20110224958A1 (en) * 2010-03-12 2011-09-15 Kyungpook National University Industryacademic Cooperation Foundation Error compensation method for multi-axis controlled machines

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Kinematik und Robotik" von Manfred Husty et al. verwiesen, welches 1997
JIANG, L.; SUN, D.; LIU, H.: "An Inverse-Kinematics Table-Based Solution of a Humanoid Robot Finger With Nonlinearly Coupled Joints", In: IEEE/ASME Transactions on Mechatronics, Vol. 14, No. 3, 3. June 2009, S. 273-281 *
JIANG, L.; SUN, D.; LIU, H.: „An Inverse-Kinematics Table-Based Solution of a Humanoid Robot Finger With Nonlinearly Coupled Joints", In: IEEE/ASME Transactions on Mechatronics, Vol. 14, No. 3, 3. June 2009, S. 273-281
M. Mark W. Spong, Seth Hutchinson, Robot Modeling and Control. Wiley, 2006.

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016212911A1 (de) * 2016-07-14 2018-01-18 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Steuern einer Roboterbewegung eines Roboters anhand einer zweiten Trajektorie
US10456913B2 (en) 2016-07-14 2019-10-29 Siemens Aktiengesellschaft Method and apparatus for controlling a robot movement of a robot on the basis of a second trajectory
DE102016010945B3 (de) * 2016-09-09 2017-10-26 Dürr Systems Ag Optimierungsverfahren für einen Beschichtungsroboter und entsprechende Beschichtungsanlage
WO2018229540A1 (en) * 2017-06-12 2018-12-20 Siemens Industry Software Ltd. Method and system for teaching a robot in reaching a given target in robot manufacturing
CN110248775A (zh) * 2017-06-12 2019-09-17 西门子工业软件有限公司 用于在机器人制造中教导机器人达到给定目标的方法和系统
US11370120B2 (en) 2017-06-12 2022-06-28 Siemens Industry Software Ltd. Method and system for teaching a robot in reaching a given target in robot manufacturing
DE102021111237B3 (de) 2021-04-30 2022-06-15 Physik Instrumente (PI) GmbH & Co KG Beschleunigung direkter und indirekter Kinematiken

Also Published As

Publication number Publication date
DE102012022190B4 (de) 2019-02-07

Similar Documents

Publication Publication Date Title
EP3323026B1 (de) Ermitteln eines eingabebefehls für einen roboter, der durch manuelles ausüben einer kraft auf den roboter eingegeben wird
DE102018116053B4 (de) Robotersystem und Roboterlernverfahren
DE102015107436B4 (de) Lernfähige Bahnsteuerung
DE102004010312B4 (de) Verfahren zum Einmessen eines Arbeitspunktes
DE102013113165A1 (de) Kalibrierungsverfahren für Robotersystem
DE102016212695A1 (de) Industrieroboter
DE102006007623B4 (de) Roboter mit einer Steuereinheit zum Steuern einer Bewegung zwischen einer Anfangspose und einer Endpose
DE112019000097B4 (de) Steuervorrichtung, Arbeitsroboter, Programm und Steuerverfahren
DE102004026814A1 (de) Verfahren und Vorrichtung zum Verbessern der Positioniergenauigkeit eines Handhabungsgeräts
DE102012022190B4 (de) Inverse Kinematik
DE102017001131C5 (de) Verfahren und System zum Betreiben eines Roboters
DE102015223258A1 (de) Verfahren zum Bearbeiten der Oberfläche eines dreidimensionalen Objekts
DE102011014299A1 (de) Verfahren und Mittel zum Steuern einer Automatisierungseinrichtung, insbesodere eines Roboters
DE102017120221A1 (de) Steuereinheit, Arbeit-Steuervorrichtung, Mehrachsenbewegung-Steuervorrichtung und Antrieb-Steuervorrichtung
EP3471928B1 (de) Konfigurieren und/oder steuern einer roboteranordnung
DE10393527T5 (de) Systeme und Verfahren zur Darstellung komplexer n-Kurven für die Direktsteuerung einer Werkzeugbewegung
DE102016012227A1 (de) Verfahren zur automatischen Lagekorrektur eines Roboterarms
DE10143753A1 (de) Kalibrierverfahren für einen Roboterarm
EP3441200A1 (de) Referenzierverfahren und vorrichtung für industrieroboter
WO2018091141A1 (de) Vermessen einer bewegungsachse eines roboters
DE102020206916A1 (de) Steuereinrichtung und Verfahren zum Auswählen von Auswertungspunkten für ein Bayessches Optimierungsverfahren
DE102006036490A1 (de) Verfahren und Vorrichtung zum Steuern eines Handhabungsgeräts
EP1459855A2 (de) Verfahren und Vorrichtung zur Verbesserung der Positioniergenauigkeit eines Arbeitsroboters
DE112008003870T5 (de) Verfahren und System zum Steuern eines Industrieroboters in Übereinstimmung mit einem Bewegungssteuerungs-Parametersatz
WO2009094983A1 (de) Verfahren zum einmessen von bauteilen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee