(57)【要約】【課題】本発明に係るＨＦＳＭ基盤によってロボットタスクの実行を制御するための装置およびその方法を提供する。【解決手段】本発明に係るロボットタスクの実行を制御するための装置は、ロボットタスクを多数の行為と前記多数の行為間の同時実行のための少なくとも１つの同時実行連結子によって階層化するように定義したＨＦＳＭと、前記多数の行為それぞれを多数の状態間の関係として定義したＦＳＭを格納する格納部、およびユーザからロボットタスク実行命令語が入力されれば、該当するロボットタスクに相応するＨＦＳＭをパッシングし、そのパッシングした結果によって前記ＨＦＳＭ内の同時実行演算子に連結したＦＳＭから生成された同期情報を利用して前記ＦＳＭを同時実行するタスク実行部を含む。【選択図】図１
2013235552.tif 000002
【特許請求の範囲】
【請求項１】
ロボットタスクを多数の行為と前記多数の行為間の同時実行のための少なくとも１つの同時実行連結子によって階層化するように定義したＨＦＳＭ（Ｈｉｅｒａｒｃｈｉｃａｌ  Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）と前記多数の行為それぞれを多数の状態間の関係として定義したＦＳＭ（ＦｉｎｉｔｅＳｔａｔｅ  Ｍａｃｈｉｎｅ）を格納する格納部、および
ユーザからロボットタスク実行命令語が入力されれば、該当するロボットタスクに相応するＨＦＳＭをパッシングし、そのパッシングした結果によって前記ＨＦＳＭ内の同時実行演算子に連結したＦＳＭから生成された同期情報を利用して前記ＦＳＭを同時実行するタスク実行部、
を含む、ロボットタスクの実行を制御するための装置。
【請求項２】
前記タスク実行部は、
前記ロボットタスクに相応するＨＦＳＭをパッシングし、そのパッシングした結果によって前記ＨＦＳＭ内に含まれた少なくとも１つの同時実行連結子ごとにＦＳＭそれぞれの同期構文から前記同期情報を生成することを特徴とする、請求項１に記載のロボットタスクの実行を制御するための装置。
【請求項３】
前記同期情報は、前記同期構文を区別するためのＩＤ（ｉｄｅｎｔｉｆｉｅｒ）および前記同期構文の数を含むことを特徴とする、請求項２に記載のロボットタスクの実行を制御するための装置。
【請求項４】
前記ＩＤが同じである同期構文を有する多数のＦＳＭが存在する場合、前記多数のＦＳＭのうちに親ノードと子ノードの関係にあるＦＳＭに対する前記同期構文の数は１つで処理することを特徴とする、請求項３に記載のロボットタスクの実行を制御するための装置。
【請求項５】
前記タスク実行部は、
前記ＨＦＳＭ内のルートノードである第１ＦＳＭの実行中に同時実行連結子が存在すれば、前記同時実行演算子を呼び出し、
前記同時実行演算子ごとに予め生成された前記同期情報を利用して少なくとも１つの第２ＦＳＭを同時実行することを特徴とする、請求項１乃至４の何れか一項に記載のロボットタスクの実行を制御するための装置。
【請求項６】
前記タスク実行部は、
前記同期情報を利用して少なくとも１つの第２ＦＳＭ内の同期構文を検索し、検索された同期構文を有する第２ＦＳＭを待機状態に設定し、
同じ同期ＩＤの同期構文を有する第２ＦＳＭがすべて待機状態になれば、前記待機状態を解除して同時実行することを特徴とする、請求項５に記載のロボットタスクの実行を制御するための装置。
【請求項７】
前記タスク実行部は、
待機状態に設定された第２ＦＳＭのうち、同じ同期ＩＤの同期構文を有する第２ＦＳＭの数が前記同期情報内の同期構文の数と一致すれば、前記第２ＦＳＭの待機状態を解除して同時実行することを特徴とする、請求項６に記載のロボットタスクの実行を制御するための装置。
【請求項８】
ユーザからロボットタスク実行命令語が入力されれば、該当するロボットタスクに相応するＨＦＳＭ（Ｈｉｅｒａｒｃｈｉｃａｌ  Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）をパッシングし、そのパッシングした結果によって前記ＨＦＳＭ内の同時実行演算子に連結したＦＳＭ（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）から同期情報を生成する段階、および
生成された前記同期情報を利用して前記ＨＦＳＭ内のＦＳＭを同時実行する段階、
を含み、
ここで、前記ＨＦＳＭは、ロボットタスクを多数の行為と前記多数の行為間の同時実行のための少なくとも１つの同時実行連結子によって階層化するように定義し、前記ＦＳＭは、前記多数の行為それぞれを多数の状態間の関係として定義することを特徴とする、ロボットタスクの実行を制御するための方法。
【請求項９】
前記生成する段階は、
前記ロボットタスクに相応するＨＦＳＭをパッシングし、そのパッシングした結果によって前記ＨＦＳＭに含まれた少なくとも１つの同時実行連結子ごとにＦＳＭそれぞれの同期構文から前記同期情報を生成することを特徴とする、請求項８に記載のロボットタスクの実行を制御するための方法。
【請求項１０】
前記同期情報は、前記同期構文を区別するためのＩＤ（ｉｄｅｎｔｉｆｉｅｒ）および前記同期構文の数を含むことを特徴とする、請求項９に記載のロボットタスクの実行を制御するための方法。
【請求項１１】
前記ＩＤが同じである同期構文を有する多数のＦＳＭが存在する場合、前記多数のＦＳＭのうちに親ノードと子ノードの関係にあるＦＳＭに対する前記同期構文の数は１つで処理することを特徴とする、請求項１０に記載のロボットタスクの実行を制御するための方法。
【請求項１２】
前記実行する段階は、
前記ＨＦＳＭ内のルートノードである第１ＦＳＭの実行中に同時実行連結子が存在すれば、前記同時実行演算子を呼び出し、
前記同時実行演算子ごとに予め生成された前記同期情報を利用して少なくとも１つの第２ＦＳＭを同時実行することを特徴とする、請求項８乃至１１の何れか一項に記載のロボットタスクの実行を制御するための方法。
【請求項１３】
前記実行する段階は、
前記同期情報を利用して少なくとも１つの第２ＦＳＭ内の同期構文を検索し、検索された同期構文を有する第２ＦＳＭを待機状態に設定し、
同じ同期ＩＤの同期構文を有する第２ＦＳＭがすべて待機状態になれば、前記待機状態を解除して同時実行することを特徴とする、請求項１２に記載のロボットタスクの実行を制御するための方法。
【請求項１４】
前記実行する段階は、
待機状態に設定された第２ＦＳＭのうち、同じ同期ＩＤの同期構文を有する第２ＦＳＭの数が前記同期情報内の同期構文の数と一致すれば、前記第２ＦＳＭの待機状態を解除して同時実行することを特徴とする、請求項１３に記載のロボットタスクの実行を制御するための方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットタスクの実行方法に関し、より詳しくは、ロボットタスクを多数の行為に階層化し、階層化された多数の行為間に同時実行連結子を追加し、その追加された同時実行連結子を利用して多数の行為間の実行を同期化できるようにする、ＨＦＳＭ基盤によってロボットタスクの実行を制御するための装置およびその方法に関する。
【背景技術】
【０００２】
一般的に、ロボットタスクを駆動する方法のうち、Ｃ／Ｃ＋＋、ｐｈｙｔｈｏｎのような汎用言語を利用する方法の他に、特定のタスクモデルを支援する別途の言語を利用する方法がある。
【０００３】
このような別途の方法のうちでは、有限状態機械（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ：ＦＳＭ）、階層型有限状態機械（Ｈｉｅｒａｒｃｈｉｃａｌ  Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ：ＨＦＳＭ）、階層型タスクネットワーク（Ｈｉｅｒａｒｃｈｉｃａｌ  Ｔａｓｋ  Ｎｅｔｗｏｒｋ：ＨＴＮ）、規則基盤システム（Ｒｕｌｅ−ｂａｓｅｄ  Ｓｙｓｔｅｍ）を利用する方法など極めて多様である。
【０００４】
このうち、ＨＦＳＭは、制御構造が簡単であり、ダイヤグラムで容易に表現されるため使いやすいという点があるが、このようなモデルが実際にロボットやＳ／Ｗ実現に適用されるためには、同時実行されるＦＳＭ間の実行同期化および実行周期設定などの機能が求められる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、このような従来技術の問題点を解決するためのものであって、本発明は、ロボットタスクを多数の行為に階層化し、階層化された多数の行為間に同時実行連結子を追加し、その追加された同時実行連結子を利用して多数の行為間の実行を同期化できるようにする、ＨＦＳＭ基盤によってロボットタスクの実行を制御するための装置およびその方法を提供することを目的とする。
【０００６】
しかし、発明の目的は、上述した事項に制限されることはなく、前記で言及されていない他の目的は、下記の記載から当業者によって明確に理解されることができるであろう。
【課題を解決するための手段】
【０００７】
前記目的を達成するために、本発明の一観点に係るロボットタスクの実行を制御するための装置は、ロボットタスクを多数の行為と前記多数の行為間の同時実行のための少なくとも１つの同時実行連結子によって階層化するように定義したＨＦＳＭ（Ｈｉｅｒａｒｃｈｉｃａｌ  Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）と前記多数の行為それぞれを多数の状態間の関係として定義したＦＳＭ（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）を格納する格納部、およびユーザからロボットタスク実行命令語が入力されれば、該当するロボットタスクに相応するＨＦＳＭをパッシングし、そのパッシングした結果によって前記ＨＦＳＭ内の同時実行演算子に連結したＦＳＭから生成された同期情報を利用して前記ＦＳＭを同時実行するタスク実行部を含むことができる。
【０００８】
好ましくは、前記タスク実行部は、前記ロボットタスクに相応するＨＦＳＭをパッシングし、そのパッシングした結果によって前記ＨＦＳＭ内に含まれた少なくとも１つの同時実行連結子ごとにＦＳＭそれぞれの同期構文から前記同期情報を生成することを特徴とする。
【０００９】
好ましくは、前記同期情報は、前記同期構文を区別するためのＩＤ（ｉｄｅｎｔｉｆｉｅｒ）および前記同期構文の数を含むことを特徴とする。
【００１０】
好ましくは、前記ＩＤが同じである同期構文を有する多数のＦＳＭが存在する場合、前記多数のＦＳＭのうちに親ノードと子ノードの関係にあるＦＳＭに対する前記同期構文の数は１つで処理することを特徴とする。
【００１１】
好ましくは、前記タスク実行部は、前記ＨＦＳＭ内のルートノードである第１ＦＳＭの実行中に同時実行連結子が存在すれば、前記同時実行演算子を呼び出し、前記同時実行演算子ごとに予め生成された前記同期情報を利用して少なくとも１つの第２ＦＳＭを同時実行することを特徴とする。
【００１２】
好ましくは、前記タスク実行部は、前記同期情報を利用して少なくとも１つの第２ＦＳＭ内の同期構文を検索し、検索された同期構文を有する第２ＦＳＭを待機状態に設定し、同じ同期ＩＤの同期構文を有する第２ＦＳＭがすべて待機状態になれば、前記待機状態を解除して同時実行することを特徴とする。
【００１３】
好ましくは、前記タスク実行部は、待機状態に設定された第２ＦＳＭのうち、同じ同期ＩＤの同期構文を有する第２ＦＳＭの数が前記同期情報内の同期構文の数と一致すれば、前記第２ＦＳＭの待機状態を解除して同時実行することを特徴とする。
【００１４】
本発明の他の一観点に係るロボットタスクの実行を制御するための方法は、ユーザからロボットタスク実行命令語が入力されれば、該当するロボットタスクに相応するＨＦＳＭ（Ｈｉｅｒａｒｃｈｉｃａｌ  Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）をパッシングし、そのパッシングした結果によって前記ＨＦＳＭ内の同時実行演算子に連結したＦＳＭ（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）から同期情報を生成する段階、および生成された前記同期情報を利用して前記ＨＦＳＭ内のＦＳＭを同時実行する段階を含み、ここで、前記ＨＦＳＭは、ロボットタスクを多数の行為と前記多数の行為間の同時実行のための少なくとも１つの同時実行連結子によって階層化するように定義し、前記ＦＳＭは、前記多数の行為それぞれを多数の状態間の関係として定義することを特徴とする。
【００１５】
好ましくは、前記生成する段階は、前記ロボットタスクに相応するＨＦＳＭをパッシングし、そのパッシングした結果によって前記ＨＦＳＭ内に含まれた少なくとも１つの同時実行連結子ごとにＦＳＭそれぞれの同期構文から前記同期情報を生成することを特徴とする。
【００１６】
好ましくは、前記同期情報は、前記同期構文を区別するためのＩＤ（ｉｄｅｎｔｉｆｉｅｒ）および前記同期構文の数を含むことを特徴とする。
【００１７】
好ましくは、前記ＩＤが同じである同期構文を有する多数のＦＳＭが存在する場合、前記多数のＦＳＭのうちに親ノードと子ノードの関係にあるＦＳＭに対する前記同期構文の数は１つで処理することを特徴とする。
【００１８】
好ましくは、前記実行する段階は、前記ＨＦＳＭ内のルートノードである第１ＦＳＭの実行中に同時実行連結子が存在すれば、前記同時実行演算子を呼び出し、前記同時実行演算子ごとに予め生成された前記同期情報を利用して少なくとも１つの第２ＦＳＭを同時実行することを特徴とする。
【００１９】
好ましくは、前記実行する段階は、前記同期情報を利用して少なくとも１つの第２ＦＳＭ内の同期構文を検索し、検索された同期構文を有する第２ＦＳＭを待機状態に設定し、同じ同期ＩＤの同期構文を有する第２ＦＳＭがすべて待機状態になれば、前記待機状態を解除して同時実行することを特徴とする。
【００２０】
好ましくは、前記実行する段階は、待機状態に設定された第２ＦＳＭのうち、同じ同期ＩＤの同期構文を有する第２ＦＳＭの数が前記同期情報内の同期構文の数と一致すれば、前記第２ＦＳＭの待機状態を解除して同時実行することを特徴とする。
【発明の効果】
【００２１】
これにより、本発明は、ロボットタスクを多数の行為に階層化し、階層化された多数の行為間に同時実行連結子を追加し、その追加された同時実行連結子を利用して多数の行為間の実行を同期化することにより、簡単な構造で同時実行を支援できるという効果がある。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態に係るロボットタスクの実行を制御するための装置を示す図である。
【図２】本発明の一実施形態に係るＨＦＳＭを示す図である。
【図３】本発明の一実施形態に係るＦＳＭを示す第１図である。
【図４】本発明の一実施形態に係る同時実行連結子を示す図である。
【図５】本発明の一実施形態に係るＦＳＭを示す第２図である。
【図６】本発明の一実施形態に係るＦＳＭを示す第３図である。
【図７】本発明の一実施形態に係るロボットタスクの実行を制御するための方法を示す図である。
【図８】本発明の一実施形態に係る同期情報を生成する原理を説明するための図である。
【図９】図７に示す同時実行過程を具体的に説明するための図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態に係るＨＦＳＭ基盤によってロボットタスクの実行を制御するための装置およびその方法について、添付の図１〜図８を参照しながら説明する。本発明に係る動作および作用を理解するのに必要な部分を中心に詳しく説明する。明細書全体にわたって各図面で提示された同じ参照符号は、同じ構成要素を示す。また、本発明を説明するにおいて、関連する公知機能あるいは構成に対する具体的な説明が本発明の要旨を不必要に不明瞭にし得ると判断される場合、それについての詳細な説明は省略する。
【００２４】
特に、本発明では、ロボットタスクを多数の行為に階層化し、階層化された多数の行為間に同時実行連結子を追加し、その追加された同時実行連結子を利用して多数の行為間の実行を同期化できるようにする新しい方案を提案する。
【００２５】
図１は、本発明の一実施形態に係るロボットタスクの実行を制御するための装置を示す図である。
【００２６】
図１に示すように、本発明に係るＨＦＳＭ基盤によってロボットタスクの実行を制御するための装置は、格納部１１０、タスク実行部１２０、および駆動部１３０などを含んで構成されることができる。
【００２７】
格納部１１０は、１つのロボットタスク（ｒｏｂｏｔ  ｔａｓｋ）、すなわち、ロボット応用プログラムおよびロボットタスクを構成する多数の行為（ｂｅｈａｖｉｏｒ）を格納することができる。格納部１１０は、物理的に結合した１つの装置であって、ロボットタスクおよび行為をすべて格納して管理することができ、物理的に分離した多数の装置でロボットタスクおよび行為をそれぞれ格納して管理することができる。
【００２８】
１）格納部１１０は、少なくとも１つのロボットタスク、すなわち、ロボット応用プログラムを格納することができる。ここで、ロボットタスクは、多数の行為を含み、多数の行為を階層化するように定義したＨＦＳＭ（Ｈｉｅｒａｒｃｈｉｃａｌ  Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）で表現されることができる。
【００２９】
図２は、本発明の一実施形態に係るＨＦＳＭを示す図である。
【００３０】
図２に示すように、本発明に係るＨＦＳＭは、行為それぞれを定義した多数のＦＳＭとＦＳＭ間の同時実行を支援するための同時実行連結子が追加されることができる。
【００３１】
例えば、ＨＦＳＭは３つの行為を含み、第１行為Ｂｈｖ＿１が最上位階層またはルートノード（ｒｏｏｔ  ｎｏｄｅ）であり、第２行為Ｂｈｖ＿２と第３行為Ｂｈｖ＿３が最下位階層またはリーフノード（ｌｅａｆ  ｎｏｄｅ）で実現される。このとき、第１行為Ｂｈｖ＿１と第２行為Ｂｈｖ＿２と第３行為Ｂｈｖ＿３の間の中間階層に同時実行連結子Ｃｏｎ＿１が追加される。
【００３２】
同時実行連結子Ｃｏｎ＿１は、第１行為Ｂｈｖ＿１の実行中に第１行為Ｂｈｖ＿１の状態（ｓｔａｔｅ）Ｓ２から呼び出され、第２行為Ｂｈｖ＿２と第３行為Ｂｈｖ＿３を同時実行させるようになる。
【００３３】
タスク実行部１２０は、ユーザから入力されたユーザ命令、例えば、ロボットタスク実行命令語に応答し、タスク格納部１１０に予め格納された多数のロボットタスクのうちから１つの該当するロボットタスクを抽出し、その抽出されたロボットタスクを実行することができる。
【００３４】
２）格納部１１０は、ロボットタスクを構成する多数の行為を格納することができる。ここで、行為は、多数の状態（ｓｔａｔｅ）を含み、多数の状態との関係、例えば、実行周期や同時実行などを定義したＦＳＭ（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）で表現されることができる。
【００３５】
図３は、本発明の一実施形態に係るＦＳＭを示す第１図である。
【００３６】
図３に示すように、本発明に係るＦＳＭは、多数の状態Ｓ１、Ｓ２、Ｓ３との関係を定義することができ、ここでは図２の第１行為Ｂｈｖ＿１を定義したＦＳＭを示している。
【００３７】
例えば、ライン６に１つの条件構文があり、その条件構文は「ＩＦ（ｃｏｎｄ＿１）ＧＯＴＯｓ２」のとおりである。ここで、「ＧＯＴＯ」は、他の状態に遷移するときに用いるキーワードである。すなわち、タスク実行部１２０は、状態Ｓ１を実行し、状態Ｓ１でｃｏｎｄ＿１が満たされれば、状態をＳ１からＳ２に遷移するようになる。
【００３８】
ライン１５−１６に２つの条件構文があり、そのうち１５ラインの条件構文は「ＩＦ（ｃｏｎｄ＿２）ＥＸＰＡＮＤＴＯｃｏｎ＿１〜＞ｓ３；」であり、１６ラインの条件構文は「ＩＦ（ｃｏｎｄ＿３）ＧＯＴＯｓ３」のとおりである。ここで、「ＥＸＰＡＮＤＴＯ」は、下位ノードを呼び出すときに用いるキーワードであり、「〜＞」は、ＥＸＰＡＮＤＴＯの対象が実行完了すれば他の状態に遷移するときに用いる記号である。すなわち、１５ラインの条件構文により、タスク実行部１２０は状態Ｓ２を実行し、状態Ｓ２でｃｏｎｄ＿２が満たされれば同時実行連結子ｃｏｎ＿１を実行し、同時実行連結子ｃｏｎ＿１の実行が完了すれば状態をＳ２からＳ３に遷移するようになる。または、１６ラインの条件構文により、タスク実行部１２０は状態Ｓ２を実行し、状態Ｓ２でｃｏｎｄ＿３が満たされれば状態をＳ２からＳ３に遷移するようになる。
【００３９】
第１行為Ｂｈｖ＿１は、状態がＳ３になれば実行が完了したと判断して終了するようになる。
【００４０】
図４は、本発明の一実施形態に係る同時実行連結子を示す図である。
【００４１】
図４に示すように、本発明に係る多数の状態Ｓ１、Ｓ２、Ｓ３との関係を定義することができ、ここでは図２の同時実行連結子ｃｏｎ＿１を示している。
【００４２】
同時実行連結子ｃｏｎ＿１は、同時実行ＦＳＭの数によって２つのＲＵＮブロックを有するようになり、各ＲＵＮブロックは下位ＦＳＭである第２行為Ｂｈｖ＿２と第３行為Ｂｈｖ＿３に連結する。
【００４３】
このとき、同時実行連結子ｃｏｎ＿１は、第２行為Ｂｈｖ＿２を実行周期１０ｍｓで実行し、第３行為Ｂｈｖ＿３を実行周期１００ｍｓで実行するようになる。また、同時実行連結子ｃｏｎ＿１は、第２行為Ｂｈｖ＿２と第３行為Ｂｈｖ＿３の実行がすべ終了することによって終了するようになる。
【００４４】
図５は、本発明の一実施形態に係るＦＳＭを示す第２図である。図６は、本発明の一実施形態に係るＦＳＭを示す第３図である。
【００４５】
図５〜図６を参照すれば、本発明に係るＦＳＭは、多数の状態Ｓ１、Ｓ２、Ｓ３との関係を定義し、図２の第２行為Ｂｈｖ＿２と第３行為Ｂｈｖ＿３を定義したＦＳＭを示している。
【００４６】
図５のライン５に同期構文「ＳＹＮＣＨ（１００）」が存在し、ここで、１００はＳＹＮＣＨＩＤである。すなわち、第２行為Ｂｈｖ＿２は、状態Ｓ１で同期構文に出会えば待機状態になることができる。
【００４７】
図６のライン１４に同期関数「ＳＹＮＣＨ（１００）」が存在し、ここで、１００はＳＹＮＣＨＩＤである。すなわち、第２行為Ｂｈｖ＿３は、状態Ｓ２で同期構文に出会えば待機状態になることができる。
【００４８】
タスク実行部１２０は、第２行為Ｂｈｖ＿２と第３行為Ｂｈｖ＿３がすべて待機状態になれば、同時に待機状態が解除されながら、再び実行を続けることができる。すなわち、タスク実行部１２０は、図５のライン６にあるロボットの音声を出力する「ＶＯＩＣＥ（）」構文と図６のライン１５にあるロボットをこれから移動させる「Ｆ＿ＭＯＶＥ（）」構文を同時に実行させることができる。
【００４９】
すなわち、タスク実行部１２０は、同時に実行するＦＳＭを実行しながらＳＹＮＣＨ構文に出会えば、該当するＦＳＭを待機状態に維持した後、同じＩＤを有する他のＦＳＭのＳＹＮＣＨ構文がすべて待機状態になる場合、その待機状態を解除させて実行するようになる。
【００５０】
駆動部１３０は、タスク実行部１２０のロボットタスクの実行によってロボットを駆動することができる。例えば、駆動部１３０は、前後または左右に移動したり音声を出力したりすることができる。
【００５１】
図７は、本発明の一実施形態に係るロボットタスクの実行を制御するための方法を示す図である。
【００５２】
図７に示すように、本発明に係るロボットタスクの実行を制御するための装置（以下、制御装置とする）は、ユーザから入力されたロボットタスク実行命令語が入力されれば、該当するロボットタスクに相応する予め設定されたＨＦＳＭをパッシングすることができる（Ｓ７１０）。
【００５３】
次に、制御装置は、パッシングした結果によってＨＦＳＭ内に含まれた少なくとも１つの同時実行連結子ごとに同期情報を生成することができる（Ｓ７２０）。
【００５４】
図８は、本発明の一実施形態に係る同期情報を生成する原理を説明するための図である。
【００５５】
図８に示すように、２つの同時実行演算子と６つのＦＳＭが階層化されるように定義された１つのＨＦＳＭ、またはロボットタスクの抽象的な例を示している。
【００５６】
タスク実行部１２０は、タスクを実行する前にＨＦＳＭをパッシングし、そのパッシングした結果によって各ＦＳＭに含まれた同期構文を把握して同期情報ＳＹＮＣＨ＿ｉｎｆｏを生成することができる。このとき、同期情報は、同時実行連結子、すなわち、Ｃｏｎ＿１、Ｃｏｎ＿２ごとに生成することができ、同時実行連結子と連結した経路に含まれたＦＳＭの同期情報、すなわち、同期構文のＩＤ（ｉｄｅｎｔｉｆｉｅｒ）と数を示すことができる。このとき、１つの同時実行連結子は、必ず１つの同期情報を有するようになる。
【００５７】
例えば、同時実行演算子Ｃｏｎ＿１に連結した左側経路に１つのＳＹＮＣＨ（１００）と１つのＳＹＮＣＨ（２００）が存在し、右側経路に１つのＳＹＮＣＨ（２００）が存在し、これを基盤として同期情報ＳＹＮＣＨ＿ｉｎｆｏを生成するようになる。また、同時実行演算子Ｃｏｎ＿２に連結した左側経路には１つのＳＹＮＣＨ（１００）が存在し、右側経路には１つのＳＹＮＣＨ（１００）と１つのＳＹＮＣＨ（２００）が存在し、これを基盤として同期情報ＳＹＮＣＨ＿ｉｎｆｏを生成するようになる。
【００５８】
具体的に説明すれば、同時実行演算子Ｃｏｎ＿１に連結した左側経路上に行為Ｂｈｖ＿１のＳＹＮＣＨ（１００）、行為Ｂｈｖ＿２のＳＹＮＣＨ（１００）、行為Ｂｈｖ＿３のＳＹＮＣＨ（１００）が存在するが、行為Ｂｈｖ＿１と行為Ｂｈｖ＿２、Ｂｈｖ＿３は親ノードと子ノードの関係であるため、行為Ｂｈｖ＿１のＳＹＮＣＨ（１００）のみを考慮するようになる。
【００５９】
また、同時実行演算子Ｃｏｎ＿１に連結した左側経路上に行為Ｂｈｖ＿４のＳＹＮＣＨ（２００）と右側経路上に行為Ｂｈｖ＿２のＳＹＮＣＨ（２００）が存在するが、行為Ｂｈｖ＿２とＢｈｖ＿４は親ノードと子ノードの関係ではないため、すべて考慮するようになる。
【００６０】
次に、制御装置は、ＨＦＳＭ内のルートノードである第１ＦＳＭを実行することができる（Ｓ７３０）。
【００６１】
次に、制御装置は、第１ＦＳＭの実行中に、ＨＦＳＭ内に予め設定された同時実行連結子が存在するか否かを確認することができる（Ｓ７４０）。すなわち、制御装置は、同時実行連結子が存在すれば同時実行連結子を呼び出し（Ｓ７５０）、呼び出しされた同時実行連結子から同時実行する少なくとも１つの第２ＦＳＭを確認することができる（Ｓ７６０）。
【００６２】
次に、制御装置は、同期情報を基盤として第２ＦＳＭを同時実行ことができる（Ｓ７７０）。すなわち、制御装置は、少なくとも１つの第２ＦＳＭ内の同期構文を検索し、検索された同期構文を有する第２ＦＳＭを待機状態に設定し、同じ同期ＩＤの同期構文を有する第２ＦＳＭがすべて待機状態になれば、待機状態を解除して同時実行するようになる。
【００６３】
図９は、図７に示す同時実行過程を具体的に説明するための図である。
【００６４】
図９に示すように、本発明に係るロボットタスクの実行を制御するための装置（以下、制御装置とする）は、少なくとも１つの第２ＦＳＭ内の状態によって動作構文または動作ブロック、例えば、ＥＮＴＲＹ（）、ＳＴＡＹ（）、ＥＸＩＴ（）、ＴＲＡＮＳＩＴＩＯＮ（）などを実行し（Ｓ７７１）、その動作ブロックの実行中に動作ブロック内に同期構文を検索することができる（Ｓ７７２）。
【００６５】
次に、制御装置は、検索された同期構文を有する第２ＦＳＭを待機状態に設定し（Ｓ７７３）、その設定した結果によって同時実行演算子ごとに同時実行演算子に連結した下位ノードのＦＳＭのうちで待機状態に設定されたＦＳＭの待機情報、すなわち、同期ＩＤ、待機状態の数などを示すウェイティングテーブルを生成または更新することができる（Ｓ７７４）。
【００６６】
次に、制御装置は、同期情報とウェイティングテーブルを比較し（Ｓ７７５）、その比較した結果によって同期情報の同期構文の数とウェイティングテーブルの待機状態の数が一致する同期ＩＤがあれば、該当する同期ＩＤを有する第２ＦＳＭをすべて待機状態を解除して同時実行することができる（Ｓ７７６）。
【００６７】
この反面、制御装置は、同期情報の同期構文の数とウェイティングテーブルの待機状態の数が一致する同期ＩＤがなければ、子ノードに移動して同期構文検索を繰り返すことができる（Ｓ７７７）。
【００６８】
一方、上述した本発明の実施形態は、コンピュータで実行することができるプログラムで作成可能であり、コンピュータで読み取ることができる記録媒体を利用して前記プログラムを動作させる汎用デジタルコンピュータで実現することができる。前記コンピュータで読み取ることができる記録媒体は、マグネチック格納媒体（例えば、ＲＯＭ、フロッピー（登録商標）、ハードディスクなど）、光学的読み取り媒体（例えば、ＣＤ−ＲＯＭ、ＤＶＤなど）のような格納媒体を含む。
【００６９】
上述した実施形態は一例にすぎず、本発明が属する技術分野において通常の知識を有する者であれば、本発明の本質的な特性から逸脱しない範囲で多様な修正および変形が可能であろう。したがって、本発明に開示された実施形態は、本発明の技術思想を限定するためではなく説明するためのものであり、このような実施形態によって本発明の技術思想の範囲が限定されることはない。本発明の保護範囲は添付の特許請求の範囲によって解釈されなければならず、それと同等な範囲内に存在するすべての技術思想は、本発明の権利範囲に含まれるものと解釈されなければならないであろう。
【符号の説明】
【００７０】
１１０  ・・・格納部
１２０  ・・・タスク実行部
１３０  ・・・駆動部
【図１】
2013235552.tif 000003
【図２】
2013235552.tif 000004
【図３】
2013235552.tif 000005
【図４】
2013235552.tif 000006
【図５】
2013235552.tif 000007
【図６】
2013235552.tif 000008
【図７】
2013235552.tif 000009
【図８】
2013235552.tif 000010
【図９】
2013235552.tif 000011