(57)【特許請求の範囲】
【請求項１】
外部環境の変化に応じた自律的な動作が可能な機械装置と該機械装置に対して情報提供する情報提供するサーバからなる情報提供システムであって、
前記機械装置と前記サーバが所定の通信プロトコルにより接続する第１の接続手段と、
前記サーバが、情報提供空間が構築された広域ネットワークに接続する第２の接続手段と、
前記機械装置とユーザとの対話を制御する対話制御手段と、
前記対話制御手段によって行なわれる前記機械装置とユーザとの対話のコンテキストに基づいてユーザからの要求を認識する要求認識手段と、
該認識された要求に回答するための情報を前記機械装置内で蓄積する情報蓄積手段と、
該認識された要求に回答するための情報が前記情報蓄積手段に蓄積されているかどうかを判断する判断手段と、
該認識された要求に回答するための情報が前記情報蓄積手段に蓄積されていないと前記判断手段が判断したときに、前記機械装置が前記第１の接続手段を介して前記サーバに対して該認識された要求に回答するための情報を要求する情報要求する情報要求手段と、
前記サーバにおいて、前記機械装置からの該情報要求を解析して、該認識された要求に回答するための情報を前記第２の接続手段を介して前記情報提供空間上で探索する情報探索手段と、
前記サーバにおいて、前記情報探索手段による探索結果を基に前記機械装置に対する回答メッセージを生成して、前記第１の接続手段を介して前記機械装置に返信する探索結果処理手段を備え、
前記情報蓄積手段は、前記の前記サーバから前記機械装置に返信された回答メッセージに含まれている、ユーザからの要求に回答するための情報を格納し、
前記対話制御手段は、前記情報要求手段が前記サーバに情報要求する場合には、ユーザの要求に関連する対話行動を一旦スリープさせ、前記探索結果処理手段から前記機械装置への情報転送が完了したことに応答して該スリープさせておいた対話行動を再起動して前記情報蓄積手段に蓄積されている情報に基づいて前記機械装置とユーザとの対話を制御する、
ことを特徴とする情報提供システム。
【請求項２】
前記対話制御手段は、前記要求認識手段により認識された結果だけでは充分に要求が特定されておらず、前記判断手段が判断できない又は前記情報要求手段が情報の要求を行なうことができない場合には、さらにユーザの要求を特定するための対話を生成する、
ことを特徴とする請求項１に記載の情報提供システム。
【請求項３】
外部環境の変化に応じた自律的な動作が可能な機械装置と該機械装置に対して情報提供する情報提供するサーバからなる情報提供方法であって、
前記機械装置と前記サーバ間は所定の通信プロトコルに基づいて第１の接続手段で接続され、且つ、前記サーバは第２の接続手段で情報提供空間が構築された広域ネットワークに接続されており、
前記機械装置とユーザとの対話を制御する対話制御ステップと、
前記対話制御ステップによって行なわれる前記機械装置とユーザとの対話のコンテキストに基づいてユーザからの要求を認識する要求認識ステップと、
該認識された要求に回答するための情報を前記機械装置内の情報蓄積手段に蓄積する情報蓄積ステップと、
該認識された要求に回答するための情報が前記情報蓄積手段に蓄積されているかどうかを判断する判断ステップと、
該認識された要求に回答するための情報が前記情報蓄積手段に蓄積されていないと前記判断ステップにおいて判断したときに、前記機械装置が前記第１の接続手段を介して前記サーバに対して該認識された要求に回答するための情報を要求する情報要求する情報要求ステップと、
前記サーバにおいて、前記機械装置からの該情報要求を解析して、該認識された要求に回答するための情報を前記第２の接続手段を介して前記情報提供空間上で探索する情報探索ステップと、
前記サーバにおいて、前記情報探索ステップにおける探索結果を基に前記機械装置に対する回答メッセージを生成して、前記第１の接続手段を介して前記機械装置に返信する探索結果処理ステップを備え、
前記情報蓄積ステップでは、前記の前記サーバから前記機械装置に返信された回答メッセージに含まれている、ユーザからの要求に回答するための情報を格納し、
前記対話制御ステップでは、前記情報要求ステップにおいて前記サーバに情報要求する場合には、ユーザの要求に関連する対話行動を一旦スリープさせ、前記探索結果処理ステップにより前記機械装置への情報転送が完了したことに応答して該スリープさせておいた対話行動を再起動して前記情報蓄積手段に蓄積されている情報に基づいて前記機械装置とユーザとの対話を制御する、
ことを特徴とする情報提供方法。
【請求項４】
前記対話制御ステップは、前記要求認識ステップにおいて認識された結果だけでは充分に要求が特定されておらず、前記判断手段が判断できない又は前記情報要求手段が情報の要求を行なうことができない場合には、さらにユーザの要求を特定するための対話を生成する、
ことを特徴とする請求項３に記載の情報提供方法。
【請求項５】
外部環境の変化に応じた自律的な動作が可能な機械装置に対してサーバから情報提供するための処理をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
前記機械装置と前記サーバ間は所定の通信プロトコルに基づいて第１の接続手段で接続され、且つ、前記サーバは第２の接続手段で情報提供空間が構築された広域ネットワークに接続されており、
前記コンピュータに対し、
前記機械装置とユーザとの対話を制御する対話制御手順と、
前記対話制御手順によって行なわれる前記機械装置とユーザとの対話のコンテキストに基づいてユーザからの要求を認識する要求認識手順と、
該認識された要求に回答するための情報を前記機械装置内の情報蓄積手段に蓄積する情報蓄積手順と、
該認識された要求に回答するための情報が前記情報蓄積手段に蓄積されているかどうかを判断する判断手順と、
該認識された要求に回答するための情報が前記情報蓄積手段に蓄積されていないと前記判断手順を実行して判断したときに、前記機械装置が前記第１の接続手段を介して前記サーバに対して該認識された要求に回答するための情報を要求する情報要求する情報要求手順と、
前記サーバにおいて、前記機械装置からの該情報要求を解析して、該認識された要求に回答するための情報を前記第２の接続手段を介して前記情報提供空間上で探索する情報探索手順と、
前記サーバにおいて、前記情報探索手順を実行した探索結果を基に前記機械装置に対する回答メッセージを生成して、前記第１の接続手段を介して前記機械装置に返信する探索結果処理手順を実行させ、
前記情報蓄積手順では、前記の前記サーバから前記機械装置に返信された回答メッセージに含まれている、ユーザからの要求に回答するための情報を格納し、
前記対話制御手順では、前記情報要求手順において前記サーバに情報要求する場合には、ユーザの要求に関連する対話行動を一旦スリープさせ、前記探索結果処理手順を実行して前記機械装置への情報転送が完了したことに応答して該スリープさせておいた対話行動を再起動して前記情報蓄積手段に蓄積されている情報に基づいて前記機械装置とユーザとの対話を制御する、
ことを特徴とするコンピュータ・プログラム。
【請求項６】
外部環境の変化に応じた自律的な動作が可能な機械装置と情報提供サーバからなる情報提供システムであって、
前記機械装置は、
前記情報提供サーバと所定の通信プロトコルにより接続する第１の接続手段と、
ユーザから音声入力された要求を認識する聴覚認識手段と、
ユーザから音声入力された要求に回答するための情報を蓄積する情報蓄積手段と、
ユーザから音声入力された要求に回答するための情報が前記情報蓄積手段に蓄積されているか否かを判断する判断手段と、
前記認識された要求が前記情報蓄積手段に蓄積されていないと判断された場合は、前記第１の接続手段を介して情報提供サーバに送信する送信する送信手段と、
前記情報提供サーバから受信した回答メッセージをユーザに対して出力する対話制御手段と、
反射行動部及び熟考行動階層を具備し、
前記情報提供サーバは、
前記機械装置と所定の通信プロトコルにより接続する第２の接続手段と、
情報提供空間が構築された広域ネットワークに接続する第３の接続手段と、
前記第２の接続手段を介して前記機械装置から受信する要求に従って、前記第３の接続手段を介して前記情報空間を探索する情報探索手段と、
前記情報探索手段による探索結果を基に要求元の機械装置に対する回答メッセージを生成して、前記第２の接続手段を介して要求元の機械装置に返信する探索結果処理手段を具備する、
ことを特徴とする情報提供システム。
【請求項７】
前記機械装置は、反射行動は反射行動部によって行ない、熟考行動階層によって行なう、
ことを特徴とする請求項６に記載の情報提供システム。
【請求項８】
前記反射行動は、ＬＥＤインジケータの点滅又は点灯のタイミングである、
ことを特徴とする請求項７に記載の情報提供システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、自律的な動作を行いリアリスティックなコミュニケーションを実現するロボット装置及びその制御方法、ロボットのための情報提供システム及び情報提供方法、並びに記憶媒体に係り、特に、ユーザとのインタラクションにより自律的な動作を行うロボット装置及びその制御方法、ロボットのための情報提供システム及び情報提供方法、並びに記憶媒体に関する。
【０００２】
更に詳しくは、本発明は、ニュースなどの時々刻々と更新される情報やその他会話中にユーザが求める情報を言葉や動作で提供するロボット装置及びその制御方法、ロボットのための情報提供システム及び情報提供方法、並びに記憶媒体に係り、特に、ユーザとのインタラクションに応じてネットワーク接続して必要なデータやプログラムを動的に取得してユーザとのコミュニケーションに活用するロボット装置及びその制御方法、ロボットのための情報提供システム及び情報提供方法、並びに記憶媒体に関する。
【０００３】
【従来の技術】
電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行う機械装置のことを「ロボット」という。ロボットの語源は、スラブ語の"ＲＯＢＯＴＡ(奴隷機械)"に由来すると言われている。わが国では、ロボットが普及し始めたのは１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化などを目的としたマニピュレータや搬送ロボットなどの産業用ロボット（industrial robot）であった。
【０００４】
最近では、イヌやネコ、クマのように４足歩行の動物の身体メカニズムやその動作を模したペット型ロボット、あるいは、ヒトやサルなどの２足直立歩行を行う動物の身体メカニズムや動作を模した「人間形」若しくは「人間型」のロボット（humanoid robot）など、脚式移動ロボットの構造やその安定歩行制御に関する研究開発が進展し、実用化への期待も高まってきている。これら脚式移動ロボットは、クローラ式ロボットに比し不安定で姿勢制御や歩行制御が難しくなるが、階段の昇降や障害物の乗り越えなど、柔軟な歩行・走行動作を実現できるという点で優れている。
【０００５】
アーム式ロボットのように、ある特定の場所に植設して用いるような据置きタイプのロボットは、部品の組立・選別作業など主として固定的・局所的な作業空間でのみ活動する。これに対し、移動式のロボットは、作業空間は非限定的であり、所定の経路上または無経路上を自在に移動して、所定の若しくは任意の人的作業を代行したり、ヒトやイヌあるいはその他の生命体に置き換わる種々のサービスを提供することができる。
【０００６】
脚式移動ロボットの用途の１つとして、産業活動・生産活動等における各種の難作業の代行が挙げられる。例えば、原子力発電プラントや火力発電プラント、石油化学プラントにおけるメンテナンス作業、製造工場における部品の搬送・組立作業、高層ビルにおける清掃、火災現場その他における救助といったような危険作業・難作業の代行などである。
【０００７】
また、脚式移動ロボットの他の用途として、上述の作業支援というよりも、生活密着型、すなわち人間との「共生」あるいは「エンターティンメント」という用途が挙げられる。この種のロボットは、ヒトあるいはイヌ（ペット）、クマなどの比較的知性の高い脚式歩行動物の動作メカニズムや四肢を利用した豊かな感情表現を忠実に再現する。また、あらかじめ入力された動作パターンを単に忠実に実行するだけではなく、ユーザ（あるいは他のロボット）から受ける言葉や態度（「褒める」とか「叱る」、「叩く」など）に対して動的に対応した、生き生きとした応答表現を実現することも要求される。
【０００８】
従来の玩具機械は、ユーザ操作と応答動作との関係が固定的であり、玩具の動作をユーザの好みに合わせて変更することはできない。この結果、ユーザは同じ動作しか繰り返さない玩具をやがては飽きてしまうことになる。
【０００９】
これに対し、自律動作を行うインテリジェントなロボットは、一般に、外界の情報を認識してそれに対して自身の行動を反映させる機能を持っている。すなわち、ロボットは、外部環境からの音声や画像、触覚などの入力情報に基づいて感情モデルや本能モデルを変化させて動作を決定することにより、自律的な思考及び動作制御を実現する。すなわち、ロボットが感情モデルや本能モデルを用意することにより、より高度な知的レベルで人間とのリアリスティックなコミュニケーションを実現することも可能となる。
【００１０】
インテリジェントなロボットは、高い情報処理能力を持ち、一種のコンピュータとして捉えることもできる。他方、ネットワーク技術の発展に伴い、ＬＡＮ（Local Area Network）などの通信媒体を介して複数のコンピュータを接続して、周辺機器の共有化を図ったり、電子メールやデータの転送などの情報交換を行うことが盛んである。特に最近では、有線ケーブル以外の伝送路を利用した無線通信路が有望である。何故ならば、有線ケーブルの大半を省略することにより、作業空間内で端末を比較的容易に移動させることができるからである。
【００１１】
ロボットは、スタンドアロン状態でも自律的な行動により、ユーザを充分に楽しませることができるが、ネットワーク接続機能を装備することにより、必要なデータやプログラムを動的に取得して自律行動の制御に活用することができる。例えば、ユーザとの会話中に、ニュースなどの時々刻々と更新される情報やその他ユーザが求める情報をインターネットなどの広域ネットワーク上で検索し動的に引き出して、言葉や動作でユーザに提供することができ、この結果、ユーザに提供可能なサービスが拡充される。
【００１２】
例えば、インターネット接続が可能なロボットは、ユーザとの会話のコンテキストに応じて、ＷＷＷ（World Wide Web）情報空間を探索して、ニュースなどの生活・情報系のサービス、占いやゲームなどのエンターティンメント系のサービス、お店案内や辞書引きなどのデータベース系のサービス、モバイル・バンキングなどの取引系のサービスをユーザに提供することができる。さらには、ロボット自身の行動制御を規定するプログラム・コードなども随時取得して、新規の動作を発現したりすることができる。
【００１３】
また、無線通信機能を用いてネットワークに接続することにより、ロボットの行動半径がケーブル長によって制限されたり、脚部動作がケーブルの干渉を受けたりすることがなくなるので、ロボットの脚式作業を確保することができる。ここで、無線通信としては、例えばＩＥＥＥ８０２．１１ｂやＢｌｕｅｔｏｏｔｈなどを挙げることができる。
【００１４】
ところで、通常のコンピュータ上でのインターネット検索は、キーボードやマウスなどのユーザ・インターフェースを用いたり、音声認識技術を用いた音声入力により得られたテキスト形式の検索条件（キーワードなど）を基に行われる。そして、検索結果は、ディスプレイ画面上でのブラウザ表示を使用するものが主流である。
【００１５】
また、最近では、ＰＤＡ（Personal Digital Assistant）などの携帯情報端末や携帯電話機などがパーソナル情報ツールとして進化してきている。例えば、携帯電話機は、ｉモードをはじめとしたインターネット接続サービスにより、「話す」から「使う」ものとしての機能を満たしつつある。これら携帯情報端末や携帯電話機におけるインターネット接続は、キーボードやディスプレイを基調としたインタラクションを利用するものである。
【００１６】
これに対し、ロボットは、通常、キーボードやディスプレイなどのユーザ・インターフェースを持たない。このため、音声や画像の入力を通じて得られた情報、例えばユーザとの会話のコンテキストを基に、検索条件を形成して、インターネット上の情報空間を探索することになる。また、ブラウザ表示に頼らず、ユーザとの会話や脚部などを利用した動作パターンによって検索結果をユーザにフィードバックする。
【００１７】
【発明が解決しようとする課題】
本発明の目的は、ニュースなどの時々刻々と更新される情報やその他会話中にユーザが求める情報を言葉や動作で提供することができる、優れたロボット装置及びその制御方法、ロボットのための情報提供システム及び情報提供方法、並びに記憶媒体を提供することにある。
【００１８】
本発明の更なる目的は、ユーザとのインタラクションに応じてネットワーク接続して必要なデータやプログラムを動的に取得し、ユーザとのコミュニケーションに活用することができる、優れたロボット装置及びその制御方法、ロボットのための情報提供システム及び情報提供方法、並びに記憶媒体を提供することにある。
【００１９】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、外部環境の変化に応じた自律的な動作が可能なロボット装置又はその制御方法であって、
ユーザからの要求を認識する要求認識手段又はステップと、
該認識された要求に回答するための情報を探索する情報探索手段又はステップと、
ユーザからの要求に回答するための情報を蓄積する情報蓄積手段又はステップと、
ユーザとの対話を制御する対話制御手段又はステップと、
を具備することを特徴とするロボット装置又はその制御方法である。
【００２０】
ここで、前記要求認識手段又はステップは、画像又は音声の入力結果を基にユーザからの要求を認識することができる。
【００２１】
また、前記情報探索手段又はステップは、ユーザからの要求に回答するための情報がロボット装置内のローカルな情報蓄積手段に蓄積されていない場合には、所定の通信媒体を介して接続される外部装置に情報要求するようになっている。
【００２２】
また、前記対話制御手段又はステップは、前記情報探索手段又はステップによる探索結果を基にユーザとの対話を行うようになっている。
【００２３】
また、前記対話制御手段又はステップは、前記要求認識手段又はステップにより認識された結果だけでは充分に要求が特定されておらず前記情報探索手段又はステップが情報を探索することができない場合には、さらにユーザの要求を特定するための対話を生成するようになっている。
【００２４】
また、ユーザからの要求に回答するための情報がロボット装置内のローカルな情報蓄積手段に蓄積されておらず前記情報探索手段又はステップが所定の通信媒体を介して接続される外部装置に情報要求する場合には、前記対話制御手段又はステップは、ユーザの要求に関連する対話を生成して、ユーザとの会話が途切れないようにすることができる。
【００２５】
また、前記対話制御手段又はステップは、前記情報探索手段又はステップが所定の通信媒体を介して接続される外部装置に情報要求する場合には、ユーザの要求に関連する対話行動を一旦スリープさせ、前記外部装置からの情報転送が完了したことに応答して該スリープさせておいた対話行動を再起動するようにしてもよい。
【００２６】
しかして、本発明の第１の側面に係るロボット装置又はその制御方法によれば、ロボットは、音声や画像を通じてなされるユーザのリクエストに応じて、特定の中継サーバにリクエストを転送する。これに対し、中継サーバは、ローカルの記憶システムにない情報が要求されているときには、さらにインターネットのような広域ネットワーク上の情報空間を検索して、検索結果をロボットの動きや発話内容などのデータとしてロボットに送り返す。したがって、ロボットは、中継サーバからの受信データを用いて機体動作や音声としてユーザのリクエストに答えることができる。
【００２７】
また、本発明の第２の側面は、ロボットのための情報提供システム又は情報提供方法であって、
ロボットと所定の通信プロトコルにより接続する第１の接続手段又はステップと、
情報提供空間が構築された広域ネットワークに接続する第２の接続手段又はステップと、
前記第１の接続手段又はステップを介してロボットから受信する要求メッセージに従って、前記第２の接続手段又はステップを介して前記情報空間を探索する情報探索手段又はステップと、
前記情報探索手段又はステップによる探索結果を基に要求元のロボットに対する回答メッセージを生成して、前記第１の接続手段又はステップを介して要求元のロボットに返信する探索結果処理手段又はステップと、
を具備することを特徴とするロボットのための情報提供システム又は情報提供方法である。
【００２８】
但し、ここで言う「システム」とは、複数の装置（又は特定の機能を実現する機能モジュール）が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【００２９】
ここで、前記第１の接続手段又はステップは、オブジェクト間通信によりロボットと接続するようにしてもよい。また、前記情報探索手段又はステップは、ＨＴＴＰ（Hyper Text Transfer Protocol）プロトコルを用いてＷＷＷ（World Wide Web）情報提供空間を探索するようにしてもよい。このような場合、ロボット側では、情報探索のためにＴＣＰ／ＩＰのような処理負荷の高い通信プロトコルを実装する必要がなくなり、機体上の演算機能を機体の動作制御に専念させることができるとともに、機体のコストを低減することができる。
【００３０】
また、前記探索結果処理手段又はステップは、前記情報探索手段又はステップによる探索結果を動きや発話内容などのデータに変換して、前記第１の接続手段を介して要求元のロボットに返信するようにしてもよい。
【００３１】
また、前記第１の接続手段又はステップを介して接続されるロボットからはあらかじめ相互に知っているトピックに関してあらかじめ規定された情報スロットを含んだ要求メッセージを受信するとともに、前記探索結果処理手段又はステップは該情報スロットに探索結果から得られた情報を書き込んで返信メッセージを生成するようにしてもよい。
【００３２】
本発明の第２の側面に係るロボットのための情報提供システムによれば、インターネットのような広域ネットワーク上の情報空間を検索して、検索結果をロボットの動きや発話内容などのデータとしてロボットに送り返すことができる。したがって、ロボットは、中継サーバからの受信データを用いて機体動作や音声としてユーザのリクエストに答えることができる。
【００３３】
また、本発明の第３の側面は、ロボットのための情報提供処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、前記コンピュータ・ソフトウェアは、
ロボットと所定の通信プロトコルにより接続する第１の接続ステップと、
情報提供空間が構築された広域ネットワークに接続する第２の接続ステップと、
前記第１の接続ステップによりロボットから受信する要求メッセージに従って、前記第２の接続ステップにより前記情報空間を探索する情報探索ステップと、
前記情報探索ステップによる探索結果を基に要求元のロボットに対する回答メッセージを生成して、前記第１の接続ステップにより要求元のロボットに返信する探索結果処理ステップと、
を具備することを特徴とする記憶媒体である。
【００３４】
本発明の第３の側面に係る記憶媒体は、例えば、さまざまなプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ・ソフトウェアをコンピュータ可読な形式で提供する媒体である。このような媒体は、例えば、ＣＤ（Compact Disc）やＦＤ（Floppy Disk）、ＭＯ（Magneto-Optical disc）などの着脱自在で可搬性の記憶媒体である。あるいは、ネットワーク（ネットワークは無線、有線の区別を問わない）などの伝送媒体などを経由してコンピュータ・ソフトウェアを特定のコンピュータ・システムに提供することも技術的に可能である。
【００３５】
このような記憶媒体は、コンピュータ・システム上で所定のコンピュータ・ソフトウェアの機能を実現するための、コンピュータ・ソフトウェアと記憶媒体との構造上又は機能上の協働的関係を定義したものである。換言すれば、本発明の第３の側面に係る記憶媒体を介して所定のコンピュータ・ソフトウェアをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第２の側面に係るロボットのための情報提供システム及び情報提供方法と同様の作用効果を得ることができる。
【００３６】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００３７】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００３８】
図１及び図２には、本発明の実施に供される脚式移動ロボット１００が直立している様子を前方及び後方の各々から眺望した様子を示している。この脚式移動ロボット１００は、「人間形」又は「人間型」と呼ばれるタイプであり、後述するように、音声や画像などの外部刺激の認識結果に基づいて自律的に行動制御を行うことができる。図示の通り、脚式移動ロボット１００は、脚式移動を行う左右２足の下肢と、体幹部と、左右の上肢と、頭部とで構成される。
【００３９】
左右各々の下肢は、大腿部と、膝関節と、脛部と、足首と、足平とで構成され、股関節によって体幹部の略最下端にて連結されている。また、左右各々の上肢は、上腕と、肘関節と、前腕とで構成され、肩関節によって体幹部上方の左右各側縁にて連結されている。また、頭部は、首関節によって体幹部の略最上端中央に連結されている。
【００４０】
体幹部ユニット内には、図１及び図２上では見えていない制御部が配備されている。この制御部は、脚式移動ロボット１００を構成する各関節アクチュエータの駆動制御や各センサ（後述）などからの外部入力を処理するコントローラ（主制御部）や、電源回路その他の周辺機器類を搭載した筐体である。制御部は、その他、遠隔操作用の通信インターフェースや通信装置を含んでいてもよい。
【００４１】
図３には、本実施形態に係る脚式移動ロボット１００が具備する関節自由度構成を模式的に示している。図示の通り、脚式移動ロボット１００は、２本の腕部と頭部１を含む上体と、移動動作を実現する２本の脚部からなる下肢と、上肢と下肢とを連結する体幹部とで構成される。
【００４２】
頭部１を支持する首関節は、首関節ヨー軸２と、首関節ピッチ軸３と、首関節ロール軸４という３自由度を有している。
【００４３】
また、各腕部は、肩関節ピッチ軸８と、肩関節ロール軸９と、上腕ヨー軸１０と、肘関節ピッチ軸１１と、前腕ヨー軸１２と、手首関節ピッチ軸１３と、手首関節ロール軸１４と、手部１５とで構成される。手部１５は、実際には、複数本の指を含む多関節・多自由度構造体である。但し、手部１５の動作自体は、ロボット１００の姿勢安定制御や歩行動作制御に対する寄与や影響が少ないので、本明細書ではゼロ自由度と仮定する。したがって、左右の各腕部は７自由度を有するとする。
【００４４】
また、体幹部は、体幹ピッチ軸５と、体幹ロール軸６と、体幹ヨー軸７という３自由度を有する。
【００４５】
また、下肢を構成する左右各々の脚部は、股関節ヨー軸１６と、股関節ピッチ軸１７と、股関節ロール軸１８と、膝関節ピッチ軸１９と、足首関節ピッチ軸２０と、関節ロール軸２１と、足部（足底又は足平）２２とで構成される。人体の足部（足底）２２は、実際には多関節・多自由度の足底を含んだ構造体であるが、本実施形態に係る脚式移動ロボット１００の足底はゼロ自由度とする。したがって、左右の各脚部は６自由度で構成される。
【００４６】
以上を総括すれば、本実施形態に係る脚式移動ロボット１００全体としては、合計で３＋７×２＋３＋６×２＝３２自由度を有することになる。但し、脚式移動ロボット１００が必ずしも３２自由度に限定される訳ではない。設計・製作上の制約条件や要求仕様などに応じて、自由度すなわち関節数を適宜増減することができることは言うまでもない。
【００４７】
脚式移動ロボット１００が持つ上述の各関節自由度は、実際にはアクチュエータによる能動的な動作として実現される。装置の外観上で余分な膨らみを排してヒトの自然体形状に近似させることや、２足歩行という不安定構造体に対して姿勢制御を行うことなどの種々の要請から、関節アクチュエータは小型且つ軽量であることが好ましい。本実施形態では、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニットに内蔵したタイプの小型ＡＣサーボ・アクチュエータを搭載することとした。なお、脚式移動ロボット１００に適用可能な小型ＡＣサーボ・アクチュエータに関しては、例えば本出願人に既に譲渡されている特開２０００−２９９９７０号公報（特願平１１−３３３８６号明細書）に開示されている。
【００４８】
図４には、脚式移動ロボット１００の電気・制御系統の構成図を模式的に示している。同図に示すように、脚式移動ロボット１００は、全体の動作の統括的制御やその他のデータ処理を行う制御部１２０と、入出力部１４０と、駆動部１５０と、電源部１６０とで構成される。以下、各部について説明する。
【００４９】
入出力部１４０は、外部環境を検出する入力部として脚式移動ロボット１００の目に相当するＣＣＤカメラ１１５や、耳に相当するマイクロフォン１１６、触感に相当するタッチセンサ１１８、あるいは五感に相当するその他の各種のセンサを含む。また、ユーザ・フィードバックを行う出力部として、口に相当するスピーカ１１７、あるいは点滅の組み合わせや点灯のタイミングにより顔の表情を形成するＬＥＤインジケータ１１９などを装備している。これら出力部は、脚などによる機械運動パターン以外の形式で脚式移動ロボット１００からのユーザ・フィードバックを表現することができる。
【００５０】
脚式移動ロボット１００は、カメラ１１５を含むことで、作業空間上に存在する任意の物体の形状や色彩を認識することができる。また、脚式移動ロボット１００は、カメラのような視覚手段の他に、赤外線、音波、超音波、電波などの発信波を受信する受信装置をさらに備えていてもよい。この場合、各伝送波を検知するセンサ出力に基づいて発信源からの位置や向きを計測することができる。
【００５１】
駆動部１５０は、制御部１２０が指令する所定の運動パターンに従って移動ロボット１の機械運動を実現する機能ブロックであり、首関節７、尻尾関節８、股関節１１１Ａ〜１１１Ｄ、膝関節１１２Ａ〜１１２Ｄなどのそれぞれの関節におけるロール、ピッチ、ヨーなど各軸毎に設けられた駆動ユニットで構成される。図示の例では、脚式移動ロボット１００はｎ個の関節自由度を有し、したがって駆動部１５０はｎ個の駆動ユニットで構成される。各駆動ユニットは、所定軸回りの回転動作を行うモータ１５１と、モータ１５１の回転位置を検出するエンコーダ１５２と、エンコーダ１５２の出力に基づいてモータ１５１の回転位置や回転速度を適応的に制御する駆動制御回路１５３の組み合わせで構成される。
【００５２】
電源部１６０は、その字義通り、脚式移動ロボット１００内の各電気回路等に対して給電を行う機能モジュールである。本実施形態に係る脚式移動ロボット１００は、バッテリを用いた自律駆動式であり、電源部１６０は、充電バッテ１リ６１と、充電バッテリ１６１の充放電状態を管理する充放電制御部１６２とで構成される。
【００５３】
充電バッテリ１６１は、例えば、複数本のニッケル・カドミウム電池セルをカートリッジ式にパッケージ化した「バッテリ・パック」の形態で構成される。
【００５４】
また、充放電制御部１６２は、バッテリ１６１の端子電圧や充電／放電電流量、バッテリ１６１の周囲温度などを測定することでバッテリ１６１の残存容量を把握し、充電の開始時期や終了時期などを決定するようになっている。充放電制御部１６２が決定する充電の開始及び終了時期は制御部１２０に通知され、脚式移動ロボット１００が充電オペレーションを開始したり終了するためのトリガとなる。
【００５５】
制御部１２０は、「頭脳」に相当し、例えば脚式移動ロボット１００の頭部ユニットあるいは胴体部ユニットに搭載される。
【００５６】
図５には、制御部１２０の構成をさらに詳細に図解している。同図に示すように、制御部１２０は、メイン・コントローラとしてのＣＰＵ（Central Processing Unit）１２１が、メモリその他の各回路コンポーネントや周辺機器とバス接続された構成となっている。バス１２８は、データ・バス、アドレス・バス、コントロール・バスなどを含む共通信号伝送路である。
【００５７】
ＲＡＭ（Random Access Memory）１２２は、ＤＲＡＭ（Dynamic RAM）などの揮発性メモリで構成された書き込み可能メモリであり、ＣＰＵ１２１が実行するプログラム・コードをロードしたり、実行プログラムによる作業データの一時的な保存のために使用される。
【００５８】
ＲＯＭ（Read Only Memory）１２３は、プログラムやデータを恒久的に格納する読み出し専用メモリである。ＲＯＭ１２３に格納されるプログラム・コードには、脚式移動ロボット１００の電源投入時に実行する自己診断テスト・プログラムや、脚式移動ロボット１００の動作を規定する動作制御プログラムなどが挙げられる。
【００５９】
本実施形態に係るロボット１００は、動作制御プログラムによって、外部刺激の認識結果や内部状態の変化に応じて行動制御を行うことができるが、行動制御のシステム構成については後述に譲る。
【００６０】
不揮発性メモリ１２４は、例えばＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）のように、電気的に消去再書き込みが可能なメモリ素子で構成され、逐次更新すべきデータを不揮発的に保持するために使用される。逐次更新すべきデータには、例えば、製造番号や暗号鍵などのセキュリティ情報などが挙げられる。
【００６１】
インターフェース１２５は、制御部１２０外の機器と相互接続し、データ交換を可能にするための装置である。インターフェース１２５は、例えば、カメラ１１５やマイクロフォン１１６、スピーカ１１７との間でデータ入出力を行う。また、インターフェース１２５は、駆動部１５０内の各駆動回路１５３−１…との間でデータやコマンドの入出力を行う。
【００６２】
また、インターフェース１２５は、ＲＳ（Recommended Standard）−２３２Ｃなどのシリアル・インターフェース、ＩＥＥＥ（Institute of Electrical and electronics Engineers）１２８４などのパラレル・インターフェース、ＵＳＢ（Universal Serial Bus）インターフェース、ｉ−Ｌｉｎｋ（ＩＥＥＥ１３９４）インターフェース、ＳＣＳＩ（Small Computer System Interface）インターフェース、メモリ・カード・インターフェースなどのような、コンピュータの周辺機器接続用の汎用インターフェースを備え、ローカル接続された外部機器との間でプログラムやデータの移動を行うようにしてもよい。
【００６３】
また、インターフェース１２５の他の例として、赤外線通信（ＩｒＤＡ）インターフェースを備え、外部機器と無線通信を行うようにしてもよい。
【００６４】
さらに、制御部１２０は、無線通信インターフェース１２６を含み、Ｂｌｕｅｔｏｏｔｈのような近距離無線データ通信やＩＥＥＥ８０２．１１ｂのような無線ネットワークにより機体の数メートル以内に配設されたアクセスポイント２０１との間で無線データ通信を行うことができる。アクセスポイント２０１は、さらにＬＡＮなどの小規模ネットワークやインターネットなどの広域ネットワークに相互接続され、ロボット１００をネットワーク上の情報提供空間へと導くことができる。
【００６５】
同図に示すように、無線通信機能を用いてネットワークに接続することにより、ロボット１００の行動半径がケーブル長によって制限されたり、脚部動作がケーブルの干渉を受けたりすることがなく、ロボット１００の脚式作業を確保することができる。
【００６６】
また、脚式移動ロボット１００は、このようなネットワーク接続機能を装備することにより、必要なデータやプログラムを動的に取得してコミュニケーションに活用することができる。例えば、ユーザとの会話中に、ニュースなどの時々刻々と更新される情報やその他ユーザが求める情報をインターネットなどの広域ネットワーク上で検索し動的に引き出して、言葉や動作でユーザに提供することができ、サービスが拡充される。
【００６７】
なお、インターネットのようなネットワークに相互接続するためには、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）のような比較的処理負荷の高い通信プロトコルを装備する必要がある。また、ＷＷＷ（World Wide Web）のような情報提供空間に対して、ＨＴＴＰ（Hyper Text Transfer Protocol）メッセージを利用して所望のコンテンツを引き出すのが一般的である。これに対し、本実施形態では、通信に伴う処理負荷の軽減による機体動作のリアルタイム性の確保や低コスト化のため、ロボット１００自身にはＴＣＰ／ＩＰを搭載せず、また、情報要求にＨＴＴＰを使用しない。これに代わって、ロボット１００とＷＷＷ情報空間（情報提供サーバ２０３）との間には、中継サーバ２０２が介在する。
【００６８】
中継サーバ２０２は、ＴＣＰ／ＩＰ以外の処理負荷の軽い通信プロトコル（オブジェクト間通信：後述）によりロボット１００と接続するとともに、ローカルの記憶システムにない情報がロボット１００から要求されているときには、ＨＴＴＰを用いてインターネット上のＷＷＷ情報空間を検索して、その検索結果をさらにロボット１００の動きや発話内容などのデータに変換して、ロボット１００に送り返すようになっている。この結果、ロボット１００は、受信データを用いて機体動作や音声としてユーザのリクエストに答えることができる。中継サーバ１００の機能の詳細については後述に譲る。
【００６９】
本実施形態に係る脚式移動ロボット１００は、制御部１２０内のＣＰＵ１２１が所定の行動制御プログラムを実行することにより、外部刺激の認識結果や内部状態の変化に応じて行動制御を行うことができる。図６には、本実施形態に係る脚式移動ロボット１００において採用される行動制御システム５０の基本アーキテクチャを模式的に示している。
【００７０】
図示の行動制御システム５０にはオブジェクト指向プログラミングを採り入れることができる。この場合、各ソフトウェアは、データとそのデータに対する処理手続きとを一体化させた「オブジェクト」というモジュール単位で扱われる。また、各オブジェクトは、メッセージ通信と共有メモリを使ったオブジェクト間通信方法によりデータの受け渡しとＩｎｖｏｋｅを行なうことができる。
【００７１】
行動制御システム５０は、外部環境（Ｅｎｖｉｒｏｎｍｅｎｔｓ）を認識するために、視覚認識機能部５１と、聴覚認識機能部５２と、接触認識機能部５３を備えている。
【００７２】
視覚認識機能部（Ｖｉｄｅｏ）５１は、例えば、ＣＣＤ（Charge Coupled Device：電荷結合素子）カメラのような画像入力装置を介して入力された撮影画像を基に、顔認識や色認識などの画像認識処理や特徴抽出を行う。
【００７３】
聴覚認識機能部（Ａｕｄｉｏ）５２は、マイクなどの音声入力装置を介して入力される音声データを音声認識して、特徴抽出したり、単語セット（テキスト）認識を行ったりする。
【００７４】
接触認識機能部（Ｔａｃｔｉｌｅ）５３は、例えば機体の頭部などに内蔵された接触センサによるセンサ信号を認識して、「なでられた」とか「叩かれた」という外部刺激を認識する。
【００７５】
内部状態管理部（ＩＳＭ：Internal Status Manager）５４は、本能モデルや感情モデルを備え、上述の視覚認識機能部５１と、聴覚認識機能部５２と、接触認識機能部５３によって認識された外部刺激（ＥＳ：ＥｘｔｅｒｎａｌＳｔｉｍｕｌａ）に応じてロボット１００の本能や情動といった内部状態を管理する。
【００７６】
感情モデルと本能モデルは、それぞれ認識結果と行動履歴を入力に持ち、感情値と本能値を管理している。行動モデルは、これら感情値や本能値を参照することができる。
【００７７】
短期記憶部（ＳｈｏｒｔＴｅｒｍＭｅｍｏｒｙ）５５は、上述の視覚認識機能部５１と、聴覚認識機能部５２と、接触認識機能部５３によって外部環境から認識されたターゲットやイベントを短期間保持する機能モジュールである。例えば、カメラからの入力画像を約１５秒程度の短い期間だけ記憶する。
【００７８】
長期記憶部（ＬｏｎｇＴｅｒｍＭｅｍｏｒｙ）５６は、物の名前など学習により得られた情報を超期間保持するために使用される。長期記憶部５６は、例えば、ある行動モジュールにおいて外部刺激から内部状態の変化を連想記憶することができる。
【００７９】
本実施形態に係る脚式移動ロボット１００の行動制御は、反射行動部５９によって実現される「反射行動」と、状況依存行動階層５８によって実現される「商況依存行動」と、熟考行動階層５７によって実現される「熟考行動」に大別される。
【００８０】
反射的行動部（ＣｏｎｆｉｇｕｒａｔｉｏｎＤｅｐｅｎｄｅｎｔＡｃｔｉｏｎｓＡｎｄＲｅａｃｔｉｏｎｓ）５９は、上述の視覚認識機能部５１と、聴覚認識機能部５２と、接触認識機能部５３によって認識された外部刺激に応じて反射的な機体動作を実現する機能モジュールである。
【００８１】
反射行動とは、基本的に、センサ入力された外部情報の認識結果を直接受けて、これを分類して、出力行動を直接決定する行動のことである。例えば、人間の顔を追いかけたり、うなずくといった振る舞いは反射行動として実装することが好ましい。
【００８２】
状況依存行動階層（ＳｉｔｕａｔｅｄＢｅｈａｖｉｏｒｓＬａｙｅｒ）５８は、短期記憶部５５並びに長期記憶部５６の記憶内容や、内部状態管理部５４によって管理される内部状態を基に、脚式移動ロボット１００が現在置かれている状況に即応した行動を制御する。
【００８３】
状況依存行動階層５８は、各行動毎にステートマシンを用意しており、それ以前の行動や状況に依存して、センサ入力された外部情報の認識結果を分類して、行動を機体上で発現する。また、状況依存行動階層５８は、内部状態をある範囲に保つための行動（「ホメオスタシス行動」とも呼ぶ）も実現し、内部状態が指定した範囲内を越えた場合には、その内部状態を当該範囲内に戻すための行動が出易くなるようにその行動を活性化させる（実際には、内部状態と外部環境の両方を考慮した形で行動が選択される）。状況依存行動は、反射行動に比し、反応時間が遅い。
【００８４】
熟考行動階層（ＤｅｌｉｂｅｒａｔｉｖｅＬａｙｅｒ）５７は、短期記憶部５５並びに長期記憶部５６の記憶内容に基づいて、脚式移動ロボット１００の比較的長期にわたる行動計画などを行う。
【００８５】
熟考行動とは、与えられた状況あるいは人間からの命令により、推論やそれを実現するための計画を立てて行われる行動のことである。このような推論や計画は、ロボット１００がインタラクションを保つための反応時間よりも処理時間や計算負荷を要する可能性があるので、上記の反射行動や状況依存行動がリアルタイムで反応を返しながら、熟考行動は推論や計画を行う。
【００８６】
本実施形態に係る脚式移動ロボット１００は、ユーザの会話のコンテキストなどからユーザが求める情報を割り出して、中継サーバ２０２を介してインターネットなどの広域ネットワーク上で検索し動的に引き出して、言葉や動作でユーザに提供することができる。このような行動は、主として熟考行動階層５７によって行われる。
【００８７】
既に述べたように、ロボット１００自身はＴＣＰ／ＩＰを搭載せず、また、情報要求にＨＴＴＰを使用しない。これに代わって、ロボット１００とＷＷＷ情報空間（情報提供サーバ２０３）との間には、中継サーバ２０２が介在する。中継サーバ２０２は、ＴＣＰ／ＩＰ以外の処理負荷の軽い通信プロトコルによりロボット１００と接続するとともに、ローカルの記憶システムにない情報がロボット１００から要求されているときには、ＨＴＴＰを用いてインターネット上のＷＷＷ情報空間を検索する。さらに、中継サーバ２０２は、その検索結果をさらにロボット１００の動きや発話内容などのデータに変換して、ロボット１００に送り返すようになっている。この結果、ロボット１００は、受信データを用いて機体動作や音声としてユーザのリクエストに答えることができる。
【００８８】
図７には、本実施形態に係るロボット１００を取り巻くネットワーク構成を模式的に示している。
【００８９】
ロボット１００は、無線データ通信機能を装備しており、アクセス・ポイント２０１経由でネットワークに接続されている（前述）。ロボット１００には、ユーザから与えられた指示を認識する能力、あるいは、ロボットが自らの行動のために必要と判断するプログラムが存在する。
【００９０】
ここで言うネットワークには、ＬＡＮなどの小規模ネットワークやインターネットのような広域ネットワークが含まれる。
【００９１】
ネットワーク上には、ロボット１００のためにＷＷＷ情報探索を代行して行う中継サーバ２０２や、その他の多数のサーバ２０３，２０４…が存在する。ネットワーク上では、サーバなどの各ホストは例えばＴＣＰ／ＩＰプロトコルによって相互接続されている。
【００９２】
中継サーバ２０２は、ロボット１００に必要なプログラム（オブジェクト）や情報コンテンツ、データなどをあらかじめ記憶しておくとともに、随時これらを更新して、ネットワーク経由で特定のロボット１００あるいはすべてのロボットに配信する。また逆に、ロボット１００から送られてくるプログラム（オブジェクト）や情報コンテンツ、データなどを受信してローカルな記憶システムに格納することができる。
【００９３】
また、ネットワーク上には、有料又は無料で情報を提供する情報提供サーバ２０３，２０４が存在する。例えば、情報提供サーバ２０３は、ウェブサイトが構築された典型的なＷＷＷサーバとして稼働して、ＨＴＭＬ（Hyper Text Transfer Protocol）形式で記述された情報コンテンツを蓄積し情報公開している。中継サーバ２０２は、ＨＴＴＰを用いてＨＴＭＬコンテンツにアクセスすることができる。
【００９４】
他方の情報提供サーバ２０４は、ＧＤＡ（Global Document Annotation）形式で記述されたＧＤＡドキュメントを蓄積し情報公開するＧＤＡサーバとして稼働している。
【００９５】
ここでＧＤＡとは、係り受け、代名詞の指示対象、多義語の意味など、多言語間で共通の統語や意味などをタグ情報で記述する規格である。ＧＤＡタグはＸＭＬ（eXtensible Markup Language）の形式に従い、ＧＤＡでタギングされた各ファイルはエレメント（タグで区切られた文字列）の集合からなる。ＧＤＡドキュメントは、タグによって構造化されたデータであり、自然言語処理に利用し易く、機械翻訳や情報検索、要約、質問応答、知識発見などへの応用が利く。（ＧＤＡに関しては、例えばhttp://www.carc.aist.go.jp/nlwww/i-content/gda/を参照されたい）
【００９６】
中継サーバ２０２は、ローカルの記憶システムにない情報がロボット１００から要求されているときには、ＨＴＴＰを用いてインターネット上のＷＷＷ情報提供空間を検索して、情報提供サーバ２０３，２０４などから取得することができる。
【００９７】
さらに中継サーバ２０２は、ＷＷＷサーバ２０３から取得したＨＴＭＬドキュメントに含まれる文字情報を解析し、意味に基づくタグ付け処理して蓄積しておく。タグ付け処理は、情報の要求元であるロボット１００が行ってもよいが、プロセッサの処理速度やメモリ容量、ハード・ディスク容量などを勘案すると、中継サーバ２０２において行うことが好ましい。また、ＧＤＡサーバ２０４から取得したＧＤＡドキュメントに関しては、既にタグ付け処理がなされているので、中継サーバ２０２側での文字情報解析の処理負荷は軽くて済む。
【００９８】
図８には、本実施形態に係るロボット１００と中継サーバ２０２を相互接続する構成を模式的に示している。
【００９９】
ロボット１００側では、主として熟考行動階層５７の動作により、ユーザの会話のコンテキストなどからユーザが求める情報を割り出して、自らＷＷＷ情報提供空間を探索することはなく、中継サーバ２０２に対して情報の取得並びに提供をリクエストする。
【０１００】
これに対し、中継サーバ２０２側では、問合せ解析及び検索エンジンを装備しており、ロボット１００から送られてきたリクエストに基づいた探索と、集めた情報を基に、リクエストに対する必要な情報の作成処理を行う。
【０１０１】
問合せ解析及び検索エンジンは、まず、中継サーバ２０２のローカル記憶システムで所望の情報を探索し、其処で見つからなければ、さらにＷＷＷサーバ２０３やＧＤＡサーバ２０４などの外部サーバを検索対象とする。これら外部サーバとはＴＣＰ／ＩＰプロトコルによって相互接続されており、ＨＴＴＰを用いて情報コンテンツにアクセスすることができる。
【０１０２】
また、ネットワーク上の情報空間から集められたＨＴＭＬやＧＤＡ形式の情報コンテンツは、そのままではロボット１００側が処理することができない（又は、困難である）。そこで、問合せ解析及び検索エンジンは、その検索結果をさらにロボット１００の動きや発話内容などのデータに変換して、ロボット１００に送り返す。
【０１０３】
このようにロボット１００のための情報検索処理を、ロボット１００と中継サーバ２０２とで分業している１つの大きな理由は、ロボット１００側におけるユーザとのインタラクションにおけるリアルタイム性を維持することにある。
【０１０４】
ロボット１００は、通常、ユーザと直接インタラクションをしているが、インタラクションにおいてリアルタイムでの反応は不可欠であり、この点で、サーバ２０２側が行う処理とは性質を異にする。
【０１０５】
また、図６に示したような行動制御システム５０の構成は、反射行動や状況依存行動などのリアルタイムの処理と、処理時間を要する熟考行動とを階層的に分けることで、ユーザに対するインタラクションを自然に見せている。
【０１０６】
したがって、通常の対話処理をロボット１００内部で実行する一方で、情報検索などの時間を要する処理をロボット１００外のサーバ２０２に委ねている、という訳である。
【０１０７】
図８に示すように、ロボット１００及び中継サーバ５７はともにゲートウェイ・オブジェクトを備えており、ロボット１００側の熟考制御階層５７と中継サーバ２０２側の問合せ解析及び検索エンジンとは、ＨＴＴＰプロトコルではなくオブジェクト間通信により接続されている。ゲートウェイ・オブジェクトは、ネットワークの出入口として機能し、オブジェクト間通信とＴＣＰ／ＩＰプロトコルの変換を行う。
【０１０８】
図９には、典型的な２つのオブジェクト間通信の基本概念を図解している。同図には、２つのオブジェクト間でのデータのやり取りの基本と、"Ｒｅａｄｙ"と"Ｎｏｔｉｆｙ"を用いてオブジェクト間通信を行うことで緩やかな同期がとられていることが示されている。また、データ通信は、各オブジェクト内の"Ｓｕｂｊｅｃｔ"及び"Ｏｂｓｅｒｖｅｒ"という代理プログラムが行うので、各オブジェクトを設計するために通信相手に関する情報をまったく必要としない。
【０１０９】
オブジェクト間の接続は、システム起動時に行われる。図１０には、１つのＳｕｂｊｅｃｔと１つのＯｂｓｅｒｖｅｒの間におけるオブジェクト間通信が成立する過程を示している。
【０１１０】
まず、ＳｕｂｊｅｃｔとＯｂｓｅｒｖｅｒはそれぞれ自分自身をサービス名とシステム起動時に割り当てられた自分のＩＤとを結び付けて、ＳｅｒｖｉｃｅＭａｎａｇｅｒに登録する。ＳｅｒｖｉｃｅＭａｎａｇｅｒは、オブジェクトの１つであるが、どのＳｕｂｊｅｃｔとどのＯｂｓｅｒｖｅｒとを結合させるかを記述したデータを外部から受け取ることができる。図１０に示す例では、ＳｅｒｖｉｃｅＭａｎａｇｅｒは、ＣｏｎｎｅｃｔＦｉｌｅと呼ばれるファイルから読み出すことによって受け取っている。
【０１１１】
ＳｕｂｊｅｃｔとＯｂｓｅｒｖｅｒというオブジェクトはともに、設計時にお互いの存在を仮定せずにコーディングすることができる。必要なことは、どのようなデータ構造を入出力するかであり、どのオブジェクトがその入出力を行うかは、ＣｏｎｎｅｃｔＦｉｌｅに記述されており、そのデータに従ってオブジェクト間通信が構築される。
【０１１２】
先述のゲートウェイ・オブジェクトは、ネットワークの出入口として存在し、図１０に示したようなオブジェクト間通信とＴＣＰ／ＩＰプロトコルの変換を行う。各ゲートウェイ・オブジェクトには、ｐｏｒｔ．ｃｆｇと言う設定ファイルがあり、そのデータによってオブジェクト間通信で定義される通信のサービス名とＴＣＰ／ＩＰ通信で用いられるＩＰアドレスとポート番号の対応をとることができる。
【０１１３】
ゲートウェイ・オブジェクトの一方はサーバ（ターゲット・システム）であり、他方はクライアント（リモート・システム）の働きをするが、これは図８に示した実施形態にも該当する。
【０１１４】
各ゲートウェイ・オブジェクトは、図１０を参照しながら説明した手順に従って、Ｏｂｓｅｒｖｅｒ又はＳｕｂｊｅｃｔを動的に生成して、ｐｏｒｔ．ｃｆｇに記述されているサービス名とそのＯｂｓｅｒｖｅｒ又はＳｕｂｊｅｃｔが持つオブジェクトＩＤとを結び付けて、各々のシステム上のＳｅｒｖｉｃｅＭａｎａｇｅｒに登録する。ｐｏｒｔ．ｃｆｇに記述差された分だけ幾つでもサービスを登録することができるので、ネットワークを介して通信したいサービスはｐｏｒｔ．ｃｆｇに記述することで自由に設定することができる。また、このサービス名は、ｐｏｒｔ．ｃｆｇに記述されたネットワーク・ポート（ＩＰアドレスとポート番号）に対応するために、結局は、Ｏｂｓｅｒｖｅｒ又はＳｕｂｊｅｃｔが持つオブジェクトＩＤとポート番号が対応することになる。ネットワーク上で異なる場所に存在するゲートウェイ・オブジェクトにおいて、ｐｏｒｔ．ｃｆｇの記述を対応させる（すなわち、対応するオブジェクト間通信サービス名に対して同じポート番号を割り当てる）ことで、ネットワークの一方と他方でオブジェクト間通信の対応をとることができる。
【０１１５】
オブジェクト間の接続を行うシーケンスにおいて、クライアント側のゲートウェイ・オブジェクト内のＯｂｓｅｒｖｅｒ又はＳｕｂｊｅｃｔに接続要求が到来したときに、対応するポート番号に対して"ｃｏｎｎｅｃｔ（）"を行う。ここで、ターゲットすなわちサーバ側のゲートウェイ・オブジェクトが既に起動していれば、接続が成立する。また、ターゲット側で準備できていなければ、数秒後に再接続を試み、準備ができるまで待機する。
【０１１６】
一度接続が成立すれば、以後、ゲートウェイ・オブジェクト中のＯｂｓｅｒｖｅｒ又はＳｕｂｊｅｃｔがＮｏｔｉｆｙやＲｅａｄｙメッセージなどのデータを受信する度に、対応するポートにそのメッセージを送り込む。また逆に、ネットワーク・ポートがデータを受信すれば、対応するＯｂｓｅｒｖｅｒ又はＳｕｂｊｅｃｔからＮｏｔｉｆｙ又はＲｅａｄｙメッセージを送り出す。
【０１１７】
また、ゲート・オブジェクト同士で接続確立後、ソフトウェアの一部をネットワークを介したリモート・システムで動作させようとした場合、コネクションを切断して、その間に仮想的なゲートウェイ・オブジェクトを１つ置いて、それに接続を行なうことと等価である。
【０１１８】
仮想的なゲートウェイ・オブジェクトの中ではデータの受け渡しがすべて行われているので、ゲートウェイ・オブジェクトに接続されたオブジェクトはネットワークを介した通信をまったく意識する必要がない。また、仮想的なゲートウェイ・オブジェクトの設置は、オブジェクト間の接続の変更であるので、オブジェクトのコードに変更を新たに加える必要はなく、単にＣｏｎｎｅｃｔｉｏｎＦｉｌｅを書き換えるだけで済む。
【０１１９】
次いで、ロボット１００と中継サーバ２０２の協働的処理によって、ロボット１００と対話中のユーザに提供されるサービスの内容について説明する。ここでは、ユーザとロボット１００の間で以下に示すようなインタラクションが行われている場合を例にとって説明する。
【０１２０】
ユーザ：”今日の天気は？”
ロボット：”今どこにいるんだっけ？”
ユーザ：”東京だよ”
ロボット：”ちょっと待ってね、調べるから”
（ロボットは中継サーバと更新して、今日の天気に関する情報を取得して、ロボット内の記憶システムに格納する）
ロボット：”晴れてたらいいね”
ユーザ：”今どこにいるんだっけ？”
………
ロボット：”今日の東京の天気は、晴れだよ”
ユーザ：”これから大阪に行くんだけど、雨降らないよね”
（ロボットは、先ほど格納した情報を検索し、大阪の天気を調べる）
ロボット：”大阪は、６時から雨の確率が６０％になっているよ”
ユーザ：”ほんと！じゃ傘持っていかなきゃ。サンキュー”
ロボット：”どういたしまして”
【０１２１】
このようなインタラクションを成立させるためのロボット１００と中継サーバ２０２の協働的処理について、図１１を参照しながら具体的に説明する。
【０１２２】
図１１に示した一連のインタラクションにおいて、ユーザからロボット１００へのリクエストは、２回発生している。
【０１２３】
このうちの１度目のリクエストは"今日の天気は？"である。ロボット１００は、ユーザからのこのリクエストを音声入力して、聴覚認識機能部５２により音声認識してテキスト変換する。
【０１２４】
また、熟考行動階層５７では、リクエストの内容が天気情報であることや、”今日の天気は？”という情報だけでは曖昧で情報を特定できないということ、現在のロボット１００内の記憶システムに蓄積されている情報だけではこのリクエストに答えられないという状況を判断する。そして、ユーザに対しては、リクエストの内容を限定するためのインタラクションを計画する。
【０１２５】
この結果、ロボット１００は、”今どこにいるんだっけ？”という問いかけをユーザに行い、これに対するユーザからの”東京だよ。”という返事を基にリクエストの内容を特定する。そして、熟考行動階層５７は、図８に示したようなオブジェクト間通信のメカニズムを利用して、中継サーバ２０２に対してリクエストを送信する。
【０１２６】
中継サーバ２０２は、オブジェクト間通信によりロボット１００からのリクエストを受信すると、ＴＣＰ／ＩＰプロトコルの変換を行い、ＨＴＴＰを用いてＷＷＷ情報空間上で天気情報を検索する。そして、その検索結果をさらにロボット１００の動きや発話内容などのデータに変換して、ロボット１００に送り返す。中継サーバ２０２側で行う処理の詳細については、後述に譲る。
【０１２７】
中継サーバ２０２を介した情報の取得には時間を要するので、熟考行動階層５７は、ユーザとの会話が途切れるような好ましくない（若しくは不快な）状況を回避するための行動計画を立案する。例えば、図１１に示すように、”晴れたらいいね”のような、会話をつなぐようなインタラクションを生成する。勿論、ユーザの直近のリクエストに関連する会話や挙動を立案してもよいが、これに限定されず、ユーザのプロファイルや他の状況から導出される会話や挙動を立案してもよい。
【０１２８】
そして、中継サーバ２０２から、図８に示すようなオブジェクト間通信のメカニズムを利用して天気情報をダウンロードすると、ロボット１００は、これをローカルの記憶システムに格納するとともに、”今日の東京の天気は、晴れだよ”というリクエストに対する応答を生成する。
【０１２９】
また、ユーザからの２度目のリクエストは”これから大阪に行くんだけど、雨降らないよね”である。ロボット１００は、ユーザからのこのリクエストを音声入力して、聴覚認識機能部５２により音声認識してテキスト変換する。
【０１３０】
また、熟考行動階層５７では、最初のリクエストに対する応答のために既に天気情報を取得しており、ローカル記憶システムに格納されたデータを基に２度目のリクエストに対応できるという状況を判断して、再び中継サーバ２０２にアクセスすることなく、ローカル記憶システムを検索して今日の大阪の天気情報を取得して、”大阪は、６時から雨の確立が６０％になっているよ”という返事をユーザに返すことができる。
【０１３１】
次いで、ユーザからの最初のリクエストを処理する場合を例にとって、中継サーバ２０２側での処理について説明する。
【０１３２】
図８を参照しながら説明したように、ロボット１００内の熟考行動階層５７と中継サーバ２０２側の問合せ解析及び検索エンジンは、オブジェクト間通信により接続されている。
【０１３３】
熟考行動階層５７では、”今日の天気は、（場所：東京）”というリクエストに対する答えを得るために、中継サーバ２０２の問合せ解析及び検索エンジンに対して、リクエストを論理的な形式に変換したメッセージを送信する。このメッセージは、例えば、”ＱＩＤ＝１；Ｃｏｎｔｅｎｔｓ＝ｗｅａｔｈｅｒ；Ｌｏｃａｔｉｏｎ＝Ｔｏｋｙｏ．Ｊａｐａｎ；Ｄａｔｅ＝Ｔｏｄａｙ”のように、質問番号、質問内容、場所、期日…などのリクエストを特定するエレメントを列挙したフォーマットを備えている。
【０１３４】
中継サーバ２０２側での処理は、ロボット１００から送られてきたリクエストに基づいた情報検索（ローカル記憶システム内の検索と、サーバ２０３外のＷＷＷ検索の双方を含む）と、収集した情報によりリクエストに対するロボット１００に必要な情報を生成する処理に大別される。勿論、ロボット１００との通信は常に行われている。
【０１３５】
上述したロボット１００からのリクエスト”ＱＩＤ＝１；Ｃｏｎｔｅｎｔｓ＝ｗｅａｔｈｅｒ；Ｌｏｃａｔｉｏｎ＝Ｔｏｋｙｏ．Ｊａｐａｎ；Ｄａｔｅ＝Ｔｏｄａｙ”は、中継サーバ２０２とロボット１００があらかじめ相互に知っている”Ｗｅａｔｈｅｒ（天気）”というトピックに関して、あらかじめ規定された情報スロットに中継サーバ２０２が情報を書き込むという処理を行う。Ｗｅａｔｈｅｒというドメイン（コンテンツ）に対して、補助的にＬｏｃａｔｉｏｎ（場所）やＤａｔｅ（日付）を入れて、Ｗｅａｔｈｅｒ＝？で？に情報を挿入するような質問である。
【０１３６】
中継サーバ２０２では、この質問に対して、例えばあらかじめ登録してある天気情報を公開するウェブページにアクセスして、例えば以下に示すようなＨＴＭＬ形式で記述された天気情報を取得する。
【０１３７】
【数１】
0003925140.tif 000002
【０１３８】
ＨＴＭＬドキュメントはタグによって構造化されたデータであり、所定の文書解析を行うことにより、東京地方の今日の天気が晴れであることが分かる。勿論、大阪などの他の地域・地方の天気情報を同様に抽出することができる。このようなタグ付きデータの解析処理により、ロボット１００からのリクエストに対する応答メッセージを作成することができる。応答メッセージは、例えば”ＡｎｓＴ０＝１；Ｃｏｎｔｅｎｔｓ＝Ｗｅａｔｈｅｒ；Ｄａｔｅ＝Ｔｏｄａｙ；（Ｔｏｋｙｏ．Ｊａｐａｎ，Ｆａｉｒ），（Ｏｓａｋａ．Ｊａｐａｎ，Ｆａｉｒ），（…）…”のように、回答番号、回答内容、期日、回答結果…という論理的な形式を持っている。
【０１３９】
ロボット１００側では、上述したような論理的な形式を持つ回答メッセージを受信すると、”東京の今日の天気は晴れ”という文章を生成することができる。すなわち、〈Ｌｏｃａｔｉｏｎ＝Ｔｏｋｙｏ〉という条件に対して、回答メッセージ中からＴｏｋｙｏ．Ｊａｐａｎにマッチするスロットを探して、天気情報としての”Ｆａｉｒ”を獲得し、”〈Ｌｏｃａｔｉｏｎ〉の〈Ｄａｔｅ〉は、〈？〉”という形式のテンプレート文に検索結果を逐次代入していって、回答文章を生成する訳である。
【０１４０】
なお、ロボット１００と中継サーバ２０２間の通信の状況が悪く、非常にデータ転送に時間がかかるときや、無線通信が切断されることがある。熟考行動階層５７は、中継サーバ２０２からの情報取得が間に合わない場合であっても、ユーザとの対話が途切れることなくインタラクションのリアルタイム性を確保するために、状況に合わせた行動を選択して適当な対話や行動を続けるように行動計画を立案する。
【０１４１】
熟考行動階層５７は、状況に合わせて行動を選択する。したがって、中継サーバ２０２に対してリクエストを送信すると、その行動は一旦スリープされて、ユーザとのインタラクションを継続するための別の行動（対話）が選択され起動される。また、中継サーバ２０２からの情報転送が完了したことを知らせるメッセージが到来した時点で、スリープさせておいた行動を再起動して、ユーザのリクエストに対する返事を行う。
【０１４２】
なお、スリープ機能にはタイマ機能が装備されており、あらかじめ設定された所定時間以上スリープ状態が継続すると、その行動は強制終了される。
【０１４３】
［追補］
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【０１４４】
本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行う機械装置であるならば、例えば玩具などのような他の産業分野に属する製品であっても、同様に本発明を適用することができる。
【０１４５】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１４６】
【発明の効果】
以上詳記したように、本発明によれば、ニュースなどの時々刻々と更新される情報やその他会話中にユーザが求める情報を言葉や動作で提供することができる、優れたロボット装置及びその制御方法、ロボットのための情報提供システム及び情報提供方法、並びに記憶媒体を提供することができる。
【０１４７】
また、本発明によれば、ユーザとのインタラクションに応じてネットワーク接続して必要なデータやプログラムを動的に取得し、ユーザとのコミュニケーションに活用することができる、優れたロボット装置及びその制御方法、ロボットのための情報提供システム及び情報提供方法、並びに記憶媒体を提供することができる。
【０１４８】
本発明に係るロボットは、音声や画像を通じてなされるユーザのリクエストに応じて、特定のサーバにリクエストを転送する。サーバは、ローカルの記憶システムにない情報が要求されているときには、さらにインターネットのような広域ネットワーク上の情報提供空間を検索して、検索結果をロボットの動きや発話内容などのデータとしてロボットに送り返す。この結果、ロボットは、受信データを用いて機体動作や音声としてユーザのリクエストに答えることができる。
【図面の簡単な説明】
【図１】本発明の実施に供される脚式移動ロボット１００を前方から眺望した様子を示た図である。
【図２】本発明の実施に供される脚式移動ロボット１００を後方から眺望した様子を示た図である。
【図３】本実施形態に係る脚式移動ロボット１００が具備する自由度構成モデルを模式的に示した図である。
【図４】脚式移動ロボット１００の電気・制御系統の構成図を模式的に示した図である。
【図５】制御部１２０の構成を詳細に示した図である。
【図６】実施形態に係る脚式移動ロボット１００において採用される行動制御システム５０の基本アーキテクチャを模式的に示した図である。
【図７】本実施形態に係るロボット１００を取り巻くネットワーク構成を模式的に示した図である。
【図８】本実施形態に係るロボット１００と中継サーバ２０２を相互接続する構成を模式的に示した図である。
【図９】典型的な２つのオブジェクト間通信の基本概念を説明するための図である。
【図１０】オブジェクト間を接続するための仕組みを示した図である。
【図１１】ロボット１００と中継サーバ２０２の協働的処理によってロボット１００と対話中のユーザに提供されるサービスの内容を説明するためのチャートである。
【符号の説明】
１…頭部，２…首関節ヨー軸
３…首関節ピッチ軸，４…首関節ロール軸
５…体幹ピッチ軸，６…体幹ロール軸
７…体幹ヨー軸，８…肩関節ピッチ軸
９…肩関節ロール軸，１０…上腕ヨー軸
１１…肘関節ピッチ軸，１２…前腕ヨー軸
１３…手首関節ピッチ軸，１４…手首関節ロール軸
１５…手部，１６…股関節ヨー軸
１７…股関節ピッチ軸，１８…股関節ロール軸
１９…膝関節ピッチ軸，２０…足首関節ピッチ軸
２１…足首関節ロール軸，２２…足部（足底）
５０…行動制御システム
５１…視覚認識機能部
５２…聴覚認識機能部
５３…接触認識機能部
５４…内部状態管理部
５５…短期記憶部
５６…長期記憶部
５７…熟考行動階層
５８…状況依存行動階層
５９…反射行動部
１００…脚式移動ロボット
１１５…ＣＣＤカメラ
１１６…マイクロフォン
１１７…スピーカ
１１８…タッチセンサ
１１９…ＬＥＤインジケータ
１２０…制御部
１２１…ＣＰＵ
１２２…ＲＡＭ
１２３…ＲＯＭ
１２４…不揮発メモリ
１２５…インターフェース
１２６…無線通信インターフェース
１２８…バス
１４０…入出力部
１５０…駆動部
１５１…モータ
１５２…エンコーダ
１５３…ドライバ
【図１】
0003925140.tif 000003
【図２】
0003925140.tif 000004
【図３】
0003925140.tif 000005
【図４】
0003925140.tif 000006
【図５】
0003925140.tif 000007
【図６】
0003925140.tif 000008
【図７】
0003925140.tif 000009
【図８】
0003925140.tif 000010
【図９】
0003925140.tif 000011
【図１０】
0003925140.tif 000012
【図１１】
0003925140.tif 000013