(57)【要約】【課題】適切なタイミングで適切なイベントを取得することのできるイベント管理装置を提供する。【解決手段】外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する外界監視装置１０から取得したイベントを管理するイベント管理装置２０であって、外界監視装置１０からイベントを取得するイベント取得手段と、イベント取得手段が取得したイベントに応じたアクションの実行順番を示すプランを作成するプラン作成手段と、プラン作成手段により作成されたプランに含まれる前記アクションの実行状態を監視する実行状態監視手段と、実行状態監視手段がアクションの実行状態が所定の条件を満たす場合に、当該条件が満たされたことを示すイベントを発行するイベント発行手段と、イベントにしたがい、外界監視装置に対し、イベントの発行に関する指示を通知する通知手段とを備えた。【選択図】        図１
2008242606.tif 000002
【特許請求の範囲】
【請求項１】
外界環境を監視し、前記外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する１または２以上の外界監視装置から取得した前記イベントを管理するイベント管理装置であって、
前記外界監視装置から前記イベントを取得するイベント取得手段と、
前記イベント取得手段が取得した前記イベントに応じたアクションであって、アクション実行装置が実行すべきアクションの実行順番を示すプランを作成するプラン作成手段と、
前記プラン作成手段により作成された前記プランに含まれる前記アクションの前記アクション実行装置による実行状態を監視する実行状態監視手段と、
前記実行状態監視手段により監視された前記アクションの実行状態が所定の条件を満たす場合に、当該条件が満たされたことを示すイベントを発行するイベント発行手段と、
前記イベント取得手段が取得したイベントまたは前記イベント発行手段が発行したイベントにしたがい、前記外界監視装置に対し、前記イベントの発行に関する指示を通知する通知手段と
を備えたことを特徴とするイベント管理装置。
【請求項２】
前記イベントと、当該イベントが発行された場合に前記通知手段が通知すべき前記指示とを対応付けて保持する指示保持手段をさらに備え、
前記通知手段は、前記イベントが発行された場合に、前記指示保持手段において前記イベントに対応付けられている前記指示を前記外界監視装置に通知することを特徴とする請求項１に記載のイベント管理装置。
【請求項３】
前記外部イベント取得手段が取得した前記イベントまたは前記内部イベント発行手段が発行した前記イベントにしたがい、前記指示を通知する通知先となる前記外界監視装置を特定する通知先特定手段をさらに備え、
前記通知手段は、前記通知先特定手段により特定された前記通知先に対し前記指示を通知することを特徴とする請求項１または２に記載のイベント管理装置。
【請求項４】
前記通知先特定手段は、前記指示を通知する通知先の候補となる前記外界監視装置に、指示を受け付けることができるか否かを問い合わせる問合手段と、
前記問合手段による問い合わせ先の前記外界監視装置から前記指示の受付の可否を示す回答を取得する回答取得手段と
をさらに備え、
前記通知先特定手段は、前記回答取得手段が前記指示の受付が可能であることを示す前記回答を取得した場合に、前記通知先候補の前記外界監視装置を前記通知先として特定することを特徴とする請求項３に記載のイベント管理装置。
【請求項５】
前記指示保持手段は、さらに前記外界監視装置を識別する装置識別情報を前記イベントに対応付けて保持し、
前記通知手段は、前記指示保持手段において前記イベントに対応付けられている前記装置識別情報で識別される前記外界監視装置に前記指示を通知することを特徴とする請求項３または４に記載のイベント管理装置。
【請求項６】
前記通知手段は、さらに前記外部イベント取得手段が取得した前記イベントまたは前記イベント発行手段が発行した前記イベントに応じた前記プランを作成する旨の指示を通知し、
前記プラン作成手段は、前記通知手段により通知された前記プランを作成することを特徴とする請求項１から５のいずれか一項に記載のイベント管理装置。
【請求項７】
前記イベント発行手段は、前記アクションの実行が開始または終了した場合に、それぞれ開始または終了を示す前記イベントを発行することを特徴とする請求項１から６のいずれか一項に記載のイベント管理装置。
【請求項８】
現在の状況を示す状況情報を保持する状況情報保持手段と、
前記イベントが発行されたときに前記状況情報保持手段が保持している前記状況情報が、予め定められている実行条件を満たすか否かを判定する条件判定手段と
をさらに備え、
前記通知手段は、前記条件判定手段により前記実行条件を満たすと判定された場合に、前記指示を通知することを特徴とする請求項１から７のいずれか一項に記載のイベント管理装置。
【請求項９】
前記指示保持手段は、さらに前記実行条件を前記イベントに対応付けて保持し、
前記条件判定手段は、前記指示保持手段において、前記イベントに対応付けられている前記実行条件を満たすか否かを判定することを特徴とする請求項８に記載のイベント管理装置。
【請求項１０】
外界環境を監視し、前記外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する１または２以上の外界監視装置から取得した前記イベントを管理するイベント管理装置であって、
前記外界監視装置から前記イベントを取得するイベント取得手段と、
前記イベント取得手段が取得した前記イベントに応じたアクションの実行順番を示すプランを作成するプラン作成手段と、
前記プラン作成手段により作成された前記プランに含まれる前記アクションを実行するアクション実行手段と、
前記アクション実行手段による前記アクションの実行状態を監視する実行状態監視手段と、
前記実行状態監視手段により監視された前記アクションの実行状態が所定の条件を満たす場合に、当該条件が満たされたことを示すイベントを発行するイベント発行手段と、
前記イベント取得手段が取得したイベントまたは前記イベント発行手段が発行したイベントにしたがい、前記外界監視装置に対し、前記イベントの発行に関する指示を通知する通知手段と
を備えたことを特徴とするイベント管理装置。
【請求項１１】
外界環境を監視し、前記外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する１または２以上の外界監視装置から取得した前記イベントを管理するイベント管理方法であって、
前記外界監視装置から前記イベントを取得するイベント取得ステップと、
前記イベント取得ステップにおいて取得した前記イベントに応じたアクションであって、アクション実行装置が実行すべきアクションの実行順番を示すプランを作成するプラン作成ステップと、
前記プラン作成ステップにおいて作成された前記プランに含まれる前記アクションの前記アクション実行装置による実行状態を監視する監視ステップと、
前記アクションの実行状態が所定の条件を満たす場合に、当該条件が満たされたことを示すイベントを発行するイベント発行ステップと、
前記イベント取得ステップにおいて取得したイベントまたは前記イベント発行ステップにおいて発行したイベントにしたがい、前記外界監視装置に対し、前記イベントの発行に関する指示を通知する通知ステップと
を有することを特徴とするイベント管理方法。
【請求項１２】
外界環境を監視し、前記外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する１または２以上の外界監視装置から取得した前記イベントを管理するイベント管理方法であって、
前記外界監視装置から前記イベントを取得するイベント取得ステップと、
前記イベント取得ステップにおいて取得した前記イベントに応じたアクションの実行順番を示すプランを作成するプラン作成ステップと、
前記プラン作成ステップにおいて作成された前記プランに含まれる前記アクションを実行するアクション実行ステップと、
前記アクション実行ステップにおける前記アクションの実行状態を監視する実行状態監視ステップと、
前記実行状態監視ステップにおいて監視された前記アクションの実行状態が所定の条件を満たす場合に、当該条件が満たされたことを示すイベントを発行するイベント発行ステップと、
前記イベント取得ステップにおいて取得したイベントまたは前記イベント発行手段が発行したイベントにしたがい、前記外界監視装置に対し、前記イベントの発行に関する指示を通知する通知ステップと
を有することを特徴とするイベント管理方法。
【請求項１３】
外界環境を監視し、前記外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する１または２以上の外界監視装置から取得した前記イベントを管理するイベント管理処理をコンピュータに実行させるイベント管理プログラムであって、
前記外界監視装置から前記イベントを取得するイベント取得ステップと、
前記イベント取得ステップにおいて取得した前記イベントに応じたアクションであって、アクション実行装置が実行すべきアクションの実行順番を示すプランを作成するプラン作成ステップと、
前記プラン作成ステップにおいて作成された前記プランに含まれる前記アクションの前記アクション実行装置による実行状態を監視する監視ステップと、
前記アクションの実行状態が所定の条件を満たす場合に、当該条件が満たされたことを示すイベントを発行するイベント発行ステップと、
前記イベント取得ステップにおいて取得したイベントまたは前記イベント発行ステップにおいて発行したイベントにしたがい、前記外界監視装置に対し、前記イベントの発行に関する指示を通知する通知ステップと
を有することを特徴とするイベント管理プログラム。
【請求項１４】
外界環境を監視し、前記外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する１または２以上の外界監視装置から前記イベントを取得し、当該イベントに応じた、複数のアクションを含むプランを作成するイベント管理装置と、前記アクションを実行するアクション実行装置とを備えたアクション実行システムにおいて、
前記イベント管理装置は、
前記外界監視装置から前記イベントを取得するイベント取得手段と、
前記イベント取得手段が取得した前記イベントに応じたアクションの実行順番を示すプランを作成するプラン作成手段と
を有し、
前記アクション実行装置は、
前記プランに含まれる前記アクションを実行するアクション実行手段と、
前記アクション実行手段による実行結果にしたがい、所定の種類の前記外界環境の監視結果を通知する旨を指示すべき前記外界監視装置を前記イベント管理装置に問い合わせる問合手段と
を有し、
前記イベント管理装置は、
前記所定の種類の前記外界環境の監視を行う外界監視装置を特定する特定手段と、
前記特定手段により特定された前記外界監視装置を前記アクション実行装置に通知する通知手段と
をさらに有し、
前記アクション実行装置は、
前記イベント管理装置から前記外界監視装置の通知を受け付け、当該外界監視装置に前記指示を通知する通知手段をさらに有することを特徴とするアクション実行システム。
【請求項１５】
外界環境を監視し、前記外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する１または２以上の外界監視装置から前記イベントを取得し、当該イベントに応じた、複数のアクションを含むプランを作成するイベント管理装置と、前記アクションを実行するアクション実行装置とを備えたアクション実行システムにおいて、
前記イベント管理装置は、
前記外界監視装置から前記イベントを取得するイベント取得手段と、
前記イベント取得手段が取得した前記イベントに応じたアクションの実行順番を示すプランを作成するプラン作成手段と
を有し、
前記アクション実行装置は、
前記プランに含まれる前記アクションを実行するアクション実行手段と、
前記アクション実行手段による実行結果にしたがい、所定の種類の前記外界環境の監視結果を通知する旨を指示すべき前記外界監視装置を前記イベント管理装置に問い合わせる問合手段と
を有し、
前記イベント管理装置は、
前記外界環境の種類から当該外界環境の監視を行う外界監視装置を特定する特定手段と、
前記特定手段により特定された前記外界監視装置に対し前記指示を通知する通知手段と
をさらに有することを特徴とするアクション実行システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外界環境を監視し、外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する１または２以上の外界監視装置から取得したイベントを管理するイベント管理装置、方法、プログラムおよびアクション実行システムに関するものである。
【背景技術】
【０００２】
従来、センサーなどから得られた情報が予め定められた条件を満たす場合に、予め定められたゴールを投入し、ゴールに対応するプランを実行する装置が知られている。ここで、ゴールとは、実行完了したいタスクまたは達成したい状態等を示している。ゴールから得られたプランを実行する装置として、特許文献１には、所定のプランを実行している最中にプランの割り込みがあった場合には、割込プランの実行後に先に実行していたプランを再開できるか否かを評価し、割込プランの実行の可否を判断するものが開示されている。
【０００３】
【特許文献１】特開２００６−２６８３４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、センサーから得られた情報を開始条件とするため、センサー側は絶えず監視を行わなければならない。さらに、監視結果に応じて不要なイベントまで発行することとなり、センサーの処理負担が大きくなる。また、また、イベントを取得する側においても、不要なイベントを多量に取得することになる。このため、取得したイベントに対する処理能力の限界や誤動作、ＣＰＵ資源の消費が問題となっている。
【０００５】
さらに、不必要なイベントが多量に通知されるため、必要なイベントが通知されなかったり、遅れたりすることがある。また、不必要なイベント発行のための外界監視のため、必要なイベント発行のための外界監視ができないことがある。
【０００６】
本発明は、上記に鑑みてなされたものであって、適切なタイミングで適切なイベントを取得することのできるイベント管理装置、方法、プログラムおよびアクション実行システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、外界環境を監視し、前記外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する１または２以上の外界監視装置から取得した前記イベントを管理するイベント管理装置であって、前記外界監視装置から前記イベントを取得するイベント取得手段と、前記イベント取得手段が取得した前記イベントに応じたアクションであって、アクション実行装置が実行すべきアクションの実行順番を示すプランを作成するプラン作成手段と、前記プラン作成手段により作成された前記プランに含まれる前記アクションの前記アクション実行装置による実行状態を監視する実行状態監視手段と、前記実行状態監視手段により監視された前記アクションの実行状態が所定の条件を満たす場合に、当該条件が満たされたことを示すイベントを発行するイベント発行手段と、前記イベント取得手段が取得したイベントまたは前記イベント発行手段が発行したイベントにしたがい、前記外界監視装置に対し、前記イベントの発行に関する指示を通知する通知手段とを備えたことを特徴とする。
【０００８】
また、本発明の他の形態は、外界環境を監視し、前記外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する１または２以上の外界監視装置から取得した前記イベントを管理するイベント管理装置であって、前記外界監視装置から前記イベントを取得するイベント取得手段と、前記イベント取得手段が取得した前記イベントに応じたアクションの実行順番を示すプランを作成するプラン作成手段と、前記プラン作成手段により作成された前記プランに含まれる前記アクションを実行するアクション実行手段と、前記アクション実行手段による前記アクションの実行状態を監視する実行状態監視手段と、前記実行状態監視手段により監視された前記アクションの実行状態が所定の条件を満たす場合に、当該条件が満たされたことを示すイベントを発行するイベント発行手段と、前記イベント取得手段が取得したイベントまたは前記イベント発行手段が発行したイベントにしたがい、前記外界監視装置に対し、前記イベントの発行に関する指示を通知する通知手段とを備えたことを特徴とする。
【０００９】
また、本発明の他の形態は、外界環境を監視し、前記外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する１または２以上の外界監視装置から取得した前記イベントを管理するイベント管理方法であって、前記外界監視装置から前記イベントを取得するイベント取得ステップと、前記イベント取得ステップにおいて取得した前記イベントに応じたアクションであって、アクション実行装置が実行すべきアクションの実行順番を示すプランを作成するプラン作成ステップと、前記プラン作成ステップにおいて作成された前記プランに含まれる前記アクションの前記アクション実行装置による実行状態を監視する監視ステップと、前記アクションの実行状態が所定の条件を満たす場合に、当該条件が満たされたことを示すイベントを発行するイベント発行ステップと、前記イベント取得ステップにおいて取得したイベントまたは前記イベント発行ステップにおいて発行したイベントにしたがい、前記外界監視装置に対し、前記イベントの発行に関する指示を通知する通知ステップとを有することを特徴とする。
【００１０】
また、本発明の他の形態は、外界環境を監視し、前記外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する１または２以上の外界監視装置から取得した前記イベントを管理するイベント管理方法であって、前記外界監視装置から前記イベントを取得するイベント取得ステップと、前記イベント取得ステップにおいて取得した前記イベントに応じたアクションの実行順番を示すプランを作成するプラン作成ステップと、前記プラン作成ステップにおいて作成された前記プランに含まれる前記アクションを実行するアクション実行ステップと、前記アクション実行ステップにおける前記アクションの実行状態を監視する実行状態監視ステップと、前記実行状態監視ステップにおいて監視された前記アクションの実行状態が所定の条件を満たす場合に、当該条件が満たされたことを示すイベントを発行するイベント発行ステップと、前記イベント取得ステップにおいて取得したイベントまたは前記イベント発行手段が発行したイベントにしたがい、前記外界監視装置に対し、前記イベントの発行に関する指示を通知する通知ステップとを有することを特徴とする。
【００１１】
また、本発明の他の形態は、外界環境を監視し、前記外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する１または２以上の外界監視装置から取得した前記イベントを管理するイベント管理処理をコンピュータに実行させるイベント管理プログラムであって、前記外界監視装置から前記イベントを取得するイベント取得ステップと、前記イベント取得ステップにおいて取得した前記イベントに応じたアクションであって、アクション実行装置が実行すべきアクションの実行順番を示すプランを作成するプラン作成ステップと、前記プラン作成ステップにおいて作成された前記プランに含まれる前記アクションの前記アクション実行装置による実行状態を監視する監視ステップと、前記アクションの実行状態が所定の条件を満たす場合に、当該条件が満たされたことを示すイベントを発行するイベント発行ステップと、前記イベント取得ステップにおいて取得したイベントまたは前記イベント発行ステップにおいて発行したイベントにしたがい、前記外界監視装置に対し、前記イベントの発行に関する指示を通知する通知ステップとを有することを特徴とする。
【００１２】
また、本発明の他の形態は、外界環境を監視し、前記外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する１または２以上の外界監視装置から前記イベントを取得し、当該イベントに応じた、複数のアクションを含むプランを作成するイベント管理装置と、前記アクションを実行するアクション実行装置とを備えたアクション実行システムにおいて、前記イベント管理装置は、前記外界監視装置から前記イベントを取得するイベント取得手段と、前記イベント取得手段が取得した前記イベントに応じたアクションの実行順番を示すプランを作成するプラン作成手段とを有し、前記アクション実行装置は、前記プランに含まれる前記アクションを実行するアクション実行手段と、前記アクション実行手段による実行結果にしたがい、所定の種類の前記外界環境の監視結果を通知する旨を指示すべき前記外界監視装置を前記イベント管理装置に問い合わせる問合手段とを有し、前記イベント管理装置は、前記所定の種類の前記外界環境の監視を行う外界監視装置を特定する特定手段と、前記特定手段により特定された前記外界監視装置を前記アクション実行装置に通知する通知手段とをさらに有し、前記アクション実行装置は、前記イベント管理装置から前記外界監視装置の通知を受け付け、当該外界監視装置に前記指示を通知する通知手段をさらに有することを特徴とする。
【００１３】
また、本発明の他の形態は、外界環境を監視し、前記外界環境が所定の条件を満たした場合に、当該条件が満たされたことを示すイベントを発行する１または２以上の外界監視装置から前記イベントを取得し、当該イベントに応じた、複数のアクションを含むプランを作成するイベント管理装置と、前記アクションを実行するアクション実行装置とを備えたアクション実行システムにおいて、前記イベント管理装置は、前記外界監視装置から前記イベントを取得するイベント取得手段と、前記イベント取得手段が取得した前記イベントに応じたアクションの実行順番を示すプランを作成するプラン作成手段とを有し、前記アクション実行装置は、前記プランに含まれる前記アクションを実行するアクション実行手段と、前記アクション実行手段による実行結果にしたがい、所定の種類の前記外界環境の監視結果を通知する旨を指示すべき前記外界監視装置を前記イベント管理装置に問い合わせる問合手段とを有し、前記イベント管理装置は、前記外界環境の種類から当該外界環境を行う外界監視装置を特定する特定手段と、前記特定手段により特定された前記外界監視装置に対し前記指示を通知する通知手段とをさらに有することを特徴とする。
【発明の効果】
【００１４】
本発明にかかるイベント管理装置によれば、イベント取得手段が、外界監視装置からイベントを取得し、プラン作成手段が、イベント取得手段が取得したイベントに応じたアクションの実行順番を示すプランを作成し、実行状態監視手段が、プラン作成手段により作成されたプランに含まれる前記アクションの実行状態を監視し、イベント発行手段が、実行状態監視手段がアクションの実行状態が所定の条件を満たす場合に、当該条件が満たされたことを示すイベントを発行し、通知手段が、イベント取得手段が取得したイベントまたはイベント発行手段が発行したイベントにしたがい、外界監視装置に対し、イベントの発行に関する指示を通知するので、外界監視装置は、不要な外界監視を行うことがなく処理の効率化を図ることができるという効果を奏する。さらに、イベント管理装置は、監視適切なタイミングで適切なイベントのみを取得することができるので、処理の効率化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明にかかるイベント管理装置、方法、プログラムおよびアクション実行システムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。以下、イベント管理装置をプラン実行システムの一部に適用した例を示す。
【００１６】
（実施の形態１）
実施の形態１にかかるプラン実行システム１は、移動ロボットのプラン実行を管理する。図１に示すように、プラン実行システム１は、外界監視部１０と、イベント対応部２０と、プランニングエージェント３０と、アクション実行部４０とを備えている。外界監視部１０、イベント対応部２０およびプランニングエージェント３０は、インターネット等で結合された複数のコンピュータ上に実装されている。
【００１７】
外界監視部１０は、外界環境を監視する。具体的には、外界環境として外界監視部１０の外部から得られる情報を監視する。さらに、外界監視部１０は、外界監視部１０自身に記録されている情報を参照する。そして、監視結果が予め定められている条件を満たした場合には、イベントを発行する。そして、このイベントをイベント対応部２０に通知する。ここで、イベントは、監視結果が予め定められている所定の条件を満たしていることを示す情報である。
【００１８】
外界監視部１０はまた、イベント対応部２０から通知指示を取得する。通知指示とは、外界監視部１０におけるイベント発行に関する指示である。例えば、障害物を監視し、１ｍ以内に迫った場合にイベントを発行するというように、監視対象と、イベント発行のタイミングなどが示されている。この場合、外界監視部１０は、障害物を監視し、障害物が１ｍ以内に検出された場合に、条件を満たしたと判断し、イベント対応部２０にイベントを通知する。通知指示には、この他、外界監視部１０のオンオフ、必要なイベントの種類、イベント発行のための条件、イベント発行の頻度などの情報が含まれている。
【００１９】
なお、外界監視部１０が外部から得られる情報としては、例えば、センサーから得られる情報、カメラから得られる画像情報、マイクから得られる音声情報、ネットワーク経由で得られる情報などがある。
【００２０】
さらに、外界監視部１０がコンピュータ上で実現されている場合には、当該コンピュータ内部から得られる情報、当該コンピュータのユーザインターフェイスから得られる情報、当該コンピュータに接続された外部データベースの情報、インターネット上のサイトから得られる情報、電子メールから得られる情報、インターネット経由で接続されたコンピュータから通知される情報等が考えられる。外界監視部１０は、このように、各種情報を監視することができる。
【００２１】
また、内部に記録されている情報としては、例えば、顔やマーカ等の認識に必要な画像情報、音声認識に必要な音声情報、コマンド認識に必要なコマンド情報、過去のセンサー情報の履歴等がある。
【００２２】
外界監視部１０は、複数設けられていてもよい。例えば、外界監視部１０として顔監視部と、コマンド監視部と、障害物監視部と、ネットワーク家電・センサー監視部と、温度湿度監視部と、混雑度監視部と、インターネット監視部とを備えてもよい。
【００２３】
ここで、顔監視部は、カメラ情報から、指定された人の顔を検知すると。コマンド監視部は、音声情報やＧＵＩからユーザのコマンドを認識する。障害物監視部は、超音波センサーや赤外線センサーやカメラからロボットの進行方向にある障害物を検知する。ネットワーク家電・センサー監視部は、ネットワークに繋がれたネットワーク家電やセンサーのイベント（ＯＮ／ＯＦＦイベント、洗濯機や乾燥機の停止イベント、玄関や冷蔵庫のドアの開閉イベント、防犯センサー検知イベント、電話着信イベント等）を監視する。
【００２４】
温度湿度監視部は、温度や湿度の変化イベント（５度の気温変化等）を監視する。混雑度監視部は、カメラ画像やＲＦＩＤタグや光ビーコン等を利用した人や車の混雑度変化イベントを検知する。インターネット監視部は、時々刻々と変化するインターネット上の膨大な情報から指定された新情報や状況変化を検知する。
【００２５】
イベント対応部２０は、外界監視部１０から取得した外部イベントに基づいて、次に行うべき処理内容を特定する。ここで、処理内容としては、外界監視部１０への通知指示の送信、プランニングエージェント３０へのゴールの投入、およびプランニングエージェント３０の信念の更新や参照がある。ここで、信念とは、プランニングエージェント３０に関する現在の状況を示す情報である。また、ゴールとは、実行完了したいタスクまたは達成したい状態等を示すものである。
【００２６】
さらに、イベント対応部２０は、プランニングエージェント３０からプランニングエージェント３０によるプランの実行がどのような実行状態にあるかを示す内部イベントを取得する。この場合、イベント対応部２０は内部イベントに基づいて処理内容を特定する。
【００２７】
プランニングエージェント３０は、ゴールに基づいて、複数のアクションを含むプランを作成する。図２に示すように、プランは、ゴールを達成するための１または２以上の処理であるアクションの実行順番を示すものである。すなわち、ゴールに応じて作成されるものである。プランニングエージェント３０は、プランに含まれるアクションの実行指示をアクション実行部４０に通知する。プランニングエージェント３０はまた、アクション実行部４０からアクションの実行結果を受け取り、実行結果に応じてアクションの実行を管理する。また、アクションの実行状態に応じた内部イベントをイベント対応部２０に通知する。さらに、プランニングエージェント３０は、アクション実行部４０からさらに信念更新の指示を取得すると、プランニングエージェント３０の信念を更新する。
【００２８】
アクション実行部４０は、プランニングエージェント３０からの指示にしたがいアクションを実行または中断する。そして、実行結果（成功・失敗・中断）をプランニングエージェント３０に通知する。また、アクション実行部４０は、本来のアクションの効果とは異なる状況変化を観測した場合には、観測された状況変化にしたがいプランニングエージェント３０の信念の更新を指示する。
【００２９】
なお、アクション実行部４０は、複数設けられていてもよい。例えば、移動アクション実行部、発話アクション実行部、音楽再生アクション実行部、写真撮影アクション実行部、動画撮影アクション実行部、ジェスチャー・アクション実行部、ロボット・アーム・アクション実行部、メール・アクション実行部、遠隔操作アクション実行部、センシング・アクション実行部、ブログ・掲示板書き込みアクション実行部、家電操作アクション実行部等を備えてもよい。
【００３０】
ここで、移動アクション実行部は、ロボットの移動を実行する。発話アクション実行部は発話を行う。音楽再生アクション実行部は音楽を流す。写真撮影アクション実行部は写真を撮影する。動画撮影アクション実行部は動画を撮影する。ジェスチャー・アクション実行部は、手や首や目などのロボットの身体的な動きを使ってジェスチャーを行う。ロボット・アーム・アクション実行部は、ロボット・アームで物を握ったり離したり移動させたりする。
【００３１】
メール・アクション実行部は、コンピュータや携帯電話に電子メールを送信する。遠隔操作アクション実行部は、ネットワークに繋がれたコンピュータの操作・利用を行う。センシング・アクション実行部は、センサーを使って定められた情報を取得する。データベース更新アクション実行部は、データベースのデータを更新する。ブログ・掲示板書き込みアクション実行部は、インターネット上のブログや掲示板等に書き込みを行う。家電操作アクション実行部は、インターネットや無線で接続された家電製品を操作する。
【００３２】
図３に示すように、イベント対応部２０は、外部イベント取得部２００と、内部イベント取得部２０２と、イベント用信念データベース（ＤＢ）２１０と、イベントルールＤＢ２１２と、条件判定部２２０と、処理内容抽出部２２２と、通知部２２４とを有している。外部イベント取得部２００は、外界監視部１０から通知された外部イベントを取得する。内部イベント取得部２０２は、プランニングエージェント３０から内部イベントを取得する。内部イベントとしては、具体的には、アクション実行の開始を示す開始イベントやアクション実行の終了を示す終了イベントがある。
【００３３】
イベント用信念ＤＢ２１０は、イベント対応部２０の処理に関する情報である信念を格納している。ここで、信念情報とは、イベント対応部２０における処理に関する状態の情報や、処理の前提となる状況など動的に更新される情報である。例えば、現在時刻や、移動ロボットの現在位置などがある。
【００３４】
イベントルールＤＢ２１２は、イベントルールを格納している。イベントルールにおいては、イベントと、実行条件と、処理内容とが対応付けられている。ここで、イベントとして具体的には、外界監視部１０により発行される外部イベントまたはプランニングエージェント３０により発行される内部イベントを識別するイベント識別情報が格納されている。また、実行条件とは、現在のイベント用信念ＤＢ２１０の信念情報に関する情報である。例えば、現在位置がａ地点であることなどの条件である。
【００３５】
内部イベントと処理内容とを対応付けたイベントルールの例としては、例えば、「移動というアクションが開始したら、障害物センシングをオンにする。」や、「移動というアクションが終了したら、障害物センシングをオフにする。」などがある。また、外部イベントと処理内容とを対応付けたイベントルールの例としては、例えば、「障害物を検出したら、障害物センシングをオフする。」や、「障害物を検出したら、新たなマーカ検出のためのセンサをオンする。」など、外部イベントの処理内容を行うための条件として格納している。なお、障害物センシングのオンオフは、イベント対応部２０から外界監視部１０に指示として通知される。
【００３６】
イベントルールは、具体的には、
ｅｖｅｎｔ（Ｅ，［Ｃ１，…Ｃｎ］，［Ｒ１，…Ｒｍ］）
の形をしている。ここで、Eはイベントを示している。Ｃ１，…Ｃｎは、実行条件である。Ｒ１，…Ｒｍは処理内容である。
【００３７】
このイベントルールは、イベントＥが通知されたときに、これらの実行条件Ｃ１，…Ｃｎが全て成り立っている（つまり、発火条件が成り立つ）ならば、Ｒ１から順にＲｍまでの処理を順に行うことにより、イベント処理を行うことを意味している。
【００３８】
ここで、Ｒ１，…Ｒｍはいずれも、外界監視部１０、イベント対応部２０またはプランニングエージェント３０のうちいずれかの操作である。具体的には、イベント対応部２０による信念更新、プランニングエージェント３０による信念更新、プランニングエージェント３０への割込ゴール投入、プランニングエージェント３０への通常ゴール投入、プランニングエージェント３０への割込プランチェック命令、外界監視部１０のスイッチ・オン（イベント発行の条件付き）、外界監視部１０のスイッチ・オフ、イベント要求（要求するイベントの条件付き）等がある。なお、ここで緊急ゴールとは、実行中のアクションを中断し、優先的に達成すべきゴールである。通常ゴールとは、プランニングエージェント３０が通常通りゴールを取得した順番にしたがい順に処理すべきゴールである。
【００３９】
条件判定部２２０は、外部イベント取得部２００が外部イベントを取得した場合や内部イベント取得部２０２が内部イベントを取得した場合には、イベントルールＤＢ２１２のイベントルールにおいて取得したイベントに対応付けられている実行条件を抽出する。そして、イベント用信念ＤＢ２１０を参照し、現在の状況が実行条件を満たしているか否かを判断する。
【００４０】
なお、イベントルールＤＢ２１２のイベントルールは、イベントと処理内容とを対応付けていればよく、実行条件は必ずしも必須ではない。現在の状況にかかわらずイベントが発行した場合にはかならず所定の処理を行うような場合には、実行条件は不要である。この場合には、条件判定部２２０は、条件を満たすと判断すればよい。
【００４１】
処理内容抽出部２２２は、処理対象となるイベントが実行条件を満たす場合には、イベントルールＤＢ２１２においてイベントに対応付けられている処理内容を抽出する。通知部２２４は、この処理内容に応じた処理を行う。ここで、処理内容としては、例えば、外界監視部１０への指示の通知やイベント対応部２０へのゴール投入指示の通知などがある。さらに、外界監視部１０が複数ある場合には、指示の通知先とすべき外界監視部１０を識別する識別情報も含まれている。
【００４２】
図４に示すように、プランニングエージェント３０は、ゴール取得部３００と、ゴールキュー３０２と、プラン用信念３０４と、プラン作成部３０６と、プランＤＢ３０８と、アクション管理部３１０と、内部イベント通知部３１２と、更新部３１４とを有している。ゴール取得部３００は、イベント対応部２０からゴール指示を取得する。ゴールキュー３０２は、ゴール取得部３００が取得したゴール指示に示されるゴールを格納する。プラン用信念３０４は、プラン作成に関する信念を格納している。
【００４３】
プラン作成部３０６は、プラン用信念３０４を参照し、ゴールを達成するためのプランを作成する。プランＤＢ３０８は、プラン作成部３０６により作成されたプランを格納する。アクション管理部３１０は、プランＤＢ３０８に格納されているプランを読み出し、プランに含まれているアクションの実行指示をアクション実行部４０に通知する。アクション管理部３１０は、またアクション実行部４０から実行結果を受け取る。
【００４４】
内部イベント通知部３１２は、アクション管理部３１０によるアクションの実行指示を通知した際にアクション開始を示す開始イベントをイベント対応部２０に通知する。また、アクション管理部３１０がアクション実行の成功を示す実行結果を受け取った際にアクション終了を示す終了イベントを通知する。なお、アクション実行の中断を示す実行結果を受け取った場合にも終了イベントを通知する。
【００４５】
更新部３１４は、アクション管理部３１０からの指示、イベント対応部２０およびアクション実行部４０からの信念更新指示にしたがい、プラン用信念３０４およびプランＤＢ３０８を更新する。プランＤＢ３０８を更新した結果、実行中のアクションを実行する必要がなくなった場合には、アクション管理部３１０は、アクションの中断をアクション実行部４０に通知する。
【００４６】
なお、本実施の形態にかかるプランニングエージェント３０のプラン用信念３０４は、格納されている信念情報の一部をイベント対応部２０のイベント用信念ＤＢ２１０に格納されている信念にミラーリングすることにより情報を共有してもよい。また、他の例としては、イベント対応部２０とプランニングエージェント３０それぞれがイベント用信念ＤＢ２１０およびプラン用信念３０４を有するのにかえて、１つの信念ＤＢをイベント対応部２０およびプランニングエージェント３０で共有することとしてもよい。
【００４７】
図５に示すように、外部イベント取得部２００が外部イベントを取得した場合（ステップＳ１００，Ｙｅｓ）、または内部イベント取得部２０２が内部イベントを取得した場合には（ステップＳ１０２，Ｙｅｓ）、条件判定部２２０は、イベントルールＤＢ２１２を参照し、取得した外部イベントまたは内部イベントに対応付けられている実行条件を特定する（ステップＳ１０４）。さらに、現在イベント用信念ＤＢ２１０に格納されている信念情報が実行条件を満たすか否かを判定する。イベント用信念ＤＢ２１０の信念情報が実行条件を満たす場合には（ステップＳ１０６，Ｙｅｓ）、処理内容抽出部２２２は、イベントルールＤＢ２１２において外部イベントまたは内部イベントに対応付けられている処理内容を抽出する（ステップＳ１０８）。
【００４８】
次に、処理内容に応じて、通知部２２４は処理内容を実行する（ステップＳ１１０）。具体的には、外界監視部１０へのイベント指示であった場合には、通知部２２４は、イベント指示を外界監視部１０に通知する。また、処理内容がプランニングエージェントへのゴール指示または信念更新であった場合には、通知部２２４は、ゴール指示または信念更新をプランニングエージェント３０に通知する。なお、同一の外部イベントや内部イベントに複数の処理内容が対応付けられていてもよい。この場合には、処理内容抽出部２２２は、最も優先順位の高い処理内容を選択することとする。
【００４９】
図６に示すように、プランニングエージェント３０は、通知部２２４から通常ゴールを取得すると（ステップＳ１２０）、ゴールキュー３０２にゴールが格納されているか否かを確認する。ゴールキュー３０２にゴールが格納されていない場合には（ステップＳ１２２，Ｎｏ）、通常ゴールに対するプラン実行処理が行われる（ステップＳ１２４）。一方、ゴールキュー３０２にゴールが格納されている場合には（ステップＳ１２２，Ｙｅｓ）、取得した通常ゴールをプランＤＢ３０８の最後尾に格納し（ステップＳ１２６）、処理が完了する。
【００５０】
次に、プランＤＢ３０８にゴールが存在する場合には（ステップＳ１２８，Ｙｅｓ）、プランＤＢ３０８の先頭ゴールに対するプラン実行処理が行われる（ステップＳ１３０）。そして、ステップＳ１２８においてプランＤＢ３０８にゴールが存在しなくなると（ステップＳ１２８，Ｎｏ）、処理が完了する。
【００５１】
ステップＳ１２４，ステップＳ１３０で行われるプラン実行処理においては、図７に示すように、プラン作成部３０６は、処理対象となるゴールに対応するプランを作成する（ステップＳ２００）。次に、作成または更新したプランが存在し（ステップＳ２０２，Ｙｅｓ）、プランの実行が終了していない場合には（ステップＳ２０４，Ｙｅｓ）、内部イベント通知部３１２は、実行すべきアクションの開始を示す開始イベントをイベント対応部２０に通知する（ステップＳ２０６）。
【００５２】
次に、アクション実行部４０に対しアクションの実行指示を通知する（ステップＳ２０８）。次に、実行したアクションの終了を示す実行状態をイベント対応部２０に通知する（ステップＳ２１０）。次に、更新部３１４は、アクションの実行結果（成功・失敗・中断）にしたがいプラン用信念３０４およびプランＤＢ３０８を更新する（ステップＳ２１２，２１４）。そして、ステップＳ２０２に戻る。
【００５３】
なお、ステップＳ２０８におけるアクションの実行結果が中断になるのは、別スレッドの、外部から信念を更新された場合（後述）や、割込ゴールが投入され、実行中のアクションが中断された場合である。この場合には、ステップＳ２０８から速やかにステップＳ２１０に処理が移行する。
【００５４】
ステップＳ２０４においてプラン実行が終了すると（ステップＳ２０４，Ｙｅｓ）、プラン実行成功時の処理を行い（ステップＳ２２０）、処理が完了する。また、ステップＳ２０２において作成または更新したプランが存在しない場合には（ステップＳ２０２，Ｎｏ）、プラン実行失敗時の処理を行い（ステップＳ２２２）、処理が完了する。
【００５５】
図８に示すようにプランニングエージェント３０は、割込ゴールを取得すると（ステップＳ３００）、このとき他のゴールに対応するプラン実行処理が行われているか否かを確認する。他のゴールに対応するプラン実行処理が行われていない場合には（ステップＳ３０２，Ｎｏ）、割込ゴールに対応するプラン実行処理を行う（ステップＳ３０４）。
【００５６】
一方、他のゴールに対応するプラン実行処理が行われている場合には（ステップＳ３０２，Ｙｅｓ）、現在実行中のアクション、すなわち他のゴールを達成するためのアクションを中断する（ステップＳ３１０）。なお、ステップＳ３１０においてアクションが中断されると、このアクションの実行結果（中断）にしたがい、アクション実行終了を示す実行状態がイベント対応部２０に通知される（ステップＳ２１０）。次に、実行中のプランを中断するために、図７で示される別スレッドの実行中プランの処理がステップＳ２１５まで到達するのを待つ（ステップＳ３１２）。
【００５７】
次に、割込ゴールに対応するプラン実行処理を行う（ステップＳ３１４）。割込ゴールに対するプラン実行処理が終了すると（ステップＳ３１６，Ｙｅｓ）、ステップＳ３１２において中断したプランの実行を再開する（ステップＳ３１８）。このとき、図７で示される別スレッドにおいて、プランの実行が再開され、ステップＳ２１５からステップＳ２０２に処理が進む。
【００５８】
図９に示すように、外部からの指示によりプラン用信念３０４が更新されると（ステップＳ４００）、プランＤＢ３０８に実行中または中断中のプランが存在するか否かを確認する。実行中または中断中のプランが存在しない場合には（ステップＳ４０２，Ｙｅｓ）、このまま終了する。
【００５９】
一方、実行中または中断中のプランが存在する場合には（ステップＳ４０２，Ｙｅｓ）、プラン用信念３０４の更新によりこれらのプランに影響が及ぶ可能性がある。そこで、この場合には、信念更新時の実行中および中断中プラン群を、更新後の信念に基づいて修正する（ステップＳ４０４）。
【００６０】
さらに、修正後の実行中プランにおいて、実行中のアクションの実行継続をすることが無意味である場合、すなわち、実行中のアクションが信念更新後に修正された実行中プランと関連がないような場合には（ステップＳ４０６，Ｙｅｓ）、実行していたアクションの実行を中断し（ステップＳ４０８）、処理を終了する。なお、ステップＳ４０８においてアクションの実行を中断した直後に、別スレッドのプラン実行処理におけるアクションの実行は中断され、アクションの実行結果は中断となる。また、実行中のアクションを継続することが無意味とならない場合には（ステップＳ４０６，Ｙｅｓ）、このまま終了する。
【００６１】
図１０に示すように、プランニングエージェント３０はａ〜ｇまでの７つのアクションからなるプランを実行するとする。このプランは、Ａさんを発見することをゴールとするものである。
この場合、アクションａ〜ｄを実行している間にはＡさんを発見する可能性がなく、ユーザが暇になる。そこで、アクションａ〜ｄを実行している間は、インターネット情報からイベントを監視することとする。
【００６２】
ただし、やみくもに膨大なインターネットの更新情報をサーチするのは処理の無駄となる。そこで、ユーザの興味ある情報をサーチすることとする。ここでは、ユーザが野球に興味があり、プランニングエージェント３０がアクションａの実行の指示を開始する際に野球が行われているならば、５分ごとにチェックし、得点が変化したときにのみイベントを発行するよう外界監視部１０に通知指示を出すこととする。
【００６３】
また、アクションcからeまで実行している間はロボットが移動するので、障害物を検知する必要がある。この間は進行方向１ｍ以内に障害物が発見したときのみにイベントを発行することにする。さらに、アクションｅからｆまで実行している間には、ロボットが探しているＡさんを発見する可能性が高いので、カメラ情報からＡさんの顔を５０％の精度で認識できたら、イベントを発行することにする。
【００６４】
上記処理のうち、野球の状況を５分毎にチェックし、得点が変化したときにイベントを発行する処理を実現するためのイベントルールは、図１１に示す通りである。
【００６５】
図１１に示すイベントルールは、代表的な論理型プログラミング言語であるＰｒｏｌｏｇ形式の文法で記載されている。ここで、「Ｕ，Ｄａｙ，Ｔｉｍｅ，ＳｔａｒｔＴｉｍｅ，ＥｎｄＴｉｍｅ」のように、英大文字で始まる英数字列は変数とみなされる。“＿”は無名変数と呼ばれ、何が代入されるかを問わない場合に用いる変数である。英子文字で始まる英数字列は定数である。
【００６６】
図１１に示す対応ルールの１行目に記載されている「ｂｅｇｉｎ（ａ）」はアクションａの開始イベントを示している。アクションａの開始イベントｂｅｇｉｎ（ａ）を取得した場合には、条件判定部２２０は、２行目以降を評価することにより実行条件を満たすか否かを評価する。開始イベントを受け付けた際にイベント用信念ＤＢ２１０が格納している信念は図１２に示す通りであるとする。なお、信念は事実の集合である。信念はＰｒｏｌｏｇの項で記述することとする。また、信念に事実Fが含まれていることを、「ｂｅｌｉｅｆ（Ｆ）．」と記述することとする。
【００６７】
初期状態においてイベント用信念ＤＢ２１０に格納すべき信念は、例えば、図１２に示すように複数の事実をテキストファイルで記述して予め定められた場所に保存しておき、システムを起動する際に、このテキストファイルをイベント用信念ＤＢ２１０に読み込むこととする。以下、イベント用信念ＤＢ２１０およびプラン用信念３０４に格納されている信念は、図１１と同様に表現して説明する。
【００６８】
条件判定部２２０は、まず、イベントルール中の「ｕｓｅｒ（Ｕ）」を評価する。図１２に示す信念情報には、「ｂｅｌｉｅｆ（ｕｓｅｒ（ｔａｒｏ））．」が含まれている。したがって、「ｕｓｅｒ（Ｕ）」の変数「Ｕ」は「ｔａｒｏ」にバインドされる。次に、イベントルール中の「ｌｉｋｅｓ（ｔａｒｏ，ｂａｓｅｂａｌｌ）」を評価する。図１２に示す信念情報に、「ｂｅｌｉｅｆ（ｌｉｋｅｓ（ｔａｒｏ，ｂａｓｅｂａｌｌ））．」が含まれている。したがって、この条件は成り立つことがわかる。
【００６９】
次の行の「ｅｖａｌ（ｎｏｗ（Ｄａｙ，Ｔｉｍｅ））」中の「（ｎｏｗ（Ｄａｙ，Ｔｉｍｅ）)」は外部モジュールにより評価される内容である。外部モジュールにおける評価時の日と時間がそれぞれ変数ＤａｙとＴｉｍｅにバインドされる。ここでは、「Ｄａｙ＝Ｆｒｉｄａｙ，Ｔｉｍｅ＝１９：００」のようにバインドされたと仮定する。次に、イベントルール中の「ｗｈｅｎ（ｂａｓｅｂａｌｌ，ｆｒｉｄａｙ，ＳｔａｒｔＴｉｍｅ，ＥｎｄＴｉｍｅ）」を評価する。図１２の信念情報に、「ｂｅｌｉｅｆ（ｗｈｅｎ（ｂａｓｅｂａｌｌ，ｆｒｉｄａｙ，１８：００，２１：００））.」が含まれている。したがって、「ＳｔａｒｔＴｉｍｅ＝１８：００，ＥｎｄＴｉｍｅ＝２１：００」とバインドされる。
【００７０】
なお、この例では、野球の試合の開始予定時刻と終了予定時刻をイベント用信念ＤＢ２１０から得ているが、「ｅｖａｌ（ｗｈｅｎ（ｂａｓｅｂａｌｌ，Ｄａｙ，ＳｔａｒｔＴｉｍｅ，ＥｎｄＴｉｍｅ））」として外部モジュールから情報を得ることとしてもよい。
【００７１】
次に、外部モジュールにより、「ｅｖａｌ（ｂｅｔｗｅｅｎ（１９：００，１８：００，２１：００））」を評価する。本例においては、現在時刻Ｔｉｍｅ＝１９：００が試合の開始予定時刻ＳｔａｒｔＴｉｍｅ＝１８：００と終了予定時刻ＥｎｄＴｉｍｅ＝２１：００の間にあるか否かを評価する。ここでは、この条件が満たされている。
【００７２】
以上のように、すべての実行条件が満たされている場合には、この対応ルールが発火し、外界監視部１０に対し以下の処理を行う。
ｓｗｉｔｃｈＯｎ（ｎｅｗｓ（ｂａｓｅｂａｌｌ，＿），［ｆｒｅｑｕｅｎｃｙ（５），ｃｈａｎｇｅ（ｓｃｏｒｅ）］)
ａｓｓｅｒｔＦｌｕｅｎｔ（ｓｅｌｆ，ｃｈｅｃｋｉｎｇ（ｎｅｗｓ（ｂａｓｅｂａｌｌ）））
ここで、「ｓｗｉｔｃｈＯｎ（ｎｅｗｓ（ｂａｓｅｂａｌｌ，＿），［ｆｒｅｑｕｅｎｃｙ（５），ｃｈａｎｇｅ（ｓｃｏｒｅ）］）」は、野球のニュースイベント（ｎｅｗｓ（ｂａｓｅｂａｌｌ，＿））を５分ごとに（ｆｒｅｑｕｅｎｃｙ（５））監視し、スコアが変化（ｃｈａｎｇｅ（ｓｃｏｒｅ））したら、イベントを発行するように外界監視部を操作することを意味している。「ａｓｓｅｒｔＦｌｕｅｎｔ（ｓｅｌｆ，ｃｈｅｃｋｉｎｇ（ｎｅｗｓ（ｂａｓｅｂａｌｌ）））」は、イベント用信念ＤＢ２１０に、野球ニュースイベントを監視中ｃｈｅｃｋｉｎｇ（ｎｅｗｓ（ｂａｓｅｂａｌｌ）））であることを記録することを意味している。
【００７３】
「ａｓｓｅｒｔＦｌｕｅｎｔ（ｓｅｌｆ，ｃｈｅｃｋｉｎｇ（ｎｅｗｓ（ｂａｓｅｂａｌｌ）））」を実行した直後には、イベント用信念ＤＢ２１０の信念情報には図１３のように冒頭に「ｂｅｌｉｅｆ（ｃｈｅｃｋｉｎｇ（ｎｅｗｓ（ｂａｓｅｂａｌｌ）））．」が追加される。
【００７４】
さらに、このイベントルールが発火する直前の外界監視部１０における外部イベント通知のための条件が図１４に示すとおりであったとする。この場合、「ｓｗｉｔｃｈＯｎ（ｎｅｗｓ（ｂａｓｅｂａｌｌ，＿），［ｆｒｅｑｕｅｎｃｙ（５），ｃｈａｎｇｅ（ｓｃｏｒｅ）］）」の実行後は、外部イベント通知のための条件は図１５に示すように更新される。すなわち、監視対象として「ｎｅｗｓ（ｂａｓｅｂａｌｌ，＿）（条件：ｆｒｅｑｕｅｎｃｙ（５）とｃｈａｎｇｅ（ｓｃｏｒｅ））」が追加される。
【００７５】
このように、外部イベントや内部イベントに応じて、外界監視部１０の処理を変更し、かつイベント対応部２０が取得すべき外部イベントを変更することができる。これにより、外界監視部１０は、無駄な外界環境の監視を行わなくてよい。また、イベント対応部２０は、不要なイベントを取得することがない。これにより、処理の効率化を図ることができる。
【００７６】
さらに、イベントルールＤＢ２１２は、図１６に示すイベントルールを保持している。これにより、外部イベント取得部２００が外界監視部１０から野球のニュースイベントの通知を取得した場合に、そのニュースを伝えるという割込ゴールをプランニングエージェント３０に投入することができる。
【００７７】
図１６に示すイベントルールにおける「ｎｅｗｓ（ｂａｓｅｂａｌｌ，Ｎｅｗｓ）」は、ニュースイベントである。ニュースイベント通知時に変数Ｎｅｗｓに読み上げるべきニュースの内容がバインドされる。例えば、イベント「ｎｅｗｓ（ｂａｓｅｂａｌｌ，‘ジャイアンツが１点を入れ、ジャイアンツがタイガーズに１対０でリードしています。’）」がイベント対応部２０に伝えられたとする。
【００７８】
この場合、Ｎｅｗｓは、「‘ジャイアンツが1点を入れ、ジャイアンツがタイガーズに１対０でリードしています。’」となる。また、実行条件「ｐｌａｎｎｉｎｇＡｇｅｎｔ（Ａｇｅｎｔ）」をチェックする際に、プランニングエージェント３０の名前が変数Ａｇｅｎｔにバインドされる。このときのイベント用信念ＤＢ２１０の信念情報が図１３に示すとおりである場合には、「ｂｅｌｉｅｆ（ｐｌａｎｎｉｎｇＡｇｅｎｔ（ｐａ））.」が示すとおりに、プランニングエージェント３０の名前はｐａであり、Ａｇｅｎｔ＝ｐａとなる。
【００７９】
なお、イベント対応部２０は、いろいろなエージェントに対し、ゴールを投入する実施形態も考えられる。そのため上述のようにプランニングエージェント３０の名前を参照することとしている。他の例としては、イベント対応部２０がゴールを投入することのできるプランニングエージェント３０が１つしか存在しない場合には、エージェント名を調べなくても、ゴールの投入先は一意に定まる。この場合には、プランニングエージェント３０の名前の参照は不要である。
【００８０】
「ｉｎｓｅｒｔＧｏａｌ」は引数のゴールを割込ゴールとして指定されたプランニングエージェント３０（Ａｇｅｎｔ＝ｐａ）に投入することを意味している。割込ゴール「ｓｐｅａｋ（Ｎｅｗｓ）」は変数Ｎｅｗｓにバインドされているニュースの内容を読み上げるというゴールである。なお、この割込ゴールを実行する前には、現在実行しているプランとアクションａを中断する。割込ゴールｓｐｅａｋ（Ｎｅｗｓ）の実行が終了した時点で、中断しているアクションａの実行を再開し、中断しているプランの実行を再開する。
【００８１】
さらに、イベントルールＤＢ２１２は、図１７に示すイベントルールを保持している。これにより、アクションｄを終了したときに、野球ニュースイベントを監視している（ｃｈｅｃｋｉｎｇ（ｎｅｗｓ（ｂａｓｅｂａｌｌ）））ならば、その監視を終了（ｓｗｉｔｃｈＯｆｆ（ｎｅｗｓ（ｂａｓｅｂａｌｌ,＿）））し、イベント用信念ＤＢ２１０から、イベントｎｅｗｓ（ｂａｓｅｂａｌｌ,＿）を監視中であるという信念を消去（ｒｅｔｒａｃｔＦｌｕｅｎｔ（ｓｅｌｆ,ｃｈｅｃｋｉｎｇ（ｎｅｗｓ（ｂａｓｅｂａｌｌ）））する。
【００８２】
プランニングエージェント３０がアクションｄの終了イベント「ｅｎｄ（ｄ）」をイベント対応部２０に通知したとする。この場合、イベント対応部２０においては、イベントルールＤＢ２１２を参照し、「ｓｗｉｔｃｈＯｆｆ（ｎｅｗｓ（ｂａｓｅｂａｌｌ,＿））」の指示が外界監視部１０に通知される。外界監視部１０による監視についての条件は、図１５に示す条件から図１４に示す条件に変更される。さらに、外界監視部１０は、イベント「ｎｅｗｓ（ｂａｓｅｂａｌｌ,＿）（条件：ｆｒｅｑｕｅｎｃｙ（５）とｃｈａｎｇｅ（ｓｃｏｒｅ））」の監視を停止する。
【００８３】
次に、イベント対応部２０は、「ｒｅｔｒａｃｔＦｌｕｅｎｔ（ｓｅｌｆ,ｃｈｅｃｋｉｎｇ（ｎｅｗｓ（ｂａｓｅｂａｌｌ）））の指示を外界監視部１０に通知する。そして、イベント用信念ＤＢ２１０においては、図１３に示す信念から「ｂｅｌｉｅｆ（ｃｈｅｃｋｉｎｇ（ｎｅｗｓ（ｂａｓｅｂａｌｌ）））．」が削除され、図１２に示す信念に変更される。同様にして、プラン実行中の他のイベント監視も行うことができる。
【００８４】
このように、プランの実行状況と内部・外部状況に応じて、欲しいイベントを欲しいときに監視し、発行することができる。これにより、外界監視部やイベント対応部を効率的かつ効果的に動作させることができる。
【００８５】
次に、移動ロボットが移動する際の処理について説明する。移動ロボットは、図１８に示す移動経路を移動可能である。２つのノードを結ぶ線はアークを示している。ロボットはアークに沿って移動する。このような地図は、プランニングエージェント３０のプラン用信念３０４に格納されている。具体的には、図１９に示す信念が格納されている。
【００８６】
図１９に示す信念のうち１番目の行の「ｂｅｌｉｅｆ（ｃｏｎｎｅｃｔｓＮｏｄｅｓ（ａｒｃ１，ｎｏｄｅ１，ｎｏｄｅ２））．」はロボットがａｒｃ１沿いにｎｏｄｅ１からｎｏｄｅ２まで移動できる経路である事実「ｃｏｎｎｅｃｔｓＮｏｄｅｓ（ａｒｃ１，ｎｏｄｅ１，ｎｏｄｅ２）」を表している。他の行についても同様の意味を表している。なお、プラン用信念３０４にはこれ以外の事実も格納されているが、図１９においては省略している。
【００８７】
この移動経路中の各ノードには画像認識できるマーカが貼ってあることとする。移動ロボットは、このマーカを認識することにより、当該マーカに対応するノード付近に移動することができる。図１８に示す移動ロボットの位置においては、付近のｎｏｄｅ１０とｎｏｄｅ１２とｎｏｄｅ１３を認識可能である。さらに、これらのノードまで直接移動することが可能である。この状態において、移動ロボットがユーザからｎｏｄｅ４まで行くように命じられたとする。なお、このときイベントルールＤＢ２１２には、図２０に示すイベントルールが格納されているとする。
【００８８】
ユーザからの命令は、常時稼動しているユーザインターフェイスからの情報を監視する外界監視部が認識する。そして、この外界監視部は、コマンド認識イベント「ｃｏｍｍａｎｄ（ｇｏｔｏ（ｎｏｄｅ４））」を発行し、外部イベントとしてプランニングエージェント３０に通知する。
【００８９】
プランニングエージェント３０は、この外部イベントを取得すると、図２０に示すイベントルールを参照し、「ｇｏｔｏ（ｎｏｄｅ４）」というゴールをアクション実行部４０に投入する。
【００９０】
具体的には、イベント対応部２０は、外部イベント「ｃｏｍｍａｎｄ（ｇｏｔｏ（ｎｏｄｅ４））」を取得すると、変数イベントルール中の「Ｎｏｄｅ」に「ｎｏｄｅ４」をバインドする。さらに、このときイベント用信念ＤＢ２１０が図２１に示す信念を格納しているとする。なお、実行条件の判定時に変数「Ａｇｅｎｔ」に、プランニングエージェント３０の名前「ｐａ」がバインドされている。この場合、通知部２２４は、「ｇｏｔｏ（ｎｏｄｅ４）」を割込ゴールとして投入（ｉｎｓｅｒｔＧｏａｌ（ｐａ，ｇｏｔｏ（ｎｏｄｅ４）））する。
【００９１】
プランニングエージェント３０が最初に作成するプランでは、周囲のマーカ（ｎｏｄｅ１０，ｎｏｄｅ１２，ｎｏｄｅ１３）を画像認識で探索するアクションを実行してから、認識したマーカのあるノード経由でｎｏｄｅ４まで移動するプランを作成するアクションを実行することとする。
【００９２】
この場合、周囲のマーカを探索するアクションを実行すると、プランニングエージェント３０のプラン用信念３０４の信念に以下の３つの事実が追加され、プラン用信念３０４は図２２に示す通りになる。
ｆｏｕｎｄＭａｒｋｅｒ（ｎｏｄｅ１０）．
ｆｏｕｎｄＭａｒｋｅｒ（ｎｏｄｅ１２）．
ｆｏｕｎｄＭａｒｋｅｒ（ｎｏｄｅ１３）．
【００９３】
すなわち、プラン用信念３０４には、以下３つの信念が追加される。
ｂｅｌｉｅｆ（ｆｏｕｎｄＭａｒｋｅｒ（ｎｏｄｅ１０））．
ｂｅｌｉｅｆ（ｆｏｕｎｄＭａｒｋｅｒ（ｎｏｄｅ１２））．
ｂｅｌｉｅｆ（ｆｏｕｎｄＭａｒｋｅｒ（ｎｏｄｅ１３））．
【００９４】
プラン作成部３０６は、更新後のプラン用信念３０４を参照し、割込ゴール「ｇｏｔｏ（ｎｏｄｅ４）」を達成するためのプランを作成する。具体的には、図１８の矢印の通りの最短ルートで移動を行うためのプランを作成する。最短ルートの計算に用いるプランニングアルゴリズムについては、[Hayashi06]  H.  Hayashi,  S.  Tokura,  T.  Hasegawa,  and  F.  Ozaki.  An  incremental  forward-chaining  HTN  planning  agent  in  dynamic  domains.  In  Post-Proceedings  of  DALT05,  LNAI  3904,  pages  171-187,  Springer-Verlag,  2006.に記載されている。この方法によれば、プラン実行時に信念が更新されても、最新の信念に対し、正しくかつコスト面で最適に動作するようにプランを動的に修正しながら実行するオンラインプランニングを行うことができる。このアルゴリズムは、経路探索以外のプラン作成にも用いることができる。
【００９５】
また、他の例としては、ダイクストラの方法やＡ＊など、よく知られたグラフ状の地図の最短経路探索アルゴリズムを用いてもよい。
【００９６】
アクション管理部３１０は、認識したマーカへの移動や、アークに沿ったノード間移動を１つのアクションとして、アクション実行部４０に実行指示を通知する。認識したマーカはプランニングエージェント３０のプラン用信念３０４に記録される。例えば、図１８に示すルートに従い、マーカ認識したｎｏｄｅ１０への移動アクション「ｇｏｔｏＲｅｃｏｇｎｉｚｅｄＮｏｄｅ（ｎｏｄｅ１０）」を実行したとする。このアクションの実行後には図２２に示す信念の以下３つの事実は削除され、信念は図１９に示す通りに変更される。これは、認識できたマーカでも、移動ロボットが移動すると、必ずしも認識できなくなるからである。
ｂｅｌｉｅｆ（ｆｏｕｎｄＭａｒｋｅｒ（ｎｏｄｅ１０））．
ｂｅｌｉｅｆ（ｆｏｕｎｄＭａｒｋｅｒ（ｎｏｄｅ１２））．
ｂｅｌｉｅｆ（ｆｏｕｎｄＭａｒｋｅｒ（ｎｏｄｅ１３））．
【００９７】
図２３に示すように、移動ロボットがｎｏｄｅ１０からｎｏｄｅ８へのアークａｒｃ１０に沿った移動中に比較的小さい障害物を検知したとする。このとき、アクション実行部４０は、超音波センサーや赤外線センサーなどのセンサー情報を移動アクション実行時に監視しており、これらのセンサー情報からｎｏｄｅ８方向に障害物を検知すると、移動ロボットを緊急停止させる。その後、障害物を回避してからｎｏｄｅ８へ移動させる。
【００９８】
移動アクションを実行する際には、同様に外界監視部が障害物を監視し、例えば、１ｍ前方に障害物を発見すると、障害物発見イベントを発行しイベント対応部２０に通知する。ノード間の移動アクション実行時に移動方向への障害物を監視する外界監視部を起動し、アーク沿いにノードへ移動中であることをイベント対応部２０のイベント用信念ＤＢ２１０に記録するには、図２４に示すイベントルールを利用する。
【００９９】
例えば、図１８の経路に従い、移動ロボットがｎｏｄｅ１０を出発しａｒｃ１０沿いにｎｏｄｅ８へ向かったとする。このとき、プランニングエージェント３０は、イベント対応部２０に対し、アクションの開始イベント「ｂｅｇｉｎ（ｐａ，ｇｏｔｏＮｅｘｔＮｏｄｅ（ａｒｃ１０，ｎｏｄｅ８））」を通知する。この開始イベントの通知前のイベント対応部２０のイベント用信念ＤＢ２１０が図２１に示す通りであったとする。この場合、通知後の信念は図２５に示す通りになる。すなわち、「ｂｅｌｉｅｆ（ｄｏｉｎｇ（ｐａ，ｇｏｔｏＮｅｘｔＮｏｄｅ（ａｒｃ１０，ｎｏｄｅ８）））．」が追加される。
【０１００】
また、この開始イベントの通知前に外界監視部が図１４に示すイベントを監視していたとする。この場合、開始イベント通知後に外界監視部が監視するイベントは図２６のように変更される。すなわち、新たに監視イベントとして「ｏｂｊｅｃｔＦｏｕｎｄ（ｎｏｄｅ８）（条件：ａｃｃｕｒａｃｙ（１））」が追加される。
【０１０１】
障害物を検知したときには移動アクションについてのアクション実行部は障害物回避を開始する。そして、障害物回避が終了したら引き続き指定されたノードへの移動を行う。なお、障害物を回避している間に、外界監視部が障害物検知をする必要はない。逆に、障害物がある状態からない状態への状態変化は検知したい。また、障害物回避をしている間に、偶然、マーカを認識できるかもしれないので、マーカを監視する外界監視部を起動する。移動方向への障害物を検知したことも信念に記録したい。このような障害物検知イベントの処理を行うためには、図２７に示すイベントルールを利用する。
【０１０２】
例えば、図２３のように、移動ロボットがｎｏｄｅ１０を出発し、ａｒｃ１０沿いにｎｏｄｅ８へ向かっている途中に障害物を進行方向１ｍ以内に検知したとする。この場合、外界監視部はイベント対応部２０に対し、外部イベント「ｏｂｊｅｃｔＦｏｕｎｄ（ｎｏｄｅ８）」を通知する。イベント対応部２０のイベント用信念ＤＢ２１０の信念は、図１６から図２８の通りに変更される。すなわち、「ｂｅｌｉｅｆ（ｏｂｊｅｃｔＡｈｅａｄ（ｎｏｄｅ８））．」が追加される。
【０１０３】
また、外界監視部が監視しているイベントは図２６から図２９の通りに変更される。すなわち、これまで監視してきたイベント「ｏｂｊｅｃｔＦｏｕｎｄ（ｎｏｄｅ８)（条件：ａｃｃｕｒａｃｙ（１））」を監視するのを止める。さらに、新たに監視するイベントとして「ｏｂｊｅｃｔＮｏｔＦｏｕｎｄ（ｎｏｄｅ８）（条件：ａｃｃｕｒａｃｙ（１）），ｍａｒｋｅｒＦｏｕｎｄ（＿）（条件：なし）」を追加する。
【０１０４】
障害物がなくなると、信念を更新する。さらに、図３０に示されるイベントルールにしたがい、もとのアーク沿いの移動時の信念および外界監視部の状態に戻す。例えば、図２３のように、ロボットがｎｏｄｅ１０を出発し、ａｒｃ１０沿いにｎｏｄｅ８へ向かっている途中に障害物を回避し終え、ｎｏｄｅ８方向に障害物がなくなった場合には、外界監視部はイベント対応部２０に対し、イベント「ｏｂｊｅｃｔＮｏｔＦｏｕｎｄ（ｎｏｄｅ８）」を通知する。このとき、イベント対応部２０のイベント用信念ＤＢ２１０は、図２８の状態から図２５に示す状態に変更される。すなわち、「ｂｅｌｉｅｆ（ｏｂｊｅｃｔＡｈｅａｄ（ｎｏｄｅ８））．」が削除される。
【０１０５】
また、外界監視部が監視するイベントは、図２９に示す状態から図２６に示す状態に変化する。すなわち、これまで監視してきたイベント「ｏｂｊｅｃｔＮｏｔＦｏｕｎｄ（ｎｏｄｅ８）（条件：ａｃｃｕｒａｃｙ（１）），ｍａｒｋｅｒＦｏｕｎｄ（＿）（条件：なし）」の監視を終了する。さらに、新たに監視するイベントとして「ｏｂｊｅｃｔＦｏｕｎｄ（ｎｏｄｅ８）（条件：ａｃｃｕｒａｃｙ（１））」を追加する。
【０１０６】
アーク沿いの移動が終了したら、図３１に示すイベントルールにしたがい、障害物情報とアーク沿いの移動中であることをイベント対応部２０の信念から消去し、障害物検出関連の外界監視は終了する。
【０１０７】
例えば、図２３のように、ロボットがｎｏｄｅ１０を出発し、ａｒｃ１０沿いにｎｏｄｅ８へ向かっている途中に障害物を回避し終え、ｎｏｄｅ８方向に障害物がなくなってからｎｏｄｅ８方向に向かい、ｎｏｄｅ８に到着したときには、プランニングエージェント３０は、イベント対応部２０に対しアクションの終了イベント「ｅｎｄ（ｐａ，ｇｏｔｏＮｅｘｔＮｏｄｅ（ａｒｃ１０，ｎｏｄｅ８））」を通知する。
【０１０８】
このとき、イベント対応部２０のイベント用信念ＤＢ２１０は、図２５の状態から図２１に示す状態に変化する。すなわち、「ｂｅｌｉｅｆ（ｄｏｉｎｇ（ｐａ，ｇｏｔｏＮｅｘｔＮｏｄｅ（ａｒｃ１０，ｎｏｄｅ８）））．」が削除される。また、外界監視部が監視するイベントは、図２６に示す状態から図１４に示す状態に変化する。すなわち、これまで監視してきたイベント「ｏｂｊｅｃｔＦｏｕｎｄ（ｎｏｄｅ８）（条件：ａｃｃｕｒａｃｙ（１））」の監視を終了する。
【０１０９】
図２３を参照しつつ説明した例においては、わずかに移動経路を変更し障害物を回避するだけで済み、プランニングエージェント３０におけるプラン実行への影響はなかった。すなわち、アクション実行中にプランの変更が生じていない。これに対し、図３２に示す例においては、ａｒｃ１０沿いにｎｏｄｅ１０からｎｏｄｅ８まで移動中、やや大きめの障害物を回避している間に、偶然、ｎｏｄｅ７のマーカを認識（ｍａｒｋｅｒＦｏｕｎｄ（ｎｏｄｅ７））し、距離の短いルートへプランを変更する。この処理のためのイベントルールは、図３３の通りである。
【０１１０】
ここで、認識したマーカがあるＮｏｄｅが移動中のａｒｃの両端のノード（ＮｏｄｅとＮｅｘｔＮｏｄｅ）でない場合には、その発見したマーカのあるノード（Ｎｏｄｅ）をプランニングエージェント３０のプラン用信念３０４に記録（ａｓｓｅｒｔＦｌｕｅｎｔ（Ａｇｅｎｔ，ｆｏｕｎｄＭａｒｋｅｒ（Ｎｏｄｅ）））する。プランニングエージェント３０は、エージェントの現在位置からそのノードまで直接行くことができると判定し、現在のルートより短い移動距離のルートが見つかった場合には、その新ルートにプランを変更する。
【０１１１】
なお、「ｃｈｅｃｋＰｌａｎ（Ａｇｅｎｔ）」は、プランニングエージェント３０（Ａｇｅｎｔ）がたとえアクションを実行している最中であろうとも、信念更新後のプラン修正の結果、必要があれば、実行中のアクションの実行を中止することを意味する。つまり、移動プランを修正した結果、次に行くべきノードがＮｅｘｔＮｏｄｅでない場合には、移動ロボットがＮｅｘｔＮｏｄｅに到着する前に、実行中のＮｅｘｔＮｏｄｅへの移動アクションを中止する。
【０１１２】
また、「ｑｕｅｒｙ（Ａｇｅｎｔ，ｃｏｎｎｅｃｔｓＮｏｄｅｓ（Ａｒｃ，ＳｔａｒｔＮｏｄｅ，ＮｅｘｔＮｏｄｅ））」において、ｑｕｅｒｙは指定するエージェント（Ａｇｅｎｔ）の信念に関する評価である。与えられた事実の真偽値をそのエージェントに問い合わせ、「ｃｏｎｎｅｃｔｓＮｏｄｅｓ（ａｒｃ，ＳｔａｒｔＮｏｄｅ，ＮｅｘｔＮｏｄｅ）」が真の場合に成立する。先に述べた通り、「ｅｖａｌ（ｄｉｆｆｅｒｅｎｔ（Ｎｏｄｅ，ＳｔａｒｔＮｏｄｅ））」において、ｅｖａｌの括弧内の条件判定「ｄｉｆｆｅｒｅｎｔ（Ｎｏｄｅ，ＳｔａｒｔＮｏｄｅ）」は外部モジュールにより評価され、ＮｏｄｅとＳｔａｒｔＮｏｄｅが異なるならば成立する。同様にして、「ｅｖａｌ（ｄｉｆｆｅｒｅｎｔ（Ｎｏｄｅ，ＮｅｘｔＮｏｄｅ））」に関しても外部モジュールによる条件判定を行う。
【０１１３】
例えば、図３２のように、ロボットがｎｏｄｅ１０を出発し、ａｒｃ１０沿いにｎｏｄｅ８へ向かっている途中に障害物を回避しているとする。このときのプラン用信念３０４の状態は図１９の通りであるとする。また、イベント用信念ＤＢ２１０の状態は図２８の通りであるとする。外界監視部がｎｏｄｅ７のマーカを発見すると、外界監視部はイベント対応部２０に対し、イベント「ｍａｒｋｅｒＦｏｕｎｄ（ｎｏｄｅ７）」を通知する。イベント対応部２０は、この外部イベントを取得すると、プラン用信念３０４の状態を図１９に示す状態から図３４に示す状態に変更する。すなわち、冒頭に、「ｂｅｌｉｅｆ（ｆｏｕｎｄＭａｒｋｅｒ（ｎｏｄｅ７））．」を追加する。プランニングエージェント３０は、プラン用信念３０４の変更にともない、移動プランを図３２の点線の経路から実線の経路に変更する。さらに、ａｒｃ１０沿いにｎｏｄｅ８へ向かうアクションを中止する。
【０１１４】
その後、プランニングエージェント３０は、イベント対応部２０に対し、アクションの終了イベント「ｅｎｄ（ｐａ，ｇｏｔｏＮｅｘｔＮｏｄｅ（ａｒｃ１０，ｎｏｄｅ８））」を通知する。このとき、イベント対応部２０は、既に説明した図３１に示すイベントルールにしたがいイベント用信念ＤＢ２１０を更新する。これにより、イベント用信念ＤＢ２１０の信念は図２８に示す状態から図２１に示す状態に変更される。すなわち、以下の事実が削除される。
ｂｅｌｉｅｆ（ｄｏｉｎｇ（ｐａ，ｇｏｔｏＮｅｘｔＮｏｄｅ（ａｒｃ１０，ｎｏｄｅ８）））．
ｂｅｌｉｅｆ（ｏｂｊｅｃｔＡｈｅａｄ（ｎｏｄｅ８））．
【０１１５】
また、外界監視部が監視するイベントは、図２９に示す状態から図１４に示す状態に変更される。すなわち、これまで監視してきたイベント「ｏｂｊｅｃｔＮｏｔＦｏｕｎｄ（ｎｏｄｅ８）（条件：ａｃｃｕｒａｃｙ（１）），ｍａｒｋｅｒＦｏｕｎｄ（＿）（条件：なし）」の監視を中止する。
【０１１６】
図３２に示すように、プランニングエージェント３０が新プランに従い、新たに認識したｎｏｄｅ７へ向かうアクションの実行を開始したときには、開始イベント「ｂｅｇｉｎ（ｐａ， ｇｏｔｏＲｅｃｏｇｎｉｚｅｄＮｏｄｅ（ｎｏｄｅ７））」イベント対応部２０に通知する。このとき、イベント対応部２０は、図３５に示すイベントルールにしたがい、処理を行う。具体的には、イベント用信念ＤＢ２１０の信念をイベント対応部の信念を図２１の状態から図３７の状態に更新する。すなわち、「ｂｅｌｉｅｆ（ｄｏｉｎｇ（ｐａ，ｇｏｔｏＲｅｃｏｇｎｉｚｅｄＮｏｄｅ（ｎｏｄｅ７）））．」を追加する。また、外界監視部が監視するイベントは、図１４に示す状態から図３７に示す状態に変更される。すなわち、新たに監視するイベントとして、「ｏｂｊｅｃｔＦｏｕｎｄ（ｎｏｄｅ７）（条件：ａｃｃｕｒａｃｙ（１））」が追加される。
【０１１７】
図３２に示すように、プランニングエージェント３０が新プランに従い、新たに認識したｎｏｄｅ７へ向かうアクションを実行し、node7に到着したときには、アクション終了イベント「ｅｎｄ（ｐａ，ｇｏｔｏＲｅｃｏｇｎｉｚｅｄＮｏｄｅ（ｎｏｄｅ７））」をイベント対応部２０に通知する。このとき、イベント対応部２０は、図３８に示すイベントルールを利用して以下の処理を行う。すなわち、イベント用信念ＤＢ２１０の信念を、図３６に示す状態から図２１に示す状態に更新する。すなわち、「ｂｅｌｉｅｆ（ｄｏｉｎｇ（ｐａ，ｇｏｔｏＲｅｃｏｇｎｉｚｅｄＮｏｄｅ（ｎｏｄｅ７）））．」を削除する。また、外界監視部が監視するイベントは、図３７に示す状態から図１４に示す状態に変更する。すなわち、これまで監視してきたイベント「ｏｂｊｅｃｔＦｏｕｎｄ（ｎｏｄｅ７）（条件：ａｃｃｕｒａｃｙ（１））」の監視を終了する。
【０１１８】
また、移動アクションを実行した後には、既に説明したとおりに、プランニングエージェント３０は、マーカの認識情報を信念から消去する。このとき、プランニングエージェント３０のプラン用信念３０４の信念は図３４の状態から図１９の状態になる。すなわち、図３４の信念のうち「ｂｅｌｉｅｆ（ｆｏｕｎｄＭａｒｋｅｒ（ｎｏｄｅ７））．」が削除される。
【０１１９】
なお、マーカ認識中のノードへの（アーク沿いではない）直接移動（ｇｏｔｏＲｅｃｏｇｎｉｚｅｄＮｏｄｅ）に関しても、アーク沿い移動と同様の障害物回避やマーカ認識を行うためには、図３９に示すイベントルールを用いればよい。これらのイベントルールは、アーク沿いの移動アクションの扱いとほぼ同じである。
【０１２０】
図４０に示すように、実施の形態１にかかる外界監視部１０は、ハードウェア構成として外界監視部１０の処理を実行するプログラムなどが格納されているＲＯＭ５２と、ＲＯＭ５２内のプログラムに従って外界監視部１０の各部を制御するＣＰＵ５１と、イベント対応部２０の制御に必要な種々のデータを記憶するＲＡＭ５３と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５７と、各部を接続するバス６２とを備えている。
【０１２１】
先に述べた外界監視部１０におけるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク（ＦＤ）、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供されてもよい。
【０１２２】
この場合には、プログラムは、外界監視部１０において上記記録媒体から読み出して実行することにより主記憶装置上にロードされ、上記ソフトウェア構成で説明した各部が主記憶装置上に生成されるようになっている。
【０１２３】
また、本実施の形態のプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。
【０１２４】
他の例としては、外界監視部１０、イベント対応部２０およびプランニングエージェント３０は、同一のコンピュータ上に実装されていてもよい。
【０１２５】
なお、プランニングエージェント３０のハードウェア構成は、イベント対応部２０のハードウェア構成と同様である。
【０１２６】
以上、本発明を実施の形態を用いて説明したが、上記実施の形態に多様な変更または改良を加えることができる。
そうした変更例としては、外部監視装置が複数ある場合には、最も適切な外部監視装置を選択し、この外部監視装置に指示の通知を行うこととしてもよい。図４１に示すように、変更例にかかるプラン実行システム２におけるイベント対応部２２は、通知先特定部２２５をさらに備えている。通知部２２４は、通知指示を送るべき適切な外界監視部の選択を、通知先特定部２２５に指示する。このとき、通知先特定部２２５は、通知指示において指定されたイベントを指定された条件で監視することができるか否かを照会する。さらに、照会先の外界監視装置から、紹介に対する回答として、監視の可否を示す情報を取得する。通知先特定部２２５は、回答に基づいて、外界監視装置を選択する。具体的には、監視可能の回答を取得した場合には、照会先の外界監視装置を通知先として特定する。照会不可能の回答を取得した場合には、指示されたイベントを監視可能な他の外界監視装置に問い合わせ、監視可能な外界監視装置を探す。通知部２２４は、通知先特定部２２５により特定された外界監視装置に指示の通知を行う。
【０１２７】
（実施の形態２）
図４１に示すように、実施の形態２にかかるプラン実行システム３プラン実行システム３において、イベント対応部２１は、実施の形態１にかかるイベント対応部２０の機能に加えて指示先通知部２３０と、指示先特定部２３２とを有している。また、アクション実行部４１は、実施の形態１にかかるアクション実行部４０の機能に加えて問合部４００と、監視指示部４０２と、監視結果取得部４０４とを備えている。
【０１２８】
問合部４００は、アクションの開始時または終了時に問合部４００に対し所定の外部イベントを行う外界監視部を問い合わせる。指示先特定部２３２は、この問い合わせを受け取ると、外部イベントについての指示を通知すべき通知先を特定する。指示先通知部２３０は、指示先特定部２３２により特定された通知先をアクション実行部４１に通知する。監視指示部４０２は、イベント対応部２１により通知された通知先である外界監視部に対し指示を通知する。このように、例えば実行条件に合致するか否かの判定が不要な場合には、アクション実行部４１が直接外界監視部１１に指示を通知してもよい。
【０１２９】
この場合、外界監視部１１は、監視結果を直接アクション実行部４１に通知する。監視結果取得部４０４は、この監視結果を取得する。これにより、例えば、人に追従して移動する場合には、人の画像を監視結果として外界監視部から直接取得し、これに応じて移動というアクションを実行することができる。
【０１３０】
なお、これ以外のプラン実行システム３の構成および処理は、実施の形態１にかかるプラン実行システム１の構成および処理と同様である。
【０１３１】
実施の形態２にかかるプラン実行システム３の変更例としては、イベント対応部２１は、アクション実行部４１から問い合わせを受け取った場合には、直接外界監視部１１に指示を通知してもよい。この場合にも、外界監視部１１は、監視結果をアクション実行部４１に通知する。
【図面の簡単な説明】
【０１３２】
【図１】実施の形態１にかかるプラン実行システム１の全体構成を示す図である。
【図２】ゴールと、プランおよびアクションの関係を示す図である。
【図３】イベント対応部２０の機能構成を示すブロック図である。
【図４】プランニングエージェント３０の機能構成を示すブロック図である。
【図５】イベント対応部２０の処理を示すフローチャートである。
【図６】通常ゴールに対するプランニングエージェント３０の処理を示すフローチャートである。
【図７】プラン実行処理を示すフローチャートである。
【図８】割込ゴールに対する処理を示すフローチャートである。
【図９】外部から信念が更新された場合のプランニングエージェント３０の処理を示すフローチャートである。
【図１０】プランニングエージェント３０の処理を説明するための図である。
【図１１】イベントルールＤＢ２１２に格納されている実行条件と実行内容とを示す図である。
【図１２】イベント用信念ＤＢ２１０の信念情報を示す図である。
【図１３】更新後のイベント用信念ＤＢ２１０の信念情報を示す図である。
【図１４】外界監視部１０による外部イベント通知のための条件を示す図である。
【図１５】更新後の外部イベント通知のための条件を示す図である。
【図１６】イベントルールＤＢ２１２が格納するイベントルールを示す図である。
【図１７】イベントルールＤＢ２１２が格納するイベントルールを示す図である。
【図１８】移動ロボットの移動経路を示す図である。
【図１９】プラン用信念３０４が格納する信念を示す図である。
【図２０】イベントルールＤＢ２１２が保持するイベントルールを示す図である。
【図２１】イベント用信念ＤＢ２１０が格納する信念を示す図である。
【図２２】プラン用信念３０４が格納する信念を示す図である。
【図２３】移動ロボットの移動途中の状態を示す図である。
【図２４】イベントルールＤＢ２１２が格納するイベントルールを示す図である。
【図２５】イベント用信念ＤＢ２１０が格納する信念を示す図である。
【図２６】外部イベント通知のための条件を示す図である。
【図２７】イベントルールＤＢ２１２が格納するイベントルールを示す図である。
【図２８】イベント用信念ＤＢ２１０が格納する信念を示す図である。
【図２９】外部イベント通知のための条件を示す図である。
【図３０】イベントルールＤＢ２１２が格納するイベントルールを示す図である。
【図３１】イベントルールＤＢ２１２が格納するイベントルールを示す図である。
【図３２】移動ロボットの移動途中の状態を示す図である。
【図３３】イベントルールＤＢ２１２が格納するイベントルールを示す図である。
【図３４】プラン用信念３０４が格納する信念を示す図である。
【図３５】イベントルールＤＢ２１２が格納するイベントルールを示す図である。
【図３６】イベント用信念ＤＢ２１０が格納する信念を示す図である。
【図３７】外部イベント通知のための条件を示す図である。
【図３８】イベントルールＤＢ２１２が格納するイベントルールを示す図である。
【図３９】イベントルールＤＢ２１２が格納するイベントルールを示す図である。
【図４０】実施の形態１にかかるイベント対応部２０のハードウェア構成を示す図である。
【図４１】変更例にかかるプラン実行システム３の全体構成を示す図である。
【図４２】実施の形態２にかかるプラン実行システム３の全体構成を示す図である。
【符号の説明】
【０１３３】
１〜３  プラン実行システム
１０，１１  外界監視部
２０，２１  イベント対応部
３０，３１  プランニングエージェント
４０，４１  アクション実行部
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５７  通信Ｉ／Ｆ
６２  バス
２００  外部イベント取得部
２０２  内部イベント取得部
２１０  イベント用信念ＤＢ
２１２  イベントルールＤＢ
２２０  条件判定部
２２２  処理内容抽出部
２２４  通知部
２２５  通知先特定部
２３０  指示先通知部
２３２  指示先特定部
３００  ゴール取得部
３０２  ゴールキュー
３０４  プラン用信念ＤＢ
３０６  プラン作成部
３０８  プランＤＢ
３１０  アクション管理部
３１２  内部イベント通知部
３１４  更新部
４００  問合部
４０２  監視指示部
４０４  監視結果取得部
【図１】
2008242606.tif 000003
【図２】
2008242606.tif 000004
【図３】
2008242606.tif 000005
【図４】
2008242606.tif 000006
【図５】
2008242606.tif 000007
【図６】
2008242606.tif 000008
【図７】
2008242606.tif 000009
【図８】
2008242606.tif 000010
【図９】
2008242606.tif 000011
【図１０】
2008242606.tif 000012
【図１１】
2008242606.tif 000013
【図１２】
2008242606.tif 000014
【図１３】
2008242606.tif 000015
【図１４】
2008242606.tif 000016
【図１５】
2008242606.tif 000017
【図１６】
2008242606.tif 000018
【図１７】
2008242606.tif 000019
【図１８】
2008242606.tif 000020
【図１９】
2008242606.tif 000021
【図２０】
2008242606.tif 000022
【図２１】
2008242606.tif 000023
【図２２】
2008242606.tif 000024
【図２３】
2008242606.tif 000025
【図２４】
2008242606.tif 000026
【図２５】
2008242606.tif 000027
【図２６】
2008242606.tif 000028
【図２７】
2008242606.tif 000029
【図２８】
2008242606.tif 000030
【図２９】
2008242606.tif 000031
【図３０】
2008242606.tif 000032
【図３１】
2008242606.tif 000033
【図３２】
2008242606.tif 000034
【図３３】
2008242606.tif 000035
【図３４】
2008242606.tif 000036
【図３５】
2008242606.tif 000037
【図３６】
2008242606.tif 000038
【図３７】
2008242606.tif 000039
【図３８】
2008242606.tif 000040
【図３９】
2008242606.tif 000041
【図４０】
2008242606.tif 000042
【図４１】
2008242606.tif 000043
【図４２】
2008242606.tif 000044