WO2022085339A1 - 動作計画装置、動作計画方法、及び動作計画プログラム - Google Patents

動作計画装置、動作計画方法、及び動作計画プログラム Download PDF

Info

Publication number
WO2022085339A1
WO2022085339A1 PCT/JP2021/033717 JP2021033717W WO2022085339A1 WO 2022085339 A1 WO2022085339 A1 WO 2022085339A1 JP 2021033717 W JP2021033717 W JP 2021033717W WO 2022085339 A1 WO2022085339 A1 WO 2022085339A1
Authority
WO
WIPO (PCT)
Prior art keywords
abstract
motion
action
planner
sequence
Prior art date
Application number
PCT/JP2021/033717
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 EP21882480.3A priority Critical patent/EP4230360A1/en
Priority to US18/026,825 priority patent/US20230330854A1/en
Priority to CN202180066146.4A priority patent/CN116261503A/zh
Publication of WO2022085339A1 publication Critical patent/WO2022085339A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39298Trajectory learning

Definitions

  • the present invention relates to an operation planning device for planning the operation of a robot device, an operation planning method, and an operation planning program.
  • robot devices are used to perform various tasks such as assembling products.
  • Elements such as the mechanism of the robot device, end effectors, objects (work, tools, obstacles, etc.) have many variations depending on the environment in which the task is performed, and the operation procedure of the robot device corresponding to all of them. It is difficult to manually program the robot device to teach the target task. In particular, the more complex the task, the less realistic it is to program all of the operating procedures. Therefore, after determining elements such as mechanisms, end effectors, and objects, a method is adopted in which the robot device itself is manually moved to record the posture in a series of movements to be executed, and the task to be executed is directly taught. May occur.
  • the inventors of the present invention have found that the above-mentioned conventional automatic planning method has the following problems. That is, according to classical planning, even a complicated task can generate a sequence (solution) of actions for executing the task with a relatively light memory load and high speed. Moreover, the solution can be dynamically obtained without the user (operator) defining the sequence of actions.
  • classical planning is merely a simple simulation that simplifies the task environment, and does not consider the actual environment such as the specifications of the robot device, the arrangement of objects, and the constraints of the workspace. Therefore, it is unclear whether each action obtained by classical planning is feasible in the real environment.
  • MoveitTaskConstructor it is possible to automatically generate commands for operations that can be executed in the real environment.
  • the present invention on the one hand, has been made in view of these circumstances, the purpose of which is to ensure feasibility in a real environment, even for complex tasks, in a relatively memory manner. It is to provide a technique for generating an operation plan with a light load and a high speed.
  • the present invention adopts the following configuration in order to solve the above-mentioned problems.
  • the motion planning device uses an information acquisition unit configured to acquire task information including information on the start state and target state of the task given to the robot device, and a symbolic planner. Then, based on the task information, an action generation unit configured to generate an abstract action sequence including one or more abstract actions arranged in the order of execution so as to reach the target state from the start state. And the motion planner is used to generate and generate a motion sequence containing one or more physical motions for performing the abstract actions included in the abstract action sequence in the order of execution.
  • a motion generator configured to determine whether or not the motion sequence generated is physically feasible in a real environment by the robot device, and one or more motion sequences generated using the motion planner.
  • An operation group including, and an output unit configured to output an operation group determined to be physically feasible by all the included operation sequences, and the operation sequence in the operation generation unit.
  • the abstract action sequence after the abstract action corresponding to the action sequence determined to be physically infeasible is discarded, and the symbolic in the action generation unit.
  • the planner is configured to generate a new abstract action sequence after the action.
  • the motion planning device related to the configuration generates a motion plan of the robot device by using two planners, a symbolic planner and a motion planner.
  • an abstract action sequence (that is, an abstract action plan) from the start state of the task to the arrival of the target state is generated by using the symbolic planner.
  • an abstract action is a set of arbitrary actions, including one or more actions of a robotic device, which may be defined by a set of actions that can be represented by a symbol (eg, a word, etc.). That is, at the stage of using the symbolic planner, the environment and conditions of the task are simplified to generate an abstract action plan for carrying out the task. As a result, even for a complicated task, the load of memory is relatively light and the abstract action plan can be generated at high speed.
  • an action sequence for performing an abstract action is generated (that is, an abstract action is converted into an action sequence) and generated in the order of execution. It is determined whether or not the motion sequence is physically feasible in the real environment by the robot device.
  • the motion group (motion plan) of the robot device is generated while simulating the motion of the robot device in the real environment within the range of the abstract action plan generated by the symbolic planner. .. Then, if the motion plan that can be executed in the real environment cannot be generated (that is, the action plan generated by the symbolic planner cannot be executed in the real environment), the plan after the physically infeasible action is created.
  • the process of generating the motion plan of the robot device is divided into two stages, one is to use the symbolic planner and the other is to use the motion planner, and the motion plan is exchanged between the two planners. To generate. As a result, it is possible to generate an operation plan at a relatively low memory load and at high speed even for a complicated task while guaranteeing the feasibility in a real environment.
  • the motion planning device may be referred to as a "control device" for controlling the motion of the robot device.
  • the symbolic planner may include a cost estimation model trained by machine learning to estimate the cost of an abstract action.
  • the action generation unit may be further configured to use the symbolic planner to generate the abstract action sequence so that the cost estimated by the cost estimation model is optimized.
  • the cost may be appropriately set so as to be lower for desirable actions and higher for undesired actions based on arbitrary indicators such as operation time, drive amount, failure rate (success rate) of motion planning, and user feedback.
  • the symbolic planner can generate a desirable abstract action plan based on the cost, which makes it easier to generate a better motion plan. can.
  • the "cost estimation model” may be referred to as a "heuristic model” depending on whether the cost of each action is heuristically obtained.
  • the operation planning device is a plurality of learning data each composed of a combination of a training sample showing an abstract action for training and a correct answer label showing the true value of the cost of the abstract action for training.
  • a data acquisition unit configured to acquire a set
  • a learning processing unit configured to perform machine learning of the cost estimation model using the acquired multiple training data sets.
  • Machine learning is a cost estimation model for each training data set such that the estimated cost for the training abstract action shown by the training sample matches the true value indicated by the correct label.
  • a learning processing unit which is configured by training the above, may be further provided. According to this configuration, it is possible to generate a trained cost estimation model for generating a more appropriate motion plan in the motion planning device. In addition, it is possible to improve the capacity of the cost estimation model while operating the motion planning device.
  • the correct answer label indicates the time required to execute the motion sequence generated by the motion planner for the abstract action for training, and the robot in the execution of the motion sequence. It may be configured to indicate the true value of the cost calculated according to at least one of the drive amounts of the device.
  • the cost estimation model can be trained to acquire the ability to calculate the cost by using at least one of the operating time and the driving amount of the robot device as an index. This makes it easy to generate an appropriate motion plan with respect to at least one of the operating time and the driving amount of the robot device.
  • the correct label is calculated according to the probability that the motion sequence generated by the motion planner is physically infeasible for the abstract action for training. It may be configured to indicate the true value of the cost.
  • the cost estimation model can be trained to acquire the ability to calculate the cost by using the failure rate of the motion planning by the motion planner as an index. This reduces the motion planning failure rate of the motion planner (in other words, the possibility of returning to the stage of using the symbolic planner and replanning the abstract behavior sequence) for the abstract behavior sequence generated by the symbolic planner. be able to. That is, an abstract action plan that is highly feasible in the real environment can be generated by the symbolic planner, whereby the processing time until the final motion plan is obtained can be shortened.
  • the correct label may be configured to indicate the true value of the cost calculated according to the user's feedback on the abstract action for training.
  • the cost estimation model can be trained to acquire the ability to calculate the cost using the knowledge given by the user's feedback as an index. This makes it easier to generate a more appropriate motion plan in response to feedback.
  • the motion planning device outputs a list of abstract actions included in the abstract action sequence generated by using the symbolic planner to the user, and outputs the abstract action of the output.
  • an interface processing unit configured to receive the user's feedback on the list may be provided.
  • the data acquisition unit may be further configured to acquire the learning data set from the result of the user's feedback on the list of abstract actions.
  • User feedback may be obtained for the motion plan generated by the motion planner.
  • the motion sequence included in the motion plan generated by the motion planner is defined by the physical quantity (for example, the trajectory of the end effector) accompanied by the mechanical drive of the robot device. Therefore, the generated motion plan has a large amount of information and is not easily interpretable by the user (human).
  • the abstract actions included in the action plan generated by the symbolic planner may be defined by, for example, a collection of actions that can be expressed by symbols such as words, and are compared with the action series defined by physical quantities.
  • the amount of information is small and the user can easily interpret it. Therefore, according to the configuration, it is possible to suppress the consumption of resources (for example, a display) that outputs the plan generated by the planner to the user, and it is possible to easily obtain the feedback of the user, which is more appropriate. It is possible to facilitate the generation and improvement of a trained cost estimation model for generating a flexible motion plan.
  • the state space of the task is represented by a graph having an edge corresponding to the abstract action and a node corresponding to the abstract attribute to be changed by executing the abstract action.
  • the symbolic planner may be configured to generate the abstract action sequence by searching the graph for a path from the start node corresponding to the start state to the target node corresponding to the target state. good. According to this configuration, a symbolic planner can be easily generated, whereby the burden on the construction of the motion planning device can be reduced.
  • outputting the motion group may include controlling the motion of the robot device by giving a command indicating the motion group to the robot device.
  • a motion planning device that controls the motion of the robot device according to the generated motion plan.
  • the motion planning device according to the configuration may be referred to as a "control device”.
  • the robot device may include one or more robot hands, and the task may be an assembly work of a product composed of one or more parts.
  • the memory load is relatively light and high speed even for a complicated task while guaranteeing the feasibility in a real environment. It is possible to generate an operation plan.
  • one aspect of the present invention may be an information processing method or a program that realizes all or a part of each of the above configurations.
  • it may be a storage medium that stores such a program and can be read by a computer or other device, a machine, or the like.
  • the 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 operation planning method is described above by using a step in which a computer acquires task information including information on a start state and a target state of a task given to a robot device, and a symbolic planner.
  • a step of generating an action sequence including one or more physical actions for performing the abstract action included in the abstract action sequence, and the generated action sequence are sequentially produced by the robot device.
  • An operation group including a step for determining whether or not it is physically feasible in a real environment and one or more operation sequences generated by using the motion planner, and all the operation sequences included are physically.
  • the operation planning program uses a step of acquiring task information including information on a start state and a target state of a task given to a robot device to a computer, and a symbolic planner.
  • a step of generating an action sequence including one or more physical actions for performing the abstract action included in the abstract action sequence, and the generated action sequence are the robot.
  • An operation group including a step of determining whether or not the device can be physically executed in a real environment and one or more operation sequences generated by using the motion planner, and all the operation sequences included in the operation sequence are included.
  • FIG. 1 schematically illustrates an example of a situation in which the present invention is applied.
  • FIG. 2 schematically illustrates an example of the hardware configuration of the operation planning device according to the embodiment.
  • FIG. 3 schematically illustrates an example of the software configuration of the operation planning device according to the embodiment.
  • FIG. 4 schematically illustrates an example of the machine learning process of the cost estimation model by the motion planning device according to the embodiment.
  • FIG. 5 is a flowchart showing an example of a processing procedure related to an operation plan by the operation planning device according to the embodiment.
  • FIG. 6 schematically illustrates an example of the process of generating an abstract action sequence by the symbolic planner according to the embodiment.
  • FIG. 7 schematically illustrates an example of an output mode of an abstract action sequence by the motion planning device according to the embodiment.
  • FIG. 1 schematically illustrates an example of a situation in which the present invention is applied.
  • FIG. 2 schematically illustrates an example of the hardware configuration of the operation planning device according to the embodiment.
  • FIG. 3 schematically illustrates an
  • FIG. 8 schematically illustrates an example of the process of generating an motion sequence by the motion planner according to the embodiment.
  • FIG. 9 is a flowchart showing an example of a processing procedure related to machine learning of a cost estimation model by the motion planning device according to the embodiment.
  • FIG. 10 schematically illustrates an example of another usage pattern of the cost estimation model.
  • 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 are described in natural language, but more specifically, they are 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 a situation in which the present invention is applied.
  • the motion planning device 1 according to the present embodiment is a computer configured to generate a motion plan for causing the robot device R to perform a task.
  • the motion planning device 1 acquires task information 121 including information on the start state and the target state of the task given to the robot device R.
  • the type of the robot device R is not particularly limited and may be appropriately selected depending on the embodiment.
  • the robot device R may be, for example, an industrial robot (manipulator or the like), an automatically movable moving body, or the like.
  • the industrial robot may be, for example, a vertical articulated robot, a scalar robot, a parallel link robot, a orthogonal robot, a cooperative robot, or the like.
  • the automatically movable mobile body may be, for example, a drone, a vehicle configured to be self-driving, a mobile robot, or the like.
  • the robot device R may be composed of a plurality of robots.
  • the task may consist of any task that the robotic apparatus R can perform, such as assembling a product.
  • the environment for performing the task may be defined by an object such as a work (parts or the like), a tool (driver or the like), an obstacle, or the like, in addition to the robot device R.
  • the robot device R may include one or more robot hands, and the task may be the assembly work of a product composed of one or more parts.
  • the robot hand can generate a motion plan for the work of assembling the product.
  • the task information 121 may include other information (for example, information regarding the environment of the task) as long as it includes information indicating the start state and the target state of the task.
  • the motion planning device 1 uses the symbolic planner 3 to be abstract, including one or more abstract actions arranged in the order of execution so as to reach the target state from the start state based on the task information 121. Generate an action sequence.
  • the abstract action sequence may be read as an abstract action plan or a symbolic plan.
  • the motion planning device 1 uses the motion planner 5 to convert the abstract actions included in the abstract action sequence into the motion sequence in the order of execution of the action plan.
  • the motion sequence may be appropriately configured to include one or more physical motions to achieve the abstract behavior of the object.
  • the motion planning device 1 generates an motion sequence for performing abstract actions in the order of execution.
  • the motion planning device 1 uses the motion planner 5 to determine whether or not the generated motion sequence can be physically executed in the actual environment by the robot device R.
  • an abstract action is a set of arbitrary actions including one or more actions of the robot device R, which may be defined as a set of actions that can be represented by symbols (eg, words, etc.).
  • An abstract action may be defined as a collection of meaningful (ie, human-understandable) actions such as grabbing, carrying, or positioning a part.
  • the physical motion may be defined by the motion (physical quantity) accompanied by the mechanical drive of the robot device R.
  • the physical operation may be defined by the amount of control in the controlled object such as the trajectory of the end effector.
  • the start state may be defined by the abstract attribute and the physical state of the robot device R and the object which are the start points for performing the task.
  • the target state may be defined by the abstract attributes of the robotic apparatus R and the object, which are the target points of the task to be performed.
  • the physical state of the robot device R and the object in the target state may or may not be specified in advance (in this case, the physical state in the target state is, for example, the execution result of the motion planner 5. Etc., it may be appropriately determined from the abstract attributes in the target state).
  • the "goal” may be either the final goal or the intermediate goal of the task.
  • Abstract attributes are those that are subject to change by performing abstract actions.
  • Abstract attributes are, for example, free, holding a work, holding a tool, held in a robot hand, fixed in place, and so on. It may be configured to include a state.
  • the physical state may be defined by physical quantities in the real environment such as position, posture, and orientation.
  • the symbolic planner 3 may be appropriately configured to be able to execute a process of generating an abstract action sequence from the start state to the target state when the information indicating the start state and the target state is given.
  • the symbolic planner 3 repeats a process of selecting an abstract action that can be executed so as to approach the target state from the start state according to a predetermined rule such as classical planning (graph search), thereby performing an abstract action sequence. May be configured to generate.
  • a predetermined rule such as classical planning (graph search)
  • the robot device R performs a process of generating an action sequence for performing the abstract action and the generated motion sequence in a real environment.
  • the process of determining whether or not it is physically feasible may be appropriately configured so as to be feasible.
  • the motion planner 5 may be configured by a transducer that converts an abstract action into a motion sequence according to a predetermined rule and a physics simulator that physically simulates the obtained motion sequence.
  • the motion planner 5 In the process, the action sequence generated for the abstract action that causes it is determined to be physically infeasible. In this case, the motion planning device 1 discards the abstract action sequence after the abstract action corresponding to the motion sequence determined to be physically infeasible. Then, the motion planning device 1 uses the symbolic planner 3 to generate a new abstract action sequence after the abstract action. That is, when it is found that the abstract action sequence contains an abstract action that cannot be executed in the real environment at the stage of using the motion planner 5 (the generation of the action sequence that can be executed in the real environment fails). The motion planning device 1 returns to the stage of using the symbolic planner 3 and replans the abstract action sequence.
  • the motion planning device 1 described above until it is determined that all motion sequences can be executed in the real environment (that is, the generation of motion sequences that can be executed in the real environment for all abstract actions is successful). As described above, the processes of the symbolic planner 3 and the motion planner 5 are alternately repeated. As a result, the motion planning device 1 is a motion group including one or more motion sequences so as to reach the target state from the start state, and it is determined that all the motion sequences included are physically feasible. It is possible to generate motion groups. Alternatively, when the action plan that can be executed in the real environment is generated by the first use of the symbolic planner 3, the motion planning device 1 executes the processes of the symbolic planner 3 and the motion planner 5 once (1 time each). The motion group can be generated without repeating the process).
  • the generated motion group corresponds to the motion plan of the robot device R for performing the task (that is, reaching the target state from the start state).
  • the motion planning device 1 outputs a motion group generated by using the motion planner 5. It should be noted that outputting the motion group may include controlling the motion of the robot device R by giving a command indicating the motion group to the robot device R.
  • the motion planning device 1 When the motion planning device 1 is configured to control the operation of the robot device R, the motion planning device 1 may be read as a "control device" for controlling the motion of the robot device R.
  • the process of generating the motion plan of the robot device R is divided into two stages, an abstract stage using the symbolic planner 3 and a physical stage using the motion planner 5, and two planners (3). 5) Generate an operation plan while exchanging between them.
  • the task environment and conditions can be simplified to an abstract level rather than a complex real environment level to generate an action plan to accomplish the task. Therefore, even for a complicated task, it is possible to generate an abstract action plan (abstract action sequence) at a relatively low memory load and at high speed.
  • the process of generating the motion sequence by the motion planner 5 is configured to use the process result of the symbolic planner 3 (that is, it is executed after the process of the symbolic planner 3 is executed).
  • the operation plan of the robot device R is generated at a relatively light memory load and at high speed even for a complicated task while guaranteeing the feasibility in a real environment. be able to.
  • FIG. 2 schematically illustrates an example of the hardware configuration of the operation planning device 1 according to the present embodiment.
  • the operation planning device 1 according to the present embodiment is a computer to which a control unit 11, a storage unit 12, an external interface 13, an input device 14, an output device 15, and a drive 16 are electrically connected. be.
  • the external interface is described as "external I / F".
  • the control unit 11 includes a CPU (Central Processing Unit), RAM (RandomAccessMemory), ROM (ReadOnlyMemory), etc., which are examples of hardware processors, and executes information processing based on a program and various data. It is composed.
  • 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 motion planning program 81.
  • the motion planning program 81 is a program for causing the motion planning device 1 to execute information processing (FIGS. 5 and 9) described later regarding the generation of the motion plan.
  • the motion planning program 81 includes a series of instructions for the information processing. Details will be described later.
  • the external interface 13 is, for example, a USB (Universal Serial Bus) port, a dedicated port, or the like, and is an interface for connecting to an external device.
  • the type and number of external interfaces 13 may be arbitrarily selected.
  • the motion planning device 1 When the motion planning device 1 is configured to control the operation of the robot device R, the motion planning device 1 may be connected to the robot device R via the external interface 13.
  • the connection method between the motion planning device 1 and the robot device R is not limited to such an example, and may be appropriately selected depending on the embodiment.
  • the motion planning device 1 and the robot device R may be connected to each other via a communication interface such as a wired LAN (Local Area Network) module or a wireless LAN module.
  • a communication interface such as a wired LAN (Local Area Network) module or a wireless LAN module.
  • the input device 14 is, for example, a device for inputting a mouse, a keyboard, or the like.
  • the output device 15 is, for example, a device for outputting a display, a speaker, or the like. An operator such as a user can operate the operation planning device 1 by using the input device 14 and the output device 15.
  • the drive 16 is, for example, a CD drive, a DVD drive, or the like, and is a drive device for reading various information such as a program stored in the storage medium 91.
  • the storage medium 91 performs electrical, magnetic, optical, mechanical or chemical action on the information of the program or the like so that the computer or other device, the machine or the like can read various information of the stored program or the like. It is a medium that accumulates by.
  • the operation planning program 81 may be stored in the storage medium 91.
  • the motion planning device 1 may acquire the motion planning program 81 from the storage medium 91.
  • FIG. 2 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 type of the drive 16 may be arbitrarily selected according to the type of the storage medium 91.
  • the control unit 11 may include a plurality of hardware processors.
  • the hardware processor may be composed of a microprocessor, FPGA (field-programmable gate array), 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 external interface 13, the input device 14, the output device 15, and the drive 16 may be omitted.
  • the operation planning device 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 operation planning device 1 may be a general-purpose server device, a general-purpose PC (Personal Computer), a PLC (programmable logic controller), or the like, in addition to an information processing device designed exclusively for the provided service.
  • FIG. 3 schematically illustrates an example of the software configuration of the operation planning device 1 according to the present embodiment.
  • the control unit 11 of the operation planning device 1 expands the operation planning 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 operation planning program 81 expanded in the RAM by the CPU.
  • the motion planning device 1 according to the present embodiment includes software for the information acquisition unit 111, the action generation unit 112, the operation generation unit 113, the output unit 114, the data acquisition unit 115, the learning processing unit 116, and the interface processing unit 117. Operates as a computer equipped as a module. That is, in the present embodiment, each software module of the operation planning device 1 is realized by the control unit 11 (CPU).
  • the information acquisition unit 111 is configured to acquire task information 121 including information on the start state and target state of the task given to the robot device R.
  • the action generation unit 112 includes a symbolic planner 3.
  • the action generation unit 112 uses the symbolic planner 3 to generate an abstract action sequence including one or more abstract actions arranged in the order of execution so as to reach the target state from the start state based on the task information 121. It is configured to do.
  • the motion generation unit 113 includes a motion planner 5.
  • the motion generation unit 113 uses the motion planner 5 to generate an motion sequence including one or more physical motions for performing the abstract actions included in the abstract action sequence in the order of execution. , It is configured to determine whether or not the generated motion sequence is physically feasible in the real environment by the robot device R.
  • each configuration information may be included in the operation planning program 81, or may be stored in a memory (storage unit 12, storage medium 91, external storage device, etc.) separately from the operation planning program 81.
  • the motion planning device 1 determines in the motion generation unit 113 that the motion sequence is physically infeasible
  • the motion planning device 1 is abstract after the abstract action corresponding to the motion sequence determined to be physically infeasible.
  • the action sequence is discarded, and the action generation unit 112 is configured to use the symbolic planner 3 to generate a new abstract action sequence after the action.
  • the output unit 114 outputs an operation group including one or more operation sequences generated by using the motion planner 5, and all the included operation sequences are determined to be physically feasible. It is configured as follows.
  • the symbolic planner 3 may be appropriately configured to generate an abstract action sequence according to a predetermined rule.
  • the symbolic planner 3 may be further configured to include a cost estimation model (heuristic model) 4 trained by machine learning to estimate the cost of abstract behavior.
  • the action generator 112 is further configured to use the symbolic planner 3 to generate an abstract action sequence so that the costs estimated by the trained cost estimation model 4 are optimized. good.
  • the cost estimation model 4 may be appropriately configured to output an estimated value of the cost of the candidate (that is, the result of estimating the cost) when a candidate of the abstract action to be adopted is given.
  • Candidates for abstract actions may be specified directly, or indirectly by a combination of candidates for the current state and the next state.
  • the information input to the cost estimation model 4 is not limited to the information indicating the abstract action candidate.
  • the cost estimation model 4 may be configured to further accept input of other information available for cost estimation (eg, at least a portion of task information 121), in addition to the information indicating abstract action candidates. ..
  • the trained cost estimation model 4 may be generated by the motion planning device 1 or may be generated by a computer other than the motion planning device 1.
  • the motion planning device 1 includes the data acquisition unit 115 and the learning processing unit 116, so that the trained cost estimation model 4 can be generated and the cost estimation model 4 can be retrained. To.
  • FIG. 4 schematically illustrates an example of the machine learning process of the cost estimation model 4 according to the present embodiment.
  • the data acquisition unit 115 is configured to acquire a plurality of training data sets 60 each composed of a combination of the training sample 61 and the correct answer label 62.
  • the training sample 61 may be appropriately configured to show abstract behavior for training. If the cost estimation model 4 is configured to further accept input of other information, the training sample 61 may be configured to further include other information for training.
  • the correct label 62 may be appropriately configured to indicate the true value of the cost of the abstract action for training indicated by the corresponding training sample 61.
  • the learning processing unit 116 is configured to perform machine learning of the cost estimation model 4 using the acquired plurality of learning data sets 60.
  • Machine learning estimates the cost of each training data set 60 so that the estimated cost for the training abstract behavior shown by the training sample 61 matches the true value indicated by the corresponding correct answer label 62. It consists of training model 4.
  • the cost may be appropriately set so as to be lower for recommended actions and higher for unrecommended actions based on arbitrary indicators such as operation time, drive amount, motion planning failure rate, and user feedback.
  • the numerical representation of the cost may be set as appropriate.
  • the cost may be expressed as being proportional to the number (ie, the higher the number, the higher the cost).
  • the cost may be expressed as being inversely proportional to the numerical value (that is, the smaller the numerical value, the higher the cost).
  • each training data set 60 may be acquired from the generation result of the operation group by the motion planner 5.
  • the motion planning failure rate (that is, the probability that the motion sequence generated by the motion planner 5 is physically infeasible for an abstract action) is relative to the abstract action sequence obtained by the symbolic planner 3. It can be evaluated by executing the process of the motion planner 5. Therefore, when the failure rate of the motion plan is used as an evaluation index of the cost, each learning data set 60 may be acquired from the execution result of the processing of the motion planner 5 for the abstract action sequence obtained by the symbolic planner 3.
  • the success rate of the motion plan (that is, the probability that the motion sequence generated by the motion planner 5 is physically feasible for an abstract action) is the same as the failure rate as a cost evaluation index. Can be handled. Therefore, evaluating the cost according to the failure rate of the motion plan may include evaluating the cost according to the success rate of the motion plan. Further, the failure rate (success rate) does not necessarily have to be expressed in the range of 0 to 1. As another example, the failure rate may be expressed as a binary value that the motion planning succeeds (cost is 0) and fails (cost is
  • each learning data set 60 may be appropriately acquired from the result of the feedback obtained from the user.
  • the timing and format of the feedback are not particularly limited, and may be appropriately determined according to the embodiment.
  • the interface processing unit 117 can acquire the feedback of the user. That is, the interface processing unit 117 outputs a list of abstract actions included in the abstract action sequence generated by using the symbolic planner 3 to the user, and outputs the list of the output abstract actions to the user. It is configured to accept user feedback.
  • Each learning data set 60 may be obtained from the result of user feedback on a list of abstract behaviors.
  • the timing for collecting the learning data set 60 is not particularly limited and may be appropriately determined according to the embodiment. All training data sets 60 may be collected before operating the motion planning device 1. Alternatively, at least a part of the plurality of training data sets 60 may be collected while operating the motion planning device 1.
  • the cost estimation model 4 may be appropriately configured by a machine learning model having arithmetic parameters that can be adjusted by machine learning.
  • the configuration and type of the machine learning model may be appropriately selected according to the embodiment.
  • the cost estimation model 4 may be configured by a fully connected neural network.
  • the cost estimation model 4 includes an input layer 41, one or more intermediate (hidden) layers 43, and an output layer 45.
  • the number of intermediate layers 43 may be appropriately selected according to the embodiment.
  • the intermediate layer 43 may be omitted.
  • the number of layers of the neural network constituting the cost estimation model 4 may be appropriately selected according to the embodiment.
  • Each layer (41, 43, 45) comprises one or more neurons (nodes).
  • the number of neurons contained in each layer (41, 43, 45) may be appropriately determined according to the embodiment.
  • the number of neurons in the input layer 41 may be appropriately determined according to the input form such as the number of dimensions of the input.
  • the number of neurons in the output layer 45 may be appropriately determined according to the output form such as the number of dimensions of the output.
  • each neuron contained in each layer (41, 43, 45) is connected to all neurons in the adjacent layer.
  • the structure of the cost estimation model 4 does not have to be limited to such an example, and may be appropriately determined according to the embodiment.
  • the cost estimation model 4 when the cost estimation model 4 is configured to estimate the cost based on a plurality of types of information, at least a part of the input side of the cost estimation model 4 accepts the input of each type of information separately. It may be divided into multiple modules so that it can be used.
  • the cost estimation model 4 outputs a plurality of feature extraction modules arranged in parallel on the input side so as to accept the input of the corresponding information, and outputs so as to accept the output of each feature extraction module. It may be provided with a coupling module located on the side.
  • Each feature extraction module may be appropriately configured to extract a feature quantity from the corresponding information.
  • the combination module may be appropriately configured to combine the feature quantities extracted from each information by each feature extraction module and output an estimated cost.
  • a weight (bonding load) is set for each bond of each layer (41, 43, 45).
  • 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 may be arbitrarily selected.
  • the weight of the connection between each neuron and the threshold value of each neuron included in each layer (41, 43, 45) are examples of arithmetic parameters.
  • the learning processing unit 116 uses the training sample 61 of each training data set 60 as training data (input data), and the correct answer label 62 as correct answer data (teacher signal). That is, the learning processing unit 116 inputs the training sample 61 of each learning data set 60 to the input layer 41, and executes the arithmetic processing of the forward propagation of the cost estimation model 4. By this calculation, the learning processing unit 116 acquires the estimated value of the cost for the abstract action for training from the output layer 45. The learning processing unit 116 calculates an error between the obtained cost estimate and the true value (correct answer) indicated by the correct answer label 62 associated with the input training sample 61. The learning processing unit 116 repeats adjusting the values of each calculation parameter of the cost estimation model 4 so that the calculated error becomes small for each learning data set 60. This makes it possible to generate a trained cost estimation model 4.
  • the learning processing unit 116 may be configured to generate learning result data 125 for reproducing the trained cost estimation model 4 generated by the machine learning.
  • the configuration of the training result data 125 is not particularly limited and may be appropriately determined according to the embodiment.
  • the training result data 125 may include information indicating the value of each arithmetic parameter of the cost estimation model 4 obtained by the adjustment of the machine learning.
  • the training result data 125 may further include information indicating the structure of the cost estimation model 4.
  • the structure of the cost estimation model 4 is specified, for example, by the number of layers from the input layer to the output layer in the neural network, the type of each layer, the number of neurons contained in each layer, the connection relationship between neurons in adjacent layers, and the like. good.
  • the learning processing unit 116 may be configured to store the generated learning result data 125 in a predetermined storage area.
  • each software module of the operation planning apparatus 1 will be described in detail in an operation example described later.
  • an example in which each software module of the operation planning device 1 is realized by a general-purpose CPU is described.
  • some or all of the software modules may be implemented by one or more dedicated processors.
  • Each of the above modules may be realized as a hardware module.
  • the software module may be omitted, replaced, or added as appropriate according to the embodiment.
  • FIG. 5 is a flowchart showing an example of a processing procedure related to an operation plan by the operation planning device 1 according to the present embodiment.
  • the processing procedure related to the motion planning described below is an example of the motion planning method.
  • the processing procedure related to the operation plan described below is only an example, and each step may be changed as much as possible. Further, regarding the processing procedure related to the following operation plan, steps may be omitted, replaced, or added as appropriate according to the embodiment.
  • Step S101 the control unit 11 operates as the information acquisition unit 111, and acquires the task information 121 including the information regarding the start state and the target state of the task given to the robot device R.
  • the method for acquiring the task information 121 is not particularly limited and may be appropriately selected according to the embodiment.
  • the task information 121 may be acquired as a user input result via the input device 14.
  • the task information 121 may be acquired as a result of observing the start state and the target state of the task with a sensor such as a camera.
  • the data format of the task information 121 is not particularly limited as long as the start state and the target state can be specified, and may be appropriately selected according to the embodiment.
  • the task information 121 may be composed of, for example, numerical data, text data, image data, or the like. In order to identify the task, the start state may be appropriately specified for each of the abstract stage and the physical stage.
  • the target state may be appropriately specified for at least the abstract stage of the abstract stage and the physical stage.
  • the task information 121 may further include other information that can be used to generate an abstract action sequence or action group.
  • Step S102 the control unit 11 operates as the action generation unit 112, refers to the task information 121, and uses the symbolic planner 3 to plan an abstract action so as to reach the target state from the start state. conduct.
  • the control unit 11 generates an abstract action sequence including one or more abstract actions arranged in the order of execution so as to reach the target state from the start state based on the task information 121.
  • FIG. 6 schematically illustrates an example of the process of generating an abstract action sequence by the symbolic planner 3 according to the present embodiment.
  • the state space of a task in the abstract stage may be represented by a graph with edges corresponding to the abstract action and nodes corresponding to the abstract attributes of interest that are modified by the execution of the abstract action. That is, the state space in which the symbolic planner 3 is involved may be composed of a set of abstract attributes (states) that change due to abstract actions.
  • the symbolic planner 3 may be configured to generate an abstract action sequence by searching the graph for the route from the start node corresponding to the start state to the target node corresponding to the target state. ..
  • the abstract attribute given to the start node corresponding to the start state is an example of information indicating the start state in the abstract stage.
  • the abstract attributes may be appropriately set to include the abstract states of the robot device R and the object.
  • at least two robot hands robot A, robot B
  • one or more parts part C
  • tool Z tool
  • It shows a scene where an abstract action sequence is generated for a task including a fixed task.
  • the abstract attributes include the abstract states of each robot (A, B), part C, and tool Z.
  • each robot (A, B), component C, and tool Z are free.
  • the target state each robot (A, B) and the tool Z are free, and the component C is fixed in a predetermined place.
  • the scene in which the action of holding the component C by the robot A is selected as the first action is shown.
  • the node that passes from the start node to the target node corresponds to the intermediate state.
  • the symbolic planner 3 is configured to select the next state (ie, the node to go through next) given the current state and the target state. May be done. Choosing the next state is equivalent to choosing the abstract action to perform in the current state. Therefore, choosing the next state may be treated synonymously with choosing the abstract action to adopt.
  • the symbolic planner 3 sets the start state to the initial value of the current state, and repeats the selection of the next state and the transition of the node until the target state is selected as the next state, from the start node to the target node. You can search the path of the above in the graph and generate an abstract action sequence.
  • Candidates for the next selectable state may be appropriately given according to the configuration of the robot device R, the conditions of the object, and the like. However, depending on the state at the time of selection (the state set as the current state), some of the given candidates may be logically infeasible. In addition, even if it is logically feasible, there is a possibility that the target state cannot be reached (a dead end is reached) or the same state is repeatedly passed (looped) by adopting the action. .. Therefore, the symbolic planner 3 may be configured to execute a logical check of the abstract behavior to be adopted before and after the transition of the node.
  • the robot A when the robot A is configured to be able to hold one article, if the robot A is free, the action of holding the part C by the robot A or the tool Z by the robot A is used.
  • the action to hold is logically feasible.
  • the robot A already holds the tool C (or the tool Z) when the robot A already holds the tool C (or the tool Z), the action of holding the tool Z (or the tool C) by the robot A is logically infeasible.
  • the symbolic planner 3 should perform such a logical check before the node transition (ie, determine the next state to select) and, based on the result, adopt a logically feasible action. May be configured.
  • the content of such a logic check before the transition may be defined as a rule.
  • a logically feasible action in a state corresponding to the target node that arrives as a result of selecting a node (that is, an abstract attribute realized as a result of executing a logically feasible abstract action), a logically feasible action. If does not exist, the target node is a dead end. Alternatively, if the abstract attribute of the target node is the same as the abstract attribute of the intermediate node that has passed from the start node to the target node, the selected route is looping.
  • the symbolic planner 3 may be configured to avoid dead ends and loops by holding information on the nodes that have passed from the start node to the target node and performing such a logical check after the node transition. When a dead end or a loop is reached, the symbolic planner 3 cancels the adoption of the corresponding abstract action, returns to the previous state (node), and redetermines the process of determining the abstract action to be adopted. It may be configured to run.
  • the symbolic planner 3 may appropriately select an abstract action to be adopted from the plurality of candidates.
  • the symbolic planner 3 can use the trained cost estimation model 4 to determine the abstract behavior to be adopted from a plurality of candidates.
  • the control unit 11 refers to the learning result data 125 and sets the trained cost estimation model 4. Then, the control unit 11 inputs information indicating each candidate to the input layer 41, and executes a forward propagation operation of the trained cost estimation model 4. As a result, the control unit 11 can obtain the cost estimation result for each candidate from the output layer 45.
  • the abstract action candidates that can be adopted may be directly specified, or may be specified by a combination of the current state and the next state candidates. Candidates for cost estimation may be narrowed down to the logically feasible abstract actions identified by the results of the pre-transition logic check. Further, when considering information other than the information indicating each candidate in the cost estimation, the input layer 41 may be configured to further accept the input of the other information. Other information can be obtained from, for example, the specifications of the robot device R, the attributes related to the environment in which the task is performed (for example, the arrangement of objects, specifications, workspace restrictions, etc.), the type of task, the difficulty level of the task, and the current state. It may include information such as a list of abstract actions up to the target state and the operation time required from the current state to the target state. Other information may be acquired in step S101 as at least part of the task information 121.
  • the control unit 11 selects an abstract action to be adopted from a plurality of candidates so as to optimize the cost based on the cost estimation result for each candidate obtained by the trained cost estimation model 4. May be good.
  • cost optimization may consist of choosing the abstract behavior with the lowest cost.
  • cost optimization may consist of selecting abstract behaviors that cost less than the threshold.
  • Step S103 and Step S104 Based on FIG. 5, in step S103, the control unit 11 operates as the interface processing unit 117, and provides the user with a list of abstract actions included in the abstract action sequence generated by using the symbolic planner 3. And output. Then, in step S104, the control unit 11 receives the user's feedback on the output list of abstract actions.
  • the output destination, output format, and feedback format of the list may be appropriately selected according to the embodiment.
  • FIG. 7 schematically illustrates an example of the output form of the abstract action sequence (list of abstract actions) according to the present embodiment.
  • the output screen 150 exemplified in FIG. 7 is a first area 151 for displaying the state of the task environment (for example, robot device R, object) when each abstract action is executed, and the abstract action. It includes a second area 152 for displaying a list of, a first button 153 for performing an abstract action sequence replanning, and a second button 154 for completing the acceptance of feedback.
  • User feedback may be obtained by GUI (Graphical User Interface) operation on the list of abstract actions displayed in the second area 152.
  • User feedback may consist of, for example, changes, modifications, sorts, deletions, additions, denials, consents, etc. of abstract behaviors.
  • the output screen 150 may be displayed on the output device 15. Accordingly, user feedback may be received via the input device 14. When the reception of feedback is completed, the control unit 11 proceeds to the next step S105.
  • step S105 the control unit 11 determines the branch destination of the process according to the feedback of the user in step S104.
  • the control unit 11 returns the process to step S102 and processes from step S102. Is executed again.
  • the control unit 11 replans the abstract action sequence.
  • the symbolic planner 3 creates an abstract behavioral sequence that is at least partially different from the abstract behavioral sequence generated before the replanning, for example, by adopting a different abstract behavior. It may be appropriately configured to generate.
  • the control unit 11 proceeds to the next step S106.
  • step S106 the control unit 11 operates as the motion generation unit 113, and among the abstract actions included in the abstract action sequence, the corresponding action sequence is not generated, and the abstract action sequence is the earliest. Behavior. Then, the control unit 11 uses the motion planner 5 to convert the abstract action of the specified target into an action sequence.
  • the motion sequence may be appropriately configured to include one or more physical motions to achieve the abstract behavior of the object.
  • step S107 the control unit 11 determines whether or not the generated operation sequence can be physically executed in the actual environment by the robot device R.
  • FIG. 8 schematically illustrates an example of the operation sequence generation process by the motion planner 5 according to the present embodiment.
  • the state space of a task in a physical stage may be represented by a graph with edges corresponding to the action sequence and nodes corresponding to the action attributes including the physical state to be changed by the execution of the action sequence. That is, the state space in which the motion planner 5 is involved may be composed of a set of motion (physical) attributes that change depending on the physical motion. Each node in the physical stage may be obtained corresponding to each node in the abstract stage.
  • the operation attribute of each node may include information about an operation sequence (operation list) for reaching the physical state, in addition to the physical state of the robot device R and the object at the corresponding time point.
  • the information regarding the operation sequence includes, for example, identification information (operation ID) of each operation, identification information (parent operation ID) of the operation (parent operation) executed before each operation, and each operation. It may include command information (for example, a control amount such as an orbit) for instructing the robot device R.
  • the operation ID and the parent operation ID may be used to specify the execution order of each operation.
  • the physical state in the start state may be specified by the task information 121 according to the abstract attribute of the start state.
  • the information about the operation sequence in the start state may be empty.
  • the state space in the abstract stage may be expressed as an "abstract layer", and the state space in the physical stage may be expressed as an "action layer”.
  • the process of step S102 may be expressed as an action plan generation process in the abstract layer, and the process of step S106 may be expressed as an action plan generation process in the motion layer.
  • the motion planner 5 may be configured to generate an action sequence for performing the abstract action according to a predetermined rule.
  • the conversion rule for converting the abstract action into the action sequence may be appropriately set according to the embodiment.
  • the motion planner 5 may set the initial value of the current physical state to the physical state at the start state. After deciding to adopt the generated motion sequence, the motion planner 5 changes the physical state realized by executing the motion sequence determined to be adopted (that is, the physical state of the node after the transition) to the current physics. By setting it as a target state, the current physical state can be updated.
  • the motion planner 5 physically simulates the execution of the target motion sequence in the real environment, thereby determining whether or not the robot device R can physically execute the target motion sequence in the real environment. It may be configured as follows. Information (not shown) for reproducing the actual environment such as CAD (computer aided design) information may be used for the simulation. The information may be stored in an arbitrary storage area such as a storage unit 12, a storage medium 91, or an external storage device.
  • Information (not shown) for reproducing the actual environment such as CAD (computer aided design) information may be used for the simulation.
  • the information may be stored in an arbitrary storage area such as a storage unit 12, a storage medium 91, or an external storage device.
  • the motion planner 5 is configured to further accept the input of the reference information.
  • the reference information may include, for example, information such as specifications of the robot device R, attributes related to the environment for performing the task (for example, arrangement of objects, specifications, restrictions on workspace, etc.), task types, and the like.
  • the reference information may be acquired in step S101 as at least a part of the task information 121.
  • a plurality of different motion sequence candidates can be generated for an abstract action (that is, in the motion layer, a plurality of nodes corresponding to one node of the abstract layer can be given. ).
  • the control unit 11 may appropriately select an operation sequence that can be executed in the real environment from a plurality of candidates. When it is determined that all the candidates are infeasible in the real environment, the control unit 11 determines that the generated operation sequence is physically infeasible in the actual environment by the robot device R as the determination result in step S107. You may conclude. When the motion planner 5 is used to generate the motion sequence and determine the feasibility of the generated motion sequence in the real environment, the control unit 11 proceeds to the next step S108.
  • step S108 the control unit 11 determines the branch destination of the process according to the determination result of step S107. If it is determined that the generated operation sequence is physically infeasible (if there are a plurality of candidates, all the candidates are infeasible), the control unit 11 determines that the operation sequence is physically infeasible. Discard the abstract action sequence after the abstract action corresponding to the determined action sequence. Then, the control unit 11 returns the process to step S102, and executes the process again from step S102. As a result, the control unit 11 generates a new abstract action sequence after the abstract action corresponding to the action sequence determined to be physically infeasible.
  • the control unit 11 when the action sequence that can be executed in the action layer cannot be obtained, the control unit 11 returns to the abstract layer and replans the abstract action sequence.
  • the range to be discarded is not limited to only after the target abstract action.
  • the control unit 11 discards the abstract action whose execution order precedes the abstract action of the target retroactively, and executes the process again from step S102 to create a new range for the discard. You may generate an abstract action sequence.
  • the control unit 11 proceeds to the next step S109.
  • Step S109 the control unit 11 determines whether or not the generation of the action sequence that can be executed in the real environment is successful for all the abstract actions included in the abstract action sequence generated by the symbolic planner 3. Successful generation of a motion sequence that can be executed in a real environment for all the abstract actions included in the generated abstract action sequence corresponds to the completion of motion plan generation.
  • the control unit 11 If there is an abstract action for which the motion sequence has not been generated (that is, the motion plan generation has not been completed), the control unit 11 returns the process to step S106. Then, the control unit 11 processes the abstract actions adopted as the abstract actions to be executed next to the abstract actions of the target for which the generation of the action sequence that can be executed in the real environment is successful, after step S106. To execute. As a result, the control unit 11 uses the motion planner 5 to convert the abstract actions included in the abstract action sequence into action sequences in the order of execution, and at the same time, the feasibility of the obtained action sequence in the real environment. Is determined.
  • control unit 11 By repeating the processes of steps S106 to S108 until there are no abstract actions for which no action sequence has been generated, the control unit 11 includes one or more action sequences so as to reach the target state from the start state. It is possible to generate an operation group in which all the operation sequences included in the operation group are determined to be physically feasible. When the generation of the motion plan is completed, the control unit 11 proceeds to the next step S110.
  • Step S110 the control unit 11 operates as the output unit 114 and outputs the motion group (motion plan) generated by using the motion planner 5.
  • the output destination and output format of the operation group may be appropriately determined according to the embodiment.
  • the control unit 11 may output the generated operation group to the output device 15 as it is.
  • the output motion group may be appropriately used for controlling the robot device R.
  • outputting the motion group may include controlling the motion of the robot device R by giving a command indicating the motion group to the robot device R.
  • the control unit 11 outputs the command information indicating the motion group to the controller to operate the robot device R. It may be controlled indirectly.
  • the control unit 11 may directly control the motion of the robot device R based on the generated motion group. As a result, it is possible to construct the motion planning device 1 that controls the motion of the robot device R according to the generated motion plan.
  • the motion planning device 1 may be configured to repeatedly execute a series of information processing in steps S101 to S110 at arbitrary timings.
  • FIG. 9 is a flowchart showing an example of a processing procedure related to machine learning of the cost estimation model 4 by the operation planning device 1 according to the present embodiment.
  • the processing procedure related to machine learning described below is only an example, and each step may be changed as much as possible. Further, regarding the following processing procedures related to machine learning, steps may be omitted, replaced, or added as appropriate according to the embodiment.
  • Step S201 the control unit 11 operates as a data acquisition unit 115, and acquires a plurality of learning data sets 60 each composed of a combination of the training sample 61 and the correct answer label 62.
  • Each learning data set 60 may be generated as appropriate.
  • a training sample 61 showing an abstract behavior for training is generated.
  • the training sample 61 may be manually generated as appropriate.
  • the training sample 61 may be obtained from an abstract action sequence generated by executing (or trying) the processing of the symbolic planner 3. If the cost estimation model 4 is configured to further accept input of information other than the information indicating abstract behavior candidates, the training sample 61 is appropriately generated to include other information for training. You can do it.
  • a correct answer label 62 showing the true value of the cost of the abstract action for training is generated.
  • the cost evaluation index may be selected as appropriate.
  • the cost metric may include at least one of operating time and drive amount.
  • the correct answer label 62 is at least one of the time required to execute the motion sequence generated by the motion planner 5 for the abstract action for training and the drive amount of the robot device R in the execution of the motion sequence. It may be configured to indicate the true value of the cost calculated according to.
  • the correct label 62 may be generated from the result of executing or simulating the motion sequence generated by the motion planner 5.
  • the true value of the cost may be appropriately set so that the longer the operating time / the larger the driving amount, the higher the cost, and the shorter the operating time / the smaller the driving amount, the smaller the cost.
  • the cost evaluation index may include the failure rate (success rate) of the operation plan.
  • the correct label 62 indicates the true value of the cost calculated according to the probability that the motion sequence generated by the motion planner 5 is physically infeasible for the abstract action for training. It may be configured as follows. The correct label 62 may be generated from the execution result of the processing of the motion planner 5 for the abstract action for training. The true value of the cost is that the more successful the motion planning (in other words, the more physically feasible the motion sequence can be generated in the real environment), the lower the cost, and the more the motion planning fails, the higher the cost. It may be set as appropriate.
  • the cost metric may include user feedback.
  • the correct label 62 may be configured to indicate the true value of the cost calculated in response to the user's feedback on the abstract behavior for training.
  • the user feedback may be obtained in any timing and format, and the correct label 62 may be appropriately generated from the result of the obtained feedback.
  • the process of step S104 can obtain user feedback on the abstract action sequence generated by the symbolic planner 3.
  • the correct label 62 may be generated from the result of the feedback in step S104.
  • the training data set 60 may be obtained from the result of the feedback in step S104.
  • the true value of the cost is so high that it is subject to at least one of changes, corrections, sorts, deletions, and rejections in the feedback, and is either maintained (not changed, used as is) or consented. It may be appropriately set so that the cost is evaluated to be smaller as it becomes a target.
  • the cost may be calculated using a plurality of evaluation indexes (for example, two or more evaluation indexes selected from the above four evaluation indexes). Further, the true value of the cost may be manually determined or modified. Then, after the correct answer label 62 is generated, the generated correct answer label 62 is associated with the training sample 61. This makes it possible to generate each training data set 60.
  • Each learning data set 60 may be automatically generated by the operation of a computer, or may be manually generated by at least partially including an operator operation.
  • Each generated training data set 60 may be stored in the storage unit 12. Further, each learning data set 60 may be generated by the motion planning device 1 or by a computer other than the motion planning device 1.
  • the control unit 11 automatically or manually executes the above generation process by the operation of the operator via the input device 14, so that each learning data set is generated. You may get 60.
  • the control unit 11 may acquire each learning data set 60 generated by the other computer via, for example, a network, a storage medium 91, or the like. ..
  • a part of the plurality of training data sets 60 may be generated by the motion planning device 1, and the others may be generated by one or a plurality of other computers.
  • the number of learning data sets 60 to be acquired is not particularly limited, and may be appropriately determined according to the embodiment so that machine learning can be carried out.
  • the control unit 11 proceeds to the next step S202.
  • Step S202 the control unit 11 operates as a learning processing unit 116, and performs machine learning of the cost estimation model 4 using the acquired plurality of learning data sets 60.
  • the control unit 11 prepares a neural network that constitutes a cost estimation model 4 to be processed by machine learning.
  • the structure of the neural network, the initial value of the weight of the connection between each neuron, and the initial value of the threshold value of each neuron may be given by the template or by the input of the operator. Further, when re-learning, the control unit 11 may prepare the cost estimation model 4 based on the learning result data obtained by the past machine learning.
  • control unit 11 makes the estimated value of the cost for the abstract action for training shown by the training sample 61 conform to the true value indicated by the corresponding correct label 62 for each training data set 60.
  • To train the cost estimation model 4. for this training process, a stochastic gradient descent method, a mini-batch gradient descent method, or the like may be used.
  • the control unit 11 inputs the training sample 61 of each training data set 60 to the input layer 41, and executes the arithmetic processing of the forward propagation of the cost estimation model 4. As a result of this calculation, the control unit 11 obtains an estimated cost for the abstract action for training from the output layer 45. The control unit 11 calculates the error between the obtained estimated value and the true value indicated by the corresponding correct label 62 for each training data set 60.
  • a loss function may be used to calculate the error (loss). The type of loss function used to calculate the error may be appropriately selected according to the embodiment.
  • control unit 11 calculates the calculated error gradient.
  • the control unit 11 calculates the error of the value of each calculation parameter of the cost estimation model 4 in order from the output side by using the gradient of the error calculated by the error back propagation method.
  • the control unit 11 updates the value of each calculation parameter of the cost estimation model 4 based on each calculated error.
  • the degree to which the value of each arithmetic parameter is updated may be adjusted by the learning rate.
  • the learning rate may be given by the operator's specification, or may be given as a set value in the program.
  • the control unit 11 adjusts the value of each calculation parameter of the cost estimation model 4 so that the sum of the calculated errors is small for each learning data set 60 by the above series of update processes. For example, the control unit 11 adjusts the value of each calculation parameter of the cost estimation model 4 by the above-mentioned series of update processes until a predetermined condition such as execution for a specified number of times or the sum of calculated errors being equal to or less than a threshold value is satisfied. May be repeated.
  • control unit 11 can generate a trained cost estimation model 4 that has acquired the ability to estimate the cost of an abstract action.
  • the control unit 11 proceeds to the next step S203.
  • Step S203 the control unit 11 generates information about the generated trained cost estimation model 4 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 16.
  • 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. Further, the external storage device may be, for example, an external storage device connected to the operation planning device 1 via the external interface 13.
  • the control unit 11 ends the processing procedure related to machine learning of the cost estimation model 4 according to this operation example.
  • the generation of the cost estimation model 4 trained by the processes of steps S201 to S203 is executed at any timing before or after the operation planning device 1 is started to be operated for the operation planning. good.
  • the control unit 11 may update or newly generate the learning result data 125 by repeating the processes of steps S201 to S203 periodically or irregularly. At the time of this repetition, the control unit 11 changes, modifies, adds, or deletes at least a part of the learning data set 60 used for machine learning by using the result of operating the operation planning device 1 for the operation planning. Etc. may be executed as appropriate. This may update the trained cost estimation model 4.
  • the motion planning device 1 performs the process of generating the motion plan of the robot device R in the abstract step (step S102) using the symbolic planner 3 and the physical step (step S102) using the motion planner 5. It is divided into two stages of S106 and step S107), and an operation plan is generated while exchanging between the two planners (3, 5).
  • step S102 the environment and conditions of the task can be simplified to an abstract level, and an action plan for carrying out the task can be generated. Therefore, even for a complicated task, it is possible to generate an abstract action plan (abstract action sequence) at a relatively low memory load and at high speed.
  • the operation plan of the robot device R is generated at a relatively light memory load and at high speed even for a complicated task while guaranteeing the feasibility in a real environment. be able to.
  • a desirable abstract action plan can be generated based on the cost. This makes it easier to generate a more appropriate motion plan.
  • the motion planning failure rate by the motion planner 5 as a cost evaluation index, it is possible to facilitate the generation of an appropriate motion plan for at least one of the operating time and the driving amount of the robot device R. ..
  • the motion planning failure rate by the motion planner 5 is obtained with respect to the abstract action sequence generated by the symbolic planner 3. In the process, the possibility of making a determination to return to step S102) can be reduced.
  • the symbolic planner 3 it is easy for the symbolic planner 3 to generate an abstract action plan that is highly feasible in the real environment, and as a result, the processing time until the final motion plan is obtained can be shortened.
  • the user feedback as an evaluation index of the cost, it is possible to facilitate the generation of a more appropriate motion plan according to the feedback.
  • the feedback may be obtained for the motion plan generated by the motion planner 5.
  • the motion planning device 1 may receive user feedback on the generated motion plan after the process of step S110.
  • the motion sequence included in the motion plan generated by the motion planner 5 is defined by the physical quantity accompanied by the mechanical drive of the robot device R. Therefore, the generated motion plan has a large amount of information and is not easily interpretable by the user (human).
  • user feedback may be obtained for the abstract action sequence by the processing of step S104, and the learning data set 60 used for machine learning in step S202 is the result of the feedback. May be obtained from.
  • the abstract action included in the action plan generated by the symbolic planner 3 may be defined by, for example, a collection of actions that can be expressed by symbols such as words, and is an amount of information as compared with a action sequence defined by a physical quantity. It is highly interpretable to the user. Therefore, according to the present embodiment, it is possible to suppress the consumption of resources (for example, a display) that outputs the plan generated by the planner to the user, and it is possible to easily obtain the feedback of the user.
  • a trained cost estimation model 4 for generating an appropriate motion plan can be easily generated and improved.
  • the operation planning device 1 is configured to be able to execute the processes of steps S201 to S203. Thereby, according to the present embodiment, the motion planning apparatus 1 can generate a trained cost estimation model 4 for generating a more appropriate motion plan. Further, it is possible to improve the capacity of the cost estimation model 4 while operating the motion planning device 1.
  • the structural relationship between the symbolic planner 3 and the cost estimation model 4 may be appropriately set according to the embodiment.
  • a part of the symbolic planner 3 is provided with arithmetic parameters that can be adjusted by machine learning, and this part may be treated as a cost estimation model 4.
  • a machine learning model may be prepared independently of the configuration of the symbolic planner 3, and the prepared machine learning model may be used as the cost estimation model 4.
  • the task set in the machine learning in step S202 (task handled in the training sample 61) and the task given at the time of operation of the motion plan (task handled in step S102) do not necessarily have to match. That is, the cost estimation model 4 trained in the ability to estimate the cost for one task may be used to estimate the cost of an abstract action for another task.
  • the cost estimation value obtained by the cost estimation model 4 is used as an index for determining the abstract behavior to be adopted from a plurality of candidates. That is, the cost estimate is treated as an index for evaluating the degree of recommendation for transition from one node to the next in the graph search of the abstract layer.
  • the cost estimate obtained by the cost estimation model 4 is referred to when selecting the next node.
  • the timing of referencing the cost estimate need not be limited to such an example.
  • the control unit 11 may refer to the estimated value of the cost after reaching the target node and determine whether or not to adopt the obtained route.
  • the estimated value of the cost by the trained cost estimation model 4 corresponds to the result of estimating the processing result of step S107 of the motion planner 5. .. Therefore, the trained cost estimation model 4 that has acquired the ability to estimate the cost using the failure rate of the motion plan by the motion planner 5 as an index may be treated as an motion estimator that simulates the motion of the motion planner 5.
  • FIG. 10 schematically illustrates an example of another usage pattern of the cost estimation model 4.
  • the cost estimation model 4 receives a part or all of the abstract action sequence generated by the symbolic planner 3, and the motion planner 5 operates with respect to a part or all of the abstract action sequence.
  • the result of estimating whether or not the plan is successful may be output as an estimated cost.
  • the control unit 11 may determine the possibility that the motion planning by the motion planner 5 will succeed based on the obtained estimated value of the cost. Then, when the motion planning is unlikely to succeed (for example, below the threshold value), the control unit 11 may execute the replanning of the abstract action sequence by the symbolic planner 3.
  • the cost estimation model 4 is not configured to be able to execute all the processes of the motion planner 5. Therefore, the operation of the cost estimation model 4 is lighter than the operation of the motion planner 5. Therefore, according to this modification, it is possible to determine whether or not to execute the replanning of the abstract action sequence by the symbolic planner 3 with a lightweight operation.
  • the cost estimation model 4 is configured to further output the degree of reliability (confidence) of the estimated value in addition to the estimated value of the cost corresponding to the failure rate of the motion planning. good.
  • the certainty may be calculated from the estimated cost. As an example, when the estimated cost is given between 0 and 1, the closer the estimated cost is 0 or 1, the higher the certainty, and the closer the estimated cost is 0.5, the lower the certainty. The value of certainty may be calculated so as to be.
  • the control unit 11 may use the fact that the certainty is low (for example, it is equal to or less than the threshold value) as a trigger for executing the process of the motion planner 5. That is, in step S102, when it is evaluated that the certainty is low, the control unit 11 interrupts the process of generating the abstract action sequence by the symbolic planner 3, and the abstract obtained by the process up to that point is interrupted.
  • the process of the motion planner 5 (process of step S106 and step S107) may be executed for a part of the action sequence. If the motion planner 5 succeeds in generating the motion plan, the control unit 11 may restart the process of generating the abstract action sequence by the symbolic planner 3.
  • Optimizing the cost estimated by the cost estimation model 4 may include simulating the operation of such a motion planner 5.
  • the motion planning device 1 generates a motion plan by executing the process of the motion planner 5 after the generation of the abstract action sequence is completed by the symbolic planner 3.
  • the timing of exchanging data between the symbolic planner 3 and the motion planner 5 does not have to be limited to such an example.
  • the motion planning device 1 may execute the process of the motion planner 5 at the stage where a part of the abstract action sequence is generated by the symbolic planner 3, and generate the motion plan for the part thereof.
  • the cost estimation model 4 is composed of a fully connected neural network.
  • the configuration of the neural network constituting the cost estimation model 4 is not limited to such an example, and may be appropriately selected depending on the embodiment.
  • each neuron may be connected to a specific neuron in an adjacent layer or to a neuron in a layer other than the adjacent layer. The connection relationship of each neuron may be appropriately determined according to the embodiment.
  • the neural network constituting the cost estimation model 4 may include other types of layers such as a convolution layer, a pooling layer, a normalization layer, and a dropout layer.
  • the cost estimation model 4 may be composed of other types of neural networks such as convolutional neural networks, recursive neural networks, and graph neural networks.
  • the type of machine learning model used in the cost estimation model 4 is not limited to the neural network, and may be appropriately selected according to the embodiment.
  • the machine learning method may be appropriately selected depending on the type of machine learning model.
  • a machine learning model such as a support vector machine or a decision tree model may be used for the cost estimation model 4.
  • the processing of steps S103 to S105 is omitted from the processing procedure of the operation planning device 1. You can do it.
  • the interface processing unit 117 may be omitted from the software configuration of the operation planning device 1.
  • the generation or relearning of the trained cost estimation model 4 by the processes of steps S201 to S203 may be executed by a computer other than the motion planning device 1.
  • the data acquisition unit 115 and the learning processing unit 116 may be omitted from the software configuration of the operation planning device 1.
  • the processing of steps S201 to S203 may be omitted from the processing procedure of the operation planning apparatus 1.
  • the trained cost estimation model 4 (learning result data 125) generated by another computer may be provided to the motion planning device 1 at an arbitrary timing via a network, a storage medium 91, or the like.
  • the motion planning device 1 may select an abstract action to be adopted from a plurality of candidates without using the cost estimation model 4.
  • the cost estimation model 4 may be omitted.
  • Motion planning device 11 ... Control unit, 12 ... Storage unit, 13 ... External interface, 14 ... input device, 15 ... output device, 16 ... drive, 81 ... motion planning program, 91 ... storage medium, 111 ... Information acquisition unit, 112 ... Action generation unit, 113 ... motion generation unit, 114 ... output unit, 115 ... Data acquisition unit, 116 ... Learning processing unit, 117 ... Interface processing unit, 121 ... Task information, 125 ... Learning result data, 3 ... Symbolic planner, 4 ... Cost estimation model, 41 ... Input layer, 43 ... Intermediate (hidden) layer, 45 ... Output layer, 5 ... Motion planner, 60 ... Learning dataset, 61 ... training sample, 62 ... correct label, R ... Robot device

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

実環境での実行可能性を保証しながら、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に動作計画を生成するための技術を提供する。本発明の一側面に係る動作計画装置は、シンボリックプランナを使用して、実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成する。動作計画装置は、モーションプランナを使用して、実行順に、各抽象的な行動から動作系列を生成すると共に、生成された動作系列がロボット装置により実環境において物理的に実行可能か否かを判定する。

Description

動作計画装置、動作計画方法、及び動作計画プログラム
 本発明は、ロボット装置の動作を計画するための動作計画装置、動作計画方法、及び動作計画プログラムに関する。
 例えば、製品を組み立てる等の様々なタスクを遂行するために、色々なタイプのロボット装置が利用されている。ロボット装置の機構、エンドエフェクタ、オブジェクト(ワーク、ツール、障害物等)等の要素は、タスクを遂行する環境に応じて多くのバリエーションを有しており、それら全てに対応したロボット装置の動作手順を人手でプログラミングして、ロボット装置に対象のタスクを教示することは困難である。特に、タスクが複雑になるほど、動作手順の全てをプログラミングすることは現実的ではない。そのため、機構、エンドエフェクタ、オブジェクト等の要素を決定した後、ロボット装置自体を人手で動かして、実行させる一連の動作における姿勢をレコードしながら、遂行させるタスクを直接的に教示する方法が採用される場合がある。
 しかしながら、この方法では、要素を変更する度に、タスクを遂行するための動作手順が変わる可能性があり、その動作手順をロボット装置に再度教示することになる。そのため、タスクの変更に伴う動作計画にかかる負担が大きくなってしまう。そこで、タスクを遂行するための動作計画を自動化する様々な方法が試みられている。自動計画法の一例として、古典的プランニングが知られている。古典的プランニングは、タスク環境を抽象化し、開始状態から目標状態まで状態を変化させる一連の行動(例えば、掴む、運搬する等)の計画を生成する方法である。その他、ツールの一例として、Moveit Task Constructor(非特許文献1)が知られている。Moveit Task Constructorによれば、行動の系列を人手により定義することで、ロボット装置に与える動作の指令であって、実環境で実行可能な動作の指令を自動的に生成することができる。
"MoveIt Task Constructor - moveit_tutorials Melodic documentation"、[online]、[令和2年10月19日検索]、インターネット<URL: https://ros-planning.github.io/moveit_tutorials/doc/moveit_task_constructor/moveit_task_constructor_tutorial.html>
 本件発明者らは、上記従来の自動計画法には、次のような問題点があることを見出した。すなわち、古典的プランニングによれば、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に、タスクを遂行するための行動の系列(解)を生成ことができる。また、ユーザ(オペレータ)が行動の系列を定義しなくても、動的に解を得ることができる。しかしながら、古典的プランニングは、タスクの環境を単純化した簡易的なシミュレーションに過ぎず、例えば、ロボット装置のスペック、オブジェクトの配置、ワークスペースの制約等の実環境を考慮していない。そのため、古典的プランニングにより得られる各行動が実環境で実行可能か否か不明である。一方、Moveit Task Constructorによれば、実環境で実行可能な動作の指令を自動的に生成することができる。しかしながら、行動の系列を人手で定義する分だけユーザに手間がかかってしまう。特に、複雑なタスクをロボット装置に遂行させる場合に、ユーザにかかる負担が大きくなってしまう。加えて、試行する全ての動作をメモリに保持するため、メモリの負荷が大きくなってしまう。
 本発明は、一側面では、このような事情を鑑みてなされたものであり、その目的は、実環境での実行可能性を保証しながら、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に動作計画を生成するための技術を提供することである。
 本発明は、上述した課題を解決するために、以下の構成を採用する。
 すなわち、本発明の一側面に係る動作計画装置は、ロボット装置に与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報を取得するように構成された情報取得部と、シンボリックプランナを使用して、前記タスク情報に基づき、前記開始状態から前記目標状態に到達するよう実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成するように構成された行動生成部と、モーションプランナを使用して、前記実行順に、前記抽象的行動系列に含まれる前記抽象的な行動を遂行するための、1つ以上の物理的な動作を含む動作系列を生成すると共に、生成された前記動作系列が前記ロボット装置により実環境において物理的に実行可能か否かを判定するように構成された動作生成部と、前記モーションプランナを使用して生成された1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を出力するように構成された出力部と、を備え、前記動作生成部において、前記動作系列が物理的に実行不能であると判定された場合、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄し、前記行動生成部において、前記シンボリックプランナを使用して、当該行動以降の新たな抽象的行動系列を生成するように構成される。
 当該構成に係る動作計画装置は、シンボリックプランナ及びモーションプランナの2つのプランナを使用することにより、ロボット装置の動作計画を生成する。まず、当該構成では、シンボリックプランナを使用することにより、タスクの開始状態から目標状態に到達するまでの抽象的行動系列(すなわち、抽象的な行動計画)を生成する。一例では、抽象的な行動は、ロボット装置の1つ以上の動作を含む任意の動作の集まりであって、記号(例えば、言葉等)で表現可能な動作の集まりで定義されてよい。つまり、シンボリックプランナを使用する段階では、タスクの環境及び条件を単純化して、タスクを遂行するための抽象的な行動計画を生成する。これにより、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に当該抽象的な行動計画を生成することができる。
 次に、当該構成では、モーションプランナを使用することにより、実行順に、抽象的な行動を遂行するための動作系列を生成する(すなわち、抽象的な行動を動作系列に変換する)と共に、生成された動作系列がロボット装置により実環境において物理的に実行可能か否かを判定する。つまり、モーションプランナを使用する段階では、シンボリックプランナにより生成された抽象的な行動計画の範囲で、実環境におけるロボット装置の動作をシミュレートしながら、ロボット装置の動作群(動作計画)を生成する。そして、実環境で実行可能な動作計画が生成不能である(すなわち、シンボリックプランナにより生成された行動計画が実環境で実行不能である)場合には、物理的に実行不能な行動以降の計画を破棄し、シンボリックプランナを使用する段階に戻って、抽象的行動系列を再計画する。これにより、モーションプランナを使用する段階では、実環境での実行可能性を保証しながら、シンボリックプランナの行動計画の範囲内に絞って効率的に動作計画を生成することができる。
 したがって、当該構成によれば、ロボット装置の動作計画を生成する過程を、シンボリックプランナを使用する段階及びモーションプランナを使用する段階の2つの段階に分けて、2つのプランナ間でやり取りしながら動作計画を生成する。これにより、実環境での実行可能性を保証しながら、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に動作計画を生成することができる。なお、ロボット装置の動作を制御するように動作計画装置が構成される場合、当該動作計画装置は、当該ロボット装置の動作を制御するための「制御装置」と称されてよい。
 上記一側面に係る動作計画装置において、前記シンボリックプランナは、抽象的な行動のコストを推定するように機械学習により訓練されたコスト推定モデルを含んでもよい。そして、前記行動生成部は、前記シンボリックプランナを使用して、前記コスト推定モデルにより推定されるコストが最適化されるよう前記抽象的行動系列を生成するように更に構成されてよい。コストは、例えば、動作時間、駆動量、動作計画の失敗率(成功率)、ユーザフィードバック等の任意の指標に基づき、望ましい行動ほど低く、望ましくない行動ほど高くなるように適宜設定されてよい。当該構成によれば、訓練されたコスト推定モデルを使用することで、コストに基づいて望ましい抽象的な行動計画をシンボリックプランナにより生成し、これにより、より適切な動作計画が生成されやすくすることができる。なお、各行動のコストがヒューリスティックに得られることに応じて、「コスト推定モデル」は、「ヒューリスティックモデル」と称されてもよい。
 上記一側面に係る動作計画装置は、訓練用の抽象的な行動を示す訓練サンプル及び前記訓練用の抽象的な行動のコストの真値を示す正解ラベルの組み合わせによりそれぞれ構成される複数の学習データセットを取得するように構成されたデータ取得部と、取得された複数の学習データセットを使用して、前記コスト推定モデルの機械学習を実施するように構成された学習処理部であって、前記機械学習は、各学習データセットについて、前記訓練サンプルにより示される前記訓練用の抽象的な行動に対するコストの推定値が前記正解ラベルにより示される真値に適合するものとなるように前記コスト推定モデルを訓練することにより構成される、学習処理部と、を更に備えてよい。当該構成によれば、動作計画装置において、より適切な動作計画を生成するための訓練済みのコスト推定モデルを生成することができる。また、動作計画装置を運用しながら、コスト推定モデルの能力の改善を図ることができる。
 上記一側面に係る動作計画装置において、前記正解ラベルは、前記訓練用の抽象的な行動に対して前記モーションプランナにより生成される動作系列の実行にかかる時間、及び当該動作系列の実行における前記ロボット装置の駆動量の少なくともいずれかに応じて算出されたコストの真値を示すように構成されてよい。当該構成によれば、ロボット装置の動作時間及び駆動量の少なくとも一方を指標にコストを算出する能力を獲得するようにコスト推定モデルを訓練することができる。これにより、ロボット装置の動作時間及び駆動量の少なくとも一方に関して適切な動作計画が生成されやすくすることができる。
 上記一側面に係る動作計画装置において、前記正解ラベルは、前記訓練用の抽象的な行動に対して前記モーションプランナにより生成される動作系列が物理的に実行不能と判定される確率に応じて算出されたコストの真値を示すように構成されてよい。当該構成によれば、モーションプランナによる動作計画の失敗率を指標にコストを算出する能力を獲得するようにコスト推定モデルを訓練することができる。これにより、シンボリックプランナにより生成される抽象的行動系列に関して、モーションプランナによる動作計画の失敗率(換言すると、シンボリックプランナを使用する段階に戻って抽象的行動系列を再計画する可能性)を低減することができる。つまり、実環境で実行可能性の高い抽象的な行動計画をシンボリックプランナにより生成することができ、これにより、最終的な動作計画を得るまでの処理時間の短縮を図ることができる。
 上記一側面に係る動作計画装置において、前記正解ラベルは、前記訓練用の抽象的な行動に対するユーザのフィードバックに応じて算出されたコストの真値を示すように構成されてよい。当該構成によれば、ユーザのフィードバックにより与えられる知見を指標にコストを算出する能力を獲得するようにコスト推定モデルを訓練することができる。これにより、フィードバックに応じてより適切な動作計画を生成されやすくすることができる。
 上記一側面に係る動作計画装置は、シンボリックプランナを使用して生成された抽象的行動系列に含まれる抽象的な行動の一覧を前記ユーザに対して出力し、出力された前記抽象的な行動の一覧に対する前記ユーザのフィードバックを受け付けるように構成されたインタフェース処理部を更に備えてよい。加えて、前記データ取得部は、前記抽象的な行動の一覧に対する前記ユーザのフィードバックの結果から前記学習データセットを取得するように更に構成されてよい。ユーザのフィードバックは、モーションプランナにより生成される動作計画に対して獲得されてもよい。ただし、モーションプランナにより生成される動作計画に含まれる動作系列は、ロボット装置の機械的な駆動を伴う物理量(例えば、エンドエフェクタの軌道等)により定義される。そのため、生成される動作計画は、情報量が多いものであり、かつユーザ(人間)にとって解釈性の低いものである。一方で、シンボリックプランナにより生成される行動計画に含まれる抽象的な行動は、例えば、言葉等の記号で表現可能な動作の集まりで定義されてよく、物理量で定義される動作系列と比べると、情報量が少なく、かつユーザにとって解釈性の高いものである。したがって、当該構成によれば、プランナにより生成される計画をユーザに対して出力する資源(例えば、ディスプレイ)の消費を抑え、かつ当該ユーザのフィードバックを得やすくすることができ、これにより、より適切な動作計画を生成するための訓練済みのコスト推定モデルを生成及び改善しやすくすることができる。
 上記一側面に係る動作計画装置において、抽象的な行動に対応するエッジ及び抽象的な行動の実行により変更される対象となる抽象的属性に対応するノードを備えるグラフにより前記タスクの状態空間が表現されてよく、前記シンボリックプランナは、開始状態に対応する開始ノードから目標状態に対応する目標ノードまでの経路を前記グラフ内で探索することで、前記抽象的行動系列を生成するように構成されてよい。当該構成によれば、シンボリックプランナを簡易に生成することができ、これにより、動作計画装置の構築にかかる負担を減らすことができる。
 上記一側面に係る動作計画装置において、前記動作群を出力することは、前記動作群を示す指令を前記ロボット装置に与えることで、前記ロボット装置の動作を制御することを含んでよい。当該構成によれば、生成した動作計画に従ってロボット装置の動作を制御する動作計画装置を構築することができる。なお、当該構成に係る動作計画装置は、「制御装置」と称されてよい。
 上記一側面に係る動作計画装置において、前記ロボット装置は、1つ以上のロボットハンドを備えてよく、前記タスクは、1つ以上の部品により構成される製品の組み立て作業であってよい。当該構成によれば、ロボットハンドにより製品の組み立て作業を遂行する場面において、実環境での実行可能性を保証しながら、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に動作計画を生成することができる。
 なお、上記各形態に係る動作計画装置の別の態様として、本発明の一側面は、以上の各構成の全部又はその一部を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
 例えば、本発明の一側面に係る動作計画方法は、コンピュータが、ロボット装置に与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報を取得するステップと、シンボリックプランナを使用して、前記タスク情報に基づき、前記開始状態から前記目標状態に到達するよう実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成するステップと、モーションプランナを使用して、前記実行順に、前記抽象的行動系列に含まれる前記抽象的な行動を遂行するための、1つ以上の物理的な動作を含む動作系列を生成するステップと、生成された前記動作系列が前記ロボット装置により実環境において物理的に実行可能か否かを判定するステップと、前記モーションプランナを使用して生成された1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を出力するステップと、を実行する情報処理方法であって、前記判定するステップにおいて、前記動作系列が物理的に実行不能であると判定された場合、前記コンピュータは、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄し、前記抽象的行動系列を生成するステップに戻って、前記シンボリックプランナを使用して、当該行動以降の新たな抽象的行動系列を生成する、情報処理方法である。
 また、例えば、本発明の一側面に係る動作計画プログラムは、コンピュータに、ロボット装置に与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報を取得するステップと、シンボリックプランナを使用して、前記タスク情報に基づき、前記開始状態から前記目標状態に到達するよう実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成するステップと、モーションプランナを使用して、前記実行順に、前記抽象的行動系列に含まれる前記抽象的な行動を遂行するための、1つ以上の物理的な動作を含む動作系列を生成するステップと、生成された前記動作系列が前記ロボット装置により実環境において物理的に実行可能か否かを判定するステップと、前記モーションプランナを使用して生成された1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を出力するステップと、を実行させるためのプログラムであって、前記判定するステップにおいて、前記動作系列が物理的に実行不能であると判定された場合、前記コンピュータに、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄させ、前記抽象的行動系列を生成するステップに戻って、前記シンボリックプランナを使用して、当該行動以降の新たな抽象的行動系列を生成させる、プログラムである。
 本発明によれば、実環境での実行可能性を保証しながら、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に動作計画を生成することができる。
図1は、本発明が適用される場面の一例を模式的に例示する。 図2は、実施の形態に係る動作計画装置のハードウェア構成の一例を模式的に例示する。 図3は、実施の形態に係る動作計画装置のソフトウェア構成の一例を模式的に例示する。 図4は、実施の形態に係る動作計画装置によるコスト推定モデルの機械学習の過程の一例を模式的に例示する。 図5は、実施の形態に係る動作計画装置による動作計画に関する処理手順の一例を示すフローチャートである。 図6は、実施の形態に係るシンボリックプランナによる抽象的行動系列の生成過程の一例を模式的に例示する。 図7は、実施の形態に係る動作計画装置による抽象的行動系列の出力形態の一例を模式的に例示する。 図8は、実施の形態に係るモーションプランナによる動作系列の生成過程の一例を模式的に例示する。 図9は、実施の形態に係る動作計画装置によるコスト推定モデルの機械学習に関する処理手順の一例を示すフローチャートである。 図10は、コスト推定モデルの他の利用形態の一例を模式的に例示する。
 以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
 §1 適用例
 図1は、本発明を適用した場面の一例を模式的に例示する。本実施形態に係る動作計画装置1は、ロボット装置Rにタスクを遂行させるための動作計画を生成するように構成されたコンピュータである。
 まず、動作計画装置1は、ロボット装置Rに与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報121を取得する。ロボット装置Rの種類は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。ロボット装置Rは、例えば、産業用ロボット(マニピュレータ等)、自動的に移動可能な移動体等であってよい。産業用ロボットは、例えば、垂直多関節ロボット、スカラロボット、パラレルリンクロボット、直交ロボット、協調ロボット等であってよい。自動的に移動可能な移動体は、例えば、ドローン、自度運転可能に構成された車両、モバイルロボット等であってよい。ロボット装置Rは、複数台のロボットにより構成されてよい。タスクは、例えば、製品の組み立て等、ロボット装置Rが遂行可能な任意の作業により構成されてよい。タスクを遂行する環境は、ロボット装置R以外に、例えば、ワーク(部品等)、ツール(ドライバ等)、障害物等の対象物により規定されてよい。一例として、ロボット装置Rは、1つ以上のロボットハンドを備えてよく、タスクは、1つ以上の部品により構成される製品の組み立て作業であってよい。この場合、ロボットハンドにより製品を組み立てる作業のための動作計画を生成することができる。タスク情報121は、タスクの開始状態及び目標状態を示す情報を含んでいれば、それ以外の情報(例えば、タスクの環境に関する情報)を含んでいてもよい。
 次に、動作計画装置1は、シンボリックプランナ3を使用して、タスク情報121に基づき、開始状態から目標状態に到達するように実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成する。抽象的行動系列は、抽象的な行動計画又はシンボリックプランと読み替えられてよい。続いて、動作計画装置1は、モーションプランナ5を使用して、行動計画の実行順に、抽象的行動系列に含まれる抽象的な行動を動作系列に変換する。動作系列は、対象の抽象的な行動を達成可能に1つ以上の物理的な動作を含むよう適宜構成されてよい。これにより、動作計画装置1は、実行順に、抽象的な行動を遂行するための動作系列を生成する。この動作系列を生成する処理と共に、動作計画装置1は、モーションプランナ5を使用して、生成された動作系列がロボット装置Rにより実環境において物理的に実行可能か否かを判定する。
 一例では、抽象的な行動は、ロボット装置Rの1つ以上の動作を含む任意の動作の集まりであって、記号(例えば、言葉等)で表現可能な動作の集まりで定義されてよい。抽象的な行動は、例えば、部品を掴む、運ぶ、位置決めする等の意味のある(すなわち、人間が理解可能な)動作の集まりで定義されてよい。一方で、物理的な動作は、ロボット装置Rの機械的な駆動を伴う動き(物理量)により定義されてよい。物理的な動作は、例えば、エンドエフェクタの軌道等の制御対象における制御量により定義されてよい。
 これらに応じて、開始状態は、タスクを遂行する開始点となるロボット装置R及び対象物の抽象的属性及び物理的状態により定義されてよい。目標状態は、遂行するタスクの目標点となるロボット装置R及び対象物の抽象的属性により定義されてよい。目標状態におけるロボット装置R及び対象物の物理的状態は予め規定されていてもよいし、規定されていなくてもよい(この場合、目標状態における物理的状態は、例えば、モーションプランナ5の実行結果等に基づき、目標状態における抽象的属性から適宜決定されてよい)。「目標」は、タスクの最終的な目標及び中間的な目標のいずれであってもよい。抽象的属性は、抽象的な行動の実行により変更される対象となるものである。抽象的属性は、例えば、フリーである、ワークを保持している、ツールを保持している、ロボットハンドに保持されている、所定の位置で固定されている等の抽象的な(シンボリックな)状態を含むように構成されてよい。物理的状態は、例えば、位置、姿勢、向き等の実環境における物理量により定義されてよい。
 シンボリックプランナ3は、開始状態及び目標状態を示す情報が与えられると、当該開始状態から目標状態に到達するまでの抽象的行動系列を生成する処理を実行可能に適宜構成されてよい。シンボリックプランナ3は、例えば、古典的プランニング(グラフ探索)等の所定の規則に従って、開始状態から目標状態に近づくように実行可能な抽象的な行動を選択する処理を繰り返すことで、抽象的行動系列を生成するように構成されてよい。モーションプランナ5は、抽象的行動系列の少なくとも一部を示す情報が与えられると、抽象的な行動を遂行するための動作系列を生成する処理及び生成された動作系列をロボット装置Rが実環境において物理的に実行可能か否かを判定する処理を実行可能に適宜構成されてよい。一例では、モーションプランナ5は、所定の規則に従って抽象的な行動を動作系列に変換する変換器及び得られた動作系列を物理的にシミュレートする物理シミュレータにより構成されてよい。
 シンボリックプランナ3により生成された抽象的な行動計画が実環境で実行不能である(すなわち、抽象的行動系列に実環境で実行不能な抽象的な行動が含まれている)場合、モーションプランナ5の処理において、その原因となる抽象的な行動に対して生成された動作系列は、物理的に実行不能であると判定される。この場合、動作計画装置1は、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄する。そして、動作計画装置1は、シンボリックプランナ3を使用して、当該抽象的な行動以降の新たな抽象的行動系列を生成する。つまり、モーションプランナ5を使用する段階において、抽象的行動系列に実環境で実行不能な抽象的な行動が含まれていると判明した(実環境で実行可能な動作系列の生成が失敗した)場合、動作計画装置1は、シンボリックプランナ3を使用する段階に戻って、抽象的行動系列を再計画する。
 動作計画装置1は、全ての動作系列が実環境で実行可能であると判定される(すなわち、全ての抽象的な行動について実環境で実行可能な動作系列の生成が成功する)まで、上記のように、シンボリックプランナ3及びモーションプランナ5の処理を交互に繰り返す。これにより、動作計画装置1は、開始状態から目標状態に到達するように、1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を生成することができる。或いは、最初のシンボリックプランナ3の使用により実環境で実行可能な行動計画が生成された場合には、動作計画装置1は、シンボリックプランナ3及びモーションプランナ5の処理を1回ずつ実行することで(処理を繰り返すことなく)、当該動作群を生成することができる。
 生成された動作群は、タスクを遂行する(すなわち、開始状態から目標状態に到達する)ためのロボット装置Rの動作計画に相当する。動作計画装置1は、モーションプランナ5を使用して生成された動作群を出力する。なお、動作群を出力することは、動作群を示す指令をロボット装置Rに与えることで、ロボット装置Rの動作を制御することを含んでよい。ロボット装置Rの動作を制御するように動作計画装置1が構成される場合、当該動作計画装置1は、ロボット装置Rの動作を制御するための「制御装置」と読み替えられてよい。
 以上のとおり、本実施形態では、ロボット装置Rの動作計画を生成する過程を、シンボリックプランナ3を使用する抽象段階及びモーションプランナ5を使用する物理段階の2つの段階に分け、2つのプランナ(3、5)間でやり取りしながら動作計画を生成する。シンボリックプランナ3を使用する抽象段階では、複雑な実環境のレベルではなく抽象的なレベルにタスクの環境及び条件を単純化して、タスクを遂行するための行動計画を生成することができる。そのため、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に抽象的な行動計画(抽象的行動系列)を生成することができる。また、本実施形態では、モーションプランナ5により動作系列を生成する処理は、シンボリックプランナ3の処理結果を利用する(すなわち、シンボリックプランナ3の処理を実行した後に実行される)ように構成されている。これにより、モーションプランナ5を使用する物理段階では、実環境での実行可能性を保証しながら、シンボリックプランナ3の行動計画の範囲内に絞って効率的に動作計画を生成することができる。したがって、本実施形態によれば、実環境での実行可能性を保証しながら、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速にロボット装置Rの動作計画を生成することができる。
 §2 構成例
 [ハードウェア構成]
 図2は、本実施形態に係る動作計画装置1のハードウェア構成の一例を模式的に例示する。図2に示されるとおり、本実施形態に係る動作計画装置1は、制御部11、記憶部12、外部インタフェース13、入力装置14、出力装置15、及びドライブ16が電気的に接続されたコンピュータである。なお、図2では、外部インタフェースを「外部I/F」と記載している。
 制御部11は、ハードウェアプロセッサの一例であるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、動作計画プログラム81等の各種情報を記憶する。
 動作計画プログラム81は、動作計画の生成に関する後述の情報処理(図5及び図9)を動作計画装置1に実行させるためのプログラムである。動作計画プログラム81は、当該情報処理の一連の命令を含む。詳細は後述する。
 外部インタフェース13は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース13の種類及び数は任意に選択されてよい。ロボット装置Rの動作を制御するように動作計画装置1が構成される場合、動作計画装置1は、外部インタフェース13を介して、ロボット装置Rに接続されてよい。なお、動作計画装置1及びロボット装置Rの接続方法は、このような例に限定されなくてよく、実施の形態に応じて適宜選択されてよい。その他の一例として、動作計画装置1及びロボット装置Rは、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等の通信インタフェースを介して互いに接続されてよい。
 入力装置14は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置15は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。ユーザ等のオペレータは、入力装置14及び出力装置15を利用することで、動作計画装置1を操作することができる。
 ドライブ16は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラム等の各種情報を読み込むためのドライブ装置である。記憶媒体91は、コンピュータその他装置、機械等が、記憶されたプログラム等の各種情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。上記動作計画プログラム81は、記憶媒体91に記憶されていてもよい。動作計画装置1は、この記憶媒体91から、上記動作計画プログラム81を取得してもよい。なお、図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限られなくてもよく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。ドライブ16の種類は、記憶媒体91の種類に応じて任意に選択されてよい。
 なお、動作計画装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。外部インタフェース13、入力装置14、出力装置15及びドライブ16の少なくともいずれかは省略されてもよい。動作計画装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、動作計画装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC(Personal Computer)、PLC(programmable logic controller)等であってもよい。
 [ソフトウェア構成]
 図3は、本実施形態に係る動作計画装置1のソフトウェア構成の一例を模式的に例示する。動作計画装置1の制御部11は、記憶部12に記憶された動作計画プログラム81をRAMに展開する。そして、制御部11は、RAMに展開された動作計画プログラム81に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、本実施形態に係る動作計画装置1は、情報取得部111、行動生成部112、動作生成部113、出力部114、データ取得部115、学習処理部116、及びインタフェース処理部117をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、動作計画装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
 情報取得部111は、ロボット装置Rに与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報121を取得するように構成される。行動生成部112は、シンボリックプランナ3を備える。行動生成部112は、シンボリックプランナ3を使用して、タスク情報121に基づき、開始状態から目標状態に到達するよう実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成するように構成される。動作生成部113は、モーションプランナ5を備える。動作生成部113は、モーションプランナ5を使用して、実行順に、抽象的行動系列に含まれる抽象的な行動を遂行するための、1つ以上の物理的な動作を含む動作系列を生成すると共に、生成された動作系列がロボット装置Rにより実環境において物理的に実行可能か否かを判定するように構成される。なお、シンボリックプランナ3及びモーションプランナ5それぞれの構成情報(不図示)の記憶先は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。一例では、それぞれの構成情報は、動作計画プログラム81内に含まれてもよいし、動作計画プログラム81とは別にメモリ(記憶部12、記憶媒体91、外部記憶装置等)に保持されてよい。
 動作計画装置1は、動作生成部113において、動作系列が物理的に実行不能であると判定された場合、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄し、行動生成部112において、シンボリックプランナ3を使用して、当該行動以降の新たな抽象的行動系列を生成するように構成される。出力部114は、モーションプランナ5を使用して生成された1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を出力するように構成される。
 シンボリックプランナ3は、所定の規則に従って、抽象的行動系列を生成するように適宜構成されてよい。本実施形態では、シンボリックプランナ3は、抽象的な行動のコストを推定するよう機械学習により訓練されたコスト推定モデル(ヒューリスティックモデル)4を含むように更に構成されてよい。これに応じて、行動生成部112は、シンボリックプランナ3を使用して、訓練されたコスト推定モデル4により推定されるコストが最適化されるよう抽象的行動系列を生成するように更に構成されてよい。
 コスト推定モデル4は、採用する抽象的な行動の候補が与えられると、当該候補のコストの推定値(すなわち、コストを推定した結果)を出力するように適宜構成されてよい。抽象的な行動の候補は、直接的に指定されてもよいし、或いは、現在の状態及び次の状態の候補の組み合わせにより間接的に指定されてもよい。また、コスト推定モデル4に入力される情報は、抽象的な行動の候補を示す情報に限られなくてよい。コスト推定モデル4は、抽象的な行動の候補を示す情報以外に、コストの推定に利用可能な他の情報(例えば、タスク情報121の少なくとも一部)の入力を更に受け付けるように構成されてよい。
 訓練済みのコスト推定モデル4は、動作計画装置1により生成されてもよいし、或いは動作計画装置1以外の他のコンピュータにより生成されてよい。本実施形態では、動作計画装置1は、データ取得部115及び学習処理部116を備えていることにより、訓練済みのコスト推定モデル4の生成及びコスト推定モデル4の再訓練を実行可能に構成される。
 図4は、本実施形態に係るコスト推定モデル4の機械学習の過程の一例を模式的に例示する。データ取得部115は、訓練サンプル61及び正解ラベル62の組み合わせによりそれぞれ構成される複数の学習データセット60を取得するように構成される。訓練サンプル61は、訓練用の抽象的な行動を示すように適宜構成されてよい。コスト推定モデル4が他の情報の入力を更に受け付けるように構成される場合、訓練サンプル61は、訓練用の他の情報を更に含むように構成されてよい。正解ラベル62は、対応する訓練サンプル61により示される訓練用の抽象的な行動のコストの真値を示すように適宜構成されてよい。
 学習処理部116は、取得された複数の学習データセット60を使用して、コスト推定モデル4の機械学習を実施するように構成される。機械学習は、各学習データセット60について、訓練サンプル61により示される訓練用の抽象的な行動に対するコストの推定値が対応する正解ラベル62により示される真値に適合するものとなるようにコスト推定モデル4を訓練することにより構成される。
 コストは、例えば、動作時間、駆動量、動作計画の失敗率、ユーザフィードバック等の任意の指標に基づき、推奨される行動ほど低く、推奨されない行動ほど高くなるように適宜設定されてよい。コストの数値表現は、適宜設定されてよい。一例では、コストは、数値に比例する(すなわち、数値が大きいほどコストが高い)ように表現されてもよい。その他の一例では、コストは、数値に反比例する(すなわち、数値が小さいほどコストが高い)ように表現されてもよい。
 動作系列の実行にかかる時間(動作時間)及び動作系列の実行におけるロボット装置Rの駆動量は、タスクを遂行するために得られた動作計画により評価可能である。そのため、動作時間及び駆動量の少なくとも一方をコストの評価指標として用いる場合、各学習データセット60は、モーションプランナ5による動作群の生成結果から取得されてよい。
 動作計画の失敗率(すなわち、抽象的な行動に対してモーションプランナ5により生成される動作系列が物理的に実行不能と判定される確率)は、シンボリックプランナ3により得られる抽象的行動系列に対してモーションプランナ5の処理を実行することで評価可能である。そのため、動作計画の失敗率をコストの評価指標として用いる場合、各学習データセット60は、シンボリックプランナ3により得られる抽象的行動系列に対するモーションプランナ5の処理の実行結果から取得されてよい。なお、動作計画の成功率(すなわち、抽象的な行動に対してモーションプランナ5により生成される動作系列が物理的に実行可能と判定される確率)は、コストの評価指標として上記失敗率と同等に取り扱い可能である。したがって、動作計画の失敗率に応じてコストを評価することは、動作計画の成功率に応じてコストを評価することを含んでよい。また、失敗率(成功率)は、必ずしも0から1の範囲で表現されなくてよい。他の一例として、失敗率は、動作計画が成功する(コストが0)及び失敗する(コストが無限大)の二値で表現されてもよい。
 ユーザのフィードバックをコストの評価指標として用いる場合、各学習データセット60は、ユーザから得られたフィードバックの結果から適宜取得されてよい。フィードバックのタイミング及び形式はそれぞれ、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。本実施形態では、インタフェース処理部117により、当該ユーザのフィードバックを取得可能である。すなわち、インタフェース処理部117は、シンボリックプランナ3を使用して生成された抽象的行動系列に含まれる抽象的な行動の一覧をユーザに対して出力し、出力された抽象的な行動の一覧に対する当該ユーザのフィードバックを受け付けるように構成される。各学習データセット60は、抽象的な行動の一覧に対するユーザのフィードバックの結果から取得されてよい。
 なお、いずれの評価指標を採用する場合であっても、学習データセット60を収集するタイミングは、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。全ての学習データセット60は、動作計画装置1を運用する前に収集されてもよい。或いは、複数の学習データセット60の少なくとも一部は、動作計画装置1を運用しながら収集されてよい。
 (コスト推定モデル)
 コスト推定モデル4は、機械学習により調整可能な演算パラメータを有する機械学習モデルにより適宜構成されてよい。機械学習モデルの構成及び種類はそれぞれ、実施の形態に応じて適宜選択されてよい。
 一例として、コスト推定モデル4は、全結合型ニューラルネットワークにより構成されてよい。図4の例では、コスト推定モデル4は、入力層41、1つ以上の中間(隠れ)層43、及び出力層45を備えている。中間層43の数は、実施の形態に応じて適宜選択されてよい。その他の一例では、中間層43は、省略されてもよい。コスト推定モデル4を構成するニューラルネットワークの層の数は、実施の形態に応じて適宜選択されてよい。
 各層(41、43、45)は、1又は複数のニューロン(ノード)を備える。各層(41、43、45)に含まれるニューロンの数は、実施の形態に応じて適宜決定されてよい。入力層41のニューロンの数は、例えば、入力の次元数等の入力形態に応じて適宜決定されてよい。出力層45のニューロンの数は、例えば、出力の次元数等の出力形態に応じて適宜決定されてよい。図4の例では、各層(41、43、45)に含まれる各ニューロンは、隣接する層の全てのニューロンと結合される。
 ただし、コスト推定モデル4の構造は、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。他の一例として、複数種類の情報に基づきコストを推定するようにコスト推定モデル4が構成される場合、コスト推定モデル4の少なくとも入力側の一部は、各種類の情報の入力を別々に受け付けられるように複数のモジュールに分割されていてよい。具体的な構成の一例として、コスト推定モデル4は、対応する情報の入力を受け付けるようにそれぞれ入力側に並列に配置される複数の特徴抽出モジュール、及び各特徴抽出モジュールの出力を受け付けるように出力側に配置される結合モジュールを備えてよい。各特徴抽出モジュールは、対応する情報から特徴量を抽出するように適宜構成されてよい。結合モジュールは、各特徴抽出モジュールにより各情報から抽出される特徴量を結合し、コストの推定値を出力するように適宜構成されてよい。
 各層(41、43、45)の各結合には、重み(結合荷重)が設定される。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。閾値は、活性化関数により表現されてよい。この場合、各入力と各重みとの積の和を活性化関数に入力し、活性化関数の演算を実行することで、各ニューロンの出力が決定される。活性化関数の種類は任意に選択されてよい。各層(41、43、45)に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、演算パラメータの一例である。
 当該コスト推定モデル4の機械学習では、学習処理部116は、各学習データセット60の訓練サンプル61を訓練データ(入力データ)として使用し、正解ラベル62を正解データ(教師信号)として使用する。すなわち、学習処理部116は、各学習データセット60の訓練サンプル61を入力層41に入力し、コスト推定モデル4の順伝播の演算処理を実行する。この演算により、学習処理部116は、訓練用の抽象的な行動に対するコストの推定値を出力層45から取得する。学習処理部116は、得られたコストの推定値と入力した訓練サンプル61に関連付けられた正解ラベル62により示される真値(正解)との間の誤差を算出する。学習処理部116は、各学習データセット60について、算出される誤差が小さくなるように、コスト推定モデル4の各演算パラメータの値の調整を繰り返す。これにより、訓練済みのコスト推定モデル4を生成することができる。
 学習処理部116は、当該機械学習により生成された訓練済みのコスト推定モデル4を再生するための学習結果データ125を生成するように構成されてよい。訓練済みのコスト推定モデル4を再生可能であれば、学習結果データ125の構成は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。一例では、学習結果データ125は、上記機械学習の調整により得られたコスト推定モデル4の各演算パラメータの値を示す情報を含んでもよい。場合によって、学習結果データ125は、コスト推定モデル4の構造を示す情報を更に含んでもよい。コスト推定モデル4の構造は、例えば、ニューラルネットワークにおける入力層から出力層までの層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等により特定されてよい。学習処理部116は、生成された学習結果データ125を所定の記憶領域に保存するように構成されてよい。
 (その他)
 動作計画装置1の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、動作計画装置1の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、上記ソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。上記各モジュールは、ハードウェアモジュールとして実現されてもよい。また、動作計画装置1のソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
 §3 動作例
 (1)動作計画
 図5は、本実施形態に係る動作計画装置1による動作計画に関する処理手順の一例を示すフローチャートである。以下で説明する動作計画に関する処理手順は、動作計画方法の一例である。ただし、以下で説明する動作計画に関する処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の動作計画に関する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
 (ステップS101)
 ステップS101では、制御部11は、情報取得部111として動作し、ロボット装置Rに与えるタスクの開始状態及び目標状態に関する情報を含むタスク情報121を取得する。
 タスク情報121を取得する方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。一例では、タスク情報121は、入力装置14を介したユーザの入力結果として取得されてよい。その他の一例では、タスク情報121は、タスクの開始状態及び目標状態をカメラ等のセンサにより観測した結果として取得されてよい。開始状態及び目標状態を特定可能であれば、タスク情報121のデータ形式は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。タスク情報121は、例えば、数値データ、テキストデータ、画像データ等により構成されてよい。タスクを特定するため、開始状態は、抽象段階及び物理段階それぞれについて適宜指定されてよい。目標状態は、抽象段階及び物理段階のうち少なくとも抽象段階について適宜指定されてよい。タスク情報121は、開始状態及び目標状態それぞれを示す情報以外に、抽象的行動系列又は動作群の生成に利用可能な他の情報を更に含んでもよい。タスク情報121を取得すると、制御部11は、次のステップS102に処理を進める。
 (ステップS102)
 ステップS102では、制御部11は、行動生成部112として動作し、タスク情報121を参照すると共に、シンボリックプランナ3を使用して、開始状態から目標状態に到達するように抽象的な行動のプランニングを行う。これにより、制御部11は、タスク情報121に基づいて、開始状態から目標状態に到達するように実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成する。
 図6は、本実施形態に係るシンボリックプランナ3による抽象的行動系列の生成過程の一例を模式的に例示する。抽象段階におけるタスクの状態空間は、抽象的な行動に対応するエッジ及び抽象的な行動の実行により変更される対象となる抽象的属性に対応するノードを備えるグラフにより表現されてよい。つまり、シンボリックプランナ3の関与する状態空間は、抽象的な行動により変化する抽象的属性(状態)の集合により構成されてよい。これに応じて、シンボリックプランナ3は、開始状態に対応する開始ノードから目標状態に対応する目標ノードまでの経路をグラフ内で探索することで、抽象的行動系列を生成するように構成されてよい。これにより、シンボリックプランナ3を簡易に生成することができ、その結果、動作計画装置1の構築にかかる負担を減らすことができる。なお、開始状態に対応する開始ノードに与えられる抽象的属性は、抽象段階における開始状態を示す情報の一例である。
 抽象的属性は、ロボット装置R及び対象物それぞれの抽象的な状態を含むように適宜設定されてよい。図6の一例では、少なくとも2つのロボットハンド(ロボットA、ロボットB)、1つ以上の部品(部品C)、及び1つ以上の道具(道具Z)が与えられ、部品Cを所定の場所に固定する作業を含むタスクについて抽象的行動系列を生成する場面を示している。抽象的属性は、各ロボット(A、B)、部品C、及び道具Zの抽象的な状態を含んでいる。開始状態では、各ロボット(A、B)、部品C、及び道具Zはフリーである。目標状態では、各ロボット(A、B)及び道具Zはフリーであり、部品Cは、所定の場所に固定される。このような条件で、抽象的な行動のプランニングの結果として、ロボットAにより部品Cを保持する行動が最初の行動として選択された場面が示されている。なお、開始ノードから目標ノードに到達するまでの間に経由するノードは、中間状態に対応する。
 タスクの状態空間がこのようなグラフにより表現可能である場合、シンボリックプランナ3は、現在の状態及び目標状態が与えられると、次の状態(すなわち、次に経由するノード)を選択するように構成されてよい。次の状態を選択することは、現在の状態において実行する抽象的な行動を選択することに相当する。そのため、次の状態を選択することは、採用する抽象的な行動を選択することと同義に取り扱われてよい。シンボリックプランナ3は、現在の状態の初期値に開始状態をセットし、次の状態として目標状態が選択されるまで、次の状態の選択及びノードの遷移を繰り返すことにより、開始ノードから目標ノードまでの経路をグラフ内で探索し、抽象的行動系列を生成することができる。
 選択可能な次の状態(採用可能な抽象的な行動)の候補は、ロボット装置Rの構成、対象物の条件等に応じて適宜与えられてよい。ただし、選択時の状態(現在状態として設定されている状態)によっては、与えられた候補のうちの一部は、論理的に実行不能である可能性がある。また、論理的に実行可能であっても、その行動を採用することで目標状態に到達できない(行き止まりに到達してしまう)又は同じ状態を繰り返し経由することになる(ループする)可能性がある。そこで、シンボリックプランナ3は、ノードの遷移前及び遷移後それぞれにおいて、採用する抽象的な行動の論理チェックを実行するように構成されてよい。
 一例として、図6のケースにおいて、ロボットAが1つの物品を保持可能に構成されている場合、ロボットAがフリーであるならば、ロボットAにより部品Cを保持する行動又はロボットAにより道具Zを保持する行動は、論理的に実行可能である。一方、ロボットAが部品C(又は道具Z)を既に保持している場合、ロボットAにより道具Z(又は部品C)を保持する行動は、論理的に実行不能である。シンボリックプランナ3は、ノードの遷移(すなわち、選択する次の状態を決定する)前に、このような論理チェックを実行し、その結果に基づいて、論理的に実行可能な行動を採用するように構成されてよい。なお、このような遷移前の論理チェックの内容は、規則として規定されてよい。
 また、ノードを選択した結果として到達する対象ノードに対応する状態(すなわち、論理的に実行可能な抽象的な行動を実行した結果として実現される抽象的属性)において、論理的に実行可能な行動が存在しない場合、その対象ノードは、行き止まりである。或いは、その対象ノードの抽象的属性が、開始ノードから対象ノードに到達するまでに経由した中間ノードの抽象的属性と同一である場合、選択された経路はループしている。シンボリックプランナ3は、開始ノードから対象ノードまでに経由したノードの情報を保持し、ノードの遷移後に、このような論理チェックを実行することにより、行き止まり及びループを避けるように構成されてよい。行き止まり又はループに到達した場合には、シンボリックプランナ3は、該当する抽象的な行動の採用を取りやめ、1つ前の状態(ノード)に戻って、採用する抽象的な行動を決定する処理を再度実行するように構成されてよい。
 採用可能である抽象的な行動の候補が複数存在する場合、シンボリックプランナ3は、その複数の候補から採用する抽象的な行動を適宜選択してよい。本実施形態では、シンボリックプランナ3は、訓練済みのコスト推定モデル4を用いて、複数の候補から採用する抽象的な行動を決定することができる。一例として、制御部11は、学習結果データ125を参照し、訓練済みのコスト推定モデル4の設定を行う。そして、制御部11は、各候補を示す情報を入力層41に入力し、訓練済みのコスト推定モデル4の順伝播の演算を実行する。これにより、制御部11は、各候補に対するコストの推定結果を出力層45から得ることができる。
 なお、採用可能である抽象的な行動の候補は、直接的に指定されてもよいし、現在の状態及び次の状態の候補の組み合わせにより指定されてもよい。コストを推定する候補は、上記遷移前の論理チェックの結果により特定された論理的に実行可能である抽象的な行動に絞られてよい。また、各候補を示す情報以外の他の情報をコストの推定に考慮する場合、入力層41は、当該他の情報の入力を更に受け付けるように構成されてよい。他の情報は、例えば、ロボット装置Rのスペック、タスクを遂行する環境に関する属性(例えば、対象物の配置、スペック、ワークスペースの制約等)、タスクの種類、タスクの難易度、現在の状態から対象の状態までの抽象的な行動の一覧、現在の状態から対象の状態までにかかる動作時間等の情報を含んでよい。他の情報は、タスク情報121の少なくとも一部として上記ステップS101において取得されてよい。
 そして、制御部11は、訓練済みのコスト推定モデル4により得られた各候補に対するコストの推定結果に基づいて、コストを最適化するように複数の候補から採用する抽象的な行動を選択してもよい。一例では、コストを最適化することは、コストが最小の抽象的な行動を選択することにより構成されてよい。他の一例では、コストを最適化することは、閾値よりもコストが小さい抽象的な行動を選択することにより構成されてよい。これにより、ステップS102において、制御部11は、シンボリックプランナ3を使用して、訓練済みのコスト推定モデル4により推定されるコストが最適化されるように抽象的行動系列を生成することができる。抽象的行動系列を生成すると、制御部11は、次のステップS103に処理を進める。
 (ステップS103及びステップS104)
 図5に基づいて、ステップS103では、制御部11は、インタフェース処理部117として動作し、シンボリックプランナ3を使用して生成された抽象的行動系列に含まれる抽象的な行動の一覧をユーザに対して出力する。そして、ステップS104では、制御部11は、出力された抽象的な行動の一覧に対する当該ユーザのフィードバックを受け付ける。一覧の出力先、出力形式、及びフィードバックの形式は、実施の形態に応じて適宜選択されてよい。
 図7は、本実施形態に係る抽象的行動系列(抽象的な行動の一覧)の出力形態の一例を模式的に例示する。図7に例示される出力画面150は、各抽象的な行動を実行した際のタスクの環境(例えば、ロボット装置R、対象物)の様子を表示するための第1領域151、抽象的な行動の一覧を表示するための第2領域152、抽象的行動系列の再計画を実行するための第1ボタン153、及びフィードバックの受け付けの完了するための第2ボタン154を含んでいる。ユーザのフィードバックは、第2領域152に表示された抽象的な行動の一覧に対するGUI(Graphical User Interface)操作により得られてよい。ユーザのフィードバックは、例えば、抽象的な行動の変更、修正、並び替え、削除、追加、拒否、承諾等により構成されてよい。出力画面150は、出力装置15に表示されてよい。これに応じて、ユーザのフィードバックは、入力装置14を介して受け付けられてよい。フィードバックの受け付けが完了すると、制御部11は、次のステップS105に処理を進める。
 (ステップS105)
 図5に戻り、ステップS105では、制御部11は、ステップS104におけるユーザのフィードバックに応じて、処理の分岐先を決定する。ユーザのフィードバックにおいて、抽象的行動系列を再計画することが選択された(例えば、上記第1ボタン153が操作された)場合、制御部11は、ステップS102まで処理を戻して、ステップS102から処理を再度実行する。これにより、制御部11は、抽象的行動系列を再計画する。なお、シンボリックプランナ3は、再計画の際に、例えば、異なる抽象的な行動を採用する等の方法により、再計画前に生成された抽象的行動系列と少なくとも部分的に異なる抽象的行動系列を生成するように適宜構成されてよい。一方、ユーザのフィードバックにおいて、抽象的行動系列を再計画することが選択されなかった場合、制御部11は、次のステップS106に処理を進める。
 (ステップS106及びステップS107)
 ステップS106では、制御部11は、動作生成部113として動作し、抽象的行動系列に含まれる抽象的な行動のうち、対応する動作系列が生成されておらず、かつ実行順序の最も早い抽象的な行動を特定する。そして、制御部11は、モーションプランナ5を使用して、特定された対象の抽象的な行動を動作系列に変換する。動作系列は、対象の抽象的な行動を達成可能に1つ以上の物理的な動作を含むよう適宜構成されてよい。ステップS107では、制御部11は、生成された動作系列がロボット装置Rにより実環境において物理的に実行可能か否かを判定する。
 図8は、本実施形態に係るモーションプランナ5による動作系列の生成過程の一例を模式的に例示する。物理段階におけるタスクの状態空間は、動作系列に対応するエッジ及び動作系列の実行により変更される対象となる物理的状態を含む動作属性に対応するノードを備えるグラフにより表現されてよい。つまり、モーションプランナ5の関与する状態空間は、物理的な動作により変化する動作(物理)属性の集合により構成されてよい。物理段階の各ノードは、抽象段階の各ノードに対応して得られてよい。
 各ノードの動作属性は、対応する時点におけるロボット装置R及び対象物の物理的状態以外に、その物理的状態に到達するための動作系列(動作リスト)に関する情報を含んでよい。図8に示されるとおり、動作系列に関する情報は、例えば、各動作の識別情報(動作ID)、各動作の前に実行される動作(親動作)の識別情報(親動作ID)、各動作をロボット装置Rに指示するための指令情報(例えば、軌道等の制御量)等を含んでよい。動作ID及び親動作IDは、各動作の実行順序を特定するための用いられてよい。開始状態における物理的状態は、タスク情報121により開始状態の抽象的属性に応じて指定されてよい。開始状態における動作系列に関する情報は空であってよい。なお、抽象段階における状態空間を「抽象層」と表現し、物理段階における状態空間を「動作層」と表現してよい。ステップS102の処理を抽象層における行動計画の生成処理と表現し、ステップS106の処理を動作層における動作計画の生成処理と表現してもよい。
 モーションプランナ5は、現在の物理的状態及び採用する抽象的な行動が与えられると、所定の規則に従って、当該抽象的な行動を遂行するための動作系列を生成するように構成されてよい。抽象的な行動を動作系列に変換する変換規則は、実施の形態に応じて適宜設定されてよい。モーションプランナ5は、現在の物理的状態の初期値には、開始状態における物理的状態をセットしてよい。生成された動作系列の採用を決定した後、モーションプランナ5は、採用を決定した動作系列を実行することで実現される物理的状態(すなわち、遷移後のノードの物理的状態)を現在の物理的状態としてセットすることで、現在の物理状態を更新することができる。
 更に、モーションプランナ5は、実環境での対象の動作系列の実行を物理的にシミュレートすることで、対象の動作系列をロボット装置Rが実環境において物理的に実行可能か否かを判定するように構成されてよい。シミュレーションには、CAD(computer aided design)情報等の実環境を再現するための情報(不図示)が用いられてよい。当該情報は、例えば、記憶部12、記憶媒体91、外部記憶装置等の任意の記憶領域に保持されてよい。
 なお、現在の物理的状態及び抽象的な行動以外の参照情報を上記動作系列の生成及びシミュレーションの少なくとも一方に利用する場合、モーションプランナ5は、当該参照情報の入力を更に受け付けるように構成されてよい。参照情報は、例えば、ロボット装置Rのスペック、タスクを遂行する環境に関する属性(例えば、対象物の配置、スペック、ワークスペースの制約等)、タスクの種類等の情報を含んでよい。参照情報は、タスク情報121の少なくとも一部として上記ステップS101において取得されてよい。
 また、図8に示されるとおり、抽象的な行動に対して複数の異なる動作系列の候補が生成され得る(すなわち、動作層では、抽象層の1つのノードに対応する複数のノードが与えられ得る)。この場合、制御部11は、実環境で実行可能な動作系列を複数の候補から適宜選択してよい。全ての候補が実環境で実行不能であると判定される場合、制御部11は、ステップS107の判定結果として、生成された動作系列はロボット装置Rにより実環境において物理的に実行不能であると結論付けてよい。モーションプランナ5を使用して、動作系列の生成、及び生成された動作系列の実環境での実行可能性の判定が完了すると、制御部11は、次のステップS108に処理を進める。
 (ステップS108)
 図5に戻り、ステップS108では、制御部11は、ステップS107の判定結果に応じて、処理の分岐先を決定する。生成された動作系列が物理的に実行不能である(複数の候補が存在する場合には、全ての候補が実行不能である)と判定された場合、制御部11は、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄する。そして、制御部11は、ステップS102まで処理を戻して、ステップS102から処理を再度実行する。これにより、制御部11は、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降について新たな抽象的行動系列を生成する。すなわち、動作層にて実行可能な動作系列が得られない場合、制御部11は、抽象層に戻って抽象的行動系列を再計画する。なお、実行不能と判定された動作系列に対応する対象の抽象的な行動を含んでいれば、破棄する範囲は、対象の抽象的な行動以降のみに限られなくてよい。他の一例として、制御部11は、対象の抽象的な行動よりも実行順が前の抽象的な行動まで遡って破棄し、ステップS102から処理を再度実行することで、破棄した範囲について新たな抽象的行動系列を生成してもよい。一方、生成された動作系列が物理的に実行可能であると判定された場合、制御部11は、次のステップS109に処理を進める。
 (ステップS109)
 ステップS109では、制御部11は、シンボリックプランナ3により生成された抽象的行動系列に含まれる全ての抽象的な行動について実環境で実行可能な動作系列の生成が成功したか否かを判定する。生成された抽象的行動系列に含まれる全ての抽象的な行動について実環境で実行可能な動作系列の生成が成功したことは、動作計画の生成が完了したことに相当する。
 動作系列が生成されていない抽象的な行動が残っている(すなわち、動作計画の生成が完了していない)場合、制御部11は、ステップS106まで処理を戻す。そして、制御部11は、実環境で実行可能な動作系列の生成が成功した対象の抽象的な行動の次に実行する抽象的な行動として採用された抽象的な行動について、ステップS106以降の処理を実行する。これにより、制御部11は、モーションプランナ5を使用して、抽象的行動系列に含まれる抽象的な行動を実行順に動作系列に変換すると共に、得られた動作系列の実環境での実行可能性を判定する。動作系列の生成されていない抽象的な行動がなくなるまでステップS106~ステップS108の処理を繰り返すことで、制御部11は、開始状態から目標状態に到達するように、1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を生成することができる。動作計画の生成が完了した場合、制御部11は、次のステップS110に処理を進める。
 (ステップS110)
 ステップS110では、制御部11は、出力部114として動作し、モーションプランナ5を使用して生成された動作群(動作計画)を出力する。
 動作群の出力先及び出力形式は、実施の形態に応じて適宜決定されてよい。一例では、制御部11は、生成された動作群を出力装置15にそのまま出力してもよい。出力された動作群は、ロボット装置Rの制御に適宜利用されてよい。他の一例では、動作群を出力することは、動作群を示す指令をロボット装置Rに与えることで、ロボット装置Rの動作を制御することを含んでよい。ロボット装置Rがコントローラ(不図示)を備え、動作計画装置1が当該コントローラに接続される場合、制御部11は、動作群を示す指令情報をコントローラに出力することで、ロボット装置Rの動作を間接的に制御してもよい。或いは、動作計画装置1がロボット装置Rのコントローラとして動作する場合、制御部11は、生成された動作群に基づいて、ロボット装置Rの動作を直接的に制御してもよい。これにより、生成した動作計画に従ってロボット装置Rの動作を制御する動作計画装置1を構築することができる。
 動作群の出力が完了すると、制御部11は、本動作例に係る動作計画に関する処理手順を終了する。なお、動作計画装置1は、ステップS101~ステップS110の一連の情報処理を任意のタイミングで繰り返し実行するように構成されてよい。
 (2)コスト推定モデルの機械学習
 図9は、本実施形態に係る動作計画装置1によるコスト推定モデル4の機械学習に関する処理手順の一例を示すフローチャートである。ただし、以下で説明する機械学習に関する処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の機械学習に関する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
 (ステップS201)
 ステップS201では、制御部11は、データ取得部115として動作し、訓練サンプル61及び正解ラベル62の組み合わせによりそれぞれ構成される複数の学習データセット60を取得する。
 各学習データセット60は適宜生成されてよい。生成方法の一例として、まず、訓練用の抽象的な行動を示す訓練サンプル61を生成する。訓練サンプル61は人手により適宜生成されてよい。或いは、訓練サンプル61は、シンボリックプランナ3の処理を実行(又は試行)して生成された抽象的行動系列から得られてよい。コスト推定モデル4が抽象的な行動の候補を示す情報以外の他の情報の入力を更に受け付けるように構成される場合、訓練サンプル61は、訓練用の他の情報を更に含むように適宜生成されてよい。
 次に、生成された訓練サンプル61に対応して、訓練用の抽象的な行動のコストの真値を示す正解ラベル62を生成する。コストの評価指標は適宜選択されてよい。一例では、コストの評価指標は、動作時間及び駆動量の少なくとも一方を含んでよい。この場合、正解ラベル62は、訓練用の抽象的な行動に対してモーションプランナ5により生成される動作系列の実行にかかる時間、及び当該動作系列の実行におけるロボット装置Rの駆動量の少なくともいずれかに応じて算出されたコストの真値を示すように構成されてよい。正解ラベル62は、モーションプランナ5により生成された動作系列を実行又はシミュレートした結果から生成されてよい。コストの真値は、動作時間が長い/駆動量が多いほどコストが大きく、動作時間が短い/駆動量が少ないほどコストが小さく評価されるように適宜設定されてよい。
 他の一例では、コストの評価指標は、動作計画の失敗率(成功率)を含んでよい。この場合、正解ラベル62は、訓練用の抽象的な行動に対してモーションプランナ5により生成される動作系列が物理的に実行不能と判定される確率に応じて算出されたコストの真値を示すように構成されてよい。正解ラベル62は、訓練用の抽象的な行動に対するモーションプランナ5の処理の実行結果から生成されてよい。コストの真値は、動作計画が成功するほど(換言すると、実環境で物理的に実行可能な動作系列が生成可能であるほど)コストが小さく、動作計画が失敗するほどコストが大きくなるように適宜設定されてよい。
 更に他の一例では、コストの評価指標は、ユーザのフィードバックを含んでよい。この場合、正解ラベル62は、訓練用の抽象的な行動に対するユーザのフィードバックに応じて算出されたコストの真値を示すように構成されてよい。ユーザのフィードバックは任意のタイミング及び形式で得られてよく、正解ラベル62は、得られたフィードバックの結果から適宜生成されてよい。本実施形態では、ステップS104の処理により、シンボリックプランナ3により生成された抽象的行動系列に対するユーザのフィードバックを得ることができる。正解ラベル62は、ステップS104のフィードバックの結果から生成されてよい。これにより、ステップS104のフィードバックの結果から学習データセット60が得られてよい。コストの真値は、フィードバックにおいて変更、修正、並び替え、削除、及び拒否の少なくともいずれかの対象となるほどコストが大きく、維持(変更等がされず、そのまま利用される)及び承諾のいずれかの対象となるほどコストが小さく評価されるように適宜設定されてよい。
 コストは、複数の評価指標(例えば、上記4つの評価指標から選択された2つ以上の評価指標)を用いて算定されてよい。また、コストの真値は、人手により決定又は修正されてもよい。そして、正解ラベル62を生成した後、生成された正解ラベル62を訓練サンプル61に関連付ける。これにより、各学習データセット60を生成することができる。
 各学習データセット60は、コンピュータの動作により自動的に生成されてもよいし、或いは少なくとも部分的にオペレータの操作を含むことで手動的に生成されてもよい。生成された各学習データセット60は、記憶部12に保存されてよい。また、各学習データセット60の生成は、動作計画装置1により行われてもよいし、動作計画装置1以外の他のコンピュータにより行われてもよい。各学習データセット60を動作計画装置1が生成する場合、制御部11は、自動的に又は入力装置14を介したオペレータの操作により手動的に上記生成処理を実行することで、各学習データセット60を取得してよい。一方、各学習データセット60を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された各学習データセット60を取得してよい。複数の学習データセット60の一部が動作計画装置1により生成され、その他が1又は複数の他のコンピュータにより生成されてもよい。
 取得する学習データセット60の件数は、特に限定されなくてよく、機械学習を実施可能なように実施の形態に応じて適宜決定されてよい。複数の学習データセット60を取得すると、制御部11は、次のステップS202に処理を進める。
 (ステップS202)
 ステップS202では、制御部11は、学習処理部116として動作し、取得された複数の学習データセット60を使用して、コスト推定モデル4の機械学習を実施する。
 機械学習の処理の一例として、まず、制御部11は、機械学習の処理対象となるコスト推定モデル4を構成するニューラルネットワークを用意する。ニューラルネットワークの構造、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、或いはオペレータの入力により与えられてもよい。また、再学習を行う場合、制御部11は、過去の機械学習により得られた学習結果データに基づいて、コスト推定モデル4を用意してもよい。
 次に、制御部11は、各学習データセット60について、訓練サンプル61により示される訓練用の抽象的な行動に対するコストの推定値が対応する正解ラベル62により示される真値に適合するものとなるようにコスト推定モデル4を訓練する。この訓練処理には、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。
 訓練処理の一例として、制御部11は、各学習データセット60の訓練サンプル61を入力層41に入力し、コスト推定モデル4の順伝播の演算処理を実行する。この演算の結果、制御部11は、訓練用の抽象的な行動に対するコストの推定値を出力層45から取得する。制御部11は、各学習データセット60について、得られた推定値と対応する正解ラベル62により示される真値との間の誤差を算出する。誤差(損失)の算出には、損失関数が用いられてよい。誤差の計算に利用する損失関数の種類は、実施の形態に応じて適宜選択されてよい。
 次に、制御部11は、算出された誤差の勾配を算出する。制御部11は、誤差逆伝播法により、算出された誤差の勾配を用いて、コスト推定モデル4の各演算パラメータの値の誤差を出力側から順に算出する。制御部11は、算出された各誤差に基づいて、コスト推定モデル4の各演算パラメータの値を更新する。各演算パラメータの値を更新する程度は、学習率により調節されてよい。学習率は、オペレータの指定により与えられてもよいし、プログラム内の設定値として与えられてもよい。
 制御部11は、上記一連の更新処理により、各学習データセット60について、算出される誤差の和が小さくなるように、コスト推定モデル4の各演算パラメータの値を調整する。例えば、規定回数実行する、算出される誤差の和が閾値以下になる等の所定の条件を満たすまで、制御部11は、上記一連の更新処理によるコスト推定モデル4の各演算パラメータの値の調整を繰り返してもよい。
 この機械学習の結果、制御部11は、抽象的な行動のコストを推定する能力を獲得した訓練済みのコスト推定モデル4を生成することができる。コスト推定モデル4の機械学習の処理が完了すると、制御部11は、次のステップS203に処理を進める。
 (ステップS203)
 ステップS203では、制御部11は、生成された訓練済みのコスト推定モデル4に関する情報を学習結果データ125として生成する。そして、制御部11は、生成された学習結果データ125を所定の記憶領域に保存する。
 所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。記憶メディアは、例えば、CD、DVD等であってよく、制御部11は、ドライブ16を介して記憶メディアに学習結果データ125を格納してもよい。外部記憶装置は、例えば、NAS(Network Attached Storage)等のデータサーバであってよい。この場合、制御部11は、ネットワークを介してデータサーバに学習結果データ125を格納してもよい。また、外部記憶装置は、例えば、外部インタフェース13を介して動作計画装置1に接続された外付けの記憶装置であってもよい。
 学習結果データ125の保存が完了すると、制御部11は、本動作例に係るコスト推定モデル4の機械学習に関する処理手順を終了する。なお、上記ステップS201~ステップS203の処理により訓練済みのコスト推定モデル4の生成は、動作計画装置1を動作計画のために運用し始める前及び運用し始めた後のいずれのタイミングで実行されてよい。また、制御部11は、上記ステップS201~ステップS203の処理を定期又は不定期に繰り返すことで、学習結果データ125を更新又は新たに生成してもよい。この繰り返しの際に、制御部11は、動作計画装置1を動作計画のために運用した結果を利用して、機械学習に使用する学習データセット60の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。これにより、訓練済みのコスト推定モデル4を更新してもよい。
 [特徴]
 以上のとおり、本実施形態に係る動作計画装置1は、ロボット装置Rの動作計画を生成する過程を、シンボリックプランナ3を使用する抽象段階(ステップS102)及びモーションプランナ5を使用する物理段階(ステップS106及びステップS107)の2つの段階に分け、2つのプランナ(3、5)間でやり取りしながら動作計画を生成する。ステップS102の処理では、抽象的なレベルにタスクの環境及び条件を単純化して、タスクを遂行するための行動計画を生成することができる。そのため、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速に抽象的な行動計画(抽象的行動系列)を生成することができる。また、ステップS106及びステップS107の処理では、実環境での実行可能性を保証しながら、シンボリックプランナ3の行動計画の範囲内に絞って効率的に動作計画を生成することができる。したがって、本実施形態によれば、実環境での実行可能性を保証しながら、複雑なタスクであっても、比較的にメモリの負荷が軽量でかつ高速にロボット装置Rの動作計画を生成することができる。
 また、本実施形態によれば、ステップS102の処理において、訓練済みのコスト推定モデル4を使用することで、コストに基づいて望ましい抽象的な行動計画を生成することができる。これにより、より適切な動作計画が生成されやすくすることができる。一例では、ロボット装置Rの動作時間及び駆動量の少なくとも一方をコストの評価指標に用いることで、ロボット装置Rの動作時間及び駆動量の少なくとも一方に関して適切な動作計画が生成されやすくすることができる。その他の一例では、モーションプランナ5による動作計画の失敗率をコストの評価指標に用いることで、シンボリックプランナ3により生成される抽象的行動系列に関して、モーションプランナ5による動作計画の失敗率(ステップS108の処理において、ステップS102に戻る判定がされる可能性)を低減することができる。つまり、実環境で実行可能性の高い抽象的な行動計画がシンボリックプランナ3により生成されやすくし、これにより、最終的な動作計画を得るまでの処理時間の短縮を図ることができる。その他の一例では、ユーザのフィードバックをコストの評価指標に用いることで、フィードバックに応じてより適切な動作計画を生成されやすくすることができる。
 なお、ユーザのフィードバックをコストの評価指標に用いる場合に、当該フィードバックは、モーションプランナ5により生成される動作計画に対して獲得されてもよい。一例では、動作計画装置1は、ステップS110の処理の後に、生成された動作計画に対するユーザのフィードバックを受け付けてもよい。ただし、モーションプランナ5により生成される動作計画に含まれる動作系列は、ロボット装置Rの機械的な駆動を伴う物理量により定義される。そのため、生成される動作計画は、情報量が多いものであり、かつユーザ(人間)にとって解釈性の低いものである。これに対して、本実施形態では、ステップS104の処理により抽象的行動系列に対してユーザのフィードバックを取得してよく、ステップS202の機械学習に使用される学習データセット60は、当該フィードバックの結果から得られてよい。シンボリックプランナ3により生成される行動計画に含まれる抽象的な行動は、例えば、言葉等の記号で表現可能な動作の集まりで定義されてよく、物理量で定義される動作系列と比べると、情報量が少なく、かつユーザにとって解釈性の高いものである。したがって、本実施形態によれば、プランナにより生成される計画をユーザに対して出力する資源(例えば、ディスプレイ)の消費を抑え、かつ当該ユーザのフィードバックを得やすくすることができ、これにより、より適切な動作計画を生成するための訓練済みのコスト推定モデル4を生成及び改善しやすくすることができる。
 また、本実施形態では、動作計画装置1は、上記ステップS201~ステップS203の処理を実行可能に構成されている。これにより、本実施形態によれば、動作計画装置1において、より適切な動作計画を生成するための訓練済みのコスト推定モデル4を生成することができる。また、動作計画装置1を運用しながら、コスト推定モデル4の能力の改善を図ることができる。
 なお、シンボリックプランナ3とコスト推定モデル4との間の構成上の関係は、実施の形態に応じて適宜設定されてよい。一例では、シンボリックプランナ3の一部に、機械学習により調整可能な演算パラメータが設けられ、この部分が、コスト推定モデル4として取り扱われてよい。その他の一例では、シンボリックプランナ3の構成から独立可能に機械学習モデルを用意し、用意された機械学習モデルをコスト推定モデル4として利用してよい。
 また、ステップS202の機械学習において設定されるタスク(訓練サンプル61で取り扱われるタスク)と動作計画の運用時に与えられるタスク(ステップS102で取り扱われるタスク)とは必ずしも一致していなくてもよい。すなわち、あるタスクについてコストを推定する能力を訓練したコスト推定モデル4を別のタスクについて抽象的な行動のコストを推定するために利用してもよい。
 §4 変形例
 以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良又は変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
 <4.1>
 上記実施形態では、コスト推定モデル4により得られるコストの推定値は、採用する抽象的な行動を複数の候補から決定する指標として利用される。すなわち、コストの推定値は、抽象層のグラフ探索において、あるノードから次のノードに遷移することを推奨する程度を評価する指標として取り扱われる。上記実施形態では、コスト推定モデル4により得られるコストの推定値は、次のノードを選択する際に参照されている。しかしながら、コストの推定値を参照するタイミングは、このような例に限定されなくてよい。他の一例として、制御部11は、目標ノードに到達した後にコストの推定値を参照し、得られた経路を採用するか否かを判定してもよい。
 また、上記実施形態において、コストの指標に動作計画の失敗率を用いる場合、訓練済みのコスト推定モデル4によるコストの推定値は、モーションプランナ5のステップS107の処理結果を推定した結果に相当する。そのため、モーションプランナ5による動作計画の失敗率を指標にコストを推定する能力を獲得した訓練済みのコスト推定モデル4は、モーションプランナ5の動作を模擬する動作推定器として取り扱われてよい。
 図10は、コスト推定モデル4の他の利用形態の一例を模式的に例示する。本変形例では、ステップS102において、コスト推定モデル4は、シンボリックプランナ3により生成された抽象的行動系列の一部又は全部を受け取り、当該抽象的行動系列の一部又は全部に対するモーションプランナ5の動作計画が成功するか否かを推定した結果をコストの推定値として出力してもよい。制御部11は、得られたコストの推定値に基づいて、モーションプランナ5による動作計画が成功する可能性を判定してもよい。そして、動作計画が成功する可能性が低い(例えば、閾値以下)場合に、制御部11は、シンボリックプランナ3による抽象的行動系列の再計画を実行してもよい。コスト推定モデル4は、モーションプランナ5の全ての処理を実行可能に構成される訳ではない。そのため、コスト推定モデル4の動作は、モーションプランナ5の動作に比べて軽量である。よって、本変形例によれば、軽量な動作で、シンボリックプランナ3による抽象的行動系列の再計画を実行するか否かを判定することができる。
 また、本変形例では、コスト推定モデル4は、動作計画の失敗率に対応するコストの推定値に加えて、その推定値の信頼性の程度(確信度)を更に出力するように構成されてよい。或いは、確信度は、コストの推定値から算定されてよい。一例として、コストの推定値が0から1の間で与えられる場合に、コストの推定値が0又は1に近いほど確信度が高く、コストの推定値が0.5に近いほど確信度が低くなるように確信度の値が算定されてよい。
 この場合、制御部11は、確信度が低い(例えば、閾値以下である)ことを、モーションプランナ5の処理を実行するトリガとして用いてよい。すなわち、上記ステップS102において、確信度が低いと評価される場合に、制御部11は、シンボリックプランナ3により抽象的行動系列を生成する処理を中断して、それまでの処理で得られた抽象的行動系列の一部に対してモーションプランナ5の処理(ステップS106及びステップS107の処理)を実行してもよい。モーションプランナ5による動作計画の生成が成功する場合、制御部11は、シンボリックプランナ3により抽象的行動系列を生成する処理を再開してよい。一方、モーションプランナ5による動作計画の生成が失敗する場合、制御部11は、それまでの処理で得られた抽象的行動系列の一部を破棄し、シンボリックプランナ3による抽象的行動系列の再計画を実行してもよい。コスト推定モデル4により推定されるコストを最適化することは、このようなモーションプランナ5の動作を模擬することを含んでよい。
 <4.2>
 上記実施形態では、動作計画装置1は、シンボリックプランナ3により抽象的な行動系列の生成が完了した後に、モーションプランナ5の処理を実行することで、動作計画を生成している。しかしながら、シンボリックプランナ3及びモーションプランナ5の間でデータをやり取りするタイミング(ステップS102、ステップS106、及びステップS107の処理順序)は、このような例に限定されなくてよい。その他の一例では、動作計画装置1は、シンボリックプランナ3により抽象的行動系列の一部を生成した段階で、モーションプランナ5の処理を実行し、その一部について動作計画を生成してもよい。 
 <4.3>
 上記実施形態では、コスト推定モデル4は、全結合型ニューラルネットワークにより構成されている。しかしながら、コスト推定モデル4を構成するニューラルネットワークの構成は、このような例に限定されなくてよく、実施の形態に応じて適宜選択されてよい。他の一例として、各ニューロンは、隣接する層の特定のニューロンと接続されたり、隣接する層以外の層のニューロンと接続されたりしてもよい。各ニューロンの結合関係は、実施の形態に応じて適宜決定されてよい。コスト推定モデル4を構成するニューラルネットワークは、例えば、畳み込み層、プーリング層、正規化層、ドロップアウト層等の他の種類の層を含んでもよい。コスト推定モデル4は、例えば、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク、グラフニューラルネットワーク等の他の形式のニューラルネットワークにより構成されてよい。
 また、コスト推定モデル4に用いられる機械学習モデルの種類は、ニューラルネットワークに限られなくてよく、実施の形態に応じて適宜選択されてよい。機械学習の方法は、機械学習モデルの種類に応じて適宜選択されてよい。その他の一例として、コスト推定モデル4には、例えば、サポートベクタマシン、決定木モデル等の機械学習モデルが用いられてよい。
 <4.4>
 上記実施形態において、ユーザのフィードバックを他の方法で獲得する場合、又はコストの評価指標としてユーザのフィードバックを採用しない場合、ステップS103~ステップS105の処理は、動作計画装置1の処理手順から省略されてよい。ステップS103~ステップS105の処理を省略する場合、インタフェース処理部117は、動作計画装置1のソフトウェア構成から省略されてよい。
 上記実施形態において、ステップS201~ステップS203の処理による訓練済みのコスト推定モデル4の生成又は再学習は、動作計画装置1以外の他のコンピュータにより実行されてよい。この場合、データ取得部115及び学習処理部116が、動作計画装置1のソフトウェア構成から省略されてよい。ステップS201~ステップS203の処理が、動作計画装置1の処理手順から省略されてよい。なお、他のコンピュータにより生成された訓練済みのコスト推定モデル4(学習結果データ125)は、ネットワーク、記憶媒体91等を介して、動作計画装置1に任意のタイミングで提供されてよい。
 また、上記実施形態のステップS102の処理において、動作計画装置1は、コスト推定モデル4を使用せずに、採用する抽象的な行動を複数の候補から選択してもよい。この場合、コスト推定モデル4は省略されてよい。
 1…動作計画装置、
 11…制御部、12…記憶部、13…外部インタフェース、
 14…入力装置、15…出力装置、16…ドライブ、
 81…動作計画プログラム、91…記憶媒体、
 111…情報取得部、112…行動生成部、
 113…動作生成部、114…出力部、
 115…データ取得部、116…学習処理部、
 117…インタフェース処理部、
 121…タスク情報、
 125…学習結果データ、
 3…シンボリックプランナ、
 4…コスト推定モデル、
 41…入力層、43…中間(隠れ)層、45…出力層、
 5…モーションプランナ、
 60…学習データセット、
 61…訓練サンプル、62…正解ラベル、
 R…ロボット装置

Claims (12)

  1.  ロボット装置に与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報を取得するように構成された情報取得部と、
     シンボリックプランナを使用して、前記タスク情報に基づき、前記開始状態から前記目標状態に到達するよう実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成するように構成された行動生成部と、
     モーションプランナを使用して、前記実行順に、前記抽象的行動系列に含まれる前記抽象的な行動を遂行するための、1つ以上の物理的な動作を含む動作系列を生成すると共に、生成された前記動作系列が前記ロボット装置により実環境において物理的に実行可能か否かを判定するように構成された動作生成部と、
     前記モーションプランナを使用して生成された1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を出力するように構成された出力部と、
    を備え、
     前記動作生成部において、前記動作系列が物理的に実行不能であると判定された場合、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄し、前記行動生成部において、前記シンボリックプランナを使用して、当該行動以降の新たな抽象的行動系列を生成するように構成された、
    動作計画装置。
  2.  前記シンボリックプランナは、抽象的な行動のコストを推定するように機械学習により訓練されたコスト推定モデルを含み、
     前記行動生成部は、前記シンボリックプランナを使用して、前記コスト推定モデルにより推定されるコストが最適化されるよう前記抽象的行動系列を生成するように更に構成される、
    請求項1に記載の動作計画装置。
  3.  訓練用の抽象的な行動を示す訓練サンプル及び前記訓練用の抽象的な行動のコストの真値を示す正解ラベルの組み合わせによりそれぞれ構成される複数の学習データセットを取得するように構成されたデータ取得部と、
     取得された複数の学習データセットを使用して、前記コスト推定モデルの機械学習を実施するように構成された学習処理部であって、前記機械学習は、各学習データセットについて、前記訓練サンプルにより示される前記訓練用の抽象的な行動に対するコストの推定値が前記正解ラベルにより示される真値に適合するものとなるように前記コスト推定モデルを訓練することにより構成される、学習処理部と、
    を更に備える、
    請求項2に記載の動作計画装置。
  4.  前記正解ラベルは、前記訓練用の抽象的な行動に対して前記モーションプランナにより生成される動作系列の実行にかかる時間、及び当該動作系列の実行における前記ロボット装置の駆動量の少なくともいずれかに応じて算出されたコストの真値を示すように構成される、
    請求項3に記載の動作計画装置。
  5.  前記正解ラベルは、前記訓練用の抽象的な行動に対して前記モーションプランナにより生成される動作系列が物理的に実行不能と判定される確率に応じて算出されたコストの真値を示すように構成される、
    請求項3又は4に記載の動作計画装置。
  6.  前記正解ラベルは、前記訓練用の抽象的な行動に対するユーザのフィードバックに応じて算出されたコストの真値を示すように構成される、
    請求項3から5のいずれか1項に記載の動作計画装置。
  7.  前記動作計画装置は、シンボリックプランナを使用して生成された抽象的行動系列に含まれる抽象的な行動の一覧を前記ユーザに対して出力し、出力された前記抽象的な行動の一覧に対する前記ユーザのフィードバックを受け付けるように構成されたインタフェース処理部を更に備え、
     前記データ取得部は、前記抽象的な行動の一覧に対する前記ユーザのフィードバックの結果から前記学習データセットを取得するように更に構成される、
    請求項6に記載の動作計画装置。
  8.  抽象的な行動に対応するエッジ及び抽象的な行動の実行により変更される対象となる抽象的属性に対応するノードを備えるグラフにより前記タスクの状態空間が表現され、
     前記シンボリックプランナは、開始状態に対応する開始ノードから目標状態に対応する目標ノードまでの経路を前記グラフ内で探索することで、前記抽象的行動系列を生成するように構成される、
    請求項1から7のいずれか1項に記載の動作計画装置。
  9.  前記動作群を出力することは、前記動作群を示す指令を前記ロボット装置に与えることで、前記ロボット装置の動作を制御することを含む、
    請求項1から8のいずれか1項に記載の動作計画装置。
  10.  前記ロボット装置は、1つ以上のロボットハンドを備え、
     前記タスクは、1つ以上の部品により構成される製品の組み立て作業である、
    請求項1から9のいずれか1項に記載の動作計画装置。
  11.  コンピュータが、
     ロボット装置に与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報を取得するステップと、
     シンボリックプランナを使用して、前記タスク情報に基づき、前記開始状態から前記目標状態に到達するよう実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成するステップと、
     モーションプランナを使用して、前記実行順に、前記抽象的行動系列に含まれる前記抽象的な行動を遂行するための、1つ以上の物理的な動作を含む動作系列を生成するステップと、
     生成された前記動作系列が前記ロボット装置により実環境において物理的に実行可能か否かを判定するステップと、
     前記モーションプランナを使用して生成された1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を出力するステップと、
    を実行する動作計画方法であって、
     前記判定するステップにおいて、前記動作系列が物理的に実行不能であると判定された場合、前記コンピュータは、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄し、前記抽象的行動系列を生成するステップに戻って、前記シンボリックプランナを使用して、当該行動以降の新たな抽象的行動系列を生成する、
    動作計画方法。
  12.  コンピュータに、
     ロボット装置に与えられたタスクの開始状態及び目標状態に関する情報を含むタスク情報を取得するステップと、
     シンボリックプランナを使用して、前記タスク情報に基づき、前記開始状態から前記目標状態に到達するよう実行順に並べられた1つ以上の抽象的な行動を含む抽象的行動系列を生成するステップと、
     モーションプランナを使用して、前記実行順に、前記抽象的行動系列に含まれる前記抽象的な行動を遂行するための、1つ以上の物理的な動作を含む動作系列を生成するステップと、
     生成された前記動作系列が前記ロボット装置により実環境において物理的に実行可能か否かを判定するステップと、
     前記モーションプランナを使用して生成された1つ以上の動作系列を含む動作群であって、含まれる全ての動作系列が物理的に実行可能と判定された動作群を出力するステップと、
    を実行させるための動作計画プログラムであって、
     前記判定するステップにおいて、前記動作系列が物理的に実行不能であると判定された場合、前記コンピュータに、物理的に実行不能と判定された動作系列に対応する抽象的な行動以降の抽象的行動系列を破棄させ、前記抽象的行動系列を生成するステップに戻って、前記シンボリックプランナを使用して、当該行動以降の新たな抽象的行動系列を生成させる、
    動作計画プログラム。
PCT/JP2021/033717 2020-10-19 2021-09-14 動作計画装置、動作計画方法、及び動作計画プログラム WO2022085339A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP21882480.3A EP4230360A1 (en) 2020-10-19 2021-09-14 Movement planning device, movement planning method, and movement planning program
US18/026,825 US20230330854A1 (en) 2020-10-19 2021-09-14 Movement planning device, movement planning method, and non-transitory computer readable medium
CN202180066146.4A CN116261503A (zh) 2020-10-19 2021-09-14 动作规划装置、动作规划方法以及动作规划程序

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-175670 2020-10-19
JP2020175670A JP7480670B2 (ja) 2020-10-19 2020-10-19 動作計画装置、動作計画方法、及び動作計画プログラム

Publications (1)

Publication Number Publication Date
WO2022085339A1 true WO2022085339A1 (ja) 2022-04-28

Family

ID=81291253

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/033717 WO2022085339A1 (ja) 2020-10-19 2021-09-14 動作計画装置、動作計画方法、及び動作計画プログラム

Country Status (5)

Country Link
US (1) US20230330854A1 (ja)
EP (1) EP4230360A1 (ja)
JP (1) JP7480670B2 (ja)
CN (1) CN116261503A (ja)
WO (1) WO2022085339A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024180646A1 (ja) * 2023-02-28 2024-09-06 日本電気株式会社 情報処理装置、情報処理方法、記憶媒体

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204188A (ja) * 2007-02-20 2008-09-04 Nagoya Institute Of Technology モーションコントローラおよびモーションプランナおよび多軸サーボシステムおよびサーボアンプ
JP2016196079A (ja) * 2015-04-02 2016-11-24 ホンダ リサーチ インスティテュート ヨーロッパ ゲーエムベーハーHonda Research Institute Europe GmbH ロボットの動作を改善する方法
JP2020082293A (ja) * 2018-11-28 2020-06-04 株式会社東芝 ロボット動作計画装置、ロボットシステム、および方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204188A (ja) * 2007-02-20 2008-09-04 Nagoya Institute Of Technology モーションコントローラおよびモーションプランナおよび多軸サーボシステムおよびサーボアンプ
JP2016196079A (ja) * 2015-04-02 2016-11-24 ホンダ リサーチ インスティテュート ヨーロッパ ゲーエムベーハーHonda Research Institute Europe GmbH ロボットの動作を改善する方法
JP2020082293A (ja) * 2018-11-28 2020-06-04 株式会社東芝 ロボット動作計画装置、ロボットシステム、および方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MOVEIT TASK CONSTRUCTOR-MOVEIT_TUTORIALS MELODIC DOCUMENTATION, 19 October 2020 (2020-10-19), Retrieved from the Internet <URL:https://ros-planning.github.io/moveittutorials/doc/moveittaskconstructor/moveittaskconstructor_tutorial.html>

Also Published As

Publication number Publication date
CN116261503A (zh) 2023-06-13
JP2022067006A (ja) 2022-05-02
JP7480670B2 (ja) 2024-05-10
US20230330854A1 (en) 2023-10-19
EP4230360A1 (en) 2023-08-23

Similar Documents

Publication Publication Date Title
Paxton et al. Visual robot task planning
CA3057973A1 (en) System for automated generative design synthesis using data from design tools and knowledge from a digital twin graph
Jeerige et al. Comparison of deep reinforcement learning approaches for intelligent game playing
CN113826051A (zh) 生成实体系统零件之间的交互的数字孪生
US11654552B2 (en) Backup control based continuous training of robots
JP2023528249A (ja) ロボット実証学習のためのスキルテンプレート配布
CN111652453A (zh) 用于零件设计、仿真和制造的智能工作流程顾问
EP3656513A1 (en) Method and system for predicting a motion trajectory of a robot moving between a given pair of robotic locations
JP2020110894A (ja) 学習済モデル生成装置、ロボット制御装置、及び、プログラム
WO2022085339A1 (ja) 動作計画装置、動作計画方法、及び動作計画プログラム
Remman et al. Robotic lever manipulation using hindsight experience replay and shapley additive explanations
Hafez et al. Efficient intrinsically motivated robotic grasping with learning-adaptive imagination in latent space
CN118003333A (zh) 一种大模型驱动物体自主摆放的机器人控制方法及系统
Chen et al. Option-aware adversarial inverse reinforcement learning for robotic control
JP4900642B2 (ja) 学習制御装置、学習制御方法、およびプログラム
De Winter et al. Autonomous assembly planning of demonstrated skills with reinforcement learning in simulation
Ma et al. A learning from demonstration framework for adaptive task and motion planning in varying package-to-order scenarios
Baldassarre Planning with neural networks and reinforcement learning
Liu et al. KG-Planner: Knowledge-Informed Graph Neural Planning for Collaborative Manipulators
Stulp et al. Combining declarative, procedural, and predictive knowledge to generate, execute, and optimize robot plans
Danielsen Vision-based robotic grasping in simulation using deep reinforcement learning
Xue et al. Logic-Skill Programming: An Optimization-based Approach to Sequential Skill Planning
JP2021084188A (ja) 制御システム
JP7474653B2 (ja) 組立作業順序計画装置、及び組立作業順序計画方法
Wang et al. Robotic object manipulation with full-trajectory gan-based imitation learning

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

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

Country of ref document: EP

Effective date: 20230519