WO2021094085A1 - Verfahren zum ausführen einer applikation eines robotersystems - Google Patents
Verfahren zum ausführen einer applikation eines robotersystems Download PDFInfo
- Publication number
- WO2021094085A1 WO2021094085A1 PCT/EP2020/080225 EP2020080225W WO2021094085A1 WO 2021094085 A1 WO2021094085 A1 WO 2021094085A1 EP 2020080225 W EP2020080225 W EP 2020080225W WO 2021094085 A1 WO2021094085 A1 WO 2021094085A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data object
- robot
- object template
- component
- coordinate system
- Prior art date
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1671—Programme 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
Definitions
- the present invention relates to a method for executing an application of a robot system, a system for executing the application according to the method and a computer program product for executing the method.
- Robot systems or (robot) applications carried out by them usually include one or more robots, tools such as grippers, stationary devices such as magazines, in particular dispensers or trays, processing devices, and workpieces.
- a geometry and geometric relationships in the (robot) cell, position and orientation, points to be approached, gripping and manipulation points, security-relevant, geometric properties such as monitoring spaces, shape or interference contours, mechanical properties, in particular masses and mass distributions or centers of mass and / or moments of inertia various functions, programming interfaces, for example for opening / closing a gripper, determining the position of a workpiece in a magazine or the like, behavior such as cyclical monitoring , Configuration and parameterization, a current state, for example a number of workpieces in a magazine, operating interfaces such as, for example, user interfaces for manually opening a gripper or the like can be taken into account, in particular configured.
- the gripping points for removing workpieces from a magazine in the robot application cannot be distinguished from other points that have nothing to do with removing the workpiece, or the I / O configuration for integrating a gripper takes place in the same file as the integration other periphery.
- An object of an embodiment of the present invention is to generally improve the execution of an application of a robot system, preferably to reduce one or more of the aforementioned problems.
- Claims 13, 14 provide a system or computer program product for performing a method described here under protection.
- the subclaims relate to advantageous developments.
- a method for executing, in particular commissioning, an application of a robot system or by or with a robot system comprises the steps:
- At least one first component instance from a first component data object template from the data object template library which has an identification, preferably an (individual) name, and at least one coordinate system.
- one or more robots of the robot system each have a one or more, preferably at least four, in particular at least six, in one embodiment at least seven-axis robot arm, in particular each can be one of these.
- one or more robots of the robot system can each have, in particular be, mobile, SCARA and / or parallel (kinematics) robots.
- a robot data object template of the data object template library is (in each case) assigned to a (type) robot (arm) or a robot instance (in each case) to a specific robot (arm) of the robot system.
- a component within the meaning of the present invention comprises, in one embodiment, a component of the robot system that is not a robot, in one embodiment a tool or workpiece, in particular a robot-guided or fixed or guided, in particular environment-fixed, tool or workpiece or a robot environment device, in one embodiment Magazine, in particular a tray, a store and / or dispenser, a conveying device and / or a fixing, in particular clamping and / or suction device, or the like, it can in particular be such a component (different from a robot).
- component data object templates from the data object template library are assigned to components of the robot system that are not robots, in a further development
- One or more component data object template in particular robot-guided or fixed or environment-guided, in particular environment-fixed, tool (type or type), preferably two or more component data object templates of different tool (type or type) ;
- One or more component data object template in particular robot-guided or fixed or environment-guided, in particular environment-fixed, workpiece (type or type), preferably two or more component data object templates of different workpiece (type or type) ;
- component data object template robot environment device (type or type) s, in one embodiment magazine (type or type) s, in particular storage (type or type) s, Storage (type or type) n and / or dispenser (type or type) n, conveyor device (type or type) s and / or fixing, in particular clamping and / or suction device (type or types, or the like, preferably two or more component data object templates of different (such) robot environment devices (types or types).
- component instances are assigned to specific components of the robot system that are not robots, in a further development
- One or more component instances (each specific), in particular robot-guided or fixed or environmental-guided, in particular environmental-fixed, tools;
- One or more component instances (each specific), in particular robot-guided or fixed or environment-guided, in particular environmentally-fixed, workpieces; and or
- One or more component instances (each specific) robot environment devices, in one embodiment (each specific) magazines, in particular trays, stores and / or dispensers, conveying devices and / or fixing devices, in particular clamping and / or suction devices, or the like.
- a workpiece is an object that is manipulated, in particular gripped, transported and / or processed by a robot of the robot system.
- one or more of the robot environment devices are static devices and / or devices that are not manipulated in the application by a robot of the robot system.
- a (uniform) data object template is / are or is / are each provided for several similar objects of robot systems in the data object template library or this data object template is assigned to these similar objects, in particular therefore
- the second component data object template of a second type or a second type of component and / or
- one or more specific objects of the robot system are or are each assigned a (specific or individual) instance of the data object template that is assigned to this object type or similar objects of this type or type or for them in the Data object template library is or is, in particular
- the method comprises the step:
- Instantiating at least one further robot instance from a further robot data object template from the data object template library which has an identification, preferably an (individual) name, and at least one coordinate system, or from the first robot data object template.
- the method according to one embodiment of the present invention comprises the step:
- Instantiating at least one second component instance from a second component data object template from the data object template library which has an identification, preferably an (individual) name, and at least one coordinate system, or from the first component data object template.
- the method comprises the step:
- Component instances are or will be provided. Additionally or alternatively, for two or more different component types or types of the robot system in each case (type or type) specific component data object templates can be present or provided in the data object template library.
- the method comprises the steps: - Integration of these (robot and component) instances in a scene graph of the robot system, which contains at least one root coordinate system; and
- One embodiment of the present invention is based on the application of object-oriented principles to the domain of robot applications.
- the (robot and components)! nstances (in) object-oriented (er) way integrated into the scene graph.
- the application in particular a program (s) and / or control, of the robot system in one embodiment can advantageously access data from the robot (s) and component (s) of the robot system.
- the execution, in particular the commissioning, of the application, in particular the control of the robot system can be improved in one embodiment.
- controlling also means, in particular, regulating and / or monitoring or outputting a one-dimensional or multi-dimensional (control or monitoring) signal as a function of an (error) state or a deviation of the robot system from a target or target value. Understand reference state.
- one or more of the (robot and components)! nstances, in particular their at least one coordinate system, linked to the root coordinate system of the scene graph, in particular linked to this in terms of programming or kinematics, in particular via (default) a transformation.
- one or more of the (robot and component) entities in particular their at least one coordinate system, is / are or will / will in one embodiment (each) with one or more of the (robot and components)! Instances, in particular each of their at least one coordinate system, linked, in particular in terms of programming or kinematics, in particular via (default) a transformation, linked to this.
- one or more of the (robot and components)! nstance (each) one or more of the (robot and component)! nstance as child (ren), so that this parent-child relationship creates a tree structure or the scene graph has a tree structure, this tree structure in one embodiment forms the scene graph.
- the application engages, in a further development, one or more objects of the robot system, to which instances of the scene graph are preferably assigned, and / or controls for controlling these objects, in particular one or more robot controls and / or one or more robot environment device controls (each ) reading and / or writing to data of the scene graph, in particular its instances, in one execution during the operation of the robot system or the runtime of the application.
- data from at least one instance of the scene graph are changed, in particular updated, on the basis of input signals from the robot system, in particular from an object of the robot system to which this instance of the scene graph is assigned.
- a magazine to which a component instance is assigned can record its fill level and the corresponding data of the corresponding component instance are updated accordingly.
- data from instances of the scene graph or corresponding output signals are output to controls for controlling objects of the robot system, with these objects preferably being assigned instances of the scene graph, in particular to robot and / or robot environment device controls, which in turn are based on this data or output signals control the corresponding objects accordingly.
- a robot can be controlled accordingly on the basis of the corresponding, in particular updated, data of a workpiece, tool and / or a conveyor and / or fixing device.
- first robot data object template and / or the further robot data object template and / or the first component data object template and / or the second component data object template and / or the further one Component data object template (in each case) one or more geometric attributes, in particular one or more dimensions, for example center distances, outer dimensions or the like.
- Component data object template (each) at least one 2D or 3D CAD model.
- at least two geometric attributes of a data object template are linked to one another, in particular in a tree structure and / or in an object-oriented manner.
- a CAD model and dimensions can be linked to one another.
- at least one geometric attribute of a data object template is linked to its at least one coordinate system, in particular in a tree structure and / or in an object-oriented manner.
- a dimension can relate to an origin and / or directions of the coordinate system.
- a movement of the robot system can advantageously be determined by means of data from the scene graph.
- Component data object template (each) one or more mechanical attributes, in particular one or more masses and / or mass distributions, in particular a center of gravity or center of mass and / or a moment of inertia, in particular of one or more parts of the objects to which the data object template is assigned, for example Linking the robot (arms) or the like.
- at least two mechanical attributes of a data object template are linked to one another, in particular in a tree structure and / or in an object-oriented manner.
- a total mass and individual masses can be linked to one another.
- a dynamic of the robot system can advantageously be determined using data from the scene graph.
- Component data object template (in each case) one or more functionalities of the objects to which the data object template is assigned, in particular (in each case) a programming interface and / or implementation of this (respective) functionality.
- a component data object template of a gripper can have the functionality “gripper open / open or closed / close” and have a corresponding programming interface for this purpose, with different implementations being or can be provided for different types of gripper.
- the corresponding object for example a gripper, can advantageously be exchanged or added.
- Component data object template (in each case) one or more user interfaces for operating the objects to which the data object template is assigned by means of an input device, in the aforementioned example for example a user interface for opening / closing a gripper or the like.
- Component data object template (in each case) one or more configuration attributes that are dependent on a configuration of the objects to which the data object template is assigned.
- these configuration attributes form a subtree structure.
- one or more of these status attributes have meta information about their use, for example the physical unit or a flag that indicates whether the attribute value can be edited by the end user at runtime. The meta-information can be used to automatically generate editors in one execution.
- Component data object template (in each case) one or more status attributes that are dependent on a current, variable status of the objects to which the data object template is assigned.
- these status attributes form a subtree structure.
- one or more of these status attributes have meta information about their use, for example the physical unit or a flag that indicates whether the attribute value can be edited by the end user at runtime. The meta-information can be used to automatically generate editors in one execution.
- parameter values for the static configuration of the corresponding object and / or for mapping runtime states such as the current number of workpieces in a magazine can be made available in one embodiment. Due to the hierarchical arrangement and the possibility of also using lists or maps, complex (more) parameter structures can advantageously be represented in one embodiment.
- the first robot data object template and / or the further robot data object template and / or the first component data object template and / or the second component data object template and / or the further component data object template (each) has two or more coordinate systems, with the at least one coordinate system being the root a subtree structure and the other coordinate system (s) form children or branches of this subtree structure.
- the at least one coordinate system being the root a subtree structure and the other coordinate system (s) form children or branches of this subtree structure.
- one or more of the robot data object templates and / or one or more of the component data object templates (each) have a subtree structure, in a development two or more coordinate systems that form a subtree structure, and / or two or more geometric, mechanical and / or state attributes that form a subtree structure.
- the application in particular a program (s) and / or control, of the robot system in one embodiment can be particularly advantageously based on data from the robot (s) and component (s) of the robot system.
- the execution of the application in particular the control of the robot system, can be improved in one embodiment.
- an input device of the robot system is configured on the basis of the scene graph, in particular a user interface of one or more of the instances of the scene graph.
- a user interface for opening / closing a gripper can be configured on a handheld robot operating device.
- At least one of the instances of the scene graph is removed, added or exchanged during a runtime of the application.
- the application in particular a program (s) and / or control, of the robot system can advantageously be modified in one embodiment.
- the execution of the application in particular the control of the robot system, can be improved in one embodiment.
- instantiating comprises selecting a data object template from the data object template library, preferably by means of a graphical user interface, and / or parameterizing the identification and linking of the at least one coordinate system, in a further development additionally parameterizing at least one geometric attribute, at least one mechanical attribute, at least one functionality, at least one user interface, at least one configuration attribute and / or at least one status attribute of the corresponding data object template.
- a particularly kinematic transformation between the root coordinate system of the scene graph and the at least one coordinate system of at least one associated (robot or component) instance is or is specified, in particular during instantiation.
- a, in particular during instantiation a, in particular kinematic, transformation between the at least one coordinate system of at least one of the (robot and components)! nstances and the at least one coordinate system of at least one associated with it (robot and components)! nstances specified.
- a, in particular during instantiation a, in particular kinematic, transformation between the at least one coordinate system of at least one of the (robot and component) instances and at least one further coordinate system of this instance is specified.
- attributes of the corresponding entities can advantageously be aggregated in one embodiment, for example the mass and / or dimension (s) of a robot-guided workpiece with the mass or dimension (s) of a tool or the like that guides it.
- data from at least one of the instances are determined on the basis of a transformation between this instance and at least one other of the instances coupled, in particular linked, of the instances, in particular coordinate systems of these instances, and / or on the basis of data from this at least one other instance .
- a center of gravity distance of a workpiece guided by a tool can be determined on the basis of the center of gravity of the workpiece relative to its coordinate system, the transformation between this coordinate system and a coordinate system of the tool and its dimensions.
- data for at least one combination of (each) at least two coupled, in particular linked, of the instances is accessed, this data for the combinations in each case being based on data of the instances of the (respective) Combination are determined, in particular.
- the (total) mass of this tool-workpiece combination can be calculated by adding the mass of the (known from the corresponding component instance) Tool and the (known from the corresponding component instance)
- the mass of the workpiece is determined and this determined (total) mass can be accessed for controlling the robot.
- the application in particular a program (s) and / or control, of the robot system in one embodiment can be particularly advantageously based on data from the robot (s) and component (s) of the robot system.
- the execution, in particular the commissioning, of the application, in particular the control of the robot system can be improved in one embodiment.
- a system in particular in terms of hardware and / or software, in particular in terms of programming, is set up to carry out a method described here and / or has:
- system or its means has:
- system or its means has:
- At least one input device which is configured on the basis of the scene graph, in particular a user interface of at least one of the instances of the scene graph;
- Means for selecting a data object template from the data object template library in particular by means of a graphical user interface, and / or parameterizing the identification and linking of the at least one coordinate system, in particular in addition to parameterizing at least one geometric attribute, at least one mechanical attribute, at least one functionality, at least one user interface , at least one configuration attribute and / or at least one state attribute of the corresponding data object template during an instantiation;
- a means within the meaning of the present invention can be designed in terms of hardware and / or software, in particular a data or signal-connected, in particular digital, processing, in particular microprocessor unit (CPU), graphics card (GPU), preferably with a memory and / or bus system ) or the like, and / or one or more programs or program modules.
- the processing unit can be designed to process commands that are implemented as a program stored in a memory system, to acquire input signals from a data bus and / or to output output signals to a data bus.
- a storage system can have one or more, in particular different, storage media, in particular optical, magnetic, solid-state and / or other non-volatile media.
- a computer program product can be an, in particular non-volatile, storage medium for storing a program or with a program thereon have stored program, in particular, wherein the execution of this program causes a system or a controller, in particular a computer, to execute a method described here or one or more of its steps.
- one or more, in particular all, steps of the method are carried out completely or partially in an automated manner, in particular by the system or its means.
- the system has the robot system, in one embodiment the system is the robot system.
- the or one or more of the robot templates and / or the or one or more of the component data object templates are created, preferably in an engineering environment, and included in the data object template library. Equally, (only) an already existing data object template library can also be used or, if necessary, supplemented by further robot and / or component data object templates.
- the or at least one robot of the robot system is used to determine data or attributes of one or more of the robot and / or component instances, for example to measure a TCP transformation or to determine the load data of a tool.
- FIG. 1 shows a robot system according to an embodiment of the present invention.
- FIG. 1 shows a robot system according to an embodiment of the present invention in the form of a cell with a robot arm 1, a cell or robot controller 2, a handheld control unit 3, a robot-guided tool in the form of a gripper 4, a workpiece 5, a conveyor 6 and a magazine 7.
- FIG. 2 shows a method for executing an application of the robot system according to an embodiment of the present invention.
- the robot arm 1 takes, for example, workpieces 5 from the conveyor 6 and deposits them in the magazine 7 or, conversely, removes workpieces 5 from the magazine 7 and deposits them on the conveyor 6.
- a step S10 specific instances for the robot arm 1, the gripper 4, the workpiece 5, the conveyor 6 and the magazine 7 are generated from existing robot data object templates and component data object templates from a data object template library and inserted into a scene graph in a step S20.
- Each data object template can be instantiated as often as required in order to generate several instances of the same type. All properties of the instances can then be modified individually.
- the scene graph now represents a model of all objects that are important in the specific robot system.
- the system software in particular the cell or robot controller 2 or its software, thus has a comprehensive view of all properties of all objects and can use this information in a variety of ways, for example:
- the system can e.g. B. automatically calculate the resulting load data from a tool and a gripped workpiece without the user being confronted with it.
- the geometric parameters of the safety configuration eg work and protection rooms, monitoring areas on tools and workpieces, positions for speed monitoring, etc.
- the geometric parameters of the safety configuration can be read from the scene graph.
- All properties of all instances in the scene graph are made accessible to the robot application through a corresponding programming interface (API).
- the robot application can not only read the properties, but also change them.
- the parameters of the instances can be used to map the states of the objects or to save process results (e.g. after a measured value has been determined by the robot application).
- the command “gripper.open ()” opens gripper 4.
- the abstraction allows the gripper and thus its concrete implementation of the “open ()” function to be exchanged without having to modify the robot application.
- the controller 2 controls the robot system in a step S30 to execute the application on the basis of data from robot system objects of the scene graph.
- a component data object template for a specific gripper type was created by the manufacturer of the gripper and delivered as part of a toolbox.
- the customer has installed the data object template in his data object template library to create a robot application.
- the gripper is now commissioned by the customer dragging the component data object template into the display of the scene graph and placing it on the flange of the robot:
- the gripper is basically put into operation because all relevant aspects are modeled by the corresponding component instance:
- the component data object template or the component instance provides an abstract programming interface for controlling the gripper by the robot application
- the component data object template brings with it a user interface (Ul) which is displayed on the handheld control unit 3 and allows the user to manually open and close the gripper 4.
- Ul user interface
- the magazine 7 is modeled by a component instance in the scene graph as follows:
- a magazine coordinate system defines the position of the magazine in the system
- an abstract programming interface provides a function for gripping the next component by a given gripper. Its implementation uses the special geometric properties of the magazine to realize the robot movements to approach and grasp the component
- the robot is a six-axis articulated arm (robot).
- robot is a six-axis articulated arm (robot).
- other, in particular mobile, SCARA and / or parallel (kinematics) robots can also be used.
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
Ein erfindungsgemäßes Verfahren zum Ausführen, insbesondere Inbetriebnehmen, einer Applikation eines Robotersystems, weist die Schritte: - Instanzieren (S10) wenigstens einer ersten Roboterinstanz aus einem ersten Roboterdatenobjekttemplate aus einer Datenobjekttemplatebibliothek, welches - eine Identifikation; und - wenigstens ein Koordinatensystem; aufweist; - Instanzieren (S10) wenigstens einer ersten Komponenteninstanz aus einem ersten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches - eine Identifikation; und - wenigstens ein Koordinatensystem aufweist; wenigstens einen der Schritte: Instanzieren (S10) wenigstens einer zweiten Komponenteninstanz aus dem ersten Komponentendatenobjekttemplate oder einem zweiten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches - eine Identifikation; und - wenigstens ein Koordinatensystem aufweist; und/oder - Instanzieren wenigstens einer weiteren Roboterinstanz aus dem ersten Roboterdatenobjekttemplate oder einem weiteren Roboterdatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches - eine Identifikation; und - wenigstens ein Koordinatensystem; aufweist; und die Schritte auf: Einbinden (S20) dieser Instanzen in einen Szenengraph des Robotersystems, welcher wenigstens ein Wurzel-Koordinatensystem enthält; und - Steuern (S30) des Robotersystems zum Ausführen der Applikation auf Basis von Daten des Szenengraphs.
Description
Beschreibung
Verfahren zum Ausführen einer Applikation eines Robotersystems
Die vorliegende Erfindung betrifft ein Verfahren zum Ausführen einer Applikation eines Robotersystems, ein System zum Ausführen der Applikation nach dem Verfahren sowie ein Computerprogrammprodukt zur Durchführung des Verfahrens.
Robotersysteme bzw. durch diese ausgeführte (Roboter)Applikationen umfassen üblicherweise einen oder mehrere Roboter, Werkzeuge wie zum Beispiel Greifer, stationäre Vorrichtungen wie zum Beispiel Magazine, insbesondere Spender oder Ablagen, Verarbeitungseinrichtungen, sowie Werkstücke.
Bei der Ausführung, insbesondere Integration, der Applikationen müssen häufig eine Geometrie und geometrische Beziehungen in der (Roboter)Zelle, Position und Orientierung, anzufahrende Punkte, Greif- und Manipulationspunkte, sicherheitsrelevante, geometrische Eigenschaften wie zum Beispiel Überwachungsräume, Form- bzw. Störkonturen, mechanische Eigenschaften, insbesondere Massen und Massenverteilungen bzw. Massenschwerpunkte und/oder Trägheitsmomente, verschiedene Funktion(alität)en, Programmierschnittstellen zum Beispiel zum Öffnen/Schließen eines Greifers, Ermittlung der Position eines Werkstücks in einem Magazin oder dergleichen, ein Verhalten wie zum Beispiel zyklische Überwachungen, Konfiguration und Parametrierung, ein aktueller Zustand, beispielsweise eine Anzahl von Werkstücken in einem Magazin, Bedienschnittstellen wie zum Beispiel Benutzerschnittstellen zum manuellen Öffnen eines Greifers oder dergleichen berücksichtigt, insbesondere konfiguriert werden.
Bisher erfolgt die Inbetriebnahme, insbesondere Konfiguration, der verschiedenen Aspekte an unterschiedlichen Stellen und auf unterschiedliche Weise. Dabei vermischt sich üblicherweise die Behandlung von Aspekten, die zu einem bestimmten Objekt (zum Beispiel einem Roboter, Werkzeug, Werkstück oder einer stationären Vorrichtung) gehören, mit der Behandlung jener Aspekte, die nicht dazu gehören.
Dies ist oft dem Vorgehen geschuldet, dass alle Daten einer Kategorie (z.B. anzufahrende Punkte) zusammen in einer Datei stehen und nicht unterscheidbar sind. Selbst wenn die Behandlung eines Aspekts Modularität erlaubt (z.B. durch die
Möglichkeit, die Daten auf mehrere Dateien aufzuteilen), ist nicht erkennbar, welche Daten betroffen sind, wenn ein Objekt der Roboterapplikation durch ein anderes ersetzt werden soll.
So sind zum Beispiel die Greifpunkte für die Entnahme von Werkstücken aus einem Magazin in der Roboterapplikation nicht von anderen Punkten unterscheidbar, die nichts mit der Werkstückentnahme zu tun haben, oder die I/O-Konfiguration zur Integration eines Greifers erfolgt in derselben Datei wie die Integration anderer Peripherie.
Diese Vermischung führt insbesondere dazu, dass der Austausch eines Objekts aufwändig und schwierig ist. Des Weiteren können ermittelte Daten (z.B. die Greifpunkte eines Magazins) nicht einfach in anderen Applikationen wiederverwendet werden.
Eine Aufgabe einer Ausführung der vorliegenden Erfindung ist es, das Ausführen einer Applikation eines Robotersystems allgemein zu verbessern, vorzugsweise eines oder mehrere der vorgenannten Probleme zu reduzieren.
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Ansprüche 13, 14 stellen ein System bzw. Computerprogrammprodukt zur Durchführung eines hier beschriebenen Verfahrens unter Schutz. Die Unteransprüche betreffen vorteilhafte Weiterbildungen.
Nach einer Ausführung der vorliegenden Erfindung umfasst ein Verfahren zum Ausführen, insbesondere Inbetriebnehmen, einer Applikation eines Robotersystems bzw. durch bzw. mit ein(em) Robotersystem, die Schritte:
- Instanzieren wenigstens einer ersten Roboterinstanz aus einem ersten Roboterdatenobjekttemplate aus einer Datenobjekttemplatebibliothek, welches eine Identifikation, vorzugsweise einen (individuellen) Namen, und wenigstens ein Koordinatensystem aufweist; und
- Instanzieren wenigstens einer ersten Komponenteninstanz aus einem ersten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches eine Identifikation, vorzugsweise einen (individuellen) Namen, und wenigstens ein Koordinatensystem aufweist.
Ein oder mehrere Roboter des Robotersystems weisen in einer Ausführung jeweils einen ein- oder mehr-, vorzugsweise wenigstens vier-, insbesondere wenigstens sechs-, in einer Ausführung wenigstens siebenachsigen, Roboterarm auf, können insbesondere jeweils ein solcher sein. In einer Ausführung können ein oder mehrere Roboter des Robotersystems jeweils mobile, SCARA- und/oder Parallel(kinematik)roboter aufweisen, insbesondere sein.
In einer Ausführung ist bzw. wird ein Roboterdatenobjekttemplate der Datenobjekttemplatebibliothek (jeweils) einem (Typ) Roboter(arm) zugeordnet bzw. eine Roboterinstanz (jeweils) einem konkreten Roboter(arm) des Robotersystems.
Eine Komponente im Sinne der vorliegenden Erfindung umfasst in einer Ausführung eine Komponente des Robotersystems, die kein Roboter ist, in einer Weiterbildung ein, insbesondere robotergeführtes bzw. -festes oder umgebungsseitig geführtes, insbesondere umgebungsfestes, Werkzeug oder Werkstück oder eine Roboterumgebungseinrichtung, in einer Ausführung ein Magazin, insbesondere eine Ablage, einen Speicher und/oder Spender, eine Fördereinrichtung und/oder eine Fixier-, insbesondere Spann- und/oder Saugeinrichtung, oder dergleichen, sie kann insbesondere eine solche (von einem Roboter verschiedene) Komponente sein.
Entsprechend sind in einer Ausführung Komponentendatenobjekttemplates aus der Datenobjekttemplatebibliothek, vorzugsweise verschieden(artig)en, Komponenten des Robotersystems, die kein Roboter sind, zugeordnet, in einer Weiterbildung
- ein oder mehrere Komponentendatenobjekttemplate(s jeweils), insbesondere robotergeführten bzw. -festen oder umgebungsseitig geführten, insbesondere umgebungsfesten, Werkzeug(typ- bzw. -art)en, vorzugsweise zwei oder mehr Komponentendatenobjekttemplates verschiedenen Werkzeug(typ- bzw. -art)en;
- ein oder mehrere Komponentendatenobjekttemplate(s jeweils), insbesondere robotergeführten bzw. -festen oder umgebungsseitig geführten, insbesondere umgebungsfesten, Werkstück(typ- bzw. -art)en, vorzugsweise zwei oder mehr Komponentendatenobjekttemplates verschiedenen Werkstück(typ- bzw. -art)en; und/oder
- ein oder mehrere Komponentendatenobjekttemplate(s jeweils) Roboterumgebungseinrichtung(styp- bzw. -art)en, in einer Ausführung Magazin(typ- bzw. -art)en, insbesondere Ablage(typ- bzw. -art)n,
Speicher(typ- bzw. -art)n und/oder Spender(typ- bzw. -art)n, Fördereinrichtung(styp- bzw. -art)en und/oder Fixier-, insbesondere Spann- und/oder Saugeinrichtung(styp- bzw. -art)en, oder dergleichen, vorzugsweise zwei oder mehr Komponentendatenobjekttemplates verschiedenen (solcher) Roboterumgebungseinrichtung(styp- bzw. -art)en.
Entsprechend sind bzw. werden in einer Ausführung Komponenteninstanzen (jeweils) konkreten Komponenten des Robotersystems, die kein Roboter sind, zugeordnet, in einer Weiterbildung
- ein oder mehrere Komponenteninstanzen (jeweils konkreten), insbesondere robotergeführten bzw. -festen oder umgebungsseitig geführten, insbesondere umgebungsfesten, Werkzeugen;
- ein oder mehrere Komponenteninstanzen (jeweils konkreten), insbesondere robotergeführten bzw. -festen oder umgebungsseitig geführten, insbesondere umgebungsfesten, Werkstücken; und/oder
- ein oder mehrere Komponenteninstanzen (jeweils konkreten) Roboterumgebungseinrichtungen, in einer Ausführung (jeweils konkreten) Magazinen, insbesondere Ablagen, Speichern und/oder Spendern, Fördereinrichtungen und/oder Fixier-, insbesondere Spann- und/oder Saugeinrichtungen, oder dergleichen.
Dabei ist ein Werkstück in einer Ausführung ein Gegenstand bzw. Objekt, der bzw. das durch einen Roboter des Robotersystems manipuliert, insbesondere gegriffen, transportiert und/oder bearbeitet, wird. Eine oder mehrere der Roboterumgebungseinrichtungen sind in einer Ausführung statische Einrichtungen und/oder Einrichtungen, die in der Applikation nicht durch einen Roboter des Robotersystems manipuliert werden.
Somit wird/werden bzw. ist/sind in einer Ausführung für mehrere gleichartige Objekte von Robotersystemen jeweils ein (einheitliches) Datenobjekttemplate in der Datenobjekttemplatebibliothek vorgesehen bzw. dieses Datenobjekttemplate diesen gleichartigen Objekten zugeordnet, insbesondere also
- das erste Roboterdatenobjekttemplate einer ersten Art bzw. einem ersten Typ Roboter,
- das weitere Roboterdatenobjekttemplate einer weiteren Art bzw. einem weiteren Typ Roboter,
- das erste Komponentendatenobjekttemplate einer ersten Art bzw. einem ersten Typ Komponente,
- das zweite Komponentendatenobjekttemplate einer zweiten Art bzw. einem zweiten Typ Komponente, und/oder
- das weitere Komponentendatenobjekttemplate einer weiteren Art bzw. einem weiteren Typ Komponente.
Zusätzlich oder alternativ werden bzw. sind in einer Ausführung einem oder mehreren konkreten Objekten des Robotersystems jeweils eine (konkrete bzw. individuelle) Instanz desjenigen Datenobjekttemplates zugeordnet, das dieser Objektart bzw. gleichartigen Objekten dieser Art bzw. dieses Typs zugeordnet bzw. für diese in der Datenobjekttemplatebibliothek vorgesehen ist bzw. wird, insbesondere also
- einem ersten konkreten Roboter des Robotersystems die erste Roboterinstanz,
- einem weiteren konkreten Roboter des Robotersystems die weitere Roboterinstanz,
- einer ersten konkreten Komponente des Robotersystems die erste Komponenteninstanz,
- einer zweiten konkreten Komponente des Robotersystems die zweite Komponenteninstanz, und/oder
- einer weiteren konkreten Komponente des Robotersystems die weitere Komponenteninstanz.
Nach einer Ausführung der vorliegenden Erfindung umfasst das Verfahren den Schritt:
- Instanzieren wenigstens einer weiteren Roboterinstanz aus einem weiteren Roboterdatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches eine Identifikation, vorzugsweise einen (individuellen) Namen, und wenigstens ein Koordinatensystem aufweist, oder aus dem ersten Roboterdatenobjekttemplate.
Insbesondere können also für zwei oder mehr, vorzugsweise typ- bzw. baugleiche, Roboter des Robotersystems aus demselben Roboterdatenobjekttemplate, welches diesem Robotertyp bzw. diesen Robotern zugeordnet ist, jeweils eigene, insbesondere durch ihre Identifikation individualisierte, Roboterinstanzen vorgesehen
sein bzw. werden. Zusätzlich oder alternativ können für zwei oder mehr unterschiedliche Robotertypen bzw. -bauarten des Robotersystems jeweils (typ)spezifische Roboterdatenobjekttemplates in der Datenobjekttemplatebibliothek vorhanden bzw. vorgesehen sein bzw. werden.
Zusätzlich oder alternativ zu einem Instanzieren wenigstens einer weiteren Roboterinstanz umfasst das Verfahren nach einer Ausführung der vorliegenden Erfindung den Schritt:
- Instanzieren wenigstens einer zweiten Komponenteninstanz aus einem zweiten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches eine Identifikation, vorzugsweise einen (individuellen) Namen, und wenigstens ein Koordinatensystem aufweist, oder aus dem ersten Komponentendatenobjekttemplate.
In einer Weiterbildung insbesondere dieser Ausführung umfasst das Verfahren den Schritt:
- Instanzieren wenigstens einer weiteren Komponenteninstanz aus dem ersten Komponentendatenobjekttemplate oder aus dem zweiten Komponentendatenobjekttemplate oder aus einem hiervon verschiedenen weiteren Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches seinerseits eine Identifikation, vorzugsweise einen (individuellen) Namen, und wenigstens ein Koordinatensystem aufweist.
Insbesondere können also für zwei oder mehr, vorzugsweise typ- bzw. baugleiche, Komponenten des Robotersystems aus demselben Komponentendatenobjekttemplate, welches diesem Komponententyp bzw. diesen Komponenten zugeordnet ist, jeweils eigene, insbesondere durch ihre Identifikation individualisierte,
Komponenteninstanzen vorgesehen sein bzw. werden. Zusätzlich oder alternativ können für zwei oder mehr unterschiedliche Komponententypen bzw. -arten des Robotersystems jeweils (typ- bzw. art)spezifische Komponentendatenobjekttemplates in der Datenobjekttemplatebibliothek vorhanden bzw. vorgesehen sein bzw. werden.
Nach einer Ausführung der vorliegenden Erfindung umfasst das Verfahren die Schritte:
- Einbinden dieser (Roboter- und Komponenten)lnstanzen in einen Szenengraph des Robotersystems, welcher wenigstens ein Wurzel-Koordinatensystem enthält; und
- Steuern des Robotersystems zum Ausführen der Applikation auf Basis von Daten des Szenengraphs, insbesondere von Daten der (Roboter- und Komponenten)! nstanzen des Szenengraphs.
Eine Ausführung der vorliegenden Erfindung beruht auf der Anwendung objektorientierter Prinzipien auf die Domäne der Roboterapplikationen. Entsprechend sind bzw. werden in einer Ausführung die (Roboter- und Komponenten)! nstanzen (in) objektorientiert(er Weise) in den Szenengraph eingebunden.
Hierdurch kann die Applikation, insbesondere ein(e) Programm(ierung) und/oder Steuerung, des Robotersystems in einer Ausführung vorteilhaft auf Daten von Roboter(n) und Komponente(n) des Robotersystems zugreifen. Dadurch kann in einer Ausführung das Ausführen, insbesondere Inbetriebnehmen, der Applikation, insbesondere das Steuern des Robotersystems, verbessert werden.
Unter einem Steuern wird vorliegend insbesondere auch ein Regeln und/oder ein Überwachen bzw. Ausgeben eines ein- oder mehrdimensionalen (Steuer- bzw. Überwachungs)Signals in Abhängigkeit von einem (Fehler)Zustand bzw. einer Abweichung des Robotersystems von einem Soll- bzw. Referenzzustand verstanden.
In einer Ausführung ist/sind bzw. wird/werden eine oder mehrere der (Roboter- und Komponenten)! nstanzen, insbesondere jeweils deren wenigstens eines Koordinatensystem, mit dem Wurzel-Koordinatensystem des Szenengraphs verknüpft, insbesondere programmtechnisch bzw. kinematisch, insbesondere über (Vorgabe) eine(r) Transformation, an dieses angebunden.
Zusätzlich oder alternativ ist/sind bzw. wird/werden in einer Ausführung eine oder mehrere der (Roboter- und Komponenten)lnstanzen, insbesondere jeweils deren wenigstens eines Koordinatensystem, (jeweils) mit einer oder mehreren weiteren der (Roboter- und Komponenten)! nstanzen, insbesondere jeweils deren wenigstens eines Koordinatensystem, verknüpft, insbesondere programmtechnisch bzw. kinematisch, insbesondere über (Vorgabe) eine(r) Transformation, an dieses angebunden.
In einer Ausführung weisen somit ein oder mehrere der (Roboter- und Komponenten)! nstanzen (jeweils) ein oder mehrere weitere der (Roboter- und Komponenten)! nstanzen als Kind(er) auf, so dass durch diese Eltern-Kind-Beziehung eine Baumstruktur entsteht bzw. der Szenengraph eine Baumstruktur aufweist, diese Baumstruktur in einer Ausführung den Szenengraphen bildet.
In einer Ausführung greift die Applikation, in einer Weiterbildung ein oder mehrere Objekte des Robotersystems, denen vorzugsweise Instanzen des Szenengraphs zugeordnet sind, und/oder Steuerungen zum Steuern dieser Objekte, insbesondere also eine oder mehrere Robotersteuerungen und/oder eine oder mehrere Roboterumgebungseinrichtungssteuerungen, (jeweils) lesend und/oder schreibend auf Daten des Szenengraphs, insbesondere seiner Instanzen, zu, in einer Ausführung während des Betriebs des Robotersystems bzw. der Laufzeit der Applikation.
In einer Weiterbildung werden Daten von wenigstens einer Instanz des Szenengraphs auf Basis von Eingangssignalen des Robotersystems, insbesondere von einem Objekt des Robotersystems, dem diese Instanz des Szenengraphs zugeordnet ist, verändert, insbesondere aktualisiert. Beispielsweise kann ein Magazin, dem eine Komponenteninstanz zugeordnet ist, seinen Füllstand erfassen und die entsprechenden Daten der entsprechenden Komponenteninstanz werden entsprechend aktualisiert.
Zusätzlich oder alternativ werden in einer Weiterbildung Daten von Instanzen des Szenengraphs bzw. entsprechende Ausgangssignale an Steuerungen zum Steuern von Objekten des Robotersystems ausgegeben, wobei diesen Objekten vorzugsweise Instanzen des Szenengraphs zugeordnet sind, insbesondere also an Roboter- und/oder Roboterumgebungseinrichtungssteuerungen, die ihrerseits auf Basis dieser Daten bzw. Ausgangssignale die entsprechenden Objekte entsprechend steuern. Beispielsweise kann ein Roboter auf Basis der entsprechenden, insbesondere aktualisierten, Daten eines Werkstücks, -zeugs und/oder einer Förder- und/oder Fixiereinrichtung entsprechend gesteuert werden.
In einer Ausführung weist das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere
Komponentendatenobjekttemplate (jeweils) ein oder mehrere geometrische Attribute, insbesondere eine oder mehrere Abmessungen, beispielsweise Achsabstände, Außenabmessungen oder dergleichen auf. In einer Ausführung weist das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere
Komponentendatenobjekttemplate (jeweils) wenigstens ein 2D- oder 3D-CAD-Modell auf. In einer Ausführung sind wenigstens zwei geometrische Attribute eines Datenobjekttemplates miteinander, insbesondere in einer Baumstruktur und/oder objektorientiert, verknüpft. Beispielsweise können ein CAD-Modell und Abmessungen miteinander verknüpft sein. Zusätzlich oder alternativ ist in einer Ausführung wenigstens ein geometrisches Attribut eines Datenobjekttemplates mit dessen wenigstens einem Koordinatensystem, insbesondere in einer Baumstruktur und/oder objektorientiert, verknüpft. Beispielsweise kann eine Abmessung sich auf einen Ursprung und/oder Richtungen des Koordinatensystems beziehen. Hierdurch kann in einer Ausführung mittels Daten des Szenengraphs eine Bewegung des Robotersystems vorteilhaft ermittelt werden.
Zusätzlich oder alternativ weist in einer Ausführung das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere
Komponentendatenobjekttemplate (jeweils) ein oder mehrere mechanische Attribute, insbesondere eine oder mehrere Massen und/oder Massenverteilungen, insbesondere einen Schwer- bzw. Massenmittelpunkt und/oder ein Trägheitsmoment auf, insbesondere von einem oder mehreren Teilen der Objekte, denen das Datenobjekttemplate zugeordnet ist, beispielsweise Gliedern des Roboter(arms) oder dergleichen. In einer Ausführung sind wenigstens zwei mechanische Attribute eines Datenobjekttemplates miteinander, insbesondere in einer Baumstruktur und/oder objektorientiert, verknüpft. Beispielsweise können eine Gesamtmasse und Einzelmassen miteinander verknüpft sein. Hierdurch kann in einer Ausführung mittels Daten des Szenengraphs eine Dynamik des Robotersystems vorteilhaft ermittelt werden.
Zusätzlich oder alternativ weist in einer Ausführung das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere
Komponentendatenobjekttemplate (jeweils) eine oder mehrere Funktionalitäten der Objekte, denen das Datenobjekttemplate zugeordnet ist, insbesondere (jeweils) eine Programmierschnittstelle und/oder Implementierung dieser (jeweiligen) Funktionalität auf. Beispielsweise kann ein Komponentendatenobjekttemplate eines Greifers die Funktionalität „Greifer offen/öffnen bzw. geschlossen/schließen“ aufweisen und hierzu eine entsprechende Programmierschnittstelle aufweisen, wobei für unterschiedliche Greiferarten unterschiedliche Implementierungen vorgesehen sein bzw. werden können. Hierdurch kann in einer Ausführung das entsprechende Objekt, beispielsweise ein Greifer, vorteilhaft ausgetauscht oder hinzugefügt werden.
Zusätzlich oder alternativ weist in einer Ausführung das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere
Komponentendatenobjekttemplate (jeweils) eine oder mehrere Benutzerschnittstellen zum Bedienen der Objekte, denen das Datenobjekttemplate zugeordnet ist, mittels eines Eingabegeräts auf, im vorgenannten Beispiel etwa eine Benutzerschnittstelle zum Öffnen/Schließen eines Greifers oder dergleichen.
Zusätzlich oder alternativ weist in einer Ausführung das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere
Komponentendatenobjekttemplate (jeweils) ein oder mehrere von einer Konfiguration der Objekte, denen das Datenobjekttemplate zugeordnet ist, abhängige Konfiguration-Attribute auf. In einer Ausführung bilden diese Konfiguration-Attribute eine Sub-Baumstruktur. Zusätzlich oder alternativ weisen ein oder mehrere dieser Zustands-Attribute Meta-Informationen über ihre Verwendung auf, beispielsweise die physikalische Einheit oder ein Flag, der anzeigt, ob der Attributwert vom Endanwender zur Laufzeit editiert werden kann. Durch die Meta-Informationen können in einer Ausführung automatisch Editoren generiert werden.
Zusätzlich oder alternativ weist in einer Ausführung das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere
Komponentendatenobjekttemplate (jeweils) ein oder mehrere von einem aktuellen, variablen Zustand der Objekte, denen das Datenobjekttemplate zugeordnet ist, abhängige Zustands-Attribute auf. In einer Ausführung bilden diese Zustands-Attribute eine Sub-Baumstruktur. Zusätzlich oder alternativ weisen ein oder mehrere dieser Zustands-Attribute Meta-Informationen über ihre Verwendung auf, beispielsweise die physikalische Einheit oder ein Flag, der anzeigt, ob der Attributwert vom Endanwender zur Laufzeit editiert werden kann. Durch die Meta-Informationen können in einer Ausführung automatisch Editoren generiert werden.
Hierdurch können in einer Ausführung Parameterwerte für die statische Konfiguration des entsprechenden Objekts und/oder zur Abbildung von Laufzeit-Zuständen wie z.B. der aktuellen Anzahl der Werkstücke in einem Magazin zur Verfügung gestellt werden. Durch die hierarchische Anordnung und die Möglichkeit, auch Listen oder Maps zu verwenden, lassen sich in einer Ausführung vorteilhaft komplexe(re) Parameterstrukturen abbilden.
In einer Ausführung weist das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere Komponentendatenobjekttemplate (jeweils) zwei oder mehr Koordinatensysteme auf, wobei in einer Weiterbildung das wenigstens eine Koordinatensystem die Wurzel einer Sub-Baumstruktur und das und die weitere(n) Koordinatensystem (e) Kinder bzw. Zweige dieser Sub-Baumstruktur bilden. Hierdurch können in einer Ausführung komplexe(re) Objekte und vorzugsweise Objekte mit mehreren gegeneinander beweglichen Teilen vorteilhaft abgebildet werden.
Allgemein weisen in einer Ausführung ein oder mehrere der Roboterdatenobjekttemplates und/oder ein oder mehrere der Komponentendatenobjekttemplates (jeweils) eine Sub-Baumstruktur, in einer Weiterbildung zwei oder mehr Koordinatensysteme, die eine Sub-Baumstruktur bilden,
und/oder zwei oder mehr geometrische, mechanische und/oder Zustands-Attribute, die eine Sub-Baumstruktur bilden, auf.
Hierdurch, insbesondere die Kombination von zwei oder mehr der vorgenannten Merkmale, kann die Applikation, insbesondere ein(e) Programm(ierung) und/oder Steuerung, des Robotersystems in einer Ausführung besonders vorteilhaft auf Daten von Roboter(n) und Komponente(n) des Robotersystems zugreifen. Dadurch kann in einer Ausführung das Ausführen der Applikation, insbesondere das Steuern des Robotersystems, verbessert werden.
In einer Ausführung ist bzw. wird ein Eingabegerät des Robotersystems auf Basis des Szenengraphs, insbesondere einer Benutzerschnittstelle einer oder mehrerer der Instanzen des Szenengraphs, konfiguriert. Wie vorstehend beschrieben kann beispielsweise eine Benutzerschnittstelle zum Öffnen/Schließen eines Greifers auf einem Roboterbedienhandgerät konfiguriert werden bzw. sein. Dadurch kann in einer Ausführung das Ausführen der Applikation, insbesondere das Steuern des Robotersystems, verbessert werden.
In einer Ausführung wird wenigstens eine der Instanzen des Szenengraphs während einer Laufzeit der Applikation entfernt, hinzugefügt oder ausgetauscht. Hierdurch kann die Applikation, insbesondere ein(e) Programm(ierung) und/oder Steuerung, des Robotersystems in einer Ausführung vorteilhaft modifiziert werden. Dadurch kann in einer Ausführung das Ausführen der Applikation, insbesondere das Steuern des Robotersystems, verbessert werden.
In einer Ausführung umfasst ein Instanzieren ein Auswählen eines Datenobjekttemplates aus der Datenobjekttemplatebibliothek, vorzugsweise mittels einer graphischen Benutzeroberfläche, und/oder ein Parametrieren der Identifikation und Anbinden des wenigstens einen Koordinatensystems, in einer Weiterbildung zusätzlich ein Parametrieren wenigstens eines geometrischen Attributs, wenigstens eines mechanischen Attributs, wenigstens einer Funktionalität, wenigstens einer Benutzerschnittstelle, wenigstens eines Konfiguration-Attributs und/oder wenigstens eines Zustands-Attributs, des entsprechenden Datenobjekttemplates.
In einer Ausführung ist bzw. wird, insbesondere beim Instanzieren, eine, insbesondere kinematische, Transformation zwischen dem Wurzel-Koordinatensystem des Szenengraphs und dem wenigstens einen Koordinatensystem wenigstens einer damit verknüpften (Roboter- oder Komponenten)lnstanz vorgegeben. Zusätzlich oder alternativ ist bzw. wird in einer Ausführung, insbesondere beim Instanzieren, eine, insbesondere kinematische, Transformation zwischen dem wenigstens einen Koordinatensystem wenigstens einer der (Roboter- und Komponenten)! nstanzen und dem wenigstens einen Koordinatensystem wenigstens einer damit verknüpften der (Roboter- und Komponenten)! nstanzen vorgegeben. Zusätzlich oder alternativ ist bzw. wird in einer Ausführung, insbesondere beim Instanzieren, eine, insbesondere kinematische, Transformation zwischen dem wenigstens einen Koordinatensystem wenigstens einer der (Roboter- und Komponenten)lnstanzen und wenigstens einem weiteren Koordinatensystem dieser Instanz vorgegeben. Hierdurch können in einer Ausführung Attribute der entsprechenden Instanzen vorteilhaft aggregiert werden, beispielsweise die Masse und/oder Abmessung(en) eines robotergeführten Werkstücks mit der Masse bzw. Abmessung(en) eines dieses führenden Werkzeugs oder dergleichen.
Allgemein werden in einer Ausführung Daten von wenigstens einer der Instanzen auf Basis von einer Transformation zwischen dieser Instanz und wenigstens einer anderen damit gekoppelten, insbesondere verknüpften, der Instanzen, insbesondere Koordinatensystemen dieser Instanzen, und/oder auf Basis von Daten dieser wenigstens einer anderen Instanz ermittelt. So kann beispielsweise ein Schwerpunktabstand eines durch ein Werkzeug geführten Werkstücks auf Basis der Schwerpunktlage des Werkstücks relativ zu seinem Koordinatensystem, der T ransformation zwischen diesem Koordinatensystemen und einem Koordinatensystem des Werkzeugs und dessen Abmessungen ermittelt werden.
In einer Ausführung wird zum Steuern, insbesondere lesend, auf Daten für wenigstens eine Kombination aus (je) wenigstens zwei miteinander gekoppelten, insbesondere verknüpften, der Instanzen zugegriffen, wobei diese Daten für die Kombinationen jeweils) auf Basis von Daten der Instanzen der (jeweiligen) Kombination ermittelt sind, insbesondere werden. So kann beispielsweise für ein durch ein Werkzeug geführten Werkstücks die (Gesamt)Masse dieser Werkzeug-Werkstück-Kombination durch Addition der (aus der entsprechenden Komponenteninstanz bekannten) Masse des
Werkzeugs und der (aus der entsprechenden Komponenteninstanz bekannten)
Masse des Werkstücks ermittelt und für die Steuerung des Roboters auf diese ermittelte (Gesamt)Masse zugegriffen werden.
Hierdurch, insbesondere die Kombination von zwei oder mehr der vorgenannten Merkmale, kann die Applikation, insbesondere ein(e) Programm(ierung) und/oder Steuerung, des Robotersystems in einer Ausführung besonders vorteilhaft auf Daten von Roboter(n) und Komponente(n) des Robotersystems zugreifen. Dadurch kann in einer Ausführung das Ausführen, insbesondere Inbetriebnehmen, der Applikation, insbesondere das Steuern des Robotersystems, verbessert werden.
Nach einer Ausführung der vorliegenden Erfindung ist ein System, insbesondere hard- und/oder Software-, insbesondere programmtechnisch, zur Durchführung eines hier beschriebenen Verfahrens eingerichtet und/oder weist auf:
- Mittel zum Instanzieren wenigstens einer ersten Roboterinstanz aus einem ersten Roboterdatenobjekttemplate aus einer Datenobjekttemplatebibliothek, welches
- eine Identifikation; und
- wenigstens ein Koordinatensystem; aufweist;
- Mittel zum Instanzieren wenigstens einer ersten Komponenteninstanz aus einem ersten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches
- eine Identifikation; und
- wenigstens ein Koordinatensystem aufweist;
- Mittel zum
- Instanzieren wenigstens einer weiteren Roboterinstanz aus dem ersten Roboterdatenobjekttemplate oder einem weiteren Roboterdatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches eine Identifikation und wenigstens ein Koordinatensystem aufweist; und/oder
- Instanzieren wenigstens einer zweiten Komponenteninstanz aus dem ersten Komponentendatenobjekttemplate oder einem zweiten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches eine Identifikation und wenigstens ein Koordinatensystem aufweist;
- Mittel zum Einbinden dieser Instanzen in einen Szenengraph des Robotersystems, welcher wenigstens ein Wurzel-Koordinatensystem enthält; und
- Mittel zum Steuern des Robotersystems zum Ausführen der Applikation auf Basis von Daten des Szenengraphs, insbesondere von Daten der (Roboter- und Komponenten)! nstanzen des Szenengraphs.
In einer Ausführung weist das System bzw. sein(e) Mittel auf:
- Mittel zum Instanzieren wenigstens einer weiteren Komponenteninstanz aus dem ersten oder zweiten Komponentendatenobjekttemplate oder einem weiteren Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches eine Identifikation und wenigstens ein Koordinatensystem aufweist; und
- Mittel zum Einbinden dieser weiteren Komponenteninstanz in den Szenengraph; wobei das Robotersystem zum Ausführen der Applikation auf Basis von Daten des Szenengraphs, insbesondere von Daten der (Roboter- und
Komponenten)! nstanzen des Szenengraphs, gesteuert wird.
In einer Ausführung weist das System bzw. sein(e) Mittel auf:
- Mittel zum Verknüpfen wenigstens einer der Instanzen mit dem Wurzel-Koordinatensystem und/oder wenigstens einer weiteren der Instanzen, insbesondere in einer Baumstruktur;
- Mittel zum Lese- und/oder Schreibzugriff auf die Daten durch die Applikation, insbesondere durch wenigstens ein Objekt des Robotersystems und/oder eine Steuerung zum Steuern dieses Objekts, insbesondere während des Betriebs;
- wenigstens ein Eingabegerät, das auf Basis des Szenengraphs, insbesondere einer Benutzerschnittstelle wenigstens einer der Instanzen des Szenengraphs, konfiguriert ist;
- Mittel zum Entfernen, Hinzufügen oder Austauschen wenigstens einer der Instanzen des Szenengraphs während einer Laufzeit der Applikation;
- Mittel zum Auswählen eines Datenobjekttemplates aus der Datenobjekttemplatebibliothek, insbesondere mittels einer graphischen Benutzeroberfläche, und/oder Parametrieren der Identifikation und Anbinden des wenigstens einen Koordinatensystems, insbesondere zusätzlich zum Parametrieren wenigstens eines geometrischen Attributs, wenigstens eines mechanischen Attributs, wenigstens einer Funktionalität, wenigstens einer Benutzerschnittstelle, wenigstens eines Konfiguration-Attributs und/oder
wenigstens eines Zustands-Attributs des entsprechenden Datenobjekttemplates, beim ein Instanzieren;
- Mittel zum Vorgeben einer Transformation zwischen dem Wurzel-Koordinatensystem und dem wenigstens einen Koordinatensystem wenigstens einer damit verknüpften der Instanzen und/oder einer Transformation zwischen dem wenigstens einen Koordinatensystem wenigstens einer der Instanzen und dem wenigstens einen Koordinatensystem wenigstens einer damit verknüpften der Instanzen und/oder einer Transformation zwischen dem wenigstens einen Koordinatensystem wenigstens einer der Instanzen und wenigstens einem weiteren Koordinatensystem dieser Instanz;
- Mittel zum Ermitteln von Daten von wenigstens einer der Instanzen auf Basis von einer Transformation zwischen dieser Instanz und wenigstens einer anderen damit gekoppelten, insbesondere verknüpften, der Instanzen und/oder auf Basis von Daten dieser wenigstens einer anderen Instanz; und/oder
- Mittel zum, insbesondere lesenden, Zugreifen auf Daten für wenigstens eine Kombination aus wenigstens zwei miteinander gekoppelten, insbesondere verknüpften, der Instanzen zum Steuern, wobei diese Daten auf Basis von Daten dieser Instanzen ermittelt werden bzw. sind.
Ein Mittel im Sinne der vorliegenden Erfindung kann hard- und/oder softwaretechnisch ausgebildet sein, insbesondere eine, vorzugsweise mit einem Speicher- und/oder Bussystem daten- bzw. signalverbundene, insbesondere digitale, Verarbeitungs-, insbesondere Mikroprozessoreinheit (CPU), Graphikkarte (GPU) oder dergleichen, und/oder ein oder mehrere Programme oder Programmmodule aufweisen. Die Verarbeitungseinheit kann dazu ausgebildet sein, Befehle, die als ein in einem Speichersystem abgelegtes Programm implementiert sind, abzuarbeiten, Eingangssignale von einem Datenbus zu erfassen und/oder Ausgangssignale an einen Datenbus abzugeben. Ein Speichersystem kann ein oder mehrere, insbesondere verschiedene, Speichermedien, insbesondere optische, magnetische, Festkörper- und/oder andere nicht-flüchtige Medien aufweisen. Das Programm kann derart beschaffen sein, dass es die hier beschriebenen Verfahren verkörpert bzw. auszuführen imstande ist, sodass die Verarbeitungseinheit die Schritte solcher Verfahren ausführen kann und damit insbesondere das Robotersystem steuern kann. Ein Computerprogrammprodukt kann in einer Ausführung ein, insbesondere nicht flüchtiges, Speichermedium zum Speichern eines Programms bzw. mit einem darauf
gespeicherten Programm aufweisen, insbesondere sein, wobei ein Ausführen dieses Programms ein System bzw. eine Steuerung, insbesondere einen Computer, dazu veranlasst, ein hier beschriebenes Verfahren bzw. einen oder mehrere seiner Schritte auszuführen.
In einer Ausführung werden ein oder mehrere, insbesondere alle, Schritte des Verfahrens vollständig oder teilweise automatisiert durchgeführt, insbesondere durch das System bzw. sein(e) Mittel.
In einer Ausführung weist das System das Robotersystem auf, in einer Ausführung ist das System das Robotersystem.
In einer Ausführung werden das bzw. eines oder mehrere der Roboter- und/oder das bzw. eines oder mehrere der Komponentendatenobjekttemplate(s jeweils), vorzugsweise in einer Engineering-Umgebung, erstellt und in die Datenobjekttemplatebibliothek aufgenommen. Gleichermaßen kann auch (nur) eine bereits vorhandene Datenobjekttemplatebibliothek verwendet oder gegebenenfalls durch weitere Roboter- und/oder Komponentendatenobjekttemplates ergänzt werden.
In einer Ausführung wird der bzw. wenigstens ein Roboter des Robotersystems zur Ermittlung von Daten bzw. Attributen einer oder mehrerer der Roboter- und/oder Komponenteninstanzen genutzt, bespielweise zur Vermessung einer TCP-Transformation oder zur Ermittlung der Lastdaten eines Werkzeugs.
Weitere Vorteile und Merkmale ergeben sich aus den Unteransprüchen und den Ausführungsbeispielen. Hierzu zeigt, teilweise schematisiert:
Fig. 1 : ein Robotersystem nach einer Ausführung der vorliegenden Erfindung; und
Fig. 2: ein Verfahren zum Ausführen einer Applikation des Robotersystems nach einer Ausführung der vorliegenden Erfindung.
Fig. 1 zeigt ein Robotersystem nach einer Ausführung der vorliegenden Erfindung in Form einer Zelle mit einem Roboterarm 1 , einer Zellen- bzw. Robotersteuerung 2,
einem Bedienhandgerät 3, einem robotergeführten Werkzeug in Form eines Greifers 4, einem Werkstück 5, einer Fördereinrichtung 6 und einem Magazin 7.
Fig. 2 zeigt ein Verfahren zum Ausführen einer Applikation des Robotersystems nach einer Ausführung der vorliegenden Erfindung. Dabei nimmt der Roboterarm 1 beispielsweise Werkstücke 5 von der Fördereinrichtung 6 und legt sie im Magazin 7 ab oder entnimmt umgekehrt Werkstücke 5 aus dem Magazin 7 und legt sie auf der Fördereinrichtung 6 ab.
In einem Schritt S10 werden aus vorhandenen Roboterdatenobjekttemplates und Komponentendatenobjekttemplates aus einer Datenobjekttemplatebibliothek konkrete Instanzen für den Roboterarm 1, den Greifer 4, das Werkstück 5, die Fördereinrichtung 6 und das Magazin 7 erzeugt und in einem Schritt S20 in einen Szenengraph eingefügt. Jedes Datenobjekttemplate kann dabei beliebig oft instanziert werden, um mehrere Instanzen desselben Typs zu erzeugen. Sämtliche Eigenschaften der Instanzen können dann individuell modifiziert werden.
Der Szenengraph stellt nun ein Modell aller Objekte dar, die in dem konkreten Robotersystem von Bedeutung sind. Die Systemsoftware, insbesondere die Zellen- bzw. Robotersteuerung 2 bzw. deren Software, hat damit eine umfassende Sicht auf alle Eigenschaften aller Objekte und kann diese Information auf vielfältige Weise verwenden, beispielsweise:
• Durch die T ransformationen zwischen den Objekten ist die relative Lage der Objekte zueinander und damit das Layout der gesamten Zelle bekannt. Damit kann eine 3D-Sicht der Zelle angeboten werden.
• Durch die Kenntnis der physikalischen Eigenschaften der einzelnen Objekte zusammen mit den Transformationen zwischen Koordinatensystemen der Objekte können auch die physikalischen Eigenschaften von Objektkombinationen abgeleitet werden. So kann das System z. B. die resultierenden Lastdaten aus einem Werkzeug und einem gegriffenen Werkstück automatisch errechnen, ohne dass der Anwender damit konfrontiert wird.
• Die geometrischen Parameter der Sicherheitskonfiguration (z.B. Arbeits- und Schutzräume, Überwachungsräume an Werkzeugen und Werkstücken, Positionen zur Geschwindigkeitsüberwachung, usw.) können aus dem Szenengraph gelesen werden.
• Durch das Zusammentragen der I/O-Konfigurationen der einzelnen Objekte ergibt sich eine Gesamtsicht auf die I/O-Konfiguration der Robotersteuerung.
Sämtliche Eigenschaften aller Instanzen im Szenengraph werden der Roboterapplikation durch eine entsprechende Programmierschnittstelle (API) zugänglich gemacht. Die Roboterapplikation kann die Eigenschaften nicht nur lesen, sondern auch verändern. Insbesondere können die Parameter der Instanzen genutzt werden, um Zustände der Objekte abzubilden oder Prozessergebnisse zu speichern (z.B. nach der Ermittlung eines Messwertes durch die Roboterapplikation).
Beispielsweise öffnet der Befehl ,,gripper.open()“ den Greifer 4. Durch die Abstraktion kann der Greifer und damit seine konkrete Implementierung der Funktion ,,open()“ ausgetauscht werden, ohne dass dazu die Roboterapplikation modifiziert werden muss.
Entsprechend steuert die Steuerung 2 das Robotersystem in einem Schritt S30 zum Ausführen der Applikation auf Basis von Daten von Robotersystemobjekten des Szenengraphs.
Nachfolgend wird dies an zwei Beispielen exemplarisch weiter erläutert:
Beispiel 1 - Greifer in Betrieb nehmen
In diesem Beispiel wurde ein Komponentendatenobjekttemplate für einen bestimmten Greifertyp vom Hersteiller des Greifers erstellt und im Rahmen einer Toolbox ausgeliefert. Der Kunde hat das Datenobjekttemplate in seiner Datenobjekttemplatebibliothek zur Erstellung einer Roboterapplikation installiert.
Die Inbetriebnahme des Greifers erfolgt nun dadurch, dass der Kunde das Komponentendatenobjekttemplate in die Darstellung des Szenengraphen zieht und am Flansch des Roboters platziert:
Der Greifer ist dadurch grundsätzlich in Betrieb genommen, da alle relevanten Aspekte durch die entsprechende Komponenteninstanz modelliert sind:
- Geometrische Attribute:
• Montagepunkt am Flansch;
• Greifpunkte (TCPs) und ihre Transformation zum Montagepunkt;
• Sicherheitsrelevante Überwachungskugeln;
• CAD-Modell zur Darstellung in der 3D-Ansicht
- Mechanische Attribute:
• Masse;
• Massenschwerpunkt;
• Trägheitsmomente
- Funktionalität:
• Das Komponentendatenobjekttemplate bzw. die Komponenteninstanz stellt eine abstrakte Programmierschnittstelle zur Ansteuerung des Greifers durch die Roboterapplikation zur Verfügung
- Konfiguration-Attribut:
• Für die elektrische Verschaltung der I/Os ist eine Default-Konfiguration enthalten
- Benutzerschnittstelle:
• Das Komponentendatenobjekttemplate bringt eine Benutzerschnittstelle (Ul) mit, die auf dem Bedienhandgerät 3 angezeigt wird und es dem Anwender erlaubt, den Greifer 4 manuell zu öffnen und zu schließen.
Dem Anwender steht es nun frei, alle Aspekte selektiv an die individuellen Gegebenheiten anzupassen, falls dies erforderlich ist. Beispielsweise könnte er
- die elektrische Verschaltung der I/Os ändern, falls in seinem Robotersystem eine andere Verschaltung vorgesehen ist; und/oder
- nach einer konstruktiven Modifikation der Greiferbacken die Position und Orientierung der Greifpunkte (TCPs) durch eine Werkzeugvermessung an die neuen Gegebenheiten anpassen.
Sämtliche Anpassungen betreffen die Instanz des entsprechenden Objekts im Szenengraph. Die zugrunde liegenden Datenobjekttemplates aus der Datenobjekttemplatebibliothek werden dadurch nicht verändert. Der Anwender hat jedoch die Möglichkeit, seine angepasste Instanz in ein neues Datenobjekttemplate zu wandeln und diese Variante des ursprünglichen Datenobjekttemplates Dritten zur Verfügung zu stellen.
Beispiel 2 - Magazin austauschen in laufender Anwendung
Das Magazin 7 ist durch eine Komponenteninstanz im Szenengraph wie folgt modelliert:
- Geometrische Attribute:
• ein Magazin-Koordinatensystem definiert die Lage des Magazins in der Anlage;
• Greifpunkte für die Ablagepositionen im Magazin, diese sind relativ zum Magazin-Koordinatensystem definiert
- Funktionalität
• eine abstrakte Programmierschnittstelle stellt eine Funktion zum Greifen des nächsten Bauteils durch einen gegebenen Greifer zur Verfügung. Ihre Implementierung benutzt die speziellen geometrischen Eigenschaften des Magazins, um die Roboterfahrten zur Anfahrt und zum Greifen des Bauteils zu realisieren
- Zustands-Attribute:
• aktueller Zustand: Anzahl der Bauteile im Magazin
- Konfiguration-Attribute:
• Reihenfolge der Entnahme
- Benutzerschnittstelle:
• die aktuelle Anzahl der Bauteile im Magazin 7 wird auf dem Bedienhandgerät 3 angezeigt und kann dort editiert werden.
Im laufenden Betrieb der Applikation soll die Bauart des Magazins gewechselt werden, auch für das neue Magazin steht ein Komponentendatenobjekttemplate in der
Datenobjekttemplatebibliothek zur Verfügung.
Folgende Schritte werden zum Austausch durchgeführt:
- Pausieren der Applikation;
- Editieren des Szenengraphen: die Instanz des bisherigen Magazins wird durch die Instanz des neuen Magazins ersetzt;
- Überprüfung und evtl. Anpassung der Position des neuen Magazins;
- Überprüfung und evtl. Anpassung der Anzahl der Bauteile im Magazin;
- Fortsetzen der Applikation.
Da auch die Instanz des neuen Magazins dieselbe abstrakte Programmierschnittstelle zum Greifen des nächstens Bauteils zur Verfügung stellt, kann die Applikation ohne Änderung fortgesetzt werden. Die Implementierung der Funktionalität der ausgetauschten Instanz berücksichtigt die geometrischen Eigenschaften des neuen Magazins und führt die erforderlichen Roboterfahrten dazu passend aus.
Obwohl in der vorhergehenden Beschreibung exemplarische Ausführungen erläutert wurden, sei darauf hingewiesen, dass eine Vielzahl von Abwandlungen möglich ist.
So ist im Ausführungsbeispiel der Roboter(arm) ein sechsachsiger Knickarm(roboter). In nicht dargestellten Abwandlungen können auch andere, insbesondere mobile, SCARA- und/oder Parallel(kinematik)roboter verwendet werden.
Außerdem sei darauf hingewiesen, dass es sich bei den exemplarischen Ausführungen lediglich um Beispiele handelt, die den Schutzbereich, die Anwendungen und den Aufbau in keiner Weise einschränken sollen. Vielmehr wird dem Fachmann durch die vorausgehende Beschreibung ein Leitfaden für die Umsetzung von mindestens einer exemplarischen Ausführung gegeben, wobei diverse Änderungen, insbesondere in Hinblick auf die Funktion und Anordnung der beschriebenen Bestandteile, vorgenommen werden können, ohne den Schutzbereich zu verlassen, wie er sich aus den Ansprüchen und diesen äquivalenten Merkmalskombinationen ergibt.
Bezu g szeichenNste
1 Roboterarm
2 Steuerung 3 Bedienhandgerät
4 Greifer
5 Werkstück
6 Fördereinrichtung
7 Magazin
Claims
1. Verfahren zum Ausführen, insbesondere Inbetriebnehmen, einer Applikation eines
Robotersystems, mit den Schritten:
- Instanzieren (S10) wenigstens einer ersten Roboterinstanz aus einem ersten Roboterdatenobjekttemplate aus einer Datenobjekttemplatebibliothek, welches
- eine Identifikation; und
- wenigstens ein Koordinatensystem; aufweist;
- Instanzieren (S10) wenigstens einer ersten Komponenteninstanz aus einem ersten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches
- eine Identifikation; und
- wenigstens ein Koordinatensystem aufweist; wenigstens einem der Schritte:
- Instanzieren (S10) wenigstens einer zweiten Komponenteninstanz aus dem ersten Komponentendatenobjekttemplate oder einem zweiten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches
- eine Identifikation; und
- wenigstens ein Koordinatensystem aufweist; und/oder
- Instanzieren wenigstens einer weiteren Roboterinstanz aus dem ersten Roboterdatenobjekttemplate oder einem weiteren Roboterdatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches
- eine Identifikation; und
- wenigstens ein Koordinatensystem; aufweist; und den Schritten:
- Einbinden (S20) dieser Instanzen in einen Szenengraph des Robotersystems, welcher wenigstens ein Wurzel-Koordinatensystem enthält; und
- Steuern (S30) des Robotersystems zum Ausführen der Applikation auf Basis von Daten des Szenengraphs.
2. Verfahren nach Anspruch 1 , mit den Schritten:
- Instanzieren wenigstens einer weiteren Komponenteninstanz aus dem ersten oder zweiten Komponentendatenobjekttemplate oder einem weiteren Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches
- eine Identifikation; und
- wenigstens ein Koordinatensystem aufweist; und
- Einbinden dieser weiteren Komponenteninstanz in den Szenengraph; wobei das Robotersystem zum Ausführen der Applikation auf Basis von Daten dieser Komponenteninstanz des Szenengraphs gesteuert wird.
3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens eine der Instanzen mit dem Wurzel-Koordinatensystem und/oder wenigstens einer weiteren der Instanzen, insbesondere in einer Baumstruktur, verknüpft ist.
4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Applikation, insbesondere wenigstens ein Objekt des Robotersystems und/oder eine Steuerung zum Steuern dieses Objekts, lesend und/oder schreibend auf die Daten zugreift, insbesondere während des Betriebs.
5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das erste und/oder weitere Roboterdatenobjekttemplate und/oder erste, zweite und/oder weitere Komponentendatenobjekttemplate
- wenigstens ein geometrisches Attribut, insbesondere wenigstens eine Abmessung;
- wenigstens ein mechanisches Attribut, insbesondere wenigstens eine Masse und/oder Massenverteilung;
- wenigstens eine Funktionalität der Objekte, denen das Datenobjekttemplate zugeordnet ist, insbesondere eine Programmierschnittstelle und/oder Implementierung der Funktionalität;
- wenigstens eine Benutzerschnittstelle zum Bedienen der Objekte, denen das Datenobjekttemplate zugeordnet ist, mittels eines Eingabegeräts;
- wenigstens ein von einer Konfiguration der Objekte, denen das Datenobjekttemplate zugeordnet ist, abhängiges Konfiguration-Attribut; und/oder
- wenigstens ein von einem aktuellen, variablen Zustand der Objekte, denen das Datenobjekttemplate zugeordnet ist, abhängiges Zustands-Attribut aufweist.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein Eingabegerät (3) des Robotersystems auf Basis des Szenengraphs, insbesondere einer Benutzerschnittstelle wenigstens einer der Instanzen des Szenengraphs, konfiguriert ist.
7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens eine der Instanzen des Szenengraphs während einer Laufzeit der Applikation entfernt, hinzugefügt oder ausgetauscht wird.
8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das erste, zweite und/oder weitere Komponentendatenobjekttemplate
- Robotersystem Werkzeugen;
- Robotersystemwerkstücken; oder
- Roboterumgebungseinrichtungen, insbesondere Magazinen oder Förder- und/oder Fixiereinrichtungen, zugeordnet ist.
9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein Instanzieren ein Auswählen eines Datenobjekttemplates aus der Datenobjekttemplatebibliothek, insbesondere mittels einer graphischen Benutzeroberfläche, und/oder ein Parametrieren der Identifikation und Anbinden des wenigstens einen Koordinatensystems, insbesondere zusätzlich ein Parametrieren wenigstens eines geometrischen Attributs, wenigstens eines mechanischen Attributs, wenigstens einer Funktionalität, wenigstens einer Benutzerschnittstelle, wenigstens eines Konfiguration-Attributs und/oder wenigstens eines Zustands-Attributs des entsprechenden Datenobjekttemplates umfasst.
10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine Transformation zwischen dem Wurzel-Koordinatensystem und dem wenigstens einen Koordinatensystem wenigstens einer damit verknüpften der Instanzen und/oder eine Transformation zwischen dem wenigstens einen Koordinatensystem wenigstens einer der Instanzen und dem wenigstens einen Koordinatensystem wenigstens einer damit verknüpften der Instanzen vorgegeben ist.
11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass Daten von wenigstens einer der Instanzen auf Basis von einer Transformation zwischen dieser Instanz und wenigstens einer anderen damit gekoppelten, insbesondere verknüpften, der Instanzen und/oder auf Basis von Daten dieser wenigstens einer anderen Instanz ermittelt werden.
12. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zum Steuern auf Daten für wenigstens eine Kombination aus wenigstens zwei miteinander gekoppelten, insbesondere verknüpften, der Instanzen zugegriffen wird, die auf Basis von Daten dieser Instanzen ermittelt sind.
13. System zum Ausführen, insbesondere Inbetriebnehmen, einer Applikation eines Robotersystems, das zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche eingerichtet ist und/oder aufweist:
- Mittel zum Instanzieren wenigstens einer ersten Roboterinstanz aus einem ersten Roboterdatenobjekttemplate aus einer Datenobjekttemplatebibliothek, welches
- eine Identifikation; und
- wenigstens ein Koordinatensystem; aufweist;
- Mittel zum Instanzieren wenigstens einer ersten Komponenteninstanz aus einem ersten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches
- eine Identifikation; und
- wenigstens ein Koordinatensystem aufweist;
Mittel zum
- Instanzieren wenigstens einer weiteren Roboterinstanz aus dem ersten Roboterdatenobjekttemplate oder einem weiteren Roboterdatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches eine Identifikation und wenigstens ein Koordinatensystem aufweist; und/oder
- Instanzieren wenigstens einer zweiten Komponenteninstanz aus dem ersten Komponentendatenobjekttemplate oder einem zweiten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches eine Identifikation und wenigstens ein Koordinatensystem aufweist;
- Mittel zum Einbinden dieser Instanzen in einen Szenengraph des
Robotersystems, welcher wenigstens ein Wurzel-Koordinatensystem enthält; und - Mittel zum Steuern des Robotersystems zum Ausführen der Applikation auf
Basis von Daten des Szenengraphs.
14. Computerprogrammprodukt mit einem Programmcode, der auf einem von einem Computer lesbaren Medium gespeichert ist, zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102019217630.5 | 2019-11-15 | ||
DE102019217630.5A DE102019217630B3 (de) | 2019-11-15 | 2019-11-15 | Verfahren zum Ausführen einer Applikation eines Robotersystems |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021094085A1 true WO2021094085A1 (de) | 2021-05-20 |
Family
ID=73030139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2020/080225 WO2021094085A1 (de) | 2019-11-15 | 2020-10-28 | Verfahren zum ausführen einer applikation eines robotersystems |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE102019217630B3 (de) |
WO (1) | WO2021094085A1 (de) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112011104644T5 (de) * | 2010-12-30 | 2013-10-10 | Irobot Corporation | Mobiles Roboter-System |
US20130345875A1 (en) * | 2012-06-21 | 2013-12-26 | Rethink Robotics, Inc. | Training and operating industrial robots |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008127863A2 (en) * | 2007-03-29 | 2008-10-23 | Irobot Corporation | Robot operator control unit configuration system and method |
DE102014221797B4 (de) * | 2014-10-27 | 2019-05-09 | Kuka Systems Gmbh | Verfahren und Robotersystem zur automatischen Bahnermittlung |
DE102014019492A1 (de) * | 2014-12-23 | 2016-06-23 | Festo Ag & Co. Kg | Werkzeugsteuerung und Verfahren zum Betreiben einer Werkzeugsteuerung |
DE102015218697A1 (de) * | 2015-09-29 | 2017-03-30 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren zur automatischen Konfiguration eines externen Steuerungssystems zur Regelung und/oder Steuerung eines Robotersystems |
DE102015222167A1 (de) * | 2015-11-11 | 2017-05-11 | Kuka Roboter Gmbh | Verfahren zum vereinfachten ändern von applikationsprogrammen zur steuerung einer industrieanlage |
DE202017102379U1 (de) * | 2017-04-21 | 2017-05-18 | Schunk Gmbh & Co. Kg Spann- Und Greiftechnik | Intelligentes Greifsystem |
-
2019
- 2019-11-15 DE DE102019217630.5A patent/DE102019217630B3/de active Active
-
2020
- 2020-10-28 WO PCT/EP2020/080225 patent/WO2021094085A1/de active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112011104644T5 (de) * | 2010-12-30 | 2013-10-10 | Irobot Corporation | Mobiles Roboter-System |
US20130345875A1 (en) * | 2012-06-21 | 2013-12-26 | Rethink Robotics, Inc. | Training and operating industrial robots |
Non-Patent Citations (2)
Title |
---|
ABB ROBOTICS: "Operating manual RobotStudio", 23 February 2012 (2012-02-23), XP055288802, Retrieved from the Internet <URL:https://library.e.abb.com/public/484283579938b0cac1257b5900503fbb/3HAC032104-en.pdf> [retrieved on 20160715] * |
TIM CALLINAN: "RobotStudio Lab 2", 29 June 2014 (2014-06-29), pages 1, XP054981346, Retrieved from the Internet <URL:https://www.youtube.com/watch?v=h_G-jqNIYsA> [retrieved on 20210128] * |
Also Published As
Publication number | Publication date |
---|---|
DE102019217630B3 (de) | 2021-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10352815B4 (de) | Simulationsverfahren für eine Bearbeitung eines Werkstücks durch eine Werkzeugmaschine und korrespondierender Rechner | |
EP1402325B1 (de) | Verfahren und system zur unterstützung der projektierung von fertigungsanlagen | |
WO2005091089A1 (de) | Beeinflussungsgerät für steuergeräte | |
DE102012112900A1 (de) | Numerische Steuerungsprogrammausrichtung durch Roboter | |
DE102007026678A1 (de) | Verfahren zum Austausch eines defekten Feldgerätes gegen ein neues Feldgerät in einem über digitalen Feldbus kommunizierenden System, insbesondere Automatisierungssystem | |
DE102016209844A1 (de) | Montagesystem-Konfiguration | |
DE112008003963T5 (de) | System und Verfahren zur Off-line-Programmierung eines Industrieroboters | |
DE10104163A1 (de) | Steuerungs-und/oder Überwachungsanlage von Maschinen und/oder Anlagen mit Aktionskomponenten unterschiedlicher Aktionsgruppen | |
DE102020201398B3 (de) | Betreiben einer Applikation eines Robotersystems | |
WO2014173470A1 (de) | Numerische steuerung mit benachrichtigung eines cam-systems bei änderung des teileprogramms | |
DE10144788A1 (de) | Verfahren und Vorrichtung zur sicheren hochperformanten Aufzeichnung von Prozessdaten bei numerisch gesteuerten industriellen Bearbeitungsmaschinen | |
WO2005101148A2 (de) | Verfahren und system zur virtuellen inbetriebsetzung einer technischen anlage mit bevorzugter verwendung | |
DE112020006647T5 (de) | Ursprungsrückführvorrichtung | |
WO2021094085A1 (de) | Verfahren zum ausführen einer applikation eines robotersystems | |
WO2009089849A1 (de) | Planungsvorrichtung und verfahren zur planung einer technischen anlage | |
DE112008003870T5 (de) | Verfahren und System zum Steuern eines Industrieroboters in Übereinstimmung mit einem Bewegungssteuerungs-Parametersatz | |
EP2642359A1 (de) | Entwicklungseinrichtung und Verfahren zum Erstellen eines Steuergeräteprogramms | |
WO2013037987A1 (de) | Identifikation wiederverwendbarer mechatronischer komponenten in der fabrikautomation | |
DE102017121249A1 (de) | Verfahren und System zum Bearbeiten eines Werkstücks | |
WO2008113305A1 (de) | Vorrichtung zur erstellung von bearbeitungsprogrammen für eine bearbeitungsmaschine | |
DE102020001931A1 (de) | Kontaktplananzeigevorrichtung | |
DE102018128915A1 (de) | Verfahren zum Visualisieren der Automatisierung einer technischen Einrichtung | |
DE102014105109A1 (de) | Verfahren und Vorrichtung zum Erzeugen und Abarbeiten von Testfällen | |
DE102016121788A1 (de) | Konfiguration einer Automatisierungsanlage | |
EP2093663A1 (de) | Engineering-System für die Entwicklung eines Projektes und Verfahren |
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: 20797755 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: 20797755 Country of ref document: EP Kind code of ref document: A1 |