(57)【要約】【課題】実環境下でも十分な精度でカメラとプロジェクターとの間のキャリブレーションを行うことができる制御装置を提供する。【解決手段】投射部により投射された画像が撮像部により撮像された撮像画像であって、輝度又は色彩の変化が周期的に繰り返され、その輝度又は色彩の変化の周期を表す波の位相が互いに異なる複数の第１撮像画像と、投射部により投射された基準オブジェクトが撮像部により撮像された第２撮像画像とに基づいて、第１撮像画像のそれぞれについて、第２撮像画像において基準オブジェクトが撮像された撮像画像平面上の位置を基点として撮像画像上の各画素の位相を算出する算出部と、算出部により算出された撮像画像上の各画素の位相に基づいて、撮像部の撮像画像平面上の位置と、投射部の投射画像平面上の位置との対応付けを行う対応付部と、を備える制御装置である。【選択図】図３
2015087321.tif 000002
【特許請求の範囲】
【請求項１】
投射部により投射された画像が撮像部により撮像された撮像画像であって、輝度又は色彩の変化が周期的に繰り返され、その輝度又は色彩の変化の周期を表す波の位相が互いに異なる複数の第１撮像画像と、前記投射部により投射された基準オブジェクトが前記撮像部により撮像された第２撮像画像とに基づいて、前記第１撮像画像のそれぞれについて、前記第２撮像画像において前記基準オブジェクトが撮像された撮像画像平面上の位置を基点として前記撮像画像上の各画素の位相を算出する算出部と、
前記算出部により算出された前記撮像画像上の各画素の位相に基づいて、前記撮像部の撮像画像平面上の位置と、前記投射部の投射画像平面上の位置との対応付けを行う対応付部と、
を備える制御装置。
【請求項２】
請求項１に記載の制御装置であって、
前記投射部により投射された投射光の輝度と、前記撮像部により前記投射光が撮像された画像における前記投射光の輝度とに基づいて、前記第１撮像画像及び前記第２撮像画像を投射する前記投射部の輝度出力を決定する決定部を備える、
制御装置。
【請求項３】
請求項１又は２に記載の制御装置であって、
前記投射部により投射された画像が前記撮像部により撮像された撮像画像であって、前記投射部と前記撮像部との間の位置関係を表す情報を導出するための第３撮像画像と、前記算出部により算出された各画素の位相とに基づいて、前記投射部と前記撮像部との間の位置関係を表す情報を導出するキャリブレーション処理を行うキャリブレーション処理部を備える、
制御装置。
【請求項４】
請求項３に記載の制御装置であって、
前記第３撮像画像は、赤色と青色の格子状模様が撮像された画像である、
制御装置。
【請求項５】
請求項３又は４に記載の制御装置であって、
前記位置関係を表す情報は、前記投射部と前記撮像部との間の三次元位置関係を表す情報であり、
前記キャリブレーション処理部により導出された前記位置関係を表す情報と、前記撮像部により撮像された物体の画像とに基づいて、前記物体の三次元点群情報を生成する三次元点群生成部を備える、
制御装置。
【請求項６】
請求項５に記載の制御装置であって、
前記三次元点群生成部により生成された三次元点群情報に基づいて、前記物体の三次元位置及び姿勢を導出し、前記導出した前記物体の三次元位置及び姿勢に基づいて、ロボットを制御するロボット制御部を備える、
制御装置。
【請求項７】
請求項６に記載の制御装置と、
前記ロボットの可動部を稼働させるアクチュエーターと、
を備えるロボット。
【請求項８】
画像を投射する投射部と、前記投射部により投射された画像を撮像する撮像部と、制御装置とを具備する制御システムであって、
前記制御装置は、
前記投射部により投射された画像が前記撮像部により撮像された撮像画像であって、輝度又は色彩の変化が周期的に繰り返され、その輝度又は色彩の変化の周期を表す波の位相が互いに異なる複数の第１撮像画像と、前記投射部により投射された基準オブジェクトが前記撮像部により撮像された第２撮像画像とに基づいて、前記第１撮像画像のそれぞれについて、前記第２撮像画像において前記基準オブジェクトが撮像された撮像画像平面上の位置を基点として各画素の位相を算出する算出部と、
前記算出部により算出された各画素の位相に基づいて、前記撮像部の撮像画像平面上の位置と、前記投射部の投射画像平面上の位置との対応付けを行う対応付部と、
を備える、
制御システム。
【請求項９】
制御装置が、
投射部により投射された画像が撮像部により撮像された撮像画像であって、輝度又は色彩の変化が周期的に繰り返され、その輝度又は色彩の変化の周期を表す波の位相が互いに異なる複数の第１撮像画像と、前記投射部により投射された基準オブジェクトが前記撮像部により撮像された第２撮像画像とに基づいて、前記第１撮像画像のそれぞれについて、前記第２撮像画像において前記基準オブジェクトが撮像された撮像画像平面上の位置を基点として各画素の位相を算出し、
前記算出した各画素の位相に基づいて、前記撮像部の撮像画像平面上の位置と、前記投射部の投射画像平面上の位置との対応付けを行う、
制御方法。
【請求項１０】
制御装置のコンピューターに、
投射部により投射された画像が撮像部により撮像された撮像画像であって、輝度又は色彩の変化が周期的に繰り返され、その輝度又は色彩の変化の周期を表す波の位相が互いに異なる複数の第１撮像画像と、前記投射部により投射された基準オブジェクトが撮像部により撮像された第２撮像画像とに基づいて、前記第１撮像画像のそれぞれについて、前記第２撮像画像において前記基準オブジェクトが撮像された撮像画像平面上の位置を基点として各画素の位相を算出させ、
前記算出させた各画素の位相に基づいて、前記撮像部の撮像画像平面上の位置と、前記投射部の投射画像平面上の位置との対応付けを行わせる、
制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御装置、ロボット、制御システム、制御方法、及び制御プログラムに関する。
【背景技術】
【０００２】
産業用ロボットによって作業が行われる際に、産業用ロボットが扱う対象となる物体の位置は、ロボットの制御装置側で把握されている必要がある。物体の位置を把握するために、例えば、プロジェクターによる照射光やレーザー光を対象となる物体に照射し、その反射情報を処理することで、即時に物体の位置や姿勢を表す三次元情報を取得する方法の研究・開発が行われている。物体の三次元情報としては、離散的な三次元点群情報等を利用することが知られており、その三次元点群情報の取得法も、様々な手法が提案されている。
【０００３】
これに関連し、所定の方向に周期的に輝度又は色彩が変化し、互いにその周期的変化の位相が異なる複数枚の画像をプロジェクターにより投射し、投射された画像をカメラで撮影し、撮影された画像に基づいて、プロジェクターの位置及び姿勢と、カメラの位置及び姿勢との相対的な関係を求めるキャリブレーション法が知られている（非特許文献１参照）。このキャリブレーション法は、三次元点群取得法の一つである位相シフト法を用いるために、カメラとプロジェクターとの間で行われるキャリブレーションを精度よく行うための手法である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Song Zhang; Peisen S.Huang, “Novel method for structured light system calibration”, Optical Engineering 45_8_, 083601_August 2006_
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の手法では、実験室で実現される特殊な環境下での利用に関しては十分であるが、実環境下では外乱の影響等を無視することができず、十分な精度が保たれたキャリブレーションが行えない場合がある。
【課題を解決するための手段】
【０００６】
そこで本発明は、上記従来技術の問題に鑑みてなされたものであり、実環境下でも十分な精度でカメラとプロジェクターとの間のキャリブレーションを行うことができる制御装置、ロボット、制御システム、制御方法、及び制御プログラムを提供する。
【０００７】
［１］本発明は、上記の課題を解決するためになされたものであり、投射部により投射された画像が撮像部により撮像された撮像画像であって、輝度又は色彩の変化が周期的に繰り返され、その輝度又は色彩の変化の周期を表す波の位相が互いに異なる複数の第１撮像画像と、前記投射部により投射された基準オブジェクトが前記撮像部により撮像された第２撮像画像とに基づいて、前記第１撮像画像のそれぞれについて、前記第２撮像画像において前記基準オブジェクトが撮像された撮像画像平面上の位置を基点として前記撮像画像上の各画素の位相を算出する算出部と、前記算出部により算出された前記撮像画像上の各画素の位相に基づいて、前記撮像部の撮像画像平面上の位置と、前記投射部の投射画像平面上の位置との対応付けを行う対応付部と、を備える制御装置である。
【０００８】
この構成により、制御装置は、第１撮像画像のそれぞれについて、第２撮像画像において基準オブジェクトが撮像された撮像画像平面上の位置を基点として撮像画像上の各画素の位相を算出し、算出した撮像画像上の各画素の位相に基づいて、撮像部の撮像画像平面上の位置と、投射部の投射画像平面上の位置との対応付けを行うため、実環境下でも十分な精度で撮像部と投射部との間のキャリブレーションを行うことができる。
【０００９】
［２］また、本発明は、［１］に記載の制御装置であって、前記投射部により投射された投射光の輝度と、前記撮像部により前記投射光が撮像された画像における前記投射光の輝度とに基づいて、前記第１撮像画像及び前記第２撮像画像を投射する前記投射部の輝度出力を決定する決定部を備える、制御装置である。
【００１０】
この構成により、制御装置は、投射部により投射された投射光の輝度と、撮像部により投射光が撮像された画像における投射光の輝度とに基づいて、第１撮像画像及び第２撮像画像を投射する投射部の輝度出力を決定するため、撮像部の撮影解像度の不足によるキャリブレーションの精度低下を防止することができる。
【００１１】
［３］また、本発明は、［１］又は［２］に記載の制御装置であって、前記投射部により投射された画像が前記撮像部により撮像された撮像画像であって、前記投射部と前記撮像部との間の位置関係を表す情報を導出するための第３撮像画像と、前記算出部により算出された各画素の位相とに基づいて、前記投射部と前記撮像部との間の位置関係を表す情報を導出するキャリブレーション処理を行うキャリブレーション処理部を備える、制御装置である。
【００１２】
この構成により、制御装置は、投射部と撮像部との間の位置関係を表す情報を導出するための第３撮像画像と、算出部により算出された各画素の位相とに基づいて、投射部と撮像部との間の位置関係を表す情報を導出するキャリブレーション処理を行うため、ロボット等による作業対象となる物体の位置及び姿勢を導出するための三次元点群情報を、より高精度に生成することができる。
【００１３】
［４］また、本発明は、［３］に記載の制御装置であって、前記第３撮像画像は、赤色と青色の格子状模様が撮像された画像である、制御装置である。
【００１４】
この構成により、制御装置は、赤色と青色の格子状模様が撮像された画像と、算出部により算出された各画素の位相とに基づいて、投射部と撮像部との間の位置関係を表す情報を導出するキャリブレーション処理を行うため、第１撮像画像の輝度又は色彩の変化が、格子状模様によって判別不可能になることを防止することができる。
【００１５】
［５］また、本発明は、［３］又は［４］に記載の制御装置であって、前記位置関係を表す情報は、前記投射部と前記撮像部との間の三次元位置関係を表す情報であり、前記キャリブレーション処理部により導出された前記位置関係を表す情報と、前記撮像部により撮像された物体の画像とに基づいて、前記物体の三次元点群情報を生成する三次元点群生成部を備える、制御装置である。
【００１６】
この構成により、制御装置は、キャリブレーション処理部により導出された三次元位置関係を表す情報と、撮像部により撮像された物体の画像とに基づいて、物体の三次元点群情報を生成するため、ロボット等による作業対象となる物体の位置及び姿勢をより高精度で導出することができる。
【００１７】
［６］また、本発明は、［５］に記載の制御装置であって、前記三次元点群生成部により生成された三次元点群情報に基づいて、前記物体の三次元位置及び姿勢を導出し、前記導出した前記物体の三次元位置及び姿勢に基づいて、ロボットを制御するロボット制御部を備える、制御装置である。
【００１８】
この構成により、制御装置は、三次元点群情報に基づいて、物体の三次元位置及び姿勢を導出し、導出した物体の三次元位置及び姿勢に基づいて、ロボットを制御するため、対象となる物体に対する作業を、より高精度に行うことができる。
【００１９】
［７］また、本発明は、［６］に記載の制御装置と、前記ロボットの可動部を稼働させるアクチュエーターと、を備えるロボットである。
【００２０】
この構成により、ロボットは、実環境下でも十分な精度で撮像部と投射部との間のキャリブレーションを行うため、対象となる物体に対する作業を、より高精度に行うことができる。
【００２１】
［８］また、本発明は、画像を投射する投射部と、前記投射部により投射された画像を撮像する撮像部と、制御装置とを具備する制御システムであって、前記制御装置は、前記投射部により投射された画像が前記撮像部により撮像された撮像画像であって、輝度又は色彩の変化が周期的に繰り返され、その輝度又は色彩の変化の周期を表す波の位相が互いに異なる複数の第１撮像画像と、前記投射部により投射された基準オブジェクトが前記撮像部により撮像された第２撮像画像とに基づいて、前記第１撮像画像のそれぞれについて、前記第２撮像画像において前記基準オブジェクトが撮像された撮像画像平面上の位置を基点として各画素の位相を算出する算出部と、前記算出部により算出された各画素の位相に基づいて、前記撮像部の撮像画像平面上の位置と、前記投射部の投射画像平面上の位置との対応付けを行う対応付部と、を備える、制御システムである。
【００２２】
この構成により、制御システムは、第１撮像画像のそれぞれについて、第２撮像画像において基準オブジェクトが撮像された撮像画像平面上の位置を基点として撮像画像上の各画素の位相を算出し、算出した撮像画像上の各画素の位相に基づいて、撮像部の撮像画像平面上の位置と、投射部の投射画像平面上の位置との対応付けを行うため、実環境下でも十分な精度で撮像部と投射部との間のキャリブレーションを行うことができる。
【００２３】
［９］また、本発明は、制御装置が、投射部により投射された画像が撮像部により撮像された撮像画像であって、輝度又は色彩の変化が周期的に繰り返され、その輝度又は色彩の変化の周期を表す波の位相が互いに異なる複数の第１撮像画像と、前記投射部により投射された基準オブジェクトが前記撮像部により撮像された第２撮像画像とに基づいて、前記第１撮像画像のそれぞれについて、前記第２撮像画像において前記基準オブジェクトが撮像された撮像画像平面上の位置を基点として各画素の位相を算出し、前記算出した各画素の位相に基づいて、前記撮像部の撮像画像平面上の位置と、前記投射部の投射画像平面上の位置との対応付けを行う、制御方法である。
【００２４】
この制御方法により、制御装置は、第１撮像画像のそれぞれについて、第２撮像画像において基準オブジェクトが撮像された撮像画像平面上の位置を基点として撮像画像上の各画素の位相を算出し、算出した撮像画像上の各画素の位相に基づいて、撮像部の撮像画像平面上の位置と、投射部の投射画像平面上の位置との対応付けを行うため、実環境下でも十分な精度で撮像部と投射部との間のキャリブレーションを行うことができる。
【００２５】
［１０］また、本発明は、制御装置のコンピューターに、投射部により投射された画像が撮像部により撮像された撮像画像であって、輝度又は色彩の変化が周期的に繰り返され、その輝度又は色彩の変化の周期を表す波の位相が互いに異なる複数の第１撮像画像と、前記投射部により投射された基準オブジェクトが撮像部により撮像された第２撮像画像とに基づいて、前記第１撮像画像のそれぞれについて、前記第２撮像画像において前記基準オブジェクトが撮像された撮像画像平面上の位置を基点として各画素の位相を算出させ、前記算出させた各画素の位相に基づいて、前記撮像部の撮像画像平面上の位置と、前記投射部の投射画像平面上の位置との対応付けを行わせる、制御プログラムである。
【００２６】
この制御プログラムにより、制御装置は、第１撮像画像のそれぞれについて、第２撮像画像において基準オブジェクトが撮像された撮像画像平面上の位置を基点として撮像画像上の各画素の位相を算出し、算出した撮像画像上の各画素の位相に基づいて、撮像部の撮像画像平面上の位置と、投射部の投射画像平面上の位置との対応付けを行うため、実環境下でも十分な精度で撮像部と投射部との間のキャリブレーションを行うことができる。
【００２７】
以上により、制御装置は、制御装置は、第１撮像画像のそれぞれについて、第２撮像画像において基準オブジェクトが撮像された撮像画像平面上の位置を基点として撮像画像上の各画素の位相を算出し、算出した撮像画像上の各画素の位相に基づいて、撮像部の撮像画像平面上の位置と、投射部の投射画像平面上の位置との対応付けを行うため、実環境下でも十分な精度で撮像部と投射部との間のキャリブレーションを行うことができる。
【図面の簡単な説明】
【００２８】
【図１】第１の実施形態に係る制御システム１の利用状況の一例を示す図である。
【図２】制御装置４０のハードウェア構成の一例を示す図である。
【図３】制御装置４０の機能構成の一例を示す図である。
【図４】画像生成部５２が生成する投射画像の例を示す図である。
【図５】初期処理部６０の各機能部により実行される処理の流れの一例を示すフローチャートである。
【図６】投射部２０の輝度出力と、撮像部１０により撮像された撮像画像平面上における輝度との関係の一例を表すグラフである。
【図７】赤色と青色とで形成されたグリッドパターンの一例を示す図である。
【図８】キャリブレーションボードに白色光、赤色光をそれぞれ投射した場合の撮像画像の比較例を示す図である。
【図９】投射画像平面上の位置及び位相と、その投射画像を撮像した撮像画像平面上の位置及び位相と、投射領域及び撮像領域との関係の一例を示す図である。
【図１０】三次元点群生成部７０により実行される三次元点群画像の生成処理の流れの一例を示すフローチャートである。
【図１１】切替判断用画像が複数の領域に分割された場合の領域例を示す図である。
【図１２】ステップＳ２００において投射された投射画像に関する前回のサブルーチン実行時に投射された投射画像、及び今回のサブルーチン実行時に投射された投射画像平面上の画素とその画素の輝度をプロットしたグラフの一例である。
【図１３】撮像時期決定部７２が算出した差分は、画素ごとにプロットしたグラフの一例である。
【図１４】第２の実施形態における制御システム１の機能構成の一例を示す図である。
【発明を実施するための形態】
【００２９】
＜第１の実施形態＞
以下、本発明の第１の実施形態について、図面を参照して説明する。図１は、第１の実施形態に係る制御システム１の利用状況の一例を示す図である。制御システム１は、例えば、撮像部１０と、投射部２０と、ロボット３０と、制御装置４０とを具備する。撮像部１０は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。以下では、説明を簡略化するため、撮像部１０は、静止画像を撮像するものとする。なお、撮像部１０は、静止画像を撮像することに代えて、動画像を撮像してもよい。
【００３０】
撮像部１０は、例えばケーブルによって制御装置４０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。なお、撮像部１０と制御装置４０とは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって接続されてもよい。撮像部１０は、破線で囲まれた領域ＣＡを撮像する。領域ＣＡは、テーブル等の台上に予め設定された領域である。撮像部１０は、領域ＣＡを撮像可能な位置に設置される。撮像部１０は、制御装置４０から撮像の要求を取得し、その要求を取得したタイミングで領域ＣＡ内を撮像する。そして、撮像部１０は、ユーザーにより物体ＯＢＪが領域ＣＡの内側に設置されることにより、物体ＯＢＪを撮像する。そして、撮像部１０は、撮像した撮像画像を、通信により制御装置４０へ出力する。
【００３１】
投射部２０は、例えば、投射画像を投射するための液晶ライトバルブや投射レンズ、液晶駆動部、光源として超高圧水銀ランプやメタルハライドランプ等を備えるプロジェクターである。投射部２０は、例えばケーブルによって制御装置４０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、投射部２０と制御装置４０とは、Ｗｉ−Ｆｉ等の通信規格により行われる無線通信によって接続されてもよい。投射部２０は、通信により制御装置４０から各種画像を取得し、取得した各種画像を投射画像として点線で囲まれた領域ＰＡに投射する。これらの投射画像についての詳細は後述する。図１において、投射部２０は、領域ＰＡが領域ＣＡを内側に含むように設置されているが、領域ＰＡと領域ＣＡとの大きさは逆であってもよく、領域ＰＡと領域ＣＡとが部分的に重なり合っていてもよい。なお、物体ＯＢＪは、領域ＰＡと領域ＣＡとが重なり合った領域の内側に全体が含まれる程度の大きさである。
【００３２】
ロボット３０は、例えば、６軸垂直多関節ロボットであり、支持台とアーム部と把持部との連携した動作よって、６軸の自由度の動作を行うことができる。なお、ロボット３０は、５自由度以下で動作するものであってもよい。ロボット３０は、把持部を備えている。ロボット３０の把持部は、物体を把持又は挟持可能な爪部を備える。ロボット３０は、例えばケーブルによって制御装置４０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、ロボット３０と制御装置４０とは、Ｗｉ−Ｆｉ等の通信規格により行われる無線通信によって接続されてもよい。ロボット３０は、物体ＯＢＪの三次元位置及び姿勢に基づいた制御信号を制御装置４０から取得し、取得した制御信号に基づいて、物体ＯＢＪに対して所定の作業を行う。所定の作業とは、例えば、ロボット３０の把持部により物体ＯＢＪを把持し、把持された物体ＯＢＪを現在設置されている位置から、他の位置へと移動させることや、移動させた後に別の装置に組み付けを行うこと等の作業である。
【００３３】
制御装置４０は、ロボット３０が所定の作業を行うように制御する。より具体的には、まず、制御装置４０は、撮像部１０により撮像された物体ＯＢＪの撮像画像に基づいて、撮像部１０と投射部２０との間のキャリブレーション処理を行う。制御装置４０は、このキャリブレーション処理によって、より精度の高い物体ＯＢＪの三次元位置及び姿勢を導出することができる。キャリブレーション処理についての詳細は後述する。そして、制御装置４０による撮像部１０と投射部２０との間のキャリブレーション処理が終了した後、制御装置４０は、撮像部１０により撮像された物体ＯＢＪの撮像画像に基づいて、物体ＯＢＪの三次元位置及び姿勢を導出する。制御装置４０は、導出された三次元位置及び姿勢に基づく制御信号を生成し、生成した制御信号をロボット３０に出力することで、ロボット３０を制御する。また、制御装置４０は、自装置が備える後述する画像生成部５２により生成された各種画像を投射部２０に出力し、出力した各種画像を投射するように投射部２０を制御する。また、制御装置４０は、撮像画像を撮像するように撮像部１０を制御する。
【００３４】
次に、図２を参照することで、制御装置４０のハードウェア構成について説明する。図２は、制御装置４０のハードウェア構成の一例を示す図である。制御装置４０は、例えば、ＣＰＵ（Central  Processing  Unit）４１と、記憶部４２と、入力受付部４３と、通信部４４とを備え、通信部４４を介して他の撮像部１０、投射部２０、ロボット３０と通信を行う。ＣＰＵ４１は、記憶部４２に格納された各種プログラムを実行する。記憶部４２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）などを含み、制御装置４０が処理する各種情報や画像、プログラムを格納する。なお、記憶部４２は、制御装置４０に内蔵されるものに代えて、外付け型の記憶装置でもよい。
【００３５】
入力受付部４３は、例えば、キーボードやマウス、タッチパッド、その他の入力装置である。なお、入力受付部４３は、表示部として機能してもよく、さらに、タッチパネルとして構成されてもよい。通信部４４は、例えば、ＵＳＢ等のデジタル入出力ポートとともに、イーサネットポート等を含んで構成される。
【００３６】
次に、図３を参照することで、制御装置４０の機能構成について説明する。図３は、制御装置４０の機能構成の一例を示す図である。制御装置４０は、例えば、記憶部４２と、撮像制御部４６と、画像取得部４８と、投射制御部５０と、初期処理部６０と、三次元点群生成部７０と、ロボット制御部８０とを備える。これらの機能部のうち、撮像制御部４６と、画像取得部４８と、投射制御部５０と、初期処理部６０と、三次元点群生成部７０と、ロボット制御部８０との一部又は全部は、例えば、ＣＰＵ４１が、記憶部４２に記憶された各種プログラムを実行することで実現される。また、これらの機能部のうち一部または全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。撮像制御部４６は、初期処理部６０又は三次元点群生成部７０からの要求に従い、要求されたタイミングで撮像するように撮像部１０を制御する。画像取得部４８は、撮像部１０により撮像された撮像画像を取得し、取得した撮像画像を記憶部４２に記憶させる。
【００３７】
投射制御部５０は、例えば、画像生成部５２を備える。画像生成部５２は、初期処理部６０又は三次元点群生成部７０からの要求に従い、記憶部４２から投射画像を生成するための各種情報を読み込み、読み込んだ情報に基づいて投射画像を生成する。投射制御部５０は、画像生成部５２が生成した各種画像を投射画像として投射部２０に出力し、出力した投射画像を投射するように投射部２０を制御する。また、投射制御部５０は、初期処理部６０から好適な輝度出力を示す情報を取得し、取得した好適な輝度出力にまで投射部２０の輝度出力を調整するように投射部２０を制御する。好適な輝度出力についての詳細は後述するが、例えば、撮像部１０の撮像素子の感度を十分に上回る輝度出力のことである。
【００３８】
投射部２０の輝度出力が撮像部１０の撮像素子の感度を上回っている場合、投射部２０により投射された投射画像を撮像部１０が撮像すると、撮像画像平面上に投射画像の全てが明確に撮像される。なお、投射制御部５０は、画像生成部５２が各種画像を生成することに代えて、各種画像を記憶部４２から読み込み、読み込んだ各種画像を投射画像として投射部２０に出力し、出力した投射画像を投射するように投射部２０を制御するものとしてもよい。
【００３９】
ここで、図４を参照することにより、画像生成部５２が生成する投射画像について説明する。図４は、画像生成部５２が生成する投射画像の例を示す図である。画像生成部５２は、赤色の画像ＲＩＭＧを生成する。赤色画像ＲＩＭＧは、後述するキャリブレーション処理を行う際に利用する画像である。画像生成部５２は、さらに、投射部２０の光学中心を通り投射画像平面上の縦方向に延伸する直線画像ＶＩＭＧ、投射部２０の光学中心を通り投射画像平面上の横方向に延伸する直線画像ＨＩＭＧを生成する。直線画像ＶＩＭＧ及び直線画像ＨＩＭＧは、後述する位相接続処理を行う際に利用する画像である。
【００４０】
また、画像生成部５２は、投射画像平面上で輝度が周期的に変化し、輝度の周期的変化を表す波が投射画像平面上の水平方向に進行している４枚の画像ＨＦＩ−０〜ＨＦＩ−３を生成する。画像ＨＦＩ−０〜ＨＦＩ−３は、輝度の周期的変化を表す波の位相が互いにπ／２だけ異なる画像である。画像ＨＦＩ−０〜ＨＦＩ−３中の明度が高い点が輝度値の高い点であり、明度の低い点が輝度値の低い点である。画像ＨＦＩ−０〜ＨＦＩ−３と同様に、画像生成部５２は、投射画像平面上で輝度が周期的に変化し、輝度の周期的変化を表す波が投射画像平面上の垂直方向に進行している４枚の画像ＶＦＩ−０〜ＶＦＩ−３を生成する。画像ＶＦＩ−０〜ＶＦＩ−３は、輝度の周期的変化を表す波の位相が互いにπ／２だけ異なる画像である。図４に示したように、画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３における輝度の周期的変化を表す波は、投射画像平面上の水平方向及び垂直方向に進行する平面波（正弦波）であるが、斜めに進行する平面波であってもよいし、球面波等であってもよい。なお、画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３は、輝度が周期的に変化する画像に代えて、色彩が周期的に変化する画像であってもよい。画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３は、後述する位相接続処理を行う際に利用する画像であり、さらに、後述する物体ＯＢＪの三次元点群画像の生成処理にも利用する画像である。
【００４１】
図３に戻る。初期処理部６０は、例えば、輝度出力決定部６２と、位相算出部６４と、座標対応付部６６と、キャリブレーション処理部６８とを備える。初期処理部６０は、投射制御部５０を制御することで、図４に示した各種投射画像を投射部２０に順次投射させる。また、初期処理部６０は、撮像制御部４６を制御することで、投射部２０により投射された投射画像を撮像部１０に順次撮像させる。また、初期処理部６０は、輝度出力決定部６２により決定された好適な輝度出力を投射制御部５０に出力し、投射部２０の輝度出力を好適な輝度出力にまで調整する。
【００４２】
また、初期処理部６０は、撮像制御部４６を制御することで、撮像部１０のホワイトバランスやゲイン、絞り、露光時間を調整する。ホワイトバランスの調整については後述する。初期処理部６０は、ゲインや絞りを、好適な輝度出力で投射された画像の各点での色を再現可能な最低値に調整する。また、初期処理部６０は、露光時間を、投射画像を撮像した撮像画像にフリッカー現象によるちらつきが生じないようにするため、投射部２０のリフレッシュレートの逆数の３倍程度に調整する。投射部２０のリフレッシュレートは、例えば、６０［Ｈｚ］である。
【００４３】
また、初期処理部６０は、キャリブレーション処理部６８により導出された撮像部１０と投射部２０との間の位置関係を示す情報を、三次元点群生成部７０に出力する。撮像部１０と投射部２０との間の位置関係を示す情報とは、例えば、撮像部１０の撮像画像平面上における座標と、投射部２０の投射画像平面上における座標との間の座標変換（アフィン変換）を実現するための並進及び回転変換行列で表される。
【００４４】
輝度出力決定部６２は、投射部２０の好適な輝度出力を決定する。好適な輝度出力を決定する処理についての詳細は後述する。位相算出部６４は、撮像部１０の撮像画像平面上の座標と、投射部２０の投射画像平面上の座標とを対応付ける座標対応付処理に必要な位相を算出する。ここでいう位相とは、図４に示した画像ＨＦＩ−０〜ＨＦＩ−３平面上又は画像ＶＦＩ−０〜ＶＦＩ−３平面上の各点における輝度の周期的変化を表す波の位相である。また、座標対応付処理は、撮像部１０の撮像画像平面上における座標と、投射部２０の投射画像平面上における座標とを対応付ける処理である。位相を算出する処理及び座標対応付処理についての詳細は後述する。
【００４５】
座標対応付部６６は、位相算出部６４により算出された撮像画像平面上の各点における位相に基づいて、座標対応付処理を行う。キャリブレーション処理部６８は、座標対応付部６６により対応付けられた座標に基づいて、キャリブレーション処理を行う。キャリブレーション処理部６８は、キャリブレーション処理により、撮像部１０と投射部２０との間の位置関係を示す情報を導出する。
【００４６】
三次元点群生成部７０は、例えば、撮像時期決定部７２を備える。三次元点群生成部７０は、初期処理部６０から、撮像部１０と投射部２０との間の位置関係を示す情報を取得する。また、三次元点群生成部７０は、投射制御部５０を制御することで、画像ＨＦＩ−０〜ＨＦＩ−３及び／又は画像ＶＦＩ−０〜ＶＦＩ−３を投射部２０に順次投射させる。さらに、三次元点群生成部７０は、撮像制御部４６を制御することで、投射部２０により投射された画像を、撮像時期決定部７２により決定されたタイミングで撮像部１０に撮像させる。そして、三次元点群生成部７０は、記憶部４２により記憶された撮像画像であって、物体ＯＢＪに画像ＨＦＩ−０〜ＨＦＩ−３及び／又は画像ＶＦＩ−０〜ＶＦＩ−３がそれぞれ投射された複数の撮像画像と、初期処理部６０から取得した撮像部１０と投射部２０との間の位置関係を示す情報とに基づいて、例えば、位相シフト法等により物体ＯＢＪの三次元点群画像を生成する。三次元点群生成部７０は、生成した三次元点群画像を、ロボット制御部８０に出力する。ここで、三次元点群画像は、三次元点群情報の一例である。
【００４７】
撮像時期決定部７２は、投射部２０により投射された投射画像を、撮像部１０が撮像するべきタイミングを決定し、決定したタイミングで三次元点群生成部７０に撮像制御部４６を制御させることで、撮像部１０に投射画像を撮像させる。タイミングの決定処理についての詳細は後述する。
【００４８】
ロボット制御部８０は、例えば、三次元位置姿勢導出部８２を備える。ロボット制御部８０は、三次元位置姿勢導出部８２により導出された物体ＯＢＪの三次元位置及び姿勢に基づいて、物体ＯＢＪに対して所定の作業を行うようにロボット３０を制御する。三次元位置姿勢導出部８２は、三次元点群生成部７０から取得した物体ＯＢＪの三次元点群画像に基づいて、物体ＯＢＪの三次元位置及び姿勢を導出する。
【００４９】
以下、図５を参照することにより、初期処理部６０の各機能部が行う処理について説明する。図５は、初期処理部６０により実行される処理の流れの一例を示すフローチャートである。まず、輝度出力決定部６２は、投射部２０の好適な輝度出力を決定する。そして、輝度出力決定部６２は、決定した好適な輝度出力を投射制御部５０に出力し、投射制御部５０に投射部２０の輝度出力を調整させる（ステップＳ１００）。
【００５０】
ここで、好適な輝度出力を決定する処理について説明する。まず、輝度出力決定部６２は、投射制御部５０を制御することにより、投射部２０に白色画像を投射させる。この際、輝度出力決定部６２は、白色画像の輝度出力を１階調ずつ変化させ、変化させた度に撮像を行うように撮像制御部４６を制御することで、階調が異なる白色画像を撮像部１０に撮像させる。投射部２０の輝度出力は、例えば、０から２５４までの２５５階調だけ変化させることが可能である。輝度出力決定部６２は、各階調ごとに撮像された白色画像に基づいて、投射部２０の輝度出力と、撮像部１０により撮像された撮像画像平面上における輝度との関係を、ＲＧＢ（Red  Green  Blue）ごとに導出する。図６は、投射部２０の輝度出力と、撮像部１０により撮像された撮像画像平面上における輝度との関係の一例を表すグラフである。
【００５１】
図６に示したように、撮像部１０により撮像された撮像画像平面上における輝度は、投射部２０の輝度出力を上昇させたとき、基準線ＲＬまでは比較的に変化率が小さい。しかし、撮像部１０により撮像された撮像画像平面上における輝度は、基準線ＲＬを境にして、投射部２０の輝度出力と近似的に正比例するようになる。輝度出力決定部６２は、基準線ＲＬ（近似的な正比例の開始点）における投射部２０の輝度出力を最低値として、最低値から最大値までの範囲内のいずれかの値を、好適な輝度出力として決定する。以下の説明では、この最低値を好適な輝度出力として決定するものとする。
【００５２】
図５に戻る。以下では、ステップＳ１００で投射部２０の輝度出力が好適な輝度出力に調整された後、ユーザーがキャリブレーションボードを領域ＰＡと領域ＣＡとが重なった領域内に設置したものとして説明する。キャリブレーションボードとは、例えば、赤色と青色とで形成されたグリッドパターンである。図７は、赤色と青色とで形成されたグリッドパターンの一例を示す図である。図７に示したように、グリッドパターンは、赤地ＲＢＧに青色のグリッド模様ＢＧＤが描かれている。ユーザーがキャリブレーションボードを領域ＰＡと領域ＣＡとが重なった領域内に設置した後、初期処理部６０は、撮像制御部４６を制御することで、撮像部１０のホワイトバランス、ゲイン、絞り、露光時間（図５において、これらをパラメータと称する）を調整する（ステップＳ１１０）。
【００５３】
ここで、ゲイン、絞り、露光時間の調整については、前述した通りであるため、説明を省略する。そして、図８を参照することにより、ホワイトバランスの調整について説明する。図８は、キャリブレーションボードに白色光、赤色光をそれぞれ投射した場合の撮像画像の比較例を示す図である。図８の最左図は、キャリブレーションボードに白色光を投射した場合の撮像画像である。初期処理部６０は、投射制御部５０を制御することで、図７に示したキャリブレーションボードに対して、投射部２０から白色光を投射させると、図８の最左図のような撮像画像ＧＤＢを撮像することができる。そして、初期処理部６０は、図８の最左図を、グレースケールに変換する。この時、初期処理部６０は、グレースケールに変換された画像に基づいて、青色のグリッドＢＰからの反射光と、赤色のグリッドＲＰからの反射光との輝度が同じになるように、撮像部１０のホワイトバランスを撮像制御部４６に調整させる。
【００５４】
この調整を行ったあとのグレースケールに変換されたキャリブレーションボードを撮像した画像が、図８の中図である。図８の中図に示すように、このグレースケールに変換されたキャリブレーションボードを撮像した画像は、撮像画像の全体が略均一の輝度となり、青色のグリッドＢＰと赤色のグリッドＲＰとを区別することが不可能になる。このようにすることで、制御装置４０は、画像ＨＦＩ−０〜ＨＦＩ−３及び／又は画像ＶＦＩ−０〜ＶＦＩ−３をキャリブレーションボードに投射させた際、青色のグリッドＢＰと赤色のグリッドＲＰとの反射輝度の違いによる明暗が撮像画像上に生じないようにすることができる。言い換えると、制御装置４０は、キャリブレーションボードが存在しないかのように、白色光を利用した処理を行うことができる。また、このキャリブレーションボードに、図４で示した赤色画像ＲＩＭＧを投射した場合の撮像画像が、図８の最右図である。青色のグリッドＢＰと赤色のグリッドＲＰとの反射輝度は、白色光に対しては同じであるが、赤色光に対しては異なるため、図８の再右図のような撮像画像となる。
【００５５】
図５に戻る。ステップＳ１１０で初期処理部６０が撮像部１０のホワイトバランス、ゲイン、絞り、露光時間を調整した後、位相算出部６４は、投射制御部５０を制御することで、画像ＶＩＭＧ、画像ＨＩＭＧ、画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３を、投射部２０に順次投射させる。そして、位相算出部６４は、撮像制御部４６を制御することで、これらの画像を、撮像部１０に順次撮像させる（ステップＳ１２０）。
【００５６】
次に、位相算出部６４は、ステップＳ１２０で撮像された撮像画像を、記憶部４２から読み込み、読み込んだ撮像画像に基づいて撮像画像平面上の各点における位相を算出する（ステップＳ１３０）。ここで、図９を参照することにより、撮像画像平面上の各点における位相を算出する処理についての詳細を説明する。図９は、投射画像と撮像画像と、それらの各点における位相との関係の一例を示す図である。図９に示した例では、初期処理部６０が、領域ＰＡに投射された画像ＨＦＩ−０のうち、領域ＣＡに投射された部分を撮像画像ＣＡＩとして撮像部１０に撮像させる状況を示している。この時に撮像された撮像画像ＣＡＩは、記憶部４２に記憶される。位相算出部６４は、記憶部４２に記憶された撮像画像ＣＡＩを読み込み、読み込んだ撮像画像ＣＡＩ平面上の各点における輝度値を検出する。ここで、撮像画像平面上の各点における輝度値は、以下の式（１）で表される。
【００５７】
【数１】
2015087321.tif 000003
【００５８】
ここで、ｎ＝０、１、２、３である。ｎ＝０、１、２、３のそれぞれに対応したＩｎ（ｘ，ｙ）は、画像ＨＦＩ−０、１、２、３のそれぞれを撮像した撮像画像平面上の各点を表す座標（ｘ，ｙ）における輝度値を表している。それ故、Ｉ０（ｘ，ｙ）は、撮像画像ＣＡＩ平面上の各点を表す座標（ｘ，ｙ）における輝度値を表している。Ａ（ｘ，ｙ）は、各撮像画像平面上の輝度の変化を表す波の、座標（ｘ，ｙ）が表す点における振幅を表している。Ｂ（ｘ，ｙ）は、各撮像画像平面上の輝度の変化を表す波の、座標（ｘ，ｙ）が表す点における振幅がゼロのときの輝度値を表している。θ（ｘ，ｙ）は、撮像画像平面上の各点を表す座標（ｘ，ｙ）における位相を表している。式（１）で示したＩ０（ｘ，ｙ）〜Ｉ３（ｘ，ｙ）に対する４本の式を組み合わせることで、各撮像画像平面上の各点を表す座標（ｘ，ｙ）における位相θ（ｘ，ｙ）は、以下の式（２）のように表すことができる。
【００５９】
【数２】
2015087321.tif 000004
【００６０】
位相算出部６４は、式（２）と、上述した位相算出部６４が検出した各撮像画像平面上の各点を表す座標（ｘ，ｙ）における輝度値とに基づいて、各撮像画像平面上の各点を表す座標（ｘ，ｙ）における位相θ（ｘ，ｙ）を算出する。図５に戻る。ステップＳ１３０で位相算出部６４が各撮像画像平面上の各点における位相θ（ｘ，ｙ）を算出した後、座標対応付部６６は、位相算出部６４が算出した位相θ（ｘ，ｙ）に基づいて、撮像画像平面上の座標と、投射画像平面上の座標とを対応付ける座標対応付処理を行う（ステップＳ１４０）。
【００６１】
ここで、再び図９を参照することにより、座標対応付部６６による座標対応付処理について説明する。式（２）と、上述した位相算出部６４が検出した各撮像画像平面上の各点を表す座標（ｘ，ｙ）における輝度値とに基づいて、位相算出部６４が算出した位相θ（ｘ，ｙ）の取り得る範囲は、−π／２≦θ（ｘ，ｙ）≦π／２である。ところが、投射画像平面上及び撮像画像平面上における輝度の変化は、周期的に繰り返されているため、同位相線が複数存在する。図９に示した例では、投射画像平面上における同位相線ＳＰＬ１、ＳＰＬ２、ＳＰＬ３上に存在する各点の位相は、すべて同じ値を取る。このため、座標対応付部６６は、このままでは撮像画像ＣＡＩ平面上の同位相線ＳＰＬ３上に存在する点Ｐ（ｘ１，ｙ１）の位相θ（ｘ１，ｙ１）が、領域ＰＡ内に投射された画像ＨＦＩ−０平面上の同位相線ＳＰＬ１、ＳＰＬ２、ＳＰＬ３のいずれの同位相線上に位置する位相であるのかを判別することができない。
【００６２】
そこで、本実施形態における座標対応付部６６は、投射画像及び撮像画像に共通する所定の位置を基準として、位相接続処理を行う。位相接続処理とは、基準となる所定の位置から位相がπ／２だけ変化するたびに、その点での位相にπ／２を加算又は減算することで、投射画像平面上及び撮像画像平面上における輝度の変化を表す波の同位相線が一対一対応させることを可能にする処理のことである。座標対応付部６６は、基準となる所定の位置として、例えば、画像ＨＦＩ−０〜ＨＦＩ−３及びこれらを撮像した撮像画像に対して、画像ＶＩＭＧ平面上における縦方向に延伸した直線を利用する。また、座標対応付部６６は、基準となる所定の位置として、例えば、画像ＶＦＩ−０〜ＶＦＩ−３に対して、画像ＨＩＭＧ平面上における横方向に延伸した直線を利用する。
【００６３】
図９に示した例では、投射画像が画像ＨＦＩ−０であるため、座標対応付部６６は、画像ＶＩＭＧ平面上における縦方向に延伸した直線を、基準となる所定の位置を表す直線ＶＬとし、直線ＶＬを基準として位相接続処理を行う。座標対応付部６６は、直線ＶＬが領域ＰＡ及び領域ＣＡのいずれにも含まれているため、位相接続処理を行うことで、撮像画像平面上の点Ｐ（ｘ１，ｙ１）における位相θ（ｘ１，ｙ１）と、投射画像平面上の対応する同位相線ＳＰＬ３上の各点の位相とを対応付けることができる。この対応付けによって、座標対応付部６６は、撮像画像平面上の点Ｐ（ｘ１，ｙ１）に対応する投射画像平面上の点Ｐ’が、同位相線ＳＰＬ３上のいずれかに存在することを確定させる。なお、基準となる所定の位置は、基準線ＶＬのような直線に代えて、基準点や基準となる模様等であってもよいが、いずれの場合も必ず投射画像平面上及び撮像画像平面上の両方に含まれていなければならない。
【００６４】
座標対応付部６６は、輝度の変化を表す波が投射画像平面上において縦方向に進行している画像ＶＦＩ−０〜ＶＦＩ−３について、画像ＨＦＩ−０〜ＨＦＩ−３に対して行った位相接続処理と同様の処理を行う。これらの処理によって、位相算出部６４が算出した撮像画像平面上の点Ｐ（ｘ１，ｙ１）における位相θ（ｘ１，ｙ１）と同位相の、投射画像平面上における縦方向へ延伸する同位相線と、横方向へ延伸する同位相線とが得られるため、座標対応付部６６は、縦方向へ延伸する同位相線と横方向へ延伸する同位相線とが交差した点Ｐ’ （ｘ’１，ｙ’１）を、撮像画像平面上の点Ｐ（ｘ１，ｙ１）と対応付けることができる。この対応付によって、座標対応付部６６は、撮像画像平面上の点を表す座標と、投射画像平面上の点を表す座標とを、より正確に対応付けることができる。
【００６５】
なお、座標対応付部６６は、撮像部１０の撮像画像平面上の全画素数の方が、投射部２０の投射画像平面上の全画素数よりも大きい場合、撮像画像平面上の点を表す座標と、投射画像平面上の点を表す座標とを、サブピクセル精度で対応付ける処理を行ってよい。座標対応付部６６は、例えば、このサブピクセル精度で対応付ける処理を、投射画像平面上の座標間を分割し、撮像画像平面上の座標に対応する座標値を生成して補完することで行う。このように、撮像画像平面上の点を表す座標と、投射画像平面上の点を表す座標とを、サブピクセル精度で対応付けを行うことで、位相シフト法による物体ＯＢＪの三次元点群を生成する際、撮像部１０の撮像解像度以上の点群数を実現することができる。
【００６６】
図５に戻る。ステップＳ１４０で座標対応付部６６が、撮像画像平面上の点を表す座標と、投射画像平面上の点を表す座標とを対応付けた後、キャリブレーション処理部６８は、図７で示したキャリブレーションボードに、図４で示した画像ＲＩＭＧが投射され、投射されたキャリブレーションボードが撮像部１０により撮像された撮像画像を、記憶部４２から読み込む。そして、キャリブレーション処理部６８は、読み込んだ撮像画像に基づいて、キャリブレーション画像を生成する（ステップＳ１５０）。キャリブレーション画像とは、撮像部１０により撮像されたキャリブレーションボードの撮像画像Ｘ１を三次元モデル化したものである。
【００６７】
次に、キャリブレーション処理部６８は、例えば、撮像部１０が撮像画像Ｘ１と同じ撮像画像を撮像できる投射画像を、キャリブレーション画像に対してアフィン変換を行うことで生成する。そして、キャリブレーション処理部６８は、この際のアフィン変換に用いた並進及び回転変換行列を、撮像部１０と投射部２０との間の位置関係を示す情報として導出する（ステップＳ１６０）。
【００６８】
以下、図１０を参照することにより、三次元点群生成部７０が行う三次元点群画像の生成処理について説明する。図１０は、三次元点群生成部７０により実行される三次元点群画像の生成処理の流れの一例を示すフローチャートである。以下では、初期処理部６０によるキャリブレーション処理が終了した後、ユーザーが領域ＰＡと領域ＣＡとが重なった領域に物体ＯＢＪを設置したものとして説明する。まず、撮像時期決定部７２は、図４に示した画像ＨＦＩ−０〜ＨＦＩ−３のうちいずれか一つ、及び／又は画像ＶＦＩ−０〜ＶＦＩ−３のうちの未選択の画像を１つ選択して記憶部４２から読み込む（ステップＳ２００）。以下では、撮像時期決定部７２が、画像ＨＦＩ−０〜ＨＦＩ−３のうちの未選択の画像を１つ選択したものとして説明する。
【００６９】
次に、撮像時期決定部７２は、ステップＳ２００で未選択の画像があったか否かを判定する（ステップＳ２１０）。撮像時期決定部７２は、未選択の画像があったと判定した場合（ステップＳ２１０−Ｙｅｓ）、投射制御部５０を制御することで投射部２０に、ステップＳ２００で選択して読み込んだ画像を物体ＯＢＪへ投射させる（ステップＳ２２０）。次に、撮像時期決定部７２は、ステップＳ２００において選択された投射画像に関する前回のサブルーチン実行時に投射された投射画像が、今回のサブルーチン実行時に投射された投射画像に完全に切り替わったか否かを判断するため、撮像制御部４６を制御することで撮像部１０に、物体ＯＢＪが設置された領域ＣＡを、切替判断用画像として撮像させる（ステップＳ２３０）。なお、切替判断用画像は、時系列画像の一例である。次に、撮像時期決定部７２は、ステップＳ２３０で撮像した切替判断用画像を複数の領域に分割する。そして、撮像時期決定部７２は、一部又は全部の分割された領域ごとに、分割された領域内の画素ごとの輝度又は色彩を検出する（ステップＳ２４０）。なお、分割された各領域は、重なっていてもよいし、隣接していてもよいし、隣接していなくてもよいが、領域内に輝度又は色彩の周期的変化の一部又は全部を含んでいなければならない。
【００７０】
ここで、図１１を参照することで、切替判断用画像を複数の領域に分割する処理について説明する。図１１は、切替判断用画像が複数の領域に分割された場合の領域例を示す図である。画像ＰＩＣは、ステップＳ２３０で撮像部１０により撮像された切替判断用画像の一例である。画像ＰＩＣは、画像ＨＦＩ−０から他の画像へ切り替わる途中に撮像されたため、画像ＰＩＣの上段と下段とで異なる投射画像が撮像されたものとなっている。領域ＤＡは、ステップＳ２４０で画像ＰＩＣが複数に分割された領域のうちの１つである。図１１に示したように、領域ＤＡは、領域内に輝度又は色彩の周期的変化を含んでいる。撮像時期決定部７２は、領域ＤＡの各画素における輝度又は色彩を検出する。
【００７１】
図１０に戻る。撮像時期決定部７２は、ステップＳ２３０における撮像に関する前回のサブルーチン実行時に撮像された切替判断用画像が分割された複数の領域ごとの各画素における輝度又は色彩と、今回のサブルーチン実行時に撮像された切替判断用画像が分割された領域ごとの各画素における輝度又は色彩との差分を算出する（ステップＳ２５０）。ここで、図１２及び図１３を参照することで、前回のサブルーチン実行時における分割された領域ごとの各画素の輝度と、今回のサブルーチン実行時における分割された領域ごとの各画素の輝度との差分を算出する処理について説明する。図１２は、ステップＳ２００において投射された投射画像に関する前回のサブルーチン実行時に投射された投射画像、及び今回のサブルーチン実行時に投射された投射画像平面上の画素とその画素の輝度をプロットしたグラフの一例である。
【００７２】
実線Ｗ１は、例えば、前回のサブルーチン実行時に投射された画像ＨＦＩ−０を分割した複数の領域のうちの１つの画素ごとの輝度値をプロットした正弦波状のグラフである。また、点線Ｗ２は、例えば、前回のサブルーチン実行時に投射された画像ＨＦＩ−１を分割した複数の領域のうちの１つの画素ごとの輝度値をプロットした正弦波状のグラフである。画像ＨＦＩ−０と画像ＨＦＩ−１との輝度の周期的変化は、互いに位相がπ／２だけずれている。それを反映して、実線Ｗ１と点線Ｗ２とは、互いに位相がπ／２だけずれている。撮像時期決定部７２は、画素ごとに実線Ｗ１と点線Ｗ２との輝度の差分ＤＬを算出する。
【００７３】
撮像時期決定部７２が算出した差分ＤＬは、画素ごとにプロットされると、図１３に示したグラフのようになる。図１３は、撮像時期決定部７２が算出した差分を画素ごとにプロットしたグラフの一例である。ここで、ステップＳ２００において投射された投射画像に関する前回のサブルーチン実行時に投射された投射画像から、今回のサブルーチン実行時に投射された投射画像へと切り替わりが完了していた場合、図１３中の画素の多くは、算出した差分が所定の閾値Ｚ１を超過することになる。それ故、撮像時期決定部７２は、差分が所定の閾値Ｚ１を超過している画素の割合が、所定の閾値Ｚ２を超えた場合、前回のサブルーチン実行時に投射された投射画像から、今回のサブルーチン実行時に投射された投射画像へと切り替わりが完了したと判断する。
【００７４】
図１０に戻る。ステップＳ２５０で、差分を算出した後、撮像時期決定部７２は、算出した差分が所定の閾値Ｚ１を超えた画素の割合が、所定の閾値Ｚ２を超過したか否かを判定する（ステップＳ２６０）。所定の閾値Ｚ２を超過していないと判定した場合（ステップＳ２６０−Ｎｏ）、撮像時期決定部７２は、ステップＳ２３０に戻り、再び切替判断用画像を撮像する。一方、所定の閾値Ｚ２を超過していると判定した場合（ステップＳ２６０−Ｙｅｓ）、撮像時期決定部７２は、撮像制御部４６を制御することで、三次元点群生成部７０が位相シフト法に用いるための処理用画像として、投射画像を撮像するように撮像部１０を制御させる（ステップＳ２７０）。そして、撮像時期決定部７２は、ステップＳ２００に戻り、次の投射画像を選択する。なお、処理用画像は、処理対象画像の一例である。
【００７５】
一方、ステップＳ２１０で、未選択の画像がなかったと判定した場合（ステップＳ２１０−Ｎｏ）、三次元点群生成部７０は、位相シフト法によって三次元点群画像を生成するために必要な画像である処理用画像に基づいて、三次元点群画像を生成する。以上で、三次元点群生成部７０は、三次元点群画像の生成処理を終了する。なお、撮像時期決定部７２は、分割された領域のうち、少なくとも１つの領域内の画素ごとの輝度を検出するとしてもよい。その場合、撮像時期決定部７２は、投射部２０が画像の上段から順次、投射画像を切り替えていくため、画像の右下付近の領域を、分割された領域として用いるものとする。
【００７６】
このように、第１の実施形態に係る制御装置４０は、画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３のそれぞれについて、基準オブジェクトである直線が撮像された画像ＶＩＭＧ、画像ＨＩＭＧ平面上の位置を基点として撮像画像上の各画素の位相を算出し、算出した画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３上の各画素の位相に基づいて、撮像部１０の撮像画像平面上の位置を示す座標と、投射部２０の投射画像平面上の位置を示す座標との対応付けを行うため、実環境下でも十分な精度で撮像部１０と投射部２０との間のキャリブレーションを行うことができる。
【００７７】
また、制御装置４０は、投射部２０により投射された投射光の輝度と、撮像部１０により投射光が撮像された画像における投射光の輝度とに基づいて、画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３、及び、画像ＶＩＭＧ及び画像ＨＩＭＧを投射する投射部２０の輝度出力を決定するため、撮像部１０の撮影解像度の不足によるキャリブレーションの精度低下を防止することができる。
【００７８】
また、制御装置４０は、投射部２０と撮像部１０との間の位置関係を表す情報である並進及び回転変換行列を導出するためのキャリブレーション画像と、算出部により算出された画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３平面上の各画素の位相とに基づいて、投射部２０と撮像部１０との間の位置関係を表す情報である並進及び回転変換行列を導出するキャリブレーション処理を行うため、ロボット等による作業対象となる物体の位置及び姿勢を導出するための三次元点群画像を、より高精度に生成することができる。
【００７９】
また、制御装置４０は、赤色と青色のグリッドパターンのキャリブレーションボードが撮像された画像と、算出部により算出された画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３平面上の各画素の位相とに基づいて、投射部２０と撮像部１０との間の位置関係を表す情報である並進及び回転変換行列を導出するキャリブレーション処理を行うため、画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３の輝度又は色彩の変化が、グリッドパターンによって判別不可能になることを防止することができる。
【００８０】
また、制御装置４０は、キャリブレーション処理部により導出された三次元位置関係を表す情報である並進及び回転変換行列と、撮像部１０により撮像された物体ＯＢＪの画像とに基づいて、物体ＯＢＪの三次元点群画像を生成するため、ロボット等による作業対象となる物体ＯＢＪの三次元位置及び姿勢をより高精度で導出することができる。
【００８１】
また、制御装置４０は、三次元点群画像に基づいて、物体ＯＢＪの三次元位置及び姿勢を導出し、導出した物体ＯＢＪの三次元位置及び姿勢に基づいて、ロボットを制御するため、対象となる物体ＯＢＪに対する作業を、より高精度に行うことができる。
【００８２】
また、ロボット３０は、実環境下でも十分な精度で撮像部１０と投射部２０との間のキャリブレーションを行うため、対象となる物体ＯＢＪに対する作業を、より高精度に行うことができる。
【００８３】
また、制御装置４０は、投射部２０から投射された投射画像を、所定の画像処理に利用するための処理用画像として撮像するように撮像部１０を制御し、処理用画像を撮像するよりも前に、時系列で投射画像が撮像された複数枚の切替判断用画像間の比較に基づき、三次元点群生成部７０が撮像部１０に処理用画像を撮像させるタイミングを決定するため、より低コストで、同期用の投射領域を必要とせずに、十分な精度の同期制御を実現することができる。
【００８４】
また、制御装置４０は、処理用画像に基づいて、三次元点群画像を生成するため、より安定して三次元位置及び姿勢を算出することができる。
【００８５】
また、制御装置４０は、切替判断用画像が分割された複数の領域のうち少なくとも１つの検出領域内の各画素における輝度又は色彩を検出し、検出領域内で検出された輝度又は色彩の切替判断用画像間での比較に基づいて、三次元点群生成部７０が撮像部１０に処理用画像を撮像させるタイミングを決定するため、より高速に処理用画像を撮像するタイミングを決定することができる。
【００８６】
また、制御装置４０は、時間的に連続した切替判断用画像の検出領域間において、各画素における輝度又は色彩の差分を算出し、算出された差分に基づいて、三次元点群生成部７０が撮像部１０に処理用画像を撮像させるタイミングを決定するため、時間を用いた投射部２０による投射と、撮像部１０による撮像との間の同期に比べて、処理の遅延による同期の失敗を防止することができる。
【００８７】
また、制御装置４０は、検出領域を構成する全画素数に対する、差分が所定の閾値Ｚ１を超過した画素数の割合が、所定の閾値Ｚ２を超過していると判定したタイミングを、三次元点群生成部７０が撮像部１０に処理用画像を撮像させるタイミングとして決定するため、誤判定による撮像タイミングの遅延を防止することができる。
【００８８】
また、制御装置４０は、三次元位置及び姿勢を導出し、導出した三次元位置及び姿勢に基づいて、ロボットを制御するため、より低コストで実現でき、かつ、同期用の投射領域を必要とせずに、より精度の高いロボット制御を実現することができる。
【００８９】
また、ロボット３０は、三次元位置及び姿勢を導出し、導出した三次元位置及び姿勢に基づいて、アクチュエーターを制御するため、より低コストで十分な精度の同期制御に基づいた所定の作業を行うことができる。
【００９０】
＜第２の実施形態＞
以下、本発明の第２の実施形態について、図面を参照して説明する。第２の実施形態に係る制御装置４０は、第１の実施形態に係る制御装置４０が有する撮像時期決定部７２が省略されたものである。構成については、図１、２、３を援用し、同じ機能部に対して同一の符号を付して説明する。
【００９１】
図１４は、第２の実施形態における制御システム１の機能構成の一例を示す図である。制御装置４０は、例えば、記憶部４２と、撮像制御部４６と、画像取得部４８と、投射制御部５０と、初期処理部６０と、三次元点群生成部７０ａと、ロボット制御部８０とを備える。三次元点群生成部７０ａは、初期処理部６０から、撮像部１０と投射部２０との間の位置関係を示す情報を取得する。三次元点群生成部７０ａは、投射制御部５０を制御することで、画像ＨＦＩ−０〜ＨＦＩ−３及び／又は画像ＶＦＩ−０〜ＶＦＩ−３を順次、投射部２０に投射させる。また、三次元点群生成部７０ａは、撮像制御部４６を制御することで、投射部２０により投射された画像を、撮像部１０に順次撮像させる。そして、三次元点群生成部７０は、記憶部４２により記憶された撮像画像であって、物体ＯＢＪに画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３がそれぞれ投射された複数の撮像画像と、初期処理部６０から取得した撮像部１０と投射部２０との間の位置関係を示す情報とに基づいて、例えば、位相シフト法により物体ＯＢＪの三次元点群画像を生成する。三次元点群生成部７０は、生成した三次元点群画像を、ロボット制御部８０に出力する。
【００９２】
このように、第２の実施形態に係る制御装置４０は、画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３のそれぞれについて、基準オブジェクトである直線が撮像された画像ＶＩＭＧ、画像ＨＩＭＧ平面上の位置を基点として撮像画像上の各画素の位相を算出し、算出した画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３上の各画素の位相に基づいて、撮像部１０の撮像画像平面上の位置を示す座標と、投射部２０の投射画像平面上の位置を示す座標との対応付けを行うため、実環境下でも十分な精度で撮像部１０と投射部２０との間のキャリブレーションを行うことができる。
【００９３】
また、制御装置４０は、投射部２０により投射された投射光の輝度と、撮像部１０により投射光が撮像された画像における投射光の輝度とに基づいて、画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３、及び、画像ＶＩＭＧ及び画像ＨＩＭＧを投射する投射部２０の輝度出力を決定するため、撮像部１０の撮影解像度の不足によるキャリブレーションの精度低下を防止することができる。
【００９４】
また、制御装置４０は、投射部２０と撮像部１０との間の位置関係を表す情報である並進及び回転変換行列を導出するためのキャリブレーション画像と、算出部により算出された画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３平面上の各画素の位相とに基づいて、投射部２０と撮像部１０との間の位置関係を表す情報である並進及び回転変換行列を導出するキャリブレーション処理を行うため、ロボット等による作業対象となる物体の位置及び姿勢を導出するための三次元点群画像を、より高精度に生成することができる。
【００９５】
また、制御装置４０は、赤色と青色のグリッドパターンのキャリブレーションボードが撮像された画像と、算出部により算出された画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３平面上の各画素の位相とに基づいて、投射部２０と撮像部１０との間の位置関係を表す情報である並進及び回転変換行列を導出するキャリブレーション処理を行うため、画像ＨＦＩ−０〜ＨＦＩ−３及び画像ＶＦＩ−０〜ＶＦＩ−３の輝度又は色彩の変化が、グリッドパターンによって判別不可能になることを防止することができる。
【００９６】
また、制御装置４０は、キャリブレーション処理部により導出された三次元位置関係を表す情報である並進及び回転変換行列と、撮像部１０により撮像された物体ＯＢＪの画像とに基づいて、物体ＯＢＪの三次元点群画像を生成するため、ロボット等による作業対象となる物体ＯＢＪの三次元位置及び姿勢をより高精度で導出することができる。
【００９７】
また、制御装置４０は、三次元点群画像に基づいて、物体ＯＢＪの三次元位置及び姿勢を導出し、導出した物体ＯＢＪの三次元位置及び姿勢に基づいて、ロボットを制御するため、対象となる物体ＯＢＪに対する作業を、より高精度に行うことができる。
【００９８】
また、ロボット３０は、実環境下でも十分な精度で撮像部１０と投射部２０との間のキャリブレーションを行うため、対象となる物体ＯＢＪに対する作業を、より高精度に行うことができる。
【符号の説明】
【００９９】
１  制御システム、１０  撮像部、２０  投射部、３０  ロボット、４０  制御装置、４１  ＣＰＵ、４２  記憶部、４３  入力受付部、４４  通信部、４６  撮像制御部、４８  画像取得部、５０  投射制御部、５２  画像生成部、６０  初期処理部、６２  輝度出力決定部、６４  位相算出部、６６  座標対応付部、６８  キャリブレーション処理部、７０、７０ａ  三次元点群生成部、７２  撮像時期決定部、８０  ロボット制御部、８２  三次元位置姿勢導出部
【図１】
2015087321.tif 000005
【図２】
2015087321.tif 000006
【図３】
2015087321.tif 000007
【図５】
2015087321.tif 000008
【図６】
2015087321.tif 000009
【図１０】
2015087321.tif 000010
【図１２】
2015087321.tif 000011
【図１３】
2015087321.tif 000012
【図１４】
2015087321.tif 000013
【図４】
2015087321.tif 000014
【図７】
2015087321.tif 000015
【図８】
2015087321.tif 000016
【図９】
2015087321.tif 000017
【図１１】
2015087321.tif 000018