WO2022074824A1 - 時相論理式生成装置、時相論理式生成方法及び記憶媒体 - Google Patents

時相論理式生成装置、時相論理式生成方法及び記憶媒体 Download PDF

Info

Publication number
WO2022074824A1
WO2022074824A1 PCT/JP2020/038297 JP2020038297W WO2022074824A1 WO 2022074824 A1 WO2022074824 A1 WO 2022074824A1 JP 2020038297 W JP2020038297 W JP 2020038297W WO 2022074824 A1 WO2022074824 A1 WO 2022074824A1
Authority
WO
WIPO (PCT)
Prior art keywords
target
skill
relationship
robot
state
Prior art date
Application number
PCT/JP2020/038297
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 PCT/JP2020/038297 priority Critical patent/WO2022074824A1/ja
Priority to US18/029,261 priority patent/US20230364791A1/en
Priority to JP2022555228A priority patent/JP7435814B2/ja
Publication of WO2022074824A1 publication Critical patent/WO2022074824A1/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/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • B25J13/089Determining the position of the robot with reference to its environment
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40519Motion, trajectory planning

Definitions

  • the present disclosure relates to a time phase logic expression generator for generating a time phase logic expression related to a robot motion plan, a time phase logic expression generation method, and a technical field of a storage medium.
  • Patent Document 1 When a task to be made to work by a robot is given, a control method for controlling the robot necessary for executing the task has been proposed.
  • Patent Document 1 when a plurality of articles are gripped by a robot having a hand and stored in a container, a combination of the order in which the hands grip the articles is determined, and the storage is based on an index calculated for each combination.
  • a robotic control device for determining the order of articles to be used is disclosed.
  • Patent Document 2 discloses a computer program that generates a time-phase logic expression representing a property of a system based on order information indicating a sequence.
  • One of the objects of the present disclosure is a time-phase logic expression generator, a time-phase logic expression generation method, and a storage capable of suitably generating a time-phase logic expression necessary for robot operation planning in view of the above-mentioned problems. To provide a medium.
  • One aspect of the temporal logic expression generator is Based on the object-to-object relationship information that expresses the relationship between objects in the target state related to the work of the robot, the target relationship logical expression that is the time phase logical expression that expresses the relationship in the target state for each set of objects for which the relationship is defined is obtained.
  • Goal relation logical expression generation means to generate,
  • One aspect of the method for generating a temporal logic expression is By computer Based on the object-to-object relationship information that expresses the relationship between objects in the target state related to the work of the robot, the target relationship logical expression that is the time phase logical expression that expresses the relationship in the target state for each set of objects for which the relationship is defined is obtained. Generate and Generate a temporal logic formula that integrates the target relational formulas, Temporal logic expression generation method.
  • One aspect of the storage medium is Based on the object-to-object relationship information that expresses the relationship between objects in the target state related to the work of the robot, the target relationship logical expression that is the time phase logical expression that expresses the relationship in the target state for each set of objects for which the relationship is defined is obtained.
  • Generate and It is a storage medium in which a program for causing a computer to execute a process of generating a time phase logical formula in which the target relational formula is integrated is stored.
  • the configuration of the robot control system in the first embodiment is shown.
  • the hardware configuration of the robot controller is shown.
  • An example of the data structure of application information is shown.
  • the functional block diagram of the skill use setting part is shown. This is an example of a flowchart executed by the skill usage setting unit.
  • the time-series relationship between the time step, the skill input column of the first skill, the skill input column of the second skill, and the index used for identifying the sub-state column is shown.
  • the schematic configuration of the time phase logic expression generation apparatus in 2nd Embodiment is shown. This is an example of a flowchart executed by the temporal logic expression generator in the second embodiment.
  • the schematic configuration of the operation command generation apparatus in the 3rd Embodiment is shown. This is an example of a flowchart executed by the operation command generator in the third embodiment.
  • FIG. 1 shows the configuration of the robot control system 100 according to the first embodiment.
  • the robot control system 100 mainly includes a robot controller 1, a storage device 4, a robot 5, and a measuring device 7.
  • the robot control system 100 preferably performs a task involving at least one of joining (including contacting, the same shall apply hereinafter) or breaking joining between objects by the robot 5.
  • the robot controller 1 formulates an operation plan for the robot 5, generates a control command "S1" for causing the robot 5 to execute the planned operation, and supplies the control command S1 to the robot 5.
  • the robot controller 1 converts a task to be executed by the robot 5 (also referred to as a “target task”) into a sequence for each time step (time step) of a simple task that the robot 5 can accept. Then, the robot controller 1 controls the robot 5 based on the control command S1 corresponding to the execution command of the generated sequence.
  • the target task is set to a task involving at least one of joining or breaking the joining between objects (simply referred to as "joining / breaking").
  • the joining includes, for example, operations such as screwing the objects together, fitting the objects together, or stacking the objects together.
  • the robot controller 1 performs data communication with the storage device 4, the robot 5, and the measuring device 7 via a communication network or by direct communication by wireless or wired. For example, the robot controller 1 receives information necessary for generating the control command S1 from the storage device 4. Further, the robot controller 1 receives the measurement signal "S2" from the measuring device 7.
  • the storage device 4 has an application information storage unit 41.
  • the application information storage unit 41 stores application information necessary for formulating an operation plan for the robot 5 (that is, generating a sequence to be executed by the robot 5). Details of the application information will be described later with reference to FIG.
  • the storage device 4 may be an external storage device such as a hard disk connected to or built in the robot controller 1, or may be a storage medium such as a flash memory. Further, the storage device 4 may be a server device that performs data communication with the robot controller 1 via a communication network. In this case, the storage device 4 may be composed of a plurality of server devices.
  • the robot 5 performs work related to the target task based on the control command S1 supplied from the robot controller 1.
  • the robot 5 is, for example, a robot that operates at various factories such as an assembly factory and a food factory, or at a distribution site.
  • the robot 5 may be a vertical articulated robot, a horizontal articulated robot, or any other type of robot.
  • the robot 5 may supply a state signal indicating the state of the robot 5 to the robot controller 1.
  • This state signal may be an output signal of a sensor that detects the state (position, angle, etc.) of the entire robot 5 or a specific part such as a joint, or may be a signal indicating the progress state of the operation of the robot 5. ..
  • the measuring device 7 is a camera, a range sensor, a sonar, or one or a plurality of sensors that detect a state in a work space in which a target task is executed.
  • the measuring device 7 supplies the generated measurement signal S2 to the robot controller 1.
  • the measuring device 7 may be a self-propelled or flying sensor (including a drone) that moves in the work space. Further, the measuring device 7 may include a sensor provided in the robot 5, a sensor provided in another object in the work space, and the like. Further, the measuring device 7 may include a sensor that detects a sound in the work space. As described above, the measuring device 7 may include various sensors for detecting the state in the work space and may include sensors provided at any place.
  • the configuration of the robot control system 100 shown in FIG. 1 is an example, and various changes may be made to the configuration.
  • a plurality of robots 5 may exist, or may have a plurality of controlled objects such as robot arms, each of which operates independently. Even in these cases, the robot controller 1 transmits the control command S1 for executing the target task for each robot 5 or each controlled object to the target robot 5.
  • the robot 5 may perform collaborative work with other robots, workers or machine tools operating in the work space.
  • the measuring device 7 may be a part of the robot 5.
  • the robot controller 1 may be composed of a plurality of devices. In this case, the plurality of devices constituting the robot controller 1 exchange information necessary for executing the pre-assigned process among the plurality of devices. Further, the robot controller 1 and the robot 5 may be integrally configured.
  • FIG. 2 shows the hardware configuration of the robot controller 1.
  • the robot controller 1 includes a processor 11, a memory 12, and an interface 13 as hardware.
  • the processor 11, the memory 12, and the interface 13 are connected via the data bus 10.
  • the processor 11 functions as a controller (arithmetic unit) that controls the entire robot controller 1 by executing a program stored in the memory 12.
  • the processor 11 is, for example, a processor such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and a TPU (Tensor Processing Unit).
  • the processor 11 may be composed of a plurality of processors.
  • the processor 11 is an example of a computer.
  • the memory 12 is composed of various volatile memories such as a RAM (Random Access Memory), a ROM (Read Only Memory), and a flash memory, and a non-volatile memory. Further, the memory 12 stores a program for executing the process executed by the robot controller 1. A part of the information stored in the memory 12 may be stored by one or a plurality of external storage devices (for example, a storage device 4) capable of communicating with the robot controller 1, and may be stored detachably from the robot controller 1. It may be stored by a medium.
  • a storage device 4 capable of communicating with the robot controller 1
  • It may be stored by a medium.
  • the interface 13 is an interface for electrically connecting the robot controller 1 and other devices. These interfaces may be wireless interfaces such as network adapters for wirelessly transmitting and receiving data to and from other devices, and may be hardware interfaces for connecting to other devices by cables or the like.
  • the interface 13 operates as an interface with an input device such as a touch panel, a button, a keyboard, or a voice input device that receives user input (external input), a display device such as a display or a projector, or a sound output device such as a speaker. May be done.
  • the hardware configuration of the robot controller 1 is not limited to the configuration shown in FIG.
  • the robot controller 1 may include at least one of a display device, an input device, and a sound output device. Further, the robot controller 1 may be configured to include the storage device 4.
  • FIG. 3 shows an example of the data structure of application information necessary for the operation plan of the robot 5 for executing the target task.
  • the application information includes environmental object information I1, general constraint condition information I2, operation object information I3, and skill database I4.
  • Environmental object information I1 is information about an object (also referred to as an "environmental object") that exists as an environment in a work space.
  • the environmental object is an object to be operated by the robot 5 (also referred to as an "operated object”), a reference object defined as a reference coordinate system handled by the robot 5 and the robot controller 1 (for example, a workbench).
  • the environmental object information I1 may include various information indicating the attributes and states of the environmental object such as the type of the environmental object and the position and orientation of the environmental object.
  • the environmental object information I1 may be information generated in advance based on the user's input (external input), or may be information representing the latest state of the environmental object recognized based on the measurement signal S2 or the like. good.
  • the generation or update of the environmental object information I1 in the latter case may be performed by the robot controller 1 or may be performed by another device.
  • General constraint condition information I2 is information indicating general constraint conditions when executing a target task.
  • the general constraint condition information I2 is, for example, a constraint condition that the robot 5 (robot arm) must not touch an obstacle when the target task is pick and place, and the robots 5 (robot arms) must not touch each other.
  • the constraint condition etc. is shown.
  • the operation target information I3 is information about the operation target to be operated by the robot 5 in the target task.
  • the operation object information I3 includes, for example, information indicating attributes and states relating to the operation object and information regarding a physical relationship (also referred to as “object-to-object relationship”) between objects including the operation object.
  • the information indicating the attribute and state of the operation object may be information generated in advance based on the input (external input) by the user, and represents the latest state of the operation object recognized based on the measurement signal S2 or the like. It may be information. In the latter case, the operation target information I3 may be generated or updated by the robot controller 1 or another device. Further, the information regarding the relationship between the objects is generated in advance based on the input (external input) by the user, for example, and is stored in the storage device 4.
  • Skill database I4 is a database related to skills in which specific movements of the robot 5 are modularized for each movement.
  • the information for each skill registered in the skill database I4 is also called “skill information”.
  • Skill information abstracts and expresses various actions of joining and releasing between objects, and includes various information necessary for executing the skill.
  • Skill information mainly includes labels that identify skills (also called “skill identification labels”), information about skill execution (also called “skill execution information”), and control commands for executing skills. Contains information about generation (also called “skill control command information”). Each piece of this information will be described in detail in the section "(8-1) Data Structure of Skill Information”.
  • skills corresponding to various movements for executing joining / releasing between objects in addition to skills corresponding to various movements for executing joining / releasing between objects, basic movements of the robot 5 other than joining / releasing objects (for example, grasping an object, grasping an object, etc.) Skills corresponding to (releasing an object) may be registered.
  • the application information may include various information necessary for the operation plan of the robot 5.
  • the application information may have object model information regarding an object model of each object (for example, a robot 5, an operation target, an environmental object, a reference object) to be recognized from the measurement signal S2 generated by the measurement device 7. ..
  • the object model information may include information necessary for the robot controller 1 to recognize the type, position, posture, currently executed operation, and the like of each object described above.
  • the object model information includes parameters of an inferior obtained by learning a learning model in machine learning such as a neural network. This inference device is learned in advance to output, for example, the type, position, posture, and the like of an object that is a subject in the image when an image is input.
  • the application information may have information about a reference object such as a workbench defined as a reference coordinate system handled by the robot controller 1 (for example, information about a position, a range, an inclination, etc.).
  • the application information may include information necessary to define the abstract state of the object in the workspace.
  • the application information may include information about the operating limit of the robot 5 controlled by the robot controller 1 (eg, the upper limit of the speed, acceleration, or angular velocity of the robot 5).
  • the information regarding the movement limit may be information that defines the movement limit for each movable part or joint of the robot 5.
  • the robot controller 1 sets constraints and evaluation functions to be satisfied in the target task based on predefined inter-object relationships, skill information, etc. in the target task involving joining / releasing, and optimizes the process. Is performed to generate the control command S1. As a result, the robot controller 1 appropriately formulates an operation plan of the robot 5 for the target task accompanied by joining / releasing, and appropriately controls the robot 5 so as to execute the target task.
  • FIG. 4 is an example of a functional block showing an outline of the processing of the robot controller 1.
  • the processor 11 of the robot controller 1 includes an abstract state setting unit 31, a dynamics / binding force setting unit 32, a target logic formula generation unit 33, a skill utilization setting unit 34, and an optimization processing unit 35. , And a control command generation unit 36.
  • FIG. 4 shows an example of data exchanged between blocks, but the present invention is not limited to this. The same applies to the figures of other functional blocks described later.
  • the abstract state setting unit 31 sets a state (also referred to as an "abstract state”) that abstractly represents the state of the object in the work space based on the environment object information I1 and the operation object information I3. Further, the abstract state setting unit 31 acquires information (also referred to as "object-to-object relationship information Ir") indicating the inter-object relationship in the target (goal) state indicating the state in which the target task is completed from the operation object information I3. do. The abstract state setting unit 31 recognizes the states of the environmental object and the operation object in the work space based on the measurement signal S2, and updates the environment object information I1 and the operation object information I3 based on the recognition result. You may.
  • the dynamics / binding force setting unit 32 defines the constraint between the objects to be joined / released based on the abstract state set by the abstract state setting unit 31 and the inter-object relationship information Ir, and is abstracted in the operation plan.
  • System dynamics model also referred to as "system model Mb" is set.
  • the target logical formula generation unit 33 generates a logical formula of the time phase logic (also referred to as “target logical formula”) representing the target state in the system model Mb.
  • the target logical expression generation unit 33 includes a target logical expression related to joining / releasing between objects (also referred to as “target-relationship integrated logical expression ⁇ 1”) and a target logical expression related to operations other than joining / releasing between objects (also referred to as “target-relationship integrated logical expression ⁇ 1”). It is also called "general target logical formula ⁇ 2”), and a logical formula of time phase logic is generated.
  • the target-related integrated logical formula ⁇ 1 and the general target logical formula ⁇ 2 are used as a part of the constraint condition or the part of the evaluation function in the optimization problem set in the optimization processing unit 35.
  • the skill utilization setting unit 34 is an operation command of the robot 5 based on the time phase logic using the skill (also referred to as “skill utilization operation command ⁇ 3”) and an evaluation function considering the use of the skill (“skill utilization evaluation function F s ””. Also called.) Is set respectively.
  • the skill utilization setting unit 34 extracts the skill information "Isn" necessary for generating an operation command or the like from the skill database I4 based on the inter-object relationship information Ir.
  • the skill utilization operation command ⁇ 3 is reflected in either the constraint condition or the evaluation function (objective function) in the optimization problem set in the optimization processing unit 35, and the skill utilization evaluation function F s is in the above optimization problem. It is reflected in the evaluation function.
  • the optimization processing unit 35 configures the trajectory planning problem of the robot 5 in the form of an optimization problem based on the target-related integrated logical formula ⁇ 1, the general target logical formula ⁇ 2, the skill utilization operation command ⁇ 3 , the skill utilization evaluation function Fs, and the like. do. Then, the optimization processing unit 35 generates a variable sequence “Z” indicating a time-series target trajectory by solving the configured optimization problem.
  • the control command generation unit 36 generates a control command S1 corresponding to the motion plan of the robot 5 based on the variable sequence Z indicating the target trajectory and the skill information Isn. Then, the control command generation unit 36 supplies the generated control command S1 to the robot 5 via the interface 13.
  • each component of the abstract state setting unit 31, the dynamics / binding force setting unit 32, the target logical formula generation unit 33, the skill utilization setting unit 34, the optimization processing unit 35, and the control command generation unit 36 is, for example, a processor. 11 can be realized by executing the program. Further, each component may be realized by recording a necessary program in an arbitrary non-volatile storage medium and installing it as needed. It should be noted that at least a part of each of these components is not limited to being realized by software by a program, but may be realized by any combination of hardware, firmware, and software. Further, at least a part of each of these components may be realized by using a user-programmable integrated circuit such as an FPGA (Field-Programmable Gate Array) or a microcontroller.
  • FPGA Field-Programmable Gate Array
  • this integrated circuit may be used to realize a program composed of each of the above components. Further, at least a part of each component may be composed of an ASIC (Application Specific Standard Produce), an ASIC (Application Specific Integrated Circuit), or a quantum computer control chip. As described above, each component may be realized by various hardware. The above is the same in other embodiments described later. Further, each of these components may be realized by the collaboration of a plurality of computers by using, for example, cloud computing technology.
  • ASIC Application Specific Standard Produce
  • ASIC Application Specific Integrated Circuit
  • quantum computer control chip As described above, each component may be realized by various hardware. The above is the same in other embodiments described later. Further, each of these components may be realized by the collaboration of a plurality of computers by using, for example, cloud computing technology.
  • E ij ( pi, p j , RPA ij , way)
  • RPA ij represents the relative position and posture of the object " pi" and the object “p j " .
  • way represents a method of joining / releasing, and also functions as label information for identifying a skill described later. Therefore, in this case, the above Eij is "The object pj is joined / released by the method way in the relative position / posture RPA ij with respect to the object p i ". Show that. In the case of cancellation, the relative position / posture RPA ij may not be specified in E ij .
  • the relative position / posture RPA ij represents the position and posture represented by the coordinate system “ ⁇ j ” of the object p j in the coordinate system “ ⁇ i ” of the object p i , and is as follows. It is represented by a set of a relative position vector "r pij " and a relative attitude vector "r Rij ".
  • RPA ij (r pij , r Rij )
  • the coordinate systems ⁇ i and ⁇ j are coordinate systems attached to any one of the objects p i and p j , respectively, and move together with the objects p i and p j .
  • the relative attitude vector may be expressed by using Euler angles or quaternions, or may be expressed as a vector in which the column vectors of the rotation matrix representing the attitudes are concatenated.
  • the method way corresponds to the skill identification label included in the skill information registered in the skill database I4, and associates the inter-object relationship information Ir with the corresponding skill information. Therefore, the same skill identification label as the method way is set in the skill information of the skill for realizing the method way. Further, in the storage device 4 and the like, information regarding the constraint equation between the corresponding objects is stored for each method way. As described above, the constraint equation between the corresponding objects is associated with the method way, and the abstract state setting unit 31 acquires the inter-object relation information Ir including the information regarding the constraint equation.
  • FIG. 5 shows the states of the table “T”, the part “p A ”, and the part “p B ” in the target state.
  • the target state is a state in which the part p A is placed on the table T and the part p B is placed on the part p A.
  • the abstract state setting unit 31 refers to the operation target information I3 corresponding to each of the operation target parts p A and the part p B , so that the object-to-object relationship “E” of the table T and the part p A can be referred to.
  • " TA " and the inter-object relationship " EAB " of parts p A and parts p B are defined as follows.
  • E TA (T, p A , (r pTA , r RTA ), put_on)
  • E AB (p A , p B , (r pAB , r RAB ), put_on)
  • (r pTA , r RTA ) indicates the position and orientation of the coordinate system of the part p A as seen from the coordinate system of the table T
  • “(r pAB , r RAB )” indicates the coordinates of the part p A.
  • the position and orientation of the coordinate system of the part pB as seen from the system are shown.
  • “put_on” is a value of the method way indicating the joining method of "putting on”.
  • the abstract state setting unit 31 acquires the inter-object relationship information Ir representing the inter-object relationship as described above from the operation target information I3, and has the dynamics / binding force setting unit 32, the target logic formula generation unit 33, and skill utilization. It is supplied to each processing block such as the setting unit 34.
  • the abstract state setting unit 31 generates an abstract state vector "X" (also simply referred to as a state X) based on the environmental object information I1 and the operation object information I3 as follows.
  • X [X o T , X h T , X e T ] T
  • X o is a vector representing the state of the operation target object (for example, position, posture, speed, etc.)
  • X h is a vector representing the state of the end effector of the operable robot 5
  • X is a vector representing the state of the environmental object.
  • X o [X o, 1 T , ..., X o, No T ]
  • X h [X h, 1 T , ..., X h, Nh T ]
  • X e [X e, 1 T , ..., X e, Ne T ] T
  • the operation object and the environmental object may be objects defined based on external input by the user before the motion planning.
  • the state vector X o corresponding to the parts contained in the box with a lid is defined based on an external input or the like, and the lid is used.
  • the state vector X e corresponding to the attached box may be defined by an external input or the like.
  • the information defined in this way is stored in advance in the storage device 4, for example, as environmental object information I1 or operation object information I3.
  • the abstract state setting unit 31 represents, for example, an abstract state representing the state of the abstract space before work based on the state recognition result such as the position and posture of each object in the work space recognized by analyzing the measurement signal S2. Determine the initial value of the vector X. If the environmental object information I1 and the operation object information I3 include information representing the initial state before work such as the position and posture of each object in advance, the abstract state setting unit 31 may use the environmental object information I1. And the initial value of the abstract state vector X may be determined by referring to the operation object information I3 and the like.
  • the dynamics / binding force setting unit 32 defines the constraints generated in the abstract space in which the abstract state vector X is defined, and sets the dynamics of the abstract space related to joining / releasing.
  • C hi , oji indicates a constraint equation coefficient matrix having the same number of row elements as the binding force ⁇ hi , oji , and "G hi , oji " indicates a predetermined function.
  • This constraint equation constrains the relative motion of the end effector and each object to be operated.
  • this constraint equation shows a constraint that the relative positions of the end effector hi and the operation target o j become exponentially 0 with the passage of time.
  • the position and translation speed of the end effector h i are set to “p x, hi “, “ py, hi “, “p z, hi “, “p ⁇ x, hi “, “p ⁇ y, hi “, “p ⁇ p. “ Z, hi ”, and the position and translation speed of the operation target o j are “p x, oji ”, “ py, oji ”, “p z, oji ”, “p ⁇ x, oji ”, “p ⁇ y ”. , Oj ”,“ p ⁇ z, oji ”, this constraint is given as the following equation.
  • the dynamics / binding force setting unit 32 refers to the inter-object relationship information Ir, and has a binding force vector “ ⁇ hi , ek ” between each end effector h i and each environmental object ek , and a constraint equation “C hi ”.
  • Ek X-G hi, ek ( X) 0 "
  • C hi , ek indicates a constraint type coefficient matrix.
  • G hi, ek (X) is a predetermined function.
  • the dynamics / constraint force setting unit 32 refers to the inter-object relationship information Ir and defines the constraint between the objects whose relationship is shown in the inter-object relationship information Ir.
  • the dynamics / binding force setting unit 32 determines the binding force " ⁇ om , on " between these objects.
  • the constraint expression "Com, on X- Gom , on (X) 0"
  • the constraint switch variable " ⁇ om , on " indicating the presence or absence of constraint are defined respectively.
  • Com , on " indicates a constraint-type coefficient matrix.
  • Gom , on (X) is a predetermined function.
  • the dynamics / constraint force setting unit 32 defines a constraint between a reference object such as a workbench defined as a reference coordinate system and each object (operation target object and environmental object). It should be noted that these constraints are stored in advance in the storage device 4, for example, as information on the relationship between objects Ir or information corresponding thereto.
  • “C oi , w " and “C ek , w " indicate constraint-type coefficient matrices, and "G oi , w (X)" and "G ek , w (X)" are predetermined functions. ..
  • the dynamics / binding force setting unit 32 has a binding force vector “ ⁇ ” that synthesizes the constraint switch variables of all the binding forces and constraint expressions related to these abstract spaces, a constraint equation coefficient matrix “Call”, and a constraint.
  • is a vector in which each constraint force vector is vertically connected
  • Call is a matrix in which each constraint expression coefficient matrix is vertically connected
  • Gall is a function in which each constraint expression is vertically connected. Represents a concatenated vector.
  • H blkdiag ( ⁇ h1 , o1 In h1, o1 , ..., ⁇ eNe, w IneNe, w )
  • "blkdiag” is a function that generates a block diagonal matrix
  • "In” represents a unit matrix of "n” rows and "n” columns.
  • n hi , oji " represents the number of elements of each binding force vector " ⁇ hi , oji ".
  • the dynamics / binding force setting unit 32 sets a system model Mb, which is a model representing the dynamics of the abstract space related to joining / releasing, by using these defined elements.
  • the system model Mb is represented by, for example, the difference equation representing the dynamics and the constraint equation shown below.
  • the first equation is a difference equation expressing the relationship between the abstract state at the time step "k” and the abstract state at the time step "k + 1".
  • "U” indicates an input in the abstract space (for example, an input to the robot 5)
  • "F” indicates a predefined function.
  • the control input may be velocity or acceleration.
  • the function F is stored in the storage device 4 or the like in advance.
  • the target logical formula generation unit 33 generates the target relation integrated logical formula ⁇ 1 regarding the joining / releasing of the objects based on the inter-object relationship information Ir and the system model Mb set by the dynamics / binding force setting unit 32.
  • FIG. 6 is a functional block diagram of the target logical formula generation unit 33 relating to the generation of the target relation integrated logical formula ⁇ 1.
  • the target logical formula generation unit 33 functionally has a target relational formula generation unit 331 and a target relational formula integration unit 332.
  • the target relation logical formula generation unit 331 individually represents a logical formula (also referred to as “target relation logical formula ⁇ e”) representing the relationship of any set (pair) of objects whose relation is defined by the inter-object relation information Ir. Generate.
  • the target relational formula generation unit 331 uses the following formula for the target relational formula ⁇ e representing the junctional relationship between the object “ oi ” and the object “ oj ” whose relationship is shown in the inter-object relational information Ir. Stipulated in.
  • the target logical expression generation unit 33 may express a logical expression by using negation " ⁇ ", logical inclusion " ⁇ ”, next “ ⁇ ", until “U”, and the like.
  • the above equation is stored in advance in a storage device 4 or the like.
  • the target relational formula generation unit 331 can suitably generate the target relational formula ⁇ e that individually represents the relationship between any two objects.
  • the target relational logic expression generation unit 331 is not limited to the linear temporal logic, and may express the logical expression by using any time phase logic such as MTL (Metric Temporal Logic) or STL (Signal Temporal Logic). ..
  • a continuous variable can be used as the constraint switch variable ⁇ s instead of the discrete variable of 0 or 1.
  • the ON and OFF of the constraint can be expressed as follows by using a certain constant " ⁇ ".
  • the target relational formula ⁇ e representing the joining relationship between the object o i and the object o j whose relationship is shown in the inter-object relationship information Ir can be expressed as follows.
  • the target relational formula integration unit 332 generates the target relational integrated logical formula ⁇ 1 by integrating the target relational formula ⁇ e generated by the target relational formula generation unit 331.
  • the target relation integrated formula ⁇ 1 is generated by combining all the target relation logical formulas ⁇ e individually generated between the two objects by the target relation logical formula generation unit 331 by the logical product.
  • FIG. 6B is an example of a flowchart showing a procedure for generating the target-related integrated logical formula ⁇ 1 executed by the target logical formula generation unit 33.
  • the target relational formula generation unit 331 generates the target relational formula ⁇ e that individually represents the relation between any two objects whose relation is defined by the inter-object relational information Ir (step S01). Then, the target relational formula integration unit 332 generates the target relation integrated logical formula ⁇ 1 in which the target relational formula ⁇ e generated by the target relational formula generation unit 331 is integrated (step S02).
  • the target logical formula generation unit 33 generates a general target logical formula ⁇ 2 including constraints other than joining / releasing based on the general constraint condition information I2.
  • the general constraint condition information I2 may include information about arbitrary constraints specified by the user, in addition to information about constraints that should be generally satisfied in the target task.
  • Skill Utilization Setting Unit 34 (8) Details of Skill Utilization Setting Unit (8-1) Data Structure of Skill Information First, the data structure of skill information included in the skill database I4 referred to by the skill utilization setting unit 34 will be described.
  • the skill information includes a skill identification label, skill execution information, and skill control command information, and has the following eight elements in detail. (Way, ⁇ s- , ⁇ s + , t s , J s , ⁇ s , f s , ⁇ s )
  • each symbol representing each element of skill information is defined as follows. way: Skill identification label ⁇ s- : Skill executable state set ⁇ s + : Skill execution state set t s : Skill time required J s : Skill setting cost ⁇ s : Skill execution abstract Operation command in space f s : Orbit generation function ⁇ s : Controller for realizing an orbit based on the orbit generation function
  • the skill's executable state set ⁇ s- , the state set after skill execution ⁇ s + , the time required for the skill t s , the cost J s , and the action command ⁇ s correspond to the skill execution information
  • the trajectory generation function f s and The controller ⁇ s corresponds to skill control command information.
  • the feasible state set ⁇ s - of the skill and the state set ⁇ s + after the skill execution are not only in the state "x" in the actual dynamics of the object in the workspace, but also in the actual dynamics of the object in the workspace. It may be a set including the binding force ⁇ , the input u for the robot 5, and the like. That is, the skill's executable state set ⁇ s - and the skill's post-execution state set ⁇ s + correspond to information indicating the skill's executable condition and the post-condition when the skill is executed.
  • the action command ⁇ s is a temporal logic expression that describes the action of transitioning from the skill's executable state set ⁇ s- to the state set ⁇ s + after the skill is executed, and is expressed by an arbitrary form of temporal logic proposition. You may.
  • the operation command ⁇ s is a temporal logic proposition that divides the state space and time into grids and specifies the rough movement (orbit, etc.) of the system using those grids. It may be represented by Logic Interface).
  • the orbit generation function f s and the controller ⁇ s correspond to skill control command information, and are learned in advance by arbitrary skill learning.
  • x 0 represents the initial state of the state x
  • u represents the actual input to the system (mainly the robot 5).
  • the orbital generation function f s and the controller ⁇ s can be parameterized by the parameters ⁇ 1 and ⁇ 2 such as f s (t, x 0 , ⁇ 1 ) and ⁇ s (t, x, ⁇ 2 ). good.
  • DMP Dynamic Movement Primitive
  • the cost Js will be supplementarily described.
  • the movement expressed in the abstract space and the movement realized in the actual robot are different.
  • the operation of screwing an object is modeled in an abstract space by simply reducing the relative distance between the objects to be screwed and turning the constraint switch variable into the ON state.
  • complicated operations such as rotating a screw with a screwdriver after manipulating the position of the object are required.
  • a cost Js representing information on how much input is required to execute the skill in an actual robot is defined. This makes it possible to suitably consider the energy required to move the actual robot even in the motion planning in the abstract space.
  • FIG. 7 shows a functional block diagram of the skill utilization setting unit 34.
  • the skill utilization setting unit 34 functionally includes a skill information acquisition unit 341, a skill tuple generation unit 342, a skill utilization operation command generation unit 343, and a skill utilization evaluation function generation unit 344.
  • FIG. 8 is an example of a flowchart executed by the skill utilization setting unit 34.
  • the skill information acquisition unit 341 processes step S11
  • the skill tuple generation unit 342 processes step S12
  • the skill utilization operation command generation unit 343 processes step S13 to evaluate skill utilization.
  • the function generation unit 344 performs the process of step S14.
  • the skill information acquisition unit 341 refers to the information regarding the constraint defined in the inter-object relationship information Ir, and acquires the necessary skill information Isn from the skill database I4 (step S11). Specifically, the skill information acquisition unit 341 extracts skill information having the same skill identification label as "way" included in the inter-object relationship information Ir as skill information Isn from the skill database I4.
  • the skill tuple generation unit 342 generates a skill tuple based on the skill information Isn acquired by the skill information acquisition unit 341 and the system model Mb (step S12).
  • the skill tuple is a set of variables of the system model Mb related to the skill information Isn , and specifically, the skill input "us” indicating ON (valid) or OFF (invalid) of the corresponding skill.
  • the skill tuple generation unit 342 generates a skill tuple representing a set of the skill input us and the constraint switch variable ⁇ s for each skill information Isn .
  • the skill tuple may include a binding force " ⁇ s " in addition to the skill input us and the constraint switch variable ⁇ s . In this way, the skill tuple generation unit 342 redefines the skill information Isn so as to correspond to the system model Mb.
  • the skill utilization operation command generation unit 343 generates a skill utilization operation command ⁇ 3 that expresses the joining / releasing operation corresponding to each of the skill tuples generated in step S12 by the time phase logic (step S13). Further, the skill utilization evaluation function generation unit 344 generates a skill utilization evaluation function F s in consideration of the joining / releasing operation corresponding to the skill tuple generated in step S12 (step S14). Note that steps S13 and S14 are in no particular order and may be performed at the same time, or step S14 may be executed first.
  • the skill utilization operation command generation unit 343 generates a time-phase logic command that realizes the following operations (A) to (C) as the skill utilization operation command ⁇ 3 regarding the joining operation by skill execution in the abstract space.
  • the skill utilization operation command generation unit 343 generates, for example, a time phase logic command that realizes the following operations (D) to (F) as the skill utilization operation command ⁇ 3 regarding the connection release operation by skill execution in the abstract space. do.
  • first logical proposition example and the second logical proposition example which are specific examples of the logical proposition of the skill utilization operation command ⁇ 3, will be described in order.
  • joining operations (A) to (C) in the case of using LTL will be described respectively.
  • the operation command " ⁇ 31 " corresponding to the operation (A) uses the skill input "us, on “ in which ON is represented by “1” and OFF is represented by "0". It is represented by (1).
  • the operation command ⁇ s is a temporal logic equation describing the operation of transitioning from the skill's executable state set ⁇ s ⁇ to the state set ⁇ s + after the skill is executed. Is a logical expression that specifies how to move from step "k” to step “k + n s ". However, " ns " represents the number of steps corresponding to the case where the required time length ts defined in the skill is discretized.
  • equation (3) the temporal relationship between the skill inputs us and on and the constraint switch variable ⁇ s is expressed as a logical proposition.
  • An example of giving the operation command ⁇ 33 as an equation constraint will be described later as an example of a second logical proposition.
  • the skill utilization operation command generation unit 343 sets the skill utilization operation command ⁇ 3 in which the operation commands ⁇ 31 to ⁇ 33 corresponding to the operations (A) to (C) are integrated by the logical product. ..
  • the second logical propositional example expresses the temporal relationship between the skill input us and the constraint switch variable ⁇ s with respect to the motion (C) in the joining and releasing motions by using an equation constraint.
  • the skill utilization operation command generation unit 343 sets the equation constraint shown in the following equation (4).
  • Equation (4) expresses the discrete-time dynamics that expresses how the constraint switch variable changes depending on the value of the skill input.
  • the skill utilization operation command generation unit 343 integrates the equation (1) corresponding to the operation (A) and the equation (2) corresponding to the operation (B) as the skill utilization operation command ⁇ 3. Generate the current phase logic command.
  • the skill utilization evaluation function generation unit 344 sets a skill utilization evaluation function F s that reflects the cost J s included in the skill information Isn corresponding to the generated skill taple.
  • the skill utilization evaluation function F s is, for example, a function that takes as arguments the cost J s corresponding to the generated skill taple and the skill input us .
  • the specific shape of the skill utilization evaluation function F s is preset according to the target task.
  • the evaluation function "J" used in the motion plan using the skill utilization evaluation function F s is expressed by, for example, the following equation (5).
  • “k” represents a time step (time), and “N” represents the number of time steps corresponding to the required time length of the entire target task.
  • “L (X [k], U [k])” is an evaluation function that evaluates other than the joining / releasing operation by using the state X of the abstract space and the input U as arguments.
  • the evaluation function L may be an evaluation function used in any motion plan.
  • the evaluation function L is an evaluation function that minimizes the control input of the robot 5 (that is, minimizes the energy consumed by the robot 5) and / and minimizes the execution time length.
  • the robot controller 1 can reduce the number of times the skill is executed and plan an efficient operation. Further, since the evaluation function J includes an evaluation function L that evaluates other than the joining / releasing operation in addition to the skill utilization evaluation function Fs , the robot controller 1 is a target task in consideration of minimizing the input in the abstract space. It is also possible to perform overall optimization of.
  • the optimization processing unit 35 evaluates using the system model Mb, the target-related integrated logical formula ⁇ 1 and the general target logical formula ⁇ 2, the skill utilization evaluation function Fs , and the skill utilization operation command ⁇ 3. Construct an optimization problem, which is an orbital planning problem that minimizes the function J. Then, the optimization processing unit 35 calculates the variable sequence Z representing the optimum target trajectory by solving the configured optimization problem. In this case, the optimization processing unit 35 constitutes the optimization problem represented by the following equation (6).
  • variable string Z is a collection of all the variables necessary for optimization such as the state column X [k], the skill input column Us [k], and the constraint switch variable sequence ⁇ [k] in the abstract space.
  • G (Z) represents a vector in which the target-related integrated logical formula ⁇ 1, the general target logical formula ⁇ 2, the skill utilization operation command ⁇ 3, and the system model Mb are put together as constraints.
  • the optimization processing unit 35 when a temporal logic formula such as a target relation integrated logic formula ⁇ 1, a general target logic formula ⁇ 2, and a skill utilization operation command ⁇ 3 is expressed using a linear logic formula or STL, the optimization processing unit 35 is in these cases. It is possible to convert a phase logical expression into a constraint condition and use it. Specifically, in this case, the optimization processing unit 35 converts these time-phase logical expressions into equality / inequality constraints by using a conversion algorithm to any equation / inequality constraint, and converts them. Expression / inequality constraints are treated as elements of G (Z).
  • the optimization processing unit 35 uses these time-phase logical expressions. It can also be incorporated into the evaluation function J (Z). It should be noted that which kind of temporal logic is used (and whether it is an element of G (Z) or incorporated in the evaluation function J (Z)) is determined, for example, according to the set target task.
  • the optimization processing unit 35 calculates the variable sequence Z in the target trajectory by solving the optimization problem shown in the equation (6).
  • the control command generation unit 36 represents the state sequence X [k] representing the state trajectory of the abstract space and the skill input of the time series from the variable sequence Z calculated by the optimization processing unit 35. Extract the skill input column Us [k]. Then, the control command generation unit 36 is based on the state column X [k], the skill input column Us [k], and the skill information Isn , and the control command S1 corresponding to the controller scheduled in the actual robot system. To generate.
  • FIG. 9 is an example of a functional block diagram showing the functional configuration of the control command generation unit 36.
  • the control command generation unit 36 functionally includes a state sequence decomposition unit 361, a controller component unit 362, and a control command integration unit 363.
  • FIG. 10 is an example of a flowchart executed by the control command generation unit 36.
  • the state sequence decomposition unit 361 performs the process of step S21
  • the controller component unit 362 processes the step S22
  • the control command integration unit 363 processes the step S23.
  • the state column decomposition unit 361 decomposes the state column X [k] based on the skill input column Us [k] (step S21). In this case, the state column decomposition unit 361 determines which skill is being used at each time (time step) from the skill input column Us [k], and performs the state column X [k] for each skill to be executed. It is decomposed into the state columns (also called "state subsequences”) corresponding to.
  • the controller component unit 362 configures a controller for each of the state subsequences obtained by decomposing the state sequence X [k] for each corresponding skill (step S22).
  • the controller component unit 362 configures a controller for each of the sub-state sequences by using the controller ⁇ s included in the skill information Isn.
  • the control command integration unit 363 integrates the controllers configured in step S22 and generates the entire control command S1 scheduled for the target task (step S23).
  • FIG. 11 shows a time step “k” when there are two skills to be executed (first skill, second skill), a skill input column “ Us1 [k]” of the first skill, and a second skill.
  • the time-series relationship between the skill input column “ Us2 [k]” and the index “Idx” used to identify the sub-state column is shown. However, here, it is assumed that the required time step number ns of each skill is 3 steps.
  • the state column decomposition unit 361 generates the index column Idx [k] using the information of the skill input columns Us1 [k], Us2 [k] and the required time step number ns of the skill.
  • the index column Idx [k] is an index column indicating which skill is used in the k (here, 0 to 9) step.
  • the state column decomposition unit 361 decomposes the state column X [k] from the obtained index column Idx [k]. Specifically, the state column decomposition unit 361 specifies each unit of the state column X [k] based on the change in the index column Idx [k]. In this case, the state column decomposition unit 361 sequentially specifies the group from the start time of the target task or the end time of the group specified immediately before to the time when the index changes next. Then, the state sequence decomposition unit 361 extracts each specified group as a state subsequence. Further, the state sequence decomposition unit 361 adds information on the index change to each state subsequence.
  • first subsequence to fourth subsequence are generated based on the change of the index column Idx [k].
  • First subsequence (Idx 0 ⁇ 1): ⁇ X [0], X [1] ⁇
  • Second subsequence (Idx 1 ⁇ 0): ⁇ X [1], X [2], X [3], X [4] ⁇
  • Third subsequence (Idx 0 ⁇ 2): ⁇ X [4], X [5], X [6], X [7] ⁇
  • Fourth subsequence (Idx 2): ⁇ X [7], X [8], X [9] ⁇
  • the state column decomposition unit 361 can decompose the state column X [k] according to the skill execution timing based on the skill input column Us [k].
  • the controller component unit 362 configures a controller for each of the state subsequences generated by the state sequence decomposition unit 361.
  • the controller component 362 is for the actual system based on the information of the state subsequence for the state subsequence in which the index Idx changes from 0 (that is, corresponding to the state in which the skill is not used).
  • a controller for generating a smooth target trajectory and following the generated target trajectory is configured. The generation of the target trajectory and the configuration of the controller in this case may be performed based on the method used in any robot control. In the specific example shown in FIG. 11, the controller component 362 generates the target trajectory and configures the controller described above for the first subsequence and the third subsequence.
  • the controller component 362 has the controller ⁇ s (“(8-1)) extracted from the corresponding skill information for the state subsequence in which the index Idx changes from other than 0 (that is, corresponding to the skill usage state). See section "Data Structures of Skill Information"). Then, the controller component 362 sets the parameters of the initial value and the terminal value set for the controller ⁇ s by using the first state and the last state of the target state subsequence. In the specific example shown in FIG. 11, the controller component unit 362 configures the controller using skill information for the second subsequence and the fourth subsequence.
  • controller component unit 362 can suitably configure a controller for any state subsequence.
  • the control command integration unit 363 generates the entire scheduled control command S1 from the control generated by the control component unit 362 for each state subsequence.
  • the control command integration unit 363 generates the control command S1 including the following first control step to the fourth control step corresponding to the first subsequence to the fourth subsequence, respectively.
  • the first control step is a control step that uses a follow-up controller for the generated target trajectory (that is, the trajectory from X [0] to X [1]).
  • the first control step sets the target state X [1], and reaching the target state is a transition condition to the second control step (that is, an end condition of the first control step). Then, when it is determined that the transition condition to the second control step is satisfied based on the state recognition result or the like by the measurement signal S2, the transition from the first control step to the second control step is performed.
  • the second control step is a control step that uses the controller included in the skill information corresponding to the first skill.
  • the target state X [4] is set, and reaching the target state is set as a transition condition to the third control step (that is, an end condition of the second control step). Then, when the transition condition to the third control step is satisfied, the transition from the second control step to the third control step is performed.
  • the third control step is a control step that uses a follow-up controller for the generated target trajectory (that is, the trajectory from X [4] to X [7]).
  • the third control step sets the target state X [7], and reaching the target state is a transition condition to the fourth control step (that is, an end condition of the third control step). Then, when the transition condition to the fourth control step is satisfied, the transition from the third control step to the fourth control step is performed.
  • the fourth control step is a control step that uses the controller included in the skill information corresponding to the second skill.
  • the target state X [9] is set, and reaching the target state is a condition for ending the fourth control step. Then, when the transition condition to the second control step is satisfied based on the measurement signal S2 or the like, the fourth control step ends.
  • control command generation unit 36 has a state sequence X [k] representing the state trajectory of the abstract space extracted from the variable sequence Z by the optimization processing unit 35 and a skill input string Us [representing the time-series skill input. k] and the skill information Isn, the control command S1 can be suitably generated.
  • FIG. 12 is an example of a flowchart showing a processing procedure related to an operation plan of the robot 5 executed by the robot controller 1.
  • the abstract state setting unit 31 of the robot controller 1 extracts the inter-object relationship information Ir from the operation target information I3 stored in the storage device 4 (step S31). Then, the abstract state setting unit 31 sets the abstract state of each object in the work space including the end effector of the robot 5, the operation target object, and the environmental object (step S32).
  • the dynamics / binding force setting unit 32 sets the system model Mb, which is an abstract system dynamics in consideration of the constraint between the objects, based on the inter-object relationship information Ir extracted in step S31 (step S33).
  • the target logical formula generation unit 33 generates the target relation integrated logical formula ⁇ 1 representing the final state regarding the joining / disengaging by executing the flowchart shown in FIG. 6B based on the inter-object relation information Ir ().
  • Step S34 Further, the target logical formula generation unit 33 generates a general target logical formula ⁇ 2 representing a state to be satisfied other than joining / releasing (for example, a constraint condition such as obstacle avoidance) based on the general constraint condition information I2 (step S35). ..
  • the skill utilization setting unit 34 extracts the skill information Isn from the skill database I4 and generates the skill utilization operation command ⁇ 3 (step S36). Further, the skill utilization setting unit 34 generates the skill utilization evaluation function Fs based on the skill information Isn (step S37). Specifically, the skill utilization setting unit 34 generates the skill utilization operation command ⁇ 3 and the skill utilization evaluation function F s by executing the flowchart shown in FIG. 8 in steps S36 and S37.
  • the optimization processing unit 35 constructs an optimization problem based on the processing results of steps S33 to S37, and calculates a target trajectory in the abstract space by solving the problem (step S38).
  • the optimization processing unit 35 constitutes the optimization problem represented by the equation (6).
  • the optimization processing unit 35 extracts the state column X [k] and the skill input column Us [k] from the variable sequence Z indicating the calculated target trajectory.
  • control command generation unit 36 generates the control command S1 based on the target trajectory calculated in step S38 (step S39).
  • the control command generation unit 36 is based on the state column X [k], the skill input column Us [k] representing the time-series skill input, and the skill information Isn . , Generates the control command S1 in the actual robot system.
  • the robot controller 1 executes an operation planning method having a low calculation cost in consideration of joining objects to each other.
  • the robot controller 1 uses temporal logic and skills in the abstract space to express the joining of abstract objects, and plans to reduce the calculation cost even in multi-stage tasks including operations involving joining and the like. I do.
  • the robot controller 1 preferably calculates the control command S1 in the actual system by using the motion planning result and the skill information in the abstract space.
  • the gripping target object can be gripped by "skill execution in the grippable area" in the abstract space, and the motion plan is formulated using this expression.
  • the motion planning problem can be simplified by expressing the skill in which the motion related to the joining of objects and the like is modularized in the abstract space.
  • FIG. 13 shows a schematic configuration diagram of the temporal logic expression generation device 1X in the second embodiment.
  • the time phase logical formula generation device 1X mainly includes a target relational formula generation means 331X and a target relational formula integration means 332X.
  • the time phase logic expression generation device 1X may be composed of a plurality of devices.
  • the time phase logic expression generation device 1X can be, for example, the robot controller 1 in the first embodiment.
  • the target relationship logical expression generation means 331X is a temporal logic expression that expresses the relationship in the target state for each set of objects for which the relationship is defined, based on the object-to-object relationship information that represents the relationship between the objects in the target state related to the work of the robot. Generate a goal relational calculus that is.
  • the target relational formula generation means 331X can be, for example, the target relational formula generation unit 331 in the first embodiment.
  • the target relational formula integration means 332X generates a time phase logical formula that integrates the target relational formula.
  • the target relational formula integration means 332X can be, for example, the target relational formula integration unit 332 in the first embodiment.
  • the time phase logical formula generator 1X or another device to which the integrated target relational formula is supplied from the time phase logical formula generator 1X is the integrated target relation.
  • the logical expression is reflected in the constraint condition or evaluation function used for the optimization process.
  • a target trajectory related to the robot is calculated by optimization using constraints and an evaluation function, and a control command for the robot is generated based on the target trajectory.
  • the joining / releasing operation between the objects may be realized.
  • the joining / releasing operation between the objects may be expressed by switching ON and OFF of the constraint switch variable ⁇ without using the skill.
  • the time-phase logic expression generated by the time-phase logic expression generation device 1X is not limited to the one that defines only the work of the robot, and may include the contents related to the manual work.
  • FIG. 14 is an example of the flowchart in the second embodiment.
  • the target relationship logical expression generation means 331X is a temporal logic expression that expresses the relationship in the target state for each set of objects for which the relationship is defined, based on the object-to-object relationship information that represents the relationship between the objects in the target state related to the work of the robot.
  • Generate a goal relational equation step S41).
  • the target relational formula integration means 332X generates a time phase logical formula in which the target relational formula is integrated (step S42).
  • the time phase logic expression generation device 1X can suitably generate a time phase logic expression representing the relationship between the objects in the target state regarding the work of the robot.
  • the temporal logic formula generated by the time phase logic formula generation device 1X is suitably used for the motion planning of the robot.
  • FIG. 15 shows a schematic configuration diagram of the operation command generation device 1Y according to the third embodiment.
  • the operation command generation device 1Y mainly has a skill information acquisition unit 341Y, a skill tuple generation unit 342Y, and a skill utilization operation command generation unit 343Y.
  • the operation command generation device 1Y may be composed of a plurality of devices.
  • the operation command generation device 1Y can be, for example, the robot controller 1 in the first embodiment.
  • the skill information acquisition means 341Y acquires skill information related to the skill used for the motion planning of the robot.
  • the skill information acquisition means 341Y can be, for example, the skill information acquisition unit 341 in the first embodiment.
  • the skill tuple generation means 342Y generates a skill tuple, which is a set of variables related to the skill in the system model set in the motion plan, based on the skill information.
  • the above system model can be, for example, the system model Mb in the first embodiment.
  • the skill tuple generation means 342Y can be, for example, the skill tuple generation unit 342 in the first embodiment.
  • the skill use action command generation means 343Y generates a skill use action command which is a time phase logic command representing an action corresponding to the skill tuple.
  • the skill utilization operation command generation means 343Y can be, for example, the skill utilization operation command generation unit 343 in the first embodiment.
  • FIG. 16 is an example of the flowchart in the third embodiment.
  • the skill information acquisition means 341Y acquires skill information related to the skill used for the motion planning of the robot (step S51).
  • the skill tuple generation means 342Y generates a skill tuple, which is a set of variables related to the skill in the system model set in the motion plan, based on the skill information (step S52).
  • the skill utilization operation command generation means 343Y generates a skill utilization operation command which is a time phase logic command representing an operation corresponding to the skill tuple (step S53).
  • the motion command generation device 1Y can suitably generate motion commands for motion planning using skill expressions even in tasks that require complicated motions such as joining between objects. ..
  • Non-transitory Computer Readable Medium Non-Transitory Computer Readable Medium
  • Non-temporary computer-readable media include various types of tangible storage media (Tangible Storage Medium).
  • non-temporary computer-readable media examples include magnetic storage media (eg, flexible disks, magnetic tapes, hard disk drives), magneto-optical storage media (eg, magneto-optical disks), CD-ROMs (ReadOnlyMemory), CD-Rs, Includes CD-R / W, semiconductor memory (eg, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (RandomAccessMemory)).
  • the program may also be supplied to the computer by various types of temporary computer-readable media (Transitory ComputerReadable Medium). Examples of temporary computer readable media include electrical, optical, and electromagnetic waves.
  • the temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.
  • Robot controller 1X Temporal logic generator 1Y Operation command generator 4 Storage device 5 Robot 7 Measuring device 41 Application information storage unit 100 Robot control system

Landscapes

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

Abstract

時相論理式生成装置1Xは、主に、目標関係論理式生成手段331Xと、目標関係論理式統合手段332Xとを有する。目標関係論理式生成手段331Xは、ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、関係が規定された物体の組の各々について目標状態における関係を表す時相論理式である目標関係論理式を生成する。目標関係論理式統合手段332Xは、目標関係論理式を統合した時相論理式を生成する。

Description

時相論理式生成装置、時相論理式生成方法及び記憶媒体
 本開示は、ロボットの動作計画に関する時相論理式を生成する時相論理式生成装置、時相論理式生成方法及び記憶媒体の技術分野に関する。
 ロボットに作業させるタスクが与えられた場合に、当該タスクを実行するために必要なロボットの制御を行う制御手法が提案されている。例えば、特許文献1には、ハンドを有するロボットにより複数の物品を把持して容器に収容する場合に、ハンドが物品を把持する順序の組み合わせを決定し、組み合わせ毎に算出した指標に基づき、収容する物品の順序を決定するロボット制御装置が開示されている。また、特許文献2には、シーケンスを示す順序情報に基づいて、システムの性質を表す時相論理式を生成するコンピュータプログラムが開示されている。
特開2018-51684号公報 国際公開WO2008/123021
 部品の組み立て等の複数物体の接合、接触を伴うような複雑なタスクに対し、時相論理を用いたロボットの動作計画を行う場合、必要な動作を反映した時相論理式を的確に生成する必要がある。このような時相論理式の生成については、特許文献1及び特許文献2に何ら開示されていない。
 本開示の目的の1つは、上述した課題を鑑み、ロボットの動作計画に必要な時相論理式を好適に生成することが可能な時相論理式生成装置、時相論理式生成方法及び記憶媒体を提供することである。
 時相論理式生成装置の一の態様は、
 ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、前記関係が規定された物体の組の各々について前記目標状態における関係を表す時相論理式である目標関係論理式を生成する目標関係論理式生成手段と、
 前記目標関係論理式を統合した時相論理式を生成する目標関係論理式統合手段と、
を有する時相論理式生成装置である。
 時相論理式生成方法の一の態様は、
 コンピュータにより、
 ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、前記関係が規定された物体の組の各々について前記目標状態における関係を表す時相論理式である目標関係論理式を生成し、
 前記目標関係論理式を統合した時相論理式を生成する、
時相論理式生成方法。
 記憶媒体の一の態様は、
 ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、前記関係が規定された物体の組の各々について前記目標状態における関係を表す時相論理式である目標関係論理式を生成し、
 前記目標関係論理式を統合した時相論理式を生成する処理をコンピュータに実行させるプログラムが格納された記憶媒体である。
 ロボットの動作計画に用いる時相論理式を好適に生成することができる。
第1実施形態におけるロボット制御システムの構成を示す。 ロボットコントローラのハードウェア構成を示す。 アプリケーション情報のデータ構造の一例を示す。 ロボットコントローラの機能ブロックの一例である。 目標状態におけるテーブルと、パーツとの状態を示す。 目標関係統合論理式の生成に関する目標論理式生成部の機能的なブロック図である。 スキル利用設定部の機能的なブロック図を示す。 スキル利用設定部が実行するフローチャートの一例である。 制御指令生成部の機能的な構成を表す機能ブロック図の一例である。 制御指令生成部が実行するフローチャートの一例である。 タイムステップと、第1スキルのスキル入力列と、第2スキルのスキル入力列と、サブ状態列の識別に用いるインデックスとの時系列での関係を示す。 動作計画に関する処理手順を示すフローチャートの一例である。 第2実施形態における時相論理式生成装置の概略構成を示す。 第2実施形態において時相論理式生成装置が実行するフローチャートの一例である。 第3実施形態における動作指令生成装置の概略構成を示す。 第3実施形態において動作指令生成装置が実行するフローチャートの一例である。
 以下、図面を参照しながら、制御装置、制御方法及び記憶媒体の実施形態について説明する。
 <第1実施形態>
 (1)システム構成
 図1は、第1実施形態に係るロボット制御システム100の構成を示す。ロボット制御システム100は、主に、ロボットコントローラ1と、記憶装置4と、ロボット5と、計測装置7と、を備える。ロボット制御システム100は、物体間の接合(接触を含む、以下同じ)又は接合解除の少なくともいずれかを伴うタスクを、ロボット5により好適に実行する。
 ロボットコントローラ1は、ロボット5の動作計画を策定し、計画した動作をロボット5に実行させるための制御指令「S1」を生成し、ロボット5に当該制御指令S1を供給する。この場合、ロボットコントローラ1は、ロボット5に実行させるタスク(「目的タスク」とも呼ぶ。)を、ロボット5が受付可能な単純なタスクのタイムステップ(時間刻み)毎のシーケンスに変換する。そして、ロボットコントローラ1は、生成したシーケンスの実行指令に相当する制御指令S1に基づき、ロボット5を制御する。本実施形態では、目的タスクは、物体間の接合又は接合解除の少なくともいずれか(単に「接合・解除」と呼ぶ。)を伴うタスクに設定される。なお、接合には、例えば、物体同士をねじ止めする、物体同士を嵌め合わせる、又は物体同士を積み重ねるなどの動作などが含まれる。
 また、ロボットコントローラ1は、記憶装置4、ロボット5、及び計測装置7と、通信網を介し、又は、無線若しくは有線による直接通信により、データ通信を行う。例えば、ロボットコントローラ1は、制御指令S1の生成に必要な情報を記憶装置4から受信する。また、ロボットコントローラ1は、計測装置7から計測信号「S2」を受信する。
 記憶装置4は、アプリケーション情報記憶部41を有する。アプリケーション情報記憶部41は、ロボット5の動作計画の策定(即ち、ロボット5が実行すべきシーケンスを生成)に必要なアプリケーション情報を記憶する。アプリケーション情報の詳細は、図3を参照しながら後述する。記憶装置4は、ロボットコントローラ1に接続又は内蔵されたハードディスクなどの外部記憶装置であってもよく、フラッシュメモリなどの記憶媒体であってもよい。また、記憶装置4は、ロボットコントローラ1と通信網を介してデータ通信を行うサーバ装置であってもよい。この場合、記憶装置4は、複数のサーバ装置から構成されてもよい。
 ロボット5は、ロボットコントローラ1から供給される制御指令S1に基づき目的タスクに関する作業を行う。ロボット5は、例えば、組み立て工場、食品工場などの各種工場、又は、物流の現場などで動作を行うロボットである。ロボット5は、垂直多関節型ロボット、水平多関節型ロボット、又はその他の任意の種類のロボットであってもよい。ロボット5は、ロボット5の状態を示す状態信号をロボットコントローラ1に供給してもよい。この状態信号は、ロボット5全体又は関節などの特定部位の状態(位置、角度等)を検出するセンサの出力信号であってもよく、ロボット5の動作の進捗状態を示す信号であってもよい。
 計測装置7は、目的タスクが実行される作業空間内の状態を検出するカメラ、測域センサ、ソナーまたはこれらの組み合わせとなる1又は複数のセンサである。計測装置7は、生成した計測信号S2をロボットコントローラ1に供給する。計測装置7は、作業空間内で移動する自走式又は飛行式のセンサ(ドローンを含む)であってもよい。また、計測装置7は、ロボット5に設けられたセンサ、及び作業空間内の他の物体に設けられたセンサなどを含んでもよい。また、計測装置7は、作業空間内の音を検出するセンサを含んでもよい。このように、計測装置7は、作業空間内の状態を検出する種々のセンサであって、任意の場所に設けられたセンサを含んでもよい。
 なお、図1に示すロボット制御システム100の構成は一例であり、当該構成に種々の変更が行われてもよい。例えば、ロボット5は、複数台存在してもよく、ロボットアームなどの夫々が独立して動作する制御対象物を複数有してもよい。これらの場合であっても、ロボットコントローラ1は、ロボット5毎又は制御対象物毎に目的タスクを実行するための制御指令S1を、対象のロボット5に送信する。また、ロボット5は、作業空間内で動作する他のロボット、作業者又は工作機械と協働作業を行うものであってもよい。また、計測装置7は、ロボット5の一部であってもよい。また、ロボットコントローラ1は、複数の装置から構成されてもよい。この場合、ロボットコントローラ1を構成する複数の装置は、予め割り当てられた処理を実行するために必要な情報の授受を、これらの複数の装置間において行う。また、ロボットコントローラ1とロボット5とは、一体に構成されてもよい。
 (2)ハードウェア構成
 図2は、ロボットコントローラ1のハードウェア構成を示す。ロボットコントローラ1は、ハードウェアとして、プロセッサ11と、メモリ12と、インターフェース13とを含む。プロセッサ11、メモリ12及びインターフェース13は、データバス10を介して接続されている。
 プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、ロボットコントローラ1の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ11は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)などのプロセッサである。プロセッサ11は、複数のプロセッサから構成されてもよい。プロセッサ11は、コンピュータの一例である。
 メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ12には、ロボットコントローラ1が実行する処理を実行するためのプログラムが記憶される。なお、メモリ12が記憶する情報の一部は、ロボットコントローラ1と通信可能な1又は複数の外部記憶装置(例えば記憶装置4)により記憶されてもよく、ロボットコントローラ1に対して着脱自在な記憶媒体により記憶されてもよい。
 インターフェース13は、ロボットコントローラ1と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。例えば、インターフェース13は、例えば、タッチパネル、ボタン、キーボード、音声入力装置などのユーザの入力(外部入力)を受け付ける入力装置、ディスプレイ、プロジェクタ等の表示装置、スピーカなどの音出力装置等とのインターフェース動作を行ってもよい。
 なお、ロボットコントローラ1のハードウェア構成は、図2に示す構成に限定されない。例えば、ロボットコントローラ1は、表示装置、入力装置又は音出力装置の少なくともいずれかを内蔵してもよい。また、ロボットコントローラ1は、記憶装置4を含んで構成されてもよい。
 (3)アプリケーション情報
 次に、アプリケーション情報記憶部41が記憶するアプリケーション情報のデータ構造について説明する。
 図3は、目的タスクを実行するためのロボット5の動作計画に必要なアプリケーション情報のデータ構造の一例を示す。図3に示すように、アプリケーション情報は、環境物体情報I1と、一般制約条件情報I2と、操作対象物情報I3と、スキルデータベースI4とを含む。
 環境物体情報I1は、作業空間内における環境として存在する物体(「環境物体」とも呼ぶ。)に関する情報である。具体的には、環境物体は、ロボット5により操作対象となる物体(「操作対象物」とも呼ぶ。)、ロボット5、及びロボットコントローラ1が扱う基準座標系として定義される基準物体(例えば作業台)のいずれにも該当しない物体(例えば障害物等)である。環境物体情報I1は、例えば、環境物体の種類、環境物体の位置姿勢などの環境物体の属性及び状態を示す種々の情報を含んでもよい。また、環境物体情報I1は、ユーザの入力(外部入力)に基づき予め生成された情報であってもよく、計測信号S2等に基づき認識された環境物体の最新の状態を表す情報であってもよい。なお、後者の場合の環境物体情報I1の生成又は更新は、ロボットコントローラ1により行われてもよく、他の装置により行われてもよい。
 一般制約条件情報I2は、目的タスクを実行する際の一般的な制約条件を示す情報である。一般制約条件情報I2は、例えば、目的タスクがピックアンドプレイスの場合、障害物にロボット5(ロボットアーム)が接触してはいけないという制約条件、ロボット5(ロボットアーム)同士が接触してはいけないという制約条件などを示す。
 操作対象物情報I3は、目的タスクにおいてロボット5による操作対象となる操作対象物に関する情報である。操作対象物情報I3は、例えば、操作対象物に関する属性及び状態を示す情報と、操作対象物を含む物体間の物理的な関係(「物体間関係」とも呼ぶ。)に関する情報と、を含んでいる。操作対象物に関する属性及び状態を示す情報は、ユーザによる入力(外部入力)に基づき予め生成された情報であってもよく、計測信号S2等に基づき認識された操作対象物の最新の状態を表す情報であってもよい。なお、後者の場合の操作対象物情報I3の生成又は更新は、ロボットコントローラ1により行われてもよく、他の装置により行われてもよい。また、物体間関係に関する情報は、例えば、ユーザによる入力(外部入力)に基づき予め生成され、記憶装置4に記憶されている。
 スキルデータベースI4は、ロボット5の特定の動作を動作毎にモジュール化したスキルに関するデータベースである。スキルデータベースI4に登録されたスキル毎の情報を「スキル情報」とも呼ぶ。スキル情報は、物体間の接合・解除の各種動作を抽象化して表現しており、スキルを実行するために必要な種々の情報を含んでいる。スキル情報は、主に、スキルを識別するラベル(「スキル識別ラベル」とも呼ぶ。)と、スキルの実行に関する情報(「スキル実行情報」とも呼ぶ。)と、スキルを実行するための制御指令を生成に関する情報(「スキル制御指令情報」とも呼ぶ。)と、を含んでいる。これの各情報については、「(8-1)スキル情報のデータ構造」のセクションにおいて詳しく説明する。なお、スキルデータベースI4には、スキル情報として、物体間の接合・解除を実行する各種動作に対応するスキルに加えて、物体の接合・解除以外のロボット5の基本動作(例えば、物体を掴む、物体を離す)に対応するスキルが登録されていてもよい。
 なお、アプリケーション情報は、上述した情報の他、ロボット5の動作計画に必要な種々の情報を含んでもよい。
 例えば、アプリケーション情報は、計測装置7が生成した計測信号S2から認識すべき各物体(例えば、ロボット5、操作対象物、環境物体、基準物体)の物体モデルに関する物体モデル情報を有してもよい。この場合、物体モデル情報は、上述した各物体の種類、位置、姿勢、現在実行中の動作などをロボットコントローラ1が認識するために必要な情報を含んでもよい。この場合、物体モデル情報は、例えば、ニューラルネットワークなどの機械学習における学習モデルを学習することで得られた推論器のパラメータを含む。この推論器は、例えば、画像が入力された場合に、当該画像において被写体となる物体の種類、位置、姿勢等を出力するように予め学習される。
 他の例では、アプリケーション情報は、ロボットコントローラ1が扱う基準座標系として定義されている作業台などの基準物体に関する情報(例えば、位置、範囲、傾き等に関する情報)を有してもよい。さらに別の例では、アプリケーション情報は、作業空間における物体の抽象的な状態を定めるために必要な情報を含んでもよい。さらに別の例では、アプリケーション情報は、ロボットコントローラ1により制御が行われるロボット5の動作限界(例えば、ロボット5の速度、加速度、又は角速度の上限)に関する情報を含んでもよい。動作限界に関する情報は、ロボット5の可動部位又は関節ごとに動作限界を規定する情報であってもよい。
 (4)処理概要
 次に、ロボットコントローラ1の処理概要について説明する。概略的には、ロボットコントローラ1は、接合・解除を伴う目的タスクにおいて、予め定義された物体間関係及びスキル情報等に基づき、目的タスクにおいて満たすべき制約条件及び評価関数を設定し、最適化処理を行うことで、制御指令S1を生成する。これにより、ロボットコントローラ1は、接合・解除を伴う目的タスクに対するロボット5の動作計画を好適に策定し、目的タスクを実行するようにロボット5を好適に制御する。
 図4は、ロボットコントローラ1の処理の概要を示す機能ブロックの一例である。ロボットコントローラ1のプロセッサ11は、機能的には、抽象状態設定部31と、ダイナミクス・拘束力設定部32と、目標論理式生成部33と、スキル利用設定部34と、最適化処理部35と、制御指令生成部36とを有する。なお、図4では、各ブロック間で授受が行われるデータの一例が示されているが、これに限定されない。後述する他の機能ブロックの図においても同様である。
 抽象状態設定部31は、環境物体情報I1及び操作対象物情報I3に基づき、作業空間内の物体の状態を抽象的に表した状態(「抽象状態」とも呼ぶ。)を設定する。また、抽象状態設定部31は、操作対象物情報I3から、目的タスクが完了した状態を示す目標(ゴール)状態における物体間関係を表す情報(「物体間関係情報Ir」とも呼ぶ。)を取得する。なお、抽象状態設定部31は、計測信号S2に基づき作業空間内の環境物体及び操作対象物の状態を認識し、その認識結果に基づいて、環境物体情報I1及び操作対象物情報I3を更新してもよい。
 ダイナミクス・拘束力設定部32は、抽象状態設定部31が設定した抽象状態と、物体間関係情報Irとに基づき、接合・解除の対象となる物体間の拘束に関する定義を行い、動作計画において抽象的なシステムダイナミクスのモデル(「システムモデルMb」とも呼ぶ。)を設定する。
 目標論理式生成部33は、システムモデルMbにおける目標状態を表す時相論理の論理式(「目標論理式」とも呼ぶ。)を生成する。この場合、目標論理式生成部33は、物体間の接合・解除に関する目標論理式(「目標関係統合論理式φ1」とも呼ぶ。)と、物体間の接合・解除以外の動作に関する目標論理式(「一般目標論理式φ2」とも呼ぶ。)とを夫々表す時相論理の論理式を生成する。目標関係統合論理式φ1及び一般目標論理式φ2は、最適化処理部35において設定される最適化問題における制約条件の一部または評価関数の一部として用いられる。
 スキル利用設定部34は、スキルを用いた時相論理によるロボット5の動作指令(「スキル利用動作指令φ3」とも呼ぶ。)及びスキルの利用を考慮した評価関数(「スキル利用評価関数F」とも呼ぶ。)を夫々設定する。この場合、スキル利用設定部34は、物体間関係情報Irに基づき、スキルデータベースI4から動作指令の生成等に必要なスキル情報「Isn」を抽出する。スキル利用動作指令φ3は、最適化処理部35において設定される最適化問題における制約条件又は評価関数(目的関数)のいずれかに反映され、スキル利用評価関数Fは、上記の最適化問題における評価関数に反映される。
 最適化処理部35は、目標関係統合論理式φ1、一般目標論理式φ2、スキル利用動作指令φ3及びスキル利用評価関数F等に基づき、ロボット5の軌道計画問題を最適化問題の形で構成する。そして、最適化処理部35は、構成した最適化問題を解くことによって、時系列の目標軌道を示す変数列「Z」を生成する。
 制御指令生成部36は、目標軌道を示す変数列Zと、スキル情報Isnとに基づき、ロボット5の動作計画に相当する制御指令S1を生成する。そして、制御指令生成部36は、生成した制御指令S1を、インターフェース13を介してロボット5に供給する。
 ここで、抽象状態設定部31、ダイナミクス・拘束力設定部32、目標論理式生成部33、スキル利用設定部34、最適化処理部35及び制御指令生成部36の各構成要素は、例えば、プロセッサ11がプログラムを実行することによって実現できる。また、必要なプログラムを任意の不揮発性記憶媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素の少なくとも一部は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組合せ等により実現してもよい。また、これらの各構成要素の少なくとも一部は、例えばFPGA(Field-Programmable Gate Array)又はマイクロコントローラ等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。また、各構成要素の少なくとも一部は、ASSP(Application Specific Standard Produce)、ASIC(Application Specific Integrated Circuit)又は量子コンピュータ制御チップにより構成されてもよい。このように、各構成要素は、種々のハードウェアにより実現されてもよい。以上のことは、後述する他の実施の形態においても同様である。さらに、これらの各構成要素は,例えば,クラウドコンピューティング技術などを用いて、複数のコンピュータの協働によって実現されてもよい。
 (5)抽象状態設定部の詳細
 まず、抽象状態設定部31により取得される物体間関係情報Irについて具体的に説明する。
 例えば、物体「p」と物体「p」に対する物体間関係「Eij」は、以下の形式により表される。
       Eij=(p,p,RPAij,way)
 ここで、「RPAij」は、物体「p」と物体「p」との相対位置姿勢を表す。また、「way」は、接合・解除の方法を表しており、後述するスキルを識別するためのラベル情報としても機能する。従って、この場合、上記のEijは、
「物体pに対して物体pは、相対位置姿勢RPAijにおいて方法wayにより接合・解除されている」
ことを示す。なお、解除の場合には、相対位置姿勢RPAijはEijにおいて指定されなくともよい。
 なお、相対位置姿勢RPAijは、物体pの座標系「Σ」にて表されている位置及び姿勢を、物体pの座標系「Σ」にて表すものであり、以下のように相対位置ベクトル「rpij」及び相対姿勢ベクトル「rRij」の組により表される。
       RPAij=(rpij,rRij
 ただし、座標系ΣおよびΣはそれぞれ物体p,pのどこか一点に取り付けられた座標系であり、物体p,pと共に移動するものである。なお、相対姿勢ベクトルはオイラー角やクォータニオンを利用した形で表現されてもよいし、姿勢を表す回転行列の列ベクトルを連結したベクトルとして表現されてもよい。
 また、方法wayは、スキルデータベースI4に登録されたスキル情報に含まれるスキル識別ラベルに相当し、物体間関係情報Irと対応するスキル情報とを紐付ける。従って、方法wayを実現するためのスキルのスキル情報には、方法wayと同一のスキル識別ラベルが設定されている。また、記憶装置4等には、方法wayごとに、対応する物体間の拘束式に関する情報が記憶されている。このように、方法wayには、対応する物体間の拘束式が紐付けられており、抽象状態設定部31は、上記の拘束式に関する情報を含む物体間関係情報Irを取得する。
 図5は、目標状態におけるテーブル「T」と、パーツ「p」と、パーツ「p」との状態を示す。ここでは、一例として、テーブルTの上にパーツpが載置され、さらにパーツpの上にパーツpが載置される状態が目標状態であるものとする。この場合、抽象状態設定部31は、操作対象物であるパーツp及びパーツpの夫々に対応する操作対象物情報I3を参照することで、テーブルT及びパーツpの物体間関係「ETA」と、パーツp及びパーツpの物体間関係「EAB」とを以下のように定義する。
       ETA=(T,p,(rpTA,rRTA),put_on)
       EAB=(p,p,(rpAB,rRAB),put_on)
 ここで、「(rpTA,rRTA)」は、テーブルTの座標系からみたパーツpの座標系の位置及び姿勢を示し、「(rpAB,rRAB)」は、パーツpの座標系からみたパーツpの座標系の位置及び姿勢を示す。また、「put_on」は、「上に置く」という接合方法を指し示す方法wayの値である。
 そして、抽象状態設定部31は、上述したような物体間関係を表す物体間関係情報Irを操作対象物情報I3から取得し、ダイナミクス・拘束力設定部32、目標論理式生成部33、スキル利用設定部34などの各処理ブロックに供給する。
 次に、動作計画において抽象的に作業空間内の物体の状態を表した抽象状態を表す抽象状態ベクトルの生成について説明する。抽象状態設定部31は、環境物体情報I1と、操作対象物情報I3とに基づき、抽象状態ベクトル「X」(単に状態Xとも呼ぶ。)を以下のように生成する。
       X=[X ,X ,X
 ここで、「X」は、操作対象物の状態(例えば、位置、姿勢、速度等)を表すベクトル、「X」は、操作可能なロボット5のエンドエフェクタの状態を表すベクトル、「X」は、環境物体の状態を表すベクトルを表す。これらの状態ベクトルは、操作対象物の個数を「N」、エンドエフェクタの個数を「N」、環境物体の個数を「N」とすると、以下のように表される。
       X=[Xo,1 ,…,Xo,No
       X=[Xh,1 ,…,Xh,Nh
       X=[Xe,1 ,…,Xe,Ne
 なお、これらの状態ベクトルにおいて各物体に対応する要素「Xo,1」~「Xo,No」、「Xh,1」~「Xh,Nh」、「Xe,1」~「Xe,Ne」は、各物体の状態(例えば、位置、姿勢、速度等)を表すベクトルを表す。このように、抽象空間では、ロボット5の状態は、エンドエフェクタの状態により抽象的(簡略的)に表されている。また、操作対象物または環境物体に該当する各物体の状態についても、例えば、基準座標系において抽象的に表されている。
 ここで、操作対象物及び環境物体は、動作計画前においてユーザによる外部入力に基づき定義された物体であってもよい。例えば、動作計画時において組み立てに必要なパーツが蓋つきの箱の中に入っている場合、蓋つきの箱の中に入っているパーツに対応する状態ベクトルXが外部入力等に基づき定義され、蓋つきの箱に対応する状態ベクトルXが外部入力等により定義されてもよい。このように定義された情報は、例えば、環境物体情報I1又は操作対象物情報I3として記憶装置4に予め記憶される。
 また、抽象状態設定部31は、例えば、計測信号S2を解析することで認識した作業空間内の各物体の位置及び姿勢等の状態認識結果に基づき、作業前の抽象空間の状態を表す抽象状態ベクトルXの初期値を定める。なお、環境物体情報I1及び操作対象物情報I3に予め各物体の位置及び姿勢等の作業前の初期状態を表す情報が含まれている場合には、抽象状態設定部31は、環境物体情報I1及び操作対象物情報I3等を参照することで、抽象状態ベクトルXの初期値を定めてもよい。
 (6)ダイナミクス・拘束力設定部の詳細
 次に、ダイナミクス・拘束力設定部32が実行する処理の詳細について説明する。ダイナミクス・拘束力設定部32は、抽象状態ベクトルXを定義した抽象空間において生じる拘束の定義を行い、接合・解除に関する抽象空間のダイナミクスを設定する。
 ここでは、前提として、ロボット5のエンドエフェクタは、全ての物体(操作対象物及び環境物体)を把持可能とする。この場合、ダイナミクス・拘束力設定部32は、物体間関係情報Irを参照し、各エンドエフェクタhと各操作対象物oとの間の拘束力ベクトル「λhioj」、拘束式「ChiojX-Ghioj(X)=0」、及び拘束の有無を表すスカラー量である拘束スイッチ変数「ηhioj」(各変数において、i=1,…,Nかつj=1,…,N)を夫々定義する。なお、「Chioj」は拘束力 λhiojと同じ要素数の行要素を持つ拘束式係数行列、「Ghioj」はあらかじめ定められた関数を示す。この拘束式はエンドエフェクタと各操作対象物の相対運動に対して拘束を与えるものである。一例として、この拘束式は、エンドエフェクタhと操作対象物oの相対位置が時間の経過とともに指数的に0となるような拘束を示す。
 エンドエフェクタhの位置及び並進速度を「px,hi」、「py,hi」、「pz,hi」、「p x,hi」、「p y,hi」、「p z,hi」とし,操作対象物oの位置および並進速度を「px,oj」、「py,oj」、「pz,oj」、「p x,oj」、「p y,oj」、「p z,oj」とすると,この拘束は次のような式として与えられる。
 p x,hi-p x,oj=-(px,hi-px,oj
 p y,hi-p y,oj=-(py,hi-py,oj
 p z,hi-p z,oj=-(pz,hi-pz,oj
この場合にはこれらの左辺が前述の拘束式「ChiojX-Ghioj(X)=0」における「ChiojX」に対応し,右辺が「Ghioj(X)」に対応する形となっている.
 また、ダイナミクス・拘束力設定部32は、物体間関係情報Irを参照し、各エンドエフェクタhと各環境物体eとの間の拘束力ベクトル「λhiek」、拘束式「ChiekX-Ghi,ek(X)=0」、及び拘束の有無を表すスカラー量である拘束スイッチ変数「ηhiek」(各変数において、i=1,…,Nかつk=1,…,N)を夫々定義する。なお、「Chiek」は拘束式係数行列を示す。また、「Ghi,ek(X)」はあらかじめ定められた関数である。
 また、ダイナミクス・拘束力設定部32は、物体間関係情報Irを参照し、物体間関係情報Irにおいて関係が示されている物体間の拘束を定義する。ここで、物体間関係情報Irにおいて関係が示されている物体を「o」及び「o」とすると、ダイナミクス・拘束力設定部32は、これらの物体間の拘束力「λomon」、拘束式「ComonX-Gomon(X)=0」、及び拘束の有無を表す拘束スイッチ変数「ηomon」を夫々定義する。なお、「Comon」は拘束式係数行列を示す。また、「Gomon(X)」はあらかじめ定められた関数である。
 さらに、ダイナミクス・拘束力設定部32は、基準座標系として定義される作業台などの基準物体と各物体(操作対象物及び環境物体)の間の拘束を定義する。なお、これらの拘束については、例えば、物体間関係情報Ir又はこれに相当する情報として記憶装置4に予め記憶されている。ダイナミクス・拘束力設定部32は、この場合、基準物体と各操作対象物との間の拘束力「λoi」、拘束式「CoiX-Goi(X)=0」、及び拘束の有無を表す拘束スイッチ変数「ηoi」(各変数において、i=1,…,N)を夫々定義する。また、ダイナミクス・拘束力設定部32は、基準物体と各環境物体との間の拘束力「λek」、拘束式「CekX-Gek(X)=0」、及び拘束の有無を表す拘束スイッチ変数「ηek」(各変数において、i=1,…,Nかつk=1,…,N)を夫々定義する。なお、「Coi」、「Cek」は拘束式係数行列を示し、「Goi(X)」、「Gek(X)」はあらかじめ定められた関数である。
 そして、ダイナミクス・拘束力設定部32は、これらの抽象空間に関連する全ての拘束力、拘束式の、拘束スイッチ変数を合成した拘束力ベクトル「Λ」、拘束式係数行列「Call」、拘束スイッチ行列「H」,そして拘束式内の関数をまとめた「Gall」を定義する。ただし、「Λ」は各拘束力ベクトルを縦に連結したベクトルであり、「Call」は各拘束式係数行列を縦に連結した行列、「Gall」は各拘束式内の関数を縦に連結したベクトルを表す。
  Λ=[λ h1o1,…,λ eNe
  Call=[C h1o1,…,C eNe
  Gall=[G h1o1,…,G eNe
 ここで上付きの「T」は行列の転置を表すとする。また、「H」は対角要素に各拘束スイッチ変数をもつ以下の対角行列を表す。
  H=blkdiag(ηh1o1 Inh1,o1,…,ηeNe,w IneNe,w
 ただし、「blkdiag」はブロック対角行列を生成する関数であり、「In」は「n」行「n」列の単位行列を表す。また、「nhioj」は各拘束力ベクトル「λhioj」の要素数を表すとする。そして、ダイナミクス・拘束力設定部32は、定義したこれらの要素を用いて、接合・解除に関する抽象空間のダイナミクスを表すモデルであるシステムモデルMbを設定する。システムモデルMbは、例えば、以下に示される、ダイナミクスを表す差分方程式と、拘束式とにより表される。
  X[k+1]=F(X[k],U[k])+Call H[k]Λ[k]
  H[k](CallX[k+1]-Gall(X[k]))=0
 ここで、1番目の式は、タイムステップ「k」での抽象状態とタイムステップ「k+1」での抽象状態との関係を表した差分方程式である。また、「U」は、抽象空間における入力(例えば、ロボット5への入力)を示し、「F」は、予め定義された関数を示す。制御入力は、速度であってもよく、加速度であってもよい。なお、関数Fは、予め記憶装置4等に記憶されている。これらの式は、ロボット5全体の詳細なダイナミクスではなく、ロボット5のエンドエフェクタのダイナミクスのみを考慮している。これにより、最適化処理の計算量を好適に削減することができる。
 (7)目標論理式生成部の詳細
 まず、目標関係統合論理式φ1の生成方法について説明する。目標論理式生成部33は、物体間関係情報Irと、ダイナミクス・拘束力設定部32が設定したシステムモデルMbとに基づき、物体同士の接合・解除に関する目標関係統合論理式φ1を生成する。
 図6は、目標関係統合論理式φ1の生成に関する目標論理式生成部33の機能的なブロック図である。目標論理式生成部33は、機能的には、目標関係論理式生成部331と、目標関係論理式統合部332とを有する。
 目標関係論理式生成部331は、物体間関係情報Irにより関係が定義された任意の物体の組(ペア)の関係を個々に表した論理式(「目標関係論理式φe」とも呼ぶ。)を生成する。例えば、目標関係論理式生成部331は、物体間関係情報Irにおいて関係が示されている物体「o」と物体「o」との接合関係を表す目標関係論理式φeを、以下の式に定める。
  φeoi,oj=◇□((ηoi,oj=1)∧(goi,oj(X,RPAoi,oj)=0))
 上記の式では、線形論理式(LTL:Linear Temporal Logic)の「eventually」に相当する演算子「◇」、論理積「∧」、論理和「∨」、always「□」を用いている。なお、目標論理式生成部33は、これらの演算子の他、否定「¬」、論理包含「⇒」、next「○」、until「U」などを用いて論理式を表してもよい。例えば、上記の式は、記憶装置4等に予め記憶されている。
 そして、上記の式は、「物体oと物体oの間に拘束が存在し、2つの物体の相対的な最終状態はRPAoi,ojである」ことを表している。なお、解除を表す場合には、拘束スイッチ変数ηoi,ojを0に設定する。ここで、「goi,oj(X,RPAoi,oj)=0」は、システムモデルMbに基づき定まる拘束式であって、状態Xにおいて相対位置姿勢RPAoi,ojを満たす拘束式を表す。
 上記の式を用いることで、目標関係論理式生成部331は、任意の2つの物体間の関係を個別に表した目標関係論理式φeを好適に生成することができる。
 なお、目標関係論理式生成部331は、線形時相論理に限らず、MTL(Metric Temporal Logic)やSTL(Signal Temporal Logic)などの任意の時相論理を用いて論理式を表現してもよい。
 例えば、STLを用いる場合には、拘束スイッチ変数ηとして、0または1の離散変数に代えて、連続変数を利用することも可能である。この場合、ある定数「ε」を用いて拘束のON及びOFFを次のように表すことができる。
       ON :η≧ε
       OFF:η<ε
 この表現を用いた場合、物体間関係情報Irにおいて関係が示されている物体oと物体oとの接合関係を表す目標関係論理式φeは以下のように表すことができる。
 φeoi,oj=◇□((ηoi,oj≧ε)∧(goi,oj(X,RPAoi,oj)=0))
 目標関係論理式統合部332は、目標関係論理式生成部331が生成した目標関係論理式φeを統合することで、目標関係統合論理式φ1を生成する。この場合、目標関係論理式生成部331が2つの物体間において個別に生成した全ての目標関係論理式φeを、論理積により結合した目標関係統合論理式φ1を生成する。
 図6(B)は、目標論理式生成部33が実行する目標関係統合論理式φ1の生成処理の手順を示すフローチャートの一例である。
 目標関係論理式生成部331は、物体間関係情報Irにより関係が定義された任意の2つの物体間の関係を個別に表した目標関係論理式φeを生成する(ステップS01)。そして、目標関係論理式統合部332は、目標関係論理式生成部331が生成した目標関係論理式φeを統合した目標関係統合論理式φ1を生成する(ステップS02)。
 次に、一般目標論理式φ2の生成方法について説明する。目標論理式生成部33は、一般制約条件情報I2に基づき、接合・解除以外の制約を含む一般目標論理式φ2を生成する。なお、一般制約条件情報I2は、目的タスクにおいて一般的に満たすべき制約に関する情報の他、ユーザが指定した任意の制約に関する情報を含んでもよい。
 一般制約条件情報I2に基づく制約の一例として、障害物回避のための制約がある。ここで、作業空間内に障害物が存在し、抽象空間として考慮している物体及びエンドエフェクタが障害物の領域内に入らないという制約が「Ao(X)≧0」として表現されるとする。この場合、目標論理式生成部33は、一般目標論理式φ2を、以下のように設定する。
  φ2=□(Ao(X)≧0) 又は φ2=□¬(Ao(X)<0)
 (8)スキル利用設定部の詳細
 (8-1)スキル情報のデータ構造
 まず、スキル利用設定部34が参照するスキルデータベースI4に含まれるスキル情報のデータ構造について説明する。
 スキル情報は、スキル識別ラベルと、スキル実行情報と、スキル制御指令情報とを含んでおり、詳細には以下の8個の要素を有する。
  (way,χ ,χ ,t,J,ψ,f,Γ
 ここで、スキル情報の各要素を表す各記号は以下のように定義される。
  way:スキル識別ラベル
  χ :スキルの実行可能状態集合
  χ :スキル実行後の状態集合
  t:スキルの所要時間長
  J:スキルに設定するコスト
  ψ:スキルの実行に伴う抽象空間での動作指令
  f:軌道生成関数
  Γ:軌道生成関数に基づく軌道を実現するための制御器
 スキルの実行可能状態集合χ 、スキル実行後の状態集合χ 、スキルの所要時間長t、コストJ、動作指令ψはスキル実行情報に相当し、軌道生成関数f及び制御器Γはスキル制御指令情報に相当する。ここで、スキルの実行可能状態集合χ 及びスキル実行後の状態集合χ は、作業空間における物体の実際のダイナミクスにおける状態「x」だけではなく、作業空間における物体の実際のダイナミクスにおける拘束力λやロボット5に対する入力u等を含めた集合としてもよい。即ち、スキルの実行可能状態集合χ 及びスキル実行後の状態集合χ は、スキルの実行可能条件と、スキルを実行した場合の事後条件とを示す情報に相当する。
 動作指令ψは、スキルの実行可能状態集合χ からスキル実行後の状態集合χ へ遷移する動作を記述した時相論理式であり、任意の形式の時相論理命題により表されてもよい。例えば、動作指令ψは、状態空間と時間をグリッド分割し,それらのグリッドを利用してシステムのおおまかな動き方(軌道等)を指定する時相論理命題であるGrid TLI(Grid-Based Temporal Logic Interface)により表されてもよい。
 軌道生成関数f及び制御器Γは、スキル制御指令情報に相当し、任意のスキル学習により事前に学習される。軌道生成関数fと制御器Γは夫々、以下のように表される。
  x(t)=f(t,x), t∈[0,t
  u=Γ(t,x)
 ここで、「x」は状態xの初期状態を表し、「u」はシステム(主にロボット5)への実際の入力を表す。なお,軌道生成関数f及び制御器Γはf(t,x)、Γ(t,x,α)のようにパラメータα,αによってパラメトライズされる形でもよい.
 なお、このような軌道生成関数及び制御器の学習として、例えば、運動学習プリミティブ(DMP:Dynamic Movement Primitive)などの手法が用いられる。DMPによれば、与えられたロボットの運動軌道の時系列データから、その運動を再現するような軌道生成関数及び軌道生成関数に基づく軌道を実現するための制御器を学習することが可能となる。
 ここで、コストJについて補足説明する。あるスキルを実行する際、抽象空間で表現される動作と実際のロボットにおいて実現される動作は異なる。例えば物体のねじ止めという動作は抽象空間では、単純にねじ止めする物体同士の相対距離を小さくして拘束スイッチ変数をONの状態にする、という形でモデル化される。しかしながら、これを実際のロボットで行おうとすると物体の位置を操作した後にドライバーでねじを回転させる等の複雑な動作が必要となる。以上を勘案し、本実施形態では、実際のロボットにおいてそのスキルを実行するためにはどれぐらいの入力が必要であるかという情報を表すコストJが定義されている。これにより、抽象空間における動作計画であっても実際のロボットを動かす際に必要なエネルギー等を好適に考慮できるようになる。
 (8-2)スキル情報を利用した処理概要
 次に、スキル情報を用いたスキル利用設定部34の処理の詳細について説明する。図7は、スキル利用設定部34の機能的なブロック図を示す。図7に示すように、スキル利用設定部34は、機能的には、スキル情報取得部341と、スキルタプル生成部342と、スキル利用動作指令生成部343と、スキル利用評価関数生成部344とを有する。また、図8は、スキル利用設定部34が実行するフローチャートの一例である。ここで、スキル情報取得部341は、ステップS11の処理を行い、スキルタプル生成部342は、ステップS12の処理を行い、スキル利用動作指令生成部343は、ステップS13の処理を行い、スキル利用評価関数生成部344は、ステップS14の処理を行う。
 まず、スキル情報取得部341は、物体間関係情報Irにおいて定義されている拘束に関する情報を参照し、スキルデータベースI4から必要なスキル情報Isnを取得する(ステップS11)。具体的には、スキル情報取得部341は、物体間関係情報Irに含まれる「way」と同一のスキル識別ラベルとするスキル情報を、スキルデータベースI4からスキル情報Isnとして抽出する。
 次に、スキルタプル生成部342は、スキル情報取得部341が取得したスキル情報IsnとシステムモデルMbとに基づき、スキルタプルを生成する(ステップS12)。ここで、スキルタプルは、スキル情報Isnと関連するシステムモデルMbの変数をまとめた組であり、具体的には、対応するスキルのON(有効)又はOFF(無効)を表すスキル入力「u」と拘束のON又はOFFを表す拘束スイッチ変数「η」の組を表す。従って、スキルタプル生成部342は、スキル情報Isn毎に、スキル入力u及び拘束スイッチ変数ηの組を表すスキルタプルを生成する。なお、スキルタプルは、スキル入力u及び拘束スイッチ変数ηに加えて、拘束力「λ」を含んでもよい。このように、スキルタプル生成部342は、スキル情報Isnを、システムモデルMbに対応するように再定義する。
 次に、スキル利用動作指令生成部343は、ステップS12において生成されたスキルタプルの各々に対応する接合・解除動作を時相論理により表したスキル利用動作指令φ3を生成する(ステップS13)。また、スキル利用評価関数生成部344は、ステップS12において生成されたスキルタプルに対応する接合・解除動作を考慮したスキル利用評価関数Fを生成する(ステップS14)。なお、ステップS13とステップS14は順不同であり、同時に行われてもよく、ステップS14が先に実行されてもよい。
 (8-3)スキル利用動作指令の詳細
 次に、ステップS13において生成するスキル利用動作指令φ3について具体的に説明する。
 例えば、スキル利用動作指令生成部343は、抽象空間におけるスキル実行による接合動作に関し、スキル利用動作指令φ3として、以下の(A)~(C)の動作を実現する時相論理指令を生成する。
  (A)スキル実行可能集合χ において、スキル入力をOFFからONの値に変更
  (B)スキルに定義された動作指令ψ及び所要時間長tに沿って、抽象空間における状態をスキル実行後の状態集合χ へ移動
  (C)状態がスキル実行後の状態集合χ に到達した場合、実行したスキルに対応する拘束スイッチ変数ηをOFFからONの値へ変更.かつ,スキル入力uはスキル入力をONにした時刻ステップの次の時刻ステップにおいてONからOFFの値へ変更する。
 また、スキル利用動作指令生成部343は、抽象空間におけるスキル実行による接合解除動作に関し、スキル利用動作指令φ3として、例えば以下の(D)~(F)の動作を実現する時相論理指令を生成する。
  (D)スキル実行可能集合χ 内でスキル入力uをOFFからONの値へ変更
  (E)スキルに定義された動作指令ψ及び所要時間長tに沿って状態をスキル実行後の状態集合χ へ移動
  (F)状態がスキル実行後状態集合χ に到達した場合、実行したスキルに対応する拘束スイッチ変数ηをONからOFFの値へ変更、かつ,スキル入力uはスキル入力をONにした時刻ステップの次の時刻ステップにおいてONからOFFの値へ変更する。
 ここで、スキル利用動作指令φ3の論理命題の具体例である第1論理命題例と第2論理命題例について順に説明する。以後では、代表例として、LTLを利用する場合における(A)~(C)の接合動作について夫々説明する。
 まず、第1論理命題例について説明する。第1論理命題例では、動作(A)に相当する動作指令「φ31」は、ONを「1」、OFFを「0」により表すスキル入力「us,on」を用いて、以下の式(1)により表される。
Figure JPOXMLDOC01-appb-M000001
 また、動作(B)に関する動作指令「φ32」は、以下の式(2)により表される。
Figure JPOXMLDOC01-appb-M000002
 式(2)において、動作指令φは、スキルの実行可能状態集合χ からスキル実行後の状態集合χ へ遷移する動作を記述した時相論理式であり、例えば、Grid TLIなどにより、ステップ「k」からステップ「k+n」までの動き方を指定する論理式である。ただし、「n」は、スキルに定義された所要時間長tsを離散化した場合に対応するステップ数を表す。
 また、動作(C)に関する動作指令「φ33」は、以下の式(3)により表される。
Figure JPOXMLDOC01-appb-M000003
 なお、式(3)では、スキル入力us,onと拘束スイッチ変数ηの時間的な関係を論理命題として表している。なお、動作指令φ33を等式制約として与える例については、第2論理命題例として後述する。
 そして、第1論理命題例では、スキル利用動作指令生成部343は、動作(A)~(C)に対応する動作指令φ31~φ33を論理積により統合したスキル利用動作指令φ3を設定する。この場合、スキル利用動作指令φ3は、以下のように表される。
  φ=φ31∧φ32∧φ33
 なお、接合解除における動作(D)~(F)についても、式(1)~(3)と同等の論理式により表すことができる。
 次に、第2論理命題例について説明する。第2論理命題例は、接合および解除動作における動作(C)に関し、スキル入力uと拘束スイッチ変数ηの時間的な関係を、等式制約を用いて表す。例えば、スキル利用動作指令生成部343は、以下の式(4)に示される等式制約を設定する。
Figure JPOXMLDOC01-appb-M000004
 ここで、スキル入力「us,off」は、OFFの場合に「0」、ONの場合に「1」となる。式(4)は、スキル入力の値によって拘束スイッチ変数がどのように変化するかを表す離散時間ダイナミクスを表している。
 式(4)に示される等式制約を用いることで、動作(C)の論理式(第1論理命題例では式(3))は等式制約に置き換えることができる。よって、スキル利用動作指令生成部343は、第2論理命題例では、スキル利用動作指令φ3として、動作(A)に相当する式(1)及び動作(B)に相当する式(2)を統合した時相論理指令を生成する。この場合、スキル利用動作指令φ3は、以下のように設定される。
  φ=φ31∧φ32
 そして、この場合、式(4)に相当する等式制約は、最適化処理部35が解く最適化問題における制約条件として考慮される。
 (8-4)スキル利用評価関数の詳細
 次に、スキル利用評価関数生成部344によるスキル利用評価関数Fの生成について具体的に説明する。スキル利用評価関数生成部344は、生成したスキルタプルに対応するスキル情報Isnに含まれるコストJを反映したスキル利用評価関数Fを設定する。ここで、スキル利用評価関数Fは、例えば、生成されたスキルタプルに対応するコストJとスキル入力uを引数とする関数である。スキル利用評価関数Fの具体的な形状については、目的タスクに応じて予め設定される。
 スキル利用評価関数Fを用いて、動作計画内において利用する評価関数「J」は、例えば、以下の式(5)により表される。
Figure JPOXMLDOC01-appb-M000005
 ここで、「k」はタイムステップ(時刻)を表し、「N」は、目的タスク全体の所要時間長に相当するタイムステップ数を表す。また、「L(X[k],U[k])」は、抽象空間の状態X及び入力Uを引数とし、接合・解除動作以外を評価する評価関数である。評価関数Lは、任意の動作計画において用いられる評価関数であってもよい。例えば、評価関数Lは、ロボット5の制御入力を最小化(即ちロボット5が費やすエネルギーを最小化)又は/及び実行時間長を最小化する評価関数である。
 ロボットコントローラ1は、このようなスキル利用評価関数Fを含む評価関数Jを用いることにより、スキルの実行回数を減らし、かつ、効率の良い動作を計画することが可能となる。また、評価関数Jは、スキル利用評価関数Fに加えて接合・解除動作以外を評価する評価関数Lも含むことから、ロボットコントローラ1は、抽象空間における入力の最小化等を考慮した目的タスクの全体の最適化を行うこともできる。
 (9)最適化処理部の詳細
 最適化処理部35は、システムモデルMb、目標関係統合論理式φ1及び一般目標論理式φ2、スキル利用評価関数F及びスキル利用動作指令φ3を用いて、評価関数Jを最小化する軌道計画問題である最適化問題を構成する。そして、最適化処理部35は、構成した最適化問題を解くことによって最適な目標軌道を表す変数列Zを算出する。この場合、最適化処理部35は、以下の式(6)に示す最適化問題を構成する。
Figure JPOXMLDOC01-appb-M000006
 式(6)において、変数列Zは、抽象空間の状態列X[k]・スキル入力列U[k]、拘束スイッチ変数列η[k]等の最適化に必要な変数を全てまとめたベクトルを表す。ここで、「G(Z)」は、目標関係統合論理式φ1、一般目標論理式φ2、スキル利用動作指令φ3、システムモデルMbを制約条件としてまとめたベクトルを表す。
 ここで、線形論理式又はSTLを用いて目標関係統合論理式φ1、一般目標論理式φ2、スキル利用動作指令φ3などの時相論理式を表した場合、最適化処理部35は、これらの時相論理式を制約条件に変換して利用することができる。具体的には、最適化処理部35は、この場合、任意の等式・不等式制約条件への変換アルゴリズムを用いてこれらの時相論理式を等式・不等式制約条件に変換し、変換した等式・不等式制約条件をG(Z)の要素として取り扱う。
 一方、目標関係統合論理式φ1、一般目標論理式φ2、スキル利用動作指令φ3などの時相論理式をMTLやSTLにより表した場合、最適化処理部35は、これらの時相論理式を、評価関数J(Z)に組み込むことも可能である。なお、どの種類の時相論理を用いるか(及びG(Z)の要素とするか評価関数J(Z)に組み込むか)については、例えば、設定された目的タスクに応じて決定される。
 そして、最適化処理部35は、式(6)に示される最適化問題を解くことで、目標軌道における変数列Zを算出する。
 (10)制御指令生成部の詳細
 制御指令生成部36は、最適化処理部35が算出した変数列Zから、抽象空間の状態軌道を表す状態列X[k]及び時系列のスキル入力を表すスキル入力列U[k]を抽出する。そして、制御指令生成部36は、状態列X[k]と、スキル入力列U[k]と、スキル情報Isnとに基づき、実際のロボットシステムにおいてスケジューリングされた制御器に相当する制御指令S1を生成する。
 図9は、制御指令生成部36の機能的な構成を表す機能ブロック図の一例である。図9に示すように、制御指令生成部36は、機能的には、状態列分解部361と、制御器構成部362と、制御指令統合部363とを有する。また、図10は、制御指令生成部36が実行するフローチャートの一例である。ここで、状態列分解部361は、ステップS21の処理を行い、制御器構成部362は、ステップS22の処理を行い、制御指令統合部363は、ステップS23の処理を行う。
 まず、状態列分解部361は、スキル入力列U[k]に基づき、状態列X[k]を分解する(ステップS21)。この場合、状態列分解部361は、スキル入力列U[k]から各時刻(タイムステップ)でどのスキルを利用しているかを判断し、状態列X[k]を、実行される各スキルに対応する状態列(「状態部分列」とも呼ぶ。)に分解する。
 次に、制御器構成部362は、対応するスキル毎に状態列X[k]を分解した状態部分列の各々に対して制御器を構成する(ステップS22)。この場合、制御器構成部362は、スキル情報Isnに含まれる制御器Γを用い、サブ状態列の各々に対する制御器を構成する。そして、制御指令統合部363は、ステップS22で構成した制御器を統合し、目的タスクに対してスケジューリングされた全体の制御指令S1を生成する(ステップS23)。
 まず、状態列分解部361の処理の具体例について説明する。ここでは、一例として、各スキル入力列U[k]のON及びOFFに基づくインデックス列を利用する方法について説明する。
 図11は、実行するスキルが2個(第1スキル、第2スキル)である場合のタイムステップ「k」と、第1スキルのスキル入力列「Us1[k]」と、第2スキルのスキル入力列「Us2[k]」と、サブ状態列の識別に用いるインデックス「Idx」との時系列の関係を示す。ただし、ここではそれぞれのスキルの所要時間ステップ数nは3ステップであると仮定する。
 この場合、まず、状態列分解部361は、スキル入力列Us1[k]、Us2[k]およびスキルの所要時間ステップ数nの情報を用いてインデックス列Idx[k]を生成する。インデックス列Idx[k]は、k(ここでは0~9)ステップ目にどのスキルを利用しているかを示すインデックス列となる。ここでは、状態列分解部361は、スキル入力列Us1[k]がONとなり、以後スキルを実行しているタイムステップ(k=1~3)に対応するインデックス列Idx[k]を「1」とし、スキル入力列Us2[k]がONとなり,以後スキルを実行しているタイムステップ(k=7~9)に対応するインデックス列Idx[k]を「2」とする。また、状態列分解部361は、スキル実行に関連しないタイムステップでのインデックス列Idx[k]を「0」としている。
 そして、状態列分解部361は、得られたインデックス列Idx[k]から状態列X[k]を分解する。具体的には、状態列分解部361は、インデックス列Idx[k]の変化に基づいて状態列X[k]の各まとまりを特定する。この場合、状態列分解部361は、目的タスクの開始時刻又は直前に特定したまとまりの終了時刻から次にインデックスが変化する時刻までを1つのまとまりとしてまとまりを順次特定する。そして、状態列分解部361は、特定した各まとまりを状態部分列として抽出する。また、状態列分解部361は、各状態部分列には、インデックス変化の情報を付加する。
 例えば、図9の例では、インデックス列Idx[k]の変化に基づいて、4つの状態部分列(第1部分列~第4部分列)を生成する。
  第1部分列(Idx=0→1):{X[0],X[1]}
  第2部分列(Idx=1→0):{X[1],X[2],X[3],X[4]}
  第3部分列(Idx=0→2):{X[4],X[5],X[6],X[7]}
  第4部分列(Idx=2):{X[7],X[8],X[9]}
 このように、状態列分解部361は、スキル入力列U[k]に基づき、スキルの実行タイミングに応じて状態列X[k]を分解することができる。
 次に、制御器構成部362の処理の詳細について引き続き説明する。制御器構成部362は、状態列分解部361が生成した状態部分列の各々に対して制御器を構成する。
 ここで、制御器構成部362は、インデックスIdxが0から変化する(即ちスキルを利用していない状態に対応する)状態部分列については、状態部分列の情報に基づき、実際のシステムのための滑らかな目標軌道を生成し、生成された目標軌道に追従するための制御器を構成する。この場合の目標軌道の生成及び制御器の構成は、任意のロボット制御において用いられている方法に基づき行われてもよい。なお、図11に示す具体例では、制御器構成部362は、第1部分列と第3部分列に対して上述した目標軌道の生成及び制御器の構成を行う。
 一方、制御器構成部362は、インデックスIdxが0以外から変化(即ちスキルの利用状態に対応)する状態部分列については、対応するスキル情報から抽出した制御器Γ(「(8-1)スキル情報のデータ構造」のセクションを参照)を用いる。そして、制御器構成部362は、この制御器Γに対して設定する初期値・終端値のパラメータを、対象の状態部分列の最初の状態と最後の状態を用いて設定する。図11に示す具体例では、制御器構成部362は、第2部分列と第4部分列に対してスキル情報を利用した制御器の構成を行う。
 このように、制御器構成部362は、任意の状態部分列に対する制御器を好適に構成することができる。
 次に、制御指令統合部363の処理の詳細について説明する。制御指令統合部363は、制御器構成部362が状態部分列毎に生成した制御器から、スケジューリングされた全体の制御指令S1を生成する。図9の例では、制御指令統合部363は、第1部分列~第4部分列に夫々対応する以下の第1制御ステップ~第4制御ステップを含む制御指令S1を生成する。
 第1制御ステップは、生成された目標軌道(即ちX[0]からX[1]に至る軌道)に対する追従制御器を利用する制御ステップである。この場合、第1制御ステップは、目標状態X[1]を設定し、当該目標状態に到達することを第2制御ステップへの遷移条件(即ち第1制御ステップの終了条件)とする。そして、計測信号S2による状態認識結果等に基づき第2制御ステップへの遷移条件が満たされたと判定された場合、第1制御ステップから第2制御ステップへ遷移する。
 第2制御ステップは、第1スキルに対応するスキル情報に含まれる制御器を利用する制御ステップである。第2制御ステップは、目標状態X[4]を設定し、当該目標状態に到達することを第3制御ステップへの遷移条件(即ち第2制御ステップの終了条件)とする。そして、第3制御ステップへの遷移条件が満たされた場合、第2制御ステップから第3制御ステップへ遷移する。
 第3制御ステップは、生成された目標軌道(即ちX[4]からX[7]に至る軌道)に対する追従制御器を利用する制御ステップである。この場合、第3制御ステップは、目標状態X[7]を設定し、当該目標状態に到達することを第4制御ステップへの遷移条件(即ち第3制御ステップの終了条件)とする。そして、第4制御ステップへの遷移条件が満たされた場合、第3制御ステップから第4制御ステップへ遷移する。
 第4制御ステップは、第2スキルに対応するスキル情報に含まれる制御器を利用する制御ステップである。第4制御ステップは、目標状態X[9]を設定し、当該目標状態に到達することを第4制御ステップの終了条件とする。そして、計測信号S2等に基づき第2制御ステップへの遷移条件が満たされた場合、第4制御ステップが終了する。
 このように、制御指令生成部36は、最適化処理部35が変数列Zから抽出した抽象空間の状態軌道を表す状態列X[k]及び時系列のスキル入力を表すスキル入力列U[k]及びスキル情報Isnから、制御指令S1を好適に生成することができる。
 (11)全体処理フロー
 図12は、ロボットコントローラ1が実行するロボット5の動作計画に関する処理手順を示すフローチャートの一例である。
 まず、ロボットコントローラ1の抽象状態設定部31は、記憶装置4に記憶された操作対象物情報I3から物体間関係情報Irを抽出する(ステップS31)。そして、抽象状態設定部31は、ロボット5のエンドエフェクタ、操作対象物、環境物体を含む作業空間内の各物体の抽象状態を設定する(ステップS32)。
 そして、ダイナミクス・拘束力設定部32は、ステップS31で抽出された物体間関係情報Irに基づき、物体間の拘束を考慮した抽象システムダイナミクスであるシステムモデルMbを設定する(ステップS33)。そして、目標論理式生成部33は、物体間関係情報Irに基づき、図6(B)に示すフローチャートを実行することで、接合・解除に関する最終状態を表す目標関係統合論理式φ1を生成する(ステップS34)。また、目標論理式生成部33は、一般制約条件情報I2に基づき、接合・解除以外に満たすべき状態(例えば障害物回避等の制約条件)を表す一般目標論理式φ2を生成する(ステップS35)。
 次に、スキル利用設定部34は、スキルデータベースI4からスキル情報Isnを抽出し、スキル利用動作指令φ3を生成する(ステップS36)。また、スキル利用設定部34は、スキル情報Isnに基づき、スキル利用評価関数Fを生成する(ステップS37)。具体的には、スキル利用設定部34は、ステップS36及びステップS37において、図8に示すフローチャートを実行することで、スキル利用動作指令φ3及びスキル利用評価関数Fを生成する。
 次に、最適化処理部35は、ステップS33~ステップS37の処理結果に基づき最適化問題を構成し、これを解くことによって抽象空間における目標軌道を算出する(ステップS38)。この場合、最適化処理部35は、式(6)に示される最適化問題を構成する。そして、最適化処理部35は、算出した目標軌道を示す変数列Zから、状態列X[k]及びスキル入力列U[k]を抽出する。
 次に、制御指令生成部36は、ステップS38で算出された目標軌道に基づき、制御指令S1を生成する(ステップS39)。この場合、例えば、図10に示すフローチャートに従い、制御指令生成部36は、状態列X[k]と、時系列のスキル入力を表すスキル入力列U[k]と、スキル情報Isnとに基づき、実際のロボットシステムにおける制御指令S1を生成する。
 (12)技術的効果
 次に、第1実施形態におけるロボット制御システム100に基づく技術的効果について補足説明する。
 部品の組み立て等の複数物体の接合(接触を含む)を伴うような複雑なタスクにロボットを導入する場合、タスク分解し作業工程を作成する工程設計と、作業工程から実際の動作計画を生成する動作設計のシステムインテグレーションがボトルネックとなっている。例えば、物体同士の接合を伴うロボットの動作計画を行う際に必要となる物体の弾性や嵌め合いを考慮したモデリングは困難である。また、そのような接合等を考慮した物体のモデルが得られたとしても,そうしたモデルはしばしば複雑な性質(非線形性・ハイブリッド性)を有するため,動作計画に利用しにくい。また、与えられたタスクが複数のサブタスクによって構成されており、それらの実行順序が陽に与えられていない場合,各サブタスクを実行するための動作計画とサブタスクの順序自体の両方を計算しなければならない。特に,上記のような接合等を考慮した複雑なモデルを利用してロボットの動作計画を策定する場合には,実用的な時間長により動作計画を策定することができない可能性がある。このように、動作計画に用いるモデル・アルゴリズムの構造を如何に簡便なものにできるかが実用化における重要な課題となる。
 以上を勘案し、第1実施形態に係るロボットコントローラ1は、物体同士の接合等を考慮した計算コストの低い動作計画手法を実行する。このとき、ロボットコントローラ1は、抽象空間において時相論理とスキルを利用することで、抽象的な物体の接合表現を行い、接合等を伴う動作を含むマルチステージタスクにおいても計算コストを抑えた計画を行う。そして、ロボットコントローラ1は、抽象空間での動作計画結果およびスキル情報を用い、実際のシステムにおける制御指令S1を好適に算出する。
 例えば、物体のピック&プレイスでは、一般に、マニピュレータのエンドエフェクタ形状と把持対象パーツの幾何形状から動作計画にはマニピュレータの把持位置・姿勢および把持対象物体の物体特性を考慮した厳密な計算が必要となる。これに対し、第1実施形態によれば、抽象空間において「把持可能領域におけるスキル実行」によって把持対象物体の把持を実現できるとし、この表現を用いて動作計画を策定する。このように、第1実施形態では、物体の接合等に関する動作をモジュール化したスキルを抽象空間において表現することで、動作計画問題を簡易化することができる。
 <第2実施形態>
 図13は、第2実施形態における時相論理式生成装置1Xの概略構成図を示す。時相論理式生成装置1Xは、主に、目標関係論理式生成手段331Xと、目標関係論理式統合手段332Xとを有する。なお、時相論理式生成装置1Xは、複数の装置から構成されてもよい。時相論理式生成装置1Xは、例えば、第1実施形態におけるロボットコントローラ1とすることができる。
 目標関係論理式生成手段331Xは、ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、関係が規定された物体の組の各々について目標状態における関係を表す時相論理式である目標関係論理式を生成する。目標関係論理式生成手段331Xは、例えば、第1実施形態における目標関係論理式生成部331とすることができる。
 目標関係論理式統合手段332Xは、目標関係論理式を統合した時相論理式を生成する。目標関係論理式統合手段332Xは、例えば、第1実施形態における目標関係論理式統合部332とすることができる。
 目標関係論理式統合手段332Xの処理後、例えば、時相論理式生成装置1X又は統合された目標関係論理式が時相論理式生成装置1Xから供給された他の装置は、統合された目標関係論理式を、最適化処理に用いる制約条件又は評価関数に反映する。そして、制約条件と評価関数を用いた最適化によりロボットに関する目標軌道を算出し、さらに、当該目標軌道に基づき、ロボットに対する制御指令を生成する。この場合、例えば、第1実施形態のようにスキルデータベースI4から抽出したスキル情報Isnによりスキルを抽象空間において表現することで、物体間の接合・解除動作を実現してもよい。他の例では、スキルを用いることなく、拘束スイッチ変数ηのON及びOFFの切り替えにより、物体間の接合・解除動作を表現してもよい。また、時相論理式生成装置1Xが生成する時相論理式は、ロボットの作業のみを規定するものに限られず、人手の作業に関する内容を含んでいてもよい。
 図14は、第2実施形態におけるフローチャートの一例である。目標関係論理式生成手段331Xは、ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、関係が規定された物体の組の各々について目標状態における関係を表す時相論理式である目標関係論理式を生成する(ステップS41)。目標関係論理式統合手段332Xは、目標関係論理式を統合した時相論理式を生成する(ステップS42)。
 第2実施形態によれば、時相論理式生成装置1Xは、ロボットの作業に関する目標状態における物体間の関係を表す時相論理式を好適に生成することができる。そして、時相論理式生成装置1Xが生成した時相論理式は、ロボットの動作計画に好適に用いられる。
 <第3実施形態>
 図15は、第3実施形態における動作指令生成装置1Yの概略構成図を示す。動作指令生成装置1Yは、主に、スキル情報取得手段341Yと、スキルタプル生成手段342Yと、スキル利用動作指令生成手段343Yとを有する。なお、動作指令生成装置1Yは、複数の装置から構成されてもよい。動作指令生成装置1Yは、例えば、第1実施形態におけるロボットコントローラ1とすることができる。
 スキル情報取得手段341Yは、ロボットの動作計画に用いるスキルに関するスキル情報を取得する。スキル情報取得手段341Yは、例えば、第1実施形態におけるスキル情報取得部341とすることができる。
 スキルタプル生成手段342Yは、スキル情報に基づき、動作計画において設定したシステムモデルにおいてスキルと関連する変数の組であるスキルタプルを生成する。上記のシステムモデルは、例えば、第1実施形態におけるシステムモデルMbとすることができる。また、スキルタプル生成手段342Yは、例えば、第1実施形態におけるスキルタプル生成部342とすることができる。
 スキル利用動作指令生成手段343Yは、スキルタプルに対応する動作を表す時相論理指令であるスキル利用動作指令を生成する。スキル利用動作指令生成手段343Yは、例えば、第1実施形態におけるスキル利用動作指令生成部343とすることができる。
 図16は、第3実施形態におけるフローチャートの一例である。スキル情報取得手段341Yは、ロボットの動作計画に用いるスキルに関するスキル情報を取得する(ステップS51)。スキルタプル生成手段342Yは、スキル情報に基づき、動作計画において設定したシステムモデルにおいてスキルと関連する変数の組であるスキルタプルを生成する(ステップS52)。スキル利用動作指令生成手段343Yは、スキルタプルに対応する動作を表す時相論理指令であるスキル利用動作指令を生成する(ステップS53)。
 第3実施形態によれば、動作指令生成装置1Yは、物体間の接合等の複雑な動作を要するタスクにおいても、スキル表現を用いた動作計画のための動作指令を好適に生成することができる。
 なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-Transitory Computer Readable Medium)を用いて格納され、コンピュータであるプロセッサ等に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記憶媒体(Tangible Storage Medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記憶媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記憶媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(Transitory Computer Readable Medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
 その他、上記の各実施形態の一部又は全部は、以下の付記のようにも記載され得るが以下には限られない。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
 1 ロボットコントローラ
 1X 時相論理式生成装置
 1Y 動作指令生成装置
 4 記憶装置
 5 ロボット
 7 計測装置
 41 アプリケーション情報記憶部
 100 ロボット制御システム

Claims (9)

  1.  ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、前記関係が規定された物体の組の各々について前記目標状態における関係を表す時相論理式である目標関係論理式を生成する目標関係論理式生成手段と、
     前記目標関係論理式を統合した時相論理式を生成する目標関係論理式統合手段と、
    を有する時相論理式生成装置。
  2.  前記物体間関係情報は、前記目標状態における物体間の接触、接合、又はこれらの解除に関する関係を表し、
     前記目標関係論理式生成手段は、前記目標状態における接触、接合、又はこれらの解除に関する前記関係を表す時相論理式を、前記目標関係論理式として生成する、請求項1に記載の時相論理式生成装置。
  3.  前記目標関係論理式生成手段は、前記組を構成する物体間の拘束の有無を表す論理式を含む前記目標関係論理式を生成する、請求項1または2に記載の時相論理式生成装置。
  4.  前記物体間関係情報は、前記目標状態における物体間の相対位置関係に関する情報を含み、
     前記目標関係論理式生成手段は、前記相対位置関係を満たす拘束式を表す論理式を含む前記目標関係論理式を生成する、請求項1~3のいずれか一項に記載の時相論理式生成装置。
  5.  作業空間に存在する物体の抽象状態を設定する抽象状態設定手段をさらに有し、
     前記目標関係論理式生成手段は、前記抽象状態における拘束式を表す論理式を含む前記目標関係論理式を生成する、請求項1~4のいずれか一項に記載の時相論理式生成装置。
  6.  前記ロボットの作業に関する制約条件及び評価関数を用いた最適化により前記ロボットの動作計画を決定する最適化処理手段をさらに有し、
     前記目標関係論理式を統合した時相論理式は、前記制約条件又は前記評価関数の生成に用いられる、請求項1~5のいずれか一項に記載の時相論理式生成装置。
  7.  前記動作計画として前記最適化処理手段が生成した前記ロボットの目標軌道に基づき、前記ロボットに対する制御指令を生成する制御指令生成手段をさらに有する、請求項6に記載の時相論理式生成装置。
  8.  コンピュータが、
     ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、前記関係が規定された物体の組の各々について前記目標状態における関係を表す時相論理式である目標関係論理式を生成し、
     前記目標関係論理式を統合した時相論理式を生成する、
    時相論理式生成方法。
  9.  ロボットの作業に関する目標状態における物体間の関係を表す物体間関係情報に基づき、前記関係が規定された物体の組の各々について前記目標状態における関係を表す時相論理式である目標関係論理式を生成し、
     前記目標関係論理式を統合した時相論理式を生成する処理をコンピュータに実行させるプログラムが格納された記憶媒体。
PCT/JP2020/038297 2020-10-09 2020-10-09 時相論理式生成装置、時相論理式生成方法及び記憶媒体 WO2022074824A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2020/038297 WO2022074824A1 (ja) 2020-10-09 2020-10-09 時相論理式生成装置、時相論理式生成方法及び記憶媒体
US18/029,261 US20230364791A1 (en) 2020-10-09 2020-10-09 Temporal logic formula generation device, temporal logic formula generation method, and storage medium
JP2022555228A JP7435814B2 (ja) 2020-10-09 2020-10-09 時相論理式生成装置、時相論理式生成方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/038297 WO2022074824A1 (ja) 2020-10-09 2020-10-09 時相論理式生成装置、時相論理式生成方法及び記憶媒体

Publications (1)

Publication Number Publication Date
WO2022074824A1 true WO2022074824A1 (ja) 2022-04-14

Family

ID=81126779

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/038297 WO2022074824A1 (ja) 2020-10-09 2020-10-09 時相論理式生成装置、時相論理式生成方法及び記憶媒体

Country Status (3)

Country Link
US (1) US20230364791A1 (ja)
JP (1) JP7435814B2 (ja)
WO (1) WO2022074824A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241838A (ja) * 1992-03-02 1993-09-21 Toshiba Corp 時相論理式の図解支援装置
JPH0772787A (ja) * 1993-09-01 1995-03-17 Toshiba Corp 制御手順自動生成装置
WO2008123021A2 (ja) * 2007-03-06 2008-10-16 Nec Corporation 論理式生成装置、及び論理式生成方法
JP2010152528A (ja) * 2008-12-24 2010-07-08 Nec Corp 時相論理式作成支援システム、時相論理式作成支援方法及び時相論理式作成支援用プログラム
JP2019200792A (ja) * 2018-05-15 2019-11-21 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツングRobert Bosch Gmbh マルチエージェントシステムにおけるロボットの動作方法、ロボット及びマルチエージェントシステム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8433851B2 (en) 2007-08-16 2013-04-30 International Business Machines Corporation Reducing wiring congestion in a cache subsystem utilizing sectored caches with discontiguous addressing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241838A (ja) * 1992-03-02 1993-09-21 Toshiba Corp 時相論理式の図解支援装置
JPH0772787A (ja) * 1993-09-01 1995-03-17 Toshiba Corp 制御手順自動生成装置
WO2008123021A2 (ja) * 2007-03-06 2008-10-16 Nec Corporation 論理式生成装置、及び論理式生成方法
JP2010152528A (ja) * 2008-12-24 2010-07-08 Nec Corp 時相論理式作成支援システム、時相論理式作成支援方法及び時相論理式作成支援用プログラム
JP2019200792A (ja) * 2018-05-15 2019-11-21 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツングRobert Bosch Gmbh マルチエージェントシステムにおけるロボットの動作方法、ロボット及びマルチエージェントシステム

Also Published As

Publication number Publication date
JPWO2022074824A1 (ja) 2022-04-14
US20230364791A1 (en) 2023-11-16
JP7435814B2 (ja) 2024-02-21

Similar Documents

Publication Publication Date Title
Roveda et al. Model-based reinforcement learning variable impedance control for human-robot collaboration
El Zaatari et al. Cobot programming for collaborative industrial tasks: An overview
Jiang et al. State-of-the-Art control strategies for robotic PiH assembly
Al-Yacoub et al. Improving human robot collaboration through Force/Torque based learning for object manipulation
Nakamura et al. Task-priority based redundancy control of robot manipulators
US10899017B1 (en) System for co-adaptation of robot control to human biomechanics
CN114516060A (zh) 用于控制机器人装置的设备和方法
Haninger et al. Model predictive control with gaussian processes for flexible multi-modal physical human robot interaction
Si et al. Adaptive compliant skill learning for contact-rich manipulation with human in the loop
Pettinger et al. Reducing the teleoperator’s cognitive burden for complex contact tasks using affordance primitives
CN115351780A (zh) 用于控制机器人设备的方法
Hu et al. Nmpc-mp: Real-time nonlinear model predictive control for safe motion planning in manipulator teleoperation
WO2022074825A1 (ja) 動作指令生成装置、動作指令生成方法及び記憶媒体
Nath et al. Teleoperation with kinematically redundant robot manipulators with sub-task objectives
Si et al. A framework for composite layup skill learning and generalizing through teleoperation
Nguyen et al. Merging physical and social interaction for effective human-robot collaboration
Tarbouriech et al. An admittance based hierarchical control framework for dual-arm cobots
WO2022074824A1 (ja) 時相論理式生成装置、時相論理式生成方法及び記憶媒体
Krishnan et al. Interfacing an industrial robot and MATLAB for predictive visual servoing
He et al. A distributed optimal control framework for multi-robot cooperative manipulation in dynamic environments
Jorda Robust robotic manipulation for effective multi-contact and safe physical interactions
Wnuk et al. Challenges in robotic soft tissue manipulation—Problem identification based on an interdisciplinary case study of a teleoperated drawing robot in practice
Vergara et al. Generating reactive approach motions towards allowable manifolds using generalized trajectories from demonstrations
Nambiar et al. Automation of unstructured production environment by applying reinforcement learning
JP7364032B2 (ja) 制御装置、制御方法及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20956771

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022555228

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20956771

Country of ref document: EP

Kind code of ref document: A1