WO2022014312A1 - ロボット制御装置、およびロボット制御方法、並びにプログラム - Google Patents
ロボット制御装置、およびロボット制御方法、並びにプログラム Download PDFInfo
- Publication number
- WO2022014312A1 WO2022014312A1 PCT/JP2021/024349 JP2021024349W WO2022014312A1 WO 2022014312 A1 WO2022014312 A1 WO 2022014312A1 JP 2021024349 W JP2021024349 W JP 2021024349W WO 2022014312 A1 WO2022014312 A1 WO 2022014312A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- camera
- gripping
- robot
- box
- inclusion
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 208
- 238000012545 processing Methods 0.000 claims abstract description 113
- 240000004050 Pentaglottis sempervirens Species 0.000 claims description 135
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 claims description 135
- 238000012937 correction Methods 0.000 claims description 62
- 238000004364 calculation method Methods 0.000 claims description 61
- 238000000605 extraction Methods 0.000 claims description 42
- 238000013459 approach Methods 0.000 claims description 23
- 239000000470 constituent Substances 0.000 claims description 4
- 230000008569 process Effects 0.000 description 170
- 230000014509 gene expression Effects 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000010365 information processing Effects 0.000 description 5
- 238000000513 principal component analysis Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 241000203475 Neopanax arboreus Species 0.000 description 2
- 238000005111 flow chemistry technique Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000000474 nursing effect Effects 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1612—Programme controls characterised by the hand, wrist, grip control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/023—Optical sensing devices including video camera means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme 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/1697—Vision controlled systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39542—Plan grasp points, grip matrix and initial grasp force
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40607—Fixed camera to observe workspace, object, workpiece, global
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40613—Camera, laser scanner on end effector, hand eye manipulator, local
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10032—Satellite or aerial image; Remote sensing
Definitions
- This disclosure relates to a robot control device, a robot control method, and a program.
- the present invention relates to a robot control device that controls an object gripping process by a robot, a robot control method, and a program.
- a process of grasping and moving an object For example, in the case of an assembly robot used in a factory, a hand having a grip mechanism connected to the arm of the robot is used to grip a part used for product assembly, and the part is moved to a predetermined position while being gripped and gripped. By releasing, processing such as mounting a part on another object is performed.
- a process is performed in which a cup placed on a table that is out of the reach of the user is grasped by the hand of the robot, carried to a position within the reach of the user, and handed to the user.
- a peripheral image is taken with a bird's-eye view camera having a field of view that can grasp the surrounding situation of the robot as a whole, and the captured image is analyzed to determine the position of the object to be gripped. Is confirmed, the hand is moved to the position of the object to be gripped, and the process of gripping the object to be gripped is performed.
- the movement destination of the hand may deviate from the target gripping position, and the gripping process may fail.
- Patent Document 1 Japanese Unexamined Patent Publication No. 2007-319938 discloses a method for solving such a problem.
- This Patent Document 1 discloses a configuration in which a hand camera is attached to a hand portion that performs object gripping processing in addition to a bird's-eye view camera to a robot, and these two cameras are used.
- the configuration is such that the hand that performs the object gripping process is photographed by the bird's-eye view camera, the positional relationship between the bird's-eye view camera and the hand is grasped, and then the hand camera recognizes the object to be gripped.
- the bird's-eye view camera needs to take a picture of the hand part in addition to taking a picture of the object to be gripped, and the grippable range is limited to the object in the vicinity of the hand part. There is a problem.
- the shape data of the gripping object is stored in the storage unit in advance, and the shape data is used to recognize the gripping object. Therefore, there is a problem that it cannot be applied to the gripping process of an unknown object in which shape data is not stored.
- the present disclosure has been made in view of the above problems, for example, and in a configuration in which an object is gripped by using a robot, the gripping process can be reliably executed even if the registration data of the shape of the object to be gripped is not possessed. It is an object of the present invention to provide a robot control device, a robot control method, and a program that enable the above.
- the first aspect of this disclosure is The first camera reference inclusion box including the object to be gripped included in the image captured by the first camera mounted on the robot and the object to be gripped included in the image captured by the second camera mounted on the robot are included.
- the inclusion box generator that generates the second camera reference inclusion box, The relative position of the target gripping position of the gripping object with respect to the first camera reference inclusion box in the captured image of the first camera is calculated, and based on the calculated relative position, in the captured image of the second camera.
- a gripping position calculation unit that calculates the target gripping position with respect to the second camera reference inclusion box and sets the calculated position to the correction target gripping position of the gripping target object included in the captured image of the second camera.
- the robot control device has a control information generation unit that generates control information for gripping the correction target gripping position in the captured image of the second camera with the robot's hand.
- the inclusion box generation unit includes the first camera reference inclusion box including the object to be gripped included in the captured image of the first camera mounted on the robot, and the inclusion box included in the captured image of the second camera mounted on the robot.
- a inclusion box generation step that generates a second camera reference inclusion box that includes the object to be gripped
- the gripping position calculation unit calculates the relative position of the target gripping position of the gripping object with respect to the first camera reference inclusion box in the captured image of the first camera, and based on the calculated relative position, the second A gripping position calculation step of calculating the target gripping position with respect to the second camera reference inclusion box in the captured image of the camera and setting the calculated position to the correction target gripping position of the gripping target object included in the captured image of the second camera.
- a control information generation unit executes a control information generation step of generating control information for gripping the correction target gripping position in a captured image of the second camera with the robot's hand.
- the inclusion box generation unit includes the first camera reference inclusion box including the object to be gripped included in the image captured by the first camera mounted on the robot, and the inclusion box included in the image captured by the second camera mounted on the robot.
- a inclusion box generation step that generates a second camera reference inclusion box that includes the object to be gripped
- the gripping position calculation unit calculates the relative position of the target gripping position of the gripping object with respect to the first camera reference inclusion box in the captured image of the first camera, and based on the calculated relative position, the second A gripping position calculation step of calculating the target gripping position with respect to the second camera reference inclusion box in the captured image of the camera and setting the calculated position to the correction target gripping position of the gripping target object included in the captured image of the second camera.
- the program is for causing the control information generation unit to execute a control information generation step for generating control information for gripping the correction target gripping position in the captured image of the second camera with the hand of the robot.
- the program of the present disclosure is, for example, a program that can be provided by a storage medium or a communication medium provided in a computer-readable format to an information processing device or a computer system capable of executing various program codes.
- a program can be provided by a storage medium or a communication medium provided in a computer-readable format to an information processing device or a computer system capable of executing various program codes.
- system is a logical set configuration of a plurality of devices, and the devices of each configuration are not limited to those in the same housing.
- an apparatus and a method that enable a robot to reliably perform an object gripping process are realized.
- a bird's-eye view camera reference inclusion box containing a gripping object included in a captured image of a bird's-eye view camera mounted on the robot and a gripping target object included in a captured image of a hand camera mounted on the robot.
- Generate a minion camera reference inclusion box to include.
- the relative position of the target gripping position of the object to be gripped with respect to the bird's-eye view camera reference inclusion box in the image taken by the bird's-eye camera is calculated, and based on the calculated relative position, with respect to the hand camera reference inclusion box in the image taken by the handheld camera.
- the target gripping position is calculated, and the calculated position is set to the correction target gripping position of the gripping target object included in the captured image of the hand camera. Further, the control information for gripping the correction target gripping position in the captured image of the hand camera with the robot's hand is generated, and the gripping process is executed by the robot. With this configuration, a device and a method that enable the robot to reliably execute the gripping process of an object are realized. It should be noted that the effects described in the present specification are merely exemplary and not limited, and may have additional effects.
- FIG. 1 It is a figure which shows the flowchart explaining the sequence of the inclusion box (bounding box) generation processing to which the bird's-eye view camera image taken by the robot control apparatus of this disclosure are applied. It is a figure explaining the specific example of the inclusion box (bounding box) generation processing. It is a figure explaining the specific example of the inclusion box (bounding box) generation processing. It is a figure explaining the specific example of the inclusion box (bounding box) generation processing. It is a figure explaining the specific example of the inclusion box (bounding box) generation processing. It is a figure explaining the specific example of the inclusion box (bounding box) generation processing.
- FIG. 1 is a diagram illustrating a processing sequence when the robot 10 grips an object 50 which is an object to be gripped.
- the robot 10 operates in the order of steps S01 to S03 shown in the figure to grip the object 50.
- the robot 10 has a head 20, a hand 30, and an arm 40.
- the hand 30 is connected to the robot body by the arm 40, and has a configuration in which the position and orientation of the hand 30 can be changed by controlling the arm 40.
- the hand 30 has a rotatable movable portion corresponding to a human finger on both sides, and has a configuration capable of performing an object gripping operation and an object releasing operation.
- the robot 10 moves by driving a driving unit such as a leg or a wheel, and further moves the hand 30 to a position where the object 50 can be gripped by controlling the arm 40.
- a driving unit such as a leg or a wheel
- the robot body 10 may not move, and the hand 30 may be brought closer to the object by controlling only the arm 40.
- the processing of the present disclosure is applicable in any configuration. In the examples described below, as an example, a configuration example in which the robot 10 main body can also be moved will be described.
- the robot 10 has two cameras for confirming the position and the like of the object 50 which is the object to be grasped.
- One is a bird's-eye view camera 21 mounted on the head 20, and the other is a hand camera 31 mounted on the hand 30.
- the bird's-eye view camera 21 and the hand camera 31 include not only a camera for taking a visible light image but also a sensor capable of acquiring a distance image or the like. However, it is preferable to use a camera or a sensor that can obtain three-dimensional information. For example, a stereo camera, a sensor such as a ToF sensor or Lidar, or a combination of these sensors and a monocular camera may be used. It is preferable to use a camera or a sensor that can acquire data capable of analyzing the three-dimensional position of the object to be gripped.
- FIG. 1 shows a step of confirming the position of the object 50 by the bird's-eye view camera 21.
- the data processing unit in the robot 10 detects the object 50, which is the object to be gripped, from the image taken by the bird's-eye view camera 21, and calculates the three-dimensional position of the object 50. After confirming this position, the data processing unit of the robot 10 moves so as to approach the object 50.
- Step S02 shows a process in which the robot 10 approaching the object 50 moves the hand 30 to a position where the object 50 can be grasped. This control of the hand position is executed based on the analysis of the captured image of the hand camera 31 mounted on the hand 30.
- the data processing unit in the robot 10 detects the object 50, which is the object to be gripped, from the image taken by the hand camera 31, and calculates the three-dimensional position of the object 50. After confirming this position, the data processing unit of the robot 10 performs an adjustment process for setting the position and orientation of the hand 30 so that the object 50 can be gripped.
- Step S03 shows the gripping process after the adjustment process of the hand 30 in step S02.
- the movable parts on both sides of the hand 30 are operated to grip the object 50.
- FIG. 2 is a diagram showing a grasping sequence of the object 50 by the robot 10 described above with reference to FIG. 1 in more detailed processing units. The processes are executed in the order of steps S11 to S15 shown in FIG. Hereinafter, each processing step will be described in sequence.
- Step S11 First, in step S11, the target gripping position determination process is executed. First, the captured image of the bird's-eye view camera 21 attached to the head 20 of the robot 10 is analyzed, the object 50 which is the object to be gripped is detected, and the position of the object 50 is analyzed.
- Step S12 is an orbit planning step.
- the data processing unit of the robot 10 generates a movement path of the robot or a hand for approaching the calculated position of the object 50, that is, a trajectory plan, based on the position information of the object 50 which is the object to be gripped calculated in step S11. conduct.
- the position of the hand 30 after movement may be any position as long as the object to be gripped can be observed from the hand camera 31 attached to the hand 30.
- step S13 the robot or hand is moved according to the trajectory generated in step S12.
- the position of the hand 30 after movement is a position where the object to be gripped can be observed from the hand camera 31 attached to the hand 30.
- Step S14 Next, in step S14, the position and orientation of the hand 30 are finely adjusted. This control of the hand position is executed based on the analysis of the captured image of the hand camera 31 mounted on the hand 30.
- the data processing unit in the robot 10 detects the object 50, which is the object to be gripped, from the image taken by the hand camera 31, and calculates the position of the object 50. After confirming this position, the data processing unit of the robot 10 performs an adjustment process for setting the position and orientation of the hand 30 so that the object 50 can be gripped.
- Step S15 Finally, the movable parts on both sides of the hand 30 are operated to grip the object 50.
- the robot 10 first confirms the position of the object 50, which is the object to be gripped, based on the captured image of the bird's-eye view camera 21 mounted on the head 20. After that, after the hand 30 approaches the object 50, the captured image of the hand camera 31 attached to the hand 30 is analyzed, and the position and orientation of the hand 30 are finely adjusted to grip the object 50. ..
- FIG. 3 is a diagram illustrating a processing sequence when the robot 10 grips an object 50, which is an object to be gripped, as in FIG. 1 described above.
- the robot 10 operates in the order of steps S01 to S03 shown in the figure to grip the object 50.
- the difference from FIG. 1 is the shape of the object 50, which is the object to be gripped.
- the object 50 which is the object to be gripped has a spherical shape or a shape on a cylinder, but the object 50 which is the object to be gripped shown in FIG. 3 has a rectangular parallelepiped shape. ..
- FIG. 3 shows a step of confirming the position of the object 50 by the bird's-eye view camera 21.
- the data processing unit in the robot 10 detects the object 50, which is the object to be gripped, from the image taken by the bird's-eye view camera 21, and calculates the three-dimensional position of the object 50. After confirming this position, the data processing unit of the robot 10 moves so as to approach the object 50.
- Step S02 shows a process in which the robot 10 approaching the object 50 moves the hand 30 to a position where the object 50 can be grasped. This control of the hand position is executed based on the analysis of the captured image of the hand camera 31 mounted on the hand 30.
- the data processing unit in the robot 10 detects the object 50, which is the object to be gripped, from the image taken by the hand camera 31, and calculates the position of the object 50. After confirming this position, the data processing unit of the robot 10 performs an adjustment process for setting the position and orientation of the hand 30 so that the object 50 can be gripped.
- Step S03 shows the gripping process after the adjustment process of the hand 30 in step S02.
- the movable parts on both sides of the hand 30 are operated to try to grip the object 50.
- the object 50 which is the object to be gripped, has a rectangular parallelepiped shape.
- the object 50 When gripping an object 50 having such a shape, the object 50 must be set to a specific direction in which stable gripping processing is possible with respect to the object 50, as shown in FIG. 3 (S03). It may rotate in the hand 30 and the gripping process may fail.
- the object 50 is a container containing water
- a situation may occur in which water spills from the container.
- FIG. 4 is a diagram showing an example of control processing of the robot 10 for stably holding an object 50 having such a rectangular parallelepiped shape.
- FIG. 4 shows an object gripping processing sequence by the robot 10 when the object 50, which is the object to be gripped, has a rectangular parallelepiped shape, as in FIG.
- the robot control device of the present disclosure has a configuration that enables processing as shown in FIG. 4, that is, control for stably gripping an object having various shapes.
- FIG. 4 the configuration and processing of the robot control device of the present disclosure will be described.
- FIG. 5 is a block diagram showing a configuration example of the robot control device 100 of the present disclosure.
- the robot control device 100 of the present disclosure shown in FIG. 5 is configured inside the robot 10 shown in FIGS. 1 to 4, for example.
- the robot control device 100 of the present disclosure includes a data processing unit 110, a robot head 120, a robot hand unit 130, a robot moving unit 140, a communication unit 150, and an input / output unit (user terminal) 180. ..
- the input / output unit (user terminal) 180 may be inside the robot body, or may be configured as a user terminal which is an independent device different from the robot body.
- the data processing unit 110 may also be installed in the robot body or in an independent device different from the robot body.
- the data processing unit 110 includes a gripping object point cloud extraction unit 111, a gripping object inclusion box generation unit 112, a gripping position calculation unit 113, and a control information generation unit 114.
- the robot head 120 has a drive unit 121 and a bird's-eye view camera 122.
- the robot hand unit 130 has a drive unit 131 and a hand camera 132.
- the robot moving unit 140 has a driving unit 141 and a sensor 142.
- components shown in FIG. 5 indicate the main components applied to the processing of the present disclosure, and there are various other components inside the robot, for example, components such as a storage unit.
- the drive unit 121 of the robot head 120 drives the robot head 120 and controls the orientation of the robot head 120. By this control, the image shooting direction of the bird's-eye view camera 122 is controlled.
- the bird's-eye view camera 122 captures an image observed from the robot head 120.
- the bird's-eye view camera 122 is not limited to a camera for taking a visible light image, and may be a sensor capable of acquiring a distance image or the like. However, it is preferable to use a camera or a sensor that can obtain three-dimensional information. For example, a stereo camera, a sensor such as a ToF sensor or Lidar, or a combination of these sensors and a monocular camera may be used. It is preferable to use a camera or a sensor that can acquire data capable of analyzing the three-dimensional position of the object to be gripped.
- the bird's-eye view camera 122 may be a monocular camera when it has a configuration for performing such an analysis process.
- the SLAM (simultaneous localization and mapping) process is a process of executing self-location identification (localization) and environment map creation (mapping) in parallel.
- the drive unit 131 of the robot hand unit 130 controls the orientation of the robot hand and controls the gripping operation.
- the hand camera 132 is a camera that captures an image immediately before the robot hand unit 130.
- This hand camera 132 is not limited to a camera for taking a visible light image, but may be a sensor capable of acquiring a distance image or the like. However, it is preferable to use a camera or a sensor that can obtain three-dimensional information. For example, a stereo camera, a sensor such as a ToF sensor or Lidar, or a combination of these sensors and a monocular camera may be used. It is preferable to use a camera or a sensor that can acquire data capable of analyzing the three-dimensional position of the object to be gripped.
- the robot control device 100 has a configuration for analyzing the three-dimensional position of an object in a captured image by, for example, SLAM processing
- the hand camera 132 is also a monocular camera. But it may be.
- the drive unit 141 of the robot moving unit 140 is, for example, a drive unit that drives the legs and wheels of the robot, and performs drive processing for moving the robot body.
- the sensor 142 is a sensor for detecting an obstacle in the moving direction of the robot, and is composed of a camera, a ToF sensor, Lidar, and the like.
- the data processing unit 110 includes a gripping object point cloud extraction unit 111, a gripping object inclusion box generation unit 112, a gripping position calculation unit 113, and a control information generation unit 114.
- the gripping object point cloud extraction unit 111 executes an extraction process of a point cloud (three-dimensional point cloud) indicating a gripping target object included in the captured image of the bird's-eye view camera 122 and the captured image of the hand camera 132.
- the point group corresponds to the outer shape of the object to be gripped, that is, the point group (three-dimensional point group) showing the three-dimensional shape of the object. A specific processing example will be described later.
- the gripping object inclusion box generation unit 112 generates a “grasping object inclusion box” including the three-dimensional point group based on the three-dimensional point group of the gripping object created by the gripping object point group extraction unit 111. do.
- the "grasping object inclusion box” is a box that includes a point cloud showing the three-dimensional shape of the gripping object, and the shape is not particularly limited, such as a rectangular parallelepiped, a cylinder, a cone, or a torus.
- a rectangular parallelepiped inclusion solid bounding box
- the gripping position calculation unit 113 executes the following processing, for example. (1) Relative relationship calculation processing between the gripping object inclusion box (bounding box) of the gripping object in the bird's-eye view camera image and the target gripping position, (2) The gripping object inclusion box of the gripping object in the hand camera image by applying the relative relationship between the gripping object inclusion box (bounding box) of the gripping object in the bird's-eye view camera image and the target gripping position. Calculation processing of the corrected target gripping position, which is the relative position of the target gripping position with respect to (bounding box), Perform these processes.
- the target gripping position is, for example, a target gripping position set by the user while viewing an image taken by a bird's-eye view camera using an input / output unit (user terminal) 180. It is a gripping position where the object to be gripped can be stably gripped by the hand of the robot, and corresponds to, for example, the contact position between the hand and the object to be gripped during the gripping process of the object to be gripped by the hand.
- the target gripping positions are set at two locations on both sides of the object 50. Specific examples and details will be described later.
- the gripping position calculation unit 113 (A) The gripping object inclusion box (bounding box) of the gripping object in the bird's-eye view camera image, (B) Grip target object inclusion box (bounding box) of the grip target object in the image taken by the hand camera. By generating two gripping object inclusion boxes (bounding boxes) of the gripping object in the images taken by these different cameras and matching the relative positions of each inclusion box (bounding box) with the gripping position, the user can use them. It is calculated which position of the gripping object included in the captured image of the hand camera corresponds to the set target gripping position. This calculated position is defined as the correction target gripping position.
- the control information generation unit 114 generates control information for gripping the "correction target grip position" calculated by the grip position calculation unit 113 by the hand of the robot. This control information is output to the drive unit 141 of the robot moving unit 140 and the drive unit 131 of the robot hand unit 130.
- the drive unit 141 of the robot moving unit 140 and the drive unit 131 of the robot hand unit 130 have the control information generated by the control information generation unit 114, that is, the “correction target gripping” calculated by the gripping position calculation unit 113 by the robot hand.
- the drive process is executed according to the control information for grasping the "position”. This drive process enables the robot hand to grip the "correction target gripping position".
- This "corrected target gripping position” is a gripping position that matches the target gripping position specified by the user while looking at the bird's-eye view image, and is a gripping position set on the gripping target object included in the captured image of the hand camera.
- the object By gripping the correction target gripping position set on the gripping object included in the image captured by the hand camera with the robot's hand, the object can be gripped stably. It is premised that the target gripping position specified by the user while looking at the bird's-eye view image does not include [0] recognition error or machine error.
- FIG. 6 is a flowchart illustrating a calculation processing sequence of the gripping position (correction target gripping position) of the gripping target object executed by the data processing unit 110 of the robot control device 100 shown in FIG.
- the "correction target gripping position” is a gripping position capable of stably gripping the object to be gripped included in the captured image of the hand camera, and is designated by the user while looking at the bird's-eye view image. It is a gripping position that matches the target gripping position.
- the processing according to the flow shown in FIG. 6 is a control unit (data processing) composed of a CPU or the like having a program execution function of the information processing device according to the program stored in the storage unit (memory) of the robot control device 100. It is a process that can be executed under the control of the part).
- data processing composed of a CPU or the like having a program execution function of the information processing device according to the program stored in the storage unit (memory) of the robot control device 100. It is a process that can be executed under the control of the part).
- steps S111 to S114 are processes executed based on the captured image (including the distance image) of the bird's-eye view camera 122 of the robot head 120.
- steps S121 to S123 are processes executed based on the captured image (including the distance image) of the hand camera 132 of the robot hand unit 130.
- Step S111 First, the data processing unit 110 of the robot control device 100 inputs the designation information of the gripping target object using the bird's-eye view camera captured image and the designation information of the target gripping position.
- the designated information of the object to be gripped and the designated information of the target gripping position are input by the user while viewing the captured image of the bird's-eye view camera using, for example, the input / output unit (user terminal) 180.
- the input / output unit (user terminal) 180 A specific example of this process will be described with reference to FIG. 7.
- FIG. 7 shows the following figures. (1) Example of designation processing of the object to be gripped (2) Example of designation of the gripping position of the object to be gripped
- FIGS. 7 (1) and 7 (2) are images taken by the bird's-eye view camera 122 displayed on the display unit of the input / output unit (user terminal) 180. That is, the image taken by the bird's-eye view camera 122 is an image in which a rectangular parallelepiped object to be gripped is placed on a table. In this way, the user inputs the designation information of the object to be gripped and the designation information of the target gripping position while looking at the captured image of the bird's-eye view camera displayed on the input / output unit (user terminal) 180.
- FIG. 7 (1) is an input example of designated information of the object to be gripped.
- the user designates the gripping object by a method such as setting a rectangular area surrounding the rectangular parallelepiped gripping object.
- the user specifies a gripping position (target gripping position) for stably gripping the object to be gripped.
- a gripping position target gripping position
- a method of designating the gripping position as shown in the figure, there are a method of directly designating the gripping position on the surface of the object to be gripped and a method of setting an arrow indicating the gripping position.
- the gripping position of the surface of the object to be gripped having a rectangular parallelepiped shape is set to be substantially the center position of the two facing surfaces on both sides.
- one surface is in a position observable from the image taken by the bird's-eye view camera, and this point can directly specify the gripping position on the surface of the object to be gripped. ..
- one side is in a position that cannot be seen in the image taken by the bird's-eye view camera.
- the user sets an arrow indicating the gripping position as shown in the figure.
- a three-dimensional image of the object to be gripped is displayed on the display unit, and a marker on which the user can interactively set the position information is displayed on the display data, and the user moves the marker to directly set the gripping position.
- the method of specifying the target may be applied.
- the data processing unit 110 of the robot control device 100 determines this designated position as the target gripping position, and this position information (position relative to the object to be gripped, Alternatively, the three-dimensional position of the target gripping position) is stored in the storage unit. Further, when the user does not directly specify the gripping position on the surface of the object to be gripped and sets an arrow, the data processing unit 110 of the robot control device 100 determines the intersection of the arrow set by the user and the object to be gripped. Is calculated and this intersection is determined as the target gripping position, and this position information (relative position with respect to the gripping object or the three-dimensional position of the target gripping position) is stored in the storage unit.
- the gripping position is a point where the robot's hand can stably grip and lift the object to be gripped, and the number of gripping positions varies depending on the configuration of the robot's hand.
- the robot hand has a gripper type having two movable parts that can rotate left and right respectively.
- this gripper type hand configuration since the two movable parts grip the object to be gripped from the left and right, each of the two movable parts on the left and right sets two points in contact with the object to be gripped as gripping positions. do it.
- processing is performed such that three points where each finger contacts the object to be gripped are designated as gripping positions.
- the designated information of the object to be gripped and the designation of the target gripping position are specified.
- the data processing unit 110 of the robot control device 100 determines the gripping object and the target gripping position on the gripping object based on the input information.
- Step S112 Next, the process of step S112 of the flow of FIG. 6 will be described.
- step S112 a point cloud extraction process of the object to be gripped in the image taken by the bird's-eye view camera is executed.
- This process is a process executed by the gripping object point cloud extraction unit 111 of the data processing unit 110 of the robot control device 100.
- the gripping object point cloud extraction unit 111 executes a point cloud (three-dimensional point cloud) extraction process indicating the gripping target object based on the gripping target object selected from the captured image of the bird's-eye view camera 122.
- the point group corresponds to the outer shape of the object to be gripped, that is, the point group (three-dimensional point group) showing the three-dimensional shape of the object.
- FIG. 8 shows each of the following figures. (1) Grasping target object and gripping target object designation information, (2) Example of a point cloud (three-dimensional point cloud) of an object to be grasped
- FIG. 8 (1) shows a gripping target object selected from the captured image of the bird's-eye view camera 122 and a rectangular area as designated information of the gripping target object designated by the user.
- the gripping target object point cloud extraction unit 111 sets an object in a designated rectangular region as a gripping target object, and extracts a point cloud corresponding to the object.
- the gripping object point cloud extraction unit 111 needs to perform a process of removing a point cloud other than the point cloud related to the gripping target object included in the rectangular region designated by the user.
- the point group corresponding to the support plane (table) is removed.
- a clustering process for classifying the point cloud for each individual object is effective. Is.
- the point cloud is divided into clusters for each object, and then the point cloud consisting of the clusters containing the largest number of clusters in the rectangular area, which is the designated area of the object to be gripped set by the user, is used as the point cloud corresponding to the object to be gripped. Extract.
- Other point cloud clusters are point clouds of objects other than the object to be gripped, so they are deleted. By performing such a process, for example, a point cloud (three-dimensional point cloud) of the object to be gripped as shown in FIG. 8 (2) can be extracted.
- an existing method such as the RANSAC method can be applied to the detection process of the support plane such as the table on which the object to be gripped is placed. Further, for clustering, existing methods such as Euclidean Clustering can be applied.
- Step S113 Next, the process of step S113 of the flow of FIG. 6 will be described.
- step S113 a process of generating an inclusion box (bounding box) of the object to be gripped in the image captured by the bird's-eye view camera is performed.
- This process is a process executed by the gripping object inclusion box generation unit 112 of the data processing unit 110 of the robot control device 100.
- the gripping object inclusion box generation unit 112 generates a “grasping object inclusion box” including the three-dimensional point group based on the three-dimensional point group of the gripping object created by the gripping object point group extraction unit 111. do.
- the shape of the "grasping object inclusion box” is not particularly limited, such as a rectangular parallelepiped, a cylinder, a cone, and a torus, and can be various shapes. However, in this embodiment, an example in which a bounding box having a rectangular parallelepiped shape is used as the “object inclusion box to be gripped” will be described.
- step S113 describes the detailed sequence of the process of step S113, that is, the process of generating the inclusion box (bounding box) of the object to be gripped in the bird's-eye view camera captured image executed by the grasped object inclusion box generation unit 112. Will be described with reference to.
- Step S201 First, the gripping object inclusion box generation unit 112 inputs the following information in step S201.
- A Point cloud of objects to be gripped based on the bird's-eye view camera
- b Target gripping position
- the gripping target object point cloud based on the bird's-eye view camera is the point cloud data generated by the gripping target object point cloud extraction unit 111, and is input from the gripping target object point cloud extraction unit 111.
- the target gripping position is the target gripping position input by the user, and is the target gripping position input by the user in step S111 of the flow of FIG.
- step S302 the gripping object inclusion box generation unit 112 makes one side of the inclusion box (bounding box) parallel to the vertical plane (yz plane) perpendicular to the approach direction (x direction) of the target gripping position. Perform the setting process.
- FIG. 10 (1) shows an example of a coordinate system and input information in the inclusion box (bounding box) generation process.
- the approach direction in which the hand 30 approaches the object 50 is set to the x direction, and the movable part of the hand 30 is set to the target gripping position when the hand 30 is gripped.
- the y-axis is the moving direction for approaching. Further, it is a right-handed coordinate system in which the direction perpendicular to the x-axis and the y-axis is set as the z-axis.
- step S202 one side of the inclusion box (bounding box) is set parallel to the vertical plane (yz plane) perpendicular to the approach direction (x direction) of the target gripping position.
- FIG. 10 (2) A specific example is shown in FIG. 10 (2). As shown in FIG. 10 (2), a side parallel to the vertical plane (yz plane) perpendicular to the approach direction (x direction) of the target gripping position is set as one side of the inclusion box (bounding box).
- FIG. 11 (2a) is an example of generating an unfavorable bounding box
- FIG. 11 (2b) is an example of generating a preferable bounding box.
- the gripping object inclusion box generation unit 112 further sets one surface of the bounding box to face the approach direction (x direction) of the hand 30, as shown in FIG. 11 (2b). do. That is, the rotation (yaw angle) around the z-axis is adjusted for the bounding box having sides parallel to the yz plane so that one side of the bounding box faces the approach direction (x direction) of the hand 30. Set.
- Step S203 the gripping object inclusion box generation unit 112 determines whether or not the support plane of the gripping target object exists.
- the support plane is, for example, a plane such as a table on which an object to be gripped is placed.
- step S204 If there is a support plane for the object to be gripped, the process proceeds to step S204. On the other hand, if the support plane of the object to be gripped does not exist, the process proceeds to step S211.
- Step S204 If it is determined in step S203 that the support plane of the object to be gripped exists, the process proceeds to step S204.
- the gripping object inclusion box generation unit 112 sets one surface of the inclusion box (bounding box) on the support plane to generate the inclusion box (bounding box).
- step S204 will be described with reference to FIG.
- the example shown in FIG. 12 (3a) shows a state in which the object to be gripped is placed on a table which is a support plane.
- step S204 the gripping object inclusion box generation unit 112 sets one surface of the inclusion box (bounding box) on the support plane (table) as shown in FIG. 12 (3a).
- FIGS. 10 (2) and 11 (2b) (2) By connecting the sides set parallel to the vertical plane (yz plane) perpendicular to the x direction, an inclusion box (bounding box) is generated. As a result, for example, an inclusion box (bounding box) as shown in FIG. 13 (3b) is generated.
- Step S211 On the other hand, if it is determined in step S203 that the support plane of the object to be gripped does not exist, the process proceeds to step S211.
- the gripping object inclusion box generation unit 112 projects the gripping object point group on a vertical plane (zx plane) parallel to the approach direction (y direction) of the target gripping position, and includes the projection plane. It is a constituent surface of (bounding box).
- the gripping object inclusion box generation unit 112 projects the gripping object point group onto a vertical plane (zx plane) parallel to the approach direction (y direction) of the target gripping position.
- This projection plane is used as a constituent plane of the inclusion box (bounding box).
- the projection plane generated by this projection process is the “projection plane of the object point cloud to be gripped on the xz plane” shown in FIG. 14 (4).
- step S212 the gripping object inclusion box generation unit 112 executes a two-dimensional principal component analysis on the projected point cloud to determine the posture of the inclusion box (bounding box) around the pitch axis (y-axis). do.
- the gripping object point group projected onto the xz plane is a point group that originally spreads in the three-dimensional space of the gripping object having a three-dimensional shape and is projected onto the two-dimensional plane (xz plane).
- a two-dimensional principal component analysis can be performed on a group of points developed on this two-dimensional plane to determine an inclusion box (bounding box) having a shape that includes a gripping object having a three-dimensional shape. .. Specifically, the posture around the pitch axis (y-axis) of the inclusion box (bounding box) is determined by the two-dimensional principal component analysis for the projection point group.
- an inclusion box as shown in FIG. 14 (5) can be generated.
- the three-axis principal component analysis may be directly applied.
- the inclusion box (bounding box) is generated so that the three-dimensional position of the target gripping position is included in the inclusion box (bounding box). A more accurate inclusion box (bounding box) generation process is realized.
- step S113 of the flow shown in FIG. 6, that is, the process of generating the inclusion box (bounding box) of the grip target object in the bird's-eye view camera captured image by the grip target object inclusion box generation unit 112 have been described. ..
- the gripping object inclusion box generation unit 112 includes the three-dimensional point group of the gripping object based on the three-dimensional point group of the gripping object generated by the gripping object point group extraction unit 111. Generate a "grabbing object inclusion box (bounding box)".
- step S114 a process of calculating the relative positional relationship between the inclusion box (bounding box) of the object to be gripped in the image captured by the bird's-eye view camera and the target gripping position is executed.
- This process is a process executed by the gripping position calculation unit 113 of the data processing unit 110 of the robot control device 100.
- the gripping position calculation unit 113 executes a calculation process of the relative positional relationship between the gripping target object inclusion box (bounding box) of the gripping target object in the bird's-eye view camera image and the target gripping position.
- the target gripping position is a gripping position set by the user while viewing the image taken by the bird's-eye view camera using, for example, the input / output unit (user terminal) 180, and the object to be gripped is held by the robot's hand. It is a gripping position determined by the user to be able to grip stably.
- FIG. 15 shows a bird's-eye view camera reference inclusion box (bounding box) 201 including an object 50 which is an object to be grasped and an object 50 generated by the object inclusion box generation unit 112 to be grasped in step S113 of the flow shown in FIG. Is shown.
- bounding box bounding box
- the bird's-eye view camera reference inclusion box (bounding box) 201 is an inclusion box (bounding box) generated based on the captured image of the bird's-eye view camera 122.
- the gripping position calculation unit 113 generates a coordinate system (overhead camera reference inclusion box coordinate system) with one vertex of the bird's-eye view camera reference inclusion box (bounding box) 201 as the origin.
- the bird's-eye camera reference inclusion box coordinate system has a rectangular parallelepiped shape with one vertex of the inclusion box (bounding box) 201 as the origin (O (bb1)). This is a coordinate system in which each side of 201 is set on the X, Y, and Z axes.
- the bird's-eye view camera reference inclusion box (bounding box) 201 includes an origin (O (bb1)) on the bird's-eye view camera reference inclusion box coordinate system, a point on the X-axis (X (bb1)), and a point on the Y-axis (Y). (Bb1)), a point on the Z axis (Z (bb1)), and a rectangular parallelepiped having these four points as vertices.
- FIG. 15 further shows the three-dimensional position coordinates of the target gripping position in the bird's-eye view camera reference inclusion box coordinate system. The following two points are shown in FIG. Target gripping position L ((X (L1), Y (L1), Z (L1)), 211L Target gripping position R ((X (R1), Y (R1), Z (R1)), 211R These two points.
- the target gripping position is the target gripping position set by the user while viewing the captured image of the bird's-eye view camera using, for example, the input / output unit (user terminal) 180.
- the gripping position calculation unit 113 calculates the target gripping position set by the user as a three-dimensional position on the coordinate system (overhead camera reference inclusion box coordinate system) shown in FIG. That is, it is the three-dimensional position coordinates of the following two points shown in FIG.
- Target gripping position L ((X (L1), Y (L1), Z (L1)), 211L
- Target gripping position R ((X (R1), Y (R1), Z (R1)), 211R
- the coordinates of this target gripping position are coordinates in which one vertex of the inclusion box (bounding box) is set as the origin and each side of the bird's-eye view camera reference inclusion box (bounding box) 201 having a rectangular parallelepiped shape is set on the X, Y, and Z axes. Coordinates in the system. Therefore, the coordinates of the target gripping position shown in FIG. 15 are the coordinates indicating the relative positional relationship between the inclusion box (bounding box) of the gripping object in the bird's-eye view camera image and the target gripping position.
- the gripping position calculation unit 113 calculates the relative positional relationship between the gripping target object inclusion box (bounding box) of the gripping target object in the bird's-eye view camera captured image and the target gripping position.
- steps S121 to S123 shown in FIG. 6 are processes executed based on the captured image of the hand camera 132 of the robot hand unit 130.
- step S121 the point cloud extraction process of the object to be grasped in the image captured by the hand camera is executed.
- This process is a process executed by the gripping object point cloud extraction unit 111 of the data processing unit 110 of the robot control device 100.
- the gripping object point cloud extraction unit 111 extracts a point cloud (three-dimensional point cloud) indicating the gripping target object included in the captured image of the hand camera 132.
- the point cloud corresponds to the outer shape of the object to be gripped, that is, the point cloud (three-dimensional point cloud) showing the three-dimensional shape of the object.
- a point cloud (three-dimensional point cloud) of the object to be gripped as shown in FIG. 8 (2) is generated.
- the point cloud extraction using the rectangular area designated by the user-designated object to be gripped was performed.
- the captured image of the hand camera 132 is displayed on the input / output unit (user terminal) 180, and the user is allowed to specify the grip target object to set a rectangular area.
- the same processing may be performed, but it is also possible to perform the same processing without specifying the rectangular area by the user. That is, the process of extracting the object to be gripped from the image captured by the hand camera 132 is autonomously executed with reference to the shape and size of the inclusion box (bounding box) generated based on the image captured by the bird's-eye view camera 122. Is possible.
- the Min-Cut Based Segmentation process known as a method for extracting a specific object from an image is applied to execute a gripping object extraction process. That is, by applying a method such as setting the seed point and size to the point cloud and size included in the inclusion box (bounding box) of the bird's-eye view camera standard by the Min-Cut Based Segmentation process and extracting the foreground.
- the process of extracting the object to be gripped from the captured image of the hand camera 132 is executed.
- processing such as detection processing of a support plane such as a table on which the object to be gripped is placed and processing such as clustering may be added.
- an existing method such as a RANSAC method can be applied to the detection process of a support plane such as a table on which an object to be gripped is placed.
- existing methods such as Euclidean Clustering can be applied.
- the parameters are changed again and the extraction is performed. It is preferable to execute a process such as changing the point cloud to be used.
- a process such as changing the point cloud to be used.
- the point cloud (three-dimensional point cloud) of the gripping object as shown in FIG. 8 (2) is represented by the point cloud (three-dimensional point cloud) indicating the gripping object included in the captured image of the hand camera 132. It can be extracted as a three-dimensional point cloud).
- step S122 Next, the process of step S122 of the flow of FIG. 6 will be described.
- step S122 a process of generating an inclusion box (bounding box) of the object to be gripped in the image captured by the hand camera is performed.
- This process is a process executed by the gripping object inclusion box generation unit 112 of the data processing unit 110 of the robot control device 100.
- the gripping object inclusion box generation unit 112 includes the three-dimensional point group based on the three-dimensional point group of the gripping object in the captured image of the hand camera 132 generated by the gripping object point group extraction unit 111. Generate a "grasping object inclusion box".
- the inclusion box generated by the gripping object inclusion box generation unit 112, that is, the inclusion box containing the gripping object of the hand camera captured image, is an inclusion box having the same shape as the inclusion box previously generated in step S113.
- the "grasping object inclusion box” is not particularly limited in shape such as a rectangular parallelepiped, a cylinder, a cone, and a torus, and can have various shapes.
- the "object inclusion box” is a bounding box having a rectangular parallelepiped shape, and also in this step S122, a bounding box having a rectangular parallelepiped shape is generated.
- step S122 that is, the process of generating the inclusion box (bounding box) of the object to be gripped in the hand-held camera captured image executed by the gripping object inclusion box generation unit 112. I will explain.
- Step S301 First, the gripping object inclusion box generation unit 112 inputs the following information in step S301.
- A Point cloud to be grasped based on the hand camera
- Inclusion box (bounding box) based on the bird's-eye view camera
- C Target gripping position
- the grip target object point cloud based on the hand camera is point cloud data generated by the grip target object point cloud extraction unit 111 based on the captured image of the hand camera in step S121, and is the point cloud data generated by the grip target object point cloud extraction unit 111.
- Enter from. (B) The inclusion box (bounding box) based on the bird's-eye view camera is the inclusion box (bounding box) generated in step S113 of the flow of FIG. 6, and is input from the gripping object point inclusion box generation unit 112.
- the target gripping position is the target gripping position input by the user in step S111 of the flow of FIG.
- step S302 the gripping object inclusion box generation unit 112 makes one side of the inclusion box (bounding box) parallel to the vertical plane (yz plane) perpendicular to the approach direction (x direction) of the target gripping position. Perform the setting process.
- step S302 one side of the inclusion box (bounding box) is set parallel to the vertical plane (yz plane) perpendicular to the approach direction (x direction) of the target gripping position.
- a side parallel to the vertical plane (yz plane) perpendicular to the approach direction (x direction) of the target gripping position is set as one side of the inclusion box (bounding box). do.
- FIG. 11 (2a) is an example of generating an unfavorable bounding box
- FIG. 11 (2b) is an example of generating a preferable bounding box.
- the gripping object inclusion box generation unit 112 further sets one surface of the bounding box to face the approach direction (x direction) of the hand 30, as shown in FIG. 11 (2b). do. That is, the rotation (yaw angle) around the z-axis is adjusted for the bounding box having sides parallel to the yz plane so that one side of the bounding box faces the approach direction (x direction) of the hand 30. Set.
- Step S303 the gripping object inclusion box generation unit 112 determines whether or not the support plane of the gripping target object exists.
- the support plane is, for example, a plane such as a table on which an object to be gripped is placed.
- step S304 If there is a support plane for the object to be gripped, the process proceeds to step S304. On the other hand, if the support plane of the object to be gripped does not exist, the process proceeds to step S311.
- Step S304 If it is determined in step S303 that the support plane of the object to be gripped exists, the process proceeds to step S304.
- step S304 the gripping object inclusion box generation unit 112 sets one surface of the inclusion box (bounding box) on the support plane to generate the inclusion box (bounding box).
- step S304 is the same as the process of step S204 of the flow of FIG. 9 described above. That is, it is the process described above with reference to FIGS. 12 and 13.
- the example shown in FIG. 12 (3a) shows a state in which the object to be gripped is placed on a table which is a support plane.
- step S304 the gripping object inclusion box generation unit 112 sets one surface of the inclusion box (bounding box) on the support plane (table) as shown in FIG. 12 (3a).
- step S302 the approach direction of the target gripping position described above with reference to the surface set on the support plane (table) and the side previously generated in step S302, that is, FIGS. 10 (2) and 11 (2b) (2).
- an inclusion box is generated.
- an inclusion box as shown in FIG. 13 (3b) is generated.
- Step S311 On the other hand, if it is determined in step S303 that the support plane of the object to be gripped does not exist, the process proceeds to step S311.
- the gripping object inclusion box generation unit 112 uses the inclusion box (bounding box) having the same posture as the inclusion box (bounding box) based on the image captured by the bird's-eye view camera 122 that has already been generated into the image captured by the hand camera 132. Set as a based inclusion box (bounding box).
- the inclusion box (bounding box) having the same posture as the inclusion box (bounding box) based on the image taken by the bird's-eye view camera 122 generated in step S113 of the flow shown in FIG. 6 is the inclusion box (bounding) based on the image taken by the hand camera 132. Box).
- step S123 the inclusion box (bounding box) of the object to be gripped in the image captured by the hand camera is applied by applying the relative positional relationship between the inclusion box (bounding box) of the object to be gripped in the bird's-eye view camera image and the target grip position.
- the calculation process of the corrected target gripping position which is the relative position of the target gripping position with respect to the target, is executed.
- the relative position of the target gripping position of the gripping object with respect to the inclusion box (bounding box) of the gripping object in the bird's-eye view camera image is calculated, and the hand camera in the hand camera's shot image is based on the calculated relative position.
- the target gripping position with respect to the reference inclusion box is calculated, and the calculated position is set as the correction target gripping position of the gripping object included in the captured image of the hand camera.
- This process is a process executed by the gripping position calculation unit 113 of the data processing unit 110 of the robot control device 100 shown in FIG.
- the gripping position calculation unit 113 applies the relative positional relationship between the inclusion box (bounding box) of the object to be gripped in the bird's-eye view camera image and the target grip position, and the inclusion box (bounding box) of the object to be gripped in the hand camera image.
- the calculation process of the corrected target gripping position which is the relative position of the target gripping position with respect to the bounding box), is executed.
- the target gripping position is a gripping position set by the user while viewing the image taken by the bird's-eye view camera using, for example, the input / output unit (user terminal) 180, and the object to be gripped is held by the robot's hand. It is a gripping position determined by the user to be able to grip stably.
- step 114 of the flow shown in FIG. 6, which is a process based on the image taken by the bird's-eye view camera 122 described above with reference to FIG. 15, the inclusion box (bounding box) and the target of the object to be gripped in the image taken by the bird's-eye view camera.
- the relative position to the gripping position is calculated.
- step S123 the target gripping position in the bird's-eye view camera image is set to the hand camera image by using the relative positional relationship between the inclusion box (bounding box) of the object to be gripped in the bird's-eye view camera image and the target gripping position. Calculate the position with respect to the inclusion box (bounding box) of the object to be gripped inside.
- the calculation process of the correction target gripping position which is the relative position of the target gripping position with respect to the inclusion box (bounding box) of the object to be gripped in the image captured by the hand camera, is executed.
- the gripping position calculation unit 113 in step S123 (A) A gripping object inclusion box (bounding box) of the gripping object in the captured image of the bird's-eye view camera 122, (B) Grip target object inclusion box (bounding box) of the grip target object in the captured image of the hand camera 132.
- a gripping object inclusion box (bounding box) of the gripping object in the captured image of the bird's-eye view camera 122 (B) Grip target object inclusion box (bounding box) of the grip target object in the captured image of the hand camera 132.
- the correction target gripping position in the captured image of the hand camera 132 set by this process is a position corresponding to the target gripping position set by the user while looking at the captured image of the bird's-eye view camera 122. Therefore, the robot control device 100 observes the captured image of the hand camera 132 and hands at the corrected target gripping position which is a relative position of the target gripping position with respect to the inclusion box (bounding box) of the gripping object in the hand camera captured image. By abutting the gripper of the object 50 and performing the gripping process of the object 50, the object 50 can be stably gripped.
- step S123 will be described with reference to FIG. FIG. 17 shows the following two figures. (1) Analysis data based on the bird's-eye view camera (2) Analysis data based on the hand camera
- the analysis data based on the bird's-eye view camera is data generated based on the captured image of the bird's-eye view camera 122. That is, it is the data generated by the processing of steps S111 to S114 of the flow shown in FIG. 6, and corresponds to the data described above with reference to FIG.
- the analysis data based on the hand camera is data generated based on the captured image of the hand camera 132. That is, it is the data generated by the processing of steps S121 to S123 of the flow shown in FIG.
- step S113 of the flow shown in FIG. 6 the bird's-eye view camera reference inclusion box (bounding box) 201, which includes the object 50 generated by the gripping object inclusion box generation unit 112, (1c) In step S111 of the flow shown in FIG. 6, the target gripping positions 211L and 211R set by the user based on the captured image of the bird's-eye view camera 122. Each of these data is shown.
- the bird's-eye view camera reference inclusion box (bounding box) 201 having a rectangular parallelepiped shape has one vertex of the inclusion box (bounding box) 201 as the origin (O (bb1)). This is a coordinate system in which each side is set on the X, Y, and Z axes.
- the bird's-eye view camera reference inclusion box (bounding box) 201 includes the origin (O (bb1)) of the bird's-eye view camera reference inclusion box coordinate system, a point on the X-axis (X (bb1)), and a point on the Y-axis (Y (Y ()). It is defined as a rectangular parallelepiped having bb1)), a point on the Z axis (Z (bb1)), and these four points as vertices.
- FIG. 17 (1) further shows the three-dimensional position coordinates of the target gripping position in the bird's-eye view camera reference inclusion box coordinate system. The following two points are shown in FIG. 17 (1).
- Target gripping position L ((X (L1), Y (L1), Z (L1)), 211L
- Target gripping position R ((X (R1), Y (R1), Z (R1)), 211R
- these two points are gripping positions set by the user while viewing the captured image of the bird's-eye view camera using, for example, the input / output unit (user terminal) 180.
- the coordinates of the target gripping position shown in FIG. 17 (1) are the inclusion box (bounding box) of the gripping object and the target gripping position in the image taken by the bird's-eye view camera. These are the coordinates indicating the relative positional relationship of.
- step S123 of the flow of FIG. 6 the gripping position calculation unit 113 executes the following processing. That is, the target for the inclusion box (bounding box) of the gripping object in the hand camera image by applying the relative positional relationship between the inclusion box (bounding box) of the gripping object in the bird's-eye view camera image and the target gripping position.
- the calculation process of the correction target gripping position which is the relative position of the gripping position, is executed.
- the relative position of the target gripping position of the gripping target object with respect to the inclusion box (bounding box) of the gripping target object in the bird's-eye view camera image is calculated, and based on the calculated relative position, the hand camera captured image.
- the target gripping position with respect to the hand camera reference inclusion box is calculated, and the calculated position is set as the correction target gripping position of the gripping object included in the captured image of the hand camera.
- the correction target gripping position is the correction target gripping position shown in FIG. 17 (2). That is, the correction target gripping position shown in FIG. 17 (2).
- Correction target gripping position L ((X (L2), Y (L2), Z (L2)), 231L
- Correction target gripping position R ((X (R2), Y (R2), Z (R2)), 231R
- the hand camera reference inclusion box coordinate system has one vertex of the hand camera reference inclusion box (bounding box) 221 as the origin (O (bb2)), and each side of the hand camera reference inclusion box (bounding box) 221 having a rectangular parallelepiped shape. Is a coordinate system in which is set on the X, Y, and Z axes.
- the hand camera reference inclusion box (bounding box) 221 has an origin (O (bb1)) on the hand camera reference inclusion box coordinate system, a point on the X axis (X (bb1)), and a point on the Y axis (Y). (Bb1)), a point on the Z axis (Z (bb1)), and a rectangular parallelepiped having these four points as vertices.
- step S123 of the flow of FIG. 6 the gripping position calculation unit 113 applies the relative positional relationship between the inclusion box (bounding box) of the object to be gripped in the bird's-eye view camera captured image and the target gripping position, and the hand camera captured image.
- the calculation process of the correction target gripping position which is the relative position of the target gripping position with respect to the inclusion box (bounding box) of the object to be gripped in the inside, is executed.
- correction target gripping position L ((X (L2), Y (L2), Z (L2)), 231L shown in FIG. 17 (2)).
- Correction target gripping position R ((X (R2), Y (R2), Z (R2)), 231R
- the correction target gripping position calculation process executed by the gripping position calculation unit 113 is executed as follows. First, the target gripping position in the bird's-eye camera reference inclusion box coordinate system included in the analysis data of the bird's-eye camera reference shown in FIG. 17 (1), that is, Target gripping position L ((X (L1), Y (L1), Z (L1)), 211L Target gripping position R ((X (R1), Y (R1), Z (R1)), 211R A relational expression is generated in which the coordinates of these two points are shown using the vertex data (X (bb1), Y (bb1), Z (bb1)) of the bird's-eye view camera reference inclusion box (bounding box) 201.
- Two such relational expressions (relational expression 1) and (relational expression 2) are generated.
- lx, ly, lz shown in (relational expression 1) are the coordinates ((X (L1)), Y (L1) of the target gripping position L with respect to the length of each side of the bird's-eye view camera reference inclusion box (bounding box) 201. ), Z (L1)) xyz is a coefficient indicating the ratio of each coordinate position.
- rx, ry, and rz shown in (relational expression 2) are the coordinates of the target gripping position R with respect to the length of each side of the bird's-eye view camera reference inclusion box (bounding box) 201 ((X (R1), Y (). It is a coefficient indicating the ratio of each xyz coordinate position of R1) and Z (R1)).
- the coefficients lx, ly, liz and the coefficients rx, ry, rg are calculated based on these two relational expressions (relational expression 1) and (relational expression 2).
- correction target gripping positions L and R are calculated using the following calculation formulas (calculation formula 1) and (calculation formula 2).
- the correction target gripping positions L and R are calculated by these two calculation formulas (calculation formula 1) and (calculation formula 2).
- the gripping position calculation unit 113 performs the correction target gripping position which is a relative position of the target gripping position with respect to the inclusion box (bounding box) of the gripping target object in the image captured by the hand camera in step S123 of the flow of FIG. Executes the calculation process of.
- the correction target gripping position in the captured image of the hand camera 132 set by this process is a position corresponding to the target gripping position set by the user while looking at the captured image of the bird's-eye view camera 122. Therefore, the robot control device 100 observes the captured image of the hand camera 132 and hands at the corrected target gripping position which is a relative position of the target gripping position with respect to the inclusion box (bounding box) of the gripping object in the hand camera captured image. By abutting the gripper of the object 50 and performing the gripping process of the object 50, the object 50 can be stably gripped.
- the robot control device 100 of the present disclosure is (A) The gripping object inclusion box (bounding box) of the gripping object in the bird's-eye view camera image, (B) Grip target object inclusion box (bounding box) of the grip target object in the image taken by the hand camera.
- A The gripping object inclusion box (bounding box) of the gripping object in the bird's-eye view camera image
- B Grip target object inclusion box (bounding box) of the grip target object in the image taken by the hand camera.
- the control information generation unit 114 generates control information for gripping the "correction target grip position" calculated by the grip position calculation unit 113 by the hand of the robot. This control information is output to the drive unit 141 of the robot moving unit 140 and the drive unit 131 of the robot hand unit 130.
- the drive unit 141 of the robot moving unit 140 and the drive unit 131 of the robot hand unit 130 have the control information generated by the control information generation unit 114, that is, the “correction target gripping” calculated by the gripping position calculation unit 113 by the robot hand.
- the drive process is executed according to the control information for grasping the "position”.
- This drive process enables the robot hand to grip the "correction target gripping position".
- This "corrected target gripping position” is a gripping position that matches the target gripping position specified by the user while looking at the bird's-eye view image, and is a gripping position set on the gripping target object included in the captured image of the hand camera.
- steps S111 to S114 is a captured image (also a distance image) of the bird's-eye view camera 122 of the robot head 120. It is a process executed based on (including).
- steps S121 to S123 are processes executed based on the captured image (including the distance image) of the hand camera 132 of the robot hand unit 130.
- steps S111 to S114 executed based on the captured image (including the distance image) of the bird's-eye view camera 122 and the step S121 executed based on the captured image (including the distance image) of the hand camera 132 are executed.
- the processing of step S122 can be executed in parallel. Further, after the processing of steps S111 to S114 is completed, the processing of steps S121 to S122 may be executed.
- step S123 is executed based on the processing of steps S111 to S114 executed based on the captured image (including the distance image) of the bird's-eye view camera 122 and the captured image (including the distance image) of the hand camera 132. This is executed after the processing of steps S121 to S122 is completed.
- the processing procedure it is preferable to set the processing procedure so that the object 50, which is the object to be gripped, can be reliably observed in the captured images of the bird's-eye view camera 122 and the hand camera 132.
- a portion such as an arm or a hand obstructs the field of view of the bird's-eye view camera 122, and it is possible to avoid processing in a state where occlusion occurs in the object to be gripped.
- step S111 of the flow shown in FIG. 6 the processing of inputting the designation information of the object to be gripped using the image taken by the bird's-eye view camera and the designation information of the target gripping position is performed. I was going.
- the user can specify the designated object to be gripped and the target gripping position while viewing the captured image of the bird's-eye view camera using the input / output unit (user terminal) 180. I was entering information.
- the user may perform a process of selecting a rectangle corresponding to the object. Further, a method of extracting an object in pixel units by semantic segmentation and selecting the object by the user may be applied. Further, when the target gripping position has already been determined, the process of automatically selecting the object closest to the target gripping position may be performed. Further, as for the method of determining the target gripping position, the user may not directly determine the position and posture, but may specify only the object to be gripped, perform a gripping plan, and autonomously determine the target gripping position.
- step S112 of the flow shown in FIG. 6 a process of executing a point cloud extraction process of the object to be gripped in the image taken by the bird's-eye view camera was performed.
- this process is executed as a process of extracting a group of object points corresponding to a rectangular area specified by the user. Similar to the process of designating the object to be gripped in step S111, this point cloud extraction process may also be executed by applying foreground extraction such as Min-cut based segmentation.
- the foreground extraction is performed based on the roughly determined size of the gripped object, which is determined in advance as one point representing the point cloud of the object specified by the user or the point corresponding to the center of the rectangular area. By doing so, it is possible to roughly remove irrelevant point clouds.
- the inclusion box (bounding box) set for each of the bird's-eye view camera image and the hand camera image is used for all points. Calculate the relative position of. By such processing, it is possible to calculate the corrected target gripping position corresponding to the target gripping position corresponding to the contact point of each finger of the five-finger hand.
- step S123 the inclusion box (bounding) of the gripping object in the hand camera captured image is applied by applying the relative positional relationship between the inclusion box (bounding box) of the gripping object in the bird's-eye view camera image and the target gripping position.
- the calculation process of the corrected target gripping position which is the relative position of the target gripping position with respect to the box), was executed.
- the inclusion box is not calculated for the component. It may be configured to perform the process of calculating only the components having similar shapes of the bounding box). For example, if it is desired to correct the deviation in the y direction in order to put the object in the hand so that the gripper can pinch the object, only the y component may be calculated. Further, when it is desired to reflect the user's instruction to hold the object to be gripped as high as possible, a process such as preferentially calculating the z component may be performed.
- the robot control device described in the above-described embodiment can be configured as a device different from the robot itself, or can be configured as a device in the robot.
- the robot control device can also be realized by using an information processing device such as a PC.
- An example of a configuration of an information processing device constituting the robot control device of the present disclosure will be described with reference to FIG.
- the CPU (Central Processing Unit) 301 functions as a control unit or a data processing unit that executes various processes according to a program stored in the ROM (Read Only Memory) 302 or the storage unit 308. For example, the process according to the sequence described in the above-described embodiment is executed.
- the RAM (Random Access Memory) 303 stores programs and data executed by the CPU 301. These CPU 301, ROM 302, and RAM 303 are connected to each other by a bus 304.
- the CPU 301 is connected to the input / output interface 305 via the bus 304, and the input / output interface 305 is connected to an input unit 306 consisting of various switches, a keyboard, a mouse, a microphone, a sensor, etc., and an output unit 307 consisting of a display, a speaker, and the like. Has been done.
- the CPU 301 executes various processes in response to commands input from the input unit 306, and outputs the process results to, for example, the output unit 307.
- the storage unit 308 connected to the input / output interface 305 is composed of, for example, a hard disk or the like, and stores programs executed by the CPU 301 and various data.
- the communication unit 309 functions as a transmission / reception unit for Wi-Fi communication, Bluetooth (registered trademark) (BT) communication, and other data communication via a network such as the Internet or a local area network, and communicates with an external device.
- Wi-Fi Wi-Fi
- BT registered trademark
- the drive 310 connected to the input / output interface 305 drives a removable media 311 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory such as a memory card, and records or reads data.
- a removable media 311 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory such as a memory card
- the technology disclosed in the present specification can have the following configurations.
- a containment box generator that generates a second camera reference inclusion box that includes The relative position of the target gripping position of the gripping object with respect to the first camera reference inclusion box in the captured image of the first camera is calculated, and based on the calculated relative position, in the captured image of the second camera.
- a gripping position calculation unit that calculates the target gripping position with respect to the second camera reference inclusion box and sets the calculated position to the correction target gripping position of the gripping target object included in the captured image of the second camera.
- a robot control device having a control information generation unit that generates control information for gripping the correction target gripping position in the captured image of the second camera with the robot's hand.
- the first camera is a bird's-eye view camera that captures a bird's-eye view image.
- the robot control device according to (1), wherein the second camera is a hand camera that captures an image from the hand that performs gripping processing of the gripping object or a position close to the hand.
- the target gripping position is The robot control device according to any one of (1) to (3), which is a gripping position designated by a user by looking at an image of a display unit displaying an image captured by the first camera.
- the target gripping position is The robot control device according to (4), which is a gripping position determined by a user who has seen an image of a display unit displaying an image captured by the first camera to be a position where the gripping object can be stably gripped.
- the robot control device further includes The description in any of (1) to (5), which has a point cloud extraction unit for executing a point cloud extraction process indicating the image captured by the first camera and the three-dimensional point cloud indicating the object to be grasped included in the image captured by the second camera. Robot control device.
- the inclusion box generation unit is The robot control device according to (6), which generates an inclusion box containing a three-dimensional point cloud generated by the point cloud extraction unit.
- the inclusion box generation unit is The robot control device according to (6) or (7), which generates a bounding box which is a rectangular parallelepiped-shaped inclusion box containing the three-dimensional point cloud generated by the point cloud extraction unit.
- the inclusion box generation unit is The first camera reference inclusion box in the image captured by the first camera and the second camera reference inclusion box in the image captured by the second camera are generated as inclusion boxes having the same shape (1) to (8).
- the robot control device according to any one.
- the inclusion box generation unit is The robot control device according to any one of (1) to (9), which generates an inclusion box having a side parallel to a vertical plane perpendicular to the approach direction of the robot's hand to the object to be grasped.
- the inclusion box generation unit is The robot control device according to any one of (1) to (10), which generates an inclusion box having the support plane as a constituent plane when there is a support plane that supports the object to be gripped.
- the inclusion box generation unit is When there is no support plane that supports the gripping object, a inclusion box having a projection plane generated by projecting the gripping object onto a vertical surface parallel to the approach direction of the robot's hand is generated.
- the robot control device according to any one of (1) to (11).
- the inclusion box generation unit includes the first camera reference inclusion box including the object to be gripped included in the captured image of the first camera mounted on the robot, and the inclusion box included in the captured image of the second camera mounted on the robot.
- a inclusion box generation step that generates a second camera reference inclusion box that includes the object to be gripped
- the gripping position calculation unit calculates the relative position of the target gripping position of the gripping object with respect to the first camera reference inclusion box in the captured image of the first camera, and based on the calculated relative position, the second A gripping position calculation step of calculating the target gripping position with respect to the second camera reference inclusion box in the captured image of the camera and setting the calculated position to the correction target gripping position of the gripping target object included in the captured image of the second camera.
- the inclusion box generation unit includes the first camera reference inclusion box including the object to be gripped included in the image captured by the first camera mounted on the robot, and the inclusion box included in the image captured by the second camera mounted on the robot.
- a inclusion box generation step that generates a second camera reference inclusion box that includes the object to be gripped
- the gripping position calculation unit calculates the relative position of the target gripping position of the gripping object with respect to the first camera reference inclusion box in the captured image of the first camera, and based on the calculated relative position, the second A gripping position calculation step of calculating the target gripping position with respect to the second camera reference inclusion box in the captured image of the camera and setting the calculated position to the correction target gripping position of the gripping target object included in the captured image of the second camera.
- the series of processes described in the specification can be executed by hardware, software, or a composite configuration of both.
- the program can be pre-recorded on a recording medium.
- the program can be received via a network such as LAN (Local Area Network) or the Internet and installed on a recording medium such as a built-in hard disk.
- the various processes described in the specification are not only executed in chronological order according to the description, but may also be executed in parallel or individually as required by the processing capacity of the device that executes the processes.
- the system is a logical set configuration of a plurality of devices, and the devices having each configuration are not limited to those in the same housing.
- an apparatus and a method capable of reliably executing the gripping process of an object by a robot are realized.
- a bird's-eye view camera reference inclusion box containing a gripping object included in a captured image of a bird's-eye view camera mounted on the robot and a gripping target object included in a captured image of a hand camera mounted on the robot.
- the relative position of the target gripping position of the object to be gripped with respect to the bird's-eye view camera reference inclusion box in the image taken by the bird's-eye camera is calculated, and based on the calculated relative position, with respect to the hand camera reference inclusion box in the image taken by the handheld camera.
- the target gripping position is calculated, and the calculated position is set to the correction target gripping position of the gripping target object included in the captured image of the hand camera.
- the control information for gripping the correction target gripping position in the captured image of the hand camera with the robot's hand is generated, and the gripping process is executed by the robot.
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Orthopedic Medicine & Surgery (AREA)
- Multimedia (AREA)
- Manipulator (AREA)
Abstract
ロボットによる物体の把持処理を確実に実行することを可能とした装置、方法を提供する。ロボットに装着された俯瞰カメラの撮影画像に含まれる把持対象物体を包含する俯瞰カメラ基準包含ボックスと、ロボットに装着された手先カメラの撮影画像に含まれる把持対象物体を包含する手先カメラ基準包含ボックスを生成する。さらに、俯瞰カメラの撮影画像内の俯瞰カメラ基準包含ボックスに対する把持対象物体の目標把持位置の相対位置を算出し、算出した相対位置に基づいて、手先カメラの撮影画像内の手先カメラ基準包含ボックスに対する目標把持位置を算出し、算出位置を手先カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定する。さらに、手先カメラの撮影画像内の補正目標把持位置を、ロボットのハンドで把持させる制御情報を生成してロボットによる把持処理を実行させる。
Description
本開示は、ロボット制御装置、およびロボット制御方法、並びにプログラムに関する。具体的にはロボットによる物体の把持処理の制御を行うロボット制御装置、およびロボット制御方法、並びにプログラムに関する。
近年、様々な分野でロボットの利用が増大している。例えば工場においてロボットを利用した製品組み立てが行われており、さらに、介護用ロボットなどの開発も行われている。
これらのロボットが行う処理は様々であるが、その一例として、物体を把持して移動させる処理がある。
例えば工場で利用する組み立てロボットの場合、ロボットのアームに接続された把持機構を持つハンドを利用して製品組み立てに利用する部品を把持し、部品の把持状態のまま所定位置に移動して、把持を解除することで、部品を別の物体へ装着するといった処理が行われる。
例えば工場で利用する組み立てロボットの場合、ロボットのアームに接続された把持機構を持つハンドを利用して製品組み立てに利用する部品を把持し、部品の把持状態のまま所定位置に移動して、把持を解除することで、部品を別の物体へ装着するといった処理が行われる。
また、例えば介護用ロボットの場合、ユーザの手の届かないテーブルに置いてあるコップを、ロボットのハンドで把持して、ユーザの手の届く位置まで運んでユーザに手渡すといった処理が行われる。
このような物体の把持処理をロボットに行わせる場合、例えばロボットの周辺状況を全体的に把握可能な視野をもつ俯瞰カメラで周辺画像を撮影し、この撮影画像を解析して把持対象物体の位置を確認し、ハンドを把持対象物体の位置まで移動させて把持対象物体を把持する処理が行われる。
しかし、俯瞰カメラの撮影画像の解析に基づいて取得する位置情報に誤差があると、ハンドの移動先が、目標とする把持位置とずれてしまい、把持処理に失敗する場合がある。
さらに、ロボットのアームの機械誤差(たわみやガタ)などの影響でロボットの手先位置が本来到達すべき位置からずれてしまう可能性もあり、これらの誤差も把持失敗の要因になり得る。
このような問題を解決する手法を開示した従来技術として、特許文献1(特開2007-319938号公報)がある。
この特許文献1は、ロボットに俯瞰カメラの他、物体把持処理を行うハンド部に手先カメラを装着し、これら2つのカメラを利用した構成を開示している。
俯瞰カメラで物体把持処理を行うハンドを撮影して、俯瞰カメラとハンドの位置関係を把握した上で、手先カメラで把持対象物体の認識を行う構成である。
この特許文献1は、ロボットに俯瞰カメラの他、物体把持処理を行うハンド部に手先カメラを装着し、これら2つのカメラを利用した構成を開示している。
俯瞰カメラで物体把持処理を行うハンドを撮影して、俯瞰カメラとハンドの位置関係を把握した上で、手先カメラで把持対象物体の認識を行う構成である。
しかし、この方法を適用すると、俯瞰カメラは、把持対象物体を撮影する以外に、ハンド部も撮影する必要があり、把持可能な範囲は、ハンド部の近傍にある物体に限定されてしまういという問題が発生する。
また、この特許文献1に開示された構成は、予め把持対象物体の形状データを記憶部に格納し、この形状データを利用して、把持対象物体の認識を行っている。従って、形状データが記憶されていない未知物体の把持処理には適用できないという問題がある。
本開示は、例えば上記問題点に鑑みてなされたものであり、ロボットを利用して物体を把持する構成において、把持対象物体の形状の登録データを有していない場合でも把持処理の確実な実行を可能としたロボット制御装置、およびロボット制御方法、並びにプログラムを提供することを目的とする。
本開示の第1の側面は、
ロボットに装着された第1カメラの撮影画像に含まれる把持対象物体を包含する第1カメラ基準包含ボックスと、前記ロボットに装着された第2カメラの撮影画像に含まれる前記把持対象物体を包含する第2カメラ基準包含ボックスを生成する包含ボックス生成部と、
前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスに対する前記把持対象物体の目標把持位置の相対位置を算出し、算出した前記相対位置に基づいて、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスに対する前記目標把持位置を算出し、算出位置を前記第2カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定する把持位置算出部と、
前記第2カメラの撮影画像内の前記補正目標把持位置を前記ロボットのハンドで把持させる制御情報を生成する制御情報生成部を有するロボット制御装置にある。
ロボットに装着された第1カメラの撮影画像に含まれる把持対象物体を包含する第1カメラ基準包含ボックスと、前記ロボットに装着された第2カメラの撮影画像に含まれる前記把持対象物体を包含する第2カメラ基準包含ボックスを生成する包含ボックス生成部と、
前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスに対する前記把持対象物体の目標把持位置の相対位置を算出し、算出した前記相対位置に基づいて、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスに対する前記目標把持位置を算出し、算出位置を前記第2カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定する把持位置算出部と、
前記第2カメラの撮影画像内の前記補正目標把持位置を前記ロボットのハンドで把持させる制御情報を生成する制御情報生成部を有するロボット制御装置にある。
さらに、本開示の第2の側面は、
ロボット制御装置において実行するロボット制御方法であり、
包含ボックス生成部が、ロボットに装着された第1カメラの撮影画像に含まれる把持対象物体を包含する第1カメラ基準包含ボックスと、前記ロボットに装着された第2カメラの撮影画像に含まれる前記把持対象物体を包含する第2カメラ基準包含ボックスを生成する包含ボックス生成ステップと、
把持位置算出部が、前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスに対する前記把持対象物体の目標把持位置の相対位置を算出し、算出した前記相対位置に基づいて、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスに対する前記目標把持位置を算出し、算出位置を前記第2カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定する把持位置算出ステップと、
制御情報生成部が、前記第2カメラの撮影画像内の前記補正目標把持位置を前記ロボットのハンドで把持させる制御情報を生成する制御情報生成ステップを実行するロボット制御方法にある。
ロボット制御装置において実行するロボット制御方法であり、
包含ボックス生成部が、ロボットに装着された第1カメラの撮影画像に含まれる把持対象物体を包含する第1カメラ基準包含ボックスと、前記ロボットに装着された第2カメラの撮影画像に含まれる前記把持対象物体を包含する第2カメラ基準包含ボックスを生成する包含ボックス生成ステップと、
把持位置算出部が、前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスに対する前記把持対象物体の目標把持位置の相対位置を算出し、算出した前記相対位置に基づいて、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスに対する前記目標把持位置を算出し、算出位置を前記第2カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定する把持位置算出ステップと、
制御情報生成部が、前記第2カメラの撮影画像内の前記補正目標把持位置を前記ロボットのハンドで把持させる制御情報を生成する制御情報生成ステップを実行するロボット制御方法にある。
さらに、本開示の第3の側面は、
ロボット制御装置においてロボット制御処理を実行させるプログラムであり、
包含ボックス生成部に、ロボットに装着された第1カメラの撮影画像に含まれる把持対象物体を包含する第1カメラ基準包含ボックスと、前記ロボットに装着された第2カメラの撮影画像に含まれる前記把持対象物体を包含する第2カメラ基準包含ボックスを生成させる包含ボックス生成ステップと、
把持位置算出部に、前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスに対する前記把持対象物体の目標把持位置の相対位置を算出し、算出した前記相対位置に基づいて、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスに対する前記目標把持位置を算出し、算出位置を前記第2カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定させる把持位置算出ステップと、
制御情報生成部に、前記第2カメラの撮影画像内の前記補正目標把持位置を前記ロボットのハンドで把持させる制御情報を生成させる制御情報生成ステップを実行させるプログラムにある。
ロボット制御装置においてロボット制御処理を実行させるプログラムであり、
包含ボックス生成部に、ロボットに装着された第1カメラの撮影画像に含まれる把持対象物体を包含する第1カメラ基準包含ボックスと、前記ロボットに装着された第2カメラの撮影画像に含まれる前記把持対象物体を包含する第2カメラ基準包含ボックスを生成させる包含ボックス生成ステップと、
把持位置算出部に、前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスに対する前記把持対象物体の目標把持位置の相対位置を算出し、算出した前記相対位置に基づいて、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスに対する前記目標把持位置を算出し、算出位置を前記第2カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定させる把持位置算出ステップと、
制御情報生成部に、前記第2カメラの撮影画像内の前記補正目標把持位置を前記ロボットのハンドで把持させる制御情報を生成させる制御情報生成ステップを実行させるプログラムにある。
なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。
本開示のさらに他の目的、特徴や利点は、後述する本開示の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本開示の一実施例の構成によれば、ロボットによる物体の把持処理を確実に実行することを可能とした装置、方法が実現される。
具体的には、例えば、ロボットに装着された俯瞰カメラの撮影画像に含まれる把持対象物体を包含する俯瞰カメラ基準包含ボックスと、ロボットに装着された手先カメラの撮影画像に含まれる把持対象物体を包含する手先カメラ基準包含ボックスを生成する。さらに、俯瞰カメラの撮影画像内の俯瞰カメラ基準包含ボックスに対する把持対象物体の目標把持位置の相対位置を算出し、算出した相対位置に基づいて、手先カメラの撮影画像内の手先カメラ基準包含ボックスに対する目標把持位置を算出し、算出位置を手先カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定する。さらに、手先カメラの撮影画像内の補正目標把持位置を、ロボットのハンドで把持させる制御情報を生成してロボットによる把持処理を実行させる。
本構成により、ロボットによる物体の把持処理を確実に実行することを可能とした装置、方法が実現される。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
具体的には、例えば、ロボットに装着された俯瞰カメラの撮影画像に含まれる把持対象物体を包含する俯瞰カメラ基準包含ボックスと、ロボットに装着された手先カメラの撮影画像に含まれる把持対象物体を包含する手先カメラ基準包含ボックスを生成する。さらに、俯瞰カメラの撮影画像内の俯瞰カメラ基準包含ボックスに対する把持対象物体の目標把持位置の相対位置を算出し、算出した相対位置に基づいて、手先カメラの撮影画像内の手先カメラ基準包含ボックスに対する目標把持位置を算出し、算出位置を手先カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定する。さらに、手先カメラの撮影画像内の補正目標把持位置を、ロボットのハンドで把持させる制御情報を生成してロボットによる把持処理を実行させる。
本構成により、ロボットによる物体の把持処理を確実に実行することを可能とした装置、方法が実現される。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
以下、図面を参照しながら本開示のロボット制御装置、およびロボット制御方法、並びにプログラムの詳細について説明する。なお、説明は以下の項目に従って行う。
1.ロボットによる物体把持処理の概要について
2.ロボットの把持処理における問題点について
3.本開示のロボット制御装置の構成例について
4.本開示のロボット制御装置が実行する処理の詳細について
5.本開示のロボット制御装置の変形例、応用例について
6.本開示のロボット制御装置のハードウェア構成例について
7.本開示の構成のまとめ
1.ロボットによる物体把持処理の概要について
2.ロボットの把持処理における問題点について
3.本開示のロボット制御装置の構成例について
4.本開示のロボット制御装置が実行する処理の詳細について
5.本開示のロボット制御装置の変形例、応用例について
6.本開示のロボット制御装置のハードウェア構成例について
7.本開示の構成のまとめ
[1.ロボットによる物体把持処理の概要について]
まず、図1以下を参照してロボットによる物体把持処理の概要について説明する。
図1はロボット10が、把持対象物体である物体50を把持する際の処理シーケンスを説明する図である。
ロボット10は、図に示すステップS01~S03の順に動作を行い、物体50を把持する。
まず、図1以下を参照してロボットによる物体把持処理の概要について説明する。
図1はロボット10が、把持対象物体である物体50を把持する際の処理シーケンスを説明する図である。
ロボット10は、図に示すステップS01~S03の順に動作を行い、物体50を把持する。
ロボット10は、頭部20と、ハンド30と、アーム40を有する。ハンド30は、アーム40によってロボット本体に接続され、アーム40の制御により、ハンド30の位置や向きなどを変更することが可能な構成を有する。
ハンド30は、両サイドに人の指に相当する回動可能な可動部を有しており、物体を把持動作や、物体の解放動作を行うことが可能な構成を有する。
ハンド30は、両サイドに人の指に相当する回動可能な可動部を有しており、物体を把持動作や、物体の解放動作を行うことが可能な構成を有する。
なお、ロボット10は、例えば脚部や車輪部などの駆動部の駆動により移動し、さらにアーム40の制御によってハンド30を物体50の把持可能な位置に移動させる。
あるいは、ロボット本体10は移動せず、アーム40のみの制御によってハンド30を物体に近づける構成としてもよい。
本開示の処理は、いずれの構成においても適用可能である。なお、以下に説明する実施例においては、一例として、ロボット10本体も移動可能な構成例について説明する。
あるいは、ロボット本体10は移動せず、アーム40のみの制御によってハンド30を物体に近づける構成としてもよい。
本開示の処理は、いずれの構成においても適用可能である。なお、以下に説明する実施例においては、一例として、ロボット10本体も移動可能な構成例について説明する。
ロボット10は、把持対象物体である物体50の位置等を確認するための2つのカメラを有している。
1つは、頭部20に装着された俯瞰カメラ21であり、もう1つは、ハンド30に装着された手先カメラ31である。
1つは、頭部20に装着された俯瞰カメラ21であり、もう1つは、ハンド30に装着された手先カメラ31である。
なお、俯瞰カメラ21や、手先カメラ31には、可視光画像撮影用のカメラに限らず、距離画像等を取得可能なセンサも含まれる。ただし、3次元情報を得られるカメラ、あるいはセンサを用いることが好ましい。例えば、ステレオカメラ、ToFセンサやLidarなどのセンサ、あるいはこれらのセンサと単眼カメラとの組み合わせ等でもよい。把持対象物体の3次元位置を解析可能なデータが取得可能なカメラやセンサを用いることが好ましい。
図1(ステップS01)は、俯瞰カメラ21による物体50の位置確認ステップを示している。
ロボット10内のデータ処理部は、俯瞰カメラ21の撮影画像から、把持対象物体である物体50を検出し、物体50の3次元位置を算出する。ロボット10のデータ処理部は、この位置確認後、物体50に近づくように移動する。
ロボット10内のデータ処理部は、俯瞰カメラ21の撮影画像から、把持対象物体である物体50を検出し、物体50の3次元位置を算出する。ロボット10のデータ処理部は、この位置確認後、物体50に近づくように移動する。
(ステップS02)は、物体50に近づいたロボット10が、ハンド30を物体50の把持可能な位置に移動させる処理を示している。
このハンド位置の制御は、ハンド30に装着された手先カメラ31の撮影画像の解析に基づいて実行される。
このハンド位置の制御は、ハンド30に装着された手先カメラ31の撮影画像の解析に基づいて実行される。
ロボット10内のデータ処理部は、手先カメラ31の撮影画像から、把持対象物体である物体50を検出し、物体50の3次元位置を算出する。ロボット10のデータ処理部は、この位置確認後、ハンド30の位置や向きを、物体50を把持可能な状態に設定する調整処理を行う。
(ステップS03)は、ステップS02のハンド30の調整処理後の把持処理を示している。
ハンド30の両サイドの可動部を動作させて物体50を把持する。
ハンド30の両サイドの可動部を動作させて物体50を把持する。
この物体把持処理シーケンスの詳細シーケンスについて、図2を参照して説明する。
図2は、先に図1を参照して説明したロボット10による物体50の把持シーケンスを、さらに詳細な処理単位で示した図である。
図2に示すステップS11~S15の順に処理が実行される。
以下、各処理ステップについて、順次、説明する。
図2は、先に図1を参照して説明したロボット10による物体50の把持シーケンスを、さらに詳細な処理単位で示した図である。
図2に示すステップS11~S15の順に処理が実行される。
以下、各処理ステップについて、順次、説明する。
(ステップS11)
まず、ステップS11において、目標把持位置決定処理を実行する。
まず、ロボット10の頭部20に装着した俯瞰カメラ21の撮影画像を解析して、把持対象物体である物体50を検出し、物体50の位置を解析する。
まず、ステップS11において、目標把持位置決定処理を実行する。
まず、ロボット10の頭部20に装着した俯瞰カメラ21の撮影画像を解析して、把持対象物体である物体50を検出し、物体50の位置を解析する。
(ステップS12)
ステップS12は、軌道計画ステップである。
ロボット10のデータ処理部は、ステップS11において算出した把持対象物体である物体50の位置情報に基づいて、算出した物体50の位置に近づくためのロボットまたはハンドの移動経路、すなわち軌道計画の生成を行う。なお、移動後のハンド30の位置は、ハンド30に装着した手先カメラ31から把持対象物体が観測できる位置であればどこでもよい。
ステップS12は、軌道計画ステップである。
ロボット10のデータ処理部は、ステップS11において算出した把持対象物体である物体50の位置情報に基づいて、算出した物体50の位置に近づくためのロボットまたはハンドの移動経路、すなわち軌道計画の生成を行う。なお、移動後のハンド30の位置は、ハンド30に装着した手先カメラ31から把持対象物体が観測できる位置であればどこでもよい。
(ステップS13)
次に、ステップS13において、ステップS12で生成した軌道に従ってロボットやハンドを移動させる。前述したように、移動後のハンド30の位置は、ハンド30に装着した手先カメラ31から把持対象物体が観測できる位置となる。
次に、ステップS13において、ステップS12で生成した軌道に従ってロボットやハンドを移動させる。前述したように、移動後のハンド30の位置は、ハンド30に装着した手先カメラ31から把持対象物体が観測できる位置となる。
(ステップS14)
次に、ステップS14において、ハンド30の位置や向きの微調整を行う。
このハンド位置の制御は、ハンド30に装着された手先カメラ31の撮影画像の解析に基づいて実行する。
次に、ステップS14において、ハンド30の位置や向きの微調整を行う。
このハンド位置の制御は、ハンド30に装着された手先カメラ31の撮影画像の解析に基づいて実行する。
ロボット10内のデータ処理部は、手先カメラ31の撮影画像から、把持対象物体である物体50を検出し、物体50の位置を算出する。ロボット10のデータ処理部は、この位置確認後、ハンド30の位置や向きを、物体50を把持可能な状態に設定する調整処理を行う。
(ステップS15)
最後に、ハンド30の両サイドの可動部を動作させて物体50を把持する。
最後に、ハンド30の両サイドの可動部を動作させて物体50を把持する。
このように、ロボット10は、まず、頭部20に装着された俯瞰カメラ21の撮影画像に基づいて把持対象物体である物体50の位置を確認する。
その後、ハンド30が、物体50に近づいた後は、ハンド30に装着された手先カメラ31の撮影画像を解析して、ハンド30の位置や向きを微調整して物体50を把持する処理を行う。
その後、ハンド30が、物体50に近づいた後は、ハンド30に装着された手先カメラ31の撮影画像を解析して、ハンド30の位置や向きを微調整して物体50を把持する処理を行う。
[2.ロボットの把持処理における問題点について]
次に、図1、図2を参照して説明したロボットの把持処理における問題点について説明する。
次に、図1、図2を参照して説明したロボットの把持処理における問題点について説明する。
図3を参照してロボットの把持処理における問題点について説明する。
図3は、先に説明した図1と同様、ロボット10が、把持対象物体である物体50を把持する際の処理シーケンスを説明する図である。
ロボット10は、図に示すステップS01~S03の順に動作して物体50を把持する。
図3は、先に説明した図1と同様、ロボット10が、把持対象物体である物体50を把持する際の処理シーケンスを説明する図である。
ロボット10は、図に示すステップS01~S03の順に動作して物体50を把持する。
ここで、図1との違いは、把持対象物体である物体50の形状である。
図1を参照して説明した構成では、把持対象物体である物体50は球体、あるいは円柱上の形状を有していたが、図3に示す把持対象物体である物体50は、直方体形状を有する。
図1を参照して説明した構成では、把持対象物体である物体50は球体、あるいは円柱上の形状を有していたが、図3に示す把持対象物体である物体50は、直方体形状を有する。
図3(ステップS01)は、俯瞰カメラ21による物体50の位置確認ステップを示している。
ロボット10内のデータ処理部は、俯瞰カメラ21の撮影画像から、把持対象物体である物体50を検出し、物体50の3次元位置を算出する。ロボット10のデータ処理部は、この位置確認後、物体50に近づくように移動する。
ロボット10内のデータ処理部は、俯瞰カメラ21の撮影画像から、把持対象物体である物体50を検出し、物体50の3次元位置を算出する。ロボット10のデータ処理部は、この位置確認後、物体50に近づくように移動する。
(ステップS02)は、物体50に近づいたロボット10が、ハンド30を物体50の把持可能な位置に移動させる処理を示している。
このハンド位置の制御は、ハンド30に装着された手先カメラ31の撮影画像の解析に基づいて実行される。
このハンド位置の制御は、ハンド30に装着された手先カメラ31の撮影画像の解析に基づいて実行される。
ロボット10内のデータ処理部は、手先カメラ31の撮影画像から、把持対象物体である物体50を検出し、物体50の位置を算出する。ロボット10のデータ処理部は、この位置確認後、ハンド30の位置や向きを、物体50を把持可能な状態に設定する調整処理を行う。
(ステップS03)は、ステップS02のハンド30の調整処理後の把持処理を示している。
ハンド30の両サイドの可動部を動作させて物体50を把持しようとする。
ハンド30の両サイドの可動部を動作させて物体50を把持しようとする。
しかし、図3に示す例では、把持対象物体である物体50が直方体形状を有している。このような形状の物体50を把持する場合、ハンド30の向きを物体50に対して、安定した把持処理が可能となる特定方向に設定しないと、図3(S03)に示すように物体50がハンド30の中で回転してしまい、把持処理に失敗することがある。
例えば、物体50が水の入った容器であるような場合には、容器から水がこぼれてしまうといった事態が発生することになる。
図4は、このような直方体形状を有する物体50を安定的に保持する処理を行うためのロボット10の制御処理例を示す図である。
図4には、図3と同様、把持対象物体である物体50が直方体形状を有している場合のロボット10による物体の把持処理シーケンスを示している。
図3との違いは、図4(S03)に示すように、ハンド30の向きを物体50に対して、安定した把持処理が可能となる方向に設定して把持処理を実行している点である。このようなハンド30の位置や方向の制御を行うことで、様々な形状を有する物体を安定して把持することが可能となる。
本開示のロボット制御装置は、図4に示すような処理、すなわち様々な形状を有する物体を安定的に把持する制御を可能とした構成を有する。
以下、本開示のロボット制御装置の構成と処理について説明する。
以下、本開示のロボット制御装置の構成と処理について説明する。
[3.本開示のロボット制御装置の構成例について]
次に、本開示のロボット制御装置の構成例について説明する。
次に、本開示のロボット制御装置の構成例について説明する。
図5は、本開示のロボット制御装置100の一構成例を示すブロック図である。
図5に示す本開示のロボット制御装置100は、例えば図1~図4に示すロボット10の内部に構成される。
図5に示す本開示のロボット制御装置100は、例えば図1~図4に示すロボット10の内部に構成される。
図5に示すように、本開示のロボット制御装置100は、データ処理部110、ロボット頭部120、ロボットハンド部130、ロボット移動部140、通信部150、入出力部(ユーザ端末)180を有する。
なお、入出力部(ユーザ端末)180は、ロボット本体内にあってもよいし、ロボット本体とは異なる独立した装置であるユーザ端末として構成してもよい。
また、データ処理部110についても、ロボット本体内にあってもよいし、ロボット本体とは異なる独立した装置内に構成してもよい。
なお、入出力部(ユーザ端末)180は、ロボット本体内にあってもよいし、ロボット本体とは異なる独立した装置であるユーザ端末として構成してもよい。
また、データ処理部110についても、ロボット本体内にあってもよいし、ロボット本体とは異なる独立した装置内に構成してもよい。
データ処理部110は、把持対象物体点群抽出部111、把持対象物体包含ボックス生成部112、把持位置算出部113、制御情報生成部114を有する。
ロボット頭部120は、駆動部121、俯瞰カメラ122を有する。
ロボットハンド部130は、駆動部131、手先カメラ132を有する。
ロボット移動部140は、駆動部141、センサ142を有する。
ロボット頭部120は、駆動部121、俯瞰カメラ122を有する。
ロボットハンド部130は、駆動部131、手先カメラ132を有する。
ロボット移動部140は、駆動部141、センサ142を有する。
なお、図5に示す構成要素は、本開示の処理に適用する主要構成要素を示すものであり、ロボット内部には、その他、様々な構成要素、例えば、記憶部等の構成要素がある。
ロボット頭部120の駆動部121は、ロボット頭部120を駆動し、ロボット頭部の向きを制御する。この制御により、俯瞰カメラ122の画像撮影方向が制御される。
俯瞰カメラ122は、ロボット頭部120から観察される画像を撮影する。
なお、俯瞰カメラ122は、可視光画像撮影用のカメラに限らず、距離画像等を取得可能なセンサでもよい。ただし、3次元情報を得られるカメラ、あるいはセンサを用いることが好ましい。例えば、ステレオカメラ、ToFセンサやLidarなどのセンサ、あるいはこれらのセンサと単眼カメラとの組み合わせ等でもよい。把持対象物体の3次元位置を解析可能なデータが取得可能なカメラやセンサを用いることが好ましい。
俯瞰カメラ122は、ロボット頭部120から観察される画像を撮影する。
なお、俯瞰カメラ122は、可視光画像撮影用のカメラに限らず、距離画像等を取得可能なセンサでもよい。ただし、3次元情報を得られるカメラ、あるいはセンサを用いることが好ましい。例えば、ステレオカメラ、ToFセンサやLidarなどのセンサ、あるいはこれらのセンサと単眼カメラとの組み合わせ等でもよい。把持対象物体の3次元位置を解析可能なデータが取得可能なカメラやセンサを用いることが好ましい。
ただし、単眼カメラのみでも、連続撮影画像の解析処理、例えばSLAM(simultaneous localization and mapping)処理等を行うことで、撮影画像内の物体の3次元位置の解析が可能であり、ロボット制御装置100が、このような解析処理を行う構成を有している場合は、俯瞰カメラ122は単眼カメラでもよい。
なお、SLAM(simultaneous localization and mapping)処理は、自己位置同定(ローカリゼーション)と環境地図作成(mapping)を並行して実行する処理である。
ロボットハンド部130の駆動部131は、ロボットハンドの向きの制御や、把持動作の制御を行う。
手先カメラ132は、ロボットハンド部130の直前の画像を撮影するカメラである。
手先カメラ132は、ロボットハンド部130の直前の画像を撮影するカメラである。
この手先カメラ132も、可視光画像撮影用のカメラに限らず、距離画像等を取得可能なセンサでもよい。ただし、3次元情報を得られるカメラ、あるいはセンサを用いることが好ましい。例えば、ステレオカメラ、ToFセンサやLidarなどのセンサ、あるいはこれらのセンサと単眼カメラとの組み合わせ等でもよい。把持対象物体の3次元位置を解析可能なデータが取得可能なカメラやセンサを用いることが好ましい。
ただし、上述の俯瞰カメラ122と同様、ロボット制御装置100が、例えばSLAM処理等による撮影画像内の物体の3次元位置の解析処理を行う構成を有している場合は、手先カメラ132も単眼カメラでもよい。
ロボット移動部140の駆動部141は、例えばロボットの脚駆動や車輪駆動を行う駆動部であり、ロボット本体を移動させるための駆動処理を行う。
センサ142は、ロボットの移動方向の障害物の検出などを行うためのセンサであり、カメラ、ToFセンサ、Lidar等によって構成される。
センサ142は、ロボットの移動方向の障害物の検出などを行うためのセンサであり、カメラ、ToFセンサ、Lidar等によって構成される。
データ処理部110は、把持対象物体点群抽出部111、把持対象物体包含ボックス生成部112、把持位置算出部113、制御情報生成部114を有する。
把持対象物体点群抽出部111は、俯瞰カメラ122の撮影画像や、手先カメラ132の撮影画像に含まれる把持対象物体を示す点群(3次元点群)の抽出処理を実行する。点群は、把持対象物体となる物体の外形、すなわち物体の3次元形状を示す点群(3次元点群)に相当する。具体的な処理例については後述する。
把持対象物体包含ボックス生成部112は、把持対象物体点群抽出部111が生成した把持対象物体の3次元点群に基づいて、この3次元点群を包含する「把持対象物体包含ボックス」を生成する。
「把持対象物体包含ボックス」は、把持対象物体の3次元形状を示す点群を包含するボックスであり、直方体、円筒、円錐、トーラスなど、形状は特に限定されない。なお、以下の実施例では、一例として、「把持対象物体包含ボックス」として直方体の包含立体(バウンディングボックス)を用いた例について説明する。
把持位置算出部113は、例えば、以下の処理を実行する。
(1)俯瞰カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)と目標把持位置との相対関係算出処理、
(2)俯瞰カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)と目標把持位置との相対関係を適用して、手先カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)に対する目標把持位置の相対位置である補正目標把持位置の算出処理、
これらの処理を実行する。
(1)俯瞰カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)と目標把持位置との相対関係算出処理、
(2)俯瞰カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)と目標把持位置との相対関係を適用して、手先カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)に対する目標把持位置の相対位置である補正目標把持位置の算出処理、
これらの処理を実行する。
目標把持位置とは、例えば、入出力部(ユーザ端末)180を利用して俯瞰カメラの撮影画像を見ながらユーザが設定する目標とする把持位置である。ロボットのハンドによって把持対象物体を安定して把持することができる把持位置であり、例えばハンドによる把持対象物体の把持処理時に、ハンドと把持対象物体との接触位置に相当する。
例えば、図1~図4を参照して説明した両サイドから物体50を挟み込むグリッパー型のハンドを利用する場合、目標把持位置は物体50の両サイドの2箇所に設定されることになる。この具体例や詳細については後段で説明する。
把持位置算出部113は、
(a)俯瞰カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)と、
(b)手先カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)
これら、異なるカメラの撮影画像内の把持対象物体の2つの把持対象物体包含ボックス(バウンディングボックス)を生成し、各包含ボックス(バウンディングボックス)と把持位置との相対位置を一致させることで、ユーザが設定した目標把持位置が、手先カメラの撮影画像に含まれる把持対象物体のどの位置に対応するかを算出する。この算出位置を補正目標把持位置とする。
(a)俯瞰カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)と、
(b)手先カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)
これら、異なるカメラの撮影画像内の把持対象物体の2つの把持対象物体包含ボックス(バウンディングボックス)を生成し、各包含ボックス(バウンディングボックス)と把持位置との相対位置を一致させることで、ユーザが設定した目標把持位置が、手先カメラの撮影画像に含まれる把持対象物体のどの位置に対応するかを算出する。この算出位置を補正目標把持位置とする。
制御情報生成部114は、把持位置算出部113が算出した「補正目標把持位置」をロボットのハンドによって把持させる制御情報を生成する。この制御情報が、ロボット移動部140の駆動部141や、ロボットハンド部130の駆動部131に出力される。
ロボット移動部140の駆動部141や、ロボットハンド部130の駆動部131は、制御情報生成部114の生成した制御情報、すなわち、ロボットのハンドにより、把持位置算出部113が算出した「補正目標把持位置」を把持させる制御情報に従って駆動処理を実行する。
この駆動処理によって、ロボットのハンドは、「補正目標把持位置」を把持することが可能となる。
この「補正目標把持位置」は、ユーザが俯瞰画像を見ながら指定した目標把持位置に一致する把持位置であり、手先カメラの撮影画像に含まれる把持対象物体上に設定される把持位置である。この手先カメラの撮影画像に含まれる把持対象物体上に設定される補正目標把持位置をロボットのハンドで把持することで、物体を安定して把持することが可能となる。なお、ユーザが俯瞰画像を見ながら指定した目標把持位置は、[0]認識誤差や機械誤差を含まないものであることが前提となる。
この駆動処理によって、ロボットのハンドは、「補正目標把持位置」を把持することが可能となる。
この「補正目標把持位置」は、ユーザが俯瞰画像を見ながら指定した目標把持位置に一致する把持位置であり、手先カメラの撮影画像に含まれる把持対象物体上に設定される把持位置である。この手先カメラの撮影画像に含まれる把持対象物体上に設定される補正目標把持位置をロボットのハンドで把持することで、物体を安定して把持することが可能となる。なお、ユーザが俯瞰画像を見ながら指定した目標把持位置は、[0]認識誤差や機械誤差を含まないものであることが前提となる。
[4.本開示のロボット制御装置が実行する処理の詳細について]
次に、本開示のロボット制御装置100が実行する処理の詳細について説明する。
次に、本開示のロボット制御装置100が実行する処理の詳細について説明する。
図6は、図5に示すロボット制御装置100のデータ処理部110が実行する把持対象物体の把持位置(補正目標把持位置)の算出処理シーケンスを説明するフローチャートである。
なお、「補正目標把持位置」とは、上述したように、手先カメラの撮影画像に含まれる把持対象物体を安定して把持することが可能な把持位置であり、ユーザが俯瞰画像を見ながら指定した目標把持位置に一致する把持位置である。
以下、図6に示すフローチャートに従って、本開示のロボット制御装置100が実行する処理の詳細について説明する。
なお、図6に示すフローに従った処理は、ロボット制御装置100の記憶部(メモリ)に格納されたプログラムに従って、情報処理装置のプログラム実行機能を持つCPU等から構成される制御部(データ処理部)の制御の下で実行可能な処理である。
以下、図6に示すフローの各ステップの処理について説明する。
なお、図6に示すフローに従った処理は、ロボット制御装置100の記憶部(メモリ)に格納されたプログラムに従って、情報処理装置のプログラム実行機能を持つCPU等から構成される制御部(データ処理部)の制御の下で実行可能な処理である。
以下、図6に示すフローの各ステップの処理について説明する。
図6に示すフロー中、ステップS111~ステップS114の処理は、ロボット頭部120の俯瞰カメラ122の撮影画像(距離画像も含む)に基づいて実行される処理である。
一方、図6に示すフロー中、ステップS121~ステップS123の処理は、ロボットハンド部130の手先カメラ132の撮影画像(距離画像も含む)に基づいて実行される処理である。
一方、図6に示すフロー中、ステップS121~ステップS123の処理は、ロボットハンド部130の手先カメラ132の撮影画像(距離画像も含む)に基づいて実行される処理である。
まず、ステップS111~ステップS114の俯瞰カメラ122の撮影画像に基づいて実行される処理について説明する。
(ステップS111)
まず、ロボット制御装置100のデータ処理部110は、俯瞰カメラ撮影画像を用いた把持対象物体の指定情報と、目標把持位置の指定情報を入力する。
まず、ロボット制御装置100のデータ処理部110は、俯瞰カメラ撮影画像を用いた把持対象物体の指定情報と、目標把持位置の指定情報を入力する。
把持対象物体の指定情報と、目標把持位置の指定情報は、例えば、入出力部(ユーザ端末)180を利用して俯瞰カメラの撮影画像を見ながらユーザが入力する。
この処理の具体例について、図7を参照して説明する。
この処理の具体例について、図7を参照して説明する。
図7には、以下の各図を示している。
(1)把持対象物体の指定処理例
(2)把持対象物体の把持位置の指定例
(1)把持対象物体の指定処理例
(2)把持対象物体の把持位置の指定例
図7(1),(2)に示す図は、いずれも、入出力部(ユーザ端末)180の表示部に表示した俯瞰カメラ122の撮影画像である。
すなわち、俯瞰カメラ122の撮影画像は、直方体形状の把持対象物体がテーブルの上に置かれた画像である。
ユーザは、このように、入出力部(ユーザ端末)180に表示された俯瞰カメラの撮影画像を見ながら、把持対象物体の指定情報と、目標把持位置の指定情報を入力する。
すなわち、俯瞰カメラ122の撮影画像は、直方体形状の把持対象物体がテーブルの上に置かれた画像である。
ユーザは、このように、入出力部(ユーザ端末)180に表示された俯瞰カメラの撮影画像を見ながら、把持対象物体の指定情報と、目標把持位置の指定情報を入力する。
図7(1)は、把持対象物体の指定情報の入力例である。
例えば、図7(1)に示すように、ユーザは、直方体形状の把持対象物体を囲む矩形領域を設定する等の手法により、把持対象物体を指定する。
例えば、図7(1)に示すように、ユーザは、直方体形状の把持対象物体を囲む矩形領域を設定する等の手法により、把持対象物体を指定する。
さらに、図7(2)に示すように、ユーザは、把持対象物体を安定して把持するための把持位置(目標把持位置)を指定する。
把持位置の指定方法としては、図に示すように、把持対象物体表面の把持位置を直接、指定する方法と、把持位置を示す矢印を設定する手法がある。
図7(2)に示す例では、直方体形状の把持対象物体表面の把持位置を両サイドの対面する2面のほぼ中央位置に設定しようとしている。
把持位置の指定方法としては、図に示すように、把持対象物体表面の把持位置を直接、指定する方法と、把持位置を示す矢印を設定する手法がある。
図7(2)に示す例では、直方体形状の把持対象物体表面の把持位置を両サイドの対面する2面のほぼ中央位置に設定しようとしている。
把持対象物体の両サイドの対面する2面中、一方の面は、俯瞰カメラの撮影画像から観察可能な位置にあり、この点は、把持対象物体表面の把持位置を直接、指定することができる。
しかし、一方の面は、俯瞰カメラの撮影画像では見えない位置にある。このような場合、ユーザは、図に示すように把持位置を示す矢印を設定する。
なお、表示部に把持対象物体の3次元画像を表示し、さらに、表示データ上にユーザが対話的に位置情報を設定可能なマーカを表示して、ユーザがマーカを移動させて把持位置を直接的に指定する方法を適用してもよい。
しかし、一方の面は、俯瞰カメラの撮影画像では見えない位置にある。このような場合、ユーザは、図に示すように把持位置を示す矢印を設定する。
なお、表示部に把持対象物体の3次元画像を表示し、さらに、表示データ上にユーザが対話的に位置情報を設定可能なマーカを表示して、ユーザがマーカを移動させて把持位置を直接的に指定する方法を適用してもよい。
ロボット制御装置100のデータ処理部110は、ユーザが把持対象物体表面の把持位置を直接、指定した場合は、この指定位置を目標把持位置として決定し、この位置情報(把持対象物体に対する相対位置、または目標把持位置の3次元位置)を記憶部に格納する。
また、ユーザが、把持対象物体表面の把持位置を直接、指定せず、矢印を設定した場合は、ロボット制御装置100のデータ処理部110は、ユーザによって設定された矢印と把持対象物体との交点を算出してこの交点を目標把持位置として決定し、この位置情報(把持対象物体に対する相対位置、または目標把持位置の3次元位置)を記憶部に格納する。
また、ユーザが、把持対象物体表面の把持位置を直接、指定せず、矢印を設定した場合は、ロボット制御装置100のデータ処理部110は、ユーザによって設定された矢印と把持対象物体との交点を算出してこの交点を目標把持位置として決定し、この位置情報(把持対象物体に対する相対位置、または目標把持位置の3次元位置)を記憶部に格納する。
なお、把持位置は、ロボットのハンドにより、把持対象物体を安定的に把持して持ち上げることが可能な点であり、この把持位置の数は、ロボットのハンドの構成によって異なるものとなる。本実施例では、図1~図4を参照して説明したようにロボットのハンドは、左右にそれぞれ回動可能な2つの可動部を有するグリッパー型を有する。このグリッパー型のハンド構成では、2つの可動部が把持対象物体を左右から挟むようにして把持する構成であるため、左右の2つの可動部各々が、把持対象物体と接触する2点を把持位置として設定すればよい。
例えば、ロボットのハンドが三本指構造などの場合には、各指が把持対象物体と接触する3点を把持位置として指定するといった処理を行うことになる。
図7(1),(2)に示すように、ユーザが入出力部(ユーザ端末)180に表示された俯瞰カメラの撮影画像を見ながら、把持対象物体の指定情報と、目標把持位置の指定情報を入力すると、ロボット制御装置100のデータ処理部110は、これらの入力情報に基づいて、把持対象物体と、把持対象物体上の目標把持位置を決定する。
(ステップS112)
次に、図6のフローのステップS112の処理について説明する。
ステップS112では、俯瞰カメラ撮影画像内の把持対象物体の点群抽出処理を実行する。
次に、図6のフローのステップS112の処理について説明する。
ステップS112では、俯瞰カメラ撮影画像内の把持対象物体の点群抽出処理を実行する。
この処理は、ロボット制御装置100のデータ処理部110の把持対象物体点群抽出部111が実行する処理である。
把持対象物体点群抽出部111は、俯瞰カメラ122の撮影画像内から選択された把持対象物体に基づいて、把持対象物体を示す点群(3次元点群)の抽出処理を実行する。点群は、把持対象物体である物体の外形、すなわち物体の3次元形状を示す点群(3次元点群)に相当する。
把持対象物体点群抽出部111は、俯瞰カメラ122の撮影画像内から選択された把持対象物体に基づいて、把持対象物体を示す点群(3次元点群)の抽出処理を実行する。点群は、把持対象物体である物体の外形、すなわち物体の3次元形状を示す点群(3次元点群)に相当する。
図8を参照して、把持対象物体点群抽出部111が実行する把持対象物体の3次元点群抽出処理例について説明する。
図8には、以下の各図を示している。
(1)把持対象物体と把持対象物体指定情報、
(2)把持対象物体の点群(3次元点群)の例
図8には、以下の各図を示している。
(1)把持対象物体と把持対象物体指定情報、
(2)把持対象物体の点群(3次元点群)の例
図8(1)には、俯瞰カメラ122の撮影画像から選択された把持対象物体と、ユーザによって指定された把持対象物体の指定情報としての矩形領域を示している。
把持対象物体点群抽出部111は、指定された矩形領域にある物体を把持対象物体とし、その物体に対応する点群を抽出する。
把持対象物体点群抽出部111は、指定された矩形領域にある物体を把持対象物体とし、その物体に対応する点群を抽出する。
なお、初期的には、画像内の全ての物体領域に対して点群が生成される。従って、把持対象物体点群抽出部111は、ユーザによって指定された矩形領域に含まれる把持対象物体に関する点群以外の点群を除去する処理を行う必要がある。
例えば、把持対象物体の支持平面(テーブル等)の物体に対応する点群があれば、この支持平面(テーブル)対応の点群の除去を行う。
把持対象物体以外の物体に対応する点群を除去して、把持対象物体に対応する点群のみを抽出するための手法としては、例えば、個別の物体単位の点群を分類するクラスタリング処理が有効である。
把持対象物体以外の物体に対応する点群を除去して、把持対象物体に対応する点群のみを抽出するための手法としては、例えば、個別の物体単位の点群を分類するクラスタリング処理が有効である。
点群を物体単位のクラスタに分割し、その後、ユーザが設定した把持対象物体の指定領域である矩形領域内にクラスタを最も多く含むクラスタから構成される点群を把持対象物体対応の点群として抽出する。その他の点群クラスタは、把持対象物体以外の物体の点群であるので、削除する。
このような処理を行うことで、例えば図8(2)に示すような把持対象物体の点群(3次元点群)を抽出することができる。
このような処理を行うことで、例えば図8(2)に示すような把持対象物体の点群(3次元点群)を抽出することができる。
なお、把持対象物体が置かれたテーブル等の支持平面の検出処理は、例えばRANSAC手法等の既存手法が適用可能である。また、クラスタリングについてはEuclidean Clusteringなどといった既存手法が適用可能である。
(ステップS113)
次に、図6のフローのステップS113の処理について説明する。
ステップS113では、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)の生成処理を行う。
次に、図6のフローのステップS113の処理について説明する。
ステップS113では、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)の生成処理を行う。
この処理は、ロボット制御装置100のデータ処理部110の把持対象物体包含ボックス生成部112が実行する処理である。
把持対象物体包含ボックス生成部112は、把持対象物体点群抽出部111が生成した把持対象物体の3次元点群に基づいて、この3次元点群を包含する「把持対象物体包含ボックス」を生成する。
前述したように、「把持対象物体包含ボックス」は直方体、円筒、円錐、トーラスなど、形状は特に限定されず、様々な形状とすることが可能である。ただし、本実施例では、「把持対象物体包含ボックス」として、直方体形状を有するバウンディングボックスを用いた例を説明する。
前述したように、「把持対象物体包含ボックス」は直方体、円筒、円錐、トーラスなど、形状は特に限定されず、様々な形状とすることが可能である。ただし、本実施例では、「把持対象物体包含ボックス」として、直方体形状を有するバウンディングボックスを用いた例を説明する。
このステップS113の処理、すなわち、把持対象物体包含ボックス生成部112が実行する俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)生成処理の詳細シーケンスについて、図9に示すフローと図10を参照して説明する。
図9に示すフローの各ステップの処理について説明する。
(ステップS201)
まず、把持対象物体包含ボックス生成部112は、ステップS201において、以下の各情報を入力する。
(a)俯瞰カメラ基準の把持対象物体点群
(b)目標把持位置
(ステップS201)
まず、把持対象物体包含ボックス生成部112は、ステップS201において、以下の各情報を入力する。
(a)俯瞰カメラ基準の把持対象物体点群
(b)目標把持位置
(a)俯瞰カメラ基準の把持対象物体点群は、把持対象物体点群抽出部111が生成した点群データであり、把持対象物体点群抽出部111から入力する。
(b)目標把持位置はユーザによって入力された目標把持位置であり、図6のフローのステップS111においてユーザによって入力された目標把持位置である。
(b)目標把持位置はユーザによって入力された目標把持位置であり、図6のフローのステップS111においてユーザによって入力された目標把持位置である。
(ステップS302)
次に、把持対象物体包含ボックス生成部112は、ステップS302において、包含ボックス(バウンディングボックス)の1辺を、目標把持位置のアプローチ方向(x方向)に垂直な鉛直面(yz平面)に平行に設定する処理を行う。
次に、把持対象物体包含ボックス生成部112は、ステップS302において、包含ボックス(バウンディングボックス)の1辺を、目標把持位置のアプローチ方向(x方向)に垂直な鉛直面(yz平面)に平行に設定する処理を行う。
この処理について、図10(1)を参照して説明する。
図10(1)には、包含ボックス(バウンディングボックス)生成処理における座標系と入力情報例を示している。
図10(1)には、包含ボックス(バウンディングボックス)生成処理における座標系と入力情報例を示している。
座標系は、ハンド30が把持対象物体である物体50へ近づく方向であるアプローチ方向をx方向とし、x方向に垂直で、かつハンド30の把持処理に際して、ハンド30の可動部を目標把持位置に近づけるための移動方向をy軸とする。さらに、x軸,y軸に垂直な方向をz軸として設定した右手座標系である。
ステップS202では、包含ボックス(バウンディングボックス)の1辺を、目標把持位置のアプローチ方向(x方向)に垂直な鉛直面(yz平面)に平行に設定する処理を行う。
具体例を図10(2)に示す。図10(2)に示すように、目標把持位置のアプローチ方向(x方向)に垂直な鉛直面(yz平面)に平行な辺を包含ボックス(バウンディングボックス)の1辺として設定する。
この辺を4本、設定することで、直方体形状のバウンディングボックスの面が規定されることになる。しかし、このyz平面に平行な辺を持つバウンディングボックスとしては、例えば図11(2a),(2b)に示すような様々なバウンディングボックスが生成可能である。
図11(2a)は、好ましくないバウンディングボックスの生成例であり、図11(2b)は、好ましいバウンディングボックスの生成例である。
把持対象物体包含ボックス生成部112は、ステップS202において、さらに、図11(2b)に示すように、バウンディングボックスの一面を、ハンド30のアプローチ方向(x方向)に対して正対させるように設定する。
すなわち、yz平面に平行な辺を持つバウンディングボックスについてz軸周りの回転(yaw角)を調整して、バウンディングボックスの一面を、ハンド30のアプローチ方向(x方向)に対して正対させるように設定する。
把持対象物体包含ボックス生成部112は、ステップS202において、さらに、図11(2b)に示すように、バウンディングボックスの一面を、ハンド30のアプローチ方向(x方向)に対して正対させるように設定する。
すなわち、yz平面に平行な辺を持つバウンディングボックスについてz軸周りの回転(yaw角)を調整して、バウンディングボックスの一面を、ハンド30のアプローチ方向(x方向)に対して正対させるように設定する。
(ステップS203)
次に、把持対象物体包含ボックス生成部112は、ステップS203において、把持対象物体の支持平面が存在するか否かを判定する。
支持平面とは、例えば、把持対象物体が置かれたテーブル等の平面である。
次に、把持対象物体包含ボックス生成部112は、ステップS203において、把持対象物体の支持平面が存在するか否かを判定する。
支持平面とは、例えば、把持対象物体が置かれたテーブル等の平面である。
把持対象物体の支持平面が存在する場合は、ステップS204に進む。
一方、把持対象物体の支持平面が存在しない場合は、ステップS211に進む。
一方、把持対象物体の支持平面が存在しない場合は、ステップS211に進む。
(ステップS204)
ステップS203において、把持対象物体の支持平面が存在すると判定した場合は、ステップS204に進む。
把持対象物体包含ボックス生成部112は、ステップS204において、包含ボックス(バウンディングボックス)の一面を支持平面上に設定して包含ボックス(バウンディングボックス)を生成する。
ステップS203において、把持対象物体の支持平面が存在すると判定した場合は、ステップS204に進む。
把持対象物体包含ボックス生成部112は、ステップS204において、包含ボックス(バウンディングボックス)の一面を支持平面上に設定して包含ボックス(バウンディングボックス)を生成する。
このステップS204の処理について、図12を参照して説明する。図12(3a)に示す例は、把持対象物体が支持平面であるテーブル上に置かれた状態を示している。
把持対象物体包含ボックス生成部112は、ステップS204において、図12(3a)に示すように、包含ボックス(バウンディングボックス)の一面を支持平面(テーブル)上に設定する。
さらに、支持平面(テーブル)上に設定した面と、先に、ステップS202で生成した辺、すなわち、図10(2)、図11(2b)を参照して説明した目標把持位置のアプローチ方向(x方向)に垂直な鉛直面(yz平面)に平行に設定した辺を接続して、包含ボックス(バウンディングボックス)を生成する。
この結果、例えば図13(3b)に示すような包含ボックス(バウンディングボックス)が生成される。
この結果、例えば図13(3b)に示すような包含ボックス(バウンディングボックス)が生成される。
(ステップS211)
一方、ステップS203において、把持対象物体の支持平面が存在しないと判定した場合は、ステップS211に進む。
把持対象物体包含ボックス生成部112は、ステップS211において、把持対象物体点群を、目標把持位置のアプローチ方向(y方向)に平行な鉛直面(zx平面)に投影し、この投影面を包含ボックス(バウンディングボックス)の構成面とする。
一方、ステップS203において、把持対象物体の支持平面が存在しないと判定した場合は、ステップS211に進む。
把持対象物体包含ボックス生成部112は、ステップS211において、把持対象物体点群を、目標把持位置のアプローチ方向(y方向)に平行な鉛直面(zx平面)に投影し、この投影面を包含ボックス(バウンディングボックス)の構成面とする。
この処理の具体例について、図14(4)を参照して説明する。
図14(4)に示すように、把持対象物体包含ボックス生成部112は、把持対象物体点群を、目標把持位置のアプローチ方向(y方向)に平行な鉛直面(zx平面)に投影し、この投影面を包含ボックス(バウンディングボックス)の構成面とする。
この投影処理によって生成される投影面が、図14(4)に示す「把持対象物体点群のxz平面への投影面」である。
図14(4)に示すように、把持対象物体包含ボックス生成部112は、把持対象物体点群を、目標把持位置のアプローチ方向(y方向)に平行な鉛直面(zx平面)に投影し、この投影面を包含ボックス(バウンディングボックス)の構成面とする。
この投影処理によって生成される投影面が、図14(4)に示す「把持対象物体点群のxz平面への投影面」である。
(ステッブS212)
次に、把持対象物体包含ボックス生成部112は、ステップS212において、投影した点群に対する2次元主成分分析を実行して、包含ボックス(バウンディングボックス)のピッチ軸(y軸)回りの姿勢を決定する。
次に、把持対象物体包含ボックス生成部112は、ステップS212において、投影した点群に対する2次元主成分分析を実行して、包含ボックス(バウンディングボックス)のピッチ軸(y軸)回りの姿勢を決定する。
xz平面へ投影した把持対象物体点群は、元々、3次元形状を有する把持対象物体の3次元空間に広がった点群を2次元平面(xz平面)へ投影した点群である。
この2次元平面上に展開した点群に対して、2次元主成分分析を実行して、3次元形状を有する把持対象物体を包含する形状を持つ包含ボックス(バウンディングボックス)を決定することができる。具体的には、投影点群に対する2次元主成分分析により、包含ボックス(バウンディングボックス)のピッチ軸(y軸)回りの姿勢を決定する。
この2次元平面上に展開した点群に対して、2次元主成分分析を実行して、3次元形状を有する把持対象物体を包含する形状を持つ包含ボックス(バウンディングボックス)を決定することができる。具体的には、投影点群に対する2次元主成分分析により、包含ボックス(バウンディングボックス)のピッチ軸(y軸)回りの姿勢を決定する。
この処理によって、例えば図14(5)に示すような包含ボックス(バウンディングボックス)を生成することができる。
なお、投影点群に対する2次元主成分分析の代わりに3軸の主成分分析を直接適用してもよい。
なお、投影点群に対する2次元主成分分析の代わりに3軸の主成分分析を直接適用してもよい。
また、目標把持位置の3次元位置情報が利用可能であるので、この目標把持位置の3次元位置が包含ボックス(バウンディングボックス)内に含まれるように包含ボックス(バウンディングボックス)を生成することで、より高精度な包含ボックス(バウンディングボックス)生成処理が実現される。
ここまで、図6に示すフローのステップS113の処理、すなわち、把持対象物体包含ボックス生成部112による、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)の生成処理の詳細について説明した。
上述したように、把持対象物体包含ボックス生成部112は、把持対象物体点群抽出部111が生成した把持対象物体の3次元点群に基づいて、この把持対象物体の3次元点群を包含する「把持対象物体包含ボックス(バウンディングボックス)」を生成する。
次に、図6のフローのステップS114の処理について説明する。
(ステップS114)
ステップS114では、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係の算出処理を実行する。
(ステップS114)
ステップS114では、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係の算出処理を実行する。
この処理は、ロボット制御装置100のデータ処理部110の把持位置算出部113が実行する処理である。
把持位置算出部113は、俯瞰カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係の算出処理を実行する。
なお、目標把持位置は、前述したように、例えば入出力部(ユーザ端末)180を利用して俯瞰カメラの撮影画像を見ながらユーザが設定した把持位置であり、ロボットのハンドによって把持対象物体を安定して把持することができるとユーザが判断した把持位置である。
このステップS114の処理について、図15を参照して説明する。
図15には、把持対象物体である物体50と、図6に示すフローのステップS113において、把持対象物体包含ボックス生成部112が生成した物体50を包含する俯瞰カメラ基準包含ボックス(バウンディングボックス)201を示している。
図15には、把持対象物体である物体50と、図6に示すフローのステップS113において、把持対象物体包含ボックス生成部112が生成した物体50を包含する俯瞰カメラ基準包含ボックス(バウンディングボックス)201を示している。
俯瞰カメラ基準包含ボックス(バウンディングボックス)201は俯瞰カメラ122の撮影画像に基づいて生成した包含ボックス(バウンディングボックス)である。
把持位置算出部113は、俯瞰カメラ基準包含ボックス(バウンディングボックス)201の1つの頂点を原点とした座標系(俯瞰カメラ基準包含ボックス座標系)を生成する。
図15に示すように、俯瞰カメラ基準包含ボックス座標系は、包含ボックス(バウンディングボックス)201の1つの頂点を原点(O(bb1))として、直方体形状を有する俯瞰カメラ基準包含ボックス(バウンディングボックス)201の各辺をX,Y,Z軸に設定した座標系である。
図15に示すように、俯瞰カメラ基準包含ボックス座標系は、包含ボックス(バウンディングボックス)201の1つの頂点を原点(O(bb1))として、直方体形状を有する俯瞰カメラ基準包含ボックス(バウンディングボックス)201の各辺をX,Y,Z軸に設定した座標系である。
俯瞰カメラ基準包含ボックス(バウンディングボックス)201は、俯瞰カメラ基準包含ボックス座標系上の原点(O(bb1))と、X軸上の点(X(bb1))と、Y軸上の点(Y(bb1))と、Z軸上の点(Z(bb1))、これら4点を頂点として有する直方体として定義される。
図15には、さらに、目標把持位置の俯瞰カメラ基準包含ボックス座標系における3次元位置座標を示している。図15に示す以下の2点である。
目標把持位置L((X(L1),Y(L1),Z(L1)),211L
目標把持位置R((X(R1),Y(R1),Z(R1)),211R
これらの2点である。
目標把持位置L((X(L1),Y(L1),Z(L1)),211L
目標把持位置R((X(R1),Y(R1),Z(R1)),211R
これらの2点である。
なお、目標把持位置は、前述したように、例えば入出力部(ユーザ端末)180を利用して俯瞰カメラの撮影画像を見ながらユーザが設定した目標把持位置である。
ステップS114において、把持位置算出部113は、ユーザが設定した目標把持位置を、図15に示す座標系(俯瞰カメラ基準包含ボックス座標系)上の3次元位置として算出する。すなわち、図15に示す以下の2点の3次元位置座標である。
目標把持位置L((X(L1),Y(L1),Z(L1)),211L
目標把持位置R((X(R1),Y(R1),Z(R1)),211R
目標把持位置L((X(L1),Y(L1),Z(L1)),211L
目標把持位置R((X(R1),Y(R1),Z(R1)),211R
この目標把持位置の座標は、包含ボックス(バウンディングボックス)の1つの頂点を原点とし、直方体形状を有する俯瞰カメラ基準包含ボックス(バウンディングボックス)201の各辺をX,Y,Z軸に設定した座標系における座標である。
従って、この図15に示す目標把持位置の座標は、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係を示す座標となる。
従って、この図15に示す目標把持位置の座標は、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係を示す座標となる。
このように、把持位置算出部113は、ステップS114において、俯瞰カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係の算出処理として、図15に示す座標系(俯瞰カメラ基準包含ボックス座標系)上の目標把持位置の3次元位置、すなわち、
目標把持位置L((X(L1),Y(L1),Z(L1)),211L
目標把持位置R((X(R1),Y(R1),Z(R1)),211R
これらの算出処理を実行する。
目標把持位置L((X(L1),Y(L1),Z(L1)),211L
目標把持位置R((X(R1),Y(R1),Z(R1)),211R
これらの算出処理を実行する。
次に、図6に示すステップS121~S123の処理について説明する。
ステップS121~S123の処理は、ロボットハンド部130の手先カメラ132の撮影画像に基づいて実行される処理である。
ステップS121~S123の処理は、ロボットハンド部130の手先カメラ132の撮影画像に基づいて実行される処理である。
(ステップS121)
ステップS121では、手先カメラ撮影画像内の把持対象物体の点群抽出処理を実行する。
ステップS121では、手先カメラ撮影画像内の把持対象物体の点群抽出処理を実行する。
この処理は、ロボット制御装置100のデータ処理部110の把持対象物体点群抽出部111が実行する処理である。
把持対象物体点群抽出部111は、手先カメラ132の撮影画像に含まれる把持対象物体を示す点群(3次元点群)を抽出する。先に説明したように、点群は把持対象物体となる物体の外形、すなわち物体の3次元形状を示す点群(3次元点群)に相当する。
把持対象物体点群抽出部111は、手先カメラ132の撮影画像に含まれる把持対象物体を示す点群(3次元点群)を抽出する。先に説明したように、点群は把持対象物体となる物体の外形、すなわち物体の3次元形状を示す点群(3次元点群)に相当する。
すなわち、先に図8を参照して説明したように、図8(2)に示すような把持対象物体の点群(3次元点群)を生成する。
なお、先に図8を参照して説明した処理では、ユーザが指定した把持対象物体を指定する矩形領域を利用した点群抽出を行っていた。
なお、先に図8を参照して説明した処理では、ユーザが指定した把持対象物体を指定する矩形領域を利用した点群抽出を行っていた。
この手先カメラ132の撮影画像からの把持対象物体抽出処理においても、手先カメラ132の撮影画像を入出力部(ユーザ端末)180に表示して、ユーザに把持対象物体を指定させて矩形領域を設定して同様の処理を行ってもよいが、このようなユーザによる矩形領域指定を行わずに行うことも可能である。
すなわち、手先カメラ132の撮影画像からの把持対象物体抽出処理は、俯瞰カメラ122の撮影画像に基づいて生成された包含ボックス(バウンディングボックス)の形状とサイズを参照して、自律的に実行することが可能である。
すなわち、手先カメラ132の撮影画像からの把持対象物体抽出処理は、俯瞰カメラ122の撮影画像に基づいて生成された包含ボックス(バウンディングボックス)の形状とサイズを参照して、自律的に実行することが可能である。
具体的には、例えば、画像からの特定オブジェクトの抽出処理手法として知られたMin-Cut Based Segmentation処理を適用して把持対象物体抽出処理を実行する。すなわち、Min-Cut Based Segmentation処理により、シードとなる点とサイズを俯瞰カメラ基準の包含ボックス(バウンディングボックス)に含まれる点群とサイズに設定して前景抽出をするなどの方法を適用して、手先カメラ132の撮影画像からの把持対象物体抽出処理を実行する。
この処理の際、必要であれば把持対象物体が置かれたテーブル等の支持平面の検出処理や、クラスタリングなどの処理を加えてもよい。
把持対象物体が置かれたテーブル等の支持平面の検出処理は、前述したように、例えばRANSAC手法等の既存手法が適用可能である。また、クラスタリングについてはEuclidean Clusteringなどの既存手法が適用可能である。
把持対象物体が置かれたテーブル等の支持平面の検出処理は、前述したように、例えばRANSAC手法等の既存手法が適用可能である。また、クラスタリングについてはEuclidean Clusteringなどの既存手法が適用可能である。
なお、この処理によって取得された手先カメラ132基準の抽出点群のサイズが、ステップS113で生成した俯瞰カメラ基準の包含ボックス(バウンディングボックス)と大きく異なった場合は、再度パラメータを変更して、抽出する点群を変更するなどの処理を実行することが好ましい。
このような処理を行うことで、例えば図8(2)に示すような把持対象物体の点群(3次元点群)を、手先カメラ132の撮影画像に含まれる把持対象物体を示す点群(3次元点群)として抽出することができる。
このような処理を行うことで、例えば図8(2)に示すような把持対象物体の点群(3次元点群)を、手先カメラ132の撮影画像に含まれる把持対象物体を示す点群(3次元点群)として抽出することができる。
(ステップS122)
次に、図6のフローのステップS122の処理について説明する。
ステップS122では、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)の生成処理を行う。
次に、図6のフローのステップS122の処理について説明する。
ステップS122では、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)の生成処理を行う。
この処理は、ロボット制御装置100のデータ処理部110の把持対象物体包含ボックス生成部112が実行する処理である。
把持対象物体包含ボックス生成部112は、把持対象物体点群抽出部111が生成した手先カメラ132の撮影画像内の把持対象物体の3次元点群に基づいて、この3次元点群を包含する「把持対象物体包含ボックス」を生成する。
なお、把持対象物体包含ボックス生成部112が生成する包含ボックス、すなわち手先カメラ撮影画像の把持対象物体を包含する包含ボックスは、先にステップS113において生成した包含ボックスと同一形状の包含ボックスとする。
なお、把持対象物体包含ボックス生成部112が生成する包含ボックス、すなわち手先カメラ撮影画像の把持対象物体を包含する包含ボックスは、先にステップS113において生成した包含ボックスと同一形状の包含ボックスとする。
前述したように、「把持対象物体包含ボックス」は直方体、円筒、円錐、トーラスなど、形状は特に限定されず、様々な形状とすることが可能であるが、先にステップS113において生成した「把持対象物体包含ボックス」は、直方体形状を有するバウンディングボックスであり、このステップS122においても、直方体形状を有するバウンディングボックスを生成する。
このステップS122の処理、すなわち、把持対象物体包含ボックス生成部112が実行する手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)生成処理の詳細シーケンスについて、図16に示すフローを参照して説明する。
図16に示すフローの各ステップの処理について説明する。
(ステップS301)
まず、把持対象物体包含ボックス生成部112は、ステップS301において、以下の各情報を入力する。
(a)手先カメラ基準の把持対象物体点群
(b)俯瞰カメラ基準の包含ボックス(バウンディングボックス)
(c)目標把持位置
(ステップS301)
まず、把持対象物体包含ボックス生成部112は、ステップS301において、以下の各情報を入力する。
(a)手先カメラ基準の把持対象物体点群
(b)俯瞰カメラ基準の包含ボックス(バウンディングボックス)
(c)目標把持位置
(a)手先カメラ基準の把持対象物体点群は、ステップS121において把持対象物体点群抽出部111が手先カメラの撮影画像に基づいて生成した点群データであり、把持対象物体点群抽出部111から入力する。
(b)俯瞰カメラ基準の包含ボックス(バウンディングボックス)は、図6のフローのステップS113において生成された包含ボックス(バウンディングボックス)であり、把持対象物体点包含ボックス生成部112から入力する。
(c)目標把持位置は、図6のフローのステップS111においてユーザによって入力された目標把持位置である。
(b)俯瞰カメラ基準の包含ボックス(バウンディングボックス)は、図6のフローのステップS113において生成された包含ボックス(バウンディングボックス)であり、把持対象物体点包含ボックス生成部112から入力する。
(c)目標把持位置は、図6のフローのステップS111においてユーザによって入力された目標把持位置である。
(ステップS302)
次に、把持対象物体包含ボックス生成部112は、ステップS302において、包含ボックス(バウンディングボックス)の1辺を、目標把持位置のアプローチ方向(x方向)に垂直な鉛直面(yz平面)に平行に設定する処理を行う。
次に、把持対象物体包含ボックス生成部112は、ステップS302において、包含ボックス(バウンディングボックス)の1辺を、目標把持位置のアプローチ方向(x方向)に垂直な鉛直面(yz平面)に平行に設定する処理を行う。
この処理は、先に説明した図9のフローのステップS202の処理と同様の処理である。
すなわち、先に図10、図11を参照して説明した処理である。
ステップS302では、包含ボックス(バウンディングボックス)の1辺を、目標把持位置のアプローチ方向(x方向)に垂直な鉛直面(yz平面)に平行に設定する処理を行う。
具体的には、図10(2)に示すように、目標把持位置のアプローチ方向(x方向)に垂直な鉛直面(yz平面)に平行な辺を包含ボックス(バウンディングボックス)の1辺として設定する。
すなわち、先に図10、図11を参照して説明した処理である。
ステップS302では、包含ボックス(バウンディングボックス)の1辺を、目標把持位置のアプローチ方向(x方向)に垂直な鉛直面(yz平面)に平行に設定する処理を行う。
具体的には、図10(2)に示すように、目標把持位置のアプローチ方向(x方向)に垂直な鉛直面(yz平面)に平行な辺を包含ボックス(バウンディングボックス)の1辺として設定する。
この辺を4本、設定することで、直方体形状のバウンディングボックスの面が規定されることになる。しかし、このyz平面に平行な辺を持つバウンディングボックスとしては、例えば図11(2a),(2b)に示すような様々なバウンディングボックスが生成可能である。
図11(2a)は、好ましくないバウンディングボックスの生成例であり、図11(2b)は、好ましいバウンディングボックスの生成例である。
把持対象物体包含ボックス生成部112は、ステップS202において、さらに、図11(2b)に示すように、バウンディングボックスの一面を、ハンド30のアプローチ方向(x方向)に対して正対させるように設定する。
すなわち、yz平面に平行な辺を持つバウンディングボックスについてz軸周りの回転(yaw角)を調整して、バウンディングボックスの一面を、ハンド30のアプローチ方向(x方向)に対して正対させるように設定する。
把持対象物体包含ボックス生成部112は、ステップS202において、さらに、図11(2b)に示すように、バウンディングボックスの一面を、ハンド30のアプローチ方向(x方向)に対して正対させるように設定する。
すなわち、yz平面に平行な辺を持つバウンディングボックスについてz軸周りの回転(yaw角)を調整して、バウンディングボックスの一面を、ハンド30のアプローチ方向(x方向)に対して正対させるように設定する。
(ステップS303)
次に、把持対象物体包含ボックス生成部112は、ステップS303において、把持対象物体の支持平面が存在するか否かを判定する。
支持平面とは、例えば、把持対象物体が置かれたテーブル等の平面である。
次に、把持対象物体包含ボックス生成部112は、ステップS303において、把持対象物体の支持平面が存在するか否かを判定する。
支持平面とは、例えば、把持対象物体が置かれたテーブル等の平面である。
把持対象物体の支持平面が存在する場合は、ステップS304に進む。
一方、把持対象物体の支持平面が存在しない場合は、ステップS311に進む。
一方、把持対象物体の支持平面が存在しない場合は、ステップS311に進む。
(ステップS304)
ステップS303において、把持対象物体の支持平面が存在すると判定した場合は、ステップS304に進む。
把持対象物体包含ボックス生成部112は、ステップS304において、包含ボックス(バウンディングボックス)の一面を支持平面上に設定して包含ボックス(バウンディングボックス)を生成する。
ステップS303において、把持対象物体の支持平面が存在すると判定した場合は、ステップS304に進む。
把持対象物体包含ボックス生成部112は、ステップS304において、包含ボックス(バウンディングボックス)の一面を支持平面上に設定して包含ボックス(バウンディングボックス)を生成する。
このステップS304の処理は、先に説明した図9のフローのステップS204の処理と同様の処理である。
すなわち、先に図12、図13を参照して説明した処理である。
図12(3a)に示す例は、把持対象物体が支持平面であるテーブル上に置かれた状態を示している。
すなわち、先に図12、図13を参照して説明した処理である。
図12(3a)に示す例は、把持対象物体が支持平面であるテーブル上に置かれた状態を示している。
把持対象物体包含ボックス生成部112は、ステップS304において、図12(3a)に示すように、包含ボックス(バウンディングボックス)の一面を支持平面(テーブル)上に設定する。
さらに、支持平面(テーブル)上に設定した面と、先に、ステップS302で生成した辺、すなわち、図10(2)、図11(2b)を参照して説明した目標把持位置のアプローチ方向(x方向)に垂直な鉛直面(yz平面)に平行に設定した辺を接続して、包含ボックス(バウンディングボックス)を生成する。
この結果、例えば図13(3b)に示すような包含ボックス(バウンディングボックス)が生成される。
この結果、例えば図13(3b)に示すような包含ボックス(バウンディングボックス)が生成される。
(ステップS311)
一方、ステップS303において、把持対象物体の支持平面が存在しないと判定した場合は、ステップS311に進む。
把持対象物体包含ボックス生成部112は、ステップS311において、すでに生成済みの俯瞰カメラ122の撮影画像に基づく包含ボックス(バウンディングボックス)と同じ姿勢を持つ包含ボックス(バウンディングボックス)を手先カメラ132撮影画像に基づく包含ボックス(バウンディングボックス)として設定する。
一方、ステップS303において、把持対象物体の支持平面が存在しないと判定した場合は、ステップS311に進む。
把持対象物体包含ボックス生成部112は、ステップS311において、すでに生成済みの俯瞰カメラ122の撮影画像に基づく包含ボックス(バウンディングボックス)と同じ姿勢を持つ包含ボックス(バウンディングボックス)を手先カメラ132撮影画像に基づく包含ボックス(バウンディングボックス)として設定する。
すなわち、図6に示すフローのステップS113において生成した俯瞰カメラ122の撮影画像に基づく包含ボックス(バウンディングボックス)と同じ姿勢を持つ包含ボックス(バウンディングボックス)を手先カメラ132撮影画像に基づく包含ボックス(バウンディングボックス)として設定する。
次に、図6のフローのステップS123の処理について説明する。
(ステップS123)
ステップS123では、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係を適用して、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対する目標把持位置の相対位置である補正目標把持位置の算出処理を実行する。
(ステップS123)
ステップS123では、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係を適用して、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対する目標把持位置の相対位置である補正目標把持位置の算出処理を実行する。
すなわち、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対する把持対象物体の目標把持位置の相対位置を算出し、算出した相対位置に基づいて、手先カメラの撮影画像内の手先カメラ基準包含ボックスに対する目標把持位置を算出し、算出位置を手先カメラの撮影画像に含まれる把持対象物体の補正目標把持位置として設定する。
この処理は、図5に示すロボット制御装置100のデータ処理部110の把持位置算出部113が実行する処理である。
把持位置算出部113は、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係を適用して、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対する目標把持位置の相対位置である補正目標把持位置の算出処理を実行する。
なお、目標把持位置は、前述したように、例えば入出力部(ユーザ端末)180を利用して俯瞰カメラの撮影画像を見ながらユーザが設定した把持位置であり、ロボットのハンドによって把持対象物体を安定して把持することができるとユーザが判断した把持位置である。
先に図15を参照して説明した俯瞰カメラ122の撮影画像にも基づく処理である図6に示すフローのステップ114において、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)と目標把持位置との相対位置が算出されている。
ステップS123では、この俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係を利用して、俯瞰カメラ撮影画像内の目標把持位置が、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対してどの位置になるかを算出する。
ステップS123では、この俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係を利用して、俯瞰カメラ撮影画像内の目標把持位置が、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対してどの位置になるかを算出する。
すなわち、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対する目標把持位置の相対位置である補正目標把持位置の算出処理を実行する。
把持位置算出部113は、ステップS123において、
(a)俯瞰カメラ122の撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)と、
(b)手先カメラ132の撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)
これら、異なるカメラの撮影画像内の把持対象物体の2つの把持対象物体包含ボックス(バウンディングボックス)を生成し、各包含ボックス(バウンディングボックス)と把持位置との相対位置を一致させることで、ユーザが設定した目標把持位置が、手先カメラの撮影画像に含まれる把持対象物体のどの位置に対応するかを算出する。この算出位置を補正目標把持位置とする。
(a)俯瞰カメラ122の撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)と、
(b)手先カメラ132の撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)
これら、異なるカメラの撮影画像内の把持対象物体の2つの把持対象物体包含ボックス(バウンディングボックス)を生成し、各包含ボックス(バウンディングボックス)と把持位置との相対位置を一致させることで、ユーザが設定した目標把持位置が、手先カメラの撮影画像に含まれる把持対象物体のどの位置に対応するかを算出する。この算出位置を補正目標把持位置とする。
この処理によって設定される手先カメラ132の撮影画像内の補正目標把持位置は、ユーザが俯瞰カメラ122の撮影画像を見ながら設定した目標把持位置に対応する位置となる。
従って、ロボット制御装置100は、手先カメラ132の撮影画像を観察して、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対する目標把持位置の相対位置である補正目標把持位置にハンドのグリッパーを当接させて物体50の把持処理を行うことで、物体50を安定して把持することが可能となる。
従って、ロボット制御装置100は、手先カメラ132の撮影画像を観察して、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対する目標把持位置の相対位置である補正目標把持位置にハンドのグリッパーを当接させて物体50の把持処理を行うことで、物体50を安定して把持することが可能となる。
このステップS123の処理について、図17を参照して説明する。
図17には、以下の2つの図を示している。
(1)俯瞰カメラ基準の解析データ
(2)手先カメラ基準の解析データ
図17には、以下の2つの図を示している。
(1)俯瞰カメラ基準の解析データ
(2)手先カメラ基準の解析データ
(1)俯瞰カメラ基準の解析データは、俯瞰カメラ122の撮影画像に基づいて生成されるデータである。
すなわち、図6に示すフローのステップS111~S114の処理によって生成されるデータであり、先に図15を参照して説明したデータに相当する。
すなわち、図6に示すフローのステップS111~S114の処理によって生成されるデータであり、先に図15を参照して説明したデータに相当する。
(2)手先カメラ基準の解析データは、手先カメラ132の撮影画像に基づいて生成されるデータである。
すなわち、図6に示すフローのステップS121~S123の処理によって生成されるデータである。
すなわち、図6に示すフローのステップS121~S123の処理によって生成されるデータである。
(1)俯瞰カメラ基準の解析データには、
(1a)把持対象物体である物体50、
(1b)図6に示すフローのステップS113において、把持対象物体包含ボックス生成部112が生成した物体50を包含する俯瞰カメラ基準包含ボックス(バウンディングボックス)201、
(1c)図6に示すフローのステップS111において、ユーザが俯瞰カメラ122の撮影画像に基づいて設定した目標把持位置211L,211R、
これらの各データを示している。
(1a)把持対象物体である物体50、
(1b)図6に示すフローのステップS113において、把持対象物体包含ボックス生成部112が生成した物体50を包含する俯瞰カメラ基準包含ボックス(バウンディングボックス)201、
(1c)図6に示すフローのステップS111において、ユーザが俯瞰カメラ122の撮影画像に基づいて設定した目標把持位置211L,211R、
これらの各データを示している。
これらの各データは、先に図15を参照して説明したと同様、俯瞰カメラ基準包含ボックス座標系上に示している。
前述したように、俯瞰カメラ基準包含ボックス座標系は、包含ボックス(バウンディングボックス)201の1つの頂点を原点(O(bb1))として、直方体形状を有する俯瞰カメラ基準包含ボックス(バウンディングボックス)201の各辺をX,Y,Z軸に設定した座標系である。
前述したように、俯瞰カメラ基準包含ボックス座標系は、包含ボックス(バウンディングボックス)201の1つの頂点を原点(O(bb1))として、直方体形状を有する俯瞰カメラ基準包含ボックス(バウンディングボックス)201の各辺をX,Y,Z軸に設定した座標系である。
俯瞰カメラ基準包含ボックス(バウンディングボックス)201は、俯瞰カメラ基準包含ボックス座標系の原点(O(bb1))と、X軸上の点(X(bb1))と、Y軸上の点(Y(bb1))と、Z軸上の点(Z(bb1))、これら4点を頂点として有する直方体として定義される。
図17(1)には、さらに、目標把持位置の俯瞰カメラ基準包含ボックス座標系における3次元位置座標を示している。図17(1)に示す以下の2点である。
目標把持位置L((X(L1),Y(L1),Z(L1)),211L
目標把持位置R((X(R1),Y(R1),Z(R1)),211R
これらの2点である。
これらの目標把持位置は、前述したように、例えば入出力部(ユーザ端末)180を利用して俯瞰カメラの撮影画像を見ながらユーザが設定した把持位置である。
目標把持位置L((X(L1),Y(L1),Z(L1)),211L
目標把持位置R((X(R1),Y(R1),Z(R1)),211R
これらの2点である。
これらの目標把持位置は、前述したように、例えば入出力部(ユーザ端末)180を利用して俯瞰カメラの撮影画像を見ながらユーザが設定した把持位置である。
先に図15を参照して説明したように、これら、図17(1)に示す目標把持位置の座標は、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係を示す座標である。
図6のフローのステップS123では、把持位置算出部113が以下の処理を実行する。
すなわち、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係を適用して、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対する目標把持位置の相対位置である補正目標把持位置の算出処理を実行する。
すなわち、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係を適用して、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対する目標把持位置の相対位置である補正目標把持位置の算出処理を実行する。
具体的には、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対する把持対象物体の目標把持位置の相対位置を算出し、算出した相対位置に基づいて、手先カメラの撮影画像内の手先カメラ基準包含ボックスに対する目標把持位置を算出し、算出位置を手先カメラの撮影画像に含まれる把持対象物体の補正目標把持位置として設定する。
補正目標把持位置とは、図17(2)に示す補正目標把持位置である。
すなわち、図17(2)に示す補正目標把持位置、
補正目標把持位置L((X(L2),Y(L2),Z(L2)),231L
補正目標把持位置R((X(R2),Y(R2),Z(R2)),231R
これらの算出処理を実行する。
すなわち、図17(2)に示す補正目標把持位置、
補正目標把持位置L((X(L2),Y(L2),Z(L2)),231L
補正目標把持位置R((X(R2),Y(R2),Z(R2)),231R
これらの算出処理を実行する。
図17(2)には、
(2a)把持対象物体である物体50、
(2b)図6に示すフローのステップS122において、把持対象物体包含ボックス生成部112が生成した物体50を包含する手先カメラ基準包含ボックス(バウンディングボックス)221、
(2c)補正目標把持位置231L,231R、
これらの各データを示している。
(2a)把持対象物体である物体50、
(2b)図6に示すフローのステップS122において、把持対象物体包含ボックス生成部112が生成した物体50を包含する手先カメラ基準包含ボックス(バウンディングボックス)221、
(2c)補正目標把持位置231L,231R、
これらの各データを示している。
これらの各データは、手先カメラ基準包含ボックス座標系上に示している。
手先カメラ基準包含ボックス座標系は、手先カメラ基準包含ボックス(バウンディングボックス)221の1つの頂点を原点(O(bb2))として、直方体形状を有する手先カメラ基準包含ボックス(バウンディングボックス)221の各辺をX,Y,Z軸に設定した座標系である。
手先カメラ基準包含ボックス座標系は、手先カメラ基準包含ボックス(バウンディングボックス)221の1つの頂点を原点(O(bb2))として、直方体形状を有する手先カメラ基準包含ボックス(バウンディングボックス)221の各辺をX,Y,Z軸に設定した座標系である。
手先カメラ基準包含ボックス(バウンディングボックス)221は、手先カメラ基準包含ボックス座標系上の原点(O(bb1))と、X軸上の点(X(bb1))と、Y軸上の点(Y(bb1))と、Z軸上の点(Z(bb1))、これら4点を頂点として有する直方体として定義される。
把持位置算出部113は、図6のフローのステップS123において、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係を適用して、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対する目標把持位置の相対位置である補正目標把持位置の算出処理を実行する。
すなわち、図17(2)に示す
補正目標把持位置L((X(L2),Y(L2),Z(L2)),231L
補正目標把持位置R((X(R2),Y(R2),Z(R2)),231R
これらの算出処理を実行する。
補正目標把持位置L((X(L2),Y(L2),Z(L2)),231L
補正目標把持位置R((X(R2),Y(R2),Z(R2)),231R
これらの算出処理を実行する。
把持位置算出部113の実行する補正目標把持位置の算出処理は以下のようにして実行する。
まず、図17(1)に示す俯瞰カメラ基準の解析データに含まれる俯瞰カメラ基準包含ボックス座標系における目標把持位置、すなわち、
目標把持位置L((X(L1),Y(L1),Z(L1)),211L
目標把持位置R((X(R1),Y(R1),Z(R1)),211R
これらの2点の座標を、俯瞰カメラ基準包含ボックス(バウンディングボックス)201の頂点データ(X(bb1),Y(bb1),Z(bb1))を用いて示す関係式を生成する。
まず、図17(1)に示す俯瞰カメラ基準の解析データに含まれる俯瞰カメラ基準包含ボックス座標系における目標把持位置、すなわち、
目標把持位置L((X(L1),Y(L1),Z(L1)),211L
目標把持位置R((X(R1),Y(R1),Z(R1)),211R
これらの2点の座標を、俯瞰カメラ基準包含ボックス(バウンディングボックス)201の頂点データ(X(bb1),Y(bb1),Z(bb1))を用いて示す関係式を生成する。
すなわち、以下の関係式(関係式1),(関係式2)を生成する。
目標把持位置L((X(L1),Y(L1),Z(L1))
=((lx)・(X(bb1)),(ly)・(Y(bb1)),(lz)・(Z(bb1)))・・・(関係式1)
目標把持位置R((X(R1),Y(R1),Z(R1))
=((rx)・(X(bb1)),(ry)・(Y(bb1)),(rz)・(Z(bb1)))・・・(関係式2)
このような2つの関係式(関係式1),(関係式2)を生成する。
目標把持位置L((X(L1),Y(L1),Z(L1))
=((lx)・(X(bb1)),(ly)・(Y(bb1)),(lz)・(Z(bb1)))・・・(関係式1)
目標把持位置R((X(R1),Y(R1),Z(R1))
=((rx)・(X(bb1)),(ry)・(Y(bb1)),(rz)・(Z(bb1)))・・・(関係式2)
このような2つの関係式(関係式1),(関係式2)を生成する。
なお、(関係式1)に示すlx,ly,lzは、俯瞰カメラ基準包含ボックス(バウンディングボックス)201の各辺の長さに対する、目標把持位置Lの座標((X(L1),Y(L1),Z(L1))のxyz各座標位置の割合を示す係数である。
同様に、(関係式2)に示すrx,ry,rzは、俯瞰カメラ基準包含ボックス(バウンディングボックス)201の各辺の長さに対する、目標把持位置Rの座標((X(R1),Y(R1),Z(R1))のxyz各座標位置の割合を示す係数である。
同様に、(関係式2)に示すrx,ry,rzは、俯瞰カメラ基準包含ボックス(バウンディングボックス)201の各辺の長さに対する、目標把持位置Rの座標((X(R1),Y(R1),Z(R1))のxyz各座標位置の割合を示す係数である。
これらの2つの関係式(関係式1),(関係式2)に基づいて係数lx,ly,lzと、係数rx,ry,rzを算出する。
次に、図17(2)に示す手先カメラ基準の解析データに示す手先カメラ基準包含ボックス(バウンディングボックス)221の各辺の長さ(X(bb2),Y(bb2),Z(bb2))に、上記関係式1,2に基づいて算出した係数(lx,ly,lz,rx,ry,rz)を乗算して、
補正目標把持位置L((X(L2),Y(L2),Z(L2)),231L
補正目標把持位置R((X(R2),Y(R2),Z(R2)),231R
これらの補正目標把持位置L,Rを算出する。
補正目標把持位置L((X(L2),Y(L2),Z(L2)),231L
補正目標把持位置R((X(R2),Y(R2),Z(R2)),231R
これらの補正目標把持位置L,Rを算出する。
すなわち、以下の算出式(算出式1)、(算出式2)を用いて、補正目標把持位置L,Rを算出する。
補正目標把持位置L((X(L2),Y(L2),Z(L2))
=((lx)・(X(bb2)),(ly)・(Y(bb2)),(lz)・(Z(bb2)))・・・(算出式1)
補正目標把持位置R((X(R2),Y(R2),Z(R2))
=((rx)・(X(bb2)),(ry)・(Y(bb2)),(rz)・(Z(bb2)))・・・(算出式2)
これら2つの算出式(算出式1),(算出式2)により、補正目標把持位置L,Rを算出する。
補正目標把持位置L((X(L2),Y(L2),Z(L2))
=((lx)・(X(bb2)),(ly)・(Y(bb2)),(lz)・(Z(bb2)))・・・(算出式1)
補正目標把持位置R((X(R2),Y(R2),Z(R2))
=((rx)・(X(bb2)),(ry)・(Y(bb2)),(rz)・(Z(bb2)))・・・(算出式2)
これら2つの算出式(算出式1),(算出式2)により、補正目標把持位置L,Rを算出する。
把持位置算出部113は、上述した処理により、図6のフローのステップS123において、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対する目標把持位置の相対位置である補正目標把持位置の算出処理を実行する。
この処理によって設定される手先カメラ132の撮影画像内の補正目標把持位置は、ユーザが俯瞰カメラ122の撮影画像を見ながら設定した目標把持位置に対応する位置となる。
従って、ロボット制御装置100は、手先カメラ132の撮影画像を観察して、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対する目標把持位置の相対位置である補正目標把持位置にハンドのグリッパーを当接させて物体50の把持処理を行うことで、物体50を安定して把持することが可能となる。
従って、ロボット制御装置100は、手先カメラ132の撮影画像を観察して、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対する目標把持位置の相対位置である補正目標把持位置にハンドのグリッパーを当接させて物体50の把持処理を行うことで、物体50を安定して把持することが可能となる。
以上、説明したように、本開示のロボット制御装置100は、
(a)俯瞰カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)と、
(b)手先カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)
これら、異なるカメラの撮影画像内の把持対象物体の2つの把持対象物体包含ボックス(バウンディングボックス)を生成し、各包含ボックス(バウンディングボックス)と把持位置との相対位置を一致させることで、ユーザが設定した目標把持位置が、手先カメラの撮影画像に含まれる把持対象物体のどの位置に対応するかを算出する。この算出位置を補正目標把持位置とする。
(a)俯瞰カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)と、
(b)手先カメラ撮影画像内の把持対象物体の把持対象物体包含ボックス(バウンディングボックス)
これら、異なるカメラの撮影画像内の把持対象物体の2つの把持対象物体包含ボックス(バウンディングボックス)を生成し、各包含ボックス(バウンディングボックス)と把持位置との相対位置を一致させることで、ユーザが設定した目標把持位置が、手先カメラの撮影画像に含まれる把持対象物体のどの位置に対応するかを算出する。この算出位置を補正目標把持位置とする。
制御情報生成部114は、把持位置算出部113が算出した「補正目標把持位置」をロボットのハンドによって把持させるための制御情報を生成する。この制御情報が、ロボット移動部140の駆動部141や、ロボットハンド部130の駆動部131に出力される。
ロボット移動部140の駆動部141や、ロボットハンド部130の駆動部131は、制御情報生成部114の生成した制御情報、すなわち、ロボットのハンドにより、把持位置算出部113が算出した「補正目標把持位置」を把持させる制御情報に従って駆動処理を実行する。
この駆動処理によって、ロボットのハンドは、「補正目標把持位置」を把持することが可能となる。
この「補正目標把持位置」は、ユーザが俯瞰画像を見ながら指定した目標把持位置に一致する把持位置であり、手先カメラの撮影画像に含まれる把持対象物体上に設定される把持位置である。この手先カメラの撮影画像に含まれる把持対象物体上に設定される補正目標把持位置をロボットのハンドで把持することで、物体を安定して把持することが可能となる。
この駆動処理によって、ロボットのハンドは、「補正目標把持位置」を把持することが可能となる。
この「補正目標把持位置」は、ユーザが俯瞰画像を見ながら指定した目標把持位置に一致する把持位置であり、手先カメラの撮影画像に含まれる把持対象物体上に設定される把持位置である。この手先カメラの撮影画像に含まれる把持対象物体上に設定される補正目標把持位置をロボットのハンドで把持することで、物体を安定して把持することが可能となる。
[5.本開示のロボット制御装置の変形例、応用例について]
次に、上述した本開示のロボット制御装置の変形例や応用例について説明する。
次に、上述した本開示のロボット制御装置の変形例や応用例について説明する。
以下の各項目の変形例、応用例について、順次説明する。
(1)図6に示すフローの処理手順について
(2)図6に示すフローのステップS111の処理について
(3)図6に示すフローのステップS112の処理について
(4)図6に示すフローのステップS113以下の処理について
(5)図6に示すフローのステップS114、およびステップS123の処理について
(1)図6に示すフローの処理手順について
(2)図6に示すフローのステップS111の処理について
(3)図6に示すフローのステップS112の処理について
(4)図6に示すフローのステップS113以下の処理について
(5)図6に示すフローのステップS114、およびステップS123の処理について
(1)図6に示すフローの処理手順について
先に説明したように、図6に示すフロー中、ステップS111~ステップS114の処理は、ロボット頭部120の俯瞰カメラ122の撮影画像(距離画像も含む)に基づいて実行される処理である。
一方、図6に示すフロー中、ステップS121~ステップS123の処理は、ロボットハンド部130の手先カメラ132の撮影画像(距離画像も含む)に基づいて実行される処理である。
先に説明したように、図6に示すフロー中、ステップS111~ステップS114の処理は、ロボット頭部120の俯瞰カメラ122の撮影画像(距離画像も含む)に基づいて実行される処理である。
一方、図6に示すフロー中、ステップS121~ステップS123の処理は、ロボットハンド部130の手先カメラ132の撮影画像(距離画像も含む)に基づいて実行される処理である。
これらの処理中、俯瞰カメラ122の撮影画像(距離画像も含む)に基づいて実行するステップS111~ステップS114の処理と、手先カメラ132の撮影画像(距離画像も含む)に基づいて実行するステップS121~ステップS122の処理は、並列に実行することが可能である。
また、ステップS111~ステップS114の処理の終了後に、ステップS121~ステップS122の処理を実行してもよい。
また、ステップS111~ステップS114の処理の終了後に、ステップS121~ステップS122の処理を実行してもよい。
ただし、ステップS123の処理は、俯瞰カメラ122の撮影画像(距離画像も含む)に基づいて実行するステップS111~ステップS114の処理と、手先カメラ132の撮影画像(距離画像も含む)に基づいて実行するステップS121~ステップS122の処理の終了後に実行する。
処理手順については、俯瞰カメラ122と手先カメラ132の撮影画像内に確実に把持対象物体である物体50が観察可能なタイミングで行うように設定することが好ましい。
処理手順を制御することで、例えばアームやハンドといった部分が俯瞰カメラ122の視界を遮ってしまい、把持対象物体にオクルージョンが生じた状態での処理を避けることが可能となる。
処理手順を制御することで、例えばアームやハンドといった部分が俯瞰カメラ122の視界を遮ってしまい、把持対象物体にオクルージョンが生じた状態での処理を避けることが可能となる。
(2)図6に示すフローのステップS111の処理について
図6に示すフローのステップS111では、俯瞰カメラ撮影画像を用いた把持対象物体の指定情報と、目標把持位置の指定情報を入力する処理を行っていた。
図6に示すフローのステップS111では、俯瞰カメラ撮影画像を用いた把持対象物体の指定情報と、目標把持位置の指定情報を入力する処理を行っていた。
すなわち、先に図7を参照して説明したように、入出力部(ユーザ端末)180を利用して俯瞰カメラの撮影画像を見ながらユーザが把持対象物体の指定情報と、目標把持位置の指定情報を入力していた。
把持対象物体の指定では、物体を囲む矩形領域を入力する構成としたが、これは一例であり、例えば物体の一部をタッチする処理や、本出願人の先の特許出願である特許文献2(特開2013-184257号公報)に記載されたような様々な物体指定処理を行う構成としてもよい。
また、機械学習処理であるDeep Learningによる物体検出(R-CNN、YOLO、SSDなど)を行った後、ユーザが物体に対応する矩形を選択する処理を行ってもよい。
また、セマンティックセグメンテーションによりピクセル単位で物体を抽出し、ユーザが物体を選択する方法を適用してもよい。
さらに、目標把持位置が既に決定されている場合においては、目標把持位置に最も近い物体を自動で選択する処理を行う構成としてもよい。
また、目標把持位置の決定方法についても、ユーザが位置姿勢まで直接決めるのではなく、把持対象物体のみを指定し、把持計画を行って自律で目標把持位置を決定してもよい。
また、セマンティックセグメンテーションによりピクセル単位で物体を抽出し、ユーザが物体を選択する方法を適用してもよい。
さらに、目標把持位置が既に決定されている場合においては、目標把持位置に最も近い物体を自動で選択する処理を行う構成としてもよい。
また、目標把持位置の決定方法についても、ユーザが位置姿勢まで直接決めるのではなく、把持対象物体のみを指定し、把持計画を行って自律で目標把持位置を決定してもよい。
(3)図6に示すフローのステップS112の処理について
図6に示すフローのステップS112では、俯瞰カメラ撮影画像内の把持対象物体の点群抽出処理を実行する処理を行っていた。
図6に示すフローのステップS112では、俯瞰カメラ撮影画像内の把持対象物体の点群抽出処理を実行する処理を行っていた。
この処理は、先に図8を参照して説明したように、ユーザの指定した矩形領域に対応する物体点群を抽出する処理として実行していた。
この点群抽出処理についても、ステップS111の把持対象物体の指定処理と同様、Min-cut based segmentationのような前景抽出を適用して実行してもよい。
この点群抽出処理についても、ステップS111の把持対象物体の指定処理と同様、Min-cut based segmentationのような前景抽出を適用して実行してもよい。
なお、この場合、ユーザが指示する物体の点群を表すどこかの1点、もしくは矩形領域の中心に対応する点とあらかじめ決めておいた大まかな把持物体のサイズをもとに前景抽出を行っておくことで、無関係な点群の大まかな除去が可能になる。
(4)図6に示すフローのステップS113以下の処理について
図6に示すフローのステップS113以下の処理において、ロボットのハンドの形状をグリッパー型のハンドを用いた実施例として説明したが、例えば3本以上の多指ハンドや吸着ハンドなどその他のタイプについても、ハンド形状に応じたハンドの代表点を定義することにより、上述した実施例と同様、目標把持位置に対応する補正目標把持位置を算出して安定した把持処理を実行させることが可能である。
図6に示すフローのステップS113以下の処理において、ロボットのハンドの形状をグリッパー型のハンドを用いた実施例として説明したが、例えば3本以上の多指ハンドや吸着ハンドなどその他のタイプについても、ハンド形状に応じたハンドの代表点を定義することにより、上述した実施例と同様、目標把持位置に対応する補正目標把持位置を算出して安定した把持処理を実行させることが可能である。
例えば、5指ハンドにおいては、各指の接触点の目標把持位置を5点用意し、全ての点について、俯瞰カメラ撮影画像と、手先カメラ撮影画像の各々に設定した包含ボックス(バウンディングボックス)との相対位置を算出する。このような処理により、5指ハンドの各指の接触点対応の目標把持位置に対応する補正目標把持位置を算出することができる。
(5)図6に示すフローのステップS114、およびステップS123の処理について
図6に示すフローのステップS114、およびステップS123では、先に図15や図17を参照して説明したように、把持対象物体の包含ボックス(バウンディングボックス)と把持位置との相対位置関係を算出する処理として、x、y、z座標、全てにおいて相対位置関係を算出する処理を行っていた。
図6に示すフローのステップS114、およびステップS123では、先に図15や図17を参照して説明したように、把持対象物体の包含ボックス(バウンディングボックス)と把持位置との相対位置関係を算出する処理として、x、y、z座標、全てにおいて相対位置関係を算出する処理を行っていた。
また、ステップS123では、俯瞰カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)と目標把持位置との相対位置関係を適用して、手先カメラ撮影画像内の把持対象物体の包含ボックス(バウンディングボックス)に対する目標把持位置の相対位置である補正目標把持位置の算出処理を実行していた。
しかし、例えば、俯瞰カメラと手先カメラの視点の違いにより包含ボックス(バウンディングボックス)の形状が大きく異なる成分がある場合は、その成分については、補正目標把持位置の算出処理を行わず、包含ボックス(バウンディングボックス)の形状が近い成分のみ算出する処理を行う構成としてもよい。例えば、グリッパーが物体を挟み込めるように、物体をハンドの中に入れるためにy方向にずれるのを修正したい場合はy成分のみ算出すればよい。また、把持対象物体のなるべく上の方を持ってほしいというユーザの指示を反映したい場合は、z成分を優先的に算出するといった処理を行うといった処理としてもよい。
[6.本開示のロボット制御装置のハードウェア構成例について]
次に、本開示のロボット制御装置のハードウェア構成の一例について説明する。
次に、本開示のロボット制御装置のハードウェア構成の一例について説明する。
上述した実施例で説明したロボット制御装置は、ロボット自体とは別の装置として構成することも可能であり、また、ロボット内の装置として構成することも可能である。
ロボット制御装置は、例えばPC等の情報処理装置を利用して実現することもできる。
図18を参照して本開示のロボット制御装置を構成する情報処理装置の一構成例について説明する。
ロボット制御装置は、例えばPC等の情報処理装置を利用して実現することもできる。
図18を参照して本開示のロボット制御装置を構成する情報処理装置の一構成例について説明する。
CPU(Central Processing Unit)301は、ROM(Read Only Memory)302、または記憶部308に記憶されているプログラムに従って各種の処理を実行する制御部やデータ処理部として機能する。例えば、上述した実施例において説明したシーケンスに従った処理を実行する。RAM(Random Access Memory)303には、CPU301が実行するプログラムやデータなどが記憶される。これらのCPU301、ROM302、およびRAM303は、バス304により相互に接続されている。
CPU301はバス304を介して入出力インタフェース305に接続され、入出力インタフェース305には、各種スイッチ、キーボード、マウス、マイクロホン、センサなどよりなる入力部306、ディスプレイ、スピーカーなどよりなる出力部307が接続されている。CPU301は、入力部306から入力される指令に対応して各種の処理を実行し、処理結果を例えば出力部307に出力する。
入出力インタフェース305に接続されている記憶部308は、例えばハードディスク等からなり、CPU301が実行するプログラムや各種のデータを記憶する。通信部309は、Wi-Fi通信、ブルートゥース(登録商標)(BT)通信、その他インターネットやローカルエリアネットワークなどのネットワークを介したデータ通信の送受信部として機能し、外部の装置と通信する。
入出力インタフェース305に接続されているドライブ310は、磁気ディスク、光ディスク、光磁気ディスク、あるいはメモリカード等の半導体メモリなどのリムーバブルメディア311を駆動し、データの記録あるいは読み取りを実行する。
[7.本開示の構成のまとめ]
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、本明細書において開示した技術は、以下のような構成をとることができる。
(1) ロボットに装着された第1カメラの撮影画像に含まれる把持対象物体を包含する第1カメラ基準包含ボックスと、前記ロボットに装着された第2カメラの撮影画像に含まれる前記把持対象物体を包含する第2カメラ基準包含ボックスを生成する包含ボックス生成部と、
前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスに対する前記把持対象物体の目標把持位置の相対位置を算出し、算出した前記相対位置に基づいて、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスに対する前記目標把持位置を算出し、算出位置を前記第2カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定する把持位置算出部と、
前記第2カメラの撮影画像内の前記補正目標把持位置を前記ロボットのハンドで把持させる制御情報を生成する制御情報生成部を有するロボット制御装置。
(1) ロボットに装着された第1カメラの撮影画像に含まれる把持対象物体を包含する第1カメラ基準包含ボックスと、前記ロボットに装着された第2カメラの撮影画像に含まれる前記把持対象物体を包含する第2カメラ基準包含ボックスを生成する包含ボックス生成部と、
前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスに対する前記把持対象物体の目標把持位置の相対位置を算出し、算出した前記相対位置に基づいて、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスに対する前記目標把持位置を算出し、算出位置を前記第2カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定する把持位置算出部と、
前記第2カメラの撮影画像内の前記補正目標把持位置を前記ロボットのハンドで把持させる制御情報を生成する制御情報生成部を有するロボット制御装置。
(2) 前記第1カメラは、俯瞰画像を撮影する俯瞰カメラであり、
前記第2カメラは、前記把持対象物体の把持処理を行う前記ハンド、または前記ハンドに近い位置からの画像を撮影する手先カメラである(1)に記載のロボット制御装置。
前記第2カメラは、前記把持対象物体の把持処理を行う前記ハンド、または前記ハンドに近い位置からの画像を撮影する手先カメラである(1)に記載のロボット制御装置。
(3) 前記第1カメラは、前記ロボットの頭部に装着され、頭部からの俯瞰画像を撮影する俯瞰カメラである(2)に記載のロボット制御装置。
(4) 前記目標把持位置は、
前記第1カメラの撮影画像を表示した表示部の画像を見てユーザが指定した把持位置である(1)~(3)いずれかに記載のロボット制御装置。
前記第1カメラの撮影画像を表示した表示部の画像を見てユーザが指定した把持位置である(1)~(3)いずれかに記載のロボット制御装置。
(5) 前記目標把持位置は、
前記第1カメラの撮影画像を表示した表示部の画像を見たユーザが、前記把持対象物体を安定して把持可能な位置と判断した把持位置である(4)に記載のロボット制御装置。
前記第1カメラの撮影画像を表示した表示部の画像を見たユーザが、前記把持対象物体を安定して把持可能な位置と判断した把持位置である(4)に記載のロボット制御装置。
(6) 前記ロボット制御装置は、さらに、
前記第1カメラの撮影画像、および前記第2カメラ撮影画像に含まれる前記把持対象物体示す3次元点群の抽出処理を実行する点群抽出部を有する(1)~(5)いずれかに記載のロボット制御装置。
前記第1カメラの撮影画像、および前記第2カメラ撮影画像に含まれる前記把持対象物体示す3次元点群の抽出処理を実行する点群抽出部を有する(1)~(5)いずれかに記載のロボット制御装置。
(7) 前記包含ボックス生成部は、
前記点群抽出部が生成した3次元点群を包含する包含ボックスを生成する(6)に記載のロボット制御装置。
前記点群抽出部が生成した3次元点群を包含する包含ボックスを生成する(6)に記載のロボット制御装置。
(8) 前記包含ボックス生成部は、
前記点群抽出部が生成した3次元点群を包含する直方体形状の包含ボックスであるバウンディングボックスを生成する(6)または(7)に記載のロボット制御装置。
前記点群抽出部が生成した3次元点群を包含する直方体形状の包含ボックスであるバウンディングボックスを生成する(6)または(7)に記載のロボット制御装置。
(9) 前記包含ボックス生成部は、
前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスと、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスを同一形状の包含ボックスとして生成する(1)~(8)いずれかに記載のロボット制御装置。
前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスと、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスを同一形状の包含ボックスとして生成する(1)~(8)いずれかに記載のロボット制御装置。
(10) 前記包含ボックス生成部は、
前記把持対象物体に対する前記ロボットのハンドのアプローチ方向に垂直な鉛直面に平行な辺を有する包含ボックスを生成する(1)~(9)いずれかに記載のロボット制御装置。
前記把持対象物体に対する前記ロボットのハンドのアプローチ方向に垂直な鉛直面に平行な辺を有する包含ボックスを生成する(1)~(9)いずれかに記載のロボット制御装置。
(11) 前記包含ボックス生成部は、
前記把持対象物体を支持する支持平面が存在する場合、前記支持平面を構成平面とする包含ボックスを生成する(1)~(10)いずれかに記載のロボット制御装置。
前記把持対象物体を支持する支持平面が存在する場合、前記支持平面を構成平面とする包含ボックスを生成する(1)~(10)いずれかに記載のロボット制御装置。
(12) 前記包含ボックス生成部は、
前記把持対象物体を支持する支持平面が存在しない場合、前記ロボットのハンドのアプローチ方向に平行な鉛直面に前記把持対象物体を投影して生成される投影面を構成平面とする包含ボックスを生成する(1)~(11)いずれかに記載のロボット制御装置。
前記把持対象物体を支持する支持平面が存在しない場合、前記ロボットのハンドのアプローチ方向に平行な鉛直面に前記把持対象物体を投影して生成される投影面を構成平面とする包含ボックスを生成する(1)~(11)いずれかに記載のロボット制御装置。
(13) ロボット制御装置において実行するロボット制御方法であり、
包含ボックス生成部が、ロボットに装着された第1カメラの撮影画像に含まれる把持対象物体を包含する第1カメラ基準包含ボックスと、前記ロボットに装着された第2カメラの撮影画像に含まれる前記把持対象物体を包含する第2カメラ基準包含ボックスを生成する包含ボックス生成ステップと、
把持位置算出部が、前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスに対する前記把持対象物体の目標把持位置の相対位置を算出し、算出した前記相対位置に基づいて、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスに対する前記目標把持位置を算出し、算出位置を前記第2カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定する把持位置算出ステップと、
制御情報生成部が、前記第2カメラの撮影画像内の前記補正目標把持位置を前記ロボットのハンドで把持させる制御情報を生成する制御情報生成ステップを実行するロボット制御方法。
包含ボックス生成部が、ロボットに装着された第1カメラの撮影画像に含まれる把持対象物体を包含する第1カメラ基準包含ボックスと、前記ロボットに装着された第2カメラの撮影画像に含まれる前記把持対象物体を包含する第2カメラ基準包含ボックスを生成する包含ボックス生成ステップと、
把持位置算出部が、前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスに対する前記把持対象物体の目標把持位置の相対位置を算出し、算出した前記相対位置に基づいて、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスに対する前記目標把持位置を算出し、算出位置を前記第2カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定する把持位置算出ステップと、
制御情報生成部が、前記第2カメラの撮影画像内の前記補正目標把持位置を前記ロボットのハンドで把持させる制御情報を生成する制御情報生成ステップを実行するロボット制御方法。
(14) ロボット制御装置においてロボット制御処理を実行させるプログラムであり、
包含ボックス生成部に、ロボットに装着された第1カメラの撮影画像に含まれる把持対象物体を包含する第1カメラ基準包含ボックスと、前記ロボットに装着された第2カメラの撮影画像に含まれる前記把持対象物体を包含する第2カメラ基準包含ボックスを生成させる包含ボックス生成ステップと、
把持位置算出部に、前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスに対する前記把持対象物体の目標把持位置の相対位置を算出し、算出した前記相対位置に基づいて、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスに対する前記目標把持位置を算出し、算出位置を前記第2カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定させる把持位置算出ステップと、
制御情報生成部に、前記第2カメラの撮影画像内の前記補正目標把持位置を前記ロボットのハンドで把持させる制御情報を生成させる制御情報生成ステップを実行させるプログラム。
包含ボックス生成部に、ロボットに装着された第1カメラの撮影画像に含まれる把持対象物体を包含する第1カメラ基準包含ボックスと、前記ロボットに装着された第2カメラの撮影画像に含まれる前記把持対象物体を包含する第2カメラ基準包含ボックスを生成させる包含ボックス生成ステップと、
把持位置算出部に、前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスに対する前記把持対象物体の目標把持位置の相対位置を算出し、算出した前記相対位置に基づいて、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスに対する前記目標把持位置を算出し、算出位置を前記第2カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定させる把持位置算出ステップと、
制御情報生成部に、前記第2カメラの撮影画像内の前記補正目標把持位置を前記ロボットのハンドで把持させる制御情報を生成させる制御情報生成ステップを実行させるプログラム。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
また、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本開示の一実施例の構成によれば、ロボットによる物体の把持処理を確実に実行することを可能とした装置、方法が実現される。
具体的には、例えば、ロボットに装着された俯瞰カメラの撮影画像に含まれる把持対象物体を包含する俯瞰カメラ基準包含ボックスと、ロボットに装着された手先カメラの撮影画像に含まれる把持対象物体を包含する手先カメラ基準包含ボックスを生成する。さらに、俯瞰カメラの撮影画像内の俯瞰カメラ基準包含ボックスに対する把持対象物体の目標把持位置の相対位置を算出し、算出した相対位置に基づいて、手先カメラの撮影画像内の手先カメラ基準包含ボックスに対する目標把持位置を算出し、算出位置を手先カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定する。さらに、手先カメラの撮影画像内の補正目標把持位置を、ロボットのハンドで把持させる制御情報を生成してロボットによる把持処理を実行させる。
本構成により、ロボットによる物体の把持処理を確実に実行することを可能とした装置、方法が実現される。
具体的には、例えば、ロボットに装着された俯瞰カメラの撮影画像に含まれる把持対象物体を包含する俯瞰カメラ基準包含ボックスと、ロボットに装着された手先カメラの撮影画像に含まれる把持対象物体を包含する手先カメラ基準包含ボックスを生成する。さらに、俯瞰カメラの撮影画像内の俯瞰カメラ基準包含ボックスに対する把持対象物体の目標把持位置の相対位置を算出し、算出した相対位置に基づいて、手先カメラの撮影画像内の手先カメラ基準包含ボックスに対する目標把持位置を算出し、算出位置を手先カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定する。さらに、手先カメラの撮影画像内の補正目標把持位置を、ロボットのハンドで把持させる制御情報を生成してロボットによる把持処理を実行させる。
本構成により、ロボットによる物体の把持処理を確実に実行することを可能とした装置、方法が実現される。
10 ロボット
20 頭部
21 俯瞰カメラ
30 ハンド
31 手先カメラ
50 物体(把持対象物体)
100 ロボット制御装置
110 データ処理部
111 把持対象物体点群抽出部
112 把持対象物体包含ボックス生成部
113 把持位置算出部
114 制御情報生成部
120 ロボット頭部
121 駆動部
122 俯瞰カメラ
130 ロボットハンド部
131 駆動部
132 手先カメラ
140 ロボット移動部
141 駆動部
142 センサ
201 俯瞰カメラ基準包含ボックス(バウンディングボックス)
211 目標把持位置
221 手先カメラ基準包含ボックス(バウンディングボックス)
231 補正目標把持位置
301 CPU
302 ROM
303 RAM
304 バス
305 入出力インタフェース
306 入力部
307 出力部
308 記憶部
309 通信部
310 ドライブ
311 リムーバブルメディア
20 頭部
21 俯瞰カメラ
30 ハンド
31 手先カメラ
50 物体(把持対象物体)
100 ロボット制御装置
110 データ処理部
111 把持対象物体点群抽出部
112 把持対象物体包含ボックス生成部
113 把持位置算出部
114 制御情報生成部
120 ロボット頭部
121 駆動部
122 俯瞰カメラ
130 ロボットハンド部
131 駆動部
132 手先カメラ
140 ロボット移動部
141 駆動部
142 センサ
201 俯瞰カメラ基準包含ボックス(バウンディングボックス)
211 目標把持位置
221 手先カメラ基準包含ボックス(バウンディングボックス)
231 補正目標把持位置
301 CPU
302 ROM
303 RAM
304 バス
305 入出力インタフェース
306 入力部
307 出力部
308 記憶部
309 通信部
310 ドライブ
311 リムーバブルメディア
Claims (14)
- ロボットに装着された第1カメラの撮影画像に含まれる把持対象物体を包含する第1カメラ基準包含ボックスと、前記ロボットに装着された第2カメラの撮影画像に含まれる前記把持対象物体を包含する第2カメラ基準包含ボックスを生成する包含ボックス生成部と、
前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスに対する前記把持対象物体の目標把持位置の相対位置を算出し、算出した前記相対位置に基づいて、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスに対する前記目標把持位置を算出し、算出位置を前記第2カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定する把持位置算出部と、
前記第2カメラの撮影画像内の前記補正目標把持位置を前記ロボットのハンドで把持させる制御情報を生成する制御情報生成部を有するロボット制御装置。 - 前記第1カメラは、俯瞰画像を撮影する俯瞰カメラであり、
前記第2カメラは、前記把持対象物体の把持処理を行う前記ハンド、または前記ハンドに近い位置からの画像を撮影する手先カメラである請求項1に記載のロボット制御装置。 - 前記第1カメラは、前記ロボットの頭部に装着され、頭部からの俯瞰画像を撮影する俯瞰カメラである請求項2に記載のロボット制御装置。
- 前記目標把持位置は、
前記第1カメラの撮影画像を表示した表示部の画像を見てユーザが指定した把持位置である請求項1に記載のロボット制御装置。 - 前記目標把持位置は、
前記第1カメラの撮影画像を表示した表示部の画像を見たユーザが、前記把持対象物体を安定して把持可能な位置と判断した把持位置である請求項4に記載のロボット制御装置。 - 前記ロボット制御装置は、さらに、
前記第1カメラの撮影画像、および前記第2カメラ撮影画像に含まれる前記把持対象物体示す3次元点群の抽出処理を実行する点群抽出部を有する請求項1に記載のロボット制御装置。 - 前記包含ボックス生成部は、
前記点群抽出部が生成した3次元点群を包含する包含ボックスを生成する請求項6に記載のロボット制御装置。 - 前記包含ボックス生成部は、
前記点群抽出部が生成した3次元点群を包含する直方体形状の包含ボックスであるバウンディングボックスを生成する請求項6に記載のロボット制御装置。 - 前記包含ボックス生成部は、
前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスと、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスを同一形状の包含ボックスとして生成する請求項1に記載のロボット制御装置。 - 前記包含ボックス生成部は、
前記把持対象物体に対する前記ロボットのハンドのアプローチ方向に垂直な鉛直面に平行な辺を有する包含ボックスを生成する請求項1に記載のロボット制御装置。 - 前記包含ボックス生成部は、
前記把持対象物体を支持する支持平面が存在する場合、前記支持平面を構成平面とする包含ボックスを生成する請求項1に記載のロボット制御装置。 - 前記包含ボックス生成部は、
前記把持対象物体を支持する支持平面が存在しない場合、前記ロボットのハンドのアプローチ方向に平行な鉛直面に前記把持対象物体を投影して生成される投影面を構成平面とする包含ボックスを生成する請求項1に記載のロボット制御装置。 - ロボット制御装置において実行するロボット制御方法であり、
包含ボックス生成部が、ロボットに装着された第1カメラの撮影画像に含まれる把持対象物体を包含する第1カメラ基準包含ボックスと、前記ロボットに装着された第2カメラの撮影画像に含まれる前記把持対象物体を包含する第2カメラ基準包含ボックスを生成する包含ボックス生成ステップと、
把持位置算出部が、前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスに対する前記把持対象物体の目標把持位置の相対位置を算出し、算出した前記相対位置に基づいて、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスに対する前記目標把持位置を算出し、算出位置を前記第2カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定する把持位置算出ステップと、
制御情報生成部が、前記第2カメラの撮影画像内の前記補正目標把持位置を前記ロボットのハンドで把持させる制御情報を生成する制御情報生成ステップを実行するロボット制御方法。 - ロボット制御装置においてロボット制御処理を実行させるプログラムであり、
包含ボックス生成部に、ロボットに装着された第1カメラの撮影画像に含まれる把持対象物体を包含する第1カメラ基準包含ボックスと、前記ロボットに装着された第2カメラの撮影画像に含まれる前記把持対象物体を包含する第2カメラ基準包含ボックスを生成させる包含ボックス生成ステップと、
把持位置算出部に、前記第1カメラの撮影画像内の前記第1カメラ基準包含ボックスに対する前記把持対象物体の目標把持位置の相対位置を算出し、算出した前記相対位置に基づいて、前記第2カメラの撮影画像内の前記第2カメラ基準包含ボックスに対する前記目標把持位置を算出し、算出位置を前記第2カメラの撮影画像に含まれる把持対象物体の補正目標把持位置に設定させる把持位置算出ステップと、
制御情報生成部に、前記第2カメラの撮影画像内の前記補正目標把持位置を前記ロボットのハンドで把持させる制御情報を生成させる制御情報生成ステップを実行させるプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21842194.9A EP4173776A4 (en) | 2020-07-16 | 2021-06-28 | DEVICE AND METHOD FOR CONTROLLING ROBOT AND PROGRAM |
US18/002,052 US20230347509A1 (en) | 2020-07-16 | 2021-06-28 | Robot control apparatus, robot control method, and program |
JP2022536227A JPWO2022014312A1 (ja) | 2020-07-16 | 2021-06-28 | |
CN202180048383.8A CN115776930A (zh) | 2020-07-16 | 2021-06-28 | 机器人控制装置、机器人控制方法和程序 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020-121860 | 2020-07-16 | ||
JP2020121860 | 2020-07-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022014312A1 true WO2022014312A1 (ja) | 2022-01-20 |
Family
ID=79555257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/024349 WO2022014312A1 (ja) | 2020-07-16 | 2021-06-28 | ロボット制御装置、およびロボット制御方法、並びにプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230347509A1 (ja) |
EP (1) | EP4173776A4 (ja) |
JP (1) | JPWO2022014312A1 (ja) |
CN (1) | CN115776930A (ja) |
WO (1) | WO2022014312A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117067218A (zh) * | 2023-10-13 | 2023-11-17 | 宁德时代新能源科技股份有限公司 | 电芯抓取系统及其控制方法、产线模块 |
WO2024062535A1 (ja) * | 2022-09-20 | 2024-03-28 | ファナック株式会社 | ロボット制御装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11865696B1 (en) * | 2022-08-10 | 2024-01-09 | Wilder Systems Inc. | Balancing compute for robotic operations |
WO2024159039A1 (en) * | 2023-01-25 | 2024-08-02 | Wilder Systems Inc. | Training of artificial intelligence model |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0926812A (ja) * | 1995-07-11 | 1997-01-28 | Hitachi Zosen Corp | 作業用ロボット装置におけるncデータの作成方法 |
JP2005169564A (ja) * | 2003-12-11 | 2005-06-30 | Toyota Motor Corp | ロボットによる任意形状物体の把持方法 |
JP2007319938A (ja) | 2006-05-30 | 2007-12-13 | Toyota Motor Corp | ロボット装置及び物体の三次元形状の取得方法 |
JP2009269110A (ja) * | 2008-05-02 | 2009-11-19 | Olympus Corp | 組立装置 |
JP2013184257A (ja) | 2012-03-08 | 2013-09-19 | Sony Corp | ロボット装置及びロボット装置の制御方法、並びにコンピューター・プログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8781629B2 (en) * | 2010-09-22 | 2014-07-15 | Toyota Motor Engineering & Manufacturing North America, Inc. | Human-robot interface apparatuses and methods of controlling robots |
US20130343640A1 (en) * | 2012-06-21 | 2013-12-26 | Rethink Robotics, Inc. | Vision-guided robots and methods of training them |
US9802317B1 (en) * | 2015-04-24 | 2017-10-31 | X Development Llc | Methods and systems for remote perception assistance to facilitate robotic object manipulation |
-
2021
- 2021-06-28 CN CN202180048383.8A patent/CN115776930A/zh active Pending
- 2021-06-28 US US18/002,052 patent/US20230347509A1/en active Pending
- 2021-06-28 JP JP2022536227A patent/JPWO2022014312A1/ja active Pending
- 2021-06-28 EP EP21842194.9A patent/EP4173776A4/en active Pending
- 2021-06-28 WO PCT/JP2021/024349 patent/WO2022014312A1/ja unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0926812A (ja) * | 1995-07-11 | 1997-01-28 | Hitachi Zosen Corp | 作業用ロボット装置におけるncデータの作成方法 |
JP2005169564A (ja) * | 2003-12-11 | 2005-06-30 | Toyota Motor Corp | ロボットによる任意形状物体の把持方法 |
JP2007319938A (ja) | 2006-05-30 | 2007-12-13 | Toyota Motor Corp | ロボット装置及び物体の三次元形状の取得方法 |
JP2009269110A (ja) * | 2008-05-02 | 2009-11-19 | Olympus Corp | 組立装置 |
JP2013184257A (ja) | 2012-03-08 | 2013-09-19 | Sony Corp | ロボット装置及びロボット装置の制御方法、並びにコンピューター・プログラム |
Non-Patent Citations (1)
Title |
---|
See also references of EP4173776A4 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024062535A1 (ja) * | 2022-09-20 | 2024-03-28 | ファナック株式会社 | ロボット制御装置 |
CN117067218A (zh) * | 2023-10-13 | 2023-11-17 | 宁德时代新能源科技股份有限公司 | 电芯抓取系统及其控制方法、产线模块 |
CN117067218B (zh) * | 2023-10-13 | 2024-04-05 | 宁德时代新能源科技股份有限公司 | 电芯抓取系统及其控制方法、产线模块 |
Also Published As
Publication number | Publication date |
---|---|
EP4173776A4 (en) | 2023-12-27 |
CN115776930A (zh) | 2023-03-10 |
US20230347509A1 (en) | 2023-11-02 |
JPWO2022014312A1 (ja) | 2022-01-20 |
EP4173776A1 (en) | 2023-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022014312A1 (ja) | ロボット制御装置、およびロボット制御方法、並びにプログラム | |
Kang et al. | Toward automatic robot instruction from perception-mapping human grasps to manipulator grasps | |
US8244402B2 (en) | Visual perception system and method for a humanoid robot | |
Sayour et al. | Autonomous robotic manipulation: real‐time, deep‐learning approach for grasping of unknown objects | |
JP2022544007A (ja) | 移動操作システムの視覚的教示と繰り返し | |
EP3782119B1 (en) | Detection, tracking and 3d modeling of objects with sparse rgb-d slam and interactive perception | |
Melchiorre et al. | Collison avoidance using point cloud data fusion from multiple depth sensors: a practical approach | |
CN110603122B (zh) | 用于交互式学习应用的自动个性化反馈 | |
Husain et al. | Realtime tracking and grasping of a moving object from range video | |
Shen et al. | Robot-to-human feedback and automatic object grasping using an RGB-D camera–projector system | |
Thompson et al. | Providing synthetic views for teleoperation using visual pose tracking in multiple cameras | |
Kanellakis et al. | Guidance for autonomous aerial manipulator using stereo vision | |
Ogawara et al. | Acquiring hand-action models in task and behavior levels by a learning robot through observing human demonstrations | |
US12036663B2 (en) | Method and control arrangement for determining a relation between a robot coordinate system and a movable apparatus coordinate system | |
Niu et al. | Eye-in-hand manipulation for remote handling: Experimental setup | |
Franceschi et al. | Combining visual and force feedback for the precise robotic manipulation of bulky components | |
Pedrosa et al. | A skill-based architecture for pick and place manipulation tasks | |
Varhegyi et al. | A Visual Servoing Approach for a Six Degrees-of-Freedom Industrial Robot by RGB-D Sensing | |
Fabian et al. | One-point visual odometry using a RGB-depth camera pair | |
Maidi et al. | An evaluation of camera pose methods for an augmented reality system: Application to teaching industrial robots | |
Park et al. | Robot-based Object Pose Auto-annotation System for Dexterous Manipulation | |
CN116100562B (zh) | 多机器人协同上下料的视觉引导方法及系统 | |
Battaje et al. | One object at a time: Accurate and robust structure from motion for robots | |
US20240037848A1 (en) | Systems, methods, and computer program products for implementing object permanence in a simulated environment | |
Thompson | Integration of visual and haptic feedback for teleoperation |
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: 21842194 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2022536227 Country of ref document: JP Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2021842194 Country of ref document: EP Effective date: 20230125 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |