METHOD AND SYSTEM FOR SIMULATING A ROBOTIC PROGRAM OF AN INDUSTRIAL ROBOT
20200042336 ยท 2020-02-06
Inventors
- Moshe Hazan (Elad, IL)
- YAEL BARAK (HOD-HASHARON, IL)
- Guy Barak (Rishon Le-Zion, IL)
- Gal Snir (Ramat Gan, IL)
- Rahav Madvil (Rishon Lezion, IL)
- Gilles Velay (Garancieres, FR)
Cpc classification
G05B2219/35345
PHYSICS
G05B2219/36231
PHYSICS
B25J9/1658
PERFORMING OPERATIONS; TRANSPORTING
G06F9/455
PHYSICS
International classification
Abstract
A robotic program of an industrial robot is simulated. Inputs on a robotic program of a robot are received. The robotic program of the robot is represented with a neutral representation modeled with a neutral language. Specific code portions of the robotic program in the neutral representation are mapped with corresponding specific code portions of a native representation modeled with a native language of the at least one robot. The robot program in simulated in one of the neutral representation and the native representation. Corresponding code portions of the neutral representation and of the native representation of the robotic program are synchronized via the mapping.
Claims
1-18. (canceled)
19. A method for simulating, by a data processing system, a robotic program of an industrial robot, the method comprising the following steps: a) receiving inputs of a robotic program of a robot; b) representing the robotic program of the robot with a neutral representation modeled with a neutral language; c) mapping specific code portions of the robotic program in the neutral representation with corresponding specific code portions of a native representation modeled with a native language of the robot; d) simulating the robot program in one of the neutral representation and of the native representation; and e) synchronizing corresponding code portions of the neutral representation and of the native representation of the robotic program via the mapping of step c).
20. The method according to claim 19, wherein the step of receiving the robotic program at step a) is receiving the robotic program via upload.
21. The method according to claim 19, which comprises performing the mapping of step c) during download.
22. The method according to claim 19, wherein the mapping of step c) comprises inserting tags in the native code and/or in a caching table.
23. The method according to claim 19, further comprising validating and/or modifying the robotic program.
24. The method according to claim 19, further comprising downloading the robotic program in native language.
25. A data processing system, comprising: a processor; and an accessible memory; and wherein the data processing system is configured to: a) receive inputs on a robotic program of a robot; b) represent the robotic program of the robot with a neutral representation modeled with a neutral language; c) map specific code portions of the robotic program in the neutral representation with corresponding specific code portions of a native representation modeled with a native language of the robot; d) simulate the robot program in one of the neutral representation and of the native representation; and e) synchronize corresponding code portions of the neutral representation and of the native representation of the robotic program via the mapping of paragraph c).
26. The data processing system according to claim 25, wherein the data processing system is configured to receive the robotic program via upload.
27. The data processing system according to claim 25, wherein the data processing system is configured to perform the mapping of paragraph c) during download.
28. The data processing system according to claim 25, wherein the data processing system is configured to perform the mapping of paragraph c) by inserting tags in the native code and/or in a caching table.
29. The data processing system according to claim 25, wherein the data processing system is further configured to validate and/or modify the robotic program.
30. The data processing system according to claim 25, wherein the data processing system is configured to download the robotic program in native language.
31. A non-transitory computer-readable medium encoded with executable instructions that, when executed, cause one or more data processing systems to: a) receive inputs on a robotic program of a robot; b) represent the robotic program of the robot with a neutral representation modeled with a neutral language; c) map specific code portions of the robotic program in the neutral representation with corresponding specific code portions of a native representation modeled with a native language of the robot; d) simulate the robot program in one of the neutral representation and of the native representation; and e) synchronize corresponding code portions of the neutral representation and of the native representation of the robotic program via the mapping of item c).
32. The non-transitory computer-readable medium of claim 31, wherein the robotic program is received via upload.
33. The data processing system according to claim 31, wherein the mapping of item c) is performed during download.
34. The data processing system according to claim 31, wherein the mapping of item c) comprises inserting tags in the native code and/or in a caching table.
35. The data processing system according to claim 31, wherein the executable instructions further cause a data processing system to validate and/or modify the robotic program.
36. The data processing system according to claim 31, wherein the executable instructions cause a data processing system to download the robotic program in native language.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0015] For a more complete understanding of the present disclosure, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, wherein like numbers designate like objects, and in which:
[0016]
[0017]
[0018]
[0019]
DETAILED DESCRIPTION
[0020]
[0021] Embodiments enhance the simulation capabilities of robotic simulation applications.
[0022] Embodiments support the robotic engineers in performing their robotic simulation tasks in user friendly and easy manners, in particularly when dealing with a manufacturing scenario having robots of multiple vendors.
[0023] Embodiments enable synchronizing the robotic simulation in two representations in a parallel manner.
[0024] Embodiments enable to break down the native robotic program in code portions so that the user is enabled to know at a given time which motion or logic the robot is performing, e.g. robot target, specific OLP command, etc.
[0025] Embodiments enable the user to verify the same logic in parallel with two different representations, a neutral one and a native one.
[0026] Embodiments enable to increase the productivity and the efficiency of robotic simulation application by enabling robotic engineers to concurrently operate in the language they are familiar with.
[0027] Embodiments enable an improved control by breaking down the views of the executed code, in addition to the high level views provided with the neutral language representation.
[0028] Embodiments allows skilled robot programmer to see the executed program in native language of the specific robot controller.
[0029] Embodiments also allows commonality in one approach so that the program can be visualized in a common language for all controllers and in the same time it can be detailed or have detailed and unique representation for each controller, without the need to maintain the generic code of the simulation environment. Advantageously, native language expert users may sit together with neutral language expert users to resolve a problem within one virtual simulation system.
[0030] Embodiments enable improved capability during the verification process of a robotic program.
[0031] Embodiments enable offline robotic code synchronization of different robots within a virtual simulation system.
[0032] Embodiments enable improved OLP programming of robots.
[0033]
[0034] Other peripherals, such as local area network (LAN)/Wide Area Network/Wireless (e.g. WiFi) adapter 112, may also be connected to local system bus 106. Expansion bus interface 114 connects local system bus 106 to input/output (I/O) bus 116. I/O bus 116 is connected to keyboard/mouse adapter 118, disk controller 120, and I/O adapter 122. Disk controller 120 can be connected to a storage 126, which can be any suitable machine usable or machine readable storage medium, including but not limited to nonvolatile, hard-coded type mediums such as read only memories (ROMs) or erasable, electrically programmable read only memories (EEPROMs), magnetic tape storage, and user-recordable type mediums such as floppy disks, hard disk drives and compact disk read only memories (CD-ROMs) or digital versatile disks (DVDs), and other known optical, electrical, or magnetic storage devices.
[0035] Also connected to I/O bus 116 in the example shown is audio adapter 124, to which speakers (not shown) may be connected for playing sounds. Keyboard/mouse adapter 118 provides a connection for a pointing device (not shown), such as a mouse, trackball, trackpointer, touchscreen, etc.
[0036] Those of ordinary skill in the art will appreciate that the hardware illustrated in
[0037] A data processing system in accordance with an embodiment of the present disclosure can include an operating system employing a graphical user interface. The operating system permits multiple display windows to be presented in the graphical user interface simultaneously, with each display window providing an interface to a different application or to a different instance of the same application. A cursor in the graphical user interface may be manipulated by a user through the pointing device. The position of the cursor may be changed and/or an event, such as clicking a mouse button, generated to actuate a desired response.
[0038] One of various commercial operating systems, such as a version of Microsoft Windows, a product of Microsoft Corporation located in Redmond, Wash. may be employed if suitably modified. The operating system is modified or created in accordance with the present disclosure as described.
[0039] LAN/ WAN/Wireless adapter 112 can be connected to a network 130 (not a part of data processing system 100), which can be any public or private data processing system network or combination of networks, as known to those of skill in the art, including the Internet. Data processing system 100 can communicate over network 130 with server system 140, which is also not part of data processing system 100, but can be implemented, for example, as a separate data processing system 100.
[0040]
[0041]
[0042] In embodiments, the robotic program of a robot is received as input. With the terms robotic program it is herein intended virtual robotic program/operation, whereby a virtual program may contain several operations for the same robots. In other embodiments, received inputs may include a virtual representation of the robot, a virtual representation of the environment (e.g. 3D study, cell with its contents).
[0043]
[0044] In embodiments, the robotic program of the robot may conveniently be received in a native representation, for example via upload. The robotic program is then represented in a neutral representation by converting the native representation into a neutral representation. This may be conveniently done for example within a virtual simulation environment having such capability.
[0045] In other embodiments, the robotic program is received in a neutral representation. Examples include receiving a robotic program from a repository or obtaining it via modeling within the virtual simulation environment.
[0046] In other embodiments, a mix of the above may advantageously be possible. For example, a robotic program in native language received via upload is modeled with some changes in a neutral representation as for example by adding new locations and OLPs within the virtual simulation system.
[0047] In embodiments, the virtual simulation system is provided with the capability of simulating the received robotic program with a neutral representation modeled with a neutral language.
[0048] In embodiments, the robotic programs in neutral language representation may preferably contain 3D objects, high level OLP commands and/or other virtual objects (e.g. parts, signals, tools etc.), 3D locations with parameters for motion instructions, OLP Commands objects, attached to the parent operation or location, for non-motion instructions. Other virtual objects may for example be a paint trigger where e.g. once the robot reach the trigger position, the paint gun changes its brush.
[0049] In embodiments, the robotic program is simulated in a neutral representation. Advantageously, it is possible to perform the relevant virtual validations and modifications in a natural representation.
[0050] In
[0051] Specific code portions of the robotic program in the neutral representation are mapped with corresponding specific code portions of a native representation modeled with a native language of the robot.
[0052] In embodiments, the mapping may be done at the beginning.
[0053] In embodiments, the mapping may be done upon notifications, for example in case of user requests, changes, errors and other types of notifications.
[0054] In embodiments, it is automatically recognized a change in the natural language program or in its twin program in native language, for example by detecting changes in the downloaded file, and the mapping is accordingly generated or updated.
[0055] The mapping may conveniently be performed during a download of the robotic program. The mapping may be done by inserting tags in the native language code of the robotic programs and/or by making use of a cache mapping table.
[0056] For example, the system controller downloads the robotic program in a special silent mode. During this special download, specific tags are inserted in the robotic program native syntax code in order to synchronize the program lines in native syntax with the system objects of the neutral representation. In embodiments, the mapping may advantageously be cached in a table as alternative to the tags in the native code or in addition to it.
[0057] In embodiments, for each robot of the virtual simulation systems, the following steps are performed: [0058] the controller of the system downloads the robotic program in a special silent mod [0059] during this special download, the controller inserts specific tags in the robotic program in native syntax in order to synchronize the program lines in native syntax with the system objects (e.g. the operations, the location, the OLP commands, etc.).
[0060] In embodiments, the mapping may advantageously be cached. A cached version of the mapping may advantageously improve speed simulation performances. Table 1 is an exemplary embodiment of cache table referring to the tags inserted in the exemplary native code of
TABLE-US-00001 TABLE 1 Key Line numbers TX_OP_001 7 TX_CMD_001 8 TX_CMD_002 10 TX_LOC_001 12-14 . . . . . .
[0061] In the exemplary embodiment of Table 1, the keys in Table 1 object names which are mapped with the corresponding robotic program lines written in the native code. In other embodiments, the keys may be object IDs. In the example of Table 1, the prefix TX is an acronym for Tecnomatix. The tag TX_OP_001 refers to the start of a new operation until the next operation tag TX_OP_i. The tag TX_CMD_001 refers to the start of a new command until any tag is encountered TX_CMD_i; TX_OP_i, TX_LOC_i. The tag TX_LOC_001 refers to the start of a new location until the next operation tag or location tag is encountered, TX_OP_i or TX_LOC_i.
[0062] In
[0063] During the simulation, based on the above mentioned mapping, and also on possible notifications from the controller, the virtual simulation system can show the program code in native language and highlights the current simulated lines based on the current simulated objects.
[0064] In the exemplary embodiment of
[0065] In case that the simulation is stopped, the system can advantageously show all robot variables and signals names vs their values in order to give better understanding.
[0066]
[0067] At act 405, inputs on a robotic program of a robot is received.
[0068] At act 410, representing the robotic program of the robot with a neutral representation modeled with a neutral language. In embodiments, a virtual simulation system is provided for simulating the robot with a neutral representation.
[0069] At act 415, specific code portions of the robotic program in the neutral representation are mapped with corresponding specific code portions of a native representation modeled with a native language of the robot.
[0070] At act 420, simulating the robot program in one of the neutral representation and of the native representation. In embodiments, the virtual simulation system is provided also with the capability of simulating the robot in a native representation. In embodiments, the relevant virtual validations and modifications are performed.
[0071] At act 425, corresponding code portions of the neutral representation and of the native representation of the robotic program are synchronized via the mapping of act 415. In embodiment, the virtual simulation system is provided with the capability to synchronize the corresponding code portions of the neutral and native representation during simulation. In embodiments, the simulation is executed in one representation and then it is advantageously synchronized with the other representation.
[0072] In embodiments, during simulation, synchronized code portions in native representation 305 and in neutral representation 304 are highlighted. In embodiments, it is possible to play the simulation by a virtual robot controller in native language and synchronize in the system in neutral language. Advantageously, embodiments enable to highlight the desired or current equivalent code portions 304, 305 in both languages.
[0073] As used herein the term code portion mean a portion of code and/or a virtual object like for example locations and OLP commands. In fact, natural representations, virtual objects are actually a real part of the code, given that the neutral language makes often use of high-level language and visual objects.
[0074] Embodiments may include a plurality of robots and a plurality of native representations.
[0075] In embodiments, an additional step includes downloading back into different program files with different native languages. In embodiments, upon successful validation phase, it is possible to download the robotic program for usage by the real robot.
[0076] In other embodiments, synchronized code portions with in native and natural representations may be used for debugging purposes. For example, in embodiments, an expert user may wish to read the robotic program in the robotic native language in order to check the logic in a phase other than simulation time. In other embodiments, another user may wish to compare the robotic program to another program. Advantageously, users are able to do minors modifications to the neutral language code and see the outcomes in the native language code.
[0077] In embodiments, during the simulation, based on the above mentioned mapping, and notifications on system objects from the controller simulation, the system can show the program code in native language and highlights the current simulated lines based on the current simulated objects.
[0078] In case that the simulation is stopped, the system can show all robot variables and signals names vs their values in order to improve usability. Additionally, it may have also Edit capabilities so that the user is able to modify their values and continue with the simulation (e.g. by changing the value of a signal).
[0079] Embodiments are helpful in the following use case scenario: the user starts the common simulation and the simulation stops with error; the user sees something wrong; the user is able to open the viewer of the native code, the silent download is performed and the table mapping is created, so that the user is able to see the current native code. Hence, in embodiments, download and mapping may be performed at a later stage upon request.
[0080] Other embodiments may include: downloading the robotic program (in native language) into the robot controller; connect to the virtual robot controller via a dedicated API to execute the downloaded robotic program line after line; synchronizing both systems to work on the same simulation clock; and, user is enabled to view the lines being simulated in the virtual robot controller and the actual 3D motion in the system.
[0081] Other embodiments may include: at simulation time, for each location, for each OLP command, the system controller does mini downloads; and the system visualizes for the user the current mini-download lines.
[0082] Although an exemplary embodiment of the present disclosure has been described in detail, those skilled in the art will understand that various changes, substitutions, variations, and improvements disclosed herein may be made without departing from the spirit and scope of the disclosure in its broadest form.
[0083] None of the description in the present application should be read as implying that any particular element, step, or function is an essential element which must be included in the claim scope: the scope of patented subject matter is defined only by the allowed claims.