(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-01-15
(54)【発明の名称】経路探索装置、経路探索方法、及びプログラム
(51)【国際特許分類】
G05D 1/622 20240101AFI20250107BHJP
G05D 1/644 20240101ALI20250107BHJP
G05D 1/43 20240101ALI20250107BHJP
【FI】
G05D1/622
G05D1/644
G05D1/43
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024540819
(86)(22)【出願日】2022-12-13
(85)【翻訳文提出日】2024-07-04
(86)【国際出願番号】 JP2022045776
(87)【国際公開番号】W WO2023136020
(87)【国際公開日】2023-07-20
(31)【優先権主張番号】P 2022003872
(32)【優先日】2022-01-13
(33)【優先権主張国・地域又は機関】JP
(81)【指定国・地域】
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(71)【出願人】
【識別番号】301021533
【氏名又は名称】国立研究開発法人産業技術総合研究所
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】比嘉 亮太
(72)【発明者】
【氏名】中台 慎二
(72)【発明者】
【氏名】ヒツ ケン
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301BB05
5H301CC03
5H301CC06
5H301KK03
5H301KK08
5H301LL02
5H301LL03
(57)【要約】
経路探索装置(2000)は、車両情報(60)と、地図情報(70)と、障害物情報(80)とを取得する。車両情報は、複数車両(20)の現在位置及び目的位置を含む。地図情報(70)は、対象空間の地図を含む。障害物情報(80)は、1つ以上の移動障害物の位置の履歴を含む。経路探索装置(2000)は、対象時間窓の間の各移動障害物の1つ以上の障害物経路を生成し、各々が車両ごとの対象時間窓の間の車両経路を含む複数の候補経路集合を生成する。車両経路は、他の車両経路及び障害物経路と競合しない。経路探索装置(2000)は、候補経路集合内の車両経路の続きのヒューリスティック探索によって候補経路集合を評価し、候補経路集合の評価に基づいてそれらのうちの1つを選択し、選択した候補経路集合を出力する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサと、
命令を記憶したメモリと、を備える経路探索装置であって、
前記少なくとも1つのプロセッサは、前記命令を実行することにより、
車両情報、障害物情報、及び地図情報を取得し、前記車両情報は、複数の車両それぞれの現在位置及び目的位置を含み、前記障害物情報は、1つ以上の移動障害物の位置の履歴を含み、前記地図情報は、前記車両及び前記移動障害物が移動する空間の地図を含み、
前記障害物情報及び前記地図情報に基づいて、所定の長さの対象時間窓の間の各移動障害物の1つ以上の障害物経路を生成し、
前記車両情報、前記障害物経路、及び前記地図情報に基づいて、複数の候補経路集合を生成し、前記候補経路集合は、各車両の前記対象時間窓の間の車両経路を含み、前記車両経路は、前記他の車両経路及び前記障害物経路と競合せず、
前記候補経路集合内の前記車両経路の続きのヒューリスティック探索によって前記候補経路集合を評価し、
前記候補経路集合の評価に基づいて前記候補経路集合のうちの1つを選択し、前記選択した候補経路集合を出力する、ように構成される、経路探索装置。
【請求項2】
前記候補経路集合の前記生成は、変形された競合ベース探索アルゴリズムを行うことを含み、
前記変形された競合ベース探索アルゴリズムは、
前記障害物経路に基づいて、前記車両と前記移動障害物との間の競合を回避する制約を生成し、前記生成した制約を競合木のルートノードに追加することと、
前記対象時間窓の間の競合を解消することと、
2つ以上の解を出力して前記複数の候補経路集合を生成することと、を含む、請求項1に記載の経路探索装置。
【請求項3】
前記候補経路集合は、モンテカルロツリー探索を実行することによって評価され、前記モンテカルロツリー探索は、
ルートノードによって候補経路集合ごとに子ノードが保持される探索木を生成し、前記子ノードは、前記候補経路集合及び前記障害物経路によって表される前記対象時間窓の間の前記移動障害物及び前記車両のアクションの集合を表す親エッジを有し、
選択ステップ、展開ステップ、ロールアウトステップ、及び逆伝播ステップのセットを繰り返し実行し、
前記選択ステップにおいて、各ノードの評価スコアに基づいて展開されるべきノードが選択され、
前記展開ステップにおいて、新しいエッジと新しいノードとのペアが、生成されかつ展開されるべき前記ノードに付加され、前記新しいエッジは、前記車両及び前記移動障害物のうちの1つ以上についての1つ以上のアクションを表し、
前記ロールアウトステップにおいて、すべての車両が前記車両の目的地に到達するまでの、又はデッドロックが発生するまでの前記車両及び前記移動障害物の経路の続きを生成するためにロールアウトが行われ、
前記逆伝播ステップにおいて、前記ロールアウトの結果に基づいて、展開されるべき前記ノード及び前記ノードの先祖に対して前記評価スコアが計算される、請求項1に記載の経路探索装置。
【請求項4】
前記新しいエッジは、前記車両又は前記移動障害物の時間ステップにおけるアクションを表し、
前記新しいエッジは、前記展開ステップの前記繰り返し実行において順に各車両及び移動障害物に対して生成される、請求項3に記載の経路探索装置。
【請求項5】
前記新しいエッジは、時間窓の間の前記車両及び前記移動障害物のアクションの集合を表す、請求項3に記載の経路探索装置。
【請求項6】
前記評価スコアは、前記ロールアウトの結果として得られた前記車両の前記経路のコスト、前記ロールアウトにおいて発生した競合の数、前記ロールアウトにおいてデッドロックが発生するか否か、又はこれらのうちの2つ以上に基づいて計算される、請求項3に記載の経路探索装置。
【請求項7】
車両情報、障害物情報、及び地図情報を取得することを含み、前記車両情報は、複数の車両それぞれの現在位置及び目的位置を含み、前記障害物情報は、1つ以上の移動障害物の位置の履歴を含み、前記地図情報は、前記車両及び前記移動障害物が移動する空間の地図を含み、
前記障害物情報及び前記地図情報に基づいて、所定の長さの対象時間窓の間の各移動障害物の1つ以上の障害物経路を生成することを含み、
前記車両情報、前記障害物経路、及び前記地図情報に基づいて、複数の候補経路集合を生成することを含み、前記候補経路集合は、各車両の前記対象時間窓の間の車両経路を含み、前記車両経路は、前記他の車両経路及び前記障害物経路と競合せず、
前記候補経路集合内の前記車両経路の続きのヒューリスティック探索によって前記候補経路集合を評価することを含み、
前記候補経路集合の評価に基づいて前記候補経路集合のうちの1つを選択して前記選択した候補経路集合を出力することを含む、コンピュータによって行われる経路探索方法。
【請求項8】
前記候補経路集合の前記生成は、変形された競合ベース探索アルゴリズムを行うことを含み、
前記変形された競合ベース探索アルゴリズムは、
前記障害物経路に基づいて、前記車両と前記移動障害物との間の競合を回避する制約を生成し、前記生成した制約を競合木のルートノードに追加することと、
前記対象時間窓の間の競合を解消することと、
2つ以上の解を出力して前記複数の候補経路集合を生成することとを含む、請求項7に記載の経路探索方法。
【請求項9】
前記候補経路集合は、モンテカルロツリー探索を実行することによって評価され、前記モンテカルロツリー探索は、
ルートノードによって候補経路集合ごとに子ノードが保持される探索木を生成し、前記子ノードは、前記候補経路集合及び前記障害物経路によって表される前記対象時間窓の間の前記移動障害物及び前記車両のアクションの集合を表す親エッジを有し、
選択ステップ、展開ステップ、ロールアウトステップ、及び逆伝播ステップのセットを繰り返し実行し、
前記選択ステップにおいて、各ノードの評価スコアに基づいて展開されるべきノードが選択され、
前記展開ステップにおいて、新しいエッジと新しいノードとのペアが、生成されかつ展開されるべき前記ノードに付加され、前記新しいエッジは、前記車両及び前記移動障害物のうちの1つ以上についての1つ以上のアクションを表し、
前記ロールアウトステップにおいて、すべての車両が前記車両の目的地に到達するまでの、又はデッドロックが発生するまでの前記車両及び前記移動障害物の経路の続きを生成するためにロールアウトが行われ、
前記逆伝播ステップにおいて、前記ロールアウトの結果に基づいて、展開されるべき前記ノード及び前記ノードの先祖に対して前記評価スコアが計算される、請求項7に記載の経路探索方法。
【請求項10】
前記新しいエッジは、前記車両又は前記移動障害物の時間ステップにおけるアクションを表し、
前記新しいエッジは、前記展開ステップの前記繰り返し実行において順に各車両及び移動障害物に対して生成される、請求項9に記載の経路探索方法。
【請求項11】
前記新しいエッジは、時間窓の間の前記車両及び前記移動障害物のアクションの集合を表す、請求項9に記載の経路探索方法。
【請求項12】
前記評価スコアは、前記ロールアウトの結果として得られた前記車両の前記経路のコスト、前記ロールアウトにおいて発生した競合の数、前記ロールアウトにおいてデッドロックが発生するか否か、又はこれらのうちの2つ以上に基づいて計算される、請求項9に記載の経路探索方法。
【請求項13】
コンピュータに、
車両情報、障害物情報、及び地図情報を取得することを実行させ、前記車両情報は、複数の車両それぞれの現在位置及び目的位置を含み、前記障害物情報は、1つ以上の移動障害物の位置の履歴を含み、前記地図情報は、前記車両及び前記移動障害物が移動する空間の地図を含み、
前記障害物情報及び前記地図情報に基づいて、所定の長さの対象時間窓の間の各移動障害物の1つ以上の障害物経路を生成することを実行させ、
前記車両情報、前記障害物経路、及び前記地図情報に基づいて、複数の候補経路集合を生成することを実行させ、前記候補経路集合は、各車両の前記対象時間窓の間の車両経路を含み、前記車両経路は、前記他の車両経路及び前記障害物経路と競合せず、
前記候補経路集合内の前記車両経路の続きのヒューリスティック探索によって前記候補経路集合を評価することを実行させ、
前記候補経路集合の評価に基づいて前記候補経路集合のうちの1つを選択して前記選択した候補経路集合を出力することを実行させるプログラムを記憶した、非一時的コンピュータ可読記憶媒体。
【請求項14】
前記候補経路集合の前記生成は、変形された競合ベース探索アルゴリズムを行うことを含み、
前記変形された競合ベース探索アルゴリズムは、
前記障害物経路に基づいて、前記車両と前記移動障害物との間の競合を回避する制約を生成し、前記生成した制約を競合木のルートノードに追加することと、
前記対象時間窓の間の競合を解消することと、
2つ以上の解を出力して前記複数の候補経路集合を生成することとを含む、請求項13に記載の記憶媒体。
【請求項15】
前記候補経路集合は、モンテカルロツリー探索を実行することによって評価され、前記モンテカルロツリー探索は、
ルートノードによって候補経路集合ごとに子ノードが保持される探索木を有し、前記子ノードは、前記候補経路集合及び前記障害物経路によって表される前記対象時間窓の間の前記移動障害物及び前記車両のアクションの集合を表す親エッジを有し、
選択ステップ、展開ステップ、ロールアウトステップ、及び逆伝播ステップのセットを繰り返し実行し、
前記選択ステップにおいて、各ノードの評価スコアに基づいて展開されるべきノードが選択され、
前記展開ステップにおいて、新しいエッジと新しいノードとのペアが、生成されかつ展開されるべき前記ノードに付加され、前記新しいエッジは、前記車両及び前記移動障害物のうちの1つ以上についての1つ以上のアクションを表し、
前記ロールアウトステップにおいて、すべての車両が前記車両の目的地に到達するまでの、又はデッドロックが発生するまでの前記車両及び前記移動障害物の経路の続きを生成するためにロールアウトが行われ、
前記逆伝播ステップにおいて、前記ロールアウトの結果に基づいて、展開されるべき前記ノード及び前記ノードの先祖に対して前記評価スコアが計算される、請求項13に記載の記憶媒体。
【請求項16】
前記新しいエッジは、前記車両又は前記移動障害物の時間ステップにおけるアクションを表し、
前記新しいエッジは、前記展開ステップの前記繰り返し実行において順に各車両及び移動障害物に対して生成される、請求項15に記載の記憶媒体。
【請求項17】
前記新しいエッジは、時間窓の間の前記車両及び前記移動障害物のアクションの集合を表す、請求項15に記載の記憶媒体。
【請求項18】
前記評価スコアは、前記ロールアウトの結果として得られた前記車両の前記経路のコスト、前記ロールアウトにおいて発生した競合の数、前記ロールアウトにおいてデッドロックが発生するか否か、又はこれらのうちの2つ以上に基づいて計算される、請求項15に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、複数車両に関する経路探索問題に関する。
【背景技術】
【0002】
マルチエージェント経路探索(MAPF: Multi-Agent Pathfinding)問題と呼ばれる、複数車両に関する経路探索問題に関する技術が開発されている。非特許文献1は、MAPF問題を解決するための様々なアルゴリズムを開示している。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Roni Stern、Nathan Sturtevant、Ariel Felner、Sven Koenig、Hang Ma、Thayne Walker、Jiaoyang Li、Dor Atzmon、Liron Cohen、T.K.Satish Kumar、Eli Boyarski、及び Roman Bartak、「Multi-Agent Pathfinding: Definitions, Variants, and Benchmarks」、[online]、2019年1月19日、[2021年12月24日検索]、<arXiv,https://arxiv.org/pdf/1906.08291.pdf>から取得
【非特許文献2】Guni Sharon、Roni Stern、Ariel Felner、及び Nathan R.Sturtevant、「Conflict-based search for optimal multi-agent pathfinding」、Elsevier、Artificial Intelligence、Volume 219、 40-66 ページ、2015年2月
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1には、人間などの制御不能の移動障害物を扱うことができるアルゴリズムは開示されていない。本開示は、1つ以上の制御不能の移動障害物が存在する状況下で複数車両のための経路の集合を見つける新規の技術を提供する。
【課題を解決するための手段】
【0005】
本開示の経路探索装置は、少なくとも1つのプロセッサと、命令を記憶したメモリと、を備える。前記少なくとも1つのプロセッサは、前記命令を実行することにより、車両情報、障害物情報、及び地図情報を取得し、前記車両情報は、複数の車両それぞれの現在位置及び目的位置を含み、前記障害物情報は、1つ以上の移動障害物の位置の履歴を含み、前記地図情報は、前記車両及び前記移動障害物が移動する空間の地図を含み、前記障害物情報及び前記地図情報に基づいて、所定の長さの対象時間窓の間の各移動障害物の1つ以上の障害物経路を生成し、前記車両情報、前記障害物経路、及び前記地図情報に基づいて、複数の候補経路集合を生成し、前記候補経路集合は、各車両の前記対象時間窓の間の車両経路を含み、前記車両経路は、前記他の車両経路及び前記障害物経路と競合せず、前記候補経路集合内の前記車両経路の続きのヒューリスティック探索によって前記候補経路集合を評価し、前記候補経路集合の評価に基づいて前記候補経路集合のうちの1つを選択し、前記選択した候補経路集合を出力する、ように構成される。
【0006】
本開示の経路探索装置は、コンピュータによって実行される。当該経路探索装置は、車両情報、障害物情報、及び地図情報を取得することを含み、前記車両情報は、複数の車両それぞれの現在位置及び目的位置を含み、前記障害物情報は、1つ以上の移動障害物の位置の履歴を含み、前記地図情報は、前記車両及び前記移動障害物が移動する空間の地図を含み、前記障害物情報及び前記地図情報に基づいて、所定の長さの対象時間窓の間の各移動障害物の1つ以上の障害物経路を生成することを含み、前記車両情報、前記障害物経路、及び前記地図情報に基づいて、複数の候補経路集合を生成することを含み、前記候補経路集合は、各車両の前記対象時間窓の間の車両経路を含み、前記車両経路は、前記他の車両経路及び前記障害物経路と競合せず、前記候補経路集合内の前記車両経路の続きのヒューリスティック探索によって前記候補経路集合を評価することを含み、前記候補経路集合の評価に基づいて前記候補経路集合のうちの1つを選択して前記選択した候補経路集合を出力することを含む。
【0007】
本開示の非一時的なコンピュータ可読記憶媒体はプログラムを格納し、当該プログラムはコンピュータに、車両情報、障害物情報、及び地図情報を取得することを実行させ、前記車両情報は、複数の車両それぞれの現在位置及び目的位置を含み、前記障害物情報は、1つ以上の移動障害物の位置の履歴を含み、前記地図情報は、前記車両及び前記移動障害物が移動する空間の地図を含み、前記障害物情報及び前記地図情報に基づいて、所定の長さの対象時間窓の間の各移動障害物の1つ以上の障害物経路を生成することを実行させ、前記車両情報、前記障害物経路、及び前記地図情報に基づいて、複数の候補経路集合を生成することを実行させ、前記候補経路集合は、各車両の前記対象時間窓の間の車両経路を含み、前記車両経路は、前記他の車両経路及び前記障害物経路と競合せず、前記候補経路集合内の前記車両経路の続きのヒューリスティック探索によって前記候補経路集合を評価することを実行させ、前記候補経路集合の評価に基づいて前記候補経路集合のうちの1つを選択して前記選択した候補経路集合を出力することを実行させる。
【発明の効果】
【0008】
本開示によれば、1つ以上の制御不能の移動障害物が存在する状況下で複数車両のための経路の集合を見つける新規の技術。
【図面の簡単な説明】
【0009】
【
図2】経路探索装置の機能構成の一例を示すブロック図である。
【
図3】経路探索装置を実現するコンピュータのハードウェア構成の一例を示すブロック図である。
【
図4】実施形態1の経路探索装置によって行われる処理の流れを例示するフローチャートである。
【
図5】評価部で採用される MCTS の探索木の初期状態を示す。
【
図6】評価部で採用される MCTS の第1の例の探索木を示す。
【
図7】評価部で採用される MCTS の第2の例の探索木を示す。
【発明を実施するための形態】
【0010】
本開示による実施の形態を、以下で図面を参照して説明する。図面全体を通して同じ要素には同じ符号が割り当てられており、冗長な説明は必要に応じて省略される。また、記憶部は、1つ以上の記憶装置で構成される。
【0011】
実施形態1
<概要>
図1は、実施形態1の経路探索装置2000の概要を示している。
図1で示す概要は、経路探索装置2000を理解しやすくするために経路探索装置2000の動作の一例を示しており、経路探索装置2000の可能な動作の範囲を限定したり狭めたりするものではないことに留意されたい。
【0012】
経路探索装置2000は、車両20の集合の経路計画40を生成するように動作する。経路計画40は、経路50の集合であり、複数の車両20それぞれのための経路50を含む。経路50は、各時点(以下、時点を「時間ステップ」とも呼ぶ)に対して、対応する車両20の位置を示す時系列データである。各車両20は、対応する経路50に沿って対象空間内をその出発位置からその目的位置まで移動するように構成することができる。出発位置及び目的位置は、各車両20に対して予め定義される。対象空間は、車両20が移動することができる任意の場所、例えば倉庫や工場である。
【0013】
車両20は、割り振られた経路に沿って移動するように制御可能な任意の移動物体でありうる。いくつかの実装では、車両20は、無人搬送車(AGV automatic guided vehicle)、ドローンなどといった、任意の種類の自律移動車両であってもよい。他の実装では、車両20は、手動で操作される任意の種類の移動物体であってもよい。
【0014】
車両20間の衝突を回避するために、経路計画40は、競合しないこと、すなわち、各経路50が、経路計画40内のその他の経路50のいずれとも競合しないことを要求される。また、対象空間には、車両20だけでなく、人間など、1つ以上の移動障害物も移動しているものとする。したがって、車両20と移動障害物との間の衝突を回避するために、経路50は、移動障害物の経路とも競合しないことを要求される。以下では、明確にするために、車両20の経路及び移動障害物の経路をそれぞれ、「車両経路」及び「障害物経路」と呼ぶ。なお、障害物経路は、移動障害物が移動すると予測される移動障害物の経路である。
【0015】
移動障害物は、経路探索装置2000の視点から見て制御不能の任意の移動物体である。例えば、移動障害物は、割り振られた経路に沿って移動しない移動物体(例えば人間)である。別の例では、移動障害物は、経路探索装置2000に対して明かされていない、割り振られた経路に沿って移動する移動物体である。
【0016】
経路探索装置2000は、WL と表記される所定の長さを有する続きした時間窓の各々の経路計画40を生成する。対象時間窓の経路計画40は、その時間窓の開始時刻又はその前に生成される。以下では、経路探索装置2000が経路計画40を生成している時間窓を「対象時間窓」と呼ぶ。
【0017】
車両20の移動開始時刻は0に設定されるものとする。この場合、経路計画40は、0から WL までの第1の時間窓 W_1、WL から 2*WLまでの第2の時間窓 W2、…、及び (n-1)*WL から n*WL までの第nの時間窓 W_n の各々に対して生成される。時間窓 W_n は、最後の車両20がその目的地に到達する最後の時間窓である。特に明記しない限り、車両20の移動の開始時刻、すなわち第1の時間窓 W1 の開始時刻は、上述したように0に設定されるものとする。
【0018】
対象時間窓の経路計画40を生成するために、経路探索装置2000は以下のように動作する。経路探索装置2000は、車両情報60、地図情報70、及び障害物情報80を取得する。車両情報60は、各車両20の現在位置及び目的位置を示す。車両20の現在位置は、対象時間窓の開始時における(すなわち、前の時間窓の終わりにおける)車両20の位置を表す。対象時間窓が第1の時間窓であるとき、現在位置は、車両20の移動が開始する出発位置に相当する。障害物情報80は、各移動障害物の位置の履歴を示す。
【0019】
経路探索装置2000は、地図情報70及び障害物情報80を使用して対象時間窓の間の各移動障害物のアクションを予測することにより、対象時間窓の間の移動障害物の障害物経路の1つ以上の集合を生成する。以下では、障害物経路の集合を「障害物経路集合」と呼ぶ。
【0020】
次いで、経路探索装置2000は、車両情報60、地図情報70、及び障害物経路集合に基づいて、経路計画40の複数の候補を生成する。経路計画40の候補は、対象時間窓の間の車両20の車両経路の集合である。以下では、経路計画40の候補を「候補経路集合」と呼ぶ。各候補経路集合は競合しないように生成される。すなわち、すべての車両20は、その他の車両20又は移動障害物と衝突しない。いくつかの実装では、複数の候補経路集合を生成するために、競合ベース探索(CBS: Conflict-based Search)アルゴリズムの変形が使用される。
【0021】
複数の候補経路集合を生成した後、経路探索装置2000は、複数の候補経路集合を評価する。候補経路集合は、その続きのヒューリスティック探索によって評価される。いくつかの実装では、ヒューリスティック探索にモンテカルロ木探索(MCTS: Monte Carlo Tree Search)アルゴリズムが使用される。
【0022】
経路探索装置2000は、複数の候補経路集合の評価に基づいて、それらのうちの1つを選択し、選択した候補経路集合を対象時間窓の経路計画40として出力する。例えば、評価が最も高い候補経路集合が、対象時間窓の経路計画40として選択される。
【0023】
<作用効果の例>
実際の状況では、AGV などの車両は、人間などの制御不能の移動障害物も移動する空間を移動する場合がある。空間の安全のためには、車両が車両同士だけでなく移動障害物とも衝突しないように車両の経路計画を立てることが好ましい。
【0024】
実施形態1の経路探索装置2000によれば、制御不能の移動障害物の経路は、移動障害物の位置の履歴に基づいて予測される。次いで、移動障害物の経路を考慮に入れて車両20の経路が生成される。したがって、車両20の経路を、車両同士の経路だけでなく移動障害物の経路とも競合しないように生成することができる。移動障害物が人間である場合、そこで活動する人間に安全な環境を提供することができる。
【0025】
より具体的には、経路探索装置2000は、所定の長さの期間である対象時間窓に対して車両20の経路の複数の候補を生成する。次いで、複数の候補は、これらの候補の続きのヒューリスティック探索(例えば、MCTS)によって評価され、候補のうちの1つが対象時間窓の経路計画40として選択される。このようにして、経路探索装置2000は、より少ない計算時間で好ましい経路計画40を提供することができる。
【0026】
具体的には、移動物体の予測不可能性のために、すべての車両20がそれらの目的地に到達するまで競合しないことが保証される経路計画40を一回生成するには、多くの計算時間を要する。一方、ヒューリスティック探索アルゴリズムは、より少ない計算時間で経路計画40を生成する可能性があるが、ヒューリスティック探索のみによって生成された経路計画40は、競合しないことが保証されない。これらの点に関して、経路探索装置2000は、対象時間窓の間に競合しないことが保証される経路計画40の候補を生成し、次いでヒューリスティック探索によってそれらを評価するので、より少ない計算時間で、競合しないことが保証される好ましい経路計画40を生成することができる。
【0027】
以下では、実施形態1の経路探索装置2000のより詳細な説明を記載する。
【0028】
<機能構成の例>
図2は、経路探索装置2000の機能構成の一例を示している。経路探索装置2000は、取得部2020と、予測部2040と、候補生成部2060と、評価部2080と、出力部2100とを含む。
【0029】
取得部2020は、車両情報60、地図情報70、及び障害物情報80を取得する。予測部2040は、地図情報70及び障害物情報80に基づいて、対象時間窓に対して1つ以上の障害物経路集合を生成する。候補生成部2060は、車両情報60、地図情報70、及び対象時間窓の障害物経路集合に基づいて、対象時間窓に対して複数の候補経路集合を生成する。評価部2080は、候補経路集合の続きのヒューリスティック探索によって候補経路集合を評価する。出力部2100は、候補経路集合の評価に基づいてそれらのうちの1つを選択し、選択した候補経路集合を対象時間窓の経路計画40として出力する。
【0030】
<ハードウェア構成の例>
経路探索装置2000は、1つ以上のコンピュータによって実現されてもよい。1つ以上のコンピュータの各々は、経路探索装置2000を実現するために製造された専用のコンピュータであってもよいし、パーソナルコンピュータ(PC)、サーバマシン、モバイルデバイスなどの汎用のコンピュータであってもよい。
【0031】
経路探索装置2000は、コンピュータにアプリケーションをインストールすることによって実現されてもよい。アプリケーションは、コンピュータを経路探索装置2000として機能させるプログラムによって実現される。換言すれば、プログラムは、経路探索装置2000の機能部の実装である。
【0032】
図3は、経路探索装置2000を実現するコンピュータ1000のハードウェア構成の一例を示すブロック図である。
図3において、コンピュータ1000は、バス1020と、プロセッサ1040と、メモリ1060と、ストレージデバイス1080と、入出力インターフェース1100と、ネットワークインターフェース1120とを含む。
【0033】
バス1020は、プロセッサ1040と、メモリ1060と、ストレージデバイス1080と、入出力インターフェース1100と、ネットワークインターフェース1120とが、相互にデータを送受信するためのデータ伝送チャネルである。プロセッサ1040は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)などのプロセッサである。メモリ1060は、RAM(Random Access Memory)やROM(Read Only Memory)などの主記憶要素である。ストレージデバイス1080は、ハードディスク、SSD(Solid State Drive)、メモリカードなどの補助記憶要素である。入出力インターフェース1100は、コンピュータ1000と、キーボード、マウス、ディスプレイ装置などの周辺デバイスとの間のインターフェースである。ネットワークインターフェース1120は、コンピュータ1000とネットワークとの間のインターフェースである。ネットワークは、LAN(Local Area Network)であってもよいし、WAN(Wide Area Network)であってもよい。
【0034】
ストレージデバイス1080は、上述のプログラムを記憶してもよい。CPU1040は、プログラムを実行して、経路探索装置2000の各機能部を実現する。
【0035】
コンピュータ1000のハードウェア構成は、
図3に示す構成に限定されない。例えば、上述したように、経路探索装置2000は、複数のコンピュータによって実現されてもよい。この場合、それらのコンピュータは、ネットワークを介して互いに接続されていてもよい。
【0036】
<処理の流れ>
図4は、実施形態1の経路探索装置2000によって行われる処理の全体的な流れを例示するローチャートである。なお、経路探索装置2000によって行われる処理の流れは、
図4に示すものに限定されない。
【0037】
取得部2020は、地図情報70を取得する(S102)。ステップS104からステップS116は、すべての車両20が目的地に到達するまで時間窓 Wi ごとに行われるループ処理L1を構成する。なお、iは、ループ処理L1の現在のイテレーションのインデックスを表す。ループ処理L1の各イテレーションについて、時間窓 Wi は対象時間窓である。
【0038】
ステップS104において、経路探索装置2000は、すべての車両20が前の時間窓の経路計画40におけるそれらの目的地に到達したか否かを判定する。すべての車両20が前の時間窓の経路計画40における目的地に到達した場合、ループ処理L1の実行は終了し、したがって
図4に示す処理は終了する。一方、前の時間窓の経路計画40における目的地に到達していない1つ以上の車両20がある場合、ループ処理L1の次のイテレーションが行われる。
【0039】
取得部2020は、車両情報60及び障害物情報80を取得する(S106)。予測部2040は、地図情報70及び障害物情報80に基づいて、時間窓 Wi(すなわち、対象時間窓)に対して1つ以上の障害物経路集合を生成する(S108)。候補生成部2060は、車両情報60、地図情報70、及び時間窓 Wi の障害物経路集合に基づいて、時間窓 Wi に対して複数の候補経路集合を生成する(S110)。評価部2080は、候補経路集合の続きのヒューリスティック探索によって時間窓 Wi の候補経路集合を評価する(S112)。出力部2100は、候補経路集合の評価に基づいてそれらのうちの1つを選択し、選択した候補経路集合を時間窓 Wi の経路計画40として出力する(S114)。
【0040】
ステップS116は、ループ処理L1の終了である。したがって、次にステップS104が行われる。
【0041】
<地図情報70の取得:S102>
取得部2020は、地図情報70を取得する(S102)。地図情報70は、対象空間の地図を表す。理論的には、地図は、グラフ G=(V,E) を表してもよく、式中、V は頂点の集合であり、E はエッジの集合である。頂点は位置を表し、エッジは位置間の接続を表す。
【0042】
対象空間の地図を実装する様々な方法がある。いくつかの実装では、地図は、二次元(2D)又は三次元(3D)のグリッドマップとして実装される。この場合、各位置は、グリッドマップ内のセルによって表される。また、位置間の各接続は、グリッドマップ内のセル間の接続によって表される。
【0043】
地図情報70はまた、壁、棚などといった各静止障害物の位置を指示してもよい。各障害物は、少なくとも車両20の移動中に恒久的に占有される1つ以上の位置(例えば、グリッドマップのセル)によって定義される。
【0044】
地図情報70を取得する様々な方法があってもよい。例えば、地図情報70は、経路探索装置2000がアクセスできる記憶部に予め記憶されている。この場合、取得部2020は、記憶部から地図情報70を取得する。別の例では、取得部2020は、別のコンピュータから送信される地図情報70を受信することによって地図情報70取得してもよい。
【0045】
<車両情報60の取得:S106>
取得部2020は、車両情報60を取得する(S106)。車両情報60は、各車両20の現在位置及び目的位置を示す。対象時間窓が第1の時間窓 W1 である場合、車両20の現在位置は、車両20の移動が開始するその出発位置に相当する。それ以外の場合、車両20の現在位置は、前の時間窓の経路計画40によって指示された車両20の最後の位置に相当する。
【0046】
なお、車両20の目的位置はすべての時間窓において共通であるため、取得2020が、最初のイテレーションを除くループ処理L1のイテレーションごとに経路探索装置2000の外部から目的位置を入手する必要はない。したがって、いくつかの実装では、取得2020は、ループ処理L1の最初のイテレーションで経路探索装置2000に(例えば、ストレージデバイス1080に)車両20の目的位置をキャッシュし、その他のイテレーションではキャッシュから入手してもよい。この場合、車両情報60は、ループ処理L1の最初のイテレーションを除いて、車両20の目的位置を含むことを要求されない。
【0047】
取得部2020は、上述の地図情報70を取得するためのやり方と同様のやり方で車両情報60を取得してもよい。
【0048】
<障害物情報80の取得:S106>
ステップS106において、取得部2020は、障害物情報80を取得する。障害物情報80は、対象空間を移動する移動障害物の位置の履歴を含む。移動障害物の位置の履歴は、移動障害物の位置の時系列データ(例えば、時間ステップと移動障害物の位置のペア)によって表すことができる。
【0049】
障害物情報80は、様々な方法で生成することができる。例えば、障害物情報80は、対象空間を捕捉するために設置されたカメラによって生成されたビデオデータを解析することによって生成することができる。別の例では、障害物情報80は、移動障害物に取り付けられるか又は移動障害物によって保持されたセンサデバイス(GPS(Global Positioning System)センサなど)から位置情報を繰り返し入手することによって生成することができる。移動障害物が人である場合、センサは、その人のモバイルデバイス、スマートフォンなどにインストールされた GPS センサであってもよい。
【0050】
<障害物経路集合の生成:S108>
予測部2040は、対象時間窓の障害物情報80及び地図情報70に基づいて、対象時間窓 Wi に対して1つ以上の障害物経路集合を生成する(S108)。障害物経路集合を生成するために、予測部2040は、障害物情報80に基づいて、対象時間窓の間の移動障害物の移動を予測する。
【0051】
物体の位置の履歴に基づいて物体の移動を予測する様々な周知の方法があり、それらのうちのいずれかを採用して移動障害物の移動を予測することができる。いくつかの実装では、予測部2040は、物体の動きをシミュレートして予測するモーションシミュレータ(以下、「障害物モーションシミュレータ」と呼ぶ)を使用する。障害物モーションシミュレータは、移動障害物がランダムに移動することになっているランダムシミュレータであってもよい。また、経路ベースのモデルや何らかの他のルールベースのモデルなど、他のモデルが障害物モーションシミュレータにおいて適用されてもよい。
【0052】
予測部2040は、移動障害物の経路を予測するために、障害物モーションシミュレータを呼び出して、障害物情報80によって示される移動障害物の位置の履歴に基づいて所定の回数のシミュレーションを行ってもよい。次いで、移動障害物ごとに、予測部2040は、訪問回数が最も多い経路をその移動障害物の障害物経路として選択してもよい。選択された障害物経路の集合は、障害物経路集合として使用される。
【0053】
予測部2040が移動障害物ごとに N 個の障害物経路(N>1)を生成したとき、予測部2040は、移動障害物ごとに、訪問回数に関して上位 N 個の経路を、その移動障害物の障害物経路として選択してもよい。次いで、予測部2040は、移動障害物の障害物経路を組み合わせることによって、複数の障害物経路集合を生成する。予測部2040は、K 個の移動障害物がある場合に、最大で N^K 個の障害物経路集合を得ることができる。
【0054】
<候補経路集合の提供:S110>
候補生成部2060は、対象時間窓に対して複数の候補経路集合を生成する(S110)。対象時間窓の候補経路集合は、対象時間窓の経路計画40の候補である。候補経路集合は、各車両20の対象時間窓の間の車両経路を含む。候補経路集合内の車両経路は、互いに競合しない。また、候補経路集合内の車両経路は、対象時間窓の障害物経路集合内の障害物経路とも競合しない。
【0055】
いくつかの実装では、候補生成部2060は、互いに競合しないことが保証される複数車両の経路を見つけることができる決定論的アルゴリズム(換言すれば、MAPF 問題を解決する決定論的アルゴリズム)を行う。複数車両に対して競合しない経路を生成する様々な決定論的アルゴリズムがある。例えば、候補生成部2060は、変形された CBS アルゴリズムを行ってもよい。オリジナルの CBS は非特許文献2に開示されている。以下では、オリジナルの CBS を「オリジナル CBS」と呼び、経路探索装置2000で採用されている変形された CBS を「バリアント CBS」と呼ぶ。
【0056】
CBS は、高レベル探索と低レベル探索とに分割された、2レベル探索アルゴリズムである。高レベル探索は、「制約木(CT:constraint tree)」と呼ばれる二分探索木を使用して行われる。CT の各ノードは、(1)その親ノードで行われた低レベル探索によって検出された競合に関連する時間制約及び位置制約、(2)当該ノード及びその先祖によって示されるすべての制約を満たす単一の候補解(すなわち、すべての車両の経路の候補集合)、及び(3)オリジナル CBS 内のすべての車両の総経路持続時間の和である解の評価、を含む。オリジナル CBS では、CT のルートノードは、制約の空集合を含む。
【0057】
ノードに含まれる制約は、どの車両がどの時刻にどの位置を占有することを禁止されるかを示す。例えば、車両A1と車両A2とが、時刻T1に位置L1で互いに競合することが検出される。この場合、競合を回避するために、「車両A1は、時刻T1に位置L1を占有してはならない」という制約、又は「車両A2は、時刻T1に位置L1を占有してはならない」という制約が採用され得る。
【0058】
CT の各ノードについて、経路が再計画されなければならない車両に対して低レベル探索が呼び出される。オリジナル CBS では、現在のノード及びその先祖によって示される制約を満たしながら車両の新しい経路を見つける経路計画アルゴリズムとして A* 探索アルゴリズムが採用される。しかしながら、バリアント CBS では低レベル探索に使用される経路探索アルゴリズムは A* 探索アルゴリズムに限定されない。
【0059】
バリアント CBS は、少なくとも以下の3点、すなわち、(1)障害物経路集合に基づく制約が CT のルートノードに含まれること、(2)すべての競合ではなく、対象時間窓の間の競合が解消されるべきであること、及び(3)複数の解が出力されること、においてオリジナル CBS と異なる。以下では、これらの点について詳細に説明する。
【0060】
<<(1)障害物経路集合に基づく制約>>
車両20と移動障害物との間の競合を回避するために、バリアント CBS は、障害物経路集合を考慮に入れて車両20の経路の集合を探索することを要求される。具体的には、移動障害物の障害物経路を使用して、その移動障害物との衝突を回避するための制約を生成することができる。例えば、移動障害物が時刻T1において位置L1に位置する場合、どの車両20も時刻T1に位置L1を占有することを許されない。
【0061】
したがって、候補生成部2060は、対象時間窓の障害物経路集合に含まれる障害物経路に基づいて、移動障害物との衝突を回避するための制約を生成し、生成した制約をバリアント CBS の CT に追加する。すべての車両20が移動障害物との衝突を回避しなければならないため、移動障害物との衝突を回避するための制約はすべての車両20において共通である。したがって、移動障害物との衝突を回避するための制約は CT のルートノードに追加される。
【0062】
<<(2)対象時間窓の間の競合の解消>>
オリジナル CBS は、すべての車両20の全移動中に発生したすべての競合を検出し、検出した競合を回避するための制約を CT のノードに追加する。しかしながら、候補経路集合内の車両経路は、すべての車両20がそれらの目的地に到達するまで競合しないことを要求されず、対象時間窓の間に競合しないことを要求される。
【0063】
したがって、バリアント CBS は、対象時間窓の間に発生した競合を検出し、検出した競合を回避するための制約をCTのノードに追加することにより、少なくとも対象時間窓の間には競合しない車両経路を生成する。対象時間窓後の競合を考慮に入れないことにより、バリアント CBS は、少なくとも対象時間窓の間には競合しない車両経路を、車両経路の終了まで競合しない車両経路を生成する場合より少ない計算時間で生成することができる。
【0064】
<<複数の解の出力>>
オリジナル CBS は、移動障害物などの制御不能の障害物がないという仮定の下で、単一の最適解を出力する。一方、バリアント CBS は、制御不能の障害物を考慮に入れて解を評価するために複数の解を出力するように形成される。具体的には、バリアント CBS は、互いに異なる解を提供する複数の CT を生成することにより、複数の解を提供する。各 CT のルートノードでは、「各車両の経路は、その車両について異なる CT のルートノードで生成されるその車両のどんな経路とも、異なっていなければならない」という制限の下で車両の経路の初期集合を生成するために、低レベル探索が呼び出される。なお、障害物経路集合に基づく制約は、すべての CT と共有される。
【0065】
車両V1の経路を生成するために第iの CT のルートノードにおいて低レベル探索が呼び出されるとする。この場合、車両V1は、第1の CT から第(i-1)の CT のルートノードにおいて生成される車両V1のいかなる経路も訪問することを禁止される。
【0066】
候補生成部2060は、バリアント CBS から出力された複数の解の各々を候補経路集合に変換する。バリアント CBS の解における車両20の車両経路は、車両20がその目的地に到達するまでの車両20の位置を示し、候補経路集合における車両20の車両経路は、対象時間窓の間の車両20の位置を示す。したがって、各車両20について、候補生成部2060は、候補経路集合に含まれる車両の車両経路を生成するために、バリアント CBS の解に含まれる車両20の車両経路から対象時間窓の終了後の車両20の位置を除去し得る。
【0067】
<候補経路集合の評価:S112>
評価部2080は、候補経路集合内の車両経路の続きのヒューリスティック探索によって、候補経路集合を評価する。例えば、MCTS に分類されるヒューリスティック探索アルゴリズムが、候補経路集合を評価するために採用されてもよい。
【0068】
MCTS は、「可能なアクションのうちのどれが次のステップで選択されるべきか」という問題を解決するために、囲碁やチェスなどのゲームに適用されている。この目的のために、MCTS は、ルートノードとルートノードの複数の子ノードとを有する探索木を生成する。ルートノードは、現在の状態を表す。ルートノードとその子ノードとの間の各エッジは、可能な次のアクションのうちの1つを表す。ルートノードの子ノードは、その親エッジによって表されるアクションが取られた後の状態を表す。次いで、MCTS は、1)選択ステップ、2)展開ステップ、3)ロールアウトステップ、及び4)逆伝播ステップのセットを繰り返し行うことによって探索木を繰り返し展開して、可能な次のアクションの各々を評価する。
【0069】
選択ステップは、展開されるべきノード(換言すれば、新しい子ノードが付加されるノード)を選択するステップである。展開ステップは、新しい子ノードを生成して選択ノードに付加するステップである。ロールアウトステップは、新しい子ノードからランダムロールアウトを実行するステップである。逆伝播ステップは、新しい子ノードに評価スコアを割り当て、ロールアウトの結果に基づいて新しい子ノードの先祖の評価スコアを更新するステップである。
【0070】
経路探索装置2000の場合、対象時間窓の各候補経路集合は、次の時間窓に対する車両20の可能なアクションの集合を記述し、MCTS のコンテキストにおける次のステップの可能なアクションとして扱うことができる。したがって、評価部2080は、「候補経路集合のうちのどれが次の時間窓の経路計画40として選択されるべきか」という問題を表す探索木で MCTS を行うことによって、複数の候補経路集合を評価する。なお、車両20及び移動障害物のアクションは、待機及び可能な移動(例えば、2D グリッドマップにおける上下左右の移動)を含み得る。以下では、車両20及び移動障害物をまとめて「エンティティ」と呼ぶ。
【0071】
図5は、評価部2080で採用されている MCTS の探索木の初期状態を示している。探索木130は、ルートノード131、エッジ132、ノード133、エッジ134、及びノード135を含む。ルートノード131は、車両情報60及び障害物情報80によって定義することができる現在の状態を表す。
【0072】
初期状態の探索木130は2つの層に分割されており、第1の層は障害物経路集合の選択を表し、第2の層は候補経路集合の選択を表す。エッジ132は、対象時間窓の障害物経路集合に相当する、対象時間窓の間に移動障害物によって取られる可能なアクションの集合を表す。
図5では、第iの障害物経路集合を OPSi と表記している。ノード133は、親エッジ132によって表されるアクションが取られた後の状態を表す。障害物経路集合 OPSi によって表されるアクションが取られた後の状態を、
図5では Si と表記している。
【0073】
エッジ134は、対象時間窓の候補経路集合に相当する、対象時間窓の間に車両20によって取られる可能なアクションの集合を表す。
図5では、第iの障害物経路集合の下の第jの候補経路集合を CPSi-j と表記している。ノード135は、親エッジ134によって表されるアクションが取られた後の状態を表す。候補経路集合 CPSi-j によって表されるアクションが取られた後の状態を、
図5では Si-j と表記している。
【0074】
探索木130を初期設定した後、評価部2080は、ノード135から探索木130を展開することによってエンティティの将来のアクションの様々なパターンをヒューリスティックに探索し、探索木の各ノードの評価スコア(例えば、上側信頼木(UCT:Upper Confidence Tree))を計算してアクションの各パターンを評価する。以下では、MCTS によって候補経路集合を評価する2つの方法例について説明する。
【0075】
<<MCTS の第1の例>>
図6は、評価部2080で採用されている MCTS の第1の例の探索木を示している。この例では、対象時間窓の開始時刻及び時間窓の長さを、それぞれ、Ts 及び WL と表記している。探索木130は、単一の時間ステップにおけるすべての移動障害物又はすべての車両20のアクションの集合を表すエッジ136を付加することによって展開される。この特徴を明確にするために、
図6では、探索木130は、各々が単一の時間ステップに対応する層140に分割されている。また、層140は、2つの副層141、142に分割されている。副層141内のエッジ136は、対応する時間ステップにおいてすべての移動障害物によって取られたアクションの集合を表し、副層142内のエッジ136は、対応する時間ステップにおいてすべての車両20によって取られたアクションの集合を表す。なお、副層141、142の順序は入れ替え可能であってもよい。ノード137は、その親エッジ136によって表されるアクションが取られた後の状態を表す。
【0076】
上述したように、MCTS は、選択ステップ、展開ステップ、ロールアウトステップ、及び逆伝播ステップのセットを繰り返し行う。MCTS の第1の例の選択ステップにおいて、ノードは評価スコアに基づいて選択される。具体的には、評価部2080は、ルートノードから開始して、探索木130のリーフノードに到達するまでの連続した子ノードを選択し、選択したリーフノードを展開されるべきノードとして扱う。探索木130の各階層において、評価部2080は、評価スコアが最も大きいノードを選択する。
【0077】
なお、選択ステップの最初の実行に関しては、展開されるべきノードは評価スコアなしで選択され得る。例えば、評価部2080は、ノード135のうちの1つをランダムに選択してもよい。別の例では、バリアント CBS においてスコアが最も大きい解から生成されたノード135が、展開されるべきノードとして選択され得る。
【0078】
展開ステップにおいて、評価部2080は、新しいエッジ136及び新しいノード137を生成し、それらを展開されるべきノードに付加する。新しいエッジ136が副層141に対して生成される場合、評価部2080は、すべての移動障害物のアクションの集合を表す新しいエッジ136を生成する。一方、新しいエッジ136が副層142に対して生成される場合、評価部2080は、すべての車両20のアクションの集合を表す新しいエッジ136を生成する。
【0079】
評価部2080は、各エンティティに対して(すなわち、各移動障害物に対して、又は各車両20に対して)アクションの種類を決定することによって、新しいエッジ136に割り当てるべきアクションの集合を生成する。アクションの種類は、各エンティティの可能なアクションからランダムに選択されてもよい。しかしながら、新しいエッジ136に割り当てられるアクションの集合は、その兄弟エッジ、すなわち、新しいエッジ136と親ノードを共有するエッジ136に既に割り当てられているアクションのどんな集合とも異ならなければならない。可能なアクションは、展開されるべきノードによって示されるエンティティの位置及び地図情報70によって示される地図に基づいて決定することができる。可能なアクションがエンティティの種類に依存する場合、その新しいエッジ136が生成されるエンティティの種類も、可能なアクションを決定するために考慮に入れられる。
【0080】
評価部2080は、その親ノード(すなわち、展開されるべきノード)によって表される状態及び新しいエッジ136によって表されるアクションに基づいて、新しいノード137を生成する。具体的には、ノード137によって表されるべき状態は、新しいエッジ136によって表されるアクションに従って、エンティティの位置を親ノードによって示される位置から変更することによって生成され得る。
【0081】
ロールアウトステップにおいて、評価部2080は、すべての車両20の移動が終了するまで、新しいノード137からのランダムなロールアウトを行う。なお、すべての車両20の移動は、すべての車両20がそれらの目的地に到達したとき、又はデッドロックが発生したときに終了し得る。ロールアウトでは、評価部2080は、エンティティごとに順に、可能なアクションからのアクションのランダムな選択を繰り返し行い得る。
【0082】
逆伝播ステップにおいて、評価部2080は、新しいノード137に評価スコアを割り当て、新しいノード137の各先祖(ノード133及び135を含む)の評価スコアを更新する。経路探索装置2000において、評価スコアは、車両経路の集合が車両20を制御するのにどれだけ適しているかを表すように定義されうる。
【0083】
評価スコアは、メイクスパンや総時間など、車両経路の集合のコストを反映するように定義されてもよい。経路の集合のメイクスパンは、すべての車両20がそれらの目的地に到達するのに必要な時間(換言すれば、すべての最長車両経路の長さ)である。一方、経路の集合の総時間は、各車両20がその目的地に到達するのに必要な時間の合計(換言すれば、すべての車両20の車両経路の合計長)である。また、評価スコアは、競合及びデッドロックの発生を反映するように定義されてもよい。
【0084】
いくつかの実施の形態では、評価スコアは、以下のように UCT の変形として定義される。
【数1】
式中、iは、ノードのインデックスを表し、UCT_i は、インデックスがiのノード(以下、「ノードi」と表記する)の UCT を表し、Q_i は、ノードiからのロールアウトに対する報酬の合計を表し、n_i は、ノードi又はその子孫から行われたロールアウトの数を表し、cは、第2の項の重みを表し、N_i は、ノード n_i の親から行われたロールアウトの総数を表す。
【0085】
報酬は、上述の要因、例えば、コスト、競合、デッドロックを反映するように定義され得る。具体的には、報酬は、コストが小さくなるほど大きくなるように定義され得る。報酬は、競合の数が多くなるほど小さくなるように定義され得る。デッドロックが発生した場合の報酬は、デッドロックが発生しなかった場合の報酬よりも小さくなるように定義され得る。
【0086】
MCTS は、所定の終了条件が満たされるまで、選択ステップから逆伝播ステップまでのセットを繰り返し行う。次いで、評価部2080は、MCTS による評価の結果として、各々が候補経路集合のうちの1つに対応するノード135の評価スコアを入手する。
【0087】
MCTS を終了させる様々な周知の条件があってもよく、それらの条件のうちの1つ以上を、評価部2080によって行われる MCTS の第1の例に採用することができる。例えば、終了条件は、「ステップのセットを所定の回数実行すること」又は「MCTS の実行を開始した後、所定の長さの期間が満了すること」であってもよい。
【0088】
<<MCTS の第2の例>>
図7は、評価部2080で採用されている MCTS の第2の例の探索木を示している。このアルゴリズムは、展開ステップにおける展開の単位が MCTS の第1の例とは異なる。MCTS の第1の例における展開の単位は「単一の時間ステップにおけるすべての移動障害物又はすべての車両20の単一のアクション」である。したがって、展開ステップで追加された各エッジ136が表すのは、単一の時間ステップにおけるすべての移動障害物又はすべての車両20のアクションの集合である。一方、MCTS の第2の例における展開の単位は「時間窓の間のすべての移動障害物又はすべての車両20のアクションの集合」である。したがって、展開ステップで追加された各エッジ138が表すのは、時間窓の間のすべての移動障害物又はすべての車両20のアクションの集合である。なお、MCTS の第2の例の探索木130と MCTS の第1の例の探索木130とを区別するために、MCTS の第2の例の探索木においてノード135の下に追加されるエッジ及びノードを、それぞれ、「エッジ138」及び「ノード139」と表記する。
【0089】
MCTS の第2の例の探索木130は、各々が単一の時間窓に対応する複数の層143を含む。また、層143は、2つの副層144、145に分割されている。副層144内のエッジ138は、対応する時間窓においてすべての移動障害物によって取られたアクションの集合を表し、副層145内のエッジ138は、対応する時間窓においてすべての車両20によって取られたアクションの集合を表す。
【0090】
詳細に後述するように、副層145内のエッジ138によって表されるアクションの集合は、経路が互いに競合しなくなるように決定される。したがって、MCTS の第2の例によれば、単一の時間窓よりも長い期間の間競合しないことが保証される様々なパターンの経路を探索することができる。一方、MCTS の第1の例によれば、MCTS の第2の例より少ない計算時間で様々なパターンの経路を探索することができる。
【0091】
以下では、MCTS の第2の例によって行われる選択ステップから逆伝播ステップの各々について詳細に説明する。説明を容易にするために、選択ステップの前に展開ステップについて説明する。
【0092】
展開ステップにおいて、MCTS の第2の例は、選択ステップで選択されたリーフノードに新しいエッジ138及び新しいノード139を付加することによって探索木130を展開する。新しいエッジ138を生成するために、評価部2080は、選択ステップで選択されたリーフノードに対応する時間窓の後に続く時間窓(以下、「展開された時間窓」と呼ぶ)の間に、すべての移動障害物又はすべての車両20のアクションの集合を決定する。
【0093】
評価部2080は、予測部2040が対象時間窓に対して障害物経路集合を生成する方法と同様の方法で、展開された時間窓に対してすべての移動障害物のアクションの集合を決定する。具体的には、新しいエッジ138を副層144に追加するときに、評価部2080は、上述の障害物シミュレータを使用してすべての移動障害物のアクションの集合を生成し得る。移動障害物の位置の履歴は、展開されるべきノード及びその先祖によって表される。
【0094】
評価部2080は、候補生成部2060が対象時間窓に対して候補経路集合を生成する方法と同様の方法で、展開された時間窓に対してすべての車両20のアクションの集合を決定する。具体的には、新しいエッジ138を副層145に追加するときに、評価部2080は、上述のバリアント CBS を用いてすべての車両20のアクションの集合を生成し得る。車両20の現在位置は、展開されるべきノードによって表される。障害物経路集合は、展開されるべきノードの親エッジによって表される。以下では、評価部2080によって生成される車両20の経路の集合を、候補経路集合と区別するために「車両経路集合」と呼ぶ。
【0095】
なお、上述したように、バリアント CBS は複数の車両経路集合を生成する。したがって、評価部2080は、バリアント CBS によって生成された車両経路集合のうちの1つを選択し、それを新しいエッジ138に割り当てる。その他の車両経路集合は、将来の使用のために展開されるべきノードと関連付けて保持される。具体的には、新しいノード138が副層145に追加されるイテレーションの選択ステップにおいて、評価部2080は、展開されるべきノードと関連付けられおり、かつ、新しいエッジ138にまだ割り当てられていない車両経路集合があるか否かを判定する。
【0096】
新しいエッジ138にまだ割り当てられていない車両経路集合がある場合、評価部2080は、それらの車両経路集合と関連付けられているノードを、選択ステップで展開されるべきノードとして選択し、それらの車両経路集合のうちの1つを選択して、展開ステップで選択された車両経路集合を表す新しいノード138を生成する。そうでない場合、評価部2080は、選択ステップにおいて、ノードの評価スコアに基づいて、展開されるべきリーフノードを選択する。
【0097】
また、新しいエッジ138が副層144に追加されるときに、評価部2080は、選択ステップにおいて、ノードの評価スコアに基づいて、展開されるべきリーフノードを選択する。
【0098】
新しいエッジ138を生成した後、評価部2080は、新しいノード139を生成し、新しいエッジ138及び新しいノード139を展開されるべきノードに付加する。新しいノード139は、新しいノード137を生成する方法と同じ方法で生成されてもよい。
【0099】
ロールアウトステップ及び逆伝播ステップに関して、MCTS の第2の例は、MCTS の第1の例と同じやり方で機能する。具体的には、ロールアウトステップにおいて、MCTS の第2の例は、ロールアウトがその終了に到達するまで、新しいノード139からのランダムなロールアウトを行い、当該ロールアウトの中では、各エンティティのアクションが順にランダムに選択される。次いで、逆伝播ステップにおいて、MCTS の第2の例は、新しいノード139に評価スコアを割り当て、新しいノード139の先祖の評価スコアを更新する。MCTS の第2の例における評価スコアの定義は、MCTS の第1の例における定義と同じであってもよい。
【0100】
MCTS の第2の例は、所定の条件が満たされるまで、選択ステップから逆伝播ステップまでのセットを繰り返し行う。この所定の条件は、MCTS の第1の例で採用されている条件と同じであってもよい。
【0101】
<経路計画40の出力:S114>
出力部2100は、候補経路集合の評価に基づいてそれらのうちの1つを選択し、選択した候補経路集合を対象時間窓の経路計画40として出力する(S114)。いくつかの実施の形態では、MCTS の探索木130から、出力部2100は、評価スコアがすべてのノード135の中で最も大きいノード135を選択する。次いで、出力部2100は、選択したノード135の親エッジ134に対応する候補経路集合を、出力されるべき候補経路集合(すなわち、対象時間窓の経路計画40として採用される候補経路集合)として選択する。出力部2100は、経路計画40として選択された候補経路集合を示す、出力情報と呼ばれる情報を出力する。
【0102】
出力情報は、様々なやり方で出力され得る。例えば、出力部2100は、出力情報を記憶装置に格納してもよい。別の例では、出力部2100は、出力情報を、経路計画40によって示された車両経路を各車両20に配信するコンピュータなどの別のコンピュータに送信してもよい。別の例では、出力部2100は、経路計画40がディスプレイ装置に表示されるように、出力情報をディスプレイ装置に出力してもよい。
【0103】
実施の形態を参照して本開示を説明したが、本開示は上述の実施の形態に限定されるものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。そして、各実施の形態は、適宜他の実施の形態と組み合わせることができる。
【0104】
本開示のプログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disc(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。
【0105】
本出願は、2022年1月13日に出願された日本出願特願2022-003872を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【0106】
20 車両
40 経路計画
50 経路
60 車両情報
70 地図情報
80 障害物情報
130 探索木
131 ルートノード
132 エッジ
133 ノード
134 エッジ
135 ノード
136 エッジ
137 ノード
138 エッジ
139 ノード
140 層
141 副層
142 副層
143 層
144 副層
145 副層
1000 コンピュータ
1020 バス
1040 プロセッサ
1060 メモリ
1080 ストレージデバイス
1100 入出力インターフェース
1120 ネットワークインターフェース
2000 経路探索装置
2020 取得部
2040 予測部
2060 候補生成部
2080 評価部
2100 出力部
【手続補正書】
【提出日】2024-07-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
車両情報、障害物情報、及び地図情報を取得し、
前記車両情報は、複数の車両それぞれの現在位置及び目的位置を含み、
前記障害物情報は、1つ以上の移動障害物の位置の履歴を含み、
前記地図情報は、前記車両及び前記移動障害物が移動する空間の地図を含み、
前記障害物情報及び前記地図情報に基づいて、所定の長さの対象時間窓の間の各
前記移動障害物の1つ以上の障害物経路を生成し、
前記車両情報、前記障害物経路、及び前記地図情報に基づいて、複数の候補経路集合を生成し、
前記候補経路集合は、各
前記車両の前記対象時間窓の間の車両経路を含み、
前記車両経路は
、他の
前記車両経路及び前記障害物経路と競合せず、
前記候補経路集合内の前記車両経路の続き
をヒューリスティック探索
することによって
、前記候補経路集合を評価し、
前記候補経路集合の評価に基づいて前記候補経路集合のうちの1つを選択し、前記選択した候補経路集合を出力する
、経路探索装置。
【請求項2】
前記候補経路集合の前記生成は、変形された競合ベース探索アルゴリズムを行うことを含み、
前記変形された競合ベース探索アルゴリズムは、
前記障害物経路に基づいて、前記車両と前記移動障害物との間の競合を回避する制約を生成し、前記生成した制約を競合木のルートノードに追加することと、
前記対象時間窓の間の競合を解消することと、
2つ以上の解を出力して前記複数の候補経路集合を生成することと、を含む、請求項1に記載の経路探索装置。
【請求項3】
前記候補経路集合は、モンテカルロツリー探索を実行することによって評価され、
前記モンテカルロツリー探索は、
ルートノードによって
前記候補経路集合ごとに子ノードが保持される探索木を生成
することを含み、
前記子ノードは、前記候補経路集合及び前記障害物経路によって表される前記対象時間窓の間の前記移動障害物及び前記車両のアクションの集合を表す親エッジを有し、
選択ステップ、展開ステップ、ロールアウトステップ、及び逆伝播ステップのセットを繰り返し実行
することを含み、
前記選択ステップにおいて、各ノードの評価スコアに基づいて展開されるべきノードが選択され、
前記展開ステップにおいて、
新しいエッジと新しいノードとのペア
が生成され
、
前記生成されたペアが、展開されるべき前記ノードに付加され、
前記新しいエッジは、前記車両及び前記移動障害物のうちの1つ以上についての1つ以上のアクションを表し、
前記ロールアウトステップにおいて、すべての
前記車両が前記車両の目的地に到達するまでの、又はデッドロックが発生するまでの前記車両及び前記移動障害物の経路の続きを生成するためにロールアウトが行われ、
前記逆伝播ステップにおいて、前記ロールアウトの結果に基づいて、展開されるべき前記ノード及び前記ノードの先祖に対して前記評価スコアが計算される、請求項1に記載の経路探索装置。
【請求項4】
前記新しいエッジは、前記車両又は前記移動障害物の時間ステップにおけるアクションを表し、
前記新しいエッジは、前記展開ステップの前記繰り返し実行において順に各
前記車両及び
前記移動障害物に対して生成される、請求項3に記載の経路探索装置。
【請求項5】
前記新しいエッジは、時間窓の間の前記車両及び前記移動障害物のアクションの集合を表す、請求項3に記載の経路探索装置。
【請求項6】
前記評価スコアは、前記ロールアウトの結果として得られた前記車両の前記経路のコスト、前記ロールアウトにおいて発生した競合の数、前記ロールアウトにおいてデッドロックが発生するか否か、又はこれらのうちの2つ以上に基づいて計算される、請求項3に記載の経路探索装置。
【請求項7】
車両情報、障害物情報、及び地図情報を取得する
ステップを含み、
前記車両情報は、複数の車両それぞれの現在位置及び目的位置を含み、
前記障害物情報は、1つ以上の移動障害物の位置の履歴を含み、
前記地図情報は、前記車両及び前記移動障害物が移動する空間の地図を含み、
前記障害物情報及び前記地図情報に基づいて、所定の長さの対象時間窓の間の各
前記移動障害物の1つ以上の障害物経路を生成する
ステップを含み、
前記車両情報、前記障害物経路、及び前記地図情報に基づいて、複数の候補経路集合を生成する
ステップを含み、
前記候補経路集合は、各
前記車両の前記対象時間窓の間の車両経路を含み、
前記車両経路は
、他の
前記車両経路及び前記障害物経路と競合せず、
前記候補経路集合内の前記車両経路の続き
をヒューリスティック探索
することによって
、前記候補経路集合を評価する
ステップを含み、
前記候補経路集合の評価に基づいて前記候補経路集合のうちの1つを選択して前記選択した候補経路集合を出力する
ステップを含む、コンピュータによって行われる経路探索方法。
【請求項8】
前記候補経路集合の前記生成は、変形された競合ベース探索アルゴリズムを行うことを含み、
前記変形された競合ベース探索アルゴリズムは、
前記障害物経路に基づいて、前記車両と前記移動障害物との間の競合を回避する制約を生成し、前記生成した制約を競合木のルートノードに追加することと、
前記対象時間窓の間の競合を解消することと、
2つ以上の解を出力して前記複数の候補経路集合を生成することとを含む、請求項7に記載の経路探索方法。
【請求項9】
車両情報、障害物情報、及び地図情報を取得することを
コンピュータに実行させ、
前記車両情報は、複数の車両それぞれの現在位置及び目的位置を含み、
前記障害物情報は、1つ以上の移動障害物の位置の履歴を含み、
前記地図情報は、前記車両及び前記移動障害物が移動する空間の地図を含み、
前記障害物情報及び前記地図情報に基づいて、所定の長さの対象時間窓の間の各
前記移動障害物の1つ以上の障害物経路を生成することを
前記コンピュータに実行させ、
前記車両情報、前記障害物経路、及び前記地図情報に基づいて、複数の候補経路集合を生成することを
前記コンピュータに実行させ、
前記候補経路集合は、各
前記車両の前記対象時間窓の間の車両経路を含み、
前記車両経路は
、他の
前記車両経路及び前記障害物経路と競合せず、
前記候補経路集合内の前記車両経路の続き
をヒューリスティック探索
することによって
、前記候補経路集合を評価することを
前記コンピュータに実行させ、
前記候補経路集合の評価に基づいて前記候補経路集合のうちの1つを選択して前記選択した候補経路集合を出力することを
前記コンピュータに実行させるプログラ
ム。
【請求項10】
前記候補経路集合の前記生成は、変形された競合ベース探索アルゴリズムを行うことを含み、
前記変形された競合ベース探索アルゴリズムは、
前記障害物経路に基づいて、前記車両と前記移動障害物との間の競合を回避する制約を生成し、前記生成した制約を競合木のルートノードに追加することと、
前記対象時間窓の間の競合を解消することと、
2つ以上の解を出力して前記複数の候補経路集合を生成することとを含む、請求項
9に記載の
プログラム。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0003
【補正方法】変更
【補正の内容】
【0003】
【非特許文献1】Roni Stern、Nathan Sturtevant、Ariel Felner、Sven Koenig、Hang Ma、Thayne Walker、Jiaoyang Li、Dor Atzmon、Liron Cohen、T.K.Satish Kumar、Eli Boyarski、及び Roman Bartak、「Multi-Agent Pathfinding: Definitions, Variants, and Benchmarks」、[online]、2019年1月19日、[2021年12月24日検索]、インターネット<arXiv,https://arxiv.org/pdf/1906.08291.pdf>
【非特許文献2】Guni Sharon、Roni Stern、Ariel Felner、及び Nathan R.Sturtevant、「Conflict-based search for optimal multi-agent pathfinding」、Elsevier、Artificial Intelligence、Volume 219、 40-66 ページ、2015年2月
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0008
【補正方法】変更
【補正の内容】
【0008】
本開示によれば、1つ以上の制御不能の移動障害物が存在する状況下で複数車両のための経路の集合を見つける新規の技術が提供される。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0034
【補正方法】変更
【補正の内容】
【0034】
ストレージデバイス1080は、上述のプログラムを記憶してもよい。プロセッサ1040は、プログラムを実行して、経路探索装置2000の各機能部を実現する。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0046
【補正方法】変更
【補正の内容】
【0046】
なお、車両20の目的位置はすべての時間窓において共通であるため、取得部2020が、最初のイテレーションを除くループ処理L1のイテレーションごとに経路探索装置2000の外部から目的位置を入手する必要はない。したがって、いくつかの実装では、取得2020は、ループ処理L1の最初のイテレーションで経路探索装置2000に(例えば、ストレージデバイス1080に)車両20の目的位置をキャッシュし、その他のイテレーションではキャッシュから入手してもよい。この場合、車両情報60は、ループ処理L1の最初のイテレーションを除いて、車両20の目的位置を含むことを要求されない。
【手続補正7】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【手続補正8】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【国際調査報告】