WO2022107207A1 - 情報収集装置、情報収集方法及び記憶媒体 - Google Patents

情報収集装置、情報収集方法及び記憶媒体 Download PDF

Info

Publication number
WO2022107207A1
WO2022107207A1 PCT/JP2020/042805 JP2020042805W WO2022107207A1 WO 2022107207 A1 WO2022107207 A1 WO 2022107207A1 JP 2020042805 W JP2020042805 W JP 2020042805W WO 2022107207 A1 WO2022107207 A1 WO 2022107207A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
robot
task
work
identifier
Prior art date
Application number
PCT/JP2020/042805
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 JP2022563274A priority Critical patent/JP7468694B2/ja
Priority to US18/034,618 priority patent/US20230321828A1/en
Priority to PCT/JP2020/042805 priority patent/WO2022107207A1/ja
Publication of WO2022107207A1 publication Critical patent/WO2022107207A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40113Task planning

Definitions

  • This disclosure relates to the technical fields of information collecting devices, information collecting methods, and storage media for collecting information related to robot work.
  • Patent Document 1 discloses a robot motion data collection system that sets collection conditions that determine conditions for collecting robot motion data and collects robot motion data that satisfy the collection conditions.
  • One of the purposes of the present disclosure is to provide an information collecting device, an information collecting method, and a storage medium capable of suitably collecting information on the work of the robot in view of the above-mentioned problems.
  • Information acquisition means for acquiring work-related information related to robot work
  • a task identifier setting means for setting an identifier of a task executed by the robot for the work-related information
  • a task identifier setting means for setting an identifier of a task executed by the robot for the work-related information
  • One aspect of the storage medium is Get work-related information related to robot work, It is a storage medium in which a program for causing a computer to execute a process of setting an identifier of a task executed by the robot for the work-related information is stored.
  • the configuration of the robot integrated system in the first embodiment is shown.
  • the hardware configuration of the robot controller is shown.
  • An example of the data structure of application information is shown.
  • An example of the data structure of work-related information is shown.
  • This is an example of a functional block of an information collecting device. It is a figure which shows the relationship between the execution status of a subtask in a robot operation period, and a task identifier set in work-related information.
  • the bird's-eye view of the work space when the target task is pick and place is shown.
  • a display example of the task specification screen for specifying the target task is shown.
  • This is an example of a flowchart showing an outline of the processing executed by the information collecting device in the first embodiment.
  • the schematic block diagram of the information gathering apparatus in 2nd Embodiment is shown.
  • it is an example of a flowchart showing a processing procedure executed by the information collecting device.
  • FIG. 1 shows the configuration of the robot integrated system 100 according to the first embodiment.
  • the robot control system 100 mainly includes an instruction device 2, an information collection device 3, and a plurality of task execution systems 50 (50A, 50B, ).
  • the instruction device 2, the information collection device 3, and the task execution system 50 perform data communication via the communication network 6.
  • the instruction device 2 is a device that receives instructions from a worker regarding a task (also referred to as a "purpose task") to be executed by the robot 5 in each task execution system 50.
  • the instruction device 2 performs a predetermined display or sound output regarding the target task, and supplies the instruction signal "D1" generated based on the input of the operator to the task execution system 50.
  • the instruction device 2 displays, for example, a list of task execution systems 50 capable of instructing the target task, and accepts input regarding designation of the target task to the task execution system 50 selected from the list.
  • the instruction device 2 may be a tablet terminal including an input unit and a display unit, or may be a stationary personal computer.
  • the information collecting device 3 receives information related to the work of the robot (also referred to as "robot work-related information D2") from each of the task execution systems 50, and stores the received robot work-related information D2.
  • the information collecting device 3 functionally has a robot work-related information storage unit 42 and an update application information storage unit 43.
  • the robot work-related information storage unit 42 stores the robot work-related information D2 received by the information collecting device 3 from each of the task execution systems 50.
  • the update application information storage unit 43 stores the application information generated / updated by analyzing the information stored in the robot work-related information storage unit 42.
  • the application information is various information necessary for generating an operation sequence, which is a sequence to be executed by the robot, from a target task.
  • the information collecting device 3 transmits the update information "D3" necessary for synchronizing the application information stored in the update application information storage unit 43 and the application information stored in the task execution system 50 to the task execution system 50. do.
  • the task execution system 50 is a system that executes a designated target task, and is provided in different environments.
  • Each task execution system 50 includes a robot controller 1 (1A, 1B, ...), a robot 5 (5A, 5B, %), And a measuring device 7 (7A, 7B, ).
  • the robot controller 1 formulates an operation plan of the robot 5 based on the temporal logic, and the robot 5 is set based on the operation plan. Control. Specifically, the robot controller 1 converts the target task represented by the time phase logic into a sequence for each time step (time step) of the task, which is a unit that the robot 5 can accept, and the robot is based on the generated sequence. 5 is controlled.
  • a task (command) obtained by decomposing a target task into units that can be accepted by the robot 5 is also referred to as a "subtask”
  • a sequence of subtasks that the robot 5 should execute in order to achieve the target task is a "subtask sequence" or. Called an "operation sequence”.
  • the robot controller 1 has an application information storage unit 41 (41A, 41B, ...) That stores application information necessary for generating an operation sequence of the robot 5 from a target task. Details of the application information will be described later with reference to FIG.
  • the robot controller 1 performs data communication with the robot 5 and the measuring device 7 belonging to the same task execution system 50 via a communication network or by direct communication by wireless or wired. For example, the robot controller 1 transmits a control signal related to the control of the robot 5 to the robot 5. In another example, the robot controller 1 receives the measurement signal generated by the measuring device 7.
  • the robot controller 1 performs data communication with the instruction device 2 and the information collection device 3 via the communication network 6. For example, the robot controller 1 receives an instruction signal D1 from the instruction device 2 regarding the designation of the target task, the operation command of the robot 5, and the like. Further, the robot controller 1 transmits to the information collecting device 3 the robot work-related information D2 including various information generated in the control of the robot 5 and various information exchanged with the robot 5 and the measuring device 7. The details of the robot work-related information D2 will be described later with reference to FIG. Further, the robot controller 1 receives the update information D3 from the information collecting device 3 via the communication network 6, and updates the application information stored in the application information storage unit 41 based on the received update information D3.
  • the robot work-related information D2 generated by the robot 5 or the measuring device 7 is supplied to the information collecting device 3 via the robot controller 1, but instead of being supplied to the information collecting device 3, the robot 5 or the measuring device 7 does not go through the robot controller 1. May be directly supplied to the information collecting device 3.
  • One or a plurality of robots 5 exist for each task execution system 50, and perform work related to a target task based on a control signal supplied from a robot controller 1 belonging to the same task execution system 50.
  • the robot 5 is, for example, a robot that operates at various factories such as an assembly factory and a food factory, or at a distribution site.
  • the robot 5 may be a vertical articulated robot, a horizontal articulated robot, or any other type of robot, and may have a plurality of controlled objects such as a robot arm, each of which operates independently. good. Further, the robot 5 may perform collaborative work with other robots, workers or machine tools operating in the work space. Further, the robot controller 1 and the robot 5 may be integrally configured.
  • the robot 5 may supply a state signal indicating the state of the robot 5 to the robot controller 1 belonging to the same task execution system 50.
  • 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 the progress of the operation sequence of the robot 5 generated by the control unit of the robot 5. It may be a signal indicating a state.
  • the measuring device 7 is a camera, a range sensor, a sonar, or one or a plurality of sensors that detect a state in a work space in which a target task is executed in each task execution system 50.
  • the measuring device 7 supplies the generated measurement signal to the robot controller 1 belonging to the same task execution system 50.
  • the measuring device 7 may be a self-propelled or flying sensor (including a drone) that moves in the work space.
  • 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.
  • the measuring device 7 may include a sensor that detects a sound in the work space.
  • the measuring device 7 may include various sensors for detecting the state in the work space and may include sensors provided at any place.
  • the configuration of the robot integrated system 100 shown in FIG. 1 is an example, and various changes may be made to the configuration.
  • the robot controller 1 that exists in the task execution system 50 may be composed of a plurality of devices.
  • the plurality of devices constituting the robot controller 1 exchange information necessary for executing the pre-assigned process among the plurality of devices.
  • the application information storage unit 41 may be stored by one or a plurality of external storage devices that perform data communication with the robot controller 1.
  • the external storage device may be one or a plurality of server devices that store the application information storage unit 41 commonly referred to by each task execution system 50.
  • the robot work-related information storage unit 42 and the update application information storage unit 43 may be stored by one or a plurality of external storage devices that perform data communication with the information collection device 3.
  • the task execution system 50 may be provided with a sensor that detects indicators such as temperature and humidity related to the working environment of the robot 5.
  • FIG. 2 (A) shows the hardware configuration of the robot controller 1 (1A, 1B, ).
  • the robot controller 1 includes a processor 11, a memory 12, and an interface 13 as hardware.
  • the processor 11, the memory 12, and the interface 13 are connected via the data bus 10.
  • the processor 11 functions as a controller (arithmetic unit) that controls the entire robot controller 1 by executing a program stored in the memory 12.
  • the processor 11 is, for example, a processor such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and a TPU (Tensor Processing Unit).
  • the processor 11 may be composed of a plurality of processors.
  • the processor 11 is an example of a computer.
  • the memory 12 is composed of various volatile memories such as a RAM (Random Access Memory), a ROM (Read Only Memory), and a flash memory, and a non-volatile memory. Further, the memory 12 stores a program for executing the process executed by the robot controller 1. Further, the memory 12 functions as an application information storage unit 41. The application information stored in the application information storage unit 41 is updated based on the update information D3. A part of the information stored in the memory 12 may be stored by one or a plurality of external storage devices that can communicate with the robot controller 1, or may be stored by a storage medium that can be attached to and detached from the robot controller 1. good.
  • the interface 13 is an interface for electrically connecting the robot controller 1 and other devices. These interfaces may be wireless interfaces such as network adapters for wirelessly transmitting and receiving data to and from other devices, and may be hardware interfaces for connecting to other devices by cables or the like.
  • the hardware configuration of the robot controller 1 is not limited to the configuration shown in FIG. 2A.
  • the robot controller 1 may be connected to or built in at least one of a display device, an input device, and a sound output device.
  • FIG. 2B shows the hardware configuration of the indicator device 2.
  • the instruction device 2 includes a processor 21, a memory 22, an interface 23, an input unit 24a, a display unit 24b, and a sound output unit 24c as hardware.
  • the processor 21, the memory 22, and the interface 23 are connected via the data bus 20. Further, the input unit 24a, the display unit 24b, and the sound output unit 24c 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, GPU, and TPU.
  • the processor 21 generates an instruction signal D1 by receiving the signal generated by the input unit 24a via the interface 23, and transmits the instruction signal D1 to the robot controller 1 via the interface 23. Further, the processor 21 controls at least one of the display unit 24b and the sound output unit 24c via the interface 23 based on the output control signal received from the robot controller 1 via the interface 23.
  • the memory 22 is composed of various volatile memories such as RAM, ROM, and flash memory, and non-volatile memory. Further, the memory 22 stores a program for executing the process executed by the instruction device 2.
  • the interface 23 is an interface for electrically connecting the instruction device 2 and another device. These interfaces may be wireless interfaces such as network adapters for wirelessly transmitting and receiving data to and from other devices, and may be hardware interfaces for connecting to other devices by cables or the like. Further, the interface 23 operates the interface of the input unit 24a, the display unit 24b, and the sound output unit 24c.
  • the input unit 24a is an interface for receiving user input, and corresponds to, for example, a touch panel, a button, a keyboard, a voice input device, and the like.
  • the display unit 24b is, for example, a display, a projector, or the like, and displays based on the control of the processor 21.
  • the sound output unit 24c is, for example, a speaker, and outputs sound based on the control of the processor 21.
  • the hardware configuration of the instruction device 2 is not limited to the configuration shown in FIG. 2 (B).
  • at least one of the input unit 24a, the display unit 24b, and the sound output unit 24c may be configured as a separate device that is electrically connected to the instruction device 2.
  • the instruction device 2 may be connected to various devices such as a camera, or may be incorporated therein.
  • FIG. 2C shows the hardware configuration of the information collecting device 3.
  • the information collecting device 3 includes a processor 31, a memory 32, and an interface 33 as hardware.
  • the processor 31, the memory 32, and the interface 33 are connected via the data bus 30.
  • the processor 31 functions as a controller (arithmetic unit) that controls the entire information collecting device 3 by executing a program stored in the memory 32.
  • the processor 31 is, for example, a processor such as a CPU, GPU, or TPU.
  • the processor 31 may be composed of a plurality of processors.
  • the processor 31 is an example of a computer.
  • the memory 32 is composed of various volatile memories such as RAM, ROM, and flash memory, and non-volatile memory. Further, the memory 32 stores a program for executing the process executed by the robot controller 1. Further, the memory 32 functions as a robot work-related information storage unit 42 and an update application information storage unit 43. A part of the information stored in the memory 32 may be stored by one or a plurality of external storage devices that can communicate with the information collection device 3, and is stored by a storage medium that can be attached to and detached from the information collection device 3. You may.
  • the interface 33 is an interface for electrically connecting the information collecting device 3 and another device.
  • These interfaces may be wireless interfaces such as network adapters for wirelessly transmitting and receiving data to and from other devices, and may be hardware interfaces for connecting to other devices by cables or the like.
  • the hardware configuration of the information collecting device 3 is not limited to the configuration shown in FIG. 2C.
  • the information collecting device 3 may be connected to or built in at least one of a display device, an input device, and a sound output device.
  • FIG. 3 shows an example of the data structure of application information.
  • the application information 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.
  • Abstract state specification information I1 is information that specifies an abstract state that needs to be defined when generating an operation 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 formula described later. For example, the abstract state specification information I1 specifies an abstract state that needs to be defined for each type of target task.
  • Constraint information I2 is information indicating the constraint conditions when executing the target task.
  • the constraint condition information I2 states that, for example, when the target task is pick and place, the constraint condition that the robot 5 (robot arm) must not touch the obstacle and that the robot 5 (robot arm) must not touch each other. Indicates constraints and the like.
  • the constraint condition information I2 may be information in which constraint conditions suitable for each type of target task are recorded.
  • the operation limit information I3 indicates information regarding the operation limit of the robot 5 controlled by the robot controller 1.
  • the operation limit information I3 is information that defines, for example, an upper limit of the speed, acceleration, or angular velocity of the robot 5.
  • the motion limit information I3 may be information that defines the motion limit for each movable part or joint of the robot 5.
  • Subtask information I4 indicates information on subtasks that are components of the operation sequence.
  • the "subtask” is a task in which the target task is decomposed into units that can be accepted by the robot 5, and refers to the operation of the subdivided robot 5.
  • 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 target task.
  • the subtask information I4 may include information about a subtask that requires an operation command by an external input.
  • Abstract model information I5 is information about an abstract model that abstracts the dynamics in the workspace.
  • an abstract model is represented by a model that abstracts the dynamics of reality 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 is, for example, in the case of a pick-and-place where the robot 5 grabs an object to be worked on (also referred to as an "object") and moves it to a predetermined position, the object must be grasped by the robot 5.
  • the condition that it cannot be moved is applicable.
  • Abstract model information I5 has information about an abstract model suitable for each type of target task.
  • the object model information I6 is information about the object model of each object in the work space to be recognized from the measurement signal 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 robot controller 1 to recognize the type, position, posture, currently executed 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 (Computer Aided Design) data.
  • the former information includes the parameters of the inferior obtained by learning a learning model in machine learning such as a neural network.
  • This inference device is learned in advance to output, for example, the type, position, posture, and the like of an object that is a subject in the image when an image is input. Further, when an AR marker for image recognition is attached to a main object such as an object, the information necessary for recognizing the object by the AR marker may be stored as the object model information I6.
  • the application information storage unit 41 may store various information related to the generation processing of the operation sequence of the robot 5.
  • FIG. 4 shows an example of the data structure of the robot work-related information D2 received from each task execution system 50 by the information collecting device 3.
  • the robot work-related information D2 includes robot configuration information D21, motion planning information D22, measurement information D23, robot operation status information D24, and work environment information D25.
  • the robot work-related information D2 shown in FIG. 4 is individually supplied to the information collecting device 3 instead of being collectively supplied to the information collecting device 3, but individually constituting the robot work-related information D2 according to the type and / or generation timing of the information.
  • Information may be sequentially supplied to the information collecting device 3. That is, the task execution system 50 may supply the information to be transmitted as the robot work-related information D2 to the information collecting device 3 in a plurality of times.
  • the robot configuration information D21 is information representing the configuration of the robot 5 in each of the task execution systems 50.
  • the robot configuration information D21 includes, for example, information such as the number of robots 5, the arrangement of each robot 5, and the type of each robot 5.
  • the robot configuration information D21 may further include information regarding the configuration (number, arrangement, type, etc.) of the measuring device 7 in addition to the configuration of the robot 5.
  • the robot configuration information D21 may be supplied to the information collecting device 3 prior to other information transmitted to the information collecting device 3 as the robot work-related information D2.
  • the motion plan information D22 is information related to the motion plan of the robot 5 formulated by the robot controller 1 in each of the task execution systems 50.
  • the motion planning information D22 may include, for example, arbitrary information (intermediate generation information) generated in the process of generating the control signal, in addition to the control signal relating to the motion sequence supplied by the robot controller 1 to the robot 5.
  • the motion planning information D22 includes information on the set target task, information on the abstract state (including the proposition) set by the robot controller 1, and an evaluation function (reward function, value function) used when determining the motion sequence. It may include information about.
  • the motion planning information D22 may include version information of application information used by the robot controller 1.
  • the motion planning information D22 includes date and time information indicating the date and time when the motion sequence was generated, the scheduled execution date and time of each subtask constituting the motion sequence, and the like.
  • the operation plan information D22 may be supplied to the information collecting device 3 immediately after the operation plan is formulated by the robot controller 1, and is collected together with other information transmitted to the information collecting device 3 as the robot work-related information D2. It may be supplied to 3.
  • the measurement information D23 is a measurement signal generated by the measurement device 7 provided in each of the task execution systems 50 while the robot 5 is executing the target task. This measurement signal is associated with date and time information indicating the measurement date and time.
  • the robot operation status information D24 is a period in which the robot 5 is operating (also referred to as a “robot operation period”) based on the control signal of the operation sequence generated by the robot controller 1 in each of the task execution systems 50.
  • the robot operation status information D24 may be log information indicating the execution result (success or failure) of the robot 5 for each subtask, or may be log information regarding the state of the robot 5 executing the operation sequence.
  • the log information regarding the state includes, for example, information such as the operating time length of the robot 5, the angle of the end effector and the actuator of the robot 5, the angular velocity, the angular acceleration, the position, the speed, the acceleration, the force, and the torque. These log information are associated with date and time information indicating the execution date and time of the target operation.
  • the robot operation status information D24 may be information generated by the robot controller 1, information generated by the robot 5, or information including both of them.
  • the work environment information D25 is the detection information regarding the work environment detected in each of the task execution systems 50.
  • the work environment information D25 is, for example, an index representing the temperature, humidity, or other environment of the work space during the robot operation period.
  • the measurement information D23, the robot operation status information D24, and the work environment information D25 may be supplied to the information collection device 3 at predetermined time intervals during the robot operation period, and may be collectively supplied to the information collection device 3 after the robot operation period ends. It may be supplied to 3.
  • the robot work-related information D2 is not limited to the above-mentioned information, and may include arbitrary information regarding the work of the robot 5.
  • the robot work-related information D2 may include identification information assigned to each of the task execution systems 50.
  • the information collecting device 3 stores an identifier (“task identifier”) representing a task to be executed when the robot work-related information D2 supplied from each task execution system 50 is stored in the robot work-related information storage unit 42. ”) Is set in the robot work-related information D2. As a result, the information collecting device 3 sorts the collected data so that it can be appropriately used in analysis and learning for the purpose of updating application information when collecting data of the robot 5 working in a plurality of environments. I do.
  • task identifier representing a task to be executed when the robot work-related information D2 supplied from each task execution system 50 is stored in the robot work-related information storage unit 42.
  • the information collecting device 3 sorts the collected data so that it can be appropriately used in analysis and learning for the purpose of updating application information when collecting data of the robot 5 working in a plurality of environments. I do.
  • FIG. 5 is an example of a functional block showing an outline of processing of the information collecting device 3.
  • the processor 31 of the information collecting device 3 functionally has an information acquisition unit 35, a task identifier setting unit 36, and an application information update unit 37.
  • FIG. 5 shows an example of data exchanged between blocks, but the present invention is not limited to this. The same applies to the figures of other functional blocks described later.
  • the information acquisition unit 35 receives the robot work-related information D2 from each of the task execution systems 50 via the interface 33, and supplies the received robot work-related information D2 or a part thereof to the task identifier setting unit 36.
  • the details of the processing of the information acquisition unit 35 will be described in detail in the section “(6) Details of the information acquisition unit ”.
  • each of the task execution systems 50 transmits the robot work-related information D2 at predetermined time intervals during the period from the start of the execution of the target task (including the operation plan) to the end of the execution of the target task. Often, they may be collectively transmitted at a predetermined timing such as when the execution of the target task is completed.
  • the information acquisition unit 35 may receive the robot work-related information D2 by requesting the robot work-related information D2 from each task execution system 50. In this case, for example, the information acquisition unit 35 recognizes the task execution system 50 in which the target task is being executed by receiving the instruction information of the target task from the instruction device 2, and the task execution system in which the target task is being executed. The 50 robot controllers 1 are requested to transmit the robot work-related information D2.
  • the task identifier setting unit 36 executes a process of setting a task identifier as a tag (so-called tagging process) for the robot work-related information D2 supplied from the information acquisition unit 35, and the robot work-related information in which the task identifier is set. D2 is stored in the robot work-related information storage unit 42.
  • the task identifier is an identifier that at least identifies the subtask.
  • the application information update unit 37 updates the application information based on the information stored in the robot work-related information storage unit 42, and stores the updated application information in the update application information storage unit 43.
  • the application information update unit 37 analyzes and learns the robot work-related information stored in the robot work-related information storage unit 42 for each task indicated by the set task identifier, so that the abstract state designation information I1 and At least one of the constraint condition information I2, the operation limit information I3, the subtask information I4, the abstract model information I5, and the object model information I6 is updated.
  • the application information update unit 37 may receive an external input by an administrator or the like by an input unit via the interface 33, and perform the above-mentioned update based on the external input.
  • the application information update unit 37 distributes the update information D3 representing the updated application information to each task execution system 50.
  • the application information update unit 37 distributes all the updated application information stored in the update application information storage unit 43 to each task execution system 50 as update information D3.
  • the application information update unit 37 distributes only the application information corresponding to the update portion to each task execution system 50 as update information D3.
  • each component of the information acquisition unit 35, the task identifier setting unit 36, and the application information update unit 37 can be realized, for example, by the processor 31 executing a program. Further, each component may be realized by recording a necessary program in an arbitrary non-volatile storage medium and installing it as needed. It should be noted that at least a part of each of these components is not limited to being realized by software by a program, but may be realized by any combination of hardware, firmware, and software. Further, at least a part of each of these components may be realized by using a user-programmable integrated circuit such as an FPGA (Field-Programmable Gate Array) or a microcontroller. In this case, this integrated circuit may be used to realize a program composed of each of the above components.
  • FPGA Field-Programmable Gate Array
  • each component may be composed of an ASIC (Application Specific Standard Produce), an ASIC (Application Specific Integrated Circuit), or a quantum computer control chip.
  • ASIC Application Specific Standard Produce
  • ASIC Application Specific Integrated Circuit
  • quantum computer control chip As described above, each component may be realized by various hardware. The above is the same in other embodiments described later. Further, each of these components may be realized by the collaboration of a plurality of computers by using, for example, cloud computing technology.
  • the information acquisition unit 35 determines whether or not the predetermined collection condition is satisfied for the received robot work-related information D2, and sets the robot work-related information D2 that satisfies the collection condition as the task identifier setting unit 36. Supply to. As a result, the processing load and the like due to the task identifier setting process by the task identifier setting unit 36 are suitably reduced.
  • the "collection condition” refers to a condition for determining the robot work-related information D2 to be stored in the robot work-related information storage unit 42 in association with the task identifier.
  • the collection condition may be, for example, a condition for designating the task execution system 50 for storing the robot work-related information D2 in the robot work-related information storage unit 42, and the robot work-related information D2 may be stored in the robot work-related information storage unit 42. It may be a condition to specify a time zone to be stored. Information that specifies specific collection conditions is stored in advance in, for example, a memory 32 or the like.
  • the collection condition may be a condition for designating the configuration of the robot 5 existing in the task execution system 50.
  • the information acquisition unit 35 specifies the task execution system 50 having the configuration of the robot 5 set as the collection condition based on the robot configuration information D21 transmitted as the robot work-related information D2. Then, the information acquisition unit 35 supplies the robot work-related information D2 transmitted from the task execution system 50 having the configuration of the robot 5 set as the collection condition to the task identifier setting unit 36.
  • the information acquisition unit 35 may discard the robot work-related information D2 that does not satisfy the collection conditions without storing it in the robot work-related information storage unit 42, and may discard the robot work-related information D2 as it is without performing the task identifier setting process. It may be stored in the robot work-related information storage unit 42. In any of these cases, the load of the task identifier setting process by the task identifier setting unit 36 can be reduced. In this case, for example, the setting information that defines the correspondence to the robot work-related information D2 that does not satisfy the collection condition is stored in the memory 32 or the like, and the information acquisition unit 35 does not satisfy the collection condition according to the setting information. The correspondence to the robot work-related information D2 (discarded or stored in the robot work-related information storage unit 42 as it is) is determined.
  • the task identifier setting unit 36 uses a task identifier representing at least the corresponding subtask as a tag for the robot work-related information D2 (for example, measurement information D23, robot operation status information D24, and work environment information D25) generated during the robot operation period. Set. Specifically, the task identifier setting unit 36 recognizes the execution period of each subtask of the robot 5 executed during the robot operation period, and for the robot work-related information D2 generated during the execution period of each recognized subtask. Set the task identifier of the corresponding subtask.
  • the robot work-related information D2 for example, measurement information D23, robot operation status information D24, and work environment information D25
  • FIG. 6 is a diagram showing the relationship between the execution status of the subtask in the robot operation period of a certain task execution system 50 and the task identifier attached to the robot work-related information D2 generated in the robot operation period.
  • the period from the time “t1" to the time “t7” corresponds to the robot operation period in the task execution system 50A
  • the robot 5 is a subtask "subtask 1" to "subtask 4" in the period. Is running.
  • the task identifier setting unit 36 recognizes the execution period of each subtask executed in the robot execution period based on the operation plan information D22 or the robot operation status information D24 included in the robot work-related information D2. Specifically, the task identifier setting unit 36 has operation plan information D22 indicating information on the sequence of subtasks planned for each time step, or robot operation status information indicating log information of subtasks actually executed by the robot 5. Refer to at least one of D24 and recognize the execution period of each subtask. Then, the task identifier setting unit 36 associates the robot work-related information D2 generated in the robot operation period with the execution period of each subtask based on the time information added to the robot work-related information D2.
  • the task identifier setting unit 36 recognizes that the period from the time t1 to the time “t2" and the period from the time "t5" to the time “t6" are the execution periods of the "subtask 1". Further, the task identifier setting unit 36 recognizes that the period from the time t2 to the time “t3” and the period from the time "t4" to the time “t5" are the execution periods of the "subtask 2". Further, the task identifier setting unit 36 recognizes that the period from time t3 to time t4 is the execution period of "subtask 3", and the period from time t6 to time t7 is the execution period of "subtask 4".
  • the task identifier setting unit 36 sets a task identifier that at least represents the corresponding subtask for the robot work-related information D2 divided for each subtask execution period.
  • the task identifier setting unit 36 sets a task identifier for identifying both the corresponding target task X and the subtask.
  • the task identifier setting unit 36 sets task identifiers representing "target task X" and "subtask 1" for robot work-related information D2 to which date and time information is associated in the period from time t1 to time t2. ..
  • the task identifier setting unit 36 sets task identifiers representing "target task X" and "subtask 2" for robot work-related information D2 to which date and time information is associated in the period from time t2 to time t3. ..
  • this task identifier may be a combination of an identifier unique to the target subtask and an identifier unique to the target target task, and is one unique to the combination of the subtask and the target task. It may be an identifier.
  • the task identifier setting unit 36 sets the task identifier corresponding to the target task and the subtask that were being executed at the time of generation for the robot work-related information D2 supplied from each task execution system 50.
  • the task identifier setting unit 36 can store the tagged information in the robot work-related information storage unit 42 so that the execution result of each subtask in the application information update unit 37 can be easily analyzed.
  • a task identifier for example, it can be expected that it is easy to grasp in which subtask the failure occurred and it is easy to learn for each subtask.
  • FIG. 7 is an example of a functional block showing a functional configuration of the processor 11 of the robot controller 1.
  • the processor 11 includes an abstract state setting unit 71, a target logical expression generation unit 72, a time step logical expression generation unit 73, an abstract model generation unit 74, a control input generation unit 75, and a subtask sequence generation. It has a part 76 and.
  • the abstract state setting unit 71 in the work space is based on the measurement signal supplied from the measurement device 7, the instruction signal D1 instructing the execution of the target task, the abstract state designation information I1, and the object model information I6. Set the abstract state.
  • the abstract state setting unit 71 recognizes an object in the workspace that needs to be considered when executing the target task, and generates a recognition result Im regarding the object. Then, the abstract state setting unit 71 defines a proposition to be expressed by a logical expression for each abstract state that needs to be considered when executing the target task based on the recognition result Im.
  • the abstract state setting unit 71 supplies information representing the set abstract state (also referred to as “abstract state setting information IS”) to the target logical expression generation unit 72.
  • the target logical expression generation unit 72 also refers to the target task designated by the instruction signal D1 based on the abstract state setting information IS as a logical expression of the time phase logic (“target logical expression Ltag”” representing the final achievement state. ). In this case, the target logical expression generation unit 72 adds the constraint conditions to be satisfied in the execution of the target task to the target logical expression Ltag by referring to the constraint condition information I2 from the application information storage unit 41. Then, the target logical expression generation unit 72 supplies the generated target logical expression Ltag to the time step logical expression generation unit 73.
  • the time step logical formula generation unit 73 converts the target logical formula Ltag supplied from the target logical formula generation unit 72 into a logical formula (also referred to as “time step logical formula Lts”) representing the state at each time step. do. Then, the time step logical expression generation unit 73 supplies the generated time step logical expression Lts to the control input generation unit 75.
  • the abstract model generation unit 74 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 recognition result Im supplied from the abstract state setting unit 71. ⁇ ”is generated.
  • the abstract model generation unit 74 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 74 supplies the generated abstract model ⁇ to the control input generation unit 75.
  • the control input generation unit 75 satisfies the time step logical expression Lts supplied from the time step logical expression generation unit 73 and the abstract model ⁇ supplied from the abstract model generation unit 74, and is consumed by an evaluation function (for example, a robot).
  • the control input to the robot 5 is determined for each time step that optimizes the energy amount). Then, the control input generation unit 75 supplies information indicating the control input to the robot 5 for each time step (also referred to as “control input information Icn”) to the subtask sequence generation unit 76.
  • the subtask sequence generation unit 76 generates a subtask sequence Sr, which is a sequence of subtasks, based on the control input information Icn supplied from the control input generation unit 75 and the subtask information I4 stored in the application information storage unit 41, and the subtask sequence generation unit 76 generates the subtask sequence Sr.
  • the sequence Sr is supplied to the robot 5.
  • the abstract state setting unit 71 refers to the object model information I6 and recognizes the environment of the work space (image processing technology, image recognition technology, voice recognition technology, RFID (Radio).
  • the recognition result Im is generated by analyzing the measurement signal by a technique using (Freequency Abstract)).
  • the recognition result Im includes information such as the type, position, and posture of the object in the work space.
  • the objects in the work space are, for example, a robot 5, an object such as a tool or a part handled by the robot 5, an obstacle, and another work body (a person or other object who works other than the robot 5).
  • the abstract state setting unit 71 sets the abstract state in the workspace based on the recognition result Im and the abstract state designation information I1 acquired from the application information storage unit 41.
  • the abstract state setting unit 71 refers to the abstract state designation information I1 and recognizes the abstract state to be set in the workspace.
  • the abstract state to be set in the workspace differs depending on the type of target task. Therefore, when the abstract state to be set for each type of the target task is defined in the abstract state specification information I1, the abstract state setting unit 71 specifies the abstract state corresponding to the target task specified by the instruction signal D1. Refer to the information I1 and recognize the abstract state to be set.
  • FIG. 8 shows a bird's-eye view of the work space when the target task is pick and place.
  • the work space shown in FIG. 8 there are two robot arms 52a and 52b, four objects 61 (61a to 61d), an obstacle 62, and a region G which is the destination of the object 61. There is.
  • the abstract state setting unit 71 recognizes the state of the object 61, the existence range of the obstacle 62, the state of the robot 5, the existence range of the area G, and the like.
  • the abstract state setting unit 71 recognizes the position vectors "x 1 " to "x 4 " at the centers of the objects 61a to 61d as the positions of the objects 61a to 61d. Further, the abstract state setting unit 71 recognizes the position vector “x r1 ” of the robot hand 53a that grips the object and the position vector “x r2 ” of the robot hand 53b as the positions of the robot arm 52a and the robot arm 52b. do.
  • the abstract state setting unit 71 recognizes the postures of the objects 61a to 61d (unnecessary because the object is spherical in the example of FIG. 8), the existence range of the obstacle 62, the existence range of the region G, and the like.
  • the abstract state setting unit 71 recognizes the position vectors of the obstacle 62 and the vertices of the area G, for example.
  • the abstract state setting unit 71 determines the abstract state to be defined in the target task by referring to the abstract state designation information I1. In this case, the abstract state setting unit 71 determines a proposition indicating an abstract state based on the recognition result Im (for example, the number of each type of object) regarding the object existing in the work space and the abstract state designation information I1.
  • the object " i " exists in the work table (the table in which the object and the obstacle exist in the initial state), the proposition "vi", the work table, and the work other than the area G.
  • the proposition " wi " that the object exists in the outer region may be further defined.
  • the non-working area is, for example, an area (floor surface or the like) where the object exists when the object falls from the work table.
  • the abstract state setting unit 71 recognizes the abstract state to be defined by referring to the abstract state designation information I1, and propositions representing the abstract state (gi, o i , h, etc. in the above example ) . ) Is defined according to the number of objects 61, the number of robot arms 52, the number of obstacles 62, the number of robots 5, and the like. Then, the abstract state setting unit 71 supplies the information indicating the proposition representing the abstract state to the target logical expression generation unit 72 as the abstract state setting information IS.
  • Target logical expression generation unit 72 converts the target task designated by the instruction signal D1 into a logical expression using temporal logic.
  • the target logical expression generation unit 72 sets the target task with the operator “ ⁇ ” corresponding to the “eventually” of the linear logical expression (LTL: Linear Temporal Logical) and the proposition “g” defined by the abstract state setting unit 71. Using “ i ", the logical formula " ⁇ g 2 " is generated.
  • the target logical expression generation unit 72 is an operator of any time phase logic other than the operator “ ⁇ ” (logical product “ ⁇ ”, logical sum “ ⁇ ”, negative “ ⁇ ”, logical inclusion “ ⁇ ”, always.
  • a logical expression may be expressed using " ⁇ ", next " ⁇ ", until “U”, etc.).
  • the logical expression may be expressed by using any time phase logic such as MTL (Metric Temporal Logic) and STL (Signal Temporal Logic), not limited to the linear temporal logic.
  • the instruction signal D1 may be information that specifies the target task in natural language. There are various techniques for converting a task expressed in natural language into a logical expression.
  • the target logical expression generation unit 72 generates the target logical expression Ltag by adding the constraint condition indicated by the constraint condition information I2 to the logical expression indicating the target task.
  • the constraint condition information I2 includes two constraint conditions corresponding to the pick and place shown in FIG. 8, "the robot arms 52 do not always interfere with each other" and "the object i does not always interfere with the obstacle O". If so, the target logical expression generation unit 72 converts these constraints into logical expressions. Specifically, the target logical formula generation unit 72 uses the proposition " oi " and the proposition "h" defined by the abstract state setting unit 71 in the explanation of FIG. 8 to satisfy the above two constraints, respectively. Convert to the following formula. ⁇ ⁇ h ⁇ i ⁇ ⁇ o i
  • the following target formula Ltag is generated.
  • the constraint conditions corresponding to the pick and place are not limited to the above two, and "the robot arm 52 does not interfere with the obstacle O" and “the plurality of robot arms 52 do not grab the same object”. , "Objects do not touch each other” and other constraints exist. Similarly, such a constraint condition is also stored in the constraint condition information I2 and reflected in the target formula Ltag.
  • the time step logical expression generation unit 73 determines the number of time steps (also referred to as “target time step number”) for completing the target task, and the target logical expression is determined by the target number of time steps. Determine a combination of propositions that represent the state at each time step that satisfies the Ltag. Since there are usually a plurality of these combinations, the time step logical expression generation unit 73 generates a logical expression obtained by combining these combinations 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 instructed by the robot 5, and is also referred to as "candidate ⁇ " hereafter.
  • the following target logical expression Ltag is supplied from the target logical expression generation unit 72 to the time step logical expression generation unit 73.
  • the time step logical formula generation unit 73 uses the proposition "gi , k " which is an extension of the proposition "gi” so as to include the concept of the time step.
  • the proposition "gi , k " is a proposition that "the object i exists in the region G in the time step k".
  • the target logical expression Ltag is rewritten as follows.
  • ⁇ g2 and 3 can be rewritten as shown in the following equation.
  • the above-mentioned target logical formula Ltag is represented by the logical sum ( ⁇ 1 ⁇ ⁇ 2 ⁇ ⁇ 3 ⁇ ⁇ 4 ) of the four candidates “ ⁇ 1 ” to “ ⁇ 4 ” shown below.
  • the time step logical formula generation unit 73 defines the logical sum of the four candidates ⁇ 1 to ⁇ 4 as the time step logical formula Lts .
  • the time step formula Lts is true when at least one of the four candidates ⁇ 1 to ⁇ 4 is true.
  • the time step logical formula generation unit 73 determines the target number of time steps based on, for example, the estimated work time specified by the instruction signal D1 supplied from the instruction device 2. In this case, the time step logical formula generation unit 73 calculates the target number of time steps from the above-mentioned estimated time based on the information of the time width per time step stored in the memory 12 or the storage device 4. In another example, the time step logical expression generation unit 73 stores in advance information associated with the target number of time steps suitable for each type of target task in the memory 12 or the storage device 4, and refers to the information. By doing so, the target number of time steps is determined according to the type of target task to be executed.
  • the time step logical expression generation unit 73 sets the target number of time steps to a predetermined initial value. Then, the time step logical formula generation unit 73 gradually increases the target time step number until the time step logical formula Lts in which the control input generation unit 75 can determine the control input is generated. In this case, the time step logical formula generation unit 73 determines the target time step number when the optimum solution cannot be derived as a result of the control input generation unit 75 performing the optimization process according to the set target time step number. Add only a number (integer of 1 or more).
  • the time step logical formula generation unit 73 may set the initial value of the target time step number to a value smaller than the time step number corresponding to the work time of the target task expected by the user. As a result, the time step logical expression generation unit 73 preferably suppresses setting an unnecessarily large target number of time steps.
  • the abstract model generation unit 74 generates an abstract model ⁇ based on the abstract model information I5 and the recognition result Im.
  • the abstract model information I5 information necessary for generating the abstract model ⁇ is recorded for each type of target task. For example, when the target task is pick and place, a general-purpose abstraction that does not specify the position and number of objects, the position of the area where the objects are placed, the number of robots 5 (or the number of robot arms 52), etc.
  • the model is recorded in the abstract model information I5.
  • the abstract model generation unit 74 generates the abstract model ⁇ by reflecting the recognition result Im for the abstract model of the general-purpose form including the dynamics of the robot 5 recorded in the abstract model information I5.
  • the abstract model ⁇ becomes a model in which the state of the object in the work space and the dynamics of the robot 5 are abstractly represented.
  • the state of the object in the work space indicates the position and number of the object, the position of the area where the object is placed, the number of robots 5, and the like.
  • the abstract model information I5 may include information about the abstracted dynamics of the other work body.
  • the abstract model ⁇ is a model that abstractly represents the state of the object in the work space, the dynamics of the robot 5, and the dynamics of another work body.
  • the dynamics in the work space are frequently switched. For example, in pick-and-place, when the robot arm 52 is grasping the object i, the object i can be moved, but when the robot arm 52 is not grasping the object i, the object i is not grasped. I can't move i.
  • the operation of grasping the object i is abstractly expressed by the logical variable “ ⁇ i ”.
  • the abstract model generation unit 74 can determine the abstract model ⁇ to be set for the workspace shown in FIG. 8 by the following equation (1).
  • u j indicates a control input for controlling the robot hand j
  • "I" is an identity matrix. Indicated, “0” indicates an example of zero line.
  • the control input here assumes speed as an example, but may be acceleration.
  • " ⁇ j, i " is a logical variable that is “1” when the robot hand j is grasping the object i and "0” in other cases.
  • the equation (1) is a difference equation showing the relationship between the state of the object at the time step k and the state of the object at the time step k + 1.
  • the gripping state is represented by a logical variable that is a discrete value
  • the movement of the object is represented by a continuous value, so that the equation (1) represents a hybrid system. ..
  • equation (1) only the dynamics of the robot hand, which is the hand of the robot 5 that actually grips the object, is considered, not the detailed dynamics of the entire robot 5. As a result, the amount of calculation for the optimization process by the control input generation unit 75 can be suitably reduced.
  • the abstract model generation unit 74 can obtain the abstract model information I5 and the recognition result even when the position and number of the objects, the area where the objects are placed (area G in FIG. 8), the number of robots 5, and the like fluctuate. Based on Im, it is possible to determine the abstract model ⁇ suitable for the environment of the target workspace.
  • the abstract model generation unit 74 generates a model of a mixed logical dynamic (MLD: Mixed Logical Dynamic) system or a hybrid system combining Petri net, an automaton, etc., instead of the model shown in the equation (1). May be good.
  • MLD Mixed Logical Dynamic
  • Control input generation unit 75 is based on the time step logical expression Lts supplied from the time step logical expression generation unit 73 and the abstract model ⁇ supplied from the abstract model generation unit 74.
  • the control input for the robot 5 for each time step that becomes the optimum is determined.
  • the control input generation unit 75 defines an evaluation function for the target task, and solves an optimization problem that minimizes the evaluation function with the abstract model ⁇ and the time step logical expression Lts as constraints.
  • the evaluation function is, for example, predetermined for each type of target task and stored in the memory 12 or the storage device 4.
  • the control input generation unit 75 has a minimum distance "d k " and a control input " uk " between the object to be carried and the target point to carry the object. (That is, the evaluation function is defined so as to minimize the energy consumed by the robot 5).
  • control input generation unit 75 determines the sum of the square of the norm of the distance d k and the square of the norm of the control input uk in all the time steps as the evaluation function. Then, the control input generation unit 75 solves the constrained mixed integer optimization problem shown in the following equation (2) with the abstract model ⁇ and the time step logical equation Lts (that is, the logical sum of the candidates ⁇ i ) as constraints.
  • T is the number of time steps to be optimized, and may be the target number of time steps, or may be a predetermined number smaller than the target number of time steps, as will be described later.
  • the control input generation unit 75 approximates the logical variable to the continuous value (it is regarded as a continuous relaxation problem). As a result, the control input generation unit 75 can suitably reduce the amount of calculation.
  • STL linear logic formula
  • the control input generation unit 75 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 75 sequentially determines the control input uk by solving the above-mentioned optimization problem every time a predetermined number of time steps elapses, for example.
  • the control input generation unit 75 may solve the above-mentioned optimization problem and determine the control input uk to be used for each predetermined event corresponding to the intermediate state with respect to the achievement state of the target task. In this case, the control input generation unit 75 sets the number of time steps until the next event occurs to the number of time steps used for optimization.
  • the above-mentioned event is, for example, an event in which the dynamics in the workspace are switched. For example, when the target task is pick and place, it is determined as an event that the robot 5 grabs the object, the robot 5 finishes carrying one of the plurality of objects to be carried to the destination, and the like. Be done.
  • the event is, for example, predetermined for each type of target task, and information for specifying the event for each type of target task is stored in the storage device 4.
  • Subtask sequence generation unit 76 generates a subtask sequence Sr based on the control input information Icn supplied from the control input generation unit 75 and the subtask information I4 stored in the application information storage unit 41. Generate. In this case, the subtask sequence generation unit 76 recognizes the subtask that can be accepted by the robot 5 by referring to the subtask information I4, and converts the control input for each time step indicated by the control input information Icn into the subtask.
  • the subtask information I4 contains a function indicating two subtasks, that is, the movement of the robot hand (reaching) and the gripping of the robot hand (grasping), as the subtasks that the robot 5 can accept when the target task is pick and place.
  • the function "Move” representing leaching has, 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 as arguments. It is a function.
  • the function "Grasp” representing grasping is, for example, a function in which the state of the robot 5 before the execution of the function, the state of the object to be grasped before the execution of the function, and the logical variable ⁇ are used as arguments.
  • the function "Grasp” indicates that the operation of grasping is performed when the logical variable ⁇ is "1", and the operation of releasing when the logical variable ⁇ is "0" is performed.
  • the subtask sequence generation unit 76 determines the function "Move” based on the trajectory of the robot hand determined by the control input for each time step indicated by the control input information Icn, and the control input information Icn determines the function "Grasp". Determined based on the transition of the logical variable ⁇ for each time step shown.
  • FIG. 9 shows a display example of a task designation screen for designating a target task displayed by the instruction device 2.
  • the instruction device 2 displays the task designation screen shown in FIG. 9 by receiving a predetermined display signal from the robot controller 1 of the task execution system 50 selected by the operator from the list of the task execution system 50, for example.
  • the task designation screen shown in FIG. 9 mainly has a task type designation field 25, a work space display field 26, and various buttons 28 (28a, 28b).
  • the instruction device 2 accepts an input for designating the type of the target task in the task type designation field 25.
  • the task type designation field 25 is an input field in the form of a pull-down menu, and the instruction device 2 displays a list of acceptable target task type candidates in the task type designation field 25 so as to be selectable.
  • pick and place is designated as the type of the target task in the instruction device 2.
  • the target task is not limited to pick and place, and may be various tasks such as a task involving a screwdriver and a task in which a mobile robot moves an object.
  • the instruction device 2 displays an image (work space image) captured by the measuring device 7 in the work space display field 26, and is necessary for executing the target task designated in the task type designation field 25. Accept the designation.
  • the instruction device 2 receives an input for designating an object and a destination on the work space display field 26, respectively.
  • the instruction device 2 displays the marks 27a to 27d on which the object is designated by a solid line, and the marks 27e on which the destination is designated by a broken line.
  • the instruction device 2 detects that the object determination button 28a is selected, the instruction device 2 recognizes the position information of the marks 27a to 27d drawn by the user as information for specifying the position of the object.
  • the instruction device 2 when the instruction device 2 further detects that the destination determination button 28b is selected, the instruction device 2 recognizes the position information of the mark 27e drawn by the user after the selection of the object determination button 28a as information for specifying the destination. do. Then, the instruction device 2 uses information for identifying these objects and destinations (here, position information of each mark on the work space image) as an instruction signal D1 and is a robot controller 1 belonging to the target task execution system 50. Supply to.
  • the instruction device 2 preferably accepts user input regarding the designation of the type of the target task and the designation of the object related to the target task, and is instructed to specify the target task.
  • the signal D1 can be suitably supplied to the robot controller 1.
  • the instruction device 2 may accept the input of designating some pixels constituting the object and the destination by touch operation or click operation. good. In this case, the instruction device 2 regards the position information of each designated pixel as information for specifying the object and the destination, and supplies the instruction signal D1 to the robot controller 1. Further, instead of displaying the work space image generated by the measuring device 7 in the work space display field 26, the instruction device 2 may display a CAD image reproducing the environment in the work space in the work space display field 26. ..
  • the robot controller 1 displays a CAD image that reproduces the environment in the work space based on the recognition result Im generated by the abstract state setting unit 71 and the object model information I6 that records the CAD data related to the object or the like.
  • the display signal to be displayed is transmitted to the instruction device 2.
  • FIG. 10 is an example of a flowchart showing an outline of processing related to reception and storage of robot work-related information D2 executed by the information collecting device 3 in the first embodiment.
  • the information collecting device 3 executes the processing of the flowchart shown in FIG. 10 for each of the task execution systems 50 to which the target task is designated by the instruction device 2.
  • the information acquisition unit 35 of the information collection device 3 acquires the robot configuration information D21 (step S101).
  • the information acquisition unit 35 acquires the robot configuration information D21 by receiving at least the robot work-related information D2 including the robot configuration information D21 from the target task execution system 50.
  • the information acquisition unit 35 receives the robot work-related information D2 other than the robot configuration information D21 from the target task execution system 50 (step S102).
  • the information acquisition unit 35 determines whether or not the collection conditions are satisfied (step S103). In this case, the information acquisition unit 35 determines whether or not the set collection condition is satisfied for the robot work-related information D2 transmitted from the target task execution system 50.
  • This collection condition may be a condition related to the configuration of the robot 5 shown by the robot configuration information D21 acquired in step S101, or may be a condition other than the configuration of the robot 5 (for example, a condition related to the date and time).
  • step S104 the task identifier setting unit 36 determines that the collection condition is satisfied in the determination of the collection condition in step S103 (step S104; Yes)
  • the task identifier for the robot work-related information D2 received in step S103. Is set, and the robot work-related information D2 for which the task identifier is set is stored in the robot work-related information storage unit 42 (step S105).
  • the task identifier setting unit 36 divides the robot work-related information D2 for each execution period of the subtask based on the date and time information, and sets the task identifier representing at least the corresponding subtask for each of the divided robot work-related information D2. And set.
  • step S104 when it is determined in the determination of the collection condition in step S102 that the collection condition is not satisfied (step S104; No), the information acquisition unit 35 discards the received robot work-related information D2 or the task identifier.
  • the robot work-related information D2 received without setting is stored in the robot work-related information storage unit 42 as it is (step S106).
  • the information collecting device 3 determines whether or not the target task has been completed in the target task execution system 50 (step S107). In this case, for example, when the information collecting device 3 does not receive the robot work-related information D2 for a predetermined time or longer, or when it receives information to the effect that the target task has been completed from the task execution system 50 or the instruction device 2. For example, it is determined that the target task has been completed in the target task execution system 50. Then, when it is determined that the target task is completed (step S107; Yes), the information collecting device 3 ends the processing of the flowchart. On the other hand, when it is determined that the target task has not been completed (step S107; No), the information collecting device 3 returns the process to step S102, and subsequently performs the process related to the reception and storage of the robot work-related information D2.
  • Each task execution system 50 may have some functions of the information collecting device 3.
  • the robot controller 1 of each task execution system 50 may execute a process corresponding to a part of the functions of the information acquisition unit 35.
  • the robot controller 1 of each task execution system 50 collects various information generated by the target task execution system 50 from the robot 5 and the measuring device 7, and generates robot work-related information D2. Further, the robot controller 1 determines whether or not the collection conditions supplied from the instruction device 2 or the information collection device 3 or the like or stored in the memory 12 in advance are satisfied, and only when it is determined that the collection conditions are satisfied. , Robot work related information D2 is transmitted to the information collecting device 3. Also in this aspect, the information collecting device 3 can be suitably used for updating the application information by accumulating the information tagged with the robot work-related information D2 by the task identifier.
  • any of the robot controllers 1 may function as the information collecting device 3 and execute both the processing of the robot controller 1 and the processing of the information collecting device 3 shown in FIG.
  • the robot integrated system 100 may be realized by the master / slave method.
  • the robot controller 1 of each task execution system 50 may function as the information collecting device 3, respectively.
  • the robot controller 1 collects work-related information generated in the task execution system 50 to which it belongs, sets a task identifier, and stores work-related information in which the task identifier is set.
  • the block configuration of the robot controller 1 shown in FIG. 7 is an example, and various changes may be made.
  • the information of the candidate ⁇ of the operation sequence instructed to the robot 5 is stored in advance in the storage device 4, and the robot controller 1 executes the optimization process of the control input generation unit 75 based on the information.
  • the robot controller 1 selects the optimum candidate ⁇ and determines the control input of the robot 5.
  • the robot controller 1 does not have to have a function corresponding to the abstract state setting unit 71, the target logical expression generation unit 72, and the time step logical expression generation unit 73 in the generation of the subtask sequence Sr.
  • the information regarding the execution result of a part of the functional blocks of the robot controller 1 shown in FIG. 7 may be stored in the application information storage unit 41 in advance.
  • the application information includes design information such as a flowchart for designing the subtask sequence Sr corresponding to the target task in advance, and the robot controller 1 refers to the design information to perform the subtask.
  • the sequence Sr may be generated.
  • a specific example of executing a task based on a pre-designed task sequence is disclosed in, for example, Japanese Patent Application Laid-Open No. 2017-39170.
  • FIG. 11 shows a schematic configuration diagram of the information collecting device 3X according to the second embodiment.
  • the information collecting device 3X mainly has an information acquisition means 35X and a task identifier setting means 36X.
  • the information collecting device 3X may be composed of a plurality of devices.
  • the information acquisition means 35X acquires work-related information related to the work of the robot.
  • the information acquisition means 35X can be, for example, the information acquisition unit 35 in the first embodiment.
  • the task identifier setting means 36X sets the identifier of the task to be executed by the robot for the work-related information.
  • the work-related information in which the task identifier is set is stored in the memory included in the information collecting device 3X or the external memory.
  • the task identifier setting means 36X can be, for example, the task identifier setting unit 36 in the first embodiment.
  • FIG. 12 shows an example of a flowchart executed by the information collecting device 3X in the second embodiment.
  • the information acquisition means 35X acquires work-related information related to the work of the robot (step S201).
  • the task identifier setting means 36X sets the identifier of the task to be executed by the robot for the work-related information (step S202).
  • the information collecting device 3X sets an identifier of the task to be executed by the robot for the work-related information related to the work of the robot. This makes it possible to facilitate analysis / learning of work-related information for each task.
  • Non-transitory Computer Readable Medium Non-Transitory Computer Readable Medium
  • Non-temporary computer-readable media include various types of tangible storage media (Tangible Storage Medium).
  • non-temporary computer-readable media examples include magnetic storage media (eg, flexible disks, magnetic tapes, hard disk drives), optomagnetic storage media (eg, optomagnetic disks), CD-ROMs (ReadOnlyMemory), CD-Rs, Includes CD-R / W, semiconductor memory (eg, mask ROM, PROM (ProgrammableROM), EPROM (ErasablePROM), flash ROM, RAM (RandomAccessMemory)).
  • the program may also be supplied to the computer by various types of temporary computer-readable media (Transitory ComputerReadable Medium). Examples of temporary computer readable media include electrical, optical, and electromagnetic waves.
  • the temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.
  • Robot controller Instruction device 3
  • 3X Information collection device 5
  • Robot 7 Measurement device 41
  • Application information storage unit 42
  • Robot work-related information storage unit 43
  • Update application information storage unit 50
  • Task execution system 100

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Abstract

情報収集装置3Xは、主に、情報取得手段35Xと、タスク識別子設定手段36Xとを有する。情報取得手段35Xは、ロボットの作業に関連する作業関連情報を取得する。情報取得手段35Xは、例えば、第1実施形態における情報取得部35とすることができる。タスク識別子設定手段36Xは、作業関連情報に対し、ロボットが実行するタスクの識別子を設定する。

Description

情報収集装置、情報収集方法及び記憶媒体
 本開示は、ロボットの作業に関する情報を収集する情報収集装置、情報収集方法及び記憶媒体の技術分野に関する。
 ロボットの作業に関するデータ収集を行う手法が提案されている。例えば、特許文献1には、ロボットの動作データを収集する条件を定める収集条件を設定し、収集条件を満たすロボットの動作データを収集するロボット動作データ収集システムが開示されている。
特開2020-046764号公報
 遠隔でのロボット制御を可能とするため、ロボットの動作シーケンスの自動生成により自律性を持たせたロボット制御を行うことが考えらえる。このようなロボットシステムでは、種々の環境で活動するロボットからデータを収集し、ロボット制御に用いる情報の更新を行うことがロボット制御の精度向上のために必要となる。
 本開示の目的の1つは、上述した課題を鑑み、ロボットの作業に関する情報を好適に収集することが可能な情報収集装置、情報収集方法及び記憶媒体を提供することである。
 情報収集装置の一の態様は、
 ロボットの作業に関連する作業関連情報を取得する情報取得手段と、
 前記作業関連情報に対し、前記ロボットが実行するタスクの識別子を設定するタスク識別子設定手段と、
を有する情報収集装置である。
 情報収集方法の一の態様は、
 コンピュータが、
 ロボットの作業に関連する作業関連情報を取得し、
 前記作業関連情報に対し、前記ロボットが実行するタスクの識別子を設定する、
情報収集方法である。
 記憶媒体の一の態様は、
 ロボットの作業に関連する作業関連情報を取得し、
 前記作業関連情報に対し、前記ロボットが実行するタスクの識別子を設定する処理をコンピュータに実行させるプログラムが格納された記憶媒体である。
 ロボットの作業に関連する作業関連情報の収集を好適に行うことができる。
第1実施形態におけるロボット統括システムの構成を示す。 ロボットコントローラのハードウェア構成を示す。 アプリケーション情報のデータ構造の一例を示す。 作業関連情報のデータ構造の一例を示す。 情報収集装置の機能ブロックの一例である。 ロボット動作期間におけるサブタスクの実行状況と、作業関連情報に設定されるタスク識別子との関係を表す図である ロボットコントローラの機能ブロックの一例である。 ピックアンドプレイスを目的タスクとした場合の作業空間の俯瞰図を示す。 目的タスクを指定するタスク指定画面の表示例を示す。 第1実施形態において情報収集装置が実行する処理の概要を示すフローチャートの一例である。 第2実施形態における情報収集装置の概略構成図を示す。 第2実施形態において、情報収集装置が実行する処理手順を示すフローチャートの一例である。
 以下、図面を参照しながら、情報収集装置、情報収集方法、記憶媒体の実施形態について説明する。
 <第1実施形態>
 (1)システム構成
 図1は、第1実施形態に係るロボット統括システム100の構成を示す。ロボット統括システム100は、主に、指示装置2と、情報収集装置3と、複数のタスク実行システム50(50A、50B、…)とを有する。指示装置2と情報収集装置3とタスク実行システム50とは、通信網6を介してデータ通信を行う。
 指示装置2は、各タスク実行システム50においてロボット5に実行させるタスク(「目的タスク」とも呼ぶ。)に関する作業者による指示を受け付ける装置である。指示装置2は、目的タスクに関する所定の表示又は音出力を行ったり、作業者の入力に基づき生成した指示信号「D1」をタスク実行システム50へ供給したりする。この場合、指示装置2は、例えば、目的タスクの指示が可能なタスク実行システム50のリストを表示し、リストから選択されたタスク実行システム50に対して目的タスクの指定等に関する入力を受け付ける。指示装置2は、入力部と表示部とを備えるタブレット端末であってもよく、据置型のパーソナルコンピュータであってもよい。
 情報収集装置3は、ロボットの作業に関連する情報(「ロボット作業関連情報D2」とも呼ぶ。)をタスク実行システム50の各々から受信し、受信したロボット作業関連情報D2を記憶する。情報収集装置3は、機能的には、ロボット作業関連情報記憶部42と、更新アプリケーション情報記憶部43とを有する。ロボット作業関連情報記憶部42は、情報収集装置3がタスク実行システム50の各々から受信したロボット作業関連情報D2を記憶する。更新アプリケーション情報記憶部43は、ロボット作業関連情報記憶部42に記憶された情報を分析することで生成・更新されたアプリケーション情報を記憶する。アプリケーション情報は、ロボットが実行すべきシーケンスである動作シーケンスを目的タスクから生成するために必要な種々の情報である。情報収集装置3は、更新アプリケーション情報記憶部43に記憶されたアプリケーション情報とタスク実行システム50に記憶されたアプリケーション情報とを同期するために必要な更新情報「D3」を、タスク実行システム50に送信する。
 タスク実行システム50は、指定された目的タスクを実行するシステムであり、夫々異なる環境に設けられる。各タスク実行システム50は、ロボットコントローラ1(1A、1B、…)と、ロボット5(5A、5B、…)と、計測装置7(7A、7B、…)と、を備える。
 ロボットコントローラ1は、同一のタスク実行システム50内に属するロボット5に実行させる目的タスクが指定された場合に、ロボット5の動作計画を時相論理に基づき策定し、当該動作計画に基づきロボット5を制御する。具体的には、ロボットコントローラ1は、時相論理により表した目的タスクを、ロボット5が受付可能な単位となるタスクのタイムステップ(時間刻み)毎のシーケンスに変換し、生成したシーケンスに基づきロボット5を制御する。以後では、ロボット5が受付可能な単位により目的タスクを分解したタスク(コマンド)を、「サブタスク」とも呼び、目的タスクを達成するためにロボット5が実行すべきサブタスクのシーケンスを「サブタスクシーケンス」又は「動作シーケンス」と呼ぶ。
 また、ロボットコントローラ1は、ロボット5の動作シーケンスを目的タスクから生成するために必要なアプリケーション情報を記憶するアプリケーション情報記憶部41(41A、41B、…)を有する。アプリケーション情報の詳細は、図3を参照しながら後述する。
 また、ロボットコントローラ1は、同一のタスク実行システム50に属するロボット5及び計測装置7と、通信網を介し、又は、無線若しくは有線による直接通信により、データ通信を行う。例えば、ロボットコントローラ1は、ロボット5の制御に関する制御信号をロボット5に送信する。他の例では、ロボットコントローラ1は、計測装置7が生成した計測信号を受信する。
 さらに、ロボットコントローラ1は、指示装置2及び情報収集装置3と、通信網6を介してデータ通信を行う。例えば、ロボットコントローラ1は、指示装置2から、目的タスクの指定又はロボット5の動作指令等に関する指示信号D1を受信する。また、ロボットコントローラ1は、情報収集装置3に対し、ロボット5の制御において生成した各種情報、ロボット5及び計測装置7と授受を行った各種情報を含むロボット作業関連情報D2を送信する。ロボット作業関連情報D2の詳細は、図4を参照しながら後述する。また、ロボットコントローラ1は、通信網6を介して情報収集装置3から更新情報D3を受信し、受信した更新情報D3に基づき、アプリケーション情報記憶部41に記憶するアプリケーション情報を更新する。
 なお、ロボット5又は計測装置7が生成したロボット作業関連情報D2は、ロボットコントローラ1を介して情報収集装置3に供給される代わりに、ロボットコントローラ1を介すことなく、ロボット5又は計測装置7により直接的に情報収集装置3に供給されてもよい。
 ロボット5は、タスク実行システム50毎に1台又は複数台存在し、同一のタスク実行システム50に属するロボットコントローラ1から供給される制御信号に基づき目的タスクに関する作業を行う。ロボット5は、例えば、組み立て工場、食品工場などの各種工場、又は、物流の現場などで動作を行うロボットである。ロボット5は、垂直多関節型ロボット、水平多関節型ロボット、又はその他の任意の種類のロボットであってもよく、ロボットアームなどの夫々が独立して動作する制御対象物を複数有してもよい。また、ロボット5は、作業空間内で動作する他のロボット、作業者又は工作機械と協働作業を行うものであってもよい。また、ロボットコントローラ1とロボット5とは、一体に構成されてもよい。
 また、ロボット5は、ロボット5の状態を示す状態信号を、同一のタスク実行システム50に属するロボットコントローラ1に供給してもよい。この状態信号は、ロボット5全体又は関節などの特定部位の状態(位置、角度等)を検出するセンサの出力信号であってもよく、ロボット5の制御部が生成したロボット5の動作シーケンスの進捗状態を示す信号であってもよい。
 計測装置7は、各タスク実行システム50において目的タスクが実行される作業空間内の状態を検出するカメラ、測域センサ、ソナーまたはこれらの組み合わせとなる1又は複数のセンサである。計測装置7は、生成した計測信号を、同一のタスク実行システム50に属するロボットコントローラ1に供給する。計測装置7は、作業空間内で移動する自走式又は飛行式のセンサ(ドローンを含む)であってもよい。また、計測装置7は、ロボット5に設けられたセンサ、及び作業空間内の他の物体に設けられたセンサなどを含んでもよい。また、計測装置7は、作業空間内の音を検出するセンサを含んでもよい。このように、計測装置7は、作業空間内の状態を検出する種々のセンサであって、任意の場所に設けられたセンサを含んでもよい。
 なお、図1に示すロボット統括システム100の構成は一例であり、当該構成に種々の変更が行われてもよい。例えば、タスク実行システム50に夫々存在するロボットコントローラ1は、複数の装置から構成されてもよい。この場合、ロボットコントローラ1を構成する複数の装置は、予め割り当てられた処理を実行するために必要な情報の授受を、これらの複数の装置間において行う。また、アプリケーション情報記憶部41は、ロボットコントローラ1とデータ通信を行う1または複数の外部記憶装置により記憶されてもよい。この場合、外部記憶装置は、各タスク実行システム50で共通して参照されるアプリケーション情報記憶部41を記憶する1又は複数のサーバ装置であってもよい。同様に、ロボット作業関連情報記憶部42及び更新アプリケーション情報記憶部43の少なくとも一方は、情報収集装置3とデータ通信を行う1又は複数の外部記憶装置により記憶されてもよい。また、タスク実行システム50には、ロボット5の作業環境に関する温度、湿度等の指標の検出を行うセンサが設けられてもよい。
 (2)ハードウェア構成
 図2(A)は、ロボットコントローラ1(1A、1B、…)のハードウェア構成を示す。ロボットコントローラ1は、ハードウェアとして、プロセッサ11と、メモリ12と、インターフェース13とを含む。プロセッサ11、メモリ12及びインターフェース13は、データバス10を介して接続されている。
 プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、ロボットコントローラ1の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ11は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)などのプロセッサである。プロセッサ11は、複数のプロセッサから構成されてもよい。プロセッサ11は、コンピュータの一例である。
 メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ12には、ロボットコントローラ1が実行する処理を実行するためのプログラムが記憶される。また、メモリ12は、アプリケーション情報記憶部41として機能する。アプリケーション情報記憶部41に記憶されたアプリケーション情報は、更新情報D3に基づき更新される。なお、メモリ12が記憶する情報の一部は、ロボットコントローラ1と通信可能な1又は複数の外部記憶装置により記憶されてもよく、ロボットコントローラ1に対して着脱自在な記憶媒体により記憶されてもよい。
 インターフェース13は、ロボットコントローラ1と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。
 なお、ロボットコントローラ1のハードウェア構成は、図2(A)に示す構成に限定されない。例えば、ロボットコントローラ1は、表示装置、入力装置又は音出力装置の少なくともいずれかと接続又は内蔵してもよい。
 図2(B)は、指示装置2のハードウェア構成を示す。指示装置2は、ハードウェアとして、プロセッサ21と、メモリ22と、インターフェース23と、入力部24aと、表示部24bと、音出力部24cとを含む。プロセッサ21、メモリ22及びインターフェース23は、データバス20を介して接続されている。また、インターフェース23には、入力部24aと表示部24bと音出力部24cとが接続されている。
 プロセッサ21は、メモリ22に記憶されているプログラムを実行することにより、所定の処理を実行する。プロセッサ21は、CPU、GPU、TPUなどのプロセッサである。プロセッサ21は、インターフェース23を介して入力部24aが生成した信号を受信することで、指示信号D1を生成し、インターフェース23を介してロボットコントローラ1に当該指示信号D1を送信する。また、プロセッサ21は、インターフェース23を介してロボットコントローラ1から受信した出力制御信号に基づき、表示部24b又は音出力部24cの少なくとも一方を、インターフェース23を介して制御する。
 メモリ22は、RAM、ROM、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ22には、指示装置2が実行する処理を実行するためのプログラムが記憶される。
 インターフェース23は、指示装置2と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。また、インターフェース23は、入力部24a、表示部24b、及び音出力部24cのインターフェース動作を行う。入力部24aは、ユーザの入力を受け付けるインターフェースであり、例えば、タッチパネル、ボタン、キーボード、音声入力装置などが該当する。表示部24bは、例えば、ディスプレイ、プロジェクタ等であり、プロセッサ21の制御に基づき表示を行う。また、音出力部24cは、例えば、スピーカであり、プロセッサ21の制御に基づき音出力を行う。
 なお、指示装置2のハードウェア構成は、図2(B)に示す構成に限定されない。例えば、入力部24a、表示部24b又は音出力部24cの少なくともいずれかは、指示装置2と電気的に接続する別体の装置として構成されてもよい。また、指示装置2は、カメラなどの種々の装置と接続してもよく、これらを内蔵してもよい。
 図2(C)は、情報収集装置3のハードウェア構成を示す。情報収集装置3は、ハードウェアとして、プロセッサ31と、メモリ32と、インターフェース33とを含む。プロセッサ31、メモリ32及びインターフェース33は、データバス30を介して接続されている。
 プロセッサ31は、メモリ32に記憶されているプログラムを実行することにより、情報収集装置3の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ31は、例えば、CPU、GPU、TPUなどのプロセッサである。プロセッサ31は、複数のプロセッサから構成されてもよい。プロセッサ31は、コンピュータの一例である。
 メモリ32は、RAM、ROM、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ32には、ロボットコントローラ1が実行する処理を実行するためのプログラムが記憶される。また、メモリ32は、ロボット作業関連情報記憶部42及び更新アプリケーション情報記憶部43として機能する。なお、メモリ32が記憶する情報の一部は、情報収集装置3と通信可能な1又は複数の外部記憶装置により記憶されてもよく、情報収集装置3に対して着脱自在な記憶媒体により記憶されてもよい。
 インターフェース33は、情報収集装置3と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。
 なお、情報収集装置3のハードウェア構成は、図2(C)に示す構成に限定されない。例えば、情報収集装置3は、表示装置、入力装置又は音出力装置の少なくともいずれかと接続又は内蔵してもよい。
 (3)アプリケーション情報
 次に、アプリケーション情報記憶部41が記憶するアプリケーション情報のデータ構造について説明する。
 図3は、アプリケーション情報のデータ構造の一例を示す。図3に示すように、アプリケーション情報は、抽象状態指定情報I1と、制約条件情報I2と、動作限界情報I3と、サブタスク情報I4と、抽象モデル情報I5と、物体モデル情報I6とを含む。
 抽象状態指定情報I1は、動作シーケンスの生成にあたり定義する必要がある抽象状態を指定する情報である。この抽象状態は、作業空間内における物体の抽象的な状態であって、後述する目標論理式において使用する命題として定められる。例えば、抽象状態指定情報I1は、目的タスクの種類毎に、定義する必要がある抽象状態を指定する。
 制約条件情報I2は、目的タスクを実行する際の制約条件を示す情報である。制約条件情報I2は、例えば、目的タスクがピックアンドプレイスの場合、障害物にロボット5(ロボットアーム)が接触してはいけないという制約条件、ロボット5(ロボットアーム)同士が接触してはいけないという制約条件などを示す。なお、制約条件情報I2は、目的タスクの種類毎に夫々適した制約条件を記録した情報であってもよい。
 動作限界情報I3は、ロボットコントローラ1により制御が行われるロボット5の動作限界に関する情報を示す。動作限界情報I3は、例えば、ロボット5の速度、加速度、又は角速度の上限を規定する情報である。なお、動作限界情報I3は、ロボット5の可動部位又は関節ごとに動作限界を規定する情報であってもよい。
 サブタスク情報I4は、動作シーケンスの構成要素となるサブタスクの情報を示す。「サブタスク」は、ロボット5が受付可能な単位により目的タスクを分解したタスクであって、細分化されたロボット5の動作を指す。例えば、目的タスクがピックアンドプレイスの場合には、サブタスク情報I4は、ロボット5のロボットアームの移動であるリーチングと、ロボットアームによる把持であるグラスピングとをサブタスクとして規定する。サブタスク情報I4は、目的タスクの種類毎に使用可能なサブタスクの情報を示すものであってもよい。なお、サブタスク情報I4には、外部入力による動作指令が必要なサブタスクに関する情報が含まれてもよい。
 抽象モデル情報I5は、作業空間におけるダイナミクスを抽象化した抽象モデルに関する情報である。例えば、抽象モデルは、後述するように、現実のダイナミクスをハイブリッドシステムにより抽象化したモデルにより表されている。抽象モデル情報I5は、上述のハイブリッドシステムにおけるダイナミクスの切り替わりの条件を示す情報を含む。切り替わりの条件は、例えば、ロボット5により作業対象となる物(「対象物」とも呼ぶ。)をロボット5が掴んで所定位置に移動させるピックアンドプレイスの場合、対象物はロボット5により把持されなければ移動できないという条件などが該当する。抽象モデル情報I5は、目的タスクの種類毎に適した抽象モデルに関する情報を有している。
 物体モデル情報I6は、計測装置7が生成した計測信号から認識すべき作業空間内の各物体の物体モデルに関する情報である。上述の各物体は、例えば、ロボット5、障害物、ロボット5が扱う工具その他の対象物、ロボット5以外の作業体などが該当する。物体モデル情報I6は、例えば、上述した各物体の種類、位置、姿勢、現在実行中の動作などをロボットコントローラ1が認識するために必要な情報と、各物体の3次元形状を認識するためのCAD(Computer Aided Design)データなどの3次元形状情報とを含んでいる。前者の情報は、ニューラルネットワークなどの機械学習における学習モデルを学習することで得られた推論器のパラメータを含む。この推論器は、例えば、画像が入力された場合に、当該画像において被写体となる物体の種類、位置、姿勢等を出力するように予め学習される。また、対象物などの主要な物体に画像認識用のARマーカが付されている場合には、ARマーカにより物体を認識するために必要な情報が物体モデル情報I6として記憶されてもよい。
 なお、アプリケーション情報記憶部41は、上述した情報の他、ロボット5の動作シーケンスの生成処理に関する種々の情報を記憶してもよい。
 (4)作業関連情報
 図4は、情報収集装置3が各タスク実行システム50から受信するロボット作業関連情報D2のデータ構造の一例を示す。図4に示すように、ロボット作業関連情報D2は、ロボット構成情報D21と、動作計画情報D22と、計測情報D23と、ロボット動作状況情報D24と、作業環境情報D25とを含んでいる。なお、図4に示すロボット作業関連情報D2は、一括して情報収集装置3に供給される代わりに、情報の種類、又は/及び、生成タイミングに応じてロボット作業関連情報D2を構成する個々の情報が逐次的に情報収集装置3に供給されてもよい。即ち、タスク実行システム50は、ロボット作業関連情報D2として送信すべき情報を複数回に分けて情報収集装置3に供給してもよい。
 ロボット構成情報D21は、タスク実行システム50の各々におけるロボット5の構成を表す情報である。ロボット構成情報D21は、例えば、ロボット5の台数、各ロボット5の配置、各ロボット5の種類などの情報を含んでいる。なお、ロボット構成情報D21は、ロボット5の構成に加えて、計測装置7の構成(台数、配置、種類等)に関する情報をさらに含んでもよい。ロボット構成情報D21は、ロボット作業関連情報D2として情報収集装置3に送信される他の情報より先行して情報収集装置3に供給されてもよい。
 動作計画情報D22は、タスク実行システム50の各々におけるロボットコントローラ1が策定するロボット5の動作計画に関する情報である。動作計画情報D22は、例えば、ロボットコントローラ1がロボット5に供給する動作シーケンスに関する制御信号に加えて、当該制御信号を生成する過程において生成した任意の情報(中間生成情報)を含んでもよい。例えば、動作計画情報D22は、設定された目的タスクの情報、ロボットコントローラ1が設定した抽象状態(命題を含む)に関する情報、動作シーケンスを決定する際に使用した評価関数(報酬関数、価値関数)に関する情報等を含んでもよい。また、動作計画情報D22は、ロボットコントローラ1が使用したアプリケーション情報のバージョン情報などを含んでもよい。また、動作計画情報D22は、動作シーケンスを生成した日時及び動作シーケンスを構成する各サブタスクの実行予定日時等を示す日時情報を含んでいる。動作計画情報D22は、ロボットコントローラ1による動作計画の策定後に直ちに情報収集装置3に供給されてよく、ロボット作業関連情報D2として情報収集装置3に送信される他の情報と一括して情報収集装置3に供給されてもよい。
 計測情報D23は、タスク実行システム50の各々において設けられた計測装置7がロボット5による目的タスクの実行中において生成する計測信号である。この計測信号は、計測日時を示す日時情報と関連付けられている。
 ロボット動作状況情報D24は、タスク実行システム50の各々において、ロボットコントローラ1が生成した動作シーケンスの制御信号に基づきロボット5が動作している期間(「ロボット動作期間」とも呼ぶ。)におけるロボット5の動作状況を表す情報である。ロボット動作状況情報D24は、サブタスクごとのロボット5の実行結果(成功又は失敗)を示すログ情報であってもよく、動作シーケンスを実行中のロボット5の状態に関するログ情報であってもよい。状態に関するログ情報は、例えば、ロボット5の稼働時間長、ロボット5のエンドエフェクタやアクチュエータ等の角度、角速度、角加速度、位置、速度、加速度、力、トルクなどの情報を含む。これらのログ情報は、対象となる動作の実行日時を示す日時情報と関連付けられている。ロボット動作状況情報D24は、ロボットコントローラ1が生成する情報であってもよく、ロボット5が生成する情報であってもよく、その両方を含む情報であってもよい。
 作業環境情報D25は、タスク実行システム50の各々において検出された作業環境に関する検出情報である。作業環境情報D25は、例えば、ロボット動作期間での作業空間の温度、湿度その他環境を表す指標である。
 なお、計測情報D23、ロボット動作状況情報D24及び作業環境情報D25は、ロボット動作期間中において所定時間間隔ごとに情報収集装置3に供給されてもよく、ロボット動作期間終了後に一括して情報収集装置3に供給されてもよい。
 ロボット作業関連情報D2には、上述した情報に限らず、ロボット5の作業に関する任意の情報が含まれていてもよい。例えば、ロボット作業関連情報D2には、タスク実行システム50の各々に対して割り当てられた識別情報が含まれてもよい。
 (5)情報収集装置の処理概要
 次に、情報収集装置3の処理概要について説明する。概略的には、情報収集装置3は、各タスク実行システム50から供給されるロボット作業関連情報D2をロボット作業関連情報記憶部42に記憶する場合に、実行対象のタスクを表す識別子(「タスク識別子」とも呼ぶ。)をロボット作業関連情報D2に設定する。これにより、情報収集装置3は、複数の環境で作業するロボット5のデータを収集する場合に、アプリケーション情報の更新等を目的とした分析、学習において好適に活用できるように、収集したデータの仕分けを行う。
 図5は、情報収集装置3の処理の概要を示す機能ブロックの一例である。情報収集装置3のプロセッサ31は、機能的には、情報取得部35と、タスク識別子設定部36と、アプリケーション情報更新部37とを有する。なお、図5では、各ブロック間で授受が行われるデータの一例が示されているが、これに限定されない。後述する他の機能ブロックの図においても同様である。
 情報取得部35は、インターフェース33を介してタスク実行システム50の各々からロボット作業関連情報D2を受信し、受信したロボット作業関連情報D2又はその一部をタスク識別子設定部36に供給する。情報取得部35の処理の詳細については、「(6)情報取得部の詳細」のセクションにて詳しく説明する。
 なお、タスク実行システム50の各々は、ロボット作業関連情報D2を、目的タスクの実行(動作計画を含む)の開始後から目的タスクの実行終了までの期間において、所定時間間隔毎に送信してもよく、目的タスクの実行完了時などの所定のタイミングにおいてまとめて送信してもよい。また、情報取得部35は、ロボット作業関連情報D2を各タスク実行システム50に対して要求することで、ロボット作業関連情報D2を受信してもよい。この場合、例えば、情報取得部35は、指示装置2から目的タスクの指示情報等を受信することで、目的タスクの実行中のタスク実行システム50を認識し、目的タスクの実行中のタスク実行システム50のロボットコントローラ1にロボット作業関連情報D2の送信を要求する。
 タスク識別子設定部36は、情報取得部35から供給されたロボット作業関連情報D2に対してタスク識別子をタグとして設定する処理(所謂タグ付け処理)を実行し、タスク識別子を設定したロボット作業関連情報D2をロボット作業関連情報記憶部42に記憶する。この場合、タスク識別子は、サブタスクを少なくとも識別可能な識別子である。タスク識別子設定部36の処理の詳細については、「(7)タスク識別子設定部の詳細」のセクションにて詳しく説明する。
 アプリケーション情報更新部37は、ロボット作業関連情報記憶部42に記憶された情報に基づき、アプリケーション情報を更新し、更新したアプリケーション情報を更新アプリケーション情報記憶部43に記憶する。この場合、アプリケーション情報更新部37は、ロボット作業関連情報記憶部42に記憶されたロボット作業関連情報を、設定されたタスク識別子が示すタスク毎に分析・学習することで、抽象状態指定情報I1、制約条件情報I2、動作限界情報I3、サブタスク情報I4、抽象モデル情報I5、又は物体モデル情報I6の少なくともいずれかを更新する。この場合、アプリケーション情報更新部37は、管理者等による外部入力を、インターフェース33を介した入力部により受け付け、当該外部入力に基づき上述の更新を行ってもよい。
 また、アプリケーション情報更新部37は、更新したアプリケーション情報を表す更新情報D3を、各タスク実行システム50に配信する。この場合、例えば、アプリケーション情報更新部37は、更新アプリケーション情報記憶部43に記憶した更新後の全てのアプリケーション情報を更新情報D3として各タスク実行システム50に配信する。他の例では、アプリケーション情報更新部37は、更新部分に該当するアプリケーション情報のみを更新情報D3として各タスク実行システム50に配信する。その後、更新情報D3を受信した各タスク実行システム50のロボットコントローラ1は、更新情報D3に基づきアプリケーション情報記憶部41に記憶されたアプリケーション情報を更新する。
 ここで、情報取得部35、タスク識別子設定部36及びアプリケーション情報更新部37の各構成要素は、例えば、プロセッサ31がプログラムを実行することによって実現できる。また、必要なプログラムを任意の不揮発性記憶媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素の少なくとも一部は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組合せ等により実現してもよい。また、これらの各構成要素の少なくとも一部は、例えばFPGA(Field-Programmable Gate Array)又はマイクロコントローラ等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。また、各構成要素の少なくとも一部は、ASSP(Application Specific Standard Produce)、ASIC(Application Specific Integrated Circuit)又は量子コンピュータ制御チップにより構成されてもよい。このように、各構成要素は、種々のハードウェアにより実現されてもよい。以上のことは、後述する他の実施の形態においても同様である。さらに、これらの各構成要素は,例えば,クラウドコンピューティング技術などを用いて、複数のコンピュータの協働によって実現されてもよい。
 (6)情報取得部の詳細
 情報取得部35が実行する処理の詳細について説明する。好適には、情報取得部35は、受信したロボット作業関連情報D2について、所定の収集条件が満たされるか否かを判定し、収集条件が満たされるロボット作業関連情報D2を、タスク識別子設定部36に供給する。これにより、タスク識別子設定部36によるタスク識別子の設定処理による処理負荷等を好適に低減する。
 ここで、「収集条件」は、タスク識別子と関連付けてロボット作業関連情報記憶部42に記憶する対象となるロボット作業関連情報D2を判定する条件を指す。収集条件は、例えば、ロボット作業関連情報D2をロボット作業関連情報記憶部42に記憶するタスク実行システム50を指定する条件であってもよく、ロボット作業関連情報D2をロボット作業関連情報記憶部42に記憶する時間帯を指定する条件であってもよい。具体的な収集条件を指定する情報は、例えばメモリ32等に予め記憶されている。
 また、収集条件は、タスク実行システム50に存在するロボット5の構成を指定する条件であってもよい。この場合、情報取得部35は、ロボット作業関連情報D2として送信されるロボット構成情報D21に基づき、収集条件として設定したロボット5の構成を有するタスク実行システム50を特定する。そして、情報取得部35は、収集条件として設定したロボット5の構成を有するタスク実行システム50から送信されたロボット作業関連情報D2を、タスク識別子設定部36に供給する。
 なお、情報取得部35は、収集条件が満たれさないロボット作業関連情報D2を、ロボット作業関連情報記憶部42に記憶せずに破棄してもよく、タスク識別子の設定処理を行わずにそのままロボット作業関連情報記憶部42に記憶してもよい。これらのいずれの場合においても、タスク識別子設定部36によるタスク識別子の設定処理の負荷を削減することができる。この場合、例えば、収集条件が満たれさないロボット作業関連情報D2に対する対応を定めた設定情報がメモリ32等に記憶されており、情報取得部35は、当該設定情報に従い、収集条件が満たされないロボット作業関連情報D2への対応(破棄又はそのままロボット作業関連情報記憶部42に記憶)を決定する。
 (7)タスク識別子設定部の詳細
 次に、タスク識別子の設定処理の詳細について説明する。タスク識別子設定部36は、ロボット動作期間に生成されるロボット作業関連情報D2(例えば、計測情報D23、ロボット動作状況情報D24及び作業環境情報D25)について、少なくとも対応するサブタスクを表すタスク識別子をタグとして設定する。具体的には、タスク識別子設定部36は、ロボット動作期間において実行されるロボット5の各サブタスクの実行期間を認識し、認識した各サブタスクの実行期間に生成されたロボット作業関連情報D2に対し、対応するサブタスクのタスク識別子を設定する。
 図6は、あるタスク実行システム50のロボット動作期間におけるサブタスクの実行状況と、ロボット動作期間に生成されるロボット作業関連情報D2に付されるタスク識別子との関係を表す図である。図6の例では、時刻「t1」から時刻「t7」までの期間がタスク実行システム50Aでのロボット動作期間に相当し、当該期間においてロボット5はサブタスクである「サブタスク1」~「サブタスク4」を実行している。
 タスク識別子設定部36は、ロボット実行期間において実行される各サブタスクの実行期間を、ロボット作業関連情報D2に含まれる動作計画情報D22又はロボット動作状況情報D24に基づき認識する。具体的には、タスク識別子設定部36は、タイムステップ毎に計画されたサブタスクのシーケンスの情報を示す動作計画情報D22、又は、実際にロボット5が実行したサブタスクのログ情報を示すロボット動作状況情報D24の少なくとも一方を参照し、各サブタスクの実行期間を認識する。そして、タスク識別子設定部36は、ロボット動作期間において生成されるロボット作業関連情報D2を、当該ロボット作業関連情報D2に付加された時刻情報に基づき、各サブタスクの実行期間と対応付ける。
 具体的には、タスク識別子設定部36は、時刻t1から時刻「t2」までの期間及び時刻「t5」から時刻「t6」までの期間が「サブタスク1」の実行期間であると認識する。また、タスク識別子設定部36は、時刻t2から時刻「t3」までの期間及び時刻「t4」から時刻「t5」までの期間が「サブタスク2」の実行期間であると認識する。さらに、タスク識別子設定部36は、時刻t3から時刻t4までの期間が「サブタスク3」の実行期間、時刻t6から時刻t7までの期間が「サブタスク4」の実行期間であると認識する。
 そして、タスク識別子設定部36は、サブタスクの実行期間ごとに分けたロボット作業関連情報D2に対し、対応するサブタスクを少なくとも表すタスク識別子を設定する。図6の例では、タスク識別子設定部36は、対応する目的タスクXとサブタスクとの両方を識別するためのタスク識別子を設定する。例えば、タスク識別子設定部36は、時刻t1から時刻t2までの期間に日時情報が対応付けられたロボット作業関連情報D2については、「目的タスクX」と「サブタスク1」を表すタスク識別子を設定する。また、タスク識別子設定部36は、時刻t2から時刻t3までの期間に日時情報が対応付けられたロボット作業関連情報D2については、「目的タスクX」と「サブタスク2」を表すタスク識別子を設定する。なお、このタスク識別子は、対象のサブタスクに対して固有の識別子と、対象の目的タスクに対して固有の識別子との組み合わせであってもよく、サブタスクと目的タスクの組み合わせに対して固有の1つの識別子であってもよい。
 このように、タスク識別子設定部36は、各タスク実行システム50から供給されるロボット作業関連情報D2について、生成時において実行中であった目的タスク及びサブタスクに対応するタスク識別子を設定する。これにより、タスク識別子設定部36は、アプリケーション情報更新部37でのサブタスクごとの実行結果の分析等がしやすいようにタグ付けされた情報をロボット作業関連情報記憶部42に記憶することができる。このようなタスク識別子の設定により、例えば、失敗がどのサブタスクにおいて発生したかの把握の容易化、及び、サブタスク毎の学習の容易化が期待できる。
 (8)ロボットコントローラの制御
 次に、各タスク実行システム50においてロボットコントローラ1が実行するロボット5の制御について説明する。以下に述べるように、ロボットコントローラ1は、時相論理に基づくロボット5の動作計画を行う。
 (8-1)機能ブロック
 図7は、ロボットコントローラ1のプロセッサ11の機能的な構成を示す機能ブロックの一例である。プロセッサ11は、機能的には、抽象状態設定部71と、目標論理式生成部72と、タイムステップ論理式生成部73と、抽象モデル生成部74と、制御入力生成部75と、サブタスクシーケンス生成部76と、を有する。
 抽象状態設定部71は、計測装置7から供給される計測信号と、目的タスクの実行を指示する指示信号D1と、抽象状態指定情報I1と、物体モデル情報I6と、に基づき、作業空間内の抽象状態を設定する。この場合、抽象状態設定部71は、目的タスクを実行する際に考慮する必要がある作業空間内の物体を認識し、当該物体に関する認識結果Imを生成する。そして、抽象状態設定部71は、認識結果Imに基づいて、目的タスクを実行する際に考慮する必要がある各抽象状態に対し、論理式で表すための命題を定義する。抽象状態設定部71は、指示信号D1が供給された場合、設定した抽象状態を表す情報(「抽象状態設定情報IS」とも呼ぶ。)を、目標論理式生成部72に供給する。
 目標論理式生成部72は、抽象状態設定情報ISに基づき、指示信号D1により指定された目的タスクを、最終的な達成状態を表す時相論理の論理式(「目標論理式Ltag」とも呼ぶ。)に変換する。この場合、目標論理式生成部72は、アプリケーション情報記憶部41から制約条件情報I2を参照することで、目的タスクの実行において満たすべき制約条件を、目標論理式Ltagに付加する。そして、目標論理式生成部72は、生成した目標論理式Ltagを、タイムステップ論理式生成部73に供給する。
 タイムステップ論理式生成部73は、目標論理式生成部72から供給された目標論理式Ltagを、各タイムステップでの状態を表した論理式(「タイムステップ論理式Lts」とも呼ぶ。)に変換する。そして、タイムステップ論理式生成部73は、生成したタイムステップ論理式Ltsを、制御入力生成部75に供給する。
 抽象モデル生成部74は、アプリケーション情報記憶部41が記憶する抽象モデル情報I5と、抽象状態設定部71から供給される認識結果Imとに基づき、作業空間における現実のダイナミクスを抽象化した抽象モデル「Σ」を生成する。この場合、抽象モデル生成部74は、対象のダイナミクスを連続ダイナミクスと離散ダイナミクスとが混在したハイブリッドシステムとみなし、ハイブリッドシステムに基づく抽象モデルΣを生成する。抽象モデルΣの生成方法については後述する。抽象モデル生成部74は、生成した抽象モデルΣを、制御入力生成部75へ供給する。
 制御入力生成部75は、タイムステップ論理式生成部73から供給されるタイムステップ論理式Ltsと、抽象モデル生成部74から供給される抽象モデルΣとを満たし、評価関数(たとえば、ロボットによって消費されるエネルギー量を表す関数)を最適化するタイムステップ毎のロボット5への制御入力を決定する。そして、制御入力生成部75は、ロボット5へのタイムステップ毎の制御入力を示す情報(「制御入力情報Icn」とも呼ぶ。)を、サブタスクシーケンス生成部76へ供給する。
 サブタスクシーケンス生成部76は、制御入力生成部75から供給される制御入力情報Icnと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクのシーケンスであるサブタスクシーケンスSrを生成し、サブタスクシーケンスSrをロボット5へ供給する。
 (8-2)抽象状態設定部
 まず、抽象状態設定部71は、物体モデル情報I6を参照し、作業空間の環境を認識する技術(画像処理技術、画像認識技術、音声認識技術、RFID(Radio Frequency Identifier)を用いる技術等)により計測信号を解析することで、認識結果Imを生成する。認識結果Imには、作業空間内の物体の種類、位置、及び姿勢などの情報が含まれている。また、作業空間内の物体は、例えば、ロボット5、ロボット5が取り扱う工具又は部品などの対象物、障害物及び他作業体(ロボット5以外に作業を行う人又はその他の物体)などである。
 次に、抽象状態設定部71は、認識結果Imと、アプリケーション情報記憶部41から取得した抽象状態指定情報I1とに基づき、作業空間内の抽象状態を設定する。この場合、まず、抽象状態設定部71は、抽象状態指定情報I1を参照し、作業空間内において設定すべき抽象状態を認識する。なお、作業空間内において設定すべき抽象状態は、目的タスクの種類によって異なる。よって、目的タスクの種類毎に設定すべき抽象状態が抽象状態指定情報I1に規定されている場合には、抽象状態設定部71は、指示信号D1により指定された目的タスクに対応する抽象状態指定情報I1を参照し、設定すべき抽象状態を認識する。
 図8は、ピックアンドプレイスを目的タスクとした場合の作業空間の俯瞰図を示す。図8に示す作業空間には、2つのロボットアーム52a、52bと、4つの対象物61(61a~61d)と、障害物62と、対象物61の目的地である領域Gとが存在している。
 この場合、まず、抽象状態設定部71は、対象物61の状態、障害物62の存在範囲、ロボット5の状態、領域Gの存在範囲等を認識する。
 ここでは、抽象状態設定部71は、対象物61a~61dの各々の中心の位置ベクトル「x」~「x」を、対象物61a~61dの位置として認識する。また、抽象状態設定部71は、対象物を把持するロボットハンド53aの位置ベクトル「xr1」と、ロボットハンド53bの位置ベクトル「xr2」とを、ロボットアーム52aとロボットアーム52bの位置として認識する。
 同様に、抽象状態設定部71は、対象物61a~61dの姿勢(図8の例では対象物が球状のため不要)、障害物62の存在範囲、領域Gの存在範囲等を認識する。なお、抽象状態設定部71は、例えば、障害物62を直方体とみなし、領域Gを矩形とみなす場合には、障害物62及び領域Gの各頂点の位置ベクトルを認識する。
 また、抽象状態設定部71は、抽象状態指定情報I1を参照することで、目的タスクにおいて定義すべき抽象状態を決定する。この場合、抽象状態設定部71は、作業空間内に存在する物体に関する認識結果Im(例えば物体の種類毎の個数)と、抽象状態指定情報I1とに基づき、抽象状態を示す命題を定める。
 図8の例では、抽象状態設定部71は、認識結果Imにより特定される対象物61a~61dに対し、夫々識別ラベル「1」~「4」を付す。また、抽象状態設定部71は、対象物「i」(i=1~4)が最終的に載置されるべき目標地点である領域G内に存在するという命題「g」を定義する。また、抽象状態設定部71は、障害物62に対して識別ラベル「O」を付し、対象物iが障害物Oに干渉しているという命題「o」を定義する。さらに、抽象状態設定部71は、ロボットアーム52同士が干渉するという命題「h」を定義する。なお、抽象状態設定部71は、対象物「i」が作業テーブル(初期状態で対象物及び障害物が存在するテーブル)内に存在するという命題「v」、作業テーブル及び領域G以外の作業外領域に対象物が存在するという命題「w」などをさらに定めてもよい。作業外領域は、例えば、対象物が作業テーブルから落下した場合に対象物が存在する領域(床面等)である。
 このように、抽象状態設定部71は、抽象状態指定情報I1を参照することで、定義すべき抽象状態を認識し、当該抽象状態を表す命題(上述の例ではg、o、h等)を、対象物61の数、ロボットアーム52の数、障害物62の数、ロボット5の数等に応じてそれぞれ定義する。そして、抽象状態設定部71は、抽象状態を表す命題を示す情報を、抽象状態設定情報ISとして目標論理式生成部72に供給する。
 (8-3)目標論理式生成部
 まず、目標論理式生成部72は、指示信号D1により指定された目的タスクを、時相論理を用いた論理式に変換する。
 例えば、図8の例において、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクが与えられたとする。この場合、目標論理式生成部72は、目的タスクを線形論理式(LTL:Linear Temporal Logic)の「eventually」に相当する演算子「◇」と、抽象状態設定部71により定義された命題「g」と用いて、論理式「◇g」を生成する。また、目標論理式生成部72は、演算子「◇」以外の任意の時相論理の演算子(論理積「∧」、論理和「∨」、否定「¬」、論理包含「⇒」、always「□」、next「○」、until「U」等)を用いて論理式を表現してもよい。また、線形時相論理に限らず、MTL(Metric Temporal Logic)やSTL(Signal Temporal Logic)などの任意の時相論理を用いて論理式を表現してもよい。
 なお、指示信号D1は、自然言語により目的タスクを指定する情報であってもよい。自然言語で表されたタスクを論理式に変換する方法は、種々の技術が存在する。
 次に、目標論理式生成部72は、制約条件情報I2が示す制約条件を、目的タスクを示す論理式に付加することで、目標論理式Ltagを生成する。
 例えば、図8に示すピックアンドプレイスに対応する制約条件として、「ロボットアーム52同士が常に干渉しない」、「対象物iは障害物Oに常に干渉しない」の2つが制約条件情報I2に含まれていた場合、目標論理式生成部72は、これらの制約条件を論理式に変換する。具体的には、目標論理式生成部72は、図8の説明において抽象状態設定部71により定義された命題「o」及び命題「h」を用いて、上述の2つの制約条件を、夫々以下の論理式に変換する。
       □¬h
       ∧□¬o
 よって、この場合、目標論理式生成部72は、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクに対応する論理式「◇g」に、これらの制約条件の論理式を付加することで、以下の目標論理式Ltagを生成する。
       (◇g)∧(□¬h)∧(∧□¬o
 なお、実際には、ピックアンドプレイスに対応する制約条件は、上述した2つに限られず、「ロボットアーム52が障害物Oに干渉しない」、「複数のロボットアーム52が同じ対象物を掴まない」、「対象物同士が接触しない」などの制約条件が存在する。このような制約条件についても同様に、制約条件情報I2に記憶され、目標論理式Ltagに反映される。
 (8-4)タイムステップ論理式生成部
 タイムステップ論理式生成部73は、目的タスクを完了するタイムステップ数(「目標タイムステップ数」とも呼ぶ。)を定め、目標タイムステップ数で目標論理式Ltagを満たすような各タイムステップでの状態を表す命題の組み合わせを定める。この組み合わせは、通常複数存在するため、タイムステップ論理式生成部73は、これらの組み合わせを論理和により結合した論理式を、タイムステップ論理式Ltsとして生成する。上述の組み合わせは、ロボット5に命令する動作のシーケンスを表す論理式の候補となり、以後では「候補φ」とも呼ぶ。
 ここで、図8の説明において例示した「最終的に対象物(i=2)が領域Gに存在する」という目的タスクが設定された場合のタイムステップ論理式生成部73の処理の具体例について説明する。
 この場合、以下の目標論理式Ltagが目標論理式生成部72からタイムステップ論理式生成部73へ供給される。
  (◇g)∧(□¬h)∧(∧□¬o
 この場合、タイムステップ論理式生成部73は、命題「g」をタイムステップの概念を含むように拡張した命題「gi,k」を用いる。ここで、命題「gi,k」は、「タイムステップkで対象物iが領域Gに存在する」という命題である。ここで、目標タイムステップ数を「3」とした場合、目標論理式Ltagは、以下のように書き換えられる。
  (◇g2,3)∧(∧k=1,2,3□¬h)∧(∧i,k=1,2,3□¬oi,k
 また、◇g2,3は、以下の式に示すように書き換えることが可能である。
Figure JPOXMLDOC01-appb-M000001
 このとき、上述した目標論理式Ltagは、以下に示す4つの候補「φ」~「φ」の論理和(φ∨φ∨φ∨φ)により表される。
Figure JPOXMLDOC01-appb-M000002
 よって、タイムステップ論理式生成部73は、4つの候補φ~φの論理和をタイムステップ論理式Ltsとして定める。この場合、タイムステップ論理式Ltsは、4つの候補φ~φの少なくともいずれかが真となる場合に真となる。
 次に、目標タイムステップ数の設定方法について補足説明する。
 タイムステップ論理式生成部73は、例えば、指示装置2から供給される指示信号D1により指定された作業の見込み時間に基づき、目標タイムステップ数を決定する。この場合、タイムステップ論理式生成部73は、メモリ12又は記憶装置4に記憶された、1タイムステップ当たりの時間幅の情報に基づき、上述の見込み時間から目標タイムステップ数を算出する。他の例では、タイムステップ論理式生成部73は、目的タスクの種類毎に適した目標タイムステップ数を対応付けた情報を予めメモリ12又は記憶装置4に記憶しておき、当該情報を参照することで、実行すべき目的タスクの種類に応じた目標タイムステップ数を決定する。
 好適には、タイムステップ論理式生成部73は、目標タイムステップ数を所定の初期値に設定する。そして、タイムステップ論理式生成部73は、制御入力生成部75が制御入力を決定できるタイムステップ論理式Ltsが生成されるまで、目標タイムステップ数を徐々に増加させる。この場合、タイムステップ論理式生成部73は、設定した目標タイムステップ数により制御入力生成部75が最適化処理を行った結果、最適解を導くことができなかった場合、目標タイムステップ数を所定数(1以上の整数)だけ加算する。
 このとき、タイムステップ論理式生成部73は、目標タイムステップ数の初期値を、ユーザが見込む目的タスクの作業時間に相当するタイムステップ数よりも小さい値に設定するとよい。これにより、タイムステップ論理式生成部73は、不必要に大きな目標タイムステップ数を設定することを好適に抑制する。
 (8-5)抽象モデル生成部
 抽象モデル生成部74は、抽象モデル情報I5と、認識結果Imとに基づき、抽象モデルΣを生成する。ここで、抽象モデル情報I5には、目的タスクの種類毎に、抽象モデルΣの生成に必要な情報が記録されている。例えば、目的タスクがピックアンドプレイスの場合には、対象物の位置や数、対象物を置く領域の位置、ロボット5の台数(又はロボットアーム52の数)等を特定しない汎用的な形式の抽象モデルが抽象モデル情報I5に記録されている。そして、抽象モデル生成部74は、抽象モデル情報I5に記録された、ロボット5のダイナミクスを含む汎用的な形式の抽象モデルに対し、認識結果Imを反映することで、抽象モデルΣを生成する。これにより、抽象モデルΣは、作業空間内の物体の状態と、ロボット5のダイナミクスとが抽象的に表されたモデルとなる。作業空間内の物体の状態は、ピックアンドプレイスの場合には、対象物の位置及び数、対象物を置く領域の位置、ロボット5の台数等を示す。
 なお、他作業体が存在する場合、他作業体の抽象化されたダイナミクスに関する情報が抽象モデル情報I5に含まれてもよい。この場合、抽象モデルΣは、作業空間内の物体の状態と、ロボット5のダイナミクスと、他作業体のダイナミクスとが抽象的に表されたモデルとなる。
 ここで、ロボット5による目的タスクの作業時においては、作業空間内のダイナミクスが頻繁に切り替わる。例えば、ピックアンドプレイスでは、ロボットアーム52が対象物iを掴んでいる場合には、当該対象物iを動かすことができるが、ロボットアーム52が対象物iを掴んでない場合には、当該対象物iを動かすことができない。
 以上を勘案し、本実施形態においては、ピックアンドプレイスの場合、対象物iを掴むという動作を論理変数「δ」により抽象表現する。この場合、例えば、抽象モデル生成部74は、図8に示す作業空間に対して設定すべき抽象モデルΣを、以下の式(1)により定めることができる。
Figure JPOXMLDOC01-appb-M000003
 ここで、「u」は、ロボットハンドj(「j=1」はロボットハンド53a、「j=2」はロボットハンド53b)を制御するための制御入力を示し、「I」は単位行列を示し、「0」は零行例を示す。なお、制御入力は、ここでは、一例として速度を想定しているが、加速度であってもよい。また、「δj,i」は、ロボットハンドjが対象物iを掴んでいる場合に「1」であり、その他の場合に「0」である論理変数である。また、「xr1」、「xr2」は、ロボットハンドj(j=1、2)の位置ベクトル、「x」~「x」は、対象物i(i=1~4)の位置ベクトルを示す。また、「h(x)」は、対象物を掴める程度に対象物の近傍にロボットハンドが存在する場合に「h(x)≧0」となる変数であり、論理変数δとの間で以下の関係を満たす。
       δ=1 ⇔ h(x)≧0
 この式では、対象物を掴める程度に対象物の近傍にロボットハンドが存在する場合には、ロボットハンドが対象物を掴んでいるとみなし、論理変数δを1に設定している。
 ここで、式(1)は、タイムステップkでの物体の状態とタイムステップk+1での物体の状態との関係を示した差分方程式である。そして、上記の式(1)では、把持の状態が離散値である論理変数により表わされ、物体の移動は連続値により表わされているため、式(1)はハイブリッドシステムを示している。
 式(1)では、ロボット5全体の詳細なダイナミクスではなく、対象物を実際に把持するロボット5の手先であるロボットハンドのダイナミクスのみを考慮している。これにより、制御入力生成部75による最適化処理の計算量を好適に削減することができる。
 また、抽象モデル情報I5には、ダイナミクスが切り替わる動作(ピックアンドプレイスの場合には対象物iを掴むという動作)に対応する論理変数、及び、認識結果Imから式(1)の差分方程式を導出するための情報が記録されている。よって、抽象モデル生成部74は、対象物の位置や数、対象物を置く領域(図8では領域G)、ロボット5の台数等が変動する場合であっても、抽象モデル情報I5と認識結果Imとに基づき、対象の作業空間の環境に即した抽象モデルΣを決定することができる。
 なお、抽象モデル生成部74は、式(1)に示されるモデルに代えて、混合論理動的(MLD:Mixed Logical Dynamical)システムまたはペトリネットやオートマトンなどを組み合わせたハイブリッドシステムのモデルを生成してもよい。
 (8-6)制御入力生成部
 制御入力生成部75は、タイムステップ論理式生成部73から供給されるタイムステップ論理式Ltsと、抽象モデル生成部74から供給される抽象モデルΣとに基づき、最適となるタイムステップ毎のロボット5に対する制御入力を決定する。この場合、制御入力生成部75は、目的タスクに対する評価関数を定義し、抽象モデルΣ及びタイムステップ論理式Ltsを制約条件として評価関数を最小化する最適化問題を解く。評価関数は、例えば、目的タスクの種類毎に予め定められ、メモリ12又は記憶装置4に記憶されている。
 例えば、ピックアンドプレイスを目的タスクとした場合、制御入力生成部75は、運ぶ対象となる対象物と当該対象物を運ぶ目標地点との距離「d」と制御入力「u」とが最小となる(即ちロボット5が費やすエネルギーを最小化する)ように評価関数を定める。上述の距離dは、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクの場合には、対象物(i=2)と領域Gとのタイムステップkでの距離に相当する。
 この場合、制御入力生成部75は、全タイムステップにおける距離dのノルムの2乗と制御入力uのノルムの2乗との和を評価関数として定める。そして、制御入力生成部75は、抽象モデルΣ及びタイムステップ論理式Lts(即ち候補φの論理和)を制約条件とする以下の式(2)に示す制約付き混合整数最適化問題を解く。
Figure JPOXMLDOC01-appb-M000004
 ここで、「T」は、最適化の対象となるタイムステップ数であり、目標タイムステップ数であってもよく、後述するように、目標タイムステップ数よりも小さい所定数であってもよい。この場合、好適には、制御入力生成部75は、論理変数を連続値に近似する(連続緩和問題とする)。これにより、制御入力生成部75は、計算量を好適に低減することができる。なお、線形論理式(LTL)に代えてSTLを採用した場合には、非線形最適化問題として記述することが可能である。
 また、制御入力生成部75は、目標タイムステップ数が長い場合(例えば所定の閾値より大きい場合)、最適化に用いるタイムステップ数を、目標タイムステップ数より小さい値(例えば上述の閾値)に設定してもよい。この場合、制御入力生成部75は、例えば、所定のタイムステップ数が経過する毎に、上述の最適化問題を解くことで、逐次的に制御入力uを決定する。
 好適には、制御入力生成部75は、目的タスクの達成状態に対する中間状態に相当する所定のイベント毎に、上述の最適化問題を解き、使用すべき制御入力uを決定してもよい。この場合、制御入力生成部75は、次のイベント発生までのタイムステップ数を、最適化に用いるタイムステップ数に設定する。上述のイベントは、例えば、作業空間におけるダイナミクスが切り替わる事象である。例えば、ピックアンドプレイスを目的タスクとした場合には、ロボット5が対象物を掴む、ロボット5が運ぶべき複数の対象物のうちの1つの対象物を目的地点へ運び終える、などがイベントとして定められる。イベントは、例えば、目的タスクの種類毎に予め定められており、目的タスクの種類毎にイベントを特定する情報が記憶装置4に記憶されている。
 (8-7)サブタスクシーケンス生成部
 サブタスクシーケンス生成部76は、制御入力生成部75から供給される制御入力情報Icnと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクシーケンスSrを生成する。この場合、サブタスクシーケンス生成部76は、サブタスク情報I4を参照することで、ロボット5が受け付け可能なサブタスクを認識し、制御入力情報Icnが示すタイムステップ毎の制御入力をサブタスクに変換する。
 例えば、サブタスク情報I4には、ピックアンドプレイスを目的タスクとする場合にロボット5が受け付け可能なサブタスクとして、ロボットハンドの移動(リーチング)とロボットハンドの把持(グラスピング)の2つのサブタスクを示す関数が定義されている。この場合、リーチングを表す関数「Move」は、例えば、当該関数実行前のロボット5の初期状態、当該関数実行後のロボット5の最終状態、及び当該関数の実行に要する所要時間をそれぞれ引数とする関数である。また、グラスピングを表す関数「Grasp」は、例えば、当該関数実行前のロボット5の状態、及び当該関数実行前の把持対象の対象物の状態、論理変数δをそれぞれ引数とする関数である。ここで、関数「Grasp」は、論理変数δが「1」のときに掴む動作を行うこと表し、論理変数δが「0」のときに放す動作を行うこと表す。この場合、サブタスクシーケンス生成部76は、関数「Move」を、制御入力情報Icnが示すタイムステップ毎の制御入力により定まるロボットハンドの軌道に基づき決定し、関数「Grasp」を、制御入力情報Icnが示すタイムステップ毎の論理変数δの遷移に基づき決定する。
 そして、サブタスクシーケンス生成部76は、関数「Move」と関数「Grasp」とにより構成されるサブタスクシーケンスSrを生成し、当該サブタスクシーケンスSrをロボット5に供給する。例えば、目的タスクが「最終的に対象物(i=2)が領域Gに存在する」の場合、サブタスクシーケンス生成部76は、対象物(i=2)に最も近いロボットハンドに対し、関数「Move」、関数「Grasp」、関数「Move」、関数「Grasp」のサブタスクシーケンスSrを生成する。この場合、対象物(i=2)に最も近いロボットハンドは、1回目の関数「Move」により対象物(i=2)の位置まで移動し、1回目の関数「Grasp」により対象物(i=2)を把持し、2回目の関数「Move」により領域Gまで移動し、2回目の関数「Grasp」により対象物(i=2)を領域Gに載置する。
 (9)タスク指定画面
 次に、指示装置2が目的タスクに関する指示を作業者から受け付ける場合に表示する画面の一例について説明する。
 図9は、指示装置2が表示する目的タスクを指定するタスク指定画面の表示例を示す。指示装置2は、例えば、タスク実行システム50のリストから作業者が選択したタスク実行システム50のロボットコントローラ1から、所定の表示信号を受信することで、図9に示すタスク指定画面を表示している。図9に示すタスク指定画面は、主に、タスク種類指定欄25と、作業空間表示欄26と、各種ボタン28(28a、28b)とを有する。
 指示装置2は、タスク種類指定欄25において、目的タスクの種類を指定する入力を受け付ける。ここでは、一例として、タスク種類指定欄25はプルダウンメニュー形式の入力欄であり、指示装置2は、受付可能な目的タスクの種類の候補を、タスク種類指定欄25において選択可能に一覧表示する。ここでは、指示装置2には、ピックアンドプレイスが目的タスクの種類として指定されている。なお、目的タスクはピックアンドプレイスに限らず、ねじ回しを伴うタスク、移動型ロボットが物を移動させるタスクなど種々のタスクであってもよい。
 また、指示装置2は、作業空間表示欄26において、計測装置7が作業空間内を撮像した画像(作業空間画像)を表示し、タスク種類指定欄25において指定された目的タスクの実行に必要な指定を受け付ける。図9の例では、指示装置2は、作業空間表示欄26上で対象物と目的地とを夫々指定する入力を受け付ける。ここでは、一例として、指示装置2は、対象物を指定したマーク27a~27dを実線により表示し、目的地を指定したマーク27eを破線により表示している。そして、指示装置2は、対象物決定ボタン28aが選択されたことを検知した場合、ユーザが描いたマーク27a~27dの位置情報を、対象物の位置を特定する情報として認識する。また、指示装置2は、さらに目的地決定ボタン28bが選択されたことを検知した場合、対象物決定ボタン28aの選択後にユーザが描いたマーク27eの位置情報を、目的地を特定する情報として認識する。そして、指示装置2は、これらの対象物及び目的地を特定する情報(ここでは作業空間画像上での各マークの位置情報)を、指示信号D1として対象のタスク実行システム50に属するロボットコントローラ1に供給する。
 このように、図9に示されるタスク指定画面によれば、指示装置2は、目的タスクの種類の指定及び目的タスクに関連する物体の指定に関するユーザ入力を好適に受け付け、目的タスクを指定する指示信号D1を好適にロボットコントローラ1に供給することができる。
 なお、指示装置2は、対象物及び目的地を丸印で囲む入力を受け付ける代わりに、タッチ操作又はクリック操作により対象物及び目的地を構成する一部の画素を夫々指定する入力を受け付けてもよい。この場合、指示装置2は、指定された各画素の位置情報を、対象物及び目的地を夫々特定する情報とみなし、指示信号D1としてロボットコントローラ1に供給する。また、指示装置2は、計測装置7が生成した作業空間画像を作業空間表示欄26に表示する代わりに、作業空間内の環境を再現したCAD画像を作業空間表示欄26に表示してもよい。この場合、ロボットコントローラ1は、抽象状態設定部71が生成した認識結果Imと、対象物等に関するCADデータを記録した物体モデル情報I6とに基づき、作業空間内の環境を再現したCAD画像を表示する表示信号を指示装置2に送信する。
 (10)処理フロー
 図10は、第1実施形態において情報収集装置3が実行するロボット作業関連情報D2の受信及び蓄積に関する処理の概要を示すフローチャートの一例である。情報収集装置3は、図10に示すフローチャートの処理を、指示装置2により目的タスクが指定されたタスク実行システム50の各々を対象として実行する。
 まず、情報収集装置3の情報取得部35は、ロボット構成情報D21を取得する(ステップS101)。この場合、情報取得部35は、少なくともロボット構成情報D21を含んだロボット作業関連情報D2を対象のタスク実行システム50から受信することで、ロボット構成情報D21を取得する。その後、情報取得部35は、対象のタスク実行システム50からロボット構成情報D21以外のロボット作業関連情報D2を受信する(ステップS102)。
 次に、情報取得部35は、収集条件が満たされるか否かの判定を行う(ステップS103)。この場合、情報取得部35は、対象のタスク実行システム50から送信されるロボット作業関連情報D2について、設定した収集条件が満たされるか否か判定する。この収集条件は、ステップS101で取得したロボット構成情報D21が示すロボット5の構成に関する条件であってもよく、ロボット5の構成以外の条件(例えば日時に関する条件)であってもよい。
 そして、タスク識別子設定部36は、ステップS103での収集条件の判定において、収集条件が満たされたと判定した場合(ステップS104;Yes)、ステップS103で受信したロボット作業関連情報D2に対してタスク識別子を設定し、タスク識別子を設定したロボット作業関連情報D2をロボット作業関連情報記憶部42に記憶する(ステップS105)。この場合、タスク識別子設定部36は、ロボット作業関連情報D2を日時情報に基づきサブタスクの実行期間毎に区分けし、対応するサブタスクを少なくとも表すタスク識別子を、区分けしたロボット作業関連情報D2の各々に対して設定する。
 一方、ステップS102での収集条件の判定において、収集条件が満たされなかったと判定した場合(ステップS104;No)、情報取得部35は、受信したロボット作業関連情報D2を破棄する、又は、タスク識別子の設定を行うことなく受信したロボット作業関連情報D2をそのままロボット作業関連情報記憶部42に記憶する(ステップS106)。
 次に、情報収集装置3は、対象のタスク実行システム50において目的タスクが完了したか否か判定する(ステップS107)。この場合、例えば、情報収集装置3は、ロボット作業関連情報D2を所定時間長以上受信しなくなった場合、又は、目的タスクが完了した旨の情報をタスク実行システム50又は指示装置2から受信した場合等に、対象のタスク実行システム50において目的タスクが完了したと判定する。そして、情報収集装置3は、目的タスクが完了したと判定した場合(ステップS107;Yes)、フローチャートの処理を終了する。一方、目的タスクが完了していないと判定した場合(ステップS107;No)、情報収集装置3は、ステップS102へ処理を戻し、引き続きロボット作業関連情報D2の受信及び蓄積に関する処理を行う。
 (11)変形例
 次に、第1実施形態の変形例について説明する。以下の変形例は任意に組み合わせて上記の第1実施形態に適用してもよい。
 (第1変形例)
 情報収集装置3の一部の機能が各タスク実行システム50に備わってもよい。例えば、各タスク実行システム50のロボットコントローラ1は、情報取得部35の一部の機能に相当する処理を実行してもよい。
 この場合、各タスク実行システム50のロボットコントローラ1は、対象のタスク実行システム50において生成された各種情報をロボット5及び計測装置7等から収集してロボット作業関連情報D2を生成する。また、ロボットコントローラ1は、指示装置2又は情報収集装置3等から供給された又はメモリ12に予め記憶された収集条件が満たされるか否か判定し、収集条件が満たされると判定した場合に限り、ロボット作業関連情報D2を情報収集装置3に送信する。この態様においても、情報収集装置3は、ロボット作業関連情報D2をタスク識別子によりタグ付けした情報を蓄積してアプリケーション情報の更新等に好適に使用することができる。
 また、いずれかのロボットコントローラ1は、情報収集装置3として機能し、図1に示すロボットコントローラ1の処理と情報収集装置3の処理との両方を実行してもよい。このように、ロボット統括システム100は、マスター/スレーブ方式により実現されてもよい。さらに別の例では、各タスク実行システム50のロボットコントローラ1が夫々情報収集装置3として機能してもよい。この場合、ロボットコントローラ1は、自身が属するタスク実行システム50内で生成された作業関連情報の収集、タスク識別子の設定、及びタスク識別子が設定された作業関連情報の記憶などを行う。
 (第2変形例)
 図7に示すロボットコントローラ1のブロック構成は一例であり、種々の変更がなされてもよい。
 例えば、ロボット5に命令する動作のシーケンスの候補φの情報が記憶装置4に予め記憶され、ロボットコントローラ1は、当該情報に基づき、制御入力生成部75の最適化処理を実行する。これにより、ロボットコントローラ1は、最適な候補φの選定とロボット5の制御入力の決定を行う。この場合、ロボットコントローラ1は、サブタスクシーケンスSrの生成において、抽象状態設定部71、目標論理式生成部72及びタイムステップ論理式生成部73に相当する機能を有しなくともよい。このように、図7に示すロボットコントローラ1の一部の機能ブロックの実行結果に関する情報が予めアプリケーション情報記憶部41に記憶されていてもよい。
 他の例では、アプリケーション情報には、目的タスクに対応するサブタスクシーケンスSrを設計するためのフローチャートなどの設計情報が予め含まれており、ロボットコントローラ1は、当該設計情報を参照することで、サブタスクシーケンスSrを生成してもよい。なお、予め設計されたタスクシーケンスに基づきタスクを実行する具体例については、例えば特開2017-39170号に開示されている。
 <第2実施形態>
 図11は、第2実施形態における情報収集装置3Xの概略構成図を示す。情報収集装置3Xは、主に、情報取得手段35Xと、タスク識別子設定手段36Xとを有する。なお、情報収集装置3Xは、複数の装置から構成されてもよい。
 情報取得手段35Xは、ロボットの作業に関連する作業関連情報を取得する。情報取得手段35Xは、例えば、第1実施形態における情報取得部35とすることができる。
 タスク識別子設定手段36Xは、作業関連情報に対し、ロボットが実行するタスクの識別子を設定する。タスクの識別子が設定された作業関連情報は、情報収集装置3Xが備えるメモリ又は外部メモリに記憶される。タスク識別子設定手段36Xは、例えば、第1実施形態におけるタスク識別子設定部36とすることができる。
 図12は、第2実施形態において情報収集装置3Xが実行するフローチャートの一例を示す。情報取得手段35Xは、ロボットの作業に関連する作業関連情報を取得する(ステップS201)。タスク識別子設定手段36Xは、作業関連情報に対し、ロボットが実行するタスクの識別子を設定する(ステップS202)。
 第2実施形態によれば、情報収集装置3Xは、ロボットの作業に関連する作業関連情報に対して、ロボットが実行するタスクの識別子を設定する。これにより、タスク毎の作業関連情報の分析・学習等を円滑化することができる。
 なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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 ロボットコントローラ
 2 指示装置
 3、3X 情報収集装置
 5 ロボット
 7 計測装置
 41 アプリケーション情報記憶部
 42 ロボット作業関連情報記憶部
 43 更新アプリケーション情報記憶部
 50 タスク実行システム
 100 ロボット統括システム

Claims (10)

  1.  ロボットの作業に関連する作業関連情報を取得する情報取得手段と、
     前記作業関連情報に対し、前記ロボットが実行するタスクの識別子を設定するタスク識別子設定手段と、
    を有する情報収集装置。
  2.  前記識別子は、前記ロボットが受付可能な単位のタスクであるサブタスクを少なくとも識別する情報であり、
     前記タスク識別子設定手段は、前記サブタスクの各々の実行期間に基づき区分けした前記作業関連情報の各々に対し、対応するサブタスクを表す前記識別子を設定する、請求項1に記載の情報収集装置。
  3.  前記ロボットは、前記ロボットが実行すべき目的となる目的タスクを時相論理により表した論理式に基づき生成された前記サブタスクのシーケンスを実行する、請求項2に記載の情報収集装置。
  4.  前記識別子は、前記サブタスクと、前記ロボットが実行すべき目的となる目的タスクとを識別する情報であり、
     前記タスク識別子設定手段は、前記サブタスクの各々の実行期間に基づき区分けした前記作業関連情報の各々に対し、対応するサブタスク及び目的タスクを表す前記識別子を設定する、請求項2または3に記載の情報収集装置。
  5.  前記情報取得手段は、前記作業関連情報の収集に関する判定条件である収集条件が満たされるか否か判定し、
     前記タスク識別子設定手段は、当該収集条件が満たされる場合、作業関連情報に対して前記識別子を設定する、請求項1~4のいずれか一項に記載の情報収集装置。
  6.  前記情報取得手段は、前記収集条件が満たされない場合、前記作業関連情報を破棄または前記識別子を設定せずに記憶する、請求項5に記載の情報収集装置。
  7.  前記ロボットは、複数の環境の各々において設けられた1又は複数のロボットであり、
     前記複数の環境の各々において前記1又は複数のロボットを含むタスク実行システムが存在し、
     前記情報取得手段は、前記タスク実行システムの各々から前記作業関連情報を受信し、
     前記タスク識別子設定手段は、前記タスク実行システムの各々から受信する前記作業関連情報に対し、対応する前記1又は複数のロボットが実行するタスクを表す前記識別子を設定する、請求項1~6のいずれか一項に記載の情報収集装置。
  8.  前記情報取得手段は、前記ロボットの構成に関するロボット構成情報を取得する、請求項1~7のいずれか一項に記載の情報収集装置。
  9.  コンピュータが、
     ロボットの作業に関連する作業関連情報を取得し、
     前記作業関連情報に対し、前記ロボットが実行するタスクの識別子を設定する、
    情報収集方法。
  10.  ロボットの作業に関連する作業関連情報を取得し、
     前記作業関連情報に対し、前記ロボットが実行するタスクの識別子を設定する処理をコンピュータに実行させるプログラムが格納された記憶媒体。
PCT/JP2020/042805 2020-11-17 2020-11-17 情報収集装置、情報収集方法及び記憶媒体 WO2022107207A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2022563274A JP7468694B2 (ja) 2020-11-17 2020-11-17 情報収集装置、情報収集方法及びプログラム
US18/034,618 US20230321828A1 (en) 2020-11-17 2020-11-17 Information collecting device, information collecting method, and storage medium
PCT/JP2020/042805 WO2022107207A1 (ja) 2020-11-17 2020-11-17 情報収集装置、情報収集方法及び記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/042805 WO2022107207A1 (ja) 2020-11-17 2020-11-17 情報収集装置、情報収集方法及び記憶媒体

Publications (1)

Publication Number Publication Date
WO2022107207A1 true WO2022107207A1 (ja) 2022-05-27

Family

ID=81708481

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/042805 WO2022107207A1 (ja) 2020-11-17 2020-11-17 情報収集装置、情報収集方法及び記憶媒体

Country Status (3)

Country Link
US (1) US20230321828A1 (ja)
JP (1) JP7468694B2 (ja)
WO (1) WO2022107207A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008149942A1 (ja) * 2007-06-05 2008-12-11 Asa Co., Ltd. 配膳装置
JP2018116325A (ja) * 2017-01-16 2018-07-26 沖電気工業株式会社 異常検知システム、異常検知装置、異常検知方法およびプログラム
JP2019200792A (ja) * 2018-05-15 2019-11-21 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツングRobert Bosch Gmbh マルチエージェントシステムにおけるロボットの動作方法、ロボット及びマルチエージェントシステム
US20200023514A1 (en) * 2018-04-19 2020-01-23 Brown University Sequence-to-Sequence Language Grounding of Non-Markovian Task Specifications
JP2020046764A (ja) * 2018-09-14 2020-03-26 株式会社安川電機 動作データ収集システム、動作データ収集方法、及びプログラム
JP2020113262A (ja) * 2019-12-05 2020-07-27 株式会社エクサウィザーズ 学習済モデル生成装置、ロボット制御装置、及び、プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7184849B2 (en) 2004-05-25 2007-02-27 Asml Netherlands B.V. Method of planning tasks in a machine, method of controlling a machine, supervisory machine control system, lithographic apparatus, lithographic processing cell and computer program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008149942A1 (ja) * 2007-06-05 2008-12-11 Asa Co., Ltd. 配膳装置
JP2018116325A (ja) * 2017-01-16 2018-07-26 沖電気工業株式会社 異常検知システム、異常検知装置、異常検知方法およびプログラム
US20200023514A1 (en) * 2018-04-19 2020-01-23 Brown University Sequence-to-Sequence Language Grounding of Non-Markovian Task Specifications
JP2019200792A (ja) * 2018-05-15 2019-11-21 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツングRobert Bosch Gmbh マルチエージェントシステムにおけるロボットの動作方法、ロボット及びマルチエージェントシステム
JP2020046764A (ja) * 2018-09-14 2020-03-26 株式会社安川電機 動作データ収集システム、動作データ収集方法、及びプログラム
JP2020113262A (ja) * 2019-12-05 2020-07-27 株式会社エクサウィザーズ 学習済モデル生成装置、ロボット制御装置、及び、プログラム

Also Published As

Publication number Publication date
US20230321828A1 (en) 2023-10-12
JP7468694B2 (ja) 2024-04-16
JPWO2022107207A1 (ja) 2022-05-27

Similar Documents

Publication Publication Date Title
WO2022074823A1 (ja) 制御装置、制御方法及び記憶媒体
EP3843952A1 (en) Systems, apparatus, and methods for robotic learning and execution of skills
JP7264253B2 (ja) 情報処理装置、制御方法及びプログラム
JP7452619B2 (ja) 制御装置、制御方法及びプログラム
WO2022107207A1 (ja) 情報収集装置、情報収集方法及び記憶媒体
WO2022064653A1 (ja) 制御装置、制御方法及び記憶媒体
JP7343033B2 (ja) 制御装置、制御方法及びプログラム
JP7435815B2 (ja) 動作指令生成装置、動作指令生成方法及びプログラム
WO2022049756A1 (ja) 判定装置、判定方法及び記憶媒体
JP7276466B2 (ja) 情報処理装置、制御方法及びプログラム
WO2022224447A1 (ja) 制御装置、制御方法及び記憶媒体
WO2022224449A1 (ja) 制御装置、制御方法及び記憶媒体
JP7456552B2 (ja) 情報処理装置、情報処理方法及びプログラム
WO2022244060A1 (ja) 動作計画装置、動作計画方法及び記憶媒体
WO2022074827A1 (ja) 命題設定装置、命題設定方法及び記憶媒体
US20230104802A1 (en) Control device, control method and storage medium
JP7323045B2 (ja) 制御装置、制御方法及びプログラム
WO2023119350A1 (ja) 制御装置、制御システム、制御方法及び記憶媒体
JP7435814B2 (ja) 時相論理式生成装置、時相論理式生成方法及びプログラム
WO2021171352A1 (ja) 制御装置、制御方法及び記録媒体
US20240208047A1 (en) Control device, control method, and storage medium
US20240165817A1 (en) Robot management device, control method, and recording medium
WO2021171558A1 (ja) 制御装置、制御方法及び記録媒体
US20230415339A1 (en) Assistance control device, assistance device, robot control system, assistance control method, and storage medium
Mocan et al. FRAMEWORK FOR DEVELOPING A MULTIMODAL PROGRAMMING INTERFACE USED ON INDUSTRIAL ROBOTS.

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022563274

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

Country of ref document: EP

Kind code of ref document: A1