IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ラピュタロボティックス株式会社の特許一覧

特開2022-82419動作環境におけるルートプランを最適化するためのシステム及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022082419
(43)【公開日】2022-06-01
(54)【発明の名称】動作環境におけるルートプランを最適化するためのシステム及び方法
(51)【国際特許分類】
   G05D 1/02 20200101AFI20220525BHJP
【FI】
G05D1/02 H
G05D1/02 P
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2021107768
(22)【出願日】2021-06-29
(31)【優先権主張番号】16/953,415
(32)【優先日】2020-11-20
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】517175046
【氏名又は名称】ラピュタロボティックス株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジュヨン リー ウエン
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301AA01
5H301AA10
5H301BB05
5H301BB07
5H301BB14
5H301CC03
5H301CC06
5H301CC10
5H301DD07
5H301DD17
5H301KK03
5H301KK08
5H301KK09
5H301KK18
5H301KK19
5H301LL06
(57)【要約】
【課題】 動作環境で直面する重要なシナリオを処理するためのルートプランを最適化するためのシステム及び方法を提供する。
【解決手段】 システム又はプラットフォームは、動作環境に関連する入力に基づいて1つ又は複数のノードを分析する。システムは、分析したノードに基づいて1つ又は複数のルートを計画し、生成したルートプランを提供する。計画に基づいて、システムは、例えば衝突の回避又は渋滞の最小化、ロボットの損傷、車両又は倉庫の性能等、重要なシナリオの1つ又は複数のルートプランを解析できる。ルートプランを解析した後に、システムは、1つ又は複数のルートプランを最適化して、最適化したルートプランを提供する。最適化したルートプランは、1台又は複数台の自律型車両に配信される。次に、自律型車両の車列は、進行状況メッセージをルーティングし、プラットフォームとフィードバックを共有できる。
【選択図】図7
【特許請求の範囲】
【請求項1】
1つ又は複数の最適化したルートプランを1つ又は複数の自律型車両に配信するためのコンピュータで実施される方法であって、当該方法は、
動作環境に関連する1つ又は複数の入力に基づいて1つ又は複数のノードを分析するステップであって、該ノードは、前記動作環境内の空間の領域である、分析するステップと、
前記動作環境で前記分析したノードに基づいて1つ又は複数のルートプランを計画して、1つ又は複数の生成したルートプランを提供するステップと、
前記計画に基づいて、1つ又は複数の重要なシナリオに対して前記生成したルートプランを解析するステップと、
該解析に基づいて前記生成したルートプランを最適化して、最適化したルートプランを提供するステップと、
該最適化したルートプランを前記自律型車両に配信するステップと、を含む、
コンピュータで実施される方法。
【請求項2】
前記重要なシナリオに対して前記生成したルートプランを解析するステップは、
第1の自律型装置の速度、行動、向き、又は能力のうちの少なくとも1つ又は複数に基づいて、第1の自律型車両の優先順位の値を特定するステップと、
前記第1の自律型車両の前記特定した優先順位の値に基づいて、前記生成したルートプランからルートプランに優先順位を付けて、優先順位付けしたルートプランを提供するステップと、
該優先順位付けしたルートプランに基づいて、前記第1の自律型車両と第2の自律型車両との間の前記重要なシナリオを回避するステップであって、該重要なシナリオには、衝突回避、渋滞の最小化、安全上の問題の防止、又は少なくとも車両又は倉庫の関連する性能の1つ又は複数のシナリオが含まれる、回避するステップと、を含む、請求項1に記載のコンピュータで実施される方法。
【請求項3】
前記優先順位付けしたルートプランに基づいて、前記第1の自律型車両と前記第2の自律型車両との間の前記重大なシナリオを回避するステップは、
衝突を回避するために前記第1の自律型車両の速度を計算するステップと、
該計算した速度に従って前記第1の自律型装置を移動させて、前記第2の自律型装置より先に進ませるステップであって、前記第2の自律型装置は、より遅く移動する、現在の場所で待機する、又は別の場所に迂回することの少なくとも1つによって、前記第1の自律型装置が先に進むのを可能にする、進ませるステップと、を含む、請求項2に記載のコンピュータで実施される方法。
【請求項4】
前記解析に基づいて前記生成したルートプランを最適化するステップは、
前記生成したルートプランによってカバーされる1つ又は複数の領域を、少なくとも1つ又は複数の幾何学的形状で表すステップと、
前記表した領域同士の間に交差部があるかどうかを判定するステップであって、前記表した領域同士の間の交差部は、前記生成したルートプラン同士の間の1つ又は複数の衝突の存在を示す、判定するステップと、
前記表した領域同士の間の交差部の前記判定に基づいて、前記生成したルートプランから最適なルートプランを特定するステップと、を含む、請求項1に記載のコンピュータで実施される方法。
【請求項5】
前記解析に基づいて前記生成したルートプランを最適化するステップは、
異なる時点で衝突のない複数の前記生成したルートプランを決定するステップと、
衝突のない前記決定し、生成したルートプランに基づいて、前記生成したルートプランから1つ又は複数の最適なルートプランを特定するステップと、を含む、請求項1に記載のコンピュータで実施される方法。
【請求項6】
前記生成したルートプランを最適化するステップは、
前記生成したルートプランの前記表した領域に基づいて前記動作環境における衝突のない位置を計算するステップであって、該衝突のない位置を計算するステップは、自律型装置の現在の位置に基づいて衝突を予測するステップを含む、計算するステップと、
前記計算に基づいて新しいルートプランを生成するステップであって、該生成した新しいルートプランは、1つ又は複数の計画したルートプランと衝突しない、生成するステップと、を含む、請求項1に記載のコンピュータで実施される方法。
【請求項7】
前記生成したルートプランを最適化するステップは、
前記生成したルートプランにおいて衝突ノード同士の間の衝突を特定するステップと、
新しいノードを動的に生成するステップであって、前記衝突ノード同士の間で前記特定した衝突が終了すると、前記新しいノードが通過されるようになる、生成するステップと、
前記動的に生成した新しいノードを含めるように前記生成したルートプランを更新するステップと、を含む、請求項1に記載のコンピュータで実施される方法。
【請求項8】
前記生成したルートプランを最適化するステップは、
第1のノードと第2のノードとの間の経路が衝突につながる可能性があるかどうかを判定するステップであって、前記第1のノードは前の(prior)ノードに接続される、判定するステップと、
該判定に基づいて、複製ノードを動的に作成するステップであって、該複製ノードのエッジが前記第1のノードのエッジに類似している、作成するステップと、
前記前のノードから前記複製ノードへの第1の経路、及び前記複製ノードから終端(end)ノードへの第2の経路を通過することを含むルートプランを生成するステップと、
前記第1のノードと前記第2のノードとの間の前記衝突が終了した場合に、前記複製ノードから前記終端ノードへの通過を許可するステップと、を含む、請求項1に記載のコンピュータで実施される方法。
【請求項9】
前記生成したルートプランを最適化するステップは、
ルートプランが前記生成したルートプランと衝突する可能性があると判定するステップと、
該判定に基づいて、前記自律型車両のうちの1台に特定のノードで一定期間待機するように命令するステップと、
衝突を回避するために、前記自律型車両のうちの前記1台が前記一定期間後に移動できる新しい位置を計算するステップと、
該計算に基づいて、前記自律型車両のうちの前記1台を前記新しい位置に移動させるように前記ルートプランを更新するステップと、を含む、請求項1に記載のコンピュータで実施される方法。
【請求項10】
コンピュータシステムであって、当該コンピュータシステムは、
複数の自律型車両を含む動作環境と、
1つ又は複数のプロセッサ、及びコンピュータ実行可能命令を記憶した1つ又は複数のコンピュータ可読記憶媒体を含むプラットフォームと、を含み、
前記コンピュータ実行可能命令が前記1つ又は複数のプロセッサによって実行されると、当該コンピュータシステムに、前記複数の自律型車両のうちの1つ又は複数のルートプランを最適化する段階を実行させ、該段階には、
前記動作環境に関連する1つ又は複数の入力に基づいて1つ又は複数のノードを分析することであって、該ノードは前記動作環境内の空間の領域である、前記分析することと、
前記動作環境で前記分析したノードに基づいて1つ又は複数のルートプランを計画して、1つ又は複数の生成したルートプランを提供することと、
前記計画に基づいて、1つ又は複数の重要なシナリオに対して前記生成したルートプランを解析することと、
該解析に基づいて前記生成したルートプランを最適化して、最適化したルートプランを提供することと、
該最適化したルートプランを前記自律型車両に配信することと、が含まれる、
コンピュータシステム。
【請求項11】
前記重要なシナリオに対して前記生成したルートプランを解析することは、
第1の自律型装置の速度、行動、向き、又は能力のうちの少なくとも1つ又は複数に基づいて、第1の自律型車両の優先順位の値を特定することと、
前記第1の自律型車両の前記特定した優先順位の値に基づいて、前記生成したルートプランからルートプランに優先順位を付けて、優先順位付けしたルートプランを提供することと、
該優先順位付けしたルートプランに基づいて、前記第1の自律型車両と第2の自律型車両との間の前記重要なシナリオを回避することと、を含み、
前記重要なシナリオには、衝突回避、渋滞の最小化、安全上の問題の防止、又は少なくとも車両又は倉庫の関連する性能の1つ又は複数のシナリオが含まれる、請求項10に記載のコンピュータシステム。
【請求項12】
前記解析に基づいて前記生成したルートプランを最適化することは、
前記生成したルートプランによってカバーされる1つ又は複数の領域を、少なくとも1つ又は複数の幾何学的形状で表すことと、
前記表した領域同士の間に交差部があるかどうかを判定することであって、前記表した領域同士の間の交差部は、前記1つ又は複数の生成したルートプラン同士の間に1つ又は複数の衝突の存在を示す、前記判定することと、
前記表した領域同士の間の交差部の前記判定に基づいて、前記生成したルートプランから最適なルートプランを特定することと、を含む、請求項10に記載のコンピュータシステム。
【請求項13】
前記解析に基づいて生成したルートプランを最適化することは、
異なる時点で衝突のない前記生成したルートプランを決定することと、
衝突のない前記決定したルートプランに基づいて、前記生成したルートプランから1つ又は複数の最適なルートプランを特定することと、を含む、請求項10に記載のコンピュータシステム。
【請求項14】
前記生成したルートプランを最適化することは、
前記生成したルートプランの前記表した領域に基づいて前記動作環境における衝突のない位置を計算することであって、該衝突のない位置を計算することは、自律型装置の現在の場所に基づいて衝突を予測することを含む、前記計算することと、
前記計算に基づいて新しいルートプランを生成することであって、該生成した新しいルートプランは1つ又は複数の計画したルートプランと衝突しない、前記生成することと、を含む、請求項10に記載のコンピュータシステム。
【請求項15】
前記1つ又は複数のルートプランを最適化することは、
前記生成したルートプランにおいて衝突ノード同士の間の衝突を特定することと、
新しいノードを動的に生成することであって、前記衝突ノード同士の間で前記特定した衝突が終了すると、前記新しいノードが通過されるようになる、前記生成することと、
前記動的に生成した新しいノードを含めるように前記生成したルートプランを更新することと、を含む、請求項10に記載のコンピュータシステム。
【請求項16】
前記新しいノードを動的に生成することは、
前記衝突ノード同士の間で前記特定した衝突が終了するまで、前記新しいノードで待機することと、
前記衝突ノードのうちの1つに接続される以前のノードに引き返すことと、
該引き返されたノードのエッジを含む新しいノードをコピーすることと、を含む、請求項15に記載のコンピュータシステム。
【請求項17】
前記生成したルートプランを最適化することは、
第1のノードと第2のノードとの間の経路が衝突につながる可能性があるかどうかを判定することであって、前記第1のノードは前のノードに接続される、前記判定することと、
該判定に基づいて、複製ノードを動的に作成することであって、複製ノードのエッジが前記第1のノードのエッジに類似している、作成することと、
前記前のノードから前記複製ノードへの第1の経路、及び前記複製ノードから終端ノードへの第2の経路を通過することを含むルートプランを生成することと、
前記第1のノードと前記第2のノードとの間の前記衝突が終了した場合に、前記複製ノードから前記終端ノードへの通過を許可することと、を含む、請求項10に記載のコンピュータシステム。
【請求項18】
前記生成したルートプランを最適化することは、
ルートプランが前記生成したルートプランと衝突する可能性があると判定することと、
前記自律型車両のうちの1台に、特定のノードで一定時間待機するように命令することと、
衝突を回避するために、前記自律型車両のうちの前記1台が前記一定期間後に移動できる新しい位置を計算することと、
該計算に基づいて、前記自律型車両のうちの前記1台を前記新しい位置に移動させるためのルートプランを生成することと、を含む、請求項10に記載のコンピュータシステム。
【請求項19】
命令を記憶した非一時的なコンピュータ可読媒体であって、前記命令が1つ又は複数のプロセッサによって実行されたときに、該1つ又は複数のプロセッサに、1つ又は複数の最適化したルートプランを配信するための段階を実行させ、
該段階には、
動作環境に関連する1つ又は複数の入力に基づいて1つ又は複数のノードを分析することであって、該ノードは前記動作環境内の空間の領域である、前記分析することと、
前記分析したノードに基づいて1つ又は複数のルートプランを計画し、1つ又は複数の生成したルートプランを提供することと、
前記計画に基づいて、1つ又は複数の重要なシナリオに対して前記生成したルートプランを解析することと、
該解析に基づいて前記生成したルートプランを最適化して、1つ又は複数の最適化したルートプランを提供することと、
前記最適化したルートプランを前記自律型車両に配信することと、が含まれる、
非一時的なコンピュータ可読媒体。
【請求項20】
前記解析に基づいて前記生成したルートプランを最適化することは、
前記生成したルートプランによってカバーされる1つ又は複数の領域を、少なくとも1つ又は複数の幾何学的形状で表すことと、
前記1つ又は複数の表した領域同士の間に交差部があるかどうかを判定することであって、前記表した領域同士の間の交差部は前記生成したルートプラン同士の間に1つ又は複数の衝突の存在を示す、前記判定することと、
前記表した領域同士の間の交差部の判定に基づいて、前記生成したルートプランから最適なルートプランを特定することと、を含む、請求項19に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、ルートプランニングに関連し、より具体的には、動作環境で直面する重要なシナリオ、例えば、衝突、渋滞の最小化、安全上の問題、性能(例えば、自律型車両の利用、生産性、効率、倉庫管理ツール)の改善等を処理するためのルートプランの最適化に関連する。
【背景技術】
【0002】
狭く限られた空間、特に複数の自律型移動ロボットが一度に空間を通り抜ける可能性のある場所での多数のロボットのルートを計画することは、産業的に認識されていない。ロボット工学ソリューションのプロバイダーは、ロボットに特定の線を辿らせるようにロボットを設計し、ロボットの周囲に何もないと想定してロボットを予想通りに動かすことで、同様の問題を処理しようとした。このようなシステムの場合に、ルートプランニングはあまり必要ない。さらに、このようなシステムは拡張できず、既存の倉庫設計と統合できない。このようなシステムは、ルートの再計画が煩雑になり、インフラストラクチャレベルでの再構成が難しく、障害物がそれら障害物と干渉することがないという問題に直面している。
【0003】
新しいロボットがそのようなシステム又は任意の他のシステムに追加されるときはいつでも、入力空間は指数関数的に上がり、そのため、既存のシステムは、ロボットの規模の増大に追いついていない。このシナリオは、組合せ問題につながり、これは、ロボットがスケールアップされるにつれてシステムを適合させることが困難になる。この問題は、あらゆるタイプの自律型車両に関連する可能性がある。
【発明の概要】
【0004】
以下は、本明細書でより詳細に説明する主題の要約である。この要約は、特許請求の範囲に関して限定することを意図するものではない。本発明のこれら及び他の特徴は、添付の図面、及びこれらの図面の以下の詳細な説明、並びに本発明の現在好ましい及び他の実施形態を検討することにより、より容易に理解されるであろう。
【0005】
本明細書で説明するのは、ルートプランの最適化に関係する様々な技術である。このシステムは、マルチロボットルートプランナを含むクラウドプラットフォームを含む。マルチロボットプランナは、倉庫、建設現場、又は病院等の動作環境に関連する入力に基づいて1つ又は複数のノードを分析する(resolve)ノードリゾルバー(resolver)を含む。ノードは、動作環境内の空間の領域と見なすことができる。マルチロボットプランナは、分析したノードに基づいてナビゲーションのための1つ又は複数のルートを計画する複数のモジュールを含む。モジュールは、衝突の回避又は渋滞の最小化等、重要な意思決定シナリオのために1つ又は複数のルートプランを解析できる。モジュールがルートプランを解析した後に、システムは、マルチロボットルートプランナを利用して、解析に基づいてルートプランを最適化する。最適化したルートプランは、1台又は複数台の自律型車両に配信される。
【0006】
本明細書で説明する技術は、ルートプランを最適化するロバストなクラウドプラットフォームに関連する。例示的な実施形態では、プラットフォームは、複数のデータ構造を利用して動作環境を表し、ルートプランを生成し、あるノードから別のノードへの車両の最適化した移動を可能にする。このプラットフォームは、衝突等の重要なシナリオに対して1つ又は複数の生成したルートプランを解析するための様々な技術を提供する。プラットフォームは、1つ又は複数の生成したルートプランを解析している間に、ヒューリスティック(heuristic)、コスト関数、メトリック等を適用して、衝突を回避できる新しいルートプランを特定することができる。例示的な実施形態では、プラットフォームは、1つ又は複数の生成したルートプランを解析している間に、ノード同士の間のルートプランのうちの1つが衝突につながる可能性があると判定するときに、複製ノードを動的に作成することができる。作成した複製ノードは、プラットフォームで使用して、衝突を回避するための代替ルートプランを生成する、又はコスト関数を使用してより適切なルートプランを生成することができる。
【0007】
例示的な実施形態では、システム又はクラウドプラットフォームは、1つ又は複数の衝突に対するルートプランを解析及び最適化するための、速度スケーリング、アップサンプリング、受動経路、駐車可能ノード、重複しないノード、優先順位メトリック、時間ペナルティ等を含む複数の技術又はデータの1つ又は複数又は組合せを利用することができる。次に、システムは、最適化したルートプランを1つ又は複数の自律型車両に配信することができる。
【0008】
上記の発明の概要は、本明細書で議論するシステム及び/又は方法のいくつかの態様の基本的な理解を与えるための簡略化した発明の概要を提示する。この発明の概要は、本明細書で議論するシステム及び/又は方法の広範な概要ではない。その概要は、特許請求の範囲を制限すること、又は重要な/重大な要素を特定すること、又はそのようなシステム及び/又は方法の範囲を詳しく説明することを意図するものではない。その唯一の目的は、後で提示するより詳細な説明の前置きとして、いくつかの概念を簡略化した形式で提示することである。
【図面の簡単な説明】
【0009】
本明細書で説明する特定の特徴、態様、及び利点は、以下の説明、添付の特許請求の範囲、及び添付の図面に関してよりよく理解されるようになる。
図1】一実施形態による、自律型車両のルートプランを最適化するためのコンピュータで実施されるシステムを示すブロック図である。
図2】一実施形態による、最適化したルートプランを配信するための構成要素及びプロセスステップを示すブロック図である。
図3(A)】一実施形態による、ルートプランを最適化するための例示的な非限定的な表現を表す図である。
図3(B)】一実施形態による、ルートプランを最適化するための例示的な非限定的な表現を表す図である。
図3(C)】一実施形態による、ルートプランを最適化するための例示的な非限定的な表現を表す図である。
図3(D)】一実施形態による、ルートプランを最適化するための例示的な非限定的な表現を表す図である。
図3(E)】一実施形態による、ルートプランを最適化するための例示的な非限定的な表現を表す図である。
図3(F)】一実施形態による、動作環境内の様々なノード同士の間の最適化したルートプランを生成することを示すグラフの例示的な非限定的な表現の図である。
図4(A)】一実施形態による、時間及び空間領域における軌道の例示的な非限定的表現を表す図である。
図4(B)】一実施形態による、時間及び空間領域における軌道の例示的な非限定的表現を表す図である。
図4(C)】一実施形態による、時間及び空間領域における軌道の例示的な非限定的表現を表す図である。
図4(D)】一実施形態による、時間及び空間領域における軌道の例示的な非限定的表現を表す図である。
図5(A)】一実施形態による、ルートプランを最適化するための例示的な非限定的な表現を表す図である。
図5(B)】一実施形態による、ルートプランを最適化するための例示的な非限定的な表現を表す図である。
図6】一実施形態による、ルートプランを最適化するための例示的な非限定的な表現の図である。
図7】一実施形態による、ルートプランを最適化するためのプロセスステップを示す例示的なフロー図である。
図8】一実施形態による、ルートプランを最適化するためのプロセスステップを示す例示的なフロー図である。
図9】一実施形態による、ルートプランを最適化するためのプロセスステップを示す例示的なフロー図である。
図10】一実施形態による、ルートプランを最適化するためのプロセスステップを示す例示的なフロー図である。
【発明を実施するための形態】
【0010】
本発明の特定の特徴は、他の図ではなくいくつかの図面に示されるが、これは、各特徴が本発明による他の特徴のいずれか又は全てと組み合わせることができるので、便宜上でのみ行われる。図面中のブロック又は構成要素の順序は限定的ではなく、本発明に従って任意の順序で交換することができる。上記の図は、本明細書で議論するシステム及び/又は方法のいくつかの態様の基本的な理解を提示する。図面は、本明細書で議論するシステム及び/又は方法の広範な概要ではない。その図面は、重要な/重大な要素を特定し、又はそのようなシステムや方法の範囲を説明することを意図したものではない。その唯一の目的は、後で提示するより詳細な説明の前置きとして、いくつかの概念を簡略化した形式で提示することである。
【0011】
自律型車両のルートプランを最適化するためのプラットフォームを提供するための技術の実施形態を本明細書で説明する。本明細書全体を通して「一実施形態」、「この実施形態」及び類似の句への言及は、実施形態に関連して説明する特定の特徴、構造、又は特性が、1つ又は複数の実施形態のうちの少なくとも1つに含まれることを意味する。こうして、本明細書全体の様々な個所でのこれらの句の出現は、必ずしも全てが同じ実施形態を指すわけではない。さらに、特定の特徴、構造、又は特性は、1つ又は複数の実施形態において任意の適切な方法で組み合わせることができる。
【0012】
1つ又は複数のコンピュータ可読媒体の任意の組合せを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体であり得る。コンピュータ可読記憶媒体は、例えば、電子、磁気、光学、電磁気、又は半導体のシステム、機器、又は装置、又は前述の任意の適切な組合せであり得るが、これらに限定されない。本明細書で議論する全てのシステム及びプロセスは、1つ又は複数の非一時的なコンピュータ可読媒体から読み取られるプログラムコードで具体化され得る。コンピュータ可読記憶媒体のより具体的な例(網羅的ではないリスト)には、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、消去可能でプログラム可能な読取り専用メモリ(EPROM又はフラッシュメモリ)、リピーター付きの適切な光ファイバ、ポータブルコンパクトディスク読取り専用メモリ(CD-ROM)、光ストレージ装置、磁気ストレージ装置、又は前述の適切な組合せが含まれる。この文書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、機器、又は装置によって、又はそれらに関連して使用するためのプログラムを含む又は格納することができる任意の有形媒体であり得る。いくつかの実施形態では、ハードワイヤード回路は、いくつかの実施形態によるプロセスの実施のためのプログラムコードの代わりに、又はそのコードと組み合わせて使用され得る。従って、実施形態は、ハードウェア及びソフトウェアの任意の特定の組合せに限定されない。
【0013】
コンピュータ可読信号媒体は、例えば、ベースバンドで、又は搬送波の一部として、その中に具体化されたコンピュータ可読プログラムコードを含む伝搬データ信号を含み得る。そのような伝搬信号は、電磁的、光学的、又はそれらの任意の適切な組合せを含むがこれらに限定されない様々な形態のいずれかをとることができる。コンピュータ可読信号媒体は、命令実行システム、機器、又は装置によって、又はそれらに関連して使用するためのプログラムを通信、伝搬、又は転送することができるコンピュータ可読記憶媒体ではない任意のコンピュータ可読媒体であり得る。コンピュータ可読信号媒体上に具現化されたプログラムコードは、無線、有線、光ファイバーケーブル、RF、又は前述の任意の適切な組合せを含むがこれらに限定されない任意の適切な媒体を使用して送信することができる。
【0014】
本開示の態様の動作を実行するためのコンピュータプログラムコードは、1つ又は複数のプログラミング言語の任意の組合せで書くことができる。プログラムコードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上で、部分的にリモートコンピュータ上で、又は完全にリモートコンピュータ又はサーバ上で実行できる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続することができる、又は接続は、外部コンピュータ(例えば、インターネットサービスプロバイダーを使用したインターネット経由)又はクラウドコンピューティング環境に接続され得、或いはSaaS(Software as a Service)、PaaS(Platform as a Service)又はIaaS(Infrastructure as a Service)、RaaS(Robotics as a Service)又はWaaS(Warehouse as a Service)又はサービスとしての協調ロボット(cobots)又は他のサービスモデルとして提供される。通信は、有線通信と無線通信との両方に拡張できる。
【0015】
本開示の態様は、本開示の実施形態による方法、機器(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して本明細書で説明する。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図のブロックの組合せは、コンピュータプログラム命令によって実現できることが理解されよう。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能なデータ処理装置のプロセッサに提供され、コンピュータのプロセッサ又は他のプログラム可能な命令実行装置を介して実行される命令が、フローチャート及び/又はブロック図又はブロックで指定された機能/動作を実現するためのメカニズムを作成するマシンを作製することができる。これに関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実現するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。いくつかの代替の実施態様では、ブロックに示されている機能が、図に示される順序とは異なる場合があることにも注意する必要がある。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行される場合がある、又は、関連する機能に応じて、ブロックが時には逆の順序で実行される場合がある。ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図のブロックの組合せは、指定された機能又は動作を実行する特別な目的のハードウェアベースのシステムによって、又は特別な目的のハードウェアとコンピュータ命令との組合せで実現できることにも留意されたい。
【0016】
これらのコンピュータプログラム命令はコンピュータ可読媒体にも記憶され得、命令が実行されると、コンピュータ、他のプログラム可能なデータ処理装置、又は他の装置に特定の方法で機能するように命令することができ、命令は、コンピュータ可読媒体に記憶されると、命令を含む製造品を製造し、その命令が実行されると、コンピュータにフローチャート及び/又はブロック図又は1つ又は複数のブロックで指定された機能/動作を実現させる。コンピュータプログラム命令は、コンピュータ、他のプログラム可能な命令実行装置、又は他の装置にもロードされて、コンピュータ、他のプログラム可能な装置、又は他の装置上で一連の動作ステップを実行させて、コンピュータで実施されるプロセスを生成し得、それによって、1つ又は複数のコンピュータ又は他のプログラム可能な装置上で実行される命令は、フローチャート及び/又はブロック図又は1つ又は複数のブロックで指定された機能/動作を実現するためのプロセスを提供する。
【0017】
当業者によって理解されるように、本開示の態様は、任意の新規で有用なプロセス、マシン、製造、又は物質の組成、或いはその新しく有用な改良を含む、いくつかの特許性を有するクラス又は文脈のいずれかで本明細書に例示及び説明され得る。従って、本開示の態様は、完全にハードウェア、完全にソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコード、又は他の適切なタイプのソフトウェアを含む)、又は本明細書で一般的に全て「回路」、「モジュール」、「構成要素」、「システム」、「プラットフォーム」、「機器」と呼ばれる、ソフトウェアとハードウェアとを組み合わせた実施態様として実現され得る。さらに、本開示の態様は、コンピュータ可読プログラムコードが具体化された1つ又は複数のコンピュータ可読媒体(例えば、有形の非一時的なコンピュータ可読媒体)に具体化されたコンピュータプログラム製品の形態をとることができる。本開示は、「ユーザ」、「開発者」、「デザイナ」、「第三者」、「倉庫所有者」、「ロボットソリューションプロバイダー」等の用語を言及し、いくつかの又は特定の実施形態で使用するが、これらの用語は、これらの特定の実施形態に限定されず、本発明がこれらの用語によって制限又は限定されないので、他の用語で置き換えることができる。
【0018】
装置は、一意の識別子及びインターネットを介してデータを転送する能力を有する物体又は物理的エンティティである。一実施形態では、装置は、モノのインターネット(IoT)における「モノ」である。モノとは、IoTの文脈では、一意の識別子、埋込みシステム、及びネットワークを介してデータを転送する能力を有するエンティティ又は物理的オブジェクトを指す。これらの装置には、物理的装置、家電製品、車両、エッジ装置、フォグ(fog)装置等が含まれ得る。装置には、他の装置機能とともに作動及び感知を実行できるロボットも含まれる。
【0019】
本発明は、交換可能であり、且つ1つ又は複数の実施形態で交換可能に使用され得る様々な用語を言及することが理解される。例えば、「ノード」という用語は、本発明の範囲又は実施態様を変更することなく、「交差部」又は「ツリー要素」又は「グラフ要素」と交換可能にすることができる。そのような交換は限定的であるとは見なされない場合があり、そのような交換は本発明の範囲内にあると見なされる。一実施形態では、自律型車両は、動作環境においてノードと呼ばれ得、自律型車両は、ノードに駐車し、ノードで待機し、ノードを介して移動し、ノードで停止し、ノードでナビゲーションを完了する等の1つ又は複数であり得ることが理解される。「ルート」、「ルートプラン」、「軌道」、「移動計画」、「ナビゲーション計画」等の用語は、同じ用語を示し得、ユースケースシナリオに従って、様々な場所で使用されることも理解される。1つ又は複数のプロセスステップの実行は、プロセスステップの実行の結果である出力につながることが理解される。例えば、動作環境内の分析したノードに基づいて1つ又は複数のルートプランを計画するプロセスステップは、少なくとも1つ又は複数の生成したルートプランの出力につながり得る。解析に基づいて生成したルートプランを最適化するプロセスステップは、少なくとも最適化したルートプランの生成をもたらす出力につながり得る。同様に、第1の自律型車両の特定した優先順位の値に基づいて、生成したルートプランからルートプランに優先順位を付けるプロセスステップは、少なくとも1つ又は複数の優先順位付けしたルートプランの出力につながり得る。
【0020】
図1は、一実施形態による、自律型車両のルートプランを最適化するためのコンピュータで実施されるシステムを示すブロック図である。一実施形態では、システム100の目的は、衝突を最小限に抑えるためにベストエフォート(最善)アプローチを適用し、可能な限り衝突を回避するための措置を講じることである。システム100は、ルートプランを最適化するために処理装置によって実行されるコンピュータ可読命令を含む1つ又は複数の記憶装置及び処理装置を含むことができる。システム100は、ユーザの直接アクティブ管理の有無にかかわらず、コンピュータシステムリソースのオンデマンド可用性と見なすことができるクラウドプラットフォーム110を含む。クラウドプラットフォームには、ルートプラン又は軌道を生成及び格納するための1つ又は複数のメモリ及びプロセッサが含まれる。一実施形態では、クラウドプラットフォーム110は、本明細書で議論するように、ルートプラン又は軌道、及びルートプランを生成するための関連データを格納するためのデータベース111を含む。一実施形態では、関連データは、自律型車両状態情報、統計、ナビゲーション、通過(traversing)ツリー(系統図)又はグラフ、前提条件、ルートテーブル等に関連する他の情報であり得る。クラウドプラットフォーム110は、マルチロボットルートプランナ(mrrp)112を含み、これには、衝突を回避するためのルートプランの最適化に関連する主要なタスクを実行するための1つ又は複数のメモリ及びプロセッサが含まれる。一実施形態では、mrrp112は、ルートプランニングに関連する様々なタスクを実行するためのサーバ、システム、同等の装置、ソフトウェア、又はハードウェア構成要素として機能し得る。mrrp112は、表現及び単純化の目的で、クラウドプラットフォーム110のモジュールとして示されている。ただし、mrrp112は、ルートプランニングに関連するタスクに関与する任意の他のシステム又はプラットフォームの構成要素として機能し得る。クラウドプラットフォーム110は、その主な機能がタスク割当てであり、どの自律型車両又は自律型装置が特定のタスクを特定の時間に実行すべきかを決定するディスパッチャ(dispatcher)113を含む。ディスパッチャモジュールは、通信レイヤ160上のタスクに関連する詳細を、所与の時間に実行すべき目的地(destination)及びタスクを知っている1つ又は複数の自律型装置に通信する。次に、自律型装置は、通信レイヤ160を介してmrrp112と対話するようにプログラムされる。システム100は、障害物マップ、グラフ、ツリー構造、任意の他の関連入力等の入力を受け取り、且つグラフ、ツリー、シミュレートした環境等のマップ、表現を表示すために使用され得るダッシュボード120を含む。ダッシュボード120は、マルチロボットルートプランに関連する様々な機能及び自律型車両機能に関連する他のタスク(自律型車両にマップ又はUI等上のある場所から別の場所に移動するように命令する)のためのUI 121、シミュレータ122、及びデザイナ(designer)123を含み得る。UI 121は、障害物マップ又はルートプランに関連する他の入力を受け取るために使用され得る。シミュレータ122は、動作環境における自律型装置のナビゲーション経路を表すためのマップを含むシミュレーション環境を提供する。動作環境には、倉庫、病院、建設現場、オフィス、造船所(dockyard)、造船所(shipyard)、道路、鉄道等が含まれ得る。シミュレータ122は、自律型装置に、衝突回避のためのルートプランを最適化する特定のタスクを実行するよう命令するためにも使用され得る。ある命令は、ある車両の別の車両に対するナビゲーションに影響を与える可能性のある優先順位又はパラメータを提供すること等を含み得る。デザイナ123は、障害物マップ等の入力を編集し、カスタマイズしたステータス情報、例えば、特定の時間での動的衝突の可能性、例えば、特定の時間又は日にちの交通状況に基づいて、特定の時間又は日にちの交差部での特定の自律型装置(運転者がいない自動車等)の到着等の入力を提供するための設計環境を提供し得る。入力又は命令は、ダッシュボード120の任意の構成要素又はシステム100の他の構成要素、例えば、倉庫管理システム(WMS)/倉庫制御システム(WCS)130によって提供され得る。WMS又はWCS130は、倉庫管理者/オペレータによって処理され得、システム100の他の構成要素は、WMS/WCS130と動作可能に結合されるか、又はWMS/WCS130内に埋め込まれ得る。一実施形態では、WMS又はWCS130は、自律型車両と協働し、マルチロボットルートプランを生成するために、クラウドプラットフォーム100の構成要素とインターフェイス接続するように構成され得る。様々な外部又は内部構成要素の結合は、ビジネス論理レイヤ140又は通信レイヤ160を介して、又は他の任意の非限定的な通信手段によって行うことができる。このシステムは、自動フォークリフト171、タートル(turtle)ロボット172、アーム173、自動トラック174、積降し(picking)ロボット175、無人運転車176、譲受人の積降しアシスト自律型移動ロボット(AMR)177等の類似又は異種の自律型車両をサポートする。ビジネス論理レイヤ140は、カスタマイズしたロボットソリューションのために、顧客又は他の利害関係者がロボットソフトウェア又はハードウェアを統合できるようにカスタマイズできる。システム100は、移動式ラック、オートレータ(autolator)、エリアセンサ等の外部装置150を含む。
【0021】
一般的に、自律型車両Xが出発(source)ノードAから目的ノードBに移動しなければならない場合に、解決策は、別の自律型車両Yが自律型車両Xに道を譲って目的地Bに到達することを必要とし得る。そのようなシナリオは切り離せない。自律型車両Xの解決策を実現するには、自律型車両Yが道を譲る必要があり、従って、この依存関係のために、問題は切り離せない。このような依存関係が、動作環境をナビゲートしている他の車両に合わせて拡大すると、状況はさらに増幅(拡大)される。ただし、システムは、他の自律型車両が車両Xに道を譲る効果を使用して、分離問題を回避するアプローチを使用する。計算は、問題を車両X又は個々の自律型車両にローカライズ(制限)することによって処理される。
【0022】
いくつかのシナリオでは、倉庫内の通路が狭過ぎるか、又は空間が制限されている可能性がある。空間が限られているため、自律型移動装置が通路を通ってナビゲートする方法がないことを示す代わりに、システムは、出力が常にベストエフォート(最善)であり且つ解決策を提供する、新規で異なるアプローチを使用する。
【0023】
一実施形態では、ルートプランニング問題に対する1つのアプローチは、満足のいく解決策ではなく、衝突最小化問題であり得る。システムは、衝突及び移動時間を最小限に抑え、衝突を制約と見なす代わりに、解決策を設計する際のパラメータとして衝突を考慮する。このようなシナリオでは、出力されるルートプランに衝突が発生する可能性がある。システムは、衝突を含む出力を有効な出力と見なす。この解決策は、制限された自律型車両にとっては些細なことのように見えるかもしれない。しかしながら、追加の自律型車両と、他の車両のルートプランに応じた各車両の決定により、システムが拡張するにつれて、全体的な入力空間及び意思決定は指数関数的に増大する。その後、シナリオは、全体的な衝突を最小限に抑えるための高レベルの問題になる。次に、システムは全てのシナリオの出力をベストエフォートベースで提供する。
【0024】
倉庫エンティティ(例えば、倉庫管理者)の計画通りに物事が進まない可能性があるシナリオがあり得る。一実施形態では、ロボットを自律型車両と見なす。例えば、計画通りに物事が進まない可能性があるのは、ロボットの故障、動的な障害物、ロボットの速度低下、ロボットの特性の不正確な特性評価、ロボットの速度の誤った推定、1つ又は複数のロボットが特定の場所に適合するかどうか、又はロボットをナビゲートするには空間が小さ過ぎるか又は制約がある場合に等があるためであり得る。システムは、前述のシナリオを解決するためのメタ戦略を提供することができる。例えば、特定のゾーンに複数のロボットが集まっているために閉塞する等、不可能なシナリオがあるとする。その場合に、システムは、いくつかのロボットをそのゾーンから他の倉庫領域に移動させることができる。移動したロボットは、特定の時点でタスクを完了しない可能性がある。しかしながら、システムの意思決定は、不可能なシナリオ(複数のロボットによる閉塞)に関連する問題を解決し、ベストエフォート型の解決策を生成する。
【0025】
メッセージは、型付けされた(typed)フィールドを含むデータ構造である。各メッセージには、例えば、整数、浮動小数点、ブール等であり得るメッセージタイプがある。システム及び自律型車両は、メッセージを受信又は送信するために任意の通信メカニズムを使用できる。例えば、通信メカニズムは、クラウドプラットフォームと自律型車両との間でメッセージを送受信するための公開者-供給者(publisher-supplier)通信メカニズム又は要求-応答通信メカニズムであり得る。ROS(ロボットオペレーティングシステム)は、メッセージの送信又は受信に使用できる3つの通信機構:トピック(公開者-加入者(publisher-subscriber)通信メカニズム)、サービス(要求-応答通信メカニズム)、及び動作(目標、フィードバック、通信モジュールからの結果)を提供する。各通信メカニズムは、メッセージを送信するために使用される。これは、通信メカニズムを介して送信されるメッセージのメッセージタイプに関連付けられており、受信側はそのメッセージタイプにのみ対応するメッセージを受信できる。例えば、送信側が「ロボット名」トピックにおいて「文字列」タイプの名前メッセージを公開している場合に、「ロボット名」トピックに加入している加入者は、「文字列」タイプのメッセージのみを受信できる。
【0026】
本発明が適用され得る複数のシナリオが存在する。本発明が適用可能であり得る主要な分野のうちの1つは、「スートボール(Sootballs)」と名付けられた譲受人の自律型移動ロボット又は自動フォークリフト又は自律型車両又は無人運転車等の、任意の異種自律型車両の任意の種類の動的又は静的環境におけるルートプランニングであり得る。本発明が適用され得る他の領域には、動作環境内でナビゲートしている複数のロボットが含まれ得る。ナビゲートしているロボットは、システムがルートの周りで計画するために使用できるルートの詳細をブロードキャストすることができる。そのため、システムはハイブリッドモードの実行を可能にし、このモードでは、実行段階のロボットが倉庫等の動作環境をナビゲートし、ルート関連の詳細をシステムに提供する。この詳細は、ナビゲーションプロセスを未だ開始していない他のいくつかのロボット計画段階にある可能性がある。次に、新しく計画したルートを他のロボットと共有して、システムの様々なモジュールを最適に利用し、ナビゲーションロボットが受信した新しいルート関連の詳細を使用してより適切なルートを再計算できる。システムは、複数の要因、例えば、動作環境がどれほど動的であるか等に基づいてカスタマイズすることもできる。本発明は、例えば、移動ロボットに限定又は制限されず、リンクマニピュレータ等の装置は、他の自律型車両との動作環境でも機能し得る。リンクマニピュレータの2つのアームは、複数の異なるタスクを実行している間に、機能の実行中にアームが互いに衝突しないように保証する必要があり得る。本発明は、本質的に非限定的且つ一般的であり、ロボットに限定されず、1つ又は複数の軌道で衝突を回避する必要がある環境に適用できる可能性がある。システムは、衝突を再規定できる場合にカスタマイズでき、例えば、ナビゲーションを実現するために正確な計算及び高度な精度が必要になる環境があり得る。
【0027】
システムは2D環境に基づいて説明しきたが、これは限定ではなく、システムは3D環境に拡張され得る。システム内で必要になり得る変更には、追加の次元であるZ軸を有し得る距離計算が含まれる。データ構造の焦点は幾何学的次元ではなくノードにあるので、本発明は、一般的であり、本質的に非限定的であり、追加の次元関連情報を含めること以外に重要な変更なしに追加の次元を含めることができる。
【0028】
図2は、一実施形態による、最適化したルートプランを配信するための構成要素及びプロセスステップを示すブロック図である。異種の自律型車両の車列(fleet)には、ロボット又は掃除機が含まれ得る。一実施形態では、動作環境は倉庫であり得る。障害物マップ201は、データベース111からインポートされた倉庫のマップ、又はダッシュボード120からの構成要素のいずれかである。障害物マップは、特定の領域の様々な障害物及び空き空間の詳細を含むマップである。例えば、倉庫では、障害物マップに、倉庫内のラック、通路、壁等の詳細が含まれ得る。障害物マップ201は、障害物マップ画像を処理するために映像又は画像に変換され得る。一実施形態では、障害物マップに含まれる障害物の詳細を含む障害物マップメタデータが、画像とともに生成される。図2では、円はデータを表し、ボックスはプロセスを表す。データは、フロー内で渡される入力、出力、又はデータであり得、ボックスは、特定のタスクを実行するために必要なステップを実施し得る。最初のステップは、倉庫のレイアウトを知ることである。これは、少なくとも2つの形式で実現できる。a)CAD図面-これは、壁、厚板、柱等の位置を含む建物の様々な表現を表す青写真を提供する建物の設計に似ている。同様に、障害物マップは、倉庫内の静的な障害物を含む倉庫のマップであり、ロボットのレーザースキャナを使用して、ロボットを運転し、倉庫をスキャンした結果である。出力は、デザイナ123がビットマップ画像を取得するためにつなぎ合わせることができる複数のレーザースキャンであり得る。ビットマップ画像は、障害物の位置、有無に関する情報を提供する。デザイナ123は、レーザースキャンからスプリアスノイズを除去するために使用されるソフトウェアモジュールである。このクリーニングステップは、倉庫内の様々なゾーンの概要を示し、倉庫内の静的な障害物の場所、サイズ等に関連する詳細を取得するのに役立つ。この段階は初期の計画プロセスであるため、常に静的な障害物に焦点が当てられる。システムは、計画の初期段階で動的な障害物(例えば、ロボットの経路に突然現れる人)を処理できない場合がある。ただし、そのような情報が計画の初期段階で利用可能である場合には、障害物マップを作成する際にその情報も考慮することができる。次に、障害物マップ201は、マップ生成モジュール211に渡される。マップ生成モジュール211は、障害物マップ201を入力として受け取り、グラフ等の離散化した形式に変換する。グラフには、空き空間の領域を表す複数のノードが含まれる。ノードを接続する全てのエッジは、ロボットが移動できる一定量の空間を含む経路を表す。機能的空間のこの主要な表現は、より高速な通過(traversal)に役立ち、全体的な方法論を簡素化する。グラフでは、エッジにも経路の幅又は狭さを示す空間制約がある。ロボットが経路を移動するには大き過ぎ又は多過ぎる場合に、計画プロセスでは、ロボットが経路を移動できないと見なされる可能性がある。あるいはまた、計画段階で、複数のロボットがその経路を同時に通過するのに十分な大きさである場合に、その情報により、システムはシナリオを衝突と見なさないようになる。
【0029】
一実施形態では、生成したグラフ202は、ここで、ノード分析モジュール212に配信される。ノード分析モジュールを理解するには、グラフがノードを含み、ノードが空間内の離散点であることを理解する必要がある。ただし、ロボットの要求は、離散的ではなく、連続(x、y座標)である。ルートプランナは、ロボットがノードから開始してノードで終了する場合にのみ機能するが、ロボットがノード同士の間で開始し、ノード同士の間で終了する場合は困難になる。そのため、ノードリソルバー(resolver)の役割は、入力に一貫性がないか又は無効な場合にギャップを埋めることである。ノード分析(resolver)モジュールは、連続から離散へのマッピングのステップを実行し、どのロボットがどのノードで開始するかを特定する。システムは、ノード分析モジュールがノードの位置決めシナリオを解決するための複数の方法を見つける。殆どの場合に機能する最も容易で一般的な解決策は、ユークリッド又はピタゴラスの定理の種類の距離に基づいて、ロボットの現在の場所に最も近いノードを関連付けることである。ただし、場合によっては、この解決策が機能しないことがあり得、例えば、出口がなく、1台のロボットしか通過できない空間の狭い通路の単純なシナリオを考えてみる。通路には、複数のノードの1つの行が含まれる場合がある。ここで、ロボットがノードの左側にあり、別のロボットがノードの右側にあるとする。そのため、最も近い距離の解決策が適用される場合に、両方のロボットが同じノードにマッピングされる可能性があるが、実際には、これらロボットは少しオフセットしており、一方はノードの左側にあり、他方はノードの右側にある。この想定では、ロボットが通路の反対側で同じ場所に移動するように命令される場合に、そのような入力クエリは不可能な入力クエリと見なされ得る。この入力クエリが不可能であると見なされる理由は、両方のロボットが単一車線の通路を介して移動し、同じ出発地から開始して同じ目的地に到達する必要があるためである。そのため、仮に、このクエリを実行する場合に、次に、目的ノードは全く同じ場所になり、最も近い距離の解決策によって、開始ノードは両方のロボットで全く同じになる。そのため、システムは、ルートプランを解析し、対称的な2つのロボットがあり、どちらも同じ場所から開始し、同じ目的地に到達し、衝突の可能性があることを見出す。そのため、これらのロボットのルートプランナの機能は、衝突の数が最も少なく、これらの条件を満たすルートを見つけることである。
【0030】
一実施形態では、解析に基づいて、システムは、前述のシナリオに対処するための解決策として最適なルートプランを生成し、この最適なルートプランは、第1のロボットが最初に出発地を離れて目的地に行き、次に第2のロボットが第1のロボットが出発地の場所から移動した後に離れるのを可能にする。これにより、第1のロボットが目的地に到達し、第2のロボットが後ろで進む。これは、ルートプランナ又はシステムによって生成される最良の解決策と見なすことができる。ただし、課題は、開始要求が対称であるのに出力が非対称であるということであり、一方のロボットが先行ロボットになり、他方のロボットが遅れて進む。そのため、このような場合に、システムは、非対称シナリオに対処するための解決策を特定する必要がある。この非対称シナリオを解決するために、システムはルートプランを解析し、1台のロボットをランダムに選択し、そのロボットを最初に移動させる。リアルタイムのシナリオでは、物理的に後ろにあったロボットが最初に進むように選択される可能性があるため、システムが行うこの決定は重要である。その場合に、次に、物理的に前にいる他方のロボットは、通路にそれほど多くの空間がなく、デッドロック状態につながる可能性があるため、場所を反転させることができないため、これは物理的に発生することはない。そのため、そのようなシナリオの発生を解決するために、ノード分析モジュール212には重要なタスクがある。システムは、解析に基づいて決定を下し、殆どの場合に、最も近い距離に基づいてロボットを開始場所に割り当てるが、いくつかのシナリオでは、解決が必要になり得る競合が発生する場合がある。複数のロボットが最も近いノードをめぐって競合している場合に、衝突につながる可能性があるため、両方のロボットが、同じノードに物理的に移動することはできない。そのため、システムは、あるロボットに、開始ノードにそれほど近くないが、開始ノードから遠くにある別のノードに移動するように命令することによってルートプランを最適化し、ノードリゾルバーは、移動を物理的に行うことができる方法でノードをロボットに割当てる必要があり、これは、十字交差がないか、ロボットが十分な空間のある別の場所に移動するように求められる場合があることを意味する。ノードリゾルバー212によるこのノードの割当ては、動作環境内で有効な構成でなければならない。ノードは任意の量の空間で再規定され得るため、ノードリソルバーのこのタスクは複雑になる可能性がある。そのため、実行可能な解決策の場合に、十分な量の空間のあるノードがある場合に(例えば、10台のロボットの場合)に、次に、ノードリゾルバーは、それらのノードに収まり得る複数のロボットを割当てることができる。しかしながら、ロボットが20台ある場合に、空間の制約及びデッドロックの問題により、ノードリゾルバーは、それらの追加のロボットを異なるノードに設定する必要があり得る。ロボットのノードが解決された後に、出力は、受信したルート要求203と同じであるが、離散化される。そのため、ここで、開始位置及び終了位置の座標の代わりに、ノード分析モジュール212の出力は、ロボットに割当てられたノードを含み得る。
【0031】
一実施形態では、ノード分析モジュール212は、少なくとも2つの入力、すなわち、ロボットがナビゲートしたい場所でのグラフ202及びルート要求203を受け取り得る。システムは、最適化のために複数のアプローチを使用するように設計され、システムは、1つの要求インスタンスで全てのロボットの要求を受け取ること、又は一度に各ロボットの要求を受け取ることができる。デフォルトでは、無効にされない限り、システムは、入力をルートのバッチ要求として受け取り得る。ロボットのルート要求は、出発点A及び目的点Dの2D座標(x,y)の形式であり得、例えば、B及びC等の複数の経由点を含み得る。そのため、ロボットのルート要求は、ロボットがポイントAから開始し、ポイントBを通り、次にCを通り、後で目的地Dに到達することを示し得る。これらのルート要求は、ロボットの現在の場所、ロボットのタスク等の情報を含むWebユーザインターフェイスによって入力できる。例えば、倉庫管理者、オペレータ、開発者、デザイナ等のユーザは、Webユーザインターフェイス上でロボットを選択し、ロボットに実行中の全てのタスクを停止するように命令し、ロボットに特定の目的地に移動するように要求することができる。これは、ロボットに倉庫内を移動させたり、倉庫で自律的に移動させたりする1つの方法である可能性がある。一実施形態では、手動介入がない場合があり、ロボットは、ナビゲートしなければならない場所を決定するためにインテリジェントである。
【0032】
一実施形態では、ロボットの自律的行動を制御するために、例えば、倉庫内の作業シフトの前に(例えば、朝の時間帯の午前9時又は夕方の時間帯の午後6時)、アプリケーション要件に従って、倉庫オペレータがタスクのリストを提供する別個のユーザインターフェイスを提供することができ、そのリストには、倉庫内の様々な通路又はゾーンから積み込まれ、目的地に降ろされる物体が含まれる。これは、スプレッドシート形式(input.xlsファイル)等の任意のドキュメント形式でシステムに入力することもできる。
【0033】
一実施形態では、ノード分析モジュール212がロボット群(fleet)のノードを分析した後に、出力は、マルチ経路ツリー検索(MPTS)モジュール213と共有される。MPTSモジュール213は、ルートプランの解析に関与することができ、ロボット群のルートプランを最適化する。ロボットのルートプランには、特定のポイントから開始し、他のロボットを回避して目的のポイントに移動することが含まれる。静的な障害物は、マップ生成モジュール211によって前処理段階で既に処理される。経路検索モジュール214は、MPTSモジュール213と並行して動作し、ルートプランの生成、ルートプランの解析、ルートプラン又は経路軌道205の最適化を支援する。例えば、第1のロボット220のルートプランは、他のロボットを考慮せずに通常の経路探索を含み得る。ルートプランの解析の一環として、連続するロボット、ロボット230及びロボット240の計画中に、経路検索モジュール210は、前の(prior)ロボットの軌道又はルートプラン(例えば、この場合、ロボット220のルートプラン)を比較し、目的地までの移動時間を最適化しながら、前のロボットのルートプランを回避する1つ又は複数のルートを計画する。図2では、本明細書で説明するように、単純化及び理解の目的で3台のロボットのみが考慮される。しかしながら、本発明は、自律型車両の数及び自律型車両のタイプに限定されない。本発明は、異種の自律型車両、例えば、図1の異なるタイプ171~177の自律型車両の車列をサポートする。
【0034】
一実施形態では、ルートプランが生成されると、ルートプランは経路コーディネータ204に登録される。経路コーディネータ204は、ルートプランの中央データベース又はログを含み、以前に計画したルートを追跡するために使用される。経路コーディネータ204は、計画したルートに関連する衝突チェック及びクエリを解決するためのコンピューティングロジックも含み得る。経路検索モジュール210は、一度に1つのノードを拡張する。そのため、経路検索モジュール210があるノードから別のノードへの経路を通過するときに、経路通過中の衝突の可能性を確認するために含まれるテストが存在する。そのため、これらのテストでは、前のロボットの計画を確認するために、後続(successive)のロボット毎に経路コーディネータ204に対してクエリが実行される。他のモジュールも、経路コーディネータ204にクエリを実行して、ルートプランの迅速なルックアップを実行することができる。これは、システムが以前のルートプランと衝突しない可能性がある、又は既存のルートプランの上に構築できるルートプランを最適化するのに役立つ。経路検索モジュール210の別の反復が発生すると、システムは、経路コーディネータ204を利用して、既に計画した以前の経路を解析し、次に、既存の登録した計画に加えて新しいルートを計画する。そのため、経路コーディネータ204は、計画されている後続経路の履歴及びスパン(span)を記録し、以前に計画した経路との衝突チェックも担当するデータ構造を含む。経路コーディネータ204は、経路のツリー状階層データベース及び経路の統計を含み得る。スタックのような他の表現も使用できることが理解される。衝突を回避するために、システムは、前のロボットに対して計画した潜在的な衝突軌道を見付けて、それら軌道を回避することができる。そのため、経路コーディネータ204の主なタスクは、例えば、ロボットが出発ポイントから目的ポイントまで経路を通過する場合に、クエリに応答又は回答することであり、次に、前のロボットのために、出発ポイントと目的ポイントとの間のその経路に沿って計画した全ての軌道に関する衝突の可能性があるかどうかに応答又は回答することである。
【0035】
一実施形態では、MPTSモジュール213は、主に、ロボット群の経路又はルートプランの順序を決定する。他のロボットの既知の軌道がある場合に、次に、MPTSモジュール213は、基本レベルで、どのロボットが他のロボットに道を譲ることができ、どのロボットがより高い優先順位の値を有し得るかを決定する最適化ステップを実行する。MPTSモジュール213は、最初に移動することができるロボットを特定することによってこれを解決し、また、総移動時間、遭遇する衝突の総数等に関する統計を維持することができる。MPTSモジュール213は、経路コーディネータ204を前述した情報を記憶するための記憶構造として利用する。さらに、経路検索モジュール214の出力は、経路コーディネータ204のツリー状階層データベースに再び追加される。システムは、ルートノードからリーフノードにツリーを通過することにより、プランの順序が最適であるか否かを検証し、1回の通過には、衝突の数、経路時間、コスト関数等を提供する経路のセットが含まれ得る。マルチ経路検索モジュール213及び経路検索モジュール210の並列プロセスの出力は、経路軌道205のセットである。出力は、ここで詳細に表される、全ての単一の要求に関する場所及び時系列のようなものである。一連の軌道である出力には、衝突が発生する可能性がある場合に、衝突に関与し得る特定のロボット、どのロボットが他のロボットと衝突するか、衝突が発生する可能性のある時刻に加えて、衝突が発生する可能性のあるルート、予想移動時間、他の統計情報等の追加情報が含まれ得る。全てのロボットには、ノード及び時系列に関連する情報がある。システムには、出力情報の一部でもある受動的に変換され得るいくつかのタスクも含まれる場合があり、例えば、いくつかのロボットは、ルートプランが示す特定のノードに移動できない場合があるが、衝突を回避するために、システムは、ロボットを別の場所に移動させる場合がある。殆どの計算は、MPTSモジュール213及び経路検索モジュール214の組合せツリー検索で行われ、問題空間はロボットの数とともに指数関数的に拡大する。
【0036】
一実施形態では、経路軌道のセット205は、前提条件生成モジュール215に渡される。前提条件生成モジュール215の主な目的は、軌道を入力として受け取り、それら軌道から時間要素を削除し、経路プランの順序を抽出することである。空間の全ての領域について、予想されるロボットによる訪問は時間でソートされる。例えば、後で特定の場所を訪問する第1のロボットは、第1のロボットが入る前に、その場所を訪問する第2のロボットが移動するまで、待機する必要がある。これはチェーン依存の例であり、後で到着する第1のロボットは、第1のロボットが到着する前に、先に到着したロボットが出発するのを待たなければならない。ここで、前提条件生成モジュール215は、タイムスタンプの代わりに、経路順序付けを利用して衝突回避シナリオを解決する。
【0037】
実際には、ロボットは必ずしも予想されるほど速く動くとは限らない。一実施形態では、前提条件生成モジュール215は、前提条件生成段階でタイムスタンプを変換することによって時間分散を吸収する。前提条件生成モジュール215は、システムが時間シフトの妨害に対して比較的ロバストであることを保証するが、前提条件生成モジュール215は、ロボットが故障したときやロボットの背後にある他のものが停止したとき等のいくつかの極端な問題を解決できない。システムは、一般的に、1つのロボットが無期限に停止し、他のロボットが停止したロボットを待機している場合に、他の全てのロボットも無期限に停止するような問題に直面する。ロボットは、システムエラー等の様々な理由で移動を停止する可能性があり、次に、システムは、ルートの再計画を含む1つ又は複数の解決策を特定する。ここで、停止したロボットは、他のロボットがブロックされた場所から離れる方向に再ルート決めされるように、ブロックするものとして場所を特定する。前提条件生成モジュール215のフローは、ノード1、ノード2、及びノード3にナビゲートしなければならないロボット220を検討する例で説明することもでき、別のロボット230がその第5のチェックポイントを通過するまで(ロボット230の第5のチェックポイントはノード2であり得る)、ロボット220がノード2に行くことができないという前提条件がノード2にあり得る。この解析に基づいて、次に、前提条件生成モジュール215は、ルートプランを更新、再計画、又は最適化する前提条件出力を生成し、それによって、ロボット220は、ロボット230がノード2を通過しない限り、待機しなければならないか、又はノード2に行くことができない可能性がある。
【0038】
一実施形態では、前提条件が前提条件生成モジュール215によって生成された後に、前提条件はルートテーブル206に含められる。ルートテーブル206は、ロボット群、例えば、ロボット220、230、及び240とインターフェイスされる。ルートテーブル206は、実際の離散化したノードではなく、連続的な座標の形式の情報を含む。システムは離散化したノードを連続座標に変換し、開始ノード及び終端ノードが上書きされる。ただし、ロボットの出発地及び目的地は、ルート要求で既に指定される。離散化プロセスが実施され、検索に入ると、システムは、ロボットの状態を解析し、ノード分析モジュール212の助けを借りて位置をノードに変更する。以前のルートが解析されると、システムは、ノードを元の要求で示された位置、例えば元の開始位置及び終了位置の実際の座標に置き換える。全ての中間点は、ノードの場所に正確にあり得る。解析のために開始位置及び終了位置が特定されている限り、どちらが中間点であるかは関係ない。
【0039】
一実施形態では、ルートテーブル206が生成されると、個々のルートが全てのロボットに配信される。例えば、図2では、個々のルートは、3つのロボット(220、230、及び240)に配信され得る。各ロボットは、それらのルートを受け取り、他のロボットのルートを知る必要がない場合がある。ルートテーブルは分割され、個々のロボットに送信される。個々のロボットにルートを送信するために使用できる通信プロセスは、どのような形式でもよい。一例では、ルートがメッセージの形式でロボットに送信され得る。各ロボットには、ルート同期モジュールとローカルナビゲーションモジュールの2つのモジュールがある。例えば、ロボット220は、ルート同期モジュール221及びローカルナビゲーションモジュール222を有する。ルートテーブル206は、ロボット220内の構成要素、ルート同期221、ルートプランナ又はシステムのローカル拡張に送信される。ルート同期モジュール221は、ロボット220自体で実行され、分散システムの一部として実行される。各ロボットは、それ自体の車両でルート同期モジュールのバージョンを実行する。一実施形態では、ロボットを調整する中央サーバからの限られた入力があり得、ローカルモジュールが調整及びナビゲーションを処理し得る。ロボットは互いに調整し、それらロボットに配信された次のルートを同期させる。ルート同期モジュールは、他のロボットのルートの進行状況に耳を傾け(listen)、ロボットが次に進むべき場所と、前提条件の制約の観点からロボットがそれ自体のルートを進むことができる距離を決定する。決定が行われると、ルート同期モジュールは、この情報をローカルナビゲーションモジュールに中継し、ロボットは次のルートポイントに移動する必要がある。次に、ロボットは移動し始め、同時に、ローカルナビゲーションモジュールは、ロボットがナビゲーション空間内のどこにあるか(をロボットが考えるか)に関するフィードバックを提供することができる。共有される位置は実際の座標であり、ルートが進むにつれて座標が変換される。そのため、低レベルでは、ローカルナビゲーションモジュールは、マップ上の現在の位置を追跡し続ける。比較すると、高レベルでは、システムは、ロボットがルート上のどこにいるか、例えばロボットが第1のチェックポイント又は第2のチェックポイントを通過したかどうか等を追跡し続ける。マップ上のロボットの場所に基づいてルートの進行状況を把握するプロセスは、ルート同期モジュールで行われる。ルート同期モジュールの機能は、他のロボットのルートの進行状況に耳を傾け、ロボットの移動先を決定し、その情報をローカルナビゲーションモジュールに中継してその場所に移動させることである。同時に、ローカルナビゲーションモジュールからのフィードバックに基づいて、生成した最適ルートプランからそれ自体のルート進行状況を計算し、それを他のロボットに送信する。他のロボットには、それ自体のルート同期モジュール及びローカルナビゲーションモジュールがあり、それら他のロボットは、第1のロボットと同様のタスクを実行する。
【0040】
一実施形態では、システムは、柔軟性があり、ルートプランニングを改善するためにロボットからフィードバックを受け取ることができる。システムからロボットへの双方向の命令は、メッセージ通信の形式であり得る。リアルタイムのシナリオでは、倉庫の環境条件は絶えず変化し得る。環境のレーザースキャンに基づいてマップが数日前に作成された場合に、いくつかの静的な物体が移動したか、ロボットが現在の新しい障害物に遭遇する可能性がある。特定の状況では、システムは、各ロボットのルート同期モジュール及びローカルナビゲーションモジュールが、それらの経路で新しい障害物が経路に入ったときに、特定の場所で待機する等の決定を行うようにし得る。決定は複数のカテゴリに分類できる。例えば、障害物が人間である場合に、ロボットは待機することがある。しかしながら、障害物がテーブル又はボックス等の物体である場合に、次に、ロボットは、それらの物体が静的な障害物であることを認識しているため、障害物の周りを移動することができる。障害物が新しい情報である場合に、障害物に関連する情報はmrrpモジュールに逆方向に中継される。ルート同期モジュール及びローカルナビゲーションモジュールは、この情報をフィードバックループとしてmrrpモジュール又はシステムに送り返し、ルートプランの生成をさらに改善する。また、ルートプランはより保守的なプロセスであるため、計画段階で、時には、通路が狭いためにロボットが移動しないように命令される場合がある。しかしながら、ルート同期モジュール及び/又はローカルナビゲーションモジュールがフィードバックを提供する場合がある。例えば、通路の幅は移動するのに十分な幅であり得る。このため、場合によっては、ロボットは経路を移動できるが、この経路は以前に考慮から外されていた可能性がある。システムは、情報がローカルで取得したものと同じようにその情報を正確に扱い、ロボットの現在の状態、環境等を示す。システムは、全ての要因を考慮してそのようなシナリオで決定を下し、ロボットの移動を許可することができる。
【0041】
高レベルでは、システムは、いつ再計画を行う必要があるかを決定しなければならない。例えば、マップの説明(記載)が実際の説明(状態)と一致しない場合がある。この倉庫の実際の環境との不一致により、計画中に、ロボットが移動するのに十分な空間が考慮される可能性がある。しかしながら、実際には、ロボットにとって十分な空間がない場合がある。このような場合に、システムは、特定の経路がブロックされている場所を動的に解析し、その状況を回避するために計画を最適化する。そのため、システムは、ルートを再計画し、それらのブロックされた経路を通過不可能と見なす。これらの制約は、状態が改善するにつれて後で削除され得る。このような要因により、システムは最適化又は再計画を余儀なくされ、ロボットが代替経路を使用して目的地に到達し又は衝突を回避できるようにする。一実施形態では、システムは、ルートを最適化することができ、ロボットに配信される計画したルートは順方向(forward-looking)である。ルートは、起こりうる全ての衝突を考慮して計画されている可能性がある。そのため、ロボットが渡されたルートプランを辿れば、衝突は発生しない。
【0042】
一実施形態では、ツリーの全ての単一ノードは、ツリー内のそのノードを通過する統計に関する情報を含む。ツリーの各ノードには、ノードに対して計画した軌道全体が格納される。さらに、経路とともに、ノードに格納されている他の情報は、軌道に関連する統計である。ノードに保持されているこれらの軌道は、新しい軌道に対して以前に計画した軌道として後で特定される。ツリーの各ノードに格納されるデータには、経路、エラーコード等の経路の統計、総移動時間、衝突の数等が含まれる。データには、手動で指定するか、衝突の数、受動的カウント、優先バイアス(priority bias)等を含むコスト関数に基づいてシステムベースによって計算され得る値関数の結果も含まれる。データには訪問カウントも含まれ得る(訪問カウントは探索訪問(exploration visits)のバランスを取るために使用される)。衝突の場合に、データには、誰が誰と、いつ、ルート内のどの地点で衝突したか等、衝突の詳細が含まれ得る。
【0043】
一実施形態では、グラフ202、例えば有向グラフは、複数の特性を有するノードを有し得る。グラフ202の1つの特性は、駐車不可ノードである。駐車不可ノードは、システム又はルートプランナが交通によって遮断又は詰まらせたくない倉庫内の重要な交差部であり得ることが理解される。これらの交差部は、定期的に使用され、ロボットの速度を低下させる可能性がある。このような交差部は駐車場がないことを示し得、これは、ロボットがそこで待つこと、又はそこで停止すること、又は目的地としてそこに行くことができないことを示している。このようなノードは、駐車不可ノードと呼ばれ得る。このプロパティは、複数のロボットが重要な交差部で詰まる可能性があるシナリオを処理するのに役立つ。次に、このプロパティは、ロボットに、そのような目的地に駐車したり、待機したり、停止したりしないように強制的に命令するためにシステムによって使用される。システムは、ロボットに別のノードに移動するように要求する場合があり、この別のノードには、重要な交差部等の任意のシステム又は倉庫に関連する問題がなく、ロボットが駐車し得る。グラフのそのようなプロパティを適用した後に、又は倉庫内をナビゲートする際に遭遇する複雑なシナリオを処理するために、システムが、ルートプランを更新、再計画、又は最適化することが理解される。
【0044】
一実施形態では、システムは、目的地のないロボットの経路を計画することに関連するグラフ202の別のプロパティを可能にする。このような経路は受動(passive)経路と呼ばれ、この経路は目的地のない経路である。例えば、このような経路では、最終目標の規定は1つの場所だけでなく、任意の場所が可能である。グラフ202のこの受動経路プロパティは、システムが、衝突を回避するためにロボットが最短の迂回又は移動を行うのを可能にすることを有効にする。システムは、第1のロボットが第2のロボットの経路を通過しようとする場合に、ルートプランを最適化して、第1のロボットを回避し、第1のロボットが通過できるように第2のロボットに経路から離れるように命令することを含めることができると解析することができる。しかしながら、解析の結果、他のロボットが第2のロボットの経路を移動していないことが分かったとする。その場合に、ルートプランは、第2のロボットが元の経路に固執することを含むように最適化され得、このため、第2のロボットが経路から離れる必要がない場合がある。
【0045】
一実施形態では、経路が、受動的であり、駐車不可ノードが存在する場合に、いくつかのシナリオでは、次に、システムは、受動的ルート上を移動するロボットが駐車不可ノードを目的地にすることを許可しないようにルートプランを最適化することができる。防火ゲートに関連する安全シナリオを考えてみる。火災警報器が鳴ると、システムは防火ゲートを自動的に閉じ、全てのシステム構成要素は、全てのタスクを停止してアイドル状態に移行するように命令される。しかしながら、このような重大なシナリオでの1つの懸念事項は、システムの停止命令により、ロボットがこれらの防火ゲートの下で単に停止する可能性があることである。これにより、防火ゲートがブロックされ得、ゲートを閉じることができなくなる可能性があり、これは、重大なリスクと見なされる火災の危険につながる可能性がある。このシナリオは、ロボットに損傷を与える可能性もある。システムは、倉庫の重要なシナリオのルートプランを解析し、ロボットが駐車不可ノードに到達すると、防火ゲートと一致するノードを駐車不可としてマークする。次に、解析に基づいてルートが最適化され、ロボットは、停止する代わりに受動的ルートを要求する。ロボットが駐車可能ノードにある場合に、次に、ロボットは、停止し、その場所に留まる。しかしながら、ロボットが駐車可能ノードにない場合に、ロボットは、最も近い駐車可能ノードに移動する。このシステムにより、重要なシナリオを処理するためのルートプランの最適な生成が可能になる。重要なシナリオには、衝突、火災の危険、交通渋滞、損害、安全上の問題や、倉庫又はロボットの生産性、使用率、効率に影響を与える可能性のある性能等が含まれ得る。一実施形態では、期間限定セール、又はプライム日セール、又は割引日セールを考慮すると、倉庫内のロボットの性能はビジネスに影響を与える。このため、そのような期間中のロボットによる性能は、重要なシナリオと見なされる可能性がある。
【0046】
別の実施形態では、システムは、受動経路及び駐車不可ノードのようなグラフ特性に基づいてルートプランを解析する。システムは、渋滞の問題の回避に関連する1つの技術を使用する場合がある。システムは、ヒューリスティック(heuristics)を適用して渋滞を解決する。ヒューリスティックは、交通が多い可能性のあるノードをマップ内で特定し、そのノードを駐車不可として指定することである。ヒューリスティック解析に基づいて、システムは、これらの駐車不可ノードでの停止又は待機を含まないようにルートプランを最適化することができる。自律型車両が駐車不可ノードに収束すると、システムは、受動経路を使用してルートプランを更新、再計画、又は最適化して、これらのノードで停止又は待機するのではなく、迂回する。このシステムは、経路の遮断を回避し、車両が渋滞を引き起こさないように予防措置を講じる。
【0047】
一実施形態では、システムは、重複しないノードのようなグラフ特性に基づいてルートプランを解析する。グラフを設計するときに、ロボットはノードで待機する必要がある。そのため、グラフ内のノードは重複しない可能性があると想定される。全ての単一ノードには、ノードが占める空間の量を規定するプロパティがある。例えば、ノードの表現を幾何学的形状、円として考える。第1のノードのどこかにロボットがあり、第2のノードの別の場所に別のロボットがある場合に、次に、それらの領域が占める空間は重ならないことが理解される。このため、ノードは重複していない。システムは、ロボットがノードに到達した場合に、次に、そのロボットは、ノード内にあり、他のノードの他のロボット/人間に干渉していないと想定する。これは、システムのタスクを単純化する衝突回避の想定である。これにより、システムの効率が向上し、他のノードのスキャンを回避するのに役立つ。システムは、ノード内で待機しているロボットを、ノードの周りを移動する他のロボットに干渉していないと見なす。このため、これは、ノードが動作空間内の他のノードと重複してはならないことを義務付けている。
【0048】
一実施形態では、マップ生成モジュール211の出力は、表現、例えば、ノードが空間内で重複しないグラフ202の形式であり得る。システムは、空き空間を最大限に活用できるように、ノードの配置をさらに最大化しようとし得る。細かい軌道を描くには、グラフを空間的に詳細化し、ノードを互いに近づけて配置する必要がある。これはノード間隔の想定に違反する可能性があるが、グラフの重複するノードプロパティは、この問題の拡大を助長する。そのため、各ノードには、そのノードと重複する他のノードの詳細を指定するプロパティがある。従って、衝突検出では、複数のロボットが同時に同じセグメント又はノードにあり、それらのサイズの合計がそのノードの空間を超える場合に、次に、それは、衝突と見なされる可能性がある。重複するノードプロパティでは、ロボットは、特定のノードを占有するだけでなく、特定のノードと重複する可能性のある他のノードも占有する場合がある。システムは、様々なプロパティのルートプランを解析し、ルートを最適化して、ロボットが位置付けされる可能性のある隣接ノード及び他のノードでの衝突を回避する。
【0049】
一実施形態では、本発明は、ロボットのような異種の自律型車両をサポートする。ルート要求の以下の表と、軌道、例えば通過するノード、時間等のサンプル出力を考えてみる。これは、空間及び時間のペアのようなものであり、前提条件生成ステップの前に発生する可能性がある。軌道は、ルートプランナの生の出力である。以下の入力詳細を含む2つのロボットA及びBがあると考えてみる。ノード情報は、理解及び表現の目的でのみ提供されていることが理解される。ただし、ノード分析モジュールがアクティブ化されない限り、システムはノード情報を利用できない。
【表1】
表1では、入力要求には次のものが含まれる。ロボットAは、時間0において、倉庫内のノード9と位置合わせされた(x,y)=(90,0)座標で開始し、開始位置からy方向に向けて(x,y)=(90,10)座標で終了し、ノード19と位置合わせされる。同様に、ロボットBの場合に、テーブルデータは、ロボットBがその位置から移動したくないことを示しており、このため、(x,y)座標(40,0)は、開始位置と終了位置との両方でノード4と位置合わせされる。
【表2】
表2は、出力が前提条件生成モジュールと共有される前のルート軌道の生の出力を表す。時間0では、ロボットAはノード9にあり、時間10では、ロボットAはノード8にあり、時間20では、ロボットは、座標(70,0)に移動し、ノード7と位置合わせされる。表現及び簡素化の目的のために、Bの経路はAの後に示される。Aと同様に、Bの経路は、時間0では(40,0)であるノード4から始まり、時間10では、ロボットBは(30,0)であるノード3にある。表2では、時間40でのロボットAの経路を検討する。時間40では、ロボットAはノード5にあり、時間50では、ロボットはノード4にある。ただし、ロボットBはノード4から開始する。そのため、時間50では、ロボットBは、時間50でノード4にあるロボットAとの衝突を回避するために、ノード3に移動する必要がある。そのため、ロボットAがノード5からノード4に向けて移動すると、ロボットAに関して50であるその時点で、ロボットBは、ノード3に、次にノード2、1、0に向けて移動を開始する。システムは、経路を解析し、潜在的な衝突シナリオを特定する。システムは、ロボットAがロボットBと衝突しないように措置を講じ、ルートプランを生成する。ロボットBは同じノードで開始及び終了する必要があるが、ロボットAはノード4でロボットBと衝突する可能性があるため、システムは、ロボットBにノード4から迂回するよう離れて、後でノード4に戻るように命令する。同様に、ロボットBは、時間60及びノード20で座標(0、20)にあり、ロボットAは時間60で座標(30,0)にある。ただし、システムは、この時点で衝突がないことを確認し、経路の解析に基づいて、システムは、ロボットAがノードAに時間100で到達するようにロボットBがノード10に移動した場合に、ロボットBがロボットAと最終的に衝突する可能性があると判定する。そのため、システムは、ロボットAが時間110でノード10を通過するまでロボットBがノード20で待機するルートプランを生成する。ロボットAが時間110でノード10を通過すると、次に、ロボットBは、待機状態から移動状態に移り、時間111でノード10に移動する。上記の両方の例では、システムは、衝突を回避するために自律型車両を待機又は移動させることを含むルートプランを生成する。
【0050】
一実施形態では、セグメントは、x及びy座標によって示される対角線上に反対の点を有する長方形の領域又はボックス形式として表すことができる。セグメントは、図4(B)~図4(D)に図式的に表される。セグメントは、グラフのエッジとして表すことができる。例えば、表2に示されるように、時間0及び10で、ロボットAは、座標が(90,0)及び(80,0)である空間内の長方形で表すことができる。システムは、長方形が占めるボリュームを計算して、ロボットAが時間0及び10にある空間を特定する。この空間のボリュームは、長方形又はボックスで表される。経路の解析中に、衝突を確認するために、システムは、ロボットA及びロボットBの2つの長方形又はボックスが交差するか否かを確認することができる。ボックスが交差する場合に、次に、衝突の可能性があるため、経路が最適な経路ではない可能性がある。ロボットがあるノードから別のノードに移動する必要があるときはいつでも、軌道が以前の軌道と衝突又は交差しているかを確認するためにクエリが実行される。クエリへの応答が肯定的である場合に、ロボットは次のノードに移動する。そうでない場合に、システムは、別の軌道と潜在的に衝突する可能性のある、ロボットの最適なルートプランを生成する決定を下す。表現の目的で、衝突は両方のロボットが同じノードにあるときに発生するが、実際のシナリオでは、両方のロボットが幾何学的形状(ボックス又は長方形又は同等の形状)の1つで表される場合に同じ空間セグメントにあるときに衝突が発生する可能性がある。動作環境でのリアルタイムシナリオは、上記の表に示されているものよりも遥かに複雑であることが理解されるが、理解のために表現は簡素に保たれている。選択した例には、2台のロボットが特定の時点で同じノードにないことを確認する単純なケースも含まれる。ただし、システムがルートプランを最適化するための措置を講じる理由は他にも様々である。ルートを最適化しながら、システムは、可能な限りベストエフォートで衝突を最小限に抑えることを目指している。
【0051】
自律型車両があるノードから別のノードに移動するとき、又は車両が待機、駐車、迂回、移動、又は停止するようにシステムからの命令又はメッセージがあるときに、システムは、これらのステップをキャプチャするためのルートプラン又は軌道を生成する。表現又は簡略化の目的で、参照は、車両が移動又は状態を変更するためだけのものであり得るが、実現するには、システムは、衝突に関して解析される1つ又は複数のルートプランを生成する必要があり、後で最適なルートプランは車両に後で配信するように決定される。
【0052】
一実施形態では、実装レベルで、グラフは、サンプル出力軌道に示される番号のリスト、及び前述の表に表されるルート要求を含むファイルによって表され得る。グラフは、システム内で複数の方法で、例えばギザギザの配列として表され得る。ギザギザの配列は、その要素が配列であるアレイである。ギザギザの配列の要素は、様々な寸法及びサイズにすることができる。2Dのギザギザの配列は、グラフを表すために使用される。これは、CSVファイルを考慮して簡単に説明できる。ファイルは数値の表のようなもので、最初の列はノードのID(識別子)であり、第2の列はノードのx座標であり、第3の列はノードのy座標であり、第4の列は、半径の観点から、ノードのサイズである。残りの列は、存在するエッジのリストである。全てのエッジは、行で表される特定のノードが接続できるノードのIDで表される。また、各行には、エッジの幅も含まれる。
【0053】
一実施形態では、グラフ生成モジュール211は、空き空間の量が最大限に使用され、ノードのいずれも互いに重複しないように、ノードの最適化された配置を提供する。次に、基本的に動作全体の開始点となるグラフが生成される。グラフ生成モジュールからこの自動生成したグラフには、特別なプロパティはなく、例えば、重複するノードや駐車可能ノード等はない。そのグラフには空間プロパティがあり得るため、最初の想定はロボットが通路のうちの1つに収まるのに十分な大きさであり、そうでない場合に、ロボットがどこにも移動できない可能性がある。一実施形態では、2台のロボットの場合に、ロボットは通路を通過できるほど小さく、最初は衝突回避ステップを考慮する必要がないことを考慮されたい。最初に、ロボットが互いを通り過ぎてプロセスを開始できると想定できる。
【0054】
グラフ又はマップ生成モジュールがグラフ302を生成した後に、1つ又は複数のルート要求がシステムによって受信され得る。前に議論したように、表1にルート要求の例を示す。そのため、ロボットAは(90,0)で開始し、(90,10)で終了し得る。同様に、ロボットBは、(40,0)で開始し、同じポイント(40,0)で終了する。他のロボットの場合に、同等のノードの詳細を含む同様の開始点及び終了点がルート要求の一部として提供される場合がある。表1に示されるように、ルート要求は座標内にある。これらのノード要求は、ノード分析モジュールで受信され、正しい開始ノードを離散化して割当てる。例えば、ロボットAは、ノード9で開始し、ノード19で終了し得、ロボットBは、ノード4で開始し、ノード4で終了し得る。一実施形態では、ルート要求は、ノードに関連する情報を含まない場合があり、正しい開始ノード割当ては、ノード分析モジュールによって行われる。このノード割当てタスクは、ノード分析モジュールによって複数の方法で処理される。1つの方法は、自己組織化マップを使用することである。自己組織化マップは、教師なし学習を使用してトレーニングされた一種のニューラルネットワークであり、トレーニングサンプルの入力空間の2D離散化表現を生成する。一実施形態では、トレーニングサンプル入力空間は、マップ(map)と呼ばれ得る。
【0055】
一実施形態では、自己組織化マップ技術を使用する代わりに、ノード分析モジュールは、ロボットを最も近いノードにマッピングするより簡素な方法を使用することができる。複数のロボットが同じノード内に収まらない場合でも、複数のロボットは最も近いノードに位置合わせされる。衝突関連のシナリオでは、システムは、衝突の解決策を入力ステージ自体で処理するよりも後のステージに延期する場合がある。システムはこれを障害のある入力又は無効な入力とは見なさない場合があるが、この入力を受け取り、ルートプランニングの次のステップに進む。
【0056】
一実施形態では、ノード分析(resolution:解決)ステップを実行するための追加の技術は、画像アップサンプリング技術の概念に類似した、グラフをアップサンプリングすることによるものである。画像のアップサンプリングでは、この技術では、低解像度の画像から高解像度の画像へのピクセル同士間の補間技術を適用することにより、あるピクセルから別のピクセルへの変化を説明するための近似円滑化曲線を取得する。同様に、グラフには、ピクセルの代わりに、エッジ及びノードで構成されるグラフがある。アップサンプリングプロセスは、全ての単一エッジを解析し、半分に分割して、エッジの中央にノードを配置することを含む。このアップサンプリングプロセスにより、エッジが自動的に2倍になり、ノードが増大する。アップサンプリングプロセスの利点は、システムがグラフの高解像度のきめ細かいトポロジの詳細を取得することである。このプロセスは、システムが最も近いノードをより正確に決定するのに役立つ。この最も近いノードは、最初に利用可能であった実際の位置情報に比較的近い可能性がある。第2に、ノードの数が多いため、2台のロボット間の競合の可能性が遥かに低くなり、ノードの割当てがより容易になる。グラフのアップサンプリングのこのプロセスには、考慮すべきいくつかの要因がある。例えば、グラフ内にノードの重複がない場合に、次に、複数のノードが同じ量の領域に配置されるようになったため、グラフのアップサンプリングによってノードが重複する可能性がある。
【0057】
表現の場合に、ツリーの「ノード」という用語は、前述の倉庫の「ノード」とは異なることが理解される。一実施形態では、倉庫のノードは、ロボットが訪問、待機、迂回、又は停止することができる空間の領域である一方、ツリー構造内のノードは、ルートプランニングの異なる段階を表し得る。他のシナリオでは、「ノード」という用語は、それらのノードで訪問、待機、停止、迂回したりする可能性のある自律型車両も表すことができる。「ノード」という用語の意味は、説明した文脈、例、及びシナリオに基づいて決定され得る。
【0058】
図3(A)~図3(E)の各図は、一実施形態による、ルートプランを最適化するための例示的な非限定的な表現を表す。図3(A)では、各円を軌道と見なす。表現の目的で、ツリー等のデータ構造が一実施形態で使用される。使用されるデータ構造はツリーであるため、ツリー内の個々のエンティティはノードと呼ばれ得る。図3(A)では、円310は、ルート(root:根)ノードと見なすことができ、これは、初期状態であり、情報が最初に利用可能ではない。各ノードの状態情報は、経路コーディネータ204に格納される。システムが計画を開始しておらず、ルートがないため、経路コーディネータ204の構造は、最初は空である。まず、システムは、ルート301からノードAまでの線又はエッジで視覚的に表されるルートAを計画する。システムがルートAに関するルートを計画すると、システムは経路検索モジュール214を呼び出す。システムの目的は、前に詳述したように、既に計画したルートと比較して最適なルートを計画することである。システムは、ツリーを解析し、この段階で既存の計画ルートがないことを決定するため、最適なルートはルートノードからノードAへの直線である。次のノードBのルートプランニングステップでは、経路コーディネータにおいてAに関して以前に計画したルートの既存の知見がある。解析中に、システムはAの既存の計画ルートに出くわす。そのため、Bのルートを計画するために、システムは、Aで既に計画したルートを回避することによってルートを最適化する。計画したルートのこのツリー構造は、経路コーディネータ204に格納され、解析プロセスの一部として、既に計画したルートに関する情報を取得するために、システムによって照会される。ルートBを計画した後に、経路コーディネータ204内のツリー構造は、ノードBが構築されるまで、図3(A)に類似する。各ノード内では、ルートノードから開始してノードBまで、経路コーディネータ204に格納される情報は、経路だけに限定されない。経路コーディネータ204において、システムは、計画の統計等の情報、例えば、ルートにかかる時間及び距離、例えばA等との避けられない衝突に関連する詳細等の他の情報も格納する。統計を使用して、ルートがどの程度最適であるかを理解することもできる。一実施形態では、避けられない衝突情報は、例えば、単一ロボットの経路検索プロセス210によって、特定のルートの計画ステップの出力から受信され得る。高レベルでは、システムは、統計情報、以前に計画したルート又は軌道、ノード情報、ロボットが行きたい目的地、ノードとして表されるもの等に基づいてルートを計画することができる。この全体的な情報は、経路コーディネータ204で繰り返し更新される。そのため、システムは、全ての段階で既存のルートプランを解析する、例えば、ルートを以前に生成されたルートと比較する。一実施形態では、システムの目的は、衝突回避、渋滞の最小化、利用率の改善、性能、ロボット及び/又は倉庫の効率等の重要なタスクに基づいて解析し、後で、最適に生成したルートプランをロボット群に配信することである。
【0059】
図3(A)では、別のノードCについて考えてみる。次に、ルートプランニングのために、上記のステップを繰り返すことができる。解析フェーズ中に、システムは衝突チェックを行う。ノードCのルートプランニング中に、システムは、以前に計画した経路を通過するまで、ルートノードを終了するまで、矢印310及び320によって示される後方向への通過(traversal:横断)を行う。以前に計画した全てのルート(ルートノードA及びBから開始)について、システムは、訪問テーブル(visit table)と呼ばれるデータ構造にエントリを作成する。経路コーディネータ204は、訪問テーブルを構築するタスクを実行する。訪問テーブルは、システムが特定の場所での衝突を特定できるようにするノードによってインデックス付けされた迅速なルックアップテーブルである。訪問テーブルは、動作環境の全ての位置のログブック(logblock)のようなものである。ロボットが動作環境内の交差部、ノード、又は他の場所を通過する度に、訪問テーブルは、ロボット情報、時間、場所、衝突情報関連の詳細等で更新される。訪問テーブルは、ナビゲートしている全てのロボットによって更新される。ロボットが動作空間内のどこかにあるとする。その場合に、システムはロボットが訪問テーブルにクエリを実行できるようにする。これにより、ツリー構造を広範囲に通過することなく、ロボットが現在位置している場所にローカルな衝突情報を素早く調べることができる。こうして、ルートプランニングの前に、ツリー内の祖先(ancestor)ノードの通過が実行される度に、訪問テーブルが更新される。Cに関するルートプランニングが完了した後に、ルートBをルートCに接続する分岐又はエッジが取得される。後のルートプランでは、上記と同じプロセスが繰り返され、それに応じて訪問テーブルが更新される。システムは、ツリー内の新しいルートプランのために分岐が成長する(増える)につれて、経路コーディネータ204の訪問テーブルを更新し続ける。経路コーディネータ自体がツリー構造であるため、祖先ノードを通過する間に解析及び更新され得る訪問テーブルの部分を再利用することにより、システムをさらに最適化することができる。最適化には、ルートプランニング順序の系統をトレースして、最新の共通の祖先ノードがどれかを確認し、ツリー構造全体を通過する代わりに、最新の共通の祖先ノードからの訪問テーブル情報を使用することが含まれる。例えば、図3(D)と図3(E)との両方の図において、ノードA及びノードDの共通の祖先ノードはノードCである。ノードAを通過した後であって、ノードDの計画中に、訪問テーブルで使用可能なルートプラン情報が全てのノードで再訪問されない場合があり、代わりに、最新の共通の祖先ノード(ノードC)は、訪問テーブルの一部、つまり他の全てのノードの代わりにノードCを再利用することによってのみ、最適化するために通過できる。
【0060】
一実施形態では、経路コーディネータ204は、他の技術も使用して拡張することができる。ルートが計画される度に、経路コーディネータ204内のデータセット及び詳細レベルで、訪問テーブル自体が継続的に更新される。例えば、図3(A)とは異なり、図3(B)に示されるように、システムが、ルートAの別のロボットの前に、ルートBのロボットのルートプランを生成する優先入力を最初に受け取ったと考えてみる。図3(B)に示されるように、Bの計画は、回避する必要のある物体がないため、理想的なルートになる。物体は、動作環境でナビゲートしているロボットと衝突する可能性のある非人間及び/又は人間の障害物を含み得ることが理解される。Bを計画した後に、図3(B)に示されるように、システムは、Aを計画し、次にCを計画することができる。図3(B)は、統計情報の別のセットを提供し得る別の形式の順序付けを表す。例えば、Cは図3(A)と図3(B)との両方の図で最後に計画したが、AとBの順序が入れ替わっている。図3(B)に示される順序は、図3(A)に示される順序と比較して、衝突の数及び移動時間が少なくなる可能性がある。システムは、衝突情報、移動時間の短縮等、複数のパラメータに基づいて様々なルートプランを解析し、その後、ナビゲーションのためのルートプランを最適化することが理解される。
【0061】
一実施形態では、ルートプランの解析は、より良いルートプランを生成するためにツリーを順序付ける異なる方法を特定し得る。例えば、ツリーの分岐は必ずしもルート(root)から開始する必要はない。図3(C)に示されるように、分岐は中間ノードから開始することができる。Bが最初に計画され得、次にCが次に計画され得、その後、計画Aが計画され得る。計画され得る別の順序が存在し得、図3(C)に示されるこの順序は、図3(A)及び図3(B)に表される順序よりも優れている場合がある。これらの順序付けの利点は、訪問テーブルの一部を再利用するために行われる最適化と同様に、共有情報も使用できることである。例えば、図3(B)及び図3(C)では、ノードBのルートプランを最適化する一方で、ノードBは両方の順序付けに共通であるため、収集した全ての統計情報を順位付けに使用することができる。この形式の共有情報は、両方の順位付けを作成するのに役立つ。共有情報の例は、訪問テーブルを構築するために再利用され得る共通の祖先(例えば、図3(B)及び図3(C)のノードB)のデータを含み得る。図3(A)、図3(B)、及び図3(C)の非限定的な例は、ツリー状のデータ構造を構築する経路コーディネータ204の機能を表し、経路が計画される度に、経路又は軌道がツリー構造に追加される。ツリー構造が拡張され、後でこのツリー構造を使用して、計画した順序の様々な順列の統計と、衝突チェックの高速ルックアップの統計との両方を素早く調べることができる。
【0062】
一実施形態では、統計データは、ツリーの各ノードに格納され得る。ツリー内の全てのノードは、解決策が特定のノードに適しているかどうかを示す統計データを格納する。この決定に使用される様々なメトリックがあり、例えば、親からノードへの通過中に遭遇した衝突の数、特定のノードに到達するために目的地なしに変換されたルートの数を示す受動経路の数、総移動時間、システムが意思決定のためにノードを含む経路を通過した回数等である。この情報は、ルートプランの解析中に、子ノードを通過する否かを判定する必要があるため、システムにとって重要である。システムは、衝突が最小限又はゼロのノードを通過することを好む。しかしながら、統計データが、通過すべきノードでの衝突が多いことを示している場合に、この情報により、システムはノードをスキップして代替ノードを探すことができる。最初に、システムがツリーを通過し始めると、システムは未知の領域にある。そのため、システムは第1のレベルで通過する。ただし、その後、システムは決定を行い続け、ツリーの子ノードに到達するまで、次々に1つのノードを含む経路を通過する。現在、システムには、解決策がどれだけ優れていたかに関する1つのデータポイントがある。同様に、システムは、他の経路を通過してより多くのデータポイントを収集し、ルートプランの最適化に関する正確な決定を下す。統計データは、システムが正しい決定を下せるようにする一連の情報のうちの1つである。
【0063】
一実施形態では、システムは、マルチ経路ツリー検索中にマルチスレッド(multithreading)を使用して、異なるルートプランを同時に生成する。検索スレッドは互いに結合されているため、通過中にいずれかのスレッドが情報を受信した場合に、データはグローバルデータベース111にフィードバックされ、このデータベース111には意思決定のために他のスレッドがアクセスできる。このグローバルデータベース111は、ここで説明する他のデータ構造及びストレージ、例えば経路コーディネータ204と同期される。システムは、誰もデータを変更しない限り、複数のスレッドがデータを常に読み取るのを可能にする。変更を避けるために、データは一定に保たれる場合がある。しかしながら、ルートプランニングプロセス全体で、一部のデータを全てのスレッドに亘って共有する必要がある。ただし、問題は、スレッドがデータをグローバルデータベースに書き込もうとし、別のスレッドがデータを読み取ろうとしたときに始まる。そのため、この問題に対処するためにシステムが実行する1つのステップは、ツリー表現を使用することである。祖先ノードの解決策は、以前に通過した経路である。システムは決定論的であるため、これらの解決策は変更されない。従って、一定に保たれる可能性のあるデータは、祖先ノードの解決策である可能性がある。解は計算した軌道であり、計算後にそれら軌道を変更する必要はない。これらの解決策は、グローバルデータベース111に継続的に追加される。ただし、修正が必要になる可能性のあるデータは、ツリー統計データである。特定のノードの統計データは、ある段階で適切な解決策を示している場合がある。しかしながら、別のスレッドは、ノードに関連する経路を通過した後に、衝突や移動時間等の理由でノードの統計データが適切でない可能性があることを示している場合がある。そのため、統計データを修正する必要があり、統計データは一定に保たれない可能性がある。統計データの値は、様々な時点で様々なスレッドが受信した情報に基づいて修正される。従って、この技術により、システムは、それらの通過に基づいて、スレッドによってより適切なフィードバックが提供される場合に、次に、ノードに関連する統計データを更新する必要があることを確実にする。これにより、より正確なルートプランが可能になり、システムがルートプランを継続的に最適化できるようになる。システムは、ツリーの一部(祖先ノード)を保護し、統計データに関連するツリーの他の部分を更新できるようにすることで、競合状態の問題を処理する。
【0064】
一実施形態では、経路コーディネータ204の実施態様は、経路計画プロセスと一致して機能する。経路計画への入力は、図3(A)、図3(B)、及び/又は図3(C)によって表され得るように、経路コーディネータ204であるデータ構造全体である。理解のために表現が簡略化されていることに留意されたい。しかしながら、実際には、構造は、複雑であり、動作環境の広大な探索空間に基づいて、及び複数の異種自律型車両をナビゲートするために、計画すべき経路に応じて様々な分岐がある。システムは、図3(D)に示されるように、ノードCの上にノード、例えばDを追加するための入力を受け取ることができる。次に、解析フェーズ中に、システムは、経路検索モジュール214を呼び出すためにデータ構造全体を使用して、単一のロボットが共通の祖先において以前に計画した全ての経路を回避できる方法を決定する。マルチ経路ツリー検索モジュール213は、ツリーをどの様に構築するかを決定するためのツリー検索プロセスである。経路コーディネータ204自体がツリーである。マルチ経路ツリー検索モジュール213の場合に、システムは、非常に多くの計算リソースを浪費することなく、よりスマートな技術を適用して、良好な結果を探索及び取得する。適用できる様々な技術がある。例えば、通過は、ルート(root)からリーフノードまで実行され、ツリー内の各ノードの統計を収集し、特定の通過経路でルートノードからリーフノードまでの経路内の全てのノードの統計を集約する。例えば、図3(D)では、集約統計は、D、CからBまでの全てのノード(点線330で表される)、及びA、CからBまでの経路(点線340で表される)について収集され得る。次に、ルートノード及びノードCを通過した後に、マルチ経路ツリー検索モジュール213は、次に、衝突情報、移動時間、障害物情報等を含む以前に収集した統計データに応じて、図3(D)のノードA又はノードDを横切る経路を通過するかどうかを解析することができる。システムは、統計データにいくつかのヒューリスティックを追加して、通過する経路を決定する決定、例えば、履歴的に特定の経路を通過することの期待される報酬(reward:利益)がどれ位か、又はシステムが未知のパラメータをどれ位探索したいかをガイドすることもできる。
【0065】
一実施形態では、本発明は、既存のツリー検索技術を改善する。システムは、メタヒューリスティックプロセスを使用して計画できる順序を自動的に決定する。一実施形態では、システムへの1つの入力は、特定のロボットが、より高い優先順位の値を有することであり得、従って、最初に計画する必要があり得る。図3(E)では、新しいルートノードをRと見なし、ツリー検索モジュールに入る前に、システムは、ロボットX及び別の優先順位の高いロボット、つまりYを計画することができる。ノードYの分岐は、ノードXに追加され、後で新しいルートノードに追加される。これにより、最初にX、次にYの探索が強制される。この優先順位の入力は、ユーザが手動で行うか、又は衝突処理に関連する決定を行う間にシステムによって処理され得る。この後、ノードYは、図3(E)に示されるノードに接続され得る。この技術により、Xが常に最高の優先順位の値を有し、次にYが第2の優先順位を有し、その後、残りのノードが探索される。優先順位の値は、探索にバイアスをかけることを含むシステムによって行われる解析に基づいて、よりソフト又は制限の少ない方法で決定することもでき、例えば、任意の他の経路ではなく特定の経路を通過する報酬に基づいてノードを選択する。例えば、図3(E)では、左ノードA又は右ノードDを優先する決定は、ノードが探索された回数に依存し得る。例えば、ノードAがノードDよりも多くの回数探索される場合に、優先順位付けは探索されるノードの数が少ないことに基づいている可能性があるため、この場合、ノードDが優先される可能性がある。この決定プロセスに使用できる他のパラメータは、優先パラメータとすることができ、この場合に、最小の衝突で通過した経路等の理由により、ノードAがノードDよりも優先される場合がある。各パラメータには重み付きポイントがあり得、重み付きポイントの合計は、特定のノード又は経路に優先順位を付けるために考慮され得る。この検索ヒューリスティック用語はノードBをブーストし、これは探索決定をノードBにバイアスするのに役立つ。様々な同様のメカニズムをこの決定プロセスに適用できる。
【0066】
同様の入力のためのルートを再計画している間に、異なる解決策が得られる場合がある。システムは、決定論的実施態様に基づき得る。決定論的実施態様では、同様の入力に対して、一実施形態で同様の解が得られる。ただし、異なる解を取得する理由は、ツリー検索の実行中のマルチスレッド実装によるものである可能性がある。オペレーティングシステムはリアルタイムではないため、異なるスレッドが異なる時間に実行を完了する可能性がある。このようなシナリオでは、ツリー構造内の様々なノードの統計が、システムとプロセッサの負荷に応じて異なるレートで更新される場合がある。意思決定は様々なノードの統計に基づいているため、システムがルートプランを解析するときに、システム及びプロセッサの負荷及び計算に基づいて、得られる解が変わる可能性がある。いくつかのシナリオでは、ツリー検索プロセスをシングルスレッドにすることで、システムをより決定論的にすることができる。他のシナリオでは、システムのリソース全体を利用するために、システムをマルチスレッドで実行する場合がある。マルチスレッドシステムにより、ツリー構造の全ての単一ノードを同時に完全グラフ検索に拡張でき、これには、大量の計算リソースが必要であり、最適な結果を得るために複数のスレッドによって実行され得る。
【0067】
一実施形態では、システムの一般的な非決定論的性質のために、システムは、前述のアプローチを使用することによって、例えば、図3(E)のルートプランAの代わりに優先順位付けしたルートプランDを含み得るバイアス順序付けによって、柔軟性があり、より決定論的になるという利点を有する。そのため、次回、ルートプランDを検討しても、システムは依然として同じバイアスを保持する可能性があり、出力がルート構造の順序であるため、解決策は順序に関して略同じになる可能性がある。ただし、イベントが衝突回避に関連する場合に、そのイベントは重要なプロセスと見なされる可能性がある。バイアスのため、僅かな変更が発生した場合に、システムは衝突前に行われていたようにバイアスした(偏った)ルートプランを生成する場合がある。ただし、解析中に、バイアスにかかわらず、システムは衝突を回避するために順序を変更する以外に選択肢がない。このシステムでは、重要なタスクを他のタスクよりも優先させることもできる。しかしながら、ツリー構造に辿らなければならない特定の順序がある場合であって、それが衝突につながる可能性がある場合に、システムは、これを悪い又は否定的なアプローチと見なし、ヒューリスティック又は他のバイアスを上回るための措置を講じる。次に、システムは、衝突シナリオを回避又は最小化し得る別の順序に従うように試みる。
【0068】
一実施形態では、システムは、衝突を回避するための様々な技術、例えば、速度スケーリングを提供する。衝突を防ぐために、システムは、ロボットがロボットに向かって来る障害物を追い越すための措置を講じ得る。ここで、障害物は、この例では、ロボット、人間、又は他の移動物体であり得る。障害物が第2のロボットであると考えてみる。第2のロボットのルートプランに第1のロボットを通り抜ける経路が含まれている場合に、システムが経路を認識していても、第1のロボットは、第2のロボットとの衝突がないことを保証するように十分な速度である必要があり得る。このようなシナリオでは、衝突を回避するための1つの技術は、ゆっくりと移動するロボットを最初に計画し、優先順位の値を高くして、速く移動する他のロボットを後で計画できるようにすることである。後で他のロボットを計画するもう1つの理由は、ロボットの能力によって、低速のロボットと比較して高速であるために衝突を回避するためであり得る。いくつかの複雑なシナリオでは、衝突を防ぐために他の技術が適用され得る。一般的に、システムがノードを拡張し、解に衝突が含まれる等の望ましくない結果がある場合に、システムは、解析に基づいてルートプランを修正する、例えば、より良い解決策のためにツリーの別のノードを通過する場合がある等の、ヒューリスティックがある。これは、システムが最初に衝突につながり得るルートを生成する可能性があることを意味する。後で、ルートの解析に基づいて、システムは、衝突を回避する可能性が高いロボットを高速で移動させることによって、ルートプランを更新する場合がある。ロボットの減速は、経路検索モジュールの待機条件によって個別に処理される。システムが衝突を回避するために経路を解析する場合に、システムは、ロボットが他のロボットとの衝突を回避するために別の場所で待機できるようにすることで、ルートプランを更新する。ロボットを別の場所で待機させるこのプロセスは、ロボットを減速させることと同等と見なすことができる。一実施形態では、速度ブースト技術は、システムが回避しようとしている衝突を解析し、次に、ロボットが正確に計算した速度に従って移動するかどうかを確認するために前方に投影できる速度を計算することによってさらに改善され得、衝突を回避することができる。システムが衝突を防ぐことができる正確な速度は、ツリー検索プロセスによって計算することもでき、このプロセスでは、先に進んで前を進み得る第1のロボットを特定できる。対照的に、別のロボットが進行を妨げない場所(backstage)に移動して減速し、第1のロボットが前進できるようにする場合がある。
【0069】
一実施形態では、システムは、受動的変換プロセスに依存する衝突を回避するための別の技術を提供する。概念的には、速度ブースト技術に似ているように見えるかもしれない。ただし、受動的変換プロセスでは、速度を上げる代わりに、システムが、目的地をロボットが意図した場所とは別の場所に変更するようにルートプランを更新する。一般的に、ルートプラン生成の出力には統計データが含まれ得る。例えば、推定移動時間は、結果として得られる軌道の長さ、過去の検索から収集され得る存在する衝突の数、当初定められたルートから拒否されたルートの数等に基づく場合がある。最適化と衝突回避等の重要なプロセスの処理との一環として、システムは、優先順位に基づいて統計を複数のレベルに分割し、最も高い優先順位が衝突回避になり、次に、当初定められたルートから拒否されたルートの数である受動的変換を減らし、第3に、総移動時間を減らす。3つの統計のみを議論したが、しかしながら、本発明はこれらの3つの統計によって限定されず、動作環境でのロボットのナビゲーション中に生じる他の潜在的な可能性が考慮され得る。優先順位の値は、倉庫マネージャー等の1つ又は複数の外部エンティティによって、又はルートプランナ等の内部システムエンティティによって規定された要件に従ってカスタマイズできる。このツリー検索中に、望ましくない衝突の数がある場合にはいつでも、次に、システムは、受動的ルート技術を照会することを決定する場合がある。これは、システムが望ましくない衝突の数を減らすために行う一種のロバストな意思決定である。
【0070】
ルートプランニングプロセスのライフサイクル中に、システムは、ツリー構造を拡大し続ける。以前のルートプランを含め、全てのイベントで発生した最善の解決策及び/又は衝突を追跡し続ける。ツリー通過、ツリー内のノードの拡張、ツリーの検索の停止、ノード又は分岐のツリーへの追加等のデータ構造関連のプロセスステップは、高いレベルで、システムがルートプランを解析し且つルートプランを最適化するために従う基本的な実施態様であると理解される。一実施形態では、システムは、例えば、リーフノードへのどの経路が履歴的に最良の統計を与えたか等、最良の解決策の統計を保持する。検索が停止するときはいつでも、システムは、移動時間の短縮、衝突の減少、経路変換の減少、重複しないノード又は駐車可能ノードの数、優先順位の値、優先バイアス、速度等の複数の要因に基づき得る、遭遇した最良の経路を格納する。このアプローチの利点は、システムが上述したパラメータに基づいて検索の終了を決定できることである。検索終了条件のうちの1つは、計算時間制限のしきい値を規定することでもある。ナビゲーション中にロボットが動かなくなっていない場合には、しきい値を許容できる可能性がある。システムは、規定可能なしきい値を受け入れる場合もある。システムは、衝突がないこと、3~4の目的地が拒否されていること、又は3~4の受動経路変換があり、関連する経路がしきい値を満たしている状態で戻ることを許可する場合がある。このシステムでは、重要なタスクのルートプランを解析しながら、異なるメトリック、ヒューリスティック、及びデータをしきい値パラメータとして規定できる。また、一実施形態では、1~2台のロボット及び小さな探索空間が存在する可能性があるため、1つの基準は、解決策として潜在的な経路を返す前に、ツリー構造全体を探索することであり得る。システムは、特定の状況でユーザが意思決定を無効にし、検索をキャンセルできるようにすることもできる。
【0071】
上記のツリー検索技術は、統計的アプローチの使用、異なる技術のサンプリング、更なる探索のガイド、見つかった最良の解決策の追跡、及び検索が終了したときの最良の解決策の取得及び返送に基づいている。さらに、検索の終了後にも返送され得る他のパラメータは、ルートを受動的ルートに変換すること、速度ブースト技術に従って速度を変更すること等である。システムは、可能な全ての順列と(本明細書で議論する)技術の組合せとを使用して、生成したルートプランのセットが与えられた場合に最適なルートプランを決定するために使用できる解析メトリックを規定できる。
【0072】
一実施形態では、システムは、ルートプランニングを最適化するための決定を行うためのカスタマイズ可能な時間ペナルティ機能を可能にする。あるノードから別のノードに移動するのに一定の時間がかかるロボットを考えてみる。時間は、エッジの長さと、ロボットが開始ノードから終端ノードに移動する速度とに基づいて計算できる。ただし、いくつかのシナリオでは、この単純な解決策が複雑になる場合がある。ロボットは幅を取る又はサイズが大きい場合があるため、コーナーを通過するのにより多く時間がかかり、システムに時間のペナルティが課せられる可能性がある。このペナルティは、ナビゲーション中に1つ又は複数のロボットに課され得るカスタマイズしたマップベースのコスト関数であり得る。システムは、ルートを計画する間にそのような動的な制約を許容できる場合がある。カスタマイズしたマップベースのコスト関数の別の例は、高さ制限パラメータであり得、例えば、特定のエッジでは1m未満の高さのロボットのみが許可され、特定のサイズ又は高さのトラックではセグメント又はグラフのノードのみを通過するのが許可され、2mを超えるロボットは、セグメントに対して低速で移動するように求められる場合がある。本発明の範囲内で適用され得る他のコスト関数があり得ることが理解される。このような制約は、特定の能力、行動、サイズ等を有し得る異種車両を処理するために、計画段階でシステムによって使用される場合もある。
【0073】
図3(F)は、一実施形態による、動作環境内の様々なノード同士の間で最適化したルートプランを生成することを示すグラフの例示的な非限定的な表現である。一実施形態では、システムは、ロボットが開始する場所、終了する場所、マップ、以前に見つけたルートの祖先等に関する、1つ又は複数のロボットの要求を含む複数の入力を受け取る。入力に基づいて、システムは、衝突を同時に回避する最適なルートを決定する必要があり得る。図3(F)に示されるグラフデータ構造を考えてみる。ここで、グラフデータ構造内の全てのノードはマップ内の物理ノードである。グラフのデータ構造では、中間ノードを含む、開始ノード及び終端ノードを考えてみる。開始ノードから終端ノードに到達するための複数の経路がある。例えば、経路は、開始ノードから開始し->ノードA->終端ノード、又は開始ノード->ノードB->ノードC->終端ノード、又は開始ノード->ノードB->ノードA->終端ノード、及び他の可能な組合せに進み、開始ノードから終端ノードに到達する。矢印は、ルート内のあるノードから別のノードへの通過を示す。開始ノードから終端ノードに到達するための通過(traversal)技術について考えてみる。この技術では、開始ノードの2つの隣接ノード、ノードA及びノードBが検討され、それらのエッジの重みは、ロボットがあるノードから別のノードに通過する(traverse)のにかかる時間を示し得る。例えば、開始ノードからノードAへのエッジの重みが1であり、開始ノードからノードBへのエッジの重みが2であり得る。そのため、エッジの重みの値が大きいほど、ロボットがあるノードから別のノードに通過する所要時間が長くなることを示し得る。従って、ロボットは、図3(F)に示されるように、開始ノードからノードAよりもノードBに到達するのにより長い時間がかかり得る。システムはまた、ロボットをその経路から回転又は方向転換させるために移動時間のペナルティを課す場合がある。例えば、ロボットが開始ノードから->ノードB->ノードAへの経路を辿る必要がある場合に、ロボットは、ノードBで回転してノードAに到達する必要があり、移動時間のペナルティにつながる。いくつかの実施形態では、ロボットの動力学は、ロボットが方向転換する前に減速しなければならない可能性があることを制約し得、これは、ロボットが直線経路をとった場合:開始ノード->ノードA->終端ノードの場合を考慮すると、時間ペナルティの検討につながり、次に、ロボットは、速度を落とす必要がないため、時間のペナルティが課せられることはない。
【0074】
一実施形態では、グラフ構造全体のエッジ重みを1と考えてみる。ルートが開始ノード→ノードA→終端ノードである場合に、総エッジ重みは、開始ノードから終端ノードまでの経路を通過するのに行われたエッジ重みの合計であり、2になる。同様に、ルートが開始ノード->ノードB->ノードA->終端ノードである場合に、総エッジ重みは3になる。開始ノードから終端ノードに到達する場合に、最短経路は、開始ノード->ノードA->終端ノードであり、総エッジ重みは2であり得、これは、このようなシナリオで最適な経路を提供する。システムは、ローカルの情報セットを使用して最短経路を常に使用する。しかしながら、エッジ通過の長さ以外の他の検索技術では、バイアスヒューリスティックも検討され、この場合に、開始ノードの隣接ノード同士の間で決定すると、ノードAは終端ノードに近いため優先される場合がある。そのため、この技術により、システムは、開始ノードから終端ノードに到達するのにかかる時間が短い最短経路を使用して、ノードの拡張を直線方向に偏らせる(バイアスさせる)ことができる。これらの技術は、典型的な経路検索技術が最短経路をどの様に見つけるかを示している。ただし、これらの技術では、衝突回避に関連する詳細は提供されない。
【0075】
図4(A)-図4(D)のそれぞれの図は、一実施形態による、時間及び空間領域における軌道の例示的な非限定的な表現である。ノードが展開されると、システムは衝突を確認する。例えば、開始ノードを隣接ノードA又はノードBに接続するエッジについて考えてみる。システムは、グラフのデータ構造に表される2つのノードの間に物理的な接続があるため、ロボットが開始ノードからノードA又はノードBに移動できるかどうかを確認する。一実施形態では、衝突チェックは、境界試験と見なすことができる。図4(A)に示されるY軸が時間を示し、X軸が空間を示す2Dグラフを考えてみる。一般的に、空間は2次元であるが、視覚化の目的のために、図4では、X軸上の1Dの空間を考えてみる。離散軌道を表すために、図4(A)は、点(t1、t2、t3)を時間及び空間におけるバブル(bubble:泡)として有する非限定的な表現を示している。ここで、ポイントt1は、前に示したように、表2と同様のx座標及びy座標を有する点と見なすことができる。図4(A)に示されるバブルによって表される複数の点は、通過が時間及び空間を介してどの様に行われるかを示す。1つの軌道が占める領域を表すために、図4(B)は複数のボックスを表す。ポイントt1からポイントt2に通過するには、ロボットは空間内及び時間内にある程度の距離を移動する必要がある。次に、通過を表すためにボックス401が描画され、ポイントt1からポイントt2までをカバーするボックスは、空間及び時間のボリュームを示す。このプロセスは、経路の接続された全てのノードに対して繰り返すことができ、次に、複数のボックス(例えば、401、402、403)は、図4(B)に示されるように、1つの軌道が占める可能性のある領域を表す。この情報は、経路コーディネータに格納されているデータに基づいて、システムの他のモジュールと共有される。ここで、ポイントt1からポイントt3までの経路を、以前に計画した経路と見なす。そのようなシナリオでは、図4(B)の表現は、3つのボックス101、402、及び403を介した交差部が不可能である可能性があることを示し得る。また、表現は、交差部がない、又は以前に計画した軌道との衝突がないことを示すと見なす。
【0076】
一実施形態では、図3(F)に示されるグラフ表現が完了した後に、システムがロボットを開始ノードから別のノードに移動させることに焦点を当てるシナリオを考えてみる。これは図4(C)に表される。計画中に、ロボットが開始ノードからノードAに移動したと考え(図3(F))、次に、点線のボックスが図4(C)に示される。この点線のボックス404は、動作環境の空間及び時間でロボットが占めるボリュームであると見なされる。点線のボックス404は、以前に計画した軌道又は別の軌道との交差部を示す。このため、ルートが衝突につながる可能性があるため、結果は役に立たない。しかしながら、ロボットが図4(C)の点線のボックス405によって表される別のノードB(図3(F)を参照)に移動する場合に、以前に計画した経路又は軌道との交差部がないため、システムは衝突を回避している。これで、システムは、特定の時間に開始ノードからノードAに通過するか、又は開始ノードからノードBに通過するか(図3(F))が衝突につながるか否か(図4(C))の決定を行うこともできる。このアプローチに基づいて、システムは、ルートプランを解析し、出発ノードから中間ノード又は目的ノードAへの通過が衝突につながる可能性があるかどうかを判定できる(例えば、図4(C)の点線のボックス404)。このため、システムは、衝突がない可能性がある(ボックス405と同様)図3(F)の別のノードBへの通過を試みることができる。上記の非限定的なシナリオは、衝突のない経路を見つけるために、システムが下した決定を簡単に理解するのに役立つと考えられる。また、いくつかの状況では、図3(F)及び図4(C)に示されるように、システムは、特定の時間に、開始ノードからノードAへの経路が、以前に計画した経路又は他の経路プランと空間及び時間において交差する可能性があることを知っており、このシナリオは、常に一定であるとは限らず、後で変更される可能性がある。後の時点で、新しい計画した経路が以前に計画した経路と交差しない可能性がある。これは図4(D)に矢印410によって表されており、ボックス404(表現の目的で暗い境界で示される)が時間内に新しい位置にスライドしたことを示している。この技術により、システムは、ルートプランを解析し、1台又は複数台の自律型車両に時間内待機するように命令し、以前に計画した経路と交差しない可能性のある経路を計画することができる。また、矢印410によって示されるような新しい位置へのボックス404の移動は、必ずしも遠過ぎるとは限らない。システムは、ボックス404を任意の場所に移動する必要はない。代わりに、システムは、ボックスを異なる方向に、例えば、時間内にY軸に向けて上方向に移動させる必要があることを確認するだけで済み、それによって、以前に計画した軌道又は他の軌道と衝突することはない。システムは位置を正確に計算するため、以前に計画した経路との衝突が予測され、それによって、予想される衝突の範囲が終了した後に、ボックスがそのポイントに位置付けされる。新しいルートプランには、自律型車両が計算した位置に移動し、衝突を回避することが含まれる。この技術により、システムは、計画した経路に衝突がないことを保証する。一実施形態では、システムはまた、位置を正確に計算し、以前に計画した経路又は他の生成したルートプランと衝突しない可能性がある新しいルートプランを生成することができる。システムは、1つ又は複数の衝突について1つ又は複数の生成したルートプランを解析しながら、本明細書で議論する1つ又は複数の技術を適応させる。解析に基づいて、システムは1つ又は複数のルートプランを最適化した。これらの最適化したルートプランは、1台又は複数台の自律型車両に後で配信される。一実施形態では、ルートプランを解析するためにシステムによって実行されるステップは、ルートプランの最適化の一部と見なすことができ、ルートプランの最適化中に実行されるステップは、重要なシナリオのルートプランの解析の一部と見なすことができる。
【0077】
図5(A)-図5(B)のそれぞれは、一実施形態による、ルートプランを最適化するための例示的な非限定的な表現である。図5(A)を、本明細書で議論する衝突シナリオを含む図3(F)の拡張としてみなす。一実施形態では、システムがノードAから終端ノードFへの経路を計画している間に衝突を解析するときに、検索プロセスもグラフ上で実行されているので、システムはグラフを動的に修正する。グラフを動的に修正するために、システムは、衝突ノード(ノードA及びノードF)のうちの1つの前のノード(ノードA)のコピーである複製(duplicate:重複)ノードEを作成する。この場合に、前のノードは、図5(A)に示されるように、ノードAと終端ノードFとの間の衝突を含むシナリオのノードAである。ノードSから新しいノードEへの経路があるため、システムは、ロボットがノードSからノードEに移動することを許可し得る。ロボットがノードSから新しい複製ノードEに移動する場合に、システムは、原則として、ノードAとノードFとの間の元の衝突が終了するまで、ロボットに新しいノードEで待機させる。新しいノードEには、ノードA(衝突ノードA及びFの出発ノード)と同様の新しいエッジがあり、これは、ノードSからノードEへのエッジと、ノードEからノードFへの別のエッジである。新しいエッジが表現のために点線の形式で表示される。ブロックされるノードAの代わりに、ここで新しいノードEを代替として通過できるようになる。新しいノードEは、ノードAとノードFとの間の元の衝突が終了するまで、この新しいノードEを通過できない(Xで示される)という条件がある場合を除いて、グラフで動的に更新される。いくつかのシナリオでは、システムは、衝突のためにノードAからノードFへの通過を許可しない場合があるが、ノードAの代わりに新しいノードEを通過に使用する場合がある。しかしながら、システムは、開始ノードSから新しいノードEへの通過を許可しない場合がある。新しいノードEに早く到達する可能性がある場合でも(例えば、ノードSから新しいノードEへの移動時間が短い場合)、システムは、新しいノードEをどの位早く通過できるかについて、新しいノードEに下限があるので、ノードEからノードFへの経路を依然として許可しない。下限は、ノードAからノードFへの経路で検出された元の衝突が終了するまで、新しいノードEを通過できないという原則に基づき得る。開始ノードS及び終端ノードFは、表現の目的でここに示されているが、これは限定的ではなく、この技術は、グラフ内の任意のノードに適用することができる。
【0078】
グラフ内の接続された全てのノードは、その接続された隣接ノードを訪問又は通過するための可能な動作を与える。図5(A)では、開始ノードSを新しいノードEに接続するエッジは、それがノードAと空間的に重なるので特別であるが、時間の制約がある。新しいノードE及び元のノードAは、空間内の同じ場所に対応する(空間内で重複する)。この空間内での重複は、図4(A)-図4(F)に示される表現に基づいて理解することもできる。図5(B)では、開始ノードSからブロックされたノードAへの移動は、真の意味で不可能ではない。ただし、システムは、以前に計画した軌道との交差部(潜在的な衝突)のために、莫大なコストペナルティを適用する。開始ノードSからブロックされたノードAへの経路は、高コストのペナルティとしてマークされる。しかしながら、開始ノードから他の接続ノードへの他の全ての経路のコストが同じく高い場合に、次に、開始ノードSからノードAへの経路は、システムによって依然として通過の対象と見なされる可能性がある。別のシナリオでは、ロボットが開始ノードSからノードEに通過し、元の衝突が終了するまで待機することを計画している場合であっても、ノードEで待機した後に、ノードEから終端ノードFへの移動によって、別の衝突につながる可能性がある(例えば、動作環境の状況が変化する可能性があるため)。これがノードEと終端ノードFとの間で新しい衝突が検出された場合に、システムはペナルティヒットを課す方がよいと判定する可能性がある。次に、システムは、高コストにもかかわらず、開始ノードSからノードAへ、そして後で終端ノードFへの経路がより良い選択肢であり得ると決定し得る。そのため、システムには、同じ時間に同時に探索される多くの可能な経路オプションがある。所定の時点で、システムが開始点Sから離れる及びさらに離れるにつれて、システムは、可能な限り最良の将来のオプションを継続的に決定し得る。システムは、この技術を繰り返し適用して衝突を回避する。これらは、システムがルートプランの解析中に利用し、後で衝突の回避等、解析の決定に基づいてルートプランを最適化するする基本的な実施態様である。
【0079】
一実施形態では、システムは、最適な経路プランニングのための再帰的プロセスを実施することができる。図5(B)に示されるように、ノードAと終端ノードFとの間の経路がブロックされているシナリオを考えてみる。システムは、以前のノード(この場合は開始ノードS)で後ろに下がる(step back)必要があり得る。開始ノードSから、ノードAは行き止まりになる可能性がある。これは、ノードAと終端ノードFとの間で検出された既存の衝突に対してそのルートが取られると高額なコストが課されるためである。ここで、システムが開始ノードSから新しいノードEに移動することを決定した場合に、ノードAと目的ノードFとの間の元の衝突が終了するまで、新しいノードEで待機時間がある。ここで、開始ノードSと新しいノードEとの間に衝突があるとすると、次に、再帰的なプロセスが発生する。再帰的プロセスは、ノードEと衝突した前のノード(開始ノードS)のコピーである複製(duplicate:重複)ノードGの作成を含む複製プロセスで構成される。この新しいノードGは、開始ノードSと同様のエッジを有し、これは、新しいノードGがノードGからノードEへのエッジ(点線のエッジで表示)、及びノードBへの別のエッジ(点線のエッジ)を有することを意味し、これらのエッジは開始ノードSの隣接ノードである。この技術は、再帰的にバックトレースし(逆に辿り)、システムが始まり(beginning)ノードを満たすことができるかどうかを特定しようとすると、システムは後のノードのルートを計画できる。しかしながら、システムが始まりノードを満たすことができない場合に、次に、システムは、以前のノードの計画に戻らなければならない場合がある。これにより、通過するためのオプションの数が同時に増大する。他のノードを通過するために、システムには、ツリー内の1つ上のレベルに移動して本明細書で議論したように通過を再開する、適切なオプションを見つけるために別の分岐を通過する等、複数のオプションがある。
【0080】
一実施形態では、グラフ検索プロセス中に、以前に計画したルートを変更することができない場合がある。システムで使用できるオプションは、ロボットを速く動かすか、ロボットを遅く動かすか、又は障害物を回避するために迂回することである。例えば、障害物が人間である場合に、それらオプションは既に設定されたルートを有している。場合によっては、グラフ検索で考えられる全てのオプション又はシナリオを探索した後に、システムが1つ又は複数の衝突を回避できない可能性があることを見出す可能性がある。このようなシナリオでは、システムは、以前に計画したルートを強制的に変更して、衝突回避ステップを実行する場合がある。これは、衝突回避の一般的なシナリオを無効にするためにシステムによって行われる一種の高レベルの優先順位検索の決定である。例えば、システムは、1つ又は複数のモジュールにツリーの上位(より高い場所)に移動し、軌道の順序を変更するよう命令する場合がある。本明細書で議論する技術の全ての順列及び組合せを適用した後でも、モジュールが衝突のないルートを見つけられない場合にはいつでも、システムは、マルチ経路ツリー検索モジュールに制御を行うように命令する。次に、マルチ経路ツリー検索モジュールは、現在のノードの1つ上のレベルの通過を再命令し、最初にツリー内のそのノードから軌道を計画して、衝突のないルートを見つけるように要求する。
【0081】
一実施形態では、マルチ経路ツリー検索モジュールは、最初に計画されるルート上の順序を解析し、決定を下す。モジュールは、ルートプランニングをあるノードから別のノードに変更する必要があるかどうかについて、並替えを行う必要があるかどうかを決定することもできる。解析プロセスには、ヒューリスティックに基づくツリー検索の選択プロセスが含まれ、これには、総衝突数、総移動時間、総受動的変換、探索済み分岐及び未探索の分岐、複製ノード、駐車可能ノード等の要約が含まれる。マルチ経路ツリー検索モジュールによって実施される解析プロセスは、ルートプランの順序を変更したり、いくつかのルートの目的地を変更したり、いくつかのロボットの速度を変更したり等する自由度を含むルートプランニングプロセスの最適化につながる。マルチ経路ツリー検索モジュールの出力には、計画するルートの順序、計画した順序の要約統計量、目的地が受動的に変換され得るルートのサブセット、及びロボットの速度が変化したルートのサブセットが含まれ得る。意思決定は階層的であり、全ての単一の決定内で、複数の制約を満たし、ルートの移動時間を最小化しながら、あるノードから別のノードへ、及び隣接ノードから第3のノードへの等の通過が可能かどうかに関するクエリを基本的に含むグラフ通過決定がある。最下位レベルの決定は非常に基本的である。通過が以前に計画した軌道又は他の軌道との衝突につながる可能性があるかどうかに基づいて、ロボットが特定のノードから別のノードに通過できるかどうかを決定する。基本的な決定がなされたら、次の決定は、図3(A)又は図3(B)に表されるツリー検索の1つの円又は1つのノード内の潜在的なオプションの中から最適な選択を行うことである。
【0082】
図6は、一実施形態による、ルートプランを最適化するための例示的な非限定的な表現である。一実施形態では、同じ場所で開始及び終了するロボットを考えてみる。これは図6に点線の弧で示されている。この表現のデータ構造としてグラフを考えてみる。軌道には、複数のノードへの移動と、同じ始まりノードに戻る移動が含まれ得る。一般的に、このシナリオでは、開始ノードに戻るループが形成されるため、グラフ検索が機能しない場合がある。システムが直面する課題は、ループが形成されたために検索をどの様に終了できるかということである。システムは、ロボットの現在の位置がロボットの本来の位置と同じであるかどうかを確認する。その場合に、システムは検索を停止する。開始ノード及び終端ノードが同じである場合に、ロボットが既に目的地に到達しているため、システムは検索を停止する。ループバックは、システムが衝突を同時に回避している通常の経路検索と同じ特性を有する必要があり得る。これは、以下の技術によって実現される。通常、ロボットが目的地に到着すると、時間の終わりまで、又は次のルートプランが命令されるまで、ロボットはそこに留まることが期待される。衝突チェックの場合に、システムは空間-時間衝突ボックスを含む追加のタスクを実行する。空間-時間衝突ボックスはノードによって規定され、ロボットは時間の終わりまでノードに留まる。これは、本明細書で議論するように、空間及び時間の次元で表される異なるタイプのボリュームである。
【0083】
一実施形態では、システムは、2つの方法でルートプランを解析する:ロボットが終端ノードで終わると、システムは、ループバック衝突チェックである追加のクエリを行う-ロボットは、時間の終了までそこに留まることができるか?通過し得る他のロボットがない可能性があるため、システムは肯定的な応答を返し得る。その後、プロセスが終了し、ロボットはそこで待機できる。他のシナリオでは、システムは、ロボットがしばらくの間そこにいる可能性があるが、別のロボットが通過し得る等の理由により、時間の終わりまでではないという否定的な応答を返す。このような否定的な応答シナリオでは、ループバック軌道(点線の円弧で表される)がロボットの衝突になる。この問題を解決する1つのメカニズムは、図6に示されるように、システムがロボットに他の場所を通過して後で戻ってくるように命令することである。これは、通常の衝突回避と同様に、基本的に同じメカニズムで機能する。システムは、衝突解決ノードEを動的に作成し、終端ノードの全てのエッジをコピーする。これで、新しいノードEには、終端ノードと同様のエッジがある。本明細書で議論する衝突回避技術と同様に、システムは1つのノード(ノードC等)に引き返し、ノードCから新しいノードEに通過できるかどうかを解析する。新しいノードEは、元の終端ノードと同様に終端ノードとしても機能する。新しい終端ノードEには、動的に生成した全ての衝突解決ノードと同様に、時間の制約がある。システムは、元の衝突が終了するまで、新しいノードEを通過できない場合がある。時間の制約により、ノードCから新しいノードEへの経路がない場合がある。移動が不可能である場合に、システムは、衝突を回避できるまで再帰的にバックトレースする(逆に辿る)。ノードCからノードEに移動できる場合に、同じプロセスが繰り返される。システムは、ループバックモジュールを呼び出して、ノードEが終端ノードの以前の衝突を回避することに成功したかどうかを確認し得る。システムは、ノードEのループバックが異なる時間にあるため、終端ノードの衝突を回避するようにノードEを動的に作成する。ロボットがノードEに到達できる場合、つまり時間制約条件が克服された場合に、終端ノードでの衝突は終了するに違いない。あるいはまた、別の衝突が発生する可能性があるため(図5(A)及び図5(B)に関連する以前の説明と同様に)、この技術では衝突を直ぐに解決できない場合があり、その場合に、複製プロセスは再帰的に継続する。再帰的プロセスは、ロボットが通過を開始した元のノードに到達することにより、システムがロボットの意思決定を解決できるまで継続する。
【0084】
一実施形態では、複数のロボットが同じ目的地に移動しなければならない場合に、複数のロボットが同じ目的地を求めて競合しているため、上記の技術は機能しない可能性がある。このようなシナリオでは、複数のロボットの空間が長時間交差することを伴う2つ以上の衝突境界がもたらされる可能性がある。複数の衝突境界が長時間もたらされるようなシナリオでは、システムは、衝突回避ステップを無視し、解決のために前提条件生成モジュールをプッシュする。ルート軌道は前提条件生成モジュールに渡され、そこでそのような衝突の発生が停止される。このモジュールは、ルート軌道を解析し、デッドロック(deadlock)シナリオを作成する。デッドロックは最終目的地となり、ロボットは、衝突に向けて前進することはできないが、待機キュー全体に追加される可能性がある。システムは、衝突を回避するために複数のロボットのデッドロックキューを計画することにより、先制措置を講じる。
【0085】
一実施形態では、システムは、衝突解決メカニズムを異なる方法で処理することができる。上で議論したように、衝突解決メカニズムは、システムが後の時点で処理する動作として説明される。例えば、システムは、新しいノードを作成し、問題を解決するために後で異なるタイムスタンプで戻るように要求する場合がある。同じ場所から開始し、基本的に避けられない衝突がある2台のロボットについて考えてみる。システムがこの条件を無視すると、後続の条件も衝突につながる。そのため、システムは、最初にそれらの間隔を空けるように決定する。これを解決するために、システムは、例えば負のタイムスタンプで時間を縮小し、有利なスタート(head-start)を切ろうとする。有利なスタートを得た場合に、システムは、ロボットがブロッキングロボットから素早く離れることを保証できる。これは、システムが複数のロボットを配置した状態で開始点での衝突の問題を解決するのに役立つ。これは、ロボットが素早く前進して衝突を回避できる、前述の速度ブースト機構と考え方が似ている。しかしながら、速度ブースト機構では、開始位置に技術を適用した場合に、有利なスタートは不可能である。
【0086】
一実施形態では、衝突チェックの場合に、システムへの入力は軌道であり、システムは、軌道が他の計画した軌道と衝突するかどうかを確認する。暗黙の前提は、軌道の開始前に、ロボットはどこにいるのか?、例えば、ロボットが開始点にあるか、又はナビゲーションの完了後に終端ノードで待機していることである。この情報は、ロボットの位置が必要であり、他のロボットがそのロボットを通過したい場合があるため、衝突チェックに関連する。場合によっては、システムが、ルート全体ではなく、ルートの一部(開始位置又は終了位置、又は他の部分)に対して衝突チェックルーチンを実行するように解析及び決定する。
【0087】
一実施形態では、システムは、解決不可能と見なされる入力に対して最適な解を生成する。例えば、同じ位置から開始する、又は同じ位置で終了する予定の複数のロボットは、開始位置と終了位置との両方自体が衝突につながるため、解決不可能と見なされる。システムは、入力を誤り又は無効であると見なすのではなく、衝突を最小限に抑えることを目的としている。システムには、衝突を確認する絶対衝突チェックメカニズムがあり、回避不可能である場合に、システムは、初期段階で無視するだけで最適化される。前述したように、後で、システムには、ルートで衝突が発生したときに循環依存関係を生成する前提条件生成モジュールがある。この循環依存関係は、実際の衝突ではなく、本明細書で議論するようにデッドロックにつながる可能性がある。システムは、複数のロボットが互いに通り抜けなければならず、衝突につながることを認識している。ただし、前提条件生成モジュールの循環依存関係の生成により、複数のロボットが、互いに接近し、互いに衝突するのではなく、デッドロックキューでスタックする。次に、システムが起動して原因の特定を試み、ロボットのうちの1つを別の場所に移動したり、他のロボットを通過させたりする等、デッドロックシナリオの解決を試みる。システムによるこの種の動作は、問題のあるロボット又はブロックしているロボットのうちの1つを別の場所に移動する受動的変換モジュールによって処理される。これらは、システムがその解析に基づいて使用する様々な種類のメカニズムである。それは、自律型車両に配信されるルートプランを最適化するのに役立つ。
【0088】
一実施形態では、システムは、コストがルートプランに有意に影響を及ぼさないように、迂回、ループバック等が行われることを保証するようにカスタマイズされ得る。バッテリーの充電量が少ない等、ロボットのナビゲーションで予想され得る潜在的な問題がある場合に、目的地を充電ポイントとして規定できる。システムは、ポイントを目的地ポイント又は積降しポイントとして規定する代わりに、充電ポイント等の中間ポイントを導入することもできる。次に、ロボットは、経由ポイントで充電し、後で目的地ポイント又は積降しポイントで物体を積み降ろしする。計画した軌道は、本明細書で説明する様々なシナリオに対応するために、システム解析に従って更新され得る。
【0089】
一実施形態では、例えば、目的地として物理空間内にただ1つのノードを有する等、終了について異なる基準があり得る。受動的ルートの場合に、ロボットがノードに到達できる限り、駐車可能として設定されたノードを終了するように設定できる。別の例は、終了ゾーンと見なすことができる所与の領域であり得る。いずれかのロボットがその領域に到着した場合に、それらロボットは終了と見なされ得る。そのため、システムは任意のノードに異なる終了条件を適用する場合がある。
【0090】
一実施形態では、システムは、最適なルートプランを提供するモードの使用を可能にする。ルートが固定されていて変更できないモードは固定され得るが、他のモードは優先順位に基づき得る。例えば、外部システムによって制御され得る特定のルートを辿るように予めプログラムされ得る外部トロリー(trolley)カート等、システムがトロリーカートの動きを制御することができない、予め規定されており制御されていないルートがあるシナリオを考えてみる。システムのトロリーカートは、動的な障害物と見なされる場合があり、ロボットが予めプログラムしたルートでトロリーカートを妨害しないようにするために、本明細書で説明する特定のステップに従う。例えば、システムによってロボットがトロリーカートに干渉しないようにし、トロリーカートがそのルートから立ち去るまで待機し、又はトロリーカートが立ち去らない場合に、ロボットが、トロリーカートから離れて、計画したルートを続行する。計画段階で、予めプログラムしたルートがシステムに入力されると、システムは、本明細書で議論するように、既知の軌道を処理できるため、外部トロリーカートの周囲(への移動)を計画できる。そのため、予めプログラムした軌道を変更又は妨害することができないため、システムは、計画した軌道が予めプログラムした軌道を回避し得ると判定する。
【0091】
一実施形態では、検索統計は、意思決定システムに対称性を提供する対数であるように設計することができる。ノードがツリー、例えば優先順位ツリーに追加される度に、システムは次に計画し得るルートを決定することができる。システムは、統計データを照会し、それらを比較することができる。このプロセスのヒューリスティック関数は、どのノードが調べられているかに関係なく、将来の見通し(perspective)が対称になるように設計される。これは、システムをスケーラブルにし、ツリーがツリーの深さの増大に対して不変であることを可能にする最適化技術である。
【0092】
一実施形態では、システムは、様々な入力ソースをシステムに提供することを可能にするカスタム機能を提供する。システムで既に利用可能なデータがいくつかある。例えば、エッジの長さはグラフから導出され、経路の幾何学的形状もグラフから導出される。エッジには、装置が高速で移動しないように速度制限があり得る。グラフの全ての詳細は、グラフIDに関連付けられる。カスタム機能には、コストを計算するためのパラメータとしてグラフIDが含まれ得る。システムは、グラフIDを使用してデータベースにクエリを実行し、全てのプロパティをフェッチしてコストを導き出すことができる。
【0093】
一実施形態では、システムは、ロボットの能力、行動、又は向きに基づいてルートプランを最適化する。例えば倉庫等の動作環境では、いくつかの通路が小さい場合又は狭い場合があり、ロボットの構造が長いため、ロボットが180度以上回転できない場合がある。そのため、システムは、ロボットの位置だけでなく、ロボットの向き等、ロボットのプロパティを認識している必要があり得る。この追加情報により、ツリー検索プロセスが複雑になる可能性がある。一般的に、グラフ内のノードはシステムに対する位置を示す。ただし、1つのノードに関する情報だけでは不十分である。ロボットは、1つのノードである位置、ある向きに配置できる。後で、ロボットは、向きが異なった状態で、同じ位置に到達する可能性がある。そのため、これら2つの異なる状態に到達するには、2つの異なるタイムラインの構築が必要である。システムは、ルートを変更するのではなく、ロボットのニーズに応じて向きを変更することで(つまり、フォークリフト等)、実行時にこの複雑なシナリオを処理できる。例えば、フォークリフトにはパレットを運ぶ等の設定があり、フォークリフトは前を向いている必要があり、物体を運んでいない場合には後ろを向いている必要がある。これは、フォークリフトが損傷を引き起こさないようにするための安全対策である。ルートプランを最適化する間に、システムは、ルートプランを更新して、フォークリフトが倉庫内の最小限の場所で、理想的にはフォークリフトがとにかく曲がらなければならないコーナーでのみ曲がる必要があるようにし得る。さらに、ロボットが通路に移動し、通路のノードで待機し、後で通路から出た場合に、システムによってフォークリフトの向きが最小限になることもあり得る。このシステムは、ロボットのナビゲーション中の向きをさらに最適化する。一実施形態では、システムは、いくつかのシナリオを計画するときにルートを変更することもできる。例えば、ロボットは、反対向きでノードに到達する必要があり得る。いくつかのシナリオでは、ロボットが経路内で任意の種類の回転を行えない可能性があり、残された唯一のオプションは、巨大な空間がある場所でロボットが大きく迂回することである。後で、ロボットは、向きを変えて次に目的地に戻ることがある。システムは、ロボットのプロパティを解析し、計画段階中にルートを更新して、ロボットを反対向きで目的地に到着させることができる。
【0094】
一実施形態では、システムは、本明細書で議論するように、ルートプランニングを最適化する。システムが経路検索プロセス中にグラフを検索している場合に、グラフも修正され、システムが後で引き返す又はバックトレースする(逆に辿る)ための証跡が残される。このプロセスは、後で再収集するために情報が格納されるスクラッチパッドに似ているが、タスクが完了すると、スクラッチパッド上のデータが消去される。同様に、検索中に、情報は各ノードに格納される。ただし、検索が完了すると、情報は削除される。一般的に、これは次の検索が開始される前に全てのデータをクリアする集中的なプロセスである-計算の規模及びキャッシュされるデータの量は、グラフが拡大するにつれて指数関数的に増大する。システムは、全てのデータを消去する代わりに、システムがタイムスタンプに基づいてデータを残す有効期限機能を提供する。キャッシュされたデータにはタイムスタンプがあり、次に検索が開始されると、システムはデータをチェックし、データが古い場合に、システムはそのデータを使用しない場合がある。そのため、有効期限機能により、システムは空間及び計算を最適化して、新しい検索が開始される度にタイムスタンプに基づいて選択したデータのみがクリアされるようにすることができる。
【0095】
一実施形態では、本明細書で議論するように、システムは、ルートプランニングを最適化する。ツリー経路検索中に、システムは一度に1台のロボットを検索する。各ロボットには指定した半径があり、この情報から、ロボットが移動するにはいくつかのエッジが遥かに小さい場合があるため、システムはロボットが通過できるエッジを決定できる。計画段階では、最適化の一環として、システムは、関連する制限されたエッジのみを考慮し、ロボットの移動に適さない残りのエッジをスキップ又は拒否できる。この技術により、システムの計算効率が向上し、限られたパラメータで検索を実行できる。エッジ及びルートプランを許可する又は拒否するかの決定は、より高レベルの自律型車両の状態に基づく場合がある。状態には、ロボットのサイズ、向き、機能、行動等が含まれ得る。
【0096】
一実施形態では、システムは、到着半径特徴を使用して、ルートプランを最適化することができる。システムは、最小限の移動時間で受動的ルート機能を呼び出すか、ロボットをその場所に留まらせることができる。到着半径機能は、中間機能と見なすことができる。目的地には、規定された半径又は目的地のセットがあり、ロボットは、ルートプランニングの一環として、目的地の半径内又は目的地のセットのいずれかに到達することができる。例えば、ある目的地の代わりに、システムは、複数の目的地、例えば5つの目的地を許可する場合がある。ここで、システムには、1つの目的地だけに焦点を合わせるのではなく、いずれかの目的地への経路を見つける柔軟なオプションがある。
【0097】
図7は、一実施形態による、ルートプランを最適化するためのプロセスステップを示す例示的なフロー図である。システムは、倉庫等の動作環境に関連する1つ又は複数の入力に基づいて、1つ又は複数のノードを分析(resolve)する。ノードは、動作環境における空間の領域と見なすことができる(701)。1つ又は複数の分析ノードに基づくルートプランの生成につながるルートが計画される(702)。計画に基づいて、システムは、衝突、渋滞、安全上の問題の防止、ロボットへの損傷等、1つ又は複数の重要なシナリオに対して生成したルートプランを解析する(703)。システムの解析技術は、本明細書で説明する様々なメカニズムに基づいている。システムは、生成したルートプランの解析に基づいてルートプランを最適化する(704)。一実施形態では、ルートプランの解析のために議論又は実現された技術のいくつかは、生成したルートプランの最適化にも利用でき、生成したルートプランを最適化するために実現された1つ又は複数の技術は、重要なシナリオを処理する解析のためにシステムによって利用され得る。次に、1つ又は複数の最適化したルートプランが、1つ又は複数の自律型車両に配信される(705)。自律型車両には、それ自体の1つ又は複数のプロセッサと、プロセッサが実行するための命令が格納される1つ又は複数のメモリがある。自律型車両には、ルート同期モジュール及びローカルナビゲーションモジュールが含まれており、動作環境でのナビゲーションに最適化したルートプランを利用できる。自律型車両内のモジュールを利用して、ルートプラン、ルートの進行状況、ルート情報の同期、及び動作環境内のナビゲーションをメッセージ化することができる(706)。
【0098】
図8図10のそれぞれは、一実施形態による、ルートプランを最適化するためのプロセスステップを示す例示的なフロー図である。一実施形態では、図8図10は、図7の拡張として表すことができる。ただし、図8図10に含まれるプロセスステップは、別個の実施形態又は実施形態の組合せと見なされ得る。動作環境に関連する1つ又は複数の入力に基づいて分析された1つ又は複数のノードは、少なくとも1つ又は複数の距離及び速度に基づいて、1つ又は複数の自律型車両を1つ又は複数のノードに関連付けることを含み得る。1つ又は複数の入力は、1つ又は複数のマップ、グラフ、ツリー、自律型車両入力、ルート要求、及びユーザ入力を含み得る(801)。1つ又は複数の分析ノードに基づいて1つ又は複数のルートプランを生成するプロセスステップは、1つ又は複数の前の自律型車両の1つ又は複数のルートプランを解析することを含む(802)。システムは、1つ又は複数の前の自律型車両のルートプランの解析を回避する(803)。
【0099】
システムは、さらに、アップサンプリングプロセスを使用して自律型車両同士の間の競合を減らすことに基づいて、1つ又は複数の自律型車両を1つ又は複数のノードに関連付けることにより、動作環境に関連する1つ又は複数の入力に基づいて、1つ又は複数のノードを分析する(914)。アップサンプリングプロセスには、動作環境内のノードの数を動的に増やすことも含まれ得る。
【0100】
システムは、訪問テーブル内の衝突データを照会することによって、衝突について1つ又は複数の生成したルートプランを解析及び最適化することができる(804)。次に、システムは、照会した衝突データについて、1つ又は複数の以前のルートプランを解析することができる(805)。以前のルートプランを解析した後に、システムは、解析した場合に訪問テーブルを更新し、以前のルートプランは衝突を引き起こさない(806)。
【0101】
システムは、1つ又は複数のルートプランに関連する受信パラメータを含む解析に基づいて、1つ又は複数のルートプランを最適化することができる。パラメータには、少なくとも1つ又は複数の優先順位の値、優先バイアス、ユーザ入力、及び検索ヒューリスティックが含まれる(807)。ルートプランの順序は、受信パラメータに基づいて更新される。更新された順序によって衝突が引き起こされない場合に、システムは、変更を反映するために訪問テーブルを更新し得る(808)。
【0102】
システムは、第1の自律型装置の少なくとも1つ又は複数の速度、行動、向き、又は能力に基づいて第1の自律型車両の優先順位の値を特定することによって、衝突について1つ又は複数の生成したルートプランをさらに解析及び最適化することができる(809)。次に、第1の自律型車両の特定した優先順位に基づいて、生成したルートプランからルートプランに優先順位が付けられ、優先順位付けしたルートプランが提供される(810)。第1の自律型車両と第2の自律型車両との間の衝突は、優先順位付けしたルートプランに基づいて回避され得る(811)。
【0103】
システムは、衝突を回避するために第1の自律型車両の速度を計算することを含み得る優先順位付けしたルートプランに基づいて、第1の自律型車両と第2の自律型車両との間の衝突を回避し得る(812)。第1の自律型装置は、計算した速度に従って移動して、第2の自律型装置の先に進む(race ahead)ことができ(813)、第2の自律型車両は、より遅く移動する、現在の場所で待機する、又は別の場所に迂回することの少なくとも1つによって、第1の自律型車両が先に進むことを可能にし得る(814)。
【0104】
システムは、1つ又は複数の以前のルートプランから衝突の数を推定することによって、1つ又は複数の衝突について1つ又は複数の生成したルートプランをさらに解析及び最適化することができる(815)。推定に基づいて、システムは、1つ又は複数の最良の以前のルートプランを特定することができる(816)。次に、システムは、1つ又は複数の特定した最良の以前のルートプランに基づいて、1つ又は複数の生成したルートプランを最適化する(817)。
【0105】
システムは、移動時間、経路変換、重複しないノード、優先順位の値、優先バイアス、速度、及び駐車可能ノード等の1つ又は複数を含む推定に基づいて、1つ又は複数の最良の以前のルートプランを特定する。システムは、自律型車両のサイズ、コーナーを通過するのにかかる時間、高さ制限、回転、又は経路からの方向転換等のうちの1つ又は複数に基づいて、コスト関数を1つ又は複数の自律型車両に適用する解析に基づいてルートプランを最適化する(901)。システムは、1つ又は複数の生成したルートプランを最適化し、これには、適用したコスト関数に基づいて決定を行うことが含まれる(902)。
【0106】
システムは、少なくとも1つの幾何学的形状(例えば、ボックス、長方形等)を使用して、1つ又は複数の生成したルートプランによってカバーされる1つ又は複数の領域を表すことを含む解析に基づいて、1つ又は複数の生成したルートプランを最適化する(903)。システムは、1つ又は複数の表した領域同士の間に交差部があるかどうかを判定する。1つ又は複数の表した領域同士の間の交差部は、1つ又は複数の生成したルートプラン同士の間の1つ又は複数の衝突の存在を示す(904)。最良のルートプランは、1つ又は複数の表した領域同士の間の交差部の判定に基づいて、1つ又は複数の生成したルートプランから特定され得る(905)。
【0107】
システムは、異なる時点で衝突のない1つ又は複数の生成したルートプランを決定することを含み得る解析に基づいて、1つ又は複数のルートプランを最適化する(906)。1つ又は複数の決定した衝突のないルートプランに基づいて、1つ又は複数の生成したルートプランから、1つ又は複数の最良のルートプランが特定される(907)。
【0108】
システムは、1つ又は複数の生成したルートプランの表した領域に基づいて、動作環境内の衝突のない位置を計算することを含み得る、1つ又は複数の衝突について1つ又は複数の生成したルートプランを解析及び最適化する(908)。計算され得る衝突のない位置は、自律型車両の現在位置に基づいて衝突を予測することを含む(909)。計算に基づいて新しいルートプランを生成することができ、生成した新しいルートプランは、1つ又は複数の生成したルートプランと衝突しない(910)。
【0109】
システムは、1つ又は複数の衝突について1つ又は複数の生成したルートプランをさらに解析し、これには、1つ又は複数の生成したルートプランにおける衝突ノード同士の間の衝突を特定することが含まれる(911)。システムは新しいノードをさらに動的に生成し、衝突ノード同士の間の特定した衝突が終了すると、その新しいノードが通過されるようになる(912)。動的に生成した新しいノードを含むように、1つ又は複数の生成したルートプランを更新することができる(913)。
【0110】
システムは、衝突ノード同士の間の特定した衝突が終了するまで、新しいノードで待機することを含み得る新しいノードを動的に生成することができる(1001)。次に、システムは、衝突ノードのうちの1つに接続される以前のノードに引き返す(1002)。システムはまた、引き返したノードのエッジを含む新しいノードをコピーする(1003)。
【0111】
システムは、1つ又は複数の衝突について1つ又は複数の計画したルート(ルートプラン)を解析し、これには、第1のノードと第2のノードとの間の経路が衝突につながる可能性があるかどうかを判定することが含まれる(1004)。一実施形態では、第1のノードは前のノードに接続される。判定に基づいて、システムは複製ノードを動的に作成し、複製ノードのエッジは第1のノードのエッジに類似している(1005)。次に、システムは、前のノードから複製ノードへの第1の経路と、複製ノードから終端ノードへの第2の経路を通過し(1006)、第1のノードと第2のノードとの間の衝突が終了する場合に複製ノードから終端ノードへの通過を可能にする(1007)ことを含むルートプランを生成する。
【0112】
システムは、1つ又は複数の衝突について1つ又は複数のルートプランをさらに解析し、これには、ルートプランが1つ又は複数の生成したルートプランと衝突する可能性があることを決定することが含まれる(1008)。次に、自律型車両のうちの1台が、特定のノードで一定期間待機するように命令される(1009)。新しい位置は、自律型車両のうちの1台が一定時間後に衝突を回避するために移動できる場所として計算される(1010)。計算に基づいて、システムは、自律型車両のうちの1台を新しい位置に移動させるためのルートプランを生成する(1011)。
【0113】
システムは、自律型車両の状態を特定することを含めることによって、1つ又は複数の衝突についての1つ又は複数のルートプランを解析することができ、状態には、自律型車両のサイズ、向き、能力、行動等の1つ又は複数が含まれる(1012)。自律型車両の特定した状態を満たす1つ又は複数の生成したルートプランを特定することができる(1013)。システムは、自律型車両の特定した状態を満たさない1つ又は複数の生成したルートプランを拒否することができる(1014)。
【0114】
システムは、経路をナビゲートすることを回避するために1つ又は複数の自律型車両を送ることを含めることによって、1つ又は複数の衝突についての1つ又は複数のルートプランを解析する(1015)。フィードバックは、1台又は複数台の自律型車両で実行されているモジュールから受信される(1016)。受信したフィードバックを解析した後に、その解析に基づいて、システムは、経路上でのナビゲーションを許可するように決定を変更することができる(1017)。
【0115】
上記の実施形態は、本発明の原理の適用を構成し得る多数の様々な他の実施形態の単なる例示であることを理解すべきである。そのような他の実施形態は、本発明の精神又は範囲から逸脱することなく当業者によって容易に創作することができ、それら他の実施形態が本発明の範囲内であると見なされると我々は意図している。
【0116】
前述の図は、いくつかの実施形態によるプロセスを説明するための論理アーキテクチャを表し、実際の実施態様は、他の方法で配置された1つ又は複数の構成要素を含み得る。他のトポロジは、他の実施形態と組み合わせて使用することができる。さらに、本明細書で説明する各構成要素又は装置は、任意の数の他のパブリック及び/又はプライベートネットワークを介して通信する任意の数の装置によって実装され得る。そのようなコンピューティング装置のうちの2台以上は、互いに遠隔に配置され得、任意の既知の方法のネットワーク及び/又は専用接続を介して互いに通信し得る。各構成要素又は装置は、本明細書に記載の機能及び任意の他の機能を提供するのに適した任意の数のハードウェア及び/又はソフトウェア要素を含み得る。例えば、いくつかの実施形態によるシステムの実施態様で使用される任意のコンピューティング装置は、コンピューティング装置が本明細書で説明するように動作するようなプログラムコードを実行するためのプロセッサを含み得る。
【0117】
本願で使用される場合に、「構成要素」、「プラットフォーム」、「モジュール」、及び「システム」という用語は、ハードウェア、ソフトウェアと有形ハードウェアの組合せ、ソフトウェア、又は実行中のソフトウェアのいずれかであるコンピュータ関連エンティティを指すことを意図している。例えば、構成要素は、プロセッサ、チップメモリ、大容量記憶装置(例えば、光ドライブ、ソリッドステートドライブ、及び/又は磁気記憶媒体ドライブ)、及びコンピュータ、プロセッサ上で実行されるプロセス、オブジェクト、実行可能ファイル、データ構造(揮発性又は不揮発性記憶媒体に格納される)、モジュール、実行スレッド、及び/又はプログラム等のソフトウェア構成要素等の有形の構成要素であり得るが、これらに限定されない。実例として、サーバ上で実行されるアプリケーションとサーバとの両方を構成要素にすることができる。1つ又は複数の構成要素をプロセス及び/又は実行スレッド内に配置でき、構成要素を、1つのコンピュータにローカライズし、及び/又は2台以上のコンピュータに分散させることができる。「例示的」という言葉は、本明細書では、例、実例、又は例示として役立つことを意味するために使用され得る。本明細書で「例示的」として説明する任意の態様又は設計は、必ずしも他の態様又は設計よりも好ましい又は有利であると解釈すべきではない。
【0118】
本明細書で使用される用語は、特定の態様を説明することのみを目的としており、開示を限定することを意図するものではない。本明細書で使用される場合に、単数形「1つの(a, an)」及び「その(the)」は、そのような除外が特に明記されていない限り、複数形も含むことを意図している。本明細書で使用される場合に、「備える、有する、含む(comprises, comprising)」という用語は、述べた特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ又は複数の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらのグループの存在又はその追加を排除するものではないことがさらに理解される。さらに、特に明記されていない限り、特定の特性を有する要素又は特定の特性を有する複数の要素を「備える、有する、含む(comprising)」、「含む、有する(including)」、又は「有する、含む(having)」(又は同様の用語)実施形態は、特定のプロパティを有していない追加のそのような要素を含み得る。さらに、本明細書に記載の本発明の主題の「実施形態」への言及は、列挙した特徴も組み込む追加の実施形態の存在を除外するものとして解釈されることを意図するものではない。
【0119】
以下の特許請求の範囲における任意の手段又はステッププラス機能要素(step plus function elements)の対応する構造、材料、行動、及び同等物は、具体的に請求される他の請求された要素と組み合わせて機能を実行するための任意の開示された構造、材料、又は行動を含むことを意図する。本開示の説明は、例示及び説明の目的で提示したが、網羅的であることを意図するものではなく、又は開示した形式での開示に限定することを意図するものではない。多くの修正及び変形は、本開示の範囲及び精神から逸脱することなく、当業者には明らかであろう。本開示の諸態様は、本開示及び実際の適用の原理を最もよく説明し、当業者が企図する特定の使用に適した様々な修正を加えた開示を理解できるようにするために選択され、説明した。
【0120】
本明細書に記載の様々な実施形態の様々な技術的利点は、自律型車両のルートプランを最適化することを含み得る。本明細書に記載の様々な実施形態の様々な技術的利点は、環境をナビゲートする自律型車両の規模に関して制限なしに、複雑な動作環境のためのルートプランを生成する能力を含み得る。本明細書に記載の様々な実施形態は、様々な技術及びデータ構造を使用して、動作環境で生じる問題の例として、衝突を回避するか、又は渋滞を最小化するためのステップを実施する。様々な技術的利点には、ルートプランを最適化しながら、解決不可能又は不可能な入力を処理するシステムの能力、重要な交差部でのデッドロックシナリオの防止、動作環境での安全上の問題を回避するための予防措置の計画等が含まれる。本明細書に記載の複数の実施形態の様々な技術的利点は、空間及び計算の最適化、重大なシナリオを回避するための先制措置の実施等も含み得る。様々な技術的利点は、マルチロボットルートプランナを利用して、様々なタイプ、向き、能力、サイズ、又はメーカーの自律型車両の車列を処理して、複雑な動作環境で衝突のない最適化したルートプランを提供するロバストで柔軟なクラウドプラットフォームの可能化を含み得る。他の技術的な利点には、ルートプランを最適化しながら、複数のデータ構造での複雑な現実のシナリオの表現、既存のストレージの再利用、ロバストな通過技術を介して最近収集した知見を効率的に利用することが含まれる。
【0121】
本明細書で使用される場合に、「できる、可能性がある、場合がある、してもよい、ことがある(may, maybe)」という用語は、一連の状況(指定したプロパティ、特性、又は機能の所有、及び/又は修飾された動詞に関連する能力、性能、又は可能性の1つ又は複数を表現することによって、別の動詞を修飾する)内での発生の可能性を示す。従って、「できる、可能性がある、場合がある、ことがある(may, maybe)」の使用は、状況によっては修正した用語が適当、可能、又は適切でない場合があることを考慮しながら、修正した用語が、示した容量、機能、又は使用法に明らかに適当、可能、又は適切であることを示す。例えば、ある状況ではイベント又は容量が予想されるが、他の状況ではイベント又は容量は発生しない。この区別は、「できる、可能性がある、場合がある、してもよい、ことがある(may, maybe)」という用語によって捉えられる。
【0122】
本明細書で使用される場合に、「システム」、「モジュール」、「プラットフォーム」、又は「構成要素」等の用語は、1つ又は複数の機能を実行するように動作するハードウェア及び/又はソフトウェアを含み得る。例えば、システム、モジュール、又はコントローラは、コンピュータメモリ等の有形で非一時的なコンピュータ可読記憶媒体に記憶された命令に基づいて動作を実行する1つ又は複数のコンピュータプロセッサ又は他の論理ベースの装置を含み得る。あるいはまた、システム、モジュール、又はコントローラは、装置のハードワイヤード論理に基づいて動作を実行するハードワイヤード装置を含み得る。図に示されるシステム、モジュール、構成要素、プラットフォーム、及びコントローラは、ソフトウェア又はハードワイヤード命令に基づいて動作するハードウェア、動作を実行するようにハードウェアに命令するソフトウェア、又はそれらの組合せを表し得る。
【0123】
本明細書に記載の主題は、その適用において、本明細書の説明に記載されている、又は本明細書の図面に示されている要素の構成及び配置の詳細に限定されないことを理解されたい。本明細書に記載の主題は、1つ又は複数の実施形態と組み合わせ又は相互リンクして、様々な技術又は構成要素を利用し、本明細書に明示的に記載されていない可能性のある複数のシナリオ又は使用例を形成することができる。本明細書に記載の主題は、他の実施形態が可能であり、様々な方法で実施又は実行することができる。
【0124】
上記の説明は、例示を意図するものであり、制限を意図するものではないことを理解されたい。例えば、上記の実施形態(及び/又はその態様)は、互いに組み合わせて使用することができる。さらに、特定の状況又は材料を、その範囲から逸脱することなく、現在説明している主題の教示に適合させるために、多くの修正を行うことができる。従って、本発明の主題の範囲は、添付の特許請求の範囲を参照して、そのような請求項が権利を与えられる同等物の全範囲とともに決定すべきである。添付の特許請求の範囲において、「含む、有する(including)」及び「その中で(in which)」という用語は、それぞれの「備える、有する、含む(comprising)」及び「ここで(wherein)」という用語の平易な英語の同等物として使用される。さらに、以下の特許請求の範囲において、「第1」、「第2」、及び「第3」等の用語は、単にラベルとして使用され、それらの目的語に数値要件を課すことを意図しない。さらに、他に特に明記しない限り、「第1」、「第2」、「A」、「B」、「C」、又は「D」等の用語の使用は、順序又は重要性を示すのではなく、むしろ「第1」、「第2」、又は「A」、「B」、「C」、「D」等の用語は、ある要素を別の要素から区別するために使用され得る。さらに、以下の請求項の限定は、ミーンズプラスファンクション(means-plus-function)形式で書かれておらず、米国特許法第112条第6項に基づいて解釈されることを意図していない。ただし、そのような請求項の限定が「のための手段(means for)」というフレーズを明示的に使用し、その後に更なる構造のない機能の陳述が続く場合を除く。
【0125】
この書面による説明は、例を使用して、本発明の主題のいくつかの実施形態を開示し、また、任意の装置又はシステムの作成及び使用、並びに任意の組み込まれた方法の実行を含む、本発明の主題の実施形態を当業者が実施できるようにする。本発明の主題の特許性を有する範囲は、特許請求の範囲によって規定され、当業者に想起される他の例を含み得る。そのような他の例は、それらが請求項の文字通りの言語と異ならない構造要素を有する場合、又はそれらが請求項の文字通りの言語と実質的に異なる同等の構造要素を含む場合に、特許請求の範囲内にあることを意図している。
【0126】
本明細書に記載の実施形態は、単に例示を目的とするものである。当業者は、上記のものに修正及び変更を加えて実施することができる他の実施形態を認識するであろう。
図1
図2
図3(A)】
図3(B)】
図3(C)】
図3(D)】
図3(E)】
図3(F)】
図4(A)】
図4(B)】
図4(C)】
図4(D)】
図5(A)】
図5(B)】
図6
図7
図8
図9
図10