WO2020071174A1 - 学習装置、制御装置、学習方法、及び学習プログラム - Google Patents
学習装置、制御装置、学習方法、及び学習プログラムInfo
- Publication number
- WO2020071174A1 WO2020071174A1 PCT/JP2019/037273 JP2019037273W WO2020071174A1 WO 2020071174 A1 WO2020071174 A1 WO 2020071174A1 JP 2019037273 W JP2019037273 W JP 2019037273W WO 2020071174 A1 WO2020071174 A1 WO 2020071174A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- learning
- data
- environment
- environment information
- information
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 68
- 238000010801 machine learning Methods 0.000 claims abstract description 144
- 238000004088 simulation Methods 0.000 claims abstract description 102
- 238000012549 training Methods 0.000 claims abstract description 89
- 238000012545 processing Methods 0.000 claims description 97
- 238000013528 artificial neural network Methods 0.000 claims description 33
- 238000000605 extraction Methods 0.000 claims description 12
- 230000011218 segmentation Effects 0.000 claims description 10
- 238000004519 manufacturing process Methods 0.000 claims description 8
- 230000007613 environmental effect Effects 0.000 abstract description 24
- 210000002569 neuron Anatomy 0.000 description 60
- 230000008569 process Effects 0.000 description 39
- 238000004891 communication Methods 0.000 description 22
- 230000010365 information processing Effects 0.000 description 14
- 238000012986 modification Methods 0.000 description 14
- 230000004048 modification Effects 0.000 description 14
- 238000011176 pooling Methods 0.000 description 13
- 238000010304 firing Methods 0.000 description 9
- 239000000284 extract Substances 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 210000004027 cell Anatomy 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000010411 cooking Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000012636 effector Substances 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41885—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by modeling, simulation of the manufacturing system
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/4183—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by data acquisition, e.g. workpiece identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39271—Ann artificial neural network, ffw-nn, feedforward neural network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
Definitions
- the present invention relates to a learning device, a control device, a learning method, and a learning program.
- Patent Literature 1 correction of a command value supplied to an industrial machine is performed by using a state variable indicating an environmental state in which a printed board assembling operation is performed and a determination result of the appropriateness of the arrangement of electronic components mounted on a board.
- a machine learning apparatus for learning by associating a value with a deformation amount of a substrate from a reference shape.
- a control module that has acquired the ability to determine a control command appropriate to the situation indicated by the provided sensor data and state information is constructed. be able to. However, it takes time and labor to collect a sufficient number of learning data sets using an actual machine. In addition, in the process of collecting the learning data set, there is a risk that the actual machine is damaged.
- the present inventors considered collecting learning data using a simulator in order to solve such a problem. If a simulator is used, most of the work of collecting learning data can be automated, so that the cost of collecting learning data can be reduced. In addition, since it is not necessary to use an actual device, the above risk can be eliminated.
- the present invention has been made in view of such circumstances, and has as its object to reduce the cost of collecting learning data used for machine learning for causing a control module to acquire the ability to control a robot device. It is an object of the present invention to provide a technology for constructing a control module that can be operated in a real environment by machine learning while reducing the amount of data.
- the present invention employs the following configuration in order to solve the above-described problems.
- the learning device relates to simulation data generated by simulating a sensor that monitors an environment for executing a task of a robot device, and an environment for executing the task represented in the simulation data.
- a first data acquisition unit that acquires a plurality of first learning data sets each configured by a combination of first environment information, real data obtained from the sensor, and an environment for executing the task represented by the real data;
- a second data acquisition unit configured to acquire a plurality of second learning data sets each configured by a combination of second environment information; third environment information relating to an environment in which the task is executed; and the robot apparatus in executing the task State information on the state of the third environment information and the state information
- a third data acquisition unit configured to acquire a plurality of third learning data sets each configured by a combination of control commands for causing the robot apparatus to execute the task under the conditions represented by:
- a first training step for training a vessel and after executing the first training step, for each of the second learning data sets, a corresponding Training the extractor to extract environment information that matches the second environment information, and performing machine learning of the controller, wherein the third environment information and the And training the controller to output, when state information is input, a control command that matches the corresponding control command.
- the control module that executes a series of processes for controlling the robot device is divided into two components, an extractor and a controller.
- the extractor is trained by machine learning to extract environmental information from the sensor data (simulation data or real data).
- the controller is trained by machine learning to derive control commands from environmental and state information. Accordingly, the control module does not directly derive the control command from the sensor data, but converts the sensor data into a feature amount (environment information) once and derives the control command from the obtained feature amount (environment information). It is configured to
- the extractor in machine learning of the extractor, by using both simulation data and real data, the extractor is constructed to extract common features from both data. That is, the extractor is configured to map both the simulation data and the real data into a common feature space. Thereby, after absorbing the difference between the simulation data and the actual data, the result of the machine learning using the simulation data can be reflected on the machine learning using the actual data. Therefore, if the number of simulation data used for machine learning is sufficient, even if the number of real data used for machine learning is small, an extractor that can accurately extract target features from sensor data obtained in a real environment Can be built.
- features (environmental information) extracted from the sensor data can be obtained by simulation in the same manner as in a real environment. Therefore, it is possible to construct a controller that can be operated in a real environment by machine learning using the obtained learning data without using a real machine and using a simulator. Therefore, according to the above configuration, by separating the control module into the two components of the extractor and the controller, it is possible to employ the simulation data for at least a part (preferably, most) of the learning data. As a result, it is possible to reduce the cost of collecting learning data used for machine learning. Further, a control module operable in a real environment can be configured by the extractor and the controller constructed by the machine learning. Therefore, according to the above configuration, a control module that can be operated in a real environment by the machine learning while reducing the cost of collecting learning data used for the machine learning for causing the control module to learn the ability to control the robot device. Can be built.
- the type of the robot device is not particularly limited as long as it has at least one drive unit configured to be automatically driven, and may be appropriately selected according to the embodiment. May be.
- the robot device is, for example, an industrial robot (for example, a robot hand, a belt conveyor, or the like) arranged on a production line, an autonomous robot, or a moving object (for example, a flying object such as a drone) configured to execute an automatic driving operation. , A vehicle such as an automobile).
- the task may be appropriately selected according to the type of the robot device. When the robot device is a robot hand, the task may be, for example, gripping of a workpiece, release of a gripped workpiece, and the like.
- the type of the sensor is not particularly limited as long as it is a device capable of monitoring (or sensing) the environment for executing the task of the robot device, and may be appropriately selected depending on the embodiment.
- the sensor may be, for example, a camera, a LIDAR (Light Detection and Ranging) sensor, a thermosensor, a pressure sensor, a load cell, and the like.
- the type of sensor data (simulation data, real data) may be appropriately selected according to the type of sensor.
- the sensor data may be, for example, image (for example, an RGB image, a depth image, etc.) data, measurement data by a LIDAR sensor, thermo data, pressure data, and the like.
- each environment information is not particularly limited as long as it relates to an environment in which a task is executed, and may be appropriately selected according to the embodiment.
- Each piece of environment information may be, for example, segmentation information, work attributes (position, size, posture, temperature, etc.), a position at which the work is released, and obstacle attributes (position, size, posture, type, etc.). Further, each piece of environment information may be represented in the form of a feature amount output by an intermediate layer of the neural network.
- the type of the status information is not particularly limited as long as it can indicate the status of the robot device related to the execution of the task, and may be appropriately selected according to the embodiment.
- the state information may include, for example, a position, an orientation, an angle, an acceleration, and the like of a driving unit of the industrial robot.
- the type and format of the control command are not particularly limited as long as they relate to an instruction of the operation of the robot apparatus, and may be appropriately selected according to the type of the robot apparatus.
- the control command may specify, for example, a driving amount of the industrial robot.
- the control command may specify, for example, output sound, drive amount of each joint, screen display, and the like.
- the control command may specify, for example, an accelerator amount, a brake amount, a steering wheel steering angle, lighting of a light, use of a horn, and the like.
- the extractor and the controller are configured by a learning model that can execute machine learning.
- a neural network may be used as a learning model configuring each of the extractor and the controller.
- the simulation data, the actual data, the third environment information, and the state information are used as input data (training data), and the first environment information, the second environment information, and the control command are correct. Used as data (teacher data).
- “Match” in machine learning corresponds to a case where the error (evaluation function, error function, loss function) between the output value of the learning model (extractor, controller) and the correct answer data is equal to or smaller than the threshold.
- the simulation of the sensor is executed on the simulator.
- the type of the simulator is not particularly limited as long as it can simulate an environment for executing a task of the robot device, and may be appropriately selected according to the embodiment.
- the simulator is, for example, software that can place objects such as a robot device and a work in a virtual space, and can cause the robot device to simulate execution of a task in the virtual space.
- the simulation data of each of the first learning data sets may be generated while randomly changing a condition for simulating the sensor.
- a control module that can be operated in a real environment by the machine learning is appropriately reduced.
- the target simulation conditions need not be particularly limited, and may be appropriately selected according to the type of the sensor to be simulated.
- the simulation conditions may be, for example, the camera position, the type of texture to be attached to each area, and the like.
- the extractor may be configured by a neural network, and the neural network may be divided into a first part, a second part, and a third part.
- the second part may be arranged in parallel on the input side of the neural network and may have common parameters by having the same structure, and the first part may be configured to accept the input of the simulation data.
- the second part may be configured to receive an input of the real data, the third part being arranged at an output side of the neural network, and each of the first part and the second part May be configured to receive the output of the first training step.
- the first part and the third part such that when the simulation data is input to the first part with respect to the learning data set, an output value corresponding to the corresponding first environment information is output from the third part.
- each parameter may be adjusted, and after performing the first training step and before performing the second training step, the first learning processing unit may adjust the adjusted value of the parameter of the first portion. May be duplicated in the parameters of the second part. According to this configuration, while reducing the cost of collecting learning data used for machine learning for causing the control module to learn the ability to control the robot device, a control module that can be operated in a real environment by the machine learning is appropriately reduced. Can be built.
- the first learning processing unit may generate the real data for each of the second learning data sets while keeping the value of the parameter of the third part fixed.
- the value of the parameter of the second part may be adjusted so that, when input to the second part, an output value corresponding to the corresponding second environment information is output from the third part.
- the third environment information is extracted from other simulation data generated by simulating the sensor using the extractor after the machine learning is completed. May be obtained. According to this configuration, while reducing the cost of collecting learning data used for machine learning for causing the control module to learn the ability to control the robot device, a control module that can be operated in a real environment by the machine learning is appropriately reduced. Can be built.
- the robot device may be an industrial robot in a production line
- the sensor may be configured by a camera, a pressure sensor, a load cell, and a combination thereof
- each of the environmental information is May include at least one of: segmentation information, information on an attribute of a work to be a target of the task, information on a position at which the task is executed, information indicating the presence or absence of an obstacle, and information on an attribute of an obstacle.
- the control command may define a driving amount of the industrial robot.
- a control module for controlling the operation of the industrial robot can be constructed.
- the robot device may be an autonomous robot configured to operate autonomously, and the sensor may include a camera, a thermosensor, a microphone, and a combination thereof.
- the environment information may include at least one of segmentation information and information on an attribute of an object related to the execution of the task, and the control command includes a driving amount of the autonomous robot, an output voice, and a screen display. May be specified.
- a control module for controlling the operation of the autonomous robot can be constructed.
- the target object may include not only a simple object but also a person.
- the robot device may be a moving object configured to be able to execute an automatic driving operation
- the sensor may be configured by a camera, a lidar sensor and a combination thereof
- the environment information may include at least one of information on a path along which the moving body travels and information on an object present in a traveling direction of the moving body
- the control command includes an accelerator amount, a brake amount, The steering angle of the steering wheel, the lighting of the light, and / or the use of the horn may be defined.
- a control module for controlling the operation of the moving body can be constructed.
- a control device is a control device that controls the operation of the robot device, and the sensor device obtains sensor data obtained by a sensor that monitors an environment in which the task of the robot device executes a task.
- the task is executed by using a data acquisition unit that acquires state information related to the state of the robot apparatus at the time of execution, and the machine-learned extractor constructed by the learning apparatus according to any of the above embodiments.
- the information extraction unit that extracts environmental information related to the environment from the sensor data, and the machine-learned controller constructed by the learning device, the task under the conditions indicated by the environmental information and the state information.
- a command determining unit that determines a control command for causing the robot device to execute, based on the determined control command, Serial and an operation control unit that controls the operation of the robot apparatus. According to this configuration, it is possible to provide a control device capable of appropriately controlling the operation of the robot device in a real environment.
- one aspect of the present invention may be an information processing method or a program for realizing each of the above-described configurations.
- a computer-readable storage medium that stores such a program may be used.
- a storage medium readable by a computer or the like is a medium that stores information such as a program by electrical, magnetic, optical, mechanical, or chemical action.
- a control system according to one aspect of the present invention may be configured by the learning device and the control device according to any of the above aspects.
- a computer executes simulation data generated by simulating a sensor that monitors an environment in which a task of a robot device is executed, and executes the task represented in the simulation data.
- Acquiring a plurality of first learning data sets each constituted by a combination of first environment information relating to an environment to be executed, and real data acquired from the sensor, and an environment relating to an environment for executing the task represented by the actual data.
- Acquiring a plurality of second learning data sets each constituted by a combination of two environment information; third environment information relating to an environment in which the task is executed; and state information relating to a state of the robot apparatus when executing the task.
- the third environment information and the state information Acquiring a plurality of third learning data sets each constituted by a combination of control commands for causing the robot apparatus to execute the task under the conditions shown by the following: the first learning data set and the second learning data set; Performing the machine learning of the extractor using the data set; and performing the machine learning of the controller using the third learning data set.
- a first training step of training the extractor to extract, from the simulation data, environment information that matches the corresponding first environment information
- the corresponding second environmental information is obtained from the actual data.
- the step of performing machine learning of the controller includes inputting the third environment information and the state information. And a training step of training the controller to output a control command corresponding to the corresponding control command.
- a learning program includes a computer that generates simulation data generated by simulating a sensor that monitors an environment in which a task of a robot device is executed, and the task represented in the simulation data.
- Acquiring a plurality of second learning data sets each constituted by a combination of second environment information related to the third environment information relating to an environment in which the task is executed and a state of the robot apparatus when executing the task.
- State information and the third environment information; Obtaining a plurality of third learning data sets each configured by a combination of control commands for causing the robot apparatus to execute the task under the conditions indicated by the state information; A program for executing a step of performing machine learning of an extractor using a second learning data set and a step of performing machine learning of a controller using the third learning data set.
- Performing the machine learning of the extractor includes training the extractor to extract, from the simulation data, environment information corresponding to the corresponding first environment information for each of the first learning data sets.
- the program includes a training step of training the controller to output a control command corresponding to the corresponding control command.
- control module which can operate in a real environment by the machine learning is constructed, reducing the cost of collecting the learning data used for the machine learning for the control module to learn the ability to control the robot device. can do.
- FIG. 1 schematically illustrates an example of a scene to which the present invention is applied.
- FIG. 2 schematically illustrates an example of a hardware configuration of the learning device according to the embodiment.
- FIG. 3 schematically illustrates an example of a hardware configuration of the control device according to the embodiment.
- FIG. 4 schematically illustrates an example of a software configuration of the learning device according to the embodiment.
- FIG. 5A schematically illustrates an example of a process of machine learning of the extractor by the learning device according to the embodiment.
- FIG. 5B schematically illustrates an example of a process of machine learning of the extractor by the learning device according to the embodiment.
- FIG. 5C schematically illustrates an example of a process of machine learning of the controller by the learning device according to the embodiment.
- FIG. 6 schematically illustrates an example of a software configuration of the control device according to the embodiment.
- FIG. 7 illustrates an example of a processing procedure of machine learning of the extractor by the learning device according to the embodiment.
- FIG. 8 illustrates an example of a processing procedure of machine learning of the controller by the learning device according to the embodiment.
- FIG. 9 illustrates an example of a processing procedure of robot control by the control device according to the embodiment.
- FIG. 10 schematically illustrates an example of a software configuration of a learning device according to a modification.
- FIG. 11 schematically illustrates an example of a software configuration of a control device according to a modification.
- FIG. 12 schematically illustrates another example of a scene to which the present invention is applied.
- FIG. 13 schematically illustrates another example of a scene to which the present invention is applied.
- the present embodiment will be described with reference to the drawings.
- the present embodiment described below is merely an example of the present invention in every respect. It goes without saying that various improvements and modifications can be made without departing from the scope of the invention. That is, in implementing the present invention, a specific configuration according to the embodiment may be appropriately adopted.
- the data appearing in the present embodiment is described in a natural language, more specifically, it is specified in a pseudo language, a command, a parameter, a machine language, and the like that can be recognized by a computer.
- FIG. 1 schematically illustrates an example of an application scene of a control system 100 according to the present embodiment.
- an industrial robot R for example, a robot hand
- the industrial robot R is an example of the “robot device” of the present invention.
- the application target of the present invention is not limited to such an example, and can be applied to any situation where the operation of a certain robot device is controlled.
- a control system 100 includes a learning device 1 and a control device 2 connected to each other via a network.
- the operation of the industrial robot R can be controlled.
- the type of network between the learning device 1 and the control device 2 may be appropriately selected from, for example, the Internet, a wireless communication network, a mobile communication network, a telephone network, a dedicated network, and the like.
- the learning device 1 is a computer configured to construct a control module for controlling the operation of the industrial robot R by machine learning.
- the control module according to the present embodiment includes an extractor 5 and a controller 6.
- the extractor 5 is trained to extract environmental information from sensor data obtained by the sensor.
- Controller 6 is trained to derive control commands from environmental and state information.
- the learning device 1 acquires a plurality of first learning data sets 70 each configured by a combination of the simulation data 701 and the first environment information 702.
- the simulation data 701 is generated by simulating a sensor that monitors an environment for executing a task of the industrial robot R in the production line.
- the first environment information 702 relates to an environment for executing a task appearing in the simulation data 701.
- the learning device 1 acquires a plurality of second learning data sets 73 each configured by a combination of the real data 731 and the second environment information 732.
- the actual data 731 is obtained from the sensor.
- the second environment information 732 relates to an environment for executing a task appearing in the actual data 731.
- the simulation data 701 according to the present embodiment is image data generated by the simulator, and is image data imitating a captured image obtained by the camera CA.
- the actual data 731 according to the present embodiment is image data (captured image) obtained by capturing an environment in which the task of the industrial robot R executes the task using the camera CA.
- the camera CA is an example of the “sensor” of the present invention.
- the sensor that can be used in the present embodiment is not limited to a camera, and may be appropriately selected according to the embodiment.
- the learning device 1 acquires a plurality of third learning data sets 76 each configured by a combination of the third environment information 761, the state information 762, and the control command 763.
- the third environment information 761 relates to an environment in which the task of the industrial robot R is executed.
- the state information 762 relates to the state of the industrial robot R when executing the task.
- the control command 763 defines an operation for causing the industrial robot R to execute a task under the conditions indicated by the third environment information 761 and the state information 762.
- the type of task is not particularly limited, and may be appropriately selected according to the type of robot device.
- the task may be, for example, grasping of a work, release of the grasped work, and the like.
- the type of each environment information (702, 732, 761) is not particularly limited as long as it relates to the environment in which the task of the robot device is executed, and may be appropriately selected according to the embodiment.
- Each of the environment information (702, 732, 761) includes, for example, segmentation information, information on the attribute of a work to be a task, information on a position at which a task is executed, information indicating the presence or absence of an obstacle, and the attribute of an obstacle. It may include at least one of the information.
- the type of the status information 762 is not particularly limited as long as it can indicate the status of the robot device related to the execution of the task, and may be appropriately selected according to the embodiment.
- the state information 762 may include, for example, a position, an orientation, an angle, an acceleration, and the like of a driving unit (for example, an end effector, a joint, or the like) of the industrial robot R.
- the type and format of the control command 763 are not particularly limited as long as they relate to an instruction of the operation of the robot device, and may be appropriately selected according to the type of the robot device.
- the control command 763 may specify, for example, the driving amount of the industrial robot R and the like.
- the obtained learning data sets (70, 73, 76) are used as learning data for training the control module by machine learning.
- the learning device 1 performs the machine learning of the extractor 5 using the first learning data set 70 and the second learning data set 73.
- the learning apparatus 1 extracts, from each of the first learning data sets 70, the environment information that matches the corresponding first environment information 702 from the simulation data 701. To train.
- the simulation data 701 corresponds to training data (input data) in the machine learning
- the first environment information 702 corresponds to correct answer data (teacher data). That is, for each first learning data set 70, when the simulation data 701 is input, the learning device 1 causes the extractor 5 to output an output value (environment information) that matches the corresponding first environment information 702. train.
- the learning device 1 trains the extractor 5 for each second learning data set 73 so as to extract, from the actual data 731, environment information that matches the corresponding second environment information 732. I do.
- the actual data 731 corresponds to training data (input data) in the machine learning
- the second environment information 732 corresponds to correct answer data (teacher data). That is, for each second learning data set 73, the learning device 1 causes the extractor 5 to output an output value (environment information) that matches the corresponding second environment information 732 when the real data 731 is input. train.
- the learning device 1 performs machine learning of the controller 6 using the third learning data set 76. Specifically, the learning device 1 trains the controller 6 for each third learning data set 76 to derive a corresponding control command 763 from the third environment information 761 and the state information 762.
- the third environment information 761 and the state information 762 correspond to training data (input data) in the machine learning
- the control command 763 corresponds to correct answer data (teacher data). That is, when the third environment information 761 and the state information 762 are input for each third learning data set 76, the learning device 1 outputs an output value (control command) that matches the corresponding control command 763. Train the controller 6.
- the extractor 5 and the controller 6 are configured by a learning model that can execute machine learning.
- each of the extractor 5 and the controller 6 is configured by a neural network described later. Training each of the extractor 5 and the controller 6 is to adjust the parameters of the learning model that constitutes each.
- the parameters of the learning model are used for arithmetic processing for obtaining an output value for given input data.
- the parameters are, for example, the weight of connection between each neuron, the threshold value of each neuron, and the like.
- "Match" in machine learning corresponds to adjusting the parameters of the learning model such that the error (evaluation function, error function, loss function) between the output value of the learning model and the correct answer data is equal to or less than a threshold.
- the control device 2 according to the present embodiment is a computer configured to control the operation of the industrial robot R using the control module constructed by the learning device 1. Specifically, the control device 2 according to the present embodiment acquires sensor data obtained by a sensor that monitors an environment in which the task of the industrial robot R executes the task. In the present embodiment, a camera CA is used as an example of the sensor. Therefore, the control device 2 acquires the image data 80 obtained by the camera CA as an example of the sensor data. Further, the control device 2 according to the present embodiment acquires the state information 83 on the state of the industrial robot R when executing the task.
- the control device 2 uses the machine-learned extractor 5 constructed by the learning device 1 to extract, from the image data 80, environment information on the environment in which the task is executed. Specifically, the control device 2 inputs the image data 80 to the machine-learned extractor 5 and executes an arithmetic process of the extractor 5 to output an output value corresponding to the environment information to the extractor 5. To get from.
- the control device 2 uses the machine-learned controller 6 constructed by the learning device 1 to perform tasks under the conditions indicated by the environment information and the state information 83.
- a control command 85 to be executed by R is determined.
- the control device 2 inputs the environment information and the state information 83 to the machine-learned controller 6 and executes an arithmetic process of the controller 6 to output an output value corresponding to the control command 85. Obtained from the controller 6.
- the control device 2 according to the present embodiment controls the operation of the industrial robot R based on the determined control command 85.
- the control module for controlling the operation of the industrial robot R is divided into two components, the extractor 5 and the controller 6.
- the extractor 5 extracts a common feature (environment information) from both data (701, 731). Constructed to extract.
- the result of the first training step using the simulation data 701 is used after absorbing the difference between the simulation data 701 and the real data 731 and using the real data 731. This can be reflected in the second training step.
- a machine-learned extractor 5 capable of accurately extracting environmental information from sensor data obtained in the environment can be constructed.
- features (environmental information) extracted from the sensor data can be obtained by simulation in the same manner as in a real environment. Therefore, even without using the actual machine of the industrial robot R and using a simulator, a machine-learned controller 6 that can be operated in a real environment is constructed by machine learning using the obtained third learning data set 76. be able to. Therefore, according to the present embodiment, the simulation data 701 is adopted as at least a part (preferably, most) of the learning data by separating the control module into the two components of the extractor 5 and the controller 6. This makes it possible to reduce the cost of collecting learning data used for machine learning. Furthermore, a control module operable in a real environment can be configured by the extractor 5 and the controller 6 constructed by the machine learning.
- the present embodiment it is possible to operate in a real environment by the machine learning while reducing the cost of collecting learning data used for the machine learning for causing the control module to acquire the ability to control the industrial robot R.
- a simple control module can be constructed.
- the operation of the industrial robot R can be appropriately controlled in a real environment by using the control module constructed as described above.
- FIG. 2 schematically illustrates an example of a hardware configuration of the learning device 1 according to the present embodiment.
- the learning device 1 is a computer in which a control unit 11, a storage unit 12, a communication interface 13, an input device 14, an output device 15, and a drive 16 are electrically connected.
- the communication interface is described as “communication I / F”.
- the control unit 11 includes a CPU (Central Processing Unit) as a hardware processor, a RAM (Random Access Memory), a ROM (Read Only Memory), and the like, and is configured to execute information processing based on programs and various data.
- the storage unit 12 is an example of a memory, and includes, for example, a hard disk drive, a solid state drive, and the like.
- the storage unit 12 stores the learning program 121, the plurality of first learning data sets 70, the plurality of second learning data sets 73, the plurality of third learning data sets 76, the first learning result data 125, Various information such as learning result data 128 is stored.
- the learning program 121 is a program for causing the learning device 1 to execute machine learning information processing (FIGS. 7 and 8), which will be described later, to construct the learned extractor 5 and the learned controller 6.
- the learning program 121 includes a series of instructions for this information processing.
- the plurality of first learning data sets 70 and the plurality of second learning data sets 73 are used for machine learning of the extractor 5.
- the plurality of third learning data sets 76 are used for machine learning of the controller 6.
- the first learning result data 125 is data for setting the learned extractor 5 constructed by machine learning.
- the second learning result data 128 is data for setting the learned controller 6 constructed by machine learning.
- the first learning result data 125 and the second learning result data 128 are generated as execution results of the learning program 121. Details will be described later.
- the communication interface 13 is, for example, a wired LAN (Local Area Network) module, a wireless LAN module, or the like, and is an interface for performing wired or wireless communication via a network.
- the learning device 1 can perform data communication via the network with another information processing device (for example, the control device 2) by using the communication interface 13.
- the input device 14 is a device for inputting, for example, a mouse and a keyboard.
- the output device 15 is a device for outputting, for example, a display, a speaker, and the like. The operator can operate the learning device 1 by using the input device 14 and the output device 15.
- the drive 16 is, for example, a CD drive, a DVD drive, or the like, and is a drive device for reading a program stored in the storage medium 91.
- the type of the drive 16 may be appropriately selected according to the type of the storage medium 91.
- At least one of the learning program 121, the plurality of first learning data sets 70, the plurality of second learning data sets 73, and the plurality of third learning data sets 76 may be stored in the storage medium 91.
- the storage medium 91 stores information such as a program by an electrical, magnetic, optical, mechanical, or chemical action so that a computer or other device or machine can read the information such as a recorded program. It is a medium for storing.
- the learning device 1 acquires at least one of the learning program 121, the plurality of first learning data sets 70, the plurality of second learning data sets 73, and the plurality of third learning data sets 76 from the storage medium 91. You may.
- FIG. 2 illustrates a disk-type storage medium such as a CD or a DVD as an example of the storage medium 91.
- the type of the storage medium 91 is not limited to the disk type, and may be other than the disk type.
- Examples of the storage medium other than the disk type include a semiconductor memory such as a flash memory.
- the control unit 11 may include a plurality of hardware processors.
- the hardware processor may include a microprocessor, a field-programmable gate array (FPGA), a digital signal processor (DSP), and the like.
- the storage unit 12 may be configured by a RAM and a ROM included in the control unit 11. At least one of the communication interface 13, the input device 14, the output device 15, and the drive 16 may be omitted.
- the learning device 1 may be configured by a plurality of computers. In this case, the hardware configuration of each computer may or may not match.
- the learning device 1 may be a general-purpose server device, a PC (Personal Computer), or the like, in addition to an information processing device designed specifically for a provided service.
- FIG. 3 schematically illustrates an example of a hardware configuration of the control device 2 according to the present embodiment.
- the control device 2 includes a control unit 21, a storage unit 22, a communication interface 23, an external interface 24, an input device 25, an output device 26, and a drive 27, which are electrically connected.
- Computer In FIG. 3, the communication interface and the external interface are described as “communication I / F” and “external I / F”, respectively.
- the control unit 21 to the communication interface 23 and the input device 25 to the drive 27 of the control device 2 may be configured similarly to the control unit 11 to the drive 16 of the learning device 1, respectively. That is, the control unit 21 includes a hardware processor such as a CPU, a RAM, a ROM, and the like, and is configured to execute various types of information processing based on programs and data.
- the storage unit 22 includes, for example, a hard disk drive, a solid state drive, and the like. The storage unit 22 stores various information such as a control program 221, first learning result data 125, and second learning result data 128.
- the control program 221 uses the learned extractor 5 and the learned controller 6 to control the operation of the industrial robot R. It is.
- the control program 221 includes a series of instructions for this information processing.
- the first learning result data 125 and the second learning result data 128 are used to set the learned extractor 5 and the learned controller 6 during this information processing. Details will be described later.
- the communication interface 23 is, for example, a wired LAN module, a wireless LAN module, or the like, and is an interface for performing wired or wireless communication via a network.
- the control device 2 can perform data communication via a network with another information processing device (for example, the learning device 1).
- the external interface 24 is, for example, a USB (Universal Serial Bus) port, a dedicated port, or the like, and is an interface for connecting to an external device.
- the type and number of external interfaces 24 may be appropriately selected according to the type and number of external devices to be connected.
- the control device 2 is connected to the industrial robot R and the camera CA via the external interface 24.
- the type and configuration of the industrial robot R need not be particularly limited, and may be appropriately selected according to the embodiment.
- the industrial robot R may include, for example, a robot hand, a belt conveyor, and the like.
- the control device 2 controls the operation of the industrial robot R by transmitting a control signal based on the control command to the industrial robot R via the external interface 24.
- the control method of the industrial robot R is not particularly limited, and may be appropriately determined according to the embodiment.
- the industrial robot R may be directly controlled by the control device 2.
- the industrial robot R may include a controller (not shown). In this case, the controller may be appropriately configured to control the operation of the industrial robot R based on a control signal received from the control device 2, processing of a program, and the like.
- the camera CA is appropriately arranged so as to monitor the environment in which the task of the industrial robot R is executed.
- the type of the camera CA is not particularly limited, and may be appropriately determined according to the embodiment.
- As the camera CA for example, a known camera such as a digital camera and a video camera may be used.
- the control device 2 can acquire image data from the camera CA via the external interface 24.
- the image data is an example of the “sensor data” of the present invention.
- the control device 2 may be connected to the industrial robot R and the camera CA via the communication interface 23 instead of the external interface 24.
- the input device 25 is a device for inputting, for example, a mouse and a keyboard.
- the output device 26 is, for example, a device for outputting a display, a speaker, or the like. The operator can operate the control device 2 by using the input device 25 and the output device 26.
- the drive 27 is, for example, a CD drive, a DVD drive, or the like, and is a drive device for reading a program stored in the storage medium 92. At least one of the control program 221, the first learning result data 125, and the second learning result data 128 may be stored in the storage medium 92. Further, the control device 2 may acquire at least one of the control program 221, the first learning result data 125, and the second learning result data 128 from the storage medium 92.
- the control unit 21 may include a plurality of hardware processors.
- the hardware processor may be constituted by a microprocessor, an FPGA, a DSP, or the like.
- the storage unit 22 may be configured by a RAM and a ROM included in the control unit 21. At least one of the communication interface 23, the external interface 24, the input device 25, the output device 26, and the drive 27 may be omitted.
- the control device 2 may be composed of a plurality of computers. In this case, the hardware configuration of each computer may or may not match.
- a general-purpose server device, a general-purpose desktop PC, a notebook PC, a tablet PC, or the like may be used in addition to the information processing device designed exclusively for the provided service.
- FIG. 4 schematically illustrates an example of a software configuration of the learning device 1 according to the present embodiment.
- the control unit 11 of the learning device 1 loads the learning program 121 stored in the storage unit 12 into the RAM. Then, the control unit 11 interprets and executes the learning program 121 loaded on the RAM by the CPU, and controls each component.
- the learning device 1 includes the first data acquisition unit 111, the second data acquisition unit 112, the third data acquisition unit 113, the first learning processing unit 114, and the second
- the computer operates as a computer including the learning processing unit 115 and the storage processing unit 116 as software modules. That is, in the present embodiment, each software module of the learning device 1 is realized by the control unit 11 (CPU).
- the first data acquisition unit 111 includes a simulation data 701 generated by simulating a sensor that monitors an environment for executing the task of the industrial robot R, and a first environment related to an environment for executing the task represented in the simulation data 701.
- a plurality of first learning data sets 70 each constituted by a combination of information 702 are acquired.
- the second data acquisition unit 112 generates a plurality of second learning data sets 73 each composed of a combination of the real data 731 obtained from the sensor and the second environment information 732 relating to the environment for executing the task represented by the real data 731. get.
- the third data acquisition unit 113 is indicated by the third environment information 761 relating to the environment in which the task is executed, the state information 762 relating to the state of the industrial robot R when executing the task, and the third environment information 761 and the state information 762.
- a plurality of third learning data sets 76 each constituted by a combination of control commands 763 for causing the industrial robot R to execute the task under the condition are acquired.
- the first learning processing unit 114 holds the extractor 5 before executing the machine learning.
- the first learning processing unit 114 performs machine learning of the extractor 5 using the first learning data set 70 and the second learning data set 73. Specifically, as a first training step, the first learning processing unit 114 extracts, for each first learning data set 70, from the simulation data 701, environment information that matches the corresponding first environment information 702. Train the vessel 5. After executing the first training step, the first learning processing unit 114 performs, as a second training step, for each of the second learning data sets 73, from the actual data 731, environment information that matches the corresponding second environment information 732. Train extractor 5 to extract.
- the storage processing unit 116 stores the information on the constructed learned extractor 5 in the storage unit 12 as first learning result data 125.
- the second learning processing unit 115 holds the controller 6 before executing the machine learning.
- the second learning processing unit 115 performs machine learning of the controller 6 using the third learning data set 76. Specifically, when the third environment information 761 and the state information 762 are input for each third learning data set 76, the second learning processing unit 115 outputs a control command that matches the corresponding control command 763.
- the controller 6 is trained.
- the storage processing unit 116 stores the information on the constructed controller 6 that has been learned in the storage unit 12 as second learning result data 128.
- FIG. 5A schematically illustrates an example of the process of the first training step of the extractor 5 according to the present embodiment.
- FIG. 5B schematically illustrates an example of the process of the second training step of the extractor 5 according to the present embodiment.
- the extractor 5 according to the present embodiment is configured by a neural network.
- the neural network is divided into a first part 51, a second part 52, and a third part 53.
- the first part 51 and the second part 52 are arranged in parallel on the input side of the neural network.
- the third part 53 is arranged on the output side of the neural network.
- the first portion 51 is configured by a so-called convolutional neural network.
- the first portion 51 includes a convolution layer 511, a pooling layer 512, and a total connection layer 513.
- the convolutional layers 511 and the pooling layers 512 are alternately arranged on the input side.
- the output of the pooling layer 512 disposed on the most output side is input to the full coupling layer 513.
- the output of the fully coupled layer 513 corresponds to the output of the first part 51.
- the numbers of the convolution layers 511 and the pooling layers 512 may be appropriately selected according to the embodiment.
- the convolution layer 511 is a layer for performing a convolution operation on an image. Convolution of an image corresponds to a process of calculating a correlation between the image and a predetermined filter. Therefore, by performing a convolution operation on the image, for example, a grayscale pattern similar to the grayscale pattern of the filter can be detected from the input image.
- the pooling layer 512 is a layer that performs a pooling process. The pooling process realizes the invariance of the response to a minute change in the position of a feature appearing in an image by partially discarding information on the position of the image having a strong response to the filter.
- the pooling layer 512 may be, for example, a maximum pooling layer configured to select a pixel having a maximum value from a plurality of pixels to be processed.
- the all connection layer 513 is a layer in which all neurons between adjacent layers are connected. That is, each neuron included in the all connection layer 513 is connected to all neurons included in the adjacent layer.
- the total coupling layer 513 may be composed of two or more layers.
- the number of neurons (nodes) included in each of the layers 511 to 513 may be appropriately selected according to the embodiment. Neurons in adjacent layers are appropriately connected, and a weight (connection weight) is set for each connection. A threshold value is set for each neuron, and basically, the output of each neuron is determined by whether or not the sum of the product of each input and each weight exceeds the threshold value.
- the weight of the connection between each neuron and the threshold value of each neuron included in each of the layers 511 to 513 are examples of parameters of the first portion 51 used for the arithmetic processing.
- the second part 52 is also configured by a so-called convolutional neural network. That is, the second portion 52 includes a convolution layer 521, a pooling layer 522, and a total bonding layer 523.
- the layers 521 to 523 of the second portion 52 are configured in the same manner as the layers 511 to 513 of the first portion 51. That is, the number of neurons included in each of the layers 521 to 523 and the connection between the neurons in the adjacent layers are set so as to match the first portion 51. Accordingly, the first portion 51 and the second portion 52 have the same structure as each other and are configured to have common parameters.
- the weight of the connection between the neurons and the threshold value of each neuron included in each of the layers 521 to 523 are examples of parameters of the second part 52 used for the arithmetic processing.
- the third portion 53 has a structure in which the input side and the output side of the first portion 51 are inverted.
- the third portion 53 includes a full coupling layer 531, an upsampling layer 532, and a convolution layer 533.
- the upsampling layer 532 is a layer that performs an inverse pooling process.
- the fully coupled layer 531 is arranged on the most input side, and the output of the all coupled layer 531 is input to the upsampling layer 532 arranged on the most input side. Then, the upsampling layers 532 and the convolution layers 533 are alternately arranged on the output side.
- the output of the convolution layer 533 arranged at the most output side corresponds to the output of the third portion 53.
- the numbers of the upsampling layers 532 and the convolution layers 533 may be appropriately selected according to the embodiment. Further, the total coupling layer 531 may be composed of two or more layers.
- the weight of the connection between the neurons and the threshold value of each neuron included in each of the layers 531 to 533 are examples of the parameters of the third portion 53 used for the arithmetic processing.
- the convolutional layer 511 arranged on the most input side of the first portion 51 is configured to receive the input of the simulation data 701.
- the convolution layer 521 disposed on the most input side of the second portion 52 is configured to receive input of the actual data 731.
- the total coupling layer 531 of the third portion 53 is configured to receive the output of each of the first portion 51 and the second portion 52.
- the configuration of each of the portions 51 to 53 is not limited to such an example, and may be appropriately set according to the embodiment.
- the first learning processing unit 114 cuts off (ignores) the connection between the second part 52 and the third part 53. Then, according to the following procedure, when the simulation data 701 is input to the first part 51 for each first learning data set 70, the first learning processing unit 114 outputs an output value that matches the corresponding first environment information 702. The values of the parameters of the first portion 51 and the third portion 53 are adjusted so as to be output from the three portions 53.
- the first learning processing unit 114 inputs the simulation data 701 to the convolution layer 511 arranged on the most input side of the first part 51 for each of the first learning data sets 70, and the first part 51 and the third part
- the arithmetic processing of the extractor 5 is executed using the 53 parameters.
- the first learning processing unit 114 acquires an output value corresponding to a result of extracting the environment information from the simulation data 701 from the convolution layer 533 disposed on the most output side of the third part 53.
- the first learning processing unit 114 calculates an error between the obtained output value and the first environment information 702.
- the first learning processing unit 114 adjusts the value of each parameter of the first part 51 and the third part 53 so that the sum of the calculated errors becomes small.
- the first learning processing unit 114 determines the value of the parameter of each of the first part 51 and the third part 53. Repeat the adjustment. Accordingly, when the simulation data 701 is input to the first part 51 for each of the first learning data sets 70, the first learning processing unit 114 outputs an output value corresponding to the corresponding first environment information 702 from the third part 53.
- An extractor 5 trained to output can be constructed.
- the first learning processing unit 114 outputs the adjusted value of each parameter of the first portion 51 to the first value. Duplicate to the corresponding parameters of the two parts 52.
- the first learning processing unit 114 releases the interruption of the connection between the second part 52 and the third part 53, and interrupts (ignores) the connection between the first part 51 and the third part 53.
- the first learning processing unit 114 converts the actual data 731 for each second learning data set 73 into the second part 52 while keeping the parameter values of the third part 53 fixed by the following procedure.
- the parameter value of the second part 52 is adjusted so that an output value that matches the corresponding second environment information 732 is output from the third part 53.
- the first learning processing unit 114 inputs the real data 731 to the convolution layer 521 arranged on the most input side of the second part 52 for each of the second learning data sets 73, and the second part 52 and the third part
- the arithmetic processing of the extractor 5 is executed using the 53 parameters.
- the first learning processing unit 114 obtains an output value corresponding to the result of extracting the environment information from the actual data 731 from the convolution layer 533 disposed on the most output side of the third part 53.
- the first learning processing unit 114 calculates an error between the obtained output value and the second environment information 732.
- the first learning processing unit 114 adjusts the values of the parameters of the second part 52 so that the sum of the calculated errors becomes small.
- the first learning processing unit 114 repeats the adjustment of the parameter values of the second part 52 until the sum of the error between the output value obtained from the third part 53 and the second environment information 732 becomes equal to or smaller than the threshold. Accordingly, when the real data 731 is input to the second part 52 for each second learning data set 73, the first learning processing unit 114 outputs an output value that matches the corresponding second environment information 732 from the third part 53.
- An extractor 5 trained to output can be constructed.
- the storage processing unit 116 determines the configuration of the constructed learned extractor 5 (for example, the number of layers of the neural network, the number of neurons in each layer, the connection relationship between neurons, A first learning result data 125 indicating a transfer function) and an operation parameter (for example, a connection weight between each neuron, a threshold value of each neuron) is generated. Then, the storage processing unit 116 stores the generated first learning result data 125 in the storage unit 12.
- the configuration of the constructed learned extractor 5 for example, the number of layers of the neural network, the number of neurons in each layer, the connection relationship between neurons, A first learning result data 125 indicating a transfer function
- an operation parameter for example, a connection weight between each neuron, a threshold value of each neuron
- FIG. 5C schematically illustrates an example of a process of the machine learning of the controller 6 according to the present embodiment.
- the controller 6 according to the present embodiment is configured by a multilayer neural network used for so-called deep learning, and includes an input layer 61, an intermediate layer (hidden layer) 62, and an output layer 63. It has.
- the configuration of the controller 6 need not be limited to such an example, and may be set as appropriate according to the embodiment.
- the controller 6 may include two or more intermediate layers 62.
- the number of neurons included in each of the layers 61 to 63 may be appropriately set according to the embodiment. Neurons in adjacent layers are appropriately connected, and a weight (connection weight) is set for each connection. In the example of FIG. 5C, each neuron is connected to all neurons in an adjacent layer. However, the connection of the neurons is not limited to such an example, and may be appropriately set according to the embodiment. A threshold value is set for each neuron, and basically, the output of each neuron is determined by whether or not the sum of the product of each input and each weight exceeds the threshold value.
- the weight of the connection between each neuron and the threshold value of each neuron included in each of the layers 61 to 63 are examples of parameters of the controller 6 used for the arithmetic processing.
- the second learning processing unit 115 inputs the third environment information 761 and the state information 762 to the input layer 61 of the controller 6 for each of the third learning data sets 76.
- the controller 6 executes the arithmetic processing using the parameters of (1) to (6).
- the second learning processing unit 115 acquires from the output layer 63 an output value corresponding to a result of deriving the control command from the third environment information 761 and the state information 762.
- the second learning processing unit 115 calculates an error between the obtained output value and the control command 763.
- the second learning processing unit 115 adjusts the value of the parameter of the controller 6 so that the sum of the calculated errors becomes small.
- the second learning processing unit 115 repeats the adjustment of the parameter values of the controller 6 until the sum of the error between the output value obtained from the output layer 63 and the control command 763 becomes equal to or smaller than the threshold. Accordingly, when the third environment information 761 and the state information 762 are input to the input layer 61 for each third learning data set 76, the second learning processing unit 115 outputs an output value that matches the corresponding control command 763 to the output layer.
- a controller 6 trained to output from 63 can be constructed.
- the storage processing unit 116 determines the configuration of the constructed learned controller 6 (for example, the number of layers of the neural network, the number of neurons in each layer, the connection relationship between neurons, each neuron). ), And calculation parameters (for example, the weight of the connection between each neuron and the threshold value of each neuron) are generated. Then, the storage processing unit 116 stores the generated second learning result data 128 in the storage unit 12.
- the third environment information 761 of each third learning data set 76 is extracted from other simulation data 78 generated by simulating the sensor using the extractor 5 after the completion of the machine learning. It may be obtained by doing.
- the third data acquisition unit 113 acquires the simulation data 78 generated similarly to the simulation data 701.
- the third data acquisition unit 113 refers to the first learning result data 125 and sets the machine-learned extractor 5.
- the third data acquisition unit 113 inputs the simulation data 78 to the first part 51, and executes the arithmetic processing of the extractor 5 using the parameters of the first part 51 and the third part 53.
- an output value corresponding to the result of extracting the environment information from the simulation data 78 is output from the third part 53.
- the third data acquisition unit 113 may acquire the output value output from the third part 53 as the third environment information 761.
- FIG. 6 schematically illustrates an example of a software configuration of the control device 2 according to the present embodiment.
- the control unit 21 of the control device 2 loads the control program 221 stored in the storage unit 22 into the RAM. Then, the control unit 21 interprets and executes the control program 221 developed in the RAM by the CPU to control each component.
- the control device 2 operates as a computer including the data acquisition unit 211, the information extraction unit 212, the command determination unit 213, and the operation control unit 214 as software modules. That is, in the present embodiment, each software module of the control device 2 is also realized by the control unit 21 (CPU), similarly to the learning device 1.
- the data acquisition unit 211 acquires sensor data obtained by a sensor that monitors the environment in which the task of the industrial robot R executes the task.
- the data acquisition unit 211 acquires image data 80 obtained by the camera CA as sensor data. Further, the data acquisition unit 211 acquires the state information 83 regarding the state of the industrial robot R when executing the task.
- the ⁇ information extraction unit 212 includes the machine-learned extractor 5 constructed by the learning device 1 by holding the first learning result data 125.
- the information extraction unit 212 refers to the first learning result data 125 and sets the machine-learned extractor 5. Then, the information extraction unit 212 extracts, from the image data 80, environment information 81 relating to the environment in which the task is executed, using the machine-learned extractor 5.
- the information extraction unit 212 inputs the image data 80 to the second part 52, and executes the arithmetic processing of the extractor 5 using the parameters of the second part 52 and the third part 53. As a result of this arithmetic processing, the information extraction unit 212 acquires an output value corresponding to the environment information 81 from the third part 53.
- the command determining unit 213 includes the machine-learned controller 6 constructed by the learning device 1 by holding the second learning result data 128.
- the command determining unit 213 refers to the second learning result data 128 and performs setting of the controller 6 after the machine learning.
- the command determination unit 213 uses the machine-learned controller 6 to determine the control command 85 for causing the industrial robot R to execute the task under the conditions indicated by the environment information 81 and the state information 83. .
- the command determination unit 213 inputs the environment information 81 and the state information 83 to the input layer 61 and executes the arithmetic processing of the controller 6 using the parameters of the layers 61 to 63.
- the command determination unit 213 acquires an output value corresponding to the determined control command 85 from the output layer 63.
- the operation control unit 214 controls the operation of the industrial robot R based on the determined control command 85.
- each software module of the learning device 1 and the control device 2 will be described in detail in an operation example described later.
- an example is described in which each software module of the learning device 1 and the control device 2 is realized by a general-purpose CPU.
- some or all of the above software modules may be implemented by one or more dedicated processors.
- the omission, replacement, and addition of software modules may be appropriately performed according to the embodiment.
- the learning device 1 selects one of two modes, that is, a first mode for performing machine learning of the extractor 5 and a second mode for performing machine learning of the controller 6, and selects the selected mode. It is configured to be operable.
- the processing procedure in each mode described below is an example of the “learning method” of the present invention. However, it does not necessarily have to be divided into two modes. Each mode may be appropriately omitted or changed. Further, the processing procedure described below is merely an example, and each processing may be changed as much as possible. Further, in the processing procedure described below, steps can be omitted, replaced, and added as appropriate according to the embodiment.
- FIG. 7 is a flowchart illustrating an example of a processing procedure of machine learning of the extractor 5 by the learning device 1 according to the present embodiment.
- Step S101 the control unit 11 operates as the first data acquisition unit 111, and acquires a plurality of first learning data sets 70 each configured by a combination of the simulation data 701 and the first environment information 702.
- the method of acquiring each first learning data set 70 is not particularly limited, and may be appropriately selected according to the embodiment.
- a simulation data 701 can be generated by preparing a simulator and simulating the sensor under various conditions.
- the type of the simulator is not particularly limited as long as it can simulate an environment for executing a task of the robot device, and may be appropriately selected according to the embodiment.
- the type of the task is not particularly limited, and may be appropriately selected according to the type of the robot device.
- the simulator is software capable of arranging objects such as a sensor, a robot device, and a work in a virtual space, and simulating execution of a task by the robot device in the virtual space.
- the task is, for example, grasping of a work, release of the grasped work, and the like.
- the camera CA is used as a sensor for monitoring an environment in which the task of the industrial robot R executes the task. Therefore, the simulator generates image data simulating the captured image obtained by the camera CA as the simulation data 701. At this time, the simulation data 701 may be generated while randomly changing the conditions for simulating the sensor.
- the simulation conditions include, for example, the position of the camera CA, the field of view of the camera CA (field @ of @ view), the focal length of the camera CA, the lighting conditions, the type of texture to be attached to each area, and the type of the industrial robot R. Attributes, attributes of the work to be arranged, and the like.
- the first environment information 702 can be appropriately generated according to the simulation conditions.
- the type of the first environment information 702 is not particularly limited as long as it relates to the environment in which the task of the robot apparatus is executed, and may be appropriately selected according to the embodiment.
- the first environment information 702 is, for example, at least one of segmentation information, information on attributes of a work to be a task, information on a position at which a task is executed, information on the presence or absence of an obstacle, and information on an attribute of an obstacle. May be included.
- the segmentation information indicates a result of segmenting the region of each object by identifying each object appearing in the image.
- the segmentation information may include information indicating an attribute of each object estimated based on a result of identifying each object.
- the information on the attribute of the work indicates, for example, the position, shape, size, posture, weight, temperature, and the like of the work.
- the information on the position where the task is executed indicates, for example, the position where the work is released.
- the information on the attribute of the obstacle indicates, for example, the position, shape, size, posture, weight, temperature, and the like of the obstacle.
- Each first learning data set 70 may be automatically generated by an operation of a computer, or may be manually generated by an operation of an operator. Further, the generation of each first learning data set 70 may be performed by the learning device 1 or may be performed by a computer other than the learning device 1.
- the control unit 11 automatically or manually executes the above series of processes by an operation of an operator, so that the plurality of first learning data sets 70 are generated. To get.
- the control unit 11 transmits the plurality of first learning data sets 70 generated by the other computer via a network, a storage medium 91, or the like. To get.
- the number of the first learning data sets 70 to be acquired is not particularly limited, and may be appropriately selected according to the embodiment. After acquiring the plurality of first learning data sets 70, the control unit 11 proceeds to the next step S102.
- Step S102 the control unit 11 operates as the first learning processing unit 114, and implements the machine learning of the extractor 5 using the plurality of first learning data sets 70.
- the control unit 11 trains the extractor 5 for each first learning data set so as to extract, from the simulation data 701, environment information that matches the corresponding first environment information 702.
- This step S102 is an example of the “first training step” of the present invention.
- the control unit 11 prepares the extractor 5 to be processed.
- the configuration of the extractor 5 to be prepared, the initial value of the weight of the connection between the neurons, and the initial value of the threshold value of each neuron may be given by a template or by an operator input.
- the control unit 11 may prepare the extractor 5 based on learning result data obtained by performing past machine learning.
- control unit 11 uses the simulation data 701 included in each first learning data set 70 acquired in step S101 as input data, and uses the corresponding first environment information 702 as teacher data, and The learning process of the first part 51 and the third part 53 of No. 5 is executed.
- a stochastic gradient descent method or the like may be used.
- the connection between the second part 52 and the third part 53 is ignored.
- the control unit 11 inputs the simulation data 701 to the convolution layer 511 arranged on the most input side of the first part 51, and sequentially enters each layer from the input side.
- the firing of each neuron included in (511 to 513, 531 to 533) is determined.
- the control unit 11 acquires an output value corresponding to a result of extracting the environment information from the simulation data 701 from the convolution layer 533 disposed on the most output side of the third part 53.
- the control unit 11 calculates an error between the obtained output value and the corresponding first environment information 702.
- control unit 11 calculates the weight of the connection between each neuron and the error of each threshold value of each neuron using the error of the calculated output value by the error backpropagation (Back propagation) method.
- control unit 11 updates the weight of the connection between the neurons and the value of the threshold value of each neuron based on the calculated errors.
- the control unit 11 When the simulation data 701 is input to the first part 51 for each of the first learning data sets 70 by repeating the first to fourth steps, the control unit 11 outputs an output that matches the corresponding first environment information 702.
- the values of the parameters of the first part 51 and the third part 53 are adjusted so that the values are output from the third part 53.
- the control unit 11 sets the sum of the error between the output value obtained from the convolution layer 533 located on the most output side of the third part 53 and the first environment information 702 as the threshold value.
- the adjustment of the values of the parameters of the first portion 51 and the third portion 53 by the above-described first to fourth steps is repeated until the following is achieved.
- the threshold may be appropriately set according to the embodiment.
- the control unit 11 when the simulation data 701 is input to the first part 51 for each of the first learning data sets 70, the control unit 11 outputs an output value corresponding to the corresponding first environment information 702 from the third part 53.
- the trained extractor 5 can be constructed.
- the control unit 11 proceeds to the next step S103.
- Step S103 the control unit 11 operates as the second data acquisition unit 112, and acquires a plurality of second learning data sets 73 each configured by a combination of the actual data 731 and the second environment information 732.
- each second learning data set 73 is not particularly limited, and may be appropriately selected according to the embodiment.
- real data 731 can be obtained by preparing a real environment such as a sensor, a robot device, and a work, and monitoring how the robot device executes a task under various conditions using a sensor.
- the actual data 731 is image data (captured image) obtained by capturing an environment in which the task of the industrial robot R executes the task using the camera CA.
- the type and format of the second environment information 732 may be the same as the first environment information 702.
- the second environment information 732 can be appropriately generated according to the conditions of the real environment. By combining (associating) the generated second environment information 732 with the corresponding real data 731, each second learning data set 73 can be generated.
- Each second learning data set 73 may be automatically generated by operation of a computer, or may be manually generated by operation of an operator. The generation of each second learning data set 73 may be performed by the learning device 1 or may be performed by a computer other than the learning device 1.
- the control unit 11 automatically or manually executes the above series of processes by an operation of an operator, so that the plurality of second learning data sets 73 are generated. To get.
- the control unit 11 transmits the plurality of second learning data sets 73 generated by the other computer via a network, a storage medium 91, or the like. To get.
- the number of the second learning data sets 73 to be acquired is not particularly limited, and may be appropriately selected according to the embodiment. After acquiring the plurality of second learning data sets 73, the control unit 11 proceeds to the next step S104.
- Step S104 the control unit 11 operates as the first learning processing unit 114, and performs machine learning of the extractor 5 using the plurality of second learning data sets 73. In this machine learning, the control unit 11 trains the extractor 5 for each second learning data set 73 to extract, from the actual data 731, environment information that matches the corresponding second environment information 732.
- This step S104 is an example of the “second training step” of the present invention.
- the control unit 11 copies the adjusted value of each parameter of the first portion 51 to a corresponding parameter of the second portion 52 before executing this step S104. I do.
- the control unit 11 uses the real data 731 included in each of the second learning data sets 73 acquired in step S103 as input data, and uses the corresponding second environment information 732 as teacher data, and The learning process of the second part 52 of No. 5 is executed. In the present embodiment, in the learning process, the connection between the first part 51 and the third part 53 is ignored, and the adjustment of the parameter value of the third part 53 is omitted.
- the procedure of the learning process may be the same as that in step S102. That is, in the first step, for each second learning data set 73, the control unit 11 inputs the real data 731 to the convolution layer 521 arranged on the most input side of the second portion 52, and sequentially enters each layer from the input side. The firing of each neuron included in (521 to 523, 531 to 533) is determined. Thereby, the control unit 11 obtains an output value corresponding to a result of extracting the environment information from the actual data 731 from the convolution layer 533 arranged on the most output side of the third part 53. In the second step, the control unit 11 calculates an error between the obtained output value and the second environment information 732.
- control unit 11 calculates the weight of the connection between each neuron and the error of each threshold of each neuron in the second part 52 by using the error of the calculated output value by the error back propagation method. .
- control unit 11 updates the weight of the connection between neurons in the second part 52 and the threshold value of each neuron based on the calculated errors.
- the control unit 11 inputs the actual data 731 to the second part 52 for each second learning data set 73 while keeping the parameter values of the third part 53 fixed. Then, the value of the parameter of the second part 52 is adjusted so that an output value corresponding to the corresponding second environment information 732 is output from the third part 53. In other words, for each second learning data set 73, the control unit 11 sets the sum of the error between the output value obtained from the convolution layer 533 located on the most output side of the third part 53 and the second environment information 732 as the threshold value. The adjustment of the value of the parameter of the second portion 52 by the above-described first to fourth steps is repeated until the value becomes the following.
- the threshold may be appropriately set according to the embodiment.
- the control unit 11 when the real data 731 is input to the second part 52 for each second learning data set 73, the control unit 11 outputs an output value that matches the corresponding second environment information 732 from the third part 53.
- the trained extractor 5 can be constructed.
- the control unit 11 proceeds to the next step S105.
- Step S105 In step S ⁇ b> 105, the control unit 11 operates as the storage processing unit 116, and stores information on the machine-learned extractor 5 in the storage unit 12 as first learning result data 125.
- the control unit 11 performs the machine learning of the extractor 5 by using the first learning data set 70 and the second learning data set 73 in steps S102 and S104. That is, performing the machine learning of the extractor 5 includes the above steps S102 and S104.
- step S105 the control unit 11 generates, as the first learning result data 125, information indicating the configuration and parameters of the extractor 5 constructed by the machine learning in steps S102 and S104. Then, the control unit 11 stores the generated first learning result data 125 in the storage unit 12. Thereby, the control unit 11 ends a series of processing of the machine learning (first mode) of the extractor 5 according to the present embodiment.
- the storage location of the first learning result data 125 is not limited to the storage unit 12.
- the control unit 11 may store the first learning result data 125 in a data server such as a NAS (Network Attached Storage).
- the first learning result data 125 may or may not include information on the first portion 51.
- the control unit 11 may transfer the generated first learning result data 125 to the control device 2 at an arbitrary timing.
- the control device 2 may acquire the first learning result data 125 by receiving the transfer from the learning device 1 or may acquire the first learning result data 125 by accessing the learning device 1 or the data server. Good.
- the first learning result data 125 may be incorporated in the control device 2 in advance.
- the control unit 11 may periodically update the first learning result data 125 by periodically repeating the processing of steps S101 to S105. At the time of this repetition, change, correction, addition, deletion, etc. of the first learning data set 70 and the second learning data set 73 may be appropriately executed. Then, the control unit 11 periodically updates the first learning result data 125 held in the control device 2 by transferring the updated first learning result data 125 to the control device 2 every time the learning process is performed. You may.
- FIG. 8 is a flowchart illustrating an example of a processing procedure of machine learning of the controller 6 by the learning device 1 according to the present embodiment.
- Step S201 the control unit 11 operates as the third data acquisition unit 113, and acquires a plurality of third learning data sets 76 each configured by a combination of the third environment information 761, the state information 762, and the control command 763. .
- the method for acquiring each third learning data set 76 is not particularly limited, and may be appropriately selected according to the embodiment.
- the simulator or the real environment can be prepared, and the third environment information 761 can be appropriately generated according to the conditions of the prepared simulator or the real environment.
- the type and format of the third environment information 761 may be the same as the first environment information 702 and the second environment information 732.
- the third environment information 761 may be generated by extracting from the other simulation data 78 using the extractor 5 after the completion of the machine learning.
- the simulation data 78 is input to the first portion 51, and the firing of each neuron included in each layer (511 to 513, 531 to 533) is determined in order from the input side.
- an output value corresponding to the result of extracting the environment information from the simulation data 78 is output from the third part 53.
- the output value output from the third part 53 may be acquired as the third environment information 761.
- the simulation data 78 may be obtained in the same manner as the simulation data 701.
- the setting of the extractor 5 after the machine learning may be performed by referring to the first learning result data 125.
- the state information 762 can be appropriately generated according to the conditions of the simulation or the real environment. Further, the control command 763 can be appropriately generated according to the conditions of the simulation or the real environment and the task to be executed.
- the state information 762 may include, for example, the position, orientation, angle, acceleration, and the like of the drive unit of the industrial robot R.
- the control command 763 may specify, for example, a driving amount of the industrial robot R (for example, a driving amount of a servo motor).
- Each third learning data set 76 may be automatically generated by an operation of a computer, or may be manually generated by an operation of an operator. The generation of each third learning data set 76 may be performed by the learning device 1 or may be performed by a computer other than the learning device 1.
- the control unit 11 automatically or manually executes the above series of processes by an operation of an operator, so that the plurality of third learning data sets 76 are generated. To get.
- the control unit 11 transmits the plurality of third learning data sets 76 generated by the other computer via a network, a storage medium 91, or the like. To get.
- the number of the third learning data sets 76 to be acquired is not particularly limited, and may be appropriately selected according to the embodiment. After acquiring the plurality of third learning data sets 76, the control unit 11 proceeds to the next step S202.
- Step S202 the control unit 11 operates as the second learning processing unit 115, and performs machine learning of the controller 6 using the plurality of third learning data sets 76.
- the control unit 11 controls to output a control command that matches the corresponding control command 763.
- Step S202 is an example of the “training step for training a controller” of the present invention.
- the control unit 11 prepares the controller 6 to be processed.
- the configuration of the controller 6 to be prepared, the initial value of the weight of the connection between the neurons, and the initial value of the threshold value of each neuron may be given by a template or by an operator input.
- the control unit 11 may prepare the controller 6 based on learning result data obtained by performing past machine learning.
- the control unit 11 uses the third environment information 761 and the state information 762 included in each of the third learning data sets 76 acquired in step S201 as input data, and uses the corresponding control command 763 as teacher data. Then, the learning process of the controller 6 is executed.
- This learning process may be similar to steps S102 and S104 described above. That is, in the first step, the control unit 11 inputs the third environment information 761 and the state information 762 to the input layer 61 for each of the third learning data sets 76, and includes the third environment information 761 and the state information 762 in the layers 61 to 63 in order from the input side. The firing of each neuron is determined.
- the control unit 11 acquires from the output layer 63 an output value corresponding to a result of deriving the control command from the third environment information 761 and the state information 762.
- the control unit 11 calculates an error between the obtained output value and the control command 763.
- the control unit 11 calculates the weight of the connection between each neuron in the controller 6 and the error of each threshold value of each neuron by using the error of the calculated output value by the error back propagation method.
- the control unit 11 updates the weight of the connection between the neurons in the controller 6 and the threshold value of each neuron based on the calculated errors.
- the control unit 11 repeats the first to fourth steps to input the third environment information 761 and the state information 762 for each of the third learning data sets 76, and output an output value that matches the corresponding control command 763.
- the value of the parameter of the controller 6 is adjusted so as to output.
- the control unit 11 performs the above-described first to fourth steps until the sum of the error between the output value obtained from the output layer 63 and the control command 763 is equal to or smaller than the threshold for each third learning data set 76.
- the adjustment of the parameter values of the controller 6 is repeated.
- the threshold may be appropriately set according to the embodiment.
- the controller 11 is trained to output an output value corresponding to the corresponding control command 763. 6 can be constructed.
- the control unit 11 proceeds to the next step S203.
- Step S203 the control unit 11 operates as the storage processing unit 116, and stores the information on the controller 6 that has been machine-learned in the storage unit 12 as the second learning result data 128.
- the control unit 11 generates, as the second learning result data 128, information indicating the configuration and parameters of the controller 6 constructed by the machine learning in step S202.
- the control unit 11 stores the generated second learning result data 128 in the storage unit 12. Thereby, the control unit 11 ends a series of processing of the machine learning (second mode) of the controller 6 according to the present embodiment.
- the storage destination of the second learning result data 128 is not limited to the storage unit 12, as in the case of the first learning result data 125. Further, the second learning result data 128 may be incorporated into the control device 2 at an arbitrary timing, similarly to the first learning result data 125. Further, the control unit 11 may periodically update the second learning result data 128 by periodically repeating the processing of steps S201 to S203. At the time of this repetition, a change, correction, addition, deletion, or the like of the third learning data set 76 may be appropriately performed. Then, the control unit 11 periodically updates the second learning result data 128 stored in the control device 2 by transferring the updated second learning result data 128 to the control device 2 every time the learning process is performed. You may.
- FIG. 9 is a flowchart illustrating an example of a processing procedure of the control device 2 according to the present embodiment.
- the processing procedure described below is merely an example, and each processing may be changed as much as possible. Further, in the processing procedure described below, steps can be omitted, replaced, and added as appropriate according to the embodiment.
- Step S301 the control unit 21 operates as the data acquisition unit 211, and acquires sensor data obtained by a sensor that monitors an environment in which the task of the industrial robot R executes the task.
- the control unit 21 acquires, as the sensor data, image data 80 obtained by photographing the environment of the industrial robot R with the camera CA via the external interface 24.
- the image data 80 may be moving image data or still image data.
- the control unit 21 acquires the state information 83 on the state of the industrial robot R when executing the task. For example, the control unit 21 may acquire the state information 83 by inquiring of the industrial robot R via the external interface 24 about the current state. The type and format of the status information 83 may be the same as the status information 762. Upon acquiring the image data 80 and the state information 83, the control unit 21 proceeds to the next step S302.
- the route for acquiring the image data 80 and the state information 83 is not limited to such an example, and may be appropriately selected according to the embodiment.
- the camera CA and the industrial robot R may be connected to another computer different from the control device 2.
- the control device 2 may acquire the image data 80 and the state information 83 by receiving the transmission of the image data 80 and the state information 83 from another computer.
- Step S302 the control unit 21 operates as the information extraction unit 212, and extracts the environment information 81 on the environment in which the task is executed from the image data 80 by using the machine-learned extractor 5.
- the control unit 21 refers to the first learning result data 125 and sets the machine-learned extractor 5.
- the control unit 21 inputs the image data 80 to the second portion 52, and performs firing determination of each neuron included in each layer (521 to 523, 531 to 533) in order from the input side. Thereby, the control unit 21 acquires from the third part 53 an output value corresponding to the result of extracting the environment information 81 from the image data 80.
- the control unit 21 proceeds to the next step S303.
- Step S303 the control unit 21 operates as the command determination unit 213, and executes the task to the industrial robot R under the conditions indicated by the environment information 81 and the state information 83 by using the controller 6 that has been machine-learned.
- the control command 85 for causing the control command 85 is determined.
- the control unit 21 refers to the second learning result data 128 and sets the controller 6 that has already undergone the machine learning. Then, the control unit 21 inputs the environment information 81 and the state information 83 to the input layer 61, and performs firing determination of each neuron included in each of the layers 61 to 63 in order from the input side.
- control unit 21 acquires from the output layer 63 an output value corresponding to a result of deriving the control command 85 from the environment information 81 and the state information 83. By obtaining this output value, the control unit 21 determines the control command 85. After determining the control command 85, the control unit 21 proceeds to the next step S304.
- Step S304 the control unit 21 operates as the operation control unit 214, and controls the operation of the industrial robot R based on the determined control command 85.
- the control unit 21 transmits a control signal corresponding to the control command 85 to the industrial robot R via the external interface 24, so that the operation specified by the control command 85 is transmitted to the industrial robot R. Let it run.
- the control unit 21 ends the processing according to the operation example. Thereafter, the control unit 21 may continuously control the operation of the industrial robot R by repeating a series of processes from step S301.
- the control module for controlling the operation of the industrial robot R is divided into two components, the extractor 5 and the controller 6.
- the learning device 1 uses both the simulation data 701 and the real data 731 to perform a common feature (environment information) from both the data (701, 731) by a series of processes in steps S101 to S104.
- the extractor 5 is constructed to perform the extraction. As a result, after absorbing the difference between the simulation data 701 and the real data 731, the result of the first training step using the simulation data 701 in step S 102 and the second training using the real data 731 in step S 104 Can be reflected in the steps.
- a machine-learned extractor 5 capable of accurately extracting environmental information from sensor data obtained in the environment can be constructed.
- ⁇ ⁇ features (environmental information) extracted from the sensor data can be obtained by simulation in the same manner as in a real environment. Therefore, in steps S201 and S202, even if a simulator is used without using the actual machine of the industrial robot R, machine learning using the obtained third learning data set 76 can be performed in a real environment using machine learning.
- the controller 6 can be constructed. Therefore, according to the present embodiment, the simulation data 701 is adopted as at least a part (preferably, most) of the learning data by separating the control module into the two components of the extractor 5 and the controller 6. This makes it possible to reduce the cost of collecting learning data used for machine learning. Furthermore, a control module operable in a real environment can be configured by the extractor 5 and the controller 6 constructed by the machine learning.
- control device 2 it is possible to operate in a real environment by the machine learning while reducing the cost of collecting learning data used for the machine learning for causing the control module to acquire the ability to control the industrial robot R.
- a simple control module can be constructed.
- the control device 2 according to the present embodiment appropriately controls the operation of the industrial robot R in a real environment by executing the processes of steps S301 to S304 using the control module constructed as described above. can do.
- step S101 the simulation data 701 generated while randomly changing the simulation conditions may be acquired.
- step S102 by performing machine learning using each of the first learning data sets 70 including the simulation data 701, it is possible to construct the extractor 5 that is robust to environmental changes.
- the learning device 1 adjusts the value of the parameter of the second part 52 in step S104 while keeping the value of the parameter of the third part 53 fixed. Thereby, while the difference between the simulation data 701 and the real data 731 is absorbed by the input-side configuration (the first part 51 and the second part 52), the total number of parameters to be updated in step S104 can be reduced. The amount of calculation required for the learning process can be reduced.
- the configurations of the extractor 5 and the controller 6 are simpler than when the control module is constructed by one learning model. Therefore, it is possible to suppress the calculation costs of the learning processing in steps S102, S104, and S202 and the command determination processing in steps S302 and S303.
- the learning process of the extractor 5 (steps S102 and S104) and the learning process of the controller 6 (step S202) can be individually performed. Therefore, only the extractor 5 can be replaced or re-learned, thereby adapting to an environment change in which the industrial robot R is used. Further, only the controller 6 can be replaced or re-learned, so that it is possible to adapt to the change of the industrial robot R. Therefore, according to the present embodiment, by exchanging either the extractor 5 or the controller 6 instead of exchanging the entire control module, the control device 2 can be adapted to a change in the real environment. Therefore, it is possible to reduce the cost of adapting the control device 2 to changes in the real environment.
- a convolutional neural network is used for the extractor 5, and a multi-layer fully connected neural network is used for the controller 6.
- the structures and types of the neural networks constituting each of the extractor 5 and the controller 6 are not limited to such an example, and may be appropriately selected according to the embodiment.
- a recursive neural network may be used for each of the extractor 5 and the controller 6.
- each learning result data (125, 128) includes information indicating the configuration of the learned neural network.
- the configuration of each of the learning result data (125, 128) is not limited to such an example, and the configuration of each of the learned extractors 5 and the controller 6 can be used as long as the configuration can be used. May be determined as appropriate.
- each learning result data (125, 128) includes information indicating the configuration of the learned neural network. You don't have to.
- steps can be omitted, replaced, and added as appropriate according to the embodiment.
- step S101 is executed before step S102 and step S103 is executed before step S104
- the processing order of steps S101 to S104 may be changed as appropriate.
- step S104 instead of fixing the values of the parameters of the third part 53, the values of the parameters of the second part 52 and the third part 53 may be adjusted as in step S102.
- the process of acquiring the state information 83 in step S301 only needs to be completed before executing the process of step S303.
- the second training step (Step S104) may be executed before the first training step (Step S102).
- the control unit 11 adjusts the value of the parameter of the second part 52 by executing the second training step (Step S104).
- the values of the parameters of the third part 53 may remain fixed as in the above embodiment, or may be adjusted together with the second part 52.
- the control unit 11 copies the adjusted value of each parameter of the second part 52 to a corresponding parameter of the first part 51.
- the control unit 11 adjusts the value of the parameter of the first part 51 by executing the first training step (Step S102).
- the values of the parameters of the third part 53 may be adjusted together with the first part 51 as in the above embodiment, or may remain fixed.
- control unit 11 copies the adjusted value of each parameter of the first part 51 to a corresponding parameter of the second part 52. Thereby, the result of the machine learning using the simulation data 701 can be reflected in the machine learning using the real data 731.
- the output of the extractor 5 directly corresponds to the environment information
- the output of the controller 6 directly corresponds to the control command.
- the output format of the extractor 5 and the controller 6 need not be limited to such an example.
- the environment information may be derived by executing some information processing on the output value of the extractor 5.
- a control command may be derived by executing some information processing on the output value of the controller 6.
- each piece of environment information (702, 732, 761) corresponds to the output of the last layer (convolution layer 533) of the neural network.
- the format of each environment information (702, 732, 761) does not have to be limited to such an example.
- the learning device 1 adjusts the value of the parameter of the second part 52 in step S104 while keeping the value of the parameter of the third part 53 fixed. As a result, while the difference between the simulation data 701 and the real data 731 is absorbed by the input-side configuration (the first part 51 and the second part 52), the outputs of the first part 51 and the second part 52 share a common feature space.
- a neural network can be constructed so that it is mapped to Therefore, in this neural network, a feature output from an intermediate layer that constructs a common feature space may be used as each piece of environment information (702, 732, 761).
- a feature output from an intermediate layer that constructs a common feature space may be used as each piece of environment information (702, 732, 761).
- at least the third environment information 761 of each of the environment information (702, 732, 761) may be represented by a feature amount output from an intermediate layer of the neural network.
- FIGS. 10 and 11 show an example of a modified example in which environmental information is represented by a feature amount output from an intermediate layer of a neural network.
- FIG. 10 schematically illustrates an example of a process of deriving the third environment information 761A in the learning device 1 according to the present modification.
- FIG. 11 schematically illustrates an example of a process of deriving the environment information 81A in the control device 2 according to the present modification. 10 and 11 are the same as the above-described embodiment except that the third environment information 761A and the environment information 81A correspond to the output of the fully connected layer 531 of the third portion 53.
- the learning device 1 includes a plurality of third learning data sets 76A each configured by a combination of the third environment information 761A, the state information 762, and the control command 763 in the step S201.
- the simulation data 78 is input to the first portion 51, and the firing of each neuron included in each layer (511 to 513, 531) is determined sequentially from the input side. As a result, the output value output from the fully connected layer 531 is obtained as the third environment information 761A.
- the control unit 11 performs machine learning of the controller 6A using the plurality of third learning data sets 76A acquired in this manner.
- the configuration of the controller 6A is the same as that of the controller 6 according to the above embodiment.
- the control unit 11 stores information indicating the configuration and parameters of the controller 6A that has undergone machine learning in the storage unit 12 as second learning result data 128A.
- the control device 2 uses the machine-learned controller 6A constructed in this manner.
- the control unit 21 inputs the image data 80 to the second part 52, and determines firing of each neuron included in each layer (521 to 523, 531) in order from the input side. Thereby, the control unit 21 acquires the output value output from the all-coupling layer 531 as the environment information 81A.
- the control unit 21 refers to the second learning result data 128A and sets the controller 6A that has already undergone machine learning.
- the control unit 21 inputs the environment information 81A and the state information 83 to the input layer 61, and determines firing of each neuron included in each of the layers 61 to 63 in order from the input side. Thereby, the control unit 21 acquires from the output layer 63 an output value corresponding to a result of deriving the control command 85 from the environment information 81A and the state information 83.
- the control unit 21 acquires from the output layer 63 an output value corresponding to a result of deriving the control command 85 from the environment information 81A and the state information 83.
- the camera CA is used as a sensor for monitoring the environment of the industrial robot R.
- the sensor for monitoring the environment of the industrial robot R may not be limited to such an example.
- the sensor may be configured by, for example, a camera, a pressure sensor, a load cell, and a combination thereof.
- the simulation data 701 and the actual data 731 may be appropriately acquired according to the sensor used.
- the industrial robot R is illustrated as the robot device to be controlled.
- the type of the controlled robot device is not limited to such an example as long as the device has at least one drive unit configured to be automatically driven. May be appropriately selected depending on the form.
- the robot apparatus in addition to the industrial robot R, for example, an autonomous robot, a moving body (for example, a flying body such as a drone, a vehicle such as an automobile) configured to execute an automatic driving operation, and the like are employed. Good.
- the type of the sensor is not particularly limited as long as it is a device capable of monitoring (or sensing) the environment for executing the task of the robot device, and may be appropriately selected according to the embodiment.
- a camera for example, a camera, a LIDAR sensor, a thermosensor, a pressure sensor, a load cell, or the like may be employed as the sensor.
- the type of sensor data (simulation data, real data) may be appropriately selected according to the type of sensor.
- the sensor data may be, for example, image (for example, an RGB image, a depth image, etc.) data, measurement data by a LIDAR sensor, thermo data, pressure data, and the like.
- FIG. 12 shows an example in which an autonomous robot RB is used as a robot device as another example of the scene to which the present invention is applied.
- the autonomous robot RB is configured to operate autonomously.
- the autonomous robot RB may be configured to cook, for example.
- the learning device 1B according to the present modification is a computer configured to construct an extractor and a controller for controlling the operation of the autonomous robot RB by machine learning.
- the control device 2B according to the present modified example is a computer configured to control the operation of the autonomous robot RB using the extractor and the controller constructed by the learning device 1B.
- the learning device 1B according to the present modification may be configured in the same manner as the learning device 1 according to the embodiment, except that the types of sensors to be handled and the types of information may be different.
- the configuration may be the same as that of the control device 2 according to the embodiment.
- the sensor that monitors the environment of the autonomous robot RB may be configured by, for example, a camera, a thermosensor, a microphone, and a combination thereof.
- Each piece of environment information may include at least one of segmentation information and information on an attribute of an object related to execution of a task.
- an object related to the execution of the task is, for example, a food material, a cooking utensil, or the like.
- the target object may include not only a simple object but also a person.
- the state information may include, for example, the position, orientation, angle, acceleration, and the like of the drive unit of the autonomous robot RB.
- the control command may define at least one of the driving amount, output sound, and screen display of the autonomous robot RB.
- a control module for controlling the operation of the autonomous robot RB can be constructed.
- the autonomous robot RB includes a corresponding output device (for example, a speaker or a display).
- FIG. 13 shows, as an example of another scene to which the present invention is applied, an example in which a vehicle RC configured to execute an automatic driving operation is employed as a robot device.
- the vehicle RC is an example of the position of the moving object.
- the vehicle RC has a general vehicle configuration such as an accelerator, a brake, a steering wheel, a light, and a horn.
- the learning device 1C according to the present modification is a computer configured to construct an extractor and a controller for controlling the operation of the vehicle RC by machine learning.
- the control device 2C according to the present modified example is a computer configured to control the operation of the vehicle RC using the extractor and the controller constructed by the learning device 1C.
- the learning device 1C according to the present modification may be configured in the same manner as the learning device 1 according to the above-described embodiment, except that sensors to be handled and types of information may be different.
- the configuration may be the same as that of the control device 2 according to the embodiment.
- the sensor that monitors the environment of the vehicle RC may be configured by, for example, a camera, a LIDAR (rider) sensor, and a combination thereof.
- Each of the environmental information may include, for example, at least one of information on a path along which the moving body travels and information on an object existing in the traveling direction of the moving body.
- the path along which the moving body travels is a road on which the vehicle RC can travel.
- An object existing in the traveling direction of the moving object is, for example, a traffic light, an obstacle (a person, an object), or the like.
- the state information may include, for example, information on the moving state of the moving object.
- the state information may include, for example, the current amount of the accelerator of the vehicle RC, the current amount of the brake, the current steering angle of the steering wheel, whether or not the light is on, whether or not the horn is used, and the like.
- the control command may specify, for example, at least one of the accelerator amount, the brake amount, the steering angle of the steering wheel, the lighting of the light, and the use of the horn of the vehicle RC.
- a control module for controlling the operation of the vehicle RC can be constructed.
- first part 511: convolution layer, 512: pooling layer, 513 ... all bonding layers, 52 ... second part, 521: Convolutional layer, 522: Pooling layer, 523: all bonding layers, 53 ... third part, 531: all connection layers, 532: up-sampling layers, 533: Convolutional layer, 6 ... Controller, 61 ... input layer, 62 ... middle (hidden) layer, 63 ... output layer, 70 first learning data set, 701: simulation data (training data) 702: first environmental information (correct answer data) 73 ... second learning data set 731 actual data (training data) 732: second environmental information (correct answer data) 76... The third training data set 761...
- Third environmental information (training data) 762 state information (training data) 763 ... control command (correct data) 80 ... image data (sensor data) 81... Environmental information, 83: status information, 85: control command, 91/92 ... storage medium, CA: Camera, R: Industrial robot (robot device)
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Manufacturing & Machinery (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Quality & Reliability (AREA)
- Automation & Control Theory (AREA)
- Medical Informatics (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
- Feedback Control In General (AREA)
Abstract
ロボット装置を制御する能力を制御モジュールに習得させるための機械学習に利用する学習データを収集するコストを低減しつつ、その機械学習により実環境で運用可能な制御モジュールを構築する。本発明の一側面に係る学習装置は、シミュレーションデータ及び第1環境情報の組み合わせにより構成された第1学習データセット、並びに実データ及び第2環境情報の組み合わせにより構成された第2学習データセットを利用して、抽出器の機械学習を実施する。また、本発明の一側面に係る学習装置は、第3環境情報及び状態情報並びに制御コマンドの組み合わせにより構成された第3学習データセットを利用して、制御器の機械学習を実施する。
Description
本発明は、学習装置、制御装置、学習方法、及び学習プログラムに関する。
近年、製品を製造する生産ラインでは、カメラ等のセンサから得られたセンサデータを利用して、ロボットハンド等の産業用ロボットの動作を制御する技術が開発されている。例えば、特許文献1では、プリント板組立作業の行われる環境状態を表す状態変数及び基板に実装される電子部品の配置の適否の判定結果を利用して、産業機械に供給される指令値に対する補正値と基板の基準形状からの変形量とを関連付けて学習する機械学習装置が提案されている。
本件発明者らは、特許文献1のような機械学習を利用して、生産ラインにおける産業用ロボットを制御するための制御モジュールを構築する場合に、次のような問題があることを見出した。機械学習を実施するためには、産業用ロボットの実機を用いて、学習データを収集することになる。例えば、センサにより得られたセンサデータから制御コマンドを導出する能力を習得するための機械学習を実施することを想定する。この場合、実機から得られたセンサデータ及び実機の状態を示す状態情報とその状況下で実機に実行させる制御コマンドとの組み合わせにより構成された学習データセットを収集することになる。各学習データセットのうち、センサデータ及び状態情報は訓練データ(入力データ)として利用され、制御コマンドは正解データ(教師データ)として利用される。この学習データセットを利用した機械学習により、センサデータ及び状態情報が与えられると、与えられたセンサデータ及び状態情報により示される状況に適切な制御コマンドを決定する能力を習得した制御モジュールを構築することができる。しかしながら、実機を利用して十分な件数の学習データセットを収集するには、時間及び労力のコストがかかってしまう。加えて、学習データセットを収集する過程で、実機が破損してしまう等のリスクが生じてしまう。
そこで、本件発明者らは、このような問題点を解決するために、シミュレータを利用して、学習データを収集することを検討した。シミュレータを利用すれば、学習データを収集する作業の大部分を自動化することができるため、学習データを収集するのにかかるコストを抑えることができる。加えて、実機を利用しなくてもよいため、上記リスクを解消することができる。
しかしながら、本件発明者らは、このような方法では、次のような問題点が生じることを見出した。すなわち、シミュレータにより得られるデータと実機により得られるデータとの間には乖離がある。そのため、シミュレータにより得られた学習データを利用して、制御モジュールの機械学習を実施しても、実環境で運用可能な制御モジュールを構築するのは困難である。加えて、そのデータの乖離の影響により、シミュレータにより得られた学習データを利用して構築された制御モジュールに対して、実機により得られた学習データを利用した追加学習を実施することは困難である。そのため、当該制御モジュールを実環境で運用可能に修正することも困難である。
なお、このような問題点は、産業用ロボットの制御モジュールを機械学習により構築する場面だけではなく、産業用ロボット以外のロボット装置の制御モジュールを機械学習により構築するあらゆる場面で生じ得る。例えば、自律的に動作可能に構成された自律型ロボット、又は自動運転動作を実行可能に構成された移動体の制御モジュールを機械学習により構築する場合に、実機を利用して学習データを収集すると、時間及び労力のコストがかかり、かつ実機破損等のリスクが生じてしまう。一方で、シミュレータを利用した場合には、実環境で運用可能な制御モジュールを構築するのは困難である。
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、ロボット装置を制御する能力を制御モジュールに習得させるための機械学習に利用する学習データを収集するコストを低減しつつ、その機械学習により実環境で運用可能な制御モジュールを構築するための技術を提供することである。
本発明は、上述した課題を解決するために、以下の構成を採用する。
すなわち、本発明の一側面に係る学習装置は、ロボット装置のタスクを実行する環境を監視するセンサをシミュレートすることで生成されたシミュレーションデータ、及び前記シミュレーションデータに表れる前記タスクを実行する環境に関する第1環境情報の組み合わせによりそれぞれ構成された複数の第1学習データセットを取得する第1データ取得部と、前記センサから得られた実データ、及び前記実データに表れる前記タスクを実行する環境に関する第2環境情報の組み合わせによりそれぞれ構成された複数の第2学習データセットを取得する第2データ取得部と、前記タスクを実行する環境に関する第3環境情報及び前記タスクを実行する際の前記ロボット装置の状態に関する状態情報、並びに前記第3環境情報及び前記状態情報により示される条件下で前記タスクを前記ロボット装置に実行させるための制御コマンドの組み合わせによりそれぞれ構成された複数の第3学習データセットを取得する第3データ取得部と、前記第1学習データセット及び前記第2学習データセットを利用して、抽出器の機械学習を実施する第1学習処理部と、前記第3学習データセットを利用して、制御器の機械学習を実施する第2学習処理部と、を備え、前記抽出器の機械学習を実施することは、前記各第1学習データセットについて、前記シミュレーションデータから、対応する前記第1環境情報と一致する環境情報を抽出するように前記抽出器を訓練する第1訓練ステップと、前記第1訓練ステップを実行した後、前記各第2学習データセットについて、前記実データから、対応する前記第2環境情報と一致する環境情報を抽出するように前記抽出器を訓練する第2訓練ステップと、を含み、前記制御器の機械学習を実施することは、前記第3環境情報及び前記状態情報が入力されると、対応する前記制御コマンドと一致する制御コマンドを出力するように前記制御器を訓練する訓練ステップを含む。
上記構成では、ロボット装置を制御するための一連の処理を実行する制御モジュールが抽出器及び制御器の2つの構成要素に分かれている。抽出器は、機械学習により、センサデータ(シミュレーションデータ又は実データ)から環境情報を抽出するように訓練される。一方、制御器は、機械学習により、環境情報及び状態情報から制御コマンドを導出するように訓練される。これにより、制御モジュールは、センサデータから制御コマンドを直接的に導出するのではなく、センサデータを特徴量(環境情報)に一度変換し、得られた特徴量(環境情報)から制御コマンドを導出するように構成される。
これらの構成要素のうち抽出器の機械学習では、シミュレーションデータ及び実データの両方を利用することで、抽出器は、両データから共通の特徴を抽出するように構築される。つまり、抽出器は、シミュレーションデータ及び実データの両データを共通の特徴空間に写像するように構築される。これにより、シミュレーションデータと実データとの間の乖離を吸収した上で、シミュレーションデータを利用した機械学習の成果を、実データを利用した機械学習に反映させることができる。そのため、機械学習に利用するシミュレーションデータの件数が十分であれば、機械学習に利用する実データの件数が少なくても、実環境で得られるセンサデータから対象の特徴を精度よく抽出可能な抽出器を構築することができる。
加えて、センサデータから抽出される特徴(環境情報)は、シミュレーションにより実環境と同様に得ることが可能である。そのため、実機を用いずに、シミュレータを用いても、得られた学習データを利用した機械学習により、実環境で運用可能な制御器を構築することができる。したがって、上記構成によれば、抽出器及び制御器の2つの構成要素に制御モジュールを分離することにより、学習データの少なくとも一部に(好ましくは、大部分で)シミュレーションデータを採用することができるようになるため、機械学習に利用する学習データを収集するのにかかるコストを低減することができる。更に、この機械学習により構築された抽出器及び制御器により、実環境で運用可能な制御モジュールを構成することができる。よって、上記構成によれば、ロボット装置を制御する能力を制御モジュールに習得させるための機械学習に利用する学習データを収集するコストを低減しつつ、その機械学習により実環境で運用可能な制御モジュールを構築することができる。
なお、ロボット装置は、自動的に駆動可能に構成された少なくとも1つの駆動部を有している装置であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。ロボット装置は、例えば、生産ラインに配置される産業用ロボット(例えば、ロボットハンド、ベルトコンベア等)、自律型ロボット、自動運転動作を実行可能に構成された移動体(例えば、ドローン等の飛行体、自動車等の車両)等であってよい。タスクは、ロボット装置の種類に応じて適宜選択されてよい。ロボット装置がロボットハンドである場合、タスクは、例えば、ワークの把持、把持したワークの解放等であってよい。
センサは、ロボット装置のタスクを実行する環境をモニタリング(又はセンシング)可能な装置であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。センサは、例えば、カメラ、LIDAR(Light Detection and Ranging)センサ、サーモセンサ、圧力センサ、ロードセル等であってよい。センサデータ(シミュレーションデータ、実データ)の種類は、センサの種類に応じて適宜選択されてよい。センサデータは、例えば、画像(例えば、RGB画像、深度画像等)データ、LIDARセンサによる測定データ、サーモデータ、圧力データ等であってよい。
各環境情報は、タスクを実行する環境に関するものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各環境情報は、例えば、セグメンテーション情報、ワークの属性(位置、寸法、姿勢、温度等)、ワークを解放する位置、障害物の属性(位置、寸法、姿勢、種類等)等であってよい。また、各環境情報は、ニューラルネットワークの中間層により出力される特徴量の形式で表現されてもよい。状態情報は、タスクの実行に関連するロボット装置の状態を示し得るものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。ロボット装置が産業用ロボットである場合、状態情報は、例えば、産業用ロボットの駆動部の位置、向き、角度、加速度等を含んでよい。
制御コマンドは、ロボット装置の動作の指示に関するものであれば、その種類及び形式は、特に限定されなくてもよく、ロボット装置の種類に応じて適宜選択されてよい。ロボット装置が産業用ロボットである場合、制御コマンドは、例えば、産業用ロボットの駆動量等を規定してよい。ロボット装置が自律型ロボットである場合、制御コマンドは、例えば、出力音声、各関節の駆動量、画面表示等を規定してよい。ロボット装置が自動運転動作を実行可能に構成された車両である場合、制御コマンドは、例えば、アクセル量、ブレーキ量、ハンドル操舵角、ライトの点灯、クラクションの使用等を規定してよい。
抽出器及び制御器は、機械学習を実施可能な学習モデルによって構成される。抽出器及び制御器それぞれを構成する学習モデルには、例えば、ニューラルネットワークが用いられてよい。上記構成に係る機械学習において、シミュレーションデータ、実データ、第3環境情報、及び状態情報は、入力データ(訓練データ)として利用され、第1環境情報、第2環境情報、及び制御コマンドは、正解データ(教師データ)として利用される。機械学習における「一致する」は、学習モデル(抽出器、制御器)の出力値と正解データとの誤差(評価関数、誤差関数、損失関数)が閾値以下になることに対応する。センサのシミュレートは、シミュレータ上で実行される。シミュレータは、ロボット装置のタスクを実行する環境をシミュレート可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。シミュレータは、例えば、ロボット装置、ワーク等のオブジェクトを仮想空間上に配置でき、仮想空間上でロボット装置にタスクの実行を模擬させることができるソフトウェアである。
上記一側面に係る学習装置において、前記各第1学習データセットの前記シミュレーションデータは、前記センサをシミュレートする条件をランダムに変更しながら生成されてよい。当該構成によれば、ロボット装置を制御する能力を制御モジュールに習得させるための機械学習に利用する学習データを収集するコストを低減しつつ、その機械学習により実環境で運用可能な制御モジュールを適切に構築することができる。なお、対象となるシミュレーションの条件は、特に限定されなくてもよく、シミュレートするセンサの種類に応じて適宜選択されてよい。シミュレートするセンサがカメラである場合、シミュレーションの条件は、例えば、カメラ位置、各領域に貼り付けるテクスチャの種類等であってよい。
上記一側面に係る学習装置において、前記抽出器は、ニューラルネットワークにより構成されてよく、前記ニューラルネットワークは、第1部分、第2部分、及び第3部分に分かれていてよく、前記第1部分及び前記第2部分は、前記ニューラルネットワークの入力側に並列に配置され、同じ構造を有することにより共通のパラメータを有していてよく、前記第1部分は、前記シミュレーションデータの入力を受け付けるように構成されてよく、前記第2部分は、前記実データの入力を受け付けるように構成されてよく、前記第3部分は、前記ニューラルネットワークの出力側に配置され、前記第1部分及び前記第2部分それぞれの出力を受け付けるように構成されてよく、前記第1訓練ステップでは、前記第1学習処理部は、前記各第1学習データセットについて、前記シミュレーションデータを前記第1部分に入力すると、対応する前記第1環境情報と一致する出力値が前記第3部分から出力されるように、前記第1部分及び前記第3部分それぞれのパラメータの値を調整してよく、前記第1訓練ステップを実行した後、前記第2訓練ステップを実行する前に、前記第1学習処理部は、前記第1部分のパラメータの調整した値を前記第2部分のパラメータに複製してもよい。当該構成によれば、ロボット装置を制御する能力を制御モジュールに習得させるための機械学習に利用する学習データを収集するコストを低減しつつ、その機械学習により実環境で運用可能な制御モジュールを適切に構築することができる。
上記一側面に係る学習装置において、前記第2訓練ステップでは、前記第1学習処理部は、前記第3部分のパラメータの値は固定のまま、前記各第2学習データセットについて、前記実データを前記第2部分に入力すると、対応する前記第2環境情報と一致する出力値が前記第3部分から出力されるように、前記第2部分のパラメータの値を調整してもよい。当該構成によれば、ロボット装置を制御する能力を制御モジュールに習得させるための機械学習に利用する学習データを収集するコストを低減しつつ、その機械学習により実環境で運用可能な制御モジュールを適切に構築することができる。
上記一側面に係る学習装置において、前記第3環境情報は、前記機械学習が完了した後の前記抽出器を利用して、前記センサをシミュレートすることで生成された他のシミュレーションデータから抽出することで得られてよい。当該構成によれば、ロボット装置を制御する能力を制御モジュールに習得させるための機械学習に利用する学習データを収集するコストを低減しつつ、その機械学習により実環境で運用可能な制御モジュールを適切に構築することができる。
上記一側面に係る学習装置において、前記ロボット装置は、生産ラインにおける産業用ロボットであってよく、前記センサは、カメラ、圧力センサ、ロードセル及びこれらの組み合わせにより構成されてよく、前記各環境情報は、セグメンテーション情報、前記タスクの対象となるワークの属性に関する情報、前記タスクを実行する位置に関する情報、障害物の有無を示す情報、及び障害物の属性に関する情報の少なくともいずれかを含んでよく、前記制御コマンドは、前記産業用ロボットの駆動量を規定してもよい。当該構成によれば、産業用ロボットの動作を制御するための制御モジュールを構築することができる。
上記一側面に係る学習装置において、前記ロボット装置は、自律的に動作可能に構成された自律型ロボットであってよく、前記センサは、カメラ、サーモセンサ、マイクロフォン及びこれらの組み合わせにより構成されてよく、前記各環境情報は、セグメンテーション情報及び前記タスクの実行に関連する対象物の属性に関する情報の少なくともいずれかを含んでよく、前記制御コマンドは、前記自律型ロボットの駆動量、出力音声及び画面表示の少なくともいずれかを規定してもよい。当該構成によれば、自律型ロボットの動作を制御するための制御モジュールを構築することができる。なお、対象物は、単なる物だけではなく、人物を含んでもよい。
上記一側面に係る学習装置において、前記ロボット装置は、自動運転動作を実行可能に構成された移動体であってよく、前記センサは、カメラ、ライダセンサ及びこれらの組み合わせにより構成されてよく、前記各環境情報は、前記移動体の進行する通路に関する情報及び前記移動体の進行方向に存在する対象物に関する情報の少なくともいずれかを含んでよく、前記制御コマンドは、前記車両のアクセル量、ブレーキ量、ハンドルの操舵角、ライトの点灯及びクラクションの使用の少なくともいずれかを規定してもよい。当該構成によれば、移動体の動作を制御するための制御モジュールを構築することができる。
また、本発明の一側面に係る制御装置は、ロボット装置の動作を制御する制御装置であって、前記ロボット装置のタスクを実行する環境を監視するセンサにより得られたセンサデータ、及び前記タスクを実行する際の前記ロボット装置の状態に関する状態情報を取得するデータ取得部と、上記いずれかの形態に係る学習装置により構築された機械学習済みの前記抽出器を利用して、前記タスクを実行する環境に関する環境情報を前記センサデータから抽出する情報抽出部と、前記学習装置により構築された機械学習済みの前記制御器を利用して、前記環境情報及び前記状態情報により示される条件下で前記タスクを前記ロボット装置に実行させるための制御コマンドを決定するコマンド決定部と、決定された前記制御コマンドに基づいて、前記ロボット装置の動作を制御する動作制御部と、を備える。当該構成によれば、実環境下でロボット装置の動作を適切に制御可能な制御装置を提供することができる。
上記各形態に係る学習装置及び制御装置それぞれの別の態様として、本発明の一側面は、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータ等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。また、本発明の一側面に係る制御システムは、上記いずれかの形態に係る学習装置及び制御装置により構成されてもよい。
例えば、本発明の一側面に係る学習方法は、コンピュータが、ロボット装置のタスクを実行する環境を監視するセンサをシミュレートすることで生成されたシミュレーションデータ、及び前記シミュレーションデータに表れる前記タスクを実行する環境に関する第1環境情報の組み合わせによりそれぞれ構成された複数の第1学習データセットを取得するステップと、前記センサから得られた実データ、及び前記実データに表れる前記タスクを実行する環境に関する第2環境情報の組み合わせによりそれぞれ構成された複数の第2学習データセットを取得するステップと、前記タスクを実行する環境に関する第3環境情報及び前記タスクを実行する際の前記ロボット装置の状態に関する状態情報、並びに前記第3環境情報及び前記状態情報により示される条件下で前記タスクを前記ロボット装置に実行させるための制御コマンドの組み合わせによりそれぞれ構成された複数の第3学習データセットを取得するステップと、前記第1学習データセット及び前記第2学習データセットを利用して、抽出器の機械学習を実施するステップと、前記第3学習データセットを利用して、制御器の機械学習を実施するステップ、を実行し、前記抽出器の機械学習を実施するステップは、前記各第1学習データセットについて、前記シミュレーションデータから、対応する前記第1環境情報と一致する環境情報を抽出するように前記抽出器を訓練する第1訓練ステップと、前記第1訓練ステップを実行した後、前記各第2学習データセットについて、前記実データから、対応する前記第2環境情報と一致する環境情報を抽出するように前記抽出器を訓練する第2訓練ステップと、を含み、前記制御器の機械学習を実施するステップは、前記第3環境情報及び前記状態情報が入力されると、対応する前記制御コマンドと一致する制御コマンドを出力するように前記制御器を訓練する訓練ステップを含む、情報処理方法である。
また、例えば、本発明の一側面に係る学習プログラムは、コンピュータに、ロボット装置のタスクを実行する環境を監視するセンサをシミュレートすることで生成されたシミュレーションデータ、及び前記シミュレーションデータに表れる前記タスクを実行する環境に関する第1環境情報の組み合わせによりそれぞれ構成された複数の第1学習データセットを取得するステップと、前記センサから得られた実データ、及び前記実データに表れる前記タスクを実行する環境に関する第2環境情報の組み合わせによりそれぞれ構成された複数の第2学習データセットを取得するステップと、前記タスクを実行する環境に関する第3環境情報及び前記タスクを実行する際の前記ロボット装置の状態に関する状態情報、並びに前記第3環境情報及び前記状態情報により示される条件下で前記タスクを前記ロボット装置に実行させるための制御コマンドの組み合わせによりそれぞれ構成された複数の第3学習データセットを取得するステップと、前記第1学習データセット及び前記第2学習データセットを利用して、抽出器の機械学習を実施するステップと、前記第3学習データセットを利用して、制御器の機械学習を実施するステップ、を実行させるためのプログラムであって、前記抽出器の機械学習を実施するステップは、前記各第1学習データセットについて、前記シミュレーションデータから、対応する前記第1環境情報と一致する環境情報を抽出するように前記抽出器を訓練する第1訓練ステップと、前記第1訓練ステップを実行した後、前記各第2学習データセットについて、前記実データから、対応する前記第2環境情報と一致する環境情報を抽出するように前記抽出器を訓練する第2訓練ステップと、を含み、前記制御器の機械学習を実施するステップは、前記第3環境情報及び前記状態情報が入力されると、対応する前記制御コマンドと一致する制御コマンドを出力するように前記制御器を訓練する訓練ステップを含む、プログラムである。
本発明によれば、ロボット装置を制御する能力を制御モジュールに習得させるための機械学習に利用する学習データを収集するコストを低減しつつ、その機械学習により実環境で運用可能な制御モジュールを構築することができる。
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
§1 適用例
まず、図1を用いて、本発明が適用される場面の一例について説明する。図1は、本実施形態に係る制御システム100の適用場面の一例を模式的に例示する。図1の例では、生産ラインに配置される産業用ロボットR(例えば、ロボットハンド)の動作を制御する場面を想定している。産業用ロボットRは、本発明の「ロボット装置」の一例である。しかしながら、本発明の適用対象は、このような例に限定されなくてもよく、何らかのロボット装置の動作を制御するあらゆる場面に適用可能である。
まず、図1を用いて、本発明が適用される場面の一例について説明する。図1は、本実施形態に係る制御システム100の適用場面の一例を模式的に例示する。図1の例では、生産ラインに配置される産業用ロボットR(例えば、ロボットハンド)の動作を制御する場面を想定している。産業用ロボットRは、本発明の「ロボット装置」の一例である。しかしながら、本発明の適用対象は、このような例に限定されなくてもよく、何らかのロボット装置の動作を制御するあらゆる場面に適用可能である。
図1に示されるとおり、本実施形態に係る制御システム100は、ネットワークを介して互いに接続される学習装置1及び制御装置2を備えており、制御モジュールの機械学習、及び訓練された制御モジュールによる産業用ロボットRの動作の制御を実施可能に構成される。学習装置1及び制御装置2の間のネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
本実施形態に係る学習装置1は、産業用ロボットRの動作を制御するための制御モジュールを機械学習により構築するように構成されたコンピュータである。本実施形態に係る制御モジュールは、抽出器5及び制御器6により構成される。抽出器5は、センサにより得られるセンサデータから環境情報を抽出するように訓練される。制御器6は、環境情報及び状態情報から制御コマンドを導出するように訓練される。
まず、本実施形態に係る学習装置1は、シミュレーションデータ701及び第1環境情報702の組み合わせによりそれぞれ構成された複数の第1学習データセット70を取得する。シミュレーションデータ701は、生産ラインにおける産業用ロボットRのタスクを実行する環境を監視するセンサをシミュレートすることで生成される。第1環境情報702は、シミュレーションデータ701に表れるタスクを実行する環境に関する。
また、本実施形態に係る学習装置1は、実データ731及び第2環境情報732の組み合わせによりそれぞれ構成された複数の第2学習データセット73を取得する。実データ731は、センサから得られる。第2環境情報732は、実データ731に表れるタスクを実行する環境に関する。
図1に示されるとおり、本実施形態では、タスクの実行環境をモニタリング(センシング)するためのセンサの一例として、カメラCAが、産業用ロボットRの可動域を撮影可能な位置に配置されている。そのため、本実施形態に係るシミュレーションデータ701は、シミュレータにより生成した画像データであって、このカメラCAにより得られる撮影画像を模した画像データである。これに対して、本実施形態に係る実データ731は、産業用ロボットRのタスクを実行する環境をカメラCAにより撮影することで得られる画像データ(撮影画像)である。カメラCAは、本発明の「センサ」の一例である。ただし、本実施形態で利用可能なセンサは、カメラに限定されなくてよく、実施の形態に応じて適宜選択されてよい。
更に、本実施形態に係る学習装置1は、第3環境情報761及び状態情報762並びに制御コマンド763の組み合わせによりそれぞれ構成された複数の第3学習データセット76を取得する。第3環境情報761は、産業用ロボットRのタスクを実行する環境に関する。状態情報762は、タスクを実行する際の産業用ロボットRの状態に関する。制御コマンド763は、第3環境情報761及び状態情報762により示される条件下でタスクを産業用ロボットRに実行させるための動作を規定する。
なお、タスクの種類は、特に限定されなくてもよく、ロボット装置の種類に応じて適宜選択されてよい。産業用ロボットRがロボットハンドである場合、タスクは、例えば、ワークの把持、把持したワークの解放等であってよい。各環境情報(702、732、761)は、ロボット装置のタスクを実行する環境に関するものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各環境情報(702、732、761)は、例えば、セグメンテーション情報、タスクの対象となるワークの属性に関する情報、タスクを実行する位置に関する情報、障害物の有無を示す情報、及び障害物の属性に関する情報の少なくともいずれかを含んでよい。状態情報762は、タスクの実行に関連するロボット装置の状態を示し得るものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。状態情報762は、例えば、産業用ロボットRの駆動部(例えば、エンドエフェクタ、関節部等)の位置、向き、角度、加速度等を含んでよい。制御コマンド763は、ロボット装置の動作の指示に関するものであれば、その種類及び形式は、特に限定されなくてもよく、ロボット装置の種類に応じて適宜選択されてよい。制御コマンド763は、例えば、産業用ロボットRの駆動量等を規定してよい。
得られた各学習データセット(70、73、76)は、機械学習により制御モジュールを訓練するための学習データとして利用される。本実施形態に係る学習装置1は、第1学習データセット70及び第2学習データセット73を利用して、抽出器5の機械学習を実施する。具体的には、学習装置1は、第1訓練ステップとして、各第1学習データセット70について、シミュレーションデータ701から、対応する第1環境情報702と一致する環境情報を抽出するように抽出器5を訓練する。シミュレーションデータ701は、この機械学習における訓練データ(入力データ)に対応し、第1環境情報702は、正解データ(教師データ)に対応する。すなわち、学習装置1は、各第1学習データセット70について、シミュレーションデータ701が入力されると、対応する第1環境情報702と一致する出力値(環境情報)を出力するように抽出器5を訓練する。
第1訓練ステップを実行した後、学習装置1は、各第2学習データセット73について、実データ731から、対応する第2環境情報732と一致する環境情報を抽出するように抽出器5を訓練する。実データ731は、この機械学習における訓練データ(入力データ)に対応し、第2環境情報732は、正解データ(教師データ)に対応する。すなわち、学習装置1は、各第2学習データセット73について、実データ731が入力されると、対応する第2環境情報732と一致する出力値(環境情報)を出力するように抽出器5を訓練する。
また、本実施形態に係る学習装置1は、第3学習データセット76を利用して、制御器6の機械学習を実施する。具体的には、学習装置1は、各第3学習データセット76について、第3環境情報761及び状態情報762から対応する制御コマンド763を導出するように制御器6を訓練する。第3環境情報761及び状態情報762は、この機械学習における訓練データ(入力データ)に対応し、制御コマンド763は、正解データ(教師データ)に対応する。すなわち、学習装置1は、各第3学習データセット76について、第3環境情報761及び状態情報762が入力されると、対応する制御コマンド763と一致する出力値(制御コマンド)を出力するように制御器6を訓練する。
なお、抽出器5及び制御器6は、機械学習を実施可能な学習モデルにより構成される。本実施形態では、抽出器5及び制御器6はそれぞれ、後述するニューラルネットにより構成される。抽出器5及び制御器6それぞれを訓練することは、それぞれを構成する学習モデルのパラメータを調節することである。学習モデルのパラメータは、与えられた入力データに対する出力値を得るための演算処理に利用される。学習モデルがニューラルネットワークにより構成される場合、パラメータは、例えば、各ニューロン間の結合の重み、各ニューロンの閾値等である。機械学習における「一致する」は、学習モデルの出力値と正解データとの誤差(評価関数、誤差関数、損失関数)が閾値以下になるように、学習モデルのパラメータを調節することに対応する。
一方、本実施形態に係る制御装置2は、学習装置1により構築された制御モジュールを利用して、産業用ロボットRの動作を制御するように構成されたコンピュータである。具体的には、本実施形態に係る制御装置2は、産業用ロボットRのタスクを実行する環境を監視するセンサにより得られたセンサデータを取得する。本実施形態では、当該センサの一例としてカメラCAが利用されている。そのため、制御装置2は、センサデータの一例として、カメラCAにより得られた画像データ80を取得する。また、本実施形態に係る制御装置2は、タスクを実行する際の産業用ロボットRの状態に関する状態情報83を取得する。
続いて、本実施形態に係る制御装置2は、上記学習装置1により構築された機械学習済みの抽出器5を利用して、タスクを実行する環境に関する環境情報を画像データ80から抽出する。具体的には、制御装置2は、機械学習済みの抽出器5に画像データ80を入力し、当該抽出器5の演算処理を実行することで、環境情報に対応する出力値を当該抽出器5から取得する。
次に、本実施形態に係る制御装置2は、上記学習装置1により構築された機械学習済みの制御器6を利用して、環境情報及び状態情報83により示される条件下でタスクを産業用ロボットRに実行させるための制御コマンド85を決定する。具体的には、制御装置2は、機械学習済みの制御器6に環境情報及び状態情報83を入力し、当該制御器6の演算処理を実行することで、制御コマンド85に対応する出力値を当該制御器6から取得する。そして、本実施形態に係る制御装置2は、決定された制御コマンド85に基づいて、産業用ロボットRの動作を制御する。
以上のとおり、本実施形態では、産業用ロボットRの動作を制御するための制御モジュールが、抽出器5及び制御器6の2つの構成要素に分割されている。これらの構成要素のうち抽出器5の機械学習では、シミュレーションデータ701及び実データ731の両方を利用することで、抽出器5は、両データ(701、731)から共通の特徴(環境情報)を抽出するように構築される。これにより、抽出器5の機械学習の過程において、シミュレーションデータ701と実データ731との間の乖離を吸収した上で、シミュレーションデータ701を利用した第1訓練ステップの成果を、実データ731を利用した第2訓練ステップに反映させることができる。そのため、機械学習に利用するシミュレーションデータ701(第1学習データセット70)の件数が十分であれば、機械学習に利用する実データ731(第2学習データセット73)の件数が少なくても、実環境で得られるセンサデータから環境情報を精度よく抽出可能な機械学習済みの抽出器5を構築することができる。
加えて、センサデータから抽出される特徴(環境情報)は、シミュレーションにより実環境と同様に得ることが可能である。そのため、産業用ロボットRの実機を用いず、シミュレータを用いても、得られた第3学習データセット76を利用した機械学習により、実環境で運用可能な機械学習済みの制御器6を構築することができる。したがって、本実施形態によれば、抽出器5及び制御器6の2つの構成要素に制御モジュールを分離することで、学習データの少なくとも一部に(好ましくは、大部分で)シミュレーションデータ701を採用することができるようになるため、機械学習に利用する学習データを収集するのにかかるコストを低減することができる。更に、この機械学習により構築された抽出器5及び制御器6により、実環境で運用可能な制御モジュールを構成することができる。よって、本実施形態によれば、産業用ロボットRを制御する能力を制御モジュールに習得させるための機械学習に利用する学習データを収集するコストを低減しつつ、その機械学習により実環境で運用可能な制御モジュールを構築することができる。また、本実施形態に係る制御装置2によれば、そのように構築された制御モジュールを利用することで、産業用ロボットRの動作を実環境で適切に制御することができる。
§2 構成例
[ハードウェア構成]
<学習装置>
次に、図2を用いて、本実施形態に係る学習装置1のハードウェア構成の一例について説明する。図2は、本実施形態に係る学習装置1のハードウェア構成の一例を模式的に例示する。
[ハードウェア構成]
<学習装置>
次に、図2を用いて、本実施形態に係る学習装置1のハードウェア構成の一例について説明する。図2は、本実施形態に係る学習装置1のハードウェア構成の一例を模式的に例示する。
図2に示されるとおり、本実施形態に係る学習装置1は、制御部11、記憶部12、通信インタフェース13、入力装置14、出力装置15、及びドライブ16が電気的に接続されたコンピュータである。なお、図2では、通信インタフェースを「通信I/F」と記載している。
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、学習プログラム121、複数の第1学習データセット70、複数の第2学習データセット73、複数の第3学習データセット76、第1学習結果データ125、第2学習結果データ128等の各種情報を記憶する。
学習プログラム121は、学習装置1に、後述する機械学習の情報処理(図7、図8)を実行させ、学習済みの抽出器5及び学習済みの制御器6を構築させるためのプログラムである。学習プログラム121は、この情報処理の一連の命令を含む。複数の第1学習データセット70及び複数の第2学習データセット73は抽出器5の機械学習に利用される。複数の第3学習データセット76は制御器6の機械学習に利用される。第1学習結果データ125は、機械学習により構築された学習済みの抽出器5の設定を行うためのデータである。第2学習結果データ128は、機械学習により構築された学習済みの制御器6の設定を行うためのデータである。第1学習結果データ125及び第2学習結果データ128は、学習プログラム121の実行結果として生成される。詳細は後述する。
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。学習装置1は、この通信インタフェース13を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、制御装置2)と行うことができる。
入力装置14は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置15は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置14及び出力装置15を利用することで、学習装置1を操作することができる。
ドライブ16は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ16の種類は、記憶媒体91の種類に応じて適宜選択されてよい。上記学習プログラム121、複数の第1学習データセット70、複数の第2学習データセット73、及び複数の第3学習データセット76の少なくともいずれかは、この記憶媒体91に記憶されていてもよい。
記憶媒体91は、コンピュータその他装置、機械等が、記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。学習装置1は、この記憶媒体91から、上記学習プログラム121、複数の第1学習データセット70、複数の第2学習データセット73、及び複数の第3学習データセット76の少なくともいずれかを取得してもよい。
ここで、図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
なお、学習装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、入力装置14、出力装置15及びドライブ16の少なくともいずれかは省略されてもよい。学習装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、学習装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、PC(Personal Computer)等であってもよい。
<制御装置>
次に、図3を用いて、本実施形態に係る制御装置2のハードウェア構成の一例について説明する。図3は、本実施形態に係る制御装置2のハードウェア構成の一例を模式的に例示する。
次に、図3を用いて、本実施形態に係る制御装置2のハードウェア構成の一例について説明する。図3は、本実施形態に係る制御装置2のハードウェア構成の一例を模式的に例示する。
図3に示されるとおり、本実施形態に係る制御装置2は、制御部21、記憶部22、通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27が電気的に接続されたコンピュータである。なお、図3では、通信インタフェース及び外部インタフェースをそれぞれ「通信I/F」及び「外部I/F」と記載している。
制御装置2の制御部21~通信インタフェース23及び入力装置25~ドライブ27はそれぞれ、上記学習装置1の制御部11~ドライブ16それぞれと同様に構成されてよい。すなわち、制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部22は、制御プログラム221、第1学習結果データ125、第2学習結果データ128等の各種情報を記憶する。
制御プログラム221は、学習済みの抽出器5及び学習済みの制御器6を利用して、産業用ロボットRの動作を制御する後述の情報処理(図9)を制御装置2に実行させるためのプログラムである。制御プログラム221は、この情報処理の一連の命令を含む。第1学習結果データ125及び第2学習結果データ128は、この情報処理の際に、学習済みの抽出器5及び学習済みの制御器6を設定するのに利用される。詳細は後述する。
通信インタフェース23は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。制御装置2は、この通信インタフェース23を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、学習装置1)と行うことができる。
外部インタフェース24は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース24の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、制御装置2は、外部インタフェース24を介して、産業用ロボットR及びカメラCAに接続される。
産業用ロボットRの種類及び構成は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。産業用ロボットRは、例えば、ロボットハンド、ベルトコンベア等を含んでもよい。制御装置2は、外部インタフェース24を介して、制御コマンドに基づく制御信号を産業用ロボットRに送信することで、産業用ロボットRの動作を制御する。産業用ロボットRの制御方法は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。産業用ロボットRは、制御装置2により直接的に制御されてもよい。或いは、産業用ロボットRは、コントローラ(不図示)を内蔵してもよい。この場合、コントローラは、制御装置2から受信した制御信号、プログラムの処理等に基づいて、産業用ロボットRの動作を制御するように適宜構成されてよい。
カメラCAは、産業用ロボットRのタスクを実行する環境を監視するように適宜配置される。このカメラCAの種類は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。カメラCAには、例えば、デジタルカメラ、ビデオカメラ等の公知のカメラが利用されてよい。制御装置2は、外部インタフェース24を介して、カメラCAから画像データを取得することができる。画像データは、本発明の「センサデータ」の一例である。なお、産業用ロボットR及びカメラCAが通信インタフェースを備える場合、制御装置2は、外部インタフェース24ではなく、通信インタフェース23を介して、産業用ロボットR及びカメラCAに接続されてもよい。
入力装置25は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置26は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置25及び出力装置26を利用することで、制御装置2を操作することができる。
ドライブ27は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体92に記憶されたプログラムを読み込むためのドライブ装置である。上記制御プログラム221、第1学習結果データ125及び第2学習結果データ128のうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、制御装置2は、記憶媒体92から、上記制御プログラム221、第1学習結果データ125及び第2学習結果データ128のうちの少なくともいずれかを取得してもよい。
なお、制御装置2の具体的なハードウェア構成に関して、上記学習装置1と同様に、実施の形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、外部インタフェース24、入力装置25、出力装置26及びドライブ27の少なくともいずれかは省略されてもよい。制御装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、制御装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のデスクトップPC、ノートPC、タブレットPC等が用いられてよい。
[ソフトウェア構成]
次に、図4を用いて、本実施形態に係る学習装置1のソフトウェア構成の一例について説明する。図4は、本実施形態に係る学習装置1のソフトウェア構成の一例を模式的に例示する。
次に、図4を用いて、本実施形態に係る学習装置1のソフトウェア構成の一例について説明する。図4は、本実施形態に係る学習装置1のソフトウェア構成の一例を模式的に例示する。
学習装置1の制御部11は、記憶部12に記憶された学習プログラム121をRAMに展開する。そして、制御部11は、RAMに展開された学習プログラム121をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図4に示されるとおり、本実施形態に係る学習装置1は、第1データ取得部111、第2データ取得部112、第3データ取得部113、第1学習処理部114、第2学習処理部115、及び保存処理部116をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、学習装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
第1データ取得部111は、産業用ロボットRのタスクを実行する環境を監視するセンサをシミュレートすることで生成されたシミュレーションデータ701、及びシミュレーションデータ701に表れるタスクを実行する環境に関する第1環境情報702の組み合わせによりそれぞれ構成された複数の第1学習データセット70を取得する。第2データ取得部112は、センサから得られた実データ731、及び実データ731に表れるタスクを実行する環境に関する第2環境情報732の組み合わせによりそれぞれ構成された複数の第2学習データセット73を取得する。第3データ取得部113は、タスクを実行する環境に関する第3環境情報761及びタスクを実行する際の産業用ロボットRの状態に関する状態情報762、並びに第3環境情報761及び状態情報762により示される条件下でタスクを産業用ロボットRに実行させるための制御コマンド763の組み合わせによりそれぞれ構成された複数の第3学習データセット76を取得する。
第1学習処理部114は、機械学習を実施する前の抽出器5を保持する。第1学習処理部114は、第1学習データセット70及び第2学習データセット73を利用して、抽出器5の機械学習を実施する。具体的に、第1学習処理部114は、第1訓練ステップとして、各第1学習データセット70について、シミュレーションデータ701から、対応する第1環境情報702と一致する環境情報を抽出するように抽出器5を訓練する。第1訓練ステップを実行した後、第1学習処理部114は、第2訓練ステップとして、各第2学習データセット73について、実データ731から、対応する第2環境情報732と一致する環境情報を抽出するように抽出器5を訓練する。保存処理部116は、構築された学習済みの抽出器5に関する情報を第1学習結果データ125として記憶部12に保存する。
第2学習処理部115は、機械学習を実施する前の制御器6を保持する。第2学習処理部115は、第3学習データセット76を利用して、制御器6の機械学習を実施する。具体的に、第2学習処理部115は、各第3学習データセット76について、第3環境情報761及び状態情報762が入力されると、対応する制御コマンド763と一致する制御コマンドを出力するように制御器6を訓練する。保存処理部116は、構築された学習済みの制御器6に関する情報を第2学習結果データ128として記憶部12に保存する。
(抽出器)
次に、図5A及び図5Bを用いて、抽出器5の構成の一例について説明する。図5Aは、本実施形態に係る抽出器5の第1訓練ステップの過程の一例を模式的に例示する。図5Bは、本実施形態に係る抽出器5の第2訓練ステップの過程の一例を模式的に例示する。図5A及び図5Bに示されるとおり、本実施形態に係る抽出器5は、ニューラルネットワークにより構成されている。当該ニューラルネットワークは、第1部分51、第2部分52、及び第3部分53に分かれている。第1部分51及び第2部分52は、ニューラルネットワークの入力側に並列に配置される。これに対して、第3部分53は、ニューラルネットワークの出力側に配置される。
次に、図5A及び図5Bを用いて、抽出器5の構成の一例について説明する。図5Aは、本実施形態に係る抽出器5の第1訓練ステップの過程の一例を模式的に例示する。図5Bは、本実施形態に係る抽出器5の第2訓練ステップの過程の一例を模式的に例示する。図5A及び図5Bに示されるとおり、本実施形態に係る抽出器5は、ニューラルネットワークにより構成されている。当該ニューラルネットワークは、第1部分51、第2部分52、及び第3部分53に分かれている。第1部分51及び第2部分52は、ニューラルネットワークの入力側に並列に配置される。これに対して、第3部分53は、ニューラルネットワークの出力側に配置される。
本実施形態に係る第1部分51は、いわゆる畳み込みニューラルネットワークにより構成されている。具体的に、第1部分51は、畳み込み層511、プーリング層512、及び全結合層513を備えている。本実施形態に係る第1部分51では、畳み込み層511及びプーリング層512が入力側に交互に配置されている。そして、最も出力側に配置されたプーリング層512の出力が全結合層513に入力される。全結合層513の出力が、第1部分51の出力に対応している。畳み込み層511及びプーリング層512の数は、実施の形態に応じて適宜選択されてよい。
畳み込み層511は、画像の畳み込み演算を行う層である。画像の畳み込みとは、画像と所定のフィルタとの相関を算出する処理に相当する。そのため、画像の畳み込み演算を行うことで、例えば、フィルタの濃淡パターンと類似する濃淡パターンを入力される画像から検出することができる。プーリング層512は、プーリング処理を行う層である。プーリング処理は、画像のフィルタに対する応答の強い位置の情報を一部捨てることで、画像内に現れる特徴の微小な位置変化に対する応答の不変性を実現する。プーリング層512は、例えば、処理対象となる複数のピクセルから最大値のピクセルを選択するように構成された最大プーリング層であってよい。全結合層513は、隣接する層の間のニューロン全てを結合した層である。すなわち、全結合層513に含まれる各ニューロンは、隣接する層に含まれる全てのニューロンに結合される。全結合層513は、2層以上で構成されてもよい。
各層511~513に含まれるニューロン(ノード)の数は、実施の形態に応じて適宜選択されてよい。隣接する層のニューロン同士は適宜結合され、各結合には重み(結合荷重)が設定されている。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。各層511~513に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、演算処理に利用される第1部分51のパラメータの一例である。
本実施形態に係る第2部分52も、第1部分51と同様に、いわゆる畳み込みニューラルネットワークにより構成されている。すなわち、第2部分52は、畳み込み層521、プーリング層522、及び全結合層523を備えている。本実施形態では、第2部分52の各層521~523は、第1部分51の各層511~513と同様に構成される。つまり、各層521~523に含まれるニューロンの数、及び隣接する層のニューロン同士の結合は、第1部分51と一致するように設定される。これにより、第1部分51及び第2部分52は、互いに同じ構造を有し、共通のパラメータを有するように構成される。各層521~523に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、演算処理に利用される第2部分52のパラメータの一例である。
一方、本実施形態に係る第3部分53は、第1部分51の入力側と出力側とを反転させたような構造を有している。具体的には、第3部分53は、全結合層531、アップサンプリング層532、畳み込み層533を備えている。アップサンプリング層532は、逆プーリング処理を行う層である。本実施形態に係る第3部分53では、全結合層531が最も入力側に配置されており、全結合層531の出力が、最も入力側に配置されたアップサンプリング層532に入力される。そして、アップサンプリング層532及び畳み込み層533が出力側で交互に配置されている。最も出力側に配置された畳み込み層533の出力が、第3部分53の出力に対応している。アップサンプリング層532及び畳み込み層533の数は、実施の形態に応じて適宜選択されてよい。また、全結合層531は、2層以上で構成されてもよい。各層531~533に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、演算処理に利用される第3部分53のパラメータの一例である。
第1部分51の最も入力側に配置された畳み込み層511は、シミュレーションデータ701の入力を受け付けるように構成される。第2部分52の最も入力側に配置された畳み込み層521は、実データ731の入力を受け付けるように構成される。第3部分53の全結合層531は、第1部分51及び第2部分52それぞれの出力を受け付けるように構成される。ただし、各部分51~53の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。
図5Aに示されるように、第1訓練ステップでは、第1学習処理部114は、第2部分52と第3部分53との結合を遮断(無視)する。そして、以下の手順により、第1学習処理部114は、各第1学習データセット70について、シミュレーションデータ701を第1部分51に入力すると、対応する第1環境情報702と一致する出力値が第3部分53から出力されるように、第1部分51及び第3部分53それぞれのパラメータの値を調節する。
まず、第1学習処理部114は、各第1学習データセット70について、第1部分51の最も入力側に配置された畳み込み層511にシミュレーションデータ701を入力し、第1部分51及び第3部分53のパラメータを利用して、抽出器5の演算処理を実行する。この演算処理の結果、第1学習処理部114は、シミュレーションデータ701から環境情報を抽出した結果に対応する出力値を第3部分53の最も出力側に配置された畳み込み層533から取得する。次に、第1学習処理部114は、取得した出力値と第1環境情報702との誤差を算出する。そして、第1学習処理部114は、算出される誤差の和が小さくなるように、第1部分51及び第3部分53それぞれのパラメータの値を調節する。
第3部分53から得られる出力値と第1環境情報702との誤差の和が閾値以下になるまで、第1学習処理部114は、第1部分51及び第3部分53それぞれのパラメータの値の調節を繰り返す。これにより、第1学習処理部114は、各第1学習データセット70について、シミュレーションデータ701を第1部分51に入力すると、対応する第1環境情報702と一致する出力値を第3部分53から出力するように訓練された抽出器5を構築することができる。
次に、図5Bに示されるとおり、第1訓練ステップを実行した後、第2訓練ステップを実行する前に、第1学習処理部114は、第1部分51の各パラメータの調節した値を第2部分52の対応するパラメータに複製する。第2訓練ステップでは、第1学習処理部114は、第2部分52と第3部分53との結合の遮断を解除し、第1部分51と第3部分53との結合を遮断(無視)する。そして、本実施形態では、以下の手順により、第1学習処理部114は、第3部分53のパラメータの値は固定のまま、各第2学習データセット73について、実データ731を第2部分52に入力すると、対応する第2環境情報732と一致する出力値が第3部分53から出力されるように、第2部分52のパラメータの値を調節する。
まず、第1学習処理部114は、各第2学習データセット73について、第2部分52の最も入力側に配置された畳み込み層521に実データ731を入力し、第2部分52及び第3部分53のパラメータを利用して、抽出器5の演算処理を実行する。この演算処理の結果、第1学習処理部114は、実データ731から環境情報を抽出した結果に対応する出力値を第3部分53の最も出力側に配置された畳み込み層533から取得する。次に、第1学習処理部114は、取得した出力値と第2環境情報732との誤差を算出する。そして、第1学習処理部114は、算出される誤差の和が小さくなるように、第2部分52のパラメータの値を調節する。
第3部分53から得られる出力値と第2環境情報732との誤差の和が閾値以下になるまで、第1学習処理部114は、第2部分52のパラメータの値の調節を繰り返す。これにより、第1学習処理部114は、各第2学習データセット73について、実データ731を第2部分52に入力すると、対応する第2環境情報732と一致する出力値を第3部分53から出力するように訓練された抽出器5を構築することができる。
これらの訓練ステップが完了した後、保存処理部116は、構築された学習済みの抽出器5の構成(例えば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数)、及び演算パラメータ(例えば、各ニューロン間の結合の重み、各ニューロンの閾値)を示す第1学習結果データ125を生成する。そして、保存処理部116は、生成した第1学習結果データ125を記憶部12に保存する。
(制御器)
次に、図5Cを用いて、制御器6の構成の一例について説明する。図5Cは、本実施形態に係る制御器6の機械学習の過程の一例を模式的に例示する。図5Cに示されるとおり、本実施形態に係る制御器6は、いわゆる深層学習に用いられる多層構造のニューラルネットワークにより構成されており、入力層61、中間層(隠れ層)62、及び出力層63を備えている。ただし、制御器6の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。例えば、制御器6は、2層以上の中間層62を備えてもよい。
次に、図5Cを用いて、制御器6の構成の一例について説明する。図5Cは、本実施形態に係る制御器6の機械学習の過程の一例を模式的に例示する。図5Cに示されるとおり、本実施形態に係る制御器6は、いわゆる深層学習に用いられる多層構造のニューラルネットワークにより構成されており、入力層61、中間層(隠れ層)62、及び出力層63を備えている。ただし、制御器6の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。例えば、制御器6は、2層以上の中間層62を備えてもよい。
各層61~63に含まれるニューロンの数は、実施の形態に応じて適宜設定されてよい。隣接する層のニューロン同士は適宜結合され、各結合には重み(結合荷重)が設定されている。図5Cの例では、各ニューロンは、隣接する層の全てのニューロンと結合されている。しかしながら、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。各層61~63に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、演算処理に利用される制御器6のパラメータの一例である。
制御器6の機械学習では、まず、第2学習処理部115は、各第3学習データセット76について、第3環境情報761及び状態情報762を制御器6の入力層61に入力し、各層61~63のパラメータを利用して、制御器6の演算処理を実行する。この演算処理の結果、第2学習処理部115は、第3環境情報761及び状態情報762から制御コマンドを導出した結果に対応する出力値を出力層63から取得する。次に、第2学習処理部115は、取得した出力値と制御コマンド763との誤差を算出する。そして、第2学習処理部115は、算出される誤差の和が小さくなるように、制御器6のパラメータの値を調節する。
出力層63から得られる出力値と制御コマンド763との誤差の和が閾値以下になるまで、第2学習処理部115は、制御器6のパラメータの値の調節を繰り返す。これにより、第2学習処理部115は、各第3学習データセット76について、第3環境情報761及び状態情報762を入力層61に入力すると、対応する制御コマンド763と一致する出力値を出力層63から出力するように訓練された制御器6を構築することができる。
この機械学習の処理が完了した後、保存処理部116は、構築された学習済みの制御器6の構成(例えば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数)、及び演算パラメータ(例えば、各ニューロン間の結合の重み、各ニューロンの閾値)を示す第2学習結果データ128を生成する。そして、保存処理部116は、生成した第2学習結果データ128を記憶部12に保存する。
なお、各第3学習データセット76の第3環境情報761は、機械学習が完了した後の抽出器5を利用して、センサをシミュレートすることで生成された他のシミュレーションデータ78から抽出することで得られてもよい。具体的には、第3データ取得部113は、シミュレーションデータ701と同様に生成されたシミュレーションデータ78を取得する。機械学習済みの抽出器5がRAM上に展開されていない場合には、第3データ取得部113は、第1学習結果データ125を参照して、機械学習済みの抽出器5の設定を行う。次に、第3データ取得部113は、シミュレーションデータ78を第1部分51に入力し、第1部分51及び第3部分53のパラメータを利用して、抽出器5の演算処理を実行する。この演算処理の結果、シミュレーションデータ78から環境情報を抽出した結果に対応する出力値が第3部分53から出力される。第3データ取得部113は、この第3部分53から出力される出力値を第3環境情報761として取得してもよい。
<制御装置>
次に、図6を用いて、本実施形態に係る制御装置2のソフトウェア構成の一例について説明する。図6は、本実施形態に係る制御装置2のソフトウェア構成の一例を模式的に例示する。
次に、図6を用いて、本実施形態に係る制御装置2のソフトウェア構成の一例について説明する。図6は、本実施形態に係る制御装置2のソフトウェア構成の一例を模式的に例示する。
制御装置2の制御部21は、記憶部22に記憶された制御プログラム221をRAMに展開する。そして、制御部21は、RAMに展開された制御プログラム221をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図6に示されるとおり、本実施形態に係る制御装置2は、データ取得部211、情報抽出部212、コマンド決定部213、及び動作制御部214をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、制御装置2の各ソフトウェアモジュールも、上記学習装置1と同様に、制御部21(CPU)により実現される。
データ取得部211は、産業用ロボットRのタスクを実行する環境を監視するセンサにより得られたセンサデータを取得する。本実施形態では、データ取得部211は、カメラCAにより得られた画像データ80をセンサデータとして取得する。また、データ取得部211は、タスクを実行する際の産業用ロボットRの状態に関する状態情報83を取得する。
情報抽出部212は、第1学習結果データ125を保持することで、学習装置1により構築された機械学習済みの抽出器5を含んでいる。情報抽出部212は、第1学習結果データ125を参照して、機械学習済みの抽出器5の設定を行う。そして、情報抽出部212は、機械学習済みの抽出器5を利用して、タスクを実行する環境に関する環境情報81を画像データ80から抽出する。本実施形態では、情報抽出部212は、画像データ80を第2部分52に入力し、第2部分52及び第3部分53のパラメータを利用して、抽出器5の演算処理を実行する。この演算処理の結果、情報抽出部212は、環境情報81に対応する出力値を第3部分53から取得する。
コマンド決定部213は、第2学習結果データ128を保持することで、学習装置1により構築された機械学習済みの制御器6を含んでいる。コマンド決定部213は、第2学習結果データ128を参照して、機械学習済みの制御器6の設定を行う。そして、コマンド決定部213は、機械学習済みの制御器6を利用して、環境情報81及び状態情報83により示される条件下でタスクを産業用ロボットRに実行させるための制御コマンド85を決定する。本実施形態では、コマンド決定部213は、環境情報81及び状態情報83を入力層61に入力し、各層61~63のパラメータを利用して、制御器6の演算処理を実行する。この演算処理の結果、コマンド決定部213は、決定された制御コマンド85に対応する出力値を出力層63から取得する。動作制御部214は、決定された制御コマンド85に基づいて、産業用ロボットRの動作を制御する。
<その他>
学習装置1及び制御装置2の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、学習装置1及び制御装置2の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、学習装置1及び制御装置2それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
学習装置1及び制御装置2の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、学習装置1及び制御装置2の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、学習装置1及び制御装置2それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
§3 動作例
[学習装置]
次に、学習装置1の動作例について説明する。本実施形態に係る学習装置1は、抽出器5の機械学習を実施する第1モード及び制御器6の機械学習を実施する第2モードの2つのモードのいずれかを選択し、選択されたモードで動作可能に構成されている。以下で説明する各モードにおける処理手順は、本発明の「学習方法」の一例である。ただし、必ずしも2つのモードに分かれていなければならない訳ではない。各モードは、適宜省略又は変更されてよい。また、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。更に、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
[学習装置]
次に、学習装置1の動作例について説明する。本実施形態に係る学習装置1は、抽出器5の機械学習を実施する第1モード及び制御器6の機械学習を実施する第2モードの2つのモードのいずれかを選択し、選択されたモードで動作可能に構成されている。以下で説明する各モードにおける処理手順は、本発明の「学習方法」の一例である。ただし、必ずしも2つのモードに分かれていなければならない訳ではない。各モードは、適宜省略又は変更されてよい。また、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。更に、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
<抽出器の機械学習>
まず、図7を用いて、本実施形態に係る学習装置1による抽出器5の機械学習(第1モード)の処理手順の一例について説明する。図7は、本実施形態に係る学習装置1による抽出器5の機械学習の処理手順の一例を示すフローチャートである。
まず、図7を用いて、本実施形態に係る学習装置1による抽出器5の機械学習(第1モード)の処理手順の一例について説明する。図7は、本実施形態に係る学習装置1による抽出器5の機械学習の処理手順の一例を示すフローチャートである。
(ステップS101)
ステップS101では、制御部11は、第1データ取得部111として動作し、シミュレーションデータ701及び第1環境情報702の組み合わせによりそれぞれ構成された複数の第1学習データセット70を取得する。
ステップS101では、制御部11は、第1データ取得部111として動作し、シミュレーションデータ701及び第1環境情報702の組み合わせによりそれぞれ構成された複数の第1学習データセット70を取得する。
各第1学習データセット70を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、シミュレータを用意し、様々な条件でセンサをシミュレートすることで、シミュレーションデータ701を生成することができる。シミュレータは、ロボット装置のタスクを実行する環境をシミュレート可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。タスクの種類は、特に限定されなくてもよく、ロボット装置の種類に応じて適宜選択されてよい。シミュレータは、例えば、センサ、ロボット装置、ワーク等のオブジェクトを仮想空間上に配置し、仮想空間上でロボット装置にタスクの実行を模擬可能なソフトウェアである。タスクは、例えば、ワークの把持、把持したワークの解放等である。本実施形態では、産業用ロボットRのタスクを実行する環境を監視するセンサとしてカメラCAが利用されている。そのため、シミュレータにより、カメラCAにより得られる撮影画像を模した画像データがシミュレーションデータ701として生成される。このとき、シミュレーションデータ701は、センサをシミュレートする条件をランダムに変更しながら生成されてよい。本実施形態では、シミュレーションの条件は、例えば、カメラCAの位置、カメラCAの視野(field of view)、カメラCAの焦点距離、照明条件、各領域に貼り付けるテクスチャの種類、産業用ロボットRの属性、配置するワークの属性等である。
また、シミュレーションの条件に応じて、第1環境情報702を適宜生成することができる。第1環境情報702は、ロボット装置のタスクを実行する環境に関するものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。第1環境情報702は、例えば、セグメンテーション情報、タスクの対象となるワークの属性に関する情報、タスクを実行する位置に関する情報、障害物の有無を示す情報、及び障害物の属性に関する情報の少なくともいずれかを含んでよい。セグメンテーション情報は、画像内に写る各対象物を識別することで、各対象物の領域を区分けした結果を示す。セグメンテーション情報は、各対象物を識別した結果に基づいて推定された各対象物の属性を示す情報を含んでもよい。ワークの属性に関する情報は、例えば、ワークの位置、形状、寸法、姿勢、重さ、温度等を示す。タスクを実行する位置に関する情報は、例えば、ワークを解放する位置を示す。障害物の属性に関する情報は、例えば、障害物の位置、形状、寸法、姿勢、重さ、温度等を示す。生成された第1環境情報702を対応するシミュレーションデータ701に組み合わせる(対応付ける)ことで、各第1学習データセット70を生成することができる。
各第1学習データセット70は、コンピュータの動作により自動的に生成されてもよいし、オペレータの操作により手動的に生成されてもよい。また、各第1学習データセット70の生成は、学習装置1により行われてもよいし、学習装置1以外の他のコンピュータにより行われてもよい。各第1学習データセット70を学習装置1が生成する場合、制御部11は、自動的に又はオペレータの操作により手動的に上記一連の処理を実行することで、複数の第1学習データセット70を取得する。一方、各第1学習データセット70を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の第1学習データセット70を取得する。
取得する第1学習データセット70の件数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。複数件の第1学習データセット70を取得すると、制御部11は、次のステップS102に処理を進める。
(ステップS102)
ステップS102では、制御部11は、第1学習処理部114として動作し、複数の第1学習データセット70を利用して、抽出器5の機械学習を実施する。この機械学習では、制御部11は、各第1学習データセットについて、シミュレーションデータ701から、対応する第1環境情報702と一致する環境情報を抽出するように抽出器5を訓練する。本ステップS102は、本発明の「第1訓練ステップ」の一例である。
ステップS102では、制御部11は、第1学習処理部114として動作し、複数の第1学習データセット70を利用して、抽出器5の機械学習を実施する。この機械学習では、制御部11は、各第1学習データセットについて、シミュレーションデータ701から、対応する第1環境情報702と一致する環境情報を抽出するように抽出器5を訓練する。本ステップS102は、本発明の「第1訓練ステップ」の一例である。
詳細には、まず、制御部11は、処理対象となる抽出器5を用意する。用意する抽出器5の構成、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部11は、過去の機械学習を行うことで得られた学習結果データに基づいて、抽出器5を用意してもよい。
次に、制御部11は、ステップS101で取得した各第1学習データセット70に含まれるシミュレーションデータ701を入力データとして利用し、対応する第1環境情報702を教師データとして利用して、抽出器5の第1部分51及び第3部分53の学習処理を実行する。この学習処理には、確率的勾配降下法等が用いられてよい。本実施形態では、この学習処理では、第2部分52と第3部分53との結合は無視される。
例えば、第1のステップでは、制御部11は、各第1学習データセット70について、第1部分51の最も入力側に配置された畳み込み層511にシミュレーションデータ701を入力し、入力側から順に各層(511~513、531~533)に含まれる各ニューロンの発火判定を行う。これにより、制御部11は、シミュレーションデータ701から環境情報を抽出した結果に対応する出力値を第3部分53の最も出力側に配置された畳み込み層533から取得する。第2のステップでは、制御部11は、取得した出力値と対応する第1環境情報702との誤差を算出する。第3のステップでは、制御部11は、誤差逆伝播(Back propagation)法により、算出した出力値の誤差を用いて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。第4のステップでは、制御部11は、算出した各誤差に基づいて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値の更新を行う。
制御部11は、上記第1~第4のステップを繰り返すことで、各第1学習データセット70について、シミュレーションデータ701を第1部分51に入力すると、対応する第1環境情報702と一致する出力値が第3部分53から出力されるように、第1部分51及び第3部分53それぞれのパラメータの値を調節する。換言すると、制御部11は、各第1学習データセット70について、第3部分53の最も出力側に配置された畳み込み層533から得られる出力値と第1環境情報702との誤差の和が閾値以下になるまで、上記第1~第4のステップによる第1部分51及び第3部分53のパラメータの値の調節を繰り返す。閾値は、実施の形態に応じて適宜設定されてよい。これにより、制御部11は、各第1学習データセット70について、シミュレーションデータ701を第1部分51に入力すると、対応する第1環境情報702と一致する出力値を第3部分53から出力するように訓練された抽出器5を構築することができる。この第1学習データセット70を利用した機械学習が完了すると、制御部11は、次のステップS103に処理を進める。
(ステップS103)
ステップS103では、制御部11は、第2データ取得部112として動作し、実データ731及び第2環境情報732の組み合わせによりそれぞれ構成された複数の第2学習データセット73を取得する。
ステップS103では、制御部11は、第2データ取得部112として動作し、実データ731及び第2環境情報732の組み合わせによりそれぞれ構成された複数の第2学習データセット73を取得する。
各第2学習データセット73を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、センサ、ロボット装置、ワーク等の実環境を用意し、ロボット装置がタスクを実行する様子をセンサにより様々な条件でモニタリングすることで、実データ731を取得することができる。本実施形態では、実データ731は、産業用ロボットRのタスクを実行する環境をカメラCAにより撮影することで得られる画像データ(撮影画像)である。第2環境情報732の種類及び形式は、上記第1環境情報702と同様であってよい。実環境の条件に応じて、第2環境情報732を適宜生成することができる。生成された第2環境情報732を対応する実データ731に組み合わせる(対応付ける)ことで、各第2学習データセット73を生成することができる。
各第2学習データセット73は、コンピュータの動作により自動的に生成されてもよいし、オペレータの操作により手動的に生成されてもよい。また、各第2学習データセット73の生成は、学習装置1により行われてもよいし、学習装置1以外の他のコンピュータにより行われてもよい。各第2学習データセット73を学習装置1が生成する場合、制御部11は、自動的に又はオペレータの操作により手動的に上記一連の処理を実行することで、複数の第2学習データセット73を取得する。一方、各第2学習データセット73を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の第2学習データセット73を取得する。
取得する第2学習データセット73の件数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。複数件の第2学習データセット73を取得すると、制御部11は、次のステップS104に処理を進める。
(ステップS104)
ステップS104では、制御部11は、第1学習処理部114として動作し、複数の第2学習データセット73を利用して、抽出器5の機械学習を実施する。この機械学習では、制御部11は、各第2学習データセット73について、実データ731から、対応する第2環境情報732と一致する環境情報を抽出するように抽出器5を訓練する。本ステップS104は、本発明の「第2訓練ステップ」の一例である。
ステップS104では、制御部11は、第1学習処理部114として動作し、複数の第2学習データセット73を利用して、抽出器5の機械学習を実施する。この機械学習では、制御部11は、各第2学習データセット73について、実データ731から、対応する第2環境情報732と一致する環境情報を抽出するように抽出器5を訓練する。本ステップS104は、本発明の「第2訓練ステップ」の一例である。
詳細には、まず、制御部11は、上記ステップS102を実行した後、本ステップS104を実行する前に、第1部分51の各パラメータの調節した値を第2部分52の対応するパラメータに複製する。次に、制御部11は、ステップS103で取得した各第2学習データセット73に含まれる実データ731を入力データとして利用し、対応する第2環境情報732を教師データとして利用して、抽出器5の第2部分52の学習処理を実行する。本実施形態では、この学習処理では、第1部分51と第3部分53との結合は無視され、第3部分53のパラメータの値の調節は省略される。
この学習処理の処理手順は、上記ステップS102と同様であってよい。すなわち、第1のステップでは、制御部11は、各第2学習データセット73について、第2部分52の最も入力側に配置された畳み込み層521に実データ731を入力し、入力側から順に各層(521~523、531~533)に含まれる各ニューロンの発火判定を行う。これにより、制御部11は、実データ731から環境情報を抽出した結果に対応する出力値を第3部分53の最も出力側に配置された畳み込み層533から取得する。第2のステップでは、制御部11は、取得した出力値と第2環境情報732との誤差を算出する。第3のステップでは、制御部11は、誤差逆伝播法により、算出した出力値の誤差を用いて、第2部分52における各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。第4のステップでは、制御部11は、算出した各誤差に基づいて、第2部分52における各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値の更新を行う。
制御部11は、上記第1~第4のステップを繰り返すことで、第3部分53のパラメータの値は固定のまま、各第2学習データセット73について、実データ731を第2部分52に入力すると、対応する第2環境情報732と一致する出力値が第3部分53から出力されるように、第2部分52のパラメータの値を調節する。換言すると、制御部11は、各第2学習データセット73について、第3部分53の最も出力側に配置された畳み込み層533から得られる出力値と第2環境情報732との誤差の和が閾値以下になるまで、上記第1~第4のステップによる第2部分52のパラメータの値の調節を繰り返す。閾値は、実施の形態に応じて適宜設定されてよい。これにより、制御部11は、各第2学習データセット73について、実データ731を第2部分52に入力すると、対応する第2環境情報732と一致する出力値を第3部分53から出力するように訓練された抽出器5を構築することができる。この第2学習データセット73を利用した機械学習が完了すると、制御部11は、次のステップS105に処理を進める。
(ステップS105)
ステップS105では、制御部11は、保存処理部116として動作し、機械学習済みの抽出器5に関する情報を第1学習結果データ125として記憶部12に保存する。本実施形態では、制御部11は、上記ステップS102及びS104により、第1学習データセット70及び第2学習データセット73を利用して、抽出器5の機械学習を実施している。つまり、抽出器5の機械学習を実施することは、上記ステップS102及びS104を含んでいる。ステップS105では、制御部11は、ステップS102及びS104の機械学習により構築された抽出器5の構成及びパラメータを示す情報を第1学習結果データ125として生成する。そして、制御部11は、生成した第1学習結果データ125を記憶部12に保存する。これにより、制御部11は、本実施形態に係る抽出器5の機械学習(第1モード)の一連の処理を終了する。
ステップS105では、制御部11は、保存処理部116として動作し、機械学習済みの抽出器5に関する情報を第1学習結果データ125として記憶部12に保存する。本実施形態では、制御部11は、上記ステップS102及びS104により、第1学習データセット70及び第2学習データセット73を利用して、抽出器5の機械学習を実施している。つまり、抽出器5の機械学習を実施することは、上記ステップS102及びS104を含んでいる。ステップS105では、制御部11は、ステップS102及びS104の機械学習により構築された抽出器5の構成及びパラメータを示す情報を第1学習結果データ125として生成する。そして、制御部11は、生成した第1学習結果データ125を記憶部12に保存する。これにより、制御部11は、本実施形態に係る抽出器5の機械学習(第1モード)の一連の処理を終了する。
なお、第1学習結果データ125の保存先は、記憶部12に限られなくてもよい。制御部11は、例えば、NAS(Network Attached Storage)等のデータサーバに第1学習結果データ125を格納してもよい。第1学習結果データ125は、第1部分51に関する情報を含んでいてもよいし、含んでいなくてもよい。また、制御部11は、生成した第1学習結果データ125を任意のタイミングで制御装置2に転送してよい。制御装置2は、学習装置1から転送を受け付けることで第1学習結果データ125を取得してもよいし、学習装置1又はデータサーバにアクセスすることで第1学習結果データ125を取得してもよい。第1学習結果データ125は、制御装置2に予め組み込まれてもよい。
更に、制御部11は、上記ステップS101~S105の処理を定期的に繰り返すことで、第1学習結果データ125を定期的に更新してもよい。この繰り返す際には、第1学習データセット70及び第2学習データセット73の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部11は、更新した第1学習結果データ125を学習処理の実行毎に制御装置2に転送することで、制御装置2に保持される第1学習結果データ125を定期的に更新してもよい。
<制御器の機械学習>
次に、図8を用いて、本実施形態に係る学習装置1による制御器6の機械学習(第2モード)の処理手順の一例について説明する。図8は、本実施形態に係る学習装置1による制御器6の機械学習の処理手順の一例を示すフローチャートである。
次に、図8を用いて、本実施形態に係る学習装置1による制御器6の機械学習(第2モード)の処理手順の一例について説明する。図8は、本実施形態に係る学習装置1による制御器6の機械学習の処理手順の一例を示すフローチャートである。
(ステップS201)
ステップS201では、制御部11は、第3データ取得部113として動作し、第3環境情報761及び状態情報762並びに制御コマンド763の組み合わせによりそれぞれ構成された複数の第3学習データセット76を取得する。
ステップS201では、制御部11は、第3データ取得部113として動作し、第3環境情報761及び状態情報762並びに制御コマンド763の組み合わせによりそれぞれ構成された複数の第3学習データセット76を取得する。
各第3学習データセット76を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、上記シミュレータ又は実環境を用意し、用意したシミュレータ又は実環境の条件に応じて、第3環境情報761を適宜生成することができる。第3環境情報761の種類及び形式は、上記第1環境情報702及び第2環境情報732と同様であってよい。
或いは、第3環境情報761は、機械学習が完了した後の抽出器5を利用して、他のシミュレーションデータ78から抽出することで生成されてもよい。具体的には、シミュレーションデータ78を第1部分51に入力し、入力側から順に各層(511~513、531~533)に含まれる各ニューロンの発火判定を行う。これにより、シミュレーションデータ78から環境情報を抽出した結果に対応する出力値が第3部分53から出力される。この第3部分53から出力される出力値を第3環境情報761として取得してもよい。なお、シミュレーションデータ78は、上記シミュレーションデータ701と同様の方法で取得されてよい。また、機械学習済みの抽出器5の設定は、第1学習結果データ125を参照を参照することで行われてよい。
また、シミュレーション又は実環境の条件に応じて、状態情報762を適宜生成することができる。更に、シミュレーション又は実環境の条件及び実行するタスクに応じて、制御コマンド763を適宜生成することができる。状態情報762は、例えば、産業用ロボットRの駆動部の位置、向き、角度、加速度等を含んでよい。制御コマンド763は、例えば、産業用ロボットRの駆動量(例えば、サーボモータの駆動量)等を規定してよい。生成された状態情報762及び制御コマンド763を対応する第3環境情報761に組み合わせる(対応付ける)ことで、各第3学習データセット76を生成することができる。
各第3学習データセット76は、コンピュータの動作により自動的に生成されてもよいし、オペレータの操作により手動的に生成されてもよい。また、各第3学習データセット76の生成は、学習装置1により行われてもよいし、学習装置1以外の他のコンピュータにより行われてもよい。各第3学習データセット76を学習装置1が生成する場合、制御部11は、自動的に又はオペレータの操作により手動的に上記一連の処理を実行することで、複数の第3学習データセット76を取得する。一方、各第3学習データセット76を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の第3学習データセット76を取得する。
取得する第3学習データセット76の件数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。複数件の第3学習データセット76を取得すると、制御部11は、次のステップS202に処理を進める。
(ステップS202)
ステップS202では、制御部11は、第2学習処理部115として動作し、複数の第3学習データセット76を利用して、制御器6の機械学習を実施する。この機械学習では、制御部11は、各第3学習データセット76について、第3環境情報761及び状態情報762が入力されると、対応する制御コマンド763と一致する制御コマンドを出力するように制御器6を訓練する。本ステップS202は、本発明の「制御器を訓練する訓練ステップ」の一例である。
ステップS202では、制御部11は、第2学習処理部115として動作し、複数の第3学習データセット76を利用して、制御器6の機械学習を実施する。この機械学習では、制御部11は、各第3学習データセット76について、第3環境情報761及び状態情報762が入力されると、対応する制御コマンド763と一致する制御コマンドを出力するように制御器6を訓練する。本ステップS202は、本発明の「制御器を訓練する訓練ステップ」の一例である。
詳細には、まず、制御部11は、処理対象となる制御器6を用意する。用意する制御器6の構成、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部11は、過去の機械学習を行うことで得られた学習結果データに基づいて、制御器6を用意してもよい。
次に、制御部11は、ステップS201で取得した各第3学習データセット76に含まれる第3環境情報761及び状態情報762を入力データとして利用し、対応する制御コマンド763を教師データとして利用して、制御器6の学習処理を実行する。この学習処理は、上記ステップS102及びS104と同様であってよい。すなわち、第1のステップでは、制御部11は、各第3学習データセット76について、第3環境情報761及び状態情報762を入力層61に入力し、入力側から順に各層61~63に含まれる各ニューロンの発火判定を行う。これにより、制御部11は、第3環境情報761及び状態情報762から制御コマンドを導出した結果に対応する出力値を出力層63から取得する。第2のステップでは、制御部11は、取得した出力値と制御コマンド763との誤差を算出する。第3のステップでは、制御部11は、誤差逆伝播法により、算出した出力値の誤差を用いて、制御器6における各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。第4のステップでは、制御部11は、算出した各誤差に基づいて、制御器6における各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値の更新を行う。
制御部11は、上記第1~第4のステップを繰り返すことで、各第3学習データセット76について、第3環境情報761及び状態情報762を入力すると、対応する制御コマンド763と一致する出力値を出力するように、制御器6のパラメータの値を調節する。換言すると、制御部11は、各第3学習データセット76について、出力層63から得られる出力値と制御コマンド763との誤差の和が閾値以下になるまで、上記第1~第4のステップによる制御器6のパラメータの値の調節を繰り返す。閾値は、実施の形態に応じて適宜設定されてよい。これにより、制御部11は、各第3学習データセット76について、第3環境情報761及び状態情報762を入力すると、対応する制御コマンド763と一致する出力値を出力するように訓練された制御器6を構築することができる。この制御器6の機械学習が完了すると、制御部11は、次のステップS203に処理を進める。
(ステップS203)
ステップS203では、制御部11は、保存処理部116として動作し、機械学習済みの制御器6に関する情報を第2学習結果データ128として記憶部12に保存する。本実施形態では、制御部11は、ステップS202の機械学習により構築された制御器6の構成及びパラメータを示す情報を第2学習結果データ128として生成する。そして、制御部11は、生成した第2学習結果データ128を記憶部12に保存する。これにより、制御部11は、本実施形態に係る制御器6の機械学習(第2モード)の一連の処理を終了する。
ステップS203では、制御部11は、保存処理部116として動作し、機械学習済みの制御器6に関する情報を第2学習結果データ128として記憶部12に保存する。本実施形態では、制御部11は、ステップS202の機械学習により構築された制御器6の構成及びパラメータを示す情報を第2学習結果データ128として生成する。そして、制御部11は、生成した第2学習結果データ128を記憶部12に保存する。これにより、制御部11は、本実施形態に係る制御器6の機械学習(第2モード)の一連の処理を終了する。
なお、第2学習結果データ128の保存先は、上記第1学習結果データ125と同様に、記憶部12に限られなくてもよい。また、第2学習結果データ128は、上記第1学習結果データ125と同様に、任意のタイミングで制御装置2に組み込まれてよい。更に、制御部11は、上記ステップS201~S203の処理を定期的に繰り返すことで、第2学習結果データ128を定期的に更新してもよい。この繰り返す際には、第3学習データセット76の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部11は、更新した第2学習結果データ128を学習処理の実行毎に制御装置2に転送することで、制御装置2に保持される第2学習結果データ128を定期的に更新してもよい。
[制御装置]
次に、図9を用いて、制御装置2の動作例について説明する。図9は、本実施形態に係る制御装置2の処理手順の一例を示すフローチャートである。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
次に、図9を用いて、制御装置2の動作例について説明する。図9は、本実施形態に係る制御装置2の処理手順の一例を示すフローチャートである。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS301)
ステップS301では、制御部21は、データ取得部211として動作し、産業用ロボットRのタスクを実行する環境を監視するセンサにより得られたセンサデータを取得する。本実施形態では、制御部21は、外部インタフェース24を介して、カメラCAにより産業用ロボットRの環境を撮影することで得られた画像データ80をセンサデータとして取得する。画像データ80は、動画像データであってもよいし、静止画像データであってもよい。
ステップS301では、制御部21は、データ取得部211として動作し、産業用ロボットRのタスクを実行する環境を監視するセンサにより得られたセンサデータを取得する。本実施形態では、制御部21は、外部インタフェース24を介して、カメラCAにより産業用ロボットRの環境を撮影することで得られた画像データ80をセンサデータとして取得する。画像データ80は、動画像データであってもよいし、静止画像データであってもよい。
また、制御部21は、タスクを実行する際の産業用ロボットRの状態に関する状態情報83を取得する。例えば、制御部21は、外部インタフェース24を介して産業用ロボットRに現在状態を問い合わせることで、状態情報83を取得してもよい。状態情報83の種類及び形式は、上記状態情報762と同様であってよい。画像データ80及び状態情報83を取得すると、制御部21は、次のステップS302に処理を進める。
ただし、画像データ80及び状態情報83を取得する経路は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、カメラCA及び産業用ロボットRは、制御装置2と異なる他のコンピュータに接続されてよい。この場合、制御装置2は、他のコンピュータからの画像データ80及び状態情報83の送信を受け付けることで、画像データ80及び状態情報83を取得してもよい。
(ステップS302)
ステップS302では、制御部21は、情報抽出部212として動作し、機械学習済みの抽出器5を利用して、タスクを実行する環境に関する環境情報81を画像データ80から抽出する。本実施形態では、制御部21は、第1学習結果データ125を参照して、機械学習済みの抽出器5の設定を行う。そして、制御部21は、画像データ80を第2部分52に入力し、入力側から順に各層(521~523、531~533)に含まれる各ニューロンの発火判定を行う。これにより、制御部21は、画像データ80から環境情報81を抽出した結果に対応する出力値を第3部分53から取得する。環境情報81を取得すると、制御部21は、次のステップS303に処理を進める。
ステップS302では、制御部21は、情報抽出部212として動作し、機械学習済みの抽出器5を利用して、タスクを実行する環境に関する環境情報81を画像データ80から抽出する。本実施形態では、制御部21は、第1学習結果データ125を参照して、機械学習済みの抽出器5の設定を行う。そして、制御部21は、画像データ80を第2部分52に入力し、入力側から順に各層(521~523、531~533)に含まれる各ニューロンの発火判定を行う。これにより、制御部21は、画像データ80から環境情報81を抽出した結果に対応する出力値を第3部分53から取得する。環境情報81を取得すると、制御部21は、次のステップS303に処理を進める。
(ステップS303)
ステップS303では、制御部21は、コマンド決定部213として動作し、機械学習済みの制御器6を利用して、環境情報81及び状態情報83により示される条件下でタスクを産業用ロボットRに実行させるための制御コマンド85を決定する。本実施形態では、制御部21は、第2学習結果データ128を参照して、機械学習済みの制御器6の設定を行う。そして、制御部21は、環境情報81及び状態情報83を入力層61に入力し、入力側から順に各層61~63に含まれる各ニューロンの発火判定を行う。これにより、制御部21は、環境情報81及び状態情報83から制御コマンド85を導出した結果に対応する出力値を出力層63から取得する。この出力値を得ることで、制御部21は、制御コマンド85を決定する。制御コマンド85を決定すると、制御部21は、次のステップS304に処理を進める。
ステップS303では、制御部21は、コマンド決定部213として動作し、機械学習済みの制御器6を利用して、環境情報81及び状態情報83により示される条件下でタスクを産業用ロボットRに実行させるための制御コマンド85を決定する。本実施形態では、制御部21は、第2学習結果データ128を参照して、機械学習済みの制御器6の設定を行う。そして、制御部21は、環境情報81及び状態情報83を入力層61に入力し、入力側から順に各層61~63に含まれる各ニューロンの発火判定を行う。これにより、制御部21は、環境情報81及び状態情報83から制御コマンド85を導出した結果に対応する出力値を出力層63から取得する。この出力値を得ることで、制御部21は、制御コマンド85を決定する。制御コマンド85を決定すると、制御部21は、次のステップS304に処理を進める。
(ステップS304)
ステップS304では、制御部21は、動作制御部214として動作し、決定した制御コマンド85に基づいて、産業用ロボットRの動作を制御する。本実施形態では、制御部21は、外部インタフェース24を介して、制御コマンド85に対応する制御信号を産業用ロボットRに送信することで、制御コマンド85により規定される動作を産業用ロボットRに実行させる。これにより、産業用ロボットRの動作を制御すると、制御部21は、本動作例に係る処理を終了する。この後、制御部21は、ステップS301から一連の処理を繰り返すことで、産業用ロボットRの動作を継続的に制御してもよい。
ステップS304では、制御部21は、動作制御部214として動作し、決定した制御コマンド85に基づいて、産業用ロボットRの動作を制御する。本実施形態では、制御部21は、外部インタフェース24を介して、制御コマンド85に対応する制御信号を産業用ロボットRに送信することで、制御コマンド85により規定される動作を産業用ロボットRに実行させる。これにより、産業用ロボットRの動作を制御すると、制御部21は、本動作例に係る処理を終了する。この後、制御部21は、ステップS301から一連の処理を繰り返すことで、産業用ロボットRの動作を継続的に制御してもよい。
[特徴]
以上のように、本実施形態では、産業用ロボットRの動作を制御するための制御モジュールが、抽出器5及び制御器6の2つの構成要素に分割されている。本実施形態に係る学習装置1は、ステップS101~S104の一連の処理により、シミュレーションデータ701及び実データ731の両方を利用して、両データ(701、731)から共通の特徴(環境情報)を抽出するように抽出器5を構築する。これにより、シミュレーションデータ701と実データ731との間の乖離を吸収した上で、ステップS102によるシミュレーションデータ701を利用した第1訓練ステップの成果を、ステップS104による実データ731を利用した第2訓練ステップに反映させることができる。そのため、機械学習に利用するシミュレーションデータ701(第1学習データセット70)の件数が十分であれば、機械学習に利用する実データ731(第2学習データセット73)の件数が少なくても、実環境で得られるセンサデータから環境情報を精度よく抽出可能な機械学習済みの抽出器5を構築することができる。
以上のように、本実施形態では、産業用ロボットRの動作を制御するための制御モジュールが、抽出器5及び制御器6の2つの構成要素に分割されている。本実施形態に係る学習装置1は、ステップS101~S104の一連の処理により、シミュレーションデータ701及び実データ731の両方を利用して、両データ(701、731)から共通の特徴(環境情報)を抽出するように抽出器5を構築する。これにより、シミュレーションデータ701と実データ731との間の乖離を吸収した上で、ステップS102によるシミュレーションデータ701を利用した第1訓練ステップの成果を、ステップS104による実データ731を利用した第2訓練ステップに反映させることができる。そのため、機械学習に利用するシミュレーションデータ701(第1学習データセット70)の件数が十分であれば、機械学習に利用する実データ731(第2学習データセット73)の件数が少なくても、実環境で得られるセンサデータから環境情報を精度よく抽出可能な機械学習済みの抽出器5を構築することができる。
加えて、センサデータから抽出される特徴(環境情報)は、シミュレーションにより実環境と同様に得ることが可能である。そのため、ステップS201及びS202では、産業用ロボットRの実機を用いず、シミュレータを用いても、得られた第3学習データセット76を利用した機械学習により、実環境で運用可能な機械学習済みの制御器6を構築することができる。したがって、本実施形態によれば、抽出器5及び制御器6の2つの構成要素に制御モジュールを分離することで、学習データの少なくとも一部に(好ましくは、大部分で)シミュレーションデータ701を採用することができるようになるため、機械学習に利用する学習データを収集するのにかかるコストを低減することができる。更に、この機械学習により構築された抽出器5及び制御器6により、実環境で運用可能な制御モジュールを構成することができる。よって、本実施形態によれば、産業用ロボットRを制御する能力を制御モジュールに習得させるための機械学習に利用する学習データを収集するコストを低減しつつ、その機械学習により実環境で運用可能な制御モジュールを構築することができる。また、本実施形態に係る制御装置2は、そのように構築された制御モジュールを利用して、ステップS301~S304の処理を実行することで、産業用ロボットRの動作を実環境で適切に制御することができる。
なお、本実施形態では、ステップS101において、シミュレーションの条件をランダムに変更しながら生成されたシミュレーションデータ701を取得してもよい。これにより、ステップS102では、そのシミュレーションデータ701を含む各第1学習データセット70を利用した機械学習を実施することで、環境の変更にロバストな抽出器5を構築することができる。また、本実施形態に係る学習装置1は、上記ステップS104において、第3部分53のパラメータの値は固定のまま、第2部分52のパラメータの値を調節する。これにより、シミュレーションデータ701と実データ731との差分を入力側の構成(第1部分51及び第2部分52)で吸収しつつ、ステップS104において更新するパラメータの総数を低減することができるため、学習処理にかかる計算量を抑えることができる。
また、本実施形態によれば、制御モジュールを1つの学習モデルにより構築する場合に比べて、抽出器5及び制御器6の構成は簡易である。そのため、ステップS102、S104及びS202の学習処理並びにステップS302及びS303のコマンド決定処理の計算コストを抑えることができる。
更に、本実施形態では、抽出器5の学習処理(ステップS102、S104)及び制御器6の学習処理(ステップS202)を個別に実施することができる。そのため、抽出器5のみを入れ替え又は再学習することができ、これにより、産業用ロボットRを利用する環境の変更に適応することができる。また、制御器6のみを入れ替え又は再学習することができ、これにより、産業用ロボットRの変更に適応することができる。したがって、本実施形態によれば、制御モジュール全体を入れ替えるのではなく、抽出器5及び制御器6のいずれかを入れ替えることで、制御装置2を実環境の変更に適応させることができる。よって、制御装置2を実環境の変更に適応させるコストを低減することができる。
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
<4.1>
上記実施形態では、抽出器5には畳み込みニューラルネットワークが利用され、制御器6には多層構造の全結合ニューラルネットワークが用いられている。しかしながら、抽出器5及び制御器6それぞれを構成するニューラルネットワークの構造及び種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、抽出器5及び制御器6それぞれには、再帰型ニューラルネットワークが用いられてもよい。
上記実施形態では、抽出器5には畳み込みニューラルネットワークが利用され、制御器6には多層構造の全結合ニューラルネットワークが用いられている。しかしながら、抽出器5及び制御器6それぞれを構成するニューラルネットワークの構造及び種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、抽出器5及び制御器6それぞれには、再帰型ニューラルネットワークが用いられてもよい。
また、抽出器5及び制御器6それぞれを構成する学習モデルは、ニューラルネットワークに限られなくてもよく、実施の形態に応じて適宜選択されてよい。抽出器5及び制御器6それぞれの学習モデルには、例えば、サポートベクタマシン等のニューラルネットワーク以外の学習モデルが用いられてよい。また、上記実施形態では、各学習結果データ(125、128)は、学習済みのニューラルネットワークの構成を示す情報を含んでいる。しかしながら、各学習結果データ(125、128)の構成は、このような例に限定されなくてもよく、学習済みの抽出器5及び制御器6それぞれの設定に利用可能であれば、実施の形態に応じて適宜決定されてよい。例えば、抽出器5及び制御器6それぞれにおけるニューラルネットワークの構成が各装置で共通化されている場合、各学習結果データ(125、128)は、学習済みのニューラルネットワークの構成を示す情報を含んでいなくてもよい。
<4.2>
上記実施形態に係る各情報処理(図7~図9)について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。例えば、ステップS101がステップS102の前に実行され、ステップS103がステップS104の前に実行されるのであれば、ステップS101~S104の処理順序は適宜変更されてよい。上記ステップS104では、第3部分53のパラメータの値を固定するのではなく、ステップS102と同様に、第2部分52及び第3部分53のパラメータの値を調節してもよい。上記ステップS301における状態情報83を取得する処理は、ステップS303の処理を実行するまでに完了していればよい。また、例えば、第2訓練ステップ(ステップS104)は、第1訓練ステップ(ステップS102)の前に実行されてもよい。この場合、制御部11は、第2訓練ステップ(ステップS104)を実行することで、第2部分52のパラメータの値を調節する。この第2訓練ステップでは、第3部分53のパラメータの値は、上記実施形態と同様に固定のままであってもよいし、第2部分52と共に調節されてもよい。第2訓練ステップを実行した後、制御部11は、第2部分52の各パラメータの調節した値を第1部分51の対応するパラメータに複製する。続いて、制御部11は、第1訓練ステップ(ステップS102)を実行することで、第1部分51のパラメータの値を調節する。この第1訓練ステップでは、第3部分53のパラメータの値は、上記実施形態と同様に第1部分51と共に調節されてもよいし、固定のままであってもよい。第1訓練ステップを実行した後、制御部11は、第1部分51の各パラメータの調節した値を第2部分52の対応するパラメータに複製する。これにより、シミュレーションデータ701を利用した機械学習の成果を実データ731を利用した機械学習に反映させることができる。
上記実施形態に係る各情報処理(図7~図9)について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。例えば、ステップS101がステップS102の前に実行され、ステップS103がステップS104の前に実行されるのであれば、ステップS101~S104の処理順序は適宜変更されてよい。上記ステップS104では、第3部分53のパラメータの値を固定するのではなく、ステップS102と同様に、第2部分52及び第3部分53のパラメータの値を調節してもよい。上記ステップS301における状態情報83を取得する処理は、ステップS303の処理を実行するまでに完了していればよい。また、例えば、第2訓練ステップ(ステップS104)は、第1訓練ステップ(ステップS102)の前に実行されてもよい。この場合、制御部11は、第2訓練ステップ(ステップS104)を実行することで、第2部分52のパラメータの値を調節する。この第2訓練ステップでは、第3部分53のパラメータの値は、上記実施形態と同様に固定のままであってもよいし、第2部分52と共に調節されてもよい。第2訓練ステップを実行した後、制御部11は、第2部分52の各パラメータの調節した値を第1部分51の対応するパラメータに複製する。続いて、制御部11は、第1訓練ステップ(ステップS102)を実行することで、第1部分51のパラメータの値を調節する。この第1訓練ステップでは、第3部分53のパラメータの値は、上記実施形態と同様に第1部分51と共に調節されてもよいし、固定のままであってもよい。第1訓練ステップを実行した後、制御部11は、第1部分51の各パラメータの調節した値を第2部分52の対応するパラメータに複製する。これにより、シミュレーションデータ701を利用した機械学習の成果を実データ731を利用した機械学習に反映させることができる。
<4.3>
上記実施形態では、抽出器5の出力は環境情報に直接的に対応し、制御器6の出力は制御コマンドに直接的に対応することを想定している。しかしながら、抽出器5及び制御器6の出力形式は、このような例に限定されなくてもよい。上記実施形態において、抽出器5の出力値に対して何らかの情報処理を実行することで環境情報が導出されてよい。同様に、制御器6の出力値に対して何らかの情報処理を実行することで制御コマンドが導出されてもよい。
上記実施形態では、抽出器5の出力は環境情報に直接的に対応し、制御器6の出力は制御コマンドに直接的に対応することを想定している。しかしながら、抽出器5及び制御器6の出力形式は、このような例に限定されなくてもよい。上記実施形態において、抽出器5の出力値に対して何らかの情報処理を実行することで環境情報が導出されてよい。同様に、制御器6の出力値に対して何らかの情報処理を実行することで制御コマンドが導出されてもよい。
また、上記実施形態では、各環境情報(702、732、761)は、ニューラルネットワークの最終層(畳み込み層533)の出力に対応している。しかしながら、各環境情報(702、732、761)の形式は、このような例に限定されなくてもよい。上記実施形態に係る学習装置1は、上記ステップS104において、第3部分53のパラメータの値は固定のまま、第2部分52のパラメータの値を調節する。これにより、シミュレーションデータ701と実データ731との差分を入力側の構成(第1部分51及び第2部分52)で吸収しつつ、第1部分51及び第2部分52の出力が共通の特徴空間に写像されるようにニューラルネットワークを構築することができる。そこで、このニューラルネットワークにおいて、共通の特徴空間を構築する中間層から出力される特徴量を各環境情報(702、732、761)として利用してもよい。例えば、各環境情報(702、732、761)のうち少なくとも第3環境情報761は、ニューラルネットワークの中間層から出力される特徴量で表現されてもよい。
図10及び図11は、ニューラルネットワークの中間層から出力される特徴量で環境情報を表現する変形例の一例を示す。図10は、本変形例に係る学習装置1において第3環境情報761Aを導出する過程の一例を模式的に例示する。図11は、本変形例に係る制御装置2において環境情報81Aを導出する過程の一例を模式的に例示する。図10及び図11の変形例は、第3環境情報761A及び環境情報81Aが第3部分53の全結合層531の出力に対応している点を除き、上記実施形態と同様である。
図10に示されるとおり、本変形例に係る学習装置1は、上記ステップS201において、第3環境情報761A及び状態情報762並びに制御コマンド763の組み合わせによりそれぞれ構成された複数の第3学習データセット76Aを取得する。シミュレーションデータ78を第1部分51に入力し、入力側から順に各層(511~513、531)に含まれる各ニューロンの発火判定を行う。これにより、全結合層531から出力される出力値が第3環境情報761Aとして取得される。上記ステップS202において、制御部11は、このように取得された複数の第3学習データセット76Aを利用して、制御器6Aの機械学習を実施する。制御器6Aの構成は、上記実施形態に係る制御器6と同様である。上記ステップS203において、制御部11は、機械学習済みの制御器6Aの構成及びパラメータを示す情報を第2学習結果データ128Aとして記憶部12に保存する。
一方、図11に示されるとおり、本変形例に係る制御装置2は、このように構築された機械学習済みの制御器6Aを利用する。具体的に、上記ステップS302において、制御部21は、画像データ80を第2部分52に入力し、入力側から順に各層(521~523、531)に含まれる各ニューロンの発火判定を行う。これにより、制御部21は、全結合層531から出力される出力値を環境情報81Aとして取得する。上記ステップS303において、制御部21は、第2学習結果データ128Aを参照して、機械学習済みの制御器6Aの設定を行う。そして、制御部21は、環境情報81A及び状態情報83を入力層61に入力し、入力側から順に各層61~63に含まれる各ニューロンの発火判定を行う。これにより、制御部21は、環境情報81A及び状態情報83から制御コマンド85を導出した結果に対応する出力値を出力層63から取得する。これにより、本変形例では、ニューラルネットワークの中間層から出力される特徴量で表現された環境情報を利用して、上記実施形態と同様に動作することができる。
<4.4>
上記実施形態では、産業用ロボットRの環境を監視するセンサとして、カメラCAが利用されている。しかしながら、産業用ロボットRの環境を監視するセンサは、このような例に限定されなくてもよい。センサは、例えば、カメラ、圧力センサ、ロードセル及びこれらの組み合わせにより構成されてよい。シミュレーションデータ701及び実データ731は、利用するセンサに応じて適宜取得されてよい。
上記実施形態では、産業用ロボットRの環境を監視するセンサとして、カメラCAが利用されている。しかしながら、産業用ロボットRの環境を監視するセンサは、このような例に限定されなくてもよい。センサは、例えば、カメラ、圧力センサ、ロードセル及びこれらの組み合わせにより構成されてよい。シミュレーションデータ701及び実データ731は、利用するセンサに応じて適宜取得されてよい。
<4.5>
上記実施形態では、制御対象のロボット装置として、産業用ロボットRを例示している。しかしながら、制御対象のロボット装置は、自動的に駆動可能に構成された少なくとも1つの駆動部を有している装置であれば、その種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。ロボット装置には、上記産業用ロボットRの他、例えば、自律型ロボット、自動運転動作を実行可能に構成された移動体(例えば、ドローン等の飛行体、自動車等の車両)等が採用されてよい。センサは、ロボット装置のタスクを実行する環境をモニタリング(又はセンシング)可能な装置であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。センサには、例えば、カメラ、LIDARセンサ、サーモセンサ、圧力センサ、ロードセル等が採用されてよい。センサデータ(シミュレーションデータ、実データ)の種類は、センサの種類に応じて適宜選択されてよい。センサデータは、例えば、画像(例えば、RGB画像、深度画像等)データ、LIDARセンサによる測定データ、サーモデータ、圧力データ等であってよい。
上記実施形態では、制御対象のロボット装置として、産業用ロボットRを例示している。しかしながら、制御対象のロボット装置は、自動的に駆動可能に構成された少なくとも1つの駆動部を有している装置であれば、その種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。ロボット装置には、上記産業用ロボットRの他、例えば、自律型ロボット、自動運転動作を実行可能に構成された移動体(例えば、ドローン等の飛行体、自動車等の車両)等が採用されてよい。センサは、ロボット装置のタスクを実行する環境をモニタリング(又はセンシング)可能な装置であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。センサには、例えば、カメラ、LIDARセンサ、サーモセンサ、圧力センサ、ロードセル等が採用されてよい。センサデータ(シミュレーションデータ、実データ)の種類は、センサの種類に応じて適宜選択されてよい。センサデータは、例えば、画像(例えば、RGB画像、深度画像等)データ、LIDARセンサによる測定データ、サーモデータ、圧力データ等であってよい。
図12は、本発明が適用される他の場面の一例として、ロボット装置として自律型ロボットRBを採用した例を示す。自律型ロボットRBは、自律的に動作可能に構成される。自律型ロボットRBは、例えば、調理をするように構成されてよい。本変形例に係る学習装置1Bは、自律型ロボットRBの動作を制御するための抽出器及び制御器を機械学習により構築するように構成されたコンピュータである。本変形例に係る制御装置2Bは、学習装置1Bにより構築された抽出器及び制御器を利用して、自律型ロボットRBの動作を制御するように構成されたコンピュータである。取り扱うセンサ及び各情報の種類が相違し得る点を除き、本変形例に係る学習装置1Bは上記実施形態に係る学習装置1と同様に構成されてよく、本変形例に係る制御装置2Bは上記実施形態に係る制御装置2と同様に構成されてよい。
自律型ロボットRBの環境を監視するセンサは、例えば、カメラ、サーモセンサ、マイクロフォン及びこれらの組み合わせにより構成されてよい。各環境情報は、セグメンテーション情報及びタスクの実行に関連する対象物の属性に関する情報の少なくともいずれかを含んでよい。タスクが調理である場合、タスクの実行に関連する対象物は、例えば、食材、調理器具等である。対象物は、単なる物だけではなく、人物を含んでもよい。状態情報は、例えば、自律型ロボットRBの駆動部の位置、向き、角度、加速度等を含んでよい。制御コマンドは、自律型ロボットRBの駆動量、出力音声及び画面表示の少なくともいずれかを規定してよい。本変形例によれば、自律型ロボットRBの動作を制御するための制御モジュールを構築することができる。なお、音声出力及び画面表示を行う場合、自律型ロボットRBは、対応する出力装置(例えば、スピーカ、ディスプレイ)を備える。
図13は、本発明が適用される他の場面の一例として、自動運転動作を実行可能に構成された車両RCをロボット装置として採用した例を示す。車両RCは、移動体の位置例である。車両RCは、アクセル、ブレーキ、ハンドル、ライト、クラクション等の一般的な車両の構成を備えている。本変形例に係る学習装置1Cは、車両RCの動作を制御するための抽出器及び制御器を機械学習により構築するように構成されたコンピュータである。本変形例に係る制御装置2Cは、学習装置1Cにより構築された抽出器及び制御器を利用して、車両RCの動作を制御するように構成されたコンピュータである。取り扱うセンサ及び各情報の種類が相違し得る点を除き、本変形例に係る学習装置1Cは上記実施形態に係る学習装置1と同様に構成されてよく、本変形例に係る制御装置2Cは上記実施形態に係る制御装置2と同様に構成されてよい。
車両RCの環境を監視するセンサは、例えば、カメラ、LIDAR(ライダ)センサ及びこれらの組み合わせにより構成されてよい。各環境情報は、例えば、移動体の進行する通路に関する情報及び移動体の進行方向に存在する対象物に関する情報の少なくともいずれかを含んでよい。本変形例では、移動体の進行する通路は、車両RCが走行可能な道路である。また、移動体の進行方向に存在する対象物は、例えば、信号機、障害物(人、物)等である。状態情報は、例えば、移動体の移動状態に関する情報等を含んでよい。本変形例では、状態情報は、例えば、車両RCのアクセルの現在量、ブレーキの現在量、ハンドルの現在の操舵角、ライトの点灯の有無、クラクションの使用の有無等を含んでよい。制御コマンドは、例えば、車両RCのアクセル量、ブレーキ量、ハンドルの操舵角、ライトの点灯及びクラクションの使用の少なくともいずれかを規定してよい。本変形例によれば、車両RCの動作を制御するための制御モジュールを構築することができる。
100…制御システム、
1…学習装置、
11…制御部、12…記憶部、13…通信インタフェース、
14…入力装置、15…出力装置、16…ドライブ、
111…第1データ取得部、112…第2データ取得部、
113…第3データ取得部、
114…第1学習処理部、115…第2学習処理部、
116…保存処理部、
121…学習プログラム、
125…第1学習結果データ、128…第2学習結果データ、
2…制御装置、
21…制御部、22…記憶部、23…通信インタフェース、
24…外部インタフェース、
25…入力装置、26…出力装置、27…ドライブ、
211…データ取得部、212…情報抽出部、
213…コマンド決定部、214…動作制御部、
221…制御プログラム、
5…抽出器、
51…第1部分、
511…畳み込み層、512…プーリング層、
513…全結合層、
52…第2部分、
521…畳み込み層、522…プーリング層、
523…全結合層、
53…第3部分、
531…全結合層、532…アップサンプリング層、
533…畳み込み層、
6…制御器、
61…入力層、62…中間(隠れ)層、63…出力層、
70…第1学習データセット、
701…シミュレーションデータ(訓練データ)、
702…第1環境情報(正解データ)、
73…第2学習データセット、
731…実データ(訓練データ)、
732…第2環境情報(正解データ)、
76…第3学習データセット、
761…第3環境情報(訓練データ)、
762…状態情報(訓練データ)、
763…制御コマンド(正解データ)、
80…画像データ(センサデータ)、
81…環境情報、
83…状態情報、85…制御コマンド、
91・92…記憶媒体、
CA…カメラ、R…産業用ロボット(ロボット装置)
1…学習装置、
11…制御部、12…記憶部、13…通信インタフェース、
14…入力装置、15…出力装置、16…ドライブ、
111…第1データ取得部、112…第2データ取得部、
113…第3データ取得部、
114…第1学習処理部、115…第2学習処理部、
116…保存処理部、
121…学習プログラム、
125…第1学習結果データ、128…第2学習結果データ、
2…制御装置、
21…制御部、22…記憶部、23…通信インタフェース、
24…外部インタフェース、
25…入力装置、26…出力装置、27…ドライブ、
211…データ取得部、212…情報抽出部、
213…コマンド決定部、214…動作制御部、
221…制御プログラム、
5…抽出器、
51…第1部分、
511…畳み込み層、512…プーリング層、
513…全結合層、
52…第2部分、
521…畳み込み層、522…プーリング層、
523…全結合層、
53…第3部分、
531…全結合層、532…アップサンプリング層、
533…畳み込み層、
6…制御器、
61…入力層、62…中間(隠れ)層、63…出力層、
70…第1学習データセット、
701…シミュレーションデータ(訓練データ)、
702…第1環境情報(正解データ)、
73…第2学習データセット、
731…実データ(訓練データ)、
732…第2環境情報(正解データ)、
76…第3学習データセット、
761…第3環境情報(訓練データ)、
762…状態情報(訓練データ)、
763…制御コマンド(正解データ)、
80…画像データ(センサデータ)、
81…環境情報、
83…状態情報、85…制御コマンド、
91・92…記憶媒体、
CA…カメラ、R…産業用ロボット(ロボット装置)
Claims (11)
- ロボット装置のタスクを実行する環境を監視するセンサをシミュレートすることで生成されたシミュレーションデータ、及び前記シミュレーションデータに表れる前記タスクを実行する環境に関する第1環境情報の組み合わせによりそれぞれ構成された複数の第1学習データセットを取得する第1データ取得部と、
前記センサから得られた実データ、及び前記実データに表れる前記タスクを実行する環境に関する第2環境情報の組み合わせによりそれぞれ構成された複数の第2学習データセットを取得する第2データ取得部と、
前記タスクを実行する環境に関する第3環境情報及び前記タスクを実行する際の前記ロボット装置の状態に関する状態情報、並びに前記第3環境情報及び前記状態情報により示される条件下で前記タスクを前記ロボット装置に実行させるための制御コマンドの組み合わせによりそれぞれ構成された複数の第3学習データセットを取得する第3データ取得部と、
前記第1学習データセット及び前記第2学習データセットを利用して、抽出器の機械学習を実施する第1学習処理部と、
前記第3学習データセットを利用して、制御器の機械学習を実施する第2学習処理部と、
を備え、
前記抽出器の機械学習を実施することは、
前記各第1学習データセットについて、前記シミュレーションデータから、対応する前記第1環境情報と一致する環境情報を抽出するように前記抽出器を訓練する第1訓練ステップと、
前記第1訓練ステップを実行した後、前記各第2学習データセットについて、前記実データから、対応する前記第2環境情報と一致する環境情報を抽出するように前記抽出器を訓練する第2訓練ステップと、
を含み、
前記制御器の機械学習を実施することは、前記第3環境情報及び前記状態情報が入力されると、対応する前記制御コマンドと一致する制御コマンドを出力するように前記制御器を訓練する訓練ステップを含む、
学習装置。 - 前記各第1学習データセットの前記シミュレーションデータは、前記センサをシミュレートする条件をランダムに変更しながら生成される、
請求項1に記載の学習装置。 - 前記抽出器は、ニューラルネットワークにより構成され、
前記ニューラルネットワークは、第1部分、第2部分、及び第3部分に分かれており、
前記第1部分及び前記第2部分は、前記ニューラルネットワークの入力側に並列に配置され、同じ構造を有することにより共通のパラメータを有しており、
前記第1部分は、前記シミュレーションデータの入力を受け付けるように構成され、
前記第2部分は、前記実データの入力を受け付けるように構成され、
前記第3部分は、前記ニューラルネットワークの出力側に配置され、前記第1部分及び前記第2部分それぞれの出力を受け付けるように構成され、
前記第1訓練ステップでは、前記第1学習処理部は、前記各第1学習データセットについて、前記シミュレーションデータを前記第1部分に入力すると、対応する前記第1環境情報と一致する出力値が前記第3部分から出力されるように、前記第1部分及び前記第3部分それぞれのパラメータの値を調整し、
前記第1訓練ステップを実行した後、前記第2訓練ステップを実行する前に、前記第1学習処理部は、前記第1部分のパラメータの調整した値を前記第2部分のパラメータに複製する、
請求項1又は2に記載の学習装置。 - 前記第2訓練ステップでは、前記第1学習処理部は、前記第3部分のパラメータの値は固定のまま、前記各第2学習データセットについて、前記実データを前記第2部分に入力すると、対応する前記第2環境情報と一致する出力値が前記第3部分から出力されるように、前記第2部分のパラメータの値を調整する、
請求項3に記載の学習装置。 - 前記第3環境情報は、前記機械学習が完了した後の前記抽出器を利用して、前記センサをシミュレートすることで生成された他のシミュレーションデータから抽出することで得られる、
請求項1から4のいずれか1項に記載の学習装置。 - 前記ロボット装置は、生産ラインにおける産業用ロボットであり、
前記センサは、カメラ、圧力センサ、ロードセル及びこれらの組み合わせにより構成され、
前記各環境情報は、セグメンテーション情報、前記タスクの対象となるワークの属性に関する情報、前記タスクを実行する位置に関する情報、障害物の有無を示す情報、及び障害物の属性に関する情報の少なくともいずれかを含み、
前記制御コマンドは、前記産業用ロボットの駆動量を規定する、
請求項1から5のいずれか1項に記載の学習装置。 - 前記ロボット装置は、自律的に動作可能に構成された自律型ロボットであり、
前記センサは、カメラ、サーモセンサ、マイクロフォン及びこれらの組み合わせにより構成され、
前記各環境情報は、セグメンテーション情報及び前記タスクの実行に関連する対象物の属性に関する情報の少なくともいずれかを含み、
前記制御コマンドは、前記自律型ロボットの駆動量、出力音声及び画面表示の少なくともいずれかを規定する、
請求項1から5のいずれか1項に記載の学習装置。 - 前記ロボット装置は、自動運転動作を実行可能に構成された移動体であり、
前記センサは、カメラ、ライダセンサ及びこれらの組み合わせにより構成され、
前記各環境情報は、前記移動体の進行する通路に関する情報及び前記移動体の進行方向に存在する対象物に関する情報の少なくともいずれかを含み、
前記制御コマンドは、前記車両のアクセル量、ブレーキ量、ハンドルの操舵角、ライトの点灯及びクラクションの使用の少なくともいずれかを規定する、
請求項1から5のいずれか1項に記載の学習装置。 - ロボット装置の動作を制御する制御装置であって、
前記ロボット装置のタスクを実行する環境を監視するセンサにより得られたセンサデータ、及び前記タスクを実行する際の前記ロボット装置の状態に関する状態情報を取得するデータ取得部と、
請求項1から8のいずれか1項に記載の学習装置により構築された機械学習済みの前記抽出器を利用して、前記タスクを実行する環境に関する環境情報を前記センサデータから抽出する情報抽出部と、
前記学習装置により構築された機械学習済みの前記制御器を利用して、前記環境情報及び前記状態情報により示される条件下で前記タスクを前記ロボット装置に実行させるための制御コマンドを決定するコマンド決定部と、
決定された前記制御コマンドに基づいて、前記ロボット装置の動作を制御する動作制御部と、
を備える、
制御装置。 - コンピュータが、
ロボット装置のタスクを実行する環境を監視するセンサをシミュレートすることで生成されたシミュレーションデータ、及び前記シミュレーションデータに表れる前記タスクを実行する環境に関する第1環境情報の組み合わせによりそれぞれ構成された複数の第1学習データセットを取得するステップと、
前記センサから得られた実データ、及び前記実データに表れる前記タスクを実行する環境に関する第2環境情報の組み合わせによりそれぞれ構成された複数の第2学習データセットを取得するステップと、
前記タスクを実行する環境に関する第3環境情報及び前記タスクを実行する際の前記ロボット装置の状態に関する状態情報、並びに前記第3環境情報及び前記状態情報により示される条件下で前記タスクを前記ロボット装置に実行させるための制御コマンドの組み合わせによりそれぞれ構成された複数の第3学習データセットを取得するステップと、
前記第1学習データセット及び前記第2学習データセットを利用して、抽出器の機械学習を実施するステップと、
前記第3学習データセットを利用して、制御器の機械学習を実施するステップ、を実行し、
前記抽出器の機械学習を実施するステップは、
前記各第1学習データセットについて、前記シミュレーションデータから、対応する前記第1環境情報と一致する環境情報を抽出するように前記抽出器を訓練する第1訓練ステップと、
前記第1訓練ステップを実行した後、前記各第2学習データセットについて、前記実データから、対応する前記第2環境情報と一致する環境情報を抽出するように前記抽出器を訓練する第2訓練ステップと、
を含み、
前記制御器の機械学習を実施するステップは、前記第3環境情報及び前記状態情報が入力されると、対応する前記制御コマンドと一致する制御コマンドを出力するように前記制御器を訓練する訓練ステップを含む、
学習方法。 - コンピュータに、
ロボット装置のタスクを実行する環境を監視するセンサをシミュレートすることで生成されたシミュレーションデータ、及び前記シミュレーションデータに表れる前記タスクを実行する環境に関する第1環境情報の組み合わせによりそれぞれ構成された複数の第1学習データセットを取得するステップと、
前記センサから得られた実データ、及び前記実データに表れる前記タスクを実行する環境に関する第2環境情報の組み合わせによりそれぞれ構成された複数の第2学習データセットを取得するステップと、
前記タスクを実行する環境に関する第3環境情報及び前記タスクを実行する際の前記ロボット装置の状態に関する状態情報、並びに前記第3環境情報及び前記状態情報により示される条件下で前記タスクを前記ロボット装置に実行させるための制御コマンドの組み合わせによりそれぞれ構成された複数の第3学習データセットを取得するステップと、
前記第1学習データセット及び前記第2学習データセットを利用して、抽出器の機械学習を実施するステップと、
前記第3学習データセットを利用して、制御器の機械学習を実施するステップ、
を実行させるための学習プログラムであって、
前記抽出器の機械学習を実施するステップは、
前記各第1学習データセットについて、前記シミュレーションデータから、対応する前記第1環境情報と一致する環境情報を抽出するように前記抽出器を訓練する第1訓練ステップと、
前記第1訓練ステップを実行した後、前記各第2学習データセットについて、前記実データから、対応する前記第2環境情報と一致する環境情報を抽出するように前記抽出器を訓練する第2訓練ステップと、
を含み、
前記制御器の機械学習を実施するステップは、前記第3環境情報及び前記状態情報が入力されると、対応する前記制御コマンドと一致する制御コマンドを出力するように前記制御器を訓練する訓練ステップを含む、
学習プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19869874.8A EP3862830A4 (en) | 2018-10-01 | 2019-09-24 | LEARNING DEVICE, CONTROL DEVICE, LEARNING METHOD AND LEARNING PROGRAM |
CN201980051955.0A CN112534367B (zh) | 2018-10-01 | 2019-09-24 | 学习装置、控制装置、学习方法以及计算机可读存储介质 |
US17/269,534 US11971709B2 (en) | 2018-10-01 | 2019-09-24 | Learning device, control device, learning method, and recording medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018186800A JP7110884B2 (ja) | 2018-10-01 | 2018-10-01 | 学習装置、制御装置、学習方法、及び学習プログラム |
JP2018-186800 | 2018-10-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020071174A1 true WO2020071174A1 (ja) | 2020-04-09 |
Family
ID=70055307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/037273 WO2020071174A1 (ja) | 2018-10-01 | 2019-09-24 | 学習装置、制御装置、学習方法、及び学習プログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US11971709B2 (ja) |
EP (1) | EP3862830A4 (ja) |
JP (1) | JP7110884B2 (ja) |
CN (1) | CN112534367B (ja) |
WO (1) | WO2020071174A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022081454A1 (en) * | 2020-10-13 | 2022-04-21 | X Development Llc | Simulating multiple robots in virtual environments |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10552736B1 (en) * | 2019-03-06 | 2020-02-04 | Capital One Services, Llc | Counter data generation for data profiling using only true samples |
US12045718B2 (en) * | 2020-12-16 | 2024-07-23 | Micron Technology, Inc. | Evolutionary imitation learning |
TW202407555A (zh) * | 2022-08-02 | 2024-02-16 | 日商索尼半導體解決方案公司 | 資訊處理裝置、資訊處理方法、及記錄媒體 |
KR102594810B1 (ko) * | 2022-10-04 | 2023-10-30 | 세이지리서치 주식회사 | 비전 검사를 위한 이미지 생성을 위한 도메인 변환기의 학습 방법 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004322224A (ja) * | 2003-04-21 | 2004-11-18 | Yaskawa Electric Corp | ロボット制御装置 |
JP2010527086A (ja) * | 2007-07-23 | 2010-08-05 | ソウル大学校産学協力団 | キャラクタシミュレーション方法およびシステム |
JP2012043225A (ja) * | 2010-08-19 | 2012-03-01 | National Institute Of Information & Communication Technology | 相互機械学習装置、相互機械学習方法、及びプログラム |
JP2016107346A (ja) * | 2014-12-02 | 2016-06-20 | 国立大学法人東京工業大学 | 動作の転移装置、動作の転移方法及びプログラム |
KR20170052870A (ko) * | 2015-11-05 | 2017-05-15 | 삼성전자주식회사 | 알고리즘 학습 방법 및 장치 |
JP2017185577A (ja) * | 2016-04-04 | 2017-10-12 | ファナック株式会社 | シミュレーション結果を利用して学習を行う機械学習装置,機械システム,製造システムおよび機械学習方法 |
US9811074B1 (en) * | 2016-06-21 | 2017-11-07 | TruPhysics GmbH | Optimization of robot control programs in physics-based simulated environment |
JP2018107315A (ja) | 2016-12-27 | 2018-07-05 | ファナック株式会社 | プリント板組立作業のための機械学習装置、制御装置、産業機械、組立システム及び機械学習方法 |
JP2018136767A (ja) * | 2017-02-22 | 2018-08-30 | オムロン株式会社 | 光学センサ、学習装置、及び画像処理システム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7890194B2 (en) * | 2005-12-13 | 2011-02-15 | Brooks Automation, Inc. | Robotics programming interface |
EP3326117A1 (en) | 2015-07-23 | 2018-05-30 | Toyota Motor Europe | System and computer-based method for simulating a human-like control behaviour in an environmental context. |
JP6148316B2 (ja) * | 2015-07-31 | 2017-06-14 | ファナック株式会社 | 故障条件を学習する機械学習方法及び機械学習装置、並びに該機械学習装置を備えた故障予知装置及び故障予知システム |
CN108885722A (zh) | 2016-03-25 | 2018-11-23 | 索尼公司 | 信息处理设备 |
JP2017182129A (ja) | 2016-03-28 | 2017-10-05 | ソニー株式会社 | 情報処理装置。 |
CN106080590B (zh) | 2016-06-12 | 2018-04-03 | 百度在线网络技术(北京)有限公司 | 车辆控制方法和装置以及决策模型的获取方法和装置 |
JP6469065B2 (ja) | 2016-10-28 | 2019-02-13 | ファナック株式会社 | 機械学習装置及び加工時間予測装置 |
JP6457473B2 (ja) | 2016-12-16 | 2019-01-23 | ファナック株式会社 | ロボットおよびレーザスキャナの動作を学習する機械学習装置,ロボットシステムおよび機械学習方法 |
CN107479368B (zh) * | 2017-06-30 | 2021-09-21 | 北京百度网讯科技有限公司 | 一种基于人工智能的训练无人机控制模型的方法及*** |
CN107392125A (zh) | 2017-07-11 | 2017-11-24 | 中国科学院上海高等研究院 | 智能模型的训练方法/***、计算机可读存储介质及终端 |
-
2018
- 2018-10-01 JP JP2018186800A patent/JP7110884B2/ja active Active
-
2019
- 2019-09-24 EP EP19869874.8A patent/EP3862830A4/en active Pending
- 2019-09-24 WO PCT/JP2019/037273 patent/WO2020071174A1/ja unknown
- 2019-09-24 US US17/269,534 patent/US11971709B2/en active Active
- 2019-09-24 CN CN201980051955.0A patent/CN112534367B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004322224A (ja) * | 2003-04-21 | 2004-11-18 | Yaskawa Electric Corp | ロボット制御装置 |
JP2010527086A (ja) * | 2007-07-23 | 2010-08-05 | ソウル大学校産学協力団 | キャラクタシミュレーション方法およびシステム |
JP2012043225A (ja) * | 2010-08-19 | 2012-03-01 | National Institute Of Information & Communication Technology | 相互機械学習装置、相互機械学習方法、及びプログラム |
JP2016107346A (ja) * | 2014-12-02 | 2016-06-20 | 国立大学法人東京工業大学 | 動作の転移装置、動作の転移方法及びプログラム |
KR20170052870A (ko) * | 2015-11-05 | 2017-05-15 | 삼성전자주식회사 | 알고리즘 학습 방법 및 장치 |
JP2017185577A (ja) * | 2016-04-04 | 2017-10-12 | ファナック株式会社 | シミュレーション結果を利用して学習を行う機械学習装置,機械システム,製造システムおよび機械学習方法 |
US9811074B1 (en) * | 2016-06-21 | 2017-11-07 | TruPhysics GmbH | Optimization of robot control programs in physics-based simulated environment |
JP2018107315A (ja) | 2016-12-27 | 2018-07-05 | ファナック株式会社 | プリント板組立作業のための機械学習装置、制御装置、産業機械、組立システム及び機械学習方法 |
JP2018136767A (ja) * | 2017-02-22 | 2018-08-30 | オムロン株式会社 | 光学センサ、学習装置、及び画像処理システム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022081454A1 (en) * | 2020-10-13 | 2022-04-21 | X Development Llc | Simulating multiple robots in virtual environments |
US11813748B2 (en) | 2020-10-13 | 2023-11-14 | Google Llc | Simulating multiple robots in virtual environments |
Also Published As
Publication number | Publication date |
---|---|
EP3862830A1 (en) | 2021-08-11 |
US11971709B2 (en) | 2024-04-30 |
EP3862830A4 (en) | 2022-07-06 |
US20210181728A1 (en) | 2021-06-17 |
JP7110884B2 (ja) | 2022-08-02 |
CN112534367B (zh) | 2023-09-19 |
CN112534367A (zh) | 2021-03-19 |
JP2020057161A (ja) | 2020-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020071174A1 (ja) | 学習装置、制御装置、学習方法、及び学習プログラム | |
Zhang et al. | Towards vision-based deep reinforcement learning for robotic motion control | |
CN111587408B (zh) | 机器人导航和对象跟踪 | |
KR102365465B1 (ko) | 로봇 행동들에 대한 보정들의 결정 및 이용 | |
US11724398B2 (en) | Efficient robot control based on inputs from remote client devices | |
US10981272B1 (en) | Robot grasp learning | |
CN110000785B (zh) | 农业场景无标定机器人运动视觉协同伺服控制方法与设备 | |
US11745355B2 (en) | Control device, control method, and non-transitory computer-readable storage medium | |
US11823048B1 (en) | Generating simulated training examples for training of machine learning model used for robot control | |
CN109397285B (zh) | 一种装配方法、装配装置及装配设备 | |
JP6671694B1 (ja) | 機械学習装置、機械学習システム、データ処理システム及び機械学習方法 | |
JP6915605B2 (ja) | 画像生成装置、ロボット訓練システム、画像生成方法、及び画像生成プログラム | |
JP7117237B2 (ja) | ロボット制御装置、ロボットシステム及びロボット制御方法 | |
JP6907206B2 (ja) | 運動計画の方法、運動計画のための装置及び非一時的コンピュータ可読記録媒体 | |
CN114556383A (zh) | 模型生成装置、推定装置、模型生成方法以及模型生成程序 | |
US20210122035A1 (en) | Machine vision parsing of three-dimensional environments employing neural networks | |
CN114585487A (zh) | 通过使用基于视觉的机器人任务模型训练模拟到真实模型来减轻现实差距 | |
WO2022239544A1 (ja) | シミュレーション情報反映装置、方法、プログラム、及びシステム | |
JP6904287B2 (ja) | 制御装置、制御方法、及び制御プログラム | |
Macchini et al. | Does spontaneous motion lead to intuitive Body-Machine Interfaces? A fitness study of different body segments for wearable telerobotics | |
CN116529033A (zh) | 细粒度工业机器人组件 | |
CN114571456B (zh) | 基于机器人技能学习的电连接器装配方法及*** | |
Fornas et al. | Fitting primitive shapes in point clouds: a practical approach to improve autonomous underwater grasp specification of unknown objects | |
Gomes et al. | Deep Reinforcement learning applied to a robotic pick-and-place application | |
Aksu et al. | Virtual experimental investigation for industrial robotics in gazebo environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19869874 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2019869874 Country of ref document: EP Effective date: 20210503 |