(57)【要約】【課題】ワークが重なって搬送されている場合であっても、ワークの位置が変動しないようにワークをピックアップすることができる画像処理システムを提供する。【解決手段】画像処理システムは、ワークのコンベアが撮影視野に含まれるように配置され、撮影視野に含まれる被写体を撮影する撮影部を備える。撮影部は、被写体を撮影することで、被写体を表わす輝度画像４０と、コンベア上から被写体の各点までの高さからなる距離画像５０とを生成する。画像処理システムは、輝度画像４０内において複数のワークのそれぞれの位置を計測する計測部と、輝度画像４０内における複数のワークのそれぞれの位置に対応する距離画像５０内の高さ情報に基づいて、複数のワークの重なり順を特定する特定部と、複数のワークの内、重なり順が最上位であるワークを他のワークよりも優先的にピックアップするようにピックアップ順を決定する決定部とを備える。【選択図】図３
2018111140.tif 000002
【特許請求の範囲】
【請求項１】
コンベア上を搬送される重なり合った複数のワークについてロボットによるピックアップ順を決定するための画像処理システムであって、
前記コンベアが撮影視野に含まれるように配置され、前記撮影視野に含まれる被写体を撮影するための撮影部を備え、
前記撮影部は、前記被写体を撮影することで、前記被写体を表わす輝度画像と、前記コンベア上から前記被写体の各点までの高さからなる距離画像とを生成し、さらに、
前記輝度画像内において前記複数のワークのそれぞれの位置を計測するための計測部と、
前記輝度画像内における前記複数のワークのそれぞれの位置に対応する前記距離画像内の高さ情報に基づいて、前記複数のワークの重なり順を特定するための特定部と、
前記複数のワークの内、前記重なり順が最上位であるワークを他のワークよりも優先的にピックアップするように前記ピックアップ順を決定するための決定部とを備える、画像処理システム。
【請求項２】
前記決定部は、前記重なり順が上位であるワークから順にピックアップするように前記ピックアップ順を決定する、請求項１に記載の画像処理システム。
【請求項３】
前記特定部は、重なり合った複数のワークからなるワーク群が前記輝度画像内に複数含まれる場合には、各ワーク群ついてワークの重なり順を特定し、
前記決定部は、各ワーク群において前記重なり順が最上位であるワークの内、前記コンベアの搬送経路においてより下流側に存在するワークを優先的にピックアップするように前記ピックアップ順を決定する、請求項１または２に記載の画像処理システム。
【請求項４】
前記決定部は、他のワークと重なり合っていないワークと、重なり合った複数のワークとが前記輝度画像内に含まれる場合には、当該重なり合っていないワークと、当該重なり合った複数のワークにおいて前記重なり順が最上位であるワークとの内、前記コンベアの搬送経路においてより下流側に存在するワークを優先的にピックアップするように前記ピックアップ順を決定する、請求項１〜３のいずれか１項に記載の画像処理システム。
【請求項５】
前記撮影部は、
前記複数のワークの搬送方向と直交する方向に広がったライン状の光を、前記コンベア上を搬送される前記複数のワークに投光するための投光部と、
前記コンベア上を搬送される前記複数のワークから前記光の反射光を順次受け、各受光タイミングにおける当該反射光の受光位置に基づいて前記距離画像を生成するとともに、前記撮影視野に含まれる前記被写体からの反射光を受けて前記輝度画像を生成するための受光部とを含む、請求項１〜４のいずれか１項に記載の画像処理システム。
【請求項６】
前記撮影部は、
前記複数のワークの搬送方向と直交する方向に広がったライン状の光を前記コンベア上を搬送される前記複数のワークに投光するための投光部と、
前記コンベアを搬送される前記複数のワークから前記光の反射光を順次受け、各受光タイミングにおける当該反射光の受光位置に基づいて前記距離画像を生成するための第１受光部と、
前記撮影視野に含まれる前記被写体からの反射光を受けて前記輝度画像を生成するための第２受光部とを含む、請求項１〜４のいずれか１項に記載の画像処理システム。
【請求項７】
コンベア上を搬送される重なり合った複数のワークについてロボットによるピックアップ順を決定するための画像処理装置であって、
前記コンベアが撮影視野に含まれるように配置され、前記撮影視野に含まれる被写体を撮影するための撮影部を備え、
前記撮影部は、前記被写体を撮影することで、前記被写体を表わす輝度画像と、前記コンベア上から前記被写体の各点までの高さからなる距離画像とを生成し、さらに、
前記輝度画像内において前記複数のワークのそれぞれの位置を計測するための計測部と、
前記輝度画像内における前記複数のワークのそれぞれの位置に対応する前記距離画像内の高さ情報に基づいて、前記複数のワークの重なり順を特定するための特定部と、
前記複数のワークの内、前記重なり順が最上位であるワークを他のワークよりも優先的にピックアップするように前記ピックアップ順を決定するための決定部とを備える、画像処理装置。
【請求項８】
コンベア上を搬送される重なり合った複数のワークについてロボットによるピックアップ順を決定するためのピックアップ方法であって、
前記コンベアが撮影視野に含まれるように配置され撮影部を用いて前記撮影視野に含まれる被写体を撮影するステップを備え、
前記撮影するステップは、前記被写体を撮影することで、前記被写体を表わす輝度画像と、前記コンベア上から前記被写体の各点までの高さからなる距離画像とを生成するステップを含み、さらに、
前記輝度画像内において前記複数のワークのそれぞれの位置を計測するステップと、
前記輝度画像内における前記複数のワークのそれぞれの位置に対応する前記距離画像内の高さ情報に基づいて、前記複数のワークの重なり順を特定するステップと、
前記複数のワークの内、前記重なり順が最上位であるワークを他のワークよりも優先的にピックアップするように前記ピックアップ順を決定するステップとを備える、ピックアップ方法。
【請求項９】
コンベア上を搬送される重なり合った複数のワークについてロボットによるピックアップ順を決定するためのピックアッププログラムあって、
前記ピックアッププログラムは、コンピュータに、
前記コンベアが撮影視野に含まれるように配置され撮影部を用いて前記撮影視野に含まれる被写体を撮影するステップを備え、
前記撮影するステップは、前記被写体を撮影することで、前記被写体を表わす輝度画像と、前記コンベア上から前記被写体の各点までの高さからなる距離画像とを生成するステップを含み、さらに、
前記輝度画像内において前記複数のワークのそれぞれの位置を計測するステップと、
前記輝度画像内における前記複数のワークのそれぞれの位置に対応する前記距離画像内の高さ情報に基づいて、前記複数のワークの重なり順を特定するステップと、
前記複数のワークの内、前記重なり順が最上位であるワークを他のワークよりも優先的にピックアップするように前記ピックアップ順を決定するステップとを実行させる、ピックアッププログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンベア上を搬送されるワークをピックアップするためのロボットを制御するための技術に関する。
【背景技術】
【０００２】
ＦＡ（Factory  Automation）分野において、コンベア上を搬送されるワークをピックアップすることができる産業用のロボットが普及している。ロボットは、たとえば、コンベア上を搬送されるワークをピックアップし、他のコンベア上を搬送される容器にプレースするために利用される（所謂ピック＆プレース）。
【０００３】
コンベア上を搬送されるワークは、重なっていることがある。このような場合、下側のワークがピックアップされると、上側のワークは、下側のワークの移動の影響を受けて、上側のワークの位置が変動してしまう。その結果、ロボットは、ワークの位置を再度取り直さなければならない。このような問題を解決する方法の一例として、ワークの重なりを搬送過程で解消することが考えられる。ワークの重なりを解消するための技術に関し、特開２０１５−１７４７５８号公報（特許文献１）は、「単包状の袋群の袋同士の様々な重なり状態を搬送中に確実に解消することが可能な」コンベア式の搬送装置を開示している。しかしながら、当該搬送装置は、搬送過程でワークの重なりを解消するための構成が必要となる。そのため、搬送装置の構成が複雑になってしまう。
【０００４】
近年、搬送過程でワークの重なりを解消することなくワークをピックアップするための技術が開発されている。このような技術に関し、特開２０１２−０５５９９５号公報（特許文献２）は、「互いに重なり合わないように置かれた条件下において」上側のワークの位置を変動させずに下側のワークをピックアップするための多関節ロボットを開示している。特許文献２に開示される多関節ロボットは、ピックアップ対象のワークを所定の移動量だけ水平面方向に移動させてから当該ワークをピックアップする。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−１７４７５８号公報
【特許文献２】特開２０１２−０５５９９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献２に開示される多関節ロボットは、「互いに重なり合わないように置かれた条件下において」所定の移動量だけ水平面方向ワークを移動させてからワークをピックアップする。そのため、多関節ロボットが重なり合っているワークの内、下側のワークを移動した場合には、下側のワークの移動の影響を受けて上側のワークの位置が変動してしまう。その結果、多関節ロボットは、ワークの位置を再度取り直さなければならない。したがって、ワークが重なって搬送されている場合であっても、各ワークの位置が変動しないようにワークをピックアップするための技術が望まれている。
【課題を解決するための手段】
【０００７】
ある局面に従うと、コンベア上を搬送される重なり合った複数のワークについてロボットによるピックアップ順を決定するための画像処理システムは、上記コンベアが撮影視野に含まれるように配置され、上記撮影視野に含まれる被写体を撮影するための撮影部を備える。上記撮影部は、上記被写体を撮影することで、上記被写体を表わす輝度画像と、上記コンベア上から上記被写体の各点までの高さからなる距離画像とを生成する。上記画像処理システムは、さらに、上記輝度画像内において上記複数のワークのそれぞれの位置を計測するための計測部と、上記輝度画像内における上記複数のワークのそれぞれの位置に対応する上記距離画像内の高さ情報に基づいて、上記複数のワークの重なり順を特定するための特定部と、上記複数のワークの内、上記重なり順が最上位であるワークを他のワークよりも優先的にピックアップするように上記ピックアップ順を決定するための決定部とを備える。
【０００８】
好ましくは、上記決定部は、上記重なり順が上位であるワークから順にピックアップするように上記ピックアップ順を決定する。
【０００９】
好ましくは、上記特定部は、重なり合った複数のワークからなるワーク群が上記輝度画像内に複数含まれる場合には、各ワーク群ついてワークの重なり順を特定する。上記決定部は、各ワーク群において上記重なり順が最上位であるワークの内、上記コンベアの搬送経路においてより下流側に存在するワークを優先的にピックアップするように上記ピックアップ順を決定する。
【００１０】
好ましくは、上記決定部は、他のワークと重なり合っていないワークと、重なり合った複数のワークとが上記輝度画像内に含まれる場合には、当該重なり合っていないワークと、当該重なり合った複数のワークにおいて上記重なり順が最上位であるワークとの内、上記コンベアの搬送経路においてより下流側に存在するワークを優先的にピックアップするように上記ピックアップ順を決定する。
【００１１】
好ましくは、上記撮影部は、上記複数のワークの搬送方向と直交する方向に広がったライン状の光を、上記コンベア上を搬送される上記複数のワークに投光するための投光部と、上記コンベア上を搬送される上記複数のワークから上記光の反射光を順次受け、各受光タイミングにおける当該反射光の受光位置に基づいて上記距離画像を生成するとともに、上記撮影視野に含まれる上記被写体からの反射光を受けて上記輝度画像を生成するための受光部とを含む。
【００１２】
好ましくは、上記撮影部は、上記複数のワークの搬送方向と直交する方向に広がったライン状の光を上記コンベア上を搬送される上記複数のワークに投光するための投光部と、上記コンベアを搬送される上記複数のワークから上記光の反射光を順次受け、各受光タイミングにおける当該反射光の受光位置に基づいて上記距離画像を生成するための第１受光部と、上記撮影視野に含まれる上記被写体からの反射光を受けて上記輝度画像を生成するための第２受光部とを含む。
【００１３】
他の局面に従うと、コンベア上を搬送される重なり合った複数のワークについてロボットによるピックアップ順を決定するための画像処理装置は、上記コンベアが撮影視野に含まれるように配置され、上記撮影視野に含まれる被写体を撮影するための撮影部を備える。上記撮影部は、上記被写体を撮影することで、上記被写体を表わす輝度画像と、上記コンベア上から上記被写体の各点までの高さからなる距離画像とを生成する。上記画像処理装置は、さらに、上記輝度画像内において上記複数のワークのそれぞれの位置を計測するための計測部と、上記輝度画像内における上記複数のワークのそれぞれの位置に対応する上記距離画像内の高さ情報に基づいて、上記複数のワークの重なり順を特定するための特定部と、上記複数のワークの内、上記重なり順が最上位であるワークを他のワークよりも優先的にピックアップするように上記ピックアップ順を決定するための決定部とを備える。
【００１４】
他の局面に従うと、コンベア上を搬送される重なり合った複数のワークについてロボットによるピックアップ順を決定するためのピックアップ方法は、上記コンベアが撮影視野に含まれるように配置され撮影部を用いて上記撮影視野に含まれる被写体を撮影するステップを備える。上記撮影するステップは、上記被写体を撮影することで、上記被写体を表わす輝度画像と、上記コンベア上から上記被写体の各点までの高さからなる距離画像とを生成するステップを含む。上記ピックアップ方法は、さらに、上記輝度画像内において上記複数のワークのそれぞれの位置を計測するステップと、上記輝度画像内における上記複数のワークのそれぞれの位置に対応する上記距離画像内の高さ情報に基づいて、上記複数のワークの重なり順を特定するステップと、上記複数のワークの内、上記重なり順が最上位であるワークを他のワークよりも優先的にピックアップするように上記ピックアップ順を決定するステップとを備える。
【００１５】
他の局面に従うと、コンベア上を搬送される重なり合った複数のワークについてロボットによるピックアップ順を決定するためのピックアッププログラムは、コンピュータに、上記コンベアが撮影視野に含まれるように配置され撮影部を用いて上記撮影視野に含まれる被写体を撮影するステップを備える。上記撮影するステップは、上記被写体を撮影することで、上記被写体を表わす輝度画像と、上記コンベア上から上記被写体の各点までの高さからなる距離画像とを生成するステップを含む。上記ピックアッププログラムは、上記コンピュータに、さらに、上記輝度画像内において上記複数のワークのそれぞれの位置を計測するステップと、上記輝度画像内における上記複数のワークのそれぞれの位置に対応する上記距離画像内の高さ情報に基づいて、上記複数のワークの重なり順を特定するステップと、上記複数のワークの内、上記重なり順が最上位であるワークを他のワークよりも優先的にピックアップするように上記ピックアップ順を決定するステップとを実行させる。
【発明の効果】
【００１６】
ある局面において、ワークが重なって搬送されている場合であっても、ワークの位置が変動しないようにワークをピックアップすることができる。
【００１７】
本開示の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１８】
【図１】第１の実施の形態に従う画像処理システムの基本構成を示す模式図である。
【図２】第１の実施の形態における撮影装置を示す図である。
【図３】ワークのピックアップ順を決定する方法を概略的に示す概念図である。
【図４】第１の実施の形態に従う画像センサの機能構成の一例を示す図である。
【図５】コンベアを搬送されるワークの一例を示す図である。
【図６】コンベアを搬送されるワークの他の例を示す図である。
【図７】ワークの重なり順を特定する処理を概略的に示す概念図である。
【図８】画像センサとＰＬＣ（Programmable Logic Controller）とロボットとの間のデータの流れを示すシーケンス図である。
【図９】ワークの計測処理を表わすフローチャートである。
【図１０】ピックアップ対象のワークのエンキュー処理を示す図である。
【図１１】ピックアップ対象のワークのデキュー処理を示す図である。
【図１２】第１の実施の形態に従う画像センサのハードウェア構成を示す模式図である。
【図１３】第１の実施の形態に従うＰＬＣのハードウェア構成例を示すブロッグ図である。
【図１４】第２の実施の形態に従う画像処理システムの基本構成を示す模式図である。
【図１５】第３の実施の形態における撮影装置を示す図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【００２０】
＜第１の実施の形態＞
［Ａ．画像処理システム１］
図１を参照して、本実施の形態に従う画像処理システム１の基本構成について説明する。図１は、本実施の形態に従う画像処理システム１の基本構成を示す模式図である。
【００２１】
図１に示されるように、画像処理システム１は、画像処理装置２と、撮影装置１３０と、ロボット３００とを含む。画像処理装置２は、画像センサ１００と、ＰＬＣ２００とで構成されている。
【００２２】
ＰＬＣ２００には、画像センサ１００、カウンタ１２７、サーボドライバ２３０、表示装置２３１、入力装置２３２などが接続され得る。画像センサ１００およびカウンタ１２７は、デイジーチェーンでフィールドネットワークＮＷ１によってＰＬＣ２００に接続されている。フィールドネットワークＮＷ１として、たとえば、ＥｔｈｅｒＣＡＴ（登録商標）が採用される。また、ロボット３００は、フィールドネットワークＮＷ２を介してＰＬＣ２００に接続されている。フィールドネットワークＮＷ２として、たとえば、ＥｔｈｅｒＮＥＴ（登録商標）が採用される。サーボドライバ２３０、表示装置２３１、および入力装置２３２は、ＰＬＣ２００に電気的に接続されている。表示装置２３１は、画像を表示可能な液晶パネルなどで構成される。入力装置２３２は、画像処理システム１に対する操作入力を受け付け、典型的には、タッチパネル、キーボード、マウスなどで構成される。カウンタ１２７には、エンコーダ１２８が電気的に接続されている。
【００２３】
カウンタ１２７は、エンコーダ１２８から発生するパルス波に基づいてコンベア２０Ａの移動量を計測する。より具体的には、エンコーダ１２８は、コンベア２０Ａの移動量に応じてパルス信号を発生する。カウンタ１２７は、エンコーダ１２８からパルス信号を受け、当該パルス信号に含まれるパルス数をカウントすることでコンベア２０Ａの移動量を計測する。カウンタ１２７は、パルス波のカウント値を画像センサ１００に一定の通信周期ごとに送信する。
【００２４】
撮影装置１３０は、その撮影視野ＡＲ１にコンベア２０Ａが含まれように配置されており、画像センサ１００からの撮影指示に基づいて撮影視野ＡＲ１に含まれる被写体を撮影する。ここでいう被写体とは、撮影視野ＡＲ１に含まれる撮影対象物の全体のことをいう。すなわち、被写体は、コンベア２０ＡやワークＷなどを含む。画像センサ１００は、定期的に撮影装置１３０に撮影指示を出力する。一例として、画像センサ１００は、前回の撮影指示の出力時におけるカウンタ１２７のカウント値と、現在のカウント値との差分値が所定値を超えたタイミングで、撮影装置１３０に撮影指示を送る。これにより、ワークＷの撮影処理が定期的に実行される。
【００２５】
画像センサ１００は、撮影装置１３０から得られた輝度画像内からワークＷを計測する。一例として、画像センサ１００は、パターンマッチングなどの画像処理によりワークＷを計測する。より具体的には、計測対象のワークを表わすモデル画像が画像センサ１００に予め登録されており、画像センサ１００は、撮影装置１３０から得られた輝度画像内においてモデル画像と類似する画像領域を探索する。モデル画像と類似する画像領域が計測された場合には、画像センサ１００は、当該画像領域の位置を記憶する。画像センサ１００によって計測されたワークＷの位置は、撮影装置１３０におけるカメラ座標系の座標値（ｃｘ，ｃｙ）［ｐｉｘｅｌ］で表わされる。画像センサ１００は、輝度画像内におけるワーク位置をＰＬＣ２００に出力する。
【００２６】
ＰＬＣ２００は、撮影時におけるカウンタ１２７によるカウント値と、予め定められた座標変換式とに基づいて、カメラ座標系の座標値をワールド座標系の座標値に変換する。ワールド座標系は、ロボット３００を制御するための座標系であり、ワールド座標系でのワークＷの位置は、座標値（ｗｘ，ｗｙ，ｗｚ）［ｍｍ］で表わされる。当該座標値は、撮影時におけるワークの位置（以下、「基準位置」ともいう。）となる。
【００２７】
ＰＬＣ２００は、ワールド座標系で示されるワークＷの基準位置に基づいて、ワークＷをトラッキングする。より具体的には、ＰＬＣ２００は、カウンタ１２７から現在のカウント値を受信すると、現在のカウント値と、ワークＷの撮影時におけるカウント値と差に基づいて、撮影時からのワークＷの移動量を算出する。１カウント辺りの移動量は、予め定められている。ＰＬＣ２００は、撮影時におけるワークの基準位置に算出された移動量を加算することで、ワークＷの現在位置を更新する。その後、ＰＬＣ２００は、新たなカウント値を受信する度に、前回のカウント値との差に基づいて、ワークＷの前回からの移動量を算出する。ＰＬＣ２００は、記憶されているワークの位置に当該移動量を加算することで、ワークＷの現在位置を更新する。この更新処理が繰り返されることで、ワークＷのトラッキング処理が実現される。
【００２８】
ＰＬＣ２００は、ワークＷの現在位置がロボット３００の作業エリアＡＲ２に到達したか否かを判断する。ＰＬＣ２００は、ワークＷの現在位置が作業エリアＡＲ２に到達したと判断した場合、ワークＷの現在位置に基づいてワークＷをピックアップするための動作指示を生成し、当該動作指示をサーボドライバ２３０に出力する。サーボドライバ２３０は、ＰＬＣ２００から受け付けた動作指示に基づいて、ロボット３００を駆動し、ワークＷをピックアップし、当該ワークＷを容器Ｃにプレースする。ワークＷのピックアップ方法は、任意である。たとえば、ロボット３００は、ワークＷを吸着することでピックアップ処理を実現してもよいし、アームで把持することでピックアップ処理を実現してもよい。
【００２９】
なお、図１には、画像センサ１００および撮影装置１３０が別個に構成されている例が示されているが、画像センサ１００および撮影装置１３０は、一体的に構成されてもよい。
【００３０】
［Ｂ．撮影装置１３０］
図２を参照して、撮影装置１３０について説明する。図２は、撮影装置１３０の一例を示す図である。図２には、コンベア２０Ａ上を搬送されるワークＷが撮影装置１３０によって撮影されている様子が示されている。
【００３１】
撮影装置１３０は、受光部１３１と、投光部１３２とを含む。撮影装置１３０は、撮影視野ＡＲ１を有し、撮影視野ＡＲ１に含まれる被写体を撮影することで、当該被写体を表わす輝度画像を生成する。同時に、撮影装置１３０は、コンベア２０Ａ上の搬送面から被写体の各点までの高さからなる距離画像を生成する。
【００３２】
一例として、距離画像は、光切断法によって生成される。より具体的には、投光部１３２は、ワークＷの搬送方向と直交する方向に広がったライン状の光ＬＴをワークＷに投光する。受光部１３１は、ワークＷから光ＬＴの反射光を順次受け、各受光タイミングにおける反射光の受光位置に基づいて距離画像を生成する。
【００３３】
典型的には、受光部１３１は、２次元に配置された複数の受光素子で構成される。光ＬＴの反射光が入射する受光素子は、撮影装置１３０から被写体までの距離に応じて変わる。すなわち、受光部１３１が被写体からの光ＬＴの反射光を撮像すると、ラインＬＮ上のプロファイルが得られる。当該プロファイルに三角測量を応用すると、コンベア２０Ａの搬送面からラインＬＮ上の被写体の各点までの高さ情報が得られる。撮影装置１３０は、得られた高さ情報を時系列に並べることで距離画像を生成する。
【００３４】
撮影装置１３０は、距離画像の生成と同時または略同時に輝度画像を生成する。好ましくは、撮影装置１３０は、輝度画像の生成時には、投光部１３２からの光ＬＴの照射を停止する。これにより、受光部１３１は、外光の反射光のみを被写体から受けることができ、輝度画像の生成において光ＬＴの影響を受けない。
【００３５】
なお、上述では、距離画像の各画素がコンベア上から被写体の各点までの高さで表わされている例について説明を行ったが、距離画像の各画素は、撮影装置１３０から被写体の各点までの距離で表わされてもよい。
【００３６】
［Ｃ．ワークのピックアップ順の決定方法］
本実施の形態に従う画像処理システム１は、重なり合った複数のワークについて重なり順を特定し、重なり順が上位であるワークから順にピックアップするようにピックアップ順を決定する。その後、画像処理システム１は、決定したピックアップ順に従ってワークをピック＆プレースする。
【００３７】
以下では、図３を参照して、ワークのピックアップ順を決定する方法について説明する。図３は、ワークＷのピックアップ順を決定する方法を概略的に示す概念図である。
【００３８】
上述したように、撮影装置１３０は、撮影視野ＡＲ１に含まれる被写体を撮影することで、被写体を表わす輝度画像と、コンベア２０Ａ上の搬送面から被写体の各点までの高さからなる距離画像とを生成する。図３には、それらの一例として、輝度画像４０と距離画像５０とが示されている。図３の例では、輝度画像４０および距離画像５０には、重なり合ったワークＷＡ〜ＷＣが写っている。
【００３９】
画像センサ１００は、輝度画像４０内においてワークＷＡ〜ＷＣのそれぞれの位置を計測する。一例として、ワークＷＡ〜ＷＣは、パターンマッチングなどの画像処理によって計測される。画像処理の結果、画像センサ１００は、ワークＷＡを表わすワーク領域４１Ａと、ワークＷＢを表わすワーク領域４１Ｂと、ワークＷＢを表わすワーク領域４１Ａとを計測する。
【００４０】
その後、画像センサ１００は、輝度画像４０内のワーク領域４１Ａ〜４１Ｃのそれぞれに対応する領域（以下、「対応領域」ともいう。）を距離画像５０内において特定する。典型的には、輝度画像４０および距離画像５０は、同一の撮影装置１３０から生成され、輝度画像４０および距離画像５０の撮影タイミングは、同じまたは略同じであるので、輝度画像４０内の被写体と、距離画像５０内の被写体とは同じ位置に写る。そのため、画像センサ１００は、ワーク領域４１Ａと同じ座標値を示すワーク領域５１Ａをワーク領域４１Ａの対応領域として特定する。同様に、画像センサ１００は、ワーク領域４１Ｂの対応領域としてワーク領域５１Ｂを特定する。同様に、画像センサ１００は、ワーク領域４１Ｃの対応領域としてワーク領域５１Ｃを特定する。
【００４１】
画像センサ１００は、ワーク領域５１Ａ〜５１Ｃにおける高さ情報に基づいて、ワークＷＡ〜ＷＣの重なり順を特定する。典型的には、画像センサ１００は、ワーク領域５１Ａ〜５１Ｃに示される高さが大きいワークほど上側に重なっているワークであると認識する。図３の例では、画像センサ１００は、ワークＷＡの重なり順が最上位であると認識し、ワークＷＢの重なり順が２番目である認識し、ワークＷＣの重なり順が３番目である認識する。
【００４２】
画像センサ１００は、重なり合ったワークＷＡ〜ＷＣの内、重なり順が最上位であるワークＷＡを他のワークＷＢ，ＷＣよりも優先的にピックアップするようにピックアップ順を決定する。典型的には、画像センサ１００は、重なり順が上位であるワークから順にピックアップするようにピックアップ順を決定する。図３の例では、画像センサ１００は、ワークＷＡ，ＷＢ，ＷＣの順にピックアップするようにピックアップ順を決定する。
【００４３】
画像センサ１００は、決定したピックアップ順に基づいて、キュー２２５にワーク情報を登録（エンキュー）する。登録されるワーク情報は、たとえば、ワークの識別情報、ワークの位置を含む。ワークの位置は、たとえば、輝度画像４０または距離画像５０内の座標値（ｘ座標、ｙ座標）と、輝度画像４０または距離画像５０内でのワークの傾きθと、コンベア上からのワーク上面までの高さｈとで表わされる。
【００４４】
図３の例では、画像センサ１００は、重なり順が最上位であるワークＷＡをキュー２２５に登録する。次に、画像センサ１００は、重なり順が２番目であるワークＷＢをキュー２２５に登録する。次に、画像センサ１００は、重なり順が３番目であるワークＷＣをキュー２２５に登録する。
【００４５】
キュー２２５に登録された各ワークの位置は、上述のトラッキング処理により順次更新される。ワークのピックアップタイミングが到来すると、ＰＬＣ２００は、キュー２２５を参照して、より先に登録されたワーク情報を取得（デキュー）する。すなわち、キュー２２５に登録されているワーク情報は、先入れ先出し（ＦＩＦＯ：First In First Out）で順次取得される。図３の例では、ワークＷＡのワーク情報が取得される。ＰＬＣ２００は、ワークＷＡをピックアップするための動作指示を生成し、当該動作指示をサーボドライバ２３０に出力する。サーボドライバ２３０は、ＰＬＣ２００から受信した動作指示に基づいて、ロボット３００を駆動し、指定されたワークＷＡをピックアップし、当該ワークＷＡを容器Ｃにプレースする。その後、ＰＬＣ２００は、ワークのピックアップタイミングが到来する度に、より先に登録されたワーク情報をキュー２２５から取得し、取得したワーク情報によって示されるワークのピック＆プレースを実行する。
【００４６】
以上のように、本実施の形態に従う画像センサ１００は、重なり順が上位であるワークから順にピックアップするようにピックアップ順を決定する。これにより、ロボット３００は、より上側に存在するワークから順にピックアップすることができる。ロボット３００は、上側のワークから順にピックアップすることで、各ワークを互いに干渉させずにピックアップすることができる。その結果、画像センサ１００は、各ワークの位置を再度計測する必要がなくなり、ワークを効率的にピックアップすることができる。
【００４７】
［Ｄ．画像センサ１００の機能構成］
図４〜図６を参照して、画像センサ１００の機能について説明する。図４は、画像センサ１００の機能構成の一例を示す図である。
【００４８】
図４に示されるように、画像センサ１００は、主要なハードウェア構成として、制御装置１０１と、記憶装置１２０とを含む。制御装置１０１は、機能構成として、計測部１５２と、特定部１５４とを含む。ＰＬＣ２００は、主要なハードウェア構成として、制御装置２０１と、記憶装置２２０とを含む。制御装置２０１は、機能構成として、受信部２５２と、決定部２５４と、更新部２５６と、ロボット制御部２５８とを含む。
【００４９】
計測部１５２は、コンベア上を搬送されるワークを撮影して得られた輝度画像を撮影装置１３０から定期的に取得する。計測部１５２は、撮影装置１３０から輝度画像を取得したことに基づいて、ワークを計測するための所定の画像処理を当該輝度画像に対して実行し、当該輝度画像内からワークの位置を計測する。当該ワークの位置は、たとえば、輝度画像内における座標値、輝度画像内におけるワークの傾きなどで表わされる。
【００５０】
特定部１５４は、計測部１５２による輝度画像と同時または略同時にワークを撮影して得られた距離画像を撮影装置１３０から取得する。上述のように、距離画像の各画素は、コンベア上から被写体の各点までの高さを表わす。特定部１５４は、輝度画像内における各ワークの位置に対応する領域（すなわち、対応領域）を距離画像から特定し、当該対応領域内に示される高さ情報に基づいて、各ワークの重なり順を特定する。
【００５１】
このとき、重なり合った複数のワークからなるワーク群が輝度画像内に複数含まれる場合には、特定部１５４は、各ワーク群について重なり順を特定する。ここでいうワーク群とは、重なり合ったワークの集合のことをいう。典型的には、特定部１５４は、各ワークの重心間の距離が所定距離よりも短いワークの集合を１つのワーク群としてみなす。なお、特定部１５４は、いずれのワークとも重なりあっていないワーク（以下、「孤立ワーク」ともいう。）については、重なり順を特定しない。ここでいう孤立ワークとは、他のワークと所定距離以上離れているワークのことをいう。
【００５２】
計測部１５２によって計測されたワーク位置、および、特定部１５４によって特定された重なり順は、ワークを識別するためのワークＩＤ、ワーク群を識別するためのワーク群ＩＤに関連付けられた上で計測結果１２４に書き込まれる。このとき、孤立ワークについては、ワーク群ＩＤおよび重なり順が付与されない。
【００５３】
受信部２５２は、画像センサ１００から計測結果１２４を受信し、計測結果１２４を決定部２５４に出力する。また、受信部２５２は、コンベアの移動量に相当するカウント値をカウンタ１２７から受信し、当該カウント値を更新部２５６に出力する。
【００５４】
決定部２５４は、計測結果１２４を参照して、ワークのピックアップ順を決定する。決定部２５４は、様々な方法でワークのピックアップ順を決定する。一例として、決定部２５４は、複数のワーク群が存在する場合には、各ワーク群の最上位に存在するワークの位置に基づいてピックアップ順を決定する。典型的には、決定部２５４は、各ワーク群において重なり順が最上位であるワーク（以下、「最上位ワーク」ともいう。）の内、コンベアの搬送経路においてより下流側に存在する最上位ワークをキュー２２５に登録する。この登録処理が繰り返されることで、ワーク同士が互いに干渉しないように各ワークをピックアップすることができる。
【００５５】
図５は、コンベア２０Ａを搬送されるワークの一例を示す図である。図５の例では、決定部２５４は、ワーク群３０Ａの最上位ワークＷＤと、ワーク群３０Ｂの最上位ワークＷＥとの内、コンベア２０Ａの搬送経路においてより下流側に存在する最上位ワークＷＤを優先的にピックアップするようにピックアップ順を決定する。
【００５６】
また、互いに重なり合ったワーク群と、他のワークと重なり合っていない孤立ワークとが輝度画像内に含まれる場合には、決定部２５４は、当該孤立ワークと、当該ワーク群の最上位ワークとの内、コンベアの搬送経路においてより下流側に存在するワークをキュー２２５に登録する。この登録処理が繰り返されることで、ワーク同士が互いに干渉しないように各ワークをピックアップすることができる。
【００５７】
図６は、コンベア２０Ａを搬送されるワークの他の例を示す図である。図６の例では、決定部２５４は、ワーク群３０Ａの最上位ワークＷＤと孤立ワークＷＦ〜ＷＨとの内、コンベア２０Ａの搬送経路においてより下流側に存在する孤立ワークＷＦを優先的にピックアップするようにピックアップ順を決定する。
【００５８】
更新部２５６は、カウンタ１２７による最新のカウント値に基づいて、キュー２２５に登録されているワークの位置情報を逐次更新し、ワークのトラッキング処理を実現する。トラッキング処理は上述の通りであるので、その説明については繰り返さない。
【００５９】
ロボット制御部２５８は、ワークのピックアップタイミングが到来する度に、より先に登録されたワークをキュー２２５から取得する。ロボット制御部２５８は、キュー２２５から取得したワークをピックアップ対象として決定し、当該ワークをピックアップするための動作指示を生成する。当該動作指示は、サーボドライバ２３０に出力される。サーボドライバ２３０は、ＰＬＣ２００から受け付けた動作指示に基づいて、ロボット３００を駆動し、指定されたワークをピックアップする。
【００６０】
なお、画像センサ１００の機能構成の少なくとも一部（たとえば、計測部１５２や特定部１５４など）は、ＰＬＣ２００に実装されてもよいし、サーバーなどのその他の情報処理端末に実装されてもよい。ＰＬＣ２００の機能構成の少なくとも一部（たとえば、決定部２５４や更新部２５６など）は、画像センサ１００に実装されてもよいし、サーバーなどのその他の情報処理端末に実装されてもよい。
【００６１】
［Ｅ．特定部１５４］
図７を参照して、上述の特定部１５４によるワークの重なり順の特定処理についてさらに説明する。図７は、ワークの重なり順を特定する処理を概略的に示す概念図である。
【００６２】
上述したように、特定部１５４は、輝度画像７０内のワーク領域７２Ａに対応する距離画像８０内の対応領域８２Ａと、輝度画像７０内のワーク領域７２Ｂに対応する距離画像８０内の対応領域８２Ｂとを特定し、対応領域８２Ａ，８２Ｂ内の高さ情報に基づいてワークＷＩ，ＷＪの重なり順を特定する。
【００６３】
このとき、重なり順を決定するために利用される高さ情報は、様々な方法で算出され得る。一例として、特定部１５４は、微分フィルタを距離画像８０に適用することで微分画像を生成し、当該微分画像の画素値が所定値よりも大きい部分をエッジとして検知する。特定部１５４は、検知されたエッジ上から安定度の高いエッジ点Ｅ１〜Ｅ４を選択する。安定度が高いエッジ点には、たとえば、画素値が大きい上位所定数の画素が選択される。その後、特定部１５４は、エッジ点Ｅ１〜Ｅ４の各々からワークＷＩの中心点８３Ａ（または重心）までの各高さ値を積算する。
【００６４】
上述のように、三角測量が応用されることで距離画像が生成されているが、三角測量の性質上、エッジ点Ｅ１〜Ｅ４付近に規定される距離値は不安定である。そのため、好ましくは、特定部１５４は、エッジ点Ｅ１〜Ｅ４から中心点８３Ａまでの間の所定パーセント（たとえば、１０〜２０パーセント）の高さ値については積算しなくてもよい。
【００６５】
同様に、特定部１５４は、ワークＷＪのエッジ上から安定度の高いエッジ点Ｅ１１〜Ｅ１４を抽出する。このとき、ワークＷＩについて選択されたエッジ点Ｅ１〜Ｅ４と同数のエッジ点Ｅ１１〜Ｅ１４がワークＷＪについて選択される。特定部１５４は、エッジ点Ｅ１１〜Ｅ１４の各々からワークＷＪの中心点８３Ｂ（または重心）までの高さ値を積算する。
【００６６】
特定部１５４は、ワークＷＩ，ＷＪの各々について算出された積算値に基づいてワークＷＩ，ＷＪの重なり順を特定する。典型的には、特定部１５４は、ワークＷＩ，ＷＪの各々について算出された積算値が大きいワークほど重なり順が上位にくるようにワークの重なり順を特定する。
【００６７】
なお、重なり順を決定するために利用される高さ情報は、他の方法で算出されてもよい。たとえば、特定部１５４は、ワーク領域７２Ａの中心点７３Ａに対応する中心点８３Ａの高さ値と、ワーク領域７２Ｂの中心点７３Ｂに対応する中心点８３Ｂの高さ値とを比較して、ワークＷＩ，ＷＪの重なり順を決定してもよい。
【００６８】
あるいは、特定部１５４は、ワーク領域７２Ａの重心点に対応する対応領域８２Ａの重心点の高さ値と、ワーク領域７２Ｂの重心点に対応する対応領域８２Ｂの重心点の高さ値とを比較して、ワークＷＩ，ＷＪの重なり順を決定してもよい。
【００６９】
あるいは、特定部１５４は、ワーク領域７２Ａの対応領域８２Ａ内の高さ値の代表値（たとえば、平均値、中央値、最小値、最大値）と、ワーク領域７２Ｂの対応領域の８２Ｂ内の高さ値の代表値（たとえば、平均値、中央値、最小値、最大値）とを比較して、ワークＷＩ，ＷＪの重なり順を決定してもよい。このとき、好ましくは、代表値の算出には、対応領域８２Ａ，８２Ｂの内、ワークの重複部分ではない領域の高さ値が用いられる。
【００７０】
あるいは、特定部１５４は、対応領域８２Ａ，８２Ｂ内において所定範囲の高さ値を有する領域の面積に基づいて、ワークＷＩ，ＷＪの重なり順を決定してもよい。
【００７１】
なお、上述では、距離画像の各画素がコンベア上から被写体の各点までの高さで表わされている例について説明を行ったが、距離画像の各画素は、撮影装置１３０から被写体の各点までの距離で表わされてもよい。この場合には、距離画像の各画素の大小関係が逆転するので、特定部１５４は、距離画像内のワーク部分に示される距離情報が小さいワークほど上側に重なっているワークであると認識する。
【００７２】
［Ｆ．データフロー］
図８を参照して、画像処理システム１におけるデータの流れについて説明する。図８は、画像センサ１００とＰＬＣ２００とロボット３００との間のデータの流れを示すシーケンス図である。
【００７３】
ステップＳ１０において、撮影装置１３０による撮影タイミングが到来したとする。撮影タイミングは、定期的に到来する。画像センサ１００は、撮影タイミングが到来したことに基づいて、撮影装置１３０に撮影指示を出力する。これにより、撮影装置１３０は、撮影処理を実行し、被写体を表わす輝度画像と、コンベア上から被写体の各点までの高さからなる距離画像とを生成する。画像センサ１００は、生成された輝度画像と距離画像とを撮影装置１３０から取得する。
【００７４】
ステップＳ１２において、画像センサ１００は、ワークを計測するための所定の画像処理を実行することで、輝度画像内から各ワークの位置を計測する。当該ワークの位置は、たとえば、輝度画像内における座標値、輝度画像内におけるワークの傾きなどで表わされる。輝度画像内の各ワークの位置は、上述の計測結果１２４に書き込まれる。
【００７５】
ステップＳ１４において、画像センサ１００は、ステップＳ１２で計測された輝度画像内における各ワークの位置に対応する領域（すなわち、対応領域）を距離画像から特定し、当該対応領域内に示される高さ情報に基づいて、各ワークの重なり順を特定する。各ワークの重なり順は、上述の計測結果１２４に書き込まれる。
【００７６】
ステップＳ２０において、画像センサ１００は、計測結果１２４をＰＬＣ２００に送信する。画像センサ１００は、ステップＳ１０，Ｓ１２，Ｓ１４，Ｓ２０の処理を繰り返すことで、計測結果１２４を順次ＰＬＣ２００に送信する。このとき、画像センサ１００は、今回計測されたワークの内、前回計測されたワークと重複しているものについては計測結果１２４から除去した上で計測結果１２４をＰＬＣ２００に計測結果を送信する。
【００７７】
ステップＳ２２において、ＰＬＣ２００は、画像センサ１００から受信した計測結果１２４に基づいて、ワークのピックアップ順を決定する。ワークのピックアップ順の決定方法については上述した通りであるので、その説明については繰り返さない。
【００７８】
ステップＳ２４において、ＰＬＣ２００は、ステップＳ２２で決定されたピックアップ順に従ってキュー２２５にワーク情報を登録する。登録されるワーク情報は、たとえば、ワークの識別情報、ワークの位置を含む。ワークの位置は、たとえば、輝度画像または距離画像内の座標値（ｘ座標、ｙ座標）と、輝度画像または距離画像内でのワークの傾きθと、コンベア上からのワークの高さｈとで表わされる。その後、ＰＬＣ２００は、カウンタ１２７から定期的にカウント値を定期的に取得し、取得したカウント値に基づいて、キュー２２５に登録されているワークの位置を逐次的に更新する。これにより、トラッキング処理が実現される。
【００７９】
ＰＬＣ２００は、画像センサ１００から新たな計測結果１２４を受信する度に、ステップＳ２２，Ｓ２４の処理を繰り返す。これにより、ピックアップ対象のワークが順次キュー２２５に登録される。
【００８０】
ステップＳ３０において、ワークのピックアップタイミングが到来したとする。このことに基づいて、ＰＬＣ２００は、キュー２２５に登録されているワーク情報の内から、より先に登録されたワーク情報をピックアップ対象として取得する。ＰＬＣ２００は、ピックアップ対象のワークをピックアップするための動作指示を生成し、当該動作指示をロボット３００に送信する。
【００８１】
ステップＳ３２において、ロボット３００は、ＰＬＣ２００から受信した動作指示に基づいて、ピックアップ対象のワークをピックアップする。このとき、ロボット３００は、搬送先の容器の位置を逐次取得し、当該位置情報に基づいて、ピックアップしたワークを容器に移動する。
【００８２】
ＰＬＣ２００は、ワークのピックアップタイミングが到来する度に、ステップＳ３０，Ｓ３２の処理を繰り返す。これにより、ＰＬＣ２００は、先にキュー２２５に登録されているワークから順にピックアップ処理を実行する。
【００８３】
［Ｇ．制御構造］
図９〜図１１を参照して、画像処理システム１の制御構造について説明する。図９は、ワークの計測処理を表わすフローチャートである。図９の処理は、画像センサ１００の制御装置１０１がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【００８４】
図１０は、ピックアップ対象のワークのエンキュー処理を示す図である。図１１は、ピックアップ対象のワークのデキュー処理を示す図である。図１０および図１１の処理は、ＰＬＣ２００の制御装置２０１がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【００８５】
以下では、図９に示される計測処理、図１０に示されるエンキュー処理、図１１に示されるデキュー処理のフローについて順に説明する。
【００８６】
（Ｇ１．計測処理）
図９を参照して、ステップＳ１１０において、制御装置１０１は、上述の計測部１５２（図４参照）として、撮影装置１３０の撮影タイミングが到来したか否かを判断する。一例として、撮影タイミングは、予め定められた間隔で到来する。制御装置１０１は、撮影装置１３０の撮影タイミングが到来したと判断した場合（ステップＳ１１０においてＹＥＳ）、制御をステップＳ１１２に切り替える。そうでない場合には（ステップＳ１１０においてＮＯ）、制御装置１０１は、ステップＳ１１０の処理を再び実行する。
【００８７】
ステップＳ１１２において、制御装置１０１は、計測部１５２として、撮影装置１３０に撮影指示を出力し、被写体を表わす輝度画像と、コンベア上から被写体の各点までの高さからなる距離画像とを撮影装置１３０から取得する。
【００８８】
ステップＳ１１４において、制御装置１０１は、計測部１５２として、ワークを計測するための所定の画像処理を実行することで、輝度画像内からワークの位置を計測する。輝度画像内の各ワークの位置は、上述の計測結果１２４（図４参照）に書き込まれる。
【００８９】
ステップＳ１１６において、制御装置１０１は、今回計測されたワークの内、前回計測されたワークと同一のものについては計測結果１２４から除去する。より具体的には、制御装置１０１は、前回の計測タイミングから今回の計測タイミングまでの時間に応じたワークの移動距離を算出する。当該移動距離は、コンベアの移動速度などから算出される。制御装置１０１は、実空間の移動距離を画像内の距離（以下、「画像内距離」ともいう。）に変換する。制御装置１０１は、今回計測されたワークの内、前回計測されたワークの各位置からワークの移動方向に画像内距離だけ進んだ位置に存在するものについては、前回計測されたものとして計測結果１２４から除去する。
【００９０】
ステップＳ１１８において、制御装置１０１は、上述の特定部１５４（図４参照）として、計測された各ワークにワーク群ＩＤを付与する。より具体的には、制御装置１０１は、計測された各ワークについてワーク間距離を算出する。制御装置１０１は、他のワークと所定距離以上離れているワークについてはワーク群ＩＤ「０」を付与する。すなわち、ワーク群ＩＤ「０」が付与されるワークは、孤立ワークとしてみなされる。一方で、制御装置１０１は、ワーク間距離が所定値よりも短いワークの集合を１つのワーク群としてみなし、ワーク群ＩＤ（たとえば、「１」〜「９９９」のいずれか）をワーク群別に付与する。ワーク群ＩＤは、ワーク群に付与される度にインクリメントされる。付与されたワーク群ＩＤは、計測結果１２４に書き込まれる。
【００９１】
ステップＳ１２０において、制御装置１０１は、特定部１５４として、ステップＳ１１８で認識された各ワーク群についてワークの重なり順を特定する。より具体的には、制御装置１０１は、ステップＳ１１４で計測された輝度画像内における各ワークの位置に対応する領域（すなわち、対応領域）を距離画像から特定し、当該対応領域内に示される高さ情報に基づいて、各ワークの重なり順をワーク群ごとに特定する。特定された重なり順は、計測結果１２４に書き込まれる。
【００９２】
ステップＳ１３０において、制御装置１０１は、計測処理を終了するか否かを判断する。一例として、制御装置１０１は、計測処理を終了するためのユーザ操作を受け付けた場合に、計測処理を終了すると判断する。制御装置１０１は、計測処理を終了すると判断した場合（ステップＳ１３０においてＹＥＳ）、図９に示される処理を終了する。そうでない場合には（ステップＳ１３０においてＮＯ）、制御装置１０１は、制御をステップＳ１１０に戻す。
【００９３】
（Ｇ２．ワークの登録処理）
次に、図１０を参照して、ＰＬＣ２００によるエンキュー処理について説明する。
【００９４】
ステップＳ２１０において、制御装置２０１は、上述の図９の計測処理により得られた計測結果１２４を画像センサ１００から受信する。
【００９５】
ステップＳ２１０において、制御装置２０１は、変数「ｉ」を初期化する。変数「ｉ」は、たとえば、０に初期化される。
【００９６】
ステップＳ２１２において、制御装置２０１は、計測結果１２４を参照して、コンベアの搬送経路の下流から「ｉ＋１」番目に位置するワークをキュー２２５への登録対象として選択する。
【００９７】
ステップＳ２２０において、制御装置２０１は、登録対象のワークが孤立ワークであるか否かを判断する。このとき、制御装置２０１は、計測結果１２４を参照して、登録対象のワークに付与されているワーク群ＩＤが「０」である場合に、登録対象のワークが孤立ワークであると判断する。制御装置２０１は、登録対象のワークが孤立ワークであると判断した場合（ステップＳ２２０においてＹＥＳ）、制御をステップＳ２３４に切り替える。そうでない場合には（ステップＳ２２０においてＮＯ）、制御装置２０１は、制御をステップＳ２３０に切り替える。
【００９８】
ステップＳ２３０において、制御装置２０１は、計測結果１２４を参照して、登録対象のワークが属するワーク群の中で当該ワークの重なり順が最上位であるか否かを判断する。制御装置２０１は、登録対象のワークが属するワーク群の中で当該ワークの重なり順が最上位であると判断した場合（ステップＳ２３０においてＹＥＳ）、制御をステップＳ２３４に切り替える。そうでない場合には（ステップＳ２３０においてＮＯ）、制御装置２０１は、制御をステップＳ２３２に切り替える。
【００９９】
ステップＳ２３２において、制御装置２０１は、制御装置２０１は、変数「ｉ」をインクリメントする。すなわち、制御装置２０１は、変数「ｉ」の値を１増加する。
【０１００】
ステップＳ２３４において、制御装置２０１は、上述の決定部２５４（図４参照）として、登録対象のワークをキュー２２５に登録する。
【０１０１】
ステップＳ２３６において、制御装置２０１は、計測結果１２４を更新する。より具体的には、制御装置２０１は、キュー２２５に登録したワークを計測結果１２４から削除するとともに、登録対象のワークと同一のワーク群に属する他のワークの重なり順を更新する。また、制御装置２０１は、計測結果１２４に含まれるワークの内、ロボット３００の作業エリアＡＲ２（図１参照）を通過したワークを計測結果１２４から除去する。
【０１０２】
ステップＳ２４０において、制御装置２０１は、エンキュー処理を終了するか否かを判断する。一例として、制御装置２０１は、エンキュー処理を終了するためのユーザ操作を受け付けた場合に、エンキュー処理を終了すると判断する。制御装置２０１は、エンキュー処理を終了すると判断した場合（ステップＳ２４０においてＹＥＳ）、図１０に示される処理を終了する。そうでない場合には（ステップＳ２４０においてＮＯ）、制御装置２０１は、制御をステップＳ２１０に戻す。
【０１０３】
（Ｇ３．ワークのピックアップ処理）
次に、図１１を参照して、ＰＬＣ２００によるデキュー処理について説明する。
【０１０４】
ステップＳ３１０において、制御装置２０１は、上述のロボット制御部２５８（図４参照）として、コンベア２０Ａを搬送されるワークがロボット３００の作業エリアＡＲ２（図１参照）に到達しているか否かを判断する。一例として、制御装置２０１は、各ワークをトラッキングし、いずれかのワークが作業エリアＡＲ２を表わす予め定められた領域に含まれている場合に、ワークが作業エリアに到達していると判断する。制御装置２０１は、コンベア２０Ａを搬送されるワークがロボット３００の作業エリアＡＲ２に到達していると判断した場合（ステップＳ３１０においてＹＥＳ）、制御をステップＳ３１２に切り替える。そうでない場合には（ステップＳ３１０においてＮＯ）、制御装置２０１は、ステップＳ３１０の処理を再び実行する。
【０１０５】
ステップＳ３１２において、制御装置２０１は、ロボット制御部２５８として、ピックアップ対象のワークをキュー２２５から取得する。このとき、制御装置２０１は、より先に登録されたワークをキュー２２５から取得する。
【０１０６】
ステップＳ３１４において、制御装置２０１は、ロボット制御部２５８として、ステップＳ３１２でキュー２２５から取得したワークをピックアップするための動作指示を生成し、当該動作指示をロボット３００に出力する。
【０１０７】
ステップＳ３２０において、制御装置２０１は、ロボット３００によるワークの移動が完了したか否かを判断する。一例として、制御装置２０１は、ワークのプレースの完了を示す信号をロボット３００から受信した場合に、ワークの移動が完了したと判断する。制御装置２０１は、ロボット３００によるワークの移動が完了したと判断した場合（ステップＳ３２０においてＹＥＳ）、制御をステップＳ３３０に切り替える。そうでない場合には（ステップＳ３２０においてＮＯ）、制御装置２０１は、ステップＳ３２０の処理を再び実行する。
【０１０８】
ステップＳ３３０において、制御装置２０１は、デキュー処理を終了するか否かを判断する。一例として、制御装置２０１は、デキュー処理を終了するためのユーザ操作を受け付けた場合に、デキュー処理を終了すると判断する。制御装置２０１は、デキュー処理を終了すると判断した場合（ステップＳ３３０においてＹＥＳ）、図１１に示される処理を終了する。そうでない場合には（ステップＳ３３０においてＮＯ）、制御装置２０１は、制御をステップＳ３１０に戻す。
【０１０９】
［Ｈ．画像センサ１００のハードウェア構成］
図１２を参照して、本実施の形態に従う画像センサ１００のハードウェア構成について説明する。図１２は、本実施の形態に従う画像センサ１００のハードウェア構成を示す模式図である。
【０１１０】
画像センサ１００は、一例として、汎用的なコンピュータアーキテクチャに準じて構成されるコンピュータからなる。画像センサ１００は、制御装置１０１と、主メモリ１０２と、通信インターフェイス１０３と、カメラインターフェイス１０４と、ＰＬＣインターフェイス１０５と、光学ドライブ１０７と、記憶装置１２０（記憶部）とを含む。これらのコンポーネントは、内部バス１１９を介して互いに通信可能に接続されている。
【０１１１】
制御装置１０１は、たとえば、少なくとも１つの集積回路によって構成される。集積回路は、たとえば、少なくとも１つのＣＰＵ（Central  Processing  Unit）、少なくとも１つのＡＳＩＣ（Application  Specific  Integrated  Circuit）、少なくとも１つのＦＰＧＡ（Field  Programmable  Gate  Array）、またはそれらの組み合わせなどによって構成される。制御装置１０１は、記憶装置１２０に格納されている画像処理プログラム１２２を主メモリ１０２に展開して実行することで、本実施の形態に従う各種処理を実現する。主メモリ１０２は、揮発性メモリにより構成され、制御装置１０１によるプログラム実行に必要なワークメモリとして機能する。
【０１１２】
通信インターフェイス１０３は、外部機器との間でネットワークを介してデータを遣り取りする。外部機器は、たとえば、上述のカウンタ１２７（図１参照）、上述の撮影装置１３０（図１参照）、上述のＰＬＣ２００（図１参照）、サーバー、その他の通信機器などを含む。画像センサ１００は、通信インターフェイス１０３を介して、本実施の形態に従う画像処理プログラム１２２をダウンロードできるように構成されてもよい。
【０１１３】
カメラインターフェイス１０４は、上述の撮影装置１３０と接続される。カメラインターフェイス１０４は、撮影装置１３０の撮影により得られる画像信号を取り込むとともに、撮影装置１３０を介して撮影装置１３０に撮影タイミングなどの指令を送る。撮影装置１３０は、一例として、レンズなどの光学系に加えて、ＣＣＤ（Coupled Charged Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサといった、複数の画素に区画された撮像素子を含んで構成される。
【０１１４】
ＰＬＣインターフェイス１０５は、ＰＬＣ２００に接続される。ＰＬＣ２００は、ＰＬＣインターフェイス１０５介してワークの計測結果などをＰＬＣ２００に送る。
【０１１５】
光学ドライブ１０７は、光学ディスク１０７Ａなどから、その中に格納されている各種プログラムを読み出して、記憶装置１２０にインストールする。記憶装置１２０は、たとえば、画像処理プログラム１２２などを格納する。
【０１１６】
図１２には、光学ドライブ１０７を介して必要なプログラムを画像センサ１００にインストールする構成例を示すが、これに限られることなく、ネットワーク上のサーバー装置などからダウンロードするようにしてもよい。あるいは、画像センサ１００上のプログラムは、ＵＳＢ（Universal Serial Bus）メモリ、ＳＤ（Secure Digital）カード、ＣＦ（Compact Flash）などの記憶媒体に書き込まれているプログラムによって書き換えられるように構成されてもよい。
【０１１７】
記憶装置１２０は、たとえば、ハードディスクや外付けの記憶媒体である。一例として、記憶装置１２０は、本実施の形態に従う各種の処理を実現するための画像処理プログラム１２２と、上述の計測結果１２４（図４参照）、計測対象のワークの基準となるモデル画像１２６とを格納する。
【０１１８】
画像処理プログラム１２２は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う画像センサ１００の趣旨を逸脱するものではない。さらに、本実施の形態に従う画像処理プログラム１２２によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、画像センサ１００とＰＬＣ２００とロボット３００との内の少なくとも２つが協働して、本実施の形態に従う処理を実現するようにしてもよい。さらに、少なくとも１つのサーバーが本実施の形態に従う処理を実現する、所謂クラウドサービスの形態で画像センサ１００が構成されてもよい。
【０１１９】
［Ｉ．ＰＬＣ２００のハードウェア構成］
図１３を参照して、本実施の形態に従うＰＬＣ２００のハードウェア構成について説明する。図１３は、ＰＬＣ２００のハードウェア構成例を示すブロッグ図である。
【０１２０】
ＰＬＣ２００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などの制御装置２０１と、チップセット２０２と、主メモリ２０６と、記憶装置２２０と、ローカルネットワークコントローラ２０３と、ＵＳＢ（Universal Serial Bus）コントローラ２０４と、メモリカードインターフェイス２０５と、内部バスコントローラ２１０と、フィールドバスコントローラ２０８，２０９と、Ｉ／Ｏユニット２１１−１，２１１−２，…とを含む。
【０１２１】
制御装置２０１は、記憶装置２２０に格納された各種プログラムを読み出して、主メモリ２０６に展開して実行することで、制御対象に応じた制御、および、本実施の形態に従う処理などを実現する。チップセット２０２は、制御装置２０１と各コンポーネントを制御することで、ＰＬＣ２００全体としての処理を実現する。
【０１２２】
記憶装置２２０は、たとえば、二次記憶装置である。記憶装置２２０には、ＰＬＣエンジンを実現するためのシステムプログラムに加えて、ＰＬＣエンジンを利用して実行されるユーザプログラム２２１や上述のキュー２２５（図４参照）などが格納される。ユーザプログラム２２１は、論理的な演算を主とするシーケンスシーケンスプログラム２２２、位置制御や速度制御などの数値的な演算を主とするモーションプログラム２２３、本実施の形態に従う処理を実現するための演算を主とする制御プログラム２２４などを含む。
【０１２３】
ローカルネットワークコントローラ２０３は、ローカルネットワークを介した他の装置（たとえば、サーバーなど）との間のデータの遣り取りを制御する。ＵＳＢコントローラ２０４は、ＵＳＢ接続を介して他の装置（たとえば、ＰＣ（Personal Computer）など）との間のデータの遣り取りを制御する。
【０１２４】
メモリカードインターフェイス２０５は、メモリカード２１６を着脱可能に構成されており、メモリカード２１６に対してデータを書込み、メモリカード２１６から各種データ（ユーザプログラムやトレースデータなど）を読出すことが可能になっている。
【０１２５】
内部バスコントローラ２１０は、ＰＬＣ２００に搭載されるＩ／Ｏユニット２１１−１，２１１−２，…との間でデータを遣り取りするインターフェイスである。
【０１２６】
フィールドバスコントローラ２０８は、フィールドネットワークＮＷ１を介した他の装置（たとえば、画像センサ１００やカウンタ１２７など）との間のデータの遣り取りを制御する。同様に、フィールドバスコントローラ２０９は、フィールドネットワークＮＷ２を介した他の装置（たとえば、ロボット３００）との間のデータの遣り取りを制御する。
【０１２７】
図１３には、制御装置２０１がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（たとえば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、ＰＬＣ２００の主要部を、汎用的なアーキテクチャに従うハードウェア（たとえば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【０１２８】
［Ｊ．第１の実施の形態のまとめ］
以上のようにして、本実施の形態に従う画像センサ１００は、被写体を表わす輝度画像と、コンベア２０Ａ上から被写体の各点までの高さからなる距離画像とを取得する。画像センサ１００は、ワークを計測するための所定の画像処理を実行することで、輝度画像内から各ワークの位置を計測する。その後、画像センサ１００は、輝度画像内における各ワークの位置に対応する領域（すなわち、対応領域）を距離画像から特定し、当該対応領域内に示される高さ情報に基づいて、各ワークの重なり順を特定する。画像センサ１００は、重なり順が上位であるワークから順にピックアップするようにピックアップ順を決定する。
【０１２９】
これにより、ロボット３００は、上側に存在するワークから順にピックアップすることができる。ロボット３００は、上側のワークから順にピックアップすることで、各ワークを互いに干渉させずにピックアップすることができる。その結果、画像センサ１００は、ワークの位置を再度計測する必要がなくなり、ワークを効率的にピックアップすることができる。
【０１３０】
＜第２の実施の形態＞
［Ａ．概要］
第１の実施の形態に従う画像処理システム１は、決定されたピックアップ順に従ってワークをピックアップし、当該ワークを容器にプレースさせていた。これに対して、第２の実施の形態に従う画像処理システム１は、決定されたピックアップ順に従ってワークをピックアップし、コンベア上でワークを整列する。
【０１３１】
第２の実施の形態に従う画像処理システム１におけるその他の点については第１の実施の形態に従う画像処理システム１と同じであるので、以下では、それらの説明については繰り返さない。
【０１３２】
［Ｂ．画像処理システム１］
図１４を参照して、第２の実施の形態に従う画像処理システム１の基本構成について説明する。図１４は、第２の実施の形態に従う画像処理システム１の基本構成を示す模式図である。
【０１３３】
図１４に示されるように、本実施の形態に従う画像処理システム１は、ロボット３００だけでなく、ロボット３００Ａをさらに含む。そのため、ＰＬＣ２００には、ロボット３００を制御するためのサーボドライバ２３０だけでなく、ロボット３００Ａを制御するためのサーボドライバ２３０Ａがさらに設けられる。
【０１３４】
ロボット３００Ａは、ＰＬＣ２００によって決定されたワークのピックアップ順に従ってワークＷをピックアップし、各ワークＷがコンベア２０Ａ上で重ならないようにワークＷを整列する。ワークＷのピックアップ順の決定方法は上述の通りであるので、その説明については説明を繰り返さない。
【０１３５】
後段のロボット３００は、整列されたワークＷを容器Ｂに移動する。このとき、各ワークＷは、前段のロボット３００Ａによって互いに重ならないように整列されているので、後段のロボット３００は、任意のワークを任意の順でピックアップすることができる。
【０１３６】
なお、図１４には、１つずつワークをピックアップするロボット３００が示されているが、複数のワークＷを一度にピックアップすることが可能なロボット３００が採用されてもよい。この場合、各ワークＷは、前段のロボット３００Ａによって互いに重ならないように整列されているので、ロボット３００は、複数のワークを容易にピックアップすることができる。その結果、複数種類のワーク（たとえば、かやく）を一度に容器Ｂに運ぶことが可能になり、ワークのピック＆プレースの効率が大幅に改善される。
【０１３７】
［Ｃ．第２の実施の形態のまとめ］
以上のようにして、本実施の形態においては、前段のロボット３００Ａが、決定されたピックアップ順に従ってコンベア２０Ａ上にワークＷを整列し、後段のロボット３００が整列後のワークＷを容器に運ぶ。このとき、ワークＷは、前段のロボット３００Ａによって互いに重ならないように整列されているので、後段のロボット３００は、任意のワークＷを任意の順で容器Ｂに運ぶことができる。
【０１３８】
＜第３の実施の形態＞
［Ａ．概要］
第１の実施の形態においては、撮影装置１３０は、１つの投光部と１つの受光部とで構成されていた（図２参照）。これに対して、第３の実施の形態に従うにおいては、撮影装置１３０は、１つの投光部と２つの受光部とで構成される。
【０１３９】
第３の実施の形態に従う画像処理システム１におけるその他の点については第１の実施の形態に従う画像処理システム１と同じであるので、以下では、それらの説明については繰り返さない。
【０１４０】
［Ｂ．画像処理システム１］
図１５を参照して、第３の実施の形態に従う撮影装置１３０について説明する。図１５は、撮影装置１３０の一例を示す図である。図１５には、コンベア２０Ａを搬送されるワークＷを撮影装置１３０が撮影している様子が示されている。
【０１４１】
撮影装置１３０は、受光部１３１，１３３と、投光部１３２とを含む。受光部１３１および投光部１３２は、距離画像を生成するために設けられている。距離画像は、光切断法で生成される。より具体的には、投光部１３２は、ワークＷの搬送方向と直交する方向に広がったライン状の光ＬＴをワークＷに投光する。受光部１３１（第１受光部）は、ワークＷから光ＬＴの反射光を順次受け、各受光タイミングにおける反射光の受光位置に基づいて距離画像を生成する。
【０１４２】
典型的には、受光部１３１は、２次元に配置された複数の受光素子で構成される。光ＬＴの反射光が入射する受光素子は、撮影装置１３０から被写体までの距離に応じて変わる。すなわち、受光部１３１が被写体からの光ＬＴの反射光を撮像すると、ラインＬＮ上のプロファイルが得られる。当該プロファイルに三角測量を応用すると、コンベア２０Ａの搬送面からラインＬＮ上の被写体の各点までの高さ情報が得られる。撮影装置１３０は、得られた高さ情報を時系列に並べることで距離画像を生成する。
【０１４３】
一方で、受光部１３３（第２受光部）は、撮影視野ＡＲ３に含まれる被写体から外光の反射光を受けて、当該被写体を表わす輝度画像を生成する。距離画像および輝度画像は、異なる視点から撮影して得られたものであるので、距離画像に写る被写体の位置と輝度画像に写る被写体の位置とが異なってしまう。そのため、画像センサ１００は、距離画像および輝度画像の一方を他方に位置合わせする。距離画像内の被写体と輝度画像内の被写体とのずれ量は、受光部１３１，１３３の位置関係が決まれば一意に決まるので、画像センサ１００は、受光部１３１，１３３の予め定められた位置関係に基づいて位置合わせを行う。その上で、画像センサ１００は、輝度画像内における各ワークの位置に対応する領域（すなわち、対応領域）を距離画像から特定し、当該対応領域内に示される高さ情報に基づいて、各ワークの重なり順を特定する。
【０１４４】
［Ｃ．第３の実施の形態のまとめ］
以上のようにして、本実施の形態に従う画像処理システム１は、距離画像を生成するための受光部１３１，投光部１３２と、輝度画像を生成するための受光部１３３とを有する。これにより、受光部１３３は、投光部１３２の影響を受けずに輝度画像を生成することができるので、ワークの計測精度が向上する。結果として、画像センサ１００は、ワークの重なり順を正確に特定することができる。
【０１４５】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１４６】
１  画像処理システム、２  画像処理装置、２０Ａ  コンベア、３０Ａ，３０Ｂ  ワーク群、４０  輝度画像、４１Ａ〜４１Ｃ，５１Ａ〜５１Ｃ，７２Ａ，７２Ｂ  ワーク領域、５０，８０  距離画像、７３Ａ，７３Ｂ，８３Ａ，８３Ｂ  中心点、８２Ａ，８２Ｂ  対応領域、１００  画像センサ、１０１，２０１  制御装置、１０２，２０６  主メモリ、１０３  通信インターフェイス、１０４  カメラインターフェイス、１０５  ＰＬＣインターフェイス、１０７  光学ドライブ、１０７Ａ  光学ディスク、１１９  内部バス、１２０，２２０  記憶装置、１２２  画像処理プログラム、１２４  計測結果、１２６  モデル画像、１２７  カウンタ、１２８  エンコーダ、１３０  撮影装置、１３１，１３３  受光部、１３２  投光部、１５２  計測部、１５４  特定部、２０２  チップセット、２０３  ローカルネットワークコントローラ、２０４  コントローラ、２０５  メモリカードインターフェイス、２０８，２０９  フィールドバスコントローラ、２１０  内部バスコントローラ、２１１  Ｉ／Ｏユニット、２１６  メモリカード、２２１  ユーザプログラム、２２２  シーケンスシーケンスプログラム、２２３  モーションプログラム、２２４  制御プログラム、２２５  キュー、２３０，２３０Ａ  サーボドライバ、２３１  表示装置、２３２  入力装置、２５２  受信部、２５４  決定部、２５６  更新部、２５８  ロボット制御部。
【図１】
2018111140.tif 000003
【図２】
2018111140.tif 000004
【図３】
2018111140.tif 000005
【図４】
2018111140.tif 000006
【図５】
2018111140.tif 000007
【図６】
2018111140.tif 000008
【図７】
2018111140.tif 000009
【図８】
2018111140.tif 000010
【図９】
2018111140.tif 000011
【図１０】
2018111140.tif 000012
【図１１】
2018111140.tif 000013
【図１２】
2018111140.tif 000014
【図１３】
2018111140.tif 000015
【図１４】
2018111140.tif 000016
【図１５】
2018111140.tif 000017