WO2022064653A1 - 制御装置、制御方法及び記憶媒体 - Google Patents

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

Info

Publication number
WO2022064653A1
WO2022064653A1 PCT/JP2020/036383 JP2020036383W WO2022064653A1 WO 2022064653 A1 WO2022064653 A1 WO 2022064653A1 JP 2020036383 W JP2020036383 W JP 2020036383W WO 2022064653 A1 WO2022064653 A1 WO 2022064653A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
control
switching
operation sequence
robot control
Prior art date
Application number
PCT/JP2020/036383
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 JP2022551062A priority Critical patent/JP7448024B2/ja
Priority to US18/026,012 priority patent/US20230356389A1/en
Priority to EP20955247.0A priority patent/EP4219091A4/en
Priority to PCT/JP2020/036383 priority patent/WO2022064653A1/ja
Publication of WO2022064653A1 publication Critical patent/WO2022064653A1/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/1602Programme controls characterised by the control system, structure, architecture
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/06Control stands, e.g. consoles, switchboards
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0084Programme-controlled manipulators comprising a plurality of manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • 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/33Director till display
    • G05B2219/33006Ama allocation manual automatic work between machine, manipulator and man
    • 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/35Nc in input of data, input till input file format
    • G05B2219/35472Mode selection
    • 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/40153Teleassistance, operator assists, controls autonomous robot

Definitions

  • the present disclosure relates to a technical field of a control device, a control method, and a storage medium for controlling the operation of a robot.
  • Patent Document 1 has an automatic mode and a collaborative mode.
  • the robot is automatically controlled according to a sequence or a program, and in the collaborative mode, the robot is manually controlled by an on-hand operation panel by a worker.
  • the system to do is disclosed.
  • Patent Document 2 discloses a system in which when a failure of motion planning (motion planning) of a robot is detected, it is determined that the task execution of the robot has failed and an operation mode is automatically selected.
  • One of the objects of the present disclosure is to provide a control device, a control method, and a storage medium capable of suitably controlling a robot in view of the above-mentioned problems.
  • One aspect of the control device is Motion sequence generation means for generating robot motion sequences, and A first robot control means that controls a first robot, which is a control of the robot based on the operation sequence, and a first robot control means. While the first robot control is being executed, the switching determination means for determining the necessity of switching to the second robot control, which is the control of the robot based on the external input, based on the operation sequence, When it is determined that the switching is necessary, the second robot control means that performs the second robot control and the second robot control means. It is a control device having.
  • the computer Generates a robot motion sequence and The first robot control, which is the control of the robot based on the operation sequence, is performed.
  • the first robot control which is the control of the robot based on the operation sequence
  • the necessity of switching to the second robot control which is the control of the robot based on the external input
  • the second robot control is performed. It is a control method.
  • One aspect of the storage medium is Generates a robot motion sequence and The first robot control, which is the control of the robot based on the operation sequence, is performed. During the execution of the first robot control, the necessity of switching to the second robot control, which is the control of the robot based on the external input, is determined based on the operation sequence. It is a storage medium in which a program for causing a computer to execute a process for performing the second robot control when it is determined that the switching is necessary is stored.
  • the robot control can be switched smoothly and the robot can be controlled appropriately.
  • the configuration of the robot control system in the first embodiment is shown.
  • the hardware configuration of the robot controller is shown.
  • An example of the data structure of application information is shown.
  • the 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.
  • the first display example of the external input support screen is shown.
  • a second display example of the external input support screen is shown.
  • the schematic block diagram of the control apparatus in 2nd Embodiment is shown. In the second embodiment, it is an example of a flowchart showing a processing procedure executed by the control device.
  • FIG. 1 shows the configuration of the robot control system 100 according to the first embodiment.
  • the robot control system 100 mainly includes a robot controller 1, an instruction device 2, a storage device 4, a robot 5, and a measurement device 7.
  • the robot controller 1 assigns the target task to a sequence for each time step (time step) of a simple task that the robot 5 can accept.
  • the robot 5 is controlled based on the converted and generated sequence.
  • the robot controller 1 performs data communication with the instruction device 2, the storage device 4, the robot 5, and the measurement device 7 via a communication network or by direct communication by wireless or wired. For example, the robot controller 1 receives an input signal "S1" from the instruction device 2 regarding the designation of the target task or the operation command of the robot 5. Further, the robot controller 1 transmits the output control signal "S2" to the instruction device 2 to cause the instruction device 2 to execute a predetermined display or sound output. Further, the robot controller 1 transmits a control signal “S3” relating to the control of the robot 5 to the robot 5. Further, the robot controller 1 receives the measurement signal "S4" from the measuring device 7.
  • the instruction device 2 is a device that receives instructions from the operator to the robot 5.
  • the instruction device 2 performs a predetermined display or sound output based on the output control signal S2 supplied from the robot controller 1, and supplies the input signal S1 generated based on the input of the operator to the robot controller 1.
  • 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 storage device 4 has an application information storage unit 41.
  • the application information storage unit 41 stores application information necessary for generating an operation sequence, which is a sequence to be executed by the robot 5, from a target task. Details of the application information will be described later with reference to FIG.
  • the storage device 4 may be an external storage device such as a hard disk connected to or built in the robot controller 1, or may be a storage medium such as a flash memory. Further, the storage device 4 may be a server device that performs data communication with the robot controller 1 via a communication network. In this case, the storage device 4 may be composed of a plurality of server devices.
  • the robot 5 performs work related to the target task based on the control signal S3 supplied from the robot controller 1.
  • the robot 5 is, for example, a robot that operates at various factories such as an assembly factory and a food factory, or at a distribution site.
  • the robot 5 may be a vertical articulated robot, a horizontal articulated robot, or any other type of robot.
  • the robot 5 may supply a state signal indicating the state of the robot 5 to the robot controller 1.
  • This state signal may be an output signal of a sensor that detects the state (position, angle, etc.) of the entire robot 5 or a specific part such as a joint, 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.
  • the measuring device 7 includes at least one camera that captures the work space of the robot 5.
  • the measuring device 7 supplies the generated measurement signal S4 to the robot controller 1.
  • the measuring device 7 may be a self-propelled or flying sensor (including a drone) that moves in the work space. Further, the measuring device 7 may include a sensor provided in the robot 5, a sensor provided in another object in the work space, and the like. Further, the measuring device 7 may include a sensor that detects a sound in the work space. As described above, the measuring device 7 may include various sensors for detecting the state in the work space and may include sensors provided at any place.
  • the configuration of the robot control system 100 shown in FIG. 1 is an example, and various changes may be made to the configuration.
  • a plurality of robots 5 may exist, or may have a plurality of controlled objects such as robot arms, each of which operates independently.
  • the robot controller 1 generates an operation sequence to be executed for each robot 5 or each controlled object based on the target task, and the control signal S3 based on the operation sequence is transmitted to the target robot 5.
  • the robot 5 may perform collaborative work with other robots, workers or machine tools operating in the work space.
  • the measuring device 7 may be a part of the robot 5.
  • the instruction device 2 may be configured as the same device as the robot controller 1.
  • the robot controller 1 may be composed of a plurality of devices. In this case, the plurality of devices constituting the robot controller 1 exchange information necessary for executing the pre-assigned process among the plurality of devices. Further, the robot controller 1 and the robot 5 may be integrally configured.
  • FIG. 2A shows the hardware configuration of the robot controller 1.
  • the robot controller 1 includes a processor 11, a memory 12, and an interface 13 as hardware.
  • the processor 11, the memory 12, and the interface 13 are connected via the data bus 10.
  • the processor 11 functions as a controller (arithmetic unit) that controls the entire robot controller 1 by executing a program stored in the memory 12.
  • the processor 11 is, for example, a processor such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and a TPU (Tensor Processing Unit).
  • the processor 11 may be composed of a plurality of processors.
  • the processor 11 is an example of a computer.
  • the memory 12 is composed of various volatile memories such as RAM (Random Access Memory), ROM (Read Only Memory), and flash memory, and non-volatile memory. Further, the memory 12 stores a program for executing the process executed by the robot controller 1. A part of the information stored in the memory 12 may be stored by one or a plurality of external storage devices (for example, a storage device 4) capable of communicating with the robot controller 1, and may be stored detachably from the robot controller 1. It may be stored by a medium.
  • RAM Random Access Memory
  • ROM Read Only Memory
  • flash memory non-volatile memory
  • a part of the information stored in the memory 12 may be stored by one or a plurality of external storage devices (for example, a storage device 4) capable of communicating with the robot controller 1, and may be stored detachably from the robot controller 1. It may be stored by a medium.
  • 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. Further, the robot controller 1 may be configured to include at least one of the instruction device 2 and the storage device 4.
  • 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, a sound output unit 24c, and a robot operation unit 24d as hardware.
  • the processor 21, the memory 22, and the interface 23 are connected via the data bus 20. Further, the interface 23 is connected to an input unit 24a, a display unit 24b, a sound output unit 24c, and a robot operation unit 24d.
  • the processor 21 executes a predetermined process by executing the program stored in the memory 22.
  • the processor 21 is a processor such as a CPU and a GPU.
  • the processor 21 generates an input signal S1 by receiving a signal generated by the input unit 24a or the robot operation unit 24d via the interface 23, and transmits the input signal S1 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 S2 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, the sound output unit 24c, and the robot operation unit 24d.
  • 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 robot operation unit 24d receives an external input which is an input of a user representing a command directly defining an operation to the robot 5, and generates an input signal S1 which is a signal of the external input.
  • the robot operation unit 24d is used when it is determined that the control of the robot 5 based on the external input (that is, the manual control of the robot 5) is necessary during the execution of the target task.
  • the robot operation unit 24d may be a robot controller (operation panel) operated by the user in the control of the robot 5 based on the external input, and generates an operation command to the robot 5 according to the movement of the user. It may be an input system for a robot.
  • the former robot controller includes, for example, various buttons for designating a part of the robot 5 to be moved, designating a movement, and the like, and an operation bar for designating a moving direction.
  • the latter input system for robots includes, for example, various sensors used in motion capture and the like (including, for example, cameras, mounting sensors, and the like).
  • first robot control the control of the robot 5 based on the operation sequence generated by the robot controller 1 (that is, the automatic control of the robot 5)
  • second robot control the control of the robot 5 (that is, the external input) using the robot operation unit 24d
  • 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, the sound output unit 24c, or the robot operation unit 24d 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. 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 includes information on a subtask (also referred to as an "external input type subtask") that requires an operation command by an external input (that is, premised on an operation by the second robot control). ..
  • the subtask information I4 relating to the external input type subtask includes, for example, information for identifying the external input type subtask (for example, flag information) and information indicating the operation content of the robot 5 in the external input type subtask. Is included.
  • Abstract model information I5 is information about an abstract model that abstracts the dynamics in the workspace.
  • the 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 S4 generated by the measuring device 7.
  • Each of the above-mentioned objects corresponds to, for example, a robot 5, an obstacle, a tool or other object handled by the robot 5, a working body other than the robot 5, and the like.
  • the object model information I6 is, for example, information necessary for the 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.
  • the application information storage unit 41 may store various information related to the operation sequence generation process and the output control signal S2 generation process.
  • the robot controller 1 switches the control of the robot 5 to the second robot control when it is determined based on the operation sequence that it is necessary to switch to the second robot control during the execution of the first robot control. As a result, even when the robot controller 1 cannot cope with the automatic control of the robot 5, the control mode of the robot 5 is smoothly switched and the target task is suitably executed.
  • FIG. 4 is an example of a functional block showing an outline of the processing of the robot controller 1.
  • the processor 11 of the robot controller 1 functionally has an output control unit 15, an operation sequence generation unit 16, a robot control unit 17, and a switching determination unit 18.
  • FIG. 4 shows an example of data exchanged between blocks, but the present invention is not limited to this. The same applies to the figures of other functional blocks described later.
  • the output control unit 15 generates an output control signal S2 for displaying or sound-outputting predetermined information on the instruction device 2 used by the operator, and transmits the output control signal S2 to the instruction device 2 via the interface 13. do.
  • the output control unit 15 generates an output control signal S2 for displaying an input screen (also referred to as a “task designation screen”) related to the designation of the target task on the instruction device 2.
  • the output control unit 15 receives the input signal S1 generated by the instruction device 2 by the input operation on the task designation screen from the instruction device 2 via the interface 13.
  • the input signal S1 includes information (also referred to as "task designation information Ia") for roughly designating the target task.
  • the task designation information Ia is, for example, information corresponding to a schematic command to the robot 5, and does not include information defining a specific operation of the robot 5 (for example, control input information and subtask information described later).
  • the output control unit 15 supplies the task designation information Ia based on the input signal S1 supplied from the instruction device 2 to the operation sequence generation unit 16.
  • the output control unit 15 supports an operation to be performed by the operator in order to perform necessary external input when the robot control unit 17 is in the control mode for performing the second robot control (information ().
  • (Also referred to as “external input support information”) is output to the instruction device 2.
  • the output control unit 15 generates an output control signal S2 for displaying the screen representing the external input support information (also referred to as an “external input support screen”) on the instruction device 2, and instructs the output control signal S2. It is transmitted to the device 2.
  • the external input support screen for example, information regarding the operation content of the robot 5 to be specified by external input is displayed as external input support information.
  • the task designation screen and the external input support screen will be described in detail in the section "(7) Details of the robot control unit and the output control unit ".
  • the operation sequence generation unit 16 generates an operation sequence “Sr” to be executed by the robot 5 based on the task designation information Ia supplied from the output control unit 15, the measurement signal S4, and the application information stored in the storage device 4. do.
  • the motion sequence Sr corresponds to a sequence of subtasks (subtask sequence) to be executed by the robot 5 in order to achieve the target task, and defines a series of motions of the robot 5. Then, the motion sequence generation unit 16 supplies the generated motion sequence Sr to the robot control unit 17.
  • the operation sequence Sr includes information indicating the execution order and execution timing of each subtask.
  • the robot control unit 17 controls the operation of the robot 5 by supplying the control signal S3 to the robot 5 via the interface 13.
  • the robot control unit 17 functionally includes a first robot control unit 171 and a second robot control unit 172. After receiving the motion sequence Sr from the motion sequence generation unit 16, the robot control unit 17 controls the robot 5 (that is, the first robot control) by the first robot control unit 171. Then, the robot control unit 17 switches the control mode of the robot 5 to the control of the robot 5 (that is, the second robot control) by the second robot control unit 172 based on the switching command “Sw” supplied from the switching determination unit 18. ..
  • the first robot control unit 171 performs a process of controlling the robot 5 by the first robot control.
  • the first robot control unit 171 executes each subtask constituting the operation sequence Sr at the execution timing (time step) determined for each subtask based on the operation sequence Sr supplied from the operation sequence generation unit 16. Control to do so.
  • the robot control unit 17 transmits the control signal S3 to the robot 5 to execute position control or torque control of the joints of the robot 5 for realizing the operation sequence Sr.
  • the second robot control unit 172 performs a process of controlling the robot 5 by the second robot control.
  • the second robot control unit 172 receives the input signal S1 generated by the robot operation unit 24d of the instruction device 2 from the instruction device 2 via the interface 13.
  • the input signal S1 includes, for example, information that defines a specific operation of the robot 5 (for example, information corresponding to a control input that directly defines the operation of the robot 5).
  • the second robot control unit 172 controls the robot 5 by generating a control signal S3 based on the received input signal S1 and transmitting the generated control signal S3 to the robot 5.
  • control signal S3 generated by the second robot control unit 172 is predetermined with respect to the input signal S1 so that the robot 5 can receive, for example, an operation command represented by the input signal S1 generated by the robot operation unit 24d. It is a signal that has undergone conversion processing. When such a conversion process is performed by the robot 5, the second robot control unit 172 may supply the input signal S1 generated by the robot operation unit 24d to the robot 5 as a control signal S3 as it is.
  • the robot 5 may have a function corresponding to the robot control unit 17 instead of the robot controller 1.
  • the robot 5 controls the first robot based on the operation sequence Sr generated by the operation sequence generation unit 16, the switching command Sw generated by the switching determination unit 18, and the input signal S1 generated by the robot operation unit 24d. And the second robot control are switched and executed.
  • the switching determination unit 18 determines whether or not switching from the first robot control to the second robot control is necessary, at least based on the operation sequence Sr. Then, when the switching determination unit 18 determines that switching from the first robot control to the second robot control is necessary, the robot control unit 17 issues a switching command Sw instructing switching from the first robot control to the second robot control. Supply to. The details of the determination process by the switching determination unit 18 will be described in detail in the section “(6) Details of the switching determination unit ”. The switching determination unit 18 also determines whether or not switching from the second robot control to the first robot control is necessary, and when it is determined that the switching is necessary, the robot control unit 18 issues a switching command Sw instructing the switching. It may be supplied to 17.
  • each component of the output control unit 15, the operation sequence generation unit 16, the robot control unit 17, and the switching determination unit 18 can be realized, for example, by the processor 11 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.
  • FIG. 5 is an example of a functional block showing the functional configuration of the operation sequence generation unit 16.
  • the operation sequence generation unit 16 includes an abstract state setting unit 31, a target logical expression generation unit 32, a time step logical expression generation unit 33, an abstract model generation unit 34, and a control input generation unit 35. It has a subtask sequence generation unit 36 and.
  • the abstract state setting unit 31 works based on the measurement signal S4 supplied from the measuring device 7, the task designation information Ia supplied from the output control unit 15, the abstract state designation information I1, and the object model information I6. Set the abstract state in space. In this case, the abstract state setting unit 31 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 31 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. When the task designation information Ia is supplied, the abstract state setting unit 31 supplies information indicating the set abstract state (also referred to as “abstract state setting information IS”) to the target logical expression generation unit 32.
  • information indicating the set abstract state also referred to as “abstract state setting information IS”
  • the target logical expression generation unit 32 uses the target task indicated by the task designation information Ia as a logical expression of time phase logic representing the final achievement state (also referred to as “target logical expression Ltag”). Convert to. In this case, the target logical expression generation unit 32 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 32 supplies the generated target logical expression Ltag to the time step logical expression generation unit 33.
  • the time step logical formula generation unit 33 converts the target logical formula Ltag supplied from the target logical formula generation unit 32 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 formula generation unit 33 supplies the generated time step logical formula Lts to the control input generation unit 35.
  • the abstract model generation unit 34 abstracts the actual dynamics in the work space based on the abstract model information I5 stored in the application information storage unit 41 and the recognition result Im supplied from the abstract state setting unit 31. ⁇ ”is generated.
  • the abstract model generation unit 34 regards the target dynamics as a hybrid system in which continuous dynamics and discrete dynamics are mixed, and generates an abstract model ⁇ based on the hybrid system. The method of generating the abstract model ⁇ will be described later.
  • the abstract model generation unit 34 supplies the generated abstract model ⁇ to the control input generation unit 35.
  • the control input generation unit 35 satisfies the time step logical expression Lts supplied from the time step logical expression generation unit 33 and the abstract model ⁇ supplied from the abstract model generation unit 34, and 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 35 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 36.
  • the subtask sequence generation unit 36 generates an operation sequence Sr, which is a sequence of subtasks, based on the control input information Icn supplied from the control input generation unit 35 and the subtask information I4 stored in the application information storage unit 41, and operates.
  • the sequence Sr is supplied to the robot control unit 17 and the switching determination unit 18.
  • the abstract state setting unit 31 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 S4 by a technique using (Freequency Identity) or the like).
  • the recognition result Im includes information such as the type, position, and posture of the object in the work space.
  • the object in the work space is, 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 31 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 31 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 designation information I1, the abstract state setting unit 31 is the abstract state designation information corresponding to the target task indicated by the task designation information Ia. Refer to I1 and recognize the abstract state to be set.
  • FIG. 6 shows a bird's-eye view of the work space when the target task is pick and place.
  • the work space shown in FIG. 6 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 31 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 31 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 31 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 31 recognizes the postures of the objects 61a to 61d (unnecessary because the object is spherical in the example of FIG. 6), the existence range of the obstacle 62, the existence range of the region G, and the like.
  • the abstract state setting unit 31 recognizes the position vectors of the obstacle 62 and the vertices of the area G.
  • the abstract state setting unit 31 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 31 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 recognition result Im for example, the number of each type of object
  • 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 31 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 31 supplies the information indicating the proposition representing the abstract state to the target logical expression generation unit 32 as the abstract state setting information IS.
  • the target logical expression generation unit 32 converts the target task indicated by the task designation information Ia into a logical expression using temporal logic.
  • the target logical expression generation unit 32 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 31. Using “ i ", the logical formula " ⁇ g 2 " is generated.
  • the target logical expression generation unit 32 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 task designation information Ia may be information for designating 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 32 generates the target logical expression Ltag by adding the constraint condition indicated by the constraint condition information I2 to the logical expression indicating the target task.
  • the constraint condition information I2 includes two constraint conditions corresponding to the pick and place shown in FIG. 6, "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 32 converts these constraints into logical expressions. Specifically, the target logical formula generation unit 32 uses the proposition " oi " and the proposition "h" defined by the abstract state setting unit 31 in the explanation of FIG. 6 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.
  • Time step logical expression generation unit 33 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 33 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 formula Ltag is supplied from the target logical formula generation unit 32 to the time step logical formula generation unit 33.
  • the time step logical formula generation unit 33 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 formula 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 33 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 33 determines, for example, the target number of time steps based on the estimated work time specified by the input signal S1 supplied from the instruction device 2. In this case, the time step logical formula generation unit 33 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 33 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 formula generation unit 33 sets the target number of time steps to a predetermined initial value. Then, the time step logical formula generation unit 33 gradually increases the number of target time steps until the time step logical formula Lts in which the control input generation unit 35 can determine the control input is generated. In this case, the time step logical formula generation unit 33 determines the target time step number when the optimum solution cannot be derived as a result of the control input generation unit 35 performing the optimization process according to the set target time step number. Add only a number (integer of 1 or more).
  • the time step logical formula generation unit 33 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 formula generation unit 33 preferably suppresses setting an unnecessarily large target number of time steps.
  • the abstract model generation unit 34 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 34 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 abstract model generation unit 34 can determine the abstract model ⁇ to be set for the workspace shown in FIG. 6 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 35 can be suitably reduced.
  • the abstract model generation unit 34 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. 6), 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 34 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 35 is based on the time step logical expression Lts supplied from the time step logical expression generation unit 33 and the abstract model ⁇ supplied from the abstract model generation unit 34.
  • the control input for the robot 5 for each time step that becomes the optimum is determined.
  • the control input generation unit 35 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 35 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 35 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 35 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 35 approximates the logical variable to the continuous value (it is regarded as a continuous relaxation problem). As a result, the control input generation unit 35 can suitably reduce the amount of calculation.
  • STL linear logic formula
  • the control input generation unit 35 sets the number of time steps used for optimization to a value smaller than the target time step number (for example, the above-mentioned threshold value). You may. In this case, the control input generation unit 35 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 35 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 35 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 determined in advance for each type of target task, for example, and information for specifying the event is stored in the storage device 4 for each type of target task.
  • Subtask sequence generation unit 36 generates an operation sequence Sr based on the control input information Icn supplied from the control input generation unit 35 and the subtask information I4 stored in the application information storage unit 41. Generate. In this case, the subtask sequence generation unit 36 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 36 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.
  • the subtask sequence generation unit 36 generates an operation sequence Sr composed of the function "Move” and the function "Grasp”, and supplies the operation sequence Sr to the robot control unit 17.
  • the operation sequence Sr of "Move”, the function "Grasp”, the function "Move”, and the function "Grasp” is generated.
  • the first and second embodiments which are specific forms of switching from the first robot control to the second robot control by the switching determination unit 18, will be described in order.
  • the robot controller 1 systematically executes switching of the control of the robot 5 to the second robot control based on the external input type subtask incorporated in the operation sequence Sr.
  • the robot controller 1 urgently executes switching of the control of the robot 5 to the second robot control when some abnormality occurs. Then, in any of these forms, the switching determination unit 18 smoothly switches from the first robot control to the second robot control.
  • the switching determination unit 18 changes from the first robot control to the second robot based on the presence or absence of execution of an external input type subtask whose execution is predetermined by the second robot control. Judge the necessity of switching to control.
  • the subtask information I4 includes information about the external input type subtask. Then, when the switching determination unit 18 determines that it is the execution timing of the external input type subtask incorporated as a part of the operation sequence Sr, the switching command Sw instructing the switching from the first robot control to the second robot control. Is supplied to the robot control unit 17.
  • the switching determination unit 18 recognizes the execution timing of the external input type subtask based on the information of the time step associated with each subtask of the operation sequence Sr. In this case, when the time corresponding to the time step corresponding to the external input type subtask is reached, the switching determination unit 18 considers it as the execution timing of the external input type subtask, and shifts from the first robot control to the second robot control.
  • the switching command Sw instructing switching is supplied to the robot control unit 17.
  • the switching determination unit 18 determines the completion of each subtask constituting the operation sequence Sr based on the completion notification of the subtask supplied from the robot 5 or the robot control unit 17, and the robot 5 currently determines which subtask. Recognize if it is running. Even in this case, the switching determination unit 18 can suitably recognize the execution timing of the external input type subtask.
  • the switching determination unit 18 may recognize the execution timing of the external input type subtask by recognizing which subtask the robot 5 is currently executing based on the measurement signal S4. In this case, the switching determination unit 18 analyzes the measurement signal S4 such as an image of the work space by using a pattern recognition technique using, for example, deep learning, and determines the subtask that the robot 5 is executing or should execute. recognize.
  • the switching determination unit 18 switches the control of the robot 5 from the first robot control to the second robot control when the robot 5 systematically executes an operation requiring the second robot control. Can be executed smoothly.
  • the switching determination unit 18 determines whether or not to continue the first robot control based on the operation sequence Sr and the measured operation execution status of the robot 5.
  • the switching determination unit 18 has a time lag of a predetermined amount or more between the situation predicted when the operation sequence Sr is executed according to the plan at the time of generation of the operation sequence Sr and the measured operation execution status. Or, when a spatial deviation occurs, it is considered inappropriate to continue the first robot control. Then, when the switching determination unit 18 determines that the continuation of the first robot control is hindered, the switching determination unit 18 determines that the continuation of the first robot control is inappropriate and determines that it is necessary to switch to the second robot control.
  • the switching determination unit 18 has a delay time, which is a time lag with respect to the plan based on the operation sequence Sr, based on the operation sequence Sr and the operation execution status of the robot 5 during the execution of the first robot control. Calculate the length. Then, the switching determination unit 18 determines whether or not to continue the first robot control based on the calculated delay time length. Then, when the operation execution status of the robot 5 is delayed by a predetermined time or more from the plan based on the operation sequence Sr, the switching determination unit 18 has some abnormality (error) and is controlled by the first robot. Judge that continuation is inappropriate.
  • the switching determination unit 18 determines that the subtask with the delay should be executed by the second robot control, and instructs the switching from the second robot control to the first robot control for the subtask. Sw is transmitted to the robot control unit 17.
  • the switching determination unit 18 accurately identifies a subtask in which a delay has occurred due to the occurrence of some abnormality, and switches from the first robot control to the second robot control for executing the subtask. Can be done smoothly.
  • the switching determination unit 18 may determine the presence or absence of the delay for each object instead of determining the presence or absence of a delay with respect to the plan based on the operation sequence Sr for each subtask. In this case, the switching determination unit 18 recognizes the number of time steps required for each object based on, for example, the operation sequence Sr, and counts the number of time steps actually required for each object. Then, when the number of time steps actually required exceeds the required number of time steps, the switching determination unit 18 determines that the object needs to be executed by the second robot control. do. In this case, the switching determination unit 18 determines, for example, that the second robot control should be executed for the operation related to the object, and transmits the switching command Sw instructing the switching to the second robot control to the robot control unit 17. do.
  • the switching determination unit 18 determines that a delay has occurred when a predetermined time length has elapsed from the start of the target task (that is, the time when the operation sequence Sr is supplied to the robot control unit 17). It may be determined that it is necessary to switch to the second robot control.
  • the above-mentioned predetermined time length may be set based on the number of time steps planned in the operation sequence Sr, or may be set based on the predicted required time length of the target task stored in advance in the storage device 4 or the like. ..
  • the switching determination unit 18 smoothly switches from the first robot control to the second robot control for dealing with the abnormal state. Can be done.
  • the switching determination unit 18 calculates the amount of spatial deviation from the plan based on the operation sequence Sr based on the operation sequence Sr and the operation execution status of the robot 5 during the execution of the first robot control, and the space is concerned. Based on the target deviation amount, the continuation suitability of the first robot control is determined. Then, when the operation execution status of the robot 5 is spatially deviated by a predetermined amount or more from the plan based on the operation sequence Sr, the switching determination unit 18 has some abnormality (error), and the first robot control Judge that the continuation of is inappropriate.
  • the switching determination unit 18 is measured based on the locus of the position of the robot 5 (also referred to as “predicted movement locus”) predicted when the operation sequence Sr is normally executed and the measurement signal S4. Quantitatively compare the locus of the actual position of the robot 5 (also referred to as “actual movement locus”).
  • the "movement locus” indicates, for example, a locus of positions at each time step or at a predetermined time interval. Then, when the switching determination unit 18 determines that the predicted movement locus of the robot 5 and the actual movement locus of the robot 5 are not similar, an abnormality has occurred and the first robot control cannot be continued. Judge that there is.
  • the position information of the robot 5 that constitutes the predicted movement locus is calculated by, for example, an optimization process by the control input generation unit 35.
  • the switching determination unit 18 calculates the similarity between the predicted movement locus of the robot 5 and the actual movement locus of the robot 5, for example, by using an arbitrary technique for calculating the quantitative similarity of the plurality of movement loci.
  • the similarity may be expressed by, for example, the total distance or the maximum value of the distances between the points of the loci associated with each other by ICP (Iterative Closest Point) or the like.
  • ICP Intelligent Closest Point
  • the switching determination unit 18 determines that the continuation of the first robot control is impossible when the similarity is equal to or less than a predetermined value.
  • the switching determination unit 18 calculates, for example, the degree of similarity between the predicted movement locus and the actual movement locus for the parts of the robot 5 in which the abstract state is set (in the example of FIG. 6, the robot hands 53a and 53b).
  • the switching determination unit 18 smoothly switches from the first robot control to the second robot control for dealing with the abnormal state even by the suitability determination of the continuation of the first robot control based on the spatial deviation. It can be carried out.
  • the switching determination unit 18 may determine whether or not the first robot control can be continued, instead of or in addition to the movement locus of the robot 5, based on the movement locus of the object. In this case, the switching determination unit 18 calculates, for example, the similarity between the predicted movement locus of the object and the actual movement locus of the object measured based on the measurement signal S4, and when the similarity is equal to or less than a predetermined value. In addition, it is determined that the continuation of the first robot control is impossible.
  • the switching determination unit 18 is one of the cases where a plurality of operation sequences Sr are sequentially generated based on one or a plurality of intermediate states until the completion of the target task. When the operation sequence Sr is not completed normally, it may be determined that switching to the second robot control is necessary.
  • the operation sequence generation unit 16 shall set one or a plurality of intermediate states (also referred to as "sub-goals") up to the completion state (goal) of the target task. Then, the operation sequence generation unit 16 sequentially generates a plurality of operation sequences Sr necessary from the start to the completion of the target task based on the subgoal. Specifically, the operation sequence generation unit 16 sequentially generates an operation sequence Sr for shifting from the initial state to the subgoal, from the subgoal to the next subgoal, and from the last subgoal to the completed state (goal).
  • intermediate states also referred to as "sub-goals”
  • information necessary for setting a subgoal for each target task is stored in the storage device 4 in advance, and the operation sequence generation unit 16 sets the subgoal by referring to this information.
  • the above-mentioned information is, for example, in the case of pick-and-place, the maximum number of pieces of information for moving an object in one operation sequence Sr.
  • the switching determination unit 18 determines whether or not each operation sequence Sr has been normally completed based on the completion notification or the like supplied from the robot control unit 17 for each operation sequence Sr, and any of the operation sequence Sr is normally completed. When it is not completed, the switching command Sw is generated. For example, when it is determined that the operation sequence Sr for the same subgoal is continuously generated, the switching determination unit 18 determines that some abnormality has occurred in which the target subgoal is not completed, and issues the switching command Sw to the robot control unit 17. May be supplied to.
  • the switching determination unit 18 can accurately determine whether or not switching from the first robot control to the second robot control is necessary.
  • FIG. 7 shows a display example of a task specification screen for designating a target task.
  • the output control unit 15 generates an output control signal S2 and transmits the output control signal S2 to the instruction device 2 to control the instruction device 2 to display the task designation screen shown in FIG. 7.
  • the task designation screen shown in FIG. 7 mainly has a task type designation field 25, a work space display field 26, and various buttons 28 (28a, 28b).
  • the output control unit 15 receives 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 output control unit 15 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 task type designation field 25.
  • the output control unit 15 displays an image (work space image) captured by the measuring device 7 in the work space in the work space display field 26, and is necessary for executing the target task specified in the task type designation field 25. Accepts specifications.
  • the output control unit 15 refers to the abstract state designation information I1 corresponding to the pick and place selected in the task type designation field 25, and the target object to be worked by the robot 5 and the target object. Recognize that it is necessary to determine the destination. Therefore, the output control unit 15 receives an input for designating an object and a destination on the work space display field 26, respectively.
  • the output control unit 15 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. Then, when the output control unit 15 detects that the object determination button 28a is selected, the output control unit 15 recognizes the position information of the marks 27a to 27d drawn by the user as information for specifying the position of the object. Further, when the output control unit 15 further detects that the destination determination button 28b is selected, the output control unit 15 uses the position information of the mark 27e drawn by the user after the selection of the object determination button 28a as the information for specifying the destination. recognize. Then, the output control unit 15 supplies information for specifying these objects and destinations (here, position information of each mark on the work space image) to the operation sequence generation unit 16 as task designation information Ia.
  • the output control unit 15 supplies information for specifying these objects and destinations (here, position information of each mark on the work space image) to the operation sequence generation unit 16 as task designation information Ia.
  • the output control unit 15 preferably accepts the user input regarding the designation of the type of the target task and the designation of the object related to the target task, and receives the task designation information Ia. It can be preferably obtained.
  • the output control unit 15 accepts the input of designating some pixels constituting the object and the destination by touch operation or click operation. May be good. In this case, the output control unit 15 regards the position information of each designated pixel as information for specifying the object and the destination, and supplies the task designation information Ia to the operation sequence generation unit 16.
  • the output control unit 15 may generate the task designation information Ia based on the recognition result Im regarding the object and the destination, without depending on the user input on the work space display field 26. Instead of displaying the work space image generated by the measuring device 7 in the work space display field 26, the output control unit 15 may display a CAD image that reproduces the environment in the work space in the work space display field 26. good. In this case, the output control unit 15 creates a CAD image that reproduces the environment in the work space based on the recognition result Im generated by the abstract state setting unit 31 and the object model information I6 that records the CAD data related to the object or the like. Generate.
  • FIG. 8 shows a first display example of the external input support screen when the switching mode from the first robot control to the second robot control by the switching determination unit 18 is the first mode.
  • the output control unit 15 generates an output control signal S2 and transmits the output control signal S2 to the instruction device 2 to control the instruction device 2 to display the external input support screen shown in FIG.
  • the external input support screen shown in FIG. 8 mainly has a work space display field 26A and an operation content display area 29.
  • the work space display field 26A an image of the current work space or a CAD image that schematically represents the current work space is displayed, and in the operation content display area 29, the work space image is displayed.
  • the content that requires the robot 5 to be operated by an external input is displayed.
  • the target external input type subtask is a subtask that moves and grips an object that cannot be directly gripped by the robot 5 adjacent to the obstacle to a gripping position. ..
  • the robot arm 52a in FIG. 6 is referred to as a “first arm”, and the robot arm 52b is referred to as a “second arm”.
  • the switching determination unit 18 determines that it is the execution timing of the external input type subtask (here, moving the object to a grippable position and grasping it) that requires the second robot control, and issues the switching command Sw to the robot. It is transmitted to the control unit 17. Then, after receiving the switching command Sw, the robot control unit 17 shifts the control mode to the second robot control by the second robot control unit 172. Then, when the control mode shifts to the second robot control, the output control unit 15 receives, for example, the operator by external input based on the subtask information I4 indicating the operation content of the target external input type subtask and the operation sequence Sr.
  • the output control unit 15 Recognizes the operation content of the robot 5 that needs to be instructed by. Then, the output control unit 15 generates an output control signal S2 for displaying an external input support screen based on the recognized operation content of the robot 5, and supplies the generated output control signal S2 to the instruction device 2.
  • the output control unit 15 has switched to the second robot control (manual control), and the operation content to be executed by the robot 5 (here, the first arm by moving the object to a predetermined position).
  • a guide sentence instructing (to grab by) is displayed on the operation content display area 29.
  • the output control unit 15 has a thick round frame 71 that surrounds the object to be worked on, a broken line round frame 72 that indicates the destination of the object, on the work space image displayed in the work space display field 26A.
  • the names (first arm, second arm) of each arm of the robot 5 are displayed.
  • the output control unit 15 makes the robot arm necessary for the work and the work target for the worker who refers to the text sentence of the operation content display area 29. It is possible to preferably recognize an object and its moving destination.
  • the operation content of the robot 5 shown in the operation content display area 29 satisfies the condition for transitioning to the next subtask of the target external input type subtask (also referred to as “sequence transition condition”).
  • the sequence transition condition corresponds to a condition indicating the end state (or the start state of the next subtask) of the target external input type subtask assumed in the generated operation sequence Sr.
  • the sequence transition condition in the example of FIG. 8 indicates that the first arm is in a state of grasping the object at a predetermined position.
  • the output control unit 15 displays the guide text instructing the operation required to satisfy the sequence transition condition in the operation content display area 29, and thereby externally necessary for smooth transition to the next subtask. Input can be suitably assisted.
  • the information displayed in the operation content display area 29 and the work space display field 26A in FIG. 8 is an example of external input support information.
  • FIG. 9 shows a second display example of the external input support screen when the switching mode from the first robot control to the second robot control by the switching determination unit 18 is the second mode.
  • the output control unit 15 generates an output control signal S2 and transmits the output control signal S2 to the instruction device 2 to control the instruction device 2 to display the external input support screen shown in FIG.
  • the external input support screen shown in FIG. 9 mainly has a work space display field 26A and an operation content display area 29.
  • the switching determination unit 18 has detected that there is a temporal or / spatial deviation from the plan based on the operation sequence Sr, and thus determines that the continuation of the first robot control is inappropriate. Then, the switching command Sw is transmitted to the robot control unit 17. Then, the robot control unit 17 shifts the control mode to the second robot control by the second robot control unit 172.
  • the output control unit 15 has shifted to the second robot control due to an abnormality in the pick and place of the object, and an external input for moving the object to the goal point. Is displayed on the operation content display area 29. Further, the output control unit 15 has a thick round frame 73 surrounding the object to be worked on on the image displayed in the work space display field 26A, and the names of the arms of the robot 5 (first arm, second arm). ) And is displayed.
  • the output control unit 15 moves the object to the goal point by the second robot control so that the operation of the robot 5 for the object to be worked is performed by the second robot control.
  • Information indicating the above is displayed in the operation content display area 29.
  • the operation of the robot 5 that is the target of the second robot control is not limited to this.
  • the output control unit 15 displays the operation content of information prompting an external input corresponding to the stagnant subtask so that only the operation related to the currently stagnant subtask (also referred to as “stagnation subtask”) is performed by the second robot control. It may be displayed in the area 29.
  • the output control unit 15 displays information prompting external input until gripping the object in the operation content display area 29. You may.
  • the robot control unit 17 issues a switching command Sw instructing switching from the second robot control to the first robot control. Send to.
  • the first robot control unit 171 of the robot control unit 17 executes the next subtask of the stagnant subtask.
  • the external input support screen is provided with a button instructing the end of the second robot control, and the switching determination unit 18 controls the second robot when it detects that the button is selected. It may be determined that it should be terminated.
  • the switching determination unit 18 transmits a switching command Sw instructing switching from the second robot control to the first robot control to the robot control unit 17, and the operation sequence Sr to the operation sequence generation unit 16. Is instructed to regenerate. Then, the first robot control unit 171 of the robot control unit 17 restarts the first robot control based on the operation sequence Sr regenerated by the operation sequence generation unit 16.
  • FIG. 10 is an example of a flowchart showing an outline of robot control processing executed by the robot controller 1 in the first embodiment.
  • the robot controller 1 acquires the task designation information Ia (step S11).
  • the output control unit 15 acquires the task designation information Ia by receiving the input signal S1 related to the designation of the target task.
  • the robot controller 1 may acquire the task designation information Ia from the storage device 4 or the like.
  • the operation sequence generation unit 16 generates an operation sequence Sr, which is an operation sequence of the robot 5, based on the task designation information Ia acquired in step S11 and the measurement signal S4 (step S12). In this case, the operation sequence generation unit 16 recognizes an object in the work space necessary for generating the operation sequence Sr, and generates the operation sequence Sr necessary for completing the target task indicated by the task designation information Ia.
  • the first robot control unit 171 of the robot control unit 17 executes the first robot control based on the generated operation sequence Sr (step S13).
  • the first robot control unit 171 sequentially supplies the control signal S3 generated based on the operation sequence Sr to the robot 5, and controls the robot 5 to operate according to the generated operation sequence Sr.
  • the switching determination unit 18 performs a robot control switching determination based on the operation sequence Sr (step S14).
  • the switching determination unit 18 follows, for example, the first form or the second form described in the section of "(6) Details of the switching determination unit ", and the first robot control to the second robot based on at least the operation sequence Sr. Judge the necessity of switching to control.
  • the output control unit 15 instructs the operator the operation content of the robot 5 designated by the external input.
  • the support screen is displayed on the instruction device 2 (step S16).
  • the output control unit 15 designates the robot 5 by external input based on the operation sequence Sr supplied from the operation sequence generation unit 16, the subtask information I4, the state of the robot 5 supplied from the robot control unit 17, and the like. Recognize the operation content of.
  • the output control unit 15 generates an output control signal S2 for displaying the above-mentioned external input support screen, and supplies the generated output control signal S2 to the instruction device 2 to support the external input to the instruction device 2. Display the screen.
  • the second robot control unit 172 of the robot control unit 17 executes the second robot control (step S17).
  • the second robot control unit 172 sequentially supplies the control signal S3 based on the input signal S1 generated by the robot operation unit 24d of the instruction device 2.
  • the robot 5 executes an operation according to the operation of the operator.
  • the switching determination unit 18 determines whether or not the second robot control should be terminated (step S18). For example, when the switching determination unit 18 determines that the subtask to be performed by the second robot control is completed (that is, the sequence transition condition is satisfied), the switching determination unit 18 determines that the second robot control should be terminated. In this case, the subtask to be performed by the second robot control may be a set of a plurality of subtasks. In another example, the switching determination unit 18 determines that the second robot control should be terminated when the input signal S1 corresponding to the explicit termination instruction of the second robot control by the operator is received.
  • step S18 determines that the second robot control should not be terminated (step S18; No)
  • the second robot control unit 172 continues in step S17 with the input signal S1 supplied from the instruction device 2.
  • the second robot control is executed based on.
  • step S18 when the switching determination unit 18 determines that the second robot control should be terminated (step S18; Yes), the robot control unit 17 switches the control of the robot 5 from the second robot control to the first robot control (step). S19). Then, after determining that switching to the second robot control is unnecessary after step S19 or in step S15, the robot controller 1 determines whether or not the target task has been completed (step S20). In this case, for example, the robot control unit 17 of the robot controller 1 determines that the target task has been completed when the output of the control signal S3 to the robot 5 based on the operation sequence Sr is completed (the output is lost).
  • the robot control unit 17 determines that the target task has been completed when it recognizes that the state of the object has reached the completed state based on the measurement signal S4. Then, when it is determined that the target task is completed (step S20; Yes), the robot controller 1 ends the processing of the flowchart.
  • the operation sequence generation unit 16 determines whether or not the operation sequence Sr needs to be generated (step S21). For example, when the motion sequence generation unit 16 executes the first robot control again after switching to the second robot control based on the second form (that is, switching to the urgent second robot control based on the abnormality detection). , It is determined that the operation sequence Sr should be regenerated. On the other hand, when the robot controller 1 executes the first robot control again after switching to the second robot control based on the first embodiment (that is, switching to the planned second robot control), the robot controller 1 reproduces the operation sequence Sr. Determine that it does not need to be done. In another example, the motion sequence generation unit 16 determines that when the current subgoal is completed, it is necessary to generate the motion sequence Sr for executing the next subgoal (including the final goal).
  • step S21 when the operation sequence generation unit 16 determines that the operation sequence Sr needs to be generated (step S21; Yes), the process returns to step S12 to generate the operation sequence Sr.
  • step S21; No when the motion sequence generation unit 16 determines that the motion sequence Sr does not need to be generated (step S21; No), the process returns to step S13 and executes the first robot control based on the existing motion sequence Sr.
  • the robot controller 1 controls to display information for supporting external input by the operator on the external input support screen in the second robot control, or in addition to this, the external by the operator in the second robot control. Control may be performed to output information that supports input by sound.
  • the output control unit 15 of the robot controller 1 displays, for example, the external input support screen of FIG. 8 or 9 on the instruction device 2, or in addition to the external input support screen, displayed in the operation content display area 29.
  • the instruction device 2 is made to output the guidance corresponding to the guide text regarding the input by voice.
  • the robot controller 1 can suitably support the generation of the external input required for the second robot control.
  • the block configuration of the operation sequence generation unit 16 shown in FIG. 5 is an example, and various changes may be made.
  • the information of the motion sequence candidate ⁇ instructed to the robot 5 is stored in advance in the storage device 4, and the motion sequence generation unit 16 executes the optimization process of the control input generation unit 35 based on the information.
  • the operation sequence generation unit 16 selects the optimum candidate ⁇ and determines the control input of the robot 5.
  • the operation sequence generation unit 16 does not have to have a function corresponding to the abstract state setting unit 31, the target logical expression generation unit 32, and the time step logical expression generation unit 33 in the generation of the operation sequence Sr.
  • information regarding the execution result of a part of the functional blocks of the operation sequence generation unit 16 shown in FIG. 5 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 operation sequence Sr corresponding to the target task in advance, and the operation sequence generation unit 16 can refer to the design information.
  • the operation 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 control device 1X according to the second embodiment.
  • the control device 1X mainly includes an operation sequence generation means 16X, a first robot control means 171X, a switching determination means 18X, and a second robot control means 172X.
  • the control device 1X may be composed of a plurality of devices.
  • the control device 1X can be, for example, the robot controller 1 in the first embodiment.
  • the motion sequence generation means 16X generates a robot motion sequence.
  • the operation sequence generation means 16X can be, for example, the operation sequence generation unit 16 in the first embodiment.
  • the first robot control means 171X performs the first robot control, which is the control of the robot based on the operation sequence.
  • the first robot control means 171X can be, for example, the first robot control unit 171 in the first embodiment.
  • the switching determination means 18X determines whether or not switching to the second robot control, which is the control of the robot based on the external input, is necessary based on the operation sequence while the first robot control is being executed.
  • the switching determination means 18X can be, for example, the switching determination unit 18 in the first embodiment.
  • the second robot control means 172X performs the second robot control when it is determined by the switching determination means 18X that switching is necessary.
  • the second robot control means 172X can be, for example, the second robot control unit 172 in the first embodiment.
  • FIG. 12 is an example of the flowchart in the second embodiment.
  • the motion sequence generation means 16X generates a robot motion sequence (step S21).
  • the first robot control means 171X performs the first robot control, which is the control of the robot based on the operation sequence (step S22).
  • the switching determination means 18X determines whether or not switching to the second robot control, which is the control of the robot based on the external input, is necessary based on the operation sequence while the first robot control is being executed (step S23). When it is determined in step S23 that switching is necessary (step S24; Yes), the second robot control means 172X performs the second robot control (step S25). On the other hand, when it is determined in step S23 that switching is not necessary (step S24; No), the processing of the flowchart is terminated.
  • the control device 1X switches to the second robot control based on the external input as necessary during the execution of the first robot control based on the operation sequence, and smoothly performs the target task. be able to.
  • Non-transitory Computer Readable Medium Non-Transitory Computer Readable Medium
  • Non-temporary computer-readable media include various types of tangible storage media (Tangible Storage Medium).
  • non-temporary computer-readable media examples include magnetic storage media (eg, flexible disks, magnetic tapes, hard disk drives), magneto-optical storage media (eg, magneto-optical disks), CD-ROMs (ReadOnlyMemory), CD-Rs, Includes CD-R / W, semiconductor memory (eg, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (RandomAccessMemory)).
  • the program may also be supplied to the computer by various types of temporary computer-readable media (Transitory ComputerReadable Medium). Examples of temporary computer readable media include electrical, optical, and electromagnetic waves.
  • the temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.
  • the switching determination means calculates the amount of time lag with respect to the plan based on the operation sequence based on the operation sequence and the operation execution status of the robot during the execution of the first robot control, and the time lag.
  • the control device according to Appendix 1 or 2, which determines the necessity of switching based on the amount.
  • the switching determination means calculates the amount of spatial deviation from the plan based on the operation sequence based on the operation sequence and the operation execution status of the robot during the execution of the first robot control, and the spatial deviation.
  • the control device according to any one of Supplementary note 1 to 3, which determines the necessity of switching based on the amount.
  • the switching determination means compares the predicted movement locus of the robot with the measured movement locus of the robot, or the predicted movement locus of the work object of the robot and the measured work object.
  • the control device according to Appendix 4, which calculates the amount of spatial deviation based on a comparison with a movement locus.
  • the switching determination means determines that the switching is necessary when it is determined that any of the operations constituting the operation sequence is not normally completed during the execution of the first robot control.
  • the control device according to any one of the above.
  • the motion sequence generation means sequentially generates a plurality of motion sequences required from the start of the task to the completion of the task based on one or a plurality of intermediate states until the completion of the task to be executed by the robot. , The control according to any one of Supplementary note 1 to 5, wherein the switching determination means determines that the switching is necessary when it is determined that the operation sequence of any of the plurality of operation sequences is not normally completed. Device.
  • the motion sequence generation means generates the motion sequence including the motion of the robot that requires the second robot control.
  • the control device according to any one of Supplementary note 1 to 7, wherein the switching determination means determines that the switching is necessary at the execution timing of the operation that requires the second robot control.
  • the operation sequence generation means is A logical expression conversion means for converting a task to be executed by the robot into a logical expression based on temporal logic, A time step logical expression generation means for generating a time step logical expression, which is a logical expression representing the state of each time step in order to execute the task, from the logical expression.
  • a subtask sequence generation means that generates a sequence of subtasks to be executed by the robot as the operation sequence based on the time step logical formula.
  • the control device according to any one of Supplementary note 1 to 11.
  • the operation sequence generation means is The control device according to Appendix 12, further comprising an abstract state setting means for defining an abstract state, which is an abstract state of an object related to the task, as a proposition used in the logical formula.
  • the computer Generate a robot motion sequence and The first robot control, which is the control of the robot based on the operation sequence, is performed. During the execution of the first robot control, the necessity of switching to the second robot control, which is the control of the robot based on the external input, is determined based on the operation sequence. When it is determined that the switching is necessary, the second robot control is performed. Control method.
  • [Appendix 15] Generate a robot motion sequence and The first robot control, which is the control of the robot based on the operation sequence, is performed. During the execution of the first robot control, the necessity of switching to the second robot control, which is the control of the robot based on the external input, is determined based on the operation sequence.
  • a storage medium in which a program for causing a computer to execute a process for controlling the second robot when it is determined that the switching is necessary is stored.
  • Robot controller 1X Control device 2 Instruction device 4 Storage device 5 Robot 7 Measuring device 41 Application information storage unit 100 Robot control system

Abstract

制御装置1Xは、主に、動作シーケンス生成手段16Xと、第1ロボット制御手段171Xと、切替判定手段18Xと、第2ロボット制御手段172Xとを有する。動作シーケンス生成手段16Xは、ロボットの動作シーケンスを生成する。第1ロボット制御手段171Xは、動作シーケンスに基づくロボットの制御である第1ロボット制御を行う。切替判定手段18Xは、第1ロボット制御の実行中において、外部入力に基づくロボットの制御である第2ロボット制御への切替の要否を、動作シーケンスに基づき判定する。第2ロボット制御手段172Xは、切替が必要と切替判定手段18Xにより判定された場合、第2ロボット制御を行う。

Description

制御装置、制御方法及び記憶媒体
 本開示は、ロボットの動作を制御する制御装置、制御方法及び記憶媒体の技術分野に関する。
 ロボットに作業させるタスクが与えられた場合に、当該タスクを実行するために必要なロボットの制御を行う制御手法が提案されている。例えば、特許文献1には、自動モードと協働モードとを有し、自動モードでは、シーケンス又はプログラムに従い、ロボットを自動制御し、協働モードでは、作業員によるオンハンド操作盤によりロボットを手動制御するシステムが開示されている。また、特許文献2には、ロボットのモーションプランニング(動作計画)の失敗を検知したとき、ロボットのタスク実行が失敗したと判定し、動作モードを自動選択するシステムが開示されている。
特開2011-093062号公報 特開2016-068161号公報
 ロボットにタスクを実行させるシステムにおいて、タスクを完了するために必要な全ての動作をロボットが自律的に実行できることが望ましいが、一部の動作について作業者の操作が必要となる場合がある。このような場合に、タスクが完了するようにロボットを適切かつ円滑に動作させる必要がある。
 本開示の目的の1つは、上述した課題を鑑み、ロボットを好適に制御することが可能な制御装置、制御方法及び記憶媒体を提供することである。
 制御装置の一の態様は、
 ロボットの動作シーケンスを生成する動作シーケンス生成手段と、
 前記動作シーケンスに基づく前記ロボットの制御である第1ロボット制御を行う第1ロボット制御手段と、
 前記第1ロボット制御の実行中において、外部入力に基づく前記ロボットの制御である第2ロボット制御への切替の要否を、前記動作シーケンスに基づき判定する切替判定手段と、
 前記切替が必要と判定された場合、前記第2ロボット制御を行う第2ロボット制御手段と、
を有する制御装置である。
 制御方法の一の態様は、
 コンピュータが、
 ロボットの動作シーケンスを生成し、
 前記動作シーケンスに基づく前記ロボットの制御である第1ロボット制御を行い、
 前記第1ロボット制御の実行中において、外部入力に基づく前記ロボットの制御である第2ロボット制御への切替の要否を、前記動作シーケンスに基づき判定し、
 前記切替が必要と判定された場合、前記第2ロボット制御を行う、
制御方法である。
 記憶媒体の一の態様は、
 ロボットの動作シーケンスを生成し、
 前記動作シーケンスに基づく前記ロボットの制御である第1ロボット制御を行い、
 前記第1ロボット制御の実行中において、外部入力に基づく前記ロボットの制御である第2ロボット制御への切替の要否を、前記動作シーケンスに基づき判定し、
 前記切替が必要と判定された場合、前記第2ロボット制御を行う処理をコンピュータに実行させるプログラムが格納された記憶媒体である。
 ロボット制御の切替を円滑に行い、ロボットを好適に制御することができる。
第1実施形態におけるロボット制御システムの構成を示す。 ロボットコントローラのハードウェア構成を示す。 アプリケーション情報のデータ構造の一例を示す。 ロボットコントローラの機能ブロックの一例である。 動作シーケンス生成部の機能ブロックの一例である。 ピックアンドプレイスを目的タスクとした場合の作業空間の俯瞰図を示す。 目的タスクを指定するタスク指定画面の表示例を示す。 外部入力支援画面の第1表示例を示す。 外部入力支援画面の第2表示例を示す。 第1実施形態においてロボットコントローラが実行するロボット制御処理の概要を示すフローチャートの一例である。 第2実施形態における制御装置の概略構成図を示す。 第2実施形態において、制御装置が実行する処理手順を示すフローチャートの一例である。
 以下、図面を参照しながら、制御装置、制御方法及び記憶媒体の実施形態について説明する。
 <第1実施形態>
 (1)システム構成
 図1は、第1実施形態に係るロボット制御システム100の構成を示す。ロボット制御システム100は、主に、ロボットコントローラ1と、指示装置2と、記憶装置4と、ロボット5と、計測装置7と、を備える。
 ロボットコントローラ1は、ロボット5に実行させるタスク(「目的タスク」とも呼ぶ。)が指定された場合に、ロボット5が受付可能な単純なタスクのタイムステップ(時間刻み)毎のシーケンスに目的タスクを変換し、生成したシーケンスに基づきロボット5を制御する。
 また、ロボットコントローラ1は、指示装置2、記憶装置4、ロボット5、及び計測装置7と、通信網を介し、又は、無線若しくは有線による直接通信により、データ通信を行う。例えば、ロボットコントローラ1は、指示装置2から、目的タスクの指定又はロボット5の動作指令等に関する入力信号「S1」を受信する。また、ロボットコントローラ1は、指示装置2に対し、出力制御信号「S2」を送信することで、指示装置2に所定の表示又は音出力を実行させる。さらに、ロボットコントローラ1は、ロボット5の制御に関する制御信号「S3」をロボット5に送信する。また、ロボットコントローラ1は、計測装置7から計測信号「S4」を受信する。
 指示装置2は、作業者によるロボット5に対する指示を受け付ける装置である。指示装置2は、ロボットコントローラ1から供給される出力制御信号S2に基づき所定の表示又は音出力を行ったり、作業者の入力に基づき生成した入力信号S1をロボットコントローラ1へ供給したりする。指示装置2は、入力部と表示部とを備えるタブレット端末であってもよく、据置型のパーソナルコンピュータであってもよい。
 記憶装置4は、アプリケーション情報記憶部41を有する。アプリケーション情報記憶部41は、ロボット5が実行すべきシーケンスである動作シーケンスを目的タスクから生成するために必要なアプリケーション情報を記憶する。アプリケーション情報の詳細は、図3を参照しながら後述する。記憶装置4は、ロボットコントローラ1に接続又は内蔵されたハードディスクなどの外部記憶装置であってもよく、フラッシュメモリなどの記憶媒体であってもよい。また、記憶装置4は、ロボットコントローラ1と通信網を介してデータ通信を行うサーバ装置であってもよい。この場合、記憶装置4は、複数のサーバ装置から構成されてもよい。
 ロボット5は、ロボットコントローラ1から供給される制御信号S3に基づき目的タスクに関する作業を行う。ロボット5は、例えば、組み立て工場、食品工場などの各種工場、又は、物流の現場などで動作を行うロボットである。ロボット5は、垂直多関節型ロボット、水平多関節型ロボット、又はその他の任意の種類のロボットであってもよい。ロボット5は、ロボット5の状態を示す状態信号をロボットコントローラ1に供給してもよい。この状態信号は、ロボット5全体又は関節などの特定部位の状態(位置、角度等)を検出するセンサの出力信号であってもよく、ロボット5の制御部が生成したロボット5の動作シーケンスの進捗状態を示す信号であってもよい。
 計測装置7は、目的タスクが実行される作業空間内の状態を検出するカメラ、測域センサ、ソナーまたはこれらの組み合わせとなる1又は複数のセンサである。本実施形態では、計測装置7は、ロボット5の作業空間を撮像する少なくとも1台のカメラを含むものとする。計測装置7は、生成した計測信号S4をロボットコントローラ1に供給する。計測装置7は、作業空間内で移動する自走式又は飛行式のセンサ(ドローンを含む)であってもよい。また、計測装置7は、ロボット5に設けられたセンサ、及び作業空間内の他の物体に設けられたセンサなどを含んでもよい。また、計測装置7は、作業空間内の音を検出するセンサを含んでもよい。このように、計測装置7は、作業空間内の状態を検出する種々のセンサであって、任意の場所に設けられたセンサを含んでもよい。
 なお、図1に示すロボット制御システム100の構成は一例であり、当該構成に種々の変更が行われてもよい。例えば、ロボット5は、複数台存在してもよく、ロボットアームなどの夫々が独立して動作する制御対象物を複数有してもよい。これらの場合であっても、ロボットコントローラ1は、目的タスクに基づき、ロボット5毎又は制御対象物毎に実行すべき動作シーケンスを生成し、当該動作シーケンスに基づく制御信号S3を、対象のロボット5に送信する。また、ロボット5は、作業空間内で動作する他のロボット、作業者又は工作機械と協働作業を行うものであってもよい。また、計測装置7は、ロボット5の一部であってもよい。また、指示装置2は、ロボットコントローラ1と同一の装置として構成されてもよい。また、ロボットコントローラ1は、複数の装置から構成されてもよい。この場合、ロボットコントローラ1を構成する複数の装置は、予め割り当てられた処理を実行するために必要な情報の授受を、これらの複数の装置間において行う。また、ロボットコントローラ1とロボット5とは、一体に構成されてもよい。
 (2)ハードウェア構成
 図2(A)は、ロボットコントローラ1のハードウェア構成を示す。ロボットコントローラ1は、ハードウェアとして、プロセッサ11と、メモリ12と、インターフェース13とを含む。プロセッサ11、メモリ12及びインターフェース13は、データバス10を介して接続されている。
 プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、ロボットコントローラ1の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ11は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)などのプロセッサである。プロセッサ11は、複数のプロセッサから構成されてもよい。プロセッサ11は、コンピュータの一例である。
 メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ12には、ロボットコントローラ1が実行する処理を実行するためのプログラムが記憶される。なお、メモリ12が記憶する情報の一部は、ロボットコントローラ1と通信可能な1又は複数の外部記憶装置(例えば記憶装置4)により記憶されてもよく、ロボットコントローラ1に対して着脱自在な記憶媒体により記憶されてもよい。
 インターフェース13は、ロボットコントローラ1と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。
 なお、ロボットコントローラ1のハードウェア構成は、図2(A)に示す構成に限定されない。例えば、ロボットコントローラ1は、表示装置、入力装置又は音出力装置の少なくともいずれかと接続又は内蔵してもよい。また、ロボットコントローラ1は、指示装置2又は記憶装置4の少なくとも一方を含んで構成されてもよい。
 図2(B)は、指示装置2のハードウェア構成を示す。指示装置2は、ハードウェアとして、プロセッサ21と、メモリ22と、インターフェース23と、入力部24aと、表示部24bと、音出力部24cと、ロボット操作部24dと、を含む。プロセッサ21、メモリ22及びインターフェース23は、データバス20を介して接続されている。また、インターフェース23には、入力部24aと表示部24bと音出力部24cとロボット操作部24dとが接続されている。
 プロセッサ21は、メモリ22に記憶されているプログラムを実行することにより、所定の処理を実行する。プロセッサ21は、CPU、GPUなどのプロセッサである。プロセッサ21は、インターフェース23を介して入力部24a又はロボット操作部24dが生成した信号を受信することで、入力信号S1を生成し、インターフェース23を介してロボットコントローラ1に当該入力信号S1を送信する。また、プロセッサ21は、インターフェース23を介してロボットコントローラ1から受信した出力制御信号S2に基づき、表示部24b又は音出力部24cの少なくとも一方を、インターフェース23を介して制御する。
 メモリ22は、RAM、ROM、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ22には、指示装置2が実行する処理を実行するためのプログラムが記憶される。
 インターフェース23は、指示装置2と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。また、インターフェース23は、入力部24a、表示部24b、音出力部24c及びロボット操作部24dのインターフェース動作を行う。入力部24aは、ユーザの入力を受け付けるインターフェースであり、例えば、タッチパネル、ボタン、キーボード、音声入力装置などが該当する。表示部24bは、例えば、ディスプレイ、プロジェクタ等であり、プロセッサ21の制御に基づき表示を行う。また、音出力部24cは、例えば、スピーカであり、プロセッサ21の制御に基づき音出力を行う。
 ロボット操作部24dは、ロボット5への動作を直接的に規定する指令を表すユーザの入力である外部入力を受け付け、当該外部入力の信号である入力信号S1を生成する。本実施形態においては、ロボット操作部24dは、目的タスクの実行中において、外部入力に基づくロボット5の制御(即ちロボット5の手動制御)が必要と判定された場合に使用される。ここで、ロボット操作部24dは、外部入力に基づくロボット5の制御においてユーザが操作するロボット用コントローラ(操作盤)であってもよく、ユーザの動きに即したロボット5への動作指令を生成するロボット用入力システムであってもよい。前者のロボット用コントローラは、例えば、動かすロボット5の部位等の指定や動きの指定などを行うための各種ボタン、及び、移動方向を指定するための操作バーなどを含む。後者のロボット用入力システムは、例えば、モーションキャプチャなどにおいて使用される各種センサ(例えば、カメラ、装着用センサ等を含む)を含む。
 以後では、ロボットコントローラ1が生成する動作シーケンスに基づくロボット5の制御(即ちロボット5の自動制御)を「第1ロボット制御」と呼び、ロボット操作部24dを用いたロボット5の制御(即ち外部入力に基づくロボット5の制御)を「第2ロボット制御」と呼ぶ。
 なお、指示装置2のハードウェア構成は、図2(B)に示す構成に限定されない。例えば、入力部24a、表示部24b、音出力部24c、又はロボット操作部24dの少なくともいずれかは、指示装置2と電気的に接続する別体の装置として構成されてもよい。また、指示装置2は、カメラなどの種々の装置と接続してもよく、これらを内蔵してもよい。
 (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には、外部入力による動作指令が必要な(即ち、第2ロボット制御での動作を前提とした)サブタスク(「外部入力型サブタスク」とも呼ぶ。)に関する情報が含まれている。この場合、外部入力型サブタスクに関するサブタスク情報I4には、例えば、外部入力型サブタスクであることを識別する情報(例えばフラグ情報)と、当該外部入力型サブタスクでのロボット5の動作内容を示す情報とが含まれる。
 抽象モデル情報I5は、作業空間におけるダイナミクスを抽象化した抽象モデルに関する情報である。例えば、抽象モデルは、後述するように、現実のダイナミクスをハイブリッドシステムにより抽象化したモデルにより表されている。抽象モデル情報I5は、上述のハイブリッドシステムにおけるダイナミクスの切り替わりの条件を示す情報を含む。切り替わりの条件は、例えば、ロボット5により作業対象となる物(「対象物」とも呼ぶ。)をロボット5が掴んで所定位置に移動させるピックアンドプレイスの場合、対象物はロボット5により把持されなければ移動できないという条件などが該当する。抽象モデル情報I5は、目的タスクの種類毎に適した抽象モデルに関する情報を有している。
 物体モデル情報I6は、計測装置7が生成した計測信号S4から認識すべき作業空間内の各物体の物体モデルに関する情報である。上述の各物体は、例えば、ロボット5、障害物、ロボット5が扱う工具その他の対象物、ロボット5以外の作業体などが該当する。物体モデル情報I6は、例えば、上述した各物体の種類、位置、姿勢、現在実行中の動作などをロボットコントローラ1が認識するために必要な情報と、各物体の3次元形状を認識するためのCAD(Computer Aided Design)データなどの3次元形状情報とを含んでいる。前者の情報は、ニューラルネットワークなどの機械学習における学習モデルを学習することで得られた推論器のパラメータを含む。この推論器は、例えば、画像が入力された場合に、当該画像において被写体となる物体の種類、位置、姿勢等を出力するように予め学習される。
 なお、アプリケーション情報記憶部41は、上述した情報の他、動作シーケンスの生成処理及び出力制御信号S2の生成処理に関する種々の情報を記憶してもよい。
 (4)処理概要
 次に、ロボットコントローラ1の処理概要について説明する。概略的には、ロボットコントローラ1は、第1ロボット制御の実行中において、第2ロボット制御へ切り替える必要があると動作シーケンスに基づき判定した場合に、ロボット5の制御を第2ロボット制御へ切り替える。これにより、ロボットコントローラ1は、ロボット5の自動制御のみでは対応できない場合においても、ロボット5の制御モードを円滑に切り替えて目的タスクを好適に遂行する。
 図4は、ロボットコントローラ1の処理の概要を示す機能ブロックの一例である。ロボットコントローラ1のプロセッサ11は、機能的には、出力制御部15と、動作シーケンス生成部16と、ロボット制御部17と、切替判定部18とを有する。なお、図4では、各ブロック間で授受が行われるデータの一例が示されているが、これに限定されない。後述する他の機能ブロックの図においても同様である。
 出力制御部15は、作業者が使用する指示装置2に所定の情報を表示又は音出力するための出力制御信号S2を生成し、インターフェース13を介して当該出力制御信号S2を指示装置2へ送信する。
 例えば、出力制御部15は、目的タスクの指定に関する入力画面(「タスク指定画面」とも呼ぶ。)を指示装置2に表示させるための出力制御信号S2を生成する。その後、出力制御部15は、タスク指定画面での入力操作により指示装置2が生成した入力信号S1を、指示装置2からインターフェース13を介して受信する。この場合、入力信号S1は、目的タスクを概略的に指定する情報(「タスク指定情報Ia」とも呼ぶ。)を含んでいる。タスク指定情報Iaは、例えば、ロボット5への概略命令に相当する情報であり、ロボット5の具体的な動作を規定する情報(例えば後述する制御入力の情報やサブタスクの情報)を含まない。そして、出力制御部15は、指示装置2から供給される入力信号S1に基づくタスク指定情報Iaを、動作シーケンス生成部16へ供給する。
 他の例では、出力制御部15は、ロボット制御部17が第2ロボット制御を行う制御モードとなった場合に、必要な外部入力を行うために作業者が実行すべき操作を支援する情報(「外部入力支援情報」とも呼ぶ。)を指示装置2に出力させる。この場合、出力制御部15は、外部入力支援情報を表す画面(「外部入力支援画面」とも呼ぶ。)を指示装置2に表示させるための出力制御信号S2を生成し、出力制御信号S2を指示装置2に送信する。外部入力支援画面では、例えば、外部入力により指定すべきロボット5の動作内容に関する情報が外部入力支援情報として表示される。タスク指定画面及び外部入力支援画面については、「(7)ロボット制御部及び出力制御部の詳細」のセクションにおいて詳しく説明する。
 動作シーケンス生成部16は、出力制御部15から供給されるタスク指定情報Iaと、計測信号S4と、記憶装置4が記憶するアプリケーション情報とに基づき、ロボット5に実行させる動作シーケンス「Sr」を生成する。動作シーケンスSrは、目的タスクを達成するためにロボット5が実行すべきサブタスクのシーケンス(サブタスクシーケンス)に相当し、ロボット5の一連の動作を規定する。そして、動作シーケンス生成部16は、生成した動作シーケンスSrをロボット制御部17に供給する。ここで、動作シーケンスSrには、各サブタスクの実行順序及び実行タイミングを示す情報が含まれている。
 ロボット制御部17は、インターフェース13を介して制御信号S3をロボット5に供給することで、ロボット5の動作を制御する。ロボット制御部17は、機能的には、第1ロボット制御部171と、第2ロボット制御部172とを有する。ロボット制御部17は、動作シーケンスSrを動作シーケンス生成部16から受信した後、第1ロボット制御部171によるロボット5の制御(即ち第1ロボット制御)を行う。そして、ロボット制御部17は、切替判定部18から供給される切替指令「Sw」に基づき、第2ロボット制御部172によるロボット5の制御(即ち第2ロボット制御)にロボット5の制御モードを切り替える。
 第1ロボット制御部171は、第1ロボット制御によりロボット5を制御する処理を行う。この場合、第1ロボット制御部171は、動作シーケンス生成部16から供給される動作シーケンスSrに基づき、動作シーケンスSrを構成する各サブタスクを夫々定められた実行タイミング(タイムステップ)でロボット5が実行するための制御を行う。具体的には、ロボット制御部17は、制御信号S3をロボット5に送信することで、動作シーケンスSrを実現するためのロボット5の関節の位置制御又はトルク制御などを実行する。
 第2ロボット制御部172は、第2ロボット制御によりロボット5を制御する処理を行う。この場合、第2ロボット制御部172は、指示装置2のロボット操作部24dにより生成された入力信号S1を、指示装置2からインターフェース13を介して受信する。この入力信号S1は、例えば、ロボット5の具体的な動作を規定する情報(例えば、ロボット5の動作を直接的に定めた制御入力に相当する情報)を含んでいる。そして、第2ロボット制御部172は、受信した入力信号S1に基づき制御信号S3を生成し、生成した制御信号S3をロボット5に送信することで、ロボット5を制御する。ここで、第2ロボット制御部172が生成する制御信号S3は、例えば、ロボット操作部24dが生成した入力信号S1が表す動作指令をロボット5が受け付けることができるように入力信号S1に対して所定の変換処理を行った信号である。なお、このような変換処理がロボット5において行われる場合には、第2ロボット制御部172は、ロボット操作部24dが生成した入力信号S1をそのまま制御信号S3としてロボット5に供給してもよい。
 なお、ロボット制御部17に相当する機能を、ロボットコントローラ1に代えてロボット5が有してもよい。この場合、ロボット5は、動作シーケンス生成部16が生成する動作シーケンスSrと、切替判定部18が生成する切替指令Swと、ロボット操作部24dが生成した入力信号S1とに基づき、第1ロボット制御と第2ロボット制御とを切り替えて実行する。
 切替判定部18は、少なくとも動作シーケンスSrに基づいて、第1ロボット制御から第2ロボット制御への切替の要否判定を行う。そして、切替判定部18は、第1ロボット制御から第2ロボット制御への切替が必要と判定した場合、第1ロボット制御から第2ロボット制御への切替を指示する切替指令Swをロボット制御部17に供給する。切替判定部18による判定処理の詳細は、「(6)切替判定部の詳細」のセクションにおいて詳しく説明する。なお、切替判定部18は、第2ロボット制御から第1ロボット制御への切替の要否についても判定を行い、当該切替が必要と判定した場合に当該切替を指示する切替指令Swをロボット制御部17に供給してもよい。
 ここで、出力制御部15、動作シーケンス生成部16、ロボット制御部17及び切替判定部18の各構成要素は、例えば、プロセッサ11がプログラムを実行することによって実現できる。また、必要なプログラムを任意の不揮発性記憶媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素の少なくとも一部は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組合せ等により実現してもよい。また、これらの各構成要素の少なくとも一部は、例えばFPGA(Field-Programmable Gate Array)又はマイクロコントローラ等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。また、各構成要素の少なくとも一部は、ASSP(Application Specific Standard Produce)、ASIC(Application Specific Integrated Circuit)又は量子コンピュータ制御チップにより構成されてもよい。このように、各構成要素は、種々のハードウェアにより実現されてもよい。以上のことは、後述する他の実施の形態においても同様である。さらに、これらの各構成要素は,例えば,クラウドコンピューティング技術などを用いて、複数のコンピュータの協働によって実現されてもよい。
 (5)動作シーケンス生成部の詳細
 次に、動作シーケンス生成部16の詳細な処理について説明する。
 (5-1)機能ブロック
 図5は、動作シーケンス生成部16の機能的な構成を示す機能ブロックの一例である。動作シーケンス生成部16は、機能的には、抽象状態設定部31と、目標論理式生成部32と、タイムステップ論理式生成部33と、抽象モデル生成部34と、制御入力生成部35と、サブタスクシーケンス生成部36と、を有する。
 抽象状態設定部31は、計測装置7から供給される計測信号S4と、出力制御部15から供給されるタスク指定情報Iaと、抽象状態指定情報I1と、物体モデル情報I6と、に基づき、作業空間内の抽象状態を設定する。この場合、抽象状態設定部31は、目的タスクを実行する際に考慮する必要がある作業空間内の物体を認識し、当該物体に関する認識結果Imを生成する。そして、抽象状態設定部31は、認識結果Imに基づいて、目的タスクを実行する際に考慮する必要がある各抽象状態に対し、論理式で表すための命題を定義する。抽象状態設定部31は、タスク指定情報Iaが供給された場合、設定した抽象状態を示す情報(「抽象状態設定情報IS」とも呼ぶ。)を、目標論理式生成部32に供給する。
 目標論理式生成部32は、抽象状態設定情報ISに基づき、タスク指定情報Iaが示す目的タスクを、最終的な達成状態を表す時相論理の論理式(「目標論理式Ltag」とも呼ぶ。)に変換する。この場合、目標論理式生成部32は、アプリケーション情報記憶部41から制約条件情報I2を参照することで、目的タスクの実行において満たすべき制約条件を、目標論理式Ltagに付加する。そして、目標論理式生成部32は、生成した目標論理式Ltagを、タイムステップ論理式生成部33に供給する。
 タイムステップ論理式生成部33は、目標論理式生成部32から供給された目標論理式Ltagを、各タイムステップでの状態を表した論理式(「タイムステップ論理式Lts」とも呼ぶ。)に変換する。そして、タイムステップ論理式生成部33は、生成したタイムステップ論理式Ltsを、制御入力生成部35に供給する。
 抽象モデル生成部34は、アプリケーション情報記憶部41が記憶する抽象モデル情報I5と、抽象状態設定部31から供給される認識結果Imとに基づき、作業空間における現実のダイナミクスを抽象化した抽象モデル「Σ」を生成する。この場合、抽象モデル生成部34は、対象のダイナミクスを連続ダイナミクスと離散ダイナミクスとが混在したハイブリッドシステムとみなし、ハイブリッドシステムに基づく抽象モデルΣを生成する。抽象モデルΣの生成方法については後述する。抽象モデル生成部34は、生成した抽象モデルΣを、制御入力生成部35へ供給する。
 制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルΣとを満たし、評価関数(たとえば、ロボットによって消費されるエネルギー量を表す関数)を最適化するタイムステップ毎のロボット5への制御入力を決定する。そして、制御入力生成部35は、ロボット5へのタイムステップ毎の制御入力を示す情報(「制御入力情報Icn」とも呼ぶ。)を、サブタスクシーケンス生成部36へ供給する。
 サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icnと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクのシーケンスである動作シーケンスSrを生成し、動作シーケンスSrをロボット制御部17及び切替判定部18へ供給する。
 (5-2)抽象状態設定部
 まず、抽象状態設定部31は、物体モデル情報I6を参照し、作業空間の環境を認識する技術(画像処理技術、画像認識技術、音声認識技術、RFID(Radio Frequency Identifier)を用いる技術等)により計測信号S4を解析することで、認識結果Imを生成する。認識結果Imには、作業空間内の物体の種類、位置、及び姿勢などの情報が含まれている。また、作業空間内の物体は、例えば、ロボット5、ロボット5が取り扱う工具又は部品などの対象物、障害物及び他作業体(ロボット5以外に作業を行う人又はその他の物体)などである。
 次に、抽象状態設定部31は、認識結果Imと、アプリケーション情報記憶部41から取得した抽象状態指定情報I1とに基づき、作業空間内の抽象状態を設定する。この場合、まず、抽象状態設定部31は、抽象状態指定情報I1を参照し、作業空間内において設定すべき抽象状態を認識する。なお、作業空間内において設定すべき抽象状態は、目的タスクの種類によって異なる。よって、目的タスクの種類毎に設定すべき抽象状態が抽象状態指定情報I1に規定されている場合には、抽象状態設定部31は、タスク指定情報Iaが示す目的タスクに対応する抽象状態指定情報I1を参照し、設定すべき抽象状態を認識する。
 図6は、ピックアンドプレイスを目的タスクとした場合の作業空間の俯瞰図を示す。図6に示す作業空間には、2つのロボットアーム52a、52bと、4つの対象物61(61a~61d)と、障害物62と、対象物61の目的地である領域Gとが存在している。
 この場合、まず、抽象状態設定部31は、対象物61の状態、障害物62の存在範囲、ロボット5の状態、領域Gの存在範囲等を認識する。
 ここでは、抽象状態設定部31は、対象物61a~61dの各々の中心の位置ベクトル「x」~「x」を、対象物61a~61dの位置として認識する。また、抽象状態設定部31は、対象物を把持するロボットハンド53aの位置ベクトル「xr1」と、ロボットハンド53bの位置ベクトル「xr2」とを、ロボットアーム52aとロボットアーム52bの位置として認識する。
 同様に、抽象状態設定部31は、対象物61a~61dの姿勢(図6の例では対象物が球状のため不要)、障害物62の存在範囲、領域Gの存在範囲等を認識する。なお、抽象状態設定部31は、例えば、障害物62を直方体とみなし、領域Gを矩形とみなす場合には、障害物62及び領域Gの各頂点の位置ベクトルを認識する。
 また、抽象状態設定部31は、抽象状態指定情報I1を参照することで、目的タスクにおいて定義すべき抽象状態を決定する。この場合、抽象状態設定部31は、作業空間内に存在する物体に関する認識結果Im(例えば物体の種類毎の個数)と、抽象状態指定情報I1とに基づき、抽象状態を示す命題を定める。
 図6の例では、抽象状態設定部31は、認識結果Imにより特定される対象物61a~61dに対し、夫々識別ラベル「1」~「4」を付す。また、抽象状態設定部31は、対象物「i」(i=1~4)が最終的に載置されるべき目標地点である領域G内に存在するという命題「g」を定義する。また、抽象状態設定部31は、障害物62に対して識別ラベル「O」を付し、対象物iが障害物Oに干渉しているという命題「o」を定義する。さらに、抽象状態設定部31は、ロボットアーム52同士が干渉するという命題「h」を定義する。なお、抽象状態設定部31は、対象物「i」が作業テーブル(初期状態で対象物及び障害物が存在するテーブル)内に存在するという命題「v」、作業テーブル及び領域G以外の作業外領域に対象物が存在するという命題「w」などをさらに定めてもよい。作業外領域は、例えば、対象物が作業テーブルから落下した場合に対象物が存在する領域(床面等)である。
 このように、抽象状態設定部31は、抽象状態指定情報I1を参照することで、定義すべき抽象状態を認識し、当該抽象状態を表す命題(上述の例ではg、o、h等)を、対象物61の数、ロボットアーム52の数、障害物62の数、ロボット5の数等に応じてそれぞれ定義する。そして、抽象状態設定部31は、抽象状態を表す命題を示す情報を、抽象状態設定情報ISとして目標論理式生成部32に供給する。
 (5-3)目標論理式生成部
 まず、目標論理式生成部32は、タスク指定情報Iaが示す目的タスクを、時相論理を用いた論理式に変換する。
 例えば、図6の例において、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクが与えられたとする。この場合、目標論理式生成部32は、目的タスクを線形論理式(LTL:Linear Temporal Logic)の「eventually」に相当する演算子「◇」と、抽象状態設定部31により定義された命題「g」と用いて、論理式「◇g」を生成する。また、目標論理式生成部32は、演算子「◇」以外の任意の時相論理の演算子(論理積「∧」、論理和「∨」、否定「¬」、論理包含「⇒」、always「□」、next「○」、until「U」等)を用いて論理式を表現してもよい。また、線形時相論理に限らず、MTL(Metric Temporal Logic)やSTL(Signal Temporal Logic)などの任意の時相論理を用いて論理式を表現してもよい。
 なお、タスク指定情報Iaは、自然言語により目的タスクを指定する情報であってもよい。自然言語で表されたタスクを論理式に変換する方法は、種々の技術が存在する。
 次に、目標論理式生成部32は、制約条件情報I2が示す制約条件を、目的タスクを示す論理式に付加することで、目標論理式Ltagを生成する。
 例えば、図6に示すピックアンドプレイスに対応する制約条件として、「ロボットアーム52同士が常に干渉しない」、「対象物iは障害物Oに常に干渉しない」の2つが制約条件情報I2に含まれていた場合、目標論理式生成部32は、これらの制約条件を論理式に変換する。具体的には、目標論理式生成部32は、図6の説明において抽象状態設定部31により定義された命題「o」及び命題「h」を用いて、上述の2つの制約条件を、夫々以下の論理式に変換する。
       □¬h
       ∧□¬o
 よって、この場合、目標論理式生成部32は、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクに対応する論理式「◇g」に、これらの制約条件の論理式を付加することで、以下の目標論理式Ltagを生成する。
       (◇g)∧(□¬h)∧(∧□¬o
 なお、実際には、ピックアンドプレイスに対応する制約条件は、上述した2つに限られず、「ロボットアーム52が障害物Oに干渉しない」、「複数のロボットアーム52が同じ対象物を掴まない」、「対象物同士が接触しない」などの制約条件が存在する。このような制約条件についても同様に、制約条件情報I2に記憶され、目標論理式Ltagに反映される。
 (5-4)タイムステップ論理式生成部
 タイムステップ論理式生成部33は、目的タスクを完了するタイムステップ数(「目標タイムステップ数」とも呼ぶ。)を定め、目標タイムステップ数で目標論理式Ltagを満たすような各タイムステップでの状態を表す命題の組み合わせを定める。この組み合わせは、通常複数存在するため、タイムステップ論理式生成部33は、これらの組み合わせを論理和により結合した論理式を、タイムステップ論理式Ltsとして生成する。上述の組み合わせは、ロボット5に命令する動作のシーケンスを表す論理式の候補となり、以後では「候補φ」とも呼ぶ。
 ここで、図6の説明において例示した「最終的に対象物(i=2)が領域Gに存在する」という目的タスクが設定された場合のタイムステップ論理式生成部33の処理の具体例について説明する。
 この場合、以下の目標論理式Ltagが目標論理式生成部32からタイムステップ論理式生成部33へ供給される。
       (◇g)∧(□¬h)∧(∧□¬o
 この場合、タイムステップ論理式生成部33は、命題「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
 よって、タイムステップ論理式生成部33は、4つの候補φ~φの論理和をタイムステップ論理式Ltsとして定める。この場合、タイムステップ論理式Ltsは、4つの候補φ~φの少なくともいずれかが真となる場合に真となる。
 次に、目標タイムステップ数の設定方法について補足説明する。
 タイムステップ論理式生成部33は、例えば、指示装置2から供給される入力信号S1により指定された作業の見込み時間に基づき、目標タイムステップ数を決定する。この場合、タイムステップ論理式生成部33は、メモリ12又は記憶装置4に記憶された、1タイムステップ当たりの時間幅の情報に基づき、上述の見込み時間から目標タイムステップ数を算出する。他の例では、タイムステップ論理式生成部33は、目的タスクの種類毎に適した目標タイムステップ数を対応付けた情報を予めメモリ12又は記憶装置4に記憶しておき、当該情報を参照することで、実行すべき目的タスクの種類に応じた目標タイムステップ数を決定する。
 好適には、タイムステップ論理式生成部33は、目標タイムステップ数を所定の初期値に設定する。そして、タイムステップ論理式生成部33は、制御入力生成部35が制御入力を決定できるタイムステップ論理式Ltsが生成されるまで、目標タイムステップ数を徐々に増加させる。この場合、タイムステップ論理式生成部33は、設定した目標タイムステップ数により制御入力生成部35が最適化処理を行った結果、最適解を導くことができなかった場合、目標タイムステップ数を所定数(1以上の整数)だけ加算する。
 このとき、タイムステップ論理式生成部33は、目標タイムステップ数の初期値を、ユーザが見込む目的タスクの作業時間に相当するタイムステップ数よりも小さい値に設定するとよい。これにより、タイムステップ論理式生成部33は、不必要に大きな目標タイムステップ数を設定することを好適に抑制する。
 (5-5)抽象モデル生成部
 抽象モデル生成部34は、抽象モデル情報I5と、認識結果Imとに基づき、抽象モデルΣを生成する。ここで、抽象モデル情報I5には、目的タスクの種類毎に、抽象モデルΣの生成に必要な情報が記録されている。例えば、目的タスクがピックアンドプレイスの場合には、対象物の位置や数、対象物を置く領域の位置、ロボット5の台数(又はロボットアーム52の数)等を特定しない汎用的な形式の抽象モデルが抽象モデル情報I5に記録されている。そして、抽象モデル生成部34は、抽象モデル情報I5に記録された、ロボット5のダイナミクスを含む汎用的な形式の抽象モデルに対し、認識結果Imを反映することで、抽象モデルΣを生成する。これにより、抽象モデルΣは、作業空間内の物体の状態と、ロボット5のダイナミクスとが抽象的に表されたモデルとなる。作業空間内の物体の状態は、ピックアンドプレイスの場合には、対象物の位置及び数、対象物を置く領域の位置、ロボット5の台数等を示す。
 なお、他作業体が存在する場合、他作業体の抽象化されたダイナミクスに関する情報が抽象モデル情報I5に含まれてもよい。この場合、抽象モデルΣは、作業空間内の物体の状態と、ロボット5のダイナミクスと、他作業体のダイナミクスとが抽象的に表されたモデルとなる。
 ここで、ロボット5による目的タスクの作業時においては、作業空間内のダイナミクスが頻繁に切り替わる。例えば、ピックアンドプレイスでは、ロボットアーム52が対象物iを掴んでいる場合には、当該対象物iを動かすことができるが、ロボットアーム52が対象物iを掴んでない場合には、当該対象物iを動かすことができない。
 以上を勘案し、本実施形態においては、ピックアンドプレイスの場合、対象物iを掴むという動作を論理変数「δ」により抽象表現する。この場合、例えば、抽象モデル生成部34は、図6に示す作業空間に対して設定すべき抽象モデルΣを、以下の式(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の手先であるロボットハンドのダイナミクスのみを考慮している。これにより、制御入力生成部35による最適化処理の計算量を好適に削減することができる。
 また、抽象モデル情報I5には、ダイナミクスが切り替わる動作(ピックアンドプレイスの場合には対象物iを掴むという動作)に対応する論理変数、及び、認識結果Imから式(1)の差分方程式を導出するための情報が記録されている。よって、抽象モデル生成部34は、対象物の位置や数、対象物を置く領域(図6では領域G)、ロボット5の台数等が変動する場合であっても、抽象モデル情報I5と認識結果Imとに基づき、対象の作業空間の環境に即した抽象モデルΣを決定することができる。
 なお、抽象モデル生成部34は、式(1)に示されるモデルに代えて、混合論理動的(MLD:Mixed Logical Dynamical)システムまたはペトリネットやオートマトンなどを組み合わせたハイブリッドシステムのモデルを生成してもよい。
 (5-6)制御入力生成部
 制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルΣとに基づき、最適となるタイムステップ毎のロボット5に対する制御入力を決定する。この場合、制御入力生成部35は、目的タスクに対する評価関数を定義し、抽象モデルΣ及びタイムステップ論理式Ltsを制約条件として評価関数を最小化する最適化問題を解く。評価関数は、例えば、目的タスクの種類毎に予め定められ、メモリ12又は記憶装置4に記憶されている。
 例えば、ピックアンドプレイスを目的タスクとした場合、制御入力生成部35は、運ぶ対象となる対象物と当該対象物を運ぶ目標地点との距離「d」と制御入力「u」とが最小となる(即ちロボット5が費やすエネルギーを最小化する)ように評価関数を定める。上述の距離dは、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクの場合には、対象物(i=2)と領域Gとのタイムステップkでの距離に相当する。
 この場合、制御入力生成部35は、全タイムステップにおける距離dのノルムの2乗と制御入力uのノルムの2乗との和を評価関数として定める。そして、制御入力生成部35は、抽象モデルΣ及びタイムステップ論理式Lts(即ち候補φの論理和)を制約条件とする以下の式(2)に示す制約付き混合整数最適化問題を解く。
Figure JPOXMLDOC01-appb-M000004
 ここで、「T」は、最適化の対象となるタイムステップ数であり、目標タイムステップ数であってもよく、後述するように、目標タイムステップ数よりも小さい所定数であってもよい。この場合、好適には、制御入力生成部35は、論理変数を連続値に近似する(連続緩和問題とする)。これにより、制御入力生成部35は、計算量を好適に低減することができる。なお、線形論理式(LTL)に代えてSTLを採用した場合には、非線形最適化問題として記述することが可能である。
 また、制御入力生成部35は、目標タイムステップ数が長い場合(例えば所定の閾値より大きい場合)、最適化に用いるタイムステップ数を、目標タイムステップ数より小さい値(例えば上述の閾値)に設定してもよい。この場合、制御入力生成部35は、例えば、所定のタイムステップ数が経過する毎に、上述の最適化問題を解くことで、逐次的に制御入力uを決定する。
 好適には、制御入力生成部35は、目的タスクの達成状態に対する中間状態に相当する所定のイベント毎に、上述の最適化問題を解き、使用すべき制御入力uを決定してもよい。この場合、制御入力生成部35は、次のイベント発生までのタイムステップ数を、最適化に用いるタイムステップ数に設定する。上述のイベントは、例えば、作業空間におけるダイナミクスが切り替わる事象である。例えば、ピックアンドプレイスを目的タスクとした場合には、ロボット5が対象物を掴む、ロボット5が運ぶべき複数の対象物のうちの1つの対象物を目的地点へ運び終える、などがイベントとして定められる。イベントは、例えば、目的タスクの種類毎に予め定められており、目的タスクの種類毎にイベントを特定する情報が記憶装置4に記憶されている。
 (5-7)サブタスクシーケンス生成部
 サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icnと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、動作シーケンスSrを生成する。この場合、サブタスクシーケンス生成部36は、サブタスク情報I4を参照することで、ロボット5が受け付け可能なサブタスクを認識し、制御入力情報Icnが示すタイムステップ毎の制御入力をサブタスクに変換する。
 例えば、サブタスク情報I4には、ピックアンドプレイスを目的タスクとする場合にロボット5が受け付け可能なサブタスクとして、ロボットハンドの移動(リーチング)とロボットハンドの把持(グラスピング)の2つのサブタスクを示す関数が定義されている。この場合、リーチングを表す関数「Move」は、例えば、当該関数実行前のロボット5の初期状態、当該関数実行後のロボット5の最終状態、及び当該関数の実行に要する所要時間をそれぞれ引数とする関数である。また、グラスピングを表す関数「Grasp」は、例えば、当該関数実行前のロボット5の状態、及び当該関数実行前の把持対象の対象物の状態、論理変数δをそれぞれ引数とする関数である。ここで、関数「Grasp」は、論理変数δが「1」のときに掴む動作を行うこと表し、論理変数δが「0」のときに放す動作を行うこと表す。この場合、サブタスクシーケンス生成部36は、関数「Move」を、制御入力情報Icnが示すタイムステップ毎の制御入力により定まるロボットハンドの軌道に基づき決定し、関数「Grasp」を、制御入力情報Icnが示すタイムステップ毎の論理変数δの遷移に基づき決定する。
 そして、サブタスクシーケンス生成部36は、関数「Move」と関数「Grasp」とにより構成される動作シーケンスSrを生成し、当該動作シーケンスSrをロボット制御部17に供給する。例えば、目的タスクが「最終的に対象物(i=2)が領域Gに存在する」の場合、サブタスクシーケンス生成部36は、対象物(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に載置する。
 (6)切替判定部の詳細
 切替判定部18による第1ロボット制御から第2ロボット制御への切替の具体的形態である第1形態及び第2形態について順に説明する。第1形態では、ロボットコントローラ1は、動作シーケンスSrに組み込まれた外部入力型サブタスクに基づき、第2ロボット制御へのロボット5の制御の切替を計画的に実行する。一方、第2形態では、ロボットコントローラ1は、何らかの異常が発生した場合に、第2ロボット制御へのロボット5の制御の切替を緊急的に実行する。そして、これらのいずれの形態においても、切替判定部18は、第1ロボット制御から第2ロボット制御への切替を円滑に行う。
 (6-1)第1形態
 第1形態では、切替判定部18は、第2ロボット制御による実行が予め定められている外部入力型サブタスクの実行の有無に基づき、第1ロボット制御から第2ロボット制御への切替の要否を判定する。なお、サブタスク情報I4には、外部入力型サブタスクに関する情報が含まれている。そして、切替判定部18は、動作シーケンスSrの一部として組み込まれた外部入力型サブタスクの実行タイミングであると判定した場合、第1ロボット制御から第2ロボット制御への切替を指示する切替指令Swを、ロボット制御部17に供給する。
 ここで、第1形態における、外部入力型サブタスクの実行タイミングの認識方法について補足説明する。
 例えば、切替判定部18は、動作シーケンスSrの各サブタスクに関連付けられたタイムステップの情報に基づき、外部入力型サブタスクの実行タイミングを認識する。この場合、切替判定部18は、外部入力型サブタスクに対応するタイムステップに相当する時刻になった場合に、当該外部入力型サブタスクの実行タイミングとみなし、第1ロボット制御から第2ロボット制御への切替を指示する切替指令Swを、ロボット制御部17に供給する。
 他の例では、切替判定部18は、ロボット5又はロボット制御部17から供給されるサブタスクの完了通知に基づき、動作シーケンスSrを構成する各サブタスクの完了判定を行い、ロボット5が現在どのサブタスクを実行中であるかを認識する。この場合においても、切替判定部18は、外部入力型サブタスクの実行タイミングを好適に認識することができる。なお、切替判定部18は、計測信号S4に基づき、ロボット5が現在どのサブタスクを実行中であるかを認識することで、外部入力型サブタスクの実行タイミングを認識してもよい。この場合、切替判定部18は、例えば、深層学習などを用いたパターン認識技術を用い、作業空間を撮影した画像などの計測信号S4を解析し、ロボット5が実行中の又は実行すべきサブタスクを認識する。
 第1形態によれば、切替判定部18は、第2ロボット制御が必要な動作をロボット5に計画的に実行させる場合に、第1ロボット制御から第2ロボット制御へのロボット5の制御の切替を円滑に実行することができる。
 (6-2)第2形態
 次に、第2形態について説明する。第2形態では、切替判定部18は、動作シーケンスSrと、計測されたロボット5の動作実行状況とに基づき、第1ロボット制御の継続の適否を判定する。この場合、切替判定部18は、動作シーケンスSrの生成時の計画に従い動作シーケンスSrを実行した場合に予測される状況と、計測された動作実行状況との間に所定量以上の時間的なずれ又は空間的なずれが生じた場合に、第1ロボット制御の継続が不適当とみなす。そして、切替判定部18は、第1ロボット制御の継続に支障があると判定した場合に、第1ロボット制御の継続が不適当とみなし、第2ロボット制御へ切り替える必要があると判定する。
 (6-2-1)時間的なずれに基づく第1ロボット制御の継続の適否判定
 まず、第2形態において、時間的なずれに基づく第1ロボット制御の継続の適否判定の具体例について具体的に説明する。
 この場合、例えば、切替判定部18は、第1ロボット制御の実行中において、動作シーケンスSrと、ロボット5の動作実行状況とに基づき、動作シーケンスSrに基づく計画に対する時間的ずれ量である遅延時間長を算出する。そして、切替判定部18は、算出した遅延時間長に基づき、第1ロボット制御の継続適否を判定する。そして、切替判定部18は、ロボット5の動作実行状況が動作シーケンスSrに基づく計画よりも所定時間長以上遅延が生じている場合に、何らかの異常(エラー)が生じており、第1ロボット制御の継続が不適当であると判定する。
 例えば、切替判定部18は、完了に必要なタイムステップ数(即ち所要時間長)よりも所定タイムステップ数以上の遅延が生じているサブタスクが存在する場合、当該サブタスクの実行に関してエラーが発生しており、第1ロボット制御の継続が不可能であると判定する。この場合、切替判定部18は、遅延が生じているサブタスクについては、第2ロボット制御により実行すべきと判定し、当該サブタスクに関して第2ロボット制御から第1ロボット制御への切替を指示する切替指令Swを、ロボット制御部17に送信する。上述の「所定タイムステップ数」については、例えば、記憶装置4又はメモリ12等に予め適合値が記憶されている。この例によれば、切替判定部18は、何らかの異常発生に起因して遅延が生じているサブタスクを的確に特定し、当該サブタスクを実行するための第1ロボット制御から第2ロボット制御への切替を円滑に行うことができる。
 なお、切替判定部18は、サブタスク毎に動作シーケンスSrに基づく計画に対する遅延の有無を判定する代わりに、対象物ごとに上記遅延の有無を判定してもよい。この場合、切替判定部18は、例えば、動作シーケンスSrに基づいて対象物ごとに必要なタイムステップ数を認識し、かつ、対象物ごとに実際に要しているタイムステップ数をカウントする。そして、切替判定部18は、必要なタイムステップ数よりも実際に要しているタイムステップ数が所定数以上多くなった場合に、当該対象物に関して第2ロボット制御により実行する必要があると判定する。この場合、切替判定部18は、例えば、当該対象物に関する動作については第2ロボット制御を実行すべきと判定し、第2ロボット制御への切替を指示する切替指令Swをロボット制御部17に送信する。
 さらに別の例では、切替判定部18は、目的タスクの開始(即ち、動作シーケンスSrがロボット制御部17に供給された時点)から所定時間長が経過した場合に、遅延が発生していると判定し、第2ロボット制御への切り替えが必要と判定してもよい。上述の所定時間長は、動作シーケンスSrにおいて計画されるタイムステップ数に基づき設定されてもよく、記憶装置4等に予め記憶された目的タスクの予測される所要時間長に基づき設定されてもよい。
 このように、時間的なずれに基づく第1ロボット制御の継続の適否判定によれば、切替判定部18は、異常状態に対処するための第1ロボット制御から第2ロボット制御への切替を円滑に行うことができる。
 (6-2-2)空間的なずれに基づく第1ロボット制御の継続の適否判定
 次に、第2形態において、空間的なずれに基づく第1ロボット制御の継続の適否判定の具体例について具体的に説明する。
 この場合、切替判定部18は、第1ロボット制御の実行中において、動作シーケンスSrと、ロボット5の動作実行状況とに基づき、動作シーケンスSrに基づく計画に対する空間的ずれ量を算出し、当該空間的ずれ量に基づき、第1ロボット制御の継続適否を判定する。そして、切替判定部18は、ロボット5の動作実行状況が動作シーケンスSrに基づく計画よりも所定量以上空間的ずれが生じている場合に、何らかの異常(エラー)が生じており、第1ロボット制御の継続が不適当であると判定する。
 具体的には、切替判定部18は、動作シーケンスSrを正常に実行した場合に予測されるロボット5の位置の軌跡(「予測移動軌跡」とも呼ぶ。)と、計測信号S4に基づき計測されたロボット5の実際の位置の軌跡(「実移動軌跡」とも呼ぶ。)とを定量的に比較する。この場合の「移動軌跡」は、例えば、タイムステップごと又は所定時間間隔ごとの位置の軌跡を示す。そして、切替判定部18は、ロボット5の予測移動軌跡とロボット5の実移動軌跡とが類似していないと判定した場合に、異常が発生しており、第1ロボット制御の継続が不可能であると判定する。なお、予測移動軌跡を構成するロボット5の位置情報は、例えば制御入力生成部35による最適化処理により算出されている。
 ここで、上述した移動軌跡の類否判定の方法について補足説明する。切替判定部18は、例えば、複数の移動軌跡の定量的な類似度を算出する任意の技術を用い、ロボット5の予測移動軌跡とロボット5の実移動軌跡との類似度を算出する。この場合、類似度は、例えばICP(Iterative Closest Point)などにより対応付けられた軌跡の点同士の距離の総和又は最大値等により表されてもよい。そして、切替判定部18は、当該類似度が所定値以下の場合に、第1ロボット制御の継続が不可能であると判定する。この場合、切替判定部18は、例えば、抽象状態を設定したロボット5の部位(図6の例では、ロボットハンド53a、53b)について、予測移動軌跡と実移動軌跡との類似度を算出する。
 このように、空間的なずれに基づく第1ロボット制御の継続の適否判定によっても、切替判定部18は、異常状態に対処するための第1ロボット制御から第2ロボット制御への切替を円滑に行うことができる。
 なお、切替判定部18は、ロボット5の移動軌跡の代わりに、又は、これに加えて、対象物の移動軌跡に基づき、第1ロボット制御の継続可否を判定してもよい。この場合、切替判定部18は、例えば、対象物の予測移動軌跡と、計測信号S4に基づき計測された対象物の実移動軌跡との類似度を算出し、当該類似度が所定値以下の場合に、第1ロボット制御の継続が不可能であると判定する。
 (6-2-3)他の判定方法
 切替判定部18は、目的タスクの完了までの1または複数の中間状態に基づき、複数の動作シーケンスSrが逐次的に生成される場合に、いずれかの動作シーケンスSrが正常に完了しなかったときに、第2ロボット制御への切替が必要と判定してもよい。
 この場合、前提として、動作シーケンス生成部16は、目的タスクの完了状態(ゴール)に至るまでの1又は複数の中間状態(「サブゴール」とも呼ぶ。)を設定するものとする。そして、動作シーケンス生成部16は、サブゴールに基づき、目的タスクの開始から完了までに必要な複数の動作シーケンスSrを逐次的に生成する。具体的には、動作シーケンス生成部16は、初期状態からサブゴール、サブゴールから次のサブゴール、最後のサブゴールから完了状態(ゴール)へ夫々移行するための動作シーケンスSrを、逐次的に生成する。例えば、目的タスクごとにサブゴールの設定に必要な情報が予め記憶装置4に記憶されており、動作シーケンス生成部16は、この情報を参照することで、サブゴールの設定を行う。上述の情報は、例えば、ピックアンドプレイスの場合には、1つの動作シーケンスSrにおいて対象物を移動させる最大個数の情報である。
 そして、切替判定部18は、動作シーケンスSrごとにロボット制御部17から供給される完了通知等に基づき、各動作シーケンスSrが正常完了したか否か判定し、いずれかの動作シーケンスSrが正常に完了しなかったときに、切替指令Swを生成する。切替判定部18は、例えば、同一のサブゴールに対する動作シーケンスSrが連続して生成されたと判定した場合に、対象のサブゴールが完了しない何らかの異常が発生したと判定し、切替指令Swをロボット制御部17に供給してもよい。
 この例においても、切替判定部18は、第1ロボット制御から第2ロボット制御への切替の要否を的確に判定することができる。
 (7)ロボット制御部及び出力制御部の詳細
 出力制御部15の処理の詳細について説明する。以後では、出力制御部15の制御に基づき指示装置2が表示するタスク指定画面と外部入力支援画面の各表示例について、図7~図9を参照して説明する。
 図7は、目的タスクを指定するタスク指定画面の表示例を示す。出力制御部15は、出力制御信号S2を生成し、当該出力制御信号S2を指示装置2に送信することで、指示装置2に図7に示すタスク指定画面を表示するよう制御している。図7に示すタスク指定画面は、主に、タスク種類指定欄25と、作業空間表示欄26と、各種ボタン28(28a、28b)とを有する。
 出力制御部15は、タスク種類指定欄25において、目的タスクの種類を指定する入力を受け付ける。ここでは、一例として、タスク種類指定欄25はプルダウンメニュー形式の入力欄であり、出力制御部15は、受付可能な目的タスクの種類の候補を、タスク種類指定欄25において選択可能に一覧表示する。ここでは、タスク種類指定欄25には、ピックアンドプレイスが目的タスクの種類として指定されている。
 また、出力制御部15は、作業空間表示欄26において、計測装置7が作業空間内を撮像した画像(作業空間画像)を表示し、タスク種類指定欄25において指定された目的タスクの実行に必要な指定を受け付ける。図7の例では、出力制御部15は、タスク種類指定欄25で選択されたピックアンドプレイスに対応する抽象状態指定情報I1を参照し、ロボット5により作業対象となる対象物と、対象物の目的地とを定める必要があると認識する。よって、出力制御部15は、作業空間表示欄26上で対象物と目的地とを夫々指定する入力を受け付ける。ここでは、一例として、出力制御部15は、対象物を指定したマーク27a~27dを実線により表示し、目的地を指定したマーク27eを破線により表示している。そして、出力制御部15は、対象物決定ボタン28aが選択されたことを検知した場合、ユーザが描いたマーク27a~27dの位置情報を、対象物の位置を特定する情報として認識する。また、出力制御部15は、さらに目的地決定ボタン28bが選択されたことを検知した場合、対象物決定ボタン28aの選択後にユーザが描いたマーク27eの位置情報を、目的地を特定する情報として認識する。そして、出力制御部15は、これらの対象物及び目的地を特定する情報(ここでは作業空間画像上での各マークの位置情報)を、タスク指定情報Iaとして動作シーケンス生成部16に供給する。
 このように、図7に示されるタスク指定画面によれば、出力制御部15は、目的タスクの種類の指定及び目的タスクに関連する物体の指定に関するユーザ入力を好適に受け付け、タスク指定情報Iaを好適に取得することができる。
 なお、出力制御部15は、対象物及び目的地を丸印で囲む入力を受け付ける代わりに、タッチ操作又はクリック操作により対象物及び目的地を構成する一部の画素を夫々指定する入力を受け付けてもよい。この場合、出力制御部15は、指定された各画素の位置情報を、対象物及び目的地を夫々特定する情報とみなし、タスク指定情報Iaとして動作シーケンス生成部16に供給する。
 また、出力制御部15は、対象物及び目的地に関する認識結果Imに基づき、作業空間表示欄26上でのユーザ入力によらずにタスク指定情報Iaを生成してもよい。なお、出力制御部15は、計測装置7が生成した作業空間画像を作業空間表示欄26に表示する代わりに、作業空間内の環境を再現したCAD画像を作業空間表示欄26に表示してもよい。この場合、出力制御部15は、抽象状態設定部31が生成した認識結果Imと、対象物等に関するCADデータを記録した物体モデル情報I6とに基づき、作業空間内の環境を再現したCAD画像を生成する。
 図8は、切替判定部18による第1ロボット制御から第2ロボット制御の切替態様が第1形態である場合の外部入力支援画面の第1表示例を示す。出力制御部15は、出力制御信号S2を生成し、当該出力制御信号S2を指示装置2に送信することで、指示装置2に図8に示す外部入力支援画面を表示するよう制御している。図8に示す外部入力支援画面は、主に、作業空間表示欄26Aと、動作内容表示領域29とを有している。
 ここで、作業空間表示欄26Aには、現在の作業空間を撮影した画像又は現在の作業空間を模式的に表すCAD画像である作業空間画像が表示されており、動作内容表示領域29には、外部入力によりロボット5を動作させる必要がある内容が表示されている。なお、ここでは、一例として、対象となる外部入力型サブタスクは、障害物に隣接してロボット5が直接把持することができない対象物を把持可能な位置まで移動させて掴むサブタスクであるものとする。また、図8では、図6におけるロボットアーム52aを「第1アーム」、ロボットアーム52bを「第2アーム」と表記している。
 図8に示す外部入力支援画面が表示されるまでの処理の流れについて説明する。まず、切替判定部18は、第2ロボット制御が必要な外部入力型サブタスク(ここでは、対象物を把持可能な位置まで移動させて掴む)の実行タイミングであると判定し、切替指令Swをロボット制御部17に送信する。そして、ロボット制御部17は、切替指令Swの受信後、第2ロボット制御部172による第2ロボット制御へ制御モードを移行する。そして、第2ロボット制御へ制御モードが移行した場合、出力制御部15は、例えば、対象の外部入力型サブタスクの動作内容を示すサブタスク情報I4と、動作シーケンスSrとに基づき、外部入力により作業者が指示する必要があるロボット5の動作内容等を認識する。そして、出力制御部15は、認識したロボット5の動作内容等に基づく外部入力支援画面を表示するための出力制御信号S2を生成し、生成した出力制御信号S2を指示装置2に供給する。
 図8の例では、出力制御部15は、第2ロボット制御(マニュアル制御)に切り替わった旨、及び、ロボット5に実行させる動作内容(ここでは、対象物を所定位置まで移動させて第1アームにより掴むこと)を指示するガイド文章を動作内容表示領域29上に表示している。また、出力制御部15は、作業空間表示欄26Aに表示される作業空間画像上において、作業対象となる対象物を囲む太丸枠71と、対象物の移動先を示す破線丸枠72と、ロボット5の各アームの名称(第1アーム、第2アーム)とを表示している。作業空間表示欄26Aにおいてこのような表示を追加することで、出力制御部15は、動作内容表示領域29のテキスト文を参照する作業者に対し、作業に必要なロボットアーム、及び、作業対象となる対象物とその移動先を好適に認識させることができる。
 ここで、動作内容表示領域29において示されるロボット5の動作内容は、対象の外部入力型サブタスクの次のサブタスクに遷移するための条件(「シーケンス遷移条件」とも呼ぶ。)を満たすものとなっている。シーケンス遷移条件は、生成された動作シーケンスSrにおいて想定されている対象の外部入力型サブタスクの終了状態(あるいは次のサブタスクの開始状態)を示す条件に相当する。図8の例におけるシーケンス遷移条件は、第1アームが所定位置において対象物を掴んだ状態であることを示す。このように、出力制御部15は、シーケンス遷移条件を満たすために必要な動作を指示したガイド文章を動作内容表示領域29において表示することで、次のサブタスクへ円滑に遷移するために必要な外部入力を好適に支援することができる。なお、図8の動作内容表示領域29及び作業空間表示欄26Aに表示される情報は、外部入力支援情報の一例である。
 以上のように、図8に示す外部入力支援画面によれば、第2ロボット制御が必要な外部入力型サブタスクの実行時において、適切な外部入力がなされるように好適に作業者を支援することができる。
 図9は、切替判定部18による第1ロボット制御から第2ロボット制御の切替態様が第2形態である場合の外部入力支援画面の第2表示例を示す。出力制御部15は、出力制御信号S2を生成し、当該出力制御信号S2を指示装置2に送信することで、指示装置2に図9に示す外部入力支援画面を表示するよう制御している。図9に示す外部入力支援画面は、主に、作業空間表示欄26Aと、動作内容表示領域29とを有している。
 図9の例では、何らかのアクシデントによって、1つの対象物が障害物の裏に転がってしまい、当該対象物がロボットアームにより直接把持ができない状態となっている。この場合、切替判定部18は、動作シーケンスSrに基づく計画との時間的又は/空間的なずれが発生していること等を検知したことから、第1ロボット制御の継続が不適であると判定し、切替指令Swをロボット制御部17に送信する。そして、ロボット制御部17は、第2ロボット制御部172による第2ロボット制御へ制御モードを移行する。
 そして、出力制御部15は、図9に示すように、対象物のピックアンドプレースに関して異常が発生したことにより第2ロボット制御に移行した旨、及び、当該対象物をゴール地点に移動させる外部入力が必要である旨を、動作内容表示領域29上に表示する。また、出力制御部15は、作業空間表示欄26Aに表示される画像上において、作業対象となる対象物を囲む太丸枠73と、ロボット5の各アームの名称(第1アーム、第2アーム)とを表示している。
 このように、図9に示す外部入力支援画面によれば、異常の発生により第2ロボット制御が必要となった場合に、作業者による適切な外部入力がなされるように好適に作業者を支援することができる。
 ここで、第2ロボット制御の対象となるロボット5の動作について補足説明する。図9では、出力制御部15は、作業対象となる対象物に対する作業完了までのロボット5の動作が第2ロボット制御により行われるように、対象物を第2ロボット制御によりゴール地点に移動させることを指示する情報を動作内容表示領域29に表示した。しかし、第2ロボット制御の対象となるロボット5の動作はこれに限定されない。
 例えば、出力制御部15は、現在停滞しているサブタスク(「停滞サブタスク」とも呼ぶ。)に関する動作のみ第2ロボット制御により行われるように、停滞サブタスクに対応する外部入力を促す情報を動作内容表示領域29に表示してもよい。図9の例では、障害物に近接する対象物の把持のサブタスクが完了できないことから、出力制御部15は、当該対象物の把持までの外部入力を促す情報を動作内容表示領域29に表示してもよい。そして、切替判定部18は、第2ロボット制御により対象物の把持が行われたことを検知した場合、第2ロボット制御から第1ロボット制御への切替を指示する切替指令Swをロボット制御部17に送信する。その後、ロボット制御部17の第1ロボット制御部171は、停滞サブタスクの次のサブタスクの実行を行う。
 他の例では、外部入力支援画面には、第2ロボット制御の終了を指示するボタンが設けられ、切替判定部18は、当該ボタンが選択されたことを検知した場合に、第2ロボット制御を終了すべきと判定してもよい。この場合、例えば、切替判定部18は、第2ロボット制御から第1ロボット制御への切替を指示する切替指令Swをロボット制御部17に送信すると共に、動作シーケンス生成部16に対して動作シーケンスSrの再生成指示を行う。そして、ロボット制御部17の第1ロボット制御部171は、動作シーケンス生成部16により再生成された動作シーケンスSrに基づき、第1ロボット制御を再開する。
 (8)処理フロー
 図10は、第1実施形態においてロボットコントローラ1が実行するロボット制御処理の概要を示すフローチャートの一例である。
 まず、ロボットコントローラ1は、タスク指定情報Iaを取得する(ステップS11)。この場合、例えば、出力制御部15は、目的タスクの指定に関する入力信号S1を受信することで、タスク指定情報Iaを取得する。他の例では、タスク指定情報Iaが記憶装置4等に予め記憶されている場合には、ロボットコントローラ1は、当該記憶装置4等からタスク指定情報Iaを取得してもよい。
 動作シーケンス生成部16は、ステップS11で取得したタスク指定情報Iaと、計測信号S4とに基づき、ロボット5の動作シーケンスである動作シーケンスSrを生成する(ステップS12)。この場合、動作シーケンス生成部16は、動作シーケンスSrの生成に必要な、作業空間における物体の認識を行い、タスク指定情報Iaが示す目的タスクの完了に必要な動作シーケンスSrを生成する。
 次に、ロボット制御部17の第1ロボット制御部171は、生成された動作シーケンスSrに基づく第1ロボット制御を実行する(ステップS13)。この場合、第1ロボット制御部171は、動作シーケンスSrに基づき生成した制御信号S3をロボット5へ順次供給し、生成された動作シーケンスSrに従いロボット5が動作するように制御する。
 次に、切替判定部18は、動作シーケンスSrに基づくロボット制御の切替判定を行う(ステップS14)。この場合、切替判定部18は、例えば、「(6)切替判定部の詳細」のセクションで述べた第1形態又は第2形態に従い、少なくとも動作シーケンスSrに基づき、第1ロボット制御から第2ロボット制御への切替の要否を判定する。
 そして、第1ロボット制御から第2ロボット制御への切替が必要である場合(ステップS15;Yes)、出力制御部15は、外部入力により指定するロボット5の動作内容を作業者に指示する外部入力支援画面を、指示装置2に表示させる(ステップS16)。この場合、出力制御部15は、動作シーケンス生成部16から供給される動作シーケンスSr、サブタスク情報I4、及びロボット制御部17から供給されるロボット5の状態等に基づき、外部入力により指定するロボット5の動作内容を認識する。そして、出力制御部15は、上記の外部入力支援画面を表示するための出力制御信号S2を生成し、生成した出力制御信号S2を指示装置2に供給することで、指示装置2に外部入力支援画面を表示させる。
 そして、ロボット制御部17の第2ロボット制御部172は、第2ロボット制御を実行する(ステップS17)。この場合、第2ロボット制御部172は、指示装置2のロボット操作部24dにより生成される入力信号S1に基づく制御信号S3を順次供給する。これにより、ロボット5は、作業者の操作に即した動作を実行する。
 そして、切替判定部18は、第2ロボット制御を終了すべきか否か判定する(ステップS18)。例えば、切替判定部18は、第2ロボット制御により行うべきサブタスクが完了した(即ちシーケンス遷移条件が満たされた)と判定した場合、第2ロボット制御を終了すべきと判定する。この場合、第2ロボット制御により行うべきサブタスクは、複数のサブタスクの集合であってもよい。他の例では、切替判定部18は、作業者による第2ロボット制御の明示的な終了指示に相当する入力信号S1を受信した場合、第2ロボット制御を終了すべきと判定する。
 そして、第2ロボット制御を終了すべきでないと切替判定部18が判定した場合(ステップS18;No)、第2ロボット制御部172は、引き続きステップS17において、指示装置2から供給される入力信号S1に基づき第2ロボット制御を実行する。
 一方、第2ロボット制御を終了すべきと切替判定部18が判定した場合(ステップS18;Yes)、ロボット制御部17は、ロボット5の制御を第2ロボット制御から第1ロボット制御へ切り替える(ステップS19)。そして、ステップS19の後、又は、ステップS15において第2ロボット制御への切替が不要と判定した後、ロボットコントローラ1は、目的タスクが完了したか否か判定する(ステップS20)。この場合、例えば、ロボットコントローラ1のロボット制御部17は、動作シーケンスSrに基づくロボット5への制御信号S3の出力が完了した(出力が無くなった)場合に、目的タスクが完了したと判定する。他の例では、ロボット制御部17は、対象物の状態が完了状態になったことを計測信号S4に基づき認識した場合に、目的タスクが完了したと判定する。そして、ロボットコントローラ1は、目的タスクが完了したと判定した場合(ステップS20;Yes)、フローチャートの処理を終了する。
 一方、目的タスクが完了していないと判定した場合(ステップS20;No)、動作シーケンス生成部16は、動作シーケンスSrの生成が必要か否か判定する(ステップS21)。例えば、動作シーケンス生成部16は、第2形態に基づく第2ロボット制御への切替(即ち異常検知に基づく緊急的な第2ロボット制御への切替)後に再び第1ロボット制御を実行する場合には、動作シーケンスSrを再生成すべきと判定する。一方、ロボットコントローラ1は、第1形態に基づく第2ロボット制御への切替(即ち計画的な第2ロボット制御への切替)後に再び第1ロボット制御を実行する場合には、動作シーケンスSrを再生成する必要がないと判定する。他の例では、動作シーケンス生成部16は、現在のサブゴールが完了した場合には、次のサブゴール(最終ゴールを含む)を実行するための動作シーケンスSrを生成する必要があると判定する。
 そして、動作シーケンス生成部16は、動作シーケンスSrの生成が必要であると判定した場合(ステップS21;Yes)、ステップS12に処理を戻し、動作シーケンスSrの生成を行う。一方、動作シーケンス生成部16は、動作シーケンスSrの生成が必要でないと判定した場合(ステップS21;No)、ステップS13へ処理を戻し、既存の動作シーケンスSrに基づく第1ロボット制御を実行する。
 (9)変形例
 次に、第1実施形態の変形例について説明する。以下の変形例は任意に組み合わせて適用してもよい。
 (第1変形例)
 ロボットコントローラ1は、第2ロボット制御において作業者による外部入力を支援する情報を外部入力支援画面上に表示する制御を行う代わりに、又は、これに加えて、第2ロボット制御において作業者による外部入力を支援する情報を音により出力する制御を行ってもよい。この場合、ロボットコントローラ1の出力制御部15は、例えば、図8又は図9の外部入力支援画面を指示装置2に表示させる代わりに、又はこれに加えて、動作内容表示領域29に表示した外部入力に関するガイド文章に相当するガイダンスを指示装置2に音声出力させる。本変形例によっても、ロボットコントローラ1は、第2ロボット制御に必要な外部入力の生成を好適に支援することができる。
 (第2変形例)
 図5に示す動作シーケンス生成部16のブロック構成は一例であり、種々の変更がなされてもよい。
 例えば、ロボット5に命令する動作のシーケンスの候補φの情報が記憶装置4に予め記憶され、動作シーケンス生成部16は、当該情報に基づき、制御入力生成部35の最適化処理を実行する。これにより、動作シーケンス生成部16は、最適な候補φの選定とロボット5の制御入力の決定を行う。この場合、動作シーケンス生成部16は、動作シーケンスSrの生成において、抽象状態設定部31、目標論理式生成部32及びタイムステップ論理式生成部33に相当する機能を有しなくともよい。このように、図5に示す動作シーケンス生成部16の一部の機能ブロックの実行結果に関する情報が予めアプリケーション情報記憶部41に記憶されていてもよい。
 他の例では、アプリケーション情報には、目的タスクに対応する動作シーケンスSrを設計するためのフローチャートなどの設計情報が予め含まれており、動作シーケンス生成部16は、当該設計情報を参照することで、動作シーケンスSrを生成してもよい。なお、予め設計されたタスクシーケンスに基づきタスクを実行する具体例については、例えば特開2017-39170号に開示されている。
 <第2実施形態>
 図11は、第2実施形態における制御装置1Xの概略構成図を示す。制御装置1Xは、主に、動作シーケンス生成手段16Xと、第1ロボット制御手段171Xと、切替判定手段18Xと、第2ロボット制御手段172Xとを有する。なお、制御装置1Xは、複数の装置から構成されてもよい。制御装置1Xは、例えば、第1実施形態におけるロボットコントローラ1とすることができる。
 動作シーケンス生成手段16Xは、ロボットの動作シーケンスを生成する。動作シーケンス生成手段16Xは、例えば、第1実施形態における動作シーケンス生成部16とすることができる。
 第1ロボット制御手段171Xは、動作シーケンスに基づくロボットの制御である第1ロボット制御を行う。第1ロボット制御手段171Xは、例えば、第1実施形態における第1ロボット制御部171とすることができる。
 切替判定手段18Xは、第1ロボット制御の実行中において、外部入力に基づくロボットの制御である第2ロボット制御への切替の要否を、動作シーケンスに基づき判定する。切替判定手段18Xは、例えば、第1実施形態における切替判定部18とすることができる。
 第2ロボット制御手段172Xは、切替が必要と切替判定手段18Xにより判定された場合、第2ロボット制御を行う。第2ロボット制御手段172Xは、例えば、第1実施形態における第2ロボット制御部172とすることができる。
 図12は、第2実施形態におけるフローチャートの一例である。動作シーケンス生成手段16Xは、ロボットの動作シーケンスを生成する(ステップS21)。第1ロボット制御手段171Xは、動作シーケンスに基づくロボットの制御である第1ロボット制御を行う(ステップS22)。切替判定手段18Xは、第1ロボット制御の実行中において、外部入力に基づくロボットの制御である第2ロボット制御への切替の要否を、動作シーケンスに基づき判定する(ステップS23)。切替が必要とステップS23において判定された場合(ステップS24;Yes)、第2ロボット制御手段172Xは、第2ロボット制御を行う(ステップS25)。一方、切替が必要でないとステップS23において判定された場合(ステップS24;No)、フローチャートの処理を終了する。
 第2実施形態によれば、制御装置1Xは、動作シーケンスに基づく第1ロボット制御の実行中において、必要に応じて外部入力に基づく第2ロボット制御に切り替え、目的となるタスクを円滑に遂行することができる。
 なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-Transitory Computer Readable Medium)を用いて格納され、コンピュータであるプロセッサ等に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記憶媒体(Tangible Storage Medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記憶媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記憶媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(Transitory Computer Readable Medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
 その他、上記の各実施形態の一部又は全部は、以下の付記のようにも記載され得るが以下には限られない。
[付記1]
 ロボットの動作シーケンスを生成する動作シーケンス生成手段と、
 前記動作シーケンスに基づく前記ロボットの制御である第1ロボット制御を行う第1ロボット制御手段と、
 前記第1ロボット制御の実行中において、外部入力に基づく前記ロボットの制御である第2ロボット制御への切替の要否を、前記動作シーケンスに基づき判定する切替判定手段と、
 前記切替が必要と判定された場合、前記第2ロボット制御を行う第2ロボット制御手段と、
を有する制御装置。
[付記2]
 前記切替判定手段は、前記第1ロボット制御の実行中において、前記動作シーケンスと、前記ロボットの動作実行状況とに基づき、前記切替の要否を判定する、付記1に記載の制御装置。
[付記3]
 前記切替判定手段は、前記第1ロボット制御の実行中において、前記動作シーケンスと、前記ロボットの動作実行状況とに基づき、前記動作シーケンスに基づく計画に対する時間的ずれ量を算出し、当該時間的ずれ量に基づき、前記切替の要否を判定する、付記1または2に記載の制御装置。
[付記4]
 前記切替判定手段は、前記第1ロボット制御の実行中において、前記動作シーケンスと、前記ロボットの動作実行状況とに基づき、前記動作シーケンスに基づく計画に対する空間的ずれ量を算出し、当該空間的ずれ量に基づき、前記切替の要否を判定する、付記1~3のいずれか一項に記載の制御装置。
[付記5]
 前記切替判定手段は、予測された前記ロボットの移動軌跡と計測された前記ロボットの移動軌跡との比較、又は、予測された前記ロボットの作業対象物の移動軌跡と計測された前記作業対象物の移動軌跡との比較に基づき、前記空間的ずれ量を算出する、付記4に記載の制御装置。
[付記6]
 前記切替判定手段は、前記第1ロボット制御の実行中において、前記動作シーケンスを構成するいずれかの動作が正常に完了しなかったと判定した場合に、前記切替が必要と判定する、付記1~5のいずれか一項に記載の制御装置。
[付記7]
 前記動作シーケンス生成手段は、前記ロボットが実行すべきタスクの完了までの1または複数の中間状態に基づき、前記タスクの開始から前記タスクの完了までに必要な複数の動作シーケンスを逐次的に生成し、
 前記切替判定手段は、前記複数の動作シーケンスのいずれかの動作シーケンスが正常に完了しなかったと判定した場合に、前記切替が必要と判定する、付記1~5のいずれか一項に記載の制御装置。
[付記8]
 前記動作シーケンス生成手段は、前記第2ロボット制御が必要な前記ロボットの動作を含む前記動作シーケンスを生成し、
 前記切替判定手段は、前記第2ロボット制御が必要な前記動作の実行タイミングにおいて、前記切替が必要と判定する、付記1~7のいずれか一項に記載の制御装置。
[付記9]
 前記第1ロボット制御手段は、前記第2ロボット制御が必要な前記動作が完了したと判定した場合、前記第1ロボット制御を再開する、付記8に記載の制御装置。
[付記10]
 前記外部入力を支援する外部入力支援情報を表示又は音出力する出力制御手段をさらに有する、付記1~9のいずれか一項に記載の制御装置。
[付記11]
 前記出力制御手段は、前記外部入力により指示する前記ロボットの動作内容に関する情報を、前記外部入力支援情報として表示又は音出力する、付記10に記載の制御装置。
[付記12]
 前記動作シーケンス生成手段は、
 前記ロボットが実行すべきタスクを時相論理に基づく論理式に変換する論理式変換手段と、
 前記論理式から、前記タスクを実行するためタイムステップ毎の状態を表す論理式であるタイムステップ論理式を生成するタイムステップ論理式生成手段と、
 前記タイムステップ論理式に基づき、前記ロボットに実行させるサブタスクのシーケンスを、前記動作シーケンスとして生成するサブタスクシーケンス生成手段と、
を有する、付記1~11のいずれか一項に記載の制御装置。
[付記13]
 前記動作シーケンス生成手段は、
 前記タスクに関する物体の抽象的な状態である抽象状態を、前記論理式において使用する命題として定める抽象状態設定手段をさらに有する、付記12に記載の制御装置。
[付記14]
 コンピュータが、
 ロボットの動作シーケンスを生成し、
 前記動作シーケンスに基づく前記ロボットの制御である第1ロボット制御を行い、
 前記第1ロボット制御の実行中において、外部入力に基づく前記ロボットの制御である第2ロボット制御への切替の要否を、前記動作シーケンスに基づき判定し、
 前記切替が必要と判定された場合、前記第2ロボット制御を行う、
制御方法。
[付記15]
 ロボットの動作シーケンスを生成し、
 前記動作シーケンスに基づく前記ロボットの制御である第1ロボット制御を行い、
 前記第1ロボット制御の実行中において、外部入力に基づく前記ロボットの制御である第2ロボット制御への切替の要否を、前記動作シーケンスに基づき判定し、
 前記切替が必要と判定された場合、前記第2ロボット制御を行う処理をコンピュータに実行させるプログラムが格納された記憶媒体。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
 1 ロボットコントローラ
 1X 制御装置
 2 指示装置
 4 記憶装置
 5 ロボット
 7 計測装置
 41 アプリケーション情報記憶部
 100 ロボット制御システム

Claims (15)

  1.  ロボットの動作シーケンスを生成する動作シーケンス生成手段と、
     前記動作シーケンスに基づく前記ロボットの制御である第1ロボット制御を行う第1ロボット制御手段と、
     前記第1ロボット制御の実行中において、外部入力に基づく前記ロボットの制御である第2ロボット制御への切替の要否を、前記動作シーケンスに基づき判定する切替判定手段と、
     前記切替が必要と判定された場合、前記第2ロボット制御を行う第2ロボット制御手段と、
    を有する制御装置。
  2.  前記切替判定手段は、前記第1ロボット制御の実行中において、前記動作シーケンスと、前記ロボットの動作実行状況とに基づき、前記切替の要否を判定する、請求項1に記載の制御装置。
  3.  前記切替判定手段は、前記第1ロボット制御の実行中において、前記動作シーケンスと、前記ロボットの動作実行状況とに基づき、前記動作シーケンスに基づく計画に対する時間的ずれ量を算出し、当該時間的ずれ量に基づき、前記切替の要否を判定する、請求項1または2に記載の制御装置。
  4.  前記切替判定手段は、前記第1ロボット制御の実行中において、前記動作シーケンスと、前記ロボットの動作実行状況とに基づき、前記動作シーケンスに基づく計画に対する空間的ずれ量を算出し、当該空間的ずれ量に基づき、前記切替の要否を判定する、請求項1~3のいずれか一項に記載の制御装置。
  5.  前記切替判定手段は、予測された前記ロボットの移動軌跡と計測された前記ロボットの移動軌跡との比較、又は、予測された前記ロボットの作業対象物の移動軌跡と計測された前記作業対象物の移動軌跡との比較に基づき、前記空間的ずれ量を算出する、請求項4に記載の制御装置。
  6.  前記切替判定手段は、前記第1ロボット制御の実行中において、前記動作シーケンスを構成するいずれかの動作が正常に完了しなかったと判定した場合に、前記切替が必要と判定する、請求項1~5のいずれか一項に記載の制御装置。
  7.  前記動作シーケンス生成手段は、前記ロボットが実行すべきタスクの完了までの1または複数の中間状態に基づき、前記タスクの開始から前記タスクの完了までに必要な複数の動作シーケンスを逐次的に生成し、
     前記切替判定手段は、前記複数の動作シーケンスのいずれかの動作シーケンスが正常に完了しなかったと判定した場合に、前記切替が必要と判定する、請求項1~5のいずれか一項に記載の制御装置。
  8.  前記動作シーケンス生成手段は、前記第2ロボット制御が必要な前記ロボットの動作を含む前記動作シーケンスを生成し、
     前記切替判定手段は、前記第2ロボット制御が必要な前記動作の実行タイミングにおいて、前記切替が必要と判定する、請求項1~7のいずれか一項に記載の制御装置。
  9.  前記第1ロボット制御手段は、前記第2ロボット制御が必要な前記動作が完了したと判定した場合、前記第1ロボット制御を再開する、請求項8に記載の制御装置。
  10.  前記外部入力を支援する外部入力支援情報を表示又は音出力する出力制御手段をさらに有する、請求項1~9のいずれか一項に記載の制御装置。
  11.  前記出力制御手段は、前記外部入力により指示する前記ロボットの動作内容に関する情報を、前記外部入力支援情報として表示又は音出力する、請求項10に記載の制御装置。
  12.  前記動作シーケンス生成手段は、
     前記ロボットが実行すべきタスクを時相論理に基づく論理式に変換する論理式変換手段と、
     前記論理式から、前記タスクを実行するためタイムステップ毎の状態を表す論理式であるタイムステップ論理式を生成するタイムステップ論理式生成手段と、
     前記タイムステップ論理式に基づき、前記ロボットに実行させるサブタスクのシーケンスを、前記動作シーケンスとして生成するサブタスクシーケンス生成手段と、
    を有する、請求項1~11のいずれか一項に記載の制御装置。
  13.  前記動作シーケンス生成手段は、
     前記タスクに関する物体の抽象的な状態である抽象状態を、前記論理式において使用する命題として定める抽象状態設定手段をさらに有する、請求項12に記載の制御装置。
  14.  コンピュータが、
     ロボットの動作シーケンスを生成し、
     前記動作シーケンスに基づく前記ロボットの制御である第1ロボット制御を行い、
     前記第1ロボット制御の実行中において、外部入力に基づく前記ロボットの制御である第2ロボット制御への切替の要否を、前記動作シーケンスに基づき判定し、
     前記切替が必要と判定された場合、前記第2ロボット制御を行う、
    制御方法。
  15.  ロボットの動作シーケンスを生成し、
     前記動作シーケンスに基づく前記ロボットの制御である第1ロボット制御を行い、
     前記第1ロボット制御の実行中において、外部入力に基づく前記ロボットの制御である第2ロボット制御への切替の要否を、前記動作シーケンスに基づき判定し、
     前記切替が必要と判定された場合、前記第2ロボット制御を行う処理をコンピュータに実行させるプログラムが格納された記憶媒体。
PCT/JP2020/036383 2020-09-25 2020-09-25 制御装置、制御方法及び記憶媒体 WO2022064653A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2022551062A JP7448024B2 (ja) 2020-09-25 2020-09-25 制御装置、制御方法及びプログラム
US18/026,012 US20230356389A1 (en) 2020-09-25 2020-09-25 Control device, control method and storage medium
EP20955247.0A EP4219091A4 (en) 2020-09-25 2020-09-25 CONTROL DEVICE, CONTROL METHOD AND STORAGE MEDIUM
PCT/JP2020/036383 WO2022064653A1 (ja) 2020-09-25 2020-09-25 制御装置、制御方法及び記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/036383 WO2022064653A1 (ja) 2020-09-25 2020-09-25 制御装置、制御方法及び記憶媒体

Publications (1)

Publication Number Publication Date
WO2022064653A1 true WO2022064653A1 (ja) 2022-03-31

Family

ID=80846408

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/036383 WO2022064653A1 (ja) 2020-09-25 2020-09-25 制御装置、制御方法及び記憶媒体

Country Status (4)

Country Link
US (1) US20230356389A1 (ja)
EP (1) EP4219091A4 (ja)
JP (1) JP7448024B2 (ja)
WO (1) WO2022064653A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114700968A (zh) * 2022-04-12 2022-07-05 广州城市理工学院 一种自动上菜机器人及上菜方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07237106A (ja) * 1994-02-28 1995-09-12 Nippon Steel Corp 遠隔操作疵手入れ方法およびその装置
JP2003311661A (ja) * 2002-04-24 2003-11-05 Hitachi Ltd 遠隔操作制御装置
JP2011093062A (ja) 2009-10-30 2011-05-12 Ihi Corp ハンドガイド装置とその制御方法
JP2016068161A (ja) 2014-09-26 2016-05-09 トヨタ自動車株式会社 ロボット制御方法
JP2017039170A (ja) 2015-08-17 2017-02-23 ライフロボティクス株式会社 ロボット装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9630318B2 (en) * 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
DE102017223717B4 (de) * 2017-12-22 2019-07-18 Robert Bosch Gmbh Verfahren zum Betreiben eines Roboters in einem Multiagentensystem, Roboter und Multiagentensystem
JP7281349B2 (ja) * 2018-08-10 2023-05-25 川崎重工業株式会社 遠隔操作システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07237106A (ja) * 1994-02-28 1995-09-12 Nippon Steel Corp 遠隔操作疵手入れ方法およびその装置
JP2003311661A (ja) * 2002-04-24 2003-11-05 Hitachi Ltd 遠隔操作制御装置
JP2011093062A (ja) 2009-10-30 2011-05-12 Ihi Corp ハンドガイド装置とその制御方法
JP2016068161A (ja) 2014-09-26 2016-05-09 トヨタ自動車株式会社 ロボット制御方法
JP2017039170A (ja) 2015-08-17 2017-02-23 ライフロボティクス株式会社 ロボット装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4219091A4

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114700968A (zh) * 2022-04-12 2022-07-05 广州城市理工学院 一种自动上菜机器人及上菜方法

Also Published As

Publication number Publication date
EP4219091A4 (en) 2023-11-15
EP4219091A1 (en) 2023-08-02
US20230356389A1 (en) 2023-11-09
JP7448024B2 (ja) 2024-03-12
JPWO2022064653A1 (ja) 2022-03-31

Similar Documents

Publication Publication Date Title
WO2022074823A1 (ja) 制御装置、制御方法及び記憶媒体
JP7264253B2 (ja) 情報処理装置、制御方法及びプログラム
WO2022064653A1 (ja) 制御装置、制御方法及び記憶媒体
JP7452619B2 (ja) 制御装置、制御方法及びプログラム
WO2021171357A1 (ja) 制御装置、制御方法及び記録媒体
WO2022049756A1 (ja) 判定装置、判定方法及び記憶媒体
JP7485058B2 (ja) 判定装置、判定方法及びプログラム
JP7323045B2 (ja) 制御装置、制御方法及びプログラム
WO2022224449A1 (ja) 制御装置、制御方法及び記憶媒体
WO2022224447A1 (ja) 制御装置、制御方法及び記憶媒体
WO2022244060A1 (ja) 動作計画装置、動作計画方法及び記憶媒体
JP7276466B2 (ja) 情報処理装置、制御方法及びプログラム
WO2022107207A1 (ja) 情報収集装置、情報収集方法及び記憶媒体
WO2022107324A1 (ja) 支援制御装置、支援装置、ロボット制御システム、支援制御方法及び記憶媒体
WO2022215262A1 (ja) ロボット管理装置、制御方法及び記憶媒体
WO2021171358A1 (ja) 制御装置、制御方法及び記録媒体
JP7456552B2 (ja) 情報処理装置、情報処理方法及びプログラム
WO2022074827A1 (ja) 命題設定装置、命題設定方法及び記憶媒体
US20240131711A1 (en) Control device, control method, and storage medium
WO2021171352A1 (ja) 制御装置、制御方法及び記録媒体
WO2021171558A1 (ja) 制御装置、制御方法及び記録媒体
EP4300239A1 (en) Limiting condition learning device, limiting condition learning method, and storage medium

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022551062

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020955247

Country of ref document: EP

Effective date: 20230425