(57)【要約】【課題】３次元情報の計測を精度よく行うことができる制御システムを提供すること。【解決手段】制御システムは、投影部と、撮像部と、制御部と、を備え、撮像部は、画素値が所定のパターンを有するパターン光を投影部が投影した対象物を第１撮像画像として撮像し、画素値が一様な一様光を投影部が投影した対象物を第２撮像画像として撮像し、制御部は、第１撮像画像と第２撮像画像に基づいて、対象物の３次元形状を算出する。【選択図】図６
2016217778.tif 000002
【特許請求の範囲】
【請求項１】
投影部と、
撮像部と、
制御部と、を備え、
前記撮像部は、画素値が所定のパターンを有するパターン光を前記投影部が投影した対象物を第１撮像画像として撮像し、画素値が一様な一様光を前記投影部が投影した前記対象物を第２撮像画像として撮像し、
前記制御部は、前記第１撮像画像と前記第２撮像画像に基づいて、前記対象物の３次元形状を算出する、
制御システム。
【請求項２】
前記制御部は、前記第１撮像画像と前記第２撮像画像に基づいた位相シフト法によって前記３次元形状を算出する、
請求項１に記載の制御システム。
【請求項３】
前記画素値は、輝度値である、
請求項１又は２に記載の制御システム。
【請求項４】
前記一様光の前記画素値は、前記パターン光の画素値の平均値である、
請求項１から３のうちいずれか一項に記載の制御システム。
【請求項５】
前記制御部は、第１式と、第１式と異なる第２式を用いて前記３次元形状を算出する、
請求項１から４のうちいずれか一項に記載の制御システム。
【請求項６】
前記第１式及び前記第２式は、前記投影部が投影する光の強度の変化と、当該光を前記撮像部が撮像した撮像画像上での当該光の強度の変化との関係を近似的に表す式であり、
前記第１式は、前記関係を線形近似によって表した式であり、
前記第２式は、前記関係を２次以上の項まで含めた近似によって表した式である、
請求項５に記載の制御システム。
【請求項７】
前記制御部は、前記近似の誤差と、当該誤差に対する所定の閾値とに基づいて、前記３次元形状を算出するために用いる式を、前記第１式と前記第２式のいずれかに切り替える、
請求項６に記載の制御システム。
【請求項８】
前記撮像部は、複数の異なる前記パターン光のそれぞれについて、画素値が所定のパターンを有する前記パターン光を前記投影部が投影した前記対象物を前記第１撮像画像として撮像する、
請求項７に記載の制御システム。
【請求項９】
前記複数の異なる前記パターン光の数は、前記第２式を用いる場合の方が、前記第１式を用いる場合より少ない、
請求項８に記載の制御システム。
【請求項１０】
前記パターン光は、空間的なパターンを有する光である、
請求項１から９のうちいずれか一項に記載の制御システム。
【請求項１１】
ロボットと、
制御装置と、
を含み、
前記制御装置は、
画素値が所定のパターンを有するパターン光を投影部が投影した対象物が撮像された第１撮像画像と、画素値が一様な一様光を前記投影部が投影した前記対象物が撮像された第２撮像画像とに基づいて前記対象物の３次元形状を算出し、
前記３次元形状に基づいて前記ロボットを動作させる、
ロボットシステム。
【請求項１２】
画素値が所定のパターンを有するパターン光を投影部が投影した対象物を第１撮像画像として撮像し、
画素値が一様な一様光を前記投影部が投影した前記対象物を第２撮像画像として撮像し、
前記第１撮像画像と前記第２撮像画像に基づいて前記対象物の３次元形状を算出する、
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御システム、ロボットシステム、及び制御方法に関する。
【背景技術】
【０００２】
対象物の３次元情報に基づいてロボットに対象物を把持させる技術の研究や開発が行われている。
【０００３】
これに関し、所定のパターンを有するパターン光を投影する投影部と、投影部により当該パターン光が投影された対象物を撮像する撮像部とを用いて対象物の３次元情報を計測する３次元計測装置が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１１９４４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
この３次元計測装置は、撮像部により撮像された当該光の撮像画像上での強度が、投影部が投影する光の強度の変化に応じて一次関数的に変化することを前提に開発されたアルゴリズムに基づいて対象物の３次元情報を計測する。しかしながら、現実では、投影部が投影する光の強度と、当該光の撮像画像上での強度との関係は、一次関数によって近似できない場合がある。このような場合、当該３次元計測装置は、対象物の３次元形状を精度よく計測することができないという問題があった。
【０００６】
そこで本発明は、上記従来技術の問題に鑑みてなされたものであり、３次元情報の計測を精度よく行うことができる制御システム、ロボットシステム、及び制御方法を提供する。
【課題を解決するための手段】
【０００７】
上記課題の少なくとも一つを解決するために本発明の一態様は、投影部と、撮像部と、制御部と、を備え、前記撮像部は、画素値が所定のパターンを有するパターン光を前記投影部が投影した対象物を第１撮像画像として撮像し、画素値が一様な一様光を前記投影部が投影した前記対象物を第２撮像画像として撮像し、前記制御部は、前記第１撮像画像と前記第２撮像画像に基づいて、前記対象物の３次元形状を算出する、制御システムである。
この構成により、制御システムは、画素値が所定のパターンを有するパターン光を投影部が投影した対象物が撮像された第１撮像画像と、画素値が一様な一様光を投影部が投影した対象物が撮像された第２撮像画像とに基づいて、対象物の３次元形状を算出する。これにより、制御システムは、３次元情報の計測を精度よく行うことができる。
【０００８】
また、本発明の他の態様は、制御システムにおいて、前記制御部は、前記第１撮像画像と前記第２撮像画像に基づいた位相シフト法によって前記３次元形状を算出する、構成が用いられてもよい。
この構成により、制御システムは、第１撮像画像と第２撮像画像に基づいた位相シフト法によって３次元形状を算出する。これにより、制御システムは、位相シフト法によって３次元情報の計測を精度よく行うことができる。
【０００９】
また、本発明の他の態様は、制御システムにおいて、前記画素値は、輝度値である、構成が用いられてもよい。
この構成により、制御システムは、輝度値が所定のパターンを有するパターン光を投影部が投影した対象物が撮像された第１撮像画像と、輝度値が一様な一様光を投影部が投影した対象物が撮像された第２撮像画像とに基づいて、対象物の３次元形状を算出する。これにより、制御システムは、輝度値が所定のパターンを有するパターン光を投影部が投影した対象物が撮像された第１撮像画像と、輝度値が一様な一様光を投影部が投影した対象物が撮像された第２撮像画像とに基づいて、３次元情報の計測を精度よく行うことができる。
【００１０】
また、本発明の他の態様は、制御システムにおいて、前記一様光の前記画素値は、前記パターン光の画素値の平均値である、構成が用いられてもよい。
この構成により、制御システムは、画素値が所定のパターンを有するパターン光を投影部が投影した対象物が撮像された第１撮像画像と、画素値が当該パターン光の画素値の平均値であり、且つ画素値が一様な一様光を投影部が投影した対象物が撮像された第２撮像画像とに基づいて、対象物の３次元形状を算出する。これにより、制御システムは、画素値が所定のパターンを有するパターン光を投影部が投影した対象物が撮像された第１撮像画像と、画素値が当該パターン光の画素値の平均値であり、且つ画素値が一様な一様光を投影部が投影した対象物が撮像された第２撮像画像とに基づいて、３次元情報の計測を精度よく行うことができる。
【００１１】
また、本発明の他の態様は、制御システムにおいて、前記制御部は、第１式と、第１式と異なる第２式を用いて前記３次元形状を算出する、構成が用いられてもよい。
この構成により、制御システムは、第１式と、第１式と異なる第２式を用いて３次元形状を算出する。これにより、制御システムは、第１式と、第１式と異なる第２式に基づいて、３次元情報の計測を精度よく行うことができる。
【００１２】
また、本発明の他の態様は、制御システムにおいて、前記第１式及び前記第２式は、前記投影部が投影する光の強度の変化と、当該光を前記撮像部が撮像した撮像画像上での当該光の強度の変化との関係を近似的に表す式であり、前記第１式は、前記関係を線形近似によって表した式であり、前記第２式は、前記関係を２次以上の項まで含めた近似によって表した式である、構成が用いられてもよい。
この構成により、制御システムは、投影部が投影する光の強度の変化と、当該光を撮像部が撮像した撮像画像上での当該光の強度の変化との関係を線形近似によって表した第１式と、当該関係を２次以上の項まで含めた近似によって表した式である第２式とを用いて３次元形状を算出する。これにより、制御システムは、投影部が投影する光の強度の変化と、当該光を撮像部が撮像した撮像画像上での当該光の強度の変化との関係を線形近似によって表した第１式と、当該関係を２次以上の項まで含めた近似によって表した式である第２式とに基づいて、３次元情報の計測を精度よく行うことができる。
【００１３】
また、本発明の他の態様は、制御システムにおいて、前記制御部は、前記近似の誤差と、当該誤差に対する所定の閾値とに基づいて、前記３次元形状を算出するために用いる式を、前記第１式と前記第２式のいずれかに切り替える、構成が用いられてもよい。
この構成により、制御システムは、投影部が投影する光の強度の変化と、当該光を撮像部が撮像した撮像画像上での当該光の強度の変化との関係の近似の誤差と、当該誤差に対する所定の閾値とに基づいて、３次元形状を算出するために用いる式を、第１式と第２式のいずれかに切り替える。これにより、制御システムは、投影部が投影する光の強度の変化と、当該光を撮像部が撮像した撮像画像上での当該光の強度の変化との関係の近似の誤差と、当該誤差に対する所定の閾値とに基づく第１式と第２式の切り替えにより、３次元情報の計測を精度よく行うことができる。
【００１４】
また、本発明の他の態様は、制御システムにおいて、前記撮像部は、複数の異なる前記パターン光のそれぞれについて、画素値が所定のパターンを有する前記パターン光を前記投影部が投影した前記対象物を前記第１撮像画像として撮像する、構成が用いられてもよい。
この構成により、制御システムは、複数の異なるパターン光のそれぞれについて、画素値が所定のパターンを有するパターン光を投影部が投影した対象物を第１撮像画像として撮像する。これにより、制御システムは、複数の異なるパターン光のそれぞれについて、画素値が所定のパターンを有するパターン光を投影部が投影した対象物を第１撮像画像と、第２撮像画像とに基づいて、３次元情報の計測を精度よく行うことができる。
【００１５】
また、本発明の他の態様は、制御システムにおいて、前記複数の異なる前記パターン光の数は、前記第２式を用いる場合の方が、前記第１式を用いる場合より少ない、構成が用いられてもよい。
この構成により、制御システムは、第２式を用いる場合、第１式を用いる場合より少ない数のパターン光であって、複数の異なるパターン光のそれぞれについて、画素値が所定のパターンを有するパターン光を投影部が投影した対象物を第１撮像画像として撮像する。これにより、制御システムは、第１式又は第２式に応じた数のパターン光に基づく第１撮像画像と、第２撮像画像とに基づいて、３次元情報の計測を精度よく行うことができる。
【００１６】
また、本発明の他の態様は、制御システムにおいて、前記パターン光は、空間的なパターンを有する光である、構成が用いられてもよい。
この構成により、制御システムは、画素値が所定の空間的なパターンを有するパターン光を投影部が投影した対象物を撮像した第１撮像画像と、画素値が一様な一様光を投影部が投影した対象物を撮像した第２撮像画像とに基づいて、対象物の３次元形状を算出する。これにより、制御システムは、画素値が所定の空間的なパターンを有するパターン光を投影部が投影した対象物を撮像した第１撮像画像と、画素値が一様な一様光を投影部が投影した対象物を撮像した第２撮像画像とに基づいて、３次元情報の計測を精度よく行うことができる。
【００１７】
また、本発明の他の態様は、ロボットと、制御装置と、を含み、前記制御装置は、画素値が所定のパターンを有するパターン光を投影部が投影した対象物が撮像された第１撮像画像と、画素値が一様な一様光を前記投影部が投影した前記対象物が撮像された第２撮像画像とに基づいて前記対象物の３次元形状を算出し、前記３次元形状に基づいて前記ロボットを動作させる、ロボットシステムである。
この構成により、ロボットシステムでは、画素値が所定のパターンを有するパターン光を投影部が投影した対象物が撮像された第１撮像画像と、画素値が一様な一様光を前記投影部が投影した前記対象物が撮像された第２撮像画像とに基づいて前記対象物の３次元形状を算出し、前記３次元形状に基づいて前記ロボットを動作させる。これにより、ロボットシステムは、３次元情報の計測を精度よく行うことができる。その結果、ロボットシステムでは、ロボットを精度よく動作させることができる。
【００１８】
また、本発明の他の態様は、画素値が所定のパターンを有するパターン光を投影部が投影した対象物を第１撮像画像として撮像し、画素値が一様な一様光を前記投影部が投影した前記対象物を第２撮像画像として撮像し、前記第１撮像画像と前記第２撮像画像に基づいて前記対象物の３次元形状を算出する、制御方法である。
この構成により、制御方法は、画素値が所定のパターンを有するパターン光を投影部が投影した対象物を第１撮像画像として撮像し、画素値が一様な一様光を投影部が投影した対象物を第２撮像画像として撮像し、第１撮像画像と第２撮像画像に基づいて対象物の３次元形状を算出する。これにより、制御方法は、３次元情報の計測を精度よく行うことができる。
【００１９】
以上により、制御システム、ロボットシステム、及び制御方法は、画素値が所定のパターンを有するパターン光を投影部が投影した対象物が撮像された第１撮像画像と、画素値が一様な一様光を投影部が投影した対象物が撮像された第２撮像画像とに基づいて、対象物の３次元形状を算出する。これにより、制御システム、ロボットシステム、及び制御方法は、３次元情報の計測を精度よく行うことができる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態に係るロボットシステム１の一例を示す構成図である。
【図２】投影部５が４つのパターン光のそれぞれを投影した場合に投影領域Ｒ１に表示される４枚の投影画像の一例を示す図である。
【図３】投影部５が一様光を投影した場合に当該投影領域Ｒ１に表示される投影画像の一例を示す図である。
【図４】投影画像上の輝度の変化に応じた変化であって、当該投影画像が撮像された撮像画像上における当該投影画像上の輝度の変化を表すグラフの一例を示す図である。
【図５】制御装置３０のハードウェア構成の一例を示す図である。
【図６】制御装置３０の機能構成の一例を示す図である。
【図７】制御部３６が本実施形態において説明する位相シフト法を用いてロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００２１】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態に係るロボットシステム１の一例を示す構成図である。ロボットシステム１は、投影部５と、撮像部１０と、ロボット２０と、制御装置３０を備える。
まず、ロボットシステム１が備える各構成について説明する。
【００２２】
投影部５は、例えば、光を投影するための液晶ライトバルブや投影レンズ、液晶駆動部、光源を備えるプロジェクターである。投影部５は、制御装置３０から投影画像を取得する。投影部５は、取得した投影画像に基づく光を生成し、生成した光を物体の表面に投影する。これにより、投影部５は、当該光が投影された物体の表面上に投影画像を表示させる。投影部５が備える光源は、例えば、超高圧水銀ランプやメタルハライドランプ等である。
【００２３】
この一例において、投影部５は、図１に示した作業台ＴＢの上面に設定された投影領域Ｒ１に対して投影画像に基づく光を投影可能な位置に設置される。これにより、投影部５は、投影画像を投影領域Ｒ１に表示することができる。投影領域Ｒ１は、作業台ＴＢの上面の一部であってもよく、作業台ＴＢの上面の全部であってもよい。
【００２４】
また、投影部５は、ケーブルによって制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。なお、投影部５は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって制御装置３０と接続される構成であってもよい。
【００２５】
撮像部１０は、集光された光を電気信号に変換する撮像素子であるＣＣＤ（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）などを含む。記憶部３２は、制御装置３０が処理する各種情報や画像、プログラム、図示しない給材領域の位置を示す情報等を格納する。なお、記憶部３２は、制御装置３０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置でもよい。
【００５５】
入力受付部３３は、例えば、キーボードやマウス、タッチパッド等を備えたティーチングペンダントや、その他の入力装置である。なお、入力受付部３３は、タッチパネルとして表示部３５と一体に構成されてもよい。
通信部３４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
表示部３５は、例えば、液晶ディスプレイパネル、あるいは、有機ＥＬ（ElectroLuminescence）ディスプレイパネルである。
【００５６】
次に、図６を参照し、制御装置３０の機能構成について説明する。図６は、制御装置３０の機能構成の一例を示す図である。制御装置３０は、記憶部３２と、制御部３６を備える。
【００５７】
制御部３６は、制御装置３０の全体を制御する。制御部３６は、撮像制御部４０と、投影制御部４１と、画像取得部４２と、位相画像生成部４４と、対応付部４５と、３次元点群情報生成部４６と、３次元位置姿勢導出部４７と、ロボット制御部４８と、記憶制御部４９を備える。制御部３６が備えるこれらの機能部のうち一部又は全部は、例えば、ＣＰＵ３１が、記憶部３２に記憶された各種プログラムを実行することで実現される。また、これらの機能部のうち一部または全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００５８】
撮像制御部４０は、撮像領域Ｒ２を撮像部１０に撮像させる。
投影制御部４１は、投影画像Ｐ０〜Ｐ４のそれぞれを示す情報を投影部５に出力する。そして、投影制御部４１は、出力した投影画像を表示させる光を投影領域Ｒ１に対して投影部５に投影させる。
画像取得部４２は、撮像部１０から撮像画像を取得する。
【００５９】
位相画像生成部４４は、画像取得部４２が取得した撮像画像Ｃ０〜撮像画像Ｃ４に基づいて、撮像画像Ｃ０における輝度値の周期的変化を表す波の位相であって、撮像画像Ｃ０上の各画素における位相を算出する。位相画像生成部４４は、算出した位相に基づいて第１位相画像を生成する。第１位相画像は、位相画像生成部４４が算出した撮像画像Ｃ０上の各画素を示す座標と、各画素における位相を表す情報とを対応付けた画像である。例えば、当該位相を表す情報は、輝度値であってもよく、明度であってもよく、色彩であってもよく、他の情報であってもよい。
【００６０】
また、位相画像生成部４４は、記憶部３２から投影画像Ｐ０〜投影画像Ｐ４を読み込む。位相画像生成部４４は、読み込んだ投影画像Ｐ０〜投影画像Ｐ４に基づいて、投影画像Ｐ０〜投影画像Ｐ４に基づいて、投影画像Ｐ０における輝度値の周期的変化を表す波の位相であって、投影画像Ｐ０上の各画素における位相を算出する。位相画像生成部４４は、算出した位相に基づいて第２位相画像を生成する。第２位相画像は、位相画像生成部４４が算出した投影画像Ｐ０上の各画素を示す座標と、各画素における位相を表す情報とを対応付けた画像である。例えば、当該位相を表す情報は、輝度値であってもよく、明度であってもよく、色彩であってもよく、他の情報であってもよい。
【００６１】
対応付部４５は、位相画像生成部４４が生成した第１位相画像及び第２位相画像に基づいて、撮像部１０の撮像画像上における各画素を示す座標と、投影部５の投影画像上における各画素を示す座標とを対応付ける対応付処理を行う。
３次元点群情報生成部４６は、対応付部４５による対応付処理の結果と、画像取得部４２が取得した撮像画像Ｃ０とに基づいて、対象物Ｏの３次元点群を示す情報を生成する。
３次元位置姿勢導出部４７は、３次元点群情報生成部４６が生成した３次元点群を示す情報であって対象物Ｏの３次元点群を示す情報に基づいて、対象物Ｏの位置姿勢を算出する。
【００６２】
ロボット制御部４８は、３次元位置姿勢導出部４７が導出した対象物Ｏの位置姿勢に基づいてアームを動作させ、エンドエフェクターＥに対象物Ｏを把持させる。そして、ロボット制御部４８は、アームを動作させ、エンドエフェクターＥが把持した対象物Ｏを図示しない給材領域に給材する。
記憶制御部４９は、画像取得部４２が取得した撮像画像Ｃ０〜撮像画像Ｃ４のそれぞれを記憶部３２に記憶させる。また、記憶制御部４９は、位相画像生成部４４が生成した第１位相画像及び第２位相画像のそれぞれを記憶部３２に記憶させる。また、記憶制御部４９は、３次元点群情報生成部４６が生成した３次元点群を示す情報を記憶部３２に記憶させる。
【００６３】
以下、図７を参照し、制御部３６が本実施形態において説明する位相シフト法を用いてロボット２０に所定の作業を行わせる処理について説明する。図７は、制御部３６が本実施形態において説明する位相シフト法を用いてロボット２０に所定の作業を行わせる処理の流れの一例を示すフローチャートである。図７に示したフローチャートにおいて、投影画像Ｐ０〜投影画像Ｐ４のそれぞれは、記憶部３２に予め記憶されている場合について説明する。なお、投影制御部４１は、投影画像Ｐ０〜投影画像Ｐ４のそれぞれを生成する構成であってもよく、投影画像Ｐ０〜投影画像Ｐ４のそれぞれを投影部５に生成させる構成であってもよい。
【００６４】
投影制御部４１は、投影画像Ｐ０〜投影画像Ｐ４のそれぞれ毎に、ステップＳ１１０からステップＳ１４０までの処理を繰り返し行う（ステップＳ１００）。以下では、ステップＳ１１０からステップＳ１４０までの処理を、ステップＳ１００において投影画像Ｐ０が選択された場合を例に挙げて説明する。投影制御部４１は、ステップＳ１００において選択した投影画像Ｐ０を記憶部３２から読み込む。投影制御部４１は、記憶部３２から読み込んだ投影画像Ｐ０を投影部５に出力し、投影画像Ｐ０を対象物Ｏを含む投影領域Ｒ１に表示させる光を投影部５に投影させる（ステップＳ１１０）。
【００６５】
次に、撮像制御部４０は、当該撮像領域Ｒ２を撮像部１０に撮像させる（ステップＳ１２０）。次に、画像取得部４２は、ステップＳ１２０において撮像部１０が撮像した撮像画像を撮像部１０から取得する（ステップＳ１３０）。この一例では、ステップＳ１００において選択された投影画像が投影画像Ｐ０であるため、ステップＳ１３０において画像取得部４２が取得する撮像画像は、撮像画像Ｃ０である。次に、記憶制御部４９は、ステップＳ１３０において画像取得部４２が取得した撮像画像を記憶部３２に記憶させる（ステップＳ１４０）。この一例では、ステップＳ１３０において画像取得部４２が取得した撮像画像が撮像画像Ｃ０であるため、ステップＳ１４０において記憶制御部４９は、撮像画像Ｃ０を記憶部３２に記憶させる。
【００６６】
このように、ステップＳ１００からステップＳ１４０までの処理を繰り返すことにより、制御部３６は、記憶部３２に撮像画像Ｃ０〜撮像画像Ｃ４のそれぞれを記憶させる。
【００６７】
次に、位相画像生成部４４は、記憶部３２から撮像画像Ｃ０〜撮像画像Ｃ４のそれぞれを読み込む（ステップＳ１５０）。次に、位相画像生成部４４は、ステップＳ１５０において読み込んだ撮像画像Ｃ０〜撮像画像Ｃ４のそれぞれに基づいて、撮像画像Ｃ０における輝度値の周期的変化を表す波の位相であって、撮像画像Ｃ０上の各画素における位相を特定する。そして、位相画像生成部４４は、特定した位相に基づいて第１位相画像を生成する（ステップＳ１６０）。ここで、ステップＳ１６０において位相画像生成部４４が撮像画像Ｃ０における輝度値の周期的変化を表す波の位相であって、撮像画像Ｃ０上の各点における位相を特定する処理について説明する。
【００６８】
まず、位相画像生成部４４が撮像画像Ｃ０における輝度値の周期的変化を表す波の位相であって、撮像画像Ｃ０上の各画素における位相を算出する原理について説明する。なお、以下では、投影画像（すなわち、投影画像Ｐ０〜投影画像Ｐ４）上のある画素ＰＸを示す座標を（ｐｘ，ｐｙ）によって表し、撮像画像（すなわち、撮像画像Ｃ０〜撮像画像Ｃ４）上において画素ＰＸが撮像されている画素を示す座標を（ｃｘ，ｃｙ）によって表す。また、以下では、座標（ｐｘ，ｐｙ）が示す投影画像上の画素を画素（ｐｘ，ｐｙ）と称し、座標（ｃｘ，ｃｙ）が示す撮像画像上の画素を画素（ｃｘ，ｃｙ）と称して説明する。
【００６９】
撮像画像Ｃ０上の画素（ｃｘ，ｃｙ）の輝度値ＩＣ０（ｃｘ，ｃｙ）は、ある関数ｆによって投影画像Ｐ０上の画素（ｐｘ，ｐｙ）の輝度値ＩＰ０（ｐｘ，ｐｙ）と関係付けることができる。すなわち、輝度値ＩＣ０（ｃｘ，ｃｙ）は、ＩＣ０（ｃｘ，ｃｙ）＝ｆ（ＩＰ０（ｐｘ，ｐｙ））と表すことができる。また、輝度値ＩＰ０（ｐｘ，ｐｙ）は、画素（ｐｘ，ｐｙ）における位相であって投影画像Ｐ０の輝度値の周期的変化を表す波の位相がθ（ｐｘ，ｐｙ）である場合、以下の式（１）のように表される。
【００７０】
【数１】
2016217778.tif 000003
【００７１】
上記の式（１）において、ＡＰは、投影画像Ｐ０の輝度値の周期的変化を表す波の振幅を表す。また、Ｐ＿ｂａｒは、投影画像Ｐ０〜投影画像Ｐ３のそれぞれにおける輝度値のオフセット（バイアス成分）であり、すなわち、投影画像Ｐ４の各画素における輝度値である（換言すると、オフセットは、投影画像Ｐ０の輝度値の周期的変化を表す波の変位が０となる位置における投影画像Ｐ０の輝度値のことである）。なお、Ｐ＿ｂａｒのように、変数を表す文字の後に「＿ｂａｒ」が付随する変数は、当該変数の上部に横棒が付随する変数を表すとする。上記の式（１）を用いると、輝度値ＩＣ０（ｃｘ，ｃｙ）は、以下の式（２）のように表すことができる。
【００７２】
【数２】
2016217778.tif 000004
【００７３】
同様に、撮像画像Ｃ１上の画素（ｃｘ，ｃｙ）の輝度値ＩＣ１（ｃｘ，ｃｙ）は、関数ｆによって投影画像Ｐ１上の画素（ｐｘ，ｐｙ）の輝度値ＩＰ１（ｐｘ，ｐｙ）を用いて、以下の式（３）のように表すことができる。
【００７４】
【数３】
2016217778.tif 000005
【００７５】
また、撮像画像Ｃ２上の画素（ｃｘ，ｃｙ）の輝度値ＩＣ２（ｃｘ，ｃｙ）は、関数ｆによって投影画像Ｐ２上の画素（ｐｘ，ｐｙ）の輝度値ＩＰ２（ｐｘ，ｐｙ）を用いて、以下の式（４）のように表すことができる。
【００７６】
【数４】
2016217778.tif 000006
【００７７】
また、撮像画像Ｃ３上の画素（ｃｘ，ｃｙ）の輝度値ＩＣ３（ｃｘ，ｃｙ）は、関数ｆによって投影画像Ｐ３上の画素（ｐｘ，ｐｙ）の輝度値ＩＰ３（ｐｘ，ｐｙ）を用いて、以下の式（５）のように表すことができる。
【００７８】
【数５】
2016217778.tif 000007
【００７９】
ここで、上記の式（２）〜式（５）のそれぞれは、位相θ（ｐｘ，ｐｙ）を定数として扱った場合、定数のオフセットＰ＿ｂａｒを変数のオフセットＰに置き換えることにより、オフセットＰの関数として扱うことができる。そして、関数ｆがオフセットＰの２次関数によって精度よく近似できる場合、すなわち、上記の式（２）〜式（５）のそれぞれをオフセットＰ＿ｂａｒの周りでテイラー展開して３次以上の項を無視できる場合、投影画像Ｐ０上の輝度値の周期的変化を表す波の位相であって投影画像Ｐ０上の画素（ｐｘ，ｐｙ）における位相θ（ｐｘ，ｐｙ）は、上記の式（２）〜式（５）のそれぞれにおける輝度値ＩＣ０（ｃｘ，ｃｙ）〜輝度値ＩＣ３（ｃｘ，ｃｙ）を用いて、以下の式（６）〜式（８）のように表すことができる。
【００８０】
【数６】
2016217778.tif 000008
【００８１】
【数７】
2016217778.tif 000009
【００８２】
【数８】
2016217778.tif 000010
【００８３】
ここで、上記の式（６）における右辺の輝度値ＩＣ０（ｃｘ，ｃｙ）〜輝度値ＩＣ３（ｃｘ，ｃｙ）は、撮像画像Ｃ０〜撮像画像Ｃ３のそれぞれから画素（ｃｘ，ｃｙ）の輝度値を検出することにより得ることが可能な量である。一方で、左辺のθ（ｐｘ，ｐｙ）は、座標（ｐｘ，ｐｙ）がどの画素を示しているのかが特定されていないため、現時点で検出不可能な量である。
【００８４】
そこで、位相画像生成部４４は、撮像画像Ｃ０〜撮像画像Ｃ３のそれぞれから画素（ｃｘ，ｃｙ）の輝度値であるＩＣ０（ｃｘ，ｃｙ）〜輝度値ＩＣ３（ｃｘ，ｃｙ）を検出する。そして、位相画像生成部４４は、撮像画像Ｃ０〜撮像画像Ｃ３のそれぞれから検出した画素（ｃｘ，ｃｙ）の輝度値であるＩＣ０（ｃｘ，ｃｙ）〜輝度値ＩＣ３（ｃｘ，ｃｙ）と、上記の式（６）とを用いて算出されたθ（ｐｘ，ｐｙ）を、撮像画像（すなわち、撮像素子）上の画素（ｃｘ，ｃｙ）における位相θ（ｃｘ，ｃｙ）として特定する。このような位相の特定を、撮像画像上の全ての画素について行うことにより、位相画像生成部４４は、撮像画像上の全ての画素における位相を特定する。なお、上記の式（６）は、第１式の一例である。
【００８５】
一方、関数ｆがオフセットＰの３次以上の関数によって精度よく近似できる場合、関数ｆがオフセットＰの２次関数によって精度よく近似できないため、上記の式（６）によって特定した位相θ（ｃｘ，ｃｙ）を用いて対応付処理を行った場合、精度が低下してしまう場合がある。そこで、関数ｆがオフセットＰの３次以上の関数によって精度よく近似できる場合、関数ｆをオフセットＰの３次以上の関数によって近似することによって得られる式によって位相θ（ｃｘ，ｃｙ）を特定する。
【００８６】
以下では、この一例として、関数ｆがオフセットＰの３次関数によって精度よく近似できる場合について説明する。関数ｆがオフセットＰの３次関数によって精度よく近似できる場合、すなわち、上記の式（２）〜式（５）のそれぞれをオフセットＰ＿ｂａｒの周りでテイラー展開して４次以上の項を無視できる場合、投影画像Ｐ０上の輝度値の周期的変化を表す波の位相であって投影画像Ｐ０上の画素（ｐｘ，ｐｙ）における位相θ（ｐｘ，ｐｙ）は、上記の式（２）〜式（５）における輝度値ＩＣ０（ｃｘ，ｃｙ）〜輝度値ＩＣ３（ｃｘ，ｃｙ）を用いて、以下の式（９）〜式（１１）のように表すことができる。
【００８７】
【数９】
2016217778.tif 000011
【００８８】
【数１０】
2016217778.tif 000012
【００８９】
【数１１】
2016217778.tif 000013
【００９０】
上記の式（９）におけるＩ＿ｂａｒは、各画素が輝度値Ｐ＿ｂａｒの投影画像Ｐ４が撮像された撮像画像である撮像画像Ｃ４の各画素における輝度値であるｆ（Ｐ＿ｂａｒ）を置き換えたものである。ここで、上記の式（６）の場合と同様に、上記の式（９）における右辺の輝度値ＩＣ０（ｃｘ，ｃｙ）〜輝度値ＩＣ３（ｃｘ，ｃｙ）、輝度値Ｉ＿ｂａｒは、撮像画像Ｃ０〜撮像画像Ｃ４のそれぞれから画素（ｃｘ，ｃｙ）の輝度値を検出することにより得ることが可能な量である。一方で、左辺のθ（ｐｘ，ｐｙ）は、座標（ｐｘ，ｐｙ）がどの画素を示しているのかが特定されていないため、現時点で検出不可能な量である。
【００９１】
そこで、位相画像生成部４４は、撮像画像Ｃ０〜撮像画像Ｃ４のそれぞれから画素（ｃｘ，ｃｙ）の輝度値であるＩＣ０（ｃｘ，ｃｙ）〜輝度値ＩＣ３（ｃｘ，ｃｙ）、輝度値Ｉ＿ｂａｒを検出する。そして、位相画像生成部４４は、撮像画像Ｃ０〜撮像画像Ｃ４のそれぞれから検出した画素（ｃｘ，ｃｙ）の輝度値であるＩＣ０（ｃｘ，ｃｙ）〜輝度値ＩＣ３（ｃｘ，ｃｙ）、輝度値Ｉ＿ｂａｒと、上記の式（９）とを用いて算出されたθ（ｐｘ，ｐｙ）を、撮像画像上の画素（ｃｘ，ｃｙ）における位相θ（ｃｘ，ｃｙ）として特定する。このような位相の特定を、撮像画像上の全ての画素について行うことにより、位相画像生成部４４は、撮像画像上の全ての画素における位相を特定する。なお、上記の式（９）は、第２式の一例である。
【００９２】
位相画像生成部４４は、上記の式（６）と式（９）とのいずれかの式を用いて位相θ（ｃｘ，ｃｙ）を特定する。位相画像生成部４４は、式（６）と式（９）とのいずれの式を用いるかを、関数ｆがオフセットＰの２次関数によって精度よく近似できるか否かの判定結果に応じて決める。この判定は、関数ｆが３次関数であることを仮定して導出された上記の式（１０）及び式（１１）を用いて行われる。
【００９３】
式（１０）及び式（１１）の左辺における輝度値ＩＣ０〜輝度値ＩＣ３は、実際に撮像画像Ｃ０〜撮像画像Ｃ３のそれぞれから検出される量である。以下では、説明の便宜上、当該量を第１検出量と称して説明する。また、上記の式（１０）及び式（１１）のそれぞれの右辺における第１項のｆ（Ｐ＿ｂａｒ）は、前述のＩ＿ｂａｒに置き換え可能な量であり、撮像画像Ｃ４から検出される量である。以下では、説明の便宜上、当該量を第２検出量と称して説明する。
【００９４】
一方で、上記の式（１０）及び式（１１）のそれぞれの右辺における第２項は、関数ｆがオフセットＰの３次関数であることを反映して現れている項である。すなわち、式（１０）及び式（１１）のそれぞれの右辺における第２項のいずれか一方が所定の閾値ε以上であることは、関数ｆがオフセットＰの２次関数によって精度よく近似出来ないことを示す。換言すると、式（１０）及び式（１１）のそれぞれの右辺における第２項の両方が所定の閾値ε未満であることは、関数ｆがオフセットＰの２次関数によって精度よく近似出来ることを示す。
【００９５】
そこで、式（１０）及び式（１１）のそれぞれにおける第１検出量と第２検出量との差を、それぞれ誤差δ１及び誤差δ２とした場合、誤差δ１と誤差δ２は、以下の式（１２）及び式（１３）によって表される。
【００９６】
【数１２】
2016217778.tif 000014
【００９７】
【数１３】
2016217778.tif 000015
【００９８】
すなわち、位相画像生成部４４は、上記の式（１２）及び式（１３）によって算出される誤差δ１と誤差δ２に基づいて、式（６）と式（９）とのいずれの式を用いるかを決定する。位相画像生成部４４は、誤差δ１と誤差δ２のうちいずれか一方が所定の閾値ε以上であった場合、式（９）を用いて位相θ（ｃｘ，ｃｙ）を特定する。一方、位相画像生成部４４は、誤差δ１と誤差δ２の両方が所定の閾値ε未満であった場合、式（６）を用いて位相θ（ｃｘ，ｃｙ）を特定する。これをまとめたものが、以下の式（１４）である。
【００９９】
【数１４】
2016217778.tif 000016
【０１００】
図７に戻る。ステップＳ１６０の処理が実行された後、位相画像生成部４４は、ステップＳ１００において読み込んだ投影画像Ｐ０〜投影画像Ｐ４のそれぞれに基づいて、撮像画像Ｐ０における輝度値の周期的変化を表す波の位相であって、投影画像Ｐ０上の各画素における位相を特定する。そして、位相画像生成部４４は、特定した位相に基づいて第２位相画像を生成する（ステップＳ１６５）。
【０１０１】
ここで、ステップＳ１６５において位相画像生成部４４が投影画像Ｐ０における輝度値の周期的変化を表す波の位相であって、投影画像Ｐ０上の各画素（ｐｘ，ｐｙ）における位相θ（ｐｘ，ｐｙ）を特定する処理について説明する。
【０１０２】
位相画像生成部４４は、以下に示す式（１５）と式（１６）のうちいずれか一方によって、位相θ（ｐｘ，ｐｙ）を特定（算出）する。
【０１０３】
【数１５】
2016217778.tif 000017
【０１０４】
【数１６】
2016217778.tif 000018
【０１０５】
ここで、ＩＰ０（ｐｘ，ｐｙ）は、投影画像Ｐ０上の画素（ｐｘ，ｐｙ）の輝度値を示す。また、ＩＰ１（ｐｘ，ｐｙ）は、投影画像Ｐ１上の画素（ｐｘ，ｐｙ）の輝度値を示す。また、ＩＰ２（ｐｘ，ｐｙ）は、投影画像Ｐ２上の画素（ｐｘ，ｐｙ）の輝度値を示す。また、ＩＰ３（ｐｘ，ｐｙ）は、投影画像Ｐ３上の画素（ｐｘ，ｐｙ）の輝度値を示す。なお、これらの式（１５）及び式（１６）は、ステップＳ１６０において説明した式（６）及び式（９）の導出方法において、撮像画像Ｃ０〜撮像画像Ｃ４を、投影画像Ｐ０〜投影画像Ｐ４に置き換えることによって導出することができるため、説明を省略する。
【０１０６】
次に、対応付部４５は、ステップＳ１６０において位相画像生成部４４が生成した第１位相画像と、ステップＳ１６５において位相画像生成部４４が生成した第２位相画像とに基づいて、撮像画像Ｃ０上における各画素を示す座標と、投影画像Ｐ０上における各画素を示す座標とを対応付ける対応付処理を行う（ステップＳ１７０）。ここで、位相画像生成部４４が生成した第１位相画像における位相は、相対位相であるため、第１位相画像と第２位相画像との位相の対応付けを行うためには、位相接続を行う必要がある。対応付部４５は、例えば、空間コード化法によって位相接続を行う構成であってもよく、波長の異なるパターン光を再度投影することにより複数の第１位相画像及び第２位相画像を計算することによって位相接続を行う構成であってもよく、他の従来知られている位相接続の方法や、これから開発される位相接続の方法によって位相接続を行う構成であってもよい。
【０１０７】
そして、対応付部４５は、位相接続が行われた後の第１位相画像及び第２位相画像に基づいて、撮像画像Ｃ０上における各画素を示す座標と、投影画像Ｐ０上における各画素を示す座標とを対応付ける。なお、位相接続を行った後の対応付部４５の処理は、従来の位相シフト法と同じであるため、詳しい説明を省略する。
【０１０８】
次に、３次元点群情報生成部４６は、ステップＳ１７０において対応付部４５が行った対応付処理の結果と、画像取得部４２が取得した撮像画像Ｃ０とに基づいて、対象物Ｏの３次元点群を示す情報を生成する（ステップＳ１８０）。次に、３次元位置姿勢導出部４７は、ステップＳ１８０において３次元点群情報生成部４６が生成した３次元点群を示す情報に基づいて、対象物Ｏの位置姿勢を算出する（ステップＳ１９０）。次に、ロボット制御部４８は、ステップＳ２４０において３次元位置姿勢導出部４７が算出した対象物Ｏの位置姿勢に基づいて、第１エンドエフェクターＥ１に対象物Ｏを把持させる。そして、ロボット制御部４８は、第１エンドエフェクターＥ１を動作させ、第１エンドエフェクターＥ１に把持させた対象物Ｏを、図示しない給材領域に給材させる（ステップＳ２００）。
【０１０９】
以上のように、制御部３６は、撮像画像Ｃ０上における各画素を示す座標と、投影画像Ｐ０上における各画素を示す座標とを対応付ける。この対応付けにより、制御部３６は、図８に示したフローチャートの処理によって、対象物Ｏを含む撮像画像に基づいて対象物Ｏの３次元点群を示す情報を精度よく生成することができる。
【０１１０】
＜パターン光の数が５以上の場合についての補足＞
上記の実施形態では、複数のパターン光の数が４の場合について説明した。しかし、複数のパターン光の数は、５以上であってもよい。しかし、上記のように、式（９）を算出する際の関数ｆがオフセットＰの３次関数によって精度よく近似できる場合、パターン光は、図２に示した４つのパターン光によって表示される投影画像Ｐ０〜投影画像Ｐ３のように、それぞれの輝度値の周期的変化を表す波の位相が互いにπ／２だけ異なる４つのパターン光を含む５以上のパターン光であるか、もしくは、図２に示した４つのパターン光によって表示される投影画像Ｐ０〜投影画像Ｐ３のように、それぞれの輝度値の周期的変化を表す波の位相が互いにπ／２だけ異なる４つのパターン光を含む４の倍数のパターン光であることが望ましい。
【０１１１】
これは、関数ｆがオフセットＰの３次関数によって精度よく近似できる場合、式（９）に対応する式の算出は、図２に示した４つのパターン光によって表示される投影画像Ｐ０〜投影画像Ｐ３のように、それぞれの輝度値の周期的変化を表す波の位相が互いにπ／２だけ異なる４つのパターン光を用いる方法でなければ行えないためである。
【０１１２】
このため、関数ｆがオフセットＰの３次関数によって精度よく近似できる場合、制御装置３０は、４の倍数である５以上のパターン光のうち、パターン光によって表示される５以上の投影画像それぞれの輝度値の周期的変化を表す波の位相が互いにπ／２となる４つのパターン光の組み合わせを抽出し、抽出した当該組み合わせを用いて、上記の実施形態において説明した方法によって対象物Ｏの３次元点群を示す情報を生成する。
【０１１３】
これはすなわち、関数ｆがオフセットＰの３次関数によって精度よく近似できる場合、対象物Ｏの３次元点群を示す情報を生成するのに用いることができる複数のパターン光の数は、４であることを示している。
【０１１４】
一方で、関数ｆがオフセットＰの２次関数によって精度よく近似できる場合、複数のパターン光の数は、４に代えて、５以上の数のうちの任意の数であってもよい。
すなわち、制御装置３０は、パターン光の数が５以上の場合、上記の式（６）を用いて位相を算出する際、５以上のパターン光によって表示される５以上の投影画像のそれぞれを撮像した撮像画像に基づいて対象物Ｏの３次元点群を示す情報を生成する。一方、制御装置３０は、パターン光の数が５以上の場合、上記の式（９）を用いて位相を算出する際、５以上のパターン光から、輝度値の周期的変化を表す波の位相が互いにπ／２となる４つのパターン光の組み合わせを抽出し、抽出した当該組み合わせを用いて、上記の実施形態において説明した方法によって対象物Ｏの３次元点群を示す情報を生成する。
【０１１５】
このようにすることで、制御装置３０は、パターン光の数が５以上の場合、式（６）を用いる場合と式（９）を用いる場合とで、位相を算出するのに用いるパターン光の数を変更し、対象物Ｏの３次元点群を示す情報を生成する際の効率を向上させることができる。また、制御装置３０は、パターン光の数が５以上の場合、５以上のパターン光から輝度値の周期的変化を表す波の位相が互いにπ／２となる４つのパターン光の組み合わせを予め抽出しておき、抽出しておいた４つのパターン光の組み合わせに基づいて、上記の実施形態において説明した方法により対象物Ｏの３次元点群を示す情報を生成することにより、パターン光の投影に要する時間を抑制することができ、その結果、対象物Ｏの位置姿勢を算出する効率を向上させることができる。
【０１１６】
以上説明したように、実施形態におけるロボットシステム１（又は、投影部５と、撮像部１０と、制御装置３０により構成される制御システム）は、輝度値が所定のパターンを有するパターン光を投影部５が投影した対象物Ｏが撮像された第１撮像画像（この一例において、撮像画像Ｃ０〜撮像画像Ｃ３）と、輝度値が一様な一様光を投影部５が投影した対象物Ｏが撮像された第２撮像画像（この一例において、撮像画像Ｃ４）とに基づいて、対象物Ｏの３次元形状を表す３次元点群を示す情報を算出する。これにより、制御システムは、３次元情報の計測を精度よく行うことができる。
【０１１７】
また、ロボットシステム１は、第１撮像画像と第２撮像画像に基づいた位相シフト法によって３次元形状を算出する。これにより、ロボットシステム１は、位相シフト法によって３次元情報の計測を精度よく行うことができる。
【０１１８】
また、ロボットシステム１は、輝度値が所定のパターンを有するパターン光を投影部５が投影した対象物Ｏが撮像された第１撮像画像と、輝度値が一様な一様光を投影部５が投影した対象物Ｏが撮像された第２撮像画像とに基づいて、対象物Ｏの３次元形状を算出する。これにより、ロボットシステム１は、輝度値が所定のパターンを有するパターン光を投影部５が投影した対象物Ｏが撮像された第１撮像画像と、輝度値が一様な一様光を投影部５が投影した対象物Ｏが撮像された第２撮像画像とに基づいて、３次元情報の計測を精度よく行うことができる。
【０１１９】
また、ロボットシステム１は、画素値が所定のパターンを有するパターン光を投影部５が投影した対象物Ｏが撮像された第１撮像画像と、画素値が当該パターン光の画素値の平均値であり、且つ画素値が一様な一様光を投影部５が投影した対象物Ｏが撮像された第２撮像画像とに基づいて、対象物Ｏの３次元形状を算出する。これにより、ロボットシステム１は、画素値が所定のパターンを有するパターン光を投影部５が投影した対象物Ｏが撮像された第１撮像画像と、画素値が当該パターン光の画素値の平均値であり、且つ画素値が一様な一様光を投影部が投影した対象物Ｏが撮像された第２撮像画像とに基づいて、３次元情報の計測を精度よく行うことができる。
【０１２０】
また、ロボットシステム１は、第１式（この一例において、式（６））と、第１式と異なる第２式（この一例において、式（９））を用いて３次元形状を算出する。これにより、ロボットシステム１は、第１式と、第１式と異なる第２式に基づいて、３次元情報の計測を精度よく行うことができる。
【０１２１】
また、ロボットシステム１は、投影部５が投影する光の強度の変化と、当該光を撮像部１０が撮像した撮像画像上での当該光の強度の変化との関係を線形近似によって表した第１式と、当該関係を２次以上の項まで含めた近似によって表した式である第２式とを用いて３次元形状を算出する。これにより、ロボットシステム１は、投影部５が投影する光の強度の変化と、当該光を撮像部１０が撮像した撮像画像上での当該光の強度の変化との関係を線形近似によって表した第１式と、当該関係を２次以上の項まで含めた近似によって表した式である第２式とに基づいて、３次元情報の計測を精度よく行うことができる。
【０１２２】
また、ロボットシステム１は、投影部５が投影する光の強度の変化と、当該光を撮像部１０が撮像した撮像画像上での当該光の強度の変化との関係の近似の誤差と、当該誤差に対する所定の閾値とに基づいて、３次元形状を算出するために用いる式を、第１式と第２式のいずれかに切り替える。これにより、ロボットシステム１は、投影部５が投影する光の強度の変化と、当該光を撮像部１０が撮像した撮像画像上での当該光の強度の変化との関係の近似の誤差と、当該誤差に対する所定の閾値とに基づく第１式と第２式の切り替えにより、３次元情報の計測を精度よく行うことができる。
【０１２３】
また、ロボットシステム１は、複数の異なるパターン光のそれぞれについて、画素値が所定のパターンを有するパターン光を投影部５が投影した対象物を第１撮像画像として撮像する。これにより、ロボットシステム１は、複数の異なるパターン光のそれぞれについて、画素値が所定のパターンを有するパターン光を投影部が投影した対象物を第１撮像画像と、第２撮像画像とに基づいて、３次元情報の計測を精度よく行うことができる。
【０１２４】
また、ロボットシステム１は、第２式を用いる場合、第１式を用いる場合より少ない数のパターン光であって、複数の異なるパターン光のそれぞれについて、画素値が所定のパターンを有するパターン光を投影部５が投影した対象物Ｏを第１撮像画像として撮像する。これにより、ロボットシステム１は、第１式又は第２式に応じた数のパターン光に基づく第１撮像画像と、第２撮像画像とに基づいて、３次元情報の計測を精度よく行うことができる。
【０１２５】
また、ロボットシステム１は、画素値が所定の空間的なパターンを有するパターン光を投影部５が投影した対象物を撮像した第１撮像画像と、画素値が一様な一様光を投影部５が投影した対象物Ｏを撮像した第２撮像画像とに基づいて、対象物Ｏの３次元形状を算出する。これにより、ロボットシステム１は、画素値が所定の空間的なパターンを有するパターン光を投影部５が投影した対象物Ｏを撮像した第１撮像画像と、画素値が一様な一様光を投影部５が投影した対象物Ｏを撮像した第２撮像画像とに基づいて、３次元情報の計測を精度よく行うことができる。
【０１２６】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１２７】
また、以上に説明した装置（例えば、ロボットシステム１（又は、前述の制御システム）の制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１２８】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１２９】
１  ロボットシステム、５  投影部、１０  撮像部、２０  ロボット、３０  制御装置、３１  ＣＰＵ、３２  記憶部、３３  入力受付部、３４  通信部、３５  表示部、３６  制御部、４０  撮像制御部、４１  投影制御部、４２  画像取得部、４４  位相画像生成部、４５  対応付部、４６  ３次元点群情報生成部、４７  ３次元位置姿勢導出部、４８  ロボット制御部、４９  記憶制御部
【図１】
2016217778.tif 000019
【図３】
2016217778.tif 000020
【図４】
2016217778.tif 000021
【図５】
2016217778.tif 000022
【図６】
2016217778.tif 000023
【図７】
2016217778.tif 000024
【図２】
2016217778.tif 000025