(57)【要約】【課題】  ハードウエア構成やプラットフォームの相違がある複数のロボットに対してデータやプログラムを好適に提供する。【解決手段】  ロボット２は、コンテンツの提供を要求する際、ロボット２のハードウエア構成等のロボットに関する情報が書き込まれたＱＡフォームをサーバ４に送信する。サーバ４は、ＱＡフォームの内容から、ロボット２のハードウエア構成やプラットフォームに適したコンテンツを検出し、それをロボット２に提供する。【選択図】  図２
2005078456.tif 000002
【特許請求の範囲】
【請求項１】
互いに通信可能なロボットとサーバからなるコンテンツ提供システムにおいて、
前記ロボットは、
ロボットに関する情報をサーバに送信して、コンテンツの提供を要求する要求手段と、
前記要求手段による要求に応じて提供された前記コンテンツを使用する使用手段と
を備え、
前記サーバは、
前記ロボットに関する情報が満たす使用条件を有するコンテンツを検出する検出手段
と、
前記検出手段により検出された前記コンテンツを前記ロボットに提供する提供手段と
を備えることを特徴とするコンテンツ提供システム。
【請求項２】
前記ロボットに関する情報には、前記ロボットのＯＳに関する情報、前記ロボットに割り振られるロボット固有ＩＤ、前記ロボットの種類に割り振られるロボット種類ＩＤ、前記ロボットのハードウエア構成を示す情報、前記ロボットの機能リスト、前記ロボットが持つデータベース・リスト、または前記ロボットの作業環境を特定するための情報
が含まれることを特徴とする請求項１に記載のコンテンツ提供システム。
【請求項３】
前記使用条件には、コンテンツ使用に必要なＯＳに関する情報、コンテンツを使用できるロボットのロボット固有ＩＤ、コンテンツを使用できるロボットの種類を示すＩＤ、コンテンツ使用に必要なまたは推奨する機能リスト、コンテンツ使用に必要なまたは推奨するロボットの構成に関する情報、またはコンテンツ使用に必要なまたは推奨する作業環境に関する情報
が含まれることを特徴とする請求項２に記載のコンテンツ提供システム。
【請求項４】
互いに通信可能なロボットとサーバからなるコンテンツ提供システムにおいて、
前記サーバは、
提供可能なコンテンツの使用条件を前記ロボットに送信する送信手段と、
前記ロボットが前記使用条件を満たすコンテンツを前記ロボットに提供する提供手段
と
を備え、
前記ロボットは、自分が前記サーバの送信手段により送信されてきた前記使用条件を満たすか否かを判定し、前記使用条件を満たすコンテンツの提供を前記サーバに要求する要求手段
を備えることを特徴とするコンテンツ提供システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ提供システムに関し、特に、ロボットの機能に応じたコンテンツを提供することができるコンテンツ提供システムに関する。
【背景技術】
【０００２】
電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行う機械装置のことを「ロボット」という。ロボットの語源は、スラブ語の"ＲＯＢＯＴＡ（奴隷機械）"に由来すると言われている。わが国では、ロボットが普及し始めたのは１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化などを目的としたマニピュレータや搬送ロボットなどの産業用ロボット（industrial robot）であった。
【０００３】
ロボットの用途の１つとして、産業活動・生産活動等における各種の難作業の代行が挙げられる。例えば、原子力発電プラントや火力発電プラント、石油化学プラントにおけるメンテナンス作業、製造工場における部品の搬送・組立作業、高層ビルにおける清掃、火災現場その他における救助といったような危険作業・難作業の代行などである。
【０００４】
また、ロボットの他の用途として、上述の作業支援というよりも、生活密着型、すなわち人間との「共生」あるいは「エンターティンメント」という用途が挙げられる。この種のロボットは、ヒトあるいはイヌ（ペット）、クマなどの比較的知性の高い脚式歩行動物の動作メカニズムや四肢を利用した豊かな感情表現を忠実に再現する。また、あらかじめ入力された動作パターンを単に忠実に実行するだけではなく、ユーザ（あるいは他のロボット）から受ける言葉や態度（「褒める」とか「叱る」、「叩く」など）に対して動的に対応した、生き生きとした応答表現を実現することも要求される。
【０００５】
最近では、２足歩行、４足歩行、タイヤ式などさまざまなタイプの移動ロボットが、各社から提供されるようになってきている。
【０００６】
ところで、ロボットを動作させるためには、機体動作を記述したモーション・データや、外部刺激や内部状態に応じた行動制御を行うアプリケーションプログラムなど、さまざまなコンテンツが必要である。ところが、必要と思われるすべてのコンテンツをあらかじめロボットにインストールしておくことはメモリ容量の制限から無理がある。また、バージョンの変更や新製品の登場などによって、出荷した後任意のタイミングでソフトウェアをインストールする必要がある。
【０００７】
そこで、ネットワーク上にあるサーバから新たなコンテンツをロボットにダウンロードするといった、コンテンツをロボットに供給する仕組みが必要であると考えられる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来においては、ロボットの種類や、ハードウエア構成やプラットフォームに応じたコンテンツを適切に提供する仕組みは開発されておらず、その結果、コンテンツを適切にロボットに提供することができない課題があった。
【０００９】
本発明の目的は、ロボットのハードウエア構成やプラットフォームに対応するコンテンツをロボットに提供することができるコンテンツ提供システムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の第１のコンテンツ提供システムは、ロボットが、ロボットに関する情報をサーバに送信して、コンテンツの提供を要求する要求手段と、要求手段による要求に応じて提供されたコンテンツを使用する使用手段とを備え、サーバが、ロボットに関する情報が満たす使用条件を有するコンテンツを検出する検出手段と、検出手段により検出されたコンテンツをロボットに提供する提供手段とを備えることを特徴とする。
【００１１】
ロボットに関する情報に、ＯＳに関する情報、ロボットに割り振られるロボット固有ＩＤ、ロボットの種類に割り振られるロボット種類ＩＤ、ロボットのハードウエア構成を示す情報、ロボットの機能リスト、ロボットが持つデータベース・リスト、またはロボットの作業環境を特定するための情報を含ませるようにすることができる。
【００１２】
使用条件に、コンテンツ使用に必要なＯＳに関する情報、コンテンツを使用できるロボットのロボット固有ＩＤ、コンテンツを使用できるロボットの種類を示すＩＤ、コンテンツ使用に必要なまたは推奨する機能リスト、コンテンツ使用に必要なまたは推奨するロボットの構成に関する情報、またはコンテンツ使用に必要なまたは推奨する作業環境に関する情報を含ませるようにすることができる。
【００１３】
本発明の第１のコンテンツ提供システムにおいては、ロボットで、ロボットに関する情報がサーバに送信されて、コンテンツの提供が要求され、要求に応じて提供されたコンテンツが使用され、サーバで、ロボットに関する情報が満たす使用条件を有するコンテンツが検出され、検出されたコンテンツがロボットに提供される。
【００１４】
本発明の第２のコンテンツ提供システムは、サーバが、提供可能なコンテンツの使用条件をロボットに送信する送信手段と、ロボットが使用条件を満たすコンテンツをロボットに提供する提供手段とを備え、ロボットが、自分がサーバの送信手段により送信されてきた使用条件を満たすか否かを判定し、使用条件を満たすコンテンツの提供をサーバに要求する要求手段を備えることを特徴とする。
【００１５】
本発明の第２のコンテンツ提供システムにおいては、サーバで、提供可能なコンテンツの使用条件がロボットに送信され、ロボットが使用条件を満たすコンテンツがロボットに提供され、ロボットで、自分がサーバより送信されてきた使用条件を満たすか否かが判定され、使用条件を満たすコンテンツの提供がサーバに要求される。
【発明の効果】
【００１６】
本発明の第１および第２のコンテンツ提供システムは、個々のロボットに適したコンテンツを提供することができる。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明を適用したコンテンツ提供システムの構成例を示している。
【００１８】
ユーザ１−１は、犬型ロボット２−１との対話などを通じてインタラクションをし、ユーザ１−２は、人間型ロボット２−２との対話などを通じてインタラクションをする。なお、以下において、ユーザ１−１，１−２、およびロボット２−１、２−２を、個々に区別する必要がない場合、単に、ユーザ１およびロボット２と称する。他の場合についても同様に称する。
【００１９】
ロボット２は、ユーザ１の要求に応じた行動をとる。ロボット２は、無線又は有線を通じてインターネット３と接続されており、ユーザ１の要求に応じた行動をとるためのデータ（例えば、モーション・データ（ダンス・シーケンス））やプログラム（各種アプリケーションやミドルウエア）（以下、適宜、これらをまとめてコンテンツと称する）を有していない場合、そのコンテンツの提供を、図２に示すように、後述するＱＡフォームを利用してサーバ４に要求する。これによりロボット２は、ロボット２の製造元、ハードウエア構成、またはプラットフォーム等に応じたコンテンツを入手することができ、ユーザ１の要求に応じた行動をとることができる。
【００２０】
サーバ４は、ロボット２を介してユーザ１に提供するコンテンツを管理し、ロボット２からのＱＡフォーマットに基づく要求に応じて、その製造元、ハードウエア構成、またはプラットフォーム等に応じたコンテンツをロボット２に提供する。
【００２１】
なお、サーバ４は、ロボット２に提供するコンテンツの分類を１ヶ所ではなく、複数のサイト５にまたがって行い、それらを連携させるためのさらに別のサイトを案内するＷｅｂサービスを構築してもよい。
【００２２】
図３は、ロボット２の構成例を示している。
【００２３】
入出力部４０は、入力部としてロボット２の目に相当するＣＣＤカメラ１５や、耳に相当するマイクロフォン１６、頭部や背中などの部位に配設されてユーザ１の接触を感知するタッチ・センサ１８、あるいは五感に相当するその他の各種のセンサを有している。
【００２４】
また、入出力部４０は、出力部として、口に相当するスピーカ１７、あるいは点滅の組み合わせや点灯のタイミングにより顔の表情を形成するＬＥＤインジケータ（目ランプ）１９などを有している。これら出力部は、音声やランプの点滅を行うことによって、脚などによる機械運動パターン以外の形式でも、ロボット２からのユーザ・フィードバックを表現することができる。
【００２５】
駆動部５０は、制御ユニット２０が指令する所定の運動パターンに従ってロボット２の機体動作を実現する機能ブロックであり、行動制御による制御対象である。駆動部５０は、ロボット２の各関節における自由度を実現するための機能モジュールであり、それぞれの関節におけるロール、ピッチ、ヨーなど関節軸毎に設けられた複数の駆動ユニットで構成される。各駆動ユニットは、所定軸回りの回転動作を行うモータ５１と、モータ５１の回転位置を検出するエンコーダ５２と、エンコーダ５２の出力に基づいてモータ５１の回転位置や回転速度を適応的に制御するドライバ５３の組み合わせで構成される。
【００２６】
駆動ユニットの組み合わせ方によって、ロボット２のハードウエア構成が定まる。例えば、ロボット２−２は、２足歩行、そしてロボット２−１は、４足歩行などの脚式移動ロボットとして構成されている。
【００２７】
電源部６０は、その字義通り、ロボット２内の各電気回路などに対して給電を行う機能モジュールである。ロボット２は、バッテリを用いた自律駆動式であり、電源部６０は、充電バッテリ６１と、充電バッテリ６１の充放電状態を管理する充放電制御部６２とで構成される。
【００２８】
充電バッテリ６１は、例えば、複数本のリチウムイオン２次電池セルをカートリッジ式にパッケージ化した「バッテリ・パック」の形態で構成される。
【００２９】
また、充放電制御部６２は、バッテリ６１の端子電圧や充電／放電電流量、バッテリ６１の周囲温度などを測定することでバッテリ６１の残存容量を把握し、充電の開始時期や終了時期などを決定する。充放電制御部６２が決定する充電の開始及び終了時期は制御ユニット２０に通知され、ロボット２が充電オペレーションを開始及び終了するためのトリガとなる。
【００３０】
制御ユニット２０は、「頭脳」に相当し、例えばロボット２の機体頭部あるいは胴体部に搭載されており、図４に示すように構成されている。
【００３１】
メイン・コントローラとしてのＣＰＵ（Central Processing Unit）２１は、メモリやその他の各回路コンポーネントや周辺機器とバス接続された構成となっている。バス２８は、データ・バス、アドレス・バス、コントロール・バスなどを含む共通信号伝送路である。バス２８上の各装置にはそれぞれに固有のアドレス（メモリ・アドレス又はＩ／Ｏアドレス）が割り当てられている。ＣＰＵ２１は、アドレスを指定することによってバス２８上の特定の装置と通信することができる。
【００３２】
ＣＰＵ２１は、図５に示すように、ＯＳ（オペレーティング・システム）２１Ｄによる制御下で、コンテンツ２１Ａを再生する再生ソフトウェアなど各種のアプリケーションプログラム２１Ｂや、各種のミドルウエア２１Ｃを実行する。
【００３３】
ミドルウエア２１Ｃには、ロボット２の電源投入時に実行する自己診断テスト・プログラムやロボット２の動作を規定する「動作制御プログラム」、カメラ１５やマイクロフォン１６などのセンサ入力を処理して外界からの刺激をシンボルとして認識する「センサ入力・認識処理プログラム」、短期記憶や長期記憶などの記憶動作を司りながらセンサ入力と所定の行動制御モデルとに基づいてロボット２の行動を制御する「行動制御プログラム」、行動制御モデルに従って各関節モータの駆動やスピーカ１７の音声出力などを制御する「駆動制御プログラム」、ユーザ１との対話を通じたインタラクション行う「対話プログラム」、音声合成プログラム（ＴＴＳ）、およびネットワーク経由でサーバ４にアクセスしてユーザ１の要求に応えるためのコンテンツを取得する「コンテンツ取得プログラム」がある。
【００３４】
なおロボット２が持つハードウエア構成とオペレーティング・システム２１Ｄの組み合わせにより、ロボット２のプラットフォームが定まり、そのプラットフォームによって、実行可能なミドルウエア２１Ｃが定まる。アプリケーションプログラム２１Ｂやコンテンツ２１Ａには、装備されるミドルウエア２１Ｃに応じて、ロボット２上で実行または再生可能なものと、実行または再生不可能なものがある。
【００３５】
またこの例の場合、ロボット２は、ネットワーク接続して、インターネット３上のサーバ４からコンテンツを、ストリーミングまたはその他の形式でダウンロードするので、ミドルウエア２１Ｃのコンテンツ取得プログラムは、以下に示す機能を有している。
・ネットワークに接続するための無線ＬＡＮ
・ＳＯＡＰ（Simple Object Access Protocol）エンベロープに情報を組み込んだり受け取った情報を抽出したりするＳＯＡＰ／ＸＭＬモジュール
・ＨＴＴＰ（Hyper Text Transfer Protocol）でＳＯＡＰなどを通信するためのＨＴＴＰモジュール
・通信を統制するソフトウエアモジュール
・ユーザとの対話を行う音声入出力モジュール
・ＸＭＬモジュールを利用してディスクリプションを比較するモジュール
・ディスクリプションの比較を利用して依存性の解決を行うモジュール
【００３６】
図４に戻り、ＲＡＭ（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）インターフェース、ＰＣカードやメモリ・スティックを受容するメモリ・カード・インターフェース（カード・スロット）などのような、コンピュータの周辺機器接続用の汎用インターフェースを備え、ローカル接続又はインターネット接続された外部機器（サーバ）との間でプログラムやデータの移動を行うようにしてもよい。
【００４６】
また、インターフェース２５の他の例として、赤外線通信（ＩｒＤＡ）インターフェースを備え、外部機器と無線通信を行うようにしてもよい。
【００４７】
無線通信インターフェース２６は、Ｂｌｕｅｔｏｏｔｈのような近接無線データ通信や、ＩＥＥＥ  ８０２．１１ｂのような無線ネットワークを介して、例えば、図示せぬホスト・コンピュータとデータ通信を行う。
【００４８】
ネットワーク・インターフェース・カード（ＮＩＣ）２７は、インターネット３などの広域ネットワークを経由して、サーバ４とデータ通信を行う。
【００４９】
図６は、サーバ４の構成例を示している。
【００５０】
メイン・コントローラであるＣＰＵ１０１は、バス１０８によって他の機器類（後述）と相互接続されており、オペレーティング・システム（ＯＳ）の制御下で、各種のアプリケーションを実行する。
【００５１】
ＣＰＵ１０１は、例えば、インターネット３上でＨＴＴＰサーバとして動作するための「サーバ・プログラム」や、ユーザ１からのリクエストを解析する「インターフェース・エージェント」、ユーザ１のリクエストに応じるためのデータやプログラムのうち要求元ロボット２のハードウエア構成やプラットフォームに適ったものを提供する「コンテンツ・マネージャ」などのソフトウェア・プログラムを実行する。
【００５２】
またＣＰＵ１０１は、ユーザ１のリクエストに応じるためのコンテンツのうち要求元ロボット２のハードウエア構成やプラットフォームに適ったものをネットワーク経由でロボット２に提供する。従って以下の構成要素が備えられている。
【００５３】
・ＳＯＡＰエンベロープに情報を組み込んだり受け取った情報を抽出したりするＳＯＡＰ／ＸＭＬモジュール
・ＨＴＴＰでＳＯＡＰなどを通信するためのＨＴＴＰモジュール
・ネットワーク通信を行うハードウエアモジュール
・能力を表すディスクリプションを比較するモジュール
・現在ネットワークに参加しているロボットをリストするダイナミックＤＮＳのためのネームサーバモジュール
・ＸＭＬモジュールを利用してディスクリプションを比較するモジュール
・ディスクリプションの比較を利用して依存性の解決を行うモジュール
・ディスクリプションとともに登録したダウンロード可能なコンテンツ
【００５４】
なお、ＳＯＡＰは、他のシステム上のデータやサービスを呼び出すためのプロトコルであり、ＸＭＬやＨＴＴＰをベースとして構成される。ＳＯＡＰによる通信では、ＸＭＬドキュメントに付帯情報が付けられたメッセージ（エンベロープ）を、ＨＴＴＰなどのプロトコルで交換する。クライアントとサーバの双方がＳＯＡＰの生成及び解釈を行うエンジンを装備することで、異なる環境間でのオブジェクト呼び出しが可能となる。
【００５５】
主メモリ１０２は、ＣＰＵ１０１において実行されるプログラム・コードをロードしたり、実行プログラムの作業データを一時保管したりするために使用される記憶装置であり、例えばＤＲＡＭのような半導体メモリが使用される。
【００５６】
また、ＲＯＭ１０３は、データを恒久的に格納する半導体メモリであり、例えば、起動時の自己診断テスト（ＰＯＳＴ：Power On Self Test）や、ハードウエア入出力用のプログラム・コード（ＢＩＯＳ：Basic Input/Output System）などが書き込まれている。
【００５７】
ディスプレイ・コントローラ１０４は、ＣＰＵ１０１が発行する描画命令を実際に処理するための専用コントローラである。ディスプレイ・コントローラ１０４において処理された描画データは、例えばフレーム・バッファ（図示しない）に一旦書き込まれた後、ディスプレイ１１１によって画面出力される。
【００５８】
入力機器インターフェース１０５は、キーボード１１２やマウス１１３などのユーザ入力機器をＣＰＵ１０１に接続する。キーボード１１２やマウス１１３は、データやコマンドなどのユーザ入力をシステムに取り込む。
【００５９】
ネットワーク・インターフェース１０６は、Ｅｔｈｅｒｎｅｔ（登録商標）などの所定の通信プロトコルに従って、サーバ４をＬＡＮ（Local Area Network）などの局所的ネットワーク、さらにはインターネット３のような広域ネットワークに接続することができる。
【００６０】
外部機器インターフェース１０７は、ハード・ディスク・ドライブ（ＨＤＤ）１１４やメディア・ドライブ１１５などの外部装置をＣＰＵ１０１に接続する。
【００６１】
ＨＤＤ１１４は、記憶担体としての磁気ディスクを固定的に搭載した外部記憶装置である。
【００６２】
ＨＤＤ１１４には、ＣＰＵ１０１が実行すべきオペレーティング・システム、アプリケーション・プログラム、デバイス・ドライバ、サーバ・プログラム、インターフェース・エージェント、コンテンツ・マネージャなどのソフトウェア・プログラムが記憶されている。
【００６３】
ＨＤＤ１４にはまた、図７に示すような、童話や辞書、なぞなぞなどのデータ・コンテンツや、踊りや歌などのアプリケーション、認識ソフトウェアなどのミドルウエア、ロボットの行動制御ソフトウェアなど、多種多様なデータやプログラムが蓄積されているコンテンツデータベース１１４Ａが設けられている。
【００６４】
これらのコンテンツには、「コンテンツの内容を示す情報」および「コンテンツの使用条件を示す情報」が付加されている。
【００６５】
「コンテンツの内容を示す情報」は、メタ情報としての、以下に示すような情報である。
【００６６】
・内容を示す情報
<ContentsType>News</ContentsType>
<ContentsType>DanceMotion</ContentsType>
・データの型を示す情報
<DataType>Text</DataType>
<DataType>MIDI</DataType>
・作成日時に関する情報
<CreateDate>2003/03/23</CreateDate>
・タイトルなどに関する情報
<Title>WeAreSDR</Title>
【００６７】
また、「コンテンツの使用条件を示す情報」は、以下に示すようなものである。
・コンテンツ使用に必要なＯＳに関する情報
・コンテンツを使用できるロボットのロボット固有ＩＤ
・コンテンツを使用できるロボットのロボット種類ＩＤ
・コンテンツ使用に必要なまたは推奨するロボットのハードウエア構成を示す情報
・コンテンツ使用に必要なまたは推奨する機能リスト
・コンテンツ使用に必要なデータ
・コンテンツ使用に必要なまたは推奨する作業環境に関する情報
【００６８】
「コンテンツ使用に必要なまたは推奨する機能リスト」は、コンテンツの使用・再生に際して必要なミドルウエアのリストなどである。
【００６９】
「コンテンツ使用に必要なまたは推奨するロボットのハードウエア構成を示す情報」は、ロボット２の物理形状（人間形、４足ペット型、ユーティリティ型、タイヤ型など）、足の本数（２足、４足など）、最大移動速度、手の本数、手の運搬能力、その他の筐体に関する物理的な特性、思考（計算）能力の指標などを記述した情報である。
【００７０】
「コンテンツ使用に必要なまたは推奨する作業環境に関する情報」は、最適なまたは推奨する、ロボット２の本能や感情といった情動に関する指標値、筐体の温度（外部やアクチュエータなどのロボット２内部の部品温度）、湿度、光量、照度、日射量、日照時間、音圧レベル、無線ＬＡＮを含む電波強度、路面の固さ、加速度などの外部刺激の指標値である。またミドルウエアについては、ロボット２単体ではなく外部プロセッサを併用するシステムの場合に、そのミドルウエアの常駐条件（ロボット２内に常駐しておく必要があるか、後にはずしても良いか、外部プロセッサ上で動作してもよいか等）も含まれる。
【００７１】
メディア・ドライブ１１５は、ＣＤ（Compact Disc）やＭＯ（Magneto-Optical disc）、ＤＶＤ（Digital Versatile Disc）などの可搬型メディアを装填して、そのデータ記録面にアクセスするための装置である。
【００７２】
可搬型メディアは、主として、ソフトウェア・プログラムやデータ・ファイルなどをコンピュータ可読形式データとしてバックアップすることや、これらをシステム間で移動（すなわち販売・流通・配布を含む）する目的で使用される。
【００７３】
なおこれらデータ・コンテンツやプログラムは、その再生や実行に際し、ロボット２のハードウエア構成やプラットフォームなどの実行環境の相違に依存するものと依存しないものがある。
【００７４】
次に、ロボット２およびサーバ４の動作を、図８のシーケンス図を参照して説明する。
【００７５】
ユーザ１は、ロボット２と対話などを通じて、インタラクションをし、ユーザ１の要求に応じて行動するためのコンテンツを有していない場合、ロボット２は、そのコンテンツを要求するためのＱＡフォームを作成する（番号１）。
【００７６】
ＱＡフォームには、例えば、「ロボットに関する情報」、および「コンテンツに関する情報」が書き込まれる。なおこの情報は、不揮発性メモリ２４に記憶されていれば、それを利用し、記憶されていなければ適宜取得される。
【００７７】
例えば、「ロボットに関する情報」には、以下のようなものが含まれる。
【００７８】
・ＯＳに関する情報
・ロボット毎にユニークに割り振られるロボット固有ＩＤ
・ロボットの種類毎にユニークに割り振られるロボット種類ＩＤ
・ロボットのハードウエア構成を示す情報
・ロボットの機能リスト
・ロボットが持つデータベース・リスト
・作業環境に関する情報
【００７９】
「ＯＳに関する情報」とは、オペレーションシステム２１Ｄの種類、バージョン番号、デバイス非依存のモジュール情報である。
【００８０】
「ロボットのハードウエア構成を示す情報」とは、ロボットの物理形状（人間形、４足ペット型、ユーティリティ型、タイヤ型など）、足の本数（２足、４足など）、最大移動速度、手の本数、手の運搬能力、その他の筐体に関する物理的な特性、思考（計算）能力の指標などの情報である。
【００８１】
「ロボットの機能リスト」とは、例えば、現在ロボット２に装備されているミドルウエアの名前、バージョン名、およびその機能（例えば、何ｋｇまで持ち上げられるか、移動速度、必要なＣＰＵ、およびロボット２内に常駐していることが必要かまたは外部稼働が可能か等の情報）の情報である。
【００８２】
「作業環境に関する情報」は、最適なまたは推奨する、ロボット２の本能や感情といった情動に関する指標値、筐体の温度（外部やアクチュエータなどのロボット２内部の部品温度）、湿度、光量、照度、日射量、日照時間、音圧レベル、無線ＬＡＮを含む電波強度、路面の固さ、加速度などの外部刺激の指標値である。
【００８３】
「コンテンツに関する情報」は、ユーザ１とのインタラクションの内容などである。
【００８４】
図９乃至図１１は、ＱＡフォームに相当するディスクリプションの例を示す。なお図９乃至図１０の記述全体で、１つのディスクリプションを形成している。なおＱＡフォームに相当するディスクリプションを、階層的に構成するようにしたので、概ね隣接する層との関係だけを考慮すれば、関係を記述することができる。またこのディスクリプションにより、コンテンツとハードウエアの依存性を解決することができる枠組みを提供することができる。
【００８５】
図８に戻りロボット２は、作成したＱＡフォームをＳＯＡＰエンベロープに組み込み、ＨＴＴＰプロトコルによってサーバ４に送信する（番号２）。
【００８６】
これに対し、サーバ４は、ロボット２から送信されてきたＳＯＡＰエンベロープを解析して、ＱＡフォームから、要素情報（「ロボットに関する情報」や「コンテンツに関する情報」）を取り出し、それと、コンテンツデータベース１１４Ａの付加情報のマッチングをとる。
【００８７】
具体的には、コンテンツの付加情報としての「コンテンツの使用条件を示す情報」と、ＱＡフォーマットの「ロボットに関する情報」、「コンテンツに関する情報」が比較される。
【００８８】
そしてサーバ４は、そのマッチング結果に基づいて、ユーザ１のリクエストに応じるためのコンテンツのうち、要求元ロボット２のハードウエア構成やプラットフォームに適ったものを選択し、提供可能なコンテンツのリストを作成する。
【００８９】
例えば、あるコンテンツの「コンテンツの使用条件を示す情報」が図１２に示すディスクリプションである場合、図９乃至図１１のディスクリプションから、図１３に示す、「コンテンツの使用条件を示す情報」のノードに対応するノードが検出される。
【００９０】
そして検出されたＱＡフォームのノードが、必須条件でない場合を除き（recommendedである場合を除き）、「コンテンツの使用条件を示す情報」のノードの条件を満たしているか否かが判定される。
【００９１】
図１２（「コンテンツの使用条件を示す情報」）では、バージョン1.2以降のＴＴＳが条件とされているのに対して、図１３（「ロボットに関する情報」）（ＱＡフォーム）では、バージョン1.3のＴＴＳが装備されており、また図１２では、作業環境として、気温30度以上が推奨されているのに対して(recommended)、図１３では、35度以上とされている。したがってこの例の場合、このコンテンツは使用可能なコンテンツとされ、リストに加えられる。
【００９２】
なお、タグ内容の比較は、各属性の存在、属性値の包括性が確認され、いずれかでも不足する場合は、結果として偽とされる。
【００９３】
図８に戻り、サーバ４は、生成したリストをＳＯＡＰエンベロープに組み込んで、ＳＯＡＰ回答としてロボット２に返す（番号４）。サーバ４は、要求に応えられないとき、その理由などを記述して返す。
【００９４】
ロボット２は、サーバ４からのＳＯＡＰ回答を受け取ると、これを解析して要素情報を取り出し、蓄積してあるユーザ１の個人情報（趣味や嗜好など）とのマッチングをとり、合致し易いコンテンツを選択し、サーバ４への取得要請を作成し（番号５）、これをＳＯＡＰエンベロープに組み込んで、サーバ４へ送信する（番号６）。
【００９５】
なお、ロボット２は、例えば、サーバ４からのコンテンツのリストをユーザ１に提示し、ユーザ１に指定されたコンテンツの取得を要請することもできる。
【００９６】
サーバ４は、ロボット２からの要請を受け取ると、必要なファイルの所在を示したＵＲＬを検出し（番号７）、それを含んだＳＯＡＰ回答を作成して、ロボット２に返す（番号８）。
【００９７】
ロボット２は、必要なファイルをＨＴＴＰ  ＧＥＴリクエストによりサーバ４へ要求する（番号９）。サーバ４は、要求されたファイルをロボット２へ返す（番号１０）。サーバ４は、ロボット２からの要求に従いダンスのダウンロードを開始する。
【００９８】
そして、ロボット２は、必要なファイルを受信すると、それを利用してユーザが要求した行動を実演する（番号１１）。
【００９９】
このようにして、要求元のロボット２のハードウエア構成やプラットフォームに適合したコンテンツを提供することができる。すなわち例えば、振り付けのある歌データの場合、ロボット２が実演可能なダンス・データと再生可能な歌データといった具合に、ロボット２の構成にあったデータを選択して送ることができる。
【０１００】
なお、以上においては、サーバ４が、ロボット２からのＱＡフォームに基づいて、提供可能なコンテンツを選択する場合を例として説明したが、サーバ４は、コンテンツの使用条件をロボット２に送信し、ロボット２が、自分の能力がその条件を満たすか否かを判定し、その条件を満たすとき、コンテンツの提供を受けることができるようにすることができる。
【０１０１】
また使用条件を満たす能力が有していない場合、ロボット２は、例えば、その能力を得るためのプログラムの提供を、サーバ４から受けることができる。
【０１０２】
例えば、童話などをユーザ１に読んで聞かせる場合など、ミドルウエアとしてＴｅｘｔ Ｔｏ Ｓｐｅｅｃｈ（ＴＴＳ）の機能を備える必要が場合において、ロボット２がその機能有していないとき、図１４に示すような<request-description>を、ＱＡフォームとともに、ＳＯＡＰに実装して、サーバ４に送信する。
【０１０３】
サーバ４は、ＴＴＳを有していれば、そのＵＲＬをロボット２に通知する。なお複数のモジュールが要求された場合、条件が合致したモジュールのＵＲＬが通知される。
【０１０４】
なお、サーバ４は、実際のモジュールをダウンロードする際、モジュールをロボット２内にダウンロードすべきか、ロボット２を外部から制御するリモートプロセッサ（図示せぬ）にダウンロードすべきかを判定する。ロボット２内のメモリに制限がある場合などは、リモートプロセッサにダウンロードされるが、そのとき、ロボット２は、リモートプロセッサを介してダウンロードされたモジュールと通信し、所定のコンテンツを利用する。
【０１０５】
すなわちこの場合、リモートプロセッサは、以下の機能を有する。
・ネットワークに接続するための有線ＬＡＮ
・ＳＯＡＰエンベロープに情報を組み込んだり受け取った情報を抽出したりするＳＯＡＰ／ＸＭＬモジュール
・ＨＴＴＰでＳＯＡＰなどを通信するためのＨＴＴＰモジュール
・通信を統制するソフトウエアモジュール
・ＸＭＬモジュールを利用してディスクリプションを比較するモジュール
・ディスクリプションの比較を利用して依存性の解決を行うモジュール
・ロボットのためのダウンロードや通信を代行するモジュール
・ダウンロードしたコンテンツを記憶しておくストレージとデータベースシステム
【０１０６】
なお、本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行う機械装置あるいはその他一般的な移動体装置、あるいはこれら装置の動作を記述したデータを演算処理するデータ処理システムであるならば、例えば玩具などのような他の産業分野に属する製品であっても、同様に本発明を適用することができる。
【０１０７】
また、本明細書中では、ＳＯＡＰによる通信方式によりロボットに対する実行環境に応じたサービスについて説明してきたが、本発明の要旨はこれに限定されるものではない。例えば、ＸＭＬ−ＲＰＣなど、ＳＯＡＰ以外でプラットフォーム非依存の遠隔手続呼び出し（ＲＰＣ：Remote Procedure Call）を行う通信方式を採用することができる。また、ロボットに提供するソフトウェアの分類を１ヶ所ではなく、複数のサイトにまたがって行い、それらを連携させるためのさらに別のサイトを案内するＷｅｂサービスを構築してもよい。
【０１０８】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【図面の簡単な説明】
【０１０９】
【図１】本発明のコンテンツ提供システムの全体構成を示す図である。
【図２】コンテンツ要求方法の概略を説明する図である。
【図３】図１のロボットの構成例を示すブロック図である。
【図４】図３の制御ユニットの構成例を示すブロック図である。
【図５】図３のＣＰＵが実行するプログラムを示す図である。
【図６】図１のサーバの構成例を示すブロック図である。
【図７】図６のＨＤＤに構築されているデータベースの内容を示す図である。
【図８】図１のロボットとサーバの動作を説明するシーケンス図である。
【図９】ＱＡフォームとしてのディスクリプションの例を示す図である。
【図１０】ＱＡフォームとしてのディスクリプションの例を示す図である。
【図１１】ＱＡフォームとしてのディスクリプションの例を示す図である。
【図１２】コンテンツの使用条件としてのディスクリプションの例を示す図である。
【図１３】ＱＡフォームから検出されるノードを示す図である。
【図１４】コンテンツを要求するためのディスクリプションの例を示す図である。
【符号の説明】
【０１１０】
２  ロボット，  ３  インターネット，  ４  サーバ
【図１】
2005078456.tif 000003
【図２】
2005078456.tif 000004
【図３】
2005078456.tif 000005
【図４】
2005078456.tif 000006
【図５】
2005078456.tif 000007
【図６】
2005078456.tif 000008
【図７】
2005078456.tif 000009
【図８】
2005078456.tif 000010
【図９】
2005078456.tif 000011
【図１０】
2005078456.tif 000012
【図１１】
2005078456.tif 000013
【図１２】
2005078456.tif 000014
【図１３】
2005078456.tif 000015
【図１４】
2005078456.tif 000016