説明

ロボット、ロボット制御システム、およびそのプログラム

【課題】 ロボット制御プログラムにネットワークから新たな制御プログラムモジュールを追加できるロボット、ロボット制御システム、およびそのプログラムを提供する。
【解決手段】 ネットワークから新たなロボット制御プログラムモジュール(シナリオ)を受信するシナリオ受信手段74と、受信したシナリオを組み込むシナリオ登録手段73と、予めロボットに組み込まれているシナリオと追加したシナリオ群から実行するシナリオを選択するシナリオ選択手段75と、選択したシナリオを実行するシナリオ実行手段76と、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット、ロボット制御システム、およびそのプログラムに関し、特に、ロボットに接続されたネットワークを介して新たな制御プログラムモジュールを受信し、追加・実行することを特徴としたロボット、ロボット制御システム、およびそのプログラムに関する。
【背景技術】
【0002】
従来、この種のロボットは画像入力装置、人物検出装置、音声入力装置、音声認識装置、音声出力装置、脚部モータ、頭部モータ、行動制御装置などから構成されており、ロボットの動作は行動制御装置に実装される制御プログラムで制御される。
【0003】
図26にこの種のロボットの構成例を示す。図26を参照すると、このロボットはマイクなどの音声入力装置900と、音声入力装置900から入力された音声による単語を認識し、その単語の読みの文字列に変換する音声認識装置901と、音声ファイルをスピーカーなどから出力する音声出力装置902と、障害物までの距離を計測する超音波センサ903と、ロボット本体を移動させる脚部モータ904と、ロボットの頭部を回転させる頭部モータ905と、プログラム制御により動作するデータ処理装置906とから構成されている。
【0004】
図27にこのロボットの制御プログラムのフローチャートを示す。まず、音声入力装置900からの入力の有無を調べる(ステップS10)。音声入力がなければ(ステップS10/NO)、「うろつく」を呼び出す(ステップS11)。音声入力があれば(ステップS10/YES)、「対話」を呼び出す(ステップS12)。
【0005】
図28はうろつく処理のフローチャートである。このプログラムは複数の種類の移動プログラムモジュールと障害物回避プログラムモジュールを持ち、乱数により実行するプログラムモジュールを選択して多様な移動パターンを実現している。
【0006】
まず0から2までの乱数を発生し(ステップT10)、乱数の値によって3つの基本移動プログラムモジュールの一つを選択する(ステップT11、T12、T31、T32、T33)。なお、本明細書ではこのようなロボットの基本動作プログラムモジュールを「シナリオ」と呼ぶ。すなわち、このロボットは3つの移動シナリオを持っており、乱数で一つが選ばれ実行される。各移動シナリオは「前に10cm進む」、「大きく右に旋回」、「大きく左に旋回」がある。次に超音波センサ903からの入力を調べ、前方に障害物があるかどうかを調べる(ステップT16)。障害物が無ければ(ステップT16/NO)、終了する。障害物があれば(ステップT16/YES)、0から2までの乱数を発生し、3つの障害物回避シナリオの一つを選ぶ(ステップT17、T18、T19、T41、T42)。各障害物回避シナリオは「右45度を向く」、「左45度を向く」、「ランダムな方向を向く」である。
【0007】
図29は対話処理のフローチャートである。このプログラムは認識語に応じた応答プログラムを持ち、ユーザーの発話に応じた対話を行う。まず音声認識装置901から認識した単語の読みの文字列を受け取る(ステップU10)。次に各認識語彙に応じた対話シナリオを呼び出す(ステップU11からU16)。対応する対話シナリオが存在しない認識語の場合には誤認識応答シナリオを呼び出す(ステップU17)。各シナリオはデータ処理装置906で実行可能なプログラムであり、C言語などで記述し、データ処理装置が直接実行する場合と、ロボット専用の高級言語で記述し、データ処理装置が持つインタープリタで解釈実行される場合がある。
【0008】
従来のロボットの一例が、特開2000−326274号公報に記載されている。この公報に記載されたロボット制御プログラムは移動制御処理部、人物探索処理部、対話処理部、制御切替部、入力情報記憶部からなる。例えば対話処理部は入力情報が音声認識装置の出力の場合には、認識した単語に応じた音声を音声出力装置から出力する。またこの処理部は識別している人物の好感度を参照して好感度に応じた応答をする。
【0009】
また特開平11−327872号公報には、ネットワークに接続された動物型ロボットにおいて、ネットワークから受信した電子メールを解析し、電子メールの内容に含まれる特定の記号列に基づいて、解析された電子メールの内容を読み上げると共に、効果音を出力し、ロボットの筐体全体または部分の動作を制御する技術が記載されている。
【0010】
また特開2000−75907号公報には、電子メールで操作指示を受信する工業用ロボットに関する技術が記載されている。この技術では製品エージェントはメール手段と実行手段を有し、実行手段はメール手段により受信した電子メールに基づいた操作動作の実行を行う。
【特許文献1】特開2000−326274号公報
【特許文献2】特開平11−327872号公報
【特許文献3】特開2000−75907号公報
【発明の開示】
【発明が解決しようとする課題】
【0011】
しかしながら上記従来技術では、新たな機能をネットワークから受信してロボット制御プログラムに追加できないという問題点が指摘される。その理由は、従来のロボット制御プログラムは新たな機能をネットワークから受信して追加することについて何ら考慮されていないためである。
【0012】
また、特開平11−327872号公報に記載の従来の技術では、ネットワークから受信した電子メールを解析した結果行われる動作は、予めこのロボットに組み込まれているものに限定されており、新たな動作を追加することはできないという問題点が指摘される。
【0013】
また、特開2000−75907号公報に記載の従来の技術では、電子メールで受信できるのは予め製品エージェントに組み込まれている実行手段に対する操作指示であり、新たな実行手段を電子メールで追加することはできないという問題点が指摘される。
【0014】
本発明は、上記問題点に鑑みなされたものであり、ロボットの制御プログラムに新たな機能をネットワークから受信して追加し、実行することができるロボット、ロボット制御システム、およびそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【0015】
かかる目的を達成するため、請求項1記載の発明は、ロボット制御プログラムモジュールを実行するロボットであって、回線から新たなロボット制御プログラムモジュールを受信し、受信した制御プログラムモジュールをロボット内の記録部位に書き込むことを特徴とする。
【0016】
または、請求項2記載の発明は、回線から新たなロボット制御プログラムモジュールを受信する受信手段と、受信した制御プログラムモジュールをロボットに追加する登録手段と、ロボットが最初から持っているロボット制御プログラムモジュールと新たに追加したロボット制御プログラムモジュールとから実行すべきロボット制御プログラムモジュールを選択する選択手段と、選択したロボット制御プログラムモジュールを実行する制御プログラム実行手段と、を有することを特徴とする。
【0017】
または、請求項3記載の発明によれば、請求項2記載のロボットにおいて、受信手段は、回線としてインターネットを用い、電子メールにより制御プログラムモジュールを受信することを特徴とする。
【0018】
または、請求項4記載の発明によれば、請求項2または3記載のロボットにおいて、登録手段により登録された制御プログラムモジュールに含まれ、登録された制御プログラムモジュールの実行時期を決定するための初期化プログラムを、登録時に実行する初期化プログラム実行手段を有することを特徴とする。
【0019】
または、請求項5記載の発明によれば、請求項2から4のいずれか1項に記載のロボットにおいて、登録手段により登録された制御プログラムモジュールを呼び出す音声認識語彙を音声認識辞書に追加する音声認識語彙追加手段を有することを特徴とする。
【0020】
または、請求項6記載の発明によれば、請求項2または3記載のロボットにおいて、受信手段による制御プログラムモジュール受信時に、受信した制御プログラムモジュールを実行する受信プログラム実行手段を有することを特徴とする。
【0021】
または、請求項7記載の発明によれば、請求項6記載のロボットにおいて、受信プログラム実行手段は、受信した制御プログラムモジュール実行後、実行した制御プログラムモジュールを消去することを特徴とする。
【0022】
または、請求項8記載の発明は、ロボット制御プログラムモジュールを実行するロボット制御システムであって、回線から新たなロボット制御プログラムモジュールを受信し、受信した制御プログラムモジュールをロボット内の記録部位に書き込むことを特徴とする。
【0023】
または、請求項9記載の発明は、回線から新たなロボット制御プログラムモジュールを受信する受信手段と、受信した制御プログラムモジュールをロボット制御システムに追加する登録手段と、ロボットが最初から持っているロボット制御プログラムモジュールと新たに追加したロボット制御プログラムモジュールとから実行すべきロボット制御プログラムモジュールを選択する選択手段と、選択したロボット制御プログラムモジュールを実行する制御プログラム実行手段と、を有することを特徴とする。
【0024】
または、請求項10記載の発明によれば、請求項9記載のロボット制御システムにおいて、受信手段は、回線としてインターネットを用い、電子メールにより制御プログラムモジュールを受信することを特徴とする。
【0025】
または、請求項11記載の発明によれば、請求項9または10記載のロボット制御システムにおいて、登録手段により登録された制御プログラムモジュールに含まれ、登録された制御プログラムモジュールの実行時期を決定するための初期化プログラムを、登録時に実行する初期化プログラム実行手段を有することを特徴とする。
【0026】
または、請求項12記載の発明によれば、請求項9から11のいずれか1項に記載のロボット制御システムにおいて、登録手段により登録された制御プログラムモジュールを呼び出す音声認識語彙を音声認識辞書に追加する音声認識語彙追加手段を有することを特徴とする。
【0027】
または、請求項13記載の発明によれば、請求項9または10記載のロボット制御システムにおいて、受信手段による制御プログラムモジュール受信時に、受信した制御プログラムモジュールを実行する受信プログラム実行手段を有することを特徴とする。
【0028】
または、請求項14記載の発明によれば、請求項6記載のロボット制御システムにおいて、受信プログラム実行手段は、受信した制御プログラムモジュール実行後、実行した制御プログラムモジュールを消去することを特徴とする。
【0029】
または、請求項15記載の発明は、ロボット制御プログラムモジュールをコンピュータに実行させるためのプログラムであって、回線から新たなロボット制御プログラムモジュールを受信し、受信した制御プログラムモジュールをロボット内の記録部位に書き込む処理をコンピュータに実行させることを特徴とする。
【0030】
または、請求項16記載の発明は、回線から新たなロボット制御プログラムモジュールを受信する受信処理と、受信した制御プログラムモジュールをロボット制御システムに追加する登録処理と、ロボットが最初から持っているロボット制御プログラムモジュールと新たに追加したロボット制御プログラムモジュールとから実行すべきロボット制御プログラムモジュールを選択する選択処理と、選択したロボット制御プログラムモジュールを実行する制御プログラム実行処理と、をコンピュータに実行させることを特徴とする。
【0031】
または、請求項17記載の発明によれば、請求項16記載のプログラムにおいて、受信処理は、回線としてインターネットを用い、電子メールにより制御プログラムモジュールを受信することを特徴とする。
【0032】
または、請求項18記載の発明によれば、請求項16または17記載のプログラムにおいて、登録処理により登録された制御プログラムモジュールに含まれ、登録された制御プログラムモジュールの実行時期を決定するための初期化プログラムを、登録時に実行する初期化プログラム実行処理をコンピュータに実行させることを特徴とする。
【0033】
または、請求項19記載の発明によれば、請求項16から18のいずれか1項に記載のプログラムにおいて、登録処理により登録された制御プログラムモジュールを呼び出す音声認識語彙を音声認識辞書に追加する音声認識語彙追加処理をコンピュータに実行させることを特徴とする。
【0034】
または、請求項20記載の発明によれば、請求項16または17記載のプログラムにおいて、受信処理による制御プログラムモジュール受信時に、受信した制御プログラムモジュールを実行する受信プログラム実行処理をコンピュータに実行させることを特徴とする。
【0035】
または、請求項21記載の発明によれば、請求項20記載のプログラムにおいて、受信プログラム実行処理は、受信した制御プログラムモジュール実行後、実行した制御プログラムモジュールを消去することを特徴とする。
【発明の効果】
【0036】
第1の効果はロボットに新たな機能を追加し、実行できることである。その理由はネットワークから新たなシナリオを受信し、そのシナリオをロボット制御プログラムに追加し、それを実行できるためである。
【0037】
第2の効果は新たな認識語に応答できるようになることである。その理由はネットワークから、新たなシナリオとそれを呼び出す認識語を受信し、その認識語を音声認識辞書に追加すると同時にそのシナリオをその認識語で実行するように登録できるためである。
【0038】
第3の効果はひとつの認識語に対する応答のバリエーションを増やすことができることである。その理由は一つの認識語に対する応答として、最初からロボット制御プログラムに組み込まれているその認識語で呼び出されるシナリオと、新たにネットワークから受信したその認識語によって実行されるシナリオの両方から、その認識語によって実行されるシナリオを選択できるためである。
【0039】
第4の効果はうろつくなどのロボットの自律行動のパターンのバリエーションを増やすことができることである。その理由は自律行動の基本パターンを実装しているシナリオとして、最初からロボット制御プログラムに組み込まれているシナリオと、新たにネットワークから受信したシナリオの両方から、実行するシナリオを選択できるためである。
【0040】
第5の効果は、ユーザーが望む時刻に自動的に実行される新たな機能を追加できることである。その理由は、ネットワークから新たなシナリオを受信したときに、そのシナリオに含まれている初期化ファイルを実行し、その初期化ファイルがユーザーと対話などを行って実行時刻を設定し、その時刻になったときにそのシナリオを呼び出すためである。
【0041】
第6の効果は、ネットワークから受信時に一回だけ実行されるシナリオに必要な記憶領域を減らすことができることである。その理由は、シナリオ受信時に自動的に実行され、実行後はどこにも登録されずに削除されるシナリオの受信と実行を実現できるように構成されているため、記憶領域を有効に活用することが可能になる。
【発明を実施するための最良の形態】
【0042】
次に、本発明の実施の形態について図面を参照して詳細に説明する。図1を参照すると、本発明の実施の形態は、モデムなどのデータ通信装置1と、マイクなどの音声入力装置2と、前面の障害物を検出するための超音波センサ3と、スピーカーなどの音声出力装置4と、ロボットの頭部を回転させる頭部モータ5と、ロボットの胴体を移動させる脚部モータ6と、プログラム制御により動作するデータ処理装置7と、ディスクなどの記憶装置8とから構成されている。
【0043】
データ処理装置7は行動制御部71と、音声認識語彙追加手段72と、シナリオ登録手段73とを含み、行動制御部71はシナリオ受信手段74と、シナリオ選択手段75と、シナリオ実行手段76と、音声認識手段78とを含む。また、記憶装置8は音声認識辞書81と、シナリオ管理テーブル82と、システムシナリオ記憶部83と、拡張シナリオ記憶部84と、メール記憶部85と、レコード番号記憶部90とを含む。メール記憶部85はシナリオカテゴリ記憶部86と、呼び出し語記憶部87と、シナリオファイル名記憶部88と、ファイル記憶部89とを含む。
【0044】
図2を参照すると、シナリオをロボットに登録するためにシナリオ受信手段が受信する情報(以降はこの情報をシナリオセットと呼ぶ)はシナリオ制御ファイル102と、シナリオファイル(実行ファイル)103と、を含む。また、シナリオセットは、1個以上のデータファイル(群)104を含んでもよい。
【0045】
シナリオファイル103はシナリオのプログラム本体であり、データ処理装置7が直接実行できるバイナリー形式またはインタープリタで実行される中間言語形式で記述されている。
【0046】
データファイル群104はシナリオファイル103が利用する音声ファイルなどのデータファイルである。
【0047】
シナリオ制御ファイル102はシナリオカテゴリ定義部201、呼び出し語定義部202、シナリオファイル名定義部203とから構成されている。
【0048】
シナリオカテゴリ定義部201にはそのシナリオの種類(カテゴリ)を表す値が記述されている。この実施の形態では一例としてうろつくシナリオのカテゴリを0、障害物回避シナリオのカテゴリを1、対話シナリオのカテゴリを2としている。
【0049】
呼び出し語定義部202には、そのシナリオセットに格納されているシナリオを呼び出すための語彙(呼び出し語)が記述されている。そのシナリオが音声で呼び出されない場合には呼び出し語定義部202には空の文字列が格納されている。
【0050】
シナリオファイル名定義部203にはそのシナリオセットに格納されているシナリオファイル名、すなわちシナリオファイル103のファイル名が記述されている。
【0051】
図3を参照するとシナリオ管理テーブル82は一つのシナリオに対して1レコードからなり、各レコードはシナリオカテゴリフィールド301、呼び出し語フィールド302、シナリオファイル名フィールド303の3つのフィールドから構成される。
【0052】
シナリオ受信手段74はデータ通信装置1によりインターネット、デジタル放送などのネットワーク(回線)からシナリオセットを受信しメール記憶部85に記憶する。
【0053】
音声認識語彙追加手段72は呼び出し語記憶部87に記憶されている語彙を音声認識辞書81に登録する。
【0054】
シナリオ登録手段73は、シナリオ管理テーブル82の空きレコードを検索し、そのレコードのシナリオカテゴリフィールド301にシナリオカテゴリ記憶部86に記憶されているシナリオカテゴリ値を格納し、そのレコードの呼び出し語フィールド302に呼び出し語記憶部87に記憶されている呼び出し語を格納し、そのシナリオファイル名フィールド303にシナリオファイル名記憶部88に記憶されているシナリオの実行ファイル名を格納する。次にファイル記憶部89に記憶されているシナリオファイル103と、データファイル群104とを、拡張シナリオ記憶部84に格納する。
【0055】
音声認識手段78は音声入力装置2に入力された音声(認識語彙)を音声認識辞書81の各語彙と比較し、一致する語彙を検索する。
【0056】
シナリオ選択手段75はシナリオ管理テーブル82から、与えられたシナリオカテゴリまたは認識語彙と一致するレコードを検索し、そのレコード番号をレコード番号記憶部90に格納する。
【0057】
シナリオ実行手段76は、シナリオ管理テーブル82の、レコード番号記憶部90で指定されるレコードの、シナリオファイル名フィールド303で指定されたファイル名のシナリオを、システムシナリオ記憶部83または拡張シナリオ記憶部84から検索して実行する。
【0058】
次に、図4のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。図4によると、シナリオ受信手段74はデータ通信装置1によりネットワークに接続し、この受信すべきシナリオセットがあるかどうかを調べる(ステップA1)。シナリオセットが存在すれば(ステップA1/YES)、シナリオ受信手段74によりシナリオセットを受信する(ステップA2)。
【0059】
シナリオ受信手段74は、例えば電子メールを使ってシナリオセットをネットワークから受信する。この場合には、シナリオ受信手段74はインターネット上のメールサーバーに接続し、そのロボット宛の電子メールを受信する。この動作は通常のインターネットメールの受信処理と同じであるので詳細は省略する。また別の例として、シナリオ受信手段74がデータ放送を使ってシナリオセットをネットワーク(デジタル放送)から受信する実施例も考えられる。この例でのシナリオ受信手段74の動作は通常のデジタル放送受信機のデータ放送受信の動作と同じであるため、詳細は省略する。また、シナリオ受信手段74は、アナログ放送によるデータ通信路を用いてシナリオセットを受信してもよい。シナリオ受信手段74は、アナログセット放送を用いて受信する場合、アナログ放送におけるVBI期間を利用するとしてよく、この場合のシナリオ受信手段74の動作は、通常のVBI期間を利用した受信処理と同様であるので詳細は省略する。さらに別の例としては、シナリオ受信手段74がインターネット上のftpサーバーからシナリオセットを受信する実施例もある。この場合のシナリオ受信手段74の動作は通常のftp受信処理と同じであるので詳細は省略する。また、シナリオ受信手段74は、httpに従ってシナリオセットを受信するとしてもよく、この場合のシナリオ受信手段74の動作は、通常のhttp受信処理と同様であるので詳細は省略する。
【0060】
次にこのシナリオセットにシナリオ制御ファイル102が含まれているかを調べる(ステップA3)。含まれていれば(ステップA3/YES)、受信した情報はシナリオセットであり、シナリオ制御ファイル102のシナリオカテゴリ定義部201に記述されているシナリオカテゴリ値をシナリオカテゴリ記憶部86に格納し、呼び出し語定義部202に記述されている呼び出し語を呼び出し語記憶部87に格納し、シナリオファイル名定義部203に記述されているシナリオの実行ファイル名をシナリオファイル名記憶部88に格納する(ステップA5)。次にこのシナリオセットに含まれている、シナリオの実行ファイルであるシナリオファイル103と、データファイル群104とをファイル記憶部89に格納する(ステップA6)。次にシナリオ登録手段73を呼び出す(ステップA7)。次に音声認識語彙追加手段72を呼び出す(ステップA12)。次にファイル記憶部89の内容を消去する(ステップA13)。
【0061】
シナリオ制御ファイルが含まれていなければ(ステップA3/NO)、受信した情報はシナリオセットではないので、その情報に応じた処理を行う(ステップA8)。例えば、シナリオセットを電子メールで受信する実施例においては、そのメールが通常の電子メールであった場合にこのステップが実行され、例えばそのメールを音声合成などにより音声出力装置4に出力する。
【0062】
受信すべきシナリオセットがない場合には(ステップA1/NO)、音声入力装置2からの音声入力があるかを調べ(ステップA9)、音声入力が無ければ(ステップA9/NO)、うろつく処理を呼び出す(ステップA10)。音声入力があれば(ステップA9/YES)、対話処理を呼び出す(ステップA11)。
【0063】
次にシナリオ登録手段73の動作を図5のフローチャートを参照して説明する。図5によると、シナリオ登録手段73はシナリオ管理テーブル82から空きレコードを検索し(ステップB4)、そのレコード番号をレコード番号記憶部90に格納し(ステップB5)、そのレコードのシナリオカテゴリフィールドにシナリオカテゴリ記憶部86に記憶されているシナリオカテゴリ値を格納する(ステップB6)。さらにシナリオ登録手段は、シナリオ管理テーブル82の、レコード番号記憶部90で指示されるレコード番号のレコードの、呼び出し語フィールド302に呼び出し語記憶部87に記憶されている呼び出し語を格納し、シナリオファイル名フィールド303にシナリオファイル名記憶部88に記憶されているシナリオの実行ファイル名を格納する(ステップB7)。次にファイル記憶部89に記憶されている、シナリオファイル103とデータファイル群104とを拡張シナリオ記憶部84に格納する(ステップB8)。
【0064】
次に音声認識語彙追加手段72の動作を図10のフローチャートを参照して説明する。図10によると、音声認識語彙追加手段72は呼び出し語記憶部87に記憶された呼び出し語が空文字列かどうかを調べ、空文字列であれば(ステップG1/YES)、処理を終了する。空文字列でない場合には(ステップG1/NO)、音声認識辞書81にすでに呼び出し語記憶部87に記憶された呼び出し語が登録されているかどうかを検索する(ステップG2)。すでに登録されている場合には(ステップG3/YES)、処理を終える。未登録の場合には(ステップG3/NO)、その呼び出し語を音声認識辞書81に追加する(ステップG4)。
【0065】
次にうろつく処理の動作を図6のフローチャートを参照して説明する。図6によると、検索カテゴリの値をうろつくシナリオを意味する0に設定する(ステップC1)。次にシナリオ選択手段75を呼び出す(ステップC2)。次にシナリオ実行手段76を呼び出す(ステップC3)。次に超音波センサ3を用いて前方に障害物があるかを調べる(ステップC4)。障害物が無い場合には(ステップC4/NO)、うろつく処理を終了する。障害物がある場合には(ステップC4/YES)、検索カテゴリ値を障害物回避シナリオを意味する1に設定する(ステップC5)。次にシナリオ選択手段75を呼び出す(ステップC6)。次にシナリオ実行手段76を呼び出す(ステップC7)。そして再び超音波センサ3を用いて前方に障害物があるかを調べる処理に戻る(ステップC4)。
【0066】
次に対話処理の動作を図7のフローチャートを参照して説明する。図7によると、音声認識手段78は音声入力装置2から入力された音声を音声認識辞書81の各語彙と比較し、一致する語彙を検索する(ステップD1)。一致する語彙が無い場合には(ステップD2/NO)、「そんな言葉は知らないよ」等の音声応答を行う(ステップD3)。一致する語彙が存在する場合には(ステップD2/YES)、その語彙を認識結果記憶部91に記憶し(ステップD4)、検索カテゴリの値を−1に設定して(ステップD5)、シナリオ選択手段75を呼び出す(ステップD6)。次にシナリオ実行手段76を呼び出す(ステップD7)。
【0067】
次にシナリオ選択手段75の動作を図8のフローチャートを参照して説明する。図8によると、シナリオ選択手段75は与えられた検索カテゴリの値が−1かどうかを調べる(ステップE1)。検索カテゴリの値が−1ではない場合には(ステップE1/NO)、シナリオ管理テーブル82の、シナリオカテゴリフィールド301の値が指定された検索カテゴリと一致するレコード群から一つのレコードを選択し(ステップE2)、選択したレコード番号をレコード番号記憶部90に記憶する(ステップE4)。与えられた検索カテゴリの値が−1の場合には(ステップE1/YES)、シナリオ管理テーブル82の、呼び出し語フィールド302の値が記憶された認識語と一致するレコード群から一つのレコードを選択し(ステップE3)、選択したレコード番号をレコード番号記憶部90に記憶する(ステップE4)。
【0068】
なお、対話シナリオ処理では検索カテゴリの値を−1としてシナリオ選択手段75を呼ぶため、全てのカテゴリのシナリオが検索対象となる。対話シナリオから実行する必要が無いシナリオでは、シナリオ制御ファイルの呼び出し語定義部に空文字列を設定しておくことで、そのシナリオは対話シナリオからは実行されないように出来る。逆に同一のシナリオをうろつく処理でも対話処理でも使えるようにするためには、そのシナリオの制御ファイルのシナリオカテゴリ定義部に0を設定し、かつ呼び出し語定義部に呼び出し語を設定しておく。
【0069】
次にシナリオ実行手段76の図9のフローチャートを参照して説明する。図9によると、シナリオ実行手段は、シナリオ管理テーブル82の、レコード番号記憶部90で指示されるレコードのシナリオファイル名フィールド303に格納されているシナリオファイル名を取り出す(ステップF1)。次に拡張シナリオ記憶部84からこのファイル名のファイルを検索する(ステップF2)。ファイルが存在する場合には(ステップF3/YES)、そのファイルを実行する(ステップF5)。存在しない場合には(ステップF3/NO)、システムシナリオ記憶部83からそのファイル名のファイルを検索し(ステップF4)、それを実行する(ステップF5)。
【0070】
次に、具体的な実施例を用いて本実施の形態の動作を説明する。図11に示すように、この実施例のロボットの音声認識辞書81には予め「おはよう」、「TVつけて」、「今何時」の3単語が登録されている。システムシナリオ記憶部83には予め「挨拶」、「TV制御」、「時計」、「直進する」、「蛇行しながら前進」、「右に回転する」、「左に回転する」というファイル名のシナリオ(プログラム)が格納されている。シナリオ管理テーブル82にはこれらのシナリオが予め登録されている。拡張シナリオ記憶部84は空である。「挨拶」というファイル名のシナリオは操作者に挨拶する音声応答を行うプログラムであり、「TV制御」はTVに向かって赤外線発光部(図示せず)からTVの電源をONにするリモコンコードを送信するプログラムであり、「時計」はタイマー装置(図示せず)から現在の時刻を取得し、その時刻を音声で発話するプログラムである。「直進する」、「蛇行しながら前進」は、それぞれ脚部モータ6を用いて、ロボットを一定距離直進させるプログラムと、ロボットを蛇行させながら一定距離直進させるプログラムである。「右に回転する」、「左に回転する」は、それぞれ脚部モータ6を用いて、ロボットの方向を右に回転させるプログラムと、左に回転させるプログラムである。
【0071】
まず、受信すべきシナリオセットがない状態でロボットを操作したときの動作を説明する。なお、この例ではシナリオ受信手段としてインターネットメールを使ったときの動作を説明する。ステップA1では受信メールの有無を確認する。メールは無いのでステップA9に進む。音声入力装置2に「おはよう」という語彙を与えると対話処理が呼び出され(ステップA9、A11)、対話処理では音声認識手段78がこの語彙を音声認識辞書81から検索する(ステップD1)。この語彙は音声認識辞書81に登録されているので検索は成功し(ステップD2)、この語彙が記憶され(ステップD4)、検索カテゴリを−1としてシナリオ選択手段75が呼び出される(ステップD5、D6)。シナリオ選択手段75は検索カテゴリが−1であるのでこの認識語と一致する呼び出し語を持ったレコードをシナリオ管理テーブル82から検索する。この例では一致するものはレコード5だけなので、それがレコード番号記憶部90に記憶される(ステップE1、E3、E4)。次にシナリオ実行手段76が呼び出され(ステップD7)、シナリオ管理テーブル82からレコード番号5のレコードのシナリオファイル名フィールド303に格納されたファイル名「挨拶」を取り出す(ステップF1)。このファイル名のファイルがシステムシナリオ記憶部83に存在するのでそのファイルが実行される(ステップF2、F3、F4)。この結果、操作者に対する挨拶が行われる。
【0072】
音声入力装置2からの入力がないとうろつく処理が呼び出され(A9、A10)、うろつく処理では、検索カテゴリを0、すなわちうろつくシナリオのカテゴリを指定してシナリオ選択手段75が呼び出される(ステップC1、C2)。シナリオ選択手段75は検索カテゴリが−1ではないので与えられた検索カテゴリと一致するシナリオカテゴリを持ったレコードをシナリオ管理テーブル82から検索し、この具体例ではレコード番号1と2のレコードが一致するのでどちらかを乱数で選ぶ。例えば2が選ばれたとする。これがレコード番号記憶部90に記憶する(ステップE1、E2、E4)。次にシナリオ実行手段76が呼び出される(ステップD7)、シナリオ実行手段76はシナリオ管理テーブル82からレコード番号2のレコードの、シナリオファイル名フィールド303に格納されたファイル名「蛇行しながら直進」を取り出す(ステップF1)。このファイル名のファイルはシステムシナリオ記憶部83に存在するのでそのファイルが実行される(ステップF2、F3、F4、F5)。この結果、ロボットは蛇行しながら前進する。障害物があれば、同様に「右に回転する」シナリオ、「左に回転する」シナリオのいずれかが検索され実行される。うろつくシナリオが何度も呼ばれると、乱数で「直進する」シナリオと「蛇行しながら前進」シナリオがランダムに選ばれるので、ロボットは蛇行したり直進したりしながら移動動作を行うことになる。同様に障害物があったときには乱数で「右に回転する」シナリオ、「左に回転する」シナリオのいずれかが選ばれ、障害物からの脱出を試みる。
【0073】
また、音声入力装置2に「ダンスして」という語彙を与えた場合には、同様に対話処理が呼び出され(ステップA1、A9、A11)、対話処理では音声認識手段78がこの語彙を音声認識辞書81から検索する(ステップD1)。この語彙は音声認識辞書81には登録されていないので検索は失敗し(ステップD2)、「そんな言葉は知らないよ」というエラー応答を行われる(ステップD3)。さて、例えばダンスをするシナリオがインターネットからこのロボットに電子メールで送信されたとする。このシナリオセットは図12に示すように空のメール本文と、シナリオ制御ファイルと、「ダンス実行」という名称のシナリオファイルと、「ダンス伴奏」の楽曲ファイルから構成されている。シナリオ制御ファイルのシナリオカテゴリ定義部201には対話シナリオを意味する値2が、呼び出し語定義部202にはこのシナリオを呼び出す認識語としてこのシナリオ作成者が選んだ「ダンスして」という文字列が、シナリオファイル名定義部203には「ダンス実行」という文字列が格納されている。「ダンス実行」というファイル名のファイルは、頭部モータ5と脚部モータ6を用いて、ロボットの頭や足を動かし、同時に「ダンス伴奏」というファイルを用いて音声出力装置4から楽曲を出力してダンスを踊るプログラムである。
【0074】
図4のフローチャートを参照すると、このシナリオセットがメールとしてメールサーバーに対して送信されると、シナリオ受信手段によりシナリオセットが受信される(ステップA1、A2)。このシナリオセットにはシナリオ制御ファイル102が含まれているのでシナリオ制御ファイル102のシナリオカテゴリ定義部201に記述されているシナリオカテゴリ値である2がシナリオカテゴリ記憶部86に格納され、呼び出し語定義部202に記述されている呼び出し語である「ダンスして」が呼び出し語記憶部87に格納され、シナリオファイル名定義部203に記述されているシナリオの実行ファイル名である「ダンス実行」がシナリオファイル名記憶部88に格納される(ステップA5)。次にこのシナリオセットに含まれているシナリオファイル103とデータファイル群104、すなわち「ダンス実行」ファイルと「ダンス伴奏」ファイルがファイル記憶部89に格納される(ステップA6)。次にシナリオ登録手段73を呼び出される(ステップA7)。
【0075】
図5によると、シナリオ登録手段73はシナリオ管理テーブル82から空きレコードを検索し(ステップB4)、そのレコード番号、すなわち8をレコード番号記憶部90に格納し(ステップB5)、そのレコードのシナリオカテゴリフィールドにシナリオカテゴリ記憶部86に記憶されているシナリオカテゴリ値である2を格納する(ステップB6)。さらにシナリオ登録手段73は、シナリオ管理テーブル82のレコード8の呼び出し語フィールド302に呼び出し語記憶部87に記憶されている呼び出し語「ダンスして」を格納し、シナリオファイル名フィールド303にシナリオファイル名記憶部88に記憶されているシナリオの実行ファイル名「ダンス実行」を格納する(ステップB7)。さらにファイル記憶部89に記憶されている「ダンス実行」ファイルと「ダンス伴奏」ファイルを拡張シナリオ記憶部84に格納する(ステップB8)。
【0076】
再び図4を参照すると、音声認識語彙追加手段72が呼び出され(ステップA12)、音声認識語彙追加手段72は呼び出し語記憶部87に記憶された呼び出し語「ダンスして」は空文字列ではないので音声認識辞書81にすでにこの呼び出し語が登録されているかどうかを検索する(ステップG1、G2)。この呼び出し語はまだ登録されていないので、音声認識辞書81に追加する(ステップG3、G4)。
【0077】
この結果、図13に示すように、音声認識辞書81には「ダンスして」の語彙が追加され、シナリオ管理テーブル82にはメールで受信した「ダンス実行」シナリオの情報が追加され、拡張シナリオ記憶部84には「ダンス実行シナリオ」と、このシナリオが利用する「ダンス伴奏」ファイルが追加される。ここで再び音声入力装置2に「おはよう」という語彙を与えるとこの語彙に対応するシナリオは追加されていないので再び「挨拶シナリオ」が実行される。一方、ここで音声入力装置2に「ダンスして」という語彙を与えると、今度はこの語彙が音声認識辞書81に登録されているので検索は成功し(ステップD2)、以下ステップD4、D5を経てシナリオ選択手段75が呼び出される。シナリオ選択手段75は「ダンスして」という呼び出し語と一致する呼び出し語を持ったレコードをシナリオ管理テーブル82から検索するが、この呼び出し語はレコード8に追加されているので、シナリオ実行手段76はこのレコードからシナリオファイル名「ダンス実行」を取り出す。このファイル名のファイルが拡張シナリオ記憶部84に存在するので「ダンス実行」ファイルが取り出され実行される。この結果、新たにメールで受信、追加された「ダンス実行」が実行され、従来は実行できなかったダンスの動作が可能になる。
【0078】
ここで、さらに電子メールで、図14のメールが受信されたとする。このメールは「おはよう」という呼び出し語を持ち、「挨拶2」シナリオを持っている。このシナリオは前記「挨拶」シナリオとは異なる応答をするシナリオである。この結果、図15に示すように、シナリオ管理テーブル82には「挨拶2」シナリオの情報が追加され、拡張シナリオ記憶部84には「挨拶2」シナリオが追加される。「おはよう」という認識語はすでに音声認識辞書81に登録されているので音声認識辞書81の内容は変わらない。
【0079】
ここで再び「おはよう」と言うと、シナリオ選択手段75はシナリオ管理テーブル82には呼び出し語フィールド302の値が「おはよう」のレコードが2つあるので、どちらかを選択する。この実施例では乱数で選択が行われる。この結果、2つのシナリオ、すなわち「挨拶」シナリオと「挨拶2」シナリオのどちらかが乱数で選択され、それがシナリオ実行手段により実行されるようになる。
【0080】
同様に、さらに電子メールで、シナリオカテゴリが0、シナリオファイル名が「後退する」というシナリオセットが送られ組み込まれたとする。このシナリオファイルはロボットの向きを後ろ向きに変えて一定距離進むシナリオとする。この結果、うろつく処理から乱数で従来の「直進する」シナリオと「蛇行しながら前進」シナリオに加えて「後退する」シナリオも選択されるようになるので、ロボットの移動動作は従来の蛇行したり直進したりするだけでなく、時々後退する動作も含まれるようになる。
【0081】
次に、本実施の形態の効果について説明する。本実施の形態では、ネットワークからシナリオを受信し、そのシナリオを追加できるように構成されているため、ロボットに新たなシナリオを簡単に追加することができる。
【0082】
また、本実施の形態では、さらに、ネットワークから受信した新たなシナリオを新たな認識語で呼び出すように構成されているため、追加したシナリオの呼び出しを柔軟に設定することができる。
【0083】
また、本実施の形態では、さらに同一のカテゴリのシナリオに新たなシナリオを追加することができるように構成されているため、予めロボットが具備している動作のバリエーションを増やすことができる。
【0084】
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。図16を参照すると、本発明の第2の実施の形態は、図1に示された第1の実施の形態におけるデータ処理装置の構成に対して、シナリオ登録手段73とシナリオ選択手段75がシナリオ登録手段(2)405とシナリオ選択手段(2)401に置き換わり、新たに初期化シナリオ実行手段402と、タイマー設定手段403と、タイマー参照手段404とが追加されている点が異なる。さらに図1に示された第1の実施の形態における記憶装置の構成に対して、シナリオ管理テーブル82がシナリオ管理テーブル(2)501に置き換わり、さらにメール記憶部に初期化ファイル名記憶部502が追加されている点が異なる。
【0085】
図17を参照すると、本発明の第2の実施の形態におけるシナリオセットの構成は図2に示された第1の実施の形態におけるシナリオセットの構成に対して、さらに初期化ファイル105を持つことと、シナリオ制御ファイルに初期化ファイル名定義部204とを持つ点で異なる。
【0086】
図18を参照すると、本発明の第2の実施の形態におけるシナリオ管理テーブル(2)501の構成は、図3に示された第1の実施の形態におけるシナリオ管理テーブル82に対して、さらに実行時刻フィールド304を持つ点で異なる。
【0087】
初期化ファイル実行手段402は初期化ファイル名記憶部502に格納されているファイル名の初期化ファイルをファイル記憶部89から取り出して実行する。
【0088】
タイマー設定手段403はシナリオファイル、初期化ファイルから呼び出すことができるライブラリの形を取っており、指定された時刻をシナリオ管理テーブル(2)501の、レコード番号記憶部90で指示されるレコードの実行時刻フィールド304に格納する。
【0089】
タイマー参照手段404はシナリオ管理テーブル(2)501の各レコードの実行時刻フィールド304に記憶されている実行時刻と現在の時刻を比較し、同一のものがあればそのレコード番号をレコード番号記憶部90に記憶し、同一のものがなければレコード番号記憶部90に−1を記憶する。
【0090】
シナリオ登録手段(2)405は、シナリオ管理テーブル(2)501の空きレコードを検索し、そのレコードのシナリオカテゴリフィールドにシナリオカテゴリ記憶部86に記憶されているシナリオカテゴリ値を格納し、そのレコードの呼び出し語フィールド302に呼び出し語記憶部87に記憶されている呼び出し語を格納し、そのシナリオファイル名フィールド303にシナリオファイル名記憶部88に記憶されているシナリオの実行ファイル名を格納する。このレコードの実行時刻フィールド304には「未設定」を表す値(例えば−1)を登録する。ファイル記憶部89に記憶されているシナリオファイル103と、データファイル群104とを拡張シナリオ記憶部84に格納する。
【0091】
シナリオ選択手段(2)401はシナリオ管理テーブル(2)501から、与えられたシナリオカテゴリまたは認識語彙と対応するシナリオファイルを検索し、そのレコード番号をレコード番号記憶部90に格納する。シナリオ選択手段(2)401の動作はシナリオ管理テーブル82ではなくシナリオ管理テーブル(2)501が使われる点以外は図8に示した第1の実施の形態のシナリオ選択手段と同じである。
【0092】
次に、図19のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。図19によると、シナリオ受信手段74はデータ通信装置1によりネットワークに接続し、このロボット宛のシナリオセットが存在するかを調べる(ステップH1)。受信すべきシナリオセットがあれば(ステップH1/YES)、それを受信する(ステップH2)。次にこのシナリオセットにシナリオ制御ファイル106が含まれているかを調べる(ステップH3)。含まれていれば(ステップH3/YES)、シナリオ制御ファイル106のシナリオカテゴリ定義部201に記述されているシナリオカテゴリ値をシナリオカテゴリ記憶部86に格納し、呼び出し語定義部202に記述されている呼び出し語を呼び出し語記憶部87に格納し、初期化ファイル名定義部204に記述されているシナリオの初期化ファイル名を初期化ファイル名記憶部502に格納し、シナリオファイル名定義部203に記述されているシナリオの実行ファイル名をシナリオファイル名記憶部88に格納する(ステップH5)。次にこのシナリオセットに含まれているシナリオファイル103と、初期化ファイル105と、データファイル群104とをファイル記憶部89に格納する(ステップH6)。次にシナリオ登録手段(2)405を呼び出す(ステップH7)。次に音声認識語彙追加手段72を呼び出す(ステップH12)。次に初期化ファイル実行手段402を呼び出す(ステップH23)。次にファイル記憶部89の内容を消去する(ステップH13)。
【0093】
シナリオ制御ファイルが含まれていなければ(ステップH3/NO)、受信した情報はシナリオセットではないので、その情報に応じた処理を行う(ステップH8)。受信すべきシナリオセットがない場合には(ステップH1/NO)、音声入力装置2からの音声入力があるかを調べ(ステップH9)、音声入力が無ければ(ステップH9/NO)、タイマー参照手段404を呼び出す(ステップH20)。レコード番号記憶部90の値が−1でなければ(ステップH21/NO)、シナリオ実行手段76を呼び出す(ステップH22)。−1であれば(ステップH21/YES)、うろつく処理を呼び出す(ステップH10)。音声入力があれば(ステップH9/YES)、対話処理を呼び出す(ステップH11)。
【0094】
次に、シナリオ登録手段(2)405の動作を図20のフローチャートを参照して説明する。図20によると、シナリオ登録手段(2)405はシナリオ管理テーブル(2)501から空きレコードを検索し(ステップJ4)、そのレコード番号をレコード番号記憶部90に格納し(ステップJ5)、そのレコードのシナリオカテゴリフィールドにシナリオカテゴリ記憶部86に記憶されているシナリオカテゴリ値を格納する(ステップJ6)。さらに、シナリオ登録手段(2)405は、シナリオ管理テーブル(2)501の、レコード番号記憶部90で指示されるレコード番号のレコードの呼び出し語フィールド302に呼び出し語記憶部87に記憶されている呼び出し語を格納し、シナリオファイル名フィールド303にシナリオファイル名記憶部88に記憶されているシナリオの実行ファイル名を格納する(ステップJ7)。次に、ファイル記憶部89に記憶されているシナリオファイル103と、データファイル群104とを拡張シナリオ記憶部84に格納する(ステップJ8)。実行時刻フィールド304には「未設定」を表す値(例えば−1)を格納する(ステップJ9)。
【0095】
次に、初期化ファイル実行手段402の動作を図21のフローチャートを参照して説明する。図21によると、初期化ファイル実行手段402は初期化ファイル名記憶部502に記憶されているファイル名のファイルをファイル記憶部89から取り出し実行する(ステップK1)。初期化ファイルの内容はデータ処理装置7により実行可能な任意のプログラムである。通常このプログラムはそれを含むシナリオセットの実行ファイルをどの時刻に実行するかをユーザーと音声認識などを用いて対話して決定する処理を含んでいる。決定した時刻はその時刻を引数としてタイマー設定手段403を呼び出すことで登録する(ステップK2)。
【0096】
図22を参照すると、タイマー設定手段403は引数として渡された時刻をシナリオ管理テーブル(2)501の、レコード番号記憶部90で指示されるレコードの実行時刻フィールド304に格納する(ステップL1)。なお、初期化ファイルと同様に、実行ファイルにも、ユーザとの対話などにより実行ファイルの実行時刻を決定するプログラムが含まれているとしてもよい。実行ファイルに上記のプログラムが含まれているとした場合、タイマー設定手段403は初期化ファイルだけでなく、実行ファイルからも呼び出すことが出来る。すなわち、実行ファイルの実行中に再度ユーザーと音声認識などを用いた対話により次の実行時刻を決定し、その時刻を引数としてタイマー設定手段403を呼び出すことにより、次回のそのシナリオの実行時刻を変えることができる。
【0097】
次に、タイマー参照手段404の動作を図23のフローチャートを参照して説明する。図23によると、タイマー参照手段404はシナリオ管理テーブル(2)501から、実行時刻フィールドの値が現在の時刻と一致するレコードを検索する(ステップM1)。一致するレコードがあれば(ステップM2/YES)、そのレコード番号をレコード番号記憶部90に格納する(ステップM3)。一致するレコードが存在しない場合には(ステップM2/NO)、レコード番号記憶部90に−1を記憶する(ステップM4)。なお、特定の時刻に自動的に実行する必要がないシナリオでは、初期化ファイルがタイマー設定手段を呼び出さないように作成する。この場合にはシナリオ管理テーブル(2)501の、そのシナリオに対応するレコードの実行時刻フィールドはシナリオ登録手段(2)405により−1に設定されたままになり、現在時刻と決して一致しないため、タイマー参照手段404がそのレコード番号を現在レコード記憶部に設定することは起こらず、そのシナリオが特定の時刻に自動的に実行されることはなくなる。
【0098】
本実施の形態におけるうろつく処理と、対話処理とは、第1の実施の形態の動作と同じである(図6、図7)。また 本実施の形態における他の手段は、第1の実施の形態ではシナリオ管理テーブル82を使うのに対して、シナリオ管理テーブル(2)501を使う点が異なるだけである。
【0099】
次に、本実施の形態の効果について説明する。本実施の形態では、第1の実施例の効果に加えて、ユーザーと対話などを行って実行時刻を設定し、その時刻になったときに自動的に実行される新たなシナリオを追加できるように構成されているため、ある時刻になったときに自動的に実行を開始することが必要な新機能を簡単に追加することができる。
【0100】
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。図24を参照すると、本発明の第3の実施の形態は、図1に示された第1の実施の形態におけるデータ処理装置の構成に対して、シナリオ登録手段73がシナリオ登録手段(3)601に置き換わっている点が異なる。第3の実施の形態におけるシナリオ制御ファイルの構造そのものは図2に示される第1の実施の形態と同じであるが、第3の実施の形態においてはさらにシナリオカテゴリ定義部201に0、1、2に加えて3を記述することができる。シナリオカテゴリが3の場合、そのシナリオはシナリオ管理テーブル82と拡張シナリオ記憶部84に登録されずに、そのシナリオセットの受信時に一度だけ実行され、実行後は破棄される。
【0101】
この処理はシナリオ登録手段(3)601で実現されており、以下に図25を参照してシナリオ登録手段(3)601の動作を説明する。図25を参照すると、シナリオ登録手段(3)601はシナリオカテゴリ記憶部86に記憶されているシナリオカテゴリが3であるかどうかを調べる(ステップN1)。シナリオカテゴリが3以外であれば(ステップN1/NO)、ステップB4に移る。ステップB4以降の動作は第1の実施の形態と同じであるので説明は省略する。シナリオカテゴリが3の場合(ステップN1/YES)、シナリオファイル名記憶部88に記憶されているシナリオファイル名のシナリオファイル103をファイル記憶部89から取り出し実行する(ステップN2)。
【0102】
このように、第3の実施の形態では、第1の実施の形態の動作に加え、シナリオ受信時に自動的に実行され、実行後はどこにも登録されないシナリオの受信と実行を実現できるように構成されているため、記憶領域を有効に活用することが可能になる。さらに、第3の実施の形態ではシナリオセットの受信後、即時にそのシナリオを実行できるように構成されているため、ユーザーからの発話なしに確実に実行できるシナリオをロボットに送信することが可能になる。特に、ロボットに広告に係るシナリオなどを実行させる場合、ユーザの発話を必要とせずにユーザに広告内容を通知し、広告効果を向上させることが可能となる。
【産業上の利用可能性】
【0103】
本発明は、ロボット、ロボット制御システム、およびそのプログラムに関し、特に、ロボットに接続されたネットワークを介して新たな制御プログラムモジュールを受信し、追加・実行することを特徴としたロボット、ロボット制御システム、およびそのプログラムに関する。
【図面の簡単な説明】
【0104】
【図1】本発明の第1の実施の形態の構成を示すブロック図である。
【図2】本発明の第1の実施の形態のシナリオセットとシナリオ制御ファイルである。
【図3】本発明の第1の実施の形態のシナリオ管理テーブルである。
【図4】本発明の第1の実施の形態の全体の動作を示す流れ図である。
【図5】本発明の第1の実施の形態のシナリオ登録手段の動作を示す流れ図である。
【図6】本発明の第1の実施の形態のうろつく処理の動作を示す流れ図である。
【図7】本発明の第1の実施の形態の対話処理の動作を示す流れ図である。
【図8】本発明の第1の実施の形態のシナリオ選択手段の動作を示す流れ図である。
【図9】本発明の第1の実施の形態のシナリオ実行手段の動作を示す流れ図である。
【図10】本発明の第1の実施の形態の音声認識語彙追加手段の動作を示す流れ図である。
【図11】本発明の第1の実施の形態の動作の具体的な実施例の音声認識辞書、シナリオ管理テーブル、システムシナリオ記憶部、拡張シナリオ記憶部の内容である。
【図12】本発明の第1の実施の形態のシナリオセットとシナリオ制御ファイルの内容である。
【図13】本発明の第1の実施の形態における、シナリオ登録後の音声認識辞書、シナリオ管理テーブル、拡張シナリオ記憶部の内容である。
【図14】本発明の第1の実施の形態のシナリオセットとシナリオ制御ファイルの内容である。
【図15】本発明の第1の実施の形態のシナリオ登録後の音声認識辞書、シナリオ管理テーブル、拡張シナリオ記憶部の内容である。
【図16】本発明の第2の実施の形態の構成を示すブロック図である。
【図17】本発明の第2の実施の形態のシナリオセットとシナリオ制御ファイルである。
【図18】本発明の第2の実施の形態のシナリオ管理テーブルである。
【図19】本発明の第2の実施の形態の全体の動作を示す流れ図である。
【図20】本発明の第2の実施の形態のシナリオ登録手段の動作を示す流れ図である。
【図21】本発明の第2の実施の形態の初期化ファイル実行手段の動作を示す流れ図である。
【図22】本発明の第2の実施の形態のタイマー設定手段の動作を示す流れ図である。
【図23】本発明の第2の実施の形態のタイマー参照手段の動作を示す流れ図である。
【図24】本発明の第3の実施の形態の構成を示すブロック図である。
【図25】本発明の第3の実施の形態のシナリオ登録手段の動作を示す流れ図である。
【図26】従来例の構成を示すブロック図である。
【図27】従来例の動作を示す流れ図である。
【図28】従来例の動作を示す流れ図である。
【図29】従来例の動作を示す流れ図である。
【符号の説明】
【0105】
1 データ通信装置
2 音声入力装置
3 超音波センサ
4 音声出力装置
5 頭部モータ
6 脚部モータ
7、60 データ処理装置
71 行動制御部
72 音声認識語彙追加手段
73 シナリオ登録手段
74 シナリオ受信手段
75 シナリオ選択手段
76 シナリオ実行手段
78 音声認識手段
8 記憶装置
81 音声認識辞書
82 シナリオ管理テーブル
83 システムシナリオ記憶部
84 拡張シナリオ記憶部
85 メール記憶部
86 シナリオカテゴリ記憶部
87 呼び出し語記憶部
88 シナリオファイル名記憶部
89 ファイル記憶部
90 レコード番号記憶部
91 認識結果記憶部
102、106 シナリオ制御ファイル
103 シナリオファイル
104 データファイル(群)
105 初期化ファイル
201 シナリオカテゴリ定義部
202 呼び出し語定義部
203 シナリオファイル名定義部
301 シナリオカテゴリフィールド
302 呼び出し語フィールド
303 シナリオファイル名フィールド
304 実行時刻フィールド
40 データ処理装置
401 シナリオ選択手段(2)
402 初期化ファイル実行手段
403 タイマー設定手段
404 タイマー参照手段
405 シナリオ登録手段(2)
50 記憶装置
501 シナリオ管理テーブル(2)
502 初期化ファイル名記憶部
601 シナリオ登録手段(3)



【特許請求の範囲】
【請求項1】
シナリオにしたがってロボットを動作させるシナリオファイルと、前記ロボットの動作のカテゴリを決定するシナリオカテゴリと、前記シナリオを呼び出すためのシナリオ呼び出し語と、から構成されるシナリオセットを回線から受信する受信手段と、
回線から受信した前記シナリオセットを前記ロボットがあらかじめ持っている前記シナリオセットと併せて前記ロボットに追加する登録手段と、
前記ロボットがあらかじめ持っている前記シナリオセットと回線から受信した前記シナリオセットの中から、前記シナリオカテゴリを第一の条件に従って選択する選択手段と、
選択した前記シナリオカテゴリ内のシナリオファイルを第2の条件にしたがって実行する制御プログラム実行手段と、を有することを特徴とするロボット。
【請求項2】
前記選択手段が同一のシナリオカテゴリを選択した際に、前記第2の条件として乱数、またはロボットが存在する環境、または乱数とロボットが存在する環境の双方によりシナリオファイルを実行することを特徴とする請求項1記載のロボット。
【請求項3】
前記登録手段により登録された前記シナリオファイルに含まれ、登録された前記シナリオファイルの実行時期を決定する時刻を実行時刻フィールドへ格納することにより、データ処理装置に前記実行時刻フィールドを初期化させる処理を記述した初期化ファイルを、前記登録時に実行する初期化ファイル実行手段を有することを特徴とする請求項1又は2記載のロボット。
【請求項4】
音声認識辞書用いて音声認識を行い、音声認識により前記シナリオ呼び出し語を入力し、前記シナリオ呼び出し語を前記第一の条件とすることを特徴とする請求項1から3のいずれか1項に記載のロボット。
【請求項5】
前記シナリオ呼び出し語を前記音声認識辞書に追加する音声認識語彙追加手段を有することを特徴とする請求項4に記載のロボット。
【請求項6】
前記シナリオセットを送出する送出装置と請求項1か5記載のロボットを回線により接続したことをすることを特徴とするロボット制御システム。
【請求項7】
コンピュータに、
シナリオにしたがってロボットを動作させるシナリオファイルと、前記ロボットの動作のカテゴリを決定するシナリオカテゴリと、前記シナリオを呼び出すためのシナリオ呼び出し語と、から構成されるシナリオセットを回線から受信する受信処理と、
回線から受信した前記シナリオセットを前記ロボットがあらかじめ持っている前記シナリオセットと併せて前記ロボットに追加する登録処理と、
前記ロボットがあらかじめ持っている前記シナリオセットと回線から受信した前記シナリオセットの中から、前記シナリオカテゴリを第一の条件に従って選択する選択処理と、
選択した前記シナリオカテゴリ内のシナリオファイルを第2の条件にしたがって実行する処理と、を実行させることを特徴とするプログラム。
【請求項8】
前記選択手段が同一のシナリオカテゴリを選択した際に、前記第2の条件として乱数、またはロボットが存在する環境、または乱数とロボットが存在する環境の双方によりシナリオファイルを実行処理することを特徴とする請求項7記載のプログラム。
【請求項9】
前記登録手段により登録された前記シナリオファイルに含まれ、登録された前記シナリオファイルの実行時期を決定する時刻を実行時刻フィールドへ格納することにより、データ処理装置に前記実行時刻フィールドを初期化させる処理を記述した初期化ファイルを、前記登録時に実行する初期化ファイル実行処理をすることを特徴とする請求項7又は8記載のプログラム。
【請求項10】
音声認識辞書用いて音声認識を行い、音声認識により前記シナリオ呼び出し語を入力し、前記シナリオ呼び出し語を前記第一の条件とすることを特徴とする請求項7から9のいずれか1項に記載のプログラム。
【請求項11】
前記シナリオ呼び出し語を前記音声認識辞書に追加する音声認識語彙追加処理を有することを特徴とする請求項10記載のプログラム。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate


【公開番号】特開2006−334780(P2006−334780A)
【公開日】平成18年12月14日(2006.12.14)
【国際特許分類】
【出願番号】特願2006−242829(P2006−242829)
【出願日】平成18年9月7日(2006.9.7)
【分割の表示】特願2002−17725(P2002−17725)の分割
【原出願日】平成14年1月25日(2002.1.25)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】