WO2022201314A1 - 情報処理装置、修正システム、情報処理方法及び非一時的なコンピュータ可読媒体 - Google Patents

情報処理装置、修正システム、情報処理方法及び非一時的なコンピュータ可読媒体 Download PDF

Info

Publication number
WO2022201314A1
WO2022201314A1 PCT/JP2021/012014 JP2021012014W WO2022201314A1 WO 2022201314 A1 WO2022201314 A1 WO 2022201314A1 JP 2021012014 W JP2021012014 W JP 2021012014W WO 2022201314 A1 WO2022201314 A1 WO 2022201314A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
robot
attribute
input
unit
Prior art date
Application number
PCT/JP2021/012014
Other languages
English (en)
French (fr)
Inventor
隼太郎 櫻井
岳大 伊藤
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2021/012014 priority Critical patent/WO2022201314A1/ja
Priority to JP2023508219A priority patent/JP7456552B2/ja
Priority to US18/266,859 priority patent/US20240042617A1/en
Publication of WO2022201314A1 publication Critical patent/WO2022201314A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • 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/40392Programming, visual robot programming language

Definitions

  • the present disclosure relates to an information processing device, a correction system, an information processing method, and a non-temporary computer-readable medium for performing processing for correcting a motion plan of a robot.
  • the robot's motion along the optimal path When the robot's motion along the optimal path is reproduced on the actual device, it may exhibit behavior that differs from the motion originally assumed by the human. For example, when an optimal path is generated such that the hand of the arm avoids multiple obstacles, parts other than the position of the hand of the arm may collide, or overload may be applied due to the magnitude of the change in the posture of the arm. is assumed. In addition, when the arm moves while gripping some object, there is a possibility that the gripped object may collide with surrounding people, animals, or other objects. After the optimal motion plan of the robot is generated in this way, it is necessary to visualize the motion and to allow a human to modify the motion.
  • Patent Document 1 discloses a variable correction method for correcting position variables of a robot control program created by offline programming.
  • Patent Literature 2 discloses a robot system in which a robot is driven and controlled by a program selected and input like a palletizing system, and a predetermined product (hereinafter referred to as a work) is handled by the robot.
  • Patent Literature 3 discloses a robot motion simulation method in which programming is performed by simulating the motion of an industrial robot using a robot simulator.
  • Patent Literature 4 discloses a robot motion simulation method in which programming is performed by simulating the motion of an industrial robot using a robot simulator.
  • Patent Literatures 1 to 4 cannot appropriately acquire the attributes of objects in the robot's motion space when correcting the motion sequence of the robot. These attributes can serve as constraints on the robot's motion, but some of these object-related attributes may be difficult to accurately determine even with various sensors such as cameras.
  • the present disclosure has been made to solve such problems.
  • One of the purposes is to provide a processing method and the like.
  • An information processing device includes: an input reception unit that receives input for correcting the motion sequence for the robot; an object information acquisition unit that acquires object information representing information about an object or a virtual object in the motion space of the robot; an attribute information acquisition unit that acquires attribute information about the object or the virtual object based on the input through the input reception unit; Prepare.
  • a correction system includes: a sequence display section for displaying the motion sequence of the robot; an input reception unit that receives an input for correcting an operation sequence for the robot with respect to the display result; a control signal processing unit that transmits a control signal for the operation sequence to the robot based on the input; an object information acquisition unit that acquires object information representing information about an object or a virtual object in the motion space of the robot; an attribute information acquisition unit that acquires attribute information about the object or the virtual object based on the input through the input reception unit; an attribute signal generation unit that combines the object information and the attribute information and generates an attribute signal that combines the object information and the attribute information; receiving the attribute signal having information on the combination of the object and the attribute generated by the attribute signal generation unit, and generating an abstract state indicating the motion space of the robot based on the attribute signal and stored information; It has an attribute information processing unit that generates correction information to be corrected.
  • An information processing method includes: Receiving input for modifying the motion sequence for the robot, Acquiring object information representing information about an object or virtual object in the motion space of the robot; Attribute information about the object or the virtual object is acquired based on the input.
  • a non-transitory computer-readable medium storing a program according to the fourth aspect of the present disclosure, wherein the program includes: a process of receiving input for modifying a motion sequence for a robot; a process of acquiring object information representing information of an object or virtual object in the motion space of the robot; a process of acquiring attribute information about the object or the virtual object based on the input; run on the computer.
  • An information processing apparatus displays a space in which a robot operates and a plurality of attribute candidates for an object or virtual object in the space, An attribute candidate selected from the plurality of attribute candidates is set as an attribute of the object or virtual object.
  • an information processing device a correction system, an information processing method, etc. that can acquire the attributes of objects in the robot's motion space.
  • FIG. 1 shows a functional block diagram of an information processing apparatus according to a first embodiment
  • FIG. 4 is a flowchart showing an information processing method according to the first embodiment
  • the functional block diagram of the correction apparatus concerning 2nd Embodiment is shown.
  • 9 is a flow chart showing a correction method according to the second embodiment; 4 shows the configuration of the robot control system.
  • 2 shows the hardware configuration of the robot controller.
  • 1 shows the hardware configuration of a sequence processing device; An example of the data structure of application information is shown.
  • An example of a functional block diagram of a robot controller is shown.
  • An example of a functional block diagram of a sequence processing device is shown.
  • An example of a bird's-eye view of an action space is shown.
  • An example of the plan display screen before the sequence process in 3rd Embodiment is shown.
  • FIG. 11 is an example of a flowchart showing an overview of correction processing executed by a sequence processing device in the third embodiment;
  • FIG. 4 An example of the plan display screen during the sequence process in 4th Embodiment is shown.
  • An example of the plan display screen during the sequence process in 5th Embodiment is shown.
  • FIG. 1 shows a functional block diagram of an information processing apparatus according to a first embodiment.
  • the information processing apparatus 10 is implemented by a computer including a processor, memory, and the like.
  • the information processing device 10 can be used to acquire attribute information when the user modifies the motion sequence for the robot.
  • the information processing device 10 includes an input reception unit 72 , an object information acquisition unit 73 and an attribute information acquisition unit 74 .
  • the input reception unit 72 receives input from the user for correcting the motion sequence for the robot.
  • the input reception unit 72 can receive input from the user via an input device such as a mouse, keyboard, touch panel, stylus pen, or microphone.
  • the object information acquisition unit 73 acquires information about objects or virtual objects in the robot's motion space.
  • Objects herein refer to real objects (eg, real obstacles, plastic bottles, doors).
  • a virtual object refers to a virtual object (eg, virtual obstacle) set (eg, drawn) by the user in the robot's motion space.
  • the object information acquisition unit 73 may acquire object information in the robot's action space based on an input from the user via the input reception unit 72, or may acquire information in the robot's action space using various sensors such as a camera. object information may be acquired.
  • the object information acquisition unit 73 can acquire object information (for example, position information, shape, type of object) in the robot's operating space from an image captured by a camera using image recognition technology.
  • object information about an object or virtual object is obtained by the user selecting an object or virtual object displayed on the display (i.e., via the input reception unit 72 that receives the user input). , from a storage unit that stores information about the object or virtual object.
  • the attribute information acquisition unit 74 acquires attribute information about the object based on the input from the user via the input reception unit 72.
  • Attribute information is information indicating the attributes of an object, and more specifically, it can be information dependent on the relationship between the object and the robot. In some embodiments, if the robot cannot touch or pass through the virtual object drawn by the user, the virtual object is given an attribute of "obstacle", and the robot moves the virtual object If the virtual object can be passed through as a waypoint, the attribute "waypoint" may be given to the virtual object.
  • the lid is given an attribute of "Closed” and the robot can perform a task related to the lid (e.g., opening). , open), the lid may be given an attribute of "Open”.
  • attribute information "obstacle” is given to the object, and when the robot can move the object, the object may be given attribute information "object”. That is, the attribute information defines the robot's constraints on the object.
  • the user is presented with a plurality of selectable attribute information associated with the information about the object or virtual object acquired by the object information acquisition unit 73, and one attribute is acquired by the user's selection.
  • the information processing apparatus 10 may include a storage unit that stores various pieces of object information and a plurality of selectable attribute information associated with each object, and may be connected to such a storage unit via a network. good too.
  • FIG. 2 is a flow chart showing an information processing method according to the first embodiment.
  • the input reception unit 72 receives an input from the user for correcting the motion sequence for the robot (step S1a).
  • the object information acquisition unit 73 acquires information on an object or virtual object in the robot's motion space (step S2a).
  • the attribute information acquisition unit 74 acquires attribute information about the object or virtual object based on the input from the user (step S3a).
  • FIG. 3 shows a functional block diagram of the correction device 3 according to the second embodiment.
  • the correction device 3 is implemented by a computer including a processor, memory, and the like.
  • the modification device 3 can be used by the user to modify the displayed motion sequence for the robot.
  • the correction device 3 can be used in cooperation with a robot controller, which will be described later.
  • the correction device 3 has a control signal processing section 71 , an input reception section 72 , an object information acquisition section 73 , an attribute information acquisition section 74 , an attribute signal generation section 75 and a sequence display section 76 .
  • the correction device 3 is an example of the information processing device 10 according to the first embodiment.
  • the control signal processing unit 71 Upon receiving a control signal from the robot controller, the control signal processing unit 71 generates a signal for displaying the subtask sequence plan, and supplies the signal to the sequence display unit 76 . Further, when receiving a control signal from the robot controller, the control signal processing section 71 generates an input reception signal for receiving an input from the user, and supplies it to the input reception section. Furthermore, when the control signal processing unit 71 receives a signal for operating the robot from the input receiving unit 72, it transmits a control signal indicating a subtask sequence to the robot.
  • the sequence display unit 76 displays the subtask sequence based on the control signal received from the robot controller.
  • the input reception unit 72 receives input from the user via the input device.
  • the input receiving unit 72 receives, as user inputs, operations necessary for changing the robot motion sequence, such as drawing a virtual object in the motion space, selecting an object or a virtual object, and changing attributes of the object and the drawn virtual object.
  • the object information acquisition unit 73 acquires object information related to the object or virtual object.
  • Object information about an object or a virtual object is stored in advance inside the correction device 3 or in a storage unit connected to the correction device 3 .
  • the attribute information acquisition unit 74 acquires attribute information about the object when the user uses the input device to give the attribute of the selected object. For example, as described above, when the user selects a desired object or virtual object from objects or virtual objects in the displayed action space using the input device, a plurality of objects associated with the desired object or virtual object attributes may be selectably displayed on a display device (eg, display). After that, when the user selects one attribute from a plurality of attributes using the input device, the attribute information acquisition section 74 acquires the attribute information.
  • a display device eg, display
  • the attribute signal generation unit 75 generates an attribute signal indicating information obtained by combining the obtained object information and the obtained attribute information based on the object information and the attribute information described above, and supplies it to the robot controller.
  • FIG. 4 is a flow chart showing a correction method according to the second embodiment.
  • the sequence display unit 76 displays an operation sequence (subtask sequence) for the robot based on the control signal received from the robot controller (step S1b).
  • the input reception unit 72 receives input from the user via the input device for the displayed operation sequence (step S2b).
  • the object information acquisition unit 73 acquires object information about the object or virtual object (step S3b).
  • the attribute information acquisition unit 74 acquires attribute information of the object (step S4b).
  • the attribute signal generator 75 combines the acquired object information and the acquired attribute information based on the object information and the attribute information described above (step S5b).
  • the attribute signal generation unit 75 generates an attribute signal indicating information combining these, and supplies it to the robot controller. As a result, the motion sequence is corrected on the robot controller side (step S6b).
  • the motion sequence for the robot can be corrected based on the attribute information about the object given by the user.
  • FIG. 5 shows the configuration of a robot control system 100 according to the third embodiment.
  • the robot control system 100 mainly includes a robot controller 1 , an input device 2 , a sequence processing device 3 , a storage device 4 , a robot 5 and a measuring device 6 .
  • the robot controller 1 When a task to be executed by the robot 5 (also referred to as a “target task”) is specified, the robot controller 1 performs simple tasks that the robot 5 can accept at each time step. The sequence is converted into a sequence, and the robot 5 is controlled based on the sequence.
  • a robot controller may also be referred to herein as an information processor.
  • detailed tasks (commands) obtained by decomposing a target task that can be received by the robot 5 are also referred to as "subtasks”.
  • the robot controller 1 is electrically connected to the input device 2, the sequence processing device 3, the storage device 4, the robot 5, and the measuring device 6.
  • the robot controller 1 receives an input signal "S1" from the input device 2 for designating a target task. Further, the robot controller 1 transmits a display signal “S2” for displaying a task to be executed by the robot 5 to the input device 2 . Furthermore, the robot controller 1 transmits a control signal “S3” regarding control of the robot 5 to the robot 5 .
  • the robot controller 1 is also called a sequence of subtasks (“subtask sequence”) executed by each robot as the control signal S3. ) to the sequence processing device 3 . Further, the robot controller 1 receives an output signal “S6” from the measuring device 6.
  • the robot controller 1 receives from the sequence processing device 3 an attribute signal “S5” regarding attribute information regarding a specific object or virtual object in the robot's motion space.
  • the input device 2 is an interface that receives input related to the target task specified by the user, and includes, for example, a touch panel, buttons, keyboard, voice input device (eg, microphone), personal computer, and the like.
  • the input device 2 transmits an input signal S1 generated based on the user's input to the robot controller 1 .
  • the sequence processing device 3 Based on the control signal received from the robot controller 1, the sequence processing device 3 performs a robot operation sequence such as displaying a subtask sequence, drawing a virtual object in the operation space, and changing attributes of the object and the drawn virtual object. It is a device that allows the user to perform operations necessary for changing the information on the screen.
  • the sequence processing device 3 is also called a correction device, and is an example of the correction device of the second embodiment.
  • the sequence processing device 3 displays the subtask sequence based on the control signal S3 supplied from the robot controller 1, and transmits the control signal S3 to the robot 5 after displaying the subtask sequence.
  • the sequence processing device 3 also sends an attribute signal S5 representing the attribute of the object in the robot's motion space to the robot controller 1 .
  • the input device 2 may be a tablet terminal having an input unit and a display unit, or may be a stationary personal computer.
  • the storage device 4 has an application information storage section 41 .
  • the application information storage unit 41 stores application information required to generate a sequence of subtasks from a target task. Details of the application information will be described later.
  • the storage device 4 may be an external storage medium such as a hard disk connected to or built into the robot controller 1, or a storage medium such as a flash memory.
  • the storage device 4 may be a server device that performs data communication with the robot controller 1 . In this case, the storage device 4 may be composed of a plurality of server devices.
  • the robot 5 Based on the control signal S3 transmitted from the robot controller 1, the robot 5 performs actions related to the target task.
  • the robot 5 is, for example, an assembly robot used at a manufacturing site or a robot for picking packages at a distribution site.
  • a robot arm may have a single arm or two or more arms.
  • a mobile robot or a robot combining a mobile robot and a robot arm may be used.
  • the measuring device 6 is one or more sensors that can be a camera, range sensor, sonar, or a combination thereof that measure the state of the robot's operating space in order to achieve the target task.
  • the measurement device 6 includes at least one camera that captures an image of the action space.
  • the measurement device 6 supplies the generated measurement signal S ⁇ b>6 to the robot controller 1 .
  • the measurement signal S6 includes at least image data obtained by imaging the inside of the motion space.
  • the measuring device 6 does not need to be kept stationary, and may be a sensor attached to the robot 5 in motion, a self-propelled mobile robot, or a drone in flight.
  • the measurement device 6 may also include sensors (eg, microphones) that detect sounds within the working space.
  • the measuring device 6 is a sensor (for example, CCD (charge coupled device) or CMOS (Complementary Metal Oxide Semiconductor) image sensor) that captures an image of the operating space, and a sensor attached to an arbitrary place including outside the operating space. may contain.
  • CCD charge coupled device
  • CMOS Complementary Metal Oxide Semiconductor
  • the configuration of the robot control system 100 shown in FIG. 5 is an example, and various changes may be made to the configuration.
  • multiple robots 5 may exist.
  • the robot 5 may have only one or more control objects, such as a plurality of robot arms.
  • the robot controller 1 generates a subtask sequence to be executed for each of the robot 5 or the controlled object of the robot 5 based on the target task, and controls the control signal S3 indicating the subtask sequence.
  • the measuring device 6 may be a part of the robot 5 .
  • the input device 2 and the sequence processing device 3 may be treated as the same device by being incorporated in the robot controller 1 or the like.
  • the robot controller 1 may be composed of a plurality of devices.
  • the plurality of devices that make up the robot controller 1 exchange information necessary for executing previously assigned processing among the plurality of devices.
  • the robot controller 1 and the robot 5 may be configured integrally. It should be noted that all or part of the robot control system can be used by the user to modify the motion sequence of the robot and is sometimes referred to as a modification system.
  • FIG. 6 shows the hardware configuration of the robot controller 1. As shown in FIG.
  • the robot controller 1 includes a processor 11, a memory 12, and an interface 13 as hardware. Processor 11 , memory 12 and interface 13 are connected via data bus 15 .
  • the processor 11 functions as a controller (arithmetic device) that performs overall control of the robot controller 1 by executing programs stored in the memory 12 .
  • the processor 11 is, for example, a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or a TPU (Tensor Processing Unit).
  • Processor 11 may be composed of a plurality of processors.
  • the memory 12 is composed of various memories such as RAM (Random Access Memory) and ROM (Read Only Memory).
  • the memory 12 also stores a program for the robot controller 1 to execute specific processing.
  • the memory 12 is used as a work memory and temporarily stores information and the like obtained from the storage device 4 .
  • part of the information stored in the memory 12 may be stored in one or more external storage media that can communicate with the robot controller 1 .
  • the data may be stored in a storage medium detachable from the robot controller 1 .
  • the interface 13 is an interface for electrically connecting the robot controller 1 and other devices. These interfaces may be wireless interfaces for transmitting and receiving data to and from other devices by wireless communication, or hardware interfaces for performing wired connections with other devices using cables or the like. .
  • the hardware configuration of the robot controller 1 is not limited to the configuration shown in FIG.
  • the robot controller 1 may be connected to or built in an input device 2, a sequence processing device 3, a storage device 4, and sound output devices such as speakers and earphones.
  • the robot controller 1 may be a tablet terminal or the like having an input/output function and a memory function.
  • FIG. 7 shows the hardware configuration of the sequence processing device 3.
  • the sequence processing device 3 includes, as hardware, a processor 21, a memory 22, an interface 23, an input section 24a, a display section 24b, and an output section 24c.
  • Processor 21 , memory 22 and interface 23 are connected via data bus 25 .
  • the interface 23 is also connected to an input section 24a, a display section 24b, and an output section 24c.
  • the processor 21 executes a predetermined process by executing a program stored in the memory 22.
  • the processor 21 is, for example, a processor such as a CPU, GPU, or TPU.
  • the processor 21 receives the signal generated by the input unit 24a via the interface 23, converts the acquired attribute information into an attribute signal S5, and transmits the attribute signal S5 to the robot controller 1 via the interface 23. to send. Further, the processor 21 can acquire attribute information by controlling the display section 24b or the output section 24c via the interface 23 based on the control signal S3 received from the robot controller 1 via the interface 23.
  • the memory 22 is composed of various memories such as RAM and ROM.
  • the memory 22 also stores a program for executing the process executed by the sequence processing device. Also, the memory 22 temporarily stores the control signal S3 received from the robot controller 1 .
  • the interface 23 is an interface for electrically connecting the sequence processing device 3 and other devices. These interfaces may be wireless interfaces for transmitting and receiving data to and from other devices by wireless communication, or hardware interfaces for performing wired connections with other devices using cables or the like. . Further, the interface 23 performs interface operations of the input section 24a, the display section 24b, and the output section 24c.
  • the input unit 24a is an interface that receives user input, and includes, for example, a touch panel, buttons, keyboard, sound input device (eg, microphone), and the like.
  • the display unit 24b is, for example, a display, a projector, or the like, and performs display under the control of the processor 21.
  • FIG. Also, the output unit 24 c is, for example, a speaker, and outputs sound based on the control of the processor 21 .
  • the hardware configuration of the sequence processing device 3 is not limited to the configuration shown in FIG.
  • at least one of the input unit 24a, the display unit 24b, and the output unit 24c may be configured as a separate device that is electrically connected to the sequence processing device 3.
  • the sequence processing device 3 may be connected to a measuring device such as a camera, or may incorporate them.
  • FIG. 8 shows an example of the data structure of application information stored in the application information storage unit 41.
  • the application information storage unit 41 stores abstract state designation information I1, constraint information I2, motion limit information I3, subtask information I4, abstract model information I5, object model information I6, and attribute information I7.
  • the abstract state designation information I1 is information that designates an abstract state that needs to be defined when generating a subtask sequence.
  • This abstract state is an abstract state of an object in the motion space, and is defined as a proposition used in a target logic formula to be described later.
  • the abstract state designation information I1 designates an abstract state that needs to be defined for each type of target task.
  • the target task may be various types of tasks such as, for example, pick-and-place, object repositioning, and object rotation.
  • Constraint condition information I2 is information indicating the constraint conditions when executing the target task.
  • Constraint information I2 includes, for example, a constraint that the robot 5 (robot arm) must not come into contact with an obstacle when the target task is a pick-and-place task, and a constraint that the robots 5 (robot arms) must not come into contact with each other. Indicates constraints, etc. Note that the constraint condition information I2 may be information in which a constraint condition suitable for each type of target task is recorded.
  • the motion limit information I3 indicates information about the motion limits of the robot 5 controlled by the robot controller 1.
  • the motion limit information I3 is, for example, information that defines the upper limit or lower limit of the speed, acceleration, angular velocity, etc. of the robot 5 shown in FIG.
  • the subtask information I4 indicates information on subtasks that the robot 5 can receive. For example, if the target task is pick and place, the subtask information I4 can define reaching, which is movement of the robot arm of the robot 5, and grasping, which is grasping 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 abstract model information I5 is information about an abstract model that abstracts the dynamics in the motion space. As will be described later, the abstract model is represented by a model in which real dynamics are abstracted by a hybrid system.
  • the abstract model information I5 includes information indicating conditions for switching dynamics in the hybrid system described above. For example, in the case of pick-and-place, in which the robot 5 picks up an object and moves it to a predetermined position, the switching condition corresponds to the condition that the object cannot be moved unless it is grasped by the robot 5 .
  • the abstract model information I5 has information on an abstract model suitable for each type of target task.
  • the object model information I6 is information on the object model of each object in the motion space to be recognized from the measurement signal S6 generated by the measuring device 6.
  • the objects described above include, for example, the robot 5, obstacles, tools handled by the robot 5 and other objects, moving bodies other than the robot 5, and the like.
  • the object model information I6 includes, for example, information necessary for the robot controller 1 to recognize the types, positions, postures, motions being executed, etc. of each object described above, and CAD for recognizing the three-dimensional shape of each object. (computer-aided design) data and other three-dimensional shape information.
  • the former information includes the parameters of the reasoner obtained by learning a learning model in machine learning such as a neural network. For example, when an image is input, this inference unit is trained in advance so as to output the type, position, orientation, etc. of an object that is a subject in the image.
  • the attribute information I7 is information indicating the attributes of an object or virtual object (for example, an immovable obstacle or a movable object), and is information for adding internal processing in the robot controller 1. Specifically, the attribute information I7 depends on the relationship between the object or virtual object and the robot, and is a constraint condition of the robot with respect to the object or virtual object.
  • the robot controller 1 Upon receiving the attribute signal S5 generated by the sequence processing device 3, the robot controller 1 can perform internal processing according to the acquired attribute. For example, when creating a new virtual obstacle, the sequence processing device 3 executes a process of updating the value of the position vector of the obstacle drawn by the user and the information on the number of drawn obstacles. , the robot can be controlled in a new action space in which obstacles are newly arranged in the action space.
  • the identification label in the object model information I6 is changed from an immovable obstacle to a movable object. It is possible to regard what was an obstacle until now as an object, and perform operations such as pick-and-place of the object regarded as an object.
  • the attribute information is information indicating whether the robot can move the object. That is, this attribute information is based on the relationship between the robot and the object. In other embodiments, various attributes can be used, as described below.
  • the application information storage unit 41 may store various information related to the subtask sequence generation process and the control signal S3.
  • FIG. 9 shows an example of a functional block diagram of the robot controller 1.
  • the processor 11 of the robot controller 1 functionally includes an abstract state setting unit 31, a target logical expression generating unit 32, a time step logical expression generating unit 33, an abstract model generating unit 34, and a control input generating unit 35. , a subtask sequence generator 36 and an attribute information processor 37 .
  • FIG. 8 shows an example of data exchanged between blocks, but the present invention is not limited to this. The same applies to other functional block diagrams to be described later.
  • the abstract state setting unit 31 generates information (also referred to as "measurement information Im") indicating the measurement result in the motion space based on the output signal S6 supplied from the measurement device 6. Specifically, when the abstract state setting unit 31 receives the output signal S6, it refers to the object model information I6 and the like, and determines the type of each object (robot 5, obstacle, robot tools and other objects handled by the robot 5, moving bodies other than the robot 5, etc.) and positions, and the recognition results are generated as the measurement information Im. Further, when the abstract state setting unit 31 receives a signal supplied from the attribute information processing unit 37, the abstract state setting unit 31 updates the aforementioned measurement information Im, and newly generates information indicating the measurement result in the motion space considering the attribute. do. The abstract state setting unit 31 supplies the generated measurement information Im to the abstract model generation unit 34 .
  • measurement information Im also referred to as "measurement information Im"
  • the abstract state setting unit 31 sets the abstract state in the motion space when executing the target task based on the above-described measurement information Im and the abstract state designation information I1 acquired from the application information storage unit 41.
  • the abstract state setting unit 31 defines a proposition for expressing each abstract state with a logical expression.
  • 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 generating unit 32 .
  • the target logical expression generation unit 32 Upon receiving the input signal S1 related to the target task from the input device 2, the target logical expression generation unit 32 converts the target task indicated by the input signal S1 into a time phase representing the final achievement state based on the abstract state setting information Is. Convert to a logical formula (also called "target logical formula Ltag"). In this case, the target logical expression generation unit 32 refers to the constraint information I2 from the application information storage unit 41 to add the constraint to be satisfied in executing the target task to the target logical expression Ltag. Then, the target logical expression generation unit 32 supplies the generated target logical expression Ltag to the time step logical expression generation unit 33 . In addition, the target logical expression generation unit 32 generates a display signal S2 for displaying a task input screen for receiving inputs necessary for execution of the target task, and supplies the display signal S2 to the input device 2 .
  • a logical formula also called "target logical formula Ltag”
  • the target logical expression generation unit 32 refers to the
  • the time step logical expression generation unit 33 converts the target logical expression Ltag supplied from the target logical expression generation unit 32 into a logical expression representing the state at each time step (also referred to as "time step logical expression Lts"). do. Then, the time step logical expression generator 33 supplies the generated time step logical expression Lts to the control input generator 35 .
  • the abstract model generation unit 34 generates a model that abstracts the actual dynamics in the motion space based on the measurement information Im and the abstract model information I5 stored in the application information storage unit 41 .
  • the abstract model is and indicate.
  • 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. A method of generating an abstract model will be described later.
  • the abstract model generator 34 supplies the generated abstract model to the control input generator 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 optimizes the evaluation function. Determine the control input to the robot 5 . Then, the control input generator 35 supplies the subtask sequence generator 36 with information indicating the control input to the robot 5 at each time step (also called “control input information Ic”).
  • the subtask sequence generation unit 36 generates a subtask sequence based on the control input information Ic supplied from the control input generation unit 35 and the subtask information I4 stored in the application information storage unit 41, and generates a control signal S3 indicating the subtask sequence. is supplied to the sequence processing unit 3 .
  • the attribute information processing unit 37 Based on the attribute signal S5 supplied from the sequence processing device 3 and the attribute information I7 stored in the application information storage unit 41, the attribute information processing unit 37 performs information on a specific object or virtual object and information on a specific attribute. Correction information Ir for correcting the above-described abstract state is generated according to the combination.
  • the attribute information processing section 37 supplies the correction information Ir to the abstract state setting section 31 .
  • FIG. 10 is an example of a functional block diagram of the sequence processing device 3.
  • the processor 11 of the sequence processing device 3 functionally includes a control signal processing unit 71, an input reception unit 72, an object information acquisition unit 73, an attribute information acquisition unit 74, an attribute signal generation unit 75, and a sequence display unit. a portion 76;
  • FIG. 10 shows an example of data transferred between blocks, the data is not limited to this. The same applies to other functional block diagrams to be described later.
  • the control signal processing unit 71 Upon receiving the control signal S3 from the robot controller 1, the control signal processing unit 71 generates a signal Ss for displaying the plan of the subtask sequence and supplies it to the sequence display unit 76. Also, when receiving a control signal from the robot controller 1 , the control signal processing section 71 generates an input acceptance signal Si for accepting an input from the user, and supplies it to the input acceptance section 72 . Furthermore, when the control signal processing unit 71 receives a signal Sa for operating the robot 5 from the input receiving unit 72, it transmits a control signal S3 indicating a subtask sequence to the robot 5.
  • the input reception unit 72 When the input reception unit 72 is supplied with the input reception signal Si from the control signal processing unit 71, it becomes possible for the user to operate on the screen.
  • the input reception unit 72 then generates an input display signal Sr for displaying the content input by the user on the screen in real time, and transmits it to the sequence display unit 76 .
  • the input reception unit 72 when the user performs an operation to select an object or virtual object on the screen, the input reception unit 72 generates an object selection signal So indicating that the object or virtual object has been selected on the screen. , to the object information acquisition unit 73 .
  • the input reception unit 72 when the user performs an operation of selecting an attribute on the screen, the input reception unit 72 generates an attribute selection signal Sp indicating that the attribute has been selected on the screen, and the attribute information acquisition unit 74. Further, the input reception unit 72 generates a signal Sa for operating the robot 5 and supplies it to the control signal processing unit 71 .
  • the object information acquisition unit 73 acquires object selection information Io representing information of the object (for example, position vector, type of object) corresponding to the object selection signal So. and supplied to the attribute signal generator 75 .
  • the position vector of the object information can be measured by the measuring device 6 .
  • the type of the object among the information of the object can be obtained by recognizing the image captured by the measuring device 6 using image recognition technology.
  • Information on the virtual object drawn by the user can be obtained from the storage unit that stores the drawing information.
  • the attribute information acquisition unit 74 acquires the attribute selection information Ip corresponding to the object selection signal So and supplies it to the attribute signal generation unit 75 .
  • the attribute selection information which will be described later, is stored in the storage unit as a plurality of selectable attribute information corresponding to various objects.
  • the attribute signal generation unit 75 Based on the object selection information Io and the attribute selection information Ip, the attribute signal generation unit 75 generates an attribute signal S5 representing information obtained by combining the acquired object information and the acquired attribute information.
  • the attribute signal S5 is supplied to the attribute information processing section 37 of the robot controller 1 so that the robot controller can receive information indicating that "a specific object or virtual object selected by the user has been given a specific attribute". 1 can be notified.
  • the abstract state setting section 31 refers to the object model information I6, analyzes the output signal S6 supplied from the measuring device 6 based on the technique of recognizing the action space, and measurement information Im indicating the measurement result (type, position, etc.) of each object of . Furthermore, the abstract state setting unit 31 generates measurement information Im and sets an abstract state in the motion space. In this case, the abstract state setting unit 31 refers to the abstract state designation information I1 to recognize the abstract state to be set in the motion space. Note that the abstract state to be set in the motion space differs depending on the type of target task.
  • the abstract state setting unit 31 specifies the abstract state corresponding to the target task specified by the input signal S1.
  • the information I1 is referenced to recognize the abstract state to be set.
  • Fig. 11 shows an example of a bird's-eye view of the action space when pick-and-place is the target task.
  • Two robot arms 52a and 52b, four objects 61a to 61d, and an obstacle 62a exist in the motion space shown in FIG.
  • the abstract state setting unit 31 of the robot controller 1 first analyzes the output signal S6 received from the measuring device 6 using the object model information I6 and the like to determine the state of the object 61 and the existence of the obstacle 62a.
  • the range, the existence range of the area G set as the goal point, and the like are recognized.
  • the abstract state setting unit 31 recognizes the position vectors “x 1 ” to “x 4 ” of the centers of the objects 61a to 61d as the positions of the objects 61a to 61d.
  • the abstract state setting unit 31 also sets the position vector “x r1 ” of the robot hand 53 a that grips the object and the position vector “x r2 ” of the robot hand 53 b to the robot arm 52 a and the robot arm 52 b. Recognize as a position. Similarly, the abstract state setting unit 31 recognizes the postures of the objects 61a to 61d (unnecessary because the objects are spherical in the example of FIG. 11), the existence range of the obstacle 62a, the existence range of the area G, and the like.
  • the abstract state setting unit 31 recognizes the position vector of each vertex of the obstacle 62a and area G. FIG. The abstract state setting unit 31 then generates these recognition results based on the output signal S6 as measurement information Im.
  • the abstract state setting unit 31 also refers to the abstract state designation information I1 to determine the abstract state to be defined in the target task.
  • the abstract state setting unit 31 recognizes objects and regions existing in the motion space based on the measurement information Im, and recognizes the recognition results (for example, the number of objects and regions for each type) and the constraint conditions Based on the information I2, a proposition indicating the abstract state is determined.
  • the abstract state setting unit 31 attaches identification labels "1" to "4" to the objects 61a to 61d specified by the measurement information Im, respectively.
  • the abstract state setting unit 31 also sets the proposition "g i ” is defined.
  • the abstract state setting unit 31 also assigns an identification label “O” to the obstacle 62 specified by the measurement information Im, and defines the proposition “o i ” that the object i interferes with the obstacle O. do.
  • the abstract state setting unit 31 defines the proposition “h” that the robot arms 52 interfere with each other.
  • FIG. 14 shows a bird's-eye view of the motion space corrected by the sequence processing device 3.
  • the difference from FIG. 11 is the presence or absence of a virtual obstacle 62b.
  • This virtual obstacle 62b shown in FIG. It is a virtual obstacle drawn by the user when generated.
  • the abstract state setting unit 31 assumes that the entity of the virtual obstacle 62b actually exists in the action space, and the virtual obstacle 62b is newly arranged in the action space. Recognize as if.
  • the abstract state setting unit 31 is supplied with the correction information Ir generated by the attribute information processing unit and reflecting the attribute of the virtual obstacle 62b, in addition to the recognition of the motion space before correction. The existence range of the obstacle 62b is recognized. The abstract state setting unit 31 then generates the output signal S6 and these recognition results based on the correction information Ir as the measurement information Im.
  • the abstract state setting unit 31 attaches identification labels "1" to "4" to the objects 61a to 61d specified by the measurement information Im, respectively.
  • the abstract state setting unit 31 also sets the proposition “g Define i ”.
  • the abstract state setting unit 31 also assigns an identification label “O” to the obstacle 62a specified by the measurement information Im, and defines the proposition “o i ” that the object i interferes with the obstacle O. do.
  • the abstract state setting unit 31 also assigns an identification label “Ov” to the virtual obstacle 62b specified by the correction information Ir, and the proposition “ov i ” that the object i interferes with the virtual obstacle Ov.
  • the abstract state setting unit 31 defines the proposition “h” that the robot arms 52 interfere with each other.
  • the abstract state setting unit 31 refers to the abstract state designation information I1 to recognize the abstract state to be defined, and the proposition (in the above example, g i , o i , ov i , h) are defined according to the number of objects 61, the number of robot arms 52, the number of obstacles 62, 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 generating unit 32 as the abstract state setting information Is.
  • FIG. 16 is a functional block configuration diagram of the target logical formula generation section 32.
  • the target logical expression generation unit 32 functionally includes an input reception unit 321 , a logical expression conversion unit 322 , a constraint information acquisition unit 323 , and a constraint addition unit 324 .
  • the input reception unit 321 receives input of an input signal S1 that specifies the type of target task and the final state of the object to be worked on by the robot. Further, the input reception unit 321 transmits a display signal S2 of the task input screen for receiving these inputs to the target logical expression generation unit 32 of the robot controller 1 .
  • the logical formula conversion unit 322 converts the target task specified by the input signal S1 into a logical formula using temporal logic.
  • the target logical expression generation unit 32 divides the target task into an operator “ ⁇ ” corresponding to “eventually” in Linear Temporary Logic (LTL) and a proposition “g i ” to generate the logical expression “ ⁇ g 2 ”.
  • the target logical expression generation unit 32 can generate arbitrary temporal logic operators other than the operator “ ⁇ ” (logical product “ ⁇ ”, logical sum “ ⁇ ”, negation “ ⁇ ”, logical inclusion “ ⁇ ”, always “ ⁇ ”, next “ ⁇ ”, until “U”, etc.) may be used to express the logical expression.
  • the logical expression may be expressed using any temporal logic such as MTL (Metric Temporal Logic), STL (Signal Temporal Logic), or the like, without being limited to linear temporal logic.
  • the constraint information acquisition unit 323 acquires the constraint information I2 from the application information storage unit 41.
  • the constraint information acquisition unit 323 obtains the constraint information corresponding to the type of target task specified by the input signal S1. I2 is acquired from the application information storage unit 41 .
  • the constraint addition unit 324 adds the constraint indicated by the constraint information I2 acquired by the constraint information acquisition unit 323 to the logical expression generated by the logical expression conversion unit 322, thereby generating the target logical expression Ltag.
  • the constraint adding unit 324 translates these constraints into logical expressions. Specifically, the constraint adding unit 324 uses the proposition “o i ” and the proposition “h” defined by the abstract state setting unit 31 in the above description to add the above two constraints as follows. Convert to a logical expression. ⁇ h ⁇ i ⁇ o i
  • the following target logical formula Ltag is generated.
  • the constraints corresponding to the pick-and-place are not limited to the above-mentioned two. exist.
  • the constraint conditions in the modified motion space as shown in FIG. 14 include a constraint condition such as "the object i does not interfere with the virtual obstacle Ov". Such a constraint is similarly stored in the constraint information I2 and reflected in the target logical expression Ltag.
  • the time step logical formula generation section 33 determines the number of time steps (also referred to as “target number of time steps”) to complete the target task, and generates the target logical formula with the target number of time steps. Define a combination of propositions representing states at each time step that satisfies Ltag. Since there are usually a plurality of combinations, the time step logical expression generation unit 33 generates a logical expression combining these combinations by logical sum as the time step logical expression Lts.
  • the above combinations are candidates for the logical expression representing the sequence of actions to be given to the robot 5, and are hereinafter also referred to as "candidates ⁇ ".
  • the time step logical expression generating unit 33 receives “( ⁇ g 2 ) ⁇ ( ⁇ h) ⁇ ( ⁇ i ⁇ ⁇ o i ) ” from the target logical expression generating unit 32 as the target logical expression Ltag. be.
  • the time step logical expression generator 33 uses the proposition “g i,k ” which is obtained by expanding the proposition “g i ” so as to include the concept of time steps.
  • the proposition ⁇ g i,k '' is a proposition that ⁇ object i exists in region G at time step k''.
  • ⁇ g 2 and 3 can be rewritten as shown in the following equations.
  • the target logical expression Ltag described above is represented by the logical sum ( ⁇ 1 ⁇ 2 ⁇ 3 ⁇ 4 ) of four candidates “ ⁇ 1 ” to “ ⁇ 4 ” shown below.
  • the time step logical expression generator 33 determines the logical sum of the four candidates ⁇ 1 to ⁇ 4 as the time step logical expression Lts.
  • the time step logical expression Lts is true when at least one of the four candidates ⁇ 1 to ⁇ 4 is true.
  • the time step logical expression generation unit 33 refers to the operation limit information I3 for the generated candidates to determine feasibility, and excludes candidates determined to be unrealizable.
  • the time step logical expression generator 33 recognizes the distance that the robot hand can move per time step based on the motion limit information I3.
  • the time step logical expression generator 33 excludes the candidate ⁇ 3 and the candidate ⁇ 4 from the time step logical expression Lts .
  • the time step logical expression Lts is the logical sum ( ⁇ 1 ⁇ 2 ) of candidate ⁇ 1 and candidate ⁇ 2 .
  • the time step logical expression generation unit 33 refers to the operation limit information I3 and excludes unrealizable candidates from the time step logical expression Lts, thereby suitably reducing the processing load of the subsequent processing unit. be able to.
  • the timestep logical expression generation unit 33 determines the target number of timesteps, for example, based on the expected work time specified by user input. In this case, the time step logical expression generation unit 33 calculates the target number of time steps from the above-mentioned estimated time based on the information on the time width per time step stored in the memory 12 or storage device 4 . In another example, the time step logical expression generation unit 33 stores in the memory 12 or the storage device 4 in advance information that associates the target number of time steps suitable for each type of target task, and refers to the information. Thus, the target number of time steps is determined according to the type of target task to be executed.
  • the time step logical expression generator 33 sets the target number of time steps to a predetermined initial value. Then, the time step logical expression generator 33 gradually increases the target number of time steps until the time step logical expression Lts that allows the control input generator 35 to determine the control input is generated. In this case, the time step logical expression generation unit 33 sets the target number of time steps to a predetermined number when the optimization process performed by the control input generation unit 35 fails to lead to the optimum solution. Add by a number (an integer of 1 or more).
  • the time step logical expression generation unit 33 should set the initial value of the target number of time steps to a value smaller than the number of time steps corresponding to the working time of the target task expected by the user. Thereby, the time step logical expression generation unit 33 preferably suppresses setting an unnecessarily large target number of time steps.
  • the time step logical expression generation unit 33 sets the initial value of the target number of time steps to a small value, and gradually increases the target number of time steps until a solution exists in the optimization processing of the control input generation unit 35. .
  • the time step logical expression generator 33 can set the smallest possible number of target time steps within the range where the solution in the optimization process of the control input generator 35 exists. Therefore, in this case, it is possible to reduce the processing load in the optimization process and shorten the time required for the robot 5 to complete the target task.
  • the abstract model generation unit 34 generates an abstract model based on the measurement information Im and the abstract model information I5.
  • the abstract model information I5 information necessary for generating an 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.
  • a model is recorded in the abstract model information I5.
  • the abstract model generation unit 34 generates the position and number of objects indicated by the measurement information Im, the position of the area where the object is placed, the position of the robot 5, and the general-purpose abstract model recorded in the abstract model information I5.
  • An abstract model ⁇ is generated by reflecting the number of machines.
  • the dynamics in the action space are frequently switched. For example, in pick-and-place, when the robot arm 52 grabs the object i, the object i moves, but when the robot arm 52 does not grab the object i, the object i does not move.
  • the abstract model generation unit 34 can determine an abstract model to be set for the motion space shown in FIG. 1 using the following equation (1).
  • equation (1) is a difference equation showing the relationship between the state of the object at time step k and the state of the object at time step k+1.
  • the state of gripping is represented by a logical variable that is a discrete value
  • the movement of the object is represented by a continuous value, so the equation (1) represents a hybrid system. .
  • the abstract model information I5 includes a logical variable corresponding to an action in which the dynamics is switched (an action of grabbing an object i in the case of pick and place) and a difference equation of formula (1) from the measurement information Im. information is recorded. Therefore, the abstract model generation unit 34 generates the abstract model information I5 and the measurement information even when the positions and number of objects, the area where the objects are placed (area G in FIG. 11), the number of robots 5, etc., change. By combining with Im, it is possible to determine an abstract model suitable for the environment of the target motion space.
  • the abstract model generation unit 34 generates a model of a mixed logical dynamic (MLD: Mixed Logical Dynamic) system or a hybrid system combining a Petri net, an automaton, etc., instead of the model shown in equation (1). good too.
  • MLD Mixed Logical Dynamic
  • the control input generating unit 35 uses the time step logical expression Lts supplied from the time step logical expression generating unit 33 and the abstract model supplied from the abstract model generating unit 34 to generate an optimal A control input for each time step to the robot 5 is determined for each time step.
  • the control input generator 35 defines an evaluation function for the target task, and solves an optimization problem of minimizing the evaluation function with the abstract model and the time step logical expression Lts as constraints.
  • the evaluation function is determined in advance for each type of target task, and stored in the memory 12 or the storage device 4, for example.
  • the control input generation unit 35 determines that the distance “d k ” between the target object to be transported and the target point for transporting the target object and the control input “u k ” are the minimum. (that is, minimize the energy consumed by the robot 5).
  • control input generation unit 35 determines the sum of the square of the distance dk and the square of the control input uk at all time steps as an evaluation function, and uses the abstract model and the timestep logical expression Lts (that is, the candidate ⁇ i Solve the constrained mixed-integer optimization problem shown in Equation (2) below with the disjunction) as the constraint.
  • 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 described later.
  • the control input generator 35 preferably approximates the logical variables to continuous values (a continuous relaxation problem). Thereby, the control input generator 35 can suitably reduce the amount of calculation.
  • STL linear logic equations
  • the control input generation unit 35 sets the number of time steps used for optimization to a value smaller than the target number of time steps (for example, the threshold value described above). You may In this case, the control input generator 35 sequentially determines the control input uk by, for example, solving the above-described optimization problem every time a predetermined number of time steps elapse.
  • the control input generator 35 may solve the above-described optimization problem and determine the control input uk to be used for each predetermined event corresponding to an intermediate state with respect to the target task achievement state. In this case, the control input generator 35 sets the number of time steps until the occurrence of the next event to the number of time steps used for optimization.
  • the above-mentioned event is, for example, a dynamics switching event in the motion space. For example, when the target task is pick-and-place, events such as the robot 5 picking up an object, finishing carrying one of a plurality of objects to be carried by the robot 5 to a destination point, etc. are defined as events. be done.
  • the event is predetermined, for example, for each type of target task, and information specifying the event for each type of target task is stored in the storage device 4 .
  • the subtask sequence generation unit 36 generates a subtask sequence Sr based on the control input information Ic supplied from the control input generation unit 35 and the subtask information I4 stored in the application information storage unit 41. Generate.
  • the subtask sequence generator 36 refers to the subtask information I4 to recognize subtasks that the robot 5 can accept, and converts the control input for each time step indicated by the control input information Ic into subtasks.
  • the subtask information I4 includes a function indicating two subtasks of moving the robot hand (reaching) and gripping the robot hand (grasping) as subtasks that the robot 5 can accept when the target task is pick-and-place.
  • the function "Move” representing reaching has, for example, the initial state of the robot 5 before executing the function, the final state of the robot 5 after executing the function, and the required time required to execute the function as arguments.
  • the function "Grasp" representing the grasping is a function whose arguments are, for example, the state of the robot 5 before execution of the function, the state of the object to be grasped before execution of the function, and the logical variable ⁇ .
  • the function "Grasp” indicates that the gripping action is performed when the logical variable ⁇ is "1", and the releasing action is performed when the logical variable ⁇ is "0".
  • the subtask sequence generation unit 36 determines the function "Move” based on the trajectory of the robot hand determined by the control input at each time step indicated by the control input information Ic, and determines the function "Grasp” based on the control input information Ic. It is determined based on the transition of the logical variable ⁇ at each time step shown.
  • the subtask sequence generation unit 36 transmits the control signal S3 to the sequence display unit 76 of the sequence processing device 3 .
  • a subtask sequence based on a robot model of the same kind as the robot 5 set in advance is displayed visually. This is for confirmation.
  • the control signal S3 is supplied to the sequence display section 76 of the sequence processing device 3
  • the robot model of the same type as the robot 5 displayed on the sequence display section 76 of the sequence processing device 3 operates according to the generated subtask sequence. This action can be checked repeatedly.
  • the attribute information processing unit 37 generates an attribute signal based on the attribute signal S5 generated by the attribute signal generation unit 75 of the sequence processing device 3 and the attribute information I7 stored in the application information storage unit 41. , to generate the correction information Ir.
  • the attribute information processing unit 37 refers to the attribute information I7 to recognize the combination of the object selected by the user and the attribute selected by the user in the sequence processing device 3, and recognizes the combination of the object and the attribute. , generates modification information Ir for modifying the abstract state.
  • a new virtual obstacle 62b is generated to avoid the virtual obstacle 62b and create a new plan to move to the area G. can be generated.
  • the attribute information processing unit 37 generates an attribute having information that "the object Ov drawn by the user is given an attribute of obstacle" by the attribute signal generating unit 75 of the sequence processing device 3.
  • a signal S5 is provided. Further, by referring to the attribute information I7, based on the information of the attribute signal S5, the correction information Ir to "create a new virtual obstacle 62b at a specific position in the motion space" is generated. By supplying the correction information Ir to the abstract state setting unit 31, it becomes possible to newly set the abstract state that "the virtual obstacle 62b is placed in the motion space from the beginning".
  • the attribute information processing unit 37 receives information from the attribute signal generation unit 75 of the sequence processing device 3 that "the object Ov drawn by the user has been given the attribute of via point".
  • An attribute signal S5 having a value is supplied.
  • the correction information Ir is generated to "generate a new via point 62c at a specific position in the motion space".
  • control signal processing section 71 receives a control signal S3 indicating a subtask sequence from the robot controller 1, it generates a plan display signal Ss for displaying the plan of the subtask sequence, It is supplied to the sequence display section 76 . Also, when receiving a control signal from the robot controller 1 , the control signal processing section 71 generates an input acceptance signal Si for accepting an input from the user, and supplies it to the input acceptance section 72 .
  • the input reception signal Si also includes information such as position vectors and shapes of robots, obstacles, objects in the motion space, and other objects constructing the motion space. Also, the control signal processing unit 71 can store the received control signal S3 without returning it.
  • control signal processing unit 71 when the control signal processing unit 71 receives the signal Sa for operating the robot 5 from the input receiving unit 72, the control signal processing unit 71 transmits the stored control signal S3 to the robot 5 as it is, thereby controlling the robot according to the subtask sequence. It is possible to take action.
  • the input reception unit 72 When the input reception unit 72 is supplied with the input reception signal Si from the control signal processing unit 71, the user can perform an operation on the screen.
  • the input reception signal Si includes information such as position vectors and shapes of robots, obstacles, objects, and other objects that construct the movement space in the movement space. By performing the conversion process, it becomes possible to perform an operation reflecting such information.
  • FIG. 13 is a screen during sequence processing in the third embodiment.
  • the user can use an input device such as a mouse to draw the virtual object Ov on the screen at a position where other objects do not interfere.
  • an icon inverted triangle icon in FIG. 13 that allows attribute selection is displayed near the virtual object Ov, and when the icon is selected on the screen, two attributes of "obstacle” or "waypoint” are selected. can do. If "obstacle” is selected at this time, the virtual object Ov is regarded as a newly generated obstacle. On the other hand, if "waypoint” is selected, the virtual object Ov is regarded as a newly generated waypoint.
  • the robot is constrained to pass through the area of the virtual object Ov.
  • the input reception unit 72 generates an input display signal Sr for displaying the content input by the user on the screen in real time, and transmits it to the sequence display unit 76 .
  • operations such as drawing of virtual objects, selection of objects or virtual objects, and selection of attributes are displayed in real time on the screen.
  • the input reception unit 72 generates an object selection signal So indicating that an object has been selected on the screen when the user performs an operation of drawing an object on the screen or selecting an object. and supplied to the object information acquisition unit 73 .
  • the input reception unit 72 when the user performs an operation of selecting an attribute on the screen, the input reception unit 72 generates an attribute selection signal Sp indicating that the attribute has been selected on the screen, and the attribute information acquisition unit 74.
  • the input reception unit 72 generates an operation signal Sa for operating the robot 5 according to the user's instruction, and supplies it to the control signal processing unit 71 .
  • options for determining whether or not to operate the robot according to the subtask sequence are displayed on the screen, and the user selects one to determine whether or not to perform the robot operation.
  • the input receiving unit 72 receives an input from the user indicating that the robot will perform a robot motion, it generates a motion signal Sa and supplies it to the control signal processing unit 71 to perform the robot motion.
  • the input receiving unit 72 starts to receive an input related to sequence processing, and draws a virtual object in the motion space, selects an object, and selects an object set for each object. Operations such as selection of attributes are possible.
  • the object information acquisition unit 73 stores the information of the object selected on the screen by the user.
  • the object selection information Io which is the object model information I6 corresponding to the selected object, is obtained and supplied to the attribute signal generator 75 .
  • This object selection information Io includes the position vector (eg, x, y coordinates) of the selected object, the shape of the object (eg, rectangle, circle, cylinder, sphere), the type of object (type of object, or actual object). , or virtual object). For example, in the example of FIG.
  • the object information acquisition unit 73 may acquire object information by recognizing an object by performing an image recognition technique on an image captured by a camera.
  • the attribute information acquisition unit 74 acquires the attribute information selected by the user on the screen from the application information storage unit 41. Acquire the attribute selection information Ip to represent.
  • the acquired attribute selection information Ip is supplied to the attribute signal generator 75 . For example, in the example of FIG. 13, an attribute in which either "obstacle” or "waypoint" is selected is acquired.
  • the attribute signal generating unit 75 generates an attribute signal representing information obtained by combining the obtained object information and the obtained attribute information based on the object selection information Io and the attribute selection information Ip. Generate S5.
  • the attribute signal S5 can be supplied to the attribute information processing section 37 to inform the robot controller 1 of information that "a specific object selected by the user has been given a specific attribute". For example, in the example of FIG. 13, the attribute signal generator 75 generates an attribute signal S5 indicating that "virtual object Ov existing at the drawn position has been given the attribute of obstacle".
  • FIG. 12 is a display example of a plan before sequence processing in the third embodiment.
  • This display example is the first display displayed when the display signal Ss is supplied from the control signal processing unit 71 to the sequence display unit 76 .
  • a plan 64d which is a subtask sequence plan, is displayed in the work bird's-eye view of FIG.
  • the input reception unit 72 receives an input for determining whether to supply the control signal processing unit 71 with the operation signal Sa for performing the robot operation. done above.
  • FIG. 13 is a display example of a plan during sequence processing in the third embodiment.
  • This display example is a display example when the object 62b is drawn by the user after the input reception unit 72 receives an input indicating that the robot does not move.
  • an icon 66 allowing attribute selection is displayed near the object 62b, and when the icon 66 is selected, a window 67 showing attributes is displayed.
  • the window 67 displays a plurality of attributes of "obstacle" and "waypoint", and when one of the attributes is selected on the screen, the attribute information acquisition unit 74 attribute information is obtained.
  • FIG. 17 is an example of a flow chart showing an overview of subtask sequence processing executed by the sequence processing device 3 and the robot controller 1 in the third embodiment.
  • the abstract state setting unit 31 of the robot controller 1 Based on the output signal S6 supplied from the measuring device 6, the abstract state setting unit 31 of the robot controller 1 generates the measurement information Im indicating the measurement result of the object in the motion space and sets the abstract state (step S11).
  • the control input S3 of the subtask sequence is generated by the processes of the target logical expression generator 32, the time step logical expression 33, the abstract model generator 34, the control input generator 35, and the subtask sequence generator 36 of the robot controller 1. (Step S12).
  • the signal Ss for displaying the subtask sequence is generated by the control signal processing unit 71 of the sequence processing device 3, and the plan of the subtask sequence is displayed on the screen by the sequence display unit (step S13). Then, if the plan of the subtask sequence is the plan desired by the user, when the user gives an instruction using the input device, the signal Sa for performing the robot motion is generated by the input reception unit 72, and the control signal processing unit 71 supplied to After that, the control signal S3 is supplied to the robot 5, and the robot moves (step S14; Yes).
  • step S15 if the user determines that it is necessary to modify the subtask sequence, the user gives an instruction using the input device. is received (step S15).
  • the object information acquisition unit 73 receives an object selection signal So, and acquires object information such as the position vector, shape, and type of the selected object.
  • object selection information Io corresponding to the object selection signal So is acquired (step S16).
  • the attribute information acquisition unit 74 receives an attribute selection signal Sp, and acquires attribute information Ip corresponding to the attribute selection signal Sp, which represents information on the selected attribute. (step S17).
  • the attribute signal generation unit 75 Based on the object selection information Io and the attribute selection information Ip, the attribute signal generation unit 75 generates an attribute signal S5 indicating information obtained by combining the acquired object information and the acquired attribute information (step S18). ).
  • the generated attribute signal S5 is supplied to the robot controller 1.
  • the attribute information processing unit 37 of the robot controller 1 generates an abstract state based on the attribute signal S5 generated by the attribute signal generation unit 75 of the sequence processing device 3 and the attribute information I7 stored in the application information storage unit 41. is newly set, and correction information Ir necessary for recognizing the state of the motion space after correction is generated (step S19). After that, the process of the flowchart returns to step S11.
  • the abstract state setting unit 31 Based on the correction information Ir supplied from the attribute information processing unit 37 and the output signal S6 supplied from the measurement device 6, the abstract state setting unit 31 generates measurement information Im indicating the measurement result of the object in the motion space.
  • the setting of the abstract state is updated (step S11). After that, as described above, the processes of steps S12, S13, and S14 are executed.
  • FIG. 17 shows a specific order of execution
  • the order of execution may differ from the form depicted.
  • the order of execution of two or more steps may be interchanged with respect to the order shown.
  • two or more steps shown in succession in FIG. 17 may be executed concurrently or with partial concurrence.
  • one or more steps shown in FIG. 17 may be skipped or omitted.
  • sequence processing device (correction device) 3 and the robot controller 1 cooperate to control the motion of the robot 1. Therefore, the functional blocks of the robot controller and the functional blocks of the sequence processing device described above are merely examples. In other embodiments, some or all of the functional blocks of the sequence processing device (correction device) 3 may be included as functions of the robot controller 1, or vice versa.
  • FIG. 18 is an example of a screen during sequence correction by the sequence processing device 3 in the fourth embodiment.
  • the task shown in FIG. 18 is a pick-and-place task of "carrying a PET bottle 81 to area G" by the robot arm 80.
  • the pick-and-place task is executed after changing the state according to the selected attributes. . Even with the measuring device 6, it cannot be determined whether the lid of the PET bottle is open or closed.
  • the motion sequence of the robot can be appropriately modified, and the desired task can be realized by the robot.
  • the attribute "Open” indicates information that the PET bottle has a lid, but the lid has been opened once by a user or the like, and the lid is not completely sealed. This indicates that the robot can perform lid-related tasks (eg, opening).
  • the attribute "Closed” indicates that the plastic bottle has the lid in a completely closed state, so the robot cannot perform lid-related tasks (eg, opening).
  • the attribute information according to this embodiment can also depend on the relationship between the robot and the object.
  • the input reception unit 72 of the sequence processing device 3 receives an input when the user selects the PET bottle 81 on the screen. After that, near the PET bottle 81, an icon 82 for selecting an attribute and a window 84 for visually understanding the state of the PET bottle 81 are displayed. Furthermore, when the user selects an icon on the screen, two attributes of "Open” and "Closed” can be selected. At this time, if "Open” is selected, a new task of "opening the cap of the PET bottle 81" can be generated for the robot. That is, it is possible to generate a plan for stepwise performing the task of "carrying the PET bottle 81 to the area G" after the task of "opening the cap of the PET bottle 81". On the other hand, when “Closed” is selected, if the PET bottle 81 has a lid, the task related to the lid is not performed, and only the task "carry the PET bottle 81 to area G" is performed.
  • the task of opening and closing the cap of a PET bottle was taken up as an example for realizing a desired task by adding attributes related to the state of an object.
  • attributes related to the state of an object such as "open” or "closed"
  • this embodiment would also be included. shall be
  • FIG. 19 is an example of a screen during sequence correction by the sequence processing device 3 in the fifth embodiment.
  • the task displayed in FIG. 19 is a pick-and-place task of “carrying an object 92 to area G” with a robot arm 90 .
  • the object is to implement a desired task by assigning attributes related to the types of objects in the motion space.
  • the situation in the example of FIG. 19 is such that when performing the pick-and-place task for object 92, the position of object 92 is , the hand of the robot arm 90 cannot be moved. Therefore, an attribute is given to the obstacle 91 in order to perform the task of "carrying the object 92 to the area G" after performing the task of "moving the obstacle 91".
  • the type of obstacle 91 is changed according to the selected attribute, and then the pick-and-place task is executed.
  • the attribute "obstacle” indicates that the object cannot move, and the attribute "object” indicates that the object can move.
  • the attribute information according to this embodiment can also depend on the relationship between the robot and the object.
  • the input reception unit 72 of the sequence processing device 3 receives an input when the obstacle 91 is selected on the screen by the user. After that, an icon 94 for selecting an attribute and a window 95 showing the attributes of the obstacle 91 are displayed near the obstacle 91. When the icon is selected on the screen, two types of "obstacle” or "object” are displayed. Attributes can be selected. At this time, if the "object” is selected, the obstacle 91 can be regarded as the object 91. FIG. As a result, a new task of "moving the object 91" can be generated. That is, it is possible to generate a plan for stepwise performing the task of "carrying the object 92 to the area G" after the task of "moving the object 91". On the other hand, if "obstacle” is selected, the type of object 91 remains “obstacle", resulting in the impossibility of executing the task of "carrying object 92 to area G". end.
  • an information processing apparatus or information processing method displays a space in which a robot operates and a plurality of attribute candidates for an object or virtual object in the space, and selects one of the plurality of attribute candidates.
  • the attribute candidate thus obtained is set as an attribute of the object or virtual object.
  • Non-transitory computer readable media include various types of tangible storage media.
  • Examples of non-transitory computer-readable media include magnetic recording media (e.g., flexible discs, magnetic tapes, hard disk drives), magneto-optical recording media (e.g., magneto-optical discs), CD-ROMs (Read Only Memory), CD-Rs, Includes CD-R/W, DVD (Digital Versatile Disc), semiconductor memory (eg, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (Random Access Memory)).
  • magnetic recording media e.g., flexible discs, magnetic tapes, hard disk drives
  • magneto-optical recording media e.g., magneto-optical discs
  • CD-ROMs Read Only Memory
  • CD-Rs Includes CD-R/W
  • DVD Digital Versatile Disc
  • semiconductor memory eg, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM,
  • the program may also be delivered to the computer on various types of transitory computer readable medium.
  • Examples of transitory computer-readable media include electrical signals, optical signals, and electromagnetic waves.
  • Transitory computer-readable media can deliver the program to the computer via wired channels, such as wires and optical fibers, or wireless channels.
  • Appendix 1 an input reception unit that receives input for correcting the motion sequence for the robot; an object information acquisition unit that acquires object information representing information about an object or a virtual object in the motion space of the robot; an attribute information acquisition unit that acquires attribute information about the object or the virtual object based on the input through the input reception unit; Information processing device.
  • (Appendix 2) a sequence display unit that displays an operation sequence of the robot; the input reception unit that receives a signal for performing an action of the robot that is input with respect to the display result;
  • (Appendix 3) 3.
  • (Appendix 4) 4. The information processing apparatus according to any one of attachments 1 to 3, wherein the object information acquisition unit acquires information on the object or virtual object based on the input via the input reception unit.
  • (Appendix 5) 3. The information processing apparatus according to appendix 2, wherein the control signal processing unit converts a control signal for an operation sequence of the robot into a display signal for displaying the operation sequence, and supplies the display signal to the sequence display unit.
  • the input reception unit receives the input, generates a signal for displaying in real time an operation on the object or the virtual object or an attribute of the object or the virtual object, and supplies the signal to the sequence display unit. 6.
  • the information processing device according to any one of 5.
  • (Appendix 7) 7. The information processing apparatus according to appendix 6, wherein the sequence display unit selectably displays a plurality of attributes of the object or the virtual object when the input reception unit receives the input regarding selection of the object or the virtual object. .
  • (Appendix 8) The information processing apparatus according to any one of appendices 1 to 7, wherein the attribute information is based on a relationship between the robot and the object or virtual object.
  • (Appendix 9) The information processing apparatus according to appendix 8, wherein the attribute information includes information indicating that the robot can pass through the virtual object and information indicating that the robot cannot pass through the virtual object.
  • (Appendix 10) The attribute information according to appendix 8, wherein the attribute information includes information indicating that the robot can perform a task related to the object and information indicating that the robot cannot perform the task related to the object.
  • Information processing equipment is included in the object.
  • (Appendix 11) The information processing apparatus according to appendix 8, wherein the attribute information includes information indicating that the object can be moved by the robot and information indicating that the object cannot be moved by the robot.
  • (Appendix 12) a sequence display section for displaying the motion sequence of the robot; an input reception unit that receives an input for correcting an operation sequence for the robot with respect to the display result; a control signal processing unit that transmits a control signal for the operation sequence to the robot based on the input; an object information acquisition unit that acquires object information representing information about an object or a virtual object in the motion space of the robot; an attribute information acquisition unit that acquires attribute information about the object or the virtual object based on the input through the input reception unit; an attribute signal generation unit that combines the object information and the attribute information and generates an attribute signal that combines the object information and the attribute information; receiving the attribute signal generated by the attribute signal generating unit and having information on the combination of the object and the attribute, and generating an abstract state indicating the motion space of the robot based on the attribute
  • (Appendix 13) further comprising a measuring device for measuring the operating space, an abstract state setting unit configured to set an abstract state in consideration of attributes based on the correction information generated by the attribute information processing unit and the measurement information indicating the measurement result of the motion space of the robot measured by the measurement device; 13.
  • the modified system of claim 12. (Appendix 14) Receiving input for modifying the motion sequence for the robot, Acquiring object information representing information about an object or virtual object in the motion space of the robot; An information processing method for acquiring attribute information about the object or the virtual object based on the input.
  • (Appendix 15) a process of accepting input for modifying the motion sequence for the robot; a process of acquiring object information representing information of an object or virtual object in the motion space of the robot; a process of acquiring attribute information about the object or the virtual object based on the input;
  • a non-transitory computer-readable medium that stores a program that causes a computer to execute (Appendix 16) displaying a space in which the robot operates and a plurality of attribute candidates for an object or virtual object in the space;
  • An information processing device configured to set an attribute candidate selected from the plurality of attribute candidates as an attribute of the object or virtual object.
  • robot controller 2 input device 3 sequence processing device (correction device) 4 storage device 5 robot 6 measuring device 10 information processing device 41 application information storage unit 71 control signal processing unit 72 input reception unit 73 object information acquisition unit 74 attribute information acquisition unit 75 attribute signal generation unit 76 sequence display unit 100 robot control system ( correction system)

Landscapes

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

Abstract

本開示は、ロボットの動作空間内の物体の属性を取得可能な情報処理装置等を提供することを目的とする。情報処理装置(10)は、ロボット(5)に対する動作シーケンスを修正するための入力を受け付ける入力受付部(72)と、ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する物体情報取得部(73)と、入力受付部(72)を介した入力に基づいて、物体又は仮想物体に関する属性情報を取得する属性情報取得部(74)と、を備える。

Description

情報処理装置、修正システム、情報処理方法及び非一時的なコンピュータ可読媒体
 本開示は、ロボットの動作計画を修正する処理を行うための情報処理装置、修正システム、情報処理方法及び非一時的なコンピュータ可読媒体に関する。
 ロボットの最適経路に沿った動作を実機で再現した際、本来人が想定した動作と異なる挙動を示すことがある。例えば、アームの手先が複数の障害物を回避するような最適経路を生成した場合、アームの手先位置以外の部分が衝突する、アームの姿勢変化の大きさによる過負荷がかかってしまうといったことが想定される。また、アームが何かしらの物体を把持したまま動作を行う場合、把持している物体が周囲の人、動物、物体に衝突するといった状況が発生する可能性がある。このようにロボットの最適な動作計画が生成された後、その動作を可視化し、その動作を人が修正できるような機能が必要である。
 特許文献1には、オフラインプログラミングにより作成したロボット制御プログラムのポジション変数を修正する変数修正方法が開示されている。特許文献2には、パレタイズシステムのように選定入力されたプログラムによりロボットを駆動制御し、このロボットにより所定の製品(以下、ワークという)を取り扱うロボットシステムが開示されている。特許文献3には、ロボットシミュレータを用いて産業用ロボットの動作をシミュレートすることによりプログラミングを行なうロボット動作のシミュレーション方法が開示されている。特許文献4には、ロボットシミュレータを用いて産業用ロボットの動作をシミュレートすることによりプログラミングを行なうロボット動作のシミュレーション方法が開示されている。
特開昭62-106507号公報 特開平07-214485号公報 特開平08-328632号公報 特開2013-136123号公報
 しかしながら、上記特許文献1~4に係る技術は、ロボットの動作シーケンスを修正する際、ロボットの動作空間内の物体に関する属性を適切に取得することができない。こうした属性は、ロボットの動作の制約条件となり得るが、こうした物体に関する属性の一部は、カメラなどの各種センサによっても正確に判断することが難しい場合がある。
 本開示は、このような問題点を解決するためになされたものであり、ロボットの動作シーケンスを修正するにあたって、ロボットの動作空間内の物体の属性を取得可能な情報処理装置、修正システム、情報処理方法等を提供することを目的の1つとする。
 本開示の第1の態様にかかる情報処理装置は、
 ロボットに対する動作シーケンスを修正するための入力を受け付ける入力受付部と、
 前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する物体情報取得部と、
 前記入力受付部を介した前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する属性情報取得部と、
 を備える。
 本開示の第2の態様にかかる修正システムは、
  ロボットの動作シーケンスを表示するシーケンス表示部と、
 前記表示結果に対して、ロボットに対する動作シーケンスを修正するための入力を受け付ける入力受付部と、
 前記入力に基づいて、前記動作シーケンスの制御信号を前記ロボットに送信する制御信号処理部と、
 前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する物体情報取得部と、
 前記入力受付部を介した前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する属性情報取得部と、
 前記物体情報と、前記属性情報を結合し、前記物体情報と前記属性情報との組み合わせた属性信号を生成する、属性信号生成部と、
 前記属性信号生成部によって生成された、物体と属性の組み合わせの情報を有する前記属性信号を受信し、前記属性信号と、保存している記憶情報に基づいて、ロボットの動作空間を示す抽象状態を修正する修正情報を生成する、属性情報処理部を有する。
 本開示の第3の態様にかかる情報処理方法は、
  ロボットに対する動作シーケンスを修正するための入力を受け付け、
 前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得し、
 前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する。
 本開示の第4の態様にかかるプログラムが格納された非一時的コンピュータ可読媒体は、前記プログラムが
 ロボットに対する動作シーケンスを修正するための入力を受け付ける処理と、
 前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する処理と、
 前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する処理と、
をコンピュータに実行させる。
 本開示の第5の態様にかかる情報処理装置は、ロボットが動作する空間と、前記空間における物体または仮想物体についての複数の属性候補を表示し、
 前記複数の属性候補のうち、選択された属性候補を前記物体または仮想物体の属性に設定する。
 本開示により、ロボットの動作空間内の物体の属性を取得可能な情報処理装置、修正システム、及び情報処理方法等を提供することができる。
第1実施形態にかかる情報処理装置の機能ブロック図を示す。 第1実施形態にかかる情報処理方法を示すフローチャートである。 第2実施形態にかかる修正装置の機能ブロック図を示す。 第2実施形態にかかる修正方法を示すフローチャートである。 ロボット制御システムの構成を示す。 ロボットコントローラのハードウェア構成を示す。 シーケンス処理装置のハードウェア構成を示す。 アプリケーション情報のデータ構造の一例を示す。 ロボットコントローラの機能ブロック図の一例を示す。 シーケンス処理装置の機能ブロック図の一例を示す。 動作空間の俯瞰図の一例を示す。 第3実施形態におけるシーケンス処理前の計画表示画面の一例を示す。 第3実施形態におけるシーケンス処理中の計画表示画面の一例を示す。 第3実施形態におけるシーケンス処理後の計画表示画面の一例を示す。 第3実施形態におけるシーケンス処理後の計画表示画面の一例を示す。 目標論理式生成部のブロックの一例を示す。 第3実施形態においてシーケンス処理装置が実行する修正処理の概要を示すフローチャートの一例である。 第4実施形態におけるシーケンス処理中の計画表示画面の一例を示す。 第5実施形態におけるシーケンス処理中の計画表示画面の一例を示す。
 以下では、本開示の実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
<第1実施形態>
 図1は、第1実施形態にかかる情報処理装置の機能ブロック図を示す。
 情報処理装置10は、プロセッサおよびメモリ等を含むコンピュータにより実現される。情報処理装置10は、ユーザがロボットに対する動作シーケンスを修正する際に、属性情報を取得するために使用され得る。
 情報処理装置10は、入力受付部72、物体情報取得部73および属性情報取得部74を備える。入力受付部72は、ロボットに対する動作シーケンスを修正するためのユーザからの入力を受け付ける。入力受付部72は、マウス、キーボード、タッチパネル、スタイラスペン又はマイクロフォンなど入力装置を介して、ユーザからの入力を受け付けることができる。
 物体情報取得部73は、ロボットの動作空間内の物体又は仮想物体に関する情報を取得する。本明細書において、物体は、実際の物体(例えば、実際の障害物、ペットボトル、ドア)を指す。仮想物体は、ロボットの動作空間内に、ユーザによって設定された(例えば、描かれた)仮想的な物体(例えば、仮想障害物)を指す。物体情報取得部73は、入力受付部72を介したユーザからの入力に基づいて、ロボットの動作空間内の物体情報を取得してもよいし、カメラなどの各種センサにより、ロボットの動作空間内の物体情報を取得してもよい。例えば、物体情報取得部73は、画像認識技術を利用して、カメラによる撮影画像から、ロボットの動作空間内の物体情報(例えば、位置情報、形状、物体の種類)を取得することができる。他の実施形態では、例えば、物体又は仮想物体に関する物体情報は、ディスプレイに表示された物体又は仮想物体を、ユーザが選択することによって(すなわち、そのユーザ入力を受け付ける入力受付部72を介して)、当該物体又は仮想物体に関する情報を記憶した記憶部から取得され得る。
 属性情報取得部74は、入力受付部72を介したユーザからの入力に基づいて、物体に関する属性情報を取得する。属性情報は、物体の属性を示す情報であり、より具体的には、物体とロボットとの関係に依存する情報であり得る。いくつかの実施形態では、ロボットが、ユーザによって描かれた仮想物体に接触又は仮想物体を通過することができない場合、仮想物体に「障害物」という属性が付与され、ロボットが、当該仮想物体を経由点として通過することができる場合、当該仮想物体に「経由点」という属性が付与される場合がある。また、他の実施形態では、ロボットが物体の一例であるふたに関連するタスク(例えば、開く)を実行できない場合、ふたに「Closed」という属性が付与され、ロボットがふたに関連するタスク(例えば、開く)を実行できる場合、ふたに「Open」という属性が付与される場合がある。さらに、他の実施形態では、例えば、ロボットが物体を移動させることができない場合、物体には「障害物」という属性情報が付与され、ロボットが物体を移動させることが可能である場合は、物体には、「対象物」という属性情報が付与される場合がある。すなわち、属性情報は、物体に対するロボットの制約条件を規定するものである。こうした属性情報の一部は、カメラなどの各種センサによっても正確に判断できないものを含み得る。
 物体情報取得部73により取得された物体又は仮想物体に関する情報に関連付けられた選択可能な複数の属性情報がユーザに提示され、ユーザの選択により、1の属性が取得される。
 情報処理装置10は、様々な物体情報および物体ごとに関連付けられた選択可能な複数の属性情報を記憶する記憶部を備えてもよいし、ネットワークを介してそのような記憶部と接続されていてもよい。
 図2は、第1実施形態にかかる情報処理方法を示すフローチャートである。
 入力受付部72は、ロボットに対する動作シーケンスを修正するためのユーザからの入力を受け付ける(ステップS1a)。物体情報取得部73は、ロボットの動作空間内の物体又は仮想物体の情報を取得する(ステップS2a)。属性情報取得部74は、ユーザからの入力に基づいて、物体又は仮想物体に関する属性情報を取得する(ステップS3a)。
 以上説明した第1実施形態によれば、ロボットに対する動作シーケンスを修正するにあたり、ロボットの動作空間内の物体に関する属性を適切に取得することができる。
<第2実施形態>
 図3は、第2実施形態にかかる修正装置3の機能ブロック図を示す。修正装置3は、プロセッサおよびメモリ等を含むコンピュータにより実現される。修正装置3は、ユーザが、表示されたロボットに対する動作シーケンスを修正するために使用され得る。修正装置3は、後述するロボットコントローラと協働して使用され得る。図3に示すように、修正装置3は、制御信号処理部71、入力受付部72、物体情報取得部73、属性情報取得部74、属性信号生成部75、及びシーケンス表示部76を有する。修正装置3は、第1実施形態に係る情報処理装置10の一例である。
制御信号処理部71は、ロボットコントローラから制御信号を受信した際に、サブタスクシーケンスの計画を表示するための信号を生成し、シーケンス表示部76に供給する。また、制御信号処理部71は、ロボットコントローラから制御信号を受信した際に、ユーザからの入力を受け付けるための入力受付信号を生成し、入力受付部に供給する。さらに、制御信号処理部71は、入力受付部72からロボットを動作させるための信号を受信すると、サブタスクシーケンスを示す制御信号をロボットに送信する。
 シーケンス表示部76は、ロボットコントローラから受け取った制御信号をもとに、サブタスクシーケンスを表示する。
 入力受付部72は、入力装置を介したユーザからの入力を受け付ける。入力受付部72は、動作空間内における仮想物体の描画や、物体若しくは仮想物体の選択、物体及び描画した仮想物体の属性の変更といったロボット動作シーケンスの変更に必要な操作をユーザ入力として受け付ける。
 物体情報取得部73は、ユーザが、入力装置を用いて、表示された動作空間内の物体若しくは仮想物体から所望の物体若しくは仮想物体を選択すると、当該物体若しくは仮想物体に関する物体情報を取得する。物体若しくは仮想物体に関する物体情報は、予め、修正装置3の内部又は修正装置3に接続された記憶部に記憶されている。
 属性情報取得部74は、ユーザが、入力装置を用いて、上記選択された物体についての属性を付与すると、当該物体に関する属性情報を取得する。例えば、前述したように、ユーザが、入力装置を用いて、表示された動作空間内の物体若しくは仮想物体から所望の物体若しくは仮想物体を選択すると、当該所望の物体若しくは仮想物体に関連付けられた複数の属性が表示装置(例えば、ディスプレイ)に選択可能に表示されてもよい。その後、ユーザが、入力装置を用いて、複数の属性から一の属性を選択すると、属性情報取得部74は、当該属性情報を取得する。
 属性信号生成部75、前述した物体情報と、属性情報とに基づき、取得した物体の情報と、取得した属性の情報を結合した情報を示す属性信号を生成し、ロボットコントローラに供給する。
 図4は、第2実施形態にかかる修正方法を示すフローチャートである。
 シーケンス表示部76は、ロボットコントローラから受け取った制御信号をもとに、ロボットに対する動作シーケンス(サブタスクシーケンス)を表示する(ステップS1b)。入力受付部72は、表示された動作シーケンスに対して、入力装置を介したユーザからの入力を受け付ける(ステップS2b)。物体情報取得部73は、ユーザが、入力装置を用いて、表示された動作空間内の物体若しくは仮想物体から所望の物体若しくは仮想物体を選択すると、当該物体若しくは仮想物体に関する物体情報を取得する(ステップS3b)。属性情報取得部74は、ユーザが、入力装置を用いて、上記選択された物体についての属性を付与すると、当該物体に関する属性情報を取得する(ステップS4b)。属性信号生成部75は、前述した物体情報と、属性情報とに基づき、取得した物体の情報と、取得した属性の情報を結合する(ステップS5b)。属性信号生成部75は、これらを結合した情報を示す属性信号を生成し、ロボットコントローラに供給する。これにより、ロボットコントローラ側で、動作シーケンスの修正が行われる(ステップS6b)。
 以上説明した第2実施形態によれば、ユーザによって付与された物体等についての属性情報に基づいて、ロボットに対する動作シーケンスを修正することができる。
<第3実施形態>
(1)システム構成
 図5は、第3実施形態に係るロボット制御システム100の構成を示す。
 ロボット制御システム100は、主に、ロボットコントローラ1と、入力装置2と、シーケンス処理装置3と、記憶装置4と、ロボット5と、計測装置6と、を備える。
 ロボットコントローラ1は、ロボット5に実行させるタスク(「目的タスク」とも呼ぶ。)が指定された場合に、この目的タスクを、ロボット5が受付可能な単純なタスクのタイムステップ(時間刻み)毎のシーケンスに変換し、当該シーケンスに基づきロボット5を制御する。ロボットコントローラは、本明細書では、情報処理装置とも呼ばれる場合がある。以後では、ロボット5が受付可能な目的タスクを分解した細かいタスク(コマンド)を「サブタスク」とも呼ぶ。
 ロボットコントローラ1は、入力装置2、シーケンス処理装置3、記憶装置4、ロボット5、及び計測装置6と電気的に接続している。例えば、ロボットコントローラ1は入力装置2から目的タスクを指定するための入力信号「S1」を受信する。また、ロボットコントローラ1は、入力装置2に対し、ロボット5に実行させるタスクに関する表示を行うための表示信号「S2」を送信する。さらにロボットコントローラ1は、ロボット5の制御に関する制御信号「S3」をロボット5に送信する。例えば、ロボットコントローラ1は、制御信号S3として、ロボット毎に実行させるサブタスクのシーケンス(「サブタスクシーケンス」)とも呼ぶ。)を、シーケンス処理装置3に送信する。さらに、ロボットコントローラ1は、計測装置6から出力信号「S6」を受信する。また、ロボットコントローラ1は、シーケンス処理装置3からロボットの動作空間内の特定の物体又は仮想物体に関する属性の情報に関する属性信号「S5」を受信する。
 入力装置2は、ユーザが指定した目的タスクに関する入力を受け付けるインターフェースであり、例えば、タッチパネル、ボタン、キーボード、音声入力装置(例えば、マイクロフォン)、パーソナルコンピュータなどが該当する。入力装置2はユーザの入力に基づいて生成した入力信号S1をロボットコントローラ1へ送信する。
 シーケンス処理装置3は、ロボットコントローラ1から受け取った制御信号をもとに、サブタスクシーケンスの表示や、動作空間内における仮想物体の描画や、物体及び描画した仮想物体の属性の変更といった、ロボット動作シーケンスの変更に必要な操作をユーザが画面上で行う装置である。シーケンス処理装置3は、修正装置とも呼ばれ、第2実施形態の修正装置の一例である。シーケンス処理装置3は、ロボットコントローラ1から供給される制御信号S3に基づき、サブタスクシーケンスの表示を行い、サブタスクシーケンスの表示後、制御信号S3をロボット5に送信する。また、シーケンス処理装置3は、ロボットの動作空間内における物体の属性を表す属性信号S5をロボットコントローラ1に送信する。入力装置2は、入力部と表示部とを備えるタブレット端末であってもよく、据置型のパーソナルコンピュータであってもよい。
 記憶装置4はアプリケーション情報記憶部41を有する。アプリケーション情報記憶部41は、目的タスクからサブタスクのシーケンスを生成するために必要なアプリケーション情報を記憶する。アプリケーション情報の詳細は後述する。記憶装置4は、ロボットコントローラ1に接続又は内蔵されたハードディスクなどの外部記憶媒体であってもよく、フラッシュメモリなどの記憶媒体であってもよい。また、記憶装置4は、ロボットコントローラ1とデータ通信を行うサーバ装置であってもよい。この場合、記憶装置4は複数のサーバ装置から構成されてもよい。
 ロボット5は、ロボットコントローラ1から送信された制御信号S3に基づき、目的タスクに関連した動作を行う。ロボット5は、例えば、製造現場で利用される組み立てロボット、物流現場で荷物のピッキングを行うロボットである。ロボットアームの場合、単腕でも良いし、2つ以上の腕を持っていてもよい。ロボットアーム以外にも移動ロボットや、移動ロボットとロボットアームを組み合わせたロボットでも良い。
 計測装置6は、目的タスクを達成するために、ロボットの動作空間の状態を計測するカメラ、測域センサ、ソナー、またはこれらの組み合わせであり得る1又は複数のセンサである。本実施形態では、計測装置6は、動作空間を撮像する少なくとも1台のカメラを含むものとする。計測装置6は生成した計測信号S6をロボットコントローラ1に供給する。計測信号S6には動作空間内を撮像した画像データが少なくとも含まれる。計測装置6は停止状態を保つ必要はなく、動作中のロボット5や、自走式の移動ロボット、飛行中のドローンに取り付けるセンサであってもよい。また、計測装置6は動作空間内の音を検出するセンサ(例えば、マイクロフォン)を含めてもよい。また、計測装置6は動作空間を撮像するセンサ(例えば、CCD(charge coupled device)又はCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ)であって、動作空間外を含む任意の場所に取り付けられたセンサを含んでもよい。
 なお、図5に示すロボット制御システム100の構成は一例であり、当該構成に種々の変更が行われてもよい。例えば複数台のロボット5が存在してもよい。また、ロボット5は複数のロボットアームなどの1つのみまたは2つ以上の制御対象物を備えてもよい。これらの場合であっても、ロボットコントローラ1は、目的タスクに基づき、ロボット5もしくはロボット5が備える制御対象物毎に実行すべきサブタスクシーケンスを生成し、当該サブタスクシーケンスを示す制御信号S3を、制御対象を有するロボット5に送信する。また、計測装置6はロボット5の一部であってもよい。また、入力装置2及びシーケンス処理装置3はロボットコントローラ1に内蔵されるなどの様態により、同一の装置として扱ってもよい。また、ロボットコントローラ1は複数の装置から構成されてもよい。この場合、ロボットコントローラ1を構成する複数の装置は、予め割り当てられた処理を実行するために必要な情報の授受を、これら複数の装置間において行う。また、ロボットコントローラ1とロボット5とは、一体に構成されてもよい。なお、ロボット制御システムの全部又は一部は、ユーザがロボットの動作シーケンスを修正するために使用され得るので、修正システムとも呼ばれる場合がある。
 (2)ハードウェア構成
 図6は、ロボットコントローラ1のハードウェア構成を示す。ロボットコントローラ1は、ハードウェアとして、プロセッサ11とメモリ12と、インターフェース13とを含む。プロセッサ11、メモリ12及びインターフェース13は、データバス15を介して接続されている。
 プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、ロボットコントローラ1の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ11は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)などのプロセッサである。プロセッサ11は複数のプロセッサから構成されてもよい。
 メモリ12はRAM(Random Access Memory)、ROM(Read Only Memory)などの各種のメモリにより構成される。また、メモリ12には、ロボットコントローラ1が特定の処理を実行するためのプログラムが記憶される。また、メモリ12は作業メモリとして使用され、記憶装置4から取得した情報等を一時的に記憶する。また、メモリ12が記憶する情報の一部を、ロボットコントローラ1と通信可能な1又は複数の外部記憶媒体に記憶させても良い。また、ロボットコントローラ1に対して着脱可能な記憶媒体により記憶させても良い。
 インターフェース13は、ロボットコントローラ1と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線通信により行うためのワイヤレスインターフェースであってもよく、他の装置とケーブル等を用いて有線接続を行うためのハードウェアインターフェースであっても良い。
 なお、ロボットコントローラ1のハードウェア構成は、図6に示す構成に限定されない。例えば、ロボットコントローラ1は、入力装置2、シーケンス処理装置3、記憶装置4、及びスピーカーやイヤホン等の音出力装置と接続又は内蔵しても良い。これらの場合、ロボットコントローラ1は、入出力機能と記憶機能を備えたタブレット端末等であってもよい。
 図7はシーケンス処理装置3のハードウェア構成を示す。シーケンス処理装置3は、ハードウェアとして、プロセッサ21と、メモリ22と、インターフェース23と、入力部24aと、表示部24bと、出力部24cとを含む。プロセッサ21、メモリ22及びインターフェース23は、データバス25を介して接続されている。また、インターフェース23には、入力部24aと表示部24bと出力部24cとが接続されている。
 プロセッサ21は、メモリ22に記憶されているプログラムを実行することにより、所定の処理を実行する。プロセッサ21は、例えば、CPU、GPU、TPUなどのプロセッサである。プロセッサ21は、インターフェース23を介して入力部24aが生成した信号を受信することで、取得した属性情報を属性信号S5に変換する処理を行い、インターフェース23を介してロボットコントローラ1に当該属性信号S5を送信する。また、プロセッサ21は、インターフェース23を介してロボットコントローラ1から受信した制御信号S3に基づき、表示部24bまたは出力部24cを、インターフェース23を介して制御することで属性情報を取得することができる。
 メモリ22はRAM、ROMなどの各種のメモリにより構成される。また、メモリ22には、シーケンス処理装置が実行する処理を実行するためのプログラムが記憶される。また、メモリ22はロボットコントローラ1から受信した制御信号S3を一時的に記憶する。
 インターフェース23は、シーケンス処理装置3と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線通信により行うためのワイヤレスインターフェースであってもよく、他の装置とケーブル等を用いて有線接続を行うためのハードウェアインターフェースであっても良い。また、インターフェース23は、入力部24a、表示部24b及び出力部24cのインターフェース動作を行う。入力部24aは、ユーザの入力を受け付けるインターフェースであり、例えば、タッチパネル、ボタン、キーボード、音入力装置(例えば、マイクロフォン)などが該当する。表示部24bは、例えば、ディスプレイ、プロジェクタ等であり、プロセッサ21の制御に基づき表示を行う。また、出力部24cは、例えばスピーカであり、プロセッサ21の制御に基づき音出力を行う。
 なお、シーケンス処理装置3のハードウェア構成は、図7に示す構成に限定されない。例えば、入力部24a、表示部24b又は出力部24cの少なくともいずれかは、シーケンス処理装置3と電気的に接続する別体の装置として構成されてもよい。また、シーケンス処理装置3は、カメラなどの計測装置と接続してもよく、これらを内蔵してもよい。
 (3)アプリケーション情報
 次に、アプリケーション情報記憶部41が記憶するアプリケーション情報のデータ構造について説明する。
 図8は、アプリケーション情報記憶部41に記憶されるアプリケーション情報のデータ構造の一例を示す。図8に示すように、アプリケーション情報記憶部41は、抽象状態指定情報I1と、制約条件情報I2と、動作限界情報I3と、サブタスク情報I4と、抽象モデル情報I5と、物体モデル情報I6と、属性情報I7と、を含む。
 抽象状態指定情報I1は、サブタスクシーケンスの生成にあたり定義する必要がある抽象状態を指定する情報である。この抽象状態は、動作空間内における物体の抽象的な状態であって、後述する目標論理式において使用する命題として定められる。例えば、抽象状態指定情報I1は、目的タスクの種類毎に、定義する必要がある抽象状態を指定する。なお、目的タスクは、例えば、ピックアンドプレイス、対象物の持ち直し、対象物の回転などの種々の種類のタスクであってもよい。
 制約条件情報I2は、目的タスクを実行する際の制約条件を示す情報である。制約条件情報I2は、例えば、目的タスクがピックアンドプレイスの場合、ロボット5(ロボットアーム)が障害物に接触してはいけないという制約条件、ロボット5(ロボットアーム)同士が接触してはいけないという制約条件などを示す。なお、制約条件情報I2は、目的タスクの種類毎に夫々適した制約条件を記録した情報であってもよい。
 動作限界情報I3は、ロボットコントローラ1により制御が行われるロボット5の動作限界に関する情報を示す。動作限界情報I3は、例えば、図5に示すロボット5の速度、加速度、角速度などの上限値又は下限値を規定する情報である。
 サブタスク情報I4は、ロボット5が受付可能なサブタスクの情報を示す。例えば、目的タスクがピックアンドプレイスの場合には、サブタスク情報I4は、ロボット5のロボットアームの移動であるリーチングと、ロボットアームによる把持であるグラスピングとをサブタスクとして規定することができる。サブタスク情報I4は、目的タスクの種類毎に使用可能なサブタスクの情報を示すものであってもよい。
 抽象モデル情報I5は、動作空間におけるダイナミクスを抽象化した抽象モデルに関する情報である。抽象モデルは、後述するように、現実のダイナミクスをハイブリッドシステムにより抽象化したモデルにより表されている。抽象モデル情報I5は、上述のハイブリッドシステムにおけるダイナミクスの切り替わりの条件を示す情報を含む。切り替わりの条件は、例えば、ロボット5により対象物をロボット5が掴んで所定位置に移動させるピックアンドプレイスの場合、対象物はロボット5により把持されなければ移動できないという条件などが該当する。抽象モデル情報I5は、目的タスクの種類毎に適した抽象モデルに関する情報を有している。
 物体モデル情報I6は、計測装置6が生成した計測信号S6から認識すべき動作空間内の各物体の物体モデルに関する情報である。上述の各物体には、例えば、ロボット5、障害物、ロボット5が扱う工具その他の対象物、ロボット5以外の移動体等が該当する。物体モデル情報I6は、例えば、上述した各物体の種類、位置、姿勢、実行中の動作などをロボットコントローラ1が認識するために必要な情報と、各物体の3次元形状を認識するためのCAD(computer-aided design)データなどの3次元形状情報とを含んでいる。前者の情報は、ニューラルネットワークなどの機械学習における学習モデルを学習することで得られた推論器のパラメータを含む。この推論器は、例えば、画像が入力された場合に、当該画像において被写体となる物体の種類、位置、姿勢等を出力するように予め学習される。
 属性情報I7は、物体又は仮想物体の属性(例えば、移動不可な障害物又は移動可能な対象物など)を示す情報であり、ロボットコントローラ1における内部処理を追加するための情報である。具体的には、属性情報I7は、物体又は仮想物体とロボットとの関係に依存するものであり、物体又は仮想物体に対するロボットの制約条件である。ロボットコントローラ1は、シーケンス処理装置3が生成した属性信号S5を受信すると、取得した属性に応じて、内部処理を行うことができる。例えば、仮想的な障害物を新たに生成する場合、シーケンス処理装置3において、ユーザが描画した障害物の位置ベクトルの値や、描画後の障害物の数の情報の更新を行う処理を実行することで、動作空間内に新たに障害物が配置された新たな動作空間におけるロボット制御を行うことができる。ロボットの動作空間内の物体を障害物から対象物に変更する別の例では、物体モデル情報I6における識別ラベルを移動不可な障害物から移動可能な対象物に変更する処理を行うことで、これまで障害物だったものを対象物とみなし、対象物とみなされた物体のピックアンドプレイスなどの動作を行うことが可能となる。
 上記属性情報(障害物又は対象物)は、ロボットが、物体を移動させることができるか否かを示す情報である。すなわち、この属性情報は、ロボットと物体との関係に基づくものである。他の実施形態では、後述するように、様々な属性を用いることができる。
 このように、様々な属性情報I7が、予め設定され、アプリケーション情報記憶部41に記憶されている。
 なお、アプリケーション情報記憶部41は、上述した情報の他、サブタスクシーケンスの生成処理、制御信号S3に関する種々の情報を記憶してもよい。
 (4)機能ブロック図
 (4-1)ロボットコントローラの機能ブロック図
 図9はロボットコントローラ1の機能ブロック図の一例を示す。ロボットコントローラ1のプロセッサ11は、機能的には、抽象状態設定部31と、目標論理式生成部32と、タイムステップ論理式生成部33と、抽象モデル生成部34と、制御入力生成部35と、サブタスクシーケンス生成部36と、属性情報処理部37と、を有する。なお、図8では、各ブロック間で授受が行われるデータの一例が示されているが、これに限定されない。後述する他の機能ブロック図についても同様である。
 抽象状態設定部31は、計測装置6から供給される出力信号S6に基づき、動作空間内における計測結果を示す情報(「計測情報Im」とも呼ぶ)を生成する。具体的には抽象状態設定部31は出力信号S6を受信した場合に物体モデル情報I6等を参照し、目的タスクの実行に関連する動作空間内の各物体の種類(ロボット5、障害物、ロボット5が扱う工具その他の対象物、ロボット5以外の移動体等)及び位置を認識し、この認識結果を計測情報Imとして生成する。また、抽象状態設定部31は、属性情報処理部37から供給される信号を受信した場合、前述の計測情報Imを更新し、属性を考慮した動作空間内の計測結果を示す情報を新たに生成する。抽象状態設定部31は、生成した計測情報Imを、抽象モデル生成部34に供給する。
 また、抽象状態設定部31は、上述の計測情報Im及びアプリケーション情報記憶部41から取得した抽象状態指定情報I1等に基づき、目的タスクを実行時の動作空間内の抽象状態を設定する。この場合、抽象状態設定部31は、各抽象状態に対し、論理式で表すための命題を定義する。抽象状態設定部31は、設定した抽象状態を示す情報(「抽象状態設定情報Is」とも呼ぶ。)を目標論理式生成部32に供給する。
 目標論理式生成部32は、目的タスクに関する入力信号S1を入力装置2から受信した際に、抽象状態設定情報Isに基づき、入力信号S1が示す目的タスクを、最終的な達成状態を表す時相論理の論理式(「目標論理式Ltag」とも呼ぶ。)に変換する。この場合、目標論理式生成部32は、アプリケーション情報記憶部41から制約条件情報I2を参照することで、目的タスクの実行において満たすべき制約条件を、目標論理式Ltagに付加する。そして、目標論理式生成部32は、生成した目標論理式Ltagを、タイムステップ論理式生成部33に供給する。また、目標論理式生成部32は目的タスク実行に必要な入力を受け付けるタスク入力画面を表示するための表示信号S2を生成し、当該表示信号S2を入力装置2に供給する。
 タイムステップ論理式生成部33は、目標論理式生成部32から供給された目標論理式Ltagを、各タイムステップでの状態を表した論理式(「タイムステップ論理式Lts」とも呼ぶ。)に変換する。そして、タイムステップ論理式生成部33は、生成したタイムステップ論理式Ltsを、制御入力生成部35に供給する。
 抽象モデル生成部34は、計測情報Imと、アプリケーション情報記憶部41が記憶する抽象モデル情報I5とに基づき、動作空間における現実のダイナミクス抽象化したモデルを生成する。
 なお、抽象モデルは、
Figure JPOXMLDOC01-appb-I000001
と示す。
 この場合、抽象モデル生成部34は、対象のダイナミクスを連続ダイナミクスと離散ダイナミクスとが混在したハイブリッドシステムとみなし、ハイブリッドシステムに基づく抽象モデルを生成する。抽象モデルの生成方法については後述する。抽象モデル生成部34は、生成した抽象モデルを、制御入力生成部35へ供給する。
 制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルとを満たし、評価関数を最適化するタイムステップ毎のロボット5への制御入力を決定する。そして、制御入力生成部35は、ロボット5へのタイムステップ毎の制御入力を示す情報(「制御入力情報Ic」とも呼ぶ。)を、サブタスクシーケンス生成部36へ供給する。
 サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクシーケンスを生成し、サブタスクシーケンスを示す制御信号S3を、シーケンス処理部3へ供給する。
 属性情報処理部37は、シーケンス処理装置3から供給される属性信号S5と、アプリケーション情報記憶部41が記憶する属性情報I7と、に基づき、特定の物体又は仮想物体の情報と、特定の属性の組み合わせに応じて、前述の抽象状態を修正するための修正情報Irを生成する。属性情報処理部37は、修正情報Irを、抽象状態設定部31に供給する。
 (4-2)シーケンス処理装置の機能ブロック図
 図10はシーケンス処理装置3の機能ブロック図の一例である。シーケンス処理装置3のプロセッサ11は、機能的には、制御信号処理部71と、入力受付部72と、物体情報取得部73と、属性情報取得部74と、属性信号生成部75と、シーケンス表示部76と、を有する。なお、図10は、各ブロック間で授受が行われるデータの一例が示されているが、これに限定されない。後述する他の機能ブロック図についても同様である。
 制御信号処理部71は、ロボットコントローラ1から制御信号S3を受信した際に、サブタスクシーケンスの計画を表示するための信号Ssを生成し、シーケンス表示部76に供給する。また、制御信号処理部71は、ロボットコントローラ1から制御信号を受信した際に、ユーザからの入力を受け付けるための入力受付信号Siを生成し、入力受付部72に供給する。さらに、制御信号処理部71は、入力受付部72からロボット5を動作させるための信号Saを受信すると、サブタスクシーケンスを示す制御信号S3をロボット5に送信する。
 入力受付部72は、制御信号処理部71から入力受付信号Siが供給されると、ユーザによる画面上での操作が可能となる。そして、入力受付部72は、ユーザによって入力された内容を画面上にリアルタイムに表示するための入力表示信号Srを生成し、シーケンス表示部76に送信する。さらに入力受付部72は、ユーザによって、画面上で物体又は仮想物体を選択するという操作が行われた際に、画面上で物体又は仮想物体が選択されたことを示す物体選択信号Soを生成し、物体情報取得部73に供給する。また、入力受付部72は、ユーザによって、画面上で属性を選択するという操作が行われた際に、画面上で属性が選択されたことを示す属性選択信号Spを生成し、属性情報取得部74に供給する。さらに入力受付部72は、ロボット5を動作させるための信号Saを生成し、制御信号処理部71に供給する。
 物体情報取得部73は、入力受付部72から物体選択信号Soが供給されると、物体選択信号Soに対応する物体の情報(例えば、位置ベクトル、物体の種類)を表す物体選択情報Ioを取得し、属性信号生成部75に供給される。例えば、物体の情報のうち、位置ベクトルは、計測装置6により計測され得る。例えば、物体の情報のうち、物体の種類は、計測装置6による撮影画像を画像認識技術により認識することで取得され得る。ユーザによって描かれた仮想物体の情報は、描画情報を記憶した記憶部から取得することができる。
 属性情報取得部74は、入力受付部72から物体選択信号Soが供給されると、物体選択信号Soに対応する属性選択情報Ipを取得し、属性信号生成部75に供給される。属性選択情報は、後述するが、様々な物体に対応して、複数の選択可能な属性情報として、記憶部に記憶されている。
 属性信号生成部75は、物体選択情報Ioと、属性選択情報Ipとに基づき、取得した物体の情報と、取得した属性の情報を結合した情報を示す属性信号S5を生成する。属性信号S5は、ロボットコントローラ1の属性情報処理部37に供給されることで、「ユーザによって選択された特定の物体又は仮想物体が、特定の属性を付与された」ことを示す情報をロボットコントローラ1に知らせることができる。
(5)ロボットコントローラのブロック毎の処理詳細
次に、図9に示すロボットコントローラ1の機能ブロックごとの処理の詳細について、具体例を用いて説明する。
 (5-1)抽象状態設定部
 抽象状態設定部31は、物体モデル情報I6を参照し、動作空間を認識する技術に基づき、計測装置6から供給される出力信号S6を解析し、動作空間内の各物体の計測結果(種類、位置等)を示す計測情報Imを生成する。さらに抽象状態設定部31は、計測情報Imを生成すると共に、動作空間内の抽象状態を設定する。この場合、抽象状態設定部31は、抽象状態指定情報I1を参照し、動作空間内において設定すべき抽象状態を認識する。なお、動作空間内において設定すべき抽象状態は、目的タスクの種類によって異なる。よって、目的タスクの種類毎に設定すべき抽象状態が抽象状態指定情報I1に規定されている場合には、抽象状態設定部31は、入力信号S1により指定された目的タスクに対応する抽象状態指定情報I1を参照し、設定すべき抽象状態を認識する。
 図11はピックアンドプレイスを目的タスクとした場合の動作空間の俯瞰図の一例を示す。図11に示す動作空間には、2つのロボットアーム52a、52bと、4つの物体61a~61dと、障害物62aとが存在している。
 この場合、ロボットコントローラ1の抽象状態設定部31は、まず、計測装置6から受信した出力信号S6を、物体モデル情報I6等を用いて解析することで、物体61の状態、障害物62aの存在範囲、ゴール地点として設定される領域Gの存在範囲等を認識する。ここでは、抽象状態設定部31は、物体61a~61dの各々の中心の位置ベクトル「x」~「x」を、物体61a~61dの位置として認識する。また、抽象状態設定部31は、物体61は、物体を把持するロボットハンド53aの位置ベクトル「xr1」と、ロボットハンド53bの位置ベクトル「xr2」とを、ロボットアーム52aとロボットアーム52bの位置として認識する。同様に、抽象状態設定部31は、物体61a~61dの姿勢(図11の例では物体が球状のため不要)等、障害物62aの存在範囲、領域Gの存在範囲等を認識する。なお、抽象状態設定部31は、例えば、障害物62aを直方体とみなし、領域Gを矩形とみなす場合には、障害物62a及び領域Gの各頂点の位置ベクトルを認識する。そして、抽象状態設定部31は、出力信号S6に基づくこれらの認識結果を、計測情報Imとして生成する。
 また、抽象状態設定部31は、抽象状態指定情報I1を参照することで、目的タスクにおいて定義すべき抽象状態を決定する。この場合、抽象状態設定部31は、計測情報Imに基づき、動作空間内に存在する物体及び領域を認識し、当該物体及び領域に関する認識結果(例えば物体及び領域の種類毎の個数)と制約条件情報I2とに基づき、抽象状態を示す命題を定める。
 図11の例では、抽象状態設定部31は、計測情報Imにより特定される物体61a~61dに対し、夫々識別ラベル「1」~「4」を付す。また、抽象状態設定部31は、物体「i」(i=1~4)が最終的に載置されるべき目標地点である領域G(破線枠63参照)内に存在するという命題「g」を定義する。また、抽象状態設定部31は、計測情報Imにより特定される障害物62に対して識別ラベル「O」を付し、物体iが障害物Oに干渉しているという命題「o」を定義する。さらに、抽象状態設定部31は、ロボットアーム52同士が干渉するという命題「h」を定義する。
 図14は、シーケンス処理装置3によって修正された後の動作空間の俯瞰図を示す。図9に示す動作空間には、2つのロボットアーム52a、52bと、4つの物体61a~61dと、障害物62a、仮想障害物62bとが存在している。図11との違いは仮想障害物62bの存在の有無であり、図14に示すこの仮想障害物62bは、ロボットコントローラ1内の属性情報処理部37で抽象状態を修正するための修正情報Irを生成した際に、ユーザによって描かれた、仮想的な障害物である。この場合、抽象状態設定部31は、修正情報Irが供給されると、仮想障害物62bの実体が実際に動作空間に存在するものとみなし、動作空間内に新たに仮想障害物62bが配置されたかのように、再認識する。
 この場合、抽象状態設定部31は、修正前の動作空間内の認識に加え、属性情報処理部で生成された、仮想障害物62bの属性を反映した修正情報Irが供給されることで、仮想障害物62bの存在範囲を認識する。そして、抽象状態設定部31は、出力信号S6と、修正情報Irに基づくこれらの認識結果を、計測情報Imとして生成する。
 図14の例では、抽象状態設定部31は、計測情報Imにより特定される物体61a~61dに対し、夫々識別ラベル「1」~「4」を付す。また、抽象状態設定部31は、対象物「i」(i=1~4)が最終的に載置されるべき目標地点である領域G(破線枠63参照)内に存在するという命題「g」を定義する。また、抽象状態設定部31は、計測情報Imにより特定される障害物62aに対して識別ラベル「O」を付し、物体iが障害物Oに干渉しているという命題「o」を定義する。また、抽象状態設定部31は、修正情報Irにより特定される仮想障害物62bに対して識別ラベル「Ov」を付し、物体iが仮想障害物Ovに干渉しているという命題「ov」を定義する。さらに、抽象状態設定部31は、ロボットアーム52同士が干渉するという命題「h」を定義する。
 このように、抽象状態設定部31は、抽象状態指定情報I1を参照することで、定義すべき抽象状態を認識し、当該抽象状態を表す命題(上述の例ではg、o、ov、h)を、物体61の数、ロボットアーム52の数、障害物62の数等に応じてそれぞれ定義する。そして、抽象状態設定部31は、抽象状態を表す命題を示す情報を、抽象状態設定情報Isとして目標論理式生成部32に供給する。
 (5-2)目標論理式生成部
 図16は、目標論理式生成部32の機能的なブロック構成図である。図16に示すように、目標論理式生成部32は、機能的には、入力受付部321と、論理式変換部322と、制約条件情報取得部323と、制約条件付加部324とを有する。
 入力受付部321は、目的タスクの種類と、前記ロボットの作業対象となる対象物の最終状態と、を指定する入力信号S1の入力を受け付ける。また、入力受付部321は、これらの入力を受け付けるタスク入力画面の表示信号S2を、ロボットコントローラ1の目標論理式生成部32に送信する。
 論理式変換部322は、入力信号S1により指定された目的タスクを、時相論理を用いた論理式に変換する。なお、自然言語で表されたタスクを論理式に変換する方法は、種々の技術が存在する。例えば、図11の例において、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクが与えられたとする。この場合、目標論理式生成部32は、目的タスクを線形論理式(LTL:Linear Temporary Logic)の「eventually」に相当する演算子「◇」と、抽象状態設定部31により定義された命題「g」と用いて、論理式「◇g」を生成する。また、目標論理式生成部32は、演算子「◇」以外の任意の時相論理の演算子(論理積「∧」、論理和「∨」、否定「¬」、論理包含「⇒」、always「□」、next「〇」、until「U」等)を用いて論理式を表現してもよい。また、線形時相論理に限らず、MTL(Metric Temporal Logic)やSTL(Signal Temporal Logic)などの任意の時相論理を用いて論理式を表現しても良い。
 制約条件情報取得部323は、アプリケーション情報記憶部41から制約条件情報I2を取得する。なおタスクの種類毎に制約条件情報I2がアプリケーション情報記憶部41に記憶されている場合には、制約条件情報取得部323は、入力信号S1により指定された目的タスクの種類に対応する制約条件情報I2を、アプリケーション情報記憶部41から取得する。
 制約条件付加部324は、制約条件情報取得部323が取得した制約条件情報I2が示す制約条件を、論理式変換部322が生成した論理式に付加することで、目標論理式Ltagを生成する。
 例えば、ピックアンドプレイスに対応する制約条件として「ロボットアーム52同士が干渉しない」、「物体iは障害物Oに干渉しない」の2つが制約条件情報I2に含まれていた場合、制約条件付加部324は、これらの制約条件を論理式に変換する。具体的には、制約条件付加部324は、前述の説明において抽象状態設定部31により定義された命題「oi」及び命題「h」を用いて、上述の2つの制約条件を、夫々以下の論理式に変換する。
□¬h
□¬oi
 よって、この場合、制約条件付加部324は、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクに対応する論理式「◇g」に、これらの制約条件の論理式を付加することで、以下の目標論理式Ltagを生成する。
           (◇g2)∧(□¬h)∧(∧□¬oi
 なお、実際には、ピックアンドプレイスに対応する制約条件は、上述した2つに限られず、「ロボットアーム52が同じ対象物を掴まない」、「対象物同士が接触しない」などの制約条件が存在する。また、図14のような修正後の動作空間における制約条件には「物体iは仮想障害物Ovに干渉しない」といった制約条件が含まれる。このような制約条件についても同様に、制約条件情報I2に記憶され、目標論理式Ltagに反映される。
 (5-3)タイムステップ論理式生成部
 タイムステップ論理式生成部33は、目的タスクを完了するタイムステップ数(「目標タイムステップ数」とも呼ぶ。)を定め、目標タイムステップ数で目標論理式Ltagを満たすような各タイムステップでの状態を表す命題の組み合わせを定める。通常、複数の組み合わせが、存在するため、タイムステップ論理式生成部33は、これらの組み合わせを論理和により結合した論理式を、タイムステップ論理式Ltsとして生成する。上述の組み合わせは、ロボット5に命令する動作シーケンスを表す論理式の候補となり、以後では「候補φ」とも呼ぶ。
 ここで図11の説明において例示した「最終的に対象物(i=2)が領域Gに存在する」という目的タスクが設定された場合のタイムステップ論理式生成部33(図9)の処理の具体例について説明する。
 この場合、タイムステップ論理式生成部33は、目標論理式Ltagとして、「(◇g)∧(□¬h)∧(∧□¬oi)」が目標論理式生成部32から供給される。この場合、タイムステップ論理式生成部33は、命題「g」をタイムステップの概念を含むように拡張した命題「gi,k」を用いる。ここで命題「gi,k」は「タイムステップkで物体iが領域Gに存在する」という命題である。ここで、目標タイムステップ数を「3」とした場合、目標論理式Ltagは、以下のように書き換えられる。
       (◇g2,3)∧(∧k=1,2,3□¬h)∧(∧i,k1,2,3□¬oi
 また、◇g2,3は以下の式に示すように書き換えることが可能である。
Figure JPOXMLDOC01-appb-M000002
 このとき、上述した目標論理式Ltagは、以下に示す4つの候補「φ」~「φ」の論理和(φ∨φ∨φ∨φ)により表される。
Figure JPOXMLDOC01-appb-M000003
 よって、タイムステップ論理式生成部33は、4つの候補φ~φの論理和をタイムステップ論理式Ltsとして定める。この場合、タイムステップ論理式Ltsは、4つの候補φ~φの少なくともいずれかが真となる場合に真となる。
 好適には、タイムステップ論理式生成部33は、生成された候補に対し、動作限界情報I3を参照することで、実現可能性を判定し、実現不可と判定した候補を除外するとよい。例えば、タイムステップ論理式生成部33は、動作限界情報I3に基づき、ロボットハンドが1タイムステップ当たりに移動可能な距離を認識する。また、タイムステップ論理式生成部33は、計測情報Imが示す各対象物及びロボットハンドの位置ベクトルに基づき、移動対象となる対象物(i=2)とロボットハンドとの距離を認識する。
 例えば、タイムステップ論理式生成部33は、ロボットハンド53a及びロボットハンド53bがいずれも、対象物(i=2)との距離が1タイムステップ当たりの移動可能距離よりも長いと判定した場合、上述の候補φ及び候補φは実現不可と判定する。この場合、タイムステップ論理式生成部33は、候補φ及び候補φをタイムステップ論理式Ltsから除外する。この場合、タイムステップ論理式Ltsは、候補φと候補φとの論理和(φ∨φ)となる。
 このように、タイムステップ論理式生成部33は、動作限界情報I3を参照して実現不可能な候補をタイムステップ論理式Ltsから除外することで、後段の処理部の処理負荷を好適に低減させることができる。
 次に、目標タイムステップ数の設定方法について補足説明する。
 タイムステップ論理式生成部33は、例えば、ユーザ入力により指定された作業の見込み時間に基づき、目標タイムステップ数を決定する。この場合、タイムステップ論理式生成部33は、メモリ12又は記憶装置4に記憶された、1タイムステップ当たりの時間幅の情報に基づき、上述の見込み時間から目標タイムステップ数を算出する。他の例では、タイムステップ論理式生成部33は、目的タスクの種類毎に適した目標タイムステップ数を対応付けた情報を予めメモリ12又は記憶装置4に記憶しておき、当該情報を参照することで、実行すべき目的タスクの種類に応じた目標タイムステップ数を決定する。
 好適には、タイムステップ論理式生成部33は、目標タイムステップ数を所定の初期値に設定する。そして、タイムステップ論理式生成部33は、制御入力生成部35が制御入力を決定できるタイムステップ論理式Ltsが生成されるまで、目標タイムステップ数を徐々に増加させる。この場合、タイムステップ論理式生成部33は、設定した目標タイムステップ数により制御入力生成部35が最適化処理を行った結果、最適解を導くことができなかった場合、目標タイムステップ数を所定数(1以上の整数)だけ加算する。
 このとき、タイムステップ論理式生成部33は、目標タイムステップ数の初期値を、ユーザが見込む目的タスクの作業時間に相当するタイムステップ数よりも小さい値に設定するとよい。これにより、タイムステップ論理式生成部33は、不必要に大きな目標タイムステップ数を設定することを好適に抑制する。
 上述の目標タイムステップ数の設定方法による効果について補足説明する。一般に、目標タイムステップ数が大きいほど、制御入力生成部35による最適化処理において最適解が存在する可能性が高くなる一方で、最低化処理等の処理負荷や目的タスク達成に要するロボット5の所要時間が長くなる。以上を勘案し、タイムステップ論理式生成部33は、目標タイムステップ数の初期値を小さい値とし、制御入力生成部35の最適化処理における解が存在するまで徐々に目標タイムステップ数を大きくする。これにより、タイムステップ論理式生成部33は、制御入力生成部35の最適化処理における解が存在する範囲において可能な限り少ない目標タイムステップ数を設定することができる。従って、この場合、最適化処理における処理負荷の低減、及び、目的タスク達成に要するロボット5の所要時間の短縮を実現することができる。
 (5-4)抽象モデル生成部
 抽象モデル生成部34は、計測情報Imと、抽象モデル情報I5とに基づき、抽象モデルを生成する。ここで、抽象モデル情報I5には、目的タスクの種類毎に、抽象モデルの生成に必要な情報が記録されている。例えば、目的タスクがピックアンドプレイスの場合には、対象物の位置や数、対象物を置く領域の位置、ロボット5の台数(又はロボットアーム52の数)等を特定しない汎用的な形式の抽象モデルが抽象モデル情報I5に記録されている。そして、抽象モデル生成部34は、抽象モデル情報I5に記録された汎用的な形式の抽象モデルに対し、計測情報Imが示す対象物の位置や数、対象物を置く領域の位置、ロボット5の台数等を反映することで、抽象モデルΣを生成する。
 ここで、ロボット5による目的タスクの作業時においては、動作空間内のダイナミクスが頻繁に切り替わる。例えば、ピックアンドプレイスでは、ロボットアーム52が物体iを掴んでいる場合には、当該物体iは動くが、ロボットアーム52が物体iを掴んでない場合には、当該物体iは動かない。
 以上を勘案し、本実施形態においては、ピックアンドプレイスの場合、物体iを掴むという動作を論理変数「δ」により抽象表現する。この場合、例えば、抽象モデル生成部34は、図1に示す動作空間に対して設定すべき抽象モデルを、以下の式(1)により定めることができる。
Figure JPOXMLDOC01-appb-M000004
 ここで、「u」は、ロボットハンドj(「j=1」はロボットハンド53a、「j=2」はロボットハンド53b)を制御するための制御入力を示し、「I」は単位行列を示す。なお、制御入力は、ここでは、一例として速度を想定しているが、加速度であってもよい。また、「δj,i」は、ロボットハンドjが物体iを掴んだ場合に「1」となり、その他の場合に「0」となる論理変数である。また、「xr1」、「xr2」は、ロボットハンドjの位置ベクトル、「x」~「x」は、物体iの位置ベクトルを示す。また、「h(x)」は、対象物を掴める程度に対象物の近傍にロボットハンドが存在する場合に「h(x)≧0」となる変数であり、論理変数δとの間で以下の関係を満たす。
δ=1 ⇔ h(x)≧0
 ここで、式(1)は、タイムステップkでの物体の状態とタイムステップk+1での物体の状態との関係を示した差分方程式である。そして、上記の式(1)では、把持の状態が離散値である論理変数により表わされ、物体の移動は連続値により表わされているため、式(1)はハイブリッドシステムを示している。
 式(1)では、ロボット5全体の詳細なダイナミクスではなく、対象物を実際に把持するロボット5の手先であるロボットハンドのダイナミクスのみを考慮している。これにより、制御入力生成部35により最適化処理の計算量を好適に削減することができる。
 また、抽象モデル情報I5には、ダイナミクスが切り替わる動作(ピックアンドプレイスの場合には物体iを掴むという動作)に対応する論理変数及び計測情報Imから式(1)の差分方程式を導出するための情報が記録されている。よって、抽象モデル生成部34は、対象物の位置や数、対象物を置く領域(図11では領域G)、ロボット5の台数等が変動する場合であっても、抽象モデル情報I5と計測情報Imとを組み合わせることで、対象の動作空間の環境に即した抽象モデルを決定することができる。
 なお、抽象モデル生成部34は、式(1)に示されるモデルに代えて、混合論理動的(MLD:Mixed Logical Dynamical)システムまたはペトリネットやオートマトンなどを組み合わせたハイブリッドシステムのモデルを生成してもよい。
 (5-5)制御入力生成部
 制御入力生成部35は、タイムステップ論理式生成部33から供給されるタイムステップ論理式Ltsと、抽象モデル生成部34から供給される抽象モデルとに基づき、最適となるタイムステップ毎のロボット5に対するタイムステップ毎の制御入力を決定する。この場合、制御入力生成部35は、目的タスクに対する評価関数を定義し、抽象モデル及びタイムステップ論理式Ltsを制約条件として評価関数を最小化する最適化問題を解く。評価関数は、例えば、目的タスクの種類毎に予め定められ、メモリ12又は記憶装置4に記憶されている。
 例えば、ピックアンドプレイスを目的タスクとした場合、制御入力生成部35は、運ぶ対象となる対象物と当該対象物を運ぶ目標地点との距離「d」と制御入力「u」とが最小となる(即ちロボット5が費やすエネルギーを最小化する)ように評価関数を定める。上述の距離dは、「最終的に対象物(i=2)が領域Gに存在する」という目的タスクの場合には、対象物(i=2)と領域Gとの距離に相当する。
 例えば、制御入力生成部35は、全タイムステップにおける距離dの2乗と制御入力uの2乗との和を評価関数として定め、抽象モデル及びタイムステップ論理式Lts(即ち候補φの論理和)を制約条件とする以下の式(2)に示す制約付き混合整数最適化問題を解く。
Figure JPOXMLDOC01-appb-M000005
 ここで、「T」は、最適化の対象となるタイムステップ数であり、目標タイムステップ数であってもよく、後述するように、目標タイムステップ数よりも小さい所定数であってもよい。この場合、好適には、制御入力生成部35は、論理変数を連続値に近似する(連続緩和問題とする)。これにより、制御入力生成部35は、計算量を好適に低減することができる。なお、線形論理式(LTL)に代えてSTLを採用した場合には、非線形最適化問題として記述することが可能である。
 また、制御入力生成部35は、目標タイムステップ数が長い場合(例えば所定の閾値より大きい場合)、最適化に用いるタイムステップ数を、目標タイムステップ数より小さい値(例えば上述の閾値)に設定してもよい。この場合、制御入力生成部35は、例えば、所定のタイムステップ数が経過する毎に、上述の最適化問題を解くことで、逐次的に制御入力uを決定する。
 好適には、制御入力生成部35は、目的タスクの達成状態に対する中間状態に相当する所定のイベント毎に、上述の最適化問題を解き、使用すべき制御入力uを決定してもよい。この場合、制御入力生成部35は、次のイベント発生までのタイムステップ数を、最適化に用いるタイムステップ数に設定する。上述のイベントは、例えば、動作空間におけるダイナミクスが切り替わる事象である。例えば、ピックアンドプレイスを目的タスクとした場合には、ロボット5が対象物を掴む、ロボット5が運ぶべき複数の対象物のうちの1つの対象物を目的地点へ運び終える、などがイベントとして定められる。イベントは、例えば、目的タスクの種類毎に予め定められており、目的タスクの種類毎にイベントを特定する情報が記憶装置4に記憶されている。
 (5-6)サブタスクシーケンス生成部
 サブタスクシーケンス生成部36は、制御入力生成部35から供給される制御入力情報Icと、アプリケーション情報記憶部41が記憶するサブタスク情報I4とに基づき、サブタスクシーケンスSrを生成する。この場合、サブタスクシーケンス生成部36は、サブタスク情報I4を参照することで、ロボット5が受け付け可能なサブタスクを認識し、制御入力情報Icが示すタイムステップ毎の制御入力をサブタスクに変換する。
 例えば、サブタスク情報I4には、ピックアンドプレイスを目的タスクとする場合にロボット5が受け付け可能なサブタスクとして、ロボットハンドの移動(リーチング)とロボットハンドの把持(グラスピング)の2つのサブタスクを示す関数が定義されている。この場合、リーチングを表す関数「Move」は、例えば、当該関数実行前のロボット5の初期状態、当該関数実行後のロボット5の最終状態、及び当該関数の実行に要する所要時間をそれぞれ引数とする関数である。また、グラスピングを表す関数「Grasp」は、例えば、当該関数実行前のロボット5の状態、及び当該関数実行前の把持対象の対象物の状態, 論理変数δをそれぞれ引数とする関数である。ここで、関数「Grasp」は、論理変数δが「1」のときに掴む動作を行うこと表し、論理変数δが「0」のときに放す動作を行うこと表す。この場合、サブタスクシーケンス生成部36は、関数「Move」を、制御入力情報Icが示すタイムステップ毎の制御入力により定まるロボットハンドの軌道に基づき決定し、関数「Grasp」を、制御入力情報Icが示すタイムステップ毎の論理変数δの遷移に基づき決定する。
 そして、サブタスクシーケンス生成部36は、関数「Move」と関数「Grasp」とにより構成されるサブタスクシーケンスを示す制御信号S3を生成する。例えば、目的タスクが「最終的に対象物(i=2)が領域Gに存在する」の場合、サブタスクシーケンス生成部36は、対象物(i=2)に最も近いロボットハンドに対し、関数「Move」、関数「Grasp」、関数「Move」、関数「Grasp」のサブタスクシーケンスを生成する。この場合、対象物(i=2)に最も近いロボットハンドは、1回目の関数「Move」により対象物(i=2)の位置まで移動し、1回目の関数「Grasp」により対象物(i=2)を把持し、2回目の関数「Move」により領域Gまで移動し、2回目の関数「Grasp」により対象物(i=2)を領域Gに載置する。
 また、サブタスクシーケンス生成部36は制御信号S3をシーケンス処理装置3のシーケンス表示部76に送信する。これは制御信号S3をロボット5に送信して実際に動かす前に、シーケンス処理装置3のシーケンス表示部76に送信後、事前に設定したロボット5と同種のロボットモデルによるサブタスクシーケンスを人の目で確認するためである。制御信号S3がシーケンス処理装置3のシーケンス表示部76に供給されると、シーケンス処理装置3のシーケンス表示部76に映っているロボット5と同種のロボットモデルが、生成したサブタスクシーケンスに則り動作する。この動作は繰り返し確認することが可能である。また、動作中に3次元方向に視点を回転及び平行移動させることが可能で、動作空間内のロボットのサブタスクシーケンスによる動作を、所望の視点で確認することが可能である。
 (5-7)属性情報処理部
 属性情報処理部37は、シーケンス処理装置3の、属性信号生成部75で生成される属性信号S5と、アプリケーション情報記憶部41が記憶する属性情報I7とに基づき、修正情報Irを生成する。この場合、属性情報処理部37は、属性情報I7を参照することで、シーケンス処理装置3において、ユーザによって選択された物体と、ユーザによって選択された属性の組み合わせを認識し、物体と属性の組み合わせに応じて、抽象状態を修正するための修正情報Irを生成する。
 例えば、図14の例では、対象物61dを領域Gに移動させるタスクにおいて、仮想障害物62bを新たに生成することで、仮想障害物62bを回避して、領域Gに移動する計画を新たに生成することが可能となる。
 図14に示す例において、属性情報処理部37は、シーケンス処理装置3の、属性信号生成部75より「ユーザによって描画された物体Ovに、障害物という属性が付与された」という情報を持つ属性信号S5が供給される。さらに、属性情報I7を参照することで、属性信号S5の情報をもとに、「動作空間内の特定の位置に新たに仮想障害物62bを生成する」という修正情報Irを生成する。修正情報Irが、抽象状態設定部31に供給されることで、「初めから動作空間内に仮想障害物62bが配置されている」という抽象状態を新たに設定することが可能となる。
 また、図15の例では、対象物61dを領域Gに移動させるタスクにおいて、経由点62cを新たに生成することで、経由点62cを経由して、領域Gに移動する計画を新たに生成することが可能となる。
 さらに、図15に示す例において、属性情報処理部37は、シーケンス処理装置3の、属性信号生成部75より「ユーザによって描画された物体Ovに、経由点という属性が付与された」という情報を持つ属性信号S5が供給される。さらに、属性情報I7を参照することで、属性信号S5の情報をもとに、「動作空間内の特定の位置に新たに経由点62cを生成する」という修正情報Irを生成する。修正情報Irが、抽象状態設定部31に供給されることで、「初めから動作空間内に経由点62cが設定されている」という抽象状態を新たに設定することが可能となる。
 (6)シーケンス処理装置のブロック毎の処理詳細
次に、図10に示すシーケンス処理装置3の機能ブロックごとの処理の詳細について、具体例を用いて説明する。
 (6-1)制御信号処理部
 制御信号処理部71は、ロボットコントローラ1からサブタスクシーケンスを示す制御信号S3を受信した際に、サブタスクシーケンスの計画を表示するための計画表示信号Ssを生成し、シーケンス表示部76に供給する。また、制御信号処理部71は、ロボットコントローラ1から制御信号を受信した際に、ユーザからの入力を受け付けるための入力受付信号Siを生成し、入力受付部72に供給する。入力受付信号Siには、動作空間内のロボット、障害物、対象物、その他動作空間を構築する物体の位置ベクトルや、形状などの情報も含まれる。また、制御信号処理部71は、受信した制御信号S3を返還せずに保存することが可能である。さらに、制御信号処理部71は、入力受付部72からロボット5を動作させるための信号Saを受信すると、保存していた制御信号S3をそのままロボット5に送信することで、サブタスクシーケンスに沿ったロボット動作を行うことが可能となる。
 (6-2)入力受付部
 入力受付部72は、制御信号処理部71から入力受付信号Siが供給されると、ユーザによる画面上での操作が可能となる。具体的には、入力受付信号Siには、動作空間内のロボット、障害物、対象物、その他動作空間を構築する物体の位置ベクトルや、形状などの情報も含まれており、入力受付部で変換処理を行うことで、これらの情報を反映させた操作が可能となる。
 例えば、図13は第3実施形態におけるシーケンス処理時の画面である。このときユーザは、マウスなどの入力装置を用いて、画面上で、他の物体が干渉しない位置に、仮想物体Ovを描画することができる。その後、仮想物体Ovの近くに、属性選択ができるアイコン(図13では逆三角形のアイコン)が表示され、アイコンを画面上で選択すると、「障害物」又は「経由点」という2つの属性を選択することができる。このとき「障害物」を選択すると、仮想物体Ovは新しく生成された障害物とみなされる。一方で、「経由点」を選択すると、仮想物体Ovは新しく生成された経由点とみなされる。仮想物体Ovが経由点であるとみなされた場合、ロボットは、仮想物体Ovの領域内を経由することが制約条件として課せられる。
 そして、入力受付部72は、ユーザによって入力された内容を画面上にリアルタイムに表示するための入力表示信号Srを生成し、シーケンス表示部76に送信する。これにより、画面上での仮想物体の描画、物体若しくは仮想物体の選択や属性の選択といった操作がリアルタイムで表示される。
 さらに入力受付部72は、ユーザによって、画面上で物体を描画したり、物体を選択したりする操作が行われた際に、画面上で物体が選択されたことを示す物体選択信号Soを生成し、物体情報取得部73に供給する。
 また、入力受付部72は、ユーザによって、画面上で属性を選択するという操作が行われた際に、画面上で属性が選択されたことを示す属性選択信号Spを生成し、属性情報取得部74に供給する。
 さらに入力受付部72は、ユーザの指示にしたがって、ロボット5を動作させるための動作信号Saを生成し、制御信号処理部71に供給する。具体的には、画面上に、サブタスクシーケンスに沿ってロボットを動作するか否かを判断するための選択肢が表示され、ユーザによって選択されることでロボット動作を行うかどうかが決定される。入力受付部72が、ユーザによって、ロボット動作を行うという入力を受け付けた場合、動作信号Saを生成し、制御信号処理部71に供給することでロボット動作が行われる。一方、ロボット動作を行わないという入力を受け付けた場合、入力受付部72は、シーケンス処理に関する入力を受け付けるようになり、動作空間内の仮想物体の描画、物体の選択や、物体毎に設定された属性の選択といった操作が可能となる。
 (6-3)物体情報取得部
 物体情報取得部73は、入力受付部72から物体選択信号Soが供給されると、ユーザによって画面上で選択された物体の情報を表す、アプリケーション情報記憶部41から、選択された物体に対応する物体モデル情報I6である物体選択情報Ioを取得し、属性信号生成部75に供給される。この物体選択情報Ioには、選択した物体の位置ベクトル(例えば、x,y座標)、物体の形状(例えば、矩形、円形、円柱、球体)、物体の種類(物体の種別、又は実際の物体、若しくは仮想物体)といった物体に関する情報が含まれる。例えば、図13の例では、仮想物体Ovを選択した場合、Ovの「頂点の位置ベクトルの値」、「矩形」、「描画した物体」といった情報が取得される。また、いくつかの実施形態では、物体情報取得部73は、カメラによる撮影画像に対して、画像認識技法を行うことで、物体を認識することで、その物体情報を取得してもよい。
 (6-4)属性情報取得部
 属性情報取得部74は、入力受付部72から属性選択信号Spが供給されると、アプリケーション情報記憶部41から、ユーザによって画面上で選択された属性の情報を表す属性選択情報Ipを取得する。取得された属性選択情報Ipは、属性信号生成部75に供給される。例えば、図13の例では、「障害物」、又は「経由点」のいずれかが選択された属性が取得される。
 (6-5)属性信号生成部
 属性信号生成部75は、物体選択情報Ioと、属性選択情報Ipとに基づき、取得した物体の情報と、取得した属性の情報を結合した情報を示す属性信号S5を生成する。属性信号S5は、属性情報処理部37に供給されることで、「ユーザによって選択された特定の物体が、特定の属性を付与された」という情報をロボットコントローラ1に知らせることができる。例えば、図13の例では、属性信号生成部75は「描画された位置に存在する仮想物体Ovが、障害物という属性を付与された」ということを示す属性信号S5を生成する。
 (7)表示画面の詳細
シーケンス処理装置3のシーケンス表示部76に出力される情報について説明する。
 図12は、第3実施形態における、シーケンス処理前の計画の表示例である。この表示例は、シーケンス表示部76に、制御信号処理部71から表示信号Ssが供給されることで表示される最初の表示である。図12は、図11の作業俯瞰図に、サブタスクシーケンスの計画である計画64dが表示される。ユーザによって、計画64dが画面上で確認された後に、入力受付部72において、ロボットの動作を行うための動作信号Saを、制御信号処理部71に供給するかどうかを決定するための入力が画面上で行われる。
 図13は、第3実施形態における、シーケンス処理中の計画の表示例である。この表示例は、入力受付部72において、ロボットの動作を行わないという入力を受け付けた後、ユーザによって物体62bが描画されたときの表示例である。このとき、描画した物体62bが選択されると、物体62bの近くに属性選択ができるアイコン66が表示され、アイコン66が選択されると、属性を示すウィンドウ67が表示される。第1実施形態においては、ウィンドウ67に、「障害物」及び「経由点」という複数の属性が表示され、どちらかの属性が画面上で選択されると、属性情報取得部74で、選択された属性の情報が取得される。
 (7)処理フロー
 図17は、第3実施形態においてシーケンス処理装置3と、ロボットコントローラ1が実行するサブタスクシーケンスの処理の概要を示すフローチャートの一例である。
 まず、ロボットコントローラ1の抽象状態設定部31は、計測装置6から供給される出力信号S6に基づき、動作空間内の物体の計測結果を示す計測情報Imの生成及び抽象状態の設定を行う(ステップS11)。次に、ロボットコントローラ1の目標論理式生成部32、タイムステップ論理式33、抽象モデル生成部34、制御入力生成部35、サブタスクシーケンス生成部36の処理によって、サブタスクシーケンスの制御入力S3を生成する(ステップS12)。
 次に、シーケンス処理装置3の制御信号処理部71によって、サブタスクシーケンスを表示するための信号Ssが生成され、シーケンス表示部によって、サブタスクシーケンスの計画が画面上に表示される(ステップS13)。そして、サブタスクシーケンスの計画が、ユーザにとって所望の計画であった場合、ユーザが入力装置を用いて指示を与えると、ロボット動作を行う信号Saが入力受付部72で生成され、制御信号処理部71に供給される。その後、制御信号S3がロボット5に供給され、ロボット動作が行われる(ステップS14;Yes)。
 一方で、ユーザがサブタスクシーケンスの修正処理操作を必要と判断した場合、ユーザが入力装置を用いて指示を与えると、入力受付部72で、ステップS14;Noの場合に、ユーザによるシーケンス修正処理操作を受け付ける(ステップS15)。
 次に、物体情報取得部73は、ユーザによって画面上で特定の物体が選択された場合、物体選択信号Soを受信し、選択された物体の位置ベクトル、形状、物体の種類といった物体の情報を表す、物体選択信号Soに対応した物体選択情報Ioを取得する(ステップS16)。さらに、属性情報取得部74は、ユーザによって画面上で属性が選択された場合、属性選択信号Spを受信し、選択された属性の情報を表す、属性選択信号Spに対応する属性情報Ipを取得する(ステップS17)。そして、属性信号生成部75は、物体選択情報Ioと、属性選択情報Ipとに基づき、取得した物体の情報と、取得した属性の情報を結合した情報を示す属性信号S5を生成する(ステップS18)。生成した属性信号S5は、ロボットコントローラ1に供給される。
 そして、ロボットコントローラ1の属性情報処理部37は、シーケンス処理装置3の、属性信号生成部75で生成される属性信号S5と、アプリケーション情報記憶部41が記憶する属性情報I7とに基づき、抽象状態を新たに設定し、修正後の動作空間の状態を認識させるために必要な、修正情報Irを生成する(ステップS19)。その後、フローチャートの処理は、ステップS11に戻る。
 抽象状態設定部31は、属性情報処理部37より供給される修正情報Irと、計測装置6から供給される出力信号S6に基づき、動作空間内の物体の計測結果を示す計測情報Imの生成及び抽象状態の設定を更新する(ステップS11)。その後、前述したように、ステップS12,S13、S14の各処理が実行される。
 図17のフローチャートは、実行の具体的な順番を示しているが、実行の順番は描かれている形態と異なっていてもよい。例えば、2つ以上のステップの実行の順番は、示された順番に対して入れ替えられてもよい。また、図17の中で連続して示された2つ以上のステップは、同時に、または部分的に同時に実行されてもよい。さらに、いくつかの実施形態では、図17に示された1つまたは複数のステップがスキップまたは省略されてもよい。
 上記の通り、シーケンス処理装置(修正装置)3とロボットコントローラ1は、協働してロボット1の動作を制御する。したがって、上記したロボットコントローラの機能ブロックと、シーケンス処理装置の機能ブロックは、単なる例示に過ぎない。他の実施形態では、シーケンス処理装置(修正装置)3の機能ブロックの一部又は全部が、ロボットコントローラ1の機能として含まれていてもよいし、あるいは、その逆であってもよい。
 <第4実施形態>
 図18は、第4実施形態における、シーケンス処理装置3によるシーケンス修正中の画面の一例である。図18に表示しているタスクは、ロボットアーム80で「ペットボトル81を領域Gに運ぶ」というピックアンドプレイスのタスクであり、この例では、対象物体の状態に関する属性を付与することで、所望のタスクを実現することを目的としている。具体的には、ふたがついているペットボトル81に、「Open」、「Closed」という属性を付与することで、選択した属性に応じた状態に変化させた後に、ピックアンドプレイスのタスクを実行させる。計測装置6によっても、ペットボトルのふたが開いているか、閉まっているかは判断することができない。そのため、ユーザによって、「Open」、「Closed」という属性を付与することで、ロボットの動作シーケンスに適切な修正を行い、ロボットによる所望のタスクを実現することができる。「Open」という属性は、ペットボトルにふたが付いているが、ユーザ等によって一度ふたが開けられているため、ふたが完全には密閉されていない情報を示す。つまり、ロボットは、ふたに関連するタスク(例えば、開く)を実行できることを示す。一方、「Closed」という属性は、ペットボトルに、完全に密閉された状態でふたが付いているので、ロボットは、ふたに関連するタスク(例えば、開く)を実行できないことを示す。本実施形態にかかる属性情報も、ロボットと対象物との関係を依存し得る。
 例えば、シーケンス処理装置3の入力受付部72は、ユーザによって、画面上でペットボトル81が選択されると、入力を受け付ける。その後、ペットボトル81の近くに、属性選択ができるアイコン82と、ペットボトル81の状態が視覚的にわかるウィンドウ84が表示される。さらに、ユーザがアイコンを画面上で選択すると、「Open」「Closed」という2つの属性を選択することができる。このとき、「Open」を選択すると、ロボットに対する「ペットボトル81のふたを開ける」という新たなタスクを生成することができる。すなわち、「ペットボトル81のふたを開ける」というタスクの後に、「ペットボトル81を領域Gに運ぶ」というタスクを段階的に行う計画を生成することができる。一方で、「Closed」を選択すると、ペットボトル81のふたがついている場合、ふたに関連するタスクは行わず、「ペットボトル81を領域Gに運ぶ」というタスクのみを実施する。
 例えば、図18の例において、ペットボトルの初期状態が「ふたが開いている状態」だった場合、「Closed」を選択すると、「ペットボトル81のふたを閉じる」というタスクの後に、「ペットボトル81を領域Gに運ぶ」というタスクを実施する。一方で、「Open」を選択すると、ふたに関連するタスクは行わず、「ペットボトル81を領域Gに運ぶ」というタスクのみを実施する。
 第4実施形態では、対象物の状態に関する属性を付与することで、所望のタスクを実現するための例として、ペットボトルのふたの開け閉めを行うタスクを取り上げた。その他の例として、ドアの場合、「開いている」又は「閉まっている」、といったように、対象物の状態を視覚的に決定することができる場合であれば、この実施形態にも含まれるものとする。
 <第5実施形態>
 図19は、第5実施形態における、シーケンス処理装置3によるシーケンス修正中の画面の一例である。図19に表示しているタスクは、ロボットアーム90で「対象物92を領域Gに運ぶ」というピックアンドプレイスのタスクである。この例では、動作空間内の物体の種類に関する属性を付与することで、所望のタスクを実現することを目的としている。図19の例の状況は、対象物92のピックアンドプレイスのタスクを実施する際に、すぐ近くに配置されている大きな障害物91に接触してしまう可能性があるため、対象物92の位置まで、ロボットアーム90の手先を移動させることができない。そこで、「障害物91を移動させる」タスクを行った後に、「対象物92を領域Gに運ぶ」というタスクを実施するために、障害物91に属性を付与する。具体的には、障害物91に、「障害物」、又は「対象物」という属性を付与することで、選択した属性に応じた種類に変化させた後に、ピックアンドプレイスのタスクを実行させる。「障害物」という属性は、物体が移動できないことを示し、「対象物」という属性は、物体が移動可能であることを示す。本実施形態にかかる属性情報も、ロボットと対象物との関係を依存し得る。
 例えば、シーケンス処理装置3の入力受付部72は、ユーザによって、画面上で障害物91が選択され、入力を受け付ける。その後、障害物91の近くに、属性選択ができるアイコン94と、障害物91の属性を示すウィンドウ95が表示され、アイコンを画面上で選択すると、「障害物」又は「対象物」という2つの属性を選択することができる。このとき、「対象物」を選択すると、障害物91を対象物91とみなすことができる。これにより「対象物91を移動させる」という新たなタスクを生成することができる。すなわち、「対象物91を移動させる」というタスクの後に、「対象物92を領域Gに運ぶ」というタスクを段階的に行う計画を生成することができる。一方で、「障害物」を選択すると、障害物91という物体の種類は「障害物」のまま変わらず、「対象物92を領域Gに運ぶ」というタスクの実施が不可能であるという結果に終わる。
 以上説明した様々な実施形態において、ユーザが物体に関する属性情報を付与することで、計測装置等によっても特定できない属性を物体に付与することができる。そのため、ロボットが目的タスクを達成するために、より柔軟な計画を生成することができる。
 いくつかの実施の形態では、情報処理装置又は情報処理方法は、ロボットが動作する空間と、前記空間における物体または仮想物体についての複数の属性候補を表示し、前記複数の属性候補のうち、選択された属性候補を前記物体または仮想物体の属性に設定する。
<その他の実施形態>
 尚、上述の実施形態では、ハードウェアの構成として説明したが、これに限定されるものではない。本開示は、任意の処理を、CPUにコンピュータプログラムを実行させることにより実現することも可能である。
 上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、DVD(Digital Versatile Disc)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
 なお、本開示は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、本開示は、それぞれの実施形態を適宜組み合わせて実施されてもよい。
 以上、実施形態(及び実施例)を参照して本願発明を説明したが、本願発明は上記実施形態(及び実施例)に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
 (付記1)
 ロボットに対する動作シーケンスを修正するための入力を受け付ける入力受付部と、
 前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する物体情報取得部と、
 前記入力受付部を介した前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する属性情報取得部と、
 を備える情報処理装置。
 (付記2)
 前記ロボットの動作シーケンスを表示するシーケンス表示部と、
 前記表示結果に対して、入力された前記ロボットの動作を行うための信号を受け付ける、前記入力受付部と、
 前記入力に基づいて、前記動作シーケンスの制御信号を前記ロボットに送信する制御信号処理部を更に備える、付記1に記載の情報処理装置。
 (付記3)
 前記物体情報と、前記属性情報を結合し、前記物体情報と前記属性情報との組み合わせた属性信号を生成する、属性信号生成部を更に備える、付記1又は2に記載の情報処理装置。
 (付記4)
 前記物体情報取得部は、前記入力受付部を介した前記入力に基づいて、前記物体又は仮想物体の情報を取得する、付記1~3のいずれか一項に記載の情報処理装置。
 (付記5)
 前記制御信号処理部は、前記ロボットの動作シーケンスの制御信号を、動作シーケンスを表示させるための表示信号に変換し、前記シーケンス表示部に供給する、付記2に記載の情報処理装置。
 (付記6)
 前記入力受付部は、前記入力を受け付け、前記物体又は仮想物体に対する操作、又は、前記物体又は仮想物体の属性をリアルタイムで表示させるための信号を生成し、シーケンス表示部に供給する、付記1~5のいずれか一項に記載の情報処理装置。
 (付記7)
 前記シーケンス表示部は、前記入力受付部が、前記物体又は仮想物体の選択に関する前記入力を受け付けると、前記物体又は仮想物体の複数の属性を選択可能に表示する、付記6に記載の情報処理装置。
 (付記8)
 前記属性情報は、前記ロボットと前記物体又は仮想物体との関係に基づくものである、付記1~7のいずれか一項に記載の情報処理装置。
 (付記9)
 前記属性情報は、前記ロボットが前記仮想物体を通過可能なことを示す情報、および前記ロボットが前記仮想物体を通過不可能なことを示す情報を含む、付記8に記載の情報処理装置。
 (付記10)
 前記属性情報は、前記ロボットが前記物体に関連するタスクを実行可能なことを示す情報、および前記ロボットが前記物体に関連するタスクを実行不可能なことを示す情報を含む、付記8に記載の情報処理装置。
 (付記11)
 前記属性情報は、前記物体が前記ロボットにより移動可能なことを示す情報、および前記物体が前記ロボットにより移動不可能なことを示す情報を含む、付記8に記載の情報処理装置。
 (付記12)
 ロボットの動作シーケンスを表示するシーケンス表示部と、
 前記表示結果に対して、ロボットに対する動作シーケンスを修正するための入力を受け付ける入力受付部と、
 前記入力に基づいて、前記動作シーケンスの制御信号を前記ロボットに送信する制御信号処理部と、
 前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する物体情報取得部と、
 前記入力受付部を介した前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する属性情報取得部と、
 前記物体情報と、前記属性情報を結合し、前記物体情報と前記属性情報との組み合わせた属性信号を生成する、属性信号生成部と、
 前記属性信号生成部によって生成された、物体と属性の組み合わせの情報を有する前記属性信号を受信し、前記属性信号と、保存している記憶情報に基づいて、ロボットの動作空間を示す抽象状態を修正する修正情報を生成する、属性情報処理部を有する、修正システム。
 (付記13)
 動作空間を計測する計測装置を更に備え、
 前記属性情報処理部で生成した修正情報と、前記計測装置により計測された、ロボットの動作空間の計測結果を示す計測情報に基づいて、属性を考慮した抽象状態を設定する抽象状態設定部を有する、付記12に記載の修正システム。
 (付記14)
 ロボットに対する動作シーケンスを修正するための入力を受け付け、
 前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得し、
 前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する、情報処理方法。
 (付記15)
 ロボットに対する動作シーケンスを修正するための入力を受け付ける処理と、
 前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する処理と、
 前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する処理と、
をコンピュータに実行させるプログラムを格納した非一時的なコンピュータ可読媒体。
 (付記16)
 ロボットが動作する空間と、前記空間における物体または仮想物体についての複数の属性候補を表示し、
 前記複数の属性候補のうち、選択された属性候補を前記物体または仮想物体の属性に設定する、情報処理装置。
1 ロボットコントローラ
2 入力装置
3 シーケンス処理装置(修正装置)
4 記憶装置
5 ロボット
6 計測装置
10 情報処理装置
41 アプリケーション情報記憶部
71 制御信号処理部
72 入力受付部
73 物体情報取得部
74 属性情報取得部
75 属性信号生成部
76 シーケンス表示部
100 ロボット制御システム(修正システム)

Claims (16)

  1.  ロボットに対する動作シーケンスを修正するための入力を受け付ける入力受付部と、
     前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する物体情報取得部と、
     前記入力受付部を介した前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する属性情報取得部と、
     を備える情報処理装置。
  2.  前記ロボットの動作シーケンスを表示するシーケンス表示部と、
     前記表示結果に対して、入力された前記ロボットの動作を行うための信号を受け付ける、前記入力受付部と、
     前記入力に基づいて、前記動作シーケンスの制御信号を前記ロボットに送信する制御信号処理部を更に備える、請求項1に記載の情報処理装置。
  3.  前記物体情報と、前記属性情報を結合し、前記物体情報と前記属性情報との組み合わせた属性信号を生成する、属性信号生成部を更に備える、請求項1又は2に記載の情報処理装置。
  4.  前記物体情報取得部は、前記入力受付部を介した前記入力に基づいて、前記物体又は仮想物体の情報を取得する、請求項1~3のいずれか一項に記載の情報処理装置。
  5.  前記制御信号処理部は、前記ロボットの動作シーケンスの制御信号を、動作シーケンスを表示させるための表示信号に変換し、前記シーケンス表示部に供給する、請求項2に記載の情報処理装置。
  6.  前記入力受付部は、前記入力を受け付け、前記物体又は仮想物体に対する操作、又は、前記物体又は仮想物体の属性をリアルタイムで表示させるための信号を生成し、シーケンス表示部に供給する、請求項1~5のいずれか一項に記載の情報処理装置。
  7.  前記シーケンス表示部は、前記入力受付部が、前記物体又は仮想物体の選択に関する前記入力を受け付けると、前記物体又は仮想物体の複数の属性を選択可能に表示する、請求項6に記載の情報処理装置。
  8.  前記属性情報は、前記ロボットと前記物体又は仮想物体との関係に基づくものである、請求項1~7のいずれか一項に記載の情報処理装置。
  9.  前記属性情報は、前記ロボットが前記仮想物体を通過可能なことを示す情報、および前記ロボットが前記仮想物体を通過不可能なことを示す情報を含む、請求項8に記載の情報処理装置。
  10.  前記属性情報は、前記ロボットが前記物体に関連するタスクを実行可能なことを示す情報、および前記ロボットが前記物体に関連するタスクを実行不可能なことを示す情報を含む、請求項8に記載の情報処理装置。
  11.  前記属性情報は、前記物体が前記ロボットにより移動可能なことを示す情報、および前記物体が前記ロボットにより移動不可能なことを示す情報を含む、請求項8に記載の情報処理装置。
  12.  ロボットの動作シーケンスを表示するシーケンス表示部と、
     前記表示結果に対して、ロボットに対する動作シーケンスを修正するための入力を受け付ける入力受付部と、
     前記入力に基づいて、前記動作シーケンスの制御信号を前記ロボットに送信する制御信号処理部と、
     前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する物体情報取得部と、
     前記入力受付部を介した前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する属性情報取得部と、
     前記物体情報と、前記属性情報を結合し、前記物体情報と前記属性情報との組み合わせた属性信号を生成する、属性信号生成部と、
     前記属性信号生成部によって生成された、物体と属性の組み合わせの情報を有する前記属性信号を受信し、前記属性信号と、保存している記憶情報に基づいて、ロボットの動作空間を示す抽象状態を修正する修正情報を生成する、属性情報処理部を有する、修正システム。
  13.  動作空間を計測する計測装置を更に備え、
     前記属性情報処理部で生成した修正情報と、前記計測装置により計測された、ロボットの動作空間の計測結果を示す計測情報に基づいて、属性を考慮した抽象状態を設定する抽象状態設定部を有する、請求項12に記載の修正システム。
  14.  ロボットに対する動作シーケンスを修正するための入力を受け付け、
     前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得し、
     前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する、情報処理方法。
  15.  ロボットに対する動作シーケンスを修正するための入力を受け付ける処理と、
     前記ロボットの動作空間内の物体又は仮想物体の情報を表す物体情報を取得する処理と、
     前記入力に基づいて、前記物体又は前記仮想物体に関する属性情報を取得する処理と、
    をコンピュータに実行させるプログラムを格納した非一時的なコンピュータ可読媒体。
  16.  ロボットが動作する空間と、前記空間における物体または仮想物体についての複数の属性候補を表示し、
     前記複数の属性候補のうち、選択された属性候補を前記物体または仮想物体の属性に設定する、情報処理装置。
PCT/JP2021/012014 2021-03-23 2021-03-23 情報処理装置、修正システム、情報処理方法及び非一時的なコンピュータ可読媒体 WO2022201314A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2021/012014 WO2022201314A1 (ja) 2021-03-23 2021-03-23 情報処理装置、修正システム、情報処理方法及び非一時的なコンピュータ可読媒体
JP2023508219A JP7456552B2 (ja) 2021-03-23 2021-03-23 情報処理装置、情報処理方法及びプログラム
US18/266,859 US20240042617A1 (en) 2021-03-23 2021-03-23 Information processing device, modification system, information processing method, and non-transitory computer-readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/012014 WO2022201314A1 (ja) 2021-03-23 2021-03-23 情報処理装置、修正システム、情報処理方法及び非一時的なコンピュータ可読媒体

Publications (1)

Publication Number Publication Date
WO2022201314A1 true WO2022201314A1 (ja) 2022-09-29

Family

ID=83396536

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/012014 WO2022201314A1 (ja) 2021-03-23 2021-03-23 情報処理装置、修正システム、情報処理方法及び非一時的なコンピュータ可読媒体

Country Status (3)

Country Link
US (1) US20240042617A1 (ja)
JP (1) JP7456552B2 (ja)
WO (1) WO2022201314A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07328968A (ja) * 1994-06-10 1995-12-19 Gijutsu Kenkyu Kumiai Shinjiyouhou Shiyori Kaihatsu Kiko ロボット装置
JPH11104984A (ja) * 1997-10-06 1999-04-20 Fujitsu Ltd 実環境情報表示装置及び実環境情報表示処理を実行するプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2004272837A (ja) * 2003-03-12 2004-09-30 Toyota Motor Corp 中間体形状データ作成装置および工具軌跡作成装置および最終体製作用データ作成システム
JP2006003263A (ja) * 2004-06-18 2006-01-05 Hitachi Ltd 視覚情報処理装置および適用システム
JP2015520040A (ja) * 2012-06-21 2015-07-16 リシンク ロボティクス インコーポレイテッド 産業用ロボットを訓練および動作させること

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2569614B (en) 2017-12-21 2022-04-06 Hexcel Composites Ltd A curative composition and a resin composition containing the curative composition

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07328968A (ja) * 1994-06-10 1995-12-19 Gijutsu Kenkyu Kumiai Shinjiyouhou Shiyori Kaihatsu Kiko ロボット装置
JPH11104984A (ja) * 1997-10-06 1999-04-20 Fujitsu Ltd 実環境情報表示装置及び実環境情報表示処理を実行するプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2004272837A (ja) * 2003-03-12 2004-09-30 Toyota Motor Corp 中間体形状データ作成装置および工具軌跡作成装置および最終体製作用データ作成システム
JP2006003263A (ja) * 2004-06-18 2006-01-05 Hitachi Ltd 視覚情報処理装置および適用システム
JP2015520040A (ja) * 2012-06-21 2015-07-16 リシンク ロボティクス インコーポレイテッド 産業用ロボットを訓練および動作させること

Also Published As

Publication number Publication date
JP7456552B2 (ja) 2024-03-27
US20240042617A1 (en) 2024-02-08
JPWO2022201314A1 (ja) 2022-09-29

Similar Documents

Publication Publication Date Title
JP7264253B2 (ja) 情報処理装置、制御方法及びプログラム
WO2022074823A1 (ja) 制御装置、制御方法及び記憶媒体
JP7452619B2 (ja) 制御装置、制御方法及びプログラム
WO2022201314A1 (ja) 情報処理装置、修正システム、情報処理方法及び非一時的なコンピュータ可読媒体
JP7416197B2 (ja) 制御装置、制御方法及びプログラム
JP7448024B2 (ja) 制御装置、制御方法及びプログラム
JP7276466B2 (ja) 情報処理装置、制御方法及びプログラム
Peake et al. Cloud-based analysis and control for robots in industrial automation
Nambiar et al. Automation of unstructured production environment by applying reinforcement learning
WO2022107207A1 (ja) 情報収集装置、情報収集方法及び記憶媒体
WO2022074827A1 (ja) 命題設定装置、命題設定方法及び記憶媒体
JP7323045B2 (ja) 制御装置、制御方法及びプログラム
JP7364032B2 (ja) 制御装置、制御方法及びプログラム
WO2022244060A1 (ja) 動作計画装置、動作計画方法及び記憶媒体
JP7485058B2 (ja) 判定装置、判定方法及びプログラム
WO2022224447A1 (ja) 制御装置、制御方法及び記憶媒体
WO2022224449A1 (ja) 制御装置、制御方法及び記憶媒体
JP7416199B2 (ja) 制御装置、制御方法及びプログラム
US11921492B2 (en) Transfer between tasks in different domains
JP7435815B2 (ja) 動作指令生成装置、動作指令生成方法及びプログラム
Mocan et al. FRAMEWORK FOR DEVELOPING A MULTIMODAL PROGRAMMING INTERFACE USED ON INDUSTRIAL ROBOTS.
WO2022074824A1 (ja) 時相論理式生成装置、時相論理式生成方法及び記憶媒体
US20220402126A1 (en) Systems, computer program products, and methods for building simulated worlds
Wang et al. Reinforcement Learning based End-to-End Control of Bimanual Robotic Coordination
JP2023145809A (ja) 強化学習装置、強化学習システム、物体操作装置、モデル生成方法及び強化学習プログラム

Legal Events

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

Ref document number: 21932924

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18266859

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2023508219

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21932924

Country of ref document: EP

Kind code of ref document: A1