画像生成装置、画像生成方法、およびプログラム
【課題】把持機構等の不要部分のない対象物のみの姿勢別画像を簡便な画像処理で得る。
【解決手段】対象物の画像を生成する画像生成装置であって、対象物を把持する把持部と、対象物と把持部との少なくとも1つの画像を撮像する撮像部と、把持部により把持された対象物が、撮像部に対して複数の所定姿勢のうちの1つの所定姿勢となるように把持部を制御する制御部と、撮像部により撮像された1つの所定姿勢にある対象物および対象物が1つの所定姿勢となるように制御された把持部の画像と、1つの所定姿勢とを関連付けて、把持状態画像として取得する第1の画像取得部と、対象物を把持しておらず且つ対象物が1つの所定姿勢となるように制御された姿勢と一致する所定姿勢である把持部の画像を非把持状態画像として取得する第2の画像取得部と、把持状態画像と、非把持状態画像との差分に基づいて、1つの所定姿勢について対象物のみの対象物画像を生成する画像生成部と、を備える。
【解決手段】対象物の画像を生成する画像生成装置であって、対象物を把持する把持部と、対象物と把持部との少なくとも1つの画像を撮像する撮像部と、把持部により把持された対象物が、撮像部に対して複数の所定姿勢のうちの1つの所定姿勢となるように把持部を制御する制御部と、撮像部により撮像された1つの所定姿勢にある対象物および対象物が1つの所定姿勢となるように制御された把持部の画像と、1つの所定姿勢とを関連付けて、把持状態画像として取得する第1の画像取得部と、対象物を把持しておらず且つ対象物が1つの所定姿勢となるように制御された姿勢と一致する所定姿勢である把持部の画像を非把持状態画像として取得する第2の画像取得部と、把持状態画像と、非把持状態画像との差分に基づいて、1つの所定姿勢について対象物のみの対象物画像を生成する画像生成部と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像生成装置、画像生成方法、およびプログラムに関し、特に、対象物の姿勢別の画像を生成する画像生成装置、画像生成方法、およびプログラムに関する。
【背景技術】
【0002】
生産現場では、対象物を把持するハンド機構を備えたロボット・アームが、製品の組み立てや部品の搬送等に利用されている。このようなロボット・アームを制御するロボット・システムの「目」として、近年、カメラ等の撮像装置が導入されている。この撮像装置で撮像された画像は、例えばパターン認識処理を行い、ハンドで把持すべき対象部品の位置を特定するため、または、対象部品に欠陥が無いかどうかを調べる外観検査を行うためも用いられている。
【0003】
従来、このようなロボット・システムで取り扱われる部品は、予め整列パレット上に複数個を規則的に配置されて取り扱われることが多かった。このように整列させた状態としておけば、姿勢は一定であることが保証できるため、比較的簡単なパターン認識処理で各部品の位置のみを特定すれば、把持を行うことができるというメリットがあった。しかしながら、予め整列パレット上に並べるためには、人手による作業、若しくは整列のための専用機械等が必要となり、コストアップ要因となる。
【0004】
そこで、対象部品を多数、トレイ上にただ積み上げただけの「山積み状態」から、雑多な姿勢を取っている各部品を、自由度の高いアームに取り付けられたハンド機構を用いて、そのまま把持させたいという要求が高まっている。このような制御を行うためには、山積み状態トレイをセンシングして、対象部品の位置だけでなく姿勢(方向)を極力正確に推定する必要がある。
【0005】
また近年、開発が進められているエンタテイメント用途、家事補助用途、或いは介護用途等の家庭用ロボットにおいては、日常空間に存在する様々な物体を対象物として識別し、場合によってはハンドにより把持する必要がある。このためには、上述の生産用ロボット・システムの場合と同様、対象物の位置のみならず姿勢(方向)を知ることが重要となる。
【0006】
撮像された画像から対象物の姿勢を推定するには、一般的に、パターン検出処理に対象物姿勢を学習させるための教示データが必要となる。この教示データとしては、例えば対象物を球状に包み込んだあらゆる視点方向から見た場合の、いくつかの代表的な姿勢(撮像装置に対する相対姿勢であって、以下、「代表姿勢」と称する)を撮像した姿勢別対象物画像を用いる。
【0007】
正確な代表姿勢を再現するため、教示データとして用いる対象物画像の生成には、予め専用の教示データ生成装置を用いて生成しておく場合が多い。
【0008】
しかしながら教示データ生成装置は、スペース等の都合やコスト面から複数の装置で共有されるため、上述のロボット・システムが使用される現場とは別の場所に設置される場合が多い。これにより、照明や撮像装置等の撮像条件を、現場のロボット・システムで用いられる条件と一致させることが極めて困難となる。すなわち、姿勢が同一のはずの対象物の教示データと、現場で撮像した画像データの一致度が低下し、姿勢推定精度が低下してしまうという問題がある。また、専用の教示データ生成装置の導入はコストアップ要因ともなっている。
【0009】
そこで、専用の教示データ生成装置を用いずに、現場で用いられるロボット・システムそのものを用いて、教示データを生成する方法がいくつか提案されている。
【0010】
例えば、特許文献1では、3次元データを取得して出力する視覚センサにより、ハンドに把持させた対象物の3次元データを取得し、形状に関するハンド付き特徴を抽出する。
【0011】
そして予め作成して保存してあるハンドモデルとハンドの位置・姿勢から、ハンド付き特徴の内のハンドに相当する部分を除去して、ハンド無し特徴を出力する。これを物体モデルとして登録、若しくは既に登録されている同対象物の物体モデルがあれば重ね合わせて更新する。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開2005−1022号公報
【特許文献2】特開平9−237340号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
上述の先行技術のように、ハンド機構に把持させた対象物の姿勢を変化させて撮像することにより姿勢推定のための教示データを得る場合、撮像した画像内には対象物だけでなくハンド機構(の少なくとも一部)が入り込んでしまうという問題点がある。これをそのまま学習用画像として用いると、本来不要なハンド機構の画像特徴を合わせて学習してしまうことになり、トレイ上の対象物のみの画像からは正確な姿勢推定が困難となる。
【0014】
また、上述の通り、このような方法の利点の一つは、実際に使われる環境と同一の撮像条件(環境光、撮像装置)で教示データを生成できることである。しかしながら、特に環境光に関しては常に一定条件であるとは限らず、1日のうち変化する場合も有り得え、このときの姿勢推定精度が劣化する。
【0015】
上述の特許文献1においては、ハンド部分に相当する特徴の除去を行っているものの、3次元データを取得可能な視覚センサを用いる必要がある。また、予めハンドモデルを保持して、取得された3次元データから得られる特徴をハンド座標系へ変換したりする等の煩雑な計算が必要となるという課題がある。さらに、環境光の変化に対する対策も取られていないという課題もある。
【0016】
上記の課題の1つに鑑み、本発明は、ハンド機構に把持させた対象物の姿勢を変化させて撮像した二次元画像から、簡便な処理にて、ハンドその他の不要部分を除去した、対象物のみを含む画像データを生成することを目的とする。
【課題を解決するための手段】
【0017】
上記の目的の何れか1つを達成する本発明に係る画像生成装置は、
対象物の画像を生成する画像生成装置であって、
前記対象物を把持する把持手段と、
前記対象物と前記把持手段との少なくとも1つの画像を撮像する撮像手段と、
前記把持手段により把持された前記対象物が、前記撮像手段に対して複数の所定姿勢のうちの1つの所定姿勢となるように前記把持手段を制御する制御手段と、
前記撮像手段により撮像された前記1つの所定姿勢にある前記対象物および当該対象物が当該1つの所定姿勢となるように制御された前記把持手段の画像と、当該1つの所定姿勢とを関連付けて、把持状態画像として取得する第1の画像取得手段と、
前記対象物を把持しておらず且つ前記1つの所定姿勢と一致する所定姿勢である前記把持手段の画像を非把持状態画像として取得する第2の画像取得手段と、
前記把持状態画像と、前記非把持状態画像との差分に基づいて、前記1つの所定姿勢について前記対象物のみの対象物画像を生成する画像生成手段と、
を備えることを特徴とする。
【発明の効果】
【0018】
本発明によれば、ハンド機構に把持させた対象物の姿勢を変化させて撮像した二次元画像から、簡便な処理にて、ハンドその他の不要部分を除去した、対象物のみを含む画像データを生成することが可能となる。
【図面の簡単な説明】
【0019】
【図1】対象物把持システムの一例を示す図。
【図2】対象物把持システムにおけるコントローラの構成の一例を示す図。
【図3】測地ドームを説明する図。
【図4】対象物の代表姿勢の例を示す図。
【図5】姿勢別の対象物画像の生成処理の一例を説明する図。
【図6】姿勢別の対象物画像の生成処理の流れを示すフローチャート。
【図7】ロボット・システムにおけるオンライン状態の処理の流れを示すフローチャート。
【図8】部品モデルに基づくマスク処理を説明する図。
【図9】環境光条件測定部を備える対象物把持システムの別の例を示す図。
【図10】(a)および(b)環境光条件測定部による環境光条件の変化の検知処理を説明する図。
【図11】微少な姿勢変動を加えた複数の対象物画像の生成処理の流れを示すフローチャート。
【図12】各代表姿勢を再現するための制御値を示すテーブル。
【図13】(a)不揮発性大容量メモリに記憶された把持状態画像のメモリイメージ、(b)代表姿勢Indexと対応付けて不揮発性大容量メモリに記憶された非把持状態画像のメモリイメージ。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態について添付の図面を参照して説明する。
【0021】
<第1実施形態>
図1を参照して、本実施形態におけるロボット・システム(対象物把持システム)の構成を説明する。
【0022】
ロボット・システムは、ロボット・アーム11と、撮像装置13と、コントローラ14とを備える。ロボット・アーム11は、6軸自由度のアームであり、エンドエフェクタとして二指ハンド機構(以下、「ハンド12」と称する)を備える。図1では、ハンド12は、把持対象物である部品16の一つを把持している様子を示している。把持する前の多数の部品16は、部品トレイ15に山積み状態で積載されている。
【0023】
撮像装置13は、例えばカメラである。本実施形態では、カメラ13は不図示のシステム内のフレーム上部若しくは天井等に固定的に取り付けられており、少なくとも部品トレイの全域を撮像して画像データを生成することが可能である。コントローラ14は、ロボット・アーム11、ハンド12、及びカメラ13を制御して、各種動作を制御する。ここでコントローラ14は、一般的にコンピュータから構成されるが、本実施形態はその構成を限定するものではない。部品トレイ15は、多数の部品16を積載している。
【0024】
サンプル設置台17は、サンプル部品18を設置する台であり、すなわち既知姿勢対象物保持手段として機能する。サンプル部品18は、学習画像生成用として専用に用意された部品16の同等品である。サンプル設置台17には、サンプル部品18を所定姿勢で正確に置けるように、マーカが印されている。サンプル部品18のサンプル設置台17への設置を容易にするために、必要に応じて溝を切る等の措置を施してもよい。すなわち、当該サンプル設置台17上に置かれたサンプル部品18は、ロボット・システムにおいて既知姿勢である。上面図19は、サンプル設置台17にサンプル部品18を設置した状態を上方から観察した様子を示す。
【0025】
なお、サンプル設置台17は、必ずしも撮像装置13の撮像範囲内に設置される必要は無く、ロボット・システムの定常的な使用状態(以下、「オンライン状態」と称する)で邪魔にならず、かつ設置されたサンプル部品18の把持可能部分がハンド12による把持可能範囲内に配置されていればよい。そして、当該配置された場所を予めコントローラ14に正確に入力しておくことにより、ロボット・システムは、必要に応じて既知姿勢のサンプル部品18を把持することが可能となる。
【0026】
図2は、コントローラ14の概略構成の一例を示すブロック図である。バス200には、CPU201、ROM202、RAM203、画像処理回路204、不揮発性大容量メモリ205、撮像制御部(I/F)206、画像入力部(I/F)207、およびロボット制御部(I/F)208、の各部が接続されている。ROM202には、CPU201のブートプログラムや定数パラメータ等が記憶されている。RAM203は、CPU201の作業領域や、撮像装置13により撮像された画像や他の画像を処理することにより生成された画像を一時的に記憶する保存領域として用いられる。
【0027】
画像処理回路204は、後述する学習画像生成処理や、山積みトレイを撮像した画像から対象物の位置と姿勢を推定する姿勢パターン検出処理、および、それらに必要な前処理の少なくとも一部を処理する専用ハードウェア回路である。尚、システムにおいて特に画像処理回路部204を備えずCPU201で動作させるプログラムにより全ての画像処理を行う構成とすることも可能である。このようにすると、通常は、コストは低減できるが処理速度は遅くなる。
【0028】
不揮発性大容量メモリ205は、例えばHDD装置であり、CPU201で動作させるプログラムや、システムのパラメータ、および後述するように、生成した対象物画像を記憶する。
【0029】
撮像制御部206は、撮像装置13に接続して撮像タイミングの通知等の撮像制御を行う専用I/Fを備える。
【0030】
画像入力部207は、コントローラ14の出力部(不図示)に接続され、撮像した画像データをコントローラ内に取り込む。
【0031】
ロボット制御部208は、ロボット・アーム11及び二指ハンド機構12に接続され、所望の動作制御を行うためのI/Fを備える。
【0032】
次に、本ロボット・システムを用いて生成する、姿勢パターン検出処理のための学習画像として用いることのできる対象物画像について説明する。ハンド12によりトレイ15に山積み状態となっている対象部品16のうちの一つを選択して把持するためには、当該部品16の3次元空間中における位置と姿勢すなわち3軸回転方向(ロール角・ピッチ各・ヨー角)を特定する必要がある。本ロボット・システムにおいては、撮像装置13で撮像した二次元画像に基づき、撮像装置13に対する部品の位置と姿勢を推定し、これを最終的にロボット座標系に変換して把持するための制御計算を行う。
【0033】
すなわち、教示データとしては、部品16を球状に包み込んだあらゆる方向から撮像した画像を姿勢情報と対応付けて記憶したものを用いる。実際には、連続的に全ての方向から撮像した画像を用意することはできないため、ある程度の粒度でサンプリングした代表姿勢の画像のみを撮像することになる。
【0034】
図3は、代表姿勢を説明するための図であり、測地ドーム300と呼ばれる考え方を示している。本実施形態では、測地ドーム300として正二十面体を基本にしており、この中心位置に部品を配置したときに、正二十面体上の各代表点からみた方向を代表姿勢として定義している。ここで代表点としては、例えば各頂点および各面中心点等を用いることができる。正二十面体においては頂点の数は16、面の数は20であるので、計36の姿勢が定義可能である。
【0035】
しかしながら、これだけでは把持するのに十分な粒度とは言えない場合が多いため、各面の正三角形を分割して頂点の数を増やしている。例えば、各面の辺を2分割すると各面の1つの正三角形は4つの小正三角形で構成されることになり、面の数は4倍、頂点の数は元の辺の数分34増える。従って、同様に各頂点+面中心を代表点とすれば、130の代表姿勢を定義することができる。
【0036】
図4は、いくつかの代表姿勢401乃至代表姿勢405を取った際の部品16の様子を示している。山積み状態では、撮像装置13に対して部品16はあらゆる方向を向く可能性がある。もちろん部品によっては平らな形状をしている等、取りにくい姿勢も存在するが、このような場合は当該姿勢を学習画像から除外するようにすることもできる。
【0037】
次に、図5を参照して、各代表姿勢に対応する学習画像の生成処理の概要について説明する。把持状態501は、サンプル設置台17上のサンプル部品18をハンド12により把持し、撮像装置13に対して所定姿勢になるよう移動させた一例を示す。ここでは、図4における代表姿勢401を所定姿勢の一例としている。サンプル設置台17上のサンプル部品18は、前述の通り既知である。また、コントローラ14は、不揮発性メモリ205内に対象部品の3次元モデルデータを保持している。このモデルデータには、予めハンド12により把持すべき位置が指定されており、これに基づきサンプル設置台17上のサンプル部品18を把持するようにアーム11とハンド12とを制御することができる。そして既知姿勢に基づき、アーム11の各関節軸の回転角度を計算することにより、撮像装置13に対して所望の姿勢となるようにサンプル部品18を移動させることができる。
【0038】
このとき撮像された画像が、画像502である。当然、サンプル部品18を把持したハンド部分も画像中に写りこんでおり、不図示であるがハンド・アーム部以外の背景も写っている。この画像を図4の代表姿勢401における把持状態画像と称する。
【0039】
次に、サンプル部品18をサンプル設置台17に戻した上で、再度ハンド12に、図4の代表姿勢401の把持状態画像を撮像したときと全く同じ位置・角度に移動させる。この様子を示したのが把持状態503である。このとき、ハンド12はサンプル部品18を把持していないが、把持した場合と全く同じ指の開き具合としている。
【0040】
この状態で撮像した画像が、画像504である。これを代表姿勢401の非把持状態画像と称する。代表姿勢401における把持状態画像502と非把持状態画像504では、部品の存在する場所以外の領域は、背景だけでなくハンド(および写っていればアーム)の部分もほぼ同じ画像となる。従って、両画像の画素差分を取りその差の絶対値が所定の閾値以上の画素のみを残す画素マスクを生成し、把持状態画像502にこのマスクをかけると、ハンド12を除去したサンプル部品18のみで構成される対象物画像を得ることが可能である。ここで画素マスクの各画素位置(x,y)に対応する値mxyは、式(1)のように表すことができる。
【0041】
【数1】
【0042】
として表すことができる。ただし、dxyは式(2)により決定される。
【0043】
【数2】
【0044】
ここで、Ih_xyは、把持状態画像502の各画素位置(x,y)における輝度値であり、Ie_xyは非把持状態画像504における輝度値である。また、 Tm は所定の閾値を表す。
【0045】
このように生成された代表姿勢401における対象物の画像が、対象物画像505として示される。対象物画像505の各画素値Io_xyは、式(3)のように表される。
【0046】
【数3】
【0047】
このように、姿勢ごとに異なったハンド入りの非把持状態画像を差分取得のためのベース画像として用いることにより、背景のみならずハンド部分を除去して部品のみで構成される学習画像を生成することができる。
【0048】
本システムにおいては、このような不要画素の除去処理を、図2のCPU201の制御下で、画像処理回路部204を用いることにより、高速に演算処理している。処理した結果得られる画像は、RAM203に一旦保持され、必要に応じて大容量メモリ205に保存される。
【0049】
なお、このようにして得られた学習画像では、撮像装置13から観察してハンド12の指先により隠されているサンプル部品18の一部領域は、対象物画像505に示すように欠落した状態となっている。このような欠落部分は、代表姿勢や部品形状によっては、学習画像として用いるのに適さないくらいに大きくなる場合も有りうる。このような場合は、部品18の他の部分を把持して、同じ代表姿勢を取らせるようにアーム11を駆動して同様に学習画像を生成すればよい。もちろん、同じ代表姿勢に対し、異なった複数の部分を把持して複数の画像を生成し、これらを合成して欠落部分を補った1枚の学習画像を生成するようにすることも可能である。サンプル部品18はサンプル設置台17上に既知姿勢で置かれているため、部品モデルに基づき計算して所望の部分を把持することが可能である。また、異なった部分を把持しても撮像装置13に対して部品18が同一の位置・姿勢となるように移動させることが可能であるので、これら把持位置の異なる同姿勢の複数の画像の合成は、単に画素の排他的ORを取るだけでよく、極めて簡便な処理で実現が可能である。この画素単位での排他的OR処理も、画像処理回路204を用いて行われる。
【0050】
図6は、姿勢別対象物画像取得のための基本的な処理の流れを示すフローチャートである。処理は、処理ブロック61、処理ブロック62、処理ブロック63から構成される。処理ブロック61は、各代表姿勢に対応する把持状態画像取得処理を示している。まず、ステップS601において、ハンド12は、サンプル対象部品18を把持する。サンプル対象部品18は前述の通り、サンプル設置台17に既知の姿勢で置かれている。従って、サンプル部品18の把持指定部分を把持すべく、コントローラ14によりロボット・アーム11の各軸の駆動角度を計算することができ、この制御を行うことにより、ハンド12にサンプル部品18を把持させることができる。
【0051】
次に、ステップS602において、コントローラ14は、いくつかの代表姿勢のうちの一つを選択する。本実施形態では、先に説明した正二十面体の各面を4分割した測地ドーム300により、130個の代表姿勢を設定しているものとする。すなわち、各々の代表姿勢には、0から129までのIndex番号が付けられている。ここでは、代表姿勢Indexを0から順に1つずつ選択する。
【0052】
各代表姿勢を再現するための制御値は、不揮発性メモリ205内に、図12に示す形式のテーブルとして保持されている。テーブルにおいて、第1列目は、代表姿勢Indexである(実際のメモリイメージ上では連続的に格納するので省略可能である)。第2列目から第7列目までは、ロボット・アームの各軸の回転駆動量を示している。一方、第1行目は、部品16の基準姿勢を撮像装置13の撮像光軸上における所定位置に再現するための、各軸の絶対回転駆動量を示している。第2行目以降の各行は、他の基準姿勢から代表姿勢へ変化させるための各軸の相対回転駆動量を示している。ここで基準姿勢とは、サンプル設置台17に設置された状態の姿勢をそのまま撮像光軸上の所定位置に並行移動したものとしている。これらの回転駆動量は、130視点とロボット・アーム系および対象部品のモデルに基づき、予め計算されている。
【0053】
ステップS603において、コントローラ14は、ハンド12により把持されたサンプル対象部品18が、ステップS602で選択された代表姿勢になるように、図12の表に基づき、ロボット・アーム11の各軸を回転駆動する制御を行う。
【0054】
ステップS604において、撮像装置13は、ステップS602で選択された代表姿勢となったサンプル対象部品18を、ハンド12が含まれた状態で撮像して、把持状態画像として取得する。取得された把持状態画像は、選択されている代表姿勢のIndexと関連付けて、RAM203若しくは不揮発性大容量メモリ205に記憶される。ここで、図13(a)は大容量メモリ205に保持された把持状態画像のメモリイメージを示している。各々の代表姿勢Indexに対応する画像データが、輝度値のビットマップ形式で保持されている。なお、代表姿勢Indexに対応する画像データを、Indexの順に格納するものとすれば、Index値そのものは保持しなくてもよい。また、画像データは圧縮形式であってもよい。
【0055】
ステップS605において、コントローラ14は、130個の代表姿勢の全てに対する処理が完了したか否かを判定する。全てに対する処理が完了したと判定された場合(ステップS605;YES)、ステップS606へ進む。一方、全てに対する処理が完了していないと判定された場合(ステップS605;NO)、ステップS602へ戻る。
【0056】
ステップS606において、コントローラ14は、アーム11およびハンド12を制御して、ハンド12により把持されているサンプル対象部品18を、サンプル設置台17に戻す。以上で処理ブロック61における処理が終了する。
【0057】
次に、処理ブロック62は、非把持状態画像取得処理を示している。
【0058】
まず、ステップS607において、コントローラ14は、ハンド12を、対象部品を把持せずに、把持していた際と同じ状態とする。具体的には、本実施形態においては、ハンド12の二指の開き具合を、サンプル対象部品18を把持した際と同じ状態にする。
【0059】
次に、ステップS608において、コントローラ14は、130個の代表姿勢のうちの一つを選択する。この処理はステップS602と同様である。
【0060】
ステップS609において、コントローラ14は、ステップS603と同様に、図12のテーブルの制御値に基づき、非把持状態のハンド12を移動させる制御を行う。
【0061】
そしてステップS610において、撮像装置13は、ハンド12のみの非把持状態画像を撮像して、ステップS608で選択された代表姿勢と関連付けて、不揮発性大容量メモリ205に当該非把持状態画像を記憶する。図13(b)は、不揮発性大容量メモリ205に、代表姿勢Indexと対応付けて記憶された非把持状態画像のメモリイメージを示している。図13(a)と同様、本実施形態では、輝度値ビットマップ形式で当該非把持状態画像を保持している。
【0062】
ステップS611において、ステップS605と同様に、コントローラ14は、130個の代表姿勢の全てに対する処理が完了したか否かを判定する。全てに対する処理が完了したと判定された場合(ステップS611;YES)、ステップS612へ進む。一方、全てに対する処理が完了していないと判定された場合(ステップS611;NO)、ステップS608へ戻る。以上で処理ブロック62における処理が終了する。
【0063】
そして、処理ブロック63は、各代表姿勢に対応する姿勢別対象物画像生成処理を示している。
【0064】
ステップS612において、コントローラ14は、ステップS602およびステップS608と同様に、130個の代表姿勢のうちの1つを選択する。
【0065】
ステップS613において、コントローラ14は、ステップS612で選択された代表姿勢と関連付けて記憶されている把持状態画像と、非把持状態画像とを読み出す。すなわち、図13(a)、(b)のそれぞれから、選択された代表姿勢Indexに対応する画像ビットマップデータを読み出す。
【0066】
そして、ステップS614において、コントローラ14は、式(1)に相当する演算を行い、両画像の画素ごとに差分を取って差分マスクを生成する。この差分マスクは、先に述べた通り、差分値が所定値以上となる画素のみを残し、他の部分を除外するためのマスクである。
【0067】
ステップS615において、コントローラ14は、式(2)に相当する演算処理を行い、把持状態画像に差分マスクをかけることにより、対象物そのものが存在する画素以外の画素を除去する処理を行う。
【0068】
ステップS616において、コントローラ14は、選択された代表姿勢に対応する対象物画像を、不揮発性大容量メモリ205に保存する。
【0069】
ステップS617において、ステップS605およびステップS611と同様に、コントローラ14は、130個の代表姿勢の全てに対する処理が完了したか否かを判定する。全てに対する処理が完了したと判定された場合(ステップS617;YES)、処理を終了する。一方、全てに対する処理が完了していないと判定された場合(ステップS617;NO)、ステップS612へ戻る。以上で処理ブロック63における処理が終了する。
【0070】
このようにして得られた代表姿勢ごとの対象物画像を学習画像として用いることにより、例えば特許文献2に開示されるパラメトリック固有空間法のような学習アルゴリズムを用いて、姿勢パターン検出器を学習させることができる。これにより、姿勢パターン検出器は、入力された画像内の部品の位置を特定すると同時に、いずれの代表姿勢に似ているかを推定することが可能となる。
【0071】
なお、図6では、130個の代表姿勢を3回ずつ選択するループ構造での処理を説明したが、もちろん他のループ構造で同等の処理を行うことも可能である。例えば130個の代表姿勢を全て1回ずつ選択するループ構造とし、1つのループの中で、把持状態画像取得処理、非把持状態画像取得処理、および代表姿勢に対応する対象物画像生成処理を行うようにしてもよい。
【0072】
また、本実施形態においては、サンプル対象部品18をサンプル設置台17において既知姿勢とすることにより把持可能としたが、他の方法を用いてハンド12に把持させるようにすることもできる。例えば、人間の手により手渡しをしたり、コントローラ14に対するユーザI/Fを用いて手動でアーム11およびハンド12を操作することにより、サンプル対象部品18の所望の位置を把持させるようにしたりすることも可能である。
【0073】
さらに、非把持状態画像は、把持状態画像と合わせて撮像する必要はなく、予め撮像して不揮発性大容量メモリ205に記憶しておく構成としてもよい。このとき対象部品の種類に応じて、ハンド12を複数の非把持状態としたそれぞれについての非把持状態画像を記憶しておけば、複数種類の対象部品にも対応することが可能となる。
【0074】
さらに、非把持状態画像を撮像するのではなく、ハンド12およびアーム11の形状モデルを使用して、CG合成により非把持状態画像を生成する仕組みとしてもよい。CG合成された画像は実際に撮像された画像とは異なる可能性はあるが、差分マスクの生成に用いられるだけである。対象物画像として残される部分は実際に撮像された把持状態画像から得られるものであるため、比較的以後の学習に対する影響は少ない。
【0075】
また、本実施形態では撮像された把持状態画像と非把持状態画像とをそのまま用いて差分処理する例を示したが、各々の画像に対し、エッジ抽出等の何らかの前処理を行った特徴量抽出画像に対して同様の処理を行うようにしてもよい。
【0076】
この前処理は、例えば、取得された対象物画像を学習画像として用いる姿勢パターン検出処理において行われる前処理と同等の処理であってもよい。または、一旦姿勢別の対象物画像を取得した後に、当該対象物画像に特徴量抽出処理を行って、特徴量画像として対象物画像を大容量記憶メモリ205に記憶するようにしてもよい。
【0077】
また、本実施形態では所定姿勢として130個の代表姿勢を図12に示す制御値テーブルで個々に回転駆動量として定義する例を示したが、所定姿勢の定義方法はこの方法に限定されるものではない。例えば、測地ドーム300上の色々な姿勢を満遍なく取るように連続的に変化させるように制御し、所定間隔で撮像を行ってもよい。そして撮像時のロボット・アーム11の各関節軸の角度情報値を、例えば各軸に取り付けられたパルスエンコーダから読み出し、Indexに変えて姿勢情報として用いてもよい。
【0078】
あるいは、Indexやエンコーダ値によって一致する把持状態画像と非把持状態画像とを検索するのではなく、画像のマッチング処理を行って一致する画像を探してもよい。このとき姿勢が一致する把持状態画像と非把持状態画像とは、少なくともハンド部分の画素は一致しているため、姿勢が一致しない場合よりも相対的に一致度は高くなる。つまり、各ハンド部分を構成する画素値そのものを、姿勢を表す情報として利用することが可能である。もちろん、これをIndexやエンコーダ値と併用してもよく、ロボットの姿勢再現誤差が大きい場合には補正するための補助情報として用いることもできる。
【0079】
図7を参照して、このようにして取得された姿勢別の対象物画像を学習画像として用いて姿勢パターン検出器を学習させた後の、本実施形態における部品のピッキング処理について説明する。これはロボット・システムの定常的な使用状態であり、オンライン状態と称する。
【0080】
まずステップS701において、撮像装置13は、対象部品16が山積み状態となっている部品トレイ15を撮像する。
【0081】
次にステップS702において、コントローラ14は、学習済みの姿勢パターン検出器を用いて、対象部品16が山積み状態である部品トレイ15の画像中の個別の対象部品の位置・姿勢を推定する。ここで、相対的に部品トレイ15の下方に存在する部品は、上方の部品に一部あるいは全部が隠されているため、正確な位置・姿勢が推定できないが、通常ハンド12でピックアップする部品は部品トレイ15の上方のものであるため、特に問題は無い。また、本実施形態において、画像奥行き方向の位置は、検出された画像中の部品の大きさに基づいて推定される。姿勢パターン検出器に入力する撮像画像を、予め複数の倍率に変換しておくことにより、何れの変倍画像(以下、「ピラミッド画像」とも称する)から対象部品16が検出されたかに基づき、当該対象部品16の画像中における大きさを特定することができる。
【0082】
ステップS703において、コントローラ14は、位置・姿勢が推定できた対象部品16のうち、信頼度の高い部品を1つ選択する。ここで、信頼度の高い部品が複数検出された場合は、把持に適したものを選ぶようにすればよい。
【0083】
ステップS704において、コントローラ14は、ステップS703で選択された部品を把持するためにロボット・アーム11の各軸における駆動角度を計算し、ハンド12に当該部品を把持させる制御を行う。
【0084】
ステップS705において、コントローラ14は、ステップS704で把持された部品を移動し、所望の処理を行う。所望の処理とは、例えば部品パレットに所定姿勢で順序良く並べる処理であったり、他の部品へ組み付ける処理であったり、または他のカメラや他のセンサの近くに部品を運び欠陥を検査する処理等である。ロボット・システムの要求事項に応じて自由に所望の処理の設定が可能である。
【0085】
そして、ステップS706において、コントローラ14は、位置・姿勢が所定の信頼度以上で推定できた全ての部品に対して、処理が完了したか否かを判定する。全ての部品に対して処理が完了していると判定された場合(ステップS706;YES)、ステップS707へ進む。一方、全ての部品に対して処理が完了していないと判定された場合(ステップS706;NO)、ステップS703へ戻る。ステップS707において、コントローラ14は、部品トレイ15上の全ての対象部品16に対する処理が完了したか否かを判定する。この処理は、例えば空状態の部品トレイ15を予め撮像しておき、当該画像と、ステップS701で撮像された山積み状態の部品トレイ15の画像と、の差分を取ることにより行うことができる。あるいは、部品トレイ15の下方に重量センサを配置し、部品トレイ15のみの重量となったことを検知したら部品トレイ15が空であると判定するようにしても良い。全ての対象部品16に対する処理が完了したと判定された場合(ステップS707;YES)、処理を終了する。一方、全ての対象部品16に対する処理が完了していないと判定された場合(ステップS707;NO)、ステップS701へ戻る。
【0086】
以上、本実施形態のロボット・システムによれば、簡便な二次元画像の差分処理のみで、各姿勢に応じた不要部分を除去した対象物画像を生成することができる。
【0087】
<第2実施形態>
把持状態画像と非把持状態画像との差分のみにより生成した対象物画像には、影やノイズ等の影響で部品以外の部分が残ってしまう場合がある。本実施形態では、これに対処するために、対象部品モデルに基づく姿勢別形状マスクを利用する構成について説明する。図8を参照して、対象物画像に対するマスク処理の一例を説明する。マスクパターン801は、対象部品16の三次元モデルを撮像装置13のモデルに当て嵌めて計算した、代表姿勢401の見え方をする部品の外形輪郭に基づいて生成されたマスクパターンである。
【0088】
マスクパターン801において、白地の部分は画素を残す領域、黒地の部分は画素を除去する領域である。例えば、不揮発性大容量メモリ205は、姿勢別形状マスク保持手段としても機能し、予め計算しておいたマスクパターン801を姿勢と関連付けて記憶しておく。
【0089】
画像802は、図5で説明した把持状態画像と非把持状態画像とから生成された代表姿勢401に対する対象物画像505に対して、マスクパターン801をマッチングさせる様子を示している。影803は、対象物画像505内に残ってしまった影の部分を示す。
【0090】
ここでは、マスクパターン801を用いて、対象部品16の輪郭線に相当する線によりマッチングを行っている。画像802における対象物画像は、影803の影響が残っているが、ハンド部分や他の背景部分は概ね除去された画像である。そのため、図5の把持状態画像505に対して直接マッチングを行うよりも、より容易にマスクパターン801と一致させることができる。また、対象部品16のモデルから生成されたマスクパターン801と一致させることにより、対象部品16の位置姿勢をより正確に特定した対象物画像804を切り出すことが可能となる。
【0091】
なお、本実施形態ではマスクと輪郭線によるマッチングの例を示したが、画像の部品部分を構成する、例えばエッジ等の画像特徴量を用いて、より正確に位置姿勢を合わせてもよい。この場合は、モデルから生成されたマッチング用部品特徴量画像を用いて位置姿勢を特定した後に、マスクパターン801による切り出し処理を行う。
【0092】
或いは、所定の対象物画像生成時には、ハンド12により把持された対象部品16を撮像装置13に対して既知の位置に移動させていることを利用して、マッチングを行わずに画像中で対象部品16が存在するはずの位置へ直接マスクを掛けるようにしてもよい。もしくは、この位置をマッチング処理開始時の初期値として探索範囲を限定するようにしても良い。
【0093】
本実施形態によれば、マスクのみを行う場合と異なり、予め非把持状態画像との差分によりハンド部分が除去されるため、対象部品のみで構成された画像を得ることができる。
【0094】
<第3実施形態>
ロボット・システム周辺の照明条件すなわち環境光は、常に一定であるとは限らない。直接照射する照明は一定であっても、例えば日光の影響を受ける環境の場合は1日のうちで条件が変わってくるし、天候や季節、周辺に存在する物・人等によっても変わり得る。
【0095】
このような場合、同じ姿勢の対象物であっても、その見え方にかなりの変化が生ずる場合がある。異なった環境光条件に応じて、それぞれ異なった同一姿勢の対象物画像を用意して学習用画像として用いることにより、より良好な姿勢パターン検出処理が可能となる。本実施形態では、ロボット・システム内に環境光条件測定部を備える例を説明する。
【0096】
図9は、環境光が変化する環境で稼動している山積み部品把持システムのオンライン状態の一例を示している。図9におけるアーム11乃至サンプル部品18は、図1における同符号と同じであるので説明は省略する。
【0097】
環境光条件測定治具91は、環境光条件測定手段として機能し、オンライン状態であっても撮像装置13の視野内に入るように配置されている。
【0098】
画像92は、撮像装置13により撮像された当該オンライン状態の対象部品16が山積みされている部品トレイ15を含む画像の一例を示している。この画像92内には、枠93で示される位置に環境光測定治具91が写りこんでいる。環境光測定治具91は、多面体の立体構造をしており、各面は所定の反射率を持つ拡散反射面となっている。
【0099】
図10(a)および図10(b)は、画像92における環境光条件測定治具部分93を、異なった2つの時刻で切り出した画像の一例を示している。周辺環境あるいは太陽光の変化により、 図10(a)と図10(b)とでは見え方が異なっていることが分かる。本実施形態では、これら2つの画像に対し、まずは第1実施形態で説明した対象物画像を生成する場合と同様に、画素差分を取る。そして、式(4)で示されるこの画素差分合計値sが閾値以上となった場合に環境光が変化したものと判断し、閾値未満であれば環境光条件は一致しているものと判断する。
【0100】
【数4】
【0101】
画素差分合計値sの計算は、対象物画像と同様、画像処理回路部204を用いて行われる。本実施形態では、オンライン状態で図7に相当する処理を実行しつつ、環境光条件の変化を判別する処理を行う。この処理は例えば、ステップS701の処理に先んじて行われる。環境光条件の変化を検知すると一旦オンライン作業を中断し、図6で説明したような、各姿勢に対応する対象物画像の取得処理を行う。図9に示した通り、本ロボット・システムではオンライン状態においてもサンプル設置台17上に常に既知姿勢のサンプル部品18が設置されているので、必要に応じてサンプル部品18を正確に把持することが可能である。環境光の変化に対応して新たに取得し直した対象物画像を用いて学習し直すことにより、良好な姿勢推定を実現できる。
【0102】
また、オフライン状態の時に予め環境光条件に合致する姿勢別対象物画像を取得して、姿勢パターン検出処理を学習させておいてもよい。このような場合、オンライン状態では環境光条件を測定してこれに合致する条件で学習したパラメータを読み出して使用するようにする。学習パラメータに関連付ける環境光条件として、例えば図10に相当する環境光条件測定治具91の画像そのものを記憶しておけば、上記の変化を検知した場合と同様に、条件が合致するか否かを判別することができる。
【0103】
このように、本実施形態の環境光条件測定治具を用いると、対象物画像を生成した際と同様、極めて単純な画素差分に基づく処理で、環境光条件の変化や一致を検知することが可能となる。
【0104】
なお、本実施形態において、環境光条件測定治具91は多面体構造物としたが、もちろんこれに限るものではなく、例えば半球構造物を用いることも可能である。よりセンシティブにするため拡散反射面ではなく鏡面としてもよい。複数の治具を用意し、対象部品に応じて適した反射面を使い分けてもよい。
【0105】
また、このような構造物を用いず、環境光条件測定手段として機能する光量センサ等を用いてもよい。
【0106】
あるいは、時刻等に応じて環境光の変化が発生することが明らかな場合は、環境光条件測定治具を必ずしも用いる必要はない。この場合は、例えば、予め定められた所定時刻において、姿勢別対象物画像を取得するようにする。
【0107】
<第4実施形態>
上述の第1実施形態では、測地ドーム300に基づく130個の代表姿勢について説明したが、実際に山積みとなっている部品の姿勢は連続的に変化するため、130個の代表姿勢とは一致しない状態の中間姿勢が多数存在する。これらの中間姿勢は、最も近傍の代表姿勢に分類されてもよいが、代表姿勢のみの対象物画像を学習画像に用いるのでは、全ての姿勢を必ずしも良好に推定できるとは限らない。
【0108】
そこで本実施形態では、代表姿勢に対する対象物画像として、代表姿勢そのものの画像のみでなく、代表姿勢の近傍で微少に角度変動を加えた複数の姿勢の対象物画像を生成する。各代表姿勢に対応する学習画像として、これら複数の微少変動姿勢対象物画像を用いることにより、よりロバスト性の高い姿勢パターン検出処理が実現できる。
【0109】
図11は、代表姿勢ごとに所定の微少変動を加えた複数の対象物画像を生成する処理を説明するフローチャートである。当該処理は、処理ブロック111と、処理ブロック112と、処理ブロック113とから構成される。
【0110】
処理ブロック111は、図6で説明した処理ブロック61に相当し、各代表姿勢に対応する把持状態画像取得処理を示している。但し、ここでは代表姿勢毎に微少な姿勢変動を加えた複数の把持状態画像を取得している。
【0111】
ステップS1101乃至ステップS1103の各処理は、図6のステップS601乃至ステップS603の各処理と同様であるので説明は省略する。
【0112】
ステップS1104において、コントローラ14は、撮像装置13に対して選択された代表姿勢を取っている対象部品16に対し、微少な姿勢変動を与える。具体的には、コントローラ14は、対象部品16を把持しているハンド12の姿勢が微小に変化するように、ロボット・アーム11の少なくとも一部の軸に対し、例えば1度ずつ等の所定間隔で、±5度等の所定角度範囲を順次変動させる。ここでは、コントローラ14は、各軸の微少変動の組合せのうちの1つを選択して、ハンド12を回転させる。
【0113】
ステップS1105において、撮像装置13は、ステップS604と同様に把持状態の対象物画像を撮像し、選択されている代表姿勢に加えて、選択されている微少角度変動と関連付けて記憶する。
【0114】
ステップS1106において、コントローラ14は、所定角度範囲内の全ての各軸の微少変動組合せが選択されたか否かを判定する。全ての各軸の微少変動組合せが選択されたと判定された場合(ステップS1106;YES)、ステップS1107へ進む。一方、全ての各軸の微少変動組合せが選択されていないと判定された場合(ステップS1106;NO)、ステップS1104へ戻る。
【0115】
ステップS1107およびステップS1108の各処理は、それぞれステップS605およびステップS606との処理と同様であるため、説明を省略する。以上により、処理ブロック111の各処理が終了し、代表姿勢ごとに所定の微少変動を与えた複数の把持状態画像が生成される。
【0116】
次に、処理ブロック112は、図6で説明した処理ブロック62に想到し、非把持状態画像取得処理を示している。但し、処理ブロック111と同様、ここでは代表姿勢ごとに微少な姿勢変動を加えた複数の非把持状態画像を取得する。
【0117】
ステップS1109およびステップS1111の各処理は、ステップS607およびステップS609の各処理と同様であるため説明は省略する。
【0118】
ステップS1112において、コントローラ14は、ステップS1104と同様に、非把持状態のハンド12に対して微少な姿勢変動を与える。変動角度の間隔と範囲は、ステップS1104と全く同じであり、コントローラ14は、ここでは各軸変動の組合せの一つを選択する。
【0119】
ステップS1113において、撮像装置13は、ステップS610と同様に非把持状態画像を撮像し、選択されている代表姿勢に加えて、選択されている微少角度変動と関連付けて記憶する。
【0120】
ステップS1114において、ステップS1106と同様、コントローラ14は、所定角度範囲内の全ての各軸の微少変動組合せが選択されたか否かを判定する。全ての各軸の微少変動組合せが選択されたと判定された場合(ステップS1114;YES)、ステップS1115へ進む。一方、全ての各軸の微少変動組合せが選択されていないと判定された場合(ステップS1114;NO)、ステップS1112へ戻る。
【0121】
ステップS1115の処理は、ステップS611の処理と同様であるため説明は省略する。以上により、処理ブロック112の各処理が終了する。
【0122】
処理ブロック113は、図6で説明した処理ブロック63と同様であり、姿勢別対象物画像生成処理を示している。但し、ここでは代表姿勢ごとに微少な姿勢変動を加えた複数の対象物画像を生成する。
【0123】
ステップS1116の処理は、ステップS612の処理と同様の処理であるため、説明を省略する。
【0124】
ステップS1117において、コントローラ14は、ステップS1104およびステップS1112で選択された変動角度の間隔および範囲と同じ変動角度の間隔および範囲での各軸変動の組合せ一つを選択する。ステップS1118において、コントローラ14は、選択されている代表姿勢に加えて、微少変動と対応付けて記憶されている、把持状態画像と非把持状態画像とを読み出す。
【0125】
ステップS1119およびステップS1120の各処理は、それぞれステップS614およびステップS615の各処理と同様であるため、説明を省略する。
【0126】
ステップS1121において、コントローラ14は、生成された対象物画像を、選択されている代表姿勢の対象物画像の一つとして関連付けて、不揮発性大容量メモリ205に保存する。
【0127】
ステップS1122において、コントローラ14は、ステップS1106およびステップS1114と同様に、所定角度範囲内の全ての各軸の微少変動組合せが選択されて対象物画像の生成が完了したか否かを判定する。全ての各軸の微少変動組合せが選択されて対象物画像の生成が完了したと判定された場合(ステップS1122;YES)、ステップS1123へ進む。一方、全ての各軸の微少変動組合せが選択されておらず対象物画像の生成が完了していないと判定された場合(ステップS1122;NO)、ステップS1117へ戻る。
【0128】
ステップS1123の処理は、ステップS617の処理と同様であるため説明を省略する。以上により、処理ブロック113の各処理が終了し、図11のフローチャートに示す処理の全体が終了する。
【0129】
以上、本実施形態によれば、各代表姿勢に対して、複数の微少な姿勢変動を加えた対象物画像を生成することができる。これを各代表姿勢の姿勢パターン検出処理のための学習データとして用いることにより、任意姿勢に対する検出性能の向上が見込まれる。
【0130】
なお、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。例えば、生産用ロボット・システムに限らず、家庭用ロボット等の種々のロボット・システムに対しても適用可能である。
【0131】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、画像生成装置、画像生成方法、およびプログラムに関し、特に、対象物の姿勢別の画像を生成する画像生成装置、画像生成方法、およびプログラムに関する。
【背景技術】
【0002】
生産現場では、対象物を把持するハンド機構を備えたロボット・アームが、製品の組み立てや部品の搬送等に利用されている。このようなロボット・アームを制御するロボット・システムの「目」として、近年、カメラ等の撮像装置が導入されている。この撮像装置で撮像された画像は、例えばパターン認識処理を行い、ハンドで把持すべき対象部品の位置を特定するため、または、対象部品に欠陥が無いかどうかを調べる外観検査を行うためも用いられている。
【0003】
従来、このようなロボット・システムで取り扱われる部品は、予め整列パレット上に複数個を規則的に配置されて取り扱われることが多かった。このように整列させた状態としておけば、姿勢は一定であることが保証できるため、比較的簡単なパターン認識処理で各部品の位置のみを特定すれば、把持を行うことができるというメリットがあった。しかしながら、予め整列パレット上に並べるためには、人手による作業、若しくは整列のための専用機械等が必要となり、コストアップ要因となる。
【0004】
そこで、対象部品を多数、トレイ上にただ積み上げただけの「山積み状態」から、雑多な姿勢を取っている各部品を、自由度の高いアームに取り付けられたハンド機構を用いて、そのまま把持させたいという要求が高まっている。このような制御を行うためには、山積み状態トレイをセンシングして、対象部品の位置だけでなく姿勢(方向)を極力正確に推定する必要がある。
【0005】
また近年、開発が進められているエンタテイメント用途、家事補助用途、或いは介護用途等の家庭用ロボットにおいては、日常空間に存在する様々な物体を対象物として識別し、場合によってはハンドにより把持する必要がある。このためには、上述の生産用ロボット・システムの場合と同様、対象物の位置のみならず姿勢(方向)を知ることが重要となる。
【0006】
撮像された画像から対象物の姿勢を推定するには、一般的に、パターン検出処理に対象物姿勢を学習させるための教示データが必要となる。この教示データとしては、例えば対象物を球状に包み込んだあらゆる視点方向から見た場合の、いくつかの代表的な姿勢(撮像装置に対する相対姿勢であって、以下、「代表姿勢」と称する)を撮像した姿勢別対象物画像を用いる。
【0007】
正確な代表姿勢を再現するため、教示データとして用いる対象物画像の生成には、予め専用の教示データ生成装置を用いて生成しておく場合が多い。
【0008】
しかしながら教示データ生成装置は、スペース等の都合やコスト面から複数の装置で共有されるため、上述のロボット・システムが使用される現場とは別の場所に設置される場合が多い。これにより、照明や撮像装置等の撮像条件を、現場のロボット・システムで用いられる条件と一致させることが極めて困難となる。すなわち、姿勢が同一のはずの対象物の教示データと、現場で撮像した画像データの一致度が低下し、姿勢推定精度が低下してしまうという問題がある。また、専用の教示データ生成装置の導入はコストアップ要因ともなっている。
【0009】
そこで、専用の教示データ生成装置を用いずに、現場で用いられるロボット・システムそのものを用いて、教示データを生成する方法がいくつか提案されている。
【0010】
例えば、特許文献1では、3次元データを取得して出力する視覚センサにより、ハンドに把持させた対象物の3次元データを取得し、形状に関するハンド付き特徴を抽出する。
【0011】
そして予め作成して保存してあるハンドモデルとハンドの位置・姿勢から、ハンド付き特徴の内のハンドに相当する部分を除去して、ハンド無し特徴を出力する。これを物体モデルとして登録、若しくは既に登録されている同対象物の物体モデルがあれば重ね合わせて更新する。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開2005−1022号公報
【特許文献2】特開平9−237340号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
上述の先行技術のように、ハンド機構に把持させた対象物の姿勢を変化させて撮像することにより姿勢推定のための教示データを得る場合、撮像した画像内には対象物だけでなくハンド機構(の少なくとも一部)が入り込んでしまうという問題点がある。これをそのまま学習用画像として用いると、本来不要なハンド機構の画像特徴を合わせて学習してしまうことになり、トレイ上の対象物のみの画像からは正確な姿勢推定が困難となる。
【0014】
また、上述の通り、このような方法の利点の一つは、実際に使われる環境と同一の撮像条件(環境光、撮像装置)で教示データを生成できることである。しかしながら、特に環境光に関しては常に一定条件であるとは限らず、1日のうち変化する場合も有り得え、このときの姿勢推定精度が劣化する。
【0015】
上述の特許文献1においては、ハンド部分に相当する特徴の除去を行っているものの、3次元データを取得可能な視覚センサを用いる必要がある。また、予めハンドモデルを保持して、取得された3次元データから得られる特徴をハンド座標系へ変換したりする等の煩雑な計算が必要となるという課題がある。さらに、環境光の変化に対する対策も取られていないという課題もある。
【0016】
上記の課題の1つに鑑み、本発明は、ハンド機構に把持させた対象物の姿勢を変化させて撮像した二次元画像から、簡便な処理にて、ハンドその他の不要部分を除去した、対象物のみを含む画像データを生成することを目的とする。
【課題を解決するための手段】
【0017】
上記の目的の何れか1つを達成する本発明に係る画像生成装置は、
対象物の画像を生成する画像生成装置であって、
前記対象物を把持する把持手段と、
前記対象物と前記把持手段との少なくとも1つの画像を撮像する撮像手段と、
前記把持手段により把持された前記対象物が、前記撮像手段に対して複数の所定姿勢のうちの1つの所定姿勢となるように前記把持手段を制御する制御手段と、
前記撮像手段により撮像された前記1つの所定姿勢にある前記対象物および当該対象物が当該1つの所定姿勢となるように制御された前記把持手段の画像と、当該1つの所定姿勢とを関連付けて、把持状態画像として取得する第1の画像取得手段と、
前記対象物を把持しておらず且つ前記1つの所定姿勢と一致する所定姿勢である前記把持手段の画像を非把持状態画像として取得する第2の画像取得手段と、
前記把持状態画像と、前記非把持状態画像との差分に基づいて、前記1つの所定姿勢について前記対象物のみの対象物画像を生成する画像生成手段と、
を備えることを特徴とする。
【発明の効果】
【0018】
本発明によれば、ハンド機構に把持させた対象物の姿勢を変化させて撮像した二次元画像から、簡便な処理にて、ハンドその他の不要部分を除去した、対象物のみを含む画像データを生成することが可能となる。
【図面の簡単な説明】
【0019】
【図1】対象物把持システムの一例を示す図。
【図2】対象物把持システムにおけるコントローラの構成の一例を示す図。
【図3】測地ドームを説明する図。
【図4】対象物の代表姿勢の例を示す図。
【図5】姿勢別の対象物画像の生成処理の一例を説明する図。
【図6】姿勢別の対象物画像の生成処理の流れを示すフローチャート。
【図7】ロボット・システムにおけるオンライン状態の処理の流れを示すフローチャート。
【図8】部品モデルに基づくマスク処理を説明する図。
【図9】環境光条件測定部を備える対象物把持システムの別の例を示す図。
【図10】(a)および(b)環境光条件測定部による環境光条件の変化の検知処理を説明する図。
【図11】微少な姿勢変動を加えた複数の対象物画像の生成処理の流れを示すフローチャート。
【図12】各代表姿勢を再現するための制御値を示すテーブル。
【図13】(a)不揮発性大容量メモリに記憶された把持状態画像のメモリイメージ、(b)代表姿勢Indexと対応付けて不揮発性大容量メモリに記憶された非把持状態画像のメモリイメージ。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態について添付の図面を参照して説明する。
【0021】
<第1実施形態>
図1を参照して、本実施形態におけるロボット・システム(対象物把持システム)の構成を説明する。
【0022】
ロボット・システムは、ロボット・アーム11と、撮像装置13と、コントローラ14とを備える。ロボット・アーム11は、6軸自由度のアームであり、エンドエフェクタとして二指ハンド機構(以下、「ハンド12」と称する)を備える。図1では、ハンド12は、把持対象物である部品16の一つを把持している様子を示している。把持する前の多数の部品16は、部品トレイ15に山積み状態で積載されている。
【0023】
撮像装置13は、例えばカメラである。本実施形態では、カメラ13は不図示のシステム内のフレーム上部若しくは天井等に固定的に取り付けられており、少なくとも部品トレイの全域を撮像して画像データを生成することが可能である。コントローラ14は、ロボット・アーム11、ハンド12、及びカメラ13を制御して、各種動作を制御する。ここでコントローラ14は、一般的にコンピュータから構成されるが、本実施形態はその構成を限定するものではない。部品トレイ15は、多数の部品16を積載している。
【0024】
サンプル設置台17は、サンプル部品18を設置する台であり、すなわち既知姿勢対象物保持手段として機能する。サンプル部品18は、学習画像生成用として専用に用意された部品16の同等品である。サンプル設置台17には、サンプル部品18を所定姿勢で正確に置けるように、マーカが印されている。サンプル部品18のサンプル設置台17への設置を容易にするために、必要に応じて溝を切る等の措置を施してもよい。すなわち、当該サンプル設置台17上に置かれたサンプル部品18は、ロボット・システムにおいて既知姿勢である。上面図19は、サンプル設置台17にサンプル部品18を設置した状態を上方から観察した様子を示す。
【0025】
なお、サンプル設置台17は、必ずしも撮像装置13の撮像範囲内に設置される必要は無く、ロボット・システムの定常的な使用状態(以下、「オンライン状態」と称する)で邪魔にならず、かつ設置されたサンプル部品18の把持可能部分がハンド12による把持可能範囲内に配置されていればよい。そして、当該配置された場所を予めコントローラ14に正確に入力しておくことにより、ロボット・システムは、必要に応じて既知姿勢のサンプル部品18を把持することが可能となる。
【0026】
図2は、コントローラ14の概略構成の一例を示すブロック図である。バス200には、CPU201、ROM202、RAM203、画像処理回路204、不揮発性大容量メモリ205、撮像制御部(I/F)206、画像入力部(I/F)207、およびロボット制御部(I/F)208、の各部が接続されている。ROM202には、CPU201のブートプログラムや定数パラメータ等が記憶されている。RAM203は、CPU201の作業領域や、撮像装置13により撮像された画像や他の画像を処理することにより生成された画像を一時的に記憶する保存領域として用いられる。
【0027】
画像処理回路204は、後述する学習画像生成処理や、山積みトレイを撮像した画像から対象物の位置と姿勢を推定する姿勢パターン検出処理、および、それらに必要な前処理の少なくとも一部を処理する専用ハードウェア回路である。尚、システムにおいて特に画像処理回路部204を備えずCPU201で動作させるプログラムにより全ての画像処理を行う構成とすることも可能である。このようにすると、通常は、コストは低減できるが処理速度は遅くなる。
【0028】
不揮発性大容量メモリ205は、例えばHDD装置であり、CPU201で動作させるプログラムや、システムのパラメータ、および後述するように、生成した対象物画像を記憶する。
【0029】
撮像制御部206は、撮像装置13に接続して撮像タイミングの通知等の撮像制御を行う専用I/Fを備える。
【0030】
画像入力部207は、コントローラ14の出力部(不図示)に接続され、撮像した画像データをコントローラ内に取り込む。
【0031】
ロボット制御部208は、ロボット・アーム11及び二指ハンド機構12に接続され、所望の動作制御を行うためのI/Fを備える。
【0032】
次に、本ロボット・システムを用いて生成する、姿勢パターン検出処理のための学習画像として用いることのできる対象物画像について説明する。ハンド12によりトレイ15に山積み状態となっている対象部品16のうちの一つを選択して把持するためには、当該部品16の3次元空間中における位置と姿勢すなわち3軸回転方向(ロール角・ピッチ各・ヨー角)を特定する必要がある。本ロボット・システムにおいては、撮像装置13で撮像した二次元画像に基づき、撮像装置13に対する部品の位置と姿勢を推定し、これを最終的にロボット座標系に変換して把持するための制御計算を行う。
【0033】
すなわち、教示データとしては、部品16を球状に包み込んだあらゆる方向から撮像した画像を姿勢情報と対応付けて記憶したものを用いる。実際には、連続的に全ての方向から撮像した画像を用意することはできないため、ある程度の粒度でサンプリングした代表姿勢の画像のみを撮像することになる。
【0034】
図3は、代表姿勢を説明するための図であり、測地ドーム300と呼ばれる考え方を示している。本実施形態では、測地ドーム300として正二十面体を基本にしており、この中心位置に部品を配置したときに、正二十面体上の各代表点からみた方向を代表姿勢として定義している。ここで代表点としては、例えば各頂点および各面中心点等を用いることができる。正二十面体においては頂点の数は16、面の数は20であるので、計36の姿勢が定義可能である。
【0035】
しかしながら、これだけでは把持するのに十分な粒度とは言えない場合が多いため、各面の正三角形を分割して頂点の数を増やしている。例えば、各面の辺を2分割すると各面の1つの正三角形は4つの小正三角形で構成されることになり、面の数は4倍、頂点の数は元の辺の数分34増える。従って、同様に各頂点+面中心を代表点とすれば、130の代表姿勢を定義することができる。
【0036】
図4は、いくつかの代表姿勢401乃至代表姿勢405を取った際の部品16の様子を示している。山積み状態では、撮像装置13に対して部品16はあらゆる方向を向く可能性がある。もちろん部品によっては平らな形状をしている等、取りにくい姿勢も存在するが、このような場合は当該姿勢を学習画像から除外するようにすることもできる。
【0037】
次に、図5を参照して、各代表姿勢に対応する学習画像の生成処理の概要について説明する。把持状態501は、サンプル設置台17上のサンプル部品18をハンド12により把持し、撮像装置13に対して所定姿勢になるよう移動させた一例を示す。ここでは、図4における代表姿勢401を所定姿勢の一例としている。サンプル設置台17上のサンプル部品18は、前述の通り既知である。また、コントローラ14は、不揮発性メモリ205内に対象部品の3次元モデルデータを保持している。このモデルデータには、予めハンド12により把持すべき位置が指定されており、これに基づきサンプル設置台17上のサンプル部品18を把持するようにアーム11とハンド12とを制御することができる。そして既知姿勢に基づき、アーム11の各関節軸の回転角度を計算することにより、撮像装置13に対して所望の姿勢となるようにサンプル部品18を移動させることができる。
【0038】
このとき撮像された画像が、画像502である。当然、サンプル部品18を把持したハンド部分も画像中に写りこんでおり、不図示であるがハンド・アーム部以外の背景も写っている。この画像を図4の代表姿勢401における把持状態画像と称する。
【0039】
次に、サンプル部品18をサンプル設置台17に戻した上で、再度ハンド12に、図4の代表姿勢401の把持状態画像を撮像したときと全く同じ位置・角度に移動させる。この様子を示したのが把持状態503である。このとき、ハンド12はサンプル部品18を把持していないが、把持した場合と全く同じ指の開き具合としている。
【0040】
この状態で撮像した画像が、画像504である。これを代表姿勢401の非把持状態画像と称する。代表姿勢401における把持状態画像502と非把持状態画像504では、部品の存在する場所以外の領域は、背景だけでなくハンド(および写っていればアーム)の部分もほぼ同じ画像となる。従って、両画像の画素差分を取りその差の絶対値が所定の閾値以上の画素のみを残す画素マスクを生成し、把持状態画像502にこのマスクをかけると、ハンド12を除去したサンプル部品18のみで構成される対象物画像を得ることが可能である。ここで画素マスクの各画素位置(x,y)に対応する値mxyは、式(1)のように表すことができる。
【0041】
【数1】
【0042】
として表すことができる。ただし、dxyは式(2)により決定される。
【0043】
【数2】
【0044】
ここで、Ih_xyは、把持状態画像502の各画素位置(x,y)における輝度値であり、Ie_xyは非把持状態画像504における輝度値である。また、 Tm は所定の閾値を表す。
【0045】
このように生成された代表姿勢401における対象物の画像が、対象物画像505として示される。対象物画像505の各画素値Io_xyは、式(3)のように表される。
【0046】
【数3】
【0047】
このように、姿勢ごとに異なったハンド入りの非把持状態画像を差分取得のためのベース画像として用いることにより、背景のみならずハンド部分を除去して部品のみで構成される学習画像を生成することができる。
【0048】
本システムにおいては、このような不要画素の除去処理を、図2のCPU201の制御下で、画像処理回路部204を用いることにより、高速に演算処理している。処理した結果得られる画像は、RAM203に一旦保持され、必要に応じて大容量メモリ205に保存される。
【0049】
なお、このようにして得られた学習画像では、撮像装置13から観察してハンド12の指先により隠されているサンプル部品18の一部領域は、対象物画像505に示すように欠落した状態となっている。このような欠落部分は、代表姿勢や部品形状によっては、学習画像として用いるのに適さないくらいに大きくなる場合も有りうる。このような場合は、部品18の他の部分を把持して、同じ代表姿勢を取らせるようにアーム11を駆動して同様に学習画像を生成すればよい。もちろん、同じ代表姿勢に対し、異なった複数の部分を把持して複数の画像を生成し、これらを合成して欠落部分を補った1枚の学習画像を生成するようにすることも可能である。サンプル部品18はサンプル設置台17上に既知姿勢で置かれているため、部品モデルに基づき計算して所望の部分を把持することが可能である。また、異なった部分を把持しても撮像装置13に対して部品18が同一の位置・姿勢となるように移動させることが可能であるので、これら把持位置の異なる同姿勢の複数の画像の合成は、単に画素の排他的ORを取るだけでよく、極めて簡便な処理で実現が可能である。この画素単位での排他的OR処理も、画像処理回路204を用いて行われる。
【0050】
図6は、姿勢別対象物画像取得のための基本的な処理の流れを示すフローチャートである。処理は、処理ブロック61、処理ブロック62、処理ブロック63から構成される。処理ブロック61は、各代表姿勢に対応する把持状態画像取得処理を示している。まず、ステップS601において、ハンド12は、サンプル対象部品18を把持する。サンプル対象部品18は前述の通り、サンプル設置台17に既知の姿勢で置かれている。従って、サンプル部品18の把持指定部分を把持すべく、コントローラ14によりロボット・アーム11の各軸の駆動角度を計算することができ、この制御を行うことにより、ハンド12にサンプル部品18を把持させることができる。
【0051】
次に、ステップS602において、コントローラ14は、いくつかの代表姿勢のうちの一つを選択する。本実施形態では、先に説明した正二十面体の各面を4分割した測地ドーム300により、130個の代表姿勢を設定しているものとする。すなわち、各々の代表姿勢には、0から129までのIndex番号が付けられている。ここでは、代表姿勢Indexを0から順に1つずつ選択する。
【0052】
各代表姿勢を再現するための制御値は、不揮発性メモリ205内に、図12に示す形式のテーブルとして保持されている。テーブルにおいて、第1列目は、代表姿勢Indexである(実際のメモリイメージ上では連続的に格納するので省略可能である)。第2列目から第7列目までは、ロボット・アームの各軸の回転駆動量を示している。一方、第1行目は、部品16の基準姿勢を撮像装置13の撮像光軸上における所定位置に再現するための、各軸の絶対回転駆動量を示している。第2行目以降の各行は、他の基準姿勢から代表姿勢へ変化させるための各軸の相対回転駆動量を示している。ここで基準姿勢とは、サンプル設置台17に設置された状態の姿勢をそのまま撮像光軸上の所定位置に並行移動したものとしている。これらの回転駆動量は、130視点とロボット・アーム系および対象部品のモデルに基づき、予め計算されている。
【0053】
ステップS603において、コントローラ14は、ハンド12により把持されたサンプル対象部品18が、ステップS602で選択された代表姿勢になるように、図12の表に基づき、ロボット・アーム11の各軸を回転駆動する制御を行う。
【0054】
ステップS604において、撮像装置13は、ステップS602で選択された代表姿勢となったサンプル対象部品18を、ハンド12が含まれた状態で撮像して、把持状態画像として取得する。取得された把持状態画像は、選択されている代表姿勢のIndexと関連付けて、RAM203若しくは不揮発性大容量メモリ205に記憶される。ここで、図13(a)は大容量メモリ205に保持された把持状態画像のメモリイメージを示している。各々の代表姿勢Indexに対応する画像データが、輝度値のビットマップ形式で保持されている。なお、代表姿勢Indexに対応する画像データを、Indexの順に格納するものとすれば、Index値そのものは保持しなくてもよい。また、画像データは圧縮形式であってもよい。
【0055】
ステップS605において、コントローラ14は、130個の代表姿勢の全てに対する処理が完了したか否かを判定する。全てに対する処理が完了したと判定された場合(ステップS605;YES)、ステップS606へ進む。一方、全てに対する処理が完了していないと判定された場合(ステップS605;NO)、ステップS602へ戻る。
【0056】
ステップS606において、コントローラ14は、アーム11およびハンド12を制御して、ハンド12により把持されているサンプル対象部品18を、サンプル設置台17に戻す。以上で処理ブロック61における処理が終了する。
【0057】
次に、処理ブロック62は、非把持状態画像取得処理を示している。
【0058】
まず、ステップS607において、コントローラ14は、ハンド12を、対象部品を把持せずに、把持していた際と同じ状態とする。具体的には、本実施形態においては、ハンド12の二指の開き具合を、サンプル対象部品18を把持した際と同じ状態にする。
【0059】
次に、ステップS608において、コントローラ14は、130個の代表姿勢のうちの一つを選択する。この処理はステップS602と同様である。
【0060】
ステップS609において、コントローラ14は、ステップS603と同様に、図12のテーブルの制御値に基づき、非把持状態のハンド12を移動させる制御を行う。
【0061】
そしてステップS610において、撮像装置13は、ハンド12のみの非把持状態画像を撮像して、ステップS608で選択された代表姿勢と関連付けて、不揮発性大容量メモリ205に当該非把持状態画像を記憶する。図13(b)は、不揮発性大容量メモリ205に、代表姿勢Indexと対応付けて記憶された非把持状態画像のメモリイメージを示している。図13(a)と同様、本実施形態では、輝度値ビットマップ形式で当該非把持状態画像を保持している。
【0062】
ステップS611において、ステップS605と同様に、コントローラ14は、130個の代表姿勢の全てに対する処理が完了したか否かを判定する。全てに対する処理が完了したと判定された場合(ステップS611;YES)、ステップS612へ進む。一方、全てに対する処理が完了していないと判定された場合(ステップS611;NO)、ステップS608へ戻る。以上で処理ブロック62における処理が終了する。
【0063】
そして、処理ブロック63は、各代表姿勢に対応する姿勢別対象物画像生成処理を示している。
【0064】
ステップS612において、コントローラ14は、ステップS602およびステップS608と同様に、130個の代表姿勢のうちの1つを選択する。
【0065】
ステップS613において、コントローラ14は、ステップS612で選択された代表姿勢と関連付けて記憶されている把持状態画像と、非把持状態画像とを読み出す。すなわち、図13(a)、(b)のそれぞれから、選択された代表姿勢Indexに対応する画像ビットマップデータを読み出す。
【0066】
そして、ステップS614において、コントローラ14は、式(1)に相当する演算を行い、両画像の画素ごとに差分を取って差分マスクを生成する。この差分マスクは、先に述べた通り、差分値が所定値以上となる画素のみを残し、他の部分を除外するためのマスクである。
【0067】
ステップS615において、コントローラ14は、式(2)に相当する演算処理を行い、把持状態画像に差分マスクをかけることにより、対象物そのものが存在する画素以外の画素を除去する処理を行う。
【0068】
ステップS616において、コントローラ14は、選択された代表姿勢に対応する対象物画像を、不揮発性大容量メモリ205に保存する。
【0069】
ステップS617において、ステップS605およびステップS611と同様に、コントローラ14は、130個の代表姿勢の全てに対する処理が完了したか否かを判定する。全てに対する処理が完了したと判定された場合(ステップS617;YES)、処理を終了する。一方、全てに対する処理が完了していないと判定された場合(ステップS617;NO)、ステップS612へ戻る。以上で処理ブロック63における処理が終了する。
【0070】
このようにして得られた代表姿勢ごとの対象物画像を学習画像として用いることにより、例えば特許文献2に開示されるパラメトリック固有空間法のような学習アルゴリズムを用いて、姿勢パターン検出器を学習させることができる。これにより、姿勢パターン検出器は、入力された画像内の部品の位置を特定すると同時に、いずれの代表姿勢に似ているかを推定することが可能となる。
【0071】
なお、図6では、130個の代表姿勢を3回ずつ選択するループ構造での処理を説明したが、もちろん他のループ構造で同等の処理を行うことも可能である。例えば130個の代表姿勢を全て1回ずつ選択するループ構造とし、1つのループの中で、把持状態画像取得処理、非把持状態画像取得処理、および代表姿勢に対応する対象物画像生成処理を行うようにしてもよい。
【0072】
また、本実施形態においては、サンプル対象部品18をサンプル設置台17において既知姿勢とすることにより把持可能としたが、他の方法を用いてハンド12に把持させるようにすることもできる。例えば、人間の手により手渡しをしたり、コントローラ14に対するユーザI/Fを用いて手動でアーム11およびハンド12を操作することにより、サンプル対象部品18の所望の位置を把持させるようにしたりすることも可能である。
【0073】
さらに、非把持状態画像は、把持状態画像と合わせて撮像する必要はなく、予め撮像して不揮発性大容量メモリ205に記憶しておく構成としてもよい。このとき対象部品の種類に応じて、ハンド12を複数の非把持状態としたそれぞれについての非把持状態画像を記憶しておけば、複数種類の対象部品にも対応することが可能となる。
【0074】
さらに、非把持状態画像を撮像するのではなく、ハンド12およびアーム11の形状モデルを使用して、CG合成により非把持状態画像を生成する仕組みとしてもよい。CG合成された画像は実際に撮像された画像とは異なる可能性はあるが、差分マスクの生成に用いられるだけである。対象物画像として残される部分は実際に撮像された把持状態画像から得られるものであるため、比較的以後の学習に対する影響は少ない。
【0075】
また、本実施形態では撮像された把持状態画像と非把持状態画像とをそのまま用いて差分処理する例を示したが、各々の画像に対し、エッジ抽出等の何らかの前処理を行った特徴量抽出画像に対して同様の処理を行うようにしてもよい。
【0076】
この前処理は、例えば、取得された対象物画像を学習画像として用いる姿勢パターン検出処理において行われる前処理と同等の処理であってもよい。または、一旦姿勢別の対象物画像を取得した後に、当該対象物画像に特徴量抽出処理を行って、特徴量画像として対象物画像を大容量記憶メモリ205に記憶するようにしてもよい。
【0077】
また、本実施形態では所定姿勢として130個の代表姿勢を図12に示す制御値テーブルで個々に回転駆動量として定義する例を示したが、所定姿勢の定義方法はこの方法に限定されるものではない。例えば、測地ドーム300上の色々な姿勢を満遍なく取るように連続的に変化させるように制御し、所定間隔で撮像を行ってもよい。そして撮像時のロボット・アーム11の各関節軸の角度情報値を、例えば各軸に取り付けられたパルスエンコーダから読み出し、Indexに変えて姿勢情報として用いてもよい。
【0078】
あるいは、Indexやエンコーダ値によって一致する把持状態画像と非把持状態画像とを検索するのではなく、画像のマッチング処理を行って一致する画像を探してもよい。このとき姿勢が一致する把持状態画像と非把持状態画像とは、少なくともハンド部分の画素は一致しているため、姿勢が一致しない場合よりも相対的に一致度は高くなる。つまり、各ハンド部分を構成する画素値そのものを、姿勢を表す情報として利用することが可能である。もちろん、これをIndexやエンコーダ値と併用してもよく、ロボットの姿勢再現誤差が大きい場合には補正するための補助情報として用いることもできる。
【0079】
図7を参照して、このようにして取得された姿勢別の対象物画像を学習画像として用いて姿勢パターン検出器を学習させた後の、本実施形態における部品のピッキング処理について説明する。これはロボット・システムの定常的な使用状態であり、オンライン状態と称する。
【0080】
まずステップS701において、撮像装置13は、対象部品16が山積み状態となっている部品トレイ15を撮像する。
【0081】
次にステップS702において、コントローラ14は、学習済みの姿勢パターン検出器を用いて、対象部品16が山積み状態である部品トレイ15の画像中の個別の対象部品の位置・姿勢を推定する。ここで、相対的に部品トレイ15の下方に存在する部品は、上方の部品に一部あるいは全部が隠されているため、正確な位置・姿勢が推定できないが、通常ハンド12でピックアップする部品は部品トレイ15の上方のものであるため、特に問題は無い。また、本実施形態において、画像奥行き方向の位置は、検出された画像中の部品の大きさに基づいて推定される。姿勢パターン検出器に入力する撮像画像を、予め複数の倍率に変換しておくことにより、何れの変倍画像(以下、「ピラミッド画像」とも称する)から対象部品16が検出されたかに基づき、当該対象部品16の画像中における大きさを特定することができる。
【0082】
ステップS703において、コントローラ14は、位置・姿勢が推定できた対象部品16のうち、信頼度の高い部品を1つ選択する。ここで、信頼度の高い部品が複数検出された場合は、把持に適したものを選ぶようにすればよい。
【0083】
ステップS704において、コントローラ14は、ステップS703で選択された部品を把持するためにロボット・アーム11の各軸における駆動角度を計算し、ハンド12に当該部品を把持させる制御を行う。
【0084】
ステップS705において、コントローラ14は、ステップS704で把持された部品を移動し、所望の処理を行う。所望の処理とは、例えば部品パレットに所定姿勢で順序良く並べる処理であったり、他の部品へ組み付ける処理であったり、または他のカメラや他のセンサの近くに部品を運び欠陥を検査する処理等である。ロボット・システムの要求事項に応じて自由に所望の処理の設定が可能である。
【0085】
そして、ステップS706において、コントローラ14は、位置・姿勢が所定の信頼度以上で推定できた全ての部品に対して、処理が完了したか否かを判定する。全ての部品に対して処理が完了していると判定された場合(ステップS706;YES)、ステップS707へ進む。一方、全ての部品に対して処理が完了していないと判定された場合(ステップS706;NO)、ステップS703へ戻る。ステップS707において、コントローラ14は、部品トレイ15上の全ての対象部品16に対する処理が完了したか否かを判定する。この処理は、例えば空状態の部品トレイ15を予め撮像しておき、当該画像と、ステップS701で撮像された山積み状態の部品トレイ15の画像と、の差分を取ることにより行うことができる。あるいは、部品トレイ15の下方に重量センサを配置し、部品トレイ15のみの重量となったことを検知したら部品トレイ15が空であると判定するようにしても良い。全ての対象部品16に対する処理が完了したと判定された場合(ステップS707;YES)、処理を終了する。一方、全ての対象部品16に対する処理が完了していないと判定された場合(ステップS707;NO)、ステップS701へ戻る。
【0086】
以上、本実施形態のロボット・システムによれば、簡便な二次元画像の差分処理のみで、各姿勢に応じた不要部分を除去した対象物画像を生成することができる。
【0087】
<第2実施形態>
把持状態画像と非把持状態画像との差分のみにより生成した対象物画像には、影やノイズ等の影響で部品以外の部分が残ってしまう場合がある。本実施形態では、これに対処するために、対象部品モデルに基づく姿勢別形状マスクを利用する構成について説明する。図8を参照して、対象物画像に対するマスク処理の一例を説明する。マスクパターン801は、対象部品16の三次元モデルを撮像装置13のモデルに当て嵌めて計算した、代表姿勢401の見え方をする部品の外形輪郭に基づいて生成されたマスクパターンである。
【0088】
マスクパターン801において、白地の部分は画素を残す領域、黒地の部分は画素を除去する領域である。例えば、不揮発性大容量メモリ205は、姿勢別形状マスク保持手段としても機能し、予め計算しておいたマスクパターン801を姿勢と関連付けて記憶しておく。
【0089】
画像802は、図5で説明した把持状態画像と非把持状態画像とから生成された代表姿勢401に対する対象物画像505に対して、マスクパターン801をマッチングさせる様子を示している。影803は、対象物画像505内に残ってしまった影の部分を示す。
【0090】
ここでは、マスクパターン801を用いて、対象部品16の輪郭線に相当する線によりマッチングを行っている。画像802における対象物画像は、影803の影響が残っているが、ハンド部分や他の背景部分は概ね除去された画像である。そのため、図5の把持状態画像505に対して直接マッチングを行うよりも、より容易にマスクパターン801と一致させることができる。また、対象部品16のモデルから生成されたマスクパターン801と一致させることにより、対象部品16の位置姿勢をより正確に特定した対象物画像804を切り出すことが可能となる。
【0091】
なお、本実施形態ではマスクと輪郭線によるマッチングの例を示したが、画像の部品部分を構成する、例えばエッジ等の画像特徴量を用いて、より正確に位置姿勢を合わせてもよい。この場合は、モデルから生成されたマッチング用部品特徴量画像を用いて位置姿勢を特定した後に、マスクパターン801による切り出し処理を行う。
【0092】
或いは、所定の対象物画像生成時には、ハンド12により把持された対象部品16を撮像装置13に対して既知の位置に移動させていることを利用して、マッチングを行わずに画像中で対象部品16が存在するはずの位置へ直接マスクを掛けるようにしてもよい。もしくは、この位置をマッチング処理開始時の初期値として探索範囲を限定するようにしても良い。
【0093】
本実施形態によれば、マスクのみを行う場合と異なり、予め非把持状態画像との差分によりハンド部分が除去されるため、対象部品のみで構成された画像を得ることができる。
【0094】
<第3実施形態>
ロボット・システム周辺の照明条件すなわち環境光は、常に一定であるとは限らない。直接照射する照明は一定であっても、例えば日光の影響を受ける環境の場合は1日のうちで条件が変わってくるし、天候や季節、周辺に存在する物・人等によっても変わり得る。
【0095】
このような場合、同じ姿勢の対象物であっても、その見え方にかなりの変化が生ずる場合がある。異なった環境光条件に応じて、それぞれ異なった同一姿勢の対象物画像を用意して学習用画像として用いることにより、より良好な姿勢パターン検出処理が可能となる。本実施形態では、ロボット・システム内に環境光条件測定部を備える例を説明する。
【0096】
図9は、環境光が変化する環境で稼動している山積み部品把持システムのオンライン状態の一例を示している。図9におけるアーム11乃至サンプル部品18は、図1における同符号と同じであるので説明は省略する。
【0097】
環境光条件測定治具91は、環境光条件測定手段として機能し、オンライン状態であっても撮像装置13の視野内に入るように配置されている。
【0098】
画像92は、撮像装置13により撮像された当該オンライン状態の対象部品16が山積みされている部品トレイ15を含む画像の一例を示している。この画像92内には、枠93で示される位置に環境光測定治具91が写りこんでいる。環境光測定治具91は、多面体の立体構造をしており、各面は所定の反射率を持つ拡散反射面となっている。
【0099】
図10(a)および図10(b)は、画像92における環境光条件測定治具部分93を、異なった2つの時刻で切り出した画像の一例を示している。周辺環境あるいは太陽光の変化により、 図10(a)と図10(b)とでは見え方が異なっていることが分かる。本実施形態では、これら2つの画像に対し、まずは第1実施形態で説明した対象物画像を生成する場合と同様に、画素差分を取る。そして、式(4)で示されるこの画素差分合計値sが閾値以上となった場合に環境光が変化したものと判断し、閾値未満であれば環境光条件は一致しているものと判断する。
【0100】
【数4】
【0101】
画素差分合計値sの計算は、対象物画像と同様、画像処理回路部204を用いて行われる。本実施形態では、オンライン状態で図7に相当する処理を実行しつつ、環境光条件の変化を判別する処理を行う。この処理は例えば、ステップS701の処理に先んじて行われる。環境光条件の変化を検知すると一旦オンライン作業を中断し、図6で説明したような、各姿勢に対応する対象物画像の取得処理を行う。図9に示した通り、本ロボット・システムではオンライン状態においてもサンプル設置台17上に常に既知姿勢のサンプル部品18が設置されているので、必要に応じてサンプル部品18を正確に把持することが可能である。環境光の変化に対応して新たに取得し直した対象物画像を用いて学習し直すことにより、良好な姿勢推定を実現できる。
【0102】
また、オフライン状態の時に予め環境光条件に合致する姿勢別対象物画像を取得して、姿勢パターン検出処理を学習させておいてもよい。このような場合、オンライン状態では環境光条件を測定してこれに合致する条件で学習したパラメータを読み出して使用するようにする。学習パラメータに関連付ける環境光条件として、例えば図10に相当する環境光条件測定治具91の画像そのものを記憶しておけば、上記の変化を検知した場合と同様に、条件が合致するか否かを判別することができる。
【0103】
このように、本実施形態の環境光条件測定治具を用いると、対象物画像を生成した際と同様、極めて単純な画素差分に基づく処理で、環境光条件の変化や一致を検知することが可能となる。
【0104】
なお、本実施形態において、環境光条件測定治具91は多面体構造物としたが、もちろんこれに限るものではなく、例えば半球構造物を用いることも可能である。よりセンシティブにするため拡散反射面ではなく鏡面としてもよい。複数の治具を用意し、対象部品に応じて適した反射面を使い分けてもよい。
【0105】
また、このような構造物を用いず、環境光条件測定手段として機能する光量センサ等を用いてもよい。
【0106】
あるいは、時刻等に応じて環境光の変化が発生することが明らかな場合は、環境光条件測定治具を必ずしも用いる必要はない。この場合は、例えば、予め定められた所定時刻において、姿勢別対象物画像を取得するようにする。
【0107】
<第4実施形態>
上述の第1実施形態では、測地ドーム300に基づく130個の代表姿勢について説明したが、実際に山積みとなっている部品の姿勢は連続的に変化するため、130個の代表姿勢とは一致しない状態の中間姿勢が多数存在する。これらの中間姿勢は、最も近傍の代表姿勢に分類されてもよいが、代表姿勢のみの対象物画像を学習画像に用いるのでは、全ての姿勢を必ずしも良好に推定できるとは限らない。
【0108】
そこで本実施形態では、代表姿勢に対する対象物画像として、代表姿勢そのものの画像のみでなく、代表姿勢の近傍で微少に角度変動を加えた複数の姿勢の対象物画像を生成する。各代表姿勢に対応する学習画像として、これら複数の微少変動姿勢対象物画像を用いることにより、よりロバスト性の高い姿勢パターン検出処理が実現できる。
【0109】
図11は、代表姿勢ごとに所定の微少変動を加えた複数の対象物画像を生成する処理を説明するフローチャートである。当該処理は、処理ブロック111と、処理ブロック112と、処理ブロック113とから構成される。
【0110】
処理ブロック111は、図6で説明した処理ブロック61に相当し、各代表姿勢に対応する把持状態画像取得処理を示している。但し、ここでは代表姿勢毎に微少な姿勢変動を加えた複数の把持状態画像を取得している。
【0111】
ステップS1101乃至ステップS1103の各処理は、図6のステップS601乃至ステップS603の各処理と同様であるので説明は省略する。
【0112】
ステップS1104において、コントローラ14は、撮像装置13に対して選択された代表姿勢を取っている対象部品16に対し、微少な姿勢変動を与える。具体的には、コントローラ14は、対象部品16を把持しているハンド12の姿勢が微小に変化するように、ロボット・アーム11の少なくとも一部の軸に対し、例えば1度ずつ等の所定間隔で、±5度等の所定角度範囲を順次変動させる。ここでは、コントローラ14は、各軸の微少変動の組合せのうちの1つを選択して、ハンド12を回転させる。
【0113】
ステップS1105において、撮像装置13は、ステップS604と同様に把持状態の対象物画像を撮像し、選択されている代表姿勢に加えて、選択されている微少角度変動と関連付けて記憶する。
【0114】
ステップS1106において、コントローラ14は、所定角度範囲内の全ての各軸の微少変動組合せが選択されたか否かを判定する。全ての各軸の微少変動組合せが選択されたと判定された場合(ステップS1106;YES)、ステップS1107へ進む。一方、全ての各軸の微少変動組合せが選択されていないと判定された場合(ステップS1106;NO)、ステップS1104へ戻る。
【0115】
ステップS1107およびステップS1108の各処理は、それぞれステップS605およびステップS606との処理と同様であるため、説明を省略する。以上により、処理ブロック111の各処理が終了し、代表姿勢ごとに所定の微少変動を与えた複数の把持状態画像が生成される。
【0116】
次に、処理ブロック112は、図6で説明した処理ブロック62に想到し、非把持状態画像取得処理を示している。但し、処理ブロック111と同様、ここでは代表姿勢ごとに微少な姿勢変動を加えた複数の非把持状態画像を取得する。
【0117】
ステップS1109およびステップS1111の各処理は、ステップS607およびステップS609の各処理と同様であるため説明は省略する。
【0118】
ステップS1112において、コントローラ14は、ステップS1104と同様に、非把持状態のハンド12に対して微少な姿勢変動を与える。変動角度の間隔と範囲は、ステップS1104と全く同じであり、コントローラ14は、ここでは各軸変動の組合せの一つを選択する。
【0119】
ステップS1113において、撮像装置13は、ステップS610と同様に非把持状態画像を撮像し、選択されている代表姿勢に加えて、選択されている微少角度変動と関連付けて記憶する。
【0120】
ステップS1114において、ステップS1106と同様、コントローラ14は、所定角度範囲内の全ての各軸の微少変動組合せが選択されたか否かを判定する。全ての各軸の微少変動組合せが選択されたと判定された場合(ステップS1114;YES)、ステップS1115へ進む。一方、全ての各軸の微少変動組合せが選択されていないと判定された場合(ステップS1114;NO)、ステップS1112へ戻る。
【0121】
ステップS1115の処理は、ステップS611の処理と同様であるため説明は省略する。以上により、処理ブロック112の各処理が終了する。
【0122】
処理ブロック113は、図6で説明した処理ブロック63と同様であり、姿勢別対象物画像生成処理を示している。但し、ここでは代表姿勢ごとに微少な姿勢変動を加えた複数の対象物画像を生成する。
【0123】
ステップS1116の処理は、ステップS612の処理と同様の処理であるため、説明を省略する。
【0124】
ステップS1117において、コントローラ14は、ステップS1104およびステップS1112で選択された変動角度の間隔および範囲と同じ変動角度の間隔および範囲での各軸変動の組合せ一つを選択する。ステップS1118において、コントローラ14は、選択されている代表姿勢に加えて、微少変動と対応付けて記憶されている、把持状態画像と非把持状態画像とを読み出す。
【0125】
ステップS1119およびステップS1120の各処理は、それぞれステップS614およびステップS615の各処理と同様であるため、説明を省略する。
【0126】
ステップS1121において、コントローラ14は、生成された対象物画像を、選択されている代表姿勢の対象物画像の一つとして関連付けて、不揮発性大容量メモリ205に保存する。
【0127】
ステップS1122において、コントローラ14は、ステップS1106およびステップS1114と同様に、所定角度範囲内の全ての各軸の微少変動組合せが選択されて対象物画像の生成が完了したか否かを判定する。全ての各軸の微少変動組合せが選択されて対象物画像の生成が完了したと判定された場合(ステップS1122;YES)、ステップS1123へ進む。一方、全ての各軸の微少変動組合せが選択されておらず対象物画像の生成が完了していないと判定された場合(ステップS1122;NO)、ステップS1117へ戻る。
【0128】
ステップS1123の処理は、ステップS617の処理と同様であるため説明を省略する。以上により、処理ブロック113の各処理が終了し、図11のフローチャートに示す処理の全体が終了する。
【0129】
以上、本実施形態によれば、各代表姿勢に対して、複数の微少な姿勢変動を加えた対象物画像を生成することができる。これを各代表姿勢の姿勢パターン検出処理のための学習データとして用いることにより、任意姿勢に対する検出性能の向上が見込まれる。
【0130】
なお、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。例えば、生産用ロボット・システムに限らず、家庭用ロボット等の種々のロボット・システムに対しても適用可能である。
【0131】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
対象物の画像を生成する画像生成装置であって、
前記対象物を把持する把持手段と、
前記対象物と前記把持手段との少なくとも1つの画像を撮像する撮像手段と、
前記把持手段により把持された前記対象物が、前記撮像手段に対して複数の所定姿勢のうちの1つの所定姿勢となるように前記把持手段を制御する制御手段と、
前記撮像手段により撮像された前記1つの所定姿勢にある前記対象物および当該対象物が当該1つの所定姿勢となるように制御された前記把持手段の画像と、当該1つの所定姿勢とを関連付けて、把持状態画像として取得する第1の画像取得手段と、
前記対象物を把持しておらず且つ前記対象物が前記1つの所定姿勢となるように制御された姿勢と一致する所定姿勢である前記把持手段の画像を非把持状態画像として取得する第2の画像取得手段と、
前記把持状態画像と、前記非把持状態画像との差分に基づいて、前記1つの所定姿勢について前記対象物のみの対象物画像を生成する画像生成手段と、
を備えることを特徴とする画像生成装置。
【請求項2】
前記把持手段が前記対象物を把持していない場合に、
前記制御手段は、前記対象物が前記1つの所定姿勢となるように制御された姿勢と一致する所定姿勢となるように前記把持手段をさらに制御し、
前記撮像手段は、前記制御手段により制御された前記把持手段の画像をさらに撮像し、
前記第2の画像取得手段は、前記撮像手段により撮像された前記把持手段の画像を、前記一致する所定姿勢と関連付けて、前記非把持状態画像として取得することを特徴とする請求項1に記載の画像生成装置。
【請求項3】
前記撮像手段により撮像された前記把持手段の画像を非把持状態画像として、前記一致する所定姿勢と関連付けて記憶する画像記憶手段をさらに備え、
前記第2の画像取得手段は、前記画像記憶手段に予め記憶されている前記非把持状態画像を読み出して取得することを特徴とする請求項1に記載の画像生成装置。
【請求項4】
前記制御手段は、前記対象物の姿勢が連続的に変化するように前記把持手段を制御し、
前記撮像手段は、所定の時間間隔で前記対象物と前記把持手段との少なくとも1つの画像を撮像し、
前記第1の画像取得手段および前記第2の画像取得手段は、前記撮像手段により所定の時間間隔で撮像された前記画像のそれぞれを、前記複数の所定姿勢のうちの前記1つの所定姿勢に対応する前記把持状態画像および非把持状態画像として取得することを特徴とする請求項1乃至3の何れか1項に記載の画像生成装置。
【請求項5】
前記画像生成手段により生成された前記対象物画像と、前記撮像手段により撮像された前記画像とから、前記把持手段により把持された前記対象物の位置および姿勢を推定する位置姿勢推定手段をさらに備えることを特徴とする請求項1乃至4の何れか1項に記載の画像生成装置。
【請求項6】
前記画像生成手段は、複数の異なる環境光条件で前記対象物画像を生成することを特徴とする請求項1乃至5の何れか1項に記載の画像生成装置。
【請求項7】
環境光条件の変化を検知する検知手段をさらに備え、
前記画像生成手段は、前記検知手段により前記環境光条件の変化が検知された際に、前記対象物画像を生成することを特徴とする請求項6に記載の画像生成装置。
【請求項8】
前記検知手段は、前記撮像手段の撮像範囲内に配置された構造物を、前記撮像手段が複数の時点で撮像した画像に基づいて、環境光条件の変化を検知することを特徴とする請求項7に記載の画像生成装置。
【請求項9】
前記把持手段による把持可能範囲内に、前記対象物を既知姿勢で保持しておく保持手段をさらに備え、
前記把持手段は、前記保持手段により保持された前記対象物を把持することを特徴とする請求項1乃至8の何れか1項に記載の画像生成装置。
【請求項10】
前記制御手段は、前記対象物の前記複数の所定姿勢のそれぞれに対して所定の姿勢変動を与えるように前記把持手段を制御し、
前記1つの所定姿勢は、前記複数の所定姿勢のそれぞれに対して前記姿勢変動がなされた姿勢であることを特徴とする請求項1乃至9の何れか1項に記載の画像生成装置。
【請求項11】
前記画像生成手段により生成された前記対象物画像をマスク処理するためのマスクパターンを、前記対象物の前記1つの所定姿勢ごとに保持するマスクパターン保持手段と、
前記画像生成手段により生成された前記対象物画像を前記マスクパターンに基づいてマスク処理するマスク処理手段と、
をさらに備えることを特徴とする請求項1乃至10の何れか1項に記載の画像生成装置。
【請求項12】
把持手段と、撮像手段と、制御手段と、第1の画像取得手段と、第2の画像取得手段と、画像生成手段とを備える、対象物の画像を生成する画像生成装置における画像生成方法であって、
前記把持手段が、前記対象物を把持する把持工程と、
前記撮像手段が、前記対象物と前記把持手段との少なくとも1つの画像を撮像する撮像工程と、
前記制御手段が、前記把持手段により把持された前記対象物が、前記撮像手段に対して複数の所定姿勢のうちの1つの所定姿勢となるように前記把持手段を制御する制御工程と、
前記第1の画像取得手段が、前記撮像手段により撮像された前記1つの所定姿勢にある前記対象物および当該対象物が当該1つの所定姿勢となるように制御された前記把持手段の画像と、当該1つの所定姿勢とを関連付けて、把持状態画像として取得する第1の画像取得工程と、
前記第2の画像取得手段が、前記対象物を把持しておらず且つ前記対象物が前記1つの所定姿勢となるように制御された姿勢と一致する所定姿勢である前記把持手段の画像を非把持状態画像として取得する第2の画像取得工程と、
前記画像生成手段が、前記把持状態画像と、前記非把持状態画像との差分に基づいて、前記1つの所定姿勢について前記対象物のみの対象物画像を生成する画像生成工程と、
を備えることを特徴とする画像生成方法。
【請求項13】
請求項12に記載の画像生成方法の各工程をコンピュータに実行させるためのプログラム。
【請求項1】
対象物の画像を生成する画像生成装置であって、
前記対象物を把持する把持手段と、
前記対象物と前記把持手段との少なくとも1つの画像を撮像する撮像手段と、
前記把持手段により把持された前記対象物が、前記撮像手段に対して複数の所定姿勢のうちの1つの所定姿勢となるように前記把持手段を制御する制御手段と、
前記撮像手段により撮像された前記1つの所定姿勢にある前記対象物および当該対象物が当該1つの所定姿勢となるように制御された前記把持手段の画像と、当該1つの所定姿勢とを関連付けて、把持状態画像として取得する第1の画像取得手段と、
前記対象物を把持しておらず且つ前記対象物が前記1つの所定姿勢となるように制御された姿勢と一致する所定姿勢である前記把持手段の画像を非把持状態画像として取得する第2の画像取得手段と、
前記把持状態画像と、前記非把持状態画像との差分に基づいて、前記1つの所定姿勢について前記対象物のみの対象物画像を生成する画像生成手段と、
を備えることを特徴とする画像生成装置。
【請求項2】
前記把持手段が前記対象物を把持していない場合に、
前記制御手段は、前記対象物が前記1つの所定姿勢となるように制御された姿勢と一致する所定姿勢となるように前記把持手段をさらに制御し、
前記撮像手段は、前記制御手段により制御された前記把持手段の画像をさらに撮像し、
前記第2の画像取得手段は、前記撮像手段により撮像された前記把持手段の画像を、前記一致する所定姿勢と関連付けて、前記非把持状態画像として取得することを特徴とする請求項1に記載の画像生成装置。
【請求項3】
前記撮像手段により撮像された前記把持手段の画像を非把持状態画像として、前記一致する所定姿勢と関連付けて記憶する画像記憶手段をさらに備え、
前記第2の画像取得手段は、前記画像記憶手段に予め記憶されている前記非把持状態画像を読み出して取得することを特徴とする請求項1に記載の画像生成装置。
【請求項4】
前記制御手段は、前記対象物の姿勢が連続的に変化するように前記把持手段を制御し、
前記撮像手段は、所定の時間間隔で前記対象物と前記把持手段との少なくとも1つの画像を撮像し、
前記第1の画像取得手段および前記第2の画像取得手段は、前記撮像手段により所定の時間間隔で撮像された前記画像のそれぞれを、前記複数の所定姿勢のうちの前記1つの所定姿勢に対応する前記把持状態画像および非把持状態画像として取得することを特徴とする請求項1乃至3の何れか1項に記載の画像生成装置。
【請求項5】
前記画像生成手段により生成された前記対象物画像と、前記撮像手段により撮像された前記画像とから、前記把持手段により把持された前記対象物の位置および姿勢を推定する位置姿勢推定手段をさらに備えることを特徴とする請求項1乃至4の何れか1項に記載の画像生成装置。
【請求項6】
前記画像生成手段は、複数の異なる環境光条件で前記対象物画像を生成することを特徴とする請求項1乃至5の何れか1項に記載の画像生成装置。
【請求項7】
環境光条件の変化を検知する検知手段をさらに備え、
前記画像生成手段は、前記検知手段により前記環境光条件の変化が検知された際に、前記対象物画像を生成することを特徴とする請求項6に記載の画像生成装置。
【請求項8】
前記検知手段は、前記撮像手段の撮像範囲内に配置された構造物を、前記撮像手段が複数の時点で撮像した画像に基づいて、環境光条件の変化を検知することを特徴とする請求項7に記載の画像生成装置。
【請求項9】
前記把持手段による把持可能範囲内に、前記対象物を既知姿勢で保持しておく保持手段をさらに備え、
前記把持手段は、前記保持手段により保持された前記対象物を把持することを特徴とする請求項1乃至8の何れか1項に記載の画像生成装置。
【請求項10】
前記制御手段は、前記対象物の前記複数の所定姿勢のそれぞれに対して所定の姿勢変動を与えるように前記把持手段を制御し、
前記1つの所定姿勢は、前記複数の所定姿勢のそれぞれに対して前記姿勢変動がなされた姿勢であることを特徴とする請求項1乃至9の何れか1項に記載の画像生成装置。
【請求項11】
前記画像生成手段により生成された前記対象物画像をマスク処理するためのマスクパターンを、前記対象物の前記1つの所定姿勢ごとに保持するマスクパターン保持手段と、
前記画像生成手段により生成された前記対象物画像を前記マスクパターンに基づいてマスク処理するマスク処理手段と、
をさらに備えることを特徴とする請求項1乃至10の何れか1項に記載の画像生成装置。
【請求項12】
把持手段と、撮像手段と、制御手段と、第1の画像取得手段と、第2の画像取得手段と、画像生成手段とを備える、対象物の画像を生成する画像生成装置における画像生成方法であって、
前記把持手段が、前記対象物を把持する把持工程と、
前記撮像手段が、前記対象物と前記把持手段との少なくとも1つの画像を撮像する撮像工程と、
前記制御手段が、前記把持手段により把持された前記対象物が、前記撮像手段に対して複数の所定姿勢のうちの1つの所定姿勢となるように前記把持手段を制御する制御工程と、
前記第1の画像取得手段が、前記撮像手段により撮像された前記1つの所定姿勢にある前記対象物および当該対象物が当該1つの所定姿勢となるように制御された前記把持手段の画像と、当該1つの所定姿勢とを関連付けて、把持状態画像として取得する第1の画像取得工程と、
前記第2の画像取得手段が、前記対象物を把持しておらず且つ前記対象物が前記1つの所定姿勢となるように制御された姿勢と一致する所定姿勢である前記把持手段の画像を非把持状態画像として取得する第2の画像取得工程と、
前記画像生成手段が、前記把持状態画像と、前記非把持状態画像との差分に基づいて、前記1つの所定姿勢について前記対象物のみの対象物画像を生成する画像生成工程と、
を備えることを特徴とする画像生成方法。
【請求項13】
請求項12に記載の画像生成方法の各工程をコンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図11】
【図12】
【図13】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図11】
【図12】
【図13】
【図9】
【図10】
【公開番号】特開2012−101320(P2012−101320A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−252208(P2010−252208)
【出願日】平成22年11月10日(2010.11.10)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願日】平成22年11月10日(2010.11.10)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]