WO2021033472A1 - 制御装置、制御方法、及び制御プログラム - Google Patents
制御装置、制御方法、及び制御プログラム Download PDFInfo
- Publication number
- WO2021033472A1 WO2021033472A1 PCT/JP2020/027954 JP2020027954W WO2021033472A1 WO 2021033472 A1 WO2021033472 A1 WO 2021033472A1 JP 2020027954 W JP2020027954 W JP 2020027954W WO 2021033472 A1 WO2021033472 A1 WO 2021033472A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- manipulator
- model
- value
- hand
- control unit
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 279
- 239000012636 effector Substances 0.000 claims description 173
- 238000013459 approach Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 description 123
- 238000012545 processing Methods 0.000 description 87
- 238000003860 storage Methods 0.000 description 87
- 230000006870 function Effects 0.000 description 80
- 239000011159 matrix material Substances 0.000 description 75
- 238000010801 machine learning Methods 0.000 description 71
- 230000009466 transformation Effects 0.000 description 64
- 238000004364 calculation method Methods 0.000 description 56
- 238000012549 training Methods 0.000 description 54
- 238000011960 computer-aided design Methods 0.000 description 42
- 230000008859 change Effects 0.000 description 36
- 238000004891 communication Methods 0.000 description 34
- 230000010365 information processing Effects 0.000 description 33
- 230000007704 transition Effects 0.000 description 33
- 238000013528 artificial neural network Methods 0.000 description 27
- 210000002569 neuron Anatomy 0.000 description 25
- 230000002787 reinforcement Effects 0.000 description 24
- 230000009471 action Effects 0.000 description 22
- 238000006243 chemical reaction Methods 0.000 description 16
- 239000003795 chemical substances by application Substances 0.000 description 9
- 238000005259 measurement Methods 0.000 description 9
- 238000003066 decision tree Methods 0.000 description 7
- 230000006399 behavior Effects 0.000 description 5
- 238000013480 data collection Methods 0.000 description 5
- NJPPVKZQTLUDBO-UHFFFAOYSA-N novaluron Chemical compound C1=C(Cl)C(OC(F)(F)C(OC(F)(F)F)F)=CC=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F NJPPVKZQTLUDBO-UHFFFAOYSA-N 0.000 description 5
- 238000012706 support-vector machine Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000015654 memory Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000003672 processing method Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000011478 gradient descent method Methods 0.000 description 3
- 238000010191 image analysis Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 239000007921 spray Substances 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010304 firing Methods 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000009377 nuclear transmutation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000000342 Monte Carlo simulation Methods 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 230000002123 temporal effect Effects 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/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- 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/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- 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
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
-
- 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/1612—Programme controls characterised by the hand, wrist, grip control
-
- 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/40499—Reinforcement learning algorithm
Definitions
- the present invention relates to a control device, a control method, and a control program.
- manipulators are used in the production line that produces products.
- the components such as the manipulator mechanism, end effector, and work have many variations depending on the task to be performed, etc., and the operation procedure of the manipulator corresponding to all of them is manually created and targeted for the manipulator. It is difficult to teach the task. Therefore, conventionally, after determining the types of components such as mechanisms, end effectors, and workpieces, the manipulator is manually moved to record the posture in a series of movements to be executed, and the task to be performed is directly taught. Has been adopted.
- Patent Document 1 proposes a control method for determining the moving speed of a hand holding a flexible object such as a seal based on the relative speed between the hand and the flexible object. According to this control method, it is possible to automate at least a part of the work of creating or teaching the movement of the hand. Therefore, the cost of generating or teaching the operation of the manipulator can be reduced.
- the inventors of the present invention have found that the conventional control method of the manipulator as described above has the following problems. That is, in the conventional control method, the manipulator's hand is observed by the sensor, and the coordinates of the manipulator's hand are estimated from the sensing data obtained by the sensor. Based on the result of this estimation, the coordinates of the manipulator's hand are controlled.
- the method of estimating the coordinates of the manipulator's hand there is a method by forward kinematics calculation.
- an encoder that measures the angle of each joint is an example of a sensor.
- the estimated value of the coordinates of the manipulator's hand can be analytically calculated from the measured value of the angle of each joint obtained by the encoder.
- an example of a sensor is a camera that captures the environment of a task including the manipulator's minions. By performing image analysis on the image data obtained by the camera, the coordinates of the manipulator's hand can be estimated.
- a known method such as pattern matching may be adopted.
- the coordinates of the manipulator's hand can be estimated from the sensing data obtained by the sensor.
- the sensing data obtained from the sensor may contain noise.
- noise such as a pattern matching tolerance may be included. Due to the noise generated depending on these environments, the error between the estimated value and the true value of the manipulator's hand coordinates becomes large, which deteriorates the accuracy of controlling the manipulator's hand coordinates. There was a possibility that it would end up.
- an object of the present invention is to provide a technique for improving the accuracy of controlling the coordinates of the hand of a manipulator.
- the present invention adopts the following configuration in order to solve the above-mentioned problems.
- control device is a control device for controlling the operation of the manipulator, and is a first data acquisition that acquires the first sensing data from the first sensor system that observes the hand of the manipulator.
- the first estimation unit that calculates the first estimated value of the current coordinates of the hand in the observation space from the first sensing data acquired by using the unit and the first estimation model, and the hand of the manipulator. From the second sensing data acquired by using the second data acquisition unit that acquires the second sensing data from the second sensor system that observes the observation and the second estimation model, the current state of the hand in the observation space.
- the gradient of the error between the second estimation unit that calculates the second estimation value of the coordinates of the above and the first estimation value and the second estimation value is calculated, and the error becomes smaller based on the calculated gradient.
- the coordinates of the hand are based on the adjustment unit that adjusts the values of at least one of the first estimation model and the second estimation model, and at least one of the first estimation value and the second estimation value.
- a command determination unit that determines a control command to be given to the manipulator so as to approach a target value, and a drive unit that drives the manipulator by giving the determined control command to the manipulator are provided.
- the coordinates of the manipulator's hand are estimated from the two paths of the first sensor system and the second sensor system. That is, the control device according to the configuration uses the first estimation model to calculate the first estimated value of the coordinates of the manipulator's hand from the first sensing data obtained by the first sensor system. In addition, the control device according to the configuration uses the second estimation model to calculate the second estimated value of the coordinates of the manipulator's hand from the second sensing data obtained by the second sensor system.
- the true value of the coordinates of the manipulator's minions is one. If there is no noise in the calculation process from each sensor system, the first estimated value and the second estimated value match. On the other hand, the first estimated value and the second estimated value may be different from each other due to the generation of noise corresponding to each sensor system. Therefore, the gradient of the error between the obtained first estimated value and the second estimated value is calculated, and based on the calculated gradient, at least one of the first estimated model and the second estimated model is set so that the error becomes small. Adjust the value of the parameter of. By this adjustment, the estimation results (estimated values) of each other approach one value, so that improvement in the estimation accuracy of the coordinates of the hand by each estimation model can be expected.
- the noise that can be included in the sensing data obtained by each sensor system is assumed to be white noise. Therefore, noise included in the sensing data can be removed or reduced by acquiring the sensing data for a predetermined time and averaging the obtained sensing data. It is possible to evaluate whether or not the estimated value by each estimated model is close to the true value depending on whether or not the component related to the estimated value by each estimated model is included in the averaged sensing data. Therefore, according to the configuration, it is possible to improve the estimation accuracy of the hand coordinates by each estimation model, thereby improving the accuracy of controlling the hand coordinates of the manipulator.
- the type of manipulator does not have to be particularly limited, and may be appropriately selected according to the embodiment.
- the manipulator may include, for example, a vertical articulated robot, a SCARA robot, a parallel link robot, a Cartesian robot, a cooperative robot, and the like.
- each sensor system includes one or more sensors and can observe the hand of the manipulator, its configuration is not particularly limited and may be appropriately selected according to the embodiment.
- a camera, an encoder, a tactile sensor, a force sensor, a proximity sensor, a torque sensor, a pressure sensor, or the like may be used.
- Each estimation model includes parameters for calculating hand coordinates from sensing data.
- the type of each estimation model does not have to be particularly limited, and may be appropriately selected depending on the embodiment.
- Each estimation model may be represented by, for example, a function expression, a data table, or the like.
- each estimation model may be composed of a machine learning model such as a neural network, a support vector machine, a regression model, or a decision tree.
- the adjusting unit further acquires the boundary value of the coordinates of the hand on the boundary surface of the contact with the object when the hand of the manipulator comes into contact with the object.
- the gradient of the first error between the first estimated value estimated at the time of contact and the acquired boundary value is calculated, and the first error becomes smaller based on the calculated gradient of the first error.
- the values of the parameters of the first estimation model are adjusted, and the gradient of the second error between the second estimation value estimated at the time of contact and the acquired boundary value is calculated and calculated. Based on the gradient of the second error, the value of the parameter of the second estimation model may be adjusted so that the second error becomes smaller.
- the boundary value obtained from the boundary surface at the time of contact with the object is a highly accurate value as the true value of the coordinates of the manipulator's hand.
- the accuracy of estimating the coordinates of the hand by each estimation model can be improved by adjusting the value of the parameter of each estimation model based on the value with high accuracy. Therefore, according to this configuration, it is possible to improve the accuracy of controlling the coordinates of the hand of the manipulator.
- the method of obtaining the boundary value does not have to be particularly limited, and may be appropriately selected depending on the embodiment.
- the boundary value may be obtained by the operator's specification.
- a boundary value may be selected from a point in the vicinity of at least one of the first estimated value and the second estimated value on the boundary surface where the manipulator's hand and the object come into contact with each other.
- a point closest to at least one of the first estimated value and the second estimated value may be adopted as a point giving a boundary value.
- the type of the object does not have to be particularly limited, and may be appropriately selected according to the embodiment.
- the object may be, for example, a work, an object (for example, another work) to which the work is assembled, an obstacle, or the like.
- the manipulator may include one or more joints.
- the first sensor system may include an encoder that measures the angle of each of the joints.
- the second sensor system may include a camera. According to this configuration, it is possible to improve the accuracy of controlling the coordinates of the manipulator's hand when observing the manipulator's hand with the encoder and the camera.
- the manipulator may further include an end effector for holding the work.
- the attention point of the end effector may be set to the hand.
- the point of interest of the work may be set to the hand.
- the first sensor system may further include a tactile sensor for estimating the positional relationship of the work with respect to the end effector.
- the types of end effectors and workpieces do not have to be particularly limited, and may be appropriately selected according to the type of task and the like.
- the type of the task is not particularly limited as long as it involves the movement of the manipulator's hand at least as part of the process, and may be appropriately selected depending on the embodiment.
- the task to be performed by the manipulator may be, for example, holding a work by an end effector and assembling the held work to another work.
- the end effector may be, for example, a gripper, an aspirator, a screwdriver, or the like.
- the work may be, for example, a connector, a peg, or the like.
- the other work may be, for example, a socket, a hole, or the like.
- the performance of the task may be performed in real space or virtual space.
- one aspect of the present invention may be an information processing method for realizing each configuration of the above control device, a program, or the like. It may be a storage medium that stores various programs and can be read by a computer or the like. A storage medium that can be read by a computer or the like is a medium that stores information such as a program by electrical, magnetic, optical, mechanical, or chemical action.
- the control method is an information processing method for controlling the operation of the manipulator, and the computer acquires the first sensing data from the first sensor system for observing the hand of the manipulator.
- the manipulator Based on the step of adjusting the value of at least one parameter of the second estimation model and at least one of the first estimation value and the second estimation value, the manipulator so that the coordinates of the hand approach the target value. It is an information processing method that executes a step of determining a control command to be given to the manipulator and a step of driving the manipulator by giving the determined control command to the manipulator.
- control program is a program for controlling the operation of the manipulator, and the computer acquires the first sensing data from the first sensor system for observing the hand of the manipulator.
- This is a program for executing a step of determining a control command to be given to the manipulator and a step of driving the manipulator by giving the determined control command to the manipulator.
- FIG. 1 schematically illustrates an example of a situation in which the present invention is applied.
- FIG. 2A schematically illustrates an example of the positional relationship between the two objects according to the embodiment.
- FIG. 2B schematically illustrates an example of the positional relationship between the two objects according to the embodiment.
- FIG. 3 schematically illustrates an example of the hardware configuration of the first model generator according to the embodiment.
- FIG. 4 schematically illustrates an example of the hardware configuration of the second model generator according to the embodiment.
- FIG. 5 schematically illustrates an example of the hardware configuration of the control device according to the embodiment.
- FIG. 6 schematically illustrates an example of the manipulator according to the embodiment.
- FIG. 7 schematically illustrates an example of the software configuration of the first model generator according to the embodiment.
- FIG. 8 schematically illustrates an example of the software configuration of the second model generator according to the embodiment.
- FIG. 9 schematically illustrates an example of the software configuration of the control device according to the embodiment.
- FIG. 10 illustrates an example of the processing procedure of the first model generator according to the embodiment.
- FIG. 11 illustrates an example of the processing procedure of the second model generator according to the embodiment.
- FIG. 12A schematically illustrates an example of the task space according to the embodiment.
- FIG. 12B schematically illustrates an example of the task space according to the embodiment.
- FIG. 12C schematically illustrates an example of the task space according to the embodiment.
- FIG. 13 schematically illustrates an example of the configuration and generation method of the inference model according to the embodiment.
- FIG. 14 schematically illustrates an example of the configuration and generation method of the inference model according to the embodiment.
- FIG. 15A schematically illustrates an example of learning data according to the embodiment.
- FIG. 15B schematically illustrates an example of the configuration of the inference model according to the embodiment.
- FIG. 16A illustrates an example of a processing procedure related to operation control of the manipulator by the control device according to the embodiment.
- FIG. 16B illustrates an example of a processing procedure related to operation control of the manipulator by the control device according to the embodiment.
- FIG. 17 illustrates an example of the calculation process of each element according to the embodiment.
- FIG. 18 schematically illustrates the positional relationship of each object according to the embodiment.
- FIG. 19A schematically shows an example of the relationship between each joint and the hand when the end effector does not hold the work.
- FIG. 19A schematically shows an example of the relationship between each joint and the hand when the end effector does not hold the work.
- FIG. 19B schematically shows an example of the relationship between each joint and the hand when the end effector holds the work.
- FIG. 20 illustrates an example of a processing procedure related to parameter adjustment of the estimation model of the control device according to the embodiment.
- FIG. 21 illustrates an example of a processing procedure related to parameter adjustment of the estimation model of the control device according to the embodiment.
- FIG. 22 schematically illustrates an example of a scene in which a boundary value is acquired on the boundary surface of contact.
- FIG. 23 schematically illustrates an example of the relationship between the control timing and the adjustment timing.
- FIG. 24 schematically illustrates an example of a form in which a value indicating whether or not two objects come into contact with each other is held for each coordinate point.
- FIG. 25 illustrates an example of the processing procedure of the subroutine related to the target determination by the control device according to the modified example.
- the present embodiment an embodiment according to one aspect of the present invention (hereinafter, also referred to as “the present embodiment”) will be described with reference to the drawings.
- the embodiments described below are merely examples of the present invention in all respects. Needless to say, various improvements and modifications can be made without departing from the scope of the present invention. That is, in carrying out the present invention, a specific configuration according to the embodiment may be appropriately adopted.
- the data appearing in the present embodiment is described in natural language, more specifically, it is specified in a pseudo language, a command, a parameter, a machine language, etc. that can be recognized by a computer.
- FIG. 1 schematically illustrates an example of an application scene of the present invention.
- the control system 100 includes a first model generation device 1, a second model generation device 2, and a control device 3.
- the first model generator 1, the second model generator 2, and the control device 3 may be connected to each other via a network.
- the type of network may be appropriately selected from, for example, the Internet, a wireless communication network, a mobile communication network, a telephone network, a dedicated network, and the like.
- the first model generation device 1 is a computer configured to generate a determination model 50 for determining whether or not two objects come into contact with each other in the positional relationship of the objects.
- the first model generator 1 shows training data 122 showing the positional relationship between the two objects and whether or not the two objects come into contact with each other in the positional relationship.
- the positional relationship between the two objects is expressed by relative coordinates.
- Relative coordinates are the coordinates when the other object is viewed from one object. Either of the two objects may be selected as the relative coordinate reference.
- the "coordinates" may include at least one of position and orientation.
- the position In the three-dimensional space, the position may be represented by three axes of front-back, left-right, and up-down, and the posture may be represented by the rotation (roll, pitch, yaw) of each axis.
- the relative coordinates may be represented by six dimensions of a three-dimensional relative position and a three-dimensional relative posture. The number of dimensions of the relative coordinates is not limited to 6 dimensions and may be reduced as appropriate.
- the first model generation device 1 performs machine learning of the determination model 50 using the acquired plurality of learning data sets 121.
- Carrying out machine learning consists of training the determination model 50 for each training data set 121 to output an output value that matches the corresponding correct answer data 123 for the input of the training data 122. ..
- By this machine learning it is possible to construct a learned determination model 50 that has acquired the ability to determine whether or not two objects come into contact with each other in the positional relationship of the objects.
- the trained determination model 50 determines whether or not contact occurs between the work W and the end effector T in the space where the manipulator 4, the work W, and the other work G having the end effector T exist. , And also used to determine if contact occurs between the work W and the other work G.
- the end effector T, the work W, and the other work G are examples of "objects".
- the types of the end effector T, the work W, and the other work G may not be particularly limited, and may be appropriately selected according to the task.
- the end effector T may be, for example, a gripper, an aspirator, a screwdriver, or the like.
- the work W may be, for example, a connector, a peg, or the like.
- the other work G may be, for example, a socket, a hole, or the like.
- the other work G is an example of an object to which the work W is assembled.
- Holding the work W by the end effector T may be, for example, gripping the work by a gripper, sucking and holding the work by a suction device, holding the work at the tip of a driver, or the like.
- the manipulator 4 holds the work W by the end effector T as an example, and executes the task of assembling the held work W to another work G.
- This task can be divided into two tasks, a first task for holding the work W by the end effector T and a second task for transporting the held work W to another work G.
- the trained determination model 50 determines whether or not unnecessary contact occurs between the work W and the end effector T. It is used for.
- the learned determination model 50 is the work W and the work W. It is used to determine whether or not unnecessary contact occurs between other work Gs.
- At least one of the two objects for determining whether or not contact occurs by the learned determination model 50 is an object that moves by the operation of the manipulator 4. Only one of the two objects may be the object to be moved by the operation of the manipulator 4, or both of the two objects are the objects to be moved by the operation of the manipulator 4. You may.
- the application target of the first model generation device 1 does not have to be limited to such an example.
- the first model generator 1 may be applied to any situation where the contact between two objects is determined.
- a plurality of learned determination models 50 for determining whether or not contact occurs between different objects are prepared. May be good.
- the trained determination model 50 further accepts input of information indicating the condition of the object such as the type of the object and the identifier of the object, and between the two objects corresponding to the input condition. It may be configured to determine if contact occurs. Either method may be adopted. In the following, for convenience of explanation, the determination targets of the learned determination model 50 will be described without distinction.
- the second model generation device 2 is a computer configured to generate an inference model 55 for determining a target task state given to the manipulator 4 when controlling the operation of the manipulator 4. ..
- the manipulator 4 according to the present embodiment can perform the task of moving the first object with respect to the second object in the environment where the first object and the second object exist.
- the first task and the second task are examples of "a task of moving a first object with respect to a second object".
- the end effector T is an example of the first object
- the work W is an example of the second object.
- the work W is an example of the first object
- the other work G is an example of the second object
- the task state is defined by the positional relationship between the first object and the second object (that is, the two objects).
- FIG. 2A schematically illustrates an example of the positional relationship between the end effector T and the work W in the scene where the first task is performed.
- FIG. 2B schematically illustrates an example of the positional relationship between the work W and the other work G in the scene where the second task is performed.
- the positional relationship between the two objects is expressed by relative coordinates.
- the attention point T0 of the end effector T is the minion of the manipulator 4.
- the work W is the target for the movement of the end effector T.
- the positional relationship between the end effector T and the work W is expressed by the relative coordinates RC1 of the work W with respect to the end effector T.
- the relative coordinates RC1 represent the local coordinate system CW whose origin is the attention point W0 of the work W as seen from the local coordinate system CT whose origin is the attention point T0 of the end effector T.
- the task state of the manipulator 4 in the scene where the first task is executed is defined by the relative coordinates RC1.
- the attention point W0 of the work W is treated as the minipulator 4's minion, as in the scene where the second task is executed.
- the other work G is the target of movement of the end effector T.
- the other work G is an example of an object to which the work W is assembled.
- the positional relationship between the work W and the other work G is expressed by the relative coordinates RC2 of the other work G with respect to the work W.
- the relative coordinates RC2 represent the local coordinate system CG whose origin is the point of interest G0 of another work G as seen from the local coordinate system CW whose origin is the point of interest W0 of the work W.
- the task state of the manipulator 4 in the scene of performing the second task is defined by the relative coordinates RC2.
- the task state is defined by the positional relationship between the hand of the manipulator 4 and the target object (relative coordinates in the present embodiment) in both the first task and the second task.
- the minion of the manipulator 4 corresponds to the first object
- the target object corresponds to the second object.
- both the first task and the second task can be regarded as a task of moving the hand of the manipulator 4 with respect to the target object. Therefore, according to the present embodiment, the control process of the manipulator 4 can be simplified, and thereby the cost of generating or teaching the operation of the manipulator 4 can be reduced.
- each point of interest (T0, W0, G0) may be set arbitrarily.
- the method of giving the relative coordinates does not have to be limited to the above example, and may be appropriately determined according to the embodiment.
- the relative coordinates RC1 represent the local coordinate system CT whose origin is the attention point T0 of the end effector T as seen from the local coordinate system CW whose origin is the attention point W0 of the work W.
- the relationship of (RC1, RC2) may be reversed.
- moving the hand does not have to be limited to bringing the hand closer to the target object, and may be appropriately determined according to the embodiment.
- the movement of the hand may be, for example, moving the hand away from the target, moving the hand to a predetermined position with reference to the target, or the like.
- the second model generation device 2 gives information indicating the task state of the target of the first object and the second object to the trained determination model 50, so that the first target in the task state of the target Determine if the object and the second object are in contact with each other.
- the second model generation device 2 uses the result of the determination by the learned determination model 50 to determine the target to be transitioned to next so that the first object does not come into contact with the second object.
- Generates an inference model 55 configured to determine the task state.
- the control device 3 according to the present embodiment is a computer configured to control the operation of the manipulator 4. Specifically, first, the control device 3 according to the present embodiment acquires the first sensing data from the first sensor system for observing the hand of the manipulator 4. Then, the control device 3 according to the present embodiment calculates the first estimated value of the current coordinates of the hand in the observation space from the acquired first sensing data by using the first estimated model. Further, the control device 3 according to the present embodiment acquires the second sensing data from the second sensor system for observing the hand of the manipulator 4. Then, the control device 3 according to the present embodiment calculates the second estimated value of the current coordinates of the hand in the observation space from the acquired second sensing data by using the second estimation model. Calculating each estimated value of the current coordinates of the hand is equivalent to estimating the current value of the coordinates of the hand (hereinafter, also referred to as "hand coordinates").
- Each sensor system is provided with one or more sensors, and is appropriately configured to observe the minions of the manipulator 4.
- the first sensor system is composed of an encoder S2 for measuring the angle of each joint and a tactile sensor S3 for measuring the force acting on the end effector T.
- the measurement data (angle data, pressure distribution data) obtained by the encoder S2 and the tactile sensor S3 is an example of the first sensing data.
- the second sensor system is composed of the camera S1.
- the image data obtained by the camera S1 is an example of the second sensing data.
- the control device 3 uses each estimation model to calculate each estimated value of the current hand coordinates from the sensing data obtained from each sensor system.
- the true value of the hand coordinates of the manipulator 4 is one. If there is no noise in the calculation process from each sensor system and the parameters of each estimation model are appropriate, the first estimation value and the second estimation value match. On the other hand, the first estimated value and the second estimated value may be different from each other due to the generation of noise corresponding to each sensor system. Therefore, the control device 3 according to the present embodiment calculates the gradient of the error between the first estimated value and the second estimated value, and based on the calculated gradient, the first estimation model and the first estimation model so that the error becomes smaller. Adjust the values of at least one parameter of the second estimation model. As a result, it can be expected that each estimated value calculated will approach the true value.
- the control device 3 determines a control command to be given to the manipulator 4 so that the coordinates of the hand approach the target value based on at least one of the first estimated value and the second estimated value. Then, the control device 3 according to the present embodiment drives the manipulator 4 by giving the determined control command to the manipulator 4. As a result, the control device 3 according to the present embodiment controls the operation of the manipulator 4.
- the method of determining the target value of the hand coordinates is not particularly limited, and may be appropriately selected according to the embodiment.
- the inference model 55 can be used to determine the target of the hand coordinates. That is, the control device 3 according to the present embodiment acquires the current task state of the manipulator 4. As described above, the task state is defined by the positional relationship between the hand of the manipulator 4 and the target object.
- the control device 3 according to the present embodiment uses the inference model 55 to determine the task state of the target to be transitioned to next with respect to the acquired current task state so as to approach the task state of the final target. ..
- the control device 3 according to the present embodiment calculates the target value of the hand coordinates from the task state of the target to be transitioned to next. Thereby, in the present embodiment, the target value of the hand coordinates can be appropriately determined in the process of executing the task.
- At least one parameter of the first estimation model and the second estimation model is adjusted so that the estimation results (estimated values) of each other approach one value.
- the estimation accuracy of the hand coordinates by each estimation model will be improved. Therefore, according to the configuration, it is possible to improve the estimation accuracy of the hand coordinates by each estimation model, thereby improving the accuracy of controlling the hand coordinates of the manipulator.
- the time-series control command given to the manipulator is directly associated with the task to be performed. That is, in the conventional control method, the task to be performed is directly described by a series of control commands. Therefore, if at least one of the environment for performing the task and the object changes even a little, the learning result may not be able to respond to the change, and the task may not be performed properly.
- the manipulator can hold the work by the end effector based on the learning result.
- the posture of the work is different from that at the time of learning or the work is arranged at a position different from that at the time of learning, the coordinates for holding the work are changed by the end effector. This substantially changes the content of the task that the manipulator should perform in this situation. Therefore, in the sequence of control commands obtained from the learning results, the manipulator may not be able to properly hold the work by the end effector.
- the state of the task executed by the manipulator 4 is a relative relationship between objects such as end effector T, work W, and other work G, specifically, between objects. It is expressed by the positional relationship of.
- the control command given to the manipulator 4 is not directly associated with the task, but is associated with the amount of change in the relative positional relationship between the objects. That is, it is possible to generate or teach a time-series control command given to the manipulator 4 for changing the relative positional relationship of the object without depending on the content of the task.
- the manipulator can appropriately hold the work based on the learning result. Therefore, according to the present embodiment, the versatility of the ability to perform the task to be acquired can be increased, and thereby the cost for teaching the task to the manipulator 4 can be reduced.
- the first model generation device 1 generates a determination model 50 for determining whether or not two objects come into contact with each other in the positional relationship of the objects by machine learning.
- the learned determination model 50 generated by machine learning even if the positional relationship of the target (relative coordinates in the present embodiment) is given as a continuous value, the amount of data of the determination model 50 is greatly increased. Instead, it is possible to determine whether or not the two objects are in contact with each other based on the positional relationship. Therefore, according to the present embodiment, the amount of information data representing the boundary where the two objects come into contact with each other can be significantly reduced.
- FIG. 3 schematically illustrates an example of the hardware configuration of the first model generation device 1 according to the present embodiment.
- the control unit 11, the storage unit 12, the communication interface 13, the external interface 14, the input device 15, the output device 16, and the drive 17 are electrically arranged. It is a computer connected to.
- the communication interface and the external interface are described as "communication I / F" and "external I / F”.
- the control unit 11 includes a CPU (Central Processing Unit), RAM (Random Access Memory), ROM (Read Only Memory), etc., which are hardware processors, and is configured to execute information processing based on a program and various data.
- the storage unit 12 is an example of a memory, and is composed of, for example, a hard disk drive, a solid state drive, or the like. In the present embodiment, the storage unit 12 stores various information such as the model generation program 81, CAD (computer-aided design) data 120, a plurality of learning data sets 121, and learning result data 125.
- CAD computer-aided design
- the model generation program 81 is a program for causing the first model generation device 1 to execute information processing (FIG. 10) described later regarding machine learning of the determination model 50.
- the model generation program 81 includes a series of instructions for the information processing.
- the CAD data 120 includes configuration information indicating a geometrical configuration such as a model (for example, a three-dimensional model) of each object (end effector T, work W, other work G).
- the CAD data 120 may be generated by known software.
- the plurality of training data sets 121 are used for machine learning of the determination model 50.
- the training result data 125 shows information about the trained determination model 50 generated by machine learning.
- the learning result data 125 is obtained as a result of executing the model generation program 81. Details will be described later.
- the communication interface 13 is, for example, a wired LAN (Local Area Network) module, a wireless LAN module, or the like, and is an interface for performing wired or wireless communication via a network.
- the first model generation device 1 can perform data communication via a network with other information processing devices (for example, the second model generation device 2 and the control device 3).
- the external interface 14 is, for example, a USB (Universal Serial Bus) port, a dedicated port, or the like, and is an interface for connecting to an external device.
- the type and number of the external interfaces 14 may be appropriately selected according to the type and number of connected external devices.
- the first model generator 1 may be connected to the manipulator 4 and the camera S1 via the external interface 14 in order to determine whether or not the object comes into contact with the object in the real space.
- the input device 15 is, for example, a device for inputting a mouse, a keyboard, or the like.
- the output device 16 is, for example, a device for outputting a display, a speaker, or the like. The operator can operate the first model generation device 1 by using the input device 15 and the output device 16.
- the drive 17 is, for example, a CD drive, a DVD drive, or the like, and is a drive device for reading a program stored in the storage medium 91.
- the type of the drive 17 may be appropriately selected according to the type of the storage medium 91.
- At least one of the model generation program 81, the CAD data 120, and the plurality of learning data sets 121 may be stored in the storage medium 91.
- the storage medium 91 transfers the information of the program or the like by electrical, magnetic, optical, mechanical or chemical action so that the computer or other device, the machine or the like can read the information of the stored program or the like. It is a medium to accumulate.
- the first model generation device 1 may acquire at least one of the model generation program 81, the CAD data 120, and the plurality of learning data sets 121 from the storage medium 91.
- FIG. 3 illustrates a disc-type storage medium such as a CD or DVD as an example of the storage medium 91.
- the type of the storage medium 91 is not limited to the disc type, and may be other than the disc type.
- Examples of storage media other than the disk type include semiconductor memories such as flash memories.
- the control unit 11 may include a plurality of hardware processors.
- the hardware processor may be composed of a microprocessor, an FPGA (field-programmable gate array), a DSP (digital signal processor), or the like.
- the storage unit 12 may be composed of a RAM and a ROM included in the control unit 11. At least one of the communication interface 13, the external interface 14, the input device 15, the output device 16, and the drive 17 may be omitted.
- the first model generator 1 may be composed of a plurality of computers. In this case, the hardware configurations of the computers may or may not match. Further, the first model generation device 1 may be a general-purpose server device, a PC (Personal Computer), or the like, in addition to an information processing device designed exclusively for the provided service.
- FIG. 4 schematically illustrates an example of the hardware configuration of the second model generator 2 according to the present embodiment.
- the control unit 21, the storage unit 22, the communication interface 23, the external interface 24, the input device 25, the output device 26, and the drive 27 are electrically generated. It is a computer connected to.
- the communication interface and the external interface are described as "communication I / F" and "external I / F" as in FIG.
- the control units 21 to drive 27 of the second model generation device 2 may be configured in the same manner as the control units 11 to drive 17 of the first model generation device 1, respectively. That is, the control unit 21 includes a CPU, RAM, ROM, etc., which are hardware processors, and is configured to execute various information processing based on programs and data.
- the storage unit 22 is composed of, for example, a hard disk drive, a solid state drive, or the like. The storage unit 22 stores various information such as the model generation program 82, the CAD data 220, the learning result data 125, the learning data 223, and the inference model data 225.
- the model generation program 82 is a program for causing the second model generation device 2 to execute information processing (FIG. 11) described later regarding the generation of the inference model 55 for inferring the target task state.
- the model generation program 82 includes a series of instructions for the information processing. Similar to the CAD data 120, the CAD data 220 includes configuration information indicating a geometrical configuration such as a model of each object (end effector T, work W, other work G).
- the learning result data 125 is used for setting the learned determination model 50.
- the training data 223 is used to generate the inference model 55.
- the inference model data 225 shows information about the generated inference model 55.
- the inference model data 225 is obtained as a result of executing the model generation program 82. Details will be described later.
- the communication interface 23 is, for example, a wired LAN module, a wireless LAN module, or the like, and is an interface for performing wired or wireless communication via a network.
- the second model generation device 2 can perform data communication via the network with other information processing devices (for example, the first model generation device 1 and the control device 3).
- the external interface 24 is, for example, a USB port, a dedicated port, or the like, and is an interface for connecting to an external device.
- the type and number of the external interfaces 24 may be appropriately selected according to the type and number of connected external devices.
- the second model generator 2 may be connected to the manipulator 4 and the camera S1 via the external interface 24 in order to reproduce the task state in the real space.
- the input device 25 is, for example, a device for inputting a mouse, a keyboard, or the like.
- the output device 26 is, for example, a device for outputting a display, a speaker, or the like. The operator can operate the second model generation device 2 by using the input device 25 and the output device 26.
- the drive 27 is, for example, a CD drive, a DVD drive, or the like, and is a drive device for reading a program stored in the storage medium 92.
- the type of the storage medium 92 may be a disc type or may be other than the disc type, similarly to the storage medium 91.
- At least one of the model generation program 82, the CAD data 220, the learning result data 125, and the learning data 223 may be stored in the storage medium 92.
- the second model generation device 2 may acquire at least one of the model generation program 82, the CAD data 220, the learning result data 125, and the learning data 223 from the storage medium 92.
- the control unit 21 may include a plurality of hardware processors.
- the hardware processor may be composed of a microprocessor, FPGA, DSP and the like.
- the storage unit 22 may be composed of a RAM and a ROM included in the control unit 21. At least one of the communication interface 23, the external interface 24, the input device 25, the output device 26, and the drive 27 may be omitted.
- the second model generator 2 may be composed of a plurality of computers. In this case, the hardware configurations of the computers may or may not match.
- the second model generation device 2 may be a general-purpose server device, a general-purpose PC, or the like, in addition to an information processing device designed exclusively for the provided service.
- FIG. 5 schematically illustrates an example of the hardware configuration of the control device 3 according to the present embodiment.
- control unit 31 As shown in FIG. 5, in the control device 3 according to the present embodiment, the control unit 31, the storage unit 32, the communication interface 33, the external interface 34, the input device 35, the output device 36, and the drive 37 are electrically connected. It is a computer.
- the communication interface and the external interface are described as "communication I / F" and “external I / F" as in FIGS. 3 and 4.
- the control units 31 to drive 37 of the control device 3 may be configured in the same manner as the control units 11 to drive 17 of the first model generation device 1, respectively. That is, the control unit 31 includes a CPU, RAM, ROM, etc., which are hardware processors, and is configured to execute various information processing based on programs and data.
- the storage unit 32 is composed of, for example, a hard disk drive, a solid state drive, or the like. The storage unit 32 stores various information such as the control program 83, CAD data 320, robot data 321 and inference model data 225.
- the control program 83 is a program for causing the control device 3 to execute information processing (FIGS. 16A, 16B, 20, and 21) described later regarding control of the operation of the manipulator 4.
- the control program 83 includes a series of instructions for the information processing.
- the CAD data 320 includes configuration information indicating a geometrical configuration such as a model of each object (end effector T, work W, other work G).
- the robot data 321 includes configuration information indicating the configuration of the manipulator 4 such as parameters of each joint.
- the inference model data 225 is used to set the generated inference model 55. Details will be described later.
- the communication interface 33 is, for example, a wired LAN module, a wireless LAN module, or the like, and is an interface for performing wired or wireless communication via a network.
- the control device 3 can perform data communication via the network with other information processing devices (for example, the first model generation device 1 and the second model generation device 2).
- the external interface 34 is, for example, a USB port, a dedicated port, or the like, and is an interface for connecting to an external device.
- the type and number of the external interfaces 34 may be appropriately selected according to the type and number of connected external devices.
- the control device 3 may be connected to the camera S1 and the manipulator 4 via the external interface 34.
- the manipulator 4 includes an encoder S2 that measures the angle of each joint and a tactile sensor S3 that measures the force acting on the end effector T.
- the types of the camera S1, the encoder S2, and the tactile sensor S3 are not particularly limited, and may be appropriately determined according to the embodiment.
- the camera S1 is, for example, a general digital camera configured to acquire an RGB image, a depth camera configured to acquire a depth image, an infrared camera configured to image an amount of infrared rays, and the like. You can.
- the tactile sensor S3 may be, for example, a tactile sensor or the like.
- the control device 3 can acquire sensing data from each sensor (camera S1, each encoder S2, tactile sensor S3) via the external interface 34.
- the connection method with the camera S1 and the manipulator 4 does not have to be limited to such an example.
- the control device 3 may be connected to the camera S1 and the manipulator 4 via the communication interface 33.
- the input device 35 is, for example, a device for inputting a mouse, a keyboard, or the like.
- the output device 36 is, for example, a device for outputting a display, a speaker, or the like. The operator can operate the control device 3 by using the input device 35 and the output device 36.
- the drive 37 is, for example, a CD drive, a DVD drive, or the like, and is a drive device for reading a program stored in the storage medium 93.
- the type of the storage medium 93 may be a disc type or may be other than the disc type, similarly to the storage medium 91.
- At least one of the control program 83, CAD data 320, robot data 321 and inference model data 225 may be stored in the storage medium 93. Further, the control device 3 may acquire at least one of the control program 83, the CAD data 320, the robot data 321 and the inference model data 225 from the storage medium 93.
- the components can be omitted, replaced, or added as appropriate according to the embodiment.
- the control unit 31 may include a plurality of hardware processors.
- the hardware processor may be composed of a microprocessor, FPGA, DSP and the like.
- the storage unit 32 may be composed of a RAM and a ROM included in the control unit 31. At least one of the communication interface 33, the external interface 34, the input device 35, the output device 36, and the drive 37 may be omitted.
- the control device 3 may be composed of a plurality of computers. In this case, the hardware configurations of the computers may or may not match.
- the control device 3 may be a general-purpose server device, a general-purpose PC, a PLC (programmable logic controller), or the like, in addition to an information processing device designed exclusively for the provided service.
- FIG. 6 schematically illustrates an example of the hardware configuration of the manipulator 4 according to the present embodiment.
- the manipulator 4 is a 6-axis vertical articulated industrial robot, and includes a pedestal portion 40 and six joint portions 41 to 46.
- Each of the joints 41 to 46 has a built-in servomotor (not shown) so that the joints 41 to 46 can rotate around each axis.
- the first joint portion 41 is connected to the pedestal portion 40, and the portion on the tip end side is rotated around the axis of the pedestal.
- the second joint portion 42 is connected to the first joint portion 41 and rotates a portion on the distal end side in the front-rear direction.
- the third joint portion 43 is connected to the second joint portion 42 via a link 491, and the portion on the tip end side is rotated in the vertical direction.
- the fourth joint portion 44 is connected to the third joint portion 43 via the link 492, and the tip end side portion is rotated around the axis of the link 492.
- the fifth joint portion 45 is connected to the fourth joint portion 44 via the link 493, and the portion on the distal end side is rotated in the vertical direction.
- the sixth joint portion 46 is connected to the fifth joint portion 45 via the link 494, and the tip end side portion is rotated around the axis of the link 494.
- An end effector T is attached to the tip end side of the sixth joint portion 46 together with the tactile sensor S3.
- Encoder S2 is further built in each joint portion 41 to 46.
- Each encoder S2 is configured to measure an angle (control amount) of each joint portion 41 to 46.
- the measurement data (angle data) of each encoder S2 can be used to control the angle of each joint portion 41 to 46.
- the tactile sensor S3 is configured to detect a force acting on the end effector T.
- the measurement data (pressure distribution data) of the tactile sensor S3 estimates the position and orientation of the work W held by the end effector T, and detects whether or not an abnormal force is acting on the end effector T. May be used for.
- the hardware configuration of the manipulator 4 does not have to be limited to such an example.
- the components can be omitted, replaced, and added as appropriate according to the embodiment.
- the manipulator 4 may include sensors other than the encoder S2 and the tactile sensor S3 for observing control quantities or other attributes.
- the manipulator 4 may further include a torque sensor.
- the manipulator 4 may measure the force acting on the end effector T with a torque sensor, and may be controlled based on the measured value of the torque sensor so that an excessive force does not act on the end effector T.
- the number of axes of the manipulator 4 does not have to be limited to six.
- a known industrial robot may be adopted as the manipulator 4.
- FIG. 7 schematically illustrates an example of the software configuration of the first model generator 1 according to the present embodiment.
- the control unit 11 of the first model generation device 1 expands the model generation program 81 stored in the storage unit 12 into the RAM. Then, the control unit 11 controls each component by interpreting and executing the instruction included in the model generation program 81 expanded in the RAM by the CPU. As a result, as shown in FIG. 7, the first model generation device 1 according to the present embodiment operates as a computer including a data acquisition unit 111, a machine learning unit 112, and a storage processing unit 113 as software modules. That is, in the present embodiment, each software module of the first model generation device 1 is realized by the control unit 11 (CPU).
- the data acquisition unit 111 acquires a plurality of learning data sets 121.
- Each learning data set 121 is composed of a combination of training data 122 indicating a positional relationship between two objects and correct answer data 123 indicating whether or not the two objects come into contact with each other in the positional relationship.
- the training data 122 is used as input data for machine learning.
- the correct answer data 123 is used as a teacher signal (label) for machine learning.
- the formats of the training data 122 and the correct answer data 123 do not have to be particularly limited, and may be appropriately selected depending on the embodiment.
- the relative coordinates between the two objects may be used as they are, or the values obtained by converting the relative coordinates into feature quantities may be used. From the CAD data 120, it is possible to determine whether or not two objects of the object come into contact with each other in the positional relationship of the objects. Therefore, each learning data set 121 can be generated by using the CAD data 120.
- the machine learning unit 112 uses the acquired plurality of learning data sets 121 to perform machine learning of the determination model 50. Carrying out machine learning consists of training the determination model 50 for each training data set 121 to output an output value that matches the corresponding correct answer data 123 for the input of the training data 122. .. By this machine learning, it is possible to construct a trained determination model 50 that has acquired the ability to determine whether or not two objects come into contact with each other.
- the storage processing unit 113 generates information about the constructed learning determination model 50 as learning result data 125, and stores the generated learning result data 125 in a predetermined storage area.
- the determination model 50 is composed of a multi-layered neural network used for deep learning.
- the determination model 50 is composed of a fully connected neural network having a three-layer structure.
- the determination model 50 includes an input layer 501, an intermediate (hidden) layer 502, and an output layer 503.
- the structure of the determination model 50 does not have to be limited to such an example, and may be appropriately determined according to the embodiment.
- the number of intermediate layers included in the determination model 50 is not limited to one, and may be two or more.
- the intermediate layer 502 may be omitted.
- the number of neurons (nodes) included in each layer 501 to 503 may be appropriately determined according to the embodiment.
- the number of neurons in the input layer 501 may be determined according to the number of dimensions of the relative coordinates that represent the positional relationship between the two objects.
- the number of neurons in the output layer 503 may be determined according to the method of expressing whether or not the two objects are in contact with each other. For example, when expressing whether or not two objects touch each other with one numerical value (for example, expressing with a numerical value in the range of [0, 1]), the number of neurons in the output layer 503 is one. You can. Further, for example, when expressing whether or not two objects are in contact with each other by two numerical values, a first numerical value indicating the probability of contact and a second numerical value indicating the probability of non-contact, the output layer 503 The number of neurons may be two.
- Neurons in adjacent layers are connected appropriately.
- each neuron is connected to all neurons in adjacent layers.
- a weight (bonding load) is set for each coupling.
- a threshold is set for each neuron, and basically, the output of each neuron is determined by whether or not the sum of the products of each input and each weight exceeds the threshold.
- the threshold value may be expressed by an activation function. In this case, the output of each neuron is determined by inputting the sum of the products of each input and each weight into the activation function and executing the operation of the activation function.
- the type of activation function does not have to be particularly limited and may be appropriately selected depending on the embodiment.
- the weight of the connection between each neuron and the threshold value of each neuron included in each layer 501 to 503 are examples of the calculation parameters of the determination model 50.
- the machine learning unit 112 uses a plurality of learning data sets 121 to perform machine learning of the determination model 50 configured by the neural network. Specifically, the machine learning unit 112 adjusts the value of the calculation parameter of the determination model 50, and when the training data 122 is input to the input layer 501 for each learning data set 121, the output value conforming to the correct answer data 123. Is trained in the arithmetic parameters of the determination model 50 so that is output from the output layer 503. As a result, the machine learning unit 112 can generate a trained determination model 50 that has acquired the ability to determine whether or not two objects come into contact with each other.
- the storage processing unit 113 generates information indicating the structure and calculation parameters of the constructed learned determination model 50 as learning result data 125. Then, the storage processing unit 113 stores the generated learning result data 125 in a predetermined storage area.
- the content of the learning result data 125 does not have to be limited to such an example as long as the learned determination model 50 can be reproduced. For example, when the structure of the determination model 50 is shared among the devices, the information indicating the structure of the determination model 50 may be omitted in the learning result data 125.
- FIG. 8 schematically illustrates an example of the software configuration of the second model generator 2 according to the present embodiment.
- the control unit 21 of the second model generation device 2 expands the model generation program 82 stored in the storage unit 22 into the RAM. Then, the control unit 21 controls each component by interpreting and executing the instruction included in the model generation program 82 expanded in the RAM by the CPU.
- the second model generation device 2 is a computer including a contact determination unit 211, a data collection unit 212, a model generation unit 213, and a storage processing unit 214 as software modules. Operate. That is, in the present embodiment, each software module of the second model generation device 2 is realized by the control unit 21 (CPU), similarly to the first model generation device 1.
- the contact determination unit 211 includes the learned determination model 50 by holding the learning result data 125.
- the contact determination unit 211 sets the learned determination model 50 with reference to the learning result data 125.
- the trained determination model 50 has acquired the ability to determine whether or not the first object and the second object come into contact with each other by the above machine learning.
- the contact determination unit 211 gives the learned determination model 50 information indicating the task states of the objects of the first object and the second object, so that the first object and the second object can move in the task state of the object. Determine if they are in contact with each other.
- the data collection unit 212 and the model generation unit 213 utilize the result of the determination by the learned determination model 50 to prevent the first object from coming into contact with the second object, so that the task state of the final goal and the current task Generates an inference model 55 configured to determine the task state of the next transition from state. That is, the data collection unit 212 collects the learning data 223 used for generating the inference model 55 by using the result of the determination by the learned determination model 50. CAD data 220 may be further used to collect the learning data 223.
- the model generation unit 213 uses the collected learning data 223 to generate an inference model 55. Details of the training data 223 and the inference model 55 will be described later.
- the storage processing unit 214 generates information about the generated inference model 55 as inference model data 225, and stores the generated inference model data 225 in a predetermined storage area.
- FIG. 9 schematically illustrates an example of the software configuration of the control device 3 according to the present embodiment.
- the control unit 31 of the control device 3 expands the control program 83 stored in the storage unit 32 into the RAM. Then, the control unit 31 controls each component by interpreting and executing the instruction included in the control program 83 expanded in the RAM by the CPU.
- the control device 3 has the target setting unit 310, the first data acquisition unit 311, the second data acquisition unit 312, the first estimation unit 313, and the second estimation unit 314.
- the state acquisition unit 315, the action determination unit 316, the command determination unit 317, the drive unit 318, and the adjustment unit 319 are operated as a computer provided as a software module. That is, in the present embodiment, each software module of the control device 3 is realized by the control unit 31 (CPU), similarly to the first model generation device 1.
- the goal setting unit 310 sets the task state of the final goal according to the task to be performed.
- the task state is defined by the positional relationship between the first object and the second object in the task to be performed, and more specifically, the minion of the manipulator 4 and the target object.
- the positional relationship is represented by the above relative coordinates.
- the "final goal" is the end point (goal) and is realized when the task is completed.
- the target may be set appropriately according to the task to be performed.
- the target may be the work W.
- the target object may be an object to which the work W is assembled (in the present embodiment, another work G).
- the first data acquisition unit 311 acquires the first sensing data 323 from the first sensor system that observes the hand of the manipulator 4. In the present embodiment, the first data acquisition unit 311 acquires measurement data from each encoder S2 and the tactile sensor S3 as the first sensing data 323.
- the second data acquisition unit 312 acquires the second sensing data 324 from the second sensor system that observes the hand of the manipulator 4. In the present embodiment, the second data acquisition unit 312 acquires image data from the camera S1 as the second sensing data 324.
- the first estimation unit 313 calculates the first estimated value of the current coordinates of the hand in the observation space from the acquired first sensing data 323 by using the first estimation model 61.
- the second estimation unit 314 uses the second estimation model 62 to calculate the second estimation value of the current coordinates of the hand in the observation space from the acquired second sensing data 324.
- the adjusting unit 319 calculates the gradient of the error between the first estimated value and the second estimated value, and based on the calculated gradient, of the first estimated model 61 and the second estimated model 62 so that the error becomes smaller. Adjust the value of at least one parameter.
- the state acquisition unit 315 acquires information indicating the current task state of the manipulator 4.
- the "current" is a time point at which the operation of the manipulator 4 is controlled, and a time point immediately before the control command given to the manipulator 4 is determined.
- the action determination unit 316 determines the task state of the target to be transitioned to next with respect to the current task state indicated by the acquired information so as to approach the task state of the final target.
- “Goals” include final goals and may be set as appropriate to achieve the performance of the task. The number of goals set up to the final goal may be one (in this case, only the final goal is set) or may be plural. Goals other than the final goal are transit points that pass from the start point of the task to the end point. Therefore, the final goal may be simply referred to as a "goal”, and a goal other than the final goal may be referred to as a "sub-goal”. The sub-goal may be referred to as a "waypoint".
- the "next transition goal” is the task state to be aimed at next from the current task state (provisional task state if the goal is other than the final goal). For example, the current task state is changed toward the final goal. The closest goal.
- the action determination unit 316 includes the inference model 55 generated by holding the inference model data 225.
- the action determination unit 316 uses the generated inference model 55 to determine the task state of the final target and the task state of the target to be transitioned from the current task state to the next.
- the command determination unit 317 determines a control command to be given to the manipulator 4 so that the coordinates of the hand approach the target value based on at least one of the first estimated value and the second estimated value.
- the drive unit 318 drives the manipulator 4 by giving a determined control command to the manipulator 4.
- the control command is composed of command values for each joint.
- the command determination unit 317 recognizes the current value of the hand coordinates of the manipulator 4 based on at least one of the first estimated value and the second estimated value.
- the command determination unit 317 calculates the target value of the hand coordinates from the task state of the determined target to be transitioned to next.
- the command determination unit 317 calculates the amount of change in the angle of each joint from the difference between the current value and the target value of the hand coordinates.
- the command determination unit 317 determines the command value for each joint based on the calculated amount of change in the angle of each joint.
- the drive unit 318 drives each joint according to a determined command value.
- each software module of the first model generation device 1, the second model generation device 2, and the control device 3 will be described in detail in an operation example described later.
- an example in which each software module of the first model generation device 1, the second model generation device 2, and the control device 3 is realized by a general-purpose CPU is described.
- some or all of the above software modules may be implemented by one or more dedicated processors.
- software modules may be omitted, replaced, or added as appropriate according to the embodiment.
- FIG. 10 is a flowchart showing an example of a processing procedure related to machine learning of the determination model 50 by the first model generation device 1 according to the present embodiment.
- the processing procedure described below is an example of a model generation method for generating the determination model 50.
- each processing procedure described below is only an example, and each step may be changed as much as possible. Further, for each processing procedure described below, steps can be omitted, replaced, and added as appropriate according to the embodiment.
- Step S101 the control unit 11 operates as the data acquisition unit 111 and acquires a plurality of learning data sets 121 used for machine learning of the determination model 50.
- Each learning data set 121 is composed of a combination of training data 122 indicating a positional relationship between two objects and correct answer data 123 indicating whether or not the two objects come into contact with each other in the positional relationship.
- the method for generating each learning data set 121 does not have to be particularly limited, and may be appropriately selected according to the embodiment.
- two objects are arranged in various positional relationships in a virtual space.
- the positional relationship is expressed by relative coordinates.
- at least one of the two objects is an object that is moved by the operation of the manipulator 4.
- the end effector T and the work W are examples of each object.
- the work W held by the end effector T and the other work G are examples of the respective objects.
- One of the two objects is the minion of the manipulator 4, and the other is the target.
- each object may be specified by the operator or may be randomly determined.
- various positional relationships may be realized by fixing the position of one object and changing the position of the other object according to the rules. Rules that give the placement of the other object may be set as appropriate.
- the relative coordinates in each positional relationship can be acquired as the training data 122 of each learning data set 121.
- the CAD data 120 includes a model of each object. Therefore, it is possible to determine whether or not the two objects of the target come into contact with each other in the positional relationship of the objects from the CAD data 120.
- each learning data set 121 can be generated.
- the method of generating each learning data set 121 does not have to be limited to such an example.
- Each learning data set 121 may be generated by using the actual object of each object in the real space.
- Each learning data set 121 may be automatically generated by the operation of a computer, or may be manually generated by at least partially including an operator's operation. Further, each learning data set 121 may be generated by the first model generation device 1 or by a computer other than the first model generation device 1.
- the control unit 11 automatically or manually executes the series of processes by an operation via the operator's input device 15, thereby performing a plurality of the above-mentioned series of processes. Acquire the training data set 121.
- the control unit 11 acquires a plurality of learning data sets 121 generated by the other computer via, for example, a network or a storage medium 91.
- the CAD data 120 may be omitted from the first model generator 1.
- Some training data sets 121 may be generated by the first model generator 1 and other training data sets 121 may be generated by one or more other computers.
- the number of learning data sets 121 to be acquired does not have to be particularly limited, and may be appropriately selected according to the embodiment.
- the control unit 11 proceeds to the next step S102.
- Step S102 the control unit 11 operates as the machine learning unit 112, and uses the acquired plurality of learning data sets 121 to perform machine learning of the determination model 50.
- the control unit 11 inputs the training data 122 to the input layer 501 for each learning data set 121 by machine learning, the output value corresponding to the corresponding correct answer data 123 is output from the output layer 503.
- the determination model 50 is trained as follows. As a result, the control unit 11 constructs a learned determination model 50 that has acquired the ability to determine whether or not two objects come into contact with each other in the positional relationship of the objects.
- the processing procedure of machine learning may be appropriately determined according to the embodiment.
- the control unit 11 first prepares a determination model 50 to be processed.
- the structure of the judgment model 50 to be prepared (for example, the number of layers, the number of neurons contained in each layer, the connection relationship between neurons in adjacent layers, etc.), the initial value of the weight of the connection between each neuron, and the threshold value of each neuron.
- the initial value of may be given by the template or by the input of the operator.
- the control unit 11 may prepare the determination model 50 based on the learning result data obtained by performing the past machine learning.
- control unit 11 uses the training data 122 included in each learning data set 121 as input data and the correct answer data 123 as a teacher signal to execute the learning process of the determination model 50 (neural network). ..
- a batch gradient descent method, a stochastic gradient descent method, a mini-batch gradient descent method, or the like may be used.
- the control unit 11 inputs the training data 122 into the determination model 50 for each learning data set 121, and executes the arithmetic processing of the determination model 50. That is, the control unit 11 inputs the training data 122 to the input layer 501, and determines the firing of each neuron included in each layer 501 to 503 in order from the input side (that is, performs a forward propagation calculation). By this arithmetic processing, the control unit 11 acquires an output value corresponding to the result of determining whether or not the two objects come into contact with each other in the positional relationship indicated by the training data 122 from the output layer 503 of the determination model 50. ..
- the control unit 11 calculates the error (loss) between the output value acquired from the output layer 503 and the correct answer data 123 based on the loss function.
- the loss function is a function that evaluates the difference (that is, the degree of difference) between the output of the learning model and the correct answer, and the larger the difference value between the output value obtained from the output layer 503 and the correct answer data 123, the more the loss function.
- the value of the error calculated by is large.
- the type of loss function used for calculating the error does not have to be particularly limited and may be appropriately selected depending on the embodiment.
- the control unit 11 uses the error gradient of the output value calculated by the back propagation method to obtain each calculation parameter of the determination model 50 (weight of connection between each neuron, Calculate the error of the value of each neuron (threshold value, etc.).
- the control unit 11 updates the value of the calculation parameter of the determination model 50 based on each calculated error.
- the degree to which the value of the arithmetic parameter is updated may be adjusted by the learning rate.
- the learning rate may be given by the operator's designation, or may be given as a set value in the program.
- the control unit 11 determines that the sum of the errors between the output value output from the output layer 503 and the correct answer data 123 is small for each learning data set 121. Adjust the values of the arithmetic parameters of the model 50. For example, the control unit 11 may repeat the processes of the first to fourth steps until the sum of the errors becomes equal to or less than the threshold value.
- the threshold value may be appropriately set according to the embodiment.
- the control unit 11 is trained so that when the training data 122 is input to the input layer 501 for each learning data set 121, the output value corresponding to the corresponding correct answer data 123 is output from the output layer 503.
- the trained determination model 50 can be constructed.
- This "matching" may include that an acceptable difference due to a threshold value or the like occurs between the output value of the output layer 503 and the teacher signal (correct answer data 123).
- the control unit 11 proceeds to the next step S103.
- Step S103 the control unit 11 operates as a storage processing unit 113, and stores information about the learned determination model 50 constructed by machine learning as learning result data 125 in a predetermined storage area.
- the control unit 11 generates information indicating the structure and calculation parameters of the learned determination model 50 constructed in step S102 as learning result data 125. Then, the control unit 11 stores the generated learning result data 125 in a predetermined storage area.
- the predetermined storage area may be, for example, a RAM in the control unit 11, a storage unit 12, an external storage device, a storage medium, or a combination thereof.
- the storage medium may be, for example, a CD, a DVD, or the like, and the control unit 11 may store the learning result data 125 in the storage medium via the drive 17.
- the external storage device may be, for example, a data server such as NAS (Network Attached Storage). In this case, the control unit 11 may store the learning result data 125 in the data server via the network by using the communication interface 13. Further, the external storage device may be, for example, an external storage device connected to the first model generation device 1.
- control unit 11 ends a series of processes related to the generation of the learned determination model 50.
- the generated learning result data 125 may be provided to the second model generator 2 at an arbitrary timing.
- the control unit 11 may transfer the learning result data 125 to the second model generation device 2 as the process of step S103 or separately from the process of step S103.
- the second model generator 2 may acquire the learning result data 125 by receiving this transfer.
- the second model generation device 2 may acquire the learning result data 125 by accessing the first model generation device 1 or the data server via the network by using the communication interface 23.
- the second model generation device 2 may acquire the learning result data 125 via the storage medium 92.
- the learning result data 125 may be incorporated in the second model generation device 2 in advance.
- control unit 11 may update or newly generate the learning result data 125 by repeating the processes of steps S101 to S103 periodically or irregularly. At the time of this repetition, at least a part of the learning data set 121 may be changed, modified, added, deleted, or the like as appropriate. Then, the control unit 11 provides the updated or newly generated learning result data 125 to the second model generation device 2 each time the learning process is executed, so that the learning result data 125 held by the second model generation device 2 May be updated.
- FIG. 11 is a flowchart showing an example of a processing procedure relating to the generation of the inference model 55 by the second model generation device 2 according to the present embodiment. It should be noted that each processing procedure described below is only an example, and each step may be changed as much as possible. Further, for each processing procedure described below, steps can be omitted, replaced, and added as appropriate according to the embodiment.
- step S201 the control unit 21 accepts the designation of the task state of the final goal for the task to be executed by the manipulator 4.
- the task state is represented by the positional relationship between the first object and the second object, and more specifically, the hand and the target of the manipulator 4.
- the positional relationship is expressed by relative coordinates.
- the method of designating the relative coordinates in the final task state does not have to be particularly limited, and may be appropriately selected according to the embodiment.
- the relative coordinates in the final task state may be directly specified by the operator's input via the input device 25.
- the task to be performed may be selected by the input of the operator, and the relative coordinates in the final task state may be specified according to the selected task.
- the relative coordinates in the final target may be specified by arranging the model of each object in the positional relationship of the final target in the virtual space by using the CAD data 220. The placement of the model of each object may be performed automatically by the simulator or manually by input of the operator.
- the control unit 21 proceeds to the next step S202.
- step S202 the control unit 21 sets an arbitrary task state as a start point.
- the task state set at the start point corresponds to the task state at the time when the task execution is started.
- the task state as the starting point may be set randomly, or may be specified by the input of the operator.
- the method of designating the starting point by the operator may be the same as the method of designating the final goal.
- the task state as a starting point may be determined by an arbitrary algorithm.
- image data in which each object is captured may be acquired by arranging the actual object of each object in a real space and photographing each object with a camera. Then, by performing image processing (for example, matching by CAD data 220) on the obtained image data, a task state as a starting point may be determined.
- the task state as the starting point may be appropriately determined by using the CAD data 220.
- step S203 the control unit 21 operates as the contact determination unit 211, and uses the learned determination model 50 to determine whether or not the two objects come into contact with each other in the task state set as the start point.
- the control unit 21 sets the learned determination model 50 with reference to the learning result data 125.
- the control unit 21 inputs the relative coordinates of the task state set in step S202 to the input layer 501 of the learned determination model 50.
- the control unit 21 performs firing determination of each neuron included in each layer 501 to 503 in order from the input side as an arithmetic process of the learned determination model 50.
- the control unit 21 acquires an output value corresponding to the result of determining whether or not the two objects come into contact with each other in the task state set as the start point from the output layer 503 of the learned determination model 50.
- step S204 the control unit 21 determines the branch destination of the process based on the determination result of step S203. If it is determined in step S203 that the two objects come into contact with each other in the task state set at the start point, the control unit 21 returns the process to step S202 and sets the task state at the start point again. On the other hand, when it is determined that the two objects do not touch each other in the task state set as the start point, the control unit 21 recognizes the task state of the set start point as the current task state of the manipulator 4. The process proceeds to the next step S205.
- FIG. 12A schematically illustrates an example of a scene in which the task states of the start point and the final goal are set by the processes of steps S201 to S204 in the task space SP.
- the task space SP represents a set of relative coordinates that define the task state.
- the information indicating the task space SP may or may not be held in the second model generation device 2.
- Each node (point) belonging to the task space SP corresponds to the relative coordinates between the two objects.
- the node Ns corresponds to the relative coordinates in the task state of the start point
- the node Ng corresponds to the relative coordinates in the task state of the final goal.
- the boundary surface (contact boundary surface) of whether or not the two objects in the task space SP come into contact with each other is derived based on the determination result by the learned determination model 50.
- step S205 the control unit 21 determines the task state of the target to be transitioned to next with respect to the current task state so as to approach the task state of the final target.
- the method for determining the target task state does not have to be particularly limited, and may be appropriately selected according to the embodiment.
- the relative coordinates in the task state of the target may be determined by the input of the operator. Similar to the setting of the task state as the starting point, the relative coordinates in the target task state may be determined by an arbitrary algorithm or may be appropriately determined by using the CAD data 220.
- the control unit 21 may determine the relative coordinates in the task state of the target by randomly changing the relative coordinates in the task state of the start point. Further, for example, the control unit 21 may select a node that is separated from the node Ns by a predetermined distance so as to approach the node Ng in the task space SP. The control unit 21 may acquire the task state corresponding to the selected node as the target task state. Further, for example, when the inference model 55 is generated by reinforcement learning described later, the target task state may be determined by using the inference model 55 in the process of reinforcement learning.
- the control unit 21 may set a node that is a candidate for a target task state in the task space SP.
- the node setting may be automatically performed by a method such as random sampling, or may be manually performed by the input of the operator. Some nodes may be set automatically and the remaining nodes may be set manually.
- the control unit 21 may appropriately select a combination of transitionable nodes. As a method of selecting a combination of transitionable nodes, for example, the nearest neighbor method may be adopted. Within the task space SP, the combination of transitionable nodes may be represented by edges connecting the nodes.
- control unit 21 searches for a route from the node Ns at the start point to the node Ng at the final target.
- Dijkstra's algorithm or the like may be adopted as the route search method.
- the control unit 21 may acquire the task state corresponding to the node included in the route obtained by the search as the target task state.
- step S206 the control unit 21 operates as the contact determination unit 211, and uses the learned determination model 50 to determine whether or not the two objects come into contact with each other in the determined target task state. ..
- the control unit 21 may execute the process of step S206 in the same manner as in step S203, except that the task state of the start point is replaced with the task state of the target. That is, the control unit 21 inputs the relative coordinates of the target task state into the learned determination model 50, and executes the arithmetic processing of the learned determination model 50. As a result, the control unit 21 acquires an output value corresponding to the result of determining whether or not the two objects come into contact with each other in the target task state from the learned determination model 50.
- step S207 the control unit 21 determines the branch destination of the process based on the determination result of step S206. If it is determined in step S207 that the two objects come into contact with each other in the target task state, the control unit 21 returns the process to step S205 and redetermines the target task state. On the other hand, when it is determined that the two objects do not come into contact with each other in the target task state, the control unit 21 proceeds to the next step S208.
- step S207 does not have to be limited to such an example.
- the control unit 21 may return the process to step S202 and restart the process from the setting of the start point. Further, for example, when it is determined that the two objects come into contact with each other in the finally determined target task state after the target task state is determined a plurality of times, the control unit 21 returns the process to step S205.
- the task state of the next transition target may be determined again from the starting point.
- the series of target task states determined by contact may be collected as failure cases in which the final target task state cannot be reached.
- FIG. 12B schematically illustrates an example of a scene in which the target task state is determined by the processes of steps S205 to S207 in the task space SP.
- the node N1 corresponds to the relative coordinates in the task state determined as the target task state to be transferred next to the task state (node Ns) of the start point.
- the target task state for one transition is determined in step S205.
- the number of target task states determined in step S205 is not limited to one.
- the control unit 21 may determine the target task state (series of target task states) for a plurality of transitions toward the final target task state.
- step S208 the control unit 21 shifts the current task state of the manipulator 4 to the target task state determined in step S205. Then, the control unit 21 determines whether or not the task state of the manipulator 4 has reached the task state of the final target, that is, whether or not the task state of the transition destination is the task state of the final target. The transition of the task state may be performed in the virtual space by simulation. When it is determined that the task state of the final target has been reached, the control unit 21 proceeds to the next step S209. On the other hand, if it is determined that the task state of the final target has not been reached, the control unit 21 returns the process to step S205 and determines the task state of a further target.
- FIG. 12C schematically illustrates an example of a scene in which a sequence of task states transitioning from the task state of the start point to the task state of the final goal is determined by the processing up to step S208 in the task space SP.
- Each node N1 to N4 corresponds to the relative coordinates in the task state determined as the target task state from the start point node Ns to the final target node Ng.
- Node N (k + 1) indicates the task state of the target to be transitioned to next to node N (k) (k is 1 to 3).
- the control unit 21 can obtain a sequence of task states of the target transitioning from the start point to the final target.
- step S209 the control unit 21 determines whether or not to repeat the processes of steps S202 to S208.
- the criteria for repeating the treatment may be appropriately determined according to the embodiment.
- a specified number of times to repeat the process may be set.
- the specified number of times may be given, for example, by a set value or by an operator's designation.
- the control unit 21 determines whether or not the number of times the processes of steps S202 to S208 have been executed has reached the specified number of times. When it is determined that the number of executions has not reached the specified number of times, the control unit 21 returns the process to step S202 and repeats the processes of steps S202 to S208. On the other hand, when it is determined that the number of executions has reached the specified number of times, the control unit 21 proceeds to the next step S210.
- control unit 21 may inquire the operator whether or not to repeat the process. In this case, the control unit 21 determines whether or not to repeat the processes of steps S202 to S208 according to the response of the operator. When the operator replies that the process is repeated, the control unit 21 returns the process to step S202 and repeats the processes of steps S202 to S208. On the other hand, when the operator replies that the process is not repeated, the control unit 21 proceeds to the next step S210.
- the control unit 21 operates as the data collection unit 212, and collects one or more series of task states of the target transitioning from the start point to the final target. Then, the control unit 21 generates the learning data 223 from the collected sequence.
- the control unit 21 may acquire the collected sequence as it is as the learning data 223, or may generate the learning data 223 by executing some information processing on the collected sequence.
- the configuration of the training data 223 may be appropriately determined depending on the method of generating the inference model 55. The configuration of the learning data 223 will be described later.
- step S210 the control unit 21 operates as the model generation unit 213. That is, the control unit 21 uses the learning data 223 obtained by using the result of the determination by the learned determination model 50 to prevent the first object from coming into contact with the second object, so that the current task An inference model 55 for inferring the task state of the target that transitions next from the task state of the state and the final goal is generated.
- the method of generating the inference model 55 will be described later.
- step S211 the control unit 21 operates as the storage processing unit 214. That is, the control unit 21 generates information about the generated inference model 55 as inference model data 225, and stores the generated inference model data 225 in a predetermined storage area.
- the predetermined storage area may be, for example, a RAM in the control unit 21, a storage unit 22, an external storage device, a storage medium, or a combination thereof.
- the storage medium may be, for example, a CD, a DVD, or the like, and the control unit 21 may store the inference model data 225 in the storage medium via the drive 27.
- the external storage device may be, for example, a data server such as NAS. In this case, the control unit 21 may store the inference model data 225 in the data server via the network by using the communication interface 23. Further, the external storage device may be, for example, an external storage device connected to the second model generation device 2.
- control unit 21 ends a series of processes related to the generation of the inference model 55.
- the generated inference model data 225 may be provided to the control device 3 at an arbitrary timing.
- the control unit 21 may transfer the inference model data 225 to the control device 3 as the process of step S211 or separately from the process of step S211.
- the control device 3 may acquire the inference model data 225 by receiving this transfer.
- the control device 3 may acquire the inference model data 225 by accessing the second model generation device 2 or the data server via the network by using the communication interface 33.
- the control device 3 may acquire the inference model data 225 via the storage medium 93.
- the inference model data 225 may be incorporated in the control device 3 in advance.
- control unit 21 may update or newly generate the inference model data 225 by repeating the processes of steps S201 to S211 periodically or irregularly. At the time of this repetition, at least a part of the learning data 223 may be changed, modified, added, deleted, or the like as appropriate. Then, the control unit 21 may update the inference model data 225 held by the control device 3 by providing the updated or newly generated inference model data 225 to the control device 3 each time the learning process is executed. ..
- control unit 21 can generate the inference model 55 by at least one of the following two methods.
- the control unit 21 generates an inference model 55 by performing machine learning.
- the inference model 55 is composed of a machine learning model.
- the type of the machine learning model does not have to be particularly limited, and may be appropriately selected depending on the embodiment.
- the inference model 55 may be represented by, for example, a function expression, a data table, or the like. When expressed by a functional expression, the inference model 55 may be composed of, for example, a neural network, a support vector machine, a regression model, a decision tree, or the like.
- the machine learning method is not particularly limited, and may be appropriately selected according to the configuration of the inference model 55. For example, supervised learning, reinforcement learning, and the like may be adopted as the machine learning method of the inference model 55.
- supervised learning, reinforcement learning, and the like may be adopted as the machine learning method of the inference model 55.
- FIG. 13 schematically shows a first example of a machine learning model and a machine learning method constituting the inference model 55.
- the inference model 55 uses a neural network
- the machine learning method uses supervised learning.
- an example of each of the inference model 55, the training data 223, and the inference model data 225 is referred to as an inference model 551, training data 2231, and inference model data 2251.
- the inference model 551 is composed of a recurrent neural network having a three-layer structure. Specifically, the inference model 551 includes an input layer N51, an RSTM (Long short-term memory) block N52, and an output layer N53. The LSTM block N52 corresponds to the intermediate layer.
- the LSTM block N52 is a block provided with an input gate and an output gate so that the timing of information storage and output can be learned (S. Hochreiter and J. Schmidhuber, “Long short-term memory” Neural Computation, 9). (8): 1735-1780, November 15, 1997).
- the LSTM block N52 may further include a forgetting gate that adjusts the timing of information forgetting (Felix A. Gers, Jurgen Schmidhuber and Fred Cummins, "Learning to Forget: Continuous Prediction with LSTM” Neural Computation, pages 2451-2471. , October 2000).
- the configuration of the LSTM block N52 may be appropriately set according to the embodiment.
- the structure of the inference model 551 does not have to be limited to such an example, and may be appropriately determined according to the embodiment.
- the inference model 551 may be composed of recurrent neural networks having different structures.
- the inference model 551 is not a recursive type, but may be configured by a fully connected neural network or a convolutional neural network as in the determination model 50.
- the inference model 551 may be composed of a combination of a plurality of types of neural networks.
- the number of intermediate layers included in the inference model 551 is not limited to one, and may be two or more. Alternatively, the intermediate layer may be omitted.
- the configuration of the inference model 551 may be the same as that of the determination model 50.
- the learning data 2231 used for supervised learning of the inference model 551 is a plurality of learning data sets including a combination of training data (input data) and correct answer data (teacher signal). It is composed of L30.
- the training data may be composed of relative coordinates in the current task state L31 for training and relative coordinates in the task state L32 of the final goal for training.
- the correct answer data may be composed of relative coordinates in the task state L33 of the training target.
- the format of the training data and the correct answer data does not have to be particularly limited, and may be appropriately selected according to the embodiment.
- the relative coordinates may be used as they are for the training data, or the values obtained by converting the relative coordinates into feature quantities may be used.
- the control unit 21 can generate each learning data set L30 from one or more series of target task states obtained by the processing up to step S209.
- the task state of the final goal indicated by the node Ng can be used as the task state L32 of the final goal for training.
- the control unit 21 indicates the task state L33 of the target for training in the corresponding correct answer data by the node N1. You may set the task state to be used.
- the control unit 21 sets the node N () to the target task state L33 for training in the corresponding correct answer data.
- the task state indicated by k + 1) may be set.
- the control unit 21 sets the task state L33 of the target for training in the corresponding correct answer data to the task of the final target indicated by the node Ng. You may set the state.
- each learning data set L30 can be generated from one or more series of the obtained target task states.
- Step S210 the control unit 21 performs machine learning (supervised learning) of the inference model 551 using the acquired plurality of learning data sets L30.
- the control unit 21 uses machine learning to input training data to the input layer N51 for each learning data set L30, and then outputs an output value matching the correct answer data from the output layer N53. Train 551.
- the machine learning method of the inference model 551 may be the same as the machine learning method of the determination model 50. That is, in the first step, the control unit 21 inputs training data to the input layer N51 of the inference model 551 for each learning data set L30, and executes the arithmetic processing of the inference model 551. As a result, the control unit 21 acquires an output value corresponding to the result of inferring the target task state that transitions next to the current task state from the output layer L53 of the inference model 551. In the second step, the control unit 21 calculates the error between the output value of the output layer L53 and the correct answer data based on the loss function.
- the control unit 21 calculates the error of the value of each calculation parameter of the inference model 551 by using the gradient of the error of the output value calculated by the error back propagation method.
- the control unit 21 calculates the error of the value of each calculation parameter (for example, the weight of the connection between each neuron, the threshold value of each neuron, etc.) of the inference model 551 by using the calculated error gradient.
- the control unit 21 updates the value of the calculation parameter of the inference model 551 based on each calculated error.
- the degree of renewal may be adjusted by the learning rate.
- the learning rate may be given by the operator's designation, or may be given as a set value in the program.
- the control unit 21 reduces the sum of the errors between the output value output from the output layer N53 and the correct answer data for each learning data set L30. Adjust the value of the calculation parameter of 551.
- the control unit 21 may repeat the processes of the first to fourth steps until the sum of the errors becomes equal to or less than the threshold value.
- the threshold value may be appropriately set according to the embodiment.
- the control unit 21 may repeat the first to fourth steps a predetermined number of times. The number of times to repeat the adjustment may be specified, for example, by a set value in the program or by input of an operator.
- a trained inference model 551 can be constructed so as to be trained. That is, it is possible to construct a trained inference model 551 that has acquired the ability to infer the task state of the target that transitions next from the current task state and the task state of the final goal.
- step S211 the control unit 21 generates information indicating the structure and calculation parameters of the learned inference model 551 constructed by supervised learning as inference model data 2251. Then, the control unit 21 stores the generated inference model data 2251 in a predetermined storage area.
- the content of the inference model data 2251 does not have to be limited to such an example as long as the learned inference model 551 can be reproduced. For example, when the structure of the inference model 551 is shared among the devices, the information indicating the structure of the inference model 551 may be omitted in the inference model data 2251.
- the configuration of the inference model 551 is not limited to the neural network.
- a machine learning model other than the neural network may be adopted as the inference model 551.
- a support vector machine, a regression model, a decision tree, or the like may be adopted as the machine learning model constituting the inference model 551.
- the method of supervised learning is not limited to the above example, and may be appropriately selected depending on the configuration of the machine learning model.
- FIG. 14 schematically shows a second example of the machine learning model and the machine learning method constituting the inference model 55.
- reinforcement learning is adopted as the method of machine learning.
- an example of each of the inference model 55, the training data 223, and the inference model data 225 is referred to as an inference model 552, a training data 2232, and an inference model data 2252.
- the inference model 552 may be value-based, policy-based, or both.
- the inference model 552 may be composed of value functions such as a state value function and an action value function (Q function), for example.
- the state value function is configured to output the value of a given state.
- the action value function is configured to output the value of each action for a given state.
- the inference model 552 may be constructed, for example, by a policy function.
- the policy function is configured to output the probability of selecting each action for a given state.
- the inference model 552 may be composed of, for example, a value function (Critic) and a policy function (Actor).
- Each function may be represented by, for example, a data table, a function expression, or the like.
- each function When expressed by a function expression, each function may be composed of a neural network, a linear function, a decision tree, or the like.
- Deep reinforcement learning may be performed by constructing each function by a multi-layered neural network having a plurality of intermediate (hidden) layers.
- (1-2-2) Example of structure of learning data
- an agent interacts with the learning environment by acting according to a policy.
- the entity of the agent is, for example, a CPU.
- the inference model 552 operates as a measure for determining behavior by the above configuration.
- the agent observes the state of strengthening behavior within a given learning environment.
- the state to be observed is the task state defined by the relative coordinates
- the action to be executed is the transition from the current task state to the target task state.
- the policy is configured to determine (infer) the task state of the next target to transition from the current task state and the task state of the final goal.
- the agent may infer the task state of the target to be transitioned next by giving the observed current task state (input data) to the inference model 552.
- the agent may determine the target task state based on the result of this inference. Alternatively, the target task state may be randomly determined. This allows the agent to decide which action to take. When the agent executes an action that transitions to the determined target task state, the observed task state transitions to the next task state. In some cases, agents can get immediate rewards from the learning environment.
- the agent updates the inference model 552 so as to maximize the sum (that is, the value) of the immediate reward.
- the optimum behavior that is, the behavior that can be expected to acquire high value is strengthened, and a policy (learned inference model 552) that enables selection of such behavior can be obtained.
- the learning data 2232 is the state transition data obtained by this trial and error, and the executed action transitions from the current task state to the next task state, and in some cases, an immediate reward is obtained. It is composed of state transition data showing state transitions.
- One state transition data may be composed of data showing the locus of state transitions of all episodes, or may be composed of data showing state transitions for a predetermined number of times (one or more times).
- the control unit 21 can acquire the state transition data by executing the trial and error using the inference model 552 being trained.
- a reward function may be used to calculate the immediate reward according to the state transition.
- the reward function may be represented by a data table, a function expression, or a rule.
- the reward function When expressed by a function expression, the reward function may be composed of a neural network, a linear function, a decision tree, or the like.
- the reward function may be set manually by an operator or the like.
- the reward function determines whether or not the first object and the second object come into contact with each other in the task state of the transition target by the learned determination model 50, and the task state and final of the target. It may be set to give immediate rewards depending on the distance between the target task states. Specifically, the immediate reward is set more as the first object and the second object do not come into contact with each other and the distance between the task state of the target and the task state of the final goal is shorter, and the first object is set. And the second objects come into contact with each other, or the longer the distance, the smaller the setting may be made. Equation 1 below exemplifies an example of a reward function that gives an immediate reward in this way.
- s c indicates the task state of the goal determined by the policy.
- s g indicates the task state of the final goal.
- F (s c) shows the result of the first object and the second object in the task state s c is determined by the determination model 50 learned whether contact with each other. If it is determined that contact each other, the value of F (s c) is reduced (e.g., 0), when it is determined not to contact with each other, the value of F (s c) increases (e.g., 1) so May be set to.
- the output value of the learned decision model 50 corresponds to the configuration, the output value of the learned decision model 50 may be used as F (s c) as it is.
- the reward function may be estimated by inverse reinforcement learning from case data obtained by an expert.
- the case data may be composed of data showing (trajectory) demonstration by an expert.
- the case data may be composed of, for example, data indicating a route in which the first object is actually moved so as to reach the task state of the final target from the task state of an arbitrary start point.
- the method for generating case data does not have to be particularly limited, and may be appropriately selected depending on the embodiment.
- the case data may be generated, for example, by recording the trajectory of the demonstration by an expert with a sensor or the like.
- the method of reverse reinforcement learning is not particularly limited and may be appropriately selected according to the embodiment.
- reverse reinforcement learning for example, a method based on the principle of maximum entropy, a method based on the minimization of relative entropy, and a method using a hostile generation network (for example, Justin Fu, et al., "Learning Robust Rewards with Adversarial Inverse Reinforcement Learning” , ArXiv: 1710.11248, 2018) etc. may be used.
- the learning data 2232 may further include case data used for inverse reinforcement learning.
- step S210 the control unit 21 updates the value of the calculation parameter of the inference model 552 so as to maximize the value based on the obtained state transition data.
- the method of adjusting the value of the calculation parameter of the inference model 552 may be appropriately selected according to the configuration of the inference model 552. For example, when the inference model 552 is composed of a neural network, the values of the arithmetic parameters of the inference model 552 may be adjusted by an error backpropagation method or the like in the same manner as in the first example.
- the control unit 21 adjusts the value of the calculation parameter of the inference model 552 so that the obtained value (expected value) is maximized (for example, until the update amount becomes equal to or less than the threshold value). That is, training the inference model 552 repeatedly corrects the values of the arithmetic parameters constituting the inference model 552 so that a large amount of reward can be obtained until a predetermined condition (for example, the update amount becomes equal to or less than the threshold value) is satisfied. Including that. As a result, the control unit 21 can generate a trained inference model 552 that has acquired the ability to infer the task state of the target that transitions next from the current task state and the task state of the final target.
- control unit 21 may adjust the values of the calculation parameters of the inference model 552 after the learning data 2232 has been collected by the processes of steps S202 to S209. Alternatively, the control unit 21 may adjust the value of the calculation parameter of the inference model 552 while repeating the processes of steps S202 to S210.
- the TD (temporal difference) method, the TD ( ⁇ ) method, the Monte Carlo method, the dynamic programming method, or the like may be used as the reinforcement learning method.
- the decision of action in trial and error may be on-polish or off-polish.
- Q-learning, Sarasa, or the like may be used as the reinforcement learning method.
- a random action may be adopted with a probability of ⁇ ( ⁇ -greedy method).
- the policy gradient method may be used as the reinforcement learning method.
- the control unit 21 calculates the gradient of the operation parameter of the policy function in the direction in which the obtained value increases, and updates the value of the operation parameter of the policy function based on the calculated gradient.
- the REINFORCE algorithm may be used to calculate the gradient of the policy function.
- the inference model 55 is composed of both, the Actor Critic method, A2C (Advantage Actor Critic), A3C (Asynchronous Advantage Actor Critic), and the like may be used as the reinforcement learning method.
- the control unit 21 further acquires the case data before executing the above-mentioned reinforcement learning process.
- the case data may be generated by the second model generator 2 or may be generated by another computer.
- the control unit 21 may acquire case data generated by the other computer via a network, a storage medium 92, or the like.
- the control unit 21 sets the reward function by executing the inverse reinforcement learning using the acquired case data.
- the control unit 21 executes the above-mentioned reinforcement learning process by using the reward function set by the inverse reinforcement learning.
- the control unit 21 has acquired the ability to infer the task state of the target to be next transitioned from the current task state and the task state of the final goal by using the reward function set by the inverse reinforcement learning.
- Inference model 552 can be generated.
- step S211 the control unit 21 generates information indicating the learned inference model 552 constructed by reinforcement learning as inference model data 2252.
- the information indicating the trained inference model 552 may include, for example, information indicating arithmetic parameters such as the value of each item in the data table and the value of the coefficient of the function expression.
- the control unit 21 stores the generated inference model data 2252 in a predetermined storage area.
- the target task state can be determined so that the task state of the manipulator 4 reaches the final target task state quickly while avoiding unnecessary contact between the first object and the second object.
- the inference model 55 can be generated.
- the control unit 21 starts from the current task state and the final target task state so that the first object does not come into contact with the second object. It is possible to generate a trained inference model 55 that has acquired the ability to infer the task state of the transitional target. Therefore, according to the first method, the inference model 55 that can be used to perform the task can be appropriately generated.
- FIG. 15A schematically illustrates an example of the learning data 223 in the second method.
- FIG. 15B schematically illustrates an example of the configuration of the inference model 55 in the second method.
- the inference model 55 is composed of a potential field that defines the potential of each coordinate in the task space SP that represents a set of task states.
- examples of the inference model 55, the training data 223, and the inference model data 225 are referred to as the inference model 553, the learning data 2233, and the inference model data 2253.
- the control unit 21 uses the learned determination model 50 in the task space SP to perform path planning so that the first object does not come into contact with the second object. carry out.
- the control unit 21 generates learning data 2233 indicating the path Hb from each of the plurality of task states given as the start points (nodes Ns) to the final target task state. be able to. Each starting point (node Ns) may be given randomly.
- step S210 the control unit 21 generates a potential field by setting the potential of each coordinate according to the frequency of passage of each path Hb indicated by the generated learning data 2233.
- the method for deriving the potential field does not have to be particularly limited, and may be appropriately selected depending on the embodiment.
- the control unit 21 may derive a potential field from the learning data 3233 by, for example, kernel density estimation and estimation using a Gaussian Mixture Model (GMM).
- GMM Gaussian Mixture Model
- the potential of each coordinate in the potential field indicates the evaluation value of the positional relationship between the first object and the second object at each coordinate with respect to reaching the final target. That is, the higher the potential, the higher the possibility that the positional relationship at the coordinates will reach the final target, and the lower the potential, the lower the possibility that the positional relationship at the coordinates will reach the final target. Therefore, by transitioning to the higher potential gradient, it is possible to appropriately reach the final target task state from any task state that is the starting point. Therefore, according to the second method, the inference model 55 that can be used to perform the task can be appropriately generated.
- step S211 the control unit 21 generates information indicating the generated potential field as inference model data 2253.
- the potential field may be represented by a data table, a function expression, or the like. Then, the control unit 21 stores the generated inference model data 2253 in a predetermined storage area.
- At least one of the above two methods may be adopted as a method for generating the inference model 55.
- the control unit 21 makes a transition from the current task state and the final target task state so that the first object does not come into contact with the second object. It is possible to generate an inference model 55 configured to infer the task state of the target to be achieved.
- Inferring the task state of the target so that the first object does not come into contact with the second object is a task of the target while avoiding unintended contact between the first object and the second object. It is to determine the state, and may include, for example, determining the task state in which the first object properly contacts the second object, such as the end effector T holding the work W, as the target task state. .. That is, in the "contact" state to be avoided, for example, one of the first object and the second object has a correct posture with respect to the other, for example, an excessive force acts between the first object and the second object. It is a state of improper contact such as contact in a state other than assembling in. Therefore, "the first object does not come into contact with the second object" may be replaced with "avoid the first object coming into contact with the second object in an improper state".
- FIGS. 16A, 16B, and 17 are flowcharts showing an example of a processing procedure related to operation control of the manipulator 4 by the control device 3 according to the present embodiment.
- FIG. 17 shows an example of the flow of calculation processing of each element in the process of motion control.
- each processing procedure described below is only an example, and each step may be changed as much as possible. Further, for each processing procedure described below, steps can be omitted, replaced, and added as appropriate according to the embodiment.
- the operation of the manipulator 4 described below may be controlled in the real space or in the virtual space.
- step S301 the control unit 31 accepts the designation of the task to be executed.
- the method of accepting the designation of the task does not have to be particularly limited, and may be appropriately selected depending on the embodiment.
- the control unit 31 may accept the designation of the task to be executed by inputting the name of the task via the input device 35.
- the control unit 31 may receive the designation of the task to be executed by outputting the list indicating the candidate of the task to be executed to the output device 36 and having the operator select the task to be executed from the list.
- the control unit 31 accepts the execution of the task of moving the first object with respect to the second object in the environment where the first object and the second object exist.
- a series of operations in which the manipulator 4 is driven, the work W is held by the end effector T, and the held work W is assembled to another work G is an example of a designated task.
- the attention point T0 of the end effector T is treated as the minion of the manipulator 4, and the work W is the target of the movement of the minion.
- the attention point W0 of the work W held by the end effector T is treated as a minion of the manipulator 4, and the work W The other work W to be assembled is the target for the movement of the hand.
- the minion of the manipulator 4 corresponds to the first object
- the target object corresponds to the second object.
- step S302 the control unit 31 operates as the target setting unit 310, and sets the task state s g of the final target according to the designated task.
- the task state is defined by the positional relationship between the minion of the manipulator 4 and the target object.
- the positional relationship is expressed by relative coordinates.
- the relative coordinates in the task state s g of the final goal may be given by a simulator such as CAD, or may be given by the operator's designation.
- the relative coordinates in the task state s g of the final goal may be set by the same method as in step S201.
- Step S303 the control unit 31 operates as the first data acquisition unit 311 and acquires the first sensing data 323 from the first sensor system. Further, the control unit 31 operates as the second data acquisition unit 312 and acquires the second sensing data 324 from the second sensor system.
- the first sensor system is composed of an encoder S2 that measures the angle of each joint (joint portions 41 to 46) and a tactile sensor S3 that measures the force acting on the end effector T.
- the control unit 31 can acquire the current value q (j) (that is, the current measured value) of the angle of each joint in the manipulator 4 from each encoder S2 as the first sensing data 323. Further, the control unit 31 can acquire the measurement data of the force acting on the end effector T from the tactile sensor S3 as the first sensing data 323.
- the second sensor system is configured by the camera S1. The control unit 31 can acquire image data of the environment for performing the task from the camera S1 as the second sensing data 324. In the following, for convenience of explanation, a reference numeral indicating the timing such as (j) will be added when the timing such as “current” is particularly distinguished, and the reference numeral will be omitted otherwise.
- the control unit 31 may directly acquire each sensing data (323, 324) from each sensor (camera S1, encoder S2, tactile sensor S3), or may, for example, go through another computer. Therefore, each sensing data (323, 324) may be acquired indirectly.
- the camera S1 and the tactile sensor S3 are examples of observation sensors for observing the state of the work W with respect to the end effector T, respectively.
- the control unit 31 proceeds to the next step S304.
- Step S304 the control unit 31 determines whether or not the end effector T holds the work W based on the sensing data of the observation sensor obtained in step S303.
- the determination method does not have to be particularly limited and may be appropriately determined according to the sensing data.
- the control unit 31 may use the CAD data 320 to match the models of the end effector T and the work W with the acquired image data. Then, the control unit 31 may determine whether or not the end effector T holds the work W based on the positional relationship between the end effector T and the work W specified by the matching result.
- a known image processing method may be used as the matching method.
- the measurement data of the force acting on the end effector T can be acquired as the first sensing data 323. Therefore, the control unit 31 may determine whether or not the end effector T holds the work W based on the distribution of the force appearing in the measurement data. When it is estimated from the measurement data that a force recognized by the end effector T holding the work W is acting on the end effector T, the control unit 31 determines that the end effector T is holding the work W. You may judge. On the other hand, if this is not the case, the control unit 31 may determine that the end effector T does not hold the work W.
- control unit 31 proceeds to the next step S305.
- Step S305 the control unit 31 sets the operation mode of the manipulator 4 based on the result of the determination in step S304. Specifically, when it is determined that the end effector T does not hold the work W, the control unit 31 sets the attention point T0 of the end effector T to the hand of the manipulator 4, and holds the work W by the end effector T. Set the operation mode to the mode for executing the first task. On the other hand, when it is determined that the end effector T holds the work W, the control unit 31 sets the attention point W0 of the work W to the hand of the manipulator 4, and sets the work W held by the end effector T to another work W. The operation mode is set to the mode for executing the second task to be assembled to the work G. When the setting of the operation mode is completed, the control unit 31 proceeds to the next step S306.
- Step S306 the control unit 31 operates as the state acquisition unit 315 to acquire the current task state s (j) of the manipulator 4.
- the task state s is defined by the relative coordinates of the work W with respect to the end effector T.
- the task state s is defined by the relative coordinates of the other work G with respect to the work W.
- the control unit 31 uses the CAD data 320 to match each object with the image data obtained by the camera S1. The control unit 31 can acquire the current task state s (j) from the result of this matching.
- FIG. 18 schematically illustrates an example of the positional relationship of each object.
- the origin of the observation space is set in the pedestal portion 40 of the manipulator 4.
- the position of the origin does not have to be limited to such an example, and may be determined according to the embodiment.
- Homogeneous coordinates of the camera S1 with respect to the origin (T C) can be expressed by Equation 2 below.
- R rc indicates the rotation component when the coordinate system of the camera S1 is viewed from the coordinate system of the origin, and t rc indicates the translation component.
- T R the origin of the coordinates
- the relative coordinates of the point of interest T0 of the end effector T with respect to the origin are the coordinates (T t ) of the end effector T.
- the relative coordinates of the point of interest W0 of the work W with respect to the origin are the coordinates (T w ) of the work W.
- the relative coordinates of the point of interest G0 of the other work G with respect to the origin are the coordinates (T g ) of the other work G.
- the control unit 31 can obtain an estimated value of each coordinate (T t , T w , T g ) by matching the model of each object with the image data by using the CAD data 320.
- the control unit 31 can use the estimated value of each coordinate obtained at the processing timing as the current value of each coordinate.
- the control unit 31 substitutes the current values (T t (j) , T w (j) ) of each coordinate of the end effector T and the work W estimated from the matching result into the above equation 4, and the above equation 4
- the estimated value of the current task state s (j) can be calculated by executing the arithmetic processing of. This current is possible to calculate the estimated value of the task state s (j), which corresponds to retrieve the current task state s (j).
- each coordinate (T t , T w , T g ) may be appropriately selected.
- a homogeneous coordinate system may be used to represent each coordinate (T t , T w , T g). The same applies to the following.
- control unit 31, in the image data obtained by the camera S1 may further calculate an estimated value of the origin of the coordinates (T R). Markers such as markers may be used to detect the origin. That is, by matching the mark in the image data, the estimated value of the origin of the coordinates (T R) may be calculated. Control unit 31, the calculated origin of the coordinate estimates of (T R) by applying to the above operation, it is possible to calculate the estimated value of the current task state s (j). In the subsequent steps, the case where matching by CAD data 320 is executed may be processed in the same manner.
- step S306 When the current task state s (j) is acquired, the control unit 31 proceeds to the next step S307.
- the timing of executing the process of step S306 does not have to be limited to such an example.
- the process of step S306 may be executed at an arbitrary timing before executing step S308 described later. For example, when matching is performed by CAD data 320 in step S304, the process of step S306 may be executed together with the process of step S304.
- Step S307 the control unit 31 operates as the first estimation unit 313, and using the first estimation model 61, the first of the current coordinates of the hand in the observation space is obtained from the acquired first sensing data 323. Calculate the estimated value. Further, the control unit 31 operates as the second estimation unit 314, and uses the second estimation model 62 to obtain the second estimation value of the current coordinates of the hand in the observation space from the acquired second sensing data 324. Is calculated.
- the control unit 31 uses forward kinematics calculation to obtain the current value q (j) (first sensing data 323) of the angle of each joint of the manipulator 4 in the joint space obtained by each encoder S2.
- the first estimated value of the hand coordinates of the manipulator 4 in the observation space is calculated (in other words, the current value x (j) is estimated).
- the case where the end effector T does not hold the work W and the case where the end effector T holds the work W will be described separately.
- the control unit 31 performs forward kinematics calculation using the first transformation matrix group ( ⁇ ) derived from the first linear transformation matrix of each joint as a transformation function, and the current value q (of the angle of each joint). Calculate the first estimated value of the hand coordinates set from j).
- the relationship between the coordinates (x t ) of the point of interest T0 of the end effector T and the angle (q) of each joint can be expressed by the above equation 6.
- the angle (q) is a variable having a number of dimensions corresponding to the number of joints.
- the relationship between the first linear transformation matrix ( m-1 T m ) and the first transformation matrix group ( ⁇ ) of each joint is given by the above equation 7 (m is 0 to n. N is the joint. number).
- the first homogeneous transformation matrix represents the relative coordinates of the coordinate system of the target joint as seen from the coordinate system on the hand side of the target joint, and converts the coordinates from the coordinate system on the hand side to the coordinate system of the target joint. It is used for.
- the values of the parameters of the first linear transformation matrix of each joint are known except for the angle of each joint, and are included in the robot data 321 in this embodiment.
- the parameter may be set by a known method such as DH (Denavit-Hartenberg) notation and modified DH notation.
- the control unit 31 derives the first transformation matrix group ( ⁇ ) represented by the above equation 7 by referring to the robot data 321. Then, the control unit 31 substitutes the current value q (j) of the angle of each joint into the derived first transformation matrix group ( ⁇ ) as in the above equation 6, and calculates the first transformation matrix group ( ⁇ ). Execute the process.
- the control unit 31 calculates an estimated value of the current coordinates of the end effector T (attention point T0) (in other words, estimates the current value x t (j) of the coordinates). be able to.
- the control unit 31 acquires the calculated estimated value as the first estimated value of the current hand coordinates.
- the control unit 31 acquires a second linear transformation matrix (t T w ) for converting the coordinates from the coordinate system of the attention point T0 of the end effector T to the coordinate system of the attention point W0 of the work W. To do.
- the method for obtaining the second linear transformation matrix ( t T w ) does not have to be particularly limited, and may be appropriately selected depending on the embodiment.
- the second linear transformation matrix ( t T w ) may be given as a constant.
- the control unit 31 may estimate the second linear transformation matrix (t T w ) from the sensing data acquired in step S303.
- the control unit 31 may use the CAD data 320 to match the models of the end effector T and the work W with the image data obtained by the camera S1. From the result of this matching, the control unit 31 can obtain an estimated value of the coordinates (T t ) of the end effector T and the coordinates (T w) of the work W.
- the control unit 31 uses the following equation 8 to estimate the coordinates (T t ) of the end effector T and the coordinates (T w ) of the work W, respectively.
- the second homologous transformation matrix ( t T w ) can be estimated from.
- the matching by the CAD data 320 may be performed near the coordinates (x t ) of the point of interest T0 of the end effector T calculated by the above forward kinematics calculation. Further, the control unit 31 may use the estimated value of the coordinates (x t ) calculated by the forward kinematics calculation as the estimated value of the coordinates (T t). As a result, the control unit 31 can estimate the second linear transformation matrix (t T w). Similarly, in the arithmetic processing of the above equation 4 in step S306, instead of the current value (T t (j) ) of the coordinates of the end effector T estimated by matching, the coordinates estimated by forward kinematics calculation are used. The current value (x t (j) ) may be used.
- the distribution of the force acting on the end effector T measured by the tactile sensor S3 may depend on the position and orientation of the work W with respect to the end effector T. Therefore, the control unit 31 may estimate the relative coordinates (relative position and relative posture) of the work W with respect to the end effector T based on the measurement data (first sensing data 323) obtained by the tactile sensor S3. The control unit 31 can estimate the second linear transformation matrix ( t T w ) from the result of this estimation.
- the method of estimating the second linear transformation matrix ( t T w ) from the sensing data 322 does not have to be limited to the above analytical method.
- the second linear transformation matrix (t T w ) is obtained from the sensing data 322 by machine learning in the same manner as the judgment model 50, the inference model 551, and the like.
- a trained machine learning model that has acquired the ability to estimate may be used.
- the control unit 31 gives the acquired sensing data 322 to the trained machine learning model, and executes the arithmetic processing of the trained machine learning model. As a result, the control unit 31 can acquire an output value corresponding to the result of estimating the second linear transformation matrix (t T w) from the trained machine learning model.
- the control unit 31 multiplies the obtained second-order transformation matrix ( t T w ) by the first transformation matrix group ( ⁇ ) to obtain a second transformation matrix group ( ⁇ (q) ⁇ t T w). ) Is calculated.
- the second transformation matrix group can be expressed by the following equation 9.
- the first homogeneous transformation matrix is an example of the first transformation equation
- the second linear transformation matrix is an example of the second transformation equation.
- the first transformation matrix group ( ⁇ ) is an example of the first transformation expression group
- the second transformation matrix group ( ⁇ (q) ⁇ t T w ) is an example of the second transformation expression group.
- the format of each conversion formula may not be particularly limited as long as it can be used for the calculation of the hand coordinates.
- each conversion formula may be represented by a transformation matrix having a format other than the homogeneous coordinate system, or may be represented by a mathematical formula having a format other than the matrix.
- the control unit 31 calculates the first estimated value of the hand coordinates set from the current value q (j) of the angle of each joint by the forward kinematics calculation using the calculated second transformation matrix group as the transformation function. .. That is, the control unit 31 substitutes the current value q (j) of the angle of each joint in the second transformation matrix group ( ⁇ (q) ⁇ t T w), the second transformation matrix group ( ⁇ (q) ⁇ t Executes the arithmetic processing of T w). Based on the result of this forward kinematics calculation, the control unit 31 can calculate the estimated value of the current coordinates of the work W (attention point W0) (in other words, estimate the current values of the coordinates). The control unit 31 acquires the calculated estimated value of the current coordinates of the work W as the first estimated value of the current hand coordinates.
- the control unit 31 uses the derived conversion function to perform forward kinematics calculation, and from the current value q (j) of the angle of each joint, the manipulator 4 The first estimated value of the current hand coordinates of can be calculated.
- the transformation function used for this forward kinematics calculation is an example of the first estimation model 61. That is, in the scene where the end effector T does not hold the work W, the first transformation matrix group ( ⁇ ) corresponds to an example of the first estimation model 61. Further, in the scene where the end effector T holds the work W, the second transformation matrix group ( ⁇ (q) ⁇ t T w ) corresponds to an example of the first estimation model 61.
- Each parameter of each transmutation function corresponds to an example of the parameter of the first estimation model 61.
- the control unit 31 uses the CAD data 320 to match the model of each object with the image data (second sensing data 324) obtained by the camera S1. As a result, the control unit 31 can calculate the second estimated value of the current hand coordinates of the manipulator 4 (in other words, estimate the current value x (j)). In this case, the control unit 31 may calculate the second estimated value of the current hand coordinates of the manipulator 4 from the current task state s (j) estimated in the task space in step S306.
- the relationship between the task state s and the coordinate x of the hand when the end effector T does not hold the work W can be expressed by the above equation 10. it can.
- the conversion function ( ⁇ ) from the task space to the observation space is given by the coordinates (T w ) of the work W.
- the control unit 31 substitutes the current task state s (j) acquired in step S306 and the current value (T w (j) ) of the coordinates of the work W estimated by matching into Equation 10 and substitutes Equation 10 into Equation 10.
- the second estimated value of the current hand coordinates of the manipulator 4 can be calculated by executing the arithmetic processing of.
- the relationship between the task state s and the coordinates x of the hand when the end effector T holds the work W can be expressed by the above equation 11.
- the conversion function ( ⁇ ) from the task space to the observation space is given by the coordinates (T g ) of the other work G.
- the control unit 31 substitutes the current value (T g (j) ) of the coordinates (T g (j)) of the current task state s (j) acquired in step S306 and the coordinates of the other work G estimated by matching into Equation 11 and described above.
- the second estimated value of the current hand coordinates of the manipulator 4 can be calculated.
- the conversion function ( ⁇ ) of the above equations 10 and 11 is an example of the second estimation model 62.
- Each parameter of each transmutation function ( ⁇ ) corresponds to a parameter of the second estimation model 62.
- the method of estimating the current value x (j) of the hand coordinates of the manipulator 4 by matching using the CAD data 320 does not have to be limited to such an example.
- the control unit 31, by the matching, to estimate the current value of the coordinates of the end effector T a (T t (j)) the estimated current value (T t ( j) ) may be obtained as the second estimate of the current hand coordinates.
- each coordinate (T t , T w ) is an example of the second estimation model 62.
- each term of each coordinate (T t , T w ) is an example of the parameter of the second estimation model 62.
- the control unit 31 can calculate the first estimated value and the second estimated value of the current hand coordinates of the manipulator 4.
- the control unit 31 recognizes the current value x (j) of the coordinates of the hand of the manipulator 4 based on at least one of the first estimation unit and the second estimation unit. This certification may be made as appropriate.
- the control unit 31 may adopt either the first estimated value or the second estimated value as it is as the current value x (j) of the hand coordinates.
- the control unit 31 may calculate the average value of the first estimated value and the second estimated value, and acquire the calculated average value as the current value x (j) of the hand coordinates. In this case, the average value may be calculated by a weighted average.
- Weighting for each estimated value may be performed so that the estimated value that is assumed to have high estimation accuracy is prioritized. As an example, it is assumed that the estimation accuracy of the hand coordinates by the forward kinematics calculation is higher than the estimation accuracy of the hand coordinates by matching with the image data of the camera S1. In this case, each estimated value may be weighted so that the first estimated value has priority over the second estimated value.
- the control unit 31 proceeds to the next step S308.
- step S307 may be executed at an arbitrary timing before the process of step S310 described later is executed.
- the process of step S307 may be executed before the step S306.
- the process of step S307 may be executed together with the process of step S306 or step S304.
- Step S308 the control unit 31 operates as the action determination unit 316, and the target task that transitions next to the acquired current task state s (j) so as to approach the final target task state s g. Determine the state s s (j).
- the control unit 31 refers to the inference model data 225 and uses the inference model 55 generated by the process of step S210 to make the next transition to the current task state s (j). Determine the target task state s s (j).
- the arithmetic processing of the inference model 55 for inferring the task state s s (j) of the target to be transitioned next may be appropriately executed according to the configuration of the inference model 55.
- the control unit 31 functions the current task state s (j) and the final target task state s g . Substitute in an expression and execute the arithmetic processing of the function expression.
- the control unit 31 inputs the current task state s (j) and the final target task state s g to the input layer, and each neuron included in each layer in order from the input side. Ignition judgment is made.
- the control unit 31 collates the current task state s (j) and the final target task state s g with the data table. As a result, the control unit 31 acquires the result of inferring the task state s s (j) of the target to be transitioned next as the output of the inference model 55. Based on this inference result, the control unit 31 can determine the task state s s (j) of the target to be transitioned to next.
- the control unit 31 receives the current task state s (j) in the generated potential field. Refer to the potential value set in the coordinates corresponding to. Then, the control unit 31 determines the next target task state s s (j) to be transitioned according to the gradient of the potential set at the coordinates corresponding to the current task state s (j). Specifically, the control unit 31 determines the target task state s s (j) so as to transition to the higher potential gradient (for example, to transition to the highest potential gradient by a predetermined distance). ..
- step S308 the control unit 31 may use the determined task state of the target as the current task state and further determine the task state of the target to be transitioned to next. By repeating this process, the control unit 31 may determine the target task state a plurality of times. When the task state s s (j) of the target to be transitioned to next is determined, the control unit 31 proceeds to the next step S309.
- Step S309 the control unit 31 operates as the command determination unit 317, and calculates the target value x s (j) of the coordinates of the hand from the task state s s (j) of the determined target. As shown in FIG. 17, the control unit 31 uses the above conversion function ( ⁇ ) to set the target task state s s (j) in the task space to the target value x s (j ) of the coordinates of the hand in the observation space. ) Can be converted.
- the conversion function ( ⁇ ) from the task space to the observation space when the end effector T does not hold the work W is given by the above equation 10.
- the control unit 31 substitutes the determined target task state s s (j) into the above equation 10 and executes the arithmetic processing of the above equation 10 to calculate the target value x s (j) of the coordinates of the hand. can do.
- the conversion function ( ⁇ ) from the task space to the observation space when the end effector T holds the work W is given by the above equation 11.
- the control unit 31 substitutes the determined target task state s s (j) into the above equation 11 and executes the arithmetic processing of the above equation 11 to calculate the target value x s (j) of the coordinates of the hand. can do.
- the control unit 31 proceeds to the next step S310.
- Step S310 the control unit 31 operates as a command determination unit 317 to obtain a change amount ( ⁇ x (j) ) of the hand coordinate from the current value x (j) of the hand coordinate and the target value x s (j) of the hand coordinate. decide. Specifically, as shown in FIG. 17, the control unit 31 changes the hand coordinate ( ⁇ x) based on the deviation between the current value (x (j) ) and the target value (x s (j)) of the hand coordinate. (j) ) is determined. For example, the relationship between the deviation (x s ⁇ x) of the current value and the target value of the hand coordinates and the amount of change ( ⁇ x) may be given by the following equation 12.
- the amount of change ( ⁇ x) in the hand coordinates is an example of the difference between the current value and the target value of the hand coordinates.
- ⁇ is an arbitrary coefficient.
- the value of ⁇ may be appropriately determined within a range of 1 or less and more than 0. ⁇ may be omitted.
- the control unit 31 substitutes the current value x (j) of the hand coordinates and the target value x s (j) of the hand coordinates obtained in steps S307 and S309 into the above formula 12, and executes the arithmetic processing of the above formula 12. By doing so, the amount of change in the hand coordinates ( ⁇ x (j) ) can be determined. When the amount of change in the hand coordinates ( ⁇ x (j) ) is determined, the control unit 31 proceeds to the next step S311.
- Step S311 In step S311 the control unit 31 operates as a command determination unit 317, and the amount of change in the hand coordinates determined by the inverse kinematics calculation using the inverse function of the conversion function in the forward kinematics calculation ( ⁇ x (j)). ) To calculate the amount of change in the angle of each joint ( ⁇ q (j)). Specifically, the amount of change in the hand coordinates ( ⁇ x) and the amount of change in the angle of each joint ( ⁇ q) can be expressed by the following equation 13.
- J is a Jacobian matrix derived from the transformation function in the above forward kinematics calculation.
- j i indicates the matrix component of the i-th joint, and ⁇ q i indicates the amount of change in the i-th joint.
- FIG. 19A schematically illustrates an example of the relationship between each joint and the hand when the end effector T does not hold the work W.
- FIG. 19B schematically illustrates an example of the relationship between each joint and the hand when the end effector T holds the work W.
- the control unit 31 can calculate the components of each joint by the following equation 14.
- the components of each joint of the Jacobian matrix are calculated based on the positional relationship between each joint and the work W.
- the control unit 31 can calculate the components of each joint by the following equation 15.
- z i indicates the component of the axis of rotation in the homogeneous coordinates of the i-th joint
- a i indicates the translation component in the homogeneous coordinates of the i-th joint.
- z i and a i are extracted from the first linear transformation matrix of the i-th joint.
- a t indicates a translation component in homogeneous coordinates of the end effector T.
- a w indicates a translation component in homogeneous coordinates of the work W.
- a t is extracted from the coordinates (T t ) of the end effector T.
- a w is extracted from the coordinates (T w) of the work W.
- Each component j i of the Jacobian matrix indicates the differential component of the first linear transformation matrix of each joint.
- the control unit 31 calculates the Jacobian matrix according to the operation mode according to the above equations 14 and 15. In the present embodiment, between the case where the end effector T does not hold the work W and the case where the end effector T holds the work W, in each component of the Jacobian matrix, the component of the end effector T ( a t) and components of the work W (a w) is not only replaced. Therefore, the control unit 31 can calculate the Jacobian matrix in each case by a simple calculation process.
- control unit 31 calculates the inverse matrix (J -1 ) of the calculated Jacobian matrix.
- the control unit 31 executes the inverse kinematics calculation using the calculated inverse matrix (J -1). Specifically, the relationship between each change amount ( ⁇ x, ⁇ q) and the inverse matrix (J -1 ) is derived from the above equation 13 as shown in the following equation 16.
- the control unit 31 substitutes the calculated inverse matrix (J -1 ) and the amount of change in the hand coordinates ( ⁇ x (j) ) into the equation 16 and executes the arithmetic processing of the above equation 16 to execute the arithmetic processing of the above equation 16 to obtain the angle of each joint.
- the amount of change in ( ⁇ q (j) ) can be calculated. After calculating the amount of change in the angle of each joint ( ⁇ q (j) ), the control unit 31 proceeds to the next step S312.
- Step S312 the control unit 31 operates as a command determination unit 317 and determines a command value for each joint based on the calculated amount of change in the angle of each joint.
- a method for determining the command value for example, a known method such as PID (Proportional-Integral-Differential) control or PI control may be adopted.
- the command value for each joint is an example of a control command given to the manipulator 4.
- the control unit 31 changes the task state of the manipulator 4 from the current task state s (j) to the target task so that the hand coordinates approach the target value by the processing of steps S309 to S312.
- the control command given to the manipulator 4 can be determined so as to change to the state s s (j).
- the control unit 31 proceeds to the next step S313.
- step S313 the control unit 31 operates as the drive unit 318 and drives the manipulator 4 by giving the determined control command to the manipulator 4.
- the control unit 31 drives each joint of the manipulator 4 according to each determined command value.
- the driving method is not particularly limited and may be appropriately selected according to the embodiment.
- the control unit 31 may directly drive each joint of the manipulator 4.
- the manipulator 4 may include a controller (not shown).
- the control unit 31 may indirectly drive each joint of the manipulator 4 by giving a command value for each joint to the controller.
- the control unit 31 proceeds to the next step S314.
- Step S314 to Step S316 The processing of steps S314 to S316 is the same as the processing of steps S303, S306 and S307, except that the cycle proceeds from (j) to (j + 1). That is, in step S314, the control unit 31 acquires each sensing data (323, 324) from each sensor system. In step S315, the control unit 31 operates as the state acquisition unit 315 and acquires the current task state s (j + 1) of the manipulator 4. In step S316, the control unit 31 operates as each estimation unit (313, 314) and calculates each estimated value of the current hand coordinates of the manipulator 4 from each of the acquired sensing data (323, 324).
- the control unit 31 certifies the current value x (j + 1) of the hand coordinates based on at least one of the calculated first estimated value and the second estimated value. As a result, when the current value x (j + 1) of the hand coordinates is acquired, the control unit 31 proceeds to the next step S317.
- Step S317) the control unit 31 determines whether or not the task state of the manipulator 4 has transitioned to the target task state s s (j) as a result of the drive in step S313.
- the determination method does not have to be particularly limited, and may be appropriately selected according to the embodiment.
- the relationship between the angle of each joint after driving (q (j + 1) ) and the angle of each joint before driving (q (j) ) is expressed by the following equation 17. be able to.
- the value of the angle of each joint obtained by each encoder S2 in step S314 is the value of the angle of each joint obtained by each encoder S2 before driving (q (j) ) and step S311. It may be determined whether or not it matches the sum of the amount of change ( ⁇ q (j)) calculated in.
- the control unit 31 targets the task state of the manipulator 4. It may be determined that the task state s s (j) of On the other hand, if this is not the case, the control unit 31 may determine that the task state of the manipulator 4 has not transitioned to the target task state s s (j).
- the Jacobian matrix J ⁇ may be derived for the transformation function ( ⁇ ) as well as the transformation function in the forward kinematics calculation.
- the Jacobian matrix J ⁇ shows the differential component of the transformation function ( ⁇ ).
- the inverse matrix (J ⁇ -1 ) may be calculated from the derived Jacobian matrix J ⁇ .
- the relationship between the amount of change in the hand coordinates ( ⁇ x) and the amount of change in the task state ( ⁇ s) and the inverse matrix (J ⁇ -1 ) can be expressed by the following equation 18.
- the control unit 31 substitutes the calculated inverse matrix (J ⁇ -1 ) and the amount of change in the hand coordinates ( ⁇ x (j) ) into the equation 18 and executes the arithmetic processing of the above equation 18 to obtain the task state.
- the amount of change ( ⁇ s (j) ) can be calculated.
- the relationship between the task state s (j + 1) after driving and the task state s (j) before driving can be expressed by the following equation 19 as in the above equation 17.
- the control unit 31 changes the current task state obtained after driving in step S315 to the current task state s (j) obtained before driving in step S306 and the amount of change calculated by the above ( ⁇ s (j). ) ) It may be determined whether or not it matches the sum of).
- the control unit 31 controls the manipulator. It may be determined that the task state of 4 has transitioned to the target task state s s (j). On the other hand, if this is not the case, the control unit 31 may determine that the task state of the manipulator 4 has not transitioned to the target task state s s (j).
- the task space is defined by the relative coordinates between the two objects
- the task space and the observation space can be expressed in a common dimension. Therefore, in some cases, the inverse matrix (J ⁇ -1 ) of the equation 18 may be replaced with the unit matrix, and the change amount ( ⁇ x) of the hand coordinates may be treated as it is as the change amount ( ⁇ s) of the task state.
- the inverse matrix (J ⁇ -1 ) of Equation 18 may be replaced with the identity matrix.
- control unit 31 may determine whether or not the current task state obtained in step S315 matches the target task state s s (j) determined in step S308. If the obtained current task state matches the target task state s s (j) , the control unit 31 determines that the task state of the manipulator 4 has transitioned to the target task state s s (j). Good. On the other hand, if this is not the case, the control unit 31 may determine that the task state of the manipulator 4 has not transitioned to the target task state s s (j).
- the relationship between the current value of the hand coordinates after driving (x (j + 1) ) and the current value of the hand coordinates before driving (x (j) ) is the same as in the above equation 17 as follows. It can be expressed by 20.
- the current value of the hand coordinate after driving acquired in step S316 is determined by the current value (x (j) ) of the hand coordinate before driving acquired in step S307 and step S310. It may be determined whether or not it matches the sum of the amount of change ( ⁇ x (j)).
- the control unit 31 is in the task state of the manipulator 4. May determine that has transitioned to the target task state s s (j). On the other hand, if this is not the case, the control unit 31 may determine that the task state of the manipulator 4 has not transitioned to the target task state s s (j).
- control unit 31 may determine whether or not the current value of the hand coordinates acquired in step S316 matches the target value (x s (j)) of the hand coordinates calculated in step S309. .. When the current value of the hand coordinates after driving matches the target value (x s (j) ) of the hand coordinates calculated before driving, the control unit 31 determines that the task state of the manipulator 4 is the target task state s s ( It may be determined that the transition to j) has occurred. On the other hand, if this is not the case, the control unit 31 may determine that the task state of the manipulator 4 has not transitioned to the target task state s s (j).
- the control unit 31 can determine whether or not the task state of the manipulator 4 has transitioned to the target task state s s (j). In each of the above determinations, “matching" may include that the two values are completely the same and that the difference between the two values is equal to or less than the threshold value (margin of error).
- the control unit 31 proceeds to the next step S318. On the other hand, if this is not the case, the control unit 31 returns to step S310 to drive the manipulator 4 again. At this time, the control unit 31 may execute the processing after step S310 by using the current value of the hand coordinates calculated in step S316 as the current value x (j).
- Step S318 the control unit 31 determines whether or not the final target task state s g can be realized.
- the determination method does not have to be particularly limited, and may be appropriately selected according to the embodiment.
- the control unit 31 may determine whether or not the current task state s (j + 1) obtained in step S315 matches the final target task state s g.
- the control unit 31 determines that the task state s g of the final target has been realized.
- the control unit 31 determines that the final target task state s g has not been realized. Similar to the above, "matching" in the determination may include that the two values are completely matched and that the difference between the two values is equal to or less than the threshold value (margin of error).
- the control unit 31 ends a series of processes related to the operation control of the manipulator 4. On the other hand, when it is determined that the task state s g of the final target cannot be realized, the control unit 31 returns the process to step S308. Then, the control unit 31 re-executes the processes of steps S308 to S313 by using the results of steps S315 and S316. The control unit 31 realizes the final target task state s g by repeating the above series of processes. As a result, the control device 3 according to the present embodiment can control the operation of the manipulator 4 so as to perform the designated task.
- the branch destination when it is determined that the task state s g of the final goal cannot be realized is not limited to the above step S308.
- the task state of the final goal in the task to be executed last may be set in the task state s g of the final goal.
- the work W is held by the end effector T and the task of assembling the held work W to another work G is executed, the work W is set to the other work G in the task state s g of the final goal.
- the state assembled in may be adopted. In this case, the performance of the series of tasks may start from the starting point of the first task.
- the branch destination when it is determined that the task state s g of the final target cannot be realized may be the step S303 instead of the step S308.
- the control unit 31 can drive the manipulator 4 while checking the operation mode by the processes of steps S304 and S305.
- a series of tasks can be performed while smoothly switching each task.
- the operation mode can be smoothly switched to the task of transporting the work W to another work G.
- FIG. 20 is a flowchart showing an example of a processing procedure related to parameter adjustment of each estimation model (61, 62) by the control device 3 according to the present embodiment.
- the first estimation model 61 is a transformation function (first transformation matrix group or second transformation matrix group) used for the forward kinematics calculation.
- the second estimation model 62 is a conversion function ( ⁇ ) or each coordinate (T t , T w ) that converts the value in the task space into the value in the observation space.
- the information processing related to the parameter adjustment may be executed together with the information processing related to the operation control of the manipulator 4, or may be executed separately.
- the processing procedure described below, including the processing procedure related to the above-mentioned operation control, is an example of the "control method" of the present invention. However, each processing procedure described below is only an example, and each step may be changed as much as possible. Further, for each processing procedure described below, steps can be omitted, replaced, and added as appropriate according to the embodiment.
- step S401 the control unit 31 operates as each data acquisition unit (311, 312) and acquires each sensing data (323, 324) from each sensor system.
- the process of step S401 is the same as the process of step S303 and step S314.
- step S402 the control unit 31 operates as each estimation unit (313, 314), and uses each estimation model (61, 62) to obtain the current hand coordinates from the acquired sensing data (323, 324). Calculate each estimated value of.
- the process of step S402 is the same as the process of step S307 and step S316. After calculating each estimated value, the control unit 31 proceeds to the next step S403.
- step S401 corresponds to the execution of step S303 or step S314.
- step S402 corresponds to the execution of step S307 or step S316.
- the control unit 31 may execute the process of step S403 next at an arbitrary timing.
- step S403 the control unit 31 operates as the adjustment unit 319 to calculate the gradient of the error between the calculated first and second estimates.
- a function formula such as an error function may be used for the calculation of the error.
- the control unit 31 calculates the difference between the first estimated value and the second estimated value, calculates the power of the calculated difference (for example, squared), and acquires the obtained value as an error. Can be done.
- the control unit 31 can calculate the gradient of the error for each parameter of each estimation model (61, 62) by calculating the partial differential with respect to the calculated error.
- step S404 the control unit 31 operates as the adjustment unit 319, and based on the calculated gradient, the first estimation model 61 and the first estimation model 61 and the second estimation so as to reduce the error between the first estimation value and the second estimation value. 2 Adjust the values of at least one parameter of the estimation model 62. As an example, the control unit 31 updates the value of each parameter by subtracting the gradient calculated for each parameter from the value of each parameter. As a result, the control unit 31 can adjust the value of each parameter based on the calculated gradient.
- the parameter values of both estimation models (61, 62) may be adjusted. Alternatively, the value of the parameter of only one of the estimation models (61, 62) may be adjusted. It is preferable to adjust the parameters of both estimation models (61, 62) if noise can occur in both, or if the parameters of both estimation models (61, 62) may not be appropriate.
- the control unit 31 proceeds to the next step S405.
- step S405 the control unit 31 determines whether or not to end the process of adjusting the parameters of each estimation model (61, 62). Criteria for terminating the parameter adjustment process may be appropriately determined according to the embodiment.
- a specified number of times of repeating parameter adjustment may be set before the end.
- the specified number of times may be given, for example, by a set value or by an operator's designation.
- the control unit 31 determines whether or not the number of times the processes of steps S401 to S404 have been executed has reached the specified number of times. When it is determined that the number of executions has not reached the specified number of times, the control unit 31 returns the process to step S401 and repeats the processes of steps S401 to S404. On the other hand, when it is determined that the number of executions has reached the specified number of times, the control unit 31 ends a series of processes related to parameter adjustment based on the gradient of the error between the first estimated value and the second estimated value.
- control unit 31 may inquire the operator whether or not to repeat the process. In this case, the control unit 31 determines whether or not to repeat the process related to the parameter adjustment according to the response of the operator. When the operator replies that the process is repeated, the control unit 31 returns the process to step S401 and repeats the processes of steps S401 to S404. On the other hand, when the operator replies that the process is not repeated, the control unit 31 ends a series of processes related to parameter adjustment based on the gradient of the error between the first estimated value and the second estimated value.
- FIG. 21 is a flowchart showing an example of a processing procedure related to parameter adjustment of each estimation model (61, 62) by another method.
- the control device 3 executes the parameter adjustment process exemplified in FIG. 21 when the hand of the manipulator 4 comes into contact with an object. ..
- the end effector T does not hold the work W
- the end effector T is the hand of the manipulator 4
- the work W is an example of an object that the hand of the manipulator 4 comes into contact with.
- the work G is the hand of the manipulator 4
- the other work G is an example of an object with which the hand of the manipulator 4 comes into contact.
- the information processing related to the parameter adjustment of the method illustrated in FIG. 21 may be executed together with the information processing related to the operation control of the manipulator 4 or may be executed separately as described above.
- the processing procedure described below, including the processing procedure related to the above-mentioned operation control, is an example of the "control method" of the present invention. However, each processing procedure described below is only an example, and each step may be changed as much as possible. Further, for each processing procedure described below, steps can be omitted, replaced, and added as appropriate according to the embodiment.
- step S411 the control unit 31 operates as each data acquisition unit (311, 312) and acquires each sensing data (323, 324) from each sensor system.
- the process of step S411 is the same as the process of step S401.
- step S412 the control unit 31 operates as each estimation unit (313, 314), and uses each estimation model (61, 62) to obtain the current hand coordinates from each of the acquired sensing data (323, 324). Calculate each estimated value of.
- step S412 is the same as the process of step S402. After calculating each estimated value, the control unit 31 proceeds to the next step S413.
- step S413 the control unit 31 operates as the adjustment unit 319 to acquire the boundary value of the hand coordinates on the boundary surface of contact with the object.
- the method of acquiring the boundary value of the hand coordinates does not have to be particularly limited, and may be appropriately selected depending on the embodiment.
- the boundary value of the hand coordinates may be obtained by the operator's designation via the input device 35.
- the task state is defined by the relative coordinates between the hand of the manipulator 4 and the target object.
- the boundary value of the hand coordinates may be obtained by using the task space SP that expresses the set of the task states (relative coordinates).
- FIG. 22 schematically illustrates an example of a scene in which a boundary value is acquired on the boundary surface of contact in the task space SP.
- the control unit 31 inputs each estimated value of the hand coordinates calculated in step S412 into the inverse function of the conversion function ( ⁇ ), and executes the arithmetic processing of the inverse function to correspond to each estimated value.
- ⁇ the conversion function
- control unit 31 derives the boundary surface of contact in the task space SP.
- a trained determination model 50 may be used to derive the interface of contact.
- the control device 3 storage unit 32
- the control unit 31 may include the learned determination model 50 by holding the learning result data 125.
- the control unit 31 may obtain the derivation result of the boundary surface from the second model generation device 2 by inquiring to the second model generation device 2 via the network.
- the control unit 31 sets the node in the vicinity of at least one of the coordinates corresponding to the first estimated value (node Ne1) and the coordinates corresponding to the second estimated value (node Ne2) on the derived contact interface.
- Select Nb For example, the control unit 31 may select the node closest to both nodes (Ne1, Ne2) as the node Nb.
- the control unit 31 can calculate the boundary value of the hand coordinates by inputting the coordinates of the selected node Nb into the conversion function ( ⁇ ) and executing the arithmetic processing of the conversion function ( ⁇ ).
- the control unit 31 can acquire the boundary value of the hand coordinates.
- the control unit 31 proceeds to the next step S414.
- the method of acquiring the boundary value of the hand coordinates does not have to be limited to these examples.
- the control unit 31 may directly derive the contact boundary surface in the observation space.
- the control unit 31 may select a point in the vicinity of at least one of the coordinates of the first estimated value and the coordinates of the second estimated value on the derived contact interface. Then, the control unit 31 may acquire the coordinates of the selected point as a boundary value.
- step S414 the control unit 31 operates as the adjustment unit 319 to calculate the gradient of the first error between the first estimated value estimated at the time of contact and the acquired boundary value.
- the control unit 31 calculates the gradient of the second error between the second estimated value estimated at the time of contact and the acquired boundary value.
- the method of calculating each gradient may be the same as in step S403.
- step S415 the control unit 31 operates as the adjustment unit 319 and adjusts the parameter values of the first estimation model 61 so that the first error becomes smaller based on the calculated gradient of the first error. Further, the control unit 31 adjusts the value of the parameter of the second estimation model 62 so that the second error becomes smaller based on the calculated gradient of the second error.
- the method of adjusting the value of the parameter may be the same as in step S404.
- the control unit 31 ends a series of processes related to the parameter adjustment using the boundary value.
- FIG. 23 schematically illustrates an example of the relationship between the timing of operation control and the timing of parameter adjustment.
- the processing cycles of the first sensor system and the second sensor system in other words, the cycles of acquiring each sensing data (323, 324) are not always the same.
- information processing related to the operation control of the manipulator 4 may be executed at a timing when sensing data can be obtained from at least one of the first sensor system and the second sensor system.
- the control unit 31 may execute the parameter adjustment at a timing when both sensing data (323, 324) can be acquired.
- the processing cycle of the first sensor system composed of each encoder S2 and the tactile sensor S3 is shorter than the processing cycle of the second sensor system composed of the camera S1.
- the processing cycle of the first sensor system is 10 ms (milliseconds) and the processing cycle of the second sensor system is 30 ms.
- the second sensor system acquires the second sensing data 324 once, the first sensor system can acquire the first sensing data 323 three times.
- the control unit 31 uses the first estimated value of the current hand coordinates calculated from the first sensing data 323.
- the operation of the manipulator 4 may be controlled.
- the control unit 31 performs the first estimated value and the second estimated value of the current hand coordinates calculated respectively. At least one of the values may be used to control the operation of the manipulator 4. Further, at this timing, the control unit 31 may execute the information processing of the parameter adjustment shown in FIG. 20 above.
- the control unit 31 stops the operation control of the manipulator 4, and both sensing data (323, 324) from the first sensor system and the second sensor system. You may wait until the timing when can be acquired. Then, the control unit 31 may execute the information processing of the parameter adjustment shown in FIG. 21 at the timing when both sensing data (323 and 324) can be acquired. In addition, the control unit 31 may also execute information processing of the parameter adjustment shown in FIG. 20 above.
- step S401 may be executed as a process common to step S411
- step S402 may be executed as a process common to step S412. As a result, the operation of the manipulator 4 can be controlled, and the value of the parameter of each estimation model (61, 62) can be adjusted at an appropriate timing.
- each sensing data (323, 324) obtained by each sensor system is assumed to be white noise. Therefore, noise contained in the sensing data can be removed or reduced by acquiring the sensing data for at least any predetermined time and averaging the obtained sensing data. In this averaged sensing data, each estimated value by each estimated model (61, 62) approaches the true value depending on whether or not a component related to each estimated value by each estimated model (61, 62) is included. Whether or not it can be evaluated.
- the control unit 31 plots each estimated value on the depth map, and compares the coordinates corresponding to each estimated value with the coordinates of the hand of the manipulator 4 on the depth map. As a result of this comparison, when the coordinates of each other match (or are close to each other), the control unit 31 evaluates that each estimated value by each estimated model (61, 62) is close to the true value. be able to. On the other hand, when the coordinates deviate from each other, there is a possibility that each estimated value by each estimated model (61, 62) does not approach the true value. In this case, the control unit 31 may repeat the parameter adjustment by at least one of the methods of FIGS. 20 and 21 until it can be evaluated that each of the estimated values is close to the true value.
- step S404 the values of at least one of the parameters of the first estimation model 61 and the second estimation model 62 are set so that the estimation results (estimated values) of each other approach one value. adjust. Further, when the hand of the manipulator 4 comes into contact with the object, in step S415, the value of the parameter of each estimation model (61, 62) is adjusted so that each estimated value approaches the boundary value of the contact. By these adjustments, it can be expected that the estimation accuracy of the hand coordinates by each estimation model (61, 62) will be improved.
- step S415 since there is a physical constraint of contact with an object, the parameter values of each estimation model (61, 62) can be adjusted based on highly accurate information (boundary values). , It is possible to improve the estimation accuracy of the hand coordinates by each estimation model (61, 62). Therefore, according to the present embodiment, it is possible to improve the accuracy of controlling the hand coordinates of the manipulator 4.
- the first estimated value of the current hand coordinates of the manipulator 4 can be calculated by forward kinematics calculation.
- the end effector T does not hold the work W
- the end effector T is set to the hand, and the forward kinematics calculation is derived from the first linear transformation matrix of each joint (joint parts 41 to 46).
- One transformation matrix group ( ⁇ ) is used as a transformation function.
- the end effector T holds the work W
- the work W is set at the hand and the conversion function used for the forward kinematics calculation is extended.
- the second linear transformation matrix (t T w ) for converting the coordinates from the coordinate system of the end effector T to the coordinate system of the work W is used as the first transformation matrix group ( ⁇ ).
- the second transformation matrix group ( ⁇ (q) ⁇ t T w ) obtained by multiplying by) is used as the transformation function. That is, in the present embodiment, when the work W is held by the end effector T, the reference point of kinematics is changed from the end effector T to the work W.
- the forward kinematics calculation in steps S307 and S316 and the inverse kinematics calculation in step S311 are performed in substantially the same manner when the end effector T does not hold the work W and when the work W is held.
- the control process can be simplified, and thereby the cost of generating or teaching the operation of the manipulator 4 can be reduced.
- the cost of holding the work W by the end effector T and generating or teaching a series of operations for assembling the held work W to another work G can be reduced.
- the state of the task executed by the manipulator 4 is expressed by the relative positional relationship between objects such as the end effector T (end effector), the work W, and the other work G.
- the control command is not directly associated with the task, but is associated with the amount of change in the relative positional relationship between the objects. That is, it is possible to generate or teach a time-series control command given to the manipulator 4 for changing the relative positional relationship of the object without depending on the content of the task. For example, even if the coordinates of the work W change, in steps S306 and S315, when the positional relationship (task state) between the end effector T and the work W is grasped, the change in the coordinates of the work W changes. Will be considered.
- the manipulator 4 can appropriately hold the work W by the end effector T based on the learning result. Therefore, according to the present embodiment, the versatility of the ability to perform the task to be acquired can be increased, and thereby the cost for teaching the task to the manipulator 4 can be reduced.
- the positional relationship between the objects is expressed by relative coordinates. Therefore, the positional relationship between the two objects can be appropriately and simply expressed. Therefore, it is possible to easily grasp the positional relationship between the two objects (task state in the control scene).
- the first model generation device 1 determines whether or not two objects come into contact with each other in the positional relationship of the objects by performing machine learning by the processes of steps S101 and S102.
- a determination model 50 is generated. According to the trained determination model 50 generated by machine learning, even if the positional relationship of the objects is given as a continuous value, the two objects in the positional relationship do not accompany a large increase in the amount of data of the determination model 50. It is possible to determine whether or not objects come into contact with each other. Therefore, according to the present embodiment, the amount of information data representing the boundary where the two objects come into contact with each other can be significantly reduced.
- FIG. 24 schematically illustrates an example of a form in which a value indicating whether or not two objects are in contact with each other is held for each coordinate point.
- White circles indicate that the two objects do not touch each other in the positional relationship corresponding to the coordinates
- black circles indicate that the two objects contact each other in the positional relationship corresponding to the coordinates.
- each coordinate point is represented by two dimensions, but in the above-mentioned six-dimensional relative coordinate space, each coordinate point is represented by six dimensions.
- the resolution of the space is increased, the amount of data will increase on the order of the sixth power. For example, if the coordinate points are set at a resolution that can be used for operation in real space, the amount of data of the information can easily be in gigabytes.
- the learned determination model 50 holds information indicating whether or not the two objects come into contact with each other in the positional relationship of the objects.
- the number of the calculated calculation parameters of the learned determination model 50 may depend on the number of dimensions of the relative coordinates, continuous values can be handled without increasing the number of the calculated parameters. Therefore, for example, when the determination model 50 is configured by a neural network having a three-layer structure as described later, the amount of data of the learned determination model 50 can be suppressed to about several megabytes. Therefore, according to the present embodiment, the amount of information data representing the boundary where the two objects come into contact with each other can be significantly reduced.
- the hand and the target of the manipulator 4 are two objects for determining whether or not contact occurs by the learned determination model 50. Therefore, in the scene of defining the operation of the manipulator 4, the amount of information data representing the boundary where the two objects come into contact with each other can be significantly reduced.
- the trained determination model 50 can be used, whereby the hand touches the target object unnecessarily.
- An inference model 55 for determining the target task state can be generated so as not to.
- the second model generation device 2 uses the learned determination model 50 by the processing of steps S201 to S210 to prevent the first object from coming into contact with the second object.
- the control device 3 according to the present embodiment determines the target task state by using the generated inference model 55 in step S308.
- the first object does not come into contact with the second object even without the arithmetic processing of the learned determination model 50, that is, the hand of the manipulator 4 is the target object.
- the target task state can be determined so as not to make unnecessary contact with. Therefore, the calculation cost of the operation control of the manipulator 4 can be reduced.
- the end effector T, the work W, and the other work G are examples of objects.
- another work G is an example of an object to which the work W is assembled.
- the work W is an example of an object with which the hand of the manipulator 4 comes into contact
- another work G This is an example of an object that the hand of the manipulator 4 comes into contact with.
- the object may include any kind of object that can be handled in real space or virtual space.
- the object may be an object that can be related to the operation of a manipulator such as an obstacle, in addition to the end effector T, the work W, and the other work G.
- one object may be composed of one object, or may be composed of a plurality of objects.
- the determination model 50 is configured to consider the plurality of objects as one object and determine whether or not contact occurs between the plurality of objects and another object. You may. Alternatively, the determination model 50 may be configured to consider each object as one object and determine whether or not contact occurs between the objects.
- At least one of the two objects is an object that is moved by the operation of the manipulator.
- the object that moves by the operation of the manipulator may be, for example, a component of the manipulator such as an end effector, the manipulator itself, or, for example, the configuration of the manipulator such as a workpiece held by the end effector. It may be an object other than an element. However, the type of object does not have to be limited to such an example. Both of the two objects may be objects other than the object that is moved by the operation of the manipulator.
- the manipulator 4 is a vertical articulated robot.
- the type of the manipulator 4 is not particularly limited as long as it has one or more joints. It may be appropriately selected depending on the embodiment. In other cases, the manipulator 4 may include components other than joints.
- the manipulator 4 may include a SCARA robot, a parallel link robot, a Cartesian robot, a cooperative robot, and the like, in addition to the vertical articulated robot.
- the control command is composed of a command value for the angle of each joint.
- the configuration of the control command does not have to be limited to such an example, and may be appropriately determined according to the type of the manipulator 4.
- the work of holding the work W by the end effector T and the work of assembling the held work W to another work G are examples of tasks performed by the manipulator.
- the type of the task is not particularly limited as long as it involves the movement of the manipulator's hand at least as part of the process, and may be appropriately selected depending on the embodiment.
- the task may be, for example, fitting parts, screwing, etc., in addition to holding the work W and transporting the work W.
- the task may be, for example, a simple task such as holding a work or releasing a work.
- the task may be, for example, to change the coordinates of the target work, such as holding the target work and arranging the target work at designated coordinates (position and posture).
- the task may be, for example, to use a spray as an end effector and spray paint onto the workpiece with the spray from specified relative coordinates.
- the task may also be, for example, to position the camera attached to the end effector at designated coordinates.
- the task may be given in advance or may be given by the operator's designation.
- the first sensor system is composed of each encoder S2 and a tactile sensor S3.
- the second sensor system is composed of the camera S1.
- the type of sensor used in each sensor system is not limited to such an example, and is appropriately selected according to the embodiment. You can. At least a part of the sensors may be commonly used between the first sensor system and the second sensor system.
- an encoder, and a tactile sensor for example, a proximity sensor, a force sensor, a torque sensor, a pressure sensor, or the like may be used.
- the proximity sensor is arranged in an observable range around the end effector T and may be used for observing the presence or absence of an object in the vicinity of the end effector T. Further, the force sensor, the torque sensor, and the pressure sensor are arranged in a measurable range for the force acting on the end effector T, and are used for observing the force acting on the end effector T, similarly to the tactile sensor S3. May be done. At least one of a proximity sensor, a force sensor, a torque sensor, and a pressure sensor may be used as a sensor for observing the state of the work W with respect to the end effector T.
- the camera S1 may be arbitrarily movable by the manipulator 4 or another robot device. In this case, the coordinates of the camera S1 may be calibrated as appropriate. Thereby, the range observed by the camera S1 can be arbitrarily controlled.
- the tactile sensor S3 may be omitted from the first sensor system.
- a sensor other than the tactile sensor S3 for example, the camera S1 may be used for estimating the second linear transformation matrix (t T w).
- the first sensor system may include another sensor for observing the state of the work W with respect to the end effector T.
- the second linear transformation matrix ( t T w ) may be given as a constant.
- the setting of the hand of the manipulator 4 depending on whether or not the work W is held may be omitted. In this case, the hand of the manipulator 4 may be set as appropriate. For example, the end effector T may be set on the hand of the manipulator 4 regardless of whether or not the work W is held.
- the trained determination model 50 is used when the inference model 55 is generated in the second model generation device 2.
- the usage pattern of the trained determination model 50 does not have to be limited to such an example.
- the control device 3 controls the operation of the manipulator 4
- the learned determination model 50 may be used.
- the learning result data 125 may be provided to the control device 3 at an arbitrary timing in the same manner as described above.
- the control device 3 is configured to further include a contact determination unit as a software module.
- FIG. 25 illustrates an example of the processing procedure of the subroutine related to the determination of the task state of the target according to this modified example.
- the process of determining the target task state in step S308 may be replaced with the process of the subroutine illustrated in FIG.
- step S501 the control unit 31 operates as the action determination unit 316 and determines the target task state to be transitioned to next with respect to the acquired current task state so as to approach the final target task state.
- Step S501 may be processed in the same manner as in step S308.
- step S502 the control unit 31 operates as a contact determination unit, and uses the learned determination model 50 to determine whether or not two objects come into contact with each other in the determined target task state. .. Step S502 may be processed in the same manner as in steps S203 and S206.
- step S503 the control unit 31 determines the branch destination of the process based on the determination result of step S502. If it is determined in step S502 that the two objects come into contact with each other in the target task state, the control unit 31 returns the process to step S501 and redetermines the target task state. On the other hand, when it is determined that the two objects do not come into contact with each other in the target task state, the control unit 31 executes the process of the next step S309. As a result, when controlling the operation of the manipulator 4, the control device 3 uses the learned determination model 50 to determine the operation of the manipulator 4 so that the hand of the manipulator 4 does not unnecessarily touch the target object. can do.
- the control device 3 uses the inference model 55 to determine the target task state in step S308.
- the inference model 55 may not be used to determine the task state of the target.
- the target task state may be determined in the same manner as in step S205.
- the control unit 31 may determine the target task state by a known method such as path planning. Further, for example, a series of target task states may be given in advance. In this case, in step S308, the control unit 31 may determine the task state of the target to be transitioned to next by referring to the data indicating the series. The same applies to step S501.
- the generation of the inference model 55 may be omitted.
- the control device 3 may include each configuration of the second model generation device 2.
- the control device 3 may be configured to further execute a series of processes (steps S201 to S211) for generating the inference model 55.
- the second model generator 2 may be omitted from the control system 100.
- the determination result of the learned determination model 50 is used to collect the learning data 223.
- the collection of learning data 223 does not have to be limited to such examples.
- the learning data 223 may be collected without using the learned determination model 50 by using the actual object of each object.
- the inference model 55 may be generated without using the trained determination model 50.
- the process related to the collection of the learning data 223 from step S201 to step S209 may be performed by another computer.
- the second model generation device 2 acquires the learning data 223 generated by another computer, and executes the steps S210 and S211 using the acquired learning data 223. May be good.
- the positional relationship between the two objects is expressed by relative coordinates.
- the method of expressing the positional relationship does not have to be limited to such an example.
- the positional relationship may be expressed by the absolute coordinates of each of the two objects.
- each absolute coordinate may be converted into a relative coordinate and the above information processing may be executed.
- control device 3 calculates the target value of the hand coordinates from the task state of the target in step S309.
- the method of obtaining the target value of the hand coordinates does not have to be limited to such an example.
- the target value of the hand coordinates may be appropriately determined so as to approach the task state of the final target.
- the target value of the hand coordinate may be directly determined from the current value of the hand coordinate and the value of the hand coordinate in the task state of the final target.
- reference data such as a data table may be used to determine the target value of the hand coordinates.
- the control unit 31 can acquire the target value of the hand coordinate from the reference data by collating the current value of the hand coordinate and the value of the hand coordinate in the task state of the final target with the reference data.
- the control unit 31 determines the target value of the hand coordinate so as to reach the value of the hand coordinate in the task state of the final target in the shortest distance from the current value of the hand coordinate by the nearest neighbor method or the like. You may.
- the control unit 31 gives the current value of the hand coordinate and the value of the hand coordinate in the task state of the final target to the trained machine learning model, and executes the arithmetic processing of the trained machine learning model. As a result, the control unit 31 can acquire an output value corresponding to the result of determining the target value of the hand coordinates from the trained machine learning model.
- step S306, step S308, step S309, and step S315 may be omitted from the processing procedure of the control device 3. Further, the state acquisition unit 315 and the action determination unit 316 may be omitted from the software configuration of the control device 3.
- step S301 and step S301 are performed from the processing procedure of the control device 3.
- the process of step S302 may be omitted.
- the target setting unit 310 may be omitted from the software configuration of the control device 3.
- the first model generator 1 may be omitted from the control system 100.
- a form may be adopted in which information indicating whether or not the two objects are in contact with each other is held by a method other than the learned determination model 50.
- a form may be adopted in which a value indicating whether or not two objects are in contact with each other is held for each coordinate point.
- the determination model 50 is composed of a fully connected neural network.
- the type of neural network constituting the determination model 50 does not have to be limited to such an example.
- the determination model 50 may be configured by, for example, a convolutional neural network, a recursive neural network, or the like, in addition to the fully connected neural network. Further, the determination model 50 may be configured by combining a plurality of types of neural networks.
- the type of the machine learning model constituting the determination model 50 is not limited to the neural network, and may be appropriately selected according to the embodiment.
- a machine learning model such as a support vector machine, a regression model, or a decision tree may be adopted as the determination model 50. Whether or not two objects come into contact with each other may be determined for the real space or the virtual space.
- the inference model 55 may be prepared for each type of task to be performed by the manipulator 4. That is, a plurality of inference models 55 trained to infer the target task state in different tasks may be prepared.
- the control unit 31 of the control device 3 may select the inference model 55 to be used for inference from the plurality of prepared inference models 55 according to the operation mode set in step S305. As a result, the control unit 31 may switch the inference model 55 according to the operation mode.
- the inference model 55 further accepts input of information indicating a task condition such as an object type, an object identifier, a task identifier, and a task type, and a goal in the task corresponding to the input condition.
- control unit 31 when determining the task state of the target to be transitioned next, the control unit 31 further inputs the information indicating the operation mode set in step S305 into the inference model 55, and performs the arithmetic processing in step S308. You may do it.
- the input and output formats for the determination model 50 and the inference model 55 are not particularly limited and may be appropriately determined according to the embodiment.
- the determination model 50 may be configured to further accept input of information other than the information indicating the task state.
- the inference model 55 may be configured to further accept input of information other than the current task state and the final goal task state.
- the information indicating the task state of the final goal may be omitted from the input of the inference model 55.
- the output format of the determination model 50 and the inference model 55 may be either identification or regression.
- the transformation function (first transformation matrix group or second transformation matrix group) used for the forward kinematics calculation is an example of the first estimation model 61.
- the conversion function ( ⁇ ) or each coordinate (T t , T w ) that converts the value in the task space into the value in the observation space is an example of the second estimation model 62.
- the configuration of each estimation model (61, 62) does not have to be limited to such an example.
- Each estimation model (61, 62) may be appropriately configured so that the hand coordinates of the manipulator 4 can be calculated from each sensing data (323, 324).
- Each estimation model (61, 62) includes parameters for calculating hand coordinates from each sensing data (323, 324).
- the type of each estimation model (61, 62) does not have to be particularly limited, and may be appropriately selected depending on the embodiment.
- Each estimation model (61, 62) may be represented by, for example, a function expression, a data table, or the like. When expressed by a functional expression, each estimation model (61, 62) may be composed of a machine learning model such as a neural network, a support vector machine, a regression model, or a decision tree.
- the control device 3 is configured to be capable of executing information processing for parameter adjustment in both FIGS. 20 and 21.
- the configuration of the control device 3 does not have to be limited to such an example.
- the control device 3 may be configured to execute only one of FIGS. 20 and 21.
- the control device 3 omits the execution of the information processing related to the parameter adjustment shown in FIG. 20, and executes the information processing related to the parameter adjustment shown in FIG. 21 when the hand of the manipulator 4 comes into contact with the object. It may be configured in.
- model generation program 211 ... contact judgment unit, 212 ... data collection unit, 213 ... Model generation unit, 214 ... Preservation processing unit, 220 ... CAD data, 223 ... learning data, 225 ... Inference model data, 3 ... Control device, 31 ... Control unit, 32 ... Storage unit, 33 ... Communication interface, 34 ... External interface, 35 ... Input device, 36 ... Output device, 37 ... Drive, 93 ... storage medium, 83 ... control program, 310 ... Target setting unit, 311 ... First data acquisition unit, 312 ... 2nd data acquisition unit, 313 ... 1st estimation unit, 314 ... Second estimation unit, 315 ... State acquisition unit, 316 ... Action decision department, 317 ...
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Orthopedic Medicine & Surgery (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Manipulator (AREA)
Abstract
マニピュレータの手先の座標を制御する精度の向上を図るための技術を提供する。本発明の一側面に係る制御装置は、第1推定モデルを利用して、第1センサ系により取得された第1センシングデータからマニピュレータの手先座標の第1推定値を算出し、第2推定モデルを利用して、第2センサ系により取得された第2センシングデータからマニピュレータの手先座標の第2推定値を算出し、第1推定値及び第2推定値の間の誤差の勾配に基づいて、当該誤差が小さくなるように第1推定モデル及び第2推定モデルの少なくとも一方のパラメータの値を調整する。
Description
本発明は、制御装置、制御方法、及び制御プログラムに関する。
製品を生産する生産ラインでは、様々なタイプのマニピュレータが利用されている。マニピュレータの機構、エンドエフェクタ、ワーク等の構成要素は、遂行するタスク等に応じて多くのバリエーションを有しており、それらすべてに対応したマニピュレータの動作手順を人手で作成して、マニピュレータに対象のタスクを教示するのは困難である。そのため、従来、機構、エンドエフェクタ、ワーク等の構成要素の種類を決定した後、マニピュレータを人手で動かして、実行させる一連の動作における姿勢をレコードしながら、遂行するタスクを直接的にティーチングする方法が採用されている。
しかしながら、この方法では、機構、エンドエフェクタ、ワーク等の構成要素が変更される度に、遂行するタスクをマニピュレータに教示することになる。したがって、遂行するタスクをマニピュレータに教示するのにあまりにコストがかかってしまう。そこで、近年、遂行するタスクをマニピュレータに習得させる方法の効率化が研究されている。例えば、特許文献1では、シール等の柔軟物を把持しているハンドの移動速度を、ハンド及び柔軟物の間の相対速度に基づいて決定する制御方法が提案されている。この制御方法によれば、ハンドの移動する動作の作り込み又は教示する作業の少なくとも一部を自動化することができる。そのため、マニピュレータの動作を生成又は教示するコストを低減することができる。
本件発明者らは、上記のようなマニピュレータの従来の制御方法には、次のような問題点があることを見出した。すなわち、従来の制御方法では、マニピュレータの手先をセンサにより観測し、センサにより得られたセンシングデータからマニピュレータの手先の座標を推定する。この推定の結果に基づいて、マニピュレータの手先の座標を制御する。
マニピュレータの手先の座標を推定する方法の一例として、順運動学計算による方法が存在する。この方法では、各関節の角度を測定するエンコーダがセンサの一例である。エンコーダにより得られる各関節の角度の測定値からマニピュレータの手先の座標の推定値を解析的に算出することができる。
また、その他の方法として、画像解析による方法が存在する。この方法では、マニピュレータの手先を含むタスクの環境を撮影するカメラがセンサの一例である。カメラにより得られる画像データに対して画像解析を実行することで、マニピュレータの手先の座標を推定することができる。画像解析の方法は、パターンマッチング等の公知の方法が採用されてよい。
いずれの方法でも、センサにより得られるセンシングデータからマニピュレータの手先の座標を推定することができる。しかしながら、センサから得られるセンシングデータにはノイズが含まれる場合がある。また、解析の過程でも、例えば、パターンマッチングの許容誤差等のノイズが含まれる場合がある。これらの環境に依存して生じるノイズに起因して、マニピュレータの手先の座標の推定値と真値との間の誤差が大きくなり、これによって、マニピュレータの手先の座標を制御する精度が悪化してしまう可能性があった。
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、マニピュレータの手先の座標を制御する精度の向上を図るための技術を提供することである。
本発明は、上述した課題を解決するために、以下の構成を採用する。
すなわち、本発明の一側面に係る制御装置は、マニピュレータの動作を制御するための制御装置であって、前記マニピュレータの手先を観測する第1センサ系から第1センシングデータを取得する第1データ取得部と、第1推定モデルを利用して、取得された前記第1センシングデータから、観測空間内における前記手先の現在の座標の第1推定値を算出する第1推定部と、前記マニピュレータの手先を観測する第2センサ系から第2センシングデータを取得する第2データ取得部と、第2推定モデルを利用して、取得された前記第2センシングデータから、前記観測空間内における前記手先の現在の座標の第2推定値を算出する第2推定部と、前記第1推定値及び前記第2推定値の間の誤差の勾配を算出し、算出された勾配に基づいて、前記誤差が小さくなるように前記第1推定モデル及び前記第2推定モデルの少なくとも一方のパラメータの値を調整する調整部と、前記第1推定値及び前記第2推定値の少なくとも一方に基づいて、前記手先の座標が目標値に近付くように、前記マニピュレータに与える制御指令を決定する指令決定部と、決定された前記制御指令を前記マニピュレータに与えることで、前記マニピュレータを駆動する駆動部と、を備える。
当該構成に係る制御装置では、第1センサ系及び第2センサ系の2つの経路からマニピュレータの手先の座標を推定する。すなわち、当該構成に係る制御装置は、第1推定モデルを利用して、第1センサ系により得られた第1センシングデータからマニピュレータの手先の座標の第1推定値を算出する。また、当該構成に係る制御装置は、第2推定モデルを利用して、第2センサ系により得られた第2センシングデータからマニピュレータの手先の座標の第2推定値を算出する。
マニピュレータの手先の座標の真値は一つである。各センサ系からの算出過程にノイズがなければ、第1推定値と第2推定値とは一致する。これに対して、各センサ系に応じたノイズが生じることで、第1推定値と第2推定値とは互いに異なり得る。そこで、得られた第1推定値及び第2推定値の間の誤差の勾配を算出し、算出された勾配に基づいて、誤差が小さくなるように第1推定モデル及び第2推定モデルの少なくとも一方のパラメータの値を調整する。この調整により、互いの推定結果(推定値)が一つの値に近付くことから、各推定モデルによる手先の座標の推定精度の改善を期待することができる。
調整後に各推定モデルによる推定値が真値に近付いているか否かは適宜評価可能である。一例として、各センサ系により得られるセンシングデータに含まれ得るノイズはホワイトノイズと想定される。そのため、所定時間分のセンシングデータを取得し、得られたセンシングデータを平均化することにより、センシングデータに含まれるノイズを除去又は低減することができる。この平均化されたセンシングデータにおいて、各推定モデルによる推定値に関する成分が含まれているか否かにより、各推定モデルによる推定値が真値に近付いているか否かを評価することができる。したがって、当該構成によれば、各推定モデルによる手先の座標の推定精度を改善し、これによって、マニピュレータの手先の座標を制御する精度の向上を図ることができる。
なお、マニピュレータの種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。マニピュレータは、例えば、垂直多関節ロボット、スカラロボット、パラレルリンクロボット、直交ロボット、協調ロボット等を含んでよい。各センサ系は、1つ以上のセンサを備え、マニピュレータの手先を観測可能であれば、その構成は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各センサ系には、例えば、カメラ、エンコーダ、触覚センサ、力覚センサ、近接センサ、トルクセンサ、圧力センサ等が用いられてよい。各推定モデルは、センシングデータから手先座標を算出するためのパラメータを備える。各推定モデルの種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各推定モデルは、例えば、関数式、データテーブル等により表現されてよい。関数式により表現される場合、各推定モデルは、ニューラルネットワーク、サポートベクタマシン、回帰モデル、決定木等の機械学習モデルにより構成されてよい。
上記一側面に係る制御装置において、前記調整部は、更に、前記マニピュレータの手先が対象物に接触した時に、当該対象物との接触の境界面上で前記手先の座標の境界値を取得し、前記接触時に推定される前記第1推定値及び取得された前記境界値の間の第1誤差の勾配を算出し、算出された前記第1誤差の勾配に基づいて、前記第1誤差が小さくなるように前記第1推定モデルのパラメータの値を調整し、かつ前記接触時に推定される前記第2推定値及び取得された前記境界値の間の第2誤差の勾配を算出し、算出された前記第2誤差の勾配に基づいて、前記第2誤差が小さくなるように前記第2推定モデルのパラメータの値を調整してもよい。
対象物と接触するという物理的制約を伴うため、対象物との接触時に境界面上から得られる境界値は、マニピュレータの手先の座標の真値として確度の高い値である。当該構成では、この確度の高い値に基づいて、各推定モデルのパラメータの値を調整することで、各推定モデルによる手先の座標の推定精度を高めることができる。したがって、当該構成によれば、マニピュレータの手先の座標を制御する精度の向上を図ることができる。
なお、境界値を得る方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、オペレータの指定により境界値が得られてよい。また、例えば、マニピュレータの手先と対象物との接触する境界面上において、第1推定値及び第2推定値の少なくとも一方に近傍の点から境界値が選択されてよい。一例として、第1推定値及び第2推定値の少なくとも一方に最近傍の点が境界値を与える点として採用されてよい。対象物の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。対象物は、例えば、ワーク、ワークの組付け先となる対象物(例えば、他のワーク)、障害物等であってよい。
上記一側面に係る制御装置において、前記マニピュレータは、1つ以上の関節を備えてよい。前記第1センサ系は、前記各関節の角度を測定するエンコーダを備えてよい。前記第2センサ系は、カメラを備えてよい。当該構成によれば、エンコーダ及びカメラによりマニピュレータの手先を観測する場面で、マニピュレータの手先の座標を制御する精度の向上を図ることができる。
上記一側面に係る制御装置において、前記マニピュレータは、ワークを保持するためのエンドエフェクタを更に備えてもよい。前記エンドエフェクタが前記ワークを保持していない場合、前記エンドエフェクタの注目点が前記手先に設定されてよい。前記エンドエフェクタが前記ワークを保持している場合、前記ワークの注目点が前記手先に設定されてよい。前記第1センサ系は、前記エンドエフェクタに対する前記ワークの位置関係を推定するための触覚センサを更に備えてもよい。
当該構成によれば、エンドエフェクタがワークを保持しているか否かに応じて、マニピュレータの手先を変更する場面で、マニピュレータの手先の座標を制御する精度の向上を図ることができる。また、このマニピュレータの手先の設定により、エンドエフェクタがワークを保持していない場合の移動及び保持している場合の移動それぞれを、マニピュレータの手先を移動する共通のタスクとして捉えることができる。したがって、マニピュレータの制御処理を単純化することができ、これによって、マニピュレータの動作を生成又は教示するコストを低減することができる。
なお、エンドエフェクタ及びワークの種類は、特に限定されなくてもよく、タスクの種類等に応じて適宜選択されてよい。タスクは、少なくとも工程の一部にマニピュレータの手先の移動を伴うものであれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。マニピュレータに遂行させるタスクは、例えば、エンドエフェクタによりワークを保持し、保持したワークを他のワークに組み付けることであってよい。この場合、エンドエフェクタは、例えば、グリッパ、吸引器、ドライバ等であってよい。ワークは、例えば、コネクタ、ペグ等であってよい。他のワークは、例えば、ソケット、ホール等であってよい。タスクの遂行は、実空間又は仮想空間内で実行されてよい。
上記各形態に係る制御装置の別の態様として、本発明の一側面は、以上の制御装置の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータ等が読み取り可能な記憶媒体であってもよい。コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
例えば、本発明の一側面に係る制御方法は、マニピュレータの動作を制御するための情報処理方法であって、コンピュータが、前記マニピュレータの手先を観測する第1センサ系から第1センシングデータを取得するステップと、第1推定モデルを利用して、取得された前記第1センシングデータから、観測空間内における前記手先の現在の座標の第1推定値を算出するステップと、前記マニピュレータの手先を観測する第2センサ系から第2センシングデータを取得するステップと、第2推定モデルを利用して、取得された前記第2センシングデータから、前記観測空間内における前記手先の現在の座標の第2推定値を算出するステップと、前記第1推定値及び前記第2推定値の間の誤差の勾配を算出するステップと、算出された勾配に基づいて、前記誤差が小さくなるように前記第1推定モデル及び前記第2推定モデルの少なくとも一方のパラメータの値を調整するステップと、前記第1推定値及び前記第2推定値の少なくとも一方に基づいて、前記手先の座標が目標値に近付くように、前記マニピュレータに与える制御指令を決定するステップと、決定された前記制御指令を前記マニピュレータに与えることで、前記マニピュレータを駆動するステップと、を実行する、情報処理方法である。
また、例えば、本発明の一側面に係る制御プログラムは、マニピュレータの動作を制御するためのプログラムであって、コンピュータに、前記マニピュレータの手先を観測する第1センサ系から第1センシングデータを取得するステップと、第1推定モデルを利用して、取得された前記第1センシングデータから、観測空間内における前記手先の現在の座標の第1推定値を算出するステップと、前記マニピュレータの手先を観測する第2センサ系から第2センシングデータを取得するステップと、第2推定モデルを利用して、取得された前記第2センシングデータから、前記観測空間内における前記手先の現在の座標の第2推定値を算出するステップと、前記第1推定値及び前記第2推定値の間の誤差の勾配を算出するステップと、算出された勾配に基づいて、前記誤差が小さくなるように前記第1推定モデル及び前記第2推定モデルの少なくとも一方のパラメータの値を調整するステップと、前記第1推定値及び前記第2推定値の少なくとも一方に基づいて、前記手先の座標が目標値に近付くように、前記マニピュレータに与える制御指令を決定するステップと、決定された前記制御指令を前記マニピュレータに与えることで、前記マニピュレータを駆動するステップと、を実行させるための、プログラムである。
本発明によれば、マニピュレータの手先の座標を制御する精度の向上を図ることができる。
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
§1 適用例
まず、図1を用いて、本発明が適用される場面の一例について説明する。図1は、本発明の適用場面の一例を模式的に例示する。図1に示されるとおり、本実施形態に係る制御システム100は、第1モデル生成装置1、第2モデル生成装置2、及び制御装置3を備えている。第1モデル生成装置1、第2モデル生成装置2、及び制御装置3は、ネットワークを介して互いに接続されてよい。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
まず、図1を用いて、本発明が適用される場面の一例について説明する。図1は、本発明の適用場面の一例を模式的に例示する。図1に示されるとおり、本実施形態に係る制御システム100は、第1モデル生成装置1、第2モデル生成装置2、及び制御装置3を備えている。第1モデル生成装置1、第2モデル生成装置2、及び制御装置3は、ネットワークを介して互いに接続されてよい。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
<第1モデル生成装置>
本実施形態に係る第1モデル生成装置1は、対象の位置関係において2つの対象物が互いに接触するか否かを判定するための判定モデル50を生成するように構成されたコンピュータである。具体的には、本実施形態に係る第1モデル生成装置1は、2つの対象物の間の位置関係を示す訓練データ122及び当該位置関係において2つの対象物が互いに接触するか否かを示す正解データ123の組み合わせによりそれぞれ構成される複数の学習データセット121を取得する。
本実施形態に係る第1モデル生成装置1は、対象の位置関係において2つの対象物が互いに接触するか否かを判定するための判定モデル50を生成するように構成されたコンピュータである。具体的には、本実施形態に係る第1モデル生成装置1は、2つの対象物の間の位置関係を示す訓練データ122及び当該位置関係において2つの対象物が互いに接触するか否かを示す正解データ123の組み合わせによりそれぞれ構成される複数の学習データセット121を取得する。
本実施形態では、2つの対象物の間の位置関係は、相対座標により表現される。相対座標は、一方の対象物から他方の対象物を見たときの座標である。2つの対象物のうちのいずれを相対座標の基準に選択してよい。「座標」は、位置及び姿勢の少なくとも一方を含んでよい。3次元空間上では、位置は、前後、左右、及び上下の3つの軸により表現されてよく、姿勢は、各軸の回転(ロール、ピッチ、ヨー)で表現されてよい。本実施形態では、相対座標は、3次元の相対位置及び3次元の相対姿勢の6次元で表現されてよい。なお、相対座標の次元数は、6次元に限られなくてよく、適宜削減されてよい。
そして、本実施形態に係る第1モデル生成装置1は、取得された複数の学習データセット121を使用して、判定モデル50の機械学習を実施する。機械学習を実施することは、各学習データセット121について、訓練データ122の入力に対して、対応する正解データ123に適合する出力値を出力するように判定モデル50を訓練することにより構成される。この機械学習により、対象の位置関係において2つの対象物が互いに接触するか否かを判定する能力を習得した学習済みの判定モデル50を構築することができる。
本実施形態では、学習済みの判定モデル50は、エンドエフェクタTを備えるマニピュレータ4、ワークW、及び他のワークGが存在する空間で、ワークW及びエンドエフェクタTの間で接触が生じるか否か、並びにワークW及び他のワークGの間で接触が生じるか否かを判定するのに利用される。エンドエフェクタT、ワークW、及び他のワークGは、「対象物」の一例である。エンドエフェクタT、ワークW、及び他のワークGの種類はそれぞれ、特に限定されなくてもよく、タスクに応じて適宜選択されてよい。エンドエフェクタTは、例えば、グリッパ、吸引器、ドライバ等であってよい。ワークWは、例えば、コネクタ、ペグ等であってよい。他のワークGは、例えば、ソケット、ホール等であってよい。他のワークGは、ワークWの組付け先の対象物の一例である。エンドエフェクタTによりワークWを保持することは、例えば、グリッパによりワークを把持すること、吸引器によりワークを吸引保持すること、ドライバの先端にワークを保持すること等であってよい。
より詳細には、本実施形態に係るマニピュレータ4は、一例として、エンドエフェクタTによりワークWを保持し、保持したワークWを他のワークGに組み付けるタスクを遂行する。このタスクは、エンドエフェクタTによりワークWを保持する第1タスク及び保持されたワークWを他のワークGに運搬する第2タスクの2つに分けることができる。エンドエフェクタTを移動させて、ワークWを保持する第1タスクを遂行する場面で、学習済みの判定モデル50は、ワークW及びエンドエフェクタTの間で無用な接触が生じるか否かを判定するのに利用される。また、ワークWを保持した後、エンドエフェクタTを移動させて、保持されたワークWを他のワークGに運搬する第2タスクを遂行する場面で、学習済みの判定モデル50は、ワークW及び他のワークGの間で無用な接触が生じるか否かを判定するのに利用される。
つまり、本実施形態では、学習済みの判定モデル50により接触が生じるか否かを判定する2つの対象物のうちの少なくともいずれかは、マニピュレータ4の動作により移動する対象である。2つの対象物のうちのいずれか一方のみが、マニピュレータ4の動作により移動する対象であってもよいし、或いは、2つの対象物のうちの両方が、マニピュレータ4の動作により移動する対象であってもよい。ただし、第1モデル生成装置1の適用対象は、このような例に限定されなくてもよい。第1モデル生成装置1は、2つの対象物の接触を判定するあらゆる場面に適用されてよい。
なお、上記のように、接触するか否かを判定する対象が複数存在する場合、それぞれ異なる対象物の間で接触が生じるか否かを判定する複数の学習済みの判定モデル50が用意されてもよい。或いは、学習済みの判定モデル50は、例えば、対象物の種類、対象物の識別子等の対象物の条件を示す情報の入力を更に受け付け、入力された条件に対応する2つの対象物の間で接触が生じるか否かを判定するように構成されてもよい。いずれの方法が採用されてもよい。以下では、説明の便宜のため、学習済みの判定モデル50の判定対象を区別せずに説明する。
<第2モデル生成装置>
本実施形態に係る第2モデル生成装置2は、マニピュレータ4の動作を制御する際に、マニピュレータ4に与える目標のタスク状態を決定するための推論モデル55を生成するように構成されたコンピュータである。本実施形態に係るマニピュレータ4は、第1対象物及び第2対象物の存在する環境下で、第2対象物に対して第1対象物を移動するタスクを遂行することができる。上記第1タスク及び第2タスクは、「第2対象物に対して第1対象物を移動するタスク」の一例である。第1タスクを遂行する場面では、エンドエフェクタTが第1対象物の一例であり、ワークWが第2対象物の一例である。また、第2タスクを遂行する場面では、ワークWが第1対象物の一例であり、他のワークGが第2対象物の一例である。本実施形態では、タスク状態は、第1対象物及び第2対象物(すなわち、2つの対象物)の間の位置関係により規定される。
本実施形態に係る第2モデル生成装置2は、マニピュレータ4の動作を制御する際に、マニピュレータ4に与える目標のタスク状態を決定するための推論モデル55を生成するように構成されたコンピュータである。本実施形態に係るマニピュレータ4は、第1対象物及び第2対象物の存在する環境下で、第2対象物に対して第1対象物を移動するタスクを遂行することができる。上記第1タスク及び第2タスクは、「第2対象物に対して第1対象物を移動するタスク」の一例である。第1タスクを遂行する場面では、エンドエフェクタTが第1対象物の一例であり、ワークWが第2対象物の一例である。また、第2タスクを遂行する場面では、ワークWが第1対象物の一例であり、他のワークGが第2対象物の一例である。本実施形態では、タスク状態は、第1対象物及び第2対象物(すなわち、2つの対象物)の間の位置関係により規定される。
ここで、図2A及び図2Bを更に用いて、第1対象物及び第2対象物の間の位置関係によりタスク状態を規定する方法の具体例について説明する。図2Aは、上記第1タスクを遂行する場面におけるエンドエフェクタT及びワークWの間の位置関係の一例を模式的に例示する。図2Bは、上記第2タスクを遂行する場面におけるワークW及び他のワークGの間の位置関係の一例を模式的に例示する。上記のとおり、本実施形態では、2つの対象物の間の位置関係は、相対座標により表現される。
本実施形態では、図2Aに示されるとおり、第1タスクを遂行する場面等のように、エンドエフェクタTがワークWを保持していない間は、エンドエフェクタTの注目点T0がマニピュレータ4の手先として取り扱われる。第1タスクでは、ワークWが、エンドエフェクタTの移動の目標物である。エンドエフェクタTとワークWとの間の位置関係は、エンドエフェクタTに対するワークWの相対座標RC1により表現される。相対座標RC1は、エンドエフェクタTの注目点T0を原点とするローカル座標系CTから見た、ワークWの注目点W0を原点とするローカル座標系CWを表す。本実施形態では、第1タスクを遂行する場面におけるマニピュレータ4のタスク状態は、この相対座標RC1により規定される。
一方、図2Bに示されるとおり、第2タスクを遂行する場面等のように、エンドエフェクタTがワークWを保持している間、ワークWの注目点W0がマニピュレータ4の手先として取り扱われる。第2タスクでは、他のワークGが、エンドエフェクタTの移動の目標物である。他のワークGは、ワークWの組み付け先の対象物の一例である。ワークWと他のワークGとの間の位置関係は、ワークWに対する他のワークGの相対座標RC2により表現される。相対座標RC2は、ワークWの注目点W0を原点とするローカル座標系CWから見た、他のワークGの注目点G0を原点とするローカル座標系CGを表す。本実施形態では、第2タスクを遂行する場面におけるマニピュレータ4のタスク状態は、この相対座標RC2により規定される。
すなわち、本実施形態では、第1タスク及び第2タスクを遂行する両方の場面で、タスク状態は、マニピュレータ4の手先及び目標物の間の位置関係(本実施形態では、相対座標)により規定される。マニピュレータ4の手先が第1対象物に相当し、目標物が第2対象物に相当する。これにより、第1タスク及び第2タスクを共に、マニピュレータ4の手先を目標物に対して移動するタスクとして捉えることができる。したがって、本実施形態によれば、マニピュレータ4の制御処理を単純化することができ、これによって、マニピュレータ4の動作を生成又は教示するコストを低減することができる。
なお、各注目点(T0、W0、G0)は任意に設定されてよい。また、相対座標の与え方は、上記のような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、相対座標RC1は、ワークWの注目点W0を原点とするローカル座標系CWから見た、エンドエフェクタTの注目点T0を原点とするローカル座標系CTを表す等のように、各相対座標(RC1、RC2)の関係は反転されてもよい。また、手先を移動することは、目標物に手先を近付けることに限られなくてもよく、実施の形態に応じて適宜決定されてよい。手先を移動することは、例えば、目標物から手先を遠ざけること、目標物を基準にして所定の位置に手先を移動すること等であってよい。
本実施形態に係る第2モデル生成装置2は、第1対象物及び第2対象物の対象のタスク状態を示す情報を学習済みの判定モデル50に与えることで、対象のタスク状態において第1対象物及び第2対象物が互いに接触するか否かを判定する。本実施形態に係る第2モデル生成装置2は、この学習済みの判定モデル50による判定の結果を利用して、第1対象物が第2対象物に接触しないように、次に遷移する目標のタスク状態を決定するように構成された推論モデル55を生成する。
<制御装置>
本実施形態に係る制御装置3は、マニピュレータ4の動作を制御するように構成されたコンピュータである。具体的には、まず、本実施形態に係る制御装置3は、マニピュレータ4の手先を観測する第1センサ系から第1センシングデータを取得する。そして、本実施形態に係る制御装置3は、第1推定モデルを利用して、取得された第1センシングデータから、観測空間内における手先の現在の座標の第1推定値を算出する。また、本実施形態に係る制御装置3は、マニピュレータ4の手先を観測する第2センサ系から第2センシングデータを取得する。そして、本実施形態に係る制御装置3は、第2推定モデルを利用して、取得された第2センシングデータから、観測空間内における手先の現在の座標の第2推定値を算出する。手先の現在の座標の各推定値を算出することは、手先の座標(以下、「手先座標」とも記載する)の現在値を推定することに相当する。
本実施形態に係る制御装置3は、マニピュレータ4の動作を制御するように構成されたコンピュータである。具体的には、まず、本実施形態に係る制御装置3は、マニピュレータ4の手先を観測する第1センサ系から第1センシングデータを取得する。そして、本実施形態に係る制御装置3は、第1推定モデルを利用して、取得された第1センシングデータから、観測空間内における手先の現在の座標の第1推定値を算出する。また、本実施形態に係る制御装置3は、マニピュレータ4の手先を観測する第2センサ系から第2センシングデータを取得する。そして、本実施形態に係る制御装置3は、第2推定モデルを利用して、取得された第2センシングデータから、観測空間内における手先の現在の座標の第2推定値を算出する。手先の現在の座標の各推定値を算出することは、手先の座標(以下、「手先座標」とも記載する)の現在値を推定することに相当する。
各センサ系は、1つ以上のセンサを備え、マニピュレータ4の手先を観測するように適宜構成される。本実施形態では、第1センサ系は、各関節の角度を測定するためのエンコーダS2及びエンドエフェクタTに作用する力を測定するための触覚センサS3により構成される。エンコーダS2及び触覚センサS3により得られる測定データ(角度データ、圧力分布データ)が、第1センシングデータの一例である。また、第2センサ系は、カメラS1により構成される。カメラS1により得られる画像データが、第2センシングデータの一例である。本実施形態に係る制御装置3は、各推定モデルを利用して、各センサ系から得られるセンシングデータから現在の手先座標の各推定値を算出する。
マニピュレータ4の手先座標の真値は一つである。各センサ系からの算出過程にノイズがなく、かつ各推定モデルのパラメータが適切であれば、第1推定値と第2推定値とは一致する。これに対して、各センサ系に応じたノイズが生じることで、第1推定値と第2推定値とは互いに異なり得る。そこで、本実施形態に係る制御装置3は、第1推定値及び第2推定値の間の誤差の勾配を算出し、算出された勾配に基づいて、誤差が小さくなるように第1推定モデル及び第2推定モデルの少なくとも一方のパラメータの値を調整する。これにより、算出される各推定値が、真値に近付くことを期待することができる。
本実施形態に係る制御装置3は、第1推定値及び第2推定値の少なくとも一方に基づいて、手先の座標が目標値に近付くように、マニピュレータ4に与える制御指令を決定する。そして、本実施形態に係る制御装置3は、決定された制御指令をマニピュレータ4に与えることで、マニピュレータ4を駆動する。これにより、本実施形態に係る制御装置3は、マニピュレータ4の動作を制御する。
なお、手先座標の目標値を決定する方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。本実施形態では、手先座標の目標を決定するのに、上記推論モデル55を利用することができる。すなわち、本実施形態に係る制御装置3は、マニピュレータ4の現在のタスク状態を取得する。上記のとおり、タスク状態は、マニピュレータ4の手先及び目標物の間の位置関係により規定される。本実施形態に係る制御装置3は、上記推論モデル55を利用して、最終目標のタスク状態に近付くように、取得された現在のタスク状態に対して次に遷移する目標のタスク状態を決定する。そして、本実施形態に係る制御装置3は、次に遷移する目標のタスク状態から手先座標の目標値を算出する。これにより、本実施形態では、タスクを遂行する過程で、手先座標の目標値を適切に決定することができる。
<作用効果>
以上のとおり、本実施形態に係る制御装置3では、互いの推定結果(推定値)が一つの値に近付くように、第1推定モデル及び第2推定モデルの少なくとも一方のパラメータを調整する。この調整により、各推定モデルによる手先の座標の推定精度の改善を期待することができる。したがって、当該構成によれば、各推定モデルによる手先の座標の推定精度を改善し、これによって、マニピュレータの手先の座標を制御する精度の向上を図ることができる。
以上のとおり、本実施形態に係る制御装置3では、互いの推定結果(推定値)が一つの値に近付くように、第1推定モデル及び第2推定モデルの少なくとも一方のパラメータを調整する。この調整により、各推定モデルによる手先の座標の推定精度の改善を期待することができる。したがって、当該構成によれば、各推定モデルによる手先の座標の推定精度を改善し、これによって、マニピュレータの手先の座標を制御する精度の向上を図ることができる。
また、マニピュレータの従来の制御方法では、遂行するタスクに対して、マニピュレータに与える時系列の制御指令を直接的に関連付けていた。すなわち、従来の制御方法では、遂行するタスクを制御指令の系列により直接的に記述していた。そのため、タスクを遂行する環境及び対象物の少なくとも一方が少しでも変化した場合に、学習結果がその変化に対応することができず、そのタスクを適切に遂行できなくなる可能性があった。
例えば、エンドエフェクタによりワークを保持するタスクをマニピュレータに教示する場面を想定する。この場合に、ワークが対象の地点に正確に配置されていれば、マニピュレータは、学習結果に基づいて、エンドエフェクタによりワークを保持することができる。一方、ワークの姿勢が学習時とは異なっていたり、ワークが学習時と異なる位置に配置されたりした場合には、エンドエフェクタによりワークを保持する座標が変化する。これにより、マニピュレータがこの場面で遂行すべきタスクの内容が実質的に変化してしまう。そのため、学習結果により得た制御指令の系列では、マニピュレータは、エンドエフェクタによりワークを適切に保持できない可能性がある。
このように、従来の制御方法では、タスクを遂行する環境及び対象物の少なくとも一方が少しでも変化した場合に、学習結果がその変化に対応できず、そのタスクを新たに学習させなければ、マニピュレータが、そのタスクを適切に遂行できない可能性があるという問題点があった。これに起因して、マニピュレータを汎用的に動作させるためには、同じタスクでも異なる状態毎に制御指令を学習させることになり、マニピュレータにタスクを教示するのにかかるコストが依然として高かった。
これに対して、本実施形態では、マニピュレータ4により実行するタスクの状態が、エンドエフェクタT、ワークW、他のワークG等の対象物間の相対的な関係、具体的には、対象物間の位置関係により表現される。これにより、マニピュレータ4に与えられる制御指令は、タスクに直接的に関連付けられるのではなく、対象物間の相対的な位置関係の変化量に関連付けられる。すなわち、タスクの内容に依存せずに、対象物の相対的な位置関係を変化させることに対して、マニピュレータ4に与える時系列の制御指令を生成又は教示することができる。例えば、上記の例では、ワークの座標が変化しても、エンドエフェクタとワークとの間の位置関係を把握する際に、そのワークの座標の変化が考慮される。そのため、マニピュレータは、学習結果に基づいて、ワークを適切に保持することができる。したがって、本実施形態によれば、習得されるタスクを遂行する能力の汎用性を高めることができ、これによって、マニピュレータ4にタスクを教示するのにかかるコストを低減することができる。
更に、本実施形態に係る第1モデル生成装置1は、機械学習により、対象の位置関係において2つの対象物が接触するか否かを判定するための判定モデル50を生成する。機械学習により生成された学習済みの判定モデル50によれば、対象の位置関係(本実施形態では、相対座標)が連続値で与えられても、判定モデル50のデータ量の大きな増加を伴うことなく、その位置関係で2つの対象物が互いに接触するか否かを判定することができる。そのため、本実施形態によれば、2つの対象物が接触する境界を表現する情報のデータ量を大幅に低減することができる。
§2 構成例
[ハードウェア構成]
<第1モデル生成装置>
次に、図3を用いて、本実施形態に係る第1モデル生成装置1のハードウェア構成の一例について説明する。図3は、本実施形態に係る第1モデル生成装置1のハードウェア構成の一例を模式的に例示する。
[ハードウェア構成]
<第1モデル生成装置>
次に、図3を用いて、本実施形態に係る第1モデル生成装置1のハードウェア構成の一例について説明する。図3は、本実施形態に係る第1モデル生成装置1のハードウェア構成の一例を模式的に例示する。
図3に示されるとおり、本実施形態に係る第1モデル生成装置1は、制御部11、記憶部12、通信インタフェース13、外部インタフェース14、入力装置15、出力装置16、及びドライブ17が電気的に接続されたコンピュータである。なお、図3では、通信インタフェース及び外部インタフェースを「通信I/F」及び「外部I/F」と記載している。
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、モデル生成プログラム81、CAD(computer-aided design)データ120、複数の学習データセット121、学習結果データ125等の各種情報を記憶する。
モデル生成プログラム81は、判定モデル50の機械学習に関する後述の情報処理(図10)を第1モデル生成装置1に実行させるためのプログラムである。モデル生成プログラム81は、当該情報処理の一連の命令を含む。CADデータ120は、各対象物(エンドエフェクタT、ワークW、他のワークG)のモデル(例えば、3次元モデル)等の幾何学的な構成を示す構成情報を含む。CADデータ120は、公知のソフトウェアにより生成されてよい。複数の学習データセット121は、判定モデル50の機械学習に使用される。学習結果データ125は、機械学習により生成された学習済みの判定モデル50に関する情報を示す。学習結果データ125は、モデル生成プログラム81を実行した結果として得られる。詳細は後述する。
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。第1モデル生成装置1は、この通信インタフェース13を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、第2モデル生成装置2、制御装置3)と行うことができる。
外部インタフェース14は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース14の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。第1モデル生成装置1は、実空間において対象物が接触するか否かを判定するために、外部インタフェース14を介して、マニピュレータ4及びカメラS1と接続されてもよい。
入力装置15は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置16は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置15及び出力装置16を利用することで、第1モデル生成装置1を操作することができる。
ドライブ17は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ17の種類は、記憶媒体91の種類に応じて適宜選択されてよい。上記モデル生成プログラム81、CADデータ120、及び複数の学習データセット121の少なくともいずれかは、この記憶媒体91に記憶されていてもよい。
記憶媒体91は、コンピュータその他装置、機械等が、記憶されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。第1モデル生成装置1は、この記憶媒体91から、上記モデル生成プログラム81、CADデータ120、及び複数の学習データセット121の少なくともいずれかを取得してもよい。
ここで、図3では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
なお、第1モデル生成装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、外部インタフェース14、入力装置15、出力装置16及びドライブ17の少なくともいずれかは省略されてもよい。第1モデル生成装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、第1モデル生成装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、PC(Personal Computer)等であってもよい。
<第2モデル生成装置>
次に、図4を用いて、本実施形態に係る第2モデル生成装置2のハードウェア構成の一例について説明する。図4は、本実施形態に係る第2モデル生成装置2のハードウェア構成の一例を模式的に例示する。
次に、図4を用いて、本実施形態に係る第2モデル生成装置2のハードウェア構成の一例について説明する。図4は、本実施形態に係る第2モデル生成装置2のハードウェア構成の一例を模式的に例示する。
図4に示されるとおり、本実施形態に係る第2モデル生成装置2は、制御部21、記憶部22、通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27が電気的に接続されたコンピュータである。なお、図4では、図3と同様に、通信インタフェース及び外部インタフェースを「通信I/F」及び「外部I/F」と記載している。
第2モデル生成装置2の制御部21~ドライブ27はそれぞれ、上記第1モデル生成装置1の制御部11~ドライブ17それぞれと同様に構成されてよい。すなわち、制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部22は、モデル生成プログラム82、CADデータ220、学習結果データ125、学習データ223、推論モデルデータ225等の各種情報を記憶する。
モデル生成プログラム82は、目標のタスク状態を推論するための推論モデル55の生成に関する後述の情報処理(図11)を第2モデル生成装置2に実行させるためのプログラムである。モデル生成プログラム82は、当該情報処理の一連の命令を含む。CADデータ220は、上記CADデータ120と同様に、各対象物(エンドエフェクタT、ワークW、他のワークG)のモデル等の幾何学的な構成を示す構成情報を含む。学習結果データ125は、学習済みの判定モデル50の設定に利用される。学習データ223は、推論モデル55の生成に使用される。推論モデルデータ225は、生成された推論モデル55に関する情報を示す。推論モデルデータ225は、モデル生成プログラム82を実行した結果として得られる。詳細は後述する。
通信インタフェース23は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。第2モデル生成装置2は、この通信インタフェース23を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、第1モデル生成装置1、制御装置3)と行うことができる。
外部インタフェース24は、例えば、USBポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース24の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。第2モデル生成装置2は、実空間においてタスク状態を再現するために、外部インタフェース24を介して、マニピュレータ4及びカメラS1と接続されてもよい。
入力装置25は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置26は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置25及び出力装置26を利用することで、第2モデル生成装置2を操作することができる。
ドライブ27は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体92に記憶されたプログラムを読み込むためのドライブ装置である。記憶媒体92の種類は、上記記憶媒体91と同様に、ディスク型であってもよいし、或いはディスク型以外であってもよい。上記モデル生成プログラム82、CADデータ220、学習結果データ125、及び学習データ223のうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、第2モデル生成装置2は、記憶媒体92から、上記モデル生成プログラム82、CADデータ220、学習結果データ125、及び学習データ223のうちの少なくともいずれかを取得してもよい。
なお、第2モデル生成装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27の少なくともいずれかは省略されてもよい。第2モデル生成装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、第2モデル生成装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってもよい。
<制御装置>
次に、図5を用いて、本実施形態に係る制御装置3のハードウェア構成の一例について説明する。図5は、本実施形態に係る制御装置3のハードウェア構成の一例を模式的に例示する。
次に、図5を用いて、本実施形態に係る制御装置3のハードウェア構成の一例について説明する。図5は、本実施形態に係る制御装置3のハードウェア構成の一例を模式的に例示する。
図5に示されるとおり、本実施形態に係る制御装置3は、制御部31、記憶部32、通信インタフェース33、外部インタフェース34、入力装置35、出力装置36、及びドライブ37が電気的に接続されたコンピュータである。なお、図5では、図3及び図4と同様に、通信インタフェース及び外部インタフェースを「通信I/F」及び「外部I/F」と記載している。
制御装置3の制御部31~ドライブ37はそれぞれ、上記第1モデル生成装置1の制御部11~ドライブ17それぞれと同様に構成されてよい。すなわち、制御部31は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部32は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部32は、制御プログラム83、CADデータ320、ロボットデータ321、推論モデルデータ225等の各種情報を記憶する。
制御プログラム83は、マニピュレータ4の動作の制御に関する後述の情報処理(図16A、図16B、図20、及び図21)を制御装置3に実行させるためのプログラムである。制御プログラム83は、当該情報処理の一連の命令を含む。CADデータ320は、上記CADデータ120と同様に、各対象物(エンドエフェクタT、ワークW、他のワークG)のモデル等の幾何学的な構成を示す構成情報を含む。ロボットデータ321は、各関節のパラメータ等のマニピュレータ4の構成を示す構成情報を含む。推論モデルデータ225は、生成された推論モデル55の設定に利用される。詳細は後述する。
通信インタフェース33は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。制御装置3は、この通信インタフェース33を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、第1モデル生成装置1、第2モデル生成装置2)と行うことができる。
外部インタフェース34は、例えば、USBポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース34の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。制御装置3は、外部インタフェース34を介して、カメラS1及びマニピュレータ4と接続されてよい。本実施形態では、マニピュレータ4は、各関節の角度を測定するエンコーダS2、及びエンドエフェクタTに作用する力を測定する触覚センサS3を備える。
カメラS1、エンコーダS2、及び触覚センサS3それぞれの種類は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。カメラS1は、例えば、RGB画像を取得するよう構成された一般的なデジタルカメラ、深度画像を取得するように構成された深度カメラ、赤外線量を画像化するように構成された赤外線カメラ等であってよい。触覚センサS3は、例えば、タクタイルセンサ等であってよい。
制御装置3は、外部インタフェース34を介して、各センサ(カメラS1、各エンコーダS2、触覚センサS3)からセンシングデータを取得することができる。なお、カメラS1及びマニピュレータ4との接続方法は、このような例に限定されなくてもよい。例えば、カメラS1及びマニピュレータ4が通信インタフェースを備える場合、制御装置3は、通信インタフェース33を介して、カメラS1及びマニピュレータ4に接続されてもよい。
入力装置35は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置36は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置35及び出力装置36を利用することで、制御装置3を操作することができる。
ドライブ37は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体93に記憶されたプログラムを読み込むためのドライブ装置である。記憶媒体93の種類は、上記記憶媒体91と同様に、ディスク型であってもよいし、或いはディスク型以外であってもよい。上記制御プログラム83、CADデータ320、ロボットデータ321、及び推論モデルデータ225のうちの少なくともいずれかは、記憶媒体93に記憶されていてもよい。また、制御装置3は、記憶媒体93から、上記制御プログラム83、CADデータ320、ロボットデータ321、及び推論モデルデータ225のうちの少なくともいずれかを取得してもよい。
なお、制御装置3の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部31は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部32は、制御部31に含まれるRAM及びROMにより構成されてもよい。通信インタフェース33、外部インタフェース34、入力装置35、出力装置36、及びドライブ37の少なくともいずれかは省略されてもよい。制御装置3は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、制御装置3は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC、PLC(programmable logic controller)等であってもよい。
<マニピュレータ>
次に、図6を用いて、本実施形態に係るマニピュレータ4のハードウェア構成の一例について説明する。図6は、本実施形態に係るマニピュレータ4のハードウェア構成の一例を模式的に例示する。
次に、図6を用いて、本実施形態に係るマニピュレータ4のハードウェア構成の一例について説明する。図6は、本実施形態に係るマニピュレータ4のハードウェア構成の一例を模式的に例示する。
本実施形態に係るマニピュレータ4は、6軸の垂直多関節型の産業用ロボットであり、台座部40及び6つの関節部41~46を備えている。各関節部41~46は、サーボモータ(不図示)を内蔵していることで、各軸を中心に回転可能に構成されている。第1関節部41は、台座部40に接続されており、先端側の部分を台座の軸周りに回転させる。第2関節部42は、第1関節部41に接続されており、先端側の部分を前後方向に回転させる。第3関節部43は、リンク491を介して第2関節部42に接続されており、先端側の部分を上下方向に回転させる。第4関節部44は、リンク492を介して第3関節部43に接続されており、先端側の部分をリンク492の軸周りに回転させる。第5関節部45は、リンク493を介して第4関節部44に接続されており、先端側の部分を上下方向に回転させる。第6関節部46は、リンク494を介して第5関節部45に接続されており、先端側の部分をリンク494の軸周りに回転させる。第6関節部46の先端側には、触覚センサS3と共にエンドエフェクタTが取り付けられている。
各関節部41~46には、エンコーダS2が更に内蔵されている。各エンコーダS2は、各関節部41~46の角度(制御量)を測定するように構成される。各エンコーダS2の測定データ(角度データ)は、各関節部41~46の角度の制御に利用することができる。また、触覚センサS3は、エンドエフェクタTに作用する力を検出するように構成される。触覚センサS3の測定データ(圧力分布データ)は、エンドエフェクタTに保持されたワークWの位置及び姿勢を推定したり、エンドエフェクタTに異常な力が作用しているか否かを検知したりするために利用されてよい。
なお、マニピュレータ4のハードウェア構成は、このような例に限定されなくてもよい。マニピュレータ4の具体的なハードウェア構成に関して、実施の形態に応じて適宜、構成要素の省略、置換及び追加が可能である。例えば、マニピュレータ4は、制御量又はその他の属性を観測するために、エンコーダS2及び触覚センサS3以外のセンサを備えてもよい。例えば、マニピュレータ4は、トルクセンサを更に備えてもよい。この場合、マニピュレータ4は、エンドエフェクタTに作用する力をトルクセンサにより測定し、トルクセンサの測定値に基づいて、エンドエフェクタTに過剰な力が作用しないように制御されてよい。また、マニピュレータ4の軸数は、6軸に限られなくてもよい。マニピュレータ4には、公知の産業用ロボットが採用されてよい。
[ソフトウェア構成]
<第1モデル生成装置>
次に、図7を用いて、本実施形態に係る第1モデル生成装置1のソフトウェア構成の一例について説明する。図7は、本実施形態に係る第1モデル生成装置1のソフトウェア構成の一例を模式的に例示する。
<第1モデル生成装置>
次に、図7を用いて、本実施形態に係る第1モデル生成装置1のソフトウェア構成の一例について説明する。図7は、本実施形態に係る第1モデル生成装置1のソフトウェア構成の一例を模式的に例示する。
第1モデル生成装置1の制御部11は、記憶部12に記憶されたモデル生成プログラム81をRAMに展開する。そして、制御部11は、RAMに展開されたモデル生成プログラム81に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、図7に示されるとおり、本実施形態に係る第1モデル生成装置1は、データ取得部111、機械学習部112、及び保存処理部113をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、第1モデル生成装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
データ取得部111は、複数の学習データセット121を取得する。各学習データセット121は、2つの対象物の間の位置関係を示す訓練データ122及び当該位置関係において2つの対象物が互いに接触するか否かを示す正解データ123の組み合わせにより構成される。訓練データ122は、機械学習の入力データとして利用される。正解データ123は、機械学習の教師信号(ラベル)として利用される。訓練データ122及び正解データ123の形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、訓練データ122には、2つの対象物の間の相対座標がそのまま利用されてもよいし、或いは、相対座標を特徴量に変換することで得られた値が利用されてもよい。CADデータ120により、対象の位置関係において対象の2つの対象物が互いに接触するか否かを判定することができる。そのため、CADデータ120を利用することで、各学習データセット121を生成することができる。
機械学習部112は、取得された複数の学習データセット121を使用して、判定モデル50の機械学習を実施する。機械学習を実施することは、各学習データセット121について、訓練データ122の入力に対して、対応する正解データ123に適合する出力値を出力するように判定モデル50を訓練することにより構成される。この機械学習により、2つの対象物が互いに接触するか否かを判定する能力を習得した学習済みの判定モデル50を構築することができる。保存処理部113は、構築された学習済みの判定モデル50に関する情報を学習結果データ125として生成し、生成された学習結果データ125を所定の記憶領域に保存する。
(判定モデルの構成)
次に、判定モデル50の構成の一例について説明する。本実施形態に係る判定モデル50は、深層学習に用いられる多層構造のニューラルネットワークにより構成される。図7の例では、判定モデル50は、3層構造の全結合型ニューラルネットワークにより構成されている。判定モデル50は、入力層501、中間(隠れ)層502、及び出力層503を備えている。ただし、判定モデル50の構造は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、判定モデル50の備える中間層の数は、1つに限られなくてもよく、2つ以上であってもよい。或いは、中間層502は、省略されてもよい。
次に、判定モデル50の構成の一例について説明する。本実施形態に係る判定モデル50は、深層学習に用いられる多層構造のニューラルネットワークにより構成される。図7の例では、判定モデル50は、3層構造の全結合型ニューラルネットワークにより構成されている。判定モデル50は、入力層501、中間(隠れ)層502、及び出力層503を備えている。ただし、判定モデル50の構造は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、判定モデル50の備える中間層の数は、1つに限られなくてもよく、2つ以上であってもよい。或いは、中間層502は、省略されてもよい。
各層501~503に含まれるニューロン(ノード)の数は、実施の形態に応じて適宜決定されてよい。例えば、入力層501のニューロンの数は、2つの対象物の間の位置関係を表現する相対座標の次元数に応じて決定されてよい。また、出力層503のニューロンの数は、2つの対象物が互いに接触するか否かを表現する方法に応じて決定されてよい。例えば、2つの対象物が互いに接触するか否かを1つの数値で表現する(例えば、[0、1]の範囲の数値で表現する)場合、出力層503のニューロンの数は1つであってよい。また、例えば、接触する確率を示す第1の数値及び接触していない確率を示す第2の数値の2つの数値により2つの対象物が互いに接触するか否かを表現する場合、出力層503のニューロンの数は2つであってよい。
隣接する層のニューロン同士は適宜結合される。本実施形態では、各ニューロンは、隣接する層の全てのニューロンと結合されている。しかしながら、各ニューロンの結合関係は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。各結合には、重み(結合荷重)が設定されている。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。閾値は、活性化関数により表現されてもよい。この場合、各入力と各重みとの積の和を活性化関数に入力し、活性化関数の演算を実行することで、各ニューロンの出力が決定される。活性化関数の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各層501~503に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、判定モデル50の演算パラメータの一例である。
本実施形態では、機械学習部112は、複数の学習データセット121を使用して、上記ニューラルネットワークにより構成された判定モデル50の機械学習を実施する。具体的に、機械学習部112は、判定モデル50の演算パラメータの値を調整することで、各学習データセット121について、訓練データ122を入力層501に入力すると、正解データ123に適合する出力値が出力層503から出力されるように判定モデル50の演算パラメータを訓練する。これにより、機械学習部112は、2つの対象物が互いに接触するか否かを判定する能力を習得した学習済みの判定モデル50を生成することができる。
保存処理部113は、構築された学習済みの判定モデル50の構造及び演算パラメータを示す情報を学習結果データ125として生成する。そして、保存処理部113は、生成された学習結果データ125を所定の記憶領域に保存する。なお、学習結果データ125の内容は、学習済みの判定モデル50を再生可能であれば、このような例に限定されなくてもよい。例えば、各装置間で判定モデル50の構造が共通化されている場合、学習結果データ125において判定モデル50の構造を示す情報は省略されてよい。
<第2モデル生成装置>
次に、図8を用いて、本実施形態に係る第2モデル生成装置2のソフトウェア構成の一例について説明する。図8は、本実施形態に係る第2モデル生成装置2のソフトウェア構成の一例を模式的に例示する。
次に、図8を用いて、本実施形態に係る第2モデル生成装置2のソフトウェア構成の一例について説明する。図8は、本実施形態に係る第2モデル生成装置2のソフトウェア構成の一例を模式的に例示する。
第2モデル生成装置2の制御部21は、記憶部22に記憶されたモデル生成プログラム82をRAMに展開する。そして、制御部21は、RAMに展開されたモデル生成プログラム82に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、図8に示されるとおり、本実施形態に係る第2モデル生成装置2は、接触判定部211、データ収集部212、モデル生成部213、及び保存処理部214をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、上記第1モデル生成装置1と同様に、第2モデル生成装置2の各ソフトウェアモジュールは、制御部21(CPU)により実現される。
接触判定部211は、学習結果データ125を保持することで、学習済みの判定モデル50を備えている。接触判定部211は、学習結果データ125を参照して、学習済みの判定モデル50の設定を行う。学習済みの判定モデル50は、上記機械学習により、第1対象物及び第2対象物が互いに接触するか否かを判定する能力を習得している。接触判定部211は、第1対象物及び第2対象物の対象のタスク状態を示す情報を学習済みの判定モデル50に与えることで、対象のタスク状態において第1対象物及び第2対象物が互いに接触するか否かを判定する。
データ収集部212及びモデル生成部213は、学習済みの判定モデル50による判定の結果を利用して、第1対象物が第2対象物に接触しないように、最終目標のタスク状態及び現在のタスク状態から次に遷移する目標のタスク状態を決定するように構成された推論モデル55を生成する。すなわち、データ収集部212は、学習済みの判定モデル50による判定の結果を利用して、推論モデル55の生成に使用する学習データ223を収集する。学習データ223の収集には、CADデータ220が更に利用されてよい。モデル生成部213は、収集された学習データ223を使用して、推論モデル55を生成する。学習データ223及び推論モデル55の詳細は後述する。保存処理部214は、生成された推論モデル55に関する情報を推論モデルデータ225として生成し、生成された推論モデルデータ225を所定の記憶領域に保存する。
<制御装置>
次に、図9を用いて、本実施形態に係る制御装置3のソフトウェア構成の一例について説明する。図9は、本実施形態に係る制御装置3のソフトウェア構成の一例を模式的に例示する。
次に、図9を用いて、本実施形態に係る制御装置3のソフトウェア構成の一例について説明する。図9は、本実施形態に係る制御装置3のソフトウェア構成の一例を模式的に例示する。
制御装置3の制御部31は、記憶部32に記憶された制御プログラム83をRAMに展開する。そして、制御部31は、RAMに展開された制御プログラム83に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、図9に示されるとおり、本実施形態に係る制御装置3は、目標設定部310、第1データ取得部311、第2データ取得部312、第1推定部313、第2推定部314、状態取得部315、行動決定部316、指令決定部317、駆動部318、及び調整部319をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、上記第1モデル生成装置1と同様に、制御装置3の各ソフトウェアモジュールは、制御部31(CPU)により実現される。
目標設定部310は、遂行するタスクに応じて、最終目標のタスク状態を設定する。本実施形態では、タスク状態は、遂行するタスクにおける第1対象物及び第2対象物、より詳細には、マニピュレータ4の手先及び目標物の間の位置関係により規定される。本実施形態では、位置関係は、上記相対座標により表現される。「最終目標」は、終着点(ゴール)であり、タスクの遂行を完了した時点に実現される。
目標物は、遂行するタスクに応じて適宜設定されてよい。一例として、マニピュレータ4(エンドエフェクタT)がワークWを保持していない場合、目標物は、ワークWであってよい。一方、マニピュレータ4(エンドエフェクタT)がワークWを保持している場合、目標物は、ワークWの組み付け先の対象物(本実施形態では、他のワークG)であってよい。
第1データ取得部311は、マニピュレータ4の手先を観測する第1センサ系から第1センシングデータ323を取得する。本実施形態では、第1データ取得部311は、第1センシングデータ323として、各エンコーダS2及び触覚センサS3から測定データを取得する。第2データ取得部312は、マニピュレータ4の手先を観測する第2センサ系から第2センシングデータ324を取得する。本実施形態では、第2データ取得部312は、第2センシングデータ324として、カメラS1から画像データを取得する。
第1推定部313は、第1推定モデル61を利用して、取得された第1センシングデータ323から、観測空間内における手先の現在の座標の第1推定値を算出する。第2推定部314は、第2推定モデル62を利用して、取得された第2センシングデータ324から、観測空間内における手先の現在の座標の第2推定値を算出する。調整部319は、第1推定値及び第2推定値の間の誤差の勾配を算出し、算出された勾配に基づいて、誤差が小さくなるように第1推定モデル61及び第2推定モデル62の少なくとも一方のパラメータの値を調整する。
状態取得部315は、マニピュレータ4の現在のタスク状態を示す情報を取得する。「現在」は、マニピュレータ4の動作を制御する時点であって、マニピュレータ4に与える制御指令を決定する直前の時点である。
行動決定部316は、最終目標のタスク状態に近付くように、取得された情報により示される現在のタスク状態に対して、次に遷移する目標のタスク状態を決定する。「目標」は、最終目標を含み、タスクの遂行を達成するために適宜設定されてよい。最終目標までに設定される目標の数は、1つであってもよいし(この場合、最終目標だけが設定される)、複数であってもよい。最終目標以外の目標は、タスクの開始点から終着点に到達するまでに経由する経由点である。そのため、最終目標を単に「目標(ゴール)」と称し、最終目標以外の目標を「下位目標(サブゴール)」と称してもよい。下位目標は、「経由点」と称してもよい。「次に遷移する目標」は、現在のタスク状態から次に目指すタスク状態(最終目標以外の目標であれば暫定的なタスク状態)であり、例えば、最終目標に向かって、現在のタスク状態に最も近い目標である。
本実施形態では、行動決定部316は、推論モデルデータ225を保持することで、生成された推論モデル55を備えている。行動決定部316は、生成された推論モデル55を利用して、最終目標のタスク状態及び現在のタスク状態から次に遷移する目標のタスク状態を決定する。
指令決定部317は、第1推定値及び第2推定値の少なくとも一方に基づいて、手先の座標が目標値に近付くように、マニピュレータ4に与える制御指令を決定する。駆動部318は、決定された制御指令をマニピュレータ4に与えることで、マニピュレータ4を駆動する。
本実施形態では、制御指令は、各関節に対する指令値により構成される。指令決定部317は、第1推定値及び第2推定値の少なくとも一方に基づいて、マニピュレータ4の手先座標の現在値を認定する。また、指令決定部317は、決定された次に遷移する目標のタスク状態から手先座標の目標値を算出する。次に、指令決定部317は、手先座標の現在値及び目標値の差分から各関節の角度の変化量を算出する。そして、指令決定部317は、算出された各関節の角度の変化量に基づいて、各関節に対する指令値を決定する。駆動部318は、決定された指令値により各関節を駆動する。これらの処理により、本実施形態に係る制御装置3は、マニピュレータ4の動作を制御する。
<その他>
第1モデル生成装置1、第2モデル生成装置2及び制御装置3の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、第1モデル生成装置1、第2モデル生成装置2及び制御装置3の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、第1モデル生成装置1、第2モデル生成装置2及び制御装置3それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
第1モデル生成装置1、第2モデル生成装置2及び制御装置3の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、第1モデル生成装置1、第2モデル生成装置2及び制御装置3の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、第1モデル生成装置1、第2モデル生成装置2及び制御装置3それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
§3 動作例
[第1モデル生成装置]
次に、図10を用いて、第1モデル生成装置1の動作例について説明する。図10は、本実施形態に係る第1モデル生成装置1による判定モデル50の機械学習に関する処理手順の一例を示すフローチャートである。以下で説明する処理手順は、判定モデル50を生成するためのモデル生成方法の一例である。ただし、以下で説明する各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
[第1モデル生成装置]
次に、図10を用いて、第1モデル生成装置1の動作例について説明する。図10は、本実施形態に係る第1モデル生成装置1による判定モデル50の機械学習に関する処理手順の一例を示すフローチャートである。以下で説明する処理手順は、判定モデル50を生成するためのモデル生成方法の一例である。ただし、以下で説明する各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS101)
ステップS101では、制御部11は、データ取得部111として動作し、判定モデル50の機械学習に使用する複数の学習データセット121を取得する。各学習データセット121は、2つの対象物の間の位置関係を示す訓練データ122及び当該位置関係において2つの対象物が互いに接触するか否かを示す正解データ123の組み合わせにより構成される。
ステップS101では、制御部11は、データ取得部111として動作し、判定モデル50の機械学習に使用する複数の学習データセット121を取得する。各学習データセット121は、2つの対象物の間の位置関係を示す訓練データ122及び当該位置関係において2つの対象物が互いに接触するか否かを示す正解データ123の組み合わせにより構成される。
各学習データセット121を生成する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、CADデータ120を利用して、仮想空間上で、2つの対象物を様々な位置関係に配置する。本実施形態では、位置関係は、相対座標により表現される。また、本実施形態では、2つの対象物のうちの少なくともいずれかは、マニピュレータ4の動作により移動する対象である。上記第1タスクを遂行する場面を想定する場合、エンドエフェクタT及びワークWがそれぞれ各対象物の一例である。また、上記第2タスクを遂行する場面を想定する場合、エンドエフェクタTにより保持されたワークW及び他のワークGがそれぞれ各対象物の一例である。2つの対象物のうちの一方がマニピュレータ4の手先であり、他方が目標物である。各対象物の配置は、オペレータにより指定されてもよいし、ランダムに決定されてもよい。或いは、一方の対象物の位置を固定し、他方の対象物を規則に従って位置を変更することで、様々な位置関係が実現されてもよい。他方の対象物の配置を与える規則は適宜設定されてよい。これにより、各位置関係における相対座標を各学習データセット121の訓練データ122として取得することができる。また、CADデータ120には、各対象物のモデルが含まれている。そのため、CADデータ120により、対象の位置関係において対象の2つの対象物が互いに接触するか否かを判定することができる。CADデータ120を利用して、各位置関係において2つの対象物が互いに接触するか否かを判定した結果を正解データ123として対応する訓練データ122に関連付ける。これにより、各学習データセット121を生成することができる。なお、各学習データセット121を生成する方法は、このような例に限定されなくてもよい。実空間上において、各対象物の実物を利用することで、各学習データセット121が生成されてもよい。
各学習データセット121は、コンピュータの動作により自動的に生成されてもよいし、少なくとも部分的にオペレータの操作を含むことで手動的に生成されてもよい。また、各学習データセット121の生成は、第1モデル生成装置1により行われてもよいし、第1モデル生成装置1以外の他のコンピュータにより行われてもよい。各学習データセット121を第1モデル生成装置1が生成する場合、制御部11は、自動的又はオペレータの入力装置15を介した操作により手動的に上記一連の処理を実行することで、複数の学習データセット121を取得する。一方、各学習データセット121を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の学習データセット121を取得する。この場合、CADデータ120は第1モデル生成装置1から省略されてもよい。一部の学習データセット121が第1モデル生成装置1により生成され、その他の学習データセット121が1又は複数の他のコンピュータにより生成されてもよい。
取得される学習データセット121の件数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。複数の学習データセット121を取得すると、制御部11は、次のステップS102に処理を進める。
(ステップS102)
ステップS102では、制御部11は、機械学習部112として動作し、取得された複数の学習データセット121を使用して、判定モデル50の機械学習を実施する。本実施形態では、制御部11は、機械学習により、各学習データセット121について、訓練データ122を入力層501に入力すると、対応する正解データ123に適合する出力値が出力層503から出力されるように判定モデル50を訓練する。これにより、制御部11は、対象の位置関係において2つの対象物が互いに接触するか否かを判定する能力を習得した学習済みの判定モデル50を構築する。
ステップS102では、制御部11は、機械学習部112として動作し、取得された複数の学習データセット121を使用して、判定モデル50の機械学習を実施する。本実施形態では、制御部11は、機械学習により、各学習データセット121について、訓練データ122を入力層501に入力すると、対応する正解データ123に適合する出力値が出力層503から出力されるように判定モデル50を訓練する。これにより、制御部11は、対象の位置関係において2つの対象物が互いに接触するか否かを判定する能力を習得した学習済みの判定モデル50を構築する。
機械学習の処理手順は、実施の形態に応じて適宜決定されてよい。一例として、制御部11は、まず、処理対象となる判定モデル50を用意する。用意する判定モデル50の構造(例えば、層の数、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等)、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部11は、過去の機械学習を行うことで得られた学習結果データに基づいて、判定モデル50を用意してもよい。
次に、制御部11は、各学習データセット121に含まれる訓練データ122を入力データとして利用し、正解データ123を教師信号として利用して、判定モデル50(ニューラルネットワーク)の学習処理を実行する。この学習処理には、バッチ勾配降下法、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。
例えば、第1のステップでは、制御部11は、各学習データセット121について、訓練データ122を判定モデル50に入力し、判定モデル50の演算処理を実行する。すなわち、制御部11は、訓練データ122を入力層501に入力し、入力側から順に各層501~503に含まれる各ニューロンの発火判定を行う(すなわち、順伝播の演算を行う)。この演算処理により、制御部11は、判定モデル50の出力層503から、訓練データ122により示される位置関係において2つの対象物が接触するか否かを判定した結果に対応する出力値を取得する。
第2のステップでは、制御部11は、出力層503から取得された出力値と正解データ123との誤差(損失)を損失関数に基づいて算出する。損失関数は、学習モデルの出力と正解との差分(すなわち、相違の程度)を評価する関数であり、出力層503から取得された出力値と正解データ123との差分値が大きいほど、損失関数により算出される誤差の値は大きくなる。誤差の計算に利用する損失関数の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
第3のステップでは、制御部11は、誤差逆伝播(Back propagation)法により、算出された出力値の誤差の勾配を用いて、判定モデル50の各演算パラメータ(各ニューロン間の結合の重み、各ニューロンの閾値等)の値の誤差を算出する。第4のステップでは、制御部11は、算出された各誤差に基づいて、判定モデル50の演算パラメータの値を更新する。演算パラメータの値を更新する程度は、学習率により調節されてよい。学習率は、オペレータの指定により与えられてもよいし、プログラム内の設定値として与えられてもよい。
制御部11は、上記第1~第4のステップを繰り返すことで、各学習データセット121について、出力層503から出力される出力値と正解データ123との誤差の和が小さくなるように、判定モデル50の演算パラメータの値を調整する。例えば、制御部11は、当該誤差の和が閾値以下になるまで、上記第1~第4のステップの処理を繰り返してもよい。閾値は、実施の形態に応じて適宜設定されてよい。この機械学習の結果により、制御部11は、各学習データセット121について、訓練データ122を入力層501に入力すると、対応する正解データ123に適合する出力値を出力層503から出力するように訓練された学習済みの判定モデル50を構築することができる。この「適合する」ことは、閾値等により許容可能な差異が、出力層503の出力値と教師信号(正解データ123)との間に生じることを含んでもよい。判定モデル50の機械学習が完了すると、制御部11は、次のステップS103に処理を進める。
(ステップS103)
ステップS103では、制御部11は、保存処理部113として動作し、機械学習により構築された学習済みの判定モデル50に関する情報を学習結果データ125として所定の記憶領域に保存する。本実施形態では、制御部11は、ステップS102により構築された学習済みの判定モデル50の構造及び演算パラメータを示す情報を学習結果データ125として生成する。そして、制御部11は、生成された学習結果データ125を所定の記憶領域に保存する。
ステップS103では、制御部11は、保存処理部113として動作し、機械学習により構築された学習済みの判定モデル50に関する情報を学習結果データ125として所定の記憶領域に保存する。本実施形態では、制御部11は、ステップS102により構築された学習済みの判定モデル50の構造及び演算パラメータを示す情報を学習結果データ125として生成する。そして、制御部11は、生成された学習結果データ125を所定の記憶領域に保存する。
所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。記憶メディアは、例えば、CD、DVD等であってよく、制御部11は、ドライブ17を介して記憶メディアに学習結果データ125を格納してもよい。外部記憶装置は、例えば、NAS(Network Attached Storage)等のデータサーバであってよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに学習結果データ125を格納してもよい。また、外部記憶装置は、例えば、第1モデル生成装置1に接続された外付けの記憶装置であってもよい。
これにより、学習結果データ125の保存が完了すると、制御部11は、学習済みの判定モデル50の生成に関する一連の処理を終了する。
なお、生成された学習結果データ125は、任意のタイミングで第2モデル生成装置2に提供されてよい。例えば、制御部11は、ステップS103の処理として又はステップS103の処理とは別に、学習結果データ125を第2モデル生成装置2に転送してもよい。第2モデル生成装置2は、この転送を受信することで、学習結果データ125を取得してもよい。また、例えば、第2モデル生成装置2は、通信インタフェース23を利用して、第1モデル生成装置1又はデータサーバにネットワークを介してアクセスすることで、学習結果データ125を取得してもよい。また、例えば、第2モデル生成装置2は、記憶媒体92を介して、学習結果データ125を取得してもよい。また、例えば、学習結果データ125は、第2モデル生成装置2に予め組み込まれてもよい。
更に、制御部11は、上記ステップS101~ステップS103の処理を定期又は不定期に繰り返すことで、学習結果データ125を更新又は新たに生成してもよい。この繰り返しの際には、複数の学習データセット121の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部11は、更新した又は新たに生成した学習結果データ125を学習処理の実行毎に第2モデル生成装置2に提供することで、第2モデル生成装置2の保持する学習結果データ125を更新してもよい。
[第2モデル生成装置]
次に、図11を用いて、第2モデル生成装置2による推論モデル55の生成に関する動作例について説明する。図11は、本実施形態に係る第2モデル生成装置2による推論モデル55の生成に関する処理手順の一例を示すフローチャートである。なお、以下で説明する各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
次に、図11を用いて、第2モデル生成装置2による推論モデル55の生成に関する動作例について説明する。図11は、本実施形態に係る第2モデル生成装置2による推論モデル55の生成に関する処理手順の一例を示すフローチャートである。なお、以下で説明する各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS201)
ステップS201では、制御部21は、マニピュレータ4の遂行するタスクに関して、最終目標のタスク状態の指定を受け付ける。タスク状態は、第1対象物及び第2対象物、より詳細には、マニピュレータ4の手先及び目標物の間の位置関係により表現される。本実施形態では、位置関係は、相対座標により表現される。
ステップS201では、制御部21は、マニピュレータ4の遂行するタスクに関して、最終目標のタスク状態の指定を受け付ける。タスク状態は、第1対象物及び第2対象物、より詳細には、マニピュレータ4の手先及び目標物の間の位置関係により表現される。本実施形態では、位置関係は、相対座標により表現される。
最終のタスク状態における相対座標を指定する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、最終のタスク状態における相対座標は、入力装置25を介したオペレータの入力により直接的に指定されてもよい。また、例えば、オペレータの入力により、遂行するタスクが選択され、選択されたタスクに応じて、最終のタスク状態における相対座標が指定されてもよい。また、例えば、CADデータ220を利用して、仮想空間上で各対象物のモデルを最終目標の位置関係に配置することで、最終目標における相対座標が指定されてもよい。各対象物のモデルの配置は、シミュレータにより自動的に行われてもよいし、オペレータの入力により手動的に行われてもよい。最終目標のタスク状態が指定されると、制御部21は、次のステップS202に処理を進める。
(ステップS202~ステップS204)
ステップS202では、制御部21は、任意のタスク状態を開始点に設定する。開始点に設定されるタスク状態は、タスクの遂行を開始する時点におけるタスク状態に相当する。開始点となるタスク状態は、ランダムに設定されてもよいし、或いは、オペレータの入力により指定されてもよい。オペレータによる開始点の指定方法は、上記最終目標の指定方法と同様であってよい。また、開始点となるタスク状態は、任意のアルゴリズムにより決定されてよい。一例として、各対象物の実物を実空間に配置し、カメラにより各対象物を撮影することで、各対象物の写る画像データを取得してもよい。そして、得られた画像データに対して画像処理(例えば、CADデータ220によるマッチング)を行うことで、開始点となるタスク状態が決定されてもよい。その他、開始点となるタスク状態は、CADデータ220を利用して適宜決定されてもよい。
ステップS202では、制御部21は、任意のタスク状態を開始点に設定する。開始点に設定されるタスク状態は、タスクの遂行を開始する時点におけるタスク状態に相当する。開始点となるタスク状態は、ランダムに設定されてもよいし、或いは、オペレータの入力により指定されてもよい。オペレータによる開始点の指定方法は、上記最終目標の指定方法と同様であってよい。また、開始点となるタスク状態は、任意のアルゴリズムにより決定されてよい。一例として、各対象物の実物を実空間に配置し、カメラにより各対象物を撮影することで、各対象物の写る画像データを取得してもよい。そして、得られた画像データに対して画像処理(例えば、CADデータ220によるマッチング)を行うことで、開始点となるタスク状態が決定されてもよい。その他、開始点となるタスク状態は、CADデータ220を利用して適宜決定されてもよい。
ステップS203では、制御部21は、接触判定部211として動作し、学習済みの判定モデル50を利用して、開始点に設定されたタスク状態において2つの対象物が互いに接触するか否かを判定する。具体的には、制御部21は、学習結果データ125を参照して、学習済みの判定モデル50の設定を行う。続いて、制御部21は、ステップS202で設定されたタスク状態の相対座標を学習済みの判定モデル50の入力層501に入力する。そして、制御部21は、学習済みの判定モデル50の演算処理として、入力側から順に各層501~503に含まれる各ニューロンの発火判定を行う。これにより、制御部21は、開始点に設定されたタスク状態において2つの対象物が互いに接触するか否かを判定した結果に対応する出力値を学習済みの判定モデル50の出力層503から取得する。
ステップS204では、制御部21は、ステップS203の判定結果に基づいて、処理の分岐先を決定する。ステップS203において、開始点に設定されたタスク状態において2つの対象物が互いに接触すると判定された場合、制御部21は、ステップS202に処理を戻し、開始点のタスク状態を再度設定する。一方、開始点に設定されたタスク状態において2つの対象物が互いに接触しないと判定された場合、制御部21は、設定された開始点のタスク状態をマニピュレータ4の現在のタスク状態として認定し、次のステップS205に処理を進める。
図12Aは、タスク空間SPにおいて、上記ステップS201~ステップS204の処理により開始点及び最終目標のタスク状態が設定された場面の一例を模式的に例示する。タスク空間SPは、タスク状態を規定する相対座標の集合を表現する。タスク空間SPを示す情報は、第2モデル生成装置2に保持されていてもよいし、保持されていなくてもよい。タスク空間SPに属する各ノード(点)は、2つの対象物の間の相対座標に対応する。図12Aの例では、ノードNsが、開始点のタスク状態における相対座標に対応し、ノードNgが、最終目標のタスク状態における相対座標に対応する。本実施形態では、タスク空間SPにおける2つの対象物が接触するか否かの境界面(接触境界面)は、学習済みの判定モデル50による判定結果に基づいて導出される。
(ステップS205~ステップS207)
ステップS205では、制御部21は、最終目標のタスク状態に近付くように、現在のタスク状態に対して次に遷移する目標のタスク状態を決定する。
ステップS205では、制御部21は、最終目標のタスク状態に近付くように、現在のタスク状態に対して次に遷移する目標のタスク状態を決定する。
目標のタスク状態を決定する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、目標のタスク状態における相対座標は、オペレータの入力により決定されてもよい。開始点となるタスク状態の設定と同様に、目標のタスク状態における相対座標は、任意のアルゴリズムにより決定されてもよいし、CADデータ220を利用して適宜決定されてもよい。また、例えば、制御部21は、開始点のタスク状態における相対座標をランダムに変更することで、目標のタスク状態における相対座標を決定してもよい。また、例えば、制御部21は、タスク空間SP内で、ノードNgに近付くように、ノードNsから所定距離だけ離れたノードを選択してもよい。制御部21は、選択されたノードに対応するタスク状態を目標のタスク状態として取得してもよい。また、例えば、後述する強化学習により推論モデル55を生成する場合には、強化学習の過程における推論モデル55を利用して、目標のタスク状態が決定されてよい。
また、例えば、目標のタスク状態の決定には、パスプランニング等の公知の方法が採用されてよい。一例として、制御部21は、タスク空間SPにおいて、目標のタスク状態の候補となるノードを設定してもよい。ノードの設定は、ランダムサンプリング等の方法で自動的に行われてもよいし、オペレータの入力により手動的に行われてもよい。一部のノードの設定が自動的に行われ、残りのノードの設定が手動的に行われてもよい。目標のタスク状態の候補となるノードの設定が行われた後、制御部21は、遷移可能なノードの組み合わせを適宜選択してよい。遷移可能なノードの組み合わせを選択する方法には、例えば、最近傍法等が採用されてよい。タスク空間SP内において、遷移可能なノードの組み合わせは、ノードを連結するエッジにより表現されてよい。次に、制御部21は、開始点のノードNsから最終目標のノードNgまでの経路を探索する。経路探索の方法には、ダイクストラ法等が採用されてよい。制御部21は、探索により得られた経路に含まれるノードに対応するタスク状態を目標のタスク状態として取得してもよい。
ステップS206では、制御部21は、接触判定部211として動作し、学習済みの判定モデル50を利用して、決定された目標のタスク状態において2つの対象物が互いに接触するか否かを判定する。開始点のタスク状態から目標のタスク状態に判定の対象が置き換わる点を除き、制御部21は、上記ステップS203と同様に、ステップS206の処理を実行してよい。すなわち、制御部21は、目標のタスク状態の相対座標を学習済みの判定モデル50に入力し、学習済みの判定モデル50の演算処理を実行する。これにより、制御部21は、目標のタスク状態において2つの対象物が互いに接触するか否かを判定した結果に対応する出力値を学習済みの判定モデル50から取得する。
ステップS207では、制御部21は、ステップS206の判定結果に基づいて、処理の分岐先を決定する。ステップS207において、目標のタスク状態において2つの対象物が互いに接触すると判定された場合、制御部21は、ステップS205に処理を戻し、目標のタスク状態を再度決定する。一方、目標のタスク状態において2つの対象物が互いに接触しないと判定された場合、制御部21は、次のステップS208に処理を進める。
なお、ステップS207における分岐先は、このような例に限定されなくてもよい。例えば、目標のタスク状態において2つの対象物が互いに接触すると判定された場合、制御部21は、ステップS202に処理を戻し、開始点の設定から処理をやり直してもよい。また、例えば、目標のタスク状態を複数回決定した後に、最後に決定された目標のタスク状態において2つの対象物が互いに接触すると判定された場合、制御部21は、ステップS205に処理を戻し、次に遷移する目標のタスク状態の決定を開始点から再度行ってもよい。接触までに決定された目標のタスク状態の系列は、最終目標のタスク状態まで到達不能な失敗事例として収集されてもよい。
図12Bは、タスク空間SPにおいて、上記ステップS205~ステップS207の処理により、目標のタスク状態が決定された場面の一例を模式的に例示する。図12Bの例では、ノードN1が、開始点のタスク状態(ノードNs)の次に遷移する目標のタスク状態として決定されたタスク状態における相対座標に対応する。なお、図12Bの例では、ステップS205において、1回の遷移分の目標のタスク状態が決定されたことを想定している。ただし、ステップS205において決定する目標のタスク状態の数は、1つに限られなくてもよい。ステップS205では、制御部21は、最終目標のタスク状態に向けて、複数回の遷移分の目標のタスク状態(目標のタスク状態の系列)を決定してもよい。
(ステップS208)
ステップS208では、制御部21は、ステップS205により決定された目標のタスク状態にマニピュレータ4の現在のタスク状態を遷移させる。そして、制御部21は、マニピュレータ4のタスク状態が最終目標のタスク状態に到達したか否か、すなわち、遷移先のタスク状態が最終目標のタスク状態であるか否かを判定する。タスク状態の遷移は、シミュレーションにより仮想空間上で行われてよい。最終目標のタスク状態に到達したと判定した場合、制御部21は、次のステップS209に処理を進める。一方、最終目標のタスク状態に到達していないと判定した場合、制御部21は、ステップS205に処理を戻し、更なる目標のタスク状態を決定する。
ステップS208では、制御部21は、ステップS205により決定された目標のタスク状態にマニピュレータ4の現在のタスク状態を遷移させる。そして、制御部21は、マニピュレータ4のタスク状態が最終目標のタスク状態に到達したか否か、すなわち、遷移先のタスク状態が最終目標のタスク状態であるか否かを判定する。タスク状態の遷移は、シミュレーションにより仮想空間上で行われてよい。最終目標のタスク状態に到達したと判定した場合、制御部21は、次のステップS209に処理を進める。一方、最終目標のタスク状態に到達していないと判定した場合、制御部21は、ステップS205に処理を戻し、更なる目標のタスク状態を決定する。
図12Cは、タスク空間SPにおいて、上記ステップS208までの処理により、開始点のタスク状態から最終目標のタスク状態までの遷移するタスク状態の系列が決定された場面の一例を模式的に例示する。各ノードN1~N4が、開始点のノードNsから最終目標のノードNgに到達するまでに、目標のタスク状態として決定されたタスク状態における相対座標に対応する。ノードN(k+1)は、ノードN(k)の次に遷移する目標のタスク状態を示す(kは、1~3)。図12Cに例示されるとおり、ステップS208までの処理により、制御部21は、開始点から最終目標までに遷移する目標のタスク状態の系列を得ることができる。
(ステップS209)
ステップS209では、制御部21は、ステップS202~ステップS208の処理を繰り返すか否かを判定する。処理を繰り返す基準は、実施の形態に応じて適宜決定されてよい。
ステップS209では、制御部21は、ステップS202~ステップS208の処理を繰り返すか否かを判定する。処理を繰り返す基準は、実施の形態に応じて適宜決定されてよい。
例えば、処理を繰り返す規定回数が設定されていてもよい。規定回数は、例えば、設定値により与えられてもよいし、オペレータの指定により与えられてもよい。この場合、制御部21は、ステップS202~ステップS208の処理を実行した回数が規定回数に到達したか否かを判定する。実行回数が規定回数に到達していないと判定した場合、制御部21は、ステップS202に処理を戻し、ステップS202~ステップS208の処理を繰り返す。一方、実行回数が規定回数に到達していると判定した場合には、制御部21は、次のステップS210に処理を進める。
また、例えば、制御部21は、処理を繰り返すか否かをオペレータに問い合わせてもよい。この場合、制御部21は、オペレータの回答に応じて、ステップS202~ステップS208の処理を繰り返すか否かを判定する。オペレータが処理を繰り返すと回答した場合、制御部21は、ステップS202に処理を戻し、ステップS202~ステップS208の処理を繰り返す。一方、オペレータが処理を繰り返さないと回答した場合、制御部21は、次のステップS210に処理を進める。
ステップS209までの処理により、図12Cに例示される開始点から最終目標までに遷移する目標のタスク状態の1つ以上の系列を得ることができる。制御部21は、データ収集部212として動作し、この開始点から最終目標までに遷移する目標のタスク状態の1つ以上の系列を収集する。そして、制御部21は、収集された系列により学習データ223を生成する。制御部21は、収集された系列をそのまま学習データ223として取得してもよいし、収集された系列に対して何らかの情報処理を実行することで学習データ223を生成してもよい。学習データ223の構成は、推論モデル55を生成する方法に応じて適宜決定されてよい。学習データ223の構成については後述する。
(ステップS210及びステップS211)
ステップS210では、制御部21は、モデル生成部213として動作する。すなわち、制御部21は、学習済みの判定モデル50による判定の結果を利用して得られた学習データ223を使用して、第1対象物が第2対象物に接触しないように、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論するための推論モデル55を生成する。推論モデル55を生成する方法については後述する。
ステップS210では、制御部21は、モデル生成部213として動作する。すなわち、制御部21は、学習済みの判定モデル50による判定の結果を利用して得られた学習データ223を使用して、第1対象物が第2対象物に接触しないように、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論するための推論モデル55を生成する。推論モデル55を生成する方法については後述する。
ステップS211では、制御部21は、保存処理部214として動作する。すなわち、制御部21は、生成された推論モデル55に関する情報を推論モデルデータ225として生成し、生成された推論モデルデータ225を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部21内のRAM、記憶部22、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。記憶メディアは、例えば、CD、DVD等であってよく、制御部21は、ドライブ27を介して記憶メディアに推論モデルデータ225を格納してもよい。外部記憶装置は、例えば、NAS等のデータサーバであってよい。この場合、制御部21は、通信インタフェース23を利用して、ネットワークを介してデータサーバに推論モデルデータ225を格納してもよい。また、外部記憶装置は、例えば、第2モデル生成装置2に接続された外付けの記憶装置であってもよい。
これにより、推論モデルデータ225の保存が完了すると、制御部21は、推論モデル55の生成に関する一連の処理を終了する。
なお、生成された推論モデルデータ225は、任意のタイミングで制御装置3に提供されてよい。例えば、制御部21は、ステップS211の処理として又はステップS211の処理とは別に、推論モデルデータ225を制御装置3に転送してもよい。制御装置3は、この転送を受信することで、推論モデルデータ225を取得してもよい。また、例えば、制御装置3は、通信インタフェース33を利用して、第2モデル生成装置2又はデータサーバにネットワークを介してアクセスすることで、推論モデルデータ225を取得してもよい。また、例えば、制御装置3は、記憶媒体93を介して、推論モデルデータ225を取得してもよい。また、例えば、推論モデルデータ225は、制御装置3に予め組み込まれてもよい。
更に、制御部21は、上記ステップS201~ステップS211の処理を定期又は不定期に繰り返すことで、推論モデルデータ225を更新又は新たに生成してもよい。この繰り返しの際には、学習データ223の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部21は、更新した又は新たに生成した推論モデルデータ225を学習処理の実行毎に制御装置3に提供することで、制御装置3の保持する推論モデルデータ225を更新してもよい。
<推論モデルの生成方法>
次に、上記ステップS210における推論モデル55の生成方法の具体例について説明する。本実施形態では、制御部21は、以下の2つの方法のうちの少なくともいずれかの方法により、推論モデル55を生成することができる。
次に、上記ステップS210における推論モデル55の生成方法の具体例について説明する。本実施形態では、制御部21は、以下の2つの方法のうちの少なくともいずれかの方法により、推論モデル55を生成することができる。
(1)第1の方法
第1の方法では、制御部21は、機械学習を実施することで、推論モデル55を生成する。この場合、推論モデル55は、機械学習モデルにより構成される。機械学習モデルの種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。推論モデル55は、例えば、関数式、データテーブル等により表現されてよい。関数式で表現される場合、推論モデル55は、例えば、ニューラルネットワーク、サポートベクタマシン、回帰モデル、決定木等により構成されてよい。また、機械学習の方法も、特に限定されなくてもよく、推論モデル55の構成に応じて適宜選択されてよい。推論モデル55の機械学習の方法には、例えば、教師あり学習、強化学習等が採用されてよい。以下、推論モデル55を構成する機械学習モデル及び機械学習の方法それぞれの2つの例について説明する。
第1の方法では、制御部21は、機械学習を実施することで、推論モデル55を生成する。この場合、推論モデル55は、機械学習モデルにより構成される。機械学習モデルの種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。推論モデル55は、例えば、関数式、データテーブル等により表現されてよい。関数式で表現される場合、推論モデル55は、例えば、ニューラルネットワーク、サポートベクタマシン、回帰モデル、決定木等により構成されてよい。また、機械学習の方法も、特に限定されなくてもよく、推論モデル55の構成に応じて適宜選択されてよい。推論モデル55の機械学習の方法には、例えば、教師あり学習、強化学習等が採用されてよい。以下、推論モデル55を構成する機械学習モデル及び機械学習の方法それぞれの2つの例について説明する。
(1-1)第1の例
図13は、推論モデル55を構成する機械学習モデル及び機械学習の方法の第1の例を模式的に示す。第1の例では、推論モデル55にニューラルネットワーク、機械学習の方法に教師あり学習を採用する。なお、図13の例では、説明の便宜上、推論モデル55、学習データ223、及び推論モデルデータ225それぞれの一例を、推論モデル551、学習データ2231、及び推論モデルデータ2251と表記する。
図13は、推論モデル55を構成する機械学習モデル及び機械学習の方法の第1の例を模式的に示す。第1の例では、推論モデル55にニューラルネットワーク、機械学習の方法に教師あり学習を採用する。なお、図13の例では、説明の便宜上、推論モデル55、学習データ223、及び推論モデルデータ225それぞれの一例を、推論モデル551、学習データ2231、及び推論モデルデータ2251と表記する。
(1-1-1)推論モデルの構成例
第1の例では、推論モデル551は、3層構造の再帰型ニューラルネットワークにより構成されている。具体的に、推論モデル551は、入力層N51、LSTM(長期短期記憶:Long short-term memory)ブロックN52、及び出力層N53を備えている。LSTMブロックN52は、中間層に対応する。
第1の例では、推論モデル551は、3層構造の再帰型ニューラルネットワークにより構成されている。具体的に、推論モデル551は、入力層N51、LSTM(長期短期記憶:Long short-term memory)ブロックN52、及び出力層N53を備えている。LSTMブロックN52は、中間層に対応する。
LSTMブロックN52は、入力ゲート及び出力ゲートを備え、情報の記憶及び出力のタイミングを学習可能に構成されたブロックである(S.Hochreiter and J.Schmidhuber, “Long short-term memory” Neural Computation, 9(8):1735-1780, November 15, 1997)。LSTMブロックN52は、情報の忘却のタイミングを調節する忘却ゲートを更に備えてもよい(Felix A. Gers, Jurgen Schmidhuber and Fred Cummins, "Learning to Forget: Continual Prediction with LSTM" Neural Computation, pages 2451-2471, October 2000)。LSTMブロックN52の構成は、実施の形態に応じて適宜設定されてよい。
なお、推論モデル551の構造は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。推論モデル551は、異なる構造の再帰型ニューラルネットワークにより構成されてもよい。或いは、推論モデル551は、再帰型ではなく、上記判定モデル50と同様に全結合型ニューラルネットワーク、又は畳み込みニューラルネットワークにより構成されてもよい。或いは、推論モデル551は、複数種類のニューラルネットワークの組み合わせにより構成されてもよい。また、推論モデル551の備える中間層の数は、1つに限られなくてもよく、2つ以上であってもよい。或いは、中間層は、省略されてもよい。その他、推論モデル551の構成は、上記判定モデル50と同様であってよい。
(1-1-2)学習データの構成例
推論モデル551の教師あり学習に利用される学習データ2231は、訓練データ(入力データ)及び正解データ(教師信号)の組み合わせを含む複数の学習データセットL30により構成される。訓練データは、訓練用の現在のタスク状態L31における相対座標及び訓練用の最終目標のタスク状態L32における相対座標により構成されてよい。正解データは、訓練用の目標のタスク状態L33における相対座標により構成されてよい。なお、訓練データ及び正解データの形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、訓練データには、相対座標がそのまま利用されてもよいし、或いは、相対座標を特徴量に変換することで得られた値が利用されてもよい。
推論モデル551の教師あり学習に利用される学習データ2231は、訓練データ(入力データ)及び正解データ(教師信号)の組み合わせを含む複数の学習データセットL30により構成される。訓練データは、訓練用の現在のタスク状態L31における相対座標及び訓練用の最終目標のタスク状態L32における相対座標により構成されてよい。正解データは、訓練用の目標のタスク状態L33における相対座標により構成されてよい。なお、訓練データ及び正解データの形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、訓練データには、相対座標がそのまま利用されてもよいし、或いは、相対座標を特徴量に変換することで得られた値が利用されてもよい。
制御部21は、ステップS209までの処理により得られた目標のタスク状態の1つ以上の系列から各学習データセットL30を生成することができる。例えば、ノードNgにより示される最終目標のタスク状態を、訓練用の最終目標のタスク状態L32として利用することができる。また、制御部21は、ノードNsにより示される開始点のタスク状態を訓練用の現在のタスク状態L31に設定した場合、対応する正解データにおける訓練用の目標のタスク状態L33に、ノードN1により示されるタスク状態を設定してよい。同様に、制御部21は、ノードN(k)により示されるタスク状態を訓練用の現在のタスク状態L31に設定した場合、対応する正解データにおける訓練用の目標のタスク状態L33に、ノードN(k+1)により示されるタスク状態を設定してよい。制御部21は、ノードN4により示されるタスク状態を訓練用の現在のタスク状態L31に設定した場合、対応する正解データにおける訓練用の目標のタスク状態L33に、ノードNgにより示される最終目標のタスク状態を設定してよい。これにより、得られた目標のタスク状態の1つ以上の系列から各学習データセットL30を生成することができる。
(1-1-3)ステップS210について
上記ステップS210では、制御部21は、取得された複数の学習データセットL30を使用して、推論モデル551の機械学習(教師あり学習)を実施する。第1の例では、制御部21は、機械学習により、各学習データセットL30について、訓練データを入力層N51に入力すると、正解データに適合する出力値を出力層N53から出力するように推論モデル551を訓練する。これにより、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論する能力を獲得した学習済みの推論モデル551を生成することができる。
上記ステップS210では、制御部21は、取得された複数の学習データセットL30を使用して、推論モデル551の機械学習(教師あり学習)を実施する。第1の例では、制御部21は、機械学習により、各学習データセットL30について、訓練データを入力層N51に入力すると、正解データに適合する出力値を出力層N53から出力するように推論モデル551を訓練する。これにより、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論する能力を獲得した学習済みの推論モデル551を生成することができる。
推論モデル551の機械学習の方法は、上記判定モデル50の機械学習の方法と同様であってよい。すなわち、第1のステップでは、制御部21は、各学習データセットL30について、推論モデル551の入力層N51に訓練データを入力し、推論モデル551の演算処理を実行する。これにより、制御部21は、現在のタスク状態に対して次に遷移する目標のタスク状態を推論した結果に対応する出力値を推論モデル551の出力層L53から取得する。第2のステップでは、制御部21は、出力層L53の出力値と正解データとの誤差を損失関数に基づいて算出する。
続いて、第3のステップでは、制御部21は、誤差逆伝播法により、算出された出力値の誤差の勾配を用いて、推論モデル551の各演算パラメータの値の誤差を算出する。制御部21は、算出された誤差の勾配を用いて、推論モデル551の各演算パラメータ(例えば、各ニューロン間の結合の重み、各ニューロンの閾値等)の値の誤差を算出する。第4のステップでは、制御部21は、算出された各誤差に基づいて、推論モデル551の演算パラメータの値を更新する。更新の程度は、学習率により調節されてよい。学習率は、オペレータの指定により与えられてもよいし、プログラム内の設定値として与えられてもよい。
制御部21は、上記第1~第4のステップを繰り返すことで、各学習データセットL30について、出力層N53から出力される出力値と正解データとの誤差の和が小さくなるように、推論モデル551の演算パラメータの値を調整する。例えば、制御部21は、誤差の和が閾値以下になるまで、上記第1~第4のステップの処理を繰り返してもよい。閾値は、実施の形態に応じて適宜設定されてよい。或いは、制御部21は、上記第1~第4のステップを所定回数繰り返してもよい。調整を繰り返す回数は、例えば、プログラム内の設定値で指定されてもよいし、オペレータの入力により指定されてもよい。
この機械学習(教師あり学習)の結果により、制御部21は、各学習データセットL30について、訓練データを入力層N51に入力すると、対応する正解データに適合する出力値を出力層N53から出力するように訓練された学習済みの推論モデル551を構築することができる。すなわち、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論する能力を獲得した学習済みの推論モデル551を構築することができる。
ステップS211では、制御部21は、教師あり学習により構築された学習済みの推論モデル551の構造及び演算パラメータを示す情報を推論モデルデータ2251として生成する。そして、制御部21は、生成された推論モデルデータ2251を所定の記憶領域に保存する。なお、推論モデルデータ2251の内容は、学習済みの推論モデル551を再生可能であれば、このような例に限定されなくてもよい。例えば、各装置間で推論モデル551の構造が共通化されている場合、推論モデルデータ2251において推論モデル551の構造を示す情報は省略されてよい。
(1-1-4)その他
なお、機械学習の方法に教師あり学習を採用する場合、推論モデル551の構成は、ニューラルネットワークに限られなくてよい。ニューラルネットワーク以外の機械学習モデルが推論モデル551として採用されてもよい。推論モデル551を構成する機械学習モデルには、例えば、サポートベクタマシン、回帰モデル、決定木等が採用されてもよい。教師あり学習の方法は、上記の例に限定されなくてよく、機械学習モデルの構成に応じて適宜選択されてよい。
なお、機械学習の方法に教師あり学習を採用する場合、推論モデル551の構成は、ニューラルネットワークに限られなくてよい。ニューラルネットワーク以外の機械学習モデルが推論モデル551として採用されてもよい。推論モデル551を構成する機械学習モデルには、例えば、サポートベクタマシン、回帰モデル、決定木等が採用されてもよい。教師あり学習の方法は、上記の例に限定されなくてよく、機械学習モデルの構成に応じて適宜選択されてよい。
(1-2)第2の例
図14は、推論モデル55を構成する機械学習モデル及び機械学習の方法の第2の例を模式的に示す。第2の例では、機械学習の方法に強化学習を採用する。なお、図14の例では、説明の便宜上、推論モデル55、学習データ223、及び推論モデルデータ225それぞれの一例を、推論モデル552、学習データ2232、及び推論モデルデータ2252と表記する。
図14は、推論モデル55を構成する機械学習モデル及び機械学習の方法の第2の例を模式的に示す。第2の例では、機械学習の方法に強化学習を採用する。なお、図14の例では、説明の便宜上、推論モデル55、学習データ223、及び推論モデルデータ225それぞれの一例を、推論モデル552、学習データ2232、及び推論モデルデータ2252と表記する。
(1-2-1)推論モデルの構成例
第2の例では、推論モデル552には、価値ベース、方策ベース、又はその両方が採用されてよい。価値ベースを採用する場合、推論モデル552は、例えば、状態価値関数、行動価値関数(Q関数)等の価値関数により構成されてよい。状態価値関数は、与えられた状態の価値を出力するように構成される。行動価値関数は、与えられた状態に対して各行動の価値を出力するように構成される。方策ベースを採用する場合、推論モデル552は、例えば、方策関数により構成されてよい。方策関数は、与えられた状態に対して各行動を選択する確率を出力するように構成される。両方を採用する場合、推論モデル552は、例えば、価値関数(Critic)及び方策関数(Actor)により構成されてよい。各関数は、例えば、データテーブル、関数式等により表現されてよい。関数式により表現する場合、各関数は、ニューラルネットワーク、線形関数、決定木等により構成されてよい。なお、中間(隠れ)層が複数存在する多層構造のニューラルネットワークにより各関数を構成することで、深層強化学習が実施されてよい。
第2の例では、推論モデル552には、価値ベース、方策ベース、又はその両方が採用されてよい。価値ベースを採用する場合、推論モデル552は、例えば、状態価値関数、行動価値関数(Q関数)等の価値関数により構成されてよい。状態価値関数は、与えられた状態の価値を出力するように構成される。行動価値関数は、与えられた状態に対して各行動の価値を出力するように構成される。方策ベースを採用する場合、推論モデル552は、例えば、方策関数により構成されてよい。方策関数は、与えられた状態に対して各行動を選択する確率を出力するように構成される。両方を採用する場合、推論モデル552は、例えば、価値関数(Critic)及び方策関数(Actor)により構成されてよい。各関数は、例えば、データテーブル、関数式等により表現されてよい。関数式により表現する場合、各関数は、ニューラルネットワーク、線形関数、決定木等により構成されてよい。なお、中間(隠れ)層が複数存在する多層構造のニューラルネットワークにより各関数を構成することで、深層強化学習が実施されてよい。
(1-2-2)学習データの構成例
強化学習では、基本的に、方策に従って行動することで、学習の環境と相互作用するエージェントが仮定される。エージェントの実体は、例えば、CPUである。推論モデル552は、上記の構成により、行動を決定する方策として動作する。エージェントは、与えられた学習の環境内で、強化する行動に関する状態を観測する。本実施形態では、観測対象となる状態は、相対座標により規定されるタスク状態であり、実行される行動は、現在のタスク状態から目標のタスク状態への遷移である。方策は、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を決定(推論)するように構成される。
強化学習では、基本的に、方策に従って行動することで、学習の環境と相互作用するエージェントが仮定される。エージェントの実体は、例えば、CPUである。推論モデル552は、上記の構成により、行動を決定する方策として動作する。エージェントは、与えられた学習の環境内で、強化する行動に関する状態を観測する。本実施形態では、観測対象となる状態は、相対座標により規定されるタスク状態であり、実行される行動は、現在のタスク状態から目標のタスク状態への遷移である。方策は、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を決定(推論)するように構成される。
エージェントは、観測された現在のタスク状態(入力データ)を推論モデル552に与えて、次に遷移する目標のタスク状態を推論してよい。エージェントは、この推論の結果に基づいて、目標のタスク状態を決定してもよい。或いは、目標のタスク状態は、ランダムに決定されてよい。これにより、エージェントは、採用する行動を決定することができる。決定された目標のタスク状態に遷移する行動をエージェントが実行すると、観測されるタスク状態は次のタスク状態に遷移する。場合によって、エージェントは、学習の環境から即時報酬を得ることができる。
この行動の決定及び実行の試行錯誤を繰り返しながら、エージェントは、即時報酬の総和(すなわち、価値)を最大化するように、推論モデル552を更新する。これにより、最適な行動、すなわち、高い価値の取得を期待可能な行動が強化され、そのような行動の選択を可能にする方策(学習済みの推論モデル552)を得ることができる。
したがって、強化学習では、学習データ2232は、この試行錯誤により得られる状態遷移データであって、実行された行動により現在のタスク状態から次のタスク状態に遷移し、場合によって即時報酬が得られるという状態遷移を示す状態遷移データにより構成される。1件の状態遷移データは、1エピソード全ての状態遷移の軌跡を示すデータにより構成されてもよいし、或いは、所定回数(1回以上)分の状態遷移を示すデータにより構成されてもよい。上記ステップS202~ステップS209の処理過程において、制御部21は、訓練中の推論モデル552を利用して、上記試行錯誤を実行することで、上記状態遷移データを取得することができる。
また、状態遷移に応じて即時報酬を算出するのには報酬関数が用いられてよい。報酬関数は、データテーブル、関数式、又はルールにより表現されてよい。関数式により表現する場合、報酬関数は、ニューラルネットワーク、線形関数、決定木等により構成されてよい。報酬関数は、オペレータ等により、手動的に設定されてもよい。
或いは、報酬関数は、遷移する対象のタスク状態において第1対象物及び第2対象物が互いに接触するか否かを上記学習済みの判定モデル50により判定した結果、並びに当該対象のタスク状態及び最終目標のタスク状態の間の距離に応じて即時報酬を与えるように設定されてよい。具体的には、即時報酬は、第1対象物及び第2対象物が互いに接触せず、かつ対象のタスク状態及び最終目標のタスク状態の間の距離が短いほど多く設定され、第1対象物及び第2対象物が互いに接触する、又は当該距離が長いほど少なく設定されてよい。以下の式1は、このように即時報酬を与える報酬関数の一例を例示する。
或いは、報酬関数は、エキスパートにより得られた事例データから逆強化学習により推定されてよい。事例データは、エキスパートによる実演(の軌跡)を示すデータにより構成されてよい。本実施形態では、事例データは、例えば、任意の開始点のタスク状態から最終目標のタスク状態に到達するように第1対象物を実際に移動した経路を示すデータにより構成されてよい。事例データを生成する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。事例データは、例えば、エキスパートによる実演の軌跡をセンサ等により記録することにより生成されてよい。
逆強化学習の方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。逆強化学習には、例えば、最大エントロピー原理による方法、相対エントロピーの最小化による方法、敵対的生成ネットワークを利用した方法(例えば、Justin Fu, et al., "Learning Robust Rewards with Adversarial Inverse Reinforcement Learning", arXiv:1710.11248, 2018)等が用いられてよい。逆強化学習により報酬関数を得る場合、学習データ2232は、逆強化学習に利用する事例データを更に備えてよい。
(1-2-3)ステップS210について
上記ステップS210では、制御部21は、得られた状態遷移データに基づいて、価値を最大化するように推論モデル552の演算パラメータの値を更新する。推論モデル552の演算パラメータの値を調整する方法は、推論モデル552の構成に応じて適宜選択されてよい。例えば、推論モデル552がニューラルネットワークにより構成される場合、推論モデル552の演算パラメータの値は、誤差逆伝播法等により、上記第1の例と同様の方法で調整されてよい。
上記ステップS210では、制御部21は、得られた状態遷移データに基づいて、価値を最大化するように推論モデル552の演算パラメータの値を更新する。推論モデル552の演算パラメータの値を調整する方法は、推論モデル552の構成に応じて適宜選択されてよい。例えば、推論モデル552がニューラルネットワークにより構成される場合、推論モデル552の演算パラメータの値は、誤差逆伝播法等により、上記第1の例と同様の方法で調整されてよい。
制御部21は、得られる価値(の期待値)が最大化されるように(例えば、更新量が閾値以下になるまで)、推論モデル552の演算パラメータの値を調整する。すなわち、推論モデル552を訓練することは、所定の条件(例えば、更新量が閾値以下になること)を満たすまで報酬が多く得られるように推論モデル552を構成する演算パラメータの値の修正を繰り返すことを含む。これにより、制御部21は、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論する能力を獲得した学習済みの推論モデル552を生成することができる。
なお、制御部21は、ステップS202~ステップS209の処理により学習データ2232を収集し終えた後に、上記推論モデル552の演算パラメータの値の調整を実行してもよい。或いは、制御部21は、ステップS202~ステップS210の処理を繰り返しながら、上記推論モデル552の演算パラメータの値の調整を実行してもよい。
推論モデル552が価値ベースで構成される場合、上記強化学習の方法には、TD(temporal difference)法、TD(λ)法、モンテカルロ法、動的計画法等が用いられてよい。試行錯誤における行動の決定は、オンポリシであってもよいし、オフポリシであってもよい。具体例として、強化学習の方法には、Q学習、Sarsa等が用いられてよい。試行錯誤の際には、確率εでランダムな行動を採用してもよい(ε-グリーディ法)。
また、推論モデル552が方策ベースで構成される場合、上記強化学習の方法には、方策勾配法、TRPO(trust region policy optimization)、PPO(proximal policy optimization)等が用いられてよい。この場合、制御部21は、得られる価値が増加する方向に方策関数の演算パラメータの勾配を算出し、算出された勾配に基づいて、方策関数の演算パラメータの値を更新する。方策関数の勾配の算出には、例えば、REINFORCEアルゴリズム等が用いられてよい。
また、推論モデル55が両方で構成される場合、上記強化学習の方法には、Actor Critic法、A2C(Advantage Actor Critic)、A3C(Asynchronous Advantage Actor Critic)等が用いられてよい。
更に、逆強化学習を実施する場合には、上記強化学習の処理を実行する前に、制御部21は、事例データを更に取得する。事例データは、第2モデル生成装置2により生成されてもよいし、他のコンピュータにより生成されてもよい。他のコンピュータにより生成される場合、制御部21は、ネットワーク、記憶媒体92等を介して、他のコンピュータにより生成された事例データを取得してもよい。次に、制御部21は、取得された事例データを利用して、逆強化学習を実行することで、報酬関数を設定する。そして、制御部21は、逆強化学習により設定された報酬関数を利用して、上記強化学習の処理を実行する。これにより、制御部21は、逆強化学習により設定された報酬関数を利用して、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論する能力を獲得した学習済みの推論モデル552を生成することができる。
ステップS211では、制御部21は、強化学習により構築された学習済みの推論モデル552を示す情報を推論モデルデータ2252として生成する。学習済みの推論モデル552を示す情報には、例えば、データテーブルの各項目の値、関数式の係数の値等の演算パラメータを示す情報が含まれてよい。そして、制御部21は、生成された推論モデルデータ2252を所定の記憶領域に保存する。第2の例によれば、第1対象物及び第2対象物の無用な接触を避けると共に、マニピュレータ4のタスク状態が最終目標のタスク状態に早く到達するように目標のタスク状態を決定可能な推論モデル55を生成することができる。
(1-3)小括
本実施形態では、機械学習モデルにより推論モデル55を構成する場合、推論モデル55の構成には、上記2つの例の少なくともいずれかが採用されてもよい。制御部21は、上記2つの機械学習の方法の少なくともいずれかを採用することで、第1対象物が第2対象物に接触しないように、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論する能力を獲得した学習済みの推論モデル55を生成することができる。よって、第1の方法によれば、タスクの遂行に利用可能な推論モデル55を適切に生成することができる。
本実施形態では、機械学習モデルにより推論モデル55を構成する場合、推論モデル55の構成には、上記2つの例の少なくともいずれかが採用されてもよい。制御部21は、上記2つの機械学習の方法の少なくともいずれかを採用することで、第1対象物が第2対象物に接触しないように、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論する能力を獲得した学習済みの推論モデル55を生成することができる。よって、第1の方法によれば、タスクの遂行に利用可能な推論モデル55を適切に生成することができる。
(2)第2の方法
図15Aは、第2の方法における学習データ223の一例を模式的に例示する。図15Bは、第2の方法における推論モデル55の構成の一例を模式的に例示する。第2の方法では、推論モデル55は、タスク状態の集合を表現するタスク空間SP内の各座標のポテンシャルを規定するポテンシャル場により構成される。なお、図15A及び図15Bでは、説明の便宜上、推論モデル55、学習データ223、及び推論モデルデータ225それぞれの一例を、推論モデル553、学習データ2233、及び推論モデルデータ2253と表記する。
図15Aは、第2の方法における学習データ223の一例を模式的に例示する。図15Bは、第2の方法における推論モデル55の構成の一例を模式的に例示する。第2の方法では、推論モデル55は、タスク状態の集合を表現するタスク空間SP内の各座標のポテンシャルを規定するポテンシャル場により構成される。なお、図15A及び図15Bでは、説明の便宜上、推論モデル55、学習データ223、及び推論モデルデータ225それぞれの一例を、推論モデル553、学習データ2233、及び推論モデルデータ2253と表記する。
制御部21は、上記ステップS202~ステップS209の処理により、タスク空間SP内で、学習済みの判定モデル50を利用して、第1対象物が第2対象物に接触しないように、パスプランニングを実施する。これにより、図15Aに例示されるとおり、制御部21は、それぞれ開始点(ノードNs)として与えられた複数のタスク状態それぞれから最終目標のタスク状態までの経路Hbを示す学習データ2233を生成することができる。各開始点(ノードNs)は、ランダムに与えられてよい。
上記ステップS210では、制御部21は、生成された学習データ2233により示される各経路Hbの通過する頻度に応じて、各座標のポテンシャルを設定することで、ポテンシャル場を生成する。ポテンシャル場を導出する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。制御部21は、は、例えば、カーネル密度推定、混合ガウスモデル(GMM:Gaussian Mixture Model)を用いた推定により、学習データ3233からポテンシャル場を導出してもよい。これにより、図15Bに例示されるポテンシャル場(推論モデル553)を得ることができる。
ポテンシャル場における各座標のポテンシャルは、最終目標に到達することに対する、各座標における第1対象物及び第2対象物の位置関係の評価値を示す。すなわち、ポテンシャルが高いほど、その座標における位置関係が最終目標に到達する可能性が高いことを示し、ポテンシャルが低いほど、その座標における位置関係が最終目標に到達する可能性が低いことを示す。そのため、ポテンシャルの勾配の高い方に遷移することで、開始点となる任意のタスク状態から最終目標のタスク状態に適切に到達することができる。よって、第2の方法によれば、タスクの遂行に利用可能な推論モデル55を適切に生成することができる。
ステップS211では、制御部21は、生成されたポテンシャル場を示す情報を推論モデルデータ2253として生成する。ポテンシャル場は、データテーブル、関数式等により表現されてよい。そして、制御部21は、生成された推論モデルデータ2253を所定の記憶領域に保存する。
(3)小括
本実施形態では、推論モデル55を生成する方法として、上記2つの方法のうちの少なくともいずれかが採用されてよい。制御部21は、上記2つの方法のうちの少なくともいずれかを採用することで、第1対象物が第2対象物に接触しないように、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論するように構成された推論モデル55を生成することができる。
本実施形態では、推論モデル55を生成する方法として、上記2つの方法のうちの少なくともいずれかが採用されてよい。制御部21は、上記2つの方法のうちの少なくともいずれかを採用することで、第1対象物が第2対象物に接触しないように、現在のタスク状態及び最終目標のタスク状態から次に遷移する目標のタスク状態を推論するように構成された推論モデル55を生成することができる。
なお、第1対象物が第2対象物に接触しないように目標のタスク状態を推論することは、第1対象物及び第2対象物の間で意図しない接触が生じるのを避けて目標のタスク状態を決定することであり、例えば、エンドエフェクタTがワークWを保持する等の第1対象物が第2対象物に適正に接触するタスク状態を目標のタスク状態として決定することを含んでもよい。すなわち、避ける対象となる「接触する」状態は、例えば、第1対象物及び第2対象物の間で過度な力が作用する、第1対象物及び第2対象物の一方が他方に正しい姿勢で組付けられる以外の状態で接触する等の不適正に接触する状態である。したがって、「第1対象物が第2対象物に接触しない」ことは、「第1対象物が第2対象物に不適正な状態で接触するのを避ける」ことに置き換えられてよい。
[制御装置]
(A)動作制御
次に、図16A、図16B及び図17を用いて、本実施形態に係る制御装置3のマニピュレータ4の動作制御に関する動作例について説明する。図16A及び図16Bは、本実施形態に係る制御装置3によるマニピュレータ4の動作制御に関する処理手順の一例を示すフローチャートである。図17は、動作制御の過程における各要素の計算処理のフローの一例を示す。ただし、以下で説明する各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。なお、以下で説明するマニピュレータ4の動作の制御は、実空間上で実施されてもよいし、或いは仮想空間上で実施されてもよい。
(A)動作制御
次に、図16A、図16B及び図17を用いて、本実施形態に係る制御装置3のマニピュレータ4の動作制御に関する動作例について説明する。図16A及び図16Bは、本実施形態に係る制御装置3によるマニピュレータ4の動作制御に関する処理手順の一例を示すフローチャートである。図17は、動作制御の過程における各要素の計算処理のフローの一例を示す。ただし、以下で説明する各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。なお、以下で説明するマニピュレータ4の動作の制御は、実空間上で実施されてもよいし、或いは仮想空間上で実施されてもよい。
(ステップS301及びステップS302)
ステップS301では、制御部31は、遂行するタスクの指定を受け付ける。タスクの指定を受け付ける方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部31は、入力装置35を介したタスクの名称の入力により、遂行するタスクの指定を受け付けてもよい。また、例えば、制御部31は、遂行するタスクの候補を示すリストを出力装置36に出力し、オペレータに遂行するタスクをリストから選択させることで、遂行するタスクの指定を受け付けてもよい。
ステップS301では、制御部31は、遂行するタスクの指定を受け付ける。タスクの指定を受け付ける方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部31は、入力装置35を介したタスクの名称の入力により、遂行するタスクの指定を受け付けてもよい。また、例えば、制御部31は、遂行するタスクの候補を示すリストを出力装置36に出力し、オペレータに遂行するタスクをリストから選択させることで、遂行するタスクの指定を受け付けてもよい。
本実施形態では、制御部31は、第1対象物及び第2対象物の存在する環境下で、第2対象物に対して第1対象物を移動するタスクの遂行を受け付ける。具体的には、マニピュレータ4を駆動して、エンドエフェクタTによりワークWを保持し、保持したワークWを他のワークGに組み付ける一連の作業が、指定されるタスクの一例である。本実施形態では、ワークWを保持しに行く第1タスクの過程では、エンドエフェクタTの注目点T0がマニピュレータ4の手先として取り扱われ、ワークWが、手先の移動の目標物である。一方、ワークWを保持した後、ワークWを他のワークGに組み付ける第2タスクの過程では、エンドエフェクタTに保持されたワークWの注目点W0がマニピュレータ4の手先として取り扱われ、ワークWの組付け先である他のワークWが、手先の移動の目標物である。各タスクでは、マニピュレータ4の手先が第1対象物に相当し、目標物が第2対象物に相当する。
ステップS302では、制御部31は、目標設定部310として動作し、指定されたタスクに応じて最終目標のタスク状態sgを設定する。上記のとおり、本実施形態では、タスク状態は、マニピュレータ4の手先及び目標物の間の位置関係により規定される。また、位置関係は、相対座標により表現される。最終目標のタスク状態sgにおける相対座標は、CAD等のシミュレータにより与えられてもよいし、オペレータの指定により与えられてもよい。最終目標のタスク状態sgにおける相対座標は、上記ステップS201と同様の方法により設定されてよい。最終目標のタスク状態sgを設定すると、制御部31は、次のステップS303に処理を進める。
(ステップS303)
ステップS303では、制御部31は、第1データ取得部311として動作し、第1センサ系から第1センシングデータ323を取得する。また、制御部31は、第2データ取得部312として動作し、第2センサ系から第2センシングデータ324を取得する。
ステップS303では、制御部31は、第1データ取得部311として動作し、第1センサ系から第1センシングデータ323を取得する。また、制御部31は、第2データ取得部312として動作し、第2センサ系から第2センシングデータ324を取得する。
本実施形態では、第1センサ系は、各関節(関節部41~46)の角度を測定するエンコーダS2及びエンドエフェクタTに作用する力を測定する触覚センサS3により構成される。制御部31は、第1センシングデータ323として、マニピュレータ4における各関節の角度の現在値q(j)(すなわち、現在の測定値)を各エンコーダS2から取得することができる。更に、制御部31は、第1センシングデータ323として、エンドエフェクタTに作用する力の測定データを触覚センサS3から取得することができる。また、本実施形態では、第2センサ系は、カメラS1により構成される。制御部31は、第2センシングデータ324として、タスクを遂行する環境の写る画像データをカメラS1から取得することができる。なお、以下では、説明の便宜のため、「現在」等のタイミングを特に区別する場合に(j)等のタイミングを表す符号を付し、そうではない場合には当該符号を省略する。
制御部31は、各センサ(カメラS1、エンコーダS2、触覚センサS3)から各センシングデータ(323、324)を直接的に取得してもよいし、或いは、例えば、他のコンピュータを経由する等して、各センシングデータ(323、324)を間接的に取得してもよい。カメラS1及び触覚センサS3はそれぞれ、エンドエフェクタTに対するワークWの状態を観測する観測センサの一例である。各センシングデータ(323、324)を取得すると、制御部31は、次のステップS304に処理を進める。
(ステップS304)
ステップS304では、制御部31は、ステップS303により得られた上記観測センサのセンシングデータに基づいて、エンドエフェクタTがワークWを保持しているか否かを判定する。判定方法は、特に限定されなくてもよく、センシングデータに応じて適宜決定されてよい。
ステップS304では、制御部31は、ステップS303により得られた上記観測センサのセンシングデータに基づいて、エンドエフェクタTがワークWを保持しているか否かを判定する。判定方法は、特に限定されなくてもよく、センシングデータに応じて適宜決定されてよい。
例えば、本実施形態では、第2センシングデータ324として、タスクの環境が写る画像データをカメラS1から取得することができる。そこで、制御部31は、CADデータ320を利用して、取得された画像データに対してエンドエフェクタT及びワークWのモデルをマッチングしてもよい。そして、制御部31は、当該マッチングの結果により特定されたエンドエフェクタT及びワークWの位置関係に基づいて、エンドエフェクタTがワークWを保持しているか否かを判定してもよい。マッチングの方法には、公知の画像処理方法が用いられてよい。
また、例えば、本実施形態では、第1センシングデータ323として、エンドエフェクタTに作用する力の測定データを取得することができる。そこで、制御部31は、測定データにより表れる力の分布に基づいて、エンドエフェクタTがワークWを保持しているか否かを判定してもよい。エンドエフェクタTがワークWを保持していると認められる力がエンドエフェクタTに作用していると測定データから推定される場合、制御部31は、エンドエフェクタTがワークWを保持していると判定してもよい。一方、そうではない場合、制御部31は、エンドエフェクタTはワークWを保持していないと判定してもよい。
センシングデータに基づいて、エンドエフェクタTがワークWを保持しているか否かの判定が完了すると、制御部31は、次のステップS305に処理を進める。
(ステップS305)
ステップS305では、制御部31は、ステップS304の判定の結果に基づいて、マニピュレータ4の動作モードを設定する。具体的には、エンドエフェクタTがワークWを保持していないと判定した場合、制御部31は、エンドエフェクタTの注目点T0をマニピュレータ4の手先に設定し、エンドエフェクタTによりワークWを保持する第1タスクを遂行するモードに動作モードを設定する。一方、エンドエフェクタTがワークWを保持していると判定した場合、制御部31は、ワークWの注目点W0をマニピュレータ4の手先に設定し、エンドエフェクタTにより保持されたワークWを他のワークGに組み付ける第2タスクを遂行するモードに動作モードを設定する。動作モードの設定が完了すると、制御部31は、次のステップS306に処理を進める。
ステップS305では、制御部31は、ステップS304の判定の結果に基づいて、マニピュレータ4の動作モードを設定する。具体的には、エンドエフェクタTがワークWを保持していないと判定した場合、制御部31は、エンドエフェクタTの注目点T0をマニピュレータ4の手先に設定し、エンドエフェクタTによりワークWを保持する第1タスクを遂行するモードに動作モードを設定する。一方、エンドエフェクタTがワークWを保持していると判定した場合、制御部31は、ワークWの注目点W0をマニピュレータ4の手先に設定し、エンドエフェクタTにより保持されたワークWを他のワークGに組み付ける第2タスクを遂行するモードに動作モードを設定する。動作モードの設定が完了すると、制御部31は、次のステップS306に処理を進める。
(ステップS306)
ステップS306では、制御部31は、状態取得部315として動作し、マニピュレータ4の現在のタスク状態s(j)を取得する。
ステップS306では、制御部31は、状態取得部315として動作し、マニピュレータ4の現在のタスク状態s(j)を取得する。
上記のとおり、本実施形態では、エンドエフェクタTがワークWを保持していない場合、タスク状態sは、エンドエフェクタTに対するワークWの相対座標により規定される。一方、エンドエフェクタTがワークWを保持している場合、タスク状態sは、ワークWに対する他のワークGの相対座標により規定される。本実施形態では、制御部31は、CADデータ320を利用して、カメラS1により得られた画像データに対して各対象物をマッチングする。制御部31は、このマッチングの結果から、現在のタスク状態s(j)を取得することができる。
ここで、図18を更に用いて、現在のタスク状態s(j)を取得する方法の一例について説明する。図18は、各対象物の位置関係の一例を模式的に例示する。図18の例では、マニピュレータ4の台座部40に観測空間の原点が設定されている。ただし、原点の位置は、このような例に限定されなくてもよく、実施の形態に応じて決定されてよい。原点に対するカメラS1の同次座標(TC)は、以下の式2により表現することができる。
カメラS1がキャリブレーションされていない場合、制御部31は、カメラS1により得られる画像データ内で原点の座標(TR)の推定値を更に算出してもよい。原点の検出には、マーカ等の目印が用いられてよい。すなわち、画像データ内で目印をマッチングすることで、原点の座標(TR)の推定値が算出されてよい。制御部31は、算出された原点の座標(TR)の推定値を上記各演算に適用することで、現在のタスク状態s(j)の推定値を算出することができる。以降のステップで、CADデータ320によるマッチングを実行するケースも同様に処理されてよい。
現在のタスク状態s(j)を取得すると、制御部31は、次のステップS307に処理を進める。なお、ステップS306の処理を実行するタイミングは、このような例に限定されなくてもよい。ステップS306の処理は、後述するステップS308を実行する前の任意のタイミングで実行されてよい。例えば、上記ステップS304でもCADデータ320によるマッチングを行う場合、当該ステップS306の処理は、上記ステップS304の処理と共に実行されてよい。
(ステップS307)
ステップS307では、制御部31は、第1推定部313として動作し、第1推定モデル61を利用して、取得された第1センシングデータ323から、観測空間内における手先の現在の座標の第1推定値を算出する。また、制御部31は、第2推定部314として動作し、第2推定モデル62を利用して、取得された第2センシングデータ324から、観測空間内における手先の現在の座標の第2推定値を算出する。
ステップS307では、制御部31は、第1推定部313として動作し、第1推定モデル61を利用して、取得された第1センシングデータ323から、観測空間内における手先の現在の座標の第1推定値を算出する。また、制御部31は、第2推定部314として動作し、第2推定モデル62を利用して、取得された第2センシングデータ324から、観測空間内における手先の現在の座標の第2推定値を算出する。
(1)第1推定値の算出過程
まず、第1推定値の算出過程の一例について説明する。図17に示されるとおり、制御部31は、順運動学計算により、各エンコーダS2により得られる関節空間におけるマニピュレータ4の各関節の角度の現在値q(j)(第1センシングデータ323)から、観測空間におけるマニピュレータ4の手先座標の第1推定値を算出する(換言すると、現在値x(j)を推定する)。以下、エンドエフェクタTがワークWを保持していない場合とワークWを保持している場合とに分けて説明する。
まず、第1推定値の算出過程の一例について説明する。図17に示されるとおり、制御部31は、順運動学計算により、各エンコーダS2により得られる関節空間におけるマニピュレータ4の各関節の角度の現在値q(j)(第1センシングデータ323)から、観測空間におけるマニピュレータ4の手先座標の第1推定値を算出する(換言すると、現在値x(j)を推定する)。以下、エンドエフェクタTがワークWを保持していない場合とワークWを保持している場合とに分けて説明する。
(1-1)ワークWを保持していない場面
エンドエフェクタTがワークWを保持していない場合、エンドエフェクタTの注目点T0が手先に設定されている。この場合、制御部31は、各関節の第1同次変換行列により導出される第1変換行列群(φ)を変換関数として用いた順運動学計算により、各関節の角度の現在値q(j)から設定された手先座標の第1推定値を算出する。
エンドエフェクタTがワークWを保持していない場合、エンドエフェクタTの注目点T0が手先に設定されている。この場合、制御部31は、各関節の第1同次変換行列により導出される第1変換行列群(φ)を変換関数として用いた順運動学計算により、各関節の角度の現在値q(j)から設定された手先座標の第1推定値を算出する。
各関節の第1同次変換行列のパラメータの値は、各関節の角度を除いて既知であり、本実施形態では、ロボットデータ321に含まれている。当該パラメータは、DH(Denavit-Hartenberg)記法、修正DH記法等の公知の方法で設定されてよい。制御部31は、ロボットデータ321を参照することで、上記式7に示される第1変換行列群(φ)を導出する。そして、制御部31は、上記式6のとおり、導出された第1変換行列群(φ)に各関節の角度の現在値q(j)を代入し、第1変換行列群(φ)の演算処理を実行する。この順運動学計算の結果により、制御部31は、エンドエフェクタT(の注目点T0)の現在の座標の推定値を算出する(換言すると、座標の現在値xt(j)を推定する)ことができる。制御部31は、算出された推定値を現在の手先座標の第1推定値として取得する。
(1-2)ワークWを保持している場面
一方、エンドエフェクタTがワークWを保持している場合、ワークWの注目点W0が手先に設定されている。この場合、まず、制御部31は、エンドエフェクタTの注目点T0の座標系からワークWの注目点W0の座標系に座標を変換するための第2同次変換行列(tTw)を取得する。
一方、エンドエフェクタTがワークWを保持している場合、ワークWの注目点W0が手先に設定されている。この場合、まず、制御部31は、エンドエフェクタTの注目点T0の座標系からワークWの注目点W0の座標系に座標を変換するための第2同次変換行列(tTw)を取得する。
第2同次変換行列(tTw)を取得する方法は、特に限られなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、エンドエフェクタTにワークWが保持されると、エンドエフェクタTに対するワークWの位置及び姿勢が一定になるケースが存在する。そこで、第2同次変換行列(tTw)は、定数で与えられてもよい。
或いは、制御部31は、ステップS303において取得されたセンシングデータから第2同次変換行列(tTw)を推定してもよい。推定方法の一例として、制御部31は、CADデータ320を利用して、カメラS1により得られた画像データに対してエンドエフェクタT及びワークWのモデルをマッチングしてもよい。制御部31は、このマッチングの結果により、エンドエフェクタTの座標(Tt)及びワークWの座標(Tw)の推定値を得ることができる。上記と同様に、カメラS1がキャリブレーションされていると想定すると、制御部31は、以下の式8により、エンドエフェクタTの座標(Tt)及びワークWの座標(Tw)それぞれの推定値から第2同次変換行列(tTw)を推定することができる。
また、推定方法の他の例として、触覚センサS3により測定されるエンドエフェクタTに作用する力の分布は、エンドエフェクタTに対するワークWの位置及び姿勢に依存し得る。そこで、制御部31は、触覚センサS3により得られた測定データ(第1センシングデータ323)に基づいて、エンドエフェクタTに対するワークWの相対座標(相対位置及び相対姿勢)を推定してもよい。制御部31は、この推定の結果から第2同次変換行列(tTw)を推定することができる。
なお、センシングデータ322から第2同次変換行列(tTw)を推定する方法は、上記の解析的な方法に限られなくてもよい。第2同次変換行列(tTw)の推定には、例えば、判定モデル50、推論モデル551等と同様に、機械学習により、センシングデータ322から第2同次変換行列(tTw)を推定する能力を習得した学習済みの機械学習モデルが利用されてもよい。この場合、制御部31は、取得されたセンシングデータ322を学習済みの機械学習モデルに与えて、学習済みの機械学習モデルの演算処理を実行する。これにより、制御部31は、第2同次変換行列(tTw)を推定した結果に対応する出力値を学習済みの機械学習モデルから取得することができる。
次に、制御部31は、得られた第2同次変換行列(tTw)を第1変換行列群(φ)に掛けることで、第2変換行列群(φ(q)・tTw)を算出する。第2変換行列群は、以下の式9により表現することができる。なお、第1同次変換行列は、第1変換式の一例であり、第2同次変換行列は、第2変換式の一例である。第1変換行列群(φ)は、第1変換式群の一例であり、第2変換行列群(φ(q)・tTw)は、第2変換式群の一例である。各変換式の形式は、手先座標の演算に利用可能であれば、特に限定されなくてもよい。例えば、各変換式は、同次座標系以外の形式の変換行列で表現されてもよいし、或いは、行列以外の形式の数式で表現されてもよい。
なお、上記において、第2同次変換行列(tTw)をセンシングデータから推定することにより、エンドエフェクタTにおけるワークWの保持状態が変動しても、その変動が反映された第2同次変換行列(tTw)を取得することができる。これにより、エンドエフェクタTにおけるワークWの保持状態が変動し得る場合でも、ワークWの座標の現在値、すなわち、マニピュレータ4の手先座標の現在値を適切に推定することができる。
(1-3)小括
以上のとおり、上記各場面では、制御部31は、導出された変換関数を用いた順運動学計算により、各関節の角度の現在値q(j)から、マニピュレータ4の現在の手先座標の第1推定値を算出することができる。この順運動学計算に用いられる変換関数が、第1推定モデル61の一例である。すなわち、エンドエフェクタTがワークWを保持していない場面では、第1変換行列群(φ)が、第1推定モデル61の一例に相当する。また、エンドエフェクタTがワークWを保持している場面では、第2変換行列群(φ(q)・tTw)が、第1推定モデル61の一例に相当する。各変換関数の各パラメータが、第1推定モデル61のパラメータの一例に相当する。
以上のとおり、上記各場面では、制御部31は、導出された変換関数を用いた順運動学計算により、各関節の角度の現在値q(j)から、マニピュレータ4の現在の手先座標の第1推定値を算出することができる。この順運動学計算に用いられる変換関数が、第1推定モデル61の一例である。すなわち、エンドエフェクタTがワークWを保持していない場面では、第1変換行列群(φ)が、第1推定モデル61の一例に相当する。また、エンドエフェクタTがワークWを保持している場面では、第2変換行列群(φ(q)・tTw)が、第1推定モデル61の一例に相当する。各変換関数の各パラメータが、第1推定モデル61のパラメータの一例に相当する。
(2)第2推定値の算出過程
次に、第2推定値の算出過程の一例について説明する。制御部31は、CADデータ320を利用して、カメラS1により得られた画像データ(第2センシングデータ324)に対して各対象物のモデルをマッチングする。これにより、制御部31は、マニピュレータ4の現在の手先座標の第2推定値を算出する(換言すると、現在値x(j)を推定する)ことができる。この場合、制御部31は、上記ステップS306によりタスク空間で推定された現在のタスク状態s(j)から、マニピュレータ4の現在の手先座標の第2推定値を算出してもよい。
次に、第2推定値の算出過程の一例について説明する。制御部31は、CADデータ320を利用して、カメラS1により得られた画像データ(第2センシングデータ324)に対して各対象物のモデルをマッチングする。これにより、制御部31は、マニピュレータ4の現在の手先座標の第2推定値を算出する(換言すると、現在値x(j)を推定する)ことができる。この場合、制御部31は、上記ステップS306によりタスク空間で推定された現在のタスク状態s(j)から、マニピュレータ4の現在の手先座標の第2推定値を算出してもよい。
上記式10及び式11の変換関数(ψ)が、第2推定モデル62の一例である。各変換関数(ψ)の各パラメータが、第2推定モデル62のパラメータに相当する。なお、CADデータ320を用いたマッチングによりマニピュレータ4の手先座標の現在値x(j)を推定する方法はこのような例に限定されなくてもよい。エンドエフェクタTがワークWを保持していない場合、制御部31は、上記マッチングにより、エンドエフェクタTの座標の現在値(Tt(j))を推定し、推定された現在値(Tt(j))を現在の手先座標の第2推定値として取得してもよい。同様に、エンドエフェクタTがワークWを保持している場合、制御部31は、上記マッチングにより、ワークWの座標の現在値(Tw(j))を推定し、推定された現在値(Tw(j))を現在の手先座標の第2推定値として取得してもよい。すなわち、制御部31は、上記マッチングにより、マニピュレータ4の現在の手先座標の第2推定値を直接的に導出してもよい。この場合、各座標(Tt、Tw)が、第2推定モデル62の一例である。また、各座標(Tt、Tw)の各項が、第2推定モデル62のパラメータの一例である。
(3)小括
以上により、制御部31は、マニピュレータ4の現在の手先座標の第1推定値及び第2推定値を算出することができる。制御部31は、第1推定部及び第2推定部の少なくとも一方に基づいて、マニピュレータ4の手先の座標の現在値x(j)を認定する。この認定は適宜行われてよい。例えば、制御部31は、第1推定値及び第2推定値のいずれかを手先座標の現在値x(j)としてそのまま採用してもよい。また、例えば、制御部31は、第1推定値及び第2推定値の平均値を算出し、算出された平均値を手先座標の現在値x(j)として取得してもよい。この場合、平均値は、重み付け平均により算出されてよい。各推定値に対する重み付けは、推定の精度の高いと想定される推定値が優先されるように行われてよい。一例として、順運動学計算による手先座標の推定精度が、カメラS1の画像データに対するマッチングによる手先座標の推定精度よりも高いと想定する。このケースでは、第2推定値よりも第1推定値の方が優先されるように各推定値の重み付けが行われてもよい。手先座標の現在値x(j)を取得すると、制御部31は、次のステップS308に処理を進める。
以上により、制御部31は、マニピュレータ4の現在の手先座標の第1推定値及び第2推定値を算出することができる。制御部31は、第1推定部及び第2推定部の少なくとも一方に基づいて、マニピュレータ4の手先の座標の現在値x(j)を認定する。この認定は適宜行われてよい。例えば、制御部31は、第1推定値及び第2推定値のいずれかを手先座標の現在値x(j)としてそのまま採用してもよい。また、例えば、制御部31は、第1推定値及び第2推定値の平均値を算出し、算出された平均値を手先座標の現在値x(j)として取得してもよい。この場合、平均値は、重み付け平均により算出されてよい。各推定値に対する重み付けは、推定の精度の高いと想定される推定値が優先されるように行われてよい。一例として、順運動学計算による手先座標の推定精度が、カメラS1の画像データに対するマッチングによる手先座標の推定精度よりも高いと想定する。このケースでは、第2推定値よりも第1推定値の方が優先されるように各推定値の重み付けが行われてもよい。手先座標の現在値x(j)を取得すると、制御部31は、次のステップS308に処理を進める。
なお、後述する調整処理を実行しない場合、第1推定値及び第2推定値のいずれかの算出処理は省略されてよい。また、ステップS307の処理を実行するタイミングは、このような例に限定されなくてもよい。ステップS307の処理は、後述するステップS310の処理を実行する前の任意のタイミングで実行されてよい。例えば、ステップS307の処理は、上記ステップS306よりも前に実行されてよい。また、例えば、CADデータ320を用いたマッチングを行うケースでは、ステップS307の処理は、上記ステップS306又はステップS304の処理と共に実行されてよい。
(ステップS308)
ステップS308では、制御部31は、行動決定部316として動作し、最終目標のタスク状態sgに近付くように、取得された現在のタスク状態s(j)に対して次に遷移する目標のタスク状態ss(j)を決定する。本実施形態では、制御部31は、推論モデルデータ225を参照し、上記ステップS210の処理により生成された推論モデル55を利用して、現在のタスク状態s(j)に対して次に遷移する目標のタスク状態ss(j)を決定する。
ステップS308では、制御部31は、行動決定部316として動作し、最終目標のタスク状態sgに近付くように、取得された現在のタスク状態s(j)に対して次に遷移する目標のタスク状態ss(j)を決定する。本実施形態では、制御部31は、推論モデルデータ225を参照し、上記ステップS210の処理により生成された推論モデル55を利用して、現在のタスク状態s(j)に対して次に遷移する目標のタスク状態ss(j)を決定する。
次に遷移する目標のタスク状態ss(j)を推論するための推論モデル55の演算処理は、当該推論モデル55の構成に応じて適宜実行されてよい。推論モデル55が上記第1の方法により生成されており、推論モデル55が関数式により構成される場合、制御部31は、現在のタスク状態s(j)及び最終目標のタスク状態sgを関数式に代入し、当該関数式の演算処理を実行する。推論モデル55がニューラルネットワークにより構成される場合、制御部31は、現在のタスク状態s(j)及び最終目標のタスク状態sgを入力層に入力し、入力側から順に各層に含まれる各ニューロンの発火判定を行う。推論モデル55がデータテーブルにより構成される場合、制御部31は、現在のタスク状態s(j)及び最終目標のタスク状態sgをデータテーブルに照合する。これにより、制御部31は、推論モデル55の出力として、次に遷移する目標のタスク状態ss(j)を推論した結果を取得する。制御部31は、この推論結果により、次に遷移する目標のタスク状態ss(j)を決定することができる。
また、推論モデル55が上記第2の方法により生成される、すなわち、推論モデル55がポテンシャル場により構成される場合、制御部31は、生成されたポテンシャル場における、現在のタスク状態s(j)に対応する座標に設定されたポテンシャルの値を参照する。そして、制御部31は、現在のタスク状態s(j)に対応する座標に設定されたポテンシャルの勾配に応じて、次に遷移する目標のタスク状態ss(j)を決定する。具体的には、制御部31は、ポテンシャルの勾配の高い方に遷移する(例えば、勾配の最も高い方に所定の距離分だけ遷移する)ように目標のタスク状態ss(j)を決定する。
決定する目標のタスク状態の数は、1つに限られなくてもよい。ステップS308では、制御部31は、決定した目標のタスク状態を現在のタスク状態として用いて、更に次に遷移する目標のタスク状態を決定してもよい。制御部31は、この処理を繰り返すことで、目標のタスク状態を複数回決定してもよい。次に遷移する目標のタスク状態ss(j)を決定すると、制御部31は、次のステップS309に処理を進める。
(ステップS309)
ステップS309では、制御部31は、指令決定部317として動作し、決定された目標のタスク状態ss(j)から手先の座標の目標値xs(j)を算出する。図17に示されるとおり、制御部31は、上記変換関数(ψ)を利用することで、タスク空間における目標のタスク状態ss(j)を観測空間における手先の座標の目標値xs(j)に変換することができる。
ステップS309では、制御部31は、指令決定部317として動作し、決定された目標のタスク状態ss(j)から手先の座標の目標値xs(j)を算出する。図17に示されるとおり、制御部31は、上記変換関数(ψ)を利用することで、タスク空間における目標のタスク状態ss(j)を観測空間における手先の座標の目標値xs(j)に変換することができる。
すなわち、エンドエフェクタTがワークWを保持していない場合におけるタスク空間から観測空間への変換関数(ψ)は、上記式10により与えられる。制御部31は、決定された目標のタスク状態ss(j)を上記式10に代入し、上記式10の演算処理を実行することで、手先の座標の目標値xs(j)を算出することができる。一方、エンドエフェクタTがワークWを保持している場合におけるタスク空間から観測空間への変換関数(ψ)は、上記式11により与えられる。制御部31は、決定された目標のタスク状態ss(j)を上記式11に代入し、上記式11の演算処理を実行することで、手先の座標の目標値xs(j)を算出することができる。手先の座標の目標値xs(j)を算出すると、制御部31は、次のステップS310に処理を進める。
(ステップS310)
ステップS310では、制御部31は、指令決定部317として動作し、手先座標の現在値x(j)及び手先座標の目標値xs(j)から手先座標の変化量(Δx(j))を決定する。具体的には、図17に示されるとおり、制御部31は、手先座標の現在値(x(j))及び目標値(xs(j))の偏差に基づいて手先座標の変化量(Δx(j))を決定する。例えば、手先座標の現在値及び目標値の偏差(xs-x)と変化量(Δx)との関係は、以下の式12により与えられてよい。なお、手先座標の変化量(Δx)は、手先座標の現在値及び目標値の差分の一例である。
ステップS310では、制御部31は、指令決定部317として動作し、手先座標の現在値x(j)及び手先座標の目標値xs(j)から手先座標の変化量(Δx(j))を決定する。具体的には、図17に示されるとおり、制御部31は、手先座標の現在値(x(j))及び目標値(xs(j))の偏差に基づいて手先座標の変化量(Δx(j))を決定する。例えば、手先座標の現在値及び目標値の偏差(xs-x)と変化量(Δx)との関係は、以下の式12により与えられてよい。なお、手先座標の変化量(Δx)は、手先座標の現在値及び目標値の差分の一例である。
(ステップS311)
ステップS311では、制御部31は、指令決定部317として動作し、上記順運動学計算における変換関数の逆関数を用いた逆運動学計算により、決定された手先座標の変化量(Δx(j))から各関節の角度の変化量(Δq(j))を算出する。具体的には、手先座標の変化量(Δx)と各関節の角度の変化量(Δq)とは、以下の式13により表現することができる。
ステップS311では、制御部31は、指令決定部317として動作し、上記順運動学計算における変換関数の逆関数を用いた逆運動学計算により、決定された手先座標の変化量(Δx(j))から各関節の角度の変化量(Δq(j))を算出する。具体的には、手先座標の変化量(Δx)と各関節の角度の変化量(Δq)とは、以下の式13により表現することができる。
ここで、図19A及び図19Bを更に用いて、ヤコビ行列の計算方法の一例について説明する。図19Aは、エンドエフェクタTがワークWを保持していない時における各関節と手先との関係の一例を模式的に例示する。図19Bは、エンドエフェクタTがワークWを保持している時における各関節と手先との関係の一例を模式的に例示する。
図19Aに示されるとおり、エンドエフェクタTがワークWを保持していない時には、ヤコビ行列の各関節の成分は、各関節とエンドエフェクタTとの位置関係に基づいて算出される。例えば、制御部31は、以下の式14により、各関節の成分を算出することができる。一方、図19Bに示されるとおり、エンドエフェクタTがワークWを保持しているときには、ヤコビ行列の各関節の成分は、各関節とワークWとの位置関係に基づいて算出される。例えば、制御部31は、以下の式15により、各関節の成分を算出することができる。
制御部31は、上記式14及び式15に従って、動作モードに応じてヤコビ行列を算出する。なお、本実施形態では、エンドエフェクタTがワークWを保持していない場合とエンドエフェクタTがワークWを保持している場合との間で、ヤコビ行列の各成分において、エンドエフェクタTの成分(at)及びワークWの成分(aw)が入れ替わるに過ぎない。そのため、制御部31は、単純な計算処理により、それぞれの場合におけるヤコビ行列を算出することができる。
次に、制御部31は、算出されたヤコビ行列の逆行列(J-1)を算出する。制御部31は、算出された逆行列(J-1)を用いて、逆運動学計算を実行する。具体的には、各変化量(Δx、Δq)と逆行列(J-1)との関係は、上記式13から以下の式16のとおり導出される。
(ステップS312)
ステップS312では、制御部31は、指令決定部317として動作し、算出された各関節の角度の変化量に基づいて、各関節に対する指令値を決定する。指令値を決定する方法には、例えば、PID(Proportional-Integral-Differential)制御、PI制御等の公知の方法が採用されてよい。各関節に対する指令値は、マニピュレータ4に与える制御指令の一例である。本実施形態では、制御部31は、ステップS309~ステップS312の処理により、手先座標が目標値に近付くように(更には、マニピュレータ4のタスク状態を現在のタスク状態s(j)から目標のタスク状態ss(j)に変化させるように)、マニピュレータ4に与える制御指令を決定することができる。制御指令を決定すると、制御部31は、次のステップS313に処理を進める。
ステップS312では、制御部31は、指令決定部317として動作し、算出された各関節の角度の変化量に基づいて、各関節に対する指令値を決定する。指令値を決定する方法には、例えば、PID(Proportional-Integral-Differential)制御、PI制御等の公知の方法が採用されてよい。各関節に対する指令値は、マニピュレータ4に与える制御指令の一例である。本実施形態では、制御部31は、ステップS309~ステップS312の処理により、手先座標が目標値に近付くように(更には、マニピュレータ4のタスク状態を現在のタスク状態s(j)から目標のタスク状態ss(j)に変化させるように)、マニピュレータ4に与える制御指令を決定することができる。制御指令を決定すると、制御部31は、次のステップS313に処理を進める。
(ステップS313)
ステップS313では、制御部31は、駆動部318として動作し、決定された制御指令をマニピュレータ4に与えることで、マニピュレータ4を駆動する。本実施形態では、制御部31は、決定された各指令値により、マニピュレータ4の各関節を駆動する。なお、駆動方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部31は、マニピュレータ4の各関節を直接的に駆動してもよい。或いは、マニピュレータ4は、コントローラ(不図示)を備えてもよい。この場合、制御部31は、各関節に対する指令値をコントローラに与えることで、マニピュレータ4の各関節を間接的に駆動してもよい。決定された制御指令に従って、マニピュレータ4を駆動すると、制御部31は、次のステップS314に処理を進める。
ステップS313では、制御部31は、駆動部318として動作し、決定された制御指令をマニピュレータ4に与えることで、マニピュレータ4を駆動する。本実施形態では、制御部31は、決定された各指令値により、マニピュレータ4の各関節を駆動する。なお、駆動方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部31は、マニピュレータ4の各関節を直接的に駆動してもよい。或いは、マニピュレータ4は、コントローラ(不図示)を備えてもよい。この場合、制御部31は、各関節に対する指令値をコントローラに与えることで、マニピュレータ4の各関節を間接的に駆動してもよい。決定された制御指令に従って、マニピュレータ4を駆動すると、制御部31は、次のステップS314に処理を進める。
(ステップS314~ステップS316)
ステップS314~ステップS316の処理は、サイクルが(j)から(j+1)に進んでいる点を除き、上記ステップS303、ステップS306及びステップS307の処理と同様である。すなわち、ステップS314では、制御部31は、各センサ系から各センシングデータ(323、324)を取得する。ステップS315では、制御部31は、状態取得部315として動作し、マニピュレータ4の現在のタスク状態s(j+1)を取得する。ステップS316では、制御部31は、各推定部(313、314)として動作し、取得された各センシングデータ(323、324)からマニピュレータ4の現在の手先座標の各推定値を算出する。制御部31は、算出された第1推定値及び第2推定値の少なくとも一方に基づいて、手先座標の現在値x(j+1)を認定する。これにより、手先座標の現在値x(j+1)を取得すると、制御部31は、次のステップS317に処理を進める。
ステップS314~ステップS316の処理は、サイクルが(j)から(j+1)に進んでいる点を除き、上記ステップS303、ステップS306及びステップS307の処理と同様である。すなわち、ステップS314では、制御部31は、各センサ系から各センシングデータ(323、324)を取得する。ステップS315では、制御部31は、状態取得部315として動作し、マニピュレータ4の現在のタスク状態s(j+1)を取得する。ステップS316では、制御部31は、各推定部(313、314)として動作し、取得された各センシングデータ(323、324)からマニピュレータ4の現在の手先座標の各推定値を算出する。制御部31は、算出された第1推定値及び第2推定値の少なくとも一方に基づいて、手先座標の現在値x(j+1)を認定する。これにより、手先座標の現在値x(j+1)を取得すると、制御部31は、次のステップS317に処理を進める。
(ステップS317)
ステップS317では、制御部31は、ステップS313による駆動の結果、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移したか否かを判定する。
ステップS317では、制御部31は、ステップS313による駆動の結果、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移したか否かを判定する。
判定方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、図17に示されるとおり、駆動後の各関節の角度(q(j+1))と駆動前の各関節の角度(q(j))との関係は、以下の式17により表現することができる。
また、例えば、順運動学計算における変換関数と同様に、変換関数(ψ)に関しても、ヤコビ行列Jψが導出されてよい。ヤコビ行列Jψは変換関数(ψ)の微分成分を示す。導出されたヤコビ行列Jψから逆行列(Jψ
-1)が算出されてよい。手先座標の変化量(Δx)及びタスク状態の変化量(Δs)と逆行列(Jψ
-1)との関係は、以下の式18により表現することができる。
或いは、制御部31は、ステップS315により得られた現在のタスク状態がステップS308により決定された目標のタスク状態ss(j)と一致するか否かを判定してもよい。得られた現在のタスク状態が目標のタスク状態ss(j)と一致する場合、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移したと判定してもよい。一方、そうではない場合、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移していないと判定してもよい。
また、例えば、駆動後の手先座標の現在値(x(j+1))と駆動前の手先座標の現在値(x(j))との関係は、上記式17と同様に、以下の式20により表現することができる。
或いは、制御部31は、ステップS316により取得された手先座標の現在値が、ステップS309により算出された手先座標の目標値(xs(j))と一致するか否かを判定してもよい。駆動後の手先座標の現在値が駆動前に算出された手先座標の目標値(xs(j))と一致する場合、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移したと判定してもよい。一方、そうではない場合、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移していないと判定してもよい。
以上のいずれかの方法により、制御部31は、マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移したか否かを判定することができる。なお、以上の各判定において「一致すること」は、両者の値が完全に一致することの他、両者の値の差分が閾値(許容誤差)以下であることを含んでよい。マニピュレータ4のタスク状態が目標のタスク状態ss(j)に遷移したと判定した場合、制御部31は、次のステップS318に処理を進める。一方、そうではない場合、制御部31は、ステップS310に戻って、マニピュレータ4の駆動を再度実行する。このとき、制御部31は、ステップS316で算出された手先座標の現在値を現在値x(j)として利用して、ステップS310以降の処理を実行してもよい。
(ステップS318)
ステップS318では、制御部31は、最終目標のタスク状態sgを実現することができたか否かを判定する。
ステップS318では、制御部31は、最終目標のタスク状態sgを実現することができたか否かを判定する。
判定方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部31は、ステップS315により得られた現在のタスク状態s(j+1)が最終目標のタスク状態sgと一致するか否かを判定してもよい。現在のタスク状態s(j+1)が最終目標のタスク状態sgと一致する場合、制御部31は、最終目標のタスク状態sgを実現することができたと判定する。一方、そうではない場合、制御部31は、最終目標のタスク状態sgを実現することができていないと判定する。上記と同様に、当該判定における「一致すること」も、両者の値が完全に一致することの他、両者の値の差分が閾値(許容誤差)以下であることを含んでよい。
最終目標のタスク状態sgを実現することができたと判定した場合、制御部31は、マニピュレータ4の動作制御に関する一連の処理を終了する。一方、最終目標のタスク状態sgを実現することができていないと判定した場合、制御部31は、ステップS308に処理を戻す。そして、制御部31は、ステップS315及びステップS316の結果を利用して、ステップS308~ステップS313の処理を再度実行する。制御部31は、上記一連の処理を繰り返すことで、最終目標のタスク状態sgを実現する。これにより、本実施形態に係る制御装置3は、指定されたタスクを遂行するようにマニピュレータ4の動作を制御することができる。
なお、最終目標のタスク状態sgを実現することができていないと判定した場合の分岐先は、上記ステップS308に限られなくてもよい。例えば、複数のタスクにより構成される一連のタスクをマニピュレータ4に遂行させる場合に、最終目標のタスク状態sgには、最後に遂行されるタスクにおける最終目標のタスク状態が設定されてよい。本実施形態では、エンドエフェクタTによりワークWを保持し、保持したワークWを他のワークGに組み付けるタスクを遂行する場合に、最終目標のタスク状態sgには、ワークWを他のワークGに組み付けた状態が採用されてよい。この場合に、一連のタスクの遂行は、最初のタスクの開始点から開始されてよい。これに応じて、最終目標のタスク状態sgを実現することができていないと判定した場合の分岐先は、上記ステップS308ではなく、上記ステップS303であってよい。これにより、制御部31は、ステップS304及びステップS305の処理により、動作モードを確認しながら、マニピュレータ4を駆動することができる。その結果、各タスクの切り替えをスムーズに行いながら、一連のタスクを遂行することができる。本実施形態では、エンドエフェクタTによりワークWを保持した際に、ワークWを他のワークGに運搬するタスクに動作モードをスムーズに切り替えることができる。
(B)調整処理
次に、図20を用いて、本実施形態に係る制御装置3の上記各推定モデル(61、62)のパラメータ調整に関する動作例について説明する。図20は、本実施形態に係る制御装置3による各推定モデル(61、62)のパラメータ調整に関する処理手順の一例を示すフローチャートである。本実施形態では、第1推定モデル61は、上記順運動学計算に用いる変換関数(第1変換行列群又は第2変換行列群)である。また、第2推定モデル62は、タスク空間の値を観測空間の値に変換する変換関数(ψ)又は各座標(Tt、Tw)である。このパラメータ調整に関する情報処理は、上記マニピュレータ4の動作制御に関する情報処理と共に実行されてもよいし、或いは、別個に実行されてもよい。上記動作制御に関する処理手順を含め、以下で説明する処理手順は、本発明の「制御方法」の一例である。ただし、以下で説明する各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
次に、図20を用いて、本実施形態に係る制御装置3の上記各推定モデル(61、62)のパラメータ調整に関する動作例について説明する。図20は、本実施形態に係る制御装置3による各推定モデル(61、62)のパラメータ調整に関する処理手順の一例を示すフローチャートである。本実施形態では、第1推定モデル61は、上記順運動学計算に用いる変換関数(第1変換行列群又は第2変換行列群)である。また、第2推定モデル62は、タスク空間の値を観測空間の値に変換する変換関数(ψ)又は各座標(Tt、Tw)である。このパラメータ調整に関する情報処理は、上記マニピュレータ4の動作制御に関する情報処理と共に実行されてもよいし、或いは、別個に実行されてもよい。上記動作制御に関する処理手順を含め、以下で説明する処理手順は、本発明の「制御方法」の一例である。ただし、以下で説明する各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS401及びステップS402)
ステップS401では、制御部31は、各データ取得部(311、312)として動作し、各センサ系から各センシングデータ(323、324)を取得する。ステップS401の処理は、上記ステップS303及びステップS314の処理と同様である。ステップS402では、制御部31は、各推定部(313、314)として動作し、各推定モデル(61、62)を利用して、取得された各センシングデータ(323、324)から現在の手先座標の各推定値を算出する。ステップS402の処理は、上記ステップS307及びステップS316の処理と同様である。各推定値を算出すると、制御部31は、次のステップS403に処理を進める。
ステップS401では、制御部31は、各データ取得部(311、312)として動作し、各センサ系から各センシングデータ(323、324)を取得する。ステップS401の処理は、上記ステップS303及びステップS314の処理と同様である。ステップS402では、制御部31は、各推定部(313、314)として動作し、各推定モデル(61、62)を利用して、取得された各センシングデータ(323、324)から現在の手先座標の各推定値を算出する。ステップS402の処理は、上記ステップS307及びステップS316の処理と同様である。各推定値を算出すると、制御部31は、次のステップS403に処理を進める。
なお、本パラメータ調整に関する情報処理が上記動作制御に関する情報処理と共に実行される場合、ステップS401の実行は、上記ステップS303又はステップS314の実行に相当する。また、ステップS402の実行は、上記ステップS307又はステップS316の実行に相当する。この場合、ステップS307又はステップS316を実行した後、制御部31は、任意のタイミングで次にステップS403の処理を実行してもよい。
(ステップS403及びステップS404)
ステップS403では、制御部31は、調整部319として動作し、算出された第1推定値及び第2推定値の間の誤差の勾配を算出する。誤差の計算には、誤差関数等の関数式が用いられてよい。例えば、制御部31は、第1推定値及び第2推定値の差分を算出し、算出された差分の累乗(例えば、2乗)を計算することで、得られた値を誤差として取得することができる。そして、制御部31は、算出された誤差に対して偏微分を計算することで、各推定モデル(61、62)の各パラメータに関する誤差の勾配を算出することができる。
ステップS403では、制御部31は、調整部319として動作し、算出された第1推定値及び第2推定値の間の誤差の勾配を算出する。誤差の計算には、誤差関数等の関数式が用いられてよい。例えば、制御部31は、第1推定値及び第2推定値の差分を算出し、算出された差分の累乗(例えば、2乗)を計算することで、得られた値を誤差として取得することができる。そして、制御部31は、算出された誤差に対して偏微分を計算することで、各推定モデル(61、62)の各パラメータに関する誤差の勾配を算出することができる。
ステップS404では、制御部31は、調整部319として動作し、算出された勾配に基づいて、第1推定値及び第2推定値の間の誤差が小さくなるように、第1推定モデル61及び第2推定モデル62の少なくとも一方のパラメータの値を調整する。一例として、制御部31は、各パラメータに関して算出された勾配を各パラメータの値から引算することで、各パラメータの値を更新する。これにより、制御部31は、算出された勾配に基づいて、各パラメータの値を調整することができる。
両方の推定モデル(61、62)のパラメータの値を調整してもよい。或いは、推定モデル(61、62)のうちのいずれか一方のみのパラメータの値を調整してもよい。両方にノイズが発生し得る場合、或いは両方の推定モデル(61、62)のパラメータが共に適正ではない可能性がある場合、両方の推定モデル(61、62)のパラメータを調整するのが好ましい。パラメータの調整が完了すると、制御部31は、次のステップS405に処理を進める。
(ステップS405)
ステップS405では、制御部31は、各推定モデル(61、62)のパラメータを調整する処理を終了するか否かを判定する。パラメータ調整の処理を終了する基準は、実施の形態に応じて適宜決定されてよい。
ステップS405では、制御部31は、各推定モデル(61、62)のパラメータを調整する処理を終了するか否かを判定する。パラメータ調整の処理を終了する基準は、実施の形態に応じて適宜決定されてよい。
例えば、終了するまでにパラメータ調整を繰り返す規定回数が設定されていてもよい。規定回数は、例えば、設定値により与えられてもよいし、オペレータの指定により与えられてもよい。この場合、制御部31は、ステップS401~ステップS404の処理を実行した回数が規定回数に到達したか否かを判定する。実行回数が規定回数に到達してないと判定した場合、制御部31は、ステップS401に処理を戻し、ステップS401~ステップS404の処理を繰り返す。一方、実行回数が規定回数に到達していると判定した場合には、制御部31は、第1推定値及び第2推定値の誤差の勾配に基づくパラメータ調整に関する一連の処理を終了する。
また、例えば、制御部31は、処理を繰り返すか否かをオペレータに問い合わせてもよい。この場合、制御部31は、オペレータの回答に応じて、パラメータ調整に関する処理を繰り返すか否かを判定する。オペレータが処理を繰り返すと回答した場合、制御部31は、ステップS401に処理を戻し、ステップS401~ステップS404の処理を繰り返す。一方、オペレータが処理を繰り返さないと回答した場合、制御部31は、第1推定値及び第2推定値の誤差の勾配に基づくパラメータ調整に関する一連の処理を終了する。
<接触発生時の調整処理>
次に、図21を用いて、本実施形態に係る制御装置3の他の方法による各推定モデル(61、62)のパラメータ調整に関する動作例について説明する。図21は、他の方法による各推定モデル(61、62)のパラメータ調整に関する処理手順の一例を示すフローチャートである。
次に、図21を用いて、本実施形態に係る制御装置3の他の方法による各推定モデル(61、62)のパラメータ調整に関する動作例について説明する。図21は、他の方法による各推定モデル(61、62)のパラメータ調整に関する処理手順の一例を示すフローチャートである。
本実施形態に係る制御装置3は、上記図20に例示される方法のパラメータ調整の他、マニピュレータ4の手先が何らかの対象物に接触した時に、図21に例示されるパラメータ調整の処理を実行する。本実施形態では、エンドエフェクタTがワークWを保持していない場合、エンドエフェクタTがマニピュレータ4の手先であり、ワークWが、マニピュレータ4の手先が接触する対象物の一例である。一方、エンドエフェクタTがワークWを保持している場合、ワークGがマニピュレータ4の手先であり、他のワークGが、マニピュレータ4の手先が接触する対象物の一例である。
この図21に例示される方法のパラメータ調整に関する情報処理も、上記と同様に、マニピュレータ4の動作制御に関する情報処理と共に実行されてもよいし、或いは、別個に実行されてもよい。上記動作制御に関する処理手順を含め、以下で説明する処理手順は、本発明の「制御方法」の一例である。ただし、以下で説明する各処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。更に、以下で説明する各処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS411及びステップS412)
ステップS411では、制御部31は、各データ取得部(311、312)として動作し、各センサ系から各センシングデータ(323、324)を取得する。ステップS411の処理は、上記ステップS401の処理と同様である。ステップS412では、制御部31は、各推定部(313、314)として動作し、各推定モデル(61、62)を利用して、取得された各センシングデータ(323、324)から現在の手先座標の各推定値を算出する。ステップS412の処理は、上記ステップS402の処理と同様である。各推定値を算出すると、制御部31は、次のステップS413に処理を進める。
ステップS411では、制御部31は、各データ取得部(311、312)として動作し、各センサ系から各センシングデータ(323、324)を取得する。ステップS411の処理は、上記ステップS401の処理と同様である。ステップS412では、制御部31は、各推定部(313、314)として動作し、各推定モデル(61、62)を利用して、取得された各センシングデータ(323、324)から現在の手先座標の各推定値を算出する。ステップS412の処理は、上記ステップS402の処理と同様である。各推定値を算出すると、制御部31は、次のステップS413に処理を進める。
(ステップS413)
ステップS413では、制御部31は、調整部319として動作し、対象物との接触の境界面上で手先座標の境界値を取得する。手先座標の境界値を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、手先座標の境界値は、入力装置35を介したオペレータの指定により得られてもよい。また、本実施形態では、マニピュレータ4の手先及び目標物の間の相対座標によりタスク状態が規定される。このタスク状態(相対座標)の集合を表現するタスク空間SPを利用して、手先座標の境界値が得られてもよい。
ステップS413では、制御部31は、調整部319として動作し、対象物との接触の境界面上で手先座標の境界値を取得する。手先座標の境界値を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、手先座標の境界値は、入力装置35を介したオペレータの指定により得られてもよい。また、本実施形態では、マニピュレータ4の手先及び目標物の間の相対座標によりタスク状態が規定される。このタスク状態(相対座標)の集合を表現するタスク空間SPを利用して、手先座標の境界値が得られてもよい。
ここで、図22を用いて、タスク空間SPを利用して、手先座標の境界値を取得する方法の一例について説明する。図22は、タスク空間SPにおいて接触の境界面上で境界値を取得する場面の一例を模式的に例示する。まず、制御部31は、ステップS412により算出された手先座標の各推定値を変換関数(ψ)の逆関数に入力し、当該逆関数の演算処理を実行することで、各推定値に対応するタスク空間SP内の座標を算出する。図22の例では、ノードNe1が、第1推定値に対応する座標を示し、ノードNe2が、第2推定値に対応する座標を示す。
次に、制御部31は、タスク空間SPにおける接触の境界面を導出する。接触の境界面の導出には、学習済みの判定モデル50が用いられてよい。この場合、制御装置3(記憶部32)は、学習結果データ125を保持することで、学習済みの判定モデル50を備えてもよい。或いは、制御部31は、ネットワークを介して第2モデル生成装置2に問い合わせることで、境界面の導出結果を第2モデル生成装置2から取得してもよい。
続いて、制御部31は、導出された接触の境界面上において、第1推定値に対応する座標(ノードNe1)及び第2推定値に対応する座標(ノードNe2)の少なくとも一方に近傍のノードNbを選択する。例えば、制御部31は、両方のノード(Ne1、Ne2)に最近傍のノードをノードNbとして選択してもよい。制御部31は、選択されたノードNbの座標を変換関数(ψ)に入力し、当該変換関数(ψ)の演算処理を実行することで、手先座標の境界値を算出することができる。
以上のいずれかの方法により、制御部31は、手先座標の境界値を取得することができる。手先座標の境界値を取得すると、制御部31は、次のステップS414に処理を進める。なお、手先座標の境界値を取得する方法は、これらの例に限定されなくてもよい。例えば、制御部31は、観測空間において直接的に接触の境界面を導出してもよい。制御部31は、導出された接触の境界面上で、第1推定値の座標及び第2推定値の座標の少なくとも一方に近傍の点を選択してもよい。そして、制御部31は、選択された点の座標を境界値として取得してもよい。
(ステップS414及びステップS415)
ステップS414では、制御部31は、調整部319として動作し、接触時に推定される第1推定値及び取得された境界値の間の第1誤差の勾配を算出する。また、制御部31は、接触時に推定される第2推定値及び取得された境界値の間の第2誤差の勾配を算出する。各勾配を算出する方法は、上記ステップS403と同様であってよい。
ステップS414では、制御部31は、調整部319として動作し、接触時に推定される第1推定値及び取得された境界値の間の第1誤差の勾配を算出する。また、制御部31は、接触時に推定される第2推定値及び取得された境界値の間の第2誤差の勾配を算出する。各勾配を算出する方法は、上記ステップS403と同様であってよい。
ステップS415では、制御部31は、調整部319として動作し、算出された第1誤差の勾配に基づいて、第1誤差が小さくなるように第1推定モデル61のパラメータの値を調整する。また、制御部31は、算出された第2誤差の勾配に基づいて、第2誤差が小さくなるように第2推定モデル62のパラメータの値を調整する。パラメータの値を調整する方法は、上記ステップS404と同様であってよい。パラメータの調整が完了すると、制御部31は、境界値を利用したパラメータ調整に関する一連の処理を終了する。
<処理タイミング>
次に、図23を用いて、上記動作制御のタイミングとパラメータ調整のタイミングとの関係の一例を説明する。図23は、動作制御のタイミングとパラメータ調整のタイミングとの関係の一例を模式的に例示する。
次に、図23を用いて、上記動作制御のタイミングとパラメータ調整のタイミングとの関係の一例を説明する。図23は、動作制御のタイミングとパラメータ調整のタイミングとの関係の一例を模式的に例示する。
第1センサ系及び第2センサ系それぞれの処理周期、換言すると、各センシングデータ(323、324)を取得する周期は必ずしも同じとは限らない。それぞれの処理周期が異なる場合には、第1センサ系及び第2センサ系の少なくとも一方からセンシングデータを得ることができるタイミングで、上記マニピュレータ4の動作制御に関する情報処理を実行してもよい。これに対して、制御部31は、両方のセンシングデータ(323、324)を取得可能なタイミングで、上記パラメータ調整を実行してもよい。
図23の例では、各エンコーダS2及び触覚センサS3により構成される第1センサ系の処理周期が、カメラS1により構成される第2センサ系の処理周期よりも短いと想定している。一例として、第1センサ系の処理周期が10ms(ミリ秒)であり、第2センサ系の処理周期が30msであると想定する。この場合、第2センサ系により第2センシングデータ324を1回取得する間に、第1センサ系により第1センシングデータ323を3回取得することができる。
この図23の例では、第1センサ系から第1センシングデータ323のみ取得可能なタイミングでは、制御部31は、第1センシングデータ323から算出される現在の手先座標の第1推定値を利用して、マニピュレータ4の動作を制御してもよい。一方、第1センサ系及び第2センサ系から両方のセンシングデータ(323、324)を取得可能なタイミングでは、制御部31は、それぞれ算出される現在の手先座標の第1推定値及び第2推定値の少なくとも一方を利用して、マニピュレータ4の動作を制御してもよい。また、このタイミングで、制御部31は、上記図20に示されるパラメータ調整の情報処理を実行してもよい。
更に、マニピュレータ4の手先が何らかの対象物に接触した場合には、制御部31は、マニピュレータ4の動作制御を停止し、第1センサ系及び第2センサ系から両方のセンシングデータ(323、324)を取得可能なタイミングまで待機してもよい。そして、両方のセンシングデータ(323、324)を取得可能なタイミングで、制御部31は、上記図21に示されるパラメータ調整の情報処理を実行してもよい。加えて、制御部31は、上記図20に示されるパラメータ調整の情報処理も共に実行してもよい。上記図20及び図21に示される両方のパラメータ調整を実行する場合、上記ステップS401は、ステップS411と共通の処理として実行され、上記ステップS402は、ステップS412と共通の処理として実行されてよい。これにより、マニピュレータ4の動作を制御すると共に、適切なタイミングで各推定モデル(61、62)のパラメータの値を調整することができる。
なお、図20及び図21に示される各方法により、各推定モデル(61、62)のパラメータの値を調整した後、各推定モデル(61、62)による各推定値が真値に近付いているか否かは適宜評価されてよい。一例として、各センサ系により得られる各センシングデータ(323、324)に含まれ得るノイズはホワイトノイズと想定される。そのため、少なくともいずれかの所定時間分のセンシングデータを取得し、得られたセンシングデータを平均化することにより、センシングデータに含まれるノイズを除去又は低減することができる。この平均化されたセンシングデータにおいて、各推定モデル(61、62)による各推定値に関する成分が含まれているか否かにより、各推定モデル(61、62)による各推定値が真値に近付いているか否かを評価することができる。
例えば、カメラS1として深度カメラを利用し、第2センシングデータ324として深度マップ(深度情報を含む画像データ)を取得したと想定する。この場合、制御部31は、各推定値を深度マップ上にプロットし、各推定値に対応する座標と深度マップ上のマニピュレータ4の手先の座標とを比較する。この比較の結果、互いの座標が一致している(又は近似している)場合に、制御部31は、各推定モデル(61、62)による各推定値が真値に近付いていると評価することができる。一方、互いの座標が乖離している場合、各推定モデル(61、62)による各推定値が真値に近付いていない可能性がある。この場合、制御部31は、上記各推定値が真値に近付いていると評価できるようになるまで、上記図20及び図21の少なくともいずれかの方法によるパラメータ調整を繰り返してもよい。
[特徴]
以上のとおり、本実施形態では、上記ステップS404において、互いの推定結果(推定値)が一つの値に近付くように、第1推定モデル61及び第2推定モデル62の少なくとも一方のパラメータの値を調整する。また、マニピュレータ4の手先が対象物に接触したときには、上記ステップS415において、各推定値が接触の境界値に近付くように各推定モデル(61、62)のパラメータの値を調整する。これらの調整により、各推定モデル(61、62)による手先座標の推定精度の改善を期待することができる。特に、ステップS415によれば、対象物と接触するという物理的制約を伴うため、確度の高い情報(境界値)に基づいて、各推定モデル(61、62)のパラメータの値を調整することで、各推定モデル(61、62)による手先座標の推定精度の改善することができる。したがって、本実施形態によれば、マニピュレータ4の手先座標を制御する精度の向上を図ることができる。
以上のとおり、本実施形態では、上記ステップS404において、互いの推定結果(推定値)が一つの値に近付くように、第1推定モデル61及び第2推定モデル62の少なくとも一方のパラメータの値を調整する。また、マニピュレータ4の手先が対象物に接触したときには、上記ステップS415において、各推定値が接触の境界値に近付くように各推定モデル(61、62)のパラメータの値を調整する。これらの調整により、各推定モデル(61、62)による手先座標の推定精度の改善を期待することができる。特に、ステップS415によれば、対象物と接触するという物理的制約を伴うため、確度の高い情報(境界値)に基づいて、各推定モデル(61、62)のパラメータの値を調整することで、各推定モデル(61、62)による手先座標の推定精度の改善することができる。したがって、本実施形態によれば、マニピュレータ4の手先座標を制御する精度の向上を図ることができる。
また、本実施形態では、上記ステップS307及びステップS316において、順運動学計算により、マニピュレータ4の現在の手先座標の第1推定値を算出することができる。エンドエフェクタTがワークWを保持していない場合、エンドエフェクタTが手先に設定され、順運動学計算には、各関節(関節部41~46)の第1同次変換行列により導出される第1変換行列群(φ)が変換関数として用いられる。一方、エンドエフェクタTがワークWを保持している場合、ワークWが手先に設定され、順運動学計算に用いる変換関数が拡張される。具体的には、順運動学計算には、エンドエフェクタTの座標系からワークWの座標系に座標を変換するための第2同次変換行列(tTw)を第1変換行列群(φ)に掛けることで得られる第2変換行列群(φ(q)・tTw)が変換関数として用いられる。すなわち、本実施形態では、エンドエフェクタTによりワークWを保持した時に、エンドエフェクタTからワークWに運動学の基準点を変更する。
これにより、エンドエフェクタTがワークWを保持していない場合とワークWを保持している場合とで、ステップS307及びステップS316の順運動学計算、並びにステップS311の逆運動学計算をほぼ同様に処理することができる。つまり、エンドエフェクタTによりワークWを保持する第1タスク及びエンドエフェクタTにより保持されたワークWを他のワークGに組み付ける第2タスクを「マニピュレータ4の手先を目標物に対して移動する」共通のタスクとして取り扱うことができる。したがって、本実施形態によれば、エンドエフェクタTがワークWを保持していない場合とエンドエフェクタTがワークWを保持している場合とを区別することなく汎用的かつ統一的に制御処理を規定することができる。そのため、制御処理を単純化することができ、これによって、マニピュレータ4の動作を生成又は教示するコストを低減することができる。上記実施形態では、ワークWをエンドエフェクタTにより保持し、保持したワークWを他のワークGに組み付ける一連の動作を生成又は教示するコストを低減することができる。
また、本実施形態では、マニピュレータ4により実行するタスクの状態が、エンドエフェクタT(エンドエフェクタ)、ワークW、他のワークG等の対象物間の相対的な位置関係により表現される。これにより、制御指令は、タスクに直接的に関連付けられるのではなく、対象物間の相対的な位置関係の変化量に関連付けられる。すなわち、タスクの内容に依存せずに、対象物の相対的な位置関係を変化させることに対してマニピュレータ4に与える時系列の制御指令を生成又は教示することができる。例えば、ワークWの座標が変化しても、上記ステップS306及びステップS315において、エンドエフェクタTとワークWとの間の位置関係(タスク状態)を把握する際に、そのワークWの座標の変化が考慮される。そのため、マニピュレータ4は、学習結果に基づいて、エンドエフェクタTによりワークWを適切に保持することができる。したがって、本実施形態によれば、習得されるタスクを遂行する能力の汎用性を高めることができ、これによって、マニピュレータ4にタスクを教示するのにかかるコストを低減することができる。
また、本実施形態では、対象物間の位置関係は、相対座標により表現される。これにより、2つの対象物の間の位置関係を適切かつ端的に表現することができる。そのため、2つの対象物の間の位置関係(制御の場面では、タスク状態)を把握し易くすることができる。
また、本実施形態に係る第1モデル生成装置1は、上記ステップS101及びステップS102の処理により、機械学習を実施することで、対象の位置関係において2つの対象物が接触するか否かを判定するための判定モデル50を生成する。機械学習により生成された学習済みの判定モデル50によれば、対象の位置関係が連続値で与えられても、判定モデル50のデータ量の大きな増加を伴うことなく、その位置関係で2つの対象物が互いに接触するか否かを判定することができる。したがって、本実施形態によれば、2つの対象物が接触する境界を表現する情報のデータ量を大幅に低減することができる。
ここで、図24を更に用いて、この作用効果の具体例について説明する。図24は、2つの対象物が互いに接触するか否かを示す値を座標点毎に保持する形態の一例を模式的に例示する。白丸が、その座標に対応する位置関係において2つの対象物が互いに接触しないことを示し、黒丸が、その座標に対応する位置関係において2つの対象物が互いに接触することを示す。図24では、2次元により各座標点を表現しているが、上記6次元の相対座標の空間では、各座標点は、6次元で表現される。この場合、空間の解像度(分解能)を上げると、6乗のオーダでデータ量が増加してしまう。例えば、実空間での運用に利用可能な解像度で座標点を設定すると、当該情報のデータ量は、簡単に、ギガバイト単位になり得る。
これに対して、本実施形態では、対象の位置関係において2つの対象物が互いに接触するか否かを示す情報を学習済みの判定モデル50により保持する。この学習済みの判定モデル50の演算パラメータの数は、相対座標の次元数に依存し得るものの、この演算パラメータの数を増やすことなく、連続値を取り扱うことができる。そのため、例えば、後述するとおり、3層構造のニューラルネットワークにより判定モデル50を構成した場合には、学習済みの判定モデル50のデータ量を数メガバイト程度に抑えることができる。そのため、本実施形態によれば、2つの対象物が接触する境界を表現する情報のデータ量を大幅に低減することができる。
また、本実施形態では、マニピュレータ4の手先及び目標物が、学習済みの判定モデル50により接触が生じるか否かを判定する2つの対象物である。そのため、マニピュレータ4の動作を規定する場面で、2つの対象物が接触する境界を表現する情報のデータ量を大幅に低減することができる。第2モデル生成装置2では、RAM、ROM、及び記憶部22の容量が比較的に小さくても、学習済みの判定モデル50を利用することができ、これによって、目標物に手先が無用に接触しないように目標のタスク状態を決定するための推論モデル55を生成することができる。
また、本実施形態に係る第2モデル生成装置2は、ステップS201~ステップS210の処理により、学習済みの判定モデル50を利用して、第1対象物が第2対象物に接触しないように目標のタスク状態を決定するための推論モデル55を生成する。本実施形態に係る制御装置3は、ステップS308において、生成された推論モデル55を利用して、目標のタスク状態を決定する。これにより、本実施形態に係る制御装置3は、学習済みの判定モデル50の演算処理を伴わなくても、第1対象物が第2対象物に接触しない、すなわち、マニピュレータ4の手先が目標物に無用に接触しないように目標のタスク状態を決定することができる。そのため、マニピュレータ4の動作制御の演算コストを低減することができる。
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良又は変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良又は変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
<4.1>
上記実施形態では、エンドエフェクタT、ワークW、及び他のワークGそれぞれが対象物の一例である。特に、他のワークGが、ワークWの組付け先の対象物の一例である。エンドエフェクタTがワークWを保持していない場合、ワークWが、マニピュレータ4の手先が接触する対象物の一例であり、エンドエフェクタTがワークWを保持している場合、他のワークGが、マニピュレータ4の手先が接触する対象物の一例である。ただし、対象物は、このような例に限定されなくてもよい。対象物は、実空間又は仮想空間内で取り扱い可能なあらゆる種類の物体を含んでもよい。対象物は、上記エンドエフェクタT、ワークW、及び他のワークGの他、例えば、障害物等のマニピュレータの動作に関連し得る物体であってもよい。
上記実施形態では、エンドエフェクタT、ワークW、及び他のワークGそれぞれが対象物の一例である。特に、他のワークGが、ワークWの組付け先の対象物の一例である。エンドエフェクタTがワークWを保持していない場合、ワークWが、マニピュレータ4の手先が接触する対象物の一例であり、エンドエフェクタTがワークWを保持している場合、他のワークGが、マニピュレータ4の手先が接触する対象物の一例である。ただし、対象物は、このような例に限定されなくてもよい。対象物は、実空間又は仮想空間内で取り扱い可能なあらゆる種類の物体を含んでもよい。対象物は、上記エンドエフェクタT、ワークW、及び他のワークGの他、例えば、障害物等のマニピュレータの動作に関連し得る物体であってもよい。
なお、1つの対象物は、1つの物体で構成されてもよいし、或いは複数の物体により構成されてもよい。3つ以上の物体が存在する場合、判定モデル50は、複数の物体を1つの対象物とみなし、複数の物体と他の物体との間で接触が生じるか否かを判定するように構成されてもよい。或いは、判定モデル50は、個々の物体を1つの対象物とみなして、それぞれの物体間で接触が生じるか否かを判定するように構成されてもよい。
また、上記実施形態では、2つの対象物のうちの少なくともいずれかはマニピュレータの動作により移動する対象である。マニピュレータの動作により移動する対象物は、例えば、エンドエフェクタ等のマニピュレータの構成要素であってもよいし、マニピュレータ自身であってもよいし、例えば、エンドエフェクタにより保持されたワーク等のマニピュレータの構成要素以外の物体であってもよい。ただし、対象物の種類は、このような例に限定されなくてもよい。2つの対象物は共に、マニピュレータの動作により移動する対象以外の物体であってもよい。
また、上記実施形態では、マニピュレータ4は、垂直多関節型ロボットである。しかしながら、エンコーダS2により得られる各関節の角度の現在値からマニピュレータ4の手先座標を推定する場合に、マニピュレータ4は、1つ以上の関節を備えていれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。その他の場合、マニピュレータ4は、関節以外の構成要素を備えてもよい。マニピュレータ4は、上記垂直多関節ロボットの他、スカラロボット、パラレルリンクロボット、直交ロボット、協調ロボット等を含んでよい。また、上記実施形態では、制御指令は、各関節の角度に対しる指令値により構成されている。しかしながら、制御指令の構成は、このような例に限定されなくてもよく、マニピュレータ4の種類に応じて適宜決定されてよい。
また、上記実施形態では、エンドエフェクタTによりワークWを保持する作業及び保持されたワークWを他のワークGに組み付ける作業それぞれがマニピュレータの遂行するタスクの一例である。タスクは、少なくとも工程の一部にマニピュレータの手先の移動を伴うものであれば、その種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。タスクは、上記ワークWの保持、及びワークWの運搬の他、例えば、部品嵌合、ネジ回し等であってよい。タスクは、例えば、ワークの保持、ワークの解放等の単純な仕事であってもよい。タスクは、例えば、対象のワークを保持し、指定の座標(位置及び姿勢)に対象のワークを配置すること等の対象のワークの座標を変更することであってよい。タスクは、例えば、エンドエフェクタとしてスプレーを用いて、指定の相対座標から当該スプレーによりワークに塗料を噴霧することであってよい。また、タスクは、例えば、エンドエフェクタに取り付けられたカメラを指定の座標に配置することであってもよい。タスクは、予め与えられてもよいし、オペレータの指定により与えられてもよい。
また、上記実施形態では、第1センサ系は、各エンコーダS2及び触覚センサS3により構成されている。また、第2センサ系は、カメラS1により構成されている。しかしながら、各センサ系は、マニピュレータ4の手先を観測可能であれば、各センサ系に用いられるセンサの種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。第1センサ系及び第2センサ系の間で少なくとも一部のセンサが共通に利用されてよい。センサには、カメラ、エンコーダ、及び触覚センサの他、例えば、近接センサ、力覚センサ、トルクセンサ、圧力センサ等が用いられてよい。近接センサは、エンドエフェクタTの周囲を観測可能な範囲に配置され、エンドエフェクタTに近接する物体の有無を観測するのに利用されてよい。また、力覚センサ、トルクセンサ及び圧力センサは、上記触覚センサS3と同様に、エンドエフェクタTに作用する力を測定可能な範囲に配置され、エンドエフェクタTに作用する力を観測するのに利用されてよい。近接センサ、力覚センサ、トルクセンサ及び圧力センサの少なくともいずれかは、エンドエフェクタTに対するワークWの状態を観測するセンサとして利用されてよい。なお、カメラS1は、マニピュレータ4又は他のロボット装置により、任意に移動可能に構成されてよい。この場合、カメラS1の座標は、適宜キャリブレーションされてよい。これにより、カメラS1により観測する範囲を任意に制御することができる。
上記実施形態において、第1センサ系から触覚センサS3は省略されてよい。触覚センサS3が省略される場合、第2同次変換行列(tTw)の推定には、触覚センサS3以外のセンサ(例えば、カメラS1)が用いられてよい。第1センサ系は、エンドエフェクタTに対するワークWの状態を観測するための他のセンサを備えてよい。或いは、第2同次変換行列(tTw)が定数で与えられてよい。また、上記実施形態において、ワークWを保持しているか否かに応じたマニピュレータ4の手先の設定は省略されてよい。この場合、マニピュレータ4の手先は適宜設定されてよい。例えば、ワークWを保持しているか否かを問わず、エンドエフェクタTがマニピュレータ4の手先に設定されてよい。
<4.2>
上記実施形態では、第2モデル生成装置2において、推論モデル55を生成する際に、学習済みの判定モデル50を利用している。しかしながら、学習済みの判定モデル50の利用形態は、このような例に限定されなくてもよい。上記実施形態に係る制御装置3が、マニピュレータ4の動作を制御する際に、学習済みの判定モデル50を利用してもよい。この場合、学習結果データ125は、上記と同様に、任意のタイミングで制御装置3に提供されてよい。また、制御装置3は、ソフトウェアモジュールとして接触判定部を更に備えるように構成される。
上記実施形態では、第2モデル生成装置2において、推論モデル55を生成する際に、学習済みの判定モデル50を利用している。しかしながら、学習済みの判定モデル50の利用形態は、このような例に限定されなくてもよい。上記実施形態に係る制御装置3が、マニピュレータ4の動作を制御する際に、学習済みの判定モデル50を利用してもよい。この場合、学習結果データ125は、上記と同様に、任意のタイミングで制御装置3に提供されてよい。また、制御装置3は、ソフトウェアモジュールとして接触判定部を更に備えるように構成される。
図25は、本変形例に係る目標のタスク状態の決定に関するサブルーチンの処理手順の一例を例示する。上記ステップS308の目標のタスク状態を決定する処理は、図25に例示されるサブルーチンの処理に置き換えられてもよい。
ステップS501では、制御部31は、行動決定部316として動作し、最終目標のタスク状態に近付くように、取得された現在のタスク状態に対して次に遷移する目標のタスク状態を決定する。ステップS501は、上記ステップS308と同様に処理されてよい。
ステップS502では、制御部31は、、接触判定部として動作し、学習済みの判定モデル50を利用して、決定された目標のタスク状態において2つの対象物が互いに接触するか否かを判定する。ステップS502は、上記ステップS203及びステップS206と同様に処理されてよい。
ステップS503では、制御部31は、ステップS502の判定結果に基づいて、処理の分岐先を決定する。ステップS502において、目標のタスク状態において2つの対象物が互いに接触すると判定された場合、制御部31は、ステップS501に処理を戻し、目標のタスク状態を再度決定する。一方、目標のタスク状態において2つの対象物が互いに接触しないと判定された場合、制御部31は、次のステップS309の処理を実行する。これにより、制御装置3は、マニピュレータ4の動作を制御する際に、学習済みの判定モデル50を利用して、マニピュレータ4の手先が目標物に無用に接触しないように、マニピュレータ4の動作を決定することができる。
<4.3>
上記実施形態では、制御装置3は、上記ステップS308において、推論モデル55を利用して、目標のタスク状態を決定している。しかしながら、目標のタスク状態を決定する方法は、このような例に限定されなくてもよい。目標のタスク状態の決定には、推論モデル55が利用されなくてもよい。例えば、上記ステップS308では、上記ステップS205と同様に、目標のタスク状態が決定されてよい。一例として、制御部31は、パスプランニング等の公知の方法により、目標のタスク状態を決定してもよい。また、例えば、目標のタスク状態の系列は予め与えられてもよい。この場合、上記ステップS308では、制御部31は、当該系列を示すデータを参照することで、次に遷移する目標のタスク状態を決定してもよい。上記ステップS501も同様である。
上記実施形態では、制御装置3は、上記ステップS308において、推論モデル55を利用して、目標のタスク状態を決定している。しかしながら、目標のタスク状態を決定する方法は、このような例に限定されなくてもよい。目標のタスク状態の決定には、推論モデル55が利用されなくてもよい。例えば、上記ステップS308では、上記ステップS205と同様に、目標のタスク状態が決定されてよい。一例として、制御部31は、パスプランニング等の公知の方法により、目標のタスク状態を決定してもよい。また、例えば、目標のタスク状態の系列は予め与えられてもよい。この場合、上記ステップS308では、制御部31は、当該系列を示すデータを参照することで、次に遷移する目標のタスク状態を決定してもよい。上記ステップS501も同様である。
また、上記実施形態において、推論モデル55の生成(ステップS201~ステップS211)は、省略されてよい。或いは、上記実施形態において、制御装置3が、第2モデル生成装置2の各構成を包含してもよい。これにより、制御装置3が、上記推論モデル55を生成する一連の処理(ステップS201~ステップS211)を更に実行するように構成されてよい。これらの場合、制御システム100から第2モデル生成装置2が省略されてもよい。
また、上記実施形態では、学習データ223を収集するのに、学習済みの判定モデル50の判定結果が利用されている。しかしながら、学習データ223の収集は、このような例に限定されなくてもよい。例えば、各対象物の実物を利用する等して、学習済みの判定モデル50を利用せずに、学習データ223が収集されてよい。これにより、推論モデル55は、学習済みの判定モデル50を利用せずに生成されてよい。
また、上記実施形態において、ステップS201~ステップS209までの学習データ223の収集に関する処理は、他のコンピュータにより行われてもよい。この場合、上記実施形態に係る第2モデル生成装置2は、他のコンピュータにより生成された学習データ223を取得し、取得された学習データ223を使用して、ステップS210及びステップS211を実行してもよい。
<4.4>
上記実施形態では、2つの対象物の間の位置関係は相対座標により表現される。しかしながら、位置関係を表現する方法は、このような例に限定されなくてもよい。例えば、2つの対象物それぞれの絶対座標により位置関係が表現されてもよい。この場合、各絶対座標を相対座標に変換され、上記各情報処理が実行されてもよい。
上記実施形態では、2つの対象物の間の位置関係は相対座標により表現される。しかしながら、位置関係を表現する方法は、このような例に限定されなくてもよい。例えば、2つの対象物それぞれの絶対座標により位置関係が表現されてもよい。この場合、各絶対座標を相対座標に変換され、上記各情報処理が実行されてもよい。
<4.5>
また、上記実施形態では、制御装置3は、ステップS309において、目標のタスク状態から手先座標の目標値を算出している。しかしながら、手先座標の目標値を取得する方法は、このような例に限定されなくてもよい。手先座標の目標値は、最終目標のタスク状態に近付くように適宜決定されてよい。
また、上記実施形態では、制御装置3は、ステップS309において、目標のタスク状態から手先座標の目標値を算出している。しかしながら、手先座標の目標値を取得する方法は、このような例に限定されなくてもよい。手先座標の目標値は、最終目標のタスク状態に近付くように適宜決定されてよい。
例えば、手先座標の目標値は、手先座標の現在値及び最終目標のタスク状態における手先座標の値から直接的に決定されてよい。一例として、手先座標の目標値の決定には、データテーブル等の参照データが利用されてよい。この場合、制御部31は、手先座標の現在値及び最終目標のタスク状態における手先座標の値を参照データに対して照合することで、参照データから手先座標の目標値を取得することができる。その他の例として、例えば、制御部31は、最近傍法等により、手先座標の現在値から最終目標のタスク状態における手先座標の値まで最短距離で到達するように手先座標の目標値を決定してもよい。更にその他の例として、例えば、判定モデル50、推論モデル551等と同様に、機械学習により、手先座標の現在値及び最終目標のタスク状態における手先座標の値から手先座標の目標値を決定する能力を習得した学習済みの機械学習モデルが利用されてもよい。この場合、制御部31は、手先座標の現在値及び最終目標のタスク状態における手先座標の値を学習済みの機械学習モデルに与えて、学習済みの機械学習モデルの演算処理を実行する。これにより、制御部31は、手先座標の目標値を決定した結果に対応する出力値を学習済みの機械学習モデルから取得することができる。
この場合、ステップS306、ステップS308、ステップS309、及びステップS315が、制御装置3の処理手順から省略されてよい。また、状態取得部315及び行動決定部316が、制御装置3のソフトウェア構成から省略されてよい。
また、上記実施形態において、例えば、最終目標のタスク状態が予め設定されている場合等、最終目標のタスク状態が他の方法により設定される場合には、制御装置3の処理手順からステップS301及びステップS302の処理は省略されてよい。この場合、制御装置3のソフトウェア構成から目標設定部310は省略されてよい。
また、上記実施形態において、制御システム100から第1モデル生成装置1が省略されてよい。この場合、2つの対象物が互いに接触するか否かを示す情報を学習済みの判定モデル50以外の方法で保持する形態が採用されてもよい。例えば、2つの対象物が互いに接触するか否かを示す値を座標点毎に保持する形態が採用されてもよい。
<4.6>
上記実施形態では、判定モデル50は、全結合型ニューラルネットワークにより構成されている。しかしながら、判定モデル50を構成するニューラルネットワークの種類は、このような例に限定されなくてもよい。判定モデル50は、全結合型ニューラルネットワークの他、例えば、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等により構成されてもよい。また、判定モデル50は、複数種類のニューラルネットワークの組み合わせにより構成されてもよい。
上記実施形態では、判定モデル50は、全結合型ニューラルネットワークにより構成されている。しかしながら、判定モデル50を構成するニューラルネットワークの種類は、このような例に限定されなくてもよい。判定モデル50は、全結合型ニューラルネットワークの他、例えば、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等により構成されてもよい。また、判定モデル50は、複数種類のニューラルネットワークの組み合わせにより構成されてもよい。
また、判定モデル50を構成する機械学習モデルの種類は、ニューラルネットワークに限られなくてもよく、実施の形態に応じて適宜選択されてよい。判定モデル50には、ニューラルネットワークの他、例えば、サポートベクタマシン、回帰モデル、決定木等の機械学習モデルが採用されてよい。2つの対象物が互いに接触するか否かは、実空間又は仮想空間を対象に判定されてよい。
上記実施形態において、推論モデル55は、マニピュレータ4の遂行するタスクの種類毎に用意されてよい。すなわち、それぞれ異なるタスクにおける目標のタスク状態を推論するよう訓練された複数の推論モデル55が用意されてよい。この場合、制御装置3の制御部31は、上記ステップS305で設定した動作モードに応じて、用意された複数の推論モデル55の中から推論に利用する推論モデル55を選択してもよい。これにより、制御部31は、動作モードに応じて、推論モデル55を切り替えてもよい。或いは、推論モデル55は、例えば、対象物の種類、対象物の識別子、タスクの識別子、タスクの種類等のタスクの条件を示す情報の入力を更に受け付け、入力された条件に対応するタスクにおける目標のタスク状態を推論するように構成されてもよい。この場合、制御部31は、次に遷移する目標のタスク状態を決定する際に、上記ステップS305で設定した動作モードを示す情報を推論モデル55に更に入力して、上記ステップS308の演算処理を実行してもよい。
また、上記実施形態において、判定モデル50及び推論モデル55に対する入力及び出力の形式は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、判定モデル50は、タスク状態を示す情報以外の情報の入力を更に受け付けるように構成されてもよい。同様に、推論モデル55は、現在のタスク状態及び最終目標のタスク状態以外の情報の入力を更に受け付けるように構成されてもよい。最終目標のタスク状態が一定である場合、推論モデル55の入力から最終目標のタスク状態を示す情報は省略されてよい。判定モデル50及び推論モデル55の出力形式は、識別及び回帰のいずれであってもよい。
また、上記実施形態において、上記順運動学計算に用いる変換関数(第1変換行列群又は第2変換行列群)が、第1推定モデル61の一例である。また、タスク空間の値を観測空間の値に変換する変換関数(ψ)又は各座標(Tt、Tw)が、第2推定モデル62の一例である。各推定モデル(61、62)の構成は、このような例に限定されなくてもよい。各推定モデル(61、62)は、各センシングデータ(323、324)からマニピュレータ4の手先座標を算出可能に適宜構成されてよい。
各推定モデル(61、62)は、各センシングデータ(323、324)から手先座標を算出するためのパラメータを備える。各推定モデル(61、62)の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各推定モデル(61、62)は、例えば、関数式、データテーブル等により表現されてよい。関数式により表現される場合、各推定モデル(61、62)は、ニューラルネットワーク、サポートベクタマシン、回帰モデル、決定木等の機械学習モデルにより構成されてよい。
<4.7>
上記実施形態では、制御装置3は、図20及び図21の両方のパラメータ調整の情報処理を実行可能に構成されている。しかしながら、制御装置3の構成は、このような例に限定されなくてもよい。上記実施形態において、制御装置3は、図20及び図21のいずれか一方のみを実行するように構成されてよい。例えば、制御装置3は、図20に示されるパラメータ調整に関する情報処理の実行を省略し、マニピュレータ4の手先が対象物に接触したときに、図21に示されるパラメータ調整に関する情報処理を実行するように構成されてよい。
上記実施形態では、制御装置3は、図20及び図21の両方のパラメータ調整の情報処理を実行可能に構成されている。しかしながら、制御装置3の構成は、このような例に限定されなくてもよい。上記実施形態において、制御装置3は、図20及び図21のいずれか一方のみを実行するように構成されてよい。例えば、制御装置3は、図20に示されるパラメータ調整に関する情報処理の実行を省略し、マニピュレータ4の手先が対象物に接触したときに、図21に示されるパラメータ調整に関する情報処理を実行するように構成されてよい。
1…第1モデル生成装置、
11…制御部、12…記憶部、13…通信インタフェース、
14…外部インタフェース、
15…入力装置、16…出力装置、17…ドライブ、
91…記憶媒体、81…モデル生成プログラム、
111…データ取得部、112…機械学習部、
113…保存処理部、
120…CADデータ、
121…学習データセット、
122…訓練データ、123…正解データ、
125…学習結果データ、
2…第1モデル生成装置、
21…制御部、22…記憶部、23…通信インタフェース、
24…外部インタフェース、
25…入力装置、26…出力装置、27…ドライブ、
92…記憶媒体、82…モデル生成プログラム、
211…接触判定部、212…データ収集部、
213…モデル生成部、214…保存処理部、
220…CADデータ、223…学習データ、
225…推論モデルデータ、
3…制御装置、
31…制御部、32…記憶部、33…通信インタフェース、
34…外部インタフェース、
35…入力装置、36…出力装置、37…ドライブ、
93…記憶媒体、83…制御プログラム、
310…目標設定部、311…第1データ取得部、
312…第2データ取得部、313…第1推定部、
314…第2推定部、315…状態取得部、
316…行動決定部、317…指令決定部、
318…駆動部、319…調整部、
320…CADデータ、321…ロボットデータ、
323…第1センシングデータ、
324…第2センシングデータ、
4…マニピュレータ、
40…台座部、
41~46…関節部、491~494…リンク、
T…エンドエフェクタ、
T0…注目点、CT…ローカル座標系、
W…ワーク、
W0…注目点、CW…ローカル座標系、
G…他のワーク、CG…ローカル座標系、
RC1・RC2…相対座標、
S1…カメラ、S2…エンコーダ、S3…触覚センサ、
50…判定モデル、
501…入力層、502…中間(隠れ)層、
503…出力層、
55…推論モデル、
61…第1推定モデル、62…第2推定モデル
11…制御部、12…記憶部、13…通信インタフェース、
14…外部インタフェース、
15…入力装置、16…出力装置、17…ドライブ、
91…記憶媒体、81…モデル生成プログラム、
111…データ取得部、112…機械学習部、
113…保存処理部、
120…CADデータ、
121…学習データセット、
122…訓練データ、123…正解データ、
125…学習結果データ、
2…第1モデル生成装置、
21…制御部、22…記憶部、23…通信インタフェース、
24…外部インタフェース、
25…入力装置、26…出力装置、27…ドライブ、
92…記憶媒体、82…モデル生成プログラム、
211…接触判定部、212…データ収集部、
213…モデル生成部、214…保存処理部、
220…CADデータ、223…学習データ、
225…推論モデルデータ、
3…制御装置、
31…制御部、32…記憶部、33…通信インタフェース、
34…外部インタフェース、
35…入力装置、36…出力装置、37…ドライブ、
93…記憶媒体、83…制御プログラム、
310…目標設定部、311…第1データ取得部、
312…第2データ取得部、313…第1推定部、
314…第2推定部、315…状態取得部、
316…行動決定部、317…指令決定部、
318…駆動部、319…調整部、
320…CADデータ、321…ロボットデータ、
323…第1センシングデータ、
324…第2センシングデータ、
4…マニピュレータ、
40…台座部、
41~46…関節部、491~494…リンク、
T…エンドエフェクタ、
T0…注目点、CT…ローカル座標系、
W…ワーク、
W0…注目点、CW…ローカル座標系、
G…他のワーク、CG…ローカル座標系、
RC1・RC2…相対座標、
S1…カメラ、S2…エンコーダ、S3…触覚センサ、
50…判定モデル、
501…入力層、502…中間(隠れ)層、
503…出力層、
55…推論モデル、
61…第1推定モデル、62…第2推定モデル
Claims (6)
- マニピュレータの動作を制御するための制御装置であって、
前記マニピュレータの手先を観測する第1センサ系から第1センシングデータを取得する第1データ取得部と、
第1推定モデルを利用して、取得された前記第1センシングデータから、観測空間内における前記手先の現在の座標の第1推定値を算出する第1推定部と、
前記マニピュレータの手先を観測する第2センサ系から第2センシングデータを取得する第2データ取得部と、
第2推定モデルを利用して、取得された前記第2センシングデータから、前記観測空間内における前記手先の現在の座標の第2推定値を算出する第2推定部と、
前記第1推定値及び前記第2推定値の間の誤差の勾配を算出し、算出された勾配に基づいて、前記誤差が小さくなるように前記第1推定モデル及び前記第2推定モデルの少なくとも一方のパラメータの値を調整する調整部と、
前記第1推定値及び前記第2推定値の少なくとも一方に基づいて、前記手先の座標が目標値に近付くように、前記マニピュレータに与える制御指令を決定する指令決定部と、
決定された前記制御指令を前記マニピュレータに与えることで、前記マニピュレータを駆動する駆動部と、
を備える、
制御装置。 - 前記調整部は、更に、
前記マニピュレータの手先が対象物に接触した時に、当該対象物との接触の境界面上で前記手先の座標の境界値を取得し、
前記接触時に推定される前記第1推定値及び取得された前記境界値の間の第1誤差の勾配を算出し、算出された前記第1誤差の勾配に基づいて、前記第1誤差が小さくなるように前記第1推定モデルのパラメータの値を調整し、かつ
前記接触時に推定される前記第2推定値及び取得された前記境界値の間の第2誤差の勾配を算出し、算出された前記第2誤差の勾配に基づいて、前記第2誤差が小さくなるように前記第2推定モデルのパラメータの値を調整する、
請求項1に記載の制御装置。 - 前記マニピュレータは、1つ以上の関節を備え、
前記第1センサ系は、前記各関節の角度を測定するエンコーダを備え、
前記第2センサ系は、カメラを備える、
請求項1又は2に記載の制御装置。 - 前記マニピュレータは、ワークを保持するためのエンドエフェクタを更に備え、
前記エンドエフェクタが前記ワークを保持していない場合、前記エンドエフェクタの注目点が前記手先に設定され、
前記エンドエフェクタが前記ワークを保持している場合、前記ワークの注目点が前記手先に設定され、
前記第1センサ系は、前記エンドエフェクタに対する前記ワークの位置関係を推定するための触覚センサを更に備える、
請求項3に記載の制御装置。 - マニピュレータの動作を制御するための制御方法であって、
コンピュータが、
前記マニピュレータの手先を観測する第1センサ系から第1センシングデータを取得するステップと、
第1推定モデルを利用して、取得された前記第1センシングデータから、観測空間内における前記手先の現在の座標の第1推定値を算出するステップと、
前記マニピュレータの手先を観測する第2センサ系から第2センシングデータを取得するステップと、
第2推定モデルを利用して、取得された前記第2センシングデータから、前記観測空間内における前記手先の現在の座標の第2推定値を算出するステップと、
前記第1推定値及び前記第2推定値の間の誤差の勾配を算出するステップと、
算出された勾配に基づいて、前記誤差が小さくなるように前記第1推定モデル及び前記第2推定モデルの少なくとも一方のパラメータの値を調整するステップと、
前記第1推定値及び前記第2推定値の少なくとも一方に基づいて、前記手先の座標が目標値に近付くように、前記マニピュレータに与える制御指令を決定するステップと、
決定された前記制御指令を前記マニピュレータに与えることで、前記マニピュレータを駆動するステップと、
を実行する、
制御方法。 - マニピュレータの動作を制御するための制御プログラムであって、
コンピュータに、
前記マニピュレータの手先を観測する第1センサ系から第1センシングデータを取得するステップと、
第1推定モデルを利用して、取得された前記第1センシングデータから、観測空間内における前記手先の現在の座標の第1推定値を算出するステップと、
前記マニピュレータの手先を観測する第2センサ系から第2センシングデータを取得するステップと、
第2推定モデルを利用して、取得された前記第2センシングデータから、前記観測空間内における前記手先の現在の座標の第2推定値を算出するステップと、
前記第1推定値及び前記第2推定値の間の誤差の勾配を算出するステップと、
算出された勾配に基づいて、前記誤差が小さくなるように前記第1推定モデル及び前記第2推定モデルの少なくとも一方のパラメータの値を調整するステップと、
前記第1推定値及び前記第2推定値の少なくとも一方に基づいて、前記手先の座標が目標値に近付くように、前記マニピュレータに与える制御指令を決定するステップと、
決定された前記制御指令を前記マニピュレータに与えることで、前記マニピュレータを駆動するステップと、
を実行させるための、
制御プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20854981.6A EP4019208A4 (en) | 2019-08-22 | 2020-07-17 | CONTROL DEVICE, CONTROL METHOD AND CONTROL PROGRAM |
US17/628,271 US12090673B2 (en) | 2019-08-22 | 2020-07-17 | Control apparatus, control method, and computer-readable storage medium storing a control program |
CN202080049997.3A CN114080304B (zh) | 2019-08-22 | 2020-07-17 | 控制装置、控制方法及控制程序 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019152394 | 2019-08-22 | ||
JP2019-152394 | 2019-08-22 | ||
JP2019161195A JP7263987B2 (ja) | 2019-08-22 | 2019-09-04 | 制御装置、制御方法、及び制御プログラム |
JP2019-161195 | 2019-09-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021033472A1 true WO2021033472A1 (ja) | 2021-02-25 |
Family
ID=74660932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/027954 WO2021033472A1 (ja) | 2019-08-22 | 2020-07-17 | 制御装置、制御方法、及び制御プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US12090673B2 (ja) |
EP (1) | EP4019208A4 (ja) |
CN (1) | CN114080304B (ja) |
WO (1) | WO2021033472A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021089526A (ja) * | 2019-12-03 | 2021-06-10 | 株式会社Preferred Networks | 推定装置、訓練装置、推定方法、訓練方法、プログラム及び非一時的コンピュータ可読媒体 |
JP2022048096A (ja) * | 2021-07-30 | 2022-03-25 | シロキ工業株式会社 | 位置決め方法及び位置決め装置 |
US20240181647A1 (en) * | 2022-12-06 | 2024-06-06 | Sanctuary Cognitive Systems Corporation | Systems, methods, and control modules for controlling end effectors of robot systems |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0768480A (ja) * | 1993-09-06 | 1995-03-14 | Mitsubishi Heavy Ind Ltd | マニピュレータの関節角度制御方法 |
JP2010142901A (ja) * | 2008-12-18 | 2010-07-01 | Denso Wave Inc | ロボットのキャリブレーション方法及びロボットの制御装置 |
JP2012061558A (ja) * | 2010-09-16 | 2012-03-29 | Denso Wave Inc | ロボット監視システム |
JP2012101306A (ja) * | 2010-11-09 | 2012-05-31 | Mitsubishi Electric Corp | ロボットの校正装置および校正方法 |
WO2013176212A1 (ja) * | 2012-05-25 | 2013-11-28 | 学校法人立命館 | ロボット制御装置、ロボット制御方法、プログラム、記録媒体、ロボットシステム |
JP2015085491A (ja) * | 2013-11-01 | 2015-05-07 | セイコーエプソン株式会社 | ロボット制御装置、ロボット及びロボット制御方法 |
JP2015174172A (ja) | 2014-03-14 | 2015-10-05 | セイコーエプソン株式会社 | ロボット、ロボットシステム、及び制御装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2038712B2 (en) | 2006-06-13 | 2019-08-28 | Intuitive Surgical Operations, Inc. | Control system configured to compensate for non-ideal actuator-to-joint linkage characteristics in a medical robotic system |
JP4347386B2 (ja) * | 2008-01-23 | 2009-10-21 | ファナック株式会社 | 加工用ロボットプラグラムの作成装置 |
JP5149416B2 (ja) * | 2011-04-06 | 2013-02-20 | ファナック株式会社 | ロボットの異常検出機能を有するロボットシステム及びその制御方法 |
US9358685B2 (en) * | 2014-02-03 | 2016-06-07 | Brain Corporation | Apparatus and methods for control of robot actions based on corrective user inputs |
JP2016024598A (ja) * | 2014-07-18 | 2016-02-08 | パナソニックIpマネジメント株式会社 | 自律移動装置の制御方法 |
US11020859B2 (en) * | 2015-05-01 | 2021-06-01 | Transportation Ip Holdings, Llc | Integrated robotic system and method for autonomous vehicle maintenance |
CN104924313B (zh) * | 2015-05-13 | 2017-03-01 | 北京工业大学 | 具有模仿学习机制的手把手示教机械臂系统及方法 |
JP2018126796A (ja) * | 2017-02-06 | 2018-08-16 | セイコーエプソン株式会社 | 制御装置、ロボットおよびロボットシステム |
EP3366433B1 (en) * | 2017-02-09 | 2022-03-09 | Canon Kabushiki Kaisha | Method of controlling robot, method of teaching robot, and robot system |
JP6707485B2 (ja) | 2017-03-22 | 2020-06-10 | 株式会社東芝 | 物体ハンドリング装置およびその較正方法 |
US10307908B2 (en) | 2017-04-07 | 2019-06-04 | X Development Llc | Methods and systems for establishing and maintaining a pre-build relationship |
JP6695843B2 (ja) * | 2017-09-25 | 2020-05-20 | ファナック株式会社 | 装置、及びロボットシステム |
US11364629B2 (en) * | 2019-04-27 | 2022-06-21 | The Johns Hopkins University | Data-driven position estimation and collision detection for flexible manipulator |
-
2020
- 2020-07-17 WO PCT/JP2020/027954 patent/WO2021033472A1/ja unknown
- 2020-07-17 EP EP20854981.6A patent/EP4019208A4/en not_active Withdrawn
- 2020-07-17 CN CN202080049997.3A patent/CN114080304B/zh active Active
- 2020-07-17 US US17/628,271 patent/US12090673B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0768480A (ja) * | 1993-09-06 | 1995-03-14 | Mitsubishi Heavy Ind Ltd | マニピュレータの関節角度制御方法 |
JP2010142901A (ja) * | 2008-12-18 | 2010-07-01 | Denso Wave Inc | ロボットのキャリブレーション方法及びロボットの制御装置 |
JP2012061558A (ja) * | 2010-09-16 | 2012-03-29 | Denso Wave Inc | ロボット監視システム |
JP2012101306A (ja) * | 2010-11-09 | 2012-05-31 | Mitsubishi Electric Corp | ロボットの校正装置および校正方法 |
WO2013176212A1 (ja) * | 2012-05-25 | 2013-11-28 | 学校法人立命館 | ロボット制御装置、ロボット制御方法、プログラム、記録媒体、ロボットシステム |
JP2015085491A (ja) * | 2013-11-01 | 2015-05-07 | セイコーエプソン株式会社 | ロボット制御装置、ロボット及びロボット制御方法 |
JP2015174172A (ja) | 2014-03-14 | 2015-10-05 | セイコーエプソン株式会社 | ロボット、ロボットシステム、及び制御装置 |
Non-Patent Citations (3)
Title |
---|
FELIX A. GERSJURGEN SCHMIDHUBERFRED CUMMINS: "Learning to Forget: Continual Prediction with LSTM", NEURAL COMPUTATION, October 2000 (2000-10-01), pages 2451 - 2471 |
S. HOCHREITERJ. SCHMIDHUBER: "Long Short-term Memory", NEURAL COMPUTATION, vol. 9, no. 8, 15 November 1997 (1997-11-15), pages 1735 - 1780 |
See also references of EP4019208A4 |
Also Published As
Publication number | Publication date |
---|---|
CN114080304B (zh) | 2024-05-14 |
EP4019208A1 (en) | 2022-06-29 |
US20220274255A1 (en) | 2022-09-01 |
CN114080304A (zh) | 2022-02-22 |
EP4019208A4 (en) | 2022-12-07 |
US12090673B2 (en) | 2024-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021033486A1 (ja) | モデル生成装置、モデル生成方法、制御装置及び制御方法 | |
WO2021033471A1 (ja) | 制御装置、制御方法、及び制御プログラム | |
US11745355B2 (en) | Control device, control method, and non-transitory computer-readable storage medium | |
WO2021033472A1 (ja) | 制御装置、制御方法、及び制御プログラム | |
JP5210883B2 (ja) | 物理的な多関節システムの部位の動作を制御する、コンピュータを使用する方法、物理的な多関節システムの部位の動作を制御するシステム、人間とは別体の物理的多関節システムに前記人間の動作を追従させる、コンピュータを用いた方法、人間とは別体の物理的多関節システムによって前記人間の動作を追従させるシステム、及び、ソースシステムとは別体の物理的多関節システムの部位の動きを制御する、コンピュータを用いた方法 | |
JP5210884B2 (ja) | 物理的多関節システムの姿勢を制御するコンピュータを用いた方法および多関節システムを位置決めするシステム | |
Khalil et al. | Dexterous robotic manipulation of deformable objects with multi-sensory feedback-a review | |
Meeussen et al. | Contact-state segmentation using particle filters for programming by human demonstration in compliant-motion tasks | |
Laschi et al. | Learning-based control strategies for soft robots: Theory, achievements, and future challenges | |
JP2022176917A (ja) | ロボットデバイスを制御するための方法 | |
JP7263987B2 (ja) | 制御装置、制御方法、及び制御プログラム | |
Chalasani et al. | A computational framework for complementary situational awareness (csa) in surgical assistant robots | |
JP2021122899A (ja) | 軌道生成装置、多リンクシステム、及び軌道生成方法 | |
Sipos et al. | Multiscope: Disambiguating in-hand object poses with proprioception and tactile feedback | |
Almaghout et al. | Robotic co-manipulation of deformable linear objects for large deformation tasks | |
JP2014065098A (ja) | ロボット装置及び多関節ロボットの軌道シミュレーション装置並びに軌道生成方法 | |
JP2021084188A (ja) | 制御システム | |
WO2022044615A1 (ja) | 学習装置、学習方法、学習プログラム、制御装置、制御方法、及び制御プログラム | |
Aydogmus et al. | Implementation of singularity-free inverse kinematics for humanoid robotic arm using Bayesian optimized deep neural network | |
Geng et al. | Synergy-based affordance learning for robotic grasping | |
Bodily | Design optimization and motion planning for pneumatically-actuated manipulators | |
Fonkoua et al. | Deformation control of a 3D soft object using RGB-D visual servoing and FEM-based dynamic model | |
Chen et al. | Object-Level Stiffness Control for the Dexterous Hand in Limited Perception With Grasping Learning and Data Fusion | |
Khandekar et al. | Fusion of human arm synergy and artificial neural network for programming of a robot by demonstration | |
Filipe et al. | Learning to Grasp Objects in Virtual Environments through Imitation |
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: 20854981 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2020854981 Country of ref document: EP Effective date: 20220322 |