(57)【要約】【課題】エージェントの行動様式にかかわらずエージェントの行動を制御するための共通のブラットフォームを提供する。【解決手段】エージェント３は実空間または仮想空間において各種の行動が選択可能であり、アプリケーション２はデータの入力と出力との少なくとも一方をエージェント３を通して行う。アプリケーション２およびエージェント３とは別にエージェント３の行動を決定するエージェント制御部１が設けられる。エージェント制御部１は、エージェント３が行動する空間としてアプリケーション２が提供するアプリケーション空間の中で、エージェント３が次に取り得る行動を検出しエージェント３の次の行動を決定する。【選択図】        図１
2004199344.tif 000002
【特許請求の範囲】
【請求項１】
実空間または仮想空間において各種の行動が選択可能であるエージェントと、データの入力と出力との少なくとも一方をエージェントを通して行うアプリケーションプログラムとは別に設けられ、エージェントとアプリケーションプログラムとの間に介在するとともに、エージェントが行動する空間としてアプリケーションプログラムが提供するアプリケーション空間の中でエージェントが次に取り得る行動を検出し行動の最終目標に向かうエージェントの次の行動を決定することを特徴とするエージェント制御装置。
【請求項２】
前記アプリケーション空間に存在するオブジェクトであって前記エージェントが認識すべきオブジェクトの名称が登録される知識データベースと、エージェントが行動する規定の視野内におけるオブジェクトを検出するオブジェクト検出部と、知識データベースに登録されているオブジェクトとエージェントに可能な行動との関係をオブジェクトルールとして格納したオブジェクトルール記憶部と、オブジェクト検出部が検出したオブジェクトについて知識データベースから抽出された名称に対応するオブジェクトルールをオブジェクトルール記憶部から抽出するオブジェクトルール処理部と、オブジェクトルール処理部で抽出したオブジェクトルールで規定される行動がエージェントに要求されている目標の達成に必要な行動であるときにこの行動をエージェントに指示する行動決定部とを備えることを特徴とする請求項１記載のエージェント制御装置。
【請求項３】
前記エージェントに要求する行動に関する指示文がユーザから入力されるとあらかじめ登録されたリストとして登録されている語彙を用いて指示文を整形するコマンド入力部と、コマンド入力部から受け取った指示文が単文の指示文に分割できるときに単文の指示文を生成する行動ルール生成部と、行動ルール生成部で生成した単文の指示文をエージェントの行動順に並べた待ち行列が格納されるアキュムレータと、アキュムレータの待ち行列を構成する一つの指示文に関する行動をエージェントが達成するたびに次の行動をアキュムレータに要求するイベント処理部とを備えることを特徴とする請求項２記載のエージェント制御装置。
【請求項４】
実空間または仮想空間において各種の行動が選択可能であるエージェントと、データの入力と出力との少なくとも一方をエージェントを通して行うアプリケーションプログラムとの間に介在し、アプリケーションプログラムに応じてエージェントを制御するようにコンピュータを動作させるエージェント制御用プログラムであって、エージェントが行動する空間としてアプリケーションプログラムが提供するアプリケーション空間の中でエージェントが次に取り得る行動を検出し行動の最終目標に向かうエージェントの次の行動を決定することを特徴とするエージェント制御用プログラム。
【請求項５】
前記アプリケーション空間に存在するオブジェクトであって前記エージェントが認識すべきオブジェクトの名称が登録される知識データベースと、エージェントが行動する規定の視野内におけるオブジェクトを検出するオブジェクト検出部と、知識データベースに登録されているオブジェクトとエージェントに可能な行動との関係をオブジェクトルールとして格納したオブジェクトルール記憶部と、オブジェクト検出部が検出したオブジェクトについて知識データベースから抽出された名称に対応するオブジェクトルールをオブジェクトルール記憶部から抽出するオブジェクトルール処理部と、オブジェクトルール処理部で抽出したオブジェクトルールで規定される行動がエージェントに要求されている目標の達成に必要な行動であるときにこの行動をエージェントに指示する行動決定部との機能をコンピュータに実現させることを特徴とする請求項４記載のエージェント制御用プログラム。
【請求項６】
前記エージェントに要求する行動に関する指示文がユーザから入力されるとあらかじめ登録されたリストとして登録されている語彙を用いて指示文を整形するコマンド入力部と、コマンド入力部から受け取った指示文が単文の指示文に分割できるときに単文の指示文を生成する行動ルール生成部と、行動ルール生成部で生成した単文の指示文をエージェントの行動順に並べた待ち行列が格納されるアキュムレータと、アキュムレータの待ち行列を構成する一つの指示文に関する行動をエージェントが達成するたびに次の行動をアキュムレータに要求するイベント処理部との機能をコンピュータに実現させることを特徴とする請求項５記載のエージェント制御用プログラム。
【請求項７】
実空間または仮想空間において各種の行動が選択可能であるエージェントと、データの入力と出力との少なくとも一方をエージェントを通して行うアプリケーションプログラムと、エージェントおよびアプリケーションプログラムとは別に設けられエージェントが行動する空間としてアプリケーションプログラムが提供するアプリケーション空間の中でエージェントが次に取り得る行動を検出し行動の最終目標に向かうエージェントの次の行動を決定するエージェント制御部とを備えることを特徴とするエージェント制御システム。
【請求項８】
前記エージェント制御部は、前記アプリケーション空間に存在するオブジェクトであって前記エージェントが認識すべきオブジェクトの名称が登録される知識データベースと、エージェントが行動する規定の視野内におけるオブジェクトを検出するオブジェクト検出部と、知識データベースに登録されているオブジェクトとエージェントに可能な行動との関係をオブジェクトルールとして格納したオブジェクトルール記憶部と、オブジェクト検出部が検出したオブジェクトについて知識データベースから抽出された名称に対応するオブジェクトルールをオブジェクトルール記憶部から抽出するオブジェクトルール処理部と、オブジェクトルール処理部で抽出したオブジェクトルールで規定される行動がエージェントに要求されている目標の達成に必要な行動であるときにこの行動をエージェントに指示する行動決定部とを備えることを特徴とする請求項７記載のエージェント制御システム。
【請求項９】
前記エージェント制御部は、前記エージェントに要求する行動に関する指示文がユーザから入力されるとあらかじめ登録されたリストとして登録されている語彙を用いて指示文を整形するコマンド入力部と、コマンド入力部から受け取った指示文が単文の指示文に分割できるときに単文の指示文を生成する行動ルール生成部と、行動ルール生成部で生成した単文の指示文をエージェントの行動順に並べた待ち行列が格納されるアキュムレータと、アキュムレータの待ち行列を構成する一つの指示文に関する行動をエージェントが達成するたびに次の行動をアキュムレータに要求するイベント処理部とを備えることを特徴とする請求項８記載のエージェント制御システム。
【請求項１０】
前記エージェント制御部は、前記エージェントおよび前記アプリケーションとはネットワークを介して接続され、前記エージェントにはユーザからの指示文をエージェント制御部に転送する機能と、アプリケーションをエージェント制御部に連携させる機能とが付加されていることを特徴とする請求項９記載のエージェント制御システム。
【請求項１１】
前記エージェントは人体を模擬することを特徴とする請求項７ないし請求項１０のいずれか１項に記載のエージェント制御システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エージェント制御装置、エージェント制御用プログラム、エージェント制御システムに関するものである。
【０００２】
【従来の技術】
従来から、知識を備え自律的に行動するエージェントが各種のアプリケーションソフトウェア（以下、単に「アプリケーション」と呼ぶ）において用いられている。この種のエージェントは実空間あるいは仮想空間の環境を認識して行動するものであって、たとえば実空間の環境を認識して行動するエージェントとしては、ロボット用のエージェントが知られている。
【０００３】
この種のエージェントとしては、各種センサや音声によって外部（周囲）の状態を認識するとともにエージェントの内部（自己）の状態を認識するミドル・ウェア・レイヤと、外部および内部の状態をエージェントの行動に結びつけるアプリケーション・レイヤとを備えるものがある。アプリケーション・レイヤには、ミドル・ウェア・レイヤから与えられる各種の条件項目にそれぞれ行動モデルを対応させた行動モデルライブラリが設けられている。アプリケーション・レイヤにおいて決定された行動モデルは、アクチュエータなどのハードウェアとのインタフェースを提供するロボティック・サーバ・オブジェクトに与えられ、ロボットの実体が制御される。要するに、行動モデルライブラリがロボットの知識であり、外部および内部の状態を知識に当て嵌めることによって、ロボットの行動を自律的に決定するのである（たとえば、特許文献１参照）。
【０００４】
【特許文献１】
特開２００２−１６０１８５号公報（第１０−１３頁、図９−１１）
【０００５】
【発明が解決しようとする課題】
ところで、上述した構成では、エージェントの知識が行動モデルライブラリとして蓄積されており、行動モデルは外部および内部の状態に対応付けられており、しかも行動モデルはロボットの行動の態様に特化されているものであるから、アプリケーション・レイヤから分離することができないものである。つまり、特許文献１に記載の技術は、特定のアプリケーションに特化された技術であって、アプリケーション・レイヤからエージェントを切り離すことができない。このように、エージェントをアプリケーションから分離することができなければ、アプリケーションごとにエージェントを作成しなければならず、エージェントのコーディングに多大な労力を要するという問題が生じる。
【０００６】
本発明は上記事由に鑑みて為されたものであり、その目的は、エージェントの行動の態様にかかわらずエージェントの行動を制御するための共通のブラットフォームとなるエージェント制御装置、エージェント制御用プログラムを提供するとともに、エージェント制御システムを提供することにある。
【０００７】
【課題を解決するための手段】
請求項１の発明は、エージェント制御装置であって、実空間または仮想空間において各種の行動が選択可能であるエージェントと、データの入力と出力との少なくとも一方をエージェントを通して行うアプリケーションプログラムとは別に設けられ、エージェントとアプリケーションプログラムとの間に介在するとともに、エージェントが行動する空間としてアプリケーションプログラムが提供するアプリケーション空間の中でエージェントが次に取り得る行動を検出し行動の最終目標に向かうエージェントの次の行動を決定することを特徴とする。
【０００８】
請求項２の発明は、請求項１の発明において、前記アプリケーション空間に存在するオブジェクトであって前記エージェントが認識すべきオブジェクトの名称が登録される知識データベースと、エージェントが行動する規定の視野内におけるオブジェクトを検出するオブジェクト検出部と、知識データベースに登録されているオブジェクトとエージェントに可能な行動との関係をオブジェクトルールとして格納したオブジェクトルール記憶部と、オブジェクト検出部が検出したオブジェクトについて知識データベースから抽出された名称に対応するオブジェクトルールをオブジェクトルール記憶部から抽出するオブジェクトルール処理部と、オブジェクトルール処理部で抽出したオブジェクトルールで規定される行動がエージェントに要求されている目標の達成に必要な行動であるときにこの行動をエージェントに指示する行動決定部とを備えることを特徴とする。
【０００９】
請求項３の発明は、請求項２の発明において、前記エージェントに要求する行動に関する指示文がユーザから入力されるとあらかじめ登録されたリストとして登録されている語彙を用いて指示文を整形するコマンド入力部と、コマンド入力部から受け取った指示文が単文の指示文に分割できるときに単文の指示文を生成する行動ルール生成部と、行動ルール生成部で生成した単文の指示文をエージェントの行動順に並べた待ち行列が格納されるアキュムレータと、アキュムレータの待ち行列を構成する一つの指示文に関する行動をエージェントが達成するたびに次の行動をアキュムレータに要求するイベント処理部とを備えることを特徴とする。
【００１０】
請求項４の発明は、エージェント制御用プログラムであって、実空間または仮想空間において各種の行動が選択可能であるエージェントと、データの入力と出力との少なくとも一方をエージェントを通して行うアプリケーションプログラムとの間に介在し、アプリケーションプログラムに応じてエージェントを制御するようにコンピュータを動作させるエージェント制御用プログラムであって、エージェントが行動する空間としてアプリケーションプログラムが提供するアプリケーション空間の中でエージェントが次に取り得る行動を検出し行動の最終目標に向かうエージェントの次の行動を決定することを特徴とする。
【００１１】
請求項５の発明は、請求項４の発明において、前記アプリケーション空間に存在するオブジェクトであって前記エージェントが認識すべきオブジェクトの名称が登録される知識データベースと、エージェントが行動する規定の視野内におけるオブジェクトを検出するオブジェクト検出部と、知識データベースに登録されているオブジェクトとエージェントに可能な行動との関係をオブジェクトルールとして格納したオブジェクトルール記憶部と、オブジェクト検出部が検出したオブジェクトについて知識データベースから抽出された名称に対応するオブジェクトルールをオブジェクトルール記憶部から抽出するオブジェクトルール処理部と、オブジェクトルール処理部で抽出したオブジェクトルールで規定される行動がエージェントに要求されている目標の達成に必要な行動であるときにこの行動をエージェントに指示する行動決定部との機能をコンピュータに実現させることを特徴とする。
【００１２】
請求項６の発明は、請求項５の発明において、前記エージェントに要求する行動に関する指示文がユーザから入力されるとあらかじめ登録されたリストとして登録されている語彙を用いて指示文を整形するコマンド入力部と、コマンド入力部から受け取った指示文が単文の指示文に分割できるときに単文の指示文を生成する行動ルール生成部と、行動ルール生成部で生成した単文の指示文をエージェントの行動順に並べた待ち行列が格納されるアキュムレータと、アキュムレータの待ち行列を構成する一つの指示文に関する行動をエージェントが達成するたびに次の行動をアキュムレータに要求するイベント処理部との機能をコンピュータに実現させることを特徴とする。
【００１３】
請求項７の発明は、エージェント制御システムであって、実空間または仮想空間において各種の行動が選択可能であるエージェントと、データの入力と出力との少なくとも一方をエージェントを通して行うアプリケーションプログラムと、エージェントおよびアプリケーションプログラムとは別に設けられエージェントが行動する空間としてアプリケーションプログラムが提供するアプリケーション空間の中でエージェントが次に取り得る行動を検出し行動の最終目標に向かうエージェントの次の行動を決定するエージェント制御部とを備えることを特徴とする。
【００１４】
請求項８の発明では、請求項７の発明において、前記エージェント制御部は、前記アプリケーション空間に存在するオブジェクトであって前記エージェントが認識すべきオブジェクトの名称が登録される知識データベースと、エージェントが行動する規定の視野内におけるオブジェクトを検出するオブジェクト検出部と、知識データベースに登録されているオブジェクトとエージェントに可能な行動との関係をオブジェクトルールとして格納したオブジェクトルール記憶部と、オブジェクト検出部が検出したオブジェクトについて知識データベースから抽出された名称に対応するオブジェクトルールをオブジェクトルール記憶部から抽出するオブジェクトルール処理部と、オブジェクトルール処理部で抽出したオブジェクトルールで規定される行動がエージェントに要求されている目標の達成に必要な行動であるときにこの行動をエージェントに指示する行動決定部とを備えることを特徴とする。
【００１５】
請求項９の発明では、請求項８の発明において、前記エージェント制御部は、前記エージェントに要求する行動に関する指示文がユーザから入力されるとあらかじめ登録されたリストとして登録されている語彙を用いて指示文を整形するコマンド入力部と、コマンド入力部から受け取った指示文が単文の指示文に分割できるときに単文の指示文を生成する行動ルール生成部と、行動ルール生成部で生成した単文の指示文をエージェントの行動順に並べた待ち行列が格納されるアキュムレータと、アキュムレータの待ち行列を構成する一つの指示文に関する行動をエージェントが達成するたびに次の行動をアキュムレータに要求するイベント処理部とを備えることを特徴とする。
【００１６】
請求項１０の発明では、請求項９の発明において、前記エージェント制御部は、前記エージェントおよび前記アプリケーションとはネットワークを介して接続され、前記エージェントにはユーザからの指示文をエージェント制御部に転送する機能と、アプリケーションをエージェント制御部に連携させる機能とが付加されていることを特徴とする。
【００１７】
請求項１１の発明では、請求項７ないし請求項１０の発明において、前記エージェントは人体を模擬することを特徴とする。
【００１８】
【発明の実施の形態】
以下に説明する実施形態においてエージェントは、実空間または仮想空間における行動を視認できる形態で表されるものであって、実空間では各種形態のロボットや機械装置などであり、仮想空間ではディスプレイに表示される各種キャラクタや人の顔を模擬する画像などを意味する。本発明は、この種のエージェントと組み合わせて用いることにより、エージェントに知識を与えて自律的に行動させることが可能になる。なお、行動とは、エージェントが実空間ないし仮想空間において場所を移動することのほか、エージェントの一部分の位置や向きが変化することも含む。なお、以下の説明ではエージェントが行動する空間が実空間か仮想空間かにかかわらずアプリケーション空間と呼ぶ。
【００１９】
本実施形態は、図１に示すように、基本的にはアプリケーション２とエージェント３とエージェント制御部１とを備える。アプリケーション２はコンピュータにより実行されるプログラムであって、各種のシミュレーションのための演算や判断を行う。また、エージェント３は、ユーザが視認可能な実体部３１を備え、さらにエージェント制御部１からの指示に応じて実体部３１の行動を制御するための行動モデルを格納したモーションデータベース３２を備える。１つの行動モデルは、実体部３１の１つの行動を規定したプログラムのモジュールであって、行動モデルに対してパラメータとしての方向、速度、動作時間を与えることによって、１つの行動モデルに対応する一連の行動を行う。たとえば、エージェント３の実体部３１が身体を表すものとし、エージェント制御部１が、エージェント３に対して、「歩く（方向：前、速度：１ｍ／ｓ、動作時間：２ｓ）」という指示を与えたとする。この場合、モーションデータベース３２には、「歩く」という行動における身体の各部の動きの手順が行動モデルとして規定され、その行動モデルに対して、方向：前、速度：１ｍ／ｓ、動作時間：２ｓというパラメータが与えられることになる。
【００２０】
エージェント制御部１は、上述のように、エージェント３に対して行動モデルを指示するとともにパラメータを与えるものであり、アプリケーション２の動作に応じてアプリケーション空間におけるエージェント３の行動を制御する。各種のアプリケーション２とエージェント３とに組み合わせてエージェント制御部１を汎用的に用いることを可能とするために、エージェント制御部１をアプリケーション２およびエージェント３から切り離したことが本発明の特徴である。つまり、エージェント制御部１は、アプリケーション２に応じてエージェント３を制御するものであり、アプリケーション２とエージェント３とに応じてデータを設定することにより、様々なアプリケーション２とエージェント３とを組み合わせることが可能になっている。
【００２１】
以下では、ユーザがエージェント３に対して指示文による指示を与えると、エージェント３が指示文に従ってアプリケーション空間で行動する機能を有したアプリケーション２について例示する。エージェント制御部１は、基本的にはユーザからの指示文を受け付けるユーザインタフェースとしての入力手段と、アプリケーション空間に関する情報を得るためのアプリケーションインタフェースとしての空間認識手段とを備える。
【００２２】
入力手段は、ユーザが指示文を入力するコマンド入力部２１と、ユーザがエージェント３に指示可能な語彙のリストであるユーザ−エージェント間言語リスト（以下、「ＵＡＩＬ」と呼ぶ）２２とを備える。ＵＡＩＬ２２に登録された語彙は、エージェント３が理解可能な語彙ということができる。
【００２３】
コマンド入力部２１は、キーボードとディスプレイ装置とを用いて対話的に指示文を入力する装置のほか、ユーザの音声を認識して指示文を抽出する音声認識装置や、ユーザが指さす文字ボードを視覚的に認識して指示文を受け取る画像認識装置などユーザの能力に応じたものを用いることができる。コマンド入力部２１では、入力された指示文をＵＡＩＬ２２に照合してエージェント３が理解可能な語彙からなる指示文に整形し、整形した指示文を入力順に整列させ、指示文に入力順の優先順位フラグを付与する。
【００２４】
ＵＡＩＬ２２は、メモリやハードディスクのような書換可能な記憶媒体を用いて構成され、ＵＡＩＬ２２に登録される語彙は任意に編集可能になっている。ＵＡＩＬ２２における語彙は、アプリケーション空間において可能な行動に対応した行動コマンド（主として動詞）と、アプリケーション空間に存在する物体などのオブジェクト名（名詞）と、指示文に含まれる結合子（日本語であれば助詞や接続詞、欧米語であれば前置詞や接続詞）とに分類して登録される。たとえば、行動コマンドとしては（座る、立つ、歩く、走る、向きを変える、持ち上げる、右手を挙げる、微笑む、泣く）などの行動を表す語彙、オブジェクト名としては（机、椅子、車、洗面台、ドア、部屋、壁、台所、グラス）などの物を表す語彙、結合子としては（中へ、向かって、そして）などの行動の方向や順序を表す語彙が、ＵＡＩＬ２２に分類して登録される。上述のように、ＵＡＩＬ２２に登録される語彙は任意に編集可能であって、語彙の追加や削除によってＵＡＩＬ２２を加工することができる。
【００２５】
コマンド入力部２１およびＵＡＩＬ２２の動作の具体例を示す。ここでは、アプリケーション空間として図２のような部屋を想定する。図示例ではドアＯｂ１を設けた壁Ｏｂ２で仕切られた２つの部屋Ｏｂ３，Ｏｂ４があり、現在の状態ではエージェント３は一方の部屋Ｏｂ３に存在している。また、一方の部屋Ｏｂ３の中央部には机Ｏｂ５と椅子Ｏｂ６とがあり、部屋Ｏｂ３の隅には洗面台Ｏｂ７が設けられている。さらに、他方の部屋Ｏｂ４にはグラスＯｂ８が置いてある。
このようなアプリケーション空間において、コマンド入力部２２に、「隣の部屋に行きなさい、そしてグラスを取りなさい」という指示文を入力すると、「隣の部屋に／行きなさい、／そして／グラスを／取りなさい」などの形で語彙が分割され分割された各語彙がＵＡＩＬ２２に照合される。コマンド入力部２１では、ＵＡＩＬ２２に登録された語彙に類似する語彙を抽出すると、抽出した語彙が行動コマンドかオブジェクト名か結合子かを判別して指示文を整形する。つまり、コマンド入力部２１では、入力された指示文を、ＵＡＩＬ２２に格納された語彙群である行動コマンドとオブジェクト名と結合子とを用いて組み立て直すのである。上述の例であれば、コマンド入力部２１では、「隣の部屋に行きなさい、そしてグラスを取りなさい」という入力された指示文から、「隣の部屋／の中へ／行く／そして／グラス／取る」などという指示文を生成する。また、コマンド入力部２１に入力された指示文の入力順に優先順位フラグを設定する。上述のようにして得られた指示文と優先順位フラグとは、エージェント制御部１に与えられる。エージェント制御部１の機能については後述する。なお、上述した例では図２に示すアプリケーション空間において、「隣の部屋に行きなさい、そしてグラスを取りなさい」という指示文を入力する例を示したが、ＵＡＩＬ２２における語彙のリストを適宜に設定しておけば、「洗面台の蛇口に届くかどうか調べなさい」、「椅子が使えるかどうか調べなさい」などの指示文を入力することも可能である。このようにして得られた指示文がエージェント３の目的とする行動（以下、「目的行動」という）になる。
【００２６】
一方、空間認識手段はアプリケーション空間に関する情報を得る手段であって、アプリケーション空間に存在するオブジェクト（物体）を記述したエージェント−システム間言語リスト（以下、「ＡＳＩＬ」という）２３を備える。ＡＳＩＬ２３は、アプリケーション空間に関する知識をエージェント３に与えるために設けられている。つまり、エージェント３が後述するオブジェクト検出部２４を用いてアプリケーション空間内で検出できるすべてのオブジェクトに関する定義がＡＳＩＬ２３に設定されている。ＡＳＩＬ２３では、固定の属性であるグローバル属性と可変の属性であるローカル属性とを用いてオブジェクトを定義している。グローバル属性は（名称、型、一般行動、可能行動）からなり、ローカル属性は（寸法、位置、向き、設置態様）からなる。「名称」はオブジェクト名（たとえば、「椅子」）、「型」は対象物か障害物かの別（たとえば、「障害物」）、「一般行動」はオブジェクトを対象として一般に行う行動（たとえば、「座る」）、「可能行動」はオブジェクトを対象として一般には行わないが可能である行動（たとえば、「持ち上げる」、「移動する」など）を意味する。「一般行動」および「可能行動」については複数種類の行動を設定可能である。また、「寸法」は（高さ、長さ、幅、地面からの高さ）、「位置」は３次元の位置、「向き」はオブジェクトの代表点の法線の向きで表す。「設置態様」はオブジェクトが移動可能であるか固定されているかの別を表す。
【００２７】
空間認識手段には、アプリケーション２により生成されるアプリケーション空間を監視してエージェント３に与える語彙に変換するための環境検出部２５も設けられる。環境検出部２５を設けていることによって、時間経過に伴ってアプリケーション空間の状態が変化する場合にも対応可能になる。
【００２８】
オブジェクト検出部２４は、アプリケーション空間におけるエージェント３の現在の状態（位置および向き）における規定した視野範囲内のオブジェクトを検出する機能を有する。つまり、エージェント３の現在位置から現在の向きの前方における規定した距離範囲かつ角度範囲を視野とし、ＡＳＩＬ２３に格納されているデータと環境検出部２５により検出したアプリケーション空間の情報とに基づいて、視野内におけるオブジェクトの有無を判断する。オブジェクト検出部２４において視野内にオブジェクトが検出されたときには、検出したオブジェクト名をエージェント制御部１に設けた行動制御部１０に引き渡す。行動制御部１０については後述する。このようにエージェント３は、オブジェクト検出部２４を用いてＡＳＩＬ２３と環境検出部２５とに基づく情報からオブジェクトを検出する。
【００２９】
行動制御部１０は、エージェント３に知識を与えかつ自律的に行動させるための主要部である。行動制御部１０ではコマンド入力部２２から上位レベルのコマンドである指示文を受け取ることによって目的行動を取得し、アプリケーション空間におけるエージェント３の現在の状態（位置、向き、姿勢、周囲環境など）と目的行動とからエージェント３の次の行動を決定する機能を持つ（行動決定のモデルとして、たとえば有限オートマトンと称されるモデルを用いる）。ここに、上位レベルのコマンドとは、エージェント３の目標行動を指示するコマンドという意味であって、行動制御部１０ではコマンド入力部２２から受け取った目標行動を達成するために途中の行動（以下、「中間行動」という）を達成しなければならないときには、目標行動をモーションデータベース３ｂに格納された行動モデルを単位とする中間行動に分割し、エージェント３に要求する中間行動を行動モデルに対応させるとともに、適宜のパラメータを設定してエージェント３を制御する。つまり、行動制御部１０では、アプリケーション空間における各オブジェクトに対応した単純かつ局所的であるローカルルールを用いてエージェント３の局所的な行動を決定し、このような局所的な行動を積み重ねることによって、ユーザから与えられた上位コマンドにより指示されている全体的な目標行動をエージェント３に達成させる。
【００３０】
行動制御部１０についてさらに具体的に説明する。図３に示すように、行動制御部１０は、アプリケーション空間に関する情報を処理するために、エージェント３が認識可能なアプリケーション空間内のすべてのオブジェクトの名称のリストを備えた知識データベース１４と、アプリケーション空間内の各オブジェクトに適用可能なすべての行動のルールをオブジェクトルールとして設定したオブジェクトルール記憶部１５と、オブジェクト検出部２４において検出したオブジェクトに対応するオブジェクトルールを抽出するオブジェクトルール処理部１６とを備える。
【００３１】
知識データベース１４は、エージェント３が認識可能なすべてのオブジェクトの名称のリストを設定したものであり、エージェント３の知識は知識データベース１４に格納された内容に依存する。オブジェクトの定義は上述のようにＡＳＩＬ２３に格納されており、ＡＳＩＬ２３にはグローバル属性としてオブジェクトの名称が格納されているから、知識データベース１４に格納された名称のリストをＡＳＩＬ２３に照合することによって、オブジェクトのグローバル属性およびローカル属性をＡＳＩＬ２３から取得することができる。
【００３２】
オブジェクトルール記憶部１５はアプリケーション空間の各オブジェクトに適用可能なすべての行動のルールをオブジェクトルールとして格納したものである。オブジェクトルールは、ＡＳＩＬ２３に格納されたオブジェクトのグローバル属性とローカル属性とに関連して多数個の簡単かつ小さいルールとして設定されている。つまり、オブジェクトルールにより規定される行動は、エージェント３のモーションデータベース３ｂに格納されている行動モデルを単位とするものであり、オブジェクトルールによってエージェントの中間行動が規定される。たとえば、オブジェクトの「型」に関するオブジェクトルールでは、「オブジェクトの「型」が「障害物」ならば、エージェントはこのオブジェクトを障害物として避ける」などと設定することができる。また、オブジェクトの「行動」（一般行動、可能行動）に対応するオブジェクトルールでは、「オブジェクトの「行動」が「持ち上げる」ならば、エージェントはこのオブジェクトを持ち上げることができる」などと設定することができる。さらにまた、オブジェクトの「ローカル属性」に対応するオブジェクトルールでは、「このオブジェクトの処理の順番はオブジェクトの位置および向きに応じて変化する」などと設定できる。
【００３３】
オブジェクトルール処理部１６は、オブジェクト検出部２４が検出したオブジェクトの属性に応じて適用可能なオブジェクトルールをオブジェクトルール記憶部１５から引き出す機能を有する。
【００３４】
すなわち、オブジェクト検出部２４がアプリケーション空間に設定した視野内におけるオブジェクトを検出すると、環境検出部２５から得た情報とＡＳＩＬ２３に照合して得た情報とを用いてオブジェクトの名称を抽出する。また、得られた名称を知識データベース１４に照会し、検出したオブジェクトが認識可能か否かを判断する。つまり、検出したオブジェクトの名称が知識データベース１４にあれば、当該オブジェクトは認識可能ということになる。次に、当該オブジェクトのグローバル属性およびローカル属性をＡＳＩＬ２３から取得する。また、知識データベース１４は取得したグローバル属性およびローカル属性をオブジェクトルール処理部１６に引き渡し、オブジェクトルール処理部１６では当該属性に対して適用可能なオブジェクトルールをオブジェクトルール記憶部１５から抽出する。このようにして、オブジェクト検出部２４が検出したオブジェクトに適用可能なオブジェクトルールが抽出される。
【００３５】
ところで、行動制御部１０には、コマンド入力部２２から引き渡された指示文および各指示文の優先順位フラグを用いて、エージェントが最終目標を達成するまでの中間目標となる指示文を生成する行動ルール生成部１１と、行動ルール生成部１１において生成された中間目標を優先順位フラグの順序で待ち行列として一時記憶するアキュムレータ１２と、アキュムレータ１２に一時記憶された中間目標を順に読み出すイベント処理部１３とを備える。
【００３６】
行動ルール生成部１０は、優先順位フラグの順でエージェントの中間目標を生成するのであって、たとえばコマンド入力部２２から与えられた最終目標の指示文が、「隣の部屋／の中へ／行く／そして／グラス／取る」であるとすれば、「そして」が接続詞であることに鑑みて、「隣の部屋／の中へ／行く」と「グラス／取る」に分割した指示文を中間目標とする。要するに、中間目標は指示文を単文に分割することにより生成される。行動ルール生成部１１はアキュムレータ１２に直結され、アキュムレータ１２を通して単文の指示文をイベント処理部１３に送る。アキュムレータ１２は、イベント処理部１３から次の指示文が要求されるたびに、指示文をイベント処理部１３に転送する機能を有する。アキュムレータ１２はイベント処理部１３から得た情報も保持する機能を有しており、アキュムレータ１２に保持されたイベント処理部１３からの情報は、必要があれば新たな指示文を生成するために行動ルール生成部１１に引き渡される。
【００３７】
イベント処理部１３は、エージェント３が指示文により指示された中間目標を達成したときにエージェント３から出力されるトリガをアキュムレータ１２に渡す機能を有し、このトリガによってエージェント３の次の目標がアキュムレータ１２に格納されている待ち行列からイベント処理部１３に受け渡される。つまり、エージェント３はイベント処理部１３を通して状態を変化させる。
【００３８】
イベント処理部１３はオブジェクトルール処理部１６とは動作のタイミングを合わせるために連携しており、イベント処理部１３からの指示文とオブジェクトルール処理部１６からのオブジェクトルールとは行動決定部１７に与えられる。
行動決定部１７は、エージェント３の行動、方向、速度、動作時間をエージェント３に与える。行動決定部１７からの出力はエージェント３の実体部３ａが受け取り、モーションデータベース３ｂにエージェント３の行動を照合して得た行動モデルに、方向、速度、動作時間をパラメータとして与えることにより、エージェント３が指示された行動を実行する。つまり、行動決定部１７では、イベント処理部１３から受け取った目標を指示する指示文と、オブジェクトルール処理部１６から受け取ったオブジェクトルールとによって、オブジェクトルールのうち目標の達成に必要なオブジェクトルールを採用し、オブジェクト３の中間行動を決定する。この中間行動がエージェント３の当面の行動になる。エージェント３は中間行動を実行した後の位置においてオブジェクト検出部２４で再び視野内のオブジェクトを検出して上述の動作を繰り返すことにより、次々に中間行動を行い、最終目標に達することが可能になる。
【００３９】
上述したように、本実施形態の構成によれば、アプリケーション２およびエージェント３とは別にエージェント制御部１を設けているから、エージェント制御部１をアプリケーション２およびエージェント３に適合させることによって、各種のアプリケーション２とエージェント３の組合せに対応することが可能になる。ここに、エージェント制御部１には、ユーザからの指示文をエージェント３が理解可能な語彙群を用いた指示文に加工するためのＵＡＩＬ２１と、アプリケーション空間に存在するオブジェクトの情報をエージェント３に与えるためのＡＳＩＬ２３と、アプリケーション空間のオブジェクト名を格納した知識データベース１４と、オブジェクトに適用するオブジェクトルールを格納したオブジェクトルール記憶部１５とがあり、ＵＡＩＬ２１とＡＳＩＬ２３と知識データベース１４とオブジェクトルール記憶部１５とには、アプリケーション２およびエージェント３に適合するデータを設定する必要がある。つまり、ユーザはエディタを用いることによって、特定のアプリケーション２のためにエージェント３にとって認識可能なオブジェクトを設定することが必要である。また、各オブジェクトに対応するルール群およびオブジェクトを認識するためのオブジェクト検出部２４を設定する。さらに、エージェント３の実体部３ａやモーションデータベース３ｂもユーザがエディタを用いて設定する。この種のエディタとしては、グラフィカルユーザインタフェースを備えるものが望ましく、ユーザはアプリケーション２およびエージェント３に応じてデータを設定することが可能になる。また、これらの各種情報はグラフィカルユーザインタフェースの中で選択肢を設け、選択肢からの選択によって設定可能としておくのが望ましい。
【００４０】
本実施形態における行動制御部１０は、コンピュータにより実行されるプログラムを用いて実現することができ、ＵＡＩＬ２１、ＡＳＩＬ２３、知識データベース１４、オブジェクトルール記憶部１５に記憶させるデータの規模（記憶容量）が小さい場合には、プログラマブルチップあるいはＰＣカードに組み込んだエージェント制御装置として提供することができる。このような形態であれば、プログラマブルチップあるいはＰＣカードをコンピュータに装着するだけで、種々のアプリケーション２に種々の自律的なエージェント３を組み合わせることが可能になる。
【００４１】
なお、上述した実施形態において知識データベース１４およびオブジェクトルール記憶部１５を行動制御部１０に内蔵した構成例を示したが、知識データベース１４とオブジェクトルール記憶部１５との少なくとも一方について格納するデータ量が大きくなるときには、行動制御部１０とは別に設けるようにしてもよい。逆に小規模のシステムであれば、ＵＡＩＬ２１やＡＳＩＬ２３を行動制御部１０に内蔵してもよい。
【００４２】
また、上述したエージェント制御部１をアプリケーション２およびエージェント３に対して遠方に設けるようにしてもよい。この場合、図４に示すように、インタネットなどのネットワークＮＴにおけるアプリケーションサービスプロバイダＡＳＰにおいてエージェント制御部１を設けておき、エージェント３にはネットワークＮＴを介してエージェント制御部１と通信可能とする機能、エージェント３はユーザが指示文を入力する機能およびアプリケーション２をエージェント制御部１に連携させる機能を設けておく。このような構成を採用することによって、エージェント３の実体部３ａの形態やモーションデータベース３ｂで規定される行動の種類にかかわりなく、エージェント制御部１はあらゆるエージェント３において行動を決めるための共通のプラットフォームとして機能する。
【００４３】
この構成においてエージェント３をインテリジェント化するために、たとえば以下の処理が可能となる構成を採用すればよい。すなわち、エージェント３にはアプリケーション２と連携する機能を設けておき、ユーザがエージェント３をインテリジェント化する際には、ユーザが端末を用いてアプリケーションサービスプロバイダＡＳＰにおけるエージェント制御部１との間で通信を行うことにより、エージェント３をアプリケーションサービスプロバイダＡＳＰに登録する。上述のように、アプリケーションサービスプロバイダＡＳＰにはエージェント制御部１の主要部が設けられており、エージェント３を登録したときに、ユーザの端末画面に上述したエディタのグラフィカルユーザインタフェースが出現するようにしておけば、ユーザはグラフィカルユーザインタフェースを用いて必要な情報を選択して設定することができる。
【００４４】
以下では、アプリケーション２とエージェント３との組合せ例を列記する。アプリケーション２がエンターテインメント用である場合には、エージェント３の実体部３ａにより表される視認可能な形態としては漫画のキャラクタを用いることが可能である。この場合、アプリケーション２の動作をエージェント３の行動に結びつけるようにエージェント制御部１のデータを編集すれば、アプリケーションの動作を漫画のキャラクタの動作に結合することが可能になる。この場合、ユーザは現在の状態と最終目標とを与えると漫画のキャラクタが自律的に動作するようにエージェントに知識を与えることが可能になる。
【００４５】
エージェント３として仮想空間における自動車のモデルを用い、自動車のモデルにエージェント制御部１を結合することによって、交通渋滞の分析を行うために自動車のモデルをインテリジェント化することも可能である。エージェント３のモデルおよび動作は実体部３ａおよびモーションデータベース３ｂにより規定され、エージェント制御部１はエージェント３のモデルおよび動作とは分離されているから、エージェント制御部１を自動車のモデルに結合することによって、自動車のモデルに知識を与えかつ自律的に動作させることができる。自動車のモデルをエージェント３とする場合にも、現在の状態と最終目標とを与えることによって、ひどい渋滞が生じているときにも自動車自身の知識を用いて目標地点に到達することが可能になる。
【００４６】
エージェント制御部１を仮想環境に結合することによって、インテリジェント化した仮想環境を作成することも可能である。つまり、仮想環境にエージェント３を配置しておき、仮想環境にエージェント制御部１を結合することによって、対話型のアプリケーション２のために仮想環境を自律的に動作させることが可能になる。たとえば、仮想環境の一部の環境を変更する要求をユーザが指示文で与えると、指示文の内容に応じて仮想環境を変更するように動作させることが可能になる。
【００４７】
さらに、人の頭部を表現するようなエージェント３を用いて教育などの目的に用いることが可能である。このエージェント３は、モーションデータベース３ｂによって頭部の向きを変えたり、顔の表情を変化させることを可能としておく。
アプリケーション２としては、たとえば適宜の質問を行いユーザの回答を受け取って回答の適否を判断するものを用いる。エージェント３は回答の適否に応じて顔の表情を変化させるようにしておけば、教育目的に用いるエージェント３を自律的に動作させることが可能になる。
【００４８】
エージェント３としては、実体部３ａにおいて人体を模擬する構成を採用してもよい。以下では実体部３ａにおいて模擬した人体を模擬人体と呼ぶ。模擬人体はユーザとアプリケーション２との間のエージェント３の一種であって、模擬人体にエージェント制御部１を結合することにより、人と模擬人体との間で人間同士の対話に近い高度な対話が可能になる。模擬人体は人体をコンピュータグラフィックによって表示するための専用のプログラムを用いることで容易に表示することができる。この種のプログラムでは模擬人体を表示するのに必要な多数のエレメントから所望のエレメントを選択することによって模擬人体を容易に作製することができるようになっている。また、模擬人体を表示するためのモーションデータベース３ｂでは、模擬人体の種々の行動について行動モデルを設定してある。模擬人体をエージェント３として用いる場合にはエージェント制御部１は模擬人体の頭脳として機能する。
【００４９】
この種の模擬人体を用いて建築設計に利用することが可能である。一般に建築設計は時間のかかる作業であって、設計後に不都合があると修正にはさらに多大な時間を要することになる。一方、建築設計にはエルゴノミクスを考慮する必要があり、エルゴノミクスの解析には人体の動きを考慮することが必要である。そこで、コンピュータを用いて設計した建築空間をアプリケーション空間として上述した模擬人体をアプリケーション空間において実際に行動させてみれば、建築設計の設計内容に対するエルゴノミクスの解析が容易に行えることになる。つまり、建築設計における従来の手法に比べて設計評価のための優れた設計手法を提供することができる。また、模擬人体の動作を制御することは、従来の制御技術を用いたのでは困難であるが、本実施形態のようにエージェント３である模擬人体とは独立したエージェント制御部１を用いて模擬人体の行動を制御することで、模擬人体を簡単に制御することが可能になる。
【００５０】
この技術は建築設計に限られるものではなく、エルゴノミクスを考慮した解析が必要になる各種のプロトタイピングに用いることが可能である。つまり、人間の行動に関するデータを必要とするような各種製品のプロトタイピングにおいて、実際に人が製品を扱わずにコンピュータを用いて製品を設計した段階で、模擬人体を用いて製品に関するエルゴノミクスに関する設計評価が可能になる。つまり、プロトタイピングを行うアプリケーション２にエージェント制御部１を組み合わせれば、迅速かつ効率よく製品のプロトタイプに対するエルゴノミクスを考慮した解析が可能になる。
【００５１】
建築設計の場合と同様に、火災などの非常事態に対する人の行動を模擬人体を用いてシミュレーションを行うことによって、ビル設計や都市設計において避難経路の安全性の検証などに用いることも可能である。つまり、アプリケーション２により設定される非常事態の環境に模擬人体を配置することによって、ユーザは模擬人体が非常事態の環境において、どのような経路で避難するかを観察することができ、避難経路の安全を評価することが可能になる。なお、この種のシミュレーションにおいて正しい結果を得るには、非常事態が生じる環境における正しい筋書きを設定しておくことが必要であるから、特定のアプリケーション２に関して模擬人体に関する行動や動作の情報についてコード化することは難しく長時間を要する作業になる。これに対して、本実施形態におけるエージェント制御部１を用いることにより、比較的容易に模擬人体を自律的に動作させることが可能になる。
【００５２】
上述のように模擬人体について上述のような各種の制御が可能であるから、模擬人体をロボットに置換すればエージェント制御部１を用いて実空間において動作するロボットを制御することが可能になる。つまり、エージェント制御部１をロボットの頭脳として機能させることが可能である。ロボットの形態は人型のものに限らず、製造設備において用いる製造用ロボットにも適用可能である。
【００５３】
【発明の効果】
請求項１、４、７の発明は、実空間または仮想空間において各種の行動が選択可能であるエージェントと、データの入力と出力との少なくとも一方をエージェントを通して行うアプリケーションプログラムとに対してエージェントが行動する空間としてアプリケーションプログラムが提供するアプリケーション空間の中でエージェントが次に取り得る行動を検出し行動の最終目標に向かうエージェントの次の行動を決定するから、アプリケーションおよびエージェントが異なっていてもエージェントの制御を行う装置ないしプログラムをアプリケーションおよびエージェントとは別に独立して作成することができ、アプリケーションおよびエージェントの相違にかかわらず共通したプラットフォームを提供することが可能になり、エージェントを用いた装置ないしプログラムの開発を比較的少ない工数で行うことが可能になるという利点がある。
【００５４】
請求項２、５、８の発明は、アプリケーション空間に存在するオブジェクトであってエージェントが認識すべきオブジェクトの名称が登録される知識データベースと、エージェントが行動する規定の視野内におけるオブジェクトを検出するオブジェクト検出部と、知識データベースに登録されているオブジェクトとエージェントに可能な行動との関係をオブジェクトルールとして格納したオブジェクトルール記憶部と、オブジェクト検出部が検出したオブジェクトについて知識データベースから抽出された名称に対応するオブジェクトルールをオブジェクトルール記憶部から抽出するオブジェクトルール処理部と、オブジェクトルール処理部で抽出したオブジェクトルールで規定される行動がエージェントに要求されている目標の達成に必要な行動であるときにこの行動をエージェントに指示する行動決定部とを設けていることによって、エージェントが最終目標に向かって行動するにあたって、アプリケーション空間内でエージェントの視野内でオブジェクトが検出されると、最終目標の達成のために当該オブジェクトに対してエージェントが行うべき途中の行動をエージェントに指示することができ、たとえばエージェントが移動する途中に障害物が存在するような場合に、エージェントに自律的に障害物を回避させることが可能になる。
【００５５】
請求項３、６、９の発明は、エージェントに要求する行動に関する指示文がユーザから入力されるとあらかじめ登録されたリストとして登録されている語彙を用いて指示文を整形するコマンド入力部と、コマンド入力部から受け取った指示文が単文の指示文に分割できるときに単文の指示文を生成する行動ルール生成部と、行動ルール生成部で生成した単文の指示文をエージェントの行動順に並べた待ち行列が格納されるアキュムレータと、アキュムレータの待ち行列を構成する一つの指示文に関する行動をエージェントが達成するたびに次の行動をアキュムレータに要求するイベント処理部とを備えるから、ユーザから何らかの指示文が与えられるとリストに登録された語彙を用いて指示文を整形するから、ユーザからの指示文の内容をエージェントが理解可能な形に修正することができ、しかもユーザから複数の指示がなされたときには単文の指示文に区切ってエージェントに順に与えるから、エージェントは混乱することなく指示文を順に実行することが可能になる。
【００５６】
請求項１０の発明は、エージェント制御部がエージェントおよびアプリケーションとはネットワークを介して接続され、エージェントにはユーザからの指示文をエージェント制御部に転送する機能と、アプリケーションをエージェント制御部に連携させる機能とが付加されているから、エージェント制御部を各種のアプリケーションおよびエージェントに対して汎用的に用いることが可能になる。
【００５７】
請求項１１の発明では、エージェントが人体を模擬するので、人間同士の対話を模擬したり、エルゴノミクスを考慮した製品や建物の設計を行ったり、人にとって過酷な環境での人の行動のシミュレーションを行ったりすることが可能になる。
【図面の簡単な説明】
【図１】本発明の実施形態を示すブロック図である。
【図２】同上におけるアプリケーション空間の一例を示す図である。
【図３】同上に用いるエージェント制御部のブロック図である。
【図４】同上の使用例を示すブロック図である。
【符号の説明】
１  エージェント制御部
２  アプリケーション（プログラム）
３  エージェント
１１  行動ルール生成部
１２  アキュムレータ
１３  イベント処理部
１４  知識データベース
１５  オブジェクトルール記憶部
１６  オブジェクトルール処理部
１７  行動決定部
２２  コマンド入力部
２４  オブジェクト検出部
ＮＴ  ネットワーク
【図１】
2004199344.tif 000003
【図２】
2004199344.tif 000004
【図３】
2004199344.tif 000005
【図４】
2004199344.tif 000006