(57)【要約】【課題】ロボットなどにより対象物体を把持する際の把持位置を速やかにかつ高い精度で求める。【解決手段】把持装置が対象物体を把持するための把持位置を求める情報処理装置が提供される。情報処理装置は、対象物体を撮像して得られる撮像画像を取得（Ｓ１３０）する画像取得部、撮像画像における画像特徴を複数検出する（Ｓ１４０）画像特徴検出部、複数の画像特徴が繰り返して現れるパターンを有する画像特徴群の単位を検出する（Ｓ１５０）単位検出部を有する。また、情報処理装置は、単位検出部が検出した単位を用いて、把持位置を決定する（Ｓ１６０）把持位置決定部を更に有する。【選択図】図４
2019063984.tif 000002
【特許請求の範囲】
【請求項１】
把持装置が対象物体を把持するための把持位置を求める情報処理装置であって、
前記対象物体を撮像して得られる撮像画像を取得する画像取得手段と、
前記撮像画像における画像特徴を複数検出する画像特徴検出手段と、
前記複数の画像特徴が繰り返して現れるパターンを有する画像特徴群の単位を検出する単位検出手段と、
前記単位検出手段が検出した単位を用いて、前記把持位置を決定する把持位置決定手段と、
を有する情報処理装置。
【請求項２】
前記単位検出手段は、前記画像特徴の相対位置関係から前記複数の画像特徴をクラスタリングすることで、前記画像特徴群の単位を検出することを特徴とする、
請求項１記載の情報処理装置。
【請求項３】
前記単位検出手段は、前記画像特徴の特徴量をもとに画像特徴をクラスタリングすることで、前記画像特徴群の単位を検出することを特徴とする、
請求項１または２に記載の情報処理装置。
【請求項４】
前記把持位置決定手段は、前記画像特徴群から構成される前記単位に基づき把持位置を決定することを特徴とする、
請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記把持位置決定手段は、複数の把持位置に対して、把持を行うための優先順位を付けることを特徴とする、
請求項１乃至４のいずれか１項記載の情報処理装置。
【請求項６】
前記把持装置は、マニピュレータを備えたロボットシステムの前記マニピュレータに設けられており、
前記情報処理装置は、前記マニピュレータを制御する制御手段を更に有することを特徴とする、
請求項５記載の情報処理装置。
【請求項７】
前記マニピュレータには撮像装置が設けられており、前記マニピュレータまたは前記撮像装置の姿勢情報を取得する姿勢情報取得手段を更に備え、
前記把持位置決定手段は、前記姿勢情報をもとに前記複数の把持位置に優先順位を付けることを特徴とする、
請求項６記載の情報処理装置。
【請求項８】
前記把持装置が前記対象物体の把持に成功したか否かを判定する把持成否判定手段を更に備え、
前記把持位置決定手段は、前記把持成否判定手段が把持に失敗したと判定した場合に、前記把持位置とは異なる別の把持位置を決定することを特徴とする、
請求項１乃至７のいずれか１項記載の情報処理装置。
【請求項９】
前記把持位置決定手段は、複数の把持位置を決定し、
前記把持装置が前記対象物体の把持に成功したか失敗したかを判定する把持成否判定手段を更に備え、
前記把持位置決定手段は、前記把持成否判定手段で把持が失敗したと判定された場合に、前記複数の把持位置の中から、把持に失敗した前記把持位置とは異なる別の把持位置を選択することを特徴とする、
請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項１０】
前記別の把持位置は、前記把持成否判定手段で把持が失敗したと判定された把持位置の決定に用いられた前記画像特徴群とは別の画像特徴群から前記別の把持位置を決定することを特徴とする、
請求項８または９のいずれかに記載の情報処理装置。
【請求項１１】
前記単位検出手段は前記単位の候補を複数算出し、
前記別の把持位置は、前記把持成否判定手段で把持が失敗と判定された把持位置の決定に用いられた前記単位とは別の単位から前記別の把持位置を決定することを特徴とする、
請求項８または９のいずれか１項に記載の情報処理装置。
【請求項１２】
前記把持装置が前記対象物体の把持に成功したか失敗したかを判定する把持成否判定手段、および、
前記画像取得手段により取得した複数の撮像画像から前記対象物体の変位を検出し、検出された変位から前記撮像画像における前記対象物体に対応する領域を求める変位検出手段を備え、
前記把持成否判定手段で把持が失敗したと判定された場合に、
前記把持位置決定手段は、仮把持位置を設定し、
前記制御手段は、前記マニピュレータを制御して前記把持装置を前記仮把持位置に移動させて前記対象物体の把持を試行し、把持に成功した場合には、把持された対象物体を所定の微小距離で変位させ、
前記変位検出手段は、前記画像取得手段により取得した前記変位の前後の画像から前記対象物体に対応する領域を求め、
前記把持位置決定手段は、前記対象物体に対応する領域から前記把持位置を決定することを特徴とする、請求項６または７に記載の情報処理装置。
【請求項１３】
前記把持装置が前記対象物体の把持に成功したか否かを判定する把持成否判定手段、対象物体の画像特徴情報を保持する画像特徴情報保持手段、および前記単位検出手段が検出した前記画像特徴情報を画像特徴情報保持手段に登録する画像特徴情報登録手段を更に備え、
前記画像特徴情報登録手段は、前記把持成否判定手段が前記対象物体の把持に成功したと判定した場合に、前記対象物体の前記画像特徴情報を前記画像特徴情報保持手段に保持し、
前記単位検出手段は、前記画像特徴情報保持手段が保持する画像特徴情報をもとに単位を検出することを特徴とする、
請求項１から１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記画像特徴情報保持手段は、更に、前記対象物体の把持に成功した位置の位置情報と前記単位のサイズとを保持することを特徴とする、
請求項１３に記載の情報処理装置。
【請求項１５】
前記把持装置が前記対象物体の把持に成功したか否かを判定する把持成否判定手段、前記画像取得手段により取得した画像から前記対象物体のモデルを生成するモデル生成手段、前記モデルを保持するモデル保持手段、および、
前記モデルを用いて前記対象物体の位置姿勢を算出する位置姿勢算出手段を更に有し、
前記モデル生成手段は、前記把持成否判定手段が前記対象物体の把持に成功したと判定した場合に前記モデルを生成し、生成された前記モデルを前記モデル保持手段に入力して保持させ、
前記位置姿勢算出手段は、前記モデル保持手段が保持する前記モデルをもとに前記対象物体の位置姿勢を算出することを特徴とする、
請求項１乃至１４のいずれか1項に記載の情報処理装置。
【請求項１６】
前記単位または前記把持位置をユーザに対して表示するための表示手段を更に備えることを特徴とする、
請求項１乃至１５のいずれか１項に記載の情報処理装置。
【請求項１７】
ユーザが前記単位または把持位置を入力するための入力手段を更に備えることを特徴とする、
請求項１５項記載の情報処理装置。
【請求項１８】
把持装置が対象物体を把持するための把持位置を求める情報処理方法であって、
前記対象物体を撮像して得られる撮像画像を取得し、
前記撮像画像における画像特徴を複数検出し、
前記複数の画像特徴が繰り返して現れるパターンを有する画像特徴群の単位を検出し、かつ、
前記検出した単位を用いて前記把持位置を決定することを特徴とする、
情報処理方法。
【請求項１９】
対象物体を撮像する撮像装置と、情報処理装置とを有するロボットシステムであって、前記情報処理装置は、
前記撮像装置から、前記対象物体を撮像して得られた撮像画像を取得する画像取得手段、
前記撮像画像における画像特徴を複数検出する画像特徴検出手段、
前記複数の画像特徴が繰り返して現れるパターンを有する画像特徴群の単位を検出する単位検出手段、および、
前記単位検出手段が検出した単位を用いて、把持装置が前記対象物体を把持するための把持位置を決定する把持位置決定手段を有することを特徴とする、
ロボットシステム。
【請求項２０】
前記把持装置は、前記ロボットシステムに設けられている、
請求項１９に記載のロボットシステム。
【請求項２１】
前記ロボットシステムは、マニピュレータを更に有し、
前記把持装置は前記マニピュレータに設けられており、
前記情報処理装置は、前記マニピュレータの姿勢を制御するための制御手段を更に有することを特徴とする、
請求項２０に記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、把持装置が対象物体を把持する際の把持位置を求めるための情報処理装置、方法及びシステムに関する。
【背景技術】
【０００２】
ロボットを用いた対象物体の把持においては、対象物体が乱雑にバラ積みされている場合には、対象物体を正常に把持することができる把持位置を求めることが必要となる。そのために、対象物体を撮像して得られた画像情報から対象物体の把持位置を求める手法が知られている。把持位置を求める手法の一つとして、対象物体を三次元計測した画像情報から教示モデルデータを利用してロボットが把持を行う把持位置を推定する手法が知られている。
【０００３】
特許文献１は、対象物体の把持を行う前に教示モデルデータを生成し、三次元計測した対象物体を含む画像情報から対象物体の教示モデルデータを利用して対象物体の位置姿勢を推定する技術を開示している。この技術では教示モデルを用いて把持位置を推定しているが、教示モデルを用いることなく対象物体の把持位置を求める技術も知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２８８９７４
【発明の概要】
【発明が解決しようとする課題】
【０００５】
教示モデルを用いる場合、把持位置の推定における精度を高くすることが可能であるが、教示モデルの準備及び把持位置を推定するための前処理等に長時間が必要となる。例えば、特許文献１では、作業前の準備に長時間を要するうえに、対象物体が変更されるとそれに合わせて教示モデルを新たに生成する必要がある。
【０００６】
また、教示モデルを用いずに把持位置を推定する方法では、教示モデルを生成するために時間が費やされることはないが、把持位置の推定精度を高くすることは難しい。
以上のことから、本発明は、ロボットなどにより対象物体を把持する際の把持位置を速やかにかつ高い精度で求めることを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の情報処理装置は、把持装置が対象物体を把持するための把持位置を求める情報処理装置であって、前記対象物体を撮像して得られる撮像画像を取得する画像取得手段と、前記撮像画像における画像特徴を複数検出する画像特徴検出手段と、前記複数の画像特徴が繰り返して現れるパターンを有する画像特徴群の単位を検出する単位検出手段と、前記単位検出手段が検出した単位を用いて、前記把持位置を決定する把持位置決定手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ロボットなどにより対象物体を把持する際の把持位置を速やかにかつ高い精度で求めることができる。
【図面の簡単な説明】
【０００９】
【図１】ロボットシステムの機能ブロック図。
【図２】情報処理装置のハードウェア構成図。
【図３】ロボットシステムと対象物体との説明図。
【図４】ロボットシステムで実行される処理を表すフローチャート。
【図５】類似構造（単位）検出処理の説明図。
【図６】変形例におけるロボットシステムの機能ブロック図。
【図７】ロボットシステムで実行される処理を表すフローチャート。
【図８】把持位置の検出結果を出力するＧＵＩの説明図。
【図９】変形例におけるＧＵＩの説明図。
【図１０】第２実施形態におけるロボットシステムの機能ブロック図。
【図１１】ロボットシステムで実行される処理を表すフローチャート。
【図１２】第３実施形態におけるロボットシステムの機能ブロック図。
【図１３】第３実施形態におけるロボットシステムで実行される処理を表すフローチャート。
【図１４】第４実施形態におけるロボットシステムの機能ブロック図。
【図１５】第４実施形態におけるロボットシステムで実行される処理を表すフローチャート。
【図１６】変形例におけるロボットシステムの機能ブロック図。
【図１７】変形例においてロボットシステムで実行される処理を表すフローチャート。
【発明を実施するための形態】
【００１０】
以下に、図面を参照しながら、本発明を実施するための形態について説明する。
（第１実施形態）
第１実施形態では、複数の同一物体が整列して配置されている環境において、ロボットが教示モデルを用いずに、把持の対象となる対象物体を把持する場合について説明する。第１実施形態において、対象物体とは、ロボットによる把持の対象となる物体であり、例えば箱形状の商品を含む。また、整列とは、対象物体が隙間なく同一の向きに並べられていることをいう。
【００１１】
ロボットは対象物体を把持する把持装置、把持装置を移動させるためのマニピュレータから構成されているものとする。第１実施形態においては、把持装置とは対象物体を空気圧で吸着する吸着ハンドのことであり、把持位置とは吸着ハンドで吸着する位置のことである。また、マニピュレータには対象物体を撮像するための撮像装置が取り付けられているものとし、マニピュレータを移動させることで把持装置、及び撮像装置を移動させることができる。
【００１２】
更に、ロボットには、撮像装置から取得した画像に対して画像特徴検出等の処理を行う情報処理装置及び情報処理装置から得られる処理結果からマニピュレータ及び把持装置を制御する制御部が設けられている。また、情報処理装置は必ずしもロボットシステム自体に設ける必要はない。例えば撮像装置及び制御部と無線または有線で接続されたコンピュータで、上述した画像特徴検出等の処理を行い、その処理結果を制御部に入力する構成とすることも可能である。
【００１３】
ロボットが対象物体を把持するためには把持位置を求めることが必要である。そのために、第１実施形態では、ロボットに設けられた撮像装置が撮像した画像から画像特徴を複数検出し、検出された複数の画像特徴から把持位置を算出した。また、第１実施形態では、画像特徴として二次元の特徴点を用いる。ここで「特徴点」とは、画像中の角などの幾何学的な構造を指し示す点のことである。
【００１４】
次に、検出した特徴点を、互いに特徴点に関して類似構造を有する複数の画像特徴群にクラスタリングする。クラスタリングされる構造の1つを単位と呼ぶ。本明細書では、画像特徴に関して、画像特徴同士の配置や特徴量などについての構造や関連性が類似していることを、「類似構造」として記載する。第１実施形態における類似構造とは、画像特徴の相対位置関係が繰り返して現れ、が類似している構造であることを指す。また、類似構造を有する複数の画像特徴群とは、クラスタリング後の各画像特徴の集合に含まれる画像特徴同士の相対位置関係が類似するようにクラスタリングした画像特徴の集合を指す。そして、クラスタリングした画像特徴群をもとにロボットが把持する位置を算出する。第１実施形態においては、各画像特徴群の重心位置を把持位置とする。
【００１５】
図１に、第１実施形態における情報処理装置１０を備えるロボットシステム１の機能ブロック図を示す。情報処理装置１０は、画像取得部１１０、画像特徴検出部１２０、類似構造（単位）検出部１３０、把持位置決定部１４０、三次元情報算出部１５０を有する。情報処理装置１０は、ロボットに搭載されている撮像装置１４及び制御部１１と接続されている。制御部１１は、マニピュレータ１２及び把持装置１３と接続され、それらを制御する。ただし、図１は、機器構成の一例であり、本発明の適用範囲を限定するものではない。
【００１６】
画像取得部１１０は、撮像装置１４が撮像する対象物体を含む２次元画像の画像データを取得し、画像特徴検出部１２０に出力する。画像特徴検出部１２０は、画像取得部１１０から入力された入力画像に対して特徴検出処理を行うことで特徴点を検出して類似構造（単位）検出部１３０に出力する。単位検出手段としての類似構造検出部１３０は、画像特徴検出部１２０が検出した特徴点から類似構造を検出し、把持位置決定部１４０に出力する。
【００１７】
把持位置決定部１４０は、類似構造（単位）検出部１３０が検出した類似構造から、入力画像上でロボットが対象物体を把持する２次元位置を算出し、制御部１１に出力する。三次元情報算出部１５０は、把持位置決定部１４０から入力される２次元位置から把持位置の三次元位置を算出してマニピュレータ１２の位置及び姿勢を決定して把持位置決定部１４０に入力する。従って、把持位置決定部１４０は、これら三次元位置、マニピュレータ１２の位置及び姿勢をも制御部１１に入力する。なお、図１では三次元情報算出部１５０を把持位置決定部１４０とは別個に設けたが、把持位置決定部１４０が三次元情報算出部１５０の機能を有するものとしてもよい。
【００１８】
図２は、情報処理装置１０のハードウェア構成を示す図である。ＣＰＵ（Central Processing Unit）２１は、システムバス２８に接続された各種デバイスの制御を行う。ＲＯＭ(Read Only Memory)２２には、ＢＩＯＳ（Basic Input Output System）のプログラム及びブートプログラムが記憶される。ＲＡＭ(Random Access Memory)２３は、ＣＰＵ２１の主記憶装置として使用される。外部メモリ２４には、情報処理装置１０による情報処理や各種デバイスの制御に必要なプログラムが記憶される。
【００１９】
ＣＰＵ２１は、ＲＯＭ２２に記録されたプログラムをＲＡＭ２３に展開し、図１に記載された画像取得部１１０、画像特徴検出部１２０、類似構造（単位）検出部１３０、把持位置決定部１４０をソフトウェアとして構築する。入力部２５は、キーボードやマウス、ロボットコントローラーであり、ユーザからの情報等の入力処理を行う。表示部２６は、ＣＰＵ２１からの指示に従って情報処理装置１０における情報処理の演算結果やその他の必要な情報を表示装置２９に表示するための表示制御を行う。
【００２０】
なお、表示装置２９は、液晶表示装置やプロジェクタ、ＬＥＤ（Light Emitting Diode）インジケーターなど、任意のものを用いることができる。また、表示装置２９は情報処理装置１０に設けても、あるいは、情報処理装置１０と有線または無線により接続された別個の装置としてもよい。通信インターフェイス２７は、ネットワークなどを介して通信を行い、例えば情報処理装置１０が算出したロボットシステム１の制御情報をロボットシステム１に出力する。通信インターフェイスは、イーサネット（登録商標）でもよく、ＵＳＢ（Universal Serial Bus）やシリアル通信等の任意のタイプのものを用いることができる。
【００２１】
図３は、第１実施形態におけるロボットシステム１の構成の一例の説明図である。第１実施形態においてロボットシステム１は、例えば多関節ロボットであり、ロボットアーム等のマニピュレータ１２、吸着ハンド等の把持装置１３、及びそれらを制御する制御部１１を備える。また、マニピュレータ１２の各関節の角度を変更することで把持装置１３の位置姿勢を変更可能な位置姿勢変更機構１６を備える。位置姿勢変更機構１６は、電動モータによって駆動されてもよく、または、油圧や空気圧等の流体圧で作動するアクチュエータ等によって駆動されてもよい。この位置姿勢変更機構１６は、制御部１１から出力される動作指示情報に従って駆動される。制御部１１は、情報処理装置１０が出力した把持位置情報に従って、位置姿勢変更機構１６を通じてマニピュレータ１２を制御することでロボットを制御し、かつ、把持装置１３を制御して対象物体１５を把持する。第１実施形態において、撮像装置１４はＲＧＢカメラであり、対象物体１５を含むシーンを撮像する。
【００２２】
次に、第１実施形態における処理手順について説明する。図４は、第１実施形態における情報処理装置１０を備えるロボットシステム１で実行される処理の一例を表すフローチャートである。この処理手順において、初期化（Ｓ１１０）、画像撮像（Ｓ１２０）、画像取得（Ｓ１３０）、画像特徴検出（Ｓ１４０）、類似構造検出（Ｓ１５０）、把持位置決定（Ｓ１６０）、及びマニピュレータ及び把持装置制御（Ｓ１７０）が実行される。把持位置制御を実行した後に、把持した対象物体１５の数が所定の把持数に到達したか否かの判定（Ｓ１８０）が実行される。
【００２３】
以下、上記処理手順を詳細に説明する。情報処理装置１０のＣＰＵ２１は、システムの初期化を行う（Ｓ１１０）。この初期化では、ＣＰＵ２１は、必要に応じてＲＯＭ２２からＢＩＯＳプログラム等の読み出し及び外部メモリ２４からのプログラムの読み出しを行って、情報処理装置１０を動作可能な状態にする。また、ＣＰＵ２１は、情報処理装置１０に接続された各機器のパラメータの読み込みやロボットの初期位置への動作を行い、使用可能な状態にする。これらに加え、三次元情報算出部１５０（または把持位置決定部１４０）は、撮像装置１４が対象物体１５を撮像するために、マニピュレータ１２が移動する位置姿勢を決定し、制御部１１に入力する。
【００２４】
決定される位置姿勢は、対象物体１５を撮像することができるのであれば乱数で決定する、設計者があらかじめ固定値で決める、あらかじめ設計者が決めた範囲内において乱数で決定するなどの任意の方法で決定できる。制御部１１は、入力された撮像位置姿勢に基づいて制御情報をマニピュレータ１２に入力し、その結果マニピュレータ１２が動作する。その後、マニピュレータ１２が撮像位置姿勢となった後に、撮像装置１４が対象物体１５の撮像を実行する（Ｓ１２０）。この撮像は、ＣＰＵ２１による制御の下で行ってもよい。
【００２５】
画像取得部１１０は、撮像装置１４から、撮像した対象物体１５を含む２次元画像の画像データを取得する（Ｓ１３０）。その後、画像特徴検出部１２０は、Ｓ１３０で取得した画像から複数の特徴点を検出する（Ｓ１４０）。第１実施形態では、特徴点として、平滑化画像の局所領域内の勾配方向のヒストグラムを特徴量とするＳＩＦＴ特徴点を用いる。特徴点情報として、特徴点の画像上での位置、及び特徴量を算出する。第１実施形態において、特徴量は、ＳＩＦＴ特徴ベクトルのことである。類似構造（単位）検出部１３０は、Ｓ１４０で取得した特徴点情報をもとに、類似構造を構成する画像特徴群を算出する（Ｓ１５０）。
【００２６】
類似構造検出処理の説明図を図５（ａ）〜（ｇ）に示す。類似構造（単位）検出部１３０は、ステップＳ１４０において算出した特徴ベクトルが類似している特徴点集合に特徴点を分類する。具体的には、図５（ａ）において、Ｆ０〜Ｆ３及びＦ０’〜Ｆ３’を特徴点として、Ｆ０とＦ０’、Ｆ１とＦ１’、Ｆ２とＦ２’、Ｆ３とＦ３’が、それぞれ特徴ベクトルが類似している特徴点とする。そして、図５（ｂ）に示すように、それぞれ特徴点をＣ０からＣ３の集合に分類する。次に、異なる特徴点集合に含まれる特徴点間の二次元の相対位置関係を、ステップＳ１４０において算出した特徴点の画像上での位置をもとに算出する。
【００２７】
特徴点間の相対位置関係とは、特徴点間の画像上の距離、あるいは特徴点間の画像上の距離と方向との組のことである。そして、特徴点のクラスタリングは、特徴点集合内の特徴点が複数の画像特徴群それぞれに同程度の数が含まれ、特徴点同士の相対位置関係が各画像特徴群同士で類似するように行われる。具体的には、Ｆ０とＦ１の相対位置関係、及びＦ０’とＦ１’の相対位置関係が類似するときには、図５（ｃ）に示すように、Ｆ０とＦ１を画像特徴群Ｒ１０、Ｆ０’とＦ１’を画像特徴群Ｒ１１に分類する。これらを複数の特徴点の組に適応して結合していくことで、類似構造を構成する画像特徴群として、図５（ｄ）に示すような画像特徴群Ｒ２０，Ｒ２１を得る。
【００２８】
なお、対象物体１５が整列している場合には複数の類似構造パターンが存在し得るので、図５（ｅ）のように、画像特徴の分類において、画像特徴群同士が重複する領域が発生するように画像特徴が分類されてしまう場合がある。そこで、特徴点のクラスタリング時に、Ｒ３０のような重複領域の存在の有無を確認し、重複領域が存在する場合には重複領域を生じさせる画像特徴を分類から除外して、重複領域が生じないようにクラスタリングする。
一方、図５（ｆ）に示すように、画像特徴群を囲む領域が、対象物体１５の境界を超えて複数の対象物体１５にわたって存在する場合がある。ここで、物体の境界には、画像上にエッジが存在する。従って、画像特徴群内にエッジＲ４０がある場合にはエッジをまたがないように特徴点をクラスタリングすることで、対象物体１５の境界を越えてクラスタリングがなされることを防ぐことができる。
【００２９】
更に、図５（ｇ）に示すように、対象物体１５上で特徴点が均一に存在しない場合には、画像特徴群を囲む領域が対象物体１５上で偏ることがある。この場合、画像特徴群を囲む各領域について、所定の方向において他の画像特徴群が存在するかを判定する。例えば、図５（ｇ）において、画像特徴群Ｒ５１０から方向Ｒ５０１側に他の領域があるか否かを判定する。同様に、画像特徴群Ｒ５１１から方向Ｒ５０１側に他の領域があるか否かを判定する。この例では、方向Ｒ５０１側には他の画像特徴群は存在しない。方向Ｒ５０２等の他の方向についても、他の画像特徴群が存在するか否かを判定する。他の画像特徴群が存在しない各方向について、画像特徴群の各領域をその方向へと拡張する。
【００３０】
このとき、好ましくは対象物体１５の画像上のエッジを検出して、拡張した画像特徴群の領域がエッジを超えないようにする。図５（ｇ）の例では、Ｒ５０１，Ｒ５０２等のいずれの方向においても他の画像特徴群は存在していない。従って、画像特徴群Ｒ５１０の領域は、エッジを超えない範囲で拡張することができる。
【００３１】
把持位置決定部１４０は、ステップＳ１５０で導出した画像特徴群をもとに、ロボットシステム１の把持装置１３が把持する入力画像上での二次元位置を把持位置として算出する（Ｓ１６０）。具体的には、この例ではそれぞれの画像特徴群に含まれる特徴点の重心位置を把持位置とする。なお、第１実施形態においては、複数算出した類似構造から求めた複数の把持位置の中から、ランダムに一つを選択して把持位置として決定する。
【００３２】
次に、制御部１１は、ステップＳ１６０で把持位置決定部１４０によって算出された把持位置をもとに、把持動作のためのマニピュレータ１２、及び把持装置１３の制御を行う（Ｓ１７０）。なお、ステップＳ１６０で算出した把持位置は画像上での２次元位置である。しかし、ロボットが把持動作を実行するためにはロボットが把持する三次元位置を算出する必要がある。
【００３３】
三次元の把持位置を求めるには、任意の従来の手法を用いることができる。第１実施形態では、情報処理装置１０のＣＰＵ２１が、ロボットの動作中に撮像装置１４を制御して複数の視点で対象物体１５を撮像してそれぞれの画像上で把持位置を求める。そして、三次元情報算出部１５０（または把持位置決定部１４０）が、撮像時のロボットの姿勢情報をもとにモーションステレオ法を用いて把持位置の三次元位置を求める。得られた三次元の把持位置をもとに制御部１１がマニピュレータ１２を動作させ把持装置１３を移動させる。目的とする三次元位置に把持装置１３が到達すると、制御部１１が把持装置１３に把持動作の信号を送り、把持装置１３が把持動作を実行する。
【００３４】
Ｓ１７０を実行した後、ＣＰＵ２１は、システムを終了するか判定する。具体的には、マニピュレータが把持した対象物体１５の数が、入力部２５を通じてユーザが入力した対象物体数の所定の把持数に到達したか否かを判定する。所定の把持数に達していなければ（Ｓ１８０：Ｎ）、ステップＳ１６０に戻り、複数算出した把持位置の中から別の把持位置を選択して把持動作を把持位置決定部１４０が繰り返す。ユーザが入力した所定の把持数に到達している場合（Ｓ１８０：Ｙ）は、システムを終了する。なお、到達すべき把持数をユーザが入力する代わりに、情報処理装置１０とは別個に設けられた対象物体管理システムから有線又は無線ネットワーク等を介して指定してもよい。
【００３５】
以上に述べたように、第１実施形態では類似する構造を有する複数の画像特徴群を類似構造（単位）検出部１３０が検出し、画像特徴群からロボットシステム１の把持装置１３による対象物体１５の把持位置を算出する。これにより、教示モデルやＣＡＤモデルを用意することなく把持位置を求めることができるので、ロボットシステム１による作業を、事前に手間をかけることなく効率的に開始できる。また、対象物体１５が整列している状況、すなわち特徴が繰り返し現れる状況であっても、上述のように画像のエッジを検出して画像特徴群を囲む領域が対象物体１５の境界を超えないようにすることで、対象物体１５を把持することができる。
【００３６】
第１実施形態においては、画像を撮像する撮像装置１４としてＲＧＢカメラを用いた。しかしながら、撮像装置１４は、ＲＧＢカメラに限るものではなく、現実空間の画像を撮像するカメラであれば特に制限はない。例えば濃淡画像を撮像するカメラでもあってもよく、奥行き情報や距離画像、三次元点群データを撮像できるカメラであってもよい。また、撮像装置１４は単眼カメラであってもよいし、二台以上の複数のカメラやセンサを備えるカメラであってもよい。
【００３７】
特に、奥行き情報を撮像できるカメラを用いる場合には、ステップＳ１６０においてモーションステレオ法でロボットの三次元の把持位置を求める代わりに、奥行きカメラから得た奥行き値を用いて三次元の把持位置を求めてもよい。また、二台以上の複数のカメラを備える構成を用いることができる場合には、既知のカメラの相対位置情報を用いて複数のカメラ間でのステレオマッチングにより得られる奥行き値を用いて三次元の把持位置を求めてもよい。上述した第１実施形態では、ＣＰＵ２１の制御によりロボットの動作中に撮像装置１４を制御して複数の視点で対象物体１５を撮像することで、把持位置の三次元位置を求める。しかし、奥行き情報を撮像できるカメラや二台以上の複数のカメラを備える構成を採用した場合には、複数の視点で対象物体１５を撮像する必要はない。
【００３８】
第１実施形態の上述した例においては、把持装置１３は空気圧で対象物体１５を吸着する吸着パッドを用いた吸着ハンドを用いている。しかしながら、把持装置１３としては、ロボットにより対象物体１５を把持できる任意の装置を用いることができる。また、各実施形態において、把持とは、保持（例えば真空吸着パッドや電磁力を利用して吸着すること）あるいは把握（例えば複数のフィンガーで掴むことや挟持すること）等の概念を含む。把持位置とは、対象物体１５に対して把持力が及ぼされる位置のことである。第１実施形態においては、吸着ハンドで対象物体１５を吸着することで対象物体１５を把持しており、把持位置とは吸着位置を意味する。
【００３９】
複数のフィンガーで対象物体１５を挟持する場合には、類似構造（単位）検出部１３０が算出した画像特徴群を囲む領域の境界付近から、エッジや微小な隙間を検出しフィンガーを差し込む位置を把持位置決定部１４０が把持位置として決定する。その後、制御部１１がマニピュレータ１２を動作させて把持装置１３のフィンガーを隙間に差し込むことで対象物体１５を把持してもよい。
【００４０】
把持装置１３が保持機構と把握機構との双方を備えている場合、最初に保持機構を作動して所定の高さまで対象物体１５を把持して持ち上げ、次に把握機構が対象物体１５を挟み込むように把握してもよい。また、把持装置１３は、マニピュレータ１２に対して着脱可能に取り付けられ、ワークの種類に応じて交換可能な構成であってもよい。また、ロボットは多関節ロボットに限定されるものではなく、数値制御（Ｎｕｍｅｒｉｃａｌ  Ｃｏｎｔｒｏｌ：ＮＣ）可能な可動式の機械であってもよい。
【００４１】
第１実施形態では、画像特徴として、二次元の特徴点であるＳＩＦＴを用いていた。しかしながら、このような特徴点としては、２つの画像特徴の相対位置関係、及び特徴量の類似度を算出することができるものであれば任意のものを採用できる。例えば、二次元の特徴点として局所画像領域内におけるある２点の輝度の大小からバイナリコードを生成し特徴量とするＯＲＢ特徴点を用いてもよい。
【００４２】
画像特徴の定義として、Ｈａｒｒｉｓコーナー検出法によって画像中の角などの特徴的な位置を算出し、周囲の色情報を特徴量とした画像特徴、あるいは、周囲の小領域のテンプレートを特徴量とした画像特徴を用いることもできる。更に、文字認識によって検出した文字情報を画像特徴として用いてもよく、あるいは、複数種類の画像特徴を組み合わせて用いてもよい。また、画像特徴は二次元の特徴点に限らない。撮像装置１４が奥行き情報を取得できる場合には、画像特徴として三次元特徴点を用いてもよい。例えば、三次元特徴点としてある法線を持った二点の三次元点群の相対位置を特徴量とする３次元位置姿勢認識手法であるＰｏｉｎｔ  Ｐａｉｒ  Ｆｅａｔｕｒｅを用いてもよい。更に、三次元点の法線と周囲に位置する三次元点の法線との内積のヒストグラムを特徴量とするＳＨＯＴ特徴、または、ある三次元点の法線ベクトルを軸とする円柱面に周囲の三次元点を投影したＳｐｉｎ  Ｉｍａｇｅを用いた特徴を用いてもよい。
【００４３】
三次元特徴点を用いる場合には、ステップＳ１５０における特徴点の相対位置関係として三次元の相対位置関係を算出して用いてもよく、把持位置決定部１４０が算出する把持位置も画像上の二次元位置ではなくロボットが把持する三次元位置を直接求めてもよい。第１実施形態では、画像特徴の相対位置関係及び特徴量の類似度を用いて類似構造を有する画像特徴群を求めた。しかしながら、画像特徴の相対位置関係のみの類似度を用いて類似構造を有する画像特徴群を算出してもよい。また、ある特徴点と周囲の特徴点との配置関係をもとに、周囲に類似する配置をもつ特徴点の対応を見つけた後にステップＳ１５０による類似構造検出を行ってもよい。
【００４４】
第１実施形態における上述した例では、事前に教示モデルやＣＡＤモデルなどの対象物体１５に関する事前知識がない場合に類似構造を算出した。しかしながら、事前知識を併用してもよい。例えば、事前知識として対象物体１５が単独で写された事前画像（実写、あるいはＣＡＤモデルに基づく画像）を入力し、類似構造（単位）検出部１３０が事前画像と撮像画像との間での類似構造検出を行ってもよい。
【００４５】
また、対象物体１５に付加されているバーコードを事前知識として与えてもよい。更に、事前知識として入力した画像特徴を用いてもよい。例えば、対象物体１５に印字されている文字列をユーザが入力部２５を用いて入力し、画像特徴検出部１２０が撮像画像から文字列を検出し、検出した文字列をもとに類似構造（単位）検出部１３０が類似構造を検出する構成としてもよい。事前知識は、入力部２５により入力する、ＲＯＭ２２あるいは外部メモリ２４等の記憶装置から読み出す、ネットワーク等を介してダウロードする等の手法により取得が可能である。事前知識が文字情報であれば音声で入力してもよい。このように、事前知識を併用することで、より安定してロボットによる作業を開始できる。
【００４６】
第１実施形態では、複数の同一物体が整列して配置されている環境において、ロボットが教示モデルを用いずに対象物体１５を把持する作業を例にして説明を行った。しかしながら、第１実施形態は、複数の同一物体が整列されて配置されている環境に限定されるものではない。撮像画像中から撮像装置１４が各対象物体１５の類似構造を見つけることができる環境であれば、対象物体１５が整列して配置されている必要はない。従って、各対象物体１５の類似構造を見つけることができる限りにおいては、対象物体１５が回転して配置されていても、あるいは撮像したカメラに対して対象物体１５が前後にずれて配置されていてもよい。更に、類似構造を見つけることができる環境であれば、対象物体１５は積み重ねられていてもよいし、箱詰めされていてもよい。
【００４７】
第１実施形態では、ステップＳ１５０で算出した画像特徴群の重心位置を把持位置とした。しかし、物体のテクスチャが偏っている場合には、画像特徴検出部１２０が検出する特徴点が物体中で偏った位置に算出され、把持位置決定部１４０が算出した把持位置が物体の端に位置してしまう場合がある。この場合、ロボットシステム１の把持装置１３が対象物体１５を把持する位置が、対象物体１５の重心から大きく外れてしまい、対象物体１５の把持あるいは搬送ができない場合もある。
【００４８】
このことから、把持位置決定部１４０は、ステップＳ１６０において、画像特徴群を囲む領域を算出し、領域の重心位置やその領域の内接円の中心を把持位置として求める。また、把持位置決定部１４０は、ステップＳ１６０において、物体同士の境界として画像上のエッジを検出し、エッジが囲む画像特徴群が含まれる領域を対象物体１５として識別する。把持位置決定部１４０は、撮像画像内でその識別された対象物体１５に対応する領域、あるいは、対象物体１５が占有する領域から把持位置を求めることもできる。このとき、撮像画像内でその識別された対象物体画像に対応する領域の重心位置を把持位置として求める。あるいは、撮像画像内でその識別された対象物体画像に対応する領域の内接円の中心を把持位置として求める。
【００４９】
また、安定してロボットが物体を吸着するためには、吸着位置が平面であることが望ましい。このことから、撮像装置１４が奥行き情報を取得できる場合には、領域内の平面度を求め、平面度が大きい位置を把持位置としてもよい。一般に、吸着により把持を行う場合、把持装置１３の軸が平面に対して垂直に近いほど吸着力が強くなる。従って、平面の法線方向と把持装置１３の軸方向の差が所定の閾値以下となるように把持姿勢を求めることで、平面に対して把持装置１３の軸が垂直に近くなるようにして吸着力を確保することもできる。
【００５０】
第１実施形態では、把持位置決定部１４０において算出した把持位置のうちロボットが把持する位置及び把持する順序については特に優先順位は付けていない。しかしながら、類似構造の算出結果をもとに把持位置及び把持する順番に優先順位を付けることもできる。例えば、類似構造（単位）検出部１３０が検出した各画像特徴群の特徴点数が大きくなる把持位置に高い優先順位を与えてもよく、あるいは、類似構造を囲む領域の面積が大きい把持位置に高い優先順位を与えてもよい。撮像装置１４が奥行き情報を取得できる場合には、把持位置周辺の平面度が大きい把持位置に高い優先順位を与えてもよい。把持位置の優先順位に従って、把持装置１３が把持動作を実行してもよい。
【００５１】
＜第１変形例＞
図６に第１実施形態の第１変形例を示す。ロボットシステム１’は、マニピュレータ１２の姿勢を検出する姿勢センサ１７を更に有し、かつ、情報処理装置１０’には姿勢情報取得部１７０が設けられている。更に、情報処理装置１０’は、把持位置決定部１４０に代えて把持位置決定部１４０’を有する。第１変形例のロボットシステム１’は、これらの点で図１のロボットシステム１と異なっている。
【００５２】
なお、説明の簡素化のために、以下に説明する変形例及び各実施形態では、把持位置決定部１４０が三次元情報算出部１５０の機能を有するものとして、三次元情報算出部１５０を省略して説明する。これら姿勢情報取得部１７０及び把持位置決定部１４０’も、画像取得部１１０と同様に、ＣＰＵ２１によりソフトウェアとして構築されて制御される。なお、特に断わりのない限り、他の実施形態及び変形例も含めて、情報処理装置１０、１０’、２０〜４０及び４０’に構築される機能は、いずれもＣＰＵ２１によりソフトウェアとして構築されて制御される。
【００５３】
この例では、姿勢センサ１７は撮像装置１４に取り付けられる。情報処理装置１０’では、姿勢情報取得部１７０が姿勢センサ１７から姿勢情報を取得するとともに把持位置決定部１４０’に姿勢情報を入力する。また、把持位置決定部１４０’は、把持位置決定部１４０と同様に把持位置を求め、かつ、姿勢情報取得部１７０が取得した姿勢情報をもとに把持位置に対して優先順位を決定する。なお、図６におけるその他の構成はロボットシステム１と同様であるので説明は省略する。
【００５４】
第１変形例における具体的な処理のステップを図７に示す。ステップＳ１１０〜Ｓ１５０は、図４に示したフローチャートと同様であり、説明を省略する。Ｓ１５０を実行した後に、ＣＰＵ２１は、ステップＳ１９０において姿勢情報取得部１７０が姿勢センサの姿勢情報を取得し、画像取得部１１０の取得した画像内での重力方向を求める。ＣＰＵ２１は、ステップＳ１６０において把持位置決定部１４０’が重力方向の上位の把持位置から順に順序付けてもよい。図７のＳ１７０およびＳ１８０は、図４に示したロボットシステム１におけるフローチャートと同様のため説明を省略する。
【００５５】
また、姿勢センサ１７は、撮像装置１４に取り付けるのではなく、マニピュレータ１２に取り付けてもよい。このとき、マニピュレータ１２の位置姿勢をもとに撮像装置１４の位置姿勢を算出し、撮像装置１４に対する重力方向を求めることもできる。この場合、把持位置決定部１４０’は、重力方向の上側にある把持位置から順に優先順位を決定する。このように、重力方向上側の把持位置から優先的に対象物体１５を把持することで、例えば対象物体１５が垂直方向に積まれている場合に、一番上にある対象物体１５から対象物体１５を把持することができる。従って、他の対象物体１５の下にある対象物体１５を把持して積み上げられた対象物体１５を崩してしまうことが避けられる。
【００５６】
＜第２変形例＞
第１実施形態では、撮像された画像上での類似構造を検出してロボットが対象物体１５を把持する把持位置を算出し、ロボットの把持動作を実行する例を説明した。また、表示装置２９には、情報処理装置１０における情報処理の演算結果やその他の必要な情報が表示される。しかしながら、このような構成では、動作を監視するユーザは、ロボットが把持動作を実行するまではロボットがどこを把持するのかを確認することができない。そこで、第２変形例では、類似構造の検出結果または把持位置、把持順序のいずれか一つ、または複数を任意の提示部に提示する例を示す。
【００５７】
図８に、表示装置２９としてディスプレイを用いて、表示部２６がＣＰＵ２１の制御により把持位置の検出結果をユーザに表示するＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）の説明図を示す。このＧＵＩにおいては、撮像装置１４が撮像した画像上に写る対象物体１５の上に、ステップＳ１５０で算出した画像特徴群Ｇ１１１０、及び把持位置と把持順序Ｇ１１２０がＣＧで重畳されている。図示されるように、把持順序は丸囲みの数字で表わされている。
【００５８】
好ましくは、ユーザが状況を把握しやすくするように、画像特徴群毎に色を変えてもよく、把持位置や把持順序の色を画像特徴群の色に合わせてもよい。第２変形例では、画像特徴群Ｇ１１１０として、各画像特徴群を囲む領域を提示している。しかし、画像特徴群Ｇ１１１０として各画像特徴群に含まれる特徴点を提示してもよく、各画像特徴群を結ぶ線分を提示してもよい。更に、提示装置はディスプレイに限らない。例えば不図示のプロジェクタを用いて対象物体１５に類似構造、把持位置、把持順序のいずれか一つ、または複数を投影してもよいし、不図示の印刷装置を用いて紙に印刷してもよい。
【００５９】
＜第３変形例＞
第１実施形態では、画像上での類似構造を検出してロボットが対象物体１５を把持する把持位置を算出することでロボットの把持動作を実行していた。しかしながら、入力部２５を通じてユーザから入力された入力情報をもとに画像特徴群の検出結果を修正したり、新たな画像特徴群を検出したりしてもよい。
【００６０】
図９は、ユーザが類似構造検出結果を修正するための入力を行う第３変形例におけるＧＵＩの一例を示している。この例では、ＧＵＩ１２００には対象物体１５が示され、また、Ｇ１２４０に示されるように、対象物体間の境界部Ｇ１２４０が視認できる。その一方で、画像特徴群Ｇ１１１０は、境界部Ｇ１２４０を包含し、複数の対象物体１５にわたって形成されていることが示される。このことから、ユーザは、図９においては類似構造（単位）検出部１３０が誤って２個の対象物体１５を一つの物体であると認識しており、その結果画像特徴群Ｇ１１１０が境界部Ｇ１２４０を包含して形成されていると判断できる。そこで、この例では、ＧＵＩ１２００が提示する任意の画像特徴群のうちの一つの検出結果である画像特徴群Ｇ１１１０に対して、ユーザがカーソルＧ１２１０を用いて対象物体１５の境界線Ｇ１２２０を入力する。
【００６１】
ユーザは、マウス等の操作手段によってカーソルＧ１２１０を操作し、画像特徴群Ｇ１１１０内に境界線Ｇ１２２０を入力して画像特徴群を分割することができる。このとき、境界線Ｇ１２２０により分割した画像特徴群Ｇ１１１０をもとにして、情報処理装置１０のＣＰＵ２１が、画像認識等によって他の画像特徴群にも境界線Ｇ１２３０を自動的に挿入し分割してもよい。また、ＣＰＵ２１は、境界をまたぐ画像特徴群の相対位置関係の類似度が小さくなるように修正することで、類似構造（単位）検出部１３０による類似構造算出結果を修正してもよい。
【００６２】
なお、ユーザが入力するのは二つの物体の境界に限らない。例えば、新たな類似構造を入力してもよい。例えば、ユーザがカーソルＧ１２１０を用いて物体を一つ囲むような領域を入力してもよい。この場合、ユーザが入力した領域内の画像特徴と残りの領域の画像特徴とを用いて、類似構造（単位）検出部１３０が画像認識等によって新たに類似構造を検出してもよい。更に、ユーザが類似構造ではなく、直接把持位置を入力してもよい。
【００６３】
（第２実施形態）
第１実施形態では、類似構造を用いてロボットの把持位置を算出した。第２実施形態では、算出した把持位置が不適切でロボットが対象物体１５の把持に失敗した場合に、別の把持位置を把持し直す例を示す。このように、最初に算出した把持位置が不適切で対象物体１５の把持に失敗しても別の把持位置を求め、新たに求められた把持位置で対象物体１５を把持することで、把持性能を向上させる。
【００６４】
図１０は、第２実施形態における情報処理装置２０を備えるロボットシステム２の機能ブロック図である。第２実施形態における画像取得部２１０〜把持位置決定部２４０は、情報処理装置１０における画像取得部１１０〜把持位置決定部１４０と同一であるため説明を省略する。第２実施形態のロボットシステム２は、把持成否判定部２５０が追加された点で第１実施形態のロボットシステム１とは異なる。
【００６５】
第２実施形態において、把持成否判定部２５０は、把持装置１３が対象物体１５を把持したときに、把持装置１３から入力される把持結果情報をもとに、把持に成功したか失敗したかの判定をする。ここで、把持結果情報とは、対象物体１５の把持に成功したか否かを判定するために把持装置１３で生成される情報である。把持装置１３が吸着機構の場合、把持装置１３は、吸着時の真空到達度を把持成否判定部２５０に入力する。以下、把持装置１３が吸着機構を有する場合について説明するが、把持装置は吸着機構意外の手段で把持を行うものとしてもよい。
【００６６】
把持成否判定部２５０は、対象物体１５の把持に成功したか否かを、真空到達度から判定する。吸着時に把持装置１３が対象物体１５と接触する部位における真空度が高い場合には、把持成否判定部２５０は、対象物体１５が正常に把持されたと判定する。一方、上記接触部位における真空度が低い場合には、把持成否判定部２５０は、対象物体１５が正常に把握されなかったと判定する。
【００６７】
把持に失敗したときには、把持成否判定部２５０は、把持に失敗したときにおける把持装置１３の把持位置の位置情報を類似構造（単位）検出部２３０、及び把持位置決定部２４０に出力する。そして、把持位置決定部２４０は、把持に失敗した位置と異なる別の把持位置を決定する。
【００６８】
図１１は、第２実施形態における処理手順を表すフローチャートである。第２実施形態におけるＳ２１０からＳ２７０は、第１実施形態におけるＳ１１０からＳ１７０と同様であるので、その説明は省略する。第２実施形態は、把持成功判定（Ｓ２８０）を行う点で、第１実施形態とは異なる。
【００６９】
Ｓ２７０が実行された後に、把持成否判定部２５０は、把持装置１３による対象物体の把持に成功したか失敗したかを判定する（Ｓ２８０）。具体的には、把持装置１３からの把持結果情報から得られる真空到達度に対して、予め吸着成功とする真空到達度の閾値を設定しておく。そして、把持装置１３から得られた真空到達度が閾値に達している場合（Ｓ２８０：Ｙ）、把持成否判定部２５０は吸着成功（把持成功）と判定して処理が完了する。閾値に達していなければ、把持成否判定部２５０は、吸着失敗（把持失敗）と判定し（Ｓ２８０：Ｎ）、処理はＳ２５０に戻る。その後、類似構造（単位）検出部２３０が他の類似構造パターンを算出する。具体的には、把持に失敗した把持位置は物体境界であるとみなし、前述の把持に失敗した把持位置を通る画像特徴群の相対位置関係の類似度を下げる。これにより、物体の境界が包含されないように新たに類似構造を算出する。
【００７０】
ステップＳ２６０では、失敗した把持位置と類似構造（単位）検出部２３０が新たに算出した類似構造とをもとに、把持位置決定部２４０が新たな把持位置を決定し、制御部１１がマニピュレータ及び把持装置制御を行う。その後、再度Ｓ２８０に進み、Ｓ２８０の判定結果がＹとなるまで上述した処理を繰り返す。
【００７１】
以上述べたように、第２実施形態では、ロボットシステム２がピッキングに失敗した場合に、新たな類似構造パターンを算出してロボットの把持位置を再算出する。これにより、ロボットが対象物体１５の把持に失敗しても、把持が成功するまで別の把持位置で再度把持を行うことができ、把持性能を向上させることができる。
【００７２】
なお、第２実施形態では、ロボットが把持に失敗したときに、類似構造（単位）検出部２３０が新たに別の類似構造を検出し、ロボットの把持位置を算出している。しかしながら、あらかじめ類似構造（単位）検出部２３０が複数の類似構造パターンを算出し、把持位置決定部２４０があらかじめ複数の類似構造パターンに優先順位を付けてもよい。そして、把持に失敗した場合には類似構造パターンの優先順位に従って把持位置を選択してもよい。新たな類似構造の単位として、例えば、図８のように分離された２つをまとめて１つの類似構造の単位とすることなどが考えられる。２つの製品が１つの容器にパッキングされ、容器単位で把持する場合には、このような単位の類似構造パターンを用いると把持に成功しやすい。
【００７３】
類似構造パターンの優先順位付け手法として、例えば類似構造（単位）検出部２３０が算出した画像特徴群数の多いものから順に類似構造に優先順位を付けるようにしてもよい。また、各画像特徴群に含まれる特徴点数の平均が大きいものから順に類似構造に優先順位を付けてもよい。更に、各画像特徴群に含まれる特徴点同士の相対位置関係の類似度が大きいものから順に類似構造に優先順位を付けてもよい。また、把持位置の順序付けに従って、把持装置１３が把持動作を実行してもよい。このように、あらかじめ複数の類似構造パターンを算出しておき、優先順位が付けられた把持位置を複数用意することで、把持に失敗するごとに把持位置を算出する処理を行う必要がなく、高速に把持位置を決定して処理時間を短縮できる。
【００７４】
第２実施形態では、ロボットが把持に失敗したときに新たに別の類似構造パターンを検出し、ロボットの把持位置を算出している。しかしながら、新たに別の類似構造パターンを算出するのではなく、別の画像特徴群から算出した把持位置を把持位置決定部２４０が決定するようにしてもよい。具体的には、１度目の把持試行では、類似構造（単位）検出部２３０が算出した画像特徴群のうち最も面積の大きいものから優先順位を付け、優先順位が最も高い画像特徴群に対して把持を試行する。把持が失敗した場合に、２度目の試行では、類似構造（単位）検出部２３０が算出した画像特徴群のうち面積が２番目に大きいものを把持位置として決定する。以下、順次、優先順位が高い画像特徴群から順に把持を試行する。
【００７５】
また、画像特徴群に含まれる特徴点数の平均が大きいものから順に把持位置に優先順位を付けてもよく、各画像特徴群に含まれる特徴点の同士の相対位置関係の類似度が大きい画像特徴群から順に把持位置に優先順位付けてもよい。また、把持位置の優先順位に従って、把持装置１３が把持動作を実行してもよい。
【００７６】
このように、最初の試行において用いた画像特徴群とは別の画像特徴群から算出した把持位置を決定することで、最初に把持を試行した対象物体１５とは別の対象物体１５に対して把持を試行することができる。
【００７７】
把持位置は正しいものの対象物体１５が密に隙間なく配置されていることにより把持の試行が失敗した場合には、同じ対象物体１５における他の把持位置に対して把持の試行を行うよりも、別の対象物体１５に対して把持の試行を行うことが好ましい。この場合、別の画像特徴群から把持位置を算出することで、他の対象物体１５に対して把持を試行することができる。
【００７８】
第２実施形態では、把持装置１３である吸着ハンドの真空到達度を計測することによって把持が成功したかの判定を行った。しかしながら、把持装置１３が対象物体１５の把持に成功したか失敗したかを判定できるものであれば判定方法は任意の手法を用いることができる。例えば、把持装置１３に設置した不図示の力覚センサを用いて把持の成否を判定してもよいし、不図示の近接センサにより把持の成否を判定してもよい。また、把持動作実行時に撮像装置１４が把持装置１３を撮像した画像をもとに把持の成否を判定してもよい。更に、把持装置１３が多指ハンドの場合にはハンドの開閉角をもとに把持の成否を判定してもよい。
【００７９】
（第３実施形態）
第１実施形態では、類似構造を用いてロボットの把持位置を算出した。第２実施形態では、算出した把持位置が誤っておりロボットが把持試行に失敗した場合には、別の把持位置を把持し直した。第３実施形態では、算出した把持位置が誤っておりロボットが把持試行に失敗した場合には、ロボットが対象物体１５を動かしてその動きを観測することで、安定して把持できる把持位置を算出する。
【００８０】
図１２に、第３実施形態における情報処理装置３０を備えるロボットシステム３の機能ブロック図を示す。第３実施形態における画像取得部３１０〜把持位置決定部３４０及び把持成否判定部３６０は、第２実施形態における画像取得部２１０〜把持位置決定部２４０及び把持成否判定部２５０と同一であるので説明を省略する。
【００８１】
第３実施形態は、制御部３５０及び変位検出を行うための変位計測部３７０が新たに追加されている点で第２実施形態とは異なる。制御部３５０は、把持位置決定部３４０が決定した把持位置を入力として、把持動作のためのマニピュレータ１２、及び把持装置１３に制御情報を出力して制御する。これらの制御に加え、把持試行時に把持成否判定部３６０が把持に失敗したと判定した場合には、マニピュレータ１２に制御情報を出力して動作させることで対象物体１５を動かす。
【００８２】
変位計測部３７０には、画像取得部３１０が取得した、撮像装置１４が撮像した把持動作実行前の対象物体１５の画像と、マニピュレータ１２が対象物体１５を動かした後の対象物体１５画像とが入力される。変位計測部３７０は、対象物体１５の変位を計測して変位情報を生成して把持位置決定部３４０及び制御部３５０に出力する。
【００８３】
図１３に第３実施形態におけるロボットシステム３で実行される処理の一例を表すフローチャートを示す。図１３におけるＳ３１０〜Ｓ３８０は、第２実施形態におけるＳ２１０〜Ｓ２８０と同一であるので説明を省略する。第３実施形態は、仮把持位置設定及び把持装置移動（Ｓ３７１）を行い、かつ、変位計測（Ｓ３９０）を行う点で、第２実施形態とは異なる。
【００８４】
Ｓ３７０が実行された後、把持成否判定部３６０は、把持が成功したか否かを判定する（Ｓ３８０）。把持が成功した場合（Ｓ３８０：Ｙ）、第２実施形態のＳ２８０と同様に、把持数に到達したか否かを判定し（Ｓ３８１）、到達してなければ（Ｓ３８１：Ｎ）、再度Ｓ３６０を実行し、到達していれば（Ｓ３８１：Ｙ）、処理を終了する。一方、Ｓ３８０で把持が失敗したと判定した場合（Ｓ３８０：Ｎ）、制御部３５０は、マニピュレータ１２を動作させて対象物体１５を動かす（Ｓ３７１）。
【００８５】
具体的には、把持位置決定部３４０は、把持が失敗した位置の周囲に仮把持位置を設定する。この仮把持位置は任意の手法で設定でき、画像特徴等から設定してもよく、あるいは、把持が失敗した位置近傍のランダムな位置を選択してもよい。制御部３５０は、マニピュレータ１２を制御して把持装置１３を仮把持位置へと移動させる。その後、制御部３５０は、仮把持位置で把持装置１３により吸着動作試行し、吸着に成功した場合には制御部３５０がマニピュレータ１２を制御して対象物体１５を所定の微小距離で変位させる。第３実施形態では、対象物体１５を所定の微小な高さだけ持ち上げるものとした。その後撮像装置１４が対象物体１５を撮像する。撮像後、制御部３５０は、対象物体１５を元の位置に戻して吸着動作を終える。
【００８６】
その後、変位計測部３７０は、変位前及び変位後の撮像画像を比較する。詳細には、撮像装置１４が撮像した把持動作実行前の画像と、マニピュレータ１２が対象物体１５を吸着して持ち上げた状態での画像とから、対象物体１５の変位領域を算出する（Ｓ３９０）。
【００８７】
具体的には、変位計測部３７０は、把持動作実行前の画像と、マニピュレータ１２が対象物体１５を吸着中の画像との間で、画像の差分が所定の閾値を超えている領域、すなわち対象物体１５に対応する変位領域を求める。変位領域には、対象物体１５の移動前の領域と対象物体１５の移動後の領域とが含まれるので、正確には、変位領域は対象物体１５よりも大きな領域となっている。しかし、上述のように、対象物体１５の移動距離は微小であるので、変位領域を実質的に対象物体１５に対応する領域とすることができる。その後、処理はＳ３６０に戻り、変位計測部３７０は、算出された対象物体１５に対応する変位領域の重心位置を把持位置として把持位置決定部３４０に出力する。
【００８８】
また、変位計測部３７０は、対象物体１５に対応する変位領域を求めた後に、把持位置候補を求めずに変位領域を把持位置決定部３４０に入力してもよい。この場合、把持位置決定部３４０は、変位領域を対象物体１５の領域として把持位置を決定する。以上に述べたように、第３実施形態では、ロボットシステム３の把持装置１３がピッキングに失敗した場合に、把持装置１３により対象物体１５を動かし、対象物体１５の変位情報から対象物体１５の領域を求め、把持装置１３による把持位置を再算出する。これにより、類似構造の検出に失敗するなどしてロボットが対象物の把持に失敗しても、把持位置を算出することができ、把持性能を向上させることができる。
【００８９】
第３実施形態では、対象物体１５を吸着して所定の高さで持ち上げることで、高さが変わる前後の撮像画像の差分から対象物体１５の領域を算出した。しかしながら、対象物体１５の領域の算出方法は撮像画像の差分に限らない。例えば、撮像装置１４が三次元情報を計測できる場合は、対象物体１５のそれぞれにおける奥行きを計測し、各対象物体１５の計測された奥行きの差分から対象領域を算出してもよい。
【００９０】
対象物体１５を動かす方法は、持ち上げることだけに限らない。例えば、ロボットにより対象物体１５をスライドさせるように動かし、移動中の画像で検出した特徴点をＫＬＴ（Ｋａｎａｄｅ−Ｌｕｃａｓ−Ｔｏｍａｓｉ  Ｆｅａｔｕｒｅ  Ｔｒａｃｋｅｒ）法で追跡し、追跡時の特徴点の変位量から対象領域を明らかにしてもよい。また、対象物体１５のスライド前後の画像で特徴点を検出し、特徴点マッチングにより対応した特徴点の移動距離から対象領域を求めてもよい。
【００９１】
第３実施形態では、ロボットが対象物体１５を動かし、対象物体１５の変位情報から対象物体１５の領域を求め、ロボットの把持位置を再算出していた。しかしながら、ロボットの把持位置の再算出だけでなく、類似構造や画像特徴群の更新を行ってもよい。具体的には、ロボットが対象物体１５を動かすことで得た対象物体１５の領域内に存在する画像特徴と、残りの領域中の画像特徴との間で類似構造を有する画像特徴群を類似構造（単位）検出部３３０が検出してもよい。
【００９２】
また、第３実施形態では、ロボットの把持動作失敗時に、ロボットが対象物体１５を動かし、動かす前後撮像画像における対象物体１５の変位から対象物体１５の領域を求めている。しかしながら、類似構造検出を行う前に対象物体１５を動かすことで、対象物体１５の領域を明らかにしてもよい。このとき、どの位置にある対象物体１５を動かすのかは、乱数によって決めてもよく、画像の中央位置にある対象物体１５を動かすものとしてもよい。また、撮像画像から、対象物体１５の模様や画像特徴が密集している位置を求め、求められた位置にある対象物体１５を動かすものとしてもよい。
【００９３】
（第４実施形態）
第１実施形態〜第３実施形態では、類似構造を検出した後に１個目の対象物体１５を把持する。第４実施形態では、１個目の対象物体１５の把持に成功した後に、その結果を参照して再度類似構造の検出を実行することで、認識性能を向上させる。
【００９４】
図１４は、第４実施形態における情報処理装置４０を備えるロボットシステム４の機能ブロック図である。第４実施形態における画像取得部４１０〜把持成否判定部４６０は、第３実施形態で示した情報処理装置３０の画像取得部３１０〜把持成否判定部３６０と同一であるため説明を省略する。第４実施形態では、画像特徴情報登録部４７０及び画像特徴情報保持部４８０を有するという点で第３実施形態とは異なる。
【００９５】
画像特徴情報登録部４７０には、把持成否判定部４６０が判定した把持成功情報が入力される。把持が成功した場合には、把持された対象物体１５が撮像装置１４によって再度撮像される。画像特徴検出部４２０は、再度撮像された撮像画像中から画像特徴を検出し、検出された画像特徴を画像特徴群として画像特徴情報保持部４８０に出力する。
【００９６】
画像特徴情報保持部４８０は、画像特徴情報登録部４７０から入力された画像特徴情報を保持する。第４実施形態においては、画像特徴情報として、特徴点の画像上での位置及び特徴量を保持する。また、保持した画像特徴情報を類似構造（単位）検出部４３０に出力する。
【００９７】
図１５は、第４実施形態におけるロボットシステム４で実行される処理を表すフローチャートである。第４実施形態におけるＳ４１１０〜Ｓ４１７０は、第３実施形態の初期化Ｓ３１０〜Ｓ３７０の処理手順と同一であるため説明を省略する。第４実施形態は、画像特徴情報登録判定（Ｓ４１９０）及び画像特徴情報登録（Ｓ４２００）を行う点で、第３実施形態とは異なる。
【００９８】
第４実施形態では、Ｓ４１１０〜Ｓ４１７０までは第３実施例と同様に処理が進められる。Ｓ４１７０が実行された後に、把持が成功したか否かを判定する（Ｓ４１８０）。把持が失敗した場合（Ｓ４１８０：Ｎ）、再度Ｓ４１６０を実行する。把持が成功した場合（Ｓ４１８０：Ｙ）、第１実施形態のＳ１８０と同様に、把持数に到達したか否かを判定する（Ｓ４２２０）。把持数に到達している場合（Ｓ４２２０：Ｙ）、処理を終了する。画像特徴情報保持部４８０には、把持を開始した最初の１回目に検出した、対象物体１５の単位のサイズを保持しておく。把持数に到達するまで、改めて対象物体１５の単位のサイズを決定することなく、保持している情報を使って、マニピュレータを制御し、対象物体１５の把持を繰り返す。
【００９９】
把持数に到達していない場合（Ｓ４２２０：Ｎ）、画像特徴情報登録部４７０は、画像特徴情報保持部４８０に対象物体１５の画像特徴情報が保持されているか否かを判定する（Ｓ４１９０）。画像特徴情報保持部４８０に画像特徴情報が保持されていない場合（Ｓ４１９０：Ｎ）には、画像特徴情報登録部４７０は画像特徴情報登録を行い（Ｓ４２００）、Ｓ４１５０を再度実行する。既に画像特徴情報が保持されている場合（Ｓ４１９０：Ｙ）は、Ｓ４１５０に進み、類似構造（単位）検出部４３０は、既に保持している情報を用いて新たな類似構造検出を行う。
【０１００】
ステップＳ４２００の詳細を説明する。画像特徴情報登録部４７０は、画像特徴情報保持部４８０に対象物体１５の画像特徴情報を登録する。この場合、情報処理装置４０のＣＰＵ２１の制御により、登録する画像特徴を計測し、把持成功した対象物体１５を把持装置１３により持ち上げて搬送先に搬送する。
【０１０１】
搬送先において把持装置１３が対象物体１５を配置した後、撮像装置１４が対象物体１５を撮像する。そして、画像特徴検出部４２０が、撮像画像から対象物体１５上の画像特徴を検出する。次に、検出した画像特徴情報を、画像特徴情報登録部４７０が画像特徴情報保持部４８０に登録する。
【０１０２】
ステップＳ４１５０では、登録した画像特徴情報をもとに、再度類似構造を検出する。具体的には、類似構造（単位）検出部４３０が、対象物体１５を撮像した画像のうちから、登録された画像特徴情報との間で類似構造を有する画像特徴群を検出する。そして、以前に算出した類似構造算出結果を修正及び追加する。類似構造（単位）検出部４３０は、算出した類似構造をもとに、ステップＳ４１６０において、把持位置決定部４４０が最初に検出した際の把持位置を修正し、かつ、新たな把持位置を検出する。
【０１０３】
以上に述べたように、第４実施形態では、把持が成功した対象物体１５から検出した画像特徴を登録する。そして、登録した画像特徴と、対象物体１５を撮像した画像から登録した画像特徴との間で類似構造を有する画像特徴群を求めて把持位置の検出結果を修正及び新規検出する。このように、最初の検出時に画像を誤って検出したとしても把持位置の修正ができ、最初の検出時に検出できなかった対象物体１５を新たに検出することができ、認識性能を向上させる。
【０１０４】
第４実施形態は画像特徴としてＳＩＦＴ特徴点を用いているが、画像特徴としてはその他の任意のものを用いることができる。第１実施形態で説明したように、画像特徴は２つの画像特徴の相対位置関係、及び特徴量の類似度を算出することができるものであればどんな画像特徴を保持してもよい。
【０１０５】
画像特徴情報保持部４８０が保持するのは画像特徴に限られるわけではない。例えば、把持が成功した対象物体１５の画像特徴群に対する把持成功位置の相対位置関係を保持してもよい。これにより、類似構造（単位）検出部４３０が検出した他の画像特徴群に対する把持位置を、把持位置決定部４４０が相対位置関係から決めてもよい。
【０１０６】
また、把持に失敗したときには、対象物体１５の画像特徴群に対する把持に失敗した相対位置関係を保持してもよい。このとき、把持位置決定部４４０は、把持位置を決定する際に、類似構造（単位）検出部４３０が検出した他の画像特徴群に対する把持が失敗した相対位置を避けるように、決定された把持位置を修正してもよい。さらには、把持に失敗した時には、第２実施形態で述べたように、再度類似構造を検出し直してもよい。
【０１０７】
第４実施形態では、把持成功した対象物体１５を搬送先で再度観測することで、画像特徴情報保持部４８０が保持する画像特徴情報を観測した。しかしながら、画像特徴情報保持部４８０が保持する画像特徴情報の観測は必ずしも搬送先で行う必要はない。例えば、対象物体１５を搬送するためのマニピュレータ１２の動作中に、把持装置１３が把持している対象物体１５を撮像装置１４が複数回撮像する構成としてもよい。このように撮像を行うことで、把持装置１３に対して相対位置関係が変化しない領域を対象物体１５の領域として抽出し、この領域中の画像特徴群を画像特徴情報保持部４８０に保持してもよい。
【０１０８】
また、撮像装置１４が、対象物体１５を把持する前、つまり対象物体１５が存在する状態での画像と、対象物体１５を把持して搬送した後、つまり対象物体１５が存在しない状態での画像を撮像してもよい。この場合、２枚の画像は、対象物体１５の領域は相異なるものの、他の領域は同一の画像となる。従って、これら２枚の画像において相異なる領域を、対象物体１５に対応する領域とすることができる。このようにして搬送前の画像における対象物体１５の領域を特定し、特定された領域中の画像特徴を画像特徴情報保持部４８０に保持することができる。
【０１０９】
＜変形例＞
第４実施形態の変形例では、把持成功した対象物体１５を観測することで画像特徴情報を保持していた。しかしながら、把持成功した対象物体１５を観測してモデルを生成し、作成したモデルを用いて対象物体１５を検出してもよい。なお、ここでいうモデルとは、対象物体１５が写った画像から対象物体１５を検出、及び位置姿勢算出するためのモデルである。モデルは、把持成功した対象物体１５を切り出したテンプレート画像でもよく、切り出した画像から抽出した二次元の幾何特徴でもよい。三次元情報が使える場合には、三次元の幾何特徴でもよく、距離情報から再構成した三次元メッシュモデルでもよい。
【０１１０】
図１６は、モデル生成を行う変形例における情報処理装置４０’を備えるロボットシステム４’の機能ブロック図である。情報処理装置４０’では、第４実施形態の構成に加え、モデル生成部５１０、モデル保持部５２０、位置姿勢算出部５３０が追加されている。モデル生成部５１０には、把持成否判定部４６０が判定した把持成功情報が入力され、把持に成功した対象物体１５を再度撮像装置１４によって撮像し、撮像画像中からモデルを生成し、モデル保持部５２０に出力する。
【０１１１】
モデル保持部５２０は、モデル生成部５１０が生成したモデルを入力して保持する記録装置であり、保持したモデルを位置姿勢算出部５３０に出力する。位置姿勢算出部５３０には、モデル保持部５２０が保持するモデルが入力され、画像取得部４１０が取得した画像から対象物体１５を検出し対象物体１５の位置姿勢を算出する。把持位置決定部４４０は、算出した位置姿勢をもとに対象物体１５の把持位置を決定する。
【０１１２】
図１７は、変形例においてロボットシステム４’で実行される処理手順を示すフローチャート図である。この図では、第４実施形態の処理手順に加えて、モデル登録済み判定（Ｓ４３１０、Ｓ４３２０）、モデル生成（Ｓ４３３０）、モデル登録（Ｓ４３４０）、位置姿勢算出（Ｓ４３５０）が追加されている。なお、Ｓ４１１０〜Ｓ４１８０については，第４実施例の処理手順と同一であるので説明を省略する。
【０１１３】
変形例では、Ｓ４１１０〜Ｓ４１３０までは第４実施形態と同様に処理が進められる。Ｓ４１３０が実行された後に、情報処理装置４０’のＣＰＵ２１は、モデル保持部５２０にモデルが登録済みであるか否かを判定する（Ｓ４３１０）。登録がなされていない場合（Ｓ４３１０：Ｎ）には、第４実施形態と同様にＳ４１４０〜Ｓ４２２０を実行する。登録済みである場合（Ｓ４３１０：Ｙ）の処理は後述するＳ４３５０を実行し、第４実施形態と同様にＳ４１６０〜Ｓ４２２０を実行する。
【０１１４】
Ｓ４２２０で把持数が処置の閾値に到達していると判定された場合（Ｓ４２２０：Ｙ）、処理は終了する。所定のしきい値に到達していないと判定された場合（Ｓ４２２０：Ｎ）、モデルが登録済みであるか否かを判定する（Ｓ４２２０）。モデルが登録済みである場合（Ｓ４２２０：Ｙ）、画像撮像ステップであるＳ４１２０を再度実行する。
【０１１５】
モデルが登録済みではない場合（Ｓ４２２０：Ｎ）、モデル生成を行う（Ｓ４３３０）、Ｓ４３３０では、モデル生成部５１０が対象物体１５のモデルを生成する。具体的には、画像取得部４１０が取得した撮像画像から、把持成功した対象物体１５の領域をテンプレートとして切り出してモデルとする。ただし、モデル保持部５２０が保持するモデルは、テンプレートから二次元の特徴量を算出してモデルとしてもよい。また、把持成功した対象物体１５を複数視点で撮像し、ステレオマッチングを用いて三次元復元を実行することで三次元モデル生成し、生成された三次元モデルをモデルとして用いてもよい。
【０１１６】
撮像装置１４からの距離情報が得られる場合には、得られた距離情報から三次元形状を再構成してもよい。また、距離情報を格子状に配置された対象までの距離値として、隣接する格子点を頂点とするメッシュを生成しモデルとしてもよい。ステップＳ４３４０では、モデル生成部５１０が生成したモデルをモデル保持部５２０に登録し、Ｓ４１２０を実行する。
【０１１７】
第４実施形態と同様にＳ４１２０及びＳ４１３０が実行された後に、ステップＳ４３１０では、モデル保持部５２０がモデルを保持しているか判定する。保持していない場合（Ｓ４３１０：Ｎ）には、上述したように画像特徴検出ステップであるＳ４１４０を実行する。一方、モデルを保持している場合には、位置姿勢算出部５３０が、モデル保持部５２０の保持するモデルを用いて、画像取得部４１０が取得した画像中から対象物体１５の検出、及び位置姿勢の算出を行う（Ｓ４３５０）。
【０１１８】
対象物の検出及び位置姿勢の算出方法としては、具体的には、モデルがテンプレートの場合にはテンプレートマッチングを用いて対象物体１５の位置姿勢を求める。また、二次元の特徴量をモデルとしている場合には、Ｌｉｎｅ２Ｄ法や特徴点マッチングを用いて対象物体１５の位置姿勢を求めてもよい。モデルが三次元である場合には、ＩＣＰ（Ｉｔｅｒａｔｉｖｅ  Ｃｌｏｓｅｓｔ  Ｐｏｉｎｔｓ）等のアルゴリズムを用いることで対象物体１５の位置姿勢を算出してもよい。
【０１１９】
変形例においては、類似構造をもとに把持成功した対象物体１５を観察することでモデルを生成し、生成したモデルをもとに対象物体１５を検出し、位置姿勢を算出して把持位置を決定した。しかしながら、第３実施形態で図１３のＳ３７１について説明したように、ロボットの把持動作前に対象物体１５を動かすことで算出した対象物体１５の領域をもとにしてモデルを生成してもよい。そして、算出したモデルをもとに対象物体１５を検出し、位置姿勢を算出して把持位置を決定してもよい。
【０１２０】
以上説明したように、各実施形態では以下のような効果が得られる。第１実施形態では、教示モデルやCADモデル作成等の時間を要する作業を行わずに、ロボットなどにより対象物体１５を把持する際の把持位置を速やかにかつ高い精度で求めることができる。また、対象物体１５が整列している状況、すなわち特徴が繰り返し現れる状況であっても対象物体１５を把持することができる。
第２実施形態では、対象物体１５の把持に失敗した場合でも、新たな類似構造パターンを再度検出してロボットの把持位置を再算出することで、対象物体１５を把持することを可能としている。
第３実施形態では、対象物体１５の把持に失敗した場合に、把持位置を変えて対象物体１５を微小距離動かして対象物体１５に対応する変位領域を求めて把持位置を再算出している。これにより、把持位置をより正しく算出することができる。
第４実施形態では、把持成功した対象物体１５から検出した画像特徴を登録し、登録した画像特徴を用いて類似構造の算出結果を修正して画像特徴群を求めている。この構成により、把持位置をより正しく算出することができる。
【０１２１】
なお、本発明における画像取得部は、現実空間を撮像した画像が入力されるものであれば特に制限はない。例えば、単眼カメラが撮像した画像を画像取得部に入力してもよく、ステレオカメラなど複数台のカメラ画像を画像取得部に入力する構成としてもよい。また、カラー画像の入力に限るものではなく、濃淡画像を画像取得部に入力する構成としてもよく、奥行き情報を表す奥行き画像を画像取得部に入力してもよい。更に、カメラが撮像した画像を直接入力する構成としてもよいし、ネットワークを介して入力構成としてもよい。
【０１２２】
各実施形態において、画像特徴検出部は、２つの画像特徴の相対位置関係、及び特徴量の類似度を算出することができるものであれば任意の画像特徴を用いることができる。類似構造（単位）検出部は、画像特徴を用いて類似構造を算出するものであれば任意の手法を用いて類似構造を検出することができる。例えば、二次元の画像特徴の特徴量と二次元の相対位置関係を用いて二次元の類似構造を検出してもよく、三次元の画像特徴の特徴量と三次元の相対位置関係を用いて三次元の類似構造を検出してもよい。また、画像特徴の相対位置関係のみを用いて類似構造を検出してもよい。また、過去に把持に失敗した把持位置を避けるように類似構造を検出してもよく、過去に把持に成功した対象物体１５の画像特徴との間の類似構造を検出してもよい。
【０１２３】
類似構造とは、画像特徴の相対位置関係が類似している構造であることを指す。画像特徴の相対位置関係とは、画像上の距離あるいは画像上の距離と方向の組のことである。類似構造を有する複数の画像特徴群とは、クラスタリング後の各画像特徴の集合に含まれる画像特徴同士の相対位置関係が類似するようにクラスタリングした画像特徴の集合を指す。把持位置決定部は、類似構造をもとにロボットが把持する位置を算出するものであれば任意の手法により把持位置を決定することができる。類似構造検出部が算出した類似構造を有する画像特徴群の重心位置でもよく、画像特徴群を囲む凸包囲領域の重心位置としてもよく、領域の内接円の中心としてもよい。また、領域内の平面度を求め、平面度が大きい位置を把持位置としてもよい。
【０１２４】
また、類似構造の算出結果をもとに複数の把持位置に優先順位を付けてもよい。順序付けでは、画像特徴群の画像特徴数が大きいものから順に把持位置を順序付けてもよく、画像特徴群を囲む領域の面積の大きい順に把持位置を順序付けてもよく、把持位置周辺の平面度合が大きい位置から順に把持位置を順序付けてもよい。
【０１２５】
把持とは、把握（例えば複数のフィンガーで掴むことや挟持すること）や、保持（例えば真空吸着パッドや電磁力を利用して吸着すること）という概念を含む。把持位置とは、ロボットが例えば把持装置１３を介して対象物体１５を把持するための位置であり、対象物体１５上での、対象物体１５に対して把持力が及ぼされる位置である。把持位置は、入力画像中における二次元の把持位置から求めてもよい。また、二台以上の複数のカメラを備えるカメラを用いることができる場合には、既知のカメラの相対位置情報を用いて複数のカメラ間でのステレオマッチングにより得られる奥行き値を用いて、把持位置を三次元位置として直接求めてもよい。
【０１２６】
なお、本発明は上述した実施形態に限定されるものではなく、様々な形態で実施できる。例えば、実施形態で説明した画像取得部、画像特徴検出部等の機能の少なくとも一部は、ＭＰＵ（Micro-Processing Unit）により実現可能である。また、ＡＳＩＣ（Application Specific Integrated Circuit）、ＳｏＣ（System-on-a-Chip）等によっても実現可能である。
【図１】
2019063984.tif 000003
【図２】
2019063984.tif 000004
【図３】
2019063984.tif 000005
【図４】
2019063984.tif 000006
【図５】
2019063984.tif 000007
【図６】
2019063984.tif 000008
【図７】
2019063984.tif 000009
【図８】
2019063984.tif 000010
【図９】
2019063984.tif 000011
【図１０】
2019063984.tif 000012
【図１１】
2019063984.tif 000013
【図１２】
2019063984.tif 000014
【図１３】
2019063984.tif 000015
【図１４】
2019063984.tif 000016
【図１５】
2019063984.tif 000017
【図１６】
2019063984.tif 000018
【図１７】
2019063984.tif 000019