(57)【要約】  マルチポリシー意思決定（ＭＰＤＭ）では、一組の候補ポリシーの性能を予測するために、多くの計算コストの高いフォワードシミュレーションが実行される。ＭＰＤＭのリスクを意識した定式化では、最悪の結果のみが意思決定プロセスに影響を及ぼし、これらの影響力のある結果を効率的に見つけることが最も重要な課題となる。最近、ヒューリスティック関数を使用した確率的勾配最適化アルゴリズムがランダムサンプリングよりも著しく優れていることが示された。この開示では、正確な勾配は、複雑なフォワードシミュレーションによっても、ｄｅｐネットワークにおける手法と同様の手法を使用して計算できることが示された。提案された手法は影響を与える結果をより確実に見つけ、また以前の方法よりも速く、より容易に区別可能なヒューリスティック関数を設計する必要性を排除しながらより多くのポリシーを評価することを可能にする。
2020511721.tif 000002
【特許請求の範囲】
【請求項１】
環境内の制御対象物にコマンドを発行するための、コンピュータにより実装される方法であって、
一組のポリシーの各ポリシーであって、前記ポリシーが前記制御対象物が実装する前記コマンドを指定し、前記コマンドが前記制御対象物の動きに直接影響を与える各ポリシーについて、
前記制御対象物および１つまたは複数の監視対象物の各々について状態推定値を受け取るステップであって、各状態推定値は状態要素を含み、前記状態要素は前記それぞれの対象物の位置および前記それぞれの対象物の速度を示す、ステップと、
前記制御対象物および前記１つまたは複数の監視対象物の各々についてシード状態を生成するステップと、
前記制御対象物および前記シード状態を使用して前記１つまたは複数の監視対象物の動きをシミュレートするステップであって、前記シミュレーションは、前記それぞれのポリシーを実行する前記制御対象物を含む、ステップと、
前記シード状態を用いて前記シミュレーションの結果にコストを割り当てるステップと、
前記シード状態に関連する確率を決定するステップと、
前記コストおよび前記確率に基づいて前記シード状態を用いて前記シミュレーションの結果を定量化するステップと、
揺動された入力を使用して前記１つまたは複数の監視対象物および前記制御対象物の動きをシミュレートするステップであって、
揺動されたシード状態を決定するために、前記シード状態のうちの少なくとも１つの状態要素を揺動し、前記揺動されたシード状態を使用して、前記制御対象物および前記１つまたは複数の監視対象物の動きをシミュレートし、
前記揺動されたシード状態を用いて前記シミュレーションの結果に揺動されたコストを割り当て、
前記揺動されたシード状態に関連する揺動された確率を決定し、
前記揺動されたコストおよび前記揺動された確率に基づいて、前記揺動されたシード状態を用いて前記シミュレーションの揺動された結果を定量化し、
所定の条件が満たされるまで、揺動された入力を用いて前記制御対象物および前記１つまたは複数の監視対象物の動きの前記シミュレーションを繰り返し、それによって複数の揺動された結果を生成するステップと、
前記それぞれのポリシーについてポリシースコアを決定するステップであって、前記ポリシースコアは、前記それぞれのポリシーについての前記複数の揺動された結果の中で最も高い値を有する前記揺動された結果に相関する、ステップと、
前記一組のポリシーから所与のポリシーを選択するステップであって、前記の所与のポリシーは、前記一組のポリシー内の前記ポリシーの中で最も良性の結果を有する、ステップと、
前記所与のポリシーに従って、前記制御対象物に前記コマンドを発行するステップと、
を含む方法。
【請求項２】
前記シード状態のうちの少なくとも１つの状態要素を揺動する前記ステップは、前記揺動されたコストと前記揺動された確率との積を最大にする、請求項１に記載の方法。
【請求項３】
バックプロパゲーションを使用して少なくとも１つの状態要素を揺動するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記１つまたは複数の監視対象物の動きをシミュレートするステップは、微分可能関数を使用して対象物の軌跡を表すステップをさらに含む、請求項１に記載の方法。
【請求項５】
一連の時間ステップにわたって遷移関数を再帰的に適用することによって対象物の軌跡を表すステップをさらに含み、前記遷移関数は、ソーシャルフォースモデルに従って対象物が他のエージェントによってはじかれ、かつ目標に向かって引き寄せられるように定義される、請求項４に記載の方法。
【請求項６】
前記１つまたは複数の監視対象物の動きをシミュレートするステップは、前記揺動されたシード状態に関して前記一連の時間ステップ内の時間ステップごとに勾配を反復計算することによって揺動されたシード状態を決定するステップを含む、請求項４に記載の方法。
【請求項７】
前記所与のポリシーは、一組の望ましくない結果を回避し、前記一組の望ましくない結果は、（ｉ）前記制御対象物と前記１つまたは複数の監視対象物のうちの１つとの間の衝突、ならびに（ｉｉ）前記制御対象物が前記１つまたは複数の監視対象物から所定の距離内にあること、の少なくとも一方を含む、請求項５に記載の方法。
【請求項８】
前記状態要素は確率分布によって表される、請求項１に記載の方法。
【請求項９】
前記状態要素のうちの１つは、前記制御対象物の目標を示す、請求項８に記載の方法。
【請求項１０】
前記コストは非難メトリックを用いて決定され、前記非難メトリックは前記制御対象物と前記１つまたは複数の監視対象物のうちの１つとの間の距離ならびに前記制御対象物の前記速度の関数である、請求項９に記載の方法。
【請求項１１】
前記コストは、前記制御対象物の前記目標への進行を用いて決定される、請求項１０に記載の方法。
【請求項１２】
前記１つまたは複数の監視対象物の各々についての前記受け取った状態推定値は、知覚モジュールに基づく前記１つまたは複数の監視対象物の確率的推定値である、請求項１に記載の方法。
【請求項１３】
前記一組のポリシーは、前記制御対象物が、（ｉ）前記１つまたは複数の監視対象物のうちの１つに追従するように軌跡を変更する、（ｉｉ）同じ位置を維持する、（ｉｉｉ）前進する、（ｉｖ）減速する、および（ｖ）加速する、ためのコマンドのうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項１４】
環境内の制御対象物であって、
一組のポリシーの各ポリシーについて、最良のポリシーを決定するように構成されたコントローラであって、前記ポリシーは、前記制御対象物が実装するコマンドを指定し、前記コマンドは前記制御対象物の方向を示す、コントローラと、
命令を格納する非一時的コンピュータ可読媒体と、を含み、前記命令は、プロセッサによって実行された場合に、前記プロセッサに対して、
知覚モジュールから、前記制御対象物および１つまたは複数の監視対象物の各々について状態推定値を受け取らせ、各状態推定値は状態要素を含み、前記状態要素は前記それぞれの対象物の位置および前記それぞれの対象物の速度を示し、
シード状態生成器を介して、前記制御対象物および前記１つまたは複数の監視対象物の各々についてシード状態を生成させ、
シミュレータを介して、前記シード状態を使用して、前記制御対象物および前記１つまたは複数の監視対象物の動きをシミュレートさせ、前記シミュレーションは、前記それぞれのポリシーを実行する前記制御対象物を含み、
結果定量化器を介して、前記結果にコストを割り当てることによって前記シード状態の結果を定量化して、前記シード状態に関連する確率を決定させ、
前記シミュレータを介して、揺動された入力を使用して前記制御対象物および前記１つまたは複数の監視対象物の動きをシミュレートさせ、
揺動モジュールを介して、揺動されたシード状態を決定するためにバックプロパゲーションを使用して前記シード状態のうちの少なくとも１つの状態要素を揺動し、前記揺動は、揺動されたコストと揺動された確率の積を最大にし、
前記揺動されたシード状態に関連する前記揺動されたコストを計算するために、前記揺動されたシード状態を使用して、前記シミュレータを介して、前記制御対象物および前記１つまたは複数の監視対象物の動きをシミュレートさせ、
前記結果定量化器を介して、前記揺動されたシード状態の揺動された結果を前記揺動されたコストと前記揺動されたシード状態に関連する前記揺動された確率との揺動された積として定量化させ、
前記コントローラを介して、所定の条件が満たされるまで、揺動された入力を用いて前記制御対象物および前記１つまたは複数の監視対象物の動きの前記シミュレーションを繰り返させ、それによって複数の揺動された積を生成することによって、前記動きをシミュレートさせ、
前記コントローラを介して、前記それぞれのポリシーについてポリシースコアを決定させ、前記ポリシースコアは、前記一連のポリシー内の前記ポリシーの中で最も高い値を有する前記揺動された結果に相関し、
前記コントローラを介して、前記一組のポリシーから所与のポリシーを選択させ、前記の所与のポリシーは、前記一組のポリシー内の前記ポリシーの中で最も良性の結果を有し、
前記コントローラを介して、前記所与のポリシーに従って、前記制御対象物に前記コマンドを発行させる、制御対象物。
【請求項１５】
微分可能関数を使用して対象物の軌跡を表すことによって前記１つまたは複数の監視対象物の動きをシミュレートすることをさらに含む、請求項１４に記載の制御対象物。
【請求項１６】
一連の時間ステップにわたって遷移関数を再帰的に適用することによって対象物の軌跡を表すことをさらに含み、前記遷移関数は、ソーシャルフォースモデルに従って対象物が他のエージェントによってはじかれ、かつ目標に向かって引き寄せられるように定義される、請求項１５に記載の制御対象物。
【請求項１７】
前記１つまたは複数の監視対象物の動きをシミュレートするステップは、前記揺動されたシード状態に関して前記一連の時間ステップ内の時間ステップごとに勾配を反復計算することによって揺動されたシード状態を決定することを含む、請求項１５に記載の制御対象物。
【請求項１８】
前記一組のポリシーは、前記制御対象物が、（ｉ）車線を変更する、（ｉｉ）交差点を通過する、（ｉｉｉ）他の交通の流れの中の１つまたは複数の車両に関連する位置で交通に合流する、ためのコマンドのうちの少なくとも１つを含む、請求項１４に記載の制御対象物。
【発明の詳細な説明】
【技術分野】
【０００１】
政府条項
本発明は、米国国防総省高等研究計画局によって授与された助成金第Ｄ１３ＡＰ０００５９号による政府の支援を受けてなされた。政府は本発明において一定の権利を有する。
【０００２】
関連出願の相互参照
本出願は、２０１７年３月１７日に出願された米国仮特許出願第６２／４７２，７３４号の利益を主張する。上記出願の全開示は参照により本明細書に組み込まれる。
【０００３】
本開示は、環境を通って移動する対象物のマルチポリシー意思決定のための方法に関する。
【背景技術】
【０００４】
ロボットや車両などの自律制御された対象物は、どちらの方向に進むかについて決定するために、その周囲の環境を考慮する必要がある。これを行うために、制御対象物はそれ自体とそれらの周りの対象物についてすべての可能なシナリオ、方向、および結果を考慮する。しかしながら、各可能なシナリオをランダムに考慮することは、計算上不経済であるだけでなく、制御対象物が衝突または他の高コストの発生を経験する可能性があるシナリオを識別する方法を定義しないので非効率的でもある。
【０００５】
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。本背景技術の欄に記載されている限りにおいて、出願時に先行技術として適格ではない可能性がある説明の態様と同様に、本発明者らの研究は、明示的にも暗示的にも本開示に対する先行技術として認められない。
【発明の概要】
【０００６】
このセクションは本開示の一般的な概要を提供するものであり、その全範囲またはそのすべての特徴の包括的な開示ではない。
【０００７】
環境内の制御対象物にコマンドを発行するための、コンピュータにより実装される方法が提示される。一組のポリシーの各ポリシーについて決定が行われ、ポリシーが制御対象物が実装するコマンドを指定し、コマンドが制御対象物の動きに直接影響を及ぼす。開始点として、制御対象物および１つまたは複数の監視対象物の各々について状態推定値が受け取られ、各状態推定値は状態要素を含み、状態要素はそれぞれの対象物の位置およびそれぞれの対象物の速度を示す。
【０００８】
シード状態は、制御対象物および１つまたは複数の監視対象物の各々について生成される。次いで、制御対象物および１つまたは複数の監視対象物の動きがシード状態を使用してシミュレートされ、シミュレーションはそれぞれのポリシーを実行する制御対象物を含む。シード状態を用いたシミュレーションの結果にコストを割り当て、シード状態に関連した確率を決定することによって、シード状態を用いたシミュレーションの結果が定量化される。
【０００９】
シード状態が（例えば、バックプロパゲーションを使用して）揺動され、１つまたは複数の監視対象物および制御対象物の動きが、揺動された入力を使用してシミュレートされる。１つまたは複数の監視対象物および異なる揺動された入力を有する制御対象物の動きのシミュレーションは、所定の条件が満たされるまで繰り返され、それによって複数の揺動された結果が生成される。
【００１０】
各ポリシーについて、それぞれのポリシーについてポリシースコアが決定され、ポリシースコアは、それぞれのポリシーについての複数の揺動された結果の中で最も高い値を有する揺動された結果に相関する。次いで、所与のポリシーが一組のポリシーから選択され、所与のポリシーは、一組のポリシー内のポリシーの中で最も良性の結果を有する。最後に、所与のポリシーに従って制御対象物にコマンドが発行される。
【００１１】
１つまたは複数の監視対象物の動きをシミュレートするステップは、微分可能関数を使用して対象物の軌跡を表すステップを含む。一実施形態では、対象物の軌跡は、一連の時間ステップにわたって遷移関数を再帰的に適用することによって提示され、遷移関数は、ソーシャルフォースモデルに従って対象物が他のエージェントによってはじかれ、かつ目標に向かって引き寄せられるように定義される。さらに、揺動されたシード状態は、揺動されたシード状態に関して一連の時間ステップ内の時間ステップごとに勾配を反復計算することによって決定される。
【００１２】
いくつかの実施形態では、所与のポリシーは、一組の望ましくない結果を回避し、一組の望ましくない結果は、（ｉ）制御対象物と１つまたは複数の監視対象物のうちの１つとの間の衝突、ならびに（ｉｉ）制御対象物が１つまたは複数の監視対象物から所定の距離内にあること、の少なくとも一方を含む。
【００１３】
コストは非難メトリック(blame metric)を用いて決定され、非難メトリックは制御対象物と１つまたは複数の監視対象物のうちの１つとの間の距離ならびに制御対象物の速度の関数である。コストはまた、制御対象物の目標に向けての進行を説明する。
【００１４】
いくつかの実施形態では、一組のポリシーは、制御対象物が、（ｉ）１つまたは複数の監視対象物のうちの１つに追従するように軌跡を変更する、（ｉｉ）同じ位置を維持する、（ｉｉｉ）前進する、（ｉｖ）減速する、および（ｖ）加速する、ためのコマンドのうちの少なくとも１つを含む。
【００１５】
適用可能性のさらなる分野は、本明細書に提供される説明から明らかになるであろう。この概要における説明および特定の例は、例示目的のみを意図しており、本開示の範囲を限定することを意図していない。
【００１６】
本開示は、詳細な説明および添付の図面からより完全に理解されるようになるであろう。
【図面の簡単な説明】
【００１７】
【図１】マルチポリシー意思決定（ＭＰＤＭ）装置の一実施形態のブロック図である。
【図２】制御対象物がＭＰＤＭを設定するであろう環境の図である。
【図３】ＭＰＤＭ装置の一実施形態のフローチャートである。
【図４】コスト関数のためのディープネットワーク表現の図である。初期構成ｘ０はいくつかの層を通って伝播し、各層は遷移関数Ｔを表す。層ｔの出力はコストを決定する。コスト関数は、フォワードシミュレーション軌跡に沿って各時間ステップで計算されたコストを累積する。
【図５】例示的な遷移関数のブロック図である。遷移関数のブロック図。各時間ステップにおいて、ソーシャルフォースモデル（ＳＦＭ）に従ってエージェントｉ（この場合、ロボット）は他のエージェント
【数１】
2020511721.tif 000003
によってはじかれ、その副目標ｇｓｕｂに向かって引き寄せられる。歩行者は、ソーシャルフォースがヒューマンロコモーションモデルの制御入力として機能するＨＳＦＭモデルを使用してモデル化される。ロボットは一輪車のようにモデル化され、ソーシャルフォース
【数２】
2020511721.tif 000004
は、より低いレベルの速度コントローラのための準拠基準信号（ｖｒｅｆ，ｗｒｅｆ）に変換される。
【図６Ａ】バックプロパゲーションを説明する図である。
【図６Ｂ】バックプロパゲーションを説明する図である。図６Ａでは、サンプリングされた初期構成の前方伝播された結果は、エージェントにとっても不都合ではないので、ロボットにとって落胆することではない。エージェントｉ＝{１，２}の場合は、計算された勾配
【数３】
2020511721.tif 000005
（青）は、ロボットが現在のポリシーの下でそれらを不便にするであろう構成にエージェントを駆動するが、一方、
【数４】
2020511721.tif 000006
（緑）はそれらをよりありそうな構成に駆動する。エージェントは同時に更新することができ、図６Ｂに見られるように、より影響力のある構成をもたらす。
【図７】混雑したシナリオにおける確率的勾配上昇の低下を示すグラフである。各アルゴリズムについて、ロボットの周辺にあるエージェントの数、したがって検索空間の次元を変化させる影響力のある結果を見つけるために行われる反復回数（フォワードシミュレーション）の平均と標準誤差を推定する。勾配が小さいほど、高次元の検索空間を持つ複雑なシナリオに対して、アルゴリズムはより優れた、より堅牢なものになる。ランダムサンプリングは、予想通り、単純な構成でも多くのサンプルを必要とする。ＳＧＡは、複数のエージェントを含む複雑なシナリオでは影響力のある結果を効率的に見つけることができず、スケーリングが不十分なため、６を超えるエージェントではランダムサンプリングよりも性能が悪くなる。ＢＰは、８人の混雑したシナリオでもこれらの悪い結果を見つけることができる。
【図８】提案された方法の実験結果を確率的勾配上昇手法と比較するグラフである。ＳＧＡでは不可能であるが、ＢＰはリアルタイムで１０個のポリシーを確実に評価することができる。シミュレート環境での６時間のナビゲーションにおける様々なアルゴリズムの性能を比較する。到達したすべての目標の停止時間と、ロボットが移動した１メートルあたりの非難を測定する。各アルゴリズムに対して、ブートストラップサンプリングを使用して、楕円の軸で表されるこれらのメトリックの平均と標準誤差を推定する。非難または停止時間が小さいほど良好である。計画時間ｔｐ＝０．３ｓを考慮してシミュレータをリアルタイムで実行する。ＳＧＡは小さい方のポリシーセットをリアルタイムで確実に評価することができるが、選択肢がないと頻繁に停止する。残念ながら、ＳＧＡは１０個のポリシーからなる大規模なポリシーセットを確実に評価することはできず、大きな非難を累積させる。ＢＰはＳＧＡよりも迅速かつ確実に大きなポリシーセットを評価できるため、ロボットは不必要に停止することなくリアルタイムで安全に（低い非難で）ナビゲートする。ｔｐ＝１ｓの非現実的な計画時間を可能にするためにシミュレータを遅くすると（リアルタイムより３倍遅く）、１０個のポリシーを有するＳＧＡが劇的に非難を減らすことができることが分かる。ただし、それでもＢＰはＳＧＡよりも優れている。
【図９】３つの反復可能な実験からの実データを示すグラフである。実世界のデータは、異なる記号で表される３つの再現可能な実験、１）歩行者がロボットの軌跡と直交して横切る（＋）、２）歩行者が斜め４５度でロボットの経路を横切る（Δ）、および３）歩行者がロボットの前をゆっくり歩く（星）から収集された。到達したすべての目標の停止時間と、歩行者の不便によって累積された、ロボットが移動した１メートルあたりの非難を測定する。停止時間および非難が小さいほど、良好である。提案されている手法（緑）は、以前よりも多くのポリシーをリアルタイムで評価することができる。より多くの候補ポリシーがあれば、ロボットは適切なポリシーを見つけ、不必要に停止することなく安全にナビゲートすることができる。
【発明を実施するための形態】
【００１８】
対応する符号は、図面のいくつかの図を通して対応する部分を示す。
【００１９】
ＭＰＤＭフレームワークでは、制御対象物のポリシーは、現在の状態の分布からサンプリングし、フォワードシミュレーションによって将来の結果を予測し、最も好ましい結果の母集団を持つポリシーを選択することによって選択される。最良のポリシーを選択することは、影響のある結果を伴う初期条件をサンプリングすることに依存する。
【００２０】
制御対象物には、環境内から選択するための個別の数のポリシーがある。制御対象物は、車両、ロボット、または環境を通って移動するように構成されている他の任意の自律的対象物であってもよい。特定の軌跡を選択する代わりに、制御対象物は、制御対象物が従うべき規則集を提供する一組のポリシーから選択することができる。例えば、ポリシーの１つは、環境内の監視対象物に追従することである。制御対象物が特定の監視対象物に追従するように指示されている場合、制御対象物の軌跡は事前に決定されているのではなく、特定の監視対象物に依存している。
【００２１】
環境のモデルは、静止している障害物（例えば、壁またはドア）と、人とみなされる一組の自由に動く動的なエージェントと、からなる。
【００２２】
ロボットは観測可能なエージェントの状態の推定値を維持する。エージェントｉ（ロボットを含む）のｘi∈Ｘiは、その位置ｐｉ、速度ｖｉ、および目標地点ｇｉからなる。
【数５】
2020511721.tif 000007
ここで、ｐｉ，ｖｉ，ｇｉの各々は二次元ベクトルである。エージェントの動きは単純な動的モデルに従ってモデル化される。このモデルでは、時間の経過と共に積分された加速度によって速度が得られる。力、ひいては加速度は、障害物の影響と目標地点を組み込んだポテンシャルフィールド法を使用して計算される。
【００２３】
ロボットを含むエージェントの数をＮとする。システムの結合状態空間は、Ｘ＝Ｘ１×Ｘ２×…×ＸＮである。集合状態ｘ（ｔ）∈Ｘは、ロボット状態と、時刻ｔでロボットに見えるすべてのエージェントと、を含む。
【００２４】
我々の観測モデルＰ（ｚ│ｘ）はマルコフ行列であると仮定され、結合観測ｚは歩行者の位置である。各歩行者にとって、目標ｇｉはｚを通して直接観測することはできない。これは、顕著な点の小さい組のうちの１つであると想定され、単純ベイズ分類器を使用して推定される。ロボットにとって、目標ｇｒは、より高いレベルのプランナーによって提供される。
【００２５】
エージェントのダイナミクスは、次の微分制約によって定義される。
【数６】
2020511721.tif 000008
アクションａｉ∈Ａｉは、システムダイナミクスを支配する加速度に対応し、エージェントが従うポリシー
【数７】
2020511721.tif 000009
によって決定される。
【００２６】
遷移関数は所与の状態ａｉを新しい状態
【数８】
2020511721.tif 000010
に写像する。したがって、対応する遷移方程式は次のように表される。
【数９】
2020511721.tif 000011
【００２７】
例示的な実施形態では、高レベル閉ループポリシーの個別の組が提示されている。
【数１０】
2020511721.tif 000012
ここで、Ｆｏｌｌｏｗｊは、次のエージェントｊのポリシーを指す。観測可能なエージェントが１０個ある環境内のロボットには、合計１２個の候補ポリシーがある。各ポリシーは、システムの結合状態をポテンシャルフィールド
【数１１】
2020511721.tif 000013
を介したアクションにマッピングする。
【００２８】
単独走行ポリシーを実行するエージェントは、他のすべてのエージェントを障害物として扱い、その目標に向かってそれを導くためにソーシャルフォースモデル（ＳＦＭ）に基づくポテンシャルフィールドを使用する。ｅｐｉ→ｇｉをエージェントｉから目標へ向かう単位ベクトルとする。エージェントに作用する引力は次の式で与えられる。
【数１２】
2020511721.tif 000014
シーン内の他のエージェントとの相互作用は、ＳＦＭに基づいてモデル化されている。
【数１３】
2020511721.tif 000015
ここで、｛ｐ１，ｂｐ｝は人々のためのＳＦＭパラメータであり、ｅｊ→ｉはｊからｉへの単位ベクトルであり、ｄｉ、ｊは異方性因子でスケーリングされたそれらの間の距離である。
【００２９】
同様に、エージェントの近くにある各障害物ｏ∈Ｏは、異なるＳＦＭパラメータ{ａｏ，ｂｏ}に従ってエージェントｉに反発力
【数１４】
2020511721.tif 000016
を及ぼす。
【数１５】
2020511721.tif 000017
【００３０】
合成力は、上記のすべての力の合計である。
【数１６】
2020511721.tif 000018
【００３１】
システムプロパゲーションを支配するアクション（２）は、ａｉ＝ｆｉとして計算される（一般性を失うことなく、単位質量を仮定する）。一例では、ロボット以外のすべてのエージェントが常にこの単独走行ポリシーを使用すると想定されている。他の例では、エージェントのポリシーはロボットによって推定される。
【００３２】
単独走行ポリシーに加えて、ロボットは追従ポリシーを使用して特定の状況に対処することができる。直感的に言うと、群衆の中では、ロボットはスピードを犠牲にしながら人間への経路を見つけるという任務を委任して他の人に追従することを選択するかもしれない。他のエージェントを邪魔することなく（低いフォース）、ロボットが目標に向かって進むことを可能にするため、追従することは雑然としたシナリオで人を追い越すよりも適している可能性がある。リアクティブ追従ポリシーが提案され、単独走行ポリシーに小さな変更が加えられている。
【００３３】
追従ポリシーに従って、ロボットｒはｌと示される別のエージェント（リーダー）に追従することを選択する。この場合、ロボットは目標ではなくリーダーに引き寄せられる。
【数１７】
2020511721.tif 000019
をロボットの位置からリーダーの位置への単位ベクトルとする。引力
【数１８】
2020511721.tif 000020
は、ロボットの軌跡をリーダーに向けて操縦する。他のエージェントや障害物は、（８）で説明したようにロボットをはじき続ける。
【００３４】
ロボットが利用できる最後のポリシーはＳｔｏｐポリシーである。このポリシーでは、ロボットは、次の力に従って、ロボットが完全に停止するまで減速する。
【数１９】
2020511721.tif 000021
ここで、
【数２０】
2020511721.tif 000022
は、ロボットの速度方向の単位ベクトルである。他の種類のポリシーが本開示の範囲内にあることが理解される。
【００３５】
制御対象物が環境の混乱を引き起こさないようにするために、各ポリシーが実装されているときに発生する可能性のある衝突などの壊滅的な結果を発見する必要がある。従来から、ランダムサンプリングが可能性のある結果を予測するために使用されている。制御対象物と監視対象物の位置に基づいてランダムサンプリングを行う。しかし、ランダムサンプリングによる壊滅的な結果の可能性の発見は、環境内でのそのような構成の欠如のために、たとえそれらが合理的に起こり得るとしても、高コストの事象を見逃す可能性があるので計算コストがかかる。つまり、壊滅的な事象や高コストの事象は個別に高い確率密度を持つ可能性があるが、これらの高コストの事象のすべての発生を評価する場合、総確率質量は低くなる。
【００３６】
したがって、ランダムサンプリングの代わりに、影響を受ける結果は、制御対象物および監視対象物の構成をそれらの影響を与える結果に向かって反復して揺動することによって識別することができる。影響力のある結果を特定することで、制御対象物はより高コストの事象または最悪のシナリオを識別する。次に、制御対象物は、発見された可能性が高い高コストの結果の母集団がより良性または望ましいポリシーを選択することができる。つまり、制御対象物は、利用可能な各決定の質を評価し、悪い結果が最も少ない決定を選択している。
【００３７】
図１を参照すると、制御対象物１００上のＭＰＤＭ装置の一実施形態のブロック図が示されている。制御対象物１００は、コントローラ１０４とデータストア１０８とを含む。コントローラ１０４は一般に、知覚モジュール１１２、シード状態生成器１１６、シミュレータ１２０、揺動モジュール１２４、および結果定量化器１２８を含み、データストア１０８は確率分布１３２およびポリシー１３６を含む。以下の定義を含む本出願では、「モジュール」という用語または「コントローラ」という用語は、「回路」という用語と置き換えられてもよい。「モジュール」という用語は、次のものを指すか、その一部であるか、またはそれらを含むことができる。すなわち、特定用途向け集積回路（ＡＳＩＣ）、デジタル、アナログ、またはアナログ／デジタル混合ディスクリート回路、デジタル、アナログ、またはアナログ／デジタル混合集積回路、組み合わせ論理回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コードを実行するプロセッサ回路（共有、専用、またはグループ）、プロセッサ回路によって実行されるコードを格納するメモリ回路（共有、専用、またはグループ）、記載された機能を提供する他の適切なハードウェア構成要素、あるいは、システムオンチップなどにおける上記のいくつかまたはすべての組み合わせである。
【００３８】
コントローラ１０４は、制御対象物１００にコマンドを発行するように構成されている。コマンドは、制御対象物１００の現在の状態および環境内に存在する複数の監視対象物の状態に基づいて、制御対象物１００が最良のポリシーであると決定したポリシー１３６によって決定される。例えば、環境は、廊下、広い部屋、または静止している障害物を伴う他の任意の領域であってもよい。環境はまた、監視対象物として知られている自由に動く動的エージェントからなることもある。監視対象物は、自由に移動し、制御対象物１００から独立している対象物、エージェント、車両、人間などを含む。監視対象物を追跡し、それらの状態を推定することが可能である。知覚モジュール１１２は、制御対象物１００のある近傍内の各監視対象物の状態にわたる分布を推定する。監視対象物の将来の動きを正確に予測することは不可能である。シード状態生成器１１６または揺動モジュール１２４を介して監視対象物の状態が与えられると、シミュレータ１２０が結果を予測する。ＭＰＤＭ装置によって監視される対象物は静止しているおよび／または移動する対象物を説明することができると考えられる。
【００３９】
知覚モジュール１１２は、環境内の監視対象物を探し出し、監視対象物の各々について状態の推定値を維持する。各監視対象物の状態には、位置、速度、および推定された目標（またはポリシー）の値が含まれる。各監視対象物の状態情報は、制御対象物１００に対して定義されてもよい。例えば、一旦識別されると、１つの監視対象物は、制御対象物１００から一定の距離にあり、制御対象物１００に対して一定の速度で移動してもよい。監視対象物の動きは単純な動的モデルに従ってモデル化される。このモデルでは、時間の経過と共に積分された加速度によって速度が得られる。力、ひいては加速度は、障害物の影響と推定される目標地点とを組み込んだポテンシャルフィールド法を使用して計算される。他の種類の運動モデルもまた本開示によって企図される。
【００４０】
制御対象物１００は、知覚モジュール１１２を介して監視対象物の知覚された位置および速度の推定値を維持する。知覚モジュール１１２は、フォワードシミュレーション中に使用するために各監視対象物について状態値の配列を識別し評価する。知覚状態値は、時間の関数として環境の構成を提供する。どのポリシー１３６が破滅的または高コストの事象を回避するのが最良であるかを制御対象物１００が決定するために、制御対象物１００は、初期構成に基づいてすべての可能な軌跡反復から、どのポリシー１３６が衝突などの高コストの事象をもたらす可能性が最も低いかをリアルタイムで決定する。環境の初期構成を決定することに関するさらなる詳細は、２０１５年７月３１日に出願された米国特許出願第１４／８１４，７６６号、第１４／８１４，８５６号、および第１４／８１４，６３０号に説明されており、各々は全体が参照により組み込まれる。
【００４１】
各監視対象物について、推定された目標は監視対象物の位置を通して直接観測することはできない。これは、顕著な点の小さい組のうちの１つであると想定され、単純ベイズ分類器を使用して推定される。制御対象物１００の場合、目標はより高いレベルのプランナーによって提供される。
【００４２】
シード状態生成器１１６は、知覚モジュール１１２から各監視対象物の状態を受け取る。シード状態生成器１１６は初期サンプリング状態を決定する。例えば、知覚モジュール１１２によって推定された初期構成に基づいて、シード状態生成器１１６は、知覚されたすべての監視対象物の推定された位置に基づいてフォワードシミュレーションを開始する状態値を決定する。シード状態生成器１１６は、各対象物の状態に基づいて環境から初期構成をサンプリングする。
【００４３】
別の用途では、すべての対象物の状態の事後分布からのモンテカルロサンプリングを使用してシミュレーションの予想コストを概算した。ランダムサンプリング中に高コストの事象が認識され、見逃されないようにするために、シード状態生成器１１６は影響のある結果を識別する。言い換えれば、影響力のあるまたは高コストの結果は、高コストの結果が制御対象物１００の意思決定により強く影響するため、明示的に検索され、シミュレートされる。例えば、以下により詳細に説明するように、各対象物の現在の状態の状態要素（例えば、位置、速度など）は、高い値の結果（すなわち、確率とコストの積）を見つけるためにサンプリング中に揺動することができる。事後分布からのランダムサンプリングの代わりに、悪い結果を構成するために最適化プロセスが開始される。一実施形態では、影響を受ける構成を最適化し発見するためにエニータイムアルゴリズムが使用される。別の実施形態では、以下でさらに説明するように、バックプロパゲーションを使用して影響力のある結果を発見することができる。影響力のある結果を発見して最適化すると、必要なサンプリング数が減り、悪い結果を発見する可能性が高まる。影響力のある結果は、シード状態の状態要素をどのように揺動するかを示す。一旦揺動されると、揺動された入力はシミュレータ１２０を通過する。シード状態と同様に、揺動された入力は結果定量化器１２８に入れられて、揺動された結果を揺動された確率と揺動されたコストとの積として決定する。揺動されたコストはコスト関数を使用して決定され、揺動された確率は確率分布１３２から決定される。
【００４４】
ＭＰＤＭシステムの例示的な実施形態についてのさらなる詳細が説明される。この実施形態では、非ホロノミック運動モデルが、観測された各エージェントｉおよびロボットに対して使用される。ロボットは、観測された各エージェントの状態、すなわちその位置、速度、角速度および推定されたポリシーの確率的推定値を維持する。エージェントのポリシーπｉ＝（ｖｄｅｓ，ｇｓｕｂ）は、所望の速度ｖｄｅｓで副目標ｇｓｕｂに向かって移動するという意図を表す。集合状態ｘｔ∈Ｘは、時刻ｔにおけるロボットおよびすべての観測されたエージェントの状態からなる。本開示を通して、ｘ０はすべてのエージェントの集合状態および現在のロボットの状態を指す。確率推定値Ｐ（ｘ０）は、歩行者の位置の過去の観測に基づいている。過去のエージェントの軌跡に基づいて、いくつかの方法をＰ（ｘ０）に対して使用することができる。例示的な実施形態では、カルマンフィルタを使用して位置および速度を推定し、一方、ナイーブベイズ分類器はエージェントのポリシーを推測するために使用される。ロボットのポリシーπは、一組の閉ループポリシーπの中から選択される。
【００４５】
初期サンプリングされた構成ｘ０は、遷移関数Ｔ：Ｘ→Ｘを再帰的に適用することにより、（ｔ＝１、．．．、Ｈによる）Ｈ個の時間ステップでフォワードシミュレーションして、軌跡を生成する。
【数２１】
2020511721.tif 000023
ここで、ｘｔ∈Ｘは、フォワードシミュレーションの時刻ｔにおけるロボット状態とすべてのエージェントからなる集合状態である。遷移関数Ｔ（）は、他のすべてのエージェントとの相互作用を考慮しながら各エージェントが実行している軌跡を捉える。
【００４６】
コスト関数Ｃ（Ｘ（ｘ０））はシミュレーションの結果にスカラー値を割り当てる。例示的な実施形態では、予測された軌跡に沿ってロボットが環境内の他のエージェントにもたらす不都合（非難）を不利にし、その目標に向かうロボットの進行に報いる（進行）コスト関数が使用される。非難のために、最も近いエージェントまでの距離をロボットによって環境に引き起こされる潜在的な擾乱の代用として使うことができる。
【数２２】
2020511721.tif 000024
ここで、ｄｒ，ｊ（ｋ）はロボットとエージェントｊとの間の距離であり、｜｜ｖｒ（ｋ）｜｜は時間ステップｋにおけるロボットの速度である。ｕはステップ関数であり、引数が≧０のとき１であり、それ以外のとき０となる。
【００４７】
進行のために、ロボットは計画期間中の遠距離について励まされる。
【数２３】
2020511721.tif 000025
ここで、ｐｒ（ｋ）は時間ステップにおけるロボットの位置ｋであり、
【数２４】
2020511721.tif 000026
はロボットの現在位置から目標までの単位ベクトルｇｒである。結果として得られるコスト関数は、両方の線形結合である。
【数２５】
2020511721.tif 000027
ここで、ａは重み係数である。他のコスト関数もこの開示によって企図されている。
【００４８】
リスクを意識したＭＰＤＭでは、発生する可能性がある最も影響力のある（おそらく高コストの）結果に基づいてロボットのポリシーが評価される。そのような結果は、サンプリングによって近似されたコスト関数の期待値の代わりに、確率的コスト表面最大値｛Ｐ（ｘ０）Ｃ（Ｘ（π，ｘ０））｝を最適化することによって発見される。
【００４９】
以下のアルゴリズム１は、リスクを意識したＭＰＤＭのポリシー選択について説明している。初期構成の確率分布、Ｐ（ｘ０）、一組の候補ポリシーπ、およびフォワードシミュレーションバジェットＮπが与えられると、各候補ポリシーは、計算バジェット内で発見された最も影響力のある（最悪の場合）結果に従って評価（スコア付け）される。
【００５０】
目的関数Ｐ（ｘ０）Ｃ（Ｘ）は、エージェントの数および初期構成の複雑さに応じて複数の極小値を持つことができる。徹底的な探索を通して大域的最大値を見つけることは、大きな状態空間のために計算上不可能である。目的は、たとえ最高値の構成でなくても、その値が大域的最適値に匹敵する影響力のある構成を素早く見つけることである。
【００５１】
次のアルゴリズム１は、リスクを意識したＭＰＤＭのポリシー選択を説明している。つまり、アルゴリズム１は、影響力のある、またはより悪い場合の結果を識別する。
アルゴリズム１  リスクを意識したＭＰＤＭのためのポリシー選択
１：ｆｕｎｃｔｉｏｎポリシー選択ループ（Ｐ（ｘ），Π，Ｎπ）
２：ｆｏｒ  π＝Π  ｄｏ
３：初期化Ｕπ，ｎ←０
４：ｗｈｉｌｅ  ｎ＜Ｎπ  ｄｏ
５：サンプルｘ０〜Ｐ（ｘ）
６：Ｕ＊，ｎｏｐｔ←Ｏｐｔｉｍｉｚｅ（ｘ０，π）
７：ｎ←ｎ＋ｎｏｐｔ
８：Ｕπ←ｍａｘ｛Ｕ＊，Ｕπ｝
９：ｅｎｄ  ｗｈｉｌｅ
１０：ｅｎｄ  ｆｏｒ
１１：π＊←ａｒｇｍｉｎπＵπ
１２：ｅｎｄ  ｆｕｎｃｔｉｏｎ
【００５２】
アルゴリズムは、５行目に示すように、初期設定をＰ（ｘ０）からサンプリングし、それを最適化し、６行目に示すように目的関数値がＵ＊である局所最適値に収束するまで、サンプリングされた構成を反復的に影響の大きい結果に向けて揺動する。最適化手順によって使用されるフォワードシミュレーションの数ｎｏｐｔは、その収束速度に対応する。収束時に、新しい初期構成がサンプリングされ、このプロセスは、フォワードシミュレーションバジェットＮπが消費されるまで繰り返される。ポリシーＵπの有用性は、最も影響力のある（最も価値の高い）設定である。リスクが最も少ないポリシーが選択される。
【００５３】
図１を続けて参照すると、初期構成の確率分布Ｐ（ｘ０）が提供されている。ここで、ｘ０は、現時点でのすべての対象物の状態要素、候補ポリシーのセットΠ１３６、およびフォワードシミュレーションバジェットＮπを表す。各候補ポリシー１３６は、計算バジェット内で発見された最も影響力のあるまたは最悪の場合の結果に従って評価およびスコア付けされる。結果（例えば、確率とコストの積）は、対象物の数および初期構成の複雑さに応じて、複数の極小値を有する。徹底的な探索を通して大域的最大値を見つけることは、大きな状態空間のために計算上不可能である。衝突は非常に不利になるので、その値が大域的最適値に匹敵する構成は衝突である可能性があり、したがって意思決定に影響を与えるはずである。
【００５４】
以下でさらに説明するように、シミュレータ１２０はシード状態生成器１１６からシード状態を提供される。シード状態に基づいて、シミュレータ１２０は、ある計画期間まで結合状態のフォワードシミュレーションを行う。結合状態は、すべての監視対象物および制御対象物１００の状態値である。シミュレータ１２０は、制御対象物１００を誘導する可能性のある各ポリシー１３６について、環境内の各対象の前方移動をシミュレートする。フォワードシミュレーションは、制御対象物１００が可能なポリシー１３６のそれぞれを実行し、制御対象物１００によって知覚可能な各監視対象物について可能なシナリオのすべてを通して反復することを可能にする。すなわち、シミュレータ１２０は、制御対象物１００が異なるポリシー１３６を実行している間に、監視対象物の各々について動きのあり得るバリエーションの各々をフォワードシミュレーションする。各シミュレーションでは、ポリシー１３６の各々についてコストおよび確率を決定することができる。確率は、データストア１０８に含まれる確率分布１３２から決定することができる。確率は生成されたシード状態に基づく。
【００５５】
各シード状態および各ポリシー１３６に対するコストは、コスト関数を用いて計算される。コスト関数は、２つの異なる構成要素、すなわち（ｉ）ロボットが環境内で引き起こす潜在的な擾乱を捕捉する非難、および（ｉｉ）制御対象物１００の目標に向かってなされた進行を示す進行からなる。制御対象物１００と最も近い監視対象物との間の距離は、制御対象物１００によって環境に引き起こされる潜在的な擾乱の代用として使用される。計画期間中の制御対象物１００もまた、遠距離について励まされる。サンプリングされた初期構成に対して、予測される軌跡はコスト関数を用いて評価される。高い価値の結果は、制御対象物１００が監視対象物をそれらに接近しすぎるように動かすことによって不都合を生じさせ、したがって高い非難を蓄積するということに対応する。制御対象物１００はまた、それが目標に向かって成し遂げる進行に従って報酬を与えられる。
【００５６】
計画期間は、シミュレータ１２０が動きを予測またはシミュレートする未来までの時間、例えば３秒である。コスト関数は、非難と進行の両方の線形結合として計算される。さらに、予想コストを概算するために、サンプリング技法が使用される。サンプリング技法は、結合状態のフォワードプロパゲーションをシードし、それが一組の異なる将来の軌跡をもたらす。したがって、制御対象物の１００の動作は、監視対象物の平均状態推定値だけでなく、平均状態推定値に関連する不確実性も反映している。
【００５７】
結果定量化器１２８は、生成されたシード状態について確率とコストとの積として結果を計算する。結果は、ポリシー１３６およびシード状態に基づくスコアを示す。スコアは、それぞれのポリシー１３６を選択することがシード状態条件の下でどれほど良いか悪いかを決定する。このフォワードシミュレーションは、提示された条件または構成の下でどのポリシー１３６が最も理想的であるかを決定するために、各ポリシー１３６および多くのシード状態について反復して行われる。
【００５８】
揺動モジュール１２４はまた、シード状態生成器１１６からシード状態を受け取り、これらの状態を揺動（perturb)する。揺動モジュール１２４は、ますます影響力のある結果に向かってシード状態を反復的に揺動することによってシード状態を最適化する。最適化手順は、可能な限り少ないフォワードシミュレーション（または反復）でその最も近い局所最適条件に収束するべきである。
【００５９】
バックプロパゲーションは、ますます影響力のある結果に向かってシード状態を反復的に揺動するために使用することができる。ディープニューラルネットワークは、比較的単純な関数を構成（連鎖）することによって複雑な関数をモデル化する。同様に、フォワードシミュレーションは単純なワンステップ遷移関数を使用してシステムの複雑なダイナミクスを捉える。コスト関数は軌跡に沿って計算されたコストの線形結合であるので、フォワードシミュレーションは入力初期構成に基づいて軌跡コストＣ（Ｘ（ｘ０））を出力するディープネットワークとして概念化することができる。関数は、最終時刻から遡って初期時刻までの軌跡のコストを累積することができる。このバックプロパゲーションは、最終時刻から開始して初期構成に遡る軌跡を見つけることによって、最も影響力のある結果を識別することができる。
【００６０】
Ｌｔ（ｘｔ）を状態ｘｔについて時間ステップｔで発生したコストとする。最終時刻Ｈから遡って初期時刻ｔ＝０までの軌跡のコストを累積する関数Φ（ｔ，Ｘ）を次のように定義する。
【数２６】
2020511721.tif 000028
目的コストは（Ｘ）＝Φ（０，Ｘ）と表すことができる。Φを次のように再帰的に定式化することができる。
【数２７】
2020511721.tif 000029
【数２８】
2020511721.tif 000030
を計算したい。時間ステップＨでのコストの勾配は、
【数２９】
2020511721.tif 000031
式（１２）を適用し項を展開することにより、時間ステップＨからｔ＝０まで遡る勾配を繰り返し計算することができる。
【数３０】
2020511721.tif 000032
遷移関数の勾配を効果的に計算することができる限り、式１４を用いて∇ｘ０Ｃ（Ｘ）を効率的に計算することができる。
【００６１】
この開示は、エージェントに使用される運動学的モデルが勾配の質に影響を与えることを認識している。代替的手法では、より現実的なシミュレーションのために横方向の動きを制限するために、ヒューリスティックを持つすべてのエージェントに対して単純な二重積分器モデルを使用することができる。単純なモデルは速いフォワードシミュレーションには有用であったが、ヒューリスティックには行列
【数３１】
2020511721.tif 000033
の中でゼロとして現れる硬いしきい値が含まれている。結果として、（式１４のボックスによって強調されているように有用な勾配は切り捨てられ、効果的なバックプロパゲーションを妨げる。したがって、横方向の力の影響を捉えるために、エージェントの状態を角速度で増大させる非ホロノミック運動学モデルの使用が好ましい。このモデルは、フォワードシミュレーションにおいて現実的な人間の動きを維持しながらＴの微分可能性を保証する。
【００６２】
具体的には、以下に説明するように、ヘッドソーシャルフォース（ＨＳＦＭ）がすべての歩行者に使用され、一輪車のようなモデルがロボットに使用される。ロボットの場合、正味の力はＳＦＭ
【数３２】
2020511721.tif 000034
を使用して計算されるが、車輪付きプラットフォームには固有の制約があるため、
【数３３】
2020511721.tif 000035
を低レベル速度コントローラのための準拠基準信号（Ｖｒｅｆ，Ｗｒｅｆ）に変換する。
【数３４】
2020511721.tif 000036
先読み距離ｌは、横方向力を補償するためにロボットが回転する傾向を決定する。次いで、ロボットの状態は、独立した車輪速度コントローラの各々についての一次モデルと一輪車のプラントモデルとを使用して基準信号に向かってプロパゲートされる。
【００６３】
図５を参照すると、提案された遷移関数層Ｔ（ｘｔ）は遷移関数の正確な勾配を計算することを可能にする。式１４はバックプロパゲーションによって効率的に実装することができ、ここで、
【数３５】
2020511721.tif 000037
はフォワードプロパゲーション中に計算され、キャッシュされる。
【００６４】
図６Ａおよび図６Ｂは、２つのエージェントからなる単純な初期構成ｘ０、およびその目標ｇｒに向かって単独走行ポリシーを実行するロボットによるバックプロパゲーションを用いた勾配降下の１回の反復を示す図である。ヒューリスティックに基づく確率論的勾配法（ＳＧＡ）は、各エージェントについておおよその勾配を計算し、発散を避けるために一度に１つのエージェントを揺動した。対照的に、正確な勾配を計算することによって、発散することなくすべてのエージェントを同時に揺動することができる。この勾配は、エージェント間の相互作用や静止している障害物も説明する。
【００６５】
バックプロパゲーション、または影響のある結果を識別するための当技術分野で知られている他の任意の方法を使用して、シード状態を揺動し、揺動されたシード状態を使用してシミュレートすることができる。揺動されたシード状態のフォワードシミュレーションは、揺動された結果をもたらす。可能なポリシー１３６の各々についての複数の結果（確率とコストの積）は、どのポリシー１３６が最良の最悪シナリオを有するかを識別するために使用される。すなわち、最良の最悪シナリオは、各ポリシー１３６に対するすべてのフォワードシミュレーションのうち、ニアミスを含む、最良または最も良性の高コストのシナリオを有するポリシーである。最良のポリシーが識別されると、コントローラ１０４は選択されたポリシーに基づいてコマンドを発行する。
【００６６】
データストア１０８に含まれる任意の数のポリシー１３６があってもよい。例示的な実施形態では、ポリシー１３６は単独走行し、監視対象物のうちの１つに追従し、停止する。単独走行ポリシーを実行する制御対象物１００は、監視対象物をすべて障害物として扱い、それを制御対象物１００の目標に向かって導くためにソーシャルフォースモデル（ＳＦＭ）に基づくポテンシャルフィールドを使用する。ＳＦＭは、“Ｓｏｃｉａｌ−ａｗａｒｅ  ｒｏｂｏｔ  ｎａｖｉｇａｔｉｏｎ  ｉｎ  ｕｒｂａｎ  ｅｎｖｉｒｏｎｍｅｎｔｓ，”ｉｎ  Ｅｕｒｏｐｅａｎ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍｏｂｉｌｅ  Ｒｏｂｏｔｉｃｓ，ｂｙ  Ｇ．Ｆｅｒｒｅｒ，Ａ．Ｇａｒｒｅｌｌ，ａｎｄ  Ａ．Ｓａｎｆｅｌｉｕ，２０１３，ｐｐ．３３１−３３６に記載されており、これは参照により組み込まれる。この実施形態では、他の実施形態では監視対象物のポリシーが推論されてもよいが、すべての監視対象物が単独走行ポリシーに従うと仮定する。
【００６７】
制御対象物１００は、特定の状況に対処するためにフォローポリシーを使用することもできる。群衆の中では、制御対象物１００は、速度を犠牲にするが別の対象物への経路を見つけるというタスクを委任する監視対象物のうちの１つに追従することを選択することができる。追従は、他のエージェントを邪魔することなく制御対象物１００がその目標に向かって進むことを可能にし、結果として非難を少なくするので、雑然としたシナリオで監視対象物を追い越すよりもより適切であり得る。
【００６８】
フォローポリシーに従って、制御対象物１００は、リーダーとみなされる監視対象物のうちの１つを追従することを選択する。フォローポリシーは、制御対象物１００が目標ではなくリーダーに引き付けられることを指示している。停止ポリシーは、制御対象物１００に静止するように単に指示する。どのポリシー１３６が最も良性の高コストシナリオをもたらすかを制御対象物１００がリアルタイムで判断しているので、制御対象物１００のポリシー１３６は絶えず変化し、再評価されている。一組のポリシー１３６を評価するという低い計算要件のために、制御対象物１００は頻繁に再計画することができる。頻繁な再計画は、不確実性の影響を減らすのに役立つ。
【００６９】
次に図２を参照すると、制御対象物１００がＭＰＤＭを設定するであろう環境の図が示されている。環境は、制御対象物１００、壁２０４または任意の種類の静止対象物、第１の監視対象物２０８、第２の監視対象物２１２、および制御対象物１００が到達するための標的２１６または目標を含む。図１に関して説明したように、制御対象物１００はデータストア１０８に結合されたコントローラ１０４を含む。この環境では、制御対象物１００は、知覚モジュール１１２を用いて壁２０４、第１の監視対象物２０８、および第２の監視対象物２１２を識別する。
【００７０】
知覚モジュール１１２は、監視対象物２０８、２１２の両方について位置、速度、および推定される目標を示す値を決定する。決定された値は監視対象物２０８、２１２に対する状態である。監視対象物２０８、２１２は環境内を自由に移動するので、各監視対象物２０８、２１２の目標は知覚されることはできず、予測されるだけである。さらに、各監視対象物２０８、２１２は、無限の数の軌跡選択肢を有し、いくつかの選択肢が図２に示されている。第１の監視対象物２０８は、制御対象物１００が評価しなければならない軌跡２２０、２２４の複数の選択肢を有し、第２の監視対象物２１２は、制御対象物１００が同様に評価しなければならない複数の軌跡２２８、２３２を有する。
【００７１】
位置、速度、および推定された目標に基づいて、シード状態生成器１１６は、各ポリシー１３６のシミュレーション中に使用するために監視対象物２０８、２１２の初期構成またはシード状態をサンプリングする。シミュレータ１２０は、可能性のあるポリシー１３６の各々についてサンプリングされた初期構成を使用してシナリオの結果を決定する。次に揺動モジュール１２４は、初期構成を揺動して、より悪い結果またはより高コストの事象を生成する。揺動は、当技術分野で知られているいくつかの方法を使用して実施することができ、そのうちの１つは、上述のようにバックプロパゲーションである。初期構成を揺動した後に、シミュレータ１２０は揺動された状態に対してシミュレーションを実行し、次に結果定量化器１２８を用いて揺動されたシナリオの結果を決定する。初期構成は揺動され、所定の期間についてシミュレートされる。
【００７２】
所定の期間は、制御対象物１００がポリシーを選択しなければならない時間量、またはポリシーを選択する前に一定の反復回数であってもよい。所定期間についてシミュレーションを実行した後に、制御対象物１００は、発見された可能性が高い高コストの結果の母集団がより良性またはより望ましいポリシーを選択する。つまり、選択されたポリシーには、最も良性の最悪の場合の、高コストの事象が含まれている。ポリシーのうちの１つを選択することは、複数の軌跡２３６、２４０のうちの１つに従う制御対象物１００をもたらす。標的２１６に向かって進むために、制御対象物１００は、単独走行が最も良性の高コストの事象を伴うポリシーであり得ることを決定することができ、それによって標的２３６への直接的な軌跡が得られる。あるいは、制御対象物１００は、第１の監視対象物２０８または第２の監視対象物２１２のいずれかに追従することが最も良性の高コストの事象をもたらすことになると決定することができる。第１の監視対象物２０８に追従すると、符号２４０などの軌跡となり、制御対象物１００は、第１の監視対象物２０８の後ろに追いつくように加速し、同様の速度で第１の監視対象物の後ろに留まる。他の選択肢として、制御対象物１００は、異なるポリシーが最も良性の高コストの事象をもたらすまで停止して所定の位置に留まることができる。
【００７３】
ポリシーが選択されると、１つまたは複数の監視対象物のうちの１つに追従するように軌跡を変更し、同じ位置に留まり、前進し、減速し、加速し、またはポリシーに従うその他の指示などの、コマンドが制御対象物１００に発行される。制御対象物１００はリアルタイムでポリシーを選択しているので、制御対象物１００は常にどのポリシーが最も良性の高コストの事象をもたらすかを計算し、計算に従ってどのポリシーを順守するかを更新している。
【００７４】
次に図３を参照すると、ＭＰＤＭ装置の一実施形態のフローチャートが示されている。制御対象物１００は、環境内のすべての監視対象物の状態（例えば、位置、速度など）を常に認識しており、初期構成による可能性のある結果に基づいて軌跡を決定している。軌跡を決定するために、制御対象物１００は各ポリシー１３６を評価する。第１の制御は、すべての可能性のあるポリシー１３６から評価すべきポリシーを選択する（ステップ３００）。次に、ステップ３０４で、制御は、監視対象物２０８、２１２の各々について状態データを受け取る。状態データは、知覚モジュール１１２によって取得される。ステップ３０８で、シード状態生成器１１６を使用して、監視対象物２０８、２１２各々のシード状態が生成される。シード状態は、シミュレーションが入力として使用する初期構成に対応している。次いで、ステップ３１２で、シミュレータ１２０は、選択されたポリシーおよびシード状態を使用してシミュレートする。ステップ３１６で、結果が、結果定量化器１２８を使用してコストに確率を乗じたものとして定量化される。上述したように、コスト関数は、環境内の邪魔な対象物に対する非難、ならびに標的２１６に向かう進行の組み合わせとして計算される。確率は確率分布１３２から決定される。
【００７５】
ステップ３２０で、制御は条件が満たされたかどうかを判定する。条件は、時間量、揺動数もしくは反復数、制御対象物１００によってどのポリシーが現在実装されているかに応じたポリシー固有の条件、または予め決められている他の任意の条件など、様々な所定の条件であってもよい。言い換えれば、ステップ３２０は、どのポリシーが最も良性の高コスト事象をもたらすかを決定するためにシード状態が揺動されシミュレートされる回数を制御する。
【００７６】
条件が満たされていない場合、制御はステップ３２４に進み、そこでシード状態が揺動される。すなわち、シード状態の要素（すなわち、位置、速度など）は、バックプロパゲーションなどの方法を使用して、ますます影響力のある結果に向かって反復的に揺動される。この揺動は、揺動されたシード状態の構成を高コストの事象をもたらす結果に向かって導く。次に、ステップ３２８で、シミュレータ１２０は、選択されたポリシーと揺動されたシード状態を使用してシミュレートする。結果定量化器１２８は次に、ステップ３３２で、揺動されたコストと揺動された確率との積として揺動された結果を定量化する。揺動されたコストおよび揺動された確率は、揺動されたシード状態に基づいて決定される。シード状態は、条件が満たされるまで、ますます影響力のある結果に向かって反復的に揺動される。その時点で、制御は、各ポリシー１３６がシミュレートされたか否かを判定する（ステップ３３６）。そうでなければ、制御は始めに戻って、ステップ２００で異なるポリシーを選択する。
【００７７】
ステップ３３６で各ポリシーがシミュレートされたと制御が判断すると、ステップ３４０で各ポリシーについてスコアが決定される。ステップ３４４で最良のスコアを有するポリシーが選択される。最良のスコアは、最も良性の高コスト事象の数が最も少ないことを示すスコアとして説明することができる。これにより、制御対象物１００に対して最良の可能なシナリオが保証される。すなわち、制御対象物１００は、発見された可能性が高い高コストの結果の母集団がより良性またはより望ましいポリシーを選択する。例えば、より望ましいポリシーは、選択されたポリシーが衝突またはニアミスなどをもたらす機会がより低いことを含む。ポリシーが選択されると、ステップ３４８で、制御は、ポリシーに関連するコマンドを制御対象物１００に発行する。前述のように、コマンドは加速、減速などのコマンドであってもよい。制御は、フローチャートに示されているＭＰＤＭをリアルタイムで実行して、どの時点においても、どのポリシー１３６が、制御対象物１００が追従するのに最良であるかを判断する。
【００７８】
概念実証として、シミュレーションが行われた。シミュレートされた環境は、ロボットが目標に到達しようとしている間に速度や方向をランダムに変更できる１５のエージェントが自由に移動できるオープンスペースからなる。ＭＰＤＭは、突然の予期せぬ環境の変化に対応するために、迅速な意思決定と再プランニング（３００ｎｍｓごと）に依存している。
【００７９】
歩行者が突然停止したり、速度が遅くなったり速度が上がったりすることがある。これは、２つの接頭のガウス分布の混合である各エージェントの優先速度にわたる分布としてモデル化することができ、それはスピードアップまたはスピードダウンを考慮したσ＝０．４ｍ／ｓを有する推定される最も可能性の高い現在の速度、ならびに突然停止することを考慮した０とσ＝０．２ｍ／ｓにピークを持つ接頭のハーフガウス分布を中心としたものである。
【００８０】
歩行者も信号なしで突然方向を変えることができる。各エージェントの方向の不確実性を説明するために、ロボットはエージェントの推定される最も可能性の高い方向を中心としたガウス分布とエージェントのウェイポイントを決定するσ＝３０°を仮定する。すべての接頭のガウス分布はμ±１．５σに制限されている。歩行者の副目標は、ナイーブベイズ分類器を使用して一組の顕著なポイントから推測される。
【００８１】
サンプリングされた初期構成に対して、予測される軌跡はコスト関数を用いて評価される。高コストの結果は、ロボットが他のエージェントに近づきすぎて他のエージェントに迷惑をかけ、その結果、高い非難を累積するという結果に相当する。ロボットはまた目標に向かって進む進行に従って報酬を与えられる。これらのメトリックについてのさらなる説明は、“Ｆａｓｔ  ｄｉｓｃｏｖｅｒｙ  ｏｆ  ｉｎｆｌｕｅｎｔｉａｌ  ｏｕｔｃｏｍｅｓ  ｆｏｒ  ｒｉｓｋ−ａｗａｒｅ  ＭＰＤＭ”ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｒｏｂｏｔｉｃｓ  ａｎｄ  Ａｕｔｏｍａｔｉｏｎ，２０１７に見出すことができ、これは参照により全体が組み込まれる。
【００８２】
ロボットから５ｍ以内に少なくとも１人のエージェントが存在する、１６，０００のランダムに選択されたシミュレーションシナリオからなるデータセットが生成される。次に、ロボットの近隣にいるエージェントの数に基づいてそれらを並べ替える。目的関数Ｐ（ｘ０）Ｃ（Ｘ）は、考慮されるエージェントの数と共に線形的に増減する高次元連続空間に属する無数の可能な初期構成にわたって定義される。各シナリオについて、２，０００のランダムサンプルを最適化し、最悪の場合の結果を使用して大域的最適条件を近似した。
【００８３】
次に、ロボットの近くにいるエージェントの数を変えて、シナリオの複雑さと状態空間の次元を増加させる。信頼できるリアルタイムのポリシー評価のためには、影響力のある結果を迅速に検出しなければならない。データセット内の最悪の結果の一定の割合（５０％）を達成するために各アルゴリズムで必要な反復回数を見積もる（影響力のある結果を見つける）。各アルゴリズムについて、実験は各シナリオで１，０００回実行される。データセットに対してブートストラップサンプリングを（置換と併せて）使用して、それらの性能の平均と標準誤差を推定する。
【００８４】
確率的勾配上昇は、単純化されたコスト関数のエージェント固有の近似的な勾配を計算する。これらの近似によって生じる発散を制限するために、確率的勾配はヒューリスティック関数を用いてランク付けされ、最も有望なエージェントのみが一度に揺動される。エージェントの数が少ないシナリオではうまく機能するが、この方法は、より困難な混雑した設定には適さない。図７は、環境の複雑さが増すにつれてすべてのアルゴリズムが影響力のある結果を見つけるのに時間がかかるが、ＳＧＡの性能は４つ以上のエージェントで急激に悪化することを示している。６つのエージェントを超えると、サンプリングされた初期設定から局所最適値に収束するのに長い時間がかかるため、ランダムサンプリングと同じぐらい劣った性能を発揮する。他方、バックプロパゲーションは正確な勾配を計算するのでこれらの制限を克服し、すべてのエージェントは同時に発散することなく更新することができる。
【００８５】
シミュレートされた環境での６時間のナビゲーションを通して、提案された手法はＳＧＡとは異なり、大規模なポリシーセットを確実に評価できることが実証された。各シミュレーションの「エポック」は、エージェント状態のランダムな初期化とそれに続く粒度Δｔ＝０．１５ｓでの５分間のシミュレーション実行からなる。シミュレータでは、観測値ｚは、エージェントの位置、速度、および向きの相関関係のない変数を含む定常ガウス分布を使用してモデル化される。スケールファクタ
【数３６】
2020511721.tif 000038
でこの不確実性をパラメータ化する。対応する対角共分散行列はｄｉａｇ
【数３７】
2020511721.tif 000039
により表される。目標を揺動せず、角速度を仮定しない（不確定性を無視する）。これらの不確実性は事後状態推定Ｐ（ｘ│ｚ）においてプロパゲートされる。
【００８６】
シミュレーション実験は、ロボットの計算能力を模倣するために、Ｉｎｔｅｌ  ｉ７プロセッサと８ＧＢのＲＡＭで実行される。突然の変化に対応するために、ＭＰＤＭは迅速な再計画に頼っている。ロボットは、効果的なリアルタイムナビゲーションのために３００ｍｓごとに再計画しなければならない。リスク認識ＭＰＤＭの性能は、２つのポリシー候補セット（１０個のポリシーを含む大規模候補セットと２個のポリシーを含む小規模候補セット）を使用して評価される。
１）２つのポリシー−｛単独走行、停止｝−ロボットは最大速度（１．５ｍ／ｓ）で目標に向かってまっすぐ進むことを評価し、危険を感じると停止する。
２）１０個のポリシー−｛（高速、中速、低速）ｘ（まっすぐ、左、右）、停止｝−最大速度で目標に向かってまっすぐ進むのではなく、ＭＰＤＭはまた中速（０．９ｍ／ｓ）または低速（０．２ｍ／ｓ）で進むことを選択してもよい。同時に、ロボットは単独走行のように目標にまっすぐ進むのではなく、目標の左または右に副目標を生成することも選択することができる。
【００８７】
到達した目標ごとの停止時間、および目標までの距離で正規化された非難（移動距離あたりの非難）を記録する。停止時間は、プランナーが安全なポリシーを見つけられなかったことを示す。より大きなポリシーセットでは、ロボットは安全なポリシーを見つける可能性が高くなり、停止する頻度は少なくなる。しかし、ロボットは、そのポリシーセットを十分に迅速に評価できない場合には、環境の突然の変化に対応できず、非難が蓄積される。理想的には、最小限の停止と進行の動作で、ロボットが安全（低い非難）に移動できるようにする。
【００８８】
図８は、ＳＧＡの非効率性が性能のボトルネックになる様子を示している。ＳＧＡは小さいポリシーセットで安全（低い非難）に移動できるが、しばしば安全なポリシーを見つけることができずに停止する。１０個のポリシーでは、ＳＧＡは影響力のある結果を十分な速さで見つけることができず、結果として高い非難をもたらす。提案された方法、ＢＰはリアルタイムで信頼できる大規模なポリシーセットを評価することができ、それはナビゲーション性能を著しく改善する。
【００８９】
例示的な実施形態では、システムは、追跡および位置特定に使用されるＶｅｌｏｄｙｎｅ  ＶＬＰ−１６レーザスキャナを装備した差動駆動プラットフォームであるＭＡＧＩＣロボット上で実装される。ＬＣＭはプロセス間通信に使用される。３００ｍｓごとに、ＭＰＤＭは一組のポリシーを評価し、最もリスクの低いものを選択する。ポリシーの選択は遅いが、ポリシー自体が５０Ｈｚで実行されているのでロボットは反応する。
【００９０】
７人のボランティアに、４５分間、オープンスペースの周囲の印を付けた点に向かって移動するように依頼した。図９は、ロボットが目標に向かって進んでいる間に、ボランティアが３つの固定シナリオを繰り返すように依頼された９０分間の実世界実験のデータを示している。我々の提案した手法とＳＧＡの両方について、各シナリオが１５分間繰り返された。シミュレーションで観測されたように、ＳＧＡはより大きなポリシーセットを確実に評価するには遅すぎ、我々のロボットに展開するには安全ではなかった。２つのポリシー（紫）でＳＧＡを使用すると、ロボットは安全なポリシーを見つけられずに頻繁に停止する。私たちの提案した方法（緑）はリアルタイムで１０個のポリシーを確実に評価することができ（２つのポリシーしかないＳＧＡと比較して非難に似ている）、その結果、安全なポリシーを見つける可能性が高くなる（短い停止時間）。
【００９１】
前述の説明は、本質的に例示的なものにすぎず、本開示、その適用、または使用を限定することを決して意図するものではない。本開示の広範な教示は様々な形態で実装することができる。したがって、本開示は特定の例を含むが、図面、明細書、および添付の特許請求の範囲を検討すれば他の修正が明らかになるので、開示の真の範囲はそのように限定されるべきではない。本開示の原理を変更することなく、方法内の１つまたは複数のステップを異なる順序で（または同時に）実行することができることを理解されたい。さらに、各実施形態は特定の特徴を有するものとして上記に説明されているが、本開示の任意の実施形態に関して説明されたこれらの特徴のうちの任意の１つまたは複数は、他の実施形態のいずれかの特徴において実装、および／またはその組み合わせが明示的に記述されていなくても組み合わせることができる。言い換えれば、記載された実施形態は相互に排他的ではなく、１つまたは複数の実施形態の互いの置換は、本開示の範囲内に留まる。
【００９２】
要素間（例えば、モジュール間、回路要素間、半導体層間など）の空間的および機能的関係は、「接続される」、「係合される」、「結合される」、「隣接して」、「隣に」、「上部に」「上方に」「下方に」「配置される」などの様々な用語を用いて記述される。第１の要素と第２の要素との間の関係が上記開示において説明されている場合に、「直接的」であると明示的に記載されていない限り、その関係は第１の要素と第２の要素との間に他の介在要素が存在しない直接関係であり得るが、しかし、第１の要素と第２の要素との間に１つまたは複数の介在要素が（空間的にまたは機能的に）存在する間接的な関係もあり得る。本明細書で使用される、Ａ、Ｂ、およびＣのうちの少なくとも１つというフレーズは、非排他的論理ＯＲを使用して、論理（Ａ  ＯＲ  Ｂ  ＯＲ  Ｃ）を意味すると解釈されるべきであり、「Ａの少なくとも１つ、Ｂの少なくとも１つ、およびＣの少なくとも１つ」を意味すると解釈されるべきではない。
【００９３】
図面において、矢尻で示すように、矢印の方向は、概して、図にとって重要な情報（データまたは命令など）の流れを示す。例えば、要素Ａと要素Ｂが様々な情報を交換するが、要素Ａから要素Ｂに送信された情報が図に関連する場合、矢印は要素Ａから要素Ｂを指すことができる。この一方向の矢印は、他の情報が要素Ｂから要素Ａに送信されないことを示唆しない。さらに、要素Ａから要素Ｂに送信された情報に対して、要素Ｂは、その情報に対する要求またはその受信確認を要素Ａに送信することができる。
【００９４】
以下の定義を含む本出願では、「モジュール」という用語または「コントローラ」という用語は、「回路」という用語と置き換えられてもよい。「モジュール」という用語は、次のものを指すか、その一部であるか、またはそれらを含むことができる。すなわち、特定用途向け集積回路（ＡＳＩＣ）、デジタル、アナログ、またはアナログ／デジタル混合ディスクリート回路、デジタル、アナログ、またはアナログ／デジタル混合集積回路、組み合わせ論理回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コードを実行するプロセッサ回路（共有、専用、またはグループ）、プロセッサ回路によって実行されるコードを格納するメモリ回路（共有、専用、またはグループ）、記載された機能を提供する他の適切なハードウェア構成要素、あるいは、システムオンチップなどにおける上記のいくつかまたはすべての組み合わせである。
【００９５】
モジュールは、１つまたは複数のインターフェース回路を含んでもよい。いくつかの例では、インターフェース回路は、ローカルエリアネットワーク（ＬＡＮ）、インターネット、ワイドエリアネットワーク（ＷＡＮ）、またはそれらの組み合わせに接続されている有線または無線インターフェースを含んでもよい。本開示の任意の所与のモジュールの機能は、インターフェース回路を介して接続されている複数のモジュール間で分散されてもよい。例えば、複数のモジュールが負荷バランスを可能にしてもよい。さらなる例では、サーバ（リモート、またはクラウドとしても知られる）モジュールは、クライアントモジュールに代わっていくつかの機能を達成することができる。
【００９６】
モジュールの一部または全部のハードウェア機能は、ＩＥＥＥ規格１３６４−２００５（一般に「Ｖｅｒｉｌｏｇ」と呼ばれる）およびＩＥＥＥ規格１０７６−２００８（一般に「ＶＨＤＬ」と呼ばれる）などのハードウェア記述用言語を使用して定義することができる。ハードウェア記述言語は、ハードウェア回路を製造および／またはプログラムするために使用することができる。いくつかの実装態様では、モジュールのいくつかのまたはすべての機能は、ＩＥＥＥ  １６６６−２００５（一般に「ＳｙｓｔｅｍＣ」と呼ばれる）などの、後述のコードとハードウェアの記述の両方を含む言語によって定義することができる。
【００９７】
コードという用語は、上記で使用されているように、ソフトウェア、ファームウェア、および／またはマイクロコードを含むことができ、プログラム、ルーチン、機能、クラス、データ構造、および／またはオブジェクトを指すことができる。共有プロセッサ回路という用語は、複数のモジュールからのコードの一部または全部を実行する単一のプロセッサ回路を包含する。グループプロセッサ回路という用語は、追加のプロセッサ回路と組み合わせて、１つまたは複数のモジュールからのいくつかまたはすべてのコードを実行するプロセッサ回路を包含する。複数のプロセッサ回路への言及は、個別のダイ上の複数のプロセッサ回路、単一のダイ上の複数のプロセッサ回路、単一のプロセッサ回路の複数のコア、単一のプロセッサ回路の複数のスレッド、またはこれらの組み合わせを包含する。共有メモリ回路という用語は、複数のモジュールからのコードの一部または全部を格納する単一のメモリ回路を包含する。グループメモリ回路という用語は、追加のメモリと組み合わせて、１つまたは複数のモジュールからの一部または全部のコードを格納するメモリ回路を包含する。
【００９８】
メモリ回路という用語は、コンピュータ可読媒体という用語のサブセットである。本明細書で使用されるコンピュータ可読媒体という用語は、（搬送波上などの）媒体を通って伝播する一時的な電気信号または電磁信号を含まない。したがって、コンピュータ可読媒体という用語は、有形の非一時的なものとみなすことができる。非一時的コンピュータ可読媒体の非限定的な例は、不揮発性メモリ回路（フラッシュメモリ回路、消去可能プログラマブル読み出し専用メモリ回路、またはマスク読み出し専用メモリ回路など）、揮発性メモリ回路（スタティックランダムアクセスメモリ回路またはダイナミックランダムアクセスメモリ回路など）、磁気記憶媒体（アナログまたはデジタルの磁気テープ、ハードディスクドライブなど）、ならびに光学記憶媒体（ＣＤ、ＤＶＤ、またはブルーレイディスクなど）である。
【００９９】
本願に記載されている装置および方法は、コンピュータプログラムで具現化された１つまたは複数の特定の機能を実行するように汎用コンピュータを構成することによって作製された特殊目的コンピュータによって部分的または完全に実装することができる。上記の機能ブロックおよびフローチャート要素はソフトウェアの仕様として役立ち、熟練した技術者またはプログラマーの日常業務によってコンピュータプログラムに変換することができる。
【０１００】
コンピュータプログラムは、少なくとも１つの非一時的コンピュータ可読媒体に格納されたプロセッサ実行可能命令を含む。コンピュータプログラムはまた、格納されたデータを含むかまたはそれに依存してもよい。コンピュータプログラムは、特殊目的コンピュータのハードウェアと相互作用する基本入出力システム（ＢＩＯＳ）、特殊目的コンピュータの特定のデバイスと相互作用するデバイスドライバ、１つまたは複数のオペレーティングシステム、ユーザアプリケーション、バックグラウンドサービス、バックグラウンドアプリケーションなどを含んでもよい。
【図１】
2020511721.tif 000040
【図２】
2020511721.tif 000041
【図３】
2020511721.tif 000042
【図４】
2020511721.tif 000043
【図５】
2020511721.tif 000044
【図６Ａ】
2020511721.tif 000045
【図６Ｂ】
2020511721.tif 000046
【図７】
2020511721.tif 000047
【図８】
2020511721.tif 000048
【図９】
2020511721.tif 000049
【国際調査報告】
2020511721.tif 000050
2020511721.tif 000051