EP3934858A1 - Verfahren, system sowie nichtflüchtiges speichermedium - Google Patents

Verfahren, system sowie nichtflüchtiges speichermedium

Info

Publication number
EP3934858A1
EP3934858A1 EP20710474.6A EP20710474A EP3934858A1 EP 3934858 A1 EP3934858 A1 EP 3934858A1 EP 20710474 A EP20710474 A EP 20710474A EP 3934858 A1 EP3934858 A1 EP 3934858A1
Authority
EP
European Patent Office
Prior art keywords
machine
model
sub
sensor
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP20710474.6A
Other languages
English (en)
French (fr)
Inventor
Christian PIECHNICK
Klaus Wagner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wandelbots GmbH
Original Assignee
Wandelbots GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wandelbots GmbH filed Critical Wandelbots GmbH
Publication of EP3934858A1 publication Critical patent/EP3934858A1/de
Pending legal-status Critical Current

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
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • G05B19/423Teaching successive positions by walk-through, i.e. the tool head or end effector being grasped and guided directly, with or without servo-assistance, to follow a path
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • G05B19/427Teaching successive positions by tracking the position of a joystick or handle to control the positioning servo of the tool head, master-slave control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36436Arm follows movement of handheld device, camera detects, analyses motion
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36479Record position on trigger of touch probe
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40116Learn by operator observation, symbiosis, show, watch
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40391Human to robot skill transfer

Definitions

  • Various exemplary embodiments relate to a method, a system and a non-volatile storage medium.
  • Programming is usually done in the form of program code by one or more specially trained staff
  • the cost makes automation by means of a
  • Glue gun a sensor system (e.g. a camera) and a control system (e.g. a programmable logic device
  • Motion planning and motion control in the form of a
  • a programmer manually writes the program code that allows the robot to carry out the application autonomously at execution time.
  • the programming of an industrial robot can alternatively or additionally be carried out by the expert using CAD-based code generation.
  • a virtual representation of an industrial robot can alternatively or additionally be carried out by the expert using CAD-based code generation.
  • a learning process (also referred to as teach-in) is conventionally used.
  • the robot can be controlled manually, for example.
  • a sensitive robot also referred to as a co-bot
  • the trajectory ie the path on which the robot should move
  • Robots are supposed to perform, however, remain complex and are therefore conventionally not taken into account by the learning process.
  • the complexity consists, for example, in the integration of the various components of the robot, such as the end effector, the sensors and the control system, into the process to be carried out, which is therefore done manually
  • the learning process can alternatively or additionally take place via an interactive input device. This will be described
  • the learning process can alternatively or additionally take place by means of sensor data processing.
  • Sensor data processing is based on sensors that are attached directly to the robot.
  • the field of vision is often restricted by the end effector and robot.
  • changing light conditions or air particles affect the sensors on the robot.
  • a method can include: determining a machine-independent
  • Process model based on data, the data indicating a handling of an implement when performing a
  • Represent process flow wherein the process flow has a plurality of sub-processes, wherein the process model for each sub-process of the plurality of sub-processes a process activity with spatial information of the
  • Sub-process linked Mapping of the machine-independent process model to a machine-specific control model of a machine using a model of the machine, the machine-specific control model defining an operating point of the machine for each sub-process of the plurality of sub-processes that corresponds to the process activity and the spatial information of the sub-process.
  • the data can be used during the handling of the implement
  • a machine-unspecific process model is clearly generated which describes the overall human process of the process task to be performed.
  • the process model can be created, for example by tracking how the process task is done by a person.
  • the machine-unspecific process model is then transferred to a machine-specific control model, which is tailored to the hardware platform (generally also referred to as a machine) that is to perform the process task automatically.
  • a machine-specific control model tailored to the hardware platform (generally also referred to as a machine) that is to perform the process task automatically.
  • control program can be formed, which the hardware platform, e.g. whose PLC (programmable logic controller) can execute.
  • PLC programmable logic controller
  • Figures 1 and 3 each show a method according to different
  • Figures 2 and 4A each show a method according to different
  • FIG. 4B shows a system for performing a method according to various embodiments in one
  • FIG. 5 shows the method according to various embodiments in a schematic model diagram
  • FIG. 6 shows the method according to various embodiments in a schematic flowchart
  • FIG. 7 shows a machine in accordance with various embodiments in a schematic structural diagram.
  • connection means both a direct and an indirect connection, a direct or indirect connection and a direct or indirect coupling, e.g. one
  • a clutch can be set up, a mechanical interaction (e.g.
  • processor can be used as any type of entity
  • the data or signals can be any type of signals. Signals allowed.
  • the data or signals can be any type of signals.
  • a processor can be an analog circuit, a digital circuit, a
  • Microprocessor a central processing unit (CPU), a graphics processing unit (GPU), a digital one
  • DSP Signal processor
  • FPGA programmable gate arrangement
  • system can be used as a phrase interacting
  • entities can include at least one mechanical component, at least one electromechanical transducer (or other types of actuators), at least one electrical component, at least one instruction (e.g. in a
  • Storage medium and / or at least one
  • actuator also referred to as an actuator or actuator
  • the term “actuator” can be understood as a component that is used to influence a mechanism or a process in Response to a control is set up.
  • the actuator can convert instructions issued by the control device (the so-called activation) into mechanical movements or
  • the actuator e.g. an electromechanical
  • Converter for example, can be set up to convert electrical energy into mechanical energy (e.g. by movement) in response to an activation.
  • control device can be understood as any type of logic implementing entity that
  • control device can have an interconnection and / or a processor which can execute software that is stored in a storage medium, in firmware or in a combination thereof, and can issue instructions based thereon.
  • the control device can for example be configured by means of code segments (e.g. software) to enable the operation of a system (e.g. its operating point), e.g. a machine or a plant, e.g. at least its kinematic chain to control.
  • Controlling can be understood as an intended influencing of a system.
  • Control have a forward control path and thus clearly implement a sequence control that converts an input variable into an output variable.
  • the control path can, however, also be part of a control loop, so that regulation is implemented.
  • the control has a continuous influence of the output variable on the input variable, which is effected by the control loop (feedback).
  • Process flow can be understood as the sum of all processes (eg a chronological sequence of controlled events) that fulfill a predefined process task.
  • the sub-processes of the process flow can each fulfill a sub-task (ie part of the process task).
  • the individual sub-processes can, depending on the type of process flow,
  • Sub-process can, for example, be carried out, started or ended precisely when a process situation assigned to it is present, e.g. a threshold value for a measured variable is not reached or a pattern recognition recognizes the workpiece to be processed.
  • a process activity and at least one vector of the process activity can be assigned to each sub-process.
  • the vector can have at least one position, its change, a spatial distribution and / or at least one direction of the
  • Process activity can also be more complex or detailed (more general herein as spatial information
  • the spatial information can be assigned a time indication about the process activity, which e.g. Define the duration, the beginning, the end and / or a cycle of the process activity.
  • the process activity can add the total
  • the corresponding spatial information can describe where and / or with what distribution the effect is to be provided and / or in what spatial position (ie Position and / or orientation) the implement is located for this purpose.
  • the handling of the work device can describe the way in which the work device is guided and / or actuated when a process sequence is carried out, for example how it is held, how strongly pressed, and / or how long the
  • a data-based (e.g. digital and / or virtual) representation of an original can be understood as a model, e.g. a physical object (e.g. a machine) or a process (e.g. a control process or a
  • Modeling i.e. the image of the original on the
  • the model can, for example, contain physical information (e.g. length, distance, weight, volume, composition, etc.), movement-related
  • Information e.g. position, alignment, direction of movement, acceleration, speed of movement, etc.
  • logical information links, sequence, couplings,
  • Information e.g. time, total duration, frequency,
  • Period etc.
  • functional information e.g. current intensity, effect, map or characteristic curve
  • the control model can accordingly be a formal one
  • control model can contain a variety of instructions for
  • Control e.g. to bring the machine to a working point
  • further criteria the fulfillment of which triggers the instruction assigned to them, ends or
  • control model can be a
  • control logic which logically links several criteria and / or several instructions with one another, and / or which implements a process (eg a process plan) according to which the control takes place.
  • the process model can be a formal
  • Process model can have a large number of links between a process activity and the corresponding spatial information and optionally assign corresponding process situations to the process activities
  • the process model can have a process logic that logically links several process situations and / or several process activities with one another, and / or which has a sequence (e.g. a
  • the process situation can cause a process activity assigned to it in accordance with the spatial information (which represents the conditioned sub-process).
  • a flow chart can have at least branches, jumps and / or loops.
  • the presence or absence of a process situation can generally be represented by means of at least one criterion, which is fulfilled, for example, in the presence or absence of the process situation.
  • the mapping can be the transfer of elements of a
  • the mapping can assign at least one element of the mapping to each element of the original image.
  • the mapping can have, for example, operators, transformations and / or on the elements of the initial set
  • the elements can in general have: logical relationships, links, information, properties, coordinates or the associated coordinate system, mathematical objects (such as formulas or numbers), processes, activities, etc.
  • a code generator can be understood as a computer program which is set up to produce a model, e.g. is available in a modeling language, in a
  • UML unified modeling language
  • the model can also be in a markup language, a structogram, a decision table or another formal one
  • the code generator generates code segments (also referred to as code generation) which can be combined with other optional program parts to form a program.
  • the spatial information of the orientation and / or position of an object can be understood here as spatial position (also referred to as position information or, in simplified form, as position).
  • the position can clearly describe the location (e.g. a point) in space and the orientation the respective orientation (e.g. a direction) of an object relative to the space.
  • a series of spatial positional information that is taken up one after the other by an object can be understood as a trajectory.
  • the position information can optionally be time-dependent (i.e. movement-related, then also referred to as movement), according to a clocking or
  • FIG. 1 illustrates a method 100 according to various embodiments in a schematic side view.
  • the machine 114 to be programmed may be a robot, e.g. an industrial robot for handling, assembling or processing a workpiece.
  • the method 100 enables, for example, the end-user programming of the complete automation application (including
  • the machine 114 to be programmed can generally have a manipulator 114p, 114e and a frame 114u on which the manipulator 114p, 114e is supported.
  • manipulator 114p, 114e summarizes the entirety of the movable members 114v, 114g, 114e of the machine 114, the control of which enables a physical interaction with the environment, e.g. carry out a process flow.
  • the machine 114 can have a control device 712 which is set up to implement the interaction with the environment in accordance with a control program.
  • the last link 114e of the manipulator 114p, 114e (also referred to as the end effector 114e) may have one or more than one tool, such as one
  • Welding torch a gripping instrument, a painting device or the like.
  • the manipulator 114p, 114e can at least one
  • Positioning device 114p for example a
  • Robotic arm 114p (also referred to more generally as an articulated arm), to which the end effector 114e is attached.
  • the robotic arm 114p illustratively provides a mechanical arm which can provide functions similar to those of a human arm.
  • the links of the positioning device 114p can be, for example, connecting links 114v and joint links 114g, the connecting links 114v being connected by means of the
  • Hinge members 114g are interconnected.
  • joint member 114g may have one or more joints, each joint of which is the one connected thereto
  • Links 114v can provide rotational movement (i.e., rotational movement) and / or translational movement (i.e., displacement) relative to one another.
  • the movement of the joint members 114g can be set in motion by means of actuators which are controlled by the control device 702.
  • a sensor arrangement 102 (having at least one tracker) can be or will be mounted on a work device 104.
  • a person 106 carries out an activity for completing the process task by means of the working device 104 to which the sensor arrangement 102 is attached (e.g. painting,
  • the work device 104 can be, for example, any hand-held work device 104 that a human worker 106 can use, relocate, hold, lift and / or manipulate (e.g., a handheld screwdriver, a spray gun, a) in the course of his job
  • the sensor arrangement 102 transmits data to an external receiver, which data are detected by an integrated sensor system of the sensor arrangement 102.
  • the data can for example be a position and / or a movement (e.g.
  • actuation sensor for example a button or switch, more generally also referred to as a trigger
  • the external receiver thus receives the time-dependent position of the sensor arrangement 102 in the room 701, 703, 705. Based on this, the time-dependent position of the work device 104 can be determined.
  • data from an additional external sensor system 112 also referred to as an additional sensor arrangement 112 and / or PLC data can be obtained from the receiver.
  • the additional sensor arrangement 112 can in
  • time-based data for example at a high frequency, are acquired and recorded by means of the sensor arrangements 102, 112, which cover the entire process sequence
  • This data can optionally be job-specific
  • Activity-specific process parameters can include the parameters of the respective function and / or of the operating point of the work device 104 (e.g. a volume flow of the paint spray gun).
  • Activity-specific process parameters can be determined in 103 a platform-independent model 104m (also referred to as process model 104m) of the process task.
  • This process model 104m clearly describes the overall human process of the process task.
  • the process model 104m can optionally be examined and adapted by a person 106.
  • the incoming data are time-based movement data of the human-held work device 104, data of the trigger (s) and data of further external ones
  • An instance of a platform-independent process model 104m e.g. in the form of a metamodel.
  • the metamodel describes the data types of the model instance and their possible ones
  • a model is, for example, a directed graph with typified nodes. Nodes have a data type (node of the metamodel) that describes the parameters of the model and their value ranges.
  • the generation of the model instance on the basis of the input data takes place with the help of, for example, artificial neural networks.
  • kNN Artificial neural networks
  • the training vectors are set according to the input parameters required in each case (for example, spatial coordinates of a sub-object of an implement, associated time, working points / control points of the implement,
  • a specific hardware platform 114 (also referred to more generally as a machine 114) can be selected (e.g. a specific robot type or end effector, etc.).
  • the machine specifics (e.g. structure) of the machine 114 can be taken into account by means of a model 116m of the machine 114.
  • Process model 104m can be software in 105 Generate platform-specific model 116m (also referred to as control model 116m) for a robot controller 702.
  • Generate platform-specific model 116m also referred to as control model 116m
  • control model 116m for a robot controller 702.
  • Process parameters e.g. volume flow at the paint end effector and / or movement sequences
  • Process parameters can be determined which correspond to the activity-specific process parameters.
  • the incoming data is an instance of the platform-independent metamodel (more generally
  • platform dependent model 116m is also available via a
  • the platform-dependent model 116m describes the data types and relationships of the platform-independent models 104m.
  • the model transformation describes a
  • Mapping function such as nodes or groups of nodes from the platform-independent model 104m on nodes or
  • Node groups of the platform-dependent model 116m are mapped. It also describes how these generated nodes are related to each other. The mapping takes place, for example, taking into account the respective
  • a model of the machine can contain, for example, and thus take into account:
  • Machine e.g. maximum gripping force of the end effector and / or degrees of freedom or freedom of movement of the
  • Control variables or controlled variables input variables of the individual actuators or output variables of the individual sensors;
  • Characteristics of a specifically used platform e.g. machine
  • a specifically used platform e.g. machine
  • a code generator 412 can be used to generate a program code 116 (e.g.
  • the program code 116 can denote the respective code in which the control program 116 is written. Depending on the process task,
  • the program code 116 can be generated for a communicating overall system (for example the robot controller and the PLC controller).
  • the program code 116 can optionally have predefined parts to which the program code 116 can be adapted by a developer.
  • the code is generated in the form of templates that exist for each target language. This
  • Templates have instances of the platform-dependent model as input and describe how from them at the metamodel level
  • Text fragments are generated.
  • these templates also have a pure text output
  • Control structures e.g. branches.
  • a template engine in turn has a template and an instance of the
  • platform-independent model as input and generates one or more text files from it.
  • Fig. 2 illustrates the method 100 according to various embodiments in a schematic flow diagram 200.
  • the method 100 may include in 101: attaching 201 a mobile sensor arrangement 102 to the work device 104 of the manual process flow generated by the machine 114 (e.g.
  • Process flow is, for example, rail-based (e.g. for gluing, welding, painting or milling).
  • the sensor arrangement 102 can be fastened to the work device 104 magnetically, with clamping screws, with a clip or Velcro tape, and optionally sequentially on several
  • the sensor assembly 102 can be one or more than one
  • the sensor arrangement 102 can optionally have one or more than one mobile unit, each mobile unit having at least one sensor of the sensor arrangement 102, eg a mobile unit with a trajectory sensor (also known as a tracker).
  • the or each mobile unit can be self-sufficient, for example to its own
  • Energy supply and / or for wireless communication can be accommodated together in a housing of a mobile unit (also referred to as internal sensors).
  • a transducer As a sensor (also referred to as a detector), a transducer can be understood that is set up to provide a
  • the Sensor type to record the corresponding property of its environment qualitatively or quantitatively as a measured variable, e.g. a physical or chemical property and / or a material nature.
  • the measured variable is the physical variable to which the measurement using the sensor applies.
  • a sensor can be, for example, a certain type of sensor
  • the operating point sensor can, for example, detect the operating point of the implement 104.
  • the trajectory sensor can, for example, a movement and / or the position (i.e. orientation and / or
  • the sensor arrangement 102 can have at least one optoelectronic sensor (e.g. a camera), at least one traction sensor and / or at least one
  • the traction sensor can, for example, be a motion sensor (e.g. an acceleration sensor and / or
  • Having speed sensor and / or a position sensor (e.g. having an orientation sensor and / or a position sensor).
  • the sensor arrangement 102 and / or the additional sensor arrangement 112 can have at least one sensor have, for detecting an electrodynamic
  • Property e.g. current, voltage, magnetic field or power
  • a location-related property e.g. alignment and / or position
  • Property e.g. speed and / or acceleration
  • a thermal property e.g. temperature or temperature difference
  • a geometric property e.g. distance, solid angle, volume
  • a photometric property e.g. light intensity, brightness, color, energy, or power
  • a mechanical property e.g. force, pressure, Mass, energy, power, torque, actuation, etc.
  • Sensor arrangement 102 can optionally be separate from the
  • the at least one sensor can, for example, have an actuation sensor and / or an operating point sensor.
  • the at least one sensor can be attached to the manual implement 104, e.g.
  • a supply device of the manual work device 104 e.g. for measuring a volume flow, a temperature or a current strength
  • the manual implement 104 can be a handheld device that is powered by a stationary supply device, e.g. with a fluid and / or with energy.
  • the operating point can describe the point in the characteristics map or on the characteristic curve of a technical device that is assumed due to the system properties and external influences and parameters of the device.
  • the working point can clearly describe the operating status of the device.
  • the method 100 can optionally further comprise in 101:
  • the calibration can include calibrating the position of the sensor arrangement 102 in relation to the coordinate system of the implement 104, the additional sensor arrangement 112 and / or a global coordinate system.
  • the global coordinate system can be
  • the calibration can include, for example: detecting the position of the sensor arrangement 102 with respect to the working device 104.
  • the calibration can alternatively or additionally include: detecting the position of the sensor arrangement 102 in space, e.g. in terms of the global coordinate system. Using the two position information items that describe the sensor arrangement 102 relatively in space and relative to the work device 104, the trajectory 111 of the work device 104 can be determined on the basis of the trajectory of the sensor arrangement 102 (see FIG. 1).
  • the method 100 may include at 101: manual
  • Work device 104 is carried and / or operated manually (i.e. by a person).
  • the work device 104 can be a work device carried or at least moved by muscle power.
  • Receiver send and / or the external receiver can determine the position and movement of the sensor arrangement 102 in space
  • a signal transmission to the external receiver via radio e.g. Bluetooth
  • the sensor arrangement 102 can have at least one trigger, which with a
  • User interface of the implement 104 is coupled.
  • the trigger can, for example, record the manual control of the work device 104 at the user interface.
  • the trajectory 111 (e.g. position and / or movement) of the sensor arrangement 102 can be detected by means of at least one camera 112 or another type of sensor 112, e.g. by means of a laser scanner 112, one
  • Distance sensor 112 a sonar sensor 112 and / or a radar sensor 112.
  • the method 100 can further optionally include in 103:
  • the movement data or the trajectory 111 can also be smoothed (e.g. so that one is as straight as possible along the
  • the stored parameters of the process sequence can have boundary conditions, such as represent optimal and / or limit values.
  • boundary conditions such as represent optimal and / or limit values.
  • the stored parameters can use the
  • process flow such as the working speed, the holding time, the pressure force, etc.
  • the determined process model 104m can be set up platform-independent, i.e. do not focus on a specific one
  • the method 100 can have in 105: transferring 209 the process model 104m into the control model 116m.
  • the process model 104m can be processed with stored machine-specific information 114m from one or more different machines 114 to form the
  • Control model 116m (also as process and
  • Machine 114 The sum of the machine-specific
  • Information 114m may also be referred to as a model 114m of the or each machine 114.
  • the machine-specific information 114m can
  • the machine-specific information 114m can include at least one tool 114e of the machine 114 (also referred to as machine tool 114e)
  • Positioning device 114p of the machine 114 are attached.
  • the method 100 in 103 can include:
  • Post-processing 207 of the process model 104m can optionally have: post-processing 211 of the control model 116m that has been formed.
  • the post-processing 207 can for example by a user with the help of a
  • User interface 406 also referred to as a user interface
  • application software e.g. executed on a PC, tablet or smartphone
  • the method 100 can optionally include in 207 or 211: visualization and simulation of the
  • Control model 116m or process model 104m in a virtual environment and / or editing the trajectory 111, 113, the process logic, the process parameters and the
  • a spatial sub-model 502 of the process model 104m can, for example, with the representation of the corresponding
  • the method 100 can have in 107:
  • Code generation for one or more than one machine 114 optionally of different types, optionally with the
  • a control program 116 which can be executed by the corresponding machine 114, can be formed by means of the code generation 107.
  • the code generation 107 takes place, for example, in the form of templates that exist for each target language. This
  • Templates have instances of the platform-dependent model as input and describe how from them at the metamodel level
  • Text fragments are generated.
  • these templates also have a pure text output
  • Control structures e.g. branches.
  • a template engine in turn has a template and an instance of the
  • platform-independent model as input and generates one or more text files from it.
  • the code generation 107 can, for example, for a
  • the code generation 107 can, for example
  • the source code can be generated for different target languages, e.g. depending on which target language is suitable for the corresponding machine.
  • the source code e.g. can be subsequently adapted and edited by a developer, for example by means of the
  • Fig. 3 illustrates the method 100 according to various embodiments in a schematic side view 300.
  • the sensor arrangement 102 can, for example, be a software-based method 100 for teaching a
  • Enable industrial robot which is also accessible to a technical layman 106.
  • a non-programmer 106 may be enabled to do a
  • At least one task expert 106 e.g. a mechanic or a welder
  • Control software of the robot 114 can be generated completely automatically.
  • the method 100
  • control model 116m is independent of specific machine types and can therefore also be used for any machine type, e.g. from another manufacturer, can be reused. Conversion of the machine 114 can thus be facilitated.
  • the method 100 can include in 101: acquiring the data by means of the sensor arrangement 102 (clearly a physical sensor component) and / or an additional (clearly external) sensor arrangement 112.
  • the or each mobile unit can be attached to a work device 104 and by means of at least one integrated therein Sensor detect the position and / or the acceleration of the implement 104.
  • Attaching the or each mobile unit of the sensor arrangement 102 to the work device 104 can be carried out in 101 by means of a
  • Fixing devices e.g. magnetic, clip, or Velcro.
  • the sensor arrangement 102 can have at least one trigger 102t (for example on a trigger of a glue gun) which detects manual control of the implement 104.
  • the additional sensor arrangement 112 can determine the position of the
  • Detect sensor arrangement 102 in space 301 Both the data from the sensor arrangement 102 (e.g. its mobile unit) and the data from the external sensor system 112 can be transmitted in a time-synchronized manner to a computing unit 302 (e.g. PC, laptop, etc.) which has the external receiver or is communicatively connected to it.
  • a computing unit 302 e.g. PC, laptop, etc.
  • the sensor arrangement 102 can be calibrated 203 in its relative position (i.e. position and / or orientation) to the work device 104.
  • Coordinate system of the implement 104 can be determined. Furthermore, a calibration can be carried out in a global
  • Fig. 4A illustrates the method 100 according to various embodiments in a schematic flow diagram 400a.
  • a person can exemplarily run the process once or several times with the actual work device 104
  • the process sequence can include screwing a screw using an electric screwdriver 104.
  • the sensor arrangement 102 and / or the additional sensor arrangement 112 can detect at least one measured variable which defines a spatial position (and / or its
  • the trajectory 111 of the work device 104 can be recorded.
  • the trajectory 111 of the implement 104 can, for example, provide information about a speed, a Have the position, an acceleration and / or an orientation of the implement 104.
  • provided function (and / or its change) are recorded in a parameterized manner, e.g. a rotational speed of a shaft of the implement, a temperature of a heating device of the implement, a current through a welding tip of the
  • the trigger 102t can be configured to detect manual control of the implement 104, e.g. at a user interface of the work device 104.
  • the data 402 collected in 101 can be sent to a processing unit 302 (or another processing unit) and there with activity-specific process parameters 404 (e.g.
  • Volume flow of a spray gun 104) can be enriched 403. Enriching with activity-specific
  • Process parameters 404 can for example be done automatically or manually (e.g. via user input).
  • the user can choose from a range of tools (e.g. spray guns) in the graphical user interface of the computing unit.
  • the process-specific parameters e.g. volume flow
  • the process-specific parameters are then queried via an input form.
  • the computing unit 302 can use the acquired data 402 to create 103 the process model 104m (also referred to as a process-specific model), which describes the process task without reference to a specific automation.
  • the processing unit 302 can optionally be set up to change the data 402, for example to optimize and / or abstract it. For example, changing can include to thin out and / or smooth the trajectory 111 (for example the movement data), to identify and / or optimize sub-processes and to close logic connections.
  • the process model 104m can optionally by means of a
  • User interface 406 (e.g. on a PC, tablet or
  • components e.g. sections or individual points
  • the trajectory 111 of the implement 104 can be adapted and / or finely adjusted.
  • an actuation with the at least one trigger 102t can be tracked, changed and / or linked to the trajectory 111.
  • the process model 104m can further be provided with machine-specific information 114m (e.g. the concrete robot platform 114 or at least the end effector 114e), e.g.
  • the processing unit 302 can automatically determine the control model 116m from the process model 104m and the provided machine-specific information 114m.
  • the control model 116m represents a
  • the incoming data is an instance of the platform-independent metamodel (more generally
  • platform dependent model 116m is also available via a
  • the platform-dependent model 116m describes the data types and relationships of the platform-independent models 104m.
  • the model transformation describes a
  • Mapping function such as nodes or groups of nodes from the platform-independent model 104m on nodes or
  • Node groups of the platform-dependent model 116m are mapped. It also describes how these generated nodes are related to each other. The mapping takes place, for example, taking into account the respective
  • a model of the machine can contain, for example, and thus take into account:
  • Machine e.g. maximum gripping force of the end effector and / or degrees of freedom or freedom of movement of the
  • Control variables or controlled variables input variables of the individual actuators or output variables of the individual sensors;
  • End positions of the partial coordinate systems are; permissible operating parameters of the machine, such as the maximum operating temperature.
  • Characteristics of a specifically used platform e.g. machine
  • a specifically used platform e.g. machine
  • the machine-specific control model 116m can optionally be post-processed 211 using a user interface 406 (e.g. provided on a PC, tablet or smartphone).
  • a user interface 406 e.g. provided on a PC, tablet or smartphone.
  • the trajectory 113 of the machine 114 e.g. of the end effector 114e
  • Hold times or the like changed e.g. can be specified.
  • error compensation and / or a communication path with the system control can be defined.
  • a program code 116 can be generated 107 from the control model 116m, which program code is stored on the control device 702 (also referred to as controller 702) of the machine 114
  • the code is generated in the form of templates that exist for each target language. This
  • Templates have instances of the platform-dependent model as input and describe how from them at the metamodel level
  • Text fragments are generated.
  • these templates also have a pure text output
  • Control structures e.g. branches.
  • a template engine in turn has a template and an instance of the
  • platform-independent model as input and generates one or more text files from it.
  • An external system for example a PC, a PLC or the like, can optionally be used to control the end effector 114e.
  • program code 116 for an internal control device 116a of the machine also referred to as robot code
  • Program code 116 for the external system 116b and / or for the communication interface 116b to this can be generated.
  • the machine 114 can have an internal 116a and / or external 116b control device 702, which is set up to control the end effector 114e and / or the positioning device 114p of the machine 114.
  • the program code 116 can from the control device 116a,
  • the program code 116 can denote the respective code in which the control program 116 is written. Depending on the process task, information technology infrastructure and the specific requirements, various target platforms on which the program code 116 is to be listed can be served.
  • the program code 116 can be generated for a communicating overall system (e.g. the
  • Program code 116 can optionally have predefined parts to which the program code 116 can be adapted by a developer.
  • the program code 116 can be changed subsequently, e.g. be adjusted, for example by means of a
  • Fig. 4B illustrates a system 400b for performing the method 100 according to various embodiments in a schematic system diagram.
  • the system 400b can have at least one sensor arrangement 452, for example that which can be attached to the work device 104 Sensor arrangement 102 or the stationary sensor arrangement 112.
  • the system 400b can furthermore have at least one processing unit 302, which has one or more than one processor
  • the system 400b can optionally have a
  • Have code generator 412 which is set up to convert the machine-specific control model 116m into the
  • the system 400b can optionally have a machine 114 which has a control device 702 programmed with the control program 116 and a programming interface 702i, by means of which the control program 116 can be provided to the control device 702.
  • Fig. 5 illustrates the method 100 according to various embodiments in a schematic model diagram 500.
  • the process model 104m (process-specific model) clearly describes a process task without reference to an underlying automation solution.
  • the process model 104m can have several sub-models 502, 504, 506 (e.g. per sub-process).
  • a first partial model 502 (also referred to as spatial model 502) can describe physical, geometric, position-related and / or movement-related properties, e.g. Objects whose shape or position in Cartesian space 701, 703, 705, and / or at least one trajectory 111 in the
  • the spatial model 502 can describe process activities annotated in Cartesian (e.g. gripping an object) and / or the activity-related process parameters.
  • the Cartesian space can be spanned by directions 701, 703, 705 which, for example, are stationary.
  • the first partial model 502 can describe alternative trajectories 111 or sections thereof, which be referenced by means of a third model 506 (also referred to as logic model 506) logic model.
  • the spatial model 502 clearly describes how the process task is carried out in the physical space 701, 703, 705 and which task-specific process activities (for example activating the spray function of a spray gun) are linked to it.
  • the process activities can be carried out by at least one
  • activity-related process parameters e.g. of at least one position-related and / or movement-related
  • Process parameters e.g. a speed
  • Process parameters e.g. a speed
  • At least one functional process parameter (e.g. a volume flow of a spray gun) can be represented.
  • the spatial model 502 describes, for example, the
  • a second partial model 504 (also referred to as a machine-unspecific adaptation model) can describe which
  • different process situations 514 can occur (e.g. painting of component A or component B) and / or how these process situations 514 can be distinguished (e.g. based on a shape of component A and / or shape of component B), e.g. based on criteria.
  • the second partial model 504 defines a criterion for
  • Recognition of a process situation 514 e.g. by means of a
  • the second partial model 504 describes reference data for the criteria that were recorded, for example, during the teaching 101 (e.g. example images of the components).
  • environment variables are defined for this (e.g. shape of the component, temperature, etc.). Based on the environment variables, situations for certain
  • a third partial model 506 (also referred to as a machine-unspecific logic model) describes the underlying process logic 516.
  • the process logic 516 can include at least one control structure 516s (e.g. loop, branch, jump,
  • Link adaptation model 504. In this way a complex schedule can be represented, e.g. "If component A has been recognized, a jump is made to path 111 with the process parameters annotated there".
  • control model 116m can be a fully integrated
  • Represent automation script for a specific hardware selection positioning device 114p, control device 702 and / or end effector 114e).
  • Control model 116m can have multiple sub-models 552, 554, 556, 558.
  • An additional first partial model 552 (also referred to as a physical model 552) clearly describes the spatial information analogously to the physical model 502, however, in relation to the machine 114. For example
  • Process-specific information can be transferred to the coordinate system 705, 713 of the machine 114.
  • the attachment and alignment of the end effector 114e of the machine 114 can be taken into account in order to determine the coordinate system 701, 703, 705 when the implement 104 is detected during the
  • Process parameters of the first partial model 502 are mapped 105a to the specific tool of the end effector 114e (ie machine-specific).
  • An additional second partial model 554 (also referred to as a machine-specific adaptation model 554) can describe a large number of parameters and situations.
  • the parameters can have a name and a data type
  • one or more than one criterion can be used to define how a process situation can be recognized using specific parameter values (e.g. using a sensor of the machine 114).
  • specific parameter values e.g. using a sensor of the machine 114.
  • the dependency for determining the parameter values can be specified on the basis of available sensors 114s of the machine 114.
  • machine-specific adaptation model 554 can be implemented using
  • Adaptation model 504 can be derived and optionally further refined 211 by the user.
  • An additional third part model 556 (also as
  • machine-specific logic model can be a
  • control structures 516s e.g. loops, conditions, etc.
  • the machine-specific logic model 556 can clearly show the other sub-models, e.g. the physical model 552
  • the machine-specific logic model 556 can be generated from the machine-specific logic model 506 by means of mapping 105c
  • a fourth partial model 558 can describe the integration of the automation script with possible third-party systems 518.
  • the external system 518 can have at least one sensor (for example at least one camera), a control device or a business resource planning system (ERP system).
  • ERP system business resource planning system
  • at least one integration-specific protocol can be defined, which the machine 114 communicatively embeds 520 in the system landscape.
  • the interaction model 558 can for example be determined on the basis of the machine-unspecific logic model 504 and can optionally be from
  • the physical model 552 can clearly define movement processes and movement sequences in combination with an activity of the end effector 114e.
  • the interaction model
  • the machine 114 communicates in the system landscape (e.g., transmits data to and / or receives data from the external system 518).
  • Adaptation model 556 describes under which conditions which procedure is required.
  • Fig. 6 illustrates the method 100 according to various embodiments in a schematic flow diagram 600.
  • a control program 116 can be formed which can be executed by the machine 114.
  • the control program 116 can have source code files which are set up in the respective target format of the machine 114.
  • Each machine 114 e.g. robot platform
  • Execute programming language e.g. KRL, Rapid, Visual Basic, etc.
  • Control models 116m in text can be done using templates.
  • the templates can be instantiated with process- and machine-specific models 114m, 104m and generate the respective program code.
  • Fig. 7 illustrates a machine 114 in accordance with various embodiments in a schematic layout diagram 700.
  • the machine 114 may herein be a means of a
  • Control program 116 be programmable machine. Once programmed, the machine 114 can be configured to carry out a process flow autonomously, and optionally the
  • Process sequence i.e. the execution of the task to vary within limits depending on sensor information.
  • the machine 114 can have a control device 702 which is set up to control at least one actuator 704 (also referred to as an actuator) of the machine 114 in accordance with the control program 116.
  • the control device 702 can be set up to control at least one actuator 704 (also referred to as an actuator) of the machine 114 in accordance with the control program 116.
  • the control device 702 can be set up to control at least one actuator 704 (also referred to as an actuator) of the machine 114 in accordance with the control program 116.
  • the control device 702 can be set up to control at least one actuator 704 (also referred to as an actuator) of the machine 114 in accordance with the control program 116.
  • the control device 702 can be set up to control at least one actuator 704 (also referred to as an actuator) of the machine 114 in accordance with the control program 116.
  • the control device 702 can be set up to control at least one actuator 704 (also referred to as an actuator) of the machine 114 in
  • Machine 114 may have a kinematic chain 706 along which an action of the at least one actuator 704 is transmitted, e.g. along the coupling of the links of the kinematic chain 706 with one another.
  • Controller 702 may, for example, be a
  • PLC programmable logic system
  • the kinematic chain 706 can be a
  • Positioning device 114p have positionable end effector 114e.
  • the last link of the kinematic chain 706 of the machine 114, which is set up directly on a can be understood as the end effector 114e
  • Affect the workpiece e.g. to process this (i.e. to process it). Activities such as acting on the workpiece, a preparatory step for it or a
  • the process activity can, for example, be an archetype, joining (e.g. welding, coating, screwing, plugging, contacting, gluing or otherwise assembling) or assembling), separating (e.g. grinding, milling, sawing or otherwise machining, punching or dismantling), forming, heating, relocating (e.g. gripping, fitting, rotating or moving), or the like.
  • the process flow can be web-based, ie by moving the
  • End effector 114e are mapped along a trajectory 113.
  • the positioning device 114p may include at least one
  • end effector 114e can relocate to a position (also referred to as positioning).
  • the end effector 114e can
  • At least one actuator 704 which is arranged to carry out the process activity, e.g. by means of a tool of the end effector 114e.
  • the tool can generally provide a function appropriate to the process activity, by means of which the workpiece is acted upon.
  • Tool can, for example, be an archetype tool
  • Joining tool e.g. screwdriver, glue gun or
  • the joining tool can, for example, be a coating tool (e.g. a
  • Paint spray gun a powder coating gun or be formed from it.
  • the machine 114 can have at least one internal
  • Have sensor 114i which is configured to have a
  • the machine 114 can have at least one external sensor 114s (e.g. a camera) which is set up to detect a property of the environment of the machine 114.
  • at least one external sensor 114s e.g. a camera
  • the external sensor 114s can be used, for example, to recognize whether a predefined process situation is present (ie a situation-related criterion is met). Using the property detected by means of the at least one sensor 114s, 114i, it can be determined, for example, whether a criterion is met. If the criterion is parameterized according to the sensor type (ie mapped onto a property that can be detected by the sensor type), the property detected by the sensor can be compared with the parameterized criterion in order to determine whether the criterion is met.
  • the working point can, for example, define which
  • actuators 704 of machine 114 Describe actuators 704 of machine 114.
  • the storage medium can be provided as part of the control device 702 and / or separately therefrom.
  • the storage medium can for example be an electronic one
  • Semiconductor storage medium e.g. a
  • ROM Read-only memory
  • RAM random access memory
  • USB stick USB stick
  • SSD Solid state drive
  • HDD hard disk drive
  • MD storage disk
  • Storage medium an optical storage medium, a compact disc, a digital versatile disc (DCV), or a magneto-optical disc.
  • control model has been described with reference to a machine.
  • what has been described can apply to a plurality of separate, e.g. among themselves
  • communicating machines e.g. a process line
  • communicate machines apply, as well as for a machine, several
  • Example 1 is a method comprising: determining a machine-independent process model on the basis of data, the data representing handling of a work device when carrying out a process flow, the process flow having a plurality of sub-processes, the process model having one for each sub-process of the plurality of sub-processes Process activity linked with spatial information of the sub-process; Mapping the
  • Example 2 is the method according to Example 1, wherein the mapping comprises the spatial information on one
  • mapping the operating point of a positioning device of the machine; and / or wherein the mapping comprises the
  • Example 3 is the method according to Example 1 or 2, wherein the machine has at least one actuator on which the Operating point is related, for example, the actuator is a motor, for example, the actuator part of the
  • Positioning device and / or the end effector is.
  • Example 4 is the method according to one of Examples 1 to 3, the spatial information being exactly three
  • Coordinate system and / or has exactly three directional coordinates) and / or wherein the spatial information is related to a rectilinear coordinate system.
  • Example 5 is the method according to one of Examples 1 to 4, wherein one or more than one sub-process of the plurality of sub-processes is conditional according to a criterion (also referred to as a conditional sub-process), the model of
  • Machine represents a sensor type of the machine, the mapping having to parameterize the criterion according to the sensor type (e.g. on a sensor detection area
  • Process model has to determine (e.g. on the basis of the data) the criterion and / or the conditional sub-process.
  • Example 6 is the method according to one of Examples 1 to 5, wherein the mapping comprises mapping the spatial information onto a coordinate system of the machine (which e.g. is related to the at least one actuator of the machine).
  • Example 7 is the method according to one of Examples 1 to 6, wherein the determination of the process model comprises assigning one or more than one process logic (e.g. a rule)
  • the determination of the process model comprises assigning one or more than one process logic (e.g. a rule)
  • the process logic optionally being set up to determine whether the criterion is met, for example the
  • Example 8 is the method according to one of Examples 1 to 7, the machine-independent process model (eg its process logic) for at least one sub-process of the
  • Multiple sub-processes at least two links between process activity and spatial information of the
  • Sub-process whereby the two links are alternatives, between which a decision is made based on a criterion (e.g. using the process logic).
  • Example 9 is the method according to one of Examples 1 to 8, wherein the spatial information represents a position and / or orientation of the implement; and / or wherein the process activity is an actuation and / or a
  • Example 10 is a method according to any of Examples 1 to 9, further comprising: presenting the
  • User interface which is set up to change the machine-independent process model or the machine-specific control model on the basis of a user input.
  • Example 11 is a method according to one of Examples 1 to 10, further comprising: Acquiring the data at least in part by means of a sensor arrangement which is connected to the
  • Working device is attached, optionally the working device (e.g. directly and / or muscle-powered) being handled and / or carried by a person (e.g. their hand), with, for example, the sensor arrangement being removable (i.e.
  • Example 12 is a method comprising: detecting
  • Data for example the data according to one of Examples 1 to 11, at least in part by means of a sensor arrangement which can be removed from a (for example manually movable) working device is attached, the data being a handling of the
  • Work device a process sequence is carried out, wherein the work device is moved by a person; Determination of a machine-independent process model based on the data, which represents the process flow, furthermore
  • Example 13 is the method according to Example 11 or 12, the sensor arrangement having a fastening device by means of which the sensor arrangement is detachably fastened to the working device.
  • Example 14 is the method according to any one of Examples 11 to 13, wherein the sensor arrangement (e.g. their
  • Fastening device has one or more than one magnet; and / or a clamping device (e.g. comprising a clip and / or clamping screws); and / or has a Velcro strip.
  • a clamping device e.g. comprising a clip and / or clamping screws
  • Example 15 is the method according to any one of Examples 11 to 14, wherein the sensor arrangement is separate from that
  • Working device is supplied with energy; and / or wherein the sensor arrangement is galvanically separated from the working device.
  • Example 16 is the method according to one of Examples 11 to 15, wherein the sensor arrangement has one or more than one trajectory sensor (e.g. position sensor and / or movement sensor) by means of which the data are recorded.
  • the sensor arrangement has one or more than one trajectory sensor (e.g. position sensor and / or movement sensor) by means of which the data are recorded.
  • Example 17 is the method according to one of Examples 11 to 16, the sensor arrangement having an operating point sensor, by means of which an operating point of the working device is detected, with the operating point sensor, for example has a flow sensor, a temperature sensor and / or a current sensor (eg power sensor).
  • the operating point sensor for example has a flow sensor, a temperature sensor and / or a current sensor (eg power sensor).
  • Example 18 is the method according to one of Examples 11 to 17, further comprising: wireless transmission of the data from the sensor arrangement to a base station, the
  • Base station has, for example, a computing unit, wherein the computing unit is used to determine the
  • Example 19 is the method according to any one of Examples 1 to 18, wherein the data e.g. by means of the
  • Sensor arrangement are detected, represent a trajectory (e.g. a position-related and / or movement-related property) of the implement, and / or a property according to the work point of the implement (for example
  • Example 20 is the method according to Example 19, wherein the determination of the machine-independent process model comprises a trajectory of the process sequence, e.g. along which the implement is guided and / or the sub-processes
  • Example 21 is the method according to one of Examples 1 to 20, wherein the determination of the machine-independent
  • Process model also has to take into account at least one boundary condition for the process activity and / or the spatial information, wherein, for example, the determination of the machine-independent process model further comprises a model of at least one sub-process of the plurality of
  • the boundary condition for example
  • Example 22 is the method according to Example 21, wherein the at least one boundary condition is related to temporal information and / or mechanical information, wherein, for example, the at least one boundary condition is a
  • Example 23 is the method according to one of Examples 1 to 22, the data being recorded in a time-resolved manner.
  • Example 24 is the method according to any one of Examples 1 to 23, wherein the model of the machine, a sensor type of the machine, an end effector of the machine, a
  • Example 25 is the method according to one of Examples 1 to 24, the machine-independent process model also representing a result of the process sequence.
  • Example 26 is the method according to one of Examples 1 to 25, further comprising: mapping the machine-specific control model to a control program which can be executed by the machine, e.g. whose code segments are set up according to a programming interface of the machine.
  • Example 27 is the method according to Example 26, wherein the mapping of the machine-specific control model to the control program comprises using one or more than one template.
  • Example 28 is the method according to Example 27, the template using the model of the machine, the process model and / or a model of at least one sub-process
  • Example 29 is the method according to one of Examples 1 to 28, further comprising: Acquiring the data at least in part by means of an additional sensor arrangement which is arranged in a stationary manner, for example the acquisition of the additional sensor arrangement and the sensor arrangement and / or the corresponding parts of the data be synchronized.
  • Example 30 is the method according to Example 29, wherein the additional sensor arrangement is an optoelectronic sensor, a distance sensor, a sonar sensor and / or a
  • a trajectory e.g. a position-related and / or
  • Example 31 is a system comprising: one or more than one processor which is set up to carry out the method according to one of Examples 1 to 30, optionally further comprising a wireless communication device for wireless communication with the sensor arrangement and / or the additional sensor arrangement.
  • Example 32 is the system according to Example 31, furthermore
  • Memory in which the machine-independent process model, the machine-specific control model and / or the model of the machine are or will be stored; and / or one or more than one sensor arrangement for acquiring the data.
  • Example 33 is a non-volatile memory comprising code segments that are established when executed by a processor, the method according to any one of Examples 1 to 30.
  • Example 34 is a machine-independent process model, e.g. process model from the method according to one of Examples 1 to 30, the process model for each sub-process of a large number of sub-processes linking a process activity with spatial information of the sub-process, the several sub-processes being part of a process flow, which is carried out by means of a working device, for example the spatial information exactly three
  • Coordinate system and / or has exactly three directional coordinates) and / or wherein the spatial information is related to a rectilinear coordinate system.

Landscapes

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

Abstract

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

Description

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

Claims

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102019105820.1A DE102019105820A1 (de) 2019-03-07 2019-03-07 Verfahren, System sowie nichtflüchtiges Speichermedium
PCT/EP2020/056052 WO2020178435A1 (de) 2019-03-07 2020-03-06 Verfahren, system sowie nichtflüchtiges speichermedium

Publications (1)

Publication Number Publication Date
EP3934858A1 true EP3934858A1 (de) 2022-01-12

Family

ID=69784434

Family Applications (1)

Application Number Title Priority Date Filing Date
EP20710474.6A Pending EP3934858A1 (de) 2019-03-07 2020-03-06 Verfahren, system sowie nichtflüchtiges speichermedium

Country Status (7)

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

Families Citing this family (1)

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

Family Cites Families (22)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
EP3013537B1 (de) Verfahren und system zur programmierung eines roboters
EP2539116B1 (de) Prozessmodulbibliothek und programmierumgebung zur programmierung eines manipulatorprozesses
DE102013113370B4 (de) Roboteraufgabensteuerungskomponente mit erweiterbarer programmierumgebung
EP2285537B1 (de) Vorrichtung und verfahren zur rechnergestützten generierung einer manipulatorbahn
DE102010045529B4 (de) Interaktives Robotersteuerungssystem und Verwendungsverfahren
DE102011079117B4 (de) Verfahren zum Programmieren eines Roboters
DE102012218297B4 (de) Verfahren zur dynamischen Optimierung einer Robotersteuerschnittstelle
Nagata et al. Development of CAM system based on industrial robotic servo controller without using robot language
DE102019205651B3 (de) Verfahren und System zum Ausführen von Roboterapplikationen
DE102019134794B4 (de) Handgerät zum Trainieren mindestens einer Bewegung und mindestens einer Tätigkeit einer Maschine, System und Verfahren.
EP4078311A1 (de) Handgerät zum trainieren mindestens einer bewegung und mindestens einer tätigkeit einer maschine, system und verfahren
EP3934858A1 (de) Verfahren, system sowie nichtflüchtiges speichermedium
DE102020200165B4 (de) Robotersteuereinrichtung und Verfahren zum Steuern eines Roboters
Froschauer et al. Workflow-based programming of human-robot interaction for collaborative assembly stations
DE202019005591U1 (de) System aufweisend ein Handgerät zum Trainieren mindestens einer Bewegung und mindestens einer Tätigkeit einer Maschine
Syrjänen Task level robot programming: Background, methods and current state
DE112022000487T5 (de) Befehlserzeugungsvorrichtung und Computerprogramm
Karlsson et al. Remote Programming and Configuration of a Robotic System: A Workplace Oriented Case Study
Sprumont et al. KASBA: A Knowledge-based System For Flexible Assembly Execution
DE102016204137A1 (de) Programmierbares Manipulatorsystem mit einer Funktionsschaltervorrichtung

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20210713

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
TPAC Observations filed by third parties

Free format text: ORIGINAL CODE: EPIDOSNTIPA

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20240327