(57)【要約】【課題】グレーコードを用いて測定対象物の三次元形状を測定する場合に、多重反射の影響を抑制するとともに、測定対象物の表面からの反射光の輝度が大きくてもロバスト性を高めて測定できるようにする。【解決手段】空間コード法の各ビットの白コードに対応する部分と黒コードに対応する部分のそれぞれに、明暗が周期的に変化するパターンを付与し、白コードに対応する部分のパターンの位相をシフトさせる一方、黒コードに対応する部分のパターンの位相はシフトさせない複数のパターン光を生成して測定対象物に照射する。複数のパターン画像の同一座標に位置する画素値のコントラストに基づいて、各画素が白コードに対応するか、黒コードに対応するか白黒判定を行い、その結果に基づき、各画素にコードを割り当て、割り当てられたコードに基づいて、測定対象物の三次元形状を測定する。【選択図】図１１
2020180948.tif 000002
【特許請求の範囲】
【請求項１】
空間コード法に基づいて測定対象物の三次元形状を測定する三次元測定装置において、
光源と、
前記光源から出射された光を受けて、空間コード法の各ビットの白コードに対応する部分と黒コードに対応する部分のそれぞれに、明暗が周期的に変化するパターンを付与し、白コードに対応する部分のパターンの位相をシフトさせる一方、黒コードに対応する部分のパターンの位相はシフトさせない複数のパターン光を生成して測定対象物に照射するパターン光生成部と、
測定対象物から反射したパターン光を順次受光し、複数のパターン画像を取得する撮像部と、
複数の前記パターン画像の同一座標に位置する画素値のコントラストに基づいて、各画素が白コードに対応するか、黒コードに対応するか白黒判定を行い、当該白黒判定結果に基づき、各画素にコードを割り当て、割り当てられたコードに基づいて、測定対象物の三次元形状を測定する測定部とを備えることを特徴とする三次元測定装置。
【請求項２】
請求項１に記載の三次元測定装置において、
前記パターン光生成部は、空間コード法の各ビットについて、白コードに対応する部分と黒コードに対応する部分とのパターンを反転させたパターン光を測定対象物に照射可能に構成され、
前記測定部は、パターン画像の前記同一座標に位置する画素値のコントラスト値をパターンの反転前と反転後とで求め、反転前と反転後のコントラスト値の差分に基づいて、各画素の白黒判定を行うことを特徴とする三次元測定装置。
【請求項３】
請求項２に記載の三次元測定装置において、
前記測定部は、前記反転前と反転後のコントラスト値の差分を示す差分画像を生成し、当該差分画像に対して、前記白コードに対応する部分のパターンの位相の周期方向に膨張処理を行った後、同方向に収縮処理を行うように構成されていることを特徴とする三次元測定装置。
【請求項４】
請求項１から３のいずれか１つに記載の三次元測定装置において、
前記パターン光生成部は、位相シフト法に基づいて、明暗が周期的に変化するパターン光を、位相を変化させて複数生成して測定対象物に照射するように構成されるとともに、空間コード法で生成するパターン光のうち、少なくとも１つを位相シフト法で生成するパターン光と共用するように構成され、
前記測定部は、空間コード法と位相シフト法とを併用して測定対象物の三次元形状を測定するように構成されていることを特徴とする三次元測定装置。
【請求項５】
請求項１から３のいずれか１つに記載の三次元測定装置において、
前記パターン光生成部は、白コードと黒コードとが所定のパターンで繰り返されるポジパターンと、白コードと黒コードとが前記ポジパターンと反対のネガパターンとを設定し、前記ポジパターンの白コードに対応する部分のパターンの位相をシフトさせる一方、黒コードに対応する部分のパターンの位相はシフトさせないパターン光を生成するとともに、前記ネガパターンの白コードに対応する部分のパターンの位相をシフトさせる一方、黒コードに対応する部分のパターンの位相はシフトさせないパターン光を生成して測定対象物に照射するように構成されていることを特徴とする三次元測定装置。
【請求項６】
請求項５に記載の三次元測定装置において、
前記パターン光生成部は、位相シフト法に基づいて、明暗が周期的に変化するパターン光を、位相を変化させて複数生成して測定対象物に照射するように構成されるとともに、空間コード法で生成するパターン光のうち、前記ポジパターンで照射するパターン光と前記ネガパターンで照射するパターン光とを、位相シフト法で生成するパターン光と共用するように構成されていることを特徴とする三次元測定装置。
【請求項７】
請求項６に記載の三次元測定装置において、
前記パターン光生成部は、空間コード法で生成するパターン光のうち、前記ポジパターンで照射するパターン光と前記ネガパターンで照射するパターン光とを共用するように構成されていることを特徴とする三次元測定装置。
【請求項８】
請求項１に記載の三次元測定装置において、
前記パターン光生成部は、白コードに対応する部分のパターンの位相をシフトさせた３つ以上のパターン光を生成して測定対象物に順次照射するように構成され、
前記測定部は、前記撮像部で取得された３つ以上のパターン画像の同一座標に位置する画素値のうち、最大値と最小値の差分に基づいて、各画素の白黒判定を行うように構成されていることを特徴とする三次元測定装置。
【請求項９】
空間コード法に基づいて測定対象物の三次元形状を測定する三次元測定方法において、
光源からの光を受けて、空間コード法の各ビットの白コードに対応する部分と黒コードに対応する部分のそれぞれに、明暗が周期的に変化するパターンを付与し、白コードに対応する部分のパターンの位相をシフトさせる一方、黒コードに対応する部分のパターンの位相はシフトさせない複数のパターン光を生成して測定対象物に照射するパターン光照射ステップと、
前記パターン光照射ステップで測定対象物に照射されて当該測定対象物から反射したパターン光を順次受光し、複数のパターン画像を取得する撮像ステップと、
前記撮像ステップで取得された複数の前記パターン画像の同一座標に位置する画素値のコントラストに基づいて、各画素が白コードに対応するか、黒コードに対応するか白黒判定を行い、当該白黒判定結果に基づき、各画素にコードを割り当て、割り当てられたコードに基づいて、測定対象物の三次元形状を測定する測定ステップとを備えることを特徴とする三次元測定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、測定対象物の三次元形状を測定する三次元測定装置及び三次元測定方法に関し、特に空間コード法を利用する技術分野に属する。
【背景技術】
【０００２】
従来より、この種の三次元測定装置として、位置により異なる光強度分布を有するパターン光を測定対象物に投影して測定対象物から反射した光を受光し、受光量に基づいて得られた高さ情報を利用して測定対象物の三次元形状を測定する、いわゆるパターン投影法が知られている。パターン投影法を用いた測定対象物の三次元形状の測定では、例えば特許文献１に開示されているように、分解能が粗いが絶対位置を求めることができる「グレーコード法（空間コード法）」によるパターンと、詳細な相対位置を求めることができる「位相シフト法」によるパターンとの組み合わせにより、ダイナミックレンジが広くかつ高精度な測定を行う方法がある。
【０００３】
この中で、「グレーコード法」によるパターン検出に誤りが生じると絶対的な位置が大きくずれてしまうため、測定結果に不正なノイズが含まれたり、異常データとして一部が除外されるなどし、有効なデータとして得られない状態になるので、グレーコードの明部、暗部の検出ロバスト性を上げることが求められる。
【０００４】
グレーコードの明部、暗部の検出ロバスト性を上げる方法としては、パターン光の明暗を反転させたネガ・ポジパターンを用いる方法がある。しかし、間接的な反射光（多重反射）の影響を受けて、測定対象物の斜面部のコードが誤判定されてしまうケースがあるので、そのような多重反射光を分離する技術が用いられる場合がある。
【０００５】
多重反射光を分離する技術としては、例えば、非特許文献１に記載されているように、グレーコードの白色領域をチェックボード状の高周波なパターンに分割し、白黒を反転したパターンを、上下左右にシフトさせたパターンを投影し、各画素で最大輝度値から最小輝度値を引くことによって間接反射光を分離する技術や、非特許文献２に開示されているように、グレーコードの白色領域を白黒の高周波なパターンに分割してシフトして投影することにより、間接反射光を分離する技術などが知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１８−１４６３４８号公報
【非特許文献】
【０００７】
【非特許文献１】「グレーコード投影を用いた室内壁面での幾何補正方法」映像情報メディア学会Vol.67,No.9、2013
【非特許文献２】「投影光の２次元符号化による間接反射にロバストな三次元形状測定」画像の認識・理解シンポジウム、MIRU2010,2010/7
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、例えば、測定対象物の近傍に別の物品等が存在していると、本来、グレーコードの暗部と判定されるべき測定対象物上のある面に対して別の物品に照射されたグレーコードの明部が反射光として入射する場合がある。このことは、多数の測定対象物がばら積みされている状況において特定の測定対象物の三次元形状を測定する場合に発生頻度が高くなる。
【０００９】
グレーコードの暗部と判定されるべき測定対象物上のある面に対して他の物品からの反射光が入射すると、暗部と判定されるべき面からの反射光の輝度が大きくなり、非特許文献２に開示されているような明部に照射された高周波パターン間のコントラストが、グレーコードの明部と暗部間のコントラストと比較して相対的にかなり小さくなる。そのため、グレーコードの明部と暗部の境界付近のコード判定が不安定になり、ひいては、測定精度の低下要因になるという問題がある。
【００１０】
本発明は、かかる点に鑑みてなされたものであり、その目的とするところは、グレーコードを用いて測定対象物の三次元形状を測定する場合に、多重反射の影響を抑制するとともに、測定対象物の表面からの反射光の輝度が大きくてもロバスト性を高めて測定可能にすることにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、第１の発明は、空間コード法に基づいて測定対象物の三次元形状を測定する三次元測定装置において、光源と、前記光源から出射された光を受けて、空間コード法の各ビットの白コードに対応する部分と黒コードに対応する部分のそれぞれに、明暗が周期的に変化するパターンを付与し、白コードに対応する部分のパターンの位相をシフトさせる一方、黒コードに対応する部分のパターンの位相はシフトさせない複数のパターン光を生成して測定対象物に照射するパターン光生成部と、測定対象物から反射したパターン光を順次受光し、複数のパターン画像を取得する撮像部と、複数の前記パターン画像の同一座標に位置する画素値のコントラストに基づいて、各画素が白コードに対応するか、黒コードに対応するか白黒判定を行い、当該白黒判定結果に基づき、各画素にコードを割り当て、割り当てられたコードに基づいて、測定対象物の三次元形状を測定する測定部とを備えることを特徴とする。
【００１２】
この構成によれば、パターン光生成部において、空間コード法の各ビットの白コードに対応する部分と黒コードに対応する部分のそれぞれに、明暗が周期的に変化するパターンが付与される。白コードに対応する部分のパターンの位相をシフトさせる一方、黒コードに対応する部分のパターンの位相はシフトさせない複数のパターン光がパターン光生成部により生成されて測定対象物に照射される。これにより、パターンの明部と暗部が、平均的に同程度に明るさになるため、明部と暗部の間に生じるコントラストと、高周波パターン内で生じるコントラストが同程度となる。
【００１３】
したがって、取得されたパターン画像の同一座標に位置する画素値のコントラストに基づいて各画素の白黒判定を行う際に、多重反射の影響が抑制されるとともに測定対象物の表面からの反射光の輝度が大きくても高いロバスト性が確保される。よって、各画素に割り当てられるコードが正確になる。
【００１４】
第２の発明は、前記パターン光生成部は、空間コード法の各ビットについて、白コードに対応する部分と黒コードに対応する部分とのパターンを反転させたパターン光を測定対象物に照射可能に構成され、前記測定部は、パターン画像の前記同一座標に位置する画素値のコントラスト値をパターンの反転前と反転後とで求め、反転前と反転後のコントラスト値の差分に基づいて、各画素の白黒判定を行うことを特徴とする。
【００１５】
この構成によれば、白コードに対応する部分と黒コードに対応する部分とにそれぞれ照射するパターン光を容易に生成することができる。測定部が反転前と反転後のコントラスト値の差分に基づいて各画素の白黒判定を行うことで、高いロバスト性を確保することができる。
【００１６】
第３の発明は、前記パターン光生成部は、位相シフト法に基づいて、明暗が周期的に変化するパターン光を、位相を変化させて複数生成して測定対象物に照射するように構成され、前記測定部は、前記反転前と反転後のコントラスト値の差分を示す差分画像を生成し、当該差分画像に対して、前記白コードに対応する部分のパターンの位相の周期方向に膨張処理を行った後、同方向に収縮処理を行うように構成されていることを特徴とする。
【００１７】
すなわち、反転前と反転後のコントラスト値の差分を示す差分画像を生成すると、白コードに対応する部分のパターンの位相が反転している部分の境界で差分がゼロとなる部分が生じ、差分画像上では一部差分が生じない箇所が筋状に発生することになる。この差分画像に対してパターンの周期方向に膨張処理を行うことで、差分が生じない箇所が除去される。その後、同方向に収縮処理することで、膨張処理時に広がった明部の差分が元の状態に戻る。従って、測定結果に影響を与えることなく、差分画像上の筋状の部分を除去することができる。
【００１８】
第４の発明は、前記パターン光生成部は、位相シフト法に基づいて、明暗が周期的に変化するパターン光を、位相を変化させて複数生成して測定対象物に照射するように構成されるとともに、空間コード法で生成するパターン光のうち、少なくとも１つを位相シフト法で生成するパターン光と共用するように構成され、前記測定部は、空間コード法と位相シフト法とを併用して測定対象物の三次元形状を測定するように構成されていることを特徴とする。
【００１９】
この構成によれば、空間コード法と位相シフト法とを併用して測定対象物の三次元形状を測定できるので、測定可能な範囲を広く確保しながら、高精度な測定を行うことができる。この場合に、空間コード法で生成するパターン光のうち、少なくとも１つを位相シフト法で生成するパターン光と共用するようにしたので、パターン光の照射回数を減らすことができ、ひいては撮像回数の削減に繋がって測定に要する時間を短縮することができる。
【００２０】
第５の発明は、前記パターン光生成部は、白コードと黒コードとが所定のパターンで繰り返されるポジパターンと、白コードと黒コードとが前記ポジパターンと反対のネガパターンとを設定し、前記ポジパターンの白コードに対応する部分のパターンの位相をシフトさせる一方、黒コードに対応する部分のパターンの位相はシフトさせないパターン光を生成するとともに、前記ネガパターンの白コードに対応する部分のパターンの位相をシフトさせる一方、黒コードに対応する部分のパターンの位相はシフトさせないパターン光を生成して測定対象物に照射するように構成されていることを特徴とする。
【００２１】
この構成によれば、ポジパターンとネガパターンのそれぞれで白コードに対応する部分のパターンの位相をシフトさせる一方、黒コードに対応する部分のパターンの位相はシフトさせないパターン光を生成して測定対象物に照射することができる。これにより、「ポジパターン」−「ネガパターン」の演算の結果が正となった箇所を明部と判定し、「ポジパターン」−「ネガパターン」の演算の結果が負となった箇所を暗部と判定することで、空間コードの明部と暗部の検出ロバスト性が向上する。
【００２２】
第６の発明は、前記パターン光生成部は、位相シフト法に基づいて、明暗が周期的に変化するパターン光を、位相を変化させて複数生成して測定対象物に照射するように構成されるとともに、空間コード法で生成するパターン光のうち、前記ポジパターンで照射するパターン光と前記ネガパターンで照射するパターン光とを、位相シフト法で生成するパターン光と共用するように構成されていることを特徴とする。
【００２３】
この構成によれば、ポジパターンとネガパターンを設定する場合に、ポジパターンで照射するパターン光とネガパターンで照射するパターン光とを、位相シフト法で生成するパターン光と共用するようにしたので、測定に要する時間を短縮することができる。
【００２４】
第７の発明は、前記パターン光生成部は、空間コード法で生成するパターン光のうち、前記ポジパターンで照射するパターン光と前記ネガパターンで照射するパターン光とを共用するように構成されていることを特徴とする。
【００２５】
この構成によれば、ポジパターンで照射するパターン光とネガパターンで照射するパターン光とを共用するようにしたので、測定に要する時間を短縮することができる。
【００２６】
第８の発明は、前記パターン光生成部は、白コードに対応する部分のパターンの位相をシフトさせた３つ以上のパターン光を生成して測定対象物に順次照射するように構成され、前記測定部は、前記撮像部で取得された３つ以上のパターン画像の同一座標に位置する画素値のうち、最大値と最小値の差分に基づいて、各画素の白黒判定を行うように構成されていることを特徴とする。
【００２７】
すなわち、前記第２の発明のように、反転前と反転後のコントラスト値の差分を示す差分画像を生成すると、位相が反転している部分の境界で差分がゼロとなる部分が生じるので、膨張処理及び収縮処理が必要になるが、本発明では、３つ以上のパターン画像の同一座標に位置する画素値のうち、最大値と最小値の差分に基づいて、各画素の白黒判定を行うようにしているので、上述したような差分がゼロとなる部分は生じず、膨張処理及び収縮処理が不要になる。
【００２８】
第９の発明は、空間コード法に基づいて測定対象物の三次元形状を測定する三次元測定方法において、光源からの光を受けて、空間コード法の各ビットの白コードに対応する部分と黒コードに対応する部分のそれぞれに、明暗が周期的に変化するパターンを付与し、白コードに対応する部分のパターンの位相をシフトさせる一方、黒コードに対応する部分のパターンの位相はシフトさせない複数のパターン光を生成して測定対象物に照射するパターン光照射ステップと、前記パターン光照射ステップで測定対象物に照射されて当該測定対象物から反射したパターン光を順次受光し、複数のパターン画像を取得する撮像ステップと、前記撮像ステップで取得された複数の前記パターン画像の同一座標に位置する画素値のコントラストに基づいて、各画素が白コードに対応するか、黒コードに対応するか白黒判定を行い、当該白黒判定結果に基づき、各画素にコードを割り当て、割り当てられたコードに基づいて、測定対象物の三次元形状を測定する測定ステップとを備えることを特徴とする。
【発明の効果】
【００２９】
本発明によれば、空間コード法の各ビットの白コードに対応する部分と黒コードに対応する部分のそれぞれに、明暗が周期的に変化するパターンを付与し、白コードに対応する部分のパターンの位相をシフトさせる一方、黒コードに対応する部分のパターンの位相はシフトさせない複数のパターン光を生成して測定対象物に照射するようにしたので、多重反射の影響を抑制できるとともに、測定対象物の表面からの反射光の輝度が大きくてもロバスト性を高めて精度の高い測定を行うことができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施形態に係る三次元測定装置を備えたロボットシステムを用いてばら積みピッキング動作を行う様子を示す模式図である。
【図２】ロボットシステムのブロック図である。
【図３】センサ部の一例を示す斜視図である。
【図４】グレーコードパターン及び位相シフトパターンの一例を示す図である。
【図５】空間コード法の原理を説明する図である。
【図６】パターン画像セット、位相画像、絶対位相画像及び高さ画像の一例を示す図である。
【図７】空間コードパターンのうちの１パターンからポジパターンとネガパターンとを生成する場合を説明する図である。
【図８】ポジパターン画像とネガパターン画像の例を示す図である。
【図９】空間コードパターンの白コードに対応する部分に明暗が周期的に変化するパターンを付与した場合を説明する図である。
【図１０】特殊空間コードパターンを用いてコードを割り当てる手順を説明するフローチャートである。
【図１１】特殊空間コードパターンを示す図である。
【図１２】ポジパターン及びネガパターンの差分画像を示す図である。
【図１３】膨張処理後の画像及び収縮処理後の画像を示す図である。
【図１４】位相シフト法と特殊空間コード法とでパターン光を共用する場合を説明する図である。
【図１５】位相シフト法と特殊空間コード法とでパターン光を共用する場合の別の例を説明する図である。
【図１６】特殊空間コードパターン光の一例を示す図である。
【図１７】（Ａ）は一般的な空間コード法で測定した結果を示す図であり、（Ｂ）は本発明に係る特殊空間コード法で測定した結果を示す図である。
【発明を実施するための形態】
【００３１】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
【００３２】
図１は、本発明の実施形態に係る三次元測定装置１を備えたロボットシステム１０００の構成例を示す模式図である。この図１は、各種製品の製造工場等にある作業空間に積み上げられた複数のワークＷＫを、ロボットＲＢＴを用いて順次取り出し、所定の場所に設置されているステージＳＴＧまで搬送して該ステージＳＴＧ上に載置するばら積みピッキングを行う装置に、三次元測定装置１を組み込んだ場合について示しているが、三次元測定装置１は、ばら積みピッキングを行う装置以外にも、各種測定対象物の三次元形状を測定する場合に使用することができ、例えば測定対象物の検査を行う検査装置や測定対象物の観察を行う観察装置等で使用することもできる。
【００３３】
ロボットシステム１０００は、三次元測定装置１の他に、ロボットＲＢＴと、図２に示すように、各種画像や情報等を表示するための表示部３と、各種設定や操作を行うための操作部４と、ロボットＲＢＴを制御するロボットコントローラ６と、ロボット操作具７と、ロボット設定装置１００とを備えている。図１に示すように、ロボットＲＢＴは、産業用の汎用ロボットであり、ベース部が工場等の床面に対して固定されている。ロボットＲＢＴは、例えばマニピュレータ等とも呼ばれており、６軸制御が可能に構成されている。このロボットＲＢＴは、ベース部から延びるアーム部ＡＲＭと、アーム部ＡＲＭの先端部に設けられたエンドエフェクタＥＥＴとを備えている。アーム部ＡＲＭは、可動部としての関節部を複数備えた多関節型に構成することができる。アーム部ＡＲＭの各関節部の動作及びアーム部ＡＲＭ自体の回転動作によってエンドエフェクタＥＥＴを可動範囲内の所望の位置まで移動させることができる。
【００３４】
エンドエフェクタＥＥＴは、ワークＷＫを把持するハンド部等で構成することができる。エンドエフェクタＥＥＴは、ワークＷＫの外側を挟み込んで把持する構造のエンドエフェクタであってもよいし、空洞部を有するワークＷＫの内部に複数の爪部を挿入して該爪の間隔を広げることによって把持する構造のエンドエフェクタであってもよいし、板状のワークＷＫを吸引するエンドエフェクタ等であってもよく、いずれのエンドエフェクタＥＥＴも使用することができる。また、本明細書で「把持」とは、ワークＷＫの外側を挟み込む方法、空洞部に爪部を挿入して間隔を広げる方法、吸引する方法等の全ての例を含む意味で使用する。
【００３５】
ロボットＲＢＴは、ロボットコントローラ６によって制御される。ロボットコントローラ６はアーム部ＡＲＭの動作やエンドエフェクタＥＥＴの開閉動作等を制御する。またロボットコントローラ６はロボット設定装置１００から、ロボットＲＢＴの制御に必要な情報を取得する。例えば、図１に示す収納容器ＢＸに無作為に投入された多数のワークＷＫの三次元形状を、三次元測定装置１を使用して取得し、ロボット設定装置１００でワークＷＫの位置や姿勢を検出して、その情報をロボットコントローラ６が取得する。
【００３６】
ロボットシステム１０００の機能ブロック図を図２に示す。操作部４では、後述する物理シミュレーション、ピッキング動作シミュレーション、画像処理に関する各種設定を行う。また、表示部３で、操作部４による各種設定やロボットシステム１０００の動作状態の確認、シミュレーションの確認、高さ画像の確認等を行う。
【００３７】
一方、ロボットコントローラ６はロボット設定装置１００から出力される信号に従い、ロボットＲＢＴの制御を行うように構成された周知の部材である。また、ロボット操作具７は、ロボットＲＢＴの動作設定を行う。
【００３８】
（三次元測定装置１の全体構成）
三次元測定装置１は、三次元ロボットビジョンシステムなどと呼ばれており、ばら積みされたワークＷＫや段積みされたワークＷＫの他、平積みされたワークＷＫの三次元形状を測定して三次元形状データを取得する装置である。この実施形態では、三次元測定装置１がロボットビジョンとして使用される場合について説明するが、これに限らず、三次元測定装置１は、それ単独で使用することもできるし、他の装置と組み合わせて使用することもできる。三次元測定装置１をロボットビジョンとして使用する場合には、測定対象物がワークＷＫや、ワークＷＫが収容された箱、ワークＷＫが載置された台やパレット等になる。
【００３９】
図２に示すように、三次元測定装置１は、センサ部２と、センサ制御部２０とを備えている。この実施形態では、センサ部２とセンサ制御部２０とが別体とされていて、図１に示すようにセンサ部２をワークＷＫの上方に設置可能にし、センサ制御部２０をセンサ部２から離して設置可能にしているが、これに限らず、センサ部２とセンサ制御部２０とを一体化して１つのユニットとして構成してもよい。
【００４０】
（センサ部２の構成）
図３に示すように、センサ部２は、所定のパターン光をワークＷＫに照射する照明部ＰＲＪと、照明部ＰＲＪから投影されたパターン光のワークＷＫからの反射光を受光してパターン画像を取得する撮像部ＣＭＥ１〜４とを備えている。図３に示す例では、照明部ＰＲＪと撮像部ＣＭＥ１〜４とが一体化されているが、この例に限らず、照明部ＰＲＪと撮像部ＣＭＥ１〜４とを別体にして個別に設置可能にしてもよい。また、図３に示す例では、第１撮像部ＣＭＥ１、第２撮像部ＣＭＥ２、第３撮像部ＣＭＥ３及び第４撮像部ＣＭＥ４の４つの撮像部を備えている場合を示しているが、撮像部の数は特に限定されるものではない。また、照明部ＰＲＪについても２以上設けることができる。
【００４１】
照明部ＰＲＪは、図４に示すように空間コード法に基づいて空間コードパターン光（グレーコードパターン光）を生成してワークＷＫに照射することが可能に構成されるとともに、位相シフト法に基づいて位相シフトパターン光を生成してワークＷＫに照射することが可能に構成された部材であり、例えば、プロジェクタ等で構成することができる。位相シフトパターン光及び空間コードパターン光の詳細については後述する。尚、位相シフトパターン光及び空間コードパターン光は測定用パターン光であり、測定用パターン光をワークＷＫに「投影」することと、測定用パターン光をワークＷＫに「照射」することとは同義である。
【００４２】
照明部ＰＲＪの構造例としては、図５に示すように、例えば発光ダイオード（ＬＥＤ）等からなる光源ＬＴと、光源ＬＴから出射された光を受けるように、当該光源に対応するように配置される液晶パネルＰＬとを備えた構造を挙げることができる。液晶パネルＰＬに、光が透過する領域と、光が透過しない領域とを交互に複数形成することで、図４に示すように照度分布を変動させた縞状のパターン光を出射することが可能になる。尚、照明部ＰＲＪは、例えば、有機ＥＬパネル、デジタルマイクロミラーデバイス（ＤＭＤ）等で構成することもできる。
【００４３】
撮像部ＣＭＥ１〜４は同じ部材することができ、図３に示すように、照明部ＰＲＪを囲むように、照明部ＰＲＪの光軸から離れかつ光軸回りに互いに間隔をあけて設置されている。撮像部ＣＭＥ１は、ＣＣＤセンサやＣＭＯＳセンサ等の撮像素子を有するイメージセンサで構成されている。図示した照明部ＰＲＪ及び撮像部ＣＭＥ１〜４の構成例は一例であり、この構成例に限定されるものではない。
【００４４】
（センサ制御部２０の構成）
図２に示すように、センサ制御部２０は、照明制御部２１と、位相画像生成部２２と、測定部２３と、高さ画像生成部２４とを備えている。センサ制御部２０を構成する照明制御部２１、位相画像生成部２２、測定部２３及び高さ画像生成部２４のうち、任意の１つまたは２つ以上の部分をセンサ部２に組み込むこともできる。また、照明制御部２１、位相画像生成部２２、測定部２３及び高さ画像生成部２４のうち、任意の１つまたは２つ以上の部分をロボットコントローラ６に組み込むようにしてもよい。また、図２に示すように、センサ制御部２０をロボット設定装置１００に組み込むことができるが、ロボット設定装置１００とは別体にしてロボット設定装置１００の外部に設けることもできる。
【００４５】
（照明制御部２１の構成）
照明制御部２１は、照明部ＰＲＪを制御することにより、所望の位相シフトパターン光及び空間コードパターン光を照明部ＰＲＪに生成させるための部分であり、本発明のパターン光生成部は、照明制御部２１で構成することができる。
【００４６】
位相シフトパターン光は、明暗が周期的に変化するパターン光であってもよく、パターン光の種類は、図５に示す液晶パネルＰＬにおける光が透過する領域と、光が透過しない領域との形成位置やその寸法等によって自由に設定することができる。また、照明部ＰＲＪの液晶パネルＰＬにおける光が透過する領域と、光が透過しない領域との形成位置をずらしていくことで、照度分布を例えば正弦波状に変動させたパターン光を、位相を変えて同一ワークＷＫに対して複数回照射することができる。
【００４７】
空間コードパターン光は、グレーコード化されたパターン光、例えば、白黒デューティ比５０％で縞幅が全体の半分、４分の１、８分の１、１６分の１、…と細かくなっていく縞パターン光を順次照射し、それぞれのパターン光が照射されたタイミングでパターン画像を取得し、絶対位相を求める空間コード法を適用する場合に照射するパターン光である。空間コード法に基づいてワークＷＫの三次元形状を測定することもできるし、上述した位相シフト法と空間コード法とを併用してワークＷＫの三次元形状を測定することもできる。
【００４８】
図５に空間コード法の概念図を示すように、空間コード法によれば、光が照射される空間を、多数の断面略扇状の小空間に分け、この小空間に一連の空間コード番号を付すことができる。例えば、点Ｐの高さを求める場合には、点Ｐに対応する画素の空間コード番号を求めることで点Ｐの絶対位置を算出することができる。空間コード法の場合、ワークＷＫの高さが基準面に対して高くても、すなわち高低差が大きくても、光が照射される空間内にワークＷＫがあれば、空間コード番号から高さを演算することができる。したがって、高さの高いワークＷＫについても全体にわたって三次元形状を測定することができる。また、空間コード法では、許容高さのレンジ（ダイナミックレンジ）が広くなる反面、分解能が粗くなってしまうので、本実施形態では、詳細な相対位置を求めることができる位相シフト法を空間コード法と組み合わせている。これにより、ダイナミックレンジが広く、かつ、高精度な測定を行うことが可能になる。空間コード法のみを使用した測定結果でよい場合には、位相シフト法を併用しなくてもよい。
【００４９】
図６に、直方体のワークＷＫを撮像した場合のパターン画像セットの一例を示す。このパターン画像セットは次のようにして得ることができる。すなわち、位相シフト法に基づいて、照度分布を例えば正弦波状に変動させたパターン光を、位相を変えて複数回順次照射する場合、図３に示す照明部ＰＲＪによって１つ目のパターン光が投影されている間に、撮像部ＣＭＥ１〜４により、ワークＷＫから反射したパターン光を受光し、パターン画像を取得する。その後、１つ目のパターン光とは異なる位相を持った２つ目のパターン光を照明部ＰＲＪによって照射している間に、撮像部ＣＭＥ１〜４により、ワークＷＫから反射したパターン光を受光し、パターン画像を取得する。このようにして、複数（最低３枚）のパターン画像からなるパターン画像セットを取得する。
【００５０】
（位相画像生成部２２の構成）
図２に示す位相画像生成部２２は、図６に示すパターン画像セットに基づいてワークＷＫの表面の位相データを含む位相画像を生成する。尚、位相画像生成部２２は、各画素の位相値を計算する部分であり、必ずしも目に見える形で位相画像を生成しなくてもよく、位相画像を生成可能な演算、もしくは画素毎の位相値を算出する演算を行うことができればよい。位相画像の生成方法としては、例えば、パターン画像セットを構成する最低３枚のパターン画像から画素毎に正弦波の位相を求める方法があり、この方法は従来から周知の方法である。
【００５１】
位相画像生成部２２は、位相シフト法と空間コード法とを併用することで、図６に示す絶対位相画像を生成する。すなわち、空間コードパターン光を順次照射し、それぞれのパターンにてパターン画像を取得して絶対位相を求める空間コード法を、位相シフト法と組み合わせることで、絶対位相画像を生成することができる。
【００５２】
（相補パターン投影法）
位相シフト法と空間コード法とを併用する際、空間コード法によるパターン検出に誤りが生じると絶対的な位置が大きくずれてしまうため、測定結果に不正なノイズが含まれたり、異常データとして一部が除外されるなどし、有効なデータとして得られない状態になる。このため、空間コードパターンの各ビットの明部、暗部の検出ロバスト性を上げることが求められる。空間コードパターンの各ビットの明部、暗部の検出ロバスト性を上げる方法として、本実施形態では、相補パターン投影法と呼ばれる２値化処理を用いている。相補パターン投影法では、図７に示すように、空間コードパターンの各ビットの明暗を反転させたネガ・ポジパターンを生成してワークＷＫに照射し、その結果、取得されたネガパターン画像とポジパターン画像の輝度差の正負によって明暗を判定する。
【００５３】
具体的に説明すると、図７は、空間コードパターンのうちの１パターンに着目した場合を示しており、その１パターンからポジパターンを生成し、ポジパターンの明部（白コード）を暗部（黒コード）に、ポジパターンの暗部を明部にしたパターンをネガパターンとして生成する。これは照明制御部２１によって行うことができる。ポジパターン及びネガパターンは、予め生成しておき、記憶部２０８等に記憶させておいてもよい。そして、ポジパターン光が照射されたワークＷＫを撮像してポジパターン画像を取得し、ネガパターン光が照射されたワークＷＫを撮像してネガパターン画像を取得した後、ポジパターン画像とネガパターン画像との差分を取る。「ポジパターン画像」−「ネガパターン画像」の演算の結果が正となった箇所を明と判定し、「ポジパターン画像」−「ネガパターン画像」の演算の結果が負となった箇所を暗と判定する。
【００５４】
図８の左側は、箱ＢＸに収容されたワークＷＫに対してポジパターン光を照射した時の反射光を受光することで取得されたポジパターン画像を示している。黒コード（コード値（０））の範囲を枠Ａ１で示している。図８の右側は、同じワークＷＫに対してネガパターン光を照射した時の反射光を受光することで取得されたネガパターン画像を示している。白コード（コード値（１））の範囲を枠Ａ２で示している。
【００５５】
ポジパターン画像では、ワークＷＫにおける円形枠Ａ３で囲んだ面に対して箱ＢＸの底面からの反射光が入射している。この円形枠Ａ３で囲んだ面は、黒コードの範囲に含まれているので、本来、黒コードと判定されなければならない面であるが、箱ＢＸの底面からの反射光が当該面に入射していることによって、図８の右側に示すネガパターン画像における同一位置の面よりも明るくなってしまい、白コードと誤判定されてしまう。特に、ワークＷＫがばら積みされている場合のように、複数の斜面部が混在する状況で、このような多重反射（間接反射光）に起因した誤判定の発生頻度が高くなる傾向にある。
【００５６】
（多重反射の影響抑制）
多重反射の影響を抑制する方法として、図９の（Ｂ）に示すように、空間コードパターンの各ビットの白コードに対応する部分に明暗が周期的に変化する高周波パターンを付与する方法がある。尚、高周波パターンとは、空間コードパターンの周波数よりも高い周波数のパターンのことである。しかし、この方法も万能ではなく、反射光の輝度が高く、飽和状態に近い条件で撮像された場合、元の空間コードパターンの明部と暗部間のコントラストよりも、高周波パターンのコントラストが大きく下がるような状態になり、それが原因となり、空間コードパターンの境界部分の判定が不安定となる場合がある。
【００５７】
このことを図９に基づいて説明する。図９の（Ａ）は、空間コードパターンの各ビットの白コードに対応する部分に明暗が周期的に変化する高周波パターンを付与したパターン光を照射した場合を示している。尚、黒コード部分は黒のまま固定している。図９の（Ｂ）は、（Ａ）の所定範囲を拡大して示す図であり、この図に示すように、黒コードの範囲と白コードの範囲とが交互に設定され、白コードに対応する部分に上記高周波パターンが設定されている。
【００５８】
図９の（Ｃ）は、（Ｂ）の濃淡値のプロファイルの様子を示す図であり、上に行くほど輝度値が高くなっている。飽和状態に近い条件の場合、高周波パターンのコントラストＣ１が、元の空間コードパターンの明部と暗部間のコントラストＣ２よりも大きく下がってしまう。図９の（Ｄ）はコントラストが高い場合の理想的なプロファイルを示している。
【００５９】
図９の（Ｅ）は、白コードに対応する部分の高周波パターンを位相シフトさせた場合を示している。実線は位相シフト前の濃淡値のプロファイルを示しており、破線は位相シフト後の濃淡値のプロファイルを示している。位相シフト前、後の両方で高周波パターンのコントラストは低い状態になっている。図９の（Ｆ）は、位相シフトさせた場合における理想的なプロファイルを示している。
【００６０】
図９の（Ｇ）は、位相シフト前、後の差分波形を示しており、空間コードパターンの黒コード部分のコントラストが大きく広がっていることが要因で、差分波形の末広がりが大きく生じてしまう。ネガパターンとポジパターンとの境界で、互いに重複する範囲が増えることで、コードの誤検知が増えてしまう。一方、理想的なプロファイルの場合は、図９の（Ｈ）に示すように、差分波形の末広がりが十分に小さくなる。
【００６１】
つまり、ネガパターンとポジパターンとを生成することで、ロバスト性は高まるものの、図８に示すように多重反射の影響によるコードの誤検知が問題となり、その多重反射の影響を抑制しようとして図９に示すように白コードに対応する部分に高周波パターンを付与すると、今度は、飽和状態に近い条件下でコードの誤検知が増えてしまい、結果として、多重反射の影響抑制と、ロバスト性とを両立することが難しいケースがある。
【００６２】
（特殊空間コードパターン）
この実施形態では、三次元形状測定時における多重反射の影響抑制と、高いロバスト性とを両立させるために、特殊空間コードパターン光をワークＷＫに照射するようにしている。この方法を本明細書では特殊空間コード法と呼ぶ。特殊空間コードパターン光は照明制御部２１によって生成される。特殊空間コードパターン光は、一般的な空間コード法の各ビットの白コードに対応する部分と黒コードに対応する部分のそれぞれに、明暗が周期的に変化するパターンを付与することを前提とし、白コードに対応する部分のパターンの位相をシフトさせる一方、黒コードに対応する部分のパターンの位相はシフトさせないパターン光である。照明制御部２１は、白コードに対応する部分のパターンが異なる複数のパターン光を生成して順次ワークＷＫに照射するように構成されている。
【００６３】
図１０は、特殊空間コードパターン光を用いて各画素にコードを割り当てる手順を説明するフローチャートである。スタート後のステップＳＡ１では、図１１に示すように、照明制御部２１が、空間コードパターンのうちの１パターンからポジパターンを生成するとともに、ポジパターンの明暗を反転させたネガパターンを生成する。
【００６４】
ポジパターン及びネガパターンを生成した後、ステップＳＡ２では、パターン光をワークＷＫに照射する。ステップＳＡ２で照射されるパターン光は、ポジパターン光と、ネガパターン光であり、どちらを先に照射してもよい。ステップＳＡ２で照射するポジパターン光は、図１１の（Ａ）に示すパターンを有しており、暗部である黒コードに対応する部分に、明暗が周期的に変化する高周波パターンが付与され、この黒コードに対応する部分に付与された高周波パターンは位相をシフトすることなく、固定されたパターンである。明部である白コードに対応する部分にも、明暗が周期的に変化する高周波パターンが付与されているが、この白コードに対応する部分に付与された高周波パターンは位相をシフトさせる。ステップＳＡ２では、位相シフトパターン１とする。また、ステップＳＡ２で照射するネガパターン光は、図１１の（Ｂ）に示すパターンを有しており、このパターンも（Ａ）のパターンと同様に暗部である黒コードに対応する部分に、明暗が周期的に変化する高周波パターンが固定パターンとして付与され、明部である白コードに対応する部分に、明暗が周期的に変化する高周波パターンが位相シフトパターン１として付与されている。
【００６５】
ステップＳＡ２でポジパターン光がワークＷＫに照射されている時にステップＳＡ３で撮像部ＣＭＥがワークＷＫから反射したパターン光を受光してポジパターン画像を取得する。また、ステップＳＡ２でネガパターン光がワークＷＫに照射されている時にステップＳＡ３で撮像部ＣＭＥがワークＷＫから反射したパターン光を受光してネガパターン画像を取得する。
【００６６】
その後、ステップＳＡ４に進み、ステップＳＡ２とは異なる別のパターン光を照射する。ステップＳＡ４では、図１１の（Ｃ）に示すパターンを有するポジパターンと、（Ｄ）に示すパターンを有するネガパターンとを照射する。このステップＳＡ４においても、ポジパターンとネガパターンのどちらを先に照射してもよい。図１１の（Ｃ）に示すポジパターンの黒コードに対応する部分に付与されている高周波パターンは（Ａ）に示すパターンの黒コードに対応する部分に付与されている高周波パターンと同じである。一方、図１１の（Ｃ）に示すパターンの白コードに対応する部分に付与されている高周波パターンは（Ａ）に示すパターンの白コードに対応する部分に付与されている高周波パターンとは異なり、パターンの位相がシフトされている。位相のシフト量は特に限定されるものではないが、例えば２パターンを生成する場合には１８０度とする。３つ以上のパターン光を生成してワークＷＫに照射することもでき、この場合、位相のシフト量は、例えば４５度、９０度、１２０度等に設定することができる。位相のシフト量が４５度の場合は８パターン、位相のシフト量が９０度の場合は４パターン、位相のシフト量が１２０度の場合は３パターンである。ステップＳＡ２及びステップＳＡ４がパターン光照射ステップである。また、ステップＳＡ３及びステップＳＡ５が撮像ステップである。
【００６７】
図１１の（Ｄ）に示すネガパターンの黒コードに対応する部分に付与されている高周波パターンは（Ｂ）に示すパターンの黒コードに対応する部分に付与されている高周波パターンと同じである。一方、図１１の（Ｄ）に示すパターンの白コードに対応する部分に付与されている高周波パターンは（Ｂ）に示すパターンの白コードに対応する部分に付与されている高周波パターンとは異なり、パターンの位相がシフトされている。
【００６８】
図１０に示すフローチャートのステップＳＡ４でポジパターン光がワークＷＫに照射されている時にステップＳＡ５で撮像部ＣＭＥがワークＷＫから反射したパターン光を受光してポジパターン画像を取得する。また、ステップＳＡ４でネガパターン光がワークＷＫに照射されている時にステップＳＡ５で撮像部ＣＭＥがワークＷＫから反射したパターン光を受光してネガパターン画像を取得する。
【００６９】
図１０に示すフローチャートのステップＳＡ６では差分画像を生成する。差分画像の生成は、図２に示す位相画像生成部２２で行うことができる。具体的には、位相画像生成部２２は、ステップＳＡ２、ＳＡ３で取得された１枚目のポジパターン画像（図１１の（Ａ））と、ステップＳＡ４、ＳＡ５で取得された２枚目のポジパターン画像（図１１の（Ｃ））との差分（絶対値）を取ることによって図１２の（Ａ）に示すポジパターンの差分画像を生成する。また、位相画像生成部２２は、同様に、ステップＳＡ２、ＳＡ３で取得された１枚目のネガパターン画像（図１１の（Ｂ））と、ステップＳＡ４、ＳＡ５で取得された２枚目のネガパターン画像（図１１の（Ｄ））との差分を取ることによって図１２の（Ｂ）に示すネガパターンの差分画像を生成する。ポジパターンの差分画像とネガパターンの差分画像では、黒コードに対応する部分に付与されている高周波パターンは固定されているので差分は発生しないが、白コードに対応する部分に付与されている高周波パターンは位相がシフトされているので、差分が発生する。白コードに対応する部分の差分については、高周波パターンの位相が反転している部分の境界で差分がゼロになり、図１２に示すように、差分がゼロとなった箇所が黒い筋状に現れる。
【００７０】
ポジパターンとネガパターンの差分画像を取得した後、図１０に示すフローチャートのステップＳＡ７に進む。ステップＳＡ７では、ポジパターンの差分画像とネガパターンの差分画像のそれぞれに対して膨張処理を実行する。図１３の（Ａ）はポジパターンの差分画像であり、図１３の（Ｂ）はネガパターンの差分画像である。膨張処理の方向は、差分画像の横方向、即ち、白コードに対応する部分に付与されている高周波パターンの周期方向である。差分画像の横方向に膨張処理することで、明部の差分範囲が少し横方向に広がるとともに、差分の生じない箇所に現れる筋状の部分が除去される。図１３の（Ｃ）は、（Ａ）に示すポジパターンの差分画像を横方向に膨張処理した画像を示し、また、図１３の（Ｄ）は、（Ｂ）に示すネガパターンの差分画像を横方向に膨張処理した画像を示している。尚、膨張処理とは、自身の画素値を、周辺の画素の最大値に置き換える処理であり、周辺の参照画素を横方向に制限することで、横方向の膨張処理となる。
【００７１】
その後、図１０に示すフローチャートのステップＳＡ８に進む。ステップＳＡ８では、膨張処理したポジパターンの差分画像（Ｃ）に対して膨張処理時の方向と同方向の収縮処理を行うとともに、膨張処理したネガパターンの差分画像（Ｄ）に対して同方向の収縮処理を行う。膨張処理したポジパターンの差分画像（Ｃ）及び膨張処理したネガパターンの差分画像（Ｄ）に対して横方向に収縮処理することで、横方向の広がった明部の差分が元の状態に戻る。このとき、差分の生じない筋状の部分（（Ａ）及び（Ｂ）に示す）は消えたままの状態が保持される。図１３の（Ｅ）は、（Ｃ）に示す膨張処理後のポジパターンの差分画像を横方向に収縮処理した画像を示し、また、図１３の（Ｆ）は、（Ｄ）に示す膨張処理後のネガパターンの差分画像を横方向に収縮処理した画像を示している。尚、収縮処理とは、自身の画素値を、周辺の画素の最小値に置き換える処理であり、周辺の参照画素を横方向に制限することで、横方向の収縮処理となる。
【００７２】
収縮処理を行った後、図１０に示すフローチャートのステップＳＡ９に進む。ステップＳＡ９では、ステップＳＡ８で収縮処理された後のパターン画像を用い、当該パターン画像の同一座標に位置する画素値のコントラストに基づいて、各画素が白コードに対応するか、黒コードに対応するか白黒判定を行う。具体的には、パターン光がワークＷＫに照射されたときに取得されたパターン画像の同一座標に位置する画素値のコントラスト値を、パターンの反転前（ポジパターン）と反転後（ネガパターン）とで求め、反転前と反転後のコントラスト値の差分に基づいて、各画素の白黒判定を行うことができる。
【００７３】
例えば、ポジパターン画像のある画素の輝度値からネガパターン画像の対応する画素の輝度値を減算処理し、「ポジパターン」−「ネガパターン」の輝度値を各画素について取得する。そして、「ポジパターン」−「ネガパターン」が正となった箇所を明部と判定し、「ポジパターン」−「ネガパターン」が負となった箇所を暗部と判定する。
【００７４】
ステップＳＡ９に続くステップＳＡ１０では、上述した処理がパターンの数だけ完了したか否かを判定する。パターンの数だけ完了したら、ステップＳＡ９の白黒判定結果に基づいて各画素にコードの割り当てを行う。ステップＳＡ６〜ステップＳＡ１１は測定部２３が行う処理である。
【００７５】
測定部２３は、割り当てられたコードに基づいて、ワークＷＫの三次元形状を測定する。測定部２３は、本発明の測定ステップを実行する部分である。割り当てられたコードに基づいてワークＷＫの三次元形状を測定する方法は従来から周知の手法を適用することができる。
【００７６】
（パターン光の共用化）
この実施形態では、位相シフト法と特殊空間コード法とで一部のパターン光を共用している。図１４の（Ａ）は、図１０に示すステップＳＡ２で照射されるポジパターン光を示し、図１４の（Ｂ）は、図１０に示すステップＳＡ２で照射されるネガパターン光を示している。図１４の（Ａ）、（Ｂ）のパターン光は同じパターンを有している。また、位相シフト法に基づいてワークＷＫに照射する位相シフトパターン光の１つと、図１４の（Ａ）、（Ｂ）のパターン光とを同じにしている。従って、図１４の（Ａ）、（Ｂ）のパターン光を特殊空間コード法において照射する必要はなく、撮像枚数を削減することができる。特殊空間コード法では、図１４の（Ｃ）、（Ｄ）のパターン光をワークＷＫに照射するだけでよいので、一般のネガ・ポジパターンを用いる場合と同じ撮像枚数で特殊空間コード法を実現することができる。
【００７７】
図１５の（Ａ）と（Ｂ）はパターン光の位相を１８０度反転させた関係にあり、また、図１５の（Ｃ）と（Ｄ）とはパターン光を同じにしている。図１５の（Ａ）と（Ｂ）は、位相シフト法に基づいて位相シフトパターン光を照射する場合に、４シフト（位相を９０度毎にシフト）、または８シフト（位相を４５度毎にシフト）した場合に必要となるパターン光である。このため、図１５の（Ａ）、（Ｂ）のパターン光を特殊空間コード法において照射する必要はなく、撮像枚数を削減することができる。
【００７８】
また、図１５の（Ｂ）に示すパターン光を用いる場合、ネガパターンの２枚目に用いる画像（Ｄ）がポジパターンの２枚目に必要な画像（Ｃ）と同じになるので、（Ｃ）と（Ｄ）の一方を照射した画像を取得するだけで済む。これにより、一般のネガ・ポジパターンを用いる場合と比較して半分の撮像枚数で特殊空間コード法を実現することができる。
【００７９】
（パターン光の例）
図１６は、特殊空間コードパターン光の一例を示す図である。図中の「暗部の範囲」は空間コードパターン光の各ビットの黒コードに対応する部分であり、「明部の範囲」は空間コードパターン光の各ビットの白コードに対応する部分である。この例では、白コードに対応する部分に、位相をシフトさせた４つのパターンを付与しており、これらパターンの位相は、０度、９０度、１８０度、２７０度となっている。一方、黒コードに対応する部分は、位相が固定されたパターンが付与されている。尚、白コードに対応する部分に付与するパターンの数は４つに限定されるものではなく、２つ（０度、１８０度）、３つ（０度、１２０度、２４０度）であってもよいし、８つ（０度、４５度、９０度、１３５度、１８０度、２２５度、２７０度、３１５度）であってもよい。
【００８０】
空間コードパターン光の各ビットの白コードに対応する部分に付与するパターンの数が３つ以上の場合は、撮像部ＣＭＥにおいて３つ以上のパターン画像を取得することができる。この場合、測定部２３は、撮像部ＣＭＥで取得された３つ以上のパターン画像の同一座標に位置する画素値のうち、最大値と最小値の差分に基づいて、各画素の白黒判定を行うように構成することができる。
【００８１】
図１６の下部に示すように、例えば、各画素毎に、４枚分の「最大値」と「最小値」を求め、「最大値−最小値」の画像を生成すると、元の空間コードの黒コードの部分はゼロ付近に、白コードの部分は最大値−最小値の差分値（位相シフトのコントラスト値）の画像を得ることができる。これにより、間接反射光の影響を抑制した空間コードパターンを得ることができる。このように、黒コードの部分はゼロ付近に、白コードの部分は位相シフトのコントラスト値となる特性を利用し、コントラストの大小で明部と暗部の特定を行っても良い。この場合、図１０のステップＳＡ９のある「ポジパターン」−「ネガパターン」の正負判定の変わりに、最大値−最小値の差分が一定の値を超える部分を明部に、一定の値以下となる部分を暗部と判定しても良い。また、この例のように、３つ以上の位相シフトパターンで実現する場合、撮像するパターンの枚数は増えてしまうが、１８０度反転させた２つのパターンだけで処理する場合に生じるような、差分０となる境界が発生しないため、図１０のステップＳＡ７、ＳＡ８における膨張処理・収縮処理も不要にすることができる。
【００８２】
（高さ画像生成部２４の構成）
図２に示す高さ画像生成部２４は、測定部２３の一部として構成することができ、位相画像生成部２２で生成された位相画像と、上述した各画素へのコードの割り当て結果とに基づいてワークＷＫの高さ情報を含む高さ画像を生成することができるように構成されている。例えば、高さ測定点の各明度値をパターン毎に撮像した画像から得て、各明度値よりパターン光の位相値を計算すると、測定点の高さに応じて、測定点に投影されたパターン光の位相が変化し、基準となる位置で反射されたパターン光により観察される位相とは異なった位相の光が観察されることになる。そこで、測定点におけるパターン光の位相を計算し、三角測量の原理を利用して、幾何関係式に代入することにより測定点の高さを測定し、これにより、ワークＷＫの三次元形状を測定することができる。高さ画像とは、画像を構成する各画素値に、高さの値が格納されている画像である。典型的には、高さを輝度値で表現した画像とすることができる。
【００８３】
（測定結果）
図１７の（Ａ）は、一般的な空間コード法と位相シフト法とを併用してワークＷＫの三次元形状を測定した場合を示している。一般的な空間コード法とは、空間コード法の各ビットの白コードに対応する部分と黒コードに対応する部分に高周波パターンを付与していないパターン光を用いた方法である。この場合、特に白丸で囲んだ部分の高さを測定できていないことが分かる。
【００８４】
一方、図１７の（Ｂ）は、本実施形態に係る特殊空間コード法と位相シフト法とを併用してワークＷＫの三次元形状を測定した場合を示している。この例では、図１７の（Ａ）の白丸で囲んだ部分の高さを測定できていることが分かる。つまり、特殊空間コード法を用いることで、元の空間コードのパターンの明部と暗部が、平均的に同程度に明るさになるため、明部と暗部の間に生じるコントラストと、高周波パターン内で生じるコントラストが同程度となり、これにより、ワークＷＫ表面からの反射光の輝度が大きい場合に、明部と暗部の境界付近のコードが不安定になるのを抑制することができる。
【００８５】
（ロボット設定装置１００の構成）
次に、図２に示すロボット設定装置１００について説明する。ロボット設定装置１００は、センサ部２で得られたワークＷＫの三次元形状データに基づいて、三次元サーチ、干渉判定、把持解算出等を行う。このロボット設定装置１００は、専用の画像処理プログラムをインストールした汎用のコンピュータや、専用に設計された画像処理コントローラ、専用のハードウェアで構成することができる。
【００８６】
なお図２の例では、センサ部２やロボットコントローラ６等をロボット設定装置１００とは別個の部材で構成する例を示しているが、本発明はこの構成に限られず、例えばセンサ部２とロボット設定装置１００とを一体化したり、あるいはロボットコントローラ６をロボット設定装置１００に組み込むこともできる。このように、図２に示す部材の区分けは一例であって、複数の部材を統合させることもできる。例えばロボット設定装置１００を操作する操作部４と、ロボットコントローラ６を操作するロボット操作具７とを、共通の部材としてもよい。
【００８７】
表示部３は、例えば、液晶モニタや有機ＥＬディスプレイ、ＣＲＴ等を利用できる。操作部４は、キーボードやマウス等の入力デバイスが利用できる。また表示部３をタッチパネルとすることで、操作部４と表示部３を一体化することもできる。
【００８８】
例えばロボット設定装置１００を、画像処理プログラムをインストールしたコンピュータで構成した場合、表示部３上には画像処理プログラムのグラフィカルユーザインターフェース（ＧＵＩ）画面が表示される。表示部３上に表示されたＧＵＩ上から各種の設定を行うことができ、またシミュレーション結果等の処理結果をＧＵＩ上に表示させることができる。ロボットコントローラ６は、センサ部２で撮像した情報に基づいてロボットＲＢＴの動作を制御する。またロボット操作具７は、ロボットＲＢＴの動作設定を行うための部材である。
【００８９】
ワークＷＫは、図１に示すように複数個が収容容器ＢＸに無作為に収納されている。このような作業空間の上方には、センサ部２が配置されている。ロボットコントローラ６は、センサ部２で得られたワークＷＫの三次元形状に基づいて、複数のワークＷＫの内から、把持対象のワークＷＫを特定して、このワークＷＫを把持するよう、ロボットＲＢＴを制御する。そして、ワークＷＫを把持したまま、アーム部ＡＲＭを動作させて予め定められた載置位置、例えばステージＳＴＧ上まで移動させ、所定の姿勢でワークＷＫを載置する。いいかえると、ロボットコントローラ６は、センサ部２及びロボット設定装置１００で特定されたピッキング対象のワークＷＫをエンドエフェクタＥＥＴで把持して、把持したワークＷＫを所定の基準姿勢にて、載置場所（ステージＳＴＧ）に載置してエンドエフェクタＥＥＴを開放するようにロボットＲＢＴの動作を制御する。ステージＳＴＧは、例えばコンベアベルト上やパレット等を挙げることができる。
【００９０】
ここで本明細書においてばら積みピッキングとは、図１に示すような収納容器ＢＸに入れられて無作為に積み上げられたワークＷＫを、ロボットＲＢＴで把持して、所定の位置に載置する他、収納容器を用いずに所定の領域に積み上げられたワークＷＫに対して把持、載置を行う例、あるいは所定の姿勢で並べられて積み上げられたワークＷＫを順次把持、載置する例も含む意味で使用する。また、必ずしもワークＷＫ同士が積み重ねられている状態であることは要さず、ワークＷＫ同士の重なりがない状態で平面上にランダムに置かれたワークＷＫについても、本明細書においてはばら積みと呼ぶ（順次ピッキングされていき、ピッキングの終盤でワークＷＫ同士の重なりがない状態となった場合でも依然としてばら積みピッキングと呼ばれるのと同じ理由である）。なお、本発明はばら積みピッキングに必ずしも限定されるものでなく、ばら積みされていないワークＷＫをピックアップする用途にも適用できる。
【００９１】
また、図１の例ではセンサ部２を作業空間の上方に固定しているが、センサ部２の固定位置は、作業空間を撮像できる位置であればよく、例えば作業空間の斜め上方や側方、下方、斜め下方など、任意の位置に配置することができる。ただし、アーム部ＡＲＭ上のような、可動する不定位置にセンサ部２を配置する態様は除かれる。さらにセンサ部２が有するカメラや照明の数も、１個に限らず複数個としてもよい。さらにまたセンサ部２やロボットＲＢＴ、ロボットコントローラ６との接続は、有線接続に限られず、周知の無線接続としてもよい。
【００９２】
ロボットシステム１０００でばら積みピッキング動作を行うにあたり、予めばら積みピッキング動作を行わせるための設定を含めたティーチングを行うこともできる。具体的には、ワークＷＫのどの部位を、エンドエフェクタＥＥＴがどのような姿勢で把持するのか、把持位置及び姿勢などの登録を行う。このような設定は、ペンダント等のロボット操作具７で行うことができる。また、後述するように、実際のロボットを操作せずに、ビジョン空間上で設定を行うこともできる。
【００９３】
表示部３は、ワークＷＫの三次元形状を仮想的に表現するワークモデルや、エンドエフェクタＥＥＴの三次元形状を仮想的に表現する、三次元ＣＡＤデータで構成されたエンドエフェクタモデルを、仮想的な三次元空間上でそれぞれ三次元状に表示させる。さらにこの表示部３は、ワークモデルの基本方向画像を六面図として表示させることもできる。これにより、ワークモデルの各姿勢を六面図で表示させて把持位置の設定作業を行えるようになり、従来面倒であった把持位置の設定作業を容易に行えるようになる。
【００９４】
（ロボットシミュレーション）
ロボットシステム１０００は、作業空間に積み上げられた複数のワークＷＫをロボットＲＢＴによって順次取り出すばら積みピッキング動作をシミュレーションするためのロボットシミュレーション装置２００を備えている。ロボットシミュレーション装置２００は、ロボット設定装置１００の内部に設けることができる。画像処理装置３００は、作業空間に積み上げられた複数のワークＷＫを把持して順次取り出すピッキング動作を行うロボットＲＢＴの制御に用いられる装置である。
【００９５】
図２に示すように、ロボット設定装置１００は、ワークモデル設定部２０１、物理シミュレーション部２０２、ばら積みデータ生成部２０３、ピッキング動作シミュレーション部２０４、サーチ処理部２０５、干渉判定部２０６、把持位置決定部２０７及び表示制御部２０９を備えている。これら各部は、ロボットシミュレーション装置２００を構成しており、ハードウェアで構成することもできるし、ソフトウェアで構成することもできる。またこれら各部を全て一体化して１つの装置にすることもできるし、任意の一部分を他の部分と別にして複数の装置でロボット設定装置１００を構成することもできる。またこれら各部を例えばマイクロプロセッサ（ＭＰＵ）やＣＰＵ、ＬＳＩ、ＦＰＧＡやＡＳＩＣ等のゲートアレイ、ＤＳＰ等のハードウェアやソフトウェア、あるいはこれらの混在により実現できる。また必ずしも各構成要素が図２等に示した構成と同一でなくてもよく、その機能が実質的に同一であるもの、及び一つの要素が図２に示す構成における複数の要素の機能を備えるものは、本発明に含まれる。
【００９６】
また、表示制御部２６は表示部３に設けることができる。また、ロボット設定装置１００には各種情報を記憶するための記憶部２０８も設けられている。記憶部２０８は、半導体メモリやハードディスク等で構成することができる。また、記憶部２０８には、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の各種記憶媒体に記憶されている情報を読み取り可能な読み取り装置を設けることもできる。
【００９７】
ロボットシステム１０００の運用前、即ち、実際の作業現場でワークＷＫの把持及び載置作業を行う前に、ロボットシミュレーション装置２００によってロボットＲＢＴの把持動作や載置動作のシミュレーションを三次元的に行うことができるように構成されている。ロボットシミュレーションでは、複数のワークモデルを無作為に積み上げたばら積み状態を生成する物理シミュレーションと、物理シミュレーションで生成されたばら積み状態のデータを利用してワークモデルの位置及び姿勢を検出し、ロボットＲＢＴによるピッキング動作のシミュレーションを実行するピッキング動作シミュレーションとが行われる。以下、ロボットシミュレーション装置２００によって実現されるロボットシミュレーション方法について具体的に説明する。
【００９８】
ロボットシミュレーションを開始する際には、シミュレーション環境を設定する。シミュレーション環境の設定には、ばら積みをさせるワークの数、収納容器ＢＸの情報、床の情報、センサ部２を構成するカメラＣＭＥ１〜４やプロジェクタＰＲＪの設計情報等が挙げられる。またピッキング動作シミュレーション時には、収納容器ＢＸに対して、実運用上発生し得る、ランダムな位置ずれを発生させることもでき、この際の位置ずれの範囲等をシミュレーション環境の設定に含めることもできる。
【００９９】
シミュレーション環境の設定の際にはワークＷＫのサーチモデルを登録するとともに、ロボットＲＢＴのハンドモデルも登録する。ワークＷＫのサーチモデルとは、サーチ処理を実行する際に使用されるワークＷＫの形状を表したモデルである。例えばワークＷＫのＣＡＤデータ等を読み込むことで設定可能であり、ワークモデル設定部２０１で行われる。また、ロボットＲＢＴのハンドモデルとは、ハンド部（エンドエフェクタＥＥＴ）の形状を表したモデルである。
【０１００】
また、ハンド部の位置及び姿勢も登録しておく。Ｘ軸座標、Ｙ軸座標、Ｚ軸座標、Ｘ軸周りの回転角度、Ｙ軸周りの回転角度、Ｚ軸周りの回転角度を個別に入力することで、入力された値に対応するように、表示部３上でハンドモデルが移動していく。これにより、ハンドモデルを所望位置に配置することができるので、ハンドモデルの位置を調整しながら、ハンドモデルでサーチモデルのどの部位をどのような姿勢で把持するか、即ち把持位置及び姿勢を設定することが可能になる。把持位置及び姿勢の設定は、例えばハンドモデルを操作部４のマウスで直接的に操作することによっても可能である。ここで設定する把持位置は、ロボットＲＢＴにより把持される把持候補位置であり、記憶部２０８に記憶することができる。また、例えば、一度にばら積みするワークの個数、ばら積みする箇所の形状（平面であるか、箱であるか）、ばら積みする箇所の大きさ等を入力する。
【０１０１】
その後、ワークモデルのデータを読み込み、ワークモデルのデータ容量を圧縮した後、物理シミュレーション部２０２によって物理シミュレーションを実行する。具体的には、データ容量が圧縮された複数のワークモデルを用いて、ワークが重力の作用を受けて作業空間に配置される動作をシミュレーションし、仮想的な作業空間に複数のワークモデルを積み上げたばら積み状態を生成する。
【０１０２】
物理シミュレーションは、従来から周知の物理シミュレーションエンジンを用いて実行することができる。物理シミュレーションでは、ワーク同士の衝突による作用、床等の障害物の情報に基づいてワークモデルを仮想的に配置していく。実運用時に図１に示すような収容容器ＢＸにワークＷＫを収容する場合には、ワークモデルを収容容器ＢＸに上方から投入するシミュレーションを物理シミュレーションエンジンが行うように設定することができる。また、物理シミュレーションでは、例えばワーク同士が衝突した場合に、予め設定された反発係数や摩擦係数を考慮して、その後ワークモデルがどのような動きになるかが示される。
【０１０３】
物理シミュレーションを実行した後、ワークモデルのばら積み状態データを、物理シミュレーションの結果に基づいて生成する。実行するのは、図２に示すロボット設定装置１００が有するばら積みデータ生成部２０３である。
【０１０４】
ワークモデルのばら積み状態データに基づいて画像を生成した後、高さ画像を得て、各ワークモデルの位置及び姿勢を検出するサーチ処理を実行する。ロボット設定装置１００が有するサーチ処理部２０５が行う。
【０１０５】
サーチ処理は高さ情報を含むサーチ処理用データに対してサーチをかけるので、三次元サーチと呼ぶことができる。具体的には、予め登録されたサーチモデルを用いて、各ワークモデルの姿勢と位置を特定する三次元サーチを行う。まずサーチモデルの各特徴点が、最も一致する状態の位置及び姿勢（Ｘ、Ｙ、Ｚ、ＲX、ＲY、ＲZ）を、高さ画像の中から探索する。ここでＲX、ＲY、ＲZは、それぞれＸ軸に対する回転角、Ｙ軸に対する回転角、Ｚ軸に対する回転角を表す。このような回転角度の表現方法は種々提案されているところ、ここではＺ−Ｙ−Ｘ系オイラー角を用いることができる。また一致する位置及び姿勢は、各サーチモデルに対して、１つである必要はなく、一定以上一致する位置及び姿勢を、複数検出してもよい。
【０１０６】
サーチ処理部２０５が高さ画像中にサーチモデルが存在するか否かをサーチした結果、高さ画像中に、サーチモデルが存在しない場合、即ちワークモデルを検出できない場合にはサーチ処理を終了する。
【０１０７】
一方、三次元サーチの結果、高さ画像の中にワークモデルを検出できた場合には、干渉判定及び把持解を算出する。サーチ処理部２０５によりサーチに成功したワークモデルに対して、ロボットＲＢＴによりピッキング動作のシミュレーションを実行するピッキング動作シミュレーション部２０４が行う。
【０１０８】
ピッキング動作シミュレーション部２０４は、生成されたばら積みデータに対して、仮想作業空間内のワークモデルのばら積みピッキング動作を検証するための部分である。ピッキング動作シミュレーションを行うことにより、ワークの三次元位置及び姿勢の検出可否など、手間のかかる確認作業や設定調整を、実際にワークを用意することなく、実運用に近い形で事前に行うことができる。
【０１０９】
特に物理シミュレーション部２０２は、ピッキング動作シミュレーション部２０４による一のワークモデルをハンドモデルで把持し少なくとも取り出し動作を開始した後、このワークモデルが取り出された後の状態のばら積みデータに対して物理シミュレーションを再度実行するように構成することができる。物理シミュレーションを再度実行するタイミングは、ワークモデルをハンドモデルで把持し、載置位置にプレースされた後とする他、ワークモデルの取り出し作業の途中であってもよい。すなわち、ハンドモデルでワークモデルを把持して、このワークモデルが持ち上げられた状態では、一のワークモデルが除去されたことで、このワークモデルの周辺にあった他のワークモデルが移動可能となるため、把持されたワークモデルが載置されるまで待つ必要はない。よって、物理シミュレーションの再実行のタイミングは、一のワークモデルがハンドモデルで把持されて持ち上げられたタイミング、あるいはその後、他のワークモデルの状態が重力の作用で移動して安定するまで待った後のタイミングとすることができる。例えば、ワークモデルが把持されて持ち上げられた時点から所定の時間の経過後（例えば１０秒後）としてもよい。物理シミュレーションを再度実行した後、ばら積みデータを更新する。
【０１１０】
したがって、ピッキング動作シミュレーション中にばら積みデータからワークモデルが一つ取り出されると、これに応じてバラ積みされたワークモデル群が崩れるといった動作も物理シミュレーションにより演算され、この演算後のばら積みデータを利用してピッキング動作シミュレーション部２５がその後のピッキング動作シミュレーションを実行するので、より正確なばら積みピッキングのシミュレーションが実現される。
【０１１１】
干渉判定は、高さ画像の各１点１点のpixelデータが示す三次元点群と、予め入力されているハンドモデルとが干渉するか否かを判定する。干渉判定の前に、三次元サーチで検出された一のワークモデルに対して、このワークモデルの位置と、登録してあるワークモデルの把持姿勢とに基づいて、エンドエフェクタＥＥＴを配置すべき位置と姿勢を計算する。計算された位置において、エンドエフェクタが周囲の物体と干渉しないかどうかを、断面モデルを利用して判定する。この干渉判定では、ハンドモデルの断面モデルを利用して三次元点群が断面モデルと干渉しているか否かを判定する。
【０１１２】
このようにして、ワークモデルを把持可能な把持解の有無を検出されたワークモデル毎に判定する。そして、ワークモデルに把持解が得られた場合は、そのワークモデルの把持候補位置をハンド部でもってピックし、収納容器ＢＸの外部へ搬送するシミュレーションを行う。
【０１１３】
ピッキング動作シミュレーションの実行結果は、必要に応じて表示部３に表示させることができる。ユーザは表示部３に表示されたピッキング動作シミュレーションの実行結果に基づいて、現在の設定の適否を判断できる。また必要に応じて、ロボットＲＢＴの設置位置や収納容器ＢＸを置く位置、センサ部２の姿勢などを調整することができる。変更した設定を、シミュレーション環境として入力し直して、再度ピッキング動作シミュレーションを実行し、その適否を確認するという作業を繰り返して、ユーザの環境に応じた適切な設定条件を決定できる。
【０１１４】
（サーチ処理部２０５）
サーチ処理部２０５は、上述したピッキング動作シミュレーションで使用されているが、実運用時でも使用することができる。サーチ処理部２０５をピッキング動作シミュレーションで使用したものとは別に構成することもできる。
【０１１５】
すなわち、サーチ処理部２０５は、予め登録されたサーチモデルを用いて、三次元測定データの中に含まれる複数のワークの位置及び姿勢を検出するサーチ処理を行う。サーチ処理を行う際には、三次元測定データから得られた高さ画像中に、サーチモデルが存在するか否かをサーチする。この手法はピッキング動作シミュレーションで行った手法と同じにすることができる。
【０１１６】
（干渉判定部２０６）
干渉判定部３１は、サーチ処理部２０５でサーチ処理に成功したサーチモデルに対応付けられたワーク表面に設定された把持候補位置をロボットＲＢＴが周囲の物体と干渉することなく把持が可能か判定する。この干渉判定部２０６による判定手法は、ピッキング動作シミュレーションで行った手法と同じにすることができる。
【０１１７】
（把持位置決定部２０７）
把持位置決定部２０７は、干渉判定部２０６により周囲の物体と干渉することなく把持が可能と判定された把持候補位置を実際の把持位置として決定するように構成されている。
【０１１８】
（実運用時の手順）
次に、実運用時について説明する。図１に示すようにセンサ部２を用いて収納容器ＢＸにばら積みされているワークＷＫを三次元測定する。その後、生成された高さ画像に対して三次元サーチを実施し、ワークの位置及び姿勢を検出する。ワークモデルの位置と、登録してあるワークモデルの把持姿勢とに基づいて、ハンド部を配置すべき位置と姿勢を計算する。計算された位置において、ハンド部が周囲の物体と干渉しないかどうかを判定する。具体的には、高さ画像の各１点１点のpixelデータが示す三次元点群と、ハンドモデルとが干渉するか否かを、ハンドの断面モデルを用いて判定する。ハンド部が周囲の物体と干渉していない場合には、把持解有りとして終了する。この把持解がロボットコントローラ６に送信され、ロボットコントローラ６がアーム部ＡＲＭ及びハンド部を制御してワークＷＫをピックして搬送する。
【０１１９】
ハンド部が周囲の物体と干渉している場合には、別の把持候補位置があるか否かを判定する。別の把持候補位置がある場合には、その把持解がロボットコントローラ６に送信され、ロボットコントローラ６がアーム部ＡＲＭ及びハンド部を制御してワークＷＫをピックして搬送する。別の把持候補位置がない場合には、把持解候補となるワークが他にもあるか否かを判定する。別のワークがある場合には、上述のようにして把持解を演算する。別のワークがない場合には把持解無しとして終了する。
【０１２０】
（実施形態の作用効果）
以上説明したように、この実施形態に係る三次元測定装置１及び三次元測定方法によれば、空間コード法の各ビットの白コードに対応する部分と黒コードに対応する部分のそれぞれに、明暗が周期的に変化するパターンが付与され、白コードに対応する部分のパターンの位相をシフトさせる一方、黒コードに対応する部分のパターンの位相はシフトさせない複数のパターン光をワークＷＫに照射することができる。これにより、パターンの明部と暗部が、平均的に同程度に明るさになるため、明部と暗部の間に生じるコントラストと、高周波パターン内で生じるコントラストが同程度となる。
【０１２１】
したがって、取得されたパターン画像の同一座標に位置する画素値のコントラストに基づいて各画素の白黒判定を行う際に、多重反射の影響を抑制できるとともにワークＷＫの表面からの反射光の輝度が大きくても高いロバスト性を確保できる。よって、各画素に割り当てられるコードが正確になるので、測定精度を高めることができる。
【０１２２】
また、空間コード法と位相シフト法とを併用してワークＷＫの三次元形状を測定できるので、測定可能な範囲を広く確保しながら、高精度な測定を行うことができる。この場合に、空間コード法で生成するパターン光のうち、少なくとも１つを位相シフト法で生成するパターン光と共用するようにしたので、パターン光の照射回数を減らすことができ、ひいては撮像回数の削減に繋がって測定に要する時間を短縮することができる。
【０１２３】
上述の実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【産業上の利用可能性】
【０１２４】
以上説明したように、本発明に係る三次元計測装置及び三次元測定方法は、例えばワーク等の測定対象物の三次元形状を測定する場合に利用することができる。
【符号の説明】
【０１２５】
１              三次元計測装置
２              センサ部
２０            センサ制御部
２１            照明制御部（パターン光生成部）
２２            位相画像生成部
２３            測定部
ＣＭＥ１〜４    撮像部
ＰＲＪ          照明部
ＷＫ            ワーク（計測対象物）
【図１】
2020180948.tif 000003
【図２】
2020180948.tif 000004
【図３】
2020180948.tif 000005
【図４】
2020180948.tif 000006
【図５】
2020180948.tif 000007
【図６】
2020180948.tif 000008
【図７】
2020180948.tif 000009
【図８】
2020180948.tif 000010
【図９】
2020180948.tif 000011
【図１０】
2020180948.tif 000012
【図１１】
2020180948.tif 000013
【図１２】
2020180948.tif 000014
【図１３】
2020180948.tif 000015
【図１４】
2020180948.tif 000016
【図１５】
2020180948.tif 000017
【図１６】
2020180948.tif 000018
【図１７】
2020180948.tif 000019