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

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

▶ リアルタイム ロボティクス, インコーポレーテッドの特許一覧

特許7479064動的障害物を有する環境における動作計画を容易にする装置、方法及び物品
<>
  • 特許-動的障害物を有する環境における動作計画を容易にする装置、方法及び物品 図1
  • 特許-動的障害物を有する環境における動作計画を容易にする装置、方法及び物品 図2
  • 特許-動的障害物を有する環境における動作計画を容易にする装置、方法及び物品 図3
  • 特許-動的障害物を有する環境における動作計画を容易にする装置、方法及び物品 図4
  • 特許-動的障害物を有する環境における動作計画を容易にする装置、方法及び物品 図5
  • 特許-動的障害物を有する環境における動作計画を容易にする装置、方法及び物品 図6
  • 特許-動的障害物を有する環境における動作計画を容易にする装置、方法及び物品 図7
  • 特許-動的障害物を有する環境における動作計画を容易にする装置、方法及び物品 図8
  • 特許-動的障害物を有する環境における動作計画を容易にする装置、方法及び物品 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-25
(45)【発行日】2024-05-08
(54)【発明の名称】動的障害物を有する環境における動作計画を容易にする装置、方法及び物品
(51)【国際特許分類】
   B60W 40/02 20060101AFI20240426BHJP
   B60W 60/00 20200101ALI20240426BHJP
   G08G 1/16 20060101ALI20240426BHJP
   G08G 1/00 20060101ALI20240426BHJP
   G05D 1/43 20240101ALI20240426BHJP
【FI】
B60W40/02
B60W60/00
G08G1/16 C
G08G1/00 X
G05D1/43
【請求項の数】 12
(21)【出願番号】P 2021571340
(86)(22)【出願日】2020-05-26
(65)【公表番号】
(43)【公表日】2022-08-15
(86)【国際出願番号】 US2020034551
(87)【国際公開番号】W WO2020247207
(87)【国際公開日】2020-12-10
【審査請求日】2022-01-31
(31)【優先権主張番号】62/856,548
(32)【優先日】2019-06-03
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520296244
【氏名又は名称】リアルタイム ロボティクス, インコーポレーテッド
【氏名又は名称原語表記】REALTIME ROBOTICS, INC.
【住所又は居所原語表記】27 Wormwood St.,Suite #110,Boston,Massachusetts 02210 United States of America
(74)【代理人】
【識別番号】100105131
【弁理士】
【氏名又は名称】井上 満
(74)【代理人】
【識別番号】100105795
【弁理士】
【氏名又は名称】名塚 聡
(72)【発明者】
【氏名】フロイド-ジョンズ,ウィリアム
(72)【発明者】
【氏名】ウィリー,ブライス
(72)【発明者】
【氏名】コニダリス,ジョージ
(72)【発明者】
【氏名】ロン,シエンチャオ
【審査官】鶴江 陽介
(56)【参考文献】
【文献】特開2008-134165(JP,A)
【文献】国際公開第2017/214581(WO,A1)
【文献】米国特許出願公開第2008/0186312(US,A1)
【文献】特表2019-517702(JP,A)
【文献】米国特許出願公開第2016/0299507(US,A1)
【文献】SCHWESINGER ULRICH,MOTION PLANNING IN DYNAMIC ENVIRONMENTS WITH APPLICATION TO SELF-DRIVING VEHICLES,2017年,要約,第14,32-37,44,47,65-78,91,98頁,https://www.research-collection.ethz.ch/handle/20.500.11850/210330
(58)【調査した分野】(Int.Cl.,DB名)
B60W 30/00-60/00
G08G 1/00- 1/16
G05D 1/00- 1/43
(57)【特許請求の範囲】
【請求項1】
各計画グラフがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の他の車両及び他の障害物を含む環境で稼働する一次車両の状態を表し、各エッジが前記ノードのそれぞれのペアの間の遷移を表す、計画グラフを介して動作計画を実行するための、プロセッサベースのシステムの運用における動作計画方法であって、前記方法は、
前記プロセッサベースのシステムによって、前記一次車両をそれぞれの有向境界ボックスとして表すステップと、
前記プロセッサベースのシステムによって、少なくとも1つの他の障害物を道路の端の形態として、スプライン、b-スプライン、又は、多項式の形態の曲線の表現として表すステップと、
前記計画グラフの複数の前記エッジのうちの少なくとも1つに対する、
前記プロセッサベースのシステムによって、有向境界ボックス衝突検出を実行して、前記有向境界ボックスによって表される前記一次車両が状態のペアの間で遷移する際に、他の車両又は他の障害物の表現と衝突するかどうかを判定するステップであって、前記ペアの状態は前記計画グラフのそれぞれのエッジによって接続されるノードのペアのそれぞれのノードによって表される、該ステップと、
前記プロセッサベースのシステムによって、検出された衝突又は衝突の非検出のうちの少なくとも1つを反映するように、計画グラフの前記それぞれのエッジのコストを設定するステップと、を含み、
有向境界ボックス衝突検出を実行して、それぞれの有向境界ボックスによって表される前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するステップは、有向境界ボックス曲線衝突検出を実行して、前記一次車両を表す前記それぞれの有向境界ボックスが、前記計画グラフの前記それぞれのエッジによって接続されるそれぞれのノードによって表される前記状態のペアの間で遷移する際に、前記他の障害物のうちの前記少なくとも1つを表す前記曲線と衝突するかどうかを判定するステップを含む、方法。
【請求項2】
少なくとも1つの他の障害物を曲線の表現として表すステップは、道路の少なくとも1つの中央線、道路の端、又は道路の少なくとも1つの車道標示をスプライン表現として表すステップを含む、請求項1に記載の動作計画方法。
【請求項3】
有向境界ボックス衝突検出を実行するステップは、前記計画グラフの前記それぞれのエッジに対応する前記一次車両のそれぞれの軌道を表すために適合関数のセットを使用して前記一次車両のそれぞれの軌道に沿った少なくとも1つの点のそれぞれで有向境界ボックス衝突検出を実行するステップを含む、請求項1又は2に記載の動作計画方法。
【請求項4】
有向境界ボックス衝突検出を実行するステップは、複数の別個のハードウェア回路を介して有向境界ボックス衝突検出を実行するステップを含む、請求項1又は2に記載の動作計画方法。
【請求項5】
前記検出された衝突又は衝突の非検出のうちの少なくとも1つを反映するように、計画グラフの前記それぞれのエッジのコストを設定するステップは、衝突の検出を反映し、前記検出された衝突の重大度を表す少なくとも1つのパラメータを反映するように、パラメータ化されたコスト関数に従って計画グラフの前記それぞれのエッジのうちの1つ又は複数のコストを設定するステップを含む、請求項1又は2に記載の動作計画方法。
【請求項6】
さらに、
前記プロセッサベースのシステムによって、前記計画グラフの最小コスト分析を実行するステップと、
前記プロセッサベースのシステムによって、少なくとも部分的に前記最小コスト分析に基づいて、結果として生じる前記一次車両による動作計画を実施するステップ、
を含む、請求項1又は2に記載の動作計画方法。
【請求項7】
各計画グラフがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の他の車両及び他の障害物を含む環境で稼働する一次車両の状態を表し、各エッジが前記ノードのそれぞれのペアの間の遷移を表す、計画グラフを介して動作計画を実行するプロセッサベースのシステムであって、
前記プロセッサベースのシステムは、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信可能に結合され、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
前記一次車両をそれぞれの有向境界ボックスとして表すステップ、
少なくとも1つの他の障害物を道路の端の形態として、スプライン、b-スプライン、又は、多項式の形態の曲線の表現として表すステップ、
前記計画グラフの複数の前記エッジのうちの少なくとも1つに対する、
有向境界ボックス衝突検出を実行して、前記有向境界ボックスによって表される前記一次車両が状態のペアの間で遷移する際に、他の車両又は他の障害物の表現と衝突するかどうかを判定するステップであって、前記ペアの状態は前記計画グラフのそれぞれのエッジによって接続されるノードのペアのそれぞれのノードによって表される、該ステップ、及び、
検出された衝突又は衝突の非検出のうちの少なくとも1つを反映するように、計画グラフの前記それぞれのエッジのコストを設定するステップ、
を実行させるプロセッサ実行可能命令を記憶する、少なくとも1つの非一時的プロセッサ読み取り可能媒体を含み、
前記有向境界ボックス衝突検出を実行するために、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサに、有向境界ボックス-曲線衝突検出を実行させ、前記一次車両を表す前記それぞれの有向境界ボックスが、前記計画グラフの前記それぞれのエッジによって接続されるそれぞれのノードによって表される前記状態のペアの間を遷移する際に、前記他の障害物の前記少なくとも1つを表す前記曲線と衝突するかどうかを判定させる、プロセッサベースのシステム。
【請求項8】
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、道路の少なくとも1つの中央線、道路の端、又は道路の少なくとも1つの車道標示をスプライン表現として表すステップを含む、少なくとも1つの他の障害物を曲線の表現として表すステップを実行させる、請求項7に記載のプロセッサベースのシステム。
【請求項9】
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、前記計画グラフのそれぞれのエッジに対応する前記一次車両のそれぞれの軌道を表すために、適合関数のセットを使用して、前記一次車両のそれぞれの軌道に沿った少なくとも1つの点のそれぞれで、有向境界ボックス衝突検出を実行させる、請求項7又は8に記載のプロセッサベースのシステム。
【請求項10】
有向境界ボックス衝突検出を実行するステップは、複数の別個のハードウェア回路を介して有向境界ボックス衝突検出を実行するステップを含む、請求項7又は8に記載のプロセッサベースのシステム。
【請求項11】
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、衝突の検出を反映し、前記検出された衝突の重大度を反映するように、パラメータ化されたコスト関数に基づいて計画グラフの前記それぞれのエッジのコストを設定させる、請求項7又は8に記載のプロセッサベースのシステム。
【請求項12】
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサにさらに、
前記計画グラフの最小コスト分析を実行するステップと、
少なくとも部分的に前記最小コスト分析に基づいて、結果として生じる動作計画を前記一次車両によって実施するステップを実行させる、請求項7又は8に記載のプロセッサベースのシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は一般に、衝突評価(又は、衝突アセスメント/collision assessment)を伴う動作計画ラティス(又は、動作計画格子/motion planning lattice)を使用する動作計画(又は、モーションプラニング/モーションプラン/motion planning)に関し、特に、動的障害物(例えば、他の自律車両、他の車両、人、動物、優遇領域(又は、特別扱い領域/courtesy region))及び静的障害物(例えば、樹木、建物、木、岩、壁、バリケード、車道標示(lane marker)、中央線(又はセンターライン/centerline)、その他の道路標示、道路端(edge))を有する環境における一次エージェント(又は、主要エージェント/primary agent)(例えば、自律車両)のための動作計画を容易にするシステム及び方法に関する。
【背景技術】
【0002】
動作計画は、ロボット工学における基本的な問題である。動作計画は自律車両の動作(又は、運動/動き/モーション/motion)を制御するために、又は他のタイプのロボット又はロボットの一部(例えば、ロボット付属物、エンドエフェクタ、エンドオブアームツール(又は、アーム端ツール/end of arm tool)の動きを制御するために使用することができる。動作計画は一連の遷移又は「経路」を指定することができ、自律車両又はロボット又はその一部は通常、稼働環境(又は、運用環境/操作環境/動作環境/operational environment)内の障害物と衝突することなく、又は稼働環境内の任意の障害物と衝突する可能性を低減して、最初の状態(例えば、開始構成又は開始姿勢)から目標状態(例えば、終了構成又は終了姿勢)へとたどる(又は、従う)ことができる。障害物は静的な物理的障害物(例えば、樹木、建物、木、岩、壁、バリケード、車道標示、中央線、他の道路標示、道路端)、静的な概念的障害物(例えば、静的な物理的障害物に関する「優遇」領域)、動的な物理的障害物(例えば、他の自律車両、他の車両、人間、動物)、及び動的な概念的障害物(例えば、動的な物理的障害物に関する優遇領域及び/又は動的な物理的障害物に関する他の論理的構築物(又は、構成/construct)を含む、任意の1つ又は複数の様々な形態をとることができる。
【0003】
通常、動作計画の作成には、知覚、ラティスの構築、衝突評価(一般的に衝突検出とも呼ばれる)、及び経路検索の4つの主要コンポーネントが含まれる。各々は、静的障害物を含み、そして特に、稼働環境内で移動する動的障害物を含む、自律走行車両が遷移する(transit)又は他のタイプのロボットが移動する稼働環境内で克服するための課題を提供する。動的障害物の将来の運動(movement)は、既知であってもよく、未知であっても不確実であってもよい。自律走行車両(又は、他のタイプのロボット)が動作計画を実行して、動的障害物と静的障害物の両方との衝突を回避して目標とする状態を達成するために、稼働環境の変化にリアルタイムでついていくことが有利である。
【発明の開示】
【発明が解決しようとする課題】
【0004】
モーションプランナ(又は、動作計画器/動作計画装置)は一次エージェント(例えば、自律車両)の構成状態をノードとして表し、状態間の遷移をエッジとして表す動作計画ラティスを使用して動作計画を実行する。モーションプランナは好ましくは衝突評価を実行して、一次エージェントが2つの状態又は構成の間を遷移する際に障害物と衝突する尤度(又は、可能性/likelihood)又は確率を決定する。モーションプランナは、動作計画ラティスのエッジにコスト値を割り当てることができる。コスト値が対応する遷移に対する衝突の尤度又は確率を表す。割り当てられたコスト値は例えば、2つ又はそれ以上のパラメータ及び1つ又は複数の重みを有するパラメトリック関数を介して生成される、衝突の重大度を追加的又は代替的に表すことができる。モーションプランナは、動作計画ラティスに対して最小コスト分析を実行して、ある状態又は構成から別の状態又は構成への遷移又は「経路」のセットを決定することができる。モーションプランナは一次エージェントのアクチュエータ又はトランスミッションに、識別された遷移又は経路のセットを有する動作計画を実施させることができる。
【0005】
一次エージェント及び/又は動的障害物は、有利にはそれぞれの有向境界ボックス(又は、有向バウンディングボックス/oriented bounding boxes)として表すことができる。いくつかの障害物(例えば、道路標示、道路の端)は、曲線として有利に表されてもよい。一次エージェント及び/又は動的障害物の軌道は有利には例えば運動方程式の代わりに、適合関数(例えば、適合多項式関数)のそれぞれのセットによって表すことができる。適合関数は例えば、三角関数を評価する必要性を回避することによって、衝突評価を実行するときに、運動方程式よりも少ない計算コストを必要とすることが有利である。
【0006】
発明の態様
態様1
各計画ラティスがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の他の車両及び他の障害物を含む環境で稼働する一次車両の状態を表し、各エッジが前記ノードのそれぞれのペアの間の遷移を表す、計画ラティスを介して動作計画を実行するための、プロセッサベースのシステムの運用における動作計画方法が開示される。前記方法は、
前記プロセッサベースのシステムによって、前記一次車両をそれぞれの有向境界ボックスとして表すステップと、
前記計画ラティスの複数の前記エッジのうちの少なくとも1つに対する、
前記プロセッサベースのシステムによって、有向境界ボックス衝突検出を実行して、前記有向境界ボックスによって表される前記一次車両が状態のペアの間で遷移する際に、他の車両又は他の障害物の表現と衝突するかどうかを判定するステップであって、前記ペアの状態は前記計画ラティスのそれぞれのエッジによって接続されるノードのペアのそれぞれのノードによって表される、該ステップと、
前記プロセッサベースのシステムによって、検出された衝突又はその不存在のうちの少なくとも1つを反映するように、計画ラティスの前記それぞれのエッジのコストを設定するステップと、を含む方法と要約され得る。
【0007】
態様2
さらに、前記プロセッサベースのシステムによって、前記他の車両の少なくとも1つをそれぞれの有向境界ボックスとして表すステップを含み、
有向境界ボックス衝突検出を実行するステップは、有向境界ボックス-有向境界ボックス衝突検出を実行して、前記一次車両を表す前記それぞれの有向境界ボックスが、前記計画ラティスの前記それぞれのエッジによって接続されるそれぞれのノードによって表される前記状態のペアの間で遷移する際に、前記他の車両のうちの少なくとも1つを表す前記それぞれの有向境界ボックスと衝突するかどうかを判定するステップを含む、態様1の動作計画方法。
【0008】
態様3
さらに、前記プロセッサベースのシステムによって、前記他の障害物の少なくとも1つをそれぞれの有向境界ボックスとして表すステップを含み、
有向境界ボックス衝突検出を実行するステップは、有向境界ボックス-有向境界ボックス衝突検出を実行して、前記一次車両を表す前記それぞれの有向境界ボックスが、前記計画ラティスの前記それぞれのエッジによって接続されるそれぞれのノードによって表される前記状態のペアの間を遷移する際に、前記他の障害物のうちの少なくとも1つを表す前記それぞれの有向境界ボックスと衝突するかどうかを判定するステップを含む、態様1の動作計画方法。
【0009】
態様4
さらに、前記プロセッサベースのシステムによって、少なくとも1つの他の障害物を曲線の表現として表すステップを含み、
有向境界ボックス衝突検出を実行して、それぞれの有向境界ボックスによって表される前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するステップは、有向境界ボックス曲線衝突検出を実行して、前記一次車両を表す前記それぞれの有向境界ボックスが、前記計画ラティスの前記それぞれのエッジによって接続されるそれぞれのノードによって表される前記状態のペアの間で遷移する際に、前記他の障害物のうちの前記少なくとも1つを表す前記曲線と衝突するかどうかを判定するステップを含む、態様1の動作計画方法。
【0010】
態様5
少なくとも1つの他の障害物を曲線の表現として表すステップは、道路の少なくとも1つの中央線、道路の端、又は道路の少なくとも1つの車道標示をスプライン表現として表すステップを含む、態様4の動作計画方法。
【0011】
態様6
有向境界ボックス衝突検出を実行するステップは、前記計画ラティスの前記それぞれのエッジに対応する前記一次車両のそれぞれの軌道を表すために適合関数のセットを使用して前記一次車両のそれぞれの軌道に沿った少なくとも1つの点のそれぞれで有向境界ボックス衝突検出を実行するステップを含む、態様1~5のいずれかの動作計画方法。
【0012】
態様7
有向境界ボックス衝突検出を実行するステップは、複数の別個のハードウェア回路を介して有向境界ボックス衝突検出を実行するステップを含む、態様1~5のいずれかの動作計画方法。
【0013】
態様8
前記検出された衝突又はその不存在のうちの少なくとも1つを反映するように、計画ラティスの前記それぞれのエッジのコストを設定するステップは、衝突の検出を反映し、前記検出された衝突の重大度を表す少なくとも1つのパラメータを反映するように、パラメータ化されたコスト関数に従って計画ラティスの前記それぞれのエッジのうちの1つ又は複数のコストを設定するステップを含む、態様1~5のいずれかの動作計画方法。
【0014】
態様9
さらに、
前記プロセッサベースのシステムによって、前記計画ラティスの最小コスト分析を実行するステップと、
前記プロセッサベースのシステムによって、少なくとも部分的に前記最小コスト分析に基づいて、結果として生じる前記一次車両による動作計画を実施するステップ、
を含む、態様1~5のいずれかの動作計画方法。
【0015】
態様10
各計画ラティスがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の他の車両及び他の障害物を含む環境で稼働する一次車両の状態を表し、各エッジが前記ノードのそれぞれのペアの間の遷移を表す、計画ラティスを介して動作計画を実行するプロセッサベースのシステムが開示される。
前記プロセッサベースのシステムは、
少なくとも1つのプロセッサ、
前記少なくとも1つのプロセッサに通信可能に結合され、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
前記一次車両をそれぞれの有向境界ボックスとして表すステップと、
前記計画ラティスの複数の前記エッジのうちの少なくとも1つに対する、
有向境界ボックス衝突検出を実行して、前記有向境界ボックスによって表される前記一次車両が状態のペアの間で遷移する際に、他の車両又は他の障害物の表現と衝突するかどうかを判定するステップであって、前記ペアの状態は前記計画ラティスのそれぞれのエッジによって接続されるノードのペアのそれぞれのノードによって表される、該ステップ、及び、
検出された衝突又はその不存在のうちの少なくとも1つを反映するように、計画ラティスの前記それぞれのエッジのコストを設定するステップ、
を実行させるプロセッサ実行可能命令を記憶する、少なくとも1つの非一時的プロセッサ読み取り可能媒体を含むプロセッサベースのシステムと要約され得る。
【0016】
態様11
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサにさらに、
前記他の車両の少なくとも1つをそれぞれの有向境界ボックスとして表すステップを実行させ、
有向境界ボックス衝突検出を実行するステップは、有向境界ボックス-有向境界ボックス衝突検出を実行して、前記一次車両を表す前記それぞれの有向境界ボックスが、前記計画ラティスの前記それぞれのエッジによって接続されるそれぞれのノードによって表される前記状態のペアの間で遷移する際に、前記他の車両のうちの少なくとも1つを表す前記それぞれの有向境界ボックスと衝突するかどうかを判定するステップを含む、態様10のプロセッサベースのシステム。
【0017】
態様12
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサにさらに、
前記他の障害物の少なくとも1つをそれぞれの有向境界ボックスとして表すステップを実行させ、
有向境界ボックス衝突検出を実行するステップは、有向境界ボックス-有向境界ボックス衝突検出を実行して、前記一次車両を表す前記それぞれの有向境界ボックスが、前記計画ラティスの前記それぞれのエッジによって接続されるそれぞれのノードによって表される前記状態のペアの間を遷移する際に、前記他の障害物のうちの少なくとも1つを表す前記それぞれの有向境界ボックスと衝突するかどうかを判定するステップを含む、態様10のプロセッサベースのシステム。
【0018】
態様13
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサにさらに、
少なくとも1つの他の障害物を曲線の表現として表すステップと、
前記有向境界ボックス衝突検出を、有向境界ボックス-曲線衝突検出として実行して、前記一次車両を表す前記それぞれの有向境界ボックスが、前記計画ラティスの前記それぞれのエッジによって接続されるそれぞれのノードによって表される前記状態のペアの間を遷移する際に、前記他の障害物の前記少なくとも1つを表す前記曲線と衝突するかどうかを判定するステップ、
を実行させる、態様10のプロセッサベースのシステム。
【0019】
態様14
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、道路の少なくとも1つの中央線、道路の端、又は道路の少なくとも1つの車道標示をスプライン表現として表すステップを含む、少なくとも1つの他の障害物を曲線の表現として表すステップを実行させる、態様13のプロセッサベースのシステム。
【0020】
態様15
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、前記計画ラティスのそれぞれのエッジに対応する前記一次車両のそれぞれの軌道を表すために、適合関数のセットを使用して、前記一次車両のそれぞれの軌道に沿った少なくとも1つの点のそれぞれで、有向境界ボックス衝突検出を実行させる、態様10~14のいずれかのプロセッサベースのシステム。
【0021】
態様16
有向境界ボックス衝突検出を実行するステップは、複数の別個のハードウェア回路を介して有向境界ボックス衝突検出を実行するステップを含む、態様10~態様14のいずれかのプロセッサベースのシステム。
【0022】
態様17
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、衝突の検出を反映し、前記検出された衝突の重大度を反映するように、パラメータ化されたコスト関数に基づいて計画ラティスの前記それぞれのエッジのコストを設定させる、態様10~14のいずれかのプロセッサベースのシステム。
【0023】
態様18
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサにさらに、
前記計画ラティスの最小コスト分析を実行するステップと、
少なくとも部分的に前記最小コスト分析に基づいて、結果として生じる動作計画を前記一次車両によって実施するステップを実行させる、態様10~14のいずれかのプロセッサベースのシステム。
【0024】
態様19
各計画ラティスがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の他の車両及び他の障害物を含む環境で稼働する一次車両の状態を特徴付け、各エッジが前記ノードのそれぞれのペアによって表される状態間の前記一次車両の軌道を表す、計画ラティスを介して動作計画を実行するための、プロセッサベースのシステムの運用における動作計画方法が開示される。前記方法は、
実行時中に、計画ラティスの複数の前記エッジのそれぞれに対し、
前記プロセッサベースのシステムによって、前記それぞれのエッジに対応する軌道を適合関数のセットとして表すステップと、
前記プロセッサベースのシステムによって、前記一次車両の表現が他の車両又は他の障害物の1つ又は複数の表現と衝突するかどうかを判定するように、適合関数のセットを用いて衝突検出を実行するステップと、
前記プロセッサベースのシステムによって、前記計画ラティスの前記それぞれのエッジによって接続されるそれぞれのノードによって表される状態のペアの間で遷移する際に、前記判定された衝突又はその不存在のうちの少なくとも1つを反映するように、前記計画ラティスの前記それぞれのエッジのコストを設定するステップと、
を含む方法と要約され得る。
【0025】
態様20
さらに、前記プロセッサベースのシステムによって、前記一次車両から離れて配置された構成システムから、前記一次車両の前記プロセッサベースのシステムにおける適合関数の前記セットを受信するステップを含み、
適合関数の前記セットは前記実行時の前に前記構成システムによって適合される、態様19の動作計画方法。
【0026】
態様21
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合関数のセットを用いて衝突検出を実行するステップは、適合多項式関数のペアを用いて衝突検出を実行するステップを含み、前記ペアの一方の適合多項式関数は時間に関して第1の次元の位置を表し、前記ペアの他方の適合多項式関数は時間に関して第2の次元の位置を表し、前記第2の次元は前記第1の次元とは異なる、態様19の動作計画方法。
【0027】
態様22
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合関数のセットを用いて衝突検出を実行するステップは、前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合タイムパラメトリック関数のペアを使用して衝突検出を実行するステップを含む、態様19の動作計画方法。
【0028】
態様23
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合関数のセットを用いて衝突検出を実行するステップは、前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合タイムパラメトリック5次関数のペアを用いて衝突検出を実行するステップを含む、態様19の動作計画方法。
【0029】
態様24
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合関数のセットを用いて衝突検出を実行するステップは、前記一次車両のメーク及びモデルに特有であり、前記一次車両の相手先商標製造業者によって提供される適合関数のペアを用いて衝突検出を実行するステップを含む、態様19の動作計画方法。
【0030】
態様25
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合関数のセットを用いて衝突検出を実行するステップは、前記一次車両のメーク及びモデルに特有であり、前記一次車両の相手先商標製造業者によって提供されるパラメータを有する適合多項式関数のペアを用いて衝突検出を実行するステップを含む、態様19の動作計画方法。
【0031】
態様26
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合多項式関数のセットを使用して衝突検出を実行するステップは、前記一次車両のそれぞれの軌道に沿った1つ又は複数の点で前記衝突検出を実行するステップを含み、前記それぞれの軌道は前記計画ラティスの前記それぞれのエッジに対応する前記一次車両の前記それぞれの軌道を表すように前記適合関数のセットを介して指定される、態様19~25のいずれかの動作計画方法。
【0032】
態様27
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合関数のセットを用いて衝突検出を実行するステップは、複数の別個のハードウェア回路を介して前記衝突検出を実行するステップを含む、態様19~25のいずれかの動作計画方法。
【0033】
態様28
検出された衝突又はその不存在のうちの少なくとも1つを反映するように、計画ラティスの前記それぞれのエッジのコストを設定するステップは、衝突の検出を反映し、前記検出された衝突の重大度を反映するように、パラメータ化されたコスト関数に従って、計画ラティスの前記それぞれのエッジのうちの1つ又は複数のコストを設定するステップを含む、態様19~25のいずれかの動作計画方法。
【0034】
態様29
さらに、前記プロセッサベースのシステムによって、前記計画ラティスの最小コスト分析を実行するステップと、
前記プロセッサベースのシステムによって、少なくとも部分的に前記最小コスト分析に基づいて、結果として生じる動作計画を前記一次車両によって実施するステップを含む、態様19~25のいずれかの動作計画方法。
【0035】
態様30
さらに、前記実行時の前に発生するオフライン構成時中に、複数の前記エッジのそれぞれについて、それぞれの多項式関数のセットを、前記エッジが表す軌道によって表される動きに適合するステップを含む、態様19~25のいずれかの動作計画方法。
【0036】
態様31
各計画ラティスがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の他の車両及び他の障害物を含む環境で稼働する一次車両の状態を特徴付け、各エッジが前記ノードのそれぞれのペアによって表される状態間の前記一次車両の軌道を表す、計画ラティスを介して動作計画を実行するためのプロセッサベースのシステムが開示される。前記プロセッサベースのシステムは、
少なくとも1つのプロセッサ、
前記少なくとも1つのプロセッサに通信可能に結合され、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに
実行時中に、計画ラティスの複数の前記エッジのそれぞれに対し、
前記それぞれのエッジに対応する軌道を適合関数のセットとして表し、
適合関数の前記セットを用いて衝突検出を実行し、前記一次車両の表現が他の車両又は他の障害物の1つ又は複数の表現と衝突するかどうかを判定し、
前記計画ラティスのそれぞれのエッジによって接続されるそれぞれのノードによって表される状態のペアの間で遷移する際に、判定された衝突又はその不存在のうちの少なくとも1つを反映するように前記計画ラティスの前記それぞれのエッジのコストを設定することを実行させるプロセッサ実行可能命令を記憶する、少なくとも1つの非一時的プロセッサ読み取り可能媒体を含むプロセッサベースのシステムと要約され得る。
【0037】
態様32
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサにさらに、
前記一次車両から離れて配置された構成システムから、前記一次車両の前記プロセッサベースのシステムにおける適合関数の前記セットを受信させ、
適合関数の前記セットは実行時の前に前記構成システムによって適合される、態様31のプロセッサベースのシステム。
【0038】
態様33
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
適合多項式関数のペアを用いて前記衝突検出を実行させ、前記ペアの一方の適合多項式関数は時間に関して第1の次元における位置を表し、前記ペアの他方の適合多項式関数は時間に関して第2の次元における位置を表し、前記第2の次元は前記第1の次元とは異なる、態様31のプロセッサベースのシステム。
【0039】
態様34
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合タイムパラメトリック関数のペアを用いて前記衝突検出を実行させる、態様31のプロセッサベースのシステム。
【0040】
態様35
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
前記一次車両が他の車両又は他の障害物と衝突するか否かを判定するように、適合タイムパラメトリック5次関数のペアを用いて前記衝突検出を実行させる、態様31のプロセッサベースのシステム。
【0041】
態様36
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
前記一次車両のメーク及びモデルに特有であり、前記一次車両の相手先商標製造業者によって提供される適合関数のペアを用いて前記衝突検出を実行させる、態様31のプロセッサベースのシステム。
【0042】
態様37
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
前記一次車両のメーク及びモデルに特有であり、前記一次車両の相手先商標製造業者によって提供されるパラメータを有する適合多項式関数のペアを用いて前記衝突検出を実行させる、態様31のプロセッサベースのシステム。
【0043】
態様38
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
前記一次車両のそれぞれの軌道に沿った1つ又は複数の点で前記衝突検出を実行させ、前記それぞれの軌道は、前記計画ラティスの前記それぞれのエッジに対応する前記一次車両の前記それぞれの軌道を表すように、前記適合関数のセットを介して指定させる、態様31~37のいずれかのプロセッサベースのシステム。
【0044】
態様39
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、複数の別個のハードウェア回路を介して前記衝突検出を実行させる、態様31~37のいずれかのプロセッサベースのシステム。
【0045】
態様40
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、前記衝突の検出を反映し、前記検出された衝突の重大度を反映するように、前記検出された衝突又はその不存在のうちの少なくとも1つを反映するように、パラメータ化されたコスト関数を介して、計画ラティスのそれぞれのエッジのコストを設定させる、態様31~37のいずれかのプロセッサベースのシステム。
【0046】
態様41
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサにさらに、
前記計画ラティスの最小コスト分析を実行し、
少なくとも部分的に前記最小コスト分析に基づいて、結果として生じる動作計画を前記一次車両によって実施させる、態様31~37のいずれかのプロセッサベースのシステム。
【0047】
態様42
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサにさらに、
実行時の前に発生するオフライン構成時中に、複数の前記エッジのそれぞれについて、それぞれの関数のセットを、前記エッジが表す軌道によって表される動きに適合させる、態様31~37のいずれかのプロセッサベースのシステム。
【0048】
態様43
各計画ラティスがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の他の車両及び他の障害物を含む環境で稼働する一次車両の状態を特徴付け、各エッジがノードのそれぞれのペアによって表される状態間の前記一次車両の軌道を表す、計画ラティスを介して動作計画を実行するための、プロセッサベースのシステムの運用における動作計画方法が開示される。前記方法は、
実行時の前に発生するオフライン構成時中に、
計画ラティスの複数の前記エッジのそれぞれに対し、
前記エッジが表す前記軌道によって表される動きに適合される適合関数のセットを決定するステップと、
一次車両のプロセッサベースのシステムによる動作計画に使用するための適合関数の前記セットを提供するステップ、
を含む方法。
【0049】
態様44
前記エッジが表す前記軌道によって表される動きに適合される適合関数のセットを決定するステップは、適合関数の前記セットを前記軌道によって表される動きに適合させるステップを含む、態様43の動作計画方法と要約され得る。
【0050】
態様45
前記エッジが表す前記軌道によって表される動きに適合される適合関数のセットを決定するステップは、適合多項式関数のペアを決定するステップを含み、前記ペアの一方の適合多項式関数は、時間に関して第1の次元における前記軌道に沿った位置を表し、前記ペアの他方の適合多項式関数は、時間に関して第2の次元における前記軌道に沿った位置を表し、前記第2の次元は前記第1の次元とは異なる、態様43の動作計画方法。
【0051】
態様46
前記エッジが表す前記軌道によって表される動きに適合される適合関数のセットを決定するステップは、前記軌道を表す適合タイムパラメトリック関数のペアを決定するステップを含む、態様43の動作計画方法。
【0052】
態様47
前記エッジが表す前記軌道によって表される動きに適合される適合関数のセットを決定するステップは、前記軌道を表す適合タイムパラメトリック5次関数のペアを決定するステップを含む、態様43の動作計画方法。
【0053】
態様48
前記エッジが表す前記軌道によって表される動きに適合される適合関数のセットを決定するステップは、前記一次車両の相手先商標製造業者によって指定される前記一次車両のメーク及びモデルに特有の適合関数のペアを決定するステップを含む、態様43の動作計画方法。
【0054】
態様49
前記エッジが表す前記軌道によって表される動きに適合される適合関数のセットを決定するステップは、前記一次車両の相手先商標製造業者により前記一次車両のメーク及びモデルに特有のパラメータを有する適合多項式関数のペアを決定するステップと、前記一次車両のメーク及びモデルに特有のパラメータを有する前記決定された適合多項式関数のペアを、前記一次車両のプロセッサベースの制御システムに提供するステップとを含み、前記一次車両は自律車両である、態様43の動作計画方法。
【0055】
態様50
各計画ラティスがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の障害物を含む環境で稼働する一次車両の状態を特徴付け、各エッジが前記ノードのそれぞれのペアの間の遷移を表す、計画ラティスを介して動作計画を実行するための、プロセッサベースのシステムの運用における動作計画方法が開示される。前記方法は、
前記計画ラティスの複数の前記エッジの少なくとも1つのそれぞれに対し、
前記プロセッサベースのシステムによって、前記計画ラティスの前記それぞれのエッジによって接続されるノードのペアのそれぞれのノードによって表される状態のペアの間で遷移する際に、前記一次車両の表現が前記障害物の表現と衝突するかどうかを判定するように、衝突検出を実行するステップと、
前記プロセッサベースのシステムによって、
i)前記衝突検出と、
ii)障害物タイプ、衝突タイプ、車両速さ、又は少なくとも衝突中に消散することになる消散エネルギーの推定量の少なくとも2つ以上を表すパラメータ化されたコスト関数と、
に少なくとも部分的に基づいて、前記計画ラティスの前記それぞれのエッジに関連するコストを設定するステップと、
を含み、
前記障害物タイプは衝突が発生し得る障害物のタイプを表し、
前記衝突タイプは発生し得る衝突のタイプを表し、
前記車両速さは予測された衝突の直前の少なくとも前記一次車両の速さを表す、
方法と要約され得る。
【0056】
態様51
前記障害物タイプは、前記障害物が生命をもつ障害物であるか、又は生命をもたない障害物であるかを表し、前記それぞれのエッジに関連するコストを設定するステップは、前記障害物が生命を持つ障害物であるか、又は生命をもたない障害物であるかに少なくとも部分的に基づいて前記コストを設定するステップを含む、態様50の動作計画方法。
【0057】
態様52
前記衝突タイプは、前記衝突が物理的障害物又は前記一次車両のいずれかに損傷をもたらす前記物理的障害物との衝突であるか、又は前記一次車両に直接損傷をもたらさない間隔要件又は道路標示との衝突であるかを表し、前記それぞれのエッジに関連するコストを設定するステップは、前記衝突が物理的障害物又は前記一次車両のいずれかに損傷をもたらす前記物理的障害物との衝突であるか、又は前記衝突が前記道路標示に損傷をもたらさない道路標示との衝突であるかに少なくとも部分的に基づいて、前記コストを設定するステップを含む、態様50の動作計画方法。
【0058】
態様53
前記車両速さは、現実世界の基準フレーム内の前記一次車両の速さを表し、前記それぞれのエッジに関連するコストを設定するステップは、前記現実世界の基準フレーム内の前記一次車両の前記速さに少なくとも部分的に基づいて前記コストを設定するステップを含む、態様50の動作計画方法。
【0059】
態様54
前記車両速さは、前記障害物の速さに対する前記一次車両の速さを表し、前記それぞれのエッジに関連するコストを設定するステップは、前記障害物の速さに対する前記一次車両の前記速さに少なくとも部分的に基づいて前記コストを設定するステップを含む、態様50の動作計画方法。
【0060】
態様55
前記車両速さは、前記一次車両の速さと前記障害物の速さの両方を表し、前記それぞれのエッジに関連するコストを設定するステップは、前記一次車両の速さと前記障害物の速さの両方に少なくとも部分的に基づいて前記コストを設定するステップを含む、態様50の動作計画方法。
【0061】
態様56
前記パラメータ化されたコスト関数はまた、車両速さに基づく衝突の重大度のレベルを表し、前記それぞれのエッジに関連するコストを設定するステップは、前記一次車両及び前記障害物の少なくとも一方又は両方の車両速さに基づく重大度のレベルに少なくとも部分的に基づいて前記コストを設定するステップを含む、態様50の動作計画方法。
【0062】
態様57
衝突検出を実行するステップは、複数の別個のハードウェア回路を介して前記衝突検出を実行するステップを含む、態様50~56のいずれかの動作計画方法。
【0063】
態様58
さらに、
前記プロセッサベースのシステムによって、前記計画ラティスの最小コスト分析を実行するステップと、
前記プロセッサベースのシステムによって、少なくとも部分的に前記最小コスト分析に基づいて、結果として生じる動作計画を前記一次車両によって実施するステップを含む、態様50~56のいずれかの動作計画方法。
【0064】
態様59
各計画ラティスがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の障害物を含む環境で稼働する一次車両の状態を特徴付け、各エッジが前記ノードのそれぞれのペアの間の遷移を表す、計画ラティスを介して動作計画を実行するためのプロセッサベースのシステムが開示される。前記プロセッサベースのシステムは、
少なくとも1つのプロセッサ、
前記少なくとも1つのプロセッサに通信可能に結合され、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
前記計画ラティスの複数の前記エッジのそれぞれに対し、
前記計画ラティスの前記それぞれのエッジによって接続されるノードのペアのそれぞれのノードによって表される状態のペアの間で遷移する際に、前記一次車両の表現が前記障害物の表現と衝突するかどうかを判定するように、衝突検出を実行することと、
i)前記衝突検出と、
ii)障害物タイプ、衝突タイプ、車両速さ、又は少なくとも衝突中に消散することになる消散エネルギーの推定量の少なくとも2つ以上を表すパラメータ化されたコスト関数と、
に少なくとも部分的に基づいて、前記計画ラティスの前記それぞれのエッジに関連するコストを設定すること、
を実行させるプロセッサ実行可能命令を記憶する、少なくとも1つの非一時的プロセッサ読み取り可能媒体、を含むプロセッサベースのシステムであって、
前記障害物タイプは衝突が発生し得る障害物のタイプを表し、
前記衝突タイプは発生し得る衝突のタイプを表し、
前記車両速さは予測された衝突の直前の少なくとも前記一次車両の速さ及び少なくとも前記衝突の間に消散したであろう消散されたエネルギーの推定量を表す、
前記プロセッサベースのシステムと要約され得る。
【0065】
態様60
前記障害物のタイプは、前記障害物が生命をもつ障害物であるか、又は生命をもたない障害物であるかを表し、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、前記障害物が生命をもつ障害物であるか、又は生命をもたない障害物であるかに少なくとも部分的に基づいて前記コストを設定させる、態様59の動作計画方法。
【0066】
態様61
前記衝突タイプは、前記衝突が物理的障害物又は前記一次車両のいずれかに損傷をもたらす前記物理的障害物との衝突であるか、又は前記一次車両に直接損傷をもたらさない間隔要件又は道路標示との衝突であるかを表し、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、前記衝突が物理的障害物又は前記一次車両のいずれかに損傷をもたらす前記物理的障害物との衝突であるか、又は前記衝突が前記道路標示に損傷をもたらさない道路標示との衝突であるかに少なくとも部分的に基づいて、前記コストを設定させる、態様59の動作計画方法。
【0067】
態様62
前記車両速さは、現実世界の基準フレーム内の前記一次車両の速さを表し、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、前記現実世界の基準フレーム内の前記一次車両の速さに少なくとも部分的に基づいて前記コストを設定させる、態様59の動作計画方法。
【0068】
態様63
前記車両速さは、前記障害物の速さに対する前記一次車両の速さを表し、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、それぞれのエッジに関連するコストを設定させることは、前記障害物の速さに対する前記一次車両の速さに少なくとも部分的に基づいて前記コストを設定させることを含む、態様59の動作計画方法。
【0069】
態様64
前記車両速さは、前記一次車両の速さと前記障害物の速さの両方を表し、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、前記それぞれのエッジに関連するコストを設定させることは、前記一次車両の速さと前記障害物の速さの両方に少なくとも部分的に基づいて前記コストを設定させることを含む、態様59の動作計画方法。
【0070】
態様65
前記パラメータ化されたコスト関数はまた、車両速さに基づく衝突の重大度のレベルを表し、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、前記一次車両及び前記障害物の少なくとも一方又は両方の車両速さに基づく重大度のレベルに少なくとも部分的に基づいて前記それぞれのエッジに関連するコストを設定させる、態様59の動作計画方法。
【0071】
態様66
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、複数の別個のハードウェア回路を介して前記衝突検出を実行させる、態様59~65のいずれかの動作計画方法。
【0072】
態様67
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、さらに、
前記計画ラティスの最小コスト分析を実行し、
少なくとも部分的に前記最小コスト分析に基づいて、結果として生じる動作計画を前記一次車両によって実施させる、態様59~65のいずれかの動作計画方法。
【図面の簡単な説明】
【0073】
図面において、同一の参照番号は、同様の要素又は作用を示す。図面における要素のサイズ及び相対位置は、必ずしも一定の縮尺で描かれてはいない。例えば、さまざまな要素の形状及び角度は一定の縮尺で描かれず、これらの要素のいくつかは、図面を見やすくするために、随時適当に拡大及び配置されている。さらに、描かれた要素の特定の形状は、特定の要素の実際の形状に関するいかなる情報も伝えることを意図しておらず、図面における認識を容易にするために単に選択されたものである。
図1図1は、1つの例示された実装形態による、一次エージェント(例えば、自律車両)が、稼働環境内の動的障害物及び静的障害物に関する衝突評価に基づく動作計画を実行しながら稼働し得る稼働環境の概略図である。
図2図2は、1つの例示された実装形態による、図1の稼働環境において一次エージェント(例えば、車両)を動作させるための動作計画を容易にすることができるプロセッサベースのシステムの機能ブロック図である。
図3図3は、1つの例示された実装形態による、図1の稼働環境において一次エージェント(例えば、車両)を動作させるための動作計画を容易にすることができる、一次エージェント(例えば、車両)オンボードプロセッサベースのシステムとリモートプロセッサベースのシステムの各種構成要素間の例示的なデータフローを示すブロック図である。
図4図4は、1つの例示された実装形態による、一次エージェント(例えば、図1の自律車両)の目標が、稼働環境における動的障害物及び静的障害物との衝突を回避しながら、ある状態から別の状態への遷移である場合の、一次エージェントのための動作計画ラティスの一例である。
図5図5は、1つの例示された実装形態による、一次エージェント(例えば、自律走行車両)のための一例の動作計画ラティスであり、他のエージェント(例えば、他の車両)の既知の又は予測された軌道並びに環境内の他の障害物に基づいて決定された衝突評価を表すように、また、パラメトリックコスト関数に基づいて衝突の重大さを表すように設定された又は調整されたエッジの各々に対するコストを用いた、2つの候補ノードの各々を通る最小コスト経路の例を示す。
図6図6は、少なくとも1つの例示された実装形態による、動作計画を実装するためのプロセッサベースのシステムにおける稼働方法600を示す流れ図である。
図7図7は、少なくとも1つの例示された実装形態による、動作計画を実装するためのプロセッサベースのシステムにおける稼働方法700を示す流れ図である。
図8図8は、少なくとも1つの例示された実装形態による、動作計画を実装するためのプロセッサベースのシステムにおける稼働方法800を示す流れ図である。
図9図9は、少なくとも1つの例示された実装形態による、動作計画を実装するためのプロセッサベースのシステムにおける稼働方法900の流れ図である。
【発明を実施するための形態】
【0074】
以下の説明では、様々な開示された実装形態(implementation)又は実施形態(embodiment)の完全な理解を提供するために、ある特定の詳細が記載される。しかしながら、当業者は、実装形態又は実施形態がこれらの特定の詳細のうちの1つ又は複数を用いないで、又は他の方法、構成要素、材料などを用いて実践されて(practiced)もよいことを認識するであろう。他の例では、プロセッサベースのシステム、コンピュータシステム、アクチュエータシステム、及び/又は通信ネットワークに関係がある周知の構造は、実装形態又は実施形態の説明を不必要に曖昧にすることを回避するために、詳細には示されず、又は説明されない。他の例では、1つ又は複数の一次車両(又は、主車両)、静的障害物、及び/又は動的障害物の知覚データ及び表現を生成するための周知のコンピュータビジョン方法及び技法、ならびにそれらのデジタル表現(たとえば、境界(bounding)ボックス、曲線、占有グリッド(occupancy grid)など)の構築(construction)は実装形態又は実施形態の説明を不必要に曖昧にすることを回避するために詳細には説明されない。
【0075】
本明細書及び特許請求の範囲を通して、文脈上、別の解釈が要求されない限り、用語"有する(comprise)"及びその派生語(comprisesやcomprising)は非限定的(open)で包括的な意味、即ち、"含む(including)が、それに限定されない"とみなされる。
【0076】
本明細書を通して、「1つの実装形態」又は「実装形態」又は「1つの実施形態」又は「実施形態」との言及は、実施形態に関連して記載される特定の特徴、構造又は特性が少なくとも1つの実装形態又は少なくとも1つの実施形態に含まれることを意味する。従って、この明細書全体にわたる様々な箇所における「1つの実装形態」又は「実装形態」又は「1つの実施形態」又は「実施形態」の表現は、必ずしもすべてが同じ実装形態又は同じ実施形態を指しているわけではない。さらに、特定の特徴、構造、又は特性は、1つ又は複数の実装形態又は実施形態において任意の適切な方法で組み合わせることができる。
【0077】
本明細書及び添付の特許請求の範囲で使用されるように、単数形「a」、「an」、及び「the」は内容が別段の明確な指示をしない限り、複数の指示対象を含む。また、用語「又は」は内容が別段の明確な指示をしない限り、「及び/又は」を含む意味で一般に使用されることにも留意されたい。
【0078】
本明細書及び添付の特許請求の範囲を通して、「一次エージェント」又は「(1つの)一次エージェント」との言及は、それぞれの動作計画が定式化又は生成されているエージェント(例えば、半自律車両もしくは、完全自律車両又は可動な付属物を伴うもしくは伴わない他のロボット)を意味する。本明細書を通して、「他のエージェント」又は「別のエージェント」又は「二次エージェント」又は「(1つの)二次エージェント」との言及は、それぞれの動作計画が定式化又は生成されている一次エージェント以外のエージェント(例えば、半自律車両もしくは、完全自律車両、可動な付属物を伴うもしくは伴わない他のロボット、手動操作車両、人間又は動物)を意味する。いくつかの事例では動作計画の他の事例がこれらの他のエージェント又は二次エージェントに対して発生し得るが、これらの動作計画は一次エージェントのモーション又は状態を表さない。
【0079】
本明細書及び添付の特許請求の範囲を通して、1つ又は複数の障害物は、静的障害物及び動的障害物を意味する。静的障害物には、動作計画が実行される期間中に静的なままである物理オブジェクト及び論理的構築物が含まれる。静的障害物の非限定的なセットの例には、支台(abutment)、縁石、建物、木、岩、壁、バリケード、バリア、中央分離帯(median)、車道標示、中央線、その他の道路標示、標示されているか否かにかかわらず道路端、静的物理的障害物に関する「優遇(courtesy)」領域(例えば、他の車両からの最小所望間隔(又は、望ましい最小のスペーシング)、及び/又は静的物理的障害物に関する他の論理的間隔構築物(又は、論理的なスペーシング構築物logical spacing constructure)(例えば、セットオフ又はエリア)が含まれる。動的障害物には、動作計画が実行される期間中に位置を移動又は変更する物理オブジェクト及び論理的間隔構築物を含む。動的障害物の非限定的なセットの例には、他の自律車両、他の車両、人間、動物、動的物理的障害物に関する優遇領域、及び/又は動的物理的障害物に関する他の論理的間隔構築物が含まれる。
【0080】
本明細書及び特許請求の範囲で使用されるように、「優遇領域」又は「優遇エリア」は、障害物の周囲にバッファを提供する、障害物の外側に画定される空間又はエリア又は距離オフセットのボリューム(又は、体積)を意味する。例えば、乗客に快適感を与えることに加え、動作計画システム及び/又は車両の公差に適応し、回避行動を取る際の遅延に適応するバッファを提供するために、車両の周りに優遇領域を画定することができる。また、例えば、車道標示又は道路端からのオフセットを画定することができる。優遇領域は車両の周りに対称的に配置されてもよいが、典型的には対称的ではない。例えば、車両の側方の優遇領域と比較して、車両の前方又は後方には、停止距離を考慮して、より大きな優遇領域を有することが有益であり得る。同様のバッファは他のタイプの動的障害物(例えば、歩行者)の周りに、又は静的障害物の周りにさえも存在し得る。これらの各々は、他の障害物に対して非物理的なバッファ領域を提供するという点で、論理的間隔構築物に該当する(又は、を構成する/constitute)。
【0081】
本明細書及び添付の特許請求の範囲を通して、用語「ラティス」は、用語「計画ラティス」、「計画ロードマップ」、及び「動作計画グラフ」と互換的に使用される。ラティスは典型的にはコンフィギュレーション空間(configuration space)、すなわち、C-空間。)内の一次エージェントのそれぞれの状態を表すノードのセットと、ノードによって表されるそれぞれの状態間のそれぞれの遷移を表すエッジのセットとによって構成される。とりわけ、ラティスは稼働環境の実世界の二次元又は三次元の表現と区別可能である。
【0082】
本明細書及び添付の特許請求の範囲を通して、「衝突検出」という用語は1つ又は複数の表現が軌道に沿って移動される場合に、車両又は他のロボットの表現とモデル内の障害物との間の衝突を予測すること、又は衝突を検出することを指す。したがって、衝突検出と衝突評価という用語は、交換可能に使用される。
【0083】
発明の名称及び要約は便宜上のものであり、実施形態の範囲又は意味を解釈するものではない。
【0084】
図1は例示的な一の実装形態による、例示的な一次エージェント(例えば、一次自律車両)102が稼働し得る動的稼働環境100を示す。簡潔にするために、本明細書では、稼働環境100を環境100と呼ぶ。一般的に自律車両に関して説明されているが、本明細書で説明される様々な実装形態は他のタイプのロボット又はその一部、例えば、環境をナビゲートするように稼働可能なロボット、及び/又は1つ又は複数の可動な付属物を有するロボットに適用可能である。
【0085】
環境100は一次エージェント(例えば、一次自律車両)102が稼働及び移動することができる二次元又は三次元の空間(すなわち、二空間;三空間)を表す。一次エージェント102は自動車、飛行機、船舶、ヘリコプター、ドローン、又は任意の他の車両であってもよく、又は、自律的又は半自律的に(すなわち、少なくとも部分的には自律的に)稼働し、環境100によって表される空間内のルート又は経路に沿って移動することができる別の種類のロボットであってもよい。環境100は車両が稼働する二次元又は三次元の空間であり、2017年6月9日に出願された国際特許出願第PCT/US2017/036880号(名称「自立走行車のための動作計画及び再構成可能な動作計画プロセッサ」)」、及び2016年1月5日に出願された国際特許出願第WO2016/122840号(名称「特殊化されたロボット動作計画ハードウェアならびにその製造及び使用方法」)に説明されるように、動作計画ラティス(例えば、図5)に関して以下で参照される一次エージェント又は車両の「コンフィギュレーション空間」(しばしば「C-空間」と呼ばれる)とは異なる。コンフィギュレーション空間は典型的には多次元である(すなわち、3次元より大きい)。
【0086】
説明の便宜上、2次元の環境を通じたナビゲーションに関して様々な実装形態を説明する。当業者であれば、本明細書に記載の構造及び行為(又は、動作/act)は、3次元の環境を通じたナビゲーションに拡張することができることを理解するであろう。
【0087】
図1を参照すると、環境100は、障害物衝突領域を含むことができる。これらの障害物衝突領域は静的障害物(例えば、支台、縁石、建物、木、岩、壁、バリケード、バリア、中央分離帯、車道標示、中央線、その他の道路標示、道路端、静的物理的障害物に関する「優遇」領域、及び/又は静的物理的障害物に関する他の論理的構築物)に起因し得る。これらの障害物衝突領域は動的な物理的障害物(例えば、他の自律車両、他の車両、人間、動物、動的な物理的障害物に関する優遇領域、及び/又は動的な物理的障害物に関する他の論理的構築物)に起因し得る。静的障害物及び動的障害物は、まとめて障害物と呼ぶことができる。他の車両(例えば、他の自律車両、手動操作車両)は環境100において、集合的に「エージェント」又は「他のエージェント」と呼ばれてもよいが、「エージェント」は車両に限定されず、人間又は動物を含んでもよい
【0088】
静的障害物C108は一次エージェント102(例えば、一次自律車両)が環境100内で横断するか、又はさもなければ稼働するであろう期間にわたって環境100内を移動しない障害物を表し、環境100内に、一次エージェント102(例えば、一次自律車両)が静的障害物C108と同じ空間を環境100内で占有することを試みる場合、一次エージェント102が静的障害物C108と衝突する可能性がある静的衝突領域を作成する。様々な実施形態では、図1に示すよりも少ないか、又は追加の静的障害物があってもよい。
【0089】
静的障害物に加えて、動的障害物104、112も存在することができ、これらは、何らかの軌道を動く障害物(例えば、料金所の旋回アーム、ガレージドア)、意識のある存在(conscious being)、例えば、自転車乗り、歩行者、運転手、パイロット)によって制御される障害物、及び他の自律車両又は他の自律ロボットの場合のような他の自律システムによって制御される障害物を含む。これらの動的障害物104、112による動作計画の課題には、非常に速い速さで動作計画を実行する能力と、動的障害物104、112がどのように動くかの不確実性を分析する能力とが含まれる。一次エージェント102(例えば、一次自律車両)を取り囲む環境100は急速に変化する場合があり、一次エージェント102が、これらの変化に追従するように動作計画を実行することが有利である。例えば、図1に示すように、動的障害物A 104(例えば、二次自律走行車)は、現在、一次エージェント102から離れる軌道110に沿って移動している。衝突は一般的には回避されるが、出願人は、動的障害物A 104を検査し、動的障害物A 104から情報を収集し、動的障害物A 104と情報を交換し、又は例えばゲームにおいて動的障害物A 104と衝突しさえするなどのために、一次エージェント102が動的障害物A 104(例えば、二次自律車両)を追跡する又は遮ることが望ましい場合があることを指摘しておく。
【0090】
反対に、図1に示すように、動的障害物B112は現在、一次エージェント102(例えば、一次自律型車両)に向かう軌道106に沿って移動している。典型的には一次エージェント102が衝突せずに目標目的地に到着する、そのような衝突による損傷を回避する、又は例えばゲームにおいて動的障害物B112との接触を避けるためなど、動的障害物B112との衝突を回避するか、又は近づくことを回避することが望ましい。一実装形態では、一次エージェント102の目標が例えば、一次エージェント102が動的障害物B112と衝突することなく目標の状態に達するように、動的障害物B112と衝突することのない時間を最大にすることである。一実装形態では、一次エージェント102の目標が動的障害物B112との衝突の確率を最小限に抑えながら、状態間を遷移することである。環境100内には図1に示すものよりも少ないか、又は追加の動的障害物があってもよく、また、環境100は場合によっては一次エージェント102の範囲に対応する境界を有してもよく、これは少なくとも部分的に、車両102に利用可能な現在の燃料又はエネルギー、又は乗員の快適性レベルに依存してもよい。
【0091】
図1は代表的な環境100を示しているが、典型的な環境は他の有人車両及び自律車両に対応する障害物、ならびに様々な他の自然又は人工の静的及び動的なオブジェクト及び障害物を含む、多くの追加のエージェントを含むことができる。本明細書で教示される概念は、例示されるものよりも多くが配置された(populated)環境で同様の様式で使用されてもよい。
【0092】
図2及び以下の議論は、様々な例示された動作計画システム及び方法が実施され得るプロセッサベースのコンピュータシステム200の形態の適切なモーションプランナ又は動作計画コントローラの簡潔で一般的な説明を提供する。
【0093】
必須ではないが、実装形態又は実施形態の多くは、非一時的なコンピュータ可読媒体又はプロセッサ可読媒体上に記憶され、1つ又は複数のコンピュータ又はプロセッサ(すなわち、回路構成(又は、回路要素/circuitry))及び衝突評価及び動作計画の運用(又は、稼働/operation)を実行することができる専用の車両動作計画ハードウェアによって実行される、プログラムアプリケーションモジュール、オブジェクト、又はマクロなどの、コンピュータ実行可能な又はプロセッサ実行可能な命令の一般的なコンテキストで説明される。
そのような動作計画の運用は、
計画ラティス(又は、計画格子/プラニングラティス/planning lattice)又は計画グラフ又はロードマップのエッジ上で衝突評価を実行すること、
衝突の確率を決定すること、
各遷移又はエッジと関連づけられたコストを、前記衝突評価及び、任意選択で衝突の重大度又は衝突の相対的優先順位を表すパラメータ化されたコスト関数に基づいて設定又は調整すること、
前記計画ラティス、計画グラフ又はロードマップ内の経路を、たとえば、計画ラティス、計画グラフ又はロードマップ内の状態間の最小コスト経路を見つけることによって、及び、任意選択で、一次エージェント(たとえば、一次自律車両)によって実行可能な動作計画の一部などを使用することによって、静的及び動的障害物との衝突を回避しながら、環境内の静的及び動的障害物との衝突の確率を最小限に抑えながら、又は衝突のコストを最小限に抑えながらの状態間の遷移を識別するために最適化を実行すること、
を含むことができる。
【0094】
本明細書で説明されるように、モーションプランナを介した動作計画は、典型的には衝突評価又は検出と、最小コスト経路の発見とを含む。衝突評価又は検出、最小コスト経路発見、又はその両方は例えば、1つ又は複数のマイクロプロセッサ又はフィールドプログラマブルゲートアレイ(FPGA)上に実装されることができ、有利には、容易な再構成可能性を可能にする。衝突の評価又は検出、最小コストの経路発見、又はその両方は例えば、1つ又は複数の特定用途向け集積回路(ASIC)上に実装されることができ、有利なことに、高速処理を可能にする一方で、依然としていくらかの再構成可能性を可能にする。いずれの実装も、例えば、有向境界ボックスとして表された一次エージェントの計算効率のよい表現を使用して、及び、例えば、境界ボックス、有向境界ボックス又は曲線として表された障害物の計算効率のよい表現を使用して、衝突評価を実行するようにそれぞれのハードウェア回路を有利に実装又は構成することができる。一次エージェントの軌道は事前に計算されてもよく、有利には、適合関数、例えば、運動方程式によって従来から表されている動きに適合した多項式関数として表されてもよい。この手法は衝突評価の計算負荷を有利に低減することができ、計算作業の一部を実行時からプレ実行時にシフトすることができる。
【0095】
一次エージェント(例えば、自律車両又は他のタイプのロボット)又は環境内の障害物(例えば、他の車両、人間又は動物の形態の動的障害物)を表す場合、環境を点群として表すことができ、それぞれのエージェント又は障害物をピクセル又は幾何学的オブジェクト(例えば、境界ボックス、有向境界ボックス、曲線、多角形のメッシュ)として表すことができる。本明細書で説明するように、本発明者らは一次エージェント(例えば、一次自律車両)及び/又は任意選択で1つ又は複数の障害物をボックス(例えば、直方体、平行六面体)として、例えば、サイズ、位置、及び向き(例えば、前方、向き)によって指定される二次元の有向境界ボックスとして表すことが計算上有利であり得ることを認識した。車両は典型的にはランダムに形作られておらず、2次元世界において容易に方向として表すことができる方向に移動するという事実のために、一次エージェント(例えば、一次自律車両)を表すために2次元の有向境界ボックスを採用することに有意な利点があり得る。同様に、特定の障害物(例えば、他の自律走行車両又は他の車両)は典型的にはランダムに形作られておらず、2次元世界において容易に方向として表すことができる方向に移動する。従って、少なくとも幾つかのタイプの障害物を表現するために2次元の有向境界ボックスを採用することにはかなりの計算上の利点があるかもしれない。特に、ボックスとして障害物(例えば、車両、物理的障害物、論理的間隔構築物)を表すことは、はるかに少ないビット(例えば、2次元の境界ボックスの2つの対向するコーナーのx、y座標のみ)を必要とし得る。また、2次元の境界ボックスについて交差テストを実行することは、他の表現(例えば、ボクセル表現)を使用するよりも計算集約的(computationally intensive)ではないことがあり、それによって、処理システムの運用を向上させる。加えて、又は代替的に、特定の障害物(例えば、中央線、車道標示、道路端)に対して、少なくとも幾つかのタイプの障害物を表現するために曲線を採用することに有意な計算上の利点があり得る。そのような曲線表現は様々な形態、例えば、bスプライン表現をとることができる。同じ概念を3次元世界に拡張することができる。例えば、ユークリッド距離フィールド、バイナリ空間分割木(バイナリ空間パーティションツリー又はBSP木/binary space partition tree)等のような、オブジェクト(例えば、車両、物理的障害物、論理的間隔構築物)の2次元及び3次元表面を表すために、様々なデータ構造を使用することができる。
【0096】
少なくとも1つの実装形態において、衝突評価は、一次エージェント及び障害物の比較的単純な幾何学的表現(例えば、境界ボックス、有向境界ボックス、曲線)に対して、例えば、適合された関数(例えば、適合された多項式関数)として表現される軌道の比較的単純な表現を用いて実行される。衝突評価は1つ又は複数のプロセッサ(例えば、マイクロプロセッサ、FPGA、ASIC)を介して実行されてもよい。
【0097】
様々な実装形態では、そのような運用が完全にハードウェア回路で、又はシステムメモリ214などのメモリストレージに格納されたソフトウェアとして実行され、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、グラフィックス処理ユニット(GPU)プロセッサ、プログラムドロジックコントローラ(PLC)、電気的プログラマブルリードオンリメモリ(EEPROM)などの1つ又は複数のハードウェアプロセッサ212aによって、又はハードウェア回路及びメモリストレージに格納されたソフトウェアの組合せとして実行され得る。例えば、計画ラティス内の最短経路を見つけることによって、環境内のオブジェクトとの衝突を回避するか、又は衝突を引き起こすと計画ラティス内の経路を識別するために最適化を実行することは、最小コスト経路最適化器(又は、最小コスト経路オプティマイザ)292によって実行されてもよい。一例では、最小コスト経路最適化器292がハードウェアで実装される場合、計画グラフのトポロジは最短経路の迅速な決定を可能にするために、ハードウェアユニットの再構成可能なファブリックにもマッピングされ得る。様々なソルバーを使用することができる。このマッピングは、各物理ノードをその論理的な隣(neighbor)のアドレスとエッジの重みでプログラミングすることを含む。これにより、アーキテクチャをさまざまな計画グラフトポロジに再構成できるようになる。他の実装は、FPGA上に実装されたミニプロセッサを使用することができる。
【0098】
代替の実装では衝突評価が、2017年6月9日に出願された国際特許出願第PCT/US2017/036880号(名称「自律車両のための動作計画及び再構成可能な動作計画プロセッサ」)、及び2016年1月5日に出願された国際特許出願第WO 2016/122840号(名称「特殊化されたロボット動作計画ハードウェアならびにその製造及び使用方法」)に記載されている、再構成可能な衝突検出アーキテクチャ及び他の実施形態などの特殊化された動作計画ハードウェアによって、車両102のための、結果として得られる計画ラティスのエッジのそれぞれに対して並列に実行することができる。例えば、そのような特殊化された動作計画ハードウェアの全部又は一部は、モーションプランナ280及び/又は衝突アセッサ(又は、評価機/asessor)288に組み込まれるか、それらの一部でありうる。また、知覚、計画ラティスの構築、衝突検出、各エッジ又は遷移に関連するコストの設定又は調整、及び経路探索の様々な関連態様の実装は、2017年6月9日に出願された国際特許出願第PCT/US2017/036880号(名称「自律車両のための動作計画及び再構成可能な動作計画プロセッサ」)、2018年8月23日出願の米国特許出願第62/722,067号(名称「ロボティクスのための動作計画に有用な衝突検出」)及び2016年1月5日出願の国際特許出願公開第WO2016/122840号(名称「特殊化されたロボット動作計画ハードウェアならびにその製造及び使用方法」)にも記載されている。当業者は、図示された実施形態、ならびに他の実装形態がロボット、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベース又はプログラマブル家庭用電化製品、パーソナルコンピュータ(「PC」)、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどのものを含む、他のシステム構成及び/又は他のコンピューティングシステム構成で実践され得ることを理解するであろう。これらの実装又はその一部(例えば、設計時(又は、計画時)、構成時、事前実行時)は、タスク又はモジュールが通信ネットワークを介してリンクされた遠隔処理装置によって実行される分散コンピューティング環境で実践することができる。分散コンピューティング環境では、プログラムモジュールがローカル及びリモートのメモリ記憶装置又はメディアの両方に配置されてもよい。しかしながら、一次エージェント102(例えば、一次自律車両)のための効率的な計算能力を有することは、その一次エージェント102が、変化する環境にリアルタイムで応答することを可能にするために重要である。この問題に対して一般的に展開される解決策は、パフォーマンスとパワーの両方の面で失敗する。それらは、高自由度の車両及び他のロボットが環境にリアルタイムで応答することを可能にするには遅すぎ、いくつかのCPU又はGPUに電力を供給することでシステムに負担をかける可能性がある。この問題を解決するために、図2の実装例に示すコンピュータシステム200は一次エージェント102(例えば、一次自律車両)に搭載され、一次エージェント及び障害物の比較的単純な幾何学的表現を使用し、オプションで、適合関数として表される軌道を使用する衝突アセッサ288を有するモーションプランナ280を含み、その適合関数は、構成時又は事前実行時の間に有利には決定又は計算され、外部ソースから一次エージェントに提供され得る。衝突検出は、FPGA290のような、完全にリターゲタブル(retargetable)である衝突検出マイクロアーキテクチャを使用して実行されてもよい。しかし、プログラマブル論理回路又はブロックのアレイ及び再構成可能な相互接続の階層を含む他のプログラマブル衝突検出マイクロアーキテクチャを、ASICアーキテクチャ、又は1つ又は複数のコアを有する1つ又は複数のマイクロプロセッサなどの様々な代替実装で使用することができる。プログラミングフェーズを通して、適合関数として表される軌道を適用することができる。衝突アセッサ288は特定のオブジェクトとの衝突回避を達成し、及び/又は特定のオブジェクトとの衝突を達成しようと努めることができる。衝突アセッサ288として再構成可能なプロセッサを使用することは、設計が単一の車両/ラティス対に完全に特化されるという制限を効果的に排除する。最小コスト経路最適化器292は例えば、分散ベルマン・フォード戦略を使用して、最小コスト経路の高速計算を可能にする。また、モーションプランナ280はそれぞれのエッジに関連する潜在的な衝突の重大度又は認識された重大度に基づいて、さまざまなエッジに関連する値(例えば、コスト)を設定又は調整する、重大度コスト調整器289を含んでもよい。本明細書に詳述されるように、重大度コスト調整器289は複数の衝突重大度代表パラメータ及びそれらのパラメータに対する重みに基づいて、衝突の重大度を表す値(例えば、コスト)を決定するために、パラメトリック方程式を採用してもよい。パラメータは例えば、障害物のタイプ、衝突のタイプ、衝突の速さ、及び/又は衝突によって消散するエネルギーを表すことができる。
【0099】
上述したように、いくつかの前処理アクティビティ(例えば、そうでなければ解くのが比較的計算上困難な運動方程式によって記載される軌道に対する適合関数の決定)は、実行時の前に実行することができ、したがって、いくつかの実装ではこれらの運用をネットワークインターフェース260を介して通信ネットワークを介してシステム200にリンクされたリモート処理デバイスによって実行することができる。例えば、プログラミングフェーズは関心のある問題(例えば、所与の自律車両に対するラティスの各エッジに対する遷移)に対するプロセッサの構成を可能にする。このような実装では、実行時の計算を避けるために、広範な前処理が利用される。ラティス内のエッジによって表される1つの状態から別の状態へのラティス内の遷移を行うときの、一次エージェント102の軌道(例えば、三角関数なしの適合関数)に関する予め計算されたデータは、モーションプランナ280の衝突アセッサ288に送られる。そのラティスのトポロジはまた、最小コスト経路の迅速な決定を可能にするために、FPGA290のような計算回路又はユニットの再構成可能なファブリック上にマッピングされてもよい。マッピングは、計算回路の再構成可能なファブリックの各物理ノードを、その論理的な隣のアドレス及びエッジの重みでプログラミングすることを含む。これにより、アーキテクチャを異なるラティストポロジに向けることができる。実行時フェーズの間、センサ282は知覚データ(例えば、点群)をモーションプランナ280に送信する。知覚データは現在の環境に存在するエージェント及び/又は障害物を表す単純化された幾何学的表現(例えば、境界ボックス、有向境界ボックス、曲線)に変換されてもよい。衝突アセッサ288はどの動きが衝突を伴う可能性があり、どの動きが衝突を伴わない可能性があるかを計算し、複数のエッジのそれぞれに関連するコストを更新又は設定し、完了すると、その結果は、最小コスト経路最適化器292によって使用されて、最小コスト経路が決定される。これは、有利にはセンサ282又は他の外部構成要素とのさらなる通信なしに行われてもよい。
【0100】
モーションプランナ280は環境内の特定の障害物との衝突を回避又は探索するために、車両102の目標に応じて、その環境に基づいて実行(又は、ランタイム/runtime)中にそれに応じてラティスのエッジに関連するコストを修正する。本明細書で説明するように、コストは、衝突の重大度を反映することもできる。次いで、モーションプランナ280は実行し、結果として生じる経路を、アクチュエータシステム又はトランスミッション(例えば、電気モータ及び駆動列、推進機構、エンジン)266に戻す。
【0101】
図2はモーションプランナ280と、システムメモリ214及びディスクドライブ224に関連するコンピュータ可読媒体226などの1つ又は複数の関連する非一時的な機械可読記憶媒体とを含む、一次エージェント102(例えば、自律車両)のためのもののようなコンピュータシステム200を示す。システムメモリ214及びディスクドライブ224に関連するコンピュータ可読媒体226を含む、関連する非一時的なコンピュータ又はプロセッサ可読記憶媒体は、システムバス216などの1つ又は複数の通信チャネルを介してモーションプランナ280に通信可能に結合される。システムバス216は、メモリ・コントローラを備えたメモリバス、周辺バス、及び/又はローカルバスを含む、任意の既知のバス構造又はアーキテクチャを採用することができる。1つ又は複数のセンサ282、1つのオブジェクト検出器284、1つのオブジェクト挙動予測器286及び1つのアクチュエータシステム266も、システムバス216を介してモーションプランナ280に通信可能に結合される。1つ又は複数のこのような構成要素は、また、又は代わりに、一つ又は複数のパラレルケーブル、シリアルケーブル、又は例えば、ユニバーサルシリアルバス(USB)3.0、周辺機器構成要素相互接続エクスプレス(又は、PCIエクスプレス/PCIe)又はThunderbolt(登録商標)のような、高速通信が可能なワイヤレスネットワークチャネルのような、一つ又は複数の他の通信チャネルを介して、互いに通信することも可能である。
【0102】
コンピュータシステム200はネットワークインターフェース260を介してコンピュータシステム200の様々な構成要素に直接通信可能に結合された、又は間接的に通信可能に結合されたリモート・システム、例えば、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ウルトラポータブル・コンピュータ、タブレット・コンピュータ、スマートフォン、ウェアラブル・コンピュータ(図示せず)にも通信可能に結合することができる。実装形態において、コンピュータシステム200自体、又はその一部がリモートであってもよい。このようなリモート・システムは、コンピュータシステム200及びコンピュータシステム200内の様々な構成要素をプログラミング、構成、制御、又はそうでなければこれらとのインターフェース接続又はこれらへのデータ入力のために使用されることができる。このような接続はインターネットプロトコルを使用する1つ又は複数の通信チャネル、例えば、インターネットのような1つ又は複数の広域ネットワーク(WAN)を介してもよい。上述のように、プレ実行時の計算(例えば、初期ラティス生成)は一次エージェント102又は他のタイプのロボットとは別個のシステムによって実行され得る一方で、システムがリアルタイム又はほぼリアルタイム(マイクロ秒)で、及び変化する運用環境100に反応するように車両速度(velocity)を更新又は変更することができることが重要であるため、実行時の計算は一次エージェント102上で実行され得る。
【0103】
図2に示される様々なブロックの構築及び運用のいくつかの態様は、2017年6月9日に出願された国際特許出願第PCT/US2017/036880号(名称「自律車両のための動作計画及び再構成可能な動作計画プロセッサ」)、2018年8月23日に出願された米国特許出願第62/722,067号(名称「ロボティクスのための動作計画に有用な衝突検出」)及び、及び/又は2016年1月5日に出願された国際特許出願公開第WO2016/122840号(名称「特殊化されたロボット動作計画ハードウェアならびにその製造及び使用方法」)に記載されている。その結果、そのようなブロックは参照により本明細書に組み込まれる参考文献を考慮して、当業者によって理解されるであろうから、さらに詳細に説明される必要はない。
【0104】
コンピュータシステム200は、1つ又は複数のプロセッサ212a、212b(まとめて212)、システムメモリ214、及びシステムメモリ214を含む様々なシステム・コンポーネントをプロセッサ212に結合するシステムバス216を含むことができる。プロセッサ212は、1つ又は複数の中央処理装置(CPU)212a、デジタル信号プロセッサ(DSP)212b、グラフィカル処理装置(GPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プログラマブル論理コントローラ(PLC)などの任意の論理処理装置とすることができる。このようなASIC及びFPGAは衝突アセッサ288のFPGA290の代わりに、又はそれに加えて使用されて、一次エージェント102のための計画グラフのエッジ上で衝突評価を実行することができる。再構成可能な衝突検出アーキテクチャハードウェアは例えば、FPGA290とすることができる。しかしながら、プログラマブル論理ブロックのアレイ及び再構成可能な相互接続の階層を含む他のプログラマブル衝突検出マイクロアーキテクチャを、ASICアーキテクチャなどの様々な代替実施形態で使用することができる。
【0105】
システムメモリ214は読み出し専用メモリ(ROM)218及びランダムアクセスメモリ(RAM)220を含むことができる。ROM218の一部を形成することができる基本入出力システム(BIOS)222は、スタートアップの間など、コンピュータシステム200内の要素間で情報を転送するのに役立つ基本ルーチンを含む。
【0106】
コンピュータシステム200はディスクドライブ224を含むことができ、これは、例えば、ハード・ディスクから読み書きするためのハードディスクドライブ、フラッシュ・メモリ・デバイスから読み書きするためのフラッシュ・メモリ・ドライブ、リムーバブル光ディスクから読み書きするための光ディスクドライブ、又は磁気ディスクから読み書きするための磁気ディスクドライブとすることができる。コンピュータシステム200は、様々な異なる実施形態において、そのようなディスクドライブの任意の組合せを含むこともできる。ディスクドライブ224は、システムバス216を介して処理ユニット212と通信することができる。ディスクドライブ224は当業者に知られているように、そのようなドライブとシステムバス216との間に結合されたインターフェース又はコントローラ(図示せず)を含むことができる。ディスクドライブ224及びそれに関連するコンピュータ可読媒体226は、コンピュータ可読命令、データ構造、プログラムモジュール、及びコンピュータシステム200のための他のデータの不揮発性記憶装置を提供する。当業者は、WORMドライブ、RAIDドライブ、磁気カセット、デジタルビデオディスク(「DVD」)、ベルヌーイカートリッジ、RAM、ROM、スマートカードなど、コンピュータによってアクセス可能なデータを記憶することができる他のタイプのコンピュータ可読媒体を使用することができることを理解するであろう。
【0107】
オペレーティングシステム236、1つ又は複数のアプリケーションプログラム238、他のプログラム又はモジュール240、プログラムデータ242などのプログラムモジュールは、システムメモリ214に記憶することができる。アプリケーションプログラム238はプロセッサ212に、環境100に対応する計画ラティスのエッジ上で衝突評価を実行させる命令を含むことができる。例えば、アプリケーションプログラム238はモーションプランナ280に、衝突アセッサ288を使用させて、車両102の結果として得られる計画ラティスの1つ又は複数のエッジのそれぞれに対して衝突評価を実行させる1つ又は複数の機械可読命令を含むことができる。
【0108】
アプリケーションプログラム238はプロセッサ212に、各エッジに関連するコストを決定させ、設定させ又は調整させる命令を含むことができる。そのコストは計画ラティスの各エッジに対する衝突の確率を表すことができ、及び/又は、例えば、パラメータ化されたコスト関数(例えば、パラメータ化された重大度コスト関数)を介して決定された衝突又は衝突優先順位付けコストの重大度を表すことができ、任意選択で、固有のコスト(例えば、燃料、範囲、乗客の快適さ)を表すことができる。その命令はプロセッサ212に、衝突の確率を決定させ、各エッジにそれぞれのコストを割り当てるか、又は設定させることができる。その命令はプロセッサ212に、例えばパラメータ化されたコスト関数に基づいて、衝突の重大度を表すコスト又は衝突の順位付けされた優先度を決定させ、それに応じて各エッジのコストを調整させることができる。アプリケーションプログラム238は例えば、計画ラティスについて、一次エージェント102が運用される環境100内の1つ又は複数の動的障害物(104、112)との衝突の確率の評価に少なくとも部分的に基づいて、プロセッサ212に、衝突評価を少なくとも部分的に反映する、及び/又はその計画ラティスの各エッジによって表される遷移に関連する任意の所与の潜在的衝突に関連するパラメータ化されたコストを少なくとも部分的に反映する、各エッジに対する重み又はコストを決定させ又は設定させる、1つ又は複数の機械可読命令を含むことができる。
【0109】
アプリケーションプログラム238は、環境100内の障害物(例えば、動的オブジェクトB112)との衝突を回避又は誘導するための計画ラティス内の経路内の経路を識別するための最適化をプロセッサ212に実行させる命令を含むことができる。計画ラティス内の経路を識別するための最適化は、その計画ラティス内の最小コスト経路を見つけることを含み得る。
【0110】
アプリケーションプログラム238は、プロセッサ212に信号をアクチュエータシステム266に送信させて、車両102に動作計画を実施させ、アクチュエータ(例えば、電気モータ、ソレノイド、エンジン)を本明細書に記載の動作計画に従って動かす命令を含むことができる。
【0111】
アプリケーションプログラム238はプロセッサ212に、一次エージェント102(例えば、一次自律車両)が稼働する環境100を表す知覚情報をセンサ282から受信させる1つ又は複数の機械可読命令をさらに含むことができる。アプリケーションプログラム238はプロセッサ212に、様々なエージェント及び/又は障害物のために使用する表現のタイプを選択又は決定させる、たとえば、いくつかの障害物のための有向境界ボックス表現及び他の障害物のための曲線を選択させる、1つ又は複数の機械可読命令をさらに含むことができる。アプリケーションプログラム238はプロセッサ212に、選択された又は決定された表現のタイプに従って、一次エージェント(例えば、自律車両)及び障害物を表現させる、1つ又は複数の機械可読命令をさらに含むことができる。
【0112】
アプリケーションプログラム238は本明細書及び参照により本明細書に組み込まれる参照文献に記載されるように、プロセッサ212に(センサ282を介して)知覚、計画ラティスの構築、衝突検出、コスト決定、コスト設定又は調整、及び経路探索の他の運用を実行させる1つ又は複数の機械可読命令をさらに含むことができる。
【0113】
例えば、アプリケーションプログラム238は、一次エージェント102(例えば、一次自律車両)が稼働する環境100を表す知覚情報をセンサ282を介してプロセッサ212に受信させ、モーションプランナ280に、衝突アセッサ288を用いて計画ラティスの1つ又は複数のエッジのそれぞれについて衝突評価を実行させ、計画ラティスの1つ又は複数のエッジのそれぞれについて、前記衝突評価に少なくとも部分的に基づいて、かつ考えられ得る衝突の重大度を表すパラメータ化されたコスト関数に部分的に基づいて衝突の確立に部分的に基づくコスト値を設定し、一次エージェント102が稼働する環境100内の1つ又は複数の動的障害物(例えば、動的オブジェクトB112)との重大な衝突の可能性が比較的低い経路によって指定されるような、車両102の移動の最長経路を提供する、結果として生じる計画ラティス内の経路を識別する最適化を実行し、一次エージェント102が前記最適化に少なくとも部分的に基づいて稼働する環境100内の1つ又は複数の動的オブジェクト(例えば、動的オブジェクトB112)との衝突の可能性が比較的低い動作計画を実施する、1つ又は複数のプロセッサ実行可能命令を含むことができる。
【0114】
アプリケーションプログラム238はプロセッサ212に、図6図9に示す方法を含むがこれに限定されない、本明細書で説明する様々な他の方法を実行させる1つ又は複数の機械可読命令をさらに含むことができる。
【0115】
図2にはシステムメモリ214に記憶されているように示されているが、オペレーティングシステム236、アプリケーションプログラム238、他のプログラム/モジュール240、及びプログラムデータ242はディスクドライブ224の関連するコンピュータ読み取り可能媒体226上に記憶されてもよい。
【0116】
プロセッサ212は、1つ又は複数の中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)などの任意の論理処理装置とすることができる。市販のコンピュータシステムの非限定的な例としては、米国Intel(登録商標)社が提供するマイクロプロセッサのCeleron, Core, Core 2, Itanium、Xeonファミリー、米国Advanced Micro Devicesが提供するK8、K10、Bulldozer及びBobcatシリーズのマイクロプロセッサ、米国アップルコンピュータが提供するA5、A6及びA7シリーズのマイクロプロセッサ、米国Qualcomm社が提供するSnapdragonシリーズのマイクロプロセッサ、米国Oracle 社が提供するSPARCシリーズのマイクロプロセッサなどがあるが、これらに限定されるものではない。
【0117】
図3は、例示的な一実装形態による、図1の稼働環境において、一次エージェント(例えば、一次自律車両)を運用するための動作計画を容易にすることができる、一次エージェント(例えば、一次自律車両)のオンボード(on-board)のプロセッサベースのシステム300aの様々な構成要素と、リモートのプロセッサベースのシステム300bとの間の、システム300における例示的なデータフローを示す。一次エージェント(例えば、一次自律車両)のオンボードのプロセッサベースのシステム300aは、プロセッサベースのシステム200(図2)の例と同様であるか、又はその例を組み込むことができる。リモートのプロセッサベースのシステム300bは、プロセッサベースのシステム200(図2)の例と同様であるか、又はその例を組み込むことができる。
【0118】
リモートのプロセッサベースのシステム300bは複数のエッジのそれぞれの軌道を表す適合関数を生成又は決定することができ、エッジは車両の状態間の遷移を表し、状態は、計画ラティス内のノードとして表される。遷移は従来、運動方程式を介して表されるが、運動方程式を使用して衝突を評価することは計算集約的である(例えば、三角関数を使用する)。少なくとも1つの実装形態では、プロセッサベースのシステムが複数の軌道のそれぞれについて、運動方程式に基づいて適合関数のセットを生成することができる。その適合関数は曲線として軌道を表すことができ、有利には、三角関数の包含を回避することができる。プロセッサベースのデバイスは例えば、実行時の前に発生する構成時中に、オフラインで適合関数(例えば、適合多項式関数)を決定することができる。プロセッサベースのデバイスは例えば、相手先商標製造業者(OEM)によって供給される情報(例えば、ホイールベース、回転半径)に基づいて適合関数を決定することができ、及びOEMによって決定又は生成されさえもし得る。適合関数の使用は、従来の運動方程式の使用よりも、衝突評価に対してより計算的に効率的なアプローチを提供し得る。
【0119】
一次エージェント102内に組み込まれるか、又は一次エージェント102と運用可能な通信状態にあるカメラ、レーザセンサ装置、オーディオセンサ等の1つ又は複数のセンサ282は知覚情報302を収集し、これを、環境100のモデル(例えばポイントクラウド(又は、点群/point cloud)を生成するためにオブジェクト検出器284に伝達する。オブジェクト検出器284は、環境100内の動的障害物A 104及び動的障害物B112などのエージェントの検出された運動に関する軌道情報を抽出し、そのような軌道情報308をオブジェクト挙動予測器286に伝達する。少なくとも部分的には、軌道情報308によって示されるような環境100内の動的障害物(104、112)の現在検出された軌道に基づいて、オブジェクト挙動予測器286は動的障害物(104、112)の1つ又は複数の予測軌道を生成し、予測軌道情報306の一部としてこの情報をモーションプランナ280に伝達する。例えば、軌道情報308が、動的障害物A 104が現在特定の方向に向かう軌道上にあることを示す場合、オブジェクト挙動予測器286は動的障害物A 104がその現在の軌道を継続する確率が40%であり、他の何かを行う確率が60%であることを予測することができる。
【0120】
様々な要因が、環境100内の動的障害物(104、112)の予測軌道のオブジェクト挙動予測器286の決定に影響を及ぼし得る。例えば、いくつかの実装形態では、動的障害物(104、112)が環境100内でのその将来の運動に影響を及ぼす目標を有することが示され、又は決定され得る。一例として、現在一次エージェント102から直接離れる軌道上にあることが検出された動的障害物A 104は、一次エージェント102から離れる(及び離れたままでいる)という目標を有することが示され、又は決定され得る。したがって、オブジェクト挙動予測器286は、動的障害物A 104の運動を予測するときにこれを考慮に入れることができる。一方、現在一次エージェント102に直接向かう軌道上にあることが検出された動的障害物B112は、一次エージェント102と衝突する目標を有することが示され、又は決定され得る。したがって、オブジェクト挙動予測器286は、動的障害物B112の運動を予測するときにこれを考慮に入れることができる。
【0121】
さらに、他の障害物(例えば、他のエージェント又は他の自律車両、人間、動物)の運動は、一次エージェント102の軌道の変化によって影響を受け得る。したがって、オブジェクト挙動予測器286は、動的障害物の予測軌道を決定するときに、一次エージェント102の現在の軌道の、計画されたが、まだ実施されていない、又は実行されていない変更を考慮に入れ、そのようなデータを、モーションプランナ280に提供される予測軌道情報306に含めることができる。例えば、現在一次エージェント102に直接向かう軌道上にあることが検出された動的障害物B112が一次エージェント102と衝突する目標を有することが示され、又は決定される場合、一次エージェント102がその軌道を変更する場合、動的障害物B112は、一次エージェント102を追跡するためにその軌道に対応する変更を行うことができると予測され得る。したがって、一次エージェント102が、(一次エージェント102と衝突しようと試みる)動的障害物B112と衝突することなく環境100内の目的地に到達することを目標とする場合、モーションプランナ280は、一次エージェント102が目的地に到達するためにその軌道を変更するときに、動的障害物B112が一次エージェント102を追跡するためにその軌道に対応する変更を行うことができることを考慮に入れて、動的障害物B112との衝突を回避するための、目的地までの経路を計画することができる。
【0122】
全体として、システムは環境100のモデルを生成するために、センサ282と、オブジェクト検出器284及びオブジェクト挙動予測器286によって実行される処理との組み合わせの使用によって、知覚を実行してもよい。一つの実装形態では、センサ282がデジタル表現、例えば、有向境界ボックス、占有グリッド、又は曲線を生成する。有向境界ボックスは方向と寸法(例えば、真っ向に対向する角(又は、対角線上で対向する角/diametrically opposed corner)の2点)を持つ平行六面体である。点群又は占有グリッドは、空間及び時間のどの領域が環境100などの環境の離散化された(discretize)ビュー内に障害物を含むかを表すデータ構造である。空間の各離散化領域は、2次元であれば「画素」と呼ばれる。3次元世界でのトランジット(又は、通路/遷移/transit)が2次元でのトランジット(例えば、通常の街路、道路及び/又は高速道路上の地上車両)として効率的に扱える場合、オブジェクトを2次元境界ボックス、例えば2次元有向境界ボックスとして表現することが有利である場合がある。三次元でのトランジットの場合には、オブジェクトを二次元ボックスよりむしろ三次元ボックス(長方形のプリズム)として表現する方が有利である場合がある。曲線は例えば、スプライン、b-スプライン、又は曲線の任意の他のパラメトリック表現として表すことができる。
【0123】
動的障害物A 104、動的障害物B112及び静的障害物C108(図1)を含む、環境内の障害物によって占められる空間のエリア又は領域は例えば、2次元境界ボックス、2次元有向境界ボックス、曲線表現によって表現されるデジタル表現によって表現される。1つ又は複数の動的障害物(例えば、動的障害物A 104及び動的障害物B112)のデジタル表現、ならびに関連する静的障害物の立体(又は、ボリュメトリック/volumetric)表現は、オブジェクト検出器284からモーションプランナ280に伝達される。障害物又はオブジェクトのデジタル表現の構築は、コンピュータビジョン及びセンシングの当業者が入手可能であり、その当業者に知られている膨大な数の公開された文献に記載されている。
【0124】
モーションプランナ280は動的及び静的障害物の表現を含む知覚データをオブジェクト検出器284から受け取り、予測軌道情報をオブジェクト挙動予測器から受け取る。次いで、モーションプランナ280は例えば、予測された軌道を説明するために、衝突評価に基づいて、また、任意選択で、衝突の重大度又は衝突のランク付けされた優先度を表すパラメータ化されたコスト関数に基づいて、計画ラティス内の各エッジに沿ってコスト値を調整し、コスト及び衝突の確率を考慮して経路を決定し、その経路をコンピューティングシステムに出力する。
【0125】
モーションプランナは、モーションプランナ280内の衝突アセッサ288の一部として、ハードウェアプロセッサ及びメモリ記憶装置を含むことができる。例えば、FPGA290又は他のプログラマブル論理ブロックのアレイは本明細書では「ロードマップ」とも呼ばれる計画ラティスを格納することができる(例えば、図4参照)。いくつかの実装形態では、モーションプランナ280が衝突検出を実行するために、FPGA290などのハードウェア衝突検出回路を含む。いくつかの実装形態では、モーションプランナ280が再構成可能な衝突検出アクセラレータを含む。一次エージェント102が稼働する環境に関するデータは、動作計画中に、おそらく動的障害物の予測軌道に関する情報を含む、知覚データが受信されると、その知覚データは衝突を評価するために衝突アセッサ288のハードウェアプロセッサによって比較されるように、モーションプランナ280の衝突アセッサ288のメモリ記憶装置に格納され得る。実行時操作(runtime operation)中、計画グラフのエッジには、1つ又は複数の変数に基づいて情報(例えば、コスト値)を割り当てることができる。例えば、一次エージェント102の目標が動的障害物A 104との衝突を回避することである場合、予測軌道情報306に従って動的障害物A 104がどこに向かうかの予測に基づいて、モーションプランナ280は、少なくともいくつかの実装では、衝突の確率又は尤度だけでなく、衝突の重大度(例えば、生命をもつ(animated)オブジェクトとの衝突よりも好ましい生命をもたないオブジェクトとの衝突、物理オブジェクトとの衝突よりも好ましい論理空間構築物(例えば、優遇領域)との衝突、より高速での衝突よりも好ましい低速での衝突、他の向きでの衝突よりも好ましい特定の向きでの衝突)を指定するパラメータ化されたコスト関数も考慮に入れて、動的障害物A 104との衝突のリスクを回避又は最小化するように、一次エージェント102の動作計画を生成する。パラメータ化されたコスト関数は有利なことに、OEM、オペレータ、又は最終用途(end use)が、パラメータ及び各パラメータの重みを指定することを可能にすることができる。
【0126】
これを行うために、衝突アセッサ288は、動的障害物A 104との衝突の尤度について、計画グラフ内のエッジのうちの少なくとも1つを評価する。環境100は一次エージェント102が稼働する二次元又は三次元の空間であり、図4に表される動作計画ラティスに関して以下で参照される一次エージェントの「構成(コンフィギュレーション)空間」とは異なることに留意されたい。一次エージェントの構成空間はその一次エージェントの状態を特徴付ける一次エージェント102のすべての構成の空間であり、典型的には、例えば、三次元を超える多次元空間である。図4に示す計画ラティス400のエッジは、一次エージェント102の構成間の遷移を表す。計画ラティス400のエッジは、デカルト座標における実際の運動を必ずしも表していない。また、計画ラティス400のエッジは、速度変化などを含み得る。
【0127】
計画ラティス400の各エッジは1つの状態から別の状態への一次エージェントの遷移を表し、それに関連する固有コスト(inherent cost)又は稼働コスト(operational cost)を有する。例えば、固有のコスト又は稼働コストは、燃料使用量、関連する行動を実行する時間、その行動に関連する摩耗及び破損、及び/又は他の要因に関連し得る。少なくともいくつかの実装形態では、各エッジには固有コスト又は稼働コストに対応する初期重みを割り当てることができる。
【0128】
システムは衝突評価に少なくとも部分的に基づいて、環境内の動的障害物(104、112)との衝突の確率を表すために、実行中にエッジのコストを設定又は調整する。システムは、その衝突の確率に少なくとも部分的に基づいて、各エッジの初期割り当て重みを修正することによって、コストの調整を実行することができる。例えば、システムは修正された重みを得るために、各エッジにコスト関数を適用して、そのエッジに対する初期重み(すなわち、固有コストに対応する重み)に基づく数学的演算を実行してもよい。これは、衝突の確率に基づいて初期割り当て重みに追加の重みを加えることによって、初期割り当て重みに衝突要素の確率を乗算することによって、又は衝突の確率及び固有コストに対応する初期重みを含む何らかの他の関数又は式を適用することによって行うことができる。
【0129】
エッジに割り当てられる固有コスト又は稼働コストは、オブジェクトとの衝突を回避すること、又はオブジェクトとの衝突を達成することの相対的な重要性及び/又は重大度を表すオブジェクト固有の(又は、オブジェクトに特有な/object-specific)コストを反映するように、実行中に調整することもできる。これらのオブジェクト固有のコストは固有コスト又は稼働コストとは無関係であり、衝突の確率とは無関係である。例えば、人間との衝突に関連するオクジェクト固有コストは、生命をもたないオブジェクトとの衝突に関連するオブジェクト固有コストよりも著しく高く設定することができる。
【0130】
少なくともいくつかの実装形態では、モーションプランナが有利にはパラメータ化されたコスト関数を使用して、各エッジのコスト値を生成することができる。そのパラメータ化されたコスト関数は、様々なパラメータ及び関連する重みを含むことができる。コスト関数のパラメータは例えば、衝突の重大度に関連するパラメータ、又は優先順位によって衝突をランク付けするパラメータを表すことができ、例えば、障害物固有又はオブジェクト固有のコスト(例えば、オブジェクトタイプ、例えば、人間対生命をもたないオブジェクト)、衝突固有のコスト(例えば、衝突タイプ、例えば、損傷をもたらすであろう物理オブジェクトとの衝突対損傷をもたらさない可能性がある道路標示又は優遇領域との衝突)、速さの表示又は衝突の重大度に及ぼす速さの影響(例えば、一次車両の絶対速さ、一次車両と障害物との間の相対速さ)、及び/又は消散エネルギー(すなわち、衝突によって消散するエネルギー)の表現を含む。少なくともいくつかの実装形態では、パラメータ及び/又は重みはOEMを介して選択又は割り当てられる。少なくともいくつかの実装形態では、パラメータ及び/又は重みは車両所有者又は自律車両の運用に責任を負う者を介して、あるいは政府当局又は保険業界標準組織によってさえ、選択又は割り当てられる。
【0131】
図4の説明を簡単にするために、各エッジの固有コストに対応するすべての初期重みはゼロに設定され、衝突の確率を示し、障害物固有又はオブジェクト固有のコスト、衝突固有のコスト、及び割り当てられた重みによって重み付けされた速さを表すためにパラメータ化されたコスト関数から生成されたコスト値を示す、追加のコストを加えることによって調整される。したがって、一次エージェント102の目標が環境内の動的オブジェクト(動的オブジェクトB112など)との衝突を回避することである一実装形態では、衝突のより高い確率がより大きい正の値を有する調整されたエッジ重みをもたらすことができる。人間を表す障害物との衝突は、生命をもたないオブジェクトとの衝突よりも、対応するエッジに割り当てられる正の値がより大きくなる可能性がある。損傷が生じる可能性が高い物理オブジェクト(例えば、壁)を表す障害物との衝突は、車道標示又は優遇領域又は他の間隔セットオフとの衝突よりも、対応するエッジに割り当てられる正の値がより大きくなる可能性がある。例えば、乗物が乗員又は貨物に害を与えることなく、特定の部分(例えば、折り畳み可能な(collapsible)ゾーン又は衝撃吸収帯(又は、クランプルゾーン/crumple zone))に沿ってエネルギーを吸収又は消散させる能力のために、特定の向きでの衝突は、他の向きよりも好ましい場合がある。同様に、損傷がより重大になりそうな、より高い絶対速さ又はより高い相対速さで発生する衝突は、重大な損傷が比較的起こりそうにない、より低い絶対速さ又はより低い相対速さでの衝突よりも、対応するエッジに割り当てられる正の値がより大きくなる可能性がある。同様に、より少ないエネルギーを消散する衝突は、他のすべてのパラメータが等しければ、より少ない損傷をもたらす可能性があるので、比較的より多くのエネルギーを消散する衝突よりも好ましい場合がある。いくつかの実装形態では、OEMが例えば、特定の車両タイプ(すなわち、メーク(又は、メーカー/make)及びモデル及び年)の試験に基づいて、いくつか又はすべてのパラメータ及び重みの値を提供することができる。
【0132】
計画ラティスのすべてのエッジ重みが調整されると、経路最適化器292は、計画ラティス内に示された一次エージェント102の現在位置から一次エージェント102の可能な次の状態又は目標状態への最小コスト経路アルゴリズムを実行する。次いで、計画ラティス内の最小コスト経路は、典型的にはモーションプランナ280によって選択される。
【0133】
経路最適化器292が計画ラティス内の経路を識別すると、モーションプランナはこの識別された経路310を、動作計画の実施を生じさせるための一次エージェント102の物理的な運動を生じさせる、一次エージェント102の様々なモータ又は移動システムへの対応する信号を生成するように、リアルタイムで一次エージェント102のアクチュエータシステム266に直ちに伝達する。
【0134】
図4は、一つの例示的な実装形態による、一次エージェント102の目標がその一次エージェントに近づいている図1の動的障害物B112との衝突を回避することである場合の、図1の一次エージェント102のための例示的な動作計画ラティス400、及び、一次エージェント102が動的障害物B112との衝突を回避するために計画ラティス400内で識別された例示的な経路412(ノード408aと408iを接続するラティス400の太線のエッジを含む)である。
【0135】
計画ラティス400は、それぞれ、エッジによって接続された複数のノードを含む。各ノードは、一次エージェントの構成空間における一次エージェント102の状態を特徴付ける時間及び変数を、暗黙的又は明示的に表す。一次エージェントの構成空間(しばしばC-空間と呼ばれる)は、この例では、一次エージェント102の状態を特徴付ける、計画ラティス400内に表される一次エージェントの構成の空間である。例えば、各ノードは一次エージェント102の構成を表すことができ、これは一次エージェント102の現在位置、姿勢(又は、ポーズ)、速度、及び方向を含むことができるが、これらに限定されない。いくつかの実装形態では、一次エージェント102の加速も計画ラティス400内のノードによって表される。
【0136】
計画ラティス400内のエッジは、一次エージェント102のこれらの構成間の遷移を表す。計画ラティス400のエッジは、デカルト座標における実際の運動を表さず、むしろC-空間における状態間の遷移を表す。例えば、各ノードは一次エージェント102の構成を表すことができ、これには一次エージェント102の現在位置、姿勢、速度及び方向、ならびに任意選択で加速度を含むことができるが、これらに限定されない。エッジは、これらの構成間の遷移を表す。計画ラティス400の各エッジは、ノードの各対の間の一次エージェント102の遷移を表す。例えば、エッジ410aは、2つのノード間における一次エージェント102の遷移を表す。特に、エッジ410aは、ノード408bに関連する特定の構成における一次エージェント102の状態と、ノード408cに関連する特定の構成における一次エージェント102の状態との間の遷移を表す。例えば、一次エージェント102は、現在、ノード408aに関連付けられた特定の構成にあり得る。ノードは互いに様々な距離で示されているが、これは例示の目的のためだけであり、これはいかなる物理的距離にも関係せず、計画ラティス400内のノードの数に制限はない。しかしながら、計画ラティス400で使用されるエッジ及びノードが多いほど、最小コスト経路を選択するより多くの経路が存在するので、モーションプランナ280は、一次エージェント102の目標に従って最適経路をより精密かつ正確に決定することができる。
【0137】
一次エージェント102が、動的障害物B112との衝突を回避するなど、動的障害物B112を回避することが望ましい場合がある。図4は、一次エージェント102の目標が動的障害物B112との衝突を回避するか、又は避けることである場合に、一次エージェント102の経路を識別するために、どのように計画ラティス400がモーションプランナ280によって使用されるかを示す。この時点で、モーションプランナ280は、一次エージェント102が稼働する環境100を表す知覚情報を受信している。
【0138】
1つの実装形態では、環境100がピクセル又はボックスの2次元領域に離散化される。障害物は例えば、境界ボックス、有向境界ボックス、又は曲線(例えば、スプライン)としてデジタル的に表されてもよく、デジタル表現はどれであっても、障害物のタイプ及び実行されることになる衝突検出(それ自体は使用される特定のハードウェア回路構成に依存し得る)のタイプに、最も適切である(又は、このデジタル表現は、障害物のタイプ及び実行されることになる衝突検出(それ自体は使用される特定のハードウェア回路構成に依存し得る)のタイプに対して最も適切なデジタル表現ある)。いくつかの実装形態では、一次エージェント102のラティス内の軌道が事前に計算される。衝突評価の例は、2017年6月9日に出願された国際特許出願第PCT/US2017/036880号(名称「自律車両のための動作計画及び再構成可能な動作計画プロセッサ」)、2018年8月23日に出願された米国特許出願第62/722,067号(名称「ロボティクスのための動作計画に有用な衝突検出」)、及び2016年1月5日に出願された国際特許出願公開第WO2016/122840号(名称「特殊化されたロボット動作計画ハードウェアならびにその製造及び使用方法」)に記載されている。
【0139】
上述したように、2次元におけるトランジットのための衝突検出は、ピクセル又は2次元地理的(又は、幾何学的)形状(例えば、2次元ボックス、2次元有向境界ボックス)又は他のデジタル表現(例えば、曲線)を使用して、動的障害物B112を含む環境内の障害物を表現してもよい。ピクセル又はボックスを使用して、一次エージェント102をモーションプランナ280に示すことができ、好ましくは、有向境界ボックスを使用して、車両を表すことができる。しかしながら、他のオブジェクト表現が使用されてもよいことが理解されるべきである。一実装形態では、環境が点群に離散化され、一次エージェント及び障害物は幾何学的オブジェクト(例えば、有向境界ボックス、曲線)又は他のデジタル表現として表される。次に、エッジに関連した軌道は、障害物の表現との衝突について評価される。軌道に沿った単一の点での衝突は、軌道全体、したがって対応するエッジを、衝突中であるか、又は比較的高い衝突の尤度を有するものとして識別するのに十分であり得る。
【0140】
動的障害物B112が環境100内を移動しているという事実により、モーションプランナ280は、また、動的障害物B112がどこに向かっているかの予測に基づいて、計画ラティス400内の2つ以上のエッジについて動的障害物B112と一次エージェント102との衝突評価を決定する。計画ラティス400のこれらのエッジのそれぞれに対して、モーションプランナ280は、少なくとも部分的にその衝突評価に基づいて、特定の将来の時点においての、動的障害物B112と一次エージェント102との衝突の確率を設定する。例えば、知覚情報にしたがって、動的障害物B112は、環境100内の特定の位置にあることが検出される。動的障害物B112の現在の軌道106に基づいて、モーションプランナ280は、動的障害物B112が環境100内の特定の位置にあるだろうと判断する。ノード間の直接的な遷移が動的障害物B112との衝突を引き起こす確率がある計画ラティス400内のノードについて、モーションプランナは、それらのノード(エッジ410a、410b、410c、410d、410e、410f、410g、410h、410i、410j、410k、410l、410m、410n、410o及び410p)間を遷移する、計画ラティス400のエッジに、動的障害物B112との衝突の確率を示す重みを割り当てる。図4に示される例ではこれはグラフ部分414として示されるが、物理的領域には対応しない。
【0141】
例えば、モーションプランナ280は、衝突の定義された閾値確率を上回る動的障害物B112との衝突のそれぞれの確率を有する計画ラティス400の複数のエッジのそれぞれについて、ゼロより大きい値を有する重みを割り当てることができる。この例では、モーションプランナ280が動的障害物B112の現在の軌道に従って、動的障害物B112との衝突の確率を全く有さない(又は、ほとんど有さない)計画ラティス400内のそれらのエッジにゼロの重みを割り当てている。次いで、モーションプランナ280は、衝突の定義された閾値確率を上回る環境100内の動的障害物B112との衝突のそれぞれの確率を有する計画ラティス400の複数のエッジのそれぞれについて、ゼロより大きい値を有する重みを割り当てる。この例では、モーションプランナ280が動的障害物B112の現在の軌道に従って、動的障害物B112との衝突の確率がより高い、計画ラティス400内のそれらのエッジに、ゼロより大きい重みを割り当てている。衝突の確率のために使用される特定の閾値は変化し得る。例えば、閾値は、衝突の40%、50%、60%又はより低い又はより高い確率であり得る。また、ゼロより大きい値を有する重みを割り当てることは、衝突のそれぞれの確率に対応するゼロより大きい大きさ(magnitude)を有する重みを割り当てることを含み得る。例えば、計画ラティス400に示されているように、モーションプランナは、より高い衝突の確率を有するエッジ410f及び410iに5の重みを割り当てているが、モーションプランナ280がはるかに低い衝突の確率を有すると決定したエッジ410p及び410gに1のより小さい大きさの重みを割り当てている。
【0142】
モーションプランナ280は例えば、衝突の重大度又は知覚される重大度を表すパラメータ化されたコスト関数に基づいて、各エッジの重みを割り当て、設定、又は調整することができる。パラメータ化されたコスト関数は、関連する重みを有する複数のパラメータから構成されてもよい。パラメータは例えば、障害物タイプ、衝突タイプ、及び速さを含むことができる。パラメータは、ブール値、バイナリ値、整数値、実数値、及び/又は他のタイプの値を有することができる。例えば、障害物タイプは障害物のタイプ(例えば、人、動物、人を伴う車両、人を伴わない自律車両、生命をもたないオブジェクト)、又は障害物のタイプにマッピングするそれぞれの値を表すことができる。人又は人の存在を表す障害物は、生命をもたない障害物よりも高い関連コストを有し得る。また、例えば、衝突タイプは衝突のタイプ(例えば、一次車両又は障害物に損傷を与えるか、又は与える可能性がある物理オブジェクトとの激しい衝突;損傷を生じないか、又は損傷を生じない可能性がある物理オブジェクト、又は他の車両又は車道標示の周りの優遇領域等の空間又はエリアを表す論理的構築物との柔らかい衝突;正面衝突、T字衝突(又は、Tボーン衝突/T-bone collision)、エアバッグ又は他の安全装置が作動する(又は、展開する)衝突、車両の比較的保護された部分が衝撃の矢面に立つ(bear the brunt of)衝突対車両の比較的保護されていない部分が衝撃の矢面に立つ衝突)、又は衝突のタイプにマッピングするそれぞれの値を表すことができる。例えば、多くの乗用車は、様々な種類の衝突又は激突(又は、クラッシュ)に対して評価され、格付けされる(又は、見積もられる/rate)。そのような格付けは、所与のタイプの衝突からの車両への予想される損傷を評価又は反映することができ、かつ/又は所与のタイプの衝突に対する車両の乗員の相対的な安全性を評価又は反映することができる。乗客を乗せていてもいなくてもよい自律車両を含む幾つかの車両は他のタイプの衝撃に対してあるタイプの衝撃に対して相対的に高い衝突等級(例えば、激突等級)を有する可能性がある。また、例えば、速さは一次車両の絶対速さ、障害物の絶対速さ、又は障害物に対する一次車両の相対速さ、又は表示又は絶対速さ又は相対速さ(例えば、低速、中速、高速)にマッピングするそれぞれの値を表すことができる。また、例えば、衝突の一部として消散することが予想されるエネルギーの量は速さの代わり、又は速さに加えた、パラメータであってもよい。消散されるエネルギーの量は、典型的には速さの関数である。重みは、例えば、パーセンテージ、分数、又は小数値の形をとることができ、合計で100%又は1とすることができる。
【0143】
モーションプランナ280が衝突評価に少なくとも部分的に基づいて、一次エージェント102と動的障害物B112との衝突の確率を設定した後、モーションプランナ280は、動的障害物B112との衝突の潜在性が比較的低い経路によって指定される一次エージェント102の進行(travel)経路を提供する、結果として得られる計画ラティス500内の経路512を識別する最適化を実行する。
【0144】
一実装形態では図4に示すように、計画ラティス400のすべてのエッジコストが割り当てられると、モーションプランナ280は目標ノードによって表される目標状態への、又は目標状態に向かう最小コスト経路を決定するための計算を実行することができる。例えば、モーションプランナ280は、計画ラティス400内の一次エージェント102の現在の状態から可能な最終状態への、最小コスト経路アルゴリズムを実行することができる。次に、計画ラティス400内の最小コスト(ゼロに最も近い)経路が、モーションプランナ280によって選択される。上で説明したように、コストは、衝突の確率だけでなく、衝突の重大度、ならびに他の要因も反映することができる。この例では計画ラティス400内の一次エージェント102の現在の状態がノード408aにあり、この経路は計画ラティス400内の経路412(ノード408aからノード408iを通って延びるセグメントを含む太線経路)として示されている。
【0145】
多くの鋭いターンを有する計画ラティス400内の経路として示されているが、そのようなターンは経路内の対応する物理的ターンを表すものではなく、一次エージェント102の状態間の論理的遷移を表す。例えば、識別された経路412内の各エッジは環境100内の一次エージェント102の物理的構成に関する状態変化を表すことができるが、必ずしも図4に示す経路412の角度に対応する一次エージェント102の方向の変化を表さない。
【0146】
ベルマン・フォードアルゴリズムを実施するものを含む、最小コスト経路を決定するための様々なプロセスが使用されてもよいが、最小コスト経路がその構成エッジのコスト又は重みの合計が最小化されるように、計画ラティス400内の2つのノード間の経路として決定される任意のそのようなプロセスを含む他のプロセスが使用されてもよいが、それに限定されない。このプロセスは計画ラティスと衝突検出を使用して、所望のオブジェクトと衝突する最良の経路を見つけるための効率と応答時間を増加させることにより、動的オブジェクト(104、112)との衝突のための一次エージェント、例えば自律車両に対する動作計画の技術を改善する。さらに、いくつかの実装形態は、一次エージェント102が稼働する環境内の1つ又は複数の障害物との衝突の潜在性が比較的高い一次エージェント102の経路を識別する同じプロセスを使用する。このような障害物との衝突が求められる場合には、モーションプランナ280は、環境100内の障害物との衝突の確率をそれぞれ有する計画ラティス400のエッジに対して、大きな負の値を有するコスト又は重みを割り当てることができる。このようにして、モーションプランナが最適化中に最小コスト経路を選択すると、そのような経路が選択される可能性が高くなる。障害物が静的であるような実装形態では、考慮する必要がある静的障害物の速度、軌道、又は加速度はない。
【0147】
このプロセスは計画ラティス及び衝突検出を使用して、動的オブジェクトとの衝突を回避するための最良の経路を見つけるための効率及び応答時間を増加させることにより、動的オブジェクトとの衝突を回避するための動作計画の技術を改善する。さらに、いくつかの実装形態は、一次エージェント102が稼働する環境内の1つ又は複数の静的オブジェクトとの衝突の可能性が比較的低い(たとえば、ゼロ)一次エージェント102の経路を識別する同じプロセスを使用する。このような静的障害物との衝突を回避すべき場合には、モーションプランナ280が環境100内の静的オブジェクトとの衝突の確率をそれぞれ有する計画ラティス400の複数のエッジの各々に対して、比較的高い値をコスト又は重みの値を割り当てる。このようにして、モーションプランナが最適化中に最小コスト経路を選択すると、エッジコストが比較的高い値に設定された経路は、そのエッジが横断された場合に障害物との衝突が起こるという不確実性がないので、回避される。しかしながら、そのような実装形態では、静的障害物との衝突が、例えば、静的障害物が生命をもたない又は道路標示又は空間優先(spacing preference)であり、他の障害物が人間である場合、又は他の障害物が一次エージェント又は一次車両に対して比較的高速で移動している場合等であって、衝突が深刻な悪影響をもたらすことが予想され得るような他の障害物との衝突よりも好ましい場合があり得る。
【0148】
いくつかの実装形態では、複数の他のエージェント、たとえば動的障害物(104、112)が存在し得る。そのような実装形態では、動的障害物(104、112)との衝突を回避するための一次エージェント102について本明細書に記載のプロセスが並行して(又は、同時に/concurrently)、同時に、又は互いに関連して実装することができる。例えば、いくつかの障害物は、衝突を回避すべき障害物として識別されてもよい。次いで、モーションプランナ280は、動的障害物及び静的障害物に対応する軌道及び知覚情報、ならびにそのようなオブジェクトが回避されるべきかどうか、及びある所与の速さでの障害物との衝突の相対的重大度を考慮に入れて、それに応じて本明細書に記載の最適化を実行する。そのような場合、衝突評価に基づいて計画ラティスのエッジに対する衝突の確率を設定することは、それに応じて衝突又は重大な衝突を回避するために、(例えば、初期コスト又は重みを修正/調整することによって)コスト又は重みを割り当てることを含む。
【0149】
モーションプランナ280は衝突の予測される重大度を示す様々なパラメータの評価を考慮して、一次エージェント102の全ルートに沿った動的障害物B112との衝突の潜在性が最も低い、結果として生じる計画ラティス400内の経路を特定するために、最適化を実行することができる。また、経路は、動的障害物B112の軌道106における変化又は予測される変化に基づいて特定されてもよい。動的障害物B112の軌道106における各変化又は予測される変化において、衝突評価及び最適化プロセスは、リアルタイム又はほぼリアルタイムで再び実行され得る。また、結果として得られる計画ラティス400は、一次エージェント及び/又は動的障害物の物理的制約又は性能制約、一次エージェント102の加速度、ピッチ、ロール、及びヨー、ならびにいくつかの実装形態では動的障害物B112のそれらを表すデータを有することができる。次に、経路を識別するための最適化は、このような変数に基づいて実行されてもよい。例えば、動的障害物B112のピッチ、ロール及び/又はヨーが変化する場合、これは、動的障害物B112の軌道の変化(又は、予測される変化の結果)を示すことができる。
【0150】
モーションプランナ280を、広範囲の自律車両及びロボット(付属物(単数又は複数)の有無にかかわらず)ならびに予想されるタスクシナリオのためにプログラムすることができる。モーションプランナ280を、異なる車両又はロボットのために再使用又は再プログラムすることができ、あるいはモーションプランナ280を、特定の車両又はロボットに対して設計することができる。ロボットの1つのタイプは、本明細書に記載の自律車両などの自律車両である。
【0151】
図5は一次エージェント102(例えば、自律車両)用の動作計画ラティス500の一例である。ラティス500内の各ノード(例えば、n、n、n・・・)はノードと一次エージェント102の目標(例えば、最終状態)との間のラティスのエッジ(例えば、c0,4、c0,5など)に関連するコストに基づいて、それぞれ関連する値(例えば、コスト、重み)を有することができる。本明細書で説明するように、コストは、衝突の重大度の表現と同様に、例えば、障害物のタイプ、衝突のタイプ、及び/又は衝突の速さ、又は衝突プロセス中に消散するエネルギーに基づいて、衝突の確率又は尤度を反映することができる。
【0152】
いくつかの実装形態では、静的バックグラウンド衝突検出を実行して、静的障害物(例えば、静的障害物C108)と衝突しているエッジを見つけることによって、ラティス500を初期化することができる。このようなケースでは、静的障害物との衝突をもたらすと決定されたエッジ(例えば、n14とn15との間のエッジ)にそれぞれのコストを割り当てる(又は、コスト関数を適用する)ことができ、その結果、そのエッジが比較的高いコストに関連付けられるか、又は割り当てられる。例えば、そのコストを10万に設定することにより、一次エージェント102の軌道が静的障害物と衝突すると識別されたエッジを含むことを効果的に抑止することができる。各エッジに割り当てられた、又は各エッジに関連付けられたコストはパラメータ化されたコスト関数に基づいて設定又は調整され得る。ここでパラメータ化されたコスト関数は、衝突の重大度又は認識された重大度、又は、優先度、衝突の様々な態様(パラメータとして表される)(例えば、障害物のタイプ、衝突のタイプ、衝突の速さ、又は消散エネルギー)の重み付け、及び本質的に、いくつかの衝突を他の衝突よりも好ましくないものとしてランク付けによる衝突の種類の格付けを表す。例えば、2つの衝突が発生する尤度が等しいときに、例えば、一方は人間又は人間の乗った車両との衝突を表し、他方は、生命をもたないオブジェクトとの衝突を表す場合には、一方は他方よりもはるかに高いコストを有することができる。同様に、コスト関数は、両方の衝突が発生する尤度が同じであっても、低い相対速さでの衝突よりも高い相対速さでの衝突に対して高いコスト値を返すことができる。
【0153】
いくつかの実装形態では、コスト値をエッジに割り当てるか、設定するか、又はさもなければ関連付けることは単一の行為で実行されてもよく、そのコスト値は衝突の評価された確率及び衝突の評価された重大度の両方を表す。したがって、いくつかの実装形態では、パラメータ化されたコスト関数が衝突の確率を表すパラメータと、任意選択で、衝突の確率が重大度関連パラメータに対してどれだけの影響を有するかを調整するためのそれぞれの重みとを含むことができる。他の実装形態ではそのエッジによって表される遷移に関連する衝突のそれぞれの確率を表すそれぞれのコストを各エッジに割り当てることができ、コスト値は衝突の重大度を表すコスト関数に基づいて調整又は精緻化することができる。いくつかの実装形態では、重大度を表すコスト値が衝突の確率を表す値と合計され得る。他の実装形態では、衝突の確率を表す値に、重大度を表すコスト値を乗算することができる。
【0154】
ラティス500の初期化の第2の態様では、目標へのコストが例えば、問題のノードから目標ノード(例えば、n15)への最小コスト経路に基づいて、ノードごとに決定される。例えば、ノードn13のコストは、n13とn16の間のエッジのコスト(c13,16)と、n16とn15の間のエッジのコスト(c16,15)によって決定されてもよい。
【0155】
図5に示されるラティス500を使用する一次エージェント102のための動作計画は、n(例えば、n)で示されるノードにおいて、時刻T=iで開始して実行されてもよい。上で説明したように、動作計画は、有利には一次エージェント102の環境100内の他のエージェント、たとえば動的障害物(104、112)の想定された又は推論された意図を考慮に入れることができる。想定された、又は推論された意図は例えば、確率関数に基づく挙動モデルを使用してサンプリングされて、それぞれのエージェントAに関する軌道tを生成し、その結果、軌道の集合Sが得られる。以下でさらに詳細に説明するように、最小コスト経路は、各軌道tがラティス500に個別に適用されるときに決定され、次いで、コストの平均化を実行することができる。これは、最小コスト経路が決定される前に、軌道の集合全体が動作計画ラティスに適用されるアプローチと対照的である。
【0156】
Sにおける軌道tごとに、動作計画ラティス500内の、もしあれば、どのエッジがその軌道と衝突するか、すなわち、どのエッジが、一次エージェント102が、軌道tに対応する別のエージェントと衝突する結果となるかについての決定が行われる。これらのエッジのコスト値は例えば、衝突に関連するコストを決定するコスト関数、例えば、衝突中のエッジに高い値が割り当てられることになる関数、及び比較的低い予測重大度衝突を伴う衝突中のエッジよりも比較的高い予測重大度衝突結果を伴う衝突中のエッジにさらに高い値が割り当てられることになる関数などを適用することによって修正される。
【0157】
ラティス500のエッジのコストは、軌道tに基づいて修正され、パラメトリックコスト関数(予測された重大度衝突結果又は評価を表すパラメトリックコスト関数)に基づいて任意選択に修正される。エッジのコストが修正された後、コストは候補ノードn’(すなわち、一回の時間ステップ(すなわち、時間T=i+1)で現在のノードn(例えばn)から到達可能なノード)の各々に対して計算される。候補ノードn’(例えば、n、n、n、n)のコストは、候補ノードn’を通過する現在のノードn(例えば、n)から目標(例えば、n15)までの最小コスト経路を発見することによって計算される。図5は、候補ノードn、n、n13、n16を通過するノードnから目標(ノードn15)までの第1の最小コスト経路(太線で表示)と、候補ノードn、n10、n14、n16を通過するノードnから目標までの第2の最小コスト経路(これも太線で表示)の例を示している。これらの例では、軌道tに対するノードnのコストは第1の経路に沿ったエッジ(例えば、c0,4、c4,9、c9,13、c13,16、c16,15)の合計になる。
【0158】
候補ノードn’のコストは、軌道の組(又は、セット)の各軌道(t,t,・・・t)に対し上記の方法で計算され、各軌道はエージェントA(j=1からm)に対応する。ここで、mは他のエージェントの数である。コストは各候補ノードn’の平均コストを提供するために、軌道の組にわたって平均化されてもよい。平均コストが最も低い候補ノードn’が、一次エージェントの次のノードとして選択される。したがって、時間T=i+1において、最も低い平均コストを有する候補ノードn’は、次の時間ステップT=i+2のための現在のノードnになる。これは、一次エージェント102が目標ノード(例えば、n15)に到達するまで、すなわち、目標ノードによって表される状態を達成するまで続く。
【0159】
図6は、少なくとも1つの例示の実装形態による、動作計画を実装するためのプロセッサベースのシステムにおける運用方法600を示す流れ図である。
【0160】
方法600は602で、例えば、呼び出しルーチンからの呼び出し又は起動(又は、呼び出し/invocation)に応答して、又はプロセッサベースのシステム又はその一部の始動時に、又は静的障害物、動的障害物、及び車両の状態を含む稼働環境を特徴付ける更新された情報の受信時に開始することができる。
【0161】
604において、プロセッサベースのシステムは、好ましくはそれぞれの有向境界ボックスとして、一次車両を表す。そうする際に、プロセッサベースのシステムはそれぞれの有向境界ボックスのパラメータ(例えば、コーナー、寸法、方向)を決定又は指定することができ、あるいは、車両を製造したエンティティ、例えば、相手先商標製造業者(OEM)から、及び/又はOEMのプロセッサベースのシステムから、車両のためのそれぞれの有向境界ボックスのパラメータを受信することができる。
【0162】
任意選択で、606において、プロセッサベースのシステムは1つ又は複数の動的障害物(たとえば、他の車両)をデジタル形式で表す。例えば、定義された形態又は形状を有する障害物、例えば車両は、有利にはそれぞれの有向境界ボックスとして表すことができる。これに加えて、又はこれに代えて、車両又は他の移動障害物を取り囲む優遇空間を、有向境界ボックスとして表すことができる。
【0163】
任意選択で、608において、プロセッサベースのシステムは1つ又は複数の静的障害物をデジタル形式で表す。例えば、定義された形態又は形状を有する障害物は、それぞれの有向境界ボックス、又は他の何らかのデジタル形態として表すことができる。
【0164】
任意選択で、610で、プロセッサベースのシステムは、1つ又は複数の静的障害物をそれぞれ曲線として表す。例えば、道路標示又は道路の端を曲線として表すことが有利である場合がある。例えば、道路の中央線、道路の端、道路の車道標示、又は道路の端のうちの任意の1つ又は複数は曲線(例えば、スプライン(例えば、b-スプライン)又は他のパラメトリック表現として表される)としてデジタル的に表すことができる。
【0165】
612において、プロセッサベースのシステムは、計画ラティスの複数のエッジの各々について繰り返すループ又は反復評価を実行することができる。
【0166】
ループ612の一部として、プロセッサベースのシステムは、614で有向境界ボックス衝突検出を実行して、有向境界ボックスによって表される一次車両が一対の状態間を遷移する際に障害物の表現と衝突するかどうかを判定する。これらの状態は、計画ラティスのそれぞれのエッジによって接続された一対のノードのそれぞれのノードによって表される。障害物は静的障害物(例えば、建物、道路標示、標示の有無にかかわらず道路の端)及び/又は動的障害物(例えば、他の車両又は他の動的障害物)の形態をとることができる。
【0167】
例えば、別の車両の形態の障害物がそれぞれの有向境界ボックスとして表される場合、システムは、有向境界ボックス-有向境界ボックス(oriented bounding box-oriented bounding box)衝突検出を実行して、一次車両を表すそれぞれの有向境界ボックスが、計画ラティスのそれぞれのエッジによって接続されるそれぞれのノードによって表される状態の対の間で遷移する際に他の車両のうちの少なくとも1つを表すそれぞれの有向境界ボックスと衝突するかどうかを判定することができる。
【0168】
また、例えば、歩行者の形態の障害物が有向境界ボックスとして表される場合、システムは、有向境界ボックス-有向境界ボックス衝突検出を実行して、一次車両を表すそれぞれの有向境界ボックスが、計画ラティスのそれぞれのエッジによって接続されるそれぞれのノードによって表される状態の対の間で遷移する際に少なくとも1人の歩行者を表すそれぞれの有向境界ボックスと衝突するかどうかを判定することができる。
【0169】
また、例えば、道路標示、中央分離帯、標示の有無にかかわらず道路の端の形態の障害物が曲線(例えば、スプライン、b-スプライン、多項式)として表される場合、システムは、有向境界ボックス-曲線衝突検出を実行して、一次車両を表すそれぞれの有向境界ボックスが、計画ラティスのそれぞれのエッジによって接続されるそれぞれのノードによって表される状態の対の間で遷移する際に道路標示、中央分離帯、道路の端を表す曲線と衝突するかどうかを判定することができる。
【0170】
本明細書においてより詳細に記載されるように、システムは、適合関数のセットが計画ラティスのそれぞれのエッジに対応する一次車両のそれぞれの軌道を表す、有向境界ボックス衝突検出を実行してもよい。少なくともいくつかの実装形態では、システムが複数の別個のハードウェア回路を介して有向境界ボックス衝突検出を実行することができる。
【0171】
616において、プロセッサベースのシステムは検出された衝突又はその不存在のうちの少なくとも1つを反映するように、計画ラティスのそれぞれのエッジのコストを設定する。検出された衝突又はその不存在のうちの少なくとも1つを反映するように、計画ラティスのそれぞれのエッジのコストを設定することは、衝突の検出を反映し、対応する衝突の重大度を反映するように、パラメータ化されたコスト関数に従って、計画ラティスのそれぞれのエッジのうちの1つ又は複数のコストを設定することを含むことができる。
【0172】
618において、プロセッサベースのシステムは終了条件、例えば、最後のエッジが満たされたか否かを決定する。例えば、プロセッサベースのシステムは各エッジが処理されたかどうか(例えば、各エッジによって表される遷移について衝突評価が行われたか)、又はタイムアウト条件が発生したかどうかを判定することができる。
【0173】
620において、プロセッサベースのシステムは、計画ラティスの最小コスト分析を実行する。例えば、プロセッサベースのシステムは、各エッジに論理的に関連付けられた、又は割り当てられたコストに基づいて様々な最小コストアルゴリズムのいずれかを使用して、計画ラティス内のノードによって表される状態間の最小コスト又は最良経路を見つけることができる。
【0174】
622において、プロセッサベースのシステムは、少なくとも部分的に最小コスト分析に基づいて、結果として得られる動作計画を一次車両によって実施する。例えば、プロセッサベースのシステムは、例えば1つ又は複数のモータコントローラにコマンドを送信することにより、最小コスト経路に基づいて、一次車両を状態間で遷移させるために、その一次車両の駆動システム又はトランスミッションにコマンドを提供してもよい。
【0175】
方法600は例えば、再び呼び出されるか、又は起動されるまで、624で終了してもよい。代替的に、方法600は例えば、一次車両が稼働している間、繰り返し又は連続的に実行することができる。
【0176】
図7は、少なくとも1つの例示の実装形態による、動作計画を実装するためのプロセッサベースのシステムにおける稼働方法700を示す流れ図である。
【0177】
方法700は、方法600を実行することの一部として、例えば、有向境界ボックス衝突検出614(図6)を実行すること、又は、動作計画622(図6)の実装を通じて他のタイプの衝突検出を実行することの一部として実行されてもよい。
【0178】
702において、プロセッサベースのシステムは、計画ラティスの複数のエッジの各々について繰り返してループ又は反復評価を実行することができる。
【0179】
ループ702の一部として、704において、プロセッサベースのシステムは適合関数のセット、例えば、適合多項式関数のセットとして、それぞれのエッジに対応する軌道を表す。
【0180】
例えば、プロセッサベースのシステムは一次車両のプロセッサベースのシステムにおいて、適合関数(例えば、適合多項式関数)のセットを構成システムから受信することができる。構成システムは、一次車両から離れて配置されてもよい。適合関数のセットは有利には一次車両が動いておらず、したがって適合関数のセットを展開することにリアルタイムの制約がない実行時の前の、構成時中に構成システムによって適合されていてもよい。その関数は、運動方程式によって定義される軌道に適合させることができる。適合関数は任意の三角関数を省略することができ、計算的に効率的な衝突評価を可能にする。それほど有利ではないが、一次車両のプロセッサベースのシステムは適合多項式関数のセットを作成又は生成することができる。
【0181】
ループ702の一部として、プロセッサベースのシステムは706において、一次車両の表現が他の車両又は他の障害物の1つ又は複数の表現と衝突するかどうかを判定するために、適合関数のセットを使用して衝突検出を実行する。
【0182】
システムは例えば、一対の適合多項式関数を使用して環境(例えば、現実の3次元世界において従来の通り及び高速道路を遷移する(又は、通過する/transit)車両)の2次元表現におけるトランジット(又は、遷移)のための衝突検出を実行してもよく、一対のうち一方の適合多項式関数は時間に関して第一の次元における位置を表し、一対のうち他方の適合多項式関数は時間に関して第二の次元における位置を表し、第二の次元は、第一の次元とは異なる。システムは例えば、一次車両が他の車両又は他の障害物と衝突するか否かを判定するために、一対の適合タイムパラメトリック関数を使用して衝突検出を実行することができる。システムは例えば、一次車両が他の車両又は他の障害物と衝突するか否かを判定するために、一対の適合タイムパラメトリック5次関数を使用して衝突検出を実行することができる。システムは例えば、一次車両のメーク及びモデルに固有であり、その一次車両の相手先商標製造業者によって提供される一対の適合関数を使用して衝突検出を実行することができる。システムは例えば、一次車両のメーク及びモデルに固有であり、その一次車両の相手先商標製品製造業者によって提供されるパラメータを有する一対の適合多項式関数を使用して衝突検出を実行することができる。システムは例えば、計画ラティスのそれぞれのエッジに対応する一次車両のそれぞれの軌道を表すために、適合関数のセットを使用して一次車両のそれぞれの軌道を表すことによって衝突検出を実行することができる。システムは例えば、複数の別個のハードウェア回路を介して衝突検出を実行することができる。
【0183】
708において、プロセッサベースのシステムは、計画ラティスのそれぞれのエッジによって接続されるそれぞれのノードによって表される状態の対の間で遷移する際に、判定された衝突又はその不存在のうちの少なくとも1つを反映するように、当該計画ラティスのそれぞれのエッジのコストを設定する。システムは例えば、衝突の検出を反映し、検出された衝突の重大度を反映するように、パラメータ化されたコスト関数に従って、計画ラティスのそれぞれのエッジのうちの1つ又は複数のコストを設定することができる。
【0184】
710において、プロセッサベースのシステムは、計画ラティスの最小コスト分析を実行する。例えば、プロセッサベースのシステムは、各エッジに論理的に関連付けられた、又は割り当てられたコストに基づいて、様々な最小コストアルゴリズムのいずれかを使用して、計画ラティス内のノードによって表される状態間の最小コスト又は最良経路を見つけることができる。
【0185】
712において、プロセッサベースのシステムは、少なくとも部分的に最小コスト分析に基づいて、結果として得られる動作計画を一次車両によって実施する。例えば、プロセッサベースのシステムは、例えば、1つ又は複数の電気モータ(例えば、牽引(マタハトラクション)モータ)を制御するために1つ又は複数のモータコントローラにコマンドを送信することにより、最小コスト経路に基づいて、一次車両を状態間で遷移させるために、その一次車両の駆動システム又はトランスミッションにコマンドを提供してもよい。
【0186】
図8は、少なくとも1つの例示の実装形態による、動作計画を実装するためのプロセッサベースのシステムにおける稼働方法800を示す流れ図である。
【0187】
方法800は、方法600、700を実行することの一部として、例えば、適合多項式702を使用して衝突検出を実行することの一部として実行されてもよい。方法800は実行時中に、例えば、一次車両の稼働中に実行されてもよい。
【0188】
802において、プロセッサベースのシステムはループを実行し、計画ラティスの複数のエッジの各々について、又は他の何らかの終了条件(例えば、最大時間量又は最大反復回数を超える)に達するまで反復する。
【0189】
804において、プロセッサベースのシステムは、それぞれのエッジが表す軌道によって表される動きに適合された適合多項式関数のセットを決定する。特に、それらの表現を扱うことが計算集約的でない場合には、当業者は軌道が多項式以外の形態で表されてもよいことを認識するであろう。従来、状態又は動きの間の遷移は、運動方程式を介して表すことができる。少なくともこの実装では、プロセッサベースのシステムが有利には動き又は遷移を適合多項式関数として表し、一次車両に搭載され、その一次車両のリアルタイム動作計画を実行する「オンボードの」プロセッサベースのシステムの計算性能を向上させる。
【0190】
例えば、適合多項式関数のセットを決定するために、プロセッサベースのシステムは、一次車両の動きを表す運動方程式のそれぞれのセットの形の、又はそれに従う軌道によって表される動きに多項式のセットを適合させることができる。例えば、プロセッサベースのシステムは一対の多項式関数を決定してもよく、一対の一方の多項式関数は時間に関して第一の次元における軌道に沿った位置を表し、一対の他方の多項式関数は時間に関して第二の次元における軌道に沿った位置を表し、第二の次元は、第一の次元とは異なる。また、例えば、プロセッサベースのシステムは、軌道を表す一対のタイムパラメトリック関数を決定することができる。例えば、プロセッサベースのシステムは、軌道を表す一対のタイムパラメトリック5次関数を決定することができる。また、例えば、プロセッサベースのシステムは、一次車両の相手先商標製造業者によって指定された一次車両のメーク及びモデルに固有である、一対の多項式関数を決定することができる。また、例えば、プロセッサベースのシステムは、一次車両のメーク及びモデルに固有のパラメータを有する、決定された一対の多項式関数をさらに、その一次車両が自律車両である一次車両のプロセッサベースの制御システムに提供することができる。
【0191】
いくつかの実装形態では一次エージェント又は車両102及び1つ又は複数の動的障害物(たとえば、他の車両)は相互依存する軌道を有することができる。動的障害物の軌道は、確率的にモデル化することができる(例えば、:X、及びX)。例えば、動的障害物(複数可)は、例えば衝突を回避しようとする試みにおいて、又は衝突しようとする試みにおいてさえ、一次車両102及び環境内のすべての動的障害物(互いを含む)の両方の運動に反応することができる。したがって、単純な軌道ではなく、潜在的な方針又は目標をモデル化するものとして車両又はエージェントの意図を扱う、各エージェントの行動モデルが開発される。潜在的な方針又は目標は、車両又はエージェントが他の車両又はエージェントの他の軌道にどのように反応するかを決定するためにサンプリングすることができる形態にある。一次車両又はエージェント102が現在時刻Tにノードnにあるとき、プロセッサベースのシステムは、他の車両又はエージェントが将来どこにあるかを決定しようと努める。他の車両又はエージェントの方針は始点ノードからノードnへの一次車両又はエージェントの経路に基づき、そして一次車両又はエージェントの行動及びすべての二次車両又はエージェントの行動に対する二次車両又はエージェントの確率的反応を考慮して、まず、現在時刻Tまで順方向にシミュレートされる。したがって、所与の二次車両又はエージェントの確率関数は、現時刻までの一次車両又はエージェント及び二次車両又はエージェントの行動の少なくともいくつかを表す。これは他の車両又はエージェントが現在時刻Tに占める空間を示す結果を生成する。これは現在時刻Tにおける別の車両又はエージェントの位置が現在時刻Tまでに他のすべての車両又はエージェント及び一次車両又はエージェント102がたどる軌道に依存するためである。
【0192】
806において、プロセッサベースのシステムは、動作計画において使用するための適合関数のセットを提供することができる。例えば、いくつかの実装形態では、例えばOEMによって実装される構成システムのプロセッサベースのシステムが一次車両のプロセッサベースのシステムに適合関数のセットを提供することができる。例えば、おそらく一次車両から離れた固定位置にあるサーバは、一次車両の一部であり、一次車両と共に移動するプロセッサベースのシステムに、適合関数のセットを提供することができる。そのようなものは、無線で、又は有線もしくは光ファイバを介して提供することができる。
【0193】
図9は、少なくとも1つの例示された実装形態による、動作計画を実装するためのプロセッサベースのシステムにおける稼働方法900を示す流れ図である。
【0194】
方法900は例えば、方法600(図6)、700(図7)、及び800(図8)のいずれかを実行することの一部として実行されてもよい。
【0195】
902において、プロセッサベースのシステムは、一次車両の表現が一対の状態間を遷移する際に障害物の表現と衝突するかどうかを判定するために衝突検出を実行する。それぞれの状態は、計画ラティスのそれぞれのエッジによって接続された一対のノードのそれぞれのノードによって表される。衝突検出を実行することは、複数の別個のハードウェア回路、複数のエッジの各エッジに対して1つのハードウェア回路、又は本明細書又は参照により本明細書に組み込まれる参照文献に記載される他のアプローチを介して衝突検出を実行することを含むことができる。
【0196】
904において、プロセッサベースのシステムは、i)衝突検出、及びii)特定の衝突に関連する衝突の重大度又は格付けを表すパラメータ化されたコスト関数に少なくとも部分的に基づいて、計画ラティスのそれぞれのエッジに関連するコストを設定する。特に、パラメータ化されたコスト関数は少なくとも2つ以上のパラメータ、例えば、障害物タイプ、衝突タイプ、及び車両速さ、又は消散するエネルギーに関連する値を、各タイプのパラメータの相対的な重み付けと共に表すことができる。
【0197】
障害物タイプは、衝突が起こり得る障害物のタイプを表すか、又は示すことができる。衝突タイプは、起こり得る衝突のタイプを表すか、又は示すことができる。車両速さは予測された衝突の直前(すなわち、衝突力が車両又は障害物を減速させ始める前)の少なくとも一次車両の速さを表すか、又は示すことができる。消散するエネルギーは予測された衝突の結果として消散するであろうエネルギーの推定値であり、これは速さの関数であろう。パラメータ化されたコスト関数は、車両速さに基づく衝突の重大度のレベルを表すことができる。したがって、それぞれのエッジに関連するコストを設定することは、有利には一次車両及び障害物の少なくとも一方又は両方の、車両速さに基づく重大度のレベルに少なくとも部分的に基づいてコストを設定することを含むことができる。
【0198】
障害物タイプは、障害物が生命をもつ障害物であるか、又は生命をもたない障害物であるかを示すことができる。それぞれのエッジに関連するコストを設定することは、障害物が生命をもつ障害物であるか生命をもたない障害物であるかに少なくとも部分的に基づいてコストを設定することを含む。
【0199】
衝突タイプは、衝突がその物理的障害物(例えば、別の車両、歩行者)又は一次車両のいずれかに損傷をもたらす物理的障害物との衝突であるか、又はその障害物(例えば、道路標示、優遇箱(又は、ボックス)、又は他の論理的間隔構築物)に損傷をもたらさないか、またもたらさないかもしれない障害物との衝突であるかどうかを示すことができる。衝突タイプは追加的又は代替的に、衝撃を与えられるであろう車両の一部(例えば、正面衝突、後部衝突(又は、後方衝突))又は衝撃の向き又は角度を示すことができる。それぞれのエッジに関連するコストを設定することは、衝突がその物理的障害物又は一次車両のいずれかに損傷をもたらす物理的障害物との衝突であるか、又は衝突がその障害物又は一次車両に損傷をもたらさないか、またもたらさない可能性が高い非物理的構築物又は物理的オブジェクトとの衝突であるかに少なくとも部分的に基づいてコストを設定することを含む。
【0200】
車両速さは、一次車両の速さ又は速度を表すか、又は示すことができる。速さは現実世界(例えば、2次元又は3次元の現実世界の基準フレーム(又は、参照系(reference frame))で表すことができる。それぞれのエッジに関連するコストを設定することは、現実世界の基準フレーム内の一次車両の速さに少なくとも部分的に基づいてコストを設定することを含む。車両速さは、障害物の速さに対する一次車両の速さ又は速度を表すか、又は示すことができる。それぞれのエッジに関連するコストを設定することは、障害物の速さに対する一次車両の速さに少なくとも部分的に基づいてコストを設定することを含むことができる。車両速さは、一次車両の速さと障害物の速さの両方を表すか、又は示すことができる。それぞれのエッジに関連するコストを設定することは、一次車両の速さと障害物の速さの両方に少なくとも部分的に基づいてコストを設定することを含むことができる。消散するエネルギーは衝突の一部として消散するであろうエネルギーの推定量を表すか、又は示すことができ、典型的には速さの関数である。
【0201】
コストを設定することは、ラティス内のエッジの各々に関連するコスト値を割り当てること又は調整することを含むことができる。そのコスト値はラティスの一部として、又はデータ構造、例えば、ラティスに関連するデータ構造、又はそのラティスを実装するデータ構造の一部として格納されてもよい。
【0202】
図5に関して先に議論したように、ラティス内の各ノード(例えばn、n、n・・・)は、ノードと一次エージェント102の目標(例えば最終状態)との間のラティスのエッジ(例えばc0,4、c0,5など)に関連するコストに基づく関連する値(すなわちコスト)を有する。ラティスのエッジに関連するコストはとりわけ、衝突の確率、衝突の重大度を表すパラメトリック関数、及び任意選択で、問題のエッジに沿った2つのノード間の移動に関連する固有のコスト(例えば、燃料コスト及び/又はエネルギーコスト)に基づいて決定される。実装形態では、目標へのコストが問題のノードから目標ノード(例えば、n15)までの最小コスト経路に基づいて、ノードごとに決定される。プロセッサベースのシステムは、一次エージェントの環境100内の他のエージェントAの軌道tを決定する。現在のノードn、すなわち、動作計画ラティス500内の一次エージェントの現在位置について、プロセッサベースのシステムは一組の軌道Sにわたる各候補ノードn’の平均コストを計算する。動作計画ラティス500内の一次エージェント102の状態(例えば、姿勢)はノードnから、最も低い平均コストを有する候補ノードn’に移動する。時間ステップがインクリメント(又は、増分)され、この方法が次の時間ステップで繰り返される。
【0203】
既知の軌道のセットにわたって平均化された各候補ノードのコストを計算することが有用であり得る。そのようにするためには、t=1からm(mは軌道の数)について、一組の軌道Sにおける各軌道tを考慮するためにループが開始される。プロセッサベースのシステムはもしあれば、動作計画ラティス500のどのエッジが軌道tと衝突するかを決定する。プロセッサベースのシステムはもしあれば、軌道tと衝突すると決定されたエッジの値にコスト関数を適用する。プロセッサベースシステムは、ノードnからそれぞれの候補ノードn’を通る目標への最小コスト経路に基づいて、各候補ノードn’のコストを決定する。軌道を特定するインデックスtがインクリメント(又は、増分)され、すべての軌道が処理されるまでこの方法が繰り返される。
【0204】
いくつかの実装形態では、1つ又は複数のプロセッサベースのシステムが計画ラティスを介して一次エージェント102の経路を識別する方法を実行することができ、その経路は一次エージェント102の目標までの計画経路と、他のエージェント(例えば、他の自律車両、他の車両、人間、動物)の確率的に決定された経路とを考慮に入れて、最も低い平均コストを有する候補ノードを通過する。プロセッサベースのシステムは、静的バックグラウンド衝突検出を実行することができる。プロセッサベースのシステムは、動作計画ラティスの各ノードについて目標に対するコストを計算することができる。エージェントの挙動モデルは例えば構成時(すなわち、プレ実行時)に、入力としてプロセッサベースシステムに提供されてもよい。実行時に、プロセッサベースのシステムは、確率モデルをサンプリングすることができる。その確率モデルは、それぞれのエージェントAに対して次のステップXを提供するか、又は一組の軌道を生成することができる。プロセッサベースのシステムは、現在のノードnから目標までの一次エージェント102の計画された経路と、他のエージェントの確率的に決定された経路とに基づいて、各候補ノードn’の値を計算することができる。一次エージェント102はその現在のノードnから、最も低い値(すなわち、コスト)を有する候補ノードn’に移動する。この方法は、次の時間ステップ、T=T+1で繰り返すことができる。
【0205】
プロセッサベースのシステムは、目標への一次エージェント102の計画された経路と、他のエージェントの確率的に決定された経路とに基づいて、各候補ノードの値を計算する方法を実行してもよい。例えば、プロセッサベースシステムは、一組の軌道に基づいて他のエージェントAのサンプリングされた次のステップXに基づいて、各候補ノードn’の値を決定することができる。次に、プロセッサベースのシステムは現在のノードnから、時間T+1で最小値を有する候補ノードn’への移動(move)に基づいて、一次エージェント102の次の計画位置を指定することができる。一次エージェント102が目標ノードにまだない場合、時間はインクリメントされ(又は、増分され)、この方法が次の時間ステップで繰り返される。
【0206】
プロセッサベースのシステムは、確率モデルSのセットに基づいて他のエージェントAのサンプリングされた次のステップXからのエッジ衝突コストに基づいて、次の時間ステップT+1における、各候補ノードn’の値を決定する方法を実行してもよい。例えば、プロセッサベースのシステムは、エージェント当たりのサンプル数に基づいて反復ループを開始することができる。プロセッサベースのシステムは、他のエージェントの数に基づいて反復ループを開始することができる。プロセッサベースシステムはモデルSのセットに基づいて、エージェントAの確率的次ステップXのk番目のサンプル(又は、標本)を決定することができる。次に、プロセッサベースシステムはもしあれば動作計画ラティスのどのエッジが時間T+1でエージェントAの決定された確率的次ステップXjと衝突するかを決定する。次に、プロセッサベースシステムはもしあれば時間T+1でエージェントAの確率的次ステップXと衝突すると決定されたエッジの値にコスト関数を適用する。他のエージェントに対する反復ループは、他のエージェントの全てが処理されるまで繰り返される。他のエージェントに対する反復ループがk回完了した後、サンプルに対する反復ループは、すべてのサンプルが完了するまで、すなわちp回反復する。
【0207】
上述したように、実装形態において、エージェントAの確率的挙動モデルは、それぞれのエージェントAの軌道が他のすべてのエージェントと一次エージェントの軌道に依存するという点で、相互依存する。したがって、すべてのエージェントAと一次エージェントの現在位置と過去の位置を確率的挙動モデルへの入力として提供し、それぞれのエージェントAの予測された次のステップXを決定する。そのようにする際、典型的には(又は、通常)、ウインドウや履歴、ルックバックには何らかの制限がある。したがって、プロセスの最も内側のループは、サンプリングが繰り返される前にすべてのエージェントAの予測された次のステップXを決定するループである。このようにして、すべてのサンプルは、すべてのエージェントAと一次エージェントの同じ現在位置に基づいて実行される。
【0208】
上記の詳細説明においては、装置及び/又は方法のさまざまな実施形態を、ブロック図、模式図及び実施例を使用して記載してきた。これらのブロック図、模式図及び実施例が1つ又は複数の機能及び/又は動作を含んでいる範囲で、当業者により、そのようなブロック図、流れ図又は実施例におけるそれぞれの機能及び/又は動作は個々に及び/又は集合的に、多様なハードウェア、ソフトウェア、ファームウェア、又は事実上任意のそれらの組み合わせによって実装され得ることが理解されるであろう。一実施形態では、本主題が特定用途向け集積回路(ASIC)及び/又はFPGAを介して実装され得る。しかしながら、本明細書に開示された実施形態は全体又は一部に、標準的な集積回路における様々な異なる実装形態において、1つ又は複数のコンピュータ上で実行される1つ又は複数のコンピュータプログラムとして(例えば、1つ又は複数のコンピュータシステム上で実行される1つ又は複数のプログラムとして)、1つ又は複数のコントローラ(例えば、マイクロコントローラ)上で実行される1つ又は複数のプログラムとして、1つ又は複数のプロセッサ(例えば、マイクロプロセッサ)上で実行される1つ又は複数のプログラムとして、ファームウェアとして、又は事実上任意のそれらの組合せとして実装すること、及び、回路を設計すること、及び/又はソフトウェア及び/又はファームウェアのためのコードを書くことは、本開示に照らして十分に当業者の技術の範囲内にあることを、当業者は認識するであろう。
【0209】
当業者は本明細書に記載された方法又はアルゴリズムの多くが、追加の行為を使用し、いくつかの行為を省略し、及び/又は指定された順序とは異なる順序で行為を実行し得ることを認識するであろう。
【0210】
さらに、当業者は、本明細書で教示されるメカニズムが様々な形態でプログラム製品として配布されることが可能であること、例示的な実施形態が配布(物)を実際に実行するために使用される信号担持(signal bearing)媒体の特定のタイプにかかわらず、等しく適用されることを理解するであろう。信号担持媒体の例にはハードディスクドライブ、CD-ROM、及びコンピュータメモリなどの記録可能タイプの媒体が含まれるが、これらに限定されない。
【0211】
上記の種々の実施形態は、更なる実施形態を提供するように組み合わされることが可能である。2018年1月12日に出願された米国特許出願第62/616,783号(名称「動的オブジェクトを有する環境における自立車両の動作計画を容易にするための装置、方法、及び物品」)、2017年6月9日に出願された国際特許出願第PCT/US2017/036880号(名称「自立車両のための動作計画及び再構成可能な動作計画プロセッサ」)、2016年1月5日に出願された国際公開第WO2016/122840号(名称「特殊化されたロボット動作計画ハードウェアならびにその製造及び使用方法」)、2018年8月23日出願の米国特許出願第62/722,067号(名称「ロボティクスのための動作計画に有用な衝突検出」)、2018年12月4日出願の米国特許出願第62/775,257号(名称「動的オブジェクトを有する環境における動作計画を容易にするための装置、方法、及び物品」)、2019年4月17日出願の米国特許出願第62/835,139号(名称「モーションプランニンググラフ生成ユーザーインターフェイス、システム、方法、及び物品」)、及び2019年6月3日出願の米国特許出願第62/856,548号(名称「動的障害物のある環境における動作計画を容易にするための装置、方法、及び物品」)を含むが限定されない、本明細書で言及され、及び/又は出願データシートに列挙された、すべての米国特許出願公開、米国特許出願、外国特許、及び外国特許出願は、それらの全体が参照により本明細書に組み込まれる。上記の詳細説明に照らして、これらの及び他の変更が実施形態に対して行われることが可能である。一般に、以下の特許請求の範囲において、使用される用語は特許請求の範囲を、明細書及び特許請求の範囲に開示される特定の実施形態に限定するように解釈されるべきではなく、そのような特許請求の範囲が権利を与えられる均等物の全範囲とともに、すべての可能な実施形態を含むように解釈されるべきである。したがって、特許請求の範囲は、本開示によって限定されない。
下記は、本願の出願当初に記載の発明である。
<請求項1>
各計画ラティスがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の他の車両及び他の障害物を含む環境で稼働する一次車両の状態を表し、各エッジが前記ノードのそれぞれのペアの間の遷移を表す、計画ラティスを介して動作計画を実行するための、プロセッサベースのシステムの運用における動作計画方法であって、前記方法は、
前記プロセッサベースのシステムによって、前記一次車両をそれぞれの有向境界ボックスとして表すステップと、
前記計画ラティスの複数の前記エッジのうちの少なくとも1つに対する、
前記プロセッサベースのシステムによって、有向境界ボックス衝突検出を実行して、前記有向境界ボックスによって表される前記一次車両が状態のペアの間で遷移する際に、他の車両又は他の障害物の表現と衝突するかどうかを判定するステップであって、前記ペアの状態は前記計画ラティスのそれぞれのエッジによって接続されるノードのペアのそれぞれのノードによって表される、該ステップと、
前記プロセッサベースのシステムによって、検出された衝突又はその不存在のうちの少なくとも1つを反映するように、計画ラティスの前記それぞれのエッジのコストを設定するステップと、を含む方法。
<請求項2>
さらに、前記プロセッサベースのシステムによって、前記他の車両の少なくとも1つをそれぞれの有向境界ボックスとして表すステップを含み、
有向境界ボックス衝突検出を実行するステップは、有向境界ボックス-有向境界ボックス衝突検出を実行して、前記一次車両を表す前記それぞれの有向境界ボックスが、前記計画ラティスの前記それぞれのエッジによって接続されるそれぞれのノードによって表される前記状態のペアの間で遷移する際に、前記他の車両のうちの少なくとも1つを表す前記それぞれの有向境界ボックスと衝突するかどうかを判定するステップを含む、請求項1に記載の動作計画方法。
<請求項3>
さらに、前記プロセッサベースのシステムによって、前記他の障害物の少なくとも1つをそれぞれの有向境界ボックスとして表すステップを含み、
有向境界ボックス衝突検出を実行するステップは、有向境界ボックス-有向境界ボックス衝突検出を実行して、前記一次車両を表す前記それぞれの有向境界ボックスが、前記計画ラティスの前記それぞれのエッジによって接続されるそれぞれのノードによって表される前記状態のペアの間を遷移する際に、前記他の障害物のうちの少なくとも1つを表す前記それぞれの有向境界ボックスと衝突するかどうかを判定するステップを含む、請求項1に記載の動作計画方法。
<請求項4>
さらに、前記プロセッサベースのシステムによって、少なくとも1つの他の障害物を曲線の表現として表すステップを含み、
有向境界ボックス衝突検出を実行して、それぞれの有向境界ボックスによって表される前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するステップは、有向境界ボックス曲線衝突検出を実行して、前記一次車両を表す前記それぞれの有向境界ボックスが、前記計画ラティスの前記それぞれのエッジによって接続されるそれぞれのノードによって表される前記状態のペアの間で遷移する際に、前記他の障害物のうちの前記少なくとも1つを表す前記曲線と衝突するかどうかを判定するステップを含む、請求項1に記載の動作計画方法。
<請求項5>
少なくとも1つの他の障害物を曲線の表現として表すステップは、道路の少なくとも1つの中央線、道路の端、又は道路の少なくとも1つの車道標示をスプライン表現として表すステップを含む、請求項4に記載の動作計画方法。
<請求項6>
有向境界ボックス衝突検出を実行するステップは、前記計画ラティスの前記それぞれのエッジに対応する前記一次車両のそれぞれの軌道を表すために適合関数のセットを使用して前記一次車両のそれぞれの軌道に沿った少なくとも1つの点のそれぞれで有向境界ボックス衝突検出を実行するステップを含む、請求項1~5のいずれかに記載の動作計画方法。
<請求項7>
有向境界ボックス衝突検出を実行するステップは、複数の別個のハードウェア回路を介して有向境界ボックス衝突検出を実行するステップを含む、請求項1~5のいずれかに記載の動作計画方法。
<請求項8>
前記検出された衝突又はその不存在のうちの少なくとも1つを反映するように、計画ラティスの前記それぞれのエッジのコストを設定するステップは、衝突の検出を反映し、前記検出された衝突の重大度を表す少なくとも1つのパラメータを反映するように、パラメータ化されたコスト関数に従って計画ラティスの前記それぞれのエッジのうちの1つ又は複数のコストを設定するステップを含む、請求項1~5のいずれかに記載の動作計画方法。
<請求項9>
さらに、
前記プロセッサベースのシステムによって、前記計画ラティスの最小コスト分析を実行するステップと、
前記プロセッサベースのシステムによって、少なくとも部分的に前記最小コスト分析に基づいて、結果として生じる前記一次車両による動作計画を実施するステップ、
を含む、請求項1~5のいずれかに記載の動作計画方法。
<請求項10>
各計画ラティスがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の他の車両及び他の障害物を含む環境で稼働する一次車両の状態を表し、各エッジが前記ノードのそれぞれのペアの間の遷移を表す、計画ラティスを介して動作計画を実行するプロセッサベースのシステムであって、
前記プロセッサベースのシステムは、
少なくとも1つのプロセッサ、
前記少なくとも1つのプロセッサに通信可能に結合され、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
前記一次車両をそれぞれの有向境界ボックスとして表すステップと、
前記計画ラティスの複数の前記エッジのうちの少なくとも1つに対する、
有向境界ボックス衝突検出を実行して、前記有向境界ボックスによって表される前記一次車両が状態のペアの間で遷移する際に、他の車両又は他の障害物の表現と衝突するかどうかを判定するステップであって、前記ペアの状態は前記計画ラティスのそれぞれのエッジによって接続されるノードのペアのそれぞれのノードによって表される、該ステップ、及び、
検出された衝突又はその不存在のうちの少なくとも1つを反映するように、計画ラティスの前記それぞれのエッジのコストを設定するステップ、
を実行させるプロセッサ実行可能命令を記憶する、少なくとも1つの非一時的プロセッサ読み取り可能媒体を含むプロセッサベースのシステム。
<請求項11>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサにさらに、
前記他の車両の少なくとも1つをそれぞれの有向境界ボックスとして表すステップを実行させ、
有向境界ボックス衝突検出を実行するステップは、有向境界ボックス-有向境界ボックス衝突検出を実行して、前記一次車両を表す前記それぞれの有向境界ボックスが、前記計画ラティスの前記それぞれのエッジによって接続されるそれぞれのノードによって表される前記状態のペアの間で遷移する際に、前記他の車両のうちの少なくとも1つを表す前記それぞれの有向境界ボックスと衝突するかどうかを判定するステップを含む、請求項10に記載のプロセッサベースのシステム。
<請求項12>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサにさらに、
前記他の障害物の少なくとも1つをそれぞれの有向境界ボックスとして表すステップを実行させ、
有向境界ボックス衝突検出を実行するステップは、有向境界ボックス-有向境界ボックス衝突検出を実行して、前記一次車両を表す前記それぞれの有向境界ボックスが、前記計画ラティスの前記それぞれのエッジによって接続されるそれぞれのノードによって表される前記状態のペアの間を遷移する際に、前記他の障害物のうちの少なくとも1つを表す前記それぞれの有向境界ボックスと衝突するかどうかを判定するステップを含む、請求項10に記載のプロセッサベースのシステム。
<請求項13>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサにさらに、
少なくとも1つの他の障害物を曲線の表現として表すステップと、
前記有向境界ボックス衝突検出を、有向境界ボックス-曲線衝突検出として実行して、前記一次車両を表す前記それぞれの有向境界ボックスが、前記計画ラティスの前記それぞれのエッジによって接続されるそれぞれのノードによって表される前記状態のペアの間を遷移する際に、前記他の障害物の前記少なくとも1つを表す前記曲線と衝突するかどうかを判定するステップ、
を実行させる、請求項10に記載のプロセッサベースのシステム。
<請求項14>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、道路の少なくとも1つの中央線、道路の端、又は道路の少なくとも1つの車道標示をスプライン表現として表すステップを含む、少なくとも1つの他の障害物を曲線の表現として表すステップを実行させる、請求項13に記載のプロセッサベースのシステム。
<請求項15>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、前記計画ラティスのそれぞれのエッジに対応する前記一次車両のそれぞれの軌道を表すために、適合関数のセットを使用して、前記一次車両のそれぞれの軌道に沿った少なくとも1つの点のそれぞれで、有向境界ボックス衝突検出を実行させる、請求項10~14のいずれかに記載のプロセッサベースのシステム。
<請求項16>
有向境界ボックス衝突検出を実行するステップは、複数の別個のハードウェア回路を介して有向境界ボックス衝突検出を実行するステップを含む、請求項10~請求項14のいずれかに記載のプロセッサベースのシステム。
<請求項17>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、衝突の検出を反映し、前記検出された衝突の重大度を反映するように、パラメータ化されたコスト関数に基づいて計画ラティスの前記それぞれのエッジのコストを設定させる、請求項10~14のいずれかに記載のプロセッサベースのシステム。
<請求項18>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサにさらに、
前記計画ラティスの最小コスト分析を実行するステップと、
少なくとも部分的に前記最小コスト分析に基づいて、結果として生じる動作計画を前記一次車両によって実施するステップを実行させる、請求項10~14のいずれかに記載のプロセッサベースのシステム。
<請求項19>
各計画ラティスがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の他の車両及び他の障害物を含む環境で稼働する一次車両の状態を特徴付け、各エッジが前記ノードのそれぞれのペアによって表される状態間の前記一次車両の軌道を表す、計画ラティスを介して動作計画を実行するための、プロセッサベースのシステムの運用における動作計画方法であって、前記方法は、
実行時中に、計画ラティスの複数の前記エッジのそれぞれに対し、
前記プロセッサベースのシステムによって、前記それぞれのエッジに対応する軌道を適合関数のセットとして表すステップと、
前記プロセッサベースのシステムによって、前記一次車両の表現が他の車両又は他の障害物の1つ又は複数の表現と衝突するかどうかを判定するように、適合関数のセットを用いて衝突検出を実行するステップと、
前記プロセッサベースのシステムによって、前記計画ラティスの前記それぞれのエッジによって接続されるそれぞれのノードによって表される状態のペアの間で遷移する際に、前記判定された衝突又はその不存在のうちの少なくとも1つを反映するように、前記計画ラティスの前記それぞれのエッジのコストを設定するステップと、
を含む方法。
<請求項20>
さらに、前記プロセッサベースのシステムによって、前記一次車両から離れて配置された構成システムから、前記一次車両の前記プロセッサベースのシステムにおける適合関数の前記セットを受信するステップを含み、
適合関数の前記セットは前記実行時の前に前記構成システムによって適合される、請求項19に記載の動作計画方法。
<請求項21>
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合関数のセットを用いて衝突検出を実行するステップは、適合多項式関数のペアを用いて衝突検出を実行するステップを含み、前記ペアの一方の適合多項式関数は時間に関して第1の次元の位置を表し、前記ペアの他方の適合多項式関数は時間に関して第2の次元の位置を表し、前記第2の次元は前記第1の次元とは異なる、請求項19に記載の動作計画方法。
<請求項22>
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合関数のセットを用いて衝突検出を実行するステップは、前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合タイムパラメトリック関数のペアを使用して衝突検出を実行するステップを含む、請求項19に記載の動作計画方法。
<請求項23>
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合関数のセットを用いて衝突検出を実行するステップは、前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合タイムパラメトリック5次関数のペアを用いて衝突検出を実行するステップを含む、請求項19に記載の動作計画方法。
<請求項24>
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合関数のセットを用いて衝突検出を実行するステップは、前記一次車両のメーク及びモデルに特有であり、前記一次車両の相手先商標製造業者によって提供される適合関数のペアを用いて衝突検出を実行するステップを含む、請求項19に記載の動作計画方法。
<請求項25>
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合関数のセットを用いて衝突検出を実行するステップは、前記一次車両のメーク及びモデルに特有であり、前記一次車両の相手先商標製造業者によって提供されるパラメータを有する適合多項式関数のペアを用いて衝突検出を実行するステップを含む、請求項19に記載の動作計画方法。
<請求項26>
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合多項式関数のセットを使用して衝突検出を実行するステップは、前記一次車両のそれぞれの軌道に沿った1つ又は複数の点で前記衝突検出を実行するステップを含み、前記それぞれの軌道は前記計画ラティスの前記それぞれのエッジに対応する前記一次車両の前記それぞれの軌道を表すように前記適合関数のセットを介して指定される、請求項19~25のいずれかに記載の動作計画方法。
<請求項27>
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合関数のセットを用いて衝突検出を実行するステップは、複数の別個のハードウェア回路を介して前記衝突検出を実行するステップを含む、請求項19~25のいずれかに記載の動作計画方法。
<請求項28>
検出された衝突又はその不存在のうちの少なくとも1つを反映するように、計画ラティスの前記それぞれのエッジのコストを設定するステップは、衝突の検出を反映し、前記検出された衝突の重大度を反映するように、パラメータ化されたコスト関数に従って、計画ラティスの前記それぞれのエッジのうちの1つ又は複数のコストを設定するステップを含む、請求項19~25のいずれかに記載の動作計画方法。
<請求項29>
さらに、前記プロセッサベースのシステムによって、前記計画ラティスの最小コスト分析を実行するステップと、
前記プロセッサベースのシステムによって、少なくとも部分的に前記最小コスト分析に基づいて、結果として生じる動作計画を前記一次車両によって実施するステップを含む、請求項19~25のいずれかに記載の動作計画方法。
<請求項30>
さらに、前記実行時の前に発生するオフライン構成時中に、複数の前記エッジのそれぞれについて、それぞれの多項式関数のセットを、前記エッジが表す軌道によって表される動きに適合するステップを含む、請求項19~25のいずれかに記載の動作計画方法。
<請求項31>
各計画ラティスがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の他の車両及び他の障害物を含む環境で稼働する一次車両の状態を特徴付け、各エッジが前記ノードのそれぞれのペアによって表される状態間の前記一次車両の軌道を表す、計画ラティスを介して動作計画を実行するためのプロセッサベースのシステムであって、前記プロセッサベースのシステムは、
少なくとも1つのプロセッサ、
前記少なくとも1つのプロセッサに通信可能に結合され、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに
実行時中に、計画ラティスの複数の前記エッジのそれぞれに対し、
前記それぞれのエッジに対応する軌道を適合関数のセットとして表し、
適合関数の前記セットを用いて衝突検出を実行し、前記一次車両の表現が他の車両又は他の障害物の1つ又は複数の表現と衝突するかどうかを判定し、
前記計画ラティスのそれぞれのエッジによって接続されるそれぞれのノードによって表される状態のペアの間で遷移する際に、判定された衝突又はその不存在のうちの少なくとも1つを反映するように前記計画ラティスの前記それぞれのエッジのコストを設定することを実行させるプロセッサ実行可能命令を記憶する、少なくとも1つの非一時的プロセッサ読み取り可能媒体を含むプロセッサベースのシステム。
<請求項32>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサにさらに、
前記一次車両から離れて配置された構成システムから、前記一次車両の前記プロセッサベースのシステムにおける適合関数の前記セットを受信させ、
適合関数の前記セットは実行時の前に前記構成システムによって適合される、請求項31に記載のプロセッサベースのシステム。
<請求項33>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
適合多項式関数のペアを用いて前記衝突検出を実行させ、前記ペアの一方の適合多項式関数は時間に関して第1の次元における位置を表し、前記ペアの他方の適合多項式関数は時間に関して第2の次元における位置を表し、前記第2の次元は前記第1の次元とは異なる、請求項31に記載のプロセッサベースのシステム。
<請求項34>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
前記一次車両が他の車両又は他の障害物と衝突するかどうかを判定するように、適合タイムパラメトリック関数のペアを用いて前記衝突検出を実行させる、請求項31に記載のプロセッサベースのシステム。
<請求項35>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
前記一次車両が他の車両又は他の障害物と衝突するか否かを判定するように、適合タイムパラメトリック5次関数のペアを用いて前記衝突検出を実行させる、請求項31に記載のプロセッサベースのシステム。
<請求項36>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
前記一次車両のメーク及びモデルに特有であり、前記一次車両の相手先商標製造業者によって提供される適合関数のペアを用いて前記衝突検出を実行させる、請求項31に記載のプロセッサベースのシステム。
<請求項37>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
前記一次車両のメーク及びモデルに特有であり、前記一次車両の相手先商標製造業者によって提供されるパラメータを有する適合多項式関数のペアを用いて前記衝突検出を実行させる、請求項31に記載のプロセッサベースのシステム。
<請求項38>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
前記一次車両のそれぞれの軌道に沿った1つ又は複数の点で前記衝突検出を実行させ、前記それぞれの軌道は、前記計画ラティスの前記それぞれのエッジに対応する前記一次車両の前記それぞれの軌道を表すように、前記適合関数のセットを介して指定させる、請求項31~37のいずれかに記載のプロセッサベースのシステム。
<請求項39>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、複数の別個のハードウェア回路を介して前記衝突検出を実行させる、請求項31~37のいずれかに記載のプロセッサベースのシステム。
<請求項40>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、前記衝突の検出を反映し、前記検出された衝突の重大度を反映するように、前記検出された衝突又はその不存在のうちの少なくとも1つを反映するように、パラメータ化されたコスト関数を介して、計画ラティスのそれぞれのエッジのコストを設定させる、請求項31~37のいずれかに記載のプロセッサベースのシステム。
<請求項41>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサにさらに、
前記計画ラティスの最小コスト分析を実行し、
少なくとも部分的に前記最小コスト分析に基づいて、結果として生じる動作計画を前記一次車両によって実施させる、請求項31~37のいずれかに記載のプロセッサベースのシステム。
<請求項42>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサにさらに、
実行時の前に発生するオフライン構成時中に、複数の前記エッジのそれぞれについて、それぞれの関数のセットを、前記エッジが表す軌道によって表される動きに適合させる、請求項31~37のいずれかに記載のプロセッサベースのシステム。
<請求項43>
各計画ラティスがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の他の車両及び他の障害物を含む環境で稼働する一次車両の状態を特徴付け、各エッジがノードのそれぞれのペアによって表される状態間の前記一次車両の軌道を表す、計画ラティスを介して動作計画を実行するための、プロセッサベースのシステムの運用における動作計画方法であって、前記方法は、
実行時の前に発生するオフライン構成時中に、
計画ラティスの複数の前記エッジのそれぞれに対し、
前記エッジが表す前記軌道によって表される動きに適合される適合関数のセットを決定するステップと、
一次車両のプロセッサベースのシステムによる動作計画に使用するための適合関数の前記セットを提供するステップ、
を含む方法。
<請求項44>
前記エッジが表す前記軌道によって表される動きに適合される適合関数のセットを決定するステップは、適合関数の前記セットを前記軌道によって表される動きに適合させるステップを含む、請求項43に記載の動作計画方法。
<請求項45>
前記エッジが表す前記軌道によって表される動きに適合される適合関数のセットを決定するステップは、適合多項式関数のペアを決定するステップを含み、前記ペアの一方の適合多項式関数は、時間に関して第1の次元における前記軌道に沿った位置を表し、前記ペアの他方の適合多項式関数は、時間に関して第2の次元における前記軌道に沿った位置を表し、前記第2の次元は前記第1の次元とは異なる、請求項43に記載の動作計画方法。
<請求項46>
前記エッジが表す前記軌道によって表される動きに適合される適合関数のセットを決定するステップは、前記軌道を表す適合タイムパラメトリック関数のペアを決定するステップを含む、請求項43に記載の動作計画方法。
<請求項47>
前記エッジが表す前記軌道によって表される動きに適合される適合関数のセットを決定するステップは、前記軌道を表す適合タイムパラメトリック5次関数のペアを決定するステップを含む、請求項43に記載の動作計画方法。
<請求項48>
前記エッジが表す前記軌道によって表される動きに適合される適合関数のセットを決定するステップは、前記一次車両の相手先商標製造業者によって指定される前記一次車両のメーク及びモデルに特有の適合関数のペアを決定するステップを含む、請求項43に記載の動作計画方法。
<請求項49>
前記エッジが表す前記軌道によって表される動きに適合される適合関数のセットを決定するステップは、前記一次車両の相手先商標製造業者により前記一次車両のメーク及びモデルに特有のパラメータを有する適合多項式関数のペアを決定するステップと、前記一次車両のメーク及びモデルに特有のパラメータを有する前記決定された適合多項式関数のペアを、前記一次車両のプロセッサベースの制御システムに提供するステップとを含み、前記一次車両は自律車両である、請求項43に記載の動作計画方法。
<請求項50>
各計画ラティスがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の障害物を含む環境で稼働する一次車両の状態を特徴付け、各エッジが前記ノードのそれぞれのペアの間の遷移を表す、計画ラティスを介して動作計画を実行するための、プロセッサベースのシステムの運用における動作計画方法であって、前記方法は、
前記計画ラティスの複数の前記エッジの少なくとも1つのそれぞれに対し、
前記プロセッサベースのシステムによって、前記計画ラティスの前記それぞれのエッジによって接続されるノードのペアのそれぞれのノードによって表される状態のペアの間で遷移する際に、前記一次車両の表現が前記障害物の表現と衝突するかどうかを判定するように、衝突検出を実行するステップと、
前記プロセッサベースのシステムによって、
i)前記衝突検出と、
ii)障害物タイプ、衝突タイプ、車両速さ、又は少なくとも衝突中に消散することになる消散エネルギーの推定量の少なくとも2つ以上を表すパラメータ化されたコスト関数と、
に少なくとも部分的に基づいて、前記計画ラティスの前記それぞれのエッジに関連するコストを設定するステップと、
を含み、
前記障害物タイプは衝突が発生し得る障害物のタイプを表し、
前記衝突タイプは発生し得る衝突のタイプを表し、
前記車両速さは予測された衝突の直前の少なくとも前記一次車両の速さを表す、
方法。
<請求項51>
前記障害物タイプは、前記障害物が生命をもつ障害物であるか、又は生命をもたない障害物であるかを表し、前記それぞれのエッジに関連するコストを設定するステップは、前記障害物が生命を持つ障害物であるか、又は生命をもたない障害物であるかに少なくとも部分的に基づいて前記コストを設定するステップを含む、請求項50に記載の動作計画方法。
<請求項52>
前記衝突タイプは、前記衝突が物理的障害物又は前記一次車両のいずれかに損傷をもたらす前記物理的障害物との衝突であるか、又は前記一次車両に直接損傷をもたらさない間隔要件又は道路標示との衝突であるかを表し、前記それぞれのエッジに関連するコストを設定するステップは、前記衝突が物理的障害物又は前記一次車両のいずれかに損傷をもたらす前記物理的障害物との衝突であるか、又は前記衝突が前記道路標示に損傷をもたらさない道路標示との衝突であるかに少なくとも部分的に基づいて、前記コストを設定するステップを含む、請求項50に記載の動作計画方法。
<請求項53>
前記車両速さは、現実世界の基準フレーム内の前記一次車両の速さを表し、前記それぞれのエッジに関連するコストを設定するステップは、前記現実世界の基準フレーム内の前記一次車両の前記速さに少なくとも部分的に基づいて前記コストを設定するステップを含む、請求項50に記載の動作計画方法。
<請求項54>
前記車両速さは、前記障害物の速さに対する前記一次車両の速さを表し、前記それぞれのエッジに関連するコストを設定するステップは、前記障害物の速さに対する前記一次車両の前記速さに少なくとも部分的に基づいて前記コストを設定するステップを含む、請求項50に記載の動作計画方法。
<請求項55>
前記車両速さは、前記一次車両の速さと前記障害物の速さの両方を表し、前記それぞれのエッジに関連するコストを設定するステップは、前記一次車両の速さと前記障害物の速さの両方に少なくとも部分的に基づいて前記コストを設定するステップを含む、請求項50に記載の動作計画方法。
<請求項56>
前記パラメータ化されたコスト関数はまた、車両速さに基づく衝突の重大度のレベルを表し、前記それぞれのエッジに関連するコストを設定するステップは、前記一次車両及び前記障害物の少なくとも一方又は両方の車両速さに基づく重大度のレベルに少なくとも部分的に基づいて前記コストを設定するステップを含む、請求項50に記載の動作計画方法。
<請求項57>
衝突検出を実行するステップは、複数の別個のハードウェア回路を介して前記衝突検出を実行するステップを含む、請求項50~56のいずれかに記載の動作計画方法。
<請求項58>
さらに、
前記プロセッサベースのシステムによって、前記計画ラティスの最小コスト分析を実行するステップと、
前記プロセッサベースのシステムによって、少なくとも部分的に前記最小コスト分析に基づいて、結果として生じる動作計画を前記一次車両によって実施するステップを含む、請求項50~56のいずれかに記載の動作計画方法。
<請求項59>
各計画ラティスがそれぞれ複数のノード及びエッジを含み、各ノードが1つ又は複数の障害物を含む環境で稼働する一次車両の状態を特徴付け、各エッジが前記ノードのそれぞれのペアの間の遷移を表す、計画ラティスを介して動作計画を実行するためのプロセッサベースのシステムであって、前記プロセッサベースのシステムは、
少なくとも1つのプロセッサ、
前記少なくとも1つのプロセッサに通信可能に結合され、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、
前記計画ラティスの複数の前記エッジのそれぞれに対し、
前記計画ラティスの前記それぞれのエッジによって接続されるノードのペアのそれぞれのノードによって表される状態のペアの間で遷移する際に、前記一次車両の表現が前記障害物の表現と衝突するかどうかを判定するように、衝突検出を実行することと、
i)前記衝突検出と、
ii)障害物タイプ、衝突タイプ、車両速さ、又は少なくとも衝突中に消散することになる消散エネルギーの推定量の少なくとも2つ以上を表すパラメータ化されたコスト関数と、
に少なくとも部分的に基づいて、前記計画ラティスの前記それぞれのエッジに関連するコストを設定すること、
を実行させるプロセッサ実行可能命令を記憶する、少なくとも1つの非一時的プロセッサ読み取り可能媒体、を含むプロセッサベースのシステムであって、
前記障害物タイプは衝突が発生し得る障害物のタイプを表し、
前記衝突タイプは発生し得る衝突のタイプを表し、
前記車両速さは予測された衝突の直前の少なくとも前記一次車両の速さ及び少なくとも前記衝突の間に消散したであろう消散されたエネルギーの推定量を表す、
前記プロセッサベースのシステム。
<請求項60>
前記障害物のタイプは、前記障害物が生命をもつ障害物であるか、又は生命をもたない障害物であるかを表し、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、前記障害物が生命をもつ障害物であるか、又は生命をもたない障害物であるかに少なくとも部分的に基づいて前記コストを設定させる、請求項59に記載の動作計画方法。
<請求項61>
前記衝突タイプは、前記衝突が物理的障害物又は前記一次車両のいずれかに損傷をもたらす前記物理的障害物との衝突であるか、又は前記一次車両に直接損傷をもたらさない間隔要件又は道路標示との衝突であるかを表し、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、前記衝突が物理的障害物又は前記一次車両のいずれかに損傷をもたらす前記物理的障害物との衝突であるか、又は前記衝突が前記道路標示に損傷をもたらさない道路標示との衝突であるかに少なくとも部分的に基づいて、前記コストを設定させる、請求項59に記載の動作計画方法。
<請求項62>
前記車両速さは、現実世界の基準フレーム内の前記一次車両の速さを表し、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、前記現実世界の基準フレーム内の前記一次車両の速さに少なくとも部分的に基づいて前記コストを設定させる、請求項59に記載の動作計画方法。
<請求項63>
前記車両速さは、前記障害物の速さに対する前記一次車両の速さを表し、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、それぞれのエッジに関連するコストを設定させることは、前記障害物の速さに対する前記一次車両の速さに少なくとも部分的に基づいて前記コストを設定させることを含む、請求項59に記載の動作計画方法。
<請求項64>
前記車両速さは、前記一次車両の速さと前記障害物の速さの両方を表し、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、前記それぞれのエッジに関連するコストを設定させることは、前記一次車両の速さと前記障害物の速さの両方に少なくとも部分的に基づいて前記コストを設定させることを含む、請求項59に記載の動作計画方法。
<請求項65>
前記パラメータ化されたコスト関数はまた、車両速さに基づく衝突の重大度のレベルを表し、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、前記一次車両及び前記障害物の少なくとも一方又は両方の車両速さに基づく重大度のレベルに少なくとも部分的に基づいて前記それぞれのエッジに関連するコストを設定させる、請求項59に記載の動作計画方法。
<請求項66>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、複数の別個のハードウェア回路を介して前記衝突検出を実行させる、請求項59~65のいずれかに記載の動作計画方法。
<請求項67>
前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサによって実行されるとき、前記少なくとも1つのプロセッサに、さらに、
前記計画ラティスの最小コスト分析を実行し、
少なくとも部分的に前記最小コスト分析に基づいて、結果として生じる動作計画を前記一次車両によって実施させる、請求項59~65のいずれかに記載の動作計画方法。
図1
図2
図3
図4
図5
図6
図7
図8
図9