JP2018116007A - 検査システム、コントローラ、検査方法、および検査プログラム - Google Patents

検査システム、コントローラ、検査方法、および検査プログラム Download PDF

Info

Publication number
JP2018116007A
JP2018116007A JP2017008255A JP2017008255A JP2018116007A JP 2018116007 A JP2018116007 A JP 2018116007A JP 2017008255 A JP2017008255 A JP 2017008255A JP 2017008255 A JP2017008255 A JP 2017008255A JP 2018116007 A JP2018116007 A JP 2018116007A
Authority
JP
Japan
Prior art keywords
inspection object
inspection
omnidirectional camera
workpiece
input image
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.)
Granted
Application number
JP2017008255A
Other languages
English (en)
Other versions
JP6790861B2 (ja
Inventor
徹 小河原
Toru Ogawara
徹 小河原
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.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
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 Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2017008255A priority Critical patent/JP6790861B2/ja
Priority to CN201710934579.2A priority patent/CN108326825B/zh
Priority to US15/785,467 priority patent/US10395360B2/en
Priority to EP17197451.2A priority patent/EP3351927B1/en
Publication of JP2018116007A publication Critical patent/JP2018116007A/ja
Application granted granted Critical
Publication of JP6790861B2 publication Critical patent/JP6790861B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/001Industrial image inspection using an image reference approach
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/003Programme-controlled manipulators having parallel kinematics
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/04Viewing devices
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/84Systems specially adapted for particular applications
    • G01N21/88Investigating the presence of flaws or contamination
    • G01N21/8806Specially adapted optical and illumination features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/58Means for changing the camera field of view without moving the camera body, e.g. nutating or panning of optics or image sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Chemical & Material Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Biochemistry (AREA)
  • General Health & Medical Sciences (AREA)
  • Immunology (AREA)
  • Pathology (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Image Analysis (AREA)
  • Investigating Materials By The Use Of Optical Means Adapted For Particular Applications (AREA)
  • Image Processing (AREA)

Abstract

【課題】1つのカメラで検査対象物の外観を様々な方向から検査することができる検査システムを提供する。【解決手段】ワークWを検査するための検査システムは、全方位カメラ300と、ワークWの姿勢を維持した状態で全方位カメラ300の周囲をワークWに周回させるための移動装置と、移動装置が全方位カメラ300の周囲をワークWに周回させている間の複数のタイミングにおいて全方位カメラ300に撮影指示を出力し、ワークWを異なる方向から表わした複数の入力画像を全方位カメラ300から取得するための取得部と、複数の入力画像を用いてワークWを検査するための検査部とを備える。【選択図】図3

Description

本開示は、全方位カメラを用いて検査対象物を検査するための技術に関する。
FA(Factory Automation)分野では、カメラを用いて検査対象物の外観を検査するための技術が開発されている。当該技術に関し、特開2000−180382号公報(特許文献1)は、コンベア上にランダムに配置された検査対象物の表面を高速に検査することができる外観検査装置を開示している。より具体的には、当該外観検査装置は、コンベア上を搬送される検査対象物を複数のカメラで異なる方向から撮影し、各方向から撮影して得られた入力画像を用いて検査対象物を検査する。
特開2000−180382号公報
特許文献1に開示される外観検査装置においては、検査対象物を様々な方向から撮影するために、複数のカメラを設ける必要がある。そのため、外観検査装置のコストが高くなり、外観検査装置の構成も複雑になる。したがって、1つのカメラで検査対象物の外観を様々な方向から検査するための技術が望まれている。
ある局面に従うと、検査対象物を検査するための検査システムは、全方位カメラと、上記検査対象物の姿勢を維持した状態で上記全方位カメラの周囲を上記検査対象物に周回させるための移動装置と、上記移動装置が上記全方位カメラの周囲を上記検査対象物に周回させている間の複数のタイミングにおいて上記全方位カメラに撮影指示を出力し、上記検査対象物を異なる方向から表わした複数の入力画像を上記全方位カメラから取得するための取得部と、上記複数の入力画像を用いて上記検査対象物を検査するための検査部とを備える。
好ましくは、上記移動装置は、上記全方位カメラから上記検査対象物までの距離を一定に維持した状態で、上記全方位カメラの周囲を上記検査対象物に周回させる。
好ましくは、上記移動装置は、上記検査対象物が上記全方位カメラを周回している間、当該検査対象物を停止させない。
好ましくは、上記検査システムは、さらに、上記検査対象物と同種類の物体を異なる方向から予め撮影して得られた基準画像を当該基準画像に写る物体の向きに対応付けて格納するための記憶部と、上記複数の入力画像の第1入力画像に写る上記検査対象物の第1の向きと、上記複数の入力画像の第2入力画像に写る上記検査対象物の第2の向きとを特定するための特定部とを備える。上記検査部は、上記第1の向きに対付けられている上記基準画像と上記第1入力画像とを比較し、上記第2の向きに対付けられている上記基準画像と上記第2入力画像とを比較し、当該比較結果に基づいて上記検査対象物を検査する。
好ましくは、上記特定部は、上記第1入力画像の撮影タイミングにおける検査対象物の位置と、上記全方位カメラの位置とに基づいて、上記第1の向きを特定し、上記第2入力画像の撮影タイミングにおける検査対象物の位置と、上記全方位カメラの位置とに基づいて、上記第2の向きを特定する。
好ましくは、上記移動装置の表面の異なる位置には、それぞれ、異なるマークが付されている。複数の上記マークの各々には、上記検査対象物の向きが予め対応付けられている。上記特定部は、上記第1入力画像に写っているマークに対応付けられている向きを上記第1の向きとして特定し、上記第2入力画像に写っているマークに対応付けられている向きを上記第2の向きとして特定する。
好ましくは、上記検査部は、上記第1入力画像の撮影タイミングにおける上記検査対象物の位置と、上記全方位カメラとの位置関係に基づいて、上記第1入力画像内に写る検査対象物の位置を特定するとともに、当該位置に写っている検査対象物と上記第1の向きに対応付けられている上記基準画像とを比較し、上記第2入力画像の撮影タイミングにおける上記検査対象物の位置と、上記全方位カメラとの位置関係に基づいて、上記第2入力画像内に写る検査対象物の位置を特定するとともに、当該位置に写っている検査対象物と上記第2の向きに対応付けられている上記基準画像とを比較し、当該比較結果に基づいて上記検査対象物を検査する。
他の局面に従うと、検査対象物を移動するための移動装置と、上記検査対象物を撮影するための全方位カメラとを制御するためのコントローラは、上記コントローラは、上記検査対象物の姿勢を維持した状態で上記全方位カメラの周囲を上記検査対象物に周回させるための命令を上記移動装置に出力し、上記移動装置が上記全方位カメラの周囲を上記検査対象物に周回させている間の複数のタイミングにおいて上記全方位カメラに撮影指示を出力し、上記検査対象物を異なる方向から表わした複数の入力画像を上記全方位カメラから取得するための取得部と、上記複数の入力画像を用いて上記検査対象物を検査するための検査部とを備える。
他の局面に従うと、検査対象物を検査するための検査方法は、上記検査対象物の姿勢を維持した状態で全方位カメラの周囲を上記検査対象物に周回させるステップと、上記検査対象物が上記全方位カメラの周囲を周回している間の複数のタイミングにおいて上記全方位カメラに撮影指示を出力し、上記検査対象物を異なる方向から表わした複数の入力画像を上記全方位カメラから取得するステップと、上記複数の入力画像を用いて上記検査対象物を検査するステップとを備える。
他の局面に従うと、検査対象物を検査するための検査プログラムは、コンピュータに、上記検査対象物の姿勢を維持した状態で全方位カメラの周囲を上記検査対象物に周回させるステップと、上記検査対象物が上記全方位カメラの周囲を周回している間の複数のタイミングにおいて上記全方位カメラに撮影指示を出力し、上記検査対象物を異なる方向から表わした複数の入力画像を上記全方位カメラから取得するステップと、上記複数の入力画像を用いて上記検査対象物を検査するステップとを実行させる。
ある局面において、1つのカメラで検査対象物の外観を様々な方向から検査することができる。
本開示の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
第1の実施の形態に従う検査システムの基本構成を示す模式図である。 検査対象物であるワークの一例を表わす図である。 第1の実施の形態に従うロボットが全方位カメラの周囲をワークに周回させている過程を示す図である。 第1の実施の形態に従う全方位カメラから得られた入力画像の一例を示す図である。 第1の実施の形態に従うコントローラの機能構成の一例を示す図である。 ワークの向きを特定するための第1特定方法を説明するための図である。 ワークの向きを特定するための第2特定方法を説明するための図である。 第1の実施の形態に従うロボットがワークを把持する部分である把持部分210を示す図である。 ワークの向きを特定するための第3特定方法を説明するための図である。 検査部によるワークの検査処理を概略的に示す概念図である。 第1の実施の形態に従うコントローラによる検査処理を表わすフローチャートである。 第1の実施の形態に従うコントローラのハードウェア構成例を示すブロッグ図である。 移動装置としてのコンベアがワークWを搬送している様子を示す図である。 第2の実施の形態に従う全方位カメラから得られた入力画像の一例を示す図である。 第2の実施の形態におけるワークの検査処理を概略的に示す概念図である。 第2の実施の形態に従うコントローラによる検査処理を表わすフローチャートである。 第3の実施の形態に従うロボットが全方位カメラの周囲をワークに周回させている過程を示す図である。 第3の実施の形態に従う全方位カメラから得られた入力画像の一例を示す図である。 第4の実施の形態に従うロボットが全方位カメラの周囲をワークWに正方形に周回させている様子を示す図である。
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
<第1の実施の形態>
[A.検査システム1]
図1を参照して、本実施の形態に従う検査システム1の基本構成について説明する。図1は、本実施の形態に従う検査システム1の基本構成を示す模式図である。
図1に示されるように、検査システム1は、たとえば、コントローラ100と、移動装置としてのロボット200と、全方位カメラ300とで構成されている。
コントローラ100は、たとえば、PLC(Programmable Logic Controller)であり、検査システム1全体を制御する。一例として、コントローラ100は、画像センサ51、ロボット200、全方位カメラ300などを制御する。
コントローラ100は、たとえば、画像センサ51およびカウンタ52とデイジーチェーンでフィールドネットワーク54に接続されている。フィールドネットワーク54として、たとえば、EtherCAT(登録商標)が採用される。また、コントローラ100は、フィールドネットワーク56を介してロボット200と通信接続されている。フィールドネットワーク56として、たとえば、EtherNET(登録商標)が採用される。
検査システム1は、コンベア20A上を搬送されるワークW(検査対象物)に対して所定の作業を行う。ワークWは、製品または半製品であり、たとえば、電子部品であってもよいし、食料品であってもよい。
画像センサ51は、コンベア20Aを定期的に撮影し、得られた入力画像からワークWを検知する。一例として、画像センサ51は、テンプレートマッチングなどの画像処理によりワークWを検知する。入力画像内のワークWの座標値は、コントローラ100に出力される。
カウンタ52は、エンコーダ53から発生するパルス波に基づいてコンベア20Aの移動量を計測する。より具体的には、エンコーダ53は、コンベア20Aの移動量に応じてパルス信号を発生する。カウンタ52は、エンコーダ53からパルス信号を受け、当該パルス信号に含まれるパルス数をカウントすることでコンベア20Aの移動量を計測する。カウンタ52は、パルス波のカウント値をコントローラ100に一定の通信間隔で送信する。
コントローラ100は、画像センサ51から受信した入力画像内のワークWの座標値(カメラ座標系)を予め定められた座標変換式に代入し、カメラ座標系のワークWの座標値をワールド座標系の座標値に変換する。ワールド座標系は、ロボット200を制御するための座標系である。コントローラ100は、カウンタ52からカウント値を受信する度に、前回からのコンベア20A上の移動量を算出し、ワールド座標系で示されるワークWの座標値に当該移動量を加算する。1カウントに相当するコンベア20Aの移動量は、予め設定されている。コントローラ100は、ワールド座標系で示されるワークWの座標値を逐次的に更新することで、コンベア20Aを搬送されるワークWをトラッキングすることができる。
コントローラ100は、ワークWがコンベア20A上の予め定められた範囲に到達したことに基づいて、ロボット200にワークWのピックアップ命令を送る。このとき、コントローラ100は、コンベア20A上のワークWの座標値をロボット200に逐次的に送る。これにより、ロボット200は、ワークWの現在位置を把握することができ、コンベア20A上のワークWをピックアップすることができる。
その後、ロボット200は、ワークWの姿勢を維持した状態で全方位カメラ300の周囲をワークWに周回させ、当該ワークWをコンベア20Bに移動する。「ワークWの姿勢を維持した状態」とは、ワークWが自転しないようにワークWを固定している状態を意味し、周回過程でワークWの各面が常に同じ方向を向いている状態のことをいう。コントローラ100は、ワークWが全方位カメラ300の周囲を周回している間にワークWを撮影し、その撮影結果として得られた入力画像を用いてワークWの外観を検査する。当該検査処理の詳細については後述する。
なお、図1には、検査システム1が1つのコントローラ100で構成されている例が示されているが、検査システム1は、複数のコントローラ100で構成されてもよい。また、図1には、検査システム1が1つのロボット200で構成されている例が示されているが、検査システム1は、複数のロボット200で構成されてもよい。また、図1には、検査システム1が1つの全方位カメラ300で構成されている例が示されているが、検査システム1は、複数の全方位カメラ300で構成されてもよい。
[B.ワークWの撮影処理]
図2〜図4を参照して、全方位カメラ300によるワークWの撮影処理について説明する。
図2は、検査対象物であるワークWの一例を表わす図である。以下では、ワークWの向きを説明する便宜のために、ワークWが立方体である前提で説明を行う。図2に示されるように、ワークWの「E面」は、ワークWの「A面」〜「D面」に直交しているとする。ワークWの「A面」は、ワークWの「C面」に対向しているとする。ワークWの「B面」は、ワークWの「D面」に対向しているとする。
なお、検査対象物であるワークWの形状は、立方体に限定されず、直方体などの多面体であってもよいし、円筒形であってもよいし、その他の形状であってもよい。
図3は、ロボット200が全方位カメラ300の周囲をワークWに周回させている過程を示す図である。
全方位カメラ300は、全方位ミラー331と、撮影ユニット332とで構成されている。全方位ミラー331は、周囲360°から受けた光を反射し、当該反射光を撮影ユニット332に導く。これにより、全方位カメラ300は、周囲360°を撮影することができる。
上述したように、ロボット200は、ワークWの姿勢を維持した状態で全方位カメラ300の周囲をワークWに周回させる。このとき、ワークWの姿勢が維持されているので、全方位カメラ300から見た場合のワークWの外観は、ワークWの位置ごとに変わる。
典型的には、ワークWの周回軌道は、円形である。すなわち、ロボット200は、全方位カメラ300からワークWまでの距離を一定に維持した状態で、全方位カメラ300の周囲をワークWに周回させる。これにより、ワークWが全方位カメラ300を周回している間、ワークWと全方位カメラ300との間の距離が常に一定になり、全方位カメラ300から得られた画像に写るワークWの大きさは一定になる。
典型的には、ロボット200は、ワークWが全方位カメラ300を周回している間、当該ワークWを停止させない。これにより、順次搬送されるワークWを停止させずに連続的に検査することができる。また、ワークWの周回処理がワークWのピック&プレース動作の途中に実施されることで、ワークWの周回処理が追加されたとしても、タクトタイムは増加しない。
ロボット200は、ワークWを周回させている間、ワークWの位置(またはアームの位置)を定期的にコントローラ100に送信する。コントローラ100は、受信したワークWの位置が予め定められた周回軌道上に存在する場合に、ロボット200が全方位カメラ300の周囲をワークWに周回させていると判断する。コントローラ100は、ワークWが全方位カメラ300を周回している間の複数のタイミングにおいて全方位カメラ300に撮影指示を出力する。これにより、全方位カメラ300は、様々な方向からワークWを撮影することができる。その結果、コントローラ100は、ワークWを異なる方向から表わした複数の入力画像を全方位カメラ300から取得することができる。
図4は、全方位カメラ300から得られた入力画像の一例を示す図である。一例として、タイミングt1において、コントローラ100は、全方位カメラ300に撮影指示を出力したとする。その結果、ワークWの「D面」を表わす入力画像33Aが得られる。同様に、タイミングt2において、コントローラ100は、全方位カメラ300に撮影指示を出力したとする。その結果、ワークWの「A面」を表わす入力画像33Bが得られる。同様に、タイミングt3において、コントローラ100は、全方位カメラ300に撮影指示を出力したとする。その結果、ワークWの「B面」を表わす入力画像33Cが得られる。同様に、タイミングt4において、コントローラ100は、全方位カメラ300に撮影指示を出力したとする。その結果、ワークWの「C面」を表わす入力画像33Dが得られる。
撮影指示が出力される間隔は、たとえば、ワークWが全方位カメラ300を1周するのにかかる周回時間を撮影回数で割ることで算出される。たとえば、周回時間が1秒であり、撮影回数が4回である場合には、撮影間隔は、0.25秒(=1/4)となる。当該周回時間および当該撮影回数は、予め設定されていてもよいし、任意に設定されてもよい。
このように、コントローラ100は、ワークWが周回している間の異なるタイミングで全方位カメラ300に撮影指示を出力することで、ワークWを異なる方向から表わした入力画像30A〜30Dを1つの全方位カメラ300から取得することができる。
なお、図3には、ワークWが全方位カメラ300の周囲を1周している例について説明を行ったが、必ずしも、ワークWは、全方位カメラ300の周囲を1周する必要はない。すなわち、ワークWは、姿勢を維持した状態で全方位カメラ300の周囲の少なくとも一部を周回すればよい。また、ワークWは、水平面を周回する必要はなく、全方位カメラ300の視野内の一部または全部において姿勢が維持されていれば、任意の方向に周回させることができる。
[C.コントローラ100の機能構成]
図5〜図10を参照して、コントローラ100の機能について説明する。
図5は、コントローラ100の機能構成の一例を示す図である。図5に示されるように、コントローラ100は、主要なハードウェア構成として、プロセッサ102と、二次記憶装置108とを含む。プロセッサ102は、機能構成として、取得部150と、特定部152と、検査部154とを含む。
なお、図5には、取得部150、特定部152、検査部154がコントローラ100に実装されている例が示されているが、これらの機能の少なくとも一部は、他の外部装置に実装されてもよい。たとえば、当該機能の少なくとも一部は、画像センサ51(図1参照)やサーバなどの外部装置に実装されてもよい。この場合、コントローラ100と外部装置とが協働して本実施の形態に従う各種処理を実現する。
以下では、取得部150、特定部152、検査部154について順に説明する。
(C1.取得部150)
取得部150は、ワークWが全方位カメラ300を周回している間の複数のタイミングにおいて全方位カメラ300に撮影指示を出力し、ワークWを異なる方向から表わした複数の入力画像を全方位カメラ300から取得する。ワークWの撮影方法については図3で説明した通りであるので、その説明については繰り返さない。
(C2.特定部152)
上述したように、ロボット200は、ワークWの姿勢を維持した状態で全方位カメラ300を周回させる。このとき、ワークW自体は自転しないが、全方位カメラ300から見た場合のワークWの向きが変わる。以下では、全方位カメラ300に対してワークWが向いている方向を「ワークの向き」とも称する。すなわち、ワークの向きとは、周回面上を通り、ワークWの中心を通る所定の基準軸と、ワークWおよび全方位カメラ300を結ぶ直線との間の角度のことをいう。
特定部152は、ワークWの撮影タイミングにおけるワークWの向きを特定する。ワークWの向きの特定方法には様々な方法が採用される。以下では、図6〜図9を参照して、ワークWの向きの特定方法について説明する。
図6は、ワークWの向きを特定するための第1特定方法を説明するための図である。図6には、全方位カメラ300の位置P1と、ワークWが全方位カメラ300を周回している所定タイミングにおけるワークWの位置P2とが示されている。
全方位カメラ300の位置P1は、たとえば、カメラ位置134(図5参照)として規定されている。カメラ位置134は、全方位カメラ300の設置時に設定されていてもよいし、ユーザによって任意に設定されてもよい。カメラ位置134は、たとえば、xy平面上の座標値として表わされてもよいし、xyz平面上の座標値として表わされてもよい。当該座標値は、たとえば、全方位カメラ300の中心を表わす。
ワークWの位置P2は、ロボット200から取得される。より具体的には、コントローラ100は、ワークWの撮影指示を全方位カメラ300に出力したのと同時に、ワークWの位置P2を取得するための要求をロボット200に出力する。これにより、コントローラ100は、撮影時におけるワークWの位置P2をロボット200から取得することができる。ワークWの位置P2は、たとえば、xy平面上の座標値として表わされてもよいし、xyz平面上の座標値として表わされてもよい。当該座標値は、たとえば、ワークWの中心を表わす。
特定部152は、全方位カメラ300の位置P1からワークWの位置P2に向かう方向をワークWの撮影方向として特定する。当該撮影方向は、全方位カメラ300から見た場合のワークWの方向に相当する。ワークWが周回軌道に到達した時点でのワークWの向きが常に同じであれば、当該撮影方向とワークWの向きとは、一対一に対応する。すなわち、ワークWの向きは、周回軌道上の同じ地点では常に同じになる。特定部152は、ワークWの撮影方向とワークWの向きとの対応関係に基づいて、ワークWの撮影方向からワークWの向きを特定する。
特定部152は、全方位カメラ300から得られた全ての入力画像(たとえば、第1,第2入力画像)についてワークWの向きを特定する。より具体的には、特定部152は、第1入力画像の撮影タイミングにおけるワークWの位置と、全方位カメラ300の位置とに基づいて、当該第1入力画像に写るワークWの向きを特定する。同様に、特定部152は、第2入力画像の撮影タイミングにおけるワークWの位置と、全方位カメラ300の位置とに基づいて、当該第2入力画像に写るワークWの向きを特定する。
次に、図7を参照して、ワークWの向きの他の特定方法について説明する。図7は、ワークWの向きを特定するための第2特定方法を説明するための図である。
図7には、全方位カメラ300から得られた入力画像の一例として入力画像33Bが示されている。全方位カメラ300を用いた場合、入力画像33Bの長辺方向の位置が全方位カメラ300から見た場合の被写体の向きに対応する。すなわち、入力画像33B内のワークWの座標値とワークWの向きとは、一対一に対応する。この点に着目して、特定部152は、入力画像内のワークWの座標値と当該ワークWの向きとの対応関係に基づいて、入力画像33Bから検知されたワークWの座標値に対応するワークWの向きを特定する。図7の例では、特定部152は、ワークWの中心位置P3に対応する「135°」を入力画像33Bの撮影タイミングにおけるワークWの向きとして特定している。
次に、図8および図9を参照して、ワークWの向きの他の特定方法について説明する。図8は、ロボット200がワークWを把持する部分である把持部分210を示す図である。
図8には、把持部分210の拡大図が示されている。把持部分210の表面の異なる位置には、それぞれ、異なるマークが付されている。当該マークは、ワークWの向きを特定するための基準となる。マークの違いは、色の違いにより表わされてもよいし、形状の違いにより表れてもよい。図8の例では、把持部分210にメモリ211が付されており、メモリ211は、色が異なるマーク211A,211Bで表わされている。
なお、マークが付される場所は、把持部分210に限定されず、マークは、全方位カメラ300の視野に含まれる位置であればロボット200の任意の場所に付される。
図9は、ワークWの向きを特定するための第3特定方法を説明するための図である。特定部152は、ワークWを撮影して得られた入力画像38から把持部分210を検知する。次に、特定部152は、検知した把持部分210の中心または略中心に写っているマークの種類を特定する。その後、特定部152は、マークの種類ごとにワークWの向きを規定しているマーク情報128を参照して、特定されたマークに関連付けられている向きを、ワークWの向きとして特定する。図9の例では、マーク情報128においてマーク211Bに対応付けられている「90°」がワークWの向きとして特定される。
特定部152は、全方位カメラ300から得られた全ての入力画像(たとえば、第1,第2入力画像)についてワークWの向きを特定する。より具体的には、特定部152は、第1入力画像に写っているマークを検知し、マーク情報128において当該検知されたマークに対応付けられている向きを特定し、当該特定された向きを第1入力画像に写るワークWの向きとして特定する。同様に、特定部152は、第2入力画像に写っているマークを検知し、マーク情報128において当該検知されたマークに対応付けられている向きを特定し、当該特定された向きを第2入力画像に写るワークWの向きとして特定する。
なお、上述では、ワークWが周回軌道に到達した時点におけるワークWの向きが常に同じである前提で説明を行ったが、ワークWが周回軌道に到達した時点におけるワークWの向きは、常に同じである必要はない。当該時点でのワークWの向きが常に同じなくとも、周回軌道上の一地点でのワークWの向きが検知されれば、特定部152は、当該一地点でのワークWの向きを基準として、ワークWの向きを特定することができる。当該一地点でのワークWの向きの特定は、たとえば、テンプレートマッチングなどの画像処理によって実現される。
(C3.検査部154)
上述したように、取得部150は、ワークWが全方位カメラ300を周回している間の複数のタイミングにおいて全方位カメラ300に撮影指示を出力し、ワークWを異なる方向から表わした複数の入力画像を全方位カメラ300から取得する。検査部154は、取得部150によって取得された複数の入力画像を用いて検査対象物であるワークWを検査する。
図10を参照して、検査部154によるワークWの検査処理について説明する。図10は、検査部154によるワークWの検査処理を概略的に示す概念図である。
図10には、入力画像の一例として、ワークWの「A面」を撮影して得られた入力画像33Bが示されている。以下では、取得部150から得られた入力画像の1つである入力画像33Bを例に挙げて、検査部154による検査処理について説明する。
検査部154は、基準画像情報135を参照して、入力画像33Bに写るワークWを検査する。基準画像情報135は、検査対象物と同種類の物体を予め撮影して得られた複数の基準画像を含む。各基準画像には、当該基準画像に写る物体の向きが対応付けられている。基準画像情報135は、検査処理が実行される前に予め準備されており、たとえば、コントローラ100の二次記憶装置108(図12参照)などに予め格納されている。
上述したように、特定部152は、入力画像33Bに写るワークWの向きを特定する。検査部154は、基準画像情報135を参照して、入力画像33Bに写るワークWの向きに対応付けられている基準画像を特定する。図10例では、ワークWの向き「135°」に対応付けられている基準画像135Aが特定される。検査部154は、特定された基準画像135Aと入力画像33Bとを比較し、当該比較結果に基づいて入力画像33Bに写るワークWを検査する。
典型的には、検査部154は、特定された基準画像135Aを入力画像33B上で走査しながら、基準画像135Aの各部分と入力画像33Bとの類似度群を算出し、当該類似度群の内の最大値を基準画像135Aと入力画像33Bとの類似度として採用する。類似度は、たとえば、基準画像135Aの画像情報(たとえば、画素値)と、入力画像33Bの画像情報(たとえば、画素値)との相関値で表わされる。検査部154は、算出された類似度が予め定められた値を超えている場合には、ワークWの外観が正常であると判断する。一方で、検査部154は、算出された類似度が予め定められた値以下である場合には、ワークWの外観が異常であると判断する。
検査部154は、このような検査処理を取得部150から取得した全入力画像(たとえば、第1,第2入力画像)について実行する。より具体的には、検査部154は、第1入力画像に写るワークWの向き(第1の向き)に対応付けられている基準画像と、当該第1入力画像とを比較する。同様に、検査部154は、第2入力画像に写るワークWの向き(第2の向き)に対応する基準画像と、当該第2入力画像とを比較する。検査部154は、これらの比較結果に基づいて、ワークWを検査する。
典型的には、検査部154は、各入力画像についての算出された類似度が全て予め定められた値を超えている場合に、ワークWの外観が正常であると判断する。一方で、検査部154は、各入力画像についての算出された類似度の少なくとも1つが予め定められた値以下である場合には、ワークWの外観に異常があると判断する。
典型的には、検査部154は、入力画像33BにおいてワークWが写っている部分を切り出した上で、当該切り出し部分と基準画像135Aとを比較する。より具体的には、全方位カメラ300が用いられる場合には、入力画像33BにワークWが写っている位置は、ワークWと全方位カメラ300との位置関係に依存する。この点に着目して、検査部154は、入力画像33Bの撮影タイミングにおけるワークWの実際の位置と、全方位カメラ300との位置関係に基づいて、入力画像33B内に写る検査対象物の位置を特定する。その後、検査部154は、特定された位置に写っているワークWと、ワークWの向きに対応付けられている基準画像とを比較し、当該比較結果に基づいてワークWを検査する。入力画像内に写るワーク部分を特定した上で当該ワーク部分と基準画像とを比較することで、検査処理にかかる処理時間は、入力画像33B内を基準画像135Aに走査させるよりも短くなる。
[D.コントローラ100の制御構造]
図11を参照して、コントローラ100による検査処理について説明する。図11は、コントローラ100による検査処理を表わすフローチャートである。図11に示される処理は、コントローラ100のプロセッサ102(図5参照)がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
ステップS110において、プロセッサ102は、検査処理の実行指示を受け付けたことに基づいて、ロボット200によるワークWの移動を開始する。ワークWは、当該移動過程で、全方位カメラ300の周囲を周回する。
ステップS112において、プロセッサ102は、撮影タイミングが到来したか否かを判断する。一例として、撮影タイミングは、ワークWが全方位カメラ300の周回軌道に到達してから一定時間ごとに到来する。プロセッサ102は、撮影タイミングが到来したと判断した場合(ステップS112においてYES)、制御をステップS114に切り替える。そうでない場合には(ステップS112においてNO)、プロセッサ102は、ステップS112の処理を再び実行する。
ステップS114において、プロセッサ102は、上述の取得部150(図5参照)として、全方位カメラ300に撮影指示を出力し、ワークWを表わす入力画像を全方位カメラ300から取得する。
ステップS116において、プロセッサ102は、上述の特定部152(図5参照)として、ステップS114で取得した入力画像に写るワークWの向きを特定する。ワークWの向きの特定方法については図6〜図9で説明した通りであるので、その説明については繰り返さない。
ステップS118において、プロセッサ102は、上述の検査部154(図5参照)として、上述の基準画像情報135(図10参照)を参照して、ステップS116で特定されたワークWの向きに対応付けられている基準画像を取得し、当該基準画像と入力画像とを比較する。基準画像と入力画像との比較処理については図10で説明した通りであるので、その説明については繰り返さない。
ステップS120において、プロセッサ102は、ステップS118での比較結果に基づいて、検査対象物であるワークWの外観が異常であるか否かを判断する。一例として、プロセッサ102は、基準画像と入力画像との類似度が予め定められた値以下である場合に、ワークWの外観が異常であると判断する。プロセッサ102は、ワークWの外観が異常であると判断した場合(ステップS120においてYES)、制御をステップS130に切り替える。そうでない場合には(ステップS120においてNO)、プロセッサ102は、制御をステップS122に切り替える。
ステップS122において、プロセッサ102は、1つのワークWに対して規定回数の検査が行われたか否かを判断する。当該規定回数は、予め設定されていてもよいし、任意に設定せれてもよい。当該規定回数は、1つのワークWに対する撮影回数に相当する。プロセッサ102は、1つのワークWに対して規定回数の検査が行われたと判断した場合(ステップS122においてYES)、制御をステップS124に切り替える。そうでない場合には(ステップS122においてNO)、プロセッサ102は、制御をステップS112に戻す。
ステップS124において、プロセッサ102は、ワークWの外観が正常であることを報知する。当該報知の方法は、任意である。一例として、ワークWの外観が正常であることは、メッセージとして表示されてもよいし、音声として出力されてもよい。
ステップS130において、プロセッサ102は、ワークWの外観が異常であることを報知する。当該報知の方法は、任意である。一例として、ワークWの外観が異常であることは、メッセージとして表示されてもよいし、音声として出力されてもよい。
[E.コントローラ100のハードウェア構成]
図12を参照して、本実施の形態に従うコントローラ100のハードウェア構成について説明する。図12は、コントローラ100のハードウェア構成例を示すブロッグ図である。
コントローラ100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、ローカルネットワークコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、内部バスコントローラ122と、フィールドバスコントローラ118,120と、I/Oユニット124−1,124−2,…とを含む。
プロセッサ102は、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、制御対象に応じた制御、および、上述の検査処理などを実現する。チップセット104は、プロセッサ102と各コンポーネントを制御することで、コントローラ100全体としての処理を実現する。
二次記憶装置108には、PLCエンジンを実現するためのシステムプログラムに加えて、PLCエンジンを利用して実行されるユーザプログラム130が格納される。さらに、二次記憶装置108には、上述のカメラ位置134(図5参照)、上述の基準画像情報135なども格納される。ユーザプログラム130は、論理的な演算を主とするシーケンスシーケンスプログラム131、位置制御や速度制御などの数値的な演算を主とするモーションプログラム132、ワークの検査処理を実現するための演算を主とする検査プログラム133などを含む。
ローカルネットワークコントローラ110は、ローカルネットワークを介した他の装置(たとえば、サーバなど)との間のデータの遣り取りを制御する。USBコントローラ112は、USB接続を介して他の装置(たとえば、PC(Personal Computer)など)との間のデータの遣り取りを制御する。
メモリカードインターフェイス114は、メモリカード116を着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。
内部バスコントローラ122は、コントローラ100に搭載されるI/Oユニット124−1,124−2,…との間でデータを遣り取りするインターフェイスである。
フィールドバスコントローラ118は、フィールドネットワーク54を介した他の装置(たとえば、画像センサ51やカウンタ52など)との間のデータの遣り取りを制御する。同様に、フィールドバスコントローラ120は、フィールドネットワーク56を介した他の装置(たとえば、ロボット200)との間のデータの遣り取りを制御する。
図12には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(たとえば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、コントローラ100の主要部を、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
[F.第1の実施の形態のまとめ]
以上のようにして、本実施の形態に従うコントローラ100は、検査対象物の姿勢を維持した状態で全方位カメラ300の周囲をワークWに周回させるようにロボット200に指示する。コントローラ100は、ロボット200が全方位カメラ300の周囲をワークWに周回させている間の複数のタイミングにおいて全方位カメラ300に撮影指示を出力する。このとき、ワークWの姿勢が維持されているので、全方位カメラ300から見た場合のワークWの外観は、ワークWの位置ごとに変わる。そのため、ワークWを異なる方向から表わした複数の入力画像が得られる。コントローラ100は、当該複数の入力画像を用いてワークWを検査する。
このように、コントローラ100は、ワークWが周回している間の異なるタイミングで全方位カメラ300に撮影指示を出力することで、ワークWを異なる方向から表わした入力画像30A〜30Dを1つの全方位カメラ300から取得することができる。
<第2の実施の形態>
[A.概要]
第1の実施の形態においては、ワークWは、ロボット200によって全方位カメラ300を周回させられていた。これに対して、第2の実施の形態においては、ワークWは、コンベア200Aによって全方位カメラ300を周回させられる。これにより、全方位カメラ300は、複数のワークWを同時に撮影することができ。
その他の点については「第1の実施の形態」で説明した通りであるので、以下ではそれらの説明については繰り返さない。
[B.ワークWの撮影処理]
図13および図14を参照して、第2の実施の形態におけるワークWの撮影処理について説明する。
図13は、移動装置としてのコンベア200AがワークWを搬送している様子を示す図である。図13には、検査対象物の一例として、ワークW1〜W6が示されている。本実施の形態においては、複数のワークW1〜W6がコンベア200Aによって同時に全方位カメラ300の周囲を搬送される。このとき、コンベア200Aは、ワークW1〜W6のそれぞれの姿勢を維持させた状態で、全方位カメラ300の周囲をワークW1〜W6に周回させる。ワークW1〜W6の姿勢が維持されているので、全方位カメラ300から見た場合の各ワークの外観は、各ワークの位置ごとに変わる。
コントローラ100は、ワークW1〜W6が周回している間の複数のタイミングにおいて全方位カメラ300に撮影指示を出力する。これにより、全方位カメラ300は、各ワークを様々な方向から撮影することができる。その結果、コントローラ100は、各ワークを異なる方向から表わした複数の入力画像を取得することができる。
図14は、第2の実施の形態に従う全方位カメラ300から得られた入力画像の一例を示す図である。一例として、タイミングt11において、コントローラ100は、全方位カメラ300に撮影指示を出力したとする。その結果、ワークW2の「C面」と、ワークW3の「D面」と、ワークW4の「A面」と、ワークW5の「B面」とを表わす入力画像37Aが得られる。タイミングt12において、コントローラ100は、全方位カメラ300に撮影指示を出力したとする。その結果、ワークW3の「C面」と、ワークW4の「D面」と、ワークW5の「A面」と、ワークW6の「B面」とを表わす入力画像37Bが得られる。タイミングt13において、コントローラ100は、全方位カメラ300に撮影指示を出力したとする。その結果、ワークW4の「C面」と、ワークW5の「D面」と、ワークW6の「A面」と、ワークW7の「B面」とを表わす入力画像37Cが得られる。タイミングt14において、コントローラ100は、全方位カメラ300に撮影指示を出力したとする。その結果、ワークW5の「C面」と、ワークW6の「D面」と、ワークW7の「A面」と、ワークW8の「B面」とを表わす入力画像37Dが得られる。
撮影指示が出力される間隔は、たとえば、コンベア200Aが各ワークを周回(1周)させるためにかかる周回時間を撮影回数で割ることで算出される。たとえば、周回時間が1秒であり、撮影回数が4回である場合には、撮影間隔は、0.25秒(=1/4)となる。周回時間および撮影回数は、予め設定されていてもよいし、任意に設定されてもよい。
このように、コントローラ100は、ワークW1〜W6が周回している間の異なるタイミングで全方位カメラ300に撮影指示を出力することで、各ワークを異なる方向から表わした複数の入力画像を1つの全方位カメラ300から取得することができる。
典型的には、コンベア200Aは、各ワークが周回軌道に到達した時点での各ワークの向きが常に同じなるように、各ワークを搬送する。その結果、図14に示されるように、入力画像37A〜37D内の同じ位置には各ワークの同じ面が写る。
なお、図13には、ワークW1〜W6が全方位カメラ300の周囲を1周している例について説明を行ったが、必ずしも、ワークW1〜W6は、全方位カメラ300の周囲を1周する必要はない。すなわち、ワークW1〜W6は、姿勢を維持した状態で全方位カメラ300の周囲の少なくとも一部を周回すればよい。
[C.ワークWの検査処理]
図15を参照して、第2の実施の形態に従う検査部154(図5参照)によるワークの検査処理について説明する。図15は、第2の実施の形態におけるワークの検査処理を概略的に示す概念図である。
図15には、入力画像の一例として、ワークW2の「C面」と、ワークW3の「D面」と、ワークW4の「A面」と、ワークW5の「B面」とを同時に撮影して得られた入力画像37Aが示されている。以下では、得られた入力画像の1つである入力画像37Aを例に挙げて、検査部154による検査処理について説明する。
上述の特定部152(図5参照)は、入力画像37Aに写るワークW2〜W5のそれぞれの向きを特定する。各ワークの向きの特定方法には、「第1の実施の形態」において説明した「第1〜第3特定方法」が採用される。特定部152によって特定された各ワークの向きは、検査部154に出力される。図15の例では、各ワークの向きとして「45°」、「135°」、「225°」、「315°」が検査部154に出力されている。
検査部154は、基準画像情報135を参照して、入力画像37Aに写るワークW2〜W5を検査する。検査対象物と同種類の物体を予め撮影して得られた複数の基準画像を含む。各基準画像には、当該基準画像に写る物体の向きが対応付けられている。基準画像情報135は、検査処理が実行される前に予め準備されており、たとえば、コントローラ100の二次記憶装置108(図12参照)などに予め格納されている。
検査部154は、基準画像情報135を参照して、入力画像37Aに写るワークWの向きに対応する基準画像を特定する。図15例では、ワークの向き「45°」に対応する基準画像136Aと、ワークの向き「135°」に対応する基準画像136Bと、ワークの向き「225°」に対応する基準画像136Cと、ワークの向き「315°」に対応する基準画像136Dとが特定される。検査部154は、特定された基準画像136A〜136Dのそれぞれと入力画像37Aとを比較し、当該比較結果に基づいて入力画像37Aに写るワークW2〜W5を検査する。入力画像と基準画像との比較処理については図10で説明した通りであるので、その説明については繰り返さない。
検査部154は、取得部150によって取得された複数の入力画像の全てについて、入力画像と基準画像との比較処理を実行する。典型的には、検査部154は、各入力画像から同一のワークを抽出し、抽出された各ワーク部分と対応する基準画像との類似度を算出する。たとえば、ワークW5についての検査を行う場合には、検査部154は、入力画像37AのワークW5と基準画像136Aとの類似度を算出し、入力画像37B(図14参照)のワークW5と基準画像136Bとの類似度を算出し、入力画像37C(図14参照)のワークW5と基準画像136Cとの類似度を算出し、入力画像37D(図14参照)のワークW5と基準画像136Dとの類似度を算出する。検査部154は、ワークW5について算出された全ての類似度が予め定められた値を超えている場合に、ワークW5の外観が正常であると判断する。一方で、検査部154は、ワークW5についての算出された類似度の少なくとも1つが予め定められた値以下である場合には、ワークW5の外観に異常があると判断する。
[D.コントローラ100の制御構造]
図16を参照して、第2の実施の形態に従うコントローラ100による検査処理について説明する。図16は、第2の実施の形態に従うコントローラ100による検査処理を表わすフローチャートである。図16に示される処理は、コントローラ100のプロセッサ102(図5参照)がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
ステップS210において、プロセッサ102は、検査処理の実行指示を受け付けたことに基づいて、コンベア200Aによるワークの搬送を開始する。ワークは、当該搬送過程で、全方位カメラ300を周回する。
ステップS220において、プロセッサ102は、撮影タイミングが到来したか否かを判断する。撮影タイミングは、たとえば、一定時間ごとに到来する。プロセッサ102は、撮影タイミングが到来したと判断した場合(ステップS220においてYES)、制御をステップS222に切り替える。そうでない場合には(ステップS220においてNO)、プロセッサ102は、ステップS220の処理を再び実行する。
ステップS222において、プロセッサ102は、上述の取得部150(図5参照)として、全方位カメラ300に撮影指示を出力し、ワークを表わす入力画像を全方位カメラ300から取得する。
ステップS224において、プロセッサ102は、ステップS222で取得した入力画像からワークを検知する。図1で説明したように、プロセッサ102は、トラッキング処理によりコンベア200A上の各ワークの位置を把握している。コンベア200A上の各ワークの位置と、入力画像内の各ワークの位置とは対応しているため、プロセッサ102は、トラッキング処理により特定されるコンベア200A上の各ワークの位置から入力画像内の各ワークの位置を特定することができる。なお、プロセッサ102は、テンプレートマッチングなどの画像処理技術を用いて入力画像内のワークの位置を特定してもよい。
ステップS226において、プロセッサ102は、上述の特定部152(図5参照)として、ステップS224で検知されたワークから未検査のワークのいずれかを検査対象のワークとして決定し、当該検査対象のワークの向きを特定する。ワークの向きの特定方法には、「第1の実施の形態」において説明した「第1〜第3特定方法」が採用される。
ステップS228において、プロセッサ102は、上述の検査部154(図5参照)として、上述の基準画像情報135(図15参照)を参照して、ステップS226で特定されたワークの向きに対応する基準画像を取得し、当該基準画像と入力画像とを比較する。基準画像と入力画像との比較処理については図15で説明した通りであるので、その説明については繰り返さない。
ステップS230において、プロセッサ102は、ステップS228での比較結果に基づいて、検査対象のワークの外観が異常であるか否かを判断する。一例として、プロセッサ102は、基準画像と入力画像との類似度が予め定められた値以下である場合に、検査対象のワークの外観が異常であると判断する。プロセッサ102は、検査対象のワークの外観が異常であると判断した場合(ステップS230においてYES)、制御をステップS234に切り替える。そうでない場合には(ステップS230においてNO)、プロセッサ102は、制御をステップS232に切り替える。
ステップS232において、プロセッサ102は、検査対象のワークの外観が正常であることを報知する。当該報知の方法は、任意である。一例として、ワークの外観が正常であることは、メッセージとして表示されてもよいし、音声として出力されてもよい。
ステップS234において、プロセッサ102は、検査対象のワークの外観が異常であることを報知する。当該報知の方法は、任意である。一例として、ワークの外観が異常であることは、メッセージとして表示されてもよいし、音声として出力されてもよい。
ステップS240において、プロセッサ102は、ステップS224において検知された全ワークの検査が終了したか否かを判断する。プロセッサ102は、ステップS224において検知された全ワークの検査が終了したと判断した場合(ステップS240においてYES)、制御をステップS250に切り替える。そうでない場合には(ステップS240においてNO)、プロセッサ102は、制御をステップS226に戻す。
ステップS250において、プロセッサ102は、検査処理を終了するか否かを判断する。一例として、プロセッサ102は、検査処理の終了操作を受け付けた場合に、検査処理を終了すると判断する。プロセッサ102は、検査処理を終了すると判断した場合(ステップS250においてYES)、図16に示される検査処理を終了する。そうでない場合には(ステップS250においてNO)、プロセッサ102は、制御をステップS220に戻す。
[E.第2の実施の形態のまとめ]
以上のようにして、第2の実施の形態においては、検査対象物であるワークは、コンベア200Aによって全方位カメラ300を周回させられる。これにより、全方位カメラ300は、複数のワークを同時に撮影することができ、複数のワークを同時に検査することができる。
また、コンベア200Aは、ワークの姿勢を維持させた状態で全方位カメラ300を各ワークに周回させる。コントローラ100は、ワークが周回している間の複数のタイミングにおいて全方位カメラ300に撮影指示を出力する。これにより、全方位カメラ300は、様々な方向から各ワークを撮影することができる。その結果、コントローラ100は、ワークを異なる方向から表わした複数の入力画像を各ワークについて取得することができる。
<第3の実施の形態>
[概要]
第1の実施の形態においては、検査対象物であるワークWの形状が立方体であった。これに対して、第3の実施の形態においては、検査対象物であるワークWの形状は円筒形である。ワークが円筒形である場合には、ワークの側面を異なる方向から撮影したとしても、画像内に写るワークの形状は変化しない。そのため、第3の実施の形態に従うコントローラ100は、検査対象物の形状が円筒形である場合には、ワークの向きを特定しない。これにより処理時間が短縮化される。
その他の点については「第1の実施の形態」で説明した通りであるので、以下ではそれらの説明については繰り返さない。
[B.ワークWの撮影処理]
図17および図18を参照して、第3の実施の形態におけるワークWの撮影処理について説明する。
図17は、第3の実施の形態に従うロボット200が全方位カメラ300の周囲をワークWに周回させている過程を示す図である。図17に示されるように、本実施の形態においては、ワークWの形状が円筒形である。コントローラ100は、ワークWが全方位カメラ300の周囲を周回している間の複数のタイミングにおいて全方位カメラ300に撮影指示を出力する。これにより、全方位カメラ300は、様々な方向からワークWを撮影することができる。その結果、コントローラ100は、ワークWを異なる方向から表わした複数の入力画像を全方位カメラ300から取得することができる。
図18は、第3の実施の形態に従う全方位カメラ300から得られた入力画像の一例を示す図である。一例として、タイミングt21において、コントローラ100は、全方位カメラ300に撮影指示を出力したとする。その結果、入力画像39Aが得られる。同様に、タイミングt22において、コントローラ100は、全方位カメラ300に撮影指示を出力したとする。その結果、入力画像39Bが得られる。同様に、タイミングt23において、コントローラ100は、全方位カメラ300に撮影指示を出力したとする。その結果、入力画像39Cが得られる。同様に、タイミングt24において、コントローラ100は、全方位カメラ300に撮影指示を出力したとする。その結果、入力画像39Dが得られる。
入力画像39A〜39Dに示されるように、ワークWが円筒形である場合には、ワークWの側面を異なる方向から撮影したとしても、入力画像内に写るワークWの形状は変化しない。そのため、本実施の形態に従うコントローラ100は、入力画像内に写るワークの向きを特定しなくてもよい。また、本実施の形態においては、ワークWの向きごとに基準画像を準備する必要がなく、少なくとも1つの基準画像が準備されていれば十分である。
コントローラ100は、ワークWを各方向から撮影して得られた入力画像のそれぞれと、予め準備されている基準画像とを比較し、当該比較結果に基づいて、ワークWを検査する。これにより、コントローラ100は、あらゆる方向から円筒形状のワークWを検査することができる。
[第3の実施の形態のまとめ]
以上のようにして、ワークが円筒形である場合には、ワークの側面を異なる方向から撮影したとしても、入力画像内に写るワークの形状は変化しない。そのため、本実施の形態に従うコントローラ100は、検査対象物の形状が円筒形である場合には、ワークの向きを特定しない。これにより処理時間が短縮化される。
<第4の実施の形態>
第1の実施の形態においては、ロボット200は、全方位カメラ300の周囲をワークWに円形に周回させていた。これに対して、第4の実施の形態においては、ロボット200は、全方位カメラ300の周囲をワークWに正方形に周回させる。
図19は、ロボット200が、全方位カメラ300の周囲をワークWに正方形に周回させている様子を示す図である。このように、ワークWの周回軌道は、円形に限定されない。ワークWの姿勢が維持された状態であれば、ワークWの周回軌道は任意である。たとえば、ワークWの周回軌道は、楕円形であってもよいし、矩形であってもよいし、その他の形状であってもよい。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
1 検査システム、20A,20B,200A コンベア、30A〜30D,33A〜33D,37A〜37D,38,39A〜39D 入力画像、51 画像センサ、52 カウンタ、53 エンコーダ、54,56 フィールドネットワーク、100 コントローラ、102 プロセッサ、104 チップセット、106 主記憶装置、108 二次記憶装置、110 ローカルネットワークコントローラ、112 USBコントローラ、114 メモリカードインターフェイス、116 メモリカード、118,120 フィールドバスコントローラ、122 内部バスコントローラ、124 I/Oユニット、128 マーク情報、130 ユーザプログラム、131 シーケンスシーケンスプログラム、132 モーションプログラム、133 検査プログラム、134 カメラ位置、135 基準画像情報、135A,136A〜136D 基準画像、150 取得部、152 特定部、154 検査部、200 ロボット、210 把持部分、211 メモリ、211A,211B マーク、300 全方位カメラ、331 全方位ミラー、332 撮影ユニット。

Claims (10)

  1. 検査対象物を検査するための検査システムであって、
    全方位カメラと、
    前記検査対象物の姿勢を維持した状態で前記全方位カメラの周囲を前記検査対象物に周回させるための移動装置と、
    前記移動装置が前記全方位カメラの周囲を前記検査対象物に周回させている間の複数のタイミングにおいて前記全方位カメラに撮影指示を出力し、前記検査対象物を異なる方向から表わした複数の入力画像を前記全方位カメラから取得するための取得部と、
    前記複数の入力画像を用いて前記検査対象物を検査するための検査部とを備える、検査システム。
  2. 前記移動装置は、前記全方位カメラから前記検査対象物までの距離を一定に維持した状態で、前記全方位カメラの周囲を前記検査対象物に周回させる、請求項1に記載の検査システム。
  3. 前記移動装置は、前記検査対象物が前記全方位カメラを周回している間、当該検査対象物を停止させない、請求項1または2に記載の検査システム。
  4. 前記検査システムは、さらに、
    前記検査対象物と同種類の物体を異なる方向から予め撮影して得られた基準画像を当該基準画像に写る当該物体の向きに対応付けて格納するための記憶部と、
    前記複数の入力画像の第1入力画像に写る前記検査対象物の第1の向きと、前記複数の入力画像の第2入力画像に写る前記検査対象物の第2の向きとを特定するための特定部とを備え、
    前記検査部は、
    前記第1の向きに対付けられている前記基準画像と前記第1入力画像とを比較し、
    前記第2の向きに対付けられている前記基準画像と前記第2入力画像とを比較し、
    当該比較結果に基づいて前記検査対象物を検査する、請求項1〜3のいずれか1項に記載の検査システム。
  5. 前記特定部は、
    前記第1入力画像の撮影タイミングにおける検査対象物の位置と、前記全方位カメラの位置とに基づいて、前記第1の向きを特定し、
    前記第2入力画像の撮影タイミングにおける検査対象物の位置と、前記全方位カメラの位置とに基づいて、前記第2の向きを特定する、請求項4に記載の検査システム。
  6. 前記移動装置の表面の異なる位置には、それぞれ、異なるマークが付されており、
    複数の前記マークの各々には、前記検査対象物の向きが予め対応付けられており、
    前記特定部は、
    前記第1入力画像に写っているマークに対応付けられている向きを前記第1の向きとして特定し、
    前記第2入力画像に写っているマークに対応付けられている向きを前記第2の向きとして特定する、請求項4に記載の検査システム。
  7. 前記検査部は、
    前記第1入力画像の撮影タイミングにおける前記検査対象物の位置と、前記全方位カメラとの位置関係に基づいて、前記第1入力画像内に写る検査対象物の位置を特定するとともに、当該位置に写っている検査対象物と前記第1の向きに対応付けられている前記基準画像とを比較し、
    前記第2入力画像の撮影タイミングにおける前記検査対象物の位置と、前記全方位カメラとの位置関係に基づいて、前記第2入力画像内に写る検査対象物の位置を特定するとともに、当該位置に写っている検査対象物と前記第2の向きに対応付けられている前記基準画像とを比較し、
    当該比較結果に基づいて前記検査対象物を検査する、請求項4〜6のいずれか1項に記載の検査システム。
  8. 検査対象物を移動するための移動装置と、前記検査対象物を撮影するための全方位カメラとを制御するためのコントローラであって、
    前記コントローラは、
    前記検査対象物の姿勢を維持した状態で前記全方位カメラの周囲を前記検査対象物に周回させるための命令を前記移動装置に出力し、前記移動装置が前記全方位カメラの周囲を前記検査対象物に周回させている間の複数のタイミングにおいて前記全方位カメラに撮影指示を出力し、前記検査対象物を異なる方向から表わした複数の入力画像を前記全方位カメラから取得するための取得部と、
    前記複数の入力画像を用いて前記検査対象物を検査するための検査部とを備える、コントローラ。
  9. 検査対象物を検査するための検査方法であって、
    前記検査対象物の姿勢を維持した状態で全方位カメラの周囲を前記検査対象物に周回させるステップと、
    前記検査対象物が前記全方位カメラの周囲を周回している間の複数のタイミングにおいて前記全方位カメラに撮影指示を出力し、前記検査対象物を異なる方向から表わした複数の入力画像を前記全方位カメラから取得するステップと、
    前記複数の入力画像を用いて前記検査対象物を検査するステップとを備える、検査方法。
  10. 検査対象物を検査するための検査プログラムであって、
    前記検査プログラムは、コンピュータに、
    前記検査対象物の姿勢を維持した状態で全方位カメラの周囲を前記検査対象物に周回させるステップと、
    前記検査対象物が前記全方位カメラの周囲を周回している間の複数のタイミングにおいて前記全方位カメラに撮影指示を出力し、前記検査対象物を異なる方向から表わした複数の入力画像を前記全方位カメラから取得するステップと、
    前記複数の入力画像を用いて前記検査対象物を検査するステップとを実行させる、検査プログラム。
JP2017008255A 2017-01-20 2017-01-20 検査システム、コントローラ、検査方法、および検査プログラム Active JP6790861B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017008255A JP6790861B2 (ja) 2017-01-20 2017-01-20 検査システム、コントローラ、検査方法、および検査プログラム
CN201710934579.2A CN108326825B (zh) 2017-01-20 2017-10-10 检查***、控制器、检查方法以及记录介质
US15/785,467 US10395360B2 (en) 2017-01-20 2017-10-17 Inspection system, controller, inspection method, and inspection program
EP17197451.2A EP3351927B1 (en) 2017-01-20 2017-10-20 Inspection system, controller, inspection method, and inspection program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017008255A JP6790861B2 (ja) 2017-01-20 2017-01-20 検査システム、コントローラ、検査方法、および検査プログラム

Publications (2)

Publication Number Publication Date
JP2018116007A true JP2018116007A (ja) 2018-07-26
JP6790861B2 JP6790861B2 (ja) 2020-11-25

Family

ID=60161992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017008255A Active JP6790861B2 (ja) 2017-01-20 2017-01-20 検査システム、コントローラ、検査方法、および検査プログラム

Country Status (4)

Country Link
US (1) US10395360B2 (ja)
EP (1) EP3351927B1 (ja)
JP (1) JP6790861B2 (ja)
CN (1) CN108326825B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6805199B2 (ja) * 2018-03-26 2020-12-23 株式会社東芝 設備監視システム
US20230221120A1 (en) * 2020-06-11 2023-07-13 Interaptix Inc. A system and method for remote inspection of a space

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06160066A (ja) * 1992-11-24 1994-06-07 Sekisui Chem Co Ltd 外観検査装置
JPH11326235A (ja) * 1998-05-06 1999-11-26 Ntt Fanet Systems Kk 検査対象物の外観検査方法とその装置
US20060061767A1 (en) * 2004-07-19 2006-03-23 Laurent Aubanel Measurement instrument for inspecting painted bodywork parts, the instrument being provided with an anti-damage device
JP2007218725A (ja) * 2006-02-16 2007-08-30 Ntt Infranet Co Ltd トンネル等閉鎖空間内壁面点検システム
CN101713747A (zh) * 2009-11-23 2010-05-26 华东交通大学 基于红外热成像技术的水果表面早期缺陷检测方法及装置
JP2016099236A (ja) * 2014-11-21 2016-05-30 上野精機株式会社 外観検査装置
JP2017015396A (ja) * 2015-06-26 2017-01-19 キヤノン株式会社 検査方法、検査装置、処理装置、プログラム及び記録媒体

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000180382A (ja) 1998-12-11 2000-06-30 Mitsubishi Nuclear Fuel Co Ltd 外観検査装置
US6493079B1 (en) * 2000-09-07 2002-12-10 National Instruments Corporation System and method for machine vision analysis of an object using a reduced number of cameras
CN100533132C (zh) * 2004-09-06 2009-08-26 欧姆龙株式会社 基板检查方法及基板检查装置
US7689003B2 (en) * 2006-03-20 2010-03-30 Siemens Energy, Inc. Combined 2D and 3D nondestructive examination
US9124873B2 (en) * 2010-12-08 2015-09-01 Cognex Corporation System and method for finding correspondence between cameras in a three-dimensional vision system
JP5316563B2 (ja) 2011-02-15 2013-10-16 オムロン株式会社 画像処理装置および画像処理システム
CA2925301A1 (en) * 2013-10-03 2015-04-09 Renishaw Plc Method of inspecting an object with a camera probe
JP6545989B2 (ja) * 2015-03-31 2019-07-17 ヴィスコ・テクノロジーズ株式会社 画像検査装置
US10055882B2 (en) * 2016-08-15 2018-08-21 Aquifi, Inc. System and method for three-dimensional scanning and for capturing a bidirectional reflectance distribution function
CN206638598U (zh) 2017-03-29 2017-11-14 江苏大学 一种基于单摄像机全方位主动视觉的电连接器壳体缺陷检测装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06160066A (ja) * 1992-11-24 1994-06-07 Sekisui Chem Co Ltd 外観検査装置
JPH11326235A (ja) * 1998-05-06 1999-11-26 Ntt Fanet Systems Kk 検査対象物の外観検査方法とその装置
US20060061767A1 (en) * 2004-07-19 2006-03-23 Laurent Aubanel Measurement instrument for inspecting painted bodywork parts, the instrument being provided with an anti-damage device
JP2007218725A (ja) * 2006-02-16 2007-08-30 Ntt Infranet Co Ltd トンネル等閉鎖空間内壁面点検システム
CN101713747A (zh) * 2009-11-23 2010-05-26 华东交通大学 基于红外热成像技术的水果表面早期缺陷检测方法及装置
JP2016099236A (ja) * 2014-11-21 2016-05-30 上野精機株式会社 外観検査装置
JP2017015396A (ja) * 2015-06-26 2017-01-19 キヤノン株式会社 検査方法、検査装置、処理装置、プログラム及び記録媒体

Also Published As

Publication number Publication date
EP3351927A1 (en) 2018-07-25
CN108326825A (zh) 2018-07-27
EP3351927B1 (en) 2021-05-26
US10395360B2 (en) 2019-08-27
CN108326825B (zh) 2021-10-22
JP6790861B2 (ja) 2020-11-25
US20180211372A1 (en) 2018-07-26

Similar Documents

Publication Publication Date Title
US11021333B2 (en) Conveyor tracking system and calibration method
US10407250B2 (en) Image processing system, image processing apparatus, workpiece pickup method, and workpiece pickup program
US9727053B2 (en) Information processing apparatus, control method for information processing apparatus, and recording medium
JP5316563B2 (ja) 画像処理装置および画像処理システム
CN111801198A (zh) 一种手眼标定方法、***及计算机存储介质
US20170019659A1 (en) 3D scanning control apparatus based on FPGA and control method and system thereof
JP2012030320A (ja) 作業システム、作業ロボット制御装置および作業プログラム
WO2020190166A1 (ru) Способ и система захвата объекта с помощью роботизированного устройства
WO2020031790A1 (ja) 制御システムおよび制御装置
CN112276936A (zh) 三维数据生成装置以及机器人控制***
CN113379849A (zh) 基于深度相机的机器人自主识别智能抓取方法及***
JP6790861B2 (ja) 検査システム、コントローラ、検査方法、および検査プログラム
WO2021065265A1 (ja) 大きさ推定装置、大きさ推定方法および記憶媒体
CN114310892B (zh) 基于点云数据碰撞检测的物体抓取方法、装置和设备
US10474124B2 (en) Image processing system, image processing device, method of reconfiguring circuit in FPGA, and program for reconfiguring circuit in FPGA
US20160346927A1 (en) Determining the Robot Axis Angle and Selection of a Robot with the Aid of a Camera
JP2010184300A (ja) 姿勢変更システムおよび姿勢変更方法
EP3936286A1 (en) Robot control device, robot control method, and robot control program
TWI696529B (zh) 自動定位方法以及自動控制裝置
Liu et al. Design of a pc-based open industrial robot control system integrated with real-time machine vision
Sultan et al. Hand-eye 3D pose estimation for a drawing robot
US20230123629A1 (en) 3d computer-vision system with variable spatial resolution
Popescu et al. Visual Servoing System for Local Robot Control in a Flexible Assembly Line
JP2023044764A (ja) 撮像システム
Cheng et al. Preliminary Implementation of Grasping Operation by a Collaborative Robot Arm: Using a Ball as Example

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200923

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201019

R150 Certificate of patent or registration of utility model

Ref document number: 6790861

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150