対象物把持装置、対象物把持装置の制御方法、およびプログラム
【課題】対象物の姿勢を推定して把持を行う処理を高速化すると共に、把持動作の失敗確率を低減する。
【解決手段】対象物の姿勢を姿勢推定パラメータに基づいて推定する推定部と、推定部により推定された対象物の姿勢に基づいて対象物を把持する把持部と、把持部による把持の失敗を検知する検知部と、検知部により把持の失敗が検知された際の対象物の姿勢に基づいて姿勢推定パラメータを修正する修正部と、を備える。
【解決手段】対象物の姿勢を姿勢推定パラメータに基づいて推定する推定部と、推定部により推定された対象物の姿勢に基づいて対象物を把持する把持部と、把持部による把持の失敗を検知する検知部と、検知部により把持の失敗が検知された際の対象物の姿勢に基づいて姿勢推定パラメータを修正する修正部と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対象物の姿勢を推定して把持を行う対象物把持装置、対象物把持装置の制御方法、およびプログラムに関する。
【背景技術】
【0002】
山積みされた部品等の対象物の状態をカメラ等のセンサで撮像して情報を取得し、取得した画像等の情報から各対象物の位置や姿勢を推定して、ロボットに把持させて順次対象物を取り出す技術が広く開発されている。特許文献1および特許文献2は、対象物を把持する処理の高速化を実現する手法を開示している
特許文献1に開示される技術は、対象物(部品)の複数の特定部位が基準姿勢を取るときの形状を特定する複数の照合モデルを持ち、その照合優先順位を装置の使用時に実際に認識された回数の多い順とすることにより、認識処理の高速化を図っている。
【0003】
特許文献2に開示される技術は、粗位置が認識された対象物(ワーク)の集合から、3次元位置の測定に失敗した対象物又は取出しに失敗した対象物を除外することにより処理の高速化を図ると共に、次に選択される対象物の把持失敗確率を低減している。
【0004】
また、特許文献3に開示される技術は、6軸力角センサの加重の変化に基づき把持の失敗等の異常動作を検知し、その後のリカバリを行っている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第3225740号公報
【特許文献2】特許第4226623号公報
【特許文献3】特開2000−263481号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
山積みされた対象物の集合から順次対象物を取り出すためには、個々の対象物の位置や姿勢を推定する必要がある。作業効率の面から、位置姿勢推定に要する時間を短縮することが求められている。
【0007】
また、部品等の対象物について、ロボットのアームの先端に備えられたマニュプレータ(ハンド)で把持すべき部位は、通常、特定の部位に定められている。そのため、対象物の姿勢によっては特定部位にハンドがアクセスできずに把持に失敗する場合がある。また、対象物の姿勢によっては、センサより得られる情報が他の姿勢と似ている場合があり、誤った姿勢推定を行い易い場合もある。
【0008】
特許文献1に開示される技術は、複数の特定部位が基準姿勢を取ったことを認識した回数を考慮して高速化を図っているが、誤った姿勢を認識したり把持に失敗したりした場合のことは考慮していない。
【0009】
特許文献2に開示される技術は、精密な3次元位置の測定に失敗した場合や対象物の取出しに失敗した場合の粗位置を考慮して高速化を図っているが、失敗した場合の当該対象物の姿勢については考慮していない。
【0010】
特許文献3に開示される技術は、把持動作の異常検知とその後のリカバリを、オペレータを呼ばずに行うもので、高速化を目的とするものではない。
【0011】
すなわち従来技術には、対象物の把持に失敗した際の当該対象物の姿勢を考慮していないという課題がある。
【0012】
上記の課題に鑑み、本発明は、対象物の把持動作の失敗確率を低減しつつ、対象物の姿勢を推定して把持を行う処理を高速化することを目的とする。
【課題を解決するための手段】
【0013】
上記の目的を達成する本発明に係る対象物把持装置は、
対象物の姿勢を姿勢推定パラメータに基づいて推定する推定手段と、
前記推定手段により推定された前記対象物の姿勢に基づいて前記対象物を把持する把持手段と、
前記把持手段による把持の失敗を検知する検知手段と、
前記検知手段により把持の失敗が検知された際の前記対象物の姿勢に基づいて前記姿勢推定パラメータを修正する修正手段と、
を備えることを特徴とする。
【発明の効果】
【0014】
本発明によれば、対象物の把持動作の失敗確率を低減しつつ、対象物の姿勢を推定して把持を行う処理を高速化することが可能となる。
【図面の簡単な説明】
【0015】
【図1】対象物把持装置の構成を示す図。
【図2】測地ドームの考え方を説明する図。
【図3】対象物の代表姿勢の例を示す図。
【図4】(a)撮像装置で撮像された山積み状態の対象物の画像例を示す図、(b)テンプレート・マッチングによる姿勢推定処理のためのウィンドウ・スキャンの説明図。
【図5】テンプレート・マッチングによる姿勢推定処理の手順を示すフローチャート。
【図6】対象物把持処理の手順を示すフローチャート。
【図7】ツリー型姿勢推定処理の処理構造を説明する図。
【図8】ツリー型姿勢推定処理における切り出し局所矩形領域のスキャンおよび投票処理を説明する図。
【図9】ツリー型姿勢推定処理の手順を示すフローチャート。
【図10】ツリー型姿勢推定処理における失敗姿勢に対応する照合データの削除の様子を示す図。
【図11】撮像装置で撮像される領域の分割の一例を示す図。
【図12】失敗姿勢の周辺姿勢を説明する図。
【図13】把持の失敗をユーザが対象物把持装置へ通知する機構を備えた対象物把持装置の構成を示す図。
【図14】対象物の姿勢は変動するが位置が略一定である場合の対象物把持装置の一例を示す図。
【発明を実施するための形態】
【0016】
(第1実施形態)
図1を参照して、第1実施形態に係る対象物把持装置の構成を説明する。対象物把持装置は、ロボット・アーム101と、ハンド機構102と、撮像装置103と、コントローラ106とを備える。
【0017】
ハンド機構102は、ロボット・アーム101のエンドエフェクタとしてのハンド機構である。撮像装置103は、トレイ105上の部品104の状態を取得するセンサであり、山積み状態のトレイ105の画像を取得する。なお撮像装置103は、二次元輝度画像情報を得るための単眼カメラであってもよく、または距離情報を得るためのステレオカメラやTOFセンサ、レーザーレンジファインダーのような測距センサであってもよく、本発明において限定されるものではない。部品104は、把持する対象物である部品の一例である。トレイ105は、複数の部品104が山積み状態で積載されたトレイである。
【0018】
コントローラ106は、ロボット・アーム101、ハンド機構102、撮像装置103を制御する。コントローラ106は、カメラ制御部107と、位置姿勢推定処理部108と、姿勢推定辞書格納部109と、取出し部品設定部110と、ロボット制御部111と、把持失敗検知部112と、推定処理修正部113と、を備える。
【0019】
カメラ制御部107は、撮像装置103を制御すると共に、撮像装置103が撮像したトレイ105の画像情報を取得する。位置姿勢推定処理部108は、カメラ制御部107により取得された画像情報を、姿勢推定辞書格納部109に格納されている辞書データを用いて分析処理し、画像中に含まれる部品104の位置および姿勢を推定する。姿勢推定辞書格納部109は、部品104の位置および姿勢を推定するための辞書データ等のパラメータを格納する。この姿勢推定パラメータには、姿勢別の照合優先順位や重み係数を含むようにしても良い。
【0020】
取出し部品設定部110は、位置および姿勢を推定した多数の部品の中から、順次把持すべき部品を選択し、ハンド気候102により把持される部品上の被把持部の情報をロボット制御部111へ通知する。把持すべき部品の選択方法として、例えば最も上部にあって被把持部が隠されておらず把持するための制御が容易である部品や、位置姿勢推定処理部108における推定の信頼度が高い部品を選択する等の方法が考えられる。
【0021】
ロボット制御部111は、取出し部品設定部110により選択された部品104の被把持部の情報に基づいて、部品104の把持動作および後処理動作を行うための命令を生成し、ロボット・アーム101およびハンド102を制御して動作させる。
【0022】
把持失敗検知部112は、ハンド機構102に備えられた不図示の異常検知用センサの出力を、ロボット制御部111を介して受け取る。そして把持失敗検知部112は、当該センサの出力を分析することにより、部品104の把持に成功したか否かを判別する。異常検知用センサには、例えばハンド機構102に備えた不図示の力覚センサを用いてもよく、例えば特許文献3に開示される技術を用いて把持の失敗を検知することが可能である。尚、撮像装置103により撮像される画像を分析して把持の失敗を検知する構成であってもよい。例えば、撮像された画像中において、部品104が把持部から離れた位置にあることを認識して把持の失敗を検知してもよい。
【0023】
推定処理修正部113は、把持失敗検知部112により把持の失敗が検知されると、その際の対象物(部品104)の姿勢に基づいて姿勢推定辞書格納部109に保持されている姿勢推定パラメータを修正する。
【0024】
ここで、前述の位置姿勢推定処理部108は、対象物の位置を検出すると共に姿勢をクラス分けするクラス分類器である。各クラスに対応する姿勢を代表姿勢と呼び、測地ドームと面内回転を組み合わせて定義する。ここで測地ドームとは、正多面体の各頂点や面素の中心点、或いは、各三角形面素を再帰的に同一面積の三角形に分割してそれらの頂点を用いることで、球面を均一に離散化表現する公知の手法である。
【0025】
図2(a)は、正二十面体を基本とする測地ドームの例を示している。正二十面体の中心点に、所定姿勢の対象物の重心点が一致するように配置し、例えば、各頂点と各三角形面素の中心点とを視点として観察した際の対象物の見え方を代表姿勢として定義とする。各視点からの視線は、対象物の中心点すなわち正二十面体の重心点で交差する。正二十面体においては頂点の数は16、面素の数は20であるので、正二十面体をそのまま用いた測地ドームでは、計36の視点からの代表姿勢が定義可能である。
【0026】
しかしながら、通常これだけの粒度では、把持を行うのに十分な精度とはならないため、本実施形態では、各面素の辺をさらに2分割している。すると正二十面体の各正三角形面素は、図2(b)に示すように4つの同一面積の小正三角形で構成されることになる。ここで視点201は、元の正二十面体の頂点と面素中央点とで定義された計4点の視点を表しており、視点202は小三角形に分割することにより増えた計6点の視点を表している。面中心点の数は分割前の元の三角形面素の数(20面)の4倍、頂点の数は元の正二十面体の辺の数分(=34本)増えることになるので、この分割により16+34+20×4=130通りの視点からの代表姿勢を定義することができる。
【0027】
図2(c)は、面内回転の例を示している。画像205は、図2(a)における視点204より取得した部品の画像であって、これを所定角度ずつ回転させることにより、図に示すような複数の代表姿勢を得ることができる。本実施形態においては、面内回転を10度ずつで定義するものとする。すなわち、上述の130通りの各視点に対し36通りの面内回転パターンが存在することになるので、130×36=4680通りの代表姿勢が定義される。
【0028】
ここで視点とは撮像装置103の観察位置であるので、代表姿勢とは撮像装置103で取得される個々の対象物の画像のバリエーションに対応する。姿勢推定辞書格納部109は、予め部品の姿勢を変化させて撮像した全ての代表姿勢の画像データから、機械学習等の技術により生成した照合データを保持している。各代表姿勢の画像データの例を5つ、図3(a)−(e)に示す。
【0029】
本実施形態においては、位置姿勢推定処理部108は、テンプレート・マッチング処理により、撮像装置103を基準とする座標系であるカメラ座標系における各対象物の位置の推定処理と、当該対象物の代表姿勢のクラス分け処理とを行う。
【0030】
従って、姿勢推定辞書格納部109には、4680通りの代表姿勢クラスに対応する照合データ(テンプレート)を全て保持している。しかしながら、各視点から0°回転の130通りのテンプレートのみを保持しておき、面内回転分については照合の都度、回転処理により生成するようにすることで、保持するデータ量を削減するようにする構成であってもよい。
【0031】
ここで、カメラ座標系における対象物の基準点(物体中心等)の位置を、カメラ座標系の原点からの平行移動ベクトルPwとして表す。これが推定される対象物の位置に相当する。カメラ座標系から見た奥行き方向の位置は、検出された部品の画像中の大きさに基づいて推定してもよく、若しくは、レンジファインダーのような測距センサを用いてより正確に推定してもよい。
【0032】
そして、いずれの代表姿勢クラスのテンプレートに合致したかに基づいて、検出された対象物の姿勢を推定する。ここで対象物の姿勢は、カメラ座標系における部品座標系3軸の方向ベクトルの組みによる姿勢行列EW=[eWX、eWY、eWZ]で表すことができる。eWX、eWY、eWZは、部品の基準位置からそれぞれ3方向に直交して固定された、長さ1の単位列ベクトルである。すなわち、各代表姿勢には、それぞれ固有の姿勢行列EWが対応付けられている。
【0033】
また、ハンド機構102で把持すべき部品上の把持位置(被把持部)は、通常、特定の部位に定められている。この被把持部を正しく把持した状態は、ハンド機構102を基準とするハンド座標系における同様の対象物位置Phおよび姿勢行列Ehにより、予め定義される。従って、ロボット制御部111は、把持しようとする部品のカメラ座標系における位置Pwおよび姿勢EWを、ハンド座標系における位置Phおよび姿勢Ehと一致させるように、ロボット・アーム101の各関節やハンド機構102に対する把持動作計画および制御を行う。
【0034】
<位置姿勢推定処理>
ここで、図4(a)、図4(b)および図5を参照して、位置姿勢推定処理部108で行われるテンプレート・マッチング処理による位置姿勢推定手法を説明する。図4(a)は、撮像装置103により撮像された画像データの一例である。この画像データには、トレイ105上に多数積載された山積み状態の部品104が撮像されている。
【0035】
図4(b)は、位置姿勢推定処理部108が、カメラ制御部107を介して送られてきた図4(a)の画像をスキャン処理して、テンプレート・マッチングによる位置姿勢推定処理を行う様子を示している。ここで、図4(a)の画像に相当する画像データ400上に設定された、テンプレートと同サイズの切り出しウィンドウ401により画像全域(若しくは、部品の存在することが予め分かっている範囲)を、隈なくスキャンする。
【0036】
切り出しウィンドウ401により切り出された矩形領域の部分画像は、各代表姿勢に対応する照合データ(すなわち、テンプレート)と相関演算され、当該位置に代表姿勢の部品が有るかどうかが判別される。ここで用いられるテンプレートは、各代表姿勢で所定の距離から撮像された(すなわち切り出しウィンドウ401と等しい大きさの)部品画像、若しくは部品画像に対し所定のエッジ抽出等の前処理を行って生成された画像データである。尚、所定の前処理を行ったテンプレートを用いる場合は、切り出し処理を行う前に、予め画像データ400の全域に対して同じ前処理を掛けておく。
【0037】
以下、図5のフローチャートを参照して、本実施形態に係る位置姿勢推定処理部108により行われる部品の位置姿勢推定処理の手順を説明する。
【0038】
S501において、位置姿勢推定処理部108は、画像データ400上に設定する切り出しウィンドウ401の所定の位置を初期位置とする。本実施形態では画像データ400の全域を部品の存在する可能性のある領域としているので、画像左上を切り出しウィンドウ401の初期位置とする。
【0039】
S502において、位置姿勢推定処理部108は、画像データ400から現在の切り出しウィンドウ位置の矩形領域の部分画像を切り出して取得する。
【0040】
S503おいて、位置姿勢推定処理部108は、姿勢推定辞書格納部109に格納されている4680通りの各代表姿勢に対応するテンプレートの中から、最初に任意の代表姿勢に対応するテンプレートを選択する。なお、ここでは4680通りのテンプレートの場合を例に挙げて説明するが、他の数のテンプレートを用いてもよい。
【0041】
S504において、位置姿勢推定処理部108は、切り出された部分画像について、S503で選択された代表姿勢テンプレートとの相関値を算出する(相関値算出処理)。
【0042】
S505において、位置姿勢推定処理部108は、S504で計算された相関値が所定値以上であるか否かを判別する。相関値が所定値以上であると判別された場合(S505;YES)、S506へ進む。一方、相関値が所定値より小さいと判別された場合(S505;NO)、S507へ進む。
【0043】
S506において、位置姿勢推定処理部108は、現在の切り出しウィンドウ位置に、選択された代表姿勢の部品が存在するものと推定して、その位置と代表姿勢とを位置姿勢推定結果リストに保存する。その後、S507へ進む。
【0044】
S507において、位置姿勢推定処理部108は、全ての代表姿勢のテンプレートを用いた照合処理が完了したか否かを判定する。全ての照合処理が完了したと判定された場合(S507;YES)、S509へ進む。一方、全ての照合処理が完了していないと判定された場合(S507;NO)、S508へ進む。
【0045】
S508において、位置姿勢推定処理部108は、姿勢推定辞書格納部109に格納されている4680通りの各代表姿勢に対応するテンプレートの中から、次の任意の代表姿勢に対応するテンプレートを選択する。その後、S504へ戻る。
【0046】
S509において、位置姿勢推定処理部108は、切り出しウィンドウ401のスキャンが最後の位置まで行われたか否かを判定する。切り出しウィンドウ401が最後の位置まで移動したと判定された場合(S509;YES)、S511へ進む。一方、切り出しウィンドウ401が最後の位置まで移動していないと判定された場合(S509;NO)、S510へ進む。
【0047】
S510において、位置姿勢推定処理部108は、全ての姿勢別テンプレートに対する処理が完了したので、切り出しウィンドウ401を次の位置に移動させる。その後、S502へ戻る。
【0048】
なお、このときのスキャンのルールは、図4(b)に示すように、右方向に1画素ずつ切り出しウィンドウ401をずらして行き、画像400の右端に到達したら、1画素下の列の左端に移動し、以後、画像400の右下端まで同様の処理を繰り返すというものである。ここで、処理を高速化するために、一度に移動する画素数を1画素ではなく数画素とすることも、もちろん可能であるが、その場合は位置検出精度が数画素単位となる。
【0049】
また、上述の処理の説明では、分かりやすくするために省略しているが、実際には、画像を所定範囲で変倍させるか、若しくはテンプレートを変倍させることにより、各々の代表姿勢について多少サイズの異なった部品の検出も同時に行っている。そして検出された部品のサイズに基づき、上下左右の二次元方向の位置だけでなく、カメラから見た奥行き方向の位置推定も行う。もちろん測距センサを用いて、より正確に奥行き方向の位置を検出するようにしても構わない。
【0050】
S511において、位置姿勢推定処理部108は、位置姿勢推定結果リストに保存されている複数の位置姿勢データを統合する。一般にこのような位置姿勢推定処理においては、部品の存在する位置や姿勢そのものだけでなく、その近傍位置や類似姿勢の相関値も高くなる傾向があるため、統合処理を行う必要がある。本発明では、統合処理の手法は問わないので、例えば、相関値の高い領域や姿勢範囲をまとめてそれらの平均を取るといった、既知の手法を用いることができる。もちろんこのとき、相関値の高い姿勢を優先するようにしても良い。
【0051】
以上により図5のフローチャートの処理が終了し、画像データ400中に含まれる複数の部品の位置及び姿勢が推定される。
【0052】
<辞書更新付の把持処理>
次に図6のフローチャートを参照して、本実施形態に係る把持処理の手順を説明する。把持動作の失敗は、部品の山積み状態とハンド機構系、把持動作計画・制御系、位置姿勢推定処理の各要素の誤差要因等の様々な要因が複雑に絡んで生じる。本実施形態では、これらの要因を区別することなく把持動作の失敗の発生に基づいて姿勢推定辞書格納部109に格納されている照合データを修正することにより、位置姿勢推定処理部108で行われる推定処理を修正する。これにより、姿勢推定処理は、徐々に失敗確率の高い姿勢を推定しなくなり高速化してゆくと共に、推定された姿勢の部品は把持失敗が起こりにくいものとなっていく。
【0053】
S601において、カメラ制御部107は、図4(b)で示した画像データ400のような、山積み状態の多数の部品104を撮像した画像データを取得する。この撮像は前述のように、カメラ制御部107の制御により撮像装置103を用いて行われる。
【0054】
S602において、位置姿勢推定処理部108は、取得された画像データに含まれる部品の位置および姿勢を推定する処理を行う。本実施形態において、この処理は、上述した通り図5のフローチャートにおける処理である。これにより、複数の部品の位置姿勢推定結果の一覧を得ることができる。
【0055】
S603においては、位置姿勢推定処理部108は、位置および姿勢が推定できた部品があるか否かを判定する。位置および姿勢が推定できた部品があると判定された場合(S603;YES)、S604へ進む。一方、位置および姿勢が推定できた部品がないと判定された場合(S603;NO)、処理は完了となり、例えば次のトレイが送られてくるまで、把持装置は停止する。
【0056】
S604において、取出し部品設定部110は、位置および姿勢が推定できた部品のうちの一つを選択する。取出し部品設定部110は、上述したように、例えば最も上部にある(カメラに近い)部品が選択されてもよく、或いは位置姿勢推定結果の信頼度の高い部品が選択されてもよい。
【0057】
S605において、ロボット制御部111は、S604で選択された部品の位置姿勢情報に基づいて把持動作計画を立てて、ロボット・アーム101およびハンド機構102を制御し、部品の把持動作を行う。
【0058】
S606において、把持失敗検知部112は、把持動作が成功したか否かを判定する。把持動作が成功したと判定された場合(S606;YES)、S607へ進む。一方、把持動作が失敗したと判定された場合(S606;NO)、S608へ進む。
【0059】
S607において、ロボット制御部111は、所定の後工程(例えば、組み付けや再配置)を行うべく、ロボット・アーム101とハンド機構102とを制御する。そして後工程が完了したらS603に戻り、位置姿勢推定できた部品がまだ残っていれば、同様の処理を繰り返す。
【0060】
S608において、推定処理修正部113は、当該把持に失敗した部品に対して推定された姿勢を確認する。そして、その姿勢に対する過去の把持成功・失敗履歴から、姿勢別把持失敗確率を算出する。ここで失敗履歴としては、多様な山積み状態からの履歴データを取ってもよい。また、推定処理修正部113は、周囲の部品の位置・姿勢に応じた当該部品の推定姿勢に対する把持失敗確率を算出するようにしてもよい。
【0061】
S609において、推定処理修正部113は、算出された姿勢別把持失敗確率が所定の基準値を超えたか否かを判定する。姿勢別把持失敗確率が所定の基準値を超えたと判定された場合(S609;YES)、S610へ進む。一方、姿勢別把持失敗確率が所定の基準値以下であると判定された場合(S609;NO)、S601へ戻る。
【0062】
S610において、推定処理修正部113は、当該姿勢は失敗しやすいものであると判断して、姿勢推定辞書格納部109に格納されている当該姿勢に対応する照合データを削除(若しくは無効化)する。その後、トレイ105の山積み状態は、ハンド機構102が接触したことにより変化してしまっていると考えられるため、S601に戻って撮像からやり直す。
【0063】
S602における位置及び姿勢推定処理は、照合データが失敗確率に基づいてオンラインで減少していくため、徐々に高速化されていく。また、失敗し易い姿勢の部品はそもそも検出されなくなっていくため、失敗自体が起こりにくくなり、全体の把持処理が高速化される。
【0064】
尚、把持が失敗し易くなる要因は、いくつか考えられる。例えば姿勢推定は正しくできるものの、被把持部が下向きになるか或いは他の部品に埋もれやすくなる等、その姿勢自体が被把持部にアクセスし難いものである場合、あるいは、姿勢推定を誤りやすい姿勢である場合、等が考えられる。いずれの場合も本発明では区別せずに対応可能である。
【0065】
本実施形態によれば、対象物の把持動作の失敗確率を低減しつつ、対象物の姿勢を推定して把持を行う処理を高速化することが可能となる。
【0066】
(第2実施形態)
<ツリー型位置姿勢推定器の説明>
本発明は、第1実施形態とは異なる位置姿勢推定処理方式に対しても適用することが可能である。本実施形態では、一例として、ツリー型位置姿勢推定処理を用いる場合について説明する。
【0067】
なお、本実施形態において、対象物把持装置の構成は図1と同様であり、位置姿勢推定処理は、位置姿勢推定処理部108により行われる。また、このとき用いる辞書情報は同様に推定辞書保持部109に保持されている。さらに、把持処理の基本的な流れは図6のフローチャートと同様であるので、これらについてはその差分のみを説明する。また、代表姿勢についても第1実施形態と同様4680通りである。
【0068】
図7(a)および図7(b)を参照して、本実施形態で用いられるツリー型位置姿勢推定処理の処理構造の一例を説明する。図7(a)において、画像700は、辞書情報を作成するための代表姿勢の画像の一つである。局所領域701は、代表姿勢画像700の特徴的な個所に設定された局所領域であり、代表姿勢毎に10個所ずつの局所領域701が設定されている。なお、各代表姿勢で局所領域701が設定される位置は異なっている。代表姿勢は上述の通り4680個存在するので、局所領域は46800通り存在する。各局所領域701は、当該代表姿勢における二次元的な物体中心702との相対位置が対応付けられている。本実施形態では説明を簡単にするため、局所領域は全て同一サイズであるものとするが、実際にはそれぞれ異なったサイズであっても構わない。
【0069】
図7(b)は、本実施形態のツリー型位置姿勢推定処理で用いられるツリー型クラス分類器の構造を示している。このツリーは二分木を組み合わせた構造をしている。各ノード704は、例えば矩形画像内の所定の2点の大小関係や、所定領域内画素値合計が閾値以上であるか否か等の、簡便な特徴判別処理を行い、入力された矩形画像が、二分木の右のグループに属するか左のグループに属するかを判定する。各ノード704に対応する辞書データとして特徴判別処理パラメータが保持されている。
【0070】
ツリーの最終段であるリーフ705の数は46800個であり、それぞれ上述の46800通りの局所領域クラスに対応する。各リーフ705に対応する辞書データには、クラス判別された局所領域が4680通りの代表姿勢種別のいずれに属するかの情報と、対応する物体中心702との相対位置を示す情報が保持されている。
【0071】
図8を参照して、ツリー型位置姿勢推定処理における切り出し局所矩形のスキャンと、リーフ705まで辿り着きクラス分類された後に行う投票処理の様子を説明する。図8(a)の画像データ800は、撮像装置103により取得された画像データを示す。切り出し局所矩形801は、画像データ800上の初期位置に設定された、局所領域と同サイズの切り出し局所矩形である。図4の切り出しウィンドウ401のスキャンと同様、切り出し局所矩形801は、画像全域(若しくは、部品の存在することが予め分かっている範囲)を、隈なくスキャンする。
【0072】
切り出し局所矩形801により切り出された矩形画像は、図7(b)の構造のツリー型クラス分類器に入力され、最終的にリーフ705に辿り着くことで、46800個のいずれの局所領域に最も近いかがクラス判別される。
【0073】
ここで、4680個の各代表姿勢には、それぞれ異なった投票平面が用意されている。投票平面とは、処理中の撮像画像全域を、対象物の位置を特定したい粒度でグリッド分割し、各マスに1ビンを割り当てて、二次元ヒストグラムとしたものである。
【0074】
位置姿勢推定処理部108は、切り出し局所矩形801が分類されたリーフ705に対応する辞書情報を参照し、クラス判別された局所領域が属する代表姿勢に対応する投票平面を選択する。そして、投票平面の物体中心702の位置に相当するビンに投票する。
【0075】
図8(b)、(c)および(d)は、投票平面の例を示している。図8(b)は、図3(e)に相当する代表姿勢の投票平面を示す。図8(c)は、同一視点からの見えを右に10°回転させた代表姿勢に対応する投票平面を、図8(d)は、同一視点からの見えを右に20°回転させた代表姿勢に対応する投票平面をそれぞれ示している。各黒点は、物体中心702として投票された位置を表す。画像データ800には、位置802で示される位置に図8(c)の代表姿勢に近い姿勢の部品が存在する。そのため、図8(c)の投票平面において位置802に相当するビン803には、複数の局所領域のクラス判別結果に基づく投票が集中している。一方で、画像中に存在しない姿勢の投票平面には、たまたま誤ってクラス判別された結果に基づく投票結果が、例えばビン804のように単発的に存在するのみである。本実施形態においては、各代表姿勢に対応する局所領域は10個ずつであるので、各ビンの値を例えば5で閾値処理することにより、残ったビンの位置に当該投票平面に対応する代表姿勢の部品が存在するものと推定することができる。もちろん10に近い値であるほど、その推定信頼度は高いものと判定できる。
【0076】
次に図9のフローチャートを参照して、本実施形態に係るツリー型位置姿勢推定器における位置姿勢推定処理の手順を説明する。
【0077】
S901において、位置姿勢推定処理部108は、全ての代表姿勢に対応する4680個の投票平面の全ビンを0にクリアすることにより初期化する。また、位置姿勢推定処理部108は、切り出し局所矩形の位置を、図8(a)の切り出し局所矩形801に示すように、画像データ800の左上の位置(若しくは、部品の存在することが予め分かっている範囲の先頭位置)に初期化する。
【0078】
S902において、位置姿勢推定処理部108は、切り出し局所矩形の位置の画像を切り出す。そして切り出した局所矩形画像をツリーに投入する処理が以下実行される。S903において、位置姿勢推定処理部108は、図7(b)に示したツリーの先頭ノードを選択する。
【0079】
S904において、位置姿勢推定処理部108は、S903で選択されたノードに対応する辞書情報の特徴判別パラメータを読み込み、入力された矩形画像の特徴を分析して、次に選択すべきノードがツリー上における右か左かを判別する。
【0080】
S905において、位置姿勢推定処理部108は、次ノードが終端であるか否かすなわち次ノードがリーフまで辿り着いたか否かを判別する。リーフまで辿り着いた、とはすなわち、入力された局所矩形画像が、46800通りのいずれの局所領域であるかがクラス判別されたことに相当する。次ノードがリーフまで辿り着いたと判定された場合(S905;YES)、S907へ進む。一方、次ノードがリーフまで辿り着いていないと判定された場合(S905;NO)、S906へ進む。
【0081】
S906において、位置姿勢推定処理部108は、次ノードを選択して、S904へ戻って同様の処理を繰り返す。S907において、位置姿勢推定処理部108は、当該リーフの局所領域が属する代表姿勢の種別と投票先の相対位置情報を読み込む。
【0082】
S908において、位置姿勢推定処理部108は、代表姿勢種別に対応する投票平面を選択する。さらに位置姿勢推定処理部108は、投票先相対位置より、現在の切り出し局所矩形の位置に基づいて、投票平面上の投票すべきビンを選択し、インクリメントする。
【0083】
S909において、位置姿勢推定処理部108は、切り出し矩形位置が画像の終端(若しくは、部品の存在することが予め分かっている範囲の終端)まで到達したか否かを判定する。切り出し矩形位置が画像の終端まで到達したと判定された場合(S909;YES)、S911へ進む。切り出し矩形位置が画像の終端まで到達していないと判定された場合(S909;YES)、S910へ進む。
【0084】
S910において、位置姿勢推定処理部108は、切り出し局所矩形位置を次の位置へ移動させる。このスキャン方式は、図4で説明した第1実施形態の切り出しウィンドウの移動と同様である。
【0085】
S909において、画像終端までのスキャンおよび各局所矩形画像の分類に基づく投票処理が一通り完了した場合、S911からの投票結果を確認する処理へと移る。S911において、位置姿勢推定処理部108は、最初の代表姿勢を選択する。
【0086】
S912において、位置姿勢推定処理部108は、S911で選択された代表姿勢に対応する投票平面の各ビンの値をチェックし、所定の閾値以上のビンのみを残す処理を行う。
【0087】
S913において、位置姿勢推定処理部108は、残ったビンの位置から、対応する入力画像中の位置を計算し、選択された代表姿勢種別の情報と共に、それを位置姿勢推定結果リストに保存する。
【0088】
S914において、位置姿勢推定処理部108は、最後の代表姿勢までの処理が完了したか否かを判定する。最後の代表姿勢までの処理が完了したと判定された場合(S914;YES)、S916へ進む。最後の代表姿勢までの投票平面の確認処理が完了すると、位置姿勢推定結果リストには、入力画像中に存在すると推定された各代表姿勢の部品の位置が、一覧となって保存されている。一方、最後の代表姿勢までの処理が完了していないと判定された場合(S914;NO)、S915へ進む。
【0089】
S915において、位置姿勢推定処理部108は、次の代表姿勢を選択して、S912へ戻り、同様の処理を繰り返す。S916においては、位置姿勢推定処理部108は、S511と同様に、これらの位置姿勢データを統合する処理を行う。以上で処理が終了する。
【0090】
なお、第1実施形態と同様に、分かり易くするためにフローチャートからは省略しているが、実際には部品の大きさ、若しくは測距センサの出力に基づき、奥行き方向の位置推定も同時に行っている。
【0091】
<ツリー型の場合の辞書削除処理>
本実施形態においても、図6のフローチャートのS608における姿勢別把持失敗確率の算出処理と、S609における基準値を超えたか否かの判別処理とは、第1実施形態と同様に実行される。S610における推定処理の修正処理は、以下に説明するようなノードやリーフの削除処理となる。
【0092】
図10は、図7(b)のツリー型クラス分類器の一部を示している。ここで×印のリーフは、リーフの局所領域クラスが属する代表姿勢の姿勢別把持失敗確率が所定値以上となって、対応する辞書情報が削除されたことを表す。
【0093】
ある一つの代表姿勢が削除されると、当該姿勢に属する局所領域クラスは10個あるので、10個のリーフの辞書情報が削除されるが、これらは必ずしもツリー上で隣接する位置に存在する訳ではない。従って、図10のリーフ1001の部分以外にも×印が付けられたリーフがあるように、通常は連続しない削除状態となる。
【0094】
いくつかの把持失敗確率の高い代表姿勢が削除された結果、リーフ1001のように一部の連続するリーフが削除されると、分岐先の無くなった上位のノードも削除可能となる。
【0095】
一つのリーフが削除されると、代表姿勢の種別を示す情報と投票先相対位置を示す情報とが削減される。一つのノードが削除されると、特徴抽出のための情報と分岐先のノードの情報とが削除される。これによって徐々に辞書サイズは低減していくことになり、メモリ占有容量が低減される。メモリ占有容量が下がれば、大容量メモリと高速メモリのスワップ操作等の頻度が下がり、推定処理が高速化する可能性が高くなる。
【0096】
また図9のS904において、分岐先として判別されたノードやリーフが削除されている場合、位置姿勢推定処理部108は、処理中の矩形画像に対する処理をそこで打ち切ってもよい。つまり、S907およびS908の投票処理はスキップして、S909の処理を行ってもよい。打ち切られた時点で矩形画像は失敗確率が高い姿勢のものであることが確定するので、投票を行わなくとも問題なく、従って推定処理が高速化する。
【0097】
また、削除された代表姿勢については、姿勢推定する必要がないのであるから、投票平面を持つ必要もなくなるので、この点でもメモリ占有率を下げることが可能となる。
【0098】
失敗姿勢に基づく推定処理の修正処理が進むにつれて、把持の失敗自体が起こりにくくなり、全体の把持処理フローが徐々に高速化されていくのは、第1実施形態と同様である。
【0099】
本実施形態によれば、対象物の把持動作の失敗確率を低減しつつ、対象物の姿勢を推定して把持を行う処理を高速化することが可能となる。
【0100】
(第3実施形態)
<優先順位変更による修正>
上述の実施形態では、推定処理の修正処理として、失敗確率の高い代表姿勢に係る照合データを削除する例を説明したが、本発明の修正処理はこれに限るものではない。例えば、失敗確率の高い代表姿勢に係る当該照合データの照合優先順位を低くするという修正を行ってもよい。すなわち、失敗確率の高い代表姿勢に係る当該照合データの照合順序を後にする。第1実施形態で用いたようなテンプレート・マッチングタイプの位置姿勢推定処理で、切り出しウィンドウのスキャン位置の数が、姿勢別テンプレートの数よりも少ない場合には、このような優先順位の変更による修正が有効である。
【0101】
この場合、図5のフローチャートにおいて、スキャン処理のループ(S501→S509、S510)と、姿勢別テンプレート選択のループ(S503→S507、S508)の順序を入れ替える。さらに、S503、S508で選択されるテンプレートは、姿勢別優先順位の順とする。そして、S505において相関値が所定値以上となり、選択中の代表姿勢の部品が検出された時点で、同位置に関する処理は打ち切り、次のスキャン位置に移動する。
【0102】
このようにすることで、失敗確率の高い姿勢が推定される優先順位は徐々に下がっていくので、結果として把持の失敗頻度が下がり、把持処理フローが効率化するという効果がある。
【0103】
<重み付け変更による修正>
或いは、各代表姿勢に対応する重み係数を設定し、姿勢別把持失敗確率に基づき、この重み係数を修正するようにすることも可能である。例えば図5において、S504で算出される相関値は姿勢別のスコアであると見なせる。或いは、図9において、S912の閾値処理で残ったビンの投票値はやはり姿勢別スコアであると見なせる。
【0104】
そして、S506或いはS913において、姿勢別のスコアに対して対応する重み係数を乗じた値を、最終的な姿勢別の信頼度スコアとし、位置・姿勢と合わせて保存するようにする(信頼度算出処理)。或いは、図9のような投票処理を伴う姿勢推定処理では、重み係数を乗ずる代わりに、S908における投票処理で選択されたビンにインクリメントする値として、この重み係数を用いるようにすることもできる。この場合はビンの値がそのまま姿勢別の重みを考慮した信頼度スコアとなる。
【0105】
ここで保存された姿勢別の信頼度スコアは、S511或いはS916の統合処理で参照されることにより、重み係数の大きい代表姿勢であるほど、優先的に統合結果として残りやすくなるように作用する。
【0106】
このような代表姿勢別の重み係数を用いる場合、図6のS610で行われる姿勢推定処理の修正処理は、次のようになる。まず代表姿勢θに対応する重み係数をWθとする。システムが稼働を開始した時点でのWθの初期値はWθ=Wθ0とする。Wθ0は、全姿勢において共通とするか、若しくは事前に分かっている部品の形状に基づく把持のし易さや姿勢の起こり易さを加味して設定しても良い。そしてS608で算出される姿勢別失敗確率をPθとする。失敗が起こりにくい姿勢であるほど失敗確率Pθは0に近い値となるので、S610においては、例えばWθ=(1−Pθ)Wθ0として、重み係数Wθを更新する。ここで、S609を省略して、姿勢別失敗が基準値を超えたかどうかを判別すること無しに、失敗を検知した場合には毎回更新するようにしても構わない。
【0107】
或いは、各姿勢に近い周辺姿勢からの影響を加味することもできる。例えば、各代表姿勢のPθに対して、測地ドーム上の視点間の距離や面内回転角度に応じて減衰するガウシアンカーネルにより、離散的なコンボリューション演算を行って計算した値を用いて、Wθを修正してもよい。
【0108】
このように重み係数を修正する場合も、やはり失敗確率の高い姿勢は徐々に検出されにくくなっていき、把持処理フローは効率化する効果がある。
【0109】
<分割領域別確率>
また、上述の実施形態では、入力画像全域に渡って同一の位置姿勢推定処理を行う例を示したが、入力画像を領域分割して、それぞれの領域で異なった位置姿勢推定処理を行うようにすることも可能である。
【0110】
図11は、対象物把持装置が図1において不図示の領域分割部をさらに備え、撮像装置103により撮像される画像の領域を、CとN,S,E,Wの5つの領域に分割する例を示している。なお、N,S,E,Wのそれぞれは、東西南北に対応するここで中心部Cの領域以外の4つの領域は、それぞれトレイ105のいずれかの壁面に近いため、把持動作を行う際には、いずれかの壁面の影響を受けやすい。従って各領域で失敗しやすい代表姿勢は、少なくとも一部は異なったものとなる可能性が高い。
【0111】
そこで、各領域に対する位置姿勢推定処理を行う際に、異なった辞書データを用いるようにする。但し、これら5つの辞書データは初期状態では同じものとする。そして、図6のS608で算出する姿勢別把持失敗確率は、分割した領域別の姿勢別把持失敗確率とし、S610ではそれぞれの領域に対応する辞書データを修正する。
【0112】
その他、領域分割は、部品が存在し得る空間を三次元的に分割して、上記と同様に辞書データの修正を行っても良い。このようにすることで、把持の失敗確率を下げつつも、失敗確率が高い姿勢として除外される部品の数が減り、トレイ上のより多くの部品を把持することが可能となる。
【0113】
<周辺姿勢も考慮>
また、上述の実施形態では、失敗した際の代表姿勢に対する修正のみを行う例を示してきたが、失敗姿勢に近い周辺姿勢に関する修正も同時に行うようにすることも可能である。ここで周辺姿勢の例を図12に示す。視点1201を、失敗した代表姿勢を定義する測地ドーム状の視点とする場合、隣接する視点1202乃至視点1206の各視点で定義される代表姿勢が周辺姿勢となる。或いは、隣接視点に限らず、失敗した代表姿勢の視点を中心として、測地ドーム状で所定の距離範囲内に存在する視点としてもよい。面内回転についても同様に、把持に失敗した姿勢の面内回転角度を中心として、所定範囲内を周辺姿勢としてもよい。これら周辺姿勢の範囲を失敗確率の空間分布に基づいて決定してもよい。
【0114】
推定処理の修正処理は、周辺姿勢をまとめて削除するものとしても良いし、上述した重み係数による修正を失敗姿勢からの距離に応じて行う等、失敗姿勢との類似性に基づいて修正の影響度を変えるようにしてもよい。或いは失敗確率を算出する際には、周辺姿勢の失敗確率も同時にいくらか上げるというようにすることもできる。
【0115】
一般に、把持に失敗し易い姿勢の周辺姿勢は、やはり失敗し易い確率が高いと考えられるため、このような周辺姿勢も含めた修正とすることにより、より効率的に姿勢推定辞書を更新することが可能となる。
【0116】
<ユーザによる把持失敗通知>
また、上述の実施形態では、把持の失敗の検知を、ハンド機構102に備えた不図示の力覚センサの出力に基づき行うものとして説明したが、本発明はこれに限るものではない。例えばユーザが認知した把持の失敗の通知を受け付けるようにすることももちろん可能である(通知受付処理)。
【0117】
例えば、図13は、オペレータによりロボットの動作が監視されることを想定して、緊急停止ボタン1301をロボット制御部111に接続した対象物把持装置を示している。オペレータは、部品104の把持動作が失敗した際には、緊急停止ボタン1301を押してロボットを停止させる。把持失敗検知部112は、ロボット制御部111を介して緊急停止を知ることにより、把持の失敗を検知することができる。
【0118】
<姿勢推定のみの場合>
また、上述の実施形態では、対象物の位置および姿勢の両方を推定する例を示してきたが、本発明は、位置推定が必要無く、姿勢の推定処理のみを行う場合にも適用できる。図14は、対象物の位置は毎回ほぼ一定である例を示している。
【0119】
コンベア1401は、対象物である様々な姿勢であり得る部品104を、図14において下方向に運搬する。下方向に運搬された部品104は、ガイド機構1402に接触してガイドされ、ある程度向きが揃えられた状態で、把持位置1403までさらに運搬される。把持位置1403に一つの部品104が入ると不図示の遮光センサ等によりそのことが検知され、コンベア401は一旦停止する。
【0120】
そして把持位置1403における部品104の姿勢推定処理が行われる。この処理には、基本的には上述の実施形態の位置姿勢推定処理とほぼ同じ処理を適用できるが、部品の存在する位置はほぼ決まっているので、1個所についてのみ、若しくは極めて限定された範囲のスキャンのみで、姿勢推定処理を行えば良い。また、ガイド機構1402により、部品の姿勢はある程度揃えられているので、最初からより少ない代表姿勢の照合データの姿勢推定辞書を用いることが可能である。
【0121】
姿勢推定結果に基づき、ロボット・アーム101およびハンド機構102による把持処理を行う。把持の失敗を検知した際は、上述の実施形態と同様に推定処理の修正を行う。把持動作および後処理が完了したら、コンベア1401による部品104の運搬を再開する。以後これを繰り返す。
【0122】
把持失敗時、若しくは失敗確率の高い姿勢であるため姿勢が推定されなくなった場合は、把持位置1403の部品は、そのままコンベア1401で図の下方に運搬され、再利用篭1404に投入される。再利用篭1404に投入された部品は、オペレータ等により再度コンベア1401に投入される。
【0123】
上述の実施形態では、対象物は一種類であるものとして説明しているが、複数種類の対象物に対応することももちろん可能である。この場合、代表姿勢に対応する照合データを、複数の対象物それぞれについて保持するようにし、これらを同時に使用するようにすれば良い。
【0124】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。例えば、生産用ロボット・システムに限らず、家庭用ロボット等の種々のロボット・システムに対しても適用可能であることは言うまでもない。
【0125】
本実施形態によれば、対象物の把持動作の失敗確率を低減しつつ、対象物の姿勢を推定して把持を行う処理を高速化することが可能となる。
【0126】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、対象物の姿勢を推定して把持を行う対象物把持装置、対象物把持装置の制御方法、およびプログラムに関する。
【背景技術】
【0002】
山積みされた部品等の対象物の状態をカメラ等のセンサで撮像して情報を取得し、取得した画像等の情報から各対象物の位置や姿勢を推定して、ロボットに把持させて順次対象物を取り出す技術が広く開発されている。特許文献1および特許文献2は、対象物を把持する処理の高速化を実現する手法を開示している
特許文献1に開示される技術は、対象物(部品)の複数の特定部位が基準姿勢を取るときの形状を特定する複数の照合モデルを持ち、その照合優先順位を装置の使用時に実際に認識された回数の多い順とすることにより、認識処理の高速化を図っている。
【0003】
特許文献2に開示される技術は、粗位置が認識された対象物(ワーク)の集合から、3次元位置の測定に失敗した対象物又は取出しに失敗した対象物を除外することにより処理の高速化を図ると共に、次に選択される対象物の把持失敗確率を低減している。
【0004】
また、特許文献3に開示される技術は、6軸力角センサの加重の変化に基づき把持の失敗等の異常動作を検知し、その後のリカバリを行っている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第3225740号公報
【特許文献2】特許第4226623号公報
【特許文献3】特開2000−263481号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
山積みされた対象物の集合から順次対象物を取り出すためには、個々の対象物の位置や姿勢を推定する必要がある。作業効率の面から、位置姿勢推定に要する時間を短縮することが求められている。
【0007】
また、部品等の対象物について、ロボットのアームの先端に備えられたマニュプレータ(ハンド)で把持すべき部位は、通常、特定の部位に定められている。そのため、対象物の姿勢によっては特定部位にハンドがアクセスできずに把持に失敗する場合がある。また、対象物の姿勢によっては、センサより得られる情報が他の姿勢と似ている場合があり、誤った姿勢推定を行い易い場合もある。
【0008】
特許文献1に開示される技術は、複数の特定部位が基準姿勢を取ったことを認識した回数を考慮して高速化を図っているが、誤った姿勢を認識したり把持に失敗したりした場合のことは考慮していない。
【0009】
特許文献2に開示される技術は、精密な3次元位置の測定に失敗した場合や対象物の取出しに失敗した場合の粗位置を考慮して高速化を図っているが、失敗した場合の当該対象物の姿勢については考慮していない。
【0010】
特許文献3に開示される技術は、把持動作の異常検知とその後のリカバリを、オペレータを呼ばずに行うもので、高速化を目的とするものではない。
【0011】
すなわち従来技術には、対象物の把持に失敗した際の当該対象物の姿勢を考慮していないという課題がある。
【0012】
上記の課題に鑑み、本発明は、対象物の把持動作の失敗確率を低減しつつ、対象物の姿勢を推定して把持を行う処理を高速化することを目的とする。
【課題を解決するための手段】
【0013】
上記の目的を達成する本発明に係る対象物把持装置は、
対象物の姿勢を姿勢推定パラメータに基づいて推定する推定手段と、
前記推定手段により推定された前記対象物の姿勢に基づいて前記対象物を把持する把持手段と、
前記把持手段による把持の失敗を検知する検知手段と、
前記検知手段により把持の失敗が検知された際の前記対象物の姿勢に基づいて前記姿勢推定パラメータを修正する修正手段と、
を備えることを特徴とする。
【発明の効果】
【0014】
本発明によれば、対象物の把持動作の失敗確率を低減しつつ、対象物の姿勢を推定して把持を行う処理を高速化することが可能となる。
【図面の簡単な説明】
【0015】
【図1】対象物把持装置の構成を示す図。
【図2】測地ドームの考え方を説明する図。
【図3】対象物の代表姿勢の例を示す図。
【図4】(a)撮像装置で撮像された山積み状態の対象物の画像例を示す図、(b)テンプレート・マッチングによる姿勢推定処理のためのウィンドウ・スキャンの説明図。
【図5】テンプレート・マッチングによる姿勢推定処理の手順を示すフローチャート。
【図6】対象物把持処理の手順を示すフローチャート。
【図7】ツリー型姿勢推定処理の処理構造を説明する図。
【図8】ツリー型姿勢推定処理における切り出し局所矩形領域のスキャンおよび投票処理を説明する図。
【図9】ツリー型姿勢推定処理の手順を示すフローチャート。
【図10】ツリー型姿勢推定処理における失敗姿勢に対応する照合データの削除の様子を示す図。
【図11】撮像装置で撮像される領域の分割の一例を示す図。
【図12】失敗姿勢の周辺姿勢を説明する図。
【図13】把持の失敗をユーザが対象物把持装置へ通知する機構を備えた対象物把持装置の構成を示す図。
【図14】対象物の姿勢は変動するが位置が略一定である場合の対象物把持装置の一例を示す図。
【発明を実施するための形態】
【0016】
(第1実施形態)
図1を参照して、第1実施形態に係る対象物把持装置の構成を説明する。対象物把持装置は、ロボット・アーム101と、ハンド機構102と、撮像装置103と、コントローラ106とを備える。
【0017】
ハンド機構102は、ロボット・アーム101のエンドエフェクタとしてのハンド機構である。撮像装置103は、トレイ105上の部品104の状態を取得するセンサであり、山積み状態のトレイ105の画像を取得する。なお撮像装置103は、二次元輝度画像情報を得るための単眼カメラであってもよく、または距離情報を得るためのステレオカメラやTOFセンサ、レーザーレンジファインダーのような測距センサであってもよく、本発明において限定されるものではない。部品104は、把持する対象物である部品の一例である。トレイ105は、複数の部品104が山積み状態で積載されたトレイである。
【0018】
コントローラ106は、ロボット・アーム101、ハンド機構102、撮像装置103を制御する。コントローラ106は、カメラ制御部107と、位置姿勢推定処理部108と、姿勢推定辞書格納部109と、取出し部品設定部110と、ロボット制御部111と、把持失敗検知部112と、推定処理修正部113と、を備える。
【0019】
カメラ制御部107は、撮像装置103を制御すると共に、撮像装置103が撮像したトレイ105の画像情報を取得する。位置姿勢推定処理部108は、カメラ制御部107により取得された画像情報を、姿勢推定辞書格納部109に格納されている辞書データを用いて分析処理し、画像中に含まれる部品104の位置および姿勢を推定する。姿勢推定辞書格納部109は、部品104の位置および姿勢を推定するための辞書データ等のパラメータを格納する。この姿勢推定パラメータには、姿勢別の照合優先順位や重み係数を含むようにしても良い。
【0020】
取出し部品設定部110は、位置および姿勢を推定した多数の部品の中から、順次把持すべき部品を選択し、ハンド気候102により把持される部品上の被把持部の情報をロボット制御部111へ通知する。把持すべき部品の選択方法として、例えば最も上部にあって被把持部が隠されておらず把持するための制御が容易である部品や、位置姿勢推定処理部108における推定の信頼度が高い部品を選択する等の方法が考えられる。
【0021】
ロボット制御部111は、取出し部品設定部110により選択された部品104の被把持部の情報に基づいて、部品104の把持動作および後処理動作を行うための命令を生成し、ロボット・アーム101およびハンド102を制御して動作させる。
【0022】
把持失敗検知部112は、ハンド機構102に備えられた不図示の異常検知用センサの出力を、ロボット制御部111を介して受け取る。そして把持失敗検知部112は、当該センサの出力を分析することにより、部品104の把持に成功したか否かを判別する。異常検知用センサには、例えばハンド機構102に備えた不図示の力覚センサを用いてもよく、例えば特許文献3に開示される技術を用いて把持の失敗を検知することが可能である。尚、撮像装置103により撮像される画像を分析して把持の失敗を検知する構成であってもよい。例えば、撮像された画像中において、部品104が把持部から離れた位置にあることを認識して把持の失敗を検知してもよい。
【0023】
推定処理修正部113は、把持失敗検知部112により把持の失敗が検知されると、その際の対象物(部品104)の姿勢に基づいて姿勢推定辞書格納部109に保持されている姿勢推定パラメータを修正する。
【0024】
ここで、前述の位置姿勢推定処理部108は、対象物の位置を検出すると共に姿勢をクラス分けするクラス分類器である。各クラスに対応する姿勢を代表姿勢と呼び、測地ドームと面内回転を組み合わせて定義する。ここで測地ドームとは、正多面体の各頂点や面素の中心点、或いは、各三角形面素を再帰的に同一面積の三角形に分割してそれらの頂点を用いることで、球面を均一に離散化表現する公知の手法である。
【0025】
図2(a)は、正二十面体を基本とする測地ドームの例を示している。正二十面体の中心点に、所定姿勢の対象物の重心点が一致するように配置し、例えば、各頂点と各三角形面素の中心点とを視点として観察した際の対象物の見え方を代表姿勢として定義とする。各視点からの視線は、対象物の中心点すなわち正二十面体の重心点で交差する。正二十面体においては頂点の数は16、面素の数は20であるので、正二十面体をそのまま用いた測地ドームでは、計36の視点からの代表姿勢が定義可能である。
【0026】
しかしながら、通常これだけの粒度では、把持を行うのに十分な精度とはならないため、本実施形態では、各面素の辺をさらに2分割している。すると正二十面体の各正三角形面素は、図2(b)に示すように4つの同一面積の小正三角形で構成されることになる。ここで視点201は、元の正二十面体の頂点と面素中央点とで定義された計4点の視点を表しており、視点202は小三角形に分割することにより増えた計6点の視点を表している。面中心点の数は分割前の元の三角形面素の数(20面)の4倍、頂点の数は元の正二十面体の辺の数分(=34本)増えることになるので、この分割により16+34+20×4=130通りの視点からの代表姿勢を定義することができる。
【0027】
図2(c)は、面内回転の例を示している。画像205は、図2(a)における視点204より取得した部品の画像であって、これを所定角度ずつ回転させることにより、図に示すような複数の代表姿勢を得ることができる。本実施形態においては、面内回転を10度ずつで定義するものとする。すなわち、上述の130通りの各視点に対し36通りの面内回転パターンが存在することになるので、130×36=4680通りの代表姿勢が定義される。
【0028】
ここで視点とは撮像装置103の観察位置であるので、代表姿勢とは撮像装置103で取得される個々の対象物の画像のバリエーションに対応する。姿勢推定辞書格納部109は、予め部品の姿勢を変化させて撮像した全ての代表姿勢の画像データから、機械学習等の技術により生成した照合データを保持している。各代表姿勢の画像データの例を5つ、図3(a)−(e)に示す。
【0029】
本実施形態においては、位置姿勢推定処理部108は、テンプレート・マッチング処理により、撮像装置103を基準とする座標系であるカメラ座標系における各対象物の位置の推定処理と、当該対象物の代表姿勢のクラス分け処理とを行う。
【0030】
従って、姿勢推定辞書格納部109には、4680通りの代表姿勢クラスに対応する照合データ(テンプレート)を全て保持している。しかしながら、各視点から0°回転の130通りのテンプレートのみを保持しておき、面内回転分については照合の都度、回転処理により生成するようにすることで、保持するデータ量を削減するようにする構成であってもよい。
【0031】
ここで、カメラ座標系における対象物の基準点(物体中心等)の位置を、カメラ座標系の原点からの平行移動ベクトルPwとして表す。これが推定される対象物の位置に相当する。カメラ座標系から見た奥行き方向の位置は、検出された部品の画像中の大きさに基づいて推定してもよく、若しくは、レンジファインダーのような測距センサを用いてより正確に推定してもよい。
【0032】
そして、いずれの代表姿勢クラスのテンプレートに合致したかに基づいて、検出された対象物の姿勢を推定する。ここで対象物の姿勢は、カメラ座標系における部品座標系3軸の方向ベクトルの組みによる姿勢行列EW=[eWX、eWY、eWZ]で表すことができる。eWX、eWY、eWZは、部品の基準位置からそれぞれ3方向に直交して固定された、長さ1の単位列ベクトルである。すなわち、各代表姿勢には、それぞれ固有の姿勢行列EWが対応付けられている。
【0033】
また、ハンド機構102で把持すべき部品上の把持位置(被把持部)は、通常、特定の部位に定められている。この被把持部を正しく把持した状態は、ハンド機構102を基準とするハンド座標系における同様の対象物位置Phおよび姿勢行列Ehにより、予め定義される。従って、ロボット制御部111は、把持しようとする部品のカメラ座標系における位置Pwおよび姿勢EWを、ハンド座標系における位置Phおよび姿勢Ehと一致させるように、ロボット・アーム101の各関節やハンド機構102に対する把持動作計画および制御を行う。
【0034】
<位置姿勢推定処理>
ここで、図4(a)、図4(b)および図5を参照して、位置姿勢推定処理部108で行われるテンプレート・マッチング処理による位置姿勢推定手法を説明する。図4(a)は、撮像装置103により撮像された画像データの一例である。この画像データには、トレイ105上に多数積載された山積み状態の部品104が撮像されている。
【0035】
図4(b)は、位置姿勢推定処理部108が、カメラ制御部107を介して送られてきた図4(a)の画像をスキャン処理して、テンプレート・マッチングによる位置姿勢推定処理を行う様子を示している。ここで、図4(a)の画像に相当する画像データ400上に設定された、テンプレートと同サイズの切り出しウィンドウ401により画像全域(若しくは、部品の存在することが予め分かっている範囲)を、隈なくスキャンする。
【0036】
切り出しウィンドウ401により切り出された矩形領域の部分画像は、各代表姿勢に対応する照合データ(すなわち、テンプレート)と相関演算され、当該位置に代表姿勢の部品が有るかどうかが判別される。ここで用いられるテンプレートは、各代表姿勢で所定の距離から撮像された(すなわち切り出しウィンドウ401と等しい大きさの)部品画像、若しくは部品画像に対し所定のエッジ抽出等の前処理を行って生成された画像データである。尚、所定の前処理を行ったテンプレートを用いる場合は、切り出し処理を行う前に、予め画像データ400の全域に対して同じ前処理を掛けておく。
【0037】
以下、図5のフローチャートを参照して、本実施形態に係る位置姿勢推定処理部108により行われる部品の位置姿勢推定処理の手順を説明する。
【0038】
S501において、位置姿勢推定処理部108は、画像データ400上に設定する切り出しウィンドウ401の所定の位置を初期位置とする。本実施形態では画像データ400の全域を部品の存在する可能性のある領域としているので、画像左上を切り出しウィンドウ401の初期位置とする。
【0039】
S502において、位置姿勢推定処理部108は、画像データ400から現在の切り出しウィンドウ位置の矩形領域の部分画像を切り出して取得する。
【0040】
S503おいて、位置姿勢推定処理部108は、姿勢推定辞書格納部109に格納されている4680通りの各代表姿勢に対応するテンプレートの中から、最初に任意の代表姿勢に対応するテンプレートを選択する。なお、ここでは4680通りのテンプレートの場合を例に挙げて説明するが、他の数のテンプレートを用いてもよい。
【0041】
S504において、位置姿勢推定処理部108は、切り出された部分画像について、S503で選択された代表姿勢テンプレートとの相関値を算出する(相関値算出処理)。
【0042】
S505において、位置姿勢推定処理部108は、S504で計算された相関値が所定値以上であるか否かを判別する。相関値が所定値以上であると判別された場合(S505;YES)、S506へ進む。一方、相関値が所定値より小さいと判別された場合(S505;NO)、S507へ進む。
【0043】
S506において、位置姿勢推定処理部108は、現在の切り出しウィンドウ位置に、選択された代表姿勢の部品が存在するものと推定して、その位置と代表姿勢とを位置姿勢推定結果リストに保存する。その後、S507へ進む。
【0044】
S507において、位置姿勢推定処理部108は、全ての代表姿勢のテンプレートを用いた照合処理が完了したか否かを判定する。全ての照合処理が完了したと判定された場合(S507;YES)、S509へ進む。一方、全ての照合処理が完了していないと判定された場合(S507;NO)、S508へ進む。
【0045】
S508において、位置姿勢推定処理部108は、姿勢推定辞書格納部109に格納されている4680通りの各代表姿勢に対応するテンプレートの中から、次の任意の代表姿勢に対応するテンプレートを選択する。その後、S504へ戻る。
【0046】
S509において、位置姿勢推定処理部108は、切り出しウィンドウ401のスキャンが最後の位置まで行われたか否かを判定する。切り出しウィンドウ401が最後の位置まで移動したと判定された場合(S509;YES)、S511へ進む。一方、切り出しウィンドウ401が最後の位置まで移動していないと判定された場合(S509;NO)、S510へ進む。
【0047】
S510において、位置姿勢推定処理部108は、全ての姿勢別テンプレートに対する処理が完了したので、切り出しウィンドウ401を次の位置に移動させる。その後、S502へ戻る。
【0048】
なお、このときのスキャンのルールは、図4(b)に示すように、右方向に1画素ずつ切り出しウィンドウ401をずらして行き、画像400の右端に到達したら、1画素下の列の左端に移動し、以後、画像400の右下端まで同様の処理を繰り返すというものである。ここで、処理を高速化するために、一度に移動する画素数を1画素ではなく数画素とすることも、もちろん可能であるが、その場合は位置検出精度が数画素単位となる。
【0049】
また、上述の処理の説明では、分かりやすくするために省略しているが、実際には、画像を所定範囲で変倍させるか、若しくはテンプレートを変倍させることにより、各々の代表姿勢について多少サイズの異なった部品の検出も同時に行っている。そして検出された部品のサイズに基づき、上下左右の二次元方向の位置だけでなく、カメラから見た奥行き方向の位置推定も行う。もちろん測距センサを用いて、より正確に奥行き方向の位置を検出するようにしても構わない。
【0050】
S511において、位置姿勢推定処理部108は、位置姿勢推定結果リストに保存されている複数の位置姿勢データを統合する。一般にこのような位置姿勢推定処理においては、部品の存在する位置や姿勢そのものだけでなく、その近傍位置や類似姿勢の相関値も高くなる傾向があるため、統合処理を行う必要がある。本発明では、統合処理の手法は問わないので、例えば、相関値の高い領域や姿勢範囲をまとめてそれらの平均を取るといった、既知の手法を用いることができる。もちろんこのとき、相関値の高い姿勢を優先するようにしても良い。
【0051】
以上により図5のフローチャートの処理が終了し、画像データ400中に含まれる複数の部品の位置及び姿勢が推定される。
【0052】
<辞書更新付の把持処理>
次に図6のフローチャートを参照して、本実施形態に係る把持処理の手順を説明する。把持動作の失敗は、部品の山積み状態とハンド機構系、把持動作計画・制御系、位置姿勢推定処理の各要素の誤差要因等の様々な要因が複雑に絡んで生じる。本実施形態では、これらの要因を区別することなく把持動作の失敗の発生に基づいて姿勢推定辞書格納部109に格納されている照合データを修正することにより、位置姿勢推定処理部108で行われる推定処理を修正する。これにより、姿勢推定処理は、徐々に失敗確率の高い姿勢を推定しなくなり高速化してゆくと共に、推定された姿勢の部品は把持失敗が起こりにくいものとなっていく。
【0053】
S601において、カメラ制御部107は、図4(b)で示した画像データ400のような、山積み状態の多数の部品104を撮像した画像データを取得する。この撮像は前述のように、カメラ制御部107の制御により撮像装置103を用いて行われる。
【0054】
S602において、位置姿勢推定処理部108は、取得された画像データに含まれる部品の位置および姿勢を推定する処理を行う。本実施形態において、この処理は、上述した通り図5のフローチャートにおける処理である。これにより、複数の部品の位置姿勢推定結果の一覧を得ることができる。
【0055】
S603においては、位置姿勢推定処理部108は、位置および姿勢が推定できた部品があるか否かを判定する。位置および姿勢が推定できた部品があると判定された場合(S603;YES)、S604へ進む。一方、位置および姿勢が推定できた部品がないと判定された場合(S603;NO)、処理は完了となり、例えば次のトレイが送られてくるまで、把持装置は停止する。
【0056】
S604において、取出し部品設定部110は、位置および姿勢が推定できた部品のうちの一つを選択する。取出し部品設定部110は、上述したように、例えば最も上部にある(カメラに近い)部品が選択されてもよく、或いは位置姿勢推定結果の信頼度の高い部品が選択されてもよい。
【0057】
S605において、ロボット制御部111は、S604で選択された部品の位置姿勢情報に基づいて把持動作計画を立てて、ロボット・アーム101およびハンド機構102を制御し、部品の把持動作を行う。
【0058】
S606において、把持失敗検知部112は、把持動作が成功したか否かを判定する。把持動作が成功したと判定された場合(S606;YES)、S607へ進む。一方、把持動作が失敗したと判定された場合(S606;NO)、S608へ進む。
【0059】
S607において、ロボット制御部111は、所定の後工程(例えば、組み付けや再配置)を行うべく、ロボット・アーム101とハンド機構102とを制御する。そして後工程が完了したらS603に戻り、位置姿勢推定できた部品がまだ残っていれば、同様の処理を繰り返す。
【0060】
S608において、推定処理修正部113は、当該把持に失敗した部品に対して推定された姿勢を確認する。そして、その姿勢に対する過去の把持成功・失敗履歴から、姿勢別把持失敗確率を算出する。ここで失敗履歴としては、多様な山積み状態からの履歴データを取ってもよい。また、推定処理修正部113は、周囲の部品の位置・姿勢に応じた当該部品の推定姿勢に対する把持失敗確率を算出するようにしてもよい。
【0061】
S609において、推定処理修正部113は、算出された姿勢別把持失敗確率が所定の基準値を超えたか否かを判定する。姿勢別把持失敗確率が所定の基準値を超えたと判定された場合(S609;YES)、S610へ進む。一方、姿勢別把持失敗確率が所定の基準値以下であると判定された場合(S609;NO)、S601へ戻る。
【0062】
S610において、推定処理修正部113は、当該姿勢は失敗しやすいものであると判断して、姿勢推定辞書格納部109に格納されている当該姿勢に対応する照合データを削除(若しくは無効化)する。その後、トレイ105の山積み状態は、ハンド機構102が接触したことにより変化してしまっていると考えられるため、S601に戻って撮像からやり直す。
【0063】
S602における位置及び姿勢推定処理は、照合データが失敗確率に基づいてオンラインで減少していくため、徐々に高速化されていく。また、失敗し易い姿勢の部品はそもそも検出されなくなっていくため、失敗自体が起こりにくくなり、全体の把持処理が高速化される。
【0064】
尚、把持が失敗し易くなる要因は、いくつか考えられる。例えば姿勢推定は正しくできるものの、被把持部が下向きになるか或いは他の部品に埋もれやすくなる等、その姿勢自体が被把持部にアクセスし難いものである場合、あるいは、姿勢推定を誤りやすい姿勢である場合、等が考えられる。いずれの場合も本発明では区別せずに対応可能である。
【0065】
本実施形態によれば、対象物の把持動作の失敗確率を低減しつつ、対象物の姿勢を推定して把持を行う処理を高速化することが可能となる。
【0066】
(第2実施形態)
<ツリー型位置姿勢推定器の説明>
本発明は、第1実施形態とは異なる位置姿勢推定処理方式に対しても適用することが可能である。本実施形態では、一例として、ツリー型位置姿勢推定処理を用いる場合について説明する。
【0067】
なお、本実施形態において、対象物把持装置の構成は図1と同様であり、位置姿勢推定処理は、位置姿勢推定処理部108により行われる。また、このとき用いる辞書情報は同様に推定辞書保持部109に保持されている。さらに、把持処理の基本的な流れは図6のフローチャートと同様であるので、これらについてはその差分のみを説明する。また、代表姿勢についても第1実施形態と同様4680通りである。
【0068】
図7(a)および図7(b)を参照して、本実施形態で用いられるツリー型位置姿勢推定処理の処理構造の一例を説明する。図7(a)において、画像700は、辞書情報を作成するための代表姿勢の画像の一つである。局所領域701は、代表姿勢画像700の特徴的な個所に設定された局所領域であり、代表姿勢毎に10個所ずつの局所領域701が設定されている。なお、各代表姿勢で局所領域701が設定される位置は異なっている。代表姿勢は上述の通り4680個存在するので、局所領域は46800通り存在する。各局所領域701は、当該代表姿勢における二次元的な物体中心702との相対位置が対応付けられている。本実施形態では説明を簡単にするため、局所領域は全て同一サイズであるものとするが、実際にはそれぞれ異なったサイズであっても構わない。
【0069】
図7(b)は、本実施形態のツリー型位置姿勢推定処理で用いられるツリー型クラス分類器の構造を示している。このツリーは二分木を組み合わせた構造をしている。各ノード704は、例えば矩形画像内の所定の2点の大小関係や、所定領域内画素値合計が閾値以上であるか否か等の、簡便な特徴判別処理を行い、入力された矩形画像が、二分木の右のグループに属するか左のグループに属するかを判定する。各ノード704に対応する辞書データとして特徴判別処理パラメータが保持されている。
【0070】
ツリーの最終段であるリーフ705の数は46800個であり、それぞれ上述の46800通りの局所領域クラスに対応する。各リーフ705に対応する辞書データには、クラス判別された局所領域が4680通りの代表姿勢種別のいずれに属するかの情報と、対応する物体中心702との相対位置を示す情報が保持されている。
【0071】
図8を参照して、ツリー型位置姿勢推定処理における切り出し局所矩形のスキャンと、リーフ705まで辿り着きクラス分類された後に行う投票処理の様子を説明する。図8(a)の画像データ800は、撮像装置103により取得された画像データを示す。切り出し局所矩形801は、画像データ800上の初期位置に設定された、局所領域と同サイズの切り出し局所矩形である。図4の切り出しウィンドウ401のスキャンと同様、切り出し局所矩形801は、画像全域(若しくは、部品の存在することが予め分かっている範囲)を、隈なくスキャンする。
【0072】
切り出し局所矩形801により切り出された矩形画像は、図7(b)の構造のツリー型クラス分類器に入力され、最終的にリーフ705に辿り着くことで、46800個のいずれの局所領域に最も近いかがクラス判別される。
【0073】
ここで、4680個の各代表姿勢には、それぞれ異なった投票平面が用意されている。投票平面とは、処理中の撮像画像全域を、対象物の位置を特定したい粒度でグリッド分割し、各マスに1ビンを割り当てて、二次元ヒストグラムとしたものである。
【0074】
位置姿勢推定処理部108は、切り出し局所矩形801が分類されたリーフ705に対応する辞書情報を参照し、クラス判別された局所領域が属する代表姿勢に対応する投票平面を選択する。そして、投票平面の物体中心702の位置に相当するビンに投票する。
【0075】
図8(b)、(c)および(d)は、投票平面の例を示している。図8(b)は、図3(e)に相当する代表姿勢の投票平面を示す。図8(c)は、同一視点からの見えを右に10°回転させた代表姿勢に対応する投票平面を、図8(d)は、同一視点からの見えを右に20°回転させた代表姿勢に対応する投票平面をそれぞれ示している。各黒点は、物体中心702として投票された位置を表す。画像データ800には、位置802で示される位置に図8(c)の代表姿勢に近い姿勢の部品が存在する。そのため、図8(c)の投票平面において位置802に相当するビン803には、複数の局所領域のクラス判別結果に基づく投票が集中している。一方で、画像中に存在しない姿勢の投票平面には、たまたま誤ってクラス判別された結果に基づく投票結果が、例えばビン804のように単発的に存在するのみである。本実施形態においては、各代表姿勢に対応する局所領域は10個ずつであるので、各ビンの値を例えば5で閾値処理することにより、残ったビンの位置に当該投票平面に対応する代表姿勢の部品が存在するものと推定することができる。もちろん10に近い値であるほど、その推定信頼度は高いものと判定できる。
【0076】
次に図9のフローチャートを参照して、本実施形態に係るツリー型位置姿勢推定器における位置姿勢推定処理の手順を説明する。
【0077】
S901において、位置姿勢推定処理部108は、全ての代表姿勢に対応する4680個の投票平面の全ビンを0にクリアすることにより初期化する。また、位置姿勢推定処理部108は、切り出し局所矩形の位置を、図8(a)の切り出し局所矩形801に示すように、画像データ800の左上の位置(若しくは、部品の存在することが予め分かっている範囲の先頭位置)に初期化する。
【0078】
S902において、位置姿勢推定処理部108は、切り出し局所矩形の位置の画像を切り出す。そして切り出した局所矩形画像をツリーに投入する処理が以下実行される。S903において、位置姿勢推定処理部108は、図7(b)に示したツリーの先頭ノードを選択する。
【0079】
S904において、位置姿勢推定処理部108は、S903で選択されたノードに対応する辞書情報の特徴判別パラメータを読み込み、入力された矩形画像の特徴を分析して、次に選択すべきノードがツリー上における右か左かを判別する。
【0080】
S905において、位置姿勢推定処理部108は、次ノードが終端であるか否かすなわち次ノードがリーフまで辿り着いたか否かを判別する。リーフまで辿り着いた、とはすなわち、入力された局所矩形画像が、46800通りのいずれの局所領域であるかがクラス判別されたことに相当する。次ノードがリーフまで辿り着いたと判定された場合(S905;YES)、S907へ進む。一方、次ノードがリーフまで辿り着いていないと判定された場合(S905;NO)、S906へ進む。
【0081】
S906において、位置姿勢推定処理部108は、次ノードを選択して、S904へ戻って同様の処理を繰り返す。S907において、位置姿勢推定処理部108は、当該リーフの局所領域が属する代表姿勢の種別と投票先の相対位置情報を読み込む。
【0082】
S908において、位置姿勢推定処理部108は、代表姿勢種別に対応する投票平面を選択する。さらに位置姿勢推定処理部108は、投票先相対位置より、現在の切り出し局所矩形の位置に基づいて、投票平面上の投票すべきビンを選択し、インクリメントする。
【0083】
S909において、位置姿勢推定処理部108は、切り出し矩形位置が画像の終端(若しくは、部品の存在することが予め分かっている範囲の終端)まで到達したか否かを判定する。切り出し矩形位置が画像の終端まで到達したと判定された場合(S909;YES)、S911へ進む。切り出し矩形位置が画像の終端まで到達していないと判定された場合(S909;YES)、S910へ進む。
【0084】
S910において、位置姿勢推定処理部108は、切り出し局所矩形位置を次の位置へ移動させる。このスキャン方式は、図4で説明した第1実施形態の切り出しウィンドウの移動と同様である。
【0085】
S909において、画像終端までのスキャンおよび各局所矩形画像の分類に基づく投票処理が一通り完了した場合、S911からの投票結果を確認する処理へと移る。S911において、位置姿勢推定処理部108は、最初の代表姿勢を選択する。
【0086】
S912において、位置姿勢推定処理部108は、S911で選択された代表姿勢に対応する投票平面の各ビンの値をチェックし、所定の閾値以上のビンのみを残す処理を行う。
【0087】
S913において、位置姿勢推定処理部108は、残ったビンの位置から、対応する入力画像中の位置を計算し、選択された代表姿勢種別の情報と共に、それを位置姿勢推定結果リストに保存する。
【0088】
S914において、位置姿勢推定処理部108は、最後の代表姿勢までの処理が完了したか否かを判定する。最後の代表姿勢までの処理が完了したと判定された場合(S914;YES)、S916へ進む。最後の代表姿勢までの投票平面の確認処理が完了すると、位置姿勢推定結果リストには、入力画像中に存在すると推定された各代表姿勢の部品の位置が、一覧となって保存されている。一方、最後の代表姿勢までの処理が完了していないと判定された場合(S914;NO)、S915へ進む。
【0089】
S915において、位置姿勢推定処理部108は、次の代表姿勢を選択して、S912へ戻り、同様の処理を繰り返す。S916においては、位置姿勢推定処理部108は、S511と同様に、これらの位置姿勢データを統合する処理を行う。以上で処理が終了する。
【0090】
なお、第1実施形態と同様に、分かり易くするためにフローチャートからは省略しているが、実際には部品の大きさ、若しくは測距センサの出力に基づき、奥行き方向の位置推定も同時に行っている。
【0091】
<ツリー型の場合の辞書削除処理>
本実施形態においても、図6のフローチャートのS608における姿勢別把持失敗確率の算出処理と、S609における基準値を超えたか否かの判別処理とは、第1実施形態と同様に実行される。S610における推定処理の修正処理は、以下に説明するようなノードやリーフの削除処理となる。
【0092】
図10は、図7(b)のツリー型クラス分類器の一部を示している。ここで×印のリーフは、リーフの局所領域クラスが属する代表姿勢の姿勢別把持失敗確率が所定値以上となって、対応する辞書情報が削除されたことを表す。
【0093】
ある一つの代表姿勢が削除されると、当該姿勢に属する局所領域クラスは10個あるので、10個のリーフの辞書情報が削除されるが、これらは必ずしもツリー上で隣接する位置に存在する訳ではない。従って、図10のリーフ1001の部分以外にも×印が付けられたリーフがあるように、通常は連続しない削除状態となる。
【0094】
いくつかの把持失敗確率の高い代表姿勢が削除された結果、リーフ1001のように一部の連続するリーフが削除されると、分岐先の無くなった上位のノードも削除可能となる。
【0095】
一つのリーフが削除されると、代表姿勢の種別を示す情報と投票先相対位置を示す情報とが削減される。一つのノードが削除されると、特徴抽出のための情報と分岐先のノードの情報とが削除される。これによって徐々に辞書サイズは低減していくことになり、メモリ占有容量が低減される。メモリ占有容量が下がれば、大容量メモリと高速メモリのスワップ操作等の頻度が下がり、推定処理が高速化する可能性が高くなる。
【0096】
また図9のS904において、分岐先として判別されたノードやリーフが削除されている場合、位置姿勢推定処理部108は、処理中の矩形画像に対する処理をそこで打ち切ってもよい。つまり、S907およびS908の投票処理はスキップして、S909の処理を行ってもよい。打ち切られた時点で矩形画像は失敗確率が高い姿勢のものであることが確定するので、投票を行わなくとも問題なく、従って推定処理が高速化する。
【0097】
また、削除された代表姿勢については、姿勢推定する必要がないのであるから、投票平面を持つ必要もなくなるので、この点でもメモリ占有率を下げることが可能となる。
【0098】
失敗姿勢に基づく推定処理の修正処理が進むにつれて、把持の失敗自体が起こりにくくなり、全体の把持処理フローが徐々に高速化されていくのは、第1実施形態と同様である。
【0099】
本実施形態によれば、対象物の把持動作の失敗確率を低減しつつ、対象物の姿勢を推定して把持を行う処理を高速化することが可能となる。
【0100】
(第3実施形態)
<優先順位変更による修正>
上述の実施形態では、推定処理の修正処理として、失敗確率の高い代表姿勢に係る照合データを削除する例を説明したが、本発明の修正処理はこれに限るものではない。例えば、失敗確率の高い代表姿勢に係る当該照合データの照合優先順位を低くするという修正を行ってもよい。すなわち、失敗確率の高い代表姿勢に係る当該照合データの照合順序を後にする。第1実施形態で用いたようなテンプレート・マッチングタイプの位置姿勢推定処理で、切り出しウィンドウのスキャン位置の数が、姿勢別テンプレートの数よりも少ない場合には、このような優先順位の変更による修正が有効である。
【0101】
この場合、図5のフローチャートにおいて、スキャン処理のループ(S501→S509、S510)と、姿勢別テンプレート選択のループ(S503→S507、S508)の順序を入れ替える。さらに、S503、S508で選択されるテンプレートは、姿勢別優先順位の順とする。そして、S505において相関値が所定値以上となり、選択中の代表姿勢の部品が検出された時点で、同位置に関する処理は打ち切り、次のスキャン位置に移動する。
【0102】
このようにすることで、失敗確率の高い姿勢が推定される優先順位は徐々に下がっていくので、結果として把持の失敗頻度が下がり、把持処理フローが効率化するという効果がある。
【0103】
<重み付け変更による修正>
或いは、各代表姿勢に対応する重み係数を設定し、姿勢別把持失敗確率に基づき、この重み係数を修正するようにすることも可能である。例えば図5において、S504で算出される相関値は姿勢別のスコアであると見なせる。或いは、図9において、S912の閾値処理で残ったビンの投票値はやはり姿勢別スコアであると見なせる。
【0104】
そして、S506或いはS913において、姿勢別のスコアに対して対応する重み係数を乗じた値を、最終的な姿勢別の信頼度スコアとし、位置・姿勢と合わせて保存するようにする(信頼度算出処理)。或いは、図9のような投票処理を伴う姿勢推定処理では、重み係数を乗ずる代わりに、S908における投票処理で選択されたビンにインクリメントする値として、この重み係数を用いるようにすることもできる。この場合はビンの値がそのまま姿勢別の重みを考慮した信頼度スコアとなる。
【0105】
ここで保存された姿勢別の信頼度スコアは、S511或いはS916の統合処理で参照されることにより、重み係数の大きい代表姿勢であるほど、優先的に統合結果として残りやすくなるように作用する。
【0106】
このような代表姿勢別の重み係数を用いる場合、図6のS610で行われる姿勢推定処理の修正処理は、次のようになる。まず代表姿勢θに対応する重み係数をWθとする。システムが稼働を開始した時点でのWθの初期値はWθ=Wθ0とする。Wθ0は、全姿勢において共通とするか、若しくは事前に分かっている部品の形状に基づく把持のし易さや姿勢の起こり易さを加味して設定しても良い。そしてS608で算出される姿勢別失敗確率をPθとする。失敗が起こりにくい姿勢であるほど失敗確率Pθは0に近い値となるので、S610においては、例えばWθ=(1−Pθ)Wθ0として、重み係数Wθを更新する。ここで、S609を省略して、姿勢別失敗が基準値を超えたかどうかを判別すること無しに、失敗を検知した場合には毎回更新するようにしても構わない。
【0107】
或いは、各姿勢に近い周辺姿勢からの影響を加味することもできる。例えば、各代表姿勢のPθに対して、測地ドーム上の視点間の距離や面内回転角度に応じて減衰するガウシアンカーネルにより、離散的なコンボリューション演算を行って計算した値を用いて、Wθを修正してもよい。
【0108】
このように重み係数を修正する場合も、やはり失敗確率の高い姿勢は徐々に検出されにくくなっていき、把持処理フローは効率化する効果がある。
【0109】
<分割領域別確率>
また、上述の実施形態では、入力画像全域に渡って同一の位置姿勢推定処理を行う例を示したが、入力画像を領域分割して、それぞれの領域で異なった位置姿勢推定処理を行うようにすることも可能である。
【0110】
図11は、対象物把持装置が図1において不図示の領域分割部をさらに備え、撮像装置103により撮像される画像の領域を、CとN,S,E,Wの5つの領域に分割する例を示している。なお、N,S,E,Wのそれぞれは、東西南北に対応するここで中心部Cの領域以外の4つの領域は、それぞれトレイ105のいずれかの壁面に近いため、把持動作を行う際には、いずれかの壁面の影響を受けやすい。従って各領域で失敗しやすい代表姿勢は、少なくとも一部は異なったものとなる可能性が高い。
【0111】
そこで、各領域に対する位置姿勢推定処理を行う際に、異なった辞書データを用いるようにする。但し、これら5つの辞書データは初期状態では同じものとする。そして、図6のS608で算出する姿勢別把持失敗確率は、分割した領域別の姿勢別把持失敗確率とし、S610ではそれぞれの領域に対応する辞書データを修正する。
【0112】
その他、領域分割は、部品が存在し得る空間を三次元的に分割して、上記と同様に辞書データの修正を行っても良い。このようにすることで、把持の失敗確率を下げつつも、失敗確率が高い姿勢として除外される部品の数が減り、トレイ上のより多くの部品を把持することが可能となる。
【0113】
<周辺姿勢も考慮>
また、上述の実施形態では、失敗した際の代表姿勢に対する修正のみを行う例を示してきたが、失敗姿勢に近い周辺姿勢に関する修正も同時に行うようにすることも可能である。ここで周辺姿勢の例を図12に示す。視点1201を、失敗した代表姿勢を定義する測地ドーム状の視点とする場合、隣接する視点1202乃至視点1206の各視点で定義される代表姿勢が周辺姿勢となる。或いは、隣接視点に限らず、失敗した代表姿勢の視点を中心として、測地ドーム状で所定の距離範囲内に存在する視点としてもよい。面内回転についても同様に、把持に失敗した姿勢の面内回転角度を中心として、所定範囲内を周辺姿勢としてもよい。これら周辺姿勢の範囲を失敗確率の空間分布に基づいて決定してもよい。
【0114】
推定処理の修正処理は、周辺姿勢をまとめて削除するものとしても良いし、上述した重み係数による修正を失敗姿勢からの距離に応じて行う等、失敗姿勢との類似性に基づいて修正の影響度を変えるようにしてもよい。或いは失敗確率を算出する際には、周辺姿勢の失敗確率も同時にいくらか上げるというようにすることもできる。
【0115】
一般に、把持に失敗し易い姿勢の周辺姿勢は、やはり失敗し易い確率が高いと考えられるため、このような周辺姿勢も含めた修正とすることにより、より効率的に姿勢推定辞書を更新することが可能となる。
【0116】
<ユーザによる把持失敗通知>
また、上述の実施形態では、把持の失敗の検知を、ハンド機構102に備えた不図示の力覚センサの出力に基づき行うものとして説明したが、本発明はこれに限るものではない。例えばユーザが認知した把持の失敗の通知を受け付けるようにすることももちろん可能である(通知受付処理)。
【0117】
例えば、図13は、オペレータによりロボットの動作が監視されることを想定して、緊急停止ボタン1301をロボット制御部111に接続した対象物把持装置を示している。オペレータは、部品104の把持動作が失敗した際には、緊急停止ボタン1301を押してロボットを停止させる。把持失敗検知部112は、ロボット制御部111を介して緊急停止を知ることにより、把持の失敗を検知することができる。
【0118】
<姿勢推定のみの場合>
また、上述の実施形態では、対象物の位置および姿勢の両方を推定する例を示してきたが、本発明は、位置推定が必要無く、姿勢の推定処理のみを行う場合にも適用できる。図14は、対象物の位置は毎回ほぼ一定である例を示している。
【0119】
コンベア1401は、対象物である様々な姿勢であり得る部品104を、図14において下方向に運搬する。下方向に運搬された部品104は、ガイド機構1402に接触してガイドされ、ある程度向きが揃えられた状態で、把持位置1403までさらに運搬される。把持位置1403に一つの部品104が入ると不図示の遮光センサ等によりそのことが検知され、コンベア401は一旦停止する。
【0120】
そして把持位置1403における部品104の姿勢推定処理が行われる。この処理には、基本的には上述の実施形態の位置姿勢推定処理とほぼ同じ処理を適用できるが、部品の存在する位置はほぼ決まっているので、1個所についてのみ、若しくは極めて限定された範囲のスキャンのみで、姿勢推定処理を行えば良い。また、ガイド機構1402により、部品の姿勢はある程度揃えられているので、最初からより少ない代表姿勢の照合データの姿勢推定辞書を用いることが可能である。
【0121】
姿勢推定結果に基づき、ロボット・アーム101およびハンド機構102による把持処理を行う。把持の失敗を検知した際は、上述の実施形態と同様に推定処理の修正を行う。把持動作および後処理が完了したら、コンベア1401による部品104の運搬を再開する。以後これを繰り返す。
【0122】
把持失敗時、若しくは失敗確率の高い姿勢であるため姿勢が推定されなくなった場合は、把持位置1403の部品は、そのままコンベア1401で図の下方に運搬され、再利用篭1404に投入される。再利用篭1404に投入された部品は、オペレータ等により再度コンベア1401に投入される。
【0123】
上述の実施形態では、対象物は一種類であるものとして説明しているが、複数種類の対象物に対応することももちろん可能である。この場合、代表姿勢に対応する照合データを、複数の対象物それぞれについて保持するようにし、これらを同時に使用するようにすれば良い。
【0124】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。例えば、生産用ロボット・システムに限らず、家庭用ロボット等の種々のロボット・システムに対しても適用可能であることは言うまでもない。
【0125】
本実施形態によれば、対象物の把持動作の失敗確率を低減しつつ、対象物の姿勢を推定して把持を行う処理を高速化することが可能となる。
【0126】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
対象物の姿勢を姿勢推定パラメータに基づいて推定する推定手段と、
前記推定手段により推定された前記対象物の姿勢に基づいて前記対象物を把持する把持手段と、
前記把持手段による把持の失敗を検知する検知手段と、
前記検知手段により把持の失敗が検知された際の前記対象物の姿勢に基づいて前記姿勢推定パラメータを修正する修正手段と、
を備えることを特徴とする対象物把持装置。
【請求項2】
前記検知手段により把持の失敗が検知された際の前記対象物の姿勢に基づいて姿勢別の把持失敗確率を算出する算出手段をさらに備え、
前記修正手段は、当該姿勢別の把持失敗確率に基づいて前記姿勢推定パラメータを修正することを特徴とする請求項1に記載の対象物把持装置。
【請求項3】
前記対象物の存在し得る領域を複数の領域に分割する領域分割手段をさらに備え、
前記算出手段は、前記検知手段により把持の失敗が検知された際の前記対象物の位置および姿勢に基づいて、前記領域分割手段により分割された領域ごとに姿勢別の把持失敗確率を算出し、
前記修正手段は、前記分割された領域ごとの姿勢別の把持失敗確率に基づいて、それぞれの領域に対応する姿勢推定パラメータを修正することを特徴とする請求項2に記載の対象物把持装置。
【請求項4】
前記姿勢推定パラメータは、前記対象物の各姿勢に対応する照合データを含み、
前記修正手段は、前記姿勢別の把持失敗確率が閾値以上の姿勢に対応する照合データに対する修正を行うことを特徴とする請求項2または3に記載の対象物把持装置。
【請求項5】
前記修正手段は、前記検知手段により把持の失敗が検知された際の前記対象物の姿勢に対応する照合データを前記姿勢推定パラメータから削除することを特徴とする請求項4に記載の対象物把持装置。
【請求項6】
前記姿勢推定パラメータは、前記対象物の各姿勢に対応する照合データの照合順序を示す照合優先順位を含み、
前記修正手段は、前記検知手段により把持の失敗が検知された際の前記対象物の姿勢に対応する照合データの照合順序を、他の姿勢の照合データを用いた対象物の照合順序よりも後にするように、前記照合優先順位を修正することを特徴とする請求項1に記載の対象物把持装置。
【請求項7】
前記推定手段は、前記対象物の姿勢と前記照合データとの相関値を姿勢ごとに算出する相関値算出手段を備え、
前記推定手段は、前記相関値に基づき前記対象物の姿勢を推定することを特徴とする請求項4乃至6の何れか1項に記載の対象物把持装置。
【請求項8】
前記姿勢推定パラメータには、前記対象物の各姿勢に対応する所定の重み係数を含み、
前記推定手段は、前記相関値に対して各姿勢に対応する所定の前記重み係数を乗じて姿勢別の信頼度を算出する信頼度算出手段を備え、
前記推定手段は、前記信頼度に基づき前記対象物の姿勢を推定し、
前記修正手段は、前記検知手段により把持の失敗が検知された際の前記対象物の姿勢に対応する前記重み係数をより低い値に修正することを特徴とする請求項7に記載の対象物把持装置。
【請求項9】
前記修正手段は、前記検知手段により把持の失敗が検知された際の前記対象物の姿勢に対応する前記姿勢推定パラメータの修正に加えて、当該姿勢と所定の範囲内にある周辺姿勢に対応する前記姿勢推定パラメータも修正することを特徴とする請求項1乃至8の何れか1項に記載の対象物把持装置。
【請求項10】
前記検知手段は、前記把持手段に備えられたセンサの出力に基づき把持の失敗を検知することを特徴とする請求項1に記載の対象物把持装置。
【請求項11】
ユーザが認知した前記対象物の把持の失敗通知を受け付ける受付手段をさらに備え、
前記検知手段は、前記通知に基づいて把持の失敗を検知することを特徴とする請求項1に記載の対象物把持装置。
【請求項12】
前記推定手段は、撮像手段により撮像された画像に基づいて前記対象物の姿勢を推定することを特徴とする請求項1に記載の対象物把持装置。
【請求項13】
前記推定手段は、測距センサから取得された距離情報に基づいて前記対象物の姿勢を推定することを特徴とする請求項1に記載の対象物把持装置。
【請求項14】
推定手段と、把持手段と、検知手段と、修正手段と、を備える対象物把持装置の制御方法であって、
前記推定手段が、対象物の姿勢を姿勢推定パラメータに基づいて推定する推定工程と、
前記把持手段が、前記推定工程により推定された前記対象物の姿勢に基づいて前記対象物を把持する把持工程と、
前記検知手段が、前記把持工程による把持の失敗を検知する検知工程と、
前記修正手段が、前記検知工程により把持の失敗が検知された際の前記対象物の姿勢に基づいて前記姿勢推定パラメータを修正する修正工程と、
を備えることを特徴とする対象物把持装置の制御方法。
【請求項15】
請求項14に記載の対象物把持装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【請求項1】
対象物の姿勢を姿勢推定パラメータに基づいて推定する推定手段と、
前記推定手段により推定された前記対象物の姿勢に基づいて前記対象物を把持する把持手段と、
前記把持手段による把持の失敗を検知する検知手段と、
前記検知手段により把持の失敗が検知された際の前記対象物の姿勢に基づいて前記姿勢推定パラメータを修正する修正手段と、
を備えることを特徴とする対象物把持装置。
【請求項2】
前記検知手段により把持の失敗が検知された際の前記対象物の姿勢に基づいて姿勢別の把持失敗確率を算出する算出手段をさらに備え、
前記修正手段は、当該姿勢別の把持失敗確率に基づいて前記姿勢推定パラメータを修正することを特徴とする請求項1に記載の対象物把持装置。
【請求項3】
前記対象物の存在し得る領域を複数の領域に分割する領域分割手段をさらに備え、
前記算出手段は、前記検知手段により把持の失敗が検知された際の前記対象物の位置および姿勢に基づいて、前記領域分割手段により分割された領域ごとに姿勢別の把持失敗確率を算出し、
前記修正手段は、前記分割された領域ごとの姿勢別の把持失敗確率に基づいて、それぞれの領域に対応する姿勢推定パラメータを修正することを特徴とする請求項2に記載の対象物把持装置。
【請求項4】
前記姿勢推定パラメータは、前記対象物の各姿勢に対応する照合データを含み、
前記修正手段は、前記姿勢別の把持失敗確率が閾値以上の姿勢に対応する照合データに対する修正を行うことを特徴とする請求項2または3に記載の対象物把持装置。
【請求項5】
前記修正手段は、前記検知手段により把持の失敗が検知された際の前記対象物の姿勢に対応する照合データを前記姿勢推定パラメータから削除することを特徴とする請求項4に記載の対象物把持装置。
【請求項6】
前記姿勢推定パラメータは、前記対象物の各姿勢に対応する照合データの照合順序を示す照合優先順位を含み、
前記修正手段は、前記検知手段により把持の失敗が検知された際の前記対象物の姿勢に対応する照合データの照合順序を、他の姿勢の照合データを用いた対象物の照合順序よりも後にするように、前記照合優先順位を修正することを特徴とする請求項1に記載の対象物把持装置。
【請求項7】
前記推定手段は、前記対象物の姿勢と前記照合データとの相関値を姿勢ごとに算出する相関値算出手段を備え、
前記推定手段は、前記相関値に基づき前記対象物の姿勢を推定することを特徴とする請求項4乃至6の何れか1項に記載の対象物把持装置。
【請求項8】
前記姿勢推定パラメータには、前記対象物の各姿勢に対応する所定の重み係数を含み、
前記推定手段は、前記相関値に対して各姿勢に対応する所定の前記重み係数を乗じて姿勢別の信頼度を算出する信頼度算出手段を備え、
前記推定手段は、前記信頼度に基づき前記対象物の姿勢を推定し、
前記修正手段は、前記検知手段により把持の失敗が検知された際の前記対象物の姿勢に対応する前記重み係数をより低い値に修正することを特徴とする請求項7に記載の対象物把持装置。
【請求項9】
前記修正手段は、前記検知手段により把持の失敗が検知された際の前記対象物の姿勢に対応する前記姿勢推定パラメータの修正に加えて、当該姿勢と所定の範囲内にある周辺姿勢に対応する前記姿勢推定パラメータも修正することを特徴とする請求項1乃至8の何れか1項に記載の対象物把持装置。
【請求項10】
前記検知手段は、前記把持手段に備えられたセンサの出力に基づき把持の失敗を検知することを特徴とする請求項1に記載の対象物把持装置。
【請求項11】
ユーザが認知した前記対象物の把持の失敗通知を受け付ける受付手段をさらに備え、
前記検知手段は、前記通知に基づいて把持の失敗を検知することを特徴とする請求項1に記載の対象物把持装置。
【請求項12】
前記推定手段は、撮像手段により撮像された画像に基づいて前記対象物の姿勢を推定することを特徴とする請求項1に記載の対象物把持装置。
【請求項13】
前記推定手段は、測距センサから取得された距離情報に基づいて前記対象物の姿勢を推定することを特徴とする請求項1に記載の対象物把持装置。
【請求項14】
推定手段と、把持手段と、検知手段と、修正手段と、を備える対象物把持装置の制御方法であって、
前記推定手段が、対象物の姿勢を姿勢推定パラメータに基づいて推定する推定工程と、
前記把持手段が、前記推定工程により推定された前記対象物の姿勢に基づいて前記対象物を把持する把持工程と、
前記検知手段が、前記把持工程による把持の失敗を検知する検知工程と、
前記修正手段が、前記検知工程により把持の失敗が検知された際の前記対象物の姿勢に基づいて前記姿勢推定パラメータを修正する修正工程と、
を備えることを特徴とする対象物把持装置の制御方法。
【請求項15】
請求項14に記載の対象物把持装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【図1】
【図5】
【図6】
【図9】
【図13】
【図2】
【図3】
【図4】
【図7】
【図8】
【図10】
【図11】
【図12】
【図14】
【図5】
【図6】
【図9】
【図13】
【図2】
【図3】
【図4】
【図7】
【図8】
【図10】
【図11】
【図12】
【図14】
【公開番号】特開2013−10155(P2013−10155A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2011−143389(P2011−143389)
【出願日】平成23年6月28日(2011.6.28)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願日】平成23年6月28日(2011.6.28)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]