(57)【要約】【課題】ロボットによる対人サービスにおいてユーザが自然に感じるようにサービスを提供することを可能にする技術を提供する。【解決手段】対人サービスを実行するロボットを制御するロボット制御システムは、ロボットに実行させるタスクを一連のアクションで構成し、アクションとアクションのそれぞれを開始するトリガー条件とを規定したトリガーアクション情報を予め記憶する記憶部と、アクションのトリガー条件が満たされたか否か判定するトリガー判定部と、アクションを実行するアクション実行部と、ロボットに実行させるタスクのトリガーアクション情報に規定されたアクションを順次選択し、選択したアクションのトリガー条件が満たされたか否かトリガー判定部に判定させ、トリガー条件が満たされれば、アクションをアクション実行部に実行させるタスク実行部と、を有する。【選択図】  図２
2018118352.tif 000002
【特許請求の範囲】
【請求項１】
対人サービスを実行するロボットを制御するロボット制御システムであって、
ロボットに実行させるタスクを一連のアクションで構成し、前記アクションと前記アクションのそれぞれを開始するトリガー条件とを規定したトリガーアクション情報を予め記憶する記憶部と、
前記アクションのトリガー条件が満たされたか否か判定するトリガー判定部と、
前記アクションを実行するアクション実行部と、
ロボットに実行させるタスクのトリガーアクション情報に規定されたアクションを順次選択し、前記選択したアクションのトリガー条件が満たされたか否か前記トリガー判定部に判定させ、前記トリガー条件が満たされれば、前記アクションを前記アクション実行部に実行させるタスク実行部と、を有するロボット制御システム。
【請求項２】
前記トリガーアクション情報には、前記アクションが他のアクションと並行して実行できるアクションであるか否かが更に設定されており、
前記タスク実行部は、前記選択したアクションが他のアクションと並行して実行できる場合には、先行するアクションを実行中に、前記選択したアクションのトリガー条件が満たされたか否かを前記トリガー判定部に判定させ、前記選択したアクションが他のアクションと並行して実行できない場合には、前記先行するアクションが終了してから、前記選択したアクションのトリガー条件が満たされたか否か前記トリガー判定部に判定させる、
請求項１に記載のロボット制御システム。
【請求項３】
タスクの実行を管理するタスク管理部を更に有し、
前記記憶部は、タスク毎に前記タスクが他のタスクと並行して実行できるタスクであるか否かを規定したタスクライブラリ情報を更に記憶し、
前記タスク管理部は、前記タスクの実行が要求されたとき前記タスクライブラリ情報を参照し、前記タスクが他のタスクと並行して実行できるものであれば他のタスクが実行中か否かによらず前記タスク実行部に前記タスクの実行を開始させ、前記タスクが他のタスクと並行して実行できないものであれば他のタスクが実行されているか否か確認し、他のタスクが実行されていれば、前記他のタスクが終了してから前記タスク実行部に前記タスクを実行させる、
請求項１または２に記載のロボット制御システム。
【請求項４】
前記対人サービスに利用可能なロボットが複数あり、
前記トリガーアクション情報にはアクション毎に該アクションを実行させるロボットの割り当てが設定可能であり、
前記アクション実行部に、前記トリガーアクション情報に含まれるそれぞれのアクションを該トリガーアクション情報にて該アクションの実行に割り当てられたロボットを用いて実行させる連携型タスク実行部を更に有する、
請求項１または２に記載のロボット制御システム。
【請求項５】
タスクに含まれるそれぞれのアクションに要求される要求能力に基づいて、前記タスクに含まれる前記アクションと該アクションの実行に利用するロボットとを設定する連携型タスク管理部を更に有する、
請求項４に記載のロボット制御システム。
【請求項６】
前記連携型タスク管理部は、第１のアクションの実行に第１のロボットを割り当て前記第１のアクションに続く第２のアクションの実行に第２のロボットを割り当てる場合、前記第１のアクションと前記第２のアクションの間に、ロボットの交代をユーザに認識させるために前記第１のロボットおよび前記第２のロボットの少なくとも一方が実行する引継ぎアクションを挿入する、
請求項５に記載のロボット制御システム。
【請求項７】
前記連携型タスク管理部は、前記トリガーアクション情報に前記第２アクションが他のアクションと並行して実行できないことを設定する、
請求項６に記載のロボット制御システム。
【請求項８】
前記連携型タスク管理部は、前記タスクに含まれる全てのアクションに要求される要求能力を備えたロボットの有無を調査し、前記要求能力を備えたロボットがあれば、該ロボットを前記タスクに含まれるアクションに優先的に割り当てる、
請求項５に記載のロボット制御システム。
【請求項９】
前記タスクに含まれるアクションには実行を省略することが可能な省略可能アクションがある場合があり、
前記連携型タスク管理部は、前記タスクに含まれる全てのアクションに要求される要求能力を備えたロボットが無ければ、前記タスクに含まれる前記省略可能アクション以外の全てのアクションに要求される要求能力である必須要求能力を備えたロボットの有無を調査し、前記必須要求能力を備えたロボットがあれば、該ロボットを前記タスクに含まれるアクションに優先的に割り当てる、
請求項８に記載のロボット制御システム。
【請求項１０】
前記タスクに含まれるアクションには実行を省略することが可能な省略可能アクションがあり、
前記連携型タスク管理部は、要求能力を満たすロボットが存在しないアクションが省略可能アクションであれば、該省略可能アクションの省略を決定する、
請求項５に記載のロボット制御システム。
【請求項１１】
対人サービスを実行するロボットを制御するためのロボット制御方法であって、
記憶手段が、ロボットに実行させるタスクを一連のアクションで構成し、前記アクションと前記アクションのそれぞれを開始するトリガー条件とを規定したトリガーアクション情報を予め記憶し、
タスク実行手段が、ロボットに実行させるタスクのトリガーアクション情報に規定されたアクションを順次選択し、前記選択したアクションのトリガー条件が満たされたか否か判定し、
前記トリガー条件が満たされれば、アクション実行手段が、前記アクションを実行する、ロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は人間に対してサービスを提供するロボットを制御する技術に関する。
【背景技術】
【０００２】
人間にサービスを提供する対人サービスロボットに関する研究および開発が加速している。また、実際にロボットが人間にさまざまなサービスを提供し始めている。ロボットによる対人サービスには単独のロボットにより提供されるものの他、複数のロボットにより提供されるものもある。特許文献１には、複数のロボットを連携させて一連のフロー処理を実行させることにより、サービスを確実に提供し、かつロボットリソースを有効に活用するロボット連携システムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２４９８０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
対人サービスを提供するロボットの行動とその対人サービスを人間が提供した場合に想定される行動とが異なると、対人サービスを受けるユーザが違和感を持つ場合がある。例えば、ロボットが人間であれば行動を起こすであろうタイミングに適切に行動を起こさないと、ユーザはロボットの行動に違和感を持つことがある。また、複数のロボットが連携してユーザにサービスを提供する場合、あるロボットの作業の続きを他のロボットが唐突に始めるとユーザは違和感を持つ場合がある。人間であれば作業を引継ぐための行動をすると想定されるため、ロボット間で唐突に作業が引き継がれると、ユーザはロボット同士が連携していることを認識できないためその行動に違和感を持つ。
【０００５】
ユーザは対話によりロボットあるいはシステムにロボットによる何らかの対人サービスを要求した場合、サービス要求の意図が正しくロボットあるいはシステムに伝わっているかどうか分からなければ不安を感じる。その結果、ユーザはサービスが正常に実行されているにも関わらず同じサービスを再度要求してしまったり、途中でサービスをキャンセルしてしまったりすることがある。そのため、対人サービスにおいては、できるだけユーザが違和感を持たないように、ユーザにロボットの行動やその意図を理解させることが望まれる。
【０００６】
しかしながら、特許文献１のシステムでは、ユーザが自然に感じられるようなサービスを提供することは考慮されてない。例えば、ユーザにロボットの行動の意図を理解させるといったことは考慮されておらず、システムはそのための構成を備えていない。
【０００７】
本発明の目的は、ロボットによる対人サービスにおいてユーザが自然に感じるようにサービスを提供することを可能にする技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明の一態様におけるロボット制御システムは、対人サービスを実行するロボットを制御するロボット制御システムであって、ロボットに実行させるタスクを一連のアクションで構成し、アクションとアクションのそれぞれを開始するトリガー条件とを規定したトリガーアクション情報を予め記憶する記憶部と、アクションのトリガー条件が満たされたか否か判定するトリガー判定部と、アクションを実行するアクション実行部と、ロボットに実行させるタスクのトリガーアクション情報に規定されたアクションを順次選択し、選択したアクションのトリガー条件が満たされたか否かトリガー判定部に判定させ、トリガー条件が満たされれば、アクションをアクション実行部に実行させるタスク実行部と、を有する。
【０００９】
上記態様に依れば、ロボットが行うタスクを一連のアクションで構成し、アクション毎にトリガー条件を設定し、トリガー条件が満たされたときにロボットにアクションを実行させるので、ロボットがアクションを開始するときにユーザが自然と感じるようなトリガー条件を設定することが可能となり、自然な対人サービスを提供することが可能となる。
【発明の効果】
【００１０】
開示によれば、ロボットによる対人サービスにおいてユーザが自然に感じるようにサービスを提供可能になる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態によるサービスロボットシステムのシステム構成図である。
【図２】個別型タスク管理サーバＳＴＳのハードウエアおよびソフトウエアの構成を示すブロック図である。
【図３】タスクライブラリテーブル１３１の構成例を示す図である。
【図４】受付済みタスクテーブル１３２の構成図である。
【図５】トリガーアクション設定テーブル１３４の構成図である。
【図６】実行中タスク状態テーブル１３３の構成図である。
【図７】ロボット状態テーブル１３５の構成図である。
【図８】連携型タスク管理サーバＭＴＳのハードウエア及びソフトウエアの構成を示すブロック図である。
【図９】連携型タスクライブラリテーブル２３１の構成図である。
【図１０】受付済み連携型タスクテーブル２３２の構成図である。
【図１１】連携型トリガーアクション設定テーブル２３４の構成図である。
【図１２】実行中連携型タスク状態テーブル２３３の構成図である。
【図１３】ロボットＲ１、Ｒ２の装置構成を示すブロック図である。
【図１４】タスク初期処理依頼メッセージＭ１を示す図である。
【図１５】連携依頼メッセージＭ２を示す図である。
【図１６】トリガー判定依頼メッセージＭ３を示す図である。
【図１７】トリガー判定結果メッセージＭ４を示す図である。
【図１８】トリガー計算依頼メッセージＭ５を示す図である。
【図１９】トリガー計算結果メッセージＭ６を示す図である。
【図２０】アクション実行依頼メッセージＭ７を示す図である。
【図２１】個別型のタスク初期処理のフローチャートである。
【図２２】個別型タスク実行処理のフローチャートである。
【図２３】トリガー判定処理のフローチャートである。
【図２４】アクション実行処理のフローチャートである。
【図２５】連携型のタスク初期処理のフローチャートである。
【図２６】連携型タスク実行処理のフローチャートである。
【図２７】個別型タスク管理サーバＳＴＳと連携型タスク管理サーバＭＴＳが互いにメッセージをやりとりする様子を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１２】
本発明の実施形態について図面を参照して詳細に説明する。
【００１３】
＜システム構成の説明＞
図１は、本実施形態によるサービスロボットシステムのシステム構成図である。サービスロボットシステムは、ロボットＲ１、Ｒ２、個別型タスク管理サーバＳＴＳ、連携型タスク管理サーバＭＴＳ、およびタスク設定端末ＴＳＴを有している。ロボットＲ１、Ｒ２、個別型タスク管理サーバＳＴＳ、連携型タスク管理サーバＭＴＳ、タスク設定端末ＴＳＴはネットワークＮＷに接続されている。
【００１４】
ロボットＲ１、Ｒ２は、ユーザに各種サービスを提供するロボットである。ロボットとは自律移動可能な情報処理装置である。ロボットＲ１、Ｒ２により提供されるサービスは、ユーザの要求あるいは状況に応じてロボットＲ１、Ｒ２がユーザに対して提供する対人サービスである。対人サービスはそのサービス内容ごとのタスクとして設定されており、各タスクは複数の一連のアクションで構成されている。
【００１５】
個別型タスク管理サーバＳＴＳは、ロボットが単体で提供可能なサービスを制御するサーバである。ロボットが単体でサービスを提供する場合、そのサービスのタスクに含まれるアクションが全て１つのロボットにより実行される。
【００１６】
連携型タスク管理サーバＭＴＳは、複数のロボットが連携して提供するサービスを制御するサーバである。複数のロボットが連携してサービスを提供する場合、そのサービスのタスクに含まれるアクションが複数のロボットにより分担される。
【００１７】
ネットワークＮＷは、ロボットＲ１、Ｒ２、個別型タスク管理サーバＳＴＳ、連携型タスク管理サーバＭＴＳ、およびタスク設定端末ＴＳＴを相互に接続する。ネットワークＮＷは有線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、無線ＬＡＮ、移動体通信網など様々な構成が考えられ、またそれらのうち複数の種類のネットワークで構成されていてもよい。また、ロボットＲ１、Ｒ２の設置場所と個別型タスク管理サーバＳＴＳあるいは連携型タスク管理サーバＭＴＳの設置場所とが異なっており、ネットワークＮＷがＷＡＮ（Ｗｉｄｅ  Ａｒｅ  Ｎｅｔｗｏｒｋ）であり、設置場所の異なるロボットＲ１、Ｒ２と個別型タスク管理サーバＳＴＳおよび連携型タスク管理サーバＭＴＳとをＷＡＮで接続してもよい。なお、図１にはロボットが２台である例を示しているが、それに限定されない。ロボットは何台であってもよい。
【００１８】
タスク設定用端末（ＴＳＴ；Ｔａｓｋ  Ｓｅｔｔｉｎｇ  Ｔｅｒｍｉｎａｌ）は、個別型タスク管理サーバＳＴＳおよび連携型タスク管理サーバＭＴＳに対して各サービスのタスクを設定するための端末であり、ネットワークＮＷに接続するためのインターフェースを備え、ネットワークＮＷを介して個別型タスク管理サーバＳＴＳおよび連携型タスク管理サーバＭＴＳと通信する。
【００１９】
タスク設定用端末ＴＳＴの主な役割は個別型タスク管理サーバＳＴＳ又は連携型タスク管理サーバＭＴＳにあるトリガーアクション設定テーブルを更新したり、編集したりすることである。
トリガーアクション設定テーブルは、上述したタスクを構成するアクションとそれらアクションの実行を開始するトリガー条件とが設定されたテーブルである。トリガーアクション設定テーブルの更新又は編集の主体が管理者などの人間である場合は、タスク設定用端末ＴＳＴは入出力デバイスを備える。入力デバイスは例えばキーボード及びマウスであり、出力デバイスは例えばディスプレイやプリンタからなる。更新又は編集を行う主体が人間ではない場合は、例えば人工知能のプログラムである場合、タスク設定用端末ＴＳＴは、そのプログラムを実行する環境を備える。タスク設定用端末ＴＳＴが個別型タスク管理サーバＳＴＳ又は連携型タスク管理サーバＭＴＳ上のトリガーアクション設定テーブル１３４を更新し、編集するとき、通信プロトコルとしては、例えばＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）が使用される。タスク設定用端末ＴＳＴは個別型タスク管理サーバＳＴＳ又は連携型タスク管理サーバＭＴＳのデータメモリにある他のテーブルを、トリガーアクション設定テーブルを更新あるいは編集するときと同様の方法で更新及び編集することも可能である。
【００２０】
（個別型タスク管理サーバＳＴＳの構成の説明）
図２は、個別型タスク管理サーバＳＴＳ（Ｓｉｎｇｌｅ−ｔｙｐｅ  Ｔａｓｋ  Ｓｅｒｖｅｒ）のハードウエアおよびソフトウエアの構成を示すブロック図である。個別型タスク管理サーバＳＴＳは、マイクロプロセッサからなるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１を備え、このＣＰＵ１１にバス１２を介して記憶装置１３、メモリ１４、通信インターフェース１５が接続されている。
【００２１】
通信インターフェース１５は、ＣＰＵ１１の制御の下で、ネットワークＮＷにより規定される通信プロトコルに従い、連携型タスク管理サーバＭＴＳおよびタスク設定端末ＴＳＴとメッセージを送受信する。通信プロトコルとしては、例えばＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）等が使用されるが、他の通信プロトコルが使用されてもよい。
【００２２】
記憶装置１３は、タスクライブラリテーブル１３１、受付済みタスクテーブル１３２、実行中タスク状態テーブル１３３、トリガーアクション設定テーブル１３４、およびロボット状態テーブル１３５を格納している。上述したトリガーアクション設定テーブルは、図２に示されたトリガーアクション設定テーブル１３４のことである。
【００２３】
図１および図２の構成において、記憶装置１３には、ロボットに実行させるタスクを一連のアクションで構成し、それらアクションとそれらアクションのそれぞれを開始するトリガー条件とを規定したトリガーアクション情報（トリガーアクション設定テーブル１３４）が予め記憶されている。そして、トリガー判定部（メモリ１４上のトリガー判定プログラム１４４）は、アクションのトリガー条件が満たされたか否か判定する。アクション実行部（メモリ１４上のアクション実行プログラム１４３）は、指示されたアクションを実行する。タスク実行部（メモリ１４上の個別型タスク実行プログラム）は、ロボットに実行させるタスクのトリガーアクション情報に規定されたアクションを順次選択し、選択したアクションのトリガー条件が満たされたか否かトリガー判定部に判定させ、トリガー条件が満たされれば、そのアクションをアクション実行部に実行させる。ロボットが行うタスクを一連のアクションで構成し、アクション毎にトリガー条件を設定し、トリガー条件が満たされたときにロボットにアクションを実行させるので、ロボットが各アクションを開始するときにユーザが自然と感じるようなトリガー条件を設定することが可能となり、自然な対人サービスを提供することが可能となる。
【００２４】
図３はタスクライブラリテーブル１３１の構成例を示す図である。タスクライブラリテーブル１３１には、ユニバーサルタスク番号１３１０１と、タスク名１３１０２と、対応能力要求１３１０３と、他タスク並行実行可否１３１０４を表す情報と、トリガーアクション設定テーブル場所１３１０５とが互いに対応づけて格納される。
【００２５】
ユニバーサルタスク番号１３１０１はサービスロボットシステムで一意であり、タスクを識別するために用いられる。
【００２６】
タスク名１３１０２はタスクの名称である。
【００２７】
対応能力要求は当該タスクに対応するためにロボットが必要な能力を示している。ここでいうタスクへ対応するというのはタスクに含まれるアクションを実行するという意味である。対応能力要求は当該タスクに含まれるアクションを実行するためにロボットに必要な能力ということもできる。対応能力要求は、当該タスクに対応するトリガーアクション設定テーブル１３４に含まれる全てのアクションのアクション要求能力を全て満たすように決定される。アクション要求能力は、各アクションを実行するためにロボットに求められる能力であり、その情報はトリガーアクション設定テーブル１３４にアクション毎に設定される。
【００２８】
あるタスクに対して、ロボットの持っている能力の制限によって、対応できない、すなわちタスクに含まれるアクションを実行できないこともある。同じタスクに対して、ロボットの持っている能力の差異によって、タスクへの対応方法、つまりタスクに含まれるアクションの実行方法も異なる。タスクへの対応方法として個別対応と連携対応があり、更に対応不可という場合もある。個別対応というのは、該当タスクに該当ロボット単独で対応することを示している。連携対応というのは、該当タスクに該当ロボットが他のロボットと協力して対応することを示している。対応不可は該当タスクが該当ロボットによって対応できないことを示している。
【００２９】
他タスク並行実行可否１３１０４は該当タスクが他のタスクと並行して同じロボットにて実行されることが可能であるかどうかを示している。他タスク並行実行可否１３１０４を決める方法は、一例として、個別対応の場合に用いられるトリガーアクション設定テーブル１３４と、連携対応の場合に用いられる連携型トリガーアクション設定テーブル２３４にあるアクション並行実行可否２３４０７を全部確認し、トリガーアクション設定テーブル１３４と連携型トリガーアクション設定テーブル２３４に設定されている全てのアクションが並行実行不可である場合は、他タスク並行実行可否１３１０４を不可と設定し、それ以外の場合は可と設定する、というものである。連携型トリガーアクション設定テーブル２３４は図１１を参照して後述する。
【００３０】
トリガーアクション設定テーブル場所１３１０５は、トリガーアクション設定テーブル１３４の保存先を示している。
【００３１】
図４は受付済みタスクテーブル１３２の構成図である。受付済みタスクテーブル１３２には、タスク管理番号１３２０１と、ユニバーサルタスク番号１３２０２と、対応方法１３２０３とが互いに対応づけて格納される。タスク管理番号１３２０１はシステムの中で唯一性及び不変性を持っており、この番号を解読することでタスクの発生の日付及び担当ロボットが分かるように採番方法が定められている。この実施例では、タスク管理番号１３２０１は、タスクを受け付けた日付と、ロボットＩＤ１３５０２と、同一日付内での４桁の通し番号とを合わせたものとなっている。
【００３２】
図５は、トリガーアクション設定テーブル１３４の構成図である。トリガーアクション設定テーブル１３４には、タスク毎の複数のテーブルファイルが含まれている。各テーブルファイルには、テーブルファイル名１３４０１が付与されている。トリガーアクション設定テーブル１３４の各テーブルファイルには、トリガー番号１３４０２、トリガー判定式１３４０３、アクション１３４０４、アクション要求能力１３４０５、アクション並行実行可否１３４０６、およびアクション省略可否１３４０７が互いに対応づけて記憶される。図５に、トリガーアクション設定テーブル１３４に記憶される情報の一例が示されている。
【００３３】
トリガーアクション設定テーブル１３４のテーブルファイルは、タスクを構成する一連のアクションのそれぞれを起すトリガーの設定により定義される。図４に示した受付済みタスクテーブル１３２のユニバーサルタスク番号１３２０２は、トリガーアクション設定テーブル１３４のテーブルファイルと一対一に対応する番号である。
【００３４】
なお、アクションは、アクション実行プログラム１４３が実行できる汎用関数、又はタスクライブラリテーブル１３１に含まれたタスクを構成するアクションを表す文字列である。アクションは、例えば、ロボットに手を振らせる関数や、ロボットにあるセンサ３１１からセンサ情報を取り出すアクションを示す文字列である。
【００３５】
アクションを起こすトリガー条件はトリガー判定式１３４０３で定義される。トリガー判定式１３４０３は、トリガー判定プログラム１４４が実行できる戻り値を持つ汎用関数、又はタスクライブラリテーブル１３１に含まれたタスクを使った条件式を表す文字列からなるものである。トリガー判定プログラム１４４による判定でトリガー判定式１３４０３が真である場合は、アクション１３４０４はアクション実行プログラム１４３に当該アクションを実行される。トリガー番号＝２のアクションのようにトリガー判定式１３４０３が真という常に真であることを意味する。
【００３６】
１つのトリガー判定式１３４０３とそれに対応するアクション１３４０４はトリガー番号１３４０２で紐付けされ、トリガーアクション設定テーブル１３４の１つの行に格納される。１つのトリガー判定式１３４０３が複数のアクションに対応することが可能である。また、複数の連続するアクションのトリガー判定式１３４０３をトリガー条件が常に「真」であると設定することにより、複数のトリガー番号１３４０２が対応しているアクション１３４０４を無条件に連続的に実行させることも可能である。
【００３７】
トリガー番号１３４０２は、複数のアクション１３４０４を実行する場合の最初、最後、および順番を示す番号である。例えば、図５の例では、最初のアクション１３４０４のトリガー番号１３４０２を０とし、最後のアクション１３４０４のトリガー番号１３４０２を−１としている。それ以外のアクション１３４０４には、実行の順番に通し番号となるトリガー番号１３４０２が付与されている。
【００３８】
アクション要求能力１３４０５は当該アクションを実行するためにロボットに要求される能力である。あるロボットがそのアクションを実行するためには、ロボットが備えている能力（タスク対応能力１３５０３）が、このアクション要求能力１３４０５を包含している必要がある。タスク対応能力１３５０３は図７を参照して後述する。
【００３９】
アクション並行実行可否１３４０６は当該アクションを他のアクションと並行して実行することが可能であるかどうかを示している。
【００４０】
アクション省略可否１３４０７は、アクション要求能力１３４０５が指定した能力に満たせないロボットが、該当アクションをスキップして、次のアクションを実行することが可能であるかどうかを示している。
【００４１】
図６は、実行中タスク状態テーブル１３３の構成図である。実行中タスク状態テーブル１３３には、タスク管理番号１３３０１と、現在のトリガー判定式１３３０２と、現在のアクション１３３０３と、トリガーアクション設定テーブル場所１３３０４と、現在のトリガー番号１３３０５と、他タスク並行実行可否１３３０６とが互いに対応づけられて記憶される。図６には、実行中タスク状態テーブル１３３に記憶される情報の一例が示されている。実行中タスク状態テーブル１３３は、個別型タスク管理プログラム１４１と、個別型タスク実行プログラム１４２と、連携型タスク管理プログラム２４１と、連携型タスク実行プログラム２４２によって更新される情報である。実行中タスク状態テーブル１３３は、実行されている個別型タスク及び連携型タスクの進捗を示している。実行中タスク状態テーブル１３３の更新の詳細は後述する。
【００４２】
図７は、ロボット状態テーブル１３５の構成図である。ロボット状態テーブル１３５には、ロボット名１３５０１と、ロボットＩＤ１３５０２と、タスク対応能力１３５０３と、現在のタスクのタスク管理番号１３５０４とが互いに対応づけされて記憶される。図７には、ロボット状態テーブル１３５に記憶される情報の一例が示されている。タスク対応能力１３５０３は、ロボットが備えている能力を示している。個別タスク管理サーバＳＴＳは、タスク対応能力１３５０３に示されたロボットの能力を基に、タスクにどのように対応するか（ロボットの対応方法１３２０３）を決める。
【００４３】
なお、図３に示したタスクライブラリテーブル１３１の対応能力要求１３１０３においては、省略可能なアクションのアクション要求能力に相当するものは「（オプション）」と明示されている。
【００４４】
図２に戻り、メモリ１４には、本実施形態にて必要なプログラムの一部として、個別型タスク管理プログラム１４１と、個別型タスク実行プログラ１４２と、アクション実行プログラム１４３と、トリガー判定プログラム１４４が格納されている。
【００４５】
個別型タスク管理プログラム１４１は、主に以下の処理をＣＰＵ１１に実行させることで、タスクの受付及び実行準備を行う。
【００４６】
（１）  個別型タスク管理プログラム１４１は、通信インターフェース１５もしくはバス１２を介してタスク初期処理依頼メッセージＭ１を受信したら、そのタスク初期処理依頼メッセージＭ１にある依頼タスクのユニバーサルタスク番号Ｍ１０２及び希望ロボットのロボットＩＤ１３５０２を用いて、タスクライブラリテーブル１３１及びロボット状態テーブル１３５を参照して、依頼タスクは希望ロボットによって実行可能かどうかを判断する。タスク初期処理依頼メッセージＭ１は図１４に示されている。タスク初期処理依頼メッセージＭ１には、メッセージ識別子Ｍ１０１、依頼タスクのユニバーサルタスク番号Ｍ１０２、希望ロボットのロボットＩＤ  Ｍ１０３、および依頼元ＩＤ  Ｍ１０４が格納される。依頼タスクは、初期処理依頼メッセージＭ１にて実行することが依頼されたタスクである。希望ロボットは、初期処理依頼メッセージＭ１にて依頼されたタスクの実行に用いることを希望する旨が指定されたロボットである。このとき、個別型タスク管理プログラム１４１は、タスクライブラリテーブル１３１を参照することにより、依頼されたタスクに対応するのに必要なロボットの能力を知得することができる。また、個別型タスク管理プログラム１４１は、ロボット状態テーブル１３５を参照することにより、希望ロボットが備えている能力を知得することができる。そして、個別型タスク管理プログラム１４１は、依頼タクスに必要な能力と、希望ロボットが備えている能力を比較することにより、依頼タスクを希望ロボットが実行できるか否か判断することができる。実行が可能である場合、個別型タスク管理プログラム１４１は次に対応方法１３２０３を決める。対応方法１３２０３は、例えば、タスクライブラリテーブル１３１にある対応能力要求１３１０３を、ロボット状態テーブル１３５のタスク対応能力１３５０３が満たしているかどうかに基づいて、決定することができる。いずれか１つのロボットのタスク対応能力１３５０３が対応能力要求１３１０３を満たしていれば、そのロボットが単独でタスクに対応できるので、対応方法１３２０３を個別対応とすればよい。複数のロボットのタスク対応能力１１３５０３を組み合わせることで対応能力要求１３１０３を満たすのであれば、対応方法１３２０３を連携対応とすればよい。
【００４７】
（２）  （１）に決められた対応方法１３２０３が個別対応である場合、個別型タスク管理プログラム１４１は、依頼タスクに対応するトリガーアクション設定テーブル１３４を用いて、依頼タスクを実行されるように受付済みタスクテーブル１３２と、実行中タスク状態テーブル１３３と、ロボット状態テーブル１３５とを更新する。
【００４８】
（３）  （１）に決められた対応方法１３２０３が連携対応である場合、個別型タスク管理プログラム１４１は、連携型タスク管理サーバＭＴＳに処理されるように、通信インターフェース１５を介して連携型タスク管理サーバＭＴＳに連携依頼メッセージＭ２を送信する。連携依頼メッセージＭ２は図１５に示されている。連携依頼メッセージＭ２には、メッセージ識別子Ｍ２０１、依頼タスクのユニバーサルタスク番号Ｍ２０２、および依頼元ＩＤ  Ｍ２０３が格納される。
【００４９】
個別型タスク実行プログラム１４２は、主に以下の処理をループでＣＰＵ１１に実行させることで、個別型タスクをアクション単位で段階的に進行させることを実現する。
【００５０】
（１）  個別型タスク実行プログラム１４２は、受付済みタスクテーブル１３２を参照し、対応方法１３２０３が個別対応である受付済みタスクについて、実行中タスク状態テーブル１３３を行ごとでスキャンし、この行にある現在のトリガー判定式１３３０２をトリガー判定依頼メッセージＭ３に含めてトリガー判定プログラム１４４にバス１２を介して送信する。トリガー判定依頼メッセージＭ３は図１６に示されている。トリガー判定依頼メッセージＭ３には、メッセージ識別子Ｍ３０１、トリガー判定式Ｍ３０２、依頼元ＩＤ  Ｍ３０３、および依頼先ＩＤ  Ｍ３０４が格納される。
【００５１】
（２）  個別型タスク実行プログラム１４２はトリガー判定プログラム１４４から（１）のトリガー判定依頼メッセージＭ３に応じて返信されたトリガー判定結果メッセージＭ４を、バス１２を介して受信する。トリガー判定結果メッセージＭ４は図１７に示されている。トリガー判定結果メッセージＭ４には、メッセージ識別子Ｍ４０１、トリガー判定結果Ｍ４０２、依頼元ＩＤ  Ｍ４０３、および依頼先ＩＤ  Ｍ４０４が格納される。（１）のトリガー判定式が満足されたら、個別型タスク実行プログラム１４２は、本トリガーに対応するアクションを実行するように、本アクションをアクション実行依頼メッセージＭ７に含めて、アクション実行プログラム１４３にバス１２を介して送信する。アクション実行依頼メッセージＭ７は、図２０に示されている。アクション実行依頼メッセージＭ７には、メッセージ識別子Ｍ７０１、アクションＭ７０１、依頼元ＩＤ  Ｍ７０３、依頼先ＩＤ  Ｍ７０４、およびトリガー番号Ｍ７０５が格納される。
【００５２】
（３）  アクション実行プログラム１４３に実行依頼したアクションがトリガーアクション設定テーブル１３４における最後のアクションである場合、個別型タスク実行プログラム１４２は、実行中タスク状態テーブル１３３から該当する行を削除して次の行に移行する。実行依頼したアクションが最後のアクションではない場合、個別型タスク実行プログラム１４２は、本タスクのトリガーアクション設定テーブル１３４における次のアクションに移行するように実行中タスク状態テーブル１３３を更新する。
【００５３】
トリガー判定プログラム１４４は、アクション実行プログラム１４３或いは連携型タスク実行プログラム２４２から依頼を受け、主に以下の処理をＣＰＵ１１に実行させることで、依頼されたアクションの実行可否を判断し、判断結果、或いは判断するための根拠を、判断依頼元に提出する。
【００５４】
（１）  個別型タスク実行プログラム１４２或いは連携型タスク実行プログラム２４２からトリガー判定依頼メッセージＭ３あるいはトリガー計算依頼メッセージＭ５を通信インターフェース１５或いはバス１２を介して受信したら、トリガー判定プログラム１４４は、そのメッセージにあるトリガー判定式の文字列から関数名と引数を識別し、その引数を用いてその関数名の関数を実行する。トリガー計算依頼メッセージＭ５は図１８に示されている。トリガー計算依頼メッセージＭ５には、メッセージ識別子Ｍ５０１、トリガー計算式Ｍ５０２、依頼元ＩＤ  Ｍ５０３、依頼先ＩＤ  Ｍ５０４が格納される。
【００５５】
（２）  （１）で受信したメッセージが個別型タスク実行プログラム１４２からのトリガー判定依頼メッセージＭ３である場合は、トリガー判定プログラム１４４は、トリガー判定用文字列から条件式を識別し、（１）で実行した関数の戻り値を前記条件式に代入し、条件式が満たされているか否かの判定結果をトリガー判定結果メッセージＭ４に含めてバス１２を介して個別型タスク実行プログラム１４２に返信する。
【００５６】
（３）  （１）で受信したメッセージが連携型タスク実行プログラム２４２からのトリガー計算依頼メッセージＭ５である場合は、トリガー判定プログラム１４４は、（１）で実行した関数の戻り値をトリガー計算結果とし、トリガー計算結果メッセージＭ６に含めて通信インターフェース１５で連携型タスク実行プログラム２４２に返信する。トリガー計算結果メッセージＭ６は図１９に示されている。トリガー計算結果メッセージＭ６には、メッセージ識別子Ｍ６０１、トリガー計算結果Ｍ６０２、依頼元ＩＤ  Ｍ６０３、および依頼先ＩＤ  Ｍ６０４が格納される。
【００５７】
アクション実行プログラム１４３は、主に以下の処理をＣＰＵ１１に実行させる。
【００５８】
（１）  個別型タスク実行プログラム１４２或いは連携型タスク実行プログラム２４２からアクション実行依頼メッセージＭ７を通信インターフェース１５或いはバス１２を介して受信したら、アクション実行プログラム１４３は、そのメッセージにあるアクションＭ７０２の文字列から関数名と引数を識別して、その引数を用いてその関数名の関数を実行する。
【００５９】
（２）  アクション実行プログラム１４３は、（１）の判定結果に基づいてロボット状態テーブル１３５を更新する。
【００６０】
＜連携型タスク管理サーバＭＴＳの構成の説明＞
図８は、連携型タスク管理サーバＭＴＳのハードウエア及びソフトウエアの構成を示すブロック図である。連携型タスク管理サーバＭＴＳはマイクロプロセッサからなるＣＰＵ２１を備え、このＣＰＵ２１にバス２２を介して記憶装置２３及びメモリ２４が接続され、さらに通信インターフェース２５が接続されている。
【００６１】
通信インターフェース２５は、ＣＰＵ２１の制御の下で、通信ネットワークＮＷにより規定される通信プロトコルに従い、個別型タスク管理サーバＳＴＳあるいはタスク設定端末ＴＳＴからのメッセージを受信する。またそれと共に、個別型タスク管理サーバＳＴＳにメッセージを送信する。通信プロトコルとしては、例えばＴＣＰ／ＩＰが使用される。
【００６２】
記憶装置２３には、連携型タスクライブラリテーブル２３１、受付済み連携型タスクテーブル２３２、実行中連携型タスク状態テーブル２３３、および連携型トリガーアクション設定テーブル２３４が格納されている。
【００６３】
図９は、連携型タスクライブラリテーブル２３１の構成図である。連携型タスクライブラリテーブル２３１には、ユニバーサルタスク番号２３１０１と、タスク名２３１０２と、連携条件２３１０３と、連携型トリガーアクション設定テーブル場所２３１０４とが互いに対応づけて記憶される。図９には、連携型タスクライブラリテーブル２３１に記憶される情報の一例が示されている。ユニバーサルタスク番号２３１０１は、タスクライブラリテーブル１３１にあるユニバーサルタスク番号１３１０１と同じものである。連携条件２３１０３は該当タスクにて連携するロボットが持つべき能力を示している。連携するロボットが持つべき能力を決める方法は、例えば、対応する連携型トリガーアクション設定テーブル２３４にあるすべてのアクション要求能力２３４０６を満たすようにすることである。連携型トリガーアクション設定テーブル場所２３１０４は連携型トリガーアクション設定テーブル２３４の保存先を示している。
【００６４】
図１０は、受付済み連携型タスクテーブル２３２の構成図である。受付済み連携型タスクテーブル２３２には、タスク管理番号２３２０１と、ユニバーサルタスク番号２３２０２と、関与ロボットＩＤ２３２０３とが互いに対応づけて記憶される。図１０には、受付済み連携型タスクテーブル２３２に記憶される情報の一例が示されている。受付済み連携型タスクテーブル２３２にあるタスク管理番号２３２０１は、タスクを受け付けた日付と、タスクに関与するすべてのロボットＩＤ１３５０２と、４桁の通し番号を合わせたものである。
【００６５】
図１１は、連携型トリガーアクション設定テーブル２３４の構成図である。連携型トリガーアクション設定テーブル２３４には、タスク毎の複数のテーブルファイルが含まれている。各テーブルファイルには、テーブルファイル名１３４０１が付与されている。各テーブルファイルには、トリガー番号２３４０２、トリガー判定式２３４０３、アクション２３４０４、関与ロボット２３４０５、アクション要求能力２３４０６、およびアクション並行実行可否２３４０７が互いに対応づけて記憶される。図１１には、連携型トリガーアクション設定テーブル２３４に記憶される情報の一例が示されている。
【００６６】
連携型トリガーアクション設定テーブル２３４のテーブルファイルは、連携型タスクライブラリテーブル２３１に定義される連携型タスクのユニバーサルタスク番号２３１０１と一対一で対応している。連携型トリガーアクション設定テーブル２３４には、連携型タスクを構成する複数のアクションのそれぞれを起こすトリガーが設定される。連携型タスクを構成する複数のアクションは複数のロボットが分担して実行する。連携型トリガーアクション設定テーブル２３４にはアクション毎にそのアクションに関与するロボットが関与ロボット２３４０５として設定される。関与ロボット２３４０５における連携元ロボットは、あるロボットから他のロボットに交代するときに、それまでのアクションを実行してきたロボットである。連携先ロボットは、あるロボットから他のロボットに交代するとき、その後のアクションの実行を引き継ぐロボットである。
【００６７】
なお、アクションはアクション実行プログラム１４３が実行できる汎用関数、又はタスクライブラリテーブル１３１に含まれたタスクを構成するアクションを表す文字列である。アクションを起こすトリガー条件はトリガー判定式２３４０３で定義される。トリガー判定式２３４０３は、トリガー判定プログラム１４４が実行できる戻り値を持つ汎用関数、又はタスクライブラリテーブル１３１に含まれたタスクを使った条件式を表す文字列からなるものである。
【００６８】
なお、連携型トリガーアクション設定テーブル２３４にある判定式は、トリガーアクション設定テーブル１３４にある判定式と異なって、複数のロボットに関わる判定式となることもある。連携型タスク実行プログラム２４２によって実行された連携型のトリガー判定式２３４０３の計算結果が真である場合、アクション２３４０４はアクション実行プログラム１４３に実行される。
【００６９】
１つのトリガー判定式２３４０３とそれに対応するアクション２３４０４はトリガー番号２３４０２で紐付け、連携型トリガーアクション設定テーブル２３４の１つの行に格納される。トリガー番号２３４０２は複数のアクション２３４０４を実行する場合の最初、最後、および順番を示す番号である。例えば、図１１の例では、最初のアクション２３４０４のトリガー番号を０とし、最後のアクション２３４０４のトリガー番号を−１としている。それ以外のアクション２３４０４には、実行の順番に通し番号となるトリガー番号２３４０２が付与されている。
【００７０】
関与ロボット２３４０５は、該当アクションのトリガーの判定とアクションの実行に関わるロボットを示している。
【００７１】
アクション要求能力２３４０６は当該アクションを実行するロボットに要求される能力である。あるロボットがそのアクションを実行するためには、ロボットが備えている能力（タスク対応能力１３５０３）が、このアクション要求能力２３４０６を包含している必要がある。
【００７２】
アクション並行実行可否２３４０７は当該アクションを他のアクションと並行して実行することが可能であるかどうかを示している。ロボットの連携で情報の引続が必要な場合は、図１１のように連携型トリガーアクション設定テーブル２３４に一行を加え、連携元ロボットから連携先ロボットへ情報を送信するアクションを設計すればよい。
【００７３】
ここに示したように、トリガーアクション情報（連携型トリガーアクション設定テーブル２３４）には、アクション毎にそのアクションを実行させるロボットの割り当てが設定可能である。連携型タスク実行部（連携型タスク実行プログラム２４２）は、アクション実行部（アクション実行プログラム１４３）に、トリガーアクション情報に含まれるそれぞれのアクションをそのトリガーアクション情報にてそのアクションの実行に割り当てられたロボットを用いて実行させる。アクションごとにそのアクションを実行させるロボットを設定することができるので、複数のロボットを連携させてタスクを実行することができる。
【００７４】
図１２は、実行中連携型タスク状態テーブル２３３の構成図である。実行中連携型タスク状態テーブル２３３には、タスク管理番号２３３０１、現在のトリガー判定式２３３０２、現在のアクション２３３０３、連携型トリガーアクション設定テーブル場所２３３０４、および現在のトリガー番号２３３０５が互いに対応づけて記録される。複数のロボットが連携しながら実行しているタスクの状態を示す情報が格納される。図１２には、実行中連携型タスク状態テーブル２３３に記憶される情報の一例が示されている。複数のアクションで構成されるタスクは、実行中であれば、現在の状態として途中のアクションまで進んでいる状態がある。実行中連携型タスク状態テーブル２３３には実行中のタスクの現在の状態が記録されている。
【００７５】
実行中連携型タスク状態テーブル２３３は連携型タスク管理プログラム２４１と、連携型タスク実行プログラム２４２によって更新され、実行されている連携型タスク及び連携型タスクの進捗を示している。
【００７６】
図８に戻り、メモリ２４には、連携型タスク管理プログラム２４１と、連携型タスク実行プログラ２４２が格納されている。
【００７７】
連携型タスク管理プログラム２４１は、主に以下の処理をＣＰＵ２１に実行させることで、タスクの受付及び実行準備を行う。
【００７８】
（１）  連携型タスク管理プログラム２４１は、通信インターフェース２５を介してタスク連携依頼メッセージＭ２を受信したら、連携依頼メッセージＭ２にある依頼タスクのユニバーサルタスク番号Ｍ２０２及び依頼元ＩＤ  Ｒ２を用いて、連携型タスクライブラリテーブル２３１及びロボット状態テーブル１３５を参照して、依頼タスクに対応できるロボット、つまり連携先ロボットとなりうるロボットが存在するかどうかを判断する。連携先ロボットとなりうるロボットが存在するかどうかを判断する方法としては、例えば、連携型タスクライブラリテーブル２３１にある連携条件２３１０３を満たしているロボットがロボット状態テーブル１３５に存在するかどうかを調べればよい。
【００７９】
（２）  （１）にて連携先ロボットとなりうるロボットが存在する場合、連携型タスク管理プログラム２４１は、依頼タスクに対応する連携型トリガーアクション設定テーブル２３４を用いて、依頼タスクが実行されるように、受付済み連携型タスクテーブル２３２と、実行中連携型タスク状態テーブル２３３と、ロボット状態テーブル１３５と、実行中タスク状態テーブル１３３及び受付済みタスクテーブル１３２を更新する。
【００８０】
（３）  （１）で連携先ロボットが存在しないと判断したら、連携型タスク管理プログラム２４１は、実行中タスク状態テーブル１３３及び受付済みタスクテーブル１３２に連携が拒否された時に実行するデフォルトタスクを追加する。
【００８１】
連携型タスク実行プログラム２４２は、主に以下の処理をループでＣＰＵ２１に実行させることで、連携型タスクをアクション単位で段階的に進行させる。
【００８２】
（１）  連携型タスク実行プログラム２４２は、実行中連携型タスク状態テーブル２３３を行ごとでスキャンする。スキャンにより現在のトリガー判定式２３３０２が得られたら、その現在のトリガー判定式２３３０２をトリガー計算依頼メッセージＭ５に反映し、トリガー計算依頼メッセージＭ５をトリガー判定プログラム１４４に通信インターフェース２５を介して送信する。
【００８３】
（２）  連携型タスク実行プログラム２４２は、トリガー判定プログラム１４４から、（１）のトリガー計算依頼メッセージＭ５に応じて返信されたトリガー計算結果メッセージＭ６を、通信インターフェース２５を介して受信する。連携型タスク実行プログラム２４２は、トリガー計算結果メッセージＭ６にて通知された計算結果を用いて、（１）のトリガー判定式２３３０２が満足されたかどうか判定する。満足されたら、連携型タスク実行プログラム２４２は、本トリガーに対応するアクションを実行されるように、本アクションをアクション実行依頼メッセージＭ７に含め、アクション実行依頼メッセージＭ７をアクション実行プログラム１４３に通信インターフェース２５を介して送信する。
【００８４】
（３）  アクション実行プログラム１４３に実行を依頼したアクションが連携型タスクの最後のアクションである場合は、連携型タスク実行プログラム２４２は、実行中連携型タスク状態テーブル２３３と、実行中タスク状態テーブル１３３から、その連携型タスクの行を削除して、次の行に移行する。アクション実行プログラム１４３に実行を依頼したアクションが連携型タスクの最後のアクションでない場合は、連携型タスク実行プログラム２４２は、本連携型タスクの連携型トリガーアクション設定テーブル２３４を用いて、実行中連携型タスク状態テーブル２３３と実行中タスク状態テーブル１３３におけるその連携型タスクの行を更新して次の行に移行する。
【００８５】
図１３は、ロボットＲ１、Ｒ２の装置構成を示すブロック図である。ロボットＲ１とロボットＲ２は同様の基本構成を有し、マイクロプロセッサからなるＣＰＵ３０１を備え、このＣＰＵ３０１にバス３０２を介して記憶装置３０３、メモリ３０４、および通信インターフェース３０５が接続されている。また、ロボットＲ１、Ｒ２は更に各種能力を実現する装置を備えることも可能であり、例えば、マイク３０７、移動機構３０８、スピーカ３０９、カメラ３１０、あるいは各種センサ３１１といった各種装置を備えることができる。ロボットＲ１、Ｒ２は、個別型タスク管理サーバＳＴＳのアクション実行プログラム１４３またはトリガー判定プログラム１４４、あるいは連携型タスク管理サーバＭＴＳの連携型タスク管理プログラム２４１または連携型タスク実行プログラム２４２から、通信インターフェース３０５を介して、アクション実行のトリガーを判定するための実行コマンドあるいはアクションの実行コマンドを受信し、実行する。
【００８６】
また、ロボットＲ１、Ｒ２は、メモリ３０４および記憶装置３０３にて、ロボット自身の機構、姿勢、移動等を制御するロボット制御アプリケーションと、ロボット自身の制御以外の機能、例えばセンサによる情報収集あるいは位置推定などの機能を実現する各種アプリケーションを記憶し、ＣＰＵ３０１により実行することも可能である。
【００８７】
＜メッセージの説明＞
以下、装置間で送受信されるメッセージについて説明する。上述したように本実施形態では７つのメッセージが用いられる。本実施形態では用いられるメッセージとして、タスク初期処理依頼メッセージＭ１、連携依頼メッセージＭ２、トリガー判定依頼メッセージＭ３、トリガー判定結果メッセージＭ４、トリガー計算依頼メッセージＭ５、トリガー計算結果メッセージＭ６、およびアクション実行依頼メッセージＭ７がある。これらのメッセージはアプリケーション層に規定されるメッセージである。ここでは主にメッセージのペイロードに搭載される情報について説明する。この情報をペイロードデータとして送受信するためのカプセル化は通信方式により異なってよい。
【００８８】
図１４は、タスク初期処理依頼メッセージＭ１を示す図である。タスク初期処理は、実行を依頼されたタスク（依頼タスク）にロボットを割り当てて受付済みとする処理である。タスク初期処理依頼メッセージＭ１は、タスク初期処理を依頼するためのメッセージである。タスク初期処理依頼メッセージＭ１には、メッセージ識別子Ｍ１０１と、依頼タスクのユニバーサルタスク番号１０２と、希望ロボットのロボットＩＤ  Ｍ１０３と、依頼元ＩＤ  Ｍ１０４が記憶される。なお、依頼元ＩＤ  Ｍ１０４と希望ロボットのロボットＩＤ  Ｍ１０３が同じであることがある。これは依頼元のロボットが自身のタスク初期処理を依頼するものである。図１４には、タスク初期処理依頼メッセージＭ１に記憶される情報の一例が示されている。
【００８９】
メッセージ識別子Ｍ１０１はメッセージの種類とメッセージの問答関係とを表す。例えば、本実施形態では、メッセージ識別子Ｍ１０１の先頭のＭとそれに続く上位２桁はアルファベットと数字の組み合わせによりメッセージ種類を表し、次の６桁はメッセージ同士の関係性を示す識別情報（ＩＤ）である。互いに問答関係を有するメッセージ同士は６桁の識別情報（ＩＤ）が同じ数字となる。なお、後述する他の６つのメッセージにおけるメッセージ識別子もこのメッセージ識別子Ｍ１０１と同様にメッセージの種類とメッセージの問答関係とを表す。
【００９０】
依頼タスクのユニバーサルタスク番号Ｍ１０２は、実行を依頼されたタスク（依頼タスク）を一意に識別する識別番号である。
【００９１】
希望ロボットのロボットＩＤ  Ｍ１０３は、タスク初期処理の対象とするロボットのロボットＩＤである。タスク初期処理は、実行を依頼されたタスク（依頼タスク）にロボットを割り当てて受付済みとする処理である。
【００９２】
依頼元ＩＤ  Ｍ１０４は、タスク初期処理の依頼元となるロボットのロボットＩＤである。
【００９３】
図１５は、連携依頼メッセージＭ２を示す図である。連携依頼メッセージＭ２は連携対応を依頼するためのメッセージである。連携依頼は、タスク初期処理の依頼を受けて必要に応じて行なう処理である。連携依頼メッセージＭ２はタスク初期処理依頼メッセージＭ１と問答関係を有する。連携依頼メッセージＭ２には、メッセージ識別子Ｍ２０１と、依頼タスクのユニバーサルタスク番号Ｍ２０２と、依頼元ＩＤ  Ｍ２０３が記憶される。図１５には、連携依頼メッセージＭ２に記憶される情報の一例が示されている。
【００９４】
メッセージ識別子Ｍ２０１は、メッセージ識別子Ｍ１０１と同様に、メッセージの種類とメッセージの問答関係とを表す。
【００９５】
依頼タスクのユニバーサルタスク番号Ｍ２０２は、連携対応を依頼する依頼タスクを示す識別番号である。
【００９６】
依頼元ＩＤ  Ｍ２０３は、依頼タスクの連携対応の連携元となるロボットのロボットＩＤである。
【００９７】
図１６は、トリガー判定依頼メッセージＭ３を示す図である。トリガー判定依頼は、個別対応にてトリガー条件が満たされているか否か、つまり、単一のロボットで依頼タスクのアクションを実行するとした場合にトリガー判定式が真か偽かの判定を依頼するためのメッセージである。トリガー判定依頼メッセージＭ３には、メッセージ識別子Ｍ３０１と、トリガー判定式Ｍ３０２と、依頼元ＩＤ  Ｍ３０３と、依頼先ＩＤ  Ｍ３０４が記憶される。図１６には、トリガー判定依頼メッセージＭ３に記憶される情報の一例が示されている。
【００９８】
メッセージ識別子Ｍ３０１は、メッセージ識別子Ｍ１０１と同様に、メッセージの種類とメッセージの問答関係とを表す。
【００９９】
トリガー判定式Ｍ３０２は、個別対応での判定を依頼する判定式（トリガー判定式）を示す。
【０１００】
依頼元ＩＤ  Ｍ３０３は、トリガー判定を依頼する側のロボットのロボットＩＤ、つまりトリガー判定の対象であるアクションの前のアクションを実行したロボットのロボットＩＤである。
【０１０１】
依頼先ＩＤ  Ｍ３０４は、トリガー判定を依頼される側のロボットのロボットＩＤ、つまりトリガー判定の対象であるアクションを実行するロボットのロボットＩＤである。
【０１０２】
図１７は、トリガー判定結果メッセージＭ４を示す図である。トリガー判定結果メッセージＭ４はトリガー判定の結果が真であるか偽であるかを通知するためのメッセージである。トリガー判定結果メッセージＭ４はトリガー判定依頼メッセージＭ３と問答関係を有する。トリガー判定結果メッセージＭ４には、メッセージ識別子Ｍ４０１と、トリガー判定結果Ｍ４０２と、依頼元ＩＤ  Ｍ４０３と、依頼先ＩＤ  Ｍ４０４が記憶される。図１７に、トリガー判定結果メッセージＭ４に記憶される情報の一例が示されている。
【０１０３】
メッセージ識別子Ｍ４０１は、メッセージ識別子Ｍ１０１と同様に、メッセージの種類とメッセージの問答関係とを表す。
【０１０４】
トリガー判定結果Ｍ４０２は、トリガー判定の結果が真であるか偽であるかを示す。
【０１０５】
依頼元ＩＤ  Ｍ４０３は、トリガー判定を依頼する側のロボットのロボットＩＤ、つまりトリガー判定の対象であるアクションの前のアクションを実行したロボットのロボットＩＤである。
【０１０６】
依頼先ＩＤ  Ｍ４０４は、トリガー判定を依頼される側のロボットのロボットＩＤ、つまりトリガー判定の対象であるアクションを実行するロボットのロボットＩＤである。
【０１０７】
図１８は、トリガー計算依頼メッセージＭ５を示す図である。トリガー計算依頼は、連携対応にてトリガー条件が満たされているか否か、つまり複数のロボットの連携で依頼タスクのアクションを実行するとした場合にトリガー判定式が真か偽かの判定を依頼するためのメッセージである。トリガー計算依頼メッセージＭ５には、メッセージ識別子Ｍ５０１と、トリガー計算式と、依頼元ＩＤ  Ｍ５０３と、依頼先ＩＤ  Ｍ５０４が記憶される。図１８には、トリガー計算依頼メッセージＭ５に記憶される情報の一例が示されている。
【０１０８】
メッセージ識別子Ｍ５０１は、メッセージ識別子Ｍ１０１と同様に、メッセージの種類とメッセージの問答関係とを表す。
【０１０９】
トリガー計算式Ｍ５０２は、連携対応での判定を依頼する判定式（トリガー計算式）を示す。
【０１１０】
依頼元ＩＤ  Ｍ５０３は、トリガー判定を依頼する側のロボットのロボットＩＤ、つまりトリガー判定の対象であるアクションの前のアクションを実行したロボットのロボットＩＤである。
【０１１１】
依頼先ＩＤ  Ｍ５０４は、トリガー判定を依頼される側のロボットのロボットＩＤ、つまりトリガー判定の対象であるアクションを実行するロボットのロボットＩＤである。
【０１１２】
図１９は、トリガー計算結果メッセージＭ６を示す図である。トリガー計算結果メッセージＭ６はトリガー判定の結果が真であるか偽であるかを通知するためのメッセージである。トリガー計算結果メッセージＭ６はトリガー計算依頼メッセージＭ５と問答関係を有する。トリガー計算結果メッセージＭ６には、メッセージ識別子Ｍ６０１と、トリガー計算結果Ｍ６０２と、依頼元ＩＤ  Ｍ６０３と、依頼先ＩＤ  Ｍ６０４が記憶される。図１９には、トリガー計算結果メッセージＭ６に記憶される情報の一例が示されている。
【０１１３】
メッセージ識別子Ｍ６０１は、メッセージ識別子Ｍ１０１と同様に、メッセージの種類とメッセージの問答関係とを表す。
【０１１４】
トリガー計算結果Ｍ６０２は、トリガー判定の結果が真であるか偽であるかを示す。
【０１１５】
依頼元ＩＤ  Ｍ６０３は、トリガー判定を依頼する側のロボットのロボットＩＤ、つまりトリガー判定の対象であるアクションの前のアクションを実行したロボットのロボットＩＤである。
【０１１６】
依頼先ＩＤ  Ｍ６０４は、トリガー判定を依頼される側のロボットのロボットＩＤ、つまりトリガー判定の対象であるアクションを実行するロボットのロボットＩＤである。
【０１１７】
図２０は、アクション実行依頼メッセージＭ７を示す図である。アクション実行依頼メッセージＭ７は、トリガー判定が真であるときに、そのトリガー判定式あるいはトリガー計算式に対応するアクションの実行を依頼するためのメッセージである。アクション実行依頼メッセージＭ７には、メッセージ識別子Ｍ７０１と、アクションＭ７０２と、依頼元ＩＤ  Ｍ７０３と、依頼先ＩＤ  Ｍ７０４と、トリガー番号Ｍ７０５が記憶される。図２０には、アクション実行依頼メッセージＭ７に記憶される情報の一例が示されている。
【０１１８】
メッセージ識別子Ｍ７０１は、メッセージ識別子Ｍ１０１と同様に、メッセージの種類とメッセージの問答関係とを表す。
【０１１９】
アクションＭ７０２は、実行を依頼するアクションを示す。
【０１２０】
依頼元ＩＤ  Ｍ７０３は、トリガー判定を依頼する側のロボットのロボットＩＤ、つまりトリガー判定の対象であるアクションの前のアクションを実行したロボットのロボットＩＤである。
【０１２１】
依頼先ＩＤ  Ｍ７０４は、トリガー判定を依頼される側のロボットのロボットＩＤ、つまりトリガー判定の対象であるアクションを実行するロボットのロボットＩＤである。
【０１２２】
トリガー番号Ｍ７０５は、実行を依頼するアクションに対応するトリガー番号を示す。トリガー番号は、トリガーアクション設定テーブル１３４または連携型トリガーアクション設定テーブル２３４においてアクションに付与された番号である。トリガー番号Ｍ７０５によりタスクが現在どこまで進行しているかが分かる。
【０１２３】
＜システム動作の説明＞
次に、以上のように構成されたサービスロボットシステムの各種処理の動作について以下に説明する。なお、ここでは、タスクｔをロボット１台で実行する形態を個別形態ｔｓとし、複数台のロボットで実行する形態を連携形態ｔｍとする。個別形態ｔｓと連携形態ｔｍはそれぞれ一連のアクションとそのアクションを起こすトリガーで定義されている。
・ロボットに対するタスク（例えばタスクｔ）を実行させるための事前設定
実行すべきタスクｔについて個別形態ｔｓに対応するトリガーアクション設定テーブル１３４或いは連携形態ｔｍに対応する連携型トリガーアクション設定テーブル２３４がシステムに存在しない場合、本実施形態のサービスロボットシステムでは、トリガーアクション設定テーブル１３４或いは連携型トリガーアクション設定テーブル２３４を例えば下記の方法で追加する。
【０１２４】
まず、個別形態ｔｓのタスクおよびアクションを設定する方法について説明する。
【０１２５】
ロボットを管理する主体、例えば管理者は、まず、ネットワークＮＷに接続しているタスク設定用端末ＴＳＴを使って、通信インターフェース１５を介して同じネットワークＮＷに接続している個別型タスク管理サーバＳＴＳにアクセスする。そして、管理者は、個別型タスク管理サーバＳＴＳの記憶装置１３のトリガーアクション設定テーブル１３４に、実行すべきタスクｔに個別対応する個別形態ｔｓを定義するテーブルファイルを追加する。トリガーアクション設定テーブル１３４にテーブルファイルを追加したら、管理者は次に、記憶装置１３にあるタスクライブラリテーブル１３１に新たな一行を追加し、この行に、タスクｔのユニバーサルタスク番号１３１０１と、タスク名１３１０２と、対応能力要求１３１０３と、他タスク並行実行可否１３１０４と、トリガーアクション設定テーブル場所１３１０５を記入する。
【０１２６】
次に、連携形態ｔｓのタスクおよびアクションを設定する方法について説明する。
【０１２７】
管理者は、タスク設定用端末ＴＳＴを使って、個別型タスク管理サーバＳＴＳへのアクセスと同様の方法で、連携型タスク管理サーバＭＴＳにアクセスする。そして、管理者は、連携型タスク管理サーバＭＴＳの記憶装置２３にある連携型トリガーアクション設定テーブル２３４に、連携形態ｔｍを定義したテーブルファイルを追加する。連携型トリガーアクション設定テーブル２３４にテーブルファイルを追加したら、管理者は、次に、記憶装置２３にある連携型タスクライブラリテーブル２３１に新たな一行を追加し、この行にタスクｔのユニバーサルタスク番号２３１０１と、タスク名２３１０２と、連携条件２３１０３と、連携型トリガーアクション設定テーブル場所２３１０４を記入する。
【０１２８】
なお、ここではタスクの追加について説明したが、タスクの削除も同様に行うことができる。
【０１２９】
実行すべきタスクｔについて個別形態ｔｓに対応するトリガーアクション設定テーブル１３４或いは連携形態ｔｍに対応する連携型トリガーアクション設定テーブル２３４は存在するが、その更新が必要である場合、本実施形態のサービスロボットシステムではトリガーアクション設定テーブル１３４あるいは連携型トリガーアクション設定テーブル２３４を例えば下記の方法で更新する。なお、トリガーアクション設定テーブル１３４あるいは連携型トリガーアクション設定テーブル２３４の更新はテーブルの行の添削や行内の一部箇所の編集等を意味する。
【０１３０】
管理者はタスク設定用端末ＴＳＴを使って個別型タスク管理サーバＳＴＳにアクセスする。そして、管理者は、個別型タスク管理サーバＳＴＳの記憶装置１３にあるトリガーアクション設定テーブル１３４におけるタスクｔの個別形態ｔｓに対応するテーブルファイルを更新する。また、管理者は、トリガーアクション設定テーブル１３４の個別形態ｔｓのテーブルファイルを更新するのと同様の方法で連携型タスク管理サーバＭＴＳの記憶装置２３にある連携型トリガーアクション設定テーブル２３４におけるタスクｔの連携形態ｔｍに対応するテーブルファイルを更新することができる。
【０１３１】
したがって、トリガーアクション設定テーブル１３４及び連携型トリガーアクション設定テーブル２３４のテーブルファイルの追加、更新、削除によって、ロボットを管理する主体、例えばシステム管理者がタスクの形態、例えばアクションの内容やアクションを実行する条件などを柔軟に設定でき、ロボットが場所や条件に応じて適切なサービスを提供することを実現する。
【０１３２】
以下、図５に示されたトリガーアクション設定テーブル１３４の例を用いて、ロボットが「タスク＿挨拶＿個別形態」を実行する様子を説明する。そこには単体のロボットが接近してきた人間に挨拶をするというタスクが規定されている。
【０１３３】
図５において、トリガー番号が０である最初の行のトリガー判定式は「関数＿人間接近検出（関数実行ロボットＩＤ，１０メートル）＝＝検出」である。「関数＿人間接近検出（）」はトリガー判定プログラム１４４にある関数であり、人間が接近してきたことを検出するトリガー判定式である。１番目の引数「関数実行ロボットＩＤ」は判定を実行するロボットのロボットＩＤを示し、２番目の引数「１０メートル」は人間の接近を判定する距離の閾値である。人間がロボットの１０メートル以内に入ると関数の値が真となる。なお、人が多い場所では、「１０メートル」という閾値では、挨拶すべき相手ではない人間を誤検出する場合が増え、挨拶をすべき人間の接近を正しく検出する成功率が低くなる可能性がある。その場合、ロボットを管理する主体、例えば管理者は、この引数を例えば「６メートル」のように、より短い距離に変更すればよい。
【０１３４】
トリガー判定プログラム１４４にてトリガー判定式が「真」と判定されると、トリガー判定プログラム１４４から個別型タスク実行プログラム１４２にトリガー判定式が真であるという応答が返送される。トリガー判定式が真であるという応答を受けた個別型タスク実行プログラム１４２は、アクション「関数＿ターゲットロック（関数実行ロボットＩＤ）」をアクション実行プログラム１４３に実行させる。
【０１３５】
関数＿ターゲットロック（）はアクション実行プログラム１４３に備えられた関数の関数名である。その引数「関数実行ロボットＩＤ」は関数を実行するロボットのロボットＩＤである。すなわち、このアクションは、人間が自分に近いている可能性があると判断したロボットが、この人間を対人サービスのターゲットとしてロックするというアクションである。人間をターゲットとしてロックする処理というのは具体的には例えば人間の顔を認識する処理である。
【０１３６】
次に、トリガー番号が１の行に移行する。この行のトリガー判定式は「真」、つまり常に真であるので、個別型タスク実行プログラム１４２は、ターゲットロックのアクションを実行した後、自動的に、この行の「関数＿顔向き調整（関数実行ロボットＩＤ）」を、アクション実行プログラム１４３に実行させる。こうすると、ロボットは自分の顔を対人サービスのターゲットである人間（顧客）に向け、その顧客に目線を合わせる。
【０１３７】
次に、トリガー番号が２の行に移行する。この行のトリガー判定式は「関数＿距離判断（関数実行ロボットＩＤ，ターゲット座標）＜＝５メートル」であり、ロックしたターゲットとの距離を測定して閾値と比較し、距離が５メートル以内になったら、「真」と判断する。これは、ターゲットとしてロックした人間がロボットに何らかのサービスを求めている可能性が高いという判断である。この場合、「関数＿胴体向き調整（関数実行ロボットＩＤ）」が実行され、ロボットはターゲットである人間に体を向ける。人が多い場所では、「５メートル」という距離は、ターゲットの人間がロボットに何らかのサービスを求めているか否かを正しく検出できず、成功率が低くなる可能性がある、その場合、ロボットを管理する主体、例えば管理者は、閾値とする引数を例えば「２メートル」というように、より短い距離に変更すればよい。
【０１３８】
次に、トリガー番号が−１という最後の行に移行する。「関数＿正面検出（関数実行ロボットＩＤ）＝＝検出」というトリガー判定式は「真」というのは、サービスターゲットである人間がロボットに何らかのサービスを求めていることが確実であると判断する判定式である。このトリガー判定式が真となったら、「関数＿挨拶（関数実行ロボットＩＤ）」をアクション実行プログラム１４３に実行させる。これにより、ロボットがターゲットである人間に挨拶する。例えば、ロボットは人間に「こんにちは、何かお困りでしょうか」と尋ねる。
【０１３９】
個別型タスク管理サーバＳＴＳがロボットにタスク、例えばタスクｔを実行させる動作について説明する。
【０１４０】
個別型タスク管理プログラム１４１はタスクｔの実行を要求するリクエストを受信すると、タスク初期処理を実行する。
【０１４１】
図２１は、個別型のタスク初期処理のフローチャートである。
【０１４２】
個別型タスク管理プログラム１４１は、ステップＳ１４１０１により、タスク初期処理依頼メッセージＭ１を通信インターフェース１５又はバス１２を介して受信する。タスク初期処理依頼メッセージＭ１の送信元は、少なくとも、アクション実行プログラム１４３、トリガー判定プログラム１４４、またはタスク設定用端末ＴＳＴである可能性が考えられる。個別型タスク管理プログラム１４１は、本メッセージのメッセージ識別子Ｍ１０１を検査することにより、本メッセージがタスク初期処理依頼メッセージＭ１であること確認することができる。
【０１４３】
次に、個別型タスク管理プログラム１４１は、ステップＳ１４１０２により、タスク初期処理依頼メッセージＭ１を解読し、実行が要求されたタスクである依頼タスクのユニバーサルタスク番号Ｍ１０２と、依頼タスクを実行することが希望されたロボットである希望ロボットのロボットＩＤ  Ｍ１０３を取得する。
【０１４４】
さらに、個別型タスク管理プログラム１４１は、タスクライブラリテーブル１３１を、バス１２を介して参照し、得したユニバーサルタスク番号Ｍ１０２を用いて、依頼タスクに該当するタスクのタスク名１３１０２、対応能力要求１３１０３、および他タスク並行実行可否１３１０４を取得する。
【０１４５】
他タスク並行実行可否１３１０４の情報が「否」である場合、個別型タスク管理プログラム１４１は、ステップＳ１４１０３により、実行中タスク状態テーブル１３３のタスク管理番号１３３０１を参照し、希望ロボットが現在、タスクを実行しているかどうかを確認する。希望ロボットがタスクを実行している場合、個別型タスク管理プログラム１４１は、現在、希望ロボットはタスクｔを実行できない状態であると判断し、ステップＳ１４１１２により、対応不可な場合に実行すべきデフォルトタスクをアクション実行プログラム１４３に実行させる。希望ロボットがタスクを実行していない場合、個別型タスク管理プログラム１４１は、タスクｔを実行できると判断し、ステップＳ１４１０４に移行する。
【０１４６】
ステップＳ１４１０４に移行すると、個別型タスク管理プログラム１４１は、タスク初期処理依頼メッセージＭ１にある希望ロボットのロボットＩＤ  Ｍ１０３を用いて、ロボット状態テーブル１３５から希望ロボットのタスク対応能力１３５０３を取得する。次に、個別型タスク管理プログラム１４１は、ステップＳ１４１０５により、ステップＳ１４１０２で取得したタスクｔの対応能力要求１３１０３（「（オプション）」で示された能力を除く）と、希望ロボットのタスク対応能力１３５０３を比較し、希望ロボットが単体でタスクｔに対応できるか否か判定する。対応能力要求１３１０３においてオプションとされた能力は、省略可能なアクションにて必要とされる能力である。ここでオプションの能力を除外したのは、希望ロボットがその能力を備えていなくても依頼タスクに個別対応が可能だからである。
【０１４７】
個別型タスク管理プログラム１４１は、タスクｔに希望ロボットが単体で対応できると判断したらステップＳ１４１０６に移行し、タスクｔに希望ロボットが単体で対応できないと判断したらステップＳ１４１１０に移行する。ステップＳ１４１１０では、個別型タスク管理プログラム１４１は、タスクｔが連携対応できるか否か判定する。タスクｔが連携対応できるものであれば、個別型タスク管理プログラム１４１は、ステップＳ１４１１１により、通信インターフェース１５を介して連携型タスク管理サーバＭＴＳに、依頼タスクの連携対応を依頼するために連携依頼メッセージＭ２を送信する。一方、タスクｔが連携対応できない場合、個別型タスク管理プログラム１４１は、ステップＳ１４１１２に移行する。
【０１４８】
一方、ステップＳ１４１０６に移行すると、個別型タスク管理プログラム１４１は、取得したユニバーサルタスク番号１３１０１を用いて、タスクｔの個別形態ｔｓに対応するトリガーアクション設定テーブル場所１３１０５を取得し、そこに示された場所からトリガーアクション設定テーブル１３４の一行目を読込む。更に、個別型タスク管理プログラム１４１は、ステップＳ１４１０７により、実行中タスク状態テーブル１３３にタスクｔの行を追加することによりタスクｔを実行中のタスクとし、その行にタスクｔの関連情報を書込む。次に、個別型タスク管理プログラム１４１は、ステップＳ１４１０８により、受付済みタスクテーブル１３２にもタスクｔの行を追加することによりタスクｔを受付済みタスクとし、その行にもタスクｔの関連情報を書込む。
【０１４９】
最後に、個別型タスク管理プログラム１４１は、ステップＳ１４１０９により、ロボット状態テーブル１３５のロボットＩＤを参照して希望ロボットの状態を示す情報を識別し、希望ロボットの現在のタスクのタスク管理番号１３５０４を、タスクｔを示す番号に更新する。
【０１５０】
ここに示したように、タスク管理部（メモリ１４上の個別型タスク管理プログラム１４１）がタスクの実行を管理する。記憶装置１３には、タスク毎にタスクが他のタスクと並行して実行できるタスクであるか否かを規定したタスクライブラリ情報（タスクライブラリテーブル１３１）が記録されている。タスク管理部（個別型タスク管理プログラム１４１）は、タスクの実行が要求されたときタスクライブラリ情報を参照し、タスクが他のタスクと並行して実行できるものであれば他のタスクが実行中か否かによらずタスク実行部（個別型タスク実行プログラム１４２）にタスクの実行を開始させ、タスクが他のタスクと並行して実行できないものであれば他のタスクが実行されているか否か確認し、他のタスクが実行されていれば、他のタスクが終了してからタスク実行部にタスクを実行させる。他のタスクと並行して実行することが可能なタスクであれば早期に開始することができるので、対人サービスの提供を迅速に進めることができる。
【０１５１】
また、連携型タスク管理部（連携型タスク管理プログラム２４１）は、タスクに含まれるそれぞれのアクションに要求される要求能力に基づいて、タスクに含まれるアクションとそのアクションの実行に利用するロボットとを設定する。タスクに含まれるアクションをその要求能力に応じて複数のロボットに割り当てることができるので、個々に能力が異なる複数のロボットを組み合わせて有効に活用し、様々な能力を必要とするタスクを効率よく実行することができる。
【０１５２】
連携型タスク管理部（連携型タスク管理プログラム２４１）は、タスクに含まれる全てのアクションに要求される要求能力を備えたロボットの有無を調査し、要求能力を備えたロボットがあれば、ロボットをタスクに含まれるアクションに優先的に割り当てる。タスクに含まれる全てのアクションを賄えるロボットがあれば、そのロボットを優先的に用いて全てのアクションを１つのロボットに実行させるので、効率よくタスクを実行することができる。
【０１５３】
ただし、図５に示したように、タスクに含まれるアクションには実行を省略することが可能な省略可能アクションがある場合がある。連携型タスク管理部は、タスクに含まれる全てのアクションに要求される要求能力を備えたロボットが無ければ、タスクに含まれる省略可能アクション以外の全てのアクションに要求される要求能力である必須要求能力を備えたロボットの有無を調査し、オプションの要求能力を備えていなくても必須要求能力を備えたロボットがあれば、そのロボットを前記タスクに含まれるアクションに優先的に割り当てる。省略可能なアクションを除けばタスクに含まれるアクションを１つのロボットで実行できる場合に、そのロボットにタスクを実行させることができるので、ロボットのリソースを有効に利用することができる。連携型タスク管理部は、要求能力を満たすロボットが存在しないアクションが省略可能アクションであれば、その省略可能アクションの省略を決定する。省略可能なアクションを除けばタスクに含まれるアクションを満たすロボットがある場合に、省略可能なアクションを省略してタスクの実行を確保することができる。
【０１５４】
個別型タスク実行プログラム１４２がタスクｔをアクション単位で段階的に進行させる個別型タスク実行処理について説明する。
【０１５５】
図２２は、個別型タスク実行処理のフローチャートである。ステップＳ１４２０１により、個別型タスク実行プログラム１４２は、実行中タスク状態テーブル１３３を行ごとでスキャンし、以下の処理を繰り返す。
【０１５６】
ステップＳ１４２０２により、個別型タスク実行プログラム１４２は、実行中タスク状態テーブル１３３のタスク管理番号１３３０１を用いて受付済みタスクテーブル１３２を参照し、スキャンしたタスクの対応方法１３２０３を確認する。
【０１５７】
タスクｔの対応方法１３２０３が連携対応である場合、個別型タスク実行プログラム１４２は、ステップＳ１４２１０に移行する。一方、タスクｔの対応方法１３２０３が個別対応である場合、個別型タスク実行プログラム１４２は、ステップＳ１４２１１に移行する。
【０１５８】
ステップＳ１４２１１では、個別型タスク実行プログラム１４２は、当該タスクを実行しているロボットが実行しているタスクが並行実行可能かどうか判定する。当該ロボットが複数のタスクを並行して実行している場合、タスクにて次に実行すべきアクションと、当該ロボットが現在実行中の他の全てのタスクのアクションが並行実行可能かどうか判定する。
【０１５９】
並行実行ができない場合、個別型タスク実行プログラム１４２は、ステップＳ１４２１０に移行する。並行実行可能な場合、個別型タスク実行プログラム１４２は、ステップＳ１４２０３に移る。
【０１６０】
ステップＳ１４２０３では、個別型タスク実行プログラム１４２は、該当する行の現在のトリガー判定式２３３０２を読込み、トリガー判定依頼メッセージＭ３にそのトリガー判定式２３３０２を含めて、トリガー判定依頼メッセージＭ３を、バス１２を介してトリガー判定プログラム１４４に送信する。
【０１６１】
トリガー判定依頼メッセージＭ３は、ステップＳ１４２０４でトリガー判定結果メッセージＭ４を受信し、トリガー判定結果メッセージＭ４内のメッセージ識別子Ｍ４０１を確認する。例えば、トリガー判定結果メッセージＭ４がトリガー判定依頼メッセージＭ３に対する応答であるとすると、それら２つのメッセージに含まれるメッセージ識別子が一致する。
【０１６２】
次に、個別型タスク実行プログラム１４２は、ステップＳ１４２０５によりトリガー判定結果を読み込んで、トリガー判定式Ｍ３０２が満足されたかどうかを確認する。トリガー判定式Ｍ３０２が満足されていない場合、個別型タスク実行プログラム１４２は、本トリガーに対応するアクションを実行せずにステップＳ１４２１０に移行する。一方、トリガー判定式Ｍ３０２が満足された場合、個別型タスク実行プログラム１４２は、本トリガーに対応するアクションを実行するので、ステップＳ１４２０６に移行する。
【０１６３】
ステップＳ１４２０６により、個別型タスク実行プログラム１４２は、該当する行のアクション及びトリガー番号Ｍ７０５を含めたアクション実行依頼メッセージＭ７をアクション実行プログラム１４３に送信する。
【０１６４】
続いて、ステップＳ１４２０７で、個別型タスク実行プログラム１４２は、ステップＳ１４２０６で実行したアクションが該当タスクの最後のアクションであるかどうかを確認する。確認する方法の一つとして、本実施例では、トリガー番号Ｍ７０５が最後の番号であるかどうかをチェックすることである。
【０１６５】
実行したアクションが最後のアクションである場合、個別型タスク実行プログラム１４２は、ステップＳ１４２０８により、実行中タスク状態テーブル１４４の現在の行を削除し、ステップＳ１４２１０に移行する。
【０１６６】
一方、実行したアクションが最後のアクションではない場合、個別型タスク実行プログラム１４２は、ステップＳ１４２０９に移行する。個別型タスク実行プログラム１４２は、ステップＳ１４２０９により、トリガーアクション設定テーブル１３４を参照して、実行したアクションの次のアクション１３４０４に対応する行の情報を用いて、実行中タスク状態テーブル１４４の現在の行を更新する。
【０１６７】
なお、次のアクションのアクション要求能力が、当該ロボットにとって実行できないものである場合、該当アクションをスキップし、次々のアクションに対応する行の情報を用いて、実行中タスク状態テーブル１４４の現在の行を更新する。
【０１６８】
なお、次のアクションのアクション要求能力が、当該ロボットにとって実行できるものか否かは、タスク対応能力１３５０３を参考することにより分かる。
【０１６９】
最後に、個別型タスク実行プログラム１４２は、ステップＳ１４２１０に移行する。
【０１７０】
上述したように、個別型タスク実行プログラム１４２はトリガー判定プログラム１４４にトリガー判定式Ｍ３０２が満足されているかどうかを判定させて、その判定結果に基づいてアクションの実行可否を判断する。また、後で詳しく説明するが、連携型タスク実行プログラム２４２もトリガー判定プログラム１４４にトリガー判定式Ｍ３０２を計算させて、その計算結果に基づいてアクションの実行可否を判断する。
【０１７１】
ここに示したように、トリガーアクション情報（トリガーアクション設定テーブル１３４）には、アクションが他のアクションと並行して実行できるアクションであるか否かが設定されている。タスク実行部（個別型タスク実行プログラム１４２）は、選択したアクションが他のアクションと並行して実行できる場合には、先行するアクションを実行中に、選択したアクションのトリガー条件が満たされたか否かをトリガー判定部（トリガー判定プログラム１４４）に判定させ、選択したアクションが他のアクションと並行して実行できない場合には、先行するアクションが終了してから、選択したアクションのトリガー条件が満たされたか否かトリガー判定部に判定させる。他のアクションと並行して実行することが可能なアクションであれば早期に開始することができるので、一連のアクションを迅速に進めることができる。
【０１７２】
ここで、それらに共通するトリガー判定プログラム１４４によるトリガー判定処理について説明する。
【０１７３】
図２３は、トリガー判定処理のフローチャートである。
【０１７４】
トリガー判定プログラム１４４は、ステップＳ１４４０１により、トリガー判定依頼メッセージＭ３またはトリガー計算依頼メッセージＭ５を、バス１２または通信インターフェース１５を介して受信すると、トリガー判定処理を開始する。続いて、トリガー判定プログラム１４４は、ステップＳ１４４０２により、受信したメッセージにあるトリガー判定式Ｍ３０２の文字列から関数名と引数を識別する。更に、トリガー判定プログラム１４４は、ステップＳ１４４０３により関数を実行する。
【０１７５】
そして、トリガー判定プログラム１４４は、ステップＳ１４４０４にて、受信したメッセージのメッセージ識別子Ｍ４０１を用いて、受信したメッセージの種類を判断する。受信したメッセージがトリガー計算依頼メッセージＭ５である場合、トリガー判定プログラム１４４は、ステップＳ１４４０５に移行して、実行した関数の戻り値をトリガー計算結果メッセージＭ６に含めて、通信インターフェース１５を介して、連携型タスク実行プログラム２４２に送信する。
【０１７６】
一方、受信したメッセージがトリガー判定依頼メッセージＭ３である場合、トリガー判定プログラム１４４は、ステップＳ１４４０６に移行し、現在のトリガー判定式２３３０２の文字列から条件式を識別し、実行した関数の戻り値を条件式に代入し、真偽の判定を実施する。
【０１７７】
そして、トリガー判定プログラム１４４は、ステップＳ１４４０７により、判定の結果をトリガー判定結果メッセージＭ４に含めて、バス１２を介して個別型タスク実行プログラム１４２に返信する。
【０１７８】
上述したように、個別型タスク実行プログラム１４２はトリガー判定式Ｍ３０２が満足されたらアクション実行プログラム１４３にアクションを実行させる。また、後で詳しく説明するが、連携型タスク実行プログラム２４２もトリガー判定式が満足されたらアクション実行プログラム１４３にアクションを実行させる。
【０１７９】
アクション実行プログラム１４３は、個別型タスク実行プログラム１４２または連携型タスク実行プログラム２４２の依頼によりアクション実行処理によりアクションを実行する。
【０１８０】
図２４は、アクション実行処理のフローチャートである。
【０１８１】
アクション実行プログラム１４３は、ステップＳ１４３０１により、アクション実行依頼メッセージＭ７を、バス１２または通信インターフェース１５を介して受信すると、アクション実行処理を開始する。
【０１８２】
続いて、アクション実行プログラム１４３は、ステップＳ１４３０２により、受信したメッセージにあるアクションＭ７０２の文字列から関数名および引数を識別し、ステップＳ１４３０３により関数を実行する。
【０１８３】
次に、アクション実行プログラム１４３は、ステップＳ１４３０４にて、ステップＳ１４３０３で実行したアクションがタスクの最後のアクションであるかどうかを確認する。確認する方法の一つとして、本実施例では、アクション実行プログラム１４３は、現在のトリガー番号１３３０５が最後の番号であるかどうかをチェックする。実行したアクションが最後のアクションではない場合、アクション実行プログラム１４３は、処理を終了する。
【０１８４】
一方、実行したアクションが最後のアクションである場合、アクション実行プログラム１４３は、ステップＳ１４３０５に移行する。ステップＳ１４３０５では、アクション実行プログラム１４３は、受信したアクション実行依頼メッセージＭ７の依頼元ＩＤ  Ｍ７０３を用いて、バス１２を介して記憶装置１３にアクセスし、ロボット状態テーブル１３５から現在のタスクのタスク管理番号１３５０４を削除する。
【０１８５】
なお、アクションは他のタスクを起動することができる。例えば、タスクｔの個別形態ｔｓに含まれる一つのアクションは、別のタスクを実行させる関数である。この関数はタスクを起動するための汎用性を持ち、例えば、引数に基づいてタスク初期処理依頼メッセージＭ１を生成して個別型タスク管理プログラム１４１に送信するという機能を持つものである。
【０１８６】
タスクｔからタスクｑを起動するため、アクション実行プログラム１４３は、この関数をアクションとして用いることにより、初期処理依頼メッセージＭ１を生成して個別型タスク管理プログラム１４１に送信する。
【０１８７】
初期処理依頼メッセージＭ１を受信した個別型タスク管理プログラム１４１が、タスクｑを連携対応すると決めれば、タスクｑは連携型タスク管理サーバＭＴＳによって処理されることになる。したがって、個別形態のタスクが連携形態のタスクを起動することも可能である。なお、その場合に連携型のタスクｑと個別型のタスクｔが同じ内容のタスクであってもよい。
【０１８８】
連携型タスク管理サーバＭＴＳがロボットにタスクを実行させる動作について説明する。
【０１８９】
連携型タスク管理プログラム２４１は、タスクを実行させるリクエストを受信すると、タスク初期処理を実行する。
【０１９０】
図２５は、連携型のタスク初期処理のフローチャートである。
【０１９１】
連携型タスク管理プログラム２４１は、ステップＳ２４１０１により、連携依頼メッセージＭ２を、通信インターフェース２５を介して受信すると、タスク初期処理を開始する。
【０１９２】
連携依頼メッセージＭ２の送信元は、少なくとも、アクション実行プログラム１４３、トリガー判定プログラム１４４、またはタスク設定用端末ＴＳＴのいずれかである可能性が考えられる。
【０１９３】
続いて、連携型タスク管理プログラム２４１は、ステップＳ２４１０２により、連携先ロボットを選定する処理を実行する。連携型タスク管理プログラム２４１は、連携依頼メッセージＭ２にある依頼タスクのユニバーサルタスク番号Ｍ２０２及び依頼元ＩＤ  Ｍ２０３を用いて、連携型タスクライブラリテーブル２３１及びロボット状態テーブル１３５を参照し、依頼タスクに対応することができるロボットを選定する。
【０１９４】
そして、連携型タスク管理プログラム２４１は、ステップＳ２４１０３により、依頼タスクに対応できるロボット、つまり連携先ロボットとなるロボットが存在するかどうかを判断する。連携先ロボットが存在するかどうかを判定する方法として、例えば、連携型タスクライブラリテーブル２３１にある連携条件２３１０３を満たしているロボットが、ロボット状態テーブル１３５に存在するかどうかを検索する、という方法がある。
【０１９５】
連携先となるロボットが存在しない場合、連携型タスク管理プログラム２４１は、ステップＳ２４１０４に移行し、連携元ロボットの実行中タスク状態テーブル１３３および受付済みタスクテーブル１３２に、連携が拒否された時に実行すべきデフォルトタスクの行を追加し、その行にデフォルトタスクの関連情報を書込む。
【０１９６】
一方、連携先となるロボットが存在する場合、連携型タスク管理プログラム２４１は、そのロボットを連携先とし、ステップＳ２４１０５に移行し、連携型タスクライブラリテーブル２３１を参照して、ユニバーサルタスク番号Ｍ２０２に対応する連携型タスクのトリガーアクション設定テーブル２３４の一行目を読込んで、実行中連携型タスク状態テーブル２３３および受付済み連携型タスクテーブル２３２に連携先の関連情報を書込む。
【０１９７】
なお、トリガー判定式２３４０２及びアクション２３４０４にある連携先と連携元を、連携先としたロボットを示す連携先ＩＤと、連携元となるロボットを示す連携元ＩＤで書き換える。
【０１９８】
続いて、連携型タスク管理プログラム２４１は、連携中のロボットが並行実行不可のほかのタスクを受け付けることを防ぐため、ステップ２４１０１６により、個別型タスク管理サーバの実行中タスク状態テーブル１３３および受付済みタスクテーブル１３２に、連携型タスクの関連情報を書込む。
【０１９９】
最後に、連携型タスク管理プログラム２４１は、ステップ２４１０７により、連携元および連携先のロボットのロボットＩＤ１３５０２を用いて、ロボット状態テーブル１３５における現在のタスクのタスク管理番号１３５０４を更新する。
【０２００】
図２１および図２５を用いて、ここまでに示したように、個別型タスク管理プログラム１４１がタスクを個別対応できないと判断した場合に、連携型タスク管理プログラム２４１が連携対応できるかどうか判断する。タスクに連携対応できる場合には、連携型タスクライブラリテーブル２３１を用いてタスクを実行する。このときタスクのアクションは、個別型タスクライブラリテーブル１３１に規定されたものから連携型タスクライブラリテーブル２３１に規定されたものへと切り替えられることとなる。このとき、ロボットの交代をユーザに認識させるために、連携元ロボットおよび連携先ロボットの少なくとも一方が実行する引継ぎのアクションが挿入されることとなる。
【０２０１】
すなわち、連携型タスク管理部（連携型タスク管理プログラム２４１）が、あるアクション（第１のアクション）の実行にあるロボット（第１のロボット）を割り当て第１のアクションに続く他のアクション（第２のアクション）の実行に他のロボット（第２のロボット）を割り当てる場合、第１のアクションと第２のアクションの間に、ロボットの交代をユーザに認識させるために、第１のロボットおよび第２のロボットの少なくとも一方が実行する引継ぎアクションを挿入している。タスクを構成するアクション間でロボットが交代するとき引継ぎアクションによってロボットの交代をユーザに認識させることができるので、ユーザにとって違和感のない自然な対人サービスを実現することができる。
【０２０２】
このとき、引継ぎアクションを簡単な動作とし、トリガーアクション情報に第２のアクションが他のアクションと並行して実行できることを設定してもよいが、あるいは、第２のアクションが他のアクションと並行して実行できないことを設定することにしてもよい。そうすると、複数のロボットを連携させる場合に第１のロボットから第２のロボットへの交替をユーザに認識させてから第２のロボットの行動を開始させるので、自然な連携を確実に達成することができる。
【０２０３】
連携型タスク実行プログラム２４２は連携型のタスクをアクション単位で段階的に進行させる連携型タスク実行処理について説明する。
【０２０４】
図２６は、連携型タスク実行処理のフローチャートである。ステップＳ２４２０１により、連携型タスク実行プログラム２４２は、実行中連携型タスク状態テーブル２３３を行ごとでスキャンし、以下の処理を繰り返す。
【０２０５】
ステップＳ２４２１０において、連携型タスク実行プログラム２４２は、当該タスクを実行しているロボットが実行しているタスクが並行実行化のかどうか判定する。当該ロボットが複数のタスクを並行実行している場合、連携型タスク実行プログラム２４２は、そのタスクにおいて次に実行すべきアクションと、当該ロボットが現在実行中の他の全てのタスクのアクションが並行実行可能かどうか判定する。
【０２０６】
並行実行ができない場合、連携型タスク実行プログラム２４２は、ステップＳ２４２０９に移行する。並行実行可能な場合、連携型タスク実行プログラム２４２は、ステップＳ２４２０２により、スキャンした行の現在のトリガー判定式２３３０２を読込み、このトリガー判定式２３３０２に含まれた関数の引数により、トリガー判定式の判定に関与するロボットを確認する。
【０２０７】
そして、連携型タスク実行プログラム２４２は、確認した関与ロボットを１つずつ依頼先とし、トリガー計算依頼メッセージＭ５を、通信インターフェース２５を介してトリガー判定プログラム１４４に送信する。なお、送信された各トリガー計算依頼メッセージＭ５の「トリガー計算式」の箇所に搭載されるのは、依頼先のロボットが関与する関数を表す文字列である。
【０２０８】
そして、連携型タスク実行プログラム２４２は、ステップＳ２４２０３により、送信した各トリガー計算依頼メッセージＭ５に対応する各トリガー計算結果メッセージＭ６を受信してメッセージ識別子Ｍ６０１を確認する。そして、連携型タスク実行プログラム２４２は、ステップＳ２４２０４により、ステップＳ２４２０４で得たすべてのトリガー計算結果メッセージＭ６の計算結果を用いて、現在のトリガー判定式２３３０２が満足されたかどうかを確認する。
【０２０９】
本トリガー判定式が満足されていない場合、連携型タスク実行プログラム２４２は、本トリガー判定式に対応するアクションを実行せずステップＳ２４２０９に移行する。一方、トリガー判定式が満足された場合、連携型タスク実行プログラム２４２は、本トリガー判定式に対応するアクションを実行するために、ステップＳ２４２０５に移行する。ステップＳ２４２０５では、連携型タスク実行プログラム２４２は、トリガー判定式に該当する行のアクション２３４０４の文字列から、本アクションに関与する連携ロボットを確認し、確認した関与ロボットを１つずつ依頼先として、現在のトリガー番号２３３０５を含めたアクション実行依頼メッセージＭ７を、アクション実行プログラム１４３に送信する。
【０２１０】
続いて、連携型タスク実行プログラム２４２は、ステップＳ２４２０６で、ステップＳ２４２０５で実行したアクションが該当タスクの最後のアクションであるかどうかを確認する。確認する方法の一つとして、本実施例では、トリガー番号２３３０５が最後の番号であるかどうかをチェックするという方法がある。実行したアクションが最後のアクションである場合、連携型タスク実行プログラム２４２は、ステップＳ２４２０７により、実行中タスク状態テーブル１４４および実行中連携型タスク状態テーブル２４４の現在の行を削除し、ステップＳ２４２０９に移行する。
【０２１１】
一方、実行したアクションが最後のアクションではない場合、連携型タスク実行プログラム２４２は、ステップＳ２４２０８に移行する。ステップＳ２４２０８では、連携型タスク実行プログラム２４２は、連携型トリガーアクション設定テーブル２３４を参照して、実行したアクションの次のアクションに対応する行の情報を用いて、実行中連携型タスク状態テーブル２４４および実行中タスク状態テーブル１４４の現在の行を更新する。最後に、連携型タスク実行プログラム２４２はステップＳ２４２０９に移行する。
【０２１２】
図２７は、個別型タスク管理サーバＳＴＳにある個別型タスク管理プログラム１４１、個別型タスク実行プログラム１４２、アクション実行プログラム１４３、およびトリガー判定プログラム１４４と、連携型タスク管理サーバＭＴＳにある連携型タスク管理プログラム２４１および連携型タスク実行プログラム２４２が互いにメッセージをやりとりする様子を説明するためのシーケンス図である。図２７には、典型的な例が示されている。
【０２１３】
まず、個別型タスク実行プログラム１４２がステップＳ１４２０３にしたがってトリガー判定依頼メッセージＭ３をトリガー判定プログラム１４４に送信する（ステップＴ１）。そして、トリガー判定プログラム１４４が、図２３に示されたフローチャートに従って判定を行い、トリガー判定結果メッセージＭ２を個別型タスク実行プログラム１４２に返信する（ステップＴ２）。この例では、判定結果メッセージのトリガー判定結果Ｍ４０２が「真」であるとする。
【０２１４】
個別型タスク実行プログラム１４２はステップＳ１４２０６にしたがってアクション実行依頼メッセージＭ７を生成してアクション実行プログラム１４３に送信する（ステップＴ３）。この例では、アクション実行依頼メッセージＭ７にあるアクションＭ７０２は別のタスクを実行するアクションであるとする。アクション実行プログラム１４３はタスク初期処理依頼メッセージＭ１を個別型タスク管理プログラム１４１に送信する（ステップＴ４）。
【０２１５】
そして個別型タスク管理プログラム１４１はメッセージＭ１を受信してタスク初期処理を実行する。
【０２１６】
この例では、個別型タスク管理プログラム１４１が、ステップＳ１４１１０により、タスクが連携対応可能であることを判断するものとする。個別型タスク管理プログラム１４１は、連携依頼メッセージＭ２を連携型タスク管理プログラム２４１に送信する（ステップＴ５）。続いて、連携型タスク管理プログラム２４１は、図２５に示されたように、実行中連携型タスク状態テーブル２３３にタスクの関連情報を記入する。また、連携型タスク実行プログラム２４２は実行中連携型タスク状態テーブル２３３をスキャンしてタスクの処理を開始し、ステップＳ２４２０２により、トリガー計算依頼メッセージＭ５をトリガー判定プログラム１４４に送信する（ステップＴ６）。
【０２１７】
続いて、トリガー判定プログラム１４４が、図２３に示されたフローチャートに従って判定を行い、トリガー計算結果メッセージＭ６を個別型タスク実行プログラム１４２に返信する（ステップＴ７）。この例で、連携型タスク実行プログラム２４２がステップＳ２４２０４により、判定結果メッセージのトリガー計算結果Ｍ６０２を用いてトリガー条件が満たされたと判断するものとする。そして、連携型タスク実行プログラム２４２は、アクション実行依頼メッセージＭ７をアクション実行プログラム１４３に送信する（ステップＴ８）。
【０２１８】
以上、説明したように、ロボットの行動を一連のアクションとして段階的に設定する手段を提供することで、ロボットに当時の環境、場面、要求に応じて適切に行動させるようになる。さらに、ロボットが人間従業員のように、周りの状況の変化に対応して行動の進め方をコントロールできるようになり、ロボットの行動がユーザに対して自然で友好的であるため、ユーザにサービスの状況を容易で正確に把握してもらえる。したがって。対人サービスの成功率と顧客体験が向上する。
【０２１９】
なお、本発明の実施形態について図面を参照して説明したが、本発明がその実施形態に限定されるものではない。例えば、個別型タスク管理サーバＳＴＳと連携型タスク管理サーバＭＴＳはその物理的な構成は特に限定されることはない。個別型タスク管理サーバＳＴＳと連携型タスク管理サーバＭＴＳが同一装置上に実装されていてもよい。また、個別型タスク管理サーバＳＴＳの有する機能が複数の装置に分散配置されていてもよい。また、連携型タスク管理サーバＭＴＳの有する機能が複数の装置に分散配置されていてもよい。
【０２２０】
また、本発明は、実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【０２２１】
Ｒ１、Ｒ２…ロボット、ＳＴＳ…個別型タスク管理サーバ、ＭＴＳ…連携型タスク管理サーバ、ＮＷ…ネットワーク、ＴＳＴ…タスク設定用端末、１１…ＣＰＵ、１２…バス、１３…記憶装置、１３１…タスクライブラリテーブル、１３２…受付済みタスクテーブル、１３３…実行中タスク状態テーブル、１３４…トリガーアクション設定テーブル、１３５…ロボット状態テーブル、１４…メモリ、１４１…個別型タスク管理プログラム、１４２…個別型タスク実行プログラム、１４３…アクション実行プログラム、１４４…トリガー判定プログラム、１４４…実行中タスク状態テーブル、１５…通信インターフェース、２１…ＣＰＵ、２２…バス、２３…記憶装置、２３１…連携型タスクライブラリテーブル、２３２…受付済み連携型タスクテーブル、２３３…実行中連携型タスク状態テーブル、２３４…連携型トリガーアクション設定テーブル、２４…メモリ、２４１…連携型タスク管理プログラム、２４２…連携型タスク実行プログラム、２５…通信インターフェース、３０１…ＣＰＵ、３０２…バス、３０３…記憶装置、３０４…メモリ、３０５…通信インターフェース、３０７…マイク、３０８…移動機構、３０９…スピーカ、３１０…カメラ、３１１…センサ
【図１】
2018118352.tif 000003
【図２】
2018118352.tif 000004
【図３】
2018118352.tif 000005
【図４】
2018118352.tif 000006
【図５】
2018118352.tif 000007
【図６】
2018118352.tif 000008
【図７】
2018118352.tif 000009
【図８】
2018118352.tif 000010
【図９】
2018118352.tif 000011
【図１０】
2018118352.tif 000012
【図１１】
2018118352.tif 000013
【図１２】
2018118352.tif 000014
【図１３】
2018118352.tif 000015
【図１４】
2018118352.tif 000016
【図１５】
2018118352.tif 000017
【図１６】
2018118352.tif 000018
【図１７】
2018118352.tif 000019
【図１８】
2018118352.tif 000020
【図１９】
2018118352.tif 000021
【図２０】
2018118352.tif 000022
【図２１】
2018118352.tif 000023
【図２２】
2018118352.tif 000024
【図２３】
2018118352.tif 000025
【図２４】
2018118352.tif 000026
【図２５】
2018118352.tif 000027
【図２６】
2018118352.tif 000028
【図２７】
2018118352.tif 000029