(57)【要約】【課題】　ロボット装置等の移動体における限られた計算リソース及びメモリリソースを考慮し、素早く現在の環境を同定することができ、各々の環境での自己位置同定を行う。【解決手段】　環境同定装置４００は、ランドマークが複数配置され、一意に特定可能な環境内を移動するロボット装置が複数の登録済の環境から現在の環境を同定するものであり、現在の環境内のランドマークを認識し、ロボット装置自身の移動状態量を算出し、このランドマーク及び移動状態量に基づいて現在の環境におけるランドマークの位置情報を有する現在の環境地図を構築する環境地図構築部４０２と、ランドマークの位置情報及び環境ＩＤからなる登録済環境地図のデータベースを有する環境地図記憶部４０３と、登録済環境地図と現在の環境地図との類似度から現在の環境を同定する環境同定装置４０４と、新しい環境を探索する環境探索部４０５とから構成される。【選択図】　図５
2004110802.tif 000002
【特許請求の範囲】
【請求項１】
　１以上のランドマークが配置された環境内を移動するロボット装置であって、
　上記１以上のランドマークの観測結果及び上記ロボット装置の移動状態量に基づき、１以上のランドマークの配置又は数により一意に特定可能な環境の環境地図を構築する環境地図構築手段と、
　上記環境地図が登録済環境地図として複数記憶された環境地図記憶手段と、
　上記環境地図記憶手段に記憶されている上記登録済環境地図と、上記環境地図構築手段により構築された現在の環境地図とを比較して、上記現在の環境は、上記登録済環境地図の示す環境であるか否かを判定する環境同定手段と
　を有することを特徴とするロボット装置。
【請求項２】
　１以上のランドマークが配置された環境内を移動体が移動して該環境を同定する環境同定装置であって、
　上記１以上のランドマークの観測結果及び上記移動体の移動状態量に基づき、１以上のランドマークの配置又は数により一意に特定可能な環境の環境地図を構築する環境地図構築手段と、
　上記環境地図が登録済環境地図として複数記憶された環境地図記憶手段と、
　上記環境地図記憶手段に記憶されている上記登録済環境地図と、上記環境地図構築手段により構築された現在の環境地図とを比較して、上記現在の環境は、上記登録済環境地図の示す環境であるか否かを判定する環境同定手段と
　を有することを特徴とする環境同定装置。
【請求項３】
　上記登録済環境地図は、上記環境地図構築手段により構築された環境地図である
　ことを特徴とする請求項２記載の環境同定装置。
【請求項４】
　上記環境地図は、上記ランドマークの位置情報を有し、上記環境地図記憶手段は、上記環境地図と共に該環境を識別する環境識別情報を記憶する
　ことを特徴とする請求項２記載の環境同定装置。
【請求項５】
　上記環境同定手段は、上記現在の環境地図と上記登録済環境地図との類似度を算出し、該類似度に基づき現在の環境を同定する
　ことを特徴とする請求項４記載の環境同定装置。
【請求項６】
　上記環境同定手段は、上記現在の環境地図と上記登録済環境地図との類似度が所定の閾値以上であるとき、上記現在の環境を当該登録済環境地図が示す環境であると同定して該登録済環境地図の上記環境識別情報を出力する
　ことを特徴とする請求項５記載の環境同定装置。
【請求項７】
　上記環境同定手段は、上記現在の環境地図と上記登録済環境地図との類似度が所定の閾値未満であるとき、該現在の環境地図を上記環境地図記憶手段に追加する追加手段を有する
　ことを特徴とする請求項５記載の環境同定装置。
【請求項８】
　上記一意に特定可能な環境内を探索する探索手段を有する
　ことを特徴とする請求項２記載の環境同定装置。
【請求項９】
　上記探索手段の上記環境内の探索を終了するよう制御する探索終了制御手段を有する
　ことを特徴とする請求項８記載の環境同定装置。
【請求項１０】
　上記探索終了制御手段は、上記一意に特定可能な環境内にて所定数のランドマークが観測されたとき、探索開始から所定期間経過したとき、又は上記移動体をコントロールする使用者により上記環境内の探索を終了するよう指示されたときに上記探索手段の探索を終了する
　ことを特徴とする請求項９記載の環境同定装置。
【請求項１１】
　上記一意に特定可能な環境は、所定数のランドマークを有する
　ことを特徴とする請求項２記載の環境同定装置。
【請求項１２】
　上記ランドマークは、上記一意に特定可能な環境内にて一意に特定可能なものである
　ことを特徴とする請求項２記載の環境同定装置。
【請求項１３】
　上記ランドマークは、異なる形状及び／又は異なる色の複数の幾何学パターンが組み合わされたものである
　ことを特徴とする請求項２記載の環境同定装置。
【請求項１４】
　上記環境地図は、上記ランドマークの位置情報と共に上記ランドマークの方向を示す情報を有する
　ことを特徴とする請求項１３記載の環境同定装置。
【請求項１５】
　上記移動体の移動状態量は、該移動体の姿勢方向及び位置を示すものである
　ことを特徴とする請求項２記載の環境同定装置。
【請求項１６】
　上記移動体は、供給された入力情報に基づいて動作を行う自律型のロボット装置である
　ことを特徴とする請求項２記載の環境同定装置。
【請求項１７】
　１以上のランドマークが配置された環境内を移動体が移動して該環境を同定する環境同定方法であって、
　上記１以上のランドマークの観測結果及び上記移動体の移動状態量に基づき、１以上のランドマークの配置又は数により一意に特定可能な環境の環境地図を構築する環境地図構築工程と、
　記憶手段に登録済環境地図として複数記憶された上記環境地図と、上記環境地図構築工程にて構築された現在の環境地図とを比較して、上記現在の環境は、上記登録済環境地図の示す環境であるか否かを判定する環境同定工程と
　を有することを特徴とする環境同定方法。
【請求項１８】
　上記環境地図記構築工程にて構築された環境地図を上記登録済環境地図として上記記憶手段に記憶する記憶工程を有する
　ことを特徴とする請求項１７記載の環境同定方法。
【請求項１９】
　上記環境地図は、上記ランドマークの位置情報を有し、上記記憶手段には、上記環境地図と共に該環境を識別する環境識別情報が記憶されている
　ことを特徴とする請求項１７記載の環境同定方法。
【請求項２０】
　上記環境同定工程では、上記現在の環境地図と上記登録済環境地図との類似度が算出され、該類似度に基づき現在の環境が同定される
　ことを特徴とする請求項１９記載の環境同定方法。
【請求項２１】
　上記環境同定工程では、上記現在の環境地図と上記登録済環境地図との類似度が所定の閾値以上であるとき、上記現在の環境を当該登録済環境地図が示す環境であると同定して該登録済環境地図の上記環境識別情報が出力される
　ことを特徴とする請求項２０記載の環境同定方法。
【請求項２２】
　上記環境同定工程では、上記現在の環境地図と上記登録済環境地図との類似度が所定の閾値未満であるとき、該現在の環境地図が上記記憶手段に追加される
　ことを特徴とする請求項２０記載の環境同定方法。
【請求項２３】
　上記一意に特定可能な環境内を探索する探索工程を有する
　ことを特徴とする請求項１７記載の環境同定方法。
【請求項２４】
　上記探索工程では、上記一意に特定可能な環境内にて所定数のランドマークが観測されたとき、探索開始から所定期間経過したとき、又は上記移動体をコントロールする使用者により上記環境内の探索を終了するよう指示されたときに探索が終了される
　ことを特徴とする請求項２３記載の環境同定方法。
【請求項２５】
　１以上のランドマークが配置された環境内を移動体が移動して該環境を同定する動作をコンピュータに実行させるためのプログラムであって、
　上記１以上のランドマークの観測結果及び上記移動体の移動状態量に基づき、１以上のランドマークの配置又は数により一意に特定可能な環境の環境地図を構築する環境地図構築工程と、
　記憶手段に登録済環境地図として複数記憶された上記環境地図と、上記環境地図構築工程にて構築された現在の環境地図とを比較して、上記現在の環境は、上記登録済環境地図の示す環境であるか否かを判定する環境同定工程と
　を有することを特徴とするプログラム。
【請求項２６】
　１以上のランドマークが配置された環境内を移動体が移動して該環境を同定する動作をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
　上記１以上のランドマークの観測結果及び上記移動体の移動状態量に基づき、１以上のランドマークの配置又は数により一意に特定可能な環境の環境地図を構築する環境地図構築工程と、
　記憶手段に登録済環境地図として複数記憶された上記環境地図と、上記環境地図構築工程にて構築された現在の環境地図とを比較して、上記現在の環境は、上記登録済環境地図の示す環境であるか否かを判定する環境同定工程と
　を有することを特徴とするプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、移動体が現在移動している環境を同定する環境同定装置、環境同定方法、プログラム及び記録媒体、並びに環境同定装置を搭載したロボット装置に関する。
【背景技術】
【０００２】
　電気的又は磁気的な作用を用いて人間（生物）の動作に似た運動を行う機械装置を「ロボット」という。我が国においてロボットが普及し始めたのは、１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化等を目的としたマニピュレータ及び搬送ロボット等の産業用ロボット（Industrial Robot）であった。
【０００３】
　最近では、人間のパートナーとして生活を支援する、即ち住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットの開発が進められている。このような実用ロボットは、産業用ロボットとは異なり、人間の生活環境の様々な局面において、個々に個性の相違した人間、又は様々な環境への適応方法を自ら学習する能力を備えている。例えば、犬又は猫のように４足歩行の動物の身体メカニズム及びその動作を模した「ペット型」ロボット、或いは、２足直立歩行を行う人間等の身体メカニズム及びその動作をモデルにしてデザインされた「人間型」又は「人間形」ロボット（Humanoid Robot）等のロボット装置は、既に実用化されつつある。
【０００４】
　これらのロボット装置は、産業用ロボットと比較して、例えばエンターテインメント性を重視した様々な動作等を行うことができるため、エンターテインメントロボットと呼称される場合もある。また、そのようなロボット装置には、外部からの情報及び内部の状態に応じて自律的に動作するものがある。
【０００５】
　ところで、自律型ロボット装置において、自身の周りの環境を認識して経路計画を立て、それに応じて移動する能力は言うまでもなく重要である。従来、移動ロボット装置においては、自身が移動する環境を認識するため、その環境全体の地図を保持したり、また、ロボット装置の微少移動又は姿勢の変更に際して環境地図が更新されている。
【０００６】
　従来、このような環境地図を保持する移動ロボット装置のナビゲーションシステムが下記特許文献１（Navigation system for a mobile robot）に開示されている（以下、従来例という。）。この技術によれば、ロボット装置は、ランドマークが配置された環境の地図を記憶し、環境が変わったとき等に、記憶した環境地図と、現在の環境の観測結果とを比較し、ランドマークが一致した数によりその信頼性を評価する。記憶された環境地図に存在しないランドマークを観測した場合は、その情報を追加して環境地図を更新する。
【０００７】
【特許文献１】米国特許第５３６３３０５号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００８】
　しかしながら、従来例に記載の技術は、ある１つの環境を想定し、その一つの環境地図を如何に構築するかに関し、ある１つの環境内のナビゲーション、又は自己位置同定を行うものである。即ち、例えば工場の搬送ロボットや、美術館内の案内ロボットといった限られた環境内での移動を前提としているロボットに有用であるものの、エンターテインメント用のロボット装置としては以下に示す問題点がある。即ち、エンターテインメント用のロボット装置は、その活動の場が家庭環境等であるため、途中で電源が切られる、及び持ち上げられて違う部屋に持っていかれる等、自己位置同定にとって困難な状況が日常的に多々発生する。
【０００９】
　例えば、東京のあるユーザの家の１階にある部屋Ａ、その２階にある部屋Ｂ、及び大阪にある親戚の家の部屋Ｃがあるとする。ロボット装置は、普段の日中は部屋Ａで活動しているが、夜間は部屋Ｂに運ばれ、更に、夏休みは大阪の部屋Ｃに運ばれ、その部屋で活動するものとする。ロボット装置自身が能動的にこれらの部屋Ａ〜Ｃの間を移動することは不可能であるため、例えば電源を切られた状態で搬送される。このような状況で、ロボット装置がこれらの部屋Ａ〜Ｃの間の物理的関係を獲得することは不可能である。
【００１０】
　即ち、従来例の方法では、別の部屋に搬送される等して物理的に離れた環境に移動させられた場合、そのままでは自己位置同定を行うことができず、従って、何らかの方法で明示的に環境が変化したことを指定する必要がある。
【００１１】
　また、もし仮に全ての部屋の間の物理的関係を獲得することが可能で、全てを一つの環境地図で表現できたとすると、常に極めて多くの情報を一度に扱わなくてはいけなくなり、リソースの限られたロボット装置等には不向きであり、計算量の観点から問題が発生してしまう。
【００１２】
　本発明は、このような従来の実情に鑑みて提案されたものであり、ロボット装置等の移動体における限られた計算リソース及びメモリリソースを考慮し、素早く現在の環境を同定することができ、各々の環境での自己位置同定を行うことができる環境同定装置、環境同定方法、プログラム及び記録媒体、並びに環境同定装置を搭載したロボット装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
　上述した目的を達成するために、本発明に係る環境同定装置は、１以上のランドマークが配置された環境内を移動体が移動して該環境を同定する環境同定装置であって、上記１以上のランドマークの観測結果及び上記移動体の移動状態量に基づき、１以上のランドマークの配置又は数により一意に特定可能な環境の環境地図を構築する環境地図構築手段と、上記環境地図が登録済環境地図として複数記憶された環境地図記憶手段と、上記環境地図記憶手段に記憶されている上記登録済環境地図と、上記環境地図構築手段により構築された現在の環境地図とを比較して、上記現在の環境は、上記登録済環境地図の示す環境であるか否かを判定する環境同定手段とを有することを特徴とする。
【００１４】
　また、本発明に係る環境同定方法は、１以上のランドマークが配置された環境内を移動体が移動して該環境を同定する環境同定方法であって、上記１以上のランドマークの観測結果及び上記移動体の移動状態量に基づき、１以上のランドマークの配置又は数により一意に特定可能な環境の環境地図を構築する環境地図構築工程と、記憶手段に登録済環境地図として複数記憶された上記環境地図と、上記環境地図構築工程にて構築された現在の環境地図とを比較して、上記現在の環境は、上記登録済環境地図の示す環境であるか否かを判定する環境同定工程とを有することを特徴とする。
【００１５】
　また、本発明に係るプログラムは、上述した環境同定処理をコンピュータに実行させるものであり、本発明に係る記録媒体は、そのようなプログラムが記録されたコンピュータ読み取り可能なものである。
【００１６】
　本発明においては、現在の環境における環境地図を構築する場合、１以上のランドマークの配置又は数により一意に特定可能な環境毎の環境地図を構築し、この構築した環境地図を、登録済環境地図と比較して同定する同定手段を有するため、ロボット装置が物理的に離れた複数の環境（例えば、物理的に距離が離れた場所にある部屋Ａと部屋Ｂ）を素早く識別することができ、環境全てを大きな環境地図によって保持する手法に比べて、計算負荷が少なく、更に異なる環境間の相対的な位置関係を関知する必要がない。また、全てのランドマークを認識しなくても、ある程度の情報から現在の環境を同定することができる。このように、各環境毎に一つの環境地図を構築し、記憶手段に登録された環境地図群との比較をダイナミックに行うことにより、素早く現在の環境を同定することができ、各々の環境での自己位置同定を行うことができる。
【００１７】
　本発明に係るロボット装置は、１以上のランドマークが配置された環境内を移動するロボット装置であって、上記１以上のランドマークの観測結果及び上記ロボット装置の移動状態量に基づき、１以上のランドマークの配置又は数により一意に特定可能な環境の環境地図を構築する環境地図構築手段と、上記環境地図が登録済環境地図として複数記憶された環境地図記憶手段と、上記環境地図記憶手段に記憶されている上記登録済環境地図と、上記環境地図構築手段により構築された現在の環境地図とを比較して、上記現在の環境は、上記登録済環境地図の示す環境であるか否かを判定する環境同定手段とを有することを特徴とする。
【００１８】
　本発明においては、ランドマークにより一意に特定可能である範囲を１つの環境とし、この環境を示す環境地図を記憶し、現在の環境と比較して同定することにより、一つ一つのデータ量が小さくてよく、ロボット装置における限られた計算リソース及びメモリリソースを考慮しつつ、現在移動している環境を迅速且つ効率よく同定することができる。
【発明の効果】
【００１９】
　本発明に係る環境同定装置及びこれを搭載したロボット装置は、１以上のランドマークが配置された環境内を移動体が移動して該環境を同定する環境同定装置であって、上記１以上のランドマークの観測結果及び上記移動体の移動状態量に基づき、１以上のランドマークの配置又は数により一意に特定可能な環境の環境地図を構築する環境地図構築手段と、上記環境地図が登録済環境地図として複数記憶された環境地図記憶手段と、上記環境地図記憶手段に記憶されている上記登録済環境地図と、上記環境地図構築手段により構築された現在の環境地図とを比較して、上記現在の環境は、上記登録済環境地図の示す環境であるか否かを判定する環境同定手段とを有するので、現在の環境における環境地図を構築する場合、環境内の全てのランドマークを認識しなくても、ある程度の情報から現在の環境を同定することができ、更に、全ての環境を一つの環境地図モデルで表現する手法に比べて、環境を一意に特定可能である範囲とし、これらの環境地図を記憶することにより、一つ一つの環境地図のデータ量が小さくてよいと共に、物理的に離れた場所にある場所Ａと場所Ｂとを異なる環境地図として記憶することにより、場所の相対的な位置関係を関知する必要がない。
【発明を実施するための最良の形態】
【００２０】
　１．ロボット装置の概要
　以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、ランドマークが複数配置され一意に特定可能な環境内を移動するロボット装置が複数の登録済の環境から現在の環境を同定する環境同定装置及びこれを搭載したロボット装置に適用したものである。
【００２１】
　このような環境同定装置を搭載するロボット装置としては、エンターテインメント用等の例えばヒューマノイド型の２足歩行のロボット装置、及び、４足歩行の動物型ロボット装置等を使用することができる。例えば、２足歩行のロボット装置としては、図１に示すように、ロボット装置１の体幹部ユニット２の所定の位置に頭部ユニット３が連結されると共に、左右２つの腕部ユニット４Ｒ／Ｌと、左右２つの脚部ユニット５Ｒ／Ｌが連結されて構成されるものがある（但し、Ｒ及びＬの各々は、右及び左の各々を示す接尾辞である。以下において同じ。）。また、４足歩行の動物型ロボット装置としては、「犬」を模した形状のいわゆるペットロボットとされる図２に示すようなものがある。このロボット装置１１は、胴体部ユニット１２の前後左右にそれぞれ脚部ユニット１３Ａ，１３Ｂ，１３Ｃ，１３Ｄが連結されると共に、胴体部ユニット１２の前端部及び後端部にそれぞれ頭部ユニット１４及び尻尾部ユニット１５が連結されて構成されている。
【００２２】
　これらのロボット装置１，１１は、何れも頭部ユニットにＣＣＤ（charge coupled device）／ＣＭＯＳ（complementary metal-oxide semiconductor）撮像素子を用いた小型カメラを視覚センサとして有しており、画像処理によりランドマークを検出し、ロボット装置に対する相対的なランドマークの位置を獲得することができる。本実施の形態では、これをランドマークセンサとして使用する。以下、本実施の形態においては、本発明を、ヒューマノイド型の２足歩行のロボット装置１に適用した例について説明する。
【００２３】
　図３は、本発明の実施の形態に係るロボット装置の概略を示すブロック図である。図３に示すように、ロボット装置１の頭部ユニット３には、右目及び左目にそれぞれ相当する２台のＣＣＤカメラ２００Ｒ，２００Ｌが設けられ、このＣＣＤカメラ２００Ｒ，２００Ｌの後段には、ステレオ画像処理部２１０が設けられている。２台のＣＣＤカメラ２００Ｒ，２００Ｌにより撮像された右目画像２０１Ｒ、左目画像２０１Ｌは、ステレオ画像処理部２１０に入力される。ステレオ画像処理部２１０は、各画像２０１Ｒ，２０１Ｌの視差情報（disparity data）（距離情報）を計算し、カラー画像（ＹＵＶ：輝度Ｙ、色差ＵＶ）２０２及び視差画像（ＹＤＲ：輝度Ｙ、視差Ｄ、信頼度Ｒ）２０３をフレーム毎に左右交互に算出する。ここで、視差とは、空間中のある点が左目及び右目に写像される点の違いを示し、そのカメラからの距離に応じて変化するものである。
【００２４】
　このカラー画像２０２及び視差画像２０３はロボット装置１の体幹部ユニット２に内蔵されたＣＰＵ（制御部）２２０に入力される。また、ロボット装置１の各関節にはアクチュエータ２３０が設けられており、ＣＰＵ２２０からの指令となる制御信号２３１が供給されて、その指令値に応じてモータを駆動する。各関節（アクチュエータ）には、ポテンショメータが取り付けられ、その時のモータの回転角がＣＰＵ２２０に送られる。このアクチュエータ２３０に取り付けられたポテンショメータ、足底に取り付けられたタッチセンサ及び体幹部に取り付けられたジャイロ・センサ等の各センサ２４０は、現在の関節角度、設置情報、及び姿勢情報等の現在のロボット装置１の状態を計測し、センサデータ２４１としてＣＰＵ２２０へ供給される。ＣＰＵ２２０は、ステレオ画像処理部２１０からのカラー画像２０２及び視差画像２０３と、アクチュエータ２３０の全ての関節角度等のセンサデータ２４１とが入力され、これらのデータが後述するソフトウェアにより処理され、様々な動作を自律的に行うことが可能となる。
【００２５】
　図４は、本実施の形態におけるロボット装置１を動作させるソフトウェアの構成を示す模式図である。本実施の形態におけるソフトウェアは、オブジェクト単位で構成され、ロボット装置１の位置、移動量、周囲の障害物、及び環境地図等を認識し、ロボット装置１が最終的に取るべき行動についての行動列を出力する各種認識処理等を行うものである。なお、ロボット装置１の位置を示す座標として、例えば、後述するランドマーク等の特定の物体等に基づく所定位置を座標の原点としたワールド座標系（以下、絶対座標ともいう。）と、ロボット装置１自身を中心（座標の原点）としたロボット中心座標系（以下、相対座標ともいう。）との２つの座標を使用する。
【００２６】
　オブジェクト同士は、非同期に通信し合うことで、システム全体が動作する。各オブジェクトはメッセージ通信と共有メモリを使用したオブジェクト間通信方法によりデータの受け渡し及びプログラムの起動（Ｉｎｖｏｋｅ）を行っている。図４に示すように、本実施の形態におけるロボット装置１のソフトウェア３００は、ロボット装置１の移動量を算出する移動量算出手段（キネマティックオドメトリ（Kinematics Odometry））ＫＩＮＥ３１０、環境内の平面を抽出する平面抽出部（Plane Extractor）ＰＬＥＸ３２０、環境内の障害物を認識する障害物グリッド算出部（Occupancy Grid）ＯＧ３３０、人工的なランドマークを含む環境において、自身のセンサ情報及び移動量算出手段から供給される自身の動作情報によって、ロボット装置１の自己位置（位置及び姿勢）を同定するランドマークセンサ部（Landmark Sensor）ＣＬＳ３４０、ロボット中心座標を絶対座標に変換する絶対座標算出部（Localization）ＬＺ３５０及びロボット装置の取るべき行動を決定する行動決定部（Situated behavior Layer）ＳＢＬ３６０から構成され、各オブジェクト単位にて処理がなされる。
【００２７】
　ここで、ロボット装置１が自律的に動作するためには、ロボット装置１が現在おかれている環境を認識する必要がある。本実施の形態においては、先ず、ロボット装置１が自律的に動作するための各処理のうち、ロボット装置１が現在移動している環境を同定するための環境同定装置について説明する。ロボット装置１を自律的に動作させる上記ソフトウェアについての詳細な説明、並びにロボット装置１の構成及び動作に関する詳細な説明は後述する。
【００２８】
　２．環境同定装置
　本実施の形態の環境同定装置は、環境内に設置されたランドマーク（環境認識用対象物又は目印対象物）を認識するランドマークセンサを装備したロボット装置１（移動体）において、ランドマークの観測に基づき環境地図を構築し、この環境地図を既知の複数の環境地図（登録済環境地図）と比較することによって、ロボット装置１が現在置かれている環境を同定するものである。既知の環境地図は、ユーザ等により作成されたものであっても、ロボット装置１によって学習されたものであってもよい。環境地図は個々のランドマークの位置（ｘ，ｙ）を有しており、環境地図の比較は、現在観測している環境地図のランドマークの位置を既知の環境地図におけるランドマークの位置と比較し、両者の類似性を評価することにより行われる。
【００２９】
　環境内には、形状・色等が異なる複数種の人工的なランドマーク（天然物であってもよい）を配置し、ロボット装置１はこの環境の中を動き回りながらランドマークを観測し、自分自身の移動量等からランドマークの位置を推定する。観測したランドマークの位置情報と、ロボット装置１自身の移動量から、環境内のランドマークの相対的な位置関係を推定していく。本実施の形態においては、このランドマークの位置関係を環境地図という。仮に、全く同じ配置のランドマークを有する環境が２つ以上存在しないと仮定すると、このランドマークの位置関係によって、その環境を一意に特定することができる。一意に特定可能な環境として、具体的には、形状及び／又は色等により環境内では一意に特定可能な人工的なランドマークを複数配置することにより、一意に特定可能な環境を作成することができる。ロボット装置１は、獲得したランドマークの位置関係、即ち環境地図と、環境同定装置の環境地図記憶部に記憶されている過去の環境地図情報群とを比較することによって、ロボット装置１が現在置かれている環境を同定することができる。以下、本実施の形態の環境同定装置について具体的に説明する。
【００３０】
　図５は、本発明の実施の形態に係る環境同定装置を示すブロック図である。図５に示すように、本実施の形態の環境同定装置４００は、現在の環境内のランドマークの観測結果及びロボット装置１自身の移動状態量が供給され、このランドマーク及び移動状態量に基づいて、ロボット装置１が現在おかれている環境のランドマーク情報を有する環境地図を構築する環境地図構築部（環境地図構築手段）(Map Building）４０２と、環境内のランドマークの位置情報とその環境に一意に割り振られる環境ＩＤを一つの組として、複数の環境地図（登録済環境地図）及びその環境ＩＤからなるデータベースを有する環境地図記憶部（環境地図記憶手段）（Database of Environment）４０３と、環境地図構築部４０２によって構築される現在ロボット装置１が置かれている環境の環境地図と、環境地図記憶部４０３に記憶された既知の環境地図との類似度を比較することによって、ロボット装置１が現在置かれている環境を特定する環境同定部（環境同定手段）（Environment Identification）４０４と、新しい環境を認識するためにロボット装置１を歩き回らせる環境探索部（環境探索手段）（Exploration/Robot Control）４０５とから構成される。
【００３１】
　上述したように、図３に示すＣＣＤカメラ２００Ｌ，２００Ｒによって取り込まれた映像は、ステレオ画像処理部２１０に入力され、左右画像２０１Ｒ，２０１Ｌの視差情報（距離情報）からカラー画像（ＹＵＶ）２０２及び視差画像（ＹＤＲ）２０３が算出されてＣＰＵ２２０に入力される。また、ロボット装置１に複数個設けられた各センサからのセンサデータ２４１が入力される。これらの視差情報及び視差画像からなる画像データ３０１と、センサデータ３０２とが移動量算出手段ＫＩＮＥに入力される。
【００３２】
　移動量算出手段ＫＩＮＥは、画像データ３０１及びセンサデータ３０２からなる入力データに基づいてロボット中心座標系の移動量（オドメトリ）を算出する。また、ロボット装置１は、自身の姿勢方向を検出し、移動量と共に姿勢方向を示す情報が環境地図構築部４０２に供給される。また、環境内に配置されたＣＣＤカメラ２００Ｌ，２００Ｒによって観測されたランドマークのカラー画像（ＹＵＶ）２０２及び視差画像（ＹＤＲ）２０３が入力されランドマークを認識するランドマーク認識手段（図示せず）から、ランドマークの観測結果（以下、ランドマーク情報という。）４１１が供給される。環境地図構築部４０２は、このランドマーク情報４１１及びロボット装置１の移動量及び姿勢方向を示す情報（以下、移動状態量という。）４１２からなる入力情報からロボット装置１が現在置かれている環境地図４１３を構築し、環境同定部４０４に供給する。
【００３３】
　環境同定部４０４は、ロボット装置１が現在置かれている環境、即ち、環境地図構築部４０２から供給された環境地図４１３と、環境地図記憶部４０３に記憶されている複数の既知の環境地図（登録済環境地図）とを比較することによって、ロボット装置１が現在置かれている環境を特定する。この既知の環境地図は、上述したように、ユーザ等により作成されたものであっても、環境地図構築部４０２により構築されたものであってもよい。ロボット装置１が置かれている現在の環境が、環境地図記憶部４０３に記憶されている登録済の環境地図に一致した場合は、この登録済の環境地図に対応して記憶されている環境ＩＤ（環境識別情報）４１４を出力する。環境地図記憶部４０３に記憶されている複数の登録済環境地図と一致した場合は、現在の環境が同定できなかったものとして、不明確（曖昧）であることを示す（ambiguous）信号を出力する。また、環境地図記憶部４０３に記憶されている登録済の環境地図と一致するものがなかった場合にも現在の環境が同定できなかったものとして、現在の環境が不明であることを示す（unknown）信号を出力する。
【００３４】
　環境地図記憶部４０３は、環境内のランドマークの位置情報、及び環境に一意に割り振られる環境ＩＤが記憶された環境地図データベース（図示せず）を有する。また、環境探索部４０５は、新しい環境を認識するために、例えば外部からのリモートコントロール等によりロボット装置１に環境内を歩き回らせ、環境内のランドマークを認識させるものである。
【００３５】
　環境地図記憶部４０３の環境地図データベースには、環境内のランドマークを識別するランドマーク識別情報及び位置情報、並びにこの環境に対応して割り当てられた環境ＩＤが予め入力されていてもよく、又は環境探索部４０５により、ロボット装置１自身が環境地図データベースを作成するようにしてもよい。
【００３６】
　環境内には、上述したように、形状及び色の違いにより複数種のランドマークを配置し、ロボット装置１は、自身に備えられたＣＣＤカメラ２００Ｒ，２００Ｌ等のランドマークセンサにより、ランドマークの色及び形を検出・認識することによって、環境地図の構築、及び環境同定を行うことができる。例えば、決められた個数のランドマークが配置された環境を１つの環境として環境ＩＤを割り付けて管理することで、環境データベースの管理が容易になる。
【００３７】
　例えば図６に示すように、１つの家にリビング４１５、寝室４１６、台所４１７及び遊び部屋４１８の４部屋があった場合、ロボット装置１は、家全体を１つの環境地図で管理するのではなく、各部屋４１５〜４１８を１つの環境として環境ＩＤを割り付け、４つの環境地図で管理する。なお、各部屋４１５〜４１８には予め決められた個数のランドマークが配置されており、そのランドマークの配置又は数により、環境（この場合、環境地図）は、一意に特定可能であるものとする。
【００３８】
　このように、周囲の環境を１つの環境地図で管理するのではなく、一意に特定可能な範囲で分割された複数の環境地図として記憶することにより、１つ１つのデータが小さくなり、データの更新、追加等における計算量を低減することができる。本実施の形態における一意に特定可能な環境は、複数のランドマークを配置し、その配置の仕方等によって一意に特定することができるものである。このとき、ランドマークが１つの環境内にて一意に特定可能であると、環境の同定が容易となる。
【００３９】
　図７（ａ）は、ロボット装置１が１つの環境内（例えば図６のリビング４１５内）を探索している様子を示す模式図、図７（ｂ）は、本実施の形態におけるランドマークを示す模式図である。図７（ａ）に示すように、例えば、環境４２０内の机、柱、又は壁等のランドマーク貼り付け（配置）可能な対象物４２２ａ〜４２２ｅに、人工的な複数種のランドマークＬが複数配置され、ロボット装置１は、この環境４２０の中を歩き回り、ＣＣＤカメラ２００Ｒ，２００Ｌ等により獲得したランドマークＬの観測と、ロボット装置１自身の位置（ｘ，ｙ，θ）とから、ロボット装置１自身が現在置かれている環境のランドマークＬの位置関係を獲得していく。ここで、ロボット装置位置（ｘ，ｙ，θ）は、所定の位置を基準（原点）とした座標系におけるロボット装置１の位置（ｘ，ｙ）と、所定の方角Ｄを基準（０°）としてロボット装置１の姿勢方向の角度（θ）とで表現することができる。ロボット装置１は、自身のＣＣＤカメラ２００Ｒ，２００Ｌ及びセンサ２４０等から上述した移動量算出手段により、自身の移動量（ｄｘ，ｄｙ）及び移動角（ｄθ）を算出することにより、自身の位置（ｘ，ｙ，θ）を把握することができる。
【００４０】
　ランドマークＬは、図７（ｂ）に示すように、例えば、四角形、円形及び三角形の幾何学パターン４３１〜４３３が所定の配置位置となるよう組み合わされたもので、その配色により、互いに識別可能なものを使用することができる。環境４２０内には、このような複数種の人工的なランドマークが複数配置され、これにより、環境４２０が一意に特定可能なものとなっている。ロボット装置１が環境４２０を同定する際は、自身の移動状態量からロボット装置１自身が現在置かれている環境のランドマークの位置関係を獲得し、このランドマークＬの種類及びその位置関係を、環境地図記憶部４０３に記憶されている過去（登録済）の環境地図におけるランドマークＬの種類及びその位置と比較することにより、現在の環境が既に登録済の環境であるか否かを判断する。
【００４１】
　また、現在の環境が登録されていない新しい環境である場合、又は環境地図データベースを作成する場合等は、環境探索部４０５により、自身の移動量からロボット装置１自身が現在置かれている環境の全てのランドマークの位置関係を獲得し、新たに探索した環境毎に識別可能な例えばＥｎｖ１、Ｅｎｖ２等の環境ＩＤを付して、探索した新しい環境内の全てのランドマークＬの種類及びその位置関係を、この新しい環境に対応する環境ＩＤと共に環境地図記憶部４０３に記憶する。
【００４２】
　２−１．ランドマーク
　次に、環境内に配置されるランドマークについて説明する。図８は、ランドマークの一例を示す模式図である。本実施の形態においては、三角、四角、丸の３つの形状の幾何学パターンに赤、青、黄、及び緑の４つの色を使用し、これらの形状及び色を組み合わせることにより、一意に特定可能（unique）な複数種のランドマークを得ることができる。図８は、左に四角形、中央に円形、右に三角形の幾何学パターンを配置し、各パターンの位置関係を固定して配置して、各パターンの色を４色、組み合わせることによって、合計２４種類のランドマークを作成した例を示す。このように、複数の幾何学パターンの位置関係及び配色により、異なるランドマークを形成することができる。
【００４３】
　また、図８においては、例えば、ランドマークＬ１とランドマークＬ２とでは、四角形、円形、三角形の位置関係は同じであるものの、その配置される位置がわずかに異なる。ロボット装置１は、これらの位置の違いも認識することが可能であり、実際には、無数の異なるランドマークを作成し、ロボット装置１に認識させることが可能である。ロボット装置１は、このような３つの形状パターンを観測した場合にランドマークとして認識するよう設定されているか、又は、使用されるランドマークを予め登録しておくこと等により、ランドマークを観測して識別することができる。また、ロボット装置１は、図８に示すようなランドマークの場合は、ランドマークの方向も検出可能であり、ランドマークの位置だけではなくその方向も検出することにより、より少ないランドマークで更に正確に環境を識別して特定することができる。
【００４４】
　次に、本実施の形態の環境同定装置４００の処理の流れを説明する。図９は、本実施の形態の環境同定方法を示すフローチャートである。図９に示すように、環境地図構築部４０２にて、先ず、ランドマークを観測、又は、ロボット装置１自身の動作を検出した場合（ステップＳ１）、環境地図の内部モデルを更新する（ステップＳ２）。ここで、環境地図は、ロボット装置１及びランドマークの状態ベクトルｌを使用して下記（１）のように示すものとする。この環境地図及び状態ベクトルについての詳細は後述する。
【００４５】
【数１】
2004110802.tif 000003
【００４６】
　この環境地図が環境地図構築部４０２から環境同定部４０４に供給されると、環境同定部４０４は、環境地図記憶部４０３の環境データベースを検索し、この環境地図と最も適合する環境地図とその環境ＩＤ(Environment ＩＤ)を探し出す（ステップＳ３）。
【００４７】
　適合する環境地図及び環境ＩＤが環境データベースに登録されていた場合（ステップＳ４：ＮＯ）、この環境ＩＤを現在ロボット装置１が置かれている環境として出力する（ステップＳ５）。一方、適合する環境地図及び環境ＩＤがデータベース４０６に登録されていない場合（ステップＳ４：ＹＥＳ）、環境探索部４０５にて環境探索行動中か否かが判断される（ステップＳ６）。環境探索行動中の場合（ステップＳ６：ＹＥＳ）、直前に出力した環境ＩＤを現在、ロボット装置１が置かれている環境として出力する（ステップＳ８）。一方、環境探索行動中でない場合、即ち、環境探索を終了している場合（ステップＳ６：ＮＯ）、その環境地図を、新しい環境地図として環境地図記憶部４０３の環境データベースに追加する（ステップＳ７）。
【００４８】
　ステップＳ６における探索行動状態は、環境探索部４０５によって制御され、ロボット装置１が環境内の全てのランドマークを訪問したかどうかを検出し（ステップＳ９）、未だ、その環境内のすべてのランドマークを観測していない場合には、環境探索行動中となる。
【００４９】
　２−２．環境地図構築部
　次に、図３に示す各処理部について更に詳細に説明する。先ず、環境地図構築部４０２における環境地図構築方法について説明する。環境地図構築部４０２は、ランドマークの観測情報とロボット装置１自身の動作の観測情報（移動状態量）を利用して、ロボット装置１が現在置かれている環境の環境地図（Environment Map）Ｎを構築する。
【００５０】
　ここで、環境地図構築部４０２が環境を認識する際に、ランドマークの観測情報及びロボット装置１の自身の動作観測情報を利用して環境認識する理由について説明する。なお、図１０乃至図１２においては、ランドマークＬとして図８に示すものとは異なり、外円及び内円からなる円形で、外円と内円とが異なる色を有するパターンをランドマークとして使用した例を示すが、このようなランドマークも色の組み合わせにより、複数種のランドマークを得ることができ、これらを複数組み合わせて配置することによって一意に特定可能な環境を形成することができる。
【００５１】
　例えば、図１０に示すように、６つのランドマークＬを有する環境の中心位置にロボット装置４２１が置かれていた場合に、ロボット装置４２１が向く方向（姿勢方向）を変更すると、ランドマークＬの観測結果のみを使用してランドマークの位置を把握しようとすると、ロボット装置４２１には、そのカメラで観測されたランドマークの位置情報が時系列で入力されるため、図１１に示すように、自身の移動に伴い、同一のランドマークにおいてもその位置がずれて観測されてしまい、ランドマークの位置を特定することができない。そこで、ロボット装置４２１のランドマーク観測結果と共にロボット装置４２１の移動量及び姿勢方向の移動状態量を考慮することで、図１２に示すように、ある程度観測を続けると、同一のランドマークの位置が収束して、環境を認識することができるようになる。
【００５２】
　ここで、ランドマークの観測情報は、ロボット装置１に備えられたカメラによる観測結果として得ることができ、ロボット装置１の移動量及び姿勢方向である移動状態量は、ロボット装置１自身が検出することができるが、これらの情報には、このカメラの観測結果誤差、並びの移動量及び姿勢方向の検出誤差等が含まれる。
【００５３】
　そこで、本実施の形態は、この環境地図を、ロボット装置１の状態（状態量）ｌｒとｎ個のランドマークの状態（状態量）ｌＬ＝（ｌ１，ｌ２，・・・，ｌｎ）Ｔの推定値によって構成される状態ベクトルｌ＝（ｌｒ，ｌ１，ｌ２，・・・，ｌｎ）Ｔによって表現する。また、ロボット装置の状態ｌｒはロボット装置１の位置・姿勢を用いてｌｒ＝（ｘ，ｙ，θ）Ｔ、各ランドマークの状態ｌｉはランドマークのワールド座標系における位置を用いてｌｉ＝（ｘｉ，ｙｉ）と表す。
【００５４】
　そして、これらの状態量を統計的に扱うため、ガウス分布を有する確率密度関数ｐ（ｌ）によって表現し、環境地図を以下に示す記号によって表すこととする。
【００５５】
【数２】
2004110802.tif 000004
【００５６】
　ここで、環境地図を求めることは、この状態ベクトルｌ＝（ｌｒ，ｌ１，ｌ２，・・・，ｌｎ）Ｔを同定することであるため、本実施の形態では、この問題を、ロボット装置１の動きを入力とし、ランドマークの観測を観測量とする、拡張カルマンフィルタ（Extended Kalman Filter）モデルを用いた状態ベクトルｌの同定問題に帰着した。
【００５７】
　２−２−１．拡張カルマンフィルタ
　以下、拡張カルマンフィルタについて説明する。拡張カルマンフィルタモデルでは、ある状態ｌにおいて、ある入力ｍを行った場合の理論的な状態遷移を与える関数（遷移関数）をＦ（ｌ，ｍ）、ある状態ｌにおいてある既知の観測情報ｏ（ランドマークの位置等）の理論値を与える関数（観測関数）をＨ（ｌ）、状態ｌ及び観測情報ｏへのノイズ成分（中央値０のガウス分布を持つノイズ成分を仮定）をｗ，ｖとしたときに、状態ｌ及び観測情報ｏのモデルを下記式（３），（４）で表す。
【００５８】
【数３】
2004110802.tif 000005
【００５９】
　図１３は、拡張カルマンフィルタ(Extended Kalman Filter)モデルの模式図である。図１３に示すモデルにおいて、入力情報ｍ、観測情報ｏによって状態量ｌを更新する更新則について説明する。
【００６０】
　ある時点での状態ｌが、下記（５），（６）で推定されているものとする。
【００６１】
【数４】
2004110802.tif 000006
【００６２】
　先ず、状態ｌにおいて、ある入力ｍを観測した場合、状態ｌの中央値、共分散行列は下記式（７），（８）により更新する。
【００６３】
【数５】
2004110802.tif 000007
【００６４】
　一方、状態ｌにおいて、ある観測情報ｏを観測した場合、状態ｌの中央値、共分散行列は下記式（９），（１０）により更新する。
【００６５】
【数６】
2004110802.tif 000008
【００６６】
　２−２−２．環境地図更新方法
　次に、環境地図を計算する処理の流れを説明する。図１４は、環境地図を更新しながら環境地図を構築する方法を示すフローチャートである。環境地図には、初期値が入力されているものとする。ロボット装置１自身の動きが観測された場合（ステップＳ１１）、環境地図のロボット装置１の状態ｌｒを更新する（ステップＳ１２）。また、ランドマークを観測した場合（ステップＳ１３）、観測したランドマークが、現在の環境地図のランドマークの状態ｌＬに存在しない新しいランドマークであるかどうかを判断する（ステップＳ１４）。そして、観測されたランドマークが新しいランドマークである場合（ステップＳ１４：ＹＥＳ）、ランドマーク状態ｌＬに新しいランドマーク状態ｌｎ＋１を追加する（ステップＳ１５）。一方、観測されたランドマークが、新しいランドマークでない場合（ステップＳ１４：ＮＯ）、再観測されたランドマークの状態ｌｉを更新する（ステップＳ１６）。この処理を繰り返すことによって、環境地図を構築することができる。
【００６７】
　上記のステップＳ１２，１５，１６において、即ち、ステップＳ１２において、ロボット装置１が自身の動作を観測したとき、ステップＳ１５において、新規ランドマークを観測したとき、及びステップＳ１６において、ランドマークを再観測したときに環境地図の再計算が行われる。次に、この環境地図の更新方法について詳細に説明する。
【００６８】
　Ａ．ロボット装置が自身の動作を観測した場合（Robot Motion Observation）
　ロボット装置１が動作した場合は、拡張カルマンフィルタの入力情報による更新則により、状態ベクトルの中央値、共分散行列を次のように更新する。観測されたロボット装置１の移動量をｍ＝（ｘｍ，ｙｍ，θｍ）とすると、上述のように、ロボット装置１の移動量の観測量も統計的に扱うため、ガウス分布を持つ確率密度関数ｐ（ｍ）によって下記式（１１）のように表現することができる。
【００６９】
【数７】
2004110802.tif 000009
【００７０】
　ロボット装置１の状態ｌｒにおいて、移動量ｍの動作を行った後の、ロボット装置１の状態ｌｒ’は、幾何学的に下記式（１２）で求めることができる。
【００７１】
【数８】
2004110802.tif 000010
【００７２】
　上記式（１２）の右辺を関数ｆ（ｌ，ｍ）とする。ロボット装置１の動きによって、ランドマークの状態ｌＬ＝（ｌ１，ｌ２，・・・，ｌｎ）Ｔは影響を受けないので、環境地図の状態ベクトルｌ＝（ｌｒ，ｌ１，ｌ２，・・・，ｌｎ）Ｔは、変更されない。従って、状態ベクトルｌの中央値は、下記式（１３）となり、共分散行列は、下記式（１４）となる。これらの計算にかかる計算コストはＯ（ｎ）である。
【００７３】
【数９】
2004110802.tif 000011
【００７４】
　Ｂ．新規ランドマークを観測した場合（New Landmark Observation）
　新しいランドマークを観測した場合、拡張カルマンフィルタの入力情報による更新則により、状態ベクトルｌの中央値、共分散行列を次のように再計算することで、環境地図を更新する。
【００７５】
　新しく観測されたランドマークのロボット装置１からの相対的な位置をｏ＝（ｘ，ｙ）とすると、前述のように、ランドマークの位置の観測量も統計的に扱うため、ガウス分布を持つ下記式（１５）に示す確率密度関数ｐ（ｏ）によって表現する。
【００７６】
【数１０】
2004110802.tif 000012
【００７７】
　ロボット装置１の状態ｌｒ＝（ｘ，ｙ，θ）Ｔにおいて、新しいランドマークｏ＝（ｘ，ｙ）を観測した場合、ランドマークのワールド座標系での位置ｌｉは、幾何学的に下記式（１６）で求めることができる。
【００７８】
【数１１】
2004110802.tif 000013
【００７９】
　上式の右辺を関数ｇ（ｌ，ｏ）とする。新しいランドマークの観測によって、ロボット装置１の状態ｌｒと既知のランドマークの状態ｌＬ＝（ｌ１，ｌ２，・・・，ｌｎ）Ｔは影響を受けない。ランドマークの状態に新たにｌｎ＋１を追加する。従って、状態ベクトルｌの中央値は、下記式（１７）となり、共分散行列は下記式（１８）となる。これらの計算にかかかる計算コストはＯ（ｎ）である。
【００８０】
【数１２】
2004110802.tif 000014
【００８１】
　Ｃ．ランドマークの再観測(Landmark Re-Observation)
　既知のランドマークを再観測した場合、拡張カルマンフィルタの出力情報による更新則により、状態ベクトルｌの中央値、共分散行列を次のように再計算することで、環境地図を更新する。
【００８２】
　まず、再観測されたランドマークのロボット装置１からの相対的な位置をｏ＝（ｘｉ，ｙｉ）とすると、前述のように、ランドマークの位置の観測量も統計的に扱うため、ガウス分布を有する下記式（１９）に示す確率密度関数ｐ（ｏ）によって表現することができる。
【００８３】
【数１３】
2004110802.tif 000015
【００８４】
　次に、拡張カルマンフィルタの出力情報による更新則により、以下のように過程すると、状態量及び共分散行列は夫々下記式（２０），（２１）で更新される。
【００８５】
【数１４】
2004110802.tif 000016
【００８６】
　ここで、ある状態におけるランドマークの状態ｌｉの観測値の理論値は、幾何学的に下記式（２２）により求めることができる。この計算コストはＯ（ｎ２）である。
【００８７】
【数１５】
2004110802.tif 000017
【００８８】
　２−２−３.環境地図構築例
　図１５及び図１６は、ロボット装置１が環境内を歩き回ってランドマークの位置を観測して構築した環境地図を示す図である。図１５は、同一形状（外円及び内円からなる）ランドマークを使用した場合であり、図１６は、図８に示す異なる形状の幾何学パターンを組み合わせて得られるランドマークを使用した場合を示す。
【００８９】
　図１５に示す環境４４０において、Ｌ１１１〜Ｌ１１６は、本来のランドマークの配置位置を示している。このようなランドマークＬ１１１〜Ｌ１１６が配置された環境４４０内の各ランドマークを観測し、ロボット装置１が上述の方法によりランドマーク位置を推定した結果、得られたランドマーク位置をＬ１２１〜Ｌ１２６に示す。この推定誤差は１０ｃｍ程度であった。
【００９０】
　また、図１６に示す環境４５０においても、図１５の場合と同様に、ほぼ正確に環境内のランドマーク位置を推定することができる。また、図１６に示すように、図８に示すような異なる形状の幾何学パターンを組み合わせたランドマークを使用すると、円形の場合と異なり、そのランドマークが向く方向も検出することができ、ロボット装置１は、より精度が高い環境地図を構築することができる。
【００９１】
　２−３．環境同定部(Environment Identification)
　次に、環境同定部４０４の環境同定方法について説明する。環境同定部４０４では、環境地図構築部４０２から得られる環境地図（map）を、環境地図記憶部４０３の環境地図データベースの環境地図（登録済環境地図）と比較することによって、ロボット装置１が現在置かれている場所を同定する。図１７は、環境同定部４０４の環境同定方法を示すフローチャートである。
【００９２】
　まず、環境地図が入力されると、その環境地図内のランドマークの数が、例えば２つ等、環境内のランドマークの最小設定数（ｍｉｎ）より大きいか否かが判断される（ステップＳ２１）。入力された環境地図内のランドマーク数が最小設定数（ｍｉｎ）より大きい場合（ステップＳ２１：ＹＥＳ）、ランドマークの個数が前回と変化したか否かが判定され（ステップＳ２２）、前回とランドマークの個数が変化している場合（ステップＳ２２：ＹＥＳ）は、その環境地図を環境地図データベースに登録されている環境地図群と比較し、入力された環境地図に類似した環境地図を探す（ステップＳ２３）。そして、類似した環境地図が一つである場合（ステップＳ２４：ＹＥＳ）、環境ＩＤとしてステップＳ２４で適合した環境地図の環境ＩＤを代入する（ステップＳ２５）。
【００９３】
　一方、ステップＳ２４にて、類似した環境地図が１つでない場合、類似した環境地図が複数あるか否かが判定され（ステップＳ２７）、ステップＳ２７にて複数ある場合は、環境ＩＤとして曖昧（ambiguous）を代入する（ステップＳ２８）。一方、ステップＳ２７にて、一致した環境地図が複数存在しない場合、即ち、類似した環境地図が一つもなかった場合には、環境ＩＤとして不明（unknown）を代入する（ステップＳ２９）。
【００９４】
　また、ステップＳ２１において、入力された環境地図内のランドマーク数がランドマークの最小設定数（ｍｉｎ）よりも少ない場合（ステップＳ２１：ＮＯ）にも、ステップＳ２９に進み、環境ＩＤとして不明（unknown）を代入する。
【００９５】
　また、ステップＳ２１において、入力された環境地図内のランドマーク数が最小設定数よりも大きい場合でも、ステップＳ２２において、ランドマークの数が前回と変化していないと判定された場合（ステップＳ２１：ＹＥＳ，ステップＳ２２：ＮＯ）は、入力された環境地図が変化しているか否か、即ち、ランドマークの位置が変化しているか否かを判定し（ステップＳ２６）、変化している場合（ステップＳ２６：ＹＥＳ）には、ステップＳ２３に進み環境地図のマッチングを行う。一方、環境地図が変化してない場合（ステップＳ２６：ＮＯ）には、ステップＳ３０へ進む。
【００９６】
　ステップＳ３０では、探索行動中か否かと前回の環境ＩＤが不明（unknown）であったか否かを判断する。探索行動中が終了しており、且つ、前回の環境ＩＤが不明（unknown）であった場合（ステップＳ３０：ＹＥＳ）、入力された環境地図に対する新しい環境ＩＤと併せて環境地図データベースに登録し（ステップＳ３１）、環境ＩＤには新しく登録した環境ＩＤを代入する（ステップＳ３２）。一方、ステップＳ３１において、探索行動中であったり、前回の環境ＩＤが不明（unknown）でなかったりした場合は、環境ＩＤとして、前回の環境ＩＤを代入する（ステップＳ３３）。
【００９７】
　そして、最後に、ステップＳ２５、ステップＳ２８、ステップＳ２９、ステップＳ３２、又はステップＳ３３にて代入された環境ＩＤを出力する。ステップＳ２１及びステップＳ２２の条件分岐は、入力された環境地図が前回と変化していない場合に、ステップＳ２４の環境地図のマッチング処理をする手間を省くためである。
【００９８】
　また、ステップＳ３０では、後述する環境探索部４０５がロボット装置１の探索行動状態の状態を管理し、環境探索部４０５により、ランドマークの探索行動が終了した場合に立てられる探索終了フラグにより探索終了か否かを判定する。
【００９９】
　２−３−１．類似性の評価方法
　次に、ステップＳ２４の処理において、データベースの環境地図と入力された環境地図の類似性を評価する方法について述べる。
【０１００】
　本実施の形態においては、環境地図間の類似性を数値化するために、マハラノビス（Mahalanobis）距離Ｗを用いた。マハラノビス距離とは、２つの正規分布Ｘ，Ｙ間の距離を下記式（２３）で定義したものである。最小マハラノビス距離Ｗをマッチング誤差として使用し、この最小マハラノビス距離Ｗが所定の閾値以下であるか否かにより、類似性を判定することができる。下記（２３）において、ｒがマハラノビス距離を示す。
【０１０１】
【数１６】
2004110802.tif 000018
【０１０２】
　ここで、二つの環境地図（ＭＡＰ１，ＭＡＰ２）を下記（２４），（２５）のように表すときの２つの環境地図間の距離（マッチング誤差）Ｗを上記式（２３）により求める。
【０１０３】
【数１７】
2004110802.tif 000019
【０１０４】
　環境地図のワールド基準系の座標は、地図毎に異なるため、これらの二つの分布の間には、互いに回転、併進移動の自由度が存在する。従って、ＭＡＰ１の座標系と、ＭＡＰ２の座標系との回転移動（回転角）をω、併進移動をＴとすると、ＭＡＰ１におけるＭＡＰ２は、下記式（２６），（２７）と表すことができる。
【０１０５】
【数１８】
2004110802.tif 000020
【０１０６】
　これを、上記式（２３）に代入すると、ＭＡＰ１，ＭＡＰ２間の距離（マッチング誤差）Ｗは、下記式（２８）となる。
【０１０７】
【数１９】
2004110802.tif 000021
【０１０８】
　マッチング誤差Ｗを求めるためには、最終的にはマッチング誤差Ｗを最小にする回転角ω、併進移動Ｔを求める必要がある。これは、非常に困難な問題であるが、仮に、共分散値が一定である、即ち下記式（２９）を仮定すると、上記式（２８）は下記式（３０）で近似でき、容易に解くことができる。これにより、最小となるマハラノビス距離Ｗを求め、上述のステップＳ２３のマッチングにおけるマッチング誤差として使用し、マッチング誤差Ｗが所定の閾値以下である場合に、一致であると判定する。
【０１０９】
【数２０】
2004110802.tif 000022
【０１１０】
　２−４．環境地図記憶部(Database of Environment)
　次に、環境地図記憶部４０３について説明する。環境地図記憶部４０３では、環境地図構築部４０２が出力する環境地図に環境ＩＤを割り当てて、これらをセットにして記憶する。環境ＩＤには、図１８に示すように、各環境（例えば、Ｅｎｖ１〜Ｅｎｖ３）に対して、重複しない正の整数（例えば１〜３）を設定する。
【０１１１】
　また、数字で表される環境ＩＤに対して、「タロウの部屋」、「花子の部屋」、「トイレ」（Ｗ．Ｃ．）、「台所」といった環境名を付与することもできる。環境名は、ロボット装置とユーザとの対話等によって獲得する。以下にロボット装置とユーザとの対話例を示す。
対話例：
　ロボット装置：「ここの名前を教えて」
　ユーザ：「ここは、タロウの部屋、だよ」
　ロボット装置：「わかった。タロウの部屋、だね」
【０１１２】
　環境地図及び環境ＩＤは、電源を切っても記憶しておく必要があるため、ロボット装置１本体のフラッシュメモリにファイルとして保存しておき、再起動時には、このファイルを読み出すことによって、環境地図データを復元する。また、これらの環境地図は、すべてロボット装置１が動的に獲得したものである必要はなく、ユーザが他の手段で編集、又は登録してもよい。
【０１１３】
　２−５．環境探索部(Exploration/Robot Control)
　次に、環境探索部４０５について説明する。環境探索部４０５では、環境地図を構築するために充分なランドマークを観測するために、ロボット装置１の行動を制御しランドマークを探すとともに、上述したように、探索行動状態を通知する。
【０１１４】
　本実施の形態における環境同定方法においては、環境内の全てのランドマークを観測し終わるまでは、正確な環境同定をすることが難しい場合がある。従って、何らかの方法で、環境内の全てのランドマークを観測し終わったことを知る必要がある。環境内の全てのランドマークを観測し終わったことを知る方法としては、環境内に予め配置されるランドマークの個数を設定しておき、ロボット装置１が設定された個数のランドマークを観測した時点で探索を終了する方法、所定の時間内環境内をランダムに移動させてランドマークを観測させ、探索を終了する方法、所定の位置で３６０°回転することによりランドマークを観測して探索を終了する方法、現在観測しているランドマーク位置まで移動し、その位置で３６０°回転し、更に、その位置から観測されるランドマーク位置まで移動し、その位置で再び３６０°回転するというような動作を繰り返し、全てのランドマークを回るまで観測を続け探索を終了する方法、若しくはオペレータによりロボット装置１をリモートコントロールして、全てのランドマークを観測させ探索を終了する方法、又はこれらの方法を組み合わせる等の方法がある。
【０１１５】
　ここでは、ロボット装置１とユーザとの対話により探索終了を知る方法、環境内のランドマークの個数を予め設定しておく方法、所定の時間内環境内をランダムに移動する方法、所定の位置で３６０°回転する方法、及び発見したランドマーク全てを訪問する方法の５つの特徴的な例で実験を行った結果について説明する。
【０１１６】
　２−５−１．ユーザによる指示対話
　ロボット装置１がユーザのリモートコントロールによる指示、又はロボット装置１の意思によって環境内を動き回っている状況において、ユーザとの対話によって、環境内のランドマークをすべて観測し終わったことを認識する。
【０１１７】
　ロボット装置１とユーザとの対話によるシーケンス例を以下に示す。
対話例：
　ロボット装置：「ランドマークは４つでいいの？」
　ユーザ：「違うよ。ランドマークの数は、６個だよ。」
　ロボット装置：「じゃあと２つだね。」
　ユーザ：「そうだよ。」
　ロボット装置：ランドマークを探しに行く。
ロボット装置：「ランドマークは６つでいいの？」
　ユーザ：「そうだよ。」
【０１１８】
　２−５−２．環境内のランドマークの数を固定した場合
　ある一つの環境内に存在するランドマークの数Ｎを固定し、ロボット装置１はＮ個のランドマークを発見するまでは、探索行動状態であるとする。ロボット装置１の環境地図に含まれるランドマークの数がＮ個以上になった場合、探索行動状態から抜け、探索終了フラグを立てる。例えば図１９に示すような環境の場合、ランドマークの数が４個に設定されているため、ロボット装置１は、４個のランドマークを発見するまでは探索行動状態であるとし、探索を続ける。
【０１１９】
　２−５−３．所定の時間内環境内をランダムに移動する場合
　ロボット装置１は環境内をランダムに移動し、所定の時間内で発見できるだけのランドマークを発見する。所定の時間が経過した場合、探索行動状態から抜け、探索終了フラグを立てる。例えば、図１９のような環境の場合、ロボット装置１は、所定の時間（例えば数分間）だけ探索行動を行う。なお、この所定の時間としては、環境の広さやランドマークの数等を考慮して設定することが好ましい。
【０１２０】
　２−５−４．所定の位置で３６０°回転する場合
　ロボット装置１は所定の位置（例えば環境の中央付近）で３６０°回転し、ランドマークを観測して探索を終了する。例えば図１９に示すような環境の場合、ロボット装置１は、所定の位置で３６０°回転し、観測可能なランドマークＬ２０〜Ｌ２２を発見した時点で探索行動を終了する。なお、図１９の場合、ロボット装置１は、ランドマークＬ２３を発見することができない。
【０１２１】
　２−５−５．ランドマーク全てを訪問する場合
　環境内のランドマークを可能な限り発見するために、発見した全てのランドマークを訪問して歩いていく。先ず、環境内のある地点からスタートし、ランダムに歩き回り、そこで周りを３６０度見渡す。そこで発見したランドマークを訪問待ち行列とする。次に、訪問待ち行列から一つを選んで、そのランドマークまで歩いていき、ランドマークに到達したら訪問待ち行列からそのランドマークを削除し、ランドマーク付近で周りを全て見渡し、新しいランドマークを発見する。新しく発見されたランドマークは、訪問待ち行列に追加する。これを繰り返して、訪問待ち行列が空になるまでランドマークを訪問して歩く。他のどのランドマークからも観測不可能なランドマークがない場合は、このような戦略で環境内の全てのランドマークを発見することができる。例えば図１９に示すような環境の場合、先ず、周りを３６０°見渡して発見できるランドマークＬ２０〜Ｌ２２が訪問待ち行列となり、訪問待ち行列から一つを選んで、そのランドマークまで歩いていく。そして、ランドマークＬ２２の付近で周りを見渡すことで新たなランドマークＬ２３を発見し、訪問待ち行列に追加する。
【０１２２】
　本実施の形態においては、ロボット装置１は、形状及び／又は色等により異なる複数の人工的なランドマークが存在する一意に特定可能な環境内のランドマークを認識するランドマークセンサ（ランドマーク認識手段）、及びこのランドマークセンサによって獲得したランドマーク情報を記憶する記憶手段、ロボット装置１自身の行動を記憶する行動記憶手段を有しており、ランドマークセンサと行動記憶装置とから幾何的な環境地図を構築することができる。
【０１２３】
　また、ロボット装置１は、ランドマークの観測に基づき構築した現在の環境地図Ｎと、環境地図記憶部４０３に記憶された既知の環境地図群とを比較することによって、ロボット装置１が現在置かれている環境を同定することができる。既知の環境地図は、ユーザが作成して環境地図記憶部４０３に供給してもよいし、ロボット装置１自身によって学習されたものであってもよい。即知の環境地図は個々のランドマークの位置（ｘ，ｙ）を有しており、環境地図の比較は、現在観測している現在の環境地図におけるランドマークの位置と、既知の環境地図におけるランドマークの位置とを比較し、それらの類似性を評価することにより行うことができる。
【０１２４】
　更に、ロボット装置１は、環境探索部４０５により、環境を探索し、探索が終了したことを告げるロボット制御手法により環境地図を構築し、この環境地図と、記憶装置に保存されている環境地図との類似度を出力して、類似度がある閾値を超えた環境地図の環境ＩＤを出力することにより環境を同定すると共に、探索が終了し、データベースに類似する環境地図がない場合には、新しい環境地図と環境ＩＤを環境地図記憶部４０３に追加することができる。
【０１２５】
　更にまた、このように、一意に特定可能な複数に分割した環境地図を有することによって、ロボット装置１が物理的に離れた複数の環境（例えば、物理的に距離が離れた場所にある部屋Ａと部屋Ｂ）を素早く識別することができ、環境全てを大きな環境地図によって保持する手法に比べて、計算負荷が少なく、ランドマーク又はロボット装置の動きを観測した際の、環境地図の更新時の計算量も少なくてよい。更に、物理的に離れた場所にある場所Ａと場所Ｂを違う環境地図ＭａｐＡ，ＭａｐＢとして記憶するため、それらの場所の相対的な位置関係には関知しなくてよい。また、全てのランドマークを認識しなくても、ある程度の情報から現在の環境を同定することができる。このように、各環境毎に一つの環境地図を構築し、記憶手段に登録された環境地図群との比較をダイナミックに行うことにより、素早く、現在の環境を同定することができ、各々の環境での自己位置同定を行うことができる。
【０１２６】
　３．ロボット装置の詳細
　３−１．ソフトウェア
　次に、上述した図４に示したロボット装置１が行動を決定するためのソフトウェアの構成及び動作について詳細に説明する。図２０は、図４に示すソフトウェア３００の動作を示すフローチャートである。
【０１２７】
　図４に示すソフトウェア３００のキネマティックオドメトリＫＩＮＥ３１０には、上述したように、画像データ３０１及びセンサデータ３０２が入力される。この画像データ３０１は、カラー画像及びステレオカメラによる視差画像である。また、センサデータは、ロボット装置１の関節角等のデータである。キネマティックオドメトリＫＩＮＥ３１０は、これらの入力データ３０１，３０２を受け取り、メモリに格納されていたそれまでの画像及びセンサデータを更新する（ステップＳ１０１）。
【０１２８】
　次に、これら画像データ３０１とセンサデータ３０２との時間的な対応を取る（ステップＳ１０２−１）。即ち、画像データ３０１の画像が撮像された時間におけるセンサデータ３０２の関節角を割り出す。次いで、この関節角のデータを使用してロボット装置１が中心に固定されたロボット中心座標系を頭部ユニットに設けられたカメラの座標系へ変換する（ステップＳ１０２−２）。この場合、本実施の形態においては、ロボット中心座標系からカメラ座標系の同時変換行列等を導出し、この同時変換行列３１１とこれに対応する画像データとを画像認識を行うオブジェクトへ送信する。即ち、同時変換行列３１１及びこれに対応する視差画像３１２を平面抽出部ＰＬＥＸ３２０へ出力し、同時変換行列３１１及びカラー画像３１３をランドマークセンサ部ＣＬＳ３４０へ出力する。
【０１２９】
　また、センサデータ３０２から得られる歩行パラメータと、足底センサを使用した歩数のカウント数とからロボット装置１の移動量を算出し、ロボット装置１のロボット中心座標系における移動量を算出する。以下、ロボット中心座標系の移動量をオドメトリともいう。このオドメトリ３１４を障害物グリッド算出部ＯＧ３３０及び絶対座標算出部ＬＺ３５０へ出力する。
【０１３０】
　平面抽出部ＰＬＥＸ３２０は、キネマティックオドメトリＫＩＮＥ３１０にて算出された同時変換行列３１１と、これに対応するステレオカメラから得られる視差画像３１２とが入力されると、それまでメモリに格納されていたこれらのデータを更新する（ステップＳ１０３）。そして、ステレオカメラのキャリブレーションパラメータ等を使用して視差画像３１２から３次元の位置データ（レンジデータ）を算出する（ステップＳ１０４−１）。次いで、このレンジデータからハフ変換等を使用して、例えば壁及びテーブル等の平面を除く平面を平面として抽出する。また、座標変換行列３１１からロボット装置１の足底が接地している平面との対応を取り、床面を選択し、床面上にない点、例えば所定の閾値よりも高い位置にあるもの等を障害物として床面からの距離を算出し、この障害物情報（obstacle）３２１を障害物グリッド算出部３３０に出力する（ステップＳ１０４−２）。
【０１３１】
　障害物グリッド算出部ＯＧ３３０では、上述したように、キネマティックオドメトリＫＩＮＥ３１０にて算出されたオドメトリ３１４と、平面抽出部ＰＬＥＸ３２０にて算出された障害物の観測情報（障害物情報）３２１とが入力されると、メモリに格納されていたそれまでのデータを更新する（ステップＳ１０５）。そして、床面上に障害物があるか否かの確率を保持する障害物グリッドを確率的手法により更新する（ステップＳ１０６）。
【０１３２】
　この障害物グリッド算出部ＯＧ３３０は、ロボット装置１を中心とした例えば周囲４ｍの障害物情報（環境地図）と、ロボット装置１の向く方角を示す姿勢情報とを保持しており、確率的手法により環境地図を更新し、この更新した認識結果（障害物情報３３１）を出力することにより、上位レイヤ、即ち、本実施の形態においては、経路計画決定部ＳＢＬ３６０にて障害物を回避する計画を作成することができる。
【０１３３】
　ランドマークセンサ部ＣＬＳ３４０は、キネマティックオドメトリＫＩＮＥ３１０から同時変換行列３１１及びカラー画像３１３が入力されると、予めメモリ内に格納されていたこれらのデータを更新する（ステップＳ１０７）。そして、カラー画像３１３の画像処理を行って、予め認識しているカラーランドマークを検出する。このカラーランドマークのカラー画像３１３上での位置及び大きさをカメラ座標系での位置に変換する。更に、同時変換行列３１１を使用し、カラーランドマークのカメラ座標系での位置をロボット中心位置座標系における位置に変換し、ロボット中心座標系におけるカラーランドマーク位置の情報（カラーランドマーク相対位置情報）３４１を絶対座標算出部ＬＺ３５０に出力する（ステップＳ１０８）。
【０１３４】
　絶対座標算出部ＬＺ３５０は、キネマティックオドメトリＫＩＮＥ３１０からのオドメトリ３１４と、ランドマークセンサ部ＣＬＳ３４０からのカラーランドマーク相対位置情報３４１とが入力されると、予めメモリ内に格納されていたこれらのデータが更新される（ステップＳ１０９）。そして、絶対座標算出部ＬＺ３５０が予め認識しているカラーランドマークの絶対座標（ワールド座標系での位置）、カラーランドマーク相対位置情報３４１、及びオドメトリ３１４を使用し、確率的手法によりロボット装置１の絶対座標（ワールド座標系での位置）を算出する。そして、この絶対座標位置３５１を経路計画決定部ＳＢＬ３６０に出力する。
【０１３５】
　経路計画決定部ＳＢＬ３６０は、障害物グリッド算出部ＯＧ３３０から障害物グリッド情報３３１が入力され、絶対座標算出部ＬＺ３５０から絶対座標位置３５１が入力されると、予めメモリに格納されていたこれらのデータが更新される（ステップＳ１１１）。そして、経路計画決定部ＳＢＬ３６０は、障害物グリッド算出部ＯＧ３３０からの障害物情報３３１により、ロボット装置１の周囲に存在する障害物に関する認識結果を取得し、絶対座標算出部ＬＺ３５０から現在のロボット装置１の絶対座標を取得することにより、絶対座標系又はロボット装置中心のロボット中心座標系で与えられた目標地点に対して障害物に衝突せずに歩行可能な経路を生成し、経路に応じて経路を遂行する動作コマンドを発行する。即ち、入力データから状況に応じてロボット装置１が取るべき行動を決定し、その行動列を出力する（ステップＳ１１２）。
【０１３６】
　また、人間によるナビゲーションの場合には、障害物グリッド算出部ＯＧ３３０からロボット装置の周囲に存在する障害物に関する認識結果及び絶対座標算出部ＬＺ３５０からの現在のロボット装置１の位置の絶対座標をユーザに提供し、このユーザからの入力に応じて動作コマンドを発行させる。
【０１３７】
　図２１は、上述のソフトウェアに入力されるデータの流れを模式的に示す図である。なお、図２１において、図３及び図４に示す構成と同一構成要素には同一符号を伏してその詳細な説明は省略する。
【０１３８】
　顔検出部ＦＤＴ（ＦａｃｅＤｅｔｅｃｔｏｒ）３７１は、画像フレーム中から顔領域を検出するオブジェクトであり、カメラ等の画像入力装置からカラー画像２０２を受け取り、それを例えば９段階のスケール画像に縮小変換する。この全ての画像の中から顔に相当する矩形領域を探索する。重なりあった候補領域を削減して最終的に顔と判断された領域に関する位置、大きさ、及び特徴量等の情報３７２を出力して、顔識別部ＦＩ（ＦａｃｅＩｄｅｎｔｉｆｙ）３７７へ送る。
【０１３９】
　顔識別部ＦＩ３７７は、検出された顔画像を識別するオブジェクトであり、顔の領域を示す矩形領域画像からなる情報３７２を顔検出部ＦＤＴ３７１から受け取り、この顔画像がメモリに格納されている手持ちの人物辞書のうちでどの人物に相当するかを比較して人物の識別を行う。そして、顔検出部ＥＤＴ３７１から受け取った顔画像の顔画像領域の位置、大きさ情報と共に人物のＩＤ情報３７８をＤＩＬ３７９に出力する。
【０１４０】
　色認識部ＭＣＴ（ＭｕｌｔｉＣｏｌｏｒＴｒａｃｋｅｒ）３７３は、色認識を行うオブジェクトであり、カメラ等の画像入力装置からカラー画像２０２を受け取り、予め保有している複数のカラー・モデル情報に基づいて色領域を抽出し、連続した領域に分割する。色認識部ＭＣＴ３７３は、分割した各領域の位置、大きさ及び特徴量等の情報３７４を距離情報付加部ＤＩＬ（ＤｉｓｔａｎｃｅＩｎｆｏｒｍａｔｉｏｎＬｉｎｋｅｒ）３７９に出力する。
【０１４１】
　動き検出部ＭＤＴ（ＭｏｔｉｏｎＤｅｔｅｃｔｏｒ）３７５は、画像の中で動いている部分を検出するオブジェクトであり、検出した動き領域の情報３７６を挙値情報付加部ＤＩＬ３７９に出力する。
【０１４２】
　距離情報付加部ＤＩＬ３７９は、入力された２次元の情報に距離情報を付加して３次元の情報を出力するオブジェクトであり、顔検出部ＦＩ３７７からのＩＤ情報３７８、色認識部ＭＣＴ３７３からの分割した各領域の位置、大きさ及び特徴量等の情報３７４並びに動き検出部ＭＤＴ３７５からの動き領域の情報３７６に距離情報を付加して３次元情報３８０を短期記憶部ＳＴＭ（ＳｈｏｒｔＴｅｒｍＭｅｍｏｒｙ）３８１に出力する。
【０１４３】
　短期記憶部ＳＴＭ３８１は、ロボット装置１の外部環境に関する情報を比較的短い時間だけ保持するオブジェクトであり、ＡｒｔｈｕｒＤｅｃｏｄｅｒ（図示せず）から音声認識結果（単語、音源方向、確信度）を受け取り、色認識部ＭＣＴ３７３から肌色の領域の位置、大きさと顔領域の位置、大きさを受け取り、顔識別部ＦＩ３７７から人物のＩＤ情報等を受け取る。また、ロボット装置１の機体上の各センサからロボット装置の首の方向（関節角）を受け取る。そして、これらの認識結果及びセンサ出力を統合的に使って、現在どこにどの人物がいて、しゃべった言葉がどの人物のものであり、その人物とはこれまでにどんな対話を行ったのかという情報を保存する。こうした物体、即ちターゲットに関する物理情報と時間方向でみたイベント（履歴）を出力として、経路計画決定部（状況依存行動階層）（ＳＢＬ）３６０等の上位モジュールに渡す。
【０１４４】
　経路計画決定部ＳＢＬは、上述の短期記憶部ＳＴＭ３８１からの情報を基にロボット装置１の行動（状況に依存した行動）を決定するオブジェクトである。複数の行動を同時に評価したり、実行したりすることができる。また、行動を切り替えて機体をスリープ状態にしておき、別の行動を起動することができる。
【０１４５】
　３−２．ロボット装置の構成
　以下、本発明の実施の形態における上述した環境同定装置を搭載した図１に示すような２足歩行タイプのロボット装置について詳細に説明する。この人間型のロボット装置は、住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットであり、内部状態（怒り、悲しみ、喜び、楽しみ等）に応じて行動できるほか、人間が行う基本的な動作を表出できるエンターテインメントロボットである。
【０１４６】
　上述したように、図１に示すロボット装置１は、体幹部ユニット２の所定の位置に頭部ユニット３が連結されると共に、左右２つの腕部ユニット４Ｒ／Ｌと、左右２つの脚部ユニット５Ｒ／Ｌが連結されて構成されている。
【０１４７】
　このロボット装置１が具備する関節自由度構成を図２２に模式的に示す。頭部ユニット３を支持する首関節は、首関節ヨー軸１０１と、首関節ピッチ軸１０２と、首関節ロール軸１０３という３自由度を有している。
【０１４８】
　また、上肢を構成する各々の腕部ユニット４Ｒ／Ｌは、肩関節ピッチ軸１０７と、肩関節ロール軸１０８と、上腕ヨー軸１０９と、肘関節ピッチ軸１１０と、前腕ヨー軸１１１と、手首関節ピッチ軸１１２と、手首関節ロール輪１１３と、手部１１４とで構成される。手部１１４は、実際には、複数本の指を含む多関節・多自由度構造体である。ただし、手部１１４の動作は、ロボット装置１の姿勢制御や歩行制御に対する寄与や影響が少ないので、本明細書ではゼロ自由度と仮定する。したがって、各腕部は７自由度を有するとする。
【０１４９】
　また、体幹部ユニット２は、体幹ピッチ軸１０４と、体幹ロール軸１０５と、体幹ヨー軸１０６という３自由度を有する。
【０１５０】
　また、下肢を構成する各々の脚部ユニット５Ｒ／Ｌは、股関節ヨー軸１１５と、股関節ピッチ軸１１６と、股関節ロール軸１１７と、膝関節ピッチ軸１１８と、足首関節ピッチ軸１１９と、足首関節ロール軸１２０と、足部１２１とで構成される。本明細書中では、股関節ピッチ軸１１６と股関節ロール軸１１７の交点は、ロボット装置１の股関節位置を定義する。人体の足部１２１は、実際には多関節・多自由度の足底を含んだ構造体であるが、ロボット装置１の足底は、ゼロ自由度とする。したがって、各脚部は、６自由度で構成される。
【０１５１】
　以上を総括すれば、ロボット装置１全体としては、合計で３＋７×２＋３＋６×２＝３２自由度を有することになる。ただし、エンターテインメント向けのロボット装置１が必ずしも３２自由度に限定されるわけではない。設計・制作上の制約条件や要求仕様等に応じて、自由度、即ち関節数を適宜増減することができることはいうまでもない。
【０１５２】
　上述したようなロボット装置１がもつ各自由度は、実際にはアクチュエータを用いて実装される。外観上で余分な膨らみを排してヒトの自然体形状に近似させること、２足歩行という不安定構造体に対して姿勢制御を行うことなどの要請から、アクチュエータは小型且つ軽量であることが好ましい。
【０１５３】
　図２３には、ロボット装置１の制御システム構成を模式的に示している。同図に示すように、ロボット装置１は、ヒトの四肢を表現した体幹部ユニット２，頭部ユニット３，腕部ユニット４Ｒ／Ｌ，脚部ユニット５Ｒ／Ｌと、各ユニット間の協調動作を実現するための適応制御を行う制御ユニット１０とで構成される。
【０１５４】
　ロボット装置１全体の動作は、制御ユニット１０によって統括的に制御される。制御ユニット１０は、ＣＰＵ（Central Processing Unit）や、ＤＲＡＭ、フラッシュＲＯＭ等の主要回路コンポーネント（図示しない）で構成される主制御部１１と、電源回路やロボット装置１の各構成要素とのデータやコマンドの授受を行うインターフェイス（何れも図示しない）などを含んだ周辺回路１２とで構成される。
【０１５５】
　本発明を実現するうえで、この制御ユニット１０の設置場所は、特に限定されない。図２３では体幹部ユニット２に搭載されているが、頭部ユニット３に搭載してもよい。あるいは、ロボット装置１外に制御ユニット１０を配備して、ロボット装置１の機体とは有線又は無線で交信するようにしてもよい。
【０１５６】
　図２２に示したロボット装置１内の各関節自由度は、それぞれに対応するアクチュエータによって実現される。即ち、頭部ユニット３には、首関節ヨー軸１０１、首関節ピッチ軸１０２、首関節ロール軸１０３の各々を表現する首関節ヨー軸アクチュエータＡ２、首関節ピッチ軸アクチュエータＡ３、首関節ロール軸アクチュエータＡ４が配設されている。
【０１５７】
　また、頭部ユニット３には、外部の状況を撮像するためのＣＣＤ（Charge Coupled Device）カメラが設けられているほか、前方に位置する物体までの距離を測定するための距離センサ、外部音を集音するためのマイク、音声を出力するためのスピーカ、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出するためのタッチセンサ等が配設されている。
【０１５８】
　また、体幹部ユニット２には、体幹ピッチ軸１０４、体幹ロール軸１０５、体幹ヨー軸１０６の各々を表現する体幹ピッチ軸アクチュエータＡ５、体幹ロール軸アクチュエータＡ６、体幹ヨー軸アクチュエータＡ７が配設されている。また、体幹部ユニット２には、このロボット装置１の起動電源となるバッテリを備えている。このバッテリは、充放電可能な電池によって構成されている。
【０１５９】
　また、腕部ユニット４Ｒ／Ｌは、上腕ユニット４１Ｒ／Ｌと、肘関節ユニット４２Ｒ／Ｌと、前腕ユニット４３Ｒ／Ｌに細分化されるが、肩関節ピッチ軸１０７、肩関節ロール軸１０８、上腕ヨー軸１０９、肘関節ピッチ軸１１０、前腕ヨー軸１１１、手首関節ピッチ軸１１２、手首関節ロール軸１１３の各々表現する肩関節ピッチ軸アクチュエータＡ８、肩関節ロール軸アクチュエータＡ９、上腕ヨー軸アクチュエータＡ１０、肘関節ピッチ軸アクチュエータＡ１１、肘関節ロール軸アクチュエータＡ１２、手首関節ピッチ軸アクチュエータＡ１３、手首関節ロール軸アクチュエータＡ１４が配備されている。
【０１６０】
　また、脚部ユニット５Ｒ／Ｌは、大腿部ユニット５１Ｒ／Ｌと、膝ユニット５２Ｒ／Ｌと、脛部ユニット５３Ｒ／Ｌに細分化されるが、股関節ヨー軸１１５、股関節ピッチ軸１１６、股関節ロール軸１１７、膝関節ピッチ軸１１８、足首関節ピッチ軸１１９、足首関節ロール軸１２０の各々を表現する股関節ヨー軸アクチュエータＡ１６、股関節ピッチ軸アクチュエータＡ１７、股関節ロール軸アクチュエータＡ１８、膝関節ピッチ軸アクチュエータＡ１９、足首関節ピッチ軸アクチュエータＡ２０、足首関節ロール軸アクチュエータＡ２１が配備されている。各関節に用いられるアクチュエータＡ２，Ａ３・・・は、より好ましくは、ギア直結型で旦つサーボ制御系をワンチップ化してモータ・ユニット内に搭載したタイプの小型ＡＣサーボ・アクチュエータで構成することができる。
【０１６１】
　体幹部ユニット２、頭部ユニット３、各腕部ユニット４Ｒ／Ｌ、各脚部ユニット５Ｒ／Ｌなどの各機構ユニット毎に、アクチュエータ駆動制御部の副制御部２０，２１，２２Ｒ／Ｌ，２３Ｒ／Ｌが配備されている。さらに、各脚部ユニット５Ｒ／Ｌの足底が着床したか否かを検出する接地確認センサ３０Ｒ／Ｌを装着するとともに、体幹部ユニット２内には、姿勢を計測する姿勢センサ３１を装備している。
【０１６２】
　接地確認センサ３０Ｒ／Ｌは、例えば足底に設置された近接センサ又はマイクロ・スイッチなどで構成される。また、姿勢センサ３１は、例えば、加速度センサとジャイロ・センサの組み合わせによって構成される。
【０１６３】
　接地確認センサ３０Ｒ／Ｌの出力によって、歩行・走行などの動作期間中において、左右の各脚部が現在立脚又は遊脚何れの状態であるかを判別することができる。また、姿勢センサ３１の出力により、体幹部分の傾きや姿勢を検出することができる。
【０１６４】
　主制御部１１は、各センサ３０Ｒ／Ｌ，３１の出力に応答して制御目標をダイナミックに補正することができる。より具体的には、副制御部２０，２１，２２Ｒ／Ｌ，２３Ｒ／Ｌの各々に対して適応的な制御を行い、ロボット装置１の上肢、体幹、及び下肢が協調して駆動する全身運動パターンを実現できる。
【０１６５】
　ロボット装置１の機体上での全身運動は、足部運動、ＺＭＰ（Zero Moment Point）軌道、体幹運動、上肢運動、腰部高さなどを設定するとともに、これらの設定内容にしたがった動作を指示するコマンドを各副制御部２０，２１，２２Ｒ／Ｌ，２３Ｒ／Ｌに転送する。そして、各々の副制御部２０，２１，・・・等では、主制御部１１からの受信コマンドを解釈して、各アクチュエータＡ２，Ａ３・・・等に対して駆動制御信号を出力する。ここでいう「ＺＭＰ」とは、歩行中の床反力によるモーメントがゼロとなる床面上の点のことであり、また、「ＺＭＰ軌道」とは、例えばロボット装置１の歩行動作期間中にＺＭＰが動く軌跡を意味する。なお、ＺＭＰの概念並びにＺＭＰを歩行ロボットの安定度判別規範に適用する点については、Miomir Vukobratovic著“LEGGED LOCOMOTION ROBOTS”（加藤一郎外著『歩行ロボットと人工の足』（日刊工業新聞社））に記載されている。
【０１６６】
　以上のように、ロボット装置１は、各々の副制御部２０，２１，・・・等が、主制御部１１からの受信コマンドを解釈して、各アクチュエータＡ２，Ａ３・・・に対して駆動制御信号を出力し、各ユニットの駆動を制御している。これにより、ロボット装置１は、目標の姿勢に安定して遷移し、安定した姿勢で歩行できる。
【０１６７】
　また、ロボット装置１における制御ユニット１０では、上述したような姿勢制御のほかに、加速度センサ、タッチセンサ、接地確認センサ等の各種センサ、及びＣＣＤカメラからの画像情報、マイクからの音声情報等を統括して処理している。制御ユニット１０では、図示しないが加速度センサ、ジャイロ・センサ、タッチセンサ、距離センサ、マイク、スピーカなどの各種センサ、各アクチュエータ、ＣＣＤカメラ及びバッテリが各々対応するハブを介して主制御部１１と接続されている。
【０１６８】
　主制御部１１は、上述の各センサから供給されるセンサデータや画像データ及び音声データを順次取り込み、これらをそれぞれ内部インターフェイスを介してＤＲＡＭ内の所定位置に順次格納する。また、主制御部１１は、バッテリから供給されるバッテリ残量を表すバッテリ残量データを順次取り込み、これをＤＲＡＭ内の所定位置に格納する。ＤＲＡＭに格納された各センサデータ、画像データ、音声データ及びバッテリ残量データは、主制御部１１がこのロボット装置１の動作制御を行う際に利用される。
【０１６９】
　主制御部１１は、ロボット装置１の電源が投入された初期時、制御プログラムを読み出し、これをＤＲＡＭに格納する。また、主制御部１１は、上述のように主制御部１１よりＤＲＡＭに順次格納される各センサデータ、画像データ、音声データ及びバッテリ残量データに基づいて自己及び周囲の状況や、ユーザからの指示及び働きかけの有無などを判断する。
【０１７０】
　さらに、主制御部１１は、この判断結果及びＤＲＡＭに格納した制御プログラムに基づいて自己の状況に応じて行動を決定するとともに、当該決定結果に基づいて必要なアクチュエータを駆動させることによりロボット装置１に、いわゆる「身振り」、「手振り」といった行動をとらせる。
【０１７１】
　このようにしてロボット装置１は、制御プログラムに基づいて自己及び周囲の状況を判断し、ユーザからの指示及び働きかけに応じて自律的に行動できる。
【０１７２】
　ところで、このロボット装置１は、内部状態に応じて自律的に行動することができる。上述の図４、図２０及び図２１に示したソフトウェアは、主にロボット装置１が自律的に経路を生成するためのものである。以下では、ロボット装置１における制御プログラム全体のソフトウェア構成例について、図２４乃至図２９を用いて説明する。なお、この制御プログラムは、予め、ロボット装置１内に設けられたフラッシュＲＯＭに格納されており、ロボット装置１の電源投入初期時において読み出される。
【０１７３】
　図２４において、デバイス・ドライバ・レイヤ４０は、制御プログラムの最下位層に位置し、複数のデバイス・ドライバからなるデバイス・ドライバ・セット４１から構成されている。この場合、各デバイス・ドライバは、ＣＣＤカメラやタイマ等の通常のコンピュータで用いられるハードウェアに直接アクセスすることを許されたオブジェクトであり、対応するハードウェアからの割り込みを受けて処理を行う。
【０１７４】
　また、ロボティック・サーバ・オブジェクト４２は、デバイス・ドライバ・レイヤ４０の最下位層に位置し、例えば上述の各種センサやアクチュエータ２８１〜２８ｎ等のハードウェアにアクセスするためのインターフェイスを提供するソフトウェア群でなるバーチャル・ロボット４３と、電源の切換えなどを管理するソフトウェア群でなるパワーマネージャ４４と、他の種々のデバイス・ドライバを管理するソフトウェア群でなるデバイス・ドライバ・マネージャ４５と、ロボット装置１の機構を管理するソフトウェア群でなるデザインド・ロボット４６とから構成されている。
【０１７５】
　マネージャ・オブジェクト４７は、オブジェクト・マネージャ４８及びサービス・マネージャ４９から構成されている。オブジェクト・マネージャ４８は、ロボティック・サーバ・オブジェクト４２、ミドル・ウェア・レイヤ５０、及びアプリケーション・レイヤ５１に含まれる各ソフトウェア群の起動や終了を管理するソフトウェア群であり、サービス・マネージャ４９は、メモリカードに格納されたコネクションファイルに記述されている各オブジェクト間の接続情報に基づいて各オブジェクトの接続を管理するソフトウェア群である。
【０１７６】
　ミドル・ウェア・レイヤ５０は、ロボティック・サーバ・オブジェクト４２の上位層に位置し、画像処理や音声処理などのこのロボット装置１の基本的な機能を提供するソフトウェア群から構成されている。また、アプリケーション・レイヤ５１は、ミドル・ウェア・レイヤ５０の上位層に位置し、当該ミドル・ウェア・レイヤ５０を構成する各ソフトウェア群によって処理された処理結果に基づいてロボット装置１の行動を決定するためのソフトウェア群から構成されている。
【０１７７】
　なお、ミドル・ウェア・レイヤ５０及びアプリケーション・レイヤ５１の具体的なソフトウェア構成をそれぞれ図２５に示す。
【０１７８】
　ミドル・ウェア・レイヤ５０は、図２５に示すように、騒音検出用、温度検出用、明るさ検出用、音階認識用、距離検出用、姿勢検出用、タッチセンサ用、動き検出用及び色認識用の各信号処理モジュール６０〜６８並びに入力セマンティクスコンバータモジュール６９などを有する認識系７０と、出力セマンティクスコンバータモジュール７８並びに姿勢管理用、トラッキング用、モーション再生用、歩行用、転倒復帰用、ＬＥＤ点灯用及び音再生用の各信号処理モジュール７１〜７７などを有する出力系７９とから構成されている。
【０１７９】
　認識系７０の各信号処理モジュール６０〜６８は、ロボティック・サーバ・オブジェクト４２のバーチャル・ロボット４３によりＤＲＡＭから読み出される各センサデータや画像データ及び音声データのうちの対応するデータを取り込み、当該データに基づいて所定の処理を施して、処理結果を入力セマンティクスコンバータモジュール６９に与える。ここで、例えば、バーチャル・ロボット４３は、所定の通信規約によって、信号の授受或いは変換をする部分として構成されている。
【０１８０】
　入力セマンティクスコンバータモジュール６９は、これら各信号処理モジュール６０〜６８から与えられる処理結果に基づいて、「うるさい」、「暑い」、「明るい」、「ボールを検出した」、「転倒を検出した」、「撫でられた」、「叩かれた」、「ドミソの音階が聞こえた」、「動く物体を検出した」又は「障害物を検出した」などの自己及び周囲の状況や、ユーザからの指令及び働きかけを認識し、認識結果をアプリケーション・レイヤ４１に出力する。
【０１８１】
　アプリケーション・レイヤ５１は、図２６に示すように、行動モデルライブラリ８０、行動切換モジュール８１、学習モジュール８２、感情モデル８３及び本能モデル８４の５つのモジュールから構成されている。
【０１８２】
　行動モデルライブラリ８０には、図２７に示すように、「バッテリ残量が少なくなった場合」、「転倒復帰する」、「障害物を回避する場合」、「感情を表現する場合」、「ボールを検出した場合」などの予め選択されたいくつかの条件項目にそれぞれ対応させて、それぞれ独立した行動モデルが設けられている。
【０１８３】
　そして、これら行動モデルは、それぞれ入力セマンティクスコンバータモジュール６９から認識結果が与えられたときや、最後の認識結果が与えられてから一定時間が経過したときなどに、必要に応じて後述のように感情モデル８３に保持されている対応する情動のパラメータ値や、本能モデル８４に保持されている対応する欲求のパラメータ値を参照しながら続く行動をそれぞれ決定し、決定結果を行動切換モジュール８１に出力する。
【０１８４】
　なお、この実施の形態の場合、各行動モデルは、次の行動を決定する手法として、図２８に示すような１つのノード（状態）ＮＯＤＥ０〜ＮＯＤＥｎから他のどのノードＮＯＤＥ０〜ＮＯＤＥｎに遷移するかを各ノードＮＯＤＥ０〜ＮＯＤＥｎに間を接続するアークＡＲＣ１〜ＡＲＣｎ１に対してそれぞれ設定された遷移確率Ｐ１〜Ｐｎに基づいて確率的に決定する有限確率オートマトンと呼ばれるアルゴリズムを用いる。
【０１８５】
　具体的に、各行動モデルは、それぞれ自己の行動モデルを形成するノードＮＯＤＥ０〜ＮＯＤＥｎにそれぞれ対応させて、これらノードＮＯＤＥ０〜ＮＯＤＥｎ毎に図２９に示すような状態遷移表９０を有している。
【０１８６】
　この状態遷移表９０では、そのノードＮＯＤＥ０〜ＮＯＤＥｎにおいて遷移条件とする入力イベント（認識結果）が「入力イベント名」の列に優先順に列記され、その遷移条件についてのさらなる条件が「データ名」及び「データ範囲」の列における対応する行に記述されている。
【０１８７】
　したがって、図２９の状態遷移表９０で表されるノードＮＯＤＥ１００では、「ボールを検出（ＢＡＬＬ）」という認識結果が与えられた場合に、当該認識結果とともに与えられるそのボールの「大きさ（SIZE）」が「0から1000」の範囲であることや、「障害物を検出（OBSTACLE）」という認識結果が与えられた場合に、当該認識結果とともに与えられるその障害物までの「距離（DISTANCE）」が「0から100」の範囲であることが他のノードに遷移するための条件となっている。
【０１８８】
　また、このノードＮＯＤＥ１００では、認識結果の入力がない場合においても、行動モデルが周期的に参照する感情モデル８３及び本能モデル８４にそれぞれ保持された各情動及び各欲求のパラメータ値のうち、感情モデル８３に保持された「喜び（Joy）」、「驚き（Surprise）」又は「悲しみ（Sadness）」の何れかのパラメータ値が「50から100」の範囲であるときには他のノードに遷移することができるようになっている。
【０１８９】
　また、状態遷移表９０では、「他のノードヘの遷移確率」の欄における「遷移先ノード」の行にそのノードＮＯＤＥ０〜ＮＯＤＥｎから遷移できるノード名が列記されているとともに、「入力イベント名」、「データ名」及び「データの範囲」の列に記述された全ての条件が揃ったときに遷移できる他の各ノードＮＯＤＥ０〜ＮＯＤＥｎへの遷移確率が「他のノードヘの遷移確率」の欄内の対応する箇所にそれぞれ記述され、そのノードＮＯＤＥ０〜ＮＯＤＥｎに遷移する際に出力すべき行動が「他のノードヘの遷移確率」の欄における「出力行動」の行に記述されている。なお、「他のノードヘの遷移確率」の欄における各行の確率の和は１００［％］となっている。
【０１９０】
　したがって、図２９の状態遷移表９０で表されるノードＮＯＤＥ１００では、例えば「ボールを検出（ＢＡＬＬ）」し、そのボールの「ＳＩＺＥ（大きさ）」が「0から1000」の範囲であるという認識結果が与えられた場合には、「30［％］」の確率で「ノードＮＯＤＥ１２０（node 120）」に遷移でき、そのとき「ＡＣＴＩＯＮ１」の行動が出力されることとなる。
【０１９１】
　各行動モデルは、それぞれこのような状態遷移表９０として記述されたノードＮＯＤＥ０〜 ＮＯＤＥｎが幾つも繋がるようにして構成されており、入力セマンティクスコンバータモジュール６９から認識結果が与えられたときなどに、対応するノードＮＯＤＥ０〜ＮＯＤＥｎの状態遷移表を利用して確率的に次の行動を決定し、決定結果を行動切換モジュール８１に出力するようになされている。
【０１９２】
　図２７に示す行動切換モジュール８１は、行動モデルライブラリ８０の各行動モデルからそれぞれ出力される行動のうち、予め定められた優先順位の高い行動モデルから出力された行動を選択し、当該行動を実行すべき旨のコマンド（以下、行動コマンドという。）をミドル・ウェア・レイヤ５０の出力セマンティクスコンバータモジュール７８に送出する。なお、この実施の形態においては、図２７において下側に表記された行動モデルほど優先順位が高く設定されている。
【０１９３】
　また、行動切換モジュール８１は、行動完了後に出力セマンティクスコンバータモジュール７８から与えられる行動完了情報に基づいて、その行動が完了したことを学習モジュール８２、感情モデル８３及び本能モデル８４に通知する。
【０１９４】
　一方、学習モジュール８２は、入力セマンティクスコンバータモジュール６９から与えられる認識結果のうち、「叩かれた」や「撫でられた」など、ユーザからの働きかけとして受けた教示の認識結果を入力する。
【０１９５】
　そして、学習モジュール８２は、この認識結果及び行動切換えモジュール７１からの通知に基づいて、「叩かれた（叱られた）」ときにはその行動の発現確率を低下させ、「撫でられた（誉められた）」ときにはその行動の発現確率を上昇させるように、行動モデルライブラリ７０における対応する行動モデルの対応する遷移確率を変更する。
【０１９６】
　他方、感情モデル８３は、「喜び（Joy）」、「悲しみ（Sadness）」、「怒り（Anger）」、「驚き（Surprise）」、「嫌悪（Disgust）」及び「恐れ（Fear）」の合計６つの情動について、各情動毎にその情動の強さを表すパラメータを保持している。そして、感情モデル８３は、これら各情動のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール６９から与えられる「叩かれた」及び「撫でられた」などの特定の認識結果や、経過時間及び行動切換モジュール８１からの通知などに基づいて周期的に更新する。
【０１９７】
　具体的には、感情モデル８３は、入力セマンティクスコンバータモジュール６９から与えられる認識結果と、そのときのロボット装置１の行動と、前回更新してからの経過時間となどに基づいて所定の演算式により算出されるそのときのその情動の変動量を△Ｅ［ｔ］、現在のその情動のパラメータ値をＥ［ｔ］、その情動の感度を表す係数をｋｅとして、下記式（３１）によって次の周期におけるその情動のパラメータ値Ｅ［ｔ＋１］を算出し、これを現在のその情動のパラメータ値Ｅ［ｔ］と置き換えるようにしてその情動のパラメータ値を更新する。また、感情モデル８３は、これと同様にして全ての情動のパラメータ値を更新する。
【０１９８】
【数２１】
2004110802.tif 000023
【０１９９】
　なお、各認識結果や出力セマンティクスコンバータモジュール７８からの通知が各情動のパラメータ値の変動量△Ｅ［ｔ］にどの程度の影響を与えるかは予め決められており、例えば「叩かれた」といった認識結果は「怒り」の情動のパラメータ値の変動量△Ｅ［ｔ］に大きな影響を与え、「撫でられた」といった認識結果は「喜び」の情動のパラメータ値の変動量△Ｅ［ｔ］に大きな影響を与えるようになっている。
【０２００】
　ここで、出力セマンティクスコンバータモジュール７８からの通知とは、いわゆる行動のフィードバック情報（行動完了情報）であり、行動の出現結果の情報であり、感情モデル８３は、このような情報によっても感情を変化させる。これは、例えば、「叫ぶ」といった行動により怒りの感情レベルが下がるといったようなことである。なお、出力セマンティクスコンバータモジュール７８からの通知は、上述した学習モジュール８２にも入力されており、学習モジュール８２は、その通知に基づいて行動モデルの対応する遷移確率を変更する。
【０２０１】
　なお、行動結果のフィードバックは、行動切換モジュール８１の出力（感情が付加された行動）によりなされるものであってもよい。
【０２０２】
　一方、本能モデル８４は、「運動欲（exercise）」、「愛情欲（affection）」、「食欲（appetite）」及び「好奇心（curiosity）」の互いに独立した４つの欲求について、これら欲求毎にその欲求の強さを表すパラメータを保持している。そして、本能モデル８４は、これらの欲求のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール６９から与えられる認識結果や、経過時間及び行動切換モジュール８１からの通知などに基づいて周期的に更新する。
【０２０３】
　具体的には、本能モデル８４は、「運動欲」、「愛情欲」及び「好奇心」については、認識結果、経過時間及び出力セマンティクスコンバータモジュール７８からの通知などに基づいて所定の演算式により算出されるそのときのその欲求の変動量をΔＩ［ｋ］、現在のその欲求のパラメータ値をＩ［ｋ］、その欲求の感度を表す係数ｋｉとして、所定周期で下記式（３２）を用いて次の周期におけるその欲求のパラメータ値Ｉ［ｋ＋１］を算出し、この演算結果を現在のその欲求のパラメータ値Ｉ［ｋ］と置き換えるようにしてその欲求のパラメータ値を更新する。また、本能モデル８４は、これと同様にして「食欲」を除く各欲求のパラメータ値を更新する。
【０２０４】
【数２２】
2004110802.tif 000024
【０２０５】
　なお、認識結果及び出力セマンティクスコンバータモジュール７８からの通知などが各欲求のパラメータ値の変動量△Ｉ［ｋ］にどの程度の影響を与えるかは予め決められており、例えば出力セマンティクスコンバータモジュール７８からの通知は、「疲れ」のパラメータ値の変動量△Ｉ［ｋ］に大きな影響を与えるようになっている。
【０２０６】
　なお、本実施の形態においては、各情動及び各欲求（本能）のパラメータ値がそれぞれ０から１００までの範囲で変動するように規制されており、また係数ｋｅ、ｋｉの値も各情動及び各欲求毎に個別に設定されている。
【０２０７】
　一方、ミドル・ウェア・レイヤ５０の出力セマンティクスコンバータモジュール７８は、図２６に示すように、上述のようにしてアプリケーション・レイヤ５１の行動切換モジュール８１から与えられる「前進」、「喜ぶ」、「鳴く」又は「トラッキング（ボールを追いかける）」といった抽象的な行動コマンドを出力系７９の対応する信号処理モジュール７１〜７７に与える。
【０２０８】
　そしてこれら信号処理モジュール７１〜７７は、行動コマンドが与えられると当該行動コマンドに基づいて、その行動をするために対応するアクチュエータに与えるべきサーボ指令値や、スピーカから出力する音の音声データ及び又はＬＥＤに与える駆動データを生成し、これらのデータをロボティック・サーバ・オブジェクト４２のバーチャル・ロボット４３及び信号処理回路を順次介して対応するアクチュエータ又はスピーカ又はＬＥＤに順次送出する。
【０２０９】
　このようにしてロボット装置１は、上述した制御プログラムに基づいて、自己（内部）及び周囲（外部）の状況や、ユーザからの指示及び働きかけに応じた自律的な行動ができる。なお、ロボット装置１は、広く移動手段を有する移動体装置であってもよい。
【０２１０】
　このような制御プログラムは、ロボット装置１が読取可能な形式で記録された記録媒体を介して提供される。制御プログラムを記録する記録媒体としては、磁気読取方式の記録媒体（例えば、磁気テープ、フレキシブルディスク、磁気カード）、光学読取方式の記録媒体（例えば、ＣＤ−ＲＯＭ、ＭＯ、ＣＤ−Ｒ、ＤＶＤ）等が考えられる。記録媒体には、半導体メモリ（いわゆるメモリカード（矩形型、正方形型など形状は問わない。）、ＩＣカード）等の記憶媒体も含まれる。また、制御プログラムは、いわゆるインターネット等を介して提供されてもよい。
【０２１１】
　これらの制御プログラムは、専用の読込ドライバ装置、又はパーソナルコンピュータ等を介して再生され、有線又は無線接続によってロボット装置１に伝送されて読み込まれる。また、ロボット装置１は、半導体メモリ、又はＩＣカード等の小型化された記憶媒体のドライブ装置を備える場合、これら記憶媒体から制御プログラムを直接読み込むこともできる。
【産業上の利用可能性】
【０２１２】
　環境内の全てのランドマークを認識しなくても、ある程度の情報から現在の環境を同定することができ、更に、全ての環境を一つの環境地図モデルで表現する手法に比べて、環境を一意に特定可能である範囲とし、これらの環境地図を記憶することにより、一つ一つの環境地図のデータ量が小さくてよいと共に、物理的に離れた場所にある場所Ａと場所Ｂとを異なる環境地図として記憶することにより、場所の相対的な位置関係を関知する必要がない。
【図面の簡単な説明】
【０２１３】
【図１】本発明の実施の形態におけるロボット装置の外観構成を示す図であって、ヒューマノイド型の２足歩行のロボット装置を示す斜視図である。
【図２】本発明の実施の形態におけるロボット装置の外観構成を示す図であって、４足歩行の動物型ロボット装置を示す斜視図である。
【図３】本発明の実施の形態に係るロボット装置の概略を示すブロック図である。
【図４】本発明の実施の形態に係るロボット装置を動作するソフトウェアの構成を示す模式図である。
【図５】本発明の実施の形態に係る環境同定システムを示すブロック図である。
【図６】本発明の実施の形態に係る環境同定システムで管理される環境地図の一例を示す模式図である。
【図７】（ａ）は、ロボット装置が環境内を探索している様子を示す模式図、（ｂ）は、本実施の形態におけるランドマークを示す模式図である。
【図８】ランドマークの一例を示す模式図である。
【図９】本発明の実施の形態に係る環境同定装置の環境同定方法を示すフローチャートである。
【図１０】ランドマークが配置された環境を示す模式図である。
【図１１】ロボット装置が自身の動きを考慮せずに構築した環境地図を示す模式図である。
【図１２】ロボット装置が自身の動きを考慮して構築した環境地図を示す模式図である。
【図１３】拡張カルマンフィルタモデルの模式図である。
【図１４】（ａ）及び（ｂ）は、夫々ロボット装置が自身の動作を観測した場合及びランドマークを観測した場合の環境地図を構築する方法を示すフローチャートである。
【図１５】ロボット装置が環境内を歩き回ってランドマークの位置を観測して構築した環境地図の一例を示す図である。
【図１６】同じく、ロボット装置が環境内を歩き回ってランドマークの位置を観測して構築した環境地図の一例を示す図である。
【図１７】本発明の実施の形態における環境同定部の環境同定方法を示すフローチャートである。
【図１８】本発明の実施の形態における環境記憶装置に記憶される環境ＩＤを説明する図である。
【図１９】環境内のランドマークの探索を終了する方法を説明するための模式図である。
【図２０】本発明の実施の形態におけるロボット装置のソフトウェアの動作を示すフローチャートである。
【図２１】同ソフトウェアに入力されるデータの流れを示す模式図である。
【図２２】本発明の実施の形態におけるロボット装置の自由度構成モデルを模式的に示す図である。
【図２３】同ロボット装置の回路構成を示すブロック図である。
【図２４】同ロボット装置のソフトウェア構成を示すブロック図である。
【図２５】同ロボット装置のソフトウェア構成におけるミドル・ウェア・レイヤの構成を示すブロック図である。
【図２６】同ロボット装置のソフトウェア構成におけるアプリケーション・レイヤの構成を示すブロック図である。
【図２７】アプリケーション・レイヤの行動モデルライブラリの構成を示すブロック図である。
【図２８】同ロボット装置の行動決定のための情報となる有限確率オートマトンを説明する図である。
【図２９】有限確率オートマトンの各ノードに用意された状態遷移表を示す図である。
【符号の説明】
【０２１４】
　１，１１　ロボット装置、３　頭部ユニット、　４Ｒ，４Ｌ　腕部ユニット、５Ｒ，５Ｌ　脚部ユニット、１２　胴体部ユニット、１３Ａ，１３Ｂ，１３Ｃ，１３Ｄ　脚部ユニット、１４　頭部ユニット、１５　尻尾部ユニット、２００Ｒ，２００Ｌ　ＣＣＤカメラ、２０１Ｒ　右目画像、２０１Ｌ　左目画像、２０２　カラー画像、２０３　視差画像、２１０　ステレオ画像処理装置、２２０　ＣＰＵ、２３０　アクチュエータ、２３１　制御信号、２４０　センサ、２４１　センサデータ、３００　ソフトウェア、３１０　キネマティックオドメトリＫＩＮＥ３１０、３２０　平面抽出部ＰＬＥＸ、３３０　障害物グリッド算出部ＯＧ、３４０　ランドマークセンサ部ＣＬＳ、３５０　絶対座標算出部ＬＺ、３６０　行動決定部ＳＢＬ、　４００　環境同定装置、４０２　環境地図構築部、４０３　環境地図記憶部、４０４　環境同定部、４０５　環境探索部
【図１】
2004110802.tif 000025
【図２】
2004110802.tif 000026
【図３】
2004110802.tif 000027
【図４】
2004110802.tif 000028
【図５】
2004110802.tif 000029
【図６】
2004110802.tif 000030
【図７】
2004110802.tif 000031
【図８】
2004110802.tif 000032
【図９】
2004110802.tif 000033
【図１０】
2004110802.tif 000034
【図１１】
2004110802.tif 000035
【図１２】
2004110802.tif 000036
【図１３】
2004110802.tif 000037
【図１４】
2004110802.tif 000038
【図１５】
2004110802.tif 000039
【図１６】
2004110802.tif 000040
【図１７】
2004110802.tif 000041
【図１８】
2004110802.tif 000042
【図１９】
2004110802.tif 000043
【図２０】
2004110802.tif 000044
【図２１】
2004110802.tif 000045
【図２２】
2004110802.tif 000046
【図２３】
2004110802.tif 000047
【図２４】
2004110802.tif 000048
【図２５】
2004110802.tif 000049
【図２６】
2004110802.tif 000050
【図２７】
2004110802.tif 000051
【図２８】
2004110802.tif 000052
【図２９】
2004110802.tif 000053