WO2021157104A1 - ロボット制御システム、ロボットシステム、操作システム、ロボット制御方法、およびロボット制御プログラム - Google Patents

ロボット制御システム、ロボットシステム、操作システム、ロボット制御方法、およびロボット制御プログラム Download PDF

Info

Publication number
WO2021157104A1
WO2021157104A1 PCT/JP2020/016460 JP2020016460W WO2021157104A1 WO 2021157104 A1 WO2021157104 A1 WO 2021157104A1 JP 2020016460 W JP2020016460 W JP 2020016460W WO 2021157104 A1 WO2021157104 A1 WO 2021157104A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
degree
command value
distribution
assist
Prior art date
Application number
PCT/JP2020/016460
Other languages
English (en)
French (fr)
Inventor
政之 藤田
健志 畑中
淳矢 山内
光世 野田
慶太 嶌本
光司 曽我部
平田 亮吉
勝 足立
Original Assignee
国立大学法人東京工業大学
株式会社安川電機
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 国立大学法人東京工業大学, 株式会社安川電機 filed Critical 国立大学法人東京工業大学
Priority to JP2021575596A priority Critical patent/JPWO2021157104A1/ja
Publication of WO2021157104A1 publication Critical patent/WO2021157104A1/ja
Priority to US17/816,727 priority patent/US20220371203A1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/06Control stands, e.g. consoles, switchboards
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1605Simulation of manipulator lay-out, design, modelling of manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40527Modeling, identification of link parameters

Definitions

  • One aspect of the present disclosure relates to a robot control system, a robot system, an operation system, a robot control method, and a robot control program.
  • Patent Document 1 describes the motion data detected by the motion sensor and the ambient environment data detected by the ambient environment sensor by a model constructed by machine learning the operator operation force, the ambient environment data, the motion data, and the motion command.
  • a robot system that estimates the arithmetic operation force based on the operation command output by the relay device is described.
  • the robot control system is a robot control system that controls a robot according to a user operation, is a learned model generated based on a past operation, and is a current state and a target of the robot.
  • An inference unit that outputs the degree of distribution based on the trained model that outputs at least the degree of distribution, which is the degree of distribution of the robot's movements in the state difference, in response to at least the input of the state difference from the state.
  • the setting unit that sets the assist degree, which is the degree to assist the operation of the robot, and the input command value and the assist degree input from the operation device by the user operation. Based on this, it is provided with a generation unit that generates an output command value output to the robot.
  • the robot control method is a robot control method executed by a robot control system including at least one processor for controlling a robot according to a user operation, and is generated based on a past operation.
  • a robot control system including at least one processor for controlling a robot according to a user operation, and is generated based on a past operation.
  • at least the degree of distribution which is the degree of distribution of the robot's motion in the state difference, is output.
  • the robot control program is a robot control program that causes a computer to function as a robot control system including at least one processor for controlling a robot in response to a user operation, and is based on past operations.
  • the degree of distribution which is the degree of distribution of the robot's movement in the state difference
  • a step of outputting the distribution degree based on the trained model a step of setting the assist degree which is the degree of assisting the operation of the robot based on the distribution degree output from the trained model, and a user operation.
  • the computer is made to execute a step of generating an output command value output to the robot based on the input command value input from the operation device and the assist degree.
  • the operation of the robot can be appropriately assisted.
  • the robot control system 1 is a computer system that controls the robot 2 according to a user's operation.
  • the robot 2 operates based on the operation to perform various operations such as processing and assembly.
  • a user is a person who operates a robot, and therefore can also be called an operator.
  • FIG. 1 is a diagram showing an example of application of the robot control system 1.
  • the robot control system 1 includes an operating device 10.
  • the operating device 10 is connected to the robot computer 3 via the communication network N.
  • the robot computer 3 is connected to the robot controller 4, and the robot controller 4 is connected to the robot 2.
  • FIG. 1 shows the operating device 10 and the robot 2 one by one.
  • the number of the operating device 10 and the robot 2 is not limited, and at least one of the operating device 10 and the robot 2 may exist in a plurality.
  • the operating device 10 is located in the operating environment Eu where the user exists, whereas the robot computer 3, the robot controller 4, and the robot 2 are located in the working environment Ew located remotely to the user. That is, the working environment Ew is a remote environment when viewed from the operating environment Eu. When an object is "remotely located", it means that the object exists in a position that the user cannot see with his / her own eyes.
  • the distance between the operating environment Eu and the working environment Ew that is, the distance between the user and the robot 2 is not limited in any way.
  • the working environment Ew may be separated from the operating environment Eu on the order of kilometers.
  • the working environment Ew may be separated from the operating environment Eu on the order of several meters.
  • the space next to the room which is the operating environment Eu may be the working environment Ew.
  • the configuration of the communication network N is also not limited.
  • the communication network N may be configured to include at least one of the Internet and an intranet.
  • the communication network N may have a simple configuration realized by a single communication cable.
  • the operating device 10 is a computer for operating the robot 2.
  • the operating device 10 includes an operating interface, which is an input interface for operating the robot 2, and a monitor capable of displaying an image of the working environment Ew. The user can operate the robot 2 on the operation interface while checking the work environment Ew displayed on the monitor.
  • the operation device 10 transmits a command value indicating a user operation (command) input from the operation interface to the robot computer 3.
  • a command is a command input by a user operation.
  • the command value is a value related to the command.
  • the value related to the command is, for example, a value related to an additional movement vector corresponding to the user operation, that is, a value indicating a movement amount or a movement speed and a movement direction.
  • the robot computer 3 is a computer that interprets a command value input from the operating device 10 and outputs a command signal corresponding to the command value to the robot controller 4.
  • the robot controller 4 is a device that controls the robot 2 according to a command signal input from a robot computer. In other words, the robot controller 4 controls the robot 2 based on a command sent from the operating device 10 in response to a user operation.
  • the command signal includes data for controlling the robot 2, for example, a path indicating the trajectory of the robot 2.
  • the trajectory of the robot 2 refers to the path of movement of the robot 2 or its components.
  • the trajectory of the robot 2 can be the trajectory of the tip.
  • the robot controller 4 calculates a joint angle target value (angle target value of each joint of the robot 2) for matching the position and posture of the tip with the target value indicated by the command signal, and the angle target value.
  • the robot 2 is controlled according to the above.
  • Robot 2 is a device or machine that works on behalf of a person.
  • the robot 2 is a multi-axis serial link type vertical articulated robot.
  • the robot 2 includes a manipulator 2a and an end effector 2b, which is a tool attached to the tip of the manipulator 2a.
  • the robot 2 can execute various processes by using the end effector 2b.
  • the robot 2 can freely change the position and orientation of the end effector 2b within a predetermined range.
  • the robot 2 may be a 6-axis vertical articulated robot, or a 7-axis vertical articulated robot in which a redundant axis of 1 axis is added to the 6 axes.
  • the operation or state of the robot 2 is recorded as a response of the robot 2 by various sensors, and is output as sensor data to, for example, the robot controller 4.
  • the response refers to the output to the command, and more specifically, the operation or state of the robot 2 to the command.
  • the operation or state may be represented by any data item, eg, by at least one of position, attitude, velocity, acceleration, torque, force, and current value.
  • the operation or state of the robot 2 may be represented by the operation or state of the end effector 2b.
  • the type of information indicating the response is not limited, and for example, the response may be information indicating the operation or state of the robot 2, or may be indicated by a command output from the robot controller 4 to the robot 2.
  • the sensor may be mounted on the robot 2 or may be provided independently of the robot 2 without being mounted on the robot 2.
  • the type of sensor is not limited, and various sensors such as an acceleration sensor, a voltage sensor, a current sensor, a temperature sensor, a gyro sensor, a camera, a pressure sensor, and a ToF (Time-of-Flight) sensor may be used.
  • the robot controller 4 calculates a response value indicating the operation or state (that is, response) of the robot 2 based on the sensor data, and transmits the response value to the operating device 10 via the robot computer 3.
  • the response value is a value related to the response.
  • the value related to the response is, for example, a value related to an additional movement vector indicating an additional movement of the robot, that is, a value indicating a movement amount or a movement speed and a movement direction.
  • the robot controller 4 may send a command signal to the robot 2 as a response value to the operating device 10 via the robot computer 3. At least a part of the sensor data from the sensor of the robot 2 may be output to the robot computer 3 without going through the robot controller 4. In this case, the robot computer 3 may calculate the response value based on the sensor data.
  • the user may not be able to operate the robot 2 as intended.
  • the delay means that the operation or state of the robot 2 shown in the image is delayed in response to the command to the robot 2.
  • the robot 2 may not be operated accurately or efficiently.
  • the robot control system 1 assists such a user in operating the robot 2, which enables the user to operate the robot 2 as he / she intends. “Assisting the operation of the robot” or “assisting the user operation” means providing the user with an environment for operating the robot 2 appropriately (for example, accurately).
  • Robot control system 1 uses a machine learning model to assist it.
  • Machine learning is a method of autonomously finding a law or rule by iteratively learning based on given information.
  • the machine learning model is a calculation model used in machine learning.
  • Machine learning models can be built using algorithms and data structures. The specific algorithm on which the machine learning model is based is not limited.
  • the robot control system 1 uses a machine learning model that can obtain a probability distribution of a function that predicts an output from an input.
  • a machine learning model may be constructed using a Gaussian process.
  • the Gaussian process is an infinite dimensional Gaussian distribution.
  • the Gaussian process is characterized by the mean and variance of its Gaussian distribution.
  • it is assumed that the robot control system 1 uses a machine learning model based on a Gaussian process.
  • the autonomously generated machine learning model is called a "learned model”.
  • the trained model is a calculation model that is presumed to be optimal for assisting the operation of the robot 2, and is not necessarily a “calculation model that is optimal in reality”.
  • the process of generating a trained model corresponds to the training phase.
  • a given computer system performs machine learning based on past operations to generate a trained model.
  • the robot control system 1 assists the operation of the robot 2 by using the trained model. This assist corresponds to the operation phase.
  • the trained model can be ported between computer systems. Therefore, a trained model generated in one computer system can be used in another computer system. Of course, one computer system may both generate and utilize the trained model.
  • the robot control system 1 may execute both the learning phase and the operation phase. Alternatively, the robot control system 1 may execute the operation phase using the trained model generated by another computer system without executing the learning phase.
  • the computer that functions as the operating device 10 or the robot computer 3 is not limited. In one example, these computers may be composed of a personal computer or a large computer such as a business server.
  • FIG. 2 is a diagram showing an example of the hardware configuration of the computer 100 used for the operating device 10 or the robot computer 3.
  • the computer 100 includes a main body 110, a monitor 120, and an input device 130.
  • the main body 110 is composed of at least one computer.
  • the main body 110 has a circuit 160, which has at least one processor 161, a memory 162, a storage 163, an input / output port 164, and a communication port 165.
  • the storage 163 records a program for configuring each functional module of the main body 110.
  • the storage 163 is a computer-readable recording medium such as a hard disk, a non-volatile semiconductor memory, a magnetic disk, or an optical disk.
  • the memory 162 temporarily stores the program loaded from the storage 163, the calculation result of the processor 161 and the like.
  • the processor 161 constitutes each functional module by executing a program in cooperation with the memory 162.
  • the input / output port 164 inputs / outputs an electric signal to / from the monitor 120 or the input device 130 in response to a command from the processor 161.
  • the input / output port 164 may input / output an electric signal to / from another device such as the robot controller 4.
  • the communication port 165 performs data communication with another device via the communication network N in accordance with a command from the processor 161.
  • the monitor 120 is a device for displaying information output from the main body 110.
  • the monitor 120 is an example of the display unit in the present disclosure.
  • the monitor 120 may be any monitor 120 as long as it can display graphics, and specific examples thereof include a liquid crystal panel and the like.
  • the input device 130 is a device for inputting information to the main body 110.
  • the input device 130 may be any input device 130 as long as it can input desired information, and specific examples thereof include an operation interface such as a keypad, a mouse, and an operation controller.
  • the monitor 120 and the input device 130 may be integrated as a touch panel.
  • the main body 110, the monitor 120, and the input device 130 may be integrated.
  • FIG. 3 is a diagram showing an example of the functional configuration of the operating device 10.
  • the operating device 10 includes an acquisition unit 11, a specific unit 12, a selection unit 13, an inference unit 14, a setting unit 15, and a generation unit 16 as functional modules.
  • the operating device 10 further comprises a model database 17.
  • the acquisition unit 11 is a functional module that acquires data related to a command or response of the robot 2 from the operation environment Eu or the work environment Ew. For example, the acquisition unit 11 acquires a command value and a response value (sensor data).
  • the identification unit 12 is a functional module that specifies the task to be executed by the robot 2 based on the response value (sensor data).
  • the task is the smallest unit of processing that constitutes a series of processing by the robot 2.
  • the identification unit 12 further identifies the user who is operating the robot 2.
  • the selection unit 13 is a function module that selects a trained model corresponding to a specified task from a plurality of trained models corresponding to each of a plurality of tasks that can be executed by the robot.
  • the selection unit 13 accesses the model database 17 that stores a plurality of given trained models and selects the trained model corresponding to the task.
  • Each trained model is generated in advance by machine learning using training data and stored in the model database 17.
  • the specific method for generating the trained model is not limited, and it may be designed by an arbitrary policy.
  • the hyperparameters are optimized so that the error defined using the hyperparameters of the covariance function and the noise of the observed values is minimized.
  • a trained model can be constructed from a relatively small amount of training data, so that the labor for collecting training data can be reduced.
  • the inference unit 14 is a functional module that outputs the degree of distribution, which is the degree of distribution of the robot 2's movement in the state difference between the current state and the target state of the robot 2, based on the selected learned model.
  • the current state refers to the current state of the robot 2 derived from the response value.
  • the target state refers to the final state of the robot 2 intended by the user, for example, the state of the robot 2 when the work intended by the user is completed.
  • the state difference is the difference between the current state and the target state, and corresponds to the remaining movements required for the robot 2 to reach the target state.
  • the degree of distribution is represented by a random variable (for example, variance) output from the trained model. In this embodiment, the trained model outputs the degree of distribution based on the Gaussian process.
  • the setting unit 15 is a function module that sets the assist degree, which is the degree of assisting the operation of the robot 2, based on the distribution degree.
  • the generation unit 16 is a functional module that generates an output command value output to the robot 2 based on an input command value input from the operation device and a set assist degree by a user operation.
  • the model database 17 is constructed in the operating device 10, but the installation location of the model database 17 is not limited to this.
  • the model database 17 may be constructed on a computer different from the operating device 10, in which case the selection unit 13 accesses the model database 17 via a given communication network.
  • FIG. 4 is a block diagram showing an example of a detailed functional configuration of the operating device 10.
  • the operation device 10 obtains an input command value u h from the operation controller that has received the operation of the user 9 aiming at the target state g of the robot 2. It can be said that this input command value u h is an original command value indicating the user operation itself. Further, the operating device 10 acquires the current state y h of the robot 2 and calculates the state difference e between the current state y h and the target state g. The operating device 10 generates an output command value u based on the input command value U h and the state difference e, and transmits the output command value u to the robot 2.
  • the operating device 10 generates one of two candidates, the input command value U h itself and the assist command value U GPh in consideration of the experience of an expert, as the output command value u, and this output command value Send u.
  • this process is represented by a switch SW.
  • the operating device 10 includes two types of trained models, a skilled model (first model) 141 and a self-model (second model) 142, as the inference unit 14, and the output command value u is used using these trained models. To generate.
  • the proficiency model 141 is an example of a trained model generated based on the past operations of another user different from the user 9. More specifically, the skilled model 141 is a trained model generated based on the past operations of a skilled person who is more skilled in operation than the user 9. In one example, the skilled model 141 accepts the state difference e as an input and outputs the variance (first distribution) ⁇ EXP and the prediction command value u EXP . This variance (first distribution degree) ⁇ EXP indicates the degree of certainty of the operation of the expert in the state difference e.
  • the predicted command value u EXP is a command value predicted based on the past operation, and more specifically, it is a command value predicted based on the past operation of an expert.
  • the self-model 142 is a trained model generated based on the past operations of the user 9.
  • the self-model 142 accepts the input command value U h and the state difference e as inputs and outputs the variance (second distribution degree) ⁇ OWN.
  • This variance (second distribution degree) ⁇ OWN indicates the degree of similarity with the user 9's own past operation in the state difference e.
  • the setting unit 15 sets the assist degree based on the distribution degree. Specifically, the setting unit 15 sets the first assist degree ⁇ based on the variance (first distribution degree) ⁇ EXP. The setting unit 15 further sets the second assist degree based on the variance (second distribution degree) ⁇ OWN.
  • This second assist degree is an index for determining the switching of the switch SW. That is, the second assist degree is used to determine which of the input command value U h and the assist command value U GPh is adopted as the output command value u.
  • the generation unit 16 is one of the input command value U h and the assist command value U GPh based on at least one of the input command value U h , the first assist degree ⁇ , the second assist degree, and the predicted command value u EXP. Is generated as the output command value u.
  • FIG. 5 is a flowchart showing an example of the operation of the robot control system 1 as a processing flow S1. That is, the robot control system 1 executes the processing flow S1.
  • the specific unit 12 identifies the task and the user.
  • the identification unit 12 specifies a task by an arbitrary method based on the response value (sensor data) acquired by the acquisition unit 11.
  • the specifying unit 12 may specify the current task based on the preset work and the history of the response value.
  • the identification unit 12 further identifies the user by an arbitrary method.
  • the specifying unit 12 may specify the user by referring to the user ID input prior to the user operation.
  • step S12 the selection unit 13 selects the trained model based on the specified task.
  • the selection unit 13 accesses the model database 17, selects one self-model from a plurality of given self-models, and selects one skilled model from a plurality of given skilled models. More specifically, the selection unit 13 selects one self-model corresponding to the specified combination of users and tasks, and selects one skilled model corresponding to the specified task.
  • FIG. 6 is a diagram schematically showing an example of a trained model stored in the model database 17.
  • the model database 17 includes (m ⁇ n) self-models 171 corresponding to a combination of m users and n tasks, and n skilled models 172 corresponding to the n tasks.
  • the selection unit 13 selects the self-model MO yc from the plurality of self-models 171 and selects the skilled model ME c from the plurality of skilled models 172. select.
  • step S13 the acquisition unit 11 acquires data for generating the output command value u.
  • the acquisition unit 11 acquires the input command value U h received by the operation controller and the response value (sensor data) sent from the work environment Ew.
  • step S14 the acquisition unit 11 calculates the state difference e.
  • the acquisition unit 11 acquires the current state y h based on the response value (sensor data), and acquires the difference between the current state y h and the preset target state g as the state difference e.
  • step S15 the inference unit 14, the setting unit 15, and the generation unit 16 cooperate to generate the output command value u.
  • An example of the generation process will be described with reference to FIG. 7.
  • FIG. 7 is a flowchart showing an example of the process of generating the output command value.
  • step S151 the inference unit 14 calculates the dispersion (second distribution degree) ⁇ OWN by the self-model 142.
  • the inference unit 14 inputs the input command value U h and the state difference e to the selected self-model 142, and obtains the variance ⁇ OWN output from the self-model 142.
  • the setting unit 15 sets the second assist degree based on the variance ⁇ OWN.
  • the method of setting the second assist degree is not limited.
  • the setting unit 15 may set the second assist degree so that the smaller the variance ⁇ OWN is, the larger the second assist degree is.
  • a small variance ⁇ OWN means that the user operation in the state difference e is within the normal range. Therefore, when the variance ⁇ OWN is small, it can be considered that it is better to assist the user operation.
  • the fact that the variance ⁇ OWN is large means that the user operation in the state difference e is relatively significantly different from the usual one.
  • the setting unit 15 sets the second assist degree so that the smaller the variance ⁇ OWN, the larger the second assist degree.
  • Setting unit 15 when the dispersion mu OWN is below a given threshold value THa sets the second assist degree to "1", the second assist degree when dispersed mu OWN is the threshold THa more It may be set to "0". Therefore, the second assist degree may be represented by a binary value. Alternatively, the setting unit 15 may set the second assist degree to an arbitrary value within a given numerical range, and therefore the second assist degree may be represented by a continuous value.
  • step S153 the setting unit 15 compares the second assist degree with the given threshold THb. If the second assist degree is equal to or higher than the threshold value THb (YES in step S153), the process proceeds to step S154.
  • the threshold value THb may be "1". Looking at this branching process from the viewpoint of dispersion mu OWN, processing when dispersed mu OWN is less than the threshold THa proceeds to step S154.
  • step S154 the inference unit 14 calculates the dispersion (first distribution degree) ⁇ EXP and the prediction command value u EXP by the skilled model 141.
  • the inference unit 14 inputs the state difference e into the selected skilled model 141, and obtains the variance ⁇ EXP and the prediction command value u EXP output from the skilled model.
  • the setting unit 15 sets the first assist degree ⁇ based on the variance ⁇ EXP.
  • the method of setting the first assist degree ⁇ is not limited.
  • the setting unit 15 may set the first assist degree ⁇ so that the smaller the dispersion ⁇ EXP, the larger the first assist degree ⁇ .
  • the small variance ⁇ EXP means that the variation in the operation of the expert in the state difference e is small. This means that, empirically, many skilled workers perform the same or similar operations in the state difference e. Therefore, when the variance ⁇ EXP is small, it is better to increase the first assist degree ⁇ and actively participate in the user operation.
  • the setting unit 15 sets the first assist degree ⁇ so that the smaller the dispersion ⁇ EXP, the larger the first assist degree ⁇ .
  • step S156 the generation unit 16 calculates the assist command value UGPh.
  • the generation unit 16 mixes the input command value u h and the prediction command value u EXP at a ratio corresponding to the first assist degree ⁇ , and calculates the assist command value UGPh.
  • the generation unit 16 realizes the mixing by the following equation (1). Assuming that (1- ⁇ ) in the equation (1) is the unassisted degree, the generation unit 16 is the product of the product of the predicted command value u EXP and the first assist degree ⁇ and the input command value u h and the unassisted degree. The sum of and is calculated as the assist command value UGPh.
  • the first assist degree ⁇ may be used as it is as a ratio. Alternatively, the generation unit 16 may set the ratio by an arbitrary method based on the first assist degree ⁇ .
  • U GPh (1- ⁇ ) u h + ⁇ u EXP ... (1)
  • step S157 the generation unit 16 sets the assist command value UGPh as the output command value u. That is, in steps S156 and S157, the generation unit 16 mixes the input command value u h and the prediction command value u EXP at a ratio corresponding to the first assist degree ⁇ to generate the output command value u.
  • step S158 the generation unit 16 sets (generates) the input command value u h as it is as the output command value u.
  • the generation unit 16 when the second assist degree is equal to or higher than the threshold value THb (YES in step S153), the generation unit 16 has an input command value u h , a first assist degree ⁇ , and a prediction command. The output command value u is generated based on the value u EXP. On the other hand, when the second assist degree is less than the threshold value THb (NO in step S153), the generation unit 16 is based on the input command value u h without using the first assist degree ⁇ and the prediction command value u EXP. To generate the output command value u.
  • the conditional branching in step S153 corresponds to the switching of the switch SW.
  • the generation unit 16 when the variance (second distribution degree) ⁇ OWN is less than the threshold value THa, the generation unit 16 gives an output command based on the input command value u h , the first assist degree ⁇ , and the prediction command value u EXP. Generate the value u.
  • the generation unit 16 When the variance ⁇ OWN is equal to or higher than the threshold value THa, the generation unit 16 generates the output command value u based on the input command value u h without using the first assist degree ⁇ and the prediction command value u EXP.
  • step S16 the generation unit 16 transmits the output command value u toward the robot 2.
  • the robot 2 operates based on this output command value u.
  • step S17 the processes of steps S13 to S16 are repeated for the task until one task is achieved.
  • steps S11 to S17 are repeated until the goal of the user operation is achieved, that is, until the robot 2 reaches the target state g.
  • the robot control system 1 controls the robot 2 as follows. That is, when the input command value u h is close to the normal operation of the user and the operation of the expert does not vary, the robot control system 1 positively assists the user operation. With this strong assist, the robot 2 can be operated more efficiently, and the robot 2 can reach the target state in a shorter time. When the input command value u h is close to the normal operation of the user and the operation of the expert varies, the robot control system 1 reduces the degree of assistance to the user operation. With this passive assist, the robot 2 can be operated while respecting the user operation to some extent.
  • the robot control system 1 provides an environment in which a plurality of users (for example, users and experts) cooperate to operate the robot 2.
  • Each functional module of the operating device 10 is realized by loading a robot control program on the processor 161 or the memory 162 and causing the processor 161 to execute the program.
  • the robot control program includes a code for realizing each functional module of the operating device 10.
  • the processor 161 operates the input / output port 164 or the communication port 165 according to the robot control program, and executes reading and writing of data in the memory 162 or the storage 163. By such processing, each functional module of the operation device 10 is realized.
  • the robot control program may be provided after being fixedly recorded on a non-temporary recording medium such as a CD-ROM, a DVD-ROM, or a semiconductor memory.
  • the robot control program may be provided via a communication network as a data signal superimposed on a carrier wave.
  • the robot control system is a robot control system that controls a robot in response to a user operation, and is a learned model generated based on past operations. Distribution based on the trained model that outputs at least the degree of distribution, which is the degree of distribution of the robot's motion in the state difference, in response to at least the input of the state difference between the robot's current state and the target state.
  • An inference unit that outputs the degree
  • a setting unit that sets the assist degree, which is the degree of assisting the operation of the robot based on the distribution degree output from the trained model, and an input command input from the operation device by the user operation. It includes a generation unit that generates an output command value output to the robot based on the value and the assist degree.
  • the robot control method is a robot control method executed by a robot control system including at least one processor for controlling a robot according to a user operation, and is generated based on a past operation.
  • a robot control system including at least one processor for controlling a robot according to a user operation, and is generated based on a past operation.
  • at least the degree of distribution which is the degree of distribution of the robot's motion in the state difference, is output.
  • the robot control program is a robot control program that causes a computer to function as a robot control system including at least one processor for controlling a robot in response to a user operation, and is based on past operations.
  • the degree of distribution which is the degree of distribution of the robot's movement in the state difference
  • a step of outputting the distribution degree based on the trained model a step of setting the assist degree which is the degree of assisting the operation of the robot based on the distribution degree output from the trained model, and a user operation.
  • the computer is made to execute a step of generating an output command value output to the robot based on the input command value input from the operation device and the assist degree.
  • the robot system includes a robot and the above-mentioned robot control system.
  • the operation system includes an operation controller that accepts user operations and the above-mentioned robot control system.
  • the input command value is assisted by the trained model in consideration of past operations, and a more appropriate command value is output to the robot as an output command value.
  • the operation of the robot can be appropriately assisted.
  • the trained model outputs the predicted command value which is the command value predicted based on the past operation in addition to the distribution degree, and the generation unit outputs the input command value and the assist.
  • the output command value may be generated based on the degree and the predicted command value. Since the output command value is generated in consideration of the predicted command value based on the past operation, a more appropriate command can be transmitted to the robot.
  • the generation unit may generate the output command value by mixing the input command value and the prediction command value at a ratio according to the assist degree. By mixing both the current operation and the past operation of the user using the assist degree, a more appropriate command can be transmitted to the robot.
  • the robot control system further includes a selection unit that selects a trained model corresponding to the task to be executed by the robot from a plurality of trained models corresponding to each of a plurality of tasks that the robot can execute.
  • the inference unit may output the degree of distribution based on the selected trained model.
  • the robot control system further includes a specific unit that identifies a task to be executed by the robot based on sensor data, and the selection unit may select a trained model based on the specified task. .. With this mechanism, the trained model can be automatically selected using the sensor data.
  • the trained model may output the distribution degree based on the Gaussian process.
  • the Gaussian process By adopting the Gaussian process, a trained model can be constructed even when the amount of training data is small, so that the trained model can be prepared more easily.
  • the trained model includes the first model generated based on the past operations of another user different from the user, and the inference unit outputs the first model from the first model.
  • One distribution degree may be output, the setting unit may set the first assist degree based on the first distribution degree, and the generation unit may generate an output command value based on the input command value and the first assist degree. ..
  • the assist degree By setting the assist degree based on the operation of another user, the operation of the robot can be appropriately assisted.
  • the first model may be a skilled model generated based on the past operation of a skilled person who is more skilled in operation than the user. With this mechanism, an output command value that appropriately reflects the skill of a skilled person can be obtained, so that the operation of the robot can be assisted more appropriately.
  • the trained model includes the second model generated based on the user's past operations, and the inference unit outputs the second distribution degree output from the second model.
  • the setting unit sets the second assist degree based on the second distribution degree, and the generation unit generates the output command value based on the input command value, the first assist degree, and the second assist degree. good. Since the output command value is generated in consideration of the similarity between this operation and the user's own past operation, a more appropriate command can be transmitted to the robot.
  • the generation unit is based on the input command value, the first assist degree, and the predicted command value output from the first model when the second assist degree is equal to or more than the threshold value.
  • the output command value may be generated based on the input command value without using the first assist degree and the prediction command value.
  • the robot may be located remotely from the user. In this case, the remote control of the robot can be appropriately assisted.
  • the robot computer 3 may include an acquisition unit 11, a specific unit 12, a selection unit 13, an inference unit 14, a setting unit 15, a generation unit 16, and a model database 17.
  • the operation device 10 includes the acquisition unit 11, the specific unit 12, and the selection unit 13, but at least one of these functional modules may be constructed on another computer.
  • the inference unit 14 includes the skilled model 141 and the self-model 142, but the inference unit 14 does not have to include one of these two types of trained models. That is, the robot control system may assist the operation of the robot without using either the skilled model (first model) or the self-model (second model).
  • the robot computer 3 is not an essential component, and in this case, the robot controller 4 may be more directly connected to the operating device 10 via the communication network N.
  • FIG. 1 shows a robot system including a robot 2 and a robot control system 1. Further, it can be said that FIG. 1 shows an operation system including an operation controller or an operation device 10 and a robot control system 1. On one side, the disclosure can also be applied to these robotic and operating systems.
  • the hardware configuration of the system is not limited to the mode in which each functional module is realized by executing the program.
  • the functional module in the above embodiment may be configured by a logic circuit specialized for the function, or may be configured by an ASIC (Application Specific Integrated Circuit) in which the logic circuit is integrated. ..
  • the processing procedure of the method executed by at least one processor is not limited to the example in the above embodiment. For example, some of the steps (processes) described above may be omitted, or each step may be executed in a different order. In addition, any two or more steps of the above-mentioned steps may be combined, or a part of the steps may be modified or deleted. Alternatively, other steps may be performed in addition to each of the above steps.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Abstract

本開示の一側面に係るロボット制御システムはユーザ操作に応じてロボットを制御する。ロボット制御システムは、過去の操作に基づいて生成された学習済みモデルであって、ロボットの現在状態と目標状態との状態差が少なくとも入力されたことに応答して、当該状態差におけるロボットの動作の分布の度合いである分布度を少なくとも出力する該学習済みモデルに基づいて、分布度を出力する推論部と、学習済みモデルから出力される分布度に基づいて、ロボットの操作をアシストする度合いであるアシスト度を設定する設定部と、ユーザ操作により操作装置から入力された入力指令値とアシスト度とに基づいて、ロボットへと出力される出力指令値を生成する生成部とを備える。

Description

ロボット制御システム、ロボットシステム、操作システム、ロボット制御方法、およびロボット制御プログラム
 本開示の一側面は、ロボット制御システム、ロボットシステム、操作システム、ロボット制御方法、およびロボット制御プログラムに関する。
 特許文献1には、作業者操作力、周囲環境データ、動作データ、および動作指令を機械学習することで構築されたモデルにより、動作センサが検出した動作データおよび周囲環境センサが検出した周囲環境データと、中継装置が出力した動作指令とに基づいて、演算操作力を推定するロボットシステムが記載されている。
特開2019-202404号公報
 ロボットの操作を適切にアシストすることが望まれている。
 本開示の一側面に係るロボット制御システムは、ユーザ操作に応じてロボットを制御するロボット制御システムであって、過去の操作に基づいて生成された学習済みモデルであって、ロボットの現在状態と目標状態との状態差が少なくとも入力されたことに応答して、当該状態差におけるロボットの動作の分布の度合いである分布度を少なくとも出力する該学習済みモデルに基づいて、分布度を出力する推論部と、学習済みモデルから出力される分布度に基づいて、ロボットの操作をアシストする度合いであるアシスト度を設定する設定部と、ユーザ操作により操作装置から入力された入力指令値とアシスト度とに基づいて、ロボットへと出力される出力指令値を生成する生成部とを備える。
 本開示の一側面に係るロボット制御方法は、ユーザ操作に応じてロボットを制御するための少なくとも一つのプロセッサを備えるロボット制御システムにより実行されるロボット制御方法であって、過去の操作に基づいて生成された学習済みモデルであって、ロボットの現在状態と目標状態との状態差が少なくとも入力されたことに応答して、当該状態差におけるロボットの動作の分布の度合いである分布度を少なくとも出力する該学習済みモデルに基づいて、分布度を出力するステップと、学習済みモデルから出力される分布度に基づいて、ロボットの操作をアシストする度合いであるアシスト度を設定するステップと、ユーザ操作により操作装置から入力された入力指令値とアシスト度とに基づいて、ロボットへと出力される出力指令値を生成するステップとを含む。
 本開示の一側面に係るロボット制御プログラムは、ユーザ操作に応じてロボットを制御するための少なくとも一つのプロセッサを備えるロボット制御システムとしてコンピュータを機能させるロボット制御プログラムであって、過去の操作に基づいて生成された学習済みモデルであって、ロボットの現在状態と目標状態との状態差が少なくとも入力されたことに応答して、当該状態差におけるロボットの動作の分布の度合いである分布度を少なくとも出力する該学習済みモデルに基づいて、分布度を出力するステップと、学習済みモデルから出力される分布度に基づいて、ロボットの操作をアシストする度合いであるアシスト度を設定するステップと、ユーザ操作により操作装置から入力された入力指令値とアシスト度とに基づいて、ロボットへと出力される出力指令値を生成するステップとをコンピュータに実行させる。
 本開示の一側面によれば、ロボットの操作を適切にアシストすることができる。
ロボット制御システムの適用の一例を示す図である。 ロボット制御システムのために用いられるハードウェア構成の一例を示す図である。 操作装置の機能構成の一例を示す図である。 操作装置の詳細な機能構成の一例を示すブロック線図である。 ロボット制御システムの動作の一例を示すフローチャートである。 モデルデータベースに記憶される学習済みモデルの一例を示す図である。 出力指令値を生成する処理の一例を示すフローチャートである。
 以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
 [システムの構成]
 実施形態に係るロボット制御システム1は、ユーザの操作に応じてロボット2を制御するコンピュータシステムである。ロボット2はその操作に基づいて動作して、加工、組立等の様々な作業を実行する。ユーザとはロボットを操作する人をいい、したがって、操作者ともいうことができる。
 図1はロボット制御システム1の適用の一例を示す図である。一例では、ロボット制御システム1は操作装置10を備える。操作装置10は通信ネットワークNを介してロボット用コンピュータ3と接続される。ロボット用コンピュータ3はロボットコントローラ4と接続され、ロボットコントローラ4はロボット2と接続される。
 図1では操作装置10およびロボット2を一つずつ示す。しかし、操作装置10およびロボット2の個数はいずれも限定されず、操作装置10およびロボット2の少なくとも一方が複数個存在してもよい。
 一例では、操作装置10はユーザが存在する操作環境Euに位置するのに対して、ロボット用コンピュータ3、ロボットコントローラ4、およびロボット2はユーザにとって遠隔に位置する作業環境Ewに位置する。すなわち、操作環境Euから見ると作業環境Ewは遠隔環境である。或る物が「遠隔に位置する」とは、ユーザが自身の目で確認できない位置にその物が存在することをいう。操作環境Euと作業環境Ewとの間の距離、すなわちユーザとロボット2との間の距離は何ら限定されない。例えば、作業環境Ewは操作環境Euからキロメートルのオーダーで離れていてもよい。あるいは、作業環境Ewは操作環境Euから数メートルのオーダーで離れていてもよく、例えば、操作環境Euである部屋の隣の空間が作業環境Ewでもよい。
 操作環境Euと作業環境Ewとの間の距離が限定されないことに対応して、通信ネットワークNの構成も限定されない。例えば、通信ネットワークNはインターネットおよびイントラネットの少なくとも一方を含んで構成されてもよい。あるいは、通信ネットワークNは1本の通信ケーブルによって実現される単純な構成であってもよい。
 操作装置10はロボット2を操作するためのコンピュータである。一例では、操作装置10は、ロボット2を操作するための入力インタフェースである操作インタフェースと、作業環境Ewを写す画像を表示可能なモニタとを備える。ユーザはモニタに表示された作業環境Ewを確認しながら操作インタフェースでロボット2を操作することができる。操作装置10は操作インタフェースから入力されたユーザ操作(指令)を示す指令値をロボット用コンピュータ3に向けて送信する。指令とは、ユーザ操作によって入力される命令をいう。指令値とは指令に関する値をいう。指令に関する値とは、例えば、ユーザ操作に対応する追加の移動ベクトルに関する値、すなわち、移動量または移動速度と移動方向とを示す値である。
 ロボット用コンピュータ3は操作装置10から入力された指令値を解釈して、その指令値に対応する指令信号をロボットコントローラ4に出力するコンピュータである。
 ロボットコントローラ4は、ロボット用コンピュータから入力された指令信号に従ってロボット2を制御する装置である。言い換えると、ロボットコントローラ4は、ユーザ操作に応じて操作装置10から送られてくる指令に基づいてロボット2を制御する。一例では、指令信号はロボット2を制御するためのデータを含み、例えば、ロボット2の軌道を示すパスを含む。ロボット2の軌道とは、ロボット2またはその構成要素の動きの経路のことをいう。例えば、ロボット2の軌道は先端部の軌道であり得る。一例では、ロボットコントローラ4は、指令信号で示される目標値に先端部の位置および姿勢を一致させるための関節角度目標値(ロボット2の各関節の角度目標値)を算出し、その角度目標値に従ってロボット2を制御する。
 ロボット2は、人に代わって作業する装置または機械である。一例では、ロボット2は多軸のシリアルリンク型の垂直多関節ロボットである。ロボット2は、マニピュレータ2aと、該マニピュレータ2aの先端に取り付けられたツールであるエンドエフェクタ2bとを備える。ロボット2はそのエンドエフェクタ2bを用いて様々な処理を実行することができる。ロボット2は、所定の範囲内においてエンドエフェクタ2bの位置および姿勢を自在に変更し得る。ロボット2は、6軸の垂直多関節ロボットでもよいし、6軸に1軸の冗長軸を追加した7軸の垂直多関節ロボットでもよい。
 ロボット2の動作または状態は各種のセンサによってロボット2の応答として記録されて、センサデータとして例えばロボットコントローラ4に出力される。応答とは、指令に対する出力をいい、より具体的には、指令に対するロボット2の動作または状態をいう。動作または状態は任意のデータ項目によって表されてよく、例えば、位置、姿勢、速度、加速度、トルク、力、および電流値のうちの少なくとも一つによって表されてもよい。ロボット2の動作または状態は、エンドエフェクタ2bの動作または状態によって表されてもよい。
 応答を示す情報の種類は限定されず、例えば、応答はロボット2の動作または状態を示す情報でもよいし、ロボットコントローラ4からロボット2へと出力される命令により示されてもよい。センサはロボット2に搭載されてもよいし、ロボット2に搭載されることなく該ロボット2とから独立して設けられてもよい。センサの種類は限定されず、例えば、加速度センサ、電圧センサ、電流センサ、温度センサ、ジャイロセンサ、カメラ、圧力センサ、ToF(Time-of-Flight)センサなどの各種のセンサが用いられてよい。
 ロボットコントローラ4はロボット2の動作または状態(すなわち応答)を示す応答値をそのセンサデータに基づいて算出し、その応答値をロボット用コンピュータ3経由で操作装置10へと送信する。応答値とは応答に関する値をいう。応答に関する値とは、例えば、ロボットの追加の動作を示す追加の移動ベクトルに関する値、すなわち、移動量または移動速度と移動方向とを示す値である。ロボットコントローラ4はロボット2への指令信号を応答値として、ロボット用コンピュータ3経由で操作装置10へと送信してもよい。ロボット2のセンサからのセンサデータの少なくとも一部は、ロボットコントローラ4を経由することなくロボット用コンピュータ3に出力されてもよい。この場合には、ロボット用コンピュータ3がそのセンサデータに基づいて応答値を算出してもよい。
 ユーザの技能または作業環境Ewの状況によっては、ユーザが自分の意図するようにロボット2を操作できない場合がある。例えば、作業環境Ewを写す画像が不鮮明であったり、ユーザ操作と画像に映るロボット2の動作との間に遅延が発生したりすると、ユーザが作業環境Ewの情報を十分に得ることができず、そのためにロボット2を正確に操作できない可能性がある。ここで、遅延とは、ロボット2への指令に対して、画像に映る該ロボット2の動作または状態が遅れることをいう。あるいは、ユーザがロボット2の操作に不慣れである場合も、ロボット2を正確にまたは効率的に操作できない可能性がある。ロボット制御システム1はそのようなユーザによるロボット2の操作をアシストし、これにより、ユーザが自分の意図するようにロボット2を操作することが可能になる。「ロボットの操作をアシストする」または「ユーザ操作をアシストする」とは、ロボット2を適切に(例えば正確に)動作させるための環境をユーザに提供することをいう。
 ロボット制御システム1はそのアシストのために機械学習モデルを用いる。機械学習とは、与えられた情報に基づいて反復的に学習することで、法則またはルールを自律的に見つけ出す手法をいう。機械学習モデルとは、機械学習で用いられる計算モデルである。機械学習モデルはアルゴリズムおよびデータ構造を用いて構築することができる。機械学習モデルの基となる具体的なアルゴリズムは限定されない。一例では、ロボット制御システム1は、入力から出力を予測する関数の確率分布を得ることができる機械学習モデルを用いる。例えば、機械学習モデルはガウス過程(Gaussian Process)を用いて構築されてもよい。ガウス過程とは、無限次元のガウス分布をいう。ガウス過程はそのガウス分布の平均および分散によって特徴付けられる。本実施形態では、ロボット制御システム1がガウス過程による機械学習モデルを用いることを前提とする。
 自律的に生成された機械学習モデルを「学習済みモデル」という。学習済みモデルは、ロボット2の操作をアシストするために最適であると推定される計算モデルであり、“現実に最適である計算モデル”とは限らないことに留意されたい。学習済みモデルを生成する処理は学習フェーズに相当する。学習フェーズでは、所与のコンピュータシステムが過去の操作に基づいて機械学習を実行して学習済みモデルを生成する。ロボット制御システム1はその学習済みモデルを用いてロボット2の操作をアシストする。このアシストは運用フェーズに相当する。
 学習済みモデルはコンピュータシステム間で移植可能である。したがって、或るコンピュータシステムで生成された学習済みモデルを別のコンピュータシステムで用いることができる。もちろん、一つのコンピュータシステムが学習済みモデルの生成および利用の双方を実行してもよい。ロボット制御システム1は学習フェーズおよび運用フェーズの双方を実行してもよい。あるいは、ロボット制御システム1は学習フェーズを実行することなく、他のコンピュータシステムにより生成された学習済みモデルを用いて運用フェーズを実行してもよい。
 操作装置10またはロボット用コンピュータ3として機能するコンピュータは限定されない。一例では、これらのコンピュータは、パーソナルコンピュータによって構成されてもよいし、業務用サーバなどの大型のコンピュータによって構成されてもよい。
 図2は、操作装置10またはロボット用コンピュータ3のために用いられるコンピュータ100のハードウェア構成の一例を示す図である。この例では、コンピュータ100は本体110、モニタ120、および入力デバイス130を備える。
 本体110は少なくとも一つのコンピュータにより構成される。本体110は回路160を有し、回路160は、少なくとも一つのプロセッサ161と、メモリ162と、ストレージ163と、入出力ポート164と、通信ポート165とを有する。ストレージ163は、本体110の各機能モジュールを構成するためのプログラムを記録する。ストレージ163は、ハードディスク、不揮発性の半導体メモリ、磁気ディスク、光ディスク等の、コンピュータ読み取り可能な記録媒体である。メモリ162は、ストレージ163からロードされたプログラム、プロセッサ161の演算結果等を一時的に記憶する。プロセッサ161は、メモリ162と協働してプログラムを実行することで、各機能モジュールを構成する。入出力ポート164は、プロセッサ161からの指令に応じて、モニタ120または入力デバイス130との間で電気信号の入出力を行う。入出力ポート164はロボットコントローラ4などの他の装置との間で電気信号の入出力を行ってもよい。通信ポート165は、プロセッサ161からの指令に従って、通信ネットワークNを介して他の装置との間でデータ通信を行う。
 モニタ120は、本体110から出力された情報を表示するための装置である。モニタ120は本開示における表示部の一例である。モニタ120は、グラフィック表示が可能であればいかなるものであってもよく、その具体例としては液晶パネル等が挙げられる。入力デバイス130は、本体110に情報を入力するための装置である。入力デバイス130は、所望の情報を入力可能であればいかなるものであってもよく、その具体例としてはキーパッド、マウス、操作コントローラ等の操作インタフェースが挙げられる。
 モニタ120および入力デバイス130はタッチパネルとして一体化されていてもよい。例えばタブレットコンピュータのように、本体110、モニタ120、および入力デバイス130が一体化されていてもよい。
 図3は操作装置10の機能構成の一例を示す図である。一例では、操作装置10は機能モジュールとして取得部11、特定部12、選択部13、推論部14、設定部15、および生成部16を備える。一例では、操作装置10はさらにモデルデータベース17を備える。
 取得部11は、ロボット2の指令または応答に関連するデータを操作環境Euまたは作業環境Ewから取得する機能モジュールである。例えば、取得部11は指令値および応答値(センサデータ)を取得する。
 特定部12は、ロボット2が実行すべきタスクを応答値(センサデータ)に基づいて特定する機能モジュールである。タスクとは、ロボット2による一連の処理を構成する最小単位の処理をいう。特定部12はさらに、ロボット2を操作しているユーザを特定する。
 選択部13は、ロボットが実行可能な複数のタスクのそれぞれに対応する複数の学習済みモデルから、特定されたタスクに対応する学習済みモデルを選択する機能モジュールである。選択部13は、所与の複数の学習済みモデルを記憶するモデルデータベース17にアクセスして、タスクに対応する学習済みモデルを選択する。
 それぞれの学習済みモデルは予め、訓練データを用いた機械学習によって生成されてモデルデータベース17に格納される。学習済みモデルを生成する具体的な手法は限定されず、任意の方針で設計されてよい。一例では、ガウス過程に基づく機械学習モデルを学習させる際には、共分散関数のハイパーパラメータと観測値のノイズとを用いて定義される誤差が最小になるようにハイパーパラメータが最適化される。ガウス過程による機械学習では、比較的少量の訓練データから学習済みモデルを構築できるので、訓練データを集める労力を低減することが可能になる。
 推論部14は選択された学習済みモデルに基づいて、ロボット2の現在状態と目標状態との状態差におけるロボット2の動作の分布の度合いである分布度を出力する機能モジュールである。現在状態とは、応答値から導出されるロボット2の現在の状態をいう。目標状態とは、ユーザが意図するロボット2の最終の状態をいい、例えば、ユーザが意図する作業が完了したときのロボット2の状態をいう。状態差とは現在状態と目標状態との差分であり、ロボット2が目標状態に達するまでに必要な残りの動作に対応する。分布度は学習済みモデルから出力される確率変数(例えば分散)によって表される。本実施形態では、学習済みモデルはガウス過程に基づいて分布度を出力する。
 設定部15は、その分布度に基づいて、ロボット2の操作をアシストする度合いであるアシスト度を設定する機能モジュールである。
 生成部16は、ユーザ操作により操作装置から入力された入力指令値と設定されたアシスト度とに基づいて、ロボット2へと出力される出力指令値を生成する機能モジュールである。
 図3の例ではモデルデータベース17が操作装置10内に構築されるが、モデルデータベース17の設置場所はこれに限定されない。例えば、モデルデータベース17は操作装置10とは別のコンピュータ上に構築されてもよく、この場合には、選択部13は所与の通信ネットワークを介してモデルデータベース17にアクセスする。
 図4は操作装置10の詳細な機能構成の一例を示すブロック線図である。操作装置10は、ロボット2の目標状態gを目指すユーザ9の操作を受け付けた操作コントローラから入力指令値uを得る。この入力指令値uは、ユーザ操作そのものを示すオリジナルの指令値であるといえる。また、操作装置10はロボット2の現在状態yを取得し、現在状態yと目標状態gとの状態差eを算出する。操作装置10は入力指令値Uおよび状態差eに基づいて出力指令値uを生成し、この出力指令値uをロボット2に向けて送信する。一例では、操作装置10は入力指令値Uそのものと、熟練者の経験が考慮されたアシスト指令値UGPhという二つの候補のうちの一つを出力指令値uとして生成し、この出力指令値uを送信する。図4ではこの処理をスイッチSWによって表現する。
 一例では、操作装置10は熟練モデル(第1モデル)141および自己モデル(第2モデル)142という2種類の学習済みモデルを推論部14として備え、これらの学習済みモデルを用いて出力指令値uを生成する。
 熟練モデル141は、ユーザ9とは異なる他のユーザの過去の操作に基づいて生成された学習済みモデルの一例である。より具体的には、熟練モデル141は、ユーザ9よりも操作に熟練した熟練者の過去の操作に基づいて生成された学習済みモデルである。一例では、熟練モデル141は状態差eを入力として受け付けて分散(第1分布度)μEXPおよび予測指令値uEXPを出力する。この分散(第1分布度)μEXPは状態差eにおける熟練者の操作の確からしさの度合いを示す。予測指令値uEXPは過去の操作に基づいて予測される指令値であり、より具体的には、熟練者の過去の操作に基づいて予測される指令値である。
 一方、自己モデル142はユーザ9の過去の操作に基づいて生成された学習済みモデルである。一例では、自己モデル142は入力指令値Uおよび状態差eを入力として受け付けて分散(第2分布度)μOWNを出力する。この分散(第2分布度)μOWNは状態差eにおけるユーザ9自身の過去の操作との類似度を示す。
 設定部15は分布度に基づいてアシスト度を設定する。具体的には、設定部15は分散(第1分布度)μEXPに基づいて第1アシスト度γを設定する。設定部15はさらに、分散(第2分布度)μOWNに基づいて第2アシスト度を設定する。この第2アシスト度はスイッチSWの切り替えを決めるための指標である。すなわち、第2アシスト度は、入力指令値Uとアシスト指令値UGPhとのどちらを出力指令値uとして採用するかを決めるために用いられる。
 生成部16は入力指令値U、第1アシスト度γ、第2アシスト度、および予測指令値uEXPのうちの少なくとも一つに基づいて、入力指令値Uおよびアシスト指令値UGPhの一方を出力指令値uとして生成する。
 [ロボット制御方法]
 本開示に係るロボット制御方法の一例として、図5を参照しながら、ロボット制御システム1により実行される一連の処理手順の一例を説明する。図5はロボット制御システム1の動作の一例を処理フローS1として示すフローチャートである。すなわち、ロボット制御システム1は処理フローS1を実行する。
 ステップS11では、特定部12がタスクおよびユーザを特定する。一例では、特定部12は取得部11により取得された応答値(センサデータ)に基づいて任意の手法でタスクを特定する。例えば、特定部12は予め設定された作業と応答値の履歴とに基づいて現在のタスクを特定してもよい。特定部12はさらに、任意の手法でユーザを特定する。例えば、特定部12はユーザ操作に先立って入力されたユーザIDを参照することでユーザを特定してもよい。
 ステップS12では、選択部13が、特定されたタスクに基づいて学習済みモデルを選択する。選択部13はモデルデータベース17にアクセスして、所与の複数の自己モデルから一つの自己モデルを選択し、所与の複数の熟練モデルから一つの熟練モデルを選択する。より具体的には、選択部13は特定されたユーザおよびタスクの組合せに対応する一つの自己モデルを選択し、特定されたタスクに対応する一つの熟練モデルを選択する。
 図6はモデルデータベース17に記憶される学習済みモデルの一例を模式的に示す図である。一例では、モデルデータベース17は、m人のユーザおよびn個のタスクの組合せに対応する(m×n)個の自己モデル171と、該n個のタスクに対応するn個の熟練モデル172とを記憶する。図6の例を前提として、ユーザUyおよびタスクTcが特定された場合には、選択部13は複数の自己モデル171から自己モデルMOycを選択し、複数の熟練モデル172から熟練モデルMEを選択する。
 図5に戻って、ステップS13では、取得部11が出力指令値uを生成するためのデータを取得する。一例では、取得部11は、操作コントローラにより受け付けられた入力指令値Uと、作業環境Ewから送られてきた応答値(センサデータ)とを取得する。
 ステップS14では、取得部11が状態差eを算出する。取得部11は応答値(センサデータ)に基づいて現在状態yを取得し、この現在状態yと予め設定された目標状態gとの差分を状態差eとして取得する。
 ステップS15では、推論部14、設定部15、および生成部16が協働して出力指令値uを生成する。図7を参照しながらその生成処理の一例を説明する。図7は出力指令値を生成する処理の一例を示すフローチャートである。
 ステップS151では、推論部14が自己モデル142により分散(第2分布度)μOWNを算出する。推論部14は、選択された自己モデル142に入力指令値Uおよび状態差eを入力し、該自己モデル142から出力される分散μOWNを得る。
 ステップS152では、設定部15が分散μOWNに基づいて第2アシスト度を設定する。第2アシスト度の設定方法は限定されない。一例では、設定部15は分散μOWNが小さいほど第2アシスト度が大きくなるように第2アシスト度を設定してもよい。分散μOWNが小さいということは、状態差eにおけるユーザ操作が通常の範囲内であることを意味する。したがって、分散μOWNが小さい場合にはユーザ操作をアシストする方が良いと考えることができる。一方、分散μOWNが大きいということは、状態差eにおけるユーザ操作が通常とは相対的に大きく異なることを意味する。したがって、分散μOWNが大きい場合には、そのユーザ操作が特別な事情に基づくもの(例えば緊急の特別な操作)であると判断して、ユーザ操作に介入しない(ユーザ操作をそのまま尊重する)か、またはその介入の程度を低くするのが良いと考えることができる。一例ではこのような設計思想に基づいて、設定部15は、分散μOWNが小さいほど第2アシスト度が大きくなるように第2アシスト度を設定する。設定部15は、分散μOWNが所与の閾値THa未満である場合には第2アシスト度を「1」に設定し、分散μOWNがその閾値THa以上である場合には第2アシスト度を「0」に設定してもよい。したがって、第2アシスト度は二値で表されてもよい。あるいは、設定部15は第2アシスト度を所与の数値範囲内の任意の値に設定してもよく、したがって第2アシスト度は連続値で表されてもよい。
 ステップS153では、設定部15が第2アシスト度を所与の閾値THbと比較する。第2アシスト度が閾値THb以上である場合には(ステップS153においてYES)、処理はステップS154に進む。第2アシスト度が「0」または「1」の二値で表される場合には、閾値THbは「1」であってもよい。この分岐処理を分散μOWNの観点から見ると、分散μOWNが閾値THa未満である場合に処理がステップS154に進む。
 ステップS154では、推論部14が熟練モデル141により分散(第1分布度)μEXPおよび予測指令値uEXPを算出する。推論部14は、選択された熟練モデル141に状態差eを入力し、該熟練モデルから出力される分散μEXPおよび予測指令値uEXPを得る。
 ステップS155では、設定部15が分散μEXPに基づいて第1アシスト度γを設定する。第1アシスト度γの設定方法は限定されない。一例では、設定部15は分散μEXPが小さいほど第1アシスト度γが大きくなるように第1アシスト度γを設定してもよい。分散μEXPが小さいということは、状態差eにおける熟練者の操作のばらつきが小さいということである。これは、該状態差eにおいて、経験的に、多くの熟練者が同じかまたは同様の操作をしていることを意味する。したがって、分散μEXPが小さい場合には第1アシスト度γを大きくして、ユーザ操作に積極的に関与する方が良いと考えることができる。一方、分散μEXPが大きいということは、状態差eにおける熟練者の操作のばらつきが大きいことを意味する。したがって、分散μEXPが大きい場合には第1アシスト度γを小さくして、ユーザ操作への関与を抑えた方が良いと考えることができる。一例ではこのような設計思想に基づいて、設定部15は、分散μEXPが小さいほど第1アシスト度γが大きくなるように第1アシスト度γを設定する。
 ステップS156では、生成部16がアシスト指令値UGPhを算出する。生成部16は第1アシスト度γに応じた割合で入力指令値uと予測指令値uEXPとを混合して、アシスト指令値UGPhを算出する。一例では、生成部16は下記の式(1)によってその混合を実現する。式(1)での(1-γ)を非アシスト度というとすると、生成部16は、予測指令値uEXPおよび第1アシスト度γの積と、入力指令値uおよび非アシスト度の積との和をアシスト指令値UGPhとして算出する。式(1)に示すように、第1アシスト度γがそのまま割合として用いられてもよい。あるいは、生成部16は第1アシスト度γに基づいて任意の手法で割合を設定してもよい。
GPh=(1-γ)u+γuEXP …(1)
 ステップS157では、生成部16がアシスト指令値UGPhを出力指令値uとして設定する。すなわち、生成部16はステップS156,S157において、第1アシスト度γに応じた割合で入力指令値uと予測指令値uEXPとを混合し、出力指令値uを生成する。
 一方、ステップS153において第2アシスト度が閾値THb未満である場合には(ステップS153においてNO)、処理はステップS158に進む。この処理を分散μOWNの観点から見ると、分散μOWNが閾値THa以上である場合に処理がステップS158に進む。ステップS158では、生成部16が入力指令値uをそのまま出力指令値uとして設定(生成)する。
 図7に示すように、一例では、生成部16は、第2アシスト度が閾値THb以上である場合には(ステップS153においてYES)、入力指令値u、第1アシスト度γ、および予測指令値uEXPに基づいて出力指令値uを生成する。一方、第2アシスト度がその閾値THb未満である場合には(ステップS153においてNO)、生成部16は第1アシスト度γおよび予測指令値uEXPを用いることなく、入力指令値uに基づいて出力指令値uを生成する。ステップS153での条件分岐はスイッチSWの切り替えに相当する。言い換えると、生成部16は、分散(第2分布度)μOWNが閾値THa未満である場合には、入力指令値u、第1アシスト度γ、および予測指令値uEXPに基づいて出力指令値uを生成する。分散μOWNが閾値THa以上である場合には、生成部16は第1アシスト度γおよび予測指令値uEXPを用いることなく、入力指令値uに基づいて出力指令値uを生成する。
 図5に戻って、ステップS16では、生成部16が出力指令値uをロボット2に向けて送信する。ロボット2はこの出力指令値uに基づいて動作する。
 ステップS17に示すように、一つのタスクが達成されるまでは該タスクについてステップS13~S16の処理が繰り返される。ステップS18に示すように、ユーザ操作の目標が達成されるまでは、すなわち、ロボット2が目標状態gに達するまでは、ステップS11~S17が繰り返される。
 処理フローS1によって、ロボット制御システム1は以下のようにロボット2を制御する。すなわち、入力指令値uがユーザの通常の操作に近く,且つ熟練者の操作がばらつかない場合には、ロボット制御システム1は積極的にユーザ操作をアシストする。この強いアシストによって、ロボット2をより効率的に動作させて、より短時間でロボット2を目標状態に到達させることが可能になる。入力指令値uがユーザの通常の操作に近く、且つ熟練者の操作がばらつく場合には、ロボット制御システム1はユーザ操作へのアシストの程度を下げる。この消極的なアシストによって、ユーザ操作をある程度尊重しながらロボット2を動作させることができる。入力指令値uがユーザの通常の操作と異なる場合には、その入力指令値Uがそのままロボット2に向けて出力されるので、ユーザ操作をそのままロボット2に反映させることができる。このように、ロボット制御システム1は、あたかも複数のユーザ(例えば、ユーザおよび熟練者)が協働してロボット2を操作するような環境を提供する。
 [プログラム]
 操作装置10の各機能モジュールは、プロセッサ161またはメモリ162の上にロボット制御プログラムを読み込ませてプロセッサ161にそのプログラムを実行させることで実現される。ロボット制御プログラムは、操作装置10の各機能モジュールを実現するためのコードを含む。プロセッサ161はロボット制御プログラムに従って入出力ポート164または通信ポート165を動作させ、メモリ162またはストレージ163におけるデータの読み出しおよび書き込みを実行する。このような処理により操作装置10の各機能モジュールが実現される。
 ロボット制御プログラムは、CD-ROM、DVD-ROM、半導体メモリなどの非一時的な記録媒体に固定的に記録された上で提供されてもよい。あるいは、ロボット制御プログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
 [効果]
 以上説明したように、本開示の一側面に係るロボット制御システムは、ユーザ操作に応じてロボットを制御するロボット制御システムであって、過去の操作に基づいて生成された学習済みモデルであって、ロボットの現在状態と目標状態との状態差が少なくとも入力されたことに応答して、当該状態差におけるロボットの動作の分布の度合いである分布度を少なくとも出力する該学習済みモデルに基づいて、分布度を出力する推論部と、学習済みモデルから出力される分布度に基づいて、ロボットの操作をアシストする度合いであるアシスト度を設定する設定部と、ユーザ操作により操作装置から入力された入力指令値とアシスト度とに基づいて、ロボットへと出力される出力指令値を生成する生成部とを備える。
 本開示の一側面に係るロボット制御方法は、ユーザ操作に応じてロボットを制御するための少なくとも一つのプロセッサを備えるロボット制御システムにより実行されるロボット制御方法であって、過去の操作に基づいて生成された学習済みモデルであって、ロボットの現在状態と目標状態との状態差が少なくとも入力されたことに応答して、当該状態差におけるロボットの動作の分布の度合いである分布度を少なくとも出力する該学習済みモデルに基づいて、分布度を出力するステップと、学習済みモデルから出力される分布度に基づいて、ロボットの操作をアシストする度合いであるアシスト度を設定するステップと、ユーザ操作により操作装置から入力された入力指令値とアシスト度とに基づいて、ロボットへと出力される出力指令値を生成するステップとを含む。
 本開示の一側面に係るロボット制御プログラムは、ユーザ操作に応じてロボットを制御するための少なくとも一つのプロセッサを備えるロボット制御システムとしてコンピュータを機能させるロボット制御プログラムであって、過去の操作に基づいて生成された学習済みモデルであって、ロボットの現在状態と目標状態との状態差が少なくとも入力されたことに応答して、当該状態差におけるロボットの動作の分布の度合いである分布度を少なくとも出力する該学習済みモデルに基づいて、分布度を出力するステップと、学習済みモデルから出力される分布度に基づいて、ロボットの操作をアシストする度合いであるアシスト度を設定するステップと、ユーザ操作により操作装置から入力された入力指令値とアシスト度とに基づいて、ロボットへと出力される出力指令値を生成するステップとをコンピュータに実行させる。
 本開示の一側面に係るロボットシステムは、ロボットと、上記のロボット制御システムとを備える。
 本開示の一側面に係る操作システムは、ユーザ操作を受け付ける操作コントローラと、上記のロボット制御システムとを備える。
 このような側面においては、学習済みモデルによって入力指令値が過去の操作を考慮してアシストされて、より適切な指令値が出力指令値としてロボットへと出力される。この仕組みによってロボットの操作を適切にアシストすることができる。
 他の側面に係るロボット制御システムでは、学習済みモデルは、分布度に加えて、過去の操作に基づいて予測される指令値である予測指令値を出力し、生成部は、入力指令値、アシスト度、および予測指令値に基づいて出力指令値を生成してもよい。過去の操作に基づく予測指令値をさらに考慮して出力指令値が生成されるので、より適切な指令をロボットに伝達することができる。
 他の側面に係るロボット制御システムでは、生成部は、アシスト度に応じた割合で入力指令値と予測指令値とを混合し、出力指令値を生成してもよい。ユーザの今回の操作と過去の操作との双方をアシスト度を用いて混合することで、より適切な指令をロボットに伝達することができる。
 他の側面に係るロボット制御システムでは、ロボットが実行可能な複数のタスクのそれぞれに対応する複数の学習済みモデルから、ロボットが実行すべきタスクに対応する学習済みモデルを選択する選択部をさらに備え、推論部は、選択された学習済みモデルに基づいて分布度を出力してもよい。タスクに応じた学習済みモデルを用いることで、個々のタスクに応じてロボットの操作を適切にアシストすることができる。
 他の側面に係るロボット制御システムでは、ロボットが実行すべきタスクをセンサデータに基づいて特定する特定部を更に備え、選択部は、特定されたタスクに基づいて学習済みモデルを選択してもよい。この仕組みによって、センサデータを用いて学習済みモデルを自動的に選択することができる。
 他の側面に係るロボット制御システムでは、学習済みモデルは、ガウス過程に基づいて分布度を出力してもよい。ガウス過程を採用することで、訓練データの量が少ない場合でも学習済みモデルを構築できるので、学習済みモデルをより容易に準備することが可能になる。
 他の側面に係るロボット制御システムでは、学習済みモデルは、ユーザとは異なる他のユーザの過去の操作に基づいて生成された第1モデルを含み、推論部は、第1モデルから出力される第1分布度を出力し、設定部は、第1分布度に基づいて第1アシスト度を設定し、生成部は、入力指令値および第1アシスト度に基づいて出力指令値を生成してもよい。他のユーザの操作に基づいてアシスト度を設定することで、ロボットの操作を適切にアシストすることができる。
 他の側面に係るロボット制御システムでは、第1モデルは、ユーザよりも操作に熟練した熟練者の過去の操作に基づいて生成された熟練モデルであってもよい。この仕組みによって、熟練者の技能が適切に反映された出力指令値が得られるので、ロボットの操作をより適切にアシストすることができる。
 他の側面に係るロボット制御システムでは、学習済みモデルは、ユーザの過去の操作に基づいて生成された第2モデルを含み、推論部は、第2モデルから出力される第2分布度を出力し、設定部は、第2分布度に基づいて第2アシスト度を設定し、生成部は、入力指令値、第1アシスト度、および第2アシスト度に基づいて、出力指令値を生成してもよい。今回の操作とユーザ自身の過去の操作との類似性をさらに考慮して出力指令値が生成されるので、より適切な指令をロボットに伝達することができる。
 他の側面に係るロボット制御システムでは、生成部は、第2アシスト度が閾値以上である場合に、入力指令値と、第1アシスト度と、第1モデルから出力される予測指令値とに基づいて出力指令値を生成し、第2アシスト度が閾値未満である場合に、第1アシスト度及び予測指令値を用いることなく、入力指令値に基づいて出力指令値を生成してもよい。今回の操作が通常のものであるといえる場合に限って操作をアシストし、今回の操作が通常とは異なるといえる場合にはその操作をそのまま尊重することで、ロボットの操作の状況に応じたアシストが可能になる。
 他の側面に係るロボット制御システムでは、ロボットはユーザから遠隔に位置してもよい。この場合にはロボットの遠隔操作を適切にアシストすることができる。
 [変形例]
 以上、本開示の実施形態に基づいて詳細に説明した。しかし、本開示は上記実施形態に限定されるものではない。本開示は、その要旨を逸脱しない範囲で様々な変形が可能である。
 ロボット制御システムの構成は上記実施形態に限定されない。例えば、操作装置10に代えてロボット用コンピュータ3が取得部11、特定部12、選択部13、推論部14、設定部15、生成部16、およびモデルデータベース17を備えてもよい。上記実施形態では操作装置10が取得部11、特定部12、および選択部13を備えるが、これらの機能モジュールの少なくとも一つが別のコンピュータ上に構築されてもよい。
 上記実施形態では推論部14が熟練モデル141および自己モデル142を備えるが、推論部14はこれら2種類の学習済みモデルのうちの一方を備えなくてもよい。すなわち、ロボット制御システムは熟練モデル(第1モデル)および自己モデル(第2モデル)の一方を用いることなくロボットの操作をアシストしてもよい。
 ロボット用コンピュータ3は必須の構成要素ではなく、この場合には、ロボットコントローラ4が通信ネットワークNを介して操作装置10とより直接的に接続されてもよい。
 図1は、ロボット2とロボット制御システム1とを備えるロボットシステムを示すともいえる。また、図1は、操作コントローラまたは操作装置10と、ロボット制御システム1とを備える操作システムを示すともいえる。一側面では、本開示はこれらのロボットシステムおよび操作システムにも適用することができる。
 システムのハードウェア構成は、プログラムの実行により各機能モジュールを実現する態様に限定されない。例えば、上記実施形態における機能モジュールの少なくとも一部が、その機能に特化した論理回路により構成されていてもよいし、該論理回路を集積したASIC(Application Specific Integrated Circuit)により構成されてもよい。
 少なくとも一つのプロセッサにより実行される方法の処理手順は上記実施形態での例に限定されない。例えば、上述したステップ(処理)の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の2以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
 コンピュータシステムまたはコンピュータ内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」という二つの基準のうちのどちらを用いてもよい。このような基準の選択は、二つの数値の大小関係を比較する処理についての技術的意義を変更するものではない。
1…ロボット制御システム、2…ロボット、3…ロボット用コンピュータ、4…ロボットコントローラ、10…操作装置、11…取得部、12…特定部、13…選択部、14…推論部、15…設定部、16…生成部、17…モデルデータベース、141…熟練モデル(第1モデル)、142…自己モデル(第2モデル)、N…通信ネットワーク。

Claims (15)

  1.  ユーザ操作に応じてロボットを制御するロボット制御システムであって、
     過去の操作に基づいて生成された学習済みモデルであって、前記ロボットの現在状態と目標状態との状態差が少なくとも入力されたことに応答して、当該状態差における前記ロボットの動作の分布の度合いである分布度を少なくとも出力する該学習済みモデルに基づいて、前記分布度を出力する推論部と、
     前記学習済みモデルから出力される分布度に基づいて、前記ロボットの操作をアシストする度合いであるアシスト度を設定する設定部と、
     前記ユーザ操作により操作装置から入力された入力指令値と前記アシスト度とに基づいて、前記ロボットへと出力される出力指令値を生成する生成部と、
    を備えるロボット制御システム。
  2.  前記学習済みモデルは、前記分布度に加えて、前記過去の操作に基づいて予測される指令値である予測指令値を出力し、
     前記生成部は、前記入力指令値、前記アシスト度、および前記予測指令値に基づいて前記出力指令値を生成する、
    請求項1に記載のロボット制御システム。
  3.  前記生成部は、前記アシスト度に応じた割合で前記入力指令値と前記予測指令値とを混合し、前記出力指令値を生成する、
    請求項2に記載のロボット制御システム。
  4.  前記ロボットが実行可能な複数のタスクのそれぞれに対応する複数の前記学習済みモデルから、前記ロボットが実行すべきタスクに対応する前記学習済みモデルを選択する選択部をさらに備え、
     前記推論部は、前記選択された学習済みモデルに基づいて前記分布度を出力する、
    請求項1~3のいずれか一項に記載のロボット制御システム。
  5.  前記ロボットが実行すべきタスクをセンサデータに基づいて特定する特定部を更に備え、
     前記選択部は、前記特定されたタスクに基づいて前記学習済みモデルを選択する、
    請求項4に記載のロボット制御システム。
  6.  前記学習済みモデルは、ガウス過程に基づいて前記分布度を出力する、
    請求項1~5のいずれか一項に記載のロボット制御システム。
  7.  前記学習済みモデルは、前記ユーザとは異なる他のユーザの前記過去の操作に基づいて生成された第1モデルを含み、
     前記推論部は、前記第1モデルから出力される第1分布度を出力し、
     前記設定部は、前記第1分布度に基づいて第1アシスト度を設定し、
     前記生成部は、前記入力指令値および前記第1アシスト度に基づいて前記出力指令値を生成する、
    請求項2~6のいずれか一項に記載のロボット制御システム。
  8.  前記第1モデルは、前記ユーザよりも操作に熟練した熟練者の前記過去の操作に基づいて生成された熟練モデルである、
    請求項7に記載のロボット制御システム。
  9.  前記学習済みモデルは、前記ユーザの前記過去の操作に基づいて生成された第2モデルを含み、
     前記推論部は、前記第2モデルから出力される第2分布度を出力し、
     前記設定部は、前記第2分布度に基づいて第2アシスト度を設定し、
     前記生成部は、前記入力指令値、前記第1アシスト度、および前記第2アシスト度に基づいて、前記出力指令値を生成する、
    請求項7又は8に記載のロボット制御システム。
  10.  前記生成部は、
      前記第2アシスト度が閾値以上である場合に、前記入力指令値と、前記第1アシスト度と、前記第1モデルから出力される、前記過去の操作に基づいて予測される指令値である予測指令値とに基づいて前記出力指令値を生成し、
      前記第2アシスト度が前記閾値未満である場合に、前記第1アシスト度及び前記予測指令値を用いることなく、前記入力指令値に基づいて前記出力指令値を生成する、
    請求項9に記載のロボット制御システム。
  11.  前記ロボットは前記ユーザから遠隔に位置する、
    請求項1~10のいずれか一項に記載のロボット制御システム。
  12.  前記ロボットと、
     請求項1~11のいずれか一項に記載のロボット制御システムと、
    を備えるロボットシステム。
  13.  前記ユーザ操作を受け付ける操作コントローラと、
     請求項1~11のいずれか一項に記載のロボット制御システムと、
    を備える操作システム。
  14.  ユーザ操作に応じてロボットを制御するための少なくとも一つのプロセッサを備えるロボット制御システムにより実行されるロボット制御方法であって、
     過去の操作に基づいて生成された学習済みモデルであって、前記ロボットの現在状態と目標状態との状態差が少なくとも入力されたことに応答して、当該状態差における前記ロボットの動作の分布の度合いである分布度を少なくとも出力する該学習済みモデルに基づいて、前記分布度を出力するステップと、
     前記学習済みモデルから出力される分布度に基づいて、前記ロボットの操作をアシストする度合いであるアシスト度を設定するステップと、
     前記ユーザ操作により操作装置から入力された入力指令値と前記アシスト度とに基づいて、前記ロボットへと出力される出力指令値を生成するステップと、
    を含むロボット制御方法。
  15.  ユーザ操作に応じてロボットを制御するための少なくとも一つのプロセッサを備えるロボット制御システムとしてコンピュータを機能させるロボット制御プログラムであって、
     過去の操作に基づいて生成された学習済みモデルであって、前記ロボットの現在状態と目標状態との状態差が少なくとも入力されたことに応答して、当該状態差における前記ロボットの動作の分布の度合いである分布度を少なくとも出力する該学習済みモデルに基づいて、前記分布度を出力するステップと、
     前記学習済みモデルから出力される分布度に基づいて、前記ロボットの操作をアシストする度合いであるアシスト度を設定するステップと、
     前記ユーザ操作により操作装置から入力された入力指令値と前記アシスト度とに基づいて、前記ロボットへと出力される出力指令値を生成するステップと、
    を前記コンピュータに実行させるロボット制御プログラム。
PCT/JP2020/016460 2020-02-03 2020-04-14 ロボット制御システム、ロボットシステム、操作システム、ロボット制御方法、およびロボット制御プログラム WO2021157104A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021575596A JPWO2021157104A1 (ja) 2020-02-03 2020-04-14
US17/816,727 US20220371203A1 (en) 2020-02-03 2022-08-02 Assistance for robot manipulation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202062969171P 2020-02-03 2020-02-03
US62/969,171 2020-02-03

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/816,727 Continuation US20220371203A1 (en) 2020-02-03 2022-08-02 Assistance for robot manipulation

Publications (1)

Publication Number Publication Date
WO2021157104A1 true WO2021157104A1 (ja) 2021-08-12

Family

ID=77199781

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/016460 WO2021157104A1 (ja) 2020-02-03 2020-04-14 ロボット制御システム、ロボットシステム、操作システム、ロボット制御方法、およびロボット制御プログラム

Country Status (3)

Country Link
US (1) US20220371203A1 (ja)
JP (1) JPWO2021157104A1 (ja)
WO (1) WO2021157104A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019202404A (ja) * 2018-05-25 2019-11-28 川崎重工業株式会社 ロボットシステム及びロボット制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06314103A (ja) * 1993-04-30 1994-11-08 Fujitsu Ltd 制御装置と能動的センシング装置
US6445964B1 (en) * 1997-08-04 2002-09-03 Harris Corporation Virtual reality simulation-based training of telekinegenesis system for training sequential kinematic behavior of automated kinematic machine
US8843236B2 (en) * 2012-03-15 2014-09-23 GM Global Technology Operations LLC Method and system for training a robot using human-assisted task demonstration
WO2017151926A1 (en) * 2016-03-03 2017-09-08 Google Inc. Deep machine learning methods and apparatus for robotic grasping
US10792810B1 (en) * 2017-12-14 2020-10-06 Amazon Technologies, Inc. Artificial intelligence system for learning robotic control policies

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019202404A (ja) * 2018-05-25 2019-11-28 川崎重工業株式会社 ロボットシステム及びロボット制御方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HIROSHI IGARASHI: "Operation Assist with Human Input Prediction and Its Effect, 27 DVD -ROM", 2009 THE 27 TH ANNUAL CONFERENCE OF THE ROBOTICS SOCIETY OF JAPAN, 15 September 2009 (2009-09-15) *
TAKAMITSU MATSUBARA: "Robot motor control and learning based on gaussian processes approximate inference by analytic moment matching", SYSTEMS, CONTROL AND INFORMATION, vol. 60, no. 12, 15 December 2016 (2016-12-15), pages 515 - 520 *

Also Published As

Publication number Publication date
JPWO2021157104A1 (ja) 2021-08-12
US20220371203A1 (en) 2022-11-24

Similar Documents

Publication Publication Date Title
CN108873768B (zh) 任务执行***及方法、学习装置及方法、以及记录介质
Avanzini et al. Constrained model predictive control for mobile robotic manipulators
KR102003216B1 (ko) 로봇을 위한 모터 제어 및/또는 조정
US11413748B2 (en) System and method of direct teaching a robot
US20210107142A1 (en) Reinforcement learning for contact-rich tasks in automation systems
US11281208B2 (en) Efficient teleoperation of mobile robots via online adaptation
Zhao et al. Efficient trajectory optimization for robot motion planning
US11806872B2 (en) Device and method for controlling a robotic device
KR102303126B1 (ko) 사용자 선호에 따른 강화학습 기반 자율주행 최적화 방법 및 시스템
JP2022543926A (ja) ロボットシステムのためのデリバティブフリーモデル学習のシステムおよび設計
US20210107144A1 (en) Learning method, learning apparatus, and learning system
Avanzini et al. Constraint-based model predictive control for holonomic mobile manipulators
CN114516060A (zh) 用于控制机器人装置的设备和方法
CN114800535B (zh) 机器人的控制方法、机械臂控制方法、机器人及控制终端
CN115351780A (zh) 用于控制机器人设备的方法
US20230381970A1 (en) System(s) and method(s) of using imitation learning in training and refining robotic control policies
WO2021157104A1 (ja) ロボット制御システム、ロボットシステム、操作システム、ロボット制御方法、およびロボット制御プログラム
JP2017213631A (ja) ロボットアーム制御装置、ロボットアーム制御方法、およびプログラム
Sadeghian et al. Visual servoing with safe interaction using image moments
Udugama Mini bot 3D: A ROS based Gazebo Simulation
Cuan et al. Gesture2path: Imitation learning for gesture-aware navigation
Gholami et al. A probabilistic shared-control framework for mobile robots
JP2021084188A (ja) 制御システム
Rotenstein et al. Towards the dream of intelligent, visually-guided wheelchairs
WO2024013895A1 (ja) 遠隔制御システム、遠隔制御方法、および遠隔制御プログラム

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: 20917938

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021575596

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20917938

Country of ref document: EP

Kind code of ref document: A1