Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM FOR PERFORMING AN OPERATION WITH AN INDUSTRIAL ROBOT
Document Type and Number:
WIPO Patent Application WO/2019/021044
Kind Code:
A1
Abstract:
The present invention provides a method and system for performing an operation with an industrial robot. The method comprises receiving selection of two or more graphical objects from a user, for defining the operation with the industrial robot. The method further comprises defining one or more control logic for performing one or more tasks with the industrial robot, and linking the one or more control logic according to the selected graphical objects. In addition, the method comprises transmitting the control logic for execution with the controller to control the industrial robot.

Inventors:
SUREKA, Ashish (309 Crystal Cove, Maragondanahalli Electronics City Phase 1, Bangalore 5, 560105, IN)
SHEPHERD, David Carroll (1617 East Martin Street, Raleigh, North Carolina, 27610, US)
FRANCIS, Patrick (2436 Trailwood Hills Dr, Raleigh, North Carolina, 27603, US)
Application Number:
IB2017/055832
Publication Date:
January 31, 2019
Filing Date:
September 26, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ABB SCHWEIZ AG (Brown Boveri Strasse 6, 5400 Baden, 5400, CH)
International Classes:
B25J9/16
Foreign References:
US20150273685A12015-10-01
US20020126151A12002-09-12
CN104503754A2015-04-08
Other References:
ANONYMOUS: "Selogica control system - Comprehensive management for injection moulding technology", ARBURG FOCUS, 1 October 2013 (2013-10-01), pages 1 - 16, XP055465553, Retrieved from the Internet [retrieved on 20180409]
None
Download PDF:
Claims:
CLAIMS

1. A method for performing an operation with an industrial robot, wherein the industrial robot is controlled with a controller, the method comprising:

receiving at an input interface of a robot programming system, selection of two or more graphical objects for defining the operation of the industrial robot, wherein each graphical object is associated with a task for the operation of the industrial robot;

defining in the robot programming system, one or more control logic for performing one or more tasks with the industrial robot, and linking the one or more control logic according to the selected graphical objects; and

transmitting the control logic for execution with the controller to control the industrial robot.

2. The method of claim 1, wherein selecting a graphical object of the two or more graphical objects comprises one of selecting the graphical object and editing the graphical object based on a parameter associated with the task.

3. The method of claim 1, wherein defining the control logic comprises combining software code(s) corresponding to the first graphical object and the second graphical object to generate a combined software portion.

4. The method of claim 3 further comprising performing at least one of syntax analysis or syntactic analysis on the combined software portion.

5. A system for performing an operation with an industrial robot, the system comprising:

an interface for:

displaying a plurality of graphical objects for selection;

receiving a selection of two or more of the displayed graphical objects, for defining the operation; and

displaying one or more control logic generated according to the selection of the two or more graphical objects;

a processor for: defining the one or more control logic for performing one or more tasks with the industrial robot, and linking the one or more control logic according to the selected graphical objects; and

transmitting the control logic for execution with a controller to control the industrial robot.

The system of claim 5, wherein the interface is a graphical user interface, and the processor is a server connected to the interface, and the controller

The system of claim 5, wherein the interface, and the processor are part of a robot programming environment.

Description:
METHOD AND SYSTEM FOR PERFORMING AN OPERATION WITH AN

INDUSTRIAL ROBOT

FIELD OF THE INVENTION

[001] The invention generally relates to industrial robots, and more specifically to control of industrial robots in industrial processes.

BACKGROUND OF THE INVENTION

[002] Industrial robots are widely used to yield production growth and improve quality of working environment. Applications of industrial robots extend to various industries, for example painting, packaging, manufacturing industry, automotive industry, and many others. To control operations of an industrial robot in an industrial environment, the industrial robot needs to be programmed (e.g. controlled with a controller of the robot). Robot programming can be divided into two types: online programming and offline programming. Online programming requires direct interaction with a physical robot using a teach-pendant or manual lead through. Offline programming consists of programming a robot using an offline simulation and programming software consisting of a virtual controller and CAD (computer aided design) models. Both the online programming and offline programming methods and widely used and each has their own advantages and disadvantages.

[003] A programming system / environment can be used to program / configure controllers to control industrial robots for various industrial processes. An operation for which an industrial robot can be used may include a set of tasks, for example in a manufacturing industry may include a pick and place type operation, which may include tasks of locating objects, identifying target locations, moving objects from one target location to another, etc.

[004] In order to configure an industrial robot for an operation, a specific programming and simulation system may be used. For example, RobotStudio® is an offline robot programming and simulation system that may be used for programming a robot for an operation. Such a system typically requires usage of a high-level programming language (e.g. RAPID), by a technician. Currently, only a technician with specialized knowledge of such complex high- level language, is capable of using such systems for the purpose of controlling industrial robots for specific processes. Programming complexity and knowledge of text-based programming language and its syntax is one of the major barriers of adoption and high cost in the industry for process automation tasks in factories.

[005] There is accordingly a need of a method and system that reduces the difficulty in defining operations of an industrial robot.

SUMMARY OF THE INVENTION

[006] Various embodiments of the invention are related to a method and system for performing an operation with an industrial robot.

[007] The method comprises receiving selection of two or more graphical objects for defining the operation. Here, each graphical object is associated with a task of the operation (e.g. related to pick, target, path, grab etc.). The selection is received at an input interface of a robot programming system. The selection can include directly selecting a graphical object as provided or editing (modifying) the graphical object according to a parameter (e.g. provide a target value, a path definition etc.).

[008] The method further comprises defining in the robot programming system, one or more control logic for performing one or more tasks with the industrial robot, and linking the one or more control logic according to the selected graphical objects. Here, the steps of determining and linking can include fetching and combining software code(s) corresponding to the first graphical object and the second graphical object to generate a combined software portion. Control logic for each task may be defined and stored (e.g. in a library or memory). When a graphical object is selected, the corresponding control logic can be fetched and edited as required (e.g. with the parameters provided). The method can include performing at least one of syntax analysis or syntactic analysis on the combined software portion.

[009] Once the one or more control logic are defined, it is transmitted for execution with the controller to control the industrial robot.

[0010] The system for performing the operation with the industrial robot, comprises an interface and a processor. The interface is configured to display a plurality of graphical objects for selection, receive a selection of two or more of the displayed graphical objects, for defining the operation; and displaying one or more control logic generated according to the selection of the two or more graphical objects. The processor(s) is configured to define the one or more control logic for performing one or more tasks with the industrial robot, and linking the one or more control logic according to the selected graphical objects. Additionally, the processor is configured to transmit the control logic for execution with a controller to control the industrial robot.

[0011] The interface can be a graphical user interface, and the processor can be a server connected to the interface and the controller of the industrial robot.

[0012] The interface, and the processor can be part of a robot programming environment.

BRIEF DESCRIPTION OF DRAWINGS

[0013] Figure 1 is a flowchart of a method for performing an operation with an industrial robot, in accordance with an embodiment of the present invention.

[0014] Figure 2 is a flowchart of a method for generating one or more control logic according to two or more graphical objects, in accordance with an embodiment of the present invention.

[0015] Figure 3 illustrates a robot programming system, in accordance with an embodiment of the present invention.

[0016] Figure 4 illustrates the robot programming system, in accordance with another embodiment of the present invention.

DETAILED DESCRIPTION

[0017] Various embodiments of the invention relate to performing an operation with an industrial robot(s). The operation (process) may be painting, packaging, assembly etc., which may need one or several industrial robots working together. An operation may include one or more tasks such as, but not limited to, pick, drop, grab, and move. The operation may be performed by programming (or configuring) a controller(s) of the industrial robot (programming the robot). The controller configuration is performed using a robot programming system (or environment). Such a system can have an interface and a processor to generate one or more control logic for control of the industrial robot to perform the operation. For instance, the interface can display graphical objects, which can be selected, edited as required and combined by the user to generate the one or more control logic. The generated logic can then be provided to the controller of the robot, for controlling the robot to perform the operation.

[0018] Referring to Figure 1, which is a flowchart of a method (100) for performing an operation with an industrial robot. The method will be described with reference to a robot programming system or environment (such as 300 illustrated in Figures 3A and 3B).

[0019] The method includes at 102 receiving selection of a first graphical object and at least one further graphical object (e.g. a second graphical object, or multiple other graphical objects). In one implementation, drag and drop mechanism is adopted to cause selections of the graphical objects 305. Mechanisms (e.g. insert from a list of available graphical objects) other than drag and drop can also be adopted for causing selections. The selection can be received from a user (e.g. at an input interface of the environment 300). For example, a computer system hosts the robot programming and simulation software (300). In this example, the input interface can be a graphical user interface of the computer system.

[0020] Further, the method 100 includes at 104 defining a control logic (one or more control logic) for the operation with the industrial robot, and linking the control logic. Each graphical object is associated with a task. Accordingly, a control logic can be defined for the task, and stored in a memory (e.g. as part of a library). Thus, when a selection of multiple graphical objects is performed in a specific order / flow, an operation can be defined. Here, according to the defined order / flow, the one or more control logic corresponding to the selected tasks can be fetched and linked (e.g. with a linker). It is possible that a parameter value (e.g. path, speed etc.) is provided in the selection. The corresponding control logic can accordingly be updated based on the provided values. Here, the steps of defining and linking the one or more control logic can include fetching and combining software code(s) corresponding to the first graphical object and the second graphical object to generate a combined software portion. The method can include performing at least one of syntax analysis or syntactic analysis on the combined software portion.

[0021] The linking of control logic is thus formed (e.g. by two graphical objects 305A and 305B) as a result of being linked together using the environment 300 (e.g. with programming canvas 306). In one implementation, only those graphical objects can be linked which are semantically correct, i.e., are logical to be combined. For example, while defining the control logic for the operation to be performed with the industrial robot, one graphical object corresponding to identifying an object at a first target location is selected, and another graphical object corresponding to dropping the object at a second target location is selected. In this case, as the action of picking is required. This is because if the object was not picked, it cannot be dropped. Therefore, linking the two graphical objects would not be possible, and hence the control logic for pick and drop will not be defined.

[0022] Referring to Figure 2, which is a flowchart of a method for generating one or more control logic according to two or more graphical objects, in accordance with an embodiment of the invention. Here, the compatibility between the software code corresponding to the first graphical object and the software code corresponding to the at least one further graphical object (second, third etc.) needs to be ascertained.

[0023] The method includes at 202 fetching software code(s) corresponding to the first graphical object (e.g. 305A in Figure 3A) and the further graphical object (e.g. 305B in Figure 3A). The fetched software code(s) corresponding to each graphical object (e.g. 305A and 305B) can be in a high level programming language (e.g. in RAPID).

[0024] The method includes at 204 combining the software code(s) corresponding to the first graphical object and the software code(s) corresponding to the further graphical object to generate a combined software portion. The software code(s) are combined (linked) to generate the control logic as intended by selection of the graphical objects by the user.

[0025] Optionally, at 206, at least one of syntax analysis or syntactic analysis is performed on the combined software portion. Such analysis may be performed be detect errors (e.g. related to compiling, output etc.). In one implementation, the method may include automatically correcting one or more identified syntactic errors and/or semantic errors. In another implementation, the method includes displaying the syntactic errors and the semantic errors to the user for correction. In a yet another implementation, the method includes displaying suggestions or corrections to the syntactic errors and/or semantic errors (e.g. in a suggestion or error window 310) determined in the combined software portion(s). [0026] Once the graphical objects are linked, i.e. the control logic for the operation is generated, the same can be tested / executed at 106. As an option, the control logic can be executed in a virtual controller or simulator (such as 308). The simulator can assist in analysing execution of the software code(s) across a variety of different hardware platforms and operating systems without having to test the execution on each platform. Alternately, the control logic can be sent to a controller of the industrial robot. Such controller may be a part of the robot or connected with the robot. The controller can accordingly control the industrial robot for performing the operation.

[0027] The robot programming system (environment) 300 may include an interface and processor, which provide a variety of tools to assist in performing the operation with the industrial robot using the method described hereinabove. In Figure 3, a toolbar 302 is shown. Such a toolbar may include various selectable buttons to select functions and options which are common to all the programs created in the offline integrated robot programming environment. These selectable buttons may include one or more of, but not limited to, a 'NEW, 'OPEN', ' SAVE, 'UNDO', 'REDO' ' SHOW CODE' 'CONTACT', ' SETTING' and 'HELP' options. The 'NEW option is to create a new file for creating a program in the programming environment 300. Once, the file is created it can be saved using 'SAVE' option. Also, the file can be opened using 'OPEN' option. During creation of a program by using the robot programming environment 300, the user's actions can be undone, redone using 'UNDO', and 'REDO' options respectively. The option ' SHOW CODE' can be used to see the software code(s) corresponding to the graphical objects (305) in the programming canvas (306). However, the described selectable buttons are not restrictive and can be customized to utilize many other functionalities of the robot programming environment 300. The functionality implemented with the graphical objects (305) linked together in the programming canvas (106) may be tested with the robot simulator 308 or with the controller.

[0028] The method as described above in view of the robot programming environment 300 assists the user in utilizing graphical objects representing complex high level text based programming language, to develop programs and control one or more behaviours of the industrial robot.

[0029] Figure 3B illustrates another embodiment of the robot programming environment 300, wherein the toolbox 302 includes a plurality of graphical objects (405). The plurality of graphical objects are displayed according to a selection of one or more categories and/or subcategories of graphical objects (305C). The categorizing and/or sub-categorizing are based on various functionalities of the industrial robot being programmed. Accordingly, if the user may wish to create a program specific to a functionality of the industrial robot, he may select a category 305C, and corresponding to that functionality all the graphical objects common within that category will be displayed to the user in the toolbox (304). For example, Figure 3B illustrates categories 'BEGF AND END TASK', 'POSITION AND REFERNCE FRAME', 'PATH AND TARGET, 'MOTION', and 'CONTROL' as functions of the pick and drop / place type industrial operation to be defined for the industrial robot. Further, as illustrated in Figure 3B, when 'PATH AND TARGET' is selected from the categories, a plurality of graphical objects 405 are displayed associated with the 'PATH AND TARGET' category.

[0030] Referring to Figure 4A, a system (400) for performing an operation with an industrial robot is disclosed, in accordance with an embodiment of the invention. The system includes one or more modules such as a receiving module (402), a linking module (404) and an execution module (406). The modules of the system can be implemented with hardware / software on one device or spread across several devices. For example, the receiving module (or input interface) can be part of one device, while the linking and execution modules can be in a processor of same or another device.

[0031] Consider a case where an input interface is remotely connected to a server, which in turn is linked with the controller of the robot, for performing various steps of the method described herein above. In such a case, some steps can be performed with the input interface (e.g. showing the interfaces, receiving selection, displaying generated logic etc.), some at the server (e.g. fetching software codes, generating control logic etc.), and some with the controller (e.g. controlling the robot according to the control logic for performing the operation).

[0032] In accordance with the embodiment illustrated in Figure 4A, the receiving module receives selection of two or more graphical objects (e.g. 305A and 305B). The linking module is configured to define the control logic for performing the operation with the industrial robot by linking the graphical objects selected by the user. The linking module can also be configured determine the compatibility of software code(s) corresponding to the graphical objects. The linking module can perform the linking of the graphical objects in accordance with the steps of the method described above.

[0033] The linking module may be have one or more sub-modules as shown in Figure 4B. In Figure 4B, the linking module includes a fetching sub-module (410), a combining sub- module (412) and an error determination sub-module (414). The fetching sub-module is configured to fetch software code(s) (as in step 202) corresponding to a graphical object (e.g. 305A, 305B). The combining sub-module is configured to combine the software code(s) corresponding to the graphical objects selected by the user to generate a combined software portion (as in step 204). Further, the error determining sub-module is configured to perform at least one of syntax analysis or syntactic analysis on the combined software portion (as in step 206). In one implementation, the error determination sub-module is configured to automatically correct one or more identified syntactic errors and/or semantic errors. In a further implementation, the error determination sub-module is configured to suggest corrections syntactic errors and/or semantic errors determined in the combined software portion(s) for displaying in the suggestion or error window 310 in the robot programming environment 300.

[0034] The control logic thus generated is executed using the execution module. The execution module may be provided on the simulator (308) or virtual controller, or in the controller of the robot.

[0035] The system (400) may further include a displaying module (not shown). The displaying module is configured to display the robot programming environment 300 in accordance with the teachings of the present invention. The displaying module is further configured to display the robot programming environment 300 (e.g. remotely) as a programming interface on a display of a device of the user (e.g. on a laptop, computer, smartphone or tablet device of the user).

[0036] In accordance with an embodiment, the robot programming environment 300 may be incorporated as a plug-in or an add-on to an existing system for programming / simulation (e.g. RobotStudio). Such a programming / simulation system may include several in-built functionalities to support programming of the industrial robot, and is configured to support extensions to other functionalities for developing control programs for the industrial robot.