WO2017050895A1 - Robotersteuerung - Google Patents

Robotersteuerung Download PDF

Info

Publication number
WO2017050895A1
WO2017050895A1 PCT/EP2016/072543 EP2016072543W WO2017050895A1 WO 2017050895 A1 WO2017050895 A1 WO 2017050895A1 EP 2016072543 W EP2016072543 W EP 2016072543W WO 2017050895 A1 WO2017050895 A1 WO 2017050895A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion
movement
trajectories
robot
program
Prior art date
Application number
PCT/EP2016/072543
Other languages
English (en)
French (fr)
Inventor
Michael Riedl
Dominik Henrich
Johannes Baumgartl
Original Assignee
Universität Bayreuth
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 Universität Bayreuth filed Critical Universität Bayreuth
Publication of WO2017050895A1 publication Critical patent/WO2017050895A1/de

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1669Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34348Coordination of operations, different machines, robots execute different tasks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Definitions

  • the present invention relates to a method and a programmer for generating a control program for an interaction between mobile robot components.
  • a robot component is to be understood on the one hand as a simple robot interacting with other robots, but on the other hand in complex robots with multiple components but also each individual component of such a robot which can be controlled separately from other components of the robot in question, for example Robotic arms, grippers, tools, work machines, robot landing gear or the like.
  • the invention particularly relates to the generation of a control program for an interaction between a plurality of movable robot components of a single robot.
  • robot component also includes other movable or controllable technical devices that may be involved in an interaction, for example conveyor belts, rotatable and / or pivotable tables and holders, or the like.
  • the automated interaction of such robotic components requires their spatial and temporal synchronization to allow two or more robotic components to interact as desired, for example, to successfully collaborate on an object.
  • interaction thus refers to the common movement sequence of several cooperating robot components of one or more robots within a certain time window, wherein the temporal and / or spatial coordination of the robot components necessary for the interaction is ensured by synchronization mechanisms ,
  • guide-centered programming is often used (also called teach-in or playback programming), in which the robot components switched without force are guided individually by an operator along those movement trajectories which the respective robot components are to travel during the interaction.
  • the trajectories traversed manually or with the aid of a manual programmer are recorded and converted into a control program which subsequently controls the interaction by reproducing the trajectories of movement by the robot components.
  • control programs generated in this way are generally not readily usable, since the movement trajectories recorded individually and independently of other robot components and their trajectories require synchronization or at least a fine tuning, so that the interaction successfully performed.
  • control programs composed of the corresponding program sections can hardly be edited to synchronize the trajectories with respect to the interaction, since the automated translation of the recorded trajectories often produces confusing and complex program code, the editing of which requires considerable knowledge and at great expense for the programmer is.
  • each robot component involved in the interaction first passes through at least one movement trajectory manually.
  • a robot component can also drive through several movement trajectories, provided that this robot component has to carry out a plurality of possibly separate movements during the course of the interaction. All movement trajectories that form part of the interaction are recorded by a programmer and translated into program sections of the control program to be generated.
  • the movement trajectories are translated in such a way that the corresponding program sections can be executed or interpreted by a robot controller connected to the robot components, and that the respective movement trajectory is reproduced when a program section is executed by the robot components. That is to say, when a program section is executed, the associated robot component independently traverses that movement trajectory that was previously translated into the relevant program section.
  • a plurality of motion trajectories have been recorded for a robot component
  • a plurality of motion trajectories are translated into a contiguous program section that reflects the overall motion of that robot component as part of the interaction to be programmed.
  • motion representations are each assigned to specific robot components or other moving components otherwise involved in the interaction, such as conveyor belts or the like, so that each motion representation graphically represents the motion trajectory of this component.
  • a motion representation may also represent a plurality of movement trajectories of the same component, provided that a plurality of movement trajectories, interrupted for example by resting phases, have been recorded for them.
  • each robot component is associated with a motion representation, each representing the one or more motion trajectories of the respective robot component and corresponding one or more program sections that include control commands executable by the robot controller to reproduce the corresponding motion trajectories.
  • a motion representation as well as the associated motion trajectories and program sections thus describe respectively equivalent motion sequences of the robot component concerned in the context of the interaction to be programmed at different abstraction levels starting from the technically concrete level of the control commands, wherein the motion representation has the highest degree of abstraction and therefore easiest by a Pro - grammierer can be edited or manipulated.
  • the term of the robot component comprises the suitable components and subcomponents of one or more robots as well as all other movable elements and objects which are connected to the robot Interaction are involved, it allows the invention via the manipulation of the corresponding motion representations to synchronize all these components and to coordinate with respect to the desired interaction.
  • the speed of a conveyor belt can be tuned to the movement of a robot arm so that an object on the conveyor belt can be reliably gripped.
  • the opening of a gripper of a robot can be synchronized with a movement of the robot in space so that the robot waits, for example, until the gripper has safely gripped and raised an object.
  • Such objects whose space representations may be imported or stored, for example, or for which placeholders may be provided in a control program, which are filled in further steps of the robot programming, are taken into account by techniques and mechanisms which are not the subject of the present invention.
  • the motion representations according to the invention are in this case accessible to manipulation by a programmer through graphic adjustments, so that the motion representations can be finely coordinated with each other in an intuitive manner in terms of interactions, so that the interaction between the robot components can be defined correctly synchronized.
  • the graphically manipulated motion representations are in turn transformed into equivalent motion trajectories and translated into equivalent program sections of the control program such that when the control program is executed, the robotic components correctly account for manipulation of the motion representation by the programmer.
  • the present invention expands conventional motion-centered robot programming (playback or teach-in programming) with intuitive representation, analysis, manipulation, and synchronization methods that allow a programmer to immediately tune and match motion trajectories to synchronize that a correct interaction is defined.
  • the programmer does not require any special programming knowledge and little knowledge of robotics, but can immediately make all necessary changes, manipulations and adjustments on the abstract level of the movement representations in order to achieve the fine-tuning of the movement trajectories.
  • the motion representations according to the invention make it possible to provide the programmer with a simple and intuitive graphical manipulation interface, with which the conventional complex editing of the program sections or the control program is avoided.
  • the method according to the invention is realized by means of a programming device which comprises a recording unit which records movement trajectories traveled with a robot component, and a translation unit which translates the recorded movement trajectories into equivalent program sections of the control program.
  • the programming device further comprises a conversion unit, a graphical manipulation interface and a transformation unit, wherein the conversion unit transforms one or more recorded movement trajectories into graphical motion representations along the time axis, while the transformation unit transforms the movement trajectories according to a manipulation of the associated motion representation such that the manipulated motion representation and the transformed movement trajectories describe the corresponding changed movement sequence of the respective robot components equivalently.
  • the manipulation interface in turn appropriately graphs the motion representations provided by the translation unit on a display unit of the programmer, for example, in the form of graphically rendered timings, bar graphs, or the like, so that a programmer can easily manipulate them to provide a spatial and graphical representation time fine tuning of the respective movement trajectories, for example, in terms of time by scaling the graphically displayed time courses and spatially by changing process parameters pertaining to the position or state of a robot component in space.
  • the programming device may be part of a programming and control system according to the invention, which additionally comprises a robot control, which is connected via a control connection with the robot components to be programmed.
  • the control program can be programmed on the programmer and then transmitted via a data link to the robot controller and executed there.
  • the translated program sections each form part of the control program.
  • the control program can essentially only consist of the combined program sections or can be generated from the program sections as part of a compilation process.
  • This compilation is preferably also carried out by the translation unit, but can also be performed by a separate compilation unit of the programming device.
  • synchronization information and process parameters from the motion representations are taken into account in order to integrate the separate program sections in the required manner into the control program.
  • the motion representations of the robotic and other components involved in the interaction are represented by the manipulation interface in the form of an editable Gantt chart, each time bar corresponding to a motion representation.
  • the programmer receives an intuitive line by line representation of the associated motion representation for each robot component. which also visualize the different movement trajectories for the programmer, for example by marking rest periods of the robot component concerned accordingly.
  • the time bars of the Gantt diagram are preferably arranged along a global time axis, so that the relative time sequence of the movement sequences of the robot components is immediately apparent and easy to manipulate.
  • Each individual motion representation can additionally or alternatively also be equipped with its own time axis in order to individually scale or change its temporal resolution, for example in the case of particularly fast or slow motion sequences.
  • the Gantt-Dar position offers the programmer in particular a time-sufficient resolution, so that this can perform similar operations as in the video editing, for example, to record recorded motion trajectories or their sections within certain time intervals by cut-and-paste and then cut out to put together modified to regroup, store or otherwise manipulate without having to edit the relevant program sections or the control program consuming.
  • the programming of the interaction can therefore take place on the Gantt diagram on a graphic-abstract level, because manipulations of the Gantt diagram are automatically taken over into correspondingly transformed trajectories and associated program sections.
  • the bar-shaped motion representations which represent the movement trajectories of all robots and other components involved in the interaction, can also be represented by annotations, process or synchronization information. be added, for example, by clicking on visible and / or editable.
  • the manipulation interface preferably provides manipulation functions via which the programmer can insert synchronization points and / or synchronization intervals in the motion representations in order to predefine spatial and / or temporal dependencies between the movement trajectories of at least some robot components.
  • the motion representations are then grouped and adapted according to the synchronization points and / or synchronization intervals, for example by being shifted along the time axis or stretched, compressed or otherwise scaled - ie their speed changed - that the synchronization points and / or synchronization intervals the same place and / or come to lie in the same period of the time axis.
  • Such manipulations of the motion representations are then automatically taken over into the respective trajectories and program sections, so that the motion sequences of the robot components take place synchronously in time in accordance with the predetermined synchronization points and / or synchronization intervals.
  • the manipulation interface also provides functions for inserting or replacing portions of the motion representations. These manipulations are automatically transformed and translated.
  • the programmer can, for example, insert an already present or another recorded and converted motion representation at a marked point in time in a motion representation to be manipulated, so that at the marked point in time also a trajectory is represented. re trajectory is inserted.
  • the manipulation interface preferably offers two different variants of the extension function, namely on the one hand an insertion at the marked position, so that the total motion representation receives a prolonged runtime, or a replacement or overwriting, in which the duration of the motion representation can remain unchanged overall.
  • a time interval can additionally be specified in which the further motion representation is used in an overriding manner and at the same time scaled to the length of the time interval.
  • the extension function of the manipulation interface is designed so that both an offline extension and an online extension is possible.
  • a motion representation is inserted representing an already recorded movement trajectory which has been either recorded with the present programmer or otherwise and read into the programmer by means of an import function.
  • the programmer also provides an export function to select motion trajectories based on the corresponding motion representation and then to save in a suitable exchange format or to export to other facilities for transmission.
  • a motion trajectory is inserted "live", that is, as it is recorded, so that a movement trajectory can be traversed, recorded and manipulated by manipulating the motion representation in one step.
  • the manipulation interface also provides the programmer with functions for activating and executing program sections by means of the programmer.
  • programming and control system available.
  • the control program may be tested during the programming process by selecting individual motion representations in whole or in part via the manipulation interface so that the respective trajectories are reproduced by the robot components by executing the corresponding program sections or control program, for example synchronization of the motion trajectories to consider.
  • program sections and / or control programs can also be programmed by a programmer manually or semi-manually on the programmer (offline programming) or imported into it.
  • Such programmed or imported program sections and / or control programs are automatically implemented by the programmer in the motion representations, which include corresponding movement trajectories for the respective robot components. Via the manipulation interface, these movement trajectories can in turn be matched and synchronized.
  • the graphical manipulation interface also provides a function for 3D rendering of the robot components on a display unit of the programmer, such that selected portions of the motion trajectories on the display unit are played in one or more motion representations, for example over a marked time or a marked time interval be used to simulate the respective movements of the robot components based on their SD representations or visually check in a virtual environment, for example, on collision points or discontinuities, resulting from the current trajectories.
  • the manipulation interface preferably also provides functions for consistency checking that performs an automatic collision check or interpolation of discontinuity points based on the trajectories, either visualized by the SD representation of the robot components or in the form of an automatic transformation of the current movement trajectories.
  • collision detection collision points are detected in the movement trajectories, that is, times are determined in the movement trajectories or motion representations at which a robot component collides with itself or two or more robot components collide with each other, for example by doing the same occupy a spatial position.
  • These collision locations are preferably automatically corrected by transforming the movement trajectories in such a way that the collision locations are bypassed without collision, for example by temporal equalization or spatial adaptation of the respective movement trajectories.
  • discontinuity points are detected in the movement trajectories, that is to say points in time at which a robot component is to make a sudden movement which is not technically feasible, for example as a result of the insertion of a new section into a movement trajectory at the beginning or end is discontinuous with respect to the original trajectory.
  • the relevant movement trajectory is automatically supplemented continuously at the point of discontinuity, for example by inserting a short time interval in which the robot component in question can change between the mutually unsteady positions.
  • the movement trajectory in question can be adapted correspondingly continuously in a time interval immediately before or immediately after the point of discontinuity.
  • the consistency checking functions first transform the motion trajectories to correct for collision or discontinuity locations so that the corrected trajectories are subsequently translated into equivalent motion representations to provide the programmer with the current state of the programmed interaction.
  • consistency checks may be initiated by the programmer through the manipulation interface, they are preferably performed automatically as soon as the programmer manipulates the motion representations.
  • Figure 2 is a schematic representation of the programmer according to the invention and a robot controller with connected robot components;
  • FIG. 3 shows an exemplary embodiment of the graphical manipulation interface according to the invention in the form of a Gantt diagram.
  • FIG. 1 schematically shows the steps implemented by the programming device 1 according to FIG. 2 for generating or interweaving different equivalent descriptions of an interaction between robot components 5a, 5b.
  • These equivalent descriptions are the motion representations R, the movement trajectories T, the program sections P and the control program S.
  • These forms of interaction of robot components 5a, 5b gradually abstract the concrete control commands that the robot controller 2 transmits via the control links 3 to the robot components 5a, 5b to control their movements.
  • control program S represents a software program in a computer language that can be executed or interpreted by the robot controller 2 to drive the robot components 5a, 5b to perform the desired interaction.
  • the program sections P in turn represent parts of the control program S, each one or describe several movements of a specific robot component 5a, 5b in the context of the interaction. These are also in a suitable computer language, but not necessarily the same, in which the control program S is present.
  • the movement trajectories T in turn each describe one or more movements of a specific robot component 5a, 5b in the context of the interaction.
  • the movement trajectories T are present in a suitable description language, which as a rule can not be executed or interpreted by the robot controller 2, but which is optimized and tuned to describe the movement sequences of the robot component 5a, 5b as exactly as possible spatially and temporally resolved.
  • the dashed arrows in Figure 2 indicate the movement trajectories.
  • a programmer who programs the control program S in a conventional manner requires extensive knowledge of at least one of the computer or description languages in which the motion trajectories T, the program sections P or the control program S are technically available. In addition, it may be very time-consuming and software-technically challenging for a programmer to program the desired interaction using standard programming techniques based on the motion trajectories T or the program sections P.
  • another abstraction stage is provided for the programming of the interaction, namely in the form of the motion representations R, which graphically represent the movement trajectories T and thereby allow the interaction to be performed in an intuitive and efficient manner.
  • each of the bars 20 represents a motion representation R.
  • the programmer can finely tune the movement trajectories T of the robot components 5a, 5b intuitively and on the basis of graphical manipulation functions in such a way that they correctly synchronize and completely describe the interaction.
  • Knowledge of certain descriptive or programming languages are not necessary for this, because each motion representation R maps all movement trajectories T completely graphically, which is to reproduce a certain robot component 5a, 5b in the context of the interaction.
  • the complex and complex manual editing of the movement trajectories T, the program sections P or the control program S is unnecessary.
  • the steps S to S7 shown in FIG. 1 respectively represent functions of the programming device 1 which generate, manipulate or equivalently transfer the descriptions R, T, P, S into one another.
  • the reference numbers indicated in squares in FIG. 1 indicate in this case those modules and units of the programming device 1 which implement the corresponding step on a technical level.
  • These units of the programming device 1 are preferably realized as software modules or software programs that can be executed by a processor (not shown) of the programming device 1 or interpreted by an interpreter.
  • the programming device 1 comprises a recording unit 11 executed in software, a conversion unit 12, a manipulation interface 13, a transformation unit 14 and a translation unit 15.
  • the manipulation interface 13, in turn, is subdivided into a manipulation unit 13a and the manipulation switch 13b accessible to the programmer via the display unit 16, via which various functions for manipulating the movement representations R can be performed the manipulation unit 13a are technically realized.
  • a central unit 10 which is also preferably present as executable on a processor software program.
  • the CPU 10 also has access to a memory 19 in which various data related to the present invention are stored, in particular the motion representations R, the movement trajectories T, the program sections P, and the control program S.
  • the programming method implemented by the steps of FIG. 1 is a so-called guide-centered programming of a robot interaction in which the trajectories to be traveled by each individual robot component 5a, 5b are first traversed by the programmer manually or by means of suitable technical aids and thereby in step S1 are recorded by the recording unit 11 as movement trajectories T.
  • movement trajectories T are generated, which together in each case reproduce the course of movement of a single robot component 5a, 5b interrupted, if appropriate, by resting phases.
  • robot component here describes not only individual robots as a whole, but in particular all movable components of a robot, insofar as they can be controlled autonomously from one another.
  • the movement trajectories T are indicated by dashed arrows describing the spatially and temporally resolved movement of the two gripping arms, which is dependent on the timing of three joints. Further movement trajectories T can, for example, describe the closing movements of the two grippers themselves, or the movement of the indicated conveyor belt or of an object located thereon and indicated as a box. For the complete description of the joint gripping of the object by the two robots, therefore, at least five movement trajectories T are required, which are coordinated spatially and temporally exactly to one another so that the desired interaction is successfully carried out. For example, if the positioning of the gripper arms takes place in several separate sections, for example by a coarse positioning near the target point and a subsequent fine positioning exactly on the target point, correspondingly more trajectories T are recorded.
  • step S2 the conversion unit 12 converts the recorded movement trajectories T into equivalent motion representations R, wherein a motion representation R can also represent a plurality of trajectories T of the same robot component 5a, 5b, for example trajectories T for coarse and fine positioning of a gripper arm.
  • the motion representations R are preferably in a data format that is tuned to their graphical representation and that differs from the data format of the trajectories T.
  • Step S2 relates only to the implementation of the trajectory format in the representation format.
  • the Gantt diagram 18 is shown with four bar graphs 20 along the time axis 21, each representing a motion representation R.
  • Each bar 20 may comprise a plurality of sections 20a, each forming a movement trajectory T of the respective robot component Kl, K2, K3, K4, for example the trajectories of the gripping arms 23a (Kl) and 23d (K3) shown in the upper part of FIG associated gripper 23b (K2) and 23c (K4).
  • the manipulator 13 has access to the manipulation interface 13 and, in particular via the manipulation switches 13b and the graphically editable Gantt diagram 18, manipulation functions implemented by the manipulation unit 13a with which the movement representations R are manipulated in such a way. can be edited, edited, or coordinated with each other, that the interaction when executing the corresponding control program S is performed synchronized by the robot components 5a, 5b.
  • the programmer selects the desired manipulation function by actuating one of the manipulation switches 13b and / or processes the Gantt diagram 18 accordingly, for example by stretching, compressing, displacing or supplementing individual sections 20a of the bars 20.
  • step S4 the transformation unit 13 transforms the respective motion trajectories T in accordance with the manipulations performed on the motion representations R in step S3 to establish the equivalence between the manipulated motion representation R and the associated motion trajectories T.
  • step S6 the translation unit translates the transformed trajectories T into program sections P, which also take into account the manipulations performed on the motion representations R in step S3.
  • each movement trajectory T preferably corresponds to exactly one program section P. If it is advantageous for software reasons, a program section P can also correspond to a plurality of trajectories T, for example those trajectories T that are dependent on a motion representation R, ie a bar 20 of the Gantt Diagram 18, to be represented.
  • step S7 the translation unit 15 integrates the program sections P into a complete control program S.
  • a manipulation step S5 is also possible, which directly aims at a transformation of the movement trajectories T, without a priori.
  • a transformation step S5 is, for example, the consistency check of the trajectories T, for example with regard to spatial collisions of the robot components 5a, 5b or points of discontinuity within a movement trajectory T.
  • a transformation S5 can be triggered either by actuation of a manipulation switch 13b in addition, if no further manipulation of the Gantt chart 18 by the programmer is required, or caused by the central processing unit 10, for example as part of regular, automated checking and correction runs.
  • the thus transformed trajectories T are translated into translated motion representations R (step S2) and program sections P (step S6).
  • the manipulation interface 13 via the manipulation switches 13b and the Gantt diagram 18 provides various manipulation functions for adding, removing, synchronizing, storing, loading, importing, exporting, rearranging, testing and executing the movement trajectories T which automatically result in the transformation (step S4) of the respective trajectories T and translation (step S6) of the transformed trajectory T into equivalent program sections P.
  • synchronization points 25 or synchronization intervals 26 can be marked in the Gantt chart 18 so that the manipulation unit 13a automatically aligns and / or scales the corresponding bars 20 of the motion representations R in such a way that the specified times 25 or time intervals 26 in the Gantt chart 18 come to lie one above the other, that is, synchronized with respect to the time axis 21.
  • the programmer thus defines temporal and / or spatial dependencies between the trajectories T, which are automatically taken into account by the manipulation unit 13a, such that the synchronization points 25 and intervals 26 are compressed, stretched, shifted or otherwise adjusted with respect to the time axis be superimposed in the Gantt chart 18.
  • FIG. 3 shows a synchronization interval 26 specified by the programmer and a synchronization point 25. While the sections 20a of the components K1, K3 and K4 are already sufficiently synchronous at the start of the synchronization interval 26, the manipulation unit 13a must connect the corresponding sections 20a of the components K2 and K3 or K4 match each other so that they begin together with the end of the synchronization interval 26 and / or end together. Correspondingly, the manipulation unit 13a will tune the sections 20a to the synchronization point 25 such that the short section 20a of the component K4 immediately following the synchronization point 25 will start exactly at the synchronization point 26 and thus at the end of the last section 20a of the component Kl.
  • all or individual of the bars 20 may be aligned along their own time axes with individual time resolution in order to represent the motion representations R more expediently and to be able to manipulate them more easily.
  • each of the sections 20a of the beams 20 can also have their own, individual time axis, so that they can be stretched, compressed or otherwise temporally manipulated independently of other sections 20a.
  • Sections of the motion representations R can again be selected via the time axes and suitably adapted to the interaction via a manipulation of the type and length of the respective time axis.
  • the existing movement trajectories T can be supplemented by a further movement trajectory T or further sections of movement trajectories T, while the corresponding robot components 5a, 5b are guided by the further movement trajectory T and these are recorded by the recording unit 11.
  • a time 22 can be marked in a bar 20 of the Gantt chart 18 at which this further movement trajectory T in the insert mode in FIG the movement trajectory T represented by the relevant motion representation R.
  • an overwrite mode can also be selected via the manipulation switches 13b, in which a further movement trajectory T recorded "live” extends the movement trajectory T from a defined point in time 22 or within one overwrites selected time interval.
  • time intervals similar to the synchronization intervals 26 may be selected in some or all of the bars 20, so that all manipulations in the context of step S3 within the selected time interval are performed uniformly by the manipulation unit 13a in all the motion representations R.
  • the trajectories T of one or more robotic components 5a, 5b can be adjusted, aligned or programmed independently of other robotic components 5a, 5b, or manipulated by drag-and-drop or copy / paste operations.
  • the manipula- tion interface 13 manipulation functions for moving or scaling, stretching or upsetting ready to thereby change the time resolution of the bars 20 and / or the execution speed of the trajectories T.
  • Portions of the bars 20 may also be arbitrarily selected and then copied or cut out to reinsert them at other positions, with the corresponding sequence for the represented movement trajectories T.
  • the programmer manually sets only the synchronization point 25 or the start and end points of the synchronization interval 26, while the actual manipulation of the motion representations R is performed independently by the manipulation unit 13a such that the respective trajectories T are in accordance with the programmer's specifications be synchronized.
  • the various editing functions such as copying, shifting, cutting and pasting, are performed manually and essentially completely by the programmer on the relevant motion representation R, so that the manipulation unit 13a is generally not used here or only to a very limited extent comes.
  • motion trajectories T may also be played within time intervals selected in the motion representations R in the window 17 in which a 3D virtual representation of the robot components 23a, 23b, 23c, 23d is displayed.
  • the interaction, controlled via the Gantt chart 18, can be simulated or tested by specifying certain states of the robot components 23a, 23b, 23c , 23d to a specific Time 22 or within a certain time interval of the movement trajectories T can be visualized.
  • the manipulation section 13 provides functions, so that the control program S, possibly after a successful simulation, can be transmitted from the central unit 10 via the data connection 4 to the robot controller 2.
  • Time intervals or motion representations R selected in the Gantt chart 18 are then executed by the (real) robot components 5a, 5b, mediated by the central unit 10 and the robot controller 2.
  • Time 22 indicates the instantaneous position within the motion representations R.
  • this reproduction function can also only concern individual movement trajectories T addressable via the Gantt diagram 18 and can be interrupted and resumed as desired.
  • manipulation switches 13b also provide functions for importing and exporting as well as storing and reading movement trajectories T or program sections P.
  • movement trajectories T of other interactions can be imported via a suitable interface of the programming device 1, which if necessary were not recorded by playback or teach-in programming but were completely modeled within a virtual environment.
  • Gantt chart 18 these imported trajectories T can be further processed or combined with other interactions.
  • Imported movement trajectories T are automatically converted by the conversion unit 12 into motion representations R and represented by the manipulation unit 13 as a Gantt diagram 18.
  • the programming device 1 masters the common exchange data formats, for example those from the CAD or CNC Range, such as STEP or STEP-NC.
  • An exemplary application of such import / export is the post-processing of motion trajectories T, which were not generated by a teach-in process, but exclusively in a virtual environment by simulation of a desired interaction.
  • the manipulation interface 13 offers, via the manipulation switches 13b, functions for checking the consistency of the interaction, which relate to an interpolation of unsteady movement trajectories T and / or a collision check of the trajectories T.
  • a transformation step S5 therefore, points of discontinuity in the movement trajectories T are detected and continuously supplemented on the one hand, and collisions of the robot components 5a, 5b within the interaction are recognized and automatically bypassed on the other hand.
  • a section is then inserted at the corresponding point of the movement trajectory T concerned, for example, which provides sufficient time for the relevant robot component 5a, 5b to be technically transferred from one position to the other.
  • the movement trajectories T are changed in such a way, for example by temporal or spatial displacements of the robot components 5a, 5b, that the collision is bypassed.
  • Such consistency checks can be visualized and monitored in the window 7 on the basis of the virtual SD representation of the robot components 23a, 23b, 23c, 23d.
  • the motion representations R are equivalently adjusted (step S2) and the Gantt diagram 18 is updated accordingly.
  • the manipulation interface 13 also offers functions for inserting or editing metadata or process parameters in the motion representations R, which relate, for example, to spatial coordinates of the robot components 5a, 5b or parameters for machining workpieces. These parameters are automatically adopted in the transformation and translation steps S4, S6, S7 in the trajectories T, program sections P and the control program S.

Landscapes

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

Abstract

Zum Erzeugen eines Steuerprogramms S für eine Interaktion zwischen beweglichen Roboterkomponenten (5a, 5b) wird zunächst mit jeder Roboterkomponente (5a, 5b) zumindest eine Bewegungstrajektorie T im Sinne der Playback-Programmierung manuell durchfahren. Eine Programmiereinrichtung (1) zeichnet die Bewegungstrajektorien T auf und übersetzt diese in Programmabschnitte P des Steuerprogramms S derart, dass durch Ausführen eines Programmabschnitts P durch eine Robotersteuerung (2) die zumindest eine Bewegungstrajektorie T der betreffenden Roboterkomponente (5a, 5b) reproduziert wird. Erfindungsgemäß setzt die Programmiereinrichtung (1) die aufgezeichneten Bewegungstrajektorien T in graphische Bewegungsrepräsentationen R; (20) entlang einer Zeitachse (21) um, so dass die Bewegungsrepräsentationen R; (20) jeweils zumindest eine Bewegungstrajektorie T einer Roboterkomponente (5a, 5b) repräsentieren. Die Bewegungstrajektorien T können dann durch Manipulieren S3 der Bewegungsrepräsentationen R; (20) derart räumlich und zeitlich aufeinander abgestimmt werden, dass die Interaktion korrekt definiert wird. Schließlich werden die Bewegungstrajektorien T entsprechend der manipulierten Bewegungsrepräsentationen R; (20) transformiert und in die Programmabschnitte P des Steuerprogramms S derart übersetzt, dass die Roboterkomponenten (5a, 5b) die Interaktion bei Ausführung des Steuerprogramms S durch die Robotersteuerung (2) synchronisiert durchführen.

Description

Robotersteuerung
Die vorliegende Erfindung betrifft ein Verfahren sowie eine Programmiereinrichtung zur Erzeugung eines Steuerprogramms für eine Interaktion zwischen beweglichen Roboterkomponenten.
Beim industriellen Einsatz von Robotern kommt es in der Regel auf eine exakte Koordination der unterschiedlichen, zusammenwirkenden Roboter oder Roboterkomponenten an, damit diese die gewünschte Interaktionen aufeinander abgestimmt und synchronisiert durchführen, beispielsweise sogenannte Pick-and-Place- Aufgaben, wie zum Beispiel das Aufnehmen und Absetzen von Gegenständen, die Bearbeitung von Gegenständen durch zusammenwirkende Roboterkomponenten eines oder mehrerer Roboter oder dergleichen. Unter einer Roboterkomponente ist in diesem Zusammenhang einerseits ein einfacher Roboter zu verstehen, der mit anderen Robotern interagiert, bei komplexeren Robotern mit mehreren Komponenten andererseits aber auch jede einzelne Komponente eines solchen Roboters, die getrennt von anderen Komponenten des betreffenden Roboters angesteuert werden kann, zum Beispiel Roboterarme, Greifer, Werkzeuge, Arbeitsmaschinen, Roboterfahrwerke oder dergleichen. Insofern betrifft die Erfindung insbesondere auch die Erzeugung eines Steuerprogramms für eine Interaktion zwischen mehreren beweglichen Roboterkomponenten eines einzigen Roboters. Unter den Begriff der Roboterkomponente fallen aber auch sonstige bewegliche oder ansteuerbare technische Einrichtungen, die an einer Interaktion beteiligt sein können, zum Beispiel Förderbänder, dreh- und/ oder schwenkbare Tische und Halter, oder dergleichen. Die automatisierte Interaktion derartiger Roboterkomponenten erfordert deren räumliche und zeitliche Synchronisation, damit zwei oder mehr Roboterkomponenten wie gewünscht interagieren, um beispielsweise einen Gegenstand gemeinsam erfolgreich zu bearbeiten. Im Zusammenhang mit der vorliegenden Erfindung bezeichnet der Begriff der„Interaktion" also den gemeinsamen Bewegungsablauf von mehreren, zusammenwirkenden Roboterkomponenten eines oder mehrerer Roboter innerhalb eines bestimmten Zeitfensters, wobei die für die Interaktion notwendige zeitliche und/ oder örtliche Koordination der Roboter komponenten durch Synchronisationsmechanismen sichergestellt wird.
Zur Programmierung derartiger Roboterinteraktionen wird häufig die sogenannte führungszentrierte Programmierung verwendet (auch Teach-inoder Playback-Programmierung genannt), bei der die kräftefrei geschalteten Roboterkomponenten von einer Bedienperson jeweils einzeln entlang derjenigen Bewegungstrajektorien geführt werden, welche die betreffenden Roboterkomponenten bei der Interaktion abfahren sollen. Die manuell oder mit Hilfe eines Programmierhandgeräts durchfahrenen Bewegungstrajektorien werden aufgezeichnet und in ein Steuerprogramm umgesetzt, welches anschließend die Interaktion durch Reproduzieren der Bewegungstrajektorien durch die Roboterkomponenten steuert.
Während diese Art der Roboterprogrammierung zunächst schnell und intuitiv erscheint, sind die derart erzeugten Steuerprogramme in der Regel nicht ohne weiteres einsetzbar, da die einzeln und unabhängig von anderen Roboterkomponenten und deren Trajektorien aufgezeichneten Bewegungstrajektorien der Synchronisation bzw. zumindest noch einer Feinabstimmung bedürfen, damit die Interaktion erfolgreich durchgeführt wird. Die aus den entsprechenden Programmabschnitten zusammengesetzten Steuerprogramme können jedoch kaum editiert werden, um die Trajektorien im Hinblick auf die Interaktion zu synchronisieren, da die automatisierte Übersetzung der aufgezeichneten Trajektorien häufig unübersichtlichen und komplexen Programmcode erzeugt, dessen Editieren erhebliche Kenntnisse erfordert und für den Programmierer mit großem Aufwand verbunden ist.
In diesem Zusammenhang sind Lösungen bekannt, bei denen eine Interaktion durch alternierendes Aufzeichnen mehrerer ineinander verzahnter Bewegungstrajektorien unterschiedlicher Roboterkomponenten im Teach- in-Modus programmiert wird, indem während der Aufzeichnung zwischen den betreffenden Roboterkomponenten manuell umgeschaltet wird. Parallele, synchronisierte Bewegungsabläufe verschiedener Komponenten sind hiermit jedoch auch nicht mit der erforderlichen Feinabstimmung erzeugbar, ebensowenig wie die nachträgliche Synchronisation der aufgezeichneten Trajektorien im Hinblick auf die gewünschte Interaktion möglich ist.
Deshalb ist es die Aufgabe der vorliegenden Erfindung, eine auch für ungeübte Programmierer einfache Möglichkeit zu schaffen, ein Steuerprogramm zu erzeugen, das eine Interaktion zwischen Roboterkomponenten korrekt umsetzt.
Diese Aufgabe wird durch ein Verfahren sowie eine Programmiereinrich- tung und ein Programmier- und Steuersystem mit den Merkmalen der unabhängigen Ansprüche gelöst. In den davon abhängigen Ansprüchen sind vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung angegeben. Zum Erzeugen eines Steuerprogramms für eine synchronisierte Interaktion zwischen beweglichen Roboterkomponenten wird mit jeder Roboterkomponente, die an der Interaktion beteiligt ist, zunächst zumindest eine Bewe- gungstrajektorie manuell durchfahren. Hierbei können mit einer Roboterkomponente auch mehrere Bewegungstrajektorien durchfahren werden, sofern diese Roboterkomponente im Verlauf der Interaktion mehrere, möglicherweise zeitlich voneinander getrennte Bewegungen durchzuführen hat. Alle Bewegungstrajektorien, die Bestandteile der Interaktion bilden, werden von einer Programmiereinrichtung aufgezeichnet und in Programmabschnitte des zu erzeugenden Steuerprogramms übersetzt. Die Bewegungstrajektorien werden derart übersetzt, dass die entsprechenden Programmabschnitte von einer mit den Roboterkomponenten verbundenen Robotersteuerung ausgeführt bzw. interpretiert werden können, und dass die jeweilige Bewegungstrajektorie bei Ausführung eines Programmabschnitts durch die Roboterkomponenten reproduziert wird. Das heißt, bei Ausführung eines Programmabschnitts durchläuft die zugehörige Roboterkomponente selbständig diejenige Bewegungstrajektorie, die zuvor in den betreffenden Programmabschnitt übersetzt wurde. Vorzugsweise werden, sofern für eine Roboterkomponente mehrere Bewegungstrajektorien aufgezeichnet wurden, mehrere Bewegungstrajektorien in einen zusammenhängenden Programmabschnitt übersetzt, der den gesamten Bewegungsverlauf dieser Roboterkomponente im Rahmen der zu programmierenden Interaktion wiedergibt.
Zur einfachen Synchronisierung der einzeln und unabhängig voneinander aufgezeichneten und übersetzten Bewegungstrajektorien im Hinblick auf die gewünschte Interaktion werden diese erfindungsgemäß in äquivalente, graphische Bewegungsrepräsentationen entlang einer Zeitachse umgesetzt, die mit den Mitteln der graphischen Programmierung einfach und intuitiv zeitlich und räumlich aufeinander abgestimmt werden können, um sie im Hinblick auf die Interaktion mit ausreichender Feinabstimmung zu synchronisieren. Die Bewegungsrepräsentationen werden hierbei jeweils bestimmten Roboterkomponenten oder anderweitig an der Interaktion beteiligten beweglichen Komponenten zugeordnet, wie zum Beispiel Förderbändern oder dergleichen, so dass jede Bewegungsrepräsentation die Be- wegungstrajektorie dieser Komponente graphisch repräsentiert. Eine Bewegungsrepräsentation kann hierbei auch mehrere Bewegungstrajektorien der gleichen Komponente repräsentieren, sofern für diese mehrere, zum Beispiel durch Ruhephasen unterbrochene, Bewegungstrajektorien aufgezeichnet wurden.
Auf diese Weise ist jeder Roboterkomponente eine Bewegungsrepräsentation zugeordnet, die jeweils die eine oder mehreren Bewegungstrajektorien der betreffenden Roboterkomponente sowie entsprechende, ein oder mehrere Programmabschnitte repräsentiert, die von der Robotersteuerung ausführbare Steuerbefehle umfassen, um die entsprechenden Bewegungstrajektorien zu reproduzieren. Eine Bewegungsrepräsentation sowie die zugeordneten Bewegungstrajektorien und Programmabschnitte beschrei- ben also jeweils äquivalente Bewegungsabläufe der betreffenden Roboterkomponente im Rahmen der zu programmierenden Interaktion auf verschiedenen Abstraktionsstufen ausgehend von der technisch konkreten Ebene der Steuerbefehle, wobei die Bewegungsrepräsentation den höchsten Abstraktionsgrad aufweist und deshalb am leichtesten durch einen Pro- grammierer editiert bzw. manipuliert werden kann.
Da der Begriff der Roboterkomponente wie oben erläutert die bew eglichen Komponenten und Unterkomponenten eines oder mehrerer Roboter sowie alle anderweitigen beweglichen Elemente und Objekte umfasst, die an der Interaktion beteiligt sind, erlaubt es die Erfindung über die Manipulation der entsprechenden Bewegungsrepräsentationen alle diese Komponenten zu synchronisieren und im Hinblick auf die gewünschte Interaktion aufeinander abzustimmen. So kann zum Beispiel die Geschwindigkeit eines Förderbands auf die Bewegung eines Roboterarms abgestimmt werden, damit ein auf dem Förderband befindlicher Gegenstand zuverlässig ergriffen werden kann. Ebenso kann das Öffnen eines Greifers eines Roboters synchronisiert werden mit einer Bewegung des Roboters im Raum, damit der Roboter beispielsweise wartet, bis der Greifer einen Gegenstand sicher ergriffen und angehoben hat.
Demgegenüber werden für solche Objekte keine Bewegungstrajektorien aufgezeichnet, die nicht direkt an der Interaktion beteiligt sind, die aber dennoch Einfluss auf die Bewegungstrajektorien der an der Interaktion direkt beteiligten Roboterkomponenten haben können, etwa unbewegliche Objekte wie zum Beispiel Tische oder dergleichen, oder anderweitige, sich unabhängig bewegende Komponenten, mit denen Kollisionen zu vermeiden sind. Für solche Objekte existieren insofern auch nicht notwendigerweise Bewegungsrepräsentationen im Sinne der Erfindung. Dennoch können solche Objekte modelliert und in Form von graphischen Repräsentation bei der Interaktion berücksichtigt werden und/ oder in das Steuerprogramm eingehen, zum Beispiel als Nebenbedingungen oder Raumkonstanten, die Hindernisse, Ablage- oder Anschlagsflächen oder dergleichen modellieren. Derartige Objekte, deren Raumrepräsentationen zum Beispiel importiert oder gespeichert werden können, oder für die in einem Steuerprogramm Platzhalter vorgesehen sein können, die in weiteren Schritten der Roboterprogrammierung ausgefüllt werden, werden durch Techniken und Mechanismen berücksichtigt, die nicht Gegenstand der vorliegenden Erfindung sind. Die erfindungsgemäßen Bewegungsrepräsentationen sind hierbei der Manipulation durch einen Programmierer durch graphische Anpassungen zugänglich, so dass die Bewegungsrepräsentationen im Hinblick auf die Interaktionen in intuitiver Weise räumlich und zeitlich derart fein aufeinander abgestimmt werden können, dass die Interaktion zwischen den Roboterkomponenten korrekt synchronisiert definiert werden kann.
Die graphisch manipulierten Bewegungsrepräsentationen werden wiederum in äquivalente Bewegungstrajektorien transformiert und in äquivalente Programmabschnitte des Steuerprogramms übersetzt, so dass die Roboterkomponenten bei Ausführen des Steuerprogramms die Manipulation der Bewegungsrepräsentation durch den Programmierer korrekt berücksichtigen.
Auf diese Weise erweitert die vorliegende Erfindung die herkömmliche führungszentrierte Roboterprogrammierung (Playback- oder Teach-In- Programmierung) mit den Bewegungsrepräsentationen um intuitive Methoden zur Darstellung, Analyse, Bearbeitung und Synchronisation, die es einem Programmierer ermöglichen, die Bewegungstrajektorien unmittelbar derart zu aufeinander abzustimmen und zu synchronisieren, dass eine korrekte Interaktion definiert wird. Der Programmierer braucht hierfür keine besonderen Programmierkenntnisse und nur geringe Robotikkenntnisse, sondern kann auf der abstrakten Ebene der Bewegungsrepräsentationen sämtliche notwendigen Änderungen, Manipulationen und Anpassungen unmittelbar vornehmen, um die Feinabstimmung der Bewegungstrajektorien zu erreichen. Die erfindungsgemäßen Bewegungsrepräsentationen ermöglichen es, dem Programmierer eine einfach und intuitiv zu bedienende graphische Manipulationsschnittstelle zur Verfügung zu stellen, mit der das herkömmliche aufwändige Editieren der Programmabschnitte oder des Steuerprogramms vermieden wird.
Das erfindungsgemäße Verfahren wird mittels einer Programmiereinrichtung verwirklicht, welche eine Aufzeichnungseinheit umfasst, die mit einer Roboterkomponente durchfahrene Bewegungstrajektorien aufzeichnet, sowie eine Übersetzungseinheit, die die aufgezeichneten Bewegungstrajektorien in äquivalente Programmabschnitte des Steuerprogramms übersetzt. Erfindungsgemäß umfasst die Programmiereinrichtung weiterhin eine Umsetzungseinheit, eine graphische Manipulationsschnittstelle und eine Transformationseinheit, wobei die Umsetzungseinheit eine oder mehrere aufgezeichnete Bewegungstrajektorien in graphische Bewegungsrepräsentationen entlang der Zeitachse umsetzt, während die Transformationseinheit die Bewegungstrajektorien gemäß einer Manipulation der zugeordneten Bewegungsrepräsentation derart transformiert, dass die manipulierte Bewegungsrepräsentation und die transformierten Bewegungstrajektorien den entsprechenden, geänderten Bewegungsablauf der betreffenden Roboterkomponenten äquivalent beschreiben.
Die Manipulationsschnittstelle wiederum stellt die von der Umsetzungseinheit bereitgestellten Bewegungsrepräsentationen auf einer Anzeigeeinheit der Programmiereinrichtung in geeigneter Weise graphische dar, zum Beispiel im Form von graphisch aufbereiteten Zeitverläufen, Balken- oder Säulendiagrammen oder ähnlichem, so dass ein Programmierer diese leicht manipulieren kann, um eine räumliche und zeitliche Feinabstimmung der betreffenden Bewegungstrajektorien vorzunehmen, zum Beispiel in zeitlicher Hinsicht durch Skalieren der graphisch dargestellten Zeitverläufe und in räumlicher Hinsicht durch Ändern von Prozessparametern, die die Position oder den Zustand einer Roboterkomponente im Raum betreffen.
Die Programmiereinrichtung kann Teil eines erfindungsgemäßen Programmier- und Steuersystems sein, das zusätzlich eine Robotersteuerung umfasst, die über eine Steuerverbindung mit den zu programmierenden Roboterkomponenten verbunden ist. Mittels des Programmier- und Steuersystems kann das Steuerprogramm auf der Programmiereinrichtung programmiert und dann über eine Datenverbindung an die Robotersteuerung übertragen und dort ausgeführt werden.
Die übersetzten Programmabschnitte bilden jeweils Bestandteile des Steuerprogramms. Das Steuerprogramm kann insofern lediglich im Wesentlichen aus den kombinierten Programmabschnitten bestehen oder im Rahmen eines Kompilationsprozesses aus den Programmabschnitten erzeugt werden. Diese Kompilation wird vorzugsweise auch von der Übersetzungseinheit durchgeführt, kann aber auch von einer separaten Kompilationseinheit der Programmiereiririchtung durchgeführt werden. Bei der Kompilation des Steuerprogramms werden Synchronisationsinformationen und Prozessparameter aus den Bewegungsrepräsentationen berücksichtigt, um die separaten Programmabschnitte in der erforderlichen Weise in das Steuerprogramm zu integrieren.
Vorzugsweise werden die Bewegungsrepräsentationen der an der Interaktion beteiligten Roboter- und sonstigen Komponenten durch die Manipulationsschnittstelle in Form eines editierbaren Gantt-Diagramms dargestellt, wobei jeder Zeitbalken einer Bewegungsrepräsentation entspricht. Der Programmierer erhält auf diese Weise für jede Roboterkomponente eine intuitive, zeilenweise Darstellung der zugehörigen Bewegungsrepräsentation, die auch die unterschiedlichen Bewegungstrajektorien für den Programmierer visualisieren, zum Beispiel dadurch, dass Ruheintervalle der betreffenden Roboterkomponente entsprechend gekennzeichnet sind.
Die Zeitbalken des Gantt-Diagramms sind hierbei vorzugsweise entlang einer globalen Zeitachse angeordnet, so dass die relative zeitliche Abfolge der Bewegungsverläufe der Roboterkomponenten unmittelbar ersichtlich und leicht zu manipulieren ist. Jede einzelne Bewegungsrepräsentation kann zusätzlich oder alternativ auch mit einer eigenen Zeitachse ausgestattet sein, um deren zeitliche Auflösung individuell zu skalieren oder zu verändern, zum Beispiel bei besonders schnellen oder langsamen Bewegungsabläufen.
Die Gantt-Dar Stellung bietet dem Programmierer insbesondere eine zeitlich ausreichende Auflösung an, so dass dieser ähnliche Operationen wie beim Videoschnitt vornehmen kann, beispielsweise um aufgezeichnete Bewegungstrajektorien oder deren Abschnitte innerhalb bestimmter Zeitintervalle per cut-and-paste zu selektieren und dann auszuschneiden, verändert zusammenzustellen, umzugruppieren, abzuspeichern oder anderweitig zu manipulieren, ohne die betreffenden Programmabschnitte oder das Steuerprogramm aufwändig editieren zu müssen. Die Programmierung der Interaktion kann anhand des Gantt-Diagramms also auf graphisch-abstrakter Ebene stattfinden, weil Manipulationen des Gantt-Diagramms automatisiert in entsprechend transformierte Trajektorien und zugehörige Programmabschnitte übernommen werden. Die balkenförmigen Bewegungsrepräsentationen, die die Bewegungstrajektorien aller an der Interaktion beteiligten Roboter- und sonstigen Komponenten repräsentieren, können hierbei auch durch Anmerkungen, Prozess- oder Synchronisationsinforma- tionen ergänzt werden, die beispielsweise durch Anklicken sichtbar und/ oder editierbar werden.
Vorzugsweise stellt die Manipulationsschnittstelle Manipulationsfunktionen bereit, über die der Programmierer Synchronisationspunkte und/ oder Synchronisationsintervalle in die Bewegungsrepräsentationen einfügen kann, um räumliche und/ oder zeitliche Abhängigkeiten zwischen den Be- wegungstrajektorien zumindest einiger Roboterkomponenten vorzugeben. Die Bewegungsrepräsentationen werden dann entsprechend der Synchronisationspunkte und/ oder Synchronisationsintervalle gruppiert und ange- passt, zum Beispiel indem sie derart entlang der Zeitachse verschoben oder gestreckt, gestaucht oder anderweitig skaliert - also in ihrer Ablaufgeschwindigkeit verändert - werden, dass die Synchronisationspunkte und/ oder Synchronisationsintervalle an der gleichen Stelle und/ oder im gleichen Zeitabschnitt der Zeitachse zu liegen kommen. Derartige Manipulationen der Bewegungsrepräsentationen werden anschließend automatisch in die betreffenden Trajektorien und Programmabschnitte übernommen, so dass die Bewegungsabläufe der Roboterkomponenten entsprechend der vorgegebenen Synchronisationspunkte und/ oder Synchronisationsintervalle zeitlich synchron ablaufen.
Die Manipulationsschnittstelle stellt darüber hinaus Funktionen zum Einsetzen oder Ersetzen von Abschnitten der Bewegungsrepräsentationen bereit. Auch diese Manipulationen werden automatisch transformiert und übersetzt. Durch diese Erweiterungsfunktionen kann der Programmierer beispielsweise eine bereits vorliegende oder eine weitere, aufgezeichnete und umgesetzte Bewegungsrepräsentation an einem markierten Zeitpunkt in eine zu manipulierende Bewegungsrepräsentation einfügen, so dass an dem markierten Zeitpunkt auch in die repräsentierte Trajektorie eine weite- re Trajektorie eingefügt wird. Hierbei bietet die Manipulationsschnittstelle vorzugsweise zwei verschiedene Varianten der Erweiterungsfunktion an, nämlich einerseits ein Einsetzen an der markierten Stelle, so dass die Bewegungsrepräsentation insgesamt einen verlängerte Laufzeit erhält, oder ein Ersetzen bzw. Überschreiben, bei dem die Laufzeit der Bewegungsrepräsentation insgesamt unverändert bleiben kann. Beim Ersetzen bzw. Überschreiben kann zusätzlich ein Zeitintervall angegeben werden, in das die weitere Bewegungsrepräsentation in überschreibender Weise eingesetzt und gleichzeitig auf die Länge des Zeitintervalls skaliert wird.
Die Erweiterungsfunktion der Manipulationsschnittstelle ist so ausgestaltet, dass sowohl eine Offline-Erweiterung als auch eine Online-Erweiterung möglich ist. Bei der Offline-Erweiterung wird eine Bewegungsrepräsentation eingefügt, die eine bereits aufgezeichnete Bewegungstrajektorie repräsentiert, welche entweder mit der vorliegenden Programmiereinrichtung oder anderweitig aufgezeichnet und mittels einer Import-Funktion in die Programmiereinrichtung eingelesen wurde. Entsprechend stellt die Programmiereinrichtung auch eine Export-Funktion bereit, um Bewegungs- trajektorien anhand der entsprechenden Bewegungsrepräsentation zu selektieren und dann in einem geeigneten Austauschformat abzuspeichern oder zur Übertragung an andere Einrichtungen zu exportieren. Bei der Online-Erweiterung wird eine Bewegungstrajektorie also„live" eingefügt, das heißt während sie aufgezeichnet wird. Auf diese Weise kann eine Bewegungstrajektorie in einem Schritt durchfahren, aufgezeichnet und mittels einer Manipulation der betreffenden Bewegungsrepräsentation eingesetzt werden.
Die Manipulationsschnittstelle stellt dem Programmierer ferner Funktionen zum Ansteuern und Ausführen von Programmabschnitten mittels des er- findungsgemäßen Programmier- und Steuersystems zur Verfügung. Auf diese Weise kann das Steuerprogramm während des Programmierprozesses getestet werden, indem einzelne Bewegungsrepräsentationen vollständig oder abschnittsweise über die Manipulationsschnittstelle selektiert werden, so dass die betreffenden Trajektorien von den Roboterkomponenten durch Ausführen der entsprechenden Programmabschnitte oder des Steuerprogramms reproduziert werden, zum Beispiel um die Synchronisation der Bewegungstrajektorien zu prüfen.
Gemäß einer weiteren bevorzugten Ausgestaltung der Erfindung können Programmabschnitte und/ oder Steuerprogramme von einem Programmierer auch manuell oder semi-manuell auf der Programmiereinrichtung programmiert werden (Offline-Programmierung) oder in diese importiert werden. Derartige programmierte oder importierte Programmabschnitte und/ oder Steuerprogramme werden von der Programmiereinrichtung automatisiert im Bewegungsrepräsentationen umgesetzt, welche entsprechende Bewegungstrajektorien für die betreffenden Roboterkomponenten umfassen. Über die Manipulationsschnittstelle können diese Bewegungstrajektorien wiederum aufeinander abgestimmt und synchronisiert werden.
Auf diese Weise ist es möglich, manuell programmierte oder importierte Programmabschnitte und/ oder Steuerprogramme nachträglich an die Roboterkomponenten und deren gewünschte Bewegungstrajektorien im Rahmen der Interaktion anzupassen bzw. eine Abweichung der Bewegungstrajektorien der manuell programmierten oder importierten Programmabschnitte und/ oder Steuer programme gegenüber den gewünschten Bewegungstrajektorien der zu programmierenden Roboterkomponenten auszugleichen. Vorzugsweise stellt die graphische Manipulationsschnittstelle auch eine Funktion zur 3D-Darstellung der Roboterkomponenten auf einer Anzeigeeinheit der Programmiereinrichtung bereit, so dass in einer oder mehreren Bewegungsrepräsentationen, zum Beispiel über einen markierten Zeitpunkt oder ein markiertes Zeitintervall, selektierte Abschnitte der Bewegungs- trajektorien auf der Anzeigeeinheit abgespielt werden, um die betreffenden Bewegungsabläufe der Roboterkomponenten anhand ihrer SD-Darstellungen zu simulieren bzw. in einer virtuellen Umgebung visuell zu prüfen, zum Beispiel auf Kollisionsstellen oder Unstetigkeitsstellen, die sich aus den aktuellen Trajektorien ergeben.
In diesem Zusammenhang stellt die Manipulationsschnittstelle vorzugsweise auch Funktionen zur Konsistenzprüfung bereit, die anhand der Trajektorien eine automatische Kollisionsprüfung oder Interpolation von Unstetigkeitsstellen vornimmt, entweder visualisiert durch die SD- Darstellung der Roboterkomponenten oder in Form einer automatischen Transformation der aktuellen Bewegungstrajektorien. Bei der Kollisions- pf üfung werden in den Bewegungstrajektorien Kollisionsstellen detektiert, das heißt, es werden Zeitpunkte in den Bewegungstrajektorien bzw. Bewegungsrepräsentationen ermittelt, an denen eine Roboterkomponente mit sich selbst kollidiert oder zwei oder mehr Roboterkomponenten mit einander kollidieren, zum Beispiel indem sie die gleiche räumliche Position einnehmen. Daneben können auch Kollisionen einzelner oder mehrerer Roboterkomponenten mit anderen, nicht beweglichen Objekten im Arbeitsraum ermittelt werden, sofern diese hinterlegt bzw. im Rahmen der Interaktion modelliert sind. Diese Kollisionsstellen werden vorzugsweise automatisiert korrigiert, indem die Bewegungstrajektorien derart transformiert werden, dass die Kollisionsstellen kollisionsfrei umgangen werden, beispielsweise durch zeitliche Entzerrung oder räumliche Anpassung der betreffenden Bewegungstrajektorien.
Bei der Interpolationsprüfung werden in den Bewegungstrajektorien Unstetigkeitsstellen detektiert, das heißt Zeitpunkte, an denen eine Roboterkomponente eine sprunghafte Bewegung machen soll, die von dieser technisch nicht umsetzbar ist, zum Beispiel infolge des Einsetzens eines neuen Abschnitts in eine Bewegungstrajektorie, der zu Beginn oder an Ende bezüglich der ursprünglichen Trajektorie unstetig ist. Zur Korrektur wird die betreffende Bewegungstrajektorie an der Unstetigkeitsstelle automatisch stetig ergänzt, zum Beispiel indem ein kurzes Zeitintervall eingefügt wird, in dem die betreffende Roboterkomponente zwischen den zueinander unstetigen Positionen wechseln kann. Alternativ kann die betreffende Bewegungstrajektorie in einem Zeitintervall unmittelbar vor oder unmittelbar nach der Unstetigkeitsstelle entsprechend stetig angepasst werden.
Die Funktionen zur Konsistenzprüfung transformieren vorzugsweise zunächst die Bewegungstrajektorien, um Kollisions- oder Unstetigkeitsstellen zu korrigieren, so dass die korrigierten Trajektorien anschließend in äquivalente Bewegungsrepräsentationen umgesetzt werden, damit dem Programmierer der aktuellen Stand der programmierten Interaktion vorliegt. Derartige Konsistenzprüfungen können zwar von dem Programmierer über die Manipulationsschnittstelle initiiert werden, sie werden aber vorzugsweise automatisch vorgenommen, sobald der Programmierer die Bewegungsrepräsentationen manipuliert.
Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung erfindungsgemäßer Ausführungsbeispiele, sowie weite- ren Ausführungsalternativen im Zusammenhang mit den folgenden Zeichnungen, die zeigen:
Figur 1 ein Ablaufdiagramm mit den wesentlichen Schritten des erfindungsgemäßen Verfahrens;
Figur 2 eine schematische Darstellung der erfindungsgemäßen Programmiereinrichtung sowie einer Robotersteuerung mit verbundenen Roboterkomponenten; und
Figur 3 ein Ausführungsbeispiel der erfindungsgemäßen graphischen Manipulationsschnittstelle in Form eines Gantt- Diagramms.
Figur 1 zeigt schematisch die von der Programmiereinrichtung 1 gemäß Figur 2 realisierten Schritte zum Erzeugen bzw. ineinander Überführen verschiedener äquivalenter Beschreibungen einer Interaktion zwischen Roboterkomponenten 5a, 5b. Diese äquivalenten Beschreibungen sind die Bewegungsrepräsentationen R, die Bewegungstrajektorien T, die Programmabschnitte P sowie das Steuerprogramm S. Diese Beschreibungsformen einer Interaktion von Roboterkomponenten 5a, 5b abstrahieren schrittweise die konkreten Steuerbefehle, die die Robotersteuerung 2 über die Steuerverbindungen 3 an die Roboterkomponenten 5a, 5b überträgt, um deren Bewegungen zu steuern.
Hierbei stellt das Steuerprogramm S ein Softwareprogramm in einer Computersprache dar, die von der Robotersteuerung 2 ausgeführt oder interpretiert werden kann, um die Roboterkomponenten 5a, 5b derart anzusteuern, dass die gewünschte Interaktion ausgeführt wird. Die Programmabschnitte P wiederum stellen Teile des Steuerprogramms S dar, die jeweils eine oder mehrere Bewegungsabläufe einer bestimmten Roboterkomponente 5a, 5b im Rahmen der Interaktion beschreiben. Diese liegen ebenfalls in einer geeigneten Computersprache vor, die jedoch nicht notwendigerweise die gleiche sein muss, in der auch das Steuerprogramm S vorliegt. Die Bewegungs- trajektorien T wiederum beschreiben jeweils eine oder mehrere Bewegungen einer bestimmten Roboterkomponente 5a, 5b im Rahmen der Interaktion.
Die Bewegungstrajektorien T liegen in einer geeigneten Beschreibungssprache vor, die in der Regel nicht von der Robotersteuerung 2 ausführbar oder interpretierbar ist, sondern die optimiert und abgestimmt darauf ist, die Bewegungsverläufe von Roboterkomponente 5a, 5b möglichst exakt räumlich und zeitlich aufgelöst zu beschreiben. Die strichlinierten Pfeile in Figur 2 deuten die Bewegungstrajektorien an.
Ein Programmierer, der das Steuerprogramm S auf herkömmliche Weise programmiert, benötigt umfassende Kenntnisse in wenigstens einer der Computer- bzw. Beschreibungssprachen, in denen die Bewegungstrajektorien T, die Programmabschnitte P oder das Steuerprogramm S technisch vorliegen. Darüber hinaus kann es für einen Programmierer zeitaufwendig und auch softwaretechnisch äußerst anspruchsvoll sein, die gewünschte Interaktion anhand üblicher Programmiertechniken basierend auf den Bewegungstrajektorien T oder den Programmabschnitten P zu programmieren.
Deshalb wird erfindungsgemäß eine weitere Abstraktionsstufe für die Programmierung der Interaktion bereitgestellt, nämlich in Form der Bewegungsrepräsentationen R, die die Bewegungstrajektorien T graphisch darstellen und dadurch erlauben, die Interaktion in einer intuitiven und effi- zienten Weise, vorzugsweise visuell zu programmieren, beispielsweise anhand von Balkendarstellungen 20 eines Gantt-Diagramms 18 (vgl. Fig. 3), das auf einer Anzeigeeinheit 16 der Programmiereinrichtung 1 angezeigt wird. Hierbei repräsentiert jeder der Balken 20 eine Bewegungsrepräsentation R.
Auf der Ebene der Bewegungsrepräsentation R kann der Programmierer die Bewegungstrajektorien T der Roboterkomponenten 5a, 5b intuitiv und anhand graphischer Manipulationsfunktionen derart fein aufeinander abstimmen, dass sie die Interaktion korrekt synchronisiert und vollständig beschreiben. Kenntnisse bestimmter Beschreibungs- oder Programmiersprachen sind hierfür nicht notwendig, denn jede Bewegungsrepräsentation R bildet alle Bewegungstrajektorien T vollständig graphisch ab, die eine bestimmte Roboterkomponente 5a, 5b im Rahmen der Interaktion reproduzieren soll. Somit erübrigt sich auch das aufwändige und komplexe, manuelle Editieren der Bewegungstrajektorien T, der Programmabschnitte P oder des Steuerprogramms S.
Die in Figur 1 gezeigten Schritte S bis S7 stellen jeweils Funktionen der Programmiereinrichtung 1 dar, die die Beschreibungen R, T, P, S erzeugen, manipulieren oder äquivalent ineinander überführen. Die in Figur 1 in Quadraten angegebenen Bezugszeichen geben hierbei diejenigen Module und Einheiten der Programmiereinrichtung 1 an, die den entsprechenden Schritt auf technischer Ebene umsetzen. Diese Einheiten der Programmiereinrichtung 1 sind vorzugsweise als Softwaremodule oder Softwareprogramme realisiert, die von einem Prozessor (nicht dargestellt) der Programmiereinrichtung 1 ausgeführt oder von einem Interpreter interpretiert werden können. Insofern umfasst die Programmiereinrichtung 1 eine in Software ausgeführte Aufzeichnungseinheit 11, eine Umsetzungseinheit 12, eine Manipulationsschnittstelle 13, eine Transformationseinheit 14 sowie eine Übersetzungseinheit 15. Die Manipulationsschnittstelle 13 wiederum unterteilt sich in eine Manipulationseinheit 13a sowie die über die Anzeigeneinheit 16 für den Programmierer zugänglichen Manipulationsschalter 13b, über die vielfältige Funktionen zum Manipulieren der Bewegungsrepräsentationen R ausgeführt werden können, welche von der Manipulationseinheit 13a technisch realisiert werden.
Die Koordination der verschiedenen Einheiten 11, 12, 13, 14, 15, 16 der Programmiereinrichtung 1 sowie die Datenkommunikation mit der Robotersteuerung 2 über Datenverbindung 4 wird von einer Zentraleinheit 10 sichergestellt, die ebenfalls vorzugsweise als auf einem Prozessor ausführbares Softwareprogramm vorliegt. Daneben hat die Zentraleinheit 10 auch Zugriff auf einen Speicher 19, in dem verschiedene Daten in Zusammenhang mit der vorliegenden Erfindung abgelegt werden, insbesondere die Bewegungsrepräsentationen R, die Bewegungstrajektorien T, die Programmabschnitte P sowie das Steuerprogramm S.
Bei dem durch die Schritte der Figur 1 realisierten Programmierverfahren handelt es sich um eine sogenannte führungszentrierte Programmierung einer Roboterinteraktion, bei der zunächst die von jeder einzelnen Roboterkomponente 5a, 5b im Rahmen der Interaktion abzufahrenden Trajektorien von dem Programmierer manuell oder mittels geeigneter technischer Hilfsmittel durchfahren und dabei in Schritt Sl von der Aufzeichnungseinheit 11 als Bewegungstrajektorien T aufgezeichnet werden. Auf diese Weise werden mehrere Bewegungstrajektorien T erzeugt, die gemeinsam jeweils den, gegebenenfalls durch Ruhephasen unterbrochenen Bewegungsverlauf einer einzelnen Roboterkomponente 5a, 5b wiedergeben. Der Begriff der Roboterkomponente beschreibt hierbei nicht nur einzelne Roboter als ganzes, sondern insbesondere alle beweglichen Bestandteile eines Roboters, sofern sich diese autonom voneinander ansteuern lassen. In Figur 2 sind die Bewegungstrajektorien T durch strichlinierte Pfeile angedeutet, die den räumlich und zeitlich aufgelösten Bewegungsablauf der beiden Greifarme beschreiben, der von dem zeitlichen Zustand von drei Gelenken abhängig ist. Weitere Bewegungstrajektorien T können zum Beispiel die Schließbewegungen der beiden Greifer selbst beschreiben, oder die Bewegung des angedeuteten Förderbandes bzw. eines darauf befindlichen und als Box angedeuteten Gegenstandes. Für die vollständige Beschreibung des gemeinsamen Ergreifens des Gegenstandes durch die beidem Roboter bedarf es also mindestens fünf Bewegungstrajektorien T, die räumlich und zeitlich genau aufeinander abgestimmt sind, damit die gewünschte Interaktion erfolgreich durchgeführt wird. Falls zum Beispiel die Positionierung der Greifarme in mehreren separaten Abschnitten erfolgt, zum Beispiel durch eine Grobpositionierung in der Nähe des Zielpunktes und einer anschließenden Feinpositionierung genau auf dem Zielpunkt, werden entsprechend mehr Trajektorien T aufgezeichnet.
In Schritt S2 setzt die Umsetzungseinheit 12 die aufgezeichneten Bewegungstrajektorien T in äquivalente Bewegungsrepräsentationen R um, wobei eine Bewegungsrepräsentation R auch mehrere Trajektorien T der gleichen Roboterkomponente 5a, 5b repräsentieren kann, zum Beispiel Trajektorien T zur Grob- und Feinpositionierung eines Greifarms. Die Bewegungsrepräsentationen R liegen vorzugsweise in einem Datenformat vor, das auf deren graphische Darstellung abgestimmt ist und sich von dem Datenformat der Trajektorien T unterscheidet. Der Schritt S2 betrifft nur die Umsetzung des Trajektorienformats in das Repräsentationsformat. In einem weiteren, nicht in Figur 1 dargestellten Schritt werden die umgesetzten Be- wegungsrepräsentationen R auf der Anzeigeneinheit 16 als Gantt- Diagrammen 18 dargestellt, wie in Figur 3 veranschaulicht.
Im unteren Bereich der Figur 3 ist das Gantt-Diagramm 18 mit vier Balkendarstellungen 20 entlang der Zeitachse 21 gezeigt, die jeweils eine Bewegungsrepräsentation R wiedergeben. Jeder Balken 20 kann mehre Abschnitte 20a umfassen, die jeweils eine Bewegungstrajektorie T der betreffenden Roboterkomponente Kl, K2, K3, K4 bilden, beispielsweise die Trajektorien der im oberen Bereich der Figur 3 dargestellten Greif arme 23a (Kl) und 23d (K3) sowie der zugehörigen Greifer 23b (K2) und 23c (K4).
Anhand der Balken 20 der Komponenten 23a (Kl) und 23b (K2) des Gantt- Diagramms 18 ist für den Programmierer unmittelbar ersichtlich, dass sich der Bewegungsablauf des entsprechenden Roboters 23a, 23b in zwei Bewegungsrepräsentationen Kl und K2 unterteilt und diese wiederum sechs Trajektorien T repräsentieren, nämlich zunächst eine Positionierung des Greifarms 23a (Kl), dann eine Greifbewegung des Greifers 23b (K2) zum Erfassen des Gegenstandes 24, dann eine Positionsveränderung des Greifarms 23a (Kl) zu dem Zweck, dass der Greifer 23c (K4) des weiteren Roboters 23c, 23d den Gegenstand 24 in einer synchronen Aktion übernimmt, dann eine gemeinsame Positionsänderung beider Roboterarme 23a (Kl), 23d (K3) und schließlich ein Öffnen des Greifers 23b (K2) und Zurückfahren des Greif arms 23a (Kl) in die Ausgangsposition.
Für den Manipulationsschritt S3 stehen dem Programmierer über die Manipulationsschnittstelle 13 und insbesondere über die Manipulationsschalter 13b und das graphisch editierbare Gantt-Diagramm 18 verschiedene von der Manipulationseinheit 13a implementierte Manipulationsfunktionen zur Verfügung, mit denen die Bewegungsrepräsentationen R derart manipu- liert, editiert, oder aufeinander abgestimmt werden können, dass die Interaktion bei Ausführen des entsprechenden Steuerprogramms S von den Roboterkomponenten 5a, 5b synchronisiert durchgeführt wird. Hierzu wählt der Programmierer die gewünschte Manipulationsfunktion durch Betätigen eines der Manipulationsschalter 13b aus und/ oder bearbeitet das Gantt- Diagramm 18 entsprechend, beispielsweise indem einzelne Abschnitte 20a der Balken 20 gestreckt, gestaucht, verschoben oder ergänzt werden.
In Schritt S4 transformiert die Transformationseinheit 13 die betreffenden Bewegungstrajektorien T entsprechend den in Schritt S3 an den Bewegungsrepräsentationen R vorgenommenen Manipulationen, um die Äquivalenz zwischen der manipulierten Bewegungsrepräsentation R und den zugehörigen Bewegungstrajektorien T herzustellen. Entsprechend übersetzt die Übersetzungseinheit in Schritt S6 die transformierten Trajektorien T in Programmabschnitte P, die ebenfalls die in Schritt S3 an den Bewegungsrepräsentationen R vorgenommenen Manipulationen berücksichtigen. Hierbei entspricht jeder Bewegungstrajektorie T vorzugsweise genau ein Programmabschnitt P. Falls es aus softwaretechnischen Gründen vorteilhaft ist, kann ein Programmabschnitt P aber auch mehreren Bewegungstrajektorien T entsprechen, beispielsweise diejenigen Bewegungstrajektorien T, die von einer Bewegungsrepräsentation R, das heißt von einem Balken 20 des Gantt-Diagramms 18, repräsentiert werden. In Schritt S7 integriert bzw. kompiliert die Übersetzungseinheit 15 schließlich die Programmabschnitte P zu einem vollständigen Steuerprogramm S.
Neben dem Transformationsschritt S4, der durch den Programmierer mittels einer graphische Manipulation des Gantt-Diagramms 18 in Schritt S3 ausgelöst wird, ist auch ein Manipulationsschritt S5 möglich, der direkt auf eine Transformation der Bewegungstrajektorien T abzielt, ohne eine vorhe- rige Manipulation des Gantt-Diagramms 18. Ein solcher Transformationsschritt S5 ist beispielsweise die Konsistenzprüfung der Trajektorien T, zum Beispiel hinsichtlich von räumlichen Kollisionen der Roboterkomponenten 5a, 5b oder Unstetigkeitsstellen innerhalb einer Bewegungstrajektorie T. Eine Transformation S5 kann entweder durch Betätigen eines Manipulationsschalters 13b ausgelöst werden, wenn darüber hinaus keine weitere Manipulation des Gantt-Diagramms 18 durch den Programmierer erforderlich ist, oder durch die Zentraleinheit 10 veranlasst werden, zum Beispiel im Rahmen von regelmäßigen, automatisierten Prüf- und Korrekturdurchläufen. Die derart transformierten Trajektorien T werden in geänderte Bewegungsrepräsentationen R (Schritt S2) und Programmabschnitte P (Schritt S6) umgesetzt bzw. übersetzt.
Um die verschiedenen Bewegungstrajektorien T im Sinne der Interaktion zu synchronisieren bzw. aufeinander abzustimmen, stellt die Manipulationsschnittstelle 13 über die Manipulationsschalter 13b und das Gantt- Diagramm 18 vielfältige Manipulationsfunktionen zum Hinzufügen, Entfernen, Synchronisieren, Speichern, Laden, Importieren, Exportieren, Neuanordnen, Testen und Ausführen der Bewegungstrajektorien T zur Verfügung, die automatisch die Transformation (Schritt S4) der betreffenden Trajektorien T und Übersetzung (Schritt S6) der transformierten Trajektorie T in äquivalente Programmabschnitte P zur Folge haben.
So können zu Synchronisationszwecken Synchronisationspunkte 25 oder Synchronisationsintervalle 26 in dem Gantt-Diagramm 18 markiert werden, so dass die Manipulationseinheit 13a die entsprechenden Balken 20 der Bewegungsrepräsentationen R automatisch derart relativ zueinander ausrichtet und/ oder skaliert, dass die spezifizierten Zeitpunkte 25 oder Zeitintervalle 26 in dem Gantt-Diagramm 18 übereinander zu liegen kommen, das heißt im Hinblick auf die Zeitachse 21 synchronisiert sind. Beim Synchronisieren definiert der Programmierer also zeitliche und/ oder räumliche Abhängigkeiten zwischen den Trajektorien T, die von der Manipulationseinheit 13a automatisch berücksichtigt werden, indem die Synchronisati- onspunkte 25 und -Intervalle 26 in Bezug auf die Zeitachse derart gestaucht, gestreckt, verschoben oder anderweitig angepasst werden, dass sie in dem Gantt-Diagramm 18 übereinander liegen.
Beispielhaft zeigt Fig. 3 ein von dem Programmierer spezifiziertes Synchronisationsintervall 26 und einen Synchronisationspunkt 25. Während die Abschnitte 20a der Komponenten Kl, K3 und K4 zu Beginn des Synchronisationsintervalls 26 bereits ausreichend synchron verlaufen, muss die Manipulationseinheit 13a die entsprechenden Abschnitte 20a der Komponenten K2 und K3 oder K4 derart aufeinander abstimmen, dass sie mit dem Ende des Synchronisationsintervalls 26 gemeinsam beginnen und/oder gemeinsam enden. Entsprechend wird die Manipulationseinheit 13a die Abschnitte 20a so auf den Synchronisationspunkt 25 abstimmen, dass etwa der unmittelbar auf den Synchronisationspunkt 25 folgende kurze Abschnitt 20a der Komponente K4 genau an den Synchronisationspunkt 26 und insofern mit dem Ende des letzten Abschnitts 20a der Komponente Kl beginnt.
Zusätzlich oder alternativ zu der globalen Zeitachse 21 können alle oder einzelne der Balken 20 entlang eigener Zeitachsen mit individueller Zeitauf- lösung ausgerichtet sein, um die Bewegungsrepräsentationen R zweckmäßiger darzustellen und einfacher manipulieren zu können. Ebenso kann auch jeder der Abschnitte 20a der Balken 20 über eine eigene, individuelle Zeitachse verfügen, so dass diese unabhängig von anderen Abschnitten 20a gestreckt, gestaucht oder anderweitig zeitlich manipuliert werden können. Über die Zeitachsen können wiederum Abschnitte der Bewegungsrepräsentationen R ausgewählt und über eine Manipulation der Art und Länge der jeweiligen Zeitachse geeignet an die Interaktion angepasst werden.
Die bestehenden Bewegungstrajektorien T können um eine weitere Bewegungstrajektorie T oder weitere Abschnitte von Bewegungstrajektorien T ergänzt werden, während die entsprechenden Roboterkomponenten 5a, 5b durch die weitere Bewegungstrajektorie T geführt und diese von der Aufzeichnungseinheit 11 aufgezeichnet werden. Bei dieser„Live"- Auf Zeichnung einer weiteren Bewegungstrajektorie T im Rahmen der Playback- oder Teach-in-Programmierung kann in einem Balken 20 des Gantt-Diagramms 18 ein Zeitpunkt 22 markiert werden, an dem diese weitere Bewegungstrajektorie T im Insert-Modus in die von der betreffenden Bewegungsrepräsentation R repräsentierte Bewegungstrajektorie T eingefügt wird. Wahlweise kann über die Manipulationsschalter 13b auch ein Overwrite-Modus ausgewählt werden, bei dem eine„live" aufgezeichnete, weitere Bewegungstrajektorie T die zu erweiternde Bewegungstrajektorie T ab einem definierten Zeitpunkt 22 oder innerhalb eines ausgewählten Zeitintervalls überschreibt.
Ebenso können in dem Gantt-Diagramm 18 in einigen oder allen Balken 20 Zeitintervalle ähnlich den Synchronisationsintervallen 26 selektiert werden, so dass sämtliche Manipulationen im Rahmen des Schrittes S3 innerhalb des selektierten Zeitintervalls von der Manipulationseinheit 13a in allen Bewegungsrepräsentationen R einheitlich durchgeführt werden. Auf diese Weise können die Trajektorien T einer oder mehrerer Roboterkomponenten 5a, 5b unabhängig von anderen Roboterkomponenten 5a, 5b angepasst, ausgerichtet oder programmiert werden, oder durch Drag-and-Drop- oder Copy/ Paste-Operationen manipuliert werden. Ebenso stellt die Manipula- tionsschnittstelle 13 Manipulationsfunktionen zum Verschieben oder zum Skalieren, Strecken oder Stauchen bereit, um dadurch die die zeitliche Auflösung der Balken 20 und/oder die Ausführungsgeschwindigkeit der Trajektorien T zu verändern. Abschnitte der Balken 20 können auch beliebig selektiert und dann kopiert oder ausgeschnitten werden, um sie an anderen Positionen wieder einzufügen, mit der entsprechenden Folge für die repräsentierten Bewegungstrajektorien T.
Bei den oben beschriebenen Synchronisationsfunktionen legt der Programmierer lediglich den Synchronisationspunkt 25 oder die Start- und Endpunkte des Synchronisationsintervalls 26 manuell fest, während die eigentliche Manipulation der Bewegungsrepräsentationen R selbständig durch die Manipulationseinheit 13a derart vorgenommen wird, dass die betreffenden Trajektorien T gemäß den Vorgaben des Programmierers synchronisiert werden. Im Unterscheid dazu werden die diversen Editierfunktionen, wie zum Beispiel das Kopieren, Verschieben, Ausschneiden und Einfügen, vom Programmierer manuell und im Wesentlichen vollständig an der betreffenden Bewegungsrepräsentation R vorgenommen, so dass die Manipulationseinheit 13a hierbei in der Regel nicht oder nur sehr eingeschränkt zum Einsatz kommt.
Zu Simulationszwecken können Bewegungstrajektorien T auch innerhalb von in den Bewegungsrepräsentationen R selektierten Zeitintervallen in dem Fenster 17 abgespielt werden, in dem eine virtuelle 3D-Darstellung der Roboterkomponenten 23a, 23b, 23c, 23d angezeigt wird. Mit dieser SD- Darstellung der realen Roboterkomponenten 5a, 5b in Form von virtuellen Roboterkomponenten 23a, 23b, 23c, 23d kann die Interaktion, gesteuert über das Gantt-Diagramm 18, simuliert oder getestet werden, indem bestimmte Zustände der Roboterkomponenten 23a, 23b ,23c, 23d zu einem bestimmten Zeitpunkt 22 oder innerhalb eines bestimmten Zeitintervalls der Bewegungstrajektorien T visualisiert werden können.
Ferner stellt die Manipulationsschnittelle 13 Funktionen bereit, so dass das Steuerprogramm S, gegebenenfalls nach einer erfolgreichen Simulation, von der Zentraleinheit 10 über die Datenverbindung 4 an die Robotersteuerung 2 übertragen werden kann. In dem Gantt-Diagramm 18 selektierte Zeitintervalle oder Bewegungsrepräsentationen R werden dann, vermittelt durch die Zentraleinheit 10 und die Robotersteuerung 2, von den (realen) Roboterkomponenten 5a, 5b ausgeführt. Der Zeitpunkt 22 gibt hierbei die momentane Position innerhalb der Bewegungsrepräsentationen R an. Diese Wiedergabefunktion kann aber auch nur einzelne über das Gantt- Diagramm 18 adressierbare Bewegungstrajektorien T betreffen und beliebig unterbrochen und wieder fortgesetzt werden.
Ferner stellen die Manipulationsschalter 13b auch Funktionen zum Importieren und Exportieren sowie Abspeichern und Einlesen von Bewegungstrajektorien T bzw. Programmabschnitten P bereit. Auf diese Weise können Bewegungstrajektorien T anderer Interaktionen über eine geeignete Schnittstelle der Programmiereinrichtung 1 importiert werden, die gegebenenfalls nicht durch Playback- oder Teach-in-Programmierung aufgezeichnet sondern vollständig innerhalb einer virtuellen Umgebung modelliert wurden. Über das Gantt-Diagramm 18 können diese importierten Trajektorien T weiter bearbeitet oder mit anderen Interaktionen kombiniert werden. Importierte Bewegungstrajektorien T werden von der Umsetzungseinheit 12 automatisch in Bewegungsrepräsentationen R umgesetzt und von der Manipulationseinheit 13 als Gantt-Diagramm 18 dargestellt. Zum Zwecke des Imports/ Exports beherrscht die Programmiereinrichtung 1 die gängigen Austauschdatenformate, zum Beispiel solche aus dem CAD- oder CNC- Bereich, wie zum Beispiel STEP oder STEP-NC. Eine beispielhafte Anwendung eines solchen Imports/ Exports ist die Nachbearbeitung von Bewegungstrajektorien T, die nicht durch ein Teach-in- Verfahren erzeugt wurden, sondern ausschließlich in einer virtuellen Umgebung durch Simulation einer gewünschten Interaktion.
Ferner bietet die Manipulationsschnittstelle 13 über die Manipulationsschalter 13b Funktionen zur Konsistenzprüfung der Interaktion an, die eine Interpolation von unstetigen Bewegungstrajektorien T und/ oder eine Kollisionsprüfung der Trajektorien T betreffen. Im Rahme eines Transformationsschritts S5 werden also einerseits Unstetigkeitsstellen in den Bewegungstrajektorien T detektiert und stetig ergänzt und andererseits Kollisionen der Roboterkomponenten 5a, 5b im Rahmen der Interaktion erkannt und automatisch umgangen. Bei einer Interpolation von Unstetigkeitsstellen wird an der entsprechende Stelle der betroffenen Bewegungstrajektorie T dann beispielweise ein Abschnitt eingefügt, der genügend Zeit bereitstellt, damit die betreffende Roboterkomponente 5a, 5b von der einen in die andere Position technisch sinnvoll überführt wird. Bei der Korrektur von Kollisionsstellen werden die Bewegungstrajektorien T derart geändert, beispielsweise durch zeitliche oder räumliche Verschiebungen der Roboterkomponenten 5a, 5b, dass die Kollision umgangen wird. Derartige Konsistenzprüfungen können in dem Fenster 7 anhand der virtuellen SD-Darstellung der Roboterkomponenten 23a, 23b, 23c, 23d 7 visualisiert und überwacht werden. In Folge einer solchen automatisierten Transformation der Bewegungstrajektorien T im Rahmen des Schrittes S5 werden die Bewegungsrepräsentationen R äquivalent angepasst (Schritt S2) und das Gantt-Diagramm 18 entsprechend aktualisiert. Schließlich bietet die Manipulationsschnittstelle 13 auch Funktionen an, um Metadaten oder Prozessparameter in die Bewegungsrepräsentationen R einzufügen oder zu editieren, die beispielsweise Raumkoordinaten der Roboterkomponenten 5a, 5b oder Parameter zur Bearbeitung von Werkstü- cken betreffen. Diese Parameter werden in den Transformations- und Übersetzungsschritten S4, S6, S7 automatisch in die Trajektorien T, Programmabschnitte P und das Steuerprogramm S übernommen.

Claims

P a t e n t a n s p r ü c h e
1. Verfahren zum Erzeugen eines Steuerprogramms (S) für eine Interaktion zwischen beweglichen Roboterkomponenten (5a, 5b), wobei mit jeder Roboterkomponente (5a, 5b) zumindest eine Bewegungstrajektorie (T) manuell durchfahren wird, umfassend die folgenden Schritte einer Programmiereinrichtung (1):
Aufzeichnen (Sl) der Bewegungstrajektorien (T); und
Übersetzen (S5) der aufgezeichneten Bewegungstrajektorien (T) in Programmabschnitte (P) des Steuerprogramms (S) derart, dass durch Ausführen eines Programmabschnitts (P) durch eine Robotersteuerung (2) die zumindest eine Bewegungstrajektorie (T) der betreffenden Roboterkomponente (5a, 5b) reproduziert wird;
gekennzeichnet durch die weiteren Schritte der Programmiereinrichtung
(1):
Umsetzen (S2) der aufgezeichneten Bewegungstrajektorien (T) in graphische Bewegungsrepräsentationen (R; 20) entlang einer Zeitachse (21), wobei die Bewegungsrepräsentationen (R; 20) jeweils zumindest eine Bewegungstrajektorie (T) einer Roboterkomponente (5a, 5b) repräsentieren, derart, dass die Bewegungstrajektorien (T) durch Manipulieren (S3) der Bewegungsrepräsentationen (R; 20) räumlich und zeitlich aufeinander abgestimmt werden können, um die Interaktion zu definieren;
Transformieren (S3) der Bewegungstrajektorien (T) entsprechend der manipulierten Bewegungsrepräsentationen (R; 20);
Übersetzen (S5) der transformierten Bewegungstrajektorien (T) in Programmabschnitte (P) des Steuerprogramms (S) derart, dass die Roboterkomponenten (5a, 5b) durch Ausführen des Steuerprogramms (S) die Interaktion durchführen.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Steuerprogramm (S) derart aus den Programmabschnitten (P) kompiliert wird (S6), dass die Bewegungstrajektorien (T) entsprechend den manipulierten Bewegungsrepräsentationen (R; 20) aufeinander abgestimmt sind.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die aufgezeichneten Bewegungstrajektorien (T) in ein Gantt-Diagramm mit Zeitbalken entlang der Zeitachse (21) umgesetzt werden (S2), wobei jeder Zeitbalken einer Bewegungsrepräsentation (R) entspricht.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass eine Bewegungsrepräsentation (R; 20) entsprechend von durch Synchronisationspunkte (25) und/ oder Synchronisationsintervalle (26) in den Bewegungsrepräsentationen (R; 20) vorgegebene räumliche und/ oder zeitliche Abhängigkeiten zwischen den Bewegungstrajektorien (T) manipuliert wird (S3), insbesondere durch Strecken, Stauchen, Skalieren, Verschieben, Einfügen, Entfernen oder Duplizieren von Bewegungsrepräsentations- abschnitten (20a) in den Bewegungsrepräsentationen (R; 20), wobei die Bewegungstrajektorien (T) entsprechend den räumlichen und/ oder zeitlichen Abhängigkeiten transformiert werden (S4) und die derart transformierten Bewegungstrajektorien (T) in entsprechend synchronisierte Programmabschnitte (P) übersetzt werden (S5).
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass eine Bewegungsrepräsentation (R; 20) einer Bewegungstrajektorie (T) an einem markierten Zeitpunkt (22) um einen Bewegungsrepräsentati- onsabschnitt (20a) erweitert wird (S3), der eine weitere Bewegungstrajekto- rie (T) der betreffenden Roboterkomponente (5a, 5b) repräsentiert, indem der Bewegungsrepräsentationsabschnitt (20a) an dem markierten Zeitpunkt (22) in die Bewegungsrepräsentation (R; 20) eingesetzt wird oder die Bewegungsrepräsentation (R; 20) ab dem markierten Zeitpunkt (22) durch den Bewegungsrepräsentationsabschnitt (20a) überschrieben wird, wobei die Bewegungstrajektorie (T) entsprechend der erweiterten Bewegungsrepräsentation (R) transformiert wird (S3).
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Bewegungsrepräsentation (R; 20) um den Bewegungsrepräsentationsabschnitt (20a) erweitert wird (S3), während die weitere Bewegungstrajektorie (T) aufgezeichnet wird (Sl), oder um einen Bewegungsrepräsentationsabschnitt (20a), der eine bereits aufgezeichnete, weitere Bewegungstrajektorie (T) repräsentiert, wobei die weitere Bewegungstrajektorie (T) in die Programmiereinrichtung (1) importiert sowie in den Bewegungsrepräsentationsab- schnitt (20a) umgesetzt (S2) und in einen Programmabschnitt (P) übersetzt wird (S5).
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass wenn ein oder mehrere Bewegungsrepräsentationen (R; 20) ab einem markierten Zeitpunkt (22) oder in einem markierten Zeitintervall abgespielt werden, die Robotersteuerung (2) den einen oder die mehreren betreffenden Programmabschnitte (P) derart ausführt, dass die eine oder mehreren Roboterkomponenten (5a, 5b) die betreffenden Bewegungstrajek- torien (T) ab dem markierten Zeitpunkt (22) oder in dem markierten Zeitintervall reproduzieren.
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass auf der Programmiereinrichtung (1) manuell erstellte oder in die Programmiereinrichtung (1) importierte Programmabschnitte (P) und/ oder Steuerprogramme (S) in Bewegungsrepräsentationen (R; 20), die jeweils zumindest eine Bewegungstrajektorie (T) einer Roboterkomponente (5a, 5b) repräsentieren, derart umgesetzt werden, dass die Bewegungstrajektorien (T) durch Manipulieren (S3) der Bewegungsrepräsentationen (R; 20) räumlich und zeitlich aufeinander abgestimmt werden können.
9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die Programmiereinrichtung (1) eine virtuelle 3D-Darstellung der Roboterkomponenten (23a, 23b, 23c, 23d) erzeugt, wobei, wenn ein oder mehrere Bewegungsrepräsentationen (R; 20) ab einem markierten Zeitpunkt (22) oder in einem markierten Zeitintervall abgespielt werden, die eine oder mehreren virtuell dargestellten Roboterkomponenten (23a, 23b, 23c, 23d) die betreffenden Bewegungstrajektorien (T) ab dem markierten Zeitpunkt (22) oder in dem markierten Zeitintervall reproduzieren.
10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass die Bewegungsrepräsentationen (R; 20) auf Konsistenz geprüft werden, indem Kollisionsstellen in den Bewegungstrajektorien (T) delektiert werden und kollidierende Bewegungstrajektorien (T) derart transformiert werden (S4), dass die Kollisionsstellen kollisionsfrei umgangen werden, wobei die transformierten Bewegungstrajektorien (T) in kollisionsfreie Bewegungsrepräsentationen (R, 20) umgesetzt (S2) und in kollisionsfreie Programmabschnitte (P) übersetzt werden (S5) und/ oder indem Unstetig- keitsstellen in einer Bewegungstrajektorie (T) detektiert werden und eine unstetige Bewegungstrajektorie (T) derart transformiert wird (S4), dass die Unstetigkeitsstelle durch einen Interpolationstrajektorie stetig ergänzt wird, wobei die transformierte Bewegungstrajektorie (T) in eine stetige Bewegungsrepräsentation (R, 20) umgesetzt (s2) und in einen Programmabschnitt (P) übersetzt wird (S5).
11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass
eine manipulierte Bewegungsrepräsentation (R, 20) entsprechend der Manipulation (S2) derart transformiert (S3) und die transformierte Bewegungstrajektorie (T) entsprechend der Manipulation (S2) derart in einen Programmabschnitt (P) übersetzt wird (S5), oder
eine transformierte Bewegungstrajektorie (T) entsprechend der Transformation (S4) derart in eine Bewegungsrepräsentation (R; 20) umgesetzt (S2) und derart in einen Programmabschnitt (P) übersetzt wird (S5),
dass die Bewegungsrepräsentationen (R; 20), die Bewegungstrajektori- en (T) und die Programmabschnitte (P) die Interaktion zwischen den Roboterkomponenten (5a, 5b) jeweils äquivalent beschreiben.
12. Programmiereinrichtung (1) zur Erzeugung eines Steuerprogramms (S), das eine Interaktion zwischen beweglichen Roboterkomponenten (5a, 5b) realisiert, wenn es von einer Robotersteuerung (2) ausgeführt wird, umfassend
eine Aufzeichnungseinheit (11), die eingerichtet ist, eine mit einer Roboterkomponente (5a, 5b) manuell durchfahrene Bewegungstrajektorie (T) aufzuzeichnen; und
- eine Übersetzungseinheit (15), die eingerichtet ist, eine aufgezeichnete Bewegungstrajektorie (T) in einen Programmabschnitt (P) des Steuerprogramms (S) derart zu übersetzen, dass durch Ausführung des Programmabschnitts (P) durch die Robotersteuerung (2) die Bewegungs- trajektorie (T) der betreffenden Roboterkomponente (5a, 5b) reproduziert wird,
dadurch gekennzeichnet, dass die Programmiereinrichtung (1) weiterhin umfasst:
eine Umsetzungseinheit (12), die eingerichtet ist, eine aufgezeichnete Bewegungstrajektorie (T) in eine graphische Bewegungsrepräsentation (R; 20) entlang einer Zeitachse (21) umzusetzen, wobei die Bewegungsrepräsentation (R; 20) eine Bewegungstrajektorie (T) einer Roboterkomponente (5a, 5b) repräsentiert;
eine graphische Manipulationsschnittstelle (13), die eingerichtet ist, von der Umsetzungseinheit (12) umgesetzte Bewegungsrepräsentationen (R; 20) auf einer Anzeigeeinheit (16) der Programmiereinrichtung (1) darzustellen, sowie eingerichtet ist, Manipulationsfunktionen (13b) bereitzustellen, durch die die Bewegungsrepräsentationen (R) derart manipuliert werden können, dass die Bewegungstrajekto- rien (T) räumlich und zeitlich aufeinander abgestimmt werden, um die Interaktion zu definiert; und
eine Transformationseinheit (14), die eingerichtet ist, Bewegungs- trajektorien (T) entsprechend von manipulierten Bewegungsrepräsentationen (R; 20) zu transformieren;
wobei die Übersetzungseinheit (15) weiter eingerichtet ist, transformierte Bewegungstrajektorien (T) in Programmabschnitte (P) des Steuerprogramms (S) derart zu übersetzen, dass die Roboterkomponenten (5a, 5b) die Interaktion durchführen, wenn das Steuerprogramm (S) von der Robotersteuerung (2) ausgeführt wird.
13. Programmiereiruichtung (1) nach Anspruch 12, gekennzeichnet durch eine Datenverbindung (4) zwischen der Programmiereinrichtung (1) und der Robotersteuerung (2) die derart eingerichtet ist, dass, wenn ein oder mehrere Bewegungsrepräsentationen (R; 20) mittels der Manipulationsschnittstelle (13) ab einem markierten Zeitpunkt (22) oder in einem markierten Zeitintervall abgespielt werden, die betreffenden Programmabschnitte (P) über die Datenverbindung (4) an die Robotersteuerung (2) übertragen werden.
14. Programmiereinrichtung (1) nach Anspruch 12 oder 13, dadurch gekennzeichnet, dass die graphische Manipulationsschnittstelle (13), die Umsetzungseinheit (12) und die Übersetzungseinheit (15) derart eingerichtet sind, dass
bei einer Manipulation einer Bewegungsrepräsentation (R; 20) mittels der Manipulationsschnittstelle (13), die Transformationseinheit (14) die manipulierte Bewegungsrepräsentation (R; 20) entsprechend der Manipulation transformiert und die Übersetzungseinheit (15) die transformierte Bewe- gungstrajektorie (T) entsprechend der Manipulation in einen Programmabschnitt (P) übersetzt, und
bei einer Transformation einer Bewegungstrajektorie (T) durch die Transformationseinheit (14), die Umsetzungseinheit (12) die transformierte Bewegungstrajektorie (T) entsprechend der Transformation in eine Bewegungsrepräsentation (R; 20) umsetzt und die Übersetzungseinheit (15) die transformierte Bewegungstrajektorie (T) einsprechend der Transformation in einen Programmabschnitt (P) übersetzt,
derart, dass die Bewegungsrepräsentationen (R; 20), die Bewegungs- trajektorien (T) und die Programmabschnitte (P) die Interaktion zwischen den Roboterkomponenten (5a, 5b) jeweils äquivalent beschreiben.
15. Programmiereinrichtung (1) nach einem der Ansprüche 12 bis 14, dadurch gekennzeichnet, dass die Programmiereinrichtung (1) ausgestaltet und eingerichtet ist, ein Steuerprogramm (S) für eine Interaktion zwischen beweglichen Roboterkomponenten (5a, 5b) gemäß einem Verfahren nach einem der Ansprüche 1 bis 11 zu erzeugen.
16. Programmier- und Steuersystem, umfassend eine Programmiereinrichtung (1) nach einem der Ansprüche 12 bis 15 sowie eine mit der Programmiereinrichtung (1) über eine Datenverbindung (4) verbundene Robotersteuerung (2), wobei die Robotersteuerung (2) derart eingerichtet ist, dass von der Programmiereinrichtung (1) über die Datenverbindung (4) übertragene Programmabschnitte (P) von der Robotersteuerung (2) derart ausgeführt werden, dass die Roboterkomponenten (5a, 5b) die betreffenden Bewegungstrajektorien (T) reproduzieren.
PCT/EP2016/072543 2015-09-23 2016-09-22 Robotersteuerung WO2017050895A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102015116086.2 2015-09-23
DE102015116086.2A DE102015116086A1 (de) 2015-09-23 2015-09-23 Robotersteuerung

Publications (1)

Publication Number Publication Date
WO2017050895A1 true WO2017050895A1 (de) 2017-03-30

Family

ID=56985619

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2016/072543 WO2017050895A1 (de) 2015-09-23 2016-09-22 Robotersteuerung

Country Status (2)

Country Link
DE (1) DE102015116086A1 (de)
WO (1) WO2017050895A1 (de)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110871432A (zh) * 2018-08-31 2020-03-10 发那科株式会社 用于激光加工的示教装置
CN111283677A (zh) * 2018-12-10 2020-06-16 北京猎户星空科技有限公司 一种机器人控制方法、装置、机器人及机器人主控器
CN114096383A (zh) * 2019-02-11 2022-02-25 海别得公司 机器人系统中的运动分配
CN114393578A (zh) * 2021-12-31 2022-04-26 广州明珞装备股份有限公司 一种工艺动作判断方法、系统、设备及存储介质
DE102021214567A1 (de) 2021-12-17 2023-06-22 Carl Zeiss Industrielle Messtechnik Gmbh Verfahren und System zur Bewegungssteuerung einer Mehrzahl von Positioniereinrichtungen

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018004947B3 (de) 2018-06-22 2019-07-18 Sew-Eurodrive Gmbh & Co Kg Verfahren zur Steuerung von Antrieben eines Roboters und Robotersystem
DE102019102427B4 (de) * 2019-01-31 2022-02-10 Franka Emika Gmbh Koordination von Bahnen zweier Robotermanipulatoren
DE102022203406A1 (de) 2022-04-06 2023-10-12 Kuka Deutschland Gmbh Durchführung einer Roboterapplikation und Erstellen eines Programms hierfür
CN117021118B (zh) * 2023-10-08 2023-12-15 中北大学 一种并联机器人数字孪生轨迹误差动态补偿方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4586125A (en) * 1982-09-03 1986-04-29 Mitsubishi Denki Kabushiki Kaisha Numerical control working system
EP1321248A1 (de) * 2000-09-28 2003-06-25 Sony Corporation Entwurfssystem und entwurfsverfahren und speichervorrichtung
DE102010004472A1 (de) * 2010-01-13 2011-07-14 KUKA Laboratories GmbH, 86165 Werkzeug und Verfahren zur Planung und/oder Steuerung eines Mehrrobotersystems
WO2015006199A1 (en) * 2013-07-08 2015-01-15 Abb Technology Ag Multi-viewer for interacting or depending objects

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009004285A1 (de) * 2008-06-27 2009-12-31 Robert Bosch Gmbh Verfahren und Vorrichtung zur Optimierung, Überwachung oder Analyse eines Prozesses
EP3102366B1 (de) * 2014-02-05 2018-06-27 ABB Schweiz AG System und verfahren zum definieren der bewegungen mehrerer eine gemeinsame showvorstellung ausführender roboter

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4586125A (en) * 1982-09-03 1986-04-29 Mitsubishi Denki Kabushiki Kaisha Numerical control working system
EP1321248A1 (de) * 2000-09-28 2003-06-25 Sony Corporation Entwurfssystem und entwurfsverfahren und speichervorrichtung
DE102010004472A1 (de) * 2010-01-13 2011-07-14 KUKA Laboratories GmbH, 86165 Werkzeug und Verfahren zur Planung und/oder Steuerung eines Mehrrobotersystems
WO2015006199A1 (en) * 2013-07-08 2015-01-15 Abb Technology Ag Multi-viewer for interacting or depending objects

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110871432A (zh) * 2018-08-31 2020-03-10 发那科株式会社 用于激光加工的示教装置
CN111283677A (zh) * 2018-12-10 2020-06-16 北京猎户星空科技有限公司 一种机器人控制方法、装置、机器人及机器人主控器
CN114096383A (zh) * 2019-02-11 2022-02-25 海别得公司 机器人系统中的运动分配
DE102021214567A1 (de) 2021-12-17 2023-06-22 Carl Zeiss Industrielle Messtechnik Gmbh Verfahren und System zur Bewegungssteuerung einer Mehrzahl von Positioniereinrichtungen
CN114393578A (zh) * 2021-12-31 2022-04-26 广州明珞装备股份有限公司 一种工艺动作判断方法、系统、设备及存储介质

Also Published As

Publication number Publication date
DE102015116086A1 (de) 2017-03-23

Similar Documents

Publication Publication Date Title
WO2017050895A1 (de) Robotersteuerung
EP1901149B1 (de) Vorrichtung und Verfahren zur Simulation eines Ablaufs zur Bearbeitung eines Werkstücks an einer Werkzeugmaschine
DE60035651T2 (de) Steuerungssystem zum synchronen kooperativen Betreiben einer Mehrzahl von Robotern
EP1131686B1 (de) Verfahren zur steuerung technischer prozesse
DE60127908T2 (de) Robotersteuerung
EP2138914B1 (de) Verfahren und Vorrichtung zur Optimierung, Überwachung oder Analyse eines Prozesses
DE10352815B4 (de) Simulationsverfahren für eine Bearbeitung eines Werkstücks durch eine Werkzeugmaschine und korrespondierender Rechner
DE102009023648A1 (de) Steuerungssystem
DE2557464A1 (de) Steuersystem fuer eine automatische maschine, insbesondere fuer den arm eines roboters
WO2019020818A1 (de) Effiziente programmierung von robotern für die bearbeitung von werkstücken mit verschiedenen varianten
DE60219570T2 (de) Simulationsvorrichtung
EP0553621B1 (de) Programmierbare Computersteuerung für eine Werkzeugmaschine
DE10144788A1 (de) Verfahren und Vorrichtung zur sicheren hochperformanten Aufzeichnung von Prozessdaten bei numerisch gesteuerten industriellen Bearbeitungsmaschinen
DE102008018962A1 (de) Verfahren zur Steuerung eines Roboters
DE2338880A1 (de) Verfahren und vorrichtungen zur steuerung der beweglichen teile einer werkzeugmaschine durch ein numerisches umriss- oder punkt-fuer-punkt-steuerungssystem, wobei zwei teile der maschine unabhaengig voneinander entlang einer gemeinsamen achse bewegt werden koennen
EP1217476A2 (de) Vorrichtung und Verfahren zur Inbetriebnahme und Diagnose von Steuerungssystemen
DE102014219709A1 (de) Verfahren zur Kraftwerkssimulation für Test- und Schulungszwecke mittels einer verteilten Simulationshardware
DE102017010678B4 (de) Verfahren und System zum Vorgeben eines Beaufschlagungsmuster-Befehls-Lexikons zur Eingabe wenigstens eines Roboterbefehls
EP2628574A1 (de) Verfahren zur Simulation einer Bearbeitungsmaschine
EP2932339B1 (de) Verfahren zum computergestützten nachbilden einer produktionsanlage, verfahren zur inbetriebnahme einer produktionsanlage, konfigurationseinrichtung und produktionsanlage
DE4342660A1 (de) Einrichtung zum Betreiben eines technischen Gerätes entsprechend vorgegebenen Programmen
DE10125384B4 (de) Vorrichtung und Verfahren zur Inbetriebnahme und Diagnose von Steuerungssystemen
DE102004032996A1 (de) Einfache Roboterprogrammierung
EP4018275A1 (de) System und verfahren zur steuerung zumindest einer maschine, insbesondere eines kollektivs von maschinen
EP0708937A1 (de) Verfahren und vorrichtung zum steuern von bewegungen und/oder prozessen eines werkzeugs

Legal Events

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

Ref document number: 16770270

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16770270

Country of ref document: EP

Kind code of ref document: A1