JP7448633B2 - 複数のカメラにて撮像された画像に基づいて物体の表面の位置情報を生成する三次元測定装置 - Google Patents

複数のカメラにて撮像された画像に基づいて物体の表面の位置情報を生成する三次元測定装置 Download PDF

Info

Publication number
JP7448633B2
JP7448633B2 JP2022505175A JP2022505175A JP7448633B2 JP 7448633 B2 JP7448633 B2 JP 7448633B2 JP 2022505175 A JP2022505175 A JP 2022505175A JP 2022505175 A JP2022505175 A JP 2022505175A JP 7448633 B2 JP7448633 B2 JP 7448633B2
Authority
JP
Japan
Prior art keywords
image
block
pixel
unit
position information
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2022505175A
Other languages
English (en)
Other versions
JPWO2021177163A1 (ja
Inventor
航太 井
順一郎 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
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 Fanuc Corp filed Critical Fanuc Corp
Publication of JPWO2021177163A1 publication Critical patent/JPWO2021177163A1/ja
Application granted granted Critical
Publication of JP7448633B2 publication Critical patent/JP7448633B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B21/00Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant
    • G01B21/02Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring length, width, or thickness
    • G01B21/04Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring length, width, or thickness by measuring coordinates of points
    • G01B21/047Accessories, e.g. for positioning, for tool-setting, for measuring probes
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B5/00Measuring arrangements characterised by the use of mechanical techniques
    • G01B5/004Measuring arrangements characterised by the use of mechanical techniques for measuring coordinates of points
    • G01B5/008Measuring arrangements characterised by the use of mechanical techniques for measuring coordinates of points using coordinate measuring machines
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • 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/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Description

本発明は、複数のカメラにて撮像された画像に基づいて物体の表面の位置情報を生成する三次元測定装置に関する。
従来の技術においては、視覚センサにて画像を撮像し、得られた画像に基づいて物体の表面の位置情報を検出する三次元測定装置が知られている。3次元の位置を検出する視覚センサとしては、2台の2次元カメラを含むステレオカメラが知られている。ステレオカメラにて撮像された画像の処理においては、一方のカメラにて撮像された画像と他方のカメラにて撮像された画像とにおける物体の位置の視差に基づいて、ステレオカメラから物体までの距離が算出される。また、物体までの距離および2台のカメラの位置に基づいて、物体の表面に設定される測定点の3次元的な位置を算出することができる。
ステレオカメラの画像の処理では、一方のカメラにて撮像された画像に含まれる物体の位置に対応するように、他方のカメラにて撮像された画像に含まれる物体の位置を検出する必要が有る。このために、一方の画像において所定の大きさのブロックを設定し、このブロックに対応する他方の画像における位置を探索する制御が知られている(例えば、特開2001-82927号公報)。このような方法は、ブロックごとに探索するために、ブロックマッチングと称される。
特開2001-82927号公報
ステレオカメラの画像の処理において、ブロックマッチングを行う場合には、一方のカメラにて第1の画像を撮像し、他方のカメラにて第2の画像を撮像する。第1の画像において選定されたブロックが第2の画像において選定されたブロックに対応するか否かを判定する。このブロックは、複数の画素を含む。第2の画像において第1の画像のブロックに対応するブロックが存在する場合には、ブロックに含まれる画素について視差を算出する。
ブロックマッチングを用いて距離画像などの表面の位置情報を算出する制御では、物体の小さな段差、物体同士の間の僅かな隙間、または物体の細かい形状などの輪郭を正確に測定することが難しい場合が有る。例えば、ステレオカメラにて距離画像を生成した場合には、物体の小さな段差または物体同士の間の隙間等が消失してしまう場合がある。または、物体の小さな段差または物体同士の間の隙間等においては正確な距離情報が取得できない場合が有る。このように、ステレオカメラでは、画像における形状の変化が細かい部分では、物体の表面の位置情報を正確に取得することが難しいという問題があった。
本開示の第1の態様の三次元測定装置は、第1の画像を撮像する第1のカメラおよび第2の画像を撮像する第2のカメラを含む視覚センサと、物体の輪郭を検出するための輪郭検出センサとを備える。三次元測定装置は、第1の画像および第2の画像に基づいて、物体の表面の位置情報を検出する処理部を備える。処理部は、輪郭検出センサの出力に基づいて物体の輪郭を検出する輪郭検出部を含む。処理部は、第1の画像において選定された1つの選定画素を含む複数の画素にて構成された選定ブロックを設定し、第2の画像において選定ブロックに対応する特定ブロックを探索するブロック探索部を含む。処理部は、選定ブロックにおける選定画素の位置と特定ブロックにおける選定画素に対応する特定画素の位置との視差に基づいて、画素の距離情報を算出する算出部を含む。処理部は、複数の画素の距離情報を含む物体の表面の位置情報を生成する生成部を含む。処理部は、互いに異なる条件にて生成された物体の表面の位置情報を合成する合成部を含む。ブロック探索部は、選定ブロックに含まれる画素の値と特定ブロックに含まれる画素の値との差の大きさまたは差の2乗の値を積算した積算値を算出する。ブロック探索部は、積算値が予め定められた判定値未満である場合に、特定ブロックに含まれる画素が選定ブロックに含まれる画素に対応すると判定する。ブロック探索部は、積算値が予め定められた判定値を超える場合または選定ブロックに対応する特定ブロックが検出されない場合に、選定画素の距離情報として無効画素である情報を設定する。積算値に関する第1の判定値と第1の判定値よりも大きな積算値に関する第2の判定値とが予め定められている。ブロック探索部、算出部、および生成部は、第1の画像、第2の画像、および第1の判定値を用いて第1の表面の位置情報を生成し、第1の画像、第2の画像、および第2の判定値を用いて第2の表面の位置情報を生成する。合成部は、輪郭検出部にて検出された輪郭に基づいて輪郭に対応する領域を設定し、輪郭に対応する領域に含まれる画素に対して、第1の表面の位置情報に含まれる画素の距離情報を採用し、輪郭に対応する領域以外の領域に含まれる画素に対して、第2の表面の位置情報に含まれる画素の距離情報を採用することにより、第1の表面の位置情報と第2の表面の位置情報とを合成した表面の位置情報を生成する。
本開示の第2の態様の三次元測定装置は、第1の画像を撮像する第1のカメラおよび第2の画像を撮像する第2のカメラを含む視覚センサと、物体の輪郭を検出するための輪郭検出センサとを備える。三次元測定装置は、第1の画像および第2の画像に基づいて、物体の表面の位置情報を検出する処理部を備える。処理部は、輪郭検出センサの出力に基づいて物体の輪郭を検出する輪郭検出部を含む。処理部は、第1の画像において選定された1つの選定画素を含む複数の画素にて構成された選定ブロックを設定し、第2の画像において選定ブロックに対応する特定ブロックを探索するブロック探索部を含む。処理部は、選定ブロックにおける選定画素の位置と特定ブロックにおける選定画素に対応する特定画素の位置との視差に基づいて、画素の距離情報を生成する算出部を含む。処理部は、複数の画素の距離情報を含む物体の表面の位置情報を生成する生成部を含む。処理部は、互いに異なる条件にて生成された物体の表面の位置情報を合成する合成部を含む。第1の選定ブロックと、第1の選定ブロックよりも多くの画素を含む第2の選定ブロックとが予め定められている。ブロック探索部、算出部、および生成部は、第1の画像、第2の画像、および第1の選定ブロックを用いて第1の表面の位置情報を生成し、第1の画像、第2の画像、および第2の選定ブロックを用いて第2の表面の位置情報を生成する。合成部は、輪郭検出部にて検出された輪郭に基づいて輪郭に対応する領域を設定し、輪郭の画素を含む輪郭に対応する領域に含まれる画素に対して、第1の表面の位置情報に含まれる画素の距離情報を設定し、輪郭に対応する領域以外の領域に含まれる画素に対して、第2の表面の位置情報に含まれる画素の距離情報を設定することにより、第1の表面の位置情報と第2の表面の位置情報とを合成した表面の位置情報を生成する。
本開示の態様によれば、物体の表面の位置情報の精度が向上する三次元測定装置を提供することができる。
実施の形態におけるロボット装置の斜視図である。 ロボット装置のブロック図である。 実施の形態における視覚センサの概略図である。 第1の画像における選定ブロックと第2の画像における探索領域および探索ブロックの図である。 選定ブロックに対応する特定ブロックを探索する制御の第1の工程を説明する選定ブロックおよび探索領域の図である。 選定ブロックに対応する特定ブロックを探索する制御の第2の工程を説明する選定ブロックおよび探索領域の図である。 視覚センサにてワークを撮像する例を説明する視覚センサおよびワークの斜視図である。 ワークを撮像して得られる距離画像の例である。 ロボット装置の第1のカメラにて撮像した2次元の画像である。 2次元の画像から輪郭を検出するためのコントラストの閾値を設定する方法のフローチャートである。 実施の形態における第1の制御のフローチャートである。 輪郭に対応する領域を説明する画像の拡大図である。 合成距離画像を生成する制御のフローチャートである。 第1の制御にて生成された距離画像である。 比較例の制御にて生成された距離画像である。 第1のスコアの判定値を設定する方法のフローチャートである。 実施の形態における第2の制御のフローチャートである。 第1の選定ブロックのブロックサイズを設定する方法のフローチャートである。 第2の制御にて生成された距離画像である。
図1から図19を参照して、実施の形態における三次元測定装置について説明する。本実施の形態の三次元測定装置は、第1の画像を撮像する第1のカメラおよび第2の画像を撮像する第2のカメラを含む視覚センサを備える。三次元測定装置は、第1の画像および第2の画像に基づいて、物体の表面の位置情報を生成する。特に、物体の表面に設定される3次元の測定点の情報を含む位置情報を生成する。
図1は、本実施の形態におけるロボット装置の斜視図である。図2は、本実施の形態におけるロボット装置のブロック図である。図1および図2を参照して、ロボット装置3は、ワーク61,62を把持するハンド5と、ハンド5を移動するロボット1とを備える。ロボット装置3は、ロボット装置3を制御する制御装置2を備える。ロボット装置3は、物体としてのワーク61,62の表面に対応する3次元の測定点の位置情報を生成するための視覚センサ30を備える。
本実施の形態のワーク61,62は、直方体状の段ボール箱である。ハンド5は、ワーク61,62を把持したり解放したりするエンドエフェクタである。本実施の形態のハンド5は、ワーク61,62の表面を吸着により把持する吸着ハンドである。ロボット1に取り付けられるエンドエフェクタとしては、この形態に限られず、ロボット装置3が行う作業に応じた任意の作業ツールを採用することができる。例えば、エンドエフェクタとして、溶接を実施する作業ツールまたはシール材をワークの表面に塗布する作業ツール等を採用することができる。すなわち、本実施の形態の三次元測定装置は、任意の作業を行うロボット装置に適用することができる。
本実施の形態のロボット1は、複数の関節部18を含む多関節ロボットである。ロボット1は、上部アーム11と下部アーム12とを含む。下部アーム12は、旋回ベース13に支持されている。旋回ベース13は、ベース14に支持されている。ロボット1は、上部アーム11の端部に連結されているリスト15を含む。リスト15は、ハンド5を固定するフランジ16を含む。ロボット1の構成部材は、予め定められた駆動軸の周りに回転するように形成される。ロボットとしては、この形態に限られず、作業ツールを移動可能な任意のロボットを採用することができる。
図3に、本実施の形態におけるカメラの概略図を示す。本実施の形態の視覚センサ30は、第1のカメラ31および第2のカメラ32を含むステレオカメラである。カメラ31,32は、2次元の画像を撮像することができる2次元カメラである。カメラ31,32としては、CCD(Charge-Coupled Device)センサまたはCMOS(Complementary Metal-Oxide Semiconductor)センサなどの撮像素子を備えた任意のカメラを採用することができる。2台のカメラ31,32は互いに離れて配置されている。2台のカメラ31,32の相対的な位置は予め定められている。本実施の形態の2台のカメラ31,32は、それぞれのカメラ31,32の光軸が互いに平行になる様に配置されている。本実施の形態の視覚センサ30は、ワーク61,62に向かって縞模様などのパターン光を投影するプロジェクタ33を含む。カメラ31,32およびプロジェクタ33は、筐体34の内部に配置されている。
図1および図2を参照して、視覚センサ30は、支持部材66にて支持されている。本実施の形態の視覚センサ30の位置は固定されている。視覚センサ30は、ワーク61,62を撮像できる位置に配置されている。
三次元測定装置は、視覚センサ30により取得された画像を処理することにより、物体の表面の位置情報を、距離画像または三次元マップの形式にて生成することができる。距離画像とは、画像により物体の表面の位置情報を表現したものである。距離画像では、それぞれの画素の濃さ又は色により、物体の表面の位置または視覚センサ30からの距離を表している。一方で、三次元マップとは、画素に対応する物体の表面の測定点の座標値(x,y,z)の集合にて物体の表面の位置情報を表現したものである。本実施の形態の形態では、物体の表面の位置情報として距離画像を例に取り上げて説明する。
本実施の形態のロボット1は、上部アーム11等の構成部材を駆動するロボット駆動装置21を含む。ロボット駆動装置21は、上部アーム11、下部アーム12、旋回ベース13、およびリスト15を駆動するための複数の駆動モータを含む。ハンド5は、ハンド5を駆動するハンド駆動装置22を含む。本実施の形態のハンド駆動装置22は、空気圧によりハンド5を駆動する。ハンド駆動装置22は、吸着パッドの内部の空間を減圧するためのポンプおよび電磁弁等を含む。
制御装置2は、ロボット1およびハンド5を制御する。制御装置2は、プロセッサとしてのCPU(Central Processing Unit)を含む演算処理装置(コンピュータ)を備える。演算処理装置は、CPUにバスを介して互いに接続されたRAM(Random Access Memory)およびROM(Read Only Memory)等を有する。本実施の形態のロボット装置3は、動作プログラム41に基づいてワーク61,62を自動的に搬送する。ロボット駆動装置21およびハンド駆動装置22は、制御装置2により制御されている。
制御装置2は、ロボット装置3の制御に関する情報を記憶する記憶部42を含む。記憶部42は、揮発性メモリ、不揮発性メモリ、またはハードディスク等の情報を記憶可能な記憶媒体にて構成されることができる。制御装置2には、ロボット1の動作を行うために予め作成された動作プログラム41が入力される。動作プログラム41は、記憶部42に記憶される。
制御装置2は、動作指令を送出する動作制御部43を含む。動作制御部43は、動作プログラム41に基づいてロボット1を駆動するための動作指令をロボット駆動部44に送出する。ロボット駆動部44は、駆動モータを駆動する電気回路を含む。ロボット駆動部44は、動作指令に基づいてロボット駆動装置21に電気を供給する。また、動作制御部43は、ハンド駆動装置22を駆動する動作指令をハンド駆動部45に送出する。ハンド駆動部45は、ポンプ等を駆動する電気回路を含む。ハンド駆動部45は、動作指令に基づいてポンプ等に電気を供給する。
動作制御部43は、動作プログラム41に従って駆動するプロセッサに相当する。プロセッサが動作プログラム41を読み込んで、動作プログラム41に定められた制御を実施することにより、動作制御部43として機能する。
ロボット1は、ロボット1の位置および姿勢を検出するための状態検出器を含む。本実施の形態における状態検出器は、ロボット駆動装置21の各駆動軸の駆動モータに取り付けられた位置検出器23を含む。位置検出器23の出力により、ロボット1の位置および姿勢が検出される。状態検出器としては、駆動モータに取り付けられた位置検出器に限られず、ロボット1の位置および姿勢の検出が可能な任意の検出器を採用することができる。
制御装置2は、作業者がロボット装置3を手動にて操作する操作盤としての教示操作盤49を含む。教示操作盤49は、ロボット1、ハンド5、および視覚センサ30に関する情報を入力する入力部49aを含む。入力部49aは、キーボードおよびダイヤルなどの部材により構成されている。教示操作盤49は、ロボット装置3の制御に関する情報を表示する表示部49bを含む。表示部49bは、液晶表示パネル等の表示パネルにて構成されている。
本実施の形態のロボット装置3には、ロボット1の位置および姿勢が変化した時に不動のワールド座標系71が設定されている。図1に示す例では、ロボット1のベース14に、ワールド座標系71の原点が配置されている。ワールド座標系71は基準座標系とも称される。ワールド座標系71では、原点の位置が固定され、更に、座標軸の向きが固定されている。ロボット1の位置および姿勢が変化してもワールド座標系71の位置および姿勢は変化しない。
また、ロボット装置3には、作業ツールの任意の位置に設定された原点を有するツール座標系72が設定されている。ツール座標系72は、ハンド5と共に位置および姿勢が変化する。本実施の形態では、ツール座標系72の原点は、ツール先端点に設定されている。更に、ロボット装置3では、視覚センサ30に対してカメラ座標系73が設定されている。カメラ座標系73は、原点が視覚センサ30に固定された座標系である。
ロボット1の位置および姿勢が変化すると、ツール座標系72の原点の位置および姿勢が変化する。例えば、ロボット1の位置は、ツール先端点の位置(ツール座標系72の原点の位置)に対応する。また、ロボット1の姿勢は、ワールド座標系71に対するツール座標系72の姿勢に対応する。
本実施の形態のロボット装置3は、ワーク61,62を検出する三次元測定装置を含む。本実施の形態では、制御装置2が三次元測定装置として機能する。三次元測定装置は、視覚センサ30と、ワーク61,62の輪郭を検出するための輪郭検出センサと、第1のカメラ31にて撮像された第1の画像および第2のカメラ32にて撮像された第2の画像に基づいて、ワーク61,62の表面の位置情報を検出する処理部51とを含む。
輪郭検出センサは、2次元の画像において、物体の段差部、凹部、凸部、および外縁等の輪郭を検出可能な任意のセンサを採用することができる。本実施の形態では、視覚センサ30の第1のカメラ31が、輪郭検出センサとして機能する。第1のカメラ31にて撮像した2次元の第1の画像に基づいて、ワーク61,62の表面における輪郭を検出する。この構成より、視覚センサ30の他に輪郭検出センサを配置する必要が無く、三次元測定装置の構成を簡易にすることができる。なお、第2のカメラ32を輪郭検出センサとして使用しても構わない。または、輪郭検出センサとして、視覚センサ30以外の2次元カメラ等がロボット装置に配置されていても構わない。
処理部51は、輪郭検出センサの出力に基づいて、物体の輪郭を検出する輪郭検出部52を含む。処理部51は、第1の画像において複数の画素にて構成された選定ブロックを設定し、第2の画像において選定ブロックに対応する特定ブロックを探索するブロック探索部53を含む。処理部51は、選定ブロックにおける選定画素の位置と特定ブロックにおける選定画素に対応する特定画素の位置との視差に基づいて、画素の距離情報を算出する算出部54を含む。処理部51は、複数の画素の距離情報を含む物体の表面の位置情報を生成する生成部55を含む。処理部51は、互いに異なる条件にて生成された物体の表面の位置情報を合成する合成部56を含む。
また、処理部51は、視覚センサ30に画像を撮像する指令を送出する撮像制御部57を含む。処理部51は、合成後の物体の表面の位置情報に基づいて、ロボット1を駆動する動作指令を生成する動作指令部58を含む。
上記の処理部51は、動作プログラム41に従って駆動するプロセッサに相当する。特に、輪郭検出部52、ブロック探索部53、算出部54、生成部55、および合成部56のそれぞれのユニットは、動作プログラム41に従って駆動するプロセッサに相当する。また、撮像制御部57および動作指令部58は、動作プログラム41に従って駆動するプロセッサに相当する。プロセッサが動作プログラム41を読み込んで、動作プログラム41に定められた制御を実施することにより、それぞれのユニットとして機能する。
本実施の形態のロボット装置3は、ハンド5がワーク61,62を把持する前に、視覚センサ30の出力に基づいてワーク61,62の距離画像を生成する。撮像制御部57は、視覚センサ30に画像を撮像する指令を送出する。処理部51は、視覚センサ30の第1のカメラ31および第2のカメラ32にて撮像された画像に基づいて、ワーク61,62の表面の位置情報を生成する。表面の位置情報は、例えば、カメラ座標系73にて生成される。処理部51は、ワールド座標系71に対するカメラ座標系73の位置および姿勢に基づいて、カメラ座標系73にて表現される表面の位置情報をワールド座標系71にて表現される表面の位置情報に変換することができる。
処理部51の動作指令部58は、ワーク61の表面の位置情報に基づいて、ワーク61の表面の形状および位置を検出する。動作指令部58は、ハンド5にてワーク61の表面を把持できるように、ロボット1の動作指令を動作制御部43に送出する。動作制御部43は、動作指令に基づいてロボット1の位置および姿勢を変更した後に、ハンド5にてワーク61を把持する。そして、ロボット1は、動作プログラム41に基づいて、ワーク61を目標位置まで搬送する。次に、ロボット装置3は、ワーク62の表面の位置情報に基づいてワーク62を把持した後に、ワーク62を搬送する。このように、ロボット装置3は、ワーク61,62の位置を検出して、ワーク61,62を搬送することができる。
次に、本実施の形態の三次元測定装置にて距離画像を生成する制御について説明する。本実施の形態の三次元測定装置は、互いに異なる複数の条件にて距離画像を生成し、複数の距離画像を合成した合成距離画像を生成する。
図4に、第1のカメラにて撮像された第1の画像および第2のカメラにて撮像された第2の画像を示す。視覚センサ30は、第1のカメラ31にて第1の画像77を撮像する。視覚センサ30は、第2のカメラ32にて第2の画像78を撮像する。第1の画像77および第2の画像78は、2次元画像である。それぞれの画像77,78は、複数の画素にて構成されている。それぞれの画像77,78には、画像における予め定められた点を原点とするスクリーン座標系74が設定されている。スクリーン座標系74にて表現される画像における位置は、それぞれのカメラ31,32の内部に配置されている撮像素子における位置に対応する。
図5に、ブロックマッチングを行っているときの第1の工程を説明する選定ブロックおよび探索ブロックの図を示す。図5には、第1の画像77に設定される選定ブロック81および第2の画像78に設定される探索領域84の拡大図が示されている。図2、図4、および図5を参照して、処理部51のブロック探索部53は、第1の画像77に含まれる画素85のうち、1つの画素を選定画素85aとして選定する。ブロック探索部53は、選定画素85aおよび選定画素85aの周りの画素85を含む選定ブロック81を設定する。
本実施の形態における選定ブロック81では、複数の画素85が選定画素85aを取り囲むように設定されている。図5に示される選定ブロック81では、第1の画像77の横方向(スクリーン座標系74のY軸方向)に3個の画素85が選択され、縦方向に3個の画素85が選択されている。選定ブロック81の大きさとしてのブロックサイズは、この形態に限られず、任意の個数の画素を含むことができる。また、本実施の形態においては、選定ブロック81の中央に選定画素85aが配置されているが、この形態に限られず、選定画素85aは、選定ブロック81の任意の位置に配置することができる。
ブロック探索部53は、第2の画像78において、選定ブロック81に対応する特定ブロック82を探索するブロックマッチングの制御を行う。それぞれの画素85には、濃度、輝度、または、色の情報などが数値化された画素の値が設定されている。ブロック探索部53は、これらの画素の値が良く対応するブロックを第2の画像78から探索する。そして、ブロック探索部53は、このブロックを特定ブロック82として設定する。
ブロック探索部53は、選定ブロック81に対応する特定ブロック82を検出するために第2の画像78に探索領域84を設定する。探索領域84は、例えば、選定ブロック81と同一の位置を通り、エピポーラ線に平行な領域を設定することができる。探索領域84の高さは、選定ブロック81の高さと同一にすることができる。本実施の形態においては、第2の画像78において、スクリーン座標系74のY軸の方向に延びるように探索領域84が設定されている。ブロック探索部53は、探索領域84において探索ブロック83を選定する。探索ブロック83の形状および大きさは、選定ブロック81の大きさおよび形状と同一になるように設定することができる。
図5に示す例においては、探索領域84において探索ブロック83aが設定されている。本実施の形態におけるブロック探索部53は、SAD(Sum of Absolute Difference)法によりブロックマッチングを実施する。ブロック探索部53は、探索ブロック83aに含まれる画素86の値と、選定ブロック81に含まれる画素85の値とに基づいて、スコアSC1を算出する。スコアは、それぞれのブロック81,83aにおいて、互いに対応する画素同士の画素の値の差の大きさを積算した積算値である。このスコアは、マッチングスコアとも称される。図5に示す例においては、スコアSC1は、以下の式(1)にて算出される。
SC1=|5-4|+|3-3|+|4-4|+|5-5|+|6-7|+|5-3|+|6-6|+|8-8|+|8-7|=5 …(1)
次に、ブロック探索部53は、矢印101に示すように、探索領域84に沿って探索ブロック83の位置を移動する。本実施の形態では、一個の画素86の幅の距離にて探索ブロック83をずらしている。探索ブロック83を移動する距離としては、この形態に限られず、2個以上の画素の幅の距離であっても構わない。
図6に、ブロックマッチングを行っているときの第2の工程を説明する選定ブロックおよび探索ブロックの図を示す。図5および図6を参照して、ブロック探索部53が探索ブロック83をずらすことにより、探索ブロック83bが設定されている。ブロック探索部53は、選定ブロック81に含まれる画素85の値および探索ブロック83bに含まれる画素86の値に基づいて、スコアSC2を算出する。図6に示す例においては、スコアSC2は、以下の式(2)になる。
SC2=|5-3|+|3-4|+|4-8|+|5-7|+|6-3|+|5-9|+|6-8|+|8-7|+|8-10|=21 …(2)
このように、ブロック探索部53は、探索領域84に沿って、探索ブロック83の位置をずらしながら、スコアを算出する。ブロック探索部53は、探索領域84の一方の端から他方の端まで探索ブロック83を移動する。ブロック探索部53は、探索ブロック83の位置を少しずつずらしながら、それぞれの探索ブロック83の位置におけるスコアを算出する。本実施の形態においては、スコアが小さいほど、探索ブロック83が選定ブロック81により良く対応していると判定する。上記の例では、図5に示す探索ブロック83aは、図6に示す探索ブロック83bよりも、選定ブロック81に良く対応していると判断される。
ブロック探索部53は、それぞれの探索ブロック83の位置のうち、最もスコアの低い位置の探索ブロック83を、選定ブロック81に対応する特定ブロック82として設定する。このように、ブロック探索部53は、選定ブロック81に含まれる画素85の値が近い探索ブロック83を、特定ブロック82として設定することができる。
なお、ブロック探索部は、選定ブロックに含まれる画素の値と探索ブロックに含まれる画素の値との差の2乗の値を積算した積算値をスコアとして計算しても構わない。この方法は、SSD(Sum of Squared Difference)法と称される。この方法においても、スコアの値が小さいほど、2つのブロックが良く対応していると判断することができる。
このように、ブロック探索部53は、ブロックマッチングを行うことにより、選定ブロック81に最も良く対応する特定ブロック82を探索することができる。次に、ブロック探索部53は、選定ブロック81および特定ブロック82にて算出されるスコアを、予め定められた判定値と比較する。本実施の形態では、スコアに対する判定値が予め定められている。ブロック探索部53は、スコアが判定値未満である場合には、特定ブロック82に含まれる画素86が選定ブロック81に含まれる画素85に対応すると判定する。ブロック探索部53は、特定ブロック82において、選定画素85aに対応する特定画素を選定する。図5に示す探索ブロック83aが特定ブロック82に設定された場合には、探索ブロック83aの中央に配置されている画素が特定画素になる。
一方で、ブロック探索部53は、スコアが判定値以上の場合には、特定ブロック82が選定ブロック81に十分に対応していないと判断する。ブロック探索部53は、選定画素85aの距離情報として無効画素である情報を設定する。無効画素とは、具体的な距離および具体的な測定点の位置等の情報を含まない画素である。また、ブロック探索部53は、選定ブロックに対応する特定ブロックが検出されない場合に、選定画素の距離情報として無効画素である情報を設定する。
ブロック探索部53は、第1の画像77に含まれる全ての画素を選定画素に選定して、上記と同様の制御を実施することができる。第1の画像77に含まれる画素85に対して特定ブロック82および特定画素が設定される。または、画素85が無効画素に設定される。なお、ブロック探索部53は、第1の画像77の予め定められた領域内に配置されている画素に対して、上記と同様の制御を実施しても構わない。
次に、算出部54は、選定ブロック81における選定画素85aの位置と、特定ブロック82における特定画素の位置の視差を算出する。算出部54は、この視差に基づいて、視覚センサ30から物体の表面までの距離を算出する。特に、算出部54は、選定画素85aおよび特定画素に対応する物体の表面の測定点までの距離を算出する。また、算出部54は、算出した距離に基づいて、物体の表面の測定点の位置を算出しても構わない。この測定点の位置は、カメラ座標系73にて算出することができる。
算出部54は、第1の画像77のそれぞれの画素85に対して、画素の距離情報を設定する。画素の距離情報は、例えば、視覚センサ30から測定点までの距離または測定点の位置の情報等である。また、前述の通りに、画素の距離情報には、無効画素であるという情報が含まれる。なお、画素の距離情報は、測定点の位置に関する情報であるために測定点の距離情報に相当する。
生成部55は、それぞれの画素の距離情報を用いて、複数の画素の距離情報を含む物体の表面の位置情報を生成する。ここでの例では、生成部55は、視覚センサ30から物体までの距離に応じて画素の色の濃度を設定する。それぞれの画素に対して、距離に応じた濃度の画像を設定することにより、距離画像を生成することができる。
図7に、距離画像の例を説明するための視覚センサおよびワークの斜視図を示す。この例においては、架台67の表面にワーク63が配置されている。ワーク63は、架台67の表面に対して傾くように配置されている。架台67の表面は、視覚センサ30のカメラ31,32の光軸に対して垂直に延びている。視覚センサ30のカメラ31,32にて撮像された画像を処理することにより、矢印102,103に示すように、ワーク63の表面に設定された測定点の距離情報を検出することができる。
図8に、図7の視覚センサによって得られた距離画像を示す。図7および図8を参照して、ここでの例では、視覚センサ30からの距離が遠くなるほど色が濃くなるように距離画像91が生成されている。ワーク63の表面では、視覚センサ30に近くなるほど色が薄くなっている。架台67の表面は、遠い位置にあるため、最も濃い色が画素に設定されている。
ワーク63の外縁に対応する領域では、画素の距離情報として無効画素である情報が設定されている。無効画素により無効画素領域97が形成されている。ここでの例では、無効画素に対しては色を付けないように距離画像91が生成されている。また、架台67の外側の領域にも、無効画素領域97が形成されている。
ところで、ブロック探索部53が行うブロックマッチングにおいて、スコアの判定値を大きく設定すると、無効画素に設定されない特定ブロックが多く残存する。この結果、具体的な距離等の情報が含まれる画素の個数は多くなる。しかしながら、ワークの段差部または外縁などのブロックマッチングの信頼性の低い部分においても具体的な距離等の情報を含む画素が設定される。この結果、距離画像の信頼性は低下する。例えば、ワークの外縁、凸部、凹部、または段差部などでは、輪郭が消失した距離画像が生成される場合がある。
一方で、スコアの判定値を小さく設定すると、選定ブロックにおける複数の画素の値と、特定ブロックにおける複数の画素の値とが近い値でなければ、選定画素は無効画素に設定される。すなわち、ブロックマッチングの信頼性が低い部分は、無効画素に設定される。ワークの段差部または外縁等の部分は、信頼性の低い箇所であり、無効画素が設定される。この無効画素により無効画素領域が生成され、ワークの外縁または段差部等の細かい輪郭を検出することができる。ところが、画像の全体に亘ってスコアの判定値を小さくしてブロックマッチングを行うと、具体的な距離等の情報を含む画素の個数が少なくなる。例えば、物体の表面の位置を検出するための測定点の個数が少なくなってしまうという問題がある。
本実施の形態における第1の制御では、スコアに関する第1の判定値と、第1の判定値よりも大きな第2の判定値とを予め定めておく。そして、第1の判定値を用いて第1の距離画像を生成し、第2の判定値を用いて第2の距離画像を生成する。第1の距離画像は、第1の表面の位置情報に相当し、第2の距離画像は第2の表面の位置情報に相当する。輪郭検出センサとしての第1のカメラの画像に基づいて物体の輪郭を予め検出する。そして、物体の輪郭に対応する領域に含まれる画素に対して、第1の距離画像に含まれる画素の距離情報を採用する。輪郭に対応する領域以外の領域に含まれる画素に対して、第2の距離画像に含まれる画素の距離情報を採用する。このように、第1の距離画像と第2の距離画像とを合成した合成距離画像を生成する。
ここで、輪郭検出部52がワーク61,62の輪郭を検出する制御について説明する。図9に、本実施の形態のロボット装置3において、第1のカメラ31にて撮像した2次元の画像を示す。ワーク61,62の輪郭を検出する制御においては、プロジェクタ33は使用せずに2次元の画像96を撮像する。すなわち、プロジェクタ33にて生成されるワーク61,62の表面に縞模様などのパターンは生じない。画像96には、ワーク61の画像およびワーク62の画像が含まれている。ワーク61とワーク62との間には、僅かな隙間が存在する。この隙間の部分は暗くなっている。処理部51の輪郭検出部52は、画像96を用いてワーク61,62における輪郭を検出する。より詳細には、輪郭検出部52は、画像96における輪郭の画素の位置を検出する。
本実施の形態における輪郭検出部52は、始めに、画像96のそれぞれの画素に対してソーベルフィルタを用いて処理を行う。ソーベルフィルタにて処理を行った画像に対して、互いに隣り合う2つの画素を選択する。そして、2つ画素同士の間における輝度勾配を算出する。すなわち、2つの画素に対するコントラストを算出する。そして、コントラストが予め定められたコントラストの閾値を超える場合には、その画素が物体の輪郭であると判別する。
図10に、物体の輪郭を検出するためのコントラストの閾値を設定する方法のフローチャートを示す。作業者は、コントラストの閾値を変更して実際に生成される輪郭の画像を見ることによりコントラストの閾値を設定することができる。
ステップ111において、作業者は、コントラストの閾値を任意の値に設定する。例えば経験則に基づいてコントラストの閾値を設定する。次に、ステップ112において、作業者は、教示操作盤49を操作することにより、第1のカメラ31にて2次元の画像を撮像する。
ステップ113において、輪郭検出部52は、画像に対してソーベルフィルタの処理を行う。輪郭検出部52は、コントラストの閾値に基づいて輪郭となる画素を検出する。輪郭検出部52は、例えば輪郭となる画素に対して黒以外の色を付した画像を生成する。ステップ114において、教示操作盤49の表示部49bは、輪郭の画像を画像96に重ねて表示する。ステップ115において、作業者は、輪郭の画像を見て、所望の輪郭が含まれているか否かを判定する。ステップ115において、所望の輪郭が得られていない場合に、工程はステップ111に戻る。
ステップ111において、作業者は新たなコントラストの閾値を設定する。例えば、コントラストの閾値が大きい場合には、互いに隣り合う画素における輝度勾配が大きくないと輪郭として検出されない。輪郭の画像に明確な輪郭が表示されない場合に、作業者は、コントラストの閾値を小さくすることができる。例えば、ワーク61,62同士の間の隙間が明確になるように輪郭が表示されていない場合に、作業者はコントラストの閾値を小さくすることができる。これとは反対に、輪郭が多く出すぎている場合には、作業者は、コントラストの閾値を大きくすることができる。そして、ステップ112からステップ115の工程を繰り返す。
ステップ115において、所望の輪郭が得られている場合に、作業者は、その時のコントラストの閾値を採用することができる。このように、作業者は、コントラストの閾値を設定することができる。
なお、2次元画像における輪郭の検出は、この形態に限られず、任意の方法にて行うことができる。例えば、2次元カメラにて得られた画像を2値化することにより、輪郭を検出しても構わない。
図11に、本実施の形態における第1の制御のフローチャートを示す。図2および図11を参照して、処理部51の撮像制御部57は、ステップ131において、第1のカメラ31にて第1の画像を撮像する。また、撮像制御部57は、第2のカメラ32にて第2の画像を撮像する。
次に、ステップ132において、輪郭検出部52は、第1のカメラ31にて撮像した第1の画像を用いて物体の輪郭を検出する。本実施の形態においては、物体の輪郭を検出する際に第1の画像を用いているが、この形態に限られず、第2の画像を用いて輪郭を検出しても構わない。
また、作業者は、第1のスコアの判定値および第2のスコアの判定値を設定して記憶部42に記憶させておく。第2のスコアの判定値は、第1のスコアの判定値よりも大きく設定されている。
ステップ133において、処理部51は、予め定められた第1のスコアの判定値、第1の画像、および第2の画像を用いて、第1の距離画像を生成する。より具体的には、ブロック探索部53は、第1の画像において選定ブロックを設定する。ブロック探索部53は、第2の画像において、選定ブロックに最も対応する特定ブロックを検出する。ここで、ブロック探索部53は、スコアが第1のスコアの判定値以上である場合には、選定ブロックの選定画素の距離情報として無効画素である情報を設定する。算出部54は、無効画素以外の画素について、ワークの表面における測定点に対応する画素の距離情報を算出する。生成部55は、複数の画素の距離情報を統合することにより第1の距離画像を生成する。ステップ134においては、ステップ133と同様に、処理部51は、第2のスコアの判定値、第1の画像、および第2の画像を用いて第2の距離画像を生成する。
ステップ135において、合成部56は、輪郭検出部52にて検出されたワーク61,62の輪郭に基づいて輪郭に対応する領域を設定する。より具体的には、合成部56は、輪郭となる画素を取得し、輪郭となる画素の周りに輪郭に対応する領域を設定する。そして、合成部56は、ワーク61,62の輪郭に対応する領域に含まれる画素と、輪郭に対応する領域以外の領域に含まれる画素とを特定する。
図12に、輪郭に対応する画素が示された画像の拡大図である。図12に示す画像は、例えば、第1のカメラ31にて撮像した画像の拡大図である。この画像は、複数の画素87により構成されている。輪郭検出部52は、輪郭となる画素87aの位置を検出している。ここでの例では、画素87aは直線状に並んでいる。画素87aの形状の重心である中央点87aaを通る線89は、物体の輪郭線に相当する。合成部56は、線89に対して幅dの領域を輪郭に対応する領域として設定する。幅dは、作業者が予め設定することができる。例えば、幅dは、数個の画素の長さを設定することができる。
合成部56は、輪郭に対応する領域に含まれる画素87bと、輪郭に対応する領域以外の領域に含まれる画素87cとを特定する。この時に、一部が輪郭に対応する領域に配置されている画素87dは、輪郭に対応する領域内に配置されていると判定することができる。または、一部が輪郭に対応する領域に配置されている画素87dは、輪郭に対応する領域以外の領域に配置されていると判定しても構わない。
図12に示す例では、輪郭となる画素87aは、複数の画素87が並ぶ方向に沿って直線状に並んでいるが、この形態に限られない。輪郭となる画素は複数の画素が並ぶ方向に対して傾斜する方向に並ぶ場合が有る。または、輪郭となる画素は曲線状に並ぶ場合がある。このような場合にも、輪郭に対応する領域は、輪郭となる画素に基づいて任意の方法にて設定することができる。例えば、互いに隣り合う輪郭となる画素の中央点同士を結ぶ直線を算出する。そして、中央点同士を結ぶ直線に対して垂直な方向に幅dの領域を設定する。この制御を、それぞれの輪郭となる画素に対して実施することにより、輪郭に対応する領域を設定することができる。または、輪郭となるそれぞれの画素の中央点から予め定められた方向に幅dの領域を設定する。更に、中央点から予め定められた方向に垂直な方向に幅dの領域を設定する。この制御を、それぞれの輪郭となる画素に対して実施することにより、輪郭に対応する領域を設定することができる。
図11を参照して、ステップ136においては、合成部56は、第1の距離画像、第2の距離画像、および輪郭に対応する領域に基づいて合成距離画像を生成する。
図13に、合成部が合成距離画像を生成する制御のフローチャートを示す。ステップ141において、合成部56は、例えば、第1のカメラ31にて撮像された第1の画像に含まれる1個の画素を選択する。ステップ142において、合成部56は、1つの画素が輪郭に対応する領域の内部に配置されているか否かを判定する。ステップ142において、1つの画素が輪郭に対応する領域の内部に配置されている場合には、制御は、ステップ143に移行する。
ステップ143において、合成部56は、輪郭に対応する領域に含まれる画素に対して、第1の距離画像に含まれる画素の距離情報を採用する。すなわち、合成部56は、第1の距離画像において1つの画素に対応する画素を検出する。合成部56は、1つの画素の距離情報を第1の距離画像の画素の距離情報に設定する。第1の距離画像の画素の距離情報が無効画素である情報の場合には、1つの画素を無効画素に設定する。
ステップ142において、1つの画素が輪郭に対応する領域の外側に配置されている場合に、制御は、ステップ144に移行する。ステップ144において、合成部56は、輪郭に対応する領域以外の領域に配置されている画素に対しては、第2の距離画像における画素の距離情報を採用する。第2の距離画像の画素の距離情報が無効画素である情報の場合には、1つの画素を無効画素に設定する。
次に、ステップ145において、合成部56は、全ての画素に距離情報を設定したか否かを判定する。ステップ145において少なくとも一つの画素に対して距離情報を設定していない場合に、制御はステップ141に移行する。そして、ステップ141において他の画素を選択して、ステップ142からステップ145の制御を繰り返す。このように、全ての画素に対して距離情報を設定する。
ステップ145において、全ての画素において距離情報が設定されている場合に、制御は、ステップ146に移行する。ステップ146において、合成部56は、それぞれの画素の距離情報を統合した合成距離画像を生成する。
図14に、第1の制御にて生成された合成距離画像の例を示す。距離画像92では、画素の距離情報は、色の濃さにて表現されている。また、無効画素に対しては、色が付けられていない。ワーク61とワーク62との間に存在する隙間には、無効画素にて構成された無効画素領域97が生成されている。また、それぞれのワーク61,62の上面の縁部以外の領域では、無効画素が少なく、それぞれの画素の距離情報に具体的な距離または位置の情報が含まれている。すなわち、ワーク61,62の上面の縁部以外の領域では、多くの測定点が検出されている。
図15に、比較例の距離画像の例を示す。比較例の距離画像93においては、全ての画素に対して、ブロックマッチングを行うときのスコアの判定値を大きく設定している。例えば、距離画像93は、第2のスコアの判定値を用いて生成した第2の距離画像である。この例では、多くの画素に対して具体的な距離または位置の情報を含む距離情報が設定されている。すなわち、多くの測定点が検出されている。ところが、ワーク61とワーク62との間に存在する隙間においても、具体的な距離または位置の情報を含む距離情報が設定されている。このために、距離画像93では、ワーク61とワーク62との間に存在する隙間が消失している。このように、ワーク61,62の外縁などの部分においては、画素の距離情報の信頼性は低くなる。
図14を参照して、これに対して、本実施の形態の第1の制御では、輪郭に対応する領域ではスコアの判定値が小さく設定されるために、ワーク61,62の外縁に対応する領域に無効画素にて構成される無効画素領域97が発現している。第1のワーク61と第2のワーク62との間の隙間が明確に表現されている。このように、第1のワーク61と第2のワーク62とを明確に分離することができる。
処理部51の動作指令部58は、2個のワーク61,62が存在することを検出することができる。また、それぞれのワーク61,62の上面の外縁から離れた領域では、多くの測定点が検出されている。このために、動作指令部58は、多くの測定点の距離情報に基づいてロボット1を駆動することができる。例えば、動作指令部58は、ワーク61の上面の重心位置にハンド5が配置されるように、ロボット1を駆動することができる。
このように、第1の制御においては、それぞれの画素が輪郭に対応する領域に含まれるか否かを判断して、それぞれの画素ごとに、第1の距離画像における画素の距離情報または第2の距離画像における画素の距離情報を設定する。このために、輪郭が存在する領域では、無効画素により細かい形状が明確な距離画像を得ることができる。一方で、輪郭が存在する領域以外の領域では、大きなスコアの判定値を用いた距離画像における距離情報が採用されるために、多くの測定点を得ることができる。物体の表面の位置情報の精度が向上した三次元測定装置を提供することができる。
図16に、本実施の形態における第1のスコアの判定値の設定方法について説明する。第1のスコアの判定値および第2のスコアの判定値は、作業者が実際に生成される距離画像を見ながら設定することができる。例えば、作業者は、実際の作業を行うワークの距離画像を生成することによりスコアの判定値を設定することができる。
ステップ121において、作業者は、第1のスコアの判定値を設定する。例えば、作業者は、経験則に基づいて任意の第1のスコアの判定値を設定する。ステップ122において、作業者は、教示操作盤49を操作することにより、第1のカメラ31および第2のカメラ32にて画像を撮像する。
ステップ123において、処理部51は、第1のスコアの判定値、第1の画像、および第2の画像に基づいて距離画像を生成する。ステップ124において、教示操作盤49の表示部49bは、距離画像を表示する。例えば、図15に示されるような距離画像が表示される。
ステップ125において、作業者は、所望の距離画像が得られているか否かを判定する。ここでは、第1のスコアの判定値を設定するために、ワーク61,62同士の間に、無効画素領域97が形成されているか否かを判定する。スコアの判定値を大きくしすぎると、無効画素領域97が少なくなったり消失したりする。一方で、スコアの判定値を小さくしすぎると、ワーク61,62の外縁の領域以外の領域においても多くの無効画素領域97が生成されてしまう。この結果、ワーク61,62の表面に対応する具体的な距離等の情報を含む画素の個数が少なくなる。すなわち、ワーク61,62の上面に設定される測定点の個数が少なくなる。
ステップ125において、所望の距離画像が得られてない場合に、工程はステップ121に戻る。そして、作業者は、他の第1のスコアの判定値を設定する。作業者は距離画像を見て、ワークの外縁および段差部等の輪郭に無効画素領域97が生成されるように、第1のスコアの判定値を変更する。例えば、作業者は、ワーク61,62同士の間に、無効画素領域97が生成されていない場合に、第1のスコアの判定値を小さく設定する。また、作業者は、無効画素領域97が多く形成されている場合には、第1のスコアの判定値を大きく設定する。そして、作業者は、ステップ122からステップ125の工程を繰り返す。ステップ125において、所望の距離画像が生成された場合には、その時の第1のスコアの判定値を採用することができる。
第2のスコアの判定値についても、図16と同様の方法にて設定することができる。作業者は、ステップ125において、距離画像においてワーク61,62の上面に対応する領域において、具体的な距離等の情報が設定された画素が多く存在するか否かを判定する。第2のスコアの判定値にて生成された距離画像においては、ワーク61,62同士の間に無効画素領域が発現しなくても構わない。第2のスコアの判定値は、第1のスコアの判定値よりも大きく設定される。処理部51は、このように設定した第1のスコアおよび第2のスコアを用いて、合成距離画像を生成することができる。
次に、本実施の形態における第2の制御について説明する。第2の制御においては、スコアの判定値を変更して複数の距離画像を撮像する代わりに、ブロックサイズを変更して複数の距離画像を撮像する。そして、ブロックサイズが互いに異なるように形成された複数の距離画像を合成して合成距離画像を生成する。
図4および図5を参照して、ブロックマッチングを行うときの選定ブロック81および探索ブロック83が多くの画素を含むようにブロックサイズを大きくすると、多くの画素同士の差を積算するために、視差を算出する精度が低下する。また、ブロックサイズを小さくした場合には、緩やかに画素の値が変化する領域においては、ブロックマッチングを行うことが困難になる場合がある。例えば、スコアが同一の多くの探索ブロックが検出される場合が有る。
第2の制御においては、作業者は、第1の選定ブロックと、第1の選定ブロックよりも多くの画素を含む第2の選定ブロックとを予め定める。すなわち、作業者は、ブロックサイズが互いに異なる選定ブロックを定める。第1の選定ブロックは、第2の選定ブロックよりもブロックサイズが小さい。例えば、第1の選定ブロックとしては、3行および3列のブロックを採用することができる。また、第2の選定ブロックとしては、9行および9列のブロックを採用することができる。
図17に、第2の制御のフローチャートを示す。図2および図17を参照して、ステップ131およびステップ132は、第1の制御における制御と同様である(図11を参照)。ステップ153において、ブロック探索部53、算出部54、および生成部55は、第1の画像、第2の画像、および第1の選定ブロックを用いて、第1の距離画像を生成する。ブロック探索部53は、第1の選定ブロックおよび第1の選定ブロックと同一のブロックサイズの探索ブロックを用いてブロックマッチングの制御を実施する。
ステップ154において、ブロック探索部53、算出部54、および生成部55は、第1の画像、第2の画像、および第2の選定ブロックを用いて、第2の距離画像を生成する。ブロック探索部53は、第2の選定ブロックおよび第2の選定ブロックと同一のブロックサイズの探索ブロックを用いてブロックマッチングの制御を実施する。
次に、ステップ135において、合成部56は、第1の制御と同様に、輪郭検出部52にて検出されたワーク61,62の輪郭となる画素を取得する。合成部56は、輪郭となる画素に基づいて輪郭に対応する領域を設定する。合成部56は、輪郭に対応する領域に含まれる画素および輪郭に対応する領域以外の領域に含まれる画素を特定する(図11および図12を参照)。
ステップ156において、合成部56は、合成距離画像を生成する。合成部56は、輪郭に対応する領域に含まれる画素に対しては、第1の選定ブロックにて生成された第1の距離画像に含まれる画素の距離情報を設定する。一方で、輪郭に対応する領域以外の領域に含まれる画素においては、第2の選定ブロックにて生成された第2の距離画像に含まれる画素の距離情報を設定する。このように、それぞれの画素に対して、第1の距離画像に含まれる画素の距離情報または第2の距離画像に含まれる画素の距離情報を設定することにより、合成距離画像を生成することができる。
図18に、第1の選定ブロックのブロックサイズを設定する方法のフローチャートを示す。作業者は、実際に生成される距離画像を見ながら第1の選定ブロックのブロックサイズを設定することができる。ステップ161において、作業者は、第1の選定ブロックを設定する。作業者は、経験等に基づいて任意のブロックサイズにて第1の選定ブロックを設定する。ステップ162において、作業者は、教示操作盤49を操作することにより、第1のカメラ31にておよび第2のカメラ32にて画像を撮像する。ステップ163において、処理部51は、第1の選定ブロックを用いて距離画像を生成する。そして、教示操作盤49の表示部49bは、距離画像を表示する。
ステップ165において、作業者は、所望の距離画像が得られているか否かを判定する。第1の選定ブロックにて生成される第1の距離画像では、ワークの外縁または段差部などの輪郭が明確に表示されていることが好ましい。例えば、ブロックサイズを大きくすると、ワーク61,62の輪郭が不鮮明になる。また、ワーク61,62同士の間の隙間が消失する場合がある。一方で、ブロックサイズを小さくしすぎると、所望の輪郭以外の輪郭が検出される場合が有る。
ステップ165において、所望の距離画像が得られていない場合に、工程は、ステップ161に移行する。ステップ161において、作業者は、ブロックサイズを変更した第1の選定ブロックを設定する。例えば、ワーク61,62同士の間の隙間が不鮮明である場合に、グロックサイズを小さくした第1の選定ブロックを設定することができる。そして、作業者は、ステップ162からステップ165を繰り返す。ステップ165において、所望の距離画像が得られている場合には、その時のブロックサイズの第1の選定ブロックを採用することができる。
第2の選定ブロックのブロックサイズについても、図18と同様の方法により設定することができる。例えば、作業者は、ステップ161,165において、ワーク61,62同士の間の隙間の輪郭が不鮮明になるように、第2の選定ブロックのブロックサイズを設定することができる。
図19に、第2の制御にて撮像された距離画像を示す。ワーク61,62の外縁が存在する領域では、ブロックサイズの小さな第1の選定ブロックにて生成された第1の距離画像に含まれる画素の距離情報が採用されている。例えば、ワーク61とワーク62との間の隙間が存在する領域では、第1の距離画像の画素の距離情報が採用されている。このために、距離画像94においては、ワーク61の外縁およびワーク62の外縁が明確に示されている。特に、ワーク61とワーク62との間の隙間が画素の濃さの差により明確に示されている。
一方で、ワーク61,62の輪郭以外の領域では、ブロックサイズの大きな第2のブロックサイズにて生成された第2の距離画像の画素の距離情報が採用されている。ワーク61,62の上面の中央部では、第2の距離画像の画素の距離情報が採用されている。このために、距離情報が正確な多くの測定点が設定されている。また、2次元画像における輝度または濃度等の画素の値の勾配の小さな領域であっても、正確なワーク61,62の表面の位置情報を検出することができる。
その他の制御については、第1の制御と同様であるので、ここでは説明を繰り返さない。
本実施の形態の視覚センサ30は、支持部材66に固定されているが、この形態に限られない。視覚センサは、ワークを撮像可能なように配置することができる。例えば、視覚センサは、ロボットのリストと一体的に移動するように、リストに固定されていても構わない。この場合に、ロボットにおけるカメラ座標系の位置は予め算出することができる。そして、カメラ座標系にて生成された物体の表面の位置情報は、ロボットの位置および姿勢に基づいて、ワールド座標系に変換することができる。
本実施の形態の視覚センサ30は、2台の2次元カメラを含むが、この形態に限られない。視覚センサは、3台以上の2次元カメラを含んでいても構わない。3次元センサが3台以上のカメラを含むことにより、一部の画像がハレーション等により不鮮明であっても、他のカメラにて撮像した画像に基づいて物体の表面の位置情報を生成することができる。また、本実施の形態の視覚センサはプロジェクタを備えるが、この形態に限られない。視覚センサは、プロジェクタを備えなくても構わない。
本実施の形態においては、ロボットを制御する制御装置が視覚センサの画像を処理する処理部として機能するが、この形態に限られない。処理部は、ロボットを制御する制御装置とは異なる演算処理装置(コンピュータ)にて構成されていても構わない。例えば、処理部として機能するタブレット端末が、ロボットを制御する制御装置に接続されていても構わない。
本実施の形態の三次元測定装置は、ロボット装置に配置されているが、この形態に限られない。三次元測定装置は、任意の装置に配置することができる。
上述のそれぞれの制御においては、機能および作用が変更されない範囲において適宜ステップの順序を変更することができる。
上記の実施の形態は、適宜組み合わせることができる。上述のそれぞれの図において、同一または相等する部分には同一の符号を付している。なお、上記の実施の形態は例示であり発明を限定するものではない。また、実施の形態においては、請求の範囲に示される実施の形態の変更が含まれている。
2 制御装置
23 位置検出器
30 視覚センサ
31 第1のカメラ
32 第2のカメラ
51 処理部
52 輪郭検出部
53 ブロック探索部
54 算出部
55 生成部
56 合成部
61,62,63 ワーク
77 第1の画像
78 第2の画像
81 選定ブロック
82 特定ブロック
85,86,87 画素
85a 選定画素
87a,87b,87c 画素
91,92,93,94 距離画像
96 画像
97 無効画素領域

Claims (3)

  1. 第1の画像を撮像する第1のカメラおよび第2の画像を撮像する第2のカメラを含む視覚センサと、
    物体の輪郭を検出するための輪郭検出センサと、
    第1の画像および第2の画像に基づいて、物体の表面の位置情報を検出する処理部とを備え、
    前記処理部は、前記輪郭検出センサの出力に基づいて物体の前記輪郭を検出する輪郭検出部と、
    第1の画像において選定された1つの選定画素を含む複数の画素にて構成された選定ブロックを設定し、第2の画像において選定ブロックに対応する特定ブロックを探索するブロック探索部と、
    選定ブロックにおける選定画素の位置と特定ブロックにおける選定画素に対応する特定画素の位置との視差に基づいて、画素の距離情報を算出する算出部と、
    複数の画素の距離情報を含む物体の表面の位置情報を生成する生成部と、
    互いに異なる条件にて生成された物体の表面の位置情報を合成する合成部と、を含み、
    前記ブロック探索部は、選定ブロックに含まれる画素の値と特定ブロックに含まれる画素の値との差の大きさまたは前記差の2乗の値を積算した積算値を算出し、前記積算値が予め定められた判定値未満である場合に、特定ブロックに含まれる画素が選定ブロックに含まれる画素に対応すると判定し、前記積算値が予め定められた判定値を超える場合または選定ブロックに対応する特定ブロックが検出されない場合に、選定画素の距離情報として無効画素である情報を設定し、
    前記積算値に関する第1の判定値と第1の判定値よりも大きな前記積算値に関する第2の判定値とが予め定められており、
    前記ブロック探索部、前記算出部、および前記生成部は、第1の画像、第2の画像、および第1の判定値を用いて第1の表面の位置情報を生成し、第1の画像、第2の画像、および第2の判定値を用いて第2の表面の位置情報を生成し、
    前記合成部は、前記輪郭検出部にて検出された前記輪郭に基づいて前記輪郭に対応する領域を設定し、前記輪郭に対応する領域に含まれる画素に対して、第1の表面の位置情報に含まれる画素の距離情報を採用し、前記輪郭に対応する領域以外の領域に含まれる画素に対して、第2の表面の位置情報に含まれる画素の距離情報を採用することにより、第1の表面の位置情報と第2の表面の位置情報とを合成した表面の位置情報を生成する、三次元測定装置。
  2. 第1の画像を撮像する第1のカメラおよび第2の画像を撮像する第2のカメラを含む視覚センサと、
    物体の輪郭を検出するための輪郭検出センサと、
    第1の画像および第2の画像に基づいて、物体の表面の位置情報を検出する処理部とを備え、
    前記処理部は、前記輪郭検出センサの出力に基づいて物体の前記輪郭を検出する輪郭検出部と、
    第1の画像において選定された1つの選定画素を含む複数の画素にて構成された選定ブロックを設定し、第2の画像において選定ブロックに対応する特定ブロックを探索するブロック探索部と、
    選定ブロックにおける選定画素の位置と特定ブロックにおける選定画素に対応する特定画素の位置との視差に基づいて、画素の距離情報を生成する算出部と、
    複数の画素の距離情報を含む物体の表面の位置情報を生成する生成部と、
    互いに異なる条件にて生成された物体の表面の位置情報を合成する合成部と、を含み、
    第1の選定ブロックと、第1の選定ブロックよりも多くの画素を含む第2の選定ブロックとが予め定められており、
    前記ブロック探索部、前記算出部、および前記生成部は、第1の画像、第2の画像、および第1の選定ブロックを用いて第1の表面の位置情報を生成し、第1の画像、第2の画像、および第2の選定ブロックを用いて第2の表面の位置情報を生成し、
    前記合成部は、前記輪郭検出部にて検出された前記輪郭に基づいて前記輪郭に対応する領域を設定し、前記輪郭の画素を含む前記輪郭に対応する領域に含まれる画素に対して、第1の表面の位置情報に含まれる画素の距離情報を設定し、前記輪郭に対応する領域以外の領域に含まれる画素に対して、第2の表面の位置情報に含まれる画素の距離情報を設定することにより、第1の表面の位置情報と第2の表面の位置情報とを合成した表面の位置情報を生成する、三次元測定装置。
  3. 前記輪郭検出センサは、第1のカメラまたは第2のカメラである、請求項1または2に記載の三次元測定装置。
JP2022505175A 2020-03-05 2021-02-26 複数のカメラにて撮像された画像に基づいて物体の表面の位置情報を生成する三次元測定装置 Active JP7448633B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2020038173 2020-03-05
JP2020038173 2020-03-05
PCT/JP2021/007347 WO2021177163A1 (ja) 2020-03-05 2021-02-26 複数のカメラにて撮像された画像に基づいて物体の表面の位置情報を生成する三次元測定装置

Publications (2)

Publication Number Publication Date
JPWO2021177163A1 JPWO2021177163A1 (ja) 2021-09-10
JP7448633B2 true JP7448633B2 (ja) 2024-03-12

Family

ID=77613040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022505175A Active JP7448633B2 (ja) 2020-03-05 2021-02-26 複数のカメラにて撮像された画像に基づいて物体の表面の位置情報を生成する三次元測定装置

Country Status (5)

Country Link
US (1) US20230129785A1 (ja)
JP (1) JP7448633B2 (ja)
CN (1) CN115280096A (ja)
DE (1) DE112021001440T5 (ja)
WO (1) WO2021177163A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114930800B (zh) * 2020-01-09 2024-05-28 索尼集团公司 图像处理装置、图像处理方法和成像装置
US20230419523A1 (en) * 2022-06-28 2023-12-28 Zebra Technologies Corporation Method, System and Apparatus for Photometric Stereo Reconstruction of a Surface

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001082927A (ja) 1999-09-16 2001-03-30 Nippon Telegr & Teleph Corp <Ntt> 三次元画像処理方法、装置、および三次元画像処理プログラムを記録した記録媒体
JP2009293971A (ja) 2008-06-03 2009-12-17 Fujifilm Corp 距離測定装置および方法並びにプログラム
JP2012198712A (ja) 2011-03-18 2012-10-18 Ricoh Co Ltd 画像処理装置、画像処理方法、及び画像処理プログラム
JP2015069566A (ja) 2013-09-30 2015-04-13 富士重工業株式会社 フィルタリング装置および環境認識システム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3513219B2 (ja) * 1994-07-12 2004-03-31 キヤノン株式会社 対応点マッチング方法および装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001082927A (ja) 1999-09-16 2001-03-30 Nippon Telegr & Teleph Corp <Ntt> 三次元画像処理方法、装置、および三次元画像処理プログラムを記録した記録媒体
JP2009293971A (ja) 2008-06-03 2009-12-17 Fujifilm Corp 距離測定装置および方法並びにプログラム
JP2012198712A (ja) 2011-03-18 2012-10-18 Ricoh Co Ltd 画像処理装置、画像処理方法、及び画像処理プログラム
JP2015069566A (ja) 2013-09-30 2015-04-13 富士重工業株式会社 フィルタリング装置および環境認識システム

Also Published As

Publication number Publication date
DE112021001440T5 (de) 2023-02-09
JPWO2021177163A1 (ja) 2021-09-10
CN115280096A (zh) 2022-11-01
US20230129785A1 (en) 2023-04-27
WO2021177163A1 (ja) 2021-09-10

Similar Documents

Publication Publication Date Title
US9672630B2 (en) Contour line measurement apparatus and robot system
JP4774824B2 (ja) 3次元計測処理の計測対象範囲の確認方法および計測対象範囲の設定方法ならびに各方法を実施する装置
JP5791976B2 (ja) 画像処理装置、画像処理方法、およびプログラム
JP7448633B2 (ja) 複数のカメラにて撮像された画像に基づいて物体の表面の位置情報を生成する三次元測定装置
WO2011162388A1 (ja) 点群データ処理装置、点群データ処理システム、点群データ処理方法、および点群データ処理プログラム
JP6892286B2 (ja) 画像処理装置、画像処理方法、及びコンピュータプログラム
EP3427232A1 (en) Image processing method, display device, and inspection system
US20140009583A1 (en) Three-dimensional measurement apparatus and robot system
JP2011198349A (ja) 情報処理方法及びその装置
JPH09187038A (ja) 3次元形状抽出装置
JP2013167481A (ja) 画像処理装置およびプログラム
US9595095B2 (en) Robot system
CN110926330A (zh) 图像处理装置和图像处理方法
JP3690581B2 (ja) 位置検出装置及びその方法、平面姿勢検出装置及びその方法
JPH055041B2 (ja)
JP5093058B2 (ja) ロボットの座標の結合方法
JP3672970B2 (ja) 非接触画像計測システム
WO2017155005A1 (en) Image processing method, display device, and inspection system
US20220331972A1 (en) Robot Image Display Method, Recording Medium, And Robot Image Display System
JP3953450B2 (ja) 3次元オブジェクト姿勢操作方法およびプログラム
WO2021145304A1 (ja) 画像処理システム
JP6892462B2 (ja) 機械制御装置
JPH09119819A (ja) 三次元情報再構成装置
JP2580516B2 (ja) 実時間3次元運動測定装置およびその方法
JP2012154672A (ja) 画像処理方法、プログラム、および画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240229

R150 Certificate of patent or registration of utility model

Ref document number: 7448633

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150