(57)【要約】【課題】  ロボット制御プログラムにネットワークから新たな制御プログラムモジュールを追加できるロボット、ロボット制御システム、およびそのプログラムを提供する。【解決手段】  ネットワークから新たなロボット制御プログラムモジュール（シナリオ）を受信するシナリオ受信手段７４と、受信したシナリオを組み込むシナリオ登録手段７３と、予めロボットに組み込まれているシナリオと追加したシナリオ群から実行するシナリオを選択するシナリオ選択手段７５と、選択したシナリオを実行するシナリオ実行手段７６と、を有する。【選択図】      図１
2006334780.tif 000002
【特許請求の範囲】
【請求項１】
シナリオにしたがってロボットを動作させるシナリオファイルと、前記ロボットの動作のカテゴリを決定するシナリオカテゴリと、前記シナリオを呼び出すためのシナリオ呼び出し語と、から構成されるシナリオセットを回線から受信する受信手段と、
回線から受信した前記シナリオセットを前記ロボットがあらかじめ持っている前記シナリオセットと併せて前記ロボットに追加する登録手段と、
前記ロボットがあらかじめ持っている前記シナリオセットと回線から受信した前記シナリオセットの中から、前記シナリオカテゴリを第一の条件に従って選択する選択手段と、
選択した前記シナリオカテゴリ内のシナリオファイルを第２の条件にしたがって実行する制御プログラム実行手段と、を有することを特徴とするロボット。
【請求項２】
前記選択手段が同一のシナリオカテゴリを選択した際に、前記第２の条件として乱数、またはロボットが存在する環境、または乱数とロボットが存在する環境の双方によりシナリオファイルを実行することを特徴とする請求項１記載のロボット。
【請求項３】
前記登録手段により登録された前記シナリオファイルに含まれ、登録された前記シナリオファイルの実行時期を決定する時刻を実行時刻フィールドへ格納することにより、データ処理装置に前記実行時刻フィールドを初期化させる処理を記述した初期化ファイルを、前記登録時に実行する初期化ファイル実行手段を有することを特徴とする請求項１又は２記載のロボット。
【請求項４】
音声認識辞書用いて音声認識を行い、音声認識により前記シナリオ呼び出し語を入力し、前記シナリオ呼び出し語を前記第一の条件とすることを特徴とする請求項１から３のいずれか１項に記載のロボット。
【請求項５】
前記シナリオ呼び出し語を前記音声認識辞書に追加する音声認識語彙追加手段を有することを特徴とする請求項４に記載のロボット。
【請求項６】
前記シナリオセットを送出する送出装置と請求項１か５記載のロボットを回線により接続したことをすることを特徴とするロボット制御システム。
【請求項７】
コンピュータに、
シナリオにしたがってロボットを動作させるシナリオファイルと、前記ロボットの動作のカテゴリを決定するシナリオカテゴリと、前記シナリオを呼び出すためのシナリオ呼び出し語と、から構成されるシナリオセットを回線から受信する受信処理と、
回線から受信した前記シナリオセットを前記ロボットがあらかじめ持っている前記シナリオセットと併せて前記ロボットに追加する登録処理と、
前記ロボットがあらかじめ持っている前記シナリオセットと回線から受信した前記シナリオセットの中から、前記シナリオカテゴリを第一の条件に従って選択する選択処理と、
選択した前記シナリオカテゴリ内のシナリオファイルを第２の条件にしたがって実行する処理と、を実行させることを特徴とするプログラム。
【請求項８】
前記選択手段が同一のシナリオカテゴリを選択した際に、前記第２の条件として乱数、またはロボットが存在する環境、または乱数とロボットが存在する環境の双方によりシナリオファイルを実行処理することを特徴とする請求項７記載のプログラム。
【請求項９】
前記登録手段により登録された前記シナリオファイルに含まれ、登録された前記シナリオファイルの実行時期を決定する時刻を実行時刻フィールドへ格納することにより、データ処理装置に前記実行時刻フィールドを初期化させる処理を記述した初期化ファイルを、前記登録時に実行する初期化ファイル実行処理をすることを特徴とする請求項７又は８記載のプログラム。
【請求項１０】
音声認識辞書用いて音声認識を行い、音声認識により前記シナリオ呼び出し語を入力し、前記シナリオ呼び出し語を前記第一の条件とすることを特徴とする請求項７から９のいずれか１項に記載のプログラム。
【請求項１１】
前記シナリオ呼び出し語を前記音声認識辞書に追加する音声認識語彙追加処理を有することを特徴とする請求項１０記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、ロボット制御システム、およびそのプログラムに関し、特に、ロボットに接続されたネットワークを介して新たな制御プログラムモジュールを受信し、追加・実行することを特徴としたロボット、ロボット制御システム、およびそのプログラムに関する。
【背景技術】
【０００２】
従来、この種のロボットは画像入力装置、人物検出装置、音声入力装置、音声認識装置、音声出力装置、脚部モータ、頭部モータ、行動制御装置などから構成されており、ロボットの動作は行動制御装置に実装される制御プログラムで制御される。
【０００３】
図２６にこの種のロボットの構成例を示す。図２６を参照すると、このロボットはマイクなどの音声入力装置９００と、音声入力装置９００から入力された音声による単語を認識し、その単語の読みの文字列に変換する音声認識装置９０１と、音声ファイルをスピーカーなどから出力する音声出力装置９０２と、障害物までの距離を計測する超音波センサ９０３と、ロボット本体を移動させる脚部モータ９０４と、ロボットの頭部を回転させる頭部モータ９０５と、プログラム制御により動作するデータ処理装置９０６とから構成されている。
【０００４】
図２７にこのロボットの制御プログラムのフローチャートを示す。まず、音声入力装置９００からの入力の有無を調べる（ステップＳ１０）。音声入力がなければ（ステップＳ１０／ＮＯ）、「うろつく」を呼び出す（ステップＳ１１）。音声入力があれば（ステップＳ１０／ＹＥＳ）、「対話」を呼び出す（ステップＳ１２）。
【０００５】
図２８はうろつく処理のフローチャートである。このプログラムは複数の種類の移動プログラムモジュールと障害物回避プログラムモジュールを持ち、乱数により実行するプログラムモジュールを選択して多様な移動パターンを実現している。
【０００６】
まず０から２までの乱数を発生し（ステップＴ１０）、乱数の値によって３つの基本移動プログラムモジュールの一つを選択する（ステップＴ１１、Ｔ１２、Ｔ３１、Ｔ３２、Ｔ３３）。なお、本明細書ではこのようなロボットの基本動作プログラムモジュールを「シナリオ」と呼ぶ。すなわち、このロボットは３つの移動シナリオを持っており、乱数で一つが選ばれ実行される。各移動シナリオは「前に１０ｃｍ進む」、「大きく右に旋回」、「大きく左に旋回」がある。次に超音波センサ９０３からの入力を調べ、前方に障害物があるかどうかを調べる（ステップＴ１６）。障害物が無ければ（ステップＴ１６／ＮＯ）、終了する。障害物があれば（ステップＴ１６／ＹＥＳ）、０から２までの乱数を発生し、３つの障害物回避シナリオの一つを選ぶ（ステップＴ１７、Ｔ１８、Ｔ１９、Ｔ４１、Ｔ４２）。各障害物回避シナリオは「右４５度を向く」、「左４５度を向く」、「ランダムな方向を向く」である。
【０００７】
図２９は対話処理のフローチャートである。このプログラムは認識語に応じた応答プログラムを持ち、ユーザーの発話に応じた対話を行う。まず音声認識装置９０１から認識した単語の読みの文字列を受け取る（ステップＵ１０）。次に各認識語彙に応じた対話シナリオを呼び出す（ステップＵ１１からＵ１６）。対応する対話シナリオが存在しない認識語の場合には誤認識応答シナリオを呼び出す（ステップＵ１７）。各シナリオはデータ処理装置９０６で実行可能なプログラムであり、Ｃ言語などで記述し、データ処理装置が直接実行する場合と、ロボット専用の高級言語で記述し、データ処理装置が持つインタープリタで解釈実行される場合がある。
【０００８】
従来のロボットの一例が、特開２０００−３２６２７４号公報に記載されている。この公報に記載されたロボット制御プログラムは移動制御処理部、人物探索処理部、対話処理部、制御切替部、入力情報記憶部からなる。例えば対話処理部は入力情報が音声認識装置の出力の場合には、認識した単語に応じた音声を音声出力装置から出力する。またこの処理部は識別している人物の好感度を参照して好感度に応じた応答をする。
【０００９】
また特開平１１−３２７８７２号公報には、ネットワークに接続された動物型ロボットにおいて、ネットワークから受信した電子メールを解析し、電子メールの内容に含まれる特定の記号列に基づいて、解析された電子メールの内容を読み上げると共に、効果音を出力し、ロボットの筐体全体または部分の動作を制御する技術が記載されている。
【００１０】
また特開２０００−７５９０７号公報には、電子メールで操作指示を受信する工業用ロボットに関する技術が記載されている。この技術では製品エージェントはメール手段と実行手段を有し、実行手段はメール手段により受信した電子メールに基づいた操作動作の実行を行う。
【特許文献１】特開２０００−３２６２７４号公報
【特許文献２】特開平１１−３２７８７２号公報
【特許文献３】特開２０００−７５９０７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら上記従来技術では、新たな機能をネットワークから受信してロボット制御プログラムに追加できないという問題点が指摘される。その理由は、従来のロボット制御プログラムは新たな機能をネットワークから受信して追加することについて何ら考慮されていないためである。
【００１２】
また、特開平１１−３２７８７２号公報に記載の従来の技術では、ネットワークから受信した電子メールを解析した結果行われる動作は、予めこのロボットに組み込まれているものに限定されており、新たな動作を追加することはできないという問題点が指摘される。
【００１３】
また、特開２０００−７５９０７号公報に記載の従来の技術では、電子メールで受信できるのは予め製品エージェントに組み込まれている実行手段に対する操作指示であり、新たな実行手段を電子メールで追加することはできないという問題点が指摘される。
【００１４】
本発明は、上記問題点に鑑みなされたものであり、ロボットの制御プログラムに新たな機能をネットワークから受信して追加し、実行することができるロボット、ロボット制御システム、およびそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
かかる目的を達成するため、請求項１記載の発明は、ロボット制御プログラムモジュールを実行するロボットであって、回線から新たなロボット制御プログラムモジュールを受信し、受信した制御プログラムモジュールをロボット内の記録部位に書き込むことを特徴とする。
【００１６】
または、請求項２記載の発明は、回線から新たなロボット制御プログラムモジュールを受信する受信手段と、受信した制御プログラムモジュールをロボットに追加する登録手段と、ロボットが最初から持っているロボット制御プログラムモジュールと新たに追加したロボット制御プログラムモジュールとから実行すべきロボット制御プログラムモジュールを選択する選択手段と、選択したロボット制御プログラムモジュールを実行する制御プログラム実行手段と、を有することを特徴とする。
【００１７】
または、請求項３記載の発明によれば、請求項２記載のロボットにおいて、受信手段は、回線としてインターネットを用い、電子メールにより制御プログラムモジュールを受信することを特徴とする。
【００１８】
または、請求項４記載の発明によれば、請求項２または３記載のロボットにおいて、登録手段により登録された制御プログラムモジュールに含まれ、登録された制御プログラムモジュールの実行時期を決定するための初期化プログラムを、登録時に実行する初期化プログラム実行手段を有することを特徴とする。
【００１９】
または、請求項５記載の発明によれば、請求項２から４のいずれか１項に記載のロボットにおいて、登録手段により登録された制御プログラムモジュールを呼び出す音声認識語彙を音声認識辞書に追加する音声認識語彙追加手段を有することを特徴とする。
【００２０】
または、請求項６記載の発明によれば、請求項２または３記載のロボットにおいて、受信手段による制御プログラムモジュール受信時に、受信した制御プログラムモジュールを実行する受信プログラム実行手段を有することを特徴とする。
【００２１】
または、請求項７記載の発明によれば、請求項６記載のロボットにおいて、受信プログラム実行手段は、受信した制御プログラムモジュール実行後、実行した制御プログラムモジュールを消去することを特徴とする。
【００２２】
または、請求項８記載の発明は、ロボット制御プログラムモジュールを実行するロボット制御システムであって、回線から新たなロボット制御プログラムモジュールを受信し、受信した制御プログラムモジュールをロボット内の記録部位に書き込むことを特徴とする。
【００２３】
または、請求項９記載の発明は、回線から新たなロボット制御プログラムモジュールを受信する受信手段と、受信した制御プログラムモジュールをロボット制御システムに追加する登録手段と、ロボットが最初から持っているロボット制御プログラムモジュールと新たに追加したロボット制御プログラムモジュールとから実行すべきロボット制御プログラムモジュールを選択する選択手段と、選択したロボット制御プログラムモジュールを実行する制御プログラム実行手段と、を有することを特徴とする。
【００２４】
または、請求項１０記載の発明によれば、請求項９記載のロボット制御システムにおいて、受信手段は、回線としてインターネットを用い、電子メールにより制御プログラムモジュールを受信することを特徴とする。
【００２５】
または、請求項１１記載の発明によれば、請求項９または１０記載のロボット制御システムにおいて、登録手段により登録された制御プログラムモジュールに含まれ、登録された制御プログラムモジュールの実行時期を決定するための初期化プログラムを、登録時に実行する初期化プログラム実行手段を有することを特徴とする。
【００２６】
または、請求項１２記載の発明によれば、請求項９から１１のいずれか１項に記載のロボット制御システムにおいて、登録手段により登録された制御プログラムモジュールを呼び出す音声認識語彙を音声認識辞書に追加する音声認識語彙追加手段を有することを特徴とする。
【００２７】
または、請求項１３記載の発明によれば、請求項９または１０記載のロボット制御システムにおいて、受信手段による制御プログラムモジュール受信時に、受信した制御プログラムモジュールを実行する受信プログラム実行手段を有することを特徴とする。
【００２８】
または、請求項１４記載の発明によれば、請求項６記載のロボット制御システムにおいて、受信プログラム実行手段は、受信した制御プログラムモジュール実行後、実行した制御プログラムモジュールを消去することを特徴とする。
【００２９】
または、請求項１５記載の発明は、ロボット制御プログラムモジュールをコンピュータに実行させるためのプログラムであって、回線から新たなロボット制御プログラムモジュールを受信し、受信した制御プログラムモジュールをロボット内の記録部位に書き込む処理をコンピュータに実行させることを特徴とする。
【００３０】
または、請求項１６記載の発明は、回線から新たなロボット制御プログラムモジュールを受信する受信処理と、受信した制御プログラムモジュールをロボット制御システムに追加する登録処理と、ロボットが最初から持っているロボット制御プログラムモジュールと新たに追加したロボット制御プログラムモジュールとから実行すべきロボット制御プログラムモジュールを選択する選択処理と、選択したロボット制御プログラムモジュールを実行する制御プログラム実行処理と、をコンピュータに実行させることを特徴とする。
【００３１】
または、請求項１７記載の発明によれば、請求項１６記載のプログラムにおいて、受信処理は、回線としてインターネットを用い、電子メールにより制御プログラムモジュールを受信することを特徴とする。
【００３２】
または、請求項１８記載の発明によれば、請求項１６または１７記載のプログラムにおいて、登録処理により登録された制御プログラムモジュールに含まれ、登録された制御プログラムモジュールの実行時期を決定するための初期化プログラムを、登録時に実行する初期化プログラム実行処理をコンピュータに実行させることを特徴とする。
【００３３】
または、請求項１９記載の発明によれば、請求項１６から１８のいずれか１項に記載のプログラムにおいて、登録処理により登録された制御プログラムモジュールを呼び出す音声認識語彙を音声認識辞書に追加する音声認識語彙追加処理をコンピュータに実行させることを特徴とする。
【００３４】
または、請求項２０記載の発明によれば、請求項１６または１７記載のプログラムにおいて、受信処理による制御プログラムモジュール受信時に、受信した制御プログラムモジュールを実行する受信プログラム実行処理をコンピュータに実行させることを特徴とする。
【００３５】
または、請求項２１記載の発明によれば、請求項２０記載のプログラムにおいて、受信プログラム実行処理は、受信した制御プログラムモジュール実行後、実行した制御プログラムモジュールを消去することを特徴とする。
【発明の効果】
【００３６】
第１の効果はロボットに新たな機能を追加し、実行できることである。その理由はネットワークから新たなシナリオを受信し、そのシナリオをロボット制御プログラムに追加し、それを実行できるためである。
【００３７】
第２の効果は新たな認識語に応答できるようになることである。その理由はネットワークから、新たなシナリオとそれを呼び出す認識語を受信し、その認識語を音声認識辞書に追加すると同時にそのシナリオをその認識語で実行するように登録できるためである。
【００３８】
第３の効果はひとつの認識語に対する応答のバリエーションを増やすことができることである。その理由は一つの認識語に対する応答として、最初からロボット制御プログラムに組み込まれているその認識語で呼び出されるシナリオと、新たにネットワークから受信したその認識語によって実行されるシナリオの両方から、その認識語によって実行されるシナリオを選択できるためである。
【００３９】
第４の効果はうろつくなどのロボットの自律行動のパターンのバリエーションを増やすことができることである。その理由は自律行動の基本パターンを実装しているシナリオとして、最初からロボット制御プログラムに組み込まれているシナリオと、新たにネットワークから受信したシナリオの両方から、実行するシナリオを選択できるためである。
【００４０】
第５の効果は、ユーザーが望む時刻に自動的に実行される新たな機能を追加できることである。その理由は、ネットワークから新たなシナリオを受信したときに、そのシナリオに含まれている初期化ファイルを実行し、その初期化ファイルがユーザーと対話などを行って実行時刻を設定し、その時刻になったときにそのシナリオを呼び出すためである。
【００４１】
第６の効果は、ネットワークから受信時に一回だけ実行されるシナリオに必要な記憶領域を減らすことができることである。その理由は、シナリオ受信時に自動的に実行され、実行後はどこにも登録されずに削除されるシナリオの受信と実行を実現できるように構成されているため、記憶領域を有効に活用することが可能になる。
【発明を実施するための最良の形態】
【００４２】
次に、本発明の実施の形態について図面を参照して詳細に説明する。図１を参照すると、本発明の実施の形態は、モデムなどのデータ通信装置１と、マイクなどの音声入力装置２と、前面の障害物を検出するための超音波センサ３と、スピーカーなどの音声出力装置４と、ロボットの頭部を回転させる頭部モータ５と、ロボットの胴体を移動させる脚部モータ６と、プログラム制御により動作するデータ処理装置７と、ディスクなどの記憶装置８とから構成されている。
【００４３】
データ処理装置７は行動制御部７１と、音声認識語彙追加手段７２と、シナリオ登録手段７３とを含み、行動制御部７１はシナリオ受信手段７４と、シナリオ選択手段７５と、シナリオ実行手段７６と、音声認識手段７８とを含む。また、記憶装置８は音声認識辞書８１と、シナリオ管理テーブル８２と、システムシナリオ記憶部８３と、拡張シナリオ記憶部８４と、メール記憶部８５と、レコード番号記憶部９０とを含む。メール記憶部８５はシナリオカテゴリ記憶部８６と、呼び出し語記憶部８７と、シナリオファイル名記憶部８８と、ファイル記憶部８９とを含む。
【００４４】
図２を参照すると、シナリオをロボットに登録するためにシナリオ受信手段が受信する情報（以降はこの情報をシナリオセットと呼ぶ）はシナリオ制御ファイル１０２と、シナリオファイル（実行ファイル）１０３と、を含む。また、シナリオセットは、１個以上のデータファイル（群）１０４を含んでもよい。
【００４５】
シナリオファイル１０３はシナリオのプログラム本体であり、データ処理装置７が直接実行できるバイナリー形式またはインタープリタで実行される中間言語形式で記述されている。
【００４６】
データファイル群１０４はシナリオファイル１０３が利用する音声ファイルなどのデータファイルである。
【００４７】
シナリオ制御ファイル１０２はシナリオカテゴリ定義部２０１、呼び出し語定義部２０２、シナリオファイル名定義部２０３とから構成されている。
【００４８】
シナリオカテゴリ定義部２０１にはそのシナリオの種類（カテゴリ）を表す値が記述されている。この実施の形態では一例としてうろつくシナリオのカテゴリを０、障害物回避シナリオのカテゴリを１、対話シナリオのカテゴリを２としている。
【００４９】
呼び出し語定義部２０２には、そのシナリオセットに格納されているシナリオを呼び出すための語彙（呼び出し語）が記述されている。そのシナリオが音声で呼び出されない場合には呼び出し語定義部２０２には空の文字列が格納されている。
【００５０】
シナリオファイル名定義部２０３にはそのシナリオセットに格納されているシナリオファイル名、すなわちシナリオファイル１０３のファイル名が記述されている。
【００５１】
図３を参照するとシナリオ管理テーブル８２は一つのシナリオに対して１レコードからなり、各レコードはシナリオカテゴリフィールド３０１、呼び出し語フィールド３０２、シナリオファイル名フィールド３０３の３つのフィールドから構成される。
【００５２】
シナリオ受信手段７４はデータ通信装置１によりインターネット、デジタル放送などのネットワーク（回線）からシナリオセットを受信しメール記憶部８５に記憶する。
【００５３】
音声認識語彙追加手段７２は呼び出し語記憶部８７に記憶されている語彙を音声認識辞書８１に登録する。
【００５４】
シナリオ登録手段７３は、シナリオ管理テーブル８２の空きレコードを検索し、そのレコードのシナリオカテゴリフィールド３０１にシナリオカテゴリ記憶部８６に記憶されているシナリオカテゴリ値を格納し、そのレコードの呼び出し語フィールド３０２に呼び出し語記憶部８７に記憶されている呼び出し語を格納し、そのシナリオファイル名フィールド３０３にシナリオファイル名記憶部８８に記憶されているシナリオの実行ファイル名を格納する。次にファイル記憶部８９に記憶されているシナリオファイル１０３と、データファイル群１０４とを、拡張シナリオ記憶部８４に格納する。
【００５５】
音声認識手段７８は音声入力装置２に入力された音声（認識語彙）を音声認識辞書８１の各語彙と比較し、一致する語彙を検索する。
【００５６】
シナリオ選択手段７５はシナリオ管理テーブル８２から、与えられたシナリオカテゴリまたは認識語彙と一致するレコードを検索し、そのレコード番号をレコード番号記憶部９０に格納する。
【００５７】
シナリオ実行手段７６は、シナリオ管理テーブル８２の、レコード番号記憶部９０で指定されるレコードの、シナリオファイル名フィールド３０３で指定されたファイル名のシナリオを、システムシナリオ記憶部８３または拡張シナリオ記憶部８４から検索して実行する。
【００５８】
次に、図４のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。図４によると、シナリオ受信手段７４はデータ通信装置１によりネットワークに接続し、この受信すべきシナリオセットがあるかどうかを調べる（ステップＡ１）。シナリオセットが存在すれば（ステップＡ１／ＹＥＳ）、シナリオ受信手段７４によりシナリオセットを受信する（ステップＡ２）。
【００５９】
シナリオ受信手段７４は、例えば電子メールを使ってシナリオセットをネットワークから受信する。この場合には、シナリオ受信手段７４はインターネット上のメールサーバーに接続し、そのロボット宛の電子メールを受信する。この動作は通常のインターネットメールの受信処理と同じであるので詳細は省略する。また別の例として、シナリオ受信手段７４がデータ放送を使ってシナリオセットをネットワーク（デジタル放送）から受信する実施例も考えられる。この例でのシナリオ受信手段７４の動作は通常のデジタル放送受信機のデータ放送受信の動作と同じであるため、詳細は省略する。また、シナリオ受信手段７４は、アナログ放送によるデータ通信路を用いてシナリオセットを受信してもよい。シナリオ受信手段７４は、アナログセット放送を用いて受信する場合、アナログ放送におけるＶＢＩ期間を利用するとしてよく、この場合のシナリオ受信手段７４の動作は、通常のＶＢＩ期間を利用した受信処理と同様であるので詳細は省略する。さらに別の例としては、シナリオ受信手段７４がインターネット上のｆｔｐサーバーからシナリオセットを受信する実施例もある。この場合のシナリオ受信手段７４の動作は通常のｆｔｐ受信処理と同じであるので詳細は省略する。また、シナリオ受信手段７４は、ｈｔｔｐに従ってシナリオセットを受信するとしてもよく、この場合のシナリオ受信手段７４の動作は、通常のｈｔｔｐ受信処理と同様であるので詳細は省略する。
【００６０】
次にこのシナリオセットにシナリオ制御ファイル１０２が含まれているかを調べる（ステップＡ３）。含まれていれば（ステップＡ３／ＹＥＳ）、受信した情報はシナリオセットであり、シナリオ制御ファイル１０２のシナリオカテゴリ定義部２０１に記述されているシナリオカテゴリ値をシナリオカテゴリ記憶部８６に格納し、呼び出し語定義部２０２に記述されている呼び出し語を呼び出し語記憶部８７に格納し、シナリオファイル名定義部２０３に記述されているシナリオの実行ファイル名をシナリオファイル名記憶部８８に格納する（ステップＡ５）。次にこのシナリオセットに含まれている、シナリオの実行ファイルであるシナリオファイル１０３と、データファイル群１０４とをファイル記憶部８９に格納する（ステップＡ６）。次にシナリオ登録手段７３を呼び出す（ステップＡ７）。次に音声認識語彙追加手段７２を呼び出す（ステップＡ１２）。次にファイル記憶部８９の内容を消去する（ステップＡ１３）。
【００６１】
シナリオ制御ファイルが含まれていなければ（ステップＡ３／ＮＯ）、受信した情報はシナリオセットではないので、その情報に応じた処理を行う（ステップＡ８）。例えば、シナリオセットを電子メールで受信する実施例においては、そのメールが通常の電子メールであった場合にこのステップが実行され、例えばそのメールを音声合成などにより音声出力装置４に出力する。
【００６２】
受信すべきシナリオセットがない場合には（ステップＡ１／ＮＯ）、音声入力装置２からの音声入力があるかを調べ（ステップＡ９）、音声入力が無ければ（ステップＡ９／ＮＯ）、うろつく処理を呼び出す（ステップＡ１０）。音声入力があれば（ステップＡ９／ＹＥＳ）、対話処理を呼び出す（ステップＡ１１）。
【００６３】
次にシナリオ登録手段７３の動作を図５のフローチャートを参照して説明する。図５によると、シナリオ登録手段７３はシナリオ管理テーブル８２から空きレコードを検索し（ステップＢ４）、そのレコード番号をレコード番号記憶部９０に格納し（ステップＢ５）、そのレコードのシナリオカテゴリフィールドにシナリオカテゴリ記憶部８６に記憶されているシナリオカテゴリ値を格納する（ステップＢ６）。さらにシナリオ登録手段は、シナリオ管理テーブル８２の、レコード番号記憶部９０で指示されるレコード番号のレコードの、呼び出し語フィールド３０２に呼び出し語記憶部８７に記憶されている呼び出し語を格納し、シナリオファイル名フィールド３０３にシナリオファイル名記憶部８８に記憶されているシナリオの実行ファイル名を格納する（ステップＢ７）。次にファイル記憶部８９に記憶されている、シナリオファイル１０３とデータファイル群１０４とを拡張シナリオ記憶部８４に格納する（ステップＢ８）。
【００６４】
次に音声認識語彙追加手段７２の動作を図１０のフローチャートを参照して説明する。図１０によると、音声認識語彙追加手段７２は呼び出し語記憶部８７に記憶された呼び出し語が空文字列かどうかを調べ、空文字列であれば（ステップＧ１／ＹＥＳ）、処理を終了する。空文字列でない場合には（ステップＧ１／ＮＯ）、音声認識辞書８１にすでに呼び出し語記憶部８７に記憶された呼び出し語が登録されているかどうかを検索する（ステップＧ２）。すでに登録されている場合には（ステップＧ３／ＹＥＳ）、処理を終える。未登録の場合には（ステップＧ３／ＮＯ）、その呼び出し語を音声認識辞書８１に追加する（ステップＧ４）。
【００６５】
次にうろつく処理の動作を図６のフローチャートを参照して説明する。図６によると、検索カテゴリの値をうろつくシナリオを意味する０に設定する（ステップＣ１）。次にシナリオ選択手段７５を呼び出す（ステップＣ２）。次にシナリオ実行手段７６を呼び出す（ステップＣ３）。次に超音波センサ３を用いて前方に障害物があるかを調べる（ステップＣ４）。障害物が無い場合には（ステップＣ４／ＮＯ）、うろつく処理を終了する。障害物がある場合には（ステップＣ４／ＹＥＳ）、検索カテゴリ値を障害物回避シナリオを意味する１に設定する（ステップＣ５）。次にシナリオ選択手段７５を呼び出す（ステップＣ６）。次にシナリオ実行手段７６を呼び出す（ステップＣ７）。そして再び超音波センサ３を用いて前方に障害物があるかを調べる処理に戻る（ステップＣ４）。
【００６６】
次に対話処理の動作を図７のフローチャートを参照して説明する。図７によると、音声認識手段７８は音声入力装置２から入力された音声を音声認識辞書８１の各語彙と比較し、一致する語彙を検索する（ステップＤ１）。一致する語彙が無い場合には（ステップＤ２／ＮＯ）、「そんな言葉は知らないよ」等の音声応答を行う（ステップＤ３）。一致する語彙が存在する場合には（ステップＤ２／ＹＥＳ）、その語彙を認識結果記憶部９１に記憶し（ステップＤ４）、検索カテゴリの値を−１に設定して（ステップＤ５）、シナリオ選択手段７５を呼び出す（ステップＤ６）。次にシナリオ実行手段７６を呼び出す（ステップＤ７）。
【００６７】
次にシナリオ選択手段７５の動作を図８のフローチャートを参照して説明する。図８によると、シナリオ選択手段７５は与えられた検索カテゴリの値が−１かどうかを調べる（ステップＥ１）。検索カテゴリの値が−１ではない場合には（ステップＥ１／ＮＯ）、シナリオ管理テーブル８２の、シナリオカテゴリフィールド３０１の値が指定された検索カテゴリと一致するレコード群から一つのレコードを選択し（ステップＥ２）、選択したレコード番号をレコード番号記憶部９０に記憶する（ステップＥ４）。与えられた検索カテゴリの値が−１の場合には（ステップＥ１／ＹＥＳ）、シナリオ管理テーブル８２の、呼び出し語フィールド３０２の値が記憶された認識語と一致するレコード群から一つのレコードを選択し（ステップＥ３）、選択したレコード番号をレコード番号記憶部９０に記憶する（ステップＥ４）。
【００６８】
なお、対話シナリオ処理では検索カテゴリの値を−１としてシナリオ選択手段７５を呼ぶため、全てのカテゴリのシナリオが検索対象となる。対話シナリオから実行する必要が無いシナリオでは、シナリオ制御ファイルの呼び出し語定義部に空文字列を設定しておくことで、そのシナリオは対話シナリオからは実行されないように出来る。逆に同一のシナリオをうろつく処理でも対話処理でも使えるようにするためには、そのシナリオの制御ファイルのシナリオカテゴリ定義部に０を設定し、かつ呼び出し語定義部に呼び出し語を設定しておく。
【００６９】
次にシナリオ実行手段７６の図９のフローチャートを参照して説明する。図９によると、シナリオ実行手段は、シナリオ管理テーブル８２の、レコード番号記憶部９０で指示されるレコードのシナリオファイル名フィールド３０３に格納されているシナリオファイル名を取り出す（ステップＦ１）。次に拡張シナリオ記憶部８４からこのファイル名のファイルを検索する（ステップＦ２）。ファイルが存在する場合には（ステップＦ３／ＹＥＳ）、そのファイルを実行する（ステップＦ５）。存在しない場合には（ステップＦ３／ＮＯ）、システムシナリオ記憶部８３からそのファイル名のファイルを検索し（ステップＦ４）、それを実行する（ステップＦ５）。
【００７０】
次に、具体的な実施例を用いて本実施の形態の動作を説明する。図１１に示すように、この実施例のロボットの音声認識辞書８１には予め「おはよう」、「ＴＶつけて」、「今何時」の３単語が登録されている。システムシナリオ記憶部８３には予め「挨拶」、「ＴＶ制御」、「時計」、「直進する」、「蛇行しながら前進」、「右に回転する」、「左に回転する」というファイル名のシナリオ（プログラム）が格納されている。シナリオ管理テーブル８２にはこれらのシナリオが予め登録されている。拡張シナリオ記憶部８４は空である。「挨拶」というファイル名のシナリオは操作者に挨拶する音声応答を行うプログラムであり、「ＴＶ制御」はＴＶに向かって赤外線発光部（図示せず）からＴＶの電源をＯＮにするリモコンコードを送信するプログラムであり、「時計」はタイマー装置（図示せず）から現在の時刻を取得し、その時刻を音声で発話するプログラムである。「直進する」、「蛇行しながら前進」は、それぞれ脚部モータ６を用いて、ロボットを一定距離直進させるプログラムと、ロボットを蛇行させながら一定距離直進させるプログラムである。「右に回転する」、「左に回転する」は、それぞれ脚部モータ６を用いて、ロボットの方向を右に回転させるプログラムと、左に回転させるプログラムである。
【００７１】
まず、受信すべきシナリオセットがない状態でロボットを操作したときの動作を説明する。なお、この例ではシナリオ受信手段としてインターネットメールを使ったときの動作を説明する。ステップＡ１では受信メールの有無を確認する。メールは無いのでステップＡ９に進む。音声入力装置２に「おはよう」という語彙を与えると対話処理が呼び出され（ステップＡ９、Ａ１１）、対話処理では音声認識手段７８がこの語彙を音声認識辞書８１から検索する（ステップＤ１）。この語彙は音声認識辞書８１に登録されているので検索は成功し（ステップＤ２）、この語彙が記憶され（ステップＤ４）、検索カテゴリを−１としてシナリオ選択手段７５が呼び出される（ステップＤ５、Ｄ６）。シナリオ選択手段７５は検索カテゴリが−１であるのでこの認識語と一致する呼び出し語を持ったレコードをシナリオ管理テーブル８２から検索する。この例では一致するものはレコード５だけなので、それがレコード番号記憶部９０に記憶される（ステップＥ１、Ｅ３、Ｅ４）。次にシナリオ実行手段７６が呼び出され（ステップＤ７）、シナリオ管理テーブル８２からレコード番号５のレコードのシナリオファイル名フィールド３０３に格納されたファイル名「挨拶」を取り出す（ステップＦ１）。このファイル名のファイルがシステムシナリオ記憶部８３に存在するのでそのファイルが実行される（ステップＦ２、Ｆ３、Ｆ４）。この結果、操作者に対する挨拶が行われる。
【００７２】
音声入力装置２からの入力がないとうろつく処理が呼び出され（Ａ９、Ａ１０）、うろつく処理では、検索カテゴリを０、すなわちうろつくシナリオのカテゴリを指定してシナリオ選択手段７５が呼び出される（ステップＣ１、Ｃ２）。シナリオ選択手段７５は検索カテゴリが−１ではないので与えられた検索カテゴリと一致するシナリオカテゴリを持ったレコードをシナリオ管理テーブル８２から検索し、この具体例ではレコード番号１と２のレコードが一致するのでどちらかを乱数で選ぶ。例えば２が選ばれたとする。これがレコード番号記憶部９０に記憶する（ステップＥ１、Ｅ２、Ｅ４）。次にシナリオ実行手段７６が呼び出される（ステップＤ７）、シナリオ実行手段７６はシナリオ管理テーブル８２からレコード番号２のレコードの、シナリオファイル名フィールド３０３に格納されたファイル名「蛇行しながら直進」を取り出す（ステップＦ１）。このファイル名のファイルはシステムシナリオ記憶部８３に存在するのでそのファイルが実行される（ステップＦ２、Ｆ３、Ｆ４、Ｆ５）。この結果、ロボットは蛇行しながら前進する。障害物があれば、同様に「右に回転する」シナリオ、「左に回転する」シナリオのいずれかが検索され実行される。うろつくシナリオが何度も呼ばれると、乱数で「直進する」シナリオと「蛇行しながら前進」シナリオがランダムに選ばれるので、ロボットは蛇行したり直進したりしながら移動動作を行うことになる。同様に障害物があったときには乱数で「右に回転する」シナリオ、「左に回転する」シナリオのいずれかが選ばれ、障害物からの脱出を試みる。
【００７３】
また、音声入力装置２に「ダンスして」という語彙を与えた場合には、同様に対話処理が呼び出され（ステップＡ１、Ａ９、Ａ１１）、対話処理では音声認識手段７８がこの語彙を音声認識辞書８１から検索する（ステップＤ１）。この語彙は音声認識辞書８１には登録されていないので検索は失敗し（ステップＤ２）、「そんな言葉は知らないよ」というエラー応答を行われる（ステップＤ３）。さて、例えばダンスをするシナリオがインターネットからこのロボットに電子メールで送信されたとする。このシナリオセットは図１２に示すように空のメール本文と、シナリオ制御ファイルと、「ダンス実行」という名称のシナリオファイルと、「ダンス伴奏」の楽曲ファイルから構成されている。シナリオ制御ファイルのシナリオカテゴリ定義部２０１には対話シナリオを意味する値２が、呼び出し語定義部２０２にはこのシナリオを呼び出す認識語としてこのシナリオ作成者が選んだ「ダンスして」という文字列が、シナリオファイル名定義部２０３には「ダンス実行」という文字列が格納されている。「ダンス実行」というファイル名のファイルは、頭部モータ５と脚部モータ６を用いて、ロボットの頭や足を動かし、同時に「ダンス伴奏」というファイルを用いて音声出力装置４から楽曲を出力してダンスを踊るプログラムである。
【００７４】
図４のフローチャートを参照すると、このシナリオセットがメールとしてメールサーバーに対して送信されると、シナリオ受信手段によりシナリオセットが受信される（ステップＡ１、Ａ２）。このシナリオセットにはシナリオ制御ファイル１０２が含まれているのでシナリオ制御ファイル１０２のシナリオカテゴリ定義部２０１に記述されているシナリオカテゴリ値である２がシナリオカテゴリ記憶部８６に格納され、呼び出し語定義部２０２に記述されている呼び出し語である「ダンスして」が呼び出し語記憶部８７に格納され、シナリオファイル名定義部２０３に記述されているシナリオの実行ファイル名である「ダンス実行」がシナリオファイル名記憶部８８に格納される（ステップＡ５）。次にこのシナリオセットに含まれているシナリオファイル１０３とデータファイル群１０４、すなわち「ダンス実行」ファイルと「ダンス伴奏」ファイルがファイル記憶部８９に格納される（ステップＡ６）。次にシナリオ登録手段７３を呼び出される（ステップＡ７）。
【００７５】
図５によると、シナリオ登録手段７３はシナリオ管理テーブル８２から空きレコードを検索し（ステップＢ４）、そのレコード番号、すなわち８をレコード番号記憶部９０に格納し（ステップＢ５）、そのレコードのシナリオカテゴリフィールドにシナリオカテゴリ記憶部８６に記憶されているシナリオカテゴリ値である２を格納する（ステップＢ６）。さらにシナリオ登録手段７３は、シナリオ管理テーブル８２のレコード８の呼び出し語フィールド３０２に呼び出し語記憶部８７に記憶されている呼び出し語「ダンスして」を格納し、シナリオファイル名フィールド３０３にシナリオファイル名記憶部８８に記憶されているシナリオの実行ファイル名「ダンス実行」を格納する（ステップＢ７）。さらにファイル記憶部８９に記憶されている「ダンス実行」ファイルと「ダンス伴奏」ファイルを拡張シナリオ記憶部８４に格納する（ステップＢ８）。
【００７６】
再び図４を参照すると、音声認識語彙追加手段７２が呼び出され（ステップＡ１２）、音声認識語彙追加手段７２は呼び出し語記憶部８７に記憶された呼び出し語「ダンスして」は空文字列ではないので音声認識辞書８１にすでにこの呼び出し語が登録されているかどうかを検索する（ステップＧ１、Ｇ２）。この呼び出し語はまだ登録されていないので、音声認識辞書８１に追加する（ステップＧ３、Ｇ４）。
【００７７】
この結果、図１３に示すように、音声認識辞書８１には「ダンスして」の語彙が追加され、シナリオ管理テーブル８２にはメールで受信した「ダンス実行」シナリオの情報が追加され、拡張シナリオ記憶部８４には「ダンス実行シナリオ」と、このシナリオが利用する「ダンス伴奏」ファイルが追加される。ここで再び音声入力装置２に「おはよう」という語彙を与えるとこの語彙に対応するシナリオは追加されていないので再び「挨拶シナリオ」が実行される。一方、ここで音声入力装置２に「ダンスして」という語彙を与えると、今度はこの語彙が音声認識辞書８１に登録されているので検索は成功し（ステップＤ２）、以下ステップＤ４、Ｄ５を経てシナリオ選択手段７５が呼び出される。シナリオ選択手段７５は「ダンスして」という呼び出し語と一致する呼び出し語を持ったレコードをシナリオ管理テーブル８２から検索するが、この呼び出し語はレコード８に追加されているので、シナリオ実行手段７６はこのレコードからシナリオファイル名「ダンス実行」を取り出す。このファイル名のファイルが拡張シナリオ記憶部８４に存在するので「ダンス実行」ファイルが取り出され実行される。この結果、新たにメールで受信、追加された「ダンス実行」が実行され、従来は実行できなかったダンスの動作が可能になる。
【００７８】
ここで、さらに電子メールで、図１４のメールが受信されたとする。このメールは「おはよう」という呼び出し語を持ち、「挨拶２」シナリオを持っている。このシナリオは前記「挨拶」シナリオとは異なる応答をするシナリオである。この結果、図１５に示すように、シナリオ管理テーブル８２には「挨拶２」シナリオの情報が追加され、拡張シナリオ記憶部８４には「挨拶２」シナリオが追加される。「おはよう」という認識語はすでに音声認識辞書８１に登録されているので音声認識辞書８１の内容は変わらない。
【００７９】
ここで再び「おはよう」と言うと、シナリオ選択手段７５はシナリオ管理テーブル８２には呼び出し語フィールド３０２の値が「おはよう」のレコードが２つあるので、どちらかを選択する。この実施例では乱数で選択が行われる。この結果、２つのシナリオ、すなわち「挨拶」シナリオと「挨拶２」シナリオのどちらかが乱数で選択され、それがシナリオ実行手段により実行されるようになる。
【００８０】
同様に、さらに電子メールで、シナリオカテゴリが０、シナリオファイル名が「後退する」というシナリオセットが送られ組み込まれたとする。このシナリオファイルはロボットの向きを後ろ向きに変えて一定距離進むシナリオとする。この結果、うろつく処理から乱数で従来の「直進する」シナリオと「蛇行しながら前進」シナリオに加えて「後退する」シナリオも選択されるようになるので、ロボットの移動動作は従来の蛇行したり直進したりするだけでなく、時々後退する動作も含まれるようになる。
【００８１】
次に、本実施の形態の効果について説明する。本実施の形態では、ネットワークからシナリオを受信し、そのシナリオを追加できるように構成されているため、ロボットに新たなシナリオを簡単に追加することができる。
【００８２】
また、本実施の形態では、さらに、ネットワークから受信した新たなシナリオを新たな認識語で呼び出すように構成されているため、追加したシナリオの呼び出しを柔軟に設定することができる。
【００８３】
また、本実施の形態では、さらに同一のカテゴリのシナリオに新たなシナリオを追加することができるように構成されているため、予めロボットが具備している動作のバリエーションを増やすことができる。
【００８４】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。図１６を参照すると、本発明の第２の実施の形態は、図１に示された第１の実施の形態におけるデータ処理装置の構成に対して、シナリオ登録手段７３とシナリオ選択手段７５がシナリオ登録手段（２）４０５とシナリオ選択手段（２）４０１に置き換わり、新たに初期化シナリオ実行手段４０２と、タイマー設定手段４０３と、タイマー参照手段４０４とが追加されている点が異なる。さらに図１に示された第１の実施の形態における記憶装置の構成に対して、シナリオ管理テーブル８２がシナリオ管理テーブル（２）５０１に置き換わり、さらにメール記憶部に初期化ファイル名記憶部５０２が追加されている点が異なる。
【００８５】
図１７を参照すると、本発明の第２の実施の形態におけるシナリオセットの構成は図２に示された第１の実施の形態におけるシナリオセットの構成に対して、さらに初期化ファイル１０５を持つことと、シナリオ制御ファイルに初期化ファイル名定義部２０４とを持つ点で異なる。
【００８６】
図１８を参照すると、本発明の第２の実施の形態におけるシナリオ管理テーブル（２）５０１の構成は、図３に示された第１の実施の形態におけるシナリオ管理テーブル８２に対して、さらに実行時刻フィールド３０４を持つ点で異なる。
【００８７】
初期化ファイル実行手段４０２は初期化ファイル名記憶部５０２に格納されているファイル名の初期化ファイルをファイル記憶部８９から取り出して実行する。
【００８８】
タイマー設定手段４０３はシナリオファイル、初期化ファイルから呼び出すことができるライブラリの形を取っており、指定された時刻をシナリオ管理テーブル（２）５０１の、レコード番号記憶部９０で指示されるレコードの実行時刻フィールド３０４に格納する。
【００８９】
タイマー参照手段４０４はシナリオ管理テーブル（２）５０１の各レコードの実行時刻フィールド３０４に記憶されている実行時刻と現在の時刻を比較し、同一のものがあればそのレコード番号をレコード番号記憶部９０に記憶し、同一のものがなければレコード番号記憶部９０に−１を記憶する。
【００９０】
シナリオ登録手段（２）４０５は、シナリオ管理テーブル（２）５０１の空きレコードを検索し、そのレコードのシナリオカテゴリフィールドにシナリオカテゴリ記憶部８６に記憶されているシナリオカテゴリ値を格納し、そのレコードの呼び出し語フィールド３０２に呼び出し語記憶部８７に記憶されている呼び出し語を格納し、そのシナリオファイル名フィールド３０３にシナリオファイル名記憶部８８に記憶されているシナリオの実行ファイル名を格納する。このレコードの実行時刻フィールド３０４には「未設定」を表す値（例えば−１）を登録する。ファイル記憶部８９に記憶されているシナリオファイル１０３と、データファイル群１０４とを拡張シナリオ記憶部８４に格納する。
【００９１】
シナリオ選択手段（２）４０１はシナリオ管理テーブル（２）５０１から、与えられたシナリオカテゴリまたは認識語彙と対応するシナリオファイルを検索し、そのレコード番号をレコード番号記憶部９０に格納する。シナリオ選択手段（２）４０１の動作はシナリオ管理テーブル８２ではなくシナリオ管理テーブル（２）５０１が使われる点以外は図８に示した第１の実施の形態のシナリオ選択手段と同じである。
【００９２】
次に、図１９のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。図１９によると、シナリオ受信手段７４はデータ通信装置１によりネットワークに接続し、このロボット宛のシナリオセットが存在するかを調べる（ステップＨ１）。受信すべきシナリオセットがあれば（ステップＨ１／ＹＥＳ）、それを受信する（ステップＨ２）。次にこのシナリオセットにシナリオ制御ファイル１０６が含まれているかを調べる（ステップＨ３）。含まれていれば（ステップＨ３／ＹＥＳ）、シナリオ制御ファイル１０６のシナリオカテゴリ定義部２０１に記述されているシナリオカテゴリ値をシナリオカテゴリ記憶部８６に格納し、呼び出し語定義部２０２に記述されている呼び出し語を呼び出し語記憶部８７に格納し、初期化ファイル名定義部２０４に記述されているシナリオの初期化ファイル名を初期化ファイル名記憶部５０２に格納し、シナリオファイル名定義部２０３に記述されているシナリオの実行ファイル名をシナリオファイル名記憶部８８に格納する（ステップＨ５）。次にこのシナリオセットに含まれているシナリオファイル１０３と、初期化ファイル１０５と、データファイル群１０４とをファイル記憶部８９に格納する（ステップＨ６）。次にシナリオ登録手段（２）４０５を呼び出す（ステップＨ７）。次に音声認識語彙追加手段７２を呼び出す（ステップＨ１２）。次に初期化ファイル実行手段４０２を呼び出す（ステップＨ２３）。次にファイル記憶部８９の内容を消去する（ステップＨ１３）。
【００９３】
シナリオ制御ファイルが含まれていなければ（ステップＨ３／ＮＯ）、受信した情報はシナリオセットではないので、その情報に応じた処理を行う（ステップＨ８）。受信すべきシナリオセットがない場合には（ステップＨ１／ＮＯ）、音声入力装置２からの音声入力があるかを調べ（ステップＨ９）、音声入力が無ければ（ステップＨ９／ＮＯ）、タイマー参照手段４０４を呼び出す（ステップＨ２０）。レコード番号記憶部９０の値が−１でなければ（ステップＨ２１／ＮＯ）、シナリオ実行手段７６を呼び出す（ステップＨ２２）。−１であれば（ステップＨ２１／ＹＥＳ）、うろつく処理を呼び出す（ステップＨ１０）。音声入力があれば（ステップＨ９／ＹＥＳ）、対話処理を呼び出す（ステップＨ１１）。
【００９４】
次に、シナリオ登録手段（２）４０５の動作を図２０のフローチャートを参照して説明する。図２０によると、シナリオ登録手段（２）４０５はシナリオ管理テーブル（２）５０１から空きレコードを検索し（ステップＪ４）、そのレコード番号をレコード番号記憶部９０に格納し（ステップＪ５）、そのレコードのシナリオカテゴリフィールドにシナリオカテゴリ記憶部８６に記憶されているシナリオカテゴリ値を格納する（ステップＪ６）。さらに、シナリオ登録手段（２）４０５は、シナリオ管理テーブル（２）５０１の、レコード番号記憶部９０で指示されるレコード番号のレコードの呼び出し語フィールド３０２に呼び出し語記憶部８７に記憶されている呼び出し語を格納し、シナリオファイル名フィールド３０３にシナリオファイル名記憶部８８に記憶されているシナリオの実行ファイル名を格納する（ステップＪ７）。次に、ファイル記憶部８９に記憶されているシナリオファイル１０３と、データファイル群１０４とを拡張シナリオ記憶部８４に格納する（ステップＪ８）。実行時刻フィールド３０４には「未設定」を表す値（例えば−１）を格納する（ステップＪ９）。
【００９５】
次に、初期化ファイル実行手段４０２の動作を図２１のフローチャートを参照して説明する。図２１によると、初期化ファイル実行手段４０２は初期化ファイル名記憶部５０２に記憶されているファイル名のファイルをファイル記憶部８９から取り出し実行する（ステップＫ１）。初期化ファイルの内容はデータ処理装置７により実行可能な任意のプログラムである。通常このプログラムはそれを含むシナリオセットの実行ファイルをどの時刻に実行するかをユーザーと音声認識などを用いて対話して決定する処理を含んでいる。決定した時刻はその時刻を引数としてタイマー設定手段４０３を呼び出すことで登録する（ステップＫ２）。
【００９６】
図２２を参照すると、タイマー設定手段４０３は引数として渡された時刻をシナリオ管理テーブル（２）５０１の、レコード番号記憶部９０で指示されるレコードの実行時刻フィールド３０４に格納する（ステップＬ１）。なお、初期化ファイルと同様に、実行ファイルにも、ユーザとの対話などにより実行ファイルの実行時刻を決定するプログラムが含まれているとしてもよい。実行ファイルに上記のプログラムが含まれているとした場合、タイマー設定手段４０３は初期化ファイルだけでなく、実行ファイルからも呼び出すことが出来る。すなわち、実行ファイルの実行中に再度ユーザーと音声認識などを用いた対話により次の実行時刻を決定し、その時刻を引数としてタイマー設定手段４０３を呼び出すことにより、次回のそのシナリオの実行時刻を変えることができる。
【００９７】
次に、タイマー参照手段４０４の動作を図２３のフローチャートを参照して説明する。図２３によると、タイマー参照手段４０４はシナリオ管理テーブル（２）５０１から、実行時刻フィールドの値が現在の時刻と一致するレコードを検索する（ステップＭ１）。一致するレコードがあれば（ステップＭ２／ＹＥＳ）、そのレコード番号をレコード番号記憶部９０に格納する（ステップＭ３）。一致するレコードが存在しない場合には（ステップＭ２／ＮＯ）、レコード番号記憶部９０に−１を記憶する（ステップＭ４）。なお、特定の時刻に自動的に実行する必要がないシナリオでは、初期化ファイルがタイマー設定手段を呼び出さないように作成する。この場合にはシナリオ管理テーブル（２）５０１の、そのシナリオに対応するレコードの実行時刻フィールドはシナリオ登録手段（２）４０５により−１に設定されたままになり、現在時刻と決して一致しないため、タイマー参照手段４０４がそのレコード番号を現在レコード記憶部に設定することは起こらず、そのシナリオが特定の時刻に自動的に実行されることはなくなる。
【００９８】
本実施の形態におけるうろつく処理と、対話処理とは、第１の実施の形態の動作と同じである（図６、図７）。また  本実施の形態における他の手段は、第１の実施の形態ではシナリオ管理テーブル８２を使うのに対して、シナリオ管理テーブル（２）５０１を使う点が異なるだけである。
【００９９】
次に、本実施の形態の効果について説明する。本実施の形態では、第１の実施例の効果に加えて、ユーザーと対話などを行って実行時刻を設定し、その時刻になったときに自動的に実行される新たなシナリオを追加できるように構成されているため、ある時刻になったときに自動的に実行を開始することが必要な新機能を簡単に追加することができる。
【０１００】
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。図２４を参照すると、本発明の第３の実施の形態は、図１に示された第１の実施の形態におけるデータ処理装置の構成に対して、シナリオ登録手段７３がシナリオ登録手段（３）６０１に置き換わっている点が異なる。第３の実施の形態におけるシナリオ制御ファイルの構造そのものは図２に示される第１の実施の形態と同じであるが、第３の実施の形態においてはさらにシナリオカテゴリ定義部２０１に０、１、２に加えて３を記述することができる。シナリオカテゴリが３の場合、そのシナリオはシナリオ管理テーブル８２と拡張シナリオ記憶部８４に登録されずに、そのシナリオセットの受信時に一度だけ実行され、実行後は破棄される。
【０１０１】
この処理はシナリオ登録手段（３）６０１で実現されており、以下に図２５を参照してシナリオ登録手段（３）６０１の動作を説明する。図２５を参照すると、シナリオ登録手段（３）６０１はシナリオカテゴリ記憶部８６に記憶されているシナリオカテゴリが３であるかどうかを調べる（ステップＮ１）。シナリオカテゴリが３以外であれば（ステップＮ１／ＮＯ）、ステップＢ４に移る。ステップＢ４以降の動作は第１の実施の形態と同じであるので説明は省略する。シナリオカテゴリが３の場合（ステップＮ１／ＹＥＳ）、シナリオファイル名記憶部８８に記憶されているシナリオファイル名のシナリオファイル１０３をファイル記憶部８９から取り出し実行する（ステップＮ２）。
【０１０２】
このように、第３の実施の形態では、第１の実施の形態の動作に加え、シナリオ受信時に自動的に実行され、実行後はどこにも登録されないシナリオの受信と実行を実現できるように構成されているため、記憶領域を有効に活用することが可能になる。さらに、第３の実施の形態ではシナリオセットの受信後、即時にそのシナリオを実行できるように構成されているため、ユーザーからの発話なしに確実に実行できるシナリオをロボットに送信することが可能になる。特に、ロボットに広告に係るシナリオなどを実行させる場合、ユーザの発話を必要とせずにユーザに広告内容を通知し、広告効果を向上させることが可能となる。
【産業上の利用可能性】
【０１０３】
本発明は、ロボット、ロボット制御システム、およびそのプログラムに関し、特に、ロボットに接続されたネットワークを介して新たな制御プログラムモジュールを受信し、追加・実行することを特徴としたロボット、ロボット制御システム、およびそのプログラムに関する。
【図面の簡単な説明】
【０１０４】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】本発明の第１の実施の形態のシナリオセットとシナリオ制御ファイルである。
【図３】本発明の第１の実施の形態のシナリオ管理テーブルである。
【図４】本発明の第１の実施の形態の全体の動作を示す流れ図である。
【図５】本発明の第１の実施の形態のシナリオ登録手段の動作を示す流れ図である。
【図６】本発明の第１の実施の形態のうろつく処理の動作を示す流れ図である。
【図７】本発明の第１の実施の形態の対話処理の動作を示す流れ図である。
【図８】本発明の第１の実施の形態のシナリオ選択手段の動作を示す流れ図である。
【図９】本発明の第１の実施の形態のシナリオ実行手段の動作を示す流れ図である。
【図１０】本発明の第１の実施の形態の音声認識語彙追加手段の動作を示す流れ図である。
【図１１】本発明の第１の実施の形態の動作の具体的な実施例の音声認識辞書、シナリオ管理テーブル、システムシナリオ記憶部、拡張シナリオ記憶部の内容である。
【図１２】本発明の第１の実施の形態のシナリオセットとシナリオ制御ファイルの内容である。
【図１３】本発明の第１の実施の形態における、シナリオ登録後の音声認識辞書、シナリオ管理テーブル、拡張シナリオ記憶部の内容である。
【図１４】本発明の第１の実施の形態のシナリオセットとシナリオ制御ファイルの内容である。
【図１５】本発明の第１の実施の形態のシナリオ登録後の音声認識辞書、シナリオ管理テーブル、拡張シナリオ記憶部の内容である。
【図１６】本発明の第２の実施の形態の構成を示すブロック図である。
【図１７】本発明の第２の実施の形態のシナリオセットとシナリオ制御ファイルである。
【図１８】本発明の第２の実施の形態のシナリオ管理テーブルである。
【図１９】本発明の第２の実施の形態の全体の動作を示す流れ図である。
【図２０】本発明の第２の実施の形態のシナリオ登録手段の動作を示す流れ図である。
【図２１】本発明の第２の実施の形態の初期化ファイル実行手段の動作を示す流れ図である。
【図２２】本発明の第２の実施の形態のタイマー設定手段の動作を示す流れ図である。
【図２３】本発明の第２の実施の形態のタイマー参照手段の動作を示す流れ図である。
【図２４】本発明の第３の実施の形態の構成を示すブロック図である。
【図２５】本発明の第３の実施の形態のシナリオ登録手段の動作を示す流れ図である。
【図２６】従来例の構成を示すブロック図である。
【図２７】従来例の動作を示す流れ図である。
【図２８】従来例の動作を示す流れ図である。
【図２９】従来例の動作を示す流れ図である。
【符号の説明】
【０１０５】
１  データ通信装置
２  音声入力装置
３  超音波センサ
４  音声出力装置
５  頭部モータ
６  脚部モータ
７、６０  データ処理装置
７１  行動制御部
７２  音声認識語彙追加手段
７３  シナリオ登録手段
７４  シナリオ受信手段
７５  シナリオ選択手段
７６  シナリオ実行手段
７８  音声認識手段
８  記憶装置
８１  音声認識辞書
８２  シナリオ管理テーブル
８３  システムシナリオ記憶部
８４  拡張シナリオ記憶部
８５  メール記憶部
８６  シナリオカテゴリ記憶部
８７  呼び出し語記憶部
８８  シナリオファイル名記憶部
８９  ファイル記憶部
９０  レコード番号記憶部
９１  認識結果記憶部
１０２、１０６  シナリオ制御ファイル
１０３  シナリオファイル
１０４  データファイル（群）
１０５  初期化ファイル
２０１  シナリオカテゴリ定義部
２０２  呼び出し語定義部
２０３  シナリオファイル名定義部
３０１  シナリオカテゴリフィールド
３０２  呼び出し語フィールド
３０３  シナリオファイル名フィールド
３０４  実行時刻フィールド
４０  データ処理装置
４０１  シナリオ選択手段（２）
４０２  初期化ファイル実行手段
４０３  タイマー設定手段
４０４  タイマー参照手段
４０５  シナリオ登録手段（２）
５０  記憶装置
５０１  シナリオ管理テーブル（２）
５０２  初期化ファイル名記憶部
６０１  シナリオ登録手段（３）
【図１】
2006334780.tif 000003
【図２】
2006334780.tif 000004
【図３】
2006334780.tif 000005
【図４】
2006334780.tif 000006
【図５】
2006334780.tif 000007
【図６】
2006334780.tif 000008
【図７】
2006334780.tif 000009
【図８】
2006334780.tif 000010
【図９】
2006334780.tif 000011
【図１０】
2006334780.tif 000012
【図１１】
2006334780.tif 000013
【図１２】
2006334780.tif 000014
【図１３】
2006334780.tif 000015
【図１４】
2006334780.tif 000016
【図１５】
2006334780.tif 000017
【図１６】
2006334780.tif 000018
【図１７】
2006334780.tif 000019
【図１８】
2006334780.tif 000020
【図１９】
2006334780.tif 000021
【図２０】
2006334780.tif 000022
【図２１】
2006334780.tif 000023
【図２２】
2006334780.tif 000024
【図２３】
2006334780.tif 000025
【図２４】
2006334780.tif 000026
【図２５】
2006334780.tif 000027
【図２６】
2006334780.tif 000028
【図２７】
2006334780.tif 000029
【図２８】
2006334780.tif 000030
【図２９】
2006334780.tif 000031