WO2022230280A1 - ロボット制御システム、ロボット制御方法及びプログラム - Google Patents
ロボット制御システム、ロボット制御方法及びプログラム Download PDFInfo
- Publication number
- WO2022230280A1 WO2022230280A1 PCT/JP2022/003944 JP2022003944W WO2022230280A1 WO 2022230280 A1 WO2022230280 A1 WO 2022230280A1 JP 2022003944 W JP2022003944 W JP 2022003944W WO 2022230280 A1 WO2022230280 A1 WO 2022230280A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- work
- robot
- progress
- type
- current
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 224
- 238000012545 processing Methods 0.000 claims abstract description 54
- 238000004364 calculation method Methods 0.000 claims abstract description 5
- 230000008569 process Effects 0.000 claims description 195
- 230000033001 locomotion Effects 0.000 claims description 106
- 230000009471 action Effects 0.000 claims description 40
- 239000012636 effector Substances 0.000 claims description 17
- 238000010801 machine learning Methods 0.000 claims description 15
- 238000003384 imaging method Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 18
- 238000003860 storage Methods 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 8
- 238000007781 pre-processing Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 210000004027 cell Anatomy 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Images
Classifications
-
- 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
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
-
- 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/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- 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
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40564—Recognize shape, contour of object, extract position and orientation
-
- 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/40—Robotics, robotics mapping to robotics vision
- G05B2219/40584—Camera, non-contact sensor mounted on wrist, indep from gripper
Definitions
- the present invention relates to a robot control system, a robot control method, and a program for controlling a robot device that performs work.
- robot devices represented by industrial robots and mobile robots are mainly configured to repeatedly execute memorized actions in order.
- the robot device may not be able to autonomously perform actions suitable for the work objects. Therefore, there is known a system that determines an object to be worked on by a robot device using image data captured by a camera or the like, and controls the robot device to perform an action based on the determination result.
- Patent Document 1 discloses an attribute detection step of detecting an attribute of a workpiece, a control condition setting step of setting a control condition based on the attribute of the workpiece and behavior information stored in a storage unit, and the control condition setting and a moving step of moving the workpiece based on control conditions set in the step.
- Work attributes are, for example, shape, size, weight, and flexibility.
- the work applied to a robot device that performs work autonomously is a relatively simple work represented by pick-and-place, and one work is performed on one work target by a single motion. often completed.
- operations represented by assembly, installation, disassembly, repair, etc. it is necessary to combine and execute several processes so as to perform a plurality of operations on one work object.
- a robot control system includes a robot apparatus, a work situation sensor that acquires information indicating a work situation of the robot apparatus with respect to a work target, and information acquired by the work situation sensor. Indicates the current work status acquired by the work status sensor using a learning model machine-learned from learning data including information indicating the work status obtained, the type of work target, and the progress of the work process. At least one or more of a processing unit that estimates and outputs the type of work object and the degree of progress of the current work process corresponding to the information, and an operation pattern of the robot device that corresponds to the current work process. and a motion selection unit that selects the motion pattern generation unit based on the type of the work target and the progress of the work process output by the arithmetic processing unit.
- the operation content of the robot device is determined based on the degree of progress of the current work process.
- FIG. 1 is a schematic diagram showing an example of the overall configuration of a robot control system according to a first embodiment of the present invention
- FIG. 1 is a schematic diagram showing an example of a hardware configuration for executing software of a robot control system according to a first embodiment of the present invention
- FIG. It is an external view showing an example of work by a robot device.
- FIG. 3 is a schematic diagram showing an example of a software configuration of a learning program for performing machine learning on a learning model, stored in the learning controller of the robot control system according to the first embodiment of the present invention
- FIG. 4 is a schematic diagram showing an example of learning data used by a learning program for machine learning of a learning model in the robot control system according to the first embodiment of the present invention;
- FIG. 4 is a schematic diagram showing an example of the software configuration of an action command program that executes control using a machine-learned learning model stored in the learning controller of the robot control system according to the first embodiment of the present invention.
- 4 is a flow chart showing an example procedure of a method for executing control using a learning model machine-learned by an action command program in the robot control system according to the first embodiment of the present invention.
- FIG. 9 is a schematic diagram showing an example of learning data used by a learning program for machine learning of a learning model in the robot control system according to the second embodiment of the present invention;
- FIG. 11 is a schematic diagram showing an example of learning data used by a learning program for machine learning of a learning model in the robot control system according to the third embodiment of the present invention;
- FIG. 11 is a flow chart showing an example procedure of a method for executing control using a learning model machine-learned by an action command program in a robot control system according to a third embodiment of the present invention;
- FIG. It is a schematic diagram showing an example of the whole robot control system composition concerning a 4th embodiment of the present invention.
- FIG. 11 is a schematic diagram showing an example of learning data used by a learning program for machine learning of a learning model in a robot control system according to a fourth embodiment of the present invention;
- FIG. 1 is a schematic diagram showing an example of the overall configuration of a robot control system according to the first embodiment.
- the robot device 1 includes a mobile carriage 9, a robot arm 11 mounted on the mobile carriage 9, an end effector 12 attached to the tip of the robot arm 11, and near the end effector 12. has a camera 10 attached to it.
- the robot arm 11 has one or more joints, and can be freely moved by being driven by actuators such as motors (not shown) provided at the joints.
- Each device of the robot device 1 is connected to the robot control device 7 installed on the mobile carriage 9 .
- Each device of the robot apparatus 1 receives a control command (motor current of the robot arm 11, motor current of the end effector 12, etc.) from the robot controller 7 and operates.
- the robot device 1 drives the robot arm 11 and the end effector 12 to perform work on the work object 2 on the workbench 3 .
- each device of the robot device 1 transmits information representing the state of the robot device 1 to the robot control device 7 .
- the information representing the state of the robot device 1 is, for example, the joint angle of the robot arm 11, the image captured by the camera 10 (camera image), and the like.
- the information representing the state of the robot device 1 may be simply referred to as "the state of the robot device 1".
- the camera 10 has a function of obtaining an image signal (camera image) of an optical image including the work object 2 handled by the robot device 1 as a subject.
- the camera 10 is an example of a work status sensor that acquires information indicating the work status of the robot device 1 .
- an imaging device that captures an image including at least the work target 2 as information indicating the work status of the robot device 1 can be used.
- the camera image is set to an angle of view that allows the entire upper surface of the workbench 3 to be photographed.
- the robot control device 7 is connected to the learning control device 8 via a network 6 such as the Internet or LAN.
- the robot control device 7 transmits information representing the state of the robot device 1 obtained from the robot device 1 to the learning control device 8 via the network 6 . Further, the robot control device 7, based on the operation command (the target joint angle of the robot arm 11, etc.) output by the learning type control device 8 and the information representing the state of the robot device 1 input from the robot device 1, A control command for the robot device 1 is calculated.
- the robot device 1 is a control target of the robot control system 100
- the robot control system 100 may be configured without the robot device 1 .
- FIG. 2 is a schematic diagram showing an example of a hardware configuration for executing software of the robot control system 100. As shown in FIG. Note that the interface is described as "I/F" in FIG.
- the robot control device 7 is a computer in which a control device 71, a communication interface 72, a control interface 73, and a storage device 74 are electrically connected to each other via a system bus.
- the control device 71 includes a CPU (Central Processing Unit), a RAM (Random Access Memory), a ROM (Read Only Memory), etc., and performs information processing based on programs and various data that implement functions according to the present embodiment. configured to run.
- Another processing device such as an MPU (Micro Processing Unit) may be used instead of the CPU.
- the communication interface 72 is an interface for connecting with the learning control device 8 and transmitting and receiving an operation command to the robot device 1 and data regarding the state of the robot device 1 .
- Communication interface 72 communicates with communication interface 82 of learning control device 8 via network 6 .
- the control interface 73 is an interface for connecting to the robot device 1 and transmitting and receiving control commands to the robot device 1 and data regarding the state of the robot device 1 .
- the control interface 73 is appropriately configured according to the equipment that configures the robot apparatus 1 . Since the configuration of the robot apparatus 1 connected to the control interface 73 has already been described with reference to FIG. 1, description thereof will be omitted here.
- the storage device 74 is an auxiliary storage device such as a hard disk drive or semiconductor memory, and stores control programs 741 and the like executed by the control device 71 .
- the ROM and storage device 74 permanently record programs, data, and the like necessary for the CPU of the control device 71 to operate. Used as an example of a recording medium.
- the control program 741 stored in the storage device 74 is developed in the RAM of the control device 71 and executed.
- the control program 741 controls the robot device 1 based on an operation command generated by the learning control device 8 input from the communication interface 72 and information representing the state of the robot device 1 input from the control interface 73. Generate directives. The control program 741 then outputs a control command from the control interface 73 to the robot device 1 . The control program 741 also outputs information representing the state of the robot apparatus 1 input from the control interface 73 to the learning control apparatus 8 from the communication interface 72 .
- the learning type control device 8 is a computer in which a control device 81, a communication interface 82, an input device 83, and a storage device 84 are electrically connected to each other via a system bus.
- the control device 81 includes a CPU, a RAM, a ROM, and the like, and is configured to execute information processing based on programs and various data that implement functions according to the present embodiment.
- the communication interface 82 is an interface for connecting to the robot control device 7 and transmitting/receiving an operation command of the robot device 1 to the robot control device 7 and information representing the state of the robot device 1 .
- the communication interface 82 communicates with the communication interface 72 of the robot controller 7 via the network 6 .
- the input device 83 is a device such as a mouse or keyboard that takes in input from the user, and controls the execution of the program of the learning control device 8.
- the storage device 84 is an auxiliary storage device such as a hard disk drive or semiconductor memory, and stores a learning program 851 executed by the control device 81, an operation command program 861, learning data 852, model parameter data 862, and the like.
- the ROM and storage device 84 permanently record programs, data, etc. necessary for the CPU of the control device 81 to operate. Used as an example of a recording medium.
- the learning type control device 8 is activated by power-on or the like, the learning program 851 and the operation command program 861 stored in the storage device 84 are developed in the RAM of the control device 81 .
- the learning program 851 generates and stores learning data 852 using information representing the state of the robot apparatus 1 input from the communication interface 82 when a user instructs execution of learning via the input device 83 . Record on device 84 . Using this learning data 852, the learning program 851 machine-learns a learning model 856 (see FIG. 4), which will be described later, and generates model parameter data 862 as learned parameters. Learning model 856 is a so-called supervised learning model.
- the motion command program 861 reads the model parameter data 862 when the user instructs the execution of the control of the robot device 1 via the input device 83 .
- the motion command program 861 uses the state of the robot device 1 obtained from the communication interface 82 and a later-described learning model 856 (see FIG. 6) to calculate motion commands for the robot device 1 .
- a learning model 856 shown in FIG. 6 is a trained model (inference program) in which the learning result (model parameter data 862) is reflected.
- the motion command program 861 outputs the generated motion command for the robot device 1 to the robot control device 7 from the communication interface 82 .
- the robot control device 7 controls the operation of the robot device 1 by outputting a control command to the robot device 1 based on the motion command of the robot device 1 input from the learning type control device 8 .
- the robot control device 7 and the learning control device 8 are not limited to being connected via the network 6 .
- the robot control device 7 and the learning type control device 8 may be configured such that the communication interfaces 72 and 82 are directly connected via a dedicated line or the like.
- the control interface 73 and the communication interface 72 may be the same, and the robot control device 7 may be configured to output control commands to the robot device 1 via the network 6 .
- the learning program 851 and the operation command program 861 may not be stored in the same learning control device 8, and may be stored in different learning control devices.
- the learning control device 8 may be configured to communicate the learning data 852 and the model parameter data 862 via the network 6 with a learning control device at another site.
- the learning type control device 8 and the robot control device 7 may be configured with the same hardware. That is, the control program 741, the learning program 851, and the operation instruction program 861 may be configured to be executed on the same hardware.
- the learning type control device 8 associates the type of the work target 2 (hereinafter also referred to as "object type”) with the progress of the work process (hereinafter also referred to as "process progress"). 3 to 7, a method of learning the robot apparatus 1 based on the process progress and determining the operation of the robot apparatus 1 based on the process progress will be described.
- FIG. 3 is an external view showing an example of work performed by the robot device 1. As shown in FIG. A working example of the robot apparatus 1 will be described with reference to FIG.
- work (assembly work, etc.) consisting of multiple processes, as typified by the cell production system, may be performed in one work place (cell).
- a robot device 1 or a worker 4 assembles a work object 2 placed on a workbench 3 or a work object 2 transported by an automatic carrier 5 .
- the content of work may be changed in response to fluctuations in demand for products.
- the worker 4 who was doing the assembly work moves to a different workbench 3 in response to a change in the production plan and does the work, and the robot device 1 takes over the assembly work that the worker 4 was doing and continues the work. may continue.
- the work object 2 transported by the automatic transport vehicle 5 may be changed in response to a change in the production plan, thereby changing the work content of the assembly work.
- the robot device 1 In order for the robot device 1 to properly perform the work at the site described above, the robot device 1 needs to recognize the type of the work target 2 and the work situation, and perform appropriate actions. That is, it is desirable that the robot device 1 can recognize the progress of the work on the work target 2 and continue to perform appropriate work on the work target 2 based on the progress.
- FIG. 4 is a schematic diagram showing an example of the software configuration of a learning program 851 that machine-learns a learning model 856 stored in the learning control device 8 of the robot control system 100 .
- FIG. 5 is a schematic diagram showing an example of learning data 852 used by the learning program for machine learning of a learning model in the robot control system 100.
- the learning program 851 is configured to include a data preprocessing section 853, a labeling section 854, and a learning processing section 855 as software modules when loaded into the RAM of the control device 81 and executed by the CPU.
- the data preprocessing unit 853 records camera images of the camera 10 input from the communication interface 82 .
- the data preprocessing unit 853 also includes a labeling unit 854 that associates the object type of the work object 2 in the camera image with the process progress label based on the user's instruction via the input device 83 . Then, the data preprocessing unit 853 generates learning data 852 in which the camera image is labeled with the object type and the process progress.
- the work object 2 and the workbench 3 are photographed using the camera 10 during assembly work by the worker 4, the photographed images are transmitted to the learning control device 8, and data preprocessing is performed.
- a part 853 generates learning data 852 .
- the learning data 852 is a type of object (part 1 , part 2, etc.), the position of the object in the image, and the process progress (0: supply, 2: assembly 1 complete, etc.).
- the position of an object in an image can be represented by two-dimensional coordinates with a corner of the upper surface of the workbench 3 as a reference point.
- FIG. Image 1 shows a state in which a plurality of parts 1 and 2 are supplied to workbench 3 before assembly work (the process progress is 0: supply), and part 3 and part 4 are combined in the assembly 1 process. has been completed (process progress is 2: assembly 1 completed).
- the parts are supplied in a state of being housed in a tray indicated by solid lines.
- the image of 2 shows a state in which a plurality of parts 1 and 2 are supplied to the workbench 3 before the assembly work (the process progress is 0: supply), and the parts 3 and 4 are combined and the part 1 is attached to the part 3 (step progress is 3: assembly 2 completed).
- the image 3 shows a state in which a plurality of parts 1 and 2 are supplied to the workbench 3 before assembly work (the process progress is 0: supply), and an assembly 3 in which all of the parts 1 to 4 are combined. has been completed (process progress is 4: assembly 3 completed).
- the data preprocessing unit 853 creates a plurality of data in which a single camera image as shown in FIG.
- the learning processing unit 855 machine-learns the learning model 856 using the learning data 852 generated by the data preprocessing unit 853 .
- the learning processing unit 855 is provided with a learning model 856 that receives the camera image of the learning data 852 as an input and outputs estimation results of the object type and the process progress, and a parameter update amount calculation unit 857 .
- Learning model 856 is configured by a neural network as an example.
- the parameter update amount calculation unit 857 compares the object type and process progress of the learning data 852 with the estimated object type and estimated process progress of the learning model 856, and compares the contents of the learning data 852 and the learning model 856.
- the update amount of the model parameters of the learning model 856 is calculated so that the outputs match.
- the model parameters are weights such as the degree of connectivity between neurons forming the neural network and the firing threshold of neurons.
- the learning processing unit 855 continues to update the model parameters of the learning model 856 according to the update amount calculated by the parameter update amount calculation unit 857 until the predetermined condition is reached.
- the model parameters of the learning model 856 at that time are saved as model parameter data 862 .
- the predetermined condition is that the errors between the object type and process progress of the learning data 852 and the estimated object type and process progress of the learning model 856 are equal to or less than a predetermined value.
- the number of model parameter updates may be set.
- the neural network of the learning model 856 shown in FIG. 4 illustrates a simple multi-layer perceptron (MLP: Multi Layer Perceptron)
- MLP Multi Layer Perceptron
- the neural network of the learning model 856 may be configured using a convolutional network (CNN: Convolutional Neural Network), a recurrent neural network (RNN: Recurrent Neural Network), etc., or a configuration combining these networks.
- CNN Convolutional Neural Network
- RNN Recurrent Neural Network
- the learning method of the learning model 856 is not limited to machine learning based on deep learning using a neural network, and other learning methods may be used.
- FIG. 6 is a schematic diagram showing an example of the software configuration of the motion command program 861 stored in the learning control device 8 of the robot control system 100. As shown in FIG.
- the arithmetic processing unit 863 has a learning model 856 reflecting the model parameter data 862, receives a camera image via the communication interface 82, and outputs the estimated object type of the work object 2 and the estimated process progress.
- the motion selection unit 864 selects the motion content of the robot apparatus 1 based on the estimated object type and the estimated process progress output from the arithmetic processing unit 863 .
- the first motion pattern generation unit 865 generates a first motion pattern (motion command) for realizing the motion content according to the motion content.
- the second motion pattern generation section 866 generates a second motion pattern (motion command) for realizing motion content different from the motion content applied to the first motion pattern generation portion 865 .
- the action command output switching section 867 switches the action commands output from the first action pattern generation section 865 and the second action pattern generation section 866 according to the action selection result of the action selection section 864 .
- FIG. 7 is a flowchart showing a procedure example of a method in which the motion command program 861 executes control using the learning model 856 in the robot control system 100.
- FIG. 7 shows a process in which the motion command program 861 selects the motion of the robot apparatus 1 by means of the arithmetic processing section 863, the motion selection section 864, and the motion pattern generation sections 865 and 866.
- FIG. 7 shows a process in which the motion command program 861 selects the motion of the robot apparatus 1 by means of the arithmetic processing section 863, the motion selection section 864, and the motion pattern generation sections 865 and 866.
- All the processing steps shown in FIG. 7 are executed by the learning control device 8 at predetermined sampling timings. Further, when receiving an execution start command from the outside via the input device 83, the learning type control device 8 develops the operation command program 861 stored in the storage device 84 in the control device 81 and executes it. When the operation instruction program 861 is developed in the RAM of the control device 81 and executed by the CPU, the operation processing unit 863, the operation selection unit 864, the first operation pattern generation unit 865, the second operation pattern generation unit 866, and the It is configured to include an operation command output switching unit 867 as a software module.
- the arithmetic processing unit 863 When the operation command program 861 is started, the arithmetic processing unit 863 first reflects the model parameter data 862 in the learning model 856 (S1), and puts the object type and process progress of the work object 2 into a state in which it can be estimated. . Subsequently, the arithmetic processing unit 863 acquires the camera image captured by the camera 10 via the communication interface 82 (S2). Next, the arithmetic processing unit 863 estimates the object type and process progress of the work object 2 captured in the camera image using the learning model 856, and outputs the estimation result to the operation selection unit 864 (S3).
- the operation selection unit 864 branches subsequent processing according to the content of the process progress estimation result (S4).
- the estimation results output by the arithmetic processing unit 863 include the object type “part 1” and the process progress “supply of parts” (0: supply), the object type “parts 3 and 4” and the process progress includes "the process of assembly 1 is completed” (2: assembly 1 completed), the process proceeds to step S5.
- the motion selection unit 864 switches the output of the motion command output switching unit 867 so that the robot device 1 executes the first motion pattern (S5).
- step S4 the estimation result output by the arithmetic processing unit 863 indicates that the object type is "part 2" and the process progress is "supply of parts” (0: supply), and that the object types are “parts 1, 3, . . . 4" and the process progress includes "process of assembly 2 completed” (3: assembly 2 completed), the process proceeds to step S6. Then, the motion selection unit 864 switches the output of the motion command output switching unit 867 so that the robot device 1 executes the second motion pattern (S6).
- step S4 the estimation result output by the arithmetic processing unit 863 includes the object type “part 1-4” and the process progress degree “assembly 3 process completed” (4: assembly 3 completed). If so, the operation selection unit 864 determines that the assembly work has been completed, and terminates the process.
- step S5 is No. in FIG.
- the operation of gripping the component 1 and attaching it to the component 3 in the situation shown in the image of No. 1 in FIG. 2 is an operation of holding the part 2 and attaching it to the part 3 in the situation shown in the image of FIG.
- the motion selection unit 864 determines whether the motion according to the first motion pattern or the motion according to the second motion pattern is completed (S7).
- the operation selection unit 864 monitors the output of the operation command output switching unit 867 and determines the completion of the operation based on whether or not the first operation pattern generation unit 865 or the second operation pattern generation unit 866 outputs an operation command. Then, the operation selection unit 864 continues waiting when the output of the operation command is not completed (No in S7).
- the action selection unit 864 returns the process to step S2, and again estimates the object type and the process progress and switches the action command until the work is completed. I do.
- the operation command output switching unit 867 may write information in the flag after outputting the operation command, and the operation selection unit 864 may determine whether the operation is completed based on whether the information is true or false. Alternatively, the operation selection unit 864 may determine the completion of the operation based on the camera image acquired by the camera 10 .
- step S4 the determination result of step S4 and the output of the operation pattern (operation command) by steps S5 and S6 are described in only two ways, but they are not limited to only two ways. .
- three or more operation patterns can be selected according to the type of process progress machine-learned by the learning model 856 .
- the first motion pattern generation unit 865 and the second motion pattern generation unit 866 may be configured to receive the position information (or camera image) of each object in the image estimated by the arithmetic processing unit 863. .
- the first motion pattern generation unit 865 and the second motion pattern generation unit 866 adjust the content of the motion, such as changing the gripping position of the object or the posture of the end effector 12, according to the position information of each object in the image. may be configured to
- the motion command program 861 includes two motion pattern generators, that is, a first motion pattern generator 865 and a second motion pattern generator 866, but the number of motion pattern generators may be one.
- one motion pattern generator generates a plurality of different motion patterns (motion commands) according to the work process.
- the operation command output switching unit 867 selects an operation pattern from a plurality of operation patterns generated by one operation pattern generation unit based on the estimation result including the process progress.
- the robot control system includes a robot device (robot device 1) and a work status sensor that acquires information indicating the work status of the robot device with respect to a work target. (camera 10), information indicating the work status acquired by the work status sensor, the type of work target, and learning data (learning data 852) including the progress of the work process.
- learning model 856 unit arithmetic processing unit 863
- motion pattern generation units 865 and 866 motion pattern generation units 865 and 866
- motion selection unit 864 that selects the motion pattern generation unit based on the type of the work target and the degree of progress of the work process.
- the robot control system 100 applies a learning model 856 that has learned to estimate the type of the work target 2 and the degree of progress of the work process for information indicating the work status of the robot device 1. use.
- the robot control system 100 (operation command program 861 ) determines the operation pattern (operation details) of the robot device 1 based on the progress of the current work process estimated by the learning model 856 .
- the robot control system 100 can cause the robot apparatus 1 to perform appropriate operations in a task requiring multiple steps. Since the robot control system 100 can output an appropriate operation command to the robot device 1 for a work composed of a plurality of processes, it can be applied to a work site where the work contents change frequently.
- the robot control system according to the second embodiment has the same basic configuration as the robot control system 100 according to the first embodiment, but differs in the content of learning data used for machine learning.
- FIG. 8 is a schematic diagram showing an example of learning data used by the learning program 851 for machine learning of the learning model 856 in the robot control system according to the second embodiment.
- No. in FIG. 1 shows a state in which a plurality of parts 1 and 2 are supplied to the workbench 3 before the assembly work (the process progress is 0: supplied), and an assembly process 2 in which the parts 3 and 4 are combined. has been completed without any errors (process progress is 2: assembly 1 completed) (no errors).
- No. 2 shows a state in which a plurality of parts 1 and 2 are supplied to the workbench 3 before assembly work (process progress is 0: supply), and an assembly process 2 in which parts 3 and 4 are combined. is completed (process progress is 2: assembly 2 completed), but the mounting position is displaced (displacement: portion indicated by a dashed line).
- the learning processing unit 855 (FIG. 4) machine-learns the learning model 856 using the learning data 852A including the labels indicating the success or failure of the work as described above.
- a learning model 856 (FIG. 4) machine-learned with the learning data 852A outputs process progress and work success/failure estimation results based on the input of the image from the camera 10 .
- the motion selector 864 (FIG. 6) outputs a motion command for the motion pattern generator that performs the next task.
- the output of the operation command output switching unit 867 is switched as follows.
- the operation selection unit 864 when the estimation result that the work has failed and the installation position is displaced is output, the operation selection unit 864 outputs an operation command of the operation pattern generation unit for correcting the installation position displacement.
- the output of the operation command output switching unit 867 is switched so as to
- the motion command program 861 can be configured to include a third motion pattern generation unit that generates a motion pattern for correcting the mounting position deviation.
- the action content of the third action pattern generated by the third action pattern generation unit is an action of changing the relative positional relationship of the target parts so that the positional relationship between the target parts is correct, or are removed from each other and reattached.
- the learning model includes information indicating the work situation acquired by the work situation sensor (camera 10), work Indicates the current work status acquired by the work status sensor through machine learning using learning data (learning data 852A) including the type of object, the degree of progress of the work process, and the success or failure of the work in the work process.
- learning data 852A learning data 852A
- the success or failure of the work in the current work process is estimated.
- the operation selection unit selects the type of work object output by the operation processing unit (operation processing unit 863) using the learning model (learning model 856), the progress of the current work process, and the work
- the operation pattern generators are selected based on the success or failure of the work in the process.
- the motion selection unit causes the arithmetic processing unit (arithmetic processing unit 863) not to complete the work in the current work process. is estimated, an operation pattern generation unit that generates an operation pattern for completing the work in the corresponding work process is selected from among the operation pattern generation units (operation pattern generation units 865 and 866). .
- the motion pattern for completing the work in the corresponding work process is generated by the motion pattern previously selected by the motion selection unit (motion selection unit 864). It is an operation pattern (for example, a third operation pattern) for performing an operation for correcting the operation result by the operation pattern (for example, the first or second operation pattern) generated by the unit.
- the state of the work target 2 can be determined. It is possible to cause the robot apparatus 1 to perform an appropriate operation in accordance with. In addition, even if the work fails, the robot device 1 operates so as to recover the work autonomously, so intervention by the worker 4 or the like becomes unnecessary, and the work efficiency of the entire site is improved.
- the same process is performed not only when the work fails, but when the work is interrupted for some reason and the work is not completed as a result.
- the action selection section 864 selects the action pattern generation section so that the work is continued from the work situation (work result) at the time of interruption and the work is completed.
- a method of calculating the type of each work process in a plurality of independent work processes and the degree of progress of each work process, and selecting the operation content of the robot device 1 will be described with reference to FIGS. 9 and 10. will be used to explain.
- the robot control system according to the third embodiment has the same basic configuration as the robot control system 100 according to the first embodiment.
- FIG. 9 is a schematic diagram showing an example of learning data used by the learning program 851 for machine learning of the learning model 856 in the robot control system according to the third embodiment.
- the learning data 852B shown in FIG. 9 is for one camera image (No. 1, No. 2, etc.) taken by the camera 10, the type of the object in the image, the type of the object in the image, and the In addition to position and process progress (1-0: assembly 1-supply, 3-1: assembly 3-assembly complete, etc.), work priority (1, 2, etc.) label data be.
- the work priority is set so that the larger the value, the higher the priority.
- the shapes of the parts 1 to 4 here do not correspond to the shapes of the parts 1 to 4 shown in FIGS.
- the assembly work shown in the learning data 852B of FIG. It is assumed that three steps of joining the parts 3 and 4 (assembly 3) are performed. At this time, if the assembly 1 process, the assembly 2 process, and the assembly 3 process are independent of each other, the three processes may be executed from any process. Also, the assembled parts 1 and 2 and the assembled parts 3 and 4 may be temporarily placed on the workbench 3 .
- any of the assembly 1 to 3 processes can be carried out because the parts 1 to 4 or their assembled products are in a sufficient state.
- parts 3 and 4 are not supplied. Therefore, under this situation, the process of assembly 1 is performed first, the assembled parts 1 and 2 are temporarily placed, and as soon as the parts 3 and 4 are supplied, the process of assembly 2 in which the part 4 is attached to the part 3 is performed. It is desirable to carry out the work so that the assembly 3 process is carried out after the assembly 2 process. With such a work order, the waiting time of the robot apparatus 1 can be reduced.
- FIG. 10 is a flow chart showing a procedure example of a method for executing control using a learning model 856 machine-learned by the operation command program 861 using the learning data 852B. Specifically, FIG. 10 shows a process in which the motion command program 861 selects the motion of the robot device 1 by means of the arithmetic processing section 863, the motion selection section 864, and the motion pattern generation sections 865 and 866.
- FIG. 10 shows a process in which the motion command program 861 selects the motion of the robot device 1 by means of the arithmetic processing section 863, the motion selection section 864, and the motion pattern generation sections 865 and 866.
- the arithmetic processing unit 863 reflects the model parameter data 862 in the learning model 856 (S1) when the action command program 861 is activated, similar to the processing illustrated in steps S1 to S3 in FIG. make the degree estimable. Next, the arithmetic processing unit 863 acquires the camera image captured by the camera 10 (S2), then estimates the object type and process progress using the learning model 856, and outputs the estimation result (S3).
- the operation selection unit 864 extracts a combination (pair) of object types with the same process progress from among the plurality of object types and process progresses output by the arithmetic processing unit 863 (S14).
- a pair of parts 1 and 2, a pair of parts 3 and 4, and a pair of assembled parts 1 and 2 and assembled parts 3 and 4 are extracted.
- a pair of parts 1 and 2 and a pair of finished products of parts 1 to 4 completed by the assembly 3 process are extracted.
- the action selection unit 864 extracts the object type pair having the highest work priority among the extracted object type pairs (S15). No. in FIG. 1, a pair of assembled parts 1 and 2 and assembled parts 3 and 4 with work priority "3" is extracted. Moreover, No. in FIG. 2, a pair of parts 1 and 2 with a work priority of "1" is extracted.
- the motion selection unit 864 selects a motion pattern of the robot apparatus 1 corresponding to the extracted pair of object types (S16).
- the object types are assembled parts 1 and 2 and assembled parts 3 and 4, and the process progress is a state in which parts have been supplied in the process of assembly 3, so the arithmetic processing unit 863 selects the operation to perform Assembly 3;
- the object types are parts 1 and 2, and the process progress is assembly 1, and the parts have been supplied in the process. select.
- the method for extracting the object type need not be limited to the method described above, and may be configured so as to simultaneously extract the object types of the same process among three or more object types.
- the work to be performed is determined based on the work priority so as to uniquely select the operation.
- the work priority is not limited to a predetermined fixed value. may For example, the work priority may be changed according to the operation status of the automatic guided vehicle 5 or the positional relationship between the robot device 1 and the workbench 3 .
- the work priority may be changed according to the type and number of articles temporarily placed on the workbench 3, the number of processes completed by the robot device 1, and the like. For example, it is conceivable to adjust the priority so that each process is executed in a well-balanced manner.
- the robot control system administrator can use the input device 83 to adjust the order of the processes. You can set it as As an example, it is conceivable to make adjustments so as to give priority to work using a large number of parts shown in the image.
- the learning model (learning model 856) includes information indicating the work situation acquired by the work situation sensor (camera 10), Machine learning is performed using learning data (learning data 852B) including the type of object, the type of each work process in a plurality of independent work processes, and the progress of each work process, and the work situation
- learning data 852B learning data
- the type of the work target included in the information indicating the current work status, the types of a plurality of independent work processes, and the current work process is configured to estimate the progress of
- the operation selection unit (operation selection unit 864) selects the type of work object output by the operation processing unit (operation processing unit 863) using the learning model (learning model 856), the type of a plurality of independent work processes, and the current
- the operation pattern generators (operation pattern generators 865 and 866) corresponding to work processes that can be executed among a plurality of independent work processes are selected based on the degree of progress of each work
- the learning data includes information indicating the work situation acquired by the work situation sensor (camera 10), and In addition to the type of object, the type of each work process in a plurality of independent work processes, and the current progress of each work process, the priority of each work process is included.
- the action selection section is configured to select the action pattern generation section (action pattern generation sections 865 and 866) corresponding to the work process with a high priority.
- the action content that can be executed is determined according to the process progress of each work process, and the action pattern corresponding to the action content is determined.
- Select generator As a result, the waiting time of the robot device 1 can be reduced, so that the operation time of the robot device 1 can be increased and the work efficiency can be improved.
- FIG. 11 is a schematic diagram showing an example of the overall configuration of a robot control system according to the fourth embodiment.
- the illustrated robot control system 100A differs from the robot control system 100 according to the first embodiment in that it has two robot devices, but the other basic functions are the same. In the following, differences between the robot control system 100A and the robot control system 100 according to the first embodiment are mainly described.
- the robot control system 100A includes a robot device 1a and a robot device 1b.
- the robot device 1 a has an end effector 12 a at the tip of the robot arm 11 a and performs work on the work object 2 on the work table 3 .
- the robot device 1 b has an end effector 12 b different from the end effector 12 a at the tip of the robot arm 11 b and performs work on the work object 2 on the work table 3 .
- a robot control device 7a that controls the robot device 1a and a robot control device 7b that controls the robot device 1b are connected to a learning control device 8 via a network 6.
- FIG. 12 is a schematic diagram showing an example of learning data used by the learning program 851 for machine learning of the learning model 856 in the robot control system 100A according to the fourth embodiment.
- the learning data 852C shown in FIG. And, in addition to the degree of process progress, it is data attached with the label of the tool (hand, driver, etc.) to be used in the next process.
- the robot device 1b performs a step (assembly 1) of assembling the part 3 with the part 4 using an end effector 12b (hand) capable of gripping the part 3 and the part 4. As shown in FIG.
- the robot device 1a uses an end effector 12a (driver) that can be screwed to perform a step (fastening 1) of screwing the assembled parts 3 and 4 together. Then, No. in FIG. As shown in the image 3, the robot device 1b again performs the step of assembling the assembled parts 3 and 4 with the part 2 using the end effector 12b (hand) capable of gripping the part 2 (assembly 2).
- end effector 12a driver
- the robot device 1b again performs the step of assembling the assembled parts 3 and 4 with the part 2 using the end effector 12b (hand) capable of gripping the part 2 (assembly 2).
- the operation selection unit 864 shown in FIG. 6 outputs an operation command for the operation pattern generation unit 865 or 866 corresponding to the robot device 1a or 1b, based on the estimation result of the process progress and the corresponding tool in the arithmetic processing unit 863. , the output of the operation command output switching unit 867 is switched.
- the learning-type control device 8 sends the operation command of the first operation pattern generation unit 865 corresponding to the step of fastening the parts 3 and 4 with screws (fastening 1) via the network 6.
- the motion command of the second motion pattern generator 866 corresponding to the process (assembly 2) of assembling the part 2 to the assembled parts 3 and 4 is sent to the robot device 1b via the network 6.
- Output is described in FIG.
- a process that can be performed by one of the robot devices is performed on a plurality of work objects 2, and a plurality of parts in the process of being assembled are temporarily placed on the workbench 3.
- a robotic device may be configured to move so that the other robotic device takes over the process instead.
- the robot device 1b performs a process (assembly 1) of assembling parts 4 into parts 3 as shown in the image of 1 a plurality of times, and a plurality of assembled parts 3 and 4 are temporarily placed on the workbench 3. .
- the process of assembling the parts 4 to the parts 3 is repeated until the work space on the workbench 3 is exhausted or the parts 3 or 4 are exhausted.
- the robot device 1b moves onto a different workbench 3, and the robot device 1a moves to No. 1 in FIG.
- a step (fastening 1) of fastening the assembled parts 3 and 4 as shown in the image of 2 with screws is performed.
- the robot apparatus 1b moves to a different workbench 3, and the No. 2 in FIG. A step (assembly 1) of assembling parts 4 to parts 3 as shown in image 1 is performed.
- the robot device 1a and the robot device 1b may alternately advance the process.
- the operation may be switched according to the position of each robot device, the number of work objects 2, and the degree of progress of the work process.
- robot control system 100A two or more robot devices (robot devices 1a and 1b) to which mutually different end effectors (end effectors 12a and 12b) are attached.
- the motion selection unit selects one of two or more robot devices based on the type of work target output by the arithmetic processing unit (arithmetic processing unit 863) and the progress of the current work process. selects the motion pattern generators (motion pattern generators 865 and 866) corresponding to .
- the operation pattern (operation pattern generation unit) is selected so that the robot device corresponding to the end effector required according to the progress of the work process operates.
- the operation pattern is selected so that the robot device corresponding to the end effector required according to the progress of the work process operates.
- each of the above-described embodiments describes the configuration of the robot control system in detail and specifically in order to explain the present invention in an easy-to-understand manner, and is not necessarily limited to those having all the components described. Also, it is possible to replace part of the configuration of one embodiment with the constituent elements of another embodiment. It is also possible to add components of other embodiments to the configuration of one embodiment. Moreover, it is also possible to add, replace, or delete other components for a part of the configuration of each embodiment.
- the robot devices 1, 1a, and 1b used in the above-described first to fourth embodiments are examples of vertical articulated robots, but orthogonal coordinate robots, horizontal articulated robots, parallel link robots, and so on. It may be a robot or the like.
- the present invention is applicable not only to industrial robots as illustrated, but also to robot control systems that control autonomous robots and outdoor work robots (outdoor work machines).
- a device other than the camera 10 may be used as a work status sensor for measuring the work status of the robot device 1, or a distance measuring device using optics or radio waves may be used.
- a distance measuring device using optics or radio waves may be used.
- LIDAR Light Detection and Ranging, Laser Imaging Detection and Ranging
- the work situation sensor collects point cloud data (distance measurement data).
- the work status sensor may be installed in an environment (such as a building on site) in which the mobile cart 9 on which the robot device 1 is installed moves.
- the motion pattern generators 865 and 866 may be configured to take in the joint angle of the robot arm 11 and the camera image of the camera 10 and perform feedback control. Also, a control method based on machine learning may be used to output appropriate motion commands to the motion pattern generators 865 and 866 based on camera images.
- each of the configurations, functions, processing units, etc. described above may be implemented in hardware, for example, by designing a part or all of them as an integrated circuit.
- a broadly defined processor device such as FPGA (Field Programmable Gate Array) or ASIC (Application Specific Integrated Circuit) may be used.
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Human Computer Interaction (AREA)
- Manipulator (AREA)
Abstract
本発明の一態様は、学習モデルを用いて、作業状況センサが取得したロボット装置の現在の作業状況を示す情報に対応する、作業対象物の種別と、作業工程の進捗度を推定して出力する演算処理部と、推定された作業対象物の種別と現在の作業工程の進捗度とに基づいて、現在の作業工程に対応するロボット装置1の動作パターンを生成する、少なくとも1つ以上の動作パターン生成部の中から動作パターン生成部を選択する動作選択部と、を備える。
Description
本発明は、作業を実行するロボット装置を制御するロボット制御システム、ロボット制御方法及びプログラムに関する。
従来、産業用ロボットや移動ロボットに代表されるロボット装置は、主に記憶された動作を順番に繰り返し実行するように構成される。そのため、複数の作業対象物を様々なタイミングや状況で取り扱う必要がある作業において、ロボット装置が作業対象物に適した動作を自律的に実行することができないことがあった。そこで、カメラ等により撮像した画像データを用いてロボット装置の作業対象物を判別し、判別結果に基づいてロボット装置に動作を実行させるように制御するシステムが知られている。
例えば、特許文献1には、ワークの属性を検出する属性検出工程と、ワークの属性と記憶部に記憶された挙動情報とに基づいて制御条件を設定する制御条件設定工程と、当該制御条件設定工程において設定された制御条件に基づいてワークを移動させる移動工程と、を有するロボットの制御方法が開示されている。ワークの属性は、例えば形状、寸法、重量、柔軟性である。
ところで、自律的に作業を行うロボット装置に適用される作業は、ピックアンドプレースに代表される比較的単純な作業であり、1つの作業対象物に対して、単一の動作で1つの作業が完了することが多い。しかし、組立て、据付、分解、修理などに代表される作業では、1つの作業対象物に対して、複数の動作を行うように、いくつかの工程を組み合わせて実行する必要がある。
特許文献1に記載のロボットの制御方法では、推定した1つの物体の種別に対応する1つの動作のみが選択されるため、作業に必要な全ての動作を実行できず、複数の工程を組み合わせる作業に対応できないことがあった。
上記の状況から、ロボット装置が複数の工程を要する作業に対して適切な動作を実行できるように、ロボット装置の動作パターンを選択する手法が要望されていた。
上記課題を解決するために、本発明の一態様のロボット制御システムは、ロボット装置と、作業対象物に対する当該ロボット装置の作業状況を示す情報を取得する作業状況センサと、当該作業状況センサにより取得された作業状況を示す情報と、作業対象物の種別と、作業工程の進捗度とを含む学習用データにより機械学習された学習モデルを用いて、作業状況センサが取得した現在の作業状況を示す情報に対応する、作業対象物の種別と、現在の作業工程の進捗度を推定して出力する演算処理部と、現在の作業工程に対応するロボット装置の動作パターンを生成する、少なくとも1つ以上の動作パターン生成部と、演算処理部が出力する、作業対象物の種別と作業工程の進捗度とに基づいて、動作パターン生成部を選択する動作選択部と、を備える。
本発明の少なくとも一態様では、ロボット装置の作業状況を示す情報に対して作業対象物の種別と作業工程の進捗度を推定するように学習した学習モデルを用いて、当該学習モデルにより推定された現在の作業工程の進捗度に基づいてロボット装置の動作内容を決定する。それにより、本発明の一態様は、複数の工程を要する作業においてロボット装置に適切な動作を実行させることができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
以下、本発明を実施するための形態の例について、添付図面を参照して説明する。本明細書及び添付図面において実質的に同一の機能又は構成を有する構成要素については、同一の符号を付して重複する説明を省略する。
<第1の実施形態>
まず、本発明の第1の実施形態に係るロボット装置の構成、及びロボット装置を制御するロボット制御システムの構成について、図1及び図2を参照して説明する。
まず、本発明の第1の実施形態に係るロボット装置の構成、及びロボット装置を制御するロボット制御システムの構成について、図1及び図2を参照して説明する。
[ロボット制御システムの全体構成]
図1は、第1の実施形態に係るロボット制御システムの全体構成の例を示す概略図である。図示するロボット制御システム100において、ロボット装置1は、移動台車9と、移動台車9の上に取り付けられたロボットアーム11と、ロボットアーム11の先端に取り付けられたエンドエフェクタ12と、エンドエフェクタ12付近に取り付けられたカメラ10を有する。ロボットアーム11は一つ以上の関節を有し、関節に設けられたモータ(図示略)などのアクチュエータが駆動することで自在に動作可能である。
図1は、第1の実施形態に係るロボット制御システムの全体構成の例を示す概略図である。図示するロボット制御システム100において、ロボット装置1は、移動台車9と、移動台車9の上に取り付けられたロボットアーム11と、ロボットアーム11の先端に取り付けられたエンドエフェクタ12と、エンドエフェクタ12付近に取り付けられたカメラ10を有する。ロボットアーム11は一つ以上の関節を有し、関節に設けられたモータ(図示略)などのアクチュエータが駆動することで自在に動作可能である。
ロボット装置1の各装置は、移動台車9に設置されたロボット制御装置7に接続されている。ロボット装置1の各装置は、ロボット制御装置7から制御指令(ロボットアーム11のモータ電流、エンドエフェクタ12のモータ電流等)を受けて動作する。ロボット装置1は、ロボットアーム11及びエンドエフェクタ12を駆動することで、作業台3上の作業対象物2に対して作業を実行する。また、ロボット装置1の各装置は、ロボット装置1の状態を表す情報をロボット制御装置7に送信する。ロボット装置1の状態を表す情報とは、例えばロボットアーム11の関節角度、カメラ10が撮影した画像(カメラ画像)などである。以下では、ロボット装置1の状態を表す情報を、「ロボット装置1の状態」と簡略して呼ぶことがある。
カメラ10は、被写体としてロボット装置1が扱う作業対象物2が含まれる光学像の画像信号(カメラ画像)を得る機能を有する。カメラ10は、ロボット装置1の作業状況を示す情報を取得する作業状況センサの一例である。例えば、カメラ10として、ロボット装置1の作業状況を示す情報として少なくとも作業対象物2を含む画像を撮像する撮像装置を使用することができる。また、カメラ画像は、作業台3の上面全体を撮影できる画角に設定されていることが望ましい。
ロボット制御装置7は、インターネット又はLAN等のネットワーク6を介して学習型制御装置8に接続されている。ロボット制御装置7は、ロボット装置1から得られたロボット装置1の状態を表す情報を、ネットワーク6を介して学習型制御装置8に送信する。また、ロボット制御装置7は、学習型制御装置8が出力する動作指令(ロボットアーム11の目標関節角度、等)と、ロボット装置1から入力したロボット装置1の状態を表す情報とを基に、ロボット装置1に対する制御指令を演算する。
なお、ロボット装置1はロボット制御システム100の制御対象であるが、ロボット制御システム100がロボット装置1を含まない構成としてもよい。
[ロボット制御システムのハードウェア構成]
図2は、ロボット制御システム100のソフトウェアを実行するためのハードウェア構成の例を示す概略図である。なお、図2ではインターフェースを「I/F」と記載している。
図2は、ロボット制御システム100のソフトウェアを実行するためのハードウェア構成の例を示す概略図である。なお、図2ではインターフェースを「I/F」と記載している。
(ロボット制御装置)
ロボット制御装置7は、システムバスを介して、制御装置71、通信インターフェース72、制御インターフェース73、及び記憶装置74が相互に電気的に接続されたコンピューターである。制御装置71は、CPU(Central Processing Unit)、RAM(Random Access Memory)、及びROM(Read Only Memory)等を含み、本実施形態に係る機能を実現するプログラム及び各種データに基づいて、情報処理を実行するように構成される。CPUに代えて、MPU(Micro Processing Unit)等の他の処理装置を用いてもよい。
ロボット制御装置7は、システムバスを介して、制御装置71、通信インターフェース72、制御インターフェース73、及び記憶装置74が相互に電気的に接続されたコンピューターである。制御装置71は、CPU(Central Processing Unit)、RAM(Random Access Memory)、及びROM(Read Only Memory)等を含み、本実施形態に係る機能を実現するプログラム及び各種データに基づいて、情報処理を実行するように構成される。CPUに代えて、MPU(Micro Processing Unit)等の他の処理装置を用いてもよい。
通信インターフェース72は、学習型制御装置8と接続し、ロボット装置1への動作指令とロボット装置1の状態に関するデータを送受信するためのインターフェースである。通信インターフェース72は、ネットワーク6を介して学習型制御装置8の通信インターフェース82と通信する。
制御インターフェース73は、ロボット装置1と接続し、ロボット装置1への制御指令とロボット装置1の状態に関するデータを送受信するためのインターフェースである。制御インターフェース73は、ロボット装置1を構成する機器に応じて適宜構成される。制御インターフェース73に接続されるロボット装置1の構成については図1を参照して説明済みであるため、ここでは説明は省略する。
記憶装置74は、ハードディスクドライブ又は半導体メモリ等の補助記憶装置であり、制御装置71が実行する制御プログラム741等を記憶する。ROM及び記憶装置74は、制御装置71のCPUが動作するために必要なプログラムやデータ等を永続的に記録しており、CPUによって実行されるプログラムを格納したコンピューター読取可能な非一過性の記録媒体の一例として用いられる。ロボット制御装置7は、電源の投入等により起動すると、記憶装置74に記憶されている制御プログラム741を制御装置71のRAMに展開して実行する。
制御プログラム741は、通信インターフェース72から入力される学習型制御装置8で生成された動作指令と、制御インターフェース73から入力されるロボット装置1の状態を表す情報とに基づいて、ロボット装置1に対する制御指令を生成する。そして、制御プログラム741は、制御インターフェース73からロボット装置1へ制御指令を出力する。また、制御プログラム741は、制御インターフェース73から入力されるロボット装置1の状態を表す情報を、通信インターフェース72から学習型制御装置8へ出力する。
(学習型制御装置)
学習型制御装置8は、システムバスを介して、制御装置81、通信インターフェース82、入力装置83、及び記憶装置84が相互に電気的に接続されたコンピューターである。制御装置81は、CPU、RAM、及びROM等を含み、本実施形態に係る機能を実現するプログラム及び各種データに基づいて情報処理を実行するように構成される。
学習型制御装置8は、システムバスを介して、制御装置81、通信インターフェース82、入力装置83、及び記憶装置84が相互に電気的に接続されたコンピューターである。制御装置81は、CPU、RAM、及びROM等を含み、本実施形態に係る機能を実現するプログラム及び各種データに基づいて情報処理を実行するように構成される。
通信インターフェース82は、ロボット制御装置7と接続し、ロボット制御装置7へのロボット装置1の動作指令とロボット装置1の状態を表す情報を送受信するためのインターフェースである。通信インターフェース82は、ネットワーク6を介してロボット制御装置7の通信インターフェース72と通信する。
入力装置83は、マウスやキーボード等のユーザーからの入力を取り込む装置であり、学習型制御装置8のプログラムの実行等を制御する。
記憶装置84は、ハードディスクドライブ又は半導体メモリ等の補助記憶装置であり、制御装置81が実行する学習プログラム851、動作指令プログラム861、学習用データ852、及びモデルパラメータデータ862等を記憶する。ROM及び記憶装置84は、制御装置81のCPUが動作するために必要なプログラムやデータ等を永続的に記録しており、CPUによって実行されるプログラムを格納したコンピューター読取可能な非一過性の記録媒体の一例として用いられる。学習型制御装置8は、電源の投入等により起動すると、記憶装置84に記憶されている学習プログラム851と動作指令プログラム861を制御装置81のRAMに展開する。
学習プログラム851は、入力装置83を介してユーザーから学習の実行が指示されると、通信インターフェース82から入力されるロボット装置1の状態を表す情報を用いて、学習用データ852を生成して記憶装置84に記録する。そして、学習プログラム851は、この学習用データ852を用いて、後述する学習モデル856(図4参照)を機械学習し、学習済みパラメータとしてモデルパラメータデータ862を生成する。学習モデル856は、いわゆる教師あり学習モデルである。
動作指令プログラム861は、入力装置83を介してユーザーからロボット装置1の制御の実行が指示されると、モデルパラメータデータ862を読み込む。そして、動作指令プログラム861は、通信インターフェース82から得られるロボット装置1の状態と後述する学習モデル856(図6参照)とを用いて、ロボット装置1の動作指令を演算する。図6に示す学習モデル856は、学習の結果(モデルパラメータデータ862)が反映された学習済みモデル(推論プログラム)である。動作指令プログラム861は、生成したロボット装置1の動作指令を、通信インターフェース82からロボット制御装置7に出力する。ロボット制御装置7は、学習型制御装置8から入力されたロボット装置1の動作指令に基づいて、ロボット装置1に制御指令を出力してロボット装置1の動作を制御する。
なお、ロボット制御装置7と学習型制御装置8は、ネットワーク6を介して接続されている構成に限らない。ロボット制御装置7と学習型制御装置8は、通信インターフェース72と通信インターフェース82が専用線等で直接接続されている構成であってもよい。また、制御インターフェース73と通信インターフェース72が同一であってもよく、ロボット制御装置7は、ネットワーク6を介してロボット装置1に制御指令を出力するように構成されていてもよい。
また、学習プログラム851と動作指令プログラム861は、同一の学習型制御装置8に記憶されていなくてもよく、それぞれが異なる学習型制御装置に記憶されていてもよい。例えば、学習型制御装置8は、他の現場における学習型制御装置との間で、ネットワーク6を介して学習用データ852やモデルパラメータデータ862を通信するように構成されていてもよい。
また、学習型制御装置8とロボット制御装置7は、同一のハードウェアで構成してもよい。すなわち、制御プログラム741、学習プログラム851及び動作指令プログラム861が同一のハードウェア上で実行されるように構成されていてもよい。
次に、ロボット制御システム100において、学習型制御装置8が作業対象物2の種別(以下「物体種別」とも称する)と作業工程の進捗度(以下「工程進捗度」とも称する)とを紐づけて学習し、工程進捗度に基づいてロボット装置1の動作を決定する方法について図3から図7を用いて説明する。
[ロボット装置が実行する作業の例]
図3は、ロボット装置1によって実行される作業の一例を示す外観図である。図3を用いてロボット装置1の作業例を説明する。
図3は、ロボット装置1によって実行される作業の一例を示す外観図である。図3を用いてロボット装置1の作業例を説明する。
多品種少量生産を行う現場では、セル生産方式に代表されるように複数の工程で構成される作業(組立て作業等)を1つの作業場所(セル)で行うことがある。例えば、図3に示すように、ロボット装置1や作業員4が、作業台3上に配置された作業対象物2や自動搬送車5により搬送される作業対象物2を組み立てる作業などがある。このような現場における作業では、製品の需要変動に応じて作業内容の入替えが発生することがある。例えば、組立て作業を行っていた作業員4が、生産計画の変更に応じて異なる作業台3に移動して作業を行い、作業員4が行っていた組立て作業をロボット装置1が引き継いで作業を継続することがある。また、生産計画の変更に応じて、自動搬送車5により搬送される作業対象物2が変更され、それにより組立て作業の作業内容が変更されることがある。
上述した現場において、ロボット装置1が適切に作業を実行するためには、ロボット装置1は作業対象物2の種別や作業状況を認識し、適切な動作を実行する必要がある。すなわち、ロボット装置1は作業対象物2の作業の進捗状況を認識し、進捗に基づいて作業対象物2に対して適切な作業を継続できることが望ましい。
[物体種別と工程進捗度を学習する方法]
次に、学習型制御装置8が物体種別と工程進捗度を学習する方法について図4及び図5を用いて説明する。
次に、学習型制御装置8が物体種別と工程進捗度を学習する方法について図4及び図5を用いて説明する。
図4は、ロボット制御システム100の学習型制御装置8に格納された、学習モデル856を機械学習する学習プログラム851のソフトウェア構成の例を示す模式図である。 図5は、ロボット制御システム100において、学習プログラムが学習モデルの機械学習に用いる学習用データ852の例を示す概略図である。
学習プログラム851は、制御装置81のRAMに展開されてCPUにより実行されるときに、データ前処理部853、ラベル付与部854、及び学習処理部855をソフトウェアモジュールとして備えるように構成される。
データ前処理部853は、通信インターフェース82から入力されるカメラ10のカメラ画像を記録する。また、データ前処理部853は、入力装置83を介したユーザーの指示に基づいて、カメラ画像中の作業対象物2の物体種別と工程進捗度のラベルを対応づけるラベル付与部854を備える。そして、データ前処理部853は、カメラ画像に物体種別及び工程進捗度のラベルが付与された学習用データ852を生成する。
例えば、ロボット制御システム100では、作業員4による組立て作業中にカメラ10を用いて作業対象物2、及び作業台3を撮影し、撮影した画像を学習型制御装置8に送信し、データ前処理部853において学習用データ852を生成する。図5に示すように、学習用データ852は、カメラ10により撮影された1枚のカメラ画像(No.1、No.2、等)に対し、画像中に映っている物体の種別(部品1、部品2、等)と、画像中の物体の位置、及び工程進捗度(0:供給、2:組立1完、等)のラベルを付与したデータである。例えば、画像中の物体の位置は、作業台3の上面の角を基準点とする二次元座標で表すことができる。
図5の学習用データ852に示した作業は、まず部品3に部品4を結合する工程(組立1)を行い、次に部品3上に部品1を取り付ける工程(組立2)を行い、最後に部品3上に部品2を取り付ける工程(組立3)を行うものとする。図5におけるNo.1の画像は、複数の部品1及び部品2が組立て作業前で作業台3に供給されている状態(工程進捗度が0:供給)、並びに、部品3及び部品4が結合され組立1の工程が完了されている状態(工程進捗度が2:組立1完)を表すラベルが付与されていることを示す。例えば、部品(部品1,2等)は、実線で示したトレイに収納された状態で供給される。
図5におけるNo.2の画像は、複数の部品1及び部品2が組立て作業前で作業台3に供給されている状態(工程進捗度が0:供給)、並びに、部品3及び部品4が結合され、かつ部品1を部品3に取り付ける組立2の工程が完了されている状態(工程進捗度が3:組立2完)を表すラベルが付与されていることを示す。
図5におけるNo.3の画像は、複数の部品1及び部品2が組立て作業前で作業台3に供給されている状態(工程進捗度が0:供給)、並びに、部品1から部品4の全てが結合され組立3の工程が完了されている状態(工程進捗度が4:組立3完)を表すラベルが付与されていることを示す。データ前処理部853では、図5に示すような1枚のカメラ画像にその内容に応じてラベルを付与したデータを複数作成し、ラベルが付与された複数の画像を学習用データ852とする。
学習処理部855は、データ前処理部853により生成された学習用データ852を用いて学習モデル856を機械学習する。学習処理部855は、学習用データ852のカメラ画像を入力とし、物体種別と工程進捗度の推定結果を出力する学習モデル856と、パラメータ更新量演算部857とを備える。学習モデル856は、一例としてニューラルネットワークにより構成される。
パラメータ更新量演算部857は、学習用データ852の物体種別及び工程進捗度と、学習モデル856の推定物体種別及び推定工程進捗度とを比較して、学習用データ852の内容と学習モデル856の出力が一致するように学習モデル856のモデルパラメータの更新量を演算する。例えば、学習モデル856にニューラルネットワークを用いた場合、モデルパラメータは、ニューラルネットワークを構成する各ニューロン間の結合度やニューロンの発火閾値等の重みである。
そして、学習処理部855は、予め定められた条件に達するまで学習モデル856のモデルパラメータを、パラメータ更新量演算部857が演算する更新量に従い更新し続け、予め定められた条件に達した場合、そのときの学習モデル856のモデルパラメータをモデルパラメータデータ862として保存する。例えば、所定の条件は、学習用データ852の物体種別及び工程進捗度と、学習モデル856の推定物体種別及び推定工程進捗度とのそれぞれの誤差が所定値以下になることである。また、他の条件として、モデルパラメータの更新回数を設定してもよい。
なお、図4に示す学習モデル856のニューラルネットワークは単純な多層パーセプトロン(MLP:Multi Layer Perceptron)を図示しているが、異なるネットワークを用いてもよい。例えば、学習モデル856のニューラルネットワークを畳み込みネットワーク(CNN:Convolutional Neural Network)や再帰型ネットワーク(RNN:Recurrent Neural Network)等を用いる構成にしてもよく、さらにこれらのネットワークを組み合わせた構成としてもよい。また、学習モデル856の学習方法は、ニューラルネットワークを用いた深層学習による機械学習に限らず、他の学習方法であってもよい。
[動作を選択する方法]
次に、図6及び図7を用いて学習型制御装置8が、作業工程の進捗度を推定しロボット装置1の動作内容を選択する方法を説明する。
次に、図6及び図7を用いて学習型制御装置8が、作業工程の進捗度を推定しロボット装置1の動作内容を選択する方法を説明する。
図6は、ロボット制御システム100の学習型制御装置8に格納された動作指令プログラム861のソフトウェア構成の例を示す模式図である。
演算処理部863は、モデルパラメータデータ862を反映した学習モデル856を有し、通信インターフェース82を介してカメラ画像を入力とし、作業対象物2の推定物体種別と推定工程進捗度を出力する。
動作選択部864は、演算処理部863が出力した推定物体種別と推定工程進捗度に基づいて、ロボット装置1の動作内容を選択する。
第1動作パターン生成部865は、動作内容に応じて当該動作内容を実現するための第1動作パターン(動作指令)を生成する。
第2動作パターン生成部866は、第1動作パターン生成部865に適用される動作内容とは異なる動作内容を実現するための第2動作パターン(動作指令)を生成する。
動作指令出力切替部867は、動作選択部864の動作選択結果に応じて、第1動作パターン生成部865及び第2動作パターン生成部866から出力される動作指令を切り替える。
動作選択部864は、演算処理部863が出力した推定物体種別と推定工程進捗度に基づいて、ロボット装置1の動作内容を選択する。
第1動作パターン生成部865は、動作内容に応じて当該動作内容を実現するための第1動作パターン(動作指令)を生成する。
第2動作パターン生成部866は、第1動作パターン生成部865に適用される動作内容とは異なる動作内容を実現するための第2動作パターン(動作指令)を生成する。
動作指令出力切替部867は、動作選択部864の動作選択結果に応じて、第1動作パターン生成部865及び第2動作パターン生成部866から出力される動作指令を切り替える。
図7は、ロボット制御システム100において、動作指令プログラム861が学習モデル856を用いて制御を実行する方法の手順例を示すフローチャートである。具体的には、図7は、動作指令プログラム861が演算処理部863、動作選択部864、及び動作パターン生成部865,866によってロボット装置1の動作を選択する処理を示している。
なお、図7に示す全ての処理ステップは、学習型制御装置8において予め定められたサンプリングタイミングごとに実行される。また、学習型制御装置8は、入力装置83を介して外部から実行開始指令を受けると、記憶装置84に記憶された動作指令プログラム861を制御装置81に展開し実行する。動作指令プログラム861は、制御装置81のRAMに展開されてCPUにより実行されるときに、演算処理部863、動作選択部864、第1動作パターン生成部865、第2動作パターン生成部866、及び動作指令出力切替部867をソフトウェアモジュールとして備えるように構成される。
動作指令プログラム861が起動されると、まず演算処理部863は、学習モデル856にモデルパラメータデータ862を反映させ(S1)、作業対象物2の物体種別と工程進捗度を推定可能な状態にする。続いて、演算処理部863は、通信インターフェース82を介してカメラ10が撮影したカメラ画像を取得する(S2)。次いで、演算処理部863は、学習モデル856を用いてカメラ画像に映っている作業対象物2の物体種別と工程進捗度を推定し、推定結果を動作選択部864へ出力する(S3)。
動作選択部864は、工程進捗度の推定結果の内容に応じて以降の処理を分岐する(S4)。例えば、演算処理部863が出力する推定結果に、物体種別が“部品1”かつ工程進捗度が“部品の供給”(0:供給)と、物体種別が“部品3,4”かつ工程進捗度が“組立1の工程が完了”(2:組立1完)が含まれている場合は、ステップS5に進む。そして、動作選択部864は、ロボット装置1が第1動作パターンを実行するように、動作指令出力切替部867の出力を切り替える(S5)。
また、ステップS4において、演算処理部863が出力する推定結果に、物体種別が“部品2”かつ工程進捗度が“部品の供給”(0:供給)と、物体種別が“部品1,3,4”かつ工程進捗度が“組立2の工程が完了”(3:組立2完)が含まれている場合は、ステップS6に進む。そして、動作選択部864は、ロボット装置1が第2動作パターンを実行するように、動作指令出力切替部867の出力を切り替える(S6)。
また、ステップS4において、演算処理部863が出力する推定結果に、物体種別が“部品1-4”かつ工程進捗度が“組立3の工程が完了”(4:組立3完)が含まれている場合には、動作選択部864は組立て作業が完了したと判断し、処理を終了する。
なお、ステップS5で実行する第1動作パターンは、図5におけるNo.1の画像に示すような状況において部品1を把持し部品3に取り付ける動作、ステップS6で実行する第2動作パターンは、図5におけるNo.2の画像に示すような状況において部品2を把持し部品3に取り付ける動作である。
次いで、ステップS5又はステップS6の処理を実行した場合、動作選択部864は、第1動作パターンによる動作又は第2動作パターンによる動作が完了したかどうかを判定する(S7)。一例として、動作選択部864は、動作指令出力切替部867の出力を監視し、第1動作パターン生成部865又は第2動作パターン生成部866による動作指令の出力の有無により動作完了を判定する。そして、動作選択部864は、動作指令の出力が完了していない場合(S7のNo)には待機し続ける。一方、動作選択部864は、動作指令の出力が完了した場合(S7のYes)には処理をステップS2に戻し、作業が完了するまで再度物体種別と工程進捗度の推定、及び動作指令の切替を行う。なお、動作指令出力切替部867は動作指令を出力したらフラグに情報を書き込み、動作選択部864はその情報の真偽により動作完了を判定してもよい。また、動作選択部864が、カメラ10で取得したカメラ画像に基づいて動作完了を判定する構成としてもよい。
なお、説明を簡単にするため、ステップS4の判定結果による動作の選択、並びにステップS5,S6による動作パターン(動作指令)の出力を2通りのみで記載しているが、2通りのみに限定されない。例えば、学習モデル856に機械学習させた工程進捗度の種類に応じて、3通り以上の動作パターンを選択できるように構成してよいことは明白である。
また、第1動作パターン生成部865及び第2動作パターン生成部866は、演算処理部863が推定した各物体の画像中の位置情報(又はカメラ画像)を入力するように構成されていてもよい。例えば、第1動作パターン生成部865及び第2動作パターン生成部866が、画像中の各物体の位置情報に応じて、物体の把持位置やエンドエフェクタ12の姿勢を変更する等、動作内容を調整するように構成されていてもよい。
また、動作指令プログラム861は、二つの動作パターン生成部、すなわち第1動作パターン生成部865及び第2動作パターン生成部866を備えるが、動作パターン生成部は一つでもよい。この場合、一つの動作パターン生成部が作業工程に応じて異なる複数の動作パターン(動作指令)を生成する。動作指令出力切替部867は、一つの動作パターン生成部が生成した複数の動作パターンから、工程進捗度を含む推定結果に基づいて動作パターンを選択する。
以上のとおり、第1の実施形態に係るロボット制御システム(ロボット制御システム100)は、ロボット装置(ロボット装置1)と、作業対象物に対する当該ロボット装置の作業状況を示す情報を取得する作業状況センサ(カメラ10)と、当該作業状況センサにより取得された作業状況を示す情報と、作業対象物の種別と、作業工程の進捗度とを含む学習用データ(学習用データ852)により機械学習された学習モデル(学習モデル856)を用いて、作業状況センサが取得した現在の作業状況を示す情報に対応する、作業対象物の種別と、現在の作業工程の進捗度を推定して出力する演算処理部(演算処理部863)と、現在の作業工程に対応するロボット装置の動作パターンを生成する、少なくとも1つ以上の動作パターン生成部(動作パターン生成部865,866)と、演算処理部が出力する、作業対象物の種別と作業工程の進捗度とに基づいて、動作パターン生成部を選択する動作選択部(動作選択部864)と、を備える。
上述した第1の実施形態に係るロボット制御システム100は、ロボット装置1の作業状況を示す情報に対して作業対象物2の種別と作業工程の進捗度を推定するように学習した学習モデル856を用いる。ロボット制御システム100(動作指令プログラム861)は、学習モデル856により推定された現在の作業工程の進捗度に基づいて、ロボット装置1の動作パターン(動作内容)を決定する。それにより、ロボット制御システム100は、複数の工程を要する作業においてロボット装置1に適切な動作を実行させることができる。そして、ロボット制御システム100は、複数の工程により構成される作業に対してロボット装置1に適切な動作指令を出力することができることから、作業内容が頻繁に変更する作業現場に適用可能である。
<第2の実施形態>
第2の実施形態として、作業工程の進捗度と合わせて作業の成否を判別し動作内容を選択する方法について、図8を用いて説明する。なお、第2の実施形態に係るロボット制御システムは、第1の実施形態に係るロボット制御システム100と基本的な構成は同じであって、機械学習に使用する学習用データの内容が異なる。
第2の実施形態として、作業工程の進捗度と合わせて作業の成否を判別し動作内容を選択する方法について、図8を用いて説明する。なお、第2の実施形態に係るロボット制御システムは、第1の実施形態に係るロボット制御システム100と基本的な構成は同じであって、機械学習に使用する学習用データの内容が異なる。
[学習用データ]
図8は、第2の実施形態に係るロボット制御システムにおいて、学習プログラム851が学習モデル856の機械学習に用いる学習用データの例を示す概略図である。図8に示す学習用データ852Aは、カメラ10により撮影された1枚のカメラ画像(No.1、No.2、等)に対し、画像中に映っている物体の種別(部品1、部品2、等)、画像中の物体の位置、及び工程進捗度(0:供給、2:組立2完、等)に加え、該当工程の作業成否(異常なし、取付ずれ、等)のラベルを付与されたデータである。
図8は、第2の実施形態に係るロボット制御システムにおいて、学習プログラム851が学習モデル856の機械学習に用いる学習用データの例を示す概略図である。図8に示す学習用データ852Aは、カメラ10により撮影された1枚のカメラ画像(No.1、No.2、等)に対し、画像中に映っている物体の種別(部品1、部品2、等)、画像中の物体の位置、及び工程進捗度(0:供給、2:組立2完、等)に加え、該当工程の作業成否(異常なし、取付ずれ、等)のラベルを付与されたデータである。
例えば、図8におけるNo.1の画像では、複数の部品1及び部品2が組立て作業前で作業台3に供給されている状態(工程進捗度が0:供給)、並びに、部品3及び部品4が結合され組立2の工程が異常なく完了されている状態(工程進捗度が2:組立1完)(異常なし)であることを表すラベルが付与されている。
図8におけるNo.2の画像では、複数の部品1及び部品2が組立て作業前で作業台3に供給されている状態(工程進捗度が0:供給)、並びに、部品3及び部品4が結合され組立2の工程が完了しているが(工程進捗度が2:組立2完)、取付位置がずれている状態(取付ずれ:一点鎖線で示す部分)であることを表すラベルが付与されている。
学習処理部855(図4)は、上記のような作業の成否のラベルを含む学習用データ852Aを用いて学習モデル856を機械学習する。学習用データ852Aで機械学習された学習モデル856(図4)は、カメラ10の画像の入力に基づいて工程進捗度と作業成否の推定結果を出力する。
演算処理部863において、図8のNo.1の画像に示すような、ある作業が完了しているという推定結果が出力された場合、動作選択部864(図6)は次の作業工程を実施する動作パターン生成部の動作指令を出力するように動作指令出力切替部867の出力を切り替える。また、図8のNo.2の画像に示すような、作業が失敗し取付位置ずれが発生しているという推定結果が出力された場合、動作選択部864は取付位置のずれを修正する動作パターン生成部の動作指令を出力するように動作指令出力切替部867の出力を切り替える。
この場合、動作指令プログラム861は、取付位置のずれを修正する動作パターンを生成する第3動作パターン生成部を備えるように構成することができる。例えば、第3動作パターン生成部が生成する第3動作パターンの動作内容は、対象部品同士の位置関係が正しい位置となるように対象部品の相対的な位置関係を変更する動作、又は、対象部品を互いに取り外して再び取り付ける動作などである。
以上のとおり、第2の実施形態に係るロボット制御システム(ロボット制御システム100)において、学習モデル(学習モデル856)は、作業状況センサ(カメラ10)により取得された作業状況を示す情報と、作業対象物の種別と、作業工程の進捗度と、当該作業工程における作業の正否とを含む学習用データ(学習用データ852A)により機械学習されて、作業状況センサが取得した現在の作業状況を示す情報が入力されると、現在の作業状況を示す情報に含まれる作業対象物の種別と現在の作業工程の進捗度に加えて、現在の作業工程における作業の成否を推定するように構成されている。
動作選択部(動作選択部864)は、演算処理部(演算処理部863)が学習モデル(学習モデル856)を用いて出力する作業対象物の種別、現在の作業工程の進捗度、及び当該作業工程における作業の成否に基づいて、動作パターン生成部(動作パターン生成部865,866)を選択するように構成されている。
動作選択部(動作選択部864)は、演算処理部(演算処理部863)が学習モデル(学習モデル856)を用いて出力する作業対象物の種別、現在の作業工程の進捗度、及び当該作業工程における作業の成否に基づいて、動作パターン生成部(動作パターン生成部865,866)を選択するように構成されている。
また、本実施形態に係るロボット制御システム(ロボット制御システム100)において、動作選択部(動作選択部864)は、演算処理部(演算処理部863)において現在の作業工程における作業が完了していないと推定された場合、動作パターン生成部(動作パターン生成部865,866)の中から該当作業工程における作業を完了させるための動作パターンを生成する動作パターン生成部を選択するように構成されている。
さらに、本実施形態に係るロボット制御システム(ロボット制御システム100)において、該当作業工程における作業を完了させるための動作パターンは、動作選択部(動作選択部864)によって先に選択された動作パターン生成部が生成した動作パターン(例えば、第1又は第2動作パターン)による作業結果を修正する作業を実施する動作パターン(例えば、第3動作パターン)である。
このように、第2の実施形態では、現在の作業工程の進捗度と合わせて作業成否を推定し、推定結果に基づいてロボット装置1の動作内容を選択することで、作業対象物2の状態に応じてロボット装置1に対して適切な動作を実行させることができる。また、作業が失敗した場合においても、ロボット装置1が自律的に作業を回復するように動作するので、作業員4等による介入が不要となり、現場全体の作業効率が向上する。
なお、作業の失敗に限らず、何らかの理由で作業が中断し結果として作業が完了しない場合も同様の処理を行う。動作選択部864は、作業が中断した場合も同様に、中断したときの作業状況(作業結果)から作業を継続して作業を完成させるように、動作パターン生成部を選択する。
<第3の実施形態>
第3の実施形態として、複数の独立した作業工程におけるそれぞれの作業工程の種別と、各々の作業工程の進捗度を演算し、ロボット装置1の動作内容を選択する方法について、図9及び図10を用いて説明する。なお、第3の実施形態に係るロボット制御システムは、第1の実施形態に係るロボット制御システム100と基本的な構成は同じである。
第3の実施形態として、複数の独立した作業工程におけるそれぞれの作業工程の種別と、各々の作業工程の進捗度を演算し、ロボット装置1の動作内容を選択する方法について、図9及び図10を用いて説明する。なお、第3の実施形態に係るロボット制御システムは、第1の実施形態に係るロボット制御システム100と基本的な構成は同じである。
図9は、第3の実施形態に係るロボット制御システムにおいて、学習プログラム851が学習モデル856の機械学習に用いる学習用データの例を示す概略図である。
図9に示す学習用データ852Bは、カメラ10により撮影された1枚のカメラ画像(No.1、No.2、等)に対し、画像中に映っている物体の種別、画像中の物体の位置、及び工程進捗度(1-0:組立1-供給、3-1:組立3-組立完、等)に加え、作業優先度(1,2等)のラベルを付与されたデ-タである。作業優先度は、値が大きいほど優先度が高く設定されている。なお、ここでの部品1から部品4の形状は、図5及び図8に示した部品1から部品4の形状とは対応していない。
図9の学習用データ852Bに示した組立て作業は、部品1に部品2を結合する工程(組立1)、部品3に部品4を取り付ける工程(組立2)、組み立てた部品1,2と組み立てた部品3,4を結合する工程(組立3)の3工程を行うものとする。このとき、組立1工程と組立2工程と組立3工程が互いに独立しているとすると、3つの工程はどの工程から実行してもよい。また、組み立てた部品1,2及び組み立てた部品3,4は作業台3の上に一時的に仮置きするようにしてもよい。
図3に示したような作業現場で上記のような組立て作業を行う場合、生産状況に応じて部品の供給や搬出が断続的になり、作業台3への必要な部品の供給や、作業台3からの部品搬出が間に合わないことがある。そこで、工程ごとに作業の優先度を設定することが必要となる。
図9のNo.1に示す画像のような状況の場合、部品1から部品4又はそれらの組立て完了品が過不足ない状態であるため、組立1から組立3のどの工程も実施できる。しかし、図9のNo.2に示す画像のような状況の場合、部品3及び部品4が供給されていない。このため、この状況下では、組立1の工程を先に実施し、組み立てた部品1,2を仮置きし、部品3及び部品4が供給され次第、部品3に部品4を取り付ける組立2の工程を実施し、組立2工程後に組立3工程を実施するように作業を遂行することが望ましい。このような作業順とすることで、ロボット装置1の待ち時間を少なくすることができる。
なお、上述したように各工程が独立しており、実施可能な工程のどれを実行してもよい場合においても、ロボット装置1が実施する工程を選択する必要がある。そのため、作業優先度を設定し、作業優先度が高い工程を実施するようにしている。例えば、図9におけるNo.1の画像のような状況の場合、なるべく早く完成品を作成し自動搬送車5に搬出してもらうように、組立3工程の優先度を高く設定している(作業優先度“3”)。また、部品1-4を組み立てた完成品に対してロボット装置1が行う作業は無いため、優先度は最も小さい値(作業優先度“0”)に設定している。
次に、第3の実施形態に係るロボット制御システムにおいて、動作指令プログラム861が学習用データ852Bにより機械学習した学習モデル856を用いて制御を実行する方法を、図10を用いて説明する。
図10は、動作指令プログラム861が学習用データ852Bにより機械学習した学習モデル856を用いて制御を実行する方法の手順例を示すフローチャートである。具体的には、図10は、動作指令プログラム861が演算処理部863、動作選択部864、及び動作パターン生成部865,866によってロボット装置1の動作を選択する処理を示している。
演算処理部863は、図7のステップS1からS3に図示した処理と同様に、動作指令プログラム861が起動されると学習モデル856にモデルパラメータデータ862を反映させ(S1)、物体種別と工程進捗度を推定可能な状態にする。次いで、演算処理部863は、カメラ10が撮影したカメラ画像を取得し(S2)、続いて、学習モデル856を用いて物体種別と工程進捗度を推定し、推定結果を出力する(S3)。
次いで、動作選択部864は、演算処理部863が出力した複数の物体種別、及び工程進捗度の中で、工程進捗度が同一である物体種別の組み合わせ(ペア)を抽出する(S14)。図9のNo.1に示した画像のような場合、部品1と部品2のペア、部品3と部品4のペア、組み立てた部品1,2と組み立てた部品3,4のペアが抽出される。また、図9のNo.2に示した画像のような場合、部品1と部品2のペア、組立3工程により完成した部品1から部品4の完成品のペアが抽出される。
次いで、動作選択部864は、抽出された物体種別のペアの中で作業優先度が最も高い物体種別のペアを抽出する(S15)。図9のNo.1に示した画像のような場合、作業優先度が“3”の組み立てた部品1,2と組み立てた部品3,4のペアが抽出される。また、図9のNo.2に示した画像のような状態の場合、作業優先度が“1”の部品1と部品2のペアが抽出される。
最後に、動作選択部864は、抽出された物体種別のペアに対応するロボット装置1の動作パターンを選択する(S16)。図9のNo.1に示した画像のような場合、物体種別が組み立てた部品1,2及び組み立てた部品3,4であり、かつ工程進捗度が組立3の工程において部品が供給された状態なので、演算処理部863は組立3を行う動作を選択する。また、図9のNo.2に示した画像のような場合、物体種別が部品1及び部品2であり、かつ工程進捗度が組立1の工程において部品が供給された状態なので、演算処理部863は組立1を行う動作を選択する。
なお、物体種別の抽出方法は上述した方法に限定されなくてもよく、3つ以上の物体種別の中で同一工程の物体種別を同時に抽出するように構成してもよい。また、本実施形態では、動作を一意に選択するように、作業優先度の大きさで実施する作業を判定するような構成としたが、作業優先度は予め決められた固定値に限定されなくてもよい。例えば、自動搬送車5の稼働状況や、ロボット装置1と作業台3との位置関係によって作業優先度を変更する構成としてもよい。
また、作業台3上の仮置きされた物品の種別と個数や、ロボット装置1が完了した工程の数などに応じて、作業優先度を変更する構成としてもよい。例えば、各工程がバランスよく実行されるように優先度を調整することが考えられる。また、学習用データ852Bの生成時にカメラ10で取得した画像によって作業優先度の大きさを変更可能に構成することで、ロボット制御システムの管理者が入力装置83を用いて工程の順番を調整可能なように設定してもよい。一例として、画像中に映っている個数が多い部品を用いた作業を優先するように調整することが考えられる。
以上のとおり、第3の実施形態に係るロボット制御システム(ロボット制御システム100)において、学習モデル(学習モデル856)は、作業状況センサ(カメラ10)により取得された作業状況を示す情報と、作業対象物の種別と、複数の独立した作業工程におけるそれぞれの作業工程の種別と、各々の作業工程の進捗度とを含む学習用データ(学習用データ852B)を用いて機械学習されて、作業状況センサが取得した現在の作業状況を示す情報が入力されると、現在の作業状況を示す情報に含まれる作業対象物の種別と、複数の独立した作業工程の種別と、現在の各々の作業工程の進捗度とを推定するように構成されている。
動作選択部(動作選択部864)は、演算処理部(演算処理部863)が学習モデル(学習モデル856)を用いて出力する作業対象物の種別、複数の独立した作業工程の種別、及び現在の各々の作業工程の進捗度に基づいて、複数の独立した作業工程の中で実行可能な作業工程に対応する動作パターン生成部(動作パターン生成部865,866)を選択するように構成されている。
動作選択部(動作選択部864)は、演算処理部(演算処理部863)が学習モデル(学習モデル856)を用いて出力する作業対象物の種別、複数の独立した作業工程の種別、及び現在の各々の作業工程の進捗度に基づいて、複数の独立した作業工程の中で実行可能な作業工程に対応する動作パターン生成部(動作パターン生成部865,866)を選択するように構成されている。
また、本実施形態に係るロボット制御システム(ロボット制御システム100)において、学習用データ(学習用データ852B)には、作業状況センサ(カメラ10)により取得された作業状況を示す情報と、作業対象物の種別と、複数の独立した作業工程におけるそれぞれの作業工程の種別と、現在の各々の作業工程の進捗度に加えて、各々の作業工程の優先度が含まれている。
動作選択部(動作選択部864)は、優先度が高い作業工程に対応する動作パターン生成部(動作パターン生成部865,866)を選択するように構成されている。
動作選択部(動作選択部864)は、優先度が高い作業工程に対応する動作パターン生成部(動作パターン生成部865,866)を選択するように構成されている。
このように、第3の実施形態では、独立した複数の作業工程を実施する作業において、各作業工程の工程進捗度に応じて実行可能な動作内容を判定し、その動作内容に対応する動作パターン生成部を選択する。これにより、ロボット装置1の待ち時間を少なくすることができるため、ロボット装置1の稼働時間が増え、作業効率を向上することができる。
<第4の実施形態>
第4の実施形態として、作業工程の進捗度と併せて工程遂行に対応する工具を推定し、推定結果に基づいてロボット装置1の動作内容を選択する方法について、図11及び図12を用いて説明する。
第4の実施形態として、作業工程の進捗度と併せて工程遂行に対応する工具を推定し、推定結果に基づいてロボット装置1の動作内容を選択する方法について、図11及び図12を用いて説明する。
図11は、第4の実施形態に係るロボット制御システムの全体構成の例を示す概略図である。図示するロボット制御システム100Aは、第1の実施形態に係るロボット制御システム100と比較して、2台のロボット装置を有する点が異なるが、その他の基本的な機能は同じである。以下では、主に、ロボット制御システム100Aと、第1の実施形態に係るロボット制御システム100の相違点を中心に説明する。
ロボット制御システム100Aは、ロボット装置1aとロボット装置1bを備える。ロボット装置1aは、ロボットアーム11aの先端にエンドエフェクタ12aを有し、作業台3上の作業対象物2に対して作業を実行する。また、ロボット装置1bは、ロボットアーム11bの先端にエンドエフェクタ12aと異なるエンドエフェクタ12bを有し、作業台3上の作業対象物2に対して作業を実行する。ロボット装置1aを制御するロボット制御装置7a、及びロボット装置1bを制御するロボット制御装置7bは、ネットワーク6を介して学習型制御装置8に接続される。
図12は、第4の実施形態に係るロボット制御システム100Aにおいて、学習プログラム851が学習モデル856の機械学習に用いる学習用データの例を示す概略図である。図示する学習用データ852Cは、カメラ10により撮影された1枚のカメラ画像(No.1、No.2、等)に対し、画像中に映っている物体の種別、画像中の物体の位置、及び工程進捗度に加え、次の工程で使用する工具のラベル(ハンド、ドライバ、等)を付与されたデータである。
ロボット装置1a及び1bが実施する作業内容によっては作業対象物2に対して用いる工具を変更して作業を進める場合があり、作業工程の進捗度に応じてロボット装置1a及び1bを切り替えて作業を行う。例えば、図12におけるNo.1の画像に示すように、ロボット装置1bが、部品3及び部品4を把持可能なエンドエフェクタ12b(ハンド)を用いて部品3に部品4を組み立てる工程(組立1)を行う。
図12におけるNo.2の画像に示すように、ロボット装置1aが、ねじ締結可能なエンドエフェクタ12a(ドライバ)を用いて、組み立てられた部品3,4をねじで締結する工程(締結1)を行う。そして、図12におけるNo.3の画像に示すように、再度ロボット装置1bが、部品2を把持可能なエンドエフェクタ12b(ハンド)を用いて、組み立てられた部品3,4に部品2を組み立てる工程(組立2)を行う。
図6に示した動作選択部864は、演算処理部863における工程進捗度と対応工具の推定結果に基づいて、ロボット装置1a又は1bに対応する動作パターン生成部865又は866の動作指令を出力するように、動作指令出力切替部867の出力を切り替える。例えば、図12におけるNo.1の画像のような状態では、学習型制御装置8は、部品3,4をねじで締結する工程(締結1)に対応する第1動作パターン生成部865の動作指令を、ネットワーク6を介してロボット装置1aに出力する。また、図12におけるNo.2の画像のような状態では、組み立てられた部品3,4に部品2を組み立てる工程(組立2)に対応する第2動作パターン生成部866の動作指令を、ネットワーク6を介してロボット装置1bに出力する。
なお、動作パターンの選択は上述した方法に限定されない。図3に示したような現場において、一方のロボット装置が実施できる工程を複数の作業対象物2に対して実施して作業台3に複数の組立て途中の部品を仮置きし、その状態で当該ロボット装置が移動して代わりに他方のロボット装置が工程を引き継ぐように構成されてもよい。
例えば、図12のNo.1の画像に示すような部品3に部品4を組み立てる工程(組立1)をロボット装置1bが複数回実施し、組み立てられた部品3,部品4を作業台3上に複数個仮置きしておく。この部品3に部品4を組み立てる工程を、作業台3上の作業スペースが無くなったり、部品3又は部品4が無くなったりするまで繰り返す。そして、ロボット装置1bは異なる作業台3上に移動し、ロボット装置1aが図12のNo.2の画像に示すような組み立てられた部品3,4をねじで締結する工程(締結1)を実施する。
また、ロボット装置1bは異なる作業台3に移動し、移動先の作業台3で図12のNo.1の画像に示すような部品3に部品4を組み立てる工程(組立1)を実施する。このように、ロボット装置1aとロボット装置1bが交互に工程を進めるように構成してもよい。すなわち、それぞれのロボット装置の位置や、作業対象物2の個数や作業工程の進捗度に応じて、動作を切り替えるように構成してもよい。
以上のとおり、第4の実施形態に係るロボット制御システム(ロボット制御システム100A)において、互いに異なるエンドエフェクタ(エンドエフェクタ12a,12b)が装着される2台以上のロボット装置(ロボット装置1a,1b)を備える。
動作選択部(動作選択部864)は、演算処理部(演算処理部863)が出力する作業対象物の種別と現在の作業工程の進捗度とに基づいて、2台以上のロボット装置のいずれかに対応する動作パターン生成部(動作パターン生成部865,866)を選択する。
動作選択部(動作選択部864)は、演算処理部(演算処理部863)が出力する作業対象物の種別と現在の作業工程の進捗度とに基づいて、2台以上のロボット装置のいずれかに対応する動作パターン生成部(動作パターン生成部865,866)を選択する。
上述した第4の実施形態では、作業工程の進捗度に応じて必要となるエンドエフェクタに対応するロボット装置が動作するように、動作パターン(動作パターン生成部)を選択する。それにより、複数の工程により構成され、かつ工程に応じて適切なツールが変わる作業を円滑に遂行できる。また、作業対象物の個数や作業工程の進捗度に応じて、複数のロボット装置の動作を切り替えるように構成することで、それぞれのロボット装置の待ち時間を軽減し、作業効率を向上することができる。
<変形例>
なお、本発明は上述した第1から第4の実施形態に限られるものではなく、請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、その他種々の応用例、変形例を取り得ることは勿論である。
なお、本発明は上述した第1から第4の実施形態に限られるものではなく、請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、その他種々の応用例、変形例を取り得ることは勿論である。
例えば、上述した各実施形態は本発明を分かりやすく説明するためにロボット制御システムの構成を詳細かつ具体的に説明したものであり、必ずしも説明した全ての構成要素を備えるものに限定されない。また、ある実施形態の構成の一部を他の実施形態の構成要素に置き換えることが可能である。また、ある実施形態の構成に他の実施形態の構成要素を加えることも可能である。また、各実施形態の構成の一部について、他の構成要素の追加又は置換、削除をすることも可能である。
また、上述した第1から第4の実施形態で用いたロボット装置1,1a,1bは、垂直多関節型ロボットの例を示しているが、直交座標型ロボット、水平多関節型ロボット、パラレルリンクロボット等であってもよい。また、本発明は、例示したような産業用ロボットに限らず、自律ロボットや屋外作業ロボット(屋外作業機械)を制御するロボット制御システムにも適用可能である。
また、ロボット装置1の作業状況を計測する作業状況センサとしてカメラ10以外の機器を用いてもよく、光学や電波を利用した測距装置を用いてもよい。例えば、レーザーを用いた測距装置であるLIDAR(Light Detection and Ranging、Laser Imaging Detection and Ranging)を用いて、作業対象物2や周囲の物体の形状、位置、姿勢を計測するように構成してもよい。作業状況センサに測距装置を用いる場合、作業状況センサは、作業対象物2や周囲の物体から得られる反射信号と当該反射信号が得られた位置とが対応づけられた点群データ(測距データ)を得る。
また、作業状況センサは、ロボット装置1が設置された移動台車9が移動する環境(現場の建物等)に設置されていてもよい。
また、動作パターン生成部865,866は、ロボットアーム11の関節角度やカメラ10のカメラ画像を取り込み、フィードバック制御するように構成されていてもよい。また、動作パターン生成部865,866に対し、カメラ画像に基づいて適切な動作指令を出力するように機械学習した制御手法を用いてもよい。
さらに、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。ハードウェアとして、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)などの広義のプロセッサデバイスを用いてもよい。
1…ロボット装置、 2…作業対象物、 7…ロボット制御装置、 8…学習型制御装置、 10…カメラ、 12…エンドエフェクタ、 100…ロボット制御システム、 851…学習プログラム、 852…学習用データ、 855…学習処理部、 856…学習モデル、 861…動作指令プログラム、 862…モデルパラメータデータ、 863…演算処理部、 864…動作選択部、 865…第1動作パターン生成部、 866…第2動作パターン生成部、 867…動作指令出力切替部
Claims (12)
- ロボット装置と、
作業対象物に対する前記ロボット装置の作業状況を示す情報を取得する作業状況センサと、
前記作業状況センサにより取得された前記作業状況を示す情報と、前記作業対象物の種別と、作業工程の進捗度とを含む学習用データにより機械学習された学習モデルを用いて、前記作業状況センサが取得した現在の前記作業状況を示す情報に対応する、前記作業対象物の種別と、現在の作業工程の進捗度を推定して出力する演算処理部と、
現在の前記作業工程に対応する前記ロボット装置の動作パターンを生成する、少なくとも1つ以上の動作パターン生成部と、
前記演算処理部が出力する前記作業対象物の種別と前記作業工程の進捗度とに基づいて、前記動作パターン生成部を選択する動作選択部と、を備える
ロボット制御システム。 - 前記学習モデルは、前記作業状況センサにより取得された前記作業状況を示す情報と、前記作業対象物の種別と、前記作業工程の進捗度と、当該作業工程における作業の正否とを含む学習用データにより機械学習されて、前記作業状況センサが取得した現在の前記作業状況を示す情報が入力されると、現在の前記作業状況を示す情報に含まれる作業対象物の種別と現在の前記作業工程の進捗度に加えて、当該作業工程における作業の成否を推定するように構成され、
前記動作選択部は、前記演算処理部が前記学習モデルを用いて出力する前記作業対象物の種別、現在の前記作業工程の進捗度、及び当該作業工程における作業の成否に基づいて、前記動作パターン生成部を選択する
請求項1に記載のロボット制御システム。 - 前記動作選択部は、前記演算処理部において現在の前記作業工程における作業が完了していないと推定された場合、前記動作パターン生成部の中から該当作業工程における作業を完了させるための動作パターンを生成する動作パターン生成部を選択する
請求項2に記載のロボット制御システム。 - 該当作業工程における作業を完了させるための動作パターンは、前記動作選択部によって先に選択された前記動作パターン生成部が生成した動作パターンによる作業結果を修正する作業を実施する動作パターンである
請求項3に記載のロボット制御システム。 - 前記学習モデルは、前記作業状況センサにより取得された前記作業状況を示す情報と、前記作業対象物の種別と、複数の独立した作業工程におけるそれぞれの作業工程の種別と、各々の作業工程の進捗度とを含む学習用データを用いて機械学習されて、前記作業状況センサが取得した現在の前記作業状況を示す情報が入力されると、現在の前記作業状況を示す情報に含まれる作業対象物の種別と、前記複数の独立した作業工程の種別と、現在の各々の作業工程の進捗度とを推定するように構成され、
前記動作選択部は、前記演算処理部が前記学習モデルを用いて出力する前記作業対象物の種別、前記複数の独立した作業工程の種別、及び現在の各々の作業工程の進捗度に基づいて、前記複数の独立した作業工程の中で実行可能な作業工程に対応する前記動作パターン生成部を選択する
請求項1に記載のロボット制御システム。 - 前記学習用データには、前記作業状況センサにより取得された前記作業状況を示す情報と、前記作業対象物の種別と、複数の独立した作業工程におけるそれぞれの作業工程の種別と、現在の各々の作業工程の進捗度に加えて、前記各々の作業工程の優先度が含まれ、 前記動作選択部は、前記優先度が高い作業工程に対応する前記動作パターン生成部を選択する
請求項5に記載のロボット制御システム。 - 互いに異なるエンドエフェクタが装着される2台以上のロボット装置、を備え、
前記動作選択部は、前記演算処理部が出力する前記作業対象物の種別と現在の前記作業工程の進捗度とに基づいて、前記2台以上の前記ロボット装置のいずれかに対応する前記動作パターン生成部を選択する
請求項1に記載のロボット制御システム。 - 前記作業状況センサは、前記ロボット装置に取り付けられ、前記ロボット装置の作業状況を示す情報として少なくとも前記作業対象物を含む画像を撮像する撮像装置である
請求項1に記載のロボット制御システム。 - 前記ロボット装置は、一つ以上の関節で構成されたロボットアームと、エンドエフェクタとを有する
請求項1に記載のロボット制御システム。 - 作業状況センサにより取得された作業対象物に対するロボット装置の作業状況を示す情報と、前記作業対象物の種別と、作業工程の進捗度とを含む学習用データにより機械学習された学習モデルを用いて、前記作業状況センサが取得した現在の前記作業状況を示す情報に対応する、前記作業対象物の種別と、現在の作業工程の進捗度を推定して出力する演算処理部と、
現在の前記作業工程に対応する前記ロボット装置の動作パターンを生成する、少なくとも1つ以上の動作パターン生成部と、
前記演算処理部が出力する、前記作業対象物の種別と現在の前記作業工程の進捗度とに基づいて、前記動作パターン生成部を選択する動作選択部と、を備える
ロボット制御システム。 - 作業状況センサにより取得された作業対象物に対するロボット装置の作業状況を示す情報と、前記作業対象物の種別と、作業工程の進捗度とを含む学習用データにより機械学習された学習モデルを用いて、前記作業状況センサが取得した現在の前記作業状況を示す情報に対応する、前記作業対象物の種別と、現在の作業工程の進捗度を推定して出力する処理と、
推定された前記作業対象物の種別と現在の前記作業工程の進捗度とに基づいて、作業工程に対応する前記ロボット装置の動作パターンを生成する、少なくとも1つ以上の動作パターン生成部の中から動作パターン生成部を選択する処理と、を備える
ロボット制御方法。 - 作業状況センサにより取得された作業対象物に対するロボット装置の作業状況を示す情報と、前記作業対象物の種別と、作業工程の進捗度とを含む学習用データにより機械学習された学習モデルを用いて、前記作業状況センサが取得した現在の前記作業状況を示す情報に対応する、前記作業対象物の種別と、現在の作業工程の進捗度を推定する手順と、 推定された前記作業対象物の種別と現在の前記作業工程の進捗度とに基づいて、作業工程に対応する前記ロボット装置の動作パターンを生成する、少なくとも1つ以上の動作パターン生成部の中から動作パターン生成部を選択する手順を、
コンピューターに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/285,343 US20240109190A1 (en) | 2021-04-27 | 2022-02-02 | Robot Control System, Robot Control Method, and Program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021075177A JP2022169255A (ja) | 2021-04-27 | 2021-04-27 | ロボット制御システム、ロボット制御方法及びプログラム |
JP2021-075177 | 2021-04-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022230280A1 true WO2022230280A1 (ja) | 2022-11-03 |
Family
ID=83848240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/003944 WO2022230280A1 (ja) | 2021-04-27 | 2022-02-02 | ロボット制御システム、ロボット制御方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240109190A1 (ja) |
JP (1) | JP2022169255A (ja) |
WO (1) | WO2022230280A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019010724A (ja) * | 2017-06-30 | 2019-01-24 | 大成建設株式会社 | 物品配置システム及び食品盛り付けシステム |
JP2019126875A (ja) * | 2018-01-24 | 2019-08-01 | 株式会社イシダ | 物品移載装置 |
JP2021030407A (ja) * | 2019-08-29 | 2021-03-01 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
-
2021
- 2021-04-27 JP JP2021075177A patent/JP2022169255A/ja active Pending
-
2022
- 2022-02-02 WO PCT/JP2022/003944 patent/WO2022230280A1/ja active Application Filing
- 2022-02-02 US US18/285,343 patent/US20240109190A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019010724A (ja) * | 2017-06-30 | 2019-01-24 | 大成建設株式会社 | 物品配置システム及び食品盛り付けシステム |
JP2019126875A (ja) * | 2018-01-24 | 2019-08-01 | 株式会社イシダ | 物品移載装置 |
JP2021030407A (ja) * | 2019-08-29 | 2021-03-01 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20240109190A1 (en) | 2024-04-04 |
JP2022169255A (ja) | 2022-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10618164B2 (en) | Robot system having learning control function and learning control method | |
JP6429473B2 (ja) | ロボットシステム、ロボットシステムの校正方法、プログラム、およびコンピュータ読み取り可能な記録媒体 | |
JP7122821B2 (ja) | ロボットシステム及びロボット制御方法 | |
JP5860021B2 (ja) | 複数の締結部材を締結するための締結装置、ロボットシステム、および締結方法 | |
CN104589354A (zh) | 机器人控制装置、机器人系统以及机器人 | |
US20220088795A1 (en) | Manipulator controller, manipulator control method, and non-transitory computer-readable storage medium storing manipulator control program | |
KR102525831B1 (ko) | 제어 시스템, 컨트롤러 및 제어 방법 | |
JP2022163719A (ja) | 対象物を挿入部に挿入するようにロボットを制御するための装置及び方法 | |
US20230099602A1 (en) | Device control based on execution command and updated environment information | |
Bhatt et al. | Trajectory-dependent compensation scheme to reduce manipulator execution errors for manufacturing applications | |
US20210197391A1 (en) | Robot control device, robot control method, and robot control non-transitory computer readable medium | |
CN110154043B (zh) | 基于加工结果进行学习控制的机器人系统及其控制方法 | |
JP2015127096A (ja) | ロボットシステム | |
WO2022230280A1 (ja) | ロボット制御システム、ロボット制御方法及びプログラム | |
JP2021142596A (ja) | シミュレーション装置およびプログラム | |
US20230286143A1 (en) | Robot control in working space | |
US11738458B2 (en) | Control method for robot system | |
JP7374867B2 (ja) | 制御システム、ローカルコントローラ及び制御方法 | |
WO2022158079A1 (ja) | 制御装置及び自動作業方法 | |
CN112318497B (zh) | 同时进行工件选择以及机器人作业的机器人控制系统 | |
JP2020189395A (ja) | ロボットシステム、復帰プログラム生成装置、制御支援装置、制御装置、プログラム、復帰プログラムの生成方法及び復帰プログラムの出力方法 | |
JP7302672B2 (ja) | ロボットシステム、コントローラ及び制御方法 | |
US20240051117A1 (en) | Determination of picking order of workpieces | |
JP7583490B1 (ja) | 制御装置、制御方法、及びプログラム | |
Hamed et al. | Vision-Based Control of a Quad-rotor Manipulation System |
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: 22795203 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 18285343 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 22795203 Country of ref document: EP Kind code of ref document: A1 |