WO2023286138A1 - ロボット制御システム、ロボットシステム、ロボット制御方法、およびロボット制御プログラム - Google Patents

ロボット制御システム、ロボットシステム、ロボット制御方法、およびロボット制御プログラム Download PDF

Info

Publication number
WO2023286138A1
WO2023286138A1 PCT/JP2021/026192 JP2021026192W WO2023286138A1 WO 2023286138 A1 WO2023286138 A1 WO 2023286138A1 JP 2021026192 W JP2021026192 W JP 2021026192W WO 2023286138 A1 WO2023286138 A1 WO 2023286138A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
task
area
robot control
control system
Prior art date
Application number
PCT/JP2021/026192
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 JP2023534460A priority Critical patent/JPWO2023286138A1/ja
Priority to PCT/JP2021/026192 priority patent/WO2023286138A1/ja
Publication of WO2023286138A1 publication Critical patent/WO2023286138A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators

Definitions

  • One aspect of the present disclosure relates to a robot control system, a robot system, a robot control method, and a robot control program.
  • Patent Document 1 describes an active environment recognition system that uses various sensors to recognize the external environment around the sensors. This system consists of one or more sensor mechanisms that collect information on the external environment, actuator mechanisms that change the external environment, and sensor information from the sensor mechanisms to generate appropriate motion commands for the actuator mechanisms. and an information processing mechanism.
  • a robot control system includes an extraction unit that extracts a task area in which a robot can execute a task for processing an object from an observation area around the robot; a robot controller for controlling the robot to approach the object in response to the extraction unit for extracting the task region again after the robot approaches the object.
  • a robot control method is a robot control method executed by a robot control system including at least one processor, wherein a task area in which a robot can execute a task for processing an object is defined as extracting from an observation area around the robot; and controlling the robot to approach an object in response to extracting the task area, the extracting step comprising: After approaching the object, the task region is re-extracted.
  • a robot control program includes steps of extracting a task area in which a robot can execute a task for processing an object from an observation area around the robot; In response, causing the computer to perform the step of controlling the robot to approach the object, and extracting again extracts the task region after the robot approaches the object.
  • FIG. 4 is a flowchart showing an example of processing in the robot control system;
  • FIG. 4 is a diagram showing an example of extraction of task areas;
  • It is a figure which shows an example of robot control by a robot control system.
  • FIG. 1 is a mechanism for automating a given work by causing a robot to perform actions for achieving a given purpose.
  • FIG. 1 is a diagram showing an example of the configuration of the robot system 1 and an example of application of the robot control system.
  • the robot system 1 comprises a robot control system 10 , one or more robots 2 , and one or more robot controllers 3 corresponding to the one or more robots 2 .
  • FIG. 1 shows one robot 2 and one robot controller 3 and shows a configuration in which one robot 2 is connected to one robot controller 3 .
  • a communication network that connects devices may be a wired network or a wireless network.
  • the communication network may comprise at least one of the Internet and an intranet. Alternatively, the communication network may simply be implemented by a single communication cable.
  • the robot control system 10 is a computer system for autonomously operating the robot 2 in at least some situations.
  • the robot control system 10 performs given operations to generate command signals for controlling the robot 2 .
  • the command signal includes data for controlling the robot 2, such as a path indicating the trajectory of the robot 2.
  • FIG. A trajectory of the robot 2 refers to the path of movement of the robot 2 or its components.
  • the trajectory of the robot 2 can be a tip trajectory.
  • the robot control system 10 transmits the generated command signal to the robot controller 3 .
  • the robot controller 3 is a device that operates the robot 2 according to command signals from the robot control system 10 .
  • the robot controller 3 calculates joint angle target values (angle target values of each joint of the robot 2) for matching the position and orientation of the tip portion with the target values indicated by the command signals, and calculates the joint angle target values. to control the robot 2 according to
  • the robot 2 is a device or machine that works on behalf of humans.
  • the robot 2 is a multi-axis serial link type vertical articulated robot.
  • the robot 2 includes a manipulator 2a and an end effector 2b that is a tool attached to the tip of the manipulator 2a.
  • the robot 2 can perform various processes using its end effector 2b.
  • the robot 2 can freely change the position and posture of the end effector 2b within a given range.
  • the robot 2 may be a 6-axis vertical multi-joint robot, or a 7-axis vertical multi-joint robot in which one redundant axis is added to the 6 axes.
  • the robot 2 operates under the control of the robot control system 10 to perform a given task.
  • a task in the present disclosure refers to a series of processes to be executed by the robot 2 in order to achieve a certain purpose.
  • a result desired by the user of the robot system 1 is obtained by the robot 2 performing the task.
  • a task is set to process some object. Examples of tasks include "grab an object and place it on a conveyor", “grab a part and attach the part to a workpiece", and "spray paint an object".
  • An object in the present disclosure refers to a tangible object to be processed by the robot 2 .
  • the robot control system 10 actively extracts an area in which the robot 2 is expected to be able to perform a task, that is, an area in which it is expected to be able to process an object as a task area in a situation where the surrounding environment of the robot 2 is unknown. , the robot 2 approaches the object (task area). The robot control system 10 moves the robot 2 closer to the object while repeatedly extracting the task area. When the robot 2 reaches the task area, the robot control system 10 causes the robot 2 to perform the task. In this disclosure, when the robot 2 reaches the task area, it means that the robot 2 has come close enough to the object to perform the task.
  • the robot control system 10 extracts a task area based not only on the recognition of the surrounding environment of the robot 2, but also on the potential for action that indicates whether the robot can operate in that environment. . That is, the robot control system 10 does not separately consider the two factors of environment recognition and action possibility, but extracts the task area considering both of these factors. By extracting the task area in this way, it becomes possible to control the robot 2 more efficiently than when considering these two factors separately.
  • the robot control system 10 uses active sensing, which is a technique for searching and collecting necessary information by actively changing sensor conditions. This technology allows the robot 2 to recognize the target to be aimed at even if the conditions regarding the object or surrounding environment change frequently, or if prior modeling is impossible or difficult. Active sensing is a technique for finding unknown targets, and thus differs from visual feedback, which positions a mechanical system toward a known target.
  • the robot control by the robot control system 10 is a mechanism using the concept of affordance.
  • the robot control system 10 can achieve advanced decision-making regarding robot control by linking and symbolizing perception (sensors) and robot actions. By considering actionability, it becomes possible to handle similar tasks flexibly without using a rigid model. In addition, since it is sufficient to process information directly related to the motion of the robot, calculations for robot control can be executed efficiently.
  • a sensor for recognizing the three-dimensional space around the robot 2 is a visual sensor such as a camera.
  • the robot 2 includes a camera 20 that captures the surroundings of the end effector 2b.
  • the coverage of the camera 20 may be set so as to capture at least part of the end effector 2b.
  • the camera 20 may be arranged on the manipulator 2a, for example attached near the tip of the manipulator 2a.
  • the camera 20 moves corresponding to the motion of the robot 2. - ⁇ This movement may include changes in the position and/or orientation of camera 20 .
  • the camera 20 may be provided at a different location from the robot 2 as long as it moves in response to the motion of the robot 2 .
  • camera 20 may be attached to another robot, or may be movably mounted on a ceiling, wall, or camera stand.
  • the robot control system 10 extracts a task area from the observation area around the robot 2 based on information obtained from at least one given sensor.
  • the “information obtained from the sensor” is an image (still image or video) obtained from the camera 20 .
  • the robot control system 10 controls the robot 2 so that it approaches the object.
  • the robot control system 10 extracts the task area again after the robot 2 approaches the object, and makes the robot 2 even closer to the object when the task area can be extracted. In this way, the robot control system 10 repeats extraction of the task area and control to bring the robot 2 closer to the object.
  • the robot control system 10 causes the robot 2 to perform the task.
  • the object By repeatedly extracting the task area and approaching the object, the object can be processed while adapting to changes in the surrounding conditions.
  • the task can be executed with high accuracy even if the sensor sensitivity is not high or there is a calibration error of the sensor.
  • the robot control system 10 When the robot control system 10 causes the robot 2 to perform a plurality of mutually different tasks (that is, a plurality of types of tasks), the robot control system 10 extracts task areas corresponding to each type of task.
  • the task includes the step of bringing the robot 2 into contact with an object.
  • Examples of such tasks include tasks involving grasping an object, pushing or pulling an object.
  • the robot control system 10 extracts an area where the robot 2 can contact an object in order to perform the task as a task area.
  • an observation area refers to an area set as a range for extracting task areas.
  • the observation area can also be said to be the area captured by the sensor.
  • the observation area is the area captured by the camera 20 .
  • the robot control system 10 changes the position of the observation area and attempts to extract the task area in the changed observation area.
  • the situation where "the task area cannot be extracted in the observation area" includes the case where there are no unprocessed task areas in the observation area.
  • the robot control system 10 repeatedly extracts a task area and controls the robot 2 to approach an object in each observation area while changing the position of the observation area in the three-dimensional space around the robot 2 . In this manner, the robot control system 10 controls the robot 2 while selectively using exploration and exploitation.
  • the robot 2 autonomously processes one or more objects located around the robot 2 according to its control.
  • FIG. 1 also shows an example of the functional configuration of the robot control system 10.
  • the robot control system 10 includes a search unit 11, an observation history database 12, an image acquisition unit 13, an extraction unit 14, and a robot control unit 15 as functional components.
  • the search unit 11 is a functional module that sets the position of the observation area.
  • the search unit 11 records observation data indicating observation areas in which task areas have been searched.
  • the observation history database 12 is a functional module that stores the observation data.
  • the image acquisition unit 13 is a functional module that acquires an image of the observation area from the camera 20 .
  • the extraction unit 14 is a functional module that extracts the task area from the observation area based on the image.
  • the robot control unit 15 is a functional module that controls the robot 2 based on its task area. In one example, the robot control unit 15 causes the robot 2 to approach the object in response to the task area being extracted, and causes the robot 2 to perform the task in response to the robot 2 reaching the task area.
  • the robot control system 10 can be realized by any kind of computer.
  • the computer may be a general-purpose computer such as a personal computer or a server for business use, or may be incorporated in a dedicated device that executes specific processing.
  • FIG. 2 is a diagram showing an example of the hardware configuration of the computer 100 used for the robot control system 10. As shown in FIG. In this example, computer 100 comprises main body 110 , monitor 120 and input device 130 .
  • the main body 110 is a device having a circuit 160.
  • Circuitry 160 has at least one processor 161 , memory 162 , storage 163 , input/output ports 164 and communication ports 165 .
  • Storage 163 records programs for configuring each functional module of main body 110 .
  • the storage 163 is a computer-readable recording medium such as a hard disk, nonvolatile semiconductor memory, magnetic disk, or optical disk.
  • the memory 162 temporarily stores programs loaded from the storage 163, calculation results of the processor 161, and the like.
  • the processor 161 configures each functional module by executing programs in cooperation with the memory 162 .
  • the input/output port 164 inputs and outputs electrical signals to/from the monitor 120 or the input device 130 according to instructions from the processor 161 .
  • the input/output port 164 may input/output electrical signals to/from other devices such as the robot controller 3 .
  • Communication port 165 performs data communication with other devices via communication network N according to instructions from processor 161 .
  • the monitor 120 is a device for displaying information output from the main body 110 .
  • the monitor 120 may be of any type as long as it can display graphics, and a specific example thereof is a liquid crystal panel.
  • the input device 130 is a device for inputting information to the main body 110.
  • the input device 130 may be of any type as long as desired information can be input, and specific examples thereof include operation interfaces such as a keypad, mouse, and operation controller.
  • the monitor 120 and the input device 130 may be integrated as a touch panel.
  • the main body 110, the monitor 120, and the input device 130 may be integrated like a tablet computer.
  • FIG. 3 is a flowchart showing an example of processing in the robot control system 10 as a processing flow S1. That is, the robot control system 10 executes the processing flow S1.
  • the extraction unit 14 extracts the task area from the observation area.
  • the extraction unit 14 extracts the task area from the observation area set to the initial position based on the given preset or the observation area whose position has been changed by the search unit 11 .
  • the image acquisition unit 13 acquires an image of the observation area from the camera 20, and the extraction unit 14 extracts the task area based on the image.
  • the extraction unit 14 can extract a plurality of task areas in one observation area.
  • the extraction unit 14 may extract the task area based on the configuration of the robot 2 and the current situation within the observation area.
  • the current situation within the observation area refers to the current situation around the robot 2 .
  • the extraction unit 14 may determine whether or not an object exists within the observation area, may determine the structure of the object, or may determine an obstacle different from the object. It may be determined whether an object exists within the observation area.
  • the extraction unit 14 extracts a task area corresponding to the task to be executed. If it is possible for the robot 2 to execute a plurality of types of tasks, the extractor 14 extracts a task area corresponding to the task to be executed.
  • the extraction unit 14 analyzes each pixel of the image by a technique such as machine learning using deep learning (for example, convolutional neural network (CNN)), color filtering, template matching, etc., and calculates the probability that the object exists for each pixel. Calculate to Then, the extraction unit 14 generates a grayscale image showing the probability of each pixel. This grayscale image can be said to be information that probabilistically indicates the position of the object within the observation area. Based on the grayscale image, the extraction unit 14 may extract an area in which the object is captured as the task area.
  • a technique such as machine learning using deep learning (for example, convolutional neural network (CNN)), color filtering, template matching, etc.
  • the extraction unit 14 may acquire a depth image separately from the grayscale image, and extract the task area based on these two types of images.
  • the extraction unit 14 may use the depth image generated by the camera 20, or may generate the depth image based on the image from the camera 20 and the depth information.
  • the extraction unit 14 Based on the grayscale image and the depth image, the extraction unit 14 identifies the depth at the position where the object is expected to exist.
  • the extractor 14 Based on the depth and the configuration of the end effector 2b, the extractor 14 calculates whether the robot 2 can process the object at that position. In this way, the extraction unit 14 may extract the task area by comparing the configuration of the end effector 2b and the structure of the target object.
  • the extractor 14 uses a Gaussian function in its calculations to probabilistically calculate whether the robot 2 can process the object. If the task includes gripping an object, the extraction unit 14 may perform the calculation using Fast Graspability Evaluation (FGE), which is a technique for identifying positions where the object can be gripped. good.
  • FGE Fast Graspability Evaluation
  • the extraction unit 14 calculates the distribution of the probability that the task area exists in the observation area by such probabilistic calculation. The distribution is also referred to as a region map in this disclosure. In one example, the extraction unit 14 extracts an area whose probability reaches a given threshold as a task area.
  • the extraction unit 14 may extract the task area based at least on the existence of the object within the observation area.
  • the extraction unit 14 may extract the task area further based on the fact that the robot 2 does not interfere with obstacles when executing the task.
  • the use of FGE is an example of extracting the task region considering the interference.
  • FIG. 4 is a diagram showing an example of task area extraction.
  • robot 2 performs the task of grabbing an orange and moving it to a given position.
  • the extraction unit 14 analyzes the image 200 obtained from the camera 20 and extracts task areas where the robot 2 is expected to be able to grip the orange. That is, the extraction unit 14 extracts, as the task area, an area where the robot 2 can contact the object (orange) in order to perform the task.
  • the image 200 shows an orange 221 placed on the floor 211 and an orange 222 held above the fence 212 . Around the orange 221 are placed several other objects 231 that may become obstacles in the performance of the task.
  • the image 200 also shows the tip of a gripper, which is an example of the end effector 2b.
  • the extraction unit 14 analyzes the image 200, extracts a task area 311 corresponding to the orange 221, and extracts a task area 312 corresponding to the orange 222.
  • Region map 300 shows the distribution of probabilities that task regions exist. In the area map 300, areas with a high probability are represented relatively white, and areas with a low probability are represented relatively black. Task area 311 is represented in dark gray, while task area 312 is represented in white. This means that the possibility of grasping the orange 222 is higher than the possibility of grasping the orange 221 . Such a difference is expected to be due to at least one of the presence of another object 231 near orange 221 and orange 221 being farther than orange 222 .
  • step S13 the robot control unit 15 determines an approach target position to which the robot 2 should approach further. This process can be said to determine where to search in more detail within the observation area.
  • the robot control unit 15 may calculate a score representing the possibility that the robot 2 can perform the task for the observation area, and determine the position with the highest score as the approach target position.
  • the robot control unit 15 may use the above area map as the score distribution.
  • the robot control unit 15 may calculate the position of the center of the detected object as the approach target position.
  • the robot control unit 15 selects one task area from the multiple task areas and determines the approach target position for the selected task area. For example, robot controller 15 may select the task area corresponding to the highest score.
  • step S14 the robot control unit 15 determines whether the robot 2 has reached the task area.
  • the robot control unit 15 may calculate the distance between the end effector 2b and the approach target position, and execute determination based on this distance. If the calculated distance is equal to or less than a given threshold, the robot control unit 15 determines that the robot 2 has reached the task area. On the other hand, if the calculated distance is greater than the threshold, the robot control unit 15 determines that the robot 2 has not reached the task area.
  • the robot control unit 15 may calculate a target configuration indicating the state of the robot 2 required to execute the task in the task area and its degree of uncertainty.
  • a target configuration includes, for example, the position and pose of the robot 2 for starting the task. Details of the target configuration will be described later. If the calculated uncertainty is equal to or less than a given threshold, the robot control unit 15 determines that the robot 2 has reached the task area. On the other hand, if the calculated uncertainty is greater than the threshold, the robot control unit 15 determines that the robot 2 has not reached the task area.
  • step S15 the robot control unit 15 controls the robot toward the task area. That is, the robot control unit 15 controls the robot 2 so that the robot 2 approaches the object.
  • the robot control unit 15 controls the robot 2 so that the robot 2 approaches the selected task area (object).
  • the robot control unit 15 generates a path of the robot 2 for moving the end effector 2b from the current position to the approach target position by planning.
  • the robot control unit 15 may reduce the distance and generate a path (trajectory) of the robot 2 by planning so that the approach target position appears in the center of the image of the camera 20 .
  • the robot control unit 15 may select an appropriate position and orientation from preset candidates for the position and orientation of the robot 2, and generate a path for realizing the selected position and orientation through planning.
  • the robot control unit 15 generates at least a path that does not cause interference between the robot 2 and obstacles and a path that does not cause a singular posture (singular point) of the robot 2. can do one.
  • a singular posture (singular point) refers to a posture in which the robot 2 becomes uncontrollable from the viewpoint of the structure of the robot 2 .
  • the robot control unit 15 outputs a command signal indicating the generated path to the robot controller 3, and the robot controller 3 controls the robot 2 according to the command signal. As a result, the robot 2 approaches the object along its path.
  • step S15 the process returns to step S11, and the robot control system 10 executes the processes after step S11 again. That is, the robot control system 10 extracts the task area again after the robot 2 approaches the object, and executes subsequent processing based on the result of this extraction.
  • step S14 If it is determined that the robot 2 has reached the task area (YES in step S14), the process proceeds to step S16.
  • step S16 the robot control unit 15 causes the robot 2 to execute the task.
  • the robot control unit 15 calculates a target configuration and generates paths by planning based on the target configuration.
  • the target configuration can include the position and pose of the robot 2 for starting the task.
  • the robot control unit 15 calculates the position and orientation of the robot 2 including the opening width of the gripper for gripping.
  • the robot control unit 15 may compute a target configuration for each primary operation.
  • the robot control unit 15 generates a path for executing the target configuration and task by planning. Also in this planning, the robot control unit 15 selects at least one of generating a path that does not cause interference between the robot 2 and obstacles, and generating a path that does not cause a singular posture (singular point) of the robot 2. can run.
  • the robot control unit 15 outputs a command signal indicating the generated path to the robot controller 3, and the robot controller 3 controls the robot 2 according to the command signal.
  • the robot control unit 15 may output a command signal indicating a path for executing the target configuration to the robot controller 3, and then output a command signal indicating a path for executing the task to the robot controller 3. good. Either way, the robot 2 will move towards the position and pose based on the target configuration and then perform the task.
  • the robot control unit 15 determines whether or not to end robot control.
  • the robot control unit 15 may perform this determination based on arbitrary termination conditions. For example, the robot control unit 15 may determine to end the robot control when the task has been executed a specified number of times, and may determine to continue the robot control when the number of task executions is less than the specified number of times. Alternatively, the robot control unit 15 may determine to end the robot control when an error occurs in the robot control, and determine to continue the robot control when the error does not occur.
  • step S17 If it is determined to end the robot control (YES in step S17), the process proceeds to step S18.
  • step S18 the robot control system 10 executes termination processing.
  • the robot control unit 15 may return the robot 2 to its initial posture and position. Alternatively, the robot control unit 15 may notify the user by visual information or voice that all tasks have been completed.
  • step S17 the process proceeds to step S19.
  • the robot control unit 15 prepares for the next task. For example, the robot controller 15 may return the robot 2 to its initial posture and position. Alternatively, the robot control unit 15 may notify the user by visual information or voice that the next task is to be executed.
  • step S19 the process returns to step S11, and the robot control system 10 executes the processes after step S11 for the next task.
  • step S20 the search unit 11 records observation data indicating at least one observation area observed so far.
  • the search unit 11 records observation data indicating a plurality of observation areas observed while the robot 2 is approaching the object.
  • the search unit 11 generates observation data records for individual observation regions.
  • the record can include, as data items, the representative coordinates of the observation area, the observation time, and the score indicating the feasibility of the task at the representative coordinates.
  • Each record may further include at least one of a region map, extracted task regions, number of objects processed, and task execution history.
  • the search unit 11 stores at least one record in the observation history database 12 .
  • the search unit 11 determines whether or not to continue searching for the object. In one example, the search unit 11 determines whether or not there is a possibility of discovering a new object based on observation data in the observation history database 12 . The search unit 11 determines to continue the search when it determines that there is such a possibility, and determines to end the search when it determines that there is no such possibility. For example, the search unit 11 processes the observed data by Gaussian process regression to calculate predicted values and uncertainties about action probabilities in the three-dimensional space around the robot. The search unit 11 determines to continue the search when there is a position whose degree of uncertainty is greater than a given threshold, and determines to end the search when such a position does not exist. If the uncertainty is greater than the threshold, it means that we cannot be confident in determining whether the task region will be extracted or not, so it is worth trying to search for such locations.
  • the search unit 11 performs a search when a position where the distance to the closest representative coordinates indicated by the observation data is longer than a given threshold exists within the object plane corresponding to the three-dimensional space around the robot. It may be determined to continue, and to terminate the search if no such position exists.
  • the search unit 11 may determine to continue the search when an unobserved area exists within a preset observation range, and to terminate the search when the unobserved area does not exist.
  • the observation range is, for example, all or part of the three-dimensional space around the robot. This method can be said to be a technique for searching the entire observation range without omission.
  • step S21 If it is determined to continue searching (YES in step S21), the process proceeds to step S22.
  • step S ⁇ b>22 the search unit 11 changes the position of the observation area in the three-dimensional space around the robot 2 .
  • Step S22 can be executed when the task area is not extracted from the observation area (NO in step S12). That is, the search unit 11 changes the position of the observation region in response to the fact that the extraction unit 14 does not extract the task region.
  • the search unit 11 dynamically changes the position of the observation area. This dynamic change means that the next position of the observation area is not predetermined, and the search unit 11 determines the next position of the observation area according to the current situation around the robot 2 .
  • the search unit 11 may dynamically change the next position of the observation area based on the observation data in the observation history database 12 . For example, the search unit 11 calculates a score representing the possibility of extracting the task area in the three-dimensional space around the robot 2 based on the result of extracting the task area in the observation area in at least one past position. , may change the position of the observation region based on its score.
  • the search unit 11 may move the observation area to the position with the highest score.
  • the search unit 11 may calculate the distribution of the uncertainty of the existence of the task area in the three-dimensional space based on the observation data, and change the position of the observation area based on the distribution.
  • the search unit 11 may move the observation area to the position with the highest degree of uncertainty.
  • the search unit 11 performs Bayesian optimization using observation data as input, and changes the position of the observation region based on the acquisition function obtained by this Bayesian optimization. good too. For example, the search unit 11 moves the observation area to the position where the value of the acquisition function is the highest.
  • the search unit 11 may select the position with the longest shortest distance to the representative coordinates indicated by the observation data from the object plane corresponding to the three-dimensional space around the robot, and move the observation area to that position. .
  • This process is also an example of dynamically changing the position of the observation area.
  • the search unit 11 may change the position of the observation area according to a predetermined order, or may randomly determine the next position of the observation area.
  • the robot control unit 15 In response to the search unit 11 determining the next position of the observation area, the robot control unit 15 generates a path for the robot 2 by planning so that the camera 20 captures the next observation area. For example, the robot control unit 15 may plan the path so that the next position is centered on the camera. The robot control unit 15 selects an appropriate position and orientation from preset candidates for the position and orientation of the robot 2 so that the camera 20 captures the next observation area, and realizes the selected position and orientation. You may generate a path to As at least a part of the path planning, the robot control unit 15 generates at least a path that does not cause interference between the robot 2 and obstacles and a path that does not cause a singular posture (singular point) of the robot 2. can do one.
  • the robot control unit 15 outputs a command signal indicating the generated path to the robot controller 3, and the robot controller 3 controls the robot 2 according to the command signal. As a result, the camera 20 photographs the next observation area.
  • step S21 the process returns to step S11, and the robot control system 10 executes the processes after step S11.
  • step S11 the extraction unit 14 extracts a task area from the changed observation area. That is, the extraction unit 14 extracts the task area each time the position of the observation area is changed.
  • step S21 If it is determined to end the search (NO in step S21), the process proceeds to step S18, and the robot control system 10 executes end processing.
  • FIG. 5 is a diagram showing an example of robot control by the robot control system 10. As shown in FIG. In this example, the robot 2 performs the task of putting balls in the box 410 in the surroundings. That is, in this example the object is a ball.
  • FIG. 5 sequentially represents a series of actions of the robot 2 by scenes S31 to S39. In the following description, the correspondence with the processing flow S1 is also shown.
  • the camera 20 acquires an image showing the ball 421, and the image acquisition unit 13 acquires the image.
  • the robot control system 10 extracts a task area corresponding to the ball 421 from the image (observation area) (step S11).
  • the robot control system 10 controls the robot 2 so that it approaches the ball 421 (steps S12 to S15). Through this control, the distance between the end effector 2b and the ball 421 is shortened. After this, the robot control system 10 repeats the extraction of the task area and the control to bring the robot 2 closer to the ball 421 (steps S11 to S15).
  • the robot control system 10 causes the robot 2 to perform the task (step S16).
  • the robot 2 executes the task under the control of the robot control system 10 (step S16).
  • the robot 2 grips the ball 421 with the end effector 2 b and puts the ball 421 into the box 410 .
  • the robot control system 10 tries to extract the task area while changing the position of the observation area (steps S11, S12, S20-S22).
  • the camera 20 acquires an image showing the two balls 422 and 423, and the image acquiring section 13 acquires the image.
  • the ball 422 is shown as being blocked by the obstacle 430, and the ball 423 is shown as a whole.
  • the robot control system 10 extracts the task area corresponding to the ball 423 from the image (observation area) (step S11), but does not extract the portion corresponding to the ball 422 as the task area.
  • the robot control system 10 controls the robot 2 so that it approaches the ball 423 (steps S12-S15). Through this control, the distance between the end effector 2b and the ball 423 is shortened. After this, the robot control system 10 repeats the extraction of the task area and the control to bring the robot 2 closer to the ball 423 (steps S11 to S15).
  • the robot control system 10 causes the robot 2 to perform the task (step S16).
  • the robot 2 executes the task under the control of the robot control system 10 (step S16).
  • the robot 2 grips the ball 423 with the end effector 2b (scene S37), carries the ball 423 toward the box 410 (scene S38), and puts the ball 423 into the box 410 (scene S39).
  • Each functional module of the robot control system 10 is implemented by loading a robot control program into the processor 161 or memory 162 and causing the processor 161 to execute the program.
  • the robot control program includes code for realizing each functional module of the robot control system 10 .
  • the processor 161 operates the input/output port 164 or the communication port 165 according to the robot control program to read and write data in the memory 162 or storage 163 .
  • Each functional module of the robot control system 10 is realized by such processing.
  • the robot control program may be provided after being permanently recorded on a non-temporary recording medium such as a CD-ROM, DVD-ROM, or semiconductor memory.
  • the robot control program may be provided over a communication network as a data signal superimposed on a carrier wave.
  • a robot control system includes an extraction unit that extracts a task area in which a robot can execute a task for processing an object from an observation area around the robot; a robot controller for controlling the robot to approach the object in response to the region being extracted, wherein the extractor re-extracts the task region after the robot approaches the object. do.
  • a robot control method is a robot control method executed by a robot control system including at least one processor, wherein a task area in which a robot can execute a task for processing an object is defined as extracting from an observation area around the robot; and controlling the robot to approach an object in response to extracting the task area, the extracting step comprising: After approaching the object, the task region is re-extracted.
  • a robot control program includes steps of extracting a task area in which a robot can execute a task for processing an object from an observation area around the robot; In response, causing the computer to perform the step of controlling the robot to approach the object, and extracting again extracts the task region after the robot approaches the object.
  • the task area is extracted each time the robot approaches the target object, so the robot can be controlled while adapting to changes in the robot's surroundings. Such control enables the robot to efficiently perform tasks.
  • the robot control unit may cause the robot to perform the task in response to the robot reaching the task area.
  • the robot can execute the task when it reaches a position where it can process the object. Therefore, the robot can efficiently execute the task.
  • a robot control system further includes an image acquisition unit that acquires an image of the observation area from a camera that moves in response to the motion of the robot, and the extraction unit extracts the task area based on the image. good too. By using images from such a camera, it becomes possible to clearly and reliably recognize the situation around the robot. As a result, the task area can be extracted with high accuracy.
  • the extractor extracts a plurality of task areas
  • the robot controller selects one task area from the plurality of task areas, and the robot approaches the selected task area. You can control the robot like this. With this configuration, even when a plurality of task areas are extracted, the robot can be made to approach a specific task area appropriately.
  • the extraction unit may extract a task area corresponding to each of a plurality of different tasks.
  • the robot can be efficiently controlled according to each type of task.
  • the extraction unit may extract the task area based on the configuration of the robot and the current situation within the observation area. By considering these two factors, the task area can be extracted with high accuracy.
  • the current situation indicates whether the object is present within the observation region
  • the extraction unit determines the task region based at least on the existence of the object within the observation region. may be extracted.
  • the current situation further indicates whether an obstacle different from the object exists in the observation area
  • the extraction unit detects the obstacle when the robot performs the task.
  • a task region may be extracted further based on non-interference.
  • a robot control system wherein the configuration of the robot includes a configuration of an end effector attached to the robot, the current situation further indicates the configuration of the object, and the extractor comprises the configuration of the end effector and the object. may be compared with the structure of to extract the task area.
  • the extraction unit may calculate the probability that the task area exists, and extract the task area when the probability reaches a given threshold. By stochastically extracting the task area, it is possible to control the robot while flexibly adapting to its surroundings.
  • the extraction unit may calculate the probability distribution in the observation area and extract the area where the probability reaches the threshold as the task area. By considering the probability distribution, the task area can be extracted from the observation area with high accuracy and efficiency.
  • a robot control system may further include a search unit that changes the position of the observation area in the three-dimensional space around the robot in response to the extraction unit not extracting the task area. By changing the position of the observation area when the task area is not extracted, the robot can be made to execute the task while suppressing unnecessary movements of the robot.
  • the search unit may dynamically change the position of the observation area in the three-dimensional space.
  • the observation area can be appropriately set according to the circumstances around the robot.
  • the search unit generates a score representing the possibility of extracting the task area in the three-dimensional space based on the result of extracting the task area in the observation area at at least one past position. may be calculated, and the position of the observation region may be changed based on the score.
  • the search unit calculates the distribution of the uncertainty of the existence of the task area in the three-dimensional space, and changes the position of the observation area based on the distribution of the uncertainty. good. By considering this uncertainty, the observation area can be efficiently set, and as a result, the task area can be efficiently extracted.
  • the extraction unit may extract the task area each time the position of the observation area is changed. By extracting the task area while changing the observation area, the robot can efficiently execute the task.
  • the task includes a step of bringing the robot into contact with the object, and the extraction unit extracts an area where the robot can come into contact with the object in order to perform the task as the task area. good.
  • a robot system includes the robot control system described above and a robot that operates under the control of a robot control unit. In this aspect, it becomes possible to have the robot perform tasks efficiently.
  • the functional configuration of the robot control system is not limited to the above example.
  • the robot control method according to the present disclosure may be executed using a functional configuration different from the above example.
  • the hardware configuration of the system is not limited to the manner in which each functional module is implemented by executing the program.
  • at least part of the functional modules in the above example may be configured by a logic circuit specialized for that function, or may be configured by an ASIC (Application Specific Integrated Circuit) integrated with the logic circuit. .
  • ASIC Application Specific Integrated Circuit
  • the processing procedure of the method executed by at least one processor is not limited to the above examples. For example, some of the steps (processes) described above may be omitted, or the steps may be performed in a different order. Also, any two or more of the steps described above may be combined, and some of the steps may be modified or deleted. Alternatively, other steps may be performed in addition to the above steps. In the above process flow S1, each step may be executed directly, or several steps may be executed in parallel.

Abstract

一例に係るロボット制御システムは、対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出する抽出部と、タスク領域が抽出されたことに応答して、ロボットが対象物に接近するように該ロボットを制御するロボット制御部とを備え、抽出部は、ロボットが対象物に接近した後に、タスク領域を再び抽出する。

Description

ロボット制御システム、ロボットシステム、ロボット制御方法、およびロボット制御プログラム
 本開示の一側面は、ロボット制御システム、ロボットシステム、ロボット制御方法、およびロボット制御プログラムに関する。
 特許文献1には、各種のセンサを用いてセンサ周囲の外部環境を認識する能動的環境認識システムが記載されている。このシステムは、外部環境の情報を収集する単数あるいは複数のセンサ機構と、外部環境を変化させるアクチュエータ機構と、センサ機構からのセンサ情報により、アクチュエータ機構への適切な運動指令を生成する階層型の情報処理機構とを備える。
特開平8-30327号公報
 ロボットにタスクを効率良く実行させることが望まれている。
 本開示の一側面に係るロボット制御システムは、対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出する抽出部と、タスク領域が抽出されたことに応答して、ロボットが対象物に接近するように該ロボットを制御するロボット制御部とを備え、抽出部は、ロボットが対象物に接近した後に、タスク領域を再び抽出する。
 本開示の一側面に係るロボット制御方法は、少なくとも一つのプロセッサを備えるロボット制御システムにより実行されるロボット制御方法であって、対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出するステップと、タスク領域が抽出されたことに応答して、ロボットが対象物に接近するように該ロボットを制御するステップとを含み、抽出するステップでは、ロボットが対象物に接近した後に、タスク領域を再び抽出する。
 本開示の一側面に係るロボット制御プログラムは、対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出するステップと、タスク領域が抽出されたことに応答して、ロボットが対象物に接近するように該ロボットを制御するステップとをコンピュータに実行させ、抽出するステップでは、ロボットが対象物に接近した後に、タスク領域を再び抽出する。
 本開示の一側面によれば、ロボットにタスクを効率良く実行させることができる。
ロボット制御システムの適用の一例を示す図である。 ロボット制御システムのために用いられるコンピュータのハードウェア構成の一例を示す図である。 ロボット制御システムでの処理の一例を示すフローチャートである。 タスク領域の抽出の一例を示す図である。 ロボット制御システムによるロボット制御の一例を示す図である。
 以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
 [システムの構成]
 本実施形態では、本開示に係るロボット制御システムの一例をロボットシステム1の一構成要素として示す。ロボットシステム1は、所与の目的を達成するための動作をロボットに実行させることにより、所与の作業を自動化する仕組みである。
 図1は、ロボットシステム1の構成の一例を示すと共に、ロボット制御システムの適用の一例も示す図である。この例では、ロボットシステム1は、ロボット制御システム10と、1以上のロボット2と、1以上のロボット2に対応する1以上のロボットコントローラ3とを備える。図1は一つのロボット2および一つのロボットコントローラ3を示し、一つのロボットコントローラ3に一つのロボット2が接続される構成を示す。しかし、各装置の台数も接続方法も図1の例に限定されない。例えば、一つのロボットコントローラ3が複数台のロボット2と接続してもよい。装置間を接続する通信ネットワークは、有線ネットワークでも無線ネットワークでもよい。通信ネットワークはインターネットおよびイントラネットの少なくとも一方を含んで構成されてもよい。あるいは、通信ネットワークは単純に1本の通信ケーブルによって実現されてもよい。
 ロボット制御システム10は、少なくとも一部の状況においてロボット2を自律的に動作させるためのコンピュータシステムである。ロボット制御システム10は所与の演算を実行して、ロボット2を制御するための指令信号を生成する。一例では、指令信号はロボット2を制御するためのデータを含み、例えば、ロボット2の軌道を示すパスを含む。ロボット2の軌道とは、ロボット2またはその構成要素の動きの経路のことをいう。例えば、ロボット2の軌道は先端部の軌道であり得る。ロボット制御システム10は生成された指令信号をロボットコントローラ3に向けて送信する。
 ロボットコントローラ3は、ロボット制御システム10からの指令信号に従ってロボット2を動作させる装置である。一例では、ロボットコントローラ3は、指令信号で示される目標値に先端部の位置および姿勢を一致させるための関節角度目標値(ロボット2の各関節の角度目標値)を算出し、その角度目標値に従ってロボット2を制御する。
 ロボット2は、人に代わって作業する装置または機械である。一例では、ロボット2は多軸のシリアルリンク型の垂直多関節ロボットである。ロボット2は、マニピュレータ2aと、該マニピュレータ2aの先端に取り付けられたツールであるエンドエフェクタ2bとを備える。ロボット2はそのエンドエフェクタ2bを用いて様々な処理を実行できる。ロボット2は、所与の範囲内においてエンドエフェクタ2bの位置および姿勢を自在に変更し得る。ロボット2は、6軸の垂直多関節ロボットでもよいし、6軸に1軸の冗長軸を追加した7軸の垂直多関節ロボットでもよい。
 ロボット2はロボット制御システム10による制御に基づいて動作して所与のタスクを実行する。本開示においてタスクとは、或る目的を達成するためにロボット2に実行させる一連の処理をいう。ロボット2がタスクを実行することで、ロボットシステム1のユーザが望む結果が得られる。例えば、タスクは何らかの対象物を処理するために設定される。タスクの例として「対象物を把持してコンベヤ上に置く」、「部品を掴んでその部品をワークに取り付ける」、「対象物にスプレーで塗装する」が挙げられる。本開示において対象物とは、ロボット2によって処理される有体物をいう。
 ロボット制御システム10は、ロボット2の周辺環境が未知である状況において、ロボット2がタスクを実行できると見込まれる領域、すなわち、対象物を処理できると見込まれる領域をタスク領域として能動的に抽出し、その対象物(タスク領域)に向けてロボット2を接近させる。ロボット制御システム10はタスク領域の抽出を繰り返しながらロボット2を対象物に接近させていく。ロボット2がタスク領域に到達すると、ロボット制御システム10はそのロボット2にタスクを実行させる。本開示において、ロボット2がタスク領域に到達するとは、ロボット2がタスクを実行できる程に十分に対象物に接近したことを意味する。
 ロボット制御システム10は、ロボット2の周辺環境の認識だけでなく、その環境においてロボットが動作することができるか否かを示す行為可能性(potential for action)にも基づいて、タスク領域を抽出する。すなわち、ロボット制御システム10は環境認識および行為可能性という二つの要素を別々に考慮するのではなく、これら双方の要素を考慮して、タスク領域を抽出する。このようにタスク領域を抽出することで、それら二つの要素を別々に考慮する場合よりもロボット2を効率良く制御することが可能になる。
 ロボット制御システム10は未知の周辺環境を認識するために、センサの条件を能動的に変化させて必要な情報を探索および収集する技術であるアクティブセンシング(active sensing)を用いる。この技術によって、対象物または周辺環境に関する条件が頻繁に変わったり、事前のモデル化が不可能または困難であったりする場合でも、ロボット2が目指すべき目標を認識することが可能になる。アクティブセンシングは未知の目標を発見する技術であり、したがって、既知の目標に向けて機械系の位置を決めるビジュアルフィードバック(visual feedback)とは異なる。
 行為可能性を考慮することは、認識された環境がロボット2の動作に与える意味を考慮することであるともいえる。したがって、ロボット制御システム10によるロボット制御は、アフォーダンス(affordance)という概念を利用した仕組みであるともいえる。ロボット制御システム10は、知覚(センサ)とロボットの動作とを結び付けて記号化することにより、ロボット制御に関する高度な意思決定を実現し得る。行為可能性を考慮することで、厳密なモデルを用いることなく同類のタスクを柔軟に処理することが可能になる。また、ロボットの動作に直接に関係する情報を処理すれば足りるので、ロボット制御のための計算を効率的に実行できる。
 ロボット2の周囲の3次元空間を認識するためのセンサの例として、カメラなどの視覚センサが挙げられる。一例では、ロボット2は、エンドエフェクタ2bの周辺を撮影するカメラ20を備える。カメラ20の被写範囲は、エンドエフェクタ2bの少なくとも一部を映すように設定されてもよい。カメラ20はマニピュレータ2a上に配置されてもよく、例えばマニピュレータ2aの先端付近に取り付けられる。カメラ20はロボット2の動作に対応して移動する。この移動は、カメラ20の位置および姿勢の少なくとも一方の変化を含み得る。ロボット2の動作に対応して移動する限り、カメラ20はロボット2とは異なる場所に設けられてもよい。例えば、カメラ20は別のロボットに取り付けられてもよいし、天井、壁面、またはカメラスタンドに移動可能に設けられてもよい。
 ロボット制御システム10は少なくとも一つの所与のセンサから得られる情報に基づいて、ロボット2の周囲の観測領域からタスク領域を抽出する。カメラ20が用いられる場合には、「センサから得られる情報」は、カメラ20から得られる画像(静止画または映像)である。タスク領域を抽出できた場合には、ロボット制御システム10はロボット2が対象物に接近するようにロボット2を制御する。ロボット制御システム10は、ロボット2が対象物に接近した後にタスク領域を再び抽出し、タスク領域を抽出できた場合にはロボット2を対象物に更に接近させる。このように、ロボット制御システム10はタスク領域の抽出と、ロボット2を対象物に接近させる制御とを繰り返す。ロボット2がタスク領域に到達した場合には、ロボット制御システム10はそのロボット2にタスクを実行させる。タスク領域の抽出と対象物への接近とを繰り返すことにより、周辺の状況の変化に適応しながら対象物を処理できる。また、その繰返し処理により、センサの感度が高くなかったり、センサのキャリブレーション誤差があったりする場合でも、タスクを精度良く実行できる。
 ロボット制御システム10が、互いに異なる複数のタスク(すなわち、複数種類のタスク)をロボット2に実行させる場合には、ロボット制御システム10はそれぞれの種類のタスクに対応してタスク領域を抽出する。
 一例では、タスクはロボット2が対象物に接触する工程を含む。このようなタスクの例として、対象物の把持を含むタスク、対象物を押すかまたは引くことを含むタスクが挙げられる。このようなタスクをロボット2に実行させる場合には、ロボット制御システム10は、ロボット2がタスクを実行するために対象物に接触できる領域をタスク領域として抽出する。
 本開示において観測領域とは、タスク領域を抽出するための範囲として設定される領域をいう。観測領域はセンサで捕捉される領域であるともいえる。例えば、観測領域はカメラ20で撮影された領域である。
 或る観測領域においてタスク領域を抽出できない場合には、ロボット制御システム10は観測領域の位置を変更し、変更後の観測領域においてタスク領域の抽出を試みる。「観測領域においてタスク領域を抽出できない」という状況は、その観測領域において未処理のタスク領域が無くなった場合を含む。一例では、ロボット制御システム10はロボット2の周囲の3次元空間において観測領域の位置を変更しながら、それぞれの観測領域において、タスク領域の抽出とロボット2を対象物に接近させる制御とを繰り返す。このように、ロボット制御システム10は探索(exploration)と利用(Exploitation)とを使い分けながらロボット2を制御する。ロボット2はその制御に従って、該ロボット2の周辺に位置する1以上の対象物を自律的に処理する。
 図1はロボット制御システム10の機能構成の一例も示す。一例では、ロボット制御システム10は機能的構成要素として探索部11、観測履歴データベース12、画像取得部13、抽出部14、およびロボット制御部15を備える。探索部11は観測領域の位置を設定する機能モジュールである。探索部11は、タスク領域が探索された観測領域を示す観測データを記録する。観測履歴データベース12はその観測データを記憶する機能モジュールである。画像取得部13は観測領域の画像をカメラ20から取得する機能モジュールである。抽出部14はその画像に基づいて観測領域からタスク領域を抽出する機能モジュールである。ロボット制御部15はそのタスク領域に基づいてロボット2を制御する機能モジュールである。一例では、ロボット制御部15はタスク領域が抽出されたことに応答してロボット2を対象物に接近させ、ロボット2がタスク領域に到達したことに応答して該ロボット2にタスクを実行させる。
 ロボット制御システム10は任意の種類のコンピュータによって実現され得る。そのコンピュータは、パーソナルコンピュータ、業務用サーバなどの汎用コンピュータでもよいし、特定の処理を実行する専用装置に組み込まれてもよい。
 図2は、ロボット制御システム10のために用いられるコンピュータ100のハードウェア構成の一例を示す図である。この例では、コンピュータ100は本体110、モニタ120、および入力デバイス130を備える。
 本体110は回路160を有する装置である。回路160は、少なくとも一つのプロセッサ161と、メモリ162と、ストレージ163と、入出力ポート164と、通信ポート165とを有する。ストレージ163は、本体110の各機能モジュールを構成するためのプログラムを記録する。ストレージ163は、ハードディスク、不揮発性の半導体メモリ、磁気ディスク、光ディスクなどの、コンピュータ読み取り可能な記録媒体である。メモリ162は、ストレージ163からロードされたプログラム、プロセッサ161の演算結果などを一時的に記憶する。プロセッサ161は、メモリ162と協働してプログラムを実行することで各機能モジュールを構成する。入出力ポート164は、プロセッサ161からの指令に応じて、モニタ120または入力デバイス130との間で電気信号の入出力を行う。入出力ポート164はロボットコントローラ3などの他の装置との間で電気信号の入出力を行ってもよい。通信ポート165は、プロセッサ161からの指令に従って、通信ネットワークNを介して他の装置との間でデータ通信を行う。
 モニタ120は、本体110から出力された情報を表示するための装置である。モニタ120は、グラフィック表示が可能であればいかなるものであってもよく、その具体例としては液晶パネルが挙げられる。
 入力デバイス130は、本体110に情報を入力するための装置である。入力デバイス130は、所望の情報を入力可能であればいかなるものであってもよく、その具体例としてはキーパッド、マウス、操作コントローラなどの操作インタフェースが挙げられる。
 モニタ120および入力デバイス130はタッチパネルとして一体化されていてもよい。例えばタブレットコンピュータのように、本体110、モニタ120、および入力デバイス130が一体化されていてもよい。
 [ロボット制御方法]
 本開示に係るロボット制御方法の一例として、図3を参照しながら、ロボット制御システム10により実行される一連の処理手順の一例を説明する。図3はロボット制御システム10での処理の一例を処理フローS1として示すフローチャートである。すなわち、ロボット制御システム10は処理フローS1を実行する。
 ステップS11では、抽出部14が観測領域からタスク領域を抽出する。抽出部14は、所与の事前設定に基づく初期位置に設定された観測領域、または探索部11によって位置が変更された観測領域から、タスク領域を抽出する。一例では、画像取得部13が観測領域の画像をカメラ20から取得し、抽出部14がその画像に基づいてタスク領域を抽出する。抽出部14は一つの観測領域において複数のタスク領域を抽出し得る。
 抽出部14は、ロボット2の構成と観測領域内の現在状況とに基づいてタスク領域を抽出してもよい。観測領域内の現在状況とは、ロボット2の周囲の現在の状況をいう。抽出部14は観測領域内の現在状況として、対象物が観測領域内に存在するか否かを判定してもよいし、対象物の構造を判定してもよいし、対象物とは異なる障害物が観測領域内に存在するか否かを判定してもよい。
 抽出部14は、実行しようとするタスクに対応するタスク領域を抽出する。複数種類のタスクをロボット2に実行させることが可能である場合には、抽出部14は、これから実行しようとするタスクに対応するタスク領域を抽出する。
 一例では、抽出部14は深層学習を用いた機械学習(例えば畳み込みニューラルネットワーク(CNN))、カラーフィルタリング、テンプレートマッチングなどの手法によって画像の各画素を解析し、対象物が存在する確率を画素ごとに算出する。そして、抽出部14は各画素での確率を示すグレースケール画像を生成する。このグレースケール画像は、観測領域内の対象物の位置を確率的に示す情報であるといえる。抽出部14はそのグレースケール画像に基づいて、対象物が写った領域をタスク領域として抽出してもよい。
 あるいは、抽出部14はそのグレースケール画像とは別に深度画像(depth image)を取得し、この2種類の画像に基づいてタスク領域を抽出してもよい。抽出部14はカメラ20によって生成された深度画像を用いてもよいし、カメラ20からの画像と深度情報とに基づいて深度画像を生成してもよい。抽出部14はグレースケール画像および深度画像に基づいて、対象物が存在すると見込まれる位置での深度を特定する。抽出部14はその深度とエンドエフェクタ2bの構成とに基づいて、ロボット2がその位置において対象物を処理できるか否かを計算する。このように、抽出部14はエンドエフェクタ2bの構成と対象物の構造とを比較してタスク領域を抽出してもよい。一例では、抽出部14はその計算においてガウス関数を用いて、ロボット2が対象物を処理できるか否かを確率的に算出する。タスクが対象物の把持を含む場合には、抽出部14は、対象物を把持することができる位置を特定するための手法であるFast Graspability Evaluation(FGE)を用いてその計算を実行してもよい。抽出部14はそのような確率的な計算によって、観測領域における、タスク領域が存在する確率の分布を算出する。本開示ではその分布を領域マップともいう。一例では、抽出部14は、その確率が所与の閾値に達する領域をタスク領域として抽出する。
 上記の例のように、抽出部14は、対象物が観測領域内に存在することに少なくとも基づいてタスク領域を抽出してもよい。抽出部14は、ロボット2がタスクを実行する際に障害物に干渉しないことに更に基づいてタスク領域を抽出してもよい。FGEの利用は、その干渉を考慮してタスク領域を抽出する一例である。
 図4はタスク領域の抽出の一例を示す図である。この例では、ロボット2はオレンジを把持して所与の位置にそのオレンジを移動させるタスクを実行する。この自律的な処理を実現するために、抽出部14はカメラ20から得られた画像200を解析し、ロボット2がオレンジを把持できると見込まれるタスク領域を抽出する。すなわち、抽出部14は、ロボット2がタスクを実行するために対象物(オレンジ)に接触できる領域をタスク領域として抽出する。
 画像200は、床211に置かれているオレンジ221と、フェンス212の上方で保持されたオレンジ222とを映している。オレンジ221の周辺には、タスクの実行において障害物となり得るいくつかの別の物体231が置かれている。画像200は、エンドエフェクタ2bの一例であるグリッパの先端も映す。
 抽出部14はその画像200を解析して、オレンジ221に対応するタスク領域311を抽出し、オレンジ222に対応するタスク領域312を抽出する。領域マップ300はタスク領域が存在する確率の分布を示す。領域マップ300では、その確率が高い領域は相対的に白く表され、その確率が低い領域は相対的に黒く表される。タスク領域311は暗いグレーで表されているのに対して、タスク領域312は白く表されている。これは、オレンジ222を把持できる可能性が、オレンジ221を把持できる可能性よりも高いことを意味する。このような差は、オレンジ221の近くに別の物体231が存在することと、オレンジ221がオレンジ222よりも遠くにあることとの少なくとも一方に起因すると予想される。
 図3に戻って、少なくとも一つのタスク領域が抽出された場合には(ステップS12においてYES)、処理はステップS13に進む。ステップS13では、ロボット制御部15が、ロボット2が更に接近すべき位置である接近目標位置を決定する。この処理は、観測領域内のどこをより詳細に探索するかを決定することであるともいえる。一例では、ロボット制御部15は観測領域に対して、ロボット2がタスクを実行できる可能性を表すスコアを算出し、そのスコアが最大である位置を接近目標位置として決定してもよい。ロボット制御部15はそのスコアの分布として上記の領域マップを用いてもよい。あるいは、ロボット制御部15は検出された対象物の中心の位置を接近目標位置として算出してもよい。
 複数のタスク領域が抽出された場合には、ロボット制御部15は該複数のタスク領域から一つのタスク領域を選択し、選択されたタスク領域について接近目標位置を決定する。例えば、ロボット制御部15は最大のスコアに対応するタスク領域を選択してもよい。
 ステップS14では、ロボット制御部15が、ロボット2がタスク領域に到達したか否かを判定する。
 一例では、ロボット制御部15はエンドエフェクタ2bと接近目標位置との距離を算出し、この距離に基づいて判定を実行してもよい。算出された距離が所与の閾値以下である場合には、ロボット制御部15はロボット2がタスク領域に到達したと判定する。一方、算出された距離がその閾値より大きい場合には、ロボット制御部15はロボット2がタスク領域に到達していないと判定する。
 別の例では、ロボット制御部15は、タスク領域においてタスクを実行するために必要なロボット2の状態を示す目標コンフィグレーションとその不確実度とを算出してもよい。目標コンフィグレーションは例えば、タスクを開始するためのロボット2の位置および姿勢を含む。目標コンフィグレーションの詳細については後述する。算出された不確実度が所与の閾値以下である場合には、ロボット制御部15はロボット2がタスク領域に到達したと判定する。一方、算出された不確実度がその閾値より大きい場合には、ロボット制御部15はロボット2がタスク領域に到達していないと判定する。
 ロボット2がタスク領域に到達していないと判定された場合には(ステップS14においてNO)、処理はステップS15に進む。ステップS15では、ロボット制御部15がタスク領域に向けてロボットを制御する。すなわち、ロボット制御部15はロボット2が対象物に接近するように該ロボット2を制御する。複数のタスク領域から一つが選択された場合には、ロボット制御部15はロボット2がその選択されたタスク領域(対象物)に接近するようにロボット2を制御する。
 一例では、ロボット制御部15はエンドエフェクタ2bを現在位置から接近目標位置へと動かすためのロボット2のパスをプランニングにより生成する。あるいは、ロボット制御部15はその距離を小さくすると共に、接近目標位置がカメラ20の画像の中心に映るようにロボット2のパス(軌道)をプランニングにより生成してもよい。ロボット制御部15は、事前に設定されたロボット2の位置および姿勢の候補から適切な位置および姿勢を選択し、選択された位置および姿勢を実現するためのパスをプランニングにより生成してもよい。ロボット制御部15はパスのプランニングの少なくとも一部として、ロボット2と障害物との干渉が発生しないパスの生成と、ロボット2の特異姿勢(特異点)が発生しないパスの生成とのうちの少なくとも一つを実行し得る。特異姿勢(特異点)とは、ロボット2の構造上の観点から該ロボット2を制御できなくなる姿勢をいう。
 ロボット制御部15は生成されたパスを示す指令信号をロボットコントローラ3に出力し、ロボットコントローラ3はその指令信号に従ってロボット2を制御する。この結果、ロボット2がそのパスに沿って対象物に向かって接近する。
 ステップS15の後に処理はステップS11に戻り、ロボット制御システム10がステップS11以降の処理を再び実行する。すなわち、ロボット制御システム10はロボット2が対象物に接近した後にタスク領域を再び抽出し、この抽出の結果に基づいて後続の処理を実行する。
 ロボット2がタスク領域に到達したと判定された場合には(ステップS14においてYES)、処理はステップS16に進む。ステップS16では、ロボット制御部15がロボット2にタスクを実行させる。
 一例では、ロボット制御部15は目標コンフィグレーションを算出し、その目標コンフィグレーションに基づくプランニングによってパスを生成する。上述したように、目標コンフィグレーションはタスクを開始するためのロボット2の位置および姿勢を含み得る。例えば、ロボット2に対象物を把持させる場合には、ロボット制御部15は、その把持のためのグリッパの開き幅を含む、ロボット2の位置および姿勢を算出する。タスクが複数の主要動作を含む場合(例えば、第1の位置で対象物を把持する動作と、第2の位置にその対象物を置く動作とを含むタスクの場合)には、ロボット制御部15はそれぞれの主要動作について目標コンフィグレーションを算出してもよい。続いて、ロボット制御部15はその目標コンフィグレーションとタスクとを実行するためのパスをプランニングにより生成する。このプランニングにおいても、ロボット制御部15は、ロボット2と障害物との干渉が発生しないパスの生成と、ロボット2の特異姿勢(特異点)が発生しないパスの生成とのうちの少なくとも一つを実行し得る。
 ロボット制御部15は生成されたパスを示す指令信号をロボットコントローラ3に出力し、ロボットコントローラ3はその指令信号に従ってロボット2を制御する。ロボット制御部15は、目標コンフィグレーションを実行するためのパスを示す指令信号をロボットコントローラ3に出力し、その後に、タスクを実行するためのパスを示す指令信号をロボットコントローラ3に出力してもよい。いずれにしても、ロボット2は目標コンフィグレーションに基づく位置および姿勢に向かって動作し、次いでタスクを実行する。
 ステップS17では、ロボット制御部15が、ロボット制御を終了する否かを判定する。ロボット制御部15は任意の終了条件に基づいてこの判定を実行してよい。例えば、ロボット制御部15は規定回数のタスクを実行した場合にはロボット制御を終了すると判定し、タスクの実行回数がその規定回数未満である場合にはロボット制御を継続すると判定してもよい。あるいは、ロボット制御部15はロボット制御においてエラーが発生した場合にはロボット制御を終了すると判定し、そのエラーが発生していない場合にはロボット制御を継続すると判定してもよい。
 ロボット制御を終了すると判定された場合には(ステップS17においてYES)、処理はステップS18に進む。ステップS18では、ロボット制御システム10が終了処理を実行する。この終了処理において、ロボット制御部15はロボット2を初期の姿勢および位置に戻してもよい。あるいは、ロボット制御部15はすべてのタスクを終了したことを視覚情報または音声によってユーザに通知してもよい。
 ロボット制御を続ける場合には(ステップS17においてNO)、処理はステップS19に進む。ステップS19では、ロボット制御部15が次のタスクのための準備を実行する。例えば、ロボット制御部15はロボット2を初期の姿勢および位置に戻してもよい。あるいは、ロボット制御部15は次のタスクを実行することを視覚情報または音声によってユーザに通知してもよい。
 ステップS19の後に処理はステップS11に戻り、ロボット制御システム10が次のタスクについてステップS11以降の処理を実行する。
 上述した一連の処理手順は、探索と利用のうち、主に利用に関連する。次に、主に探索に関連する処理手順について説明する。
 タスク領域が抽出されなかった場合には(ステップS12においてNO)、処理はステップS20に進む。ステップS20では、探索部11がこれまでに観測された少なくとも一つの観測領域を示す観測データを記録する。例えば、探索部11はロボット2を対象物に接近させながら観測してきた複数の観測領域を示す観測データを記録する。一例では、探索部11は個々の観測領域について観測データのレコードを生成する。そのレコードは観測領域の代表座標と、観測時刻と、該代表座標におけるタスクの実行可能性を示すスコアとをデータ項目として含み得る。個々のレコードは、領域マップ、抽出されたタスク領域、処理された対象物の個数、およびタスクの実行履歴のうちの少なくとも一つを更に含んでもよい。探索部11は少なくとも一つのレコードを観測履歴データベース12に格納する。
 ステップS21では、探索部11が対象物の探索を続けるか否かを判定する。一例では、探索部11は観測履歴データベース12内の観測データに基づいて、新たな対象物を発見する可能性があるか否かを判定する。探索部11はその可能性があると判定した場合に探索を続けると判定し、その可能性がないと判定した場合に探索を終了すると判定する。例えば、探索部11はその観測データをガウス過程回帰によって処理して、ロボットの周囲の3次元空間において行為可能性についての予測値および不確実度を算出する。探索部11はその不確実度が所与の閾値より大きい位置が存在する場合に探索を続けると判定し、そのような位置が存在しない場合に探索を終了すると判定する。不確実度がその閾値より大きいということは、タスク領域が抽出されるか否かの判断に自信を持てないことを意味するので、そのような場所について探索を試みる価値がある。
 あるいは、探索部11は、観測データによって示される最も近い代表座標までの距離が所与の閾値より長い位置が、ロボットの周囲の3次元空間に対応する被写平面内に存在する場合に探索を続けると判定し、そのような位置が存在しない場合に探索を終了すると判定してもよい。
 あるいは、探索部11は事前に設定された観測範囲内に未観測領域が存在する場合に探索を続けると判定し、その未観測領域が存在しない場合に探索を終了すると判定してもよい。その観測範囲は、例えば、ロボットの周囲の3次元空間の全体または一部である。この方法は観測範囲の全体を漏れなく探索する手法であるといえる。
 探索を続けると判定された場合には(ステップS21においてYES)、処理はステップS22に進む。ステップS22では、探索部11がロボット2の周囲の3次元空間における観測領域の位置を変更する。ステップS22は、観測領域からタスク領域が抽出されない場合に(ステップS12においてNO)に実行され得る。すなわち、探索部11は、抽出部14がタスク領域を抽出しないことに応答して、観測領域の位置を変更する。
 一例では、探索部11は観測領域の位置を動的に変更する。この動的な変更は、観測領域の次の位置が予め定められておらず、探索部11がロボット2の周囲の現在状況に応じて観測領域の次の位置を決定することを意味する。探索部11は観測履歴データベース12内の観測データに基づいて、観測領域の次の位置を動的に変更してもよい。例えば、探索部11は過去の少なくとも一つの位置における観測領域でのタスク領域の抽出の結果に基づいて、ロボット2の周囲の3次元空間においてタスク領域が抽出される可能性を表すスコアを算出し、そのスコアに基づいて観測領域の位置を変更してもよい。探索部11はそのスコアが最も高い位置に観測領域を移してもよい。あるいは、探索部11は観測データに基づいて、3次元空間におけるタスク領域の存在の不確実度の分布を算出し、その分布に基づいて観測領域の位置を変更してもよい。探索部11はその不確実度が最も高い位置に観測領域を移してもよい。スコアおよび不確実度の双方を考慮する手法として、探索部11は観測データを入力として用いるベイズ最適化を実行し、このベイズ最適化で得られる獲得関数に基づいて観測領域の位置を変更してもよい。例えば、探索部11は獲得関数の値が最も高い位置に観測領域を移す。
 あるいは、探索部11は観測データによって示される代表座標までの最短距離が最も長い位置を、ロボットの周囲の3次元空間に対応する被写平面から選択し、その位置に観測領域を移してもよい。この処理も、観測領域の位置を動的に変更する一例である。
 あるいは、探索部11は予め定められた順序に従って観測領域の位置を変更してもよいし、観測領域の次の位置をランダムに決定してもよい。
 探索部11が観測領域の次の位置を決定したことに応答して、ロボット制御部15は、カメラ20が次の観測領域を撮影するようにロボット2のパスをプランニングにより生成する。例えば、ロボット制御部15は、次の位置がカメラの中心に映るようにパスをプランニングしてもよい。ロボット制御部15は、カメラ20が次の観測領域を撮影するように、事前に設定されたロボット2の位置および姿勢の候補から適切な位置および姿勢を選択し、選択された位置および姿勢を実現するためのパスを生成してもよい。ロボット制御部15はパスのプランニングの少なくとも一部として、ロボット2と障害物との干渉が発生しないパスの生成と、ロボット2の特異姿勢(特異点)が発生しないパスの生成とのうちの少なくとも一つを実行し得る。
 ロボット制御部15は生成されたパスを示す指令信号をロボットコントローラ3に出力し、ロボットコントローラ3はその指令信号に従ってロボット2を制御する。この結果、カメラ20が次の観測領域を撮影する。
 ステップS21の後に処理はステップS11に戻り、ロボット制御システム10がステップS11以降の処理を実行する。ステップS11では、抽出部14が変更された観測領域からタスク領域を抽出する。すなわち、抽出部14は観測領域の位置が変更される度にタスク領域を抽出する。
 探索を終了すると判定された場合には(ステップS21においてNO)、処理はステップS18に進み、ロボット制御システム10が終了処理を実行する。
 図5を参照しながら、処理フローS1に基づくロボットの動作の一例について説明する。図5はロボット制御システム10によるロボット制御の一例を示す図である。この例では、ロボット2は周囲に存在するボールを箱410に収納するタスクを実行する。すなわち、この例では対象物はボールである。図5はロボット2の一連の動作を場面S31~S39により順に表す。以下の説明では処理フローS1との対応も示す。
 場面S31では、カメラ20はボール421が映った画像を取得し、画像取得部13がその画像を取得する。ロボット制御システム10はボール421に対応するタスク領域をその画像(観測領域)から抽出する(ステップS11)。
 場面S32では、ロボット制御システム10は、ロボット2がボール421に接近するように該ロボット2を制御する(ステップS12~S15)。この制御によってエンドエフェクタ2bとボール421との距離は短くなる。この後も、ロボット制御システム10はタスク領域の抽出と、ロボット2をボール421に接近させる制御(ステップS11~S15)とを繰り返す。
 場面S33では、ロボット2がタスク領域に到達したことに応答して(ステップS14においてYES)、ロボット制御システム10はロボット2にタスクを実行させる(ステップS16)。
 場面S33から場面S34にかけて、ロボット2はロボット制御システム10の制御によってタスクを実行する(ステップS16)。ロボット2はエンドエフェクタ2bでボール421を把持して、そのボール421を箱410に入れる。
 その後、ロボット制御システム10は観測領域の位置を変更しながらタスク領域の抽出を試みる(ステップS11,S12,S20~S22)。この探索の結果として、場面S35では、カメラ20は二つのボール422,423が映った画像を取得し、画像取得部13がその画像を取得する。この画像では、ボール422は障害物430によって遮られるように映っており、ボール423は全体が映っている。一例では、ロボット制御システム10はボール423に対応するタスク領域をその画像(観測領域)から抽出するが(ステップS11)、ボール422に対応する部分はタスク領域として抽出しない。
 場面S36では、ロボット制御システム10は、ロボット2がボール423に接近するように該ロボット2を制御する(ステップS12~S15)。この制御によってエンドエフェクタ2bとボール423との距離は短くなる。この後も、ロボット制御システム10はタスク領域の抽出と、ロボット2をボール423に接近させる制御(ステップS11~S15)とを繰り返す。
 場面S37では、ロボット2がタスク領域に到達したことに応答して(ステップS14においてYES)、ロボット制御システム10は該ロボット2にタスクを実行させる(ステップS16)。
 場面S37から場面S39にかけて、ロボット2はロボット制御システム10の制御によってタスクを実行する(ステップS16)。ロボット2はエンドエフェクタ2bでボール423を把持して(場面S37)、そのボール423を箱410に向けて運び(場面S38)、ボール423を箱410に入れる(場面S39)。
 [プログラム]
 ロボット制御システム10の各機能モジュールは、プロセッサ161またはメモリ162の上にロボット制御プログラムを読み込ませてプロセッサ161にそのプログラムを実行させることで実現される。ロボット制御プログラムは、ロボット制御システム10の各機能モジュールを実現するためのコードを含む。プロセッサ161はロボット制御プログラムに従って入出力ポート164または通信ポート165を動作させ、メモリ162またはストレージ163におけるデータの読み出しおよび書き込みを実行する。このような処理によりロボット制御システム10の各機能モジュールが実現される。
 ロボット制御プログラムは、CD-ROM、DVD-ROM、半導体メモリなどの非一時的な記録媒体に固定的に記録された上で提供されてもよい。あるいは、ロボット制御プログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
 [効果]
 以上説明したように、本開示の一側面に係るロボット制御システムは、対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出する抽出部と、タスク領域が抽出されたことに応答して、ロボットが対象物に接近するように該ロボットを制御するロボット制御部とを備え、抽出部は、ロボットが対象物に接近した後に、タスク領域を再び抽出する。
 本開示の一側面に係るロボット制御方法は、少なくとも一つのプロセッサを備えるロボット制御システムにより実行されるロボット制御方法であって、対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出するステップと、タスク領域が抽出されたことに応答して、ロボットが対象物に接近するように該ロボットを制御するステップとを含み、抽出するステップでは、ロボットが対象物に接近した後に、タスク領域を再び抽出する。
 本開示の一側面に係るロボット制御プログラムは、対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出するステップと、タスク領域が抽出されたことに応答して、ロボットが対象物に接近するように該ロボットを制御するステップとをコンピュータに実行させ、抽出するステップでは、ロボットが対象物に接近した後に、タスク領域を再び抽出する。
 このような側面においては、ロボットが対象物に接近する度にタスク領域が抽出されるので、ロボットの周囲の状況の変化に適応しながらロボットを制御できる。このような制御によって、ロボットにタスクを効率良く実行させることが可能になる。
 他の側面に係るロボット制御システムでは、ロボット制御部は、ロボットがタスク領域に到達したことに応答して、ロボットにタスクを実行させてもよい。この構成により、ロボットは、対象物を処理できる位置に到達したタイミングでタスクを実行できる。したがって、ロボットにタスクを効率良く実行させることができる。
 他の側面に係るロボット制御システムでは、観測領域の画像を、ロボットの動作に対応して移動するカメラから取得する画像取得部を更に備え、抽出部は、画像に基づいてタスク領域を抽出してもよい。このようなカメラからの画像を用いることでロボットの周囲の状況を明確にかつ確実に認識することが可能になる。その結果、タスク領域を精度良く抽出できる。
 他の側面に係るロボット制御システムでは、抽出部は、複数のタスク領域を抽出し、ロボット制御部は、複数のタスク領域から一つのタスク領域を選択し、ロボットが選択されたタスク領域に接近するようにロボットを制御してもよい。この構成により、複数のタスク領域が抽出された場合にもロボットを適切に特定のタスク領域へと接近させることができる。
 他の側面に係るロボット制御システムでは、抽出部は、互いに異なる複数のタスクのそれぞれについて、該タスクに対応するタスク領域を抽出してもよい。この構成により、それぞれの種類のタスクに応じてロボットを効率的に制御できる。
 他の側面に係るロボット制御システムでは、抽出部は、ロボットの構成と、観測領域内の現在状況とに基づいて、タスク領域を抽出してもよい。これら二つの要素を考慮することで、タスク領域を精度良く抽出できる。
 他の側面に係るロボット制御システムでは、現在状況は、対象物が観測領域内に存在するか否かを示し、抽出部は、対象物が観測領域内に存在することに少なくとも基づいて、タスク領域を抽出してもよい。対象物の存在を認識して初めてロボットを接近させることで、ロボットの無駄な動きを抑えつつ該ロボットにタスクを実行させることができる。
 他の側面に係るロボット制御システムでは、現在状況は、対象物とは異なる障害物が観測領域内に存在するか否かを更に示し、抽出部は、ロボットがタスクを実行する際に障害物に干渉しないことに更に基づいて、タスク領域を抽出してもよい。障害物の存在を考慮した上でロボットを接近させることで、ロボットの無駄な動きを抑えつつ該ロボットにタスクを実行させることができる。
 他の側面に係るロボット制御システムでは、ロボットの構成は、ロボットに取り付けられたエンドエフェクタの構成を含み、現在状況は、対象物の構造を更に示し、抽出部は、エンドエフェクタの構成と対象物の構造とを比較して、タスク領域を抽出してもよい。対象物の構造と、その対象物を取り扱うエンドエフェクタの構成とを考慮してロボットを対象物に接近させることで、ロボットの無駄な動きを抑えつつ該ロボットにタスクを実行させることができる。
 他の側面に係るロボット制御システムでは、抽出部は、タスク領域が存在する確率を算出し、確率が所与の閾値に達する場合に、タスク領域を抽出してもよい。タスク領域を確率的に抽出することで、ロボットの周辺の状況に柔軟に適応しながらロボットを制御できる。
 他の側面に係るロボット制御システムでは、抽出部は、観測領域における確率の分布を算出し、確率が閾値に達する領域をタスク領域として抽出してもよい。確率の分布を考慮することで、観測領域からタスク領域を精度良くかつ効率的に抽出できる。
 他の側面に係るロボット制御システムでは、抽出部がタスク領域を抽出しないことに応答して、ロボットの周囲の3次元空間における観測領域の位置を変更する探索部を更に備えてもよい。タスク領域が抽出されない場合に観測領域の位置を変えることで、ロボットの無駄な動きを抑えつつ該ロボットにタスクを実行させることができる。
 他の側面に係るロボット制御システムでは、探索部は、3次元空間において観測領域の位置を動的に変更してもよい。この構成によって、ロボットの周囲の状況に応じて適切に観測領域を設定できる。
 他の側面に係るロボット制御システムでは、探索部は、過去の少なくとも一つの位置における観測領域でのタスク領域の抽出の結果に基づいて、3次元空間においてタスク領域が抽出される可能性を表すスコアを算出し、スコアに基づいて、観測領域の位置を変更してもよい。過去の結果に基づく、タスク領域が抽出される可能性の程度に基づいて観測領域を設定することで、タスク領域を効率的に抽出することが可能になる。
 他の側面に係るロボット制御システムでは、探索部は、3次元空間におけるタスク領域の存在の不確実度の分布を算出し、不確実度の分布に基づいて、観測領域の位置を変更してもよい。この不確実度を考慮することで観測領域が効率的に設定され、その結果、タスク領域を効率的に抽出できる。
 他の側面に係るロボット制御システムでは、抽出部は、観測領域の位置が変更される度にタスク領域を抽出してもよい。観測領域を変えながらタスク領域を抽出することで、ロボットにタスクを効率良く実行させることができる。
 他の側面に係るロボット制御システムでは、タスクは、ロボットが対象物に接触する工程を含み、抽出部は、ロボットがタスクを実行するために対象物に接触できる領域をタスク領域として抽出してもよい。この構成により、対象物への接触を伴うタスクをロボットに効率良く実行させることができる。
 本開示の一側面に係るロボットシステムは、上記のロボット制御システムと、ロボット制御部の制御によって動作するロボットとを備える。この側面においては、ロボットにタスクを効率良く実行させることが可能になる。
 [変形例]
 以上、本開示の実施形態に基づいて詳細に説明した。しかし、本開示は上記実施形態に限定されるものではない。本開示の要旨を逸脱しない範囲で様々な変形が可能である。
 ロボット制御システムの機能構成は上記の例に限定されない。本開示に係るロボット制御方法は、上記の例とは異なる機能構成を用いて実行されてもよい。
 システムのハードウェア構成は、プログラムの実行により各機能モジュールを実現する態様に限定されない。例えば、上記の例における機能モジュールの少なくとも一部が、その機能に特化した論理回路により構成されていてもよいし、該論理回路を集積したASIC(Application Specific Integrated Circuit)により構成されてもよい。
 少なくとも一つのプロセッサにより実行される方法の処理手順は上記の例に限定されない。例えば、上述したステップ(処理)の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の2以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。上記の処理フローS1において、それぞれのステップは直接に実行されてもよいし、いくつかのステップが並行して実行されてもよい。
 コンピュータシステムまたはコンピュータ内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」という二つの基準のうちのどちらを用いてもよい。このような基準の選択は、二つの数値の大小関係を比較する処理についての技術的意義を変更するものではない。
 1…ロボットシステム、2…ロボット、11…探索部、12…観測履歴データベース、13…画像取得部、14…抽出部、15…ロボット制御部、2b…エンドエフェクタ、3…ロボットコントローラ、10…ロボット制御システム、20…カメラ、100…コンピュータ、110…本体、120…モニタ、130…入力デバイス、200…画像、221,222…オレンジ(対象物)、300…領域マップ、311,312…タスク領域、421~423…ボール(対象物)。

Claims (20)

  1.  対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出する抽出部と、
     前記タスク領域が抽出されたことに応答して、前記ロボットが前記対象物に接近するように該ロボットを制御するロボット制御部と、
    を備え、
     前記抽出部は、前記ロボットが前記対象物に接近した後に、前記タスク領域を再び抽出する、
    ロボット制御システム。
  2.  前記ロボット制御部は、前記ロボットが前記タスク領域に到達したことに応答して、前記ロボットに前記タスクを実行させる、
    請求項1に記載のロボット制御システム。
  3.  前記観測領域の画像を、前記ロボットの動作に対応して移動するカメラから取得する画像取得部を更に備え、
     前記抽出部は、前記画像に基づいて前記タスク領域を抽出する、
    請求項1または2に記載のロボット制御システム。
  4.  前記抽出部は、複数の前記タスク領域を抽出し、
     前記ロボット制御部は、
      前記複数のタスク領域から一つのタスク領域を選択し、
      前記ロボットが前記選択されたタスク領域に接近するように前記ロボットを制御する、
    請求項1~3のいずれか一項に記載のロボット制御システム。
  5.  前記抽出部は、互いに異なる複数のタスクのそれぞれについて、該タスクに対応する前記タスク領域を抽出する、
    請求項1~4のいずれか一項に記載のロボット制御システム。
  6.  前記抽出部は、前記ロボットの構成と、前記観測領域内の現在状況とに基づいて、前記タスク領域を抽出する、
    請求項1~5のいずれか一項に記載のロボット制御システム。
  7.  前記現在状況は、前記対象物が前記観測領域内に存在するか否かを示し、
     前記抽出部は、前記対象物が前記観測領域内に存在することに少なくとも基づいて、前記タスク領域を抽出する、
    請求項6に記載のロボット制御システム。
  8.  前記現在状況は、前記対象物とは異なる障害物が前記観測領域内に存在するか否かを更に示し、
     前記抽出部は、前記ロボットが前記タスクを実行する際に前記障害物に干渉しないことに更に基づいて、前記タスク領域を抽出する、
    請求項7に記載のロボット制御システム。
  9.  前記ロボットの構成は、前記ロボットに取り付けられたエンドエフェクタの構成を含み、
     前記現在状況は、前記対象物の構造を更に示し、
     前記抽出部は、前記エンドエフェクタの構成と前記対象物の構造とを比較して、前記タスク領域を抽出する、
    請求項7または8に記載のロボット制御システム。
  10.  前記抽出部は、
      前記タスク領域が存在する確率を算出し、
      前記確率が所与の閾値に達する場合に、前記タスク領域を抽出する、
    請求項1~9のいずれか一項に記載のロボット制御システム。
  11.  前記抽出部は、
      前記観測領域における前記確率の分布を算出し、
      前記確率が前記閾値に達する領域を前記タスク領域として抽出する、
    請求項10に記載のロボット制御システム。
  12.  前記抽出部が前記タスク領域を抽出しないことに応答して、前記ロボットの周囲の3次元空間における前記観測領域の位置を変更する探索部を更に備える請求項1~11のいずれか一項に記載のロボット制御システム。
  13.  前記探索部は、前記3次元空間において前記観測領域の位置を動的に変更する、請求項12に記載のロボット制御システム。
  14.  前記探索部は、
      過去の少なくとも一つの位置における前記観測領域での前記タスク領域の抽出の結果に基づいて、前記3次元空間において前記タスク領域が抽出される可能性を表すスコアを算出し、
      前記スコアに基づいて、前記観測領域の位置を変更する、
    請求項12または13に記載のロボット制御システム。
  15.  前記探索部は、
      前記3次元空間における前記タスク領域の存在の不確実度の分布を算出し、
      前記不確実度の分布に基づいて、前記観測領域の位置を変更する、
    請求項14に記載のロボット制御システム。
  16.  前記抽出部は、前記観測領域の位置が変更される度に前記タスク領域を抽出する、
    請求項12~15のいずれか一項に記載のロボット制御システム。
  17.  前記タスクは、前記ロボットが前記対象物に接触する工程を含み、
     前記抽出部は、前記ロボットが前記タスクを実行するために前記対象物に接触できる領域を前記タスク領域として抽出する、
    請求項1~16のいずれか一項に記載のロボット制御システム。
  18.  請求項1~17のいずれか一項に記載のロボット制御システムと、
     前記ロボット制御部の制御によって動作するロボットと、
    を備えるロボットシステム。
  19.  少なくとも一つのプロセッサを備えるロボット制御システムにより実行されるロボット制御方法であって、
     対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出するステップと、
     前記タスク領域が抽出されたことに応答して、前記ロボットが前記対象物に接近するように該ロボットを制御するステップと、
    を含み、
     前記抽出するステップでは、前記ロボットが前記対象物に接近した後に、前記タスク領域を再び抽出する、
    ロボット制御方法。
  20.  対象物を処理するためのタスクをロボットが実行できるタスク領域を、該ロボットの周囲の観測領域から抽出するステップと、
     前記タスク領域が抽出されたことに応答して、前記ロボットが前記対象物に接近するように該ロボットを制御するステップと、
    をコンピュータに実行させ、
     前記抽出するステップでは、前記ロボットが前記対象物に接近した後に、前記タスク領域を再び抽出する、
    ロボット制御プログラム。
PCT/JP2021/026192 2021-07-12 2021-07-12 ロボット制御システム、ロボットシステム、ロボット制御方法、およびロボット制御プログラム WO2023286138A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2023534460A JPWO2023286138A1 (ja) 2021-07-12 2021-07-12
PCT/JP2021/026192 WO2023286138A1 (ja) 2021-07-12 2021-07-12 ロボット制御システム、ロボットシステム、ロボット制御方法、およびロボット制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/026192 WO2023286138A1 (ja) 2021-07-12 2021-07-12 ロボット制御システム、ロボットシステム、ロボット制御方法、およびロボット制御プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/407,440 Continuation US20240139962A1 (en) 2024-01-09 Iterative control of robot for target object

Publications (1)

Publication Number Publication Date
WO2023286138A1 true WO2023286138A1 (ja) 2023-01-19

Family

ID=84919721

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/026192 WO2023286138A1 (ja) 2021-07-12 2021-07-12 ロボット制御システム、ロボットシステム、ロボット制御方法、およびロボット制御プログラム

Country Status (2)

Country Link
JP (1) JPWO2023286138A1 (ja)
WO (1) WO2023286138A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012225752A (ja) * 2011-04-19 2012-11-15 Toyota Central R&D Labs Inc 移動体追跡装置及び移動体追跡方法
JP6743526B2 (ja) * 2016-07-01 2020-08-19 日本電気株式会社 情報処理装置、情報処理方法、及び、プログラム
JP2020127102A (ja) * 2019-02-04 2020-08-20 地方独立行政法人神奈川県立産業技術総合研究所 移動体制御システム、移動体、表示方法およびプログラム
JP2021044749A (ja) * 2019-09-12 2021-03-18 株式会社東芝 撮像装置、方法及びプログラム
JP2021060849A (ja) * 2019-10-08 2021-04-15 国立大学法人静岡大学 自律移動ロボットおよび自律移動ロボットの制御プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012225752A (ja) * 2011-04-19 2012-11-15 Toyota Central R&D Labs Inc 移動体追跡装置及び移動体追跡方法
JP6743526B2 (ja) * 2016-07-01 2020-08-19 日本電気株式会社 情報処理装置、情報処理方法、及び、プログラム
JP2020127102A (ja) * 2019-02-04 2020-08-20 地方独立行政法人神奈川県立産業技術総合研究所 移動体制御システム、移動体、表示方法およびプログラム
JP2021044749A (ja) * 2019-09-12 2021-03-18 株式会社東芝 撮像装置、方法及びプログラム
JP2021060849A (ja) * 2019-10-08 2021-04-15 国立大学法人静岡大学 自律移動ロボットおよび自律移動ロボットの制御プログラム

Also Published As

Publication number Publication date
JPWO2023286138A1 (ja) 2023-01-19

Similar Documents

Publication Publication Date Title
US11407111B2 (en) Method and system to generate a 3D model for a robot scene
Ciocarlie et al. Towards reliable grasping and manipulation in household environments
US9862090B2 (en) Surrogate: a body-dexterous mobile manipulation robot with a tracked base
WO2023056670A1 (zh) 复杂光照条件下基于视触融合的机械臂自主移动抓取方法
CN114080583B (zh) 视觉教导和重复移动操纵系统
US10759051B2 (en) Architecture and methods for robotic mobile manipulation system
SE526119C2 (sv) Metod och system för programmering av en industrirobot
Katyal et al. Leveraging deep reinforcement learning for reaching robotic tasks
CN112230649B (zh) 机器学习方法及移动机器人
CN114800535B (zh) 机器人的控制方法、机械臂控制方法、机器人及控制终端
JP2021030360A (ja) モデル生成装置、モデル生成方法、制御装置及び制御方法
Schiavi et al. Learning agent-aware affordances for closed-loop interaction with articulated objects
Tee et al. A framework for tool cognition in robots without prior tool learning or observation
US11478932B2 (en) Handling assembly comprising a handling device for carrying out at least one work step, method, and computer program
WO2023286138A1 (ja) ロボット制御システム、ロボットシステム、ロボット制御方法、およびロボット制御プログラム
Hossain et al. Object recognition and robot grasping: A deep learning based approach
Zhang et al. Recent advances on vision-based robot learning by demonstration
Schnaubelt et al. Autonomous assistance for versatile grasping with rescue robots
US20240139962A1 (en) Iterative control of robot for target object
Du et al. Human-manipulator interface using particle filter
Diankov et al. Integrating grasp planning and visual feedback for reliable manipulation
WO2023100282A1 (ja) データ生成システム、モデル生成システム、推定システム、学習済みモデルの製造方法、ロボット制御システム、データ生成方法、およびデータ生成プログラム
Ding et al. A reconfigurable pick-place system under robot operating system
Fang et al. Learning from wearable-based teleoperation demonstration
DU et al. ROBOT MANIPULATOR USING A VISION-BASED HUMAN--MANIPULATOR INTERFACE.

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023534460

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE