DE102019105820A1 - Verfahren, System sowie nichtflüchtiges Speichermedium - Google Patents

Verfahren, System sowie nichtflüchtiges Speichermedium Download PDF

Info

Publication number
DE102019105820A1
DE102019105820A1 DE102019105820.1A DE102019105820A DE102019105820A1 DE 102019105820 A1 DE102019105820 A1 DE 102019105820A1 DE 102019105820 A DE102019105820 A DE 102019105820A DE 102019105820 A1 DE102019105820 A1 DE 102019105820A1
Authority
DE
Germany
Prior art keywords
machine
model
sub
sensor
mapping
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.)
Pending
Application number
DE102019105820.1A
Other languages
English (en)
Inventor
Christian Piechnick
Klaus Wagner
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.)
Matheus Service GmbH
Wandelbots GmbH
Original Assignee
Matheus Service GmbH
Wandelbots 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 Matheus Service GmbH, Wandelbots GmbH filed Critical Matheus Service GmbH
Priority to DE102019105820.1A priority Critical patent/DE102019105820A1/de
Priority to PCT/EP2020/056052 priority patent/WO2020178435A1/de
Priority to CN202080025472.6A priority patent/CN113710430A/zh
Priority to KR1020217032067A priority patent/KR20220002279A/ko
Priority to US17/436,631 priority patent/US20220143830A1/en
Priority to JP2021553321A priority patent/JP2022524385A/ja
Priority to EP20710474.6A priority patent/EP3934858A1/de
Publication of DE102019105820A1 publication Critical patent/DE102019105820A1/de
Pending legal-status Critical Current

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
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • 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
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • 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/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • G05B19/423Teaching successive positions by walk-through, i.e. the tool head or end effector being grasped and guided directly, with or without servo-assistance, to follow a path
    • 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/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • G05B19/427Teaching successive positions by tracking the position of a joystick or handle to control the positioning servo of the tool head, master-slave control
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36436Arm follows movement of handheld device, camera detects, analyses motion
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36479Record position on trigger of touch probe
    • 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/40116Learn by operator observation, symbiosis, show, watch
    • 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/40391Human to robot skill transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

Gemäß verschiedenen Ausführungsformen kann ein Verfahren aufweisen: Ermitteln (103) eines maschinenunabhängigen Prozessmodells (104m) auf Grundlage von Daten, wobei die Daten eine Handhabung eines Arbeitsgeräts (104) beim Durchführen (101) eines Prozessablaufs repräsentieren, wobei der Prozessablauf eine Vielzahl von Teilprozessen aufweist, wobei das Prozessmodell (104m) für jeden Teilprozess der Vielzahl von Teilprozessen eine Prozesstätigkeit mit einer räumlichen Information des Teilprozesses verknüpft; Abbilden (105) des maschinenunabhängigen Prozessmodells (104m) auf ein maschinenspezifisches Steuerungsmodell (116m) einer Maschine (114) unter Verwendung eines Modells (114m) der Maschine (114), wobei das maschinenspezifische Steuerungsmodell (116m) für jeden Teilprozess der Vielzahl von Teilprozessen einen Arbeitspunkt der Maschine (114) definiert, der zu der Prozesstätigkeit und der räumlichen Information des Teilprozesses korrespondiert.

Description

  • Verschiedene Ausführungsbeispiele betreffen ein Verfahren, ein System sowie ein nichtflüchtigen Speichermedium.
  • Sowohl die Programmierung eines Industrieroboters als auch die Programmierung der zugehörigen Anlagensteuerung ist herkömmlicherweise hersteller- und roboterabhängig. Die Programmierung erfolgt in der Regel in Form von Programmcode durch einen oder mehr als einen speziell ausgebildete Experten. Daher ist die Programmierung insbesondere für eine bahn-basierte Anwendung (z.B. Schweißen, Kleben, Lackieren) aufwändig und teuer.
  • Die Kosten machen eine Automatisierung mittels eines Industrieroboters (vereinfacht auch als Roboter bezeichnet) für kleine- und mittelständische Unternehmen wirtschaftlich unattraktiv, da diese üblicherweise keine Fertigung hoher Stückzahlen bei geringer Fertigungsvariabilität unterhalten, welche die Kosten aufwiegen könnte. Für große Unternehmen kann hingegen die geringe Flexibilität der Programmierung unattraktiv sein. Eine Umrüstung der Programmierung ist zeitaufwändig, wodurch kürzere und unwirtschaftliche Produktionszyklen entstehen.
  • Die Komplexität der Programmierung erhöht sich aufgrund der Integration des Industrieroboters mit seinen vielfältigen Bestandteilen, wie etwa einem Endeffektor (z.B. einer Klebepistole), einem Sensorsystem (z.B. einer Kamera) und einem Steuersystem (z.B. einer speicherprogrammierbaren Steuerung - SPS). Diesbezüglich werden herkömmlicherweise die folgenden Teilaspekte betrachtet und behandelt: die Bewegungsplanung und Bewegungssteuerung in Form einer Trajektorie, die Integration und Ansteuerung der am Roboter befestigten Werkzeuge, die Prozesslogik inklusive Fehlererkennung und -behandlung, die Prozessparameter und mögliche Adaptionen auf geänderte Rahmenbedingungen, und die Integration der Steuerung des Roboters in die Steuerung der Gesamtanlage.
  • Die Programmierung eines Industrieroboters kann beispielsweise manuell von einem Experten erfolgen. Dies trifft derzeit noch für mehr als 96% der Anwendungen zu. Dabei schreibt ein Programmierer manuell den Programmcode, der den Roboter zur Ausführungszeit die Anwendung autonom durchführen lässt.
  • Die Programmierung eines Industrieroboters kann alternativ oder zusätzlich mittels einer CAD-basierten Codegenerierung durch den Experten erfolgen. Dabei wird eine virtuelle Repräsentation der Realität (auch als virtuelle Welt bezeichnet) geschaffen und der Roboter in der virtuellen Welt programmiert. Dies ermöglicht neben der Simulation auch die einfachere Zugänglichkeit. Jedoch kann diese CAD-basierte Codegenerierung nicht ohne weiteres von einem technischen Laien umgesetzt werden. Darüber hinaus weicht die virtuelle Welt oft signifikant von der Realität ab. Bereits kleine Abweichungen können zu erheblichen Diskrepanzen bei der Arbeit des Roboters in der Realität führen. Aus diesem Grund wird der Programcode, der mittels der Codegenerierung generiert wird, üblicherweise zusätzlich von einem Programmierer angepasst.
  • Als Alternative zur vollständig manuellen Programmierung wird herkömmlicherweise ein Anlernverfahren (auch als Teach-In bezeichnet) eingesetzt.
  • Für das Anlernverfahren kann der Roboter beispielsweise manuell gesteuert werden. Ein sensitiver Roboter (auch als Co-Bot bezeichnet) kann beispielsweise auch handgeführt werden. Mit beiden Mechanismen kann die Trajektorie (d.h. die Bahn auf der sich der Roboter bewegen soll) gezeigt werden.
  • Über die Trajektorie hinausgehende Tätigkeiten, die der Roboter durchführen soll, bleiben allerdings weiterhin komplex und daher herkömmlicherweise von dem Anlernverfahren unberücksichtigt. Die Komplexität besteht beispielsweise in der Integration der vielfältigen Bestandteile des Roboters, wie des Endeffektors, der Sensoren und dem Steuerungssystem, in den auszuführenden Prozess, welche daher manuell programmiert werden muss.
  • Das Anlernverfahren kann alternativ oder zusätzlich über ein interaktives Eingabegerät erfolgen. Dazu wird herkömmlicherweise ein herstellerspezifisches Eingabegerät, wie beispielsweise eine 6d-Maus oder ein Interaktionsstift, verwendet. Analog zur manuellen Steuerung oder handgeführten Steuerung kann in diesem Fall ebenso nur die Trajektorie angelernt werden. Die Integration der verschiedenen Bestandteile des Roboters erfolgt daher manuell über Programmierung.
  • Das Anlernverfahren kann alternativ oder zusätzlich mittels einer Sensordatenverarbeitung erfolgen. Dazu werden verschiedene Erweiterungen für den Endeffektor eines dafür ausgerüsteten Roboters vorgesehen, die ein Sensorsystem (z.B. eine Kamera) direkt in die Robotersteuerung integrieren. Aufgrund der technischen Limitierungen ist dies bisher nur für eine Bestückungsanwendung (auch als Pick-and-Place Applikationen bezeichnet) anwendbar.
  • Im Allgemeinen ist herkömmlicherweise immer ein Anteil manueller Programmierung vorhanden. Daher haben diese herkömmlichen Methoden gemeinsam, dass die Umsetzung nicht vollständig von einem technischen Laien vorgenommen werden kann, wenn der manuelle Programmieranteil über dessen Fähigkeiten hinausgeht. Das liegt darin begründet, dass die Gesamtanwendung ein Zusammenspiel vielfältiger Teilprobleme ist (wie beispielsweise der Trajektorie, der Endeffektor-Ansteuerung, der Sensordatenverarbeitung und der Integration in die Prozesssteuerung). Einfache Anlernverfahren konzentrieren sich daher ausschließlich auf die Spezifikation der Trajektorie. Das Anlernverfahren mit Sensordatenverarbeitung basiert auf Sensoren, die direkt am Roboter angebracht sind. Jedoch ist der Sichtbereich durch den Endeffektor und Roboter häufig eingeschränkt. Darüber hinaus beeinträchtigen wechselnde Lichtverhältnisse oder Luftpartikel (z.B. beim Lackieren) die Sensoren am Roboter.
  • Gemäß verschiedenen Ausführungsformen werden ein Verfahren, ein System sowie ein nichtflüchtiger Speichermedium bereitgestellt, welche die Automatisierung eines Prozessablaufs erleichtern.
  • Gemäß verschiedenen Ausführungsformen kann ein Verfahren aufweisen: Ermitteln eines maschinenunabhängigen Prozessmodells auf Grundlage von Daten, wobei die Daten eine Handhabung eines Arbeitsgeräts beim Durchführen eines Prozessablaufs repräsentieren, wobei der Prozessablauf eine Vielzahl von Teilprozessen aufweist, wobei das Prozessmodell für jeden Teilprozess der Vielzahl von Teilprozessen eine Prozesstätigkeit mit einer räumlichen Information des Teilprozesses verknüpft; Abbilden des maschinenunabhängigen Prozessmodells auf ein maschinenspezifisches Steuerungsmodell einer Maschine unter Verwendung eines Modells der Maschine, wobei das maschinenspezifische Steuerungsmodell für jeden Teilprozess der Vielzahl von Teilprozessen einen Arbeitspunkt der Maschine definiert, der zu der Prozesstätigkeit und der räumlichen Information des Teilprozesses korrespondiert.
  • Anschaulich wird gemäß verschiedenen Ausführungsformen ein maschinenunspezifisches Prozessmodell erzeugt, welches den menschlichen Gesamtprozess der zu erledigenden Prozessaufgabe beschreibt. Das Prozessmodell kann beispielsweise erstellt werden, indem nachverfolgt wird, wie die Prozessaufgabe von einer Person erledigt wird.
  • Das maschinenunspezifische Prozessmodell wird dann in ein maschinenspezifisches Steuerungsmodell überführt, welches auf diejenige Hardwareplattform (allgemein auch als Maschine bezeichnet) zugeschnitten ist, welche die Prozessaufgabe automatisiert erfüllen soll. Dabei werden maschinenspezifische Informationen der ausgewählten Hardwareplattform berücksichtigt.
  • Aus dem maschinenspezifischen Steuerungsmodell kann nachfolgend das Steuerprogram gebildet werden, welches die Hardwareplattform, z.B. deren SPS (Speicherprogrammierbare Steuerung), ausführen kann.
  • Es zeigen
    • 1 und 3 jeweils ein Verfahren gemäß verschiedenen Ausführungsformen in einer schematischen Seitenansicht;
    • 2 und 4A jeweils ein Verfahren gemäß verschiedenen Ausführungsformen in einem schematischen Ablaufdiagramm;
    • 4B ein System zum Durchführen eines Verfahrens gemäß verschiedenen Ausführungsformen in einem schematischen Systemdiagram;
    • 5 das Verfahren gemäß verschiedenen Ausführungsformen in einem schematischen Modelldiagramm;
    • 6 das Verfahren gemäß verschiedenen Ausführungsformen in einem schematischen Ablaufdiagramm; und
    • 7 eine Maschine gemäß verschiedenen Ausführungsformen in einem schematischen Aufbaudiagram.
  • In der folgenden ausführlichen Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die Teil dieser bilden und in denen zur Veranschaulichung spezifische Ausführungsformen gezeigt sind, in denen die Erfindung ausgeübt werden kann. In dieser Hinsicht wird Richtungsterminologie wie etwa „oben“, „unten“, „vorne“, „hinten“, „vorderes“, „hinteres“, usw. mit Bezug auf die Orientierung der beschriebenen Figur(en) verwendet. Da Komponenten von Ausführungsformen in einer Anzahl verschiedener Orientierungen positioniert werden können, dient die Richtungsterminologie zur Veranschaulichung und ist auf keinerlei Weise einschränkend. Es versteht sich, dass andere Ausführungsformen benutzt und strukturelle oder logische Änderungen vorgenommen werden können, ohne von dem Schutzumfang der vorliegenden Erfindung abzuweichen. Es versteht sich, dass die Merkmale der hierin beschriebenen verschiedenen beispielhaften Ausführungsformen miteinander kombiniert werden können, sofern nicht spezifisch anders angegeben. Die folgende ausführliche Beschreibung ist deshalb nicht in einschränkendem Sinne aufzufassen, und der Schutzumfang der vorliegenden Erfindung wird durch die angefügten Ansprüche definiert.
  • Im Rahmen dieser Beschreibung werden die Begriffe „verbunden“, „angeschlossen“ sowie „gekoppelt“ verwendet zum Beschreiben sowohl einer direkten als auch einer indirekten Verbindung, eines direkten oder indirekten Anschlusses sowie einer direkten oder indirekten Kopplung, z.B. einer mechanischen, hydrostatischen, thermischen und/oder elektrischen, z.B. direkten oder indirekten, Verbindung und/oder Wechselwirkung. In den Figuren werden identische oder ähnliche Elemente mit identischen Bezugszeichen versehen, soweit dies zweckmäßig ist. Eine Kupplung kann eingerichtet sein, eine mechanische Wechselwirkung (z.B. Kraft, Drehmoment, etc.) zu übertragen.
  • Der Begriff „Prozessor“ kann als jede Art von Entität verstanden werden, die die Verarbeitung von Daten oder Signalen erlaubt. Die Daten oder Signale können beispielsweise gemäß zumindest einer (d.h. einer oder mehr als einer) spezifischen Funktion behandelt werden, die vom Prozessor ausgeführt wird. Ein Prozessor kann eine analoge Schaltung, eine digitale Schaltung, eine Mischsignalschaltung, eine Logikschaltung, einen Mikroprozessor, eine zentrale Verarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU), einen digitalen Signalprozessor (DSP), eine programmierbare Gatter-Anordnung (FPGA), eine integrierte Schaltung oder eine beliebige Kombination davon aufweisen oder daraus gebildet sein. Jede andere Art der Implementierung der jeweiligen Funktionen, die nachstehend ausführlicher beschrieben werden, kann auch als Prozessor oder Logikschaltung verstanden werden. Es versteht sich, dass einer oder mehrere der hierin detailliert beschriebenen Verfahrensschritte von einem Prozessor ausgeführt (z. B. realisiert) werden können, durch eine oder mehrere spezifische Funktionen, die von dem Prozessor ausgeführt werden.
  • Der Begriff „System“ kann als ein Satz interagierender Entitäten verstanden werden. Der Satz interagierender Entitäten kann beispielsweise zumindest eine mechanische Komponente, zumindest einen elektromechanischen Wandler (oder andere Arten von Stellgliedern), zumindest eine elektrische Komponente, zumindest eine Anweisung (z.B. in einem Speichermedium codiert), und/oder zumindest eine Steuervorrichtung aufweisen oder daraus gebildet sein.
  • Der Begriff „Stellglied“ (auch als Aktuator oder Aktor bezeichnet) kann als eine Komponente verstanden werden, die zum Beeinflussen eines Mechanismus oder eines Prozesses in Antwort auf ein Ansteuern eingerichtet ist. Der Aktuator kann von der Steuervorrichtung ausgegebene Anweisungen (das sogenannte Ansteuern) in mechanische Bewegungen bzw. Veränderungen physikalischer Größen wie Druck oder Temperatur umsetzen. Der Aktuator, z.B. ein elektromechanischer Umsetzer, kann zum Beispiel eingerichtet sein, in Antwort auf ein Ansteuern elektrische Energie in mechanische Energie (z.B. durch Bewegung) zu überführen.
  • Der Begriff „Steuervorrichtung“ kann als jede Art einer Logik implementierenden Entität verstanden werden, die beispielsweise eine Verschaltung und/oder einen Prozessor aufweisen kann, welche Software ausführen kann, die in einem Speichermedium, in einer Firmware oder in einer Kombination davon gespeichert ist, und darauf basierend Anweisungen ausgeben kann. Die Steuervorrichtung kann beispielsweise mittels Codesegmenten (z.B. Software) konfiguriert sein, um den Betrieb eines Systems (z.B. seines Arbeitspunkts), z.B. einer Maschine oder einer Anlage, z.B. zumindest seiner kinematischen Kette, zu steuern.
  • Das Steuern kann verstanden werden als eine beabsichtigte Beeinflussung eines Systems. Dabei kann der Zustand des Systems gemäß einer Vorgabe verändert werden unter Verwendung eines Stellglieds. Regeln kann als Steuern verstanden werden, wobei zusätzlich einer Zustandsänderung des Systems durch Störungen entgegengewirkt wird. Anschaulich kann die Steuerung eine nach vorn gerichtete Steuerstrecke aufweisen und somit anschaulich eine Ablaufsteuerung implementieren, welche eine Eingangsgröße in eine Ausgangsgröße umsetzt. Die Steuerstrecke kann aber auch Teil eines Regelkreises sein, so dass eine Regelung implementiert wird. Die Regelung weist im Gegensatz zu der reinen Vorwärts-Steuerung eine fortlaufende Einflussnahme der Ausgangsgröße auf die Eingangsgröße auf, welche durch den Regelkreis bewirkt wird (Rückführung).
  • Als Prozessablauf kann die Summe aller Vorgänge (z.B. eine zeitliche Folge von gesteuerten Ereignissen) verstanden werden, die eine vordefinierte Prozessaufgabe erfüllen. Die Teilprozesse des Prozessablaufs können jeder eine Teilaufgabe (d.h. einen Teil der Prozessaufgabe) erfüllen. Die einzelnen Teilprozesse können, je nach Art des Prozessablaufs, ineinandergreifen und/oder aufeinander aufbauen, z.B. in einer strikten Reihenfolge erfolgen, und/oder unabhängig voneinander sein, z.B. vertauschbar sein. Ein bedingter Teilprozess kann beispielsweise genau dann durchgeführt, begonnen oder beendet werden, wenn eine diesem zugeordnete Prozesssituation vorliegt, z.B. ein Schwellenwert für eine Messgröße unterschritten ist oder eine Mustererkennung das zu bearbeitende Werkstück erkennt.
  • Jedem Teilprozess können eine Prozesstätigkeit und zumindest ein Vektor der Prozesstätigkeit zugeordnet sein. Der Vektor kann zumindest eine Position, deren Änderung, eine räumliche Verteilung und/oder zumindest eine Richtung der Prozesstätigkeit definieren. Die vereinfacht mittels des Vektors beschriebenen räumlichen Angaben über die Prozesstätigkeit können auch komplexer oder detaillierter sein (hierin allgemeiner als räumliche Information bezeichnet). Optional kann der räumlichen Information eine zeitliche Angabe über die Prozesstätigkeit zugeordnet sein, welche z.B. die Dauer, den Beginn, die Beendigung und/oder einen Takt der Prozesstätigkeit definieren.
  • Wird der Prozessablauf von einem handgeführtem Arbeitsgerät durchgeführt, kann die Prozesstätigkeit die Summe an Vorgängen beschreiben, die mittels des Arbeitsgeräts durchgeführt werden, um die entsprechende Wirkung zur Erreichung der Prozessaufgabe auf ein Werkstück bereitzustellen (d.h. die Teilaufgabe zu erfüllen). Die entsprechende räumliche Information kann beschreiben, wo und/oder mit welcher Verteilung die Wirkung bereitgestellt werden soll und/oder in welcher räumlichen Lage (d.h. Position und/oder Ausrichtung) sich das Arbeitsgerät dazu befindet. Die Handhabung des Arbeitsgeräts kann beschreiben, auf welche Weise das Arbeitsgerät beim Durchführen eines Prozessablaufs geführt und/oder betätigt wird, z.B. wie es gehalten, wie stark angepresst, und/oder wie lange der Vorgang durchgeführt wird.
  • Als Modell kann eine datenbasierte (z.B. digitale und/oder virtuelle) Repräsentation eines Originals verstanden werden, z.B. eines körperlichen Objekts (z.B. einer Maschine) oder eines Vorgangs (z.B. eines Steuervorgangs oder eines Prozessablaufs). Zum Bilden des Modells (die sogenannte Modellbildung, d.h. die Abbildung des Originals auf das Modell) kann das Original abstrahiert, parametrisiert und/oder vereinfacht werden. Das Modell kann beispielsweise körperliche Informationen (z.B. Länge, Abstand, Gewicht, Volumen, Zusammensetzung, usw.), bewegungsbezogene Informationen (z.B. Position, Ausrichtung, Bewegungsrichtung, Beschleunigung, Bewegungsgeschwindigkeit, usw.), logische Informationen (Verknüpfungen, Reihenfolge, Kopplungen, Wechselbeziehungen, Abhängigkeiten, usw.), zeitbezogene Informationen (z.B. Zeit, Gesamtdauer, Häufigkeit, Periodendauer, usw.) und/oder funktionelle Informationen (z.B. Stromstärke, Wirkung, Kennfeld oder Kennlinie, Arbeitspunkt-Raum, Kraft, Freiheitsgrad, usw.) über das Original aufweisen.
  • Das Steuerungsmodell kann dementsprechend eine formale Darstellung einer automatisierten Ansteuerung bezeichnen. Das Steuerungsmodell kann eine Vielzahl von Anweisungen zur Ansteuerung (z.B. um die Maschine in einen Arbeitspunkt zu bringen) aufweisen und ferner Kriterien, deren Erfüllung die diesen zugeordnete Anweisung auslöst, beendet oder aufrechterhält. Ferner kann das Steuerungsmodell eine Steuerungslogik aufweisen, welche mehrere Kriterien und/oder mehrere Anweisungen logisch miteinander verknüpft, und/oder welche einen Ablauf (z.B. einen Ablaufplan) implementiert, gemäß dem die Ansteuerung erfolgt.
  • In analoger Weise kann das Prozessmodell eine formale Darstellung eines Prozessablaufs bezeichnen. Das Prozessmodell kann eine Vielzahl von Verknüpfungen zwischen einer Prozesstätigkeit und der entsprechenden räumlichen Information aufweisen und den Prozesstätigkeiten optional entsprechende Prozesssituationen zuordnen, welche beispielsweise bei der Prozesstätigkeit vorliegen, diese bedingen oder beenden. Ferner kann das Prozessmodell eine Prozesslogik aufweisen, welche mehrere Prozesssituationen und/oder mehrere Prozesstätigkeiten logisch miteinander verknüpft, und/oder welche einen Ablauf (z.B. einen Ablaufplan) implementiert, gemäß dem der Prozessablauf erfolgt. Beispielsweise kann die Prozesssituation eine dieser zugeordnete Prozesstätigkeit gemäß der räumlichen Information bedingen (was den bedingten Teilprozess repräsentiert). Anschaulich kann dieselbe Prozesstätigkeit z.B. an unterschiedlichen Orten erfolgen, je nachdem, welche Prozesssituation vorliegt.
  • Im Allgemeinen kann ein Ablaufplan zumindest Verzweigungen, Sprünge und/oder Schleifen aufweisen. Das Vorliegen oder Fehlen einer Prozesssituation kann im Allgemeinen mittels zumindest eines Kriteriums repräsentiert werden, welches beispielsweise bei Vorliegen bzw. Fehlen der Prozesssituation erfüllt ist.
  • Das Abbilden kann das Überführen von Elementen einer Ausgangsmenge (auch als Urbild bezeichnet) in eine Zielmenge aufweisen, wobei die Elemente der Zielmenge dann das Abbild (Abbildung) des Urbilds sind. Das Abbilden kann jedem Element des Urbilds zumindest ein Element der Abbildung zuordnen. Das Abbilden kann aufweisen, auf die Elemente der Ausgangsmenge beispielsweise Operatoren, Transformationen und/oder Verknüpfungen anzuwenden. Die Elemente können im Allgemeinen aufweisen: logische Zusammenhänge, Verknüpfungen, Informationen, Eigenschaften, Koordinaten oder das zugehörige Koordinatensystem, mathematische Objekte (wie Formeln oder Zahlen), Vorgänge, Tätigkeiten, usw.
  • Ein Codegenerator kann als Computerprogramm verstanden werden, welches eingerichtet ist, ein Modell, das z.B. in einer Modellierungssprache vorliegt, in eine Programmiersprache zu überführen, z.B. der Programmiersprache der Steuervorrichtung der Maschine. Alternativ oder zusätzlich zu der Modellierungssprache, z.B. einer vereinheitlichten Modellierungssprache (UML), kann das Modell aber auch in einer Auszeichnungssprache, einem Struktogramm, einer Entscheidungstabelle oder einer anderen formalen Sprache vorliegen. Der Codegenerator erzeugt Codesegmente (auch als Codegenerierung bezeichnet), die mit anderen optionalen Programmteilen zu einem Programm verbunden werden können.
  • Als räumliche Lage (auch als Lageinformation oder vereinfacht als Lage bezeichnet) kann hierin die räumliche Information der Ausrichtung und/oder Position eines Objekts verstanden werden. Die Position kann anschaulich den Ort (z.B. einen Punkt) im Raum und die Ausrichtung die jeweilige Orientierung (z.B. eine Richtung) eines Objekts relativ zu dem Raum beschreiben. Als Trajektorie kann eine Reihe von räumlichen Lageinformationen verstanden werden, die nacheinander von einem Objekt eingenommenen werden. Die Lageinformation kann optional zeitabhängig (d.h. bewegungsbezogen, dann auch als Bewegung bezeichnet) sein, gemäß einer Taktung oder Geschwindigkeit, so dass eine Bewegung entlang der Trajektorie berücksichtigt wird. Im Allgemeinen kann die räumliche Lageinformationen oder eine andere räumliche Information im dreidimensionalen Raum mittels kartesischer Koordinaten beschrieben werden. Es kann aber auch ein anderes Koordinatensystem verwendet werden, z.B. Zylinderkoordinaten.
  • 1 veranschaulicht ein Verfahren 100 gemäß verschiedenen Ausführungsformen in einer schematischen Seitenansicht.
  • Weiterhin ist in 1 eine zu programmierende Maschine 114 dargestellt. Die zu programmierende Maschine 114 kann ein Roboter sein, z.B. ein Industrieroboter, zur Handhabung, Montage oder Bearbeitung eines Werkstücks. Das Verfahren 100 ermöglicht beispielsweise das Endnutzerprogrammieren der vollständigen Automatisierungsapplikation (inklusive Prozessparameter und Integration) durch einen technischen Laien.
  • Die zu programmierende Maschine 114 kann im Allgemeinen einen Manipulator 114p, 114e und ein Gestell 114u aufweisen, an welchem der Manipulator 114p, 114e abgestützt ist. Der Begriff Manipulator 114p, 114e fasst die Gesamtheit der beweglichen Glieder 114v, 114g, 114e der Maschine 114 zusammen, deren Ansteuerung eine physikalische Interaktion mit der Umgebung ermöglicht, um z.B. einen Prozessablauf durchzuführen. Zur Ansteuerung kann die Maschine 114 eine Steuervorrichtung 712 aufweisen, welche eingerichtet ist, die Interaktion mit der Umgebung gemäß einem Steuerprogram zu implementieren. Das letzte Glied 114e des Manipulators 114p, 114e (auch als Endeffektor 114e bezeichnet) kann ein oder mehr als ein Werkzeug aufweisen, wie zum Beispiel einen Schweißbrenner, ein Greifinstrument, eine Lackiereinrichtung oder dergleichen.
  • Der Manipulator 114p, 114e kann zumindest eine Positionierungsvorrichtung 114p, beispielsweise einen Roboterarm 114p (allgemeiner auch als Gelenkarm bezeichnet), aufweisen, an welchem der Endeffektor 114e befestigt ist. Der Roboterarm 114p stellt anschaulich einen mechanischen Arm bereit, welcher ähnliche Funktionen wie ein menschlicher Arm bereitstellen kann.
  • Die Glieder der Positionierungsvorrichtung 114p können beispielsweise Verbindungsglieder 114v und Gelenkglieder 114g sein, wobei die Verbindungsglieder 114v mittels der Gelenkglieder 114g untereinander verbunden sind. Ein Gelenkglied 114g kann beispielsweise ein oder mehrere Gelenke aufweisen, von denen jedes Gelenk den damit verbundenen Verbindungsgliedern 114v relativ zueinander eine rotatorische Bewegung (d.h. Drehbewegung) und/oder eine translatorische Bewegung (d.h. Verschiebung) bereitstellen kann. Die Bewegung der Gelenkglieder 114g kann mittels Aktoren in Gang gesetzt werden, welche von der Steuervorrichtung 702 gesteuert werden.
  • In 101 kann eine Sensoranordnung 102 (zumindest einen Tracker aufweisend) auf ein Arbeitsgerät 104 montiert sein oder werden. Eine Person 106 führt eine Tätigkeit zur Erledigung der Prozessaufgabe mittels des Arbeitsgeräts 104, an dem die Sensoranordnung 102 befestigt ist, aus (z.B. Lackieren, Fertigen und/oder Montieren eines Bauteils). Das Arbeitsgerät 104 kann beispielsweise jedes handgeführte Arbeitsgerät 104 sein, dass ein menschlicher Arbeiter 106 bei seiner Tätigkeit verwenden, verlagern, halten, heben und/oder handhaben kann (z.B. ein Handschrauber, eine Lackierpistole, ein Akkuschrauber oder eine Klebepistole).
  • Während dessen übermittelt die Sensoranordnung 102 Daten an einen externen Empfänger, die über eine integrierte Sensorik der Sensoranordnung 102 erfasst werden. Die Daten können beispielsweise eine Lage und/oder eine Bewegung (z.B. Beschleunigung und/oder Geschwindigkeit) der Sensoranordnung 102 im Raum repräsentieren, sowie optional Daten von zumindest einem Betätigungssensor (z.B. einem Taster oder Schalter, allgemeiner auch als Trigger bezeichnet) aufweisen, welcher eine Betätigung am Arbeitsgerät 104 (z.B. wann und/oder mit welcher Stärke der Abzug betätigt wird) erfasst.
  • Der externe Empfänger erhält somit die zeitabhängige Lage der Sensoranordnung 102 im Raum 701, 703, 705. Darauf basierend kann die zeitabhängige Lage des Arbeitsgeräts 104 ermittelt werden. Optional können Daten einer zusätzlichen externen Sensorik 112 (auch als zusätzliche Sensoranordnung 112 bezeichnet) und/oder SPS-Daten von dem Empfänger erhalten werden. Die zusätzliche Sensoranordnung 112 kann im Allgemeinen ortsfest eingerichtet sein und beispielsweise einen Laserscanner, eine Kamera und/oder einen Abstandssensor aufweisen.
  • Im Ergebnis werden mittels der Sensoranordnungen 102, 112 zeitbasierte Daten, beispielsweise in hoher Frequenz, erfasst und aufgezeichnet, die den kompletten Prozessablauf beschreiben.
  • Diese Daten können optional tätigkeitsspezifische Prozessparameter aufweisen, wie später noch genauer beschrieben wird. Tätigkeitsspezifische Prozessparameter können die Parameter der jeweiligen Funktion und/oder des Arbeitspunktes des Arbeitsgeräts 104 (z.B. einen Volumenstrom der Lackierpistole) aufweisen.
  • Auf Grundlage der Daten und der optionalen tätigkeitsspezifischen Prozessparameter kann in 103 ein plattformunabhängiges Modell 104m (auch als Prozessmodell 104m bezeichnet) der Prozessaufgabe ermittelt werden. Dieses Prozessmodell 104m beschreibt anschaulich den menschlichen Gesamtprozess der Prozessaufgabe. Das Prozessmodell 104m kann optional von einer Person 106 untersucht und angepasst werden.
  • In einem Beispiel sind die eingehenden Daten zeitbasierte Bewegungsdaten des vom Menschen gehaltenen Arbeitsgeräts 104 sein, Daten des/der Trigger und Daten weiterer externer Sensoren, die über Zeitstempel synchronisiert in Beziehung gesetzt werden. Diese Daten werden vorverarbeitet. Dabei wird die Datenmenge reduziert ohne signifikante Einbußen in der Aussagekraft der Daten herbeizuführen. Anschließend wird die Zeitfolge der Daten über aufgabenspezifische analytische Algorithmen in Teilprozesse zerlegt (z.B. Einnehmen der Startposition, Beginn des Lackiervorgangs, Lackieren, Abschließen des Prozesses). Anschließend wird eine Instanz eines plattformunabhängigen Prozessmodells 104m, z.B. in Form eines Metamodells, erzeugt. Das Metamodell beschreibt dabei die Datentypen der Modellinstanz sowie deren mögliche Relationen. Ein Modell ist in diesem Fall beispielhaft ein gerichteter Graph mit typisierten Knoten. Knoten haben einen Datentyp (Knoten des Metamodells), der die Parameter des Modells und deren Wertebereiche beschreibt. Die Erzeugung der Modellinstanz auf Basis der Eingabedaten erfolgt mit Hilfe von beispielsweise künstlichen neuronalen Netzen. Die künstlichen neuronalen Netze (kNN) können mit herkömmlichen Trainingsverfahren, beispielsweise dem sogenannten Backpropagation-Verfahren, trainiert werden. Im Training werden die Trainingsvektoren gemäß den jeweils gewünschten Eingangsparametern (beispielsweise Raumkoordinaten eines Teilobjekts eines Arbeitsgeräts, zugehörige Zeitangabe, Arbeitspunkte/Steuerpunkte des Arbeitsgeräts, Prozessparameter des Arbeitsgeräts, räumliche Ausrichtung (Lageinformation) des Arbeitsgeräts, etc.). Es ist darauf hinzuweisen, dass sowohl die im Eingangsvektor den kNN enthaltenen Parameter als auch die im Ausgangsvektor des kNN enthaltenen Parameter stark anwendungsabhängig bzw. prozessabhängig sind und entsprechend ausgewählt werden.
  • Ferner kann eine konkrete Hardwareplattform 114 (allgemeiner auch als Maschine 114 bezeichnet) ausgewählt (z.B. ein konkreter Robotertyp oder Endeffektor, etc.) werden. Die Maschinenspezifik (z.B. Aufbau) der Maschine 114 kann mittels eines Modells 116m der Maschine 114 berücksichtigt werden.
  • Basierend auf dem Modell 114m der Maschine 114 und dem Prozessmodell 104m kann eine Software in 105 ein plattformspezifisches Modell 116m (auch als Steuerungsmodell 116m bezeichnet) für eine Robotersteuerung 702 generieren. Beispielsweise können dabei die maschinenspezifischen Prozessparameter (z.B. Volumenstrom am Lackierendeffektor und/oder Bewegungsabläufe) ermittelt werden, welche zu den tätigkeitsspezifischen Prozessparametern korrespondieren.
  • In einem Beispiel sind die eingehenden Daten eine Instanz des plattformunabhängigen Metamodells (allgemeiner plattformunabhängiges Modell 104m) sowie Zusatzinformationen über die verwendeten Automatisierungsgeräte (Roboter, Endeffektor etc.). Über eine Modell-zu-Modell-Transformation wird das plattformunabhängige Modell 104m in das plattformabhängige Modell 116m transformiert. Das plattformabhängige Modell 116m ist ebenfalls über ein Metamodell beschrieben. Analog zum plattformunabhängigen Modell 104m beschreibt das plattformabhängige Modell 116m die Datentypen und Relationen der plattformunabhängigen Modelle 104m. Die Modelltransformation beschreibt eine Abbildungsfunktion, wie Knoten oder Gruppen von Knoten aus dem plattformunabhängigen Modell 104m auf Knoten oder Knotengruppen des plattformabhängigen Modells 116m abgebildet werden. Darüber hinaus wird beschrieben wie diese erzeugten Knoten miteinander in Relation stehen. Die Abbildung erfolgt beispielsweise unter Berücksichtigung der jeweiligen Eigenheiten/Merkmale der jeweils eingesetzten Plattform, beispielsweise Maschine.
  • Ein Modell der Maschine kann beispielsweise enthalten und damit berücksichtigen:
    • - körperliche Informationen (d.h. die körperliche Architektur) der Maschine, z.B. Länge des Endeffektors und/oder Länge der Bestandteile der Positionierungsvorrichtung;
    • - Informationen zum Kennfeld oder der Kennlinie der Maschine, z.B. maximale Greifkraft des Endeffektors und/oder Freiheitsgrade bzw. Bewegungsspielraum der Positionierungsvorrichtung;
    • - die logische Architektur der Maschine, z.B. die Wechselwirkung und/oder logische Kopplung der einzelnen Bestandteile (z.B. Stellglieder) der Maschine untereinander;
    • - die konkrete oder potentiell verfügbare Werkzeugauswahl bzw. deren Werkzeugeigenschaften;
    • - Parameter der Steuerstrecke bzw. der Regelschleife, z.B. Steuergrößen bzw. Regelgrößen, Eingangsgröße der einzelnen Stellglieder oder Ausgabegrößen der einzelnen Sensoren;
    • - programmierungsspezifische Informationen, z.B.
  • Programmiersprache, Programmierschnittstelle, usw.
    • - das Koordinatensystem der Maschine, z.B. jeweils die ineinander gestapelten Teilkoordinatensysteme der einzelnen Stellglieder bzw. Gelenkglieder der Maschine, Ursprung der einzelnen Teilkoordinatensysteme, Endpositionen der Teilkoordinatensysteme;
    • - zulässige Betriebsparameter der Maschine, wie beispielsweise die maximale Betriebstemperatur.
  • Die Abbildung beschreibt anschaulich den Einfluss der Charakteristika einer jeweils konkret eingesetzten Plattform (beispielsweise Maschine) auf den abstrakten Prozessablauf gemäß dem Prozessmodell.
  • In 107 kann auf Grundlage des Steuerungsmodells 116m mittels eines Codegenerators 412 ein Programmcode 116 (z.B. Quellcode) generiert werden. Der Programmcode 116 kann den jeweiligen Code bezeichnen, in welchem das Steuerungsprogram 116 geschrieben ist. Je nach Prozessaufgabe, Informationstechnik-Infrastruktur und den konkreten Anforderungen können verschiedene Zielplattformen, auf denen der Programmcode 116 aufgeführt werden soll, bedient werden. Dabei kann der Programmcode 116 für ein kommunizierendes Gesamtsystem generiert (z.B. die Robotersteuerung und die SPS-Steuerung) werden. Der Programmcode 116 kann optional vordefinierte Teile aufweisen, an denen der Programmcode 116 von einem Entwickler angepasst werden kann.
  • In einem Beispiel erfolgt die Codegenerierung in Form von Templates, die für jede Zielsprache existieren. Diese Templates haben Instanzen des plattformabhängigen Modells als Eingabe und beschreiben auf Metamodellebene, wie daraus Textfragmente generiert werden. Darüber hinaus besitzen diese Templates neben einer reinen Textausgabe auch Kontrollstrukturen (z.B. Verzweigungen). Eine Template-Engine hat wiederum ein Template und eine Instanz des plattformunabhängigen Modells als Eingabe und erzeugt daraus eine oder mehrere Textdateien.
  • 2 veranschaulicht das Verfahren 100 gemäß verschiedenen Ausführungsformen in einem schematischen Ablaufdiagramm 200.
  • Das Verfahren 100 kann in 101 aufweisen: Anbringen 201 einer mobilen Sensoranordnung 102 an dem Arbeitsgerät 104 des manuellen Prozessablaufs, der von der Maschine 114 (z.B. einem Industrieroboter) übernommen werden soll. Der Prozessablauf ist beispielsweise bahn-basiert (wie z.B. für Kleben, Schweißen, Lackieren oder Fräsen).
  • Die Sensoranordnung 102 kann magnetisch, mit Klemmschrauben, mit Clip oder Klettband am Arbeitsgerät 104 befestigt sein oder werden und optional sequentiell an mehreren Arbeitsgeräten 104 des manuellen Prozessablaufs befestigt werden.
  • Die Sensoranordnung 102 kann einen oder mehr als einen Sensor, z.B. mehrere verschiedene Sensortypen, aufweisen, z.B. jeweils für die verschieden zu messenden Messgrößen (z.B. für Lage, Beschleunigung, usw.). Die Sensoranordnung 102 kann optional eine oder mehr als eine Mobileinheit aufweisen, von denen jede Mobileinheit zumindest einen Sensor der Sensoranordnung 102 aufweist, z.B. eine Mobileinheit mit einem Trajektorie-Sensor (auch als Tracker bezeichnet). Die oder jede Mobileinheit kann autark, z.B. zur eigenen Energieversorgung und/oder zur drahtlosen Kommunikation, eingerichtet sein. Beispielsweise können mehrere Sensoren gemeinsam in einem Gehäuse einer Mobileinheit untergebracht sein oder werden (auch als interne Sensoren bezeichnet).
  • Als Sensor (auch als Detektor bezeichnet), kann ein Wandler verstanden werden, der eingerichtet ist, eine zu dem Sensortyp korrespondierende Eigenschaft seiner Umgebung qualitativ oder als Messgröße quantitativ zu erfassen, z.B. eine physikalische oder chemische Eigenschaft und/oder eine stoffliche Beschaffenheit. Die Messgröße ist diejenige physikalische Größe, der die Messung mittels des Sensors gilt.
  • Ein Sensor kann je nach dem Kontext der gemessenen Messgröße beispielsweise eines bestimmten Sensortyps sein, beispielsweise ein Arbeitspunktsensor, ein Betätigungssensor oder ein Trajektorie-Sensor. Der Arbeitspunktsensor kann beispielsweise den Arbeitspunkt des Arbeitsgeräts 104 erfassen. Der Trajektorie-Sensor kann beispielsweise eine Bewegung und/oder die Lage (d.h. Ausrichtung und/oder Position) erfassen.
  • Beispielsweise kann die Sensoranordnung 102 zumindest einen optoelektronischen Sensor (z.B. eine Kamera), zumindest einen Trajektorie-Sensor und/oder zumindest einen Arbeitspunktsensor (z.B. Durchflusssensor) aufweisen. Der Trajektorie-Sensor kann beispielsweise einen Bewegungssensor (z.B. einen Beschleunigungssensor und/oder Geschwindigkeitssensor aufweisend) und/oder einen Lagesensor (z einen Ausrichtungssensor und/oder einen Positionssensor aufweisend) aufweisen.
  • Beispielsweise können die Sensoranordnung 102 und/oder die zusätzliche Sensoranordnung 112 zumindest einen Sensor aufweisen, der zum Erfassen einer elektrodynamischen Eigenschaft (z.B. Strom, Spannung, Magnetfeld oder Leistung) eingerichtet ist, zumindest einen Sensor aufweisen, der zum Erfassen einer lagebezogenen Eigenschaft (z.B. Ausrichtung und/oder Position) eingerichtet ist, zumindest einen Sensor aufweisen, der zum Erfassen einer bewegungsbezogenen Eigenschaft (z.B. Geschwindigkeit und/oder Beschleunigung) eingerichtet ist, zumindest einen Sensor aufweisen, der zum Erfassen einer thermischen Eigenschaft (z.B. Temperatur oder Temperaturdifferenz) eingerichtet ist, zumindest einen Sensor aufweisen, der zum Erfassen einer geometrischen Eigenschaft (z.B. Abstand, Raumwinkel, Volumen) eingerichtet ist, zumindest einen Sensor aufweisen, der zum Erfassen einer photometrischen Eigenschaft (z.B. Lichtstärke, Helligkeit, Farbe, Energie, oder Leistung) eingerichtet ist und/oder zumindest einen Sensor aufweisen, der zum Erfassen einer mechanischen Eigenschaft (z.B. Kraft, Druck, Masse, Energie, Leistung, Drehmoment, Betätigung, usw.) eingerichtet ist.
  • Zumindest ein (d.h. ein oder mehr als ein) Sensor der Sensoranordnung 102 kann optional separat von der Mobileinheit bereitgestellt sein oder werden. Der zumindest eine Sensor kann beispielsweise einen Betätigungssensor und/oder einen Arbeitspunktsensor aufweisen. Der zumindest eine Sensor kann an dem manuellen Arbeitsgerät 104, z.B. einer Versorgungsvorrichtung des manuellen Arbeitsgerät 104, angebracht werden (z.B. zur Messung eines Volumenstroms, einer Temperatur oder einer Stromstärke). Beispielsweise kann das manuelle Arbeitsgerät 104 ein Handgerät sein, welches von einer stationären Versorgungsvorrichtung versorgt wird, z.B. mit einem Fluid und/oder mit Energie.
  • Der Arbeitspunkt kann den Punkt im Kennfeld oder auf der Kennlinie eines technischen Gerätes beschreiben, der aufgrund der Systemeigenschaften und einwirkenden äußeren Einflüsse und Parameter des Gerätes eingenommen wird. Der Arbeitspunkt kann anschaulich beschreiben, welchen Betriebszustand das Gerät aufweist.
  • Das Verfahren 100 kann in 101 optional ferner aufweisen: Kalibrieren 203 der Sensoranordnung 102. Das Kalibrieren kann aufweisen, die Position der Sensoranordnung 102 in Bezug auf das Koordinatensystem des Arbeitsgeräts 104, die zusätzliche Sensoranordnung 112 und/oder ein globales Koordinatensystem zu kalibrieren. Das globale Koordinatensystem kann beispielsweise ortsfest sein, d.h. eine invariante Lage zur Erdoberfläche aufweisen.
  • Das Kalibrieren kann beispielsweise aufweisen: Erfassen der Lage der Sensoranordnung 102 bezüglich des Arbeitsgeräts 104. Das Kalibrieren kann alternativ oder zusätzlich aufweisen: Erfassen der Lage der Sensoranordnung 102 im Raum, z.B. in Bezug auf das globale Koordinatensystem. Mittels der beiden Lageinformationen, welche die Sensoranordnung 102 relativ im Raum und relativ zu dem Arbeitsgerät 104 beschreiben, kann auf Grundlage der Trajektorie der Sensoranordnung 102 die Trajektorie 111 des Arbeitsgeräts 104 ermittelt werden (vgl. 1) .
  • Das Verfahren 100 kann in 101 aufweisen: manuelle Durchführung 205 des Prozessablaufs. Die manuelle Durchführung 205 kann verstanden werden, als das das Arbeitsgerät 104 händisch (d.h. von einer Person) getragen und/oder betätigt wird. Beispielsweise kann das Arbeitsgerät 104 ein von Muskelkraft getragenes oder zumindest bewegtes Arbeitsgerät sein.
  • Während der Durchführung 205 des Prozessablaufs kann zumindest eine Sensoranordnung 102, 112 Daten an den externen Empfänger senden und/oder der externe Empfänger kann die Position und Bewegung der Sensoranordnung 102 im Raum erfassen, z.B. mittels der zusätzlichen Sensoranordnung 112. Dabei kann beispielsweise eine Signalübermittlung an den externen Empfänger per Funk erfolgen (z.B. Bluetooth). Alternativ oder zusätzlich kann die Sensoranordnung 102 zumindest einen Trigger aufweisen, welcher mit einer Benutzerschnittstelle des Arbeitsgeräts 104 gekoppelt ist. Der Trigger kann beispielsweise die händische Steuerung des Arbeitsgeräts 104 an der Benutzerschnittstelle erfassen.
  • Während der Durchführung 205 des Prozessablaufs kann alternativ oder zusätzlich eine Erfassung der Trajektorie 111 (z.B. Lage und/oder Bewegung) der Sensoranordnung 102 mittels zumindest einer Kamera 112 oder eines anderen Sensortyps 112 erfolgen, z.B. mittels eines Laserscanners 112, eines Abstandssensors 112, eines Sonarsensors 112 und/oder eines Radarsensors 112.
  • Das Verfahren 100 kann ferner optional in 103 aufweisen: Übertragung der (z.B. während 203 und/oder 205) in 191 erfassten Daten an eine Verarbeitungseinheit 302 (vgl. 3) und optionale Ergänzung der Daten mit hinterlegten tätigkeitsspezifischen Prozessparametern des Prozessablaufs zur Bildung des Prozessmodells 104m. Optional können ferner die Bewegungsdaten bzw. die Trajektorie 111 geglättet werden (z.B. so dass eine möglichst geradlinig entlang den Bewegungsachsen).
  • Optional können die hinterlegten Parameter des Prozessablaufs Randbedingungen aufweisen, wie beispielsweise Optimal- und/oder Grenzwerte repräsentieren. Alternativ oder zusätzlich können die hinterlegten Parameter den Prozessablauf weiter spezifizieren, wie beispielsweise die Arbeitsgeschwindigkeit, die Haltezeit, die Druckkraft, usw.
  • Das ermittelte Prozessmodell 104m kann plattformunabhängig eingerichtet sein, d.h. sich nicht auf einen konkreten Roboter 114 beziehen.
  • Das Verfahren 100 kann in 105 aufweisen: Überführen 209 des Prozessmodells 104m in das Steuerungsmodell 116m. Dazu kann eine Verarbeitung des Prozessmodells 104m mit hinterlegten maschinenspezifischen Informationen 114m eines oder mehrerer verschiedener Maschinen 114 erfolgen zur Bildung des Steuerungsmodells 116m (auch als prozess- und maschinenspezifisches Modell 116m bezeichnet) für die Maschine 114. Die Summe der maschinenspezifischen Informationen 114m können auch als Modell 114m der oder jeder Maschine 114 bezeichnet sein oder werden.
  • Die maschinenspezifischen Informationen 114m können maschinenspezifische Kenngrößen aufweisen, wie beispielsweise Positionier- und Wiederholgenauigkeiten, maximaler Bewegungsraum, Geschwindigkeiten, Beschleunigung, usw. Alternativ oder zusätzlich können die maschinenspezifischen Informationen 114m zumindest ein Werkzeug 114e der Maschine 114 (auch als Maschinenwerkzeug 114e bezeichnet) repräsentieren, die beispielsweise an der Positionierungsvorrichtung 114p der Maschine 114 befestigt sind.
  • Optional kann das Verfahren 100 in 103 aufweisen: Nachbearbeitung 207 des Prozessmodells 104m. Optional kann das Verfahren 100 in 105 aufweisen: Nachbearbeitung 211 des gebildeten Steuerungsmodells 116m. Die Nachbearbeitung 207 kann beispielsweise von einem Nutzer mit Hilfe einer Benutzeroberfläche 406 (auch als Benutzerschnittstelle bezeichnet) und/oder einer (Anwendungs-)Software (z.B. auf einem PC, Tablet oder Smartphone ausgeführt) erfolgen (vgl. 4A). Optional kann das Verfahren 100 kann in 207 oder 211 aufweisen: Visualisierung und Simulation des Steuerungsmodells 116m bzw. Prozessmodells 104m in einer virtuellen Umgebung, und/oder Editieren der Trajektorie 111, 113, der Prozesslogik, der Prozessparameter und die Integration und Ansteuerung der an der Maschine befestigten Werkzeuge durch den Nutzer. Die optionale Visualisierung eines räumlichen Teilmodels 502 des Prozessmodells 104m kann beispielsweise mit der Darstellung der entsprechenden Werkstücke erfolgen (vgl. 5).
  • Ferner kann das Verfahren 100 kann in 107 aufweisen: Codegenerierung für eine oder mehr als eine Maschine 114, optional unterschiedlichen Typs, optional mit der Berücksichtigung möglicher verschiedener SPS-Steuerungssysteme. Mittels der Codegenerierung 107 kann ein Steuerungsprogramm 116 gebildet werden, welches von der entsprechenden Maschine 114 ausführbar ist.
  • Die Codegenerierung 107 erfolgt beispielsweise in Form von Templates, die für jede Zielsprache existieren. Diese Templates haben Instanzen des plattformabhängigen Modells als Eingabe und beschreiben auf Metamodellebene, wie daraus Textfragmente generiert werden. Darüber hinaus besitzen diese Templates neben einer reinen Textausgabe auch Kontrollstrukturen (z.B. Verzweigungen). Eine Template-Engine hat wiederum ein Template und eine Instanz des plattformunabhängigen Modells als Eingabe und erzeugt daraus eine oder mehrere Textdateien.
  • Die Codegenerierung 107 kann beispielsweise für eine Robotersteuerung 702 und/oder eine SPS-Steuerung 702 erfolgen. Die Codegenerierung 107 kann beispielsweise menschenlesbare Codesegmente (d.h. Quellcode) und/oder maschinenlesbare Codesegmente (d.h. Maschinencode) erzeugen. Der Quellcode kann für verschiedene Zielsprachen generiert werden, z.B. je nachdem, welche Zielsprache sich für die entsprechende Maschine eignet. Optional kann der Quellcode, z.B. durch einen Entwickler, nachträglich angepasst und bearbeitet werden, beispielsweise mittels der Benutzeroberfläche 406.
  • 3 veranschaulicht das Verfahren 100 gemäß verschiedenen Ausführungsformen in einer schematischen Seitenansicht 300.
  • Die Sensoranordnung 102 kann beispielsweise ein softwaregestütztes Verfahren 100 zum Anlernen eines Industrieroboters ermöglichen, welches auch einem technischen Laien 106 zugänglich ist. So kann beispielsweise ein nicht-Programmierer 106 in die Lage versetzt werden, einen Industrieroboter 114 voll integriert anzulernen.
  • Mittels des Verfahrens 100 kann zumindest ein Aufgabenexperte 106 (z.B. ein Mechaniker oder ein Schweißer) eine oder mehr als eine Tätigkeit des Prozessablaufs beispielhaft demonstrieren. Darauf basierend kann die notwendige Steuerungssoftware des Roboters 114, inklusive sämtlicher benötigten Softwarekomponenten, vollständig automatisiert generiert werden. Das mittels des Verfahrens 100 bereitgestellte Steuerungsmodell 116m ist unabhängig von konkreten Maschinentypen und kann dadurch auch für einen beliebigen Maschinentyp, z.B. von einem anderen Hersteller, wiederverwendet werden. Somit kann ein Umrüsten der Maschine 114 erleichtert werden.
  • Das Verfahren 100 kann in 101 aufweisen: Erfassen der Daten mittels der Sensoranordnung 102 (anschaulich eine physische Sensorkomponente) und/oder einer zusätzlichen (anschaulich externen) Sensoranordnung 112. Die oder jede Mobileinheit kann an einem Arbeitsgerät 104 angebracht werden und mittels zumindest eines darin integrierten Sensors die Lage und/oder die Beschleunigung des Arbeitsgeräts 104 erfassen. Das Anbringen der oder jeder Mobileinheit der Sensoranordnung 102 an dem Arbeitsgerät 104 kann in 101 mittels einer Befestigungsvorrichtungen erfolgen (z.B. magnetisch, per Clip, oder Klettband).
  • Es können auch andere Messgrößen erfasst werden, welche die Trajektorie (z.B. Lage und/oder Bewegung) des Arbeitsgeräts 104 repräsentieren.
  • Ferner kann die Sensoranordnung 102 zumindest einen Trigger 102t (z.B. an einem Abzug einer Klebepistole) aufweisen, der eine händische Steuerung des Arbeitsgeräts 104 erfasst. Die zusätzliche Sensoranordnung 112 kann die Position der Sensoranordnung 102 im Raum 301 erfassen. Sowohl die Daten von der Sensoranordnung 102 (z.B. deren Mobileinheit) als auch die Daten von der externen Sensorik 112 können zeitlich synchronisiert an eine Recheneinheit 302 (z.B. PC, Laptop etc.) übertragen werden, welche den externen Empfänger aufweist oder damit kommunikativ verbunden ist.
  • Optional kann die Sensoranordnung 102 in ihrer relativen Lage (d.h. Position und/oder Ausrichtung) zum Arbeitsgerät 104 kalibriert 203 werden. Beispielsweise kann die Position und/oder Ausrichtung der Sensoranordnung 102 im Koordinatensystem des Arbeitsgeräts 104 ermittelt werden. Ferner kann eine Kalibrierung in einem globalen Koordinatensystem erfolgen, welches das Koordinatensystem der Sensoranordnung 102 mit dem Koordinatensystem der Maschine 114 verknüpft, so dass zwischen diesen transformiert werden kann.
  • 4A veranschaulicht das Verfahren 100 gemäß verschiedenen Ausführungsformen in einem schematischen Ablaufdiagramm 400a.
  • In 101 kann eine Person den Prozessablauf exemplarisch ein oder mehrmals mit dem tatsächlichen Arbeitsgeräts 104 durchführen 205. Beispielsweise kann der Prozessablauf ein Verschrauben einer Schraube mit einem elektrischen Schrauber 104 aufweisen. Dabei können die Sensoranordnung 102 und/oder die zusätzliche Sensoranordnung 112 zumindest eine Messgröße erfassen, welche eine räumliche Lage (und/oder deren Veränderung) des Arbeitsgeräts 104 repräsentiert. Allgemeiner gesprochen kann die Trajektorie 111 des Arbeitsgeräts 104 erfasst werden. Die Trajektorie 111 des Arbeitsgeräts 104 kann beispielsweise Angaben über eine Geschwindigkeit, eine Position, eine Beschleunigung und/oder eine Ausrichtung des Arbeitsgeräts 104 aufweisen.
  • Auf analoge Weise kann eine von dem Arbeitsgerät 104 bereitgestellte Funktion (und/oder deren Veränderung) parametrisiert erfasst werden, z.B. eine Drehzahl einer Welle des Arbeitsgeräts, eine Temperatur einer Heizvorrichtung des Arbeitsgeräts, ein Strom durch eine Schweißspitze des Arbeitsgeräts, usw. Alternativ oder zusätzlich kann mittels des Triggers 102t parametrisiert erfasst werden, sobald, solange und/oder mit welcher Stärke das Arbeitsgerät 104 betätigt wird. Der Trigger 102t kann allgemeiner gesprochen eingerichtet sein, eine händische Steuerung des Arbeitsgeräts 104 zu erfassen, z.B. an einer Benutzerschnittstelle des Arbeitsgeräts 104.
  • Die in 101 gesammelten Daten 402 können an eine Recheneinheit 302 (oder eine andere Verarbeitungseinheit) gesendet und dort mit tätigkeitsspezifischen Prozessparametern 404 (z.B. Volumenstrom einer Lackierpistole 104) angereichert 403 werden. Das Anreichern mit tätigkeitsspezifischen Prozessparametern 404 kann beispielsweise automatisch oder manuell (z.B. per Benutzereingabe) erfolgen.
  • In einem Beispiel kann hat der Nutzer dazu in der grafischen Oberfläche der Recheneinheit die Möglichkeit aus einer Reihe von Werkzeugen auswählen (z.B. Lackierpistolen). Je nach Aufgabe werden dann die prozessspezifischen Parameter (z.B. Volumenstrom) über ein Eingabeformular abgefragt.
  • Die Recheneinheit 302 kann anhand der erfassten Daten 402 das Prozessmodell 104m (auch als prozessspezifisches Modell bezeichnet) erstellen 103, welches die Prozessaufgabe ohne Bezug auf eine konkrete Automatisierung beschreibt. Optional kann die Verarbeitungseinheit 302 eingerichtet sein, die Daten 402 zu verändern, z.B. zu optimieren und/oder zu abstrahieren. Beispielsweise kann das Verändern aufweisen, die Trajektorie 111 (z.B. die Bewegungsdaten) auszudünnen und/oder zu glätten, Teilprozesse zu identifizieren und/oder zu optimieren sowie Logikzusammenhänge zu schließen.
  • Das Prozessmodell 104m kann optional mittels einer Benutzeroberfläche 406 (z.B. auf einem PC, Tablet oder Smartphone bereitgestellt) nachbearbeiten werden. Beispielsweise können Bestandteile (z.B. Abschnitte oder einzelne Punkte) der Trajektorie 111 des Arbeitsgeräts 104 (auch als Arbeitsgerätpfad 111 bezeichnet) angepasst und/oder feinjustiert werden. Alternativ oder zusätzlich kann ein Betätigen mit dem zumindest einen Trigger 102t nachverfolgt, geändert und/oder mit der Trajektorie 111 verknüpft werden.
  • Das Prozessmodell 104m kann weiter mit maschinenspezifischen Informationen 114m (z.B. der konkreten Roboterplattform 114 oder zumindest des Endeffektors 114e), z.B. maschinenspezifischen Prozessparametern 114m (z.B. einem Volumenstrom am Lackierendeffektor), angereichert 405 werden. Die Verarbeitungseinheit 302 kann aus dem Prozessmodell 104m und den bereitgestellten maschinenspezifischen Informationen 114m automatisch das Steuerungsmodell 116m ermitteln. Das Steuerungsmodell 116m repräsentiert ein Automatisierungsscript für eine spezifische Hardwareplattform 112 und -konstellation.
  • In einem Beispiel sind die eingehenden Daten eine Instanz des plattformunabhängigen Metamodells (allgemeiner plattformunabhängiges Modell 104m) sowie Zusatzinformationen über die verwendeten Automatisierungsgeräte (Roboter, Endeffektor etc.). Über eine Modell-zu-Modell-Transformation wird das plattformunabhängige Modell 104m in das plattformabhängige Modell 116m transformiert. Das plattformabhängige Modell 116m ist ebenfalls über ein Metamodell beschrieben. Analog zum plattformunabhängigen Modell 104m beschreibt das plattformabhängige Modell 116m die Datentypen und Relationen der plattformunabhängigen Modelle 104m. Die Modelltransformation beschreibt eine Abbildungsfunktion, wie Knoten oder Gruppen von Knoten aus dem plattformunabhängigen Modell 104m auf Knoten oder Knotengruppen des plattformabhängigen Modells 116m abgebildet werden. Darüber hinaus wird beschrieben wie diese erzeugten Knoten miteinander in Relation stehen. Die Abbildung erfolgt beispielsweise unter Berücksichtigung der jeweiligen Eigenheiten/Merkmale der jeweils eingesetzten Plattform, beispielsweise Maschine.
  • Ein Modell der Maschine kann beispielsweise enthalten und damit berücksichtigen:
    • - körperliche Informationen (d.h. die körperliche Architektur) der Maschine, z.B. Länge des Endeffektors und/oder Länge der Bestandteile der Positionierungsvorrichtung;
    • - Informationen zum Kennfeld oder der Kennlinie der Maschine, z.B. maximale Greifkraft des Endeffektors und/oder Freiheitsgrade bzw. Bewegungsspielraum der Positionierungsvorrichtung;
    • - die logische Architektur der Maschine, z.B. die Wechselwirkung und/oder logische Kopplung der einzelnen Bestandteile (z.B. Stellglieder) der Maschine untereinander;
    • - die konkrete oder potentiell verfügbare Werkzeugauswahl bzw. deren Werkzeugeigenschaften;
    • - Parameter der Steuerstrecke bzw. der Regelschleife, z.B. Steuergrößen bzw. Regelgrößen, Eingangsgröße der einzelnen Stellglieder oder Ausgabegrößen der einzelnen Sensoren;
    • - programmierungsspezifische Informationen, z.B.
  • Programmiersprache, Programmierschnittstelle, usw.
    • - das Koordinatensystem der Maschine, z.B. jeweils die ineinander gestapelten Teilkoordinatensysteme der einzelnen Stellglieder bzw. Gelenkglieder der Maschine, Ursprung der einzelnen Teilkoordinatensysteme, Endpositionen der Teilkoordinatensysteme;
    • - zulässige Betriebsparameter der Maschine, wie beispielsweise die maximale Betriebstemperatur.
  • Die Abbildung beschreibt anschaulich den Einfluss der Charakteristika einer jeweils konkret eingesetzten Plattform (beispielsweise Maschine) auf den abstrakten Prozessablauf gemäß dem Prozessmodell.
  • Das maschinenspezifische Steuerungsmodell 116m kann optional mittels einer Benutzeroberfläche 406 (z.B. auf einem PC, Tablet, oder Smartphone bereitgestellt) nachbearbeitet 211 werden. Beispielsweise kann die Trajektorie 113 der Maschine 114 (z.B. des Endeffektors 114e) angepasst und/oder verändert werden. Alternativ oder zusätzlich können Übergänge zwischen verschiedenen Ankerpunkten, Fahrgeschwindigkeiten, Haltezeiten oder Ähnlichem verändert, z.B. spezifiziert werden. Optional kann eine Fehlerkompensation und/oder ein Kommunikationsweg mit der Anlagensteuerung definiert werden.
  • Ferner kann aus dem Steuerungsmodell 116m ein Programmcode 116 erzeugt 107 werden, der auf der Steuervorrichtung 702 (auch als Controller 702 bezeichnet) der Maschine 114 ausgeführt werden kann und beispielsweise den angelernten Prozessablauf vollständig umsetzt.
  • In einem Beispiel erfolgt die Codegenerierung in Form von Templates, die für jede Zielsprache existieren. Diese Templates haben Instanzen des plattformabhängigen Modells als Eingabe und beschreiben auf Metamodellebene, wie daraus Textfragmente generiert werden. Darüber hinaus besitzen diese Templates neben einer reinen Textausgabe auch Kontrollstrukturen (z.B. Verzweigungen). Eine Template-Engine hat wiederum ein Template und eine Instanz des plattformunabhängigen Modells als Eingabe und erzeugt daraus eine oder mehrere Textdateien.
  • Optional kann zur Ansteuerung des Endeffektors 114e ein externes System verwendet werden, z.B. ein PC, eine SPS oder Ähnliches. In diesem Fall kann alternativ oder zusätzlich zu dem Programmcode 116 für eine interne Steuervorrichtung 116a der Maschine (auch als Robotercode bezeichnet) ein Programmcode 116 für das externe System 116b und/oder für die Kommunikationsschnittstelle 116b zu diesem erzeugt werden.
  • Allgemeiner gesprochen kann die Maschine 114 eine interne 116a und/oder externe 116b Steuervorrichtung 702 aufweisen, welche eingerichtet ist, den Endeffektor 114e und/oder die Positionierungsvorrichtung 114p der Maschine 114 anzusteuern. Der Programmcode 116 kann von der Steuervorrichtung 116a, 116b ausgeführt werden.
  • Der Programmcode 116 kann den jeweiligen Code bezeichnen, in welchem das Steuerungsprogram 116 geschrieben ist. Je nach Prozessaufgabe, Informationstechnik-Infrastruktur und den konkreten Anforderungen können verschiedene Zielplattformen, auf denen der Programmcode 116 aufgeführt werden soll, bedient werden. Dabei kann der Programmcode 116 für ein kommunizierendes Gesamtsystem generiert (z.B. die Robotersteuerung und die SPS-Steuerung) werden. Der Programmcode 116 kann optional vordefinierte Teile aufweisen, an denen der Programmcode 116 von einem Entwickler angepasst werden kann.
  • Optional kann der Programmcode 116 nachträglich verändert, z.B. angepasst werden, beispielsweise mittels einer Benutzeroberfläche 406 und/oder von einer Person 106.
  • 4B veranschaulicht ein System 400b zum Durchführen des Verfahrens 100 gemäß verschiedenen Ausführungsformen in einem schematischen Systemdiagram.
  • Das System 400b kann zumindest eine Sensoranordnung 452 aufweisen, z.B. die an dem Arbeitsgerät 104 anbringbare Sensoranordnung 102 oder die ortsfeste Sensoranordnung 112. Das System 400b kann ferner zumindest eine Recheneinheit 302 aufweisen, welche einen oder mehr als einen Prozessor aufweist, der eingerichtet ist, das Verfahren 100 durchzuführen. Das System 400b kann optional einen Codegenerator 412 aufweisen, welcher eingerichtet ist, das maschinenspezifische Steuerungsmodell 116m in das Steuerungsprogramm 116 zu überführen 209. Das System 400b kann optional eine Maschine 114 aufweisen, welche eine mit dem Steuerungsprogramm 116 programmierte Steuervorrichtung 702 und eine Programmierschnittstelle 702i aufweist, mittels welcher der Steuervorrichtung 702 das Steuerungsprogramm 116 bereitgestellt werden kann.
  • 5 veranschaulicht das Verfahren 100 gemäß verschiedenen Ausführungsformen in einem schematischen Modelldiagramm 500.
  • Das Prozessmodell 104m (prozessspezifische Modell) beschreibt anschaulich eine Prozessaufgabe ohne Bezug auf eine zu Grunde liegende Automatisierungslösung. Das Prozessmodell 104m kann mehrere Teilmodelle 502, 504, 506 (z.B. pro Teilprozess) aufweisen.
  • Ein erstes Teilmodell 502 (auch als räumliches Modell 502 bezeichnet) kann körperliche, geometrische, lagebezogene und/oder bewegungsbezogene Eigenschaften beschreiben, z.B. Objekte, deren Form oder Position im kartesischen Raum 701, 703, 705, und/oder zumindest eine Trajektorie 111 im kartesischen Raum 701, 703, 705. Ferner kann das räumliche Modell 502 kartesisch annotierte Prozesstätigkeiten (z.B. Greifen eines Objektes) und/oder die tätigkeitsbezogenen Prozessparameter beschreiben. Der kartesische Raum kann von Richtungen 701, 703, 705 aufgespannt sein oder werden, die beispielsweise ortsfest sind.
  • Optional kann das erste Teilmodell 502 zueinander alternative Trajektorien 111 oder Abschnitte dieser beschreiben, die mittels eines dritten Models 506 (auch als Logikmodell 506 bezeichnet) Logikmodell referenziert werden. Das räumliche Modell 502 beschreibt anschaulich, wie die Prozessaufgabe im physischen Raum 701, 703, 705 erledigt wird und welche aufgabenspezifischen Prozesstätigkeiten (z.B. Aktivieren der Sprühfunktion einer Lackierpistole) damit verknüpft sind. Die Prozesstätigkeiten können von zumindest einem tätigkeitsbezogenen Prozessparameter, z.B. von zumindest einem lagebezogenen und/oder bewegungsbezogenen Prozessparameter (z.B. eine Geschwindigkeit) und/oder zumindest einem funktionellen Prozessparameter (z.B. einen Volumenstrom einer Lackierpistole), repräsentiert werden.
  • Das räumliche Modell 502 beschreibt beispielsweise die Position und Rotation des Werkzeuges im 3-dimensionalen Raum über die Zeit.
  • Ein zweites Teilmodell 504 (auch als maschinenunspezifisches Adaptionsmodell bezeichnet) kann beschreiben, welche unterschiedlichen Prozesssituationen 514 eintreten können (z.B. Lackieren von Bauteil A oder Bauteil B) und/oder wie diese Prozesssituationen 514 unterschieden werden können (z.B. anhand einer Form des Bauteils A und/oder Form des Bauteils B), z.B. anhand von Kriterien. Beispielsweise definiert das zweite Teilmodell 504 ein Kriterium zum Erkennen einer Prozesssituation 514 (z.B. mittels einer Kamera zum Erkennen der Form des Bauteils). Optional beschreibt das zweite Teilmodell 504 Referenzdaten für die Kriterien, die beispielsweise während des Anlernens 101 aufgezeichnet wurden (z.B. Beispielbilder der Bauteile).
  • In einem Beispiel werden hierzu Umgebungsvariablen definiert (z.B. Form des Bauteils, Temperatur, etc.). Auf Basis der Umgebungsvariablen werden Situationen für bestimmte Wertebelegungen dieser Umgebungsvariablen definiert (z.B. Autotür in kalter Umgebung). Diese Situationen können dann in einem Logikmodell 506 referenziert werden, um eine Anpassung des Automatisierungsprozesses (z.B. Fahren einer alternativen Trajektorie) oder der Prozessparameter (z.B. Geschwindigkeit) durchzuführen.
  • Ein drittes Teilmodell 506 (auch als maschinenunspezifisches Logikmodell bezeichnet) beschreibt die zu Grunde liegende Prozesslogik 516. Die Prozesslogik 516 kann zumindest eine Kontrollstruktur 516s (z.B. Schleife, Verzweigung, Sprung, Aufruf, usw.) aufweisen, z.B. einer Programmiersprache, und kann diese mit dem räumlichen Modell 502 und dem Adaptationsmodell 504 verknüpfen. Auf diese Weise kann ein komplexer Ablaufplan repräsentiert werden, z.B. „wenn Bauteil A erkannt wurde, dann wird zum Pfad 111 gesprungen mit den dort annotierten Prozessparametern“.
  • Das Steuerungsmodell 116m kann ein vollintegriertes Automatisierungsscript für eine spezifische Hardwareauswahl (Positionierungsvorrichtung 114p, Steuervorrichtung 702 und/oder Endeffektor 114e) repräsentieren. Das Steuerungsmodell 116m kann mehrere Teilmodelle 552, 554, 556, 558 aufweisen.
  • Ein zusätzliches erstes Teilmodell 552 (auch als physisches Modell 552 bezeichnet) beschreibt anschaulich analog zum körperlichen Modell 502 die räumliche Information allerdings bezogen auf die Maschine 114. Beispielsweise können prozessspezifische Informationen auf das Koordinatensystem 705, 713 der Maschine 114 übertragen sein. Dabei kann die Anbringung und Ausrichtung des Endeffektors 114e der Maschine 114 berücksichtigt werden, um das Koordinatensystem 701, 703, 705 beim Erfassen des Arbeitsgerätes 104 während des Anlernprozesses 101 auf das Koordinatensystem 705, 713 der Maschine 705, 713, z.B. deren Werkzeug 114e, abzubilden 105a. Optional kann der zumindest eine tätigkeitsbezogene Prozessparameter des ersten Teilmodells 502 auf das konkrete Werkzeug des Endeffektors 114e (d.h. maschinenspezifisch) abgebildet 105a werden.
  • Ein zusätzliches zweites Teilmodell 554 (auch als maschinenspezifisches Adaptionsmodell 554 bezeichnet) kann eine Vielzahl von Parametern und Situationen beschreiben. Die Parameter können dabei einen Namen und einen Datentyp aufweisen. Beispielsweise kann mittels einer oder mehr als eines Kriteriums definiert werden, wie eine Prozesssituation anhand konkreter Parameterwerte (z.B. mittels eines Sensors der Maschine 114) erkannt werden kann. Beispielsweise kann die Abhängigkeit zur Ermittlung der Parameterwerte (auch als Messwerte bezeichnet) anhand von verfügbaren Sensoren 114s der Maschine 114 spezifiziert werden. Das maschinenspezifische Adaptionsmodell 554 kann mittels Abbildens 105b aus dem maschinenunspezifischen Adaptionsmodell 504 abgeleitet und optional vom Nutzer weiter verfeinert 211 werden.
  • Ein zusätzliches drittes Teilmodell 556 (auch als maschinenspezifisches Logikmodell bezeichnet) kann eine Programmiersprache-unabhängige Repräsentation einer prozeduralen Programmiersprache mit den Kontrollstrukturen 516s (z.B. Schleifen, Bedingungen, etc.) aufweisen. Anschaulich kann das maschinenspezifische Logikmodell 556 die anderen Teilmodelle, z.B. das physische Modell 552, ein Interaktionsmodell 558 und das maschinenspezifische Adaptionsmodell 556, miteinander verknüpfen. Das maschinenspezifische Logikmodell 556 kann mittels Abbildens 105c aus dem maschinenunspezifischen Logikmodell 506 ermittelt werden.
  • Ein viertes Teilmodell 558 (auch als Interaktionsmodell bezeichnet) kann die Integration des Automatisierungsscripts mit möglichen Fremdsystemen 518 beschreiben. Das Fremdsystem 518 kann zumindest einen Sensor (z.B. zumindest eine Kamera), eine Steuervorrichtung oder ein Geschäftsressourcenplanung-System (ERP System) aufweisen.
  • Dazu kann zumindest ein integrationsspezifisches Protokoll definiert sein, welches die Maschine 114 kommunikativ 520 in die Systemlandschaft einbettet. Das Interaktionsmodell 558 kann beispielsweise auf Basis des maschinenunspezifischen Logikmodells 504 ermittelt werden und kann optional vom Nutzer weiter verfeinert 211 werden.
  • Das physische Modell 552 kann anschaulich Bewegungsvorgänge und Bewegungssequenzen in Kombination mit einer Tätigkeit des Endeffektors 114e definieren. Das Interaktionsmodell beschreibt, wie die Maschine 114 in der Systemlandschaft kommuniziert (z.B. Daten an das Fremdsystem 518 übermittelt und/oder von diesem empfängt). Das maschinenspezifische Adaptionsmodell 556 beschreibt, unter welchen Bedingungen welches Vorgehen erforderlich ist.
  • 6 veranschaulicht das Verfahren 100 gemäß verschiedenen Ausführungsformen in einem schematischen Ablaufdiagramm 600.
  • Mittels des Codegenerators 412 können die mehreren Teilmodelle des Steuerungsmodels 116m (prozess- und maschinenspezifischen Modells) in Codesegmente überführt werden. Mit anderen Worten kann ein Steuerungsprogramm 116 gebildet werden, welches von der Maschine 114 ausführbar ist.
  • Das Steuerungsprogramm 116 kann Quellcodedateien aufweisen, welche im jeweiligen Zielformat der Maschine 114 eingerichtet sind. Jede Maschine 114 (z.B. Roboterplattform) kann den Code des Steuerungsprogramm 116 in zumindest einer Programmiersprache (z.B. KRL, Rapid, Visual Basic, usw.) ausführen. Die Überführung der mehreren Teilmodelle des Steuerungsmodels 116m in Text (d.h. auf die Codesegmente) kann unter Verwendung von Templates erfolgen. Die Templates können mit prozess- und maschinenspezifischen Modellen 114m, 104m instanziiert werden und den jeweiligen Programmcode generieren.
  • 7 veranschaulicht eine Maschine 114 gemäß verschiedenen Ausführungsformen in einem schematischen Aufbaudiagram 700.
  • Die Maschine 114 kann hierin eine mittels eines Steuerungsprograms 116 programmierbare Maschine sein. Einmal programmiert, kann die Maschine 114 eingerichtet sein, einen Prozessablauf autonom durchzuführen, und optional den Prozessablauf (d.h. die Ausführung der Aufgabe) abhängig von Sensorinformationen in Grenzen zu variieren.
  • Die Maschine 114 kann eine Steuervorrichtung 702 aufweisen, welche eingerichtet ist, zumindest ein Stellglied 704 (auch als Aktor bezeichnet) der Maschine 114 anzusteuern gemäß dem Steuerungsprogram 116. Die Steuervorrichtung 702 kann beispielsweise einen oder mehr als einen Prozessor und/oder ein Speichermedium aufweisen. Der Manipulator 114p, 114e der Maschine 114 kann eine kinematische Kette 706 aufweisen, entlang welcher eine Wirkung des zumindest einen Stellglieds 704 übertragen wird, z.B. entlang der Kopplung der Glieder der kinematischen Kette 706 untereinander. Die Steuervorrichtung 702 kann beispielsweise ein speicherprogrammierbares System (SPS) aufweisen.
  • Die kinematische Kette 706 kann ein Positionierungsvorrichtung 114p und einen mittels der Positionierungsvorrichtung 114p positionierbaren Endeffektor 114e aufweisen. Als Endeffektor 114e kann das letzte Glied der kinematischen Kette 706 der Maschine 114 verstanden werden, welches eingerichtet ist, unmittelbar auf ein Werkstück einzuwirken, z.B. dieses zu bearbeiten (d.h. dieses zu prozessieren). Tätigkeiten, wie das Einwirken auf das Werkstück, ein Vorbereitungsschritt dazu oder ein Nachbereitungsschritt dazu, die zu dem Prozessablauf korrespondieren, können allgemeiner als Prozesstätigkeit bezeichnet sein. Die Prozesstätigkeit kann beispielsweise ein Urformen, Fügen (z.B. Schweißen, Beschichten, Verschrauben, Einstecken, Kontaktieren, Kleben oder anderweitig Montieren bzw. Zusammensetzen), Trennen (z.B. Schleifen, Fräsen, Sägen oder anderweitig Zerspanen, Stanzen oder Zerlegen), Umformen, Erwärmen, Verlagern (z.B. Greifen, Bestücken, Drehen oder Verschieben), oder Ähnliches aufweisen. Der Prozessablauf kann bahn-basiert sein, d.h. mittels Bewegens des Endeffektors 114e entlang einer Trajektorie 113 abgebildet werden.
  • Die Positionierungsvorrichtung 114p kann zumindest ein Stellglied 704 aufweisen, welches eingerichtet ist, den Endeffektor 114e zu verlagern zu einer Position (auch als Positionieren bezeichnet). Der Endeffektor 114e kann zumindest ein Stellglied 704 aufweisen, welches eingerichtet ist, die Prozesstätigkeit auszuführen, z.B. mittels eines Werkzeugs des Endeffektor 114e. Das Werkzeug kann allgemein eine der Prozesstätigkeit gemäße Funktion bereitstellen, mittels welcher auf das Werkstück eingewirkt wird. Das Werkzeug kann beispielsweise ein Urformen-Werkzeug, ein Fügen-Werkzeug (z.B. Schrauber, Klebepistole oder Schweißgerät), ein Verlagerung-Werkzeug (z.B. Greifer), ein Trennen-Werkzeug oder Ähnliches aufweisen. Das Fügen-Werkzeug kann beispielsweise ein Beschichten-Werkzeug (z.B. eine Lackierpistole, einen Pulverbeschichtung-Pistole) aufweisen oder daraus gebildet sein.
  • Optional kann die Maschine 114 zumindest einen internen Sensor 114i aufweisen, welcher eingerichtet ist, einen Arbeitspunkt der kinematischen Kette 706 zu erfassen, z.B. um eine Regelung zu implementieren. Alternativ oder zusätzlich kann die Maschine 114 zumindest einen externen Sensor 114s (z.B. eine Kamera) aufweisen, welcher eingerichtet ist, eine Eigenschaft der Umgebung der Maschine 114 zu erfassen. Mittels des externen Sensors 114s kann beispielsweise erkannt werden, ob eine vordefinierte Prozesssituation vorliegt (d.h. ein situationsbezogenes Kriterium erfüllt ist).
  • Anhand der mittels des zumindest einen Sensors 114s, 114i erfassten Eigenschaft kann beispielsweise ermitteln werden, ob ein Kriterium erfüllt ist. Ist das Kriterium gemäß dem Sensortyp parametrisiert (d.h. auf eine von dem Sensortyp erfassbare Eigenschaft abgebildet), kann die von dem Sensor erfasste Eigenschaft mit dem parametrisierten Kriterium verglichen werden, um zu ermitteln, ob das Kriterium erfüllt ist.
  • Wird der Prozessablauf von der programmierbaren Maschine 114 nachempfunden, kann die Maschine 114 als Ganze in einen Arbeitspunkt gebracht werden, welcher der Prozesstätigkeit gemäß der räumlichen Information möglichst nahe kommt. Der Arbeitspunkt kann beispielsweise definieren, auf welche Position der Endeffektor 114e gebracht und welche Wirkung dieser dort bereitstellen soll. Der Arbeitspunkt kann beispielsweise die Summe an Zuständen der einzelnen Stellglieder 704 der Maschine 114 beschreiben.
  • Das Speichermedium kann Teil der Steuervorrichtung 702 und/oder separat davon bereitgestellt sein oder werden. Das Speichermedium kann beispielsweise ein elektronisches Halbleiter-Speichermedium aufweisen, z.B. ein Festwertspeicher (ROM) oder ein Direktzugriffsspeicher (RAM), eine Speicherkarte, ein Flash-Speicher, ein Stick für einen universellen seriellen Bus (USB-Stick), ein Festkörperlaufwerk (SSD), und/oder ein Festplattenlaufwerk (HDD), eine Speicherplatte (MD), ein holographisches Speichermedium, ein optisches Speichermedium, eine Compact-Disc, eine Digital-versatile-Disc (DCV), oder eine magnetooptische Platte aufweisen.
  • Vorstehend wurde das Steuerungsmodell unter Bezugnahme auf eine Maschine beschrieben. In Analogie kann das Beschriebene für eine Vielzahl von separaten, z.B. untereinander kommunizierenden, Maschinen (z.B. eine Verfahrensstraße) gelten, wie auch für eine Maschine, die mehrere Positionierungsvorrichtungen und/oder Endeffektoren aufweist.
  • Im Folgenden werden verschiedene Beispiele beschrieben, die sich auf vorangehend Beschriebene und in den Figuren Dargestellte beziehen.
  • Beispiel 1 ist ein Verfahren, aufweisend: Ermitteln eines maschinenunabhängigen Prozessmodells auf Grundlage von Daten, wobei die Daten eine Handhabung eines Arbeitsgeräts beim Durchführen eines Prozessablaufs repräsentieren, wobei der Prozessablauf eine Vielzahl von Teilprozessen aufweist, wobei das Prozessmodell für jeden Teilprozess der Vielzahl von Teilprozessen eine Prozesstätigkeit mit einer räumlichen Information des Teilprozesses verknüpft; Abbilden des maschinenunabhängigen Prozessmodells auf ein maschinenspezifisches Steuerungsmodell einer Maschine unter Verwendung eines Modells der Maschine, wobei das maschinenspezifische Steuerungsmodell für jeden Teilprozess der Vielzahl von Teilprozessen einen Arbeitspunkt der Maschine definiert, der zu der Prozesstätigkeit und der räumlichen Information des Teilprozesses korrespondiert.
  • Beispiel 2 ist das Verfahren gemäß Beispiel 1, wobei das Abbilden aufweist, die räumliche Information auf einen Arbeitspunkt einer Positionierungsvorrichtung der Maschine abzubilden; und/oder wobei das Abbilden aufweist, die Prozesstätigkeit auf einen Arbeitspunkt eines (z.B. beweglich gelagertes) Endeffektors (z.B. dessen Werkzeug) der Maschine abzubilden; wobei der Endeffektor beispielsweise mittels der Positionierungsvorrichtung beweglich gelagert ist, wobei die Positionierungsvorrichtung beispielsweise einen Roboterarm aufweist, wobei der Endeffektor beispielsweise zum Durchführen der Prozesstätigkeit eingerichtet ist.
  • Beispiel 3 ist das Verfahren gemäß Beispiel 1 oder 2, wobei die Maschine zumindest einen Aktor aufweist, auf welchen der Arbeitspunkt bezogen ist, wobei beispielsweise der Aktor ein Motor ist, wobei beispielsweise der Aktor Teil der Positionierungsvorrichtung und/oder des Endeffektors ist.
  • Beispiel 4 ist das Verfahren gemäß einem der Beispiele 1 bis 3, wobei die räumliche Information genau drei Ortskoordinaten (z.B. gemäß einem kartesischen Koordinatensystem) und/oder genau drei Richtungskoordinaten aufweist) und/oder wobei die räumliche Information auf ein geradliniges Koordinatensystem bezogen ist.
  • Beispiel 5 ist das Verfahren gemäß einem der Beispiele 1 bis 4, wobei ein oder mehr als ein Teilprozess der Vielzahl von Teilprozessen gemäß einem Kriterium bedingt ist (auch als bedingter Teilprozess bezeichnet), wobei das Modell der Maschine einen Sensortyp der Maschine repräsentiert, wobei das Abbilden aufweist, das Kriterium gemäß dem Sensortyp zu parametrisieren (z.B. auf einen Sensor-Erfassungsraum abzubilden), wobei beispielsweise das Ermitteln des Prozessmodells aufweist, (z.B. auf Grundlage der Daten) das Kriterium und/oder den bedingten Teilprozess zu ermitteln.
  • Beispiel 6 ist das Verfahren gemäß einem der Beispiele 1 bis 5, wobei das Abbilden aufweist, die räumliche Information auf ein Koordinatensystem der Maschine (welches z.B. auf den zumindest einen Aktor der Maschine bezogen ist) abzubilden.
  • Beispiel 7 ist das Verfahren gemäß einem der Beispiele 1 bis 6, wobei das Ermitteln des Prozessmodells aufweist, eine oder mehr als eine Prozesslogik (z.B. eine Regel) zu ermitteln (z.B. auf Grundlage der Daten), gemäß welcher das maschinenunabhängige Prozessmodell durchlaufen wird, wobei optional die Prozesslogik eingerichtet ist, zu ermitteln, ob das Kriterium erfüllt ist, wobei beispielsweise das parametrisierte Kriterium mittels des Sensors erfassbar ist, wobei beispielsweise das Abbilden aufweist, die Prozesslogik auf eine Steuerungslogik abzubilden.
  • Beispiel 8 ist das Verfahren gemäß einem der Beispiele 1 bis 7, wobei das maschinenunabhängige Prozessmodell (z.B. deren Prozesslogik) für zumindest einen Teilprozess der Vielzahl von Teilprozessen zumindest zwei Verknüpfungen von Prozesstätigkeit und räumlicher Information des Teilprozesses, wobei die zwei Verknüpfungen Alternativen sind, zwischen denen anhand eines Kriterium entschieden wird (z.B. mittels der Prozesslogik).
  • Beispiel 9 ist das Verfahren gemäß einem der Beispiele 1 bis 8, wobei die räumliche Information eine Position und/oder Ausrichtung des Arbeitsgeräts repräsentiert; und/oder wobei die Prozesstätigkeit ein Betätigen und/oder einen Arbeitspunkt des Arbeitsgeräts repräsentiert.
  • Beispiel 10 ist ein Verfahren gemäß einem der Beispiele 1 bis 9, ferner aufweisend: Präsentieren des maschinenunabhängigen Prozessmodells und/oder des maschinenspezifischen Steuerungsmodells mittels einer Benutzerschnittstelle, welche eingerichtet ist, auf Grundlage einer Benutzereingabe das maschinenunabhängige Prozessmodell bzw. das maschinenspezifische Steuerungsmodell zu verändern.
  • Beispiel 11 ist ein Verfahren gemäß einem der Beispiele 1 bis 10, ferner aufweisend: Erfassen der Daten zumindest zum Teil mittels einer Sensoranordnung, welche an dem Arbeitsgerät befestigt ist, wobei optional das Arbeitsgerät (z.B. unmittelbar und/oder muskelbetrieben) von einer Person (z.B. deren Hand) gehandhabt und/oder getragen wird, wobei beispielsweise die Sensoranordnung abnehmbar (d.h. reversibel) an dem Arbeitsgerät befestigt ist.
  • Beispiel 12 ist ein Verfahren, aufweisend: Erfassen von Daten, z.B. der Daten gemäß einem der Beispiele 1 bis 11, zumindest zum Teil mittels einer Sensoranordnung, welche abnehmbar an einem (z.B. von Hand beweglichen) Arbeitsgerät befestigt ist, wobei die Daten eine Handhabung des Arbeitsgeräts repräsentieren während mittels des Arbeitsgeräts ein Prozessablauf durchgeführt wird, wobei das Arbeitsgerät von einer Person bewegt wird; Ermitteln eines maschinenunabhängigen Prozessmodells auf Grundlage der Daten, welches den Prozessablauf repräsentiert, ferner beispielsweise aufweisend: Abbilden des maschinenunabhängigen Prozessmodells auf ein maschinenspezifisches Steuerungsmodell unter Verwendung eines Modells einer Maschine.
  • Beispiel 13 ist das Verfahren gemäß Beispiel 11 oder 12, wobei die Sensoranordnung eine Befestigungsvorrichtung aufweist, mittels welcher die Sensoranordnung abnehmbar an dem Arbeitsgerät befestigt ist.
  • Beispiel 14 ist das Verfahren gemäß einem der Beispiele 11 bis 13, wobei die Sensoranordnung (z.B. deren Befestigungsvorrichtung) einen oder mehr als einen Magneten aufweist; und/oder eine Klemmvorrichtung (z.B. einen Clip und/oder Klemmschrauben aufweisend) aufweist; und/oder ein Klettband aufweist.
  • Beispiel 15 ist das Verfahren gemäß einem der Beispiele 11 bis 14, wobei die Sensoranordnung separat von dem Arbeitsgerät mit Energie versorgt wird; und/oder wobei die Sensoranordnung galvanisch von dem Arbeitsgerät getrennt ist.
  • Beispiel 16 ist das Verfahren gemäß einem der Beispiele 11 bis 15, wobei die Sensoranordnung einen oder mehr als einen Trajektorie-Sensor (z.B. Lagesensor und/oder Bewegungssensor) aufweist, mittels welchem die Daten erfasst werden.
  • Beispiel 17 ist das Verfahren gemäß einem der Beispiele 11 bis 16, wobei die Sensoranordnung einen Arbeitspunktsensor aufweist, mittels welchem ein Arbeitspunkt des Arbeitsgeräts erfasst wird, wobei beispielsweise der Arbeitspunktsensor einen Durchflusssensor, einen Temperatursensor und/oder einen Stromsensor (z.B. Leistungssensor) aufweist.
  • Beispiel 18 ist das Verfahren gemäß einem der Beispiele 11 bis 17, ferner aufweisend: drahtloses Übermitteln der Daten von der Sensoranordnung an eine Basisstation, wobei die Basisstation beispielsweise eine Recheneinheit aufweist, wobei mittels der Recheneinheit das Ermitteln des maschinenunabhängigen Prozessmodells erfolgt.
  • Beispiel 19 ist das Verfahren gemäß einem der Beispiele 1 bis 18, wobei die Daten, welche z.B. mittels der Sensoranordnung erfasst werden, eine Trajektorie (z.B. eine lagebezogene und/oder bewegungsbezogene Eigenschaft) des Arbeitsgeräts repräsentieren, und/oder eine Eigenschaft gemäß dem Arbeitspunt des Arbeitsgeräts (beispielsweise Volumenstrom, Temperatur oder Stromstärke) repräsentieren.
  • Beispiel 20 ist das Verfahren gemäß Beispiel 19, wobei das Ermitteln des maschinenunabhängigen Prozessmodells aufweist, eine Trajektorie des Prozessablaufs, z.B. entlang welcher des Arbeitsgeräts geführt wird und/oder die Teilprozesse erfolgen, zu ermitteln, diese zu glätten und/oder einen oder mehr als einen Punkt der Trajektorie zu verwerfen.
  • Beispiel 21 ist das Verfahren gemäß einem der Beispiele 1 bis 20, wobei das Ermitteln des maschinenunabhängigen Prozessmodells ferner aufweist, zumindest eine Randbedingung für die Prozesstätigkeit und/oder die räumliche Information zu berücksichtigen, wobei beispielsweise das Ermitteln des maschinenunabhängigen Prozessmodells ferner aufweist, ein Modell zumindest eines Teilprozesses der Vielzahl von Teilprozessen zu berücksichtigen, welches die Randbedingung definiert, wobei die Randbedingung beispielsweise parametrisiert ist (d.h. in Parametern definiert ist), wobei die Randbedingung beispielsweise für den gesamten Prozessablauf definiert ist.
  • Beispiel 22 ist das Verfahren gemäß Beispiel 21, wobei die zumindest eine Randbedingung auf eine zeitliche Information und/oder eine mechanische Information bezogen ist, wobei beispielsweise die zumindest eine Randbedingung eine Arbeitsgeschwindigkeit, eine Haltezeit, eine Kraft, und/oder einen Druck aufweist.
  • Beispiel 23 ist das Verfahren gemäß einem der Beispiele 1 bis 22, wobei die Daten zeitaufgelöst erfasst werden.
  • Beispiel 24 ist das Verfahren gemäß einem der Beispiele 1 bis 23, wobei das Model der Maschine einen Sensortyp der Maschine, einen Endeffektor der Maschine, eine Positionierungsvorrichtung der Maschine und/oder eine körperliche Architektur des Endeffektors und/oder der Positionierungsvorrichtung berücksichtigt, und/oder wobei das Modell der Maschine eine funktionelle Eigenschaft des Endeffektors berücksichtigt.
  • Beispiel 25 ist das Verfahren gemäß einem der Beispiele 1 bis 24, wobei das maschinenunabhängige Prozessmodell ferner ein Ergebnis des Prozessablaufes repräsentiert.
  • Beispiel 26 ist das Verfahren gemäß einem der Beispiele 1 bis 25, ferner aufweisend: Abbilden des maschinenspezifischen Steuerungsmodells auf ein Steuerungsprogram, welches von der Maschine ausführbar ist, z.B. dessen Codesegmente gemäß einer Programmierschnittstelle der Maschine eingerichtet sind.
  • Beispiel 27 ist das Verfahren gemäß Beispiel 26, wobei das Abbilden des maschinenspezifischen Steuerungsmodells auf das Steuerungsprogramm aufweist, ein oder mehr als ein Template zu verwenden.
  • Beispiel 28 ist das Verfahren gemäß Beispiel 27, wobei das Template mittels des Modells der Maschine, des Prozessmodells und/oder eines Modells zumindest eines Teilprozesses instanziiert wird.
  • Beispiel 29 ist das Verfahren gemäß einem der Beispiele 1 bis 28, ferner aufweisend: Erfassen der Daten zumindest zum Teil mittels einer zusätzlichen Sensoranordnung, welche ortsfest angeordnet ist, wobei beispielsweise das Erfassen der zusätzlichen Sensoranordnung und der Sensoranordnung und/oder die entsprechenden Teile der Daten synchronisiert werden.
  • Beispiel 30 ist das Verfahren gemäß Beispiel 29, wobei die zusätzliche Sensoranordnung einen optoelektronischen Sensor, einen Abstandssensor, einen Sonarsensor und/oder einen Radarsensor aufweist; und/oder wobei die Daten, welche mittels der zusätzlichen Sensoranordnung erfasst werden, eine Trajektorie (z.B. eine lagebezogene und/oder bewegungsbezogene Eigenschaft) des Arbeitsgeräts repräsentieren.
  • Beispiel 31 ist ein System, aufweisend: einen oder mehr als einen Prozessor, der eingerichtet ist, das Verfahren gemäß einem der Beispiele 1 bis 30 durchzuführen, optional ferner aufweisend eine drahtlos-Kommunikationsvorrichtung zum drahtlosen Kommunizieren mit der Sensoranordnung und/oder der zusätzlichen Sensoranordnung.
  • Beispiel 32 ist das System gemäß Beispiel 31, ferner aufweisend: einen oder mehr als einen nichtflüchtigen Speicher, in welchem das maschinenunabhängige Prozessmodell, das maschinenspezifische Steuerungsmodell und/oder das Modell der Maschine abgespeichert sind oder werden; und/oder eine oder mehr als eine Sensoranordnung zum Erfassen der Daten.
  • Beispiel 33 ist ein nichtflüchtiger Speicher, aufweisend Codesegmente, die eingerichtet sind, wenn von einem Prozessor ausgeführt, das Verfahren gemäß einem der Beispiele 1 bis 30.
  • Beispiel 34 ist ein maschinenunabhängiges Prozessmodell, z.B. Prozessmodell aus dem Verfahren gemäß einem der Beispiele 1 bis 30, wobei das Prozessmodell für jeden Teilprozess einer Vielzahl von Teilprozessen eine Prozesstätigkeit mit einer räumlichen Information des Teilprozesses verknüpft, wobei die mehreren mehrere Teilprozesse Teil eines Prozessablaufs sind, welcher mittels eines Arbeitsgeräts durchgeführt wird, wobei beispielsweise die räumliche Information genau drei Ortskoordinaten (z.B. gemäß einem kartesischen Koordinatensystem) und/oder genau drei Richtungskoordinaten aufweist) und/oder wobei die räumliche Information auf ein geradliniges Koordinatensystem bezogen ist.

Claims (15)

  1. Verfahren (100), aufweisend: · Ermitteln (103) eines maschinenunabhängigen Prozessmodells (104m) auf Grundlage von Daten, wobei die Daten eine Handhabung eines Arbeitsgeräts (104) beim Durchführen (101) eines Prozessablaufs repräsentieren, wobei der Prozessablauf eine Vielzahl von Teilprozessen aufweist, wobei das Prozessmodell (104m) für jeden Teilprozess der Vielzahl von Teilprozessen eine Prozesstätigkeit mit einer räumlichen Information des Teilprozesses verknüpft; · Abbilden (105) des maschinenunabhängigen Prozessmodells (104m) auf ein maschinenspezifisches Steuerungsmodell (116m) einer Maschine (114) unter Verwendung eines Modells (114m) der Maschine (114), wobei das maschinenspezifische Steuerungsmodell (116m) für jeden Teilprozess der Vielzahl von Teilprozessen einen Arbeitspunkt der Maschine (114) definiert, der zu der Prozesstätigkeit und der räumlichen Information des Teilprozesses korrespondiert.
  2. Verfahren (100) gemäß Anspruch 1, wobei das Abbilden (105) aufweist, die räumliche Information auf einen Arbeitspunkt einer Positionierungsvorrichtung (114p) der Maschine (114) abzubilden.
  3. Verfahren (100) gemäß Anspruch 2, wobei das Abbilden (105) aufweist, die Prozesstätigkeit auf einen Arbeitspunkt eines Endeffektors (114e) der Maschine (114) abzubilden, welcher mittels der Positionierungsvorrichtung (114p) beweglich gelagert ist.
  4. Verfahren (100) gemäß einem der Ansprüche 1 bis 3, · wobei zumindest ein Teilprozess der Vielzahl von Teilprozessen gemäß einem Kriterium bedingt ist, · wobei das Abbilden (105) aufweist, das Kriterium gemäß einem Sensortyp der Maschine (114) zu parametrisieren.
  5. Verfahren (100) gemäß einem der Ansprüche 1 bis 4, wobei die räumliche Information eine Position und/oder Ausrichtung des Arbeitsgeräts (104) repräsentiert.
  6. Verfahren (100) gemäß einem der Ansprüche 1 bis 5, wobei die Prozesstätigkeit ein Betätigen und/oder einen Arbeitspunkt des Arbeitsgeräts (104) repräsentiert.
  7. Verfahren (100) gemäß einem der Ansprüche 1 bis 6, ferner aufweisend: Präsentieren des maschinenunabhängigen Prozessmodells (104m) und/oder des maschinenspezifischen Steuerungsmodells (116m) mittels einer Benutzerschnittstelle, welche eingerichtet ist, auf Grundlage einer Benutzereingabe das maschinenunabhängige Prozessmodell (104m) bzw. das maschinenspezifische Steuerungsmodell (116m) zu verändern.
  8. Verfahren (100) gemäß einem der Ansprüche 1 bis 7, ferner aufweisend: Erfassen der Daten zumindest zum Teil mittels einer Sensoranordnung (102), welche an dem Arbeitsgerät (104) befestigt ist.
  9. Verfahren (100) gemäß Anspruch 8, ferner aufweisend: wobei die Daten, welche mittels der Sensoranordnung (102) erfasst werden · eine Trajektorie des Arbeitsgeräts (104) repräsentieren; und/oder · eine Eigenschaft gemäß einem Arbeitspunt des Arbeitsgeräts (104) repräsentieren.
  10. Verfahren (100) gemäß einem der Ansprüche 1 bis 9, ferner aufweisend: Erfassen der Daten zumindest zum Teil mittels einer zusätzlichen Sensoranordnung (112), welche ortsfest angeordnet ist.
  11. Verfahren (100) gemäß einem der Ansprüche 1 bis 10, ferner aufweisend: Abbilden des maschinenspezifischen Steuerungsmodells (116m) auf ein Steuerungsprogram, welches von der Maschine (114) ausführbar ist.
  12. Verfahren (100) gemäß Anspruch 11, ferner aufweisend: wobei das Abbilden des maschinenspezifischen Steuerungsmodells (116m) auf das Steuerungsprogramm aufweist, ein oder mehr als ein Template zu verwenden
  13. Verfahren (100) gemäß Anspruch 12, ferner aufweisend: wobei das Template mittels des Modells (114m) der Maschine (114) instanziiert wird.
  14. System, aufweisend: einen oder mehr als einen Prozessor, der eingerichtet ist, das Verfahren (100) gemäß einem der Ansprüche 1 bis 13 durchzuführen.
  15. Nichtflüchtiges Speichermedium, aufweisend Codesegmente, die eingerichtet sind, wenn von einem Prozessor ausgeführt, das Verfahren (100) gemäß einem der Ansprüche 1 bis 13 durchzuführen.
DE102019105820.1A 2019-03-07 2019-03-07 Verfahren, System sowie nichtflüchtiges Speichermedium Pending DE102019105820A1 (de)

Priority Applications (7)

Application Number Priority Date Filing Date Title
DE102019105820.1A DE102019105820A1 (de) 2019-03-07 2019-03-07 Verfahren, System sowie nichtflüchtiges Speichermedium
PCT/EP2020/056052 WO2020178435A1 (de) 2019-03-07 2020-03-06 Verfahren, system sowie nichtflüchtiges speichermedium
CN202080025472.6A CN113710430A (zh) 2019-03-07 2020-03-06 方法、***和非易失性存储介质
KR1020217032067A KR20220002279A (ko) 2019-03-07 2020-03-06 방법, 시스템 및 비휘발성 저장 매체
US17/436,631 US20220143830A1 (en) 2019-03-07 2020-03-06 Method, system and nonvolatile storage medium
JP2021553321A JP2022524385A (ja) 2019-03-07 2020-03-06 プロセス、システム、及び不揮発性記憶媒体
EP20710474.6A EP3934858A1 (de) 2019-03-07 2020-03-06 Verfahren, system sowie nichtflüchtiges speichermedium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019105820.1A DE102019105820A1 (de) 2019-03-07 2019-03-07 Verfahren, System sowie nichtflüchtiges Speichermedium

Publications (1)

Publication Number Publication Date
DE102019105820A1 true DE102019105820A1 (de) 2020-09-10

Family

ID=69784434

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019105820.1A Pending DE102019105820A1 (de) 2019-03-07 2019-03-07 Verfahren, System sowie nichtflüchtiges Speichermedium

Country Status (7)

Country Link
US (1) US20220143830A1 (de)
EP (1) EP3934858A1 (de)
JP (1) JP2022524385A (de)
KR (1) KR20220002279A (de)
CN (1) CN113710430A (de)
DE (1) DE102019105820A1 (de)
WO (1) WO2020178435A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11654566B2 (en) * 2020-08-12 2023-05-23 General Electric Company Robotic activity decomposition

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1842631A1 (de) * 2006-04-03 2007-10-10 ABB Research Ltd Vorrichtung und Verfahren zur Bahnerzeugung für einen Industrieroboter
US9186795B1 (en) * 2013-06-24 2015-11-17 Redwood Robotics, Inc. Programming and execution of force-based tasks with torque-controlled robot arms
US20180029226A1 (en) * 2016-07-26 2018-02-01 University Of Connecticut Skill transfer from a person to a robot

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2776477B2 (ja) * 1996-02-13 1998-07-16 川崎重工業株式会社 ロボット3次元位置姿勢教示システム
SE531104C2 (sv) * 2002-12-30 2008-12-16 Abb Research Ltd Metod och system för programmering av en industrirobot
US7865285B2 (en) * 2006-12-27 2011-01-04 Caterpillar Inc Machine control system and method
US20090132088A1 (en) * 2007-04-24 2009-05-21 Tairob Ltd. Transfer of knowledge from a human skilled worker to an expert machine - the learning process
US9731419B2 (en) * 2010-08-03 2017-08-15 Praxair S.T. Technology, Inc. System and method for programming robots
US8578346B2 (en) * 2010-09-10 2013-11-05 International Business Machines Corporation System and method to validate and repair process flow drawings
AT12208U3 (de) * 2011-09-06 2013-07-15 Keba Ag Verfahren, steuerungssystem und bewegungsvorgabemittel zum programmieren oder vorgeben von bewegungen oder abläufen eines industrieroboters
JP5549749B1 (ja) * 2013-01-16 2014-07-16 株式会社安川電機 ロボット教示システム、ロボット教示プログラムの生成方法および教示ツール
JP2015111338A (ja) * 2013-12-06 2015-06-18 株式会社ツガミ 加工プログラム生成装置、加工システム、及び、加工プログラム生成用のプログラム
WO2015149360A1 (en) * 2014-04-04 2015-10-08 Abb Technology Ltd Portable apparatus for controlling robot and method thereof
US20150024345A1 (en) * 2014-10-09 2015-01-22 Reza Eftekhar Ashtiani A milling blank and a method for fabricating dental bridgework using milling blank
TWI805545B (zh) * 2016-04-12 2023-06-21 丹麥商環球機器人公司 用於藉由示範來程式化機器人之方法和電腦程式產品
JP6469069B2 (ja) * 2016-12-13 2019-02-13 ファナック株式会社 学習を容易化する機能を備えたロボット制御装置、及びロボット制御方法
JP6392905B2 (ja) * 2017-01-10 2018-09-19 ファナック株式会社 教示装置への衝撃を学習する機械学習装置、教示装置の衝撃抑制システムおよび機械学習方法
US11273553B2 (en) * 2017-06-05 2022-03-15 Autodesk, Inc. Adapting simulation data to real-world conditions encountered by physical processes
JP6514278B2 (ja) * 2017-07-04 2019-05-15 ファナック株式会社 レーザ加工ロボットシステム
CN107738256A (zh) * 2017-10-17 2018-02-27 佛山市南方数据科学研究院 一种手把手仿人示教机器人编程***
CN108161904B (zh) * 2018-01-09 2019-12-03 青岛理工大学 基于增强现实的机器人在线示教装置、***、方法、设备
US11281936B2 (en) * 2018-12-31 2022-03-22 Kofax, Inc. Systems and methods for identifying processes for robotic automation and building models therefor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1842631A1 (de) * 2006-04-03 2007-10-10 ABB Research Ltd Vorrichtung und Verfahren zur Bahnerzeugung für einen Industrieroboter
US9186795B1 (en) * 2013-06-24 2015-11-17 Redwood Robotics, Inc. Programming and execution of force-based tasks with torque-controlled robot arms
US20180029226A1 (en) * 2016-07-26 2018-02-01 University Of Connecticut Skill transfer from a person to a robot

Also Published As

Publication number Publication date
CN113710430A (zh) 2021-11-26
WO2020178435A1 (de) 2020-09-10
US20220143830A1 (en) 2022-05-12
EP3934858A1 (de) 2022-01-12
JP2022524385A (ja) 2022-05-02
KR20220002279A (ko) 2022-01-06

Similar Documents

Publication Publication Date Title
EP2539116B1 (de) Prozessmodulbibliothek und programmierumgebung zur programmierung eines manipulatorprozesses
EP3013537B1 (de) Verfahren und system zur programmierung eines roboters
DE102013113370B4 (de) Roboteraufgabensteuerungskomponente mit erweiterbarer programmierumgebung
DE102010045529B4 (de) Interaktives Robotersteuerungssystem und Verwendungsverfahren
EP2285537B1 (de) Vorrichtung und verfahren zur rechnergestützten generierung einer manipulatorbahn
DE102014103738B3 (de) Visuelle fehlersuche bei roboteraufgaben
DE102012218297B4 (de) Verfahren zur dynamischen Optimierung einer Robotersteuerschnittstelle
DE102011079117B4 (de) Verfahren zum Programmieren eines Roboters
DE102010045528B4 (de) Gerüst und Verfahren zum Steuern eines Robotersystems unter Verwendung eines verteilten Rechnernetzwerks
Nagata et al. Development of CAM system based on industrial robotic servo controller without using robot language
DE102019216229A1 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102017120221B4 (de) Steuereinheit
DE102021201918A1 (de) Vorrichtung und Verfahren zum Steuern ein oder mehrerer Roboter
DE102019134794B4 (de) Handgerät zum Trainieren mindestens einer Bewegung und mindestens einer Tätigkeit einer Maschine, System und Verfahren.
EP4078311A1 (de) Handgerät zum trainieren mindestens einer bewegung und mindestens einer tätigkeit einer maschine, system und verfahren
WO2020178435A1 (de) Verfahren, system sowie nichtflüchtiges speichermedium
DE102020200165B4 (de) Robotersteuereinrichtung und Verfahren zum Steuern eines Roboters
Froschauer et al. Workflow-based programming of human-robot interaction for collaborative assembly stations
DE202019005591U1 (de) System aufweisend ein Handgerät zum Trainieren mindestens einer Bewegung und mindestens einer Tätigkeit einer Maschine
DE112022000487T5 (de) Befehlserzeugungsvorrichtung und Computerprogramm
DE102016204137A1 (de) Programmierbares Manipulatorsystem mit einer Funktionsschaltervorrichtung

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

R163 Identified publications notified