WO2021160634A1 - Erzeugen und optimieren eines steuerprogramms für einen robotermanipulator - Google Patents

Erzeugen und optimieren eines steuerprogramms für einen robotermanipulator Download PDF

Info

Publication number
WO2021160634A1
WO2021160634A1 PCT/EP2021/053128 EP2021053128W WO2021160634A1 WO 2021160634 A1 WO2021160634 A1 WO 2021160634A1 EP 2021053128 W EP2021053128 W EP 2021053128W WO 2021160634 A1 WO2021160634 A1 WO 2021160634A1
Authority
WO
WIPO (PCT)
Prior art keywords
values
control program
parameters
program
execution
Prior art date
Application number
PCT/EP2021/053128
Other languages
English (en)
French (fr)
Inventor
Jose Ramon Medina Hernandez
Andreas SPENNINGER
Original Assignee
Franka Emika 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 Franka Emika Gmbh filed Critical Franka Emika Gmbh
Publication of WO2021160634A1 publication Critical patent/WO2021160634A1/de

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32137Configure, connect, combine different program modules
    • 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/33Director till display
    • G05B2219/33111Graphic configuration control, connect pictures, objects to each other
    • 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/36174Program divided into modules
    • 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/36253Generate machining program from previous test run
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Definitions

  • the invention relates to a method for generating and optimizing a control program for a robot manipulator
  • Control program for a robot manipulator and a control unit for generating and optimizing a control program for the robot manipulator.
  • the object of the invention is to improve the generation of a control program and the optimization of the control program for a robot manipulator.
  • a first aspect of the invention relates to a method for generating and optimizing a control program for a robot manipulator, comprising the steps:
  • the structurally prescribed program sections determine a structural sequence of the control program for the robot manipulator, but without including values for parameters.
  • the parameters are therefore in the structurally predetermined
  • control program sections not yet included, as these have to be adapted for the respective individual task.
  • the basic structure of the control program is, however, determined by the structurally predetermined program sections defined in terms of a sequence of logical program sections.
  • specific program sections are therefore selected from a large number of structurally predetermined program sections. This is preferably done by selecting a user who thus defines the basic sequence of the control program.
  • the specified program sections are designed in particular in a modular manner and optionally have interfaces so that they can be connected in series. This corresponds to the assembly of the selected program sections, so that an overall executable sequence of the control program is created through the entirety of all selected program sections.
  • Examples of the specified program sections are closing a gripper, moving an end effector from a specified starting point to a specified target point, returning the robot manipulator to its starting position, moving to specified locations in the vicinity of the robot manipulator, repeating one or more previous program sections , the application of a predetermined force or a predetermined moment to the surroundings of the robot manipulator, switching to another control mode, for example from force control to impedance control or position control or vice versa, or the like.
  • the individual steps can initially be defined as structurally specified program sections, but this is not yet specified the speed at which the transport is to take place, with what force the gripping is to take place, etc .. This is determined by the values of the parameters for such selected and combined program sections, the parameters then representing the accelerations, speeds, forces, etc.
  • An initial set of values is specified for the parameters of the selected and combined program sections. If the structure of the control program is defined by the composite, structurally predetermined program sections, and then corresponding parameters with values are also specifically defined for this set of program sections an executable control program. This control program is automatically executed repeatedly by the control unit, at least some of the parameters of the control program thus generated being varied in each of the repeated executions.
  • parameters that should not be varied can be the transport speed of the gripped object, while the gripping force to hold the object is varied in order to find the minimum force necessary to hold the object without unnecessarily squeezing it.
  • the quality includes in particular whether the task associated with the control program has been completed at all, and if the task has been completed, which values of process data relevant for a qualitative classification were used to carry out the control program. The user prefers to specify whether the task has been completed successfully.
  • the process data relate in particular to a degree of damage or a degree of wear and tear that occurs when the control program is executed on the robot manipulator and / or on the object from the environment of the robot manipulator. Another factor for the quality of the execution of the control program relates to the time required for the execution, since it is fundamentally desirable to accomplish the task to be solved by a control program in the shortest possible time.
  • control unit in particular a control unit of the robot manipulator itself, is able to empirically optimize a structurally predetermined control program with initial values of parameters of the control program, so that this task of the optimizing control program is available to the user is at least partially removed.
  • a control program is therefore advantageously generated and optimized very quickly and reliably, with a tendency towards rapid convergence to globally optimal values of the parameters of the control program.
  • the structurally prescribed program sections for the control program are selected by a user pulling and releasing graphical elements, the graphical elements being displayed on a screen and each of the graphical elements being assigned to one of the structurally prescribed program sections, this being done automatically repeated execution of the control program in response to an input by the user, in particular by activating a graphic repetition element displayed on the screen.
  • the screen is preferably a touch-sensitive screen, since here the graphic elements can advantageously be pulled and released particularly intuitively.
  • the sequence of the graphical elements on the screen results in particular directly in the sequence of the structurally specified program sections, which are selected by dragging from a list with a large number of possible selectable program sections.
  • the graphic elements are preferably also executed in the order in which they are arranged by the user on the screen.
  • Each of the graphic elements represents one of the structurally predetermined program sections for which a basic program sequence is stored in the control unit.
  • the graphic elements have a corresponding colored, pictorial or also written identification so that it is particularly easy for the user to find the structurally prescribed program sections and to assign a corresponding meaning to them.
  • the graphic repetition element is in particular a function button or a picture element (also called an "icon") arranged on the screen.
  • the method also has the step:
  • each of the graphic elements is assigned to one of the structurally specified program sections and a predefined rearward execution of the respective program section, with the control unit determining a reversal of the control program from the combination of the selected graphic elements and by means of the rearward executions assigned to the graphic elements
  • the inversion of the control program is structurally determined in such a way that after the execution of the control program and subsequent execution of the inversion of the control program, the robot manipulator is in its initial state as before the execution of the control program.
  • the control program is automatically executed repeatedly, a repeated start from a starting point is necessary. Taking this necessity into account, a reverse execution of the respective program section is advantageously defined first.
  • control unit determines a complete reversal of the control program from the totality of the respective backward executions of the respective program sections.
  • the complete reversal of the control program therefore does not necessarily only correspond to the stringing together of the rear executions of the respective program sections, rather the control unit additionally considers in particular the interfaces between the rear executions of the respective program sections, and therefore in particular the compatibility between the rear executions with one another. This advantageously ensures that each repetition of the execution of the control program takes place through completely returned states of the robot manipulator, so that advantageously the individual executions of the control program do not interact with one another and falsify the result when checking the quality of the respective execution of the control program.
  • the ascertained quality of the respective result of the respective execution of the control program together with the control program and / or together with process data acquired during the execution of the control program is transmitted to a central processing unit, the central processing unit at least one of the following functions or values are checked:
  • the central processing unit is in particular a server arranged at the lowering plate of the robot manipulator, so that the central processing unit checks the control programs executed by these for anomalies, in particular for a large number of control units of a large number of robot manipulators.
  • the central processing unit advantageously also supplies the initial set of values of the parameters for the program sections, so that this initial set of values of the parameters can be adapted to anomalies ascertained in the past. This advantageously increases the efficiency when optimizing the values of the parameters of the control program, in that improved starting values can be used as a better starting point for finding a global optimum for the values of the control program.
  • the selected varied values of the parameters are current values after the repeated executions of the control program have been aborted, the repeated executions of the control program being aborted if the currently determined quality of the result of the current execution corresponds to the specified quality criterion.
  • the determined quality of the result is continuously evaluated in relation to the specified quality criterion. If, after a large number of changes in the values of the parameters of the control program, the current result when the control program is executed corresponds to the specified quality criterion for the first time, then it becomes advantageous According to this embodiment, the repeated execution of the control program is aborted and the currently used values of the parameters of the control program are accepted and stored.
  • the specification of the initial set of values of parameters for the selected and combined program sections takes place by recording a specification or an input by a user on the control unit.
  • the initial values of parameters are specified by entering numerical values on a corresponding input element of the control unit.
  • the input of the user directly on the control unit is preferably carried out by manually guiding the robot manipulator, in which case in particular parameter values such as a speed, an acceleration or a pose of the robot manipulator can be specified.
  • the initial set of values of the parameters advantageously corresponds directly to the user's ideas without having to resort to standard values that are further away.
  • the specification of the initial set of values of parameters for the selected and combined program sections takes place by detecting a specification of the central processing unit on the control unit.
  • the central processing unit is preferably connected to a central control unit of an experimental robot manipulator.
  • This central experimental robot advantageously carries out a large number of tasks for which corresponding program sections are used.
  • initial values of the parameters are preferably already designed empirically by the experimental robot manipulator by the central processing unit, so that there is a high probability that good starting values for the parameters of the individual program sections are used on the robot manipulator used.
  • the central processing unit transmits the values determined by the experimental robot for the individual program sections and transmits them to the control unit of the respective robot manipulator used, where they are used as an initial set of values for the parameters of the selected and combined program sections.
  • the method also has the step:
  • Process data are, in particular, values determined by sensors themselves or on the basis of sensor signals, which can be recorded during the current and later execution of the control program. This applies in particular to speeds, accelerations, joint angular moments, or other data about the robot manipulator itself during the execution of the task by executing the control program, and in particular forces and / or moments that act between a part of the robot manipulator and an object in the vicinity of the robot manipulator. If all structural specifications with regard to the control program have been completed and the values of the parameters for the control program are then also established, the control program can in principle be executed. However, this execution of the control program does not contain the monitoring values adapted to a control program or to a situation in order to determine an undesired collision, an error case, a damage case or other.
  • This embodiment advantageously defines one or a whole set of limit values with regard to the process data during the repeated execution of the control program, which limit values indicate a nominal execution of the control program. This is also done in particular from the empirical data, i.e. in particular from the empirically determined process data, whereby it can be derived in particular from the determined quality for each individual execution of the control program whether an error, a malfunction or the like (see above) during the execution of the Control program was available.
  • the variations in the values of the at least some of the parameters are determined by an optimization carried out in a central processing unit.
  • the variations in the values of the at least some of the parameters are systematically, at least algorithmically systematically, determined.
  • a direct system results from the determination by performing a non-linear optimization in the central processing unit by means of deterministic methods such as a gradient-based method or quadratic optimization. Such methods change the values of the parameters in particular in such a way that the parameter values can be changed as quickly as possible in the direction of a global optimum for an optimal quality of execution of the control program.
  • Another aspect of the invention relates to a control unit for generating and optimizing a control program for a robot manipulator, the control unit being designed to:
  • control unit being designed to select the values of the part of the parameters to be stored according to the determined quality according to a predetermined quality criterion.
  • FIG. 2 shows graphic elements on a screen according to an exemplary embodiment of the invention
  • FIG. 3 shows a control unit for carrying out the method according to FIG. 1.
  • FIG. 1 shows a method for generating and optimizing a control program for a robot manipulator 1.
  • structurally predetermined program sections are selected S1 and the selected program sections are combined to structurally define the control program.
  • the control unit 3 of the robot manipulator 1 records the sequence of the graphic elements 7 selected by a user by dragging and releasing graphic elements 7, the graphic elements 7 being displayed on a screen 5 and each of the graphic elements 7 being assigned to one of the structural predetermined program sections .
  • Such a screen 5 with the respective graphic elements 7 is shown in FIG.
  • the reference symbols of the explanations made here can be related directly to FIG. 2.
  • the specification of the initial set of values of parameters for the selected and combined program sections takes place here by capturing an input from a user in the form of a haptic gesture indirectly on the control unit 3, which records the manual movements when the robot manipulator 1 is guided by the user. This is followed by an input by the user, namely by activating the graphic repetition element 9 displayed on the screen 5, the automatically repeated execution S3 of the control program with variations of values of at least some of the parameters by the control unit 3, the variations of the values of the at least some of the parameters can be determined by an optimization carried out in a central processing unit 13. This central processing unit 13 is shown in FIG. 3.
  • the determination S4 of a quality of a respective result of the respective execution of the control program takes place by checking whether the control program has led to the complete execution of a task, which is done by the external user input regarding the success, as well as in what time the execution of the control program takes place and whether while a degree of wear on the robot manipulator 1 has remained below a predetermined limit value.
  • selected varied values of the at least one part of the parameters are stored in the control unit 3, the values of the part of the parameters to be stored being selected according to the determined quality according to a predetermined quality criterion.
  • limit values with respect to process data are ascertained S6, the limit values serving to ascertain error cases in the later execution in the later operation of the robot manipulator and the saving of the ascertained limit values in the control unit 3 for later use.
  • FIG. 2 shows the graphic elements 7 mentioned in FIG. 1 and the graphic repetition element 9, all of which are displayed on the screen 5. Such a screen 5 is also shown in FIG. 3. Reference is therefore made to the descriptions of FIG. 1 and FIG. 3.
  • the control unit 3 shows a control unit 3 for generating and optimizing a control program for a robot manipulator 1.
  • the control program and the entire method, as described under FIG. 1, is executed on this control unit 3.
  • the screen 5 is the screen 5 of a user computer, which is directly connected to the control unit 3 of the Robot manipulator 1 is connected.
  • the control unit 3 is a processing unit which is separate from the user computer and which is arranged on a base of the robot manipulator 1.
  • the control unit 3 is designed to:
  • control unit 3 being designed to select the values of the part of the parameters to be stored according to the determined quality according to a predetermined quality criterion.
  • the determined quality of the respective result is transmitted to the central processing unit 13 together with the control program and / or together with the process data acquired during the execution of the control program, the central processing unit 13 checking at least one of the following functions or values:

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Numerical Control (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Optimieren eines Steuerprogramms eines Robotermanipulators (1), aufweisend die Schritte: - Auswählen (S1) und Zusammensetzen von vorgegebenen Programmabschnitten zu einer strukturellen Definition des Steuerprogramms, - Vorgeben (S2) von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte, - automatisches, wiederholtes Ausführen (S3) des Steuerprogramms unter Variationen von Werten von zumindest einem Teil der Parameter, - Ermitteln (S4) einer Qualität eines jeweiligen Ergebnisses der jeweiligen Ausführung des Steuerprogramms, und - Abspeichern (S5) von ausgewählten variierten Werten des zumindest einen Teils der Parameter, wobei die abzuspeichernden Werte des Teils der Parameter gemäß der ermittelten Qualität nach einem vorgegebenen Gütekriterium ausgewählt werden.

Description

Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator Die Erfindung betrifft ein Verfahren zum Erzeugen und Optimieren eines
Steuerprogramms für einen Robotermanipulator sowie eine Steuereinheit zum Erzeugen und Optimieren eines Steuerprogramms für den Robotermanipulator.
Aufgabe der Erfindung ist es, das Erzeugen eines Steuerprogramms und das Optimieren des Steuerprogramms für einen Robotermanipulator zu verbessern.
Die Erfindung ergibt sich aus den Merkmalen der unabhängigen Ansprüche. Vorteilhafte Weiterbildungen und Ausgestaltungen sind Gegenstand der abhängigen Ansprüche. Ein erster Aspekt der Erfindung betrifft ein Verfahren zum Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator, aufweisend die Schritte:
- Auswählen von strukturell vorgegebenen Programmabschnitten und Zusammensetzen der ausgewählten Programmabschnitte zur strukturellen Definition des Steuerprogramms durch eine Steuereinheit des Robotermanipulators, - Vorgeben eines initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte, wobei die ausgewählten und zusammengesetzten Programmabschnitte mit ihren Parametern das Steuerprogramm bilden,
- automatisches, wiederholtes Ausführen des Steuerprogramms unter Variationen von Werten von zumindest einem Teil der Parameter durch die Steuereinheit,
- Ermitteln einer Qualität eines jeweiligen Ergebnisses der jeweiligen Ausführung des Steuerprogramms, und
- Abspeichern von ausgewählten variierten Werten des zumindest einen Teils der Parameter in der Steuereinheit, wobei die abzuspeichernden Werte des Teils der Parameter gemäß der ermittelten Qualität nach einem vorgegebenen Gütekriterium ausgewählt werden.
Die strukturell vorgegebenen Programmabschnitte bestimmen einen strukturellen Ablauf des Steuerprogramms für den Robotermanipulator, ohne jedoch Werte für Parameter zu beinhalten. Die Parameter sind daher in den strukturell vorgegebenen
Programmabschnitten noch nicht enthalten, da diese für die jeweilige individuelle Aufgabe anzupassen sind. Der prinzipielle Aufbau des Steuerprogramms wird jedoch durch die strukturell vorgegebenen Programmabschnitte im Sinne einer Folge von logischen Programmabschnitten definiert.
In dem ersten Schritt des Verfahrens werden daher aus einer Vielzahl von strukturell vorgegebenen Programmabschnitten bestimmte ausgewählt. Dies erfolgt bevorzugt durch das Auswählen eines Anwenders, der den prinzipiellen Ablauf des Steuerprogramms damit definiert. Die vorgegebenen Programmabschnitte sind insbesondere modular ausgestaltet und weisen gegebenenfalls Schnittstellen auf, sodass sie seriell hintereinander schaltbar sind. Dies entspricht dem Zusammensetzen der ausgewählten Programmabschnitte, sodass durch die Gesamtheit aller ausgewählten Programmabschnitte ein insgesamt ausführbarer Ablauf des Steuerprogramms entsteht.
Beispiele für die vorgegebenen Programmabschnitte sind das Schließen eines Greifers, das Bewegen eines Endeffektors von einem vorgegebenen Startpunkt zu einem vorgegebenen Zielpunkt, das Zurückfahren des Robotermanipulators in seine Ausgangspose, das Anfahren von vorgegebenen Orten in einer Umgebung des Robotermanipulators, das Wiederholen einer oder mehrerer vorangegangener Programmabschnitte, das Aufbringen einer vorgegebenen Kraft oder eines vorgegebenen Moments auf eine Umgebung des Robotermanipulators, das Umschalten in einen anderen Regelungsmodus, beispielsweise von einer Kraftregelung in eine Impedanzregelung oder eine Positionsregelung oder jeweils umgekehrt, oder Ähnliches.
Wird beispielsweise als Steuerprogramm das Verfahren des Robotermanipulators zu einem Objekt, mit dem anschließenden Greifen des Objekts, und mit dem Transportieren des Objekts zu einem vorgegebenen Zielpunkt vorgegeben, so können die einzelnen Schritte als strukturell vorgegebene Programmabschnitte zunächst definiert werden, dabei ist jedoch noch nicht festgelegt, mit welcher Geschwindigkeit das Transportieren erfolgen soll, mit welcher Kraft das Greifen erfolgen soll, etc.. Dies wird durch die Werte der Parameter für solche ausgewählte und zusammengesetzte Programmabschnitte festgelegt, wobei die Parameter dann die Beschleunigungen, Geschwindigkeiten, Kräfte, etc. darstellen.
Dabei wird ein initialer Satz von Werten für die Parameter der ausgewählten und zusammengesetzten Programmabschnitte vorgegeben. Ist die Struktur des Steuerprogramms durch die zusammengesetzten strukturell vorgegebenen Programmabschnitte definiert, und sind anschließend für diesen Satz der Programmabschnitte auch entsprechende Parameter mit Werten konkret definiert, liegt ein ausführbares Steuerprogramm vor. Dieses Steuerprogramm wird automatisch durch die Steuereinheit wiederholt ausgeführt, wobei zumindest ein Teil der Parameter des so erzeugten Steuerprogramms in jeder der wiederholten Ausführungen variiert wird.
Es ergibt sich damit ein automatisiertes Suchverfahren zur Verbesserung der initial vorgegebenen Werte der Parameter. Es müssen dabei nicht notwendigerweise sämtliche der vorgegebenen Werte von Parameter variiert werden; unter Umständen ist es gewünscht, dass vom Anwender vorgegebene Parameter gerade nicht variiert werden. Im obigen Beispiel können Parameter, die nicht variiert werden sollen, die Transportgeschwindigkeit des gegriffenen Objekts sein, während die Greifkraft zum Halten des Objekts variiert wird, um die minimal nötige Kraft zum Halten des Objekts zu finden, ohne es dabei unnötig zu quetschen.
Ferner erfolgt nach jedem Durchgang des wiederholt ausgeführten Steuerprogramms eine automatische Ermittlung einer Qualität eines jeweiligen Ergebnisses. Die Qualität beinhaltet insbesondere, ob die mit dem Steuerprogramm assoziierte Aufgabe überhaupt abgeschlossen wurde, und wenn die Aufgabe abgeschlossen wurde, mit welchen für eine qualitative Einordnung relevanten Werten von Prozessdaten das Steuerprogramm durchgeführt wurde. Ob die Aufgabe erfolgreich abgeschlossen wurde, wird dabei bevorzugt vom Anwender vorgegeben. Die Prozessdaten betreffen insbesondere ein Schadensmaß oder ein Maß für eine Abnutzung, die bei der Ausführung des Steuerprogramms am Robotermanipulator und/oder am Objekt aus der Umgebung des Robotermanipulators entsteht. Ein weiterer Faktor für die Qualität der Ausführung des Steuerprogramms betrifft die für die Ausführung benötigte Zeit, da es grundsätzlich wünschenswert ist, die durch ein Steuerprogramm zu lösende Aufgabe in möglichst kurzer Zeit zu bewerkstelligen.
Während dieser automatischen Suche nach verbesserten Werten für die Parameter der zusammengesetzten Programmabschnitte in Zusammenschau mit der jeweiligen ermittelten Qualität der von den Werten des parameterabhängigen Ergebnisses der jeweiligen Ausführung des Steuerprogramms erfolgt daher eine begründete und eine auf empirische Analyse basierende Auswahl von Werten der variierten Parameter, mit denen die Qualität des jeweiligen Ergebnisses bei der Durchführung des Steuerprogramms optimiert wird. Dies erfolgt insbesondere durch einen Vergleich der jeweiligen ermittelten Qualität nach einem vorgegebenen Kriterium, bevorzugt einem Grenzwert für einen numerisch ausgedrückten Kennwert der Qualität. Die Qualität wird daher insbesondere durch eine Kostenfunktion oder invers dazu durch eine Gütefunktion ausgedrückt. Je nachdem, welche Formulierung für die Qualität des jeweiligen Ergebnisses verwendet wird, richtet sich das Vorzeichen bzw. die Definition des Grenzwertes oder der anderweitig verwendeten Metrik als Gütekriterium.
Es ist daher eine vorteilhafte Wirkung der Erfindung, dass die Steuereinheit, insbesondere eine Steuereinheit des Robotermanipulators selbst, selbst dazu in der Lage ist, ein strukturell vorgegebenes Steuerprogramm mit initialen Werten von Parametern des Steuerprogramms empirisch zu optimieren, sodass diese Aufgabe des optimierende Steuerprogramms dem Anwender zumindest zu einem Teil abgenommen wird. Das Erzeugen und Optimieren eines Steuerprogramms erfolgt daher vorteilhaft sehr schnell und zuverlässig mit der Tendenz zu einer schnellen Konvergenz zu global optimalen Werten der Parameter des Steuerprogramms.
Gemäß einer vorteilhaften Ausführungsform erfolgt das Auswählen der strukturell vorgegebenen Programmabschnitte für das Steuerprogramm durch Ziehen und Loslassen von grafischen Elementen durch einen Anwender, wobei die grafischen Elemente auf einem Bildschirm dargestellt werden und jedes der grafischen Elemente einem der strukturell vorgegebenen Programmabschnitte zugeordnet ist, wobei das automatisch wiederholte Ausführen des Steuerprogramms auf eine Eingabe des Anwenders hin, insbesondere durch Aktivieren eines am Bildschirm angezeigten grafischen Wiederholungselements, erfolgt. Der Bildschirm ist bevorzugt ein berührempfindlicher Bildschirm, da hier vorteilhaft das Ziehen und Loslassen der grafischen Elemente besonders intuitiv erfolgen kann. Durch die Aneinanderreihung der grafischen Elemente auf dem Bildschirm ergibt sich damit insbesondere direkt die Reihenfolge der strukturell vorgegebenen Programmabschnitte, die durch das Ziehen aus einer Liste mit einer Vielzahl möglicher auswählbarer Programmabschnitte ausgewählt werden. Bevorzugt werden die grafischen Elemente auch in derjenigen Reihenfolge ausgeführt, wie sie vom Anwender auf dem Bildschirm angeordnet werden. Jedes der grafischen Elemente repräsentiert eines der strukturell vorgegebenen Programmabschnitte, für die ein prinzipieller Programmablauf in der Steuereinheit abgespeichert ist. Insbesondere weisen die grafischen Elemente eine entsprechende farbliche, bildliche, oder auch schriftliche Kennzeichnung auf, sodass es für den Anwender besonders einfach ist, die strukturell vorgegebenen Programmabschnitte zu finden und ihm einen entsprechenden Sinngehalt zuzuordnen. Das grafische Wiederholungselement ist dabei insbesondere ein am Bildschirm angeordneter Funktionsknopf, oder ein Bildelement (auch genannt "Icon").
Beim Aktivieren dieses Wiederholungselements, das insbesondere durch Antippen des Wiederholungselements auf einen berührungsempfindlichen Bildschirm oder das Anklicken andernfalls erfolgt, wird insbesondere das wiederholte Ausführen des Steuerprogramms zusammen mit der automatisierten Variation der Werte des zumindest einen Teils der Parameter gestartet. Vorteilhaft steht damit dem Anwender eine besonders intuitive und einfache Möglichkeit zur Verfügung, den prinzipiellen Ablauf durch das Zusammenfügen der vorgegebenen Programmabschnitte zu bestimmen, sowie das automatisierte Verfahren zum Verbessern der Werte der Parameter zu initiieren.
Gemäß einer weiteren vorteilhaften Ausführungsform weist das Verfahren weiterhin den Schritt auf:
- Ausführen des Steuerprogramms mit den abgespeicherten Werten der Parameter.
Gemäß einer weiteren vorteilhaften Ausführungsform ist jedes der grafischen Elemente einem der strukturell vorgegebenen Programmabschnitte und einer vordefinierten rückwärtigen Ausführung des jeweiligen Programmabschnitts zugeordnet, wobei von der Steuereinheit aus der Kombination der ausgewählten grafischen Elemente und mittels der den grafischen Elementen zugeordneten rückwärtigen Ausführungen eine Umkehrung des Steuerprogramms ermittelt wird, wobei die Umkehrung des Steuerprogramms strukturell derart ermittelt wird, dass sich der Robotermanipulator nach Ausführung des Steuerprogramms und anschließender Ausführung der Umkehrung des Steuerprogramms in seinem Anfangszustand wie vor Ausführung des Steuerprogramms befindet. Insbesondere dadurch, dass das Steuerprogramm automatisch wiederholt ausgeführt wird, ist ein wiederholter Start von einem Ausgangspunkt notwendig. Es wird unter Rücksichtnahme dieser Notwendigkeit vorteilhaft zunächst eine rückwärtige Ausführung des jeweiligen Programmabschnitts definiert. Weiterhin ermittelt die Steuereinheit aus der Gesamtheit der jeweiligen rückwärtigen Ausführungen der jeweiligen Programmabschnitte eine vollständige Umkehrung des Steuerprogramms. Die vollständige Umkehrung des Steuerprogramms entspricht daher nicht notwendigerweise nur der Aneinanderreihung der rückwärtigen Ausführungen der jeweiligen Programmabschnitte, vielmehr betrachtet die Steuereinheit zusätzlich insbesondere die Schnittstellen zwischen den rückwärtigen Ausführungen der jeweiligen Programmabschnitte, und daher insbesondere die Kompatibilität zwischen den rückwärtigen Ausführungen zueinander. Vorteilhaft wird dadurch sichergestellt, dass jede Wiederholung der Ausführung des Steuerprogramms durch vollständig zurückgeführte Zustände des Robotermanipulator erfolgt, sodass vorteilhaft nicht die einzelnen Ausführungen des Steuerprogramms miteinander wechselwirken und das Ergebnis bei der Überprüfung der Qualität der jeweiligen Ausführung des Steuerprogramms verfälschen. Gemäß einer weiteren vorteilhaften Ausführungsform wird die ermittelte Qualität des jeweiligen Ergebnisses der jeweiligen Ausführung des Steuerprogramms zusammen mit dem Steuerprogramm und/oder zusammen mit bei der Ausführung des Steuerprogramms erfassten Prozessdaten an eine zentrale Recheneinheit übermittelt, wobei von der zentralen Recheneinheit zumindest eine aus den folgenden Funktionen bzw. Werte überprüft wird:
- die absoluten Werte der ermittelten Qualität,
- der Zusammenhang zwischen einem absoluten Wert der ermittelten Qualität und den Werten der Parameter der Programmabschnitte,
- die Sensitivität zwischen einer Änderung der Werte der Parameter der Programmabschnitte und der Änderung der ermittelten Qualität,
- während der Ausführung des Steuerprogramms als Prozessdaten erfassten Kräfte und/oder Momente zwischen dem Robotermanipulator und der Umgebung des Robotermanipulators, und wobei bei einer festgestellten Anomalie in den überprüften Funktionen bzw. Werten eine Warnung an eine Ausgabeeinheit des Robotermanipulators für den Anwender übermittelt wird und an der Ausgabeeinheit des Robotermanipulators ausgegeben wird. Die zentrale Recheneinheit ist insbesondere ein beim Fiersteller des Robotermanipulators angeordneter Server, sodass die zentrale Recheneinheit insbesondere für eine Vielzahl von Steuereinheiten einer Vielzahl von Robotermanipulatoren die durch diese ausgeführten Steuerprogramme auf Anomalien überprüft. Vorteilhaft liefert dabei auch die zentrale Recheneinheit den initialen Satz von Werten der Parameter für die Programmabschnitte, sodass dieser initiale Satz von Werten der Parameter an in der Vergangenheit festgestellte Anomalien angepasst werden kann. Dies erhöht vorteilhaft die Effizienz bei der Optimierung der Werte der Parameter des Steuerprogramms, indem verbesserte Startwerte als besserer Ausgangspunkt zum Finden eines globalen Optimums der Werte des Steuerprogramms verwendet werden können.
Gemäß einer weiteren vorteilhaften Ausführungsform sind die ausgewählten variierten Werte der Parameter aktuelle Werte nach einem Abbruch der wiederholten Ausführungen des Steuerprogramms, wobei die wiederholten Ausführungen des Steuerprogramms abgebrochen werden, wenn die aktuell ermittelte Qualität des Ergebnisses der aktuellen Ausführung dem vorgegebenen Gütekriterium entspricht. Gemäß dieser Ausführungsform wird die ermittelte Qualität des Ergebnisses laufend im Verhältnis gegenüber dem vorgegebenen Gütekriterium bewertet. Entspricht nach einer Vielzahl von Änderungen der Werte der Parameter des Steuerprogramms das aktuelle Ergebnis bei der Ausführung des Steuerprogramms erstmalig dem vorgegebenen Gütekriterium, so wird vorteilhaft gemäß dieser Ausführungsform die wiederholte Ausführung des Steuerprogramms abgebrochen und die aktuell verwendeten Werte der Parameter des Steuerprogramms übernommen und abgespeichert.
Gemäß einer weiteren vorteilhaften Ausführungsform erfolgt das Vorgeben des initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte durch Erfassen einer Vorgabe oder einer Eingabe eines Anwenders an der Steuereinheit. Insbesondere erfolgt die Vorgabe der initialen Werte von Parametern durch Eingabe von numerischen Werten an einem entsprechenden Eingabeelement der Steuereinheit. Die Eingabe des Anwenders unmittelbar an der Steuereinheit erfolgt dagegen bevorzugt durch manuelles Führen des Robotermanipulators, wobei hier insbesondere Parameterwerte wie eine Geschwindigkeit, eine Beschleunigung oder eine Pose des Robotermanipulators vorgegeben werden können. Vorteilhaft entspricht gemäß dieser Ausführungsform der initiale Satz von Werten der Parameter direkt den Vorstellungen des Anwenders, ohne auch dafür weiter weg liegende Standardwerte zurückgreifen zu müssen.
Gemäß einer weiteren vorteilhaften Ausführungsform erfolgt das Vorgeben des initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte durch Erfassen einer Vorgabe der zentralen Recheneinheit an der Steuereinheit. Die zentrale Recheneinheit ist bevorzugt mit einer zentralen Steuereinheit eines Experimentalrobotermanipulators verbunden. Dieser zentrale Experimentalroboter führt vorteilhaft eine Vielzahl von Aufgaben aus, für die entsprechende Programmabschnitte verwendet werden. Für diese verwendeten Programmabschnitte werden bevorzugt durch den Experimentalrobotermanipulator durch die zentrale Recheneinheit initiale Werte der Parameter bereits empirisch ausgelegt, sodass mit hoher Wahrscheinlichkeit am verwendeten Robotermanipulator gute Startwerte für die Parameter der einzelnen Programmabschnitte verwendet werden. Die zentrale Recheneinheit übermittelt dabei die vom Experimentalroboter ermittelten Werte für die einzelnen Programmabschnitte und übermittelt sie an die Steuereinheit des jeweiligen verwendeten Robotermanipulators, wo sie als Initialsatz von Werten für die Parameter der ausgewählten und zusammengesetzten Programmabschnitte verwendet werden.
Gemäß einer weiteren vorteilhaften Ausführungsform weist das Verfahren weiterhin den Schritt auf:
- Ermitteln von Grenzwerten bezüglich Prozessdaten, wobei die Grenzwerte zum Ermitteln von Fehlerfällen bei der späteren Ausführungen im späteren Betrieb des Robotermanipulators dienen und Abspeichern der ermittelten Grenzwerte in der Steuereinheit.
Prozessdaten sind insbesondere durch Sensoren selbst oder auf Basis von Sensorsignalen ermittelte Werte, die beim aktuellen und späteren Ausführen des Steuerprogramms erfasst werden können. Dies betrifft insbesondere Geschwindigkeiten, Beschleunigungen, Gelenkwinkelmomente, oder andere Daten über den Robotermanipulator selbst während der Ausführung der Aufgabe durch Ausführen des Steuerprogramms, sowie insbesondere Kräfte und/oder Momente, die zwischen einem Teil des Robotermanipulators und einem Objekt aus der Umgebung des Robotermanipulators wirken. Sind sämtliche strukturellen Vorgaben bezüglich des Steuerprogramms abgeschlossen, und anschließend auch die Werte der Parameter für das Steuerprogramm festgelegt, so ist das Steuerprogramm grundsätzlich ausführbar. Diese Ausführung des Steuerprogramms beinhaltet jedoch nicht die an ein Steuerprogramm oder an eine Situation angepassten Überwachungswerte zum Ermitteln einer unerwünschten Kollision, eines Fehlerfalls, eines Schadensfalls, oder anderes. Vorteilhaft wird durch diese Ausführungsform bei der wiederholten Ausführung des Steuerprogramms einer oder ein ganzer Satz von Grenzwerten bezüglich der Prozessdaten festgelegt, die auf eine nominale Ausführung des Steuerprogramms schließen lassen. Dies erfolgt ebenfalls insbesondere aus den empirischen Daten, das heißt insbesondere aus den empirisch ermittelten Prozessdaten, wobei insbesondere über die ermittelte Qualität für jede einzelne Ausführung des Steuerprogramms abgeleitet werden kann, ob ein Fehlerfall, eine Störung oder Ähnliches (siehe oben) bei der Ausführung des Steuerprogramms vorlag.
Gemäß einer weiteren vorteilhaften Ausführungsform werden die Variationen der Werte des zumindest einen Teils der Parameter durch eine in einer zentralen Recheneinheit ausgeführten Optimierung ermittelt. Gemäß dieser Ausführungsform werden die Variationen der Werte des zumindest einen Teils der Parameter systematisch, zumindest algorithmisch systematisch, ermittelt. Eine direkte Systematik ergibt sich bei der Ermittlung durch Ausführen einer nichtlinearen Optimierung in der zentralen Recheneinheit durch deterministische Methoden wie einem gradientenbasierten Verfahren oder der quadratischen Optimierung. Solche Methoden ändern die Werte der Parameter insbesondere so, dass eine möglichst schnelle Änderung der Parameterwerte in Richtung eines globalen Optimums zu einer optimalen Qualität der Ausführung des Steuerprogramms ermöglicht wird. Dagegen beinhalten indirekt systematische, insbesondere algorithmisch systematische nichtlineare Optimierungsalgorithmen, die auf der zentralen Recheneinheit ausgeführt werden, das Verwenden von Zufallsfunktionen, wie beispielsweise bei genetischen Algorithmen oder Evolutionsalgorithmen. Die Konvergenzrate kann bei einer solchen nichtlinearen Optimierung nicht deterministisch vorhergesagt werden, jedoch bieten die Algorithmen eine konsistente Ausführung einer nichtlinearen Optimierung. Vorteilhaft wird gemäß dieser Ausführungsform die unter Umständen verfügbare erhöhte Rechenkapazität der zentralen Recheneinheit ausgenutzt, sowie weiterhin vorteilhaft eine Vielzahl von Steuerprogrammen aus einer Vielzahl von Robotermanipulatoren zentral optimiert, sodass Synergie- Effekte an der zentralen Recheneinheit dabei ausgenutzt werden können.
Ein weiterer Aspekt der Erfindung betrifft eine Steuereinheit zum Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator, wobei die Steuereinheit ausgeführt ist zum:
- Auswählen von strukturell vorgegebenen Programmabschnitten und Zusammensetzen der ausgewählten Programmabschnitte zur strukturellen Definition des Steuerprogramms des Robotermanipulators,
- Vorgeben eines initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte, wobei die ausgewählten und zusammengesetzten Programmabschnitte mit ihren Parametern das Steuerprogramm bilden,
- automatischen, wiederholten Ausführen des Steuerprogramms unter Variationen von Werten von zumindest einem Teil der Parameter,
- Ermitteln einer Qualität eines jeweiligen Ergebnisses der jeweiligen Ausführung des Steuerprogramms, und
- Abspeichern von ausgewählten variierten Werten des zumindest einen Teils der Parameter, wobei die Steuereinheit dazu ausgeführt ist, die abzuspeichernden Werte des Teils der Parameter gemäß der ermittelten Qualität nach einem vorgegebenen Gütekriterium auszuwählen.
Vorteile und bevorzugte Weiterbildungen der vorgeschlagenen Steuereinheit ergeben sich durch eine analoge und sinngemäße Übertragung der im Zusammenhang mit dem vorgeschlagenen Verfahren vorstehend gemachten Ausführungen.
Weitere Vorteile, Merkmale und Einzelheiten ergeben sich aus der nachfolgenden Beschreibung, in der - gegebenenfalls unter Bezug auf die Zeichnung - zumindest ein Ausführungsbeispiel im Einzelnen beschrieben ist. Gleiche, ähnliche und/oder funktionsgleiche Teile sind mit gleichen Bezugszeichen versehen. Es zeigen:
Fig. 1 ein Verfahren um Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator gemäß einem Ausführungsbeispiel der Erfindung,
Fig. 2 grafische Elemente auf einem Bildschirm gemäß einem Ausführungsbeispiel der Erfindung, und
Fig. 3 eine Steuereinheit zum Ausführen des Verfahrens nach Fig. 1.
Die Darstellungen in den Figuren sind schematisch und nicht maßstäblich.
Fig. 1 zeigt ein Verfahren zum Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator 1. In einem ersten Schritt erfolgt das Auswählen S1 von strukturell vorgegebenen Programmabschnitten und Zusammensetzen der ausgewählten Programmabschnitte zur strukturellen Definition des Steuerprogramms. Die Steuereinheit 3 des Robotermanipulators 1 erfasst die Reihenfolge der durch Ziehen und Loslassen von grafischen Elementen 7 durch einen Anwender ausgewählten grafischen Elemente 7, wobei die grafischen Elemente 7 auf einem Bildschirm 5 dargestellt werden und jedes der grafischen Elemente 7 einem der strukturellen vorgegebenen Programmabschnitte zugeordnet ist. Ein solcher Bildschirm 5 mit den jeweiligen grafischen Elementen 7 ist in der Fig. 2 dargestellt. Die Bezugszeichen der hier gemachten Erläuterungen können dabei direkt auf die Fig. 2 bezogen werden. Auf dem Bildschirm 5 sind zwei Bereiche voneinander abgegrenzt, wobei der untere Bereich ein Reservoir von möglichen und auswählbaren grafischen Elementen 7 beinhaltet, die die Gesamtheit der durch die Steuereinheit 3 des Robotermanipulators 1 ausführbaren Programmabschnitte auflistet. Durch Ziehen und Loslassen in den oberen Bereich in einer entsprechend gewünschten Reihenfolge wird strukturell das Steuerprogramm definiert. Außerdem ist jedes der grafischen Elemente 7 einer vordefinierten rückwärtigen Ausführung des jeweiligen
Programmabschnitts zugeordnet, wobei von der Steuereinheit 3 aus der Kombination der ausgewählten grafischen Elemente 7 und mittels der den grafischen Elementen 7 zugeordneten rückwärtigen Ausführungen eine Umkehrung des Steuerprogramms ermittelt wird, wobei die Umkehrung des Steuerprogramms strukturell derart ermittelt wird, dass sich der Robotermanipulator 1 nach Ausführung des Steuerprogramms und anschließender Ausführung der Umkehrung des Steuerprogramms in seinem Anfangszustand wie vor Ausführung des Steuerprogramms befindet. Im weiteren Schritt erfolgt das Vorgeben S2 eines initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte, wobei die ausgewählten und zusammengesetzten Programmabschnitte mit ihren Parametern das Steuerprogramm bilden. Das Vorgeben des initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte erfolgt hierbei durch Erfassen einer Eingabe eines Anwenders in Form einer haptischen Geste mittelbar an der Steuereinheit 3, die die manuellen Bewegungen beim Führen des Robotermanipulators 1 durch den Anwender aufzeichnet. Es folgt hierauf, auf eine Eingabe des Anwenders hin, nämlich durch Aktivieren des am Bildschirm 5 angezeigten grafischen Wiederholungselements 9, das automatisch wiederholte Ausführen S3 des Steuerprogramms unter Variationen von Werten von zumindest einem Teil der Parameter durch die Steuereinheit 3, wobei die Variationen der Werte des zumindest einen Teils der Parameter durch eine in einer zentralen Recheneinheit 13 ausgeführten Optimierung ermittelt werden. Diese zentralen Recheneinheit 13 ist in der Fig. 3 dargestellt. Das Ermitteln S4 einer Qualität eines jeweiligen Ergebnisses der jeweiligen Ausführung des Steuerprogramms erfolgt durch Prüfung, ob das Steuerprogramm zur vollständigen Ausführung einer Aufgabe geführt hat, was durch die externe Anwendereingabe bezüglich des Erfolgs erfolgt, sowie, in welcher Zeit die Ausführung des Steuerprogramms erfolgt und ob dabei ein Abnutzungsgrad am Robotermanipulator 1 unter einem vorgegebenen Grenzwert verblieben ist. Im weiteren Schritt erfolgt das Abspeichern S5 von ausgewählten variierten Werten des zumindest einen Teils der Parameter in der Steuereinheit 3, wobei die abzuspeichernden Werte des Teils der Parameter gemäß der ermittelten Qualität nach einem vorgegebenen Gütekriterium ausgewählt werden. Im weiteren Schritt erfolgt das Ermitteln S6 von Grenzwerten bezüglich Prozessdaten, wobei die Grenzwerte zum Ermitteln von Fehlerfällen bei der späteren Ausführungen im späteren Betrieb des Robotermanipulators dienen und das Abspeichern der ermittelten Grenzwerte in der Steuereinheit 3 zum späteren Gebrauch.
Fig. 2 zeigt die in Fig. 1 erwähnten grafischen Elemente 7 sowie das grafische Wiederholungselement 9, welche allesamt auf dem Bildschirm 5 dargestellt werden. Ein solcher Bildschirm 5 ist auch in der Fig. 3 dargestellt. Daher wird auf die Beschreibungen der Fig. 1 sowie der Fig. 3 verwiesen.
Fig. 3 zeigt eine Steuereinheit 3 zum Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator 1. Auf dieser Steuereinheit 3 wird das Steuerprogramm und das gesamte Verfahren, wie unter Fig. 1 beschrieben ausgeführt. Der Bildschirm 5 ist dabei der Bildschirm 5 eines Anwenderrechners, der direkt mit der Steuereinheit 3 des Robotermanipulators 1 verbunden ist. Die Steuereinheit 3 ist dabei eine vom Anwenderrechner separierte Recheneinheit, die einer Basis des Robotermanipulators 1 angeordnet ist. Die Steuereinheit 3 ist ausgeführt zum:
- Auswählen von strukturell vorgegebenen Programmabschnitten und Zusammensetzen der ausgewählten Programmabschnitte zur strukturellen Definition des Steuerprogramms des Robotermanipulators 1 ,
- Vorgeben eines initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte, wobei die ausgewählten und zusammengesetzten Programmabschnitte mit ihren Parametern das Steuerprogramm bilden,
- automatisches, wiederholtes Ausführen des Steuerprogramms unter Variationen von Werten von zumindest einem Teil der Parameter,
- Ermitteln einer Qualität eines jeweiligen Ergebnisses der jeweiligen Ausführung des Steuerprogramms, und
- Abspeichern von ausgewählten variierten Werten des zumindest einen Teils der Parameter, wobei die Steuereinheit 3 dazu ausgeführt ist, die abzuspeichernden Werte des Teils der Parameter gemäß der ermittelten Qualität nach einem vorgegebenen Gütekriterium auszuwählen.
Hier wird die ermittelte Qualität des jeweiligen Ergebnisses zusammen mit dem Steuerprogramm und/oder zusammen mit bei der Ausführung des Steuerprogramms erfassten Prozessdaten an die zentrale Recheneinheit 13 übermittelt, wobei von der zentralen Recheneinheit 13 zumindest eine aus den folgenden Funktionen bzw. Werte überprüft wird:
- die absoluten Werte der ermittelten Qualität,
- der Zusammenhang zwischen einem absoluten Wert der ermittelten Qualität und den Werten der Parameter der Programmabschnitte,
- die Sensitivität zwischen einer Änderung der Werte der Parameter der Programmabschnitte und der Änderung der ermittelten Qualität, und wobei bei einer festgestellten Anomalie in den überprüften Funktionen bzw. Werten eine Warnung an den als Ausgabeeinheit 11 fungierenden Bildschirm 5 für den Anwender übermittelt wird und an der Ausgabeeinheit 11 ausgegeben wird.
Obwohl die Erfindung im Detail durch bevorzugte Ausführungsbeispiele näher illustriert und erläutert wurde, so ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen. Es ist daher klar, dass eine Vielzahl von Variationsmöglichkeiten existiert. Es ist ebenfalls klar, dass beispielhaft genannte Ausführungsformen wirklich nur Beispiele darstellen, die nicht in irgendeiner Weise als Begrenzung etwa des Schutzbereichs, der Anwendungsmöglichkeiten oder der Konfiguration der Erfindung aufzufassen sind. Vielmehr versetzen die vorhergehende Beschreibung und die Figurenbeschreibung den Fachmann in die Lage, die beispielhaften Ausführungsformen konkret umzusetzen, wobei der Fachmann in Kenntnis des offenbarten Erfindungsgedankens vielfältige Änderungen, beispielsweise hinsichtlich der Funktion oder der Anordnung einzelner, in einer beispielhaften Ausführungsform genannter Elemente, vornehmen kann, ohne den Schutzbereich zu verlassen, der durch die Ansprüche und deren rechtliche Entsprechungen, wie etwa weitergehende Erläuterungen in der Beschreibung, definiert wird.
Bezugszeichenliste 1 Robotermanipulator
3 Steuereinheit
5 Bildschirm
7 Elemente
9 Wiederholungselement 11 Ausgabeeinheit
13 zentrale Recheneinheit
51 Auswählen
52 Vorgeben S3 Ausfuhren
54 Ermitteln
55 Abspeichern
56 Ermitteln

Claims

Patentansprüche
1. Verfahren zum Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator (1 ), aufweisend die Schritte:
- Auswählen (S1) von strukturell vorgegebenen Programmabschnitten und Zusammensetzen der ausgewählten Programmabschnitte zur strukturellen Definition des Steuerprogramms durch eine Steuereinheit (3) des Robotermanipulators (1), - Vorgeben (S2) eines initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte, wobei die ausgewählten und zusammengesetzten Programmabschnitte mit ihren Parametern das Steuerprogramm bilden,
- automatisches, wiederholtes Ausführen (S3) des Steuerprogramms unter Variationen von Werten von zumindest einem Teil der Parameter durch die
Steuereinheit (3),
- Ermitteln (S4) einer Qualität eines jeweiligen Ergebnisses der jeweiligen Ausführung des Steuerprogramms, und
- Abspeichern (S5) von ausgewählten variierten Werten des zumindest einen Teils der Parameter in der Steuereinheit (3), wobei die abzuspeichernden Werte des Teils der Parameter gemäß der ermittelten Qualität nach einem vorgegebenen Gütekriterium ausgewählt werden.
2. Verfahren nach Anspruch 1 , wobei das Auswählen der strukturell vorgegebenen Programmabschnitte für das
Steuerprogramm durch Ziehen und Loslassen von grafischen Elementen (7) durch einen Anwender erfolgt, wobei die grafischen Elemente (7) auf einem Bildschirm (5) dargestellt werden und jedes der grafischen Elemente (7) einem der strukturellen vorgegebenen Programmabschnitte zugeordnet ist, wobei das automatisch wiederholte Ausführen des Steuerprogramms auf eine Eingabe des Anwenders hin, insbesondere durch Aktivieren eines am Bildschirm (5) angezeigten grafischen Wiederholungselements (9), erfolgt.
3. Verfahren nach Anspruch 2, wobei jedes der grafischen Elemente (7) einem der strukturell vorgegebenen
Programmabschnitte und einer vordefinierten rückwärtigen Ausführung des jeweiligen Programmabschnitts zugeordnet ist, wobei von der Steuereinheit (3) aus der Kombination der ausgewählten grafischen Elemente (7) und mittels der den grafischen Elementen (7) zugeordneten rückwärtigen Ausführungen eine Umkehrung des Steuerprogramms ermittelt wird, wobei die Umkehrung des Steuerprogramms strukturell derart ermittelt wird, dass sich der Robotermanipulator (1) nach Ausführung des Steuerprogramms und anschließender Ausführung der Umkehrung des Steuerprogramms in seinem Anfangszustand wie vor Ausführung des Steuerprogramms befindet.
Verfahren nach einem der vorhergehenden Ansprüche, wobei die ermittelte Qualität des jeweiligen Ergebnisses zusammen mit dem Steuerprogramm und/oder zusammen mit bei der Ausführung des Steuerprogramms erfassten Prozessdaten an eine zentrale Recheneinheit (13) übermittelt wird, wobei von der zentralen Recheneinheit (13) zumindest eine aus den folgenden Funktionen bzw. Werte überprüft wird:
- die absoluten Werte der ermittelten Qualität,
- der Zusammenhang zwischen einem absoluten Wert der ermittelten Qualität und den Werten der Parameter der Programmabschnitte,
- die Sensitivität zwischen einer Änderung der Werte der Parameter der Programmabschnitte und der Änderung der ermittelten Qualität,
- während der Ausführung des Steuerprogramms als Prozessdaten erfassten Kräfte und/oder Momente zwischen dem Robotermanipulator (1) und der Umgebung des Robotermanipulators (1), und wobei bei einer festgestellten Anomalie in den überprüften Funktionen bzw. Werten eine Warnung an eine Ausgabeeinheit (11) des Robotermanipulators (1) für den Anwender übermittelt wird und an der Ausgabeeinheit (11 ) des Robotermanipulators (1) ausgegeben wird.
Verfahren nach einem der vorhergehenden Ansprüche, wobei die ausgewählten variierten Werte der Parameter aktuelle Werte nach einem Abbruch der wiederholten Ausführungen des Steuerprogramms sind, wobei die wiederholten Ausführungen des Steuerprogramms abgebrochen werden, wenn die aktuell ermittelte Qualität des Ergebnisses der aktuellen Ausführung dem vorgegebenen Gütekriterium entspricht.
Verfahren nach einem der Ansprüche 1 bis 5, wobei das Vorgeben des initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte durch Erfassen einer Vorgabe oder einer Eingabe eines Anwenders an der Steuereinheit (3) erfolgt.
7. Verfahren nach einem der Ansprüche 1 bis 5, wobei das Vorgeben des initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte durch Erfassen einer Vorgabe der zentralen Recheneinheit (13) an der Steuereinheit (3) erfolgt.
8. Verfahren nach einem der vorhergehenden Ansprüche, weiterhin aufweisend den Schritt:
- Ermitteln (S6) von Grenzwerten bezüglich Prozessdaten, wobei die Grenzwerte zum Ermitteln von Fehlerfällen bei der späteren Ausführungen im späteren Betrieb des Robotermanipulators dienen und Abspeichern der ermittelten Grenzwerte in der Steuereinheit (3).
9. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Variationen der Werte des zumindest einen Teils der Parameter durch eine in einer zentralen Recheneinheit (13) ausgeführten Optimierung ermittelt werden.
10. Steuereinheit (3) zum Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator (1), wobei die Steuereinheit (3) ausgeführt ist zum:
- Auswählen von strukturell vorgegebenen Programmabschnitten und Zusammensetzen der ausgewählten Programmabschnitte zur strukturellen Definition des Steuerprogramms des Robotermanipulators (1),
- Vorgeben eines initialen Satzes von Werten von Parametern für die ausgewählten und zusammengesetzten Programmabschnitte, wobei die ausgewählten und zusammengesetzten Programmabschnitte mit ihren Parametern das Steuerprogramm bilden,
- automatisches, wiederholtes Ausführen des Steuerprogramms unter Variationen von Werten von zumindest einem Teil der Parameter,
- Ermitteln einer Qualität eines jeweiligen Ergebnisses der jeweiligen Ausführung des Steuerprogramms, und
- Abspeichern von ausgewählten variierten Werten des zumindest einen Teils der Parameter, wobei die Steuereinheit (3) dazu ausgeführt ist, die abzuspeichernden Werte des Teils der Parameter gemäß der ermittelten Qualität nach einem vorgegebenen Gütekriterium auszuwählen.
PCT/EP2021/053128 2020-02-14 2021-02-10 Erzeugen und optimieren eines steuerprogramms für einen robotermanipulator WO2021160634A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102020103852.6A DE102020103852B4 (de) 2020-02-14 2020-02-14 Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator
DE102020103852.6 2020-02-14

Publications (1)

Publication Number Publication Date
WO2021160634A1 true WO2021160634A1 (de) 2021-08-19

Family

ID=74853609

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2021/053128 WO2021160634A1 (de) 2020-02-14 2021-02-10 Erzeugen und optimieren eines steuerprogramms für einen robotermanipulator

Country Status (2)

Country Link
DE (1) DE102020103852B4 (de)
WO (1) WO2021160634A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022212198A1 (de) 2022-11-16 2024-05-16 Kuka Deutschland Gmbh Anpassung einer Greifsimulation durch Parameteridentifikation in der realen Welt

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110288667A1 (en) * 2009-02-12 2011-11-24 Kyoto University Industrial robot system
DE102017202439A1 (de) * 2017-02-15 2018-08-16 Festo Ag & Co. Kg Eingabeeinrichtung, Verfahren zur Bereitstellung von Bewegungsbefehlen an einen Aktor und Aktorsystem
DE202019101831U1 (de) * 2019-04-01 2019-05-13 Franka Emika Gmbh System zum Entwickeln von Steuerprogrammen für Robotermanipulatoren
US20190160678A1 (en) * 2017-11-30 2019-05-30 Abb Schweiz Ag Method for operating a robot
WO2019241680A1 (en) * 2018-06-15 2019-12-19 Google Llc Deep reinforcement learning for robotic manipulation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010012598A1 (de) 2010-02-26 2011-09-01 Kuka Laboratories Gmbh Prozessmodulbibliothek und Programmierumgebung zur Programmierung eines Manipulatorprozesses
DE102011082800B4 (de) 2011-09-15 2016-04-14 Convergent Information Technologies Gmbh System und Verfahren zur automatisierten Erstellung von Roboterprogrammen
DE102015204641B4 (de) 2014-06-03 2021-03-25 ArtiMinds Robotics GmbH Verfahren und System zur Programmierung eines Roboters
DE102014112639C5 (de) 2014-09-02 2020-07-02 Cavos Bagatelle Verwaltungs Gmbh & Co. Kg System zum Erstellen von Steuerungsdatensätzen für Roboter
DE102016010945B3 (de) 2016-09-09 2017-10-26 Dürr Systems Ag Optimierungsverfahren für einen Beschichtungsroboter und entsprechende Beschichtungsanlage
JP6603257B2 (ja) 2017-03-31 2019-11-06 ファナック株式会社 行動情報学習装置、管理装置、ロボット制御システム及び行動情報学習方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110288667A1 (en) * 2009-02-12 2011-11-24 Kyoto University Industrial robot system
DE102017202439A1 (de) * 2017-02-15 2018-08-16 Festo Ag & Co. Kg Eingabeeinrichtung, Verfahren zur Bereitstellung von Bewegungsbefehlen an einen Aktor und Aktorsystem
US20190160678A1 (en) * 2017-11-30 2019-05-30 Abb Schweiz Ag Method for operating a robot
WO2019241680A1 (en) * 2018-06-15 2019-12-19 Google Llc Deep reinforcement learning for robotic manipulation
DE202019101831U1 (de) * 2019-04-01 2019-05-13 Franka Emika Gmbh System zum Entwickeln von Steuerprogrammen für Robotermanipulatoren

Also Published As

Publication number Publication date
DE102020103852B4 (de) 2022-06-15
DE102020103852A1 (de) 2021-08-19

Similar Documents

Publication Publication Date Title
EP3797337A1 (de) Verfahren zum hantieren eines werkstücks mit hilfe eines entnahmewerkzeugs und maschine zur durchführung des verfahrens
WO2020212147A1 (de) Verfahren zum ermitteln einer trajektorie eines roboters
DE102020115658A1 (de) Anpassungsunterstützungsvorrichtung
EP3789926A1 (de) Verfahren zum erkennen einer adversarialen störung in eingangsdaten eines neuronalen netzes
WO2017080648A1 (de) Verfahren und computerprogramm zur erzeugung einer grafischen benutzerschnittstelle eines manipulatorprogramms
DE19637755A1 (de) System zur Vereinfachung der Ausführung bestimmter Funktionen
EP3189385A2 (de) System zum erstellen von steuerungsdatensätzen für roboter
WO2021160634A1 (de) Erzeugen und optimieren eines steuerprogramms für einen robotermanipulator
EP3374135B1 (de) Verfahren zum vereinfachten ändern von applikationsprogrammen zur steuerung einer industrieanlage
EP3771952A1 (de) Verfahren zur automatischen bewegung eines arbeitsgeräts sowie arbeitsgerät
DE102009027267A1 (de) Verfahren und Vorrichtung zur vereinfachten Fehlerverarbeitung an einer Werkzeugmaschine
WO2021219389A1 (de) Detektieren von störungen in roboteranordnungen
EP3710900B1 (de) Verfahren und system zum vorgeben bzw. lernen eines roboterbefehls
DE102020200122A1 (de) Assistenzsystem und Verfahren zum Betreiben eines Assistenzsystems
AT522639A1 (de) Vorrichtung und Verfahren zum Visualisieren oder Beurteilen eines Prozesszustandes
EP1862901A1 (de) Eingabe von Programm-Anweisungen bei imperativen Programmiersprachen
DE102018216561A1 (de) Verfahren, Vorrichtung und Computerprogramm zum Ermitteln einer Strategie eines Agenten
EP2189908B1 (de) Verfahren und Vorrichtung zum Bestimmen einer Kenngröße eines IT-Systems
DE102019128583B4 (de) Optimierungsmodi für Steuerprogramme eines Robotermanipulators
EP4268162A1 (de) Verfahren und system zum überführen einer start-objektsituation in eine ziel-objektsituation (intuitive tacit solution finding)
EP3710207B1 (de) Qualitätssicherung eines prozesses
DE102018222447A1 (de) Verfahren zum Klassifizieren eines Gebäudes, maschinelles Lernsystem sowie ein Verfahren, ein Computerprogramm und eine Computervorrichtung zum Anlernen des maschinellen Lernsystems
DE102019213676B3 (de) Robotersteuerung
DE102020003526A1 (de) Steuervorrichtung, Steuersystem und Vorrichtung für maschinelles Lernen
DE112022001780T5 (de) Trainings- und Steuervorrichtung, Trainingsvorrichtung, Steuervorrichtung, Trainings- und Steuerverfahren, Trainingsverfahren, Steuerverfahren, Trainings- und Steuerprogramm, Trainingsprogramm und Steuerprogramm

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21709342

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21709342

Country of ref document: EP

Kind code of ref document: A1