(57)【要約】【課題】本発明は、ロボットの動作を記述したプログラムを作成してロボットを動作させるロボットシステム等に関し、ロボットの動作（ビヘイビア）の多様性を確保する。【解決手段】多数のエディタ端末１１、ビヘイビアサーバ１２、および多数のロボット１３がネットワーク１４に接続されており、それら多数のエディタ端末１１のそれぞれでロボット１３の動作（ビヘイビア）を定義し、その定義されたビヘイビアをビヘイビアサーバ１２に蓄積し、各ロボット１３をそのビヘイビアサーバ１２に蓄積されたビヘイビアで動作させる。【選択図】        図１
2008307662.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された、複数台のエディタ端末、サーバ、および複数台のロボットからなるロボットシステムであって、
前記複数台のエディタ端末それぞれは、ロボットの一事象単位の振る舞いを記述したプログラム部品をユーザによる操作に応じて作成して前記サーバに向けて送信するものであり、
前記サーバは、前記複数台のエディタ端末それぞれから送信されてきたプログラム部品を蓄積し、該プログラム部品を、前記複数台のロボットそれぞれからの要求に応じて該ロボットに向けて送信するものであり、
前記複数台のロボットそれぞれは、前記サーバから送信を受けたプログラム部品に従って動作するものであることを特徴とするロボットシステム。
【請求項２】
前記複数台のエディタ端末それぞれは、
ロボットが動作を開始する契機を記述したコンディションを作成するコンディションエディタと、
ロボットの動作自体を記述したアクションを作成するアクションエディタと、
ロボットが動作した結果生じる内部パラメータの変化を記述したエフェクトを作成するエフェクトエディタと、
前記コンディションと前記アクションと前記エフェクトとの結合を記述したビヘイビアを作成するビヘイビアエディタとを備え、
前記ビヘイビアが、該ビヘイビアに記述された、前記コンディション、前記アクション、および前記エフェクトと連携して、ロボットの一事象の振る舞いを記述したプログラム部品として作用するものであることを特徴とする請求項１記載のロボットシステム。
【請求項３】
ロボットの一事象単位の振る舞いを記述したプログラム部品をユーザによる操作に応じて作成して、ネットワークを介して接続されたサーバに向けて該プログラム部品を送信するエディタ端末であって、
ロボットが動作を開始する契機を記述したコンディションを作成するコンディションエディタと、
ロボットの動作自体を記述したアクションを作成するアクションエディタと、
ロボットが動作した結果生じる内部パラメータの変化を記述したエフェクトを作成するエフェクトエディタと、
前記コンディションと前記アクションと前記エフェクトとの結合を記述したビヘイビアを作成するビヘイビアエディタとを備え、
前記ビヘイビアが、該ビヘイビアに記述された、前記コンディション、前記アクション、および前記エフェクトと連携して、ロボットの一事象の振る舞いを記述したプログラム部品として作用するものであることを特徴とするエディタ端末。
【請求項４】
前記アクションエディタは、
ロボットの一事象の動作開始からの経過時刻の指定を受けるタイムライン部と、該タイムライン部で指定された時刻におけるロボットの姿勢の指定を受けるサーボ部とを有するアクションエディタ画面を表示する画面表示手段と、
前記アクションエディタ画面上でそれぞれ指定された第１の時刻における第１の姿勢と第２の時刻における第２の姿勢との間を補間して、該第１の時刻では該第１の姿勢をとり、該第１の姿勢から姿勢を順次変化させて該第２の時刻で該第２の姿勢をとるアクションを作成するアクション作成手段とを有することを特徴とする請求項３記載のエディタ端末。
【請求項５】
プログラムを実行する情報処理装置内で実行され、該情報処理装置を、ロボットの一事象単位の振る舞いを記述したプログラム部品をユーザによる操作に応じて作成して、ネットワークを介して接続されたサーバに向けて該プログラム部品を送信するエディタ端末として動作させるエディタプログラムであって、
前記情報処理装置を、
ロボットが動作を開始する契機を記述したコンディションを作成するコンディションエディタと、
ロボットの動作自体を記述したアクションを作成するアクションエディタと、
ロボットが動作した結果生じる内部パラメータの変化を記述したエフェクトを作成するエフェクトエディタと、
前記コンディションと前記アクションと前記エフェクトとの結合を記述したビヘイビアを作成するビヘイビアエディタとを備え、
前記ビヘイビアが、該ビヘイビアに記述された前記コンディション、前記アクション、および前記エフェクトと連携して、ロボットの一事象の振る舞いを記述したプログラム部品として作用するものであるエディタ端末として動作させることを特徴とするエディタプログラム。
【請求項６】
前記アクションエディタは、
ロボットの一事象の動作開始からの経過時刻の指定を受けるタイムライン部と、該タイムライン部で指定された時刻におけるロボットの姿勢の指定を受けるサーボ部とを有するアクションエディタ画面を表示する画面表示手段と、
前記アクションエディタ画面上でそれぞれ指定された第１の時刻における第１の姿勢と第２の時刻における第２の姿勢との間を補間して、該第１の時刻では該第１の姿勢をとり、該第１の姿勢から姿勢を順次変化させて該第２の時刻で該第２の姿勢をとるアクションを作成するアクション作成手段とを有することを特徴とする請求項５記載のエディタプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作を記述したプログラムを作成してロボットを動作させるロボットシステム、ロボットの動作を記述したプログラムを作成するエディタ端末、およびコンピュータ等の情報処理装置をエディタ端末として動作させるエディタプログラムに関する。
【背景技術】
【０００２】
近年、犬型やネコ型、あざらし型などのペットロボットに代表されるような、コミュニケーション可能な小型ロボット（以下では、コミュニケーションロボットと呼ぶ）の存在が一般家庭に受け入れられるようになってきた。このようなロボットは、生き物のような振る舞い（ビヘイビア）をすることで、ユーザに親近感を与えることができる。ビヘイビアはロボットの生き物らしさそのものであり、ビヘイビアの設計の良し悪しが、ロボットと人間の関係に大きく影響し、また、ロボットとユーザの間のインタラクションおよびコミュニケーションの質を左右すると考えられる。
【０００３】
コミュニケーションロボットは、人間とコミュニケーションを行うことを目的としたロボットである。ユーザを飽きさせずに、ユーザからの積極的なコミュニケーションを得るためには、ロボットの設計に工夫が必要である。その工夫の一つとしてあげられるのが、ロボットの成長やふるまいの経時変化である。従来のコミュニケーションロボットの成長は、ビヘイビアの実行制限の選択的解除によるアプローチが一般的である。つまり、ロボットの初期状態では全てのビヘイビアが実行可能ではなく、ロボットの起動時間や、ユーザとのインタラクションを経て、ビヘイビアの実行制限を選択的に解除していく。このようにすることで、ロボットがあたかも成長しているかのようにユーザに錯覚させることができるのである。しかし、このような従来手法では、ロボットは、（限られた人数の）開発者があらかじめ実装したビヘイビアの集合を徐々に「小出し」に実行していくのみで、あらかじめ用意されたもの以上のビヘイビアを覚えることはないため、ビヘイビアのパターンには限界があり、それがユーザの“飽き”の原因になるおそれがある。
【０００４】
このような事情は、物理的な身体を持った人形等のロボットに限られるものではなく、ソフトウエア上のエージェントや、アバター、ゲームキャラクタなど、物理的な身体は持たずにコンピュータ内に構築された仮想空間（仮想世界）で動作する人形等（ここでは、これらを含め、「ロボット」と称する）であっても同様である。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、上記事情に鑑み、ビヘイビアの多様性を確保したロボットシステム、そのロボットシステムに好適なエディタ端末およびエディタプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成する本発明のロボットシステムは、ネットワークを介して接続された、複数台のエディタ端末、サーバ、および複数台のロボットからなるロボットシステムであって、
上記複数台のエディタ端末それぞれはロボットの一事象単位の振る舞いを記述したプログラム部品を、ユーザによる操作に応じて作成して前記サーバに向けて送信するものであり、
上記サーバは、複数台のエディタ端末それぞれから送信されてきたプログラム部品を蓄積し、該プログラム部品を、複数台のロボットそれぞれからの要求に応じて該ロボットに向けて送信するものであり、
上記複数台のロボットそれぞれは、サーバから送信を受けたプログラム部品に従って動作するものであることを特徴とする。
【０００７】
ここで、本発明における「ロボット」は、前述したとおり、物理的な身体を持ったロボットであってもよく、物理的な身体は持たずにコンピュータ上に構築された仮想世界で動作する、いわゆるソフトウエアロボットであってもよい。
【０００８】
近年、Ｗｉｋｉｐｅｄｉａに代表されるように、マス・コラボレーションの考え方が一般的に受け入れられてきている。マス・コラボレーションは、不特定多数のユーザがそれぞれ独立に創造的作業をおこない、それぞれの成果物を統合し一つのコンテンツ（集合）を構築する。不特定多数のユーザが参加することにより、必然的に、コンテンツの量および多様性が高まり、また、参加者一人一人のコンテンツ作成能力が高くなくても、統合の過程で、第三者によって不備な点が発見・修正され、全体の質が保たれることが期待される。
【０００９】
本発明のロボットシステムは、上記の考え方の下、ロボットの動作を記述したプログラム部品を不特定多数のユーザによって作成・共有するシステムを構築したものであり、ビヘイビアのパターンの限界が取り去られ、ユーザが‘飽き’にくいシステムが実現する。
【００１０】
ここで、本発明のロボットシステムにおいて、上記サーバは、さらに、エディタ端末からの要求に応じて、そのエディタ端末に向けて、他のエディタ端末で作成されたプログラム部品も送信するものであることが好ましく、また、
上記エディタ端末は、サーバからのプログラム部品の送信を受け、ユーザによる操作に応じて、送信を受けたプログラム部品を基にした新たなプログラム部品を作成するものであることが好ましく、さらに、
上記エディタ端末は、ユーザ操作に応じて、プログラム部品に注釈を記入するものであることが好ましい。
【００１１】
各エディタ端末は、自分の１台のエディタ端末で作成したプログラム部品だけでなく、他のエディタ端末で作成したプログラム部品を基に新たなプログラム部品を作成できるようにすることで、自分にはなかった発想の動作を取り入れた新たなプログラム部品を作成することができるなど、プログラム部品のバリエーション、すなわちロボットの動作の多様性を一層広げることができる。
【００１２】
またプログラム部品に注釈を記入することができるようにしておくと、自分がそのプログラム部品を作成した意図や背景などを他のユーザ（他のエディタ端末）に知らせたり、あるいは他のユーザ（他のエディタ端末）で作成されたプログラム部品の矛盾点や改良点を指摘し、そのプログラム部品の設計者に修正や改良を促すことなどが可能となる。
【００１３】
また本発明のロボットシステムにおいて、上記サーバは、複数台のエディタ端末それぞれから送信されてきたプログラム部品に、プログラム部品を個別に識別するための個別のＩＤを付して蓄積するものであることが好ましく、さらにまた、上記複数台のロボットそれぞれは、サーバからプログラム部品の送信を受けるにあたり、上記ＩＤに基づき、受信未了のプログラム部品のみ送信を受けるものであることが好ましい。
【００１４】
複数のエディタ端末から通信されてきた複数のプログラム部品に個別のＩＤを付与することにより、サーバにおけるプログラム部品の管理が容易となる。
【００１５】
また、ロボットは、このＩＤに基づいて、まだ受信していないプログラム部品のみ送信を受けることにより、通信量を減らすことができ、例えばロボットに電源を投入してから動作を開始するまでの立ち上がり時間の短縮を図ることなどが可能となる。
【００１６】
また、上記本発明のロボットシステムにおいて、上記エディタ端末は、優先度の情報が付されたプログラム部品を作成するものであって、上記ロボットは、複数のプログラム部品に従う複数の動作が互いに競合する場合に優先度の高いプログラム部品に従って動作するものであることが好ましい。
【００１７】
プログラム部品に優先度の情報を付与しておくことにより、動作の競合を避けることができる。
【００１８】
また、本発明のロボットシステムにおいて、上記複数台のエディタ端末それぞれは、
ロボットが動作を開始する契機を記述したコンディションを作成するコンディションエディタと、
ロボットの動作自体を記述したアクションを作成するアクションエディタと、
ロボットが動作した結果生じる内部パラメータの変化を記述したエフェクトを作成するエフェクトエディタと、
上記コンディションとアクションとエフェクトとの結合を記述したビヘイビアを作成するビヘイビアエディタとを備え、
上記ビヘイビアが、そのビヘイビアに記述された、コンディション、アクション、およびエフェクトと連携して、ロボットの一事象の振る舞いを記述したプログラム部品として作用するものであることが好ましい。
【００１９】
コンディションと、アクションと、エフェクトとを分けて作成してそれらを結合する構成を採用することにより、それらの組合せが自由となり、ビヘイビアの多様性を大きく向上させることができる。
【００２０】
この場合に、上記アクションエディタは、
ロボットの一事象の動作開始からの経過時刻の指定を受けるタイムライン部と、そのタイムライン部で指定された時刻におけるロボットの姿勢の指定を受けるサーボ部とを有するアクションエディタ画面を表示する画面表示手段と、
上記アクションエディタ画面上でそれぞれ指定された第１の時刻における第１の姿勢と第２の時刻における第２の姿勢との間を補間して、第１の時刻では第１の姿勢をとり、第１の姿勢から姿勢を順次変化させて第２の時刻で第２の姿勢をとるアクションを作成するアクション作成手段とを有することが好ましい。
【００２１】
姿勢どうしを補間する構成を採用すると、ユーザによるアクションの指定が容易となる。
【００２２】
また、上記目的を達成する本発明のエディタ端末はロボットの一事象単位の振る舞いを記述したプログラム部品を、ユーザによる操作に応じて作成して、ネットワークを介して接続されたサーバに向けてそのプログラム部品を送信するエディタ端末であって、
ロボットが動作を開始する契機を記述したコンディションを作成するコンディションエディタと、
ロボットの動作自体を記述したアクションを作成するアクションエディタと、
ロボットが動作した結果生じる内部パラメータの変化を記述したエフェクトを作成するエフェクトエディタと、
コンディションとアクションとエフェクトとの結合を記述したビヘイビアを作成するビヘイビアエディタとを備え、
上記ビヘイビアが、そのビヘイビアに記述された、コンディション、アクション、およびエフェクトと連携して、ロボットの一事象の振る舞いを記述したプログラム部品として作用するものであることを特徴とする。
【００２３】
この場合に、上記アクションエディタは、
ロボットの一事象の動作開始からの経過時刻の指定を受けるタイムライン部と、タイムライン部で指定された時刻におけるロボットの姿勢の指定を受けるサーボ部とを有するアクションエディタ画面を表示する画面表示手段と、
アクションエディタ画面上でそれぞれ指定された第１の時刻における第１の姿勢と第２の時刻における第２の姿勢との間を補間して、第１の時刻では第１の姿勢をとり、第１の姿勢から姿勢を順次変化させて第２の時刻で該第２の姿勢をとるアクションを作成するアクション作成手段とを有することが好ましい。
【００２４】
さらに、上記目的を達成する本発明のエディタプログラムは、プログラムを実行する情報処理装置内で実行され、その情報処理装置を、ロボットの一事象単位の振る舞いを記述したプログラム部品をユーザによる操作に応じて作成して、ネットワークを介して接続されたサーバに向けてそのプログラム部品を送信するエディタ端末として動作させるエディタプログラムであって、上記情報処理装置を、
ロボットが動作を開始する契機を記述したコンディションを作成するコンディションエディタと、
ロボットの動作自体を記述したアクションを作成するアクションエディタと、
ロボットが動作した結果生じる内部パラメータの変化を記述したエフェクトを作成するエフェクトエディタと、
コンディションとアクションとエフェクトとの結合を記述したビヘイビアを作成するビヘイビアエディタとを備え、
ビヘイビアが、そのビヘイビアに記述された、コンディション、アクション、およびエフェクトと連携して、ロボットの一事象の振る舞いを記述したプログラム部品として作用するものであるエディタ端末として動作させることを特徴とする。
【００２５】
この場合に、上記アクションエディタは、
ロボットの一事象の動作開始からの経過時刻の指定を受けるタイムライン部と、タイムライン部で指定した時刻におけるロボットの姿勢の指定を受けるサーボ部とを有するアクションエディタ画面を表示する画面表示手段と、
上記アクションエディタ画面上でそれぞれ指定された第１の時刻における第１の姿勢と第２の時刻における第２の姿勢との間を補間して、第１の時刻では第１の姿勢をとり、第１の姿勢から姿勢を順次変化させて第２の時刻で第２の姿勢をとるアクションを作成するアクション作成手段とを有することが好ましい。
【発明の効果】
【００２６】
以上の本発明によれば、ロボットの振る舞いを記述した多数のプログラム部品を不特定多数のユーザによって作成、共有することができ、ビヘイビア（振る舞い）の多様性が確保される。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施形態について説明する。
【００２８】
図１は、本発明のロボットシステムの全体構成図である。
【００２９】
この図１に示すロボットシステム１０には、２台のエディタ端末１１と、ビヘイビアサーバ１２と、２台のロボット１３と、それらを通信で繋ぐネットワーク１４が示されている。
【００３０】
尚、ここでは、図示の煩雑さを避けるため、エディタ端末１１およびロボット１３は、いずれも２台ずつのみ示されているが、典型的にはこのロボットシステム１０には、多数のエディタ端末１１や多数のロボット１３が参加している。
【００３１】
ここで、エディタ端末１１は、ロボット１３の一事象単位の振る舞いを記述したプログラム部品をユーザによる操作に応じて作成してビヘイビアサーバに向けて送信するものである。
【００３２】
また、ビヘイビアサーバ１２は、エディタ端末１１のそれぞれから送信されてきたプログラム部品を蓄積し、蓄積したプログラム部品を、ロボット１３それぞれからの要求に応じて要求したロボットに向けて送信するものである。
【００３３】
また、ロボット１３は、ビヘイビアサーバ１２から送信を受けたプログラム部品に従って動作するものである。
【００３４】
ここでは、ロボット１３のビヘイビア（振る舞い）の表現を一種のコンテンツとしてとらえてビヘイビアコンテンツと呼ぶことにする。このロボットシステム１０では、エディタ端末１１でビヘイビアコンテンツが作成されビヘイビアサーバ１２にアップロードされて保存される。ここでは、このビヘイビアサーバ１２に保存されているビヘイビアコンテンツ（プログラム部品）の集合をビヘイビア空間と呼んでいる。ロボット１３は、ビヘイビアサーバ１２と同期しており、ビヘイビアサーバ１２上のビヘイビアコンテンツの集合がそのまま、ロボット１３で利用可能なビヘイビアとなる。すなわち、ロボット１３はビヘイビアサーバ１２に対し定期的にビヘイビア空間の更新の有無について問い合わせを行ない、ビヘイビアサーバ１２上のビヘイビア空間をロボット１３の内部にコピーする。したがって、ビヘイビアサーバ１２とのビヘイビアがあるユーザによって追加あるいは編集されたとき、全てのユーザがもつロボット１３のビヘイビア空間（のコビー）が更新される。
【００３５】
図２は、図１に示すロボットシステムを構成するビヘイビアサーバとロボットの内部構成を示したブロック図である。
【００３６】
この図２では、ロボット１３についての内部構成を中心に示しており、ビヘイビアサーバ１２については概要を示し、エディタ端末１１については、内部構成はこの図２では省略している。
【００３７】
各ユーザは、自分のエディタ端末１１を用いてビヘイビアを作成する。このビヘイビアの作成方法については後で詳述する。
【００３８】
エディタ端末１１は、ＴＣＰを用いてビヘイビアサーバ１２と通信し、ビヘイビアサーバ１２に接続して、ユーザが作成したビヘイビアをＸＭＬ形成のテキストデータとして送信する。
【００３９】
ビヘイビアサーバ１２は、エディタ端末１１からの接続をＴＣＰで待ち受け、エディタ端末１１からの接続があった場合、ビヘイビアサーバ１２のサーバモジュール１２１は、エディタ端末１１が送信したテキスト形成のＸＭＬを受け取り、その受け取ったＸＭＬを構文解析してメモリ上にＤＯＭツリーとして展開し、その展開したＤＯＭツリーをＸＭＬデータベース（ＸＭＬＤＢ）１２２に格納する。この格納の際、新しいＸＭＬは、そのＸＭＬにユニークなＩＤが付され、既存のＸＭＬの階層の最も高いルートノードに対して追加される（図２０参照）。
【００４０】
また、ロボット１３は、起動時、および起動後の一定時間間隔毎にビヘイビアサーバ１２にＴＣＰで接続しビヘイビア空間の更新の有無を問い合わせ、そのビヘイビア空間が更新されていたときは、ビヘイビアサーバ１２から新たな追加等のあったビヘイビアのみをＸＭＬでダウンロードし、そのダウンロードしたＸＭＬをＸＭＬパーザ１３１で構文解析し、メモリ上にビヘイビア制御プログラムとして展開する。
【００４１】
ビヘイビア制御部１３２は、センサ１３３をモニタし、あるビヘイビアを実行する条件が発生した場合に、そのビヘイビア実行用の制御プログラムを実行し、ロボット１３のモータ等を制御するサーボ制御部１３４に指令を出してロボット１３を動かし、また発音部に指令を出してロボット１３に発音させる。
【００４２】
図３は、ビヘイビアサーバ１２の内部構成図である。
【００４３】
このビヘイビアサーバ１２は、図２にも示したように、サーバモジュール１２１とＸＭＬＤＢ１２２を備えており、サーバモジュール１２１には、ＸＭＬ受信モジュール１２１ａと、ＸＭＬＤＢドライバ１２１ｂと、ＸＭＬ送信モジュール１２１ｃとが備えられている。
【００４４】
ＸＭＬ受信モジュール１２１では、エディタ端末１１（図１、図２参照）から送られてくるＸＭＬがＴＣＰで受け取られ、ＸＭＬ受信モジュール１２１がＸＭＬを受け取ると、ＸＭＬＤＢドライバ１２１ｂは、そのＸＭＬを構文解析し、ＸＭＬＤＢ１２２のクエリを作成してＸＭＬＤＢ１２２にそのＸＭＬを登録する。
【００４５】
ロボット１３（図１、図２参照）にＸＭＬを送るにあたっては、ＸＭＬＤＢドライバ１２１ｂがＸＭＬＤＢ１２２に対してクエリを発行し、ロボット１３に送信すべきＸＭＬを得てＸＭＬ送信モジュール１２１ｃに渡し、ＸＭＬ送信モジュール１２１ｃは、要求のあったロボット１３に対しそのＸＭＬをＴＣＰで送信する。
【００４６】
尚、ＸＭＬＤＢ１２２に登録されているＸＭＬは、エディタ端末１１から新たなビヘイビアの作成等の参照用として送信要求を受ける場合もあり、その場合は、ＸＭＬ送信モジュール１２１は、ＸＭＬＤＢドライバ１２１ｂから受け取ったＸＭＬをその要求があったエディタ端末１１に向けて送信する。エディタ端末１１は、そのエディタ端末１１以外の別のエディタ端末１１で作成されたＸＭＬであっても送信要求が可能である。
【００４７】
図４は、エディタ端末の内部構成を示したブロック図である。
【００４８】
このエディタ端末１１は、コンディション編集用ＧＵＩ１１、アクション編集用ＧＵＩ１１２、エフェクト編集用ＧＵＩ１１３、およびビヘイビア編集用ＧＵＩ１１４と、さらにビヘイビア記述ＸＭＬ生成・解釈手段１１５と、通信手段１１６とから構成されている。
【００４９】
尚、ビヘイビア記述ＸＭＬファイル１１５ａは、ビヘイビア記述ＸＭＬ生成・解釈手段１１５で取り扱われるファイルを明示的に示したものである。
【００５０】
ここでは、ロボット１３の一事象の振る舞いを記述した全体をビヘイビアと呼んでいるが、そのビヘイビアは、ロボット１３がその事象の振る舞いを開始する契機を記述したコンディションと、ロボット１３のその一事象の振る舞い（動きや発声など）自体を記述したアクションと、そのアクションが実行された結果生じる、ロボット１３の内部パラメータの変化を記述したエフェクトから構成されている。
【００５１】
ロボット１３の内部パラメータの値もコンディションの一部として記述することができ、したがって同じセンサが作動した場合であっても、内部パラメータの値に応じて、あるロボットではあるアクションが実行され、別のロボットではそのアクションは実行されずに別のアクションが実行されるなど、ロボットに応じて別々の行動を生じさせることも可能である。例えば機嫌の良し悪しを表わす内部パラメータを定義しておき、ユーザから「こんにちは」と話しかけられたときに、その機嫌の良し悪しを表わす内部パラメータが機嫌がよいことを表わす値にあったときは「こんにちは」と返答し、機嫌が悪いことを表わす値にあったときは、返答せずにそっぽを向く、といったアクションが可能である。
【００５２】
図４に示すコンディション用ＧＵＩ１１１、アクション用ＧＵＩ１１２、エフェクト用ＧＵＩ１１３は、それぞれ、コンディション、アクション、エフェクトを定義するためのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）である。また、ビヘイビア編集用ＧＵＩ１１４は、コンディション、アクション、およびエフェクトの結合を定義することによってビヘイビアを定義するためのＧＵＩである。
【００５３】
ビヘイビア記述ＸＭＬ生成・解釈手段１１５は、４つの編集用ＧＵＩ１１１〜１１４からの入力をＸＭＬに変換したり、ビヘイビアサーバ１２（図１参照）から通信手段１１６を介してダウンロードしたビヘイビア記述ＸＭＬ１１５ａを解釈して各ＧＩＵ１１１〜１１４に表示情報を与える。コンディション、アクション、エフェクト、ビヘイビアのそれぞれには、ビヘイビアサーバ１２により各ＩＤが与えられている。
【００５４】
図５は、本実施形態におけるロボットの外観斜視図である。
【００５５】
このロボット１３は、クマの人形の外形を有し、複数のサーボモータ、センサ、スピーカなどが内蔵されている。
【００５６】
このロボット１３は、内蔵された各サーボモータ（図示せず）によって、両耳がａ−ａ′の方向に移動し、両目の瞼がｂ−ｂ′の方向に開閉し、口がｃ−ｃ′の方向に開閉し、首がｄ−ｄ′方向に傾動し、左手がｅ−ｅ′の方向（上下方向）およびｆ−ｆ′の方向（前後方向）に移動し、右手がｇ−ｇ′の方向（上下方向）およびｈ−ｈ′の方向（前後方向）に移動し、左足がｉ−ｉ′の方向に移動し、右足がｊ−ｊ′の方向に移動する。これらのサーボモータは、各サーボモータを駆動する駆動回路も合わせて、図２ではサーボ制御部１３４という１つのブロックで表現されている。
【００５７】
また、額には目立たないように小型のマイクロホンが埋め込まれており、口の直ぐ内部には発声用のスピーカが備えられている。図２との関係では、マイクロホンが図２のセンサ１３３に相当し、スピーカが図２の発音部１３５に相当する。
【００５８】
本実施形態では、以上のように構成されたロボットを前提にして説明するが、更には、両目にカメラを備えたり、両手の掌にユーザによる握手を検出するスイッチを備える構成なども考えられる。
【００５９】
以下では、エディタ端末における編集用ＧＵＩを中心に説明する。
【００６０】
図６は、エディタ端末でエディタプログラムを立ち上げたときに表示されるメインメュー画面である。
【００６１】
ここには、「Ｃｏｎｄｉｔｉｏｎ  Ｅｄｉｔｏｒ」、「Ａｃｔｉｏｎ  Ｅｄｉｔｏｒ」、」「Ｅｆｆｅｃｔ  Ｅｄｉｔｏｒ」、および「Ｂｅｈａｖｉｏｒ  Ｅｄｉｔｏｒ」のボタンが並んでおり、コンディション、アクション、エフェクト、およびビヘイビアのうちの、これから編集を行なおうとしているもののボタンをマウスクリックすることにより、それらのうちのいずれかの編集画面に移行する。「終了」ボタンをマウスクリックすると、このエディタプログラムが終了する。
【００６２】
図７は、コンディション編集画面を示す図である。
【００６３】
図６のメインメニュー画面上で「Ｃｏｎｄｉｔｉｏｎ  Ｅｄｉｔｏｒ」のボタンをマウスクリックすると、図７のコンディション編集画面が表示される。
【００６４】
この図７のコンディション編集画面は、上半分のツリー部３１と下半分の条件部３２とからなり、このコンディション編集画面の初期画面では、ツリー部は、１つのマーク３１１のみが表示される。
【００６５】
このマーク３１１上でマウスを右クリックすると「ａｎｄ」、「ｏｒ」、「Ｃｏｎｄｉｔｉｏｎ」、「終了」の選択肢が表示され、ここでは、「ａｎｄ」を選択するとマーク３１１の右に「ａｎｄ」の文字があらわれるとともに、２つのマーク３１２ａ，３１２ｂがあらわれる。マーク３１２ｃについては後述する。
【００６６】
次に同様にしてマーク３１２ａの上のマウスを右クリックして、今度は「ｏｒ」を選択すると、マーク３１２ａの右に「ｏｒ」の文字があらわれるとともに、２つのマーク３１３ａ，３１３ｂがあらわれる。２つのマーク３１３ａ，３１３ｂの右側には、条件部３２を使って条件を記入するが、その条件部３２の使い方の説明は後に譲り、ここではマーク３１３ａに対応して「ｆｌａｇ＝１」という条件が記入され、マーク３１３ｂに対応して「ｆｌａｇ＝２」という条件が記入されている。この２つ目のマーク３１３ｂに対応する条件を記入すると、もう１つのマーク３１３ｃがあらわれ、「ｏｒ」の条件をさらに記入することができる。「ｏｒ」に対する条件が「ｆｌａｇ＝１」と「ｆｌａｇ＝２」の２つのときは、マーク３１３ｃで右クリックして「終了」を選択するとマーク３１３ｃが消え、「ｏｒ」の条件が「ｆｌａｇ＝１」と「ｆｌａｇ＝２」その２つに確定する。
【００６７】
これと同様に、「ａｎｄ」の条件を表わす２つのマーク３１２ａ，３１２ｂの双方に条件を記入すると（図７に示す例では、マーク３１２ａに対応して条件「ｏｒ」が記入され、マーク３１２ｂに対応して条件「ｄｉｃｔａｔｉｏｎ：こんにちは」が記入されている）、３つ目のマーク３１２ｃがあらわれ、「ａｎｄ」の条件を３つ（あるいはさらにそれ以上）に増やすことができる。マーク３１２ｃで右クリックして「終了」を選択すると、マーク３１２ｃが消え「ａｎｄ」の条件（ここでは、「ｏｒ」と「ｄｉｃｔａｔｉｏｎ：こんにちは」）が確定する。
【００６８】
条件部３２には、図７ではマーク３１３ｂに対応する「ｆｌａｇ＝２」の指定方法が示されている。
【００６９】
プルダウンメニュー３２１では、「変数比較」と「ｄｉｃｔａｔｉｏｎ」のいずれかを選択することができ、プルダウンメニュー３２２では、変数として、「ｆｌａｇ」、「ａｒｏｕｓａｌ」「ｐｌｅａｓｕｒｅ」のいずれかを選択することができる。「ｆｌａｇ」は、一般的な様々な条件が数値で定義された変数であり、「ａｒｏｕｓａｌ」は、目覚めの程度を表わす変数であり、「ｐｌｅａｓｕｒｅ」は機嫌の良さを表わす変数である。
【００７０】
また、プルダウンメニュー３２３では、図７に示す「＝」（等しい）、のほか、より大きい、より小さい、以上、以下の中からいずれか１つを指定することができる。
【００７１】
ここでは、先ずツリー部３１のマーク３１３ｂを指定し、プルダウンメニューで「変数比較」を選択し、プルダウンメニュー３２２で「ｆｌａｇ」を選択し、プルダウンメニュー３２３で「＝」を選択し、記入欄３２４に「２」を記入して「決定」ボタンをマウスクリックすると、マーク３１３ｂの右に「ｆｌａｇ＝２」が記入される。
【００７２】
マーク３１２ｂについては、そのマーク３１２ｂをクリックしてプルダウンメニュー３２１で「ｄｉｃｔａｔｉｏｎ」を選択すると、マーク３１２ｂの右に「ｄｉｃｔａｔｉｏｎ：」が記入され、その右にキーボード（図示せず）を使って、ここに示す例では、「こんにちは」と記入する。
【００７３】
この図７に示したコンディションは、「ｆｌａｇ」が「１」又は「２」の値をとり、かつ、「こんにちは」という音声が認識されたことを条件として、図５のロボット１３が動作を開始することを表わしている。
【００７４】
また、条件部３２には、このコンディションに名付ける名前の記入欄と、このコンディションの解説や不具合の指摘（このコンディションの作者とは違うユーザ（別のエディタ端末）によって書き込まれる場合もある）などを記入するコメントの記入欄が設けられている。
【００７５】
尚、ここでは条件として、「ａｎｄ」、「ｏｒ」のほかは、「変数比較」と「ｄｉｃｔａｔｉｏｎ」（音声認識）のみ説明したが、このほかにも、一定時間が経過したことや、図５に示すロボット１３の構造によるが、手のひらのスイッチが押されたこと、あるいは、カメラの映像に基づいて顔認識に成功したことなどを条件に含めてもよい。
【００７６】
以上のようなコンディションを作成して「登録」ボタンを押すと、ここで編集したコンディションを表わすＸＭＬテキストデータが作成されてこのエディタ端末１１からビヘイビアサーバ１２（図１参照）に送信され、そのＸＭＬにＩＤが付されてビヘイビアサーバ１２のＸＭＬＤＢ１２２（図２参照）に登録される。
【００７７】
図７に示す「新規」のボタンは、途中まで作成しかけたコンディションを初期状態にクリアするためのボタンであり、「流用」のボタンは、過去に作成されてビヘイビアサーバ１２のＸＭＬＤＢ１２２に蓄積されているコンディションＸＭＬをダウンロードし、そのダウンロードしたコンディションＸＭＬを基に新たなコンディションを作成する場合に押されるボタンである。また、「終了」ボタンは、このコンディション編集画面を閉じて図６のメインメニュー画面に戻るためのボタンである。
【００７８】
図８は、コンディションリストを示す図である。
【００７９】
このコンディションリストは、図７に示すコンディション編集画面上で、「流用」ボタンが押されたときに表示される画面である。
【００８０】
「流用」ボタンが押されると、このエディタ端末１１（図１参照）からビヘイビアサーバ１２に向けてコンディションの一覧を送信するよう要求が出され、ビヘイビアサーバ１２では、ＸＭＬＤＢ１２２に登録されているコンディションがサーチされ図８に示すようなコンディションリスト作成されてエディタ端末ボタンが送信され、エディタ端末では、このコンディションリストが表示される。
【００８１】
このコンディションリストでは、そのコンディションが登録された月日を表わす「月日」、そのコンディションを特定する「ＩＤ」、そのコンディションの「名前」、そのコンディションの「コメント」により、１つのコンディションが特定されており、このコンディションリストには、そのエディタ端末が作成されたコンディションのみではなく、他のエディタ端末で作成されたコンディションも並んでいる。
【００８２】
このコンディションリスト上で、特定のコンディションにマウスカーソルを当ててダブルクリックすると、そのダブルクリックされたコンディションの送信要求がビヘイビアサーバ１２に送信され、ビヘイビアサーバ１２からそのコンディションＸＭＬがその送信要求を行なったエディタ端末に送信されて、そのコンディションが図７に示すコンディション編集画面上に表示される。ユーザは、その表示されたコンディションを編集して新たなコンディションを作成することができる。新たなコンディションを作成して「登録」ボタンを押すとその新たなコンディションを表わすＸＭＬデータが作成されてビヘイビアサーバ１２に送信され、ビヘイビアサーバ１２では、その新たなコンディションＸＭＬに新たなＩＤが付されてＸＭＬＤＢ１２２に登録される。
【００８３】
但し、図７のコンディション編集画面上で「コメント」欄のみ訂正あるいは追記したときは、新たなＩＤは付されずに、ＸＭＬＤＢ１２２の、同じＩＤのコンディションＸＭＬに上書きされる。
【００８４】
図９は、コンディションＸＭＬの一例を示す図である。
【００８５】
ここには、図７と同様、ロボット１３が動作を関係する条件として、「ｆｌａｇ」が「１」か「２」であって、かつ、「こんにちは」という音声が認識されるという条件がなされている。
【００８６】
図７のコンディション編集画面上でコンディションを編集して「登録」ボタンが押されると、例えば図９に示すようなコンディションＸＭＬが作成されてビヘイビアサーバ１２に送信される。ビヘイビアサーバ１２では、ＩＤとして、ここでは「ＣＮＤ０１」が付されて、ＸＭＬＤＢ１２２に登録される。
【００８７】
尚、この図９では、このコンディションに付した名前やコメントの図示は省略している。
【００８８】
図１０は、アクション編集画面を示す図である。
【００８９】
図６のメインメニュー画面上で「Ａｃｔｉｏｎ  Ｅｄｉｔｏｒ」のボタンをクリックすると図１０のアクション編集画面が表示される。
【００９０】
この図１０のアクション編集画面は、上半分のタイムライン部４１と、下半分の動作入力部４２とからなる。
【００９１】
ロボット１３は、内部的に、時間を離散的に分別した、フレームという時間単位を持っており、ここでは、１フレームは１００ｍｓｅｃ．に設定されている。タイムライン部４１ではこの１フレームが方眼の１マスとして表現されており、横軸に動作開始からの経過時間、縦軸に動作の部位等が並んでいる。
【００９２】
図５に示すロボットとの対比で説明すると、「ＮＥＣＫ」はロボットの首のｄ−ｄ′方向の動き、「ＬＥＦＴ＿ＡＲＭ＿ＳＩＤＥ」は左手のｅ−ｅ′方向の動き、「ＬＥＦＴ＿ＡＲＭ＿ＦＲＯＮＴ」は左手のｆ−ｆ′方向の動き、「ＬＥＦＴ＿ＬＥＧ」は左足のｉ−ｉ′方向の動き、「ＲＩＧＨＴ＿ＡＲＭ＿ＳＩＤＥ」は右手のｇ−ｇ′方向の動き、「ＲＩＧＨＴ＿ＡＲＭ＿ＦＲＯＮＴ」は右手のｈ−ｈ′方向の動き、「ＲＩＧＨＴ＿ＬＥＧ」は右足のｊ−ｊ′方向の動き、「ＥＡＲ」は両耳のａ−ａ′方向の動き、「ＥＹＥＬＩＤ」は両目の瞼のｂ−ｂ′方向の動き、「ＭＯＵＴＨ」は口のｃ−ｃ′方向の動きを表わしている。
【００９３】
タイムライン部４１に示されたいずれかのフレーム（縦に一列に並ぶ方眼）にマウスカーソルを合わせてクリックすると、そのフレームに、そのフレームが選択されたことを表わす枠４１１が表示される。ここでは、この枠４１１が表示されたフレームをキーフレームと称する。
【００９４】
このようにしてキーフレームを指定し、動作入力部４２ではそのキーフレームの時点におけるロボットの姿勢を指定する。
【００９５】
この動作入力部４２では、指定したキーフレームにおける姿勢を指定する部位等を指定する。この図１０では「ＮＥＣＫ」と「ＬＥＦＴ＿ＡＲＭ＿ＳＩＤＥ」と「ＲＩＧＨＴ＿ＡＲＭ＿ＳＩＤＥ」にチェックが付されており、これら３つのサーボモータによる姿勢を指定することが示されている。
【００９６】
このようにしてチェックを付した後、スライドバー４２１により、そのチェックを付したサーボモータによる姿勢が指定される。例えば「ＮＥＣＫ」に対応するスライドバーは左端が頷いた姿勢、右端が頭を持ち上げた姿勢を表わしており、図１０の場合、タイムライン部４１で指定したキーフレームの時点では、頭を持ち上げた姿勢をとるべきことが指定されている。
【００９７】
間を空けた２つのフレームで異なる姿勢が指定されると、それらの２つのフレームの間では、それら２つのフレームの姿勢が補間される。すなわち、ある部位について以降のフレームで姿勢が指定されていないときは、それまでの姿勢がそのまま維持され、また、以降のいずれかのフレームで姿勢が指定されているときは、指定されたフレームまで時間が経過した時点でその姿勢となるようになめらかに補間されて動作する。
【００９８】
例えば、図１０のように指定すると、タイムライン部４１に示すフレーム４１２ａでは、このロボットが初期状態でどのような姿勢にあっても、動作開始から時刻がこのフレーム４１２ａまで進む間に各部位が移動して、このフレーム４１２ａに至った時点ではこのフレーム４１２ａで指定された姿勢となり、その後はフレーム４１２ｂでは首の姿勢が指定されているため、そのフレーム４１２ｂの時点で首がそのフレーム４１２ｂで指定された姿勢となるように、フレーム４１２ａからフレーム４１２ｂにかけて連続的に移動し、フレーム４１２ｃでは、首と、左手（サイド）と、右手（サイド）とが指定されているため、首はフレーム４１２ｂで指定された姿勢からフレーム４１２ｃで指定された姿勢に向かって移動してフレーム４１２ｂの時点ではそのフレーム４１２ｂで指定した姿勢となる。また、これと同様に、左手（サイド）と右手（サイド）は、フレーム４１２ａで指定された姿勢から移動してフレーム４１２ｃではそのフレーム４１２ｃで指定された姿勢となる。首、左手（サイド）、右手（サイド）以外の各部位については、フレーム４１２ａの時点以降は、そのフレーム４１２ａで指定された姿勢がそのまま維持される。
【００９９】
発声部４２２には、ここで指定した動作とともにロボットに発声させるべき文字（この図１０に示す例では「こんにちは」）が記入される。
【０１００】
図１では、エディタ端末１１とロボット１３は、それぞれ別々にネットワーク１４に接続されているように示されており、概念的にはこれでよいが、実際のシステムでは、パーソナルコンピュータ（以下、「ＰＣ」と略記する）がネットワークに接続され、そのＰＣ内でここで説明しているようなエディタプログラムが実行されてそのＰＣがエディタ端末として動作し、またそのＰＣにロボット１３が接続されて、そのロボット１３はそのＰＣを介してネットワーク１４に接続されるような運用形態が考えられる。
【０１０１】
図１０に示す「再生」ボタンは、上記のような運用形態で有用なボタンであり、この「再生」ボタンを押すと、このエディタプログラムが実行されているＰＣに接続されている「自分の」ロボットに、ここで編集したアクションの動作および発声をさせることができ、その編集したアクションを実際の動作や発声で確認することができる。
【０１０２】
また、図１０の「名前」の欄は、ここで編集したアクションに付ける名前を入力する欄、「コメント」の欄は、ここで編集した（又は、ビヘイビアサーバからダウンロードした）アクションに付けるコメントを記入する欄である。
【０１０３】
また、図１０の「新規」、「流用」、「登録」、「終了」の各ボタンは、図７に示す同一名称の各ボタンと同じである。すなわち、「新規」ボタンは作成中のアクションが消されてアクションを最初から作成する状態に示すボタンであり、「流用」ボタンは、過去に作成されてビヘイビアサーバ１２のＸＭＬＤＢ１２２に蓄積されているアクションＸＭＬをダウンロードしてそのダウンロードしたアクションＸＭＬを基に新たなアクションを作成する場合に押されるボタンであり、「登録」ボタンは、ここで編集したアクションを登録するときに押されるボタンである。すなわち、この「登録」ボタンが押されると、ここで編集されたアクションを表わすアクションＸＭＬが作成され、ビヘイビアサーバ１２に送信され、ＩＤが付されてＸＭＬＤＢ１２２に登録される。
【０１０４】
「終了」ボタンは、このアクション編集画面を閉じて図６のメインメニュー画面に戻るためのボタンである。
【０１０５】
図１１は、アクションリストを示す図である。
【０１０６】
このアクションリストは、図１０に示すアクション編集画面上で、「流用」ボタンが押されたときに表示される画面である。
【０１０７】
「流用」ボタンが押されると、このエディタ端末１１（図１参照）からビヘイビアサーバ１２に向けてアクションの一覧を送信するよう要求が出され、ビヘイビアサーバ１２では、ＸＭＬＤＢ１２２に登録されているアクションがサーチされて図１１に示すようなアクションリスト作成されてエディタ端末に送信され、エディタ端末では、このアクションリストが表示される。
【０１０８】
このアクションリストでは、そのアクションが登録された月日を表わす「月日」、そのアクションを特定する「ＩＤ」、そのアクションの「名前」、そのアクションの「コメント」により、１つのアクションが表現されており、このアクションリストには、そのエディタ端末で編集されたアクションのみではなく、他のエディタ端末で編集されたアクションも並んでいる。
【０１０９】
このアクションリスト上で、特定のアクションにマウスカーソルを当ててダブルクリックすると、そのダブルクリックされたアクションの送信要求がビヘイビアサーバに送信され、ビヘイビアサーバからそのアクションＸＭＬがエディタ端末に送信され、エディタ端末ではそのアクションが図１０に示すアクション編集画面上に表示される。ユーザは、その表示されたアクションを編集して新たなアクションを作成することができる。新たなアクションを作成して「登録」ボタンを押すとその新たなアクションを表わすＸＭＬデータが作成されてビヘイビアサーバ１２に送信され、ビヘイビアサーバ１２では、その新たなアクションＸＭＬに新たなＩＤが付されてＸＭＬＤＢ１２２に登録される。
【０１１０】
但し、図１０のアクション編集画面上で「コメント」欄のみ訂正あるいは追記したときは、新たなＩＤは付されずに、ＸＭＬＤＢ１２２の、同じＩＤのアクションＸＭＬに上書きされる。
【０１１１】
図１２は、アクションＸＭＬの一例を示す図である。
【０１１２】
ここに示す例は、左手を上に挙げ、左右に振りながら「こんにちは」と発話するアクションを示している。尚、ここでは、ビヘイビアサーバでこのアクションに付されるＩＤ＝「ＡＣＴ０１」が示されており、一方、この図１２では、このアクションに付された名前やコメントは図示省略されている。
【０１１３】
図１３は、エフェクト編集画面を示す図である。
【０１１４】
図６のメインメニュー画面上で「Ｅｆｆｅｃｔ  Ｅｄｉｔｏｒ」のボタンをクリックすると図１３のエフェクト編集画面が表示される。
【０１１５】
このエフェクト編集画面１０には、「ｆｌａｇ」、「ａｒｏｕｓａｌ」、「ｐｌｅａｓｕｒｅ」の各変数と、アクションの実行による各変数の変化量が指定される。例えば、図１３では「ａｒｏｕｓａｌ」、が指定されており、何らかのアクションを行った結果、その変数「ａｒｏｕｓａｌ」が０．１だけプラスされることを意味している。「ａｒｏｕｓａｌ」は、前述したように目覚めの程度を表わす変数であり、０．０〜１．０の間の値をとる変数である。ここでは、その変数「ａｒｏｕｓａｌ」が０．１だけプラスされるということは、このエフェクトと結合されるアクションが実行されると、値０．１に相当する分だけ目が覚めることを意味している。
【０１１６】
また、このエフェクト編集画面にも、ここで編集したエフェクトに付けられる名前の記入欄とコメントの記入欄が設けられている。
【０１１７】
「新規」、「流用」、「登録」、「終了」の各ボタンの意味は、図７，図１０に示す同一名称の各ボタンと同じである。
【０１１８】
すなわち、「新規」ボタンは、編集中のエフェクトが消され、エフェクトの編集を最初からもう一度開始する状態に戻すボタンであり、「流用」のボタンは、過去に作成されてビヘイビアサーバ１２のＸＭＬＤＢ１２２に蓄積されているエフェクトＸＭＬをダウンロードし、そのダウンロードしたエフェクトＸＭＬを基に新たなエフェクトを作成する場合に押されるボタンであり、「登録」ボタンは、ここで編集したエフェクトを登録すると押されるボタンである。すなわち、この「登録」ボタンが押されると、ここで編集されたエフェクトを表わすエフェクトＸＭＬが作成され、ビヘイビアサーバ１２に送信され、ＩＤが付されてＸＭＬＤＢ１２２に蓄積される。「終了」ボタンは、このエフェクト編集画面を閉じて図６のメインメニュー画面に戻るためのボタンである。
【０１１９】
図１３のエフェクト表示画面に並ぶ各変数の意味が不明のときは、その変数にマウスカーソルを当ててダブルクリックするとそのダブルクリックされた変数の意味が表示される。
【０１２０】
図１４は、図１３のエフェクト表示画面上で変数「ａｒｏｕｓａｌ」がダブルクリックされたときに表示される、その変数「ａｒｏｕｓａｌ」の意味が記入されたコメント画面を示す図である。
【０１２１】
「編集」ボタンを押すと、このコメントを編集することができ、「終了」ボタンを押すとこのコメント画面が消去される。
【０１２２】
図１５は、エフェクトリストを示す図である。
【０１２３】
このエフェクトリストは、図１３に示すエフェクト編集画面上で、「流用」ボタンが押されたときに表示される画面である。
【０１２４】
「流用」ボタンが押されると、このエディタ端末１１（図１参照）からビヘイビアサーバ１２に向けてエフェクトの一覧を送信するよう要求が出され、ビヘイビアサーバ１２では、ＸＭＬＤＢ１２２に登録されているエフェクトがサーチされて図１５に示すようなエフェクトリスト作成されてエディタ端末に送信され、エディタ端末では、このエフェクトリストが表示される。
【０１２５】
このエフェクトリストでは、そのエフェクトが登録された月日を表わす「月日」、そのエフェクトを特定する「ＩＤ」、そのエフェクトの「名前」、そのエフェクトの「コメント」により、１つのエフェクトが表現されており、このエフェクトリストには、そのエディタ端末で編集したエフェクトのみではなく、他のエディタ端末で編集されたエフェクトも並んでいる。
【０１２６】
このエフェクトリスト上で、特定のエフェクトにマウスカーソルを当ててダブルクリックすると、ビヘイビアサーバに向けて、そのダブルクリックされたエフェクトの送信要求が出され、ビヘイビアサーバからそのエフェクトの送信を受けてそのエフェクトが図１３に示すエフェクト編集画面上に表示され、ユーザは、その表示されたエフェクトを編集して新たなエフェクトを作成することができる。新たなエフェクトを作成して「登録」ボタンを押すとその新たなエフェクトを表わすＸＭＬデータが作成されてビヘイビアサーバ１２に送信され、ビヘイビアサーバ１２では、その新たなエフェクトＸＭＬに新たなＩＤが付されてＸＭＬＤＢ１２２に登録される。
【０１２７】
但し、図１３のエフェクト編集画面上で「コメント」欄のみ訂正あるいは追記したときは、新たなＩＤは付されずに、ＸＭＬＤＢ１２２の同じＩＤのエフェクトＸＭＬに上書きされる。
【０１２８】
図１６は、エフェクトＸＭＬの一例を示す図である。
【０１２９】
この図１６に示すエフェクトＸＭＬは、図１３に示すエフェクトと同じ内容のものであり、このエフェクトと対応付けられたアクションが実行されると変数「ａｒｏｕｓａｌ」が０．１だけ加算されることを意味している。
【０１３０】
この図１６に示すエフェクトＸＭＬには、ビヘイビアサーバ１２で付されたＩＤ「ＥＦ０１」が示されており、一方、この図１６では、このエフェクトに付された名前やコメントは図示を省略してある。
【０１３１】
図１７は、ビヘイビア編集画面を示す図である。
【０１３２】
図６に示すメインメニュー画面上で「Ｂｅｈａｖｉｏｒ  Ｅｄｉｔｏｒ」ボタンをクリックすると図１７のビヘイビア編集画面が表示される。
【０１３３】
このビヘイビア編集画面には「Ｃｏｎｄｉｔｉｏｎ  ＩＤ」（コンディションのＩＤ）の記入欄と、「Ａｃｔｉｏｎ  ＩＤ」（アクションのＩＤ）の記入欄と、「Ｅｆｆｅｃｔ  ＩＤ」（エフェクトのＩＤ）の記入欄と、「Ｐｒｉｏｒｉｔｙ」（優先度）の記入欄があり、これらの記入欄に各ＩＤや優先度の数値（０〜１００）を記入し、このビヘイビアに名前を付けコメントを記入すればビヘイビアが完成する。ただし、ＩＤを直接的に知らないときは、以下のようにして編集する。
【０１３４】
「Ｃｏｎｄｉｔｉｏｎ  ＩＤ」記入欄の左にある「流用」ボタンを押すと、図８に示すコンディションリストが表示され、マウスカーソルをいずれかのコンディションに合わせてマウスをダブルクリックすると、図７に示すコンディション表示画面が表示され、そのコンディション表示画面上に、マウスのダブルクリックにより指定されコンディションが表示される。
【０１３５】
そこに表示されたコンディションでよければ、そのまま、その図７のコンディション編集画面上の「登録」ボタンを押すとそのコンディション編集画面が消え、そのコンディション編集画面上に表示されていたコンディションのＩＤが、図１７のビヘイビア編集画面上の「Ｃｏｎｄｉｔｉｏｎ  ＩＤ」の記入欄に表示される。
【０１３６】
図７に示すコンディション表示画面上に表示されたコンディションを基にコンディションを再編集した後「登録」ボタンを押すと、そのコンディション編集画面上で再編集されたコンディションにＩＤが付されてビヘイビアサーバ１２に登録され、図７のコンディション表示画面が消去され、その新たに付されたＩＤが、図１７のビヘイビア編集画面上の「Ｃｏｎｄｉｔｉｏｎ  ＩＤ」の記入欄に表示される。
【０１３７】
図１７のビヘイビア編集画面上の「Ｃｏｎｄｉｔｉｏｎ  ＩＤ」の記入欄の右に並ぶ「流用」ボタンのさらに右に並ぶ「編集」ボタンを押すと、「Ｃｏｎｄｉｔｉｏｎ  ＩＤ」の欄がまだ空欄の場合、図８のコンディションリストは経由せずに直接に図７に示すコンディション編集画面が初期状態のまま表示され、コンディションが最初から編集される。コンディションを編集した後、そのコンディション編集画面上の「登録」ボタンを押すと、そのコンディションにＩＤが付されてビヘイビアサーバ１２に登録され、図７のコンディション表示画面が消去され、そのコンディションＩＤが図１７のビヘイビア編集画面上の「Ｃｏｎｄｉｔｉｏｎ  ＩＤ」の記入欄に表示される。
【０１３８】
「Ｃｏｎｄｉｔｉｏｎ  ＩＤ」の記入欄にコンディションＩＤが記入されている状態で、その右に並ぶ「編集」ボタンが押されると、図７に示すコンディション編集画面が表示されるとともに、そのコンディション編集画面上に「Ｃｏｎｄｉｔｉｏｎ  ＩＤ」の記入欄に表示されていたコンディションＩＤを持ったコンディションが表示される。
【０１３９】
「Ａｃｔｉｏｎ  ＩＤ」の記入欄、その右に並ぶ「流用」ボタン、「編集」ボタンも、コンディションではなくアクションを取り扱うことを除き同様であり、また、「Ｅｆｆｅｃｔ  ＩＤ」の記入欄、その右に並ぶ「流用」ボタン、「編集」ボタンも、コンディションではなくエフェクトを取り扱うことを除き同様であり、重複説明になるため説明は省略する。
【０１４０】
以上のようにして、ビヘイビアは、１つのコンディションと１つのアクションと１つのエフェクトの結合により定義される。このビヘイビアは、このビヘイビアに記述されたコンディション、アクション、およびエフェクトと連携して、ロボットの一事象の振る舞いを記述したプログラム部品として作用する。
【０１４１】
このビヘイビア編集画面にも、ここで指定したビヘイビアに付けられる名前の記入欄とコメントの記入欄が設けられている。
【０１４２】
このビヘイビア編集画面の下部に並ぶ、「新規」、「流用」、「登録」、「終了」の各ボタンの意味は、図７，図１０，図１３に示す同一名称の各ボタンと同じである。
【０１４３】
すなわち、「新規」ボタンは、編集中のビヘイビアが消され、ビヘイビアを最初からもう一度編集開始する状態に戻すボタンであり、「流用」のボタンは、過去に編集されてビヘイビアサーバ１２のＸＭＬＤＢ１２２に蓄積されているビヘイビアＸＭＬをダウンロードし、そのダウンロードしたビヘイビアＸＭＬを基に新たなビヘイビアを編集し直す場合に押されるボタンであり、「登録」ボタンは、ここで編集したビヘイビアを登録するときに押されるボタンである。すなわち、この「登録」ボタンが押されると、ここで編集されたビヘイビアを表わすビヘイビアＸＭＬが作成され、ビヘイビアサーバ１２に送信され、ＩＤが付されてＸＭＬＤＢ１２２に登録される。「終了」ボタンは、このビヘイビア編集画面を閉じて図６のメインメニュー画面に戻るためのボタンである。
【０１４４】
図１８は、ビヘイビアリストを示す図である。
【０１４５】
このビヘイビアリストは、図１７に示すビヘイビア編集画面上で、「流用」ボタンが押されたときに表示される画面である。
【０１４６】
「流用」ボタンが押されると、このエディタ端末１１（図１参照）からビヘイビアサーバ１２に向けてビヘイビアの一覧を送信するよう要求が出され、ビヘイビアサーバ１２では、ＸＭＬＤＢ１２２に登録されているビヘイビアがサーチされて図１５に示すようなビヘイビアリストが作成されてエディタ端末に送信され、エディタ端末では、このビヘイビアリストが表示される。
【０１４７】
このビヘイビアリストでは、そのビヘイビアが登録された月日を表わす「月日」、そのビヘイビアを特定する「ＩＤ」、そのビヘイビアの「名前」、そのビヘイビアの「コメント」により、１つのビヘイビアが表現されており、このビヘイビアリストには、そのエディタ端末で編集されたビヘイビアのみではなく、他のエディタ端末で編集されたビヘイビアも並んでいる。
【０１４８】
このビヘイビアリスト上で、特定のビヘイビアにマウスカーソルを当ててダブルクリックすると、ビヘイビアサーバに向けて、そのダブルクリックされたビヘイビアの送信要求が出され、ビヘイビアサーバからそのビヘイビアを表わすＸＭＬが受信され、そのビヘイビアが図１７に示すビヘイビア編集画面上に表示される。すなわち、ビヘイビアは、コンディションとアクションとエフェクトとの組合せであり、図１７のビヘイビア編集画面上には、それらコンディションとアクションとエフェクトの各ＩＤが表示される。ユーザは、その表示されたビヘイビアを編集して新たなビヘイビアを作成することができる。新たなビヘイビアを作成して「登録」ボタンを押すとその新たなビヘイビアを表わすＸＭＬデータが作成されてビヘイビアサーバ１２に送信され、ビヘイビアサーバ１２では、その新たなビヘイビアＸＭＬに新たなＩＤが付されてＸＭＬＤＢ１２２に登録される。
【０１４９】
但し、図１７のビヘイビア編集画面上で「コメント」欄のみ訂正あるいは追記したときは、新たなＩＤは付されずに、ＸＭＬＤＢ１２２の同じＩＤのビヘイビアＸＭＬに上書きされる。
【０１５０】
図１９は、ビヘイビアＸＭＬの一例を示す図である。
【０１５１】
この図１９に示すビヘイビアＸＭＬは、コンディションＩＤ＝ＣＮＤ０１のコンディションと、アクションＩＤ＝ＡＣＴ０１のアクションと、エフェクトＩＤ＝ＥＦ０１のエフェクトとの組合せであって、優先度が「１００」であることを表わしている。
【０１５２】
この図１９に示すビヘイビアＸＭＬには、ビヘイビアサーバ１２で付されたビヘイビアＩＤ「Ｂ０１」も示されている。一方、この図１９では、このビヘイビアに付された名前やコメントは図示省略されている。
【０１５３】
図２０は、ビヘイビアサーバ１２内のＸＭＬＤＢ１２２のデータ構造を示す図である。
【０１５４】
ここでは、過去に、ビヘイビアＩＤ＝Ｂ０１のビヘイビアと、コンディションＩＤ＝ＣＮＤ０１のコンディションと、アクションＩＤ＝ＡＣＴ０１のアクションと、エフェクトＩＤ＝ＥＦ０１のエフェクトが格納されており、今回新たに、ビヘイビアＩＤ＝Ｂ０２のビヘイビアと、コンディションＩＤ＝ＣＮＤ０２のコンディションと、エフェクトＩＤ＝ＥＦ０２のエフェクトが登録されたものとする。ここで、ビヘイビアＩＤ＝Ｂ０２のビヘイビアは、今回登録されたコンディションＩＤ＝ＣＮＤ０２のコンディションと、過去に登録されているアクションＩＤ＝ＡＣＴ０１のアクションと、今回登録されたエフェクトＩＤ＝ＥＦ０２のエフェクトとの組合せである。
【０１５５】
ＸＭＬＤＢ１２２に新たなＸＭＬを追加する際は、過去に登録されているＸＭＬのルートノードと同じルートノードに対して追加され、これにより、ビヘイビアＸＭＬは、過去に登録されているコンディションＸＭＬ、アクションＸＭＬ、エフェクトＸＭＬも参照可能となっている。
【０１５６】
図２１は、ロボットにおけるビヘイビアの実行の手順を示したフローチャートである。
【０１５７】
ここでは、先ず、そのロボットの内部状態（内部パラメータ（変数）の値、センサ入力、タイマ等）が調査され（ステップＳ０１）、現在の内部状態がコンディションの記述に合致するビヘイビアが列挙される（ステップＳ０２）。合致するコンディションが存在しなければステップＳ０１に戻る。合致したコンディションが存在するときは、列挙されたビヘイビアのうちの、優先度の最も高いビヘイビアが選択され（ステップＳ０３）、その選択されたビヘイビアが実行される（ステップＳ０４）。ただし、そのビヘイビアのアクションで使用されるサーボモータが現在動作中であったときは、そのビヘイビアは実行されずにステップＳ０３に戻り、ステップＳ０２で列挙されたビヘイビアのうち、サーボモータが使用中であった優先度の高いビヘイビアを除く、優先度が次に高いビヘイビアが選択されて実行される。ビヘイビア実行後は一定時間待機し（ステップＳ０５）、ステップＳ０１の調査に戻る。
【０１５８】
本実施形態では、このようにして、不特定多数のユーザによって作成されたビヘイビアによってロボットが動作する。
【０１５９】
尚、上記では、優先度は固定的に設定されているが、時間の経過とともに優先度を下げていってもよく、あるいは、優先度をランダムに変化させてもよい。
【０１６０】
また、所定期間経過したビヘイビアや、ほとんど実行されていないビヘイビアを自動的に削除するようにしてもよい。
【０１６１】
あるいは、ビヘイビアどうしの近似度を評価し、近似するビヘイビアを１つに統合するなど、ビヘイビアが増え過ぎず、かつ新陳代謝が行われるようにすることが好ましい。
【０１６２】
尚、以上では、物理的な身体を持ったロボット（図５参照）を念頭に置いた実施形態について説明したが、本発明にいうロボットは、物理的な身体を持たずに、コンピュータ内に構築された仮想空間内で動作する、例えばエージェント、アバター、ゲームキャラクタ等と呼ばれるような論理上のロボットであってもよい。
【０１６３】
以下、本発明の各種形態を付記する。
【０１６４】
（付記１）
ネットワークを介して接続された、複数台のエディタ端末、サーバ、および複数台のロボットからなるロボットシステムであって、
前記複数台のエディタ端末それぞれは、ロボットの一事象単位の振る舞いを記述したプログラム部品をユーザによる操作に応じて作成して前記サーバに向けて送信するものであり、
前記サーバは、前記複数台のエディタ端末それぞれから送信されてきたプログラム部品を蓄積し、該プログラム部品を、前記複数台のロボットそれぞれからの要求に応じて該ロボットに向けて送信するものであり、
前記複数台のロボットそれぞれは、前記サーバから送信を受けたプログラム部品に従って動作するものであることを特徴とするロボットシステム。
【０１６５】
（付記２）
前記サーバは、さらに、前記エディタ端末からの要求に応じて、該エディタ端末に向けて、他のエディタ端末で作成されたプログラム部品も送信するものであることを特徴とする付記１記載のロボットシステム。
【０１６６】
（付記３）
前記エディタ端末は、前記サーバからのプログラム部品の送信を受け、ユーザによる操作に応じて、送信を受けたプログラム部品を基にした新たなプログラム部品を作成するものであることを特徴とする付記２記載のロボットシステム。
【０１６７】
（付記４）
前記エディタ端末は、ユーザ操作に応じて、プログラム部品に注釈を記入するものであることを特徴とする付記１から３のうちいずれか１項記載のロボットシステム。
【０１６８】
（付記５）
前記サーバは、前記複数台のエディタ端末それぞれから送信されてきたプログラム部品に、該プログラム部品を個別に識別するための個別のＩＤを付して蓄積するものであることを特徴とする付記１から４のうちいずれか１項記載のロボットシステム。
【０１６９】
（付記６）
前記複数台のロボットそれぞれは、前記サーバからプログラム部品の送信を受けるにあたり、前記ＩＤに基づき、受信未了のプログラム部品のみ送信を受けるものであることを特徴とする付記５記載のロボットシステム。
【０１７０】
（付記７）
前記エディタ端末は、優先度の情報が付されたプログラム部品を作成するものであって、
前記ロボットは、複数のプログラム部品に従う複数の動作が互いに競合する場合に優先度の高いプログラム部品に従って動作するものであることを特徴とする付記１から６のうちいずれか１項記載のロボットシステム。
【０１７１】
（付記８）
前記複数台のエディタ端末それぞれは、
ロボットが動作を開始する契機を記述したコンディションを作成するコンディションエディタと、
ロボットの動作自体を記述したアクションを作成するアクションエディタと、
ロボットが動作した結果生じる内部パラメータの変化を記述したエフェクトを作成するエフェクトエディタと、
前記コンディションと前記アクションと前記エフェクトとの結合を記述したビヘイビアを作成するビヘイビアエディタとを備え、
前記ビヘイビアが、該ビヘイビアに記述された、前記コンディション、前記アクション、および前記エフェクトと連携して、ロボットの一事象の振る舞いを記述したプログラム部品として作用するものであることを特徴とする付記１から７のうちのいずれか１項記載のロボットシステム。
【０１７２】
（付記９）
前記アクションエディタは、
ロボットの一事象の動作開始からの経過時刻の指定を受けるタイムライン部と、該タイムライン部で指定された時刻におけるロボットの姿勢の指定を受けるサーボ部とを有するアクションエディタ画面を表示する画面表示手段と、
前記アクションエディタ画面上でそれぞれ指定された第１の時刻における第１の姿勢と第２の時刻における第２の姿勢との間を補間して、該第１の時刻では該第１の姿勢をとり、該第１の姿勢から姿勢を順次変化させて該第２の時刻で該第２の姿勢をとるアクションを作成するアクション作成手段とを有することを特徴とする付記８記載のロボットシステム。
【０１７３】
（付記１０）
前記複数台のロボットそれぞれは、前記サーバから送信を受けたプログラム部品と、実行済みのプログラム部品の実行により変化した内部パタメータの値との双方に従って動作するものであることを特徴とする付記８又は９記載のロボットシステム。
【０１７４】
（付記１１）
ロボットの一事象単位の振る舞いを記述したプログラム部品をユーザによる操作に応じて作成して、ネットワークを介して接続されたサーバに向けて該プログラム部品を送信するエディタ端末であって、
ロボットが動作を開始する契機を記述したコンディションを作成するコンディションエディタと、
ロボットの動作自体を記述したアクションを作成するアクションエディタと、
ロボットが動作した結果生じる内部パラメータの変化を記述したエフェクトを作成するエフェクトエディタと、
前記コンディションと前記アクションと前記エフェクトとの結合を記述したビヘイビアを作成するビヘイビアエディタとを備え、
前記ビヘイビアが、該ビヘイビアに記述された、前記コンディション、前記アクション、および前記エフェクトと連携して、ロボットの一事象の振る舞いを記述したプログラム部品として作用するものであることを特徴とするエディタ端末。
【０１７５】
（付記１２）
前記アクションエディタは、
ロボットの一事象の動作開始からの経過時刻の指定を受けるタイムライン部と、該タイムライン部で指定された時刻におけるロボットの姿勢の指定を受けるサーボ部とを有するアクションエディタ画面を表示する画面表示手段と、
前記アクションエディタ画面上でそれぞれ指定された第１の時刻における第１の姿勢と第２の時刻における第２の姿勢との間を補間して、該第１の時刻では該第１の姿勢をとり、該第１の姿勢から姿勢を順次変化させて該第２の時刻で該第２の姿勢をとるアクションを作成するアクション作成手段とを有することを特徴とする付記１１記載のエディタ端末。
【０１７６】
（付記１３）
プログラムを実行する情報処理装置内で実行され、該情報処理装置を、ロボットの一事象単位の振る舞いを記述したプログラム部品をユーザによる操作に応じて作成して、ネットワークを介して接続されたサーバに向けて該プログラム部品を送信するエディタ端末として動作させるエディタプログラムであって、
前記情報処理装置を、
ロボットが動作を開始する契機を記述したコンディションを作成するコンディションエディタと、
ロボットの動作自体を記述したアクションを作成するアクションエディタと、
ロボットが動作した結果生じる内部パラメータの変化を記述したエフェクトを作成するエフェクトエディタと、
前記コンディションと前記アクションと前記エフェクトとの結合を記述したビヘイビアを作成するビヘイビアエディタとを備え、
前記ビヘイビアが、該ビヘイビアに記述された、前記コンディション、前記アクション、および前記エフェクトと連携して、ロボットの一事象の振る舞いを記述したプログラム部品として作用するものであるエディタ端末として動作させることを特徴とするエディタプログラム。
【０１７７】
（付記１４）
前記アクションエディタは、
ロボットの一事象の動作開始からの経過時刻の指定を受けるタイムライン部と、該タイムライン部で指定した時刻におけるロボットの姿勢の指定を受けるサーボ部とを有するアクションエディタ画面を表示する画面表示手段と、
前記アクションエディタ画面上でそれぞれ指定された第１の時刻における第１の姿勢と第２の時刻における第２の姿勢との間を補間して、該第１の時刻では該第１の姿勢をとり、該第１の姿勢から姿勢を順次変化させて該第２の時刻で該第２の姿勢をとるアクションを作成するアクション作成手段とを有することを特徴とする付記１３記載のエディタプログラム。
【図面の簡単な説明】
【０１７８】
【図１】本発明のロボットシステムの全体構成図である。
【図２】ビヘイビアサーバとロボットの内部構成を示したブロック図である。
【図３】ビヘイビアサーバの内部構成図である。
【図４】エディタ端末の内部構成を示したブロック図である。
【図５】本実施形態におけるロボットの外観斜視図である。
【図６】エディタ端末でエディタプログラムを立ち上げたときに表示されるメインメュー画面を示す図である。
【図７】コンディション編集画面を示す図である。
【図８】コンディションリストを示す図である。
【図９】コンディションＸＭＬの一例を示す図である。
【図１０】アクション編集画面を示す図である。
【図１１】アクションリストを示す図である。
【図１２】アクションＸＭＬの一例を示す図である。
【図１３】エフェクト編集画面を示す図である。
【図１４】変数「ａｒｏｕｓａｌ」の意味が記入されたコメント画面を示す図である。
【図１５】エフェクトリストを示す図である。
【図１６】エフェクトＸＭＬの一例を示す図である。
【図１７】ビヘイビア編集画面を示す図である。
【図１８】ビヘイビアリストを示す図である。
【図１９】ビヘイビアＸＭＬの一例を示す図である。
【図２０】ビヘイビアサーバ内のＸＭＬＤＢのデータ構造を示す図である。
【図２１】ロボットにおけるビヘイビアの実行の手順を示したフローチャートである。
【符号の説明】
【０１７９】
１０      エフェクト編集画面
１１    エディタ端末
１２    ビヘイビアサーバ
１３    ロボット
１１１    コンディション編集用ＧＵＩ
１１２    アクション編集用ＧＵＩ
１１３    エフェクト編集用ＧＵＩ
１１４    ビヘイビア編集用ＧＵＩ
１１５    ビヘイビア記述ＸＭＬ生成解釈手段
１１５ａ    ビヘイビア記述ＸＭＬファイル
１１６    通信手段
１２１    ＸＭＬ受信モジュール
１２１ａ    ＸＭＬ受信モジュール
１２１ｂ    ＸＭＬＤＢドライバ
１２１ｃ    ＸＭＬ送信モジュール
１２２    ＸＭＬＤＢ
１３１    ＸＭＬパーザ
１３２    ビヘイビア制御部
１３３    センサ
１３４    サーボ制御部
１３５    発音部
【図１】
2008307662.tif 000003
【図２】
2008307662.tif 000004
【図３】
2008307662.tif 000005
【図４】
2008307662.tif 000006
【図５】
2008307662.tif 000007
【図６】
2008307662.tif 000008
【図７】
2008307662.tif 000009
【図８】
2008307662.tif 000010
【図９】
2008307662.tif 000011
【図１０】
2008307662.tif 000012
【図１１】
2008307662.tif 000013
【図１２】
2008307662.tif 000014
【図１３】
2008307662.tif 000015
【図１４】
2008307662.tif 000016
【図１５】
2008307662.tif 000017
【図１６】
2008307662.tif 000018
【図１７】
2008307662.tif 000019
【図１８】
2008307662.tif 000020
【図１９】
2008307662.tif 000021
【図２０】
2008307662.tif 000022
【図２１】
2008307662.tif 000023