DE102015222168B4 - Verfahren und computerprogramm zur korrektur von fehlern eines manipulatorsystems - Google Patents

Verfahren und computerprogramm zur korrektur von fehlern eines manipulatorsystems Download PDF

Info

Publication number
DE102015222168B4
DE102015222168B4 DE102015222168.7A DE102015222168A DE102015222168B4 DE 102015222168 B4 DE102015222168 B4 DE 102015222168B4 DE 102015222168 A DE102015222168 A DE 102015222168A DE 102015222168 B4 DE102015222168 B4 DE 102015222168B4
Authority
DE
Germany
Prior art keywords
reaction
manipulator
operations
program
point
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.)
Active
Application number
DE102015222168.7A
Other languages
English (en)
Other versions
DE102015222168A1 (de
Inventor
Andreas Sedlmayr
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.)
KUKA Deutschland GmbH
Original Assignee
KUKA Roboter GmbH
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 KUKA Roboter GmbH filed Critical KUKA Roboter GmbH
Priority to DE102015222168.7A priority Critical patent/DE102015222168B4/de
Priority to EP16794938.7A priority patent/EP3374136A1/de
Priority to PCT/EP2016/001859 priority patent/WO2017080650A1/de
Priority to CN201680066068.7A priority patent/CN108349081B/zh
Priority to KR1020187016165A priority patent/KR20180081775A/ko
Priority to US15/775,619 priority patent/US11065766B2/en
Publication of DE102015222168A1 publication Critical patent/DE102015222168A1/de
Application granted granted Critical
Publication of DE102015222168B4 publication Critical patent/DE102015222168B4/de
Active 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/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1653Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4067Restoring data or position after power failure or other interruption
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0259Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
    • G05B23/0286Modifications to the monitored process, e.g. stopping operation or adapting control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • 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/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13001Interrupt handling
    • 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/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25416Interrupt
    • 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/39024Calibration of manipulator
    • 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/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50103Restart, reverse, return along machined path, stop

Abstract

Verfahren zur Korrektur von Fehlern eines Manipulatorsystems, wobei das Manipulatorsystem zumindest einen Manipulator umfasst und mittels zumindest eines Manipulatorprogramms gesteuert wird, und wobei das Verfahren die folgenden Verfahrensschritte umfasst:Bereitstellen zumindest eines Manipulatorprogramms, wobei das Manipulatorprogramm mehrere Operationen (O1 bis On) umfasst;Zusammenfassen von zumindest zwei der Operationen (O1 bis On) zu zumindest einer Operationsstruktur (310);Definieren von zumindest einem Aufsetzpunkt (AP1, AP2), wobei der zumindest eine Aufsetzpunkt (AP1, AP2) den Anfang und/oder das Ende einer Operationsstruktur (310) bildet;Bereitstellen zumindest einer Reaktionsstruktur (320) und Zuordnen der Reaktionsstruktur (320) zu einer Operationsstruktur (310), wobei die zumindest eine Reaktionsstruktur (320) Reaktionsoperationen (R1 bis Rn), beinhaltet, bei deren Ausführung das Manipulatorprogramm das Manipulatorsystem so steuert, dass es in einen Systemzustand geführt wird, der einem Aufsetzpunkt (AP1, AP2) entspricht;Ausführen des Manipulatorprogramms und wenn ein Fehler auftritt,Ausführen der Reaktionsstruktur (320), sodass das Manipulatorsystem in einen Systemzustand überführt wird, der einem Aufsetzpunkt (AP1, AP2) entspricht, wobei abhängig von der Art des aufgetretenen Fehlers unterschiedliche Reaktionsoperationen (R1 bis Rn) der Reaktionsstruktur (320) ausgeführt werden.

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft ein Verfahren und ein Computerprogramm zur Korrektur von Fehlern eines Manipulatorsystems. Derartige Manipulatorsysteme umfassen typischerweise zumindest einen Manipulator und werden mittels eines Manipulatorprogramms gesteuert. Tritt ein Fehler im Manipulatorsystem auf, so kann das Manipulatorsystem in einen Systemzustand überführt werden, welcher ein Fortsetzen des Manipulatorprogramms erlaubt.
  • Hintergrund
  • Typische Manipulatorsysteme umfassen zumindest einen Manipulator, welcher dazu eingerichtet ist, physikalisch mit seiner Umgebung zu interagieren. Beispielsweise kann ein derartiger Manipulator ein Industrieroboter sein, der über zumindest drei bewegliche, frei programmierbare Achsen verfügt und einen Endeffektor, wie beispielsweise einen Greifer oder ein Bearbeitungswerkzeug, führt. Derartige Manipulatorsysteme kommen beispielsweise in der Automobilfertigung zum Einsatz.
  • Gesteuert werden Manipulatorsysteme typischerweise mittels eines Manipulatorprogramms, welches das Systemverhalten anwendungsspezifisch festlegt. Die Anforderung an die Programmierung von Manipulatorprogrammen hat sich zum Beispiel durch den Einsatz von zusätzlicher Sensorik, welche neue Aufgabenfelder in der Robotik ermöglicht, geändert. Beispielsweise können durch den Einsatz von Kraft- und/oder Momentensensoren, wie sie zum Beispiel im Industrieroboter LBR iiwa der KUKA AG zum Einsatz kommen, neue Funktionalitäten programmiert werden. Diese umfassen unter anderem Suchfahrten mit Sensorik, kraftgeregelter Werkzeugbetrieb, MRK (Mensch-Roboter-Kooperation) Fähigkeit, sensitives Greifen usw.
  • Manipulatoren setzen diese Funktionen mittels programmierter Operationen um. Ein Manipulatorprogramm umfasst dazu typischerweise mehrere Operationen. Die Aneinanderreihung mehrerer Operationen bildet einen Prozess. Während der Ausführung eines Prozesses kann ein Fehler auftreten, der ein Fortsetzen nach Plan verhindert. Der Grund für das Auftreten eines Fehlers kann beispielsweise ein Programmierfehler (z.B. durch falsch gesetzte Parameterwerte) oder das Auftreten eines unvorhergesehenen Ereignisses sein, auf das das Manipulatorsystem nicht selbstständig reagieren kann oder eine Unterbrechung des geplanten Prozesses fordert.
  • Tritt ein Fehler auf, besteht grundsätzlich die Möglichkeit mit einem neuen, geänderten Plan fortzusetzen oder den Prozess rückgängig zu machen. Manche Prozesse können vollständig rückgängig gemacht und wiederholt werden. Andere Prozesse sind irreversible Prozesse und können nicht rückgängig gemacht werden; jedoch kann bei Kenntnis über die Art des Fehlers, der begonnene und abgebrochene Prozess „repariert“ werden. Dennoch ist es oftmals nötig, das Manipulatorprogramm abzubrechen und erneut zu starten, wodurch hohe Wiederanlaufzeiten und Kosten generiert werden.
  • Ein Beispiel für einen irreversiblen Prozess ist das Schweißen mittels eines Manipulators. Wird der Schweißprozess unterbrochen, so kann der Prozess nicht einfach wiederholt werden, da die bereits geschweißte Naht durch das erneute (Über-) Schweißen beschädigt werden könnte. Jedoch könnte der Prozess nach Beseitigung eines aufgetretenen Fehlers von der Unterbrechungsstelle an fortgeführt werden.
  • Folglich werden Verfahren benötigt, welche ein (automatisiertes) Fortsetzen von begonnen Prozessen, ein Wiederholen und/oder eine Planänderung im Prozess ermöglichen. Sollen solche Verfahren mit herkömmlichen Programmiertechniken gelöst werden, wird die Komplexität zusätzlich erhöht, wodurch die Zahl der Programmierfehler steigt.
  • Die Programmierung von Manipulatorprogrammen erfolgt heute meist mit domänenspezifischen Programmiersprachen, die auf BASIC oder PASCAL aufbauen. Diese Programmiersprachen werden meist durch einen Interpreter ausgeführt. Ein großer Anteil des Programmierens ist die Fehlerbehebung und Prozessoptimierung, welche im Anschluss der Programmierung des regulären Prozesses (d.h. des Manipulatorprogramms) erfolgt. Die Fehlersuche und -korrektur erfordern erhebliche zeitliche und personelle Ressourcen, wodurch hohe Kosten entstehen. Weiterhin drohen hohe Schäden, falls ein nicht erkannter Fehler z.B. zu einer Unterbrechung einer Serienproduktion führt.
  • Überdies können Manipulatorprogramme mit Hilfe einer allgemeinen Hochsprache (z.B. Java) programmiert werden. Der Programmcode wird typischerweise kompiliert und von einem Bytecode-Interpreter (Java VM) der Programmiersprache ausgeführt.
  • Allerdings ist die Echtzeitfähigkeit dieser Art von Interpreter beschränkt, sodass die Systemzeit des Manipulatorprogramms und des Manipulatorsystems voneinander abweichen können. Folglich kann auf Laufzeitfehler nicht in Echtzeit reagiert werden. Weiterhin ist z.B. die Java VM typischerweise nicht für die besonderen Anforderungen der Manipulatorprogrammierung ausgestattet. Insbesondere wird u.a. das Ausführen des Manipulatorprogramms ab einer bestimmten Stelle im Ablauf des Manipulatorprogramms (Programmeinstieg), das Springen an eine bestimmte Stelle im Ablauf des Manipulatorprogramms während der Ausführung des Manipulatorprogramms sowie das Anhalten und Fortsetzen an einer definierten Stelle im Ablauf des Manipulatorprogramms nicht unterstützt. Dadurch wird die Behebung von Fehlern erschwert.
  • Um die Fehlerwahrscheinlichkeit zu reduzieren, haben Automobilhersteller und Systemintegratoren eigene Richtlinien (sog. Coding-Standards, z.B. „VW-Standard“, „Daimler-Standard“, etc.) auf Basis der spezifischen (Manipulator-) Programmiersprache entwickelt. Beispielsweise geben derartige Richtlinien vor, für typische Applikationsfehler systematisch eine Fehlerbehandlung/-reaktion zu hinterlegen. Somit wird dem Programmierer vorgegeben, wie Programmcode geschrieben werden soll.
  • Derartige Fehlerbehandlungen oder Fehlerreaktionen sollen nach Behebung des Fehlers erlauben, das Manipulatorprogramm wie geplant fortsetzen. Dazu verwendete Befehlsstrukturen, wie „GOTO“-Befehle, „IF-ELSE“-Befehle oder andere Sprung- und Verzweigungsbefehle sind jedoch wenig übersichtlich, was zu einer Erhöhung der Komplexität der Manipulatorprogramme führt. Weiterhin muss bei der herkömmlichen Fehlerbehandlung oft vorausgesetzt werden, dass jede durchgeführte Operation des Manipulatorprogramms für sich und in der richtigen Reihenfolge zurückgesetzt werden muss. Dies ist mittels herkömmlicher Interpreter, wie Java VM nicht automatisiert möglich. Insbesondere irreversible Prozesse sind für eine automatisierte Rückabwicklung der einzelnen Operationen nicht geeignet.
  • Aufgabe der vorliegenden Erfindung ist es ein Verfahren und ein Computerprogramm sowie eine Vorrichtung bereitzustellen, die die oben beschriebenen Nachteile zumindest teilweise ausräumen können.
  • DE 10 2011 017 398 A1 betrifft ein Verfahren zum Steuern einer Roboteranordnung mit wenigstens einem Roboter. Das Verfahren umfasst das Einrichten wenigstens eines allgemeinen Fehlermodells für eine Gruppe unterschiedlicher Bearbeitungsprozesse mit vorgegebenen Bearbeitungsfehlern. Weiter umfasst das Verfahren das Konfigurieren des Fehlermodells für wenigstens einen bestimmten Bearbeitungsfehler eines Prozesses der Gruppe. Ferner umfasst das Verfahren das Übertragen des konfigurierten Fehlermodells an eine Steuerung der Roboteranordnung.
  • Ausführliche Beschreibung der Erfindung
  • Die Aufgabe der Erfindung wird durch ein Verfahren zur Korrektur von Fehlern eines Manipulatorsystems nach Anspruch 1, ein Computerprogramm nach Anspruch 14 sowie eine Vorrichtung gemäß Anspruch 16 gelöst.
  • Insbesondere wird die Aufgabe durch ein Verfahren zur Korrektur von Fehlern eines Manipulatorsystems gelöst, wobei das Manipulatorsystem zumindest einen Manipulator umfasst und mittels zumindest eines Manipulatorprogramms gesteuert wird, wobei das Verfahren die folgenden Verfahrensschritte umfasst:
    • • Bereitstellen zumindest eines Manipulatorprogramms, wobei das Manipulatorprogramm mehrere Operationen umfasst;
    • • Zusammenfassen von zumindest zwei der Operationen zu zumindest einer Operationsstruktur;
    • • Definieren von zumindest einem Aufsetzpunkt, wobei der zumindest eine Aufsetzpunkt den Anfang und/oder das Ende einer Operationsstruktur bildet;
    • • Bereitstellen zumindest einer Reaktionsstruktur und Zuordnen der Reaktionsstruktur zu einer Operationsstruktur, wobei die zumindest eine Reaktionsstruktur Reaktionsoperationen, beinhaltet, bei deren Ausführung das Manipulatorprogramm das Manipulatorsystem so steuert, dass es in einen Systemzustand geführt wird, der einem Aufsetzpunkt entspricht;
    • • Ausführen des Manipulatorprogramms und wenn ein Fehler auftritt,
    • • Ausführen der Reaktionsstruktur, sodass das Manipulatorsystem in einen Systemzustand überführt wird, der einem Aufsetzpunkt entspricht.
  • Manipulatorprogramme dienen der Steuerung des Manipulatorsystems. Beispielsweise kann ein Manipulatorprogramm Bewegungen und Arbeitsschritte eines Manipulators des Manipulatorsystems vorgeben. So ist beispielsweise möglich, dass ein Manipulator entsprechend einer definierten Bewegungsbahn bewegt wird, um ein Objekt zu greifen. Anschließend kann das Objekt entsprechend einer zweiten definierten Bewegungsbahn bewegt werden und an einer anderen Position abgelegt werden. Ebenso können Manipulatorprogramme Anweisungen umfassen, die das Montieren von Teilen, das Schweißen, das Niet-Setzen oder andere Aufgaben betreffen.
  • Das Manipulatorprogramm weist dazu mehrere Operationen auf, wobei mehrere Operationen zu einem Prozess aneinander gereiht werden, um das Manipulatorsystem zu steuern und beispielsweise die oben genannten Aufgaben auszuführen. Dabei werden zumindest zwei der Operationen zu einer Operationsstruktur zusammengefasst. Typischerweise werden zusammengehörige Operationen, wie etwa voneinander abhängige Operationen oder funktional zusammenstehende Operationen zu einer Operationsstruktur zusammengefasst. Damit kann das Manipulatorprogramm übersichtlicher gestaltet und besser beherrscht werden.
  • Werden mehrere Operationsstrukturen in Folge ausgeführt, so ist jeweils die vorhergehende Operationsstruktur abgeschlossen. Jedoch kann eine einzelne erste Operation eine zweite Operation starten, die über die Ausführungszeit der ersten Operation hinausreicht. In diesem Fall muss der Kontext der Operationsstruktur erhalten bleiben, bis die letzte Operation der Operationsstruktur vollständig ausgeführt ist. Somit beeinflussen sich die Operationsstrukturen nicht gegenseitig. Folglich führen parallel ausgeführte Operationsstrukturen zu gleichen Ergebnissen wie seriell ausgeführte Operationsstrukturen. Weiterhin ist eine Zustandsänderung einer durchgeführten Operationsstruktur dauerhaft.
  • Der Anfang und/oder das Ende einer Operationsstruktur können einen Aufsetzpunkt bilden. Von einem Aufsetzpunkt aus kann das Manipulatorprogramm unabhängig von seiner Ausführungshistorie fortgesetzt werden. Dabei werden immer die gleichen Ergebnisse erzielt.
  • Tritt nun ein Fehler auf, der auf einem Programmierfehler beruht, oder in einem unvorhergesehenen Ereignis begründet ist, so kann mittels einer Reaktionsstruktur ein solcher Aufsetzpunkt erreicht werden und das Manipulatorprogramm von diesem fortgesetzt werden. Dabei muss der Aufsetzpunkt nicht dem zuletzt durchlaufenen Aufsetzpunkt entsprechen. Ebenso kann von einem Aufsetzpunkt auch eine andere Operationsstruktur ausgeführt werden, als diejenige in der der Fehler aufgetreten ist. Somit kann ein begonnener Prozess korrigiert werden oder mit einem neuen Plan fortgesetzt werden, ohne das Manipulatorprogramm abbrechen oder neu starten zu müssen.
  • Weiterhin wird durch die direkte Zuordnung von Operationsstruktur und Reaktionsstruktur ein übersichtliches Manipulatorprogramm ermöglicht, wodurch Fehler bei der Programmierung reduziert werden können. Weiterhin wird die Fehlerbehebung vereinfacht.
  • Vorzugsweise ist die Operationsstruktur konsistent, so dass die Integritätsbedingungen des Manipulatorsystem an einem Aufsetzpunkt und/oder vor und/oder nach dem Ausführen der Operationsstruktur eingehalten werden. Somit ist sichergestellt, dass ein Manipulatorprogramm unabhängig von seiner Ausführungshistorie von einem Aufsetzpunkt fortgesetzt werden kann. Dabei werden immer die gleichen Ergebnisse erzielt.
  • Tritt während der Ausführung des Manipulatorprogramms ein Fehler auf, welcher beispielsweise durch einen Programmierfehler oder durch ein unvorhergesehenes Ereignis im Manipulatorsystem hervorgerufen wird, so kann eine Reaktionsstruktur ausgeführt werden, die das Manipulatorsystem in einen Systemzustand überführt der einem Aufsetzpunkt entspricht. Dabei wird nicht nur die Software „zurückgespult“, sondern das Manipulatorsystem tatsächlich in einen Systemzustand überführt, der dem Aufsetzpunkt entspricht.
  • Die Reaktionsstruktur umfasst vorzugsweise Reaktionsoperationen, welche einzelne Operationen rückgängig machen können, falls die betreffende Operationsstruktur einen reversiblen Prozess beschreibt. Beschreibt die betreffende Operationsstruktur einen irreversiblen Prozess, so können in der Reaktionsstruktur Reaktionsoperationen enthalten sein, die ein Fortsetzen mit einem geänderten Plan ermöglichen, d.h. die von einer reinen Rückabwicklung ausgeführter Operationen abweichen.
  • Beispielsweise kann sich beim Setzen eines Nietes mittels eines Manipulators der Niet in einer Bohrung verklemmen. In diesem Fall ist das korrekte Nieten nicht möglich. Erkennt das Manipulatorsystem diesen Fehler, so kann die Operationsstruktur „Nieten“ abgebrochen werden und eine zugeordnete Reaktionsstruktur eingeleitet werden. Eine mögliche Reaktionsstruktur könnte in diesem Beispiel das Öffnen des Nietwerkzeugs umfassen. Anschließend könnte ein Herausziehen des verklemmten Nietes aus der Bohrung kommandiert werden. Schließlich könnte ein neuer Niet aufgenommen werden, und die Operationsstruktur „Nieten“ erneut durchgeführt werden.
  • Weitere Reaktionsstrukturen sind ebenfalls möglich. Beispielsweise kann abhängig von der Anzahl der fehlgeschlagenen Versuche, eine Operationsstruktur auszuführen, eine Reaktionsstruktur ein anderes Vorgehen kommandieren. Um im vorangegangenen Beispiel zu bleiben, könnte nach dem wiederholten Durchführen der Operationsstruktur „Nieten“, welches zum gleichen Fehler „Verklemmter Niet“ führt, ein anderes Vorgehen kommandiert werden und ein Bediener gerufen werden. Dieser könnte dazu aufgefordert werden, den verklemmten Niet manuell zu entfernen.
  • Eine Operationsstruktur und eine zugeordnete Reaktionsstruktur sind vorzugsweise in einem gemeinsamen Semantikbaustein implementiert. Somit ist im Manipulatorprogramm eine feste Zuordnung von Operationsstruktur und Reaktionsstruktur sichergestellt, wodurch die Komplexität reduziert wird.
  • Eine Reaktionsstruktur kann neben dem Rückgängig-Machen einer Operationsstruktur auch das Abbrechen der Operationsstruktur und/oder das Fortsetzen des Manipulatorprogramms von einem anderen Aufsetzpunkt kommandieren. Vorzugsweise ist der Systemzustand des Manipulatorsystem an einem Aufsetzpunkt und/oder vor und/oder nach dem Ausführen einer Operationsstruktur nicht in allen Systemparametern konsistent. Jedoch muss eine Konsistenz in den wesentlichen Parametern geben sein, so dass ein Fortsetzen oder Wiederholen des Manipulatorprogramms von diesem Aufsetzpunkt aus möglich ist.
  • Derartige nicht konsistente Systemparameter können beispielsweise aus irreversiblen Prozessen herrühren. Wird beispielsweise ein Schweißprozess mittels des Manipulatorprogramms gesteuert, so ist der Parameter „Schweißnahtlänge“ irreversibel, da beispielsweise ein bestimmter Teil der Schweißnaht bis zum Auftreten des Fehlers bereits geschweißt wurde. Tritt nun ein Fehler auf, kann die Reaktionsstruktur nicht den gleichen Systemzustand herstellen, wie vor der Ausführung des Schweißprozesses. Daher muss in diesem Fall die Reaktionsstruktur eine entsprechende Reaktionsoperation bereitstellen, welche es ermöglicht den ursächlichen Fehler des Schweißprozesses zu beheben (z. B. Reinigung des Schweißwerkzeugs) und anschließend an der Stelle der Schweißnaht fortfahren an der die Schweißung unterbrochen wurde. Ebenso ist es möglich, dass in diesem Fall die Reaktionsstruktur ein alternatives Vorgehen vorsieht, wonach die unterbrochene Schweißnaht nicht fertig geschweißt, sondern in einem händischen Arbeitsschritt nachbearbeitet werden soll. Das Manipulatorprogramm kann in diesem Fall an anderer Stelle fortgesetzt werden.
  • Vorzugsweise wird die Ausführung einer Operationsstruktur beim Auftreten eines Fehlers unterbrochen und im Anschluss mit dem Ausführen einer Reaktionsstruktur fortgefahren. Somit kann eine Operationsstruktur des Manipulatorprogramms unmittelbar nach dem Auftreten eines Fehlers wiederholt oder das Manipulatorprogramm von einem anderen Aufsetzpunkt fortgesetzt werden. Dies ermöglicht es Stillstandzeiten des Manipulatorsystems zu minimieren und vorzugsweise automatisiert, d. h. ohne ein Eingreifen eines Bedieners, fortzufahren. Somit kann die Produktivität des Manipulatorsystems erhöht werden.
  • Insbesondere bevorzugt ist nicht jeder Operation einer Operationsstruktur eine eigene Reaktionsoperation einer entsprechenden Reaktionsstruktur zugeordnet. Ebenso muss nicht jeder Operationsstruktur eine eigene Reaktionsstruktur zugeordnet sein. Vorzugsweise, ist einer Operationsstruktur eine Reaktionsstruktur zugeordnet, wobei die Reaktionsstruktur bevorzugt zumindest einer weiteren Operationsstruktur zugeordnet ist. Somit kann mit einer reduzierten Anzahl von Reaktionsstrukturen auf Fehler unterschiedlicher Operationsstrukturen reagiert werden. Bevorzugt ist eine Reaktionsstruktur einer Mehrzahl von Operationsstrukturen zugeordnet, wenn die Operationsstrukturen einen gemeinsamen Aufsetzpunkt aufweisen.
  • Vorzugsweise beinhaltet die Reaktionsstruktur zumindest eine Reaktionsoperation deren Ausführung das Manipulatorsystem in einen Systemzustand führt, der dem Aufsetzpunkt entspricht, welcher Aufsetzpunkt den Anfang der Operationsstruktur bildet, in der der Fehler aufgetreten ist. Derartige Reaktionsstrukturen ermöglichen das „Zurückspulen“ des Manipulatorsystems. Somit kann die Operationsstruktur, in der der Fehler aufgetreten ist, wiederholt werden. Das Zurückführen in den Aufsetzpunkt muss dabei nicht einer direkten Invertierung der Operationsstruktur entsprechen, sondern kann auf einem alternativen Weg ausgeführt werden. Soll beispielsweise eine Bewegung eines Manipulators rückgängig gemacht werden und ist der direkte Rückweg versperrt, so kann der Manipulator auf einer alternativen Bewegungsbahn an den Ausgangspunkt der Bewegung zurückgeführt werden.
  • Vorzugsweise macht die zumindest eine Reaktionsoperation eine Operation der Operationsstruktur rückgängig. Somit können einzelne Operationen unmittelbar rückgängig gemacht werden. Dies ist insbesondere bei reversiblen Prozessen vorteilhaft. So kann beispielsweise eine vom Manipulator durchgeführte Bewegung unmittelbar zurückgefahren werden.
  • Vorzugsweise wird eine Operation des Manipulatorprogramms durch zumindest einen Parameter definiert, wobei der zumindest eine Parameter durch eine Reaktionsoperation der Reaktionsstruktur veränderbar ist. Ein Parameter kann ein nummerischer Parameter, wie beispielsweise eine Manipulatorgeschwindigkeit, oder ein Anweisungsparameter sein, der die Abfolge der Operationen einer Operationsstruktur oder die Auswahl der nachfolgenden Operationsstruktur beeinflusst. Somit kann eine Reaktionsoperation bewirken, dass die Operationsstruktur mit veränderten Parametern (z. B. mit langsamerer Manipulatorgeschwindigkeit) fortgesetzt oder mit veränderten Parametern wiederholt wird. Ebenso ist es möglich eine alternative Verzweigung des Manipulatorprogramms zu erzielen.
  • Vorzugsweise beinhaltet die Reaktionsstruktur zumindest eine Reaktionsoperation deren Ausführung die unterbrochene Operationsstruktur mit zumindest einem geänderten Parameter fortsetzt oder die unterbrochene Operationsstruktur erneut ausführt. Somit ist es möglich Operationsstrukturen, in denen ein Fehler aufgetreten ist, erneut oder, falls erforderlich, mit geänderten, vorzugsweise optimierten Parametern auszuführen.
  • Vorzugsweise beinhaltet die Reaktionsstruktur zumindest eine Reaktionsoperation, deren Ausführung die unterbrochene Operationsstruktur solange unterbricht bis eine Bedienereingabe erfolgt ist. Dies ermöglicht es, falls der aufgetretene Fehler nicht automatisch von dem Manipulatorsystem behoben werden kann, das Eingreifen eines Bedieners anzufordern. Beispielsweise kann der Bediener dazu aufgefordert werden einen bestimmten Systemzustand zu überprüfen, fehlerhafte Teile oder Werkstücke aus dem Manipulatorsystem zu entfernen oder auszutauschen und/oder dergleichen. Bestätigt der Bediener dem Manipulatorsystem ein erfolgreiches Ausführen der Aufgabe, so kann mit der Reaktionsstruktur oder einer Operationsstruktur fortgesetzt werden.
  • Erfindungsgemäß werden, abhängig von der Art des aufgetretenen Fehlers, unterschiedliche Reaktionsoperationen der Reaktionsstruktur ausgeführt. Dies ist vorteilhaft, da so individuell auf unterschiedliche Fehlertypen reagiert werden kann. Vorzugsweise werden in Abhängigkeit des aufgetretenen Fehlers unterschiedliche Reaktionsstrukturen ausgeführt. Dazu sind einer Operationsstruktur vorzugsweise mehrere Reaktionsstrukturen zugeordnet, die in Abhängigkeit des aufgetretenen Fehlers ausgeführt werden.
  • Wird beispielsweise eine Operationsstruktur abgebrochen, da ein Sicherheitsmechanismus des Manipulatorsystems eingreift, so kann möglicherweise die Operationsstruktur einfach wiederholt werden, wenn der Grund für das Eingreifen der Sicherheitseinrichtung ein vorübergehender war. Andererseits kann, falls ein Fehler auftritt, der nicht automatisiert behoben werden kann, ein Bediener hinzugerufen werden. Ebenso ist es möglich, dass ein Fehler ein Fortsetzen an einem anderen Aufsetzpunkt des Manipulatorprogramms erfordert. Beispielsweise kann eine Operationsstruktur übersprungen werden und das Manipulatorprogramm an anderer Stelle fortgesetzt werden (siehe hierzu obiges Beispiel, wonach eine unterbrochene Schweißnaht nicht fertig gestellt werden soll). Somit kann einer fehlerhaft ausgeführten Operation einer Operationsstruktur und/oder einer fehlerhafte ausgeführten Operationsstruktur eine entsprechende Reaktionsstruktur des Manipulatorprogramms folgen. Dies ermöglicht eine fehlerabhängige, differenzierte Fehlerbehebung und ein Fortsetzen des Manipulatorprogramms von einem geeigneten Aufsetzpunkt aus.
  • Weiterhin können vorzugsweise abhängig vom aufgetretenen Fehler Parameter unterschiedlich geändert werden. Beispielsweise kann ein Wiederholen einer Operationsstruktur mit reduzierter Geschwindigkeit des Manipulators durchgeführt werden, wenn ein erster Fehler auftritt oder mit einer veränderten Kraftschwelle einer Kraftüberwachung des Manipulators, wenn ein zweiter Fehler auftritt. Andere veränderte Parameter sind ebenfalls denkbar.
  • Vorzugsweise ist die zumindest eine Operationsstruktur in einem Aufsetzpunkt mit zumindest einer weiteren Operation und/oder Operationsstruktur verknüpft, wobei nach dem Erreichen des Aufsetzpunktes eine der verknüpften Operationen und/oder Operationsstrukturen ausgeführt wird. Dabei kann der Aufsetzpunkt über eine Operationsstruktur (d. h. vorwärts) erreicht oder über eine Reaktionsstruktur (d. h. rückwärts) erreicht werden. Eine Verknüpfung mehrerer Operationsstrukturen mit einem Aufsetzpunkt ermöglicht es unterschiedliche Programmabläufe durch die Verzweigung des Manipulatorprogramms zu implementieren. Somit kann nach dem Erreichen eines Aufsetzpunkts mit unterschiedlichen Operationsstrukturen/Operationen fortgefahren werden. Dies ermöglicht eine flexible Fehlerkorrektur. Ebenso kann eine Operationsstruktur vorzugsweise, abhängig vom aufgetretenen Fehler, mit geänderten Parametern ausgeführt werden.
  • Vorzugsweise ist ein Parameter ein nummerischer Parameter oder ein Anweisungsparameter. Nummerische Parameter sind Parameter, die in Zahlenwerten ausgedrückt werden und physikalischen Größen entsprechen. Diese sind beispielsweise Geschwindigkeiten des Manipulators, Kraftschwellen, Momentschwellen, Wartezeiten und dergleichen. Anweisungsparameter beeinflussen den Ablauf des Manipulatorprogramms und geben beispielsweise die Ausführungsreihenfolge der Operationsstrukturen oder einzelner Operationen vor.
  • Vorzugsweise beinhaltet das Manipulatorprogramm Echtzeit-Operationen und Echtzeit-Reaktionsoperationen sowie Nicht-Echtzeit-Operationen und Nicht-Echtzeit-Reaktionsoperationen, wobei vor der Ausführung einer Echtzeit-Operation alle Echtzeit-Reaktionsoperationen und Nicht-Echtzeit-Reaktionsoperationen beendet sind. Durch die Bestimmung von Nicht-Echtzeit- und Echtzeit-Operationen bzw. - Reaktionsoperationen, kann ein deterministisches Verhalten des Manipulatorprogramms erzielt werden. Soll eine Echtzeit-Operation bzw. -Reaktionsoperation durchgeführt werden, so ist sichergestellt, dass die Zeit des Manipulatorprogramms und die tatsächliche Systemzeit übereinstimmen.
  • Werden hingegen Nicht-Echtzeit-Operationen ausgeführt, so können die Zeit des Manipulatorprogramms und die tatsächliche Systemzeit voneinander abweichen. Somit können beispielsweise Nicht-Echtzeit-Operationen bzw. -Reaktionsoperationen im Hintergrund ablaufen.
  • Die Aufgabe wird weiterhin gelöst durch ein Computerprogramm, aufweisend Programmbefehle die, wenn sie auf einem Computer und/oder Mikrokontroller geladen werden, den Computer und/oder den Mikrokontroller dazu veranlassen, das beschriebene Verfahren auszuführen. Derartige Computerprogramme können auf Vorrichtungen geladen werden, die dazu eingerichtet sind Manipulatorsysteme zu steuern. Vorzugsweise sind eine Operationsstruktur und eine zugeordnete Reaktionsstruktur im selben Manipulatorprogrammteil implementiert und bilden vorzugsweise einen Semantikbaustein. Dadurch sind die Operationsstrukturen oder Reaktionsstrukturen eng miteinander verknüpft, so dass die Programmierung übersichtlich gestaltet werden kann. Weiterhin ist vorzugsweise das Computerprogramm als Teil des Manipulatorprogramms implementiert. Ebenfalls kann das Computerprogramm ein eigenständiges Computerprogramm sein.
  • Die Aufgabe wird weiter gelöst durch eine Vorrichtung, welche dazu eingerichtet ist das Computerprogramm auszuführen. Derartige Vorrichtungen sind beispielsweise Steuerungseinrichtungen des Manipulatorsystems.
  • Beschreibung der Figuren
  • Im Folgenden wird die Erfindung unter Bezugnahme auf die 1 bis 5 detailliert beschrieben. Dabei zeigt
    • 1 ein Verfahren zur Fehlerbehebung gemäß dem Stand der Technik;
    • 2 eine schematische Darstellung eines Semantikbausteins einer Operationsstruktur sowie einer Reaktionsstruktur;
    • 3 eine schematische Darstellung einer Operationsstruktur sowie einer Reaktionsstruktur des Manipulatorprogramms;
    • 4 eine schematische Darstellung eines Modells eines Manipulatorprogramms; und
    • 5 eine schematische Darstellung einer Anwendung des Manipulatorprogramms.
  • Insbesondere zeigt 1 eine schematische Darstellung einer Fehlerbehandlung eines Manipulatorprogramms 1 gemäß einem bekannten Verfahren. Nach der Ausführung eines Prozessschrittes S1, S2, S3 wird überprüft ob der jeweilige Prozessschritt erfolgreich durchgeführt worden ist. Ist dies der Fall, kann mit folgenden Prozessschritt S2 fortgefahren werden. Tritt ein Fehler auf, so springt das Manipulatorprogramm zu einer Fehlerbehandlungsstruktur F1, F2, F3, welche das Manipulatorprogramm beendet. Nach der Behebung des Fehlers muss das Manipulatorprogramm erneut gestartet werden. Diese Fehlerbehandlung ist unflexibel und daher nur bedingt für Manipulatorsysteme geeignet. Sollen mit herkömmlichen Verfahren auch komplizierte Fehlerfälle abgedeckt werden, so steigt die Komplexität des Manipulatorprogramms und somit die Fehlerwahrscheinlichkeit für etwaige Programmierfehler.
  • 2 zeigt eine schematische Darstellung 2 eines Semantikbausteins eines Computerprogramms zur Durchführung eines Verfahrens zur Korrektur von Fehlern in einem Manipulatorsystem. Dabei gliedert sich der Semantikbaustein 200 in eine Operationsstruktur 210 und in eine Reaktionsstruktur 220. Tritt während der Ausführung der Operationsstruktur 210 ein Fehler auf, so wird die Operationsstruktur 210 unterbrochen und mit der Reaktionsstruktur 220 fortgefahren.
  • Die Reaktionsstruktur 220 beinhaltet Reaktionsoperationen 221 bis 225. In einer ersten Reaktionsoperation 221 wird die Art des aufgetretenen Fehlers ermittelt und entschieden, mit welcher der Reaktionsoperationen 222-224 fortgefahren werden soll.
  • Beispielsweise kann Reaktionsoperation 222 Anweisungen umfassen, die eine Fortführung der Operationsstruktur 210 mit einem geänderten Parametersatz kommandieren. Reaktionsoperation 223 kann beispielsweise Anweisungen umfassen, welche die Operationen der ausgeführten und unterbrochenen Operationsstruktur 210 zumindest teilweise rückgängig machen. Reaktionsoperation 224 kann eine Abbruchanweisung umfassen, so dass nicht mit Operationsstruktur 210 fortgefahren wird, sondern mit einer weiteren Operationsstruktur.
  • Die Reaktionsoperation 225 umfasst eine Anweisung, welche den Aufsetzpunkt und die folgende Operationsstruktur festlegt, mit denen das Manipulatorprogramm fortgesetzt werden soll. Ein solcher Aufsetzpunkt kann beispielsweise zu Beginn der Operationsstruktur 210 definiert sein, so dass die Operationsstruktur 210 erneut ausgeführt werden kann. Die erneute Ausführung der Operationsstruktur 210 kann gegebenenfalls mit einem geänderten Parametersatz erfolgen. Ebenso können auch andere Aufsetzpunkte zur Fortsetzung des Manipulatorprogramms genutzt werden. Somit ist eine Verzweigung und sind vielfältige Reaktionen auf Fehler möglich. Da sowohl die Operationsstruktur als auch die Reaktionsstruktur im selben Semantikbaustein implementiert sind, bleibt das Manipulatorprogramm übersichtlich und erlaubt eine individuelle Anpassung der Operationsstruktur und/oder der Reaktionsstruktur. Programmierfehler können somit schnell behoben werden und aufgrund der reduzierten Komplexität und erhöhten Übersichtlichkeit ist die Wahrscheinlichkeit für das Entstehen von Programmierfehlern herabgesetzt.
  • 3 zeigt eine schematische Darstellung einer Operationsstruktur 310 sowie einer Reaktionsstruktur 320. Die Operationsstruktur 310 umfasst mehrere Operationen O1 bis On. Diese Operationen werden vorzugsweise sequenziell ausgeführt, wie durch die geraden, durchgehend gezeichneten Pfeile angezeigt. Die Operationsstruktur 310 beginnt in einem ersten Aufsetzpunkt AP1 und endet in einem zweiten Aufsetzpunkt AP2. In den Aufsetzpunkten ist das Manipulatorsystem vorzugsweise konsistent. Somit kann die Operationsstruktur von einem Aufsetzpunkt unabhängig von der vorhergehenden Ausführungshistorie ausgeführt werden und liefert gleiche Ergebnisse.
  • Der Operationsstruktur 310 ist eine Reaktionsstruktur 320 zugeordnet, welche mehrere Reaktionsoperationen R1 bis Rn umfasst. Im dargestellten Fall wird, falls ein Fehler in einer Operation O1 bis On auftritt, mit einer entsprechenden Reaktionsoperation R1 bis Rn zunächst die betreffende Operation O1 bis On rückgängig gemacht. Ist dies erfolgreich, kann entschieden werden ob die Operation O1 bis On, in welcher der Fehler aufgetreten ist, erneut ausgeführt werden soll, oder ob mittels weiterer Reaktionsoperationen R1 bis Rn weitere vorangegangene Operationen O1 bis On rückgängig gemacht werden sollen. Die Erfindung ist nicht auf die hierin gezeigte Ausführungsform beschränkt. Insbesondere können auch mehrere Operationen durch eine Reaktionsstruktur rückgängig gemacht werden, oder auch ein anderer Weg als das tatsächliche „Rückgängigmachen“ einer Operation zu einem vorhergehenden Aufsetzpunkt beschritten werden.
  • 4 zeigt ein schematische Model 4 eines Manipulatorprogramms, umfassend mehrere Operationen O'i bis O'21 sowie mehrere Reaktionsoperationen R'1 bis R'30. Beginnend in Aufsetzpunkt AP5, kann die Operation O`i ausgeführt werden. Der vorhergesehene Programmablauf ist durch gestrichelte Pfeile dargestellt. Das Manipulatorprogramm führt anschließend die Operation O'2 aus. Hier besteht die Möglichkeit der Verzweigung zu einer der Operationen O'3-O'5. Im gezeigten Beispiel führt der Programmablauf zu Operationsstruktur O'3. Anschließend wird mit Operationsstruktur O'10 fortgefahren, der der Aufsetzpunkt AP7 zugeordnet ist. In der folgenden Operationsstruktur werden nacheinander die Operationen O'11, O'13, O'14 und O'16 ausgeführt, wobei bei der Ausführung der Operation O'16 ein Fehler 400 auftritt. Die fehlerhafte Operation O'16 wird abgebrochen und mit der Reaktionsoperation R'1 fortgefahren.
  • Die Reaktionsoperation R'1 stellt zwei mögliche Vorgehensweisen bereit. Die erste führt zu Reaktionsoperation R'10 die zweite zu Reaktionsoperation R'20, welche zu Aufsetzpunkt AP7 führt. Von Aufsetzpunkt AP7 kann mit Operation O'10 fortgefahren oder über die Reaktionsoperation R'30 zu Arbeitspunkt AP6, welcher der Operation O'2 zugeordnet ist, zurückgekehrt werden. Somit können unterschiedliche Operationen mit unterschiedlichen Reaktionsoperationen rückgängig gemacht werden oder, falls Prozesse irreversibel sind, auch anderweitige Pfade durch das Manipulatorprogramm gewählt werden. Ein Pfad bezeichnet die Abfolge von Operationen und/oder Reaktionsoperationen.
  • 5 zeigt ein exemplarisches Beispiel für eine Anwendung des Verfahrens. Gemäß der Anwendung wird in Darstellung A ein erstes Teil 510, welches über einen Bajonettverschluss 511 verfügt über einem zweiten Teil 520 ausgerichtet. Das zweite Teil 520 umfasst einen Vorsprung 521, der mit dem Bajonettverschluss 511 einrasten kann. Um die beiden Teile 510, 520 zu montieren, muss zunächst ein Manipulator das erste Teil 510 relativ zum zweiten Teil 520 konzentrisch ausrichten. Ist dies erfolgt, so kann das erste Teil 510 abgesenkt werden (s. Darstellung B), sodass der Vorsprung 521 in den Bajonettverschluss 511 des Teils 510 eingeführt wird. Anschließend wird das erste Teil 510 mittels des Manipulators rotiert (Darstellung C), sodass der Bajonettverschluss 511 mit dem Vorsprung 521 einrastet. Tritt nun beispielsweise beim Absenken des ersten Teils 510 ein Fehler auf, so kann mittels einer Reaktionsstruktur das Manipulatorprogramm veranlasst werden, erneut mit dem Ausrichten der beiden Teile 510, 520 zu beginnen. Schlägt dies fehl, d.h. kann der Fehler nicht automatisch behoben werden, kann ein Bediener hinzugerufen werden, der beispielsweise das erste Teil 510 korrekt zu dem zweiten Teil 520 positioniert oder das erste Teil 510 entfernt. Folglich kann der Montageprozess fortgesetzt und ein auftretender Fehler behoben werden, ohne dass das Manipulatorprogramm abgebrochen und von neuem gestartet werden muss.
  • Bezugszeichenliste
  • AP1-AP9
    Aufsetzpunkte
    E1
    Beendigungsschritt
    F1 bis F3
    Fehlerstrukturen
    O1 bis On
    Operationen
    O'1-O'21
    Operationen
    R1 bis Rn
    Reaktionsoperationen
    R'1-R'30
    Reaktionsoperationen
    S1 bis S3
    Ausführungsschritte
    200
    Semantikbaustein
    210; 310
    Operationsstruktur
    220; 320
    Reaktionsstruktur
    221, 222, 223, 224,225
    Reaktionsoperationen
    400
    Fehler
    610
    erstes Teil
    620
    zweites Teil
    611
    Bajonettverschluss
    621
    Vorsprung

Claims (15)

  1. Verfahren zur Korrektur von Fehlern eines Manipulatorsystems, wobei das Manipulatorsystem zumindest einen Manipulator umfasst und mittels zumindest eines Manipulatorprogramms gesteuert wird, und wobei das Verfahren die folgenden Verfahrensschritte umfasst: Bereitstellen zumindest eines Manipulatorprogramms, wobei das Manipulatorprogramm mehrere Operationen (O1 bis On) umfasst; Zusammenfassen von zumindest zwei der Operationen (O1 bis On) zu zumindest einer Operationsstruktur (310); Definieren von zumindest einem Aufsetzpunkt (AP1, AP2), wobei der zumindest eine Aufsetzpunkt (AP1, AP2) den Anfang und/oder das Ende einer Operationsstruktur (310) bildet; Bereitstellen zumindest einer Reaktionsstruktur (320) und Zuordnen der Reaktionsstruktur (320) zu einer Operationsstruktur (310), wobei die zumindest eine Reaktionsstruktur (320) Reaktionsoperationen (R1 bis Rn), beinhaltet, bei deren Ausführung das Manipulatorprogramm das Manipulatorsystem so steuert, dass es in einen Systemzustand geführt wird, der einem Aufsetzpunkt (AP1, AP2) entspricht; Ausführen des Manipulatorprogramms und wenn ein Fehler auftritt, Ausführen der Reaktionsstruktur (320), sodass das Manipulatorsystem in einen Systemzustand überführt wird, der einem Aufsetzpunkt (AP1, AP2) entspricht, wobei abhängig von der Art des aufgetretenen Fehlers unterschiedliche Reaktionsoperationen (R1 bis Rn) der Reaktionsstruktur (320) ausgeführt werden.
  2. Verfahren nach Anspruch 1, wobei eine Operationsstruktur (310) konsistent ist, sodass die Integritätsbedingungen des Manipulatorsystems an einem Aufsetzpunkt (AP1, AP2) und/oder vor und/oder nach dem Ausführen der Operationsstruktur (310) eingehalten werden.
  3. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Systemzustand des Manipulatorsystems an einem Aufsetzpunkt (AP1, AP2) und/oder vor und/oder nach dem Ausführen einer Operationsstruktur (310) nicht in allen Systemparametern konsistent ist.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Ausführung einer Operationsstruktur (310) beim Auftreten eines Fehlers unterbrochen wird, und im Anschluss mit dem Ausführen einer Reaktionsstruktur (320) fortgefahren wird.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Reaktionsstruktur (320) zumindest eine Reaktionsoperation (R1 bis Rn) beinhaltet, deren Ausführung das Manipulatorsystem in einen Systemzustand führt, der dem Aufsetzpunkt (AP1) entspricht, welcher Aufsetzpunkt (AP1) den Anfang der Operationsstruktur (310) bildet, in der der Fehler aufgetreten ist.
  6. Verfahren nach Anspruch 5, wobei die zumindest eine Reaktionsoperation (R1 bis Rn) eine Operation (O1 bis On) der Operationsstruktur (310) rückgängig macht.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei eine Operation (O1 bis On) des Manipulatorprogramms durch zumindest einen Parameter definiert wird, und wobei der zumindest eine Parameter durch eine Reaktionsoperation (R1 bis Rn) der Reaktionsstruktur (320) veränderbar ist.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Reaktionsstruktur (320) zumindest eine Reaktionsoperation (R1 bis Rn) beinhaltet, deren Ausführung die unterbrochene Operationsstruktur (310) mit zumindest einem geänderten Parameter fortsetzt oder die unterbrochene Operationsstruktur (310) erneut ausführt.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Reaktionsstruktur (320) zumindest eine Reaktionsoperation (R1 bis Rn) beinhaltet, deren Ausführung die unterbrochene Operationsstruktur (310) solange unterbricht, bis eine Bedienereingabe erfolgt ist.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei die zumindest eine Operationsstruktur (310) in einem Aufsetzpunkt (AP1, AP2) mit zumindest einer weiteren Operation (O1 bis On) und/oder Operationsstruktur (310) verknüpft ist und nach dem Erreichen des Aufsetzpunktes (AP1, AP2) eine der verknüpften Operationen (O1 bis On) und/oder Operationsstrukturen (310) ausgeführt wird.
  11. Verfahren nach einem der vorhergehenden Ansprüche 7 bis 10, wobei ein Parameter ein numerischer Parameter oder ein Anweisungsparameter ist.
  12. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Manipulatorprogramm Echtzeit-Operationen und Echtzeit- Reaktionsoperationen sowie Nicht-Echtzeit-Operationen und Nicht-Echtzeit-Reaktionsoperationen beinhaltet, und wobei vor der Ausführung einer Echtzeit-Operation alle Echtzeit-Reaktionsoperationen und Nicht-Echtzeit-Reaktionsoperationen beendet sind.
  13. Computerprogramm, aufweisend Programmbefehle, die, wenn sie auf einem Computer und/oder Mikrocontroller geladen werden, den Computer und/oder Mikrocontroller veranlassen, das Verfahren nach einem der Ansprüche 1 bis 12 auszuführen.
  14. Computerprogramm nach Anspruch 13, wobei eine Operationsstruktur (310) und eine zugeordnete Reaktionsstruktur (320) im selben Manipulatorprogrammteil implementiert sind und vorzugsweise einen Semantikbaustein (100) bilden.
  15. Vorrichtung, eingerichtet zum Ausführen eines Computerprogramms nach einem der Ansprüche 13 oder 14.
DE102015222168.7A 2015-11-11 2015-11-11 Verfahren und computerprogramm zur korrektur von fehlern eines manipulatorsystems Active DE102015222168B4 (de)

Priority Applications (6)

Application Number Priority Date Filing Date Title
DE102015222168.7A DE102015222168B4 (de) 2015-11-11 2015-11-11 Verfahren und computerprogramm zur korrektur von fehlern eines manipulatorsystems
EP16794938.7A EP3374136A1 (de) 2015-11-11 2016-11-09 Verfahren und computerprogramm zur korrektur von fehlern eines manipulatorsystems
PCT/EP2016/001859 WO2017080650A1 (de) 2015-11-11 2016-11-09 Verfahren und computerprogramm zur korrektur von fehlern eines manipulatorsystems
CN201680066068.7A CN108349081B (zh) 2015-11-11 2016-11-09 用于修正操纵器系统的错误的方法和计算机程序
KR1020187016165A KR20180081775A (ko) 2015-11-11 2016-11-09 매니퓰레이터 시스템의 오류들을 정정하기 위한 방법 및 컴퓨터 프로그램
US15/775,619 US11065766B2 (en) 2015-11-11 2016-11-09 Method and computer program for correcting errors in a manipulator system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015222168.7A DE102015222168B4 (de) 2015-11-11 2015-11-11 Verfahren und computerprogramm zur korrektur von fehlern eines manipulatorsystems

Publications (2)

Publication Number Publication Date
DE102015222168A1 DE102015222168A1 (de) 2017-05-11
DE102015222168B4 true DE102015222168B4 (de) 2024-02-22

Family

ID=57288362

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015222168.7A Active DE102015222168B4 (de) 2015-11-11 2015-11-11 Verfahren und computerprogramm zur korrektur von fehlern eines manipulatorsystems

Country Status (6)

Country Link
US (1) US11065766B2 (de)
EP (1) EP3374136A1 (de)
KR (1) KR20180081775A (de)
CN (1) CN108349081B (de)
DE (1) DE102015222168B4 (de)
WO (1) WO2017080650A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015222164A1 (de) 2015-11-11 2017-05-11 Kuka Roboter Gmbh Verfahren und Computerprogramm zur Erzeugung einer grafischen Benutzerschnittstelle eines Manipulatorprogramms
JP6931585B2 (ja) * 2017-10-02 2021-09-08 株式会社オカムラ 作業システム、作業システムの制御方法及びプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011017398A1 (de) 2011-04-18 2012-10-18 Kuka Roboter Gmbh Verfahren und Mittel zum Steuern einer Roboteranordnung

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4570217A (en) 1982-03-29 1986-02-11 Allen Bruce S Man machine interface
JP2921903B2 (ja) * 1990-03-02 1999-07-19 株式会社日立製作所 溶接ロボット制御装置
EP0766153A1 (de) * 1992-12-28 1997-04-02 Mitsubishi Denki Kabushiki Kaisha Numerisch gesteuerte Werkzeugmaschine und Verfahren
JP2994926B2 (ja) * 1993-10-29 1999-12-27 松下電器産業株式会社 有限状態機械作成方法とパターン照合機械作成方法とこれらを変形する方法および駆動方法
DE69618606T2 (de) 1995-09-19 2002-09-12 Yaskawa Denki Kitakyushu Kk Prozessor für robotersprache
US6108662A (en) 1998-05-08 2000-08-22 Allen-Bradley Company, Llc System method and article of manufacture for integrated enterprise-wide control
US6157864A (en) 1998-05-08 2000-12-05 Rockwell Technologies, Llc System, method and article of manufacture for displaying an animated, realtime updated control sequence chart
JP2001236244A (ja) 2000-02-23 2001-08-31 Mitsubishi Electric Corp ロボットプログラムのデバッグシステム
US20020144015A1 (en) * 2001-03-30 2002-10-03 Lortz Victor B. Method and apparatus to implement a state machine
US6360143B1 (en) * 2001-04-27 2002-03-19 Fanuc Robotics North America Error recovery methods for controlling robotic systems
US7200529B2 (en) 2003-08-15 2007-04-03 National Instruments Corporation Automatic configuration of function blocks in a signal analysis system
JP3819883B2 (ja) 2003-08-27 2006-09-13 ファナック株式会社 ロボットプログラム位置修正装置
US20070282480A1 (en) * 2003-11-10 2007-12-06 Pannese Patrick D Methods and systems for controlling a semiconductor fabrication process
US20080208372A1 (en) * 2003-11-10 2008-08-28 Pannese Patrick D Scheduling with neural networks and state machines
JP3733364B2 (ja) 2003-11-18 2006-01-11 ファナック株式会社 教示位置修正方法
DE102004046611A1 (de) 2004-09-25 2006-03-30 Robert Bosch Gmbh Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem
EP1724676A1 (de) 2005-05-20 2006-11-22 ABB Research Ltd. Verfahren und Vorrichtung zur Entwicklung eines Softwareprogramms
DE102008007438B4 (de) 2008-02-01 2012-11-29 Abb Ag Verfahren zum Wiederanfahren eines Roboters
WO2010092981A1 (ja) * 2009-02-12 2010-08-19 三菱電機株式会社 産業用ロボットシステム
DE102009054230A1 (de) * 2009-11-23 2011-05-26 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Steuern von Manipulatoren
JP4600601B1 (ja) 2010-04-08 2010-12-15 株式会社ベイビッグ デバッグ支援装置、デバッグ支援方法及びデバッグ支援プログラム
DE102012008073A1 (de) 2012-04-24 2013-10-24 Kuka Roboter Gmbh Verfahren und Mittel zum Vorgeben und/oder Steuern eines Manipulatorprozesses
US20150266182A1 (en) * 2012-10-11 2015-09-24 Abb Technology Ltd Method And An Apparatus For Automatically Generating A Collision Free Return Program For Returning A Robot From A Stop Position To A Predefined Restart Position
CN104968194B (zh) 2013-02-06 2017-04-05 利拉伐控股有限公司 奶头处理方法和装置
JP5893666B2 (ja) 2014-04-14 2016-03-23 ファナック株式会社 力に応じて動かすロボットのロボット制御装置およびロボットシステム
CA2926861C (en) 2014-05-21 2017-03-07 Millennium Three Technologies Inc Fiducial marker patterns, their automatic detection in images, and applications thereof
DE102015222164A1 (de) 2015-11-11 2017-05-11 Kuka Roboter Gmbh Verfahren und Computerprogramm zur Erzeugung einer grafischen Benutzerschnittstelle eines Manipulatorprogramms
DE102015222167A1 (de) 2015-11-11 2017-05-11 Kuka Roboter Gmbh Verfahren zum vereinfachten ändern von applikationsprogrammen zur steuerung einer industrieanlage

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011017398A1 (de) 2011-04-18 2012-10-18 Kuka Roboter Gmbh Verfahren und Mittel zum Steuern einer Roboteranordnung

Also Published As

Publication number Publication date
CN108349081B (zh) 2021-08-03
WO2017080650A1 (de) 2017-05-18
KR20180081775A (ko) 2018-07-17
DE102015222168A1 (de) 2017-05-11
US20180345497A1 (en) 2018-12-06
US11065766B2 (en) 2021-07-20
EP3374136A1 (de) 2018-09-19
CN108349081A (zh) 2018-07-31

Similar Documents

Publication Publication Date Title
DE4431315A1 (de) Steuerungsverfahren und Steuerungsvorrichtung für Fabrik-Automatisierungssystem
DE102015222164A1 (de) Verfahren und Computerprogramm zur Erzeugung einer grafischen Benutzerschnittstelle eines Manipulatorprogramms
EP2656980B1 (de) Verfahren und Mittel zum Vorgeben und/oder Steuern eines Manipulatorprozesses
EP3812106B1 (de) Roboteranordnung, verfahren zum betreiben der roboteranordnung, computerprogramm sowie maschinenlesbares speichermedium
DE102016000754A1 (de) Verfahren und System zur Bahnplanung eines redundanten Roboters
EP2502713B1 (de) Roboter, Steuervorrichtung für einen Roboter und Verfahren zum Betreiben eines Roboters
DE102015222168B4 (de) Verfahren und computerprogramm zur korrektur von fehlern eines manipulatorsystems
WO2014173470A1 (de) Numerische steuerung mit benachrichtigung eines cam-systems bei änderung des teileprogramms
WO2019029870A1 (de) Handhabungseinrichtung mit einem roboter sowie verfahren und computerprogramm
WO2017129360A1 (de) Steuern eines roboterverbands
DE112021004248T5 (de) Numerisches Steuersystem und Robotersteuerverfahren
EP3710900B1 (de) Verfahren und system zum vorgeben bzw. lernen eines roboterbefehls
DE112018007687T5 (de) Maschinelles-Lernen-Gerät, numerisches Steuerungsgerät, Maschinenwerkzeug und Maschinenlernverfahren
DE102020103854B4 (de) Maschinelles Lernen einer erfolgreich abgeschlossenen Roboteranwendung
EP3268172B1 (de) Verfahren zur steuerung eines manipulators zur ausführung eines arbeitsprozesses
DE102004062852A1 (de) Steuerung einer Maschine mit Debuggfunktionalität
EP2845697A2 (de) Verfahren zum Überwachen einer nutzlastführenden Roboteranordnung
EP3739396A1 (de) System zur bewegungsführung eines manipulators aufweisend einen ersten und einen zweiten prozessor
DE102022201792B3 (de) Verfahren und Vorrichtung zur automatisierten Koordinierung der Tätigkeiten von mehreren Robotern
DE10300605A1 (de) Ablaufsteuerung mit definierter Behebung von Ausnahmezuständen
DE102021204306B3 (de) Verfahren und System zum Durchführen einer Roboterapplikation
EP2965873B1 (de) Verfahren zur automatischen Steuerung eines Handhabungsgeräts
DE102021212134B3 (de) Verfahren und System zum Betreiben eines Roboters
EP0856791B1 (de) System mit Störungsbewältigung sowie Verfahren zur Störungsbewältigung
DE102020103852B4 (de) Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division