WO2023067972A1 - 動作指令生成装置および動作指令生成方法 - Google Patents
動作指令生成装置および動作指令生成方法 Download PDFInfo
- Publication number
- WO2023067972A1 WO2023067972A1 PCT/JP2022/035100 JP2022035100W WO2023067972A1 WO 2023067972 A1 WO2023067972 A1 WO 2023067972A1 JP 2022035100 W JP2022035100 W JP 2022035100W WO 2023067972 A1 WO2023067972 A1 WO 2023067972A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- work
- command generation
- robot
- information
- image
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 21
- 230000033001 locomotion Effects 0.000 title abstract description 76
- 238000000605 extraction Methods 0.000 claims abstract description 36
- 238000010801 machine learning Methods 0.000 claims abstract description 26
- 230000009471 action Effects 0.000 claims description 58
- 230000000873 masking effect Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 18
- 239000012636 effector Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003466 welding 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
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
Definitions
- the present invention relates to an action command generation device and an action command generation method for generating action commands for a robot.
- an autonomous learning robot control system in which the robot itself determines its movement based on information from various sensors attached to the robot. Compared to conventional robot systems, it does not require a huge amount of programming or a high level of specialized knowledge, and is expected to facilitate the introduction of robots. Furthermore, this autonomous learning type robot control system is expected to be able to flexibly generate motions (generate motion commands) in response to various environmental changes by allowing the robots themselves to memorize and learn motion experiences.
- the robot's motion experience includes, for example, a method in which the robot's operator/manager directly teaches the robot the motions and memorizes them, and a method in which the robot observes and imitates the motions of the operator/manager or other robots.
- an autonomous learning robot control system is equipped with a learning device called a learner, which stores sensor information when experiencing motions and adjusts parameters to generate motions. .
- the stored operation is called learning data
- the parameter adjustment is called learning, and the learning data is used to perform learning of the learner.
- the learning device defines the relationship between input and output in advance, and repeatedly performs learning (parameter adjustment) so that an expected output value is output for an input value to the learning device.
- An example of learning data is the time-series data of the robot's joint angle information and the captured images of the work when experiencing a certain movement.
- the captured image includes the target to be gripped, the robot arm, and the robot hand.
- joint angle information and an image at time (t) are input to a learner using this learning data, and time-series learning is performed to predict joint angle information and an image at time (t+1).
- the autonomous learning type robot control system can automatically generate motions according to the state of work.
- Such a method is called an autonomous learning type end-to-end motion generation method because it directly generates the motion of the robot from the sensor information at a certain time without explicit intervention such as object recognition.
- an object to be worked on during learning or a similar object is obtained in a captured image, work is autonomously started on that object.
- a robot device described in Patent Document 1 plans a trajectory of an arm for gripping an object whose position and orientation are specified, and controls motion according to this trajectory.
- Autonomous learning type end-to-end motion generation directly generates robot motions (motion commands) without explicit object recognition (recognition of object position and orientation). Therefore, unlike the robot device described in Patent Document 1, the position and posture of the target cannot be specified.
- the present invention has been made in view of such a background, and provides an action command generation apparatus and an action command generation method that enable selection of an object in autonomous learning type end-to-end action command generation. is the subject.
- an action command generation device includes an acquisition unit that acquires an image and sensor information including a candidate for an object to be worked by a robot, and a machine learning model to generate the image and the a command generation unit that receives sensor information as an input and outputs an operation command for the robot, wherein the machine learning model includes a position extraction block that includes a parameter that is referred to when calculating the position or area of the candidate for the target object; , a motion command generation block including parameters referred to when calculating a motion command for the work of the robot on the object, an explanatory variable including the image and the sensor information, and an objective variable representing the motion command. generated using training data that contains
- FIG. 1 is an overall configuration diagram of a robot control system according to a first embodiment;
- FIG. 1 is a functional block diagram of an action command generation device according to a first embodiment;
- FIG. 1 is a configuration diagram of a command generation model according to a first embodiment;
- FIG. 4 is a flowchart of action command generation processing according to the first embodiment; It is a photographed image according to a modification of the first embodiment. It is an image for a mask according to a modified example of the first embodiment.
- 10 is a flowchart of action command generation processing according to the third embodiment;
- the motion command generation device receives as input a photographed image including a work target, and generates motion commands for the robot using a command generation model (see FIG. 3 described later), which is a learned machine learning model.
- the command generation model includes a position extraction block and a motion command generation block.
- the position extraction block contains parameters used in the process of recognizing one or more work targets (objects) in the captured image. In other words, the position extraction block includes parameters that are referred to when calculating the position or region of the work target (work target candidate).
- the motion command generation block includes parameters used in the process of generating a motion command that instructs the robot to move to grip one work target.
- the action command generation block includes parameters that are referred to when calculating the action command for the robot's work on the object.
- the command generation model, position extraction block, and motion command generation block are parameters used for processing such as recognition and inference using machine learning technology. It is sometimes written as For example, it may be described as "a command generation model calculates an action command", "a photographed image as an input of a position extraction block”, and the like.
- the action command generation device trains a machine learning model configured including a position extraction block and an action command generation block using learning data to generate a command generation model, which is a learned machine learning model.
- the explanatory variable (input) of the learning data includes the photographed image
- the objective variable (output, correct answer) includes the motion command of the robot that grips one object (work target, object) in the photographed image.
- the learning data may be teaching-type learning data including a photographed image of a person operating a robot to grip an object and an action command indicating the operation of the robot when gripping.
- Learning data may be obtained by calculating an optimal gripping action for an object using, for example, machine learning technology without human operation, and recording the calculated action as an action command. Note that the number of objects to be worked that appear in the photographed image of the teaching-type learning data may be one.
- the action command generation device uses (the position extraction block of) the command generation model to acquire (the position information of) one or more work objects from the captured image.
- the action command generating device inquires of the operator and selects one work target from one or more work targets.
- the motion command generation device generates motion commands for the robot that grips the selected work target using the command generation model (the motion command generation block thereof).
- the motion command generation device replaces one or more work targets acquired using (the position extraction block of) the command generation model with one work target, and generates a motion command for gripping the one work target. to generate
- a work target specified by a worker among a plurality of work targets is determined by using a command generation model generated using teaching-type/self-learning-type learning data that is easy to acquire. is generated.
- a machine learning model generated using conventional teaching-type learning data it was not possible to guarantee the operation when there were multiple work targets (it was unclear how it would operate).
- the operation command generation device the order of work targets to be worked can be guaranteed. For example, robots can be used for work with a fixed work order.
- FIG. 1 is an overall configuration diagram of a robot control system 10 according to the first embodiment.
- the robot control system 10 includes a robot 300 , a control device 310 , cameras 371 and 372 and an action command generation device 100 .
- the robot 300 is capable of handling a work target 380, which is an object, and performs predetermined work such as assembling and transporting parts.
- the configuration of the robot 300 does not matter, and it may be a single robot arm, or may be provided with a moving device such as a crawler or wheels.
- the control device 310 issues a control command to the robot 300 based on motion commands such as the joint angle of the robot 300 and the posture (position) and force (torque) of the end effector 301 (robot hand) input from the motion command generation device 100 . , and controls the operation of the robot 300 .
- the control command is, for example, a signal indicating a current value, a voltage value, or the like for an actuator (such as a motor) provided in a joint of a robot arm provided in the robot 300 or the end effector 301 .
- the built-in drive circuit supplies a drive signal to the corresponding actuator.
- the cameras 371 and 372 are imaging devices for imaging the working environment of the robot 300 and the surrounding environment. Although two cameras 371 and 372 are installed in FIG. 1, the number may be one or three or more.
- a camera 371 is attached to the robot arm 302, and the cameras 372 are installed around the robot 300 (for example, a workroom or a wall of a building).
- the work environment corresponds to the movable area (work area) of the robot 300
- the surrounding environment corresponds to the surrounding area outside the movable area of the robot.
- the motion command generation device 100 is based on images (captured images) captured by the cameras 371 and 372 and information obtained from sensors placed in the robot 300, work environment, and surrounding environment (hereinafter referred to as sensor information). , which plans the motion of the robot 300 and transmits motion commands such as joint angles and forces of the robot 300 to the control device 310 .
- the types of robot 300 and sensor information do not matter.
- the sensor information may be a current value of an actuator provided at a joint of the robot 300, an output signal of a tactile sensor or an inertial sensor externally attached to the robot 300, or the like.
- the sensor information may be a temperature sensor or the like that measures the working environment or surrounding environment. In this way, each sensor detects the state of the robot 300 and the state of the environment, and outputs a detection signal according to the content of detection.
- FIG. 2 is a functional block diagram of the action command generation device 100 according to the first embodiment.
- the action command generation device 100 is a computer and includes a control section 110 , a storage section 120 and an input/output section 180 .
- User interface devices such as a display, a keyboard, and a mouse are connected to the input/output unit 180 .
- a touch panel display is connected to the input/output unit 180, and images captured by the cameras 371 and 372 are displayed.
- the robot operator designates one of the work targets 380 gripped by the robot 300 on the touch panel display.
- the input/output unit 180 also includes a communication device, and can transmit and receive data (signals) to and from devices such as the control device 310 and the cameras 371 and 372 .
- the storage unit 120 includes storage devices such as ROM (Read Only Memory), RAM (Random Access Memory), and SSD (Solid State Drive). Storage unit 120 stores learning data 130 , command generation model 140 , and program 128 .
- the program 128 includes a description of operation command generation processing (see FIG. 4 described later).
- the learning data 130 is learning data used for learning of the command generation model 140, which is a machine learning model.
- the explanatory variables (inputs) of the learning data 130 are captured images of the work environment and the surrounding environment of the robot 300 acquired in time series when the robot 300 grips the work target 380, and the robot 300, the work environment, and the surrounding environment. is the sensor information of
- the objective variable (output) of the learning data 130 is an operation command to the robot 300 acquired in time series when the robot 300 grips the work target 380 .
- the operator of the robot 300 connects an operation unit such as a joystick to the input/output unit 180 to operate (control) the robot 300 .
- the operation unit is a device that receives input from an operator and transmits an operation command to the control device 310 according to the content of the input.
- the robot 300 may be made to reproduce a previously planned motion of the robot 300 . Note that even if it is expected that there will be a plurality of work targets 380 when the robot 300 is operated, there may be only one work target 380 when the learning data 130 is acquired.
- FIG. 3 is a configuration diagram of the command generation model 140 according to the first embodiment.
- Command generation model 140 is a machine learning model and includes position extraction block 141 and motion command generation block 142 .
- the position extraction block 141 contains parameters used in the process of recognizing one or more work targets 380 and end effectors 301 in the captured image.
- the position extraction block 141 includes, for example, CNN (Convolutional Neural Network) for extracting the feature amount of the image, and Spatial Softmax parameters for extracting the coordinate information of the position with the highest intensity from the obtained feature map. is referred to when performing processing for extracting the position information of the work target 380 from.
- CNN Convolutional Neural Network
- Spatial Softmax is a kind of functions used in machine learning, such as softmax function, tanh function, and sigmoid function, and is also called soft argmax.
- the number of position coordinates extracted by Spatial Softmax is determined based on the number of channels of the previous CNN.
- the motion command generation block 142 includes parameters used in the process of generating motion commands that instruct the motion of the robot 300 to grip the work target.
- the action command generation block 142 uses, for example, a fully connected layer or Recurrent Neural Network (RNN) to generate a motion command from the position information and sensor information of the work target obtained from the position extraction block.
- RNN Recurrent Neural Network
- the control unit 110 includes a CPU (Central Processing Unit) and includes an acquisition unit 111 , a learning unit 112 and a command generation unit 113 .
- Acquisition unit 111 acquires images captured by cameras 371 and 372, and sensor information from sensors provided in robot 300, the work environment, and the surrounding environment.
- the learning unit 112 trains the command generation model 140 using the learning data 130 (makes the command generation model 140 learn the learning data 130). As a result of training/learning, the parameters included in the command generation model 140 are adjusted, and an operation command for gripping the work object 380 that minimizes the error based on the captured image and sensor information is output.
- the output of the position extraction block 141 can provide important position information for accomplishing the task. I can expect it. For example, positional information of the work target 380, the end effector 301, etc. can be obtained.
- the learning data 130 includes captured images, sensor information, and action commands, but does not include position information and is not explicitly trained/learned.
- each channel of the CNN obtained as a result of learning reacts to a specific shape.
- a first channel may respond to work object 380, a second channel to end effector 301, and so on. Since the motion command generation block 142 predicts motion commands based on the coordinates obtained from each channel, changing the coordinates of the first channel is equivalent to changing the position of the work object. It should be noted that which channel responds to the work object can be determined by inputting learning data after training/learning and examining the channel outputting the position coordinates of the work object.
- the position information output from the position extraction block 141 includes the position coordinates of each work target 380 and the end effector 301 included in the captured image.
- the command generation unit 113 uses the command generation model 140 to make an inference (prediction) based on the captured image, the sensor information, and the position information of the work target specified by the operator, and generate an operation command for the robot 300. Output. This motion command is transmitted to the control device 310, and the robot 300 operates.
- the position information of the work target specified by the operator is not an input (explanatory variable) of the command generation model 140 as a machine learning model.
- the command generation unit 113 replaces the position information of the work target calculated using the position extraction block 141 with the position information of the work target specified by the operator, and calculates a motion command using the motion command generation block 142. .
- FIG. 4 is a flowchart of action command generation processing according to the first embodiment.
- the main work means that the robot 300 grips one or more work targets 380 (for example, rubble) one by one with the end effector 301 and transfers them to a predetermined container (not shown) ( removal).
- One sub-work is to grab one work object 380 and transfer it to a container.
- the operator of the robot 300 instructs the work target 380 to be removed, and the robot 300 grasps the work target 380 and transfers it to a container according to the generated operation command.
- step S11 the command generation unit 113 starts processing to repeat steps S12 to S17 for each sub-work. Specifically, the command generation unit 113 uses the position extraction block 141 to calculate the position information from the captured image. Otherwise, the process proceeds to step S12.
- step S12 the command generation unit 113 displays the captured images of the cameras 371 and 372 showing the work object 380 on the touch panel display, and asks the operator which work object 380 to hold.
- the command generation unit 113 acquires the position.
- the command generation unit 113 acquires the work target designation information that designates the work target object of the robot 300 among the work target object candidates.
- one indicated work target 380 is referred to as a work target object.
- step S13 the command generation unit 113 repeats the processing of steps S14 to S17 until the sub-work ends (the robot grips the work target object instructed in step S12 and moves it to a container).
- step S14 the command generation unit 113 inputs the captured image to the position extraction block 141 to acquire position information. Specifically, the command generation unit 113 uses the position extraction block 141 to calculate position information from the captured image.
- the position information includes position coordinates of each work target 380 and the end effector 301 .
- step S15 the command generation unit 113 replaces the position coordinates of the work target object included in the position information with the position information acquired in step S12.
- the position of the work target object changes as the command generation unit 113 repeats steps S14 to S17 and the robot 300 grips and moves the work target object.
- the command generation unit 113 tracks the position of the work target object instructed in step S12 and replaces it with the position of the work target object, which is the tracking result.
- the position of the work target object after being gripped can be acquired from the position of the end effector 301 calculated from the motion command acquired in step S16 described later.
- step S16 the command generation unit 113 inputs the replaced position information and sensor information to the motion command generation block 142 to obtain a motion command. Specifically, the command generation unit 113 uses the motion command generation block 142 to calculate the motion command from the replaced position information and sensor information. In step S ⁇ b>17 , command generation unit 113 transmits the operation command calculated in step S ⁇ b>16 to control device 310 .
- the motion command generation device 100 uses the command generation model 140 to generate motion commands for the robot 300 from the captured image and sensor information.
- the command generation model 140 is a machine learning model, and its learning data is data that can be acquired from the work of the operator operating the robot 300, and can be created at low cost.
- the command generation model 140 includes a position extraction block 141 and an action command generation block 142, and is configured to calculate the position of the work target when generating the action command.
- the action command generation device 100 replaces the position of the work target with the position of the work target specified by the operator. By doing so, even when there are a plurality of objects to be worked on, the robot 300 will work on the object instructed by the operator.
- the number of objects to be worked on when creating the learning data may be one. It is possible to create learning data at low cost and in a short time compared to preparing learning data for multiple work targets and training/learning.
- the positional information (positional coordinates) of the work target is calculated when calculating the action command using the command generation model 140 (see FIG. 3).
- the sigmoid function instead of the Spatial Softmax function in the position extraction block 141
- area information of the work target and the end effector 301 may be calculated instead of the position information.
- the command generation unit 113 replaces the work target position information output from the position extraction block 141 with the work target position information specified by the operator (see step S15 in FIG. 4).
- the captured image to be input may include only the work target.
- FIG. 5 is a photographed image 510 according to a modified example of the first embodiment. Assume that the operator designates to grip the right work target 511 among the three work targets in the lower right of the captured image 510 . Then, the command generation unit 113 generates a masking image 520 ( (see FIG. 6, which will be described later).
- FIG. 6 is a mask image 520 according to a modification of the first embodiment.
- An area 521 is an area that includes the work target 511 and does not include work targets other than the work target 511 that have not been specified by the operator. Areas other than the area 521 are masked in the image 520 .
- FIG. 7 is a photographed image 530 obtained by masking the photographed image 510 with an image 520 according to the modification of the first embodiment.
- the command generation unit 113 does not replace the position information, but uses the photographed image 530 in which the specified work target 511 is left and the others are masked as an input to the command generation model 140 (position extraction block 141) to calculate the motion command. do.
- the position information output from the position extraction block 141 includes only the position information of the work target 511, and the operation of gripping the work target 511 is suppressed.
- a directive is generated.
- the operator selects the work target (see step S12 in FIG. 4), but it is also possible to select one of a plurality of work types.
- the work type in the rubble removal work is, for example, to which container the work target rubble selected and gripped by the robot 300 is moved.
- the type of work in the valve opening/closing work is, for example, whether the selected valve is to be opened or closed.
- step S12 the command generation unit 113 acquires the work type together with the position information of the work target.
- steps S14 to S17 the command generation unit 113 calculates an action command using the command generation model 140 corresponding to the work type. By doing so, the robot 300 can perform the work of the work type instructed by the operator on the work target.
- ⁇ Second embodiment>> the operator is asked about the work target to be gripped (see step S12 in FIG. 4). If one work target to be gripped can be specified, the work may be performed without asking the operator. For example, if the work target can be considered to be in one place in the captured image, the work may be performed without asking the operator. This is a case where there are one or more pieces of position information (position coordinates) calculated by the position extraction block 141, but the positions are scattered (dispersed) so small that they can be regarded as one place.
- the functional configuration of the action command generation device 100 according to the second embodiment is the same as that of the first embodiment except for the command generation unit 113 (action command generation processing).
- a command generation unit of the second embodiment is referred to as a command generation unit 113A.
- FIG. 8 is a flowchart of action command generation processing according to the second embodiment.
- step S31 the command generation unit 113A starts processing to repeat steps S32 to S40 for each sub-work.
- step S32 the command generation unit 113A inputs the captured image to the position extraction block 141, acquires position information, and calculates the variance of the position information.
- the variance is, for example, the sum of the variances of the X and Y coordinates indicating the position of the work target.
- step S33 the command generation unit 113A proceeds to step S34 if the variance calculated in step S32 is larger than the predetermined value (step S33 ⁇ YES), and proceeds to step S35 if the variance is equal to or less than the predetermined value (step S33 ⁇ NO).
- Step S34 is the same process as step S12 described in FIG.
- step S35 the command generation unit 113A repeats the processing of steps S36 to S40 until the robot grips the work target object instructed in step S34 and transfers it to the container.
- step S34 is skipped (step S33 ⁇ NO)
- the work target object is the work target object at the position of the position information that has a small variance and can be regarded as one place.
- Step S36 is the same process as step S14.
- the command generation unit 113A proceeds to step S38 if the position of the work target object, which is the operator's instruction, is acquired in step S34 (see step S12) (step S37 ⁇ YES). (Step S37 ⁇ NO)
- the process proceeds to step S39.
- Steps S38 to S40 are similar to steps S15 to S17, respectively.
- Step S38 may be executed following step S36 without branching to NO in step S37 and skipping step S38.
- the command generation unit 113A may replace the position coordinates of the work target object with position information according to the movement of the gripped work target object (see step S15).
- the order of work targets is determined. If the order is not determined, the work may be performed one after another without asking the operator. For example, in debris removal work, if debris with similar shapes and appearances are scattered and can be removed in any order, the debris can be grasped one after another and transferred to a container.
- the functional configuration of the action command generation device 100 according to the third embodiment is the same as that of the first embodiment except for the command generation section (action command generation processing).
- the command generator of the third embodiment is referred to as command generator 113B.
- FIG. 9 is a flowchart of action command generation processing according to the third embodiment.
- step S51 the command generation unit 113B starts processing to repeat steps S52 to S58 for each sub-work.
- step S52 the command generation unit 113B inputs the captured image to the position extraction block 141 to acquire position information of the work target.
- step S53 the command generation unit 113B randomly selects one work target in the position information acquired in step S52.
- this selected work target is referred to as a work target object.
- Steps S54 to S58 are the same as steps S13 to S17, respectively.
- step S56 the position coordinates of the work target object included in the position information are replaced with the position information of the work target object selected in step S53.
- the operator of the robot 300 selects the object to be worked on, but the present invention is not limited to this.
- the command generation unit 113 determines whether or not there is (the positional information of) the work target 380 based on the positional information (see step S11 in FIG. 4). You may make it judge to. Alternatively, the operator may determine whether the sub-work is completed (see step S13).
- the action command generation device 100 in the above-described embodiment includes a learning unit 112 and command generation units 113, 113A, and 113B, generates a command generation model 140, and outputs an action command using the command generation model 140. are doing.
- a device that generates the command generation model 140 and a device that outputs the operation command may be separated.
- a model generation device having a learning unit 112 generates a command generation model 140 and transmits it to a plurality of motion command devices, and each motion command device outputs a motion command to each robot controller. good too.
- the operation command generation device 100 and the control device 310 may be integrated.
- action command generation device 111 acquisition unit 112 learning units 113, 113A, 113B command generation unit 128 program 130 learning data 140 command generation model (machine learning model) 141 position extraction block 142 motion command generation block 300 robot 380 work object (object)
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
動作指令生成装置(100)は、ロボットが作業する対象物の候補を含む画像およびセンサ情報を取得する取得部(111)と、機械学習モデル(指令生成モデル(140))を用いて、前記画像および前記センサ情報を入力として前記ロボットの動作指令を出力する指令生成部(113)とを備える。機械学習モデルは、対象物の候補の位置または領域を算出する際に参照されるパラメータを含む位置抽出ブロックと、対象物に対するロボットの作業の動作指令を算出する際に参照されるパラメータを含む動作指令生成ブロックとを含み、説明変数が画像およびセンサ情報を含み、目的変数が動作指令を含む学習データ(130)を用いて生成される。
Description
本発明は、ロボットの動作指令を生成する動作指令生成装置および動作指令生成方法に関する。
生産効率向上や人件費削減のため、工業製品の組み立て、溶接、搬送などの人が行っていた作業をロボットに代替させる取り組みが増えている。しかし、これまでのロボットシステムは、膨大なプログラミングや高い専門知識が必要であり、ロボット導入の阻害要因になっていた。
このような状況に対応するために、ロボットに取り付けられた各種センサ情報に基づいてロボット自身で動作を決定する自律学習型ロボット制御システムが提案されている。これまでのロボットシステムに比べると膨大なプログラミングや高い専門知識が不要であり、ロボットを容易に導入できることが期待される。さらに、この自律学習型ロボット制御システムは、ロボット自らが動作経験を記憶・学習することで多様な環境変化に対し柔軟な動作生成(動作指令の生成)が可能であると期待されている。
ロボットの動作経験とは、例えば、ロボットの操作者/管理者がロボットに動作を直接教えて記憶させる手法や、操作者/管理者や他のロボットの動作を見て真似る手法などがある。また、一般的に自律学習型ロボット制御システムには、学習器と呼ばれる学習装置が備えられており、動作経験時のセンサ情報の記憶と、動作を生成するためのパラメータ調整とが行われている。この記憶された動作は学習データ、パラメータ調整は学習と呼ばれ、学習データを用いて学習器の学習を行う。学習器は、予め入出力の関係を定義し、学習器への入力値に対し期待した出力値が出力されるように学習(パラメータ調整)を繰り返し行う。
学習データの例として、ある動作経験時のロボットの関節角情報と作業の撮像画像との時系列データがある。物体を把持する作業を含む場合、撮影画像には把持の対象物やロボットアーム、ロボットハンドが映っている。この学習データを用いて、学習器に時刻(t)の関節角情報と画像を入力し、時刻(t+1)の関節角情報と画像を予測するように時系列学習させたとする。すると、学習が完了した学習器にロボット関節角情報と画像を逐次入力することで、自律学習型ロボット制御システムは、作業の状態に応じて自動的に動作を生成することが可能になる。
このような手法は、ある時刻のセンサ情報から物体認識などを陽に介さず、直接ロボットの動作を生成するため、自律学習型のエンドツーエンドの動作生成手法と呼ばれる。これらの手法では、学習時に作業対象とした物体や類似の物体が撮像画像中に得られた場合に、その物体に対して自律的に作業を開始する。しかし、作業対象の物体が同時に複数存在する場合については想定されておらず、作業ができない、もしくはどの物体に作業を行うかが分からない可能性があった。
一方で、自律化が求められるロボットの作業として、作業対象物体が同時に複数存在するケースがある。このような作業として例えば、廃炉作業における瓦礫撤去作業や、プラントにおけるバルブ開閉作業、段ボールの搬送作業などがある。瓦礫撤去作業では、類似形状・テクスチャの瓦礫が散らばっていることが想定され、順番によらず撤去すればよい場合や、瓦礫が重なるなどしているために適切な順番で撤去しなければならない場合がある。また、バルブ開閉作業では、適切な順番でバルブを開閉する必要がある。このため、自律学習型のエンドツーエンドの動作生成手法において、対象物を指定し、その物体に作業を行うことが求められている。
作業の対象物を指定する技術として、特許文献1に記載のロボット装置があり、ロボット装置が撮像した画像内の対象物の位置や姿勢(向き)を操作者が指定する。
作業の対象物を指定する技術として、特許文献1に記載のロボット装置があり、ロボット装置が撮像した画像内の対象物の位置や姿勢(向き)を操作者が指定する。
特許文献1に記載のロボット装置は、位置や姿勢が指定された対象物を把持するための腕部の軌道を計画し、この軌道に従って動作を制御する。自律学習型のエンドツーエンドの動作生成では、物体認識(物体の位置や姿勢の認識)を陽に介さず、直接ロボットの動作(動作指令)を生成している。このため、特許文献1に記載のロボット装置のように対象物の位置や姿勢を指定することができない。
本発明は、このような背景を鑑みてなされたものであり、自律学習型のエンドツーエンドの動作指令生成において対象物の選択を可能とする動作指令生成装置および動作指令生成方法を提供することを課題とする。
本発明は、このような背景を鑑みてなされたものであり、自律学習型のエンドツーエンドの動作指令生成において対象物の選択を可能とする動作指令生成装置および動作指令生成方法を提供することを課題とする。
上記した課題を解決するため、本発明に係る動作指令生成装置は、ロボットが作業する対象物の候補を含む画像およびセンサ情報を取得する取得部と、機械学習モデルを用いて、前記画像および前記センサ情報を入力として前記ロボットの動作指令を出力する指令生成部とを備え、前記機械学習モデルは、前記対象物の候補の位置または領域を算出する際に参照されるパラメータを含む位置抽出ブロックと、前記対象物に対する前記ロボットの作業の動作指令を算出する際に参照されるパラメータを含む動作指令生成ブロックとを含み、説明変数が前記画像および前記センサ情報を含み、目的変数が前記動作指令を含む学習データを用いて生成される。
本発明によれば、自律学習型のエンドツーエンドの動作指令生成において対象物の選択を可能とする動作指令生成装置および動作指令生成方法を提供することができる。上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
≪動作指令生成装置の概要≫
以下に本発明を実施するための形態(実施形態)における動作指令生成装置を説明する。動作指令生成装置は、作業対象を含む撮影画像を入力として、学習済みの機械学習モデルである指令生成モデル(後記する図3参照)を用いてロボットに対する動作指令を生成する。
以下に本発明を実施するための形態(実施形態)における動作指令生成装置を説明する。動作指令生成装置は、作業対象を含む撮影画像を入力として、学習済みの機械学習モデルである指令生成モデル(後記する図3参照)を用いてロボットに対する動作指令を生成する。
指令生成モデルは、位置抽出ブロックと動作指令生成ブロックとを含む。位置抽出ブロックは、撮影画像にある1つ以上の作業対象(物体)を認識する処理に用いられるパラメータを含む。換言すれば位置抽出ブロックは、作業対象(作業の対象物の候補)の位置または領域を算出する際に参照されるパラメータを含む。動作指令生成ブロックは、1つの作業対象を把持するためのロボットの動作を指示する動作指令を生成する処理に用いられるパラメータを含む。換言すれば動作指令生成ブロックは、対象物に対するロボットの作業の動作指令を算出する際に参照されるパラメータを含む。
なお、指令生成モデルや位置抽出ブロック、動作指令生成ブロックは、機械学習技術を用いた認識や推論などの処理に用いるパラメータであるが、以下ではパラメータ自体がパラメータを用いて処理する主体であるかのように記載する場合もある。例えば、「指令生成モデルが動作指令を算出する」、「位置抽出ブロックの入力である撮影画像」などと記す場合がある。
動作指令生成装置は、位置抽出ブロックと動作指令生成ブロックとを含む構成の機械学習モデルを、学習データを用いて訓練して学習済み機械学習モデルである指令生成モデルを生成する。学習データの説明変数(入力)は撮影画像を含み、目的変数(出力、正解)は撮影画像にある1つの物体(作業対象、対象物)を把持するロボットの動作指令を含む。
学習データは、人がロボットを操作して物体を把持する様子の撮影画像と、把持するときのロボットの操作を示す動作指令とを含む教示型の学習データであってもよい。人が操作せず、物体に対する最適な把持動作を、例えば機械学習技術を用いて算出して、算出された動作を動作指令として記録した学習データであってもよい。なお教示型学習データの撮影画像に映る作業対象の物体は、1つであってもよい。
動作指令生成装置は、指令生成モデル(の位置抽出ブロック)を用いて撮影画像から1つ以上の作業対象(の位置情報)を取得する。次に動作指令生成装置は、操作者に問い合わせて1つ以上の作業対象から1つの作業対象を選択する。続いて動作指令生成装置は、指令生成モデル(の動作指令生成ブロック)を用いて選択された作業対象を把持するロボットの動作命令を生成する。換言すれば、動作指令生成装置は、指令生成モデル(の位置抽出ブロック)を用いて取得された1つ以上の作業対象を1つの作業対象に置き換えて、当該1つの作業対象を把持する動作指令を生成する。
このような動作指令生成装置によれば、取得しやすい教示型/自律学習型の学習データを用いて生成された指令生成モデルを用いて、複数の作業対象のなかで作業者が指定した作業対象を把持する動作指令が生成される。従来までの教示型の学習データを用いて生成された機械学習モデルを用いる場合には、複数の作業対象があった場合の動作が保証できなかった(どのように動作するか不明だった)。動作指令生成装置によれば、作業する作業対象の順番を保証することができる。例えば、作業順序が決まった作業に対してロボットを使用することができるようになる。
≪ロボット制御システムの全体構成≫
図1は、第1実施形態に係るロボット制御システム10の全体構成図である。ロボット制御システム10は、ロボット300、制御装置310、カメラ371,372、および動作指令生成装置100を含んで構成される。
ロボット300は、物体である作業対象380のハンドリングが可能であり、部品の組み立てや搬送など所定の作業を行う。ロボット300の構成は問わず、ロボットアーム単体でもよく、クローラや車輪などの移動装置を備えてもよい。
図1は、第1実施形態に係るロボット制御システム10の全体構成図である。ロボット制御システム10は、ロボット300、制御装置310、カメラ371,372、および動作指令生成装置100を含んで構成される。
ロボット300は、物体である作業対象380のハンドリングが可能であり、部品の組み立てや搬送など所定の作業を行う。ロボット300の構成は問わず、ロボットアーム単体でもよく、クローラや車輪などの移動装置を備えてもよい。
制御装置310は、動作指令生成装置100から入力されたロボット300の関節角やエンドエフェクタ301(ロボットハンド)の姿勢(位置)、力(トルク)などの動作指令を基に、ロボット300に制御指令を出力してロボット300の動作を制御する装置である。制御指令は、例えばロボット300に備わるロボットアームの関節やエンドエフェクタ301などに設けられたアクチュエータ(モータなど)に対する電流値や電圧値などを示す信号である。ロボット300は、制御装置310から制御指令を受信すると内蔵の駆動回路が該当するアクチュエータに駆動信号を供給する。
カメラ371,372は、ロボット300の作業環境や周辺環境を撮像するための撮像装置である。図1では、2台のカメラ371,372が設置されているが、1台であっても3台以上であってもよい。カメラ371はロボットアーム302に取り付けられており、カメラ372はロボット300の周辺(例えば作業室や建物の壁)に設置されている。ここで作業環境はロボット300の可動領域(作業エリア)に相当し、周辺環境はロボットの可動領域外の周辺領域に相当する。
動作指令生成装置100は、カメラ371,372により撮影された画像(撮影画像)、ロボット300や作業環境、周辺環境に配置されたセンサから得られた情報(以下、センサ情報と記す)に基づいて、ロボット300の動作を計画し、制御装置310にロボット300の関節角や力などの動作指令を送信する装置である。ここで、ロボット300やセンサ情報の種類は問わない。例えば、センサ情報は、ロボット300の関節に備わっているアクチュエータの電流値、ロボット300に外付けされている触覚センサや慣性センサの出力信号などでもよい。さらにセンサ情報は、作業環境や周辺環境を計測している温度センサなどでもよい。このように、各センサは、ロボット300の状態や環境の状態を検出し、検出内容に応じた検出信号を出力する。
≪動作指令生成装置の構成≫
図2は、第1実施形態に係る動作指令生成装置100の機能ブロック図である。動作指令生成装置100はコンピュータであり、制御部110、記憶部120、および入出力部180を備える。
入出力部180には、ディスプレイやキーボード、マウスなどのユーザインターフェイス機器が接続される。例えば入出力部180にはタッチパネルディスプレイが接続され、カメラ371,372の撮影画像が表示される。ロボットの操作者は、ロボット300が把持する作業対象380の1つをタッチパネルディスプレイ上で指定する。また、入出力部180は通信デバイスを備え、制御装置310やカメラ371,372などの装置とのデータ(信号)の送受信が可能である。
図2は、第1実施形態に係る動作指令生成装置100の機能ブロック図である。動作指令生成装置100はコンピュータであり、制御部110、記憶部120、および入出力部180を備える。
入出力部180には、ディスプレイやキーボード、マウスなどのユーザインターフェイス機器が接続される。例えば入出力部180にはタッチパネルディスプレイが接続され、カメラ371,372の撮影画像が表示される。ロボットの操作者は、ロボット300が把持する作業対象380の1つをタッチパネルディスプレイ上で指定する。また、入出力部180は通信デバイスを備え、制御装置310やカメラ371,372などの装置とのデータ(信号)の送受信が可能である。
記憶部120は、ROM(Read Only Memory)やRAM(Random Access Memory)、SSD(Solid State Drive)などの記憶機器を含んで構成される。記憶部120には、学習データ130、指令生成モデル140、およびプログラム128が記憶される。プログラム128は、動作指令生成処理(後記する図4参照)の記述を含む。
≪動作指令生成装置:学習データ≫
学習データ130は、機械学習モデルである指令生成モデル140の学習に用いる学習用データである。学習データ130の説明変数(入力)は、ロボット300が作業対象380を把持する作業時に時系列に取得した、ロボット300の作業環境や周辺環境の撮影画像、および、ロボット300や作業環境、周辺環境のセンサ情報である。学習データ130の目的変数(出力)は、ロボット300が作業対象380を把持する作業時に時系列に取得したロボット300への動作指令である。
学習データ130は、機械学習モデルである指令生成モデル140の学習に用いる学習用データである。学習データ130の説明変数(入力)は、ロボット300が作業対象380を把持する作業時に時系列に取得した、ロボット300の作業環境や周辺環境の撮影画像、および、ロボット300や作業環境、周辺環境のセンサ情報である。学習データ130の目的変数(出力)は、ロボット300が作業対象380を把持する作業時に時系列に取得したロボット300への動作指令である。
この作業は、ロボット300の操作者が、例えばジョイスティックなどの操作部を入出力部180に接続して、ロボット300を操作(制御)する作業である。操作部は操作者の入力を受け付けて、その内容に応じた動作指令を制御装置310に送信する装置である。操作者が操作する替わりに、予め計画されたロボット300の動作をロボット300に再生させてもよい。なお、ロボット300の運用時に作業対象380が複数あることが予想されるとしても、学習データ130の取得時には、作業対象380は1つであってもよい。
≪動作指令生成装置:指令生成モデル≫
図3は、第1実施形態に係る指令生成モデル140の構成図である。指令生成モデル140は機械学習モデルであって、位置抽出ブロック141と動作指令生成ブロック142とを含む。
位置抽出ブロック141は、撮影画像にある1つ以上の作業対象380やエンドエフェクタ301を認識する処理に用いられるパラメータを含む。位置抽出ブロック141は、例えば画像の特徴量を抽出するCNN(Convolutional Neural Network)、および得られた特徴マップから一番強度の大きい位置の座標情報を抽出するSpatial Softmaxに係るパラメータを含み、撮影画像から作業対象380の位置情報を抽出する処理をするときに参照される。Spatial Softmaxは、機械学習で用いられるsoftmax関数やtanh関数、sigmoid関数などの関数の一種であり、soft argmaxとも称される。Spatial Softmaxで抽出される位置座標の数は、直前のCNNのチャンネル数に基づいて決定される。
図3は、第1実施形態に係る指令生成モデル140の構成図である。指令生成モデル140は機械学習モデルであって、位置抽出ブロック141と動作指令生成ブロック142とを含む。
位置抽出ブロック141は、撮影画像にある1つ以上の作業対象380やエンドエフェクタ301を認識する処理に用いられるパラメータを含む。位置抽出ブロック141は、例えば画像の特徴量を抽出するCNN(Convolutional Neural Network)、および得られた特徴マップから一番強度の大きい位置の座標情報を抽出するSpatial Softmaxに係るパラメータを含み、撮影画像から作業対象380の位置情報を抽出する処理をするときに参照される。Spatial Softmaxは、機械学習で用いられるsoftmax関数やtanh関数、sigmoid関数などの関数の一種であり、soft argmaxとも称される。Spatial Softmaxで抽出される位置座標の数は、直前のCNNのチャンネル数に基づいて決定される。
動作指令生成ブロック142は、作業対象を把持するためのロボット300の動作を指示する動作指令を生成する処理に用いられるパラメータを含む。動作指令生成ブロック142は、例えば全結合層やRecurrent Neural Network(RNN)などを用いて、位置抽出ブロックから得られた作業対象の位置情報とセンサ情報とから、動作指令を生成する。
≪動作指令生成装置:制御部≫
図2に戻って制御部110の説明を続ける。制御部110は、CPU(Central Processing Unit)を含んで構成され、取得部111、学習部112、および指令生成部113が備わる。取得部111は、カメラ371,372の撮影画像、およびロボット300や作業環境、周辺環境に備わるセンサのセンサ情報を取得する。
図2に戻って制御部110の説明を続ける。制御部110は、CPU(Central Processing Unit)を含んで構成され、取得部111、学習部112、および指令生成部113が備わる。取得部111は、カメラ371,372の撮影画像、およびロボット300や作業環境、周辺環境に備わるセンサのセンサ情報を取得する。
学習部112は、学習データ130を用いて指令生成モデル140を訓練する(指令生成モデル140に学習データ130を学習させる)。訓練/学習の結果として指令生成モデル140に含まれるパラメータが調整され、撮影画像とセンサ情報とに基づいて誤差が最小となるような作業対象380を把持する動作指令が出力されるようになる。
動作指令の誤差を最小化することは、学習データ130に示されている作業を達成することに等しいため、位置抽出ブロック141の出力として作業を達成するために重要な位置情報が得られることが期待できる。例えば、作業対象380やエンドエフェクタ301などの位置情報が得られると考えられる。なお学習データ130は、撮影画像とセンサ情報と動作指令とを含むが、位置情報は含んでおらず、陽に訓練/学習されたものではない。
また、学習の結果として得られたCNNの各チャンネルは、特定の形状に反応する。例えば、第1のチャンネルは作業対象380に、第2のチャンネルはエンドエフェクタ301に反応するなどである。動作指令生成ブロック142は、各チャンネルから得られる座標に基づいて動作指令を予測するため、第1のチャンネルの座標が変わることは作業対象の位置が変わることと等しい。なお、どのチャンネルが作業対象に反応するかは、訓練/学習後に学習データを入力して、作業対象の位置座標を出力しているチャンネルを調べることで決定できる。このように、位置抽出ブロック141の出力となる位置情報は、撮影画像に含まれる個々の作業対象380やエンドエフェクタ301の位置座標を含む。
指令生成部113は、指令生成モデル140を用いて、撮影画像と、センサ情報と、操作者が指定した作業対象物の位置情報とに基づいて推論(予測)を行い、ロボット300の動作指令を出力する。この動作指令は、制御装置310に送信され、ロボット300が動作する。
操作者が指定した作業対象物の位置情報は、機械学習モデルとしての指令生成モデル140の入力(説明変数)ではない。指令生成部113は、位置抽出ブロック141を用いて算出された作業対象の位置情報を操作者が指定した作業対象物の位置情報に置き換えて、動作指令生成ブロック142を用いて動作指令を算出する。
≪動作指令生成処理≫
図4は、第1実施形態に係る動作指令生成処理のフローチャートである。以下の動作指令生成処理の説明において主作業とは、ロボット300が1つ以上の作業対象380(例えば瓦礫)を1つずつエンドエフェクタ301で把持して、所定の容器(不図示)に移す(撤去する)作業である。1つの作業対象380を把持して容器に移すのが、1つの副作業である。第1実施形態では、撤去する作業対象380をロボット300の操作者が指示して、生成された動作命令に従ってロボット300が指示された作業対象380を把持して容器に移す。
図4は、第1実施形態に係る動作指令生成処理のフローチャートである。以下の動作指令生成処理の説明において主作業とは、ロボット300が1つ以上の作業対象380(例えば瓦礫)を1つずつエンドエフェクタ301で把持して、所定の容器(不図示)に移す(撤去する)作業である。1つの作業対象380を把持して容器に移すのが、1つの副作業である。第1実施形態では、撤去する作業対象380をロボット300の操作者が指示して、生成された動作命令に従ってロボット300が指示された作業対象380を把持して容器に移す。
ステップS11において指令生成部113は、副作業ごとにステップS12~S17を繰り返す処理を開始する。詳しくは、指令生成部113は、位置抽出ブロック141を用いて、撮影画像から位置情報を算出し、位置情報に作業対象380の位置情報がなければ動作指令生成処理を終え、作業対象380があればステップS12に進む。
ステップS12において指令生成部113は、作業対象380が映っているカメラ371,372の撮影画像をタッチパネルディスプレイに表示し、どの作業対象380が把持するかを操作者に問い合わせる。操作者が把持する作業対象380の1つをタッチして指示すると、指令生成部113はその位置を取得する。換言すれば、指令生成部113は作業対象となる対象物の候補のなかでロボット300の作業対象となる対象物を指定する作業対象指定情報を取得する。以下では指示された1つの作業対象380を作業対象物体と記す。
ステップS13において指令生成部113は、副作業が終了する(ステップS12で指示された作業対象物体をロボットが把持して容器に移す)までステップS14~S17の処理を繰り返す。
ステップS14において指令生成部113は、撮像画像を位置抽出ブロック141に入力して位置情報を取得する。詳しくは、指令生成部113は位置抽出ブロック141を用いて撮影画像から位置情報を算出する。位置情報には、個々の作業対象380やエンドエフェクタ301の位置座標が含まれる。
ステップS14において指令生成部113は、撮像画像を位置抽出ブロック141に入力して位置情報を取得する。詳しくは、指令生成部113は位置抽出ブロック141を用いて撮影画像から位置情報を算出する。位置情報には、個々の作業対象380やエンドエフェクタ301の位置座標が含まれる。
ステップS15において指令生成部113は、位置情報に含まれる作業対象物体の位置座標を、ステップS12で取得した位置情報に置き換える。なお、指令生成部113がステップS14~S17を繰り返して、ロボット300が作業対象物体を把持して移動することで、作業対象物体の位置は変化する。指令生成部113は、ステップS12で指示された作業対象物体の位置を追跡して、追跡結果である作業対象物体の位置に置き換える。把持した後の作業対象物体の位置は、後記するステップS16で取得される動作指令から算出されるエンドエフェクタ301の位置から取得可能である。
ステップS16において指令生成部113は、置き換えた位置情報とセンサ情報とを動作指令生成ブロック142に入力して、動作指令を取得する。詳しくは、指令生成部113は動作指令生成ブロック142を用いて置き換えた位置情報とセンサ情報とから動作指令を算出する。
ステップS17において指令生成部113は、ステップS16で算出した動作指令を制御装置310に送信する。
ステップS17において指令生成部113は、ステップS16で算出した動作指令を制御装置310に送信する。
≪動作指令生成装置の特徴≫
動作指令生成装置100は、指令生成モデル140を用いて、撮影画像とセンサ情報とからロボット300の動作指令を生成する。指令生成モデル140は機械学習モデルであって、その学習データは、操作者がロボット300を操作した作業から取得可能なデータであって、低コストで作成可能である。
動作指令生成装置100は、指令生成モデル140を用いて、撮影画像とセンサ情報とからロボット300の動作指令を生成する。指令生成モデル140は機械学習モデルであって、その学習データは、操作者がロボット300を操作した作業から取得可能なデータであって、低コストで作成可能である。
指令生成モデル140は、位置抽出ブロック141と、動作指令生成ブロック142とを含み、動作指令を生成する際に作業対象の位置を算出する構成となっている。動作指令生成装置100は動作指令を生成する際に、作業対象の位置を操作者が指定した作業対象の位置に置き換える。このようにすることで、複数の作業対象となる物体があった場合でも、操作者が指示した物体に対してロボット300は作業を行うようになる。
学習データを作成(操作者がロボット300を操作)するときの作業対象の物体は1つであってもよい。複数の作業対象がある場合の学習データを準備して、訓練/学習するのに比べて低コスト・短時間に学習データを作成できる。
学習データを作成(操作者がロボット300を操作)するときの作業対象の物体は1つであってもよい。複数の作業対象がある場合の学習データを準備して、訓練/学習するのに比べて低コスト・短時間に学習データを作成できる。
≪変形例:位置情報≫
上記した第1実施形態では、指令生成モデル140を用いて動作指令を算出する際に、作業対象の位置情報(位置座標)が算出されている(図3参照)。位置抽出ブロック141においてSpatial Softmax関数の替わりにsigmoid関数を用いてヒートマップを得ることで、位置情報の替わりに作業対象やエンドエフェクタ301の領域情報が算出されるようにしてもよい。
上記した第1実施形態では、指令生成モデル140を用いて動作指令を算出する際に、作業対象の位置情報(位置座標)が算出されている(図3参照)。位置抽出ブロック141においてSpatial Softmax関数の替わりにsigmoid関数を用いてヒートマップを得ることで、位置情報の替わりに作業対象やエンドエフェクタ301の領域情報が算出されるようにしてもよい。
≪変形例:位置情報の置き換え≫
上記した第1実施形態において指令生成部113は、位置抽出ブロック141の出力である作業対象の位置情報を、操作者が指定した作業対象の位置情報に置き換えている(図4のステップS15参照)。入力となる撮影画像が作業対象のみを含むようにしてもよい。
上記した第1実施形態において指令生成部113は、位置抽出ブロック141の出力である作業対象の位置情報を、操作者が指定した作業対象の位置情報に置き換えている(図4のステップS15参照)。入力となる撮影画像が作業対象のみを含むようにしてもよい。
図5は、第1実施形態の変形例に係る撮影画像510である。撮影画像510の右下にある3つの作業対象のなかで、操作者が右の作業対象511を把持するように指定したとする。すると指令生成部113は、作業対象511を含む領域を残して他をマスクする画像であり、作業対象511以外の操作者が指定しなかった作業対象をマスクする画像であるマスク用の画像520(後記する図6参照)を生成する。
図6は、第1実施形態の変形例に係るマスク用の画像520である。領域521は、作業対象511を含む領域で、作業対象511以外の操作者が指定しなかった作業対象を含まない領域である。画像520において領域521以外がマスクされている。
図7は、第1実施形態の変形例に係る撮影画像510が画像520でマスクされた撮影画像530である。指令生成部113は、位置情報を置き換えるのではなく、指定された作業対象511を残して他がマスクされた撮影画像530を指令生成モデル140(位置抽出ブロック141)の入力として、動作指令を算出する。このような作業対象511のみが撮影されている画像を入力とすることで、位置抽出ブロック141の出力である位置情報には作業対象511の位置情報のみが含まれ、作業対象511を把持する動作指令が生成される。
≪変形例:作業種別の選択≫
上記した第1実施形態では、操作者が作業対象を選択している(図4記載のステップS12参照)が、さらに複数ある作業種別の1つを選択するようにしてもよい。瓦礫撤去作業における作業種別とは、例えば選択されてロボット300が把持した作業対象の瓦礫をどの容器に移す作業かということである。またバルブ開閉作業における作業種別とは、例えば選択されたバルブを開く作業か、閉じる作業かということである。
上記した第1実施形態では、操作者が作業対象を選択している(図4記載のステップS12参照)が、さらに複数ある作業種別の1つを選択するようにしてもよい。瓦礫撤去作業における作業種別とは、例えば選択されてロボット300が把持した作業対象の瓦礫をどの容器に移す作業かということである。またバルブ開閉作業における作業種別とは、例えば選択されたバルブを開く作業か、閉じる作業かということである。
指令生成モデル140は、作業種別に応じて複数あり、それぞれ作業種別に応じた動作指令を生成するように訓練/学習されている。ステップS12において指令生成部113は、作業対象の位置情報とともに、作業種別を取得する。ステップS14~S17において指令生成部113は、作業種別に対応した指令生成モデル140を用いて動作指令を算出する。
このようにすることでロボット300は、作業対象に対して操作者が指示した作業種別の作業を行うことができるようになる。
このようにすることでロボット300は、作業対象に対して操作者が指示した作業種別の作業を行うことができるようになる。
≪第2実施形態≫
上記した第1実施形態では、把持する作業対象を操作者に問い合わせている(図4のステップS12参照)。把持する作業対象が1つに特定できる場合には、操作者への問い合わせることなく、作業を行ってもよい。例えば、撮影画像において作業対象が一カ所にあると見なせる場合には、操作者に問い合わせることなく、作業を行ってもよい。これは、位置抽出ブロック141が算出した位置情報(位置座標)が1つ以上あるが、その位置の散らばり(分散)が小さく、一カ所と見なせる場合である。
上記した第1実施形態では、把持する作業対象を操作者に問い合わせている(図4のステップS12参照)。把持する作業対象が1つに特定できる場合には、操作者への問い合わせることなく、作業を行ってもよい。例えば、撮影画像において作業対象が一カ所にあると見なせる場合には、操作者に問い合わせることなく、作業を行ってもよい。これは、位置抽出ブロック141が算出した位置情報(位置座標)が1つ以上あるが、その位置の散らばり(分散)が小さく、一カ所と見なせる場合である。
第2実施形態に係る動作指令生成装置100の機能構成は、指令生成部113(動作指令生成処理)を除いて第1実施形態と同様である。第2実施形態の指令生成部を指令生成部113Aと記す。図8は、第2実施形態に係る動作指令生成処理のフローチャートである。
ステップS31において指令生成部113Aは、副作業ごとにステップS32~S40を繰り返す処理を開始する。
ステップS32において指令生成部113Aは、撮像画像を位置抽出ブロック141に入力して位置情報を取得して、位置情報の分散を算出する。分散は、例えば作業対象の位置を示すX座標とY座標それぞれの分散の和である。
ステップS31において指令生成部113Aは、副作業ごとにステップS32~S40を繰り返す処理を開始する。
ステップS32において指令生成部113Aは、撮像画像を位置抽出ブロック141に入力して位置情報を取得して、位置情報の分散を算出する。分散は、例えば作業対象の位置を示すX座標とY座標それぞれの分散の和である。
ステップS33において指令生成部113Aは、ステップS32で算出した分散が所定値より大きければ(ステップS33→YES)ステップS34に進み、所定値以下であれば(ステップS33→NO)ステップS35に進む。
ステップS34は、図4記載のステップS12と同様の処理である。
ステップS35において指令生成部113Aは、ステップS34で指示された作業対象物体をロボットが把持して容器に移すまでステップS36~S40の処理を繰り返す。ステップS34がスキップされた(ステップS33→NO)場合の作業対象物体は、分散が小さく一カ所と見なせる位置情報の位置にある作業対象の物体である。
ステップS34は、図4記載のステップS12と同様の処理である。
ステップS35において指令生成部113Aは、ステップS34で指示された作業対象物体をロボットが把持して容器に移すまでステップS36~S40の処理を繰り返す。ステップS34がスキップされた(ステップS33→NO)場合の作業対象物体は、分散が小さく一カ所と見なせる位置情報の位置にある作業対象の物体である。
ステップS36は、ステップS14と同様の処理である。
ステップS37において指令生成部113Aは、ステップS34(ステップS12参照)において操作者の指示である作業対象物体の位置を取得したならば(ステップS37→YES)ステップS38に進み、取得していないならば(ステップS37→NO)ステップS39に進む。
ステップS38~S40は、ステップS15~S17とそれぞれ同様の処理である。
ステップS37において指令生成部113Aは、ステップS34(ステップS12参照)において操作者の指示である作業対象物体の位置を取得したならば(ステップS37→YES)ステップS38に進み、取得していないならば(ステップS37→NO)ステップS39に進む。
ステップS38~S40は、ステップS15~S17とそれぞれ同様の処理である。
≪第2実施形態の特徴≫
撮影画像において作業対象が一カ所にあると見なせる場合には、操作者に問い合わせることなく、ロボット300は作業を行うので、作業効率が向上する。
なおステップS37でNOに分岐してステップS38をスキップすることなく、ステップS36に続いてステップS38を実行するようにしてもよい。この場合、ステップS38において指令生成部113Aは、作業対象物体の位置座標を把持された作業対象物体の移動に応じた位置情報に置き換えてもよい(ステップS15参照)。
撮影画像において作業対象が一カ所にあると見なせる場合には、操作者に問い合わせることなく、ロボット300は作業を行うので、作業効率が向上する。
なおステップS37でNOに分岐してステップS38をスキップすることなく、ステップS36に続いてステップS38を実行するようにしてもよい。この場合、ステップS38において指令生成部113Aは、作業対象物体の位置座標を把持された作業対象物体の移動に応じた位置情報に置き換えてもよい(ステップS15参照)。
≪第3実施形態≫
第1実施形態では、作業対象の順番が決まっている。順番が決まっていない場合には、操作者に問い合わせることなく、次々と作業を行ってもよい。例えば、瓦礫撤去作業において、類似形状・見た目の瓦礫が散らばっており、順番によらず撤去すればよい場合は、次々と瓦礫を把持して容器に移せばよい。
第1実施形態では、作業対象の順番が決まっている。順番が決まっていない場合には、操作者に問い合わせることなく、次々と作業を行ってもよい。例えば、瓦礫撤去作業において、類似形状・見た目の瓦礫が散らばっており、順番によらず撤去すればよい場合は、次々と瓦礫を把持して容器に移せばよい。
第3実施形態に係る動作指令生成装置100の機能構成は、指令生成部(動作指令生成処理)を除いて第1実施形態と同様である。第3実施形態の指令生成部を指令生成部113Bと記す。図9は、第3実施形態に係る動作指令生成処理のフローチャートである。
ステップS51において指令生成部113Bは、副作業ごとにステップS52~S58を繰り返す処理を開始する。
ステップS52において指令生成部113Bは、撮像画像を位置抽出ブロック141に入力して作業対象の位置情報を取得する。
ステップS51において指令生成部113Bは、副作業ごとにステップS52~S58を繰り返す処理を開始する。
ステップS52において指令生成部113Bは、撮像画像を位置抽出ブロック141に入力して作業対象の位置情報を取得する。
ステップS53において指令生成部113Bは、ステップS52で取得した位置情報にある作業対象の1つをランダムに選択する。以下、この選択された作業対象を作業対象物体と記す。
ステップS54~S58は、ステップS13~S17とそれぞれ同様である。但し、ステップS56では、位置情報に含まれる作業対象物体の位置座標を、ステップS53で選択した作業対象物体の位置情報に置き換える。
ステップS54~S58は、ステップS13~S17とそれぞれ同様である。但し、ステップS56では、位置情報に含まれる作業対象物体の位置座標を、ステップS53で選択した作業対象物体の位置情報に置き換える。
≪第3実施形態の特徴≫
操作者への問い合わせることなく、ロボット300は作業を行うので、作業効率が向上する。
操作者への問い合わせることなく、ロボット300は作業を行うので、作業効率が向上する。
≪変形例≫
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。例えば、ロボット300の作業として瓦礫の撤去(瓦礫を把持して容器に移動)を例にしたが、これに限らず他の作業であってもよい。例えば、プラントにおける順番が決められた複数のバルブの開閉作業や物体(箱)の搬送作業などの作業であってもよい。バルブの開閉作業の場合、副作業は1つのバルブの開閉作業である。
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。例えば、ロボット300の作業として瓦礫の撤去(瓦礫を把持して容器に移動)を例にしたが、これに限らず他の作業であってもよい。例えば、プラントにおける順番が決められた複数のバルブの開閉作業や物体(箱)の搬送作業などの作業であってもよい。バルブの開閉作業の場合、副作業は1つのバルブの開閉作業である。
上記した第1実施形態では、作業対象となる物体をロボット300の操作者が選択しているが、これに限らない。作業対象の順番を決めるシステムがあり、このシステムが作業対象を選択するようにしてもよい。
上記した第1実施形態では、作業対象380(の位置情報)の有無を、位置情報を基に指令生成部113が判断しているが(図4のステップS11参照)操作者が撮影画像を基に判断するようにしてもよい。また、副作業の終了(ステップS13参照)を操作者が判断するようにしてもよい。
上記した第1実施形態では、作業対象380(の位置情報)の有無を、位置情報を基に指令生成部113が判断しているが(図4のステップS11参照)操作者が撮影画像を基に判断するようにしてもよい。また、副作業の終了(ステップS13参照)を操作者が判断するようにしてもよい。
上記した実施形態における動作指令生成装置100は、学習部112と指令生成部113,113A,113Bとを備えており、指令生成モデル140を生成し、当該指令生成モデル140を用いて動作指令を出力している。指令生成モデル140を生成する装置と、動作指令を出力する装置とを分けてもよい。例えば、学習部112を備えるモデル生成装置が指令生成モデル140を生成して、複数の動作指令装置に送信し、それぞれの動作指令装置がそれぞれのロボットの制御装置に動作指令を出力するようにしてもよい。他にも動作指令生成装置100と制御装置310とが一体となる形態であってもよい。
本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100 動作指令生成装置
111 取得部
112 学習部
113,113A,113B 指令生成部
128 プログラム
130 学習データ
140 指令生成モデル(機械学習モデル)
141 位置抽出ブロック
142 動作指令生成ブロック
300 ロボット
380 作業対象(対象物)
111 取得部
112 学習部
113,113A,113B 指令生成部
128 プログラム
130 学習データ
140 指令生成モデル(機械学習モデル)
141 位置抽出ブロック
142 動作指令生成ブロック
300 ロボット
380 作業対象(対象物)
Claims (8)
- ロボットが作業する対象物の候補を含む画像およびセンサ情報を取得する取得部と、
機械学習モデルを用いて、前記画像および前記センサ情報を入力として前記ロボットの動作指令を出力する指令生成部とを備え、
前記機械学習モデルは、
前記対象物の候補の位置または領域を算出する際に参照されるパラメータを含む位置抽出ブロックと、前記対象物に対する前記ロボットの作業の動作指令を算出する際に参照されるパラメータを含む動作指令生成ブロックとを含み、
説明変数が前記画像および前記センサ情報を含み、目的変数が前記動作指令を含む学習データを用いて生成される
ことを特徴とする動作指令生成装置。 - 前記指令生成部は、
前記対象物の候補のなかで前記ロボットの作業対象となる対象物を指定する作業対象指定情報を取得し、
前記位置抽出ブロックを用いて算出された前記対象物の候補の位置または領域の情報を、前記作業対象指定情報が示す対象物の位置または領域の情報に置き換えて前記動作指令を出力する
ことを特徴とする請求項1に記載の動作指令生成装置。 - 前記機械学習モデルは、
作業種別ごとの複数の機械学習モデルであり、
前記指令生成部は、
前記対象物の候補のなかで前記ロボットの作業対象となる対象物を指定する作業対象指定情報、および当該対象物に対する前記ロボットが行う前記作業種別を取得し、
前記複数の機械学習モデルのなかで当該作業種別に対応した機械学習モデルを用いて、前記画像および前記センサ情報を入力として前記ロボットの動作指令を出力する
ことを特徴とする請求項1に記載の動作指令生成装置。 - 前記指令生成部は、
前記対象物の候補のなかで前記ロボットの作業対象となる対象物を指定する作業対象指定情報を取得し、
前記機械学習モデルを用いて、前記作業対象指定情報が示す対象物の領域とは異なる領域をマスクした画像を入力として前記動作指令を出力する
ことを特徴とする請求項1に記載の動作指令生成装置。 - 前記指令生成部は、
前記位置抽出ブロックを用いて算出された前記対象物の候補の位置または領域の情報から算出される分散が所定値より大きい場合に、
前記対象物の候補のなかで前記ロボットの作業対象となる対象物を指定する作業対象指定情報を取得し、
前記位置抽出ブロックを用いて算出された前記対象物の候補の位置または領域の情報を、前記作業対象指定情報が示す対象物の位置または領域の情報に置き換えて前記動作指令を出力する
ことを特徴とする請求項1に記載の動作指令生成装置。 - 前記指令生成部は、
前記画像を表示装置に表示し、表示された前記対象物の候補のなかで指定された対象物の候補の前記画像における位置または領域の情報を前記作業対象指定情報とする
ことを特徴とする請求項2~5の何れか1項に記載の動作指令生成装置。 - 前記指令生成部は、
前記位置抽出ブロックを用いて算出された前記対象物の候補の位置または領域の情報のなかの何れか1つを作業対象指定情報として選択し、
前記位置抽出ブロックを用いて算出された前記対象物の候補の位置または領域の情報を、前記作業対象指定情報が示す対象物の位置または領域の情報に置き換えて前記動作指令を出力する
ことを特徴とする請求項1に記載の動作指令生成装置。 - 動作指令生成装置が、
ロボットが作業する対象物の候補を含む画像およびセンサ情報を取得するステップと、
機械学習モデルを用いて、前記画像および前記センサ情報を入力として前記ロボットの動作指令を出力するステップとを実行し、
前記機械学習モデルは、
前記対象物の候補の位置または領域を算出する際に参照されるパラメータを含む位置抽出ブロックと、前記対象物に対する前記ロボットの作業の動作指令を算出する際に参照されるパラメータを含む動作指令生成ブロックとを含み、
説明変数が前記画像および前記センサ情報を含み、目的変数が前記動作指令を含む学習データを用いて生成される
ことを特徴とする動作指令生成方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021-172279 | 2021-10-21 | ||
JP2021172279A JP2023062361A (ja) | 2021-10-21 | 2021-10-21 | 動作指令生成装置および動作指令生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023067972A1 true WO2023067972A1 (ja) | 2023-04-27 |
Family
ID=86059045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/035100 WO2023067972A1 (ja) | 2021-10-21 | 2022-09-21 | 動作指令生成装置および動作指令生成方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2023062361A (ja) |
WO (1) | WO2023067972A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021079042A (ja) * | 2019-11-22 | 2021-05-27 | キヤノン株式会社 | 画像処理装置、画像処理方法、及びプログラム |
JP2021079468A (ja) * | 2019-11-15 | 2021-05-27 | 川崎重工業株式会社 | 制御装置、制御システム、ロボットシステム及び制御方法 |
WO2021171353A1 (ja) * | 2020-02-25 | 2021-09-02 | 日本電気株式会社 | 制御装置、制御方法及び記録媒体 |
-
2021
- 2021-10-21 JP JP2021172279A patent/JP2023062361A/ja active Pending
-
2022
- 2022-09-21 WO PCT/JP2022/035100 patent/WO2023067972A1/ja unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021079468A (ja) * | 2019-11-15 | 2021-05-27 | 川崎重工業株式会社 | 制御装置、制御システム、ロボットシステム及び制御方法 |
JP2021079042A (ja) * | 2019-11-22 | 2021-05-27 | キヤノン株式会社 | 画像処理装置、画像処理方法、及びプログラム |
WO2021171353A1 (ja) * | 2020-02-25 | 2021-09-02 | 日本電気株式会社 | 制御装置、制御方法及び記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
JP2023062361A (ja) | 2023-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110573308B (zh) | 用于机器人设备的空间编程的基于计算机的方法及系统 | |
TWI707280B (zh) | 動作預測系統以及動作預測方法 | |
US9387589B2 (en) | Visual debugging of robotic tasks | |
Ghadirzadeh et al. | A sensorimotor reinforcement learning framework for physical human-robot interaction | |
JP2013193202A (ja) | 人間援助型タスクデモンストレーションを使用してロボットを訓練するための方法およびシステム | |
JP7295421B2 (ja) | 制御装置及び制御方法 | |
Zhang et al. | Human-robot shared control for surgical robot based on context-aware sim-to-real adaptation | |
US20220063091A1 (en) | Robot control device, robot system and robot control method | |
CN114516060A (zh) | 用于控制机器人装置的设备和方法 | |
CN112638596A (zh) | 自主学习型机器人装置以及自主学习型机器人装置的动作生成方法 | |
Lee et al. | Reinforcement learning-based virtual fixtures for teleoperation of hydraulic construction machine | |
JP7452657B2 (ja) | 制御装置、制御方法及びプログラム | |
WO2023067972A1 (ja) | 動作指令生成装置および動作指令生成方法 | |
Pichler et al. | Towards robot systems for small batch manufacturing | |
EP4175795B1 (en) | Transfer between tasks in different domains | |
Wang et al. | Real-time Dexterous Telemanipulation with an End-Effect-Oriented Learning-based Approach | |
WO2023286138A1 (ja) | ロボット制御システム、ロボットシステム、ロボット制御方法、およびロボット制御プログラム | |
Jin et al. | Shared Control With Efficient Subgoal Identification and Adjustment for Human–Robot Collaborative Tasks | |
Pichler et al. | User centered framework for intuitive robot programming | |
WO2024158056A1 (ja) | ロボット制御システム、ロボット制御方法、およびロボット制御プログラム | |
RU2813444C1 (ru) | Система взаимодействия человек-робот на основе смешанной реальности | |
Jadeja et al. | Computer Aided Design of Self-Learning Robotic System Using Imitation Learning | |
Yuan et al. | Human-robot coordination in agile robot manipulation | |
Frau-Alfaro et al. | Trajectory Generation Using Dual-Robot Haptic Interface for Reinforcement Learning from Demonstration | |
Fratu | Imitation-based robot programming method for predicting the motion |
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: 22883282 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |