(57)【要約】      （修正有）【課題】位相値が同じ三次元形状データを合成することにより、計測対象物の同じ部位に関する三次元形状データを合成することが可能な三次元形状計測装置、三次元形状計測方法、及びコンピュータプログラムを提供する。【解決手段】周期的なパターンを有する光を、互いに交差する軸方向にそれぞれ位相シフトさせながら計測対象物７１に複数回照射する。照射された光を第一の方向及び第二の方向でそれぞれ受光し受光信号を出力する。受光したそれぞれの受光信号に基づいて、計測対象物の形状を示す一方の軸方向の位相値及び他方の軸方向の位相値で構成された位相データを画素ごとに生成する。生成された位相データに基づいて計測対象物の三次元形状データをそれぞれ生成し、位相データとそれぞれ同一の位相データを有する三次元形状データを特定し、複数の三次元形状データを合成して合成三次元形状データを生成する。【選択図】図６
2018146348.tif 000002
【特許請求の範囲】
【請求項１】
周期的なパターンを有する光を、互いに交差する軸方向にそれぞれ位相シフトさせながら計測対象物に複数回照射する投光部と、
照射された光を第一の方向で受光し、受光量を示す受光信号を出力する第一の受光部と、
照射された光を第二の方向で受光し、受光量を示す受光信号を出力する第二の受光部と、
前記第一の受光部で受光した受光信号に基づいて、計測対象物の形状を示す一方の軸方向の位相値及び他方の軸方向の位相値で構成された第一の位相データを画素ごとに生成し、前記第二の受光部で受光した受光信号に基づいて、計測対象物の形状を示す一方の軸方向の位相値及び他方の軸方向の位相値で構成された第二の位相データを画素ごとに生成する位相データ生成部と、
前記第一の位相データに基づいて計測対象物の第一の三次元形状データを生成し、前記第二の位相データに基づいて計測対象物の第二の三次元形状データを生成する形状データ生成部と、
生成された前記第一の位相データと前記第二の位相データとが同一である位相データを有する第一の三次元形状データ及び第二の三次元形状データを特定し、前記第一の三次元形状データと前記第二の三次元形状データとを合成して合成三次元形状データを生成する合成処理部と
を備えることを特徴とする三次元形状計測装置。
【請求項２】
前記合成処理部は、位相データごとに、該位相データに対応する前記第一の三次元形状データと前記第二の三次元形状データとの平均値を算出することを特徴とする請求項１に記載の三次元形状計測装置。
【請求項３】
前記合成処理部は、
位相データごとに、該位相データに対応する前記第一の三次元形状データと前記第二の三次元形状データとの差分を算出する差分算出部と、
算出した差分が所定の閾値以上であるか否かを判断する差分判断部と
を備え、
算出した差分が所定の閾値以上であると判断した場合、差分が所定の閾値以上である位相データについては前記第一の三次元形状データと前記第二の三次元形状データとを合成しないことを特徴とする請求項１又は２に記載の三次元形状計測装置。
【請求項４】
前記パターンは縞パターンであることを特徴とする請求項１乃至３のいずれか一項に記載の三次元形状計測装置。
【請求項５】
計測対象物の三次元座標値を計測する三次元形状計測装置で実行することが可能な三次元形状計測方法であって、
前記三次元形状計測装置は、
周期的なパターンを有する光を、互いに交差する軸方向にそれぞれ位相シフトさせながら計測対象物に複数回照射する第一の工程と、
照射された光を第一の方向で受光し、受光量を示す受光信号を出力する第二の工程と、
照射された光を第二の方向で受光し、受光量を示す受光信号を出力する第三の工程と、
前記第二の工程で受光した受光信号に基づいて、計測対象物の形状を示す一方の軸方向の位相値及び他方の軸方向の位相値で構成された第一の位相データを画素ごとに生成し、前記第三の工程で受光した受光信号に基づいて、計測対象物の形状を示す一方の軸方向の位相値及び他方の軸方向の位相値で構成された第二の位相データを画素ごとに生成する第四の工程と、
前記第一の位相データに基づいて計測対象物の第一の三次元形状データを生成し、前記第二の位相データに基づいて計測対象物の第二の三次元形状データを生成する第五の工程と、
生成された前記第一の位相データと前記第二の位相データとが同一である位相データを有する第一の三次元形状データ及び第二の三次元形状データを特定し、前記第一の三次元形状データと前記第二の三次元形状データとを合成して合成三次元形状データを生成する第六の工程と
を含むことを特徴とする三次元形状計測方法。
【請求項６】
前記第六の工程は、位相データごとに、該位相データに対応する前記第一の三次元形状データと前記第二の三次元形状データとの平均値を算出することを特徴とする請求項５に記載の三次元形状計測方法。
【請求項７】
前記第六の工程は、
位相データごとに、該位相データに対応する前記第一の三次元形状データと前記第二の三次元形状データとの差分を算出する第七の工程と、
算出した差分が所定の閾値以上であるか否かを判断する第八の工程と
を含み、
算出した差分が所定の閾値以上であると判断した場合、差分が所定の閾値以上である位相データについては前記第一の三次元形状データと前記第二の三次元形状データとを合成しないことを特徴とする請求項５又は６に記載の三次元形状計測方法。
【請求項８】
前記パターンは縞パターンであることを特徴とする請求項５乃至７のいずれか一項に記載の三次元形状計測方法。
【請求項９】
計測対象物の三次元座標値を計測する三次元形状計測装置で実行することが可能なコンピュータプログラムであって、
前記三次元形状計測装置を、
周期的なパターンを有する光を、互いに交差する軸方向にそれぞれ位相シフトさせながら計測対象物に複数回照射する投光手段、
照射された光を第一の方向で受光し、受光量を示す受光信号を出力する第一の受光手段、
照射された光を第二の方向で受光し、受光量を示す受光信号を出力する第二の受光手段、
前記第一の受光手段で受光した受光信号に基づいて、計測対象物の形状を示す一方の軸方向の位相値及び他方の軸方向の位相値で構成された第一の位相データを画素ごとに生成し、前記第二の受光手段で受光した受光信号に基づいて、計測対象物の形状を示す一方の軸方向の位相値及び他方の軸方向の位相値で構成された第二の位相データを画素ごとに生成する位相データ生成手段、
前記第一の位相データに基づいて計測対象物の第一の三次元形状データを生成し、前記第二の位相データに基づいて計測対象物の第二の三次元形状データを生成する形状データ生成手段、及び
生成された前記第一の位相データと前記第二の位相データとが同一である位相データを有する第一の三次元形状データ及び第二の三次元形状データを特定し、前記第一の三次元形状データと前記第二の三次元形状データとを合成して合成三次元形状データを生成する合成処理手段
として機能させることを特徴とするコンピュータプログラム。
【請求項１０】
前記合成処理手段を、位相データごとに、該位相データに対応する前記第一の三次元形状データと前記第二の三次元形状データとの平均値を算出する手段として機能させることを特徴とする請求項９に記載のコンピュータプログラム。
【請求項１１】
前記合成処理手段を、
位相データごとに、該位相データに対応する前記第一の三次元形状データと前記第二の三次元形状データとの差分を算出する差分算出手段、及び
算出した差分が所定の閾値以上であるか否かを判断する差分判断手段
として機能させ、
算出した差分が所定の閾値以上であると判断した場合、差分が所定の閾値以上である位相データについては前記第一の三次元形状データと前記第二の三次元形状データとを合成しないことを特徴とする請求項９又は１０に記載のコンピュータプログラム。
【請求項１２】
前記パターンは縞パターンであることを特徴とする請求項９乃至１１のいずれか一項に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計測対象物の三次元形状を計測する三次元形状計測装置、三次元形状計測方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
計測対象物の三次元データを取得する原理として、三角測距の原理を用いる手法が広く用いられている。三角測距の原理を用いて計測対象物の三次元データの取得を行う場合、計測対象物の表面に光を照射し、その反射光を異なる角度からカメラで受光し、計測対象物の高さに応じて変化するカメラ受光面上の受光位置に基づいて計測対象物の表面の高さを計測することができる。
【０００３】
三角測距の原理を用いた三次元計測では、計測対象物に対して投光軸と受光軸が交差するため、光が照射されない領域や、カメラで撮像ができない領域の三次元形状の計測ができない。そこで、計測対象物にそれぞれ異なる方向から複数のカメラで反射光を受光し、各カメラで取得した複数の三次元データを合成することにより、単一のカメラでは死角となってしまう領域の三次元形状の計測を可能にした装置が知られている。
【０００４】
例えば特許文献１では、計測対象物に一定のパターン光を投光して、投光された計測対象物をそれぞれ異なる方向から撮像する複数のカメラで反射光を受光して得られた画像から、三次元点群の座標を求める三次元計測装置が開示されている。特許文献１では、パターン光として縞パターン光を採用しており、画素ごとにプロジェクタ空間上の位相に基づいて位相値−三次元座標変換演算をすることにより、三次元座標値を算出する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−０２１８６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に開示されている方法では、投光するプロジェクタとそれぞれのカメラを一つのペアとして、ペアごとに複数の三次元点群からなる三次元データを取得し、所定の座標系に射影し、合成している。したがって、ペアごとに求められた三次元点群に誤差が含まれている場合に、同一座標に射影されたそれぞれの点は、計測対象物の同じ部位の計測値であるとは限らない。そのため、複数のカメラを用いて撮像しているにもかかわらず、座標値の平均化によるノイズの低減、色の境界のノイズの低減、輪郭付近のノイズの低減等、本来得られるべき効果が薄れるとともに、解像度が劣化する恐れがあるという問題点があった。
【０００７】
本発明は斯かる事情に鑑みてなされたものであり、位相値が同じ三次元形状データを合成することにより、計測対象物の同じ部位に関する三次元形状データを合成することが可能な三次元形状計測装置、三次元形状計測方法、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために第１発明に係る三次元形状計測装置は、周期的なパターンを有する光を、互いに交差する軸方向にそれぞれ位相シフトさせながら計測対象物に複数回照射する投光部と、照射された光を第一の方向で受光し、受光量を示す受光信号を出力する第一の受光部と、照射された光を第二の方向で受光し、受光量を示す受光信号を出力する第二の受光部と、前記第一の受光部で受光した受光信号に基づいて、計測対象物の形状を示す一方の軸方向の位相値及び他方の軸方向の位相値で構成された第一の位相データを画素ごとに生成し、前記第二の受光部で受光した受光信号に基づいて、計測対象物の形状を示す一方の軸方向の位相値及び他方の軸方向の位相値で構成された第二の位相データを画素ごとに生成する位相データ生成部と、前記第一の位相データに基づいて計測対象物の第一の三次元形状データを生成し、前記第二の位相データに基づいて計測対象物の第二の三次元形状データを生成する形状データ生成部と、生成された前記第一の位相データと前記第二の位相データとが同一である位相データを有する第一の三次元形状データ及び第二の三次元形状データを特定し、前記第一の三次元形状データと前記第二の三次元形状データとを合成して合成三次元形状データを生成する合成処理部とを備えることを特徴とする。
【０００９】
また、第２発明に係る三次元形状計測装置は、第１発明において、前記合成処理部は、位相データごとに、該位相データに対応する前記第一の三次元形状データと前記第二の三次元形状データとの平均値を算出することが好ましい。
【００１０】
また、第３発明に係る三次元形状計測装置は、第１又は第２発明において、前記合成処理部は、位相データごとに、該位相データに対応する前記第一の三次元形状データと前記第二の三次元形状データとの差分を算出する差分算出部と、算出した差分が所定の閾値以上であるか否かを判断する差分判断部とを備え、算出した差分が所定の閾値以上であると判断した場合、差分が所定の閾値以上である位相データについては前記第一の三次元形状データと前記第二の三次元形状データとを合成しないことが好ましい。
【００１１】
また、第４発明に係る三次元形状計測装置は、第１乃至第３発明のいずれか１つにおいて、前記パターンは縞パターンであることが好ましい。
【００１２】
次に、上記目的を達成するために第５発明に係る三次元形状計測方法は、計測対象物の三次元座標値を計測する三次元形状計測装置で実行することが可能な三次元形状計測方法であって、前記三次元形状計測装置は、周期的なパターンを有する光を、互いに交差する軸方向にそれぞれ位相シフトさせながら計測対象物に複数回照射する第一の工程と、照射された光を第一の方向で受光し、受光量を示す受光信号を出力する第二の工程と、照射された光を第二の方向で受光し、受光量を示す受光信号を出力する第三の工程と、前記第二の工程で受光した受光信号に基づいて、計測対象物の形状を示す一方の軸方向の位相値及び他方の軸方向の位相値で構成された第一の位相データを画素ごとに生成し、前記第三の工程で受光した受光信号に基づいて、計測対象物の形状を示す一方の軸方向の位相値及び他方の軸方向の位相値で構成された第二の位相データを画素ごとに生成する第四の工程と、前記第一の位相データに基づいて計測対象物の第一の三次元形状データを生成し、前記第二の位相データに基づいて計測対象物の第二の三次元形状データを生成する第五の工程と、生成された前記第一の位相データと前記第二の位相データとが同一である位相データを有する第一の三次元形状データ及び第二の三次元形状データを特定し、前記第一の三次元形状データと前記第二の三次元形状データとを合成して合成三次元形状データを生成する第六の工程とを含むことを特徴とする。
【００１３】
また、第６発明に係る三次元形状計測方法は、第５発明において、前記第六の工程は、位相データごとに、該位相データに対応する前記第一の三次元形状データと前記第二の三次元形状データとの平均値を算出することが好ましい。
【００１４】
また、第７発明に係る三次元形状計測方法は、第５又は第６発明において、前記第六の工程は、位相データごとに、該位相データに対応する前記第一の三次元形状データと前記第二の三次元形状データとの差分を算出する第七の工程と、算出した差分が所定の閾値以上であるか否かを判断する第八の工程とを含み、算出した差分が所定の閾値以上であると判断した場合、差分が所定の閾値以上である位相データについては前記第一の三次元形状データと前記第二の三次元形状データとを合成しないことが好ましい。
【００１５】
また、第８発明に係る三次元形状計測方法は、第５乃至第７発明のいずれか１つにおいて、前記パターンは縞パターンであることが好ましい。
【００１６】
次に、上記目的を達成するために第９発明に係るコンピュータプログラムは、計測対象物の三次元座標値を計測する三次元形状計測装置で実行することが可能なコンピュータプログラムであって、前記三次元形状計測装置を、周期的なパターンを有する光を、互いに交差する軸方向にそれぞれ位相シフトさせながら計測対象物に複数回照射する投光手段、照射された光を第一の方向で受光し、受光量を示す受光信号を出力する第一の受光手段、照射された光を第二の方向で受光し、受光量を示す受光信号を出力する第二の受光手段、前記第一の受光手段で受光した受光信号に基づいて、計測対象物の形状を示す一方の軸方向の位相値及び他方の軸方向の位相値で構成された第一の位相データを画素ごとに生成し、前記第二の受光手段で受光した受光信号に基づいて、計測対象物の形状を示す一方の軸方向の位相値及び他方の軸方向の位相値で構成された第二の位相データを画素ごとに生成する位相データ生成手段、前記第一の位相データに基づいて計測対象物の第一の三次元形状データを生成し、前記第二の位相データに基づいて計測対象物の第二の三次元形状データを生成する形状データ生成手段、及び生成された前記第一の位相データと前記第二の位相データとが同一である位相データを有する第一の三次元形状データ及び第二の三次元形状データを特定し、前記第一の三次元形状データと前記第二の三次元形状データとを合成して合成三次元形状データを生成する合成処理手段として機能させることを特徴とする。
【００１７】
また、第１０発明に係るコンピュータプログラムは、第９発明において、前記合成処理手段を、位相データごとに、該位相データに対応する前記第一の三次元形状データと前記第二の三次元形状データとの平均値を算出する手段として機能させることが好ましい。
【００１８】
また、第１１発明に係るコンピュータプログラムは、第９又は第１０発明において、前記合成処理手段を、位相データごとに、該位相データに対応する前記第一の三次元形状データと前記第二の三次元形状データとの差分を算出する差分算出手段、及び算出した差分が所定の閾値以上であるか否かを判断する差分判断手段として機能させ、算出した差分が所定の閾値以上であると判断した場合、差分が所定の閾値以上である位相データについては前記第一の三次元形状データと前記第二の三次元形状データとを合成しないことが好ましい。
【００１９】
また、第１２発明に係るコンピュータプログラムは、第９乃至第１１発明のいずれか１つにおいて、前記パターンは縞パターンであることが好ましい。
【００２０】
第１発明、第５発明及び第９発明では、周期的なパターンを有する光を、互いに交差する軸方向にそれぞれ位相シフトさせながら計測対象物に複数回照射し、照射された光を第一の方向及び第二の方向で受光し、それぞれ受光量を示す受光信号を出力する。受光した受光信号に基づいて、計測対象物の形状を示す一方の軸方向の位相値及び他方の軸方向の位相値で構成された第一の位相データ及び第二の位相データを画素ごとに生成し、第一の位相データに基づいて計測対象物の第一の三次元形状データを、第二の位相データに基づいて計測対象物の第二の三次元形状データを、それぞれ生成する。生成された第一の位相データと第二の位相データとが同一である位相データを有する第一の三次元形状データ及び第二の三次元形状データを特定し、第一の三次元形状データと第二の三次元形状データとを合成して合成三次元形状データを生成する。これにより、計測対象物の同一部位のデータに基づいて合成三次元形状データを得ることができるので、色の境界や輪郭付近においてもノイズが少なく、高い解像度を維持した合成三次元形状データを得ることが可能となる。
【００２１】
第２発明、第６発明及び第１０発明では、位相データごとに、該位相データに対応する第一の三次元形状データと第二の三次元形状データとの平均値を算出するので、ノイズを低減することが可能となる。
【００２２】
第３発明、第７発明及び第１１発明では、位相データごとに、該位相データに対応する第一の三次元形状データと第二の三次元形状データとの差分を算出し、算出した差分が所定の閾値以上であると判断した場合、差分が所定の閾値以上である位相データについては第一の三次元形状データと第二の三次元形状データとを合成しないので、三次元形状データを無効として除外することで合成三次元形状データに含まれることがなく、高い精度で合成三次元形状データを生成することが可能となる。
【００２３】
第４発明、第８発明及び第１２発明では、パターンが縞パターンであるので、互いに直交するパターンを容易に生成しやすく、位相を等間隔にずらして照射しやすい。
【発明の効果】
【００２４】
本発明によれば、計測対象物の同一部位のデータに基づいて合成三次元形状データを得ることができるので、色の境界や輪郭付近においてもノイズが少なく、高い解像度を維持した合成三次元形状データを得ることが可能となる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施の形態に係る三次元形状計測装置を用いた、ピッキングシステムの構成例を示すブロック図である。
【図２】本発明の実施の形態に係る三次元形状計測装置の構成を示すブロック図である。
【図３】本発明の実施の形態に係る三次元形状計測装置の撮像部の構成を示す例示図である。
【図４】撮像部のカメラ及びプロジェクタの配置を示す模式図である。
【図５】本発明の実施の形態に係る三次元形状計測装置の機能ブロック図である。
【図６】縞パターン撮像による対象物の形状と撮像されるパターン位相との対応関係を説明するための模式図である。
【図７】投影したグレーコードに対応する縞パターンの例示図である。
【図８】投影した正弦波状の縞パターンの例示図である。
【図９】本発明の実施の形態に係る三次元形状計測装置で用いる縦縞パターンの例示図である。
【図１０】本発明の実施の形態に係る三次元形状計測装置で用いる横縞パターンの例示図である。
【図１１】本発明の実施の形態に係る三次元形状計測装置のプロジェクト空間上での座標値を特定する方法の説明図である。
【図１２】本発明の実施の形態に係る三次元形状計測装置のＣＰＵの２基のカメラの画像に基づいて生成された三次元形状データの合成処理の手順を示すフローチャートである。
【図１３】本発明の実施の形態に係る三次元形状計測装置のＣＰＵの２組の合成三次元形状データの合成処理の手順を示すフローチャートである。
【図１４】本発明の実施の形態に係る三次元形状計測装置のＣＰＵの三次元計測処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２６】
以下、本発明の実施の形態に係る三次元形状計測装置について、図面に基づいて具体的に説明する。本実施の形態では、ロボットのピッキング動作において、ロボットの把持部の動作を正確に制御するための位置の特定に用いている。
【００２７】
図１は、本発明の実施の形態に係る三次元形状計測装置を用いた、ピッキングシステムの構成例を示すブロック図である。三次元形状計測装置１には、バラ積みされた計測対象物等に計測光を照射するプロジェクタと、計測対象物からの反射光を受光し、画像を撮像する複数のカメラからなる撮像部２が接続されており、キーボード１１１及びマウス１１２等の入力装置で画像処理の設定を行い、表示装置１１３で設定や動作状態の確認を行うことができる。なお、本明細書において、「三次元形状計測」とは、対象物の三次元の形状を数値として計測するものだけに限るものではなく、三次元の形状に基づいて対象物の位置、姿勢を認識するものも含む。
【００２８】
図２は、本発明の実施の形態に係る三次元形状計測装置１の構成を示すブロック図である。図２に示すように、本実施の形態に係る三次元形状計測装置１は、少なくともＣＰＵ１１、メモリ１２、ハードディスク等の記憶装置１３、Ｉ／Ｏインタフェース１４、ビデオインタフェース１５、通信インタフェース１６、可搬型ディスクドライブ１７及び上述したハードウェアを接続する内部バス１８で構成されている。
【００２９】
ＣＰＵ１１は、内部バス１８を介して三次元形状計測装置１の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置１３に記憶しているコンピュータプログラム１００に従って、種々のソフトウェア的機能を実行する。メモリ１２は、ＳＲＡＭ、ＳＤＲＡＭ等の揮発性メモリで構成され、コンピュータプログラム１００の実行時にロードモジュールが展開され、コンピュータプログラム１００の実行時に発生する一時的なデータ等を記憶する。
【００３０】
記憶装置１３は、内蔵される固定型記憶装置（ハードディスク）、ＲＯＭ等で構成されている。記憶装置１３に記憶しているコンピュータプログラム１００は、プログラム及びデータ等の情報を記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体９０から、可搬型ディスクドライブ１７によりダウンロードされ、実行時には記憶装置１３からメモリ１２へ展開して実行される。もちろん、通信インタフェース１６を介してネットワークに接続されている外部のコンピュータからダウンロードされたコンピュータプログラムであっても良い。
【００３１】
Ｉ／Ｏインタフェース１４は、キーボード１１１、マウス１１２等の入力装置と接続され、データの入力を受け付ける。また、ビデオインタフェース１５は、ＣＲＴモニタ、ＬＣＤ等の表示装置１１３と接続され、三次元形状計測装置１の設定データ、ロボットの動作状態等を表示する。
【００３２】
通信インタフェース１６は内部バス１８に接続されており、インターネット、ＬＡＮ、ＷＡＮ等の外部のネットワークに接続されることにより、ロボットコントローラ４、撮像部２、外部のコンピュータ等とデータ送受信することが可能となっている。
【００３３】
図１に戻って、撮像部２は、作業空間内にバラ積みされた計測対象物を三次元的に撮像する。図３は、本発明の実施の形態に係る三次元形状計測装置１の撮像部２の構成を示す例示図である。
【００３４】
図３に示すように、本実施の形態に係る撮像部２は、１個のプロジェクタ２１を中心として、計測対象物に対して前後左右方向に１基ずつ、合計４基のカメラ２２（２２ａ〜２２ｄ）を備えている。これにより、バラ積みされた計測対象物の状態によらず、死角の少ない作業空間内における計測対象物それぞれの位置及び姿勢を把握するための三次元形状データを取得することができる。もちろん、カメラ２２の数は少なくとも２基以上備えていれば足りる。
【００３５】
プロジェクタ２１の光源は、例えば白色光を出射するハロゲンランプ、白色、単色、又は複数の単色を組み合わせた光を出射するＬＥＤ（発光ダイオード）等であれば良い。光源から出射された光の経路上に、図示しないパターン生成部を備え、縞パターンを生成する。パターン生成部としては、例えばＤＭＤ（デジタルマイクロミラーデバイス）、ＬＣＯＳ（登録商標）（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  ｏｎ  Ｓｉｌｉｃｏｎ：反射型液晶素子)、スリット等であれば良い。
【００３６】
カメラ２２ａ〜２２ｄは、バラ積みされた計測対象物に対して前後左右方向の４か所に配置されている。カメラ２２ａ〜２２ｄは、例えばモノクロＣＣＤ（電荷結合素子）、ＣＭＯＳ（相補性金属酸化膜半導体）イメージセンサ等の撮像素子を備えている。撮像素子の画素ごとに受光量に対応する受光信号が出力される。そして、受光信号に基づいて画像が生成される。
【００３７】
図４は、撮像部２のカメラ２２ａ〜２２ｄ及びプロジェクタ２１の配置を示す模式図である。図４（ａ）は、撮像部２を上から見た模式図、図４（ｂ）は、撮像部２の斜視図である。
【００３８】
図４（ａ）に示すように、プロジェクタ２１をカメラ２２ａ〜２２ｄの中心に位置するように配置し、互いに直交するプロジェクタ空間上の二軸であるＸ軸、Ｙ軸を定めている。この状態で、図４（ｂ）に示すようにプロジェクタ２１から縞パターンを投光し、それをカメラ２２ａ〜２２ｄで撮像する。
【００３９】
本実施の形態では、プロジェクタ２１は、撮像する対象物の位置及び姿勢を検出するために、複数の縦縞パターン及び複数の横縞パターンを投光する。投光された複数の縦縞パターン及び複数の横縞パターンにより、プロジェクタ空間上のＸ座標値及びＹ座標値が一意に定まるので、異なるカメラ２２で撮像されたカメラごとの画像データ群から画素ごとに計測対象物表面の位置と一意に対応したプロジェクト空間上における座標値である位相データが求められる。したがって、カメラごとに同一の位相データに対応した三次元計測データを合成することで、対象物の同じ位置を計測した三次元計測データ同士を合成することができる。
【００４０】
図１に戻って、三次元形状計測装置１はロボットの動作を制御するロボットコントローラ４とデータ通信することが可能に接続されている。三次元形状計測装置１で作業空間上の計測対象物の位置及び姿勢が特定されるので、計測対象物を把持するための動作に関わる信号を生成することができる。生成された動作に関わる信号は、ロボットコントローラ４においてロボット５の把持部５０を動作させる信号に変換され、ロボット５の把持部５０の動作を制御する。
【００４１】
なお、ロボットコントローラ４にはペンダント６がデータ通信することが可能に接続されており、ロボット５の動作に関する設定データの入力を受け付ける。
【００４２】
以上の構成における三次元形状計測装置１のＣＰＵ１１の処理手順について説明する。図５は、本発明の実施の形態に係る三次元形状計測装置１の機能ブロック図である。図５において、投光部１００１は、周期的なパターンを有する光を、互いに交差する軸方向にそれぞれ位相シフトさせながら計測対象物、例えばワークがバラ積みされている作業空間に対して、複数回照射する。
【００４３】
本実施の形態では、周期的なパターンとして縞状の縞パターンを用いている。プロジェクタ２１から縞パターンの光を投光し、投影された縞パターンをカメラ２２で撮像している（本実施の形態ではプロジェクタ２１は計測対象物の直上から投光している）。
【００４４】
これにより、プロジェクタ２１のプロジェクタ空間上のどの位置が、カメラ２２の撮像空間上のどの位置で撮像されているかを観測しておき、その対応関係に基づいて三次元的な位置を算出する。もちろん、カメラ２２とプロジェクタ２１との位置関係、焦点距離、レンズのひずみ等、正確なキャリブレーションを事前に行っておく必要がある。
【００４５】
図６は、縞パターン撮像による対象物の形状と撮像されるパターン位相との対応関係を説明するための模式図である。例えば計測対象物７１の点Ｐをカメラ２２で撮像する場合、グレーコード化された縞パターンを複数投影して撮像することにより、どの位置に存在するかを定めることができる。
【００４６】
図７は、投影するグレーコードに対応する縞パターンの例示図である。図７（ａ）〜図７（ｃ）に示すようにグレーコード化された縞パターンを複数投影して撮像することにより二進数として計測対象物７１の点Ｐの位置を特定することができる。図６の例では、グレーコード‘１１１’と‘１０１’との間、すなわち軸座標値‘５’と‘６’との間に位置することを特定することができる。
【００４７】
しかし、詳細な相対位置を特定することができないので、実際には正弦波状の縞パターンを、位相を一定間隔でスライドさせつつ複数投影して撮像する。図８は、投影した正弦波状の縞パターンの例示図である。
【００４８】
図８（ａ）〜図８（ｄ）に示すように正弦波状の縞パターンを一定の位相間隔でスライドさせて投影し、投影された縞パターンを撮像している。これにより、図６の例では、軸方向（縞パターンに直交する方向）の位相値として‘５．４’と詳細な位置を特定することができる。
【００４９】
図５に戻って、第一の受光部１００２は、照射された光を第一の方向で受光し、受光量を示す受光信号を出力する。同様に第二の受光部１００３は、照射された光を第二の方向で受光し、受光量を示す受光信号を出力する。第三の受光部１００９、第四の受光部１０１０も同様にして受光信号を出力する。本実施の形態では４つの受光部を有する例を示しているが、受光部の数は２つ以上であればいくつでも良い。
【００５０】
位相データ生成部１００４は、第一の受光部１００２で受光した受光信号に基づいて、計測対象物の形状を示すＸ軸方向の位相値及びＹ軸方向の位相値で構成された第一の位相データを画素ごとに生成する。同時に、第二の受光部１００３で受光した受光信号に基づいて、計測対象物の形状を示すＸ軸方向の位相値及びＹ軸方向の位相値で構成された第二の位相データを画素ごとに生成する。同様に、第三の受光部１００９で受光した受光信号に基づいて、計測対象物の形状を示すＸ軸方向の位相値及びＹ軸方向の位相値で構成された第三の位相データ、第四の受光部１０１０で受光した受光信号に基づいて、計測対象物の形状を示すＸ軸方向の位相値及びＹ軸方向の位相値で構成された第四の位相データも画素ごとに生成する。
【００５１】
本実施の形態では、Ｘ軸方向に直交する方向の縦縞パターンと、Ｙ軸方向に直交する方向の横縞パターンとを用いて、画素ごとの位相データを正確に特定する。つまり、Ｘ軸方向の位相値がＸ軸座標値、Ｙ軸方向の位相値がＹ軸座標値としてプロジェクタ空間上の座標値（Ｘ，Ｙ）を求めることになる。
【００５２】
図９は、本発明の実施の形態に係る三次元形状計測装置１で用いる縦縞パターンの例示図であり、図１０は、本発明の実施の形態に係る三次元形状計測装置１で用いる横縞パターンの例示図である。図９（ａ）〜図９（ｄ）では、正弦波状の縦方向の縞パターンを位相間隔π／２ずつスライドさせたものを表示している。また、図９（ｅ）〜図９（ｈ）は、グレーコード化された空間コードを表示している。これら８枚の縞パターンをそれぞれシフトさせながら投光して計測対象物を撮像することにより、Ｘ軸方向の位相値を一意に特定することができる。
【００５３】
同様に、図１０（ａ）〜図１０（ｄ）では、正弦波状の横方向の縞パターンを位相間隔π／２ずつスライドさせたものを表示している。また、図１０（ｅ）〜図１０（ｈ）は、グレーコード化された空間コードを表示している。これら８枚の縞パターンをそれぞれシフトさせながら投光して計測対象物を撮像することにより、Ｙ軸方向の位相値を一意に特定することができる。
【００５４】
図１１は、本発明の実施の形態に係る三次元形状計測装置１のプロジェクト空間上での座標値を特定する方法の説明図である。まず、図９に示す縦縞パターンを用いることにより、図１１（ａ）におけるＸ座標値を位相値として特定する。
【００５５】
同様に、図１０に示す横縞パターンを用いることにより、図１１（ｂ）におけるＹ座標値を位相値として特定する。Ｘ座標値とＹ座標値を特定することで、図１１（ｃ）に示すプロジェクト空間座標において、一意に座標値（Ｘ，Ｙ）を特定することができる。
【００５６】
図５に戻って、形状データ生成部１００５は、第一の位相データに基づいて計測対象物の第一の三次元形状データを生成し、第二の位相データに基づいて計測対象物の第二の三次元形状データを生成する。具体的には、画素ごとにプロジェクト空間座標における座標値が特定されるので、高さ計測用パラメータを用いて座標値（Ｘ，Ｙ，Ｚ）を求める。
【００５７】
合成処理部１００６は、画素ごとの位相データに基づいて、画素ごとの三次元形状データをカメラごとにプロジェクタ空間座標にマッピングする。具体的には、生成された第一の位相データと第二の位相データとが同一である位相データを有する第一の三次元形状データ及び第二の三次元形状データを特定し、第一の三次元形状データと第二の三次元形状データとを合成して合成三次元形状データを生成する。三次元形状データを合成する方法は、特に限定されるものではない。
【００５８】
次に、プロジェクタ空間座標上で一定間隔ごとに座標値をサンプリングし、カメラごとにサンプリング点近傍の三次元形状データに基づいてサンプリング点の三次元形状データを算出する。本実施の形態では、サンプリング点におけるカメラごとの三次元形状データの平均化処理を実行する。
【００５９】
例えば、図４に示すように、カメラ２２ａとカメラ２２ｃとの間で三次元形状データの合成処理を実行し、カメラ２２ｂとカメラ２２ｄとの間で三次元形状データの合成処理を実行する。そして、合成された２つの合成三次元形状データに対してさらに合成処理を実行することで、最終的な合成三次元形状データを得る。
【００６０】
なお、合成処理部１００６は、差分算出部１００７と差分判断部１００８とを備えることが好ましい。差分算出部１００７は、画素ごとの第一の三次元形状データと第二の三次元形状データとの差分を算出する。差分判断部１００８は、算出した差分が所定の閾値以上であるか否かを判断する。
【００６１】
そして、画素ごとの第一の三次元形状データと第二の三次元形状データとの差分が、所定の閾値以上であると判断した場合、差分が所定の閾値以上である画素については第一の三次元形状データと第二の三次元形状データとを合成せず、三次元形状データを無効として除外することで合成三次元形状データには含ませない。
【００６２】
以下、２基のカメラ２２で求めた三次元形状データの合成処理について説明する。図１２は、本発明の実施の形態に係る三次元形状計測装置１のＣＰＵ１１の２基のカメラ２２の画像に基づいて生成された三次元形状データの合成処理の手順を示すフローチャートである。
【００６３】
図１２に示すように、三次元形状計測装置１のＣＰＵ１１は、２基のカメラ２２の画像に基づいて生成されたそれぞれの（２つの）三次元形状データを取得する（ステップＳ１２０１）。ＣＰＵ１１は、カメラごとに三次元形状データをプロジェクタ空間座標にマッピングして（ステップＳ１２０２）、カメラごとに、プロジェクタ空間座標上のサンプリング点における三次元形状データを算出する（ステップＳ１２０３）。ＣＰＵ１１は、一の位相データを選択する（ステップＳ１２０４）。
【００６４】
ＣＰＵ１１は、選択した位相データに三次元形状データが存在するか否かを判断する（ステップＳ１２０５）。具体的には、位相データに対応する三次元座標値（Ｘ，Ｙ，Ｚ）が存在するか否かを判断する。ＣＰＵ１１が、三次元形状データが存在しないと判断した場合（ステップＳ１２０５：ＮＯ）、ＣＰＵ１１は、選択した位相データの三次元形状データを無効として、以下の合成処理から除外し（ステップＳ１２０６）、後述するステップＳ１２１４を実行する。
【００６５】
ＣＰＵ１１が、三次元形状データが存在すると判断した場合（ステップＳ１２０５：ＹＥＳ）、ＣＰＵ１１は、選択された位相データに両方の三次元形状データが存在するか否かを判断する（ステップＳ１２０７）。ＣＰＵ１１が、一方のカメラにしか三次元形状データが存在しないと判断した場合（ステップＳ１２０７：ＮＯ）、ＣＰＵ１１は、存在する三次元形状データをそのまま合成処理に使用し（ステップＳ１２０８）、一方にしか三次元形状データが存在しない位相データであることを明確にするために、その旨を示すフラグを付与する（ステップＳ１２０９）。ＣＰＵ１１は、後述するステップＳ１２１４を実行する。
【００６６】
ＣＰＵ１１が、両方の三次元形状データが存在すると判断した場合（ステップＳ１２０７：ＹＥＳ）、ＣＰＵ１１は、両方の三次元形状データの差分を算出して（ステップＳ１２１０）、算出した差分が所定の閾値以上であるか否かを判断する（ステップＳ１２１１）。ＣＰＵ１１が、算出した差分が所定の閾値以上であると判断した場合（ステップＳ１２１１：ＹＥＳ）、ＣＰＵ１１は、選択した位相データの三次元形状データを無効として、以下の合成処理から除外し（ステップＳ１２１２）、後述するステップＳ１２１４を実行する。
【００６７】
ＣＰＵ１１が、算出した差分が所定の閾値より小さいと判断した場合（ステップＳ１２１１：ＮＯ）、ＣＰＵ１１は、両方の三次元形状データの平均値を算出する（ステップＳ１２１３）。ＣＰＵ１１は、すべての位相データについて合成処理が終了したか否かを判断する（ステップＳ１２１４）。
【００６８】
ＣＰＵ１１が、まだ合成処理を行っていない位相データが存在すると判断した場合（ステップＳ１２１４：ＮＯ）、ＣＰＵ１１は、他の位相データを選択して（ステップＳ１２１５）、処理をステップＳ１２０５へ戻して上述した処理を繰り返す。ＣＰＵ１１が、すべての位相データについて合成処理が終了したと判断した場合（ステップＳ１２１４：ＹＥＳ）、ＣＰＵ１１は処理を終了する。
【００６９】
上述した処理手順により、カメラ２２ａとカメラ２２ｃとで生成された三次元形状データ、及びカメラ２２ｂとカメラ２２ｄとで生成された三次元形状データの、それぞれの合成三次元形状データが生成される。最後に両者を合成して、最終的な合成三次元形状データを生成する。図１３は、本発明の実施の形態に係る三次元形状計測装置１のＣＰＵ１１の２組の合成三次元形状データの合成処理の手順を示すフローチャートである。
【００７０】
図１３に示すように、三次元形状計測装置１のＣＰＵ１１は、２組の合成三次元形状データを取得する（ステップＳ１３０１）。ＣＰＵ１１は、一の位相データを選択する（ステップＳ１３０２）。
【００７１】
ＣＰＵ１１は、選択した位相データに三次元形状データが存在するか否かを判断する（ステップＳ１３０３）。具体的には、位相データに対応する三次元座標値（Ｘ，Ｙ，Ｚ）が存在するか否かを判断する。ＣＰＵ１１が、三次元形状データが存在しないと判断した場合（ステップＳ１３０３：ＮＯ）、ＣＰＵ１１は、選択した位相データの三次元形状データを無効として、以下の合成処理から除外し（ステップＳ１３０４）、後述するステップＳ１３１２を実行する。
【００７２】
ＣＰＵ１１が、三次元形状データが存在すると判断した場合（ステップＳ１３０３：ＹＥＳ）、ＣＰＵ１１は、選択された位相データに両方の三次元形状データが存在するか否かを判断する（ステップＳ１３０５）。ＣＰＵ１１が、一方のカメラにしか三次元形状データが存在しないと判断した場合（ステップＳ１３０５：ＮＯ）、ＣＰＵ１１は、存在する三次元形状データをそのまま合成処理に使用し（ステップＳ１３０６）、一方にしか三次元形状データが存在しない位相データであることを明確にするために、その旨を示すフラグを付与する（ステップＳ１３０７）。ＣＰＵ１１は、後述するステップＳ１３１２を実行する。
【００７３】
ＣＰＵ１１が、両方の三次元形状データが存在すると判断した場合（ステップＳ１３０５：ＹＥＳ）、ＣＰＵ１１は、両方の三次元形状データの差分を算出して（ステップＳ１３０８）、算出した差分が所定の閾値以上であるか否かを判断する（ステップＳ１３０９）。ＣＰＵ１１が、算出した差分が所定の閾値以上であると判断した場合（ステップＳ１３０９：ＹＥＳ）、ＣＰＵ１１は、選択した位相データの三次元形状データを無効として、以下の合成処理から除外し（ステップＳ１３１０）、後述するステップＳ１３１２を実行する。
【００７４】
ＣＰＵ１１が、算出した差分が所定の閾値より小さいと判断した場合（ステップＳ１３０９：ＮＯ）、ＣＰＵ１１は、両方の三次元形状データの平均値を算出する（ステップＳ１３１１）。ＣＰＵ１１は、すべての位相データについて合成処理が終了したか否かを判断する（ステップＳ１３１２）。
【００７５】
ＣＰＵ１１が、まだ合成処理を行っていない位相データが存在すると判断した場合（ステップＳ１３１２：ＮＯ）、ＣＰＵ１１は、他の位相データを選択して（ステップＳ１３１３）、処理をステップＳ１３０３へ戻して上述した処理を繰り返す。ＣＰＵ１１が、すべての位相データについて合成処理が終了したと判断した場合（ステップＳ１３１２：ＹＥＳ）、ＣＰＵ１１は処理を終了する。
【００７６】
図１４は、本発明の実施の形態に係る三次元形状計測装置１のＣＰＵ１１の三次元計測処理の手順を示すフローチャートである。図１４に示すように、三次元形状計測装置１のＣＰＵ１１は、周期的縞パターンの投光指示を撮像部２へ送信し（ステップＳ１４０１）、複数のカメラ２２で撮像された画像データを取得する（ステップＳ１４０２）。
【００７７】
ＣＰＵ１１は、カメラ単位で画素ごとに交差する軸方向それぞれの位相値を算出する（ステップＳ１４０３）。本実施の形態では、画素ごとにＸ軸方向及びＹ軸方向の位相値であるＸ位相値及びＹ位相値を算出する。
【００７８】
ＣＰＵ１１は、画素ごとの三次元座標値（Ｘ，Ｙ，Ｚ）を算出して、三次元形状データをカメラ２２ごとに生成する（ステップＳ１４０４）。具体的には、算出したＸ軸方向及びＹ軸方向の位相値と、それを撮像したカメラ２２の高さ計測用パラメータとにより、三次元座標値を算出する。
【００７９】
ここで、同じ計測対象物を撮像した場合であっても、高さ計測用パラメータの誤差等により算出した三次元座標値は変動する。そこでＣＰＵ１１は、カメラごとの同一位相値ごとに三次元形状データを合成することにより、合成三次元形状データを生成する（ステップＳ１４０５）。
【００８０】
合成処理は、座標値の平均値を算出することにより行われる。カメラ２２が２基の場合には、同一の位相データの三次元形状データの両者の平均値を、カメラ２２が４基の場合には、同一の位相データの三次元形状データの四者の平均値を求める。合成三次元形状データに、周辺と比べ大きく値が異なる特異点が表出した場合には、フラグの有無を確認し、フラグが付与されている位相データである場合には、当該位相データの三次元形状データを無効とすることにより改善することができる。
【００８１】
以上のように本実施の形態によれば、計測対象物の同一部位のデータに基づいて合成三次元形状データを得ることができるので、色の境界や輪郭付近においてもノイズが少なく、高い解像度を維持した合成三次元形状データを得ることが可能となる。
【００８２】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えば、カメラ２２の数も上記実施例に限定されるものではなく、少なくとも２基以上備えていれば足りる。
【００８３】
また、縞パターンについても上記実施例に限定されるものではなく、正弦波状の位相を等間隔にシフトさせたパターン数と、グレーコードのビット数（グレーコードの縞パターン数）とが相違していても良い。さらに位相を等間隔にシフトさせた正弦波状の複数の縞パターンを、異なる複数の周期分を用いた複数のパターンであっても良い。
【符号の説明】
【００８４】
１  三次元形状計測装置
２  撮像部
４  ロボットコントローラ
５  ロボット
１１  ＣＰＵ
２１  プロジェクタ
２２、２２ａ、２２ｂ、２２ｃ、２２ｄ  カメラ
５０  把持部
【図１】
2018146348.tif 000003
【図２】
2018146348.tif 000004
【図３】
2018146348.tif 000005
【図４】
2018146348.tif 000006
【図５】
2018146348.tif 000007
【図６】
2018146348.tif 000008
【図７】
2018146348.tif 000009
【図８】
2018146348.tif 000010
【図９】
2018146348.tif 000011
【図１０】
2018146348.tif 000012
【図１１】
2018146348.tif 000013
【図１２】
2018146348.tif 000014
【図１３】
2018146348.tif 000015
【図１４】
2018146348.tif 000016