Computer system and model learning method
The computer system simulates robot tasks in a virtual environment with random trajectories to generate accurate models for grasping and moving objects, addressing inefficiencies in existing training methods and reducing learning time and breakdowns.
Patent Information
- Application Number
- JP2021168780
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-10-14
- Publication Date
- 2025-08-20
- Estimated Expiration
- 2041-10-14
AI Technical Summary
Existing technologies for training robot models to perform grasping and moving tasks do not consider trajectories, leading to inefficiencies in learning time and potential robot breakdowns.
A computer system that generates a model for robot control by simulating tasks in a virtual environment, randomly setting trajectories, and integrating models learned from both virtual and actual robot operations to enhance accuracy and reduce learning time.
The system produces highly accurate models robust to various trajectories while significantly reducing learning time and minimizing robot breakdowns.
Smart Images

Figure 0007726730000001 
Figure 0007726730000002 
Figure 0007726730000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to learning models for controlling robots to perform tasks involving grasping and moving objects. [Background technology]
[0002] With the advancement of AI technology, systems have emerged that use AI to automatically control robots that perform tasks such as grasping and moving objects. AI that automatically controls robots is realized by models generated by machine learning.
[0003] Learning a model requires a large amount of training data. Obtaining training data from a robot presents the following problems. First, it takes time to acquire the training data, which lengthens the training time. Second, it requires the robot to operate for long periods of time, and there is a possibility that the robot may be forced to perform unreasonable movements, which could lead to breakdowns.
[0004] To address the above-mentioned issues, a technology described in Patent Document 1 is known. Patent Document 1 describes the following: "First, a loose pile of multiple virtual objects is generated using a virtual environment (101). Then, holding positions where a virtual robot device will hold the virtual objects are generated (102). The virtual robot device is then executed to pick up the loose pile of virtual objects (104). Machine learning of the results of having the virtual robot device execute the action of picking up the virtual object is used to generate a trained model that can output the priorities of multiple possible holding positions from a specific position and orientation of the object (200). Then, this trained model is used to have an actual robot manipulator pick up the object. Re-learning is performed to update the priorities of the multiple holding positions of the trained model using machine learning of the results of the pick-up action (203)." [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Patent Publication No. 2021-13996 Summary of the Invention [Problem to be solved by the invention]
[0006] The technology described in Patent Document 1 does not take trajectories into consideration, and therefore cannot generate models for controlling robots that perform tasks including grasping and moving objects. An object of the present invention is to provide a system and method for generating highly accurate models that are robust to various trajectories while reducing learning time. [Means for solving the problem]
[0007] A representative example of the invention disclosed in the present application is as follows: That is, a computer system for learning a model for controlling a robot that performs a task including grasping and moving an object includes at least one computer having an arithmetic unit, a storage device connected to the arithmetic unit, and an interface connected to the arithmetic unit, wherein the at least one computer performs a first process of receiving input of information related to the task and an initial model, a second process of setting a virtual environment consisting of a virtual workspace, virtual equipment, and a virtual robot based on the information about the task, and setting a first trajectory for the virtual environment, and a simulation of a control process for the task, including moving an object by the virtual robot along the first trajectory in the virtual environment, using the initial model, and a machine learning algorithm using the results of the simulation. The work time of the work is short and the success probability of the work is high. and a third process of updating the initial model, wherein in the second process, the at least one computer randomly sets the virtual environment and randomly sets the first trajectory, and in the first learning process, the at least one computer repeatedly executes the second process and the third process until a learning termination condition is met, and records the initial model when the learning termination condition is met as a first model. [Effects of the Invention]
[0008] According to the present invention, it is possible to generate a highly accurate model that is robust to various trajectories while reducing the learning time. Problems, configurations, and effects other than those described above will become apparent from the following description of the embodiments. [Brief explanation of the drawings]
[0009] [Figure 1] FIG. 1 illustrates an example of the configuration of a system according to a first embodiment. [Figure 2] FIG. 2 is a diagram illustrating an example of a data structure of robot configuration information according to the first embodiment. [Figure 3] FIG. 2 is a diagram illustrating an example of a data structure of equipment configuration information according to the first embodiment. [Figure 4] FIG. 2 is a diagram illustrating an example of a data structure of orbit information according to the first embodiment. [Figure 5] FIG. 4 is a diagram illustrating an example of a data structure of environment adjustment information according to the first embodiment. [Figure 6] FIG. 10 is a diagram illustrating an example of a data structure of model management information according to the first embodiment. [Figure 7] 10 is a flowchart illustrating an example of a learning process executed by a computer according to the first embodiment. [Figure 8] 10 is a flowchart illustrating an example of a learning process executed by a computer according to the first embodiment. [Figure 9] 10 is a flowchart illustrating an example of a learning process executed by a computer according to the first embodiment. [Figure 10] FIG. 10 is a diagram showing an example of a screen displayed by a computer according to the first embodiment. [Figure 11A] FIG. 10 is a diagram illustrating a specific example of processing executed by an environment setting unit according to the first embodiment. [Figure 11B] FIG. 10 is a diagram illustrating a specific example of processing executed by an environment setting unit according to the first embodiment. [Figure 11C] FIG. 10 is a diagram illustrating a specific example of processing executed by an environment setting unit according to the first embodiment. [Figure 12] FIG. 10 is a diagram showing an example of a screen displayed by a computer according to the first embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0010] Hereinafter, embodiments of the present invention will be described with reference to the drawings. However, the present invention should not be construed as being limited to the description of the embodiments shown below. Those skilled in the art will readily understand that the specific configuration can be changed without departing from the spirit or intent of the present invention.
[0011] In the configuration of the invention described below, the same or similar configurations or functions are denoted by the same reference numerals, and redundant explanations will be omitted.
[0012] In this specification, the terms "first," "second," "third," etc. are used to identify components and do not necessarily limit the number or order.
[0013] To facilitate understanding of the invention, the position, size, shape, range, etc. of each component shown in the drawings etc. may not represent the actual position, size, shape, range, etc. Therefore, the present invention is not limited to the position, size, shape, range, etc. disclosed in the drawings etc. [Example]
[0014] FIG. 1 is a diagram illustrating an example of the configuration of a system according to a first embodiment.
[0015] The system is composed of a robot 100 and a computer 101. The robot 100 and the computer 101 are connected directly or via a network.
[0016] The robot 100 performs tasks including grasping an object (workpiece) and moving it from a start point to an end point based on control information output from a computer 101. The robot 100 includes a group of operation devices 110, a controller 111, and a measurement device 112.
[0017] The working device group 110 is a group of devices that realize the grasping and movement of an object, and includes, for example, hands, links, drive motors, and the like.
[0018] The controller 111 controls the working device group 110 based on control information received from the computer 101. For example, the controller 111 moves the hand by driving drive motors that function as joints and connect links in accordance with the control information. The controller 111 outputs operating state information to the computer 101, including the angles, angular velocities, and angular accelerations of the joints, as well as the torque and current values of the drive motors.
[0019] The measuring device 112 measures values to understand the state of an object due to work by the robot 100. The values output from the measuring device 112 are also referred to as work state information. The measuring device 112 is, for example, an acceleration sensor, a force sensor, a camera, a contact sensor, a current sensor, etc. The robot 100 may be equipped with multiple measuring devices 112 of different types for each measurement target. The present invention is not limited to the installation locations and number of measuring devices 112.
[0020] The robot 100 may transmit the operating status information and the work status information together as one piece of information.
[0021] The computer 101 generates information on the trajectory (trajectory information), which is the movement path of the robot 100, and also generates control information based on the trajectory information, operating status information, and work status information. The control information includes, for example, the following values: (1) the next target angle of the control axis, corner Velocity and angular acceleration degree (2) Torque of the drive motor and drive current flow (3) Object target coordinates, movement speed, and acceleration
[0022] The computer 101 includes an arithmetic unit 120, a storage unit 121, a communication unit 122, an input unit 123, and an output unit 124. The hardware elements are connected via an internal bus.
[0023] The storage device 121 is a device, such as a memory, that stores programs and information executed by the arithmetic device 120. The storage device 121 stores robot configuration information 140, facility configuration information 141, trajectory information 142, environment adjustment information 143, and model management information 144. The storage device 121 is also used as a work area.
[0024] The robot configuration information 140 is information relating to the configuration of the robot 100. The data structure of the robot configuration information 140 will be explained with reference to FIG.
[0025] The facility configuration information 141 is information relating to the facility where the robot 100 performs work. The data structure of the facility configuration information 141 will be described with reference to FIG.
[0026] The trajectory information 142 is information relating to the trajectory, which is the movement route of the robot 100. The data structure of the trajectory information 142 will be described with reference to FIG.
[0027] The environment adjustment information 143 is information for adjusting the virtual environment in which the work simulation is performed. The data structure of the environment adjustment information 143 will be described with reference to FIG.
[0028] The model management information 144 is information for managing a model that generates control information. Here, the model is a function, a table, a neural network, or the like. In this embodiment, the model is a neural network. The data structure of the model management information 144 will be described with reference to FIG. 6.
[0029] The arithmetic device 120 is a device that controls the entire computer 101, and is, for example, a processor. The arithmetic device 120 executes a program stored in the storage device 121. The arithmetic device 120 executes processing in accordance with the program, thereby operating as a functional unit (module) that realizes a specific function. In the following description, when processing is described using a functional unit as the subject, it indicates that the arithmetic device 120 is executing a program that realizes the functional unit. The arithmetic device 120 in this embodiment functions as a trajectory information generation unit 130, an environment setting unit 131, a learning unit 132, a simulator 133, a model integration unit 134, and a control information generation unit 135.
[0030] The trajectory information generation unit 130 determines the trajectory of the hand based on input information such as the work content and the position of the object. The trajectory information generation unit 130 also determines the trajectory of the tool based on the robot configuration information 140, the equipment configuration information 141, and the trajectory of the hand. The trajectory information generation unit 130 generates trajectory information 142 indicating the determined trajectory. Note that the method of determining the trajectory is a well-known technique, so a detailed description will be omitted. The environment setting unit 131 sets the virtual environment. The learning unit 132 executes learning processing. The simulator 133 simulates the movement of the robot 100 in the virtual environment. The model integration unit 134 integrates multiple models. The control information generation unit 135 controls the robot 100 performing the work by generating control information based on the trajectory information 142, the operating status information, the work status information, and the model.
[0031] It should be noted that, with regard to each functional unit of the computer 101, multiple functional units may be combined into one functional unit, or one functional unit may be divided into multiple functional units for each function. For example, the learning unit 132 may include the function of the environment setting unit 131.
[0032] The communication device 122 is a device for communicating with an external device, and is, for example, a network interface card (NIC).
[0033] The input device 123 is a device for inputting data, commands, etc. to the computer 101, and is, for example, a keyboard, a mouse, a touch panel, etc.
[0034] The output device 124 is a device for outputting the calculation results of the computer 101, and is, for example, a display, a projector, a printer, or the like.
[0035] FIG. 2 is a diagram illustrating an example of the data structure of the robot configuration information 140 according to the first embodiment.
[0036] The robot configuration information 140 stores entries each including an ID 201 , a category 202 , an item 203 , and a content 204 .
[0037] ID 201 is a field that stores identification information of an entry. Classification 202 is a field that stores the classification of the elements that make up the robot 100. Item 203 is a field that stores the management items of the elements. Content 204 is a field that stores the content of the management items. Files, numerical values, character strings, etc. are stored in content 204.
[0038] For links, the shape of the links is managed. For joints that connect links, the connecting links, the joint type, and constraints on the joint movement are managed. Note that for joints, the items managed as constraints on the joint movement differ depending on the joint type.
[0039] FIG. 3 is a diagram illustrating an example of the data structure of the equipment configuration information 141 according to the first embodiment.
[0040] The equipment configuration information 141 stores entries including an ID 301 , an equipment name 302 , an attachment target 303 , a relative position 304 , and a relative orientation 305 .
[0041] ID 301 is a field that stores identification information of an entry. Equipment name 302 is a field that stores the name of the equipment. Mounting target 303 is a field that stores the name of the object to be mounted on the equipment. Relative position 304 is a field that stores information (e.g., coordinates) that indicates the installation position relative to the equipment of the mounting target. Relative orientation 305 is a field that stores information (e.g., coordinates) that indicates the orientation relative to the equipment of the mounting target.
[0042] An entry with ID 301 of "0" indicates that the position and orientation of other equipment are determined based on assembly cell A. An entry with ID 301 of "1" stores the relative position and orientation of RoboA, which is installed with respect to assembly cell A.
[0043] FIG. 4 is a diagram illustrating an example of a data structure of the orbit information 142 according to the first embodiment.
[0044] The trajectory information 142 stores a table 400 indicating the trajectory of the hand and a table 410 indicating the trajectory of the tool.
[0045] The table 400 stores entries including a via point 401 , a position 402 , an attitude 403 , and a time 404 .
[0046] Waypoint 401 is a field that stores identification information of waypoints on the trajectory. Position 402 is a group of fields that store values that indicate the coordinates of the hand at the waypoint. Each field of Position 402 stores a value in the Cartesian coordinate system. Orientation 403 is a group of fields that store values that indicate the orientation of the hand at the waypoint. Each field of Orientation 403 stores a value defined by a quaternion. Time 404 is a field that stores the time at which the hand, having started moving from the starting point, reaches the waypoint.
[0047] The table 410 stores entries including a waypoint 411 , an attitude 412 , and a time 413 .
[0048] The via point 411 is the same field as the via point 401. The attitude 412 is a group of fields that store values indicating the attitude of each joint at the via point. The angle of the joint is stored in each field of the attitude 412. The time 413 is the same field as the time 404.
[0049] The trajectory information 142 includes, for each task, a set of the table 400 and the table 410. When the robot 100 main body moves, the trajectory information 142 may include a table relating to the trajectory of the robot 100 main body.
[0050] FIG. 5 is a diagram illustrating an example of the data structure of the environment adjustment information 143 according to the first embodiment.
[0051] The environment adjustment information 143 stores entries (adjustment data) including an ID 501, an adjustment target 502, and an adjustment item 503.
[0052] ID 501 is a field that stores identification information of an entry. Adjustment target 502 is a field that stores identification information of an object to be adjusted in the environment setting. Examples of adjustment targets include an assembly cell, a workpiece, and an obstacle. Adjustment item 503 is a field that stores the item to be adjusted and the adjustment range.
[0053] FIG. 6 is a diagram illustrating an example of the data structure of the model management information 144 according to the first embodiment.
[0054] The model management information 144 stores entries (model data) including an ID 601 , a model 602 , an operation 603 , a learning time (simulation) 604 , a learning time (actual machine) 605 , an operation time 606 , and a success probability 607 .
[0055] ID 601 is a field that stores identification information of an entry. Model 602 is a field that stores the entity (data) of the model. The path to the storage destination of the model may also be stored. Task 603 is a field that stores the type of task. In this embodiment, one or more models are generated for one task. Learning time (simulation) 604 is a field that stores the processing time of the learning process by simulation. Learning time (actual machine) 605 is a field that stores the processing time of the learning process using the actual robot 100. Task time 606 is a field that stores the time required for the robot 100 to complete the task. Success probability 607 is a field that stores the probability of success of the task by the robot 100.
[0056] The computer 101 of this embodiment performs model learning in the following procedure.
[0057] (Learning Process 1) The computer 101 uses the initial model and the simulator 133 to learn a model (primary model).
[0058] (Learning Process 2) The computer 101 applies the model generated by learning using the simulator 133 to the actual robot 100, and actually moves the robot 100 to learn the model (secondary model).
[0059] (Learning process 3) The computer 101 integrates the primary model and the secondary model, and uses the integrated model and the simulator 133 to learn the model (primary model).
[0060] The computer 101 repeatedly executes (learning process 2) and (learning process 3) in response to a request from the user.
[0061] Each learning process will be described below using a flowchart. Figs. 7, 8, and 9 are flowcharts illustrating an example of the learning process executed by the computer 101 of the first embodiment. Fig. 10 is a diagram showing an example of a screen displayed by the computer 101 of the first embodiment. Figs. 11A, 11B, and 11C are diagrams showing a specific example of the process executed by the environment setting unit 131 of the first embodiment. Fig. 12 is a diagram showing an example of a screen displayed by the computer 101 of the first embodiment.
[0062] First, the learning process 1 will be described with reference to FIG.
[0063] 10 via the output device 124, and receives user input regarding the type of work, the equipment and robot 100 to be used, the model to be used, etc. (Step S101). The learning unit 132 may also receive input regarding adjustment data to be used.
[0064] The screen 1000 includes a display field 1001 , selection fields 1002 and 1004 , read buttons 1003 and 1005 , a model selection field 1006 , and an execute button 1007 .
[0065] The display field 1001 is a field for displaying the virtual environment set by the environment setting unit 131. 1002 is a field for selecting the equipment to be used for the work. Load button 1003 When this is done, the selection field will be displayed from the equipment configuration information 141. 1002 The value for the equipment specified in the selection field is read out. 1004 is a field for selecting the task to be performed by the robot 100. Load button 1005 When this is operated, the tables 400 and 410 corresponding to the work are read out. Also, entries related to the work are read out from the environment adjustment information 143.
[0066] The model selection field 1006 is a field for selecting a model to be used for learning. The model selection field 1006 displays entries including an ID 1011, a model 1012, an operation time 1013, and a selection 1014. One entry corresponds to one model. Note that an entry may include fields other than the above-mentioned fields.
[0067] ID 1011, model 1012, and operation time 1013 are the same fields as ID 601, model 602, and operation time 606. Selection 1014 is a field for selecting a model to be used for learning. In learning process 1, an initial model is selected. In learning processes 2 and 3, a model other than the initial model is selected.
[0068] When an initial model is selected and the execute button 1007 is operated, the processing described below is executed. First, the learning unit 132 calls the environment setting unit 131 and instructs it to set a base virtual environment. The environment setting unit 131 sets the base virtual environment using the robot configuration information 140 and the equipment configuration information 141 (step S102). The environment setting unit 131 stores information about the base virtual environment in a work area and notifies the learning unit 132 of the completion of the processing.
[0069] Specifically, the environment setting unit 131 acquires data on the equipment, robot 100, workpiece, etc. related to the work from the robot configuration information 140 and the equipment configuration information 141 based on user input. Based on the acquired data, the environment setting unit 131 sets a base virtual environment consisting of a virtual work space, virtual equipment, a virtual robot, a virtual workpiece, etc. Note that the base virtual environment may also include virtual obstacles.
[0070] The learning unit 132 acquires the model data of the model specified by the user and the environment adjustment information 143 from the model management information 144 (step S103). If the user has specified adjustment data, the learning unit 132 acquires the specified adjustment data from the environment adjustment information 143.
[0071] The learning unit 132 starts the learning process (step S104).
[0072] The learning unit 132 calls the environment setting unit 131 and instructs it to set a virtual environment. The environment setting unit 131 sets the virtual environment based on the base virtual environment and the environment adjustment information 143 (step S105). The environment setting unit 131 also randomly sets the start point and end point of the trajectory in the virtual work space (step S106). The environment setting unit 131 stores information about the virtual environment, the start point, and the end point in a work area, and notifies the learning unit 132 of the completion of processing.
[0073] For example, based on the environment adjustment information 143, the environment setting unit 131 randomly changes the size and position of equipment and obstacles included in the base virtual environment, and also randomly changes the size and weight of workpieces.
[0074] 11A, 11B, and 11C, the environment setting unit 131 randomly sets the size and position of obstacles included in the virtual environment, the size and weight of the workpiece, and the start and end points of the trajectory to generate different trajectories. This makes it possible to efficiently learn a model that can handle multiple trajectories, i.e., achieve robust control for any trajectory. Furthermore, because the sensor values measured in different virtual environments also change, it is also possible to absorb sensor characteristic errors that occur between the actual machine and the virtual environment.
[0075] The learning unit 132 calls the trajectory information generation unit 130 and instructs it to generate trajectory information 142. At this time, the learning unit 132 inputs information about the virtual facility and the robot 100, as well as information about the start point and end point of the trajectory, to the trajectory information generation unit 130. The trajectory information generation unit 130 generates trajectory information 142 based on the information input by the learning unit 132 (step S107) and stores it in a work area. A method for generating the trajectory information 142 is a known technique, and therefore a detailed description thereof will be omitted.
[0076] The learning unit 132 starts the control process (step S108). The control process is repeatedly executed until a series of tasks, such as grasping the object and moving the object along the trajectory path, is completed. At this time, the learning unit 132 outputs information about the virtual environment and trajectory information 142 to the simulator 133.
[0077] The learning unit 132 acquires operating state information and working state information from the simulator 133 that simulates the movement of the virtual robot 100 (step S109). Note that step S109 may be omitted at the start point of the trajectory.
[0078] The learning unit 132 generates control information by inputting the operating state information, work state information, and trajectory information 142 into a model, and outputs the control information to the virtual robot 100 (step S110). The simulator 133 simulates the movement of the virtual robot 100 based on the control information, and outputs the operating state information and work state information.
[0079] If the work is not completed, the learning unit 132 returns to step S108 and executes the same process. If the work is completed, the learning unit 132 ends the control process (step S111).
[0080] The learning unit 132 updates the model based on the operating state information, work state information, etc. acquired in the control process (step S112). For example, the model is updated using a gradient descent method, etc. Note that the present invention is not limited to the learning algorithm.
[0081] If the learning termination condition is not satisfied, the learning unit 132 returns to step S104 and executes the same process. For example, if the index indicating accuracy is greater than a threshold value or if the number of learning iterations is greater than a threshold value, the learning unit 132 determines that the learning termination condition is satisfied. If the learning termination condition is satisfied, the learning unit 132 terminates the learning process (step S113) and ends the series of learning processes. At this time, the learning unit 132 evaluates the accuracy of the model and updates the model management information 144. Specifically, the learning unit 132 calculates the task time and task success probability under control using the model as indicators for evaluating the accuracy of the model. The learning unit 132 adds an entry to the model management information 144 and sets identification information in the ID 601 of the added entry. The learning unit 132 sets the generated model in the model 602 of the added entry, sets the task type in the task 603, and sets the time required for learning in the learning time (simulation) 604. The learning unit 132 sets the learning time (actual machine) 605 of the added entry to “0.” The learning unit 132 also sets the work time 606 and success probability 607 of the added entry to the indices calculated in the accuracy evaluation.
[0082] By learning a model by randomly changing the virtual environment and trajectory, a model that realizes robust control over the environment and trajectory can be generated. Furthermore, since the actual robot 100 is not used, the learning process can be sped up and breakdowns of the robot 100 can be avoided.
[0083] During the execution of the learning process, the computer 101 may display a screen 1200 as shown in Fig. 12. The screen 1200 includes display fields 1201, 1202, 1203, 1204, and 1205, and a stop button 1206.
[0084] Display field 1201 is a field that displays the working status of a robot in a virtual environment. Display fields 1202 and 1203 are fields that display sensor values (simulation results) acquired from a robot working in a virtual environment. Display fields 1204 and 1205 are fields that display the progress of learning, i.e., the accuracy evaluation of the model. Display field 1204 displays the progress of work time over time, and display field 1205 displays the progress of the success probability of the work.
[0085] The user refers to display fields 1204 and 1205, and when the user determines that the accuracy of the model is sufficient, he or she can operate stop button 1206 to terminate the learning process.
[0086] Next, the learning process 2 will be described with reference to FIG.
[0087] The learning unit 132 presents the user with a screen 1000 for accepting input, and accepts user input regarding the type of work, the equipment and robot 100 to be used, the model to be used, etc. (step S201). The learning unit 132 refers to the model management information 144, and displays in the model selection field 1006 a model in which the type of work specified in the work 603 is set.
[0088] The learning unit 132 refers to the model management information 144 to acquire the model specified by the user, and also acquires information about the robot and the equipment from the robot configuration information 140 and the equipment configuration information 141 (step S202).
[0089] The learning unit 132 calls the trajectory information generation unit 130 and instructs it to generate trajectory information 142. At this time, the learning unit 132 inputs information about the facility and the robot 100 to the trajectory information generation unit 130. The trajectory information generation unit 130 generates trajectory information 142 based on the information input by the learning unit 132 (step S203) and stores it in a work area.
[0090] The learning unit 132 starts the learning process (step S204) and also starts the control process (step S205). The control process is repeatedly executed until a series of tasks, such as grasping the object and moving the object along the trajectory path, is completed.
[0091] The learning unit 132 acquires operating state information and work state information from the robot 100 (step S206). Note that step S206 may be omitted at the start point of the trajectory.
[0092] The learning unit 132 generates control information by inputting the operating state information, the work state information, and the trajectory information 142 into the model, and outputs the control information to the robot 100 (step S207).
[0093] If the work is not completed, the learning unit 132 returns to step S205 and executes the same process. If the work is completed, the learning unit 132 ends the control process (step S208).
[0094] The learning unit 132 updates the model based on the operating state information, work state information, and the like acquired in the control process (step S209).
[0095] If the learning termination condition is not satisfied, the learning unit 132 returns to step S204 and executes the same processing. If the learning termination condition is satisfied, the learning unit 132 terminates the learning process (step S210) and ends the series of learning processes. At this time, the learning unit 132 evaluates the accuracy of the model and updates the model management information 144. Specifically, the learning unit 132 calculates the task time and the task success probability. The learning unit 132 adds an entry to the model management information 144 and sets identification information in the ID 601 of the added entry. The learning unit 132 sets the generated model in the model 602 of the added entry and sets the task type in the task 603. The learning unit 132 sets the value of the learning time (simulation) 604 of the entry corresponding to the model acquired in step S202 to the learning time (simulation) 604 of the added entry. The learning unit 132 sets the time required for learning in the learning time (real machine) 605 of the added entry. Furthermore, the learning unit 132 sets the indices calculated in the accuracy evaluation to the work time 606 and success probability 607 of the added entry.
[0096] By re-learning a model generated by learning using the simulator 133 using an actual machine, learning can be completed in a shorter time than conventional learning. Furthermore, by re-learning a model using an actual machine, a model corresponding to the movements of an actual work can be generated. In other words, accuracy can be improved.
[0097] Next, the learning process 3 will be described with reference to FIG.
[0098] The learning unit 132 presents a screen 1000 for receiving input to the user, and receives user input regarding the type of work, the equipment and robot 100 to be used, the model to be used, etc. (Step S301). The learning unit 132 may also receive input regarding adjustment data to be used. Note that in (Learning Process 3), the model generated in (Learning Process 1) and the model generated in (Learning Process 2) are specified.
[0099] The learning unit 132 calls the environment setting unit 131 and instructs it to set a base virtual environment. The environment setting unit 131 sets the base virtual environment using the robot configuration information 140 and the equipment configuration information 141 (step S302). The environment setting unit 131 stores information about the base virtual environment in a work area and notifies the learning unit 132 of the completion of processing. The processing in step S302 is the same as the processing in step S102.
[0100] The learning unit 132 acquires the model data of the model designated by the user from the model management information 144 and the environment adjustment information 143 (step S303). 103 This is the same as the processing of
[0101] The learning unit 132 calls the model integration unit 134 and instructs it to integrate the models. The model integration unit 134 integrates the model generated in (learning process 1) with the model generated in (learning process 2) (step S304), and notifies the learning unit 132 of the completion of the processing. For example, if the model is a neural network, the model integration unit 134 replaces some of the weights of the model generated in (learning process 2) with the weights of the model generated in (learning process 1). In this embodiment, the models are integrated in order to avoid local solution problems and overfitting.
[0102] The processing from step S305 to step S314 is the same as the processing from step S104 to step S113, except for the method of updating the model management information 144.
[0103] The learning unit 132 adds an entry to the model management information 144 and sets identification information in the ID 601 of the added entry. The learning unit 132 sets the generated model in the model 602 of the added entry and sets the type of work in the work 603. The learning unit 132 sets the values of the learning time (simulation) 604 and learning time (real machine) 605 of the entry corresponding to the model generated in (learning process 2) in the learning time (simulation) 604 and learning time (real machine) 605. The learning unit 132 adds the time required for learning to the value of the learning time (simulation) 604 of the added entry. In addition, the learning unit 132 sets the indexes calculated in the accuracy evaluation in the work time 606 and success probability 607 of the added entry.
[0104] Note that multiple models using different integration methods may be generated in step S304. In this case, the processes from step S305 to step S314 are executed for each model.
[0105] By using the simulator 133 to re-learn a model generated by learning using an actual device, a highly accurate model that is robust to the environment and trajectory can be generated in a short time.
[0106] When actually controlling the robot 100, the user accesses the computer 101 and refers to the model management information 144. The user selects a model to be used based on the model management information 144. For example, if the user places importance on the work time, the user selects a model based on the work time, and if the user places importance on the stability of the work, the user selects a model based on the work time. success A model is selected based on the probability, and the control information generator 135 controls the robot 100 using the selected model.
[0107] Note that multiple task groups may be treated as a single task. For example, a product manufacturing task consisting of "transporting parts" and "assembling parts" may be considered. In this case, a model is selected for each element task that makes up the task. The control information generator 135 switches the model for each element task and controls the robot 100.
[0108] Although one computer 101 controls the robot 100, a computer system including multiple computers 101 may perform similar control. In this case, functional units may be distributed among the multiple computers 101.
[0109] The present invention is not limited to the above-described embodiments, but includes various modifications. For example, the above-described embodiments are provided to explain the present invention in detail, and the present invention is not necessarily limited to those including all of the described configurations. Furthermore, some of the configurations of each embodiment can be added to, deleted from, or replaced with other configurations.
[0110] Furthermore, the above-described configurations, functions, processing units, processing means, etc. may be partially or entirely implemented in hardware, for example, by designing them as integrated circuits. The present invention can also be realized by software program code that implements the functions of the embodiments. In this case, a storage medium on which the program code is recorded is provided to a computer, and a processor included in the computer reads the program code stored in the storage medium. In this case, the program code itself read from the storage medium implements the functions of the above-described embodiments, and the program code itself and the storage medium on which it is stored constitute the present invention. Examples of storage media for providing such program code include flexible disks, CD-ROMs, DVD-ROMs, hard disks, solid-state drives (SSDs), optical disks, magneto-optical disks, CD-Rs, magnetic tapes, non-volatile memory cards, and ROMs.
[0111] Furthermore, the program code that realizes the functions described in this embodiment can be implemented in a wide range of program or script languages, such as assembler, C / C++, perl, Shell, PHP, Python, and Java (registered trademark).
[0112] Furthermore, the program code of the software that realizes the functions of the embodiments may be distributed via a network and stored in a storage means such as a computer's hard disk or memory, or in a storage medium such as a CD-RW or CD-R, and the processor of the computer may read and execute the program code stored in the storage means or storage medium.
[0113] In the above-described embodiment, the control lines and information lines are shown as those considered necessary for the explanation, and not all control lines and information lines are necessarily shown in the product. All components may be interconnected. [Explanation of symbols]
[0114] 100 robots 101 Calculator 110 Work equipment group 111 Controller 112 Measuring Equipment 120 Arithmetic equipment 121 Storage device 122 Communication equipment 123 Input Device 124 Output Device 130 Orbit information generation section 131 Environment Settings 132 Learning Department 133 Simulator 134 Model Integration Department 140 Robot Configuration Information 141 Facility configuration information 142 Orbit information 143 Environmental adjustment information 144 Model Management Information
Claims
1. A computer system for learning a model for controlling a robot that performs a task including grasping and moving an object, comprising: at least one computer having a computing device, a storage device connected to the computing device, and an interface connected to the computing device; The at least one computer a first process for receiving input of information about a task and an initial model; a second process of setting a virtual environment including a virtual workspace, a virtual facility, and a virtual robot based on the information about the work, and setting a first trajectory for the virtual environment; a third process of using the initial model to simulate a control process for the task, including movement of an object by the virtual robot along the first trajectory in the virtual environment, and updating the initial model based on a machine learning algorithm using a result of the simulation, so that the task time is short and the task success probability is high; In the second process, the at least one computer randomly sets the virtual environment and randomly sets the first trajectory; A computer system characterized in that in the first learning process, the at least one computer repeatedly executes the second process and the third process until the learning termination condition is met, and records the initial model when the learning termination condition is met as the first model.
2. 2. The computer system of claim 1, storing environment adjustment information for setting the virtual environment; A computer system characterized in that, in the second processing, the at least one computer randomly sets the virtual environment based on the information related to the task and the environment adjustment information.
3. 2. The computer system of claim 1, The at least one computer a fourth process for receiving input of information about the work and the first model to be used; a fifth process of setting a second trajectory based on the information about the work; a sixth process of using the first model to perform a control process for the task including movement of an object by the robot along the second trajectory, and updating the first model based on a machine learning algorithm using a result of the control process so that the task time is short and the task success probability is high; A computer system characterized in that in the second learning process, the at least one computer repeatedly executes the sixth process until the learning termination condition is met, and records the first model as the second model when the learning termination condition is met.
4. 4. The computer system according to claim 3, The at least one computer a seventh process of receiving input of information about the work, the first model to be used, and the second model to be used; an eighth process of integrating the first model and the second model; The second process; a ninth process of performing a simulation of a control process for the task, including movement of an object by the virtual robot along the first trajectory, in the virtual environment using an integrated model obtained by integrating the first model and the second model, and updating the integrated model based on a machine learning algorithm using a result of the simulation, so that the task time is short and the success probability of the task is high; In the third learning process, the at least one computer repeatedly executes the second process and the ninth process until the learning termination condition is met, and records the integrated model when the learning termination condition is met as the third model.
5. 5. The computer system of claim 4, in the first learning process, the at least one computer calculates a task time for the task and a success probability for the task in the first model as indices related to accuracy of the first model, and records data associating the processing time for the first learning process with the indices of the first model in model management information; in the second learning process, the at least one computer calculates a task time for the task and a success probability for the task in the second model as indices related to accuracy of the second model, and records data associating the processing time for the second learning process with the indices of the second model in the model management information; in the third learning process, the at least one computer calculates a task time for the task and a success probability for the task in the third model as indices related to accuracy of the third model, and records data associating the processing time for the third learning process with the indices of the third model in the model management information; The computer system is characterized in that the at least one computer presents the model management information to a user.
6. 6. The computer system according to claim 5, A computer system, wherein the initial model, the first model, the second model, and the third model are neural networks.
7. A method for learning a model for controlling a robot that performs a task including grasping and moving an object, the method being executed by a computer system, comprising: the computer system includes at least one computer having a computing device, a storage device connected to the computing device, and an interface connected to the computing device; The model learning method includes: The at least one computer a first process for receiving input of information about a task and an initial model; a second process of setting a virtual environment including a virtual workspace, a virtual facility, and a virtual robot based on the information about the work, and setting a first trajectory for the virtual environment; a third process of using the initial model to simulate a control process for the task, including movement of an object by the virtual robot along the first trajectory in the virtual environment, and updating the initial model based on a machine learning algorithm using a result of the simulation, so that the task time is short and the task success probability is high; In the second process, the at least one computer randomly sets the virtual environment and randomly sets the first trajectory; A model learning method characterized in that, in the first learning process, the at least one computer repeatedly executes the second process and the third process until a learning termination condition is met, and when the learning termination condition is met, the initial model is recorded as a first model.
8. A method for training a model according to claim 7, comprising: the computer system holds environmental adjustment information for setting the virtual environment; A model learning method, wherein in the second process, the at least one computer randomly sets the virtual environment based on the information about the task and the environment adjustment information.
9. A method for training a model according to claim 7, comprising: The at least one computer a fourth process for receiving input of information about the work and the first model to be used; a fifth process of setting a second trajectory based on the information about the work; a sixth process of using the first model to perform a control process for the task including movement of an object by the robot along the second trajectory, and updating the first model based on a machine learning algorithm using a result of the control process so that the task time is short and the task success probability is high; A model learning method characterized in that, in the second learning process, the at least one computer repeatedly executes the sixth process until a learning termination condition is met, and when the learning termination condition is met, the first model is recorded as a second model.
10. A method for training a model according to claim 9, comprising: The at least one computer a seventh process of receiving input of information about the work, the first model to be used, and the second model to be used; an eighth process of integrating the first model and the second model; The second process; a ninth process of performing a simulation of a control process for the task, including movement of an object by the virtual robot along the first trajectory, in the virtual environment using an integrated model obtained by integrating the first model and the second model, and updating the integrated model based on a machine learning algorithm using a result of the simulation, so that the task time is short and the success probability of the task is high; A model learning method characterized in that, in the third learning process, the at least one computer repeatedly executes the second process and the ninth process until a learning termination condition is met, and when the learning termination condition is met, the integrated model is recorded as a third model.
11. A method for training a model according to claim 10, comprising: in the first learning process, the at least one computer calculates a task time for the task and a success probability for the task in the first model as indices related to accuracy of the first model, and records data associating the processing time for the first learning process with the indices of the first model in model management information; in the second learning process, the at least one computer calculates a task time for the task and a success probability for the task in the second model as indices related to accuracy of the second model, and records data associating the processing time for the second learning process with the indices of the second model in the model management information; in the third learning process, the at least one computer calculates a task time for the task and a success probability for the task in the third model as indices related to accuracy of the third model, and records data associating the processing time for the third learning process with the indices of the third model in the model management information; The model learning method is characterized in that the at least one computer presents the model management information to a user.
12. A method for training a model according to claim 11, comprising: A model learning method, wherein the initial model, the first model, the second model, and the third model are neural networks.
Citation Information
Patent Citations
Control method of robot system, manufacturing method of articles, control program, recording medium, and robot system
JP2021013996A