WO2021171352A1 - 制御装置、制御方法及び記録媒体 - Google Patents

制御装置、制御方法及び記録媒体 Download PDF

Info

Publication number
WO2021171352A1
WO2021171352A1 PCT/JP2020/007423 JP2020007423W WO2021171352A1 WO 2021171352 A1 WO2021171352 A1 WO 2021171352A1 JP 2020007423 W JP2020007423 W JP 2020007423W WO 2021171352 A1 WO2021171352 A1 WO 2021171352A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
tasks
robot
task group
operation sequence
Prior art date
Application number
PCT/JP2020/007423
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 US17/799,635 priority Critical patent/US20230072442A1/en
Priority to JP2022502358A priority patent/JP7409474B2/ja
Priority to PCT/JP2020/007423 priority patent/WO2021171352A1/ja
Publication of WO2021171352A1 publication Critical patent/WO2021171352A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/60Electric or hybrid propulsion means for production processes

Definitions

  • the present invention relates to a technical field of a control device, a control method, and a recording medium that perform processing related to a task to be performed by a robot.
  • Patent Document 1 When a task to be made to work by a robot is given, a control method for controlling the robot necessary to execute the task has been proposed.
  • Patent Document 1 when a plurality of articles are grasped 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 a cycle is determined based on an index calculated for each combination.
  • a robotic control device for determining the order of contained articles so as to minimize the time is disclosed.
  • One of the objects of the present invention is to provide a control device, a control method, and a recording medium capable of suitably generating an operation sequence of a robot in view of the above-mentioned problems.
  • control device is a control device, which is a task group that generates one or more task groups that classify the plurality of tasks when a plurality of tasks executed by one or a plurality of robots are specified. It has a generation means and an operation sequence generation means for generating an operation sequence of the robot for completing the plurality of tasks so that the completion times of the tasks constituting the task group are close to each other.
  • control method when a plurality of tasks to be executed by one or a plurality of robots are specified by a computer, one or more task groups in which the plurality of tasks are classified are generated, and the task group is configured.
  • This is a control method for generating an operation sequence of the robot for completing the plurality of tasks so that the completion times of the tasks to be performed are close to each other.
  • One aspect of the recording medium is a task group generation means for generating one or more task groups that classify the plurality of tasks when a plurality of tasks to be executed by one or a plurality of robots are specified, and the tasks. It is a recording medium in which a program that functions a computer as an operation sequence generation means for generating an operation sequence of the robot for completing the plurality of tasks is stored so that the completion times of the tasks constituting the group are brought close to each other.
  • a robot operation sequence can be suitably generated in consideration of the task completion timing.
  • the configuration of the robot control system is shown.
  • the hardware configuration of the control device is shown.
  • An example of the data structure of application information is shown.
  • a bird's-eye view of the work space is shown.
  • This is an example of a flowchart showing a control process executed by the control device in the first embodiment. It is a schematic block diagram of the control device in 2nd Embodiment. This is an example of a flowchart showing the control process in the second 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 control device 1, a plurality of task instruction devices 2 (2A, 2B, ...), a storage device 4, a plurality of robots 5 (5A, 5B, ...), And a measurement device 7. And.
  • the control device 1 When a task to be executed by the robot 5 is specified, the control device 1 generates a sequence for each time step (time step) of a simple task that can be accepted by each robot 5, and each robot 5 is based on the generated sequence.
  • a task (command) obtained by decomposing a task according to a unit that can be accepted by each robot 5 is also referred to as a "subtask”, and a sequence of subtasks to be executed by each robot 5 in order to achieve a specified task is a "subtask". Also called “sequence”.
  • the subtask sequence corresponds to an operation sequence that defines a series of operations of each robot 5.
  • each robot 5 when a plurality of tasks are specified, each robot 5 completes the plurality of tasks by collaborative work by executing a subtask sequence assigned to each robot 5.
  • all tasks that need to be executed by the robot 5 that is, all designated tasks
  • all target tasks are also referred to as "all target tasks”.
  • control device 1 performs data communication with the task instruction device 2, the storage device 4, the robot 5, and the measurement device 7 via a communication network or by direct communication by wireless or wired communication.
  • the control device 1 receives the input information "S1" for designating a task from the task instruction device 2.
  • the control device 1 transmits the display information "S2" for accepting the designation of the task to be executed by the robot 5 to the task instruction device 2.
  • the control device 1 transmits a control signal “S3” related to the control of the robot 5 to the robot 5.
  • the control device 1 receives the output signal “S4” from the measuring device 7.
  • the task instruction device 2 (2A, 2B, 7) Is a device that serves as an interface for receiving a task designation from the user.
  • the task instruction device 2 performs a predetermined display based on the display information S2 supplied from the control device 1, and supplies the input information S1 generated based on the user input to the control device 1.
  • the task instruction device 2 can accept the designation of a plurality of tasks at the same timing.
  • the task instruction device 2 may be a tablet terminal including an input unit and a display unit, or may be a stationary personal computer.
  • the task instruction device 2 may be a terminal used by a worker who controls a robot 5 arranged in a factory or the like remotely or at a short distance to perform a predetermined work, and is ordered by a customer who receives a service. It may be a terminal used for. In the case of providing food and drink, each order for each item is recognized as a task.
  • the storage device 4 has an application information storage unit 41.
  • the application information storage unit 41 stores application information necessary for generating a subtask sequence from a task. 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 control device 1, or may be a recording medium such as a flash memory. Further, the storage device 4 may be a server device that performs data communication with the control device 1 via a communication network. In this case, the storage device 4 may be composed of a plurality of server devices.
  • the robot 5 (5A, 5B, ...) Performs tasks related to the control signal S3 supplied from the control device 1.
  • the robot 5 may be a vertical articulated robot, a horizontal articulated robot, an automated guided vehicle (AGV), or any other robot of any kind.
  • the robot 5 may supply a state signal indicating the state of the robot 5 to the control device 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, and is the progress state of the subtask of the robot 5 generated by the control unit of the robot 5. It may be a signal indicating.
  • the measuring device 7 is one or a plurality of sensors that are a camera, a range sensor, a sonar, or a combination thereof that detects a state in a work space where a task is executed.
  • the measuring device 7 supplies the generated output signal S4 to the control device 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 is various sensors for detecting the state in the work space, and may include a sensor provided at an arbitrary 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 a plurality of controlled objects such as robot arms, each of which operates independently, may be present.
  • the control device 1 generates a subtask sequence to be executed for each robot 5 or each controlled object based on all the target tasks, and outputs the control signal S3 based on the subtask sequence to the target robot. Send to 5.
  • the robot 5 may collaborate 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 task instruction device 2 may be configured as the same device as the control device 1.
  • the control device 1 may be composed of a plurality of devices. In this case, the plurality of devices constituting the control device 1 exchange information necessary for executing the pre-assigned process between the plurality of devices. Further, the robot 5 may incorporate at least a part or all the functions of the control device 1.
  • FIG. 2 (A) shows the hardware configuration of the control device 1.
  • the control device 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 executes a predetermined process by executing the program stored in the memory 12.
  • the processor 11 is a processor such as a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit).
  • the memory 12 is composed of various volatile and non-volatile memories such as RAM (Random Access Memory) and ROM (Read Only Memory). Further, the memory 12 stores a program for the control device 1 to execute a predetermined process. Further, the memory 12 is used as a working memory and temporarily stores information and the like acquired from the storage device 4. The memory 12 may function as a storage device 4. Similarly, the storage device 4 may function as the memory 12 of the control device 1. The program executed by the control device 1 may be stored in a recording medium other than the memory 12.
  • RAM Random Access Memory
  • ROM Read Only Memory
  • the interface 13 is an interface for electrically connecting the control device 1 and the external device.
  • the interface 13 includes an interface for connecting the control device 1 and the task instruction device 2, and an interface for connecting the control device 1 and the storage device 4.
  • the interface 13 includes an interface for connecting the control device 1 and the robot 5, and an interface for connecting the control device 1 and the measuring device 7. These connections may be wired or wireless.
  • the interface for connecting the control device 1 and these external devices may be a communication interface for transmitting / receiving data to / from these external devices by wire or wirelessly under the control of the processor 11.
  • the control device 1 and the external device may be connected by a cable or the like.
  • the interface 13 includes an interface compliant with USB (Universal Serial Bus), SATA (Serial AT Attainment), etc. for exchanging data with an external device.
  • control device 1 is not limited to the configuration shown in FIG. 2 (A).
  • the control device 1 may be connected to or built in at least one of a display device, an input device, and a sound output device. Further, the control device 1 may be configured to include at least one of the task instruction device 2 and the storage device 4.
  • FIG. 2B shows the hardware configuration of the task instruction device 2.
  • the task instruction device 2 includes a processor 21, a memory 22, an interface 23, an input unit 24a, and a display unit 24b as hardware.
  • the processor 21, the memory 22, and the interface 23 are connected via the data bus 29. Further, the input unit 24a and the display unit 24b are connected to the interface 23.
  • the processor 21 executes a predetermined process by executing the program stored in the memory 22.
  • the processor 21 is a processor such as a CPU and a GPU.
  • the processor 21 generates the input information S1 by receiving the signal generated by the input unit 24a via the interface 23, and transmits the input information S1 to the control device 1 via the interface 23. Further, the processor 21 supplies the display information S2 received from the control device 1 via the interface 23 to the display unit 24b via the interface 23.
  • the memory 22 is composed of various volatile and non-volatile memories such as RAM and ROM. Further, the memory 22 stores a program for the task instruction device 2 to execute a predetermined process. Further, the memory 22 is used as a working memory. Further, the memory 22 may include a non-volatile memory such as a flash memory or a hard disk.
  • the interface 23 is an interface for electrically connecting the task instruction device 2 and another device.
  • the interface 23 includes a communication interface for the task instruction device 2 to perform data communication with another device by wire or wirelessly. Further, the interface 23 performs an interface operation between the input unit 24a and the display unit 24b, the processor 21, and the memory 22.
  • the input unit 24a generates an input signal according to the operation of the user.
  • the input unit 24a includes, for example, a touch panel, a button, a keyboard, a voice input device, or a combination thereof.
  • the display unit 24b is, for example, a display, a projector, or the like, and displays information based on the display information S2 under the control of the processor 21.
  • the hardware configuration of the task instruction device 2 is not limited to the configuration shown in FIG. 2 (B).
  • the input unit 24a and the display unit 24b may be configured as separate devices that are electrically connected to the task instruction device 2.
  • the task instruction device 2 may be connected to various devices such as a sound output device and a camera, and may be incorporated therein.
  • FIG. 3 shows an example of the data structure of the application information stored in the application information storage unit 41.
  • the application information storage unit 41 includes abstract state designation information I1, constraint condition information I2, operation limit information I3, subtask information I4, abstract model information I5, and object model information I6. Includes task classification information I7 and workspace information I8.
  • Abstract state specification information I1 is information that specifies the abstract state that needs to be defined when generating a subtask sequence. This abstract state is an abstract state of an object in a work space, and is defined as a proposition used in a target logical expression described later. For example, the abstract state specification information I1 specifies the abstract state that needs to be defined for each type of task.
  • Constraint information I2 is information indicating the constraint conditions when executing a task.
  • the constraint condition information I2 is, for example, a constraint condition that the robot 5 (robot arm) must not touch an obstacle and a constraint that the robot 5 (robot arm) must not touch each other when the task is pick and place. Indicates conditions and so on.
  • the constraint condition information I2 may be information in which the constraint conditions suitable for each type of task are recorded.
  • the operation limit information I3 indicates information regarding the operation limit of the robot 5 controlled by the control device 1.
  • the operation limit information I3 is information that defines, for example, the upper limit of the speed, acceleration, or angular velocity of the robot 5. Further, when the robot 5 transports an object, the operation limit information I3 includes information on the weight or number of items that can be loaded.
  • the movement limit information I3 may be information that defines the movement limit for each movable part or joint of the robot 5.
  • Subtask information I4 indicates information on subtasks that can be accepted by the robot 5. For example, when the task is pick-and-place, the subtask information I4 defines leaching, which is the movement of the robot arm of the robot 5, and glassing, which is the gripping by the robot arm, as subtasks. The subtask information I4 may indicate information on subtasks that can be used for each type of task.
  • Abstract model information I5 is information about an abstract model that abstracts the dynamics in the work space.
  • the abstract model is represented by a model in which the dynamics of reality are abstracted by a hybrid system, as will be described later.
  • the abstract model information I5 includes information indicating the conditions for switching the dynamics in the above-mentioned hybrid system.
  • the switching condition corresponds to, for example, in the case of pick-and-place where the robot 5 grabs the object and moves it to a predetermined position, the condition that the object cannot be moved unless it is grabbed by the robot 5.
  • Abstract model information I5 has information about an abstract model suitable for each type of task.
  • the object model information I6 is information about the object model of each object in the work space to be recognized from the output signal S4 generated by the measuring device 7.
  • Each of the above-mentioned objects corresponds to, for example, a robot 5, an obstacle, a tool or other object handled by the robot 5, a working body other than the robot 5, and the like.
  • the object model information I6 is, for example, information necessary for the control device 1 to recognize the type, position, orientation, currently executing motion, etc. of each object described above, and for recognizing the three-dimensional shape of each object. It includes 3D shape information such as CAD (computeraided design) data.
  • the former 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 so as to output, for example, the type, position, posture, and the like of an object to be a subject in the image when an image is input.
  • Task classification information I7 is information indicating the classification of tasks that may be specified.
  • the task classification based on the task classification information I7 is preferably performed so that the tasks that are preferably completed at the same timing are in the same category (category). For example, in the provision of food and drink, when ordering one unit is a task, each task is pre-classified into categories such as drinks, appetizers (snacks), main dishes, and desserts. Similarly, in work in a factory or the like that involves a task that requires provision of services other than eating and drinking or synchronization of completion time, task classification information I7 indicating a classification result in which tasks preferably completed at the same timing are in the same category is provided. Generated in advance.
  • the work space information I8 is information (so-called map information) indicating the layout of the work space in which the robot 5 performs a task.
  • the work space information I8 includes information on a passage through which the robot 5 can pass and an obstacle obstructing the passage of the robot 5.
  • the work space information I8 includes information indicating the transportation location (that is, the destination) of the object.
  • the work space information I8 may include information indicating the position of each table in which the task instruction device 2 is arranged.
  • the work space information I8 may include information associating the identification information of each task instruction device 2 with the identification information of the table in which the task instruction device 2 is arranged.
  • the application information includes robot motion information indicating the motion characteristics of the robot 5, robot morphology information regarding the morphology of the robot 5, and information regarding an object other than the robot 5.
  • the robot motion information corresponds to the motion limit information I3, the subtask information I4, and the abstract model information I5, and the robot form information corresponds to the object model information I6.
  • the application information storage unit 41 may store various information related to the subtask sequence generation process and the display information S2 generation process.
  • FIG. 4 is an example of a functional block showing an outline of the processing of the control device 1.
  • the processor 11 of the control device 1 includes a state recognition unit 15, a task group generation unit 16, an operation sequence generation unit 17, and a robot control unit 18.
  • FIG. 4 shows an example of data that is 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 state recognition unit 15 recognizes the state of the work space of the robot 5 based on the output signal S4 supplied from the measuring device 7, the object model information I6, the work space information I8, and the like. Then, the state recognition unit 15 supplies the recognized information regarding the state of the work space of the robot 5 (also referred to as “state information Im”) to other components. In this case, for example, when the state recognition unit 15 receives the output signal S4, the state recognition unit 15 refers to the object model information I6 and the like to recognize the state of the work space (image processing technology, image recognition technology, voice recognition technology, etc.).
  • the output signal S4 is analyzed by RFID (technology using Radio Frequency Identification (Radio Frequency Identification), etc.).
  • the state recognition unit 15 recognizes the number, position, posture, etc. of each type of the object in the work space related to the execution of the task, and generates the state information Im including the recognition result. Further, the state recognition unit 15 recognizes the state of the work space (including the blind spot of the measurement device 7) that the measuring device 7 cannot measure by referring to the work space information I8, and includes the recognition result in the state information Im. ..
  • the measuring device 7 may have a function corresponding to the state recognition unit 15. In this case, the measuring device 7 supplies the generated state information Im to the control device 1 in place of or in addition to the output signal S4.
  • the task group generation unit 16 generates a group (also referred to as a "task group") that classifies all the designated target tasks into tasks that should be completed at the same timing.
  • the task group generation unit 16 generates the display information S2 of the screen on which the operator specifies the task to be executed by the robot 5, and transmits the display information S2 to the task instruction device 2 via the interface 13. .
  • the task group generation unit 16 receives the input information S1 regarding the task specified on the above screen from the task instruction device 2 via the interface 13.
  • the task group generation unit 16 generates one or more task groups by referring to the task classification information I7 and the like from all the target tasks specified by the received input information S1.
  • a task group contains at least one task.
  • the task group generation unit 16 supplies the task group information "Itg", which is information about the generated task group, to the operation sequence generation unit 17.
  • the task group information Itg includes, for example, information for identifying each task of all target tasks and identification information of the task group to which each task belongs.
  • the operation sequence generation unit 17 generates a subtask sequence "Sr" to be executed by each robot 5 in order to execute all target tasks based on the state information Im, the task group information Itg, and the application information. In this case, the operation sequence generation unit 17 generates a subtask sequence Sr for completing the task specified by the task instruction device 2 so that the completion times (that is, the completion timings) of the tasks constituting the task group are brought closer to each other. .. In this case, for example, the operation sequence generation unit 17 generates the subtask sequence Sr by performing optimization with at least a constraint that the completion times of the tasks constituting the task group match or are within a predetermined time difference. do.
  • the operation sequence generation unit 17 generates the subtask sequence Sr by performing optimization using an objective function including at least a term relating to the variation in the completion time of each task constituting the task group. Then, the operation sequence generation unit 17 supplies the generated subtask sequence Sr to the robot control unit 18.
  • the subtask sequence Sr includes information indicating the execution order and execution timing of each subtask.
  • the robot control unit 18 controls the robot 5 to execute each subtask constituting the subtask sequence Sr at a predetermined execution timing (time step) based on the subtask sequence Sr supplied from the operation sequence generation unit 17. conduct. Specifically, the robot control unit 18 transmits the control signal S3 to the robot 5 to execute position control or torque control of the joints of the robot 5 for realizing the subtask sequence Sr. Further, when a new subtask sequence Sr is supplied from the operation sequence generation unit 17 while the robot 5 is being controlled based on the subtask sequence Sr, the robot control unit 18 is based on the newly supplied subtask sequence Sr. Controls the operation of.
  • the robot 5 may have a function corresponding to the robot control unit 18 instead of the control device 1.
  • the robot 5 receives the subtask sequence Sr from the motion sequence generation unit 17 to execute joint position control or torque control for realizing the subtask sequence Sr.
  • Each component of the state recognition unit 15, the task group generation unit 16, the operation sequence generation unit 17, and the robot control unit 18 described with reference to FIG. 4 can be realized, for example, by the processor 11 executing the program. More specifically, each component can be realized by the processor 11 executing a program stored in the memory 12 or the storage device 4. Further, each component may be realized by recording a necessary program on an arbitrary non-volatile recording medium and installing it as needed. It should be noted that each of these components is not limited to being realized by software by a program, and may be realized by any combination of hardware, firmware, and software. Further, each of these components may be realized by using a user-programmable integrated circuit such as an FPGA (field-programmable gate array) or a microcomputer. In this case, this integrated circuit may be used to realize a program composed of each of the above components. In this way, each component may be realized by hardware other than the processor. The above is the same in other embodiments described later.
  • the task group generation unit 16 generates a task group in consideration of at least one of the timing at which the task is designated, the category to which each of the designated tasks belongs, or the input information S1 for instructing the task for which the completion time is to be adjusted.
  • FIG. 5 is a first display example of the order confirmation screen.
  • the task group generation unit 16 generates the display information S2 and transmits the display information S2 to the task instruction device 2, so that the task instruction device 2 displays the order confirmation screen shown in FIG.
  • the task instruction device 2 is, for example, a tablet terminal for ordering placed for each table (seat) arranged in a restaurant, and it is possible to order a plurality of ordered items at the same time.
  • the order confirmation screen shown in FIG. 5 mainly includes an order list field 25, an offer timing selection button 26, a back button 27A for returning to the order specification screen for designating an order, and a decision button 27B for confirming the order. And have.
  • the order list column 25 is a list showing the name of the ordered item specified by the user input on the order specification screen before transitioning to the order confirmation screen together with the order quantity.
  • the provision timing selection button 26 is a radio button that accepts a designation regarding the provision timing of each ordered item in the order list column 25, and includes a first button 26x, a second button 26y, and a third button 26z.
  • the first button 26x is a button that requests that all the ordered items listed in the order list column 25 be provided at the same timing.
  • the second button 26y is a button that requests that the ordered items listed in the order list column 25 be provided at the same timing for each category.
  • the third button 26z is a button for designating that there is no request regarding the provision timing of the ordered items listed in the order list column 25.
  • the task group generation unit 16 when the decision button 27B is selected while the first button 26x is selected, the task group generation unit 16 is listed in the order list column 25 based on the input information S1 received from the task instruction device 2. Recognize that all ordered items should be provided at the same time. In this case, first, the task group generation unit 16 recognizes the task of transporting each of the ordered items listed in the order list column 25 to the table in which the target task instruction device 2 is installed. In the first display example, the task group generation unit 16 recognizes that a total of eight tasks corresponding to the number of ordered items (8 items) listed in the order list column 25 have been designated. Then, the task group generation unit 16 generates a task group in which these recognized tasks are set as one group. In this way, when the first button 26x is selected, the task group generation unit 16 considers a plurality of tasks designated by the same task instruction device 2 at the same timing as one task group.
  • the task group generation unit 16 orders the orders listed in the order list column 25 based on the input information S1 received from the task instruction device 2. Recognize that products should be provided at the same time for each category. In this case, the task group generation unit 16 classifies a total of eight tasks corresponding to the number of ordered items listed in the order list column 25 by referring to the task classification information I7, and the tasks are in the same category. Create a task group for each task combination. For example, in the task group generation unit 16, when " ⁇ ", which has four orders, belongs to the first category (for example, staple food), and the other four orders belong to the second category (for example, dessert).
  • the first category for example, staple food
  • the other four orders belong to the second category (for example, dessert).
  • the task group of the task belonging to the first category and the task group of the task belonging to the second category are generated respectively.
  • the task group generation unit 16 classifies a plurality of tasks designated by the same task instruction device 2 at the same timing according to the category to which each task belongs. Create a task group.
  • the task group generation unit 16 orders the orders listed in the order list column 25 based on the input information S1 received from the task instruction device 2. Recognize that it is not necessary to align the delivery timing of products. In this case, the task group generation unit 16 considers each of the tasks corresponding to each of the ordered items listed in the order list column 25 as a task group composed of one task, and generates the same number of task groups as the tasks. do.
  • the task group generation unit 16 selects one or a plurality of task groups from the specified plurality of tasks based on the specified timing of the tasks or at least one of the task categories. It can be preferably produced.
  • FIG. 6 is a second display example of the order confirmation screen.
  • the task group generation unit 16 generates the display information S2 and transmits the display information S2 to the task instruction device 2, so that the task instruction device 2 displays the order confirmation screen shown in FIG.
  • the task group generation unit 16 confirms the order with the order list field 25, the group selection buttons 28 (28a to 28e), the back button 27A, the decision button 27B, and the provision timing designation field 90. It is displayed on the screen.
  • the group selection buttons 28 are check boxes for each list of ordered items, and accept the selection of ordered items that are desired to be provided at the same time.
  • group selection buttons 28a, 28b, 28e are selected for a list of three ordered items.
  • the task group generation unit 16 receives four ordered items "OOOO” and one ordered item "OOXX” based on the input information S1 supplied from the task instruction device 2. Recognize that one ordered item " ⁇ ⁇ ⁇ ⁇ " should be provided at the same time. Therefore, in this case, the task group generation unit 16 has four ordered items " ⁇ ", one ordered item "OOXX", and one ordered item " ⁇ ⁇ ⁇ ⁇ ".
  • a task group is generated in which a total of 6 tasks are used as one group.
  • the task group generation unit 16 also generates task groups corresponding to these tasks for the other ordered items " ⁇ XX" and " ⁇ ⁇ ⁇ ", respectively. These task groups are composed of one task.
  • the provision timing designation column 90 is a column for selecting the provision timing of the ordered items that are desired to be provided at the same time.
  • the provision timing designation field 90 is a pull-down menu format selection field that accepts the designation of the time length (30 minutes in FIG. 6) required to provide the ordered items that are desired to be provided at the same time. ..
  • the task group generation unit 16 recognizes the time length specified by the provision timing designation field 90 as the estimated work time length of the target task group based on the input information S1, and generates the recognized work expected time length as the operation sequence generation. It is supplied to the unit 17. After that, the operation sequence generation unit 17 generates an operation sequence so that the work completion time of each task constituting the target task group approaches the estimated work completion time determined by the supplied estimated work time length.
  • the task group generation unit 16 groups the tasks designated by the task instruction device 2 among the plurality of tasks designated by the same task instruction device 2 at the same timing.
  • the task group to be used can be preferably generated.
  • the task group generation unit 16 can suitably accept the designation of the estimated work time length (that is, the estimated time of completion of the work) of the target task group.
  • the task instruction device 2 displays a screen for accepting input of deletion or addition (including change of quantity) of the ordered item based on the display information S2 supplied from the control device 1, and deletes the ordered item.
  • the input information S1 regarding the addition may be transmitted to the control device 1.
  • the task group generation unit 16 of the control device 1 changes the generated task group based on the input information S1 regarding the deletion or addition of the ordered item, and obtains the task group information Itg regarding the changed task group by the robot. It is supplied to the control unit 18.
  • the change of the task group in this case includes the addition or deletion of the task group and the deletion or addition of the tasks constituting the task group.
  • FIG. 7 is an example of a functional block showing the functional configuration of the operation sequence generation unit 17.
  • the operation sequence generation unit 17 includes an abstract state setting unit 31, a target logical expression generation unit 32, a time step logical expression generation unit 33, an abstract model generation unit 34, and a control input generation unit 35. It has a subtask sequence generation unit 36 and.
  • the abstract state setting unit 31 sets the abstract state in the workspace based on the state information Im supplied from the task group generation unit 16 and the abstract state designation information I1. In this case, the abstract state setting unit 31 defines a proposition to be expressed by a logical expression for each abstract state that needs to be considered when executing a task, based on the state information Im.
  • the abstract state setting unit 31 supplies information indicating the set abstract state (also referred to as “abstract state setting information IS”) to the target logical expression generation unit 32.
  • the target logical expression generation unit 32 generates a logical expression of time phase logic (also referred to as “target logical expression Ltag”) representing the final achievement state based on the abstract state setting information IS and the task group information Itg. ..
  • the target logical expression generation unit 32 adds the constraint conditions to be satisfied in the execution of the task to the target logical expression Ltag by referring to the constraint condition information I2 from the application information storage unit 41. Further, when the closeness of the completion times of the tasks constituting the task group is set as a constraint condition, the target logical expression generation unit 32 refers to the task group information Itg and the completion times of the tasks constituting the task group match. Alternatively, a constraint condition within a predetermined time difference is added to the target logical expression Ltag. Then, the target logical expression generation unit 32 supplies the generated target logical expression Ltag to the time step logical expression generation unit 33.
  • the time step logical expression generation unit 33 converts the target logical expression Ltag supplied from the target logical expression generation unit 32 into a logical expression (also referred to as “time step logical expression Lts”) representing the state at each time step. do. Then, the time step logical expression generation unit 33 supplies the generated time step logical expression Lts to the control input generation unit 35.
  • the abstract model generation unit 34 abstracts the actual dynamics in the work space based on the abstract model information I5 stored in the application information storage unit 41 and the state information Im supplied from the abstract state setting unit 31. ⁇ ”is generated.
  • the abstract model generation unit 34 regards the target dynamics as a hybrid system in which continuous dynamics and discrete dynamics are mixed, and generates an abstract model ⁇ based on the hybrid system. The method of generating the abstract model ⁇ will be described later.
  • the abstract model generation unit 34 supplies the generated abstract model ⁇ to the control input generation unit 35.
  • the control input generation unit 35 satisfies the time step logical expression Lts supplied from the time step logical expression generation unit 33 and the abstract model ⁇ supplied from the abstract model generation unit 34, and has an objective function (for example, variation in completion time).
  • the control input to the robot 5 is determined for each time step that optimizes the degree).
  • the control input generation unit 35 refers to the task group information Itg and recognizes a task group in which two or more tasks exist, when the object of optimization is the proximity of the completion times of the tasks constituting the task group. do.
  • the control input generation unit 35 sets an objective function including at least a term related to the variation in the completion time between the tasks constituting the recognized task group, and obtains the control input to the robot 5 by optimization.
  • the control input generation unit 35 supplies the subtask sequence generation unit 36 with information indicating the control input for each time step to the robot 5 (also referred to as “control input information Ic”).
  • the subtask sequence generation unit 36 generates the subtask sequence Sr based on the control input information Ic supplied from the control input generation unit 35 and the subtask information I4 stored in the application information storage unit 41, and operates the subtask sequence Sr. It is supplied to the generation unit 17.
  • the abstract state setting unit 31 sets the abstract state in the work space based on the state information Im and the abstract state designation information I1 acquired from the application information storage unit 41. In this case, first, the abstract state setting unit 31 refers to the abstract state designation information I1 and recognizes the abstract state to be set in the workspace.
  • FIG. 8 shows a bird's-eye view of the work space.
  • two robots 5 (5A, 5B), an object 61 (61a to 61d) to be transported by the robot 5, an obstacle 62, a destination area 63, and a wall.
  • 64 64a to 64e.
  • the robot 5 is a self-propelled robot and can carry a maximum of two objects 61.
  • the abstract state setting unit 31 recognizes the positions and forms of the robot 5, the object 61, the obstacle 62, the destination area 63, and the wall 64 based on the state information Im. Then, the abstract state setting unit 31 determines the abstract state to be defined when executing the task by referring to the abstract state designation information I1. In the example of FIG. 8, the abstract state setting unit 31 attaches identification labels to the robot 5, the object 61, the obstacle 62, the destination area 63, and the wall 64, respectively. Further, the abstract state setting unit 31 has a proposition that the object 61 is mounted on the robot 5, a proposition that the object 61 exists in the destination area 63, and the robots 5 interfere with each other based on the abstract state designation information I1. Each proposition used in the target logical expression is defined, such as the proposition that the robot 5 does not interfere with the obstacle 62 or the wall 64.
  • the abstract state setting unit 31 recognizes the abstract state to be defined by referring to the abstract state designation information I1, and sets the proposition representing the abstract state as the number of robots 5, the number of objects 61, and so on. It is defined according to the number of obstacles 62, the number of walls 64, and the like. Then, the abstract state setting unit 31 supplies the information indicating the proposition representing the abstract state to the target logical expression generation unit 32 as the abstract state setting information IS.
  • Target logical expression generation unit 32 converts all the tasks constituting the task group indicated by the task group information Itg into logical expressions using temporal logic.
  • a task is expressed using natural language, there are various techniques such as natural language processing as a method for converting a task expressed in natural language into a logical expression. For example, it is assumed that the target logical expression generation unit 32 is given a task showing the proposition "g" that "the object 61a finally exists in the destination area 63" in the example of FIG.
  • the target logical expression generation unit 32 sets the task as an operator “ ⁇ ” corresponding to “eventually” of the linear logical expression (LTL: Linear Temporal Logical) and a proposition “g” defined by the abstract state setting unit 31. To generate the logical expression " ⁇ g". Then, the target logical expression generation unit 32 generates a logical expression in which the propositions corresponding to each task of all the target tasks are combined by a logical product based on the task group information Itg.
  • LTL Linear Temporal Logical
  • the target logical expression generator 32 is an operator of any temporal logic other than the operator “ ⁇ ” (logical product “ ⁇ ”, OR “ ⁇ ”, negative “ ⁇ ”, logical inclusion “ ⁇ ”, always.
  • a logical expression may be expressed using " ⁇ ", next " ⁇ ", until “U”, etc.). Further, the logical expression may be expressed by using any time phase logic such as MTL (Metric Temporal Logic) or STL (Signal Temporal Logic), not limited to the linear temporal logic.
  • the target logical expression generation unit 32 generates the target logical expression Ltag by adding the constraint condition indicated by the constraint condition information I2 to the logical expression indicating the above-mentioned task.
  • the constraint conditions in the example of FIG. 8 are included in the constraint condition information I2 such as "the robot 5A and the robot 5B do not interfere with each other" and "the robots 5A and 5B do not interfere with the obstacle 62 or the wall 64". If so, the target logical expression generation unit 32 converts these constraints into a logical expression. Then, the target logical expression Ltag is generated by adding the converted logical expressions of these constraint conditions to the logical expressions corresponding to the tasks.
  • the target logical expression generation unit 32 refers to the task group information Itg and recognizes the task group including two or more tasks. do. Then, the target logical expression generation unit 32 adds a constraint condition that the completion times of the tasks constituting each recognized task group match or are within a predetermined time difference. In this case, preferably, the target logical formula generation unit 32 sets strict constraint conditions regarding the closeness of the completion times of the tasks constituting the task group, and when there is no solution in the optimization process described later, the above The constraints may be reset to loosen the constraints.
  • the target logical expression generation unit 32 includes in the constraint condition that the time difference between the completion times of the tasks constituting the task group becomes 0 (that is, matches) as the constraint condition to be set first. Then, when the solution does not exist in the optimization process described later, the target logical expression generation unit 32 adds the above-mentioned time difference by a predetermined value and performs the optimization process again. Then, the target logical expression generation unit 32 repeats the addition of the predetermined value to the time difference described above until a solution is found in the optimization process. By doing so, the target logical expression generation unit 32 can preferably bring the completion times of the tasks constituting the task group closer to each other.
  • the time step logical expression generation unit 33 also refers to the number of time steps (also referred to as “target time step number”) for completing all the tasks constituting the task group indicated by the task group information Itg. ), And a combination of propositions representing the state at each time step such that the target logical expression Ltag is satisfied by the target number of time steps. Since there are usually a plurality of these combinations, the time step logical expression generation unit 33 generates a logical expression in which these combinations are combined by a logical sum as a time step logical expression Lts.
  • the above combination is a candidate for a logical expression representing a sequence of actions instructing each robot 5, and is also referred to as "candidate ⁇ " hereafter.
  • the time step logical expression generation unit 33 defines the logical sum of each generated candidate ⁇ as the time step logical expression Lts. In this case, the time step logical expression Lts becomes true when at least one of the generated candidate ⁇ s is true.
  • the time step logical expression generation unit 33 may determine the feasibility of the generated candidate by referring to the operation limit information I3, and may exclude the candidate ⁇ determined to be unrealizable.
  • the time step logical formula generation unit 33 determines the target number of time steps based on the estimated work time length (that is, the estimated time of completion of the work) specified by the user input in the provision timing designation field 90 or the like in FIG.
  • the target number of time steps may be set to a predetermined value stored in the memory 12 or the storage device 4 in advance.
  • the time step logical formula generation unit 33 inputs the user to the task instruction device 2 or the control device 1 based on the time width information per time step stored in the memory 12 or the storage device 4.
  • the target number of time steps is calculated from the estimated work time length (that is, the estimated time when the work is completed) specified by the user input.
  • the operation sequence generation unit 17 After that, the operation sequence generation unit 17 generates an operation sequence so that the completion time of the tasks constituting the target task group approaches the estimated time of completion of the designated work based on the target number of time steps. Further, the time step logical expression generation unit 33 may determine the target number of time steps according to a predetermined calculation formula or a look-up table in which the number of tasks and the number of robots 5 are variables. In this case, when the information on the required time per robot 5 for each task is stored in the memory 12 or the storage device 4, the time step logical expression generation unit 33 further considers the required time. The target number of time steps may be determined.
  • the time step logical expression generation unit 33 sets the target time step number to a predetermined initial value, and the target time step number until the time step logical expression Lts in which the control input generation unit 35 can determine the control input is generated. May be gradually increased.
  • the time step logical expression generation unit 33 determines the target number of time steps when the optimum solution cannot be derived as a result of the control input generation unit 35 performing the optimization process according to the set target number of time steps. Add only a number (integer of 1 or more).
  • the abstract model generation unit 34 generates the abstract model ⁇ based on the state information Im and the abstract model information I5.
  • the abstract model information I5 information necessary for generating the abstract model ⁇ is recorded.
  • This abstract model may be represented by a finite difference equation showing the relationship between the state of the object in the work space at the time step "k" and the state of the object in the work space at the time step "k + 1".
  • the abstract model generation unit 34 reflects the state (number, position, posture, etc.) of each object indicated by the state information Im on the abstract model of the general-purpose format recorded in the abstract model information I5. Generate an abstract model ⁇ .
  • the abstract model stored in the abstract model information I5 is a model in which this dynamics switching is abstractly expressed using logical variables. Therefore, the abstract model generation unit 34 can preferably express the dynamics switching by the abstract model by abstractly expressing the event (behavior) in which the dynamics are switched in the abstract model using logical variables. For example, when the task is a task involving the transportation of an object, the object moves together with the robot 5 while the robot 5 is carrying the object, but when the robot 5 is not carrying the object, the object moves. The object does not move. Therefore, in this case, the abstract model generation unit 34 abstractly expresses the operation of placing the object on the robot 5 in the abstract model using logical variables.
  • the abstract model generation unit 34 refers to the abstract model information I5, and the switching of the dynamics is represented by the logical variable which is a discrete value, and the movement of the object is represented by the hybrid system represented by the continuous value in the workspace.
  • Set the abstract model ⁇ which is a model that abstracts the dynamics.
  • the abstract model ⁇ is represented by a difference equation showing the state relationship of an object in the work space at the time steps “k” and “k + 1”
  • the difference equation is a position vector or the like representing the state of the object.
  • a variable (parameter) indicating the control input to the robot 5 and a logical variable indicating the switching of the dynamics are included.
  • the abstract model ⁇ does not represent the detailed dynamics of the entire robot 5, but the abstracted dynamics.
  • the robot arm represents only the dynamics of the robot hand, which is the hand of the robot 5 that actually grips the object. May be good.
  • the amount of calculation of the optimization process by the control input generation unit 35 can be suitably reduced.
  • the abstract model generation unit 34 may generate a model of a mixed logical dynamic (MLD) system or a hybrid system combining Petri nets, automata, and the like.
  • MLD mixed logical dynamic
  • the control input generation unit 35 is based on the time step logical formula Lts supplied from the time step logical formula generation unit 33 and the abstract model ⁇ supplied from the abstract model generation unit 34.
  • the control input for each time step for each robot 5 for each optimum time step is determined.
  • the control input generation unit 35 defines an objective function for all target tasks, and solves an optimization problem that minimizes the objective function with the abstract model ⁇ and the time step formula Lts as constraints.
  • the objective function is stored in the memory 12 or the storage device 4 in advance.
  • the objective function is designed, for example, to minimize the energy consumed by the robot 5.
  • the control input generation unit 35 has a distance “d k ” between the object 61 and the destination area 63, a control input “ukA ” for the robot 5A, and a control input for the robot 5B.
  • the objective function is defined so that "ukB" is minimized.
  • the control input generation unit 35 calculates the sum of the square of the norm of the distance d k in all time steps, the square of the norm of the control input u kA , and the square of the norm of the control input u kB. Defined as the objective function.
  • the control input ukA and the control input ukB may be speed or acceleration.
  • an objective function including at least a term relating to the variation of the completion times of the tasks constituting the task group is set.
  • the control input generation unit 35 refers to the task group information Itg, recognizes a task group including two or more tasks, and adds up the distributed values of the task completion times in each of the task groups including two or more tasks. Determine the objective function.
  • the objective function is the square of the norm of the distance d k in all the time steps, the square of the norm of the control input u kA , and the norm of the control input u kB .
  • control input generation unit 35 is predetermined for each of the term of the distance d k , the term of the control input ukA , the term of the control input ukB , and the term of the distribution value of the task completion time. It may be multiplied by a weighting factor.
  • control input generation unit 35 controls the robot 5 so that the completion times of the tasks constituting the task group are brought closer to each other.
  • the input can be preferably determined.
  • the control input generation unit 35 solves a constrained mixed integer optimization problem with the abstract model ⁇ and the time step logical expression Lts (that is , the logical sum of the candidates ⁇ i) as constraints for the set objective function.
  • the control input generation unit 35 may reduce the amount of calculation by approximating the logical variable to a continuous value and making it a continuous relaxation problem.
  • STL linear logic formula
  • the control input generation unit 35 respectively calculates the control input u kB to the control input u kA and robot 5B with respect to the robot 5A.
  • the control input generation unit 35 sets the number of time steps used for optimization to a value smaller than the target time step number (for example, the above-mentioned threshold value). You may. In this case, the control input generation unit 35 is, for example, each time a predetermined time step number has elapsed, by solving the above optimization problem to determine a control input u kA and the control input u kB sequentially.
  • the control input generation unit 35 is based on the time step logical expression Lts reset based on all the target tasks after reflecting the instruction. Solve the optimization problem described above. As a result, the control input ukA, the control input ukB, and the subtask sequence Sr for each robot 5 are regenerated.
  • the above-mentioned deletion of a task refers to the deletion of a task group already generated by the task group generation unit 16 or the deletion of some tasks constituting the task group.
  • the addition of the above-mentioned task refers to the addition of a task to the task group already generated by the task group generation unit 16 or the addition of a task accompanied by the generation of a new task group.
  • the control device 1 considers that the earlier the task in which the execution instruction is given by the task instruction device 2 is, the higher the priority of execution is, and the robot considers the newly instructed task after the already instructed task is completed. 5 may be executed. In this case, the control device 1 solves the above-mentioned optimization problem for each task group instructed by the same task instruction device 2 at the same timing, and determines the subtask sequence Sr. At this time, the control device 1 determines the completion time and the completion state of the instructed task group as the start time and the initial state of the newly instructed task group, and generates a subtask sequence Sr for the newly instructed task group. .. The control device 1 may generate the subtask sequence Sr for the next designated task group after detecting that the task group for which the subtask sequence Sr has been generated has been completed.
  • Subtask sequence generation unit 36 generates a subtask sequence based on the control input information Ic supplied from the control input generation unit 35 and the subtask information I4 stored in the application information storage unit 41. do. In this case, the subtask sequence generation unit 36 recognizes the subtasks that the robot 5 can accept by referring to the subtask information I4. Then, the subtask sequence generation unit 36 converts the control input to the robot 5 for each time step indicated by the control input information Ic into the subtask of the robot 5.
  • the function "Move" representing the movement of the robot 5 is, for example, the initial state of the robot 5 before the execution of the function, the final state of the robot 5 after the execution of the function, and the time required to execute the function. It is a function that takes each logical variable that indicates the change of dynamics as an argument.
  • the function "Move” represents a state in which an object is loaded when the logical variable is "1" (that is, a state in which the object moves together with the object), and when the logical variable is "0", the object is loaded. Represents a non-existent state.
  • the subtask sequence generation unit 36 sets the function "Move” to the trajectory of the robot 5 determined by the control input for each time step indicated by the control input information Ic and the transition of the logical variable for each time step indicated by the control input information Ic. Determine based on.
  • the subtask information I4 includes information for defining a function indicating a subtask corresponding to the movement and grip of the robot arm. There is. Then, the subtask sequence generation unit 36 generates the subtask sequence Sr for each robot 5 from the control input information Ic.
  • FIG. 9 is an example of a flowchart showing the control processing executed by the control device 1 in the first embodiment.
  • the task group generation unit 16 of the control device 1 accepts the task designation based on the input information S1 supplied from the task instruction device 2 (step S11). In this case, first, the task group generation unit 16 transmits the display information S2 to the task instruction device 2 to display the screen for designating the task on the task instruction device 2. Then, the task group generation unit 16 recognizes all the target tasks to be executed by receiving the input information S1 generated by the input operation on the screen from the task instruction device 2.
  • the task group generation unit 16 generates a task group in which the tasks specified in step S11 are classified (step S12). In this case, the task group generation unit 16 generates a task group based on at least one of the timing when the task is specified, the category of the task indicated by the task classification information I7, or the user input on the task instruction device 2. do.
  • the operation sequence generation unit 17 generates an operation sequence of the robot 5 so that the task end timing approaches for each task group generated by the task group generation unit 16 (step S13).
  • the motion sequence generation unit 17 generates the subtask sequence Sr based on the task group information Itg, the state information Im generated by the state recognition unit 15, and the application information regarding the form and motion characteristics of the robot 5.
  • the operation sequence generation unit 17 optimizes the task group including two or more tasks so that the completion times of the tasks in the group match or are within a predetermined time difference at least as a constraint condition. Often, optimization may be performed using an objective function that includes at least a term relating to the variation in the completion time.
  • the robot control unit 18 supplies the control signal S3 based on the generated subtask sequence Sr to the robot 5 and controls the robot 5 to operate according to the generated subtask sequence Sr (step S14). ).
  • the task group generation unit 16 determines whether or not there is an instruction to add or delete a task (step S15). In this case, the task group generation unit 16 receives the input information S1 instructing the addition or deletion of the task from the task instruction device 2 that has received the task designation in step S11, or the task different from the task instruction device 2. When the input information S1 instructing the task is received from the instruction device 2, it is determined that the instruction to add or delete the task has been given.
  • step S15 when there is an instruction to add or delete a task (step S15; Yes), the control device 1 returns the process to step S12.
  • the task group generation unit 16 changes the tasks constituting the existing task group or generates a new task group, and the operation sequence generation unit 17 regenerates the subtask sequence Sr.
  • the operation sequence generation unit 17 may generate a sequence for executing the additional task group after executing the existing task group.
  • the operation sequence generation unit 17 generates a new subtask sequence Sr by adding the generated sequence to the existing subtask sequence Sr.
  • step S16 determines whether or not the target task has been completed. In this case, the control device 1 determines whether or not the target task has been completed, for example, based on the state information Im generated by the state recognition unit 15 based on the output signal S4 or the signal supplied from the robot 5 to notify the completion of the target task. judge. Then, when it is determined that the target task is completed (step S16; Yes), the control device 1 ends the processing of the flowchart. On the other hand, when the control device 1 determines that the target task has not been completed (step S16; No), the control device 1 returns the process to step S14.
  • control device 1 in the first embodiment sets a task group in which it is preferable to align the completion times as one task group, and operates each robot so that the completion times of the tasks in the task group approach each other. Generate a sequence. As a result, customer satisfaction can be suitably improved when the robot is applied to a service industry such as eating and drinking.
  • Modification example 1 Information regarding the execution result of a part of the functional blocks of the operation sequence generation unit 17 shown in FIG. 7 may be stored in advance in the application information storage unit 41.
  • the information generated by the abstract state setting unit 31 and the abstract model generation unit 34 may be stored in advance in the application information storage unit 41.
  • the application information includes design information such as a flowchart showing a processing procedure to be executed by the robot 5 for each task in advance, and the operation sequence generation unit 17 can refer to the design information.
  • An operation sequence of each robot 5 may be generated.
  • a specific example of executing a task based on a pre-designed task sequence is disclosed in Japanese Patent Application Laid-Open No. 2017-39170. Even in such a case, the operation sequence generation unit 17 assigns the optimum task to each robot 5 so that the completion time of the tasks constituting the task group approaches, and determines the operation sequence of each robot 5. do.
  • the task group generation unit 16 does not have to generate a task group consisting of only one task. That is, the task group generation unit 16 may generate only a task group including at least two or more tasks.
  • the task group generation unit 16 sets flag information indicating that the task does not belong to the task group as the identification information of the task group attached to the task for the task that does not belong to any task group. Generate. Then, the operation sequence generation unit 17 refers to the task group information Itg, and in the optimization when determining the control input of the robot 5, the constraint condition regarding the completion time between the tasks belonging to the task group or the completion time is minimized. Set the objective function to do so. This also makes it possible to preferably approach the completion times of tasks that are preferably completed at the same time, as in the first embodiment described above.
  • FIG. 10 is a schematic configuration diagram of the control device 1A according to the second embodiment. As shown in FIG. 10, the control device 1A includes a task group generating means 16A and an operation sequence generating means 17A.
  • the task group generation means 16A generates one or more task groups in which a plurality of tasks are classified when a plurality of tasks executed by one or a plurality of robots are specified.
  • the plurality of tasks described above may form one task group or a plurality of task groups.
  • the task group generation means 16A can be the task group generation unit 16 in the first embodiment.
  • the task group generating means 16A may detect the designation of the task based on the information received from the external device, or may detect it based on the input to the input unit included in the control device 1A, and the task to be executed. It may be detected by referring to the storage device that stores the above.
  • the control device 1A may be incorporated as a part of the robot, or may be configured as a separate body from the robot.
  • the motion sequence generation means 17A generates a robot motion sequence for completing a plurality of tasks so that the completion times of the tasks constituting the task group are close to each other.
  • This operation sequence can be the subtask sequence Sr in the first embodiment. Further, the operation sequence generation means 17A can be the operation sequence generation unit 17 in the first embodiment.
  • FIG. 11 is an example of a flowchart executed by the control device 1A in the second embodiment.
  • the task group generation means 16A generates a task group including one or more tasks constituting the plurality of tasks when a plurality of tasks executed by one or a plurality of robots are specified (step S21).
  • the motion sequence generation means 17A generates a robot motion sequence for completing a plurality of tasks so that the completion times of the tasks constituting the task group are close to each other (step S22).
  • control device 1A can suitably determine the operation sequence of the robot so that the completion time of the specific task group approaches.
  • Non-temporary computer-readable media include various types of tangible storage media.
  • Examples of non-temporary computer-readable media include magnetic recording media (eg, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (eg, magneto-optical disks), CD-ROMs (Read Only Memory), CD-Rs, Includes CD-R / W and semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (Random Access Memory)).
  • the program may also be supplied to the computer by various types of transient computer readable 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.
  • a task group generation means for generating one or more task groups that classify the plurality of tasks when a plurality of tasks executed by one or a plurality of robots are specified.
  • An operation sequence generation means for generating an operation sequence of the robot for completing the plurality of tasks so that the completion times of the tasks constituting the task group are close to each other. Control device with.
  • the operation sequence generation means generates the operation sequence by optimization with at least a constraint that the completion times of the tasks constituting the task group are the same or within a predetermined time difference, according to Appendix 1. Control device.
  • Appendix 3 The control device according to Appendix 1, wherein the operation sequence generation means generates the operation sequence by optimization using an objective function including at least a term relating to a variation in the completion time of each task constituting the task group.
  • the operation sequence generating means generates the operation sequence so that the completion time of the tasks constituting the task group approaches the estimated time of completion of the designated work, according to any one of the items 1 to 5.
  • the task group generation means receives the designation of the plurality of tasks from the task instruction device, the task group generation means receives the input information instructing the task for which the completion time is adjusted among the plurality of tasks from the task instruction device.
  • the control device according to any one of Supplementary note 1 to 6, which generates a group.
  • the motion sequence generating means generates the motion sequence based on at least one of information on the form of the robot, information on the motion characteristics of the robot, and state information indicating the state of the work space in which the robot operates.
  • the control device according to any one of Supplementary note 1 to 9.
  • the operation sequence generation means A logical expression conversion means for converting the task into a logical expression based on temporal logic, A time step logical expression generating means for generating a time step logical expression, which is a logical expression representing a state for each time step in order to execute the task, is included from the logical expression.
  • the control device according to any one of Supplementary note 1 to 10, which generates the operation sequence based on the time step logical expression.
  • the operation sequence generation means Further including an abstract model generation means for generating an abstract model that abstracts the dynamics in the workspace in which the robot operates.
  • the operation sequence is generated by determining the control input for each time step for controlling the robot by optimizing the abstract model and the time step logical expression as at least a constraint condition, according to Appendix 11. Control device.
  • a task group generation means for generating one or more task groups that classify the plurality of tasks when a plurality of tasks executed by one or a plurality of robots are specified.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Manipulator (AREA)

Abstract

制御装置1Aは、タスクグループ生成手段16Aと、動作シーケンス生成手段17Aとを有する。タスクグループ生成手段16Aは、1又は複数のロボットにより実行される複数のタスクが指定された場合に、複数のタスクを分類した1以上のタスクグループを生成する。動作シーケンス生成手段17Aは、タスクグループを構成するタスク同士の完了時刻を近づけるように、複数のタスクを完了するためのロボットの動作シーケンスを生成する。

Description

制御装置、制御方法及び記録媒体
 本発明は、ロボットに作業させるタスクに関する処理を行う制御装置、制御方法及び記録媒体の技術分野に関する。
 ロボットに作業させるタスクが与えられた場合に、当該タスクを実行するために必要なロボットの制御を行う制御手法が提案されている。例えば、特許文献1には、ハンドを有するロボットにより複数の物品を把持して容器に収容する場合に、ハンドが物品を把持する順序の組み合わせを決定し、組み合わせ毎に算出した指標に基づき、サイクルタイムを最小化するような収容物品の順序を決定するロボット制御装置が開示されている。
特開2018-51684号公報
 ロボットが複数の物品を扱う場合、特許文献1のロボット制御装置のようにサイクルタイムの最小化の観点でロボットの動作シーケンスを決定した場合には、物品毎のタスクが完了するタイミングにばらつきが生じる可能性があった。
 本発明の目的の1つは、上述した課題を鑑み、ロボットの動作シーケンスを好適に生成することが可能な制御装置、制御方法及び記録媒体を提供することである。
 制御装置の一の態様は、制御装置であって、1又は複数のロボットにより実行される複数のタスクが指定された場合に、前記複数のタスクを分類した1以上のタスクグループを生成するタスクグループ生成手段と、前記タスクグループを構成するタスク同士の完了時刻を近づけるように、前記複数のタスクを完了するための前記ロボットの動作シーケンスを生成する動作シーケンス生成手段と、を有する。
 制御方法の一態様は、コンピュータにより、1又は複数のロボットにより実行される複数のタスクが指定された場合に、前記複数のタスクを分類した1以上のタスクグループを生成し、前記タスクグループを構成するタスク同士の完了時刻を近づけるように、前記複数のタスクを完了するための前記ロボットの動作シーケンスを生成する制御方法である。
 記録媒体の一の態様は、1又は複数のロボットにより実行される複数のタスクが指定された場合に、前記複数のタスクを分類した1以上のタスクグループを生成するタスクグループ生成手段と、前記タスクグループを構成するタスク同士の完了時刻を近づけるように、前記複数のタスクを完了するための前記ロボットの動作シーケンスを生成する動作シーケンス生成手段としてコンピュータを機能させるプログラムが格納された記録媒体である。
 本発明によれば、タスクの完了タイミングを考慮してロボットの動作シーケンスを好適に生成することができる。
ロボット制御システムの構成を示す。 制御装置のハードウェア構成を示す。 アプリケーション情報のデータ構造の一例を示す。 第1実施形態における制御装置の機能ブロックの一例である。 注文確認画面の第1表示例である。 注文確認画面の第2表示例である。 動作シーケンス生成部の機能的な構成を示す機能ブロックの一例である。 作業空間の俯瞰図を示す。 第1実施形態において制御装置が実行する制御処理を示すフローチャートの一例である。 第2実施形態における制御装置の概略構成図である。 第2実施形態における制御処理を示すフローチャートの一例である。
 以下、図面を参照しながら、制御装置、制御方法及び記録媒体の実施形態について説明する。
 <第1実施形態>
 (1)システム構成
 図1は、第1実施形態に係るロボット制御システム100の構成を示す。ロボット制御システム100は、主に、制御装置1と、複数のタスク指示装置2(2A、2B、…)と、記憶装置4と、複数のロボット5(5A、5B、…)と、計測装置7と、を備える。
 制御装置1は、ロボット5に実行させるタスクが指定された場合に、各ロボット5が受付可能な単純なタスクのタイムステップ(時間刻み)毎のシーケンスを生成し、生成したシーケンスに基づき各ロボット5を制御する。以後では、各ロボット5が受付可能な単位によりタスクを分解したタスク(コマンド)を、「サブタスク」とも呼び、指定されたタスクを達成するために各ロボット5が実行すべきサブタスクのシーケンスを「サブタスクシーケンス」とも呼ぶ。サブタスクシーケンスは、各ロボット5の一連の動作を規定する動作シーケンスに相当する。本実施形態では、複数のタスクが指定された場合に、各ロボット5は、夫々割り当てられたサブタスクシーケンスを実行することで、協働作業により当該複数のタスクを完了させる。以後では、ロボット5に実行させる必要がある全てのタスク(即ち指定された全タスク)を「全対象タスク」とも呼ぶ。
 また、制御装置1は、タスク指示装置2、記憶装置4、ロボット5、及び計測装置7と、通信網を介し、又は、無線若しくは有線による直接通信により、データ通信を行う。例えば、制御装置1は、タスク指示装置2から、タスクを指定する入力情報「S1」を受信する。また、制御装置1は、タスク指示装置2に対し、ロボット5に実行させるタスクの指定を受け付けるための表示情報「S2」を送信する。制御装置1は、ロボット5の制御に関する制御信号「S3」をロボット5に送信する。また、制御装置1は、計測装置7から出力信号「S4」を受信する。
 タスク指示装置2(2A、2B、…)は、ユーザからタスクの指定を受け付けるインターフェースとなる装置である。タスク指示装置2は、制御装置1から供給される表示情報S2に基づき所定の表示を行ったり、ユーザ入力に基づき生成した入力情報S1を制御装置1へ供給したりする。タスク指示装置2は、後述するように、同一タイミングにより複数のタスクの指定を受け付けることが可能である。タスク指示装置2は、入力部と表示部とを備えるタブレット端末であってもよく、据置型のパーソナルコンピュータであってもよい。また、タスク指示装置2は、工場などに配置されたロボット5を遠隔又は近距離により制御して所定の作業を行う作業者が使用する端末であってもよく、役務の提供を受ける顧客が注文に使用する端末であってもよい。飲食の提供の場合、1品単位の各注文が夫々タスクとして認識される。
 記憶装置4は、アプリケーション情報記憶部41を有する。アプリケーション情報記憶部41は、タスクからサブタスクシーケンスを生成するために必要なアプリケーション情報を記憶する。アプリケーション情報の詳細は、図3を参照しながら後述する。記憶装置4は、制御装置1に接続又は内蔵されたハードディスクなどの外部記憶装置であってもよく、フラッシュメモリなどの記録媒体であってもよい。また、記憶装置4は、制御装置1と通信網を介してデータ通信を行うサーバ装置であってもよい。この場合、記憶装置4は、複数のサーバ装置から構成されてもよい。
 ロボット5(5A、5B、…)は、制御装置1から供給される制御信号S3に基づきタスクに関する作業を行う。ロボット5は、垂直多関節型ロボット、水平多関節型ロボット、無人搬送車(AGV:Automated Guided Vehicle)又はその他の任意の種類のロボットであってもよい。ロボット5は、ロボット5の状態を示す状態信号を制御装置1に供給してもよい。この状態信号は、ロボット5全体又は関節などの特定部位の状態(位置、角度等)を検出するセンサの出力信号であってもよく、ロボット5の制御部が生成したロボット5のサブタスクの進捗状態を示す信号であってもよい。
 計測装置7は、タスクが実行される作業空間内の状態を検出するカメラ、測域センサ、ソナーまたはこれらの組み合わせとなる1又は複数のセンサである。計測装置7は、生成した出力信号S4を制御装置1に供給する。計測装置7は、作業空間内で移動する自走式又は飛行式のセンサ(ドローンを含む)であってもよい。また、計測装置7は、ロボット5に設けられたセンサ、及び作業空間内の他の物体に設けられたセンサなどを含んでもよい。また、計測装置7は、作業空間内の音を検出するセンサを含んでもよい。このように、計測装置7は、作業空間内の状態を検出する種々のセンサであって、任意の場所に設けられたセンサを含んでもよい。
 なお、図1に示すロボット制御システム100の構成は一例であり、当該構成に種々の変更が行われてもよい。例えば、ロボット5は複数台存在してもよく、ロボットアームなどの夫々が独立して動作する制御対象物を複数有してもよい。これらの場合であっても、制御装置1は、全対象タスクに基づき、ロボット5毎又は制御対象物毎に実行すべきサブタスクシーケンスを生成し、当該サブタスクシーケンスに基づく制御信号S3を、対象のロボット5に送信する。ロボット5は、作業空間内で動作する他のロボット、作業者又は工作機械と協働作業を行うものであってもよい。計測装置7は、ロボット5の一部であってもよい。タスク指示装置2は、制御装置1と同一の装置として構成されてもよい。制御装置1は、複数の装置から構成されてもよい。この場合、制御装置1を構成する複数の装置は、予め割り当てられた処理を実行するために必要な情報の授受を、これらの複数の装置間において行う。また、ロボット5には、制御装置1の少なくとも一部又は全ての機能が組み込まれていてもよい。
 (2)ハードウェア構成
 図2(A)は、制御装置1のハードウェア構成を示す。制御装置1は、ハードウェアとして、プロセッサ11と、メモリ12と、インターフェース13とを含む。プロセッサ11、メモリ12及びインターフェース13は、データバス10を介して接続されている。
 プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、所定の処理を実行する。プロセッサ11は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)などのプロセッサである。
 メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)などの各種の揮発性及び不揮発性メモリにより構成される。また、メモリ12には、制御装置1が所定の処理を実行するためのプログラムが記憶される。また、メモリ12は、作業メモリとして使用され、記憶装置4から取得した情報等を一時的に記憶する。なお、メモリ12は、記憶装置4として機能してもよい。同様に、記憶装置4は、制御装置1のメモリ12として機能してもよい。なお、制御装置1が実行するプログラムは、メモリ12以外の記録媒体に記憶されてもよい。
 インターフェース13は、制御装置1と外部装置とを電気的に接続するためのインターフェースである。例えば、インターフェース13は、制御装置1とタスク指示装置2とを接続するためのインターフェース、及び制御装置1と記憶装置4とを接続するためのインターフェースを含む。また、インターフェース13は、制御装置1とロボット5とを接続するためのインターフェース、及び制御装置1と計測装置7とを接続するためのインターフェースを含む。これらの接続は、有線接続であってもよく、無線接続であってもよい。例えば、制御装置1とこれらの外部装置とを接続するためのインターフェースは、プロセッサ11の制御に基づきこれらの外部装置とデータの送受信を有線又は無線により行うための通信インターフェースであってもよい。他の例では、制御装置1と外部装置とは、ケーブル等により接続されてもよい。この場合、インターフェース13は、外部装置とデータの授受を行うためのUSB(Universal Serial Bus)、SATA(Serial AT Attachment)などに準拠したインターフェースを含む。
 なお、制御装置1のハードウェア構成は、図2(A)に示す構成に限定されない。例えば、制御装置1は、表示装置、入力装置又は音出力装置の少なくともいずれかと接続又は内蔵してもよい。また、制御装置1は、タスク指示装置2又は記憶装置4の少なくとも一方を含んで構成されてもよい。
 図2(B)は、タスク指示装置2のハードウェア構成を示す。タスク指示装置2は、ハードウェアとして、プロセッサ21と、メモリ22と、インターフェース23と、入力部24aと、表示部24bとを含む。プロセッサ21、メモリ22及びインターフェース23は、データバス29を介して接続されている。また、インターフェース23には、入力部24aと表示部24bとが接続されている。
 プロセッサ21は、メモリ22に記憶されているプログラムを実行することにより、所定の処理を実行する。プロセッサ21は、CPU、GPUなどのプロセッサである。プロセッサ21は、インターフェース23を介して入力部24aが生成した信号を受信することで、入力情報S1を生成し、インターフェース23を介して制御装置1に当該入力情報S1を送信する。また、プロセッサ21は、インターフェース23を介して制御装置1から受信した表示情報S2を、表示部24bにインターフェース23を介して供給する。
 メモリ22は、RAM、ROMなどの各種の揮発性及び不揮発性メモリにより構成される。また、メモリ22には、タスク指示装置2が所定の処理を実行するためのプログラムが記憶される。また、メモリ22は、作業メモリとして使用される。また、メモリ22は、フラッシュメモリ、ハードディスクなどの不揮発性メモリを含んでもよい。
 インターフェース23は、タスク指示装置2と他の装置とを電気的に接続するためのインターフェースである。例えば、インターフェース23は、タスク指示装置2が他の装置と有線又は無線によりデータ通信を行うための通信インターフェースを含む。また、インターフェース23は、入力部24a及び表示部24bとプロセッサ21及びメモリ22とのインターフェース動作を行う。入力部24aは、ユーザの操作に応じた入力信号を生成する。入力部24aは、例えば、タッチパネル、ボタン、キーボード、音声入力装置又はこれらの組合せを含む。表示部24bは、例えば、ディスプレイ、プロジェクタ等であり、プロセッサ21の制御に基づき表示情報S2に基づく情報の表示を行う。
 なお、タスク指示装置2のハードウェア構成は、図2(B)に示す構成に限定されない。例えば、入力部24a及び表示部24bは、タスク指示装置2と電気的に接続する別体の装置として構成されてもよい。また、タスク指示装置2は、音出力装置、カメラなどの種々の装置と接続してもよく、これらを内蔵してもよい。
 (3)アプリケーション情報
 次に、アプリケーション情報記憶部41が記憶するアプリケーション情報のデータ構造について説明する。
 図3は、アプリケーション情報記憶部41に記憶されるアプリケーション情報のデータ構造の一例を示す。図3に示すように、アプリケーション情報記憶部41は、抽象状態指定情報I1と、制約条件情報I2と、動作限界情報I3と、サブタスク情報I4と、抽象モデル情報I5と、物体モデル情報I6と、タスク分類情報I7と、作業空間情報I8とを含む。
 抽象状態指定情報I1は、サブタスクシーケンスの生成にあたり定義する必要がある抽象状態を指定する情報である。この抽象状態は、作業空間内における物体の抽象的な状態であって、後述する目標論理式において使用する命題として定められる。例えば、抽象状態指定情報I1は、タスクの種類毎に、定義する必要がある抽象状態を指定する。
 制約条件情報I2は、タスクを実行する際の制約条件を示す情報である。制約条件情報I2は、例えば、タスクがピックアンドプレイスの場合、障害物にロボット5(ロボットアーム)が接触してはいけないという制約条件、ロボット5(ロボットアーム)同士が接触してはいけないという制約条件などを示す。なお、制約条件情報I2は、タスクの種類毎に夫々適した制約条件を記録した情報であってもよい。
 動作限界情報I3は、制御装置1により制御が行われるロボット5の動作限界に関する情報を示す。動作限界情報I3は、例えば、ロボット5の速度、加速度、又は角速度の上限を規定する情報である。また、ロボット5が物の搬送を行う場合には、積載可能な重量又は個数の情報が動作限界情報I3に含まれる。なお、動作限界情報I3は、ロボット5の可動部位又は関節ごとに動作限界を規定する情報であってもよい。
 サブタスク情報I4は、ロボット5が受付可能なサブタスクの情報を示す。例えば、タスクがピックアンドプレイスの場合には、サブタスク情報I4は、ロボット5のロボットアームの移動であるリーチングと、ロボットアームによる把持であるグラスピングとをサブタスクとして規定する。サブタスク情報I4は、タスクの種類毎に使用可能なサブタスクの情報を示すものであってもよい。
 抽象モデル情報I5は、作業空間におけるダイナミクスを抽象化した抽象モデルに関する情報である。例えば、抽象モデルは、後述するように、現実のダイナミクスをハイブリッドシステムにより抽象化したモデルにより表されている。抽象モデル情報I5は、上述のハイブリッドシステムにおけるダイナミクスの切り替わりの条件を示す情報を含む。切り替わりの条件は、例えば、対象物をロボット5が掴んで所定位置に移動させるピックアンドプレイスの場合、対象物はロボット5により把持されなければ移動できないという条件などが該当する。抽象モデル情報I5は、タスクの種類毎に適した抽象モデルに関する情報を有している。
 物体モデル情報I6は、計測装置7が生成した出力信号S4から認識すべき作業空間内の各物体の物体モデルに関する情報である。上述の各物体は、例えば、ロボット5、障害物、ロボット5が扱う工具その他の対象物、ロボット5以外の作業体などが該当する。物体モデル情報I6は、例えば、上述した各物体の種類、位置、姿勢、現在実行中の動作などを制御装置1が認識するために必要な情報と、各物体の3次元形状を認識するためのCAD(computer aided design)データなどの3次元形状情報とを含んでいる。前者の情報は、ニューラルネットワークなどの機械学習における学習モデルを学習することで得られた推論器のパラメータを含む。この推論器は、例えば、画像が入力された場合に、当該画像において被写体となる物体の種類、位置、姿勢等を出力するように予め学習される。
 タスク分類情報I7は、指定される可能性があるタスクの分類を示す情報である。タスク分類情報I7に基づくタスクの分類は、好適には、同一タイミングにより完了することが好ましいタスクが同一区分(カテゴリ)とするように行われる。例えば、飲食の提供において、1個単位の注文をタスクとした場合、飲み物、前菜(おつまみ)、メイン料理、デザートなどのカテゴリに各タスクが予め分類される。飲食以外の役務の提供又は完了時刻の同期が必要なタスクを伴う工場等での作業においても同様に、同一タイミングにより完了することが好ましいタスクが同一カテゴリとなる分類結果を示すタスク分類情報I7が予め生成される。
 作業空間情報I8は、ロボット5がタスクを行う作業空間のレイアウトを示す情報(所謂マップ情報)である。この場合、ロボット5が移動式ロボットである場合には、作業空間情報I8は、ロボット5が通行可能な通路及びロボット5の通行を妨げる障害物に関する情報を含む。また、タスクが物の搬送(提供)である場合には、作業空間情報I8は、物の搬送場所(即ち目的地)を示す情報を含む。また、タスクが飲食物の提供の場合、作業空間情報I8は、タスク指示装置2が夫々配置された各テーブルの位置を示す情報を含んでもよい。この場合、作業空間情報I8は、各タスク指示装置2の識別情報と、当該タスク指示装置2が配置されたテーブルの識別情報とを関連付けた情報を含んでもよい。
 このように、アプリケーション情報は、ロボット5の動き特性を示すロボット動作情報、ロボット5の形態に関するロボット形態情報、及びロボット5以外の物体に関する情報を含んでいる。なお、ロボット動作情報は、動作限界情報I3、サブタスク情報I4、抽象モデル情報I5が該当し、ロボット形態情報は、物体モデル情報I6が該当する。なお、アプリケーション情報記憶部41は、上述した情報の他、サブタスクシーケンスの生成処理及び表示情報S2の生成処理に関する種々の情報を記憶してもよい。
 (4)制御装置の処理概要
 図4は、制御装置1の処理の概要を示す機能ブロックの一例である。制御装置1のプロセッサ11は、機能的には、状態認識部15と、タスクグループ生成部16と、動作シーケンス生成部17と、ロボット制御部18と、を有する。なお、図4では、各ブロック間で授受が行われるデータの一例が示されているが、これに限定されない。後述する他の機能ブロックの図においても同様である。
 状態認識部15は、計測装置7から供給される出力信号S4、物体モデル情報I6、及び作業空間情報I8等に基づき、ロボット5の作業空間の状態の認識を行う。そして、状態認識部15は、認識したロボット5の作業空間の状態に関する情報(「状態情報Im」とも呼ぶ。)を、他の構成要素に供給する。この場合、状態認識部15は、例えば、出力信号S4を受信した場合に、物体モデル情報I6等を参照し、作業空間の状態を認識する技術(画像処理技術、画像認識技術、音声認識技術、RFID(Radio Frequency Identifier)を用いる技術等)により出力信号S4を解析する。これにより、状態認識部15は、タスクの実行に関連する作業空間内の各物体の種類毎の数、位置及び姿勢等を認識し、当該認識結果を含む状態情報Imを生成する。また、状態認識部15は、計測装置7が計測できない作業空間(計測装置7の死角を含む)の状態を、作業空間情報I8を参照することで認識し、当該認識結果を状態情報Imに含める。
 なお、状態認識部15に相当する機能を計測装置7が有してもよい。この場合、計測装置7は、出力信号S4に代えて、又はこれに加えて、生成した状態情報Imを、制御装置1に供給する。
 タスクグループ生成部16は、指定された全対象タスクを同一タイミングで完了すべきタスク毎に分類したグループ(「タスクグループ」とも呼ぶ。)を生成する。この場合、まず、タスクグループ生成部16は、ロボット5に実行させるタスクを作業者が指定する画面の表示情報S2を生成し、当該表示情報S2をタスク指示装置2へインターフェース13を介して送信する。そして、タスクグループ生成部16は、上述の画面において指定されたタスクに関する入力情報S1を、インターフェース13を介してタスク指示装置2から受信する。そして、タスクグループ生成部16は、受信した入力情報S1により特定される全対象タスクから、タスク分類情報I7等を参照することで、1以上のタスクグループを生成する。タスクグループは、少なくとも1つのタスクを含んでいる。そして、タスクグループ生成部16は、生成したタスクグループに関する情報であるタスクグループ情報「Itg」を、動作シーケンス生成部17へ供給する。タスクグループ情報Itgは、例えば、全対象タスクの各タスクを特定する情報と、各タスクが属するタスクグループの識別情報とを含んでいる。
 動作シーケンス生成部17は、状態情報Imと、タスクグループ情報Itgと、アプリケーション情報とに基づき、全対象タスクを遂行するために各ロボット5が実行すべきサブタスクシーケンス「Sr」を生成する。この場合、動作シーケンス生成部17は、タスクグループを構成するタスク同士の完了時刻(即ち完了タイミング)を近づけるように、タスク指示装置2により指定されたタスクを完了するためのサブタスクシーケンスSrを生成する。この場合、例えば、動作シーケンス生成部17は、タスクグループを構成するタスクの夫々の完了時刻が一致又は所定時間差以内となることを少なくとも制約条件とする最適化を行うことで、サブタスクシーケンスSrを生成する。他の例では、動作シーケンス生成部17は、タスクグループを構成するタスクの夫々の完了時刻のばらつきに関する項を少なくとも含む目的関数を用いた最適化を行うことで、サブタスクシーケンスSrを生成する。そして、動作シーケンス生成部17は、生成したサブタスクシーケンスSrを、ロボット制御部18に供給する。ここで、サブタスクシーケンスSrには、各サブタスクの実行順序及び実行タイミングを示す情報が含まれている。
 ロボット制御部18は、動作シーケンス生成部17から供給されたサブタスクシーケンスSrに基づき、サブタスクシーケンスSrを構成する各サブタスクを夫々定められた実行タイミング(タイムステップ)でロボット5が実行するための制御を行う。具体的には、ロボット制御部18は、制御信号S3をロボット5に送信することで、サブタスクシーケンスSrを実現するためのロボット5の関節の位置制御又はトルク制御などを実行する。また、ロボット制御部18は、サブタスクシーケンスSrに基づくロボット5の制御中に、新たなサブタスクシーケンスSrが動作シーケンス生成部17から供給された場合、新たに供給されたサブタスクシーケンスSrに基づき、ロボット5の動作制御を行う。
 なお、ロボット制御部18に相当する機能を、制御装置1に代えてロボット5が有してもよい。この場合、ロボット5は、動作シーケンス生成部17からサブタスクシーケンスSrを受信することで、サブタスクシーケンスSrを実現するための関節の位置制御又はトルク制御などを実行する。
 なお、図4において説明した状態認識部15、タスクグループ生成部16、動作シーケンス生成部17及びロボット制御部18の各構成要素は、例えば、プロセッサ11がプログラムを実行することによって実現できる。より具体的には、各構成要素は、メモリ12又は記憶装置4に格納されたプログラムを、プロセッサ11が実行することによって実現され得る。また、必要なプログラムを任意の不揮発性記録媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組み合わせ等により実現してもよい。また、これらの各構成要素は、例えばFPGA(field-programmable gate array)又はマイコン等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。このように、各構成要素は、プロセッサ以外のハードウェアにより実現されてもよい。以上のことは、後述する他の実施の形態においても同様である。
 (5)タスクグループ生成部の詳細
 次に、タスクグループ生成部16の処理の詳細について説明する。タスクグループ生成部16は、タスクが指定されるタイミング、指定されたタスクの各々が属するカテゴリ、又は、完了時刻を合わせるタスクを指示する入力情報S1の少なくとも一方を勘案し、タスクグループを生成する。
 以後では、一例として、飲食の提供において注文品の個々の注文をタスクとする場合のタスクグループの生成方法について、図5及び図6が示す各表示例を参照して具体的に説明する。
 図5は、注文確認画面の第1表示例である。タスクグループ生成部16は、表示情報S2を生成し、当該表示情報S2をタスク指示装置2に送信することで、タスク指示装置2に図5に示す注文確認画面を表示させている。この場合、タスク指示装置2は、例えばレストランに配置されたテーブル(座席)毎に置かれた注文用のタブレット端末であり、複数の注文品の注文を同時に行うことが可能となっている。
 図5に示す注文確認画面は、主に、注文リスト欄25と、提供タイミング選択ボタン26と、注文を指定する注文指定画面に戻るための戻るボタン27Aと、注文を確定するための決定ボタン27Bとを有する。
 注文リスト欄25は、注文確認画面に遷移する前の注文指定画面においてユーザ入力により指定された注文品の名称を注文個数と共に示した一覧である。提供タイミング選択ボタン26は、注文リスト欄25の各注文品の提供タイミングに関する指定を受け付けるラジオボタンであり、第1ボタン26xと、第2ボタン26yと、第3ボタン26zとを含む。ここで、第1ボタン26xは、注文リスト欄25に列挙された全ての注文品が同一タイミングで提供されることを要望するボタンである。また、第2ボタン26yは、注文リスト欄25に列挙された注文品がカテゴリごとに同一タイミングで提供されることを要望するボタンである。第3ボタン26zは、注文リスト欄25に列挙された注文品の提供タイミングについての要望がないことを指定するボタンである。
 ここで、第1ボタン26xが選択された状態で決定ボタン27Bが選択された場合、タスクグループ生成部16は、タスク指示装置2から受信する入力情報S1に基づき、注文リスト欄25に列挙された注文品の全てを同一タイミングで提供すべきであると認識する。この場合、まず、タスクグループ生成部16は、注文リスト欄25に列挙された各注文品を対象のタスク指示装置2が設置されたテーブルに搬送するというタスクを認識する。第1表示例では、タスクグループ生成部16は、注文リスト欄25に列挙された注文品の数(8個)に相当する合計8個のタスクが指定されたことを認識する。そして、タスクグループ生成部16は、これらの認識したタスクを1つのグループとするタスクグループを生成する。このように、第1ボタン26xが選択された場合、タスクグループ生成部16は、同一のタスク指示装置2から同一タイミングにより指定された複数のタスクを、1つのタスクグループとみなす。
 一方、第2ボタン26yが選択された状態で決定ボタン27Bが選択された場合、タスクグループ生成部16は、タスク指示装置2から受信する入力情報S1に基づき、注文リスト欄25に列挙された注文品をカテゴリ毎に同一タイミングで提供すべきであると認識する。この場合、タスクグループ生成部16は、タスク分類情報I7を参照することで、注文リスト欄25に列挙された注文品の数に相当する合計8個のタスクの分類を行い、同一カテゴリとなったタスクの組み合わせごとにタスクグループを生成する。例えば、タスクグループ生成部16は、4個注文があった「〇〇〇〇」が第1カテゴリ(例えば主食)に属し、それ以外の4個の注文が第2カテゴリ(例えばデザート)に属する場合、第1カテゴリに属するタスクのタスクグループと第2カテゴリに属するタスクのタスクグループとを夫々生成する。このように、第2ボタン26yが選択された場合、タスクグループ生成部16は、同一のタスク指示装置2から同一タイミングにより指定された複数のタスクを、各タスクが属するカテゴリに従い分類した1以上のタスクグループを生成する。
 また、第3ボタン26zが選択された状態で決定ボタン27Bが選択された場合、タスクグループ生成部16は、タスク指示装置2から受信する入力情報S1に基づき、注文リスト欄25に列挙された注文品の提供タイミングをそろえる必要がないことを認識する。この場合、タスクグループ生成部16は、注文リスト欄25に列挙された注文品の各々に対応するタスクの各々を、1つのタスクから構成されるタスクグループとみなし、タスクと同数のタスクグループを生成する。
 このように、第1表示例によれば、タスクグループ生成部16は、タスクの指定されたタイミング又はタスクのカテゴリの少なくとも一方に基づき、指定された複数のタスクから、1又は複数のタスクグループを好適に生成することができる。
 図6は、注文確認画面の第2表示例である。タスクグループ生成部16は、表示情報S2を生成し、当該表示情報S2をタスク指示装置2に送信することで、タスク指示装置2に図6に示す注文確認画面を表示させている。第2表示例では、タスクグループ生成部16は、注文リスト欄25と、グループ選択ボタン28(28a~28e)と、戻るボタン27Aと、決定ボタン27Bと、提供タイミング指定欄90とを、注文確認画面上に表示している。
 グループ選択ボタン28(28a~28e)は、注文品のリストごとのチェックボックスとなっており、同時に提供されることを希望する注文品の選択を受け付ける。図6の例では、3つの注文品のリストに対するグループ選択ボタン28a、28b、28eが選択されている。この場合、タスクグループ生成部16は、タスク指示装置2から供給される入力情報S1に基づき、4個の注文品「〇〇〇〇」と、1個の注文品「〇〇××」と、1個の注文品「△×〇×」とを同時に提供すべきことを認識する。よって、この場合、タスクグループ生成部16は、4個の注文品「〇〇〇〇」と、1個の注文品「〇〇××」と、1個の注文品「△×〇×」とを提供する計6個のタスクを1つのグループとするタスクグループを生成する。また、タスクグループ生成部16は、他の注文品「△△××」及び「△〇〇×」についても、これらのタスクに対応するタスクグループを夫々生成する。これらのタスクグループは、1つのタスクから構成される。
 また、提供タイミング指定欄90は、同時に提供されることを希望する注文品の提供タイミングを選択する欄である。ここでは、一例として、提供タイミング指定欄90は、同時に提供されることを希望する注文品の提供に要する時間長(図6では30分)の指定を受け付けるプルダウンメニュー形式の選択欄となっている。タスクグループ生成部16は、入力情報S1に基づき、提供タイミング指定欄90により指定された時間長を、対象のタスクグループの作業見込み時間長として認識し、認識した作業見込み時間長を、動作シーケンス生成部17に供給する。その後、動作シーケンス生成部17は、供給された作業見込み時間長により定まる作業完了の見込み時刻に、対象のタスクグループを構成する各タスクの作業完了時刻を近付けるように、動作シーケンスを生成する。
 このように、第2表示例によれば、タスクグループ生成部16は、同一のタスク指示装置2から同一タイミングにより指定された複数のタスクのうち、タスク指示装置2により指定されたタスクを同一グループとするタスクグループを、好適に生成することができる。また、第2表示例によれば、タスクグループ生成部16は、対象のタスクグループの作業見込み時間長(即ち作業完了の見込み時刻)の指定を好適に受け付けることができる。
 なお、タスク指示装置2は、制御装置1から供給される表示情報S2に基づき、注文済みの注文品の削除又は追加(個数の変更を含む)の入力を受け付ける画面を表示し、注文品の削除又は追加に関する入力情報S1を制御装置1に送信してもよい。この場合、制御装置1のタスクグループ生成部16は、注文品の削除又は追加に関する入力情報S1に基づき、生成済みのタスクグループの変更を行い、変更後のタスクグループに関するタスクグループ情報Itgを、ロボット制御部18へ供給する。この場合のタスクグループの変更には、タスクグループの追加又は削除、及び、タスクグループを構成するタスクの削除又は追加が含まれる。
 (6)動作シーケンス生成部の詳細
 次に、動作シーケンス生成部17の詳細な処理について説明する。
 (6-1)機能ブロック
 図7は、動作シーケンス生成部17の機能的な構成を示す機能ブロックの一例である。動作シーケンス生成部17は、機能的には、抽象状態設定部31と、目標論理式生成部32と、タイムステップ論理式生成部33と、抽象モデル生成部34と、制御入力生成部35と、サブタスクシーケンス生成部36と、を有する。
 抽象状態設定部31は、タスクグループ生成部16から供給される状態情報Imと、抽象状態指定情報I1と、に基づき、作業空間内の抽象状態を設定する。この場合、抽象状態設定部31は、状態情報Imに基づいて、タスクを実行する際に考慮する必要がある各抽象状態に対し、論理式で表すための命題を定義する。抽象状態設定部31は、設定した抽象状態を示す情報(「抽象状態設定情報IS」とも呼ぶ。)を、目標論理式生成部32に供給する。
 目標論理式生成部32は、抽象状態設定情報ISと、タスクグループ情報Itgとに基づき、最終的な達成状態を表す時相論理の論理式(「目標論理式Ltag」とも呼ぶ。)を生成する。この場合、目標論理式生成部32は、アプリケーション情報記憶部41から制約条件情報I2を参照することで、タスクの実行において満たすべき制約条件を、目標論理式Ltagに付加する。また、タスクグループを構成するタスク同士の完了時刻の近さを制約条件として定める場合、目標論理式生成部32は、タスクグループ情報Itgを参照し、タスクグループを構成するタスク同士の完了時刻が一致又は所定時間差以内となる制約条件を、目標論理式Ltagに付加する。そして、目標論理式生成部32は、生成した目標論理式Ltagを、タイムステップ論理式生成部33に供給する。
 タイムステップ論理式生成部33は、目標論理式生成部32から供給された目標論理式Ltagを、各タイムステップでの状態を表した論理式(「タイムステップ論理式Lts」とも呼ぶ。)に変換する。そして、タイムステップ論理式生成部33は、生成したタイムステップ論理式Ltsを、制御入力生成部35に供給する。
 抽象モデル生成部34は、アプリケーション情報記憶部41が記憶する抽象モデル情報I5と、抽象状態設定部31から供給される状態情報Imとに基づき、作業空間における現実のダイナミクスを抽象化した抽象モデル「Σ」を生成する。この場合、抽象モデル生成部34は、対象のダイナミクスを連続ダイナミクスと離散ダイナミクスとが混在したハイブリッドシステムとみなし、ハイブリッドシステムに基づく抽象モデルΣを生成する。抽象モデルΣの生成方法については後述する。抽象モデル生成部34は、生成した抽象モデルΣを、制御入力生成部35へ供給する。
 制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルΣとを満たし、目的関数(たとえば、完了時刻のばらつき度合を表す関数)を最適化するタイムステップ毎のロボット5への制御入力を決定する。このとき、制御入力生成部35は、タスクグループを構成するタスク同士の完了時刻の近さを最適化の対象とする場合、タスクグループ情報Itgを参照し、2以上タスクが存在するタスクグループを認識する。そして、制御入力生成部35は、認識したタスクグループを構成するタスク同士の完了時刻のばらつきに関する項を少なくとも含む目的関数を設定し、ロボット5への制御入力を最適化により求める。そして、制御入力生成部35は、ロボット5へのタイムステップ毎の制御入力を示す情報(「制御入力情報Ic」とも呼ぶ。)を、サブタスクシーケンス生成部36へ供給する。
 サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクシーケンスSrを生成し、サブタスクシーケンスSrを動作シーケンス生成部17へ供給する。
 (6-2)抽象状態設定部
 抽象状態設定部31は、状態情報Imと、アプリケーション情報記憶部41から取得した抽象状態指定情報I1と、に基づき、作業空間内の抽象状態を設定する。この場合、まず、抽象状態設定部31は、抽象状態指定情報I1を参照し、作業空間内において設定すべき抽象状態を認識する。
 図8は、作業空間の俯瞰図を示す。図8に示す作業空間には、2台のロボット5(5A、5B)と、ロボット5による搬送対象となる対象物61(61a~61d)と、障害物62と、目的地領域63と、壁64(64a~64e)とが存在している。ここでは、ロボット5は、自走式ロボットであり、最大2個の対象物61を搬送可能であるものとする。
 この場合、抽象状態設定部31は、状態情報Imに基づき、ロボット5、対象物61、障害物62、目的地領域63及び壁64の位置及び形態等を認識する。そして、抽象状態設定部31は、抽象状態指定情報I1を参照することで、タスクの実行にあたり定義すべき抽象状態を決定する。図8の例では、抽象状態設定部31は、ロボット5、対象物61、障害物62、目的地領域63及び壁64に夫々識別ラベルを付す。また、抽象状態設定部31は、抽象状態指定情報I1に基づき、対象物61がロボット5に載っているという命題、対象物61が目的地領域63に存在するという命題、ロボット5同士が干渉していないという命題、ロボット5が障害物62又は壁64に干渉していないという命題などの目標論理式に用いられる各命題を定義する。
 このように、抽象状態設定部31は、抽象状態指定情報I1を参照することで、定義すべき抽象状態を認識し、当該抽象状態を表す命題を、ロボット5の数、対象物61の数、障害物62の数、壁64の数等に応じてそれぞれ定義する。そして、抽象状態設定部31は、抽象状態を表す命題を示す情報を、抽象状態設定情報ISとして目標論理式生成部32に供給する。
 (6-3)目標論理式生成部
 目標論理式生成部32は、タスクグループ情報Itgが示すタスクグループを構成する全タスクを、時相論理を用いた論理式に変換する。タスクが自然言語を用いて表現されている場合に、自然言語で表されたタスクを論理式に変換する方法は、自然言語処理等の種々の技術が存在する。例えば、目標論理式生成部32は、図8の例において、「最終的に対象物61aが目的地領域63に存在する」という命題「g」を示すタスクが与えられたとする。この場合、目標論理式生成部32は、タスクを線形論理式(LTL:Linear Temporal Logic)の「eventually」に相当する演算子「◇」と、抽象状態設定部31により定義された命題「g」と用いて、論理式「◇g」を生成する。そして、目標論理式生成部32は、タスクグループ情報Itgに基づき、全対象タスクの各タスクに対応する命題を論理積により結合した論理式を生成する。
 なお、目標論理式生成部32は、演算子「◇」以外の任意の時相論理の演算子(論理積「∧」、論理和「∨」、否定「¬」、論理包含「⇒」、always「□」、next「○」、until「U」等)を用いて論理式を表現してもよい。また、線形時相論理に限らず、MTL(Metric Temporal Logic)やSTL(Signal Temporal Logic)などの任意の時相論理を用いて論理式を表現してもよい。
 また、目標論理式生成部32は、制約条件情報I2が示す制約条件を、上述のタスクを示す論理式に付加することで、目標論理式Ltagを生成する。例えば、図8の例における制約条件として、「ロボット5Aとロボット5Bは互いに干渉しない」、「ロボット5A、5Bは、障害物62又は壁64に干渉しない」などの制約条件情報I2に含まれていた場合、目標論理式生成部32は、これらの制約条件を論理式に変換する。そして、タスクに対応する論理式に、変換したこれらの制約条件の論理式を付加することで、目標論理式Ltagを生成する。
 また、タスクグループを構成するタスク同士の完了時刻の近さを制約条件として定める場合には、目標論理式生成部32は、タスクグループ情報Itgを参照し、2以上のタスクを含むタスクグループを認識する。そして、目標論理式生成部32は、認識した各タスクグループを構成するタスク同士の完了時刻が一致又は所定時間差以内となる制約条件を加える。この場合、好適には、目標論理式生成部32は、タスクグループを構成するタスク同士の完了時刻の近さに関して厳しい制約条件を設定し、後述する最適化処理において解が存在しない場合に、上記制約条件を緩めるように制約条件を再設定してもよい。例えば、目標論理式生成部32は、最初に設定する制約条件として、タスクグループを構成するタスクの夫々の完了時刻間の時間差が0となる(即ち一致する)ことを制約条件に含める。そして、後述する最適化処理において解が存在しない場合、目標論理式生成部32は、上述の時間差を所定値だけ加算し、再び最適化処理を行う。そして、目標論理式生成部32は、最適化処理において解が見つかるまで上述の時間差への所定値の加算を繰り返す。このようにすることで、目標論理式生成部32は、タスクグループを構成するタスク同士の完了時刻を好適に近づけることができる。
 (6-4)タイムステップ論理式生成部
 タイムステップ論理式生成部33は、タスクグループ情報Itgが示すタスクグループを構成する全てのタスクを完了するタイムステップ数(「目標タイムステップ数」とも呼ぶ。)を定め、目標タイムステップ数で目標論理式Ltagを満たすような各タイムステップでの状態を表す命題の組み合わせを定める。この組み合わせは、通常複数存在するため、タイムステップ論理式生成部33は、これらの組み合わせを論理和により結合した論理式を、タイムステップ論理式Ltsとして生成する。上述の組み合わせは、各ロボット5に命令する動作のシーケンスを表す論理式の候補となり、以後では「候補φ」とも呼ぶ。よって、タイムステップ論理式生成部33は、生成した各候補φの論理和をタイムステップ論理式Ltsとして定める。この場合、タイムステップ論理式Ltsは、生成した候補φの少なくともいずれかが真となる場合に真となる。なお、タイムステップ論理式生成部33は、生成された候補に対し、動作限界情報I3を参照することで、実現可能性を判定し、実現不可と判定した候補φを除外してもよい。
 なお、タイムステップ論理式生成部33は、図6の提供タイミング指定欄90等でのユーザ入力により指定された作業見込み時間長(即ち作業完了の見込み時刻)に基づき、目標タイムステップ数を決定してもよく、予めメモリ12又は記憶装置4に記憶された規定値に目標タイムステップ数を設定してもよい。前者の場合、タイムステップ論理式生成部33は、メモリ12又は記憶装置4に記憶された、1タイムステップ当たりの時間幅の情報に基づき、タスク指示装置2へのユーザ入力又は制御装置1へのユーザ入力により指定された作業見込み時間長(即ち作業完了の見込み時刻)から目標タイムステップ数を算出する。その後、動作シーケンス生成部17は、目標タイムステップ数に基づき、対象のタスクグループを構成するタスク同士の完了時刻を、指定された作業完了の見込み時刻に近付けるように、動作シーケンスを生成する。また、タイムステップ論理式生成部33は、タスクの数とロボット5の数などを変数とする所定の算出式又はルックアップテーブル等に従い、目標タイムステップ数を決定してもよい。この場合、タスク毎にロボット5の1台当たりの所要時間の情報がメモリ12又は記憶装置4に記憶されている場合には、タイムステップ論理式生成部33は、当該所要時間をさらに勘案して目標タイムステップ数を決定してもよい。
 また、タイムステップ論理式生成部33は、目標タイムステップ数を所定の初期値に設定し、制御入力生成部35が制御入力を決定できるタイムステップ論理式Ltsが生成されるまで、目標タイムステップ数を徐々に増加させてもよい。この場合、タイムステップ論理式生成部33は、設定した目標タイムステップ数により制御入力生成部35が最適化処理を行った結果、最適解を導くことができなかった場合、目標タイムステップ数を所定数(1以上の整数)だけ加算する。
 (6-5)抽象モデル生成部
 抽象モデル生成部34は、状態情報Imと、抽象モデル情報I5とに基づき、抽象モデルΣを生成する。ここで、抽象モデル情報I5には、抽象モデルΣの生成に必要な情報が記録されている。例えば、タスクが対象物の搬送を伴うタスクの場合には、対象物の位置及び数、対象物を搬送する目的地領域の位置、ロボット5の数等を特定しない汎用的な形式の抽象モデルが抽象モデル情報I5に記録されている。この抽象モデルは、タイムステップ「k」での作業空間内の物体の状態とタイムステップ「k+1」での作業空間内の物体の状態との関係を示した差分方程式により表されてもよい。このとき、差分方程式には、例えば、対象物の位置を示す位置ベクトル、ロボット5の位置ベクトルなどが変数として与えられる。そして、抽象モデル生成部34は、抽象モデル情報I5に記録された汎用的な形式の抽象モデルに対し、状態情報Imが示す各物体の状態(個数、位置、姿勢等)を反映することで、抽象モデルΣを生成する。
 ここで、ロボット5によるタスクの作業時においては、作業空間内のダイナミクスが頻繁に切り替わる。よって、抽象モデル情報I5に記憶された抽象モデルは、このダイナミクスの切り替わりを、論理変数を用いて抽象表現したモデルとなっている。よって、抽象モデル生成部34は、ダイナミクスが切り替わるイベント(動作)を、論理変数を用いて抽象モデルにおいて抽象表現することで、ダイナミクスの切り替わりを好適に抽象モデルにより表現することができる。例えば、タスクが対象物の搬送を伴うタスクの場合には、ロボット5が対象物を載せている間では当該対象物はロボット5と共に動くが、ロボット5が対象物を載せていない場合には、当該対象物は動かない。よって、この場合、抽象モデル生成部34は、対象物をロボット5に載せるという動作を、論理変数を用いて抽象モデル内で抽象表現する。
 このように、抽象モデル生成部34は、抽象モデル情報I5を参照し、ダイナミクスの切り替わりが離散値である論理変数により表され、物体の移動は連続値により表されたハイブリッドシステムにより作業空間内のダイナミクスを抽象化したモデルである抽象モデルΣを設定する。ここで、抽象モデルΣがタイムステップ「k」及び「k+1」での作業空間内の物体の状態関係を示した差分方程式により表される場合、当該差分方程式は、物体の状態を表す位置ベクトル等と、ロボット5への制御入力を表す変数(パラメータ)と、ダイナミクスの切り替わりを示す論理変数とを含んでいる。
 また、抽象モデルΣは、ロボット5全体の詳細なダイナミクスではなく、抽象化されたダイナミクスを表す。例えば、抽象モデルΣでは、ロボット5が対象物を把持するためのロボットアームを有する場合、当該ロボットアームは、対象物を実際に把持するロボット5の手先であるロボットハンドのダイナミクスのみが表されてもよい。これにより、制御入力生成部35による最適化処理の計算量を好適に削減することができる。
 なお、抽象モデル生成部34は、混合論理動的(MLD:Mixed Logical Dynamical)システムまたはペトリネットやオートマトンなどを組み合わせたハイブリッドシステムのモデルを生成してもよい。
 (6-6)制御入力生成部
 制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルΣとに基づき、最適となるタイムステップ毎の各ロボット5に対するタイムステップ毎の制御入力を決定する。この場合、制御入力生成部35は、全対象タスクに対する目的関数を定義し、抽象モデルΣ及びタイムステップ論理式Ltsを制約条件として目的関数を最小化する最適化問題を解く。目的関数は、メモリ12又は記憶装置4に予め記憶される。
 ここで、目的関数は、例えば、ロボット5が費やすエネルギーを最小化するように設計される。図8に示す作業空間の例では、制御入力生成部35は、対象物61と目的地領域63との距離「d」と、ロボット5Aに対する制御入力「ukA」と、ロボット5Bに対する制御入力「ukB」とが最小となるように目的関数を定める。具体的には、制御入力生成部35は、全タイムステップにおける距離dのノルムの2乗と、制御入力ukAのノルムの2乗と、制御入力ukBのノルムの2乗との和を目的関数として定める。なお、制御入力ukA及び制御入力ukBは、速度であってもよく加速度であってもよい。
 また、タスクグループを構成するタスク同士の完了時刻の近さを最適化の対象とする場合、タスクグループを構成するタスクの夫々の完了時刻のばらつきに関する項を少なくとも含む目的関数を設定する。例えば、制御入力生成部35は、タスクグループ情報Itgを参照し、2以上のタスクを含むタスクグループを認識し、2以上のタスクを含むタスクグループの各々におけるタスクの完了時刻の分散値を合算した目的関数を定める。この場合、図8に示す作業空間の例では、目的関数の一例は、全タイムステップにおける距離dのノルムの2乗と、制御入力ukAのノルムの2乗と、制御入力ukBのノルムの2乗と、2以上のタスクを含む各タスクグループにおけるタスクの完了時刻の分散値との和となる。この場合、制御入力生成部35は、距離dの項と、制御入力ukAの項と、制御入力ukBの項と、タスクの完了時刻の分散値の項との夫々に対し、所定の重み付け係数を乗じてもよい。
 このように、タスクグループ毎のタスクの完了時刻のばらつきに関する項目を目的関数に加えることで、制御入力生成部35は、タスクグループを構成するタスク同士の完了時刻を近づけるようなロボット5への制御入力を好適に決定することができる。
 そして、制御入力生成部35は、設定した目的関数に対し、抽象モデルΣ及びタイムステップ論理式Lts(即ち候補φの論理和)を制約条件とする制約付き混合整数最適化問題を解く。ここで、制御入力生成部35は、論理変数を連続値に近似して連続緩和問題とすることで、計算量を削減してもよい。なお、線形論理式(LTL)に代えてSTLを採用した場合には、非線形最適化問題として記述することが可能である。これにより、制御入力生成部35は、ロボット5Aに対する制御入力ukAとロボット5Bに対する制御入力ukBとを夫々算出する。
 また、制御入力生成部35は、目標タイムステップ数が長い場合(例えば所定の閾値より大きい場合)、最適化に用いるタイムステップ数を、目標タイムステップ数より小さい値(例えば上述の閾値)に設定してもよい。この場合、制御入力生成部35は、例えば、所定のタイムステップ数が経過する毎に、上述の最適化問題を解くことで、逐次的に制御入力ukA及び制御入力ukBを決定する。
 また、制御入力生成部35は、タスクグループ生成部16がタスクの追加又は削除の指示を検知した場合、当該指示を反映後の全対象タスクに基づき再設定されたタイムステップ論理式Ltsに基づき、上述の最適化問題を解く。これにより、各ロボット5に対する制御入力ukA及び制御入力ukBとサブタスクシーケンスSrが再生成される。ここで、上述のタスクの削除は、タスクグループ生成部16が生成済みのタスクグループの削除又はタスクグループを構成する一部のタスクの削除を指す。また、上述のタスクの追加は、タスクグループ生成部16が生成済みのタスクグループへのタスクの追加、又は、新たなタスクグループの生成を伴うタスクの追加を指す。
 なお、制御装置1は、タスク指示装置2による実行指示が行われたタイミングが早いタスクほど、実行する優先度が高いとみなし、新たに指示されたタスクを、既に指示済みのタスクの完了後にロボット5に実行させてもよい。この場合、制御装置1は、同一タイミングにより同一のタスク指示装置2から指示されたタスク群毎に、上述した最適化問題を解き、サブタスクシーケンスSrを決定する。このとき、制御装置1は、指示済のタスク群の完了時刻及び完了状態を新たに指示されたタスク群の開始時刻及び初期状態と定め、新たに指示されたタスク群に対するサブタスクシーケンスSrを生成する。なお、制御装置1は、サブタスクシーケンスSrを生成済みのタスク群が完了したことを検知した後に、次に指定されたタスク群に対するサブタスクシーケンスSrの生成処理を行ってもよい。
 (6-7)サブタスクシーケンス生成部
 サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクシーケンスを生成する。この場合、サブタスクシーケンス生成部36は、サブタスク情報I4を参照することで、ロボット5が受け付け可能なサブタスクを認識する。そして、サブタスクシーケンス生成部36は、制御入力情報Icが示すタイムステップ毎のロボット5への制御入力を、ロボット5のサブタスクに変換する。
 例えば、対象物の搬送をタスクとする場合、サブタスク情報I4には、ロボット5が受け付け可能なサブタスクとして、ロボット5の移動に対応するサブタスクを示す関数が少なくとも定義されている。この場合、ロボット5の移動を表す関数「Move」は、例えば、当該関数実行前のロボット5の初期状態、当該関数実行後のロボット5の最終状態、及び当該関数の実行に要する所要時間、及びダイナミクスの切り替わりを示す論理変数をそれぞれ引数とする関数である。ここで、関数「Move」は、論理変数が「1」のときに対象物を積載した状態(即ち対象物と共に移動する状態)を表し、論理変数が「0」のときに対象物を積載していない状態を表す。この場合、サブタスクシーケンス生成部36は、関数「Move」を、制御入力情報Icが示すタイムステップ毎の制御入力により定まるロボット5の軌道及び制御入力情報Icが示すタイムステップ毎の論理変数の遷移に基づき決定する。
 なお、ロボット5が対象物を把持するためのロボットアームを有している場合には、ロボットアームの移動、把持などに夫々対応するサブタスクを示す関数を定義する情報がサブタスク情報I4に含まれている。そして、サブタスクシーケンス生成部36は、制御入力情報Icから、ロボット5毎にサブタスクシーケンスSrを生成する。
 (7)処理フロー
 図9は、第1実施形態において制御装置1が実行する制御処理を示すフローチャートの一例である。
 まず、制御装置1のタスクグループ生成部16は、タスク指示装置2から供給される入力情報S1に基づき、タスクの指定を受け付ける(ステップS11)。この場合、まず、タスクグループ生成部16は、タスク指示装置2に対して表示情報S2を送信することで、タスクを指定する画面をタスク指示装置2に表示させる。そして、タスクグループ生成部16は、当該画面における入力操作により生成された入力情報S1を、タスク指示装置2から受信することで、実行すべき全対象タスクを認識する。
 そして、タスクグループ生成部16は、ステップS11で指定されたタスクを分類したタスクグループを生成する(ステップS12)。この場合、タスクグループ生成部16は、例えば、タスクが指定されたタイミング、タスク分類情報I7が示すタスクのカテゴリ、又は、タスク指示装置2上でのユーザ入力の少なくともいずれかに基づきタスクグループを生成する。
 次に、動作シーケンス生成部17は、タスクグループ生成部16が生成したタスクグループ毎にタスクの終了タイミングが近づくように、ロボット5の動作シーケンスを生成する(ステップS13)。この場合、動作シーケンス生成部17は、タスクグループ情報Itgと、状態認識部15が生成する状態情報Imと、ロボット5の形態及び動き特性に関するアプリケーション情報とに基づき、サブタスクシーケンスSrを生成する。この場合、動作シーケンス生成部17は、2個以上のタスクを含むタスクグループについて、グループ内のタスク同士の完了時刻が一致又は所定時間差以内となることを少なくとも制約条件とする最適化を行ってもよく、当該完了時刻のばらつきに関する項を少なくとも含む目的関数を用いた最適化を行ってもよい。
 サブタスクシーケンスSrの生成後、ロボット制御部18は、生成されたサブタスクシーケンスSrに基づく制御信号S3をロボット5へ供給し、生成されたサブタスクシーケンスSrに従いロボット5が動作するように制御する(ステップS14)。
 そして、タスクグループ生成部16は、タスクの追加又は削除の指示の有無を判定する(ステップS15)。この場合、タスクグループ生成部16は、ステップS11でタスクの指定を受け付けたタスク指示装置2からタスクの追加又は削除を指示する入力情報S1を受信した場合、又は、当該タスク指示装置2と異なるタスク指示装置2からタスクを指示する入力情報S1を受信した場合、タスクの追加又は削除の指示があったと判定する。
 そして、タスクの追加又は削除の指示があった場合(ステップS15;Yes)、制御装置1は、ステップS12へ処理を戻す。この場合、タスクグループ生成部16は、既存のタスクグループを構成するタスクの変更又は新たなタスクグループの生成を行い、動作シーケンス生成部17は、サブタスクシーケンスSrの再生成を行う。この場合、動作シーケンス生成部17は、タスクグループの追加の場合には、追加分のタスクグループを既存のタスクグループの実行後に実行するためのシーケンスを生成してもよい。この場合、動作シーケンス生成部17は、生成したシーケンスを既存のサブタスクシーケンスSrに追加することで、新たなサブタスクシーケンスSrを生成する。
 そして、制御装置1は、目的タスクが完了したか否か判定する(ステップS16)。この場合、制御装置1は、例えば、出力信号S4に基づき状態認識部15が生成した状態情報Im又はロボット5から供給される目的タスクの完了を通知する信号に基づき、目的タスクの完了の有無を判定する。そして、制御装置1は、目的タスクが完了したと判定した場合(ステップS16;Yes)、フローチャートの処理を終了する。一方、制御装置1は、目的タスクが完了していないと判定した場合(ステップS16;No)、ステップS14へ処理を戻す。
 ここで、本願発明の効果について補足説明する。
 ロボットを種々の産業において導入するニーズが高まっており、ロボットを飲食などのサービス業に適用する試みもなされている。一方、飲食業などでは、複数の商品の提供時刻をできるだけ揃えることが、顧客満足度につながると考えられる。以上を勘案し、第1実施形態における制御装置1は、完了時刻を揃えることが好ましいタスク群を1つのタスクグループとして設定し、タスクグループ内のタスク同士の完了時刻が近づくように各ロボットの動作シーケンスを生成する。これにより、ロボットを飲食などのサービス業に適用した場合に、顧客満足度を好適に向上させることができる。
 (8)変形例
 次に、第1実施形態の変形例について説明する。以下の変形例は任意に組み合わせて適用してもよい。
 (変形例1)
 図7に示す動作シーケンス生成部17の一部の機能ブロックの実行結果に関する情報がアプリケーション情報記憶部41に予め記憶されていてもよい。例えば、抽象状態設定部31及び抽象モデル生成部34が生成する情報がアプリケーション情報記憶部41に予め記憶されてもよい。
 また、アプリケーション情報には、各タスクに対してロボット5が実行すべき処理手順を示すフローチャートなどの設計情報が予め含まれており、動作シーケンス生成部17は、当該設計情報を参照することで、各ロボット5の動作シーケンスを生成してもよい。なお、予め設計されたタスクシーケンスに基づきタスクを実行する具体例については、特開2017-39170号に開示されている。このような場合であっても、動作シーケンス生成部17は、タスクグループを構成するタスクの完了時刻が近づくように各ロボット5への最適なタスクの割り当てを行い、各ロボット5の動作シーケンスを決定する。
 (変形例2)
 タスクグループ生成部16は、1個のタスクのみからなるタスクグループを生成しなくともよい。即ち、タスクグループ生成部16は、少なくとも2個以上のタスクを含むタスクグループのみを生成してもよい。
 この場合、タスクグループ生成部16は、タスクグループ情報Itgにおいて、いずれのタスクグループにも属さないタスクについては、当該タスクに付すタスクグループの識別情報として、タスクグループに属していない旨のフラグ情報を生成する。そして、動作シーケンス生成部17は、タスクグループ情報Itgを参照し、ロボット5の制御入力を決定する際の最適化において、タスクグループに属するタスク同士の完了時刻に関する制約条件又は当該完了時刻を最小化するための目的関数を設定する。これによっても、上述した第1実施形態と同様に、同時に完了することが好ましいタスク同士の完了時刻を好適に近けることができる。
 <第2実施形態>
 図10は、第2実施形態における制御装置1Aの概略構成図である。図10に示すように、制御装置1Aは、タスクグループ生成手段16Aと、動作シーケンス生成手段17Aとを有する。
 タスクグループ生成手段16Aは、1又は複数のロボットにより実行される複数のタスクが指定された場合に、複数のタスクを分類した1以上のタスクグループを生成する。上記の複数のタスクは、1つのタスクグループを形成してもよく、複数のタスクグループを形成してもよい。タスクグループ生成手段16Aは、第1実施形態におけるタスクグループ生成部16とすることができる。なお、タスクグループ生成手段16Aは、タスクの指定を、外部装置から受信する情報に基づき検知してもよく、制御装置1Aが備える入力部への入力に基づき検知してもよく、実行すべきタスクを記憶した記憶装置を参照することで検知してもよい。なお、制御装置1Aは、ロボットの一部として組み込まれてもよく、ロボットと別体として構成されてもよい。
 動作シーケンス生成手段17Aは、タスクグループを構成するタスク同士の完了時刻を近づけるように、複数のタスクを完了するためのロボットの動作シーケンスを生成する。この動作シーケンスは、第1実施形態におけるサブタスクシーケンスSrとすることができる。また、動作シーケンス生成手段17Aは、第1実施形態における動作シーケンス生成部17とすることができる。
 図11は、第2実施形態において制御装置1Aが実行するフローチャートの一例である。タスクグループ生成手段16Aは、1又は複数のロボットにより実行される複数のタスクが指定された場合に、複数のタスクを構成するタスクを1以上含むタスクグループを生成する(ステップS21)。そして、動作シーケンス生成手段17Aは、タスクグループを構成するタスク同士の完了時刻を近づけるように、複数のタスクを完了するためのロボットの動作シーケンスを生成する(ステップS22)。
 第2実施形態の構成によれば、制御装置1Aは、特定のタスク群の完了時刻が近づくようにロボットの動作シーケンスを好適に決定することができる。
 なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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]
 1又は複数のロボットにより実行される複数のタスクが指定された場合に、前記複数のタスクを分類した1以上のタスクグループを生成するタスクグループ生成手段と、
 前記タスクグループを構成するタスク同士の完了時刻を近づけるように、前記複数のタスクを完了するための前記ロボットの動作シーケンスを生成する動作シーケンス生成手段と、
を有する制御装置。
[付記2]
 前記動作シーケンス生成手段は、前記タスクグループを構成するタスクの夫々の完了時刻が一致又は所定時間差以内となることを少なくとも制約条件とする最適化により、前記動作シーケンスを生成する、付記1に記載の制御装置。
[付記3]
 前記動作シーケンス生成手段は、前記タスクグループを構成するタスクの夫々の完了時刻のばらつきに関する項を少なくとも含む目的関数を用いた最適化により、前記動作シーケンスを生成する、付記1に記載の制御装置。
[付記4]
 前記タスクグループ生成手段は、前記タスクが指定されるタイミングに基づき、前記タスクグループを生成する、付記1~3のいずれか一項に記載の制御装置。
[付記5]
 前記タスクグループ生成手段は、前記複数のタスクが夫々属するカテゴリに基づき、前記タスクグループを生成する、付記1~4のいずれか一項に記載の制御装置。
[付記6]
 前記動作シーケンス生成手段は、前記タスクグループを構成するタスク同士の完了時刻を、指定された作業完了の見込み時刻に近付けるように、前記動作シーケンスを生成する、付記1~5のいずれか一項に記載の制御装置。
[付記7]
 前記タスクグループ生成手段は、タスク指示装置から前記複数のタスクの指定を受け付ける場合、前記複数のタスクのうち完了時刻を合わせるタスクを指示する入力情報を前記タスク指示装置から受信することで、前記タスクグループを生成する、付記1~6のいずれか一項に記載の制御装置。
[付記8]
 前記動作シーケンス生成手段は、前記タスクグループを構成するタスクの追加又は削除の指示があった場合、前記動作シーケンスを再生成する、付記1~7のいずれか一項に記載の制御装置。
[付記9]
 前記動作シーケンス生成手段は、前記動作シーケンスの生成後、前記タスクグループ生成手段が追加のタスクグループを生成した場合、前記動作シーケンスを再生成する、付記1~8のいずれか一項に記載の制御装置。
[付記10]
 前記動作シーケンス生成手段は、前記ロボットの形態に関する情報と、前記ロボットの動き特性に関する情報と、前記ロボットが動作する作業空間の状態を示す状態情報との少なくともいずれかに基づき、前記動作シーケンスを生成する、付記1~9のいずれか一項に記載の制御装置。
[付記11]
  前記動作シーケンス生成手段は、
 前記タスクを時相論理に基づく論理式に変換する論理式変換手段と、
 前記論理式から、前記タスクを実行するためタイムステップ毎の状態を表す論理式であるタイムステップ論理式を生成するタイムステップ論理式生成手段と、を含み、
 前記タイムステップ論理式に基づき、前記動作シーケンスを生成する、付記1~10のいずれか一項に記載の制御装置。
[付記12]
 前記動作シーケンス生成手段は、
 前記ロボットが動作する作業空間におけるダイナミクスを抽象化した抽象モデルを生成する抽象モデル生成手段をさらに含み、
 前記抽象モデル及び前記タイムステップ論理式を少なくとも制約条件とする最適化により、前記ロボットを制御するためのタイムステップ毎の制御入力を決定することで、前記動作シーケンスを生成する、付記11に記載の制御装置。
[付記13]
 コンピュータにより、
 1又は複数のロボットにより実行される複数のタスクが指定された場合に、前記複数のタスクを分類した1以上のタスクグループを生成し、
 前記タスクグループを構成するタスク同士の完了時刻を近づけるように、前記複数のタスクを完了するための前記ロボットの動作シーケンスを生成する、制御方法。
[付記14]
 1又は複数のロボットにより実行される複数のタスクが指定された場合に、前記複数のタスクを分類した1以上のタスクグループを生成するタスクグループ生成手段と、
 前記タスクグループを構成するタスク同士の完了時刻を近づけるように、前記複数のタスクを完了するための前記ロボットの動作シーケンスを生成する動作シーケンス生成手段
としてコンピュータを機能させるプログラムが格納された記録媒体。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
 1、1A 制御装置
 2、2A、2B タスク指示装置
 4 記憶装置
 5、5A、5B ロボット
 7 計測装置
 41 アプリケーション情報記憶部
 100 ロボット制御システム

Claims (14)

  1.  1又は複数のロボットにより実行される複数のタスクが指定された場合に、前記複数のタスクを分類した1以上のタスクグループを生成するタスクグループ生成手段と、
     前記タスクグループを構成するタスク同士の完了時刻を近づけるように、前記複数のタスクを完了するための前記ロボットの動作シーケンスを生成する動作シーケンス生成手段と、
    を有する制御装置。
  2.  前記動作シーケンス生成手段は、前記タスクグループを構成するタスクの夫々の完了時刻が一致又は所定時間差以内となることを少なくとも制約条件とする最適化により、前記動作シーケンスを生成する、請求項1に記載の制御装置。
  3.  前記動作シーケンス生成手段は、前記タスクグループを構成するタスクの夫々の完了時刻のばらつきに関する項を少なくとも含む目的関数を用いた最適化により、前記動作シーケンスを生成する、請求項1に記載の制御装置。
  4.  前記タスクグループ生成手段は、前記タスクが指定されるタイミングに基づき、前記タスクグループを生成する、請求項1~3のいずれか一項に記載の制御装置。
  5.  前記タスクグループ生成手段は、前記複数のタスクが夫々属するカテゴリに基づき、前記タスクグループを生成する、請求項1~4のいずれか一項に記載の制御装置。
  6.  前記動作シーケンス生成手段は、前記タスクグループを構成するタスク同士の完了時刻を、指定された作業完了の見込み時刻に近付けるように、前記動作シーケンスを生成する、請求項1~5のいずれか一項に記載の制御装置。
  7.  前記タスクグループ生成手段は、タスク指示装置から前記複数のタスクの指定を受け付ける場合、前記複数のタスクのうち完了時刻を合わせるタスクを指示する入力情報を前記タスク指示装置から受信することで、前記タスクグループを生成する、請求項1~6のいずれか一項に記載の制御装置。
  8.  前記動作シーケンス生成手段は、前記タスクグループを構成するタスクの追加又は削除の指示があった場合、前記動作シーケンスを再生成する、請求項1~7のいずれか一項に記載の制御装置。
  9.  前記動作シーケンス生成手段は、前記動作シーケンスの生成後、前記タスクグループ生成手段が追加のタスクグループを生成した場合、前記動作シーケンスを再生成する、請求項1~8のいずれか一項に記載の制御装置。
  10.  前記動作シーケンス生成手段は、前記ロボットの形態に関する情報と、前記ロボットの動き特性に関する情報と、前記ロボットが動作する作業空間の状態を示す状態情報との少なくともいずれかに基づき、前記動作シーケンスを生成する、請求項1~9のいずれか一項に記載の制御装置。
  11.   前記動作シーケンス生成手段は、
     前記タスクを時相論理に基づく論理式に変換する論理式変換手段と、
     前記論理式から、前記タスクを実行するためタイムステップ毎の状態を表す論理式であるタイムステップ論理式を生成するタイムステップ論理式生成手段と、を含み、
     前記タイムステップ論理式に基づき、前記動作シーケンスを生成する、請求項1~10のいずれか一項に記載の制御装置。
  12.  前記動作シーケンス生成手段は、
     前記ロボットが動作する作業空間におけるダイナミクスを抽象化した抽象モデルを生成する抽象モデル生成手段をさらに含み、
     前記抽象モデル及び前記タイムステップ論理式を少なくとも制約条件とする最適化により、前記ロボットを制御するためのタイムステップ毎の制御入力を決定することで、前記動作シーケンスを生成する、請求項11に記載の制御装置。
  13.  コンピュータにより、
     1又は複数のロボットにより実行される複数のタスクが指定された場合に、前記複数のタスクを分類した1以上のタスクグループを生成し、
     前記タスクグループを構成するタスク同士の完了時刻を近づけるように、前記複数のタスクを完了するための前記ロボットの動作シーケンスを生成する、制御方法。
  14.  1又は複数のロボットにより実行される複数のタスクが指定された場合に、前記複数のタスクを分類した1以上のタスクグループを生成するタスクグループ生成手段と、
     前記タスクグループを構成するタスク同士の完了時刻を近づけるように、前記複数のタスクを完了するための前記ロボットの動作シーケンスを生成する動作シーケンス生成手段
    としてコンピュータを機能させるプログラムが格納された記録媒体。
PCT/JP2020/007423 2020-02-25 2020-02-25 制御装置、制御方法及び記録媒体 WO2021171352A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/799,635 US20230072442A1 (en) 2020-02-25 2020-02-25 Control device, control method and storage medium
JP2022502358A JP7409474B2 (ja) 2020-02-25 2020-02-25 制御装置、制御方法及びプログラム
PCT/JP2020/007423 WO2021171352A1 (ja) 2020-02-25 2020-02-25 制御装置、制御方法及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/007423 WO2021171352A1 (ja) 2020-02-25 2020-02-25 制御装置、制御方法及び記録媒体

Publications (1)

Publication Number Publication Date
WO2021171352A1 true WO2021171352A1 (ja) 2021-09-02

Family

ID=77490783

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/007423 WO2021171352A1 (ja) 2020-02-25 2020-02-25 制御装置、制御方法及び記録媒体

Country Status (3)

Country Link
US (1) US20230072442A1 (ja)
JP (1) JP7409474B2 (ja)
WO (1) WO2021171352A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006106919A (ja) * 2004-10-01 2006-04-20 Honda Motor Co Ltd ロボット制御装置
WO2008149942A1 (ja) * 2007-06-05 2008-12-11 Asa Co., Ltd. 配膳装置
JP2011108156A (ja) * 2009-11-20 2011-06-02 Japan Science & Technology Agency 料理プロセス指示装置及び料理プロセス指示方法
JP2019084664A (ja) * 2017-11-10 2019-06-06 株式会社安川電機 プログラミング支援装置、ロボットシステム及びプログラム生成方法
JP2019125341A (ja) * 2018-01-11 2019-07-25 タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited 拡張可能なマルチ車両タスクのためのシステムおよび方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3231709B2 (ja) * 1998-09-08 2001-11-26 三菱電機株式会社 飲食店向けサービスシステム
JP2014163541A (ja) * 2013-02-21 2014-09-08 Osaka Gas Co Ltd 加熱調理システム及び加熱調理システム用アプリケーションプログラム
US10518409B2 (en) * 2014-09-02 2019-12-31 Mark Oleynik Robotic manipulation methods and systems for executing a domain-specific application in an instrumented environment with electronic minimanipulation libraries
JP7173517B2 (ja) * 2017-10-06 2022-11-16 株式会社寺岡精工 注文データ管理システム、注文データ管理装置及びプログラム
US20210321813A1 (en) * 2019-02-14 2021-10-21 Techmagic K.K. Automatic dish serving system, a restaurant, an automatic system for a restaurant, an automatic dish serving method, a program and a storage medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006106919A (ja) * 2004-10-01 2006-04-20 Honda Motor Co Ltd ロボット制御装置
WO2008149942A1 (ja) * 2007-06-05 2008-12-11 Asa Co., Ltd. 配膳装置
JP2011108156A (ja) * 2009-11-20 2011-06-02 Japan Science & Technology Agency 料理プロセス指示装置及び料理プロセス指示方法
JP2019084664A (ja) * 2017-11-10 2019-06-06 株式会社安川電機 プログラミング支援装置、ロボットシステム及びプログラム生成方法
JP2019125341A (ja) * 2018-01-11 2019-07-25 タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited 拡張可能なマルチ車両タスクのためのシステムおよび方法

Also Published As

Publication number Publication date
JP7409474B2 (ja) 2024-01-09
JPWO2021171352A1 (ja) 2021-09-02
US20230072442A1 (en) 2023-03-09

Similar Documents

Publication Publication Date Title
WO2022074823A1 (ja) 制御装置、制御方法及び記憶媒体
JP7264253B2 (ja) 情報処理装置、制御方法及びプログラム
JP7452619B2 (ja) 制御装置、制御方法及びプログラム
WO2021171352A1 (ja) 制御装置、制御方法及び記録媒体
WO2022013933A1 (ja) 制御装置、制御方法及び記憶媒体
WO2022064653A1 (ja) 制御装置、制御方法及び記憶媒体
JP7416197B2 (ja) 制御装置、制御方法及びプログラム
JP7343033B2 (ja) 制御装置、制御方法及びプログラム
WO2022244060A1 (ja) 動作計画装置、動作計画方法及び記憶媒体
WO2021171350A1 (ja) 制御装置、制御方法及び記録媒体
WO2021171358A1 (ja) 制御装置、制御方法及び記録媒体
WO2022049756A1 (ja) 判定装置、判定方法及び記憶媒体
WO2022224449A1 (ja) 制御装置、制御方法及び記憶媒体
WO2022074827A1 (ja) 命題設定装置、命題設定方法及び記憶媒体
WO2022224447A1 (ja) 制御装置、制御方法及び記憶媒体
JP7276466B2 (ja) 情報処理装置、制御方法及びプログラム
JP7456552B2 (ja) 情報処理装置、情報処理方法及びプログラム
WO2022107207A1 (ja) 情報収集装置、情報収集方法及び記憶媒体
JP7435814B2 (ja) 時相論理式生成装置、時相論理式生成方法及びプログラム
JP7435815B2 (ja) 動作指令生成装置、動作指令生成方法及びプログラム
JP7416199B2 (ja) 制御装置、制御方法及びプログラム
WO2022162784A1 (ja) 制御装置、制御方法及び記憶媒体
WO2022107324A1 (ja) 支援制御装置、支援装置、ロボット制御システム、支援制御方法及び記憶媒体
JP7494943B2 (ja) 制御装置、制御方法及びプログラム
Tawade et al. An empirical intelligent agent for robot navigation problem using supervised learning

Legal Events

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

Ref document number: 20920895

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022502358

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

Country of ref document: EP

Kind code of ref document: A1