(57)【要約】  本発明は、自律型システムによってタスク管理のためのタスク計画を可能にするタスク管理方法及びそのシステムに関するものであり、特に、割り当てられたタスクの完了及び／又はタスク完了の可能性を高めるために、障害から復旧（リカバリー）することでタスク管理することを可能にするものであるが、これに限定されるものではない。本システムは、タスクを実行するために定義されたタスク目標に基づいて実行計画を生成し、障害が発生した場合に複数のタスクの継続的な管理を可能にする。
2022500722.tif 000002
【特許請求の範囲】
【請求項１】
タスク目標を有するタスクを実行するためのタスク管理方法であって、以下の工程を含むタスク管理方法。
タスクを実行するための１つ以上のアクションを有するアクションのセットを定義するためのタスク情報を受け取ること、
前記定義されたアクションのセットに基づいて算出された時間を決定すること、
前記算出された実行時間が実際の実行時間を超過するかどうかを判断することで、タスク目標が達成されるか否かを判断すること、
前記タスク目標が達成されなかった場合に、前記タスク目標に関連付けられている１つ以上の復旧応答を取得すること、
前記タスクを管理するために前記１つ以上の復旧応答を反映した更新されたアクションのセットを得るため、前記１つ以上の復旧応答に基づいて実行計画を生成すること。
【請求項２】
前記タスク情報は、一連のイベントの特性から構成される請求項１記載のタスク管理方法。
【請求項３】
さらに、障害が発生した場合、前記一連のイベントの継続的な実行のために前記生成された実行計画を実行することを含む請求項１又は２に記載のタスク管理方法。
【請求項４】
さらに、前記１つ以上の復旧応答を取得することは、障害に対する動的な反応の観察に基づいて専門知識を開発することを含む請求項１記載のタスク管理方法。
【請求項５】
さらに、障害を管理するための前記復旧応答を導出するために、前記タスク目標に基づいて複数の復旧応答をランク付けすることを含む請求項４記載のタスク管理方法。
【請求項６】
前記復旧応答は、アクションの代替セットの実行、以前の非障害状態への復帰、タスクの再実行のうち１つ以上から構成される請求項１から５の何れか１項に記載のタスク管理方法。
【請求項７】
前記タスク目標は、ユーザから以前に得た情報又は過去のイベントを確認するように構成される請求項１記載のタスク管理システム。
【請求項８】
さらに、次式に基づく共分散関数を計算することにより、局在性の尤度の指標を決定するように構成される請求項１記載のタスク管理システム。
pf = 粒子フィルタ（ロボット，センサ，ｑ，Ｌ，ｎｐ) 
ｑ＝粒子に加えられる拡散ノイズの共分散、Ｌ＝センサモデルの確率の共分散、及び、ｎｐ＝粒子の数。
【請求項９】
前記タスク情報は、さらに複数のタスクの特性を含む請求項１から８の何れか１項に記載のタスク管理システム。
【請求項１０】
前記複数のタスクは、ネスト化されている又はカスケード化されている請求項９記載のタスク管理システム。
【請求項１１】
タスク目標を有するタスクを実行するためのタスク管理システムであって、
制御モジュールと、
メモリモジュールと、
タスクマネージャと、を有し
前記制御モジュールと前記メモリモジュールと前記タスクマネージャとが通信手段を介して相互接続され、
前記制御モジュール及び前記タスクマネージャは、
タスクを実行するための１つ以上のアクションを有するアクションのセットを定義するタスク情報を受信し、
前記定義されたアクションのセットに基づいて算出された時間を決定し、
前記算出された実行時間が実際の実行時間を超過するか否かを判断することで前記タスク目標が達成されたか否かを判断するように動作し、
前記制御モジュール及び前記メモリモジュールは、
前記タスク目標が達成されなかった場合、前記タスク目標に関連付けられている１つ以上の復帰応答を取得するように動作し、
前記制御モジュール及び前記タスクマネージャは、
前記タスクを管理するために１つ以上の復帰応答を反映した更新されたアクションのセットを取得するため、前記１つ以上の復帰応答に基づいて実行計画を生成するように動作するタスク管理システム。
【請求項１２】
前記タスク情報は、一連のイベントの特性から構成される請求項１１記載のタスク管理システム。
【請求項１３】
前記タスクマネージャは、障害が発生した場合に、前記一連のイベントを継続的な実行のために前記生成された実行計画を実行するようにした請求項１１記載のタスク管理システム。
【請求項１４】
前記制御モジュールは、障害に対する動的な応答の観察に基づいて専門知識を適用することにより適切な復旧応答を取得するようにした請求項１１記載のタスク管理システム。
【請求項１５】
前記制御モジュールは、前記適切な復旧応答を導出するため、前記タスク目標に基づいて複数の復旧応答をランク付けするようにした請求項１４記載のタスク管理システム。
【請求項１６】
前記制御モジュールは、前記タスク目標が達成されたかどうかを判断するため、ユーザから以前に得た情報又は過去のイベントを確認するようにした請求項１４又は１５に記載のタスク管理システム。
【請求項１７】
前記メモリモジュールは、アクションの代替セットの実行、以前の非障害状態への復帰、タスクの再実行のうちの１つ以上からなる前記取得した復旧応答を前記制御モジュールに送信するようにした請求項１１記載のタスク管理システム。
【請求項１８】
前記システムは、さらに次式に基づく共分散関数を計算することにより、該システムの局在性の尤度の指標を決定するようにした請求項１１記載のタスク管理システム。
pf = 粒子フィルタ（ロボット，センサ，ｑ，Ｌ，ｎｐ) 
ｑ＝粒子に加えられる拡散ノイズの共分散、Ｌ＝センサモデルの確率についての共分散、及び、ｎｐ＝粒子の数。
【請求項１９】
前記タスク情報は、さらに複数のタスクの特性を含む請求項１１から１８の何れか１項に記載のタスク管理システム。
【請求項２０】
プログラムがコンピュータによって実行されるとき、請求項１から１０に記載の方法を前記コンピュータに実行させる命令から成るコンピュータプログラム製品。
【請求項２１】
請求項２０記載のコンピュータプログラム製品が記憶されたコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タスク管理方法及びそのシステムに関し、特に、タスクを完了するため又はタスク完了の可能性を向上するため、障害が発生した際の復旧(リカバリー）を可能にするタスク管理方法及びそのシステムに関するものであるが、これに限定されるものではない。
【背景技術】
【０００２】
本発明の背景に関する以下の議論は、本発明の理解を容易にすることを意図するものである。しかしながら、ここでの議論は、言及された資料のいずれかが、出願の優先日において公開、公知、又は、一般的知見の一部であるということを認容又は承認するものではないことを理解すべきである。
【０００３】
限られた範囲の能力を有する従来の機器と異なり、自律型システムは、継続的な人間の介入なしに、構造化されていない環境下で、より要求の厳しい、より複雑なタスクを実行することが可能である。自律型システムは、環境を感知して適応することができるため、人の介入なしに長時間作業を行うことが可能である。これは、コスト削減、効率性、生産性の向上へとつながるものである。
【０００４】
自律型システムは、一般的に統制のとれた状況下で動作する。タスクを遂行する際、自律型ロボットは、様々な不測の事態に遭遇し、タスクを完全に成功させることができないことがある。これは主に、ロボットが動作する動的な環境を正確に特性化することができず、ロボットがその環境で移動する際にセンサやアクチュエータに障害が発生することに起因するものである。さらに、障害が発生した場合、ロボットは迅速かつ効率的に復旧することができず、どうしても中断が発生してしまう。
【０００５】
従来のシステムでは、障害時の対応として障害理由の解析を実行しますが、障害理由を特定して復旧計画を立てるための知識が必要である。しかしながら、自律型ロボットがタスクの実行に協力してもしなくてもよい他のエージェントの活動に、自律型ロボットがどのように対処するかは殆ど知られておらず、動的な環境に対応するために障害理由の解析を拡張することは難しいかもしれない。さらに、このようなシステムでは、一般的に障害を検出して障害の原因を診断したり、複雑なソフトウェア分析及び推論を必要とする障害コンテキストデータを収集したりするため、ロボットシステムの状態を常時監視する必要がある。
【０００６】
したがって、本発明は、前述の欠点の少なくとも一部を克服しようとするものである。特に、割り当てられたタスクを完了するため及び／又はタスク完了の可能性を高めるため、障害が発生した場合、迅速かつ効率的な復旧を可能にするタスク管理方法及びシステムを提供するものである。
【発明の概要】
【０００７】
なお、本明細書において、特に断りのない限り、「構成する（comprising）」、「構成する（consisting of）」等の用語は、非網羅的なものとして解釈され、「含む（including）が、これに限定されない」という意味である。
【０００８】
本発明の第一の実施形態によれば、割り当てられたタスクを自律的に管理するためのタスク目標を有するタスクを実行するタスク管理方法を提供する。前記方法は、タスクを実行するための１つ以上のアクションを有するアクションのセットを定義するためのタスク情報を受け取ること、前記定義されたアクションのセットに基づいて算出された時間を決定すること、前記算出された実行時間が実際の実行時間を超過するかどうかを判断することで、タスク目標が達成されるか否かを判断すること、前記タスク目標が達成されなかった場合に、前記タスク目標に関連付けられている１つ以上の復旧応答を取得すること、前記タスクを管理するために前記１つ以上の復旧応答を反映した更新されたアクションのセットを得るため、前記１つ以上の復旧応答に基づいて実行計画を生成すること、から構成される。
【０００９】
好ましくは、前記タスク情報が一連のイベントの特性を含むようにするとよい。前記アクションのセットは、前記タスクを実行するために選択された一連のイベントに関連付けられている。
【００１０】
好ましくは、前記方法が障害発生時に前記一連のイベントを継続的に実行するために前記生成された実行計画を実行するようにするとよい。
【００１１】
与えられた状況に応じて決定される選択基準に基づいて、前記タスクを実行するために、復旧応答に関連付けられた命令の１つ以上のセットが取得されて実行される。
【００１２】
好ましくは、前記方法がさらに障害時における動的な反応の観察に基づいて専門知識を開発するようにするとよい。
【００１３】
好ましくは、前記方法がさらに前記障害を管理するための前記復旧応答を導出するために、前記タスク目標に基づいて複数の復旧応答をランク付けするようにするとよい。
【００１４】
好ましくは、前記復旧応答が代替モードの実行、以前の非障害状態への復帰、タスクの再実行のうち１つ以上からなるようにするとよい。
【００１５】
好ましくは、前記タスク目標がユーザから以前に得た情報又はシーケンス内の過去のイベントを確認することから構成するようにするとよい。
【００１６】
好ましくは、前記方法がさらに次式に基づく共分散関数を計算することにより、局在性の尤度の指標を決定するようにするとよい。
pf = 粒子フィルタ（ロボット，センサ，ｑ，Ｌ，ｎｐ) 
ここで、ｑ＝粒子に加えられる拡散ノイズの共分散、Ｌ＝センサモデルの確率の共分散、及び、ｎｐ＝粒子の数。
【００１７】
好ましくは、前記タスク情報がさらに複数のタスクの特性を含むようにするとよく、実行計画を実行することで複数のタスクを実行することが可能となる。前記複数のタスクは、ネスト化されていても、又は、カスケード化されていてもよい。
【００１８】
本発明の第二の実施形態によれば、自律的に割り当てられたタスクを管理するためのタスク目標を有するタスクを実行するタスク管理システムを提供する。このシステムは、制御モジュールと、メモリモジュールと、タスクマネージャと、から構成される。夫々のモジュールは、互いに相互接続可能であり、互いに通信するために動作可能である。好ましくは、タスクを実行するためのハードウェアモジュールが設けられている。
【００１９】
i）前記制御モジュール及び前記タスクマネージャは、以下を実行するために動作可能である。
タスクを実行するための１つ以上のアクションを有するアクションのセットを定義するタスク情報を受信する。
前記定義されたアクションのセットに基づいて算出された時間を決定する。
前記算出された実行時間が実際の実行時間を超過するか否かを判断することで前記タスク目標が達成されたか否かを判断する。
ii）前記制御モジュール及び前記メモリモジュールは、以下を実行するために動作可能である。
前記タスク目標が達成されなかった場合、前記タスク目標に関連付けられている１つ以上の復帰応答を取得する。
iii）前記制御モジュール及び前記タスクマネージャは、以下を実行するために動作可能である。
前記タスクを管理するために前記１つ以上の復帰応答を反映した更新されたアクションのセットを取得するため、前記１つ以上の復帰応答に基づいて実行計画を生成する。
【００２０】
好ましくは、前記タスク情報が一連のイベントの特性を含むようにするとよい。
【００２１】
前記タスクマネージャは、障害が発生した場合に、前記一連のイベントを継続的に実行するために前記生成された実行計画を実行するように構成される。
【００２２】
前記制御モジュールは、障害に対する動的応答の観察に基づいて専門知識を適用することにより適切な復旧応答を取得するように構成される。
【００２３】
前記制御モジュールは、前記タスク目標に基づいて複数の復旧応答をランク付けし、適切な復旧応答を導出するように構成される。
【００２４】
前記制御モジュールは、前記タスク目標が達成されたかどうかを判断するために、ユーザから又は以前のイベントから得られた情報を確認するように構成される。
【００２５】
前記メモリモジュールは、アクションの代替セットの実行、以前の非障害状態への復帰、タスクの再実行のうちの１つ以上からなる前記取得された復旧応答を制御モジュールに送信するように構成される。
【００２６】
前記システムは、さらに次式に基づく共分散関数を計算することにより、当該システムの局在性の尤度の指標を決定する。
pf = 粒子フィルタ（ロボット，センサ，ｑ，Ｌ，ｎｐ) 
ここで、ｑ＝粒子に加えられる拡散ノイズの共分散、Ｌ＝センサモデルの確率についての共分散、及び、ｎｐ＝粒子の数。
【００２７】
ここで、共分散関数は、共分散が閾値以下である場合に、前記システムが十分に定位し、その位置が正しいことを確実にしているかどうかを示す指標を提供する。
【００２８】
好ましくは、前記タスク情報がさらに複数のタスクの特性を含むようにするとよく、実行計画を実行することで複数のタスクを実行することが可能となる。前記複数のタスクは、ネスト化されていても、又は、カスケード化されていてもよい。
【００２９】
本発明の第三の実施形態によれば、プログラムがコンピュータによって実行されると、本発明の第一の実施形態に記載された工程をコンピュータに実行させる命令からなるコンピュータプログラム製品を提供する。
【００３０】
本発明の第四の実施形態によれば、本発明の第三の実施形態によるコンピュータプログラム製品が記憶されたコンピュータ可読媒体を提供する。
【００３１】
本発明は、少なくとも以下の利点を有する。
１）本発明は、障害が発生したとき、完全障害の状態を効果的に低減／回避する動的な環境下においてタスクを実行するための強固な自律型システム（例えば、ロボット、物理的ホスト）を提供する。これにより、割り当てられたタスクを実行する際、人間の介入の必要性を減らすという利点がある。
２）本発明は、完全障害の状態に起因するダウンタイムやアクセス不能を最小限に抑える障害復旧システムを提供する。これにより、障害モードに対応したタスク実行のための継続的な運用が可能となり、障害発生時のタスク完了の可能性を向上することができる。
３）本発明は、割り当てられたタスクの実行中に遭遇した障害を管理するために、ロボットが自律的に環境と相互作用することを可能にする応答フレームワークを提供する。システムの障害状態は、障害の原因を診断したり、一般的に複雑なソフトウェアの分析と推論を必要とする障害コンテキストデータを収集したりすることなく管理できるという利点がある。
【００３２】
本発明の他の実施形態及び利点は、本発明の様々な実施例について以下の例示的な図面を参照することで、当業者によって明らかになるであろう。
【図面の簡単な説明】
【００３３】
本発明の実施形態について添付図面を参照して説明するが、例示のために図示されているものである。
【００３４】
【図１】本発明の一実施形態であるタスク管理システムの概略図である。
【００３５】
【図２】図１のタスク管理システムのタスク管理プロセスのフロー図である。
【００３６】
【図３】割り当てられたタスクを繰り返してタスク管理するフロー図である。
【００３７】
【図４】以前の障害のない状態に戻すことでタスク管理するフロー図である。
【００３８】
【図５】代替タスクを引き受けることでタスク管理するフロー図である。
【００３９】
【図６】図３と図５の各種アプローチを組み合わせてタスク管理する運用プロセスを示す図である。
【００４０】
【図７】図３と図４の各種アプローチを組み合わせてタスク管理する運用プロセスを示す図である。
【００４１】
【図８】図３、図４、図５の各種アプローチを組み合わせてタスク管理する運用プロセスを示す図である。
【発明を実施するための形態】
【００４２】
本発明の実施形態を添付の図面を参照して説明する。本明細書で使用される用語は、特定の実施形態のみを説明する目的で使用され、本発明の範囲を限定することを意図するものではない。さらに、別段の定めがない限り、本明細書で使用される全ての技術的用語及び科学的用語は、本発明が属する技術分野に熟練した当業者が一般的に理解するものと同じ意味を有する。
【００４３】
単数形「ａ」、「ａｎ」、「ｔｈｅ」の使用は、文脈が明確に別のことを示さない限り、単数形及び複数形の両方を含むものである。
【００４４】
「ｏｒ」及び「／（スラッシュ）」の使用は、特に断りのない限り、「及び／又は」を意味するものである。さらに、「含む（including）」及び「備える（having）」、これらの用語の別の形態、例えば「includes（含む）」、「included（含まれる）」、「has(備えている)」及び「have（備えている）」などの用語の使用は、限定されるものではない。
【００４５】
本明細書で使用される「failure（障害）」という用語は、システム又はコンポーネントが指定された通りに要求された機能を実行することができないことを意味するものである。
【００４６】
図１から図５を参照して、タスク実行情報からなる実行計画を調整するために、動的な環境において自律的にタスク管理する自律型システム又は自律型ロボットのためのタスク管理システム及び方法が記載されており、障害復旧情報をリモートで提供することができる。このタスク管理システム及び方法は、障害が発生したとき、完全に障害が発生している状態を効果的に軽減又は回避する実行計画に復旧イベント又は復旧応答を組み込むことができる。
【００４７】
本発明のタスク管理方法及びシステムは、様々な用途があり、例えば、製造業及び物流アプリケーションにおける自律的なオペレーションを実施する方法に適用される。物流アプリケーションでは、システムの障害を効率的に排除及び／又は最小化する自律型システムに関して物品の輸送を容易にするため、本発明を採用することができる。
【００４８】
図１は、本発明の一実施形態であるタスク管理システム１００の概略図である。システム１００は、制御モジュール１０２と、タスクマネージャ１０４と、メモリモジュール１０６と、から構成される。制御モジュールは、タスクマネージャ１０４とメモリモジュール１０６を制御及び管理するための１つ以上のプロセッサ（図示せず）から構成される。
【００４９】
制御モジュール１０２は、タスクマネージャ１０４に命令セットを送信することにより、タスクを開始する。タスクマネージャ１０４は、命令セットを受信するとタスクを実行する。その後、タスクマネージャ１０４は、タスクパフォーマンスに関するレポートを制御モジュール１０２に送信することにより、タスクの結果を報告する。制御モジュール１０２は、タスクパフォーマンスに関するレポートを処理し、要求された応答をメモリモジュール１０６から取得する。
【００５０】
制御モジュール１０２、タスクマネージャ１０４及びメモリモジュール１０６の各々は、自律型システム上に実装されてもよい。自律型システムは、ロボット又は自律型車両を含むものである。本実施形態において、自律型システムは、ロボットの形態である。
【００５１】
制御モジュール１０２、タスクマネージャ１０４、メモリモジュール１０６は、通信手段を介して相互接続される。通信手段は、専用のネットワークであってもよく、制御モジュール１０２、タスクマネージャ１０４、メモリモジュール１０６を相互に接続するのに適した任意のネットワークであってもよい。制御モジュール１０２によってタスク入力を受信すると、タスクマネージャ１０４及びメモリモジュール１０６に命令が送られ、そこで処理される。その後、復旧応答も含んで処理された命令は、タスクマネージャ１０４に送られる。
【００５２】
制御モジュール１０２及びタスクマネージャ１０４は、以下を実行するために動作可能である。
・タスクを実行するためのアクションのセットを定義するタスク情報を受信する。
タスクは、タスクを実行するためのイベントのシーケンスとして定義されていてもよい。状況に応じて、タスクのために１つ以上定義されたシーケンスであってもよい。正しいシーケンス又は最良のシーケンスが存在する場合には、それを決定するために全てのシーケンスを比較してもよい。イベントのシーケンスに応じて、イベントを実行するためにアクションのセットが定義されていてもよい。アクションのセットには、１つ以上のアクションがあってもよい。
・タスクルートと定義されたイベントのシーケンスに依拠する定義されたアクションのセットに基づいて算出された実行時間を決定する。
・算出された実行時間が実際の実行時間を超過するかどうかを判断することによって、タスク目標が達成されたか否かを判断する。
実際の実行時間が算出された実行時間を超過する場合、障害状態が存在しており、タスク目標は達成されない。タスク目標は、１つ以上のサブタスク目標から構成されていてもよい。
【００５３】
制御モジュール１０２及びメモリモジュール１０６は、以下を実行するために動作可能である。
・タスク目標が達成されないときに、１つ以上の復旧応答を取得する。この１つ以上の復旧応答は、タスク目標に関連付けられている。
【００５４】
制御モジュール１０２及びタスクマネージャ１０４は、以下を実行するために動作可能である。
・タスク管理のため、定義されたイベントのシーケンスの実行用に復旧応答を反映したアクションのセットを取得するために、１つ以上の命令セットに基づいて実行計画を生成する。
・障害が発生した場合、タスクを管理するための復旧応答を適応させて、定義されたイベントのシーケンスが継続的に実行されるように実行計画を実行する。
【００５５】
図２を参照して、本発明の一実施形態であるタスク管理方法について説明する。タスク管理方法は、以下の工程から構成される。
・タスクを実行するためのアクションのセットを定義するタスク情報を受信する。
タスクは、タスクを実行するためのイベントのシーケンスとして定義されていてもよい。状況に応じて、タスクのために１つ以上定義されたシーケンスであってもよい。正しいシーケンス又は最良のシーケンスが存在する場合には、それを決定するために全てのシーケンスを比較してもよい。イベントのシーケンスに応じて、イベントを実行するためにアクションのセットが定義されていてもよい。アクションのセットは、割り当てられたタスクに応じて１つ以上のアクションから構成されていてもよい。
・算出された実行時間が実際の実行時間を超過するかどうかを判断することによって、タスク目標が達成されたか否かを判断する。
実際の実行時間が算出された実行時間を超過する場合、障害状態が存在しており、タスク目標は達成されない。タスク目標は、１つ以上のサブタスク目標から構成されていてもよい。
・タスク目標が達成されないときに、１つ以上の復旧応答を取得する。この１つ以上の復旧応答は、タスク目標に関連付けられている。
・タスク管理のため、１つ以上の復旧応答を反映して更新されたアクションのセットを取得するために、１つ以上の復旧応答に基づいて実行計画を生成する。
【００５６】
ここで、実行計画がタスクマネージャ１０４によって実行されるとき、定義されたイベントのシーケンスは、障害が発生した場合、タスクを管理するために復旧応答を適応させることで連続的に実行する。
【００５７】
実行計画は、割り当てられたタスクのために制御モジュール１０２によって作成される。そのようなタスクは、物品の輸送、物品の仕分け又は物品の棚割に関連するものであってもよい。実行計画は、１つ以上の個別タスク（又はサブタスク）のセットで構成される。個別タスクは、複数のハードウェアモジュールのように異なるエンティティによって実行されてもよい。個別タスクは、共通の目標を達成するためにグループ化されている。
【００５８】
実行計画は、以下の情報を含んでいてもよい。
・ロボットの目標位置
・実行される個別タスクのセット
・実行計画を実行するためのアクションのセット
【００５９】
制御モジュール１０２は、タスク入力を受け取り、このタスクを満足させる一連のアクションに変換する。この一連のアクションは、ハードウェアモジュール（図示せず）によって実行されるために、タスクマネージャ１０４に渡される。ハードウェアモジュールは、タスクを実行するためのセンサ、アクチュエータ等を含む。制御モジュール１０２は、割り当てられたタスクのための実行計画を生成する。制御モジュール１０２は、環境制約（例えば、特定の領域の物理的障壁が操作を妨げる場合）、タスク制約（例えば、タスクの複雑さなどのタスクの性質が操作に影響を与える場合）などの様々な制約に応じて実行計画を生成する。各個別タスクは、さらなる処理のためにタスクマネージャ１０４に渡される。
【００６０】
タスクマネージャ１０４は、タスクを実行する際のハードウェアモジュールの実行を調整する。タスクマネージャ１０４は、それぞれのハードウェアモジュールによる実行のために、各個別タスクを割り当てる。タスクマネージャ１０４は、各個別タスクが、後続の個別タスクに移る前に実行されることを保証することでタスク実行の信頼性を確保する。
【００６１】
図３、図４、図５は、本発明の一実施形態である自律型システムにおいて、割り当てられたタスクを管理するために復旧応答がどのようにトリガーされるのかを説明するハイレベルなフロー図である。復旧応答は、自律型システムがタスク及び／又はサブタスクを処理できない障害状態に遭遇したときに開始される。復旧応答は、状況及び手持ちのタスクに応じて、代替モードを引き受けること、第１の動作モードを繰り返すこと、障害状態になる前の障害のない状態に戻すこと、又はそれらの組み合わせを含む。
【００６２】
図３は、タスクの初期目標を達成するために、割り当てられたタスクを繰り返すことで自律型システムが復旧する動作プロセスを示すものである。この繰り返しアプローチは、異なる出力となる可能性がある。自律型システムは、タスクＡを実行するための要求を受信する。システムは、処理ステップ３０１において、タスクＡを開始し、ステップ３０２においてタスクＡが完了すると成功状態を認識する。システムは、次のタスクに進む。
【００６３】
システムは、処理ステップ３０３において、タスクＡが正常に実行されなかった場合に障害状態を認識する。例えば、障害状態は、タスクＡがそのタスクの予期される実行時間である所定の時間内に実行されなかった場合に生じる。システムは、タスクＡを再試行するが、複数回再試行するようにしてもよい。タスクＡを繰り返すことで、タスク完了の可能性が高くなる。ステップ３０４でｎ回試行した後、システムが同じタスクの実行に失敗した場合、タスクは「失敗した」タスクとみなされる。システムは、ステップ３０５でタスクＡが終了すると、タスクの出力を監視する。理想的には、繰り返しによる復旧は、タスクが実行されるたびに異なる出力となる可能性のあるタスクに適しているかもしれない。
【００６４】
図４は、システムを障害のない状態である前の状態に戻すことで、自律型システムが復旧する動作プロセスを示すものである。前の状態へ復帰することで、システムは、次のタスク／サブタスクを引き受けるための準備をする。自律型システムは、タスクＡを実行するための要求を受信する。システムは、処理ステップ４０１において、タスクＡを開始し、タスクＡが完了すると成功状態を認識する。システムは、次のタスクに進む。
【００６５】
システムは、処理ステップ４０２において、タスクＡが正常に実行されなかった場合に障害状態を認識する。例えば、障害状態は、タスクＡがそのタスクの予期される実行時間である所定の時間内に実行されなかった場合に生じる。システムは、リセットして、以前の障害の無い状態に戻す。これにより、システムは、別の割り当てられたタスク（タスクＢ）を引き受けることができる。システムは、タスクＡのタスク出力を監視する。このリセット・アプローチは、タスクが実行されるたびに同じ結果が得られる可能性のあるタスクに適しているかもしれない。理想的には、リセットにより復帰することで、特定のタスクが実行されるときに遭遇する可能性のある障害状態を緩和することができる。
【００６６】
図５は、タスクを達成するために代替タスクを引き受けることで自律型システムが復旧する動作プロセスを示すものであ。この場合、代替タスクは利用可能なものでも割り当てられたものでもない。自律型システムは、タスクＡを実行するための要求を受信する。システムは、処理ステップ５０１において、タスクＡを開始し、タスクＡが完了すると成功状態を認識する。 システムは、次のタスクに進む。
【００６７】
システムは、処理ステップ５０２において、タスクＡが正常に実行されなかった場合に障害状態を認識する。例えば、障害状態は、タスクＡがそのタスクの予期される実行時間である所定の時間内に実行されなかった場合に生じる。システムは、初期タスクの目的を達成しようと初期タスクの完了を試みるため、１つ以上の代替タスク（この場合はタスクB）を実行する。この代替アプローチは、異なる方法で達成される可能性のあるタスクに適しているかもしれない。
【００６８】
タスク管理システムは、従業員の労働集約的な作業を削減し、効率化と時間短縮を実現する。棚に並べるための本の整理やカタログの作成などのような重度のプロセス重視の状況は、因果関係によって特徴づけられる単純なコンテキストとして分類される。この場合、タスクの管理を調整する際に、対応するパラメータを設定するコマンドアンドコントロールスタイルがある。例えば、問題が発生した場合、その問題を容易に特定し、分類し、適切に対応することができる。
【００６９】
タスク管理システムの応用例として、自律的に商品を配送するための受注処理及び履行のための自律型システムが挙げられる。例えば、商品を配送する最初の試みは、受取人が不在のために成功しないかもしれません。後続の配達の試みは、おそらくタスクの完了を保証し、それによってサービスの失敗を最小化するものである。
【００７０】
タスク管理システムは、本のＲＦＩＤタグをスキャンすることで、書棚を見つけるため、図書館又は書店でナビゲート用の自律型システム又は自律型ロボットの形態をとることができる。いくつかの実施形態において、タスクは、書棚の本をスキャンするためのアンテナにとって適切な高さへの位置決めを含むかもしれない。障害物（例えば、棚）を通過してのナビゲーション、位置特定、アンテナの調整及び／又は再調整などの反復的なタスクは、一連のタスクを完了するために必要であり、多くの個別的な中間タスクを含んでいる。
【００７１】
ハイブリッドフレームワーク
上記図３、図４、図５に示すような運用プロセスは、タスク管理のための適切な対応を調整する基本的な構造を提供する。
【００７２】
本発明のタスク管理システム及び方法は、あるタスクを別のタスクに重ねることにより、ネスト化されたタスクを管理することができる。このようにして、タスクは何階層にネスト化されていてもよい。タスクは、タスクを連続して引き継ぐことにより、カスケード方式で管理するようにしてもよい。複雑なタスクを管理するためのロバストシステムを提供するため、1つ以上のモデルを組み込んで生成された実行計画。
【００７３】
ハイブリッドフレームワーク 1：
複雑なタスクで定義されたタスク又はサブタスクを完了することで目標が達成される。目標は、1つ又は複数のサブタスク目標で構成されていてもよい。
【００７４】
タスクＦＡがフレームワークＡ（図３）のタスクであるとする。タスクＦＡがフレームワークＢ（図４）に投入された場合、システムは、目標を達成するために別の方法を試みる前にｎ回試行する。タスクＦＡは、繰り返しによるリカバリーアプローチ（図３）で管理される。異なるアプローチを組み合わせるようにしてもよい。この場合、目標達成のために別の方法を使用する前に、タスクを複数回（又はｎ回）実行するため、繰り返しとリセットのアプローチを組み合わせるようにしてもよい。
【００７５】
タスクＦＡをフレームワークＢ（図４のリセットアプローチ）に投入した場合、タスクを複数回実行するために、繰り返しとリセットのアプローチを組み合わせてもよい。システムは、複数回の試行に失敗した後、以前の非障害状態への復旧動作を行うようにするとよい。その後、より高い成功確率で同じ方法を用いてタスクを再試行することができる。
【００７６】
タスクＦＢがフレームワークＢ（図４）のタスクであると仮定する。この新しいタスクＦＢをフレームワークＡ（繰り返しアプローチ）に投入することができる。このことにより、システムは、タスクＡとタスクＢの両方を失敗した場合に複数回再試行することができる。
【００７７】
タスクＦＢは、別の代替アクションであるタスクＣをカスケードするために、フレームワークＢ（リセットアプローチ）に投入することができる。システムは、最初にタスクＡ を用いてタスクを完了しようとする。失敗した場合、システムは、タスクＢを用いてタスクを完了するために再試行する。それでも失敗した場合は、全ての可能な方法が試行されるまで、タスクＣへと進む。
【００７８】
上記ハイブリッドフレームワークは、タスクを管理するための基本的なアプローチを利用した一例である。複数のＲＦＩＤアンテナ、アンテナを上下に投影するための伸縮アーム、伸縮アーム構造を移動させる移動ベースからなるシェルフスキャンロボットによって実行されるタスクを計画するために使用できる無限の組み合わせがある。
【００７９】
実施例１：本棚の近くでアンテナを上方に移動させる。
場合によって、アンテナは、正確なスキャンのために特定の高さに向けられる必要がある。例えば、ロボットが本棚の近くにいる場合、本棚の本がアンテナの邪魔になることがある。このような障害物を検出するために、アンテナにセンサ（接触センサ）を内蔵した。
【００８０】
目的：アンテナを特定の高さに移動させる。
必要なアクション：
１．アンテナを上方に移動する。
・結果：成功（高さ到達）／失敗（障害物検出）
２． 
ａ）回転させる（アンテナを障害物から遠ざける） 
ｂ）アンテナを上方に移動する。
・結果：成功（高さ到達）／失敗（障害物発見）
ｃ）背部を回転させる。
【００８１】
本実施例のタスクは、アクションを実行する前に潜在的な障害を特定することで管理する。上記タスクは、ステップａ及びｃに示すように出たり入ったりといった単純なサブタスクが失敗せず、成功することを前提に実行されている。
【００８２】
実施例２：ハイブリッドフレームワーク１
この例では、アクション１は、目的を達成するためのデフォルトのアクションである。システムが障害を報告した場合、システムは、センサからの誤報を避けるために３回試行する。アクション２は、アクション１の代替アクションである。図６にタスク管理システムを示す。
【００８３】
ケース２：自動ドッキング
ロボットのバッテリー残量が少ない場合又は事前に設定された閾値（例えば２０％）を下回る場合、自動ドッキングタスクが開始される。
目的 ：ドッキングステーションにドッキングして充電
アクション
１．ドッキングステーションの前のポイント（ナビゲーションポイント）にナビゲートする。
・結果：成功と判断
２．ドック
・結果：成功（ドッキング）／失敗（正しくドッキングされていない）
【００８４】
本実施例において、ロボットは、最初の試行に失敗した場合、異なるドック結果を生成することができない。そのため、反復による復旧が機能しない。しかしながら、ロボットの位置がナビゲーションポイントにリセットされれば、ドックタスクを再度実行することができる。
【００８５】
実施例３： ハイブリッドフレームワーク２
ロボットは、アクション１とアクション２を順番に実行する。アクション２が失敗した場合、ロボットの状態をアクション１の終了時の状態にリセットする。これをｎ回繰り返す。この様子を図７に示す。
【００８６】
ケース３：ポイントトゥポイントナビゲーション
目的 ：ある場所から別の場所へ移動する。
アクション：目的の場所へ移動する
１．結果：成功（目標に到達）／失敗（目標に到達できない）
２．その場で回転する
３．障害物のメモリをリセットする
【００８７】
ロボットが必要とする最小限度の空間に近い場合、ナビゲーションアルゴリズムは、常に経路を見つけることができない可能性がある。アクション２は、ロボットの位置に摂動を導入することで、異なる経路が計画される可能性がある。
【００８８】
アクション３は、ロボットのメモリ内の障害物をクリアするために使用され、ロボットは、現在検出されている障害物のみを考慮するように強制される。これにより、ロボットは、以前は検出されていたが、現存しない障害物を介して経路を計画することができるようになる。
【００８９】
アクション２とアクション３は、ナビゲーションタスクが失敗した場合にリセットし、後続の試みが異なる結果をもたらすことを可能にするための代替方法である。
【００９０】
実施例４： ハイブリッドフレームワーク３
図８は、ロボットがアクション１を実行するためのタスク管理フレームワークを示すものである。失敗した場合は、アクション２を実行してリトライする。失敗した場合、アクション３を実行してリトライする。
【００９１】
本発明は、棚の上の異なる高さに置かれた本をスキャンするためのアンテナを可能にする伸縮アームの昇降を実現するロボットのような自律型システムに統合されてもよい。アンテナは、本が棚から突出している場合に遮られ、スキャンのタスクを妨げる可能性がある。また、伸縮アームを無理に動かして本に衝突させた場合、アンテナが破損する可能性がある。
【００９２】
実施例５
タスク管理システムは、ある地点から別の地点へ移動するための自律型ロボットに実装されている。自律型ロボットは、目的地までの経路が計画できないような局所的な地域では、近くの障害物に阻まれて、ある場所で立ち往生してしまうことがある。例えば、ロボットの現在位置から目的地までの経路が遮断されている場合、ロボットは経路を計画することができない。静的な障害物が近すぎる場合も、ロボットは経路を見つけることができない。
【００９３】
経路計画に失敗した場合、ナビゲーションノードは、タスクが失敗したことを通知する信号を自動的に発信する。ロボットは、タスクの失敗を通知する機構を組み込まれていてもよい。この機構には、ばねで保持した上部カバーが上部の物体に当たったときにオンになるリミットスイッチを上部に追加してもよい。また、下部には、ばねで保持した下部カバーが下部の物体に当たったときにオンになる同様のリミットスイッチを追加してもよい。これにより、タスクを完了できないことをロボットに知らせる信号を生成する。
【００９４】
また、復旧動作を行うことも可能である。復旧動作とは、アームを何度か動かしてみて再試行し、ロボットを取り外して再試行することである。アームを上下に移動させてＲＦＩＤタグをスキャンすることに成功した場合、そのタスクは成功したものとみなされる。
【００９５】
本発明の別の実施形態では、ロボットの現在位置の変更を効果的に行うことができる。その場で回転するというようなリセットタスクは、この状況下においてロボットを救出するために使用される。回転した後、その位置を再び更新し、その結果、グローバル・マップ上の位置がわずかに変化する可能性がある。そのため、目的地までの経路を見つけることができるようになる。
【００９６】
実施例6
自律型ロボットには、何らかの動作を行う際に、自分の位置が正しいかどうかを確認するというタスクが課せられている。ロボットの位置情報は、スキャンマッチングセンサが少ない環境では、ロボット検出ができなくなる可能性がある。正しい位置情報がなければ、ロボットを検出することができず、環境中を移動するための将来的な行動の判断に役立たないという可能性がある。ロスト検出機構は、ロボットが失われた環境下でのナビゲーションを停止し、ロボットが正しい位置情報を持っている場合にのみ、ロボットを解放する。
【００９７】
ロボットの姿勢を推定するアルゴリズムは以下の式で表される。
pf = 粒子フィルタ（ロボット，センサ，ｑ，Ｌ，ｎｐ) 
【００９８】
これにより、スキャンマッチングセンサを介してロボットの状態を推定する。ｑは粒子に加えられる拡散ノイズの共分散、Ｌはセンサモデルの確率の共分散、ｎｐは粒子の数である。
【００９９】
したがって、ロボットが十分に定位しているかどうかを検出するためには、粒子フィルタ関数の共分散を用いることができる。共分散行列の要素がある閾値以下である限り、定位のロバスト性を正当化することができる。
【０１００】
例えば、公称値の約１０００倍の閾値以上の共分散であれば、位置タスクは失敗したと判断される。この公称値は、障害復旧を実行せずに通常の動作条件で動作するロボットのための共分散である。
【０１０１】
他の実施形態では、ロボットが十分に定位しているかどうかを検出するプロセスを自動化するために、機械学習方法を実装するようにしてもよい。これは、公称値を生成するためのトレーニングデータとして正しい位置の共分散（Ｌｎ）を使用し、閾値を決定するためのトレーニング日として誤った位置の共分散（Ｌｗ）を使用することによって実装されてもよい。正しく位置決めされたロボットは、Ｌｎ＞Ｌｗを示す。
【０１０２】
上記は、決定された閾値が絶対値であり得ることを示していますが、その閾値は、ロボットで使用されるセンサ、ロボットが動作する環境を含む様々な要因に依存するものであることが理解されるであろう。このように、Ｌｗ及びＬｎの比は、閾値のための指標を提供する。その値は、一般的には１００以上である。
【０１０３】
本発明の他の実施形態では、リカバリータスクがトリガーされ、ロボットは過去のナビゲーション軌跡を介して環境内の既知の姿勢にリセットされる。ロボットが事前に定義されたマップに自分自身を定位させることができれば、ロボットは次のタスクに向けてナビゲーションを行うことができる。
【０１０４】
「Recovery by Reset（リセットによる復旧）」及び「Recovery by Alternatives frameworks（代替フレームワークによる復旧）」によって管理されるタスクについて、タスクは、自律的に実行されても手動で実行されてもよい。例えば、健康監視システムを開発し、人間の行動が障害状態を管理するためのリカバリータスクとして機能するシステムに組み込んでもよい。また、特定のタスクが失敗した場合には、作業の流れが途切れないように、次の行動のコースをユーザが提供するようにしてもよい。
【０１０５】
さらなる実施形態において、システムは、タスクの目的を達成するためにタスク管理を最適に提供するリカバリーフレームワークを決定するために、リカバリーフレームワークＡ、Ｂ、Ｃ（それぞれ図３、図４、図５では）のランキングを採用するようにしてもよい。例えば、タスクＡが目的を達成するためにより高い優先順位を取る「代替手段による復旧」の枠組みで、システムは、タスクＡが失敗した場合にのみタスクＢを試すように構成されていてもよい。しかし、タスクＡがタスクＢに比べて失敗する可能性が高い場合、代替案の実行順序を変更することができる。したがって、システム効率を改善することが可能である。
【０１０６】
上記の実施形態は、本発明の例示のためだけに提供されたものであり、関連する技術に熟練した者には明らかなように、さらなる変更および改良は、本明細書に記載された本発明の広義の範囲内に含まれると考えられることが理解されるであろう。さらに、記載された実施形態の１つ又は複数の特徴を組み合わせて、さらなる実施形態を形成してもよいことが理解される。
【図１】
2022500722.tif 000003
【図２】
2022500722.tif 000004
【図３】
2022500722.tif 000005
【図４】
2022500722.tif 000006
【図５】
2022500722.tif 000007
【図６】
2022500722.tif 000008
【図７】
2022500722.tif 000009
【図８】
2022500722.tif 000010
【国際調査報告】
2022500722.tif 000011
2022500722.tif 000012
2022500722.tif 000013
2022500722.tif 000014