(57)【特許請求の範囲】
【請求項１】
所定の面内方向の解像度または奥行き方向の距離分解能で被計測物体の第１の距離画像を生成する生成手段と、
前記第１の距離画像が生成された後に前記生成手段により生成される第２の距離画像を使って前記被計測物体を計測する計測手段の要求に基づいて、前記第２の距離画像の面内方向の解像度または奥行き方向の距離分解能であるパラメータを決定する決定手段と、を備え、
前記生成手段は、前記第１の距離画像と前記決定手段により決定されたパラメータとに基づいて、前記第２の距離画像を生成することを特徴とする距離データ生成装置。
【請求項２】
前記計測手段の要求は、該計測手段が要求する面内方向の解像度または奥行き方向の分解能であることを特徴とする請求項１に記載の距離データ生成装置。
【請求項３】
前記生成手段は、前記第２の距離画像を生成した後に、前記第２の距離画像の面内方向の解像度よりも高い解像度を有する、もしくは奥行き方向の距離分解能よりも高い距離分解能を有する、第３の距離画像を生成することを特徴とする請求項１または２に記載の距離データ生成装置。
【請求項４】
前記生成手段は、
投影手段に、空間コードを生成するためのパターンを前記被計測物体に投影させ、撮像手段に、前記パターンが投影された前記被計測物体を撮像させ、
前記第１の距離画像と、前記決定されたパラメータとに基づいて、前記投影手段に、前記パターンを投影させる回数を決定し、該決定された回数分パターンを投影させることにより、前記第２の距離画像を生成することを特徴とする請求項２または３に記載の距離データ生成装置。
【請求項５】
前記生成手段は、前記第１の距離画像を生成する際に生成される前記空間コード画像を再使用して、前記第２の距離画像を生成することを特徴とする請求項４に記載の距離データ生成装置。
【請求項６】
前記生成手段は、前記第１の距離画像を生成する際に生成される前記空間コード画像と、前記第２の距離画像を生成する際に生成される空間コード画像とを再使用して、前記第３の距離画像を生成することを特徴とする請求項４または５に記載の距離データ生成装置。
【請求項７】
請求項１乃至６の何れか１項に記載の距離データ生成装置と、
前記生成手段により生成された前記第２の距離画像を用いて前記被計測物体の位置姿勢を計測する前記計測手段と、を備えることを特徴とする位置姿勢計測装置。
【請求項８】
前記第２の距離画像から所定の距離データを含む領域を設定する設定手段をさらに備え、
前記計測手段は、前記領域に基づいて前記被計測物体の位置姿勢を計測することを特徴とする請求項７に記載の位置姿勢計測装置。
【請求項９】
前記被計測物体の３次元形状データと、前記第２の距離画像の面内方向の解像度よりも高い解像度を有する、もしくは奥行き方向の距離分解能よりも高い距離分解能を有する第３の距離画像とに基づいて、前記計測手段により計測された前記被計測物体の位置姿勢を補正する補正手段をさらに備えることを特徴とする請求項７または８に記載の位置姿勢計測装置。
【請求項１０】
生成手段と決定手段とを備える距離データ生成装置の制御方法であって、
前記生成手段が、所定の面内方向の解像度または奥行き方向の距離分解能を有する、被計測物体の第１の距離画像を生成する生成工程と、
前記決定手段が、前記第１の距離画像が生成された後に前記生成工程により生成される第２の距離画像を使って前記被計測物体を計測する計測手段の要求に基づいて、前記第２の距離画像の面内方向の解像度または奥行き方向の距離分解能であるパラメータを決定する決定工程と、を備え、
前記生成工程では、前記第１の距離画像と前記決定工程により決定されたパラメータとに基づいて、前記第２の距離画像を生成することを特徴とする距離データ生成装置の制御方法。
【請求項１１】
コンピュータを、請求項１乃至６のいずれか１項に記載の距離データ生成装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、距離画像生成装置、位置姿勢計測装置、距離画像処理装置、距離画像生成装置の制御方法、およびプログラムに関する。特に、被計測物体の距離データを生成し、その距離データに基づいて画像処理を行う距離画像生成装置、位置姿勢計測装置、距離画像処理装置、距離画像生成装置の制御方法、およびプログラムに関する。
【背景技術】
【０００２】
三角測量を応用した三次元距離計測手法において、計測点の密度が常に一定であると、被計測物体までの距離が大きくなるほど距離データの面内方向の解像度が低くなる。被計測物体までの距離によらず常に一定の面内方向の解像度で計測を行うためには、計測点の密度は被計測物体までの距離に応じて変化させる必要がある。
【０００３】
被計測物体までの距離に応じて計測点の密度を変更する手法として、特許文献１のような手法が検討されている。
【０００４】
特許文献１では、光伝播時間測定法（ＴＯＦ法）に従って概略的に被計測物体までの距離を計測し、光切断法によって、当該距離に基づいて決定した走査ピッチに従ってスリット光を走査して、距離データを生成している。この場合、走査ピッチが計測点の密度に相当する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２２４２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の手法では、距離データは、概略的な被計測物体までの距離に基づいて生成される。しかしながら、生成された距離データを用いる処理において距離データに要求される面内方向の解像度、もしくは奥行き方向の距離分解能が変化した際の対応については考慮されていない。
【０００７】
要求される面内方向の解像度もしくは奥行き方向の距離分解能よりも解像度もしくは距離分解能が高い距離データの生成は、不必要なデータの生成による処理時間の増大を招く。逆に、要求される面内方向の解像度もしくは奥行き方向の距離分解能よりも解像度もしくは距離分解能が低い距離データの生成は、その距離データを用いる処理の正確性の維持が困難となる。
【０００８】
上記の課題に鑑み、本発明は、距離データを用いる処理が要求する面内方向の解像度もしくは奥行き方向の距離分解能なども考慮した上で、画像処理に必要な精度の距離データを生成することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成する本発明に係る距離データ生成装置は、
所定の面内方向の解像度または奥行き方向の距離分解能で被計測物体の第１の距離画像を生成する生成手段と、
前記第１の距離画像が生成された後に前記生成手段により生成される第２の距離画像を使って前記被計測物体を計測する計測手段の要求に基づいて、前記第２の距離画像の面内方向の解像度または奥行き方向の距離分解能であるパラメータを決定する決定手段と、を備え、
前記生成手段は、前記第１の距離画像と前記決定手段により決定されたパラメータとに基づいて、前記第２の距離画像を生成することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、距離データを用いる処理が要求する面内方向の解像度もしくは奥行き方向の距離分解能なども考慮した上で、画像処理に必要な精度の距離データを生成することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態に係る物体位置姿勢計測装置の機能ブロック図。
【図２】第１実施形態に係る物体位置姿勢計測装置における処理の流れを示すフローチャート。
【図３】第１実施形態に係る第１の距離データおよび第２の距離データを示す図。
【図４】第２実施形態に係る第２の距離データのコード画像生成の流れを示す図。
【図５】第３実施形態に係る物体位置姿勢計測装置の機能ブロック図。
【図６】第３実施形態に係る物体位置姿勢計測装置における処理の流れを示すフローチャート。
【発明を実施するための形態】
【００１２】
（第１実施形態）
本実施形態では、例えば工場の生産ラインなどで、部品群から部品のピッキング等のタスクを実行するためのロボットシステムにおいて使用される、部品の位置姿勢を計測する距離画像処理モジュールを備えた物体位置姿勢計測装置の例を説明する。なお、本実施形態では、三次元距離計測は空間コード化法によって行う。また、撮像装置から被計測物体までの距離を距離情報と定義し、その距離情報を輝度値とする２次元画像を距離データ（距離画像）として定義する。さらに、距離データの面内方向の解像度を距離データのパラメータとして定義する。
【００１３】
まず図１を参照して、本実施形態における距離画像生成装置の機能を有する物体位置姿勢計測装置の構成を説明する。撮像モジュール１５は、０と１のビットが埋め込まれた空間コード化パターンを部品群の上方から投影するプロジェクタなどの投影装置１６と、部品群を撮像するカメラなどの撮像装置１７と、距離画像処理モジュール１８とに接続され、撮像装置１７で撮像された画像を取り込む機能を有する。距離画像処理モジュール１８は、距離データ生成モジュール１１と、距離情報抽出モジュール１２と、距離データパラメータ決定モジュール１３と、位置姿勢認識モジュール１４とを備える。距離データ生成モジュール１１は、撮像モジュール１５から取り込んだ画像に基づいて、撮像装置１７から部品群までの距離を表した距離データを生成する機能を有する。距離情報抽出モジュール１２は、距離データ生成モジュール１１により生成された距離データから任意の距離情報を抽出する機能を有する。距離データパラメータ決定モジュール１３は、距離データ生成モジュール１１により生成された距離データに基づいて、距離データ生成モジュール１１が次に生成する距離データのパラメータを決定する機能を有する。また、位置姿勢認識モジュール１４が要求する値に基づいてパラメータを決定してもよい。
【００１４】
位置姿勢認識モジュール１４は、いわゆる画像処理手段として機能し、距離データ生成モジュール１１により生成された距離データと、撮像装置１７から得られる２次元画像とに基づいて、部品の位置姿勢認識処理を行う機能を有する。
【００１５】
なお本実施形態においては、それぞれの機能を実現するモジュールを前述したように定義したが、これらの定義は本発明の趣旨を限定するものでは無い。例えば、撮像モジュール１５を定義したが、撮像モジュール１５を距離データ生成モジュール１１に含まれるものとして定義しても構わない。すなわち、上述の定義は、本実施形態で説明される物体位置姿勢計測装置が、後述する処理を実現する際に必要とする手段を説明するために設定したものであり、その他の定義を排除するものでは無い。また、撮像モジュール１５、距離画像処理モジュール１８は、不図示の制御部によりその動作を制御され、一般的にコンピュータから構成されるが、本発明はその構成を限定するものではない。
【００１６】
次に図２のフローチャートを参照して、本実施形態に係る物体位置姿勢計測装置の動作の流れを説明する。
【００１７】
ステップＳ１０１において、撮像モジュール１５は、前処理を行う。撮像モジュール１５は、全点灯条件および全消灯条件下で、撮像装置１７で部品群を撮像したそれぞれの画像を取得する。ここで、全点灯条件とは、空間コードが全て１のパターンを投影する条件のことであり、この条件で撮像した画像を全点灯画像と定義する。全消灯条件とは、空間コードが全て０すなわち空間コード化パターンを投影しない条件のことであり、この条件で撮像した画像を全消灯画像と定義する。
【００１８】
ステップＳ１０２において、距離データ生成モジュール１１は距離データを生成する。撮像装置１７により部品の距離計測のための撮像が行われ、撮像された画像は撮像モジュール１５に転送される。距離データ生成モジュール１１は撮像モジュール１５から画像を取り込み、距離データを生成する。
【００１９】
ステップＳ１０２の処理は、ステップＳ１０１の処理の後に実行される場合と、後述のステップＳ１０５の処理の後に実行される場合とがある。ステップＳ１０１の後にステップＳ１０２が実行される場合は、第１の距離データ（第１の距離画像）を生成するための空間コード化パターンの投影回数Ｎ１に基づいて第１の距離データが生成される。被計測物体の第１の距離データは、所定の面内方向の解像度で取得されてもよい。一方、後述のステップＳ１０５の後にステップＳ１０２が実行される場合は、距離データパラメータ決定モジュール１３によって決定されたパラメータと、距離情報抽出モジュール１２によって抽出された距離情報とに基づいて、第２の距離データ（第２の距離画像）を生成するための空間コード化パターンの投影回数Ｎ２が決定される。そして、当該Ｎ２に基づいて第２の距離データが生成される。第１の距離データは、第２の距離データのパラメータを決定するために用いられ、第２の距離データは、画像処理や、位置姿勢認識モジュール１４が位置姿勢認識処理を行うときの処理領域設定に用いられる。
【００２０】
ステップＳ１０３において、距離画像処理モジュール１８は、距離データ生成モジュール１１により生成された距離データが、第１の距離データであるか、または第２の距離データであるかを判定する。第１の距離データであると判定された場合（ステップＳ１０３；ＮＯ）、ステップＳ１０４へ進む。一方、第２の距離データであると判定された場合（ステップＳ１０３；ＹＥＳ）、ステップＳ１０６へ進む。
【００２１】
ステップＳ１０４において、距離情報抽出モジュール１２は、撮像された部品群の中で撮像装置からの距離が最も近い位置での距離情報を第１の距離データから抽出する。ステップＳ１０５において、距離データパラメータ決定モジュール１３は、距離情報と、位置姿勢認識モジュール１４が距離データのパラメータとして要求する値とに基づいて、距離データ生成モジュール１１が次に生成する第２の距離データのパラメータを決定する。その後ステップＳ１０２に戻り、決定されたパラメータを有する第２の距離データを生成するために必要な処理が行われる。
【００２２】
ステップＳ１０６において、位置姿勢認識モジュール１４は、部品群のうち高さが最も高い位置にある部品の位置を第２の距離データに基づいて検出する。そして、位置姿勢認識モジュール１４は、その部品を含むような領域の中で、位置姿勢認識処理を行う。以上が、本実施形態における物体位置姿勢計測装置の動作の流れである。
【００２３】
続いて、本実施形態に係る物体位置姿勢計測装置の動作のうち、さらに説明が必要なステップについて、詳細に説明する。
【００２４】
ステップＳ１０２では、空間コード化法による三次元距離計測を行うため、投影装置１６が部品に対して空間コード化パターンを複数回投影する。そして、カメラ等の撮像装置１７が、空間コード化パターンを投影された部品を撮像する。撮像装置１７により撮像された複数の画像は撮像モジュール１５に転送される。本実施形態における空間コード化パターンは、投影回数が増えるに従って低いビットから高いビットへと順番に投影される。
【００２５】
第１の距離データを生成する際は、あらかじめ設定された投影回数Ｎ１に従って空間コード化パターンの投影が行われる。処理時間と効率性の観点からＮ１は、第２の距離データを生成するための空間コード化パターンの投影回数Ｎ２で予想される最小値以下の値であってもよい。本実施形態では、撮像装置１７から部品群の底辺までの距離ｈの中央に位置する距離ｈ／２において、距離計測密度（空間コード化パターンのパターン幅）が部品の最短辺以下になるときの空間コード化パターンのビット数をＮ１とする。
【００２６】
第２の距離データを生成する際は、距離データパラメータ決定モジュール１３により決定されたパラメータと、距離情報抽出モジュール１２によって抽出された距離情報とに応じて投影回数Ｎ２が決定される。そして、その投影回数Ｎ２に従って空間コード化パターンの投影が行われる。
【００２７】
具体的には、距離情報抽出モジュール１２により抽出された距離だけ撮像装置１７から離れた位置において、第２の距離データのパラメータとして面内方向の解像度ＲＮ（距離計測点数／ｍｍ）が指定された場合、それと同じかそれよりも高い解像度の距離データを出力するために必要な投影回数を計算する。例えば、距離情報抽出モジュール１２により抽出された距離だけ撮像装置１７から離れた位置において、１ビット空間コード化パターンで得られる距離データの面内方向の解像度がＲ１（距離計測点数／ｍｍ）である場合、投影回数Ｎ２は以下のように与えられる。ただし、Ｒ１は既知とする。
【００２８】
Ｎ２＝ｌｏｇ２（ＲＮ／Ｒ１）＋１
Ｎ２が小数となった場合は、値を切り上げる。ここで、投影回数Ｎ１≧投影回数Ｎ２であれば、投影並びに撮像は行われず、第１の距離データを第２の距離データとして再出力する。
【００２９】
続いて、距離データ生成モジュール１１は、空間コード化法により、撮像モジュール１５から取り込まれる複数の画像から距離データを生成する。より具体的には、複数の画像をデコードして観測された空間コードを画素値とする空間コード画像を生成し、そのコード画像に基づいて、三角測量により距離データを生成する。
【００３０】
ここで、コード画像の生成の流れの例を示す。コード画像と撮像された画像の縦横の画素数は一致しているとする。簡単のため、ここでは画像中の１点（ｘ０，ｙ０）に注目する。まず、全点灯画像の輝度値と全消灯画像の輝度値との平均画像を生成し、この平均画像を閾値として、１ビットの空間コード化パターンを投影した時の画像を２値化する。具体的には、閾値よりも小さければ０、大きければ１とする。これがコード情報となる。そして、２値化画像の（ｘ０，ｙ０）におけるコードを読み取る。このコード値をコード座標の（ｘ０，ｙ０）に代入する。２値化処理とコード値代入処理を合わせてコード生成処理と定義する。続いて、２ビットの空間コード化パターンを投影した時の画像を、先ほどと同様の手順で２値化し、２値化画像の（ｘ０，ｙ０）におけるコードを読み取る。次にコード画像上の（ｘ０，ｙ０）における値を左シフトし、読み取ったコードを下位ビットに埋め込む。これを、空間コード化パターンを投影した回数だけ繰り返す。以上の処理をコード画像上の全ての点に適用することで、コード画像が生成される。
【００３１】
ステップＳ１０４では、距離情報抽出モジュール１２が、距離データから距離情報を抽出する。以下、図３（ａ）を用いて、距離情報の抽出処理の説明を行う。図３（ａ）は、第１の距離データ例を示す。ここでは便宜上、画像の左上を原点とし、画素と座標とを対応づけている。さらに、図３（ｃ）の凡例に示すように、部品群の高さ方向に対し、色が薄いところほど部品が高い位置にあることを表す。また、第１の距離データは少ない空間コード化パターンで生成するため、距離計測が行われない場所も出てくる。計測できた場所の間に補完処理を適用して第１の距離データの全ての画素において距離情報を持つようにしても良いが、ここでは簡単のため、補完処理は行っていない。また図３（ａ）は、部品のみが撮影され、他の冶具は写りこんでいないものとするが、仮に冶具が写りこんでいたとしても、部品群が置かれていない時の距離データと背景差分を取ることで、部品群のみの距離データを得ることも可能である。本実施形態では、部品群の頂上から部品をピッキングしていくことを想定し、距離データにおいて最も長い部分の距離情報を抽出する。図３（ａ）の第１の距離データ例で有効に計測された中で最も高い部品位置を示す画素は、（ｘ，ｙ）＝（７，５）、（７，６）、および（７，７）である。このときこれらの画素が保持する距離情報を抽出する。
【００３２】
ステップＳ１０５では、距離データパラメータ決定モジュール１３は、位置姿勢認識モジュール１４が第２の距離データのパラメータとして要求する値に基づいて、距離データ生成モジュール１１が次に生成する第２の距離データのパラメータを決定する。本実施形態では、ステップＳ１０６において、部品群のうち最も高い位置にある部品について位置姿勢認識処理を行う。例えば、部品の最短辺が１０（ｍｍ）であるとき、部品表面の少なくとも１点が必ず距離計測されるためには、部品群の最も高い位置における面内方向の距離計測間隔が１０（ｍｍ）以下となる必要がある。この条件で計測することにより、例えば部品群の中で最も高い位置にある部品が距離計測間隔の間に存在してしまい、その部品の距離計測が行われない、すなわち部品群の最も高い位置にある部品を検出できないといった事態を避けることができる。ここでは、第２の距離データのパラメータに対する位置姿勢認識モジュール１４の要求として距離計測間隔が１０（ｍｍ）という値が設定される。よって、第２の距離データのパラメータすなわち面内方向の解像度として、１／１０（距離計測点数／ｍｍ）すなわち０．１（距離計測点数／ｍｍ）が設定される。その後、ステップＳ１０２に戻り、決定されたパラメータの第２の距離データを生成するために必要な処理が行われる。
【００３３】
最後に、ステップＳ１０６では、位置姿勢認識モジュール１４は、距離データに基づいて部品の位置姿勢認識処理を行う。本実施形態では、第２の距離データの中で最も高い位置にある部品に対応する距離情報を持つ点の座標を中心として、部品の最長辺の２倍の長さを１辺とする正方形領域を位置姿勢認識処理の処理領域として設定する。第２の距離データ例である図３（ｂ）を用いて具体的に説明すると、図３（ｂ）の第２の距離データ例で最も高い画素は、（ｘ，ｙ）＝（６，６）である。部品の最長辺の２倍の長さが図３（ｂ）の第２の距離データ画像上で３画素分であるとき、処理領域として（５，５），（５，７），（７，５），（７，７）の４点を頂点とする正方形領域（矩形領域）を設定する。その領域の中で全点灯画像に対し例えばテンプレートマッチングなどの位置姿勢認識処理により部品の位置姿勢を求める。ここで、全点灯画像ではなく、全消灯画像など任意の照度で撮像した画像を用いても良い。位置姿勢認識処理に関しては、本発明の主眼とするところではないため詳細な説明は省略する。
【００３４】
さて、本実施形態では、空間コード化パターンは、低いビットから高いビットへ順番に投影されるとしたが、指定された投影回数で必要な空間コード化パターンが全てそろえば、どのような順番で投影しても良い。全点灯画像と全消灯画像の撮像に関しても、空間コード化パターン投影前に行う必要はなく、空間コード化パターン投影の途中で行われても良い。
【００３５】
また、本実施形態では、第２の距離データのパラメータとして面内方向の解像度ＲＮが指定された場合、それと同じかそれよりも高い解像度の距離データを出力するために必要な投影回数を計算した。一方で、あらかじめルックアップテーブルに各計算結果を保持させておき、それを読み出すようにしても良い。
【００３６】
また、本実施形態では、空間コード化パターンは各ビットにつき１枚ずつ投影したが、各ビットでビット反転させた空間コード化パターンの投影を追加で行っても良い。このようにすることで、コード画像を生成する際の２値化の精度を向上させ、コード画像をより高精度に生成することができる。
【００３７】
また、パターンの投影および撮像は、上述の何れのステップが実行されているかに関係なく、常に実行されていても良い。この場合、空間コード化パターンは、低いビットから高いビットへ順番に投影され、物体位置姿勢計測装置が有する最高ビットの空間コード化パターンが投影されるまで続けられる。もしくは第２の距離データの生成に必要なビットの空間コード化パターンが投影されるまで続けられる。撮像されたデータは順次撮像モジュール１５に保持され、距離データ生成モジュール１１は必要な画像を撮像モジュール１５より取り出すことができる。撮像が終わっている画像については撮像モジュール１５からすぐに取り出すことができるので、ステップＳ１０２の処理の待機時間を低減させることができる。
【００３８】
また、ステップＳ１０２において、投影回数Ｎ１を撮像装置１７から部品群の底辺までの距離ｈの中央に位置する距離ｈ／２を基準にして決定したが、これはあくまで例示であって、例えば部品群の考えうる最大高さを基準にしてＮ１を決定しても良い。例えば、部品群の考えうる最大高さがｈ／４であれば、その高さにおいて距離計測密度が部品の最短辺以下になるときの空間コード化パターンのビット数をＮ１とすれば良い。
【００３９】
また、ステップＳ１０４において、距離情報抽出モジュール１２は、距離データの中で最も高い位置にある部品の距離情報を抽出するが、これは任意の値であっても良い。例えば、ロボットシステムが部品のピッキングを行いやすい高さに最も近い距離情報を抽出しても良い。また、ステップＳ１０５において、本実施形態では、位置姿勢認識モジュール１４が位置姿勢認識処理を行うときの処理領域設定のために第２の距離データを用いた。そして、位置姿勢認識モジュール１４が要求する距離計測間隔（空間コード化パターンのビット数に対応づけられる）として部品の最短辺の長さと設定したが、これに限るものではない。位置姿勢認識モジュール１４で行われる処理で必要なビット数に基づいて距離計測間隔を決定してもよい。
【００４０】
また、ステップＳ１０５において決定された第２の距離データのパラメータに基づいて、ステップＳ１０２において距離データ生成モジュール１１で投影回数Ｎ２を決定したが、投影回数Ｎ２の決定はステップＳ１０５で行っても良い。すなわち、距離データパラメータ決定モジュール１３が、第１の距離データに基づいて、第２の距離データを生成するために必要な投影回数Ｎ２を決定しても良い。また、位置姿勢認識モジュール１４が距離データのパラメータに要求する値と第１の距離データに基づいて、投影回数Ｎ２を決定しても良い。
【００４１】
また、距離情報ごとに面内方向の解像度または奥行き方向の距離分解能を予め関連付けて格納しておき、当該関連付けに基づいて、抽出された距離情報に対応する面内方向の解像度または奥行き方向の距離分解能をパラメータとして決定してもよい。
【００４２】
また、ステップＳ１０６において、領域の設定に関しては何ら限定されるものではない。例えば、距離データの中で、ロボットシステムが部品のピッキングを行いやすい距離情報を持つ点の座標を中心として矩形領域を設定しても良いし、その領域についても、例えば部品の最長辺の長さを半径とする円領域を設定しても良い。
【００４３】
（第２実施形態）
本実施形態では、第１実施形態のステップＳ１０２において、距離データ生成モジュール１１にコード画像を保持するメモリなどの記憶装置を設けておき、第１の距離データのコード画像を記憶装置に保持させる場合について説明を行う。なお、本実施形態においては第１実施形態における物体位置姿勢計測装置との相違点についてのみ説明を行い、その他の部分に関しては第１実施形態と同様として説明を省略する。
【００４４】
本実施形態では、第１の距離データは２ビットまでの空間コード化パターンで生成され、第２の距離データは３ビットまでの空間コード化パターンで生成されるとする。
【００４５】
図４（ａ）は、本実施形態における第１の距離データのコード画像生成の流れを示す。第１の距離データのコード画像は２回の撮像すなわち空間コード化パターン４０１と４０３とを用いて生成される。被計測物体に空間コード化パターン４０１または４０３が投影され、撮像された画像を２値化すると、２値化画像４０２または４０４が得られる。これら２枚の画像から、第１の距離データのコード画像４０５が生成される。コード画像４０５において、同一の濃淡は同一のコード値であることを示す。また、コード値の境界には視認性を考慮して黒線を入れているが、本来のコード画像には存在しない。コード画像４０５は、記憶装置に記録される。
【００４６】
図４（ｂ）は、本実施形態における第２の距離データのコード画像生成の流れを示す。第２の距離データのコード画像は、通常の方法であれば、３回の撮像すなわち空間コード化パターン４０１と４０３と４０６とを用いて生成される。一方、本実施形態では、空間コード化パターン４０１および４０３の投影・撮像・コード生成処理を省略し、空間コード化パターン４０６のみ投影する。それを撮像して得られた画像を２値化すると、２値化画像４０７が得られる。次にコード生成処理において、記憶装置に保持されたコード画像４０５と２値化画像４０７とを用いると、第２の距離データのコード画像４０８が生成される。このように、第１の距離データのコード画像を第２の距離データの生成時に再使用することで、第１の距離データを生成する際に投影した空間コード化パターン光の投影と撮像とコード生成処理とを省略できる。そのため、第２の距離データ生成の処理時間を短縮することができる。例えば、本実施形態において、１回の投影と撮像とコード生成処理につき合計で１００（ｍｓ）かかる場合、第２の距離データの生成において全ての空間コード化パターンを投影した場合と比較して、１００（ｍｓ）短縮できる。
【００４７】
（第３実施形態）
第１実施形態では、距離データ生成モジュール１１が第１の距離データおよび第２の距離データの２種類の距離データを生成し、第２の距離データを位置姿勢認識モジュール１４が用いた。本実施形態では、距離データ生成モジュール１１がさらに第３の距離データを生成し、第３の距離データを用いてさらに画像処理を行う場合について説明を行う。なお、本実施形態においては第１実施形態における物体位置姿勢計測装置との相違点についてのみ説明を行い、その他の部分に関しては第１実施形態と同様として説明を省略する。
【００４８】
まず図５を参照して、本実施形態に係る物体位置姿勢計測装置の構成を説明する。図５において、距離画像処理モジュール２２は、距離データ生成モジュール１１と、距離情報抽出モジュール１２と、距離データパラメータ決定モジュール１３と、位置姿勢認識モジュール１４と、位置姿勢補正モジュール２１とを備える。位置姿勢補正モジュール２１は、部品の３次元形状データと、位置姿勢認識モジュール１４により生成される部品の位置姿勢と、距離データ生成モジュール１１により生成される第３の距離データ（第３の距離画像）とを用いて部品の位置姿勢を補正する。
【００４９】
次に図６のフローチャートを参照して、本実施形態に係る物体位置姿勢計測装置の動作の流れを説明する。
【００５０】
ステップＳ２０１では、距離データ生成モジュール１１は、第１実施形態のステップＳ１０１および１０２と同様、前処理が行われた後に第１の距離データを生成する。
【００５１】
ステップＳ２０２では、距離データ生成モジュール１１は、第１実施形態のステップＳ１０２乃至１０５と同様、第２の距離データを生成する。
【００５２】
ステップＳ２０３では、部品の距離計測のための撮像が行われ、撮像装置１７で撮像した画像が撮像モジュール１５に転送され、距離データ生成モジュール１１は第３の距離データを生成する。ここで、第３の距離データは、第２の距離データの面内方向の解像度以上の解像度を有する、もしくは奥行き方向の距離分解能以上の距離分解能を有するものとする。
【００５３】
ステップＳ２０４では、第１実施形態のステップＳ１０６と同様、位置姿勢認識モジュール１４が、第２の距離データに基づいて部品の位置姿勢認識処理を行う。
【００５４】
ここで、ステップＳ２０３とステップＳ２０４との各処理は並列で動作する。そして、Ｓ２０３とステップＳ２０４との処理が両方終わった後に、ステップＳ２０５の処理が実行される。
【００５５】
ステップＳ２０５では、位置姿勢補正モジュール２１は、位置姿勢認識モジュール１４により生成される部品の位置姿勢を初期位置姿勢とし、部品の３次元データに対し、第３の距離データをあてはめることで部品の位置姿勢情報を算出・補正する。例えば、距離データを構成する各点について、部品の３次元データの中で最も近接する面上の点を求め、それらの３次元距離の二乗和が最小化されるように部品の位置姿勢を繰り返し修正することで、最終的に高精度な位置姿勢を求める。
【００５６】
以上が、本実施形態における物体位置姿勢計測装置の動作の流れである。
【００５７】
（第４実施形態）
なお、三次元距離計測の方法として、前述した手法を用いるものに限るわけではなく、その他の手法を用いることも可能である。例えば、光切断法を用いても良い。その場合、スリット光の走査ピッチが空間コード化パターンの線幅に対応する。
【００５８】
また、本実施形態では、距離データのパラメータとして、距離データの面内方向の解像度を定義したが、これは奥行き方向の距離分解能またはデジタル化した時の距離データ階調数として定義されても良い。すなわち、距離データパラメータ決定モジュール１３が第２の距離データのパラメータを決定する際、距離データのパラメータに対する位置姿勢認識モジュール１４の要求が奥行き方向の距離分解能であっても良い。また、距離データのパラメータとして距離データ生成時間を定義しても良い。その場合は、要求生成時間から、第１の距離データの生成と距離データパラメータの決定に要した時間とを差し引き、その中で撮像可能な最大枚数を求めて、第２の距離データを生成しても良い。例えば、１回の投影と撮像とコード生成処理につき合計で時間ｔだけかかる場合を考える。要求生成時間がＴ、第１の距離データの生成に要する撮像回数がＮ１、距離データパラメータの決定に要する時間がｔ’であるとき、第２の距離データの生成に用いることができる時間Ｔ’は、以下のように与えられる。
【００５９】
Ｔ’＝Ｔ−（ｔ×Ｎ１＋ｔ’）
よって、Ｔ’以内に撮像可能な回数（第２の距離データの生成に要する撮像回数）Ｎ２’は、以下のように与えられる。
【００６０】
Ｎ２’＝Ｔ’÷ｔ
すなわち、第２の距離データは、以下のように与えられる空間コード化パターンの枚数Ｎ２で生成される。
【００６１】
Ｎ２＝Ｎ２’＋Ｎ１
さらに、距離データのパラメータに対する位置姿勢認識モジュール１４の要求が複数あっても良く、その場合は、全ての条件を満たすようにするか、もしくはいずれかの条件を優先してパラメータを決定しても良い。
【００６２】
また、本実施形態では、位置姿勢認識モジュール１４は、第２の距離データから距離情報を抽出して処理領域を設定した上でテンプレートマッチングを行っている。しかしながら、位置姿勢認識モジュール１４は、距離データを領域設定以外に用いても良く、例えば部品の位置姿勢がある程度想定されている状況ならばそれを初期姿勢とし、部品の３次元データと、第２の距離データとを用いて位置姿勢補正処理を行っても良い。
【００６３】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005798318.tif 000002
【図２】
0005798318.tif 000003
【図５】
0005798318.tif 000004
【図６】
0005798318.tif 000005
【図３】
0005798318.tif 000006
【図４】
0005798318.tif 000007