(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-23
(45)【発行日】2025-01-07
(54)【発明の名称】センサデータアラインメントの補正及び環境マッピング関連アプリケーション
(51)【国際特許分類】
B60W 40/02 20060101AFI20241224BHJP
B60W 30/10 20060101ALI20241224BHJP
G01C 21/26 20060101ALI20241224BHJP
G08G 1/0968 20060101ALI20241224BHJP
G08G 1/16 20060101ALI20241224BHJP
【FI】
B60W40/02
B60W30/10
G01C21/26 A
G08G1/0968
G08G1/16 C
(21)【出願番号】P 2022529269
(86)(22)【出願日】2020-11-23
(86)【国際出願番号】 US2020061808
(87)【国際公開番号】W WO2021108311
(87)【国際公開日】2021-06-03
【審査請求日】2023-09-15
(32)【優先日】2019-11-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518156417
【氏名又は名称】ズークス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】デレク アダムス
(72)【発明者】
【氏名】チョンジー ウィンストン リウ
【審査官】吉村 俊厚
(56)【参考文献】
【文献】国際公開第2016/031229(WO,A1)
【文献】特開2019-139107(JP,A)
【文献】米国特許出願公開第2019/0278293(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B60W 10/00 - 60/00
G08G 1/00 - 99/00
G01C 21/00 - 21/36
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサと、
プロセッサ実行可能命令を格納するメモリと
、
を備えたシステムであって、前記プロセッサ実行可能命令は、前記1つまたは複数のプロセッサによって実行されると、前記システムに、
第1の車両の第1のポーズに関連付けられる
第1のセンサデータ
および第2の車両の第2のポーズに関連付けられる第2のセンサデータを受信することと、
前記
第1のセンサデータ
、前記第2のセンサデータ、および第1のリンクに少なくとも部分的に基づいて、第1のアラインメントを決定することであって、
前記
第1のリンクは、
前記第1のセンサデータが
前記第2のセンサデータ
と同じまたは類似の環境の部分に
関連付けられるというインジケーションを含み、
前記第1のアラインメントは、前記
第1のセンサデータと前記
第2のセンサデータとのアラインメントを含む、
ことと、
提案された
第2のリンクを追加する命令、前記
第1のリンクを削除する命令、または前記
第1のリンクに関連付けられる
パラメータを変更する命令のうちの少なくとも1つを含む修正を受信することと、
前記
第1のセンサデータ
、前記第2のセンサデータ、および前記修正に少なくとも部分的に基づいて、
前記第1のセンサデータと前記第2のセンサデータとの第2のアラインメントを決定することと
、
前記第2のアラインメントに少なくとも部分的に基づいてマップデータを決定することと、
を含む動作を実行させる、システム。
【請求項2】
前記動作は、
前記マップデータを
第3の車両に送信すること、または前記第2のアラインメントを表示させることのうちの少なくとも1つ
をさらに含み、前記第1の車両は、前記第2の車両および前記第3の車両のうちの1つまたは複数と同じ車両である、請求項1
のシステム。
【請求項3】
前記動作は、
前記
第1のアラインメントに関連付けられるアラインメントの程度を決定することと、
前記アラインメントの程度に関連付けられる領域を示す通知を生成することであって、前記通知は、修正候補を示し、前記修正
候補は、前記通知に少なくとも部分的に基づいて受信される、ことと
、
をさらに含む、請求項1
のシステム。
【請求項4】
前記第1のセンサデータは、第1の
センサシステムの第1のセンサに関連付けられ、前記第2のセンサデータは、第2の
センサシステムの第2のセンサに関連付けられる、請求項1
のシステム。
【請求項5】
前記第2のアラインメントを決定することは、前記修正に関連付けられるセンサデータのウィンドウを決定することを含み、前記第2のアラインメントを決定することは
、前記センサデータのウィンドウに対応する環境の部分に関連付けられる前記第1のアラインメントの部分を再決定することを
含み、前記センサデータのウィンドウは、前記第1のセンサデータおよび前記第2のセンサデータのうちの少なくとも1つの部分を含む、請求項1
のシステム。
【請求項6】
前記センサデータのウィンドウを決定することは、前記修正に関連付けられる位置
からの閾値距離内にある、または
前記修正に関連付けられる時間の閾値時間内である前記
第1のセンサデータ
および前記第2のセンサデータのサブセットを決定することを含む、請求項5
のシステム。
【請求項7】
前記修正を受信することに少なくとも部分的に基づいて、前記修正、
前記第1のセンサデータ、および前記第2のセンサデータが訓練データセットに追加され、
前記動作は、前記訓練データセットに少なくとも部分的に基づいて、機械学習モデルを訓練することであって、前記機械学習モデルは、
前記第2のリンクを追加する、前記
第1のリンクを削除する、または前記
第1のリンクに関連付けられるパラメータを変更するための1つまたは複数の修正を識別するように訓練される、ことをさらに含む、
請求項1
のシステム。
【請求項8】
前記動作は、
前記第1のアラインメントに少なくとも部分的に基づいて第1の軌道および第1のマップの少なくとも1つを決定することと、
第2の軌道および第2のマップの少なくとも1つとして、前記第2のアラインメントに少なくとも部分的に基づいて前記第1の軌道および前記第1のマップの少なくとも1つを修正することと、
をさらに含む、請求項1のシステム。
【請求項9】
前記第1のセンサデータは、第1のシステムの第1のセンサに関連付けられており、前記第2のセンサデータは、第2のシステムの第2のセンサに関連付けられている、請求項8のシステム。
【請求項10】
前記動作は、
前記第1のアラインメントに少なくとも部分的に基づいて第1のマップデータを決定することをさらに含み、
前記マップデータは、第2のマップデータであり、
前記動作は、
前記修正に関連付けられるセンサデータのウィンドウを決定することと、
前記センサデータのウィンドウに対応する環境の一部に関連付けられる前記第1のマップデータの一部を再決定することを含む前記第2のマップデータを決定することと、
をさらに含む、請求項8のシステム。
【請求項11】
前記動作は、
前記第1のアラインメントに少なくとも部分的に基づいて第1の軌道および第1のマップの少なくとも1つを決定することと、
第2の軌道および第2のマップの少なくとも1つとして、前記第2のアラインメントに少なくとも部分的に基づいて前記第1の軌道および前記第1のマップの少なくとも1つを修正することと、
をさらに含む、請求項8のシステム。
【請求項12】
プロセッサ実行可能命令を格納する1つまたは複数の非一時的コンピュータ可読媒体であって、前記プロセッサ実行可能命令は、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
第1の車両の第1のポーズに関連付けられる
第1のセンサデータ
および第2の車両の第2のポーズに関連付けられる第2のセンサデータを受信することと、
前記
第1のセンサデータ
、前記第2のセンサデータ、および第1のリンクに少なくとも部分的に基づいて、第1のアラインメントを決定することであって、
前記
第1のリンクは、
前記第1のセンサデータが
前記第2のセンサデータ
に関連付けられるというインジケーションを含み、
前記第1のアラインメントは、前記
第1のセンサデータと
第2のセンサデータとのアラインメントを含む、
ことと、
提案された
第2のリンクを追加する命令、前記
第1のリンクを削除する命令、または前記
第1のリンクに関連付けられるパラメータ
を変更する命令のうちの少なくとも1つを含む修正を受信することと、
前記
第1のセンサデータ
、前記第2のセンサデータ、および前記修正に少なくとも部分的に基づいて、第2のアラインメントを決定することと
、
前記第2のアラインメントに少なくとも部分的に基づいてマップデータを決定することと、
を含む動作を実行させる、1つまたは複数の非一時的コンピュータ可読媒体。
【請求項13】
前記動作は、
前記マップデータを
第3の車両に送信すること、または前記第2のアラインメントを表示させることのうちの少なくとも1つを行う
ことをさらに
含み、
前記第1の車両は、前記第2の車両および前記第3の車両のうちの1つまたは複数と同じ車両である、請求項
12の1つまたは複数の非一時的コンピュータ可読媒体。
【請求項14】
前記動作は、
前記
第1のアラインメントに関連付けられるアラインメントの程度を決定することと、
前記アラインメントの程度に関連付けられる領域を示す通知を生成することであって、前記通知は、修正候補を示し、前記修正
候補は、前記通知に少なくとも部分的に基づいて受信される、ことと
、
をさらに含む、請求項
13の1つまたは複数の非一時的コンピュータ可読媒体。
【請求項15】
前記第1のセンサデータは、第1のシステムの第1のセンサに関連付けられ、前記第2のセンサデータは、第2のシステムの第2のセンサに関連付けられる、請求項
14の1つまたは複数の非一時的コンピュータ可読媒体。
【請求項16】
前記第2のアラインメントを決定することは、前記修正に関連付けられるセンサデータのウィンドウを決定することを含み、前記第2のアラインメントを決定することは、前記センサデータのウィンドウに対応する環境の部分に関連付けられる前記第1のアラインメントの部分を再決定することを
含み、前記センサデータのウィンドウは、前記第1のセンサデータおよび前記第2のセンサデータのうちの少なくとも1つの部分を含む、請求項
12の1つまたは複数の非一時的コンピュータ可読媒体。
【請求項17】
前記センサデータのウィンドウを決定することは、前記修正に関連付けられる位置
からの閾値距離内にある、または
前記修正に関連付けられる時間の閾値時間内である前記
第1のセンサデータ
および前記第2のセンサデータのサブセットを決定することを含む、請求項
16の1つまたは複数の非一時的コンピュータ可読媒体。
【請求項18】
前記修正を受信することに少なくとも部分的に基づいて、前記修正、
前記第1のセンサデータ、および前記第2のセンサデータが訓練データセットに追加され、
前記動作は、前記訓練データセットに少なくとも部分的に基づいて、機械学習モデルを訓練することであって、前記機械学習モデルは、
前記第2のリンクを追加する、または
前記第1のリンクを削除するための1つまたは複数の修正を識別するように訓練される、ことをさらに含む、請求項
12の1つまたは複数の非一時的コンピュータ可読媒体。
【請求項19】
前記動作は、
前記第1のアラインメントに少なくとも部分的に基づいて第1の軌道および第1のマップの少なくとも1つを決定することと、
第2の軌道および第2のマップの少なくとも1つとして、前記第2のアラインメントに少なくとも部分的に基づいて前記第1の軌道および前記第1のマップの少なくとも1つを修正することと、
をさらに含む、請求項
12の1つまたは複数の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本PCT国際出願は、参照により本明細書に組み込まれる、2019年11月26日に出願された米国特許出願第16/697,117号の優先権の利益を主張する。
【背景技術】
【0002】
ロボット及び他のデバイス、例えば拡張現実デバイスは、センサデータを収集して、デバイスを取り囲む環境内に何のオブジェクトがあり、デバイスがそれらのオブジェクトに対して環境内でどこにあるかを判定し得る。いくつかの例では、センサデータは、環境のマップ及び環境を通るデバイスの経路を生成するために収集され得る。そのようなマップ内の不正確さは、マップに依存するデバイスに、環境内のデバイスの位置を誤って判定させる可能性があり、デバイスによって実行される動作を阻害する可能性があり、またはデバイスのユーザまたは環境内の他のユーザの安全を危険にさらす可能性さえある。
【0003】
さらに、センサデータ及び/またはマップは、信じられないほど複雑であり、かつ/または機械言語で符号化され、都市全体などの大きな領域にわたって収集され得る。これらの要因のいずれかは、人間がセンサデータ及び/またはそこから生成されたマップ内の誤差を検出することを怪しくし、または不可能にさえする。
【先行技術文献】
【特許文献】
【0004】
【文献】米国特許出願第15/674,853号明細書
【文献】米国特許出願第15/675,487号明細書
【図面の簡単な説明】
【0005】
詳細な説明は、添付の図面を参照してなされる。図面において、参照番号の左端の数字は、その参照番号が最初に現れる図を識別する。異なる図面における同一の参照番号は、類似するまたは同一の項目を示している。
【
図1】
図1は、位置決めコンポーネントで構成された自律車両が、センサデータ及びマップに少なくとも部分的に基づいて環境に対する自律車両のポーズを決定し得、及び/または車両の推定軌道及び/またはマップを決定するためのセンサデータを収集し得る例示的なシナリオを示す。
【
図2】
図2は、位置決めコンポーネント、マッピングコンポーネント、及び補正コンポーネントを含む例示的なシステムのブロック図を示す。
【
図3B】
図3Bは、2つの異なるポーズ、ポーズ間のリンク、及び例示的なセンサデータアラインメントに関連付けられたセンサデータの2つのセットを示す。
【
図4】
図4は、センサ位置決め、センサデータアラインメント、並びに/または軌道を補正し、マップを決定し、及び/または機械学習モデルを訓練するための訓練データを生成して、除去、追加、または調整するリンクを識別するための例示的なプロセスのフローチャートを示す。
【
図5A】
図5Aは、2種類のリンク修正を示す。
図5Aは、異なるトンネル内に位置する2つのポーズ間のリンク削除を示す。
【
図5B】
図5Bは、2種類のリンク修正を示す。
図5Bは、高速道路の両側の2つのポーズ間のリンク追加を示す。
【発明を実施するための形態】
【0006】
環境に関連付けられたマップを生成することは、1つ以上の車両から受信したセンサデータを収集することを含み得る。車両は、環境に関連付けられたセンサデータをキャプチャする1つ以上のセンサで構成された自律車両、半自律車両、及び/または有人車両を含み得る。1つ以上のセンサは、光検出及び測距(ライダー)センサ、無線検出及び測距(レーダー)センサ、音検出及び測距(ソナー)センサ、画像キャプチャデバイス(例えば、RGBカメラ、強度カメラ、IRカメラ、ステレオカメラ、深度カメラ等)、または他のセンサを含んでよい。非限定的な例として、車両は、8つのライダーセンサで構成された自律車両であってもよい。ライダーセンサのそれぞれは、環境内の検出された表面に対応するデータを返すことができる。データは、検出された表面の少なくとも一部に対応する座標(例えば、デカルト座標、極座標等)を有する点(例えば、データポイント)として表されてよい。
【0007】
いくつかの例では、1つまたは複数の車両は、同じまたは類似の視点から、及び/または異なる視点から環境の一部を複数回通過してもよく、1つまたは複数の車両によってキャプチャされたセンサデータは、受信されて、センサデータの集合体に集約されてよい。したがって、1つ以上の車両から受信したセンサデータの収集は、環境の同じ部分に関連付けられたセンサデータのサブセットを含み得る。例えば、センサデータの収集は、環境の一部と関連付けられて車両から受信された第1のセンサデータと、後続の時間にその車両から受信された同じ部分に関連付けられた第2のセンサデータと、または別の車両から受信された第2のセンサデータとを含み得る。第1のセンサデータ及び第2のセンサデータは、同じ、類似、または異なるセンサポーズに関連付けられ得る。換言すれば、第1のセンサデータがキャプチャされた時点で、車両のセンサ(複数可)は、第1のポーズ(すなわち、ポーズは、位置及び/または向きを含んでよい)に位置して配向され、第2のセンサデータは、車両(または別の車両)のセンサ(複数可)が同じ、類似、または異なるポーズに位置している間にキャプチャされている。換言すれば、環境の一部は、同じ及び異なるポーズから見えてよい。換言すれば、第1のセンサデータがキャプチャされた時点で、車両のセンサ(複数可)は、第1のポーズ(すなわち、ポーズは、位置及び/または向きを含んでよい)に位置して配向され、第2のセンサデータは、車両(または別の車両)のセンサ(複数可)が同じ、類似、または異なるポーズに位置している間にキャプチャされている。換言すれば、環境の一部は、同じ及び異なるポーズから見えてよい。したがって、第2のセンサデータは、第1のセンサデータと同じ環境の部分に関連付けられ得るが、第2のセンサデータは、その部分の代替または追加の部分に関連付けられたセンサデータの少なくとも一部を含み得る。例えば、第1のセンサデータは、建物の第1の側面の表面を示すデータポイントを含み得、第2のセンサデータは、第1のセンサデータとは異なるポーズから第2のセンサデータがキャプチャされることにより、同じ建物の第1の側面及び/または第2の側面の表面を示すデータポイントを含み得る。
【0008】
収集されたセンサデータの少なくとも一部を使用して環境のマップを決定することは、収集されたセンサデータの第1のセンサデータと第2のセンサデータとの間のリンクを決定することを含み得、リンクは、第1のセンサデータ及び第2のセンサデータが環境の同じ部分に関連付けられていることを示し得、及び/またはリンクは、第1のポーズが第2のポーズに関連付けられていることを示し得る。リンクを判定することは、第1のポーズ及び第2のポーズが、例えば、ポーズ間の閾値距離、2つのポーズに関連付けられたセンサデータの類似性等のグローバルパラメータを満たすと判定することに少なくとも部分的に基づいてもよい。そのようなリンクは、提案されたリンクであり得る。第1のポーズは、第1のセンサデータと関連付けられ得、第2のポーズは、第2のセンサデータと関連付けられ得るため、リンクは、第1のセンサデータ及び第2のセンサデータと暗黙的に(または上記のように明示的に)関連付けられ得る。いくつかの例では、第1のポーズ及び/または第2のポーズは、2017年8月11日に出願された特許文献1(その全体が本明細書に組み込まれる)でより詳細に論じられているように、(例えば、ベイズフィルタ(カルマンフィルタなど)、バンドル調整、最大事後確率推定(MAP)、及び/または任意のSLAM(simultaneous localization and mapping)アルゴリズムを使用して)自律走行車によって推定されるポーズであってもよい。
【0009】
いくつかの例では、マップを決定することは、追加的または代替的に、リンクに少なくとも部分的に基づいて、第1のセンサデータの第2のセンサデータへのアラインメント(alignment)を決定することを含み得る。例えば、アラインメントを決定することは、第1のポーズと第2のポーズとの間の提案されたリンクの存在に少なくとも部分的に基づいてもよい。リンクは、本明細書で論じられるシステムに、ポーズ(複数可)の変換を決定して、それに関連付けられたセンサデータを整列させ(align)、及び/または変換(複数可)が決定されると、変換(複数可)をリンクに関連付けることを試みさせ得る。いくつかの例では、技法は、アラインメント(複数可)及び/またはマップを決定する前に、提案されたリンクを表示することを含み得る。第1のセンサデータ及び第2のセンサデータを整列させることは、第1のセンサデータ及び第2のセンサデータに関連付けられたポーズのうちの少なくとも1つを摂動して、整列に関連付けられた誤差を低減することを含み得る。いくつかの例では、誤差は、第1のセンサデータ及び第2のセンサデータのそれぞれのデータポイントの間の合計残差を含み得る。換言すると、誤差は、第1のセンサデータが第2のセンサデータとアラインメントされている距離からどの程度離れているかを示すものであり得る。
【0010】
ポーズを摂動すること(perturbing)は、ポーズの位置及び/または向き(例えば、ポーズに関連付けられた横方向及び/または縦方向に変化する座標、ポーズに関連付けられたヨー、ロール、及び/またはピッチを変更すること)を移動することを含み得、これは、それに関連付けられたセンサデータの向きに関連付けられ得る。換言すると、ポーズの位置及び/または向きの変更は、それに関連付けられたセンサデータに対応する変更を引き起こし得る。いくつかの例では、ポーズは、別個のセンサのポーズであってもよく、またはポーズは、センサが関連付けられている車両の位置及び/または向きなどの1つ以上のセンサの基準フレームであってもよい。後者の例では、離散センサは、車両のポーズに対してセンサのポーズに関連付けられ得る。誤差が最小限に抑えられるか、またはそうでなければ十分である(例えば、誤差が誤差閾値を下回る)と、ポーズを摂動する/センサデータを整列させることによって、整列に関連付けられた変換は、リンクと関連付けられて記憶され得る。
【0011】
本明細書で論じられる技術は、リンクを追加する、リンクを削除する、またはリンクに関連付けられたパラメータを修正する命令を含む修正を受信することを含み得る。例えば、修正は、ユーザインタフェースとのユーザインタラクションに少なくとも部分的に基づいて受信され得、パラメータは、共分散及び/または閾値距離を含み得る。本技術は、修正を受信することに少なくとも部分的に基づいて、新しいセンサデータアラインメントを開始することを含み得る。リンクが追加されると、この新しいアラインメントは、以前にアラインメントされていなかったセンサデータをアラインメントすることを含み得、一方、リンクが削除されると、新しいアラインメントは、以前にアラインメントされていたセンサデータを分離することを含み得る。共分散などのパラメータへの修正は、新しいアラインメント内のポーズ及び/またはセンサデータを追加的に含む、または除外することを含み得る。
【0012】
修正が受信されるとき、修正に基づく任意の新しいセンサデータアラインメントは、(例えば、領域全体を再アラインメントするのではなく)センサデータのウィンドウに関連付けられたセンサデータを再アラインメントすることに限定され得るが、修正に関連付けられた領域全体を再アラインメントすることが企図され得る。いくつかの例では、ウィンドウを決定することは、閾値距離(例えば、ポーズに関連付けられた位置からの動作±2メートルに関連付けられたセンサデータ)、閾値時間(例えば、ポーズに関連付けられた時間からの動作±0.5秒に関連付けられたセンサデータ)、車速、リンクされたポーズ間の距離、及び/または同様のものに少なくとも部分的に基づいてもよい。少なくともいくつかの例では、そのようなウィンドウ化された再最適化は、ガウス分布、線形関数、多項式、またはそれ以外の場合、選択された領域からのさらなる測定値が少しずつ修正されるように、限定されないが、提案された領域からの距離の関数として、測定値からの寄与をダウンウェイトすることを含み得る。
【0013】
マップを決定することは、センサデータアラインメントに少なくとも部分的に基づいて環境の表現を生成することを含み得る(例えば、リンクがそれぞれ、それぞれのセンサデータをアラインメントするそれに関連付けられた変換を有する例では、リンクに関連付けられた変換を使用する)。いくつかの例では、都市などの大域のマップを決定することは、数千または数百万のセンサデータアラインメントに少なくとも部分的に基づいて、環境のメッシュ及び/またはワイヤフレームモデルなどの表現を生成することを含み得る。現在のクラウドコンピューティングの計算上の制約において、センサデータアラインメントからマップを生成するプロセスは、最大1週間かかる場合がある。いくつかの例では、車両は、車載コンピューティングリソースを使用して、及び/または1つ以上の車両並びに/またはコンピューティングリソースにわたって計算を分散することによって、より低解像度のマップを生成し得る。
【0014】
本明細書で論じられる技術は、アラインメントの数が計算的及び時間的にコストがかかり得るため、マップを生成することの一部として(すなわち、マップ生成時間で)、環境にわたるセンサデータアラインメントを決定し得る。いくつかの例では、修正が受信されると、それに関連付けられたセンサデータのアラインメントを再決定するオプションが利用可能にされ得、及び/または再決定が自動的にトリガされて、修正の有効性が評価され得る。追加的または代替的に、アラインメントは、マップを生成する前に計算され得る。少なくとも1つの非限定的な例では、技法は、任意の修正またはユーザ選択によってアラインメントがトリガされる少なくとも修正に関連付けられたそれらのセンサデータアラインメントを除いて、マップ生成動作までセンサデータアラインメントを決定するのを待つことを含み得る。
【0015】
本技術は、追加的または代替的に、収集されたセンサデータ、それに関連付けられた推定軌道データ、及び/または提案されたリンクを表示することを含み得る。推定軌道データは、車両によってキャプチャされたセンサデータに関連付けられた車両によって推定された一連の過去のポーズを含み得る。非限定的な例では、技法は、少なくとも推定軌道データ、提案されたリンク、及び/または2次元道路表現(例えば、トップダウンマップ)を表示することを含み得る。いくつかの例では、2次元道路表現は、軌道データと併せて使用されて、リンクが追加され、削除され、及び/またはそれに関連付けられたパラメータが修正される可能性を判定し得る。例えば、技法は、センサデータアラインメントに関連付けられた合計残差が閾値を満たす、または超えると判定すること、センサデータ及び/または問題となり得る領域(例えば、追加、削除、または調整されたリンクを必要とし得る)を判定するために機械学習モデルを訓練すること、及び/または同様のものを含んでよい。追加または代替の例では、表示は、センサデータアラインメントに関連付けられた誤差(例えば、残差)が閾値誤差を下回って低減できないと判定することに少なくとも部分的に基づいて生成され得る。
【0016】
本明細書で論じられる技術は、追加的または代替的に、リンクを追加及び/または削除し、リンクに関連付けられたパラメータを修正し、及び/またはリンクを潜在的に追加、削除、または修正する領域を示すために、機械学習(ML)モデルを訓練するための訓練データセットに、それに関連付けられたリンク及び/またはデータに受信された任意の修正を追加することを含み得る。いくつかの例では、訓練データは、修正の種類(例えば、リンク追加、リンク削除、リンクパラメータ調整)及び/またはそれに関連付けられたデータ(例えば、ポーズデータ、センサデータ、リンクデータ)の表示を含み得る。
【0017】
本明細書で論じられる技術は、環境のマップ(例えば、3次元表現)を生成する時間を短縮し、マップを生成するための計算リソース及び電力を低減し、マップの精度を改善し得る。これらの技術は、精度の向上のために、マップを使用してセンサの較正及び/または位置決めを行う車両の安全性を向上させ得る。
【0018】
(例示的なシナリオ)
図1は、車両102を含む例示的なシナリオ100を示している。いくつかの例では、車両102は、米国運輸省道路交通安全局によって発行されたレベル5分類に従って動作するよう構成される自律車両であってよく、これは、全ての安全上重要な機能を全行程で実行することが可能な車両を記述したものであり、運転者(または乗員)はどんなときでも車両を制御することを期待されていない。しかしながら、他の例では、車両102は、任意の他のレベルまたは分類を有する完全なまたは部分的な自律車両であってよい。本明細書で説明される技術は、自律車両のようなロボット制御を越えるものに適用され得ることが企図される。例えば、本明細書に記載される技術は、検索、製造、拡張現実などに適用され得る。さらに、車両102は、陸上車両として描写されているが、宇宙船、水上機、及び/または同様のものであってもよい。いくつかの例では、車両102は、シミュレーション車両としてシミュレーションにおいて表されてもよい。簡潔にするために、本明細書での考察は、シミュレーション車両と現実世界の車両とを区別しない。したがって、「車両」への言及は、シミュレーション車両及び/または現実世界の車両を示し得る。
【0019】
本明細書に記載される技術によれば、車両102は、車両102のセンサ104からセンサデータを受信し得る。例えば、センサ104は、位置センサ(例えば、全地球測位システム(GPS)センサ)、慣性センサ(例えば、加速度センサ、ジャイロスコープセンサ等)、磁場センサ(例えば、コンパス)、位置/速度/加速度センサ(例えば、速度計、駆動システムセンサ)、深度位置センサ(例えば、ライダーセンサ、レーダーセンサ、ソナーセンサ、飛行時間(ToF)カメラ、深度カメラ、超音波並びに/またはソナーセンサ、及び/または他の深度感知センサ)、画像センサ(例えば、カメラ)、音声センサ(例えば、マイクロフォン)、及び/または環境センサ(例えば、気圧計、湿度計等)を含んでよい。
【0020】
センサ104は、センサデータを生成することができ、センサデータは、車両102に関連付けられるコンピューティングデバイス106によって受信され得る。しかしながら、他の例では、センサ104及び/またはコンピューティングデバイス106のうちのいくつかまたは全ては、車両102から離れて別個に、及び/または車両102から遠隔に配置され、データキャプチャ、処理、コマンド、及び/または制御は、有線及び/または無線ネットワークを介して1つまたは複数のリモートコンピューティングデバイスによって車両102との間で通信され得る。
【0021】
コンピューティングデバイス106は、知覚コンポーネント110、プランニングコンポーネント112、位置決めコンポーネント114、及び/またはシステムコントローラ116を格納するメモリ108を備え得る。例示的な目的のために
図1に描写されるが、位置決めコンポーネント114は、他のコンポーネントのうちのいずれか1つまたは複数よりも別個のコンピューティングデバイス(またはそれ以外の場合)に存在し得ることを理解されたい。いくつかの例では、知覚コンポーネント110は、衝突回避コンポーネントの一部であり得る二次知覚コンポーネントなどの他の知覚コンポーネントのうちの一次知覚コンポーネントであり得る。いくつかの例では、知覚コンポーネント110、プランニングコンポーネント112,及び/または位置決めコンポーネント114は、1つ以上のGPU、MLモデル、カルマンフィルタ、及び/または同様のものを含んでもよい、ハードウェア及び/またはソフトウェアのパイプラインを含んでもよい。
【0022】
一般に、知覚コンポーネント110は、車両102を取り囲む環境に何があるかを判定してよく、プランニングコンポーネント112は、知覚コンポーネント110から受信した情報に従って車両102を操作する方法を判定してよい。例えば、プランニングコンポーネント112は、知覚データ及び/または例えば、1つ以上のマップ、位置決めコンポーネント114によって生成された位置決めデータ(例えば、車両102が知覚コンポーネント110によって検出される環境及び/または特徴の表現120に対して環境内のどこにいるか)等の他の情報に少なくとも部分的に基づいて軌道118を決定してもよい。軌道118は、車両位置、車両速度、及び/または車両加速度をもたらし得るステアリング角度及び/またはステアリングレートを実現するように車両102の駆動コンポーネントを作動させるためのコントローラ116に対する命令を含んでよい。例えば、軌道118は、コントローラ116が追跡するためのターゲット方向、ターゲットステアリング角度、ターゲットステアリングレート、ターゲット位置、ターゲット速度、及び/またはターゲット加速度を備え得る。知覚コンポーネント110、プランニングコンポーネント112、及び/または位置決めコンポーネント114は、1つ以上の機械学習(ML)モデル及び/または他のコンピュータ実行可能命令を含んでもよい。
【0023】
いくつかの例では、知覚コンポーネント110は、センサ104からセンサデータを受信し、車両102の近傍のオブジェクトに関連するデータ(例えば、検出されたオブジェクト、インスタンスセグメンテーション、セマンティックセグメンテーション、2次元及び/または3次元バウンディングボックス、トラックに関連付けられた分類)、車両の目的地を指定するルートデータ、車道の特徴を識別するグローバルマップデータ(例えば、自律車両をローカライズするのに有用な異なるセンサモダリティで検出可能な特徴)、車両に近接して検出された特徴を識別するローカルマップデータ(例えば、建物、木、フェンス、消火栓、停止標識の位置及び/または寸法、並びに様々なセンサモダリティで検出可能な任意の他の特徴)などを判定し得る。知覚コンポーネント110によって決定されるオブジェクト分類は、例えば、乗用車、歩行者、自転車運転者、配送トラック、セミトラック、交通標識等の異なるオブジェクトタイプを区別し得る。トラックは、これまでの、現在の、及び/または予測されるオブジェクトの位置、速度、加速度、及び/または向きを含み得る。知覚コンポーネント110によって生成されたデータは、知覚データと総称され得る。知覚コンポーネント110が知覚データを生成すると、知覚コンポーネント110は、知覚データをプランニングコンポーネント112に提供し得る。
【0024】
プランニングコンポーネント112は、知覚コンポーネント110から受信された知覚データ及び/または位置決めコンポーネント114から受信された位置決めデータを使用して、1つまたは複数の軌道を判定し、車両102の運きを制御して経路またはルートをトラバースし、及び/またはそれ以外の場合、車両102の動作を制御し得るが、任意のそのような動作は、様々な他のコンポーネントで実行され得る(例えば、位置決めは、知覚データに少なくとも部分的に基づき得る位置決めコンポーネントによって実行され得る)。例えば、プランニングコンポーネント112は、第1の位置から第2の位置への車両102の経路を決定し、(そのようなデータ内の検出されたオブジェクトに関する予測をさらに含み得る)知覚データ及び/またはシミュレートされた知覚データに実質的に同時にかつ少なくとも部分的に基づいて、後退する水平線技法(例えば、1マイクロ秒、半秒)に従って車両102の動きを制御するための複数の潜在的な軌道を生成して、(例えば、検出されたオブジェクトのいずれかを回避するために)経路をトラバースするように車両を制御し、車両102の駆動コンポーネントに送信され得る駆動制御信号を生成するために使用され得る潜在的な軌道のうちの1つを車両102の軌道118として選択することができる。
図1は、方向、速度、及び/または加速度を示す矢印として表されるそのような軌道118の例を示すが、軌道自体は、コントローラ116のための命令を含んでもよく、コントローラ116は、次いで、車両102の駆動システムを作動させてもよい。
【0025】
いくつかの例では、位置決めコンポーネント114は、センサデータ及び/または知覚データを受信し、センサデータ、知覚データ、及び/またはマップに少なくとも部分的に基づいて車両102のポーズを決定し得る。例えば、マップは、コンピューティングデバイス106のメモリに記憶されてもよく、本明細書で論じられる技術のいずれかに従って生成された環境の表現120を含んでもよい。いくつかの例では、表現120は、メッシュ(
図1に示すように)または環境の任意の他の3次元(または他の次元)表現であってもよい。いくつかの例では、表現120は、ブロックまたは車両の周囲などの小さな領域、都市、またはそれ以上を少なくとも含み得るので、表現120は、符号化及び/または圧縮され得る。いくつかの例では、表現120は、ネットワークインタフェースを介して車両102に利用可能であり得る。例えば、表現120は、車両102の経路及び/または位置に少なくとも部分的に基づいて、車両102にストリーミングまたは他の方法で送信されてもよい。いくつかの例では、車両102は、マップまたはマップの少なくとも一部を決定し得る。
【0026】
位置決めコンポーネント114は、センサデータをマップにマッチングさせ、車両の相対的なポーズを決定することによって、マップに少なくとも部分的に基づいて(例えば、表現120に対して)車両のポーズ(例えば、位置及び/または向き)を決定することができる。表現120は、マップに対する車両のポーズを決定することが、車両のグローバルポーズ(例えば、都市全体、国全体、または地球全体のマップに対する位置及び/または向き)及び/またはローカルポーズ(例えば、都市ブロックに沿った車両の位置及び/または向き)を決定するのに十分であり得るように、グローバル座標及び/またはローカル座標を含んでよい。いくつかの例では、位置決めコンポーネント114は、センサデータを表現120と比較し、その比較に少なくとも部分的に基づいて車両のリアルタイムポーズを決定し得る。追加的または代替的に、位置決めコンポーネント114は、2017年8月11日に出願された特許文献1(その全体が本明細書に組み込まれる)でより詳細に論じられているように、表現120に少なくとも部分的に基づいてセンサ104を較正し得る。いくつかの例では、センサ104の1つを較正することは、車両102のポーズに対してセンサに関連付けられたポーズを調整することを含み得る。
【0027】
いくつかの例では、車両102は、マッピング車両であってもよく、知覚コンポーネント110及び/またはプランニングコンポーネント112を含んでもよく、または含まなくてもよく、位置決めコンポーネント114は、マッピングコンポーネントを含んでもよい。そのようなマッピング車両は、そのようなマップを生成するためにデータを収集するセンサを備えた手動操作車両を含み得る。
【0028】
いくつかの例では、位置決めコンポーネント114は、センサデータ122が受信されたときに推定されたポーズ124などの車両の推定されたポーズに関連付けられたログに、センサデータ122などのセンサデータを格納し得る。いくつかの例では、車両のポーズ124を推定することは、オドメトリ測定(例えば、ホイールエンコーダ出力、IMU出力)、他のセンサ情報(例えば、GPS位置、コンパス出力)、知覚データ、及び/または位置決めデータ(例えば、SLAM技術に少なくとも部分的に基づいた推定ポーズ)などのセンサデータに少なくとも部分的に基づいてもよい。いくつかの例では、ログを生成することは、移動オブジェクト検出、ループ閉鎖の検出、及び/または同様のことを実行し得るSLAM技術及び/またはその構成要素を含み得る。少なくともいくつかのそのような例では、そのようなループ閉鎖は、本明細書で詳細に説明されるように、リンクを提案するために使用され得る。ポーズ124は、位置126及び/または向き128(例えば、ヨー、ピッチ、及び/またはロールを含み得る配向)を含み得る。いくつかの例では、複数の推定ポーズは、推定軌道130に集約され得る。センサデータは、推定軌道130を構成するポーズのうちの1つ以上に関連付けられ得る。少なくとも1つの非限定的な例では、推定軌道130は、地図/表現120に少なくとも部分的に基づいているSLAM技術に少なくとも部分的に基づいて決定され得る。SLAM技術は、ベイズフィルタ(カルマンフィルタなど)、バンドル調整、最大事後確率推定(MAP)、及び/または任意のSLAMアルゴリズムを含み得る。
【0029】
いくつかの例では、車両102は、推定軌道130及びそれに関連付けられたセンサデータをリモートコンピューティングデバイスに送信してもよく、リモートコンピューティングデバイスは、分散コンピューティングサービス、別の車両、及び/または同様のものを含んでもよい。リモートコンピューティングデバイス及び/または車両102は、表現120及び/または表現120への更新を含み得るマップを生成し得る。いくつかの例では、マップを決定することは、補正軌道134によって示されるように、推定軌道に対する補正132を決定することを含み得る。推定軌道130は、補正軌道134と比較して、車道136の位置及び方向に対する推定軌道のより大きな誤差/より小さいアラインメントの程度(degree)に関連付けられ得ることに留意されたい。いくつかの例では、センサデータアラインメントへの変更は、結果として生じるマップに少なくとも部分的に基づいて軌道が推定される場合に、軌道に対する変更になり得る。いくつかの例では、補正軌道134は、車両102に送信されてもよい。
【0030】
いくつかの例では、アラインメントに関連付けられた誤差及び/または程度は、リンク修正(例えば、追加、除去、または調整)の候補として推定軌道130の領域及び/または1つ以上のポーズを識別するために本明細書で使用され得る。アラインメントの程度及び/または提案されたリンク修正は、監視された技術に少なくとも部分的に基づいて訓練されたMLモデルの出力であってもよい(例えば、利用可能な場合、GPSデータを使用して、データラベリングを使用して、知覚及び/または計画データを使用して)。
【0031】
いくつかの例では、コントローラ116は、軌道118を追跡するのに十分な車両102の駆動コンポーネントを作動させるためのソフトウェア及び/またはハードウェアを備え得る。例えば、コントローラ116は、1つまたは複数のPID(proportional-integral-derivative)コントローラを備え得る。
【0032】
(システムの例)
図2は、本明細書で論じられる技術を実装する例示的なシステム200のブロック図を示す。いくつかの例では、例示的なシステム200は、
図1の車両102を表し得る車両202を含み得る。いくつかの例では、車両202は、米国運輸省道路交通安全局によって発行されたレベル5分類に従って動作するように構成された自律走行車であってよく、これは、全行程で全てのセーフティクリティカルな機能を実行することができる車両を記述したものであり、運転者(または乗員)はどんなときでも車両を制御することを期待されていない。しかしながら、他の例では、車両202は、他のレベルまたは分類を有する完全にまたは部分的な自律車両であり得る。さらに、場合によっては、本明細書に記載の技術は、非自律型車両によっても使用可能であり得る。
【0033】
車両202は、車両コンピューティングデバイス204、センサ206、エミッタ208、ネットワークインタフェース210、及び/または駆動コンポーネント212を含み得る。車両コンピューティングデバイス204は、コンピューティングデバイス106を表し得、センサ206は、センサ104を表し得る。システム200は、追加的または代替的に、コンピューティングデバイス214を含み得る。
【0034】
いくつかの例では、センサ206は、センサ104を表し得、ライダーセンサ、レーダーセンサ、超音波トランスデューサ、ソナーセンサ、位置センサ(例えば、グローバルポジショニングシステム(GPS)、コンパスなど)、慣性センサ(例えば、慣性測定ユニット(IMU)、加速度計、磁力計、ジャイロスコープなど)、画像センサ(例えば、赤緑青(RGB)、赤外線(IR)、強度、深度、飛行時間カメラなど)、マイク、ホイールエンコーダ、環境センサ(例えば、温度計、湿度計、光センサ、圧力センサなど)などを含み得る。センサ206は、これらまたは他のタイプのセンサのそれぞれの複数のインスタンスを含み得る。例えば、レーダーセンサは、車両202の角部、前部、後部、側部、及び/または上部に位置する個々のレーダーセンサを含んでよい。別の例として、カメラは、車両202の外部及び/または内部に関する様々な場所に配置された複数のカメラを含み得る。センサ206は、車両コンピューティングデバイス204及び/またはコンピューティングデバイス214に入力を提供し得る。
【0035】
車両202はまた、上記のように、光及び/または音を放出するためのエミッタ208を含み得る。この例におけるエミッタ208は、車両202の乗客と通信するための内部オーディオ及びビジュアルエミッタを含み得る。限定ではなく例として、内部エミッタは、スピーカ、ライト、サイン、ディスプレイスクリーン、タッチスクリーン、触覚エミッタ(例えば、振動及び/または力フィードバック)、機械的アクチュエータ(例えば、シートベルトテンショナー、シートポジショナー、ヘッドレストポジショナーなど)などを含み得る。この例におけるエミッタ208はまた、外部エミッタを含み得る。限定ではなく例として、この例における外部エミッタは、進行方向を信号で伝えるためのライトまたは車両動作の他のインジケータ(例えば、インジケータライト、サイン、ライトアレイなど)、及び歩行者または他の近くの車両と聴覚的に通信するための1つまたは複数のオーディオエミッタ(例えば、スピーカ、スピーカアレイ、ホーンなど)を含み得、それらの1つまたは複数は、音響ビームステアリング技術を含む。
【0036】
車両202はまた、車両202と1つ以上の他のローカルまたはリモートコンピューティングデバイスとの間の通信を可能にするネットワークインタフェース210を含み得る。例えば、ネットワークインタフェース210は、車両202及び/または駆動コンポーネント212上の他のローカルコンピューティングデバイスとの通信を容易にし得る。また、ネットワークインタフェース210は、追加的または代替的に、車両が他の近くのコンピューティングデバイス(例えば、他の車両、交通信号など)と通信することを可能にし得る。ネットワークインタフェース210は、追加的または代替的に、車両202がコンピューティングデバイス214と通信することを可能にし得る。いくつかの例では、コンピューティングデバイス214は、分散コンピューティングシステム(例えば、クラウドコンピューティングアーキテクチャ)の1つまたは複数のノードを含み得る。
【0037】
ネットワークインタフェース210は、車両コンピューティングデバイス204を別のコンピューティングデバイスまたはネットワーク216などのネットワークに接続するための物理的及び/または論理的インターフェースを含み得る。例えば、ネットワークインタフェース210は、IEEE200.11規格によって定義された周波数、ブルートゥース(登録商標)などの短距離無線周波数、セルラー通信(例えば、2G、3G、4G、4G LTE、5Gなど)、またはそれぞれのコンピューティングデバイスが他のコンピューティングデバイスとインターフェイスできるようにする適切な有線または無線通信プロトコルを介するなどのWi-Fiベースの通信を可能にし得る。場合によっては、車両コンピューティングデバイス204及び/またはセンサ206は、所定の期間の経過後、ほぼリアルタイムで、など、ネットワーク216を介して、特定の周波数でセンサデータをコンピューティングデバイス214に送信し得る。
【0038】
いくつかの例では、車両202は、1つ以上の駆動コンポーネント212を含み得る。いくつかの例では、車両202は、単一の駆動コンポーネント212を有し得る。いくつかの例では、駆動コンポーネント212は、駆動コンポーネント212及び/または車両202の周囲の状態を検出するための1つまたは複数のセンサを含み得る。限定ではなく例として、駆動コンポーネント212のセンサは、駆動コンポーネントの車輪の回転を感知するための1つまたは複数の車輪エンコーダ(例えば、回転エンコーダ)、駆動コンポーネント、カメラまたはその他の画像センサの方向と加速度を測定する慣性センサ(例えば、IMU、加速度計、ジャイロスコープ、磁気計など)、駆動コンポーネントの周囲のオブジェクトを音響的に検出する超音波センサ、LIDARセンサ、レーダーセンサなどを含み得る。ホイールエンコーダのようなあるセンサは、駆動コンポーネント212に特有のものであってよい。場合によっては、駆動コンポーネント212上のセンサは、車両202の対応するシステム(例えば、センサ206)と重複するか、または補足し得る。
【0039】
駆動コンポーネント212は、高電圧バッテリー、車両を推進するモーター、バッテリーからの直流電流を他の車両システムによって利用される交流電流へと変換するインバーター、ステアリングモーター及びステアリングラック(これは、電動であってよい)を含むステアリングシステム、油圧または電気アクチュエータを含むブレーキシステム、油圧及び/または空気圧コンポーネントを含むサスペンションシステム、トラクションの損失を軽減し、且つ制御を維持するよう制動力の分散をする安定制御システム、HVACシステム、照明(例えば、車両の外部周囲を照らすヘッド/テールライトなどの照明)、及び1つまたは複数の他のシステム(例えば、冷却システム、安全システム、車載充電システム、DC/DCコンバーター、高電圧ジャンクション、高電圧ケーブル、充電システム、充電ポートなどのその他の電装コンポーネント)を含む多くの車両システムを含み得る。さらに、駆動コンポーネント212は、センサからデータを受信して前処理をし得る駆動コンポーネントコントローラを含み、様々な車両システムの動作を制御し得る。場合によっては、駆動コンポーネントコントローラは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサと通信可能に結合されたメモリとを含み得る。メモリは、駆動コンポーネント212の様々な機能を実行する1つ以上のコンポーネントを記憶し得る。さらに、駆動コンポーネント212はまた、それぞれの駆動コンポーネントによる、1つまたは複数の他のローカルコンピューティングデバイスまたはリモートコンピューティングデバイスとの通信を可能にする1つまたは複数の通信接続を含むことができる。
【0040】
車両コンピューティングデバイス204は、プロセッサ218と、1つ以上のプロセッサ218と通信可能に結合されたメモリ220とを含み得る。メモリ220は、メモリ108を表し得る。コンピューティングデバイス214はまた、プロセッサ222、及び/またはメモリ224を含んでもよい。プロセッサ218及び/または222は、データを処理し、本明細書に記載されるような動作を実行するための命令を実行することができる任意の適切なプロセッサであり得る。限定ではなく例として、プロセッサ218及び/または222は、1つまたは複数の中央処理装置(CPU)、グラフィックス処理装置(GPU)、集積回路(例えば、特定用途向け集積回路(ASIC))、ゲートアレイ(例えば、フィールドプログラマブルゲートアレイ(FPGA))、及び/または電子データを処理してその電子データを、レジスタ及び/またはメモリに格納され得る他の電子データに変換する他のデバイスまたはデバイスの一部を含み得る。
【0041】
メモリ220及び/またはメモリ224は、非一時的なコンピュータ可読媒体の例であり得る。メモリ220及び/またはメモリ224は、オペレーティングシステム、及び本明細書で説明される方法及び様々なシステムに起因する機能を実装するための1つ以上のソフトウェアアプリケーション、命令、プログラム、及び/またはデータを格納し得る。様々な実装において、メモリは、スタティックRAM(SRAM)、シンクロナスDRAM(SDRAM)、不揮発性/フラッシュタイプメモリ、または情報を格納可能な任意の他のタイプのメモリのような適切なメモリ技術を用いて実装されてよい。本明細書で説明される、アーキテクチャ、システム、及び個々のエレメントは、多くの他の論理的、プログラム的、及び物理的なコンポーネントを含んでよく、それらのうちの添付図面に示されるものは、単に本明細書での説明に関連する例示に過ぎない。
【0042】
いくつかの例では、メモリ220及び/またはメモリ224は、位置決めコンポーネント226、知覚コンポーネント228、プランニングコンポーネント230、マッピングコンポーネント332、マップ234、及び/またはシステムコントローラ236を格納し得る。位置決めコンポーネント226は、位置決めコンポーネント114を表し得、知覚コンポーネント228は、知覚コンポーネント110を表し得、及び/またはプランニングコンポーネント230は、プランニングコンポーネント112を表し得る。
【0043】
少なくとも1つの例において、位置決めコンポーネント226は、車両202の位置、速度及び/または方向(例えば、x位置、y位置、z位置、ロール、ピッチ、またはヨーのうちの1つまたは複数)を決定するためにセンサ206からのデータを受信するハードウェア及び/またはソフトウェアを含んでよい。例えば、位置決めコンポーネント226は、環境のマップ234を含み、及び/または要求/受信することができ、マップ234内の自律車両の位置、速度、及び/または向きを継続的に決定できる。ある例において、位置決めコンポーネント226は、SLAM(simultaneous localization and mapping)、CLAMS(calibration, localization and mapping, simultaneously)、相対SLAM、バンドル調整、非線形最小二乗最適化などを利用し、画像データ、ライダーデータ、レーダーデータ、IMUデータ、GPSデータ、ホイールエンコーダデータなどを受信し、自律車両の位置、ポーズ、及び/または速度を正確に決定できる。いくつかの例では、本明細書で論じるように、位置決めコンポーネント226は、車両202の様々なコンポーネントにデータを提供して、軌道を生成するための、及び/または地図データを生成するための自律車両の初期位置を決定できる。いくつかの例では、位置決めコンポーネント226は、マッピングコンポーネント232に、環境に対する車両202のポーズ(例えば、位置及び/または方位)(例えば、マップ234に対する位置及び/または方位を介して)及び/またはそれに関連付けられたセンサデータを提供し得る。
【0044】
いくつかの例では、知覚コンポーネント228は、ハードウェア及び/またはソフトウェアに実装された予測システムを含んでもよい。知覚コンポーネント228は、車両202を取り巻く環境内のオブジェクトを検出し(例えば、オブジェクトが存在することを識別する)、オブジェクトを分類し(例えば、検出されたオブジェクトに関連付けられたオブジェクトタイプを決定する)、センサデータ及び/または環境の他の表現をセグメント化し(例えば、センサデータの一部及び/または環境の表現を検出されたオブジェクト及び/またはオブジェクトタイプに関連付けられているものとして識別する)、オブジェクトに関連付けられた特性(例えば、オブジェクトに関連付けられた現在の、予測された、及び/または以前の位置、向き、速度、及び/または加速度を識別するトラック)及び/または同様のものを決定し得る。知覚コンポーネント228によって決定されるデータは、知覚データと呼ばれる。
【0045】
プランニングコンポーネント230は、位置決めコンポーネント226から車両202の位置並びに/または向き、及び/または知覚コンポーネント228から知覚データを受信して、このデータのいずれかに少なくとも部分的に基づいて車両202の動作を制御する命令を決定してもよい。いくつかの例では、命令を決定することは、命令が関連付けられたシステムに関連付けられたフォーマットに少なくとも部分的に基づいて命令を決定することを含み得る(例えば、自律車両の動きを制御するための第1の命令は、システムコントローラ236及び/または駆動コンポーネント212が解析する/実行させ得るメッセージ及び/または信号(例えば、アナログ、デジタル、空気力学、キネマティック)の第1のフォーマットでフォーマットされてもよく、エミッタ208のための第2の命令は、それに関連付けられた第2のフォーマットに従ってフォーマットされてもよい)。
【0046】
マッピングコンポーネント232は、車両202及び/またはコンピューティングデバイス214上で動作してもよい。いくつかの例では、マッピングコンポーネント232は、センサ206、パイプライン内の知覚コンポーネント228、及び/またはプランニングコンポーネント230から(出力を受信する)ダウンストリームであってよい。位置決めコンポーネント226は、位置決めコンポーネント226の出力の全てまたは一部を、マッピングコンポーネント232に渡すように、または全く渡さないように構成され得る。いくつかの例では、マッピングコンポーネント232は、1つ以上の車両からセンサデータ、知覚データ、及び/またはポーズデータを収集することを決定し、リンクを決定し、センサデータアラインメントを決定し、及び/またはセンサデータ、リンク、及び/またはポーズデータに少なくとも部分的に基づいて環境の表現を含むマップを決定するためのコンポーネントを含んでもよい。
【0047】
メモリ220及び/またはメモリ224は、追加的または代替的に、衝突回避システム、ライドマネジメントシステム などを格納し得る。位置決めコンポーネント226、知覚コンポーネント228、プランニングコンポーネント230、マップ234、及び/またはシステムコントローラ236は、メモリ220に格納されているように図示されるが、これらのコンポーネントのうちのいずれかは、プロセッサ実行可能命令、機械学習モデル(例えば、ニューラルネットワーク)、及び/またはハードウェアを含んでもよく、これらのコンポーネントのいずれかの全てまたは一部は、メモリ224に格納されてもよく、またはコンピューティングデバイス214の一部として構成されてもよい。いくつかの例では、車両202上で動作するマッピングコンポーネントは、センサデータ(例えば、生センサデータ、センサデータアラインメント、知覚ラベル付きセンサデータ)、ポーズデータ、及び/またはコンピューティングデバイス214への送信のための知覚データを収集し及び/または符号化し得る。車両及び/またはコンピューティングデバイス214上で動作するマッピングコンポーネントは、リンク修正に少なくとも部分的に基づいてマップを生成するために、本明細書で説明される動作を実行し得る。
【0048】
いくつかの例では、コンピューティングデバイス214(及び/または204)は、チューニングコンポーネント238を含み得る。いくつかの例では、チューニングコンポーネントは、本明細書で論じられる訓練データで訓練された1つ以上のMLモデルを含み得る。チューニングコンポーネントは、ポーズ、センサデータ、及び/またはリンク修正の候補であり得る領域を識別するように訓練されてもよく、及び/またはチューニングコンポーネントは、リンク修正を出力してもよい。チューニングコンポーネントは、追加的または代替的に、推定されたポーズデータの車道へのアラインメントの程度を決定し得る。候補修正に関連付けられたポーズ及び/またはセンサデータを決定することは、それに関連付けられたアラインメントの程度に少なくとも部分的に基づいてよい。
【0049】
本明細書に記載されるように、位置決めコンポーネント226、知覚コンポーネント228、プランニングコンポーネント230、チューニングコンポーネント238、及び/またはシステム200の他のコンポーネントは、1つ以上のMLモデルを含み得る。例えば、位置決めコンポーネント226、知覚コンポーネント228、プランニングコンポーネント230、及び/またはチューニングコンポーネント238は、それぞれ異なるMLモデルパイプラインを含んでよい。いくつかの例では、MLモデルは、ニューラルネットワークを含み得る。例示的なニューラルネットワークは、一連の接続レイヤを通して入力データを渡して出力を生じさせるバイオインスパイアードアルゴリズムである。ニューラルネットワークにおけるそれぞれのレイヤが別のニューラルネットワークを含むことも可能であり、または任意の数のレイヤ(畳み込み層であるか否か)を含むことが可能である。本開示のコンテキストで理解されることが可能である通り、ニューラルネットワークは、機械学習を利用することが可能であり、これは、出力が学習されたパラメータに基づいて生成される幅広いクラスのこのようなアルゴリズムを参照することが可能である。
【0050】
ニューラルネットワークのコンテキストで説明されるものの、任意のタイプの機械学習が本開示と整合するように用いられることが可能である。例えば、機械学習アルゴリズムは、限定はされないが、回帰アルゴリズム(例えば、通常最小二乗回帰(OLSR)、線形回帰、ロジスティック回帰、段階的回帰、MARS(multivariate adaptive regression splines)、LOESS(locally estimated scatterplot smoothing))、インスタンスベースアルゴリズム(例えば、リッジ回帰、LASSO(least absolute shrinkage and selection operator)、Elastic net、LARS(least-angle regression))、決定木アルゴリズム(例えば、分類及び回帰木(CART)、ID3(iterative dichotomiser 3)、カイ二乗自動相互作用検出(CHAID)、決定切り株、条件付き決定木)、ベイジアンアルゴリズム(例えば、ナイーブベイズ、ガウスナイーブベイズ、多項ナイーブベイズ、AODE(average one-dependence estimators)、ベイジアンビリーフネットワーク(BNN)、ベイジアンネットワーク)、クラスタリングアルゴリズム(例えば、k平均、kメジアン、期待値の最大化(EM)、階層的クラスタリング)、相関ルール学習アルゴリズム(例えば、パーセプトロン、誤差逆伝搬、ホップフィールドネットワーク、RBFN(Radial Basis Function Network))、深層学習アルゴリズム(例えば、深層ボルツマンマシン(DBM)、深層ビリーフネットワーク(DBN)、畳み込みニューラルネットワーク(CNN)、積層オートエンコーダ)、次元縮小アルゴリズム(例えば、主成分分析(PCA)、主成分回帰(PCR)、部分最小二乗回帰(PLSR)、サモンマッピング、多次元尺度構成法(MDS)、射影追跡、線形判別分析(LDA)、混合判別分析(MDA)、二次判別分析(QDA)、柔軟判別分析(FDA))、アンサンブルアルゴリズム(例えば、ブースティング、ブートストラップアグリゲーション(バギング)、アダブースト、積層ジェネラリゼーション(ブレンディング)、勾配ブースティングマシン(GBM)、勾配ブースト回帰木(GBRT)、ランダムフォレスト)、SVM(サポートベクタマシン)、教師あり学習、教師なし学習、半教師あり学習などを含むことができる。アーキテクチャのさらなる例としては、ResNet-50、ResNet-101、VGG、DenseNet、PointNetなどのニューラルネットワークが挙げられる。
【0051】
メモリ220は、追加的または代替的に、1つまたは複数のシステムコントローラ236を格納し得、これは、車両202のステアリング、推進、ブレーキ、安全、エミッタ、通信、及び他のシステムを制御するように構成され得る。これらのシステムコントローラ236は、駆動コンポーネント212及び/または車両202の他のコンポーネントの対応するシステムと通信し、及び/または制御し得る。システムコントローラ236は、プランニングコンポーネント230から受信した命令に少なくとも部分的に基づいて、車両202の動作を制御し得る。
【0052】
図2は分散システムとして示されているが、代替の例では、車両202の構成要素は、コンピューティングデバイス214に関連付けられ得、及び/またはコンピューティングデバイス214の構成要素は、車両202に関連付けられ得ることに留意されたい。すなわち、車両202は、コンピューティングデバイス214に関連する1つまたは複数の機能を実行し得、逆もまた同様である。
【0053】
(センサデータのアラインメント、軌道、及びリンクの例)
図3Aは、環境300の例示的なトップダウン表現を示す。例示的な環境300は、2つの車道(それぞれ302及び304)、複数のライトポスト306、及び噴水308の基部を含む。
【0054】
図3Bは、自律型及び/またはマッピング車両によって生成されたログデータの一部であり得るデータを示す。図示の例では、ログデータは、参照のために環境300の表現に重ねられ、環境300の表現は、灰色の線で表される。いくつかの例では、ログデータは、1つ以上の自律車両及び/またはマッピング車両から受信されたログデータを含み得る。ログデータは、例えば、少なくともセンサデータ312に関連付けられたポーズ310(例えば、車両の推定位置及び/または向き)を含んでよく、これらの両方は、環境300をトラバースするときに第1の車両によって生成されてよい。ログデータは、追加的または代替的に、センサデータ316に関連付けられたポーズ314を含んでもよく、これらの両方は、第1の車両または第2の車両が環境300をトラバースするときに、第1の車両または第2の車両によって生成されてもよい。センサデータ312及び/またはセンサデータ316は、ライダーデータ、深度カメラデータ、及び/または同様のものを表し得る。いくつかの例では、ポーズ310及び/またはポーズ314は、車両によって生成された軌道の一部であり得る。
【0055】
ログデータは、コンピューティングデバイス214などのコンピューティングデバイス(複数可)に送信されてよく、コンピューティングデバイス214は、SLAM、ループ閉鎖、及び/または2つの異なるポーズに関連付けられたセンサデータが環境の共通のビューを含む可能性が高いことを判定するための他のマッピングアルゴリズムの1つまたは複数のグローバルパラメータに少なくとも部分的に基づいて、ポーズ310とポーズ314との間のリンク318を判定してよい(例えば、2つのセンサデータのセットの少なくとも一部は、環境の同じ部分及び/または環境の同じ部分の異なる視点に対応する)。例えば、グローバルパラメータは、閾値距離及び/または閾値類似性(例えば、閾値アラインメントの程度)を含むことができ、(提案された)リンク318を決定することは、ポーズ310とポーズ314との間の距離が、センサデータ312とセンサデータ316との間で決定される閾値距離及び/またはアラインメントの程度以下であること、またはその距離が閾値アラインメントの程度を満たすか、または超えることを決定することを含み得る。いくつかの例では、リンク318を決定することは、リンクの終端の閾値パラメータ内(例えば、リンクの終端の共分散σまたはリンクの終端の共分散3σ内)でポーズ(複数可)を決定することを含み得る。
【0056】
図3Bは、センサデータが重複しない及び/または不連続であるため、センサデータの事前アラインメントを描写してもよく、またはセンサデータのアラインメントを描写してもよい。アラインメントを判定することは、ポーズ(複数可)に関連付けられたセンサデータを判定することを含み得る。例えば、センサデータを判定することは、ポーズのウィンドウ内にあるセンサデータを判定することを含み得、ウィンドウは、ポーズの周りの距離または時間のスパン(例えば、±2メートル、±0.5秒)であってもよいが、他のウィンドウは企図されており、正方向及び負方向に均一である必要はなく、車両の速度またはフレームキャプチャレートなどのセンサの動作特性に少なくとも部分的に基づいていてもよい)。そのようなアラインメントは、例えば、本明細書に記載されるようなICP(Iterative Closest Point)推定、または他の最適化を含んでよい。描写される例では、第1のセンサデータ及び第2のセンサデータは両方とも複数のライダーデータコレクションを含み、それぞれが異なるポーズに関連付けられてもよく、または他の例では、ポーズがセンサデータがキャプチャされる周波数よりも低い周波数で決定されるときに同じポーズに関連付けられてもよい。アラインメントを判定することは、第1のデータの第2のデータへのアラインメントの誤差を低減するために、センサデータに関連付けられた推定されたポーズを摂動することを含み得る。例えば、センサデータ312及びセンサデータ316を整列させることは、ライトポスト306及び噴水308に関連付けられたセンサデータ312及びセンサデータ316が重複及び/または連続するまで、ポーズ310及び/またはポーズ314を摂動することを含み得る。
【0057】
図3Bはまた、(例えば、リンク318を追加するか、またはリンク318に関連付けられたパラメータを修正することによって)リンク318を修正する命令を受信することに応答して、本明細書で論じられる技術によって引き起こされ得るディスプレイの例を提供する。命令を受信することに少なくとも部分的に基づいて、リンク318に関連付けられたセンサデータのアラインメントは、環境のマップが生成される前に、修正から生じるアラインメントが評価され得るように、トリガされてもよく、またはユーザ起動(user initiation)のために利用可能にされてもよい。修正されていないリンクに関連付けられたセンサデータのセンサデータアラインメントは、マップが生成されるまで遅延され得るが、そのようなアラインメントは、任意の他の時間に(例えば、いくつかの例ではリンクを決定する一部として)決定され得ることが理解される。
【0058】
(例示的な処理)
図4は、環境のマップを生成し、マップの部分を識別及び/または修正し、及び/または生成中または生成前にリンクを修正するために機械学習モデルを訓練するための例示的なプロセス400のフロー図を示す。いくつかの例では、例示的なプロセス400は、少なくともマッピングコンポーネント及び/またはチューニングコンポーネントによって実行されてもよい。
【0059】
動作402において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、環境に関連付けられたセンサデータを受信すること、及び/または推定軌道を受信することを含み得る。例えば、センサデータは、ライダーデータ、レーダーデータ、赤外線画像データ、視覚画像データ、ソナーデータ、及び/または同様のものを含んでよい。いくつかの例では、推定軌道は、センサデータに関連付けられ得る。センサデータ及び/または推定軌道は、1つ以上の車両から受信されたセンサデータ及び/または推定軌道の収集の一部であり得る。いくつかの例では、推定軌道は、1つ以上のポーズを含み得る。ポーズは、車両によって行われる環境の単純なマッピングに少なくとも部分的に基づいてもよいSLAMアルゴリズムに少なくとも部分的に基づいて推定されるように、車両の推定位置及び/または向きを示してもよい。ポーズは、センサデータの1つ以上のフレーム(例えば、シリアライズされたまたはタイムスタンプされたセンサデータ)に関連付けられ得る。例えば、ポーズは、車両が推定ポーズを決定した時点で、またはその前後でキャプチャされたセンサデータのフレームに関連付けられ得る。
【0060】
動作404において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、グローバルパラメータ、センサデータ、及び/または推定軌道に少なくとも部分的に基づいてリンクを決定することを含み得る。例えば、リンクを決定することは、ノードが異なるポーズである係数グラフのノード間のエッジを決定することを含み得、2つの異なるポーズに関連付けられたセンサデータを一致させようとする。少なくとも1つの非限定的な例では、アルゴリズムは、周波数(例えば、5メートルごとに、車両の速度に少なくとも部分的に基づいてよい)で軌道をサンプリングし、別の軌道がサンプルに対してグローバルパラメータを満たすかどうかを判定し得る。例えば、動作404は、軌道をサンプリングすることに少なくとも部分的に基づいて第1のポーズを決定することと、第1のポーズから第2の軌道の第2のポーズまでの距離が閾値距離未満であることを決定することとを含み得る。
【0061】
いくつかの例では、リンクは、2つ以上のポーズに関連付けられた変換(例えば、2つ以上のポーズに関連付けられたセンサデータを整列させることに少なくとも部分的に基づいて決定される)及び/または共分散並びに/または閾値距離等のパラメータを含み得る。共分散及び/または閾値距離は、ポーズを摂動するための同じ要素及び/または制約(複数可)に関連付けられ得るセンサデータを識別するアラインメントの決定の一部として使用され得る。いくつかの例では、リンクを決定することは、例えば、マッチスコア閾値、ポーズ間の閾値距離等のグローバルパラメータに少なくとも部分的に基づいてもよい。
【0062】
動作406において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、センサデータ及びリンクに少なくとも部分的に基づいて、第1のアラインメントを決定することを含み得る。いくつかの例では、リンクを決定することは、アラインメントを決定することの一部であり得る。アラインメントを決定することは、2017年8月11日に出願された特許文献2(その全体が本明細書に組み込まれる)でさらに論じられているように、第1のデータの第2のデータへのアラインメントの誤差を低減するために、センサデータに関連付けられた推定されたポーズを摂動することを含み得る。いくつかの例では、リンク及び/またはアラインメントを決定することは、アンクシャスサーチ(anxious search)、ICP(iterative closest points)アルゴリズム、グラフベースのSLAM、及び/または任意の他のSLAMアルゴリズムを含んでもよい。いくつかの例では、アラインメントを達成するためのポーズ(複数可)の最終的な摂動は、リンクに関連付けられた変換として記憶され得る。いくつかの例では、変換は、推定されたポーズを修正並びに/または改良し、及び/または修正された/改良された軌道を決定するために使用され得る。追加的または代替的に、動作406は、マップを決定することを含み得る。追加的または代替的な例では、動作406は、センサデータアラインメントを決定する前に改良された軌道を決定することを含み得る。
【0063】
動作408において、プロセス400の例は、第1のアラインメントに関連付けられたアラインメントの程度を決定することを含み得る。いくつかの例では、アラインメントの程度は、ポーズ摂動の一部として計算された残差及び/またはアラインメントに関連付けられた追加の誤差を含み得る。追加または代替の例では、MLモデルまたは他のアルゴリズムは、複数のポーズを含む軌道のセクションに関連付けられたアラインメントの程度を判定するように訓練され得る。
【0064】
動作410において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、アラインメントの程度及び/または誤差が閾値を満たすか超えるかを判定することを含んでよい。アラインメントの程度及び/または誤差が閾値を満たすか、または超える場合、動作410は、動作412に遷移してもよく、そうでなければ、例示的なプロセス400は、動作402、414、または416に遷移してもよい。
【0065】
動作412において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、第1のアラインメント及び/または改良された軌道に関連付けられた通知の表示を引き起こすことを含み得る。例えば、例示的なプロセス400は、第1のアラインメント及び/または改良された軌道に関連付けられたデータと共に警告メッセージを送信すること、第1のアラインメント及び/または改良された軌道の表示を引き起こすこと、第1のアラインメント及び/または改良された軌道を少なくとも部分的に(例えば、改良された軌道の表示を色分けすること)に基づいて符号化すること、及び/または同様のことを含み得る。いくつかの例では、アラインメントの程度が閾値を満たさず、第1のポーズと第2のポーズとの間にリンクが存在する場合、動作412は、リンクを削除するための提案及び/またはオプションの表示を引き起こすことを含み得る。追加または代替の例では、アラインメントの程度が閾値を満たすか、または超え、リンクが存在しない場合、動作412は、アラインメントに関連付けられた2つのポーズへのリンクを追加するための提案及び/またはオプションの表示を引き起こすことを含み得る。
【0066】
動作414において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、提案されたリンクを追加し、リンクを削除し、及び/またはリンクに関連付けられたパラメータを変更する命令を含む修正を受信することを含み得る。いくつかの例では、センサデータアラインメントは、命令を受信することに応答して決定されてもよく、及び/またはセンサデータアラインメントを実行するオプションが利用可能にされてもよい(例えば、ユーザインタフェースを介して、発行サブスクライブシステムを介してチューニング及び/またはマッピングコンポーネントに利用可能にされてもよい)。
【0067】
図5Aは、リンクを削除することで、結果として生じるマップの精度が向上する例示的なシナリオ500を示す。
図5Aは、2つのトンネル、トンネル502及びトンネル504を示す。トンネルは、センサデータにおいて非常に類似しているように見える場合があるため、リンク判定ステップは、トンネル502内のポーズ506をトンネル504内のポーズ508と関連付けるリンク510を生成し得る。マップがリンク510に少なくとも部分的に基づいて生成される場合、センサデータは十分に整列し得、結果として生じるマップは、2つのトンネルを単一のトンネルにマージし得る。オーバーパスやその他の均一な機能は、この効果を引き起こす可能性もある。リンク510を削除すると、マッピングコンポーネントは、ポーズ506に関連付けられたセンサデータをポーズ508にアラインメントされたセンサデータと整列させようとしてスキップし、結果として生じるマップ内の2つの異なるトンネルをもたらし得る。いくつかの例では、このシナリオにおけるリンクの生成は、リンク生成及び/またはセンサデータアラインメントに関連付けられたグローバルパラメータによって許可され得る。
【0068】
図5Bは、高速道路フェンス518によって分割された高速道路の2つの側(それぞれ514及び516)を示す例示的なシナリオ512を示す。例示的なシナリオ512では、高速道路側514上のポーズ520は、2つのポーズに関連付けられたかなりの量のセンサデータが重複しているにもかかわらず、高速道路側516上のポーズ522にリンクされなかった。リンク524を追加することは、マッピングコンポーネントに、ポーズ520及びポーズ522にそれぞれ関連付けられたセンサデータのセンサデータアラインメントを決定させることができる。センサデータアラインメントから生成されたマップは、リンク542の追加の結果として、より詳細なものを含み得る。いくつかの例では、このシナリオにおけるリンクの生成の失敗は、リンクの生成を制限するグローバルパラメータに少なくとも部分的に基づいてもよい。
【0069】
いくつかの例では、リンクへの修正(例えば、追加、削除、変更)に少なくとも部分的に基づいてセンサデータアラインメントを更新(再整列)することは、センサデータを非関連付けることを含んでもよく、及び/またはさらなるポーズがリンクからのダウンウェイト摂動を含んでもよいが、追加または代替の例では、摂動は等しくまたは他の方法で重み付けされてもよい。いくつかのそのような例では、そのような再整列(realignment)は、ポーズグラフ緩和(pose graph relaxation)、非線形最小二乗最適化、バンドル調整、または任意の他のフィルタリング/マッピングアルゴリズム(例えば、SLAM)を含み得る。
【0070】
動作416において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、センサデータ及び修正に少なくとも部分的に基づいて、第2のマップ、第2の改良された軌道、及び/または第2のアラインメントを決定することを含み得る。第2のアラインメントを決定することは、新しいアラインメントを決定すること、または再アラインメントを決定することを含み得る。いくつかの例では、第2のアラインメントを決定することは、修正に関連付けられたセンサデータのウィンドウを決定することを含み得る。例えば、これは、互いに非関連付けられた2つのポーズ、新たに関連付けられた2つのポーズ、またはパラメータが変更された2つのポーズに関連付けられたリンクと関連付けられたセンサデータを判定することを含み得る。ウィンドウは、ポーズに対する時間及び/または距離のスパンを含み得る。いくつかの例では、センサデータのウィンドウに関連付けられたセンサデータを新たに整列/再整列させることは、センサデータのリンクされたポーズに関連付けられた時間及び/または位置への近接性に少なくとも部分的に基づいてセンサデータを重み付けすることを含み得る。例えば、アラインメントは、センサデータをアラインメントさせようとすると、センサデータが時間及び/または距離においてリンクされたポーズから離れているほど、ダウンウェイト(例えば、より低いスカラー値を適用し、共分散または他の剛性パラメータを増加させる)し得る。そのような重み付けは、ガウス、線形、多項式、シグモイドなどを含むが、これらに限定されない、そのような距離の関数であり得る。いくつかの例では、センサデータのウィンドウに関連付けられた重みを修正することは、センサデータのウィンドウに関連付けられたサンプリングレートを修正すること(例えば、関連付けられる時間及び/または位置から離れたサンプリングレートを減少させること)を含み得る。
【0071】
いくつかの例では、修正(複数可)が受信され、任意の更新されたアラインメントが生成され、マップを生成する命令が受信されたとき、残りのセンサデータアラインメントは、それに関連付けられたそれぞれのリンクに少なくとも部分的に基づいて決定され得る(例えば、いくつかの例では、センサデータは、更新されたアラインメントを作成するために選択されなかった、または自動アラインメントを引き起こすように設定されなかった非修正されたリンク及び/または修正されたリンクに関連付けられる)。アラインメントを決定することは、ポーズグラフ緩和、ICP、アンクシャスサーチ、及び/または同様のものを含み得る。
【0072】
いくつかの例では、マップを決定することは、センサデータアラインメントに少なくとも部分的に基づいて環境の表現を決定することを含み得る。例えば、マップを決定することは、マーチングスクエアアルゴリズム、Dual Contouringアルゴリズムなどによってポリラインモデルを決定すること、及び/またはマーチングキューブアルゴリズム、Dual Contouringアルゴリズム、レイトレーシングなどに少なくとも部分的に基づいて、メッシュモデル及び/またはワイヤフレームモデルを決定することを含み得る。
【0073】
動作418において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、第2のマップを自律車両に送信することを含み得る。いくつかの例では、自律車両は、マップを使用して、センサキャリブレーションを実施し、自律車両及び/または自律車両のセンサを位置決めし得る。
【0074】
動作420において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、修正及び/またはそれに関連付けられたデータを訓練データセットに追加することを含み得る。例えば、修正の受け入れ時(例えば、暗黙的受け入れを提供するマップを生成する命令が受信されたとき、またはユーザから明示的受け入れが受信されたとき)、修正及び/または関連データが訓練データセットに追加され得る。いくつかの例では、訓練データは、どのような種類の修正が行われたかのインジケーション、リンクに関連付けられたパラメータ(例えば、終端の位置、それに関連付けられた共分散)、リンクに関連付けられた知覚データ(例えば、ブリッジ、オーバーパス、または他の問題のある構造が検出された)、センサデータの少なくとも一部、及び/または2つ以上のポーズ、及び/または環境の特徴(例えば、環境内のオブジェクトの寸法、位置、及び/または数、車道の車線の数、車道に関連付けられた曲率、車道の一部の交差点への近接、車道で交差する車道の数)を含み得る。
【0075】
動作422において、例示的なプロセス400は、本明細書で論じられる技術のいずれかに従って、訓練データセットに少なくとも部分的に基づいてMLモデルを訓練することを含み得る。MLモデルは、訓練されて、修正されたグローバルパラメータのセット、修正を必要とし得る環境の領域及び/またはポーズ、リンクを修正する命令、リンクが生成及び/または削除される可能性を出力し、センサデータが閾値を満たさないアラインメントの程度に関連付けられそうな可能性を判定し、及び/または同様のものを行い得る。いくつかの例では、実行時に、MLモデルは、入力として領域に関連付けられた提案されたアラインメントデータを受信してもよく、領域に関連付けられたリンク(複数可)へのヌル出力または修正を出力してもよい。提案されたアラインメントデータは、センサデータ、ポーズ/軌道データ、及び/または領域に関連付けられたそれらのために生成された任意のリンクを含み得る。MLモデルは、調査された環境に関連付けられた提案されたアラインメントデータがMLモデルへの入力として提供されるまで、入力を繰り返し領域ごとに受信し、及び各領域への任意の修正を出力し得る。
【0076】
例示的なプロセス400は、より多くまたはより少ない動作を含んでもよく、本明細書に描写及び論じられる動作は、任意の他の順序であってもよい。本明細書で論じられる動作は、異なるプロセスとして達成されてもよく、及び/または並行して処理されてもよい。いくつかの例では、異なるものとして描写される動作は、単一の動作にマージされ得、逆もまた同様である。
【0077】
(例示的な条項)
A.環境に関連付けられるセンサデータを受信することと、センサデータ及びリンクに少なくとも部分的に基づいて、車両に関連付けられる第1のマップ及び第1の軌道を決定することであって、第1の軌道は複数のポーズを含み、リンクは、第1の軌道の第1のポーズに関連付けられるセンサデータの第1の部分が第2のポーズに関連付けられるセンサデータの第2の部分に対応するというインジケーションを含む、ことと、提案されたリンクを追加する命令またはリンクを削除する命令のうちの少なくとも1つを含む修正を受信することと、センサデータ及び修正に少なくとも部分的に基づいて、第2のマップ及び第2の軌道を決定することと、第2のマップを追加の車両に送信することとを備える方法。
【0078】
B.センサデータは、第1のセンサデータ及び第2のセンサデータを含み、第1のセンサデータは、第1のシステムの第1のセンサに関連付けられ、前記第2のセンサデータは、第2のシステムの第2のセンサデータに関連付けられる、条項Aに記載の方法。
【0079】
C.第2のマップまたは第2の軌道のうちの少なくとも1つを決定することは、修正に関連付けられるセンサデータのウィンドウを決定することを含み、第2のマップを決定することは、センサデータのウィンドウに対応する環境の部分に関連付けられる第1のマップの部分を再決定することを含む、条項AまたはBに記載の方法。
【0080】
D.センサデータのウィンドウを決定することは、修正に関連付けられる位置または時間の閾値距離または閾値時間内であるセンサデータのサブセットを決定することを含む、条項A乃至Cのいずれか一項に記載の方法。
【0081】
E.第1の部分及び第2の部分を決定することは、リンクに関連付けられる共分散、サンプリングレート、またはスカラーの少なくとも1つに少なくとも部分的に基づいており、修正は、共分散、サンプリングレート、またはスカラーの少なくとも1つの変更をさらに含む、条項A乃至Dのいずれか一項に記載の方法。
【0082】
F.修正を受信することに少なくとも部分的に基づいて、修正、第1の部分、及び第2の部分が訓練データセットに追加され、方法は、訓練データセットに少なくとも部分的に基づいて、機械学習モデルを訓練することであって、機械学習モデルは、リンクを追加する、またはリンクを削除するための1つまたは複数の修正を識別するように訓練される、ことをさらに含む、条項A乃至Eのいずれか一項に記載の方法。
【0083】
G.1つまたは複数のプロセッサ及びプロセッサ実行可能命令を格納するメモリを備えたシステムであって、プロセッサ実行可能命令は、1つまたは複数のプロセッサによって実行されると、システムに、環境に関連付けられるセンサデータを受信することと、センサデータ及びリンクに少なくとも部分的に基づいて、第1のアラインメントを決定することであって、前記リンクは、車両の第1のポーズに関連付けられるセンサデータの第1の部分が第2のポーズに関連付けられるセンサデータの第2の部分に対応するというインジケーションを含み、第1のアラインメントは、センサデータの第1の部分とセンサデータの第2の部分のアラインメントを含む、ことと、提案されたリンクを追加する命令、リンクを削除する命令、またはリンクに関連付けられる不確かさを変更する命令のうちの少なくとも1つを含む修正を受信することと、センサデータおよび修正に少なくとも部分的に基づいて、第2のアラインメントを決定することとを含む動作を実行させる、システム。
【0084】
H.動作は、第2のアラインメントに少なくとも部分的に基づいてマップを決定することと、マップを自律車両に送信すること、または第2のアラインメントを表示させることのうちの少なくとも1つを行うこととをさらに含む、条項Gに記載のシステム。
【0085】
I.動作は、第1のアラインメントまたはアラインメントされていなかったセンサデータに関連付けられるアラインメントの程度を決定することと、アラインメントの程度に関連付けられる領域を示す通知を生成することであって、通知は、修正候補を示し、修正は、通知に少なくとも部分的に基づいて受信される、こととをさらに含む、条項GまたはHに記載のシステム。
【0086】
J.センサデータは、第1のセンサデータ及び第2のセンサデータを含み、第1のセンサデータは、第1のシステムの第1のセンサに関連付けられ、第2のセンサデータは、第2のシステムの第2のセンサデータに関連付けられる、条項G乃至Iのいずれか一項に記載のシステム。
【0087】
K.第2のアラインメントを決定することは、修正に関連付けられるセンサデータのウィンドウを決定することを含み、第2のアラインメントを決定することは、センサデータのウィンドウに対応する環境の部分に関連付けられる第1のアラインメントの部分を再決定することを含む、条項G乃至Jのいずれか一項に記載のシステム。
【0088】
L.センサデータのウィンドウを決定することは、修正に関連付けられる位置または時間の閾値距離内または閾値時間内であるセンサデータのサブセットを決定することを含む、条項G乃至Kのいずれか一項に記載のシステム。
【0089】
M.修正を受信することに少なくとも部分的に基づいて、修正、第1の部分、及び第2の部分が訓練データセットに追加され、動作は、訓練データセットに少なくとも部分的に基づいて、機械学習モデルを訓練することであって、機械学習モデルは、別のリンクを追加する、リンクを削除する、またはリンクに関連付けられるパラメータを変更するための1つまたは複数の修正を識別するように訓練される、ことをさらに含む、条項G乃至Lのいずれか一項に記載のシステム。
【0090】
N.プロセッサ実行可能命令を格納する1つまたは複数の非一時的コンピュータ可読媒体であって、プロセッサ実行可能命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、環境に関連付けられるセンサデータを受信することと、センサデータ及びリンクに少なくとも部分的に基づいて、第1のアラインメントを決定することであって、前記リンクは、車両の第1のポーズに関連付けられるセンサデータの第1の部分が第2のポーズに関連付けられるセンサデータの第2の部分に対応するというインジケーションを含み、第1のアラインメントは、センサデータの第1の部分とセンサデータの第2の部分のアラインメントを含む、ことと、提案されたリンクを追加する命令、リンクを削除する命令、またはリンクに関連付けられるパラメータの変更のうちの少なくとも1つを含む修正を受信することと、センサデータおよび修正に少なくとも部分的に基づいて、第2のアラインメントを決定することとを含む動作を実行させる、1つまたは複数の非一時的コンピュータ可読媒体。
【0091】
O.動作は、第2のアラインメントに少なくとも部分的に基づいてマップを決定することと、マップを自律車両に送信すること、または第2のアラインメントを表示させることのうちの少なくとも1つを行うこととをさらに含む、条項Nに記載の1つまたは複数の非一時的コンピュータ可読媒体。
【0092】
P.動作は、第1のアラインメントまたはアラインメントされていなかったセンサデータに関連付けられるアラインメントの程度を決定することと、アラインメントの程度に関連付けられる領域を示す通知を生成することであって、通知は、修正候補を示し、修正は、通知に少なくとも部分的に基づいて受信される、こととをさらに含む、条項NまたはOに記載の1つまたは複数の非一時的コンピュータ可読媒体。
【0093】
Q.センサデータは、第1のセンサデータ及び第2のセンサデータを含み、第1のセンサデータは、第1のシステムの第1のセンサに関連付けられ、第2のセンサデータは、第2のシステムの第2のセンサに関連付けられる、条項N乃至Pのいずれか一項に記載の1つまたは複数の非一時的コンピュータ可読媒体。
【0094】
R.第2のアラインメントを決定することは、修正に関連付けられるセンサデータのウィンドウを決定することを含み、第2のアラインメントを決定することは、センサデータのウィンドウに対応する環境の部分に関連付けられる第1のアラインメントの部分を再決定することを含む、条項N乃至Qのいずれか一項に記載の1つまたは複数の非一時的コンピュータ可読媒体。
【0095】
S.センサデータのウィンドウを決定することは、修正に関連付けられる位置または時間の閾値距離内又は閾値時間内であるセンサデータのサブセットを決定することを含む、条項N乃至Rのいずれか一項に記載の1つまたは複数の非一時的コンピュータ可読媒体。
【0096】
T.修正を受信することに少なくとも部分的に基づいて、修正、第1の部分、及び第2の部分が訓練データセットに追加され、動作は、訓練データセットに少なくとも部分的に基づいて、機械学習モデルを訓練することであって、機械学習モデルは、リンクを追加する、またはリンクを削除するための1つまたは複数の修正を識別するように訓練される、ことをさらに含む、条項N乃至Sのいずれか一項に記載の1つまたは複数の非一時的コンピュータ可読媒体。
【0097】
U.摂動することは、第2のセンサに対する第1のセンサに関連付けられる推定位置および向きの縦方向、横方向、垂直、ヨー、ロール、またはピッチの動きのうちの少なくとも1つを含む、条項A乃至Fのいずれか一項に記載の方法。
【0098】
V.自律車両から追加のセンサデータを受信することと、追加のセンサデータを第2のマップと比較することに少なくとも部分的に基づいて、追加の自律車両の位置または向きのうちの少なくとも1つを決定することをさらに含む、条項A乃至F、またはUのいずれか一項に記載の方法。
【0099】
W.位置または向きの少なくとも1つに少なくとも部分的に基づいて自律車両を制御することをさらに含む、条項A乃至F、UまたはVのいずれか一項に記載の方法。
【0100】
X.マップを決定することは、リンク、第1のポーズデータ及び第2のポーズデータのセットに少なくとも部分的に基づいて、第1のセンサデータ及び第2のセンサデータをボクセル空間に投影することと、ボクセル空間のメッシュ表現を決定することとを含む、条項A乃至F、U乃至Wのいずれか一項に記載の方法。
【0101】
上記で説明される例示的な条項は、1つの特定の実装形態に関して説明される一方で、本明細書のコンテキストにおいて、例示的な条項の内容は、方法、デバイス、システム、コンピュータ可読媒体、及び/または別の実装形態を介して実施されることも可能であることを理解されたい。さらに、例A~Xのいずれかは、単独で、または他の1つもしくは複数の例A~Xと組み合わせて実装されることができる。
【0102】
(結論)
発明の主題は、構造的な特徴及び/または方法的な動作に特有の言語で説明されてきたが、添付の特許請求の範囲の中で画定される発明の主題は、必ずしも説明される特定の特徴、または動作に限定されるものではないことを理解されたい。むしろ、特定の特徴、及び動作は、特許請求の範囲を実施する例示的形態として開示される。
【0103】
本明細書で説明されるコンポーネントは、任意のタイプのコンピュータ可読媒体に格納し得、且つソフトウェア及び/またはハードウェアにおいて実装され得る命令を表す。上述の方法及びプロセスの全ては、1つもしくは複数のコンピュータまたはプロセッサ、ハードウェア、またはそれらのいくつかの組み合わせによって実行されるソフトウェアコードコンポーネント及び/またはコンピュータ実行可能命令を介して具体化され、及び完全に自動化され得る。あるいは、方法のうちの一部または全ては、専門のコンピュータハードウェアで具現化し得る。
【0104】
本明細書に記載されるプロセスのうちの少なくともいくつかは、論理フローグラフとして図示され、それぞれの動作は、ハードウェア、ソフトウェア、またはそれらの組み合わせにおいて実装されることが可能である動作のシーケンスを表す。ソフトウェアのコンテキストにおいて、動作は、1つまたは複数のプロセッサによって実行されるとき、記載される動作をコンピュータまたは自律車両に実行させる、1つまたは複数の非一時的コンピュータ可読記憶媒体上に記憶されたコンピュータ実行可能命令を表す。一般的に、コンピュータ実行可能命令は、具体的な機能を実行するか、または具体的な抽象データ型を実装するルーティン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が説明される順序は、限定として解釈されることが意図されるわけではなく、任意の数の説明される動作が、プロセスを実装する任意の順序で、及び/または並行して組み合わされることが可能である。
【0105】
そうではないと特に明記されていない限り、特に「可能である」、「得る」、「できる」または「してよい」などの条件付きの用語は、とりわけ、他の例示が含まないある特徴、要素及び/またはステップをある例示が含むことを提示するための文脈内で理解される。したがって、そのような条件付きの用語は、概して、ある特徴、要素及び/またはステップが、1つまたは複数の例示に任意の方法で要求されるか、またはその1つまたは複数の例示が、ユーザのインプット、またはプロンプトを用いて、または用いずに、ある特徴、要素及び/またはステップが任意の具体的な例示に含まれるか、または実行されるべきであるかを判断するための論理を必ずしも含むことを暗示することは意図されていない。
【0106】
「X、Y、またはZのうちの少なくとも1つ」という句などの接続詞は、そうではないと特に明記されていない限り、項目、用語などがX、YまたはZのいずれか、またはそれぞれの要素の集合を含む、それらの任意の組み合わせであってよいと理解されるべきである。単数として明示的に説明されていない限り、「ある」は、単数及び複数を意味する。
【0107】
本明細書で説明され、及び/または添付の図面に示したフロー図における任意のルーティンの説明、要素、またはブロックは、ルーティンにおける特定の論理機能または要素を実装するための1つまたは複数のコンピュータ実行可能命令を含むモジュール、セグメント、またはコードの部分を潜在的に表すものとして理解されるべきである。代替的な実装は、本明細書に説明される例示の範囲内に含まれ、その中で、要素または機能は、当業者によって理解されるように、関係する機能に応じて、追加の動作と実質的に同時、または逆の順序を含む、図示されたもの、または説明されたものと順不同で、削除され、実行されることが可能である。
【0108】
上述の例示に対して多くの変形例、及び修正例を作成することが可能であり、それらの要素は、他の容認できる例示の中にあるものとして理解されるべきである。このような変更例及び変形例の全てが本開示の範囲内で本明細書に含まれ、以下の特許請求の範囲によって保護されることが意図される。