WO2023163219A1 - 情報処理装置、ロボット制御システム及びプログラム - Google Patents

情報処理装置、ロボット制御システム及びプログラム Download PDF

Info

Publication number
WO2023163219A1
WO2023163219A1 PCT/JP2023/007351 JP2023007351W WO2023163219A1 WO 2023163219 A1 WO2023163219 A1 WO 2023163219A1 JP 2023007351 W JP2023007351 W JP 2023007351W WO 2023163219 A1 WO2023163219 A1 WO 2023163219A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
pixel
window
size
information processing
Prior art date
Application number
PCT/JP2023/007351
Other languages
English (en)
French (fr)
Inventor
卓哉 宮本
祥 文野
博昭 宮村
敬之 石田
Original Assignee
京セラ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 京セラ株式会社 filed Critical 京セラ株式会社
Publication of WO2023163219A1 publication Critical patent/WO2023163219A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components

Definitions

  • This disclosure relates to information processing technology.
  • Patent Document 1 describes a technique for identifying an object at a high position from among a pile of objects.
  • an information processing device includes an acquisition unit and a generation unit.
  • the acquisition unit acquires depth information representing the depth within a measurement space in which a plurality of objects exist.
  • the generation unit performs filtering on the depth information according to the object size of the object, and generates high position information representing a high position part of the plurality of objects that is higher than the others in the measurement space. .
  • the robot control system includes an acquisition unit and a generation unit included in the information processing apparatus, a specification unit, a degree acquisition unit, a holding object determination unit, a holding posture determination unit, a robot and a control unit.
  • the specifying unit determines whether the target object is in the photographed image obtained by photographing the measurement space for each of the plurality of target objects.
  • a captured object image is specified based on high position information.
  • the degree obtaining unit obtains, for each of the plurality of target objects, a degree of ease of holding the target object based on the depth information.
  • the holding target determination unit determines a holding target object to be held by the robot from among the plurality of target objects based on the degrees of the plurality of target objects.
  • the holding posture determination unit determines a holding posture of the robot with respect to the object to be held based on the object image.
  • the robot control section controls the robot based on the holding posture determined by the holding posture determination section.
  • the program causes the computer device to acquire depth information representing the depth in a measurement space in which a plurality of objects exist.
  • the program causes the computer device to perform filtering processing according to the object size of the object on the depth information, and to express a high position part of the plurality of objects that is higher than the others in the measurement space. Let it run to generate location information.
  • FIG. 1 is a schematic diagram showing an example of a robot system;
  • FIG. 1 is a schematic diagram showing an example of an information processing device;
  • FIG. It is a schematic diagram showing an example of a control part of an information processor.
  • 4 is a flow chart showing an example of the operation of the information processing device;
  • FIG. 4 is a schematic diagram showing an example of a filter window;
  • FIG. 4 is a schematic diagram showing an example of how a filter window is set on a depth image;
  • FIG. 4 is a schematic diagram for explaining an example of filtering;
  • FIG. 4 is a schematic diagram for explaining an example of filtering;
  • FIG. 4 is a schematic diagram for explaining an example of filtering;
  • FIG. 4 is a schematic diagram for explaining an example of filtering;
  • FIG. 4 is a schematic diagram for explaining an example of filtering;
  • FIG. 4 is a schematic diagram for explaining an example of filtering;
  • FIG. 4 is a schematic diagram for explaining an example of filtering;
  • FIG. 4 is a schematic diagram for explaining an example of filtering;
  • FIG. 4 is a schematic diagram for explaining an example of filtering;
  • FIG. 4 is a schematic diagram for explaining an example of a method of specifying an object image;
  • FIG. 10 is a schematic diagram for explaining an example of a method for determining the degree of ease of holding;
  • FIG. 4 is a schematic diagram showing an example of a filter window;
  • FIG. 4 is a schematic diagram showing an example of a filter window;
  • FIG. 4 is a schematic diagram showing an example of a filter window;
  • FIG. 4 is a schematic diagram showing an example of a filter window;
  • FIG. 10 is a schematic diagram for explaining an example of the operation of the specifying unit;
  • FIG. 1 is a schematic diagram showing an example of the robot system 1.
  • the robot system 1 includes, for example, a robot 2 and a robot control system 3 that controls the robot 2 .
  • the robot control system 3 includes, for example, a sensor device 4 that detects the state in a measurement space 100 that is a space to be measured, a robot control section 5 that controls the robot 2, and an information processing device 6.
  • the information processing device 6 generates information necessary for robot control by the robot control unit 5 based on the detection result of the sensor device 4 .
  • the robot 2 can move the object 10 from the work start table 11 to the work target table 12, for example.
  • Object 10 is also called a work object or workpiece.
  • the robot control unit 5 controls the robot 2 so that the object 10 moves from the work start table 11 to the work target table 12 .
  • the robot 2 includes, for example, an arm 20 and an end effector 21 that holds the object 10 .
  • the robot 2 can move the object 10 from the work start table 11 to the work target table 12 by moving the arm 20 while holding the object 10 with the end effector 21 .
  • the robot controller 5 can control the arm 20 and the end effector 21 .
  • the end effector 21 may hold the object 10 by gripping the object 10, may hold the object 10 by sucking the object 10, or may hold the object 10 by other methods. When gripping the object 10, the end effector 21 may grip the object 10 with two fingers, or may grip the object 10 with two or more fingers.
  • Trays 13 and 14 are placed on the work start table 11 and the work target table 12, respectively.
  • a plurality of objects 10 are randomly stacked on the tray 13 .
  • the robot 2 holds the objects 10 on the tray 13 one by one, moves them to the work target table 12 , and arranges them in the tray 14 .
  • the plurality of objects 10 on the tray 13 may be collectively referred to as an object group 10A.
  • the sensor device 4 is capable of detecting depth and color within the measurement space 100 .
  • the sensor device 4 can acquire depth information 700 (see FIG. 3 described later) representing the depth within the measurement space 100 and color information 710 (see FIG. 3 described later) within the measurement space 100.
  • the sensor device 4 includes, for example, a depth sensor 40 that acquires depth information 700 and a camera 41 that photographs the measurement space 100 and acquires color information 710 within the measurement space 100 .
  • the depth sensor 40 generates depth information 700 using, for example, a stereo method.
  • the depth sensor 40 includes, for example, a stereo camera composed of a plurality of cameras 40a each capturing an image of the measurement space 100.
  • FIG. Each camera 40 a photographs the object group 10 A on the tray 13 from above the tray 13 .
  • the depth sensor 40 generates depth information 700 based on image data obtained by the multiple cameras 40a.
  • Depth sensor 40 generates depth information 700, for example, based on the principle of triangulation.
  • the depth sensor 40 generates depth image data representing a depth image 701 (see FIG. 3 described later) as the depth information 700 .
  • a depth image 701 is an image representing depths to a plurality of measurement points in the measurement space 100 .
  • the measurement points are located on the surface of the object within the measurement space 100 .
  • the plurality of measurement points include measurement points located on the surface of the tray 13 which is an object in the measurement space 100 and measurement points located on the surface of the object group 10A on the tray 13 .
  • the depth image 701 can also be said to be an image representing the depth to the object in the measurement space 100 .
  • the depth represented by the depth information 700 is the depth of the measurement point when viewed from the depth sensor 40 (specifically, the stereo camera).
  • the depth information 700 may be called depth image data 700 .
  • the depth image data 700 includes pixel values of a plurality of pixels forming the depth image 701 .
  • a plurality of pixels forming the depth image 701 respectively correspond to a plurality of measurement points within the measurement space 100 .
  • a pixel value of a certain pixel in the depth image 701 corresponds to a measurement point corresponding to the certain pixel.
  • a pixel value included in the depth image data 700 represents the depth to the corresponding measurement point, in other words, the depth to the object 10 . It can be said that the pixel values included in the depth image data 700 are depth information representing the depth up to one measurement point.
  • a pixel value included in the depth image data 700 is, for example, a value of zero or more.
  • pixel position information representing the position of the pixel and the pixel value of the pixel are associated with each other.
  • the depth sensor 40 may generate the depth information 700 using a method other than the stereo method.
  • a projector method may be used, a stereo method and a projector method may be used together, or a ToF (Time of Flight) method may be used.
  • a ToF (Time of Flight) method may be used.
  • the camera 41 is a color camera, and generates color image data representing a color image 711 (see FIG. 3 described later) showing the measurement space 100 as the color information 710 in the measurement space 100 .
  • the color information 710 may be called color image data 710 .
  • a color image 711 is a photographed image obtained by photographing the measurement space 100 .
  • the color image 711 shows the tray 13 and the object group 10A thereon.
  • pixel position information representing the position of the pixel and the pixel value of the pixel are associated with each other.
  • a plurality of pixels forming the color image 711 correspond to a plurality of measurement points in the measurement space 100, respectively.
  • a pixel value of a certain pixel in the color image 711 corresponds to a measurement point corresponding to the certain pixel.
  • a pixel value included in the color image data 710 can be said to be color information representing the color of one corresponding measurement point.
  • Pixel values included in the color image data 710 include, for example, an R component (red component), a G component (green component), and a B component (blue component).
  • Color image data 710 is also called RGB image data.
  • the pixel position of a pixel included in an image is represented by (m, n).
  • m indicates the position in the row direction (in other words, the horizontal direction)
  • n indicates the position in the column direction (in other words, the vertical direction).
  • an image is composed of a plurality of pixels of N rows and M columns, the leftmost column of the image is the 0th column, the rightmost column of the image is the (M-1)th column, and the first column of the image is Let the top row be the 0th row and the bottom row of the image be the (N-1)th row.
  • m indicates a column number and is an integer that satisfies 0 ⁇ m ⁇ M ⁇ 1.
  • n indicates a row number and is an integer that satisfies 0 ⁇ n ⁇ N-1.
  • the number of pixels in the color image 711 and the number of pixels in the depth image 701 match each other. That is, the number of measurement points corresponding to the pixels forming the color image 711 matches the number of measurement points corresponding to the pixels forming the depth image 701 .
  • the pixel at the pixel position (m, n) of the color image 711 and the pixel at the pixel position (m, n) of the depth image 701 correspond to the same measurement point.
  • the pixel value of the pixel at the pixel position (m, n) included in the color image data 710 and the pixel value of the pixel at the pixel position (m, n) included in the depth image data 700 correspond to the same measurement point.
  • there is A pixel value representing the color of a measurement point included in the color image data 710 and a pixel value representing the depth up to the measurement point included in the depth image data 700 correspond to pixels at the same pixel position.
  • FIG. 2 is a schematic diagram showing an example of the configuration of the information processing device 6.
  • the information processing device 6 includes, for example, a control unit 60, a first interface 61, a second interface 62, and a storage unit 63.
  • the information processing device 6 can also be called an information processing circuit, for example.
  • the information processing device 6 is, for example, a kind of computer device.
  • the first interface 61 is capable of communicating with the sensor device 4.
  • the first interface 61 can also be called an interface circuit, for example.
  • the first interface 61 can be said to be, for example, a communication unit or a communication circuit.
  • the first interface 61 may perform wired communication with the sensor device 4, or may perform wireless communication.
  • the first interface 61 may communicate with the sensor device 4 according to at least one communication standard.
  • At least one communication standard to which the first interface 61 conforms includes, for example, USB (Universal Serial Bus), I2C (Inter-Integrated Circuit), CSI (Clocked Serial Interface), SPI (Serial Peripheral Interface), WiFi and Ethernet.
  • USB Universal Serial Bus
  • I2C Inter-Integrated Circuit
  • CSI Clocked Serial Interface
  • SPI Serial Peripheral Interface
  • WiFi and Ethernet may include at least one of Also, the first interface 61 may communicate with the sensor device 4 through the Internet.
  • the second interface 62 is capable of communicating with a device external to the robot system 1 (simply referred to as an external device).
  • a second interface 62 is capable of communicating with at least one external device.
  • the second interface 62 can also be called an interface circuit, for example. Also, the second interface 62 can be said to be, for example, a communication section or a communication circuit.
  • the second interface 62 may perform wired communication with an external device, or may perform wireless communication.
  • the second interface 62 may communicate with an external device according to at least one communication standard.
  • the at least one communication standard that the second interface 62 complies with may include, for example, at least one of USB, I2C, CSI, SPI, WiFi, and Ethernet.
  • the second interface 62 may also communicate with external devices through the Internet.
  • At least one external device with which the second interface 62 can communicate may include a display device or a computer device.
  • the computer device may be a server such as a cloud server, or may be a mobile device.
  • the mobile device may be a mobile phone such as a smart phone, a tablet terminal, a personal computer, or a wearable device.
  • the wearable device may be a type worn on the arm such as a wristband type or a wristwatch type, a type worn on the head such as a headband type or glasses type, or a type worn on the body such as a clothing type. It may be of a wearable type.
  • the control unit 60 can comprehensively manage the operation of the information processing device 6 by controlling other components of the information processing device 6 .
  • the control unit 60 can also be said to be, for example, a control circuit.
  • Control unit 60 includes at least one processor to provide control and processing power to perform various functions, as described in further detail below.
  • the at least one processor may be implemented as a single integrated circuit (IC) or as multiple communicatively coupled integrated circuit ICs and/or discrete circuits. good.
  • the at least one processor can be implemented according to various known techniques.
  • a processor includes one or more circuits or units configured to perform one or more data computing procedures or processes, such as by executing instructions stored in associated memory.
  • the processor may be firmware (eg, discrete logic components) configured to perform one or more data computing procedures or processes.
  • the processor is one or more processors, controllers, microprocessors, microcontrollers, application specific integrated circuits (ASICs), digital signal processors, programmable logic devices, field programmable gate arrays, or any of these. Any combination of devices or configurations, or other known combinations of devices and configurations, may be included to perform the functions described below.
  • ASICs application specific integrated circuits
  • the control unit 60 may include, for example, a CPU (Central Processing Unit) as a processor.
  • the storage unit 63 may include non-temporary recording media readable by the CPU of the control unit 60, such as ROM (Read Only Memory) and RAM (Random Access Memory).
  • the storage unit 63 stores, for example, a program 630 for controlling the information processing device 6 .
  • Various functions of the control unit 60 are realized by executing the program 630 in the storage unit 63 by the CPU of the control unit 60, for example.
  • control unit 60 may include multiple CPUs.
  • the control unit 60 may also include at least one DSP (Digital Signal Processor). Further, all functions of the control unit 60 or some functions of the control unit 60 may be realized by a hardware circuit that does not require software to realize the functions.
  • the storage unit 63 may also include a non-temporary computer-readable recording medium other than the ROM and RAM.
  • the storage unit 63 may include, for example, a small hard disk drive and an SSD (Solid State Drive).
  • the robot control unit 5 is, for example, a type of computer device, and has the same configuration as the information processing device 6, for example.
  • the robot control unit 5 can communicate with, for example, the second interface 62 of the information processing device 6 .
  • the control unit 60 of the information processing device 6 generates information required for robot control by the robot control unit 5 .
  • Information generated by the control unit 60 is transmitted from the second interface 62 to the robot control unit 5 .
  • the robot control section 5 controls the robot 2 based on information transmitted from the second interface 62 .
  • the robot control unit 5 may be called, for example, a robot control circuit.
  • FIG. 3 is a schematic diagram showing an example of a plurality of functional blocks formed in the control unit 60 when the control unit 60 of the information processing device 6 executes the program 630.
  • the control unit 60 has, for example, an information acquisition unit 600, a conversion unit 601, a generation unit 602, a specification unit 603, a degree acquisition unit 604, a holding target determination unit 605, and a holding posture determination unit 606 as functional blocks. All the functions of the information acquisition unit 600 or part of the functions of the information acquisition unit 600 may be realized by hardware circuits that do not require software to realize the functions. This also applies to the generation unit 602 , the identification unit 603 , the degree acquisition unit 604 , the holding target determination unit 605 and the holding posture determination unit 606 .
  • the information acquisition unit 600 performs acquisition processing for acquiring depth information 700 and color information 710 from the sensor device 4 through the first interface 31 .
  • the information acquisition unit 600 transmits acquisition instruction information for instructing acquisition of the depth information 700 and the color information 710 to the sensor device 4 via the first interface 31, for example.
  • the sensor device 4 controls the depth sensor 40 and the camera 41 to cause the stereo camera of the depth sensor 40 and the camera 41 to perform photography, respectively.
  • the depth sensor 40 generates depth information 700 (in other words, depth image data 700) based on the image data obtained by the stereo camera, and the camera 41 produces color information 710 (in other words, color image data 710). Generate.
  • the sensor device 4 then transmits the depth information 700 and the color information 710 to the information processing device 6 .
  • the depth information 700 and the color information 710 received by the first interface 61 from the sensor device 4 are input to the control section 60 . Accordingly, in the acquisition process, the information acquisition section 600 can acquire the depth information 700 and the color information 710 in response to the transmission of the acquisition instruction information.
  • the depth information 700 and the color information 710 are stored in the storage section 63 through the control section 60 .
  • the conversion unit 601 converts the depth image data 700 acquired by the information acquisition unit 600 into depth image data 705 in which the smaller the depth to the measurement point, the larger the corresponding pixel value.
  • the conversion unit 601 generates depth image data 705 by inverting each pixel value of the depth image data 700 .
  • the maximum value of the range of possible pixel values is called the pixel maximum value.
  • Depth image data 705 is obtained by inverting each pixel value in the depth image data 700 .
  • the depth image data 705 may be called depth information 705 .
  • the generating unit 602 performs filtering according to the size of the object 10 (simply referred to as the object size) on the depth information 705 obtained by the transforming unit 601, so that the plurality of objects 10 on the tray 13 have more depth information than others.
  • a high position portion is, for example, a portion of the object group 10A that is higher than its surroundings. For each object 10, if the object 10 has a portion that is higher than its surroundings, then that portion is included in the high portion.
  • a portion of the object group 10A that is higher than the surroundings can be said to be a portion of the object group 10A that is positioned closer to the depth sensor 40 than the surroundings.
  • a position higher than the surroundings in the object group 10A does not necessarily mean the highest point in the object group 10A.
  • the object 10 including the portion included in the high position portion is called the target object 10.
  • a target object 10 is an object 10 that has a portion that is located higher than the others.
  • the high position portion represented by the high position information 720 includes a portion of at least one target object 10 that is at a higher position than the others. That is, the high portion includes a portion of at least one target object 10 that is higher than its surroundings.
  • a portion of one target object 10 at a position higher than the others may be referred to as an object high position portion.
  • the high position portion indicated by the high position information 720 may be called an overall high position portion.
  • the overall height position portion includes at least one object height position portion of the target object 10 .
  • the object height position portion of one target object 10 constitutes a part of the overall height position portion. Also called
  • the robot system 1 will be described on the assumption that the object high position portions of the plurality of target objects 10 are included in the overall high position portion. In other words, the robot system 1 will be described assuming that a plurality of target objects 10 are present on the tray 13 .
  • the specifying unit 603 specifies an object image in which the target object 10 is captured in the captured image of the measurement space 100 based on the high position information 720.
  • the identifying unit 603 identifies an object image in which the target object 10 is shown in the color image 711 represented by the color image data 710 acquired by the information acquiring unit 600 based on the high position information 720 .
  • the object image specified by the specifying unit 603 may be called a specified object image.
  • the degree acquisition unit 604 obtains the degree of ease of holding the target object 10 for each of the plurality of target objects 10 based on the depth information 705 and the specific object image in which the target object 10 is captured.
  • the degree of ease of holding the target object 10 may be referred to as the degree of ease of holding.
  • the degree of ease of holding means the degree of ease with which the robot 2 can hold the target object 10 .
  • the holding target determination unit 605 determines the holding target object 10 to be held by the robot 2 from among the plurality of target objects 10 based on the ease of holding the plurality of target objects 10 .
  • the holding posture determination unit 606 determines the holding posture of the robot 2 with respect to the holding target object 10 based on the specific object image in which the holding target object 10 is captured. That is, the holding posture determination unit 606 determines in what posture the robot 2 holds the hold target object 10 based on the specific object image in which the hold target object 10 is captured. For example, based on the specific object image, the holding posture determination unit 606 specifies the position and posture within the measurement space 100 of the holding target object 10 reflected therein.
  • the holding posture determination unit 606 determines the holding posture of the robot 2 with respect to the hold target object 10 based on the specified position and posture of the hold target object 10 . For example, when the end effector 21 of the robot 2 grips the object 10 with two fingers, the holding posture determination unit 606 determines from which direction the end effector 21 grips the object 10 with two fingers as the holding posture. decide. The control unit 60 notifies the robot control unit 5 of the holding posture determined by the holding posture determination unit 606 through the second interface 62 .
  • the robot control unit 5 controls the robot 2 based on the notified holding posture. Specifically, the robot control unit 5 controls the arm 20 and the end effector 21 of the robot 2 so that the robot 2 holds the holding target object 10 in the notified holding posture. As a result, the robot 2 can hold an object 10 that has a portion located higher than the others, among the plurality of objects 10 on the tray 13 , and that the robot 2 can easily hold. After that, the robot control unit 5 controls the robot 2 so that the holding target object 10 held by the robot 2 is arranged on the tray 14 .
  • FIG. 4 is a flowchart showing an example of a holding posture determination process for determining the holding posture of the robot 2 with respect to the object 10 based on the depth information 700 and the color information 710.
  • FIG. The control unit 60 repeatedly executes the holding posture determination process.
  • the information acquisition unit 600 first acquires depth information 700 and color information 710 from the sensor device 4 in step s1.
  • the conversion unit 601 performs conversion processing for converting the depth information 700 into the depth information 705.
  • the generation unit 602 performs filter processing on the depth information 705 according to the object size to generate high position information 720 .
  • the specifying unit 603 specifies, for each of the plurality of target objects 10, an object image in which the target object 10 is shown in the color image 711 represented by the color information 710, based on the high position information 720.
  • step s5 the degree obtaining unit 604 obtains the degrees of ease of holding each of the plurality of target objects 10 based on the depth information 705 and a plurality of specific object images in which the plurality of target objects 10 are respectively captured. demand.
  • step s ⁇ b>6 the hold target determination unit 605 determines the hold target object 10 from the plurality of target objects 10 based on the ease of holding of the plurality of target objects 10 .
  • step s7 the holding posture determination unit 606 determines the holding posture of the robot 2 with respect to the holding target object 10 based on the specific object image in which the holding target object 10 is captured.
  • step s7 when the robot 2 holds the object 10 to be held on the tray 13 and carries it to the tray 14 as described above, the holding posture determination processing shown in FIG. A holding posture for the new holding target object 10 is determined. Thereafter, every time the object 10 to be held on the tray 13 is carried to the tray 14, the holding posture determination process is executed.
  • step s7 the holding posture determination unit 606 may determine the holding posture of the robot 2 with respect to the object 10 appearing in the object image, based on the object image specified in step s4.
  • the information processing device 6 may be realized by a cloud server. In this case, the information processing device 6 may communicate with the robot control unit 5 through the Internet. Also, the control unit 60 of the information processing device 6 may function as the robot control unit 5 . In this case, the information processing device 6 functions as the robot control system 3 . Also, the robot control unit 5 may be realized by a cloud server. In this case, the robot 2 may be provided with a communication unit connected to the Internet, and the robot control unit 5 may control the robot 2 through the Internet. Also, the robot control system 3 may not include the sensor device 4 . Also, the robot control system 3 may include a plurality of robot control units 5 . At least part of the holding posture determination process shown in FIG. 4 may be executed by the robot control unit 5 . For example, the process of step s7 may be executed by the robot control section 5. FIG.
  • the sensor device 4 may generate the depth information 705 and transmit it to the information processing device 6 .
  • the conversion unit 601 becomes unnecessary, and the depth information 705 acquired by the information acquisition unit 600 is used in the generation unit 602 and the degree acquisition unit 604 .
  • the depth information 705 representing the depth in the measurement space 100 in which the plurality of objects 10 are present is subjected to filtering according to the object size, and the object group 10A has other objects.
  • Elevation information 720 is generated that represents the elevated portion located at a higher position than . In this way, by using the object size to generate the high position information 720, it is possible to appropriately identify the high position portion located higher than the others in the object group 10A based on the high position information 720.
  • the generation unit 602 performs filtering on a depth image 706 represented by the depth information 705 (in other words, depth image data 705) using at least one type of spatial filter function according to the object size, and generates high position information. 720 is generated.
  • the high position information 720 is, for example, image data representing the filtered depth image 706 .
  • the image represented by the high position information 720 (that is, the filtered depth image 706) may be referred to as a high position image.
  • the high position information 720 may be referred to as high position image data 720 .
  • a high-position image represents a portion of the object group 10A that is positioned higher than others.
  • the high position information 720 includes pixel values of a plurality of pixels forming the high position image.
  • pixel position information representing the position of the pixel and the pixel value of the pixel are associated with each other.
  • a plurality of pixels forming the high-position image correspond to a plurality of measurement points in the measurement space 100, respectively.
  • a pixel value of a certain pixel in the high-position image corresponds to a measurement point corresponding to the certain pixel.
  • a pixel value included in the high position information 720 indicates the degree to which the corresponding measurement point is at a higher position than the others. For example, the pixel value included in the high position information 720 indicates the degree to which the corresponding measurement point is positioned higher than its surroundings. The higher the pixel value included in the high position information 720 is, the higher the corresponding measurement point is.
  • the number of pixels in the high-position image matches, for example, the number of pixels in the color image 711 and the number of pixels in the depth image 706 .
  • the pixel at the pixel position (m, n) of the high-position image and the pixel at the pixel position (m, n) of the color image 711 correspond to the same measurement point.
  • the pixel value of the pixel at the pixel position (m, n) included in the high-position image data 720 and the pixel value of the pixel at the pixel position (m, n) included in the color image data 710 are obtained at the same measurement point. Yes.
  • the pixel at the pixel position (m, n) in the high-position image and the pixel at the pixel position (m, n) in the depth image 706 correspond to the same measurement point.
  • the pixel value of the pixel at the pixel position (m, n) included in the high-position image data 720 and the pixel value of the pixel at the pixel position (m, n) included in the depth image data 705 are obtained at the same measurement point. Yes.
  • pixels at the same pixel positions in a plurality of images are expressed as corresponding to each other.
  • the pixel at pixel position (m, n) in the high-position image, the pixel at pixel position (m, n) in depth image 706, and the pixel at pixel position (m, n) in color image 711 correspond to each other.
  • pixel values of pixels at the same pixel positions in a plurality of images are expressed as mutually corresponding.
  • the pixel value of the pixel at the pixel position (m, n) of the high position image the pixel value of the pixel at the pixel position (m, n) of the depth image 706, and the pixel position (m, n) of the color image 711
  • the pixel values of the pixels correspond to each other.
  • the included pixel values representing the color of the certain measurement point correspond to each other.
  • first partial image (or first region) that is part of an image corresponds to a second partial image (or second region) that is a part of another image
  • first partial image or Alternatively, it means that the pixel positions of the plurality of pixels forming the first region match the pixel positions of the plurality of pixels forming the second partial image (or the second region).
  • first partial image that is part of the high-position image corresponds to a second partial image that is part of the depth image
  • the pixel positions of the plurality of pixels forming the first partial image correspond to the They match the pixel positions of the plurality of pixels forming the second partial image.
  • the pixel of the depth image 706 may be called the first pixel, and the pixel value of the first pixel may be called the first pixel value.
  • the pixel of the high-position image may be called the second pixel, and the pixel value of the second pixel may be called the second pixel value.
  • a pixel of the color image 711 may be called a third pixel, and a pixel value of the third pixel may be called a third pixel value.
  • FIG. 5 is a schematic diagram showing an example of the filter window 200 of the first spatial filter function used in the generation process.
  • FIG. 6 is a schematic diagram showing an example of how the filter window 200 is set for the depth image 706 represented by the depth image data 705. As shown in FIG.
  • the generation unit 602 determines the first pixel of interest from among the plurality of first pixels forming the depth image 706 as the first pixel of interest. Then, the generation unit 602 sets the filter window 200 to the depth image 706 so as to include the first pixel of interest (see FIG. 6). The generation unit 602 performs a predetermined operation on the pixel values of the plurality of first pixels in the filter window 200 to obtain the pixel value of the first pixel of interest (also referred to as the first pixel value of interest) in the high-position image. A unit filtering process is performed to obtain a corresponding second pixel value.
  • the generation unit 602 moves the position of the first pixel of interest in the depth image 706 by one pixel, and performs unit filtering each time the position of the first pixel of interest is moved by one pixel. That is, the generation unit 602 moves the filter window 200 on the depth image 706 in units of one pixel, and performs unit filtering each time the filter window 200 is moved by one pixel.
  • a plurality of second pixel values in high position information 720 are determined that respectively correspond to the plurality of first pixel values.
  • the filter window 200 has, for example, a plus partial window 201 and two minus partial windows 202, as shown in FIG.
  • a plus partial window 201 (also referred to as plus window 201) is a partial filter window in which the pixel value of each pixel in the region is multiplied by a predetermined plus value.
  • a minus partial window 202 (also referred to as minus window 202) is a partial filter window in which the pixel value of each pixel in the region is multiplied by a predetermined minus value.
  • the outer shape of the plus partial window 201 is, for example, a rectangle.
  • the outline of the minus partial window 202 is, for example, a square.
  • the plus partial window 201 and the two minus partial windows 202 are arranged along one direction, for example.
  • a plus partial window 201 is sandwiched between two minus partial windows 202 .
  • the predetermined positive value is for example +1.0 and the predetermined negative value is for example -0.5.
  • the window arrangement direction A direction perpendicular to the window arrangement direction is called a window vertical direction. The same is true for other types of filter windows to be described later.
  • the window alignment direction and window vertical direction of the filter window 200 match the row direction and column direction of the depth image 706 in which the filter window 200 is set, respectively.
  • Each of the window alignment direction size and the window vertical direction size of the filter window 200 is the size of a plurality of pixels.
  • the size of the filter windows 200 in the window arrangement direction and the size in the window vertical direction are the same, and the outer shape of the filter windows 200 is square.
  • the size of the filter window 200 in the window arrangement direction and the size in the window vertical direction may differ from each other. That is, the size of the filter window 200 in the window alignment direction may be larger or smaller than the size of the filter window 200 in the window vertical direction.
  • Each of the window alignment direction size 201a and the window vertical direction size 201b of the plus window 201 is the size of a plurality of pixels.
  • each of the window arrangement direction size 202a and the window vertical direction size 202b of the minus window 202 is the size of a plurality of pixels.
  • the generation unit 602 sets the filter window 200 in the depth image 706 so that the first pixel of interest is positioned at the center of the plus window 201, for example. Then, in the unit filtering process, the generation unit 602 multiplies each pixel value of a plurality of first pixels including the target first pixel in the plus window 201 by a predetermined plus value.
  • the generation unit 602 obtains the total sum of the plurality of first pixel values multiplied by the predetermined positive value as the positive total sum value.
  • a positive total value indicates a positive value.
  • the generation unit 602 multiplies the pixel value of each first pixel in the minus window 202 by a negative value.
  • the generating unit 602 obtains the total sum of the plurality of first pixel values multiplied by the predetermined negative value as the negative total sum value.
  • a negative total value indicates a negative value.
  • the generation unit 602 obtains a negative total sum value for each of the two negative partial windows 202 .
  • the generation unit 602 obtains the total sum of the positive total value and the two negative total values as a calculation value.
  • the generation unit 602 sets the calculated value as the second pixel value corresponding to the first pixel value of interest in the high-position image data 720 .
  • the generation unit 602 sets the second pixel value corresponding to the first pixel value of interest to zero.
  • the second pixel value of the high position image becomes a value equal to or greater than zero. Note that even if the calculated value is a negative value, the calculated value may be used as the second pixel value as it is.
  • the filter window 200 is set in the depth image 706 so as to include, for example, the first pixel of interest and a plurality of surrounding first pixels. Then, a predetermined operation is performed on the pixel values of the first pixel of interest and a plurality of surrounding first pixels to obtain a second pixel value corresponding to the first pixel of interest.
  • the first spatial filter function is a function representing such processing.
  • the position of the first pixel of interest moves, for example, along the raster scan direction. That is, the filter window 200 moves on the depth image 706 along, for example, the raster scan direction.
  • the first pixel at the pixel position (0, 0) of the depth image 706 is set as the first pixel of interest.
  • the first pixel of interest is moved by one pixel along the row direction, and the first pixel at the pixel position (1, 0) is set as the first pixel of interest.
  • unit filtering is executed each time the first pixel of interest moves by one pixel along the row direction.
  • the first pixel at the pixel position (M, 0) is set as the first pixel of interest
  • the first pixel at the pixel position (M, 1) is set as the first pixel of interest.
  • the first pixel of interest is moved by one pixel along the row direction, and the first pixel at the pixel position (M, 1) is set as the first pixel of interest. is the first pixel of interest.
  • the unit filtering process is executed with the first pixel at the pixel position (M, N) as the first pixel of interest, a plurality of are obtained, and the generation process ends.
  • the size of the plus window 201 is, for example, a size corresponding to the object size.
  • the window alignment direction size 201a and the window vertical direction size 201b of the plus window 201 are each sized according to the object size.
  • the window alignment direction size 201a and the window vertical direction size 201b are sizes corresponding to the size of the object 10 in a specific direction.
  • the window arrangement direction size 201a may be a size corresponding to the width direction size of the object 10, may be a size corresponding to the depth direction size of the object 10, or may be a size corresponding to the height direction size of the object 10.
  • the window vertical size 201b may be a size corresponding to the width direction size of the object 10, a size corresponding to the depth direction size of the object 10, or a height direction size of the object 10.
  • the size in the width direction may be read as the size in the horizontal direction or the size in the longitudinal direction
  • the size in the depth direction may be read as the size in the vertical direction or the size in the width direction
  • the size in the height direction may be read as the size in the thickness direction. can be read as
  • the window alignment direction size 201a and the window vertical direction size 201b correspond to the size of the object 10 on the captured image of the camera 40a or camera 41 of the sensor device 4, for example. That is, the size of the object 10 on the captured image of the camera 40a or the camera 41 of the sensor device 4 is adopted as the window alignment direction size 201a and the window vertical direction size 201b.
  • a typical pose of the object 10 on the tray 13 is taken as a reference pose, and the object 10 in the reference pose on the tray 13 (referred to as the reference object 10) is captured by the camera 40a or the camera 41.
  • the photographed image obtained is called a reference photographed image.
  • the window alignment direction size 201a and the window vertical direction size 201b each match, for example, the size of the reference object 10 on the reference captured image.
  • each of the window alignment direction size 201a and the window vertical direction size 201b matches the size of the reference object 10 in the specific direction on the reference captured image.
  • the window arrangement direction size 201a may match the width direction size of the reference object 10 on the reference captured image, or may match the depth direction size of the reference object 10 on the reference captured image.
  • the window vertical direction size 201b may match the width direction size of the reference object 10 on the reference captured image, or may match the depth direction size of the reference object 10 on the reference captured image. , may match the height direction size of the reference object 10 on the reference captured image.
  • the window alignment direction size 201a and the window vertical direction size 201b may be different from each other, or may be the same as each other. In the former case, for example, the window alignment direction size 201a matches the depth direction size of the reference object 10 on the reference captured image, and the window vertical direction size 201b matches the width direction size of the reference object 10 on the reference captured image. You may
  • the size of the minus window 202 corresponds to the size of the object.
  • each of the window alignment direction size 202a and the window vertical direction size 202b of the minus window 202 is a size corresponding to the object size.
  • Each of the window alignment direction size 202a and the window vertical direction size 202b matches, for example, the size of the reference object 10 on the reference captured image, similarly to the window alignment direction size 201a and the window vertical direction size 201b.
  • the window arrangement direction size 202a may match the width direction size of the reference object 10 on the reference captured image, or may match the depth direction size of the reference object 10 on the reference captured image. It may match the height direction size of the reference object 10 on the captured image.
  • the window vertical direction size 202b may match the width direction size of the reference object 10 on the reference captured image, or may match the depth direction size of the reference object 10 on the reference captured image. , may match the height direction size of the reference object 10 on the reference captured image.
  • the window alignment direction size 202a and the window vertical direction size 202b may match each other or may differ from each other.
  • the size corresponding to the object size matches the size of the reference object 10 on the reference captured image, but it does not have to match.
  • the size corresponding to the object size may be 1/2 to 2 times the size of the reference object 10 on the reference captured image.
  • the window alignment direction size 202a of the minus window 202 matches the window alignment direction size 201a of the plus window 201, but it does not have to match the window alignment direction size 201a.
  • the window vertical size 202b of the minus window 202 matches the window vertical size 201b of the plus window 201, but it does not have to match the window vertical size 201b.
  • the sizes 202a in the window arrangement direction of the two minus windows 202 match each other, but they may differ from each other.
  • the window vertical direction sizes 202b of the two minus windows 202 are the same, but they may be different.
  • the window arrangement direction size 201a corresponding to the object size may be stored in the storage unit 63 of the information processing device 6 in advance. Also, the window arrangement direction size 201a may be input to the information processing device 6 by the user. In this case, if the information processing device 6 has an input unit that receives user input, the user may directly input the window alignment direction size 201a to the information processing device 6 . Further, when the external device includes an input device that receives input from the user, the user may input the window alignment direction size 201a to the information processing device 6 through the input device. Alternatively, the control unit 60 of the information processing device 6 or the robot control unit 5 may determine the window arrangement direction size 201a.
  • the control unit 60 or the robot control unit 5 calculates the size of the reference object 10 on the reference captured image based on the image data representing the reference captured image obtained by the camera 40a or the camera 41, for example.
  • the window alignment direction size 201a may be determined based on the calculated size.
  • the control unit 60 or the robot control unit 5 can perform reference photography based on CAD (Computer Aided Design) data representing the outer shape of the object 10 and characteristic data of the camera 40a or camera 41 without using image data.
  • the size of the reference object 10 on the image may be calculated, and the window alignment direction size 201a may be determined based on the calculated size.
  • the above description of the window alignment direction size 201a can also be applied to the window vertical direction size 201b, the window alignment direction size 202a, and the window vertical direction size 202b.
  • FIGS. 7 and 8 are schematic diagrams for explaining an example of unit filtering.
  • a graph 900 shows the relationship between each pixel position of the focused row and the pixel value of the pixel at that pixel position (that is, the first pixel value). It is shown.
  • each position of the target row of the depth image 706 is indicated on the horizontal axis, and the first pixel value is indicated on the vertical axis.
  • FIG. 7 also shows the filter window 200 set for the area including part of the line of interest in the depth image 706 in line with the position of the horizontal axis of the graph 900 .
  • the camera 40a of the depth sensor 40 photographs the tray 13 from above.
  • the depth to the measurement point on the surface of the object in the measurement space 100 is the depth from the depth sensor 40 to the measurement point. Therefore, it can be said that a measurement point with a large depth is a measurement point with a small height from the depth side of the measurement space 100 when viewed from the depth sensor 40 . Therefore, the first pixel value of the depth image 706 can be regarded as representing the height of the corresponding measurement point. That is, it can be said that the depth image 706 is an image representing the height of each measurement point, and the depth information 705 is information representing the height of each measurement point.
  • the depth information 700 can also be said to be information representing the height of each measurement point.
  • the larger the first pixel value the smaller the depth to the corresponding measurement point. Therefore, the greater the first pixel value, the greater the height of the corresponding measurement point.
  • a partial image corresponding to the object height position portion included in the overall height position portion that is, a partial image corresponding to a portion of one target object 10 at a higher position than the others, is processed as a first
  • This is sometimes called an object height position equivalent image.
  • a plurality of measurement points respectively corresponding to a plurality of pixels forming the first object height position equivalent image are positioned on the target object 10 . Since the higher the first pixel value, the higher the height of the corresponding measurement point, the first pixel value of the first object height position equivalent image is the first pixel value of the surrounding portion of the first object height position equivalent image. The value is greater than one pixel value.
  • the area where the value is larger than the surrounding area is the first pixel value of the first object height position equivalent image. It can be said that the line connecting the points indicating the first pixel values in the graph 900 represents the shape of the surface of the object group 10A when the object group 10A is viewed from the depth sensor 40 .
  • the filter window 200 is set in the depth image 706 so that the first pixel of interest is positioned at the center of the plus window 201, for example.
  • the filter window 200 is set so that the first pixel of interest is included in the first object height equivalent image.
  • the measurement point corresponding to the first pixel of interest is a measurement point positioned higher than the others.
  • the filter window 200 is set so that the first pixel of interest is not included in the first object height position equivalent image.
  • the measurement point corresponding to the first pixel of interest is not located higher than the other measurement points.
  • a measurement point positioned higher than other measurement points may be referred to as a high-position measurement point.
  • the absolute value of the positive total value based on the positive window 201 is a relatively large value.
  • the absolute value of the negative total value based on the negative window 202 is not so large. Therefore, the calculated value, which is the sum of the positive total value and the two negative total values, indicates a positive value.
  • the pixel value of the second pixel of the high-position image which corresponds to the first pixel of interest included in the first object-high-position-equivalent image, indicates a positive value.
  • the absolute value of the positive total value based on the positive window 201 is a relatively small value.
  • the absolute value of the negative total value based on the negative window 202 is a relatively large value. Therefore, the calculated value, which is the sum of the positive total value and the two negative total values, indicates a negative value. As a result, the pixel value of the second pixel of the high position image corresponding to the target first pixel not included in the first object high position corresponding image becomes zero.
  • the calculated value will be zero, for example.
  • FIG. 9 is for explaining an example of unit filter processing when the size of the plus window 201 and the minus window 202 does not correspond to the size of the object and the size of the plus window 201 and the minus window 202 is too large.
  • 1 is a schematic diagram of FIG.
  • the filter window 200 is set so that the first pixel of interest is included in the first object height position corresponding image.
  • the positive window 201 since the positive window 201 includes the image surrounding the first object height position equivalent image including the first pixel of interest, the absolute value of the positive total value is different from that in the example of FIG. small value.
  • the minus window 202 includes the first pixel having a large first pixel value
  • the absolute value of the minus total value based on the minus window 202 is larger than in the example of FIG. Therefore, the calculated value is smaller than in the example of FIG. For example, the calculated value becomes a negative value.
  • the pixel value of the second pixel corresponding to the first pixel of interest included in the first object height position equivalent image of the depth image is reduced.
  • FIG. 10 is for explaining an example of unit filter processing when the size of the plus window 201 and the minus window 202 does not correspond to the size of the object and the size of the plus window 201 and the minus window 202 is too small.
  • 1 is a schematic diagram of FIG.
  • the filter window 200 is set so that the first pixel of interest is included in the first object height position equivalent image.
  • the plus window 201 does not include the image around the first object height position equivalent image including the first pixel of interest, the absolute value of the plus total value is the same as in the example of FIG. similarly large value.
  • the minus window 202 includes the first pixel of the first object height position equivalent image including the first pixel of interest
  • the absolute value of the minus total value based on the minus window 202 is compared with the example in FIG. and grow. Therefore, the calculated value is smaller than in the example of FIG.
  • the pixel value of the second pixel corresponding to the first pixel of interest included in the first object height position equivalent image of the depth image is reduced.
  • the size of the plus window 201 is the size corresponding to the object size
  • the size of the plus window 201 is set to the size of the image corresponding to the first object height position of the depth image. It is possible to get closer.
  • the first pixel of interest is included in the first object height equivalent image as in the example of FIG.
  • the absolute value of the negative total value tends to be small. Therefore, the calculated value tends to increase.
  • the pixel value of the second pixel corresponding to the first pixel of interest in the high position image tends to increase.
  • the measurement point corresponding to the first pixel of interest is positioned higher than the others, so the measurement point located on the object 10 is higher than the others. position, the second pixel value corresponding to the measurement point tends to increase.
  • the absolute value of the plus sum value is small, and at least one of the two minus sum values is The absolute value tends to increase. Therefore, the calculated value tends to be small. If the first pixel of interest is not included in the first image corresponding to the object height position, the measurement point corresponding to the first pixel of interest is not at a higher position than the others. If the measurement point is not positioned higher than the others, the second pixel value corresponding to the measurement point tends to be small.
  • the second pixel values corresponding to the high-position measurement points tend to be large.
  • the second pixel values corresponding to measurement points that are not high-position measurement points tend to be small. That is, the second pixel value of the measurement point changes depending on whether or not the measurement point is higher than the others.
  • the high position information 720 can appropriately represent a high position portion of the object group 10A, that is, a portion of the object group 10A that is positioned higher than the others. Therefore, it is possible to appropriately identify the high position portion based on the high position information 720 .
  • a partial image having a second pixel value equal to or greater than the threshold is an image corresponding to the high-position portion of the object group 10A (also referred to as a second high-position equivalent image).
  • a second high-position equivalent image of the high-position image a continuous region composed of a plurality of pixels whose positions are continuous is specified, and the specified continuous region is an image corresponding to the object high position portion of one target object 10. (also referred to as a second object height position equivalent image).
  • each object high position portion can be specified individually from the high position information 720 .
  • the minus window 202 tends to include pixels with a large first pixel value.
  • the absolute value of the negative total value tends to increase, and as a result, the calculated value tends to decrease. Therefore, there is a possibility that the measurement point corresponding to the first pixel of interest will not be identified as the high position measurement point.
  • the size of the minus window 202 corresponds to the size of the object, as in the example of FIG. Therefore, when the first pixel of interest is included in the first image corresponding to the object height position, the absolute value of the negative total value is less likely to increase, and the calculated value is less likely to decrease. This makes it easier to identify the measurement point corresponding to the first pixel of interest as the high position measurement point.
  • the size of the minus window 202 is too small, the number of pixels included in the minus window 202 is reduced. In this case, if the pixel values of the specific pixels included in the minus window 202 contain a lot of noise, the error of the minus total value may increase. As the error of the negative total value increases, the error of the calculated value increases. As a result, the measurement point corresponding to the first pixel of interest may not be identified as the high position measurement point.
  • the size of the minus window 202 corresponds to the size of the object, even if the pixel values of specific pixels included in the minus window 202 contain a lot of noise, The error of the negative total value can be reduced, and as a result, the error of the pixel value of the second pixel corresponding to the first pixel of interest can be reduced. Therefore, the measurement point corresponding to the first pixel of interest is likely to be identified as the high position measurement point.
  • the plus window 201 is sandwiched between the two minus windows 202, it is possible to specify the object height position portion having spaces on both sides in the surroundings from the height position information 720. This point will be explained below.
  • the direction corresponding to the window alignment direction of the filter windows 200 set in the depth image is called the filter direction.
  • the directions corresponding to the row direction and column direction of the depth image in the measurement space 100 are called the x direction and the y direction, respectively.
  • the filter direction matches the x direction.
  • partial images with small first pixel values are located on both sides of the first object height position equivalent image including the first pixel of interest in the window arrangement direction. Therefore, on both sides in the filter direction of the object height portion corresponding to the first object height equivalent image including the first pixel of interest (also referred to as the object height portion of interest), there is a space where no object exists.
  • the filter window 200 in which the positive window 201 is sandwiched between two negative windows 202 is set as shown in FIG. 7, the pixel value of the second pixel corresponding to the first pixel of interest increases.
  • the pixel value of the second pixel corresponding to the first pixel of interest changes when a partial image with a small first pixel value is located only on one side of the position-equivalent image in the window arrangement direction.
  • the second pixel corresponding to the target first pixel pixel value changes.
  • the filter direction coincides with the x direction corresponding to the row direction of the depth image in the measurement space 100
  • at least the object height position portion having spaces on both sides in the x direction is identified as the high position information 720 easier to identify from
  • the end effector 21 can easily grip the target object 10 including the object high position portion specified from the high position information 720 from both sides in the filter direction.
  • the filter window 200 does not have to include one of the two minus windows 202 .
  • the window alignment direction size 202 a of the minus window 202 determines the size of the space around the object high position portion specified from the high position information 720 .
  • the window arrangement direction size 202a of the minus window 202 on the right side is large, the space on the right side of the filter direction of the object high position portion specified from the high position information 720 becomes large. That is, when the window arrangement direction size 202a of the minus window 202 on the right side is large, an object high position portion with a large space on the right side in the filter direction is specified from the high position information 720.
  • FIG. By adjusting the window arrangement direction size 202a of the minus window 202, it is possible to acquire the high position information 720 in consideration of the size of the space around the object high position portion. This point will be explained below.
  • each minus window 202 When the window alignment direction size 202a of each minus window 202 is large, as shown in FIG. If the partial image is spread out, it becomes difficult for the first pixels with large first pixel values to be included in each minus window 202 . In other words, if partial images with small first pixel values are spread on both sides of the first object height position equivalent image including the first pixel of interest in the window arrangement direction, when the window arrangement direction size 202a of the minus window 202 is large. However, the pixel value of the second pixel corresponding to the first pixel of interest increases.
  • the object height position has a large space on the left side in the filter direction and a small space on the right side in the filter direction.
  • a portion is identified from high position information 720 .
  • the size of the space around the object height position portion specified from the height position information 720 can be adjusted.
  • the window arrangement direction size 202a is set to a size corresponding to the object size, as in the above example, the height position information 720 indicates that the size of the surrounding space corresponds to the object size. can be specified.
  • the size 202a of the minus window 202 in the window alignment direction may be a size corresponding to the thickness of the end effector 21 fingers.
  • the window arrangement direction size 202a of the minus window 202 may be matched with the thickness of the finger of the end effector 21 on the captured image obtained by the camera 40a or the camera 41, as described above.
  • the high position information 720 that can specify the object high position portion whose size of the surrounding space corresponds to the thickness of the finger of the end effector 21 . Therefore, the object 10 that can be gripped by the end effector 21 with a plurality of fingers can be determined as the object 10 to be held.
  • the identifying unit 603 that identifies an object image in which the target object 10 is captured in the color image 711 binarizes the high position image represented by the high position information 720 to generate a binarized image, for example. For example, for each of the second pixel values of the plurality of second pixels forming the high-position image, the identifying unit 603 converts the second pixel value equal to or greater than the threshold to "1", and converts the second pixel value equal to or greater than the threshold to "1". 2 Change the pixel value to "0". As a result, the high-position image is converted into a binarized image.
  • a region having a pixel value of "1" in the binarized image corresponds to the high position portion of the object group 10A.
  • a region having a pixel value of "1” will be referred to as a high-value region
  • a region having a pixel value of "0” will be referred to as a low-value region.
  • the identifying unit 603 identifies a continuous region made up of a plurality of pixels with continuous positions, which is included in the high value region corresponding to the overall high position portion.
  • a continuous region can also be called an independent region or an island region.
  • a plurality of continuous regions included in the high-value region correspond to object high position portions of the plurality of target objects 10, respectively.
  • a region corresponding to one continuous region of the binarized image corresponds to one object high position portion and is a second object high position corresponding image.
  • the identification unit 603 can identify a plurality of continuous regions included in the high price region by labeling the high price region using 4-connection, 8-connection, or the like.
  • the specifying unit 603 specifies, for each specified continuous area, a partial image corresponding to the continuous area in the color image 711 . Then, the specifying unit 603 sets the specified partial image as an object image including the target object 10 .
  • the partial image corresponding to the continuous area corresponding to the object height position portion of the target object 10 is the object image in which the target object 10 is shown.
  • a partial image corresponding to the continuous area in the color image 711 is a partial image (third object high position It is also called an equivalent image). Therefore, the third object height position corresponding image included in the color image 711 is the object image in which the target object 10 is shown. Since the object height position portion captured in the third object height position equivalent image constitutes at least a portion of the target object 10, at least a portion of the target object 10 is captured in the object image.
  • FIG. 13 is a schematic diagram showing an example of how a range 713 extended from the third object height position corresponding image 712 in the color image 711 is used as the object image 714 .
  • An example of the third object height equivalent image 712 is shown on the left side of FIG.
  • the right side of FIG. 13 shows a range 713 expanded from the third object height equivalent image 712 shown on the left side.
  • the specifying unit 603 may use the range 713 extended from the third object height position corresponding image 712 as the object image 714 based on the color information of the measurement space 100 .
  • the specifying unit 603 may use the range 713 extended from the third object height position equivalent image 712 as the object image 714 based on the color image data 710 .
  • the specifying unit 603 specifies, for example, a region in the color image 711 that is continuous with the third object high position equivalent image 712 and that has the same color as the third object high position equivalent image 712 . do.
  • the specifying unit 603 sets a range 713 extended from the third object height position equivalent image 712 to the specified region as an object image 714 .
  • the specifying unit 603 adds the specified region to the third object height position equivalent image 712 to obtain the object image 714 . This enlarges the size of the target object 10 appearing in the object image.
  • the specifying unit 603 may use the range 713 extended from the third object height position equivalent image 712 as the object image 714 based on the edge image of the measurement space 100 .
  • the specifying unit 603 generates an edge image of the measurement space 100 by performing edge detection on the color image 711 showing the measurement space 100, for example.
  • the Sobel method, the Laplacian method, the Canny method, or the like is used as the edge image generation method.
  • the identifying unit 603 identifies a portion of the edge image corresponding to the third object height position equivalent image 712 (also referred to as a corresponding partial edge image).
  • the specifying unit 603 specifies a range extending from the corresponding partial edge image to the edge corresponding to the contour of the target object 10 (the region where the luminance changes rapidly) in the edge image. Then, the specifying unit 603 sets a portion corresponding to the specified range in the color image 711 as a range 713 extended from the third object height position equivalent image 712 based on the edge image, and sets the range 713 as an object image 714. .
  • the target object 10 of interest among the plurality of target objects 10 is called the attention target object 10 .
  • the degree acquisition unit 604 may, for example, obtain an evaluation value representing the ease of holding the target object 10 and employ the obtained evaluation value as the degree of ease of holding the target object 10 .
  • the evaluation value can be obtained from various viewpoints.
  • the degree acquisition unit 604 identifies a partial image (also referred to as an object-corresponding image) corresponding to the specific object image in which the target object 10 is shown in the depth image 706 .
  • the degree obtaining unit 604 obtains the average value or the maximum value of the pixel values of the plurality of first pixels forming the specified object-based image.
  • the mean value and maximum value for the object-oriented image are called the first mean value and the first maximum value, respectively.
  • the degree acquisition unit 604 may use the first average value or the first maximum value as the evaluation value.
  • the degree acquisition unit 604 identifies a partial image 707b (also referred to as a surrounding partial image 707b) surrounding the object corresponding image 707a in the depth image 706, and extracts the identified surrounding partial image 707b.
  • An average value or a maximum value of the pixel values of a plurality of constituent first pixels may be obtained.
  • the average value and maximum value for the surrounding partial image 707b are called the second average value and the second maximum value, respectively.
  • the degree acquiring unit 604 may use a difference value obtained by subtracting either the second average value or the second maximum value from either the first average value or the first maximum value as the evaluation value. Since the difference value increases as the target object 10 is positioned higher than its surroundings, it can be said that the target object 10 is easier to hold as the difference value increases.
  • the width 707bb of the surrounding partial image 707b may be a size corresponding to the thickness of the end effector 21 fingers.
  • the width 707bb may match the thickness of the finger of the end effector 21 on the captured image obtained by the camera 40a or the camera 41.
  • FIG. 14 the surrounding partial image 707b surrounds the object corresponding image 707a, but it does not have to surround the object corresponding image 707a.
  • the degree acquisition unit 604 may also identify the size of the space around the target object 10 based on the depth image 706 and determine the evaluation value based on the identified size. In this case, the degree obtaining unit 604 increases the evaluation value, for example, as the size of the space around the target object 10 increases.
  • the degree acquisition unit 604 can specify the size of the space around the target object 10 by specifying, for example, a range of small first pixel values around the object corresponding image 707a in the depth image 706 .
  • the hold target determination unit 605 determines the hold target object 10 as the hold target object 10 that has the highest degree of ease of holding among the plurality of target objects 10 . If there are a plurality of target objects 10 with the highest degree of ease of holding, the hold target determination unit 605 may determine the hold target object 10 based on other information. For example, for each of the plurality of target objects 10 having the highest degree of ease of holding, the exposed area of the target object 10 is obtained based on the specific object image in which the target object 10 is captured. Then, the degree acquisition unit 604 may set the target object 10 having the largest exposed area as the hold target object 10 among the plurality of target objects 10 having the largest holdability degree.
  • robot system 1 has been described above, the robot system 1 is not limited to the above example. Another example of the robot system 1 will be described below.
  • the generation unit 602 may generate the high position information 720 by filtering the depth image 706 using multiple types of spatial filter functions according to the object size. For example, the generation unit 602 may generate the high position information 720 by filtering the depth image 706 using the first spatial filter function and the second spatial filter function according to the object size. good.
  • FIG. 15 is a schematic diagram showing an example of a filter window 220 of the second spatial filter function.
  • the filter window 220 has, for example, a plus window 201 and two minus windows 202, similar to the filter window 200. Unlike the filter window 200, the window alignment direction and window vertical direction of the filter window 220 match the column direction and row direction of the depth image 706, respectively.
  • the generation unit 602 filters the depth image using the filter window 200 in the same manner as described above.
  • the filtered depth image generated using the filter window 200 is referred to as a first filtered image.
  • the generator 602 also filters the depth image using the filter window 210 in the same manner as the filter window 200 is used. This filtered depth image is called a second filtered image. Then, the generation unit 602 sets a synthesized image obtained by synthesizing the first filtered image and the second filtered image as a high position image.
  • the generation unit 602 generates a value obtained by adding the pixel value of the pixel at the pixel position (m, n) in the first filtered image and the pixel value of the pixel at the pixel position (m, n) in the second filtered image. , the pixel value of the pixel at the pixel position (m, n) of the synthesized image.
  • the generation unit 602 generates a composite image by performing this process for each pixel position.
  • FIG. 16 is a schematic diagram illustrating an example filter window 220 for a third spatial filter function and an example filter window 230 for a fourth spatial filter function.
  • Each of the filter windows 220 and 230 has a plus window 201 and two minus windows 202, similar to the filter windows 200 and 210.
  • the window alignment direction of the filter windows 220 is set to the right oblique direction of the depth image 706 .
  • the window alignment direction of the filter windows 230 is set to the left oblique direction of the depth image 706 .
  • the generation unit 602 When using the filter windows 200, 210, 220, and 230, the generation unit 602 generates the first filtered image and the second filtered image as described above.
  • the generator 602 also filters the depth image using the filter window 220 .
  • the depth image after this filtering process is called a third filtered image.
  • the generator 602 also filters the depth image using the filter window 230 .
  • the depth image after this filtering process is called a fourth filtered image.
  • the generation unit 602 sets a synthesized image obtained by synthesizing the first filtered image, the second filtered image, the third filtered image, and the fourth filtered image as the high position image.
  • the generating unit 602 generates, for example, the pixel value of the pixel at the pixel position (m, n) of the first filtered image, the pixel value of the pixel at the pixel position (m, n) of the second filtered image, and the pixel value of the pixel at the pixel position (m, n) of the third filtered image.
  • a value obtained by adding the pixel value of the pixel at the pixel position (m, n) and the pixel value of the pixel at the pixel position (m, n) of the fourth filtered image is defined as the pixel position (m, n) of the synthesized image. is the pixel value of the pixel in
  • the generation unit 602 generates a composite image by performing this process for each pixel position. From the high position information 720 representing the high position image generated in this way, it becomes easy to identify the object high position portion having a space in at least one of the four directions around it.
  • the generation unit 602 may generate the high position information 720 using five or more types of filter windows with different window alignment directions. Also, the generator 602 may generate the high position information 720 using at least one of the filter windows 200 , 210 , 220 and 230 .
  • the generation unit 602 may generate the high position information 720 using multiple types of spatial filter functions corresponding to the sizes of the object 10 in multiple directions.
  • FIG. 17 is a schematic diagram showing an example of filter windows of multiple types of spatial filter functions corresponding to sizes of the object 10 in multiple directions.
  • FIG. 17 shows a filter window 240 of the spatial filter function corresponding to the height direction size of the object 10, a filter window 250 of the spatial filter function corresponding to the depth direction size of the object 10, and a width direction size of the object 10.
  • a filter window 260 of the spatial filter is shown.
  • FIG. 17 shows an example in which the size in the width direction, the size in the depth direction, and the size in the height direction of the object 10 are larger in this order.
  • Each of the filter windows 240 , 250 , 260 has the same configuration as the filter window 200 .
  • the window arrangement direction size and window vertical direction size of the plus window 201 and the minus window 202 of the filter window 240 match the height direction size of the reference object 10 on the reference captured image.
  • the window alignment direction size and window vertical direction size of the plus window 201 and the minus window 202 of the filter window 250 match the depth direction size of the reference object 10 on the reference captured image.
  • the window alignment direction size and window vertical direction size of the plus window 201 and the minus window 202 of the filter window 260 match the width direction size of the reference object 10 on the reference captured image.
  • the generation unit 602 generates a depth image filtered using the filter window 240 (also referred to as a fifth filtered image), a depth image filtered using the filter window 250 (also referred to as a sixth filtered image), and a filter A filtered depth image (also referred to as a seventh filtered image) is prepared using window 260 . Then, the generation unit 602 generates a synthesized image by synthesizing the fifth filtered image, the sixth filtered image, and the seventh filtered image in the same manner as described above, and sets the synthesized image as the high position image.
  • the orientation of the object 10 in the object group 10A on the tray 13 is determined. It becomes easy to specify the high-position portion of the object group 10A regardless of the variation in . In other words, regardless of how each object 10 looks when the object group 10A is viewed from the sensor device 4, it becomes easier to identify the high position portion of the object group 10A. Furthermore, in other words, regardless of how each object 10 appears in the captured images obtained by the cameras 40a and 41, it becomes easier to identify the high-position portion of the object group 10A. This makes it easier to identify the object 10 that is easy to hold. Therefore, the end effector 21 can easily hold the object 10 .
  • the configuration of the filter window used by the generation unit 602 is not limited to the above example.
  • the filter windows of at least one type of spatial filter function used by the generator 602 may include the filter window 270 shown in the upper part of FIG. 18 or the filter window 280 shown in the middle of FIG. may be included, or the filter window 290 shown at the bottom of FIG. 18 may be included.
  • filter window 270 plus window 201 is surrounded by minus window 202 .
  • minus windows 202 are arranged above and below and to the left and right of the plus window 201 . If a filter window 280 is used, high object portions with surrounding x and y spaces are more likely to be identified.
  • the outer shape of the filter window 290 is circular. In addition, the outer shape of the filter window may be other than rectangular and circular.
  • the arrangement of the plurality of minus partial windows 202 included in the filter window may be determined according to the arrangement of the fingers of the end effector 21 of the robot 2 .
  • the plurality of negative partial windows 202 of the filter window may be arranged like the filter window 200 in FIG. may be arranged like the filter window 210 of , or may be arranged like the filter window 290 of FIG.
  • the plurality of minus partial windows 202 of the filter window may be arranged like the filter window 280 in FIG. It may be arranged like the filter window 270 of FIG.
  • the predetermined plus value for the plus window 201 may be other than +1.0, and the predetermined minus value for the minus window 202 may be other than -0.5.
  • the pixel values of the plurality of first pixels in the plus window 201 are multiplied by a predetermined plus value, but a predetermined plus value may be added.
  • a predetermined negative value may be added to the pixel values of the plurality of first pixels within the negative window 202 .
  • the plus window 201 may be changed to the minus window 202 and the minus window 202 may be changed to the plus window 201 .
  • the second pixel value corresponding to the measurement point positioned higher than the others is The second pixel value corresponding to a measurement point that is not positioned higher than the others tends to increase. Therefore, in the high position image represented by the high position information 720, the partial image having the second pixel value less than the threshold is the image corresponding to the high position portion of the object group 10A (that is, the second high position corresponding image). Become.
  • a plurality of filter images respectively corresponding to a plurality of types of filter windows are synthesized, but they do not have to be synthesized.
  • a certain type of filter window is used to generate a filtered image (step s3), the generated filtered image is used as a high position image, and steps s4 to s7 are performed. may be executed.
  • step s4 if the binarized image of the high position image does not include a high value region, that is, if the high position portion of the object group 10A is not detected, steps s5 to s7 are not executed and another type
  • the holding pose determination process may be performed again using a filter window of .
  • step s4 of this holding posture determination process if the binarized image of the high position image does not include a high-value region, another type of filter window may be used and the holding posture determination process may be executed again. .
  • the specifying unit 603 uses the object image as a range extended from the third object high position equivalent image based on the edge image or color information of the measurement space 100, but based on the depth information 705, the third A range extended from the image corresponding to the object height position may be used as the object image.
  • the generation unit 602 functions as part of the identification unit 603 .
  • the identifying unit 603 filters the depth image 706 using, for example, two types of filter windows whose window alignment directions are perpendicular to each other. Then, the specifying unit 603 determines, as the object image, the range extended from the third object height position equivalent image based on the result of the filter processing in the color image 711 .
  • FIG. 19 is a schematic diagram for explaining an example of the operation of the identification unit 603.
  • FIG. 19 schematically shows an example of a partial image 706a included in the depth image 706 when the object 10 is elongated, such as a pencil.
  • a partial image 706 a is an image representing the depth of one object 10 .
  • a filter window 200 and a filter window 210 are set for the partial image 701a.
  • the window alignment direction size and window vertical direction size of the plus window 201 and the minus window 202 of the filter windows 200 and 210 are set according to the size of the elongated object 10 in the width direction.
  • Filter windows 200 and 210 are set to include the first pixel of interest at the same pixel location.
  • the window alignment direction of the filter windows 200 matches the longitudinal direction of the object 10 corresponding to the partial image 706 a in the depth image 706 .
  • the window alignment direction of the filter windows 210 coincides with the direction corresponding to the lateral direction of the object 10 corresponding to the partial image 706 a in the depth image 706 .
  • the calculated value (also referred to as the first calculated value) obtained using the filter window 200 is Although it increases, the calculated value obtained using the filter window 210 (also referred to as a second calculated value) becomes smaller. Therefore, when the difference value obtained by subtracting the second calculated value from the first calculated value is equal to or greater than the threshold value, the certain object 10 is positioned in the measurement space 100 in the direction corresponding to the window arrangement direction of the filter windows 210 (the second 2 filter direction).
  • the specifying unit 603 generates a plurality of first calculation values obtained when the filter window 200 is used in the generation unit 602 to filter the depth image 706, and the filter window 210 is used in the generation unit 602. Based on a plurality of second calculation values obtained when the image 706 is filtered, the direction in which the object 10 shown in the third object height position equivalent image extends is identified. Then, the specifying unit 603 determines, as the object image, the range extended from the third object height position equivalent image based on the specified direction.
  • the first calculated value obtained when the pixel position of the first pixel of interest is the pixel position (m, n) and the pixel position (m, n) correspond to each other.
  • the second calculation value obtained when the pixel position of the first pixel of interest is the pixel position (m, n) and the pixel position (m, n) are expressed as mutually corresponding.
  • the identifying unit 603 selects a plurality of first calculated values respectively corresponding to a plurality of third pixels forming a third object height position corresponding image from a plurality of first calculated values obtained by filtering based on the filter window 200. Identify. The first calculated value corresponding to the third pixel is the first calculated value corresponding to the same pixel position as that of the third pixel. Further, the identifying unit 603 selects a plurality of second calculation values corresponding to a plurality of third pixels forming the third object height position equivalent image from a plurality of second calculation values obtained by filtering based on the filter window 210. Identify a value. The second calculated value corresponding to the third pixel is the second calculated value corresponding to the same pixel position as that of the third pixel.
  • the identifying unit 603 obtains a difference value between the first calculated value and the second calculated value corresponding to the same pixel position with respect to the specified plurality of first calculated values and the plurality of second calculated values. This difference value is a difference value obtained by subtracting the second calculated value from the first calculated value. Then, when the obtained plurality of difference values include a difference value larger than the threshold value, the identifying unit 603 determines that the object 10 captured in the third object height position equivalent image extends along the second filter direction. judge that there is When the identification unit 603 finds that the object 10 captured in the third object height position equivalent image extends along the second filter direction, the identification unit 603 determines the position of the filter window 210 from the third object height position equivalent image in the color image 711 .
  • the object image is defined as the range expanded along the window arrangement direction.
  • the specifying unit 603 is positioned in the window alignment direction of the filter window 210 with respect to the third object height position equivalent image, and Identify regions that have pixel values. Then, the identifying unit 603 determines, as an object image, a range expanded from the third object height position equivalent image to the identified region in the color image 711 .
  • the representative pixel value of the third object height position equivalent image may be, for example, an average value of pixel values of a plurality of third pixels forming the third object height position equivalent image.
  • filter windows 200 and 210 are not limited to the filter windows 200 and 210.
  • the filter windows 220 and 230 shown in FIG. 16 above may be used.
  • a grayscale image may be used instead of the color image 711.
  • the specifying unit 603 may specify an object image in which the target object 10 is shown in the grayscale image based on the high position information 720 in the same manner as described above.
  • the holding posture determination unit 606 may determine the direction in which the end effector 21 grips the holding target object 10 based on the window arrangement direction of the filter windows used in the holding posture determination processing. For example, when the end effector 21 grips the object 10 with two fingers and the filter window 200 of FIG. It may be decided to grip the hold target object 10 from a direction parallel to the filter direction.
  • the robot control unit 5 may control the opening/closing width of the finger of the end effector 21 based on the window arrangement direction size 202a of the minus partial window 202 of the filter window used in the holding posture determination process. For example, the robot control unit 5 increases the finger opening/closing width of the end effector 21 when the window alignment direction size 202a is large, and decreases the finger opening/closing width of the end effector 21 when the window alignment direction size 202a is small. good too.
  • robot control unit 6 information processing device 200, 210, 220, 230, 240, 250, 260, 270, 280, 290 filter window 201 plus partial window 202 minus partial window 600 information acquisition unit 602 generation unit 603 identification Unit 604 Degree acquisition unit 605 Holding object determination unit 606 Holding posture determination unit 630 Program 705 Depth information 706 Depth image 710 Color information 711 Color image 712 Third object height position equivalent image 714 Object image 720 High position information

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

情報処理装置は取得部及び生成部を備える。取得部は、複数の物体が存在する計測空間内での深度を表す深度情報を取得する。生成部は、深度情報に対して物体の物体サイズに応じたフィルタ処理を行って、計測空間内において、複数の物体のうち他よりも高い位置にある高位置部分を表す高位置情報を生成する。

Description

情報処理装置、ロボット制御システム及びプログラム
 本開示は、情報処理技術に関する。
 特許文献1には、山積み状態にある物体群の中から高い位置にある物体を特定する技術が記載されている。
特開2016-148558号公報
 情報処理装置、ロボット制御システム及びプログラムが開示される。一の実施の形態では、情報処理装置は取得部及び生成部を備える。取得部は、複数の物体が存在する計測空間内での深度を表す深度情報を取得する。生成部は、深度情報に対して物体の物体サイズに応じたフィルタ処理を行って、計測空間内において、複数の物体のうち他よりも高い位置にある高位置部分を表す高位置情報を生成する。
 また、一の実施の形態では、ロボット制御システムは、上記の情報処理装置が備える取得部及び生成部と、特定部と、度合取得部と、保持対象決定部と、保持姿勢決定部と、ロボット制御部とを備える。特定部は、複数の物体において、高位置部分に含まれる部分高位置部分を含む物体を対象物体とした場合、複数の対象物体のそれぞれについて、計測空間が撮影された撮影画像において当該対象物体が写る物体画像を、高位置情報に基づいて特定する。度合取得部は、複数の対象物体のそれぞれについて、当該対象物体の保持しやすさの度合を、深度情報に基づいて求める。保持対象決定部は、複数の対象物体についての度合に基づいて、複数の対象物体からロボットが保持する保持対象物体を決定する。保持姿勢決定部は、ロボットについての保持対象物体に対する保持姿勢を物体画像に基づいて決定する。ロボット制御部は、保持姿勢定部で決定された保持姿勢に基づいてロボットを制御する。
 また、一の実施の形態では、プログラムは、コンピュータ装置に、複数の物体が存在する計測空間内での深度を表す深度情報を取得することを実行させる。また、プログラムは、コンピュータ装置に、深度情報に対して物体の物体サイズに応じたフィルタ処理を行って、計測空間内において、複数の物体のうち他よりも高い位置にある高位置部分を表す高位置情報を生成することを実行させる。
ロボットシステムの一例を示す概略図である。 情報処理装置の一例を示す概略図である。 情報処理装置の制御部の一例を示す概略図である。 情報処理装置の動作の一例を示すフローチャートである。 フィルタ窓の一例を示す概略図である。 フィルタ窓が深度画像に設定されている様子の一例を示す概略図である。 フィルタ処理の一例を説明するための概略図である。 フィルタ処理の一例を説明するための概略図である。 フィルタ処理の一例を説明するための概略図である。 フィルタ処理の一例を説明するための概略図である。 フィルタ処理の一例を説明するための概略図である。 フィルタ処理の一例を説明するための概略図である。 物体画像の特定方法の一例を説明するための概略図である。 保持しやすさ度合を求める方法の一例を説明するための概略図である。 フィルタ窓の一例を示す概略図である。 フィルタ窓の一例を示す概略図である。 フィルタ窓の一例を示す概略図である。 フィルタ窓の一例を示す概略図である。 特定部の動作の一例を説明するための概略図である。
 図1はロボットシステム1の一例を示す概略図である。ロボットシステム1は、例えば、ロボット2と、ロボット2を制御するロボット制御システム3とを備える。ロボット制御システム3は、例えば、計測対象の空間である計測空間100内の状態を検出するセンサ装置4と、ロボット2を制御するロボット制御部5と、情報処理装置6とを備える。情報処理装置6は、ロボット制御部5でのロボット制御に必要な情報を、センサ装置4での検出結果に基づいて生成する。
 ロボット2は、例えば、物体10を作業開始台11から作業目標台12まで移動させることが可能である。物体10は作業対象物あるいはワークとも呼ばれる。ロボット制御部5は、物体10が作業開始台11から作業目標台12まで移動するようにロボット2を制御する。ロボット2は、例えば、アーム20と、物体10を保持するエンドエフェクタ21とを備える。ロボット2は、エンドエフェクタ21で物体10を保持した状態でアーム20を動かすことによって、物体10を作業開始台11から作業目標台12まで移動させることができる。ロボット制御部5は、アーム20及びエンドエフェクタ21を制御することができる。エンドエフェクタ21は、物体10を把持して物体10を保持してもよいし、物体10を吸引して物体10を保持してもよいし、他の方法で物体10を保持してもよい。エンドエフェクタ21は、物体10を把持する場合、二指で物体10を把持してもよいし、二指以上の数の指で物体10を把持してもよい。
 作業開始台11及び作業目標台12には、トレー13及び14がそれぞれ置かれている。トレー13には複数の物体10がばらばらに積まれている。ロボット2は、例えば、トレー13上の物体10を一つずつ保持して作業目標台12まで移動させてトレー14内に並べる作業を行う。以後、トレー13上の複数の物体10をまとめて物体群10Aと呼ぶことがある。
 センサ装置4の計測空間100には、トレー13上においてばらばらに積まれた複数の物体10が存在する。センサ装置4は、計測空間100内での深度及び色を検出することが可能である。センサ装置4は、計測空間100内での深度を表す深度情報700(後述の図3参照)と、計測空間100内での色情報710(後述の図3参照)とを取得することが可能である。センサ装置4は、例えば、深度情報700を取得する深度センサ40と、計測空間100を撮影して計測空間100内での色情報710を取得するカメラ41とを備える。
 深度センサ40は、例えばステレオ方式を用いて深度情報700を生成する。深度センサ40は、例えば、それぞれが計測空間100を撮影する複数のカメラ40aから成るステレオカメラを備える。各カメラ40aは、トレー13の上方から、トレー13上の物体群10Aを撮影する。深度センサ40は、複数のカメラ40aで得られた画像データに基づいて深度情報700を生成する。深度センサ40は、例えば、三角測量の原理に基づいて深度情報700を生成する。深度センサ40は、深度情報700として、深度画像701(後述の図3参照)を表す深度画像データを生成する。深度画像701は、計測空間100内の複数の計測点までの深度を表す画像である。計測点は、計測空間100内の物体の表面に位置する。複数の計測点には、計測空間100内の物体であるトレー13の表面に位置する計測点及びトレー13上の物体群10Aの表面に位置する計測点が含まれる。深度画像701は、計測空間100内の物体までの深度を表す画像であるともいえる。深度情報700が表す深度は、深度センサ40(詳細にはステレオカメラ)から見た場合の計測点の深度となる。以後、深度情報700を深度画像データ700と呼ぶことがある。
 深度画像データ700には、深度画像701を構成する複数の画素の画素値が含まれる。深度画像701を構成する複数の画素は、計測空間100内の複数の計測点にそれぞれ対応している。深度画像701のある画素の画素値は、当該ある画素に対応する計測点に対応している。深度画像データ700に含まれる画素値は、それに対応する計測点までの深度、言い換えれば物体10までの深度を表す。深度画像データ700に含まれる画素値は、一の計測点までの深度を表す深度情報であるともいえる。深度画像データ700に含まれる画素値は、例えば零以上の値である。例えば、深度画像データ700に含まれる画素値が大きいほど、それに対応する計測点までの深度が大きい。深度画像データ700では、それが表す深度画像701を構成する複数の画素のそれぞれについて、当該画素の位置を表す画素位置情報と、当該画素の画素値とが互いに対応付けられている。
 なお、深度センサ40は、ステレオ方式以外の方式を用いて深度情報700を生成してもよい。深度情報700の生成には、例えば、プロジェクター方式が使用されてもよいし、ステレオ方式とプロジェクター方式とが併用されてもよいし、ToF(Time of Flight)方式が使用されてもよい。
 カメラ41は、カラーカメラであって、計測空間100内での色情報710として、計測空間100が写るカラー画像711(後述の図3参照)を表すカラー画像データを生成する。以後、色情報710をカラー画像データ710と呼ぶことがある。カラー画像711は、計測空間100が撮影された撮影画像である。
 カラー画像711には、例えば、トレー13と、その上の物体群10Aとが写っている。カラー画像データ710では、それが表すカラー画像711を構成する複数の画素のそれぞれについて、当該画素の位置を表す画素位置情報と、当該画素の画素値とが互いに対応付けられている。カラー画像711を構成する複数の画素は、計測空間100内の複数の計測点にそれぞれ対応している。カラー画像711のある画素の画素値は、当該ある画素に対応する計測点に対応している。カラー画像データ710に含まれる画素値は、それに対応する一の計測点の色を表す色情報であるといえる。カラー画像データ710に含まれる画素値には、例えば、R成分(赤色成分)、G成分(緑色成分)及びB成分(青色成分)が含まれる。カラー画像データ710は、RGB画像データとも呼ばれる。
 本明細書では、画像に含まれる画素の画素位置を(m,n)で表す。mは例えば行方向(言い換えれば横方向)の位置を示し、nは例えば列方向(言い換えれば縦方向)の位置を示す。また、画像がN行M列の複数の画素で構成され、画像の一番左の列を0列目とし、画像の一番右の列を(M-1)列目とし、画像の一番上の行を0行目とし、画像の一番下の行を(N-1)行目とする。mは、列番号を示し、0≦m<M-1を満たす整数である。nは、行番号を示し、0<n<N-1を満たす整数である。
 カラー画像711の画素数と深度画像701の画素数とは、例えば互いに一致する。つまり、カラー画像711を構成する複数の画素にそれぞれ対応する複数の計測点の数は、深度画像701を構成する複数の画素にそれぞれ対応する複数の計測点の数と一致する。そして、カラー画像711の画素位置(m,n)の画素と、深度画像701の画素位置(m,n)の画素とは、同じ計測点に対応している。カラー画像データ710に含まれる画素位置(m,n)の画素の画素値と、深度画像データ700に含まれる画素位置(m,n)の画素の画素値とは、同じ計測点に対応している。カラー画像データ710に含まれるある計測点の色を表す画素値と、深度画像データ700に含まれる当該ある計測点までの深度を表す画素値とは、同じ画素位置の画素に対応している。
 図2は情報処理装置6の構成の一例を示す概略図である。図2に示されるように、情報処理装置6は、例えば、制御部60と、第1インターフェース61と、第2インターフェース62と、記憶部63とを備える。情報処理装置6は、例えば情報処理回路ともいえる。情報処理装置6は、例えばコンピュータ装置の一種である。
 第1インターフェース61は、センサ装置4と通信を行うことが可能である。第1インターフェース61は、例えばインターフェース回路ともいえる。また、第1インターフェース61は、例えば通信部あるいは通信回路ともいえる。
 第1インターフェース61は、センサ装置4と有線通信を行ってもよいし、無線通信を行ってもよい。第1インターフェース61は、少なくとも一つの通信規格に準拠してセンサ装置4と通信してもよい。第1インターフェース61が準拠する少なくとも一つの通信規格には、例えば、USB(Universal Serial Bus)、I2C(Inter-Integrated Circuit)、CSI(Clocked Serial Interface)、SPI(Serial Peripheral Interface)、WiFi及びイーサーネットの少なくとも一つが含まれてもよい。また、第1インターフェース61は、インターネットを通じてセンサ装置4と通信してもよい。
 第2インターフェース62は、ロボットシステム1の外部の装置(単に外部装置ともいう)と通信することが可能である。第2インターフェース62は少なくとも一つの外部装置と通信することが可能である。第2インターフェース62は、例えばインターフェース回路ともいえる。また、第2インターフェース62は、例えば通信部あるいは通信回路ともいえる。
 第2インターフェース62は、外部装置と有線通信を行ってもよいし、無線通信を行ってもよい。第2インターフェース62は、少なくとも一つの通信規格に準拠して外部装置と通信してもよい。第2インターフェース62が準拠する少なくとも一つの通信規格には、例えば、USB、I2C、CSI、SPI、WiFi及びイーサーネットの少なくとも一つが含まれてもよい。また、第2インターフェース62は、インターネットを通じて外部装置と通信してもよい。第2インターフェース62が通信可能な少なくとも一つの外部装置には、表示装置が含まれてもよいし、コンピュータ装置が含まれてもよい。コンピュータ装置は、クラウドサーバ等のサーバであってもよいし、携帯機器であってもよい。携帯機器は、スマートフォン等の携帯電話機であってもよいし、タブレット端末であってもよいし、パーソナルコンピュータであってもよいし、ウェアラブル機器であってもよい。ウェアラブル機器は、リストバンド型あるいは腕時計型などの腕に装着するタイプであってもよいし、ヘッドバンド型あるいはメガネ型などの頭に装着するタイプであってもよいし、服型などの体に装着するタイプであってもよい。
 制御部60は、情報処理装置6の他の構成要素を制御することによって、情報処理装置6の動作を統括的に管理することが可能である。制御部60は、例えば制御回路ともいえる。制御部60は、以下にさらに詳細に述べられるように、種々の機能を実行するための制御及び処理能力を提供するために、少なくとも1つのプロセッサを含む。
 種々の実施形態によれば、少なくとも1つのプロセッサは、単一の集積回路(IC)として、又は複数の通信可能に接続された集積回路IC及び/又はディスクリート回路(discrete circuits)として実行されてもよい。少なくとも1つのプロセッサは、種々の既知の技術に従って実行されることが可能である。
 1つの実施形態において、プロセッサは、例えば、関連するメモリに記憶された指示を実行することによって1以上のデータ計算手続又は処理を実行するように構成された1以上の回路又はユニットを含む。他の実施形態において、プロセッサは、1以上のデータ計算手続き又は処理を実行するように構成されたファームウェア(例えば、ディスクリートロジックコンポーネント)であってもよい。
 種々の実施形態によれば、プロセッサは、1以上のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路(ASIC)、デジタル信号処理装置、プログラマブルロジックデバイス、フィールドプログラマブルゲートアレイ、又はこれらのデバイス若しくは構成の任意の組み合わせ、又は他の既知のデバイス及び構成の組み合わせを含み、以下に説明される機能を実行してもよい。
 制御部60は、例えば、プロセッサとしてのCPU(Central Processing Unit)を備えてもよい。記憶部63は、ROM(Read Only Memory)及びRAM(Random Access Memory)などの、制御部60のCPUが読み取り可能な非一時的な記録媒体を含んでもよい。記憶部63には、例えば、情報処理装置6を制御するためのプログラム630が記憶されている。制御部60の各種機能は、例えば、制御部60のCPUが記憶部63内のプログラム630を実行することによって実現される。
 なお、制御部60の構成は上記の例に限られない。例えば、制御部60は、複数のCPUを備えてもよい。また制御部60は、少なくとも一つのDSP(Digital Signal Processor)を備えてもよい。また、制御部60の全ての機能あるいは制御部60の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。また、記憶部63は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えてもよい。記憶部63は、例えば、小型のハードディスクドライブ及びSSD(Solid State Drive)などを備えてもよい。
 ロボット制御部5は、例えば、コンピュータ装置の一種であり、例えば、情報処理装置6と同様の構成を有している。ロボット制御部5は、例えば、情報処理装置6の第2インターフェース62と通信可能である。情報処理装置6の制御部60は、ロボット制御部5でのロボット制御に必要な情報を生成する。制御部60で生成された情報は、第2インターフェース62からロボット制御部5に送信される。ロボット制御部5は、第2インターフェース62から送信される情報に基づいてロボット2を制御する。ロボット制御部5は、例えば、ロボット制御回路と呼ばれてもよい。
 図3は情報処理装置6の制御部60がプログラム630を実行することによって制御部60に形成される複数の機能ブロックの一例を示す概略図である。制御部60は、機能ブロックとして、例えば、情報取得部600、変換部601、生成部602、特定部603、度合取得部604、保持対象決定部605及び保持姿勢決定部606を有する。なお、情報取得部600の全ての機能あるいは情報取得部600の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。これは、生成部602、特定部603、度合取得部604、保持対象決定部605及び保持姿勢決定部606についても同様である。
 情報取得部600は、第1インターフェース31を通じて、センサ装置4から、深度情報700及び色情報710を取得する取得処理を行う。取得処理において、情報取得部600は、例えば、第1インターフェース31を通じて、深度情報700及び色情報710の取得を指示する取得指示情報をセンサ装置4に送信する。センサ装置4は、取得指示情報を受信すると、深度センサ40及びカメラ41を制御して、深度センサ40のステレオカメラ及びカメラ41にそれぞれに撮影を実行させる。センサ装置4では、深度センサ40がステレオカメラで得られた画像データに基づいて深度情報700(言い換えれば深度画像データ700)を生成し、カメラ41が色情報710(言い換えればカラー画像データ710)を生成する。その後、センサ装置4は、深度情報700及び色情報710を情報処理装置6に送信する。情報処理装置6では、第1インターフェース61がセンサ装置4から受信した深度情報700及び色情報710が制御部60に入力される。これにより、取得処理において、情報取得部600は、取得指示情報の送信に応じて深度情報700及び色情報710を取得することができる。深度情報700及び色情報710は、制御部60を通じて記憶部63に記憶される。
 変換部601は、情報取得部600で取得された深度画像データ700を、計測点までの深度が小さいほど、それに対応する画素値が大きくなる深度画像データ705に変換する変換処理を行う。変換部601は、深度画像データ700の各画素値に対して反転処理を行うことによって、深度画像データ705を生成する。ここで、画素値が取り得る範囲の最大値を画素最大値と呼ぶ。反転処理では、深度画像データ700に含まれるある画素値を画素最大値から差し引いて得られる値が、反転処理後の当該ある画素値とされる。深度画像データ700において各画素値が反転処理されたものが、深度画像データ705となる。深度画像データ705に含まれる画素値が大きいほど、それに対応する計測点までの深度が小さくなる。以後、深度画像データ705を深度情報705と呼ぶことがある。
 生成部602は、変換部601で得られた深度情報705に対して、物体10のサイズ(単に物体サイズともいう)に応じたフィルタ処理を行って、トレー13上の複数の物体10において他よりも高い位置にある高位置部分を表す高位置情報720を生成する。高位置部分は、例えば、物体群10Aにおいて周囲よりも高い位置にある部分である。各物体10について、当該物体10が、周囲よりも高い位置にある部分を有する場合、当該部分は高位置部分に含まれる。物体群10Aにおいて周囲よりも高い位置にある部分は、物体群10Aにおいて周囲よりも深度センサ40側に位置する部分であるともいえる。物体群10Aにおいて周囲よりも高い位置にあるとは、物体群10Aの中で必ずしも最高地点であることを意味しない。
 ここで、トレー13上の複数の物体10において、高位置部分に含まれる部分を含む物体10を対象物体10と呼ぶ。対象物体10は、他よりも高い位置にある部分を有する物体10である。高位置情報720が表す高位置部分には、少なくとも一つの対象物体10において他よりも高い位置にある部分が含まれる。つまり、高位置部分には、少なくとも一つの対象物体10において周囲よりも高い位置にある部分が含まれる。
 以後、一の対象物体10において他よりも高い位置にある部分を、物体高位置部分と呼ぶことがある。また、高位置情報720が表す高位置部分を全体高位置部分と呼ぶことがある。全体高位置部分には、少なくとも一つの対象物体10の物体高位置部分が含まれる。全体高位置部分に、複数の対象物体10の物体高位置部分が含まれる場合、一の対象物体10の物体高位置部分は、全体高位置部分の一部を構成することから、部分高位置部分とも呼ばれる。
 以下では、特に断らない限り、全体高位置部分に、複数の対象物体10の物体高位置部分が含まれているものとして、ロボットシステム1について説明する。つまり、トレー13上には複数の対象物体10が存在するものとしてロボットシステム1について説明する。
 特定部603は、複数の対象物体10のそれぞれについて、計測空間100が撮影された撮影画像において当該対象物体10が写る物体画像を、高位置情報720に基づいて特定する。例えば、特定部603は、情報取得部600が取得したカラー画像データ710が表すカラー画像711において対象物体10が写る物体画像を、高位置情報720に基づいて特定する。以後、特定部603で特定された物体画像を特定物体画像と呼ぶことがある。
 度合取得部604は、複数の対象物体10のそれぞれについて、当該対象物体10の保持しやすさの度合を、深度情報705と、当該対象物体10が写る特定物体画像とに基づいて求める。以後、対象物体10の保持しやすさの度合を保持しやすさ度合と呼ぶことがある。ここでの保持しやすさ度合は、対象物体10についてのロボット2での保持しやすさの度合を意味する。
 保持対象決定部605は、複数の対象物体10についての保持しやすさ度合に基づいて、複数の対象物体10からロボット2が保持する保持対象物体10を決定する。保持姿勢決定部606は、ロボット2についての保持対象物体10に対する保持姿勢を、保持対象物体10が写る特定物体画像に基づいて決定する。つまり、保持姿勢決定部606は、ロボット2がどのような姿勢で保持対象物体10を保持するかを、保持対象物体10が写る特定物体画像に基づいて決定する。保持姿勢決定部606は、例えば、特定物体画像に基づいて、それに写る保持対象物体10についての計測空間100内での位置及び姿勢を特定する。そして、保持姿勢決定部606は、保持対象物体10について特定した位置及び姿勢に基づいて、ロボット2についての保持対象物体10に対する保持姿勢を決定する。例えば、ロボット2のエンドエフェクタ21が二指で物体10を把持する場合、保持姿勢決定部606は、例えば、エンドエフェクタ21が保持対象物体10をどの方向から二指で把持するかを保持姿勢として決定する。制御部60は、第2インターフェース62を通じて、保持姿勢決定部606で決定された保持姿勢をロボット制御部5に通知する。
 ロボット制御部5は、通知された保持姿勢に基づいてロボット2を制御する。具体的には、ロボット制御部5は、通知された保持姿勢でロボット2が保持対象物体10を保持するようにロボット2のアーム20及びエンドエフェクタ21を制御する。これにより、ロボット2は、トレー13上の複数の物体10のうち、他よりも高い位置にある部分を有する、ロボット2が保持しやすい物体10を保持することができる。その後、ロボット制御部5は、ロボット2が保持した保持対象物体10がトレー14上に配置されるようにロボット2を制御する。
 図4は、深度情報700及び色情報710に基づいて、ロボット2についての物体10に対する保持姿勢が決定される保持姿勢決定処理の一例を示すフローチャートである。制御部60は保持姿勢決定処理を繰り返し実行する。
 保持姿勢決定処理では、まずステップs1において、情報取得部600がセンサ装置4から深度情報700及び色情報710を取得する。次にステップs2において、変換部601が深度情報700を深度情報705に変換する変換処理を行う。次にステップs3において、生成部602が深度情報705に対して物体サイズに応じたフィルタ処理を行って高位置情報720を生成する。次にステップs4において、特定部603が、複数の対象物体10のそれぞれについて、色情報710が表すカラー画像711において当該対象物体10が写る物体画像を、高位置情報720に基づいて特定する。次にステップs5において、度合取得部604が、複数の対象物体10のそれぞれについての保持しやすさ度合を、深度情報705と、複数の対象物体10がそれぞれ写る複数の特定物体画像とに基づいて求める。次にステップs6において、保持対象決定部605が、複数の対象物体10についての保持しやすさ度合に基づいて、複数の対象物体10から保持対象物体10を決定する。そして、ステップs7において、保持姿勢決定部606が、ロボット2についての保持対象物体10に対する保持姿勢を、保持対象物体10が写る特定物体画像に基づいて決定する。
 ステップs7の後、上述のようにして、ロボット2がトレー13上の保持対象物体10を保持してトレー14まで運ぶと、図4に示される保持姿勢決定処理が再度実行され、ロボット2についての新たな保持対象物体10に対する保持姿勢が決定される。以後、トレー13上の保持対象物体10がトレー14まで運ばれるたびに保持姿勢決定処理が実行される。
 なお、ステップs4において一つの物体画像だけが特定される場合、つまり、トレー13上には一つの対象物体10しか存在しない場合、ステップs5及びs6が実行されなくてもよい。この場合、ステップs7において、保持姿勢決定部606は、ステップs4で特定された物体画像に基づいて、ロボット2についての、当該物体画像に写る物体10に対する保持姿勢を決定してもよい。
 情報処理装置6はクラウドサーバで実現されてもよい。この場合、情報処理装置6は、インターネットを通じてロボット制御部5と通信してもよい。また、情報処理装置6の制御部60がロボット制御部5として機能してもよい。この場合、情報処理装置6がロボット制御システム3として機能する。また、ロボット制御部5はクラウドサーバで実現されてもよい。この場合、インターネットに接続された通信部をロボット2に設けて、ロボット制御部5はインターネットを通じてロボット2を制御してもよい。また、ロボット制御システム3にセンサ装置4が含まれなくてもよい。また、ロボット制御システム3は複数のロボット制御部5を備えてもよい。また、図4に示される保持姿勢決定処理の少なくとも一部の処理はロボット制御部5で実行されてもよい。例えば、ステップs7の処理はロボット制御部5で実行されてもよい。
 また、センサ装置4が深度情報705を生成して情報処理装置6に送信してもよい。この場合、変換部601が不要となり、生成部602及び度合取得部604では情報取得部600で取得された深度情報705が使用される。
 以上のように、情報処理装置6では、複数の物体10が存在する計測空間100内での深度を表す深度情報705に対して物体サイズに応じたフィルタ処理が行われて、物体群10Aにおいて他よりも高い位置にある高位置部分を表す高位置情報720が生成される。このように、高位置情報720の生成に物体サイズが利用されることによって、物体群10Aにおいて他よりも高い位置にある高位置部分を高位置情報720に基づいて適切に特定することができる。
 次に生成部602、特定部603、度合取得部604及び保持対象決定部605の動作の一例について詳細に説明する。
 <生成部の動作例>
 生成部602は、例えば、物体サイズに応じた少なくとも一種類の空間フィルタ関数を用いて、深度情報705(言い換えれば深度画像データ705)が表す深度画像706に対してフィルタ処理を行って高位置情報720を生成する生成処理を行う。高位置情報720は、例えば、フィルタ処理後の深度画像706を表す画像データである。以後、高位置情報720が表す画像(つまりフィルタ処理後の深度画像706)を、高位置画像と呼ぶことがある。また、高位置情報720を高位置画像データ720と呼ぶことがある。
 高位置画像は、物体群10Aにおいて他よりも高い位置にある部分を表している。高位置情報720には、高位置画像を構成する複数の画素の画素値が含まれる。高位置情報720では、それが表す高位置画像を構成する複数の画素のそれぞれについて、当該画素の位置を表す画素位置情報と、当該画素の画素値とが互いに対応付けられている。
 高位置画像を構成する複数の画素は、計測空間100内の複数の計測点にそれぞれ対応している。高位置画像のある画素の画素値は、当該ある画素に対応する計測点に対応している。高位置情報720に含まれる画素値は、それに対応する計測点が他よりも高い位置にある度合を示している。例えば、高位置情報720に含まれる画素値は、それに対応する計測点がその周囲よりも高い位置にある度合を示している。高位置情報720に含まれる画素値が大きいほど、それに対応する計測点が他よりも高い位置にある。
 高位置画像の画素数は、例えば、カラー画像711の画素数及び深度画像706の画素数と一致する。また、高位置画像の画素位置(m,n)の画素と、カラー画像711の画素位置(m,n)の画素とは、同じ計測点に対応している。高位置画像データ720に含まれる、画素位置(m,n)の画素の画素値と、カラー画像データ710に含まれる、画素位置(m,n)の画素の画素値とは、同じ計測点に対応している。また、高位置画像の画素位置(m,n)の画素と、深度画像706の画素位置(m,n)の画素とは、同じ計測点に対応している。高位置画像データ720に含まれる、画素位置(m,n)の画素の画素値と、深度画像データ705に含まれる、画素位置(m,n)の画素の画素値とは、同じ計測点に対応している。
 以後の説明では、複数の画像において互いに同じ画素位置の画素は互いに対応すると表現する。例えば、高位置画像の画素位置(m,n)の画素と、深度画像706の画素位置(m,n)の画素と、カラー画像711の画素位置(m,n)の画素とは、互いに対応する。また、複数の画像において互いに同じ画素位置の画素の画素値は互いに対応すると表現する。例えば、高位置画像の画素位置(m,n)の画素の画素値と、深度画像706の画素位置(m,n)の画素の画素値と、カラー画像711の画素位置(m,n)の画素の画素値とは、互いに対応する。高位置情報720に含まれる、ある計測点が他よりも高い位置にある度合を表す画素値と、深度情報705に含まれる、当該ある計測点までの深度を表す画素値と、色情報710に含まれる、当該ある計測点の色を表す画素値とは、互いに対応している。
 また、ある画像の一部である第1部分画像(あるいは第1領域)が、別の画像の一部である第2部分画像(あるいは第2領域)に対応するといえば、第1部分画像(あるいは第1領域)を構成する複数の画素の画素位置が、第2部分画像(あるいは第2領域)を構成する複数の画素の画素位置とそれぞれ一致することを意味する。例えば、高位置画像の一部である第1部分画像が、深度画像の一部である第2部分画像に対応するといえば、当該第1部分画像を構成する複数の画素の画素位置が、当該第2部分画像を構成する複数の画素の画素位置とそれぞれ一致する。
 また、深度画像706の画素を第1画素と呼び、第1画素の画素値を第1画素値と呼ぶことがある。また、高位置画像の画素を第2画素と呼び、第2画素の画素値を第2画素値と呼ぶことがある。そして、カラー画像711の画素を第3画素と呼び、第3画素の画素値を第3画素値と呼ぶことがある。
 図5は、生成処理で使用される第1空間フィルタ関数のフィルタ窓200の一例を示す概略図である。図6は、深度画像データ705が示す深度画像706に対してフィルタ窓200が設定される様子の一例を示す概略図である。
 生成処理において、生成部602は、深度画像706を構成する複数の第1画素から、注目すべき第1画素を注目第1画素として決定する。そして、生成部602は、注目第1画素を含むようにフィルタ窓200を深度画像706に設定する(図6参照)。生成部602は、フィルタ窓200内の複数の第1画素の画素値に対して所定の演算を行って、高位置画像における、注目第1画素の画素値(注目第1画素値ともいう)に対応する第2画素値を求める単位フィルタ処理を行う。生成処理において、生成部602は、深度画像706内において注目第1画素の位置を1画素単位で移動させ、注目第1画素の位置を1画素分移動させるたびに単位フィルタ処理を行う。つまり、生成部602は、深度画像706上でフィルタ窓200を1画素単位で移動させ、フィルタ窓200を1画素分移動させるたびに単位フィルタ処理を実行する、これにより、深度情報705に含まれる複数の第1画素値にそれぞれ対応する、高位置情報720での複数の第2画素値が求められる。
 フィルタ窓200は、図5に示されるように、例えば、プラス部分窓201と、2つのマイナス部分窓202とを有する。プラス部分窓201(プラス窓201ともいう)は、その領域内の各画素の画素値に対して所定のプラス値が乗算される部分フィルタ窓である。マイナス部分窓202(マイナス窓202ともいう)は、その領域内の各画素の画素値に対して所定のマイナス値が乗算される部分フィルタ窓である。プラス部分窓201の外形は例えば四角形である。マイナス部分窓202の外形は例えば四角形である。プラス部分窓201と2つのマイナス部分窓202とは、例えば一方向に沿って並んでいる。プラス部分窓201は2つのマイナス部分窓202で挟まれている。所定のプラス値は例えば+1.0であって、所定のマイナス値は例えば-0.5である。
 以後、プラス部分窓201とマイナス部分窓202とが並ぶ方向を窓並び方向と呼ぶ。また、窓並び方向に垂直な方向を窓垂直方向と呼ぶ。後述する他の種類のフィルタ窓についても同様である。
 フィルタ窓200の窓並び方向及び窓垂直方向は、フィルタ窓200が設定される深度画像706の行方向及び列方向にそれぞれ一致する。フィルタ窓200の窓並び方向サイズ及び窓垂直方向サイズのそれぞれは複数画素分のサイズである。図5の例では、フィルタ窓200の窓並び方向サイズ及び窓垂直方向サイズは互いに同じであり、フィルタ窓200の外形は正方形となっている。なお、フィルタ窓200の窓並び方向サイズ及び窓垂直方向サイズは互い異なってもよい。つまり、フィルタ窓200の窓並び方向サイズは、フィルタ窓200の窓垂直方向サイズよりも大きくてもよいし、小さくてもよい。
 プラス窓201の窓並び方向サイズ201a及び窓垂直方向サイズ201bのそれぞれは複数画素分のサイズである。また、マイナス窓202の窓並び方向サイズ202a及び窓垂直方向サイズ202bのそれぞれは複数画素分のサイズである。生成部602は、単位フィルタ処理において、例えば、プラス窓201の中心に注目第1画素が位置するようフィルタ窓200を深度画像706に設定する。そして、生成部602は、単位フィルタ処理において、プラス窓201内の、注目第1画素を含む複数の第1画素のそれぞれの画素値に対して所定のプラス値を乗算する。そして、生成部602は、所定のプラス値を乗算した複数の第1画素値の総和をプラス総和値として求める。プラス総和値はプラスの値を示す。また、生成部602は、単位フィルタ処理において、マイナス窓202内の各第1画素の画素値に対してマイナス値を乗算する。そして、生成部602は、所定のマイナス値を乗算した複数の第1画素値の総和をマイナス総和値として求める。マイナス総和値はマイナスの値を示す。生成部602は、2つのマイナス部分窓202のそれぞれについてマイナス総和値を求める。そして、生成部602は、単位フィルタ処理において、プラス総和値と2つのマイナス総和値の総和を演算値として求める。生成部602は、求めた演算値を、高位置画像データ720での注目第1画素値に対応する第2画素値とする。ただし、生成部602は、演算値がマイナスの値である場合、注目第1画素値に対応する第2画素値を零に設定する。これにより、高位置画像の第2画素値は零以上の値となる。なお、演算値がマイナスの値であっても、演算値がそのまま第2画素値とされてもよい。
 このように、単位フィルタ処理では、フィルタ窓200が、例えば、注目第1画素とその周囲の複数の第1画素とを含むように深度画像706に設定される。そして、注目第1画素とその周囲の複数の第1画素との画素値に対して所定の演算が行われて、注目第1画素値に対応する第2画素値が求められる。このような単位フィルタ処理が、注目第1画素の位置が変化しながら繰り返し実行されることによって、高位置画像を構成する複数の画素の画素値が得られる。第1空間フィルタ関数は、このような処理を表す関数である。
 生成処理では、注目第1画素の位置が、例えばラスタースキャン方向に沿って移動する。つまり、フィルタ窓200が、深度画像706上において、例えばラスタースキャン方向に沿って移動する。生成処理では、例えば、最初の単位フィルタ処理において、深度画像706の画素位置(0,0)の第1画素が最初の注目第1画素とされる。次の単位フィルタ処理では、注目第1画素が行方向に沿って1画素分だけ移動し、画素位置(1,0)の第1画素が注目第1画素とされる。その後、注目第1画素が行方向に沿って1画素分だけ移動するたびに単位フィルタ処理が実行される。画素位置(M,0)の第1画素が注目第1画素とされると、次に、画素位置(M,1)の第1画素が注目第1画素とされる。その後、注目第1画素が行方向に沿って1画素分ずつ移動し、画素位置(M,1)の第1画素が注目第1画素とされると、次に、画素位置(M,2)の第1画素が注目第1画素とされる。以後同様にして、注目第1画素の位置が移動して、画素位置(M,N)の第1画素を注目第1画素とする単位フィルタ処理が実行されると、高位置画像を構成する複数の画素の画素値がすべて得られて、生成処理が終了する。
 プラス窓201のサイズは、例えば、物体サイズに応じたサイズとなっている。例えば、プラス窓201の窓並び方向サイズ201a及び窓垂直方向サイズ201bのそれぞれが、物体サイズに応じたサイズとなっている。具体的には、窓並び方向サイズ201a及び窓垂直方向サイズ201bは、物体10の特定方向のサイズに応じたサイズとなっている。例えば、窓並び方向サイズ201aは、物体10の幅方向サイズに応じたサイズであってもよいし、物体10の奥行方向サイズに応じたサイズであってもよいし、物体10の高さ方向サイズに応じたサイズであってもよい。また、窓垂直方向サイズ201bは、物体10の幅方向サイズに応じたサイズであってもよいし、物体10の奥行方向サイズに応じたサイズであってもよいし、物体10の高さ方向サイズに応じたサイズであってもよい。なお、幅方向サイズは、横方向サイズあるいは長手方向サイズに読み替えてもよいし、奥行方向サイズは、縦方向サイズあるいは短手方向のサイズに読み替えてもよいし、高さ方向サイズは厚み方向サイズに読み替えてもよい。
 窓並び方向サイズ201a及び窓垂直方向サイズ201bは、例えば、センサ装置4のカメラ40aあるいはカメラ41の撮影画像上での物体10のサイズに対応している。つまり、センサ装置4のカメラ40aあるいはカメラ41の撮影画像上での物体10のサイズが、窓並び方向サイズ201a及び窓垂直方向サイズ201bとして採用される。
 ここで、トレー13上での物体10の代表的な姿勢を基準姿勢とし、トレー13上での基準姿勢の物体10(基準物体10と呼ぶ)がカメラ40aあるいはカメラ41で撮影されたときに得られる撮影画像を基準撮影画像と呼ぶ。窓並び方向サイズ201a及び窓垂直方向サイズ201bのそれぞれは、例えば、基準撮影画像上での基準物体10のサイズに一致している。具体的には、窓並び方向サイズ201a及び窓垂直方向サイズ201bのそれぞれは、基準撮影画像上での基準物体10の特定方向のサイズに一致している。例えば、窓並び方向サイズ201aは、基準撮影画像上での基準物体10の幅方向サイズに一致してもよいし、基準撮影画像上での基準物体10の奥行方向サイズに一致してもよいし、基準撮影画像上での基準物体10の高さ方向サイズに一致してもよい。また、窓垂直方向サイズ201bは、基準撮影画像上での基準物体10の幅方向サイズに一致してもよいし、基準撮影画像上での基準物体10の奥行方向サイズに一致してもよいし、基準撮影画像上での基準物体10の高さ方向サイズに一致してもよい。
 窓並び方向サイズ201a及び窓垂直方向サイズ201bは互いに異なってもよいし、互いに同じであってもよい。前者の場合、例えば、窓並び方向サイズ201aは基準撮影画像上での基準物体10の奥行方向サイズに一致し、窓垂直方向サイズ201bは基準撮影画像上での基準物体10の幅方向サイズに一致してもよい。
 マイナス窓202のサイズは、プラス部分窓201と同様に、物体サイズに応じたサイズとなっている。例えば、プラス窓201と同様に、マイナス窓202の窓並び方向サイズ202a及び窓垂直方向サイズ202bのそれぞれは、物体サイズに応じたサイズとなっている。
 窓並び方向サイズ202a及び窓垂直方向サイズ202bのそれぞれは、窓並び方向サイズ201a及び窓垂直方向サイズ201bと同様に、例えば、基準撮影画像上での基準物体10のサイズに一致している。窓並び方向サイズ202aは、基準撮影画像上での基準物体10の幅方向サイズに一致してもよいし、基準撮影画像上での基準物体10の奥行方向サイズに一致してもよいし、基準撮影画像上での基準物体10の高さ方向サイズに一致してもよい。また、窓垂直方向サイズ202bは、基準撮影画像上での基準物体10の幅方向サイズに一致してもよいし、基準撮影画像上での基準物体10の奥行方向サイズに一致してもよいし、基準撮影画像上での基準物体10の高さ方向サイズに一致してもよい。窓並び方向サイズ202a及び窓垂直方向サイズ202bは互いに一致してもよいし、互いに異なっていてもよい。
 上記の例では、物体サイズに応じたサイズは、基準撮影画像上での基準物体10のサイズに一致していたが、一致していなくてもよい。物体サイズに応じたサイズは、基準撮影画像上での基準物体10のサイズの1/2倍以上2倍以下であってもよい。
 図5の例では、マイナス窓202の窓並び方向サイズ202aは、プラス窓201の窓並び方向サイズ201aと一致しているが、窓並び方向サイズ201aと一致しなくてもよい。また、図5の例では、マイナス窓202の窓垂直方向サイズ202bは、プラス窓201の窓垂直方向サイズ201bと一致しているが、窓垂直方向サイズ201bと一致しなくてもよい。
 また、図5の例では、2つのマイナス窓202の窓並び方向サイズ202aは互いに一致しているが、互いに異なってもよい。また、図5の例では、2つのマイナス窓202の窓垂直方向サイズ202bは互いに一致しているが、互いに異なってもよい。
 物体サイズに応じた窓並び方向サイズ201aは、情報処理装置6の記憶部63に予め記憶されてもよい。また、窓並び方向サイズ201aは、ユーザによって情報処理装置6に入力されてもよい。この場合、情報処理装置6がユーザの入力を受け付ける入力部を有する場合、ユーザは、窓並び方向サイズ201aを情報処理装置6に対して直接入力してもよい。また、外部装置に、ユーザの入力を受け付ける入力装置が含まれる場合、ユーザは、窓並び方向サイズ201aを入力装置を通じて情報処理装置6に入力してもよい。また、情報処理装置6の制御部60あるいはロボット制御部5が窓並び方向サイズ201aを決定してもよい。この場合、制御部60あるいはロボット制御部5は、例えば、カメラ40aあるいはカメラ41で得られた、基準撮影画像を表す画像データに基づいて、基準撮影画像上での基準物体10のサイズを算出し、算出したサイズに基づいて窓並び方向サイズ201aを決定してもよい。あるいは、制御部60あるいはロボット制御部5は、画像データを使用することなく、物体10の外形を表すCAD(Computer Aided Design)データと、カメラ40aあるいはカメラ41の特性データとに基づいて、基準撮影画像上での基準物体10のサイズを算出し、算出したサイズに基づいて窓並び方向サイズ201aを決定してもよい。窓並び方向サイズ201aについて説明した上記の内容は、窓垂直方向サイズ201b、窓並び方向サイズ202a及び窓垂直方向サイズ202bについても適用することができる。
 以上のようなフィルタ窓200が使用されて高位置情報720が生成されることによって、物体群10Aの高位置部分を適切に表す高位置情報720を得ることができる。以下にこの点について詳細に説明する。
 図7及び8は単位フィルタ処理の一例を説明するための概略図である。図7及び8では、深度画像706のある一の行を注目した場合、その注目行の各画素位置と、その画素位置の画素の画素値(つまり第1画素値)との関係がグラフ900に示されている。グラフ900では、深度画像706の注目行の各位置が横軸に示され、縦軸に第1画素値が示されている。また図7では、深度画像706において注目行の一部を含む領域に対して設定されたフィルタ窓200が、グラフ900の横軸の位置に合わせて示されている。
 上述のように、ロボット制御システム3では、深度センサ40のカメラ40aは、トレー13の上方から撮影している。また、上述のように、計測空間100内の物体の表面の計測点までの深度は、深度センサ40から当該計測点までの深度である。したがって、深度が大きい計測点は、深度センサ40から見た場合の計測空間100の奥側からの高さが小さい計測点であるといえる。よって、深度画像706の第1画素値は、それに対応する計測点の高さを表していると見ることもできる。つまり、深度画像706は各計測点の高さを表す画像であり、深度情報705は各計測点の高さを表す情報であるといえる。同様に、深度情報700も各計測点の高さを表す情報であるといえる。深度画像706については、第1画素値が大きいほど、それに対応する計測点までの深度が小さい。そのため、第1画素値が大きいほど、それに対応する計測点の高さが大きいことになる。
 以後、深度画像706において、全体高位置部分に含まれる物体高位置部分に相当する部分画像、つまり、一の対象物体10において他よりも高い位置にある部分に相当する部分画像を、第1の物体高位置相当画像と呼ぶことがある。第1の物体高位置相当画像を構成する複数の画素にそれぞれ対応する複数の計測点は対象物体10に位置する。第1画素値が大きいほど、それに対応する計測点の高さが大きいことから、第1の物体高位置相当画像の第1画素値は、第1の物体高位置相当画像の周囲の部分の第1画素値よりも大きい値となる。図7のグラフ900での第1画素値を表す曲線において、値がその周囲よりも大きくなっている領域は、第1の物体高位置相当画像の第1画素値である。グラフ900での第1画素値を示す点を結んだ線は、深度センサ40から物体群10Aを見た場合の物体群10Aの表面の形状を表しているともいえる。
 上述のように、フィルタ窓200は、例えば、プラス窓201の中心に注目第1画素が位置するように深度画像706に設定される。図7の例で、注目第1画素が第1の物体高位置相当画像に含まれるようにフィルタ窓200が設定されている。図7の例では、注目第1画素に対応する計測点は、他よりも高い位置にある計測点である。一方で、図8の例では、注目第1画素が第1の物体高位置相当画像に含まれないようにフィルタ窓200が設定されている。図8の例では、注目第1画素に対応する計測点は、他よりも高い位置にある計測点ではない。以後、他よりも高い位置にある計測点を高位置計測点と呼ぶことがある。
 図7の例では、プラス窓201に基づくプラス総和値の絶対値は比較的大きい値となる。また、マイナス窓202に基づくマイナス総和値の絶対値はそれほど大きくはならない。よって、プラス総和値と2つのマイナス総和値との総和である演算値はプラスの値を示す。これにより、第1の物体高位置相当画像に含まれる注目第1画素に対応する、高位置画像の第2画素の画素値は、プラスの値を示す。
 これに対して、図8の例では、プラス窓201に基づくプラス総和値の絶対値は比較的小さい値となる。また、マイナス窓202に基づくマイナス総和値の絶対値は比較的大きな値となる。よって、プラス総和値と2つのマイナス総和値との総和である演算値はマイナスの値を示す。これにより、第1の物体高位置相当画像には含まれない注目第1画素に対応する、高位置画像の第2画素の画素値は、零となる。
 なお、深度画像706において、物体群10Aにおける高さが均一な部分に相当する部分画像に対してフィルタ窓200が設定された場合、演算値は例えば零となる。
 図9は、プラス窓201及びマイナス窓202のサイズが物体サイズに応じたサイズとはなっておらず、プラス窓201及びマイナス窓202のサイズが大きすぎる場合の単位フィルタ処理の一例を説明するための概略図である。図9の例では、図7の例と同様に、注目第1画素が第1の物体高位置相当画像に含まれるようにフィルタ窓200が設定されている。図9の例では、プラス窓201には、注目第1画素を含む第1の物体高位置相当画像の周囲の画像が含まれることから、プラス総和値の絶対値は図7の例と比較して小さい値となる。また、マイナス窓202には第1画素値が大きい第1画素が含まれることから、マイナス窓202に基づくマイナス総和値の絶対値は図7の例と比較して大きくなる。よって、演算値は図7の例と比較して小さくなる。例えば、演算値はマイナス値となる。これにより、図7の例とは異なり、深度画像の第1の物体高位置相当画像に含まれる注目第1画素に対応する第2画素の画素値は小さくなる。
 図10は、プラス窓201及びマイナス窓202のサイズが物体サイズに応じたサイズとはなっておらず、プラス窓201及びマイナス窓202のサイズが小さすぎる場合の単位フィルタ処理の一例を説明するための概略図である。図10の例では、図7の例と同様に、注目第1画素が第1の物体高位置相当画像に含まれるようにフィルタ窓200が設定されている。図10の例では、プラス窓201には、注目第1画素を含む第1の物体高位置相当画像の周囲の画像は含まれていないことから、プラス総和値の絶対値は図7の例と同様に大きい値となる。一方で、マイナス窓202には注目第1画素を含む第1の物体高位置相当画像の第1画素が含まれることから、マイナス窓202に基づくマイナス総和値の絶対値は図7の例と比較して大きくなる。よって、演算値は図7の例と比較して小さくなる。これにより、図7の例とは異なり、深度画像の第1の物体高位置相当画像に含まれる注目第1画素に対応する第2画素の画素値は小さくなる。
 図7及び8の例のように、プラス窓201のサイズが、物体サイズに応じたサイズとなっている場合、プラス窓201のサイズを、深度画像の第1の物体高位置相当画像のサイズに近づけることが可能となる。これにより、図7の例のように、注目第1画素が第1の物体高位置相当画像に含まれる場合、プラス窓201に基づくプラス総和値の絶対値は大きくなり、かつマイナス窓202に基づくマイナス総和値の絶対値は小さくなる傾向となる。よって、演算値は大きくなる傾向となる。その結果、注目第1画素が第1の物体高位置相当画像に含まれる場合、高位置画像における、注目第1画素に対応する第2画素の画素値は大きくなる傾向となる。注目第1画素が第1の物体高位置相当画像に含まれる場合、注目第1画素に対応する計測点は他よりも高い位置にあることから、物体10に位置する計測点が他よりも高い位置にある場合、当該計測点に対応する第2画素値は大きくなる傾向となる。
 一方で、図8の例のように、注目第1画素が第1の物体高位置相当画像に含まれない場合、プラス総和値の絶対値は小さくなり、かつ2つのマイナス総和値の少なくとも一方の絶対値は大きくなる傾向となる。よって、演算値は小さくなる傾向となる。注目第1画素が第1の物体高位置相当画像に含まれていない場合、注目第1画素に対応する計測点は、他よりも高い位置にはないことから、物体10に位置する計測点が他よりも高い位置にはない場合、当該計測点に対応する第2画素値は小さくなる傾向となる。
 このように、高位置画像データ720では、高位置計測点に対応する第2画素値が大きくなる傾向にある。一方で、高位置計測点ではない計測点に対応する第2画素値が小さくなる傾向にある。つまり、計測点が他よりも高いか否かで、当該計測点の第2画素値が変化する。これにより、高位置情報720は、物体群10Aの高位置部分、つまり、物体群10Aにおいて他よりも高い位置にある部分を適切に表すことができる。よって、高位置情報720に基づいて高位置部分を適切に特定することができる。例えば、高位置情報720が表す高位置画像において第2画素値がしきい値以上である部分画像が、物体群10Aの高位置部分に相当する画像(第2の高位置相当画像ともいう)となる。また、高位置画像の第2の高位置相当画像において、位置が連続する複数の画素から成る連続領域を特定し、特定した連続領域を、一の対象物体10の物体高位置部分に相当する画像(第2の物体高位置相当画像ともいう)とすることができる。これにより、高位置情報720から各物体高位置部分を個別に特定することができる。
 また、注目第1画素が第1の物体高位置相当画像に含まれる場合であって、マイナス窓202のサイズが物体サイズに応じたサイズとなっておらず大きすぎる場合には、図9の例のように、マイナス窓202に第1画素値が大きい画素が含まれやすくなる。これにより、注目第1画素が第1の物体高位置相当画像に含まれる場合、マイナス総和値の絶対値が大きくなる傾向になり、その結果、演算値が小さくなる傾向となる。そのため、注目第1画素に対応する計測点が高位置計測点として特定されない可能性がある。
 これに対して、マイナス窓202のサイズが物体サイズに応じたサイズとなっている場合、図7の例のように、マイナス窓202には第1画素値が大きい画素が含まれにくくなる。よって、注目第1画素が第1の物体高位置相当画像に含まれる場合、マイナス総和値の絶対値が大きくなりにくく、演算値が小さくなりにくくなる。これにより、注目第1画素に対応する計測点が高位置計測点として特定されやすくなる。
 また、マイナス窓202のサイズが小さすぎる場合には、マイナス窓202には含まれる画素の数が少なくなる。この場合、マイナス窓202に含まれる特定の画素の画素値に多くのノイズが含まれる場合、マイナス総和値の誤差が大きくなる可能性がある。マイナス総和値の誤差が大きくなると、演算値の誤差が大きくなる。その結果、注目第1画素に対応する計測点が高位置計測点として特定されない可能性がある。
 これに対して、マイナス窓202のサイズが物体サイズに応じたサイズとなっている場合には、マイナス窓202に含まれる特定の画素の画素値に多くのノイズが含まれる場合であっても、マイナス総和値の誤差を小さくすることができ、その結果、注目第1画素に対応する第2画素の画素値の誤差を小さくすることできる。よって、注目第1画素に対応する計測点が高位置計測点として特定されやすくなる。
 また、プラス窓201が2つのマイナス窓202で挟まれる場合には、高位置情報720から、周囲において両側にスペースがある物体高位置部分を特定することが可能となる。以下にこの点について説明する。
 計測空間100において、深度画像に設定されたフィルタ窓200の窓並び方向に相当する方向をフィルタ方向と呼ぶ。また、計測空間100において深度画像の行方向及び列方向に相当する方向を、それぞれ、x方向及びy方向と呼ぶ。図6の例のように、窓並び方向が深度画像の行方向と一致する場合、フィルタ方向はx方向と一致する。
 図7の例では、注目第1画素を含む第1の物体高位置相当画像の窓並び方向の両側には、第1画素値が小さい部分画像が位置する。よって、注目第1画素を含む第1の物体高位置相当画像に対応する物体高位置部分(注目物体高位置部分ともいう)のフィルタ方向の両側には、物体が存在しないスペースが存在する。プラス窓201が2つのマイナス窓202で挟まれたフィルタ窓200が図7のように設定された場合、注目第1画素に対応する第2画素の画素値が大きくなる。
 これに対して、図11の例のように、注目第1画素を含む第1の物体高位置相当画像の片側(例えば右側)だけに、第1画素値が小さい部分画像が位置する場合を考える。この場合、注目物体高位置部分の片側だけにスペースが存在する。図11のようにフィルタ窓200が設定された場合、左側のマイナス窓202に基づくマイナス総和値の絶対値が大きくなる。そのため、注目第1画素に対応する第2画素の画素値は小さくなる。
 このように、注目第1画素を含む第1の物体高位置相当画像の窓並び方向の両側に第1画素値が小さい部分画像が位置する場合と、注目第1画素を含む第1の物体高位置相当画像の窓並び方向の片側だけに第1画素値が小さい部分画像が位置する場合とで、注目第1画素に対応する第2画素の画素値が変化する。つまり、注目物体高位置部分のフィルタ方向の両側にスペースが存在する場合と、注目物体高位置部分のフィルタ方向の片側だけにスペースが存在する場合とで、注目第1画素に対応する第2画素の画素値が変化する。したがって、第2画素値と比較されるしきい値を適宜設定することによって、高位置情報720から、少なくともフィルタ方向の両側にスペースがある物体高位置部分が特定しやすくなる。図5の例のように、フィルタ方向が、計測空間100での深度画像の行方向に相当するx方向に一致する場合、少なくともx方向の両側にスペースがある物体高位置部分を高位置情報720から特定しやすくなる。これにより、高位置情報720から特定された物体高位置部分を含む対象物体10とエンドエフェクタ21とが干渉しにくくなる。その結果、例えば、エンドエフェクタ21は、高位置情報720から特定された物体高位置部分を含む対象物体10を、フィルタ方向の両側から把持しやすくなる。
 なお、フィルタ窓200は、2つのマイナス窓202の一方を備えなくてもよい。この場合、高位置情報720から、少なくともフィルタ方向の一方側にスペースがある物体高位置部分を特定しやすくなる。
 フィルタ窓200が上記のようにして使用される場合、マイナス窓202の窓並び方向サイズ202aによって、高位置情報720から特定される物体高位置部分の周囲のスペースの大きさが決定される。例えば、右側のマイナス窓202の窓並び方向サイズ202aが大きい場合、高位置情報720から特定される物体高位置部分のフィルタ方向の右側のスペースが大きくなる。つまり、右側のマイナス窓202の窓並び方向サイズ202aが大きい場合、フィルタ方向の右側のスペースが大きい物体高位置部分が高位置情報720から特定される。マイナス窓202の窓並び方向サイズ202aを調整することによって、物体高位置部分の周囲のスペースの大きさも考慮した高位置情報720を取得することができる。以下にこの点について説明する。
 各マイナス窓202の窓並び方向サイズ202aが大きい場合、図12に示されるように、注目第1画素を含む第1の物体高位置相当画像の窓並び方向の両側に、第1画素値が小さい部分画像が広がっていれば、第1画素値が大きい第1画素が各マイナス窓202に含まれにくくなる。つまり、注目第1画素を含む第1の物体高位置相当画像の窓並び方向の両側に、第1画素値が小さい部分画像が広がっていれば、マイナス窓202の窓並び方向サイズ202aが大きいときでも、注目第1画素に対応する第2画素の画素値が大きくなる。言い換えれば、計測空間100において、注目物体高位置部分のフィルタ方向の両側に大きなスペースがあれば、窓並び方向サイズ202aが大きいときでも、注目第1画素に対応する第2画素の画素値が大きくなる。よって、窓並び方向サイズ202aが大きいマイナス窓202を使用した場合、対応する第2画素値が大きい計測点を高位置計測点とすることによって、フィルタ方向の両側のスペースが大きい物体高位置部分が高位置情報720から特定される。これに対して、窓並び方向サイズ202aが小さいマイナス窓202を使用した場合、フィルタ方向の両側のスペースが小さい物体高位置部分が高位置情報720から特定される。
 なお、左側のマイナス窓202の窓並び方向サイズ202aが大きく、右側のマイナス窓202の横並び方向サイズ202aが小さい場合、フィルタ方向の左側のスペースが大きく、フィルタ方向の右側のスペースが小さい物体高位置部分が高位置情報720から特定される。
 このように、マイナス窓202の窓並び方向サイズ202aを調整することによって、高位置情報720から特定される物体高位置部分の周囲のスペースの大きさを調整することができる。例えば、上記の例のように、窓並び方向サイズ202aが物体サイズに応じたサイズに設定される場合、高位置情報720から、周囲のスペースのサイズが物体サイズに応じたサイズの物体高位置部分を特定することができる。
 なお、エンドエフェクタ21が物体10を複数の指で把持する場合、マイナス窓202の窓並び方向サイズ202aは、エンドエフェクタ21の指の太さに応じたサイズであってもよい。この場合、マイナス窓202の窓並び方向サイズ202aは、上記と同様に、カメラ40aあるいはカメラ41で得られる撮像画像上でのエンドエフェクタ21の指の太さと一致させてもよい。これにより、周囲のスペースのサイズが、エンドエフェクタ21の指の太さに応じたサイズの物体高位置部分を特定することが可能な高位置情報720を取得することができる。よって、エンドエフェクタ21が複数の指で把持することが可能な物体10を保持対象物体10として決定することができる。
 <特定部の動作例>
 カラー画像711において対象物体10が写る物体画像を特定する特定部603は、例えば、高位置情報720が表す高位置画像を二値化して二値化画像を生成する。特定部603は、例えば、高位置画像を構成する複数の第2画素の第2画素値のそれぞれについて、しきい値以上の第2画素値を“1”に変換し、しきい値未満の第2画素値を“0”に変更する。これより、高位置画像が二値化画像に変換される。二値化画像において画素値が“1”を示す領域が物体群10Aの高位置部分に相当する。以後、二値化画像において、画素値が“1”を示す領域を高値領域と呼び、画素値が“0”を示す領域を低値領域と呼ぶ。
 特定部603は、全体高位置部分に相当する高値領域に含まれる、位置が連続する複数の画素から成る連続領域を特定する。連続領域は、独立領域あるいは島領域ともいえる。高値領域に含まれる複数の連続領域は、複数の対象物体10の物体高位置部分にそれぞれ相当する。高位置画像において、二値化画像の一の連続領域に対応する領域は、一の物体高位置部分に相当し、第2の物体高位置相当画像である。特定部603は、例えば、高値領域に対して4連結あるいは8連結等を用いたラベリング処理を行うことによって、高値領域に含まれる複数の連続領域を特定することができる。
 特定部603は、特定した各連続領域について、カラー画像711において当該連続領域に対応する部分画像を特定する。そして、特定部603は、特定した部分画像を、対象物体10が写る物体画像とする。これにより、カラー画像711において、対象物体10の物体高位置部分に相当する連続領域に対応する部分画像が、当該対象物体10が写る物体画像とされる。カラー画像711において連続領域に相当する部分画像は、カラー画像711において物体高位置部分(言い換えれば、高位置部分の一部である部分高位置部分)に相当する部分画像(第3の物体高位置相当画像ともいう)である。したがって、カラー画像711に含まれる第3の物体高位置相当画像が、対象物体10が写る物体画像とされる。第3の物体高位置相当画像に写る物体高位置部分は対象物体10の少なくとも一部を構成することから、物体画像には対象物体10の少なくとも一部が写る。
 なお、特定部603は、カラー画像711において第3の物体高位置相当画像から拡張した領域を物体画像としてもよい。図13は、カラー画像711において第3の物体高位置相当画像712から拡張された範囲713が物体画像714とされる様子の一例を示す概略図である。図13の左側では、第3の物体高位置相当画像712の一例が示されている。図13の右側には、左側に示される第3の物体高位置相当画像712から拡張された範囲713が示されている。
 例えば、複数の物体10の色が互いに異なる場合を考える。この場合、特定部603は、計測空間100の色情報に基づいて第3の物体高位置相当画像712から拡張した範囲713を物体画像714としてもよい。例えば、特定部603は、カラー画像データ710に基づいて第3の物体高位置相当画像712から拡張した範囲713を物体画像714としてもよい。この場合、特定部603は、例えば、カラー画像711において、第3の物体高位置相当画像712と連続する領域であって、第3の物体高位置相当画像712の色と同じ色の領域を特定する。そして、特定部603は、第3の物体高位置相当画像712から特定した領域まで拡張した範囲713を物体画像714とする。つまり、特定部603は、特定した領域を第3の物体高位置相当画像712に付け加えた範囲を物体画像714とする。これにより、物体画像に写る対象物体10の大きさが拡大される。
 また、特定部603は、計測空間100のエッジ画像に基づいて第3の物体高位置相当画像712から拡張した範囲713を物体画像714としてもよい。この場合、特定部603は、例えば、計測空間100が写るカラー画像711に対してエッジ検出を行って、計測空間100のエッジ画像を生成する。エッジ画像の生成方法としては、例えば、Sobel法、Laplacian法あるいはCanny法などが使用される。次に、特定部603は、エッジ画像において第3の物体高位置相当画像712に対応する部分(対応部分エッジ画像ともいう)を特定する。そして、特定部603は、エッジ画像において、対応部分エッジ画像から、対象物体10の輪郭に相当するエッジ(輝度が急激に変化する領域)まで拡張した範囲を特定する。そして、特定部603は、カラー画像711において特定した範囲に対応する部分を、エッジ画像に基づいて第3の物体高位置相当画像712から拡張した範囲713として、当該範囲713を物体画像714とする。
 <度合取得部の動作例>
 ここでは、複数の対象物体10のうち注目する対象物体10を注目対象物体10と呼ぶ。
 度合取得部604は、例えば、注目対象物体10の保持しやすさを表す評価値を求めて、求めた評価値を、注目対象物体10の保持しやすさ度合として採用してもよい。評価値は様々な観点から求めるができる。例えば、度合取得部604は、深度画像706において、注目対象物体10が写る特定物体画像に対応する部分画像(物体対応画像ともいう)を特定する。そして、度合取得部604は、特定した物体対応画像を構成する複数の第1画素の画素値の平均値あるいは最大値を求める。物体対応画像についての平均値及び最大値をそれぞれ第1平均値及び第1最大値と呼ぶ。度合取得部604は、第1平均値あるいは第1最大値を評価値としてもよい。深度画像706の第1画素値が大きいほど、それに対応する計測点が高い位置にある。したがって、第1平均値あるいは第1最大値が大きいほど、注目対象物体10は保持しやすいといえる。
 また、度合取得部604は、図14に示されるように、深度画像706において、物体対応画像707aの周囲の部分画像707b(周囲部分画像707bともいう)を特定し、特定した周囲部分画像707bを構成する複数の第1画素の画素値の平均値あるいは最大値を求めてもよい。周囲部分画像707bについての平均値及び最大値をそれぞれ第2平均値及び第2最大値と呼ぶ。そして、度合取得部604は、第1平均値及び第1最大値のどちらか一方から、第2平均値及び第2最大値のどちらか一方を差し引いて得られる差分値を評価値としてもよい。対象物体10が周囲よりも高い位置にあるほど差分値は大きくなることから、差分値が大きいほど、注目対象物体10は保持しやすいといえる。
 エンドエフェクタ21が物体10を複数の指で把持する場合、周囲部分画像707bの幅707bbは、エンドエフェクタ21の指の太さに応じたサイズであってもよい。この場合、幅707bbは、カメラ40aあるいはカメラ41で得られる撮像画像上でのエンドエフェクタ21の指の太さと一致させてもよい。これにより、周りにエンドエフェクタ21の指が入るスペースが存在する対象物体10の保持しやすさ度合が高くになり、対象物体10をエンドエフェクタ21の指で把持しやすくなる。なお、図14の例では、周囲部分画像707bは、物体対応画像707aを取り囲んでいるが、物体対応画像707aを取り囲んでいなくてもよい。
 また、度合取得部604は、深度画像706に基づいて、注目対象物体10の周囲のスペースのサイズを特定し、特定したサイズに基づいて評価値を決定してもよい。この場合、度合取得部604は、例えば、注目対象物体10の周囲のスペースのサイズが大きいほど評価値を大きくする。度合取得部604は、例えば、深度画像706での物体対応画像707aの周囲において第1画素値が小さい範囲を特定することによって、注目対象物体10の周囲のスペースのサイズを特定することができる。
 <保持対象決定部の動作例>
 保持対象決定部605は、例えば、複数の対象物体10のうち、保持しやすさ度合が最も大きい対象物体10を保持対象物体10とする。保持対象決定部605は、保持しやすさ度合が最大の対象物体10が複数存在する場合、他の情報に基づいて、保持対象物体10を決定してもよい。例えば、保持しやすさ度合が最大の複数の対象物体10のそれぞれについて、対象物体10が写る特定物体画像に基づいて対象物体10の露出面積を求める。そして、度合取得部604は、保持しやすさ度合が最大の複数の対象物体10において、露出面積が最大の対象物体10を保持対象物体10としてもよい。
 以上のように、ロボットシステム1について説明したが、ロボットシステム1は上記の例に限られない。以下にロボットシステム1の他の例について説明する。
 <生成部の他の動作例>
 生成部602は、物体サイズに応じた複数種類の空間フィルタ関数を用いて深度画像706に対してフィルタ処理を行って高位置情報720を生成してもよい。例えば、生成部602は、上述の第1空間フィルタ関数と、物体サイズに応じた第2空間フィルタ関数とを用いて深度画像706に対してフィルタ処理を行って高位置情報720を生成してもよい。図15は第2空間フィルタ関数のフィルタ窓220の一例を示す概略図である。
 フィルタ窓220は、例えば、フィルタ窓200と同様に、プラス窓201と、2つのマイナス窓202とを有する。フィルタ窓220の窓並び方向及び窓垂直方向は、フィルタ窓200とは異なり、深度画像706の列方向及び行方向にそれぞれ一致する。
 生成部602は、上記と同様にして、フィルタ窓200を使用して深度画像をフィルタ処理する。ここでは、フィルタ窓200が使用されて生成されたフィルタ処理後の深度画像を第1フィルタ画像と呼ぶ。また、生成部602は、フィルタ窓200を使用する場合と同様にして、フィルタ窓210を使用して深度画像をフィルタ処理する。このフィルタ後の深度画像を第2フィルタ画像と呼ぶ。そして、生成部602は、第1フィルタ画像と第2フィルタ画像とを合成した合成画像を高位置画像とする。生成部602は、例えば、第1フィルタ画像の画素位置(m,n)の画素の画素値と、第2フィルタ画像の画素位置(m,n)の画素の画素値と足し合わせ得られる値を、合成画像の画素位置(m,n)の画素の画素値とする。生成部602は、この処理を各画素位置について行うことによって合成画像を生成する。
 このように、プラス窓201及びマイナス窓202の並び方向が互いに異なる複数種類のフィルタ窓が使用されて高位置情報720が生成されることによって、物体高位置部分の周囲において複数の方向のいずれにスペースがあっても、当該物体高位置部分を高位置情報720から特定しやすくなる。つまり、周囲において複数の方向の少なくとも一つの方向にスペースがある物体高位置部分を高位置情報720から特定しやすくなる。よって、保持しやすい物体10を特定しやすくなる。フィルタ窓200及び210が使用される場合、周囲においてx方向及びy方向の少なくとも一方の方向にスペースが存在する物体高位置部分を高位置情報720から特定しやすくなる。
 上記の例では、高位置情報720の生成に2種類の空間フィルタ関数が使用されているが、3種類以上の空間フィルタ関数が使用されてもよい。図16は第3空間フィルタ関数のフィルタ窓220の一例と、第4空間フィルタ関数のフィルタ窓230の一例とを示す概略図である。
 フィルタ窓220及び230のそれぞれは、フィルタ窓200及び210と同様に、プラス窓201と、2つのマイナス窓202とを有する。フィルタ窓220の窓並び方向は深度画像706の右斜め方向に設定されている。フィルタ窓230の窓並び方向は深度画像706の左斜め方向に設定されている。
 生成部602は、フィルタ窓200,210,220,230を使用する場合、上述のように第1フィルタ画像及び第2フィルタ画像を生成する。また、生成部602は、フィルタ窓220を使用して深度画像をフィルタ処理する。このフィルタ処理後の深度画像を第3フィルタ画像と呼ぶ。また、生成部602は、フィルタ窓230を使用して深度画像をフィルタ処理する。このフィルタ処理後の深度画像を第4フィルタ画像と呼ぶ。そして、生成部602は、第1フィルタ画像、第2フィルタ画像、第3フィルタ画像及び第4フィルタ画像を合成した合成画像を高位置画像とする。生成部602は、例えば、第1フィルタ画像の画素位置(m,n)の画素の画素値と、第2フィルタ画像の画素位置(m,n)の画素の画素値と、第3フィルタ画像の画素位置(m,n)の画素の画素値と、第4フィルタ画像の画素位置(m,n)の画素の画素値とを足し合わせ得られる値を、合成画像の画素位置(m,n)の画素の画素値とする。生成部602は、この処理を各画素位置について行うことによって合成画像を生成する。このようにして生成された高位置画像を表す高位置情報720からは、周囲において4方向の少なくとも一つの方向にスペースがある物体高位置部分を特定しやすくなる。
 なお、生成部602は、窓並び方向が互いに異なる5種類以上のフィルタ窓を使用して高位置情報720を生成してもよい。また、生成部602は、フィルタ窓200,210,220,230の少なくとも一つを用いて高位置情報720を生成してもよい。
 生成部602は、物体10の複数の方向のサイズにそれぞれ応じた複数種類の空間フィルタ関数を使用して高位置情報720を生成してもよい。図17は、物体10の複数の方向のサイズにそれぞれ応じた複数種類の空間フィルタ関数のフィルタ窓の一例を示す概略図である。図17には、物体10の高さ方向サイズに応じた空間フィルタ関数のフィルタ窓240と、物体10の奥行方向サイズに応じた空間フィルタ関数のフィルタ窓250と、物体10の幅方向サイズに応じた空間フィルタのフィルタ窓260とが示されている。図17には、物体10の幅方向サイズ、奥行方向サイズ及び高さ方向サイズがこの順で大きい場合の例が示されている。
 フィルタ窓240,250,260のそれぞれは、フィルタ窓200と同様の構成を有している。フィルタ窓240のプラス窓201及びマイナス窓202の窓並び方向サイズ及び窓垂直方向サイズは、基準撮影画像上での基準物体10の高さ方向サイズに一致している。フィルタ窓250のプラス窓201及びマイナス窓202の窓並び方向サイズ及び窓垂直方向サイズは、基準撮影画像上での基準物体10の奥行方向サイズに一致している。フィルタ窓260のプラス窓201及びマイナス窓202の窓並び方向サイズ及び窓垂直方向サイズは、基準撮影画像上での基準物体10の幅方向サイズに一致している。
 生成部602は、フィルタ窓240を使用してフィルタ処理した深度画像(第5フィルタ画像ともいう)と、フィルタ窓250を使用してフィルタ処理した深度画像(第6フィルタ画像ともいう)と、フィルタ窓260を使用してフィルタ処理した深度画像(第7フィルタ画像ともいう)と準備する。そして、生成部602は、上記と同様にして、第5フィルタ画像、第6フィルタ画像及び第7フィルタ画像を合成した合成画像を生成し、生成した合成画像を高位置画像とする。
 このように、物体10の複数の方向のサイズにそれぞれ応じた複数種類の空間フィルタ関数が使用されて高位置情報720が生成されることによって、トレー13上の物体群10Aでの物体10の姿勢のばらつきにかかわらず、物体群10Aの高位置部分を特定しやすくなる。つまり、センサ装置4から物体群10Aを見た場合の各物体10の見え方にかかわらず、物体群10Aの高位置部分を特定しやすくなる。さらに言い換えれば、カメラ40a及び41で得られる撮像画像での各物体10の写り方にかかわらず、物体群10Aの高位置部分を特定しやすくなる。これにより、保持しやすい物体10を特定しやすくなる。よって、エンドエフェクタ21は物体10を保持しやすくなる。
 生成部602が使用するフィルタ窓の構成は上記の例に限られない。生成部602が使用する少なくとも一種類の空間フィルタ関数のフィルタ窓には、図18の上側に示されるフィルタ窓270が含まれてもよいし、図18の中ほどに示されるフィルタ窓280が含まれてもよいし、図18の下側に示されるフィルタ窓290が含まれてもよい。フィルタ窓270では、プラス窓201がマイナス窓202で取り囲まれている。フィルタ窓270が使用される場合、周囲の全方向にスペースがある物体高位部分が特定されやすくなる。フィルタ窓280では、プラス窓201の上下と左右にマイナス窓202が配置されている。フィルタ窓280が使用される場合、周囲のx方向及びy方向にスペースがある物体高位部分が特定されやすくなる。フィルタ窓290の外形は円形となっている。なお、フィルタ窓の外形は四角形及び円形以外であってもよい。
 フィルタ窓が有する複数のマイナス部分窓202の配置は、ロボット2のエンドエフェクタ21の指の配置に応じて決定されてもよい。例えば、エンドエフェクタ21が二本の指で物体10を両側から挟み込む場合には、フィルタ窓の複数のマイナス部分窓202は、図5のフィルタ窓200のように配置されてもよいし、図15のフィルタ窓210のように配置されてもよいし、図18のフィルタ窓290のように配置されてもよい。また、エンドエフェクタ21が4本以上の指で物体10を周囲から把持する場合には、フィルタ窓の複数のマイナス部分窓202は、図18のフィルタ窓280のように配置されてもよいし、図18のフィルタ窓270のように配置されてもよい。
 また、プラス窓201に関する所定のプラス値は+1.0以外であってもよし、マイナス窓202に関する所定のマイナス値は-0.5以外であってもよい。
 また、上記の例では、プラス窓201内の複数の第1画素の画素値に対して、所定のプラス値が乗算されているが、所定のプラス値が加算されてもよい。この場合、マイナス窓202内の複数の第1画素の画素値に対して所定のマイナス値が加算されてもよい。
 また、フィルタ窓では、プラス窓201がマイナス窓202に変更されるとともに、マイナス窓202がプラス窓201に変更されてもよい。例えば、図5の例においてこのような変更を行うと、マイナス窓202が2つのプラス窓201で挟まれるようになる。プラス窓201がマイナス窓202に変更されるとともに、マイナス窓202がプラス窓201に変更される場合、高位置画像データ720では、他よりも高い位置にある計測点に対応する第2画素値は小さくなる傾向になり、他よりも高い位置にはない計測点に対応する第2画素値は大きくなる傾向になる。よって、高位置情報720が表す高位置画像において第2画素値がしきい値未満である部分画像が、物体群10Aの高位置部分に相当する画像(つまり、第2の高位置相当画像)となる。
 また、上記の例では、複数種類のフィルタ窓にそれぞれ対応する複数のフィルタ画像が合成されていたが、合成されなくてもよい。この場合、図4に示される保持姿勢決定処理において、ある種類のフィルタ窓が使用されてフィルタ画像が生成され(ステップs3)、生成されたフィルタ画像が高位置画像とされてステップs4~s7が実行されてもよい。ステップs4において、高位置画像の二値化画像に高値領域が含まれない場合、つまり、物体群10Aの高位置部分が検出されなかった場合、ステップs5~s7が実行されずに、別の種類のフィルタ窓が使用されて保持姿勢決定処理が再度実行されてもよい。この保持姿勢決定処理のステップs4においても、高位置画像の二値化画像に高値領域が含まれない場合、さらに別の種類のフィルタ窓が使用されて再度保持姿勢決定処理が実行されてもよい。
 <特定部の他の動作例>
 上記の例では、特定部603は、計測空間100のエッジ画像あるいは色情報に基づいて第3の物体高位置相当画像から拡張した範囲を物体画像としているが、深度情報705に基づいて第3の物体高位置相当画像から拡張した範囲を物体画像としてもよい。以下にこの例について説明する。以下の例では、生成部602が特定部603の一部として機能する。特定部603は、例えば、窓並び方向が互いに垂直を成す2種類のフィルタ窓を使用して深度画像706をフィルタ処理する。そして、特定部603は、カラー画像711において、そのフィルタ処理の結果に基づいて第3の物体高位置相当画像から拡張した範囲を物体画像とする。
 図19は特定部603の動作の一例を説明するための概略図である。図19には、物体10が鉛筆等の細長いものである場合の深度画像706に含まれる部分画像706aの一例が模式的に示されている。部分画像706aは、一の物体10の深度を表す画像である。図19の例では、部分画像706aに対応する物体10の周囲には他の物体10が存在せず、部分画像706aの第1画素値は、その周囲の画像の第1画素値よりも大きくなっている。
 図19では、部分画像701aに対して、窓並び方向が互いに垂直を成す2種類のフィルタ窓が設定されている。具体的には、部分画像701aに対してフィルタ窓200とフィルタ窓210とが設定されている。フィルタ窓200及び210のプラス窓201及びマイナス窓202の窓並び方向サイズ及び窓垂直方向サイズは、細長い物体10の短手方向のサイズに応じて設定されている。フィルタ窓200及び210は、同じ画素位置の注目第1画素を含むように設定されている。フィルタ窓200の窓並び方向は、深度画像706において、部分画像706aに対応する物体10の長手方向に相当する方向に一致する。また、フィルタ窓210の窓並び方向は、深度画像706において、部分画像706aに対応する物体10の短手方向に相当する方向に一致する。
 ある物体10の深度を表す部分画像706aに対して図19のようにフィルタ窓200及び210が設定される場合、フィルタ窓200が使用されて求められた演算値(第1演算値ともいう)は大きくなるものの、フィルタ窓210が使用されて求められた演算値(第2演算値ともいう)は小さくなる。したがって、第1演算値から第2演算値を差し引いて得られる差分値がしきい値以上の場合、当該ある物体10は、計測空間100において、フィルタ窓210の窓並び方向に相当する方向(第2フィルタ方向ともいう)に沿って延びている可能性が高い。
 そこで、特定部603は、生成部602においてフィルタ窓200が用いられて深度画像706がフィルタ処理される場合に得られる複数の第1演算値と、生成部602においてフィルタ窓210が用いられて深度画像706がフィルタ処理される場合に得られる複数の第2演算値とに基づいて、第3の物体高位置相当画像に写る物体10が延びている方向を特定する。そして、特定部603は、特定した方向に基づいて第3の物体高位置相当画像から拡張した範囲を物体画像とする。
 以後、注目第1画素の画素位置が画素位置(m,n)の場合に得られる第1演算値と画素位置(m,n)とは互いに対応すると表現する。同様に、注目第1画素の画素位置が画素位置(m,n)の場合に得られる第2演算値と画素位置(m,n)とは互いに対応すると表現する。
 特定部603は、フィルタ窓200に基づくフィルタ処理で得られる複数の第1演算値から、第3の物体高位置相当画像を構成する複数の第3画素にそれぞれ対応する複数の第1演算値を特定する。第3画素に対応する第1演算値とは、当該第3画素の画素位置と同じ画素位置に対応する第1演算値である。また、特定部603は、フィルタ窓210に基づくフィルタ処理で得られる複数の第2演算値から、第3の物体高位置相当画像を構成する複数の第3画素にそれぞれ対応する複数の第2演算値を特定する。第3画素に対応する第2演算値とは、当該第3画素の画素位置と同じ画素位置に対応する第2演算値である。
 特定部603は、特定した複数の第1演算値及び複数の第2演算値に関して、同じ画素位置に対応する第1演算値と第2演算値との差分値を求める。この差分値は、第1演算値から第2演算値を差し引いて得られる差分値である。そして、特定部603は、求めた複数の差分値に、しきい値よりも大きい差分値が含まれる場合、第3の物体高位置相当画像に写る物体10が第2フィルタ方向に沿って延びていると判断する。特定部603は、第3の物体高位置相当画像に写る物体10が第2フィルタ方向に沿って延びていることが分かると、カラー画像711において第3の物体高位置相当画像からフィルタ窓210の窓並び方向に沿って拡張した範囲を物体画像とする。例えば、特定部603は、カラー画像711において、第3の物体高位置相当画像に対してフィルタ窓210の窓並び方向に位置し、第3の物体高位置相当画像の代表画素値と同程度の画素値を有する領域を特定する。そして、特定部603は、カラー画像711において第3の物体高位置相当画像から特定した領域まで拡張した範囲を物体画像とする。第3の物体高位置相当画像の代表画素値は、例えば、第3の物体高位置相当画像を構成する複数の第3画素の画素値の平均値であってもよい。
 なお、上記の処理で使用される2種類のフィルタ窓はフィルタ窓200及び210に限られない。例えば、上述の図16に示されるフィルタ窓220及び230が使用されてもよい。
 ロボットシステム1では、カラー画像711の代わりにグレースケール画像が使用されてもよい。この場合、特定部603は、グレースケール画像において対象物体10が写る物体画像を、上記と同様にして高位置情報720に基づいて特定してもよい。
 また、保持姿勢決定部606は、保持姿勢決定処理で使用されるフィルタ窓の窓並び方向に基づいて、エンドエフェクタ21が保持対象物体10を把持する方向を決定してもよい。例えば、エンドエフェクタ21が二指で物体10を把持する場合に保持姿勢決定処理で図5のフィルタ窓200が使用されるとき、保持姿勢決定部606は、フィルタ窓200の窓並び方向に相当するフィルタ方向に平行な方向から保持対象物体10を把持することを決定してもよい。
 また、ロボット制御部5は、保持姿勢決定処理で使用されるフィルタ窓のマイナス部分窓202の窓並び方向サイズ202aに基づいて、エンドエフェクタ21の指の開閉幅を制御してもよい。例えば、ロボット制御部5は、窓並び方向サイズ202aが大きい場合、エンドエフェクタ21の指の開閉幅を大きくし、窓並び方向サイズ202aが小さい場合、エンドエフェクタ21の指の開閉幅を小さくしてもよい。
 以上のように、ロボットシステム、ロボット制御システム及び情報処理装置は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この開示がそれに限定されるものではない。また、上述した各種例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の例が、この開示の範囲から外れることなく想定され得るものと解される。
 3 ロボット制御システム
 5 ロボット制御部
 6 情報処理装置
 200,210,220,230,240,250,260,270,280,290 フィルタ窓
 201 プラス部分窓
 202 マイナス部分窓
 600 情報取得部
 602 生成部
 603 特定部
 604 度合取得部
 605 保持対象決定部
 606 保持姿勢決定部
 630 プログラム
 705 深度情報
 706 深度画像
 710 色情報
 711 カラー画像
 712 第3の物体高位置相当画像
 714 物体画像
 720 高位置情報

Claims (14)

  1.  複数の物体が存在する計測空間内での深度を表す深度情報を取得する取得部と、
     前記深度情報に対して物体の物体サイズに応じたフィルタ処理を行って、前記計測空間内において、前記複数の物体のうち他よりも高い位置にある高位置部分を表す高位置情報を生成する生成部と
    を備える、情報処理装置。
  2.  請求項1に記載の情報処理装置であって、
     前記生成部は、前記物体サイズに応じた少なくとも一種類の空間フィルタ関数を用いて、前記深度情報が表す深度画像に対してフィルタ処理を行う、情報処理装置。
  3.  請求項2に記載の情報処理装置であって、
     前記少なくとも一種類の空間フィルタ関数は、第1空間フィルタ関数を含み、
     前記第1空間フィルタ関数のフィルタ窓は、
      その領域内の各画素の画素値に対して第1の値が加算または乗算される第1部分窓と、
      その領域内の各画素の画素値に対して、前記第1の値とは異なる符号の第2の値が加算または乗算される第2部分窓と
    を有し、
     前記第1部分窓のサイズは、前記物体サイズに応じたサイズである、情報処理装置。
  4.  請求項3に記載の情報処理装置であって、
     前記第2部分窓のサイズは、前記物体サイズに応じたサイズである、情報処理装置。
  5.  請求項3または請求項4に記載の情報処理装置であって、
     前記第1空間フィルタ関数のフィルタ窓は、その領域内の各画素の画素値に対して、前記第2の値と同じ符号の第3の値が加算または乗算される第3部分窓をさらに有し、
     前記第1部分窓は、前記第2部分窓と前記第3部分窓とで挟まれる、情報処理装置。
  6.  請求項3から請求項5のいずれか一つに記載の情報処理装置であって、
     前記少なくとも一種類の空間フィルタ関数は、第2空間フィルタ関数を含み、
     前記第2空間フィルタ関数のフィルタ窓は、前記第1部分窓及び前記第2部分窓を有し、
     前記第1空間フィルタ関数及び前記第2空間フィルタ関数の間では、前記第1部分窓及び前記第2部分窓が並ぶ方向が異なる、情報処理装置。
  7.  請求項2から請求項6のいずれか一つに記載の情報処理装置であって、
     前記物体サイズは、第1方向のサイズと、当該第1方向とは異なる第2方向のサイズと含み、
     前記少なくとも一種類の空間フィルタ関数は、前記第1方向のサイズに応じた空間フィルタ関数と、前記第2方向のサイズに応じた空間フィルタ関数とを含む、情報処理装置。
  8.  請求項1から請求項7のいずれか一つに記載の情報処理装置であって、
     前記複数の物体において、前記高位置部分に含まれる部分高位置部分を含む物体を対象物体とした場合、複数の対象物体のそれぞれについて、前記計測空間が撮影された撮影画像において当該対象物体が写る物体画像を、前記高位置情報に基づいて特定する特定部をさらに備える、情報処理装置。
  9.  請求項8に記載の情報処理装置であって、
     前記特定部は、前記計測空間内での色情報、前記計測空間のエッジ画像あるいは前記深度情報に基づいて、前記撮影画像において前記部分高位置部分に相当する部分画像から拡張した範囲を前記物体画像とする、情報処理装置。
  10.  請求項8または請求項9に記載の情報処理装置であって、
     前記複数の対象物体のそれぞれについて、当該対象物体の保持しやすさの度合を、前記深度情報に基づいて求める度合取得部をさらに備える、情報処理装置。
  11.  請求項10に記載の情報処理装置であって、
     前記複数の対象物体についての前記度合に基づいて、前記複数の対象物体からロボットが保持する保持対象物体を決定する保持対象決定部をさらに備える、情報処理装置。
  12.  請求項11に記載の情報処理装置であって、
     前記ロボットについての前記保持対象物体に対する保持姿勢を前記物体画像に基づいて決定する保持姿勢決定部をさらに備える、情報処理装置。
  13.  請求項12に記載の情報処理装置が備える前記取得部、前記生成部、前記特定部、前記度合取得部、前記保持対象決定部及び前記保持姿勢決定部と、
     前記保持姿勢決定部で決定された前記保持姿勢に基づいてロボットを制御するロボット制御部と
    を備える、ロボット制御システム。
  14.  コンピュータ装置に、
     複数の物体が存在する計測空間内での深度を表す深度情報を取得し、
     前記深度情報に対して物体の物体サイズに応じたフィルタ処理を行って、前記計測空間内において、前記複数の物体のうち他よりも高い位置にある高位置部分を表す高位置情報を生成することを実行させるプログラム。
PCT/JP2023/007351 2022-02-28 2023-02-28 情報処理装置、ロボット制御システム及びプログラム WO2023163219A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-029790 2022-02-28
JP2022029790 2022-02-28

Publications (1)

Publication Number Publication Date
WO2023163219A1 true WO2023163219A1 (ja) 2023-08-31

Family

ID=87766342

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/007351 WO2023163219A1 (ja) 2022-02-28 2023-02-28 情報処理装置、ロボット制御システム及びプログラム

Country Status (1)

Country Link
WO (1) WO2023163219A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09255158A (ja) * 1996-03-22 1997-09-30 Kobe Steel Ltd 物体配置認識装置
JP2014164579A (ja) * 2013-02-26 2014-09-08 Oki Electric Ind Co Ltd 情報処理装置、プログラム及び情報処理方法
WO2021177239A1 (ja) * 2020-03-05 2021-09-10 ファナック株式会社 取り出しシステム及び方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09255158A (ja) * 1996-03-22 1997-09-30 Kobe Steel Ltd 物体配置認識装置
JP2014164579A (ja) * 2013-02-26 2014-09-08 Oki Electric Ind Co Ltd 情報処理装置、プログラム及び情報処理方法
WO2021177239A1 (ja) * 2020-03-05 2021-09-10 ファナック株式会社 取り出しシステム及び方法

Similar Documents

Publication Publication Date Title
US11948282B2 (en) Image processing apparatus, image processing method, and storage medium for lighting processing on image using model data
JP6570296B2 (ja) 画像処理装置、画像処理方法およびプログラム
US20150278996A1 (en) Image processing apparatus, method, and medium for generating color image data
JP7255718B2 (ja) 情報処理装置、認識支援方法およびコンピュータプログラム
US11282232B2 (en) Camera calibration using depth data
JP2010165248A (ja) 画像処理装置、画像照合方法、および、プログラム
JP7064257B2 (ja) 画像深度確定方法及び生き物認識方法、回路、装置、記憶媒体
JP6594170B2 (ja) 画像処理装置、画像処理方法、画像投影システムおよびプログラム
US20200104969A1 (en) Information processing apparatus and storage medium
CN108399617B (zh) 一种动物健康状况的检测方法和装置
US20160073089A1 (en) Method for generating 3d image and electronic apparatus using the same
WO2018012524A1 (ja) 投影装置、投影方法および投影制御プログラム
WO2023163219A1 (ja) 情報処理装置、ロボット制御システム及びプログラム
US20160253780A1 (en) Image processing apparatus, image processing method, and storage medium
JP6305232B2 (ja) 情報処理装置、撮像装置、撮像システム、情報処理方法およびプログラム。
US9270883B2 (en) Image processing apparatus, image pickup apparatus, image pickup system, image processing method, and non-transitory computer-readable storage medium
JP7298687B2 (ja) 物体認識装置及び物体認識方法
JP6320165B2 (ja) 画像処理装置及びその制御方法、並びにプログラム
JP6351364B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP7197211B2 (ja) 三次元グラフィックスデータ作成方法、プログラム及び三次元グラフィックスデータ作成システム
JP6915016B2 (ja) 情報処理装置及び方法、情報処理システム、ならびにプログラム
KR102497593B1 (ko) 정보 처리장치, 정보 처리방법 및 기억매체
JPWO2017013873A1 (ja) 寸法測定装置、寸法測定システム、及び、寸法測定方法
JP2022189368A (ja) 物品記録装置及び物品記録方法
JP2024002327A (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Legal Events

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

Ref document number: 23760217

Country of ref document: EP

Kind code of ref document: A1