(57)【特許請求の範囲】
【請求項１】
対象物を把持する把持手段と、
前記対象物と前記把持手段との少なくとも１つの画像を撮像する撮像手段と、
前記把持手段及び前記撮像手段を制御する制御手段と、
前記対象物の画像を生成する画像生成手段とを備え、
前記制御手段は、前記把持手段に前記対象物を把持させて当該対象物を所定姿勢とした把持状態となるように前記把持手段を制御し、当該把持状態における前記対象物及び前記把持手段の画像を、前記所定姿勢についての把持状態画像として撮像するように前記撮像手段を制御し、
前記制御手段は、前記把持手段に前記対象物を把持させずに、当該対象物を前記所定姿勢とした把持状態と同一の形態の非把持状態となるように前記把持手段を制御し、当該非把持状態における前記把持手段の画像を、前記所定姿勢についての非把持状態画像として撮像するように前記撮像手段を制御し、
前記画像生成手段は、前記把持状態画像と、前記非把持状態画像との差分に基づいて、前記所定姿勢について前記把持手段を除いた前記対象物の画像を生成する
ことを特徴とする画像生成装置。
【請求項２】
前記把持手段は複数の指を備えたハンドを有し、前記形態は当該把持手段の位置、姿勢及び前記指の開き具合を含むことを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記制御手段は、前記対象物の複数の姿勢のそれぞれを前記所定姿勢として、前記把持状態画像と前記非把持状態画像とを撮像するように、前記把持手段及び前記撮像手段を制御することを特徴とする請求項１に記載の画像生成装置。
【請求項４】
前記制御手段は、前記対象物の姿勢が連続的に変化するように当該対象物を把持した前記把持手段を制御し、
前記制御手段は、所定の時間間隔で前記対象物及び前記把持手段の画像を撮像することで、当該撮像された画像のそれぞれを、前記複数の姿勢のうちの１つを前記所定姿勢とする前記把持状態画像として撮像するように前記撮像手段を制御することを特徴とする請求項３に記載の画像生成装置。
【請求項５】
環境光条件の変化を検知する検知手段をさらに備え、
前記画像生成手段は、前記検知手段により前記環境光条件の変化が検知された際に、前記対象物の画像を生成し、複数の異なる環境光条件で前記対象物の画像を生成することを特徴とする請求項１乃至４の何れか１項に記載の画像生成装置。
【請求項６】
前記検知手段は、前記撮像手段の撮像範囲内に配置された構造物を、前記撮像手段が複数の時点で撮像した画像に基づいて、環境光条件の変化を検知することを特徴とする請求項５に記載の画像生成装置。
【請求項７】
前記把持手段による把持可能範囲内に、前記対象物を既知姿勢で保持しておく保持手段をさらに備え、
前記把持手段は、前記保持手段により保持された前記対象物を把持することを特徴とする請求項１乃至６の何れか１項に記載の画像生成装置。
【請求項８】
前記制御手段は、前記対象物の特定の姿勢に対して所定の姿勢変動を与えるように前記把持手段を制御し、
前記所定姿勢は、前記特定の姿勢に対して前記所定の姿勢変動がなされた姿勢の１つであることを特徴とする請求項１乃至７の何れか１項に記載の画像生成装置。
【請求項９】
前記把持状態画像と前記非把持状態画像とに基づいてマスクパターンを生成するマスクパターン生成手段と、
前記把持状態画像を前記マスクパターンに基づいてマスク処理するマスク処理手段と、
をさらに備えることを特徴とする請求項１乃至８の何れか１項に記載の画像生成装置。
【請求項１０】
前記制御手段は、前記把持手段に、複数の把持位置のそれぞれで前記対象物を把持させるように前記把持手段を制御して、当該複数の把持位置のそれぞれに対して前記所定姿勢についての把持状態画像と非把持状態画像とを撮像するように前記撮像手段を制御し、
前記画像生成手段は、前記複数の把持位置のそれぞれに対する前記把持状態画像と前記非把持状態画像との差分を合成して、前記所定姿勢について前記把持手段を除いた前記対象物の画像を生成する請求項１乃至９の何れか１項に記載の画像生成装置。
【請求項１１】
対象物を把持する把持手段と、前記対象物と前記把持手段との少なくとも１つの画像を撮像する撮像手段と、前記把持手段及び前記撮像手段を制御する制御手段と、前記対象物の画像を生成する画像生成手段とを備える画像生成装置における画像生成方法であって、
前記制御手段が、前記把持手段に前記対象物を把持させて当該対象物を所定姿勢とした把持状態となるように前記把持手段を制御し、当該把持状態における前記対象物及び前記把持手段の画像を、前記所定姿勢についての把持状態画像として撮像するように前記撮像手段を制御する第１の制御工程と、
前記制御手段が、前記把持手段に前記対象物を把持させずに、当該対象物を前記所定姿勢とした把持状態と同一の形態の非把持状態となるように前記把持手段を制御し、当該非把持状態における前記把持手段の画像を、前記所定姿勢についての非把持状態画像として撮像するように前記撮像手段を制御する第２の制御工程と、
前記画像生成手段が、前記把持状態画像と、前記非把持状態画像との差分に基づいて、前記所定姿勢について前記把持手段を除いた前記対象物の画像を生成する画像生成工程と、
を備えることを特徴とする画像生成方法。
【請求項１２】
請求項１１に記載の画像生成方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成装置、画像生成方法、およびプログラムに関し、特に、対象物の姿勢別の画像を生成する画像生成装置、画像生成方法、およびプログラムに関する。
【背景技術】
【０００２】
生産現場では、対象物を把持するハンド機構を備えたロボット・アームが、製品の組み立てや部品の搬送等に利用されている。このようなロボット・アームを制御するロボット・システムの「目」として、近年、カメラ等の撮像装置が導入されている。この撮像装置で撮像された画像は、例えばパターン認識処理を行い、ハンドで把持すべき対象部品の位置を特定するため、または、対象部品に欠陥が無いかどうかを調べる外観検査を行うためも用いられている。
【０００３】
従来、このようなロボット・システムで取り扱われる部品は、予め整列パレット上に複数個を規則的に配置されて取り扱われることが多かった。このように整列させた状態としておけば、姿勢は一定であることが保証できるため、比較的簡単なパターン認識処理で各部品の位置のみを特定すれば、把持を行うことができるというメリットがあった。しかしながら、予め整列パレット上に並べるためには、人手による作業、若しくは整列のための専用機械等が必要となり、コストアップ要因となる。
【０００４】
そこで、対象部品を多数、トレイ上にただ積み上げただけの「山積み状態」から、雑多な姿勢を取っている各部品を、自由度の高いアームに取り付けられたハンド機構を用いて、そのまま把持させたいという要求が高まっている。このような制御を行うためには、山積み状態トレイをセンシングして、対象部品の位置だけでなく姿勢（方向）を極力正確に推定する必要がある。
【０００５】
また近年、開発が進められているエンタテイメント用途、家事補助用途、或いは介護用途等の家庭用ロボットにおいては、日常空間に存在する様々な物体を対象物として識別し、場合によってはハンドにより把持する必要がある。このためには、上述の生産用ロボット・システムの場合と同様、対象物の位置のみならず姿勢（方向）を知ることが重要となる。
【０００６】
撮像された画像から対象物の姿勢を推定するには、一般的に、パターン検出処理に対象物姿勢を学習させるための教示データが必要となる。この教示データとしては、例えば対象物を球状に包み込んだあらゆる視点方向から見た場合の、いくつかの代表的な姿勢（撮像装置に対する相対姿勢であって、以下、「代表姿勢」と称する）を撮像した姿勢別対象物画像を用いる。
【０００７】
正確な代表姿勢を再現するため、教示データとして用いる対象物画像の生成には、予め専用の教示データ生成装置を用いて生成しておく場合が多い。
【０００８】
しかしながら教示データ生成装置は、スペース等の都合やコスト面から複数の装置で共有されるため、上述のロボット・システムが使用される現場とは別の場所に設置される場合が多い。これにより、照明や撮像装置等の撮像条件を、現場のロボット・システムで用いられる条件と一致させることが極めて困難となる。すなわち、姿勢が同一のはずの対象物の教示データと、現場で撮像した画像データの一致度が低下し、姿勢推定精度が低下してしまうという問題がある。また、専用の教示データ生成装置の導入はコストアップ要因ともなっている。
【０００９】
そこで、専用の教示データ生成装置を用いずに、現場で用いられるロボット・システムそのものを用いて、教示データを生成する方法がいくつか提案されている。
【００１０】
例えば、特許文献１では、３次元データを取得して出力する視覚センサにより、ハンドに把持させた対象物の３次元データを取得し、形状に関するハンド付き特徴を抽出する。
【００１１】
そして予め作成して保存してあるハンドモデルとハンドの位置・姿勢から、ハンド付き特徴の内のハンドに相当する部分を除去して、ハンド無し特徴を出力する。これを物体モデルとして登録、若しくは既に登録されている同対象物の物体モデルがあれば重ね合わせて更新する。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００５−１０２２号公報
【特許文献２】特開平９−２３７３４０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上述の先行技術のように、ハンド機構に把持させた対象物の姿勢を変化させて撮像することにより姿勢推定のための教示データを得る場合、撮像した画像内には対象物だけでなくハンド機構（の少なくとも一部）が入り込んでしまうという問題点がある。これをそのまま学習用画像として用いると、本来不要なハンド機構の画像特徴を合わせて学習してしまうことになり、トレイ上の対象物のみの画像からは正確な姿勢推定が困難となる。
【００１４】
また、上述の通り、このような方法の利点の一つは、実際に使われる環境と同一の撮像条件（環境光、撮像装置）で教示データを生成できることである。しかしながら、特に環境光に関しては常に一定条件であるとは限らず、１日のうち変化する場合も有り得え、このときの姿勢推定精度が劣化する。
【００１５】
上述の特許文献１においては、ハンド部分に相当する特徴の除去を行っているものの、３次元データを取得可能な視覚センサを用いる必要がある。また、予めハンドモデルを保持して、取得された３次元データから得られる特徴をハンド座標系へ変換したりする等の煩雑な計算が必要となるという課題がある。さらに、環境光の変化に対する対策も取られていないという課題もある。
【００１６】
上記の課題の１つに鑑み、本発明は、ハンド機構に把持させた対象物の姿勢を変化させて撮像した二次元画像から、簡便な処理にて、ハンドその他の不要部分を除去した、対象物のみを含む画像データを生成することを目的とする。
【課題を解決するための手段】
【００１７】
上記の目的を達成する本発明に係る画像生成装置は、
対象物を把持する把持手段と、
前記対象物と前記把持手段との少なくとも１つの画像を撮像する撮像手段と、
前記把持手段及び前記撮像手段を制御する制御手段と、
前記対象物の画像を生成する画像生成手段とを備え、
前記制御手段は、前記把持手段に前記対象物を把持させて当該対象物を所定姿勢とした把持状態となるように前記把持手段を制御し、当該把持状態における前記対象物及び前記把持手段の画像を、前記所定姿勢についての把持状態画像として撮像するように前記撮像手段を制御し、
前記制御手段は、前記把持手段に前記対象物を把持させずに、当該対象物を前記所定姿勢とした把持状態と同一の形態の非把持状態となるように前記把持手段を制御し、当該非把持状態における前記把持手段の画像を、前記所定姿勢についての非把持状態画像として撮像するように前記撮像手段を制御し、
前記画像生成手段は、前記把持状態画像と、前記非把持状態画像との差分に基づいて、前記所定姿勢について前記把持手段を除いた前記対象物の画像を生成する
ことを特徴とする。
【発明の効果】
【００１８】
本発明によれば、ハンド機構に把持させた対象物の姿勢を変化させて撮像した二次元画像から、簡便な処理にて、ハンドその他の不要部分を除去した、対象物のみを含む画像データを生成することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】対象物把持システムの一例を示す図。
【図２】対象物把持システムにおけるコントローラの構成の一例を示す図。
【図３】測地ドームを説明する図。
【図４】対象物の代表姿勢の例を示す図。
【図５】姿勢別の対象物画像の生成処理の一例を説明する図。
【図６】姿勢別の対象物画像の生成処理の流れを示すフローチャート。
【図７】ロボット・システムにおけるオンライン状態の処理の流れを示すフローチャート。
【図８】部品モデルに基づくマスク処理を説明する図。
【図９】環境光条件測定部を備える対象物把持システムの別の例を示す図。
【図１０】（ａ）および（ｂ）環境光条件測定部による環境光条件の変化の検知処理を説明する図。
【図１１】微少な姿勢変動を加えた複数の対象物画像の生成処理の流れを示すフローチャート。
【図１２】各代表姿勢を再現するための制御値を示すテーブル。
【図１３】（ａ）不揮発性大容量メモリに記憶された把持状態画像のメモリイメージ、（ｂ）代表姿勢Ｉｎｄｅｘと対応付けて不揮発性大容量メモリに記憶された非把持状態画像のメモリイメージ。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について添付の図面を参照して説明する。
【００２１】
＜第１実施形態＞
図１を参照して、本実施形態におけるロボット・システム（対象物把持システム）の構成を説明する。
【００２２】
ロボット・システムは、ロボット・アーム１１と、撮像装置１３と、コントローラ１４とを備える。ロボット・アーム１１は、６軸自由度のアームであり、エンドエフェクタとして二指ハンド機構（以下、「ハンド１２」と称する）を備える。図１では、ハンド１２は、把持対象物である部品１６の一つを把持している様子を示している。把持する前の多数の部品１６は、部品トレイ１５に山積み状態で積載されている。
【００２３】
撮像装置１３は、例えばカメラである。本実施形態では、カメラ１３は不図示のシステム内のフレーム上部若しくは天井等に固定的に取り付けられており、少なくとも部品トレイの全域を撮像して画像データを生成することが可能である。コントローラ１４は、ロボット・アーム１１、ハンド１２、及びカメラ１３を制御して、各種動作を制御する。ここでコントローラ１４は、一般的にコンピュータから構成されるが、本実施形態はその構成を限定するものではない。部品トレイ１５は、多数の部品１６を積載している。
【００２４】
サンプル設置台１７は、サンプル部品１８を設置する台であり、すなわち既知姿勢対象物保持手段として機能する。サンプル部品１８は、学習画像生成用として専用に用意された部品１６の同等品である。サンプル設置台１７には、サンプル部品１８を所定姿勢で正確に置けるように、マーカが印されている。サンプル部品１８のサンプル設置台１７への設置を容易にするために、必要に応じて溝を切る等の措置を施してもよい。すなわち、当該サンプル設置台１７上に置かれたサンプル部品１８は、ロボット・システムにおいて既知姿勢である。上面図１９は、サンプル設置台１７にサンプル部品１８を設置した状態を上方から観察した様子を示す。
【００２５】
なお、サンプル設置台１７は、必ずしも撮像装置１３の撮像範囲内に設置される必要は無く、ロボット・システムの定常的な使用状態（以下、「オンライン状態」と称する）で邪魔にならず、かつ設置されたサンプル部品１８の把持可能部分がハンド１２による把持可能範囲内に配置されていればよい。そして、当該配置された場所を予めコントローラ１４に正確に入力しておくことにより、ロボット・システムは、必要に応じて既知姿勢のサンプル部品１８を把持することが可能となる。
【００２６】
図２は、コントローラ１４の概略構成の一例を示すブロック図である。バス２００には、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、画像処理回路２０４、不揮発性大容量メモリ２０５、撮像制御部（Ｉ／Ｆ）２０６、画像入力部（Ｉ／Ｆ）２０７、およびロボット制御部（Ｉ／Ｆ）２０８、の各部が接続されている。ＲＯＭ２０２には、ＣＰＵ２０１のブートプログラムや定数パラメータ等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の作業領域や、撮像装置１３により撮像された画像や他の画像を処理することにより生成された画像を一時的に記憶する保存領域として用いられる。
【００２７】
画像処理回路２０４は、後述する学習画像生成処理や、山積みトレイを撮像した画像から対象物の位置と姿勢を推定する姿勢パターン検出処理、および、それらに必要な前処理の少なくとも一部を処理する専用ハードウェア回路である。尚、システムにおいて特に画像処理回路部２０４を備えずＣＰＵ２０１で動作させるプログラムにより全ての画像処理を行う構成とすることも可能である。このようにすると、通常は、コストは低減できるが処理速度は遅くなる。
【００２８】
不揮発性大容量メモリ２０５は、例えばＨＤＤ装置であり、ＣＰＵ２０１で動作させるプログラムや、システムのパラメータ、および後述するように、生成した対象物画像を記憶する。
【００２９】
撮像制御部２０６は、撮像装置１３に接続して撮像タイミングの通知等の撮像制御を行う専用Ｉ／Ｆを備える。
【００３０】
画像入力部２０７は、コントローラ１４の出力部（不図示）に接続され、撮像した画像データをコントローラ内に取り込む。
【００３１】
ロボット制御部２０８は、ロボット・アーム１１及び二指ハンド機構１２に接続され、所望の動作制御を行うためのＩ／Ｆを備える。
【００３２】
次に、本ロボット・システムを用いて生成する、姿勢パターン検出処理のための学習画像として用いることのできる対象物画像について説明する。ハンド１２によりトレイ１５に山積み状態となっている対象部品１６のうちの一つを選択して把持するためには、当該部品１６の３次元空間中における位置と姿勢すなわち３軸回転方向（ロール角・ピッチ各・ヨー角）を特定する必要がある。本ロボット・システムにおいては、撮像装置１３で撮像した二次元画像に基づき、撮像装置１３に対する部品の位置と姿勢を推定し、これを最終的にロボット座標系に変換して把持するための制御計算を行う。
【００３３】
すなわち、教示データとしては、部品１６を球状に包み込んだあらゆる方向から撮像した画像を姿勢情報と対応付けて記憶したものを用いる。実際には、連続的に全ての方向から撮像した画像を用意することはできないため、ある程度の粒度でサンプリングした代表姿勢の画像のみを撮像することになる。
【００３４】
図３は、代表姿勢を説明するための図であり、測地ドーム３００と呼ばれる考え方を示している。本実施形態では、測地ドーム３００として正二十面体を基本にしており、この中心位置に部品を配置したときに、正二十面体上の各代表点からみた方向を代表姿勢として定義している。ここで代表点としては、例えば各頂点および各面中心点等を用いることができる。正二十面体においては頂点の数は１６、面の数は２０であるので、計３６の姿勢が定義可能である。
【００３５】
しかしながら、これだけでは把持するのに十分な粒度とは言えない場合が多いため、各面の正三角形を分割して頂点の数を増やしている。例えば、各面の辺を２分割すると各面の１つの正三角形は４つの小正三角形で構成されることになり、面の数は４倍、頂点の数は元の辺の数分３４増える。従って、同様に各頂点＋面中心を代表点とすれば、１３０の代表姿勢を定義することができる。
【００３６】
図４は、いくつかの代表姿勢４０１乃至代表姿勢４０５を取った際の部品１６の様子を示している。山積み状態では、撮像装置１３に対して部品１６はあらゆる方向を向く可能性がある。もちろん部品によっては平らな形状をしている等、取りにくい姿勢も存在するが、このような場合は当該姿勢を学習画像から除外するようにすることもできる。
【００３７】
次に、図５を参照して、各代表姿勢に対応する学習画像の生成処理の概要について説明する。把持状態５０１は、サンプル設置台１７上のサンプル部品１８をハンド１２により把持し、撮像装置１３に対して所定姿勢になるよう移動させた一例を示す。ここでは、図４における代表姿勢４０１を所定姿勢の一例としている。サンプル設置台１７上のサンプル部品１８は、前述の通り既知である。また、コントローラ１４は、不揮発性メモリ２０５内に対象部品の３次元モデルデータを保持している。このモデルデータには、予めハンド１２により把持すべき位置が指定されており、これに基づきサンプル設置台１７上のサンプル部品１８を把持するようにアーム１１とハンド１２とを制御することができる。そして既知姿勢に基づき、アーム１１の各関節軸の回転角度を計算することにより、撮像装置１３に対して所望の姿勢となるようにサンプル部品１８を移動させることができる。
【００３８】
このとき撮像された画像が、画像５０２である。当然、サンプル部品１８を把持したハンド部分も画像中に写りこんでおり、不図示であるがハンド・アーム部以外の背景も写っている。この画像を図４の代表姿勢４０１における把持状態画像と称する。
【００３９】
次に、サンプル部品１８をサンプル設置台１７に戻した上で、再度ハンド１２に、図４の代表姿勢４０１の把持状態画像を撮像したときと全く同じ位置・角度に移動させる。この様子を示したのが把持状態５０３である。このとき、ハンド１２はサンプル部品１８を把持していないが、把持した場合と全く同じ指の開き具合としている。
【００４０】
この状態で撮像した画像が、画像５０４である。これを代表姿勢４０１の非把持状態画像と称する。代表姿勢４０１における把持状態画像５０２と非把持状態画像５０４では、部品の存在する場所以外の領域は、背景だけでなくハンド（および写っていればアーム）の部分もほぼ同じ画像となる。従って、両画像の画素差分を取りその差の絶対値が所定の閾値以上の画素のみを残す画素マスクを生成し、把持状態画像５０２にこのマスクをかけると、ハンド１２を除去したサンプル部品１８のみで構成される対象物画像を得ることが可能である。ここで画素マスクの各画素位置（ｘ，ｙ）に対応する値ｍｘｙは、式（１）のように表すことができる。
【００４１】
【数１】
0005743499.tif 000002
【００４２】
として表すことができる。ただし、ｄｘｙは式（２）により決定される。
【００４３】
【数２】
0005743499.tif 000003
【００４４】
ここで、Iｈ_ｘｙは、把持状態画像５０２の各画素位置（ｘ，ｙ）における輝度値であり、Iｅ_ｘｙは非把持状態画像５０４における輝度値である。また、 Ｔｍ は所定の閾値を表す。
【００４５】
このように生成された代表姿勢４０１における対象物の画像が、対象物画像５０５として示される。対象物画像５０５の各画素値Ｉｏ_ｘｙは、式（３）のように表される。
【００４６】
【数３】
0005743499.tif 000004
【００４７】
このように、姿勢ごとに異なったハンド入りの非把持状態画像を差分取得のためのベース画像として用いることにより、背景のみならずハンド部分を除去して部品のみで構成される学習画像を生成することができる。
【００４８】
本システムにおいては、このような不要画素の除去処理を、図２のＣＰＵ２０１の制御下で、画像処理回路部２０４を用いることにより、高速に演算処理している。処理した結果得られる画像は、ＲＡＭ２０３に一旦保持され、必要に応じて大容量メモリ２０５に保存される。
【００４９】
なお、このようにして得られた学習画像では、撮像装置１３から観察してハンド１２の指先により隠されているサンプル部品１８の一部領域は、対象物画像５０５に示すように欠落した状態となっている。このような欠落部分は、代表姿勢や部品形状によっては、学習画像として用いるのに適さないくらいに大きくなる場合も有りうる。このような場合は、部品１８の他の部分を把持して、同じ代表姿勢を取らせるようにアーム１１を駆動して同様に学習画像を生成すればよい。もちろん、同じ代表姿勢に対し、異なった複数の部分を把持して複数の画像を生成し、これらを合成して欠落部分を補った１枚の学習画像を生成するようにすることも可能である。サンプル部品１８はサンプル設置台１７上に既知姿勢で置かれているため、部品モデルに基づき計算して所望の部分を把持することが可能である。また、異なった部分を把持しても撮像装置１３に対して部品１８が同一の位置・姿勢となるように移動させることが可能であるので、これら把持位置の異なる同姿勢の複数の画像の合成は、単に画素の排他的ＯＲを取るだけでよく、極めて簡便な処理で実現が可能である。この画素単位での排他的ＯＲ処理も、画像処理回路２０４を用いて行われる。
【００５０】
図６は、姿勢別対象物画像取得のための基本的な処理の流れを示すフローチャートである。処理は、処理ブロック６１、処理ブロック６２、処理ブロック６３から構成される。処理ブロック６１は、各代表姿勢に対応する把持状態画像取得処理を示している。まず、ステップＳ６０１において、ハンド１２は、サンプル対象部品１８を把持する。サンプル対象部品１８は前述の通り、サンプル設置台１７に既知の姿勢で置かれている。従って、サンプル部品１８の把持指定部分を把持すべく、コントローラ１４によりロボット・アーム１１の各軸の駆動角度を計算することができ、この制御を行うことにより、ハンド１２にサンプル部品１８を把持させることができる。
【００５１】
次に、ステップＳ６０２において、コントローラ１４は、いくつかの代表姿勢のうちの一つを選択する。本実施形態では、先に説明した正二十面体の各面を４分割した測地ドーム３００により、１３０個の代表姿勢を設定しているものとする。すなわち、各々の代表姿勢には、０から１２９までのＩｎｄｅｘ番号が付けられている。ここでは、代表姿勢Ｉｎｄｅｘを０から順に１つずつ選択する。
【００５２】
各代表姿勢を再現するための制御値は、不揮発性メモリ２０５内に、図１２に示す形式のテーブルとして保持されている。テーブルにおいて、第１列目は、代表姿勢Ｉｎｄｅｘである（実際のメモリイメージ上では連続的に格納するので省略可能である）。第２列目から第７列目までは、ロボット・アームの各軸の回転駆動量を示している。一方、第１行目は、部品１６の基準姿勢を撮像装置１３の撮像光軸上における所定位置に再現するための、各軸の絶対回転駆動量を示している。第２行目以降の各行は、他の基準姿勢から代表姿勢へ変化させるための各軸の相対回転駆動量を示している。ここで基準姿勢とは、サンプル設置台１７に設置された状態の姿勢をそのまま撮像光軸上の所定位置に並行移動したものとしている。これらの回転駆動量は、１３０視点とロボット・アーム系および対象部品のモデルに基づき、予め計算されている。
【００５３】
ステップＳ６０３において、コントローラ１４は、ハンド１２により把持されたサンプル対象部品１８が、ステップＳ６０２で選択された代表姿勢になるように、図１２の表に基づき、ロボット・アーム１１の各軸を回転駆動する制御を行う。
【００５４】
ステップＳ６０４において、撮像装置１３は、ステップＳ６０２で選択された代表姿勢となったサンプル対象部品１８を、ハンド１２が含まれた状態で撮像して、把持状態画像として取得する。取得された把持状態画像は、選択されている代表姿勢のＩｎｄｅｘと関連付けて、ＲＡＭ２０３若しくは不揮発性大容量メモリ２０５に記憶される。ここで、図１３(ａ)は大容量メモリ２０５に保持された把持状態画像のメモリイメージを示している。各々の代表姿勢Ｉｎｄｅｘに対応する画像データが、輝度値のビットマップ形式で保持されている。なお、代表姿勢Ｉｎｄｅｘに対応する画像データを、Ｉｎｄｅｘの順に格納するものとすれば、Ｉｎｄｅｘ値そのものは保持しなくてもよい。また、画像データは圧縮形式であってもよい。
【００５５】
ステップＳ６０５において、コントローラ１４は、１３０個の代表姿勢の全てに対する処理が完了したか否かを判定する。全てに対する処理が完了したと判定された場合（ステップＳ６０５；ＹＥＳ）、ステップＳ６０６へ進む。一方、全てに対する処理が完了していないと判定された場合（ステップＳ６０５；ＮＯ）、ステップＳ６０２へ戻る。
【００５６】
ステップＳ６０６において、コントローラ１４は、アーム１１およびハンド１２を制御して、ハンド１２により把持されているサンプル対象部品１８を、サンプル設置台１７に戻す。以上で処理ブロック６１における処理が終了する。
【００５７】
次に、処理ブロック６２は、非把持状態画像取得処理を示している。
【００５８】
まず、ステップＳ６０７において、コントローラ１４は、ハンド１２を、対象部品を把持せずに、把持していた際と同じ状態とする。具体的には、本実施形態においては、ハンド１２の二指の開き具合を、サンプル対象部品１８を把持した際と同じ状態にする。
【００５９】
次に、ステップＳ６０８において、コントローラ１４は、１３０個の代表姿勢のうちの一つを選択する。この処理はステップＳ６０２と同様である。
【００６０】
ステップＳ６０９において、コントローラ１４は、ステップＳ６０３と同様に、図１２のテーブルの制御値に基づき、非把持状態のハンド１２を移動させる制御を行う。
【００６１】
そしてステップＳ６１０において、撮像装置１３は、ハンド１２のみの非把持状態画像を撮像して、ステップＳ６０８で選択された代表姿勢と関連付けて、不揮発性大容量メモリ２０５に当該非把持状態画像を記憶する。図１３（ｂ）は、不揮発性大容量メモリ２０５に、代表姿勢Ｉｎｄｅｘと対応付けて記憶された非把持状態画像のメモリイメージを示している。図１３（ａ）と同様、本実施形態では、輝度値ビットマップ形式で当該非把持状態画像を保持している。
【００６２】
ステップＳ６１１において、ステップＳ６０５と同様に、コントローラ１４は、１３０個の代表姿勢の全てに対する処理が完了したか否かを判定する。全てに対する処理が完了したと判定された場合（ステップＳ６１１；ＹＥＳ）、ステップＳ６１２へ進む。一方、全てに対する処理が完了していないと判定された場合（ステップＳ６１１；ＮＯ）、ステップＳ６０８へ戻る。以上で処理ブロック６２における処理が終了する。
【００６３】
そして、処理ブロック６３は、各代表姿勢に対応する姿勢別対象物画像生成処理を示している。
【００６４】
ステップＳ６１２において、コントローラ１４は、ステップＳ６０２およびステップＳ６０８と同様に、１３０個の代表姿勢のうちの１つを選択する。
【００６５】
ステップＳ６１３において、コントローラ１４は、ステップＳ６１２で選択された代表姿勢と関連付けて記憶されている把持状態画像と、非把持状態画像とを読み出す。すなわち、図１３（ａ）、（ｂ）のそれぞれから、選択された代表姿勢Ｉｎｄｅｘに対応する画像ビットマップデータを読み出す。
【００６６】
そして、ステップＳ６１４において、コントローラ１４は、式（１）に相当する演算を行い、両画像の画素ごとに差分を取って差分マスクを生成する。この差分マスクは、先に述べた通り、差分値が所定値以上となる画素のみを残し、他の部分を除外するためのマスクである。
【００６７】
ステップＳ６１５において、コントローラ１４は、式（２）に相当する演算処理を行い、把持状態画像に差分マスクをかけることにより、対象物そのものが存在する画素以外の画素を除去する処理を行う。
【００６８】
ステップＳ６１６において、コントローラ１４は、選択された代表姿勢に対応する対象物画像を、不揮発性大容量メモリ２０５に保存する。
【００６９】
ステップＳ６１７において、ステップＳ６０５およびステップＳ６１１と同様に、コントローラ１４は、１３０個の代表姿勢の全てに対する処理が完了したか否かを判定する。全てに対する処理が完了したと判定された場合（ステップＳ６１７；ＹＥＳ）、処理を終了する。一方、全てに対する処理が完了していないと判定された場合（ステップＳ６１７；ＮＯ）、ステップＳ６１２へ戻る。以上で処理ブロック６３における処理が終了する。
【００７０】
このようにして得られた代表姿勢ごとの対象物画像を学習画像として用いることにより、例えば特許文献２に開示されるパラメトリック固有空間法のような学習アルゴリズムを用いて、姿勢パターン検出器を学習させることができる。これにより、姿勢パターン検出器は、入力された画像内の部品の位置を特定すると同時に、いずれの代表姿勢に似ているかを推定することが可能となる。
【００７１】
なお、図６では、１３０個の代表姿勢を３回ずつ選択するループ構造での処理を説明したが、もちろん他のループ構造で同等の処理を行うことも可能である。例えば１３０個の代表姿勢を全て１回ずつ選択するループ構造とし、１つのループの中で、把持状態画像取得処理、非把持状態画像取得処理、および代表姿勢に対応する対象物画像生成処理を行うようにしてもよい。
【００７２】
また、本実施形態においては、サンプル対象部品１８をサンプル設置台１７において既知姿勢とすることにより把持可能としたが、他の方法を用いてハンド１２に把持させるようにすることもできる。例えば、人間の手により手渡しをしたり、コントローラ１４に対するユーザＩ／Ｆを用いて手動でアーム１１およびハンド１２を操作することにより、サンプル対象部品１８の所望の位置を把持させるようにしたりすることも可能である。
【００７３】
さらに、非把持状態画像は、把持状態画像と合わせて撮像する必要はなく、予め撮像して不揮発性大容量メモリ２０５に記憶しておく構成としてもよい。このとき対象部品の種類に応じて、ハンド１２を複数の非把持状態としたそれぞれについての非把持状態画像を記憶しておけば、複数種類の対象部品にも対応することが可能となる。
【００７４】
さらに、非把持状態画像を撮像するのではなく、ハンド１２およびアーム１１の形状モデルを使用して、ＣＧ合成により非把持状態画像を生成する仕組みとしてもよい。ＣＧ合成された画像は実際に撮像された画像とは異なる可能性はあるが、差分マスクの生成に用いられるだけである。対象物画像として残される部分は実際に撮像された把持状態画像から得られるものであるため、比較的以後の学習に対する影響は少ない。
【００７５】
また、本実施形態では撮像された把持状態画像と非把持状態画像とをそのまま用いて差分処理する例を示したが、各々の画像に対し、エッジ抽出等の何らかの前処理を行った特徴量抽出画像に対して同様の処理を行うようにしてもよい。
【００７６】
この前処理は、例えば、取得された対象物画像を学習画像として用いる姿勢パターン検出処理において行われる前処理と同等の処理であってもよい。または、一旦姿勢別の対象物画像を取得した後に、当該対象物画像に特徴量抽出処理を行って、特徴量画像として対象物画像を大容量記憶メモリ２０５に記憶するようにしてもよい。
【００７７】
また、本実施形態では所定姿勢として１３０個の代表姿勢を図１２に示す制御値テーブルで個々に回転駆動量として定義する例を示したが、所定姿勢の定義方法はこの方法に限定されるものではない。例えば、測地ドーム３００上の色々な姿勢を満遍なく取るように連続的に変化させるように制御し、所定間隔で撮像を行ってもよい。そして撮像時のロボット・アーム１１の各関節軸の角度情報値を、例えば各軸に取り付けられたパルスエンコーダから読み出し、Ｉｎｄｅｘに変えて姿勢情報として用いてもよい。
【００７８】
あるいは、Ｉｎｄｅｘやエンコーダ値によって一致する把持状態画像と非把持状態画像とを検索するのではなく、画像のマッチング処理を行って一致する画像を探してもよい。このとき姿勢が一致する把持状態画像と非把持状態画像とは、少なくともハンド部分の画素は一致しているため、姿勢が一致しない場合よりも相対的に一致度は高くなる。つまり、各ハンド部分を構成する画素値そのものを、姿勢を表す情報として利用することが可能である。もちろん、これをＩｎｄｅｘやエンコーダ値と併用してもよく、ロボットの姿勢再現誤差が大きい場合には補正するための補助情報として用いることもできる。
【００７９】
図７を参照して、このようにして取得された姿勢別の対象物画像を学習画像として用いて姿勢パターン検出器を学習させた後の、本実施形態における部品のピッキング処理について説明する。これはロボット・システムの定常的な使用状態であり、オンライン状態と称する。
【００８０】
まずステップＳ７０１において、撮像装置１３は、対象部品１６が山積み状態となっている部品トレイ１５を撮像する。
【００８１】
次にステップＳ７０２において、コントローラ１４は、学習済みの姿勢パターン検出器を用いて、対象部品１６が山積み状態である部品トレイ１５の画像中の個別の対象部品の位置・姿勢を推定する。ここで、相対的に部品トレイ１５の下方に存在する部品は、上方の部品に一部あるいは全部が隠されているため、正確な位置・姿勢が推定できないが、通常ハンド１２でピックアップする部品は部品トレイ１５の上方のものであるため、特に問題は無い。また、本実施形態において、画像奥行き方向の位置は、検出された画像中の部品の大きさに基づいて推定される。姿勢パターン検出器に入力する撮像画像を、予め複数の倍率に変換しておくことにより、何れの変倍画像（以下、「ピラミッド画像」とも称する）から対象部品１６が検出されたかに基づき、当該対象部品１６の画像中における大きさを特定することができる。
【００８２】
ステップＳ７０３において、コントローラ１４は、位置・姿勢が推定できた対象部品１６のうち、信頼度の高い部品を１つ選択する。ここで、信頼度の高い部品が複数検出された場合は、把持に適したものを選ぶようにすればよい。
【００８３】
ステップＳ７０４において、コントローラ１４は、ステップＳ７０３で選択された部品を把持するためにロボット・アーム１１の各軸における駆動角度を計算し、ハンド１２に当該部品を把持させる制御を行う。
【００８４】
ステップＳ７０５において、コントローラ１４は、ステップＳ７０４で把持された部品を移動し、所望の処理を行う。所望の処理とは、例えば部品パレットに所定姿勢で順序良く並べる処理であったり、他の部品へ組み付ける処理であったり、または他のカメラや他のセンサの近くに部品を運び欠陥を検査する処理等である。ロボット・システムの要求事項に応じて自由に所望の処理の設定が可能である。
【００８５】
そして、ステップＳ７０６において、コントローラ１４は、位置・姿勢が所定の信頼度以上で推定できた全ての部品に対して、処理が完了したか否かを判定する。全ての部品に対して処理が完了していると判定された場合（ステップＳ７０６；ＹＥＳ）、ステップＳ７０７へ進む。一方、全ての部品に対して処理が完了していないと判定された場合（ステップＳ７０６；ＮＯ）、ステップＳ７０３へ戻る。ステップＳ７０７において、コントローラ１４は、部品トレイ１５上の全ての対象部品１６に対する処理が完了したか否かを判定する。この処理は、例えば空状態の部品トレイ１５を予め撮像しておき、当該画像と、ステップＳ７０１で撮像された山積み状態の部品トレイ１５の画像と、の差分を取ることにより行うことができる。あるいは、部品トレイ１５の下方に重量センサを配置し、部品トレイ１５のみの重量となったことを検知したら部品トレイ１５が空であると判定するようにしても良い。全ての対象部品１６に対する処理が完了したと判定された場合（ステップＳ７０７；ＹＥＳ）、処理を終了する。一方、全ての対象部品１６に対する処理が完了していないと判定された場合（ステップＳ７０７；ＮＯ）、ステップＳ７０１へ戻る。
【００８６】
以上、本実施形態のロボット・システムによれば、簡便な二次元画像の差分処理のみで、各姿勢に応じた不要部分を除去した対象物画像を生成することができる。
【００８７】
＜第２実施形態＞
把持状態画像と非把持状態画像との差分のみにより生成した対象物画像には、影やノイズ等の影響で部品以外の部分が残ってしまう場合がある。本実施形態では、これに対処するために、対象部品モデルに基づく姿勢別形状マスクを利用する構成について説明する。図８を参照して、対象物画像に対するマスク処理の一例を説明する。マスクパターン８０１は、対象部品１６の三次元モデルを撮像装置１３のモデルに当て嵌めて計算した、代表姿勢４０１の見え方をする部品の外形輪郭に基づいて生成されたマスクパターンである。
【００８８】
マスクパターン８０１において、白地の部分は画素を残す領域、黒地の部分は画素を除去する領域である。例えば、不揮発性大容量メモリ２０５は、姿勢別形状マスク保持手段としても機能し、予め計算しておいたマスクパターン８０１を姿勢と関連付けて記憶しておく。
【００８９】
画像８０２は、図５で説明した把持状態画像と非把持状態画像とから生成された代表姿勢４０１に対する対象物画像５０５に対して、マスクパターン８０１をマッチングさせる様子を示している。影８０３は、対象物画像５０５内に残ってしまった影の部分を示す。
【００９０】
ここでは、マスクパターン８０１を用いて、対象部品１６の輪郭線に相当する線によりマッチングを行っている。画像８０２における対象物画像は、影８０３の影響が残っているが、ハンド部分や他の背景部分は概ね除去された画像である。そのため、図５の把持状態画像５０５に対して直接マッチングを行うよりも、より容易にマスクパターン８０１と一致させることができる。また、対象部品１６のモデルから生成されたマスクパターン８０１と一致させることにより、対象部品１６の位置姿勢をより正確に特定した対象物画像８０４を切り出すことが可能となる。
【００９１】
なお、本実施形態ではマスクと輪郭線によるマッチングの例を示したが、画像の部品部分を構成する、例えばエッジ等の画像特徴量を用いて、より正確に位置姿勢を合わせてもよい。この場合は、モデルから生成されたマッチング用部品特徴量画像を用いて位置姿勢を特定した後に、マスクパターン８０１による切り出し処理を行う。
【００９２】
或いは、所定の対象物画像生成時には、ハンド１２により把持された対象部品１６を撮像装置１３に対して既知の位置に移動させていることを利用して、マッチングを行わずに画像中で対象部品１６が存在するはずの位置へ直接マスクを掛けるようにしてもよい。もしくは、この位置をマッチング処理開始時の初期値として探索範囲を限定するようにしても良い。
【００９３】
本実施形態によれば、マスクのみを行う場合と異なり、予め非把持状態画像との差分によりハンド部分が除去されるため、対象部品のみで構成された画像を得ることができる。
【００９４】
＜第３実施形態＞
ロボット・システム周辺の照明条件すなわち環境光は、常に一定であるとは限らない。直接照射する照明は一定であっても、例えば日光の影響を受ける環境の場合は１日のうちで条件が変わってくるし、天候や季節、周辺に存在する物・人等によっても変わり得る。
【００９５】
このような場合、同じ姿勢の対象物であっても、その見え方にかなりの変化が生ずる場合がある。異なった環境光条件に応じて、それぞれ異なった同一姿勢の対象物画像を用意して学習用画像として用いることにより、より良好な姿勢パターン検出処理が可能となる。本実施形態では、ロボット・システム内に環境光条件測定部を備える例を説明する。
【００９６】
図９は、環境光が変化する環境で稼動している山積み部品把持システムのオンライン状態の一例を示している。図９におけるアーム１１乃至サンプル部品１８は、図１における同符号と同じであるので説明は省略する。
【００９７】
環境光条件測定治具９１は、環境光条件測定手段として機能し、オンライン状態であっても撮像装置１３の視野内に入るように配置されている。
【００９８】
画像９２は、撮像装置１３により撮像された当該オンライン状態の対象部品１６が山積みされている部品トレイ１５を含む画像の一例を示している。この画像９２内には、枠９３で示される位置に環境光測定治具９１が写りこんでいる。環境光測定治具９１は、多面体の立体構造をしており、各面は所定の反射率を持つ拡散反射面となっている。
【００９９】
図１０（ａ）および図１０（ｂ）は、画像９２における環境光条件測定治具部分９３を、異なった２つの時刻で切り出した画像の一例を示している。周辺環境あるいは太陽光の変化により、 図１０（ａ）と図１０（ｂ）とでは見え方が異なっていることが分かる。本実施形態では、これら２つの画像に対し、まずは第１実施形態で説明した対象物画像を生成する場合と同様に、画素差分を取る。そして、式（４）で示されるこの画素差分合計値ｓが閾値以上となった場合に環境光が変化したものと判断し、閾値未満であれば環境光条件は一致しているものと判断する。
【０１００】
【数４】
0005743499.tif 000005
【０１０１】
画素差分合計値sの計算は、対象物画像と同様、画像処理回路部２０４を用いて行われる。本実施形態では、オンライン状態で図７に相当する処理を実行しつつ、環境光条件の変化を判別する処理を行う。この処理は例えば、ステップＳ７０１の処理に先んじて行われる。環境光条件の変化を検知すると一旦オンライン作業を中断し、図６で説明したような、各姿勢に対応する対象物画像の取得処理を行う。図９に示した通り、本ロボット・システムではオンライン状態においてもサンプル設置台１７上に常に既知姿勢のサンプル部品１８が設置されているので、必要に応じてサンプル部品１８を正確に把持することが可能である。環境光の変化に対応して新たに取得し直した対象物画像を用いて学習し直すことにより、良好な姿勢推定を実現できる。
【０１０２】
また、オフライン状態の時に予め環境光条件に合致する姿勢別対象物画像を取得して、姿勢パターン検出処理を学習させておいてもよい。このような場合、オンライン状態では環境光条件を測定してこれに合致する条件で学習したパラメータを読み出して使用するようにする。学習パラメータに関連付ける環境光条件として、例えば図１０に相当する環境光条件測定治具９１の画像そのものを記憶しておけば、上記の変化を検知した場合と同様に、条件が合致するか否かを判別することができる。
【０１０３】
このように、本実施形態の環境光条件測定治具を用いると、対象物画像を生成した際と同様、極めて単純な画素差分に基づく処理で、環境光条件の変化や一致を検知することが可能となる。
【０１０４】
なお、本実施形態において、環境光条件測定治具９１は多面体構造物としたが、もちろんこれに限るものではなく、例えば半球構造物を用いることも可能である。よりセンシティブにするため拡散反射面ではなく鏡面としてもよい。複数の治具を用意し、対象部品に応じて適した反射面を使い分けてもよい。
【０１０５】
また、このような構造物を用いず、環境光条件測定手段として機能する光量センサ等を用いてもよい。
【０１０６】
あるいは、時刻等に応じて環境光の変化が発生することが明らかな場合は、環境光条件測定治具を必ずしも用いる必要はない。この場合は、例えば、予め定められた所定時刻において、姿勢別対象物画像を取得するようにする。
【０１０７】
＜第４実施形態＞
上述の第１実施形態では、測地ドーム３００に基づく１３０個の代表姿勢について説明したが、実際に山積みとなっている部品の姿勢は連続的に変化するため、１３０個の代表姿勢とは一致しない状態の中間姿勢が多数存在する。これらの中間姿勢は、最も近傍の代表姿勢に分類されてもよいが、代表姿勢のみの対象物画像を学習画像に用いるのでは、全ての姿勢を必ずしも良好に推定できるとは限らない。
【０１０８】
そこで本実施形態では、代表姿勢に対する対象物画像として、代表姿勢そのものの画像のみでなく、代表姿勢の近傍で微少に角度変動を加えた複数の姿勢の対象物画像を生成する。各代表姿勢に対応する学習画像として、これら複数の微少変動姿勢対象物画像を用いることにより、よりロバスト性の高い姿勢パターン検出処理が実現できる。
【０１０９】
図１１は、代表姿勢ごとに所定の微少変動を加えた複数の対象物画像を生成する処理を説明するフローチャートである。当該処理は、処理ブロック１１１と、処理ブロック１１２と、処理ブロック１１３とから構成される。
【０１１０】
処理ブロック１１１は、図６で説明した処理ブロック６１に相当し、各代表姿勢に対応する把持状態画像取得処理を示している。但し、ここでは代表姿勢毎に微少な姿勢変動を加えた複数の把持状態画像を取得している。
【０１１１】
ステップＳ１１０１乃至ステップＳ１１０３の各処理は、図６のステップＳ６０１乃至ステップＳ６０３の各処理と同様であるので説明は省略する。
【０１１２】
ステップＳ１１０４において、コントローラ１４は、撮像装置１３に対して選択された代表姿勢を取っている対象部品１６に対し、微少な姿勢変動を与える。具体的には、コントローラ１４は、対象部品１６を把持しているハンド１２の姿勢が微小に変化するように、ロボット・アーム１１の少なくとも一部の軸に対し、例えば１度ずつ等の所定間隔で、±５度等の所定角度範囲を順次変動させる。ここでは、コントローラ１４は、各軸の微少変動の組合せのうちの１つを選択して、ハンド１２を回転させる。
【０１１３】
ステップＳ１１０５において、撮像装置１３は、ステップＳ６０４と同様に把持状態の対象物画像を撮像し、選択されている代表姿勢に加えて、選択されている微少角度変動と関連付けて記憶する。
【０１１４】
ステップＳ１１０６において、コントローラ１４は、所定角度範囲内の全ての各軸の微少変動組合せが選択されたか否かを判定する。全ての各軸の微少変動組合せが選択されたと判定された場合（ステップＳ１１０６；ＹＥＳ）、ステップＳ１１０７へ進む。一方、全ての各軸の微少変動組合せが選択されていないと判定された場合（ステップＳ１１０６；ＮＯ）、ステップＳ１１０４へ戻る。
【０１１５】
ステップＳ１１０７およびステップＳ１１０８の各処理は、それぞれステップＳ６０５およびステップＳ６０６との処理と同様であるため、説明を省略する。以上により、処理ブロック１１１の各処理が終了し、代表姿勢ごとに所定の微少変動を与えた複数の把持状態画像が生成される。
【０１１６】
次に、処理ブロック１１２は、図６で説明した処理ブロック６２に想到し、非把持状態画像取得処理を示している。但し、処理ブロック１１１と同様、ここでは代表姿勢ごとに微少な姿勢変動を加えた複数の非把持状態画像を取得する。
【０１１７】
ステップＳ１１０９およびステップＳ１１１１の各処理は、ステップＳ６０７およびステップＳ６０９の各処理と同様であるため説明は省略する。
【０１１８】
ステップＳ１１１２において、コントローラ１４は、ステップＳ１１０４と同様に、非把持状態のハンド１２に対して微少な姿勢変動を与える。変動角度の間隔と範囲は、ステップＳ１１０４と全く同じであり、コントローラ１４は、ここでは各軸変動の組合せの一つを選択する。
【０１１９】
ステップＳ１１１３において、撮像装置１３は、ステップＳ６１０と同様に非把持状態画像を撮像し、選択されている代表姿勢に加えて、選択されている微少角度変動と関連付けて記憶する。
【０１２０】
ステップＳ１１１４において、ステップＳ１１０６と同様、コントローラ１４は、所定角度範囲内の全ての各軸の微少変動組合せが選択されたか否かを判定する。全ての各軸の微少変動組合せが選択されたと判定された場合（ステップＳ１１１４；ＹＥＳ）、ステップＳ１１１５へ進む。一方、全ての各軸の微少変動組合せが選択されていないと判定された場合（ステップＳ１１１４；ＮＯ）、ステップＳ１１１２へ戻る。
【０１２１】
ステップＳ１１１５の処理は、ステップＳ６１１の処理と同様であるため説明は省略する。以上により、処理ブロック１１２の各処理が終了する。
【０１２２】
処理ブロック１１３は、図６で説明した処理ブロック６３と同様であり、姿勢別対象物画像生成処理を示している。但し、ここでは代表姿勢ごとに微少な姿勢変動を加えた複数の対象物画像を生成する。
【０１２３】
ステップＳ１１１６の処理は、ステップＳ６１２の処理と同様の処理であるため、説明を省略する。
【０１２４】
ステップＳ１１１７において、コントローラ１４は、ステップＳ１１０４およびステップＳ１１１２で選択された変動角度の間隔および範囲と同じ変動角度の間隔および範囲での各軸変動の組合せ一つを選択する。ステップＳ１１１８において、コントローラ１４は、選択されている代表姿勢に加えて、微少変動と対応付けて記憶されている、把持状態画像と非把持状態画像とを読み出す。
【０１２５】
ステップＳ１１１９およびステップＳ１１２０の各処理は、それぞれステップＳ６１４およびステップＳ６１５の各処理と同様であるため、説明を省略する。
【０１２６】
ステップＳ１１２１において、コントローラ１４は、生成された対象物画像を、選択されている代表姿勢の対象物画像の一つとして関連付けて、不揮発性大容量メモリ２０５に保存する。
【０１２７】
ステップＳ１１２２において、コントローラ１４は、ステップＳ１１０６およびステップＳ１１１４と同様に、所定角度範囲内の全ての各軸の微少変動組合せが選択されて対象物画像の生成が完了したか否かを判定する。全ての各軸の微少変動組合せが選択されて対象物画像の生成が完了したと判定された場合（ステップＳ１１２２；ＹＥＳ）、ステップＳ１１２３へ進む。一方、全ての各軸の微少変動組合せが選択されておらず対象物画像の生成が完了していないと判定された場合（ステップＳ１１２２；ＮＯ）、ステップＳ１１１７へ戻る。
【０１２８】
ステップＳ１１２３の処理は、ステップＳ６１７の処理と同様であるため説明を省略する。以上により、処理ブロック１１３の各処理が終了し、図１１のフローチャートに示す処理の全体が終了する。
【０１２９】
以上、本実施形態によれば、各代表姿勢に対して、複数の微少な姿勢変動を加えた対象物画像を生成することができる。これを各代表姿勢の姿勢パターン検出処理のための学習データとして用いることにより、任意姿勢に対する検出性能の向上が見込まれる。
【０１３０】
なお、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。例えば、生産用ロボット・システムに限らず、家庭用ロボット等の種々のロボット・システムに対しても適用可能である。
【０１３１】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005743499.tif 000006
【図２】
0005743499.tif 000007
【図３】
0005743499.tif 000008
【図４】
0005743499.tif 000009
【図５】
0005743499.tif 000010
【図６】
0005743499.tif 000011
【図７】
0005743499.tif 000012
【図８】
0005743499.tif 000013
【図１１】
0005743499.tif 000014
【図１２】
0005743499.tif 000015
【図１３】
0005743499.tif 000016
【図９】
0005743499.tif 000017
【図１０】
0005743499.tif 000018