(57)【要約】【課題】  ハードウェア構成やプラットフォームの相違がある複数のロボット装置に対してデータやプログラムを好適に提供する。【解決手段】  ロボット装置とサーバは、ＳＯＡＰプロトコルに従って通信を行う。ロボット装置からの問い合わせに記述されているサービス要求に関する情報と、ロボット装置に関する情報を、データやプログラムの付加情報とマッチングをとることにより、ハードウェア構成やプラットフォームの相違がある複数のロボット装置が存在するマルチプラットフォーム環境下で、個々のロボット装置に適したデータやプログラムを好適に提供する。【選択図】  図５
2004318862.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク経由でロボット装置にデータ又はプログラムを提供する情報提供装置であって、
ロボット装置に提供するデータ又はプログラムが蓄積されたコンテンツ蓄積手段と、
ロボット装置からサービス要求に関する情報と該ロボット装置に関する情報とを含む問い合わせを受信する受信手段と、
上記問い合わせを解析する解析手段と、
要求されたサービスに応じたデータ又はプログラムを上記ロボット装置に送信する送信手段と
を備えることを特徴とする情報提供装置。
【請求項２】
ＳＯＡＰ（Simple Object Access Protocol）プロトコルに従ってロボット装置と通信を行うことを特徴とする請求項１記載の情報提供装置。
【請求項３】
上記コンテンツ蓄積手段に蓄積されるデータ又はプログラムに関する付加情報を管理するデータベースと、
上記問い合わせと上記データベースの付加情報とのマッチングをとり、提供可能なデータ又はプログラムのリストを作成してロボット装置に返す手段と
をさらに備えることを特徴とする請求項１記載の情報提供装置。
【請求項４】
上記提供可能なデータ又はプログラムのリストに対する上記ロボット装置からの選択結果に応答して、該選択されたデータ又はプログラムへのアクセス方法を返す手段をさらに備え、
上記送信手段は、上記ロボット装置からの上記アクセス方法に従ったアクセス要求に応答して、要求されたデータ又はプログラムを送信する
ことを特徴とする請求項３記載の情報提供装置。
【請求項５】
上記データ又はプログラムに関する付加情報は、サービスに関する情報とロボット装置に関する情報とを含むことを特徴とする請求項３記載の情報提供装置。
【請求項６】
上記ロボット装置に関する情報は、以下に示す情報のうち少なくとも一部を含むことを特徴とする請求項１又は請求項５記載の情報提供装置。
（１）ロボット装置毎にユニークに割り振られるロボット固有ＩＤ
（２）ロボット装置の種類毎にユニークに割り振られるロボット種類ＩＤ
（３）ロボット装置の機能リスト
（４）ロボット装置のハードウェア構成を示す情報
（５）ロボット装置が持つデータベース・リスト
【請求項７】
上記ロボット装置に関する情報は、ロボット装置の機能リストを少なくとも含み、
上記ロボット装置がサービスを実行する際に必要な必要機能を特定する必要機能特定手段と、
上記必要機能特定手段により特定された必要機能と、上記ロボット装置の機能リストとを比較することで、上記必要機能のうち上記ロボット装置に不足している不足機能を特定する不足機能特定手段とをさらに備え、
上記送信手段は、上記不足機能を該ロボット装置が利用可能な機能で代替させるためのデータ又はプログラムを送信する
ことを特徴とする請求項１記載の情報提供装置。
【請求項８】
上記ロボット装置に関する情報は、ロボット装置の機能リストを少なくとも含み、
ロボット装置で利用される機能オブジェクトが記憶されたオブジェクト記憶手段と、
上記ロボット装置がサービスを実行する際に必要な必要機能を特定する必要機能特定手段と、
上記必要機能特定手段により特定された必要機能と、上記ロボット装置の機能リストとを比較することで、上記必要機能のうち上記ロボット装置に不足している不足機能を特定する不足機能特定手段と、
上記不足機能に対応する不足機能オブジェクトを上記オブジェクト記憶手段から検索する検索手段とをさらに備え、
上記送信手段は、上記要求されたサービスに応じたデータ又はプログラムと共に、上記不足機能オブジェクトを上記ロボット装置に送信する
ことを特徴とする請求項１記載の情報提供装置。
【請求項９】
ネットワーク経由でロボット装置にデータ又はプログラムを提供する情報提供方法であって、
ロボット装置からサービス要求に関する情報と該ロボット装置に関する情報とを含む問い合わせを受信する受信ステップと、
上記問い合わせを解析する解析ステップと、
要求されたサービスに応じたデータ又はプログラムを上記ロボット装置に送信する送信ステップと
を有することを特徴とする情報提供方法。
【請求項１０】
ＳＯＡＰ（Simple Object Access Protocol）プロトコルに従ってロボット装置と通信を行うことを特徴とする請求項９記載の情報提供方法。
【請求項１１】
各データ又はプログラムに関する付加情報をデータベースとして管理するステップと、
上記問い合わせと上記データベースの付加情報とのマッチングをとり、提供可能なデータ又はプログラムのリストを作成してロボット装置に返すステップと
をさらに有することを特徴とする請求項９記載の情報提供方法。
【請求項１２】
上記提供可能なデータ又はプログラムのリストに対する上記ロボット装置からの選択結果に応答して、該選択されたデータ又はプログラムへのアクセス方法を返すステップをさらに有し、
上記送信ステップでは、上記ロボット装置からの上記アクセス方法に従ったアクセス要求に応答して、要求されたデータ又はプログラムを送信する
ことを特徴とする請求項１１記載の情報提供方法。
【請求項１３】
上記データ又はプログラムに関する付加情報は、サービスに関する情報とロボット装置に関する情報とを含むことを特徴とする請求項１１記載の情報提供方法。
【請求項１４】
上記ロボット装置に関する情報は、以下に示す情報のうち少なくとも一部を含むことを特徴とする請求項９又は請求項１３記載の情報提供方法。
（１）ロボット装置毎にユニークに割り振られるロボット固有ＩＤ
（２）ロボット装置の種類毎にユニークに割り振られるロボット種類ＩＤ
（３）ロボット装置の機能リスト
（４）ロボット装置のハードウェア構成を示す情報
（５）ロボット装置が持つデータベース・リスト
【請求項１５】
上記ロボット装置に関する情報は、ロボット装置の機能リストを少なくとも含み、
上記ロボット装置がサービスを実行する際に必要な必要機能を特定する必要機能特定ステップと、
上記必要機能特定ステップにて特定された必要機能と、上記ロボット装置の機能リストとを比較することで、上記必要機能のうち上記ロボット装置に不足している不足機能を特定する不足機能特定ステップとをさらに有し、
上記送信ステップでは、上記不足機能を該ロボット装置が利用可能な機能で代替させるためのデータ又はプログラムを送信する
ことを特徴とする請求項９記載の情報提供方法。
【請求項１６】
上記ロボット装置に関する情報は、ロボット装置の機能リストを少なくとも含み、
上記ロボット装置がサービスを実行する際に必要な必要機能を特定する必要機能特定ステップと、
上記必要機能特定ステップにて特定された必要機能と、上記ロボット装置の機能リストとを比較することで、上記必要機能のうち上記ロボット装置に不足している不足機能を特定する不足機能特定ステップと、
上記不足機能に対応する不足機能オブジェクトをロボット装置で利用される機能オブジェクトが記憶されたオブジェクト記憶手段から検索する検索ステップとをさらに有し、
上記送信ステップでは、上記要求されたサービスに応じたデータ又はプログラムと共に、上記不足機能オブジェクトを上記ロボット装置に送信する
ことを特徴とする請求項９記載の情報提供方法。
【請求項１７】
ロボット装置と、ネットワーク経由で該ロボット装置にデータ又はプログラムを提供する情報提供装置とを備える情報提供システムであって、
上記情報提供装置は、
ロボット装置に提供するデータ又はプログラムが蓄積されたコンテンツ蓄積手段と、
ロボット装置からサービス要求に関する情報と該ロボット装置に関する情報とを含む問い合わせを受信する受信手段と、
上記問い合わせを解析する解析手段と、
要求されたサービスに応じたデータ又はプログラムを上記ロボット装置に送信する送信手段とを有する
ことを特徴とする情報提供システム。
【請求項１８】
ＳＯＡＰ（Simple Object Access Protocol）プロトコルに従ってロボット装置と上記情報提供装置とが通信を行うことを特徴とする請求項１７記載の情報提供システム。
【請求項１９】
上記情報提供装置は、
上記コンテンツ蓄積手段に蓄積されるデータ又はプログラムに関する付加情報を管理するデータベースと、
上記問い合わせと上記データベースの付加情報とのマッチングをとり、提供可能なデータ又はプログラムのリストを作成してロボット装置に返す手段と
をさらに備えることを特徴とする請求項１７記載の情報提供システム。
【請求項２０】
上記情報提供装置は、上記提供可能なデータ又はプログラムのリストに対する上記ロボット装置からの選択結果に応答して、該選択されたデータ又はプログラムへのアクセス方法を返す手段をさらに備え、
上記送信手段は、上記ロボット装置からの上記アクセス方法に従ったアクセス要求に応答して、要求されたデータ又はプログラムを送信する
ことを特徴とする請求項１９記載の情報提供システム。
【請求項２１】
上記データ又はプログラムに関する付加情報は、サービスに関する情報とロボット装置に関する情報とを含むことを特徴とする請求項１９記載の情報提供システム。
【請求項２２】
上記ロボット装置に関する情報は、以下に示す情報のうち少なくとも一部を含むことを特徴とする請求項１７又は請求項２１記載の情報提供システム。
（１）ロボット装置毎にユニークに割り振られるロボット固有ＩＤ
（２）ロボット装置の種類毎にユニークに割り振られるロボット種類ＩＤ
（３）ロボット装置の機能リスト
（４）ロボット装置のハードウェア構成を示す情報
（５）ロボット装置が持つデータベース・リスト
【請求項２３】
上記ロボット装置に関する情報は、ロボット装置の機能リストを少なくとも含み、
上記情報提供装置は、
上記ロボット装置がサービスを実行する際に必要な必要機能を特定する必要機能特定手段と、
上記必要機能特定手段により特定された必要機能と、上記ロボット装置の機能リストとを比較することで、上記必要機能のうち上記ロボット装置に不足している不足機能を特定する不足機能特定手段とをさらに備え、
上記送信手段は、上記不足機能を該ロボット装置が利用可能な機能で代替させるためのデータ又はプログラムを送信する
ことを特徴とする請求項１７記載の情報提供システム。
【請求項２４】
上記ロボット装置に関する情報は、ロボット装置の機能リストを少なくとも含み、
上記情報提供装置は、
ロボット装置で利用される機能オブジェクトが記憶されたオブジェクト記憶手段と、
上記ロボット装置がサービスを実行する際に必要な必要機能を特定する必要機能特定手段と、
上記必要機能特定手段により特定された必要機能と、上記ロボット装置の機能リストとを比較することで、上記必要機能のうち上記ロボット装置に不足している不足機能を特定する不足機能特定手段と、
上記不足機能に対応する不足機能オブジェクトを上記オブジェクト記憶手段から検索する検索手段とをさらに備え、
上記送信手段は、上記要求されたサービスに応じたデータ又はプログラムと共に、上記不足機能オブジェクトを上記ロボット装置に送信する
ことを特徴とする請求項１７記載の情報提供システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク経由でデータやプログラムを提供する情報提供装置及びその方法、並びに情報提供システムに係り、特に、ネットワーク経由でロボット装置にデータやプログラムを提供する情報提供装置及びその方法、並びに情報提供システムに関する。
【０００２】
さらに詳しくは、本発明は、ハードウェア構成やプラットフォームの相違がある複数のロボット装置に対してデータやプログラムを提供する情報提供装置及びその方法、並びに情報提供システムに係り、特に、個々のロボット装置のハードウェア構成やプラットフォームの相違に応じたデータやプログラムを提供する（すなわち、「マルチロボット・プラットフォーム」を提供する）情報提供装置及びその方法、並びに情報提供システムに関する。
【背景技術】
【０００３】
電気的又は磁気的な作用を用いて人間の動作に似せた運動を行う機械装置のことを「ロボット」という。ロボットの語源は、スラブ語の“ＲＯＢＯＴＡ（奴隷機械）”に由来すると言われている。我が国でロボット装置が普及し始めたのは１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化などを目的としたマニピュレータや搬送ロボットなどの産業用ロボット装置（industrial robot）であった。
【０００４】
ロボット装置の用途の１つとして、産業活動・生産活動等における各種の難作業の代行が挙げられる。例えば、原子力発電プラントや火力発電プラント、石油化学プラントにおけるメンテナンス作業、製造工場における部品の搬送・組立作業、高層ビルにおける清掃、火災現場その他における救助といったような危険作業・難作業の代行などである。
【０００５】
また、ロボット装置の他の用途として、上述の作業支援というよりも、生活密着型、すなわち人間との「共生」或いは「エンターテインメント」という用途が挙げられる。この種のロボット装置は、ヒト或いはイヌ（ペット）、クマなどの比較的知性の高い脚式歩行動物の動作メカニズムや四肢を利用した豊かな感情表現を忠実に再現する。また、予め入力された動作パターンを単に忠実に実行するだけではなく、ユーザ（或いは他のロボット装置）から受ける言葉や態度（「褒める」とか「叱る」、「叩く」など）に対して動的に対応した、生き生きとした応答表現を実現することも要求される。
【０００６】
最近では、２足歩行、４足歩行、タイヤ式など、様々なタイプの移動ロボットが各社から提供されるようになってきている。
【０００７】
ところで、ロボット装置を動作させるためには、機体動作を記述したモーション・データや、外部刺激や内部状態に応じた行動制御を行うアプリケーションなど、様々なソフトウェアが必要である。ところが、必要と思われる全てのソフトウェアを予めロボット装置にインストールしておくことはメモリ容量の制限から無理がある。また、バージョンの変更や新製品の登場などによって、出荷した後任意のタイミングでソフトウェアをインストールする必要がある。
【０００８】
そこで、ネットワーク上にあるサーバから新たなソフトウェアをロボット装置にダウンロードするといった、ソフトウェアをロボット装置に供給する仕組みが必要であると考えられる（例えば特許文献１を参照）。
【０００９】
ところが、ネットワークからロボット装置用のサービス或いはコンテンツを供給する場合、ロボット装置の種類がその製造元により異なり、或いは同じ製造元であってもハードウェア構成やプラットフォーム（搭載されているオペレーティング・システム（ＯＳ）やミドルウェア、アプリケーション、コンテンツ）の相違があるため、複数のロボット装置に対してそれぞれ別々のサービスやコンテンツを提供しなければならないという不都合がある。
【００１０】
【特許文献１】特開２００３−２８８２９９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、ハードウェア構成やプラットフォームの相違がある複数のロボット装置に対してデータやプログラムを好適に提供することができる、優れた情報提供装置及びその方法、並びに情報提供システムを提供することにある。
【００１２】
本発明のさらなる目的は、ハードウェア構成やプラットフォームの相違がある複数のロボット装置が存在するマルチプラットフォーム環境下で、個々のロボット装置に適したデータやプログラムを好適に提供することができる、優れた情報提供装置及びその方法、並びに情報提供システムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明に係る情報提供装置は、上記課題を参酌してなされたものであり、ネットワーク経由でロボット装置にデータ又はプログラムを提供する情報提供装置であって、ロボット装置に提供するデータ又はプログラムが蓄積されたコンテンツ蓄積手段と、ロボット装置からサービス要求に関する情報と該ロボット装置に関する情報とを含む問い合わせを受信する受信手段と、上記問い合わせを解析する解析手段と、要求されたサービスに応じたデータ又はプログラムを上記ロボット装置に送信する送信手段とを備えることを特徴とするものである。
【００１４】
但し、この情報提供装置は、複数の装置（又は特定の機能を実現する機能モジュール）が論理的に集合したものを含み、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【００１５】
ここで、情報提供装置は、ＳＯＡＰ（Simple Object Access Protocol）プロトコルに従ってロボット装置と通信を行うようにしてもよい。
【００１６】
ＳＯＡＰ（Simple Object Access Protocol）は、他のシステム上のデータやサービスを呼び出すためのプロトコルであり、ＸＭＬ（eXtended Markup Language）やＨＴＴＰ（Hyper Text Transfer Protocol）をベースとして構成される。ＳＯＡＰによる通信では、ＸＭＬドキュメントに付帯情報が付けられたメッセージ（エンベロープ）を、ＨＴＴＰなどのプロトコルで交換する。クライアントとサーバの双方がＳＯＡＰの生成及び解釈を行うエンジンを装備することで、異なる環境間でのオブジェクト呼び出しが可能となる。
【００１７】
本発明に係る情報提供装置は、上記コンテンツ蓄積手段に蓄積されるデータ又はプログラムに関する付加情報を管理するデータベースと、上記問い合わせと上記データベースの付加情報とのマッチングをとり、提供可能なデータ又はプログラムのリストを作成してロボット装置に返す手段とをさらに備えてもよい。
【００１８】
また、本発明に係る情報提供装置は、上記提供可能なデータ又はプログラムのリストに対する上記ロボット装置からの選択結果に応答して、該選択されたデータ又はプログラムへのアクセス方法を返す手段をさらに備えてもよく、この場合、上記送信手段は、上記ロボット装置からの上記アクセス方法に従ったアクセス要求に応答して、要求されたデータ又はプログラムを送信する。
【００１９】
ここで、上記データ又はプログラムに関する付加情報は、サービスに関する情報と、ロボット装置に関する情報とを含むものとする。
【００２０】
このような情報提供装置によれば、ロボット装置からの問い合わせに含まれているサービス要求に関する情報及びロボット装置に関する情報を、データ又はプログラムの付加情報とマッチングをとることにより、ハードウェア構成やプラットフォームの相違がある複数のロボット装置が存在するマルチプラットフォーム環境下においても、個々のロボット装置に適したデータやプログラムを好適に提供することができる。
【００２１】
ここで、ロボット装置に関する情報は、以下に示す情報のうち少なくとも一部を含むものとする。
【００２２】
（１）ロボット装置毎にユニークに割り振られるロボット固有ＩＤ
（２）ロボット装置の種類毎にユニークに割り振られるロボット種類ＩＤ
（３）ロボット装置の機能リスト
（４）ロボット装置のハードウェア構成を示す情報
（５）ロボット装置が持つデータベース・リスト
【００２３】
また、本発明に係る情報提供装置は、上記ロボット装置に関する情報がロボット装置の機能リストを少なくとも含む場合、上記ロボット装置がサービスを実行する際に必要な必要機能を特定する必要機能特定手段と、上記必要機能特定手段により特定された必要機能と、上記ロボット装置の機能リストとを比較することで、上記必要機能のうち上記ロボット装置に不足している不足機能を特定する不足機能特定手段とをさらに備えてもよく、この場合、上記送信手段は、上記不足機能を該ロボット装置が利用可能な機能で代替させるためのデータ又はプログラムを送信する。
【００２４】
また、本発明に係る情報提供装置は、上記ロボット装置に関する情報が同様にロボット装置の機能リストを少なくとも含む場合、ロボット装置で利用される機能オブジェクトが記憶されたオブジェクト記憶手段と、上記ロボット装置がサービスを実行する際に必要な必要機能を特定する必要機能特定手段と、上記必要機能特定手段により特定された必要機能と、上記ロボット装置の機能リストとを比較することで、上記必要機能のうち上記ロボット装置に不足している不足機能を特定する不足機能特定手段と、上記不足機能に対応する不足機能オブジェクトを上記オブジェクト記憶手段から検索する検索手段とをさらに備えてもよく、この場合、上記送信手段は、上記要求されたサービスに応じたデータ又はプログラムと共に、上記不足機能オブジェクトを上記ロボット装置に送信する。
【００２５】
このような情報提供装置によれば、ロボット装置からの問い合わせに含まれているロボット装置に関する情報のうちロボット装置の機能に関する情報を考慮し、ロボット装置がサービスを実行する際に必要な必要機能のうち該ロボット装置に不足している不足機能をそのロボット装置が利用可能な機能で代替させるためのデータ又はプログラム、或いは不足機能に応じた不足機能オブジェクトを送信することにより、ミドルウェアの機能に相違がある複数のロボット装置が存在するマルチプラットフォーム環境下においても、個々のロボット装置に対してサービスを実行可能とすることができる。
【００２６】
本発明に係る情報提供システムは、上記課題を参酌してなされたものであり、ロボット装置と上述したような情報提供装置とを備えることを特徴とするものである。
【００２７】
本発明の更に他の目的、本発明によって得られる具体的な利点は、以下に説明される実施例の説明から一層明らかにされるであろう。
【発明の効果】
【００２８】
本発明に係る情報提供装置及びその方法、並びに情報提供システムによれば、ハードウェア構成やプラットフォームの相違がある複数のロボット装置に対してデータやプログラムを好適に提供することができる、優れた情報提供システム及び情報提供方法を提供することができる。
【００２９】
また、本発明に係る情報提供装置及びその方法、並びに情報提供システムによれば、多種の形態のロボット装置、センサや画像認識などで認識できるものが異なるロボット装置などにおいても、適切なサービスが受けられるとともに、サービス提供側もロボット装置の種類を意識せずに共通に提供できるサービスを持つことができる。
【００３０】
また、本発明に係る情報提供装置及びその方法、並びに情報提供システムによれば、機種が異なるロボット装置に対して異なるデータやプログラムを必要とするサービスであっても、送られてくるロボット装置に関する情報を用いて適切にサービスを提供することができる。
【発明を実施するための最良の形態】
【００３１】
以下、図面を参照しながら本発明の実施の形態について詳解する。
【００３２】
本実施の形態における情報提供システムは、ハードウェア構成やプラットフォームの相違がある複数のロボット装置が存在するマルチプラットフォーム環境下において、個々のロボット装置に適したデータやプログラムを提供することが可能なものである。
【００３３】
（第１の実施の形態）
先ず、第１の実施の形態における情報提供システムの全体構成を図１に模式的に示す。
【００３４】
ロボット装置は、ユーザと対話などのインタラクションを行うことが可能である。また、ロボット装置は、無線又は有線を通じてインターネットと接続している。同図に示す例では、２人のユーザ、すなわちユーザ１ａ，１ｂ、並びに２種類のロボット装置、すなわちロボット装置２ａ，２ｂがシステム内に存在している。以下、ユーザ１ａとユーザ１ｂとを特に区別する必要がない場合にはユーザ１と記し、ロボット装置２ａとロボット装置２ｂとを特に区別する必要がない場合にはロボット装置２と記す。
【００３５】
インターネット上には、ロボット装置２からアクセスすることができるサーバ１００が設置されている。このサーバ１００には、ロボット装置２を介してユーザ１に提供されるコンテンツが管理されている。また、インターネット上には、その他の一般のサイト１５０が繋がっており、ユーザ１は、ニュースや天気などの情報を、ロボット装置２経由で、或いはサーバ１００へ直接アクセスすることが可能である。前者の例では、ロボット装置２の計算量を削減するため、ロボット装置２は、サーバ１００にアクセスし、サーバ１００を介して一般のサイト１５０の情報を取得するものとする。
【００３６】
図示の例では、ユーザ１ａはロボット装置２ａと対話などを通じてインタラクションをし、ユーザ１ｂはロボット装置２ｂと対話などを通じてインタラクションをしている。各ロボット装置２ａ，２ｂは、ユーザ１ａ，１ｂの要求に応じるため、サーバ１００にアクセスする。また、各ロボット装置２ａ，２ｂは、製造元毎に種類が異なり、或いは同じ製造元であってもハードウェア構成やプラットフォームの相違がある。
【００３７】
サーバ１００は、各ロボット装置２ａ，２ｂからの要求に応じて、ハードウェア構成やプラットフォームの相違がある複数のロボット装置２ａ，２ｂに対してデータやプログラムを提供する。図示の例では、サーバ１００は、コンテンツ蓄積部１２０と、インターフェース・エージェント１２１と、コンテンツ・マネージャ１２２とを備えている。
【００３８】
コンテンツ蓄積部１２０には、童話や辞書、なぞなぞなどのデータ・コンテンツや、踊りや歌などのアプリケーション、認識ソフトウェアなどのミドルウェア、ロボット装置２の行動制御ソフトウェアなど、多種多様なデータやプログラムが蓄積されている。これらデータ・コンテンツやプログラムは、その再生や実行に際し、ロボット装置２側のハードウェア構成やプラットフォームなどの実行環境の相違に依存するものと依存しないものとがある。本実施の形態では、コンテンツ蓄積部１２０は、実行環境依存型のデータ・コンテンツやプログラムに関しては、それぞれの実行環境に適合するものを用意しておく。
【００３９】
インターフェース・エージェント１２１は、ユーザ１からのリクエストを解析し、解析結果をコンテンツ・マネージャ１２２に渡す。コンテンツ・マネージャ１２２は、解析結果に基づいて、ユーザ１のリクエストに応じるためのデータやプログラムのうち、要求元となるロボット装置２のハードウェア構成やプラットフォームに適したものを選択する。
【００４０】
なお、ロボット装置２に提供するソフトウェアの分類を１ヶ所ではなく、複数のサイトにまたがって行い、それらを連携させるためのさらに別のサイトを案内するＷｅｂサービスを構築してもよい。
【００４１】
図２には、本実施の形態における情報提供システム上で稼動することができるロボット装置２の機能構成の一例を示している。同図に示すように、ロボット装置２は、全体の動作の統括的制御やその他のデータ処理を行う制御ユニット２０と、入出力部４０と、駆動部５０と、電源部６０とで構成される。以下、各部について説明する。
【００４２】
入出力部４０は、入力部としてロボット装置２の目に相当するＣＣＤカメラ１５や、耳に相当するマイクロフォン１６、頭部や背中などの部位に配設されてユーザ１の接触を感知するタッチ・センサ１８、或いは五感に相当するその他の各種のセンサを含む。また、出力部として、口に相当するスピーカ１７、或いは点滅の組み合わせや点灯のタイミングにより顔の表情を形成するＬＥＤインジケータ（目ランプ）１９などを装備している。これら出力部は、音声やランプの点滅を行うことによって、脚などによる機械運動パターン以外の形式でも、ロボット装置２からユーザ・フィードバックを表現することができる。
【００４３】
駆動部５０は、制御ユニット２０が指令する所定の運動パターンに従ってロボット装置２の機体動作を実現する機能ブロックであり、行動制御による制御対象である。駆動部５０は、ロボット装置２の各関節における自由度を実現するための機能モジュールであり、それぞれの関節におけるロール、ピッチ、ヨーなど関節軸毎に設けられた複数の駆動ユニットで構成される。各駆動ユニットは、所定軸回りの回転動作を行うモータ５１と、モータ５１の回転位置を検出するエンコーダ５２と、エンコーダ５２の出力に基づいてモータ５１の回転位置や回転速度を適応的に制御するドライバ５３の組み合わせで構成される。
【００４４】
駆動ユニットの組み合わせ方によって、ロボット装置２のハードウェア構成が定まる。例えば、ロボット装置２を例えば２足歩行又は４足歩行などの脚式移動ロボットとして構成したり、或いはタイヤ式の移動ロボットとして構成したりすることができる。
【００４５】
電源部６０は、その字義通り、ロボット装置２内の各電気回路などに対して給電を行う機能モジュールである。本実施の形態におけるロボット装置２は、バッテリを用いた自律駆動式であり、電源部６０は、充電バッテリ６１と、充電バッテリ６１の充放電状態を管理する充放電制御部６２とで構成される。
【００４６】
充電バッテリ６１は、例えば、複数本のリチウムイオン２次電池セルをカートリッジ式にパッケージ化した「バッテリ・パック」の形態で構成される。
【００４７】
また、充放電制御部６２は、充電バッテリ６１の端子電圧や充電／放電電流量、充電バッテリ６１の周囲温度などを測定することで充電バッテリ６１の残存容量を把握し、充電の開始時期や終了時期などを決定する。充放電制御部６２が決定する充電の開始及び終了時期は制御ユニット２０に通知され、ロボット装置２が充電オペレーションを開始及び終了するためのトリガとなる。
【００４８】
制御ユニット２０は、ロボット装置２の頭脳に相当し、例えばロボット装置２の機体頭部或いは胴体部に搭載されている。
【００４９】
図３には、制御ユニット２０の構成をさらに詳細に図解している。同図に示すように、制御ユニット２０は、メイン・コントローラとしてのＣＰＵ（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）インターフェース、ＰＣカードやメモリ・スティック（商標）を受容するメモリ・カード・インターフェース（カード・スロット）などのような、コンピュータの周辺機器接続用の汎用インターフェースを備え、ローカル接続又はインターネット接続された外部機器（サーバ）との間でプログラムやデータの移動を行うようにしてもよい。
【００５７】
また、インターフェース２５の他の例として、赤外線通信（ＩｒＤＡ）インターフェースを備え、外部機器と無線通信を行うようにしてもよい。
【００５８】
さらに、制御ユニット２０は、無線通信インターフェース２６やネットワーク・インターフェース・カード（ＮＩＣ）２７などを含み、Ｂｌｕｅｔｏｏｔｈのような近接無線データ通信や、ＩＥＥＥ  ８０２．１１ｂのような無線ネットワーク、或いはインターネットなどの広域ネットワークを経由して、外部の様々なホスト・コンピュータとデータ通信を行うことができる。
【００５９】
このようなロボット装置２とホスト・コンピュータ間におけるデータ通信により、遠隔のコンピュータ資源を用いて、ロボット装置２の複雑な動作制御を演算したり、リモート・コントロールしたり、さらにユーザ１のリクエストに適った行動を実演するために必要なデータやプログラムなどのコンテンツをダウンロードすることができる。
【００６０】
後述するように、本実施の形態におけるロボット装置２は、ネットワーク接続して、インターネット上の所定のＷｅｂサービス・サイトからモーション・データ（ダンス・シーケンスなど）やその他の配信コンテンツを、ストリーミング或いはその他の形式でダウンロードする。このため、ロボット装置２側のプラットフォームは以下の（ａ）〜（ｆ）に示す各構成要素を装備している。
（ａ）ネットワークに接続するための無線ＬＡＮ
（ｂ）ＳＯＡＰ（Simple Object Access Protocol）エンベロープに情報を組み込んだり受け取った情報を抽出したりするＳＯＡＰ／ＸＭＬモジュール
（ｃ）ＨＴＴＰ（Hyper Text Transfer Protocol）でＳＯＡＰなどを通信するためのＨＴＴＰモジュール
（ｄ）通信を統制するソフトウェア・モジュール
（ｅ）ダンスを実行する姿勢制御のためのモーション・コントロール・モジュール
（ｆ）ユーザとの対話を行う音声入出力モジュール
【００６１】
また、図４には、本実施の形態においてサーバ１００として動作することができるホスト・コンピュータの機能構成を模式的に示している。
【００６２】
メイン・コントローラであるＣＰＵ１０１は、オペレーティング・システムの制御下で、各種のアプリケーションを実行する。
【００６３】
本実施の形態では、ＣＰＵ１０１は、例えばインターネット上でＨＴＴＰサーバとして動作するためのサーバ・プログラムや、ユーザ１からのリクエストを解析するインターフェース・エージェント、ユーザ１のリクエストに応じるためのデータやプログラムのうち要求元となるロボット装置２のハードウェア構成やプラットフォームに適したものを提供するコンテンツ・マネージャなどのソフトウェア・プログラムを実行することができる。
【００６４】
図示の通り、ＣＰＵ１０１は、バス１０８によって他の機器類（後述）と相互接続されている。
【００６５】
主メモリ１０２は、ＣＰＵ１０１において実行されるプログラム・コードをロードしたり、実行プログラムの作業データを一時保管したりするために使用される記憶装置であり、例えばＤＲＡＭのような半導体メモリが使用される。例えば、インターネット上でＨＴＴＰサーバとして動作するためのサーバ・プログラムや、ユーザ１からのリクエストを解析する「インターフェース・エージェント」、ユーザ１のリクエストに応じるためのデータやプログラムのうち要求元となるロボット装置２のハードウェア構成やプラットフォームに適したものを提供する「コンテンツ・マネージャ」などのソフトウェア・プログラムなどが主メモリ１０２上にロードされる。
【００６６】
また、ＲＯＭ（Read Only Memory）１０３は、データを恒久的に格納する半導体メモリであり、例えば、起動時の自己診断テスト（ＰＯＳＴ：Power On Self Test）や、ハードウェア入出力用のプログラム・コード（ＢＩＯＳ：Basic Input/Output System）などが書き込まれている。
【００６７】
ディスプレイ・コントローラ１０４は、ＣＰＵ１０１が発行する描画命令を実際に処理するための専用コントローラである。ディスプレイ・コントローラ１０４において処理された描画データは、例えばフレーム・バッファ（図示しない）に一旦書き込まれた後、ディスプレイ１１１によって画面出力される。
【００６８】
入力機器インターフェース１０５は、キーボード１１２やマウス１１３などのユーザ入力機器をサーバ１００に接続するための装置である。キーボード１１２やマウス１１３は、データやコマンドなどのユーザ入力をシステムに取り込む役割を持つ。
【００６９】
ネットワーク・インターフェース１０６は、Ethernet（登録商標）などの所定の通信プロトコルに従って、サーバ１００をＬＡＮ（Local Area Network）などの局所的ネットワーク、さらにはインターネットのような広域ネットワークに接続することができる。
【００７０】
ネットワーク上では、複数のホスト・コンピュータ（図示しない）やクライアントとしてのロボット装置２がトランスペアレントな状態で接続され、分散コンピューティング環境が構築されている。ネットワーク上では、ソフトウェア・プログラムやデータ・コンテンツなどの配信サービスを行うことができる。例えば、インターネット上でＨＴＴＰサーバとして動作するためのサーバ・プログラムや、ユーザ１からのリクエストを解析する「インターフェース・エージェント」、ユーザ１のリクエストに応じるためのデータやプログラムのうち要求元となるロボット装置２のハードウェア構成やプラットフォームに適したものを提供する「コンテンツ・マネージャ」などのソフトウェア・プログラムなどをネットワーク経由でダウンロードすることができる。また、ユーザ１のリクエストに応じるためのデータやプログラムのうち要求元となるロボット装置２のハードウェア構成やプラットフォームに適したものをネットワーク経由でロボット装置２に提供することができる。
【００７１】
外部機器インターフェース１０７は、ハード・ディスク・ドライブ（ＨＤＤ）１１４やメディア・ドライブ１１５などの外部装置をサーバ１００に接続するための装置である。
【００７２】
ＨＤＤ１１４は、記憶担体としての磁気ディスクを固定的に搭載した外部記憶装置であり、記憶容量やデータ転送速度などの点で他の外部記憶装置よりも優れている。ソフトウェア・プログラムを実行可能な状態でＨＤＤ１１４上に置くことを、プログラムのシステムへの「インストール」と呼ぶ。通常、ＨＤＤ１１４には、ＣＰＵ１０１が実行すべきオペレーティング・システムのプログラム・コードや、アプリケーション・プログラム、デバイス・ドライバなどが不揮発的に格納されている。例えば、インターネット上でＨＴＴＰサーバとして動作するためのサーバ・プログラムや、ユーザ１からのリクエストを解析するインターフェース・エージェント、ユーザ１のリクエストに応じるためのデータやプログラムのうち要求元となるロボット装置２のハードウェア構成やプラットフォームに適したものを提供するコンテンツ・マネージャなどのソフトウェア・プログラムなどを、ＨＤＤ１１４上にインストールすることができる。
【００７３】
また、本実施の形態では、ＨＤＤ１１４はコンテンツ蓄積部１２０を構成する。コンテンツ蓄積部１２０には、童話や辞書、なぞなぞなどのデータ・コンテンツや、踊りや歌などのアプリケーション、認識ソフトウェアなどを含むミドルウェア、ロボット装置２の行動制御ソフトウェアなど、多種多様なデータやプログラムが蓄積されている。これらロボット装置２用のデータ・コンテンツやプログラムには、実行環境依存型のものと非依存型のものとがあるが、実行環境依存型のデータ・コンテンツやプログラムに関しては、それぞれの実行環境に適合する複数のものをコンテンツ蓄積部１２０に用意しておく。
【００７４】
メディア・ドライブ１１５は、ＣＤ（Compact Disc）やＭＯ（Magneto-Optical disc）、ＤＶＤ（Digital Versatile Disc）などの可搬型メディアを装填して、そのデータ記録面にアクセスするための装置である。
【００７５】
可搬型メディアは、主として、ソフトウェア・プログラムやデータ・ファイルなどをコンピュータ可読形式データとしてバックアップすることや、これらをシステム間で移動（販売・流通・配布を含む）する目的で使用される。例えば、インターネット上でＨＴＴＰサーバとして動作するためのサーバ・プログラムや、ユーザ１からのリクエストを解析する「インターフェース・エージェント」、ユーザ１のリクエストに応じるためのデータやプログラムのうち要求元となるロボット装置２のハードウェア構成やプラットフォームに適したものを提供する「コンテンツ・マネージャ」などを、これら可搬型メディアを利用して複数の機器間で物理的に流通・配布することができる。或いは、実行環境依存型並びに非依存型のロボット装置用データ・コンテンツやプログラムを、可搬型メディアを利用して複数の機器間で物理的に流通・配布することができる。
【００７６】
サーバ１００は、ロボット装置２に対し実行環境に応じたサービスを提供するために、以下の（ａ）〜（ｄ）に示す各構成要素を備えている。
（ａ）ＳＯＡＰエンベロープに情報を組み込んだり受け取った情報を抽出したりするＳＯＡＰ／ＸＭＬモジュール
（ｂ）ＨＴＴＰでＳＯＡＰなどを通信するためのＨＴＴＰモジュール
（ｃ）ダンス・シーケンスなど複数のコンテンツ
（ｄ）コンテンツのリスト
【００７７】
なお、ＳＯＡＰは、他のシステム上のデータやサービスを呼び出すためのプロトコルであり、ＸＭＬやＨＴＴＰをベースとして構成される。ＳＯＡＰによる通信では、ＸＭＬドキュメントに付帯情報が付けられたメッセージ（エンベロープ）を、ＨＴＴＰなどのプロトコルで交換する。クライアントとサーバの双方がＳＯＡＰの生成及び解釈を行うエンジンを装備することで、異なる環境間でのオブジェクト呼び出しが可能となる。
【００７８】
ここで、本実施の形態における情報提供システムにおける全体的な動作について説明する。
【００７９】
ユーザ１は、ロボット装置２と対話などを通じて、インタラクションをしている。ここで、ユーザ１が、何か新しい情報がないか、ロボット装置２に尋ねたとする。
【００８０】
ロボット装置２は、ユーザ１の要求に応じるため、インターネット上のサーバ１００を探索する。その際、予め定められた書式のリクエスト（ＱＡフォーム：後述）を送ることとする。すなわち、ロボット装置２はユーザ１と対話をすることで必要な情報を抽出し、その書式の該当するブランク・フィールドに情報を埋め込み、これをサーバ１００に送信する。
【００８１】
ＱＡフォームの書式には、ロボット装置２のハードウェア構成やプラットフォーム、現在の作業環境などを特定するための情報が含まれており、それはロボット装置２がスタンドアロン状態でも内部的に保持又は取得されるデータより作成できる。
【００８２】
サーバ１００は、ロボット装置２から受信した書式に従って、必要な答えを生成し、これを要求元のロボット装置２に送り返す。ロボット装置２はサーバ１００からの返事を読み、ユーザ１に例えばロボット装置２の構成に適した新しいダンスがあることを知らせる。
【００８３】
ユーザ１がダンスを見せて欲しいとロボット装置２に対して対話で伝えると、ロボット装置２は、ダンス・データのダウンロードをサーバ１００に要求する。サーバ１００は、ロボット装置２からの要求に従いダンス・データのダウンロードを開始する。
【００８４】
このようにして、要求元となるロボット装置２のハードウェア構成やプラットフォームに適した新しいダンス・データを自動的に選定して、ユーザ１にダンス・パフォーマンスを供給することができる。例えば、振り付けのある歌データの場合、ロボット装置２が実演可能なダンス・データと再生可能な歌データといった具合に、ロボット装置２の構成に適したデータを選択して送ることになる。
【００８５】
コンテンツの中には、ダンスなどの動きを主体としたものではなく、童話などをユーザ１に読んで聞かせるものもある。一般に、童話などを朗読する場合には、テキスト・データをコンテンツとして持ち、ロボット装置２側では例えばミドルウェアとしてＴＴＳ（Text-To-Speech）の機能（文を入力すると音声波形を出力する機能）を備える必要がある。さらに、童話などの話にも、適切な動作を振り付けることで、実体を持ったロボット装置２ならではの応用になる。しかしながら、具体的な動作すなわちモーション・データの記述はロボット装置２によって異なるので、このような相違に応じてデータをどのように与えるかが問題になる。
【００８６】
図５には、本実施の形態における情報提供システムにおいて、サーバ１００がクライアントとしてのロボット装置２に対してハードウェア構成やプラットフォームの相違に応じたデータやプログラムの配信を行う仕組みを模式的に示している。
【００８７】
ロボット装置２は、ユーザ１との対話などのインタラクションを通じて、ＱＡフォームを作成する。ＱＡフォームは、ロボット装置２が要求するサービスやコンテンツを解析する手掛かりとなる情報を記述したものであり、サーバ１００に渡される。
【００８８】
サーバ１００側では、ＱＡフォームに基づいて、ロボット装置２が要求するサービスやコンテンツを、ロボット装置２に適した形式で供給する。また、受信したＱＡフォームの記述内容では情報が足りない場合には、サーバ１００は、情報提供の要求や、要求に応えられないときの理由などを記述して返す。
【００８９】
サーバ１００側では、送られてきたＱＡフォームの内容に従って、コンテンツのデータベースから必要なデータとソフトウェアを選び、ロボット装置２に送出することになる。図５に示す例では、サーバ１００側では、例えば１つのダンス・データにつき、ＣＰＵ非依存な中間コード形式であるバイトコードと、ＣＰＵ依存形式であるバイナリコードの形式で保持している。そして、ＱＡフォームの解析結果に基づいて、バイトコード又はバイナリコードの何れの形式でデータを送るべきかを判断する。
【００９０】
図６には、ロボット装置２がＱＡフォームを送信してデータやプログラムを要求し、サーバ１００がこれに応じるという協働的動作の手順を示している。
【００９１】
既に述べたように、ロボット装置２側のプラットフォームは以下の（ａ）〜（ｆ）に示す各構成要素を装備している。
（ａ）ネットワークに接続するための無線ＬＡＮ
（ｂ）ＳＯＡＰエンベロープに情報を組み込んだり受け取った情報を抽出したりするＳＯＡＰ／ＸＭＬモジュール
（ｃ）ＨＴＴＰでＳＯＡＰなどを通信するためのＨＴＴＰモジュール
（ｄ）通信を統制するソフトウェア・モジュール
（ｅ）ダンスを実行する姿勢制御のためのモーション・コントロール・モジュール
（ｆ）ユーザとの対話を行う音声入出力モジュール
【００９２】
また、サーバ１００は、ロボット装置２に対し実行環境に応じたサービスを提供するために、以下の（ａ）〜（ｄ）に示す各構成要素を備えている。
（ａ）ＳＯＡＰエンベロープに情報を組み込んだり受け取った情報を抽出したりするＳＯＡＰ／ＸＭＬモジュール
（ｂ）ＨＴＴＰでＳＯＡＰなどを通信するためのＨＴＴＰモジュール
（ｃ）ダンス・シーケンスなど複数のコンテンツ
（ｄ）コンテンツのリスト
【００９３】
ロボット装置２側では、ユーザ１とのインタラクションを通じて作成されたＱＡフォームをＳＯＡＰエンベロープに組み込み、ＨＴＴＰプロトコルによりサーバ１００への問い合わせを行う。
【００９４】
これに対し、サーバ１００側では、ＳＯＡＰエンベロープを解析して要素情報を取り出す。そして、登録してあるソフトウェアの適合情報とマッチングを取り、提供可能なソフトウェアのリストを作成する。このリストをＳＯＡＰエンベロープに組み込んで、ＳＯＡＰ回答としてロボット装置２に返す。
【００９５】
ロボット装置２側では、ＳＯＡＰ回答を受け取ると、これを解析して要素情報を取り出し、蓄積してあるユーザ１の個人情報（趣味や嗜好など）とのマッチングをとり、合致し易いソフトウェアを選択する。そして、サーバ１００への取得要請を作成し、これをＳＯＡＰエンベロープに組み込んで、サーバ１００へ送信する。
【００９６】
サーバ１００は、この要請を受け取ると、必要なファイルの所在を示したＵＲＬを含んだＳＯＡＰ回答を作成して、ロボット装置２に返す。
【００９７】
ロボット装置２は、必要なファイルをＨＴＴＰ  ＧＥＴリクエストによりサーバ１００へ要求する。サーバ１００は、要求されたファイルをロボット装置２へ返す。そして、ロボット装置２は、必要なファイルが揃うと、ダンスやその他のユーザ１が要求する行動を実演する。
【００９８】
ＱＡフォームに記述される情報は、以下の２つに大別される。
（１）サービス要求に関する情報
（２）ロボット装置に関する情報
【００９９】
「サービス要求に関する情報」は、ユーザ１とのインタラクションの内容や、そのときのロボット装置２の本能や感情といった情動に関する指標値、筐体の検出する温度や湿度、光量、日射量、日照時間或いはその他の外部刺激の指標値などが含まれる。
【０１００】
また、「ロボット装置に関する情報」としては、さらに以下のようなものが挙げられる。
（２−１）ロボット装置毎にユニークに割り振られるロボット固有ＩＤ
（２−２）ロボット装置の種類毎にユニークに割り振られるロボット種類ＩＤ
（２−３）ロボット装置の機能リスト
（２−４）ロボット装置のハードウェア構成を示す情報
（２−５）ロボット装置が持つデータベース・リスト
【０１０１】
「ロボット装置の機能リスト」とは、例えば、外部刺激の認識ソフトウェア（顔認識、音声認識など）や、音声合成ソフトウェア（ＴＴＳ）などのミドルウェアの構成情報に相当する。
【０１０２】
また、「ロボット装置のハードウェア構成を示す情報」は、ロボット装置２の物理形状（人間形、４足ペット型、ユーティリティ型、タイヤ型など）、足の本数（２足、４足など）、最大移動速度、手の本数、手の運搬能力、その他の筐体に関する物理的な特性、思考（計算）能力の指標などを記述した情報である。
【０１０３】
サーバ１００は、ＱＡフォームに含まれるこれらの情報を用いて、ロボット装置２に提供すべきコンテンツ（データやプログラム）を決定する。コンテンツ蓄積部１２０には、コンテンツに関する以下のメタ情報が付加されている。
（１）サービス要求に対応するコンテンツのブロック
（２）コンテンツ或いはソフトウェアが有効なロボット装置に関する情報
【０１０４】
「サービス要求に対応するコンテンツのブロック」としては、コンテンツにメタ情報として、サービスに関する情報が付加されている。このメタ情報としては、次のようなものが挙げられる。
（１−１）内容を示す情報
例）<ContentsType>News</ContentsType>
<ContentsType>DanceMotion</ContentsType>
（１−２）データの型を示す情報
例）<DataType>Text</DataType>
<DataType>MIDI</DataType>
（１−３）作成日時に関する情報
例）<CreateDate>2003/03/23</CreateDate>
（１−４）タイトルなどに関する情報
例）<Title>WeAreSDR</Title>
【０１０５】
また、「ロボット装置に関する情報」としては、次のようなものが挙げられる。
（２−１）対応するロボット装置の種類を示すＩＤ
（２−２）コンテンツ使用に必要な機能リスト
（２−３）ロボット装置の構成に関する情報
「コンテンツ使用に必要な機能リスト」に関しては、コンテンツの使用・再生に際して必要なミドルウェアのリストなどが挙げられる。
【０１０６】
「ロボット装置の構成に関する情報」に関しては、ロボット装置２の物理形状（人間形、４足ペット型、ユーティリティ型、タイヤ型など）、足の本数（２足、４足など）、最大移動速度、手の本数、手の運搬能力、その他の筐体に関する物理的な特性、思考（計算）能力の指標などを記述した情報などが挙げられる。
【０１０７】
サーバ１００のコンテンツ・マネージャ１２２は、ロボット装置２から得たＱＡフォームから取り出される要素情報と、コンテンツ蓄積部１２０のメタ情報とのマッチングをとることにより、ユーザ１のリクエストに応じるためのデータやプログラムのうち、要求元となるロボット装置２のハードウェア構成やプラットフォームに適したものを選択する。このときのコンテンツ・マネージャ１２２の動作手順を図７のフローチャートに示す。
【０１０８】
先ずステップＳ１において、サービス要求に従ってコンテンツ蓄積部１２０を探索する。次にステップＳ２において、<ContentsType> </ContentsType>で囲まれるフィールドにサービス要求と一致するコンテンツがあれば、それをスタックにプッシュする。続いてステップＳ３において、全てのコンテンツを確認したか否かを判別し、確認した場合にはステップＳ４に進む。一方、全てのコンテンツを確認していない場合にはステップＳ２に戻って同様の処理を繰り返す。
【０１０９】
ステップＳ４では、プッシュしたコンテンツをポップし、ロボット装置に関する情報と比較する。ステップＳ５では、一致したコンテンツを候補リストに登録し、一致しなかったコンテンツを廃棄する。そして、ステップＳ６では、全てのスタックを調べたか否かを判別し、全て調べた場合には終了する。一方、全てのスタックを調べていない場合には、ステップＳ４に戻って処理を継続する。
【０１１０】
このような手順により、ＱＡフォームに従って調べられたコンテンツ・リストができあがる。
【０１１１】
以上説明したように、第１の実施の形態における情報提供システムによれば、ハードウェア構成やプラットフォームの相違がある複数のロボット装置が存在するマルチプラットフォーム環境下においても、送られてくるロボット装置に関する情報を用いることで、個々のロボット装置に適したデータやプログラムを提供し、サービスを実行可能とすることができる。
【０１１２】
（第２の実施の形態）
次に、第２の実施の形態における情報提供システムの全体構成を図８に模式的に示す。
【０１１３】
各家庭のロボット装置は、それぞれの家庭のゲートウェイなどを経由してインターネットに接続されているものとする。同図に示す例では、３人のユーザ、すなわちユーザ１ａ，１ｂ，１ｃ、並びに３種類のロボット装置、すなわちロボット装置２ａ，２ｂ，２ｃがシステム内に存在している。以下、ユーザ１ａ，１ｂ，１ｃを特に区別する必要がない場合にはユーザ１と記し、ロボット装置２ａ，２ｂ，２ｃを特に区別する必要がない場合にはロボット装置２と記す。また、インターネット上には、これらのロボット装置２にサービスを提供するサーバ１００が設置されている。
【０１１４】
図９には、ロボット装置２とサーバ１００との大まかなやり取りを示している。すなわち、先ずロボット装置２がサーバ１００に対してサービスを要求する。この際、ロボット装置２は、サービス要求に関する情報の他に、ロボット装置２自身の機能、特にミドルウェアの構成情報を記述した機能リストをサーバ１００に送ることで、サーバ１００が適切なデータ又はプログラムを選択できるようにする。サーバ１００は、ロボット装置２からの要求に答えて、ロボット装置２に適切なデータ又はプログラムを送信する。後述のように、これらはＪａｖａ（登録商標）やＰｙｔｈｏｎなどのインタープリタ言語若しくはバイトコード、又は単純な命令である。なお、本実施の形態では、インターネットプロトコルとして、ＨＴＴＰとその上のＳＯＡＰとを利用したものを想定する。
【０１１５】
本実施の形態では、サービスとして、ロボット装置２がユーザ１に質問し、ユーザ１の返事が肯定の場合にはメッセージＡをユーザ１に伝え、返事が否定の場合にはメッセージＢをユーザ１に伝えるものを考える。そして、このサービスの実行には、ロボット装置２の機能として、顔識別機能、音声認識機能、音声合成ＴＴＳ機能の３つの機能が必要であるものとする。なお、各サービスとそのサービスの実行に必要となる機能とは、予めサーバ１００内で対応付けられている。
【０１１６】
ここで、上述したロボット装置２ａは、顔識別機能、音声認識機能、ＴＴＳ機能の３つの機能を全て有しているものとする。また、ロボット装置２ｂは、音声認識機能のみを有し、他の２つの機能を有していないものとする。また、ロボット装置２ｃは、顔識別機能のみを有し、他の２つの機能を有していないものとする。このため、ロボット装置２ａ，２ｂ，２ｃに対して同一のデータ又はプログラムを送信した場合、サービスの実行に必要な機能の一部又は全部が備わっていないロボット装置２では、サービスを実行できないことになる。
【０１１７】
そこで、本実施の形態におけるサーバ１００は、個々のロボット装置２の機能の相違を考慮し、サービスの実行に必要な機能の一部又は全部が備わっていないロボット装置２に対しては、不足している機能をそのロボット装置２が利用可能な機能で代替させるためのデータ又はプログラムを送信し、サービスを実行可能とさせる。
【０１１８】
例えば、顔識別機能を有するロボット装置２ａ，２ｃは、ユーザ１を見分けることが可能であるが、顔識別機能を有さないロボット装置２ｂは、ユーザ１を見分けるために別の機能を用いなければならない。そこで、サーバ１００は、例えばロボット装置２ｂがユーザ１ｂの名前を呼び、その返事で判断することができるように、音声波形データを送信する。また、音声認識機能を有するロボット装置２ａ，２ｂは、質問の返事を音声で聞き分けることが可能であるが、音声認識機能を有さないロボット装置２ｃは、質問の返事を判断するために別の機能を用いなければならない。そこで、例えばロボット装置２ｃの左右の肩にスイッチがある場合、サーバ１００は、右肩のスイッチを押した場合は肯定の返事、左肩のスイッチを押した場合は否定の返事とする旨をユーザ１に伝えることができるように、音声波形データを送信する。また、ＴＴＳ機能を有するロボット装置２ａは、文章（テキストデータ）だけで質問やメッセージを話すことが可能であるが、ＴＴＳ機能を有さないロボット装置２ｂ，２ｃは、質問やメッセージを話すために別の機能を用いなければならない。そこで、サーバ１００は、例えば文章（テキストデータ）の代わりに音声波形データを送信する。
【０１１９】
ここで、ロボット装置２のソフトウェア構成を図１０に示す。同図に示すよように、ロボット装置２のソフトウェアは、オペレーティング・システム２０１やデバイス・ドライバ２０２、或いはそれらとインターフェースするＡＰＩ（Application Program Interface）を備えるシステム層２００と、顔識別機能、音声認識機能、ＴＴＳ機能等を実現するソフトウェア群からなるミドルウェア層２１０と、サービスを実行したり自律的な行動をしたりするアプリケーション層２２０と、ネットワークと接続して適切な命令を発行したりデータを送受信したりするネットワーク接続層２３０とからなる。
【０１２０】
ロボット装置２ａの場合を例にとり、ミドルウェア層２１０及びアプリケーション層２２０について図１１を参照しながらさらに説明する。ロボット装置２ａのミドルウェア層２１０には、顔識別、音声認識、ＴＴＳの各ソフトウェアオブジェクト２１１〜２１３が存在し、これらは適切なオブジェクト間通信でシステム層２００及びアプリケーション層２２０のソフトウェアと接続している。
【０１２１】
アプリケーション層２２０は、短期記憶部２２１と行動制御部２２２とを有する。短期記憶部２２１は、ミドルウェア層２１０からの出力を統合し、ロボット装置２ａの外部に何が存在するかを記憶する部分である。これは、例えばＣＣＤカメラ１５の視野角等が制限されているために、一旦画像処理で検出された人物等が視野外になっても保持するための機構である。一方、行動制御部２２２は、行動モジュール群を適切に管理・制御する部分である。行動モジュール２２３は、ミドルウェア層２１０からの顔識別などの出力を受けて、顔を探したり、顔に近づいたりといった行動を生成させるモジュールである。また、行動モジュール２２３は、ネットワーク接続層２３０に対して命令発行を依頼したり、データの送受信を行ったりすることができる。ネットワーク接続層２３０には、ネットワーク管理を行うソフトウェアオブジェクト２３１が存在し、インターネットプロトコルに従ってインターネット上のサービスに対してアクセスし、データ又はプログラムを送受信することができる。行動モジュール２２３は、Ｊａｖａ（登録商標）やＰｙｔｈｏｎといったスクリプト言語又はバイトデータを使用することができ、インターネット上のサーバ１００から送られてきたスクリプト言語やバイトデータを実行することでサービスを具体的にロボット装置２ａの行動として実現することが可能になっている。
【０１２２】
行動モジュール２２３は、モニター関数とアクション関数とを有する。モニター関数は、ミドルウェア層２１０のソフトウェアから外部状況及び内部状態をモニターすることで、当該行動モジュールに記述された動作の実行要求度を示す行動価値を決定する。複数の行動モジュールが並行にこの行動価値を計算し、行動制御部２２２は、行動価値の高い行動モジュールのアクション関数を実行に移す。アクション関数は、ミドルウェア層２１０のソフトウェアから顔識別などの出力を受け取り、音声合成などへ出力することでロボット装置２ａを制御する。前述のように、これらの関数をインターネット上のサーバ１００から送られてきたスクリプト言語やバイトコードなどで実現することができる。本実施の形態では、後述のように行動モジュール２２３を木構造で実装する。
【０１２３】
以下、この３つのロボット装置２ａ，２ｂ，２ｃがサービスを実行する場合、すなわちロボット装置２ａ，２ｂ，２ｃがユーザ１ａ，１ｂ，１ｃを探して質問を行い、その返事が肯定であるか否定であるかに応じて、ユーザ１ａ，１ｂ，１ｃに対して異なるメッセージＡ，Ｂを音声で伝える場合について説明する。
【０１２４】
先ず、ロボット装置２ａは、顔識別機能、音声認識機能、及びＴＴＳ機能を有しており、サービス要求に関する情報に加えて、例えば図１２に示すような機能リストを予めサーバ１００に送る。
【０１２５】
サーバ１００は、サービスの実行に必要となる機能を特定する。本実施の形態の場合、上述したように、顔識別機能、音声認識機能、ＴＴＳ機能の３つの機能が必要とされる。そして、サーバ１００は、例えば図１３に示すようなプログラムに従ってこの機能リストを解析し、サービスの実行に必要な機能が備わっているか否かを確認する。上述の通り、ロボット装置２ａにはサービスの実行に必要な機能が全て備わっているため、サーバ１００は、これらの３つの機能を利用するようなプログラムをロボット装置２ａに送る。具体的には、図１４のように行動モジュールの木構造を構成するデータと、それぞれの行動モジュールのモニター関数及びアクション関数の実装とを送る。この木構造では、行動制御部２２２が行動モジュールの木構造のトップとしてルートモジュールを持っているとする。本実施の形態におけるサービスの親モジュールをサービス行動モジュールとし、その子モジュールとしてサーチ行動モジュール、アプローチ行動モジュール、メッセージ行動モジュールが構成されている。
【０１２６】
この木構造では、サービス行動モジュールが発行する共有情報領域としてFaceID及びDistanceがあり、これらの情報をモジュール間で共有する。本実施の形態におけるサービスでは、特定のユーザ１ａに対してメッセージを伝えるため、このFaceIDを予め設定した状態、すなわちFaceID＝usrFaceIDという状態で共有情報領域を発行する。なお、発行時のDistanceは空である。
【０１２７】
サーチ行動モジュールは、短期記憶部２２１に現在記憶されている物体の中にFaceID＝usrFaceIDを満たすものがあるか否かを確認する行動モジュールであり、FaceID＝usrFaceIDを満たす物体が存在すれば、その物体までの距離を共有情報領域のDistanceに書き込む。実際のモニター関数としては、FaceID!＝usrFaceIDであればまだユーザ１ａを探す必要があるため、高い行動価値をサービス行動モジュールに返し、ユーザ１ａが発見されFaceID＝usrFaceIDとなれば低い行動価値をサービス行動モジュールに返す。アクション関数としては、このサーチ行動モジュールが選ばれた状態ではユーザ１ａが発見されていないため、ロボット２ａの視点を移動させることで新しい情報を短期記憶部２２１に送り込み、ユーザ１ａを発見するように制御する。具体的には、首を振る、体を回す、移動するなどを組合わせて視点を変える。
【０１２８】
アプローチ行動モジュールは、発見されたユーザ１ａに対して適当な距離になるように制御する行動モジュールである。モニター関数としては、サービス行動モジュールから設定されたFaceIDに値が入っていればそのDistanceの値distを短期記憶部２２１に問い合わせ、値distが予め設定した範囲外であれば高い行動価値を返し、範囲内であればもう移動しなくてよいため低い行動価値を返す。アクション関数としては、ユーザ１ａに接近することが目的であり、値distが、設定した距離の最小値minDialogueDistよりも小さければユーザ１ａとの距離が近すぎるため、ユーザ１ａから遠ざかる後退移動の命令を発行する。一方、値distが設定した距離の最大値maxDialogueDistよりも大きければユーザ１ａとの距離が遠すぎるため、ユーザ１ａに接近する前進移動の命令を発行する。
【０１２９】
メッセージ行動モジュールは、ユーザ１ａが話ができる範囲内にいるときに適切なシーケンスに従ってメッセージを伝える行動モジュールである。モニター関数としては、FaceID＝usrFaceIDとなっておりminDialogueDist≦dist≦maxDialogueDistであれば高い行動価値をサービス行動モジュールに返し、そうでなければ低い行動価値をサービス行動モジュールに返す。アクション関数としては、図１５に示すようなステートマシンで実現できる。すなわち、先ず質問メッセージをＴＴＳモジュールにテキストデータとして出力してユーザ１ａの応答を待つ。そして、ユーザ１ａの応答がＹＥＳであればメッセージＡを出力して終了し、ユーザ１ａの応答がＮＯであればメッセージＢを出力して終了する。
【０１３０】
続いてロボット装置２ｂは、音声認識機能のみを有し、顔識別機能及びＴＴＳ機能を有さないため、サービス要求に関する情報に加えて、例えば図１６に示すような機能リストを予めサーバ１００に送る。
【０１３１】
サーバ１００は、上述と同様にしてサービスの実行に必要となる機能を特定し、さらにロボット装置２ｂから送信された機能リストを解析し、サービスの実行に必要な機能が備わっているか否かを確認する。上述の通り、ロボット装置２ｂには音声認識機能しか備わっていないため、サーバ１００は、ロボット装置２ｂに備わっている機能で不足している顔識別機能及びＴＴＳ機能を代替させるようなデータ又はプログラムをロボット装置２ｂに送る。具体的には、図１７のように行動モジュールの木構造を構成するデータと、それぞれの行動モジュールのモニター関数及びアクション関数の実装とを送る。この木構造では、サービス行動モジュールの子モジュールとして、ユーザ発見行動モジュール、メッセージ行動モジュールが構成されている。
【０１３２】
ユーザ発見行動モジュールは、顔識別機能を利用することなくユーザ１ｂを発見するための行動モジュールである。なお、ロボット装置１ｂは、ＴＴＳ機能を有さないが、オーディオ信号の出力手段を有し、音声波形そのものを出力できる。本実施の形態では、ＷＡＢファイルフォーマットに準拠した音声波形データを出力するものとする。この音声波形データは、サーバ１００から送られてくるものである。アクション関数としては、図１８に示すようなステートマシンで実現できる。すなわち、例えば「ＸＸさん、いたら“はい”と返事してください」といったユーザ探索メッセージを音声により出力し、ユーザ１ｂの応答を待つ。そして、ユーザ１ｂが“はい”と返答をすると、ユーザ１ｂが発見されたものとしてユーザＩＤをＹＥＳとし、メッセージ行動モジュールに移る。
【０１３３】
メッセージ行動モジュールは、ロボット装置２ａと基本的に同じステートマシンで実現できる。すなわち、ユーザ１ｂに質問メッセージを出力して応答を待つ。そして、ユーザ１ｂの応答がＹＥＳであればメッセージＡを出力して終了し、ユーザ１ｂの応答がＮＯであればメッセージＢを出力して終了する。但し、この出力はロボット１ａとは異なり音声波形データである。
【０１３４】
続いてロボット装置２ｃは、顔識別機能のみを有し、音声認識機能及びＴＴＳ機能を有さないため、サービス要求に関する情報に加えて、例えば図１９に示すような機能リストを予めサーバ１００に送る。
【０１３５】
サーバ１００は、上述と同様にしてサービスの実行に必要となる機能を特定し、さらにロボット装置２ｃから送信された機能リストを解析し、サービスの実行に必要な機能が備わっているか否かを確認する。上述の通り、ロボット装置２ｃには顔識別機能しか備わっていないため、サーバ１００は、ロボット装置２ｃに備わっている機能で不足している顔識別機能及びＴＴＳ機能を代替させるようなデータ又はプログラムをロボット装置２ｃに送る。具体的には、図１４のように行動モジュールの木構造を構成するデータと、それぞれの行動モジュールのモニター関数及びアクション関数の実装とを送る。
【０１３６】
サーチ行動モジュールは、ロボット装置１ａの場合と同様に、短期記憶部２２１に現在記憶されている物体の中にFaceID＝usrFaceIDを満たすものがあるか否かを確認し、FaceID＝usrFaceIDを満たす物体が存在すれば、その物体までの距離を共有情報領域のDistanceに書き込む。
【０１３７】
アプローチ行動モジュールは、ロボット装置１ａの場合と同様に、発見されたユーザ１ａに対して適当な距離になるように制御する。
【０１３８】
メッセージ行動モジュールは、ユーザ１ｃが話ができる範囲内にいるときに適切なシーケンスに従ってメッセージを伝える。このとき、ロボット２ｂの場合と同様に、サーバ１００から送られてきた音声波形データを出力する。このメッセージ行動モジュールは、図２０に示すようなステートマシンで実現できる。すなわち、ユーザ１ｃに質問メッセージを出力して応答を待つ。そして、ユーザ１ｃの応答がＹＥＳであればメッセージＡを出力して終了し、ユーザ１ｃの応答がＮＯであればメッセージＢを出力して終了する。この際、音声認識に関しては、右肩スイッチ及び左肩スイッチを使うことになる。これは、ユーザ応答待ちの際に、「ＹＥＳの場合は右肩のスイッチを、ＮＯの場合は左肩のスイッチを押して下さい」というメッセージを出力することで実現される。
【０１３９】
以上説明したように、第２の実施の形態における情報提供システムによれば、ミドルウェアの相違がある複数のロボット装置が存在するマルチプラットフォーム環境下においても、送られてくるロボット装置の機能に関する情報を考慮し、サービスの実行に不足している機能をそのロボット装置が利用可能な機能で代替させるためのデータ又はプログラムを送信することで、サービスを実行可能とすることができる。
【０１４０】
なお、上述した第２の実施の形態では、サービスの実行に不足している機能をそのロボット装置が利用可能な機能で代替させるためのデータ又はプログラムを送信するものとして説明したが、これに限定されるものではなく、不足している機能に対応する機能オブジェクト自体を送信するようにしても構わない。この場合、サーバ１００は、ロボット装置２で利用される機能オブジェクトを例えばコンテンツ蓄積部１２０に記憶しておき、ロボット装置２からサービス要求と機能リストとが送られてくると、そのサービスの実行に必要な機能を特定すると共に、必要な機能のうちロボット装置２に不足している機能を特定する。そして、要求されたサービスに応じたデータ又はプログラムを送信する際に、不足している機能に対応する機能オブジェクトをコンテンツ蓄積部１２０から検索して送信する。なお、コンテンツ蓄積部１２０ではなく、他のデータベースに機能オブジェクトを記憶しておいてもよいことは勿論である。
【０１４１】
（追補）
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。
【０１４２】
本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的又は磁気的な作用を用いて人間の動作に似せた運動を行う機械装置或いはその他一般的な移動体装置、或いはこれら装置の動作を記述したデータを演算処理するデータ処理システムであるならば、例えば玩具などの他の産業分野に属する製品であっても、同様に本発明を適用することができる。
【０１４３】
また、本明細書中では、ＳＯＡＰによる通信方式によりロボット装置に対する実行環境に応じたサービスについて説明してきたが、本発明の要旨はこれに限定されるものではない。例えば、ＸＭＬ−ＲＰＣなど、ＳＯＡＰ以外でプラットフォーム非依存の遠隔手続呼び出し（Remote Procedure Call；ＲＰＣ）を行う通信方式を採用することができる。また、ロボット装置に提供するソフトウェアの分類を１ヶ所ではなく、複数のサイトにまたがって行い、それらを連携させるためのさらに別のサイトを案内するＷｅｂサービスを構築してもよい。
【０１４４】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【図面の簡単な説明】
【０１４５】
【図１】本発明の第１の実施の形態における情報提供システムの全体構成を模式的に示す図である。
【図２】同情報提供システム上で稼動することができるロボット装置の機能構成の一例を示す図である。
【図３】同ロボット装置の制御ユニットの構成を詳細に示す図である。
【図４】同情報提供システムにおけるサーバの機能構成を模式的に示す図である。
【図５】サーバがクライアントとしてのロボット装置に対してハードウェア構成やプラットフォームの相違に応じたデータやプログラムの配信を行う仕組みを説明するための図である。
【図６】ロボット装置がＱＡフォームを送信してデータやプログラムを要求し、サーバがこれに応じるという協働的動作の手順を示すシーケンス図である。
【図７】クライアントとしてのロボット装置のハードウェア構成やプラットフォームに適したコンテンツを選択する際のコンテンツ・マネージャの動作手順を説明するフローチャートである。
【図８】本発明の第２の実施の形態における情報提供システムの全体構成を模式的に示す図である。
【図９】ロボット装置がサービス要求及び機能リストを送信してサービスを要求し、サーバがこれに応じるという協働的動作の手順を示すシーケンス図である。
【図１０】ロボット装置のソフトウェア構成を示す図である。
【図１１】ロボット装置のソフトウェアのミドルウェア層及びアプリケーション層を詳細に示す図である。
【図１２】ロボット装置２ａがサーバに送る機能リストの一例を示す図である。
【図１３】サーバがロボット装置から送られてきた機能リストを解析するプログラムの一例を示す図である。
【図１４】サーバがロボット装置２ａに送ったデータで構成される木構造の一例を示す図である。
【図１５】ロボット装置２ａが有するメッセージ行動モジュールのアクション関数を実現するステートマシンを示す図である。
【図１６】ロボット装置２ｂがサーバに送る機能リストの一例を示す図である。
【図１７】サーバがロボット装置２ｂに送ったデータで構成される木構造の一例を示す図である。
【図１８】ロボット装置２ｂが有するユーザ発見行動モジュールのアクション関数を実現するステートマシンを示す図である。
【図１９】ロボット装置２ｃがサーバに送る機能リストの一例を示す図である。
【図２０】ロボット装置２ｃが有するメッセージ行動モジュールのアクション関数を実現するステートマシンを示す図である。
【符号の説明】
【０１４６】
１，１ａ，１ｂ，１ｃ  ユーザ、２，２ａ，２ｂ，２ｃ  ロボット装置、１５  ＣＣＤカメラ、１６  マイクロフォン、１７  スピーカ、１８  タッチ・センサ、１９  ＬＥＤインジケータ、２０  制御ユニット、４０  入出力部、５０  駆動部、６０  電源部、１００  サーバ、１２０  コンテンツ蓄積部、１２１  インターフェース・エージェント、１２２  コンテンツ・マネージャ、２００  システム層、２１０  ミドルウェア層、２２０  アプリケーション層、２２１  短期記憶部、２２２  行動制御部、２２３  行動モジュール、２３０  ネットワーク接続層
【図１】
2004318862.tif 000003
【図２】
2004318862.tif 000004
【図３】
2004318862.tif 000005
【図４】
2004318862.tif 000006
【図５】
2004318862.tif 000007
【図６】
2004318862.tif 000008
【図７】
2004318862.tif 000009
【図８】
2004318862.tif 000010
【図９】
2004318862.tif 000011
【図１０】
2004318862.tif 000012
【図１１】
2004318862.tif 000013
【図１２】
2004318862.tif 000014
【図１３】
2004318862.tif 000015
【図１４】
2004318862.tif 000016
【図１５】
2004318862.tif 000017
【図１６】
2004318862.tif 000018
【図１７】
2004318862.tif 000019
【図１８】
2004318862.tif 000020
【図１９】
2004318862.tif 000021
【図２０】
2004318862.tif 000022