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

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

▶ ズークス インコーポレイテッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-09-16
(54)【発明の名称】非構造化車両の経路プランナー
(51)【国際特許分類】
   B60W 30/10 20060101AFI20220909BHJP
   B60W 60/00 20200101ALI20220909BHJP
【FI】
B60W30/10
B60W60/00
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022503520
(86)(22)【出願日】2020-07-17
(85)【翻訳文提出日】2022-03-18
(86)【国際出願番号】 US2020042636
(87)【国際公開番号】W WO2021016116
(87)【国際公開日】2021-01-28
(31)【優先権主張番号】16/517,506
(32)【優先日】2019-07-19
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】518156417
【氏名又は名称】ズークス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ジェンチー ホアン
(72)【発明者】
【氏名】マリン コビラロフ
【テーマコード(参考)】
3D241
【Fターム(参考)】
3D241BA15
3D241CC01
3D241CC08
3D241CC17
3D241CE04
3D241CE05
3D241CE08
3D241DB01Z
3D241DB02Z
3D241DB05Z
3D241DC43Z
(57)【要約】
自律車両誘導システムは、自律車両を囲む環境における占有空間を示し得るセンサーデータに少なくとも部分的に基づいて生成されるデータ構造に少なくとも部分的に基づいて、自律車両を制御するための経路を生成する。誘導システムは、グリッドを受信することができ、グリッドおよびデータ構造に関連付けられるグリッドを生成することができる。誘導システムは、追加的または代替的に、少なくとも部分的に、データ構造から決定される特徴に基づいてグリッドを(後方におよび/または長手方向に)動的にサブサンプリングすることができる。誘導システムは、少なくとも部分的に事前に算定された一組のモーションプリミティブ、共に関連付けられるコスト、および/または1つの姿勢から別の姿勢に動くための最も安価なコストを示す発見的なコストプロットに基づいて経路を識別することができる。
【特許請求の範囲】
【請求項1】
システムであって、
1つまたは複数のプロセッサと、
1つまたは複数の前記プロセッサによって実行される場合に、前記システムに、
環境における開始位置および終了位置に関連付けられるルートを受信することと、
センサーからセンサーデータを受信することと、
少なくとも部分的に前記センサーデータに基づいて、前記環境の一部が占有されているかを識別するデータ構造を決定することと、
少なくとも部分的に前記ルートに基づいて、前記ルートに沿った1つまたは複数のレイヤーを含むグリッドを決定することであって、1つまたは複数の前記レイヤーの個々のレイヤーは、前記ルートの一部に関連付けられて、複数のノードを含むことと、
サンプルノードとして、少なくとも部分的に前記グリッドおよび前記データ構造に基づいて、1つまたは複数の前記レイヤーの1つまたは複数のノードを選択することと、
前記サンプルノードの間の一組の接続の探索に少なくとも部分的に基づいて、前記終了位置または前記終了位置に関連付けられる終了レイヤーのうちの少なくとも1つと前記開始位置との間の第1の経路を決定することであって、前記探索は、前記データ構造および1つまたは複数のモーションプリミティブに関連付けられる一組の値に少なくとも部分的に基づいていることと
を含む動作を実行させるプロセッサ実行可能命令を格納するメモリと
を備えるシステム。
【請求項2】
1つまたは複数の前記モーションプリミティブおよび前記一組の値は、事前に算定されて、前記探索は、
少なくとも部分的に前記一組の値に基づいて、第1のサンプルレイヤーの第1のサンプルノードのうちの少なくとも1つ、または前記第1のサンプルレイヤーに後続の1つまたは複数のサンプルレイヤーの1つまたは複数のサンプルノードを決定することと、
1つまたは複数の前記サンプルノードの第2のサンプルノードを前記第1のサンプルノードに接続するモーションプリミティブに関連付けられる前記一組の値の値を第1のコストとして決定することと、
前記第1のコストのうちの少なくとも1つが閾値コストよりも低いか、または1つまたは複数の前記サンプルレイヤーの1つまたは複数の他のノードに関連付けられる第1のコストよりも低いということを決定することと、
1つまたは複数の前記モーションプリミティブ、前記第1のサンプルノード、前記第2のサンプルノード、および占有マップに少なくとも部分的に基づいて、少なくとも1つのモーションプリミティブが衝突せず、前記第1のサンプルノードを前記第2のサンプルノードに接続するということを決定することと、
少なくとも1つの前記モーションプリミティブおよび前記第1のサンプルノードに関連付けられる第2のコストを決定することとを含む、
請求項1に記載のシステム。
【請求項3】
前記第2のコストを決定することは、
自律車両の現在の位置もしくは現在の姿勢のうちの少なくとも1つに関連付けられる第3のコスト、
少なくとも1つの前記モーションプリミティブの曲率に関連付けられる第4のコスト、
少なくとも1つの前記モーションプリミティブの少なくとも一部から占有されているとして識別される前記占有マップの一部までの第1の距離に関連付けられる第5のコスト、
少なくとも1つの前記モーションプリミティブと前記第1の経路における事前の接続の第2のモーションプリミティブとの間の第1の差に関連付けられる第6のコスト、または
前記開始位置、前記終了位置、もしくは対象位置のうちの少なくとも1つに関連付けられる車線からの少なくとも1つの前記モーションプリミティブの第2の距離に関連付けられる第7のコストのうちの少なくとも1つに基づいている、
請求項2に記載のシステム。
【請求項4】
前記サンプルノードを選択することは、
第1のレイヤーに関連付けられる前記データ構造によって示される占有空間の第1の特徴付けと事前のレイヤーに関連付けられる前記データ構造によって示される占有空間の第2の特徴付けとの間の差を決定すること、および
前記差が変化閾値を満たすか、または超えるという決定することに少なくとも部分的に基づいて、1つまたは複数の前記レイヤーの第1のレイヤーをサンプルレイヤーとして選択すること、または
少なくとも部分的にサンプルレートに基づいて、前記第1のレイヤーから前記サンプルノードの1つまたは複数を決定することのうちの少なくとも1つを含む、
請求項1ないし3のいずれか一項に記載のシステム。
【請求項5】
前記探索は、第1の探索であり、前記サンプルノードは、第1のサンプルノードであり、
前記サンプルノードを決定することは、少なくとも部分的に第1のサンプルレートまたは第1の感度のうちの少なくとも1つに基づいており、
前記動作は、
前記第1の経路に関連付けられる第1の合計コストを決定することと、
閾値時間量または閾値反復回数内で、前記第1の探索が実行可能な経路を識別できないことを決定することと、
少なくとも部分的に前記第1の探索が実行可能な経路を識別することができないということを決定することに基づいて、少なくとも部分的に第2のサンプルレートまたは第2の感度のうちの少なくとも1つに基づいて第2のサンプルノードを選択することであって、前記第2のサンプルノードは、前記第1のサンプルノードよりも数が多いことと、
少なくとも部分的に前記第2のサンプルノードにわたる第2の探索に基づいて、第2の経路を決定することとをさらに含む、
請求項1ないし4のいずれか一項に記載のシステム。
【請求項6】
実行可能な経路は、衝突がなく、第2のコスト閾値よりも低い第2のコストに関連付けられる、
請求項5に記載のシステム。
【請求項7】
前記探索は、
前記終了位置または前記終了レイヤーのうちの少なくとも1つから前記開始位置までの一組の経路を決定することであって、前記一組の経路は、前記終了位置または前記終了レイヤーから前記開始位置までの間のすべての可能な経路よりも少ないことと、
前記一組の経路が第1の経路グループと第2の経路グループとを含むということを、前記第1の経路グループの間の第1の距離が閾値距離よりも短く、前記第2の経路グループの間の第2の距離が前記閾値距離よりも短いということを決定することに少なくとも部分的に基づいて決定することであって、前記第1のグループは、前記第1の経路を含むことと、
前記第1の経路を主要な経路として出力して、前記第2のグループからの第2の経路を偶発的な経路として出力することとを含む、
請求項1ないし6のいずれか一項に記載のシステム。
【請求項8】
前記動作は、
前記第1の経路が前記第2の経路よりも短いか、または前記第2の経路よりも低い曲率の変化に関連付けられるうちの少なくとも1つであり、
前記第1の経路が前記第1のグループの他の経路の第1の合計コストよりも低い第1の合計コストに関連付けられ、
前記第2の経路が前記第2のグループの他の経路の第2の合計コストよりも低い第2の合計コストに関連付けられ、または
前記第1の合計コストが前記第2の合計コストよりも低いうちの少なくとも1つであるということの決定に少なくとも部分的に基づいて、前記第1の経路を前記主要な経路として識別して、前記第2の経路を前記偶発的な経路として識別することをさらに含む、
請求項7に記載のシステム。
【請求項9】
1つまたは複数のプロセッサによって実行される場合に、1つまたは複数の前記プロセッサに、
環境における開始位置および終了位置に関連付けられるルートを受信することと、
前記環境に関連付けられるデータ構造を受信することであって、前記データ構造が前記環境における占有空間を識別することと、
少なくとも部分的に前記ルートに基づいて、1つまたは複数のレイヤーを含むグリッドを決定することと、
サンプルノードとして、少なくとも部分的に、前記データ構造、1つまたは複数の前記レイヤーの1つまたは複数のノードに基づいて決定することと、
少なくとも部分的に前記サンプルノードの間の隣接する一組の接続の探索に基づいて、前記終了位置または前記終了位置に関連付けられる終了レイヤーのうちの少なくとも1つから前記開始位置まで第1の経路を決定することであって、前記探索は、少なくとも部分的に前記データ構造、位置および方向の範囲と所望の位置および方向との間の差に関連付けられる第1の一組の値、ならびに1つまたは複数のモーションプリミティブに関連付けられる第2の一組の値に基づくこととを含む動作を実行させるプロセッサ実行可能命令を格納する
非一時的なコンピュータ可読媒体。
【請求項10】
1つまたは複数の前記モーションプリミティブおよび前記第2の一組の値は、事前に算定されて、前記探索は、
第1のサンプルレイヤーの第1のサンプルノード、および前記第1のサンプルレイヤーに後続の1つまたは複数のサンプルレイヤーの1つまたは複数のサンプルノードのうちの少なくとも1つに基づいて、1つまたは複数のモーションプリミティブを決定することと、
少なくとも部分的に前記モーションプリミティブおよび前記第1の一組の値に基づいて、1つまたは複数の前記サンプルノードの第2のサンプルノードに関連付けられる第1のコストを決定することと、
前記第1のコストのうちの少なくとも1つが閾値コストよりも低いか、または1つまたは複数の前記サンプルレイヤーの1つまたは複数の他のノードに関連付けられる第1のコストよりも低いということを決定することと、
少なくとも部分的に1つまたは複数の前記モーションプリミティブ、前記第1のサンプルノード、前記第2のサンプルノード、および前記データ構造に基づいて、少なくとも1つのモーションプリミティブが衝突せず、前記第1のサンプルノードを前記第2のサンプルノードに接続するということを決定することと、
少なくとも部分的に第1のノード、第2のノード、および前記第2の一組の値に基づいて、第2のコストを決定することとを含む、
請求項9に記載の非一時的なコンピュータ可読媒体。
【請求項11】
前記第2のコストを決定することは、
自律車両の現在の位置もしくは現在の姿勢のうちの少なくとも1つに関連付けられる第3のコスト、
少なくとも1つの前記モーションプリミティブの曲率に関連付けられる第4のコスト、
少なくとも1つの前記モーションプリミティブの少なくとも一部から占有されているとして識別される前記データ構造の一部までの第1の距離に関連付けられる第5のコスト、
少なくとも1つの前記モーションプリミティブと前記第1の経路における事前の接続の第2のモーションプリミティブとの間の第1の差に関連付けられる第6のコスト、または
前記開始位置、前記終了位置、もしくは対象位置のうちの少なくとも1つに関連付けられる車線からの少なくとも1つの前記モーションプリミティブの第2の距離に関連付けられる第7のコストのうちの少なくとも1つに少なくとも部分的に基づく、
請求項10に記載の非一時的なコンピュータ可読媒体。
【請求項12】
前記サンプルノードを選択することは、
第1のレイヤーに関連付けられる前記データ構造によって示される空間の第1の特徴付けと事前のレイヤーに関連付けられる前記データ構造によって示される空間の第2の特徴付けとの間の差を決定すること、および
前記差が変化閾値を満たすか、または超えるという決定することに少なくとも部分的に基づいて、1つまたは複数の前記レイヤーの第1のレイヤーをサンプルレイヤーとして選択すること、または
少なくとも部分的にサンプルレートに基づいて、前記第1のレイヤーから前記サンプルノードの1つまたは複数を決定することのうちの少なくとも1つを含む、
請求項7ないし11のいずれか一項に記載の非一時的なコンピュータ可読媒体。
【請求項13】
前記探索は、第1の探索であり、前記サンプルノードは、第1のサンプルノードであり、
前記サンプルノードを選択することは、少なくとも部分的に第1のサンプルレートまたは第1の感度のうちの少なくとも1つに基づいており、
前記動作は、
前記第1の経路に関連付けられる第1の合計コストを決定することと、
閾値時間量または閾値回数内で、前記第1の探索が実行可能な経路を識別できないということを決定することと、
少なくとも部分的に前記第1の探索が実行可能な経路を識別することができないということを決定することに基づいて、少なくとも部分的に第2のサンプルレートまたは第2の感度のうちの少なくとも1つに基づいて第2のサンプルノードを選択することであって、前記第2のサンプルノードは、前記第1のサンプルノードよりも数が多いことと、
少なくとも部分的に前記第2のサンプルノードにわたる第2の探索に基づいて、第2の経路を決定することとをさらに含む、
請求項7ないし12のいずれか一項に記載の非一時的なコンピュータ可読媒体。
【請求項14】
前記探索は、
前記終了位置または前記終了レイヤーの少なくとも1つから前記開始位置までの一組の経路を決定することであって、前記一組の経路は、前記終了位置または前記終了レイヤーから前記開始位置までの間のすべての可能な経路よりも少ないことと、
前記一組の経路が第1の経路グループと第2の経路グループとを含むということを、少なくとも部分的に前記第1の経路グループの間の第1の距離が閾値距離よりも短く、前記第2の経路グループの間の第2の距離が前記閾値距離よりも短いということを決定することに基づいて決定することであって、前記第1のグループは、前記第1の経路を含むことと、
前記第1の経路を主要な経路として出力して、前記第2のグループからの第2の経路を偶発的な経路として出力することとを含む、
請求項7ないし13のいずれか一項に記載の非一時的なコンピュータ可読媒体。
【請求項15】
前記動作は、
前記第1の経路が前記第2の経路よりも短いか、または前記第2の経路よりも低い曲率の変化に関連付けられるうちの少なくとも1つであり、
前記第1の経路が前記第1のグループの他の経路の第1の合計コストよりも低い第1の合計コストに関連付けられ、
前記第2の経路が前記第2のグループの他の経路の第2の合計コストよりも低い第2の合計コストに関連付けられ、または
前記第1の合計コストが前記第2の合計コストよりも低いうちの少なくとも1つを決定することに少なくとも部分的に基づいて前記第1の経路を前記第1の経路として識別することと、前記第2の経路を前記偶発的な経路として識別することとをさらに含む、
請求項14に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、非構造化車両の経路プランナーに関する。
【背景技術】
【0002】
本PCT出願は、2019年7月19日に出願された米国特許出願第16/517,506号の利益を主張し、その全体が参照により本明細書に組み込まれる。
【0003】
自律車両は、ナビゲートするために街路灯、車線標識のようなさまざまな経路インジケーターに依存することがある。しかしながら、自律車両は、このようなインジケーターが(例えば、雪、ゴミ、砂などによって)不明瞭である、劣化している(例えば、ライトが切れている、車線標識がすり減っている)、および/または無効になっている(例えば、障害物が車線を部分的に遮り、交通標識および/またはトラフィックコーンは、元の車線標識と競合する代替車線を示す)場合に、正確におよび/または効率的にナビゲートすることに失敗することがある。
【図面の簡単な説明】
【0004】
詳細な説明は、添付の図面を参照して説明される。図面において、参照番号の左端の数字は、その参照番号が最初に現れる図を識別する。異なる図面における同一の参照番号は、類似するまたは同一の項目を示している。
【0005】
図1】自律車両、および車線の参照(事前にマッピングまたは検出されたか)が車両にどうやって進行するかを命令しないことがある例示的な状況を示す図である。
図2】占有マップのようなセンサーデータから生成され得るデータ構造に少なくとも部分的に基づいて、自律車両を制御する経路を生成するための例示的なプロセスの絵入りのフロー図である。
図3】経路を生成する代替的または代替的な部分に対する例示的なプロセスの絵入りのフロー図であり、これは、探索によって生成される経路が実行可能であるか、且つその経路が実行可能である/実行不可能である場合、何をすべきかを決定することを含んでよい。
図4】開始ノードと終了ノードおよび/または終了レイヤーとの間の経路に対して(サンプリングされた)グリッドを探索する例示的なプロセスの絵入りのフロー図であり、これは、第1のレイヤーの第1のノードと第2のレイヤーの第2のノードとの間の接続を決定することを含んでよい。
図5】一組のモーションプリミティブおよび/またはコストプロットを生成する(例えば、事前に算定する)ための例示的なプロセスのフロー図である。
図6A】第1のルートに沿って長手方向に間隔を置いて配置され、多様なノードを含むレイヤーを含む例示的なグリッドを示す図である。
図6B】第2のルートに沿って長手方向に間隔を置いて配置され、多様なノードを含むレイヤーを含む例示的なグリッドを示す図である。
図7】例示的なグリッド600の長手方向にサンプリングされたレイヤーおよび/または横方向にサンプリングされたノードを含む例示的なサンプリングされたグリッドを示す図である。
図8A】探索によって生成される多様な経路の例示を示す図であり、これは、探索によって識別される第1のグループおよび第2のグループを含んでよい。
図8B】第1のグループの経路から選択された主要な経路、および第2のグループの経路から選択された偶発的な経路の例示を示す図である。
図9A】例示的な一組のモーションプリミティブを示す図である。
図9B】探索によって選択された後継ノードおよび先行ノードのそれぞれのモーションプリミティブの例示的な有向グラフおよび/または表示を示す図である。
図10A】コストプロットのそれぞれの部分を図示し、図10Bで識別されるヨー値でのコストプロットのx位置およびy位置によって示される例示的な値を示す図である。
図10B】コストプロットのそれぞれの部分を示す図である。
図11】例示的な誘導システムおよび/または一組のモーションプリミティブおよび/またはコストプロットを事前に算定するためのシステムのブロック図である。
【発明を実施するための形態】
【0006】
本明細書で説明される技術は、少なくとも部分的に、占有マップ(例えば、環境における占有空間および/または「自由空間」を示すマップ)に基づいて自律車両を制御するための経路を生成する自律車両誘導システムを含んでよい。それによって、本明細書で説明される誘導システムを備える自律車両は、環境が、標識、車道、歩道を含まないオープンフィールド、および/または自律車両を動作させるための境界を識別するために役立つことができる他の同様な構造のような環境など、および/または自律車両を動作させるための十分幅の広いオープンスペースを有する車道の車線が1つもない状況において、「構造化されていない」(つまり、環境が経路インジケーターを含まない、または経路インジケーターが劣化している、不明瞭になっている、および/または廃れている)場合でさえ、他のオブジェクトを回避して、正確且つ効率的にナビゲートすることが可能である。
【0007】
本明細書で説明される誘導システムを備える自律車両は、インジケーターが利用できないということを検出する(または、そうでなければ自律車両がアクセス可能なメモリに格納されたマップによって識別される車線の参照のように、予め決定されたまたは受信された指示を車両が進行することができないということを決定する)ことができ、少なくとも部分的にインジケーターが利用できないという検出に基づいて、自律車両を制御するための経路を決定する。追加的または代替的に、本明細書で説明される誘導システムは、(構造および/またはインジケーターを用いて経路を生成するために訓練された)指名の誘導システムが少なくとも部分的にインジケーターに基づく経路を生成するように、実質的に同時にインジケーターに(少なくとも主として)基づかない偶発的な経路を継続的に生成することができる。ある例示において、指名の誘導システムによって生成される経路が衝突をもたらすこととなるか、または別の理由で機能できない(例えば、経路が自律車両に、停止および/または遠隔操作を呼ぶことをさせることとなる)場合、自律車両は、偶発的な経路が衝突のないものである場合、偶発的な経路を用いることができる。
【0008】
本明細書で用いられるように、ルートは、環境内で関連する少なくとも開始位置および終了位置を含んでよい。ある例示において、開始位置は、自律車両の現在の姿勢(例えば、位置および/または進行方向)を識別することができ、および/または終了位置は、自律車両の対象姿勢を識別することができる。ルートは、開始位置および終了位置の間の1つまたは複数の曲線、および/または開始位置および/または終了位置に関連する車両の姿勢を追加的または代替的に識別することができる。例えば、開始位置は、車道の第1の車線内の位置を識別することができ、終了位置は、2つの街区の第2車線内、右折、および開始位置からさらに1街区離れた位置を識別することができる。つまり、このルートは、自律車両のハイレベルな使命であってよい。本明細書で用いられるように、曲線は、直線を含んでよい。
【0009】
本明細書で説明される技術は、終了位置(例えば、これは、リモートオペレーターおよび/または乗員によって指定されてよい)を受信すること、(例えば、グローバルポジショニングセンサー(GPS)、ライダー、レーダー、カメラなどのような自律車両の1つまたは複数のセンサーから受信したセンサーデータに少なくとも部分的に基づいて)自律車両の現在位置を決定すること、および自律車両によって格納されたマップに少なくとも部分的に基づいて、開始(現在)位置および終了位置に関連付けられる終了位置の間のルートを決定することによるなどルートを受信することができる。技術は、少なくとも部分的にマップに基づいて、ルートの少なくとも一部に関連付けられる曲線を決定することを含んでよい。例えば、自律車両は、車道の形状および/または開始位置および終了位置の間の自由空間に基づいて、または曲線を決定することができる。
【0010】
自律車両は、本明細書で説明される技術に従って、ルートによって指定される終了位置に到達するために経路を生成することができる。ある例示において、本明細書で説明される開始位置および終了位置は、ルートの一部に関連付けられてよい。ここで、ルートが自律車両によって走行される車道などを指定してよく、経路は、自律車両が中間距離(例えば、10メートル、20メートル、50メートル、100メートル)をわたって、どのように終了位置(例えば、どの車線、車線内の位置、進行方向に)に到達することとなるかを指定してよい。自律車両は、追加的または代替的に、少なくとも部分的に経路に基づいて自律車両を制御するための軌道を生成することができる。軌道は、自律車両によって用いられることができ、少なくとも部分的に後退ホライズン(receding horizon)技術ならびに経路によって指定される位置および/もしくは姿勢に基づいて、経路よりも短い時間期間/距離(例えば、5ミリ秒、10ミリ秒、0.5ミリ秒)にわたって自律車両の動きを制御する。このような例示において、軌道は、例えば、1つまたは複数のウェイポイントに関連付けられる任意の1つまたは複数のウェイポイントおよび/または所望の速度、加速度、方向などを含んでよい。
【0011】
ある例示において、技術は、センサーデータを自律車両のセンサーから受信すること、および少なくとも部分的にセンサーデータに基づいて占有マップを生成することを含んでよい。占有マップは、環境のそれぞれの部分が、オブジェクトによって占有され、および/または自律車両が動作し得る自由空間である部分の尤度を示す環境のマップを含んでよい。ある例示において、占有マップは、追加的または代替的に、オブジェクトの追跡、直接の速度測定(例えば、レーダー)などによって提供され得るようなオブジェクトの速度および/または進行方向の表示を含んでよい。ある例示において、占有マップは、追加的または代替的に占有マップにおける位置に関連付けられる確率(例えば、環境における対応する位置がオブジェクトによって占有されている、または占有されていないという確率を示す)を含んでよい。
【0012】
技術は、追加的または代替的に、ルートを受信すること、占有マップの少なくとも一部をオーバーレイするグリッド(例えば、格子)を生成することを含んでよい。グリッドは、規則的にまたは不規則に間隔を置いたノードで構成されてよい。ある例示において、グリッドを生成することは、少なくとも部分的にルートに基づいてよい。例えば、グリッドは、1つまたは複数のノードのレイヤーを含んでよく、ここで、レイヤーは、レイヤーに関連付けられるルートの一部に直交するノードを含んでよい。つまり、レイヤーのノードは、ルートを横方向に横断して(例えば、ルート関連座標フレームに基づいて構築され得るように)存在してよい。追加的または代替的に、誘導システムは、少なくとも部分的に格子構造および/または間隔に基づいてグリッドを生成してよい。ある例示において、グリッドは、数百、数千、数十万、または任意の他の数のノードを含んでよい。グリッドのノードの数は、少なくとも部分的に、グリッドの事前に画定された密度(例えば、経路が生成されるためのユニット毎のノード(例えば、次の20メートルの動作、次の10秒の動作))ならびに/または自律車両の速度、環境タイプ、および/もしくは自律車両の環境における複数のオブジェクトに少なくとも部分的に基づく密度に基づいてよい。密度は、誘導システムの精度の上限に関連付けられてよい。例えば、密度は、自律車両を1センチメートルの許容範囲内で制御するためにより高くしなければならないが、自律車両を10センチメートルの許容範囲内で制御するために必要となる密度は、より低くなる。
【0013】
ある例示において、技術は、グリッドをサンプリングすることを含んでよく、これは、経路を決定するための時間および/または経路を決定するために必要となる計算処理能力を低減し得る。グリッドをサンプリングすることは、グリッドの1つまたは複数のレイヤーを選択すること、および/またはレイヤーの1つまたは複数のノードを選択することを含んでよい。少なくとも1つの例示において、グリッドをサンプリングすることは、閾値の変化を満たすかまたは超えるトポロジーの変化(例えば、占有マップによって識別されるオブジェクト検出の形状)に関連付けられる占有マップの一部を決定すること、および閾値の変化を満たすかまたは超える占有マップの一部に関連付けられるサンプルレイヤーとしてレイヤーを選択することを含んでよい。ある例示において、レイヤーは、占有マップによって示される占有ノードの数、密度、分布などを示す占有マップの特徴付けに関連付けられてよい。
【0014】
ある例示において、サンプリングされたレイヤーは、複数のノード(例えば、エッジ)を含んでよく、サンプリングは、追加的または代替的に、サンプリングされたレイヤーをサンプリングすることを含んでよい。サンプリングされたレイヤーをサンプリングすることは、少なくとも部分的に複数のノードの所定の数に基づいて、サンプリングされたレイヤーの複数のノードのサブセットを選択すること、衝突のない1つまたは複数のノードを決定すること、および/または、サンプルレートに従って間隔を置いたノードのサブセットを選択することを含んでよい。レイヤーをサンプリングすることは、「横方向のサンプリング」と称されてよい。
【0015】
グリッドが占有グリッドにわたって生成された、および/またはグリッドがサンプリングされた時点で、技術は、開始位置と終了位置および/または終了位置に関連付けられる終了レイヤーとの間のグリッドの(サンプリングされた)ノードを通して経路を探索することを含んでよい。ある例示において、経路の探索は、グリッドの異なるレイヤーのノードの間の隣接する一組の接続を探索することを含んでよい。開始位置から終了位置までの経路の探索は、終了位置から開始位置まで、または他の例示における開始位置から終了位置までのノードの間の隣接する一組の接続を決定することを含んでよい。ある例示において、探索は、1つまたは複数のルールを含み得るルールセットで構成されてよく、例えば、経路を決定する境界内を指定すること(例えば、境界は、少なくとも部分的にセンサーデータおよび/またはマップ基づいて決定されてよい)、ノード接続ルール(例えば、同一のレイヤーのノードは、レイヤーがルートの横方向に配置されるノードを含む場所に接続されないことがある)などである。ある例示において、探索は、グリッドの(サンプリングされた)ノードの間の有向グラフを決定することを含んでよい。有向グラフは、第1のノードおよび第2のノードの間の接続(例えば、エッジ)および/または接続に関連付けられる重み付け(例えば、コスト)を含んでよい。
【0016】
ある例示において、探索は、少なくとも部分的に、占有マップ、一組のモーションプリミティブ(例えば、自律車両の可能な動きのテンプレートの動き)、および/またはコストプロット(これは、少なくともある例示において、それぞれのモーションプリミティブに関連付けられてよい)に基づいてよい。ある例示において、1つまたは複数のモーションプリミティブは、事前に算定され(例えば、自律車両が使命を達成するために動作する前に生成され)てよく、実行時間で自律車両がアクセス可能なメモリに格納されてよい。モーションプリミティブは、ステアリング制御、自律車両の位置、加速度、および/または自律車両の速度の表示を含んでよく、ここで、実行可能性は、自律車両の制御システムおよび/または構造および/または速度、加速度、乗員の快適性(例えば、事前に画定された速度および/または加速度の上限および/または下限)、および/または表面摩擦、抗力、ボディロールなどのような他の運動学的効果に依拠してよい。例えば、モーションプリミティブは、スロットルおよび/またはステアリング制御に応答する自律車両の位置および/または方向をモデル化することができる。
【0017】
1つまたは複数のモーションプリミティブを事前に算定することは、自律車両の実行可能な動きに関連付けられる数十、数百、または数千(または他の数)の曲線(例えば、3次スパイラル、多項式、ベジェ、クロソイドなど)を生成することを含んでよい。ある例示において、3次スパイラルの1つまたは複数の運動パラメーターを事前に算定することは、少なくとも部分的に密度および/または1つまたは複数の境界(例えば、弧長、最大曲率、最大曲率に関連付けられる速度および/または速度範囲)基づいて、異なるパラメーターを用いて異なる曲線を反復的に生成することを含んでよい。ある例示において、自律車両は、1つまたは複数のモーションプリミティブを受信してよく、これは、一組のモーションプリミティブのうちの2つ以上のモーションプリミティブ間で補間することを含んでよい。このような例示において、事前に生成されたプリミティブの数は、(例えば、補間に基づいて)算定精度の低いプリミティブを犠牲にして、低減されてよい。追加的または代替的な例示において、モーションプリミティブは、少なくとも部分的に、人間および/またはシミュレートされた人間の運転者によって生成されるおよび/または人間の運転者の観察から推測されるステアリングコマンドを用いて訓練されることに基づいて、ステアリングコマンドを生成するために、少なくとも部分的に、訓練される機械学習モデルによって生成される出力に基づいて事前に算定されてよい。例えば、訓練データとして用いられるステアリングコマンドは、車両への人間の運転者の入力をキャプチャするセンサーから受信されてよく、および/または少なくとも部分的に、交通カメラフィード、車道の他の車両の自律車両によってキャプチャされるセンサーデータなどのような車両挙動を含むセンサーデータからのステアリングコマンドを推測することに基づいて決定されてよい。
【0018】
ある例示において、コストプロットは、事前に算定されてよく、実行時間で自律車両がアクセス可能であるメモリに格納されてよい。コストプロットは、自律車両の基準姿勢を参照して自律車両が動作している環境における自律車両の可能性のある姿勢に対応する寸法を有してよい。例えば、コストプロットにおける第1の位置(第1のセル)は、基準姿勢(例えば、これは、コストプロットの起点によって示されてよい)および参照姿勢からの長手方向、横方向、および/または進行方向の変位を達成するための最小のコストを示してよい。第1のセルに関連付けられる第1のコストを事前に算定することは、第1の姿勢に参照姿勢を接続するモーションプリミティブの1つまたは複数のサブセットを決定すること、モーションプリミティブのうちのサブセットのそれぞれに関連付けられるコストを決定すること、およびモーションプリミティブの1つまたは複数のサブセットに関連して決定されるコストの中から最小のコストに関連付けられるモーションプリミティブのサブセット(例えば、サブセットは、1つまたは複数のモーションプリミティブを含んでよい)を決定することを含んでよい。
【0019】
さまざまな例示において、経路は、少なくとも部分的に、領域におけるすべてのノードの間のすべての接続を決定すること、および合計の最小コストを提供するこれらの間の一組の接続に対して探索することに基づいて決定されてよく、これは、その経路上で決定されるそれぞれのモーションプリミティブに関連付けられるコストを含んでよい。少なくともある例示において、このような接続は、実行可能なノード間との接続だけに制限されてよい。追加的および/または代替的な例示において、計算リソースは、すべての可能な接続を列挙することなく、少なくとも部分的に探索方向を通知することに基づいて予約されてよい。このような例示は、以下で詳細に説明されるように、対象までの距離に基づく発見的なコストに加えて、ここに接続されるすべてのノードの中の最も低いコストを有する事前に識別されるノードに接続するこれらのノードを決定することに基づいて、調査のための連続するノードを選択してよい。さらに、このような接続は、連続するレイヤーにおけるノードに制限される必要がないことが理解される。非限定的な例示として、このような経路探索は、第1のレイヤーおよび第2のレイヤー、第3のレイヤー、第4のレイヤーなどのうちの任意の1つまたは複数の間のノードを探索することを含んでよい。
【0020】
ある例示において、経路に対する全面的な探索を実施する前に、技術は、誘導システムによって決定される事前の経路および/または事前の接続が実行可能であるか(例えば、速度、最大ステアリング角、および/または境界のような現在の制約を満たし、衝突がなく、コスト閾値よりも低いコストを有する)を決定することを含んでよい。
【0021】
ある例示において、経路の探索は、少なくとも部分的に、コストプロット、一組のモーションプリミティブ、および/または占有マップに基づいて第1のレイヤーの第1のノードと第2のレイヤーの第2のノードとの間の接続を決定することを含んでよい。第1のノードおよび/または第2のノードは、サンプルノードであってよく、第1のレイヤーおよび/または第2のレイヤーは、サンプルレイヤーであってよいことに留意されたい。接続は、第1のノードを第2のノードの先行、第2のノードを第1のノードの後継、第1のノードおよび第2のノードに関連付けられるモーションプリミティブ、および/または接続に関連付けられるコストとして識別してよい。接続を決定することは、少なくとも部分的にコストプロットに基づき、第2のノードが閾値コストよりも低いコストに関連付けられ、および/または第2のレイヤーにおける他のノードに関連付けられるコストと比較して最小のコストであるという決定することを含んでよい。少なくとも部分的にこの決定に基づいて、探索は、第1のノードおよび第2のノードの間に衝突のない一組のモーションプリミティブのうちのモーションプリミティブがあるかを決定することを含んでよい。衝突のないプリミティブがある場合、探索は、第1のノードおよび第2のノードの間の接続の一部として衝突のないプリミティブを識別してよく、および/または探索は、衝突のないプリミティブに関連付けられるコストを決定してよい。プリミティブのコストがコスト閾値を満たすかまたは超える場合、または第1のノードと第2のノードとの間に衝突のないプリミティブが識別されない場合、探索は、次に最も高いコストを有する第2のレイヤーにおける第3のノードを決定してよく、および/または探索は、探索が衝突のないおよび/または低コストの経路(例えば、低コストは、閾値コストよりも低く画定されてよい)を識別しなかったことによる反復カウントに少なくとも部分的に基づいて、グリッドをリサンプリングすることをトリガーしてよい。
【0022】
探索は、上記のように、探索が開始位置および終了位置の間の経路を決定するまで、または探索がレイヤーのそれぞれのノードを探索して、レイヤーのすべてのノードが無効(衝突を引き起こす)および/または高コスト(コスト閾値を満たすかまたは超える)のモーションプリミティブに関連付けられているという決定するまで、少なくとも部分的に、コストプロットおよび/または一組のモーションプリミティブに基づいて、衝突のないおよび/または低コストのモーションプリミティブを探索するノードを反復的に識別してよい。後者の例示において、探索は、経路から1つまたは複数の最後の接続を除去することができ、探索から除外する一組のノードを識別することができ、および/または事前のレイヤーの間の異なる接続に対して再探索することができる。これが既に行われており、事前のn個のレイヤーのノードが同一の結果で探索されている場合、探索は、失敗した状態で出力することがあり、および/またはリモートアシスタンスのための要求を伝送することがあり、ここで、nは、正の整数である。
【0023】
追加的または代替的な例示において、技術は、例えば、代替的な探索戦略を含んでよく、これは、すべてのノードよりも少ない接続をすることを試みること、例えば、少なくとも部分的に一組のモーションプリミティブ(現在のノードが探索によって到達した最後のノードによって画定されており、これは、探索の開始での開始ノードまたは終了レイヤーのノードであってよい)に基づいて、現在のノードが接続されている1つまたは複数のノードが決定されることにより、試みること、経路の接線の閾値距離内のノード接続を、レイヤーのサンプリングに関連付けられる閾値の変化を増やすこと(例えば、これによって、占有マップにおけるトポロジーの変更に対するレイヤー選択の感度を低減すること)により試みること、および/またはサンプルレートを低減することで、より少ないレイヤーのノードがサンプリングされることを含み、これにより、接続される一組のノードを低減し、ノードに接続することに失敗することおよび/または実行可能な経路を決定することに失敗すること(例えば、サンプルレートが増加されることで、サンプリングレイヤーに対する閾値の変更を低減すること(例えば、レイヤーサンプリングの感度を上げることで、より多くのレイヤーがサンプリングされる))に少なくとも部分的に基づいて接続が試みられるノードの数を反復的に拡大する。ある例示において、技術は、生成される経路に関連付けられる合計コストが閾値コストよりも低くなるまで、最終位置および/または対象位置からの姿勢および/または姿勢の間の差がより閾値差よりも低くなるまで、および/または事前に画定された反復回数に到達するまで、より低いコストの経路を探索することを継続することを含んでよい。
【0024】
技術は、経路を構成する隣接する一組の接続に関連付けられるコストに少なくとも部分的に基づいて、経路の合計コストを決定することを含んでよい。ある例示において、接続に関連付けられるコストは、コストプロットによって示されるコスト、および/または第1のノードを第2のノードに接続するモーションプリミティブに関連付けられるコスト(例えば、モーションプリミティブの曲率が大きいほど、コストが高くなる)、安全マージンに関連付けられるコスト(例えば、自律車両をオブジェクトに近づけるためにコストが高くなると、速度および/または他の運動学に依拠することがある)、モーションプリミティブの終了位置および対象位置に関連付けられる終了位置および/または姿勢、および/または姿勢の間の差に関連付けられるコスト、自律車両の開始位置および/または姿勢に関連付けられるコスト(例えば、モーションプリミティブおよび/または第1のノードの開始に関連付けられる位置および/または姿勢、および/または第1のノードおよび開始位置に関連付けられる位置および/または姿勢の間の差に関連付けられるコスト)、第1のレイヤーを第2のレイヤーに接続するモーションプリミティブおよび事前のレイヤーを第1のレイヤーに接続するモーションプリミティブの間の差などに少なくとも部分的に基づいてよい。ある例示において、コストのうちの少なくとも1つは、少なくとも部分的に、人間および/またはシミュレートされた人間の運転者によって生成されるおよび/または人間の運転者の観察から推測されるステアリングコマンドを用いて訓練されることに基づいて、ステアリングコマンドを生成するために、少なくとも部分的に、訓練される機械学習モデルによって生成されるモーションプリミティブおよび出力の間の差に基づいてよい。
【0025】
本明細書で説明される誘導システムは、少なくとも部分的に本明細書で説明されるコストに基づいて、経路を実行可能であるとして識別してよく、および/または信頼スコアを決定してよい。誘導システムは、経路および/または信頼スコアを出力することができ、これは、自律車両が、例えば、少なくとも部分的に経路に基づく軌道が生成されることによって、自律車両の動きを制御するために用いられてよい。ある例示において、誘導システムは、主要経路および/または偶発的な経路を出力することができる。例えば、誘導システムは、少なくとも部分的に、候補一組の経路を生成することに基づいて偶発的な経路を決定してよく、この一組を決定することは、少なくとも部分的に閾値距離に基づいて(例えば、2つのグループは、2つの異なる同位のグループであってよい)候補経路の2つのグループ、ならびに第1のグループから主要経路および第2のグループから偶発的な経路を選択することを含む。ある例示において、主要な経路は、主要な経路として、少なくとも部分的に、主要な経路が偶発的な経路に関連付けられる第2の合計コストよりも低い第1の合計コストに関連付けられるという決定に基づいて選択されてよい。主要な経路は、第1の合計コストに関連付けられてよく、および/または偶発的な経路は、コスト閾値よりも低い第2の合計コストに関連付けられてよく、および/または共に関連付けられるそれぞれのグループの最小のコストであってよい。
【0026】
(例示的な状況)
図1は、本明細書で説明される誘導システムを備える自律車両102を含む例示的な状況100を図示している。ある例示において、自律車両102は、米国国家幹線道路交通安全局によって発行されたレベル5分類に従って動作するように構成される自律車両であってよく、これは、運転者(または乗員)の常時車両制御を期待することなく全行程に対するすべてのセーフティクリティカルな機能を実行することが可能である車両を説明する。しかしながら、他の例示において、自律車両102は、任意の他のレベルまたは分類を有する完全にまたは部分的な自律車両であってよい。本明細書で説明される技術は、自律車両のようなロボット制御を越えるものに適用され得ることが企図される。例えば、本明細書で説明される技術は、ビデオゲーム、製造、拡張現実などに適用されてよい。
【0027】
自律車両102は、1つまたは複数のMLモデルおよび/または本明細書で説明される誘導システムを含み得るコンピューティングデバイス104を備えてよい。例えば、コンピューティングデバイス104は、知覚エンジン106および/またはプランナー108を含んでよく、これは、1つまたは複数のMLモデルを含んでよく、本明細書で説明される誘導システムの一部であってよい。例えば、知覚エンジン106および/またはプランナー108は、誘導システムに関連して本明細書で説明される動作を実施するためのハードウェアおよび/またはソフトウェアを含んでよい。誘導システムは、大なり小なりコンポーネントを含んでよいが、知覚エンジン106および/またはプランナー108は、理解のために非限定的な例示として与えられる。
【0028】
ある例示において、MLモデルは、例えば、畳み込みニューラルネットワーク(CNN)のようなニューラルネットワークを含んでよい。本明細書で説明されるように、例示的なニューラルネットワークは、入力データが連続して接続されるレイヤーを通して出力を生じさせる生物学に着想を得たアルゴリズムである。ニューラルネットワークにおけるそれぞれのレイヤーが別のニューラルネットワークを含むことも可能であり、または任意の数のレイヤー(畳み込み層であるか否か)を含むことが可能である。本開示の脈絡で理解されることが可能であるとおり、ニューラルネットワークは、機械学習を利用することが可能であり、これは、出力が学習されたパラメーターに基づいて生成される幅広いクラスのこのようなアルゴリズムを参照することが可能である。ニューラルネットワークの脈絡で説明されるものの、任意のタイプの機械学習が本開示と整合するように用いられることが可能である。
【0029】
ある例示において、本明細書で説明される誘導システムおよび/またはMLモデルは、コンピューティングデバイス104のメモリに格納され、および/またはそれにアクセス可能なハードウェア、および/またはそれらのいくつかの組み合わせ(例えば、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC))を含んでよい。
【0030】
例示的な状況100において、自律車両102は、開始位置112、終了位置114、ならびに開始位置112および終了位置114の間の曲線を画定する経路110を受信しているおよび/または決定している(曲線が直線および/または1つまたは複数の曲線に留意されたい)。例えば、プランナー108は、少なくとも部分的に、センサーデータおよび任務の一部として(例えば、乗員から、コマンドセンターから)受信した終了位置に基づいてルート110を決定することができる。本明細書で用いられるように、「位置」への言及は、位置および/または姿勢(例えば、車両の位置および/または方向/進行方向)の両方を含んでよい。
【0031】
車両が終了位置114に到達するために動作するように、自律車両102は、車線の参照に依存する例示的な状況100のような状況に直面してよく、(例えば、少なくとも部分的に、マップ、および/または自律車両102をローカライズすることに基づいて決定される)経路を生成することは、経路を正確および/または効率的に生成しないことがある。例えば、さまざまなオブジェクト(例えば、遮断車両116、ツールボックス118、落下したトラフィックコーン120)が、示された車道のうちの3つの車線すべてを累積的に遮断し、これは、別のプランナーに車両を停止させることがあり、および/または自律車両のための十分な空間が1つもないため、遠隔操作を呼ぶことをさせることがある。
【0032】
しかしながら、本明細書で説明される誘導システムは、少なくとも部分的に、センサー126によってキャプチャされたセンサーデータから生成される占有マップ124に基づいて経路122を生成してよい。自律車両102は、自律車両102のセンサー126からセンサーデータを受信することができる。例えば、センサーデータは、位置信号(例えば、GPS信号)、慣性信号(例えば、加速度計信号、ジャイロスコープ信号など)、磁気計信号、ホイールエンコーダー信号、速度計信号、累積されたライダーおよび/またはレーダーポイントのポイントクラウド、飛行時間データ、画像(または複数の画像)、オーディオ信号、および/またはバリアトリックまたはその他の環境信号などを含んでよい。
【0033】
ある例示において、知覚エンジン106は、自律車両102の環境から収集されたセンサーデータからオブジェクトを検出、識別、セグメント化、分類、および/または追跡するための1つまたは複数のMLモデルおよび/または他のコンピュータ実行可能命令を含んでよい。ある例示において、知覚エンジン106は、少なくとも部分的に、センサーデータに基づいて占有マップ124を生成してよい。占有マップは、環境内の位置がオブジェクトによって占有されていることおよび/またはそうでなければ、自律車両102が動作に利用できないという表示、および/または環境内の別の位置が「自由空間」つまり、オブジェクトによって占有されていないおよび/または自律車両が動作し得る位置であるという表示を含んでよい。ある例示において、占有マップは、追加的なまたは代替的に、それぞれの位置が占有されていないか、または占有されているという知覚エンジン106によって算定される確率を含んでよい。
【0034】
例えば、図1に図示される占有マップ124は、占有されているように示される第1の部分を含んでよく、ツールボックス118に関連付けられる知覚エンジン106によって生成されるオブジェクト検出128に対応する。同様に、占有されているように示される占有マップ124の他の部分は、遮断車両116に関連付けられるオブジェクト検出130および落下したトラフィックコーン120(および明確にするために数えられていない他のトラフィックコーン)に関連付けられるオブジェクト検出132に対応してよく、そうでない場合、占有マップ124は、残りの環境(占有マップ124の範囲内)が自由空間であることを示す。
【0035】
ある例示において、知覚エンジン106は、自律車両102のセンサー126からセンサーデータを受信してよく、占有マップ124を含むセンサーデータから知覚データを決定してよく、プランナー108が経路122を決定することによって用いられるために知覚データをプランナー108に伝送してよく、少なくとも部分的に経路122に基づいて1つまたは複数の軌道を決定してよく、経路またはルートを横断するために(例えば、1つまたは複数の軌道を自律車両102の制御コンポーネントを伝送することによって)自律車両102の動きを制御してよく、および/またはそうでなければ、自律車両102の動作を制御するが、任意のこのような動作は、さまざまな他のコンポーネントにおいて実行されてよい。
【0036】
ある例示において、プランナー108は、占有マップ124および/または自律車両102の現在位置、および/またはルート110および/または経路122を含む知覚データを用いてよく、自律車両102の動作を制御するために命令を生成する。例えば、プランナー108は、開始位置から終了位置までの自律車両102のためのルートを決定してよく、少なくとも部分的にセンサーデータに基づいて占有マップを決定してよく、本明細書でさらに説明されるように、少なくとも部分的に、占有マップ124、ルート110、コストプロット、および/または1つまたは複数のモーションプリミティブに基づいて経路を決定してよく、実質的に同時に、後退ホライズン技術(例えば、1マイクロ秒、0.5秒、数秒など)に従って、且つ経路122に少なくとも部分的に基づいて、自律車両102の動きを制御するための複数の可能性のある軌道を生成してよく、および/または可能性のある軌道のうちの1つを、経路122を横断するための自律車両102を制御するために自律車両102の駆動コンポーネントに伝送され得る駆動制御信号を生成することに用いられ得る自律車両102の軌道として選択してよい。
【0037】
(例示的な動作)
図2図5は、少なくとも部分的に、ルートおよび占有マップに基づいて経路を生成することに関連するさまざまなプロセスの絵入りのフロー図を図示している。プロセスは、組み合わせにおいて用いられてよく、別々に、および/または同一のデバイスもしくは異なるデバイスによって実行されてよい。例えば、自律車両のコンピューティングデバイスは、少なくともいくつかの動作を達成することができ、および/または(例えば、分散コンピューティングサービスの、遠隔操作の)リモートコンピューティングデバイスは、少なくともいくつかの動作を達成することができる。知覚エンジン106および/またはプランナー108を含むような誘導システムのハードウェアおよび/またはソフトウェアコンポーネントは、例示的なプロセス200、例示的なプロセス300、例示的なプロセス400、および/または例示的なプロセス500のうちの少なくとも一部を達成するように構成されてよい。追加的または代替的な例示において、リモートコンピューティングデバイスは、例示的なプロセス200、例示的なプロセス300、例示的なプロセス400、および/または例示的なプロセス500のうちの少なくとも一部を達成してよい。ある例示において、プロセスの動作のうちの少なくともいくつかは、分散コンピューティングシステムのような自律車両および/または他のコンピューティングデバイスによって事前に算定されてよい。
【0038】
図2は、少なくとも部分的にルートおよび占有マップに基づいて経路を生成するための例示的なプロセス200の絵入りのフロー図を図示している。
【0039】
動作202で、例示的なプロセス200は、本明細書で説明される技術のいずれかに従って、環境における開始位置および終了位置に関連付けられるルートを受信することを含むことができる。ある例示において、動作202は、(例えば、少なくとも部分的にセンサーデータに基づいて決定される)自律車両の現在位置および/または終了位置(例えば、ルートの終了位置、ルートに沿った中間点)を含むことができる。ルートは、追加的または代替的に、1つまたは複数の曲線を含んでよく(これは、1つまたは複数の直線を含んでよく)、これは、少なくとも部分的に、車道および/または他の方法に関連付けられる曲率に基づいて決定されてよい。このような曲線は、少なくとも部分的に、メモリに格納されたマップおよび/または車道に関連付けられるインジケーターに基づいて対応してよく、および/または(例えば、中央分離帯、二重黄色線、路肩表示、歩道などに関連付けられる形状を決定する)決定されてよい。さまざまな例示において、このようなルートは、追加的または代替的に、運転する所望の車線、通行する道路などを含んでよい。
【0040】
動作204で、例示的なプロセス200は、本明細書で説明される技術のいずれかに従って、環境に関連付けられる占有マップ124を受信することを含むことができる。例えば、占有マップを受信することは、少なくとも部分的に、センサーデータおよび/または自律車両にアクセス可能なメモリから運転可能な表面データを検索することに基づく環境における1つまたは複数のオブジェクトを検出することを含んでよい。ある例示において、検出されたオブジェクトに関連付けられるサイズは、1つまたは複数の方向(例えば、長手方向および/または横方向)に拡張されてよく、衝突またはニアミスのリスクを低減する。例えば、サイズは、自律車両の幅の半分、自律車両の幅の4分の1などによって拡張されてよい。ある例示において、動作202は、追加的または代替的に、距離マップを決定することを含むことができ、ここで、距離マップにおける位置は、占有されているように占有マップに示される位置から最も近い位置までの距離を示す。ある例示において、衝突に関連付けられるコストを決定することは、少なくとも部分的に距離マップに基づいてよい。
【0041】
動作206で、例示的なプロセス200は、本明細書で説明される技術のいずれかに従って、占有マップのうちの少なくとも一部をオーバーレイするグリッドを生成することを含むことができる。ある例示において、グリッドは、1つまたは複数のレイヤーの格子を含んでよく、ここで、グリッドは、車両の前の領域をカバーする複数のセルを含む。レイヤーは、1つまたは複数のノードを含んでよく、これは、構造(例えば、線、形状および/または密度を指定するベクトル)に従って組織されてよい。レイヤーにおけるノードの数は、少なくとも部分的に、密度(例えば、レイヤーのメートル毎のm個のノード)に基づいて事前に画定されてよく、これは、誘導システムによって生成される経路の最大対象精度(例えば、経路が指定されることが可能である最大の特殊性)に対応してよい。ある例示において、グリッドのレイヤーは、事前に画定された密度(例えば、ルートのメートル毎のp個のレイヤー)に従ってルートに沿って間隔を置いてよく、および/またはレイヤーの構造は、ルートに直交して位置してよい。ある例示において、(ルートに対して長手方向に間隔を置く)レイヤーの密度は、(ルートに対して横方向に間隔を置く)レイヤーのノードの密度とは異なることがある。追加的または代替的な例示において、ノードは、上記のように、規則的な間隔に加えて、またはその代わりに、(例えば、ノード位置のランダムな生成に従って)不規則な間隔で配置されてよい。
【0042】
図2は、開始位置604および/または終了位置606に関連付けられ、占有マップ124(例えば、例示的なグリッド600の寸法は、占有マップ124の寸法および/または境界に対応してよい)にわたってオーバーレイされるか、そうでなければそれに関連付けられるルート602に少なくとも部分的に基づいて生成され得る図6Aからの例示的なグリッド600の描写を含む。このグリッドは、少なくとも部分的にルート関連座標系に基づいて(例えば、レイヤーが移動方向に沿って間隔を置いて配置されて、それに垂直な方向に延びるということを)決定されてよい。簡単に図6Bに目を向けると、例示的なグリッド600は、レイヤー608のような1つまたは複数のレイヤーを含んでよい。レイヤー608のようなレイヤーは、複数のノードを含んでよい。ノードは、レイヤー608のノード610のように、図に小さい○で示されているが、本明細書で説明されるノードは、グリッドの頂点および/またはセルによって識別される領域のようなグリッドの一部であってよいことが理解される。とにかく、図6Aは、第1の事前に画定された密度および/またはレイヤーの数に関連付けられてよい間隔612に従って、ルート602に沿って長手方向に間隔を置いてよいレイヤーを含む例示的なグリッド600を示す。さらに、レイヤーにおけるノードの数は、少なくとも部分的に第2の事前に画定された密度に基づいてよい(例えば、レイヤーに沿った距離内のノードの数、これは、ある例示におけるルートの横方向であってよい)。ある例示において、レイヤーに関連付けられる第1の密度および/またはレイヤーのノードに関連付けられる第2の密度は、少なくとも部分的に自律車両の速度および/または経路の精度/粒度の上限に基づいて決定されてよく、これは、ある例示において事前に画定されてよい。例示的なグリッド600のレイヤーは、ルート602に対して横方向に/直交して分配されるノードを含む。
【0043】
図6Bは、少なくとも部分的にルート616に基づいて生成され得る例示的なグリッド614を図示している。図6Bは、例示的なグリッド600のレイヤーが生成されることができることによって、レイヤーがルート616に沿って間隔を置いて配置されて、レイヤー618がルート616に対して横方向に/直交して配置されるノードを含み得るということをより説明することができる。レイヤーおよび/またはノードは、そうでなければ生成されてよい(例えば、少なくとも部分的にルート602および/またはマップに基づいて境界内にランダムに分配される)ということが理解される。
【0044】
図2に戻ると、ある例示において、グリッドは、少なくとも部分的に、参照のルートフレーム(例えば、ルートによって画定される空間)に基づいて生成されてよく、ここで、グリッドのノードは、ルートから長手方向、横方向、および/または角変位に関連付けられてよい。追加的または代替的な例示において、グリッドは、少なくとも部分的に、参照の慣性フレームに基づいて生成されてよく、これは、静止している自律車両および/または姿勢フレームを参照して、長手方向、横方向、および/または角度成分を含んでよく、これは、所与の慣性姿勢に対する長手方向、横方向、および/または角変位を含んでよい。グリッドは、ユークリッド座標、オイラー角、球座標、それらのいくつかの組み合わせなどによって画定されてよい。ルートの経路探索のような少なくとも1つの例示において、ルート参照フレームを用いて生成されるグリッドは、少なくとも部分的に、ルートに沿った長手方向の変位s、ルートからの横方向の変位ey、および/またはルートに関連付けられる角度からの進行方向の変位eθに基づいて画定されてよい。駐車している間に経路探索に対するような追加的または代替的な例示において、グリッドは、ユークリッド空間を含んでよい。
【0045】
動作208で、例示的なプロセス200は、本明細書で説明される技術のいずれかに従って、グリッドをサンプリングすることを含むことができる。例えば、グリッドのサンプリングは、グリッドのレイヤーのサブセットを選択すること(「長手方向のサンプリング」)、レイヤーの1つまたは複数のノードを選択すること(「横方向のサンプリング」)、および/または重複するレイヤーのノードを除外すること、および/または占有されているように識別される占有マップの一部の閾値距離内にあることを含む。レイヤーのサブセットを選択することは、少なくとも部分的に第1のサンプルレート(例えば、メートルごとに選択する最小、最大、および/または正確なレイヤーの数)に基づいてよく、これは、少なくとも部分的に自律車両の速度(少なくとも部分的にセンサーデータに基づいて決定される)に基づいてよく、選択するレイヤーの最小の数、これは、少なくとも部分的に、本明細書で説明される1つまたは複数のモーションプリミティブの(最大の)長さおよび/または占有マップ124に基づいてよい。
【0046】
第1のサンプルレートに基づく静的選択に加えて、またはその代わりに(例えば、すべてのo番目のレイヤーを選択すること、ここで、oは、正の整数である)、少なくとも1つの例示において、サブセットを選択することは、少なくとも部分的に占有マップ124に基づいて動的であってよい。ある例示において、例示的なグリッド600のサンプリングは、長手方向のサンプリング(例えば、例示的なグリッドの1つまたは複数のレイヤーを選択すること)および/または横方向のサンプリング(例えば、レイヤーの1つまたは複数のノードの選択すること)を含んでよい。サンプリングされたグリッド700は、図7により詳細に図示され、少なくとも部分的に占有マップ124および例示的なグリッド600に基づいて、動的に選択されたレイヤーのサブセット(少なくとも部分的に長手方向のサンプリングに基づいて選択されたレイヤーのサブセット)の例示を含む。例示的なグリッド600のノードは、○で示され、サンプルとして選択されたレイヤーおよび/またはノードを含む、サンプリングされたグリッド700のノードは、塗りつぶされた正方形を用いて図示される。
【0047】
ある例示において、レイヤーのサブセットに包含されるための例示的なグリッド600の第1のサンプルレイヤー702のレイヤー(図7で楕円で図示される)の動的選択は、第1のサンプルレイヤーに関連付けられる占有マップの第1のトポロジーを決定することを含んでよい。例えば、図7に目を向けると、これは、第1のサンプルレイヤー702に関連付けられる占有マップ124の一部の値の分配を決定することを含んでよい。例えば、第1のサンプルレイヤー702に関連付けられる占有マップ124の一部は、第1のサンプルレイヤー702のノードと交差する線(図示されていない)であってよく、占有マップ124に関連付けられてよく、および/またはそうでなければ、第1のサンプルレイヤー702に関連付けられている占有マップ124の領域であってよい。示される例示において、これらの値は、オブジェクト検出128に関連付けられる占有空間を含んでよく、そうでなければ自由空間を示してよい。
【0048】
第1のサンプルレイヤー702の動的選択は、追加的または代替的に、例示的なグリッド600の事前のレイヤー704に関連付けられる第2のトポロジーを決定することを含んでよい。明確にするために、楕円は、図7に事前のレイヤー704のノードを図示していないが、事前のレイヤー704は、第1のサンプルレイヤー702のノードのすぐ左側(開始ノード706に向けて)のノードのグループを含んでよい。示される例示において、事前のレイヤー704に関連付けられる第2のトポロジーは、自由空間だけ(つまり、事前のレイヤー704に関連付けられる占有マップ124の一部に関連付けられるオブジェクト検出がない)を示す。ある例示において、第1のサンプルレイヤー702のマップは、少なくとも部分的に、第1のトポロジーおよび第2のトポロジーの間の差が差閾値を満たすか、または超えるという決定することに基づいて、レイヤーのサブセットに包含されるためのサンプルとして選択される。少なくとも部分的にこの規則に基づいて、第1のサンプルレイヤー702の右側にある例示的なグリッド600の後の2つのレイヤーがそれらのレイヤーに関連付けられる占有マップ124のトポロジーが変化しないため、サブセットに包含されるために選択されることができないが、第2のサンプルレイヤー708は、第2のサンプルレイヤー708に関連付けられる第3のトポロジーが、第1のサンプルレイヤー702の右側、且つ第2のサンプルレイヤー708の左側の例示的なグリッド600のレイヤーに関連付けられるトポロジーと比較して、閾値差を満たすか、または超えることがあるため、選択されることができる。つまり、包含のために選択された次のレイヤーは、占有マップ124との重複が事前に選択されたレイヤーから保持、またはグリッド600における事前のレイヤーまでの閾値量を超えて異なる後続のレイヤーである。
【0049】
第3のサンプルレイヤー710および第4のサンプルレイヤー712は、静的サンプルレートと組み合わせて動的選択を実証することができる。例えば、サンプルレートは、追加的または代替的に、レイヤーの間の最小および/または最大の間隔を画定してよい。第3のサンプルレイヤー710は、少なくとも部分的にトポロジーの変化に基づいて選択されることができるとしても、第3のサンプルレイヤー710および第4のサンプルレイヤー712の間のレイヤーは、変化閾値を満たすかまたは超えるトポロジーの変化に関連付けられてよい。例えば、このような技術に従ってレイヤーを選択することは、1つまたは複数のオブジェクトの存在のため、占有マップによって識別される自由空間の形状の変化に関連付けられるレイヤーを選択することを含んでよい(例えば、具体的なレイヤーに関連付けられる自由空間は、最後に選択されたレイヤーに関連付けられる自由空間と比較して、トポロジー的に変更され、2つのレイヤーは、衝突のない異なる数の間隔を有し、最後に選択されたレイヤーの第1の衝突のない間隔は、具体的なレイヤーに関連付けられる第2の衝突のない間隔とは異なる長さを有する)。ある例示において、サンプルレートは、少なくとも部分的に、反復カウントのうちの少なくとも1つ、コスト閾値を満たすか、または超える合計コストに関連付けられるという決定される事前の経路の数、または環境における距離毎のノードの密度に基づいてよい。
【0050】
ある例示において、サンプルレイヤーとして第1のレイヤーを選択することは、追加的または代替的に、第2のレイヤーよりも第1のレイヤーが異なる数の自由空間の間隔(例えば、占有されていないように識別される占有マップの隣接する一部)に関連付けられ、および/または第1のレイヤーに関連付けられる第1の自由空間の間隔が第2のレイヤーに関連付けられる第2の自由空間の間隔とは異なる長さであるということを決定することに少なくとも部分的に基づいて第1のレイヤーを選択することを含んでよい。レイヤーをサンプリングすることは、「長手方向のサンプリング」と称されることがある。
【0051】
ある例示において、グリッドをサンプリングすることは、追加的または代替的に、サンプルノード(「横方向のサンプリング」)としてレイヤーの1つまたは複数のノードを選択することを含んでよい。例えば、第1のサンプルレイヤー702および第2のサンプルレイヤー708のノードは、少なくとも部分的に第2のサンプリングレートに基づいてサンプリングされている一方で、第3のサンプルレイヤー710および第4のサンプルレイヤー712のノードは、サンプリングされたグリッド700における占有マップによって示される占有空間に対応するノードを除去するためにサンプリングされるだけである。ある例示において、レイヤーから選択されるノードは、サンプルノードとの間の最短および/または最長間隔、ノードの密度、オブジェクト検出との間のノードの密度などを指定する第2のサンプルレートに少なくとも部分的に基づいてよい。ある例示において、レイヤーのサンプリングノードは、占有マップ124、開始ノード706(例えば、開始位置604に最も近いノード、開始位置604に近いノード)、終了ノード714(例えば、開始位置604に最も近いノード、開始位置604に近いノード)、および/または終了レイヤー716に少なくとも部分的に基づいて動的であってよい。例えば、サンプリングは、サンプリングされたグリッド700から、占有空間(またはその閾値距離内)に対応し、および/または自律車両が、ノード、および/または開始ノード706の距離閾値内の1つまたは複数のノード、終了ノード714、および/または終了レイヤー716を含む位置に配置される場合に衝突をもたらすこととなる任意のノードを除外することを含んでよい。ある例示において、最小の数のサンプルノードは、自由空間の間隔に関連付けられて選択されてよい。
【0052】
動作210で、例示的なプロセス200は、本明細書で説明される技術のいずれかに従って、ルート、占有マップ、および/または一組のモーションプリミティブに関連付けられるコストプロットに少なくとも部分的に基づいて、少なくとも1つの経路212に対して、サンプリングされたグリッド(またはここで動作208がスキップされる例示における非サンプリンググリッド)を探索することを含むことができる。図3に関してさらに説明されるように、一組のモーションプリミティブおよび/またはコストプロットは、事前に算定(例えば、算定されて、実行時に検索するために自律車両にアクセス可能なメモリに格納される)されてよい。ある例示において、サンプリングされたグリッドの探索は、サンプリングされたグリッドのサンプルノードの少なくともサブセットとの間に(隣接する)一組の接続を決定することを含んでよい。一組のサンプルノードの間との接続を決定することは、決定することに少なくとも部分的に基づいて、第1のノードと第2のノードとの間の接続を決定することを含んでよく、一組のモーションプリミティブに少なくとも部分的に基づいて、サンプリングされたグラフの1つまたは複数のノードが第1のノードに接続されてよい。ある例示において、1つまたは複数のノードは、有向グラフに格納されてよい。
【0053】
ある例示において、探索は、例えば、D*、D*lite、Focused Dynamic A*、A*、LPA*、Dijkstraのアルゴリズムなどのようなアルゴリズムを含んでよいが、探索および/または有向グラフおよび/または重み付け有向グラフを生成するための他の探索アルゴリズムが用いられてよい。ある例示において、探索は、少なくとも部分的に、サンプルノードおよびルールセットに基づく有向グラフを構成することに少なくとも部分的に基づいてよい。例えば、ルールセットは、同一のレイヤーの2つのノードが接続されてはならなく、および/または接続されるノードなどとの間の最短および/または最長距離(例えば、距離は、一組のモーションプリミティブの最大長に少なくとも部分的に基づいてよい)を指定してよい。
【0054】
ある例示において、例示的なプロセス200は、追加的または代替的に、探索に用いられる探索アルゴリズムを選択することができる。例えば、探索アルゴリズムを選択することは、少なくとも部分的に、自律車両の速度、算定時間および/もしくは探索専用の計算処理能力、ならびに/または知覚エンジンによって検出される状況および/もしくはルートによって決定される状況(例えば、自律車両が駐車のための経路を探している、自律車両が都市で動作するための経路を探している、自律車両が幹線道路で動作するための経路を探している)に基づいて、複数のアルゴリズムの中から探索アルゴリズムを選択することを含んでよい。
【0055】
探索は、終了位置および/または終了レイヤーから探索を開始してよく、開始位置への経路を探索するか、または探索は、開始位置から開始してもよく、終了位置および/または終了レイヤーへの経路を探索する。とにかく、探索は、まだ今のところ接続されていないノードを反復的に識別すること(例えば、ノードが衝突のないものであるということの決定に少なくとも部分的に基づいて、探索によって経路に追加された最後のノードに接続可能である(これは、探索がたった今開始した場合、開始ノードまたは終了ノードであってよい)、および/またはコストプロットにおける第1のコストに関連付けられることであり、ここで、第1のコストは、閾値コストおよび/または次のレイヤーの他のノードと比較して、最小のコストよりも小さくてよい)、ノードに関連付けられる衝突のないモーションプリミティブを識別すること、およびモーションプリミティブが衝突のない、および/または閾値コストよりも小さい第2のコストに関連付けられている場合、ノードおよびモーションプリミティブを経路に追加することを含んでよい。このような隣接する一組の接続が識別されると、隣接する一組は、経路212として出力されてよい。ある例示において、探索は、他の経路と比較して、最短の全長および/または最小の合計コストを有する経路212に少なくとも部分的に基づいて、多様な経路の中から多様な経路を決定してよく、且つ経路212を選択してよい。例えば、図8Aは、開始ノード800と終了ノード802との間のサンプリングされたグリッドを通して生成される多様な経路の例示を図示し、図8Bは、多様な経路の中から選択された経路212を図示している。追加的または代替的な例示において、探索が、最も安価および/または最短の経路が1つ存在する場合、見つけたことを保証するように構成されてよい。
【0056】
追加的または代替の例示において、探索は、探索によって生成される多様な経路の中から多様な同位のグループが存在するかを決定することができる。例えば、これはクラスタリングアルゴリズムを含んでよく、これは、ある例示において機械学習されてよく、経路との間の距離を決定すること、および距離が閾値よりも短いか(同一のグループ)、または距離が距離閾値を満たしているかもしくは超えているか(異なるグループ)を決定してよい。グループがどのように識別されるかに関係なく、探索は、第1のグループから主要経路を選択してよく、残りのq個のグループからp個の偶発的な経路を選択してよく、ここで、pおよびqは、正の整数であり、p≦qである。ある例示において、探索は、p+1個またはq+1個のグループから経路を選択してよく、それぞれの経路に関連付けられる合計コストを決定することに少なくとも部分的に基づいて、それぞれのグループから1つの経路を選択してよい。
【0057】
例えば、グループに対して選択された経路は、グループの他の経路と比較して、最小の合計コストである合計コストに関連付けられてよい。探索は、グループから選択された多様な経路の中から、多様な経路に関連付けられる合計コストと比較して、最小の合計コストである主要な経路に関連付けられる合計コストに少なくとも部分的に基づいて主要な経路を選択してよい。例えば、経路212は、第1のグループ804から選択されてよく、偶発的な経路214は、第2のグループ806から選択されてよい。経路212は、少なくとも部分的に、経路212に関連付けられる第1の合計コストおよび偶発的な経路214に関連付けられる第2の合計コストに基づいて、主要な経路として選択されてよい。
【0058】
探索は、第1のレイヤーの第1のサンプルノードと第2のレイヤーの第2のサンプルノードとの間に接続を作成するために決定することを含んでよい。
【0059】
図3は、例示的なプロセス200、例示的なプロセス300の追加的または代替的な一部のフロー図を図示し、これは、探索によって生成される経路が実行可能であるか否か、および経路が実行可能であるか/可能でない場合、何をすべきかを決定することを含んでよい。
【0060】
動作302で、例示的なプロセス300は、本明細書で説明される技術のいずれかに従って、探索によって生成される経路が実行可能なセットの制約を満たすかを決定することを含むことができる。経路が実行可能であるか/可能でないかのこの決定は、経路が開始位置から終了位置および/もしくは終了レイヤーまで隣接する一組の接続の経路を形成するということを検証すること、経路が衝突のないことを検証および/もしくは決定すること、経路に関連付けられる合計コストを決定すること、および/または合計コストがコスト閾値よりも小さいかを決定することを含んでよい。
【0061】
経路が実行可能である場合、例示的なプロセス300は、動作304に移行することができ、これは、経路を伝送することを含むことができる。経路を伝送することは、プランナーの別のコンポーネントによって用いられるためのプランナー、例えば、ドライブコンポーネントが経路を追うための命令を含む軌道を決定し得る軌道生成コンポーネントのうちの1つのコンポーネントによって経路を出力することを含んでよい。
【0062】
経路が実行可能ではない場合、例えば、経路がコスト閾値を満たすかまたは超えるという合計コストに関連付けられている場合、経路は、衝突がないわけではなく、経路は、対象ルートなどからの閾値の長さおよび/または閾値距離を満たすかまたは超え、例示的なプロセス300は、動作306に移行することができ、これは、反復カウントを決定することを含むことができる。例えば、経路を生成した後で、探索は、カウンターをインクリメントしてよく、カウンターが所定のカウント数に到達しているか否かを示すか(例えば、カウンターが所定の数を示すことによって値が示されるか)を決定してよい。
【0063】
反復カウントが到達した場合、例示的なプロセス300は、動作308に移行することができ、これは、探索に割り当てられる算定時間および/もしくは計算処理能力を増加させること、用いられる探索アルゴリズムを変更する(例えば、D*LiteからA*へ切り替えをする)こと、ならびに/または、例えば、モーションプリミティブのような代わりに車上で事前に算定されたものとして本明細書で説明されるデータの少なくとも一部を算定することを含んでよい。追加的または代替的に、動作308で、例示的なプロセス300は、失敗した状態を出力することを含んでよい。
【0064】
反復カウントに到達していない場合、例示的なプロセス300は、動作310に移行することができ、これは、動作208および/または動作210に戻ることを含むことができる。例えば、動作310は、第2のサンプリングされたグリッドを生成するためにグリッドを再サンプリングすることを含むことができる。再サンプリングは、前のサンプルグリッドと比較して、第2のサンプリングされたグリッドの解像度(ノードの数)を増加させる長手方向のサンプリングおよび/または横方向のサンプリングを含んでよい。長手方向のサンプリング(例えば、グリッドのレイヤーの選択)に少なくとも部分的に基づいて解像度を増加させることは、少なくとも部分的に、占有マップおよび/または長手方向のサンプリングに関連付けられる第1のサンプリングレートを増加させることに基づいて、例えば、動的な長手方向のサンプリングに関連付けられる変化閾値を減少させることによって、長手方向のサンプリングに関連付けられる感度を増加させることを含んでよい。追加的または代替的に、解像度を増加させることは、横方向のサンプリング(例えば、レイヤーのノードの選択)に関連付けられる第2のサンプリングレートを増加させることを含んでよい。再サンプリングされた後で、動作210での探索は、少なくとも部分的に再サンプリングされたグリッドに基づいて(例えば、探索に関連付けられる反復カウントまで)再実行されることができる。
【0065】
図4は、動作210での探索のうちの少なくとも一部の例示的なプロセス400のフロー図を図示しており、これは、第1のレイヤー404の第1のノード402を受信することを含んでよい。例えば、第1のノード402は、開始ノード、終了ノード、および/または終了レイヤーのノードであってよく、および/または第1のノード402は、事前の接続の後続のノード(例えば、次の後続/開始のノード)であってよい。示されている例示において、探索は、開始位置に関連付けられる開始ノードで開始して、経路の探索におけるこれまでに経路によって2つの接続が決定されている。追加的または代替的な例示において、探索は、終了ノードおよび/または終了レイヤーの別のノードから開始してよい(例えば、探索は、開始位置から終了位置またはその逆のいずれかの方向で実行されてよい)ということが理解される。ある例示において、終了ノードおよび/または終了レイヤーから開始ノードへの探索は、開始ノードから終了ノードおよび/または終了レイヤーへの探索よりも速く経路および/または最も安価な経路を見つける結果となることがある。示される例示における第1のノード402は、事前の接続406の後続のノードである。隣接する一組の接続を探索することにおいて、探索は、第1のノード402を接続する後続のレイヤーのうちの1つのノード(第1のレイヤー404を参照して後続すること)を決定してよい。ある例示において、探索は、モーションプリミティブに関連付けられる距離に少なくとも部分的に基づいて探索する後続のレイヤーの数を制限することがあり、ここで、「後続のレイヤー」は、探索の開始レイヤー(これは、探索が終了ノードおよび/または終了レイヤーから出ていることがあるため、開始ノードに関連付けられるレイヤーとは異なることがある)から次に最も遠くの(サンプル)レイヤーとして画定されてよい。例えば、探索は、図4に図示されるように、探索は、次の2つのレイヤーに限定してよいが、この数は、モーションプリミティブに関連付けられる長さに少なくとも部分的に基づいて変化してよい。
【0066】
第1のノード402に接続する後続のレイヤーのどのノードを決定するかは、占有マップ124、グリッド600またはサンプリングされたグリッド700、一組のモーションプリミティブ900、および/またはコストプロット408に少なくとも部分的に基づいてよく、これは、コストプロット1000Aおよび/または1000Bを表現してよい。
【0067】
動作410で、例示的なプロセス400は、本明細書で説明される技術のいずれかに従って、(サンプル)グリッド、占有マップ、一組のプリミティブ、および/またはコストプロットを受信することを含むことができる。例えば、知覚エンジンのコンポーネントは、占有マップおよび/または(サンプリングされた)グリッドを生成してよく、探索は、自律車両にアクセス可能なメモリから一組のプリミティブおよび/またはコストプロットを検索してよく、ここで、一組のプリミティブおよび/またはコストプロットは事前に算定される。
【0068】
動作412で、例示的なプロセス400は、本明細書で説明される技術のいずれかに従って、第1のレイヤー404の第1のノード402と後続のレイヤーのうちの1つの第2のノード414との間の接続を決定することを含むことができる。接続の決定は、占有マップ、一組のプリミティブ、および/またはコストプロットに少なくとも部分的に基づいてよい。例えば、接続を決定することは、動作416~426に少なくとも部分的に基づいてよく、これは、第2のノード414に関連付けられる第1のコスト(例えば、「行くためのコスト」)を決定すること、第1のノード402とコスト閾値よりも低く、または他のモーションプリミティブに関連付けられるコストよりも低い、第2のコストに関連付けられる第2のノード414との間のモーションプリミティブを決定すること、および/またはモーションプリミティブは、衝突のないということを決定することを含んでよい。ある例示において、動作416~426は、例えば、D*、D*lite、Focused Dynamic A*、A*、LPA*、Dijkstraなどのような探索アルゴリズムの一部であってよく、および/または探索アルゴリズムを含んでよい。ある例示において、動作416~426は、第1のノードに接続可能なノードのサブセットを見つけること、コストプロットによって示される次の未探索ノードに関連付けられる第1のコスト(例えば、「行くためのコスト」)に少なくとも部分的に基づいてノードのサブセットの次の未探索ノードを選択すること(例えば、次の未探索ノードが、他の未探索ノードに関連付けられる第1のコストよりも低い、共に関連付けられる第1のコストを有する未探索ノードであるということを決定すること)、ならびに/または(例えば、逆方向に探索する場合)車両の現在の位置および/もしくは方向から、またはグラフの前方に探索する場合、最終的に所望の位置および/もしくは方向に移動することに関連付けられる第2のコスト(例えば、「来るためのコスト」)を決定することを含むことができる。少なくともある例示において、このような第2のコストは、発見的なコストであってよく、事前に算定されてよい。このような例示において、(事前に算定されているが)発見的なコストは、最終(または開始)ノードと比較して、選択されたノードの位置および/または方向からの変換に少なくとも部分的に基づいて変更されることがある。
【0069】
動作416で、例示的なプロセス400は、本明細書で説明される技術のいずれかに従って、一組のプリミティブに少なくとも部分的に基づいて第1のノード402が接続し得る後続のレイヤーのノードのサブセット418(第1のノードにノード「接続可能」)を決定することを含むことができる。上記のように、探索する後続のレイヤーの数は、所定の数(例えば、2、3、5、10)、自律車両の速度、および/または一組のプリミティブに関連付けられる長さに少なくとも部分的に基づいてよい。ある例示において、第1のノード402が接続し得るノードのサブセットを決定することは、第1のサンプルノードで一組のモーションプリミティブのうちの第1のモーションプリミティブの開始を配置することに少なくとも部分的に基づいてよく、このように配置される場合に、第3のサンプルノードで終了する第1のモーションプリミティブを決定してよく、ノードのサブセットにおける第3のサンプルノードを含んでよい。例えば、図4は、第1のノード402が接続し得るノードのサブセット418を示している。第1のノード402が接続可能であるノードのサブセット418は、動作416の右の図に図示されるように、少なくとも1つのモーションプリミティブによって第1のノード402に接続する。ある例示において、動作416は、追加的または代替的に、第1のノード402をノードに接続する衝突のないモーションプリミティブがあるということを決定することを含むことができる。
【0070】
ある例示において、動作416は、追加的または代替的に、有向グラフを格納すること、および/またはノードのサブセット418を有向グラフに追加することを含むことができる。有向グラフは、第1のノード402がサブセット418の先行であり、および/またはサブセット418が第1のノード402の後続であるということを示すことによってなど、任意の適切な方法によってグラフの有向性を示してよい。有向グラフは、追加的または代替的に、事前の接続406、有向グラフに格納されたノードが探索に失敗したかの表示(例えば、動作422で選択され、動作424で失敗)/探索に成功した(例えば、動作422で選択され、動作424で成功)/探索していない(例えば、動作422でまだ/今までに選択されていない)などのような経路に追加された接続を格納してよい。ある例示において、有向グラフは、追加的または代替的に、接続に関連付けられる第2のコスト(例えば、動作426で決定される)を格納することができる。
【0071】
ある例示において、探索によって生成される経路に関連付けられる合計コストを決定することは、経路を構成する個々の接続に関連付けられる第2のコストを検索することを含んでよく、ここで、第2のコストおよび/または個々の接続(および/または共に関連付けられるモーションプリミティブ)は、有向グラフに関連して格納される。
【0072】
動作420で、例示的なプロセス400は、本明細書で説明される技術のいずれかに従って、少なくとも部分的に第1のノードに基づいて、後続のレイヤー(例えば、図4に図示される2つのレイヤー)の1つまたは複数のノード(例えば、動作416で決定されるノードのサブセット418)をコストプロットにマッピングすることを含んでよい。例えば、第2のノード414をコストプロットにマッピングすることは、第2のノード414を第2のノードが生成された座標空間(例えば、ルートフレーム、慣性フレーム)からコストプロットに関連付けられる空間(例えば、姿勢フレーム)にマッピングすることを含んでよい。ある例示において、グリッドは、少なくとも部分的に参照のルートフレームに基づいて生成されてよく、コストプロットは、少なくとも部分的に参照の姿勢フレームに基づいて生成されてよい。例えば、第2のノード414に関連付けられるコストを決定することは、第1のノード402に関連付けられる姿勢を参照姿勢(例えば、xr,yr,θr)として扱うことを含んでよく、第2のノードをコストプロットにマッピングすることは、第2のノード(例えば、x2,y2,θ2)に関連付けられる姿勢を空間に変換することを含んでよく、ここで、第1のノードに関連付けられる姿勢は、起点である。グリッドに関連付けられる座標空間からコストプロットに関連付けられる座標空間への第2のノードの変換は、少なくとも1つの例示において、以下のように表現されてよい。
【0073】
【数1】
【0074】
ここで、Tse2は、以下のように姿勢(例えば、x,y,θ)を表現することができる特別なユークリッド群である。
【0075】
【数2】
【0076】
動作422で、例示的なプロセス400は、本明細書で説明される技術のいずれかに従って、少なくとも部分的に第2のノード414に関連付けられる第1のコスト(例えば、「行くためのコスト」)に基づいて、第2のノード414を選択することを含むことができる。ある例示において、第2のノードに関連付けられる第1のコストは、第2のノードをコストプロットにマッピングすることに関連付けられるコストプロットTxr,yr,θr:(例えば、x2,y2,θ2)における位置によって示される値(つまり、第1のノードを参照姿勢として用いることが画定された参照の姿勢フレームにおける第2のノードの位置)であってよい。位置がコストプロットの外側にある場合、探索は、コストプロットの境界の外側の第2のノードの射影および/または共に関連付けられる射影コストを決定してよい。ある例示において、第1のコストに少なくとも部分的に基づいて第2のノード414を選択することは、コスト閾値よりも低く、および/または第2のレイヤーの他のノードに関連付けられるコストよりも低い第1のコストを決定するということ(例えば、第1のコストは、最小のコストであってよく、第1のコストは、後続のレイヤーの少なくとも別のノードのコストよりも小さいことがある)に少なくとも部分的に基づいてよい。
【0077】
動作424で、例示的なプロセス400は、本明細書で説明される技術のいずれかに従って、衝突がなく、第1のノードを第2のノードに接続する一組のモーションプリミティブのモーションプリミティブがあるかを決定することを含むことができる。このようなモーションプリミティブが見つからない場合、探索は、例えば、反復回数に到達するまで、および/またはサブセット418のそれぞれのノードが探索される(例えば、動作422で選択される)まで動作422に戻ってよく、この場合において、例示的なプロセス400は、動作310に移行してよく、および/または例示的なプロセス400は、バックトラッキングを含むことができ、これは、事前の接続406を除去すること、および新しい事前の接続を決定して、新しい次の接続を決定するために試みることを含んでよい。
【0078】
モーションプリミティブの衝突がないかを決定することは、式(3)に関して以下で説明される安全マージンコストを決定することを含んでよく、閾値安全マージンコストを超える安全マージンコストは、ある例示において示されてよい。追加的または代替的な例示において、モーションプリミティブが衝突なしであるかを決定することは、モーションプリミティブの弧長に等しい弧長、および自律車両の幅に対応する幅を有する形状を決定すること(例えば、幅は、自律車両の幅に等しくてよく、幅は、自律車両の幅の150%であってもよい)、形状の任意の一部が占有されているとして示される占有マップの一部と重複するかを決定することを含んでよい。図4は、衝突のないモーションプリミティブ428、および衝突に関連付けられる無効である無効なモーションプリミティブ430(例えば、モーションプリミティブ430が占有空間432と重複するため、とはいえ、モーションプリミティブは、衝突を引き起こす占有空間と重複する必要がないということに留意されたい)を図示している。
【0079】
ある例示において、モーションプリミティブが衝突に関連付けられているかを決定することは、自律車両を自律車両の幅に等しい直径を有する2つの円として表現することを含んでよく、ここで、第1の円は、自律車両の前車軸で中心に置いてよく、第2の円は、自律車両の後車軸で中心に置いてよい。ある例示において、自律車両および/または占有マップによって示される占有空間の表現は、エラーを説明するために拡張(例えば、円の直径および/または占有において占有されていると示される領域は、自律車両の幅の半分だけ拡張されることがある)されてよい。
【0080】
モーションプリミティブが第1のノードを第2のノードに接続するかを決定することは、一組のモーションプリミティブを第1のノードに関連付けられる慣性フレームおよび/またはルートフレームへと変換(例えば、上記の式(1)の反転)すること、およびモーションプリミティブが第1のノードで開始して、第2のノードで終了するということを決定することを含んでよい。モーションプリミティブが第1のノードで開始して、第2のノードで終了するということを決定することに少なくとも部分的に基づいて、探索は、第1のノードを第2のノードの先行として識別して、第2のノードを第1のノードの後継として識別することを含んでよい。ある例示において、探索は、第1のノードで開始して、第2のノードで終了するモーションプリミティブのサブセットを決定することを含んでよい。追加的または代替的に、探索は、少なくとも部分的に、サンプリングされたノードごとにこのようなサブセットを含む有向グラフ(例えば、それぞれのサンプリングされたノードの後継であるノードの識別および/または後継ノードをサンプリングされたノードに接続するモーションプリミティブの識別)に基づいてよい。ある例示において、このような有向グラフは、探索を実施する前に決定されてよい。例えば、図9Bは、先行ノードの例示、および経路におけるr番目のノードの先行ノードの後続に関連付けられるモーションプリミティブを図示している(902)。図9Bは、少なくとも部分的に探索に基づいて選択されたそれぞれのノード/接続に対するこのような描写を含む。
【0081】
動作426で、例示的なプロセス400は、本明細書で説明される技術のいずれかに従って、動作422で決定されるモーションプリミティブに関連付けられる第2のコスト(例えば、探索の方向に応じて、「来るためのコスト」または「行くためのコスト」)を決定すること、および/または少なくとも部分的に第2のコストに基づいて、第1のノードと第2のノードとの間の接続を経路に追加することを含んでよい。第2のコストは、自律車両の現在の姿勢および/または第1のノードに関連付けられる姿勢、モーションプリミティブの曲率、モーションプリミティブの少なくとも一部から占有されているとして識別される占有マップの一部までの第1の距離に少なくとも部分的に基づいている安全マージンコスト(例えば、占有マップによって示される1つまたは複数のオブジェクトからの第1ノードと第2のノードとの間のモーションプリミティブの距離)、第1のノードと第2のノードとの間のモーションプリミティブと事前のノードと第1のノードとの間の事前の接続に関連付けられる事前のモーションプリミティブとの間の第1の差(例えば、モーションプリミティブが事前のモーションプリミティブからどれだけ逸脱しているか)、開始位置、終了位置、および/または対象位置に関連付けられる車線からのモーションプリミティブの少なくとも一部の第2の距離、ならびに/または第1のノード、第2のノード、および/もしくはモーションプリミティブに関連付けられる第1の姿勢と終了位置および/もしくは終了レイヤーに関連付けられる第2の姿勢との間の第2の差に少なくとも部分的に基づいてよい。
【0082】
例えば、安全マージンコストを決定することは、モーションプリミティブによって第1のノードを第2のノードに少なくとも部分的に接続することに基づいて、以下の式を評価することを含んでよい。
【0083】
【数3】
【0084】
ここで、k0は、所定の一定の重み付けを含んでよく、k1は、安全マージン(例えば、自律車両が動作すべき距離からの事前に画定された最小距離)を含んでよく、およびd(s)は、弧長sの占有マップによって示される最も近いオブジェクトまでの距離を含んでよく、sfは、モーションプリミティブに沿った最終位置である。少なくともある例示において、このような距離d(s)は、占有マップに基づいて領域全体にわたって算定されることができることによって、上記のコストを決定することは、距離マップの検索を含むことができる。
【0085】
第1の姿勢と終了位置および/または終了レイヤーに関連付けられる第2の姿勢との間の第2の差(および共に関連付けられるコスト)を決定することは、以下の式を評価することを含んでよい。
【0086】
【数4】
【0087】
ここで、c0、c0、およびc0は、事前に決定される(例えば、機械学習された)重み付けであってよく、式は、第1のノード、第2のノード、および/またはモーションプリミティブに関連付けられる長手方向の位置と終了位置および/または終了レイヤーに関連付けられる長手方向の位置との間、第1のノード、第2のノード、および/またはモーションプリミティブに関連付けられる横方向位置と終了位置および/または終了レイヤーに関連付けられる横方向位置との間、および第1のノード、第2のノード、および/またはモーションプリミティブに関連付けられるヨーと終了位置および/または終了レイヤーに関連付けられるヨーとの間の合計の差を評価する。
【0088】
モーションプリミティブに関連付けられる、例えば、モーションプリミティブの曲率に関連付けられるコストを決定することは、以下の式を評価することを含んでよい。
【0089】
【数5】
【0090】
ここで、a0、a1、およびa2は、所定の重み付けであり、k(s)は、弧長sのモーションプリミティブの曲率であり、
【0091】
【数6】
【0092】
および/または
【0093】
【数7】
【0094】
は、一組のモーションプリミティブに関連して事前に算定されてよい。
【0095】
ある例示において、探索は、少なくとも部分的に第2のコストに基づいて、第1のノード402と第2のノード414との間に接続434を追加してよい。例えば、探索は、第2のコストがコスト閾値よりも低いという決定に少なくとも部分的に基づいて接続434を追加してよい。ある例示において、接続434を追加することは、モーションプリミティブおよび/または第2のコストを第1のノード402および第2のノード414に関連付けること(例えば、接続434を有向グラフにおける第1のノード402、第2のノード414、第2のコスト、および/または衝突のないモーションプリミティブ428に関連付けることによって)を含んでよい。ある例示において、第1のコストおよび/または第2のコストは、経路に関連して探索によって決定される合計コストの一部であってよい。ある例示において、例示的なプロセス400は、追加的または代替的に、第2のコストがコスト閾値よりも低いか否かに関係なく、第2のコストを有向グラフにおける第1のノード402および第2のノード414に関連付けることを含んでよい。それによって、有向グラフは、探索されたノードの記録および共に関連付けられる第2のコストを含んでよい。
【0096】
ある例示において、例示的なプロセス400の1つまたは複数の動作は、並列計算によって、例えば、グラフィックスプロセッシングユニット(GPU)によって達成されてよい。例えば、動作416は、追加的または代替的に、一組のモーションプリミティブに関連付けられる境界の外側にある(例えば、最大のx、y、および/または第1のノード402から離れたθ)後続のレイヤーのノードを除外すること、および残りのそれぞれのノードに関連付けられるスレッドまたは他の並列プロセスを生成することを含んでよい。同様な例示において、例えば、ノードとの間のすべての可能な接続のうちのすべての可能なおよび/またはサブセットが決定されるそれらにおいて、このような並列計算は、すべての可能な経路に関連付けられるすべてのコストを算定することを含んでよい。スレッド/並列処理は、並列処理が可能な処理ユニットの異なるコアおよび/またはパイプライン(例えば、GPUのパイプライン、中央処理ユニット(CPU)のマルチスレッドおよび/またはコア)に割り当てられてよく、異なるそれぞれのコアおよび/またはパイプラインで並列に、第1のノードを残りのノードのそれぞれに接続するモーションプリミティブが存在するかを決定してよい。動作412および/または416~426は、同様の方法で達成されることができる。ある例示において、多様な探索が並行して同時に実施されてよく、および/または異なるノードが並行して探索されてよい。
【0097】
図5は、一組のモーションプリミティブおよび/またはコストプロットを決定するための例示的なプロセス500を図示する。動作502で、例示的なプロセス500は、本明細書で説明される技術のいずれかに従って、一組のモーションプリミティブおよび/または共に関連付けられるコストを決定することを含むことができる。例えば、ある例示において、一組のモーションプリミティブは、一組のモーションプリミティブのリモートコンピューティングデバイスおよび/または自律車両(例えば、自律車両がアイドリングをしている場合/現在ミッションを達成していない、自律車両が評価および/または維持されている場合に)によって事前に算定(例えば、実行時間の前に本明細書で説明される動作を実施)されてよい。ある例示において、一組のモーションプリミティブは、先行ノード/後継ノードの組の指示を含んでよい。図9Aは、一組のモーションプリミティブ900を図示する。ある例示において、セットは、数百または数千のモーションプリミティブを含んでよいが、図9Aに図示される例示は、明確にするために、数十のモーションプリミティブ900を含んでもよい。ある例示において、モーションプリミティブは、多項式線、3次スパイラル、ベジェ、クロソイドなどのような自律車両の実行可能な動きの表現であってよい。例えば、モーションプリミティブは、[0,sf]の範囲における任意の弧長、sに対する以下のようなパラメーターa、b、c、dおよびsfを有する3次多項式として表現されてよい。
【0098】
【数8】
【0099】
【数9】
【0100】
【数10】
【0101】
【数11】
【0102】
ここで、a、b、c、およびdは、以下のように表現されてよい。
【0103】
【数12】
【0104】
【0105】
追加的または代替的に、一組のモーションプリミティブを決定することは、参照の慣性フレームにおける第1の姿勢および第2の姿勢を接続するパラメーターを有するモーションプリミティブを決定することを含んでよい。例えば、一組のモーションプリミティブを決定することは、少なくとも部分的に所定の解像度および1つまたは複数の平滑性の制約(例えば、パラメーターの最小値および/または最大値)に基づいて、起点(例えば、参照姿勢)を対象姿勢に接続して、境界空間におけるすべての可能な対象姿勢を通して反復するモーションプリミティブを決定してよく、モーションプリミティブが不安定または不快なステアリング制御を引き起こさないということを確実にする。ある例示において、平滑性の制約は、少なくとも部分的に、車両に関連付けられる速度範囲に基づいてよい。ある例示において、多様な一組のモーションプリミティブは、異なる速度範囲に対して生成されてよい(例えば、第1のモーションの一組のプリミティブは、第1の速度範囲、例えば、少なくとも部分的に、第1の一組の平滑性の制約に基づいて、毎時80~100キロメートルに対して生成されてよい)。例えば、平滑性の制約は、速度が増加するにつれてパラメーターをより多く(例えば、値の減少)制約してよく、より高速のためのより滑らかな/直線的なモーションプリミティブをもたらす。一組のモーションプリミティブ900は、x=5、y=1、および
【0106】
【数13】
【0107】
の解像度を有するこのような一組のモーションプリミティブを示す。数百または数千のモーションプリミティブを生成するための追加的または代替的な例示において、解像度は、x=0.2、y=0.2、θ=0.2であってよい。
【0108】
ある例示において、一組のモーションプリミティブを決定することは、例えば、起点から出ていて、解像度の倍数である位置(例えば、x=0.2、y=0.2、θ=0.2の倍数で境界まで)で終了するスパイラル/多項式/ベジェなどに関連付けられるパラメーターに対して、関数の根を見つけるためのニュートン法を介して解くことを含んでよい。例えば、ハレー法、割線法、シュテッフェンゼン法、ブレント法などのような他の求根法は、パラメーターを解くことに用いられてよい。
【0109】
ある例示において、一組のモーションプリミティブを決定することは、並列計算(例えば、多様なグラフィックスプロセッシングユニット(GPU)パイプラインおよび/または多様な中央処理装置(CPU)コアを用いることによるなど、多様なプロセッサ/プロセッサコアの中で分割される)として実施されてよい。
【0110】
動作504で、例示的なプロセス500は、本明細書で説明される技術のいずれかに従って、少なくとも部分的に一組のモーションプリミティブに基づいてコストプロットを決定することを含むことができる。ある例示において、コストプロットの起点は、参照姿勢および/または参照の慣性状態に関連付けられてよく、コストプロットにおける位置は、姿勢を最小のコストに関連付けられる位置および/またはモーションプリミティブによって識別される姿勢に変更する最小のコストを識別してよい。例えば、コストプロットは、参照姿勢506(xr=0、yr=0、θr=90°)から対象姿勢508(xt=12、yt=4、θt=130°)への移動に関連付けられる最小のコスト(および/または最小のコストに関連付けられるモーションプリミティブ)を含んでよく、ここで、参照姿勢506は、コストプロットの起点に関連付けられてよく、対象姿勢508は、コストプロットの位置に関連付けられてよく、位置に関連付けられる値は、最小のコストおよび/またはモーションプリミティブのパラメーターを含んでよい。コストプロットを決定することは、動作510での解像度に少なくとも部分的に基づいて可能な姿勢のグリッドを生成すること、動作512での一組のモーションプリミティブに少なくとも部分的に基づいて到達可能なセルの接続性を決定すること、ならびに/または動作514での接続されるセルとの間に共に関連付けられるコスト(例えば、最小のコスト)および/もしくはモーションプリミティブを決定することを含んでよい。ある例示において、1つまたは複数の動作510~514は、Dijkstraまたは他の同様なアルゴリズムの一部であってよい。
【0111】
動作510で、例示的なプロセス500は、本明細書で説明される技術のいずれかに従って、可能な姿勢のグリッドを生成することを含むことができる。ある例示において、動作510は、特別なユークリッド空間を、姿勢を示すセルへと離散化することを含むことができる。
【0112】
動作512で、例示的なプロセス500は、本明細書で説明される技術のいずれかに従って、少なくとも部分的に一組のモーションプリミティブに基づいて到達可能なセルの接続性を決定することを含むことができる。例えば、動作512で、一組のモーションプリミティブのうちの少なくとも1つのモーションプリミティブ(サブセット)が、コストプロットの起点516をセル518に接続するかを決定する(例えば、モーションプリミティブの開始が起点516に位置される場合に、モーションプリミティブの終端がセル518に接触する)ことを含むことができる。
【0113】
動作514で、例示的なプロセス500は、本明細書で説明される技術のいずれかに従って、起点をセルに接続するモーションプリミティブのサブセットのそれぞれのモーションプリミティブに関連付けられるコストを決定することを含むことができる。モーションプリミティブに関連付けられる、例えば、モーションプリミティブの曲率に関連付けられるコストを決定することは、以下の式を評価することを含んでよい。
【0114】
【数14】
【0115】
ここで、a0、a1、およびa2は、所定の重み付けであり、k(s)は、弧長s、および
【0116】
【数15】
【0117】
、および/または
【0118】
【数16】
【0119】
のモーションプリミティブの曲率である。プリミティブに関連付けられるこのようなモーションコストは、事前に算定されてよく、プリミティブに関連付けられてよく、コストの速い検索を可能にする。
【0120】
ある例示において、動作514は、サブセットに関連付けられる1つまたは複数のコストの中から最小のコストを決定すること、および最小のコストをセル518の位置に関連付けることを含むことができる。動作514は、追加的または代替的に、最小のコストに関連付けられるモーションプリミティブのパラメーターをセル518に関連付けることができる。
【0121】
504と同様の動作(実質的に同時に実行されるか、連続して実行されるか、またはそうでないかにかかわらず)は、実行されてよく、使用された追加のコストを算定する。非限定的な例示として、発見的な(第1の)コストは、所望の終了位置および/または方向に対してすべての可能性のある開始位置のために算定されてよく、このようなコストは、コストプロット1000aのようなコストプロットに格納される。
【0122】
動作520で、例示的なプロセス500は、本明細書で説明される技術のいずれかに従って、コストプロットおよび/または一組のモーションプリミティブを伝送することおよび/または格納することを含むことができる。例えば、リモートコンピューティングデバイスは、コストプロット(例えば、コストプロット1000A)および/または一組のモーションプリミティブを1つまたは複数の自律車両に伝送してよく、およびに/または自律車両は、コストプロットおよび/または一組のモーションプリミティブを格納してよい。ある例示において、多様なコストプロットは、異なる一組のモーションプリミティブに関連して生成されてよい(例えば、ここで、多様な一組のモーションプリミティブが異なる速度の範囲に関連して生成される)。
【0123】
図10Aおよび図10Bは、例示的なコストプロット1000のそれぞれの部分を図示する。コストプロット1000Aは、コストプロット1000Bによって指定されるxおよびyの位置に関連付けられるコスト値(より暗い色合いは、より低いコストを示し、より明るい色合いは、より高いコストを示す)を示し、これは、示される例示におけるそれぞれの位置に対する最小のコストヨーであってよい。さまざまな例示において、このようなコストプロットは、上記で指定されるように、発見的なコストに関連付けられてよい。本明細書でさらに詳細に説明されるように、このようなコストプロットの外側にある初期位置は、コストプロットにおける最も近接するポイントまたはポイントの補間(または外挿)に基づいて推定されてよい。
【0124】
(例示的なシステム)
図11は、本明細書で説明される技術を実装する例示的なシステムのブロック図を図示する。ある例示において、システム1100は、車両1102を含んでよく、これは、図1における自律車両102に対応してよい。ある例示において、自律車両1102は、米国国家幹線道路交通安全局によって発行されたレベル5分類に従って動作するように構成される自律車両であってよく、これは、運転者(または乗員)の常時車両制御を期待することなく全行程に対するすべてのセーフティクリティカルな機能を実行することが可能である車両を説明する。しかしながら、他の例示において、車両1102は、他のレベルまたは分類を有する完全なまたは部分的な自律車両であってよい。さらに、ある例示において、本明細書で説明される技術は、非自律車両によって使用可能であってもよい。本明細書で説明される技術は、自律車両のようなロボット制御を越えるものに適用されてよいことが企図される。例えば、本明細書で説明される技術は、ビデオゲーム、製造、拡張現実などに適用されてよい。
【0125】
車両1102は、車両コンピューティングデバイス1104、1つまたは複数のセンサー1106、1つまたは複数のエミッター1108、1つまたは複数のネットワークインターフェース1110、および/または1つまたは複数の駆動コンポーネント1112を含んでよい。ある例示において、車両コンピューティングデバイス1104は、コンピューティングデバイス104を表現してよく、および/またはセンサー1106は、センサー126を表現してよい。
【0126】
ある例示において、センサー1106は、ライダーセンサー、レーダーセンサー、超音波トランスデューサー、ソナーセンサー、位置センサー(例えば、全地球測位システム(GPS)、コンパスなど)、慣性センサー(例えば、慣性測定ユニット(IMU)、加速度計、磁気計、ジャイロスコープなど)、画像センサー(例えば、カメラ、例えば、赤-緑-青(RGB)、赤外線(IR)、強度、深度、飛行時間など)、マイク、ホイールエンコーダー、環境センサー(例えば、温度センサー、湿度センサー、光センサー、圧力センサーなど)などを含んでよい。センサー1106は、これらまたは他のタイプのセンサーのそれぞれの多様な例示を含んでよい。例えば、ライダーセンサーは、車両1102の角部、前部、後部、側部、および/または上部に位置する個々のライダーセンサーを含んでよい。別の例示として、カメラは、車両1102の外部および/または内部についてのさまざまな位置に配置される多様なカメラを含んでよい。センサー1106は、車両コンピューティングデバイス1104に入力を提供してよい。
【0127】
車両1102は、また、光および/または音を発するためのエミッター1108を含んでよい。この例示においてエミッター1108は、内部オーディオおよび視覚エミッターを含んでよく、車両1102の乗員と通信する。限定ではなく例示として、内部エミッターは、スピーカー、光、標識、ディスプレイスクリーン、タッチスクリーン、触覚エミッター(例えば、振動および/または力フィードバック)、機械式アクチュエータ(例えば、シートベルトテンショナー、シートポジショナー、ヘッドレストポジショナーなど)などを含んでよい。この例示におけるエミッター1108は、また、外部エミッターを含んでよい。限定ではなく例示として、この例示における外部エミッターは、移動の方向の信号を送る光、もしくは車両のアクションの他のインジケーター(例えば、インジケーターの光、標識、ライトアレイなど)、ならびに歩行者、または音響ビームステアリング技術を含む1つまたは複数の近隣の他の車両と音響で通信する1つまたは複数のオーディオエミッター(例えば、スピーカー、スピーカーアレイ、ホーンなど)を含む。
【0128】
車両1102は、また、車両1102と1つまたは複数の他のローカルもしくはリモートコンピューティングデバイスとの間の通信を可能にするネットワークインターフェース1110を含んでよい。例えば、ネットワークインターフェース1110は、車両1102および/または駆動モジュール1112上の他のローカルコンピューティングデバイスとの通信を容易にすることができる。また、ネットワークインターフェース1110は、追加的または代替的に、車両が他の近くのコンピューティングデバイス(例えば、他の近くの車両、交通信号など)と通信することを可能とすることができる。ネットワークインターフェース1110は、追加的または代替的に、車両1102がコンピューティングデバイス1114と通信することを可能とすることができる。ある例示において、コンピューティングデバイス1114は、分散コンピューティングシステム(例えば、クラウドコンピューティングアーキテクチャ)の1つまたは複数のノードを含んでよい。
【0129】
ネットワークインターフェース1110は、車両コンピューティングデバイス1104を別のコンピューティングデバイスまたはネットワーク1116のようなネットワークに接続するための物理的および/または論理的インターフェースを含んでよい。例えば、ネットワークインターフェース1110は、IEEE 802.11規格によって定義された周波数、ブルートゥース(登録商標)のような短距離無線周波数、セルラー通信(例えば、2G、3G、4G、4G LTE、5Gなど)、またはそれぞれのコンピューティングデバイスが他のコンピューティングデバイスとインターフェースすることを可能にする任意の適切な有線もしくは無線通信プロトコルを介するようなWi-Fiベースの通信を可能にしてよい。ある例示において、車両コンピューティングデバイス1104および/またはセンサー1106は、所定の期間の経過後で、ほぼリアルタイムなどで、ネットワーク1116を介して、特定の周波数でセンサーデータをコンピューティングデバイス1114に送信してよい。
【0130】
ある例示において、車両1102は、1つまたは複数の駆動コンポーネント1112を含んでよい。ある例示において、車両1102は、1つの駆動コンポーネント1112を有してよい。ある例示において、駆動コンポーネント1112は、駆動コンポーネント1112の状態および/または車両1102の周囲を検出するための1つまたは複数のセンサーを含んでよい。限定ではなく例示として、駆動コンポーネント1112のセンサーは、駆動コンポーネントの車輪の回転を感知するための1つまたは複数のホイールエンコーダー(例えば、回転エンコーダー)、駆動コンポーネント、カメラまたは他の画像センサーの方向と加速度を測定する慣性センサー(例えば、慣性測定ユニット、加速度計、ジャイロスコープ、磁気計など)、駆動コンポーネントの周囲のオブジェクトを音響的に検出する超音波センサー、ライダーセンサー、レーダーセンサーなどを含んでよい。ホイールエンコーダーのようなあるセンサーは、駆動コンポーネント1112に固有であってよい。ある場合において、駆動コンポーネント1112上のセンサーは、車両1102の対応するシステム(例えば、センサー1106)と重複するか、または補足してよい。
【0131】
駆動コンポーネント1112は、高電圧バッテリー、車両を推進するモーター、バッテリーからの直流電流を他の車両システムによって利用される交流電流へと変換するインバーター、ステアリングモーターおよびステアリングラック(これは、電動であってよい)を含むステアリングシステム、油圧または電気アクチュエータを含むブレーキシステム、油圧および/または空気圧コンポーネントを含むサスペンションシステム、トラクションの損失を軽減し、且つ制御を維持するよう制動力の分散をするためのスタビリティー制御システム、HVACシステム、照明(例えば、車両の外部周囲を照らすヘッド/テールライトなどの照明)、および1つまたは複数の他のシステム(例えば、冷却システム、安全システム、車載充電システム、DC/DCコンバーター、高電圧ジャンクション、高電圧ケーブル、充電システム、充電ポートのような他の電装コンポーネント)を含む多くの車両システムを含んでよい。さらに、駆動コンポーネント1112は、センサーからデータを受信して、前処理をし得る駆動コンポーネントコントローラーを含んでよく、さまざまな車両システムの動作を制御する。ある場合において、駆動コンポーネントコントローラーは、1つまたは複数のプロセッサ、および1つまたは複数のプロセッサと通信可能に結合されるメモリを含んでよい。メモリは、1つまたは複数のコンポーネントを格納してよく、駆動コンポーネント1112のさまざまな機能を実行する。さらに、駆動コンポーネント1112は、また、それぞれの駆動コンポーネントによって、1つまたは複数の他のローカルコンピューティングデバイスまたはリモートコンピューティングデバイスとの通信を可能にする1つまたは複数の通信接続を含んでよい。
【0132】
車両コンピューティングデバイス1104は、1つまたは複数プロセッサ、プロセッサ1118、および1つまたは複数のプロセッサ1118と通信可能に結合されるメモリ1120を含んでよい。コンピューティングデバイス1114は、追加的または代替的に、プロセッサ1122、および/またはメモリ1124を含んでよい。プロセッサ1118および/または1122は、本明細書で説明されるように、命令を実行することが可能である任意の適切なプロセッサであってよく、データを処理して、動作を実行する。限定ではなく例示として、プロセッサ1118および/または1122は、1つまたは複数の中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)、集積回路(例えば、特定用途向け集積回路(ASIC)など)、ゲートアレイ(例えば、フィールドプログラマブルゲートアレイ(FPGA)など)、ならびに/または電子データを処理して、その電子データをレジスタおよび/もしくはメモリに格納され得る他の電子データへと変換する任意の他のデバイスもしくはデバイスの一部を含んでよい。
【0133】
メモリ1120および/または1124は、非一時的なコンピュータ可読媒体の例示であってよい。メモリ1120および/または1124は、オペレーティングシステムおよび1つまたは複数のソフトウェアアプリケーション、命令、プログラム、および/またはデータを格納してよく、本明細書で説明される方法およびさまざまなシステムに起因する機能を実装する。さまざまな実装において、メモリは、スタティックRAM(SRAM)、シンクロナスDRAM(SDRAM)、不揮発性/フラッシュタイプメモリ、または情報を格納することが可能である任意の他のタイプのメモリのような任意の適切なメモリ技術を用いて実装されてよい。本明細書で説明される、アーキテクチャ、システム、および個々のエレメントは、多くの他の論理的、プログラム的、および物理的なコンポーネントを含んでよく、それらのうちの添付図面に示されるものは、単に本明細書での説明に関連する例示に過ぎない。
【0134】
ある例示において、メモリ1120は、知覚エンジン106を表現し得る知覚エンジン1126、および/またはプランナー108を表現し得るプランナー1128を格納してよく、これらのいずれかまたは両方は、ハードウェア、ソフトウェア、またはそれらの何らかの組み合わせを含んでもよい。メモリ1120は、追加的または代替的に、1つまたは複数のシステムコントローラー1130を格納してよく(これは、追加的または代替的にハードウェアとして実装されてよく)、これは、車両1102のステアリング、推進、ブレーキ、安全、エミッター、通信、および他のシステムを制御するように構成されてよい。これらのシステムコントローラー1130は、駆動コンポーネント1112および/または車両1102の他のコンポーネントの対応するシステムと通信してよく、および/または制御してよい。例えば、プランナーは、経路のような知覚エンジン1126および/またはプランナー1128の出力に少なくとも部分的に基づいて、車両1102を制御するための命令を生成してよく、命令をシステムコントローラー1130に伝送してよく、これは、少なくとも部分的に命令に基づいて車両1102の動作を制御してよい。
【0135】
ある例示において、メモリ1120および/またはメモリ1124は、本明細書で説明されるように、これらのモーションプリミティブおよび/またはコストプロットのような一組のモーションプリミティブに関連して一組のモーションプリミティブ1132および/またはコストプロット1134を格納してよい。ある例示において、メモリ1124は、追加的または代替的に、モーションプリミティブおよび/またはコストプロットジェネレーター1136を格納してよい。ある例示において、モーションプリミティブおよび/またはコストプロットジェネレーター1136は、機械学習(ML)モデル(例えば、ニューラルネットワーク)および/または並列処理コンポーネントを含んでよい。
【0136】
本明細書で説明されるように、例示的なニューラルネットワークは、出力を生成するために連続して接続されるレイヤーを通して入力データを渡す生物学的に着想を得たアルゴリズムである。ニューラルネットワークにおけるそれぞれのレイヤーは、また、別のニューラルネットワークを含むことが可能であり、または任意の数のレイヤーを(畳み込みであろうとなかろうと)含むことが可能である。
【0137】
本開示の脈絡で理解されることが可能であるように、ニューラルネットワークは、機械学習を利用することが可能であり、これは、出力が学習されたパラメーターに基づいて生成されるこのようなアルゴリズムの幅広いクラスを参照することが可能である。ニューラルネットワークの脈絡で説明されるものの、任意のタイプの機械学習が本開示と整合するように用いられることが可能である。例えば、機械学習アルゴリズムは、回帰アルゴリズム(例えば、通常最小二乗回帰(OLSR)、線形回帰、ロジスティック回帰、段階的回帰、多変量適応回帰スプライン(MARS)、ローカル的推定スキャッタープロットの平滑化(LOESS)、例示に基づいたアルゴリズム(例えば、リッジ回帰、最小絶対収縮および選択演算子(LASSO)、弾力ネット、最小角度回帰(LARS)、決定木アルゴリズム(例えば、分類および回帰木(CART)、iterative dichotomiser 3(ID3)、カイ二乗自動相互作用検出(CHAID)、決定切り株、条件付き決定木)、ベイジアンアルゴリズム(例えば、ナイーブベイズ、ガウスナイーブベイズ、多項ナイーブベイズ、Average one-depence estimators(AODE)、ベイジアンビリーフネットワーク(BNN)、ベイジアンネットワーク)、クラスタリングアルゴリズム(例えば、k平均、kメジアン、期待値の最大化(EM)、階層的クラスタリング)、相関ルール学習アルゴリズム(例えば、パーセプトロン、誤差逆伝搬、ホップフィールドネットワーク、動径基底関数ネットワーク(RBFN))、深層学習アルゴリズム(例えば、深層ボルツマンマシン(DBM)、深層ビリーフネットワーク(DBN)、畳み込みニューラルネットワーク(CNN)、積層オートエンコーダー)、次元縮小アルゴリズム(例えば、主成分分析(PCA)、主成分回帰(PCR)、部分最小二乗回帰(PLSR)、サモンマッピング、多次元尺度構成法(MDS)、射影追跡、線形判別分析(LDA)、混合判別分析(MDA)、二次判別分析(QDA)、柔軟判別分析(FDA))、アンサンブルアルゴリズム(例えば、ブースティング、ブートストラップアグリゲーション(バギング)、アダブースト、積層ジェネラリゼーション(ブレンディング)、勾配ブースティングマシン(GBM)、勾配ブースト回帰木(GBRT)、ランダム森)、SVM(サポートベクターマシン)、教師あり学習、教師なし学習、半教師あり学習などに限定はされないが含むことが可能である。アーキテクチャのさらなる例示は、ResNet50、ResNet101、VGG、DenseNet、PointNetなどのようなニューラルネットワークを含む。
【0138】
図11は、分散システムとして図示される一方で、代替的な例示において、車両1102のコンポーネントは、コンピューティングデバイス1114に関連付けられてよく、および/またはコンピューティングデバイス1114のコンポーネントは、車両1102に関連付けられてよいことに留意されたい。つまり、車両1102は、コンピューティングデバイス1114に関連付けられる1つまたは複数の機能を実行してよく、逆もまた同様である。
【0139】
(例示的な条項)
A.方法は、環境における開始位置および終了位置に関連付けられるルートを受信すること、センサーからセンサーデータを受信すること、センサーデータに少なくとも部分的に基づいて、環境における空間が占有されているか占有されていないかを示すデータ構造を決定すること、少なくとも部分的にルートに基づいて、ルートに沿って間隔を置いて配置される1つまたは複数のレイヤーを含む第1のグリッドを決定すること、環境における異なる位置に関連付けられる複数のノードを画定すること、少なくとも部分的にデータ構造に基づいて、ノードのサブセットを決定すること、ノードのサブセット、コストプロット、および一組の可能性のあるモーションに少なくとも部分的に基づいて、開始位置と終了位置または終了レイヤーのうちの少なくとも1つとの間の経路を決定することであって、コストプロットは、位置および方向の範囲から所望の位置および方向に移動するコストを示す一組の値を含むこと、および少なくとも部分的に経路に基づいて自律車両を制御することを備える。
【0140】
B.段落Aに記載の方法であって、一組の可能性のある動きの可能性のある動きは、モーションコストに関連付けられ、方法は、第2のノードおよびコストプロットに少なくとも部分的に基づいて、第1のコストを決定すること、少なくとも部分的にモーションコストに基づいて、ノードのサブセットの第1のノードと第2のノードとの間の接続を決定することであって、経路は、接続を含むことをさらに備える。
【0141】
C.段落AまたはBに記載の方法であって、一組の可能性のあるモーションの可能性のあるモーションは、複数のセルを含む第2のグリッドを生成することであって、複数のセルの第1のセルは、自律車両の第1の姿勢を表現して、複数のセルの第2のセルは、自律車両の第2の姿勢を表現すること、および第1のセルから第2のセルまで自律車両によってたどる場合に、自律車両に第2の姿勢と整列させることとなる曲線を決定することに少なくとも部分的に基づいて事前に算定される。
【0142】
D.段落A~Cのいずれか1つに記載の方法であって、ノードのサブセットを決定することは、データ構造の第1の占有空間に関連付けられる第1のレイヤーの第1のノードの数が、データ構造の第2の占有空間に関連付けられる第1のレイヤーの事前の第2のノードの数と異なるという決定に少なくとも部分的に基づいて、1つまたは複数のレイヤーの第1のレイヤーをサンプルレイヤーとして決定すること、または少なくとも部分的にサンプルレートに基づいて第1のレイヤーの1つまたは複数のノードをサンプルノードとして決定することのうちの少なくとも1つを含むデータ構造に少なくとも部分的に基づいている。
【0143】
E.段落A~Dのいずれか1つに記載の方法であって、経路を決定することは、探索を含み、探索は、第1の探索であり、サンプルレイヤーは、第1の一組のサンプルレイヤーの第1のサンプルレイヤーであり、サンプルノードは、第1のサンプルノードであり、サンプルレートは、第1のサンプルレートであり、方法は、閾値時間量または閾値反復回数数内で、第1の探索が実行可能な経路を識別することができないということを決定すること、サンプルノードの合計数を増加させるために、第2の一組のサンプルレイヤーまたは第2のサンプルノードのうちの少なくとも1つを決定すること、および第2のサンプルノードにわたって第2の探索に少なくとも部分的に基づいて、第2の経路を決定することをさらに含む。
【0144】
F.段落A~Eのいずれか1つに記載の方法であって、探索は、終了位置または終了レイヤーのうちの少なくとも1つから開始位置までの一組の経路を決定することであって、一組の経路は、終了位置または終了レイヤーと開始位置との間のすべての可能な経路よりも少ないこと、一組の経路が第1の経路グループおよび第2の経路グループを含むということを決定すること、一組の経路が第1の経路グループと第2の経路グループとを含むということを、第1の経路グループの間の第1の距離が閾値距離よりも短く、第2の経路グループの間の第2の距離が閾値距離よりも短いということを決定することに少なくとも部分的に基づいて決定することであって、第1のグループは、第1の経路を含むこと、および第1の経路を主要な経路として出力して、第2のグループからの第2の経路を偶発的な経路として出力することを含む。
【0145】
G.システムは、1つまたは複数のプロセッサ、および1つまたは複数のプロセッサによって実行される場合に、システムに、環境における開始位置および終了位置に関連付けられるルートを受信すること、センサーからセンサーデータを受信すること、少なくとも部分的にセンサーデータに基づいて、環境の一部が占有されているかを識別するデータ構造を決定すること、少なくとも部分的にルートに基づいて、ルートに沿った1つまたは複数のレイヤーを含むグリッドを決定することであって、1つまたは複数のレイヤーの個々のレイヤーは、ルートの一部に関連付けられて、複数のノードを含むこと、サンプルノードとして選択することであって、グリッドおよびデータ構造、1つまたは複数のレイヤーの1つまたは複数のノードに少なくとも部分的に基づくこと、およびサンプルノードとの間の一組の接続の探索に少なくとも部分的に基づいて、終了位置または終了位置に関連付けられる終了レイヤーのうちの少なくとも1つと開始位置との間の第1の経路を決定することであって、探索は、データ構造および1つまたは複数のモーションプリミティブに関連付けられる一組の値に少なくとも部分的に基づいていることを含む動作を実行させるプロセッサ実行可能命令を格納するメモリを備える。
【0146】
H.段落Gに記載のシステムであって、1つまたは複数のモーションプリミティブおよび一組の値が事前に算定され、探索は、少なくとも部分的に一組の値に基づいて、第1のサンプルレイヤーの第1のサンプルノードのうちの少なくとも1つ、または第1のサンプルレイヤーに後続の1つまたは複数のサンプルレイヤーの1つまたは複数のサンプルノードを決定すること、1つまたは複数のサンプルノードの第2のサンプルノードを第1のサンプルノードに接続するモーションプリミティブに関連付けられる一組の値の値を第1のコストとして決定すること、第1のコストのうちの少なくとも1つが閾値コストよりも低いか、または1つまたは複数のサンプルレイヤーの1つまたは複数の他のノードに関連付けられる第1のコストよりも低いということを決定すること、1つまたは複数のモーションプリミティブ、第1のサンプルノード、第2のサンプルノード、および占有マップに少なくとも部分的に基づいて、少なくとも1つのモーションプリミティブが衝突せず、第1のサンプルノードを第2のサンプルノードに接続するということを決定すること、および少なくとも1つのモーションプリミティブおよび第1のサンプルノードに関連付けられる第2のコストを決定することを含む。
【0147】
I.段落GまたはHのいずれかに記載のシステムであって、第2のコストを決定することは、自律車両の現在の位置もしくは現在の姿勢のうちの少なくとも1つに関連付けられる第3のコスト、少なくとも1つのモーションプリミティブの曲率に関連付けられる第4のコスト、少なくとも1つのモーションプリミティブの少なくとも一部から占有されているとして識別される占有マップの一部までの第1の距離に関連付けられる第5のコスト、少なくとも1つのモーションプリミティブと第1の経路における事前の接続の第2のモーションプリミティブとの間の第1の差に関連付けられる第6のコスト、または開始位置、終了位置、もしくは対象位置のうちの少なくとも1つに関連付けられる車線からの少なくとも1つのモーションプリミティブの第2の距離に関連付けられる第7のコストのうちの少なくとも1つに少なくとも部分的に基づいている。
【0148】
J.段落G~Iのいずれか1つに記載のシステムであって、サンプルノードを選択することは、第1のレイヤーに関連付けられるデータ構造によって示される占有空間の第1の特徴付けと事前のレイヤーに関連付けられるデータ構造によって示される占有空間の第2の特徴付けとの間の差を決定して、差が変化閾値を満たすか、または超えるという決定すること、少なくとも部分的にサンプルレートに基づいて、第1のレイヤーからサンプルノードの1つまたは複数を決定すること、または1つまたは複数のレイヤーの第1のレイヤーをサンプルレイヤーとして選択することのうちの少なくとも1つを含む。
【0149】
K.段落G~Jのいずれか1つに記載のシステムであって、探索は、第1の探索であり、サンプルノードは、第1のサンプルノードであり、サンプルノードが第1のサンプルレートまたは第1の感度のうちの少なくとも1つに少なくとも部分的に基づいているという決定をして、動作は、第1の経路に関連付けられる第1の合計コストを決定すること、閾値時間量または閾値反復回数数内で、第1の探索が実行可能な経路を識別できないことを決定すること、第1の探索が実行可能な経路を識別することができないということを決定することに少なくとも部分的に基づいて、第2のサンプルレートまたは第2の感度のうちの少なくとも1つに少なくとも部分的に基づく第2のサンプルノードを選択することであって、第2のサンプルノードは、第1のサンプルノードよりも数が多いこと、および第2のサンプルノードにわたって第2の探索に少なくとも部分的に基づいて、第2の経路を決定することをさらに含む。
【0150】
L.段落G~Kのいずれか1つに記載のシステムであって、実行可能な経路は、衝突がなく、第2のコスト閾値よりも低い第2のコストに関連付けられる。
【0151】
M.段落G~Lのいずれか1つに記載のシステムであって、探索は、終了位置または終了レイヤーの少なくとも1つから開始位置までの一組の経路を決定することであって、一組の経路は、終了位置または終了レイヤーから開始位置までの間のすべての可能な経路よりも少ないこと、一組の経路が第1の経路グループと第2の経路グループとを含むということを、第1の経路グループの間の第1の距離が閾値距離よりも短く、第2の経路グループの間の第2の距離が閾値距離よりも短いということを決定することに少なくとも部分的に基づいて決定することであって、第1のグループは、第1の経路を含むこと、および第1の経路を主要な経路として出力して、第2のグループからの第2の経路を偶発的な経路として出力することを含む。
【0152】
N.段落G~Mのいずれか1つに記載のシステムであって、動作は、第1の経路が第2の経路よりも短いか、または第2の経路よりも低い曲率の変化に関連付けられるうちの少なくとも1つであり、第1の経路が第1のグループの他の経路の第1の合計コストよりも低い第1の合計コストに関連付けられ、第2の経路が第2のグループの他の経路の第2の合計コストよりも低い第2の合計コストに関連付けられ、または第1の合計コストが第2の合計コストよりも低いうちの少なくとも1つを決定することに少なくとも部分的に基づいて第1の経路を第1の経路として識別すること、および第2の経路を偶発的な経路として識別することをさらに含む。
【0153】
O.非一時的なコンピュータ可読媒体は、1つまたは複数のプロセッサによって実行される場合に、1つまたは複数のプロセッサに、環境における開始位置および終了位置に関連付けられるルートを受信することと、環境に関連付けられるデータ構造を受信することであって、データ構造が環境における占有空間を識別することと、少なくとも部分的にルートに基づいて、1つまたは複数のレイヤーを含むグリッドを決定することと、サンプルノードとして決定することであって、データ構造、1つまたは複数のレイヤーの1つまたは複数のノードに少なくとも部分的に基づくことと、サンプルノードの間の隣接する一組の接続の探索、グリッドおよびデータ構造、1つまたは複数のレイヤーの1つまたは複数のノードに少なくとも部分的に基づくことと、サンプルノードの間の隣接する一組の接続の探索に少なくとも部分的に基づいて、終了位置または終了位置に関連付けられる終了レイヤーのうちの少なくとも1つから開始位置まで第1の経路を決定することであって、探索は、データ構造、位置および方向の範囲と所望の位置および方向との間の差に関連付けられる第1の一組の値、ならびに1つまたは複数のモーションプリミティブに関連付けられる第2の一組の値に少なくとも部分的に基づくこととを含む動作を実行させるプロセッサ実行可能命令を格納する。
【0154】
P.段落Oに記載の非一時的なコンピュータ可読媒体であって、1つまたは複数のモーションプリミティブおよび第2の一組の値は、事前に算定されて、探索は、第1のサンプルレイヤーの第1のサンプルノード、および第1のサンプルレイヤーに後続の1つまたは複数のサンプルレイヤーの1つまたは複数のサンプルノードのうちの少なくとも1つに基づいて、1つまたは複数のモーションプリミティブを決定すること、モーションプリミティブおよび第1の一組の値に少なくとも部分的に基づいて、1つまたは複数のサンプルノードの第2のサンプルノードに関連付けられる第1のコストを決定すること、第1のコストのうちの少なくとも1つが閾値コストよりも低いか、または1つまたは複数のサンプルレイヤーの1つまたは複数の他のノードに関連付けられる第1のコストよりも低いということを決定すること、1つまたは複数のモーションプリミティブ、第1のサンプルノード、第2のサンプルノード、およびデータ構造に少なくとも部分的に基づいて、少なくとも1つのモーションプリミティブが衝突せず、第1のサンプルノードを第2のサンプルノードに接続するということを決定すること、および第1のノード、第2のノード、および第2の一組の値に少なくとも部分的に基づいて、第2のコストを決定することを含む。
【0155】
Q.段落OまたはPのいずれかに記載の非一時的なコンピュータ可読媒体であって、第2のコストを決定することは、自律車両の現在の位置もしくは現在の姿勢のうちの少なくとも1つに関連付けられる第3のコスト、少なくとも1つのモーションプリミティブの曲率に関連付けられる第4のコスト、少なくとも1つのモーションプリミティブの少なくとも一部から占有されているとして識別されるデータ構造の一部までの第1の距離に関連付けられる第5のコスト、少なくとも1つのモーションプリミティブと第1の経路における事前の接続の第2のモーションプリミティブとの間の第1の差に関連付けられる第6のコスト、開始位置、終了位置、もしくは対象位置のうちの少なくとも1つに関連付けられる車線からの少なくとも1つのモーションプリミティブの第2の距離に関連付けられる第7のコストのうちの少なくとも1つに少なくとも部分的に基づいている。
【0156】
R.段落O~Qのいずれか1つに記載の非一時的なコンピュータ可読媒体であって、サンプルノードを選択することは、第1のレイヤーに関連付けられるデータ構造によって示される空間の第1の特徴付けと事前のレイヤーに関連付けられるデータ構造によって示される空間の第2の特徴付けとの間の差を決定すること、または1つまたは複数のレイヤーの第1のレイヤーをサンプルレイヤーとして選択することのうちの少なくとも1つを含む。
【0157】
S.段落O~Rのいずれか1つに記載の非一時的なコンピュータ可読媒体であって、探索は、第1の探索であり、サンプルノードは、第1のサンプルノードであり、サンプルノードが第1のサンプルレートまたは第1の感度のうちの少なくとも1つに少なくとも部分的に基づいているという選択をして、動作は、第1の経路に関連付けられる第1の合計コストを決定すること、閾値時間量または閾値反復回数数内で、第1の探索が実行可能な経路を識別できないことを決定すること、第1の探索が実行可能な経路を識別することができないということを決定することに少なくとも部分的に基づいて、第2のサンプルレートまたは第2の感度のうちの少なくとも1つに少なくとも部分的に基づく第2のサンプルノードを選択することであって、第2のサンプルノードは、第1のサンプルノードよりも数が多いこと、および第2のサンプルノードにわたって第2の探索に少なくとも部分的に基づいて、第2の経路を決定することをさらに含む。
【0158】
T.段落O~Sのいずれか1つに記載の非一時的なコンピュータ可読媒体であって、探索は、終了位置または終了レイヤーの少なくとも1つから開始位置までの一組の経路を決定することであって、一組の経路は、終了位置または終了レイヤーから開始位置までの間のすべての可能な経路よりも少ないこと、一組の経路が第1の経路グループと第2の経路グループとを含むということを、第1の経路グループの間の第1の距離が閾値距離よりも短く、第2の経路グループの間の第2の距離が閾値距離よりも短いということを決定することに少なくとも部分的に基づいて決定することであって、第1のグループは、第1の経路を含むこと、第1のグループは、第1の経路を含むこと、および第1の経路を主要な経路として出力して、第2のグループからの第2の経路を偶発的な経路として出力することを含む。
【0159】
U.段落O~Tのいずれか1つに記載の非一時的なコンピュータ可読媒体であって、動作は、第1の経路が第2の経路よりも短いか、または第2の経路よりも低い曲率の変化に関連付けられるうちの少なくとも1つであり、第1の経路が第1のグループの他の経路の第1の合計コストよりも低い第1の合計コストに関連付けられ、第2の経路が第2のグループの他の経路の第2の合計コストよりも低い第2の合計コストに関連付けられ、または第1の合計コストが第2の合計コストよりも低いうちの少なくとも1つを決定することに少なくとも部分的に基づいて第1の経路を第1の経路として識別すること、および第2の経路を偶発的な経路として識別することをさらに含む。
【0160】
V.段落A~Fのいずれか1つに記載の方法であって、少なくとも部分的に機械学習モデルからの出力に基づいてテンプレートの動きを生成すること、および複数のルートを含む第1の訓練データを受信することであって、複数のルートは、個々のルートを含むこと、センサーから受信したステアリングコマンドを含む第2の訓練データを受信して、個々のルートに少なくとも部分的に関連付けられること、および機械学習モデルをルートに関連付けられる曲線のうちの少なくとも1つのマップからステアリングコマンドに訓練することに少なくとも部分的に基づいて機械学習モデルを訓練することをさらに備える。
【0161】
W.段落A~FまたはVのいずれか1つに記載の方法であって、テンプレートの動きは、第1のテンプレートの動きであり、テンプレートの動きを決定することが第1の速度範囲に少なくとも部分的に基づいており、方法は、第2の速度範囲に少なくとも部分的に基づいて第2のテンプレートの動きを受信することをさらに備える。
【0162】
X.段落A~F、VまたはWのいずれか1つに記載の方法であって、経路を決定することは、ノードのサブセットの第1のノードと第2のノードとの間の接続を決定することを含み、接続を決定することは、ノードのサブセットの中から、少なくとも部分的に一組の可能なモーションに基づいて、第2のノードに接続可能な1つまたは複数のノードを決定することであって、1つまたは複数のノードは、第1のノードを含み、ノードのサブセットの中から決定すること、コストプロットに少なくとも部分的に基づいて、第1のノードが、少なくとも1つが閾値コストよりも低いか、または1つまたは複数のノードに関連付けられる第1のコストに関連付けられるということを決定すること、少なくとも部分的に可能性のあるモーションに基づいて、第1のノードを第2のノードに接続する第1の可能性のあるモーションを決定すること、および第1の可能性のあるモーションおよび占有マップに少なくとも部分的に基づいて、第1のサンプルノードと第2のノードとの間の第1の可能性のあるモーションによって画定される接続は、衝突しないことを決定することを含む。
【0163】
Y.段落A~F、またはV~Xのいずれか1つに記載の方法であって、接続または可能性のあるモーションのうちの少なくとも1つに関連付けられる第2のコストを決定すること、および少なくとも部分的に第2のコストに基づいて接続を経路に加えることをさらに備える。
【0164】
Z.段落A~F、またはV~Yのいずれか1つに記載の方法であって、第2のコストを決定することは、自律車両の現在の姿勢のうちの少なくとも1つに関連付けられる第1のコスト、第1の経路に少なくとも部分的に関連付けられるテンプレートの動きのうちの1つの曲率に関連付けられる第2のコスト、占有されていると識別される占有マップの一部に第1の経路の少なくとも一部からの第1の距離に関連付けられる第3のコスト、第1のノードと第2のノードとの間の第1の接続によって識別される第1のテンプレートの動きと第2のノードと第3のノードとの間の第2の接続によって識別される第2のテンプレートの動きとの間の第1の差に関連付けられる第4のコストであって、第1の接続と第2の接続が第1の経路の一部であること、開始位置、終了位置、または対象位置のうちの少なくとも1つに関連付けられる車線からの第1の経路に少なくとも部分的に第2の距離に関連付けられる第5のコスト、対象姿勢のうちの少なくとも1つと経路の終わりに関連付けられる姿勢のうちの少なくとも1つとの間の第2の差に関連付けられる第6のコストのうちの少なくとも1つに少なくとも部分的に基づいている。
【0165】
AA.段落A~F、またはV~Zのいずれか1つに記載の方法であって、第1の経路が第2の経路よりも短いか、または第2の経路よりも滑らかであるうちの少なくとも1つであり、第1の経路が第1のグループの他の経路の第1の合計コストよりも低い第1の合計コストに関連付けられ、第2の経路が第2のグループの他の経路の第2の合計コストよりも低い第2の合計コストに関連付けられ、または第1の合計コストが第2の合計コストよりも低いうちの少なくとも1つを決定することに少なくとも部分的に基づいて第1の経路を第1の経路として識別すること、および第2の経路を偶発的な経路として識別することをさらに備える。
【0166】
AB.段落A~F、またはV~AAのいずれか1つに記載の方法であって、占有マップは、第1の占有マップであり、経路を決定することは、探索を含み、探索は、事前の経路が少なくとも部分的に第1の占有マップに基づいて衝突がないということを決定することであって、事前の経路は、第1の占有マップに先んじて事前に生成された第2の占有マップに少なくとも部分的に基づいて生成されたこと、少なくとも部分的に占有マップに基づいて、事前の経路に関連付けられる第1の合計コストを決定すること、および第1の合計コストがコスト閾値よりも低く、事前の経路は、衝突がないということに少なくとも部分的に決定することに基づいて、事前の経路を第1の経路として選択することを含む。
【0167】
発明の主題は、構造的な特徴および/または方法的な活動に特有の言語で説明されてきたが、添付の特許請求の範囲の中で画定される発明の主題は、必ずしも説明される特定の特徴、または活動に限定されるものではないことを理解されたい。むしろ、特定の特徴、および活動は、特許請求の範囲を実施する例示的形態として開示される。
【0168】
本明細書で説明されるコンポーネントは、任意のタイプのコンピュータ可読媒体に格納してよく、ソフトウェアおよび/またはハードウェアにおいて実装され得る命令を表示する。上記の方法、およびプロセスのすべては、1つもしくは複数のコンピュータまたはプロセッサ、ハードウェア、またはそれらのいくつかの組み合わせによって実行されるソフトウェアコードコンポーネントおよび/またはコンピュータ実行可能命令を介して具現化されてよく、完全に自動化されてよい。あるいは、方法の一部またはすべてが専門のコンピュータハードウェアで具現化されてよい。
【0169】
そうではないと特に明記されていない限り、特に「可能である」、「得る」、「できる」、または「してよい」などの条件付きの用語は、とりわけ、他の例示が含まないある特徴、要素および/またはステップをある例示が含み、提示することの文脈内で理解される。したがって、そのような条件付きの用語は、概して、ある特徴、要素および/またはステップが、1つまたは複数の例示に任意の方法で要求されるか、またはその1つまたは複数の例示が、ユーザのインプット、またはプロンプトを用いて、または用いずに、ある特徴、要素および/またはステップが任意の具体的な例示に含まれるか、または実行されるべきであるかを判断するための論理を必ずしも含むことを暗示することは意図されていない。
【0170】
「X、Y、またはZのうちの少なくとも1つ」という句などの接続詞は、そうではないと特に明記されていない限り、項目、用語などがX、Y、またはZのいずれか、またはそれぞれの要素の集合を含む、それらの任意の組み合わせであってよいと理解されるべきである。単数として明示的に説明されていない限り、「ある」は、単数、および複数を意味する。
【0171】
本明細書で説明され、および/または添付の図に示したフロー図における任意のルーティンの説明、要素、またはブロック図は、ルーティンにおける特定の論理機能、または要素を実装するための1つまたは複数のコンピュータ実行可能命令を含むコードのモジュール、セグメント、または部分を潜在的に表現するものとして理解されるべきである。代替的な実装は、本明細書に説明される例示の範囲内に含まれ、その中で、要素または機能は、当業者によって理解されるように、関係する機能に応じて、実質的に同時、または逆の順序を含む、図示されたもの、または説明されたものと順不同で、削除され、実行されることが可能である。
【0172】
上記の例示に対して多くの変形例、および修正例を作成することが可能であることを強調すべきであり、それらの要素は、他の容認できる例示の中にあるものとして理解されるべきである。このような変更例、および変形例のすべてが本開示の範囲内で本明細書に含まれ、以下の特許請求の範囲によって保護されることが意図される。
図1
図2
図3
図4
図5
図6A
図6B
図7
図8A
図8B
図9A
図9B
図10A
図10B
図11
【国際調査報告】