Robot control program creation method and robot control program creation device

The method and device simplify the creation of robot control programs by using block-based input for object and robot information, addressing the complexity of coordinate settings in conventional methods and enabling users to create effective robot control programs without extensive expertise.

WO2025009384A1PCT designated stage expired Publication Date: 2025-01-09PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/022062
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-07-05
Filing Date
2024-06-18
Publication Date
2025-01-09

AI Technical Summary

Technical Problem

Conventional methods for creating robot control programs require users to input precise three-dimensional coordinates, making the process time-consuming and challenging for users without advanced proficiency.

Method used

A method and device that simplify the creation of robot control programs by displaying blocks that specify work content, actions, and program instructions, allowing users to input object and robot information, which are then used to generate control programs without the need for exact coordinate settings.

Benefits of technology

Enables users, including those not highly proficient in robot control, to easily create and visualize robot control programs, facilitating the operation of robots by inputting object names and locations, thereby simplifying the programming process and reducing the complexity of coordinate settings.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024022062_09012025_PF_FP_ABST
    Figure JP2024022062_09012025_PF_FP_ABST
Patent Text Reader

Abstract

In the present invention, an arithmetic device for creating a control program for causing a robot to perform work on an object displays a first block for designating details of the work on the basis of input of information of the object and information of the robot, expands the first block to a second block for designating an operation performed by the robot for the work on the basis of user input regarding the information of the object to the first block, displays the second block after adding the information of the object input through the user input to the second block, and creates the control program by using the information of the robot and the second block to which the information of the object has been added.
Need to check novelty before this filing date? Find Prior Art

Description

Robot control program creation method and robot control program creation device

[0001] The present disclosure relates to a robot control program creation method and a robot control program creation device.

[0002] Conventionally, there are known techniques for creating control programs for robots to perform various tasks instead of humans. For example, Patent Literature 1 discloses a robot programming device that programs using blocks defined for each operation unit of the robot.

[0003] Japanese Patent Application Laid-Open No. 2021-30397

[0004] The present disclosure has been devised in view of the above-described conventional situation, and aims to facilitate the setting of information related to the operation of a robot and to simplify the creation of a control program for the robot.

[0005] The present disclosure provides a robot control program creation method for creating, by a computing device, a control program for causing a robot to perform a task on an object, the robot control program creation method including: displaying a first block specifying the content of the task based on input of information about the object and information about the robot; expanding the first block into a second block specifying an action to be performed by the robot for the task based on user input of the information about the object into the first block; adding the information about the object input by the user to the second block and displaying the second block; and creating the control program using the second block after the information about the object has been added and the information about the robot.

[0006] The present disclosure also provides a robot control program creation method for creating, by a computing device, a control program for causing a robot to perform a task on an object, the method including: displaying a first block specifying the content of the task based on input of information about the object and information about the robot; expanding the first block into a third block specifying program commands for actions to be executed by the robot for the task based on user input of the information about the object into the first block; adding the information about the object input by the user to the third block and displaying the third block; and creating the control program using the third block after the addition of the information about the object and the information about the robot.

[0007] The present disclosure also provides a robot control program creation device that creates a control program for causing a robot to perform a task on an object, the robot control program creation device comprising: a display control unit that displays a first block that specifies the content of the task based on input of information about the object and information about the robot, expands the first block into a second block that specifies an action to be performed by the robot for the task based on user input of the information about the object into the first block, adds the information about the object input by the user to the second block, and displays the second block; and a programming unit that creates the control program using the second block after the information about the object has been added and information about the robot.

[0008] The present disclosure also provides a robot control program creation device that creates a control program for causing a robot to perform a task on an object, the robot control program creation device comprising: a display control unit that displays a first block that specifies the content of the task based on input of information about the object and information about the robot, expands the first block into a third block that specifies program commands for actions to be executed by the robot for the task based on user input of the information about the object into the first block, adds the information about the object input by the user to the third block, and displays the third block; and a programming unit that creates the control program using the third block after the information about the object has been added and information about the robot.

[0009] Any combination of the above components, and conversion of the present disclosure into a method, device, system, storage medium, computer program, etc., are also valid aspects of the present disclosure.

[0010] According to the present disclosure, it is possible to easily set information related to the operation of a robot, and to simplify the creation of a control program for the robot.

[0011] FIG. 1 is a block diagram illustrating an example of a system configuration according to an embodiment of the present disclosure; FIG. 2 is a block diagram illustrating an example of a configuration of a robot control program creation device according to an embodiment of the present disclosure; FIG. 3 is a schematic diagram illustrating an example of a setting screen according to an embodiment of the present disclosure; FIG. 4 is a schematic diagram illustrating an example of a setting screen according to an embodiment of the present disclosure; FIG. 5 is a flowchart of a robot control program creation process according to an embodiment of the present disclosure; FIG. 6 is a flowchart of a robot control program creation process according to an embodiment of the present disclosure;

[0012] (Background to the present disclosure) Conventionally, techniques for creating robot control programs for causing robots to perform various tasks instead of humans have been known. Creating a robot control program requires a user to precisely set position information, such as three-dimensional coordinates along which the robot's arm or an end effector disposed at the end of the arm moves, as well as position information, such as three-dimensional coordinates, of an object on which the robot is to perform a task. For example, creating a robot control program requires a user to input the three-dimensional coordinates of the space through which the robot passes one by one, which is time-consuming. In particular, specifications requiring precise setting of position information can be particularly time-consuming for users with little proficiency.

[0013] Therefore, in the following embodiment, a technique for facilitating the setting of information relating to the operation of a robot and simplifying the creation of a control program for the robot will be described.

[0014] Hereinafter, with reference to the accompanying drawings, detailed embodiments of a robot control program creation method and a robot control program creation device according to the present disclosure will be described in detail. However, more detailed descriptions than necessary may be omitted. For example, detailed descriptions of well-known matters and redundant descriptions of substantially identical configurations may be omitted. This is to avoid unnecessary redundancy in the following description and to facilitate understanding by those skilled in the art. Note that the accompanying drawings and the following description are provided to enable those skilled in the art to fully understand the present disclosure and are not intended to limit the subject matter recited in the claims.

[0015] (Embodiment 1) In the description of this embodiment, a user refers to user 1, user 2, or user 3. User 1 is a person who has a deep understanding of robot control and robot control programs and can create their own robot control programs. An example of user 1 is an SIer. User 2 is a person who generally understands existing robot control programs and can partially edit them. User 3 is a person who may use robots in their work, for example, but does not fully understand how to control them. An example of user 3 is a system specialist in a factory. User 2 understands robot control better than user 3, but not as well as user 1. Therefore, user 2 cannot create their own robot control programs. In the following description, the user is assumed to be user 2. However, this is not limited to this, and the user may refer to user 1 or user 3.

[0016] [Device Configuration] An example of a system configuration according to the first embodiment of the present disclosure will be described using Figures 1 and 2. Figure 1 is a block diagram showing an example of a system configuration according to the first embodiment of the present disclosure. A robot control system 30 according to this embodiment includes a computing device 40, a robot control personal computer (hereinafter referred to as "PC") 50, a robot 61, a robot 62, and a control device 64. The robot control system 30 is a system in which the computing device 40 controls the robot 61, the robot 62, or both by creating a program for controlling the robot. Note that while Figure 1 shows two robots 61 and 62, more robots may be provided, or only one robot may be provided.

[0017] The arithmetic device 40 may be configured as, for example, a PC or a dedicated device, etc. The arithmetic device 40 includes a processor 41, a memory 42, an input unit 43, a display unit 44, a communication unit 45, and an external interface (hereinafter referred to as "IF") unit 46. Each unit included in the arithmetic device 40 is configured to be able to communicate with each other via an internal bus 47.

[0018] The processor 41 realizes various functions described below by reading and executing various programs and data stored in the memory 42. The processor 41 may be configured using, for example, a Central Processing Unit (hereinafter referred to as a "CPU"), a Micro Processing Unit (hereinafter referred to as an "MPU"), a Digital Signal Processor (hereinafter referred to as a "DSP"), a Graphical Processing Unit (hereinafter referred to as a "GPU"), or a Field Programmable Gate Array (hereinafter referred to as an "FPGA") or the like.

[0019] The memory 42 is configured using a volatile / non-volatile storage device such as a Random Access Memory (hereinafter referred to as "RAM") or a Read Only Memory (hereinafter referred to as "ROM"), and temporarily stores programs and data necessary for executing the operations of the arithmetic device 40, as well as data or information generated during operation. The RAM is, for example, a work memory used when the arithmetic device 40 is operating. The ROM stores and holds, in advance, programs and data for controlling the arithmetic device 40, for example.

[0020] The input unit 43 is composed of, for example, a keyboard, a mouse, or a touch panel, and receives instructions or data input from the user.

[0021] The display unit 44 displays various data and the results of processing by the processor 41.

[0022] The communication unit 45 communicates with external devices via a wired or wireless network 70, transmitting and receiving various data and signals. The communication method used by the communication unit 45 is not particularly limited, and multiple communication methods may be supported. For example, a wide area network (hereinafter referred to as "WAN"), a local area network (hereinafter referred to as "LAN"), mobile communications such as 5G, power line communications, and short-range wireless communications such as Bluetooth (registered trademark) or Wi-Fi (registered trademark) may be used. In this embodiment, the arithmetic device 40 is connected to the robot control PC 50 via the network 70 to enable data input and output. The arithmetic device 40 may also be connected to a cloud 71 provided by, for example, a company server, via the network 70.

[0023] The external IF unit 46 is an interface configured to enable transmission and reception of various data to and from external devices. The connection via the external IF unit 46 may be wired or wireless, and any communication standard may be used.

[0024] The robot control PC 50 controls the robots 61 and 62 by transmitting and receiving various data to and from the arithmetic device 40, the control devices 63, and the control devices 64. The robot control PC 50 may be configured as a PC or, for example, a dedicated device. The robot control PC 50 includes a processor 51 and a memory 52, and the processor 51 and the memory 52 work together to realize various functions. The robot control PC 50 may have the same hardware configuration as the arithmetic device 40. Therefore, the robot control PC 50 may include an input unit, a display unit, a communication unit, and an external IF unit in addition to the processor 51 and the memory 52. ​​The robot control PC 50 is connected to the control devices 63 and 64 to enable input and output of data therebetween.

[0025] The robot control PC 50 is connected to the camera 53 via a wired or wireless connection. The camera 53 includes an imaging element such as a Charge Coupled Device (hereinafter referred to as a "CCD") or a Complementary Metal Oxide Semiconductor (hereinafter referred to as a "CMOS"). The camera 53 captures images of, for example, the robot 61 and an object on which the robot 61 is working, and outputs the images to the robot control PC 50. The robot control PC 50 calculates the coordinates of the robot 61 and the object based on the image acquired from the camera 53. Here, the coordinates refer to coordinates in a three-dimensional coordinate system consisting of, for example, the X-axis, the Y-axis, and the Z-axis. The robot control PC 50 may calculate the coordinates from the image using a known technique such as image recognition. The robot control PC 50 may also acquire the coordinates of the robot 61 from the control device 63. The same applies to the robot 62. In this embodiment, the robot control PC 50 and the camera 53 are described as being connected to each other. However, this is not limiting, and the camera 53 may be omitted as shown in a modified example of this embodiment described later. Furthermore, like the robot control PC 50, the arithmetic device 40 can also perform various calculations using coordinates.

[0026] The robots 61 and 62 are systems capable of performing any operation on an object, and are configured to include, for example, a robot arm (not shown) and an end effector (not shown) attached to the tip of the robot arm. The operations performed by the robots 61 and 62 are executed by control devices 63 and 64, respectively. In this embodiment, the control devices may be stored inside the robots or provided outside the robots. For example, the control device 63 is stored inside the robot 61. On the other hand, the control device 64 is provided outside the robot 62. Furthermore, although this embodiment shows an example in which multiple robots are controlled by one robot control PC 50, a configuration in which one robot is controlled by one robot control PC may also be used.

[0027] FIG. 2 is a block diagram illustrating the functions of a robot control program creation device according to the first embodiment of the present disclosure. Note that FIG. 2 omits devices other than the arithmetic device 40, the network 70, and the robot control PC 50 from the robot control system 30 shown in FIG. 1 . In this embodiment, the arithmetic device 40 executes various functions to realize the functions of the robot control program creation device. The arithmetic device 40 may also be connected to a cloud 71 via the network 70 and execute services such as web applications provided by a server of a company or the like to realize the functions of the robot control program creation device. For simplicity, the following description focuses on the robot 61.

[0028] The processor 41 uses the programs and data stored in the memory 42 to realize the functions of the acquisition unit 81, the display control unit 82, the conversion unit 83, and the programming unit 84. Note that the configuration including the acquisition unit 81, the display control unit 82, the conversion unit 83, and the programming unit 84 is one example, and one unit may be divided into multiple units, or multiple units may be combined into one unit. Only units related to the functions according to one embodiment of the present disclosure are shown here, and the device may further include units other than the acquisition unit 81, the display control unit 82, the conversion unit 83, and the programming unit 84.

[0029] The acquisition unit 81 acquires information input by user operation from the input unit 43, such as the robot 61 and the work content to be performed by the robot 61. When the information input by the user is the name of an object to be worked on, the acquisition unit 81 outputs the information to the conversion unit 83 for coordinate conversion into position information specifying the location where the object is located. The name of the object is the name of an object related to the work to be performed by the robot 61, such as "part" or "wood." When the information input by the user is location information, the acquisition unit 81 outputs the information to the conversion unit 83 for coordinate conversion into position information specifying the location. The location information is the name of a place related to the work to be performed by the robot 61, such as "shelf," "workbench," or "conveyor." The location related to the work includes, for example, the location of the work to be performed on the object.

[0030] The acquisition unit 81 also acquires the coordinates of the robot 61 from the robot control PC 50. At this time, the coordinates acquired by the acquisition unit 81 may be the coordinates of each part of the robot 61. For example, if the robot 61 is configured to include a robot arm and an end effector attached to the robot arm, the acquisition unit 81 acquires the coordinates of the tip of the end effector, etc.

[0031] The acquisition unit 81 further acquires the coordinates of the position of the target object, the position of the work location, or both, calculated by the robot control PC 50 based on the image captured by the camera 53. The acquisition unit 81 may acquire the image captured by the camera 53 from the robot control PC 50 and calculate the coordinates from the image using a known technique such as image recognition. The acquisition unit 81 may also acquire the coordinates of the robot 61 or the target object that are stored in advance in the memory 42 or the like.

[0032] The display control unit 82 displays a setting screen (described later) on the display unit 44. The display control unit 82 controls screen transitions on the setting screen in response to user operations. The display control unit 82 may also display the setting screen on an external device such as a display (not shown).

[0033] The conversion unit 83 calculates the coordinates of an object that changes due to the work performed by the robot 61. For example, when the robot 61 moves an object, the conversion unit 83 calculates the coordinates of the object after the movement. The conversion unit 83 also converts, for example, information about an object and a location input by a user into coordinates. For example, when a user inputs a conveyor as location information, the conversion unit 83 converts the location information into coordinates corresponding to the conveyor. Note that the coordinates corresponding to the conveyor may be stored in advance in the memory 42 or the like, or may be acquired by image recognition or the like.

[0034] The programming unit 84 creates a control program for causing the robot 61 to perform a task based on user input such as the task content to be performed on an object by the robot 61. The control program created by the programming unit 84 is output to the robot control PC 50 via the network 70.

[0035] [Example of Setting Screen] To create a robot control program according to this embodiment, a user operates a setting screen to create a scenario using various blocks, which will be described later. In other words, a scenario is a sequence of actions to be performed by a robot to perform a task. The scenario is displayed in a hierarchical structure. With reference to FIGS. 3A, 3B, 3C, and 4, examples of setting screens related to the operation of the robot control program creation device according to this embodiment will be described. Each setting screen shown below is displayed on the display unit 44 of the computing device 40 in a state that allows the user to operate it. Note that FIGS. 3A, 3B, and 3C are views focusing on a portion of the setting screen. The entire setting screen will be described using FIG. 4. First, with reference to FIGS. 3A, 3B, and 3C, an example of setting the work content to be performed by the robot 61 will be described.

[0036] FIG. 3A is a schematic diagram illustrating an example of a setting screen according to an embodiment of the present disclosure. FIG. 3A illustrates an Event block 100 and a Task block 110. The Event block groups a series of work flows to form a scenario. In other words, the Event block groups various blocks to form a scenario. The Event block is placed at the top of the various blocks. The various blocks grouped by the Event block are associated with the Event block. In the example of FIG. 3A , the Task block 110 is associated with the Event block 100. The Task block is defined in advance by a user (e.g., see User 1 described below) according to the content of the work to be performed by the robot. The Task block 110 includes a work name 111, setting fields 112 and 113, and an arrow 116. The user selects a Task block whose work name 111 describes the desired work content. In the example of FIG. 3A , the user has selected the Task block 110 for the task of “Bring.” The task of “Bring” means that the robot 61 brings an object to a desired location. Information for the task is input into the setting fields 112 and 113. The user inputs the name of the object in the setting field 112 and the location information in the setting field 113. In the example of the Task block 110, the robot 61 brings a chassis to a work place. The user may input the information to be input into the setting field 112 using, for example, a keyboard (not shown), or may select the downward-facing triangle 114 to display a pull-down menu (not shown) and select the desired information from the pull-down list. Similarly, the user may select the downward-facing triangle 115 to display a pull-down menu and select the desired information from the pull-down list to input information into the setting field 113. The information included in the pull-down list may be predetermined by the user. When the user selects arrow 116, the setting screen shown in FIG. 3A transitions to the setting screen shown in FIG. 3B.The user may select the downward triangle 114, the downward triangle 115, and the arrow 116 by clicking with the input unit 43 (for example, a mouse) or by tapping on the input unit 43 (for example, a touch panel).

[0037] 3B shows an Event block 100, a Task block 110, a first Behavior block 120, and a first Behavior block 130. The first Behavior block is associated with a Task block and is defined in advance by a user (e.g., see User 1 described below) according to one or more operations that the robot performs on an object for the task represented by the Task block. In other words, the Task block is a block that groups one or more first Behavior blocks. In the example of FIG. 3B , the Task block 110, whose task content is "Bring," is associated with the first Behavior block 120, whose operation content is "Grab," and the first Behavior block 130, whose operation content is "Put on." The association between the Task block and the first Behavior block is set in advance by a user (for example, see User 1 described later).

[0038] 3B , when the arrow 116 of the Task block 110 is selected, it changes from downward to upward, and the first Behavior block 120 and the first Behavior block 130 grouped by the Task block 110 are displayed. Also, by selecting the arrow 116, the user can switch between displaying and hiding the various blocks grouped by the Task block 110. In other words, when the Task block 110 is expanded, the first Behavior block 120 and the first Behavior block 130 are displayed.

[0039] The first Behavior block 120 includes an operation name 121, a setting field 122, a setting field 123, and an arrow 124. The contents of the setting fields 122 and 123 included in the first Behavior block 120 are automatically added (in other words, transcribed) in accordance with a user input in the Task block 110. In the example of FIG. 3B , the content of the setting field 112 of the Task block 110, "chassis," is automatically added to the setting field 122 of the first Behavior block 120. Furthermore, the content of the setting field 113 of the Task block 110, "work place," is automatically added to the setting field 132 of the first Behavior block 130. The setting field 123 of the first Behavior block 120 and the setting field 133 of the first Behavior block 130 are both set to "default" as their initial values. The content indicated by "default" may be set in advance by the user. When the user selects arrow 124, the setting screen shown in Figure 3B transitions to the setting screen shown in Figure 3C.

[0040] 3C shows an Event block 100, a Task block 110, a first Behavior block 120, a first Behavior block 130, a second Behavior block 140, a second Behavior block 150, a second Behavior block 160, and a second Behavior block 170. The second Behavior blocks are associated with the first Behavior blocks and are defined in advance by a user (e.g., see User 1 described below) according to one or more execution actions of the robot for the operation indicated by the first Behavior block. In other words, the first Behavior is a block that groups one or more second Behavior blocks. In the example of Fig. 3C, a first Behavior block 120 having an operation content of "Grab" is associated with a second Behavior block 140 having an operation content of "Move to", a second Behavior block 150 having an operation content of "Move to", a second Behavior block 160 having an operation content of "Write", and a second Behavior block 170 having an operation content of "Move to". The association between the first Behavior block and the second Behavior block is set in advance by the user. When a first Behavior block is expanded, the second Behavior block associated with the first Behavior block is displayed.

[0041] The setting field 142 included in the second Behavior block 140 is automatically added with "chassis", which is the content of the setting field 122 of the first Behavior block 120. "Offset01" is automatically added to the setting field 143. The content indicated by "offset01" may be set in advance by the user. The second Behavior block 140 includes two setting fields, but may also include only one setting field, as in the second Behavior block 150. The configuration and order of such second Behavior blocks are set in advance by the user (for example, see User 1 described below). 3C , for the task “Bring,” a user (e.g., see User 1 described below) has previously associated two operations, “Grab” and “Put on,” with “Bring,” and has further associated four actions, “Move to,” “Move to,” “write,” and “Move to,” with “Grab.” Although not shown in the figure, one or more actions for “Put on” are also associated as second Behavior blocks with “Put on,” i.e., first Behavior block 130.

[0042] As described with reference to Figures 3B and 3C, the information on the name of the object and the location of the work input into the Task block is automatically added to the first / second Behavior block, which is a block below the Task block in the hierarchical structure representing the scenario. Furthermore, information input into the first Behavior block is automatically added to the second Behavior block, which is a block below it. However, information input into the first Behavior block is not automatically added to the Task block, which is a block above it. Furthermore, information input into the second Behavior block is not automatically added to the first Behavior block and Task block, which are blocks above it. Note that inputting information includes changing (modifying) the information.

[0043] 4 is a schematic diagram illustrating an example of a setting screen according to an embodiment of the present disclosure. A category area 181 displays a list of categories of blocks for creating a scenario, such as Event blocks, Task blocks, and Behavior blocks, which can be selected by the user. In this example, "Tasks," which refers to Task blocks, is selected. A candidate block area 182 is displayed according to the category selected by the user in the category area 181.

[0044] A list of Task blocks is displayed in the candidate block area 182. Furthermore, as shown in the example of FIG. 4 , in addition to Task blocks, blocks for creating scenarios, such as first and second Behavior blocks, may be displayed. Furthermore, blocks that can be used as setting fields for the first and second Behavior blocks may be displayed. For example, "offset01" may be included. Here, the user may pre-select that the robot 61 will be used for a task. If the user pre-selects that the robot 61 will be used for a task, the candidate block area 182 displays a list of blocks that are narrowed down to scenarios that the robot 61 can execute. The displayed blocks may be narrowed down based on the target of the task. The information on the target of the task used to narrow down the displayed blocks may be input by the user in advance.

[0045] The user creates a scenario in the scenario creation area 183 using blocks selected from the list of blocks displayed in the candidate block area 182. Blocks are moved from the candidate block area 182 to the scenario creation area 183 by, for example, dragging and dropping. When creating a scenario, the user places an event block in the scenario creation area 183. The event block groups a series of work flows to form a scenario. Furthermore, various blocks, such as task blocks, that are not associated with an event block, i.e., not grouped, are not considered to be part of a series of work flows by the processor 41. In this case, even if these various blocks are arranged in the scenario creation area 183 in the order of the operations executed by the robot 61, they are not converted into a robot control program. In other words, the event block indicates whether a task block, etc., should be converted into a robot control program. Therefore, if there are multiple series of work flows (scenarios), the user places multiple event blocks in the scenario creation area 183 according to the number of scenarios in order to convert these multiple scenarios into robot control programs. Furthermore, if there are multiple Event blocks, the scenarios corresponding to the multiple Event blocks may be started by different triggers. For example, a scenario indicated by one Event block may be started by the operation of the robot control PC 50, and a scenario indicated by another Event block may be started by the operation of an input device (not shown). The user creates a scenario by associating Task blocks and the like with the Event blocks according to the desired work and arranging them.

[0046] As described with reference to Figures 3A to 3C, the Task block and the first Behavior block are associated with each other. Furthermore, the first Behavior block and the second Behavior block are associated with each other. Furthermore, information is automatically added to the setting fields of the first and second Behavior blocks based on input into the setting fields of the Task block. The "default" setting field 123 shown in Figure 3B and the "offset01" setting field 143 shown in Figure 3C are set in advance by the user. In other words, the detailed settings are set in advance by the user. The user can achieve desired operations and behaviors without changing these detailed settings. Therefore, the user can complete the scenario for the desired task by moving the Task block corresponding to the desired task to the scenario creation area 183 and entering information about the target object in the setting field of the Task block. A robot control program is created based on the scenario created in the scenario creation area 183. This allows even a user who is not highly skilled in controlling a robot (for example, see user 3 described below) to easily create a robot control program.

[0047] When the user selects any block in the scenario creation area 183, a property area 184 is displayed. The property area 184 shows properties, and displays information about the robot 61, the movement speed of the robot 61 based on the selected block, and the like. Here, the information about the robot 61 is information about the robot arms that make up the robot 61 and the end effectors attached to the robot arms. The robots used for work, or the robot arms and end effectors that make up the robot, that are displayed in the property area 184, are set in advance by the user. Furthermore, the user can change parameters such as the movement speed of the robot 61 in the property area 184. The initial values ​​of these parameters are set in advance by the user.

[0048] A preview screen for previewing a scenario created by the user is displayed in the preview area 185. The user can use the preview area 185 to check whether the robot 61 will perform the desired task according to the scenario created by the user. Therefore, even a user who is not highly skilled in controlling a robot (for example, see user 3 described below) can visually check the robot's operation in advance.

[0049] [Examples of User Roles] Examples of setting screens related to the operation of the robot control program creation device according to this embodiment have been described with reference to Figures 3A, 3B, 3C, and 4, including user operations. Next, examples of roles related to user operations according to the user's level of proficiency (understanding) in controlling a robot will be described. Here, examples of operations performed by User 1, User 2, and User 3 will be described.

[0050] User 1 creates (defines) a second Behavior block. User 1 also combines the second Behavior blocks to create a first Behavior block. User 1 also combines the first Behavior blocks to create a Task block. The Task block, first Behavior block, and second Behavior block displayed in the candidate block area 182 are created in advance by User 1. User 1 also changes (modifies) the previously created Task block by adding or deleting the first Behavior block and the second Behavior block. In this way, User 1 is the user who creates in advance the blocks below the Task block (Task block, first Behavior block, second Behavior block) that a user such as User 3 selects to create a robot control program according to the present disclosure. Note that User 1 can also perform the operations performed by User 2 and User 3, which will be described later.

[0051] User 2 performs pre-settings for the robot or the equipment that constitutes the robot (e.g., the robot arm and end effector) to be used for the desired task, and sets specified coordinate values ​​(e.g., coordinates indicated by "default"). User 2 performs various detailed settings using the property area 184 for the blocks below the Task block that were created in advance by User 1. For example, User 2 performs pre-settings and adjustments for parameters such as the robot's operating speed. User 2 does not create or change blocks below the Task block, but performs fine adjustments for the tasks that the robot will actually perform. User 2 can also perform operations performed by User 3, which will be described later.

[0052] User 3 creates a scenario by moving Task blocks created in advance by User 1 and displayed in the candidate block area 182 to the scenario creation area 183. User 3 completes the scenario by making appropriate settings for the desired work in the setting fields displayed in the Task blocks. User 3 can change the type of robot that will perform the work indicated by the Task block. If there are multiple first Behavior blocks associated with a Task block, User 3 can specify a different robot for each of the multiple first Behavior blocks. User 3 can change or specify the robot, for example, in the property area 184. User 3 is a user who creates a desired scenario by operating (moving) Task blocks on the setting screen, with little operation of blocks other than the Task blocks. The information entered into the setting field of the Task block is automatically added to the first / second Behavior block, so User 3 can create a scenario by moving the Task block and entering information into the Task block without having to perform detailed settings for controlling the robot or operations on the first / second Behavior block.

[0053] The above describes examples of roles according to the respective levels of proficiency in controlling the robot for User 1, User 2, and User 3, but does not intend to limit the operations of User 1, User 2, and User 3. Continuing in the following description, the user will be assumed to be User 2, but the user may also be User 1 or User 3.

[0054] [Processing Flow] Next, a flowchart of the processing executed by the arithmetic device 40 as a robot control program creation device will be described with reference to Figures 5 and 6. For simplicity, the description will focus on the robot 61. Figure 5 is a flowchart of processing related to automatic setting of setting fields of the first and second Behavior blocks. Each step in the flowchart of Figure 5 is executed by the processor 41 in cooperation with each component. At the start of this flowchart, the user has selected "Tasks" in the category display area 181.

[0055] The processor 41 receives input of information on the object and the robot 61 through user operation (step St190).

[0056] Based on the information about the object and the robot 61 input by the user in step St190, the processor 41 narrows down the list of Task blocks to scenarios that the robot 61 can execute, and displays the narrowed down list in the candidate block area 182 (step St191). Note that the blocks displayed in step St191 are not limited to Task blocks, and first / second Behavior blocks, etc. may also be displayed. However, the first / second Behavior blocks, etc. that are displayed are limited to those associated with the displayed Task block.

[0057] The processor 41 accepts a user operation for creating a scenario (step St192). The user operation accepted in step St192 is either moving a block from the candidate block area 182 to the scenario creation area 183, or inputting information into a Task block or a first Behavior block present in the scenario creation area 183.

[0058] If the user operation accepted in step St192 is the movement of a block from the candidate block area 182 to the scenario creation area 183 (step St193; YES), the processing of the processor 41 returns to step St192. If the user operation accepted in step St192 is the input of information into a Task block or a first Behavior block existing in the scenario creation area 183 (step St193; NO), the processing of the processor 41 proceeds to step St194.

[0059] If the user operation received in step St192 is an input of information into a Task block (step St194; YES), the processor 41 adds information to various setting fields of the first Behavior block associated with the Task block and the second Behavior block associated with the first Behavior block based on the information (step St195). For example, if "chassis" is input into a Task block as information about the object of work, "chassis" is added to the setting field indicating the information about the object of work in the first Behavior block associated with the Task block. Furthermore, for example, if "work place" is input into a Task block as information about the place of work, "work place" is added to the setting field indicating the information about the place of work in the first Behavior block associated with the Task block. Similarly, various setting fields for the second Behavior block are also added.

[0060] If the user operation received in step St192 is not an input of information into a Task block (step St194; NO), that is, if it is an input of information into a first Behavior block, the processor 41 sets various setting fields of the second Behavior block associated with the first Behavior block based on the information (step St196).

[0061] If the scenario creation is completed (step St197; YES), this processing flow ends. If the scenario creation is not completed (step St197; NO), the processor 41 returns to step St192 and repeats the processing.

[0062] Note that this flowchart focuses on the process related to the automatic setting of the setting fields of the first / second Behavior blocks, and therefore omits explanations that are not directly related to this process. For example, it has been explained that the user operation received in step St192 is either moving a block from the candidate block area 182 to the scenario creation area 183, or inputting information into a Task block or first Behavior block existing in the scenario creation area 183. However, the actual user operation may be, for example, deleting a block that was once moved from the candidate block area 182 to the scenario creation area 183, or some other operation.

[0063] 6 is a flowchart of the process in which the computing device 40 creates a robot control program based on a scenario created by the user. Each process in the flowchart in FIG. 6 is executed by the processor 41 in cooperation with each component. At the start of this flowchart, the desired scenario that the user wants the robot 61 to execute has already been created in the scenario creation area 183 in accordance with the operation procedure in FIG. 5. For ease of explanation, the explanation of this flowchart will be given assuming that there is only one Event block placed in the scenario creation area 183.

[0064] The processor 41 reads an event block on the scenario creation area 183 (step St200). At this time, the processor 41 focuses on the event block.

[0065] The processor 41 reads the block immediately below the block of interest (step St201). The lower blocks will be described with reference to FIG. 3C. For example, the block immediately below the Task block 110 is the first Behavior block 120. The block immediately below the first Behavior block 120 is the second Behavior block 140, and the block immediately below the second Behavior block 140 is the second Behavior block 150. The processor 41 focuses on the block read in step St201.

[0066] If the block read in step St201 is the second Behavior block (step St202; YES), the processor 41 acquires information about the object of the work based on the information input to the second Behavior block (step St203). Here, the information about the object acquired by the processor 41 may be the position, shape, or center of gravity of the object, or a combination thereof. For example, the processor 41 acquires information that the object is spherical and that the object is on a shelf.

[0067] If the block read in step St201 is not the second Behavior block (step St202; NO), the processor 41 proceeds to step St208.

[0068] Based on the information about the object acquired in step St203, the processor 41 performs coordinate transformation to convert the position of the object, etc., into coordinates in the coordinate system of the robot 61 that can be recognized by the robot 61 (step St204). For example, a case will be described in which the processor 41 acquires information in step St203 that the object is spherical and that the object is on a shelf. The processor 41 may perform coordinate transformation by reading out coordinates of each location of the object and the shelf that are stored in advance in the memory 42. Alternatively, the processor 41 may perform coordinate transformation using image recognition using the camera 53. The coordinates of each location of the object include, for example, the coordinates of the center of gravity of the object and the coordinates of the end of the object. By the processing of step St204, the information about the object is converted from expressions that are easily understandable to humans, such as "spherical" or "shelf," into coordinates used to control the robot.

[0069] The processor 41 converts the second Behavior block in question into a control program based on the movement of the robot 61 indicated by the second Behavior block in question and the result of the coordinate conversion performed in step St204 (step St205).

[0070] If the state of the object changes due to the operation of the robot 61 indicated by the second Behavior block focused on by the processor 41 (step St206; YES), the processor 41 updates the object information acquired in step St203 to information about the object after the state change (step St207). Examples of state changes include a change in the dimensions, center of gravity, or position of the object. Furthermore, updating refers to storing the information about the object after the state change in, for example, the memory 42 so that the information about the object after the state change can be read the next time the processor 41 reads the information about the object. For example, a case will be described in which the position of the object is updated from a shelf to a workbench by the processing of step St207. When the processor 41 repeats the processing from step St201 onward by the processing of step St208 described below, the processor 41 acquires information that the object is on the workbench in step St203. If the position of the object changes further, the processor 41 can acquire the changed position in step St203 in the next iteration. The same applies to the shape of the object.

[0071] If no change in state occurs in the object (step St206; NO), the processor 41 proceeds to step St208.

[0072] If the block focused on by the processor 41 is the final block in the scenario (step St208; YES), this processing flow ends.

[0073] If the block focused on by the processor 41 is not the final block in the scenario (step St208; NO), the process of the processor 41 returns to step St201 and repeats the process.

[0074] [Example of Robot Control] Next, a first example of robot control according to the present embodiment will be described with reference to FIGS. 7 , 8A , 8B , and 8C . FIG. 7 is a schematic diagram for describing an example of robot control according to an embodiment of the present disclosure. FIG. 7 illustrates a work procedure in which a robot 61 creates an object C by assembling an object A and an object B. The numbers 1 to 23 in FIG. 7 indicate the order of work steps performed by the robot 61. The robot 61 includes a robot arm and an end effector attached to the robot arm. The end effector is, for example, a robot hand. A robot capable of performing a desired task may be selected depending on the task. Although not shown in FIG. 7 , the robot 61 is connected to a robot control PC 50 (see FIG. 1 or 2 ), which is connected to a computing device 40 (see FIG. 1 or 2 ). A camera 53 (see FIG. 1 ) is connected to the robot control PC 50. Hereinafter, a three-dimensional coordinate system consisting of an X-axis, a Y-axis, and a Z-axis will be used for the description, and the orientations of the three-dimensional coordinate system in each figure will correspond. In each figure, the direction of the arrow in the coordinate system shown in the figure is positive, and the direction opposite to the arrow is negative. Note that the configuration settings of each axis are just an example and are not limited to this.

[0075] In the operation shown in FIG. 7 , first, the robot 61 moves the object A on the conveyor 211 onto the workbench 212. Next, the robot 61 fits the object B on the conveyor 211 with the object A on the workbench 212. As a result, an object C consisting of the objects A and B is created on the workbench 212. The robot 61 moves the object C on the workbench 212 onto the conveyor 211. In the example of FIG. 7 , the camera 53 captures an image including the workbench 212. Therefore, the calculation device 40 can acquire the coordinate values ​​of the objects A, B, and C within the image capture range from the image captured by the camera 53. Furthermore, the coordinate values ​​may be stored in advance in the memory 42 or the like. The calculation device 40 can acquire the coordinates of each part of the robot 61, such as the tip of the end effector, via the control device 63 and the robot control PC 50.

[0076] 8A, 8B, and 8C are schematic diagrams illustrating examples of a setting screen according to an embodiment of the present disclosure. Note that FIGS. 8A, 8B, and 8C are diagrams focusing on the scenario creation area of ​​the setting screen. The scenario 220 illustrated in FIG. 8A illustrates various blocks that define the operation of the robot 61 for the work illustrated in FIG. 7 , from the start of the work to work step 7. The task content indicated by the Task block 221 is "Bring," the object information is "A," and the location information is "work place." In other words, this indicates the work of the robot 61 bringing the object A to the work place. Note that the work place refers to the workbench 212.

[0077] First, the work performed by the user using the computing device 40 will be described. To perform work from the start of work to work process 7, the user first moves the Task block 221 from the candidate block area of ​​the setting screen to the scenario creation area. Although not shown in the figure, the user may add an Event block to the scenario creation area. The Task block 221 may also be added below the Event block (see FIG. 3A ). The user then inputs an object "A" and a location "work place" into the Task block 221. The user expands the Task block 221 by selecting the arrow of the Task block 221, displaying the first Behavior block 222 and the first Behavior block 227. Similarly, the first Behavior block 222 and the first Behavior block 227 are expanded to display the associated second Behavior block, allowing the user to view and check the entire scenario 220. The user can also select the first or second Behavior block included in the scenario 220 to display a property area, allowing fine adjustment of values ​​such as the movement speed of the robot 61.

[0078] Next, the internal processing executed by the arithmetic device 40 will be described. The processor 41 adds object information "A" set by the user in the Task block 221 to the first Behavior block 222. The processor 41 also adds the object information "A" added to the first Behavior block 222 to the second Behavior block 223, the second Behavior block 224, and the second Behavior block 226. Similarly, the processor 41 adds location information "work place" set by the user in the Task block 221 to the first Behavior block 227. Furthermore, the processor 41 adds the place information “work place” added to the first Behavior block 227 to the second Behavior block 228 , the second Behavior block 229 , and the second Behavior block 231 .

[0079] The processor 41 acquires coordinates corresponding to the object A set by the user and the work place, i.e., the workbench 212. The coordinates may be stored in advance in the memory 42 or the like, or may be acquired by image recognition using an image captured by the camera 53. The processor 41, for example, acquires the coordinates of the object A stored in the memory 42. The processor 41, for example, acquires the coordinates of the workbench 212 from the image captured by the camera 53 by image recognition.

[0080] When the user fine-tunes a numerical value such as the movement speed of the robot 61, the processor 41 acquires the adjusted numerical value and stores it in the memory 42. The numerical value stored here may be used, for example, as an initial value for the movement speed of the robot 61 when the user creates a scenario from the next time onwards.

[0081] The coordinates of object A may change during the work due to the execution operations indicated by the respective second Behavior blocks. For example, the second Behavior block 226 indicates the operation of the robot 61 in work step 3 shown in FIG. 7 . This operation changes the coordinates of object A. The processor 41 acquires the coordinates of object A after they have changed due to the operation of the robot 61. The coordinates of object A may be calculated based on the coordinates of the tip of the end effector, for example, or may be acquired by image recognition using an image captured by the camera 53.

[0082] Next, the content indicated by each second Behavior block will be described. The second Behavior block 223 indicates the movement of the end effector of the robot 61 from point P0 to point P1. To avoid redundant explanation, the movements of the robot arm and end effector of the robot 61 will be collectively described as the movement of the robot 61.

[0083] The second Behavior block 224 indicates that the robot 61 moves from point P1 to the position of the object A on the conveyor 211 (operation step 1).

[0084] A second Behavior block 225 indicates that the robot 61, for example, closes the robot hand and grasps the object A (operation step 2).

[0085] The second Behavior block 226 indicates that the robot 61 moves from the position where the object A was located to the position of point P1 (operation step 3).

[0086] The second Behavior block 228 indicates that the robot 61 moves onto the work table 212 (work step 4). More specifically, the robot 61 moves on the same Z axis as the position on the work table 212 where the target object A will be placed in the following step.

[0087] A second Behavior block 229 indicates that the robot 61 moves in the negative direction of the Z axis so as to approach the work table 212 (work step 5). For example, work step 5 causes the object A to come into contact with the work table 212.

[0088] The second Behavior block 230 indicates that the robot 61, for example, opens its robot hand and releases the object A that it has been holding (operation step 6). In other words, it indicates that the robot 61 places the object A on the work table 212.

[0089] The second Behavior block 231 indicates that the robot 61 moves in the positive direction of the Z axis so as to move away from the work table 212 (work process 7).

[0090] The coordinates of object A, which change during the above work process, are stored in, for example, memory 42 each time they change, and it is ultimately saved that object A is on work table 212. As a result, when robot 61 next performs an operation on object A, for example, robot 61 will recognize that object A is on work table 212, not on conveyor 211, and will be able to operate accordingly.

[0091] The scenario 240 shown in FIG. 8B shows various blocks that define the operation of the robot 61 from work process 8 to work process 15 of the work shown in FIG. 7. In the explanation of FIG. 8B, explanation of content that is the same as or similar to that of FIG. 8A will be simplified or omitted, and the explanation will focus on the differences. The work content indicated by the Task block 241 is to insert an object B into an object A. "Insert" in the Task block 241 is associated with "Grab" in the first Behavior block 242, "Approach" in the first Behavior block 247, and "Fit" in the first Behavior block 250. Here, object information "B" and location information "A" are set in the Task block 241. "A" input as location information refers to the object A. In scenario 240, object A is not a work target object, so processor 41 can treat the coordinates of object A as the coordinates of the work location. (For example, if the user inputs object B, which is a work target object, as information about the work target location, processor 41 may not accept the input.) In this way, the user may input the name of a non-work target as location information in the setting fields of various blocks.

[0092] First, we will explain the work that the user performs using the computing device 40. The user first moves the Task block 241 from the candidate block area of ​​the setting screen to the scenario creation area. The scenario creation area contains the scenario 220 shown in FIG. 8A. The Task block 241 is added below the Task block 221. The user then inputs object information "B" and location information "A" in the Task block 241.

[0093] Next, the internal processing executed by the arithmetic device 40 will be described. The processor 41 adds the object information "B" and location information "A" set by the user in the Task block 241 to the first / second Behavior block associated with the Task block 241. The processor 41 acquires coordinates corresponding to the objects A and B set by the user. The coordinates of the object A acquired by the processor 41 are the coordinates at the time when the work process 7 is completed.

[0094] Next, the content indicated by each second Behavior block will be described. The second Behavior block 243 indicates that the robot 61 moves to the same X-axis as the object B so that the robot 61 can grasp the object B in the following work step (work step 8).

[0095] A second Behavior block 244 indicates that the robot 61 moves to the position of the object B on the conveyor 211 (operation step 9).

[0096] A second Behavior block 245 indicates that the robot 61, for example, closes the robot hand and grasps the object B (operation step 10).

[0097] The second Behavior block 246 indicates that the robot 61 moves in the negative direction of the X axis from the position where the object B was located (operation step 11).

[0098] A second Behavior block 248 indicates that the robot 61 moves onto the work table 212 (work step 12). More specifically, the robot 61 moves on the same Z axis as the object A.

[0099] A second Behavior block 249 indicates that the robot 61 moves in the negative direction of the Z axis so that the object B approaches the object A (operation step 13). By operation step 13, the object B is inserted into the object A.

[0100] A second Behavior block 251 indicates that the robot 61, for example, opens its robot hand and releases the object B that it has been holding (operation step 14).

[0101] A second Behavior block 252 indicates that the robot 61 moves in the positive direction of the Z axis so as to move away from the work table 212 (work step 15).

[0102] By performing the above operations, the object A and the object B are fitted together. The fitted object A and the object B are set together as the object C. Such a setting is performed, for example, by a user operation. As a result, when the object C is set in the Task block, for example, the robot 61 can recognize the object C and operate accordingly.

[0103] The scenario 260 shown in Figure 8C shows various blocks that define the operation of the robot 61 from work process 16 to work process 23 of the work shown in Figure 7. In the explanation of Figure 8C, the explanation of the same content as in Figures 8A and 8B will be simplified or omitted, and the explanation will focus on the differences. The work content shown in Task block 261 is to bring object C to a release place. Here, the release place refers to the conveyor 211.

[0104] First, the operations performed by the user using the computing device 40 will be described. First, the user moves the Task block 261 from the candidate block area of ​​the setting screen to the scenario creation area. The scenario creation area contains a scenario 220 and a scenario 240. The Task block 261 is added below the Task block 241. Next, the user inputs object information "C" and location information "release place" in the Task block 261.

[0105] Next, a description will be given of internal processing executed by the arithmetic device 40. The processor 41 adds object information "C" and location information "release place" set by the user in the Task block 261 to the first / second Behavior block associated with the Task block 261. The processor 41 acquires coordinates corresponding to the object C and release place set by the user.

[0106] Next, the content indicated by each second Behavior block will be described. The second Behavior block 262 and the second Behavior block 263 indicate movement to the position of the object C so that the robot 61 can grasp the object C in the following work steps (work steps 16 and 17).

[0107] A second Behavior block 264 indicates that the robot 61, for example, closes the robot hand and grasps the object C (operation step 18).

[0108] A second Behavior block 265 indicates that the robot 61 moves in the positive direction of the Z axis so as to move away from the work table 212 (operation step 19).

[0109] A second Behavior block 266 and a second Behavior block 267 indicate that the robot 61 moves onto the conveyor 211 (operations 20 and 21).

[0110] A second Behavior block 268 indicates that the robot 61, for example, opens its robot hand and releases the object C that it has been holding (operation step 22).

[0111] A second Behavior block 269 indicates that the robot 61 moves from the conveyor 211 to point P2 (operation step 23). After this, the robot 61 moves from point P2 to point P0, i.e., the initial position, and completes the operation.

[0112] By performing the above work steps 1 to 23, object C can be created by fitting object A and object B together. The user can achieve the task simply by arranging Task block 221, Task block 241, and Task block 261 in the scenario creation area and setting object information and location information in each Task block. Therefore, even beginners can easily control the robot. Furthermore, those skilled in robot control can further improve efficiency by adjusting the operation speed of each robot execution operation. Robot control is possible for tasks in which the size or center of gravity of the object changes during the process, such as the fitting task shown in Figure 7. Examples of tasks other than fitting tasks include welding and assembly.

[0113] 9 is a schematic diagram for explaining a second example of robot control according to this embodiment. The task shown in FIG. 9 is to move an object D from work table 291 to work table 292. The numbers 1 to 7 shown in FIG. 9 indicate the order of the steps in the task of the robot 61 and are different from the symbols. The task shown in FIG. 9 can be realized by setting the object information as "D" and setting work table 292 as the work place in advance in scenario 220 shown in FIG. 8A.

[0114] In the operation shown in Figure 9, the robot 61 first moves from point Q0 to point Q1. The robot 61 moves from point Q1 to the position of object D (operation process 1). The robot 61, for example, closes its robot hand and grasps object D (operation process 2). The robot 61 moves to the position of point Q1 (operation process 3). The robot 61 moves from point Q1 to point Q2 (operation process 4). The robot 61 moves from point Q2 to approach the work table 292 (operation process 5). In operation process 5, the object D and the work table 292 come into contact with each other. The robot 61, for example, opens its robot hand and releases object D (operation process 6). The robot 61 moves to the position of point Q2 (operation process 7). The robot 61 moves from point Q2 to point Q0, i.e., the initial position, and completes the operation.

[0115] By performing the above-described work steps 1 to 7, the object D can be moved from the work table 291 to the work table 292. The robot can be controlled for all material handling operations, including the operation of moving an object as shown in Fig. 9, such as tracing and pushing an object.

[0116] (Other Modifications) In the first embodiment described above, an example was shown in which the arithmetic device 40 functions as a robot control program creation device. However, this is not limited to this, and for example, the robot control PC 50 may function as a robot control program creation device. This allows the robot control PC 50 to create a robot control program even when, for example, the arithmetic device 40 is physically distant from the user and cannot be used.

[0117] In the first embodiment described above, an example in which the robot control PC 50 and the camera 53 are connected is shown. However, this is not limiting, and the camera 53 may not be used. If the camera 53 is not used, the coordinates of the object, etc. may be stored in advance in the memory 42, for example. In a situation where a robot repeats a predetermined operation, such as a manufacturing site, the initial position of the object and the position to which the object is moved are considered to be predetermined. Furthermore, for example, the coordinates of the object after movement by the robot may be calculated based on the coordinates of the robot. The coordinates of the robot can be acquired by the robot control device PC via the robot's control device.

[0118] 7 and 9 illustrate an example of a task performed by a single robot (robot 61). However, this is not limiting, and tasks can also be performed by multiple robots (e.g., robots 61 and 62) working together. For example, a user who wants to move an object using a robot can change the type of robot that executes a Task block related to moving the object, or can specify a different robot in each of multiple first Behavior blocks associated with the Task block. In this case, the user can use, for example, two robots each including a robot arm and an end effector. By having the two robots switch hands over the object, the object can be moved farther than if a single robot were used. Furthermore, for example, a task including an operation to grasp an object and an operation to tighten a screw can be performed by two robots each capable of performing each operation. This allows for the creation of a robot control program for tasks performed by multiple robots. This also makes it possible to perform tasks that would be difficult to perform using a single robot alone.

[0119] (Summary of the present disclosure) The above description of the embodiments discloses the following techniques.

[0120] <Technology 1> A computing device (e.g., computing device 40) that creates a control program for causing a robot (e.g., robot 61) to perform a task on an object (e.g., object A) displays one or more first blocks (e.g., Task block 221) that specify the content of the task based on input of object information and robot information, expands the first blocks into one or more second blocks (e.g., first Behavior block 222) that specify actions to be performed by the robot for the task based on user input of object information into the first blocks, adds the object information input by the user to the second blocks and displays them, and creates a control program using the second blocks after the object information has been added and the robot information.

[0121] This allows a user to easily create a robot control program by inputting the name of the object to be worked on, without having to set precise coordinates, when making the robot perform a task. Even a user who is not familiar with controlling a robot (e.g., User 3) can easily create a robot control program. The user can check the operation that the robot will perform on the object in accordance with the desired task from the displayed second block.

[0122] <Technology 2> A computing device (e.g., computing device 40) that creates a control program for causing a robot (e.g., robot 61) to perform a task on an object (e.g., object A) displays one or more first blocks (e.g., Task block 221) that specify the content of the task based on input of object information and robot information, expands the first blocks into one or more third blocks (e.g., second Behavior block 223) that specify program commands for actions to be executed by the robot for the task based on user input of object information into the first blocks, adds the object information input by the user to the third blocks and displays them, and creates a control program using the third blocks after the object information has been added and the robot information.

[0123] This allows the user to easily create a robot control program by inputting the name of the object to be worked on, without having to set precise coordinates, when making the robot perform a task. Even a user (user 3) who is not familiar with controlling a robot can easily create a robot control program. The user can check the robot's behavior according to the desired task by looking at the displayed third block.

[0124] <Technology 3> In the computing device according to Technology 1 or Technology 2, the information about the object may include the name of the object and the location of the work to be performed on the object.

[0125] This allows the user to create a control program for a task by inputting the name of the object to be worked on and the location of the task.

[0126] <Technology 4> In the computing device described in Technology 1, the second block may have one or more third blocks (e.g., second Behavior block 223) that specify program instructions for sub-level execution operations that subdivide the execution operations of the robot, and information about the object may be added to the third block based on the addition of information about the object to the second block.

[0127] This allows the user to check not only the operation that the robot performs on the object in accordance with the desired task, but also the robot's behavior in accordance with the desired task.

[0128] <Technology 5> In the computing device according to Technology 2 or Technology 4, the third block may have a setting field (for example, setting field 142) for user input of settings for the action to be performed by the corresponding robot.

[0129] This allows the user to input information about the target object not only into block 1 but also into block 3. This allows the user to make more detailed settings regarding the control of the robot than when, for example, information is input only into block 1.

[0130] <Technology 6> In the computing device described in Technology 2, Technology 4, or Technology 5, the computing device may display an area (e.g., property area 184) where a user inputs parameters of the robot's execution operation specified by the third block, based on a user operation of the third block.

[0131] This makes it possible to fine-tune, for example, the speed of each robot movement for a task.

[0132] <Technology 7> In the computing device described in any one of Technologies 1 to 6, the computing device may display a preview screen (e.g., preview area 185) on which a preview of the robot's operation on an object based on the created control program can be viewed.

[0133] This allows the user to preview the work that the robot will perform before actually having the robot perform the work.

[0134] <Technology 8> A robot control program creation device that creates a control program for causing a robot (e.g., robot 61) to perform a task on an object (e.g., object A) includes a display control unit (e.g., display control unit 82) that displays one or more first blocks (e.g., Task block 221) that specify the content of the task based on input of object information and robot information, expands the first blocks into one or more second blocks (e.g., first Behavior block 222) that specify actions to be performed by the robot for the task based on user input of object information into the first blocks, and adds and displays the object information input by the user into the second blocks, and a programming unit (e.g., programming unit 84) that creates a control program using the second blocks after the object information has been added and the robot information.

[0135] This allows the robot control program creation device to create a robot control program in response to input such things as the name of the object to be worked on. This allows a user (e.g., User 3) who is not familiar with controlling a robot to easily create a robot control program using the robot control program creation device. The robot control program creation device can display, as a second block, an operation that the robot will perform on the object in response to the user's desired work.

[0136] <Technology 9> A robot control program creation device that creates a control program for causing a robot (e.g., robot 61) to perform a task on an object (e.g., object A) includes a display control unit (e.g., display control unit 82) that displays one or more first blocks (e.g., Task block 221) that specify the content of the task based on input of object information and robot information, expands the first blocks into one or more third blocks (e.g., second Behavior block 223) that specify program commands for actions to be executed by the robot for the task based on user input of object information into the first blocks, and adds and displays the object information input by user input into the third blocks, and a programming unit (e.g., programming unit 84) that creates a control program using the third blocks after the object information has been added and the robot information.

[0137] This allows the robot control program creation device to create a robot control program in response to input such things as the name of the work object. This allows a user who is not familiar with controlling a robot (e.g., User 3) to easily create a robot control program. The robot control program creation device can display the robot's operation corresponding to the user's desired work as a third block.

[0138] Although the embodiments of the present disclosure have been described above with reference to the drawings, it goes without saying that the present disclosure is not limited to such examples. It is clear that a person skilled in the art can conceive of various modifications, alterations, substitutions, additions, deletions, and equivalents within the scope of the claims, and it is understood that these also naturally fall within the technical scope of the present disclosure. Furthermore, the components of the above-described embodiments may be combined in any manner as long as they do not deviate from the spirit of the invention.

[0139] The present disclosure is useful as a robot control method and a robot control device.

[0140] 30 Robot control system 40 Arithmetic device 50 Robot control PC 53 Camera 61, 62 Robot 63, 64 Control device 70 Network 71 Cloud A, B, C, D Object 211 Conveyor 212, 291, 292 Work table

Claims

1. A robot control program creation method using a computing device to create a control program for causing a robot to perform a task on an object, comprising the steps of: displaying a first block specifying the content of the task based on input of information about the object and information about the robot; expanding the first block into a second block specifying an action to be performed by the robot for the task based on user input of the object information into the first block; adding the object information input by the user to the second block and displaying the second block; and creating the control program using the second block after the object information has been added and the robot information.

2. A robot control program creation method using a computing device to create a control program for causing a robot to perform a task on an object, comprising the steps of: displaying a first block specifying the content of the task based on input of information about the object and information about the robot; expanding the first block into a third block specifying program commands for the actions to be performed by the robot for the task based on user input of the information about the object into the first block; adding the information about the object input by the user to the third block and displaying the third block; and creating the control program using the third block after the information about the object has been added and the information about the robot.

3. A method for creating a robot control program according to claim 1 or 2, wherein the information on the object includes a name of the object and a location where the work is to be performed on the object.

4. A method for creating a robot control program as described in claim 1, wherein the second block has a third block that specifies program commands for sub-operations that subdivide the operations performed by the robot, and information about the object is added to the third block based on the addition of information about the object to the second block.

5. A method for creating a robot control program as described in claim 2 or 4, wherein the third block has a setting field for the user's input of settings for the operation to be executed by the robot.

6. A method for creating a robot control program as described in claim 2 or 4, further comprising displaying an area for the user-inputted parameters of the execution operation of the robot specified by the third block based on a user operation of the third block.

7. The robot control program creating method according to claim 1 or 2, further comprising displaying a preview screen on which a preview of the operation of the robot on the target object based on the created control program can be viewed.

8. A robot control program creation device that creates a control program for causing a robot to perform a task on an object, comprising: a display control unit that displays a first block specifying the content of the task based on input of information on the object and information on the robot, expands the first block into a second block specifying an action to be performed by the robot for the task based on user input of information on the object into the first block, adds the information on the object input by the user to the second block, and displays the second block; and a programming unit that creates the control program using the second block after the information on the object has been added and information on the robot.

9. A robot control program creation device that creates a control program for causing a robot to perform a task on an object, comprising: a display control unit that displays a first block specifying the content of the task based on input of information on the object and information on the robot, expands the first block into a third block specifying program commands for operations to be performed by the robot for the task based on user input of information on the object into the first block, adds the information on the object input by the user input to the third block, and displays the third block; and a programming unit that creates the control program using the third block after the information on the object has been added and information on the robot.

Citation Information

Patent Citations

  • Robot teaching program editing device by voice input

    JP2005148789A

  • Work change apparatus, work change method, and work change program

    JP2014210332A

  • Robot program execution device, robot program execution method and program

    JP2019171498A

  • Machine tool system

    JP2020071533A