(57)【特許請求の範囲】
【請求項１】
目的オブジェクトを入力する入力手段と、
ＩＣタグから、該ＩＣタグを貼り付けるオブジェクトの識別子、階層レベル、該オブジェクトを検出するための画像処理の種類を含む該オブジェクトを検出するための検出方法、及び該オブジェクトの操作方法を含むオブジェクト情報を取得する取得手段と、
前記取得手段で取得された、目的オブジェクトのオブジェクト情報を含むオブジェクト情報群から、該目的オブジェクトよりも前記階層レベルの高いオブジェクト情報及び該目的オブジェクトのオブジェクト情報のうちの１つを、前記階層レベルの高い順に選択する選択手段と、
画像を取得し該画像から前記オブジェクトを検出する画像処理手段と、
前記選択手段で選択されたオブジェクト情報中の前記検出方法を用いて、当該オブジェクト情報に対応するオブジェクトを検出する検出手段と、
前記検出手段で検出されたオブジェクトを、該オブジェクトのオブジェクト情報中の前記操作方法に従って操作する操作手段と、
前記操作手段によって操作されるマニピュレータと、
を含み、
前記検出手段は、前記目的オブジェクトより前記階層レベルの高いオブジェクト及び該オブジェクトが有するオブジェクトを前記階層レベルの高いオブジェクトから下位の前記階層レベルのオブジェクトへ順次検出することにより、該目的オブジェクトを検出するオブジェクト探索装置。
【請求項２】
前記操作方法は、該オブジェクトの中にある該オブジェクトよりも階層レベルの低いオブジェクト群を検出するために必要な該オブジェクトの操作方法を含むことを特徴とする請求項１記載のオブジェクト探索装置。
【請求項３】
前記操作方法は、該オブジェクトのハンドリング方法を含むことを特徴とする請求項１記載のオブジェクト探索装置。
【請求項４】
前記選択手段は、
前記目的オブジェクトの格納先である指定オブジェクトであって、前記目的オブジェクトより前記階層レベルの高い指定オブジェクトのオブジェクト情報、及び該指定オブジェクトより前記階層レベルの高いオブジェクト情報のうちの１つを、前記階層レベルの高い順に選択する第１の選択手段と、
前記指定オブジェクトより前記階層レベルの低いオブジェクト情報を、前記階層レベルの高い順に選択する第２の選択手段と、
を含み、
前記検出手段は、前記第１の選択手段で選択された順に各オブジェクトを検出することにより、前記指定オブジェクトを検出したとき、該指定オブジェクトが有するオブジェクトを前記第２の選択手段で選択された順に検出することにより、前記目的オブジェクトを検出し、前記第２の選択手段は、前記指定オブジェクトを検出したとき、前記オブジェクト情報を選択することを特徴とする請求項１記載のオブジェクト探索装置。
【請求項５】
前記検出手段で検出されたオブジェクト群の階層的な位置関係を記憶する記憶手段をさらに備え、
前記選択手段は、前記記憶手段に位置関係を記憶したオブジェクト群に含まれる上位オブジェクトの中から前記目的オブジェクトのオブジェクト情報、及び該目的オブジェクトを有する該目的オブジェクトより前記階層レベルの高い前記上位オブジェクトのオブジェクト情報のうちの１つを、前記階層レベルの高い順に選択し、
前記検出手段は、前記上位オブジェクトを検出した後、前記上位オブジェクトが有する前記目的オブジェクトを検出することを特徴とする請求項１記載のオブジェクト探索装置。
【請求項６】
各オブジェクトのオブジェクト情報に含まれている前記検出方法は、前記画像処理に用いるパラメータとを含むことを特徴とする請求項１記載のオブジェクト探索装置。
【請求項７】
目的オブジェクトを入力する入力手段と、
ＩＣタグから、該ＩＣタグを貼り付けるオブジェクトの識別子、階層レベル、該オブジェクトを検出するための画像処理の種類を含む該オブジェクトを検出するための検出方法、及び該オブジェクトの操作方法を含むオブジェクト情報を取得する取得手段と、
前記取得手段で取得された、目的オブジェクトのオブジェクト情報を含むオブジェクト情報群から、該目的オブジェクトよりも前記階層レベルの高いオブジェクト情報及び該目的オブジェクトのオブジェクト情報のうちの１つを、前記階層レベルの高い順に選択する選択手段と、
画像を取得し該画像から前記オブジェクトを検出する画像処理手段と、
前記選択手段で選択されたオブジェクト情報中の前記検出方法を用いて、当該オブジェクト情報に対応するオブジェクトを検出する検出手段と、
前記検出手段で検出されたオブジェクトを、該オブジェクトのオブジェクト情報中の前記操作方法に従って操作する操作手段と、
前記操作手段によって操作されるマニピュレータと、
を備えたオブジェクト探索装置におけるオブジェクト探索方法であって、
前記入力手段が、目的オブジェクトを入力する入力ステップと、
前記取得手段が、オブジェクト情報群を取得する取得ステップと、
前記選択手段が、前記オブジェクト情報群から目的オブジェクトより高い階層レベルをもつ第１のオブジェクト情報を選択する第１の選択ステップと、
前記検出手段が、前記第１のオブジェクト情報中の前記検出方法を用いて、第１のオブジェクトを検出する第１の検出ステップと、
前記操作手段が、前記第１のオブジェクト情報中の前記操作方法に従って、前記第１の検出ステップで検出された前記第１のオブジェクトを操作する第１の操作ステップと、
前記選択手段が、前記オブジェクト情報群から前記目的オブジェクトのオブジェクト情報を選択する第２の選択ステップと、
前記検出手段が、前記目的オブジェクトより前記階層レベルの高いオブジェクト及び該オブジェクトが有するオブジェクトを前記階層レベルの高いオブジェクトから下位の前記階層レベルのオブジェクトへ順次検出することにより、前記第１のオブジェクトから前記目的オブジェクトを検出する第２の検出ステップと、
を含むオブジェクト探索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、環境内に散在するオブジェクトを探索するオブジェクト探索装置に関する。
【背景技術】
【０００２】
視覚情報等を用いて対象オブジェクトの位置をセンシングし、検出した情報を基にマニピュレータ装置を制御するようなロボットシステムは産業用、研究用を問わず、数多く存在する。家庭内にロボットシステムを導入して、食器やペットボトルなどのオブジェクトを取ってこさせたり、別の場所に運ばせたりする場合、対象となるオブジェクトはロボットから見えるところに置いてあるとは限らず、棚の中にあったり、冷蔵庫に入っていたりすることが多々ある。このような状況で確実に目標オブジェクトを見つけるためには、オブジェクトＡがオブジェクトＢの中に入っている（もしくはＢの上においてある）といったオブジェクト同士の包含関係や位置関係（以下では階層関係と呼ぶ）を何らかの形で把握する必要がある。
【０００３】
例えば特許文献１に記載されている、オブジェクトの階層関係の管理手法では、検索対象オブジェクトにＲＦＩＤ（Radio Frequency Identification）タグを取り付けておき、棚など所定の箇所にタグリーダを設置する。そして、各オブジェクトがある棚に置かれた時に、その棚に設定されているタグリーダにより当該オブジェクトのＲＦＩＤタグ情報が読み出されることにより、当該オブジェクトがその棚に置かれているかという階層関係を記憶する。各棚に設置されている各タグリーダは予め階層的に管理され、しかも各オブジェクトと、該オブジェクトが置かれている棚との階層関係を上記のように記憶することにより、目的とする特定のオブジェクトに対して例えば“棚Ａの３段目の引き出しの中にある”といった階層的な位置情報で管理される。
【０００４】
このように複数のオブジェクトの位置が予め階層的に管理されていると、例えば、棚Ａの３番目の引き出しの中にある所望のオブジェクトを見つける場合には、最初に棚Ａを見つけた後に、棚Ａの３番目の引き出しを見つけ、さらに、その引き出しのなかから当該所望のオブジェクトを見つけるというように、当該階層構造を考慮した適切な順序で短時間に所望のオブジェクトを探索できるようになり、所望のオブジェクトに到達する確実性が大幅に向上することが期待できる。
【特許文献１】特開２００７−３４３５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記のようにして、複数のオブジェクトの位置を、該複数のオブジェクトが収納される棚やその中の引き出しなどの収納設備の階層構造を用いて予め記憶して管理するには、各オブジェクト棚や引き出しなどの各収納位置にタグリーダを設置しておく必要がある。さらに設置されている全タグリーダの階層関係や、各タグリーダにより検知された各オブジェクトの位置情報を記憶するためのデータベースが必要となる。これは実現可能な構成ではあるものの、家庭内など小規模な環境で実現するには装置が非常に大掛かりとなる。
【０００６】
このように、従来は、家庭（宅内）などの比較的小規模な環境内に散在する複数のオブジェクト（例えば器、道具類など）を、階層的な位置関係を用いて容易に探索することができないという問題点があった。
【０００７】
そこで、本発明は上記問題点に鑑み、散在する複数のオブジェクトを容易に探索することができるオブジェクト探索装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
オブジェクト探索装置は、
目的オブジェクトを入力する入力手段と、
ＩＣタグから、該ＩＣタグを貼り付けるオブジェクトの識別子、階層レベル、該オブジェクトを検出するための画像処理の種類を含む該オブジェクトを検出するための検出方法、及び該オブジェクトの操作方法を含むオブジェクト情報を取得する取得手段と、
前記取得手段で取得された、目的オブジェクトのオブジェクト情報を含むオブジェクト情報群から、該目的オブジェクトよりも前記階層レベルの高いオブジェクト情報及び該目的オブジェクトのオブジェクト情報のうちの１つを、前記階層レベルの高い順に選択する選択手段と、
画像を取得し該画像から前記オブジェクトを検出する画像処理手段と、
前記選択手段で選択されたオブジェクト情報中の前記検出方法を用いて、当該オブジェクト情報に対応するオブジェクトを検出する検出手段と、
前記検出手段で検出されたオブジェクトを、該オブジェクトのオブジェクト情報中の前記操作方法に従って操作する操作手段と、
前記操作手段によって操作されるマニピュレータと、
を含み、
前記検出手段は、前記目的オブジェクトより前記階層レベルの高いオブジェクト及び該オブジェクトが有するオブジェクトを前記階層レベルの高いオブジェクトから下位の前記階層レベルのオブジェクトへ順次検出することにより、該目的オブジェクトを検出する。
【発明の効果】
【０００９】
散在する複数のオブジェクトを容易に探索することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態について図面を参照して説明する。
【００１１】
ここでは、宅内に散在する道具や器などのオブジェクトを探索する場合を例にとり説明する。宅内に散在する各オブジェクトには、ＲＦＩＤのＩＣタグ（無線タグ）が設けられている（例えば各オブジェクトへのＩＣタグの貼り付け）。
【００１２】
図１は、本実施形態に係るオブジェクト探索装置１の構成例を示したものである。図１に示すように、オブジェクト探索装置１は、タグ読み取り部２、探索制御部３、オブジェクト検出部４、移動部５、マニピュレータ操作部６、入力部７、及び通信部８を含む。
【００１３】
タグ読み取り部２は、各オブジェクトに貼付されたＩＣタグに記憶されているオブジェクト情報を読み出すためのＲＦＩＤタグリーダ１０５を含む。
【００１４】
探索制御部３は、タグ読み取り部２で読み取られたオブジェクト情報を用いて、次に行うべきオブジェクト探索装置の処理動作や処理手順を決定し、タグ読み取り部２、オブジェクト検出部４、移動部５、マニピュレータ操作部６などを制御する。例えば、より下位の階層にあるオブジェクトの探索処理を行うか、タグ読み取り部２でオブジェクト情報を受信する受信範囲を変えて、現在取得したオブジェクト情報以外の他のオブジェクト情報を取得するための探索処理を行うかなどの探索処理の手順などを決定する。
【００１５】
オブジェクト検出部４は、探索制御部４から指示に従って、オブジェクトの検出処理を行う。
【００１６】
マニピュレータ操作部６は、探索制御部４からの指示に従って、オブジェクトを掴むなどのハンドリングするために、アームなどを操作する。
【００１７】
入力部７は、オブジェクト探索装置１に探索命令などをオブジェクト探索装置１に入力するためのものである。
【００１８】
通信部８は、ＰＤＡやパーソナルコンピュータ、リモコンなどの端末と通信を行うことにより、端末からオブジェクト探索装置１に入力された探索命令などを入力する。
【００１９】
入力部７や通信部８を介して入力された探索命令は、探索制御部３に送られる。
【００２０】
移動部５は、探索制御部４からの指示に従って、例えば車輪などを駆動して、オブジェクト探索装置１の位置（少なくとも、タグ読取部２、オブジェクト検出部４、及びアーム１０４のいずれかの位置）を移動させる。
【００２１】
図２は、図１のオブジェクト検出部４の構成例を示したものである。図２のオブジェクト検出部４は、画像を取得して、その画像からオブジェクトを検出するものである。図２のオブジェク検出部４は、カメラ等を含む撮像部４ａと、撮像部４ａで得られた画像データからオブジェクトを検出するための画像処理を行う画像処理部４ｂとを含む。画像処理部４ｂは、複数種類の画像処理プログラムを記憶するメモリと、該メモリに記憶されているプログラムを実行するためのプロセッサとを含む。プロセッサは、メモリに記憶されている複数種類の画像処理プログラムのうち、探索制御部３から指示された画像処理プログラムを実行して、撮像部４ａで撮像された画像から目的とするオブジェクトを検出し、検出結果を探索制御部３へ通知する。
【００２２】
図３は、図２に示した構成のオブジェクト検出部４を有するブジェクト探索装置１の一例を示したもので、ここでは、移動ロボットの例を示している。
【００２３】
図３のロボットの目１０１、１０２は、それぞれオブジェクトの画像を取得する撮像部４ａである。さらに、移動部５により駆動される車輪１０３、マニピュレータ操作部６により操作されて、オブジェクトをハンドリングするために用いるアーム１０４を装備している。胸部に装備されたＲＦＩＤタグリーダ１０５はタグ読み取り部２の一部である。
【００２４】
このような構成のロボットは、その入力部７から、例えば、“ペットボトルを取ってきて”といった、探索対象のオブジェクトを指示する探索命令を受けると、ペットボトルを目標オブジェクトとして家庭環境内を探し回り、当該ペットボトルが冷蔵庫の中にあることを検出して、当該ペットボトルを持ち帰る、という動作を行う。
【００２５】
ここで、家庭環境内で、図１のオブジェクト探索装置１の探索対象となる複数のオブジェクトについて、図４を参照して説明する。
【００２６】
ここで、オブジェクトとは、図４に示すように、食器３０３、３０６、３１０、ペットボトル３０２、カップ３０７、グラス３１１などの「ハンドリング対象」（オブジェクト探索装置１の探索対象となる）レベルのオブジェクトの他、冷蔵庫３０１、テーブル３０８、食器棚３０９などの「家具」レベルのオブジェクトや、冷蔵庫３０１の中の棚３２１〜３２３、食器棚３０９の段や引き出し３１２〜３１４といった「容器」レベルのオブジェクトがある。さらに、「家具」レベル、「容器」レベル、「ハンドリング対象」レベルの各レベルに属するオブジェクトを含む「部屋」レベルのオブジェクトがある。
【００２７】
これら各オブジェクトの階層レベルは、「部屋」が最も高く、「部屋」の下に当該「部屋」に配置されている「家具」があり、「家具」の下に、当該「家具」の棚や引き出しに対応する「容器」があり、「容器」の下に、当該「容器」に置かれた「ハンドリング対象」となる。
【００２８】
各オブジェクトには、その種類に応じて、予め階層レベルが定められている。ここでは、階層レベルは数値で表されている。例えば、「部屋」レベルは「１」、「家具」レベルは「２」、「容器」レベルは「３」、「ハンドリング対象」レベルは「４」という整数値で表現する。ここでは例えば値が小さいほど階層レベルが上位であることを示す。
【００２９】
ＩＣタグを貼り付けるオブジェクトには、階層レベルを付与する必要があるが、「容器」レベルである引き出しの中に入っている箱のように中間階層に属すると判断されるオブジェクトに関しては「３．５」など、中間に属することを表す実数値を階層レベルとして与える。
【００３０】
各オブジェクトに貼り付けられているＩＣタグには、オブジェクト情報が記憶されている。オブジェクト情報には、以下に示すような情報が含まれている。
【００３１】
・該オブジェクトの固有の識別子（タグＩＤ）
・該オブジェクトの種類(例えば、冷蔵庫、テーブル、食器棚、冷蔵庫の中の１番目の棚、ペットボトル、皿など)
・該オブジェクトが、「ハンドリング対象」、「容器」、「家具」、「部屋」などのどの階層に属するのかを表す階層レベル
・該オブジェクトを検出するための検出方法（該オブジェクトを検出するために必要な画像処理の種類（例えば、画像処理プログラムの識別情報など）や、該画像処理に用いるパラメータ（例えば該オブジェクトと判定するために必要な特徴情報(条件、パラメータなど）)
・該オブジェクトの下位階層へ移行するための該オブジェクトの操作方法（例えば、該オブジェクトの開扉方法（扉を開けるための把持点や把持姿勢、動作方向）など、該オブジェクトが有する（該オブジェクトよりも階層レベルの低い）オブジェクト群を検出するために必要な該オブジェクトの操作方法）、または該オブジェクトのハンドリング方法
なお、上記オブジェクト情報は、ＩＣタグの記憶領域に直接書き込んでおいても良いし、ＩＣタグからは当該タグのＩＤのみを読み出して、別に用意されているデータベースに対しこのＩＤをキーとして、上記オブジェクト情報をデータベースから読み出す、という形態の実装であっても構わない。
【００３２】
図５は、冷蔵庫３０１のオブジェクト情報の一例を示したもので、図６は、カップ３０７のオブジェクト情報の一例を示したものである。
【００３３】
図５の冷蔵庫のオブジェクト情報は、そのタグＩＤや種別、階層レベルの他、検出方法として、撮像部４ａで得られた画像データから色成分を抽出するための画像処理プログラムの識別情報と、抽出された色成分値に対し、該冷蔵庫と判定するために必要なパラメータ（抽出された色成分値が当該冷蔵庫であると判定するための各色毎の閾値など）が含まれている。また、操作方法として、扉の取っ手の座標と、該取っ手を引っ張ること、とが含まれている。
【００３４】
図６のカップのオブジェクト情報は、そのタグＩＤや種別、階層レベルの他、検出方法として、撮像部４ａで得られた画像データから楕円形状を検出するための画像処理プログラムの識別情報と、当該画像処理に必要なパラメータ（抽出された楕円が当該カップであると判定するための楕円のサイズなど）が含まれている。また、操作方法として、カップの取っ手の座標と、該取っ手を握ること、とが含まれている。
【００３５】
画像処理部４ｂ内のメモリには、オブジェクト検出のために必要な複数種類の画像処理プログラムが記憶されている。当該メモリには、
（１）画素のＲＧＢ値に対する閾値を使った領域検出処理
（２）物体のテクスチャ情報をテンプレートとして画像中から類似の物体を検出するテンプレートマッチング処理
（３）画像中のエッジ成分から楕円形をした部分を検出する楕円検出処理
などの複数種類の画像処理プログラムが記憶されている。
【００３６】
上記（１）の領域検出処理では、パラメータとして、画素のＲ、Ｇ、Ｂそれぞれに対する閾値の条件を受け取る。この条件は例えば「Ｒ＞１５０，Ｇ＜２３０，Ｂは条件なし」といったものである。このようなパラメータは数値列もしくは文字列で表されて、オブジェクト情報に含まれている。
【００３７】
処理手順としては、まず、撮像部４ａから画像処理部４ｂに入力された画像中の各画素に対しパラメータとして与えられる閾値条件に合致するか否かを判定し、その成否で画像を二値化する。続いて二値化された画像に対し、条件に合致する画素が連続する領域ごとに分割していく。得られた複数の領域のうち、面積があらかじめ定められた閾値以上である領域が存在すればそれを検出領域として検出する（目的のオブジェクトの検出成功）。複数のカメラを用いて対象領域を撮影し、そのうち1つの画像で以上のような処理を行う。そして検出された領域をテンプレートとして別の画像に対しテンプレートマッチングを行う。ステレオ視の原理を用いれば、検出した物体の３次元位置情報を取得することも可能である。
【００３８】
上記の（２）のテンプレートマッチング処理において、テンプレートして用いるのは検出したい物体を撮影した画像である。このテンプレートと同じサイズの画像を撮像部４ａで撮像された画像から切り出すことを繰り返し行って、最も類似度の高い位置を探索する。類似度が最も高く、かつそのときの類似度があらかじめ決めておいた閾値よりも高ければ、画像中のその領域が検出したい物体であると判定する。類似度はテンプレートと入力画像の画素値の差分の絶対値の総計や差分の二乗の総計などを用いることが出来る。前述の（１）の閾値を用いた領域検出処理と同様に、複数の画像間でステレオ視を行うことによって検出物体の３次元位置を算出可能である。また、画像中の無効領域については探索しない。テンプレートマッチング処理の場合、物体ごとにテンプレートが異なるため、画像処理情報に含まれるパラメータはマッチングにより見つけるべき物体のテンプレートを表すＩＤである。これは整数値で記述することが出来る。
【００３９】
上記（３）の楕円検出処理は、お椀や皿のように円形部分を持つ物体を検出するのに用いる。その処理手順はまず、撮像部４ａで取得した画像に対しＣａｎｎｙオペレータなどの手法でエッジ情報を抽出する。次にエッジ情報を連結したエッジごとに分割する。分割されたエッジに対し、楕円の方程式
Ａｘ２＋Ｂｙ２＋Ｃｘｙ＋Ｄｘ＋Ｅｙ＋Ｆ＝０
に当てはめたときのパラメータＡ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆを最小二乗法により求める。そして求められた楕円とエッジがどのくらい離れているかを求めて楕円の良さを評価する。この評価値が一定値以上のものを楕円形の物体であると判断する。このアルゴリズムの場合、ステレオ視を使うことにより、物体の３次元位置だけでなく、検出した楕円の実際のサイズを求めることができる。このサイズ情報を用いて物体の絞り込みを行う。したがって、楕円検出処理でオブジェクトの判定に用いる閾値条件のパラメータとして、該オブジェクト（楕円）の実際のサイズを用いる。これが、オブジェクト情報に、当該オブジェクトの検出方法として含まれている。例えば、“この皿は半径６０ｍｍである”といったように実数値で記述された閾値条件が、オブジェクト情報に含まれている。
【００４０】
オブジェクト情報から得られる検出方法のうち、その検出処理に用いるパラメータは上述のような数値列もしくは文字列で表現可能である。ここで挙げた３つの画像処理はあくまで例であり、実際に実装されるべき画像処理を限定するものではない。しかし、各画像処理に与える情報は、上述の例と同様、ＩＣタグやデータベースに記録することが可能である。また、画像処理プログラムのＩＤは、通し番号あるいはプログラム名を表す文字列を使って表現できる。
【００４１】
次に、図１のオブジェクト探索装置（図３のロボット）１の処理動作について、図７に示すフローチャートを参照して説明する。
【００４２】
ここでは、家庭内のどこかの部屋に待機しているロボット１が、ユーザから「ＩＤがbe9f3e27-8869-4052のペットボトルを取ってきて」のようなハンドリング対象オブジェクトだけが指定された探索命令を受けた場合を例にとり説明する。ユーザからの探索命令は、入力部７や通信部８から入力される。
【００４３】
ユーザは、例えば、入力部７が有するディスプレイに表示されているオブジェクトの一覧表から、所望のオブジェクトを選択することにより、あるいは音声にて、所望のオブジェクト名「ペットボトル」を発声して音声認識により、当該所望のオブジェクトに対応するＩＤ（タグＩＤ）を入力する。音声入力を行う場合には、入力部７は音声認識機能をもつ必要がある。例えば、「ペットボトル」あるいはこれを指定するコマンドを音声で入力する。入力部７は音声認識した結果から、これに対応するＩＤを得る。
【００４４】
ユーザは、所持する端末から、通信部８を介して上記同様に所望のオブジェクトのＩＤを入力してもよい。該端末は、ＰＤＡやパーソナルコンピュータであってもよい。また、音声認識機能を備えていてもよい。例えば、端末が有するディスプレイに表示されているオブジェクトの一覧表から、所望のオブジェクトを選択することにより、あるいは音声にて、「ペットボトル」を指定することで、当該ＩＤを入力する。
【００４５】
ここで、階層レベルが「部屋」であるオブジェクトについて説明する。「部屋」レベルのオブジェクト情報は、実際の部屋そのものではなく、部屋間の仕切りとなるドアやふすま、アコーディオンカーテンなどのオブジェクトに付与する。１つの仕切りには両方の部屋に対応するタグを貼り付けておき、同じ部屋につながる複数の仕切りには同じＩＤを割り当てるか、「種類」によって同じ部屋であることが認識できるようにしておく。２つの部屋間が直接ドア等で仕切られている場合は、このように「部屋」レベルのオブジェクト情報を設定しても、仕切りの存在そのものが部屋の存在に対応しているため問題ない。一方、廊下を介して２つの部屋が接続されている場合についても、廊下自体を１つの部屋であると解釈すれば、“仕切りの存在＝部屋の存在”の対応が成り立つ。
【００４６】
図７は、命令を受けたロボット１の探索動作における部屋間の移動手順を説明したものである。入力部７あるいは通信部８を介して探索命令を受けたロボット１の探索制御部３は、移動部５に指示を出して、車輪を駆動させることにより、待機していた部屋内を検出対象の目的オブジェクト（ここでは、“ＩＤがbe9f3e27-8869-4052のペットボトル”）を求めて探索する（ステップＳ１）。各部屋内での探索手順については後述するが、この探索の段階で、ドアなど「部屋」レベルのオブジェクトのオブジェクト情報をタグ読み取り部２で受信した場合は、それを例えば探索制御部３内のメモリに記憶しておく。すなわち、現在探索中の部屋及びそれ以外の部屋の複数のオブジェクト情報を受信した場合には、それを当該メモリに記憶しておく。
【００４７】
この部屋の探索を終えると、ステップＳ２へ進み、探索制御部３は、それまでに受信されたオブジェクト情報を基に、目的オブジェクトが検出されたどうか判定する。検出された場合はステップＳ５へ進み、探索制御部３は、「探索成功」を返す。このとき、通信部８を介して、ユーザが所持する端末へ、「探索成功」を示すメッセージを送信してもよい。実際はこの後目的オブジェクトを掴んで別の部屋に運ぶなど、アプリケーションに合わせた処理動作を探索制御部３の指示により実行することになる。一方、ステップＳ２において、目的オブジェクトを検出できなかった場合は、ステップＳ３へ進む。
【００４８】
ステップＳ３では、ステップＳ１の探索行動中に受信した「部屋」レベルの複数のオブジェクト情報のうち、まだ探索していない部屋がある場合には、ステップＳ４へ進み、未探索の部屋のオブジェクト情報がない場合には、全ての部屋を巡回し探索し終えたことになり、この場合にはステップＳ６へ進む。なお、部屋内のドアにタグを貼り付けていない場合は最初の部屋の探索直後にステップＳ６に進むことになる。ステップＳ６では、探索制御部３は、「探索失敗」を返し、処理を終了する。このとき、通信部８を介して、ユーザが所持する端末へ、「探索失敗」を示すメッセージを送信してもよい。探索失敗と判定された後、ロボット１にどのような行動をとらせるかはこのシステムを利用したアプリケーションによって決まる。
【００４９】
ステップＳ３において、探索していない部屋が残っている場合、ステップＳ４へ進むが、ステップＳ４では、未探索の「部屋」レベルのオブジェクトのオブジェクト情報のなかからの１つを選択し、当該部屋に移動する。具体的な部屋（そのオブジェクト情報）の選択方法の１つとしては、未探索の「部屋」レベルのオブジェクト情報をタグ読み取り部２で受信される度に、探索制御部３は、その内部に設けられたスタックメモリ内に、当該オブジェクト情報あるいはそのオブジェクトＩＤをプッシュしていく方法がある。この場合、ステップＳ４では、このスタックメモリから最後に追加された最も新しいオブジェクト情報を１つ読み出す。この方法だと出来るだけ今の部屋から近い部屋を選択することになり、効率的な移動が期待できる。移動のためのドア（仕切り）の検出およびノブの操作等は部屋内の探索と同じ処理である（後述）。
【００５０】
以上の手順により、ロボット１が、複数の部屋間を移動しながら、目的オブジェクトの探索を行うことにより、家庭環境の複雑な地図データが無くても全ての部屋の巡回が可能になるし、ドアにタグを貼り付けないことで進入禁止の部屋を簡単に設定できるという副次的な効果がある。
【００５１】
次に、図８のフローチャートを参照して、図１のステップＳ１〜ステップＳ３における各部屋での探索処理手順について、より詳細に説明する。以下の説明では“ＩＤがbe9f3e27-8869-4052のペットボトルを取ってきて”という探索命令を受けたロボット１が、図４に示したように、オブジェクト群が配置されたダイニングキッチン（ＤＫ）に入ってきて、この中にあるペットボトル３０２を探す、という場面を想定する。図４では、各オブジェクトの階層的な位置関係は、図９のようになるが、本実施形態では、このような階層的な位置関係自体は記憶・管理する必要がない。探索行動中に受信されるオブジェクト情報中の階層レベルから、図１０のように、各オブジェクトの属する階層レベルは認識する。受信される各オブジェクトのオブジェクト情報から、その上位や下位の階層との接続関係（オブジェクト間の階層的位置関係）までは認識する必要はない。ロボット１は、図８に示したような処理動作を行うことにより、オブジェクト情報を受信した複数のオブジェクト間の階層的な位置関係を認識する。
【００５２】
図８のステップＳ１１では、ロボット１の探索制御部３は、移動部５に指示を出して、車輪を駆動させることにより部屋内を巡回しながら、タグ読取部２でロボット１周辺にある各ＩＣタグからオブジェクト情報を読み取る。ＩＣタグからのオブジェクト情報を受信すると、探索制御部３は、当該オブジェクト情報中に階層レベルが「部屋」レベルであるものがあるか、または当該オブジェクト情報中のタグＩＤが探索対象のオブジェクト（目的オブジェクト）のＩＤと一致するものがあるかを調べる。
【００５３】
受信したオブジェクト情報中の階層レベルが「部屋」レベルであるものがある場合には（ステップＳ１２）、ステップＳ１３へ進み、当該オブジェクト情報を探索制御部３内のスタックにプッシュする。スタックに記憶された「部屋」レベルのオブジェクト情報は、前述したように、図７の部屋間の移動に利用される。
【００５４】
その後、または受信したオブジェクト情報中の階層レベルが「部屋」レベルであるものがない場合には、ステップＳ１４へ進み、当該オブジェクト情報中にタグＩＤが探索対象のオブジェクト（目的オブジェクト）のＩＤと一致するものがあるかを調べる。目的オブジェクトのＩＤをもつオブジェクト情報がない場合には、ロボット１の現在位置の周辺に目的オブジェクトはないことを表すため、ステップＳ２３、ステップＳ１１へと進み、そのまま巡回を続ける。ステップＳ１４で、目的オブジェクトのＩＤをもつオブジェクト情報が受信された場合には、目的オブジェクトは現在位置の近くにあるということであり、探索制御部３は巡回を停止して、ステップＳ１５へ進み、本格的な探索を開始する。
【００５５】
なお、ステップＳ１１で受信したオブジェクト情報に「部屋」レベルのオブジェクト情報も、目的オブジェクトのオブジェクト情報もない場合、またはオブジェクト情報が受信されなかった場合には、ステップＳ２３へ進む。ステップＳ２３において、部屋内の巡回が終わったときには、当該部屋の探索を終了する。この後、図７のステップＳ４へ進む。巡回を終えていない場合は、ステップＳ１１に戻って同じ手順を繰り返す。
【００５６】
ステップＳ１５以降では、目的オブジェクトの位置を絞り込んだ後に行う探索処理である。まず、ステップＳ１５では、探索制御部３は、巡回移動行動を停止して、目的オブジェクトのオブジェクト情報と、それととともに受信された、「部屋」レベル以外のオブジェクト情報とを含むオブジェクト情報群を探索制御部３内のメモリに記録する。
【００５７】
図４の環境において、ペットボトルのＩＣタグからそのオブジェクト情報を受信する際に、これと同時に受信されるオブジェクト情報群から得られた各オブジェクトの階層レベルの例を図１１に示す。目的オブジェクトのオブジェクト情報とともに受信される（目的オブジェクトのオブジェクト情報を含む）オブジェクト情報群の発信元のオブジェクト群は、目的オブジェクトの近くにあるということだから、当該オブジェクト情報群は目的オブジェクトと階層的な位置関係にある可能性が高い。しかし、実際の関係は分からないままである。そのため、以下では、受信された各オブジェクト情報の階層レベルを基に、図１２に示すように、階層的な位置関係の可能性を仮定した上で探索を行っていく。
【００５８】
まず、ステップＳ１６では、探索制御部３は、受信されたオブジェクト情報群のうち、最も階層レベルの高いものから１つを選択する。図１２の例では冷蔵庫のオブジェクト情報が選択される。冷蔵庫は「家具」レベルであるが、これを選ぶということは、この中に目的のペットボトルが入っていると仮定して先に冷蔵庫を見つける、という手順を踏んでいることに相当する。
【００５９】
次に、ステップＳ１７では、当該選択したオブジェクト情報（ここでは、図５の冷蔵庫のオブジェクト情報）中の検出方法を用いて、オブジェクト検出部４が、当該オブジェクトに対応する検出処理を行う。
【００６０】
オブジェクト検出部４の画像処理部４ｂは、探索制御部３から図５のオブジェクト情報中の検出方法（画像処理プログラムの識別情報や、パラメータなどを含む）を受け取り、冷蔵庫の検出のために、閾値を用いた領域検出処理を行う。すなわち、画像処理部４ｂは、そのメモリから領域検出処理プログラムをロードして実行する。冷蔵庫は「家具」レベルであるから、他の物の中に入っていることはないため、ロボットが探索を開始した地点から周囲を見回せば必ず見つかるはずである。冷蔵庫が検出された場合には（検出成功）、オブジェクト検出部４は、その旨を探索制御部３へ返し、ステップＳ１８へ進む。
【００６１】
ステップＳ１８において、探索制御部３は、当該検出されたオブジェクトが目的オブジェクトである場合には、さらにステップＳ１９へ進み、目的オブジェクトの探索成功と決定する。ステップＳ１７で検出されたオブジェクトが目的のオブジェクトでない場合には、ステップＳ２０へ進み、当該検出されたオブジェクトの「内部」をさらに探索する。
【００６２】
ステップＳ２０では、探索制御部３は、ステップＳ１５で得られたオブジェクト情報群のなかに、ステップＳ１７で検出されたオブジェクトよりも下位の階層レベルのオブジェクト情報があるかどうかを調べる。下位の階層レベルのオブジェクト情報がある場合、それらが当該検出されたオブジェクト（ここでは冷蔵庫）の中にあると仮定して、ステップＳ２１へ進む。
【００６３】
ステップＳ２１では、当該検出されたオブジェクト（ここでは冷蔵庫）の内部を探索するため、探索制御部３は、当該オブジェクト情報中の操作方法を実行する。例えば、ここでは、操作方法として、扉の取っ手の座標と、該取っ手を引っ張ること、とが含まれているので、マニピュレータ操作部６に対し、ロボット１のアーム１０４が当該取っ手を掴み引っ張るように制御する。
【００６４】
図５のオブジェクト情報であれば、冷蔵庫オブジェクトの基準点からの相対座標が指定されているため、その点をアーム１０４で掴んで手前に引く、という作業を実行する。操作の実行に際し、ロボットは移動を行うことが出来る。テーブルなど、特に操作の必要なく内部（実際はテーブルの上）を探索できる場合は操作に関する情報は指定されない。
【００６５】
上記のような操作が終わると、ステップＳ２２へ進み、探索制御部３は、ステップＳ１５で得られたオブジェクト情報群のうち、当該冷蔵庫オブジェクトよりも階層レベルが低く、その中で最も階層レベルが高いものを選択して、これを新たな検出対象のオブジェクトとし、ステップＳ１７へ戻る。これは図１２の破線を辿って１つ下の階層に下りることに相当する。「容器」レベル以降は冷蔵庫に入っていないかもしれないので、ステップＳ１７で実行される検出処理に失敗する可能性がある。
【００６６】
なお、図１２に示すように、容器レベルよりも下位の階層は検出範囲が冷蔵庫の中に限定されるため、冷蔵庫の中を見回して画像処理で検出されないのであれば検出失敗と判定できる。検出失敗の場合はステップＳ２０に進み、探索制御部３は、検出失敗したオブジェクトと同レベル以下のオブジェクトのうち、まだ検出対象として選択されていないオブジェクト情報があれば、ステップＳ２１へ進み、そのうちで最も階層レベルの高いオブジェクト情報を１つ選択する。そして、選択したオブジェクト情報を新たな検出対象として、ステップＳ１７へ戻り、上記同様の処理を繰り返す。
【００６７】
図９の階層関係は冷蔵庫を頂点とした探索により目的オブジェクトのペットボトルが見つかる例であるが、図１３の階層構造のようにペットボトルが部屋の床に置いてあり、なおかつ偶然その場所が冷蔵庫の近くであった場合も図１２の階層関係を予想してしまうことになる。この場合は冷蔵庫を頂点としていくら探索を行っても目的オブジェクトが見つからないことになり、最終的にはステップＳ２０からステップＳ２５に進む。
【００６８】
ステップＳ２５において、探索制御部３は、ステップＳ１５で得たオブジェクト情報群のうち、冷蔵庫の中を探索してもオブジェクトの検出できなかったオブジェク情報が存在する場合には、ステップＳ１６へ戻る。すなわち、冷蔵庫の外に何らかのオブジェクトがある場合には、ステップＳ２５からステップＳ１６へ進む。
【００６９】
ステップＳ１６では、探索制御部３は、未検出のオブジェクト情報のうち、最も階層レベルの高いオブジェクト情報を１つ選択し、以下、新たな探索を開始することになる。
【００７０】
基本的に以上の処理によって目的オブジェクトが見つかるはずであるが、例えば、画像処理精度の上限を超えている等の理由で、目的オブジェクトの検出に失敗した場合には、最終的にステップＳ２５において、未検出のオブジェクトがなくなり、この地点での探索を終了する。
【００７１】
以上の処理により、家庭環境のようにあるオブジェクトが他のオブジェクトの内部に格納されているような状況での特定物体の探索が可能になる。しかも、階層レベルの高い順から探索していくため（図１２の例では冷蔵庫が探索開始点）、目的オブジェクトが格納されていそうな箇所から探すという効率の良い経路で探索行動を実行できる。
【００７２】
また、探索制御部３で階層レベルに高い順に検出対象のオブジェクト情報を選択して、オブジェクト検出部４はこの選択された順にオブジェクトを検出する。すなわち、「冷蔵庫」の中に「棚２」を検出し、「棚２」から「ペットボトル」が検出されると、図９に示すように、「ペットボトル」の上位階層に「棚２」があり、「棚２」の上位階層に「冷蔵庫」がある、という「冷蔵庫」「棚２」「ペットボトル」の階層的な位置関係が得られることになる。
【００７３】
以上の説明では、探索対象の目的オブジェクトを指定された場合である。次に目的オブジェクトの格納場所が指定された場合、例えば“冷蔵庫の中のペットボトルを取ってきて”という探索命令を受けた場合の探索処理手順について説明する。
【００７４】
この場合のロボット１の動作の概略は、図７と同様である。ただし、特定の部屋が指定されている場合、図７のステップＳ１の部屋内の探索では、「部屋」レベルのオブジェクト情報の検出を行う。詳しくは後述する。
【００７５】
部屋内の探索手順について、図１４及び図１５のフローチャートを参照して説明する。なお、ここでは、目的オブジェクトの格納先として指定された「部屋」、「家具」、もしくは「容器」レベルのオブジェクトのことを「指定オブジェクト」と呼び、「指定オブジェクト」の階層レベルのことを「指定レベル」と呼ぶ。
【００７６】
図１４及び図１５の処理手順は、大きく分けて次のように２つの手順を含む。
【００７７】
（１）指定オブジェクトを探索する手順（図１４のステップＳ１０６〜ステップＳ１１４）
（２）指定オブジェクトの内部を探索して目的オブジェクトを探索する手順（図１５のステップＳ１１６〜ステップＳ１２４）
この２つの手順のそれぞれは、図７に示した手順と同様、階層レベルに基づき階層レベルの高い順にオブジェクトを探索する。図７と異なる点は、図１４及び図１５では目的オブジェクトは指定オブジェクトの中にあることが分かっているため、指定レベルの他のオブジェクトおよびその内部は探索せずにすむことになり、探索範囲を限定することができる、ということである。
【００７８】
ここでは、ハンドリング対象のオブジェクトのＩＤ（タグＩＤ）と、その上位の階層レベルをもつオブジェクトのＩＤ（タグＩＤ）を入力部７または通信部８から入力する必要がある。各オブジェクトのＩＤの入力方法は、前述同様、オブジェクトの一覧表からの選択や音声などで入力する。
【００７９】
以下、図１４及び図１５を参照して、主に、図８と異なる部分を説明する。
【００８０】
図１４のステップＳ１０１では、ロボット１の探索制御部３は、移動部５に指示を出して、車輪を駆動させることにより部屋内を巡回しながら、タグ読取部２でロボット１周辺にある各ＩＣタグからオブジェクト情報を読み取る。ＩＣタグからのオブジェクト情報を受信すると、探索制御部３は、当該オブジェクト情報中に階層レベルが「部屋」レベルであるものがあるか、または当該オブジェクト情報中のタグＩＤが探索対象の指定オブジェクトのＩＤと一致するものがあるかを調べる。
【００８１】
受信したオブジェクト情報中の階層レベルが「部屋」レベルであるものがある場合には（ステップＳ１０２）、ステップＳ１０３へ進み、当該オブジェクト情報を探索制御部３内のスタックにプッシュする。スタックに記憶された「部屋」レベルのオブジェクト情報は、前述したように、図７の部屋間の移動に利用される。
【００８２】
次に、受信したオブジェクト情報中の階層レベルが「部屋」レベルであるものがない場合、「部屋」レベル」であるものがある場合にも、ステップＳ１０４へ進み、当該オブジェクト情報中のタグＩＤが指定オブジェクトのＩＤと一致するものがあるかを調べる。指定オブジェクトのＩＤをもつオブジェクト情報がない場合には、ロボット１の現在位置の周辺に指定オブジェクト及び目的オブジェクトはないことを表すため、ステップＳ１１２、ステップＳ１０１へと進み、そのまま巡回を続ける。ステップＳ１０４で、指定オブジェクトのＩＤをもつオブジェクト情報が受信された場合には、指定オブジェクト（及び目的オブジェクト）は現在位置の近くにあるということであり、ステップＳ１０５へ進み、探索制御部３は巡回を停止して、本格的な指定オブジェクトの探索を開始する。
【００８３】
なお、ステップＳ１０１で受信したオブジェクト情報に「部屋」レベルのオブジェクト情報も、指定オブジェクトのオブジェクト情報もない場合、またはオブジェクト情報が受信されなかった場合には、ステップＳ１１２へ進む。ステップＳ１１２において、部屋内の巡回が終わったときには、当該部屋の探索を終了する。この後、図７のステップＳ４へ進む。巡回を終えていない場合は、ステップＳ１０１に戻って同じ手順を繰り返す。
【００８４】
ステップＳ１０５以降では、指定オブジェクトの位置を絞り込んだ後に行う探索処理である。まず、ステップＳ１０５では、探索制御部３は、巡回移動行動を停止して、指定オブジェクトのオブジェクト情報と、それととともに受信された、指定レベルよりも上位階層のオブジェクト情報とを含むオブジェクト情報群を探索制御部３内のメモリに記録する。
【００８５】
まず、ステップＳ１０６では、受信されたオブジェクト情報群のうち、最も階層レベルの高いものから１つを選択する。次に、ステップＳ１０７では、当該選択したオブジェクト情報中の検出方法を用いて、オブジェクト検出部４が、当該オブジェクトに対応する検出処理を行う。当該オブジェクトが検出された場合には（検出成功）、オブジェクト検出部４は、その旨を探索制御部３へ返し、ステップＳ１０８へ進む。
【００８６】
ステップＳ１０８において、探索制御部３は、当該検出されたオブジェクトが指定オブジェクトである場合には、指定オブジェクトの内部を探索して目的オブジェクトを探索するために、図１５のステップＳ１１６へ進む。
【００８７】
ステップＳ１０７で検出されたオブジェクトが指定のオブジェクトでない場合には、ステップＳ１０９へ進み、当該検出されたオブジェクトの下位階層、すなわち「内部」をさらに探索する。
【００８８】
ステップＳ１０９では、探索制御部３は、ステップＳ１０５で得られたオブジェクト情報群のなかに、ステップＳ１０７で検出されたオブジェクトよりも下位の階層レベルのオブジェクト情報があるかどうかを調べる。下位の階層レベルのオブジェクト情報がある場合、それらが当該検出されたオブジェクトの中にあると仮定して、ステップＳ１１０へ進む。下位の階層レベルのオブジェクト情報がない場合にはステップＳ１１４へ進む。ステップＳ１１４において、未検出のオブジェク情報が存在する場合には、さらにステップＳ１０６へ戻り、探索制御部３は、未検出のオブジェクト情報のうち、最も階層レベルの高いオブジェクト情報を１つ選択し、以下、新たな探索を開始することになる。
【００８９】
ステップＳ１１０では、当該検出されたオブジェクトの内部を探索するため、探索制御部３は、当該オブジェクト情報中の操作方法を実行する。この操作の後、ステップＳ１１１へ進み、当該検出されたオブジェクトよりも階層レベルが低く、その中で最も階層レベルが高いものを選択して、これを新たな検出対象のオブジェクトとし、ステップＳ１０７へ戻る。
【００９０】
以上の処理手順により、ステップＳ１０８で、指定オブジェクトが検出された場合、次に、図１５のステップＳ１１６へ進み、目的オブジェクトを探索を開始する。まず、ステップＳ１１６では、ステップＳ１０１で受信されたオブジェクト情報群のうち、指定レベルより下位の階層レベルのオブジェクト情報を探索制御部３内のメモリに記録し、図１５のステップＳ１１７以下の処理を行い、このメモリに記録されたオブジェクト情報を階層レベルの高いものから順に探索して、目的オブジェクトを検出する。図１５のステップＳ１１７〜ステップＳ１２４の処理動作は、図８のステップＳ１６以下の処理動作と同様であるので説明は省略する。
【００９１】
以上説明したように、目的オブジェクトの他に、その目的オブジェクトより上位の階層レベル（「部屋」、「家具」、「容器」）のオブジェクトが指定されている場合には、まずこの指定されたオブジェクトを検出した後に、その下位の階層レベルのオブジェクト情報に絞り込んで目的オブジェクトを探索することで、より高速に目的オブジェクトを検出することができる。
【００９２】
一度、図８や、図１４及び図１５に示した処理動作を行い、探索制御部３で選択された順にオブジェクト検出部４でオブジェクトを検出することにより、探索した範囲に存在するオブジェクト群の階層的な位置関係（すなわち、どのオブジェクトがどのオブジェクトを有するかという階層的な位置関係）を認識することができるので、これを記憶して、次に、同じ又は別の目的オブジェクトを探索する際に利用することも可能である。しかし、探索した結果得られた複数のオブジェクト間の階層的な位置関係は、一時的なものであり、次の探索時には変化してしまっている可能性があるが、もし変化していないのが確認できれば、この階層関係を利用して高速な探索が可能になる。
【００９３】
この場合、図１６に示すように、オブジェクト探索装置１は、記憶部１０を含み、この記憶部１０に、過去に、目的オブジェクトを探索したときに得られた各オブジェクトのタグＩＤと、例えば図９に示すような各オブジェクトの階層的な位置関係を記憶する。
【００９４】
次に、図１７に示すフローチャートを参照して、図１６のオブジェクト探索装置１が、記憶部１０に記憶された情報を用いて、目的オブジェクトを探索する際の処理動作について説明する。
【００９５】
ここでは、過去のペットボトルの探索時に、図９に示したような階層的な位置関係を記憶部１０に記憶した場合に、新たに冷蔵庫に入った食器を取ってくるよう命令された場合の処理手順である。
【００９６】
ロボット１の探索制御部３は、記憶部１０から、目的オブジェクトが格納されている「容器」オブジェクト、この「容器」オブジェクトが格納されている「家具」オブジェクト、この「家具」オブジェクトが格納されている「部屋」オブジェクトの各タグＩＤを読み出す。このように目的オブジェクトが格納されている部屋、家具、容器オブジェクトを既に知っているので、まず目的オブジェクトのある部屋まで移動する（ステップＳ２０１〜ステップＳ２０４）。この場合、探索制御部３は、オブジェクト情報を受信しながら部屋を動き回り、目的オブジェクトのある部屋のオブジェクト情報を受信した場合には、当該オブジェクト情報中の検出方法を用いて、オブジェクト検出部４が当該部屋（例えば、この場合、扉など）を検出し、当該オブジェクト情報中の操作方法を用いて、マニピュレータ操作部６の操作によって当該扉を開いて、当該部屋へ移動し、ステップＳ２０１からステップＳ２０６へ進む。
【００９７】
ステップＳ２０６では、ロボット１は、当該部屋の中を巡回し、ステップＳ２０７で、目的オブジェクトの入った家具のオブジェクト情報を受信する。このとき当該家具のオブジェクト情報とともに、当該家具付近にある（当該家具の中にある）各オブジェクトのオブジェクト情報も受信する。家具の中に目的オブジェクトが存在するならば、この受信されたオブジェクト情報のなかには目的オブジェクトのオブジェクト情報も含まれている。
【００９８】
そして、ステップＳ２０８において、当該家具のオブジェクト情報中の検出方法を用いて、オブジェクト検出部４が当該家具を検出し、当該オブジェクト情報中の操作方法を用いて、マニピュレータ操作部６の操作によって当該家具の扉を開き、ステップＳ２０９へ進む。
【００９９】
ステップＳ２０９〜ステップＳ２１１では、ロボット１は、当該家具のオブジェクト情報とともに受信したオブジェクト情報群のうちの、当該家具の中にある容器レベルのオブジェクト情報を用いて、上記同様にして、当該容器レベルのオブジェクトを検出し、さらに、当該オブジェクトを操作して、その下位階層へ移行する。
【０１００】
さらに、ステップＳ２１２〜ステップＳ２１４では、ロボット１は、当該家具、当該容器のオブジェクト情報とともに受信したオブジェクト情報群のなかにある、目的オブジェクトのオブジェクト情報中の検出方法を用いて、当該目的オブジェクトを検出する。
【０１０１】
なお、ステップＳ２０７において、目的の「家具」レベルのオブジェクト情報が受信できなかった場合、ステップＳ２１０において、目的の「家具」レベルのオブジェクト情報は受信できたが、その中の目的の「容器」レベルのオブジェクト情報が受信できなかった場合、ステップＳ２１３において、目的の「家具」レベル、「容器」レベルのオブジェクト情報は受信できたが、目的オブジェクトのオブジェクト情報が受信できなかった場合には、過去の探索から現在までの間に、これらの階層的な位置関係が変化している可能性が高いので、ステップＳ２０５へ進み、図７，図８に示した通常の探索処理を開始する。そして、この通常の探索処理を行った後に、記憶部１０を更新する。すなわち、探索処理により得られた各オブジェクトの階層的な位置関係を記憶部１０に記憶する。
【０１０２】
最初は探索する環境におけるオブジェクト間の階層的な位置関係が不明であるために、図８に示したような網羅的な探索を行いながら目的オブジェクトを見つける。しかし、探索を繰り返すうちに段々と環境内での各オブジェクトの階層的な位置関係が明らかになってくる。そのため、階層的な位置関係が記憶部１０に記憶されているオブジェクトについては、その情報を利用して効率的な検出が可能である。一方、記憶部１０に記憶している階層的な位置関係は過去のある時点のものであるから、新たな探索のときには変化している可能性がある。このような変化が検出された場合はもう一度網羅的な探索を行い、その結果で記憶部１０に記憶されている情報を更新する。
【０１０３】
以上説明したように、上記実施形態によれば、各オブジェクトが有するＩＣタグから、該オブジェクトの識別子、階層レベル、該オブジェクトを検出するための検出方法、及び該オブジェクトの下位階層へ移行するための該オブジェクトの操作方法を含むオブジェクト情報を取得するタグ読み取り部２で、目的オブジェクトのオブジェクト情報を含むオブジェクト情報群を取得し、各オブジェクト情報の検出方法及び操作方法を用いて、階層レベルの高い順に、該目的オブジェクトよりも階層レベルの高いオブジェクト、及び該オブジェクトが有するオブジェクトを順次検出することにより、該目的オブジェクトを検出する。これにより、散在する複数のオブジェクトを容易に探索することができる。
【０１０４】
オブジェクト（ロボットが掴んで運ぶ「ハンドリング対象」、ハンドリング対象を入れる箱や引き出しなどの「容器」、容器が置かれたり、中に収めていたりするテーブル、冷蔵庫などの「家具」、家具が設置されている「部屋」などをオブジェクトと表現する）にＩＣタグをあらかじめ貼り付けておく。ＩＣタグには、該オブジェクト固有のＩＤ（タグＩＤ）、該オブジェクトが「ハンドリング対象」、「容器」、「家具」、「部屋」のどの階層に属するのかを表す階層レベル、該オブジェクトを検出するための認識プログラムのＩＤやパラメータといった情報（検出方法）、該オブジェクトが有する該オブジェクトよりも下位の階層レベルのオブジェクトの存在する位置に到達するための操作方法（例えば、掴む、扉を開けるための把持点や把持姿勢、動作方向といった情報など、該オブジェクトの下位階層へ移行するための該オブジェクトの操作方法）を含むオブジェクト情報が記憶されている。またはＩＣタグから読み出されたタグＩＤをキーとしてデータベースから当該オブジェクト情報が読み出せるようになっている。階層レベルの高低は、高い順に「部屋」、「家具」、「容器」、「ハンドリング対象」と定義する。
【０１０５】
目的オブジェクトを探索する際には、まず、目的オブジェクトのオブジェクト情報が受信されるまで、各部屋を巡回する。目的オブジェクトのオブジェクト情報を含むオブジェクト情報群を受信すると、その中で階層レベルが高い順に、オブジェクトの検出を行っていく。この順序はまず大きくて見つけやすく、なおかつ外側に存在するものから、続いて中に入っているものを見つける、という探索を行うことになる。探索中に例えば「家具」レベルのオブジェクトを１つ見つけると、その中に「容器」レベルのオブジェクトが入っていると仮定して容器の検出を行う。他の階層でも下の階層のオブジェクトが中に入っていると仮定して検出処理を実行していく。この探索を目標オブジェクトが見つかるまで繰り返す。
【０１０６】
このような構成により、環境内に散在する複数のオブジェクトの階層的な位置関係（どのオブジェクトがどのオブジェクトを有しているかという階層的な位置関係）を予め記憶・管理することなく、目的オブジェクトを容易に探索できる。このために、各オブジェクトから、その階層レベルが取得できる仕組みさえ準備すればよく、装置構成を大幅に簡略化できる。一方で、実際の探索行動では、目的オブジェクトが入っていそうな家具および容器を先に見つけるような探索順序が自動的に生成されるため、物体同士の位置関係に階層構造があるような環境であっても特定オブジェクトの探索の信頼性が高くなることが期待できる。
【０１０７】
本発明の実施の形態に記載した本発明の手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、半導体メモリなどの記録媒体に格納して頒布することもできる。
【０１０８】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１０９】
【図１】オブジェクト探索装置の構成例を示した図。
【図２】オブジェクト検出部の構成例を示した図。
【図３】図２に示した構成のオブジェクト検出部を有するブジェクト探索装置１の一例を示した図。
【図４】図１のオブジェクト探索装置で探索される、ダイニングキッチン内に散在するオブジェクトを示した図。
【図５】冷蔵庫のオブジェクト情報の一例を示した図。
【図６】カップのオブジェクト情報の一例を示した図
【図７】オブジェクト探索装置の処理動作を概略を説明するためのフローチャート。
【図８】オブジェクト探索装置の部屋内の探索手順を説明するためのフローチャート。
【図９】ＤＫ（ダイニングキッチン）環境に散在するオブジェクト群の階層的な位置関係の具体例を示した図。
【図１０】オブジェクト探索装置がＤＫを巡回することにより得られる情報（すなわち、各オブジェクトの階層レベル）を示した図。
【図１１】オブジェクト探索装置がＤＫ内の冷蔵庫付近で受信されたオブジェクト情報群から得られた情報（各オブジェクトの階層レベル）を示した図。
【図１２】図１１に示したオブジェクト群の階層レベルから想定される該オブジェクト群の階層的な位置関係を示した図。
【図１３】ＤＫ環境に散在するオブジェクト群の階層的な位置関係の他の具体例を示した図。
【図１４】目的オブジェクトと、該目的オブジェクトを有する該目的オブジェクトよりも上位階層のオブジェクト（指定オブジェクト）とが指定された場合の探索手順を説明するためのフローチャート。
【図１５】目的オブジェクトと、該目的オブジェクトを有する該目的オブジェクトよりも上位階層のオブジェクト（指定オブジェクト）とが指定された場合の探索手順を説明するためのフローチャート。
【図１６】オブジェクト探索装置の他の構成例を示した図。
【図１７】オブジェクト検出部で検出されたオブジェクト群の階層的な位置関係を記憶部に記憶しておき、この記憶部に記憶された情報を用いて、目的オブジェクトを探索する探索手順を説明するためのフローチャート。
【符号の説明】
【０１１０】
１…オブジェクト探索装置
２…タグ読取部
３…探索制御部
４…オブジェクト検出部
５…移動部
６…マニピュレータ操作部
７…入力部
８…通信部
４ａ…撮像部
４ｂ…画像処理部
【図１】
0004504433.tif 000002
【図２】
0004504433.tif 000003
【図３】
0004504433.tif 000004
【図４】
0004504433.tif 000005
【図５】
0004504433.tif 000006
【図６】
0004504433.tif 000007
【図７】
0004504433.tif 000008
【図８】
0004504433.tif 000009
【図９】
0004504433.tif 000010
【図１０】
0004504433.tif 000011
【図１１】
0004504433.tif 000012
【図１２】
0004504433.tif 000013
【図１３】
0004504433.tif 000014
【図１４】
0004504433.tif 000015
【図１５】
0004504433.tif 000016
【図１６】
0004504433.tif 000017
【図１７】
0004504433.tif 000018