(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-20
(45)【発行日】2023-10-30
(54)【発明の名称】自律走行車のナビゲーション用高精度地図を生成するためのポーズグラフの分散処理
(51)【国際特許分類】
G08G 1/01 20060101AFI20231023BHJP
G01C 21/26 20060101ALI20231023BHJP
G06F 16/28 20190101ALI20231023BHJP
G09B 29/00 20060101ALI20231023BHJP
G16Y 10/40 20200101ALI20231023BHJP
G16Y 20/20 20200101ALI20231023BHJP
G16Y 40/60 20200101ALI20231023BHJP
【FI】
G08G1/01 A
G01C21/26 A
G06F16/28
G09B29/00 Z
G16Y10/40
G16Y20/20
G16Y40/60
(21)【出願番号】P 2021552969
(86)(22)【出願日】2020-03-05
(86)【国際出願番号】 US2020021293
(87)【国際公開番号】W WO2020181153
(87)【国際公開日】2020-09-10
【審査請求日】2021-10-28
(32)【優先日】2019-03-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】501450960
【氏名又は名称】エヌビディア コーポレーション
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】チェン、チェン
【審査官】西畑 智道
(56)【参考文献】
【文献】米国特許出願公開第2018/0188040(US,A1)
【文献】特開2005-032196(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G08G 1/00-99/00
G01C 21/00-21/36
G01C 23/00-25/00
G06F 16/28
G09B 29/00
G16Y 10/40
G16Y 20/20
G16Y 40/60
(57)【特許請求の範囲】
【請求項1】
1つまたは複数の処理装置によって実施される方法であって、
複数のノードを備えるポーズグラフを取得する
ステップであって、前記ポーズグラフの
前記複数のノードの個々のノードは
、複数の車両の対応する車両のそれぞれのポーズを表し、
前記それぞれのポーズは
、前記対応する車両の地理的位置情報および前記対応する車両の向きを備える、
ステップと、
前記ポーズグラフを複数のポーズサブグラフに分割する
ステップであって、
前記複数のポーズサブグラフの個々のポーズサブグラフは
、1つまたは複数のそれぞれのポーズサブグラフ内部ノードおよび1つまたは複数のそれぞれのポーズサブグラフ境界ノードを備える、
ステップと、
前記複数のポーズサブグラフに基づいて1つまたは複数の境界サブグラフを取得する
ステップであって、前記1つまたは複数の境界サブグラフの
個々の境界サブグラフは、1つまたは複数のそれぞれの境界サブグラフ境界ノード
およびそれぞれのポーズサブグラフ境界ノードである1つまたは複数のそれぞれの境界サブグラフ内部ノー
ドを備える、
ステップと、
前記複数のポーズサブグラフおよび前記1つまたは複数の境界サブグラフに基づいて、ポーズグラフ最適化を行うことによって
更新されたポーズグラフを取得する
ステップと、
前記更新されたポーズグラフに基づいて、前記複数の車両によって取得されるそれぞれの地図情報を位置合わせするステップと、
前記位置合わせされた地図情報を使用して、高精度地図を生成するステップと
を含む、方法。
【請求項2】
前記
更新されたポーズグラフを取得する
ステップは、前記ポーズグラフが収束したと判定
するまで、前記ポーズグラフ最適化を繰り返し行うことを含む、請求項1に記載の方法。
【請求項3】
前記
更新されたポーズグラフを取得する
ステップは、前記ポーズサブグラフ
の前記ポーズサブグラフ内部ノードおよび前記境界サブグラフの前記
境界サブグラフ内部ノードのすべての調整が、閾値量よりも小さくなるまで、前記ポーズグラフ最適化を繰り返し行うことを含む、請求項1に記載の方法。
【請求項4】
前記
更新されたポーズグラフを取得する
ステップは、前記ポーズグラフ最適化を繰り返し行うことを含み、
個々の繰り返しについて
、ポーズサブグラフ最適化およ
び境界サブグラフ最適化が逐次行われる、請求項1に記載の方法。
【請求項5】
前記ポーズグラフ最適化は、前記複数のポーズサブグラフのポーズサブグラフ最適化を実施することを含み、前記ポーズサブグラフ最適化は並列で実施され、2つ以上のポーズ
サブグラフに関して最適化動作が同時に行われる、請求項1に記載の方法。
【請求項6】
前記ポーズサブグラフ最適化の前記並列の実施は
、複数のコンピュータシステムによって分散方式で行われる、請求項5に記載の方法。
【請求項7】
それぞれのポーズは
、前記対応する車両の1つまたは複数のセンサがそれぞれの地図情報を取得する時点に対応する、請求項1に記載の方法。
【請求項8】
前記
ポーズグラフ最適化は、
それぞれのポーズサブグラフ境界ノードの境界ノードポーズを固定したままで、前記それぞれのポーズサブグラフ内部ノードの内部ノードポーズを調整することを含む、前記複数のポーズサブグラフのポーズサブグラフ最適化を行うこと、および
前記それぞれの境界サブグラフ境界ノードの境界ノードポーズを固定したままで、前記それぞれの境界サブグラフ内部ノードの内部ノードポーズを調整することを含む、前記1つまたは複数の境界サブグラフの境界サブグラフ最適化を行うこと
を含む、請求項1に記載の方法。
【請求項9】
前記1つまたは複数の境界サブグラフのそれぞれの境界サブグラフを取得する
ステップは、
前記複数のポーズサブグラフの第1ポーズサブグラフの第1境界ノードを、前記それぞれの境界サブグラフの第1内部ノードとして特定すること、
前記複数のポーズサブグラフの第2ポーズサブグラフの第2境界ノードを、前記それぞれの境界サブグラフの第2内部ノードとして特定すること、
前記第1境界ノードが前記それぞれの境界サブグラフの前記第1内部ノードから離れた特定の数のエッジであることに基づいて、前記それぞれの境界サブグラフの前記第1境界ノードを特定すること、
および
前記第2境界ノードが前記それぞれの境界サブグラフの前記第2内部ノードから離れた前記特定の数のエッジであることに基づいて、前記それぞれの境界サブグラフの前記第2境界ノードを特定するこ
と
を含む、請求項1に記載の方法。
【請求項10】
動作を実施するための1つまたは複数の
回路を備えるプロセッ
サであって、前
記動作は、
複数のノードを備えるポーズグラフを取得する
ステップであって、前記ポーズグラフの
前記複数のノードの個々のノードは
、複数の車両の対応する車両のそれぞれのポーズを表し、
前記それぞれのポーズは
、前記対応する車両の地理的位置情報および前記対応する車両の向きを備える、
ステップと、
前記ポーズグラフを複数のポーズサブグラフに分割する
ステップであって、
前記複数のポーズサブグラフの個々のポーズサブグラフは
、1つまたは複数のそれぞれのポーズサブグラフ内部ノードおよび1つまたは複数のそれぞれのポーズサブグラフ境界ノードを備える、
ステップと、
前記複数のポーズサブグラフに基づいて1つまたは複数の境界サブグラフを生成する
ステップであって、前記1つまたは複数の境界サブグラフの
個々の境界サブグラフは、1つまたは複数のそれぞれの境界サブグラフ境界ノードおよび1つまたは複数のそれぞれの境界サブグラフ内部ノードを備える、
ステップと、
前記複数のポーズサブグラフおよび前記1つまたは複数の境界サブグラフに基づいて、ポーズグラフ最適化を行うことによって
更新されたポーズグラフを取得する
ステップと、
前記更新されたポーズグラフに基づいて、前記複数の車両によって取得されるそれぞれの地図情報を位置合わせするステップと、
前記位置合わせされた地図情報を使用して、高精度地図を生成するステップと
を含む、
プロセッサ。
【請求項11】
前記
更新されたポーズグラフを取得する
ステップは、前記ポーズグラフが収束したと判定するまで、前記ポーズグラフ最適化を繰り返し行うことを含む、請求項10に記載の
プロセッサ。
【請求項12】
前記
更新されたポーズグラフを取得する
ステップは、前記ポーズサブグラフ
の前記ポーズサブグラフ内部ノードおよび前記境界サブグラフの前記
境界サブグラフ内部ノードのすべての調整が
、閾値量より
も小さくなるまで、前記ポーズグラフ最適化を繰り返し行うことを含む、請求項10に記載の
プロセッサ。
【請求項13】
前記
更新されたポーズグラフを取得する
ステップは、前記ポーズグラフ最適化を繰り返し行うことを含み、
個々の繰り返しについて
、ポーズサブグラフ最適化およ
び境界サブグラフ最適化が逐次行われる、請求項10に記載の
プロセッサ。
【請求項14】
前記ポーズグラフ最適化は、前記複数のポーズサブグラフのポーズサブグラフ最適化を実施することを含み、前記ポーズサブグラフ最適化は並列で実施され、2つ以上のポーズサブグラフに関して最適化動作が同時に行われる、請求項10に記載の
プロセッサ。
【請求項15】
前記ポーズサブグラフ最適化の前記並列の実施は
、複数のコンピュータシステムによって分散方式で行われる、請求項14に記載の
プロセッサ。
【請求項16】
それぞれのポーズは
、前記対応する車両の1つまたは複数のセンサがそれぞれの地図情報を取得する時点に対応する、請求項10に記載の
プロセッサ。
【請求項17】
前記
ポーズグラフ最適化は、
それぞれのポーズサブグラフ境界ノードの境界ノードポーズを固定したままで、前記それぞれのポーズサブグラフ内部ノードの内部ノードポーズを調整することを含む、前記複数のポーズサブグラフのポーズサブグラフ最適化を行うこと、および
前記それぞれの境界サブグラフ境界ノードの境界ノードポーズを固定したままで、前記それぞれの境界サブグラフ内部ノードの内部ノードポーズを調整することを含む、前記1つまたは複数の境界サブグラフの境界サブグラフ最適化を行うこと
を含む、請求項10に記載の
プロセッサ。
【請求項18】
前記1つまたは複数の境界サブグラフのそれぞれの境界サブグラフを生成する
ステップは、
前記複数のポーズサブグラフの第1ポーズサブグラフの第1境界ノードを、前記それぞれの境界サブグラフの第1内部ノードとして特定すること、
前記複数のポーズサブグラフの第2ポーズサブグラフの第2境界ノードを、前記それぞれの境界サブグラフの第2内部ノードとして特定すること、
前記第1境界ノードが前記それぞれの境界サブグラフの前記第1内部ノードから離れた特定の数のエッジであることに基づいて、前記それぞれの境界サブグラフの前記第1境界ノードを特定すること、
および
前記第2境界ノードが前記それぞれの境界サブグラフの前記第2内部ノードから離れた前記特定の数のエッジであることに基づいて、前記それぞれの境界サブグラフの前記第2境界ノードを特定するこ
と
を含む、請求項10に記載の
プロセッサ。
【請求項19】
動作を実施するための1つまたは複数の
処理装置を備えるシステムであって、前
記動作は、
複数のノードを備えるポーズグラフを取得する
ステップであって、前記ポーズグラフの
前記複数のノードの個々のノード
は、複数の車両の対応する車両のそれぞれのポーズを表し、
前記それぞれのポーズは
、前記対応する車両の地理的位置情報および前記対応する車両の向きを備える、
ステップと、
前記ポーズグラフを複数のポーズサブグラフに分割する
ステップであって、
前記複数のポーズサブグラフの個々のポーズサブグラフは
、1つまたは複数のそれぞれのポーズサブグラフ内部ノードおよび1つまたは複数のそれぞれのポーズサブグラフ境界ノードを備える、
ステップと、
前記複数のポーズサブグラフに基づいて1つまたは複数の境界サブグラフを取得する
ステップであって、前記1つまたは複数の境界サブグラフの
個々の境界サブグラフは、1つまたは複数のそれぞれの境界サブグラフ境界ノード
およびそれぞれのポーズサブグラフ境界ノードである1つまたは複数のそれぞれの境界サブグラフ内部ノー
ドを備える、
ステップと、
前記複数のポーズサブグラフおよび前記1つまたは複数の境界サブグラフに基づいて、
ポーズグラフ最適化を行うことによって
更新されたポーズグラフを取得する
ステップと、
前記更新されたポーズグラフに基づいて、前記複数の車両によって取得されるそれぞれの地図情報を位置合わせするステップと、
前記位置合わせされた地図情報を使用して、高精度地図を生成するステップと
を含む、システム。
【請求項20】
前記
更新されたポーズグラフを取得する
ステップは、前記ポーズグラフが収束したと判定するまで、前記ポーズグラフ最適化を繰り返し行うことを含む、請求項19に記載のシステム。
【請求項21】
前記
更新されたポーズグラフを取得する
ステップは、前記ポーズサブグラフ
の前記ポーズサブグラフ内部ノードおよび前記境界サブグラフの前記
境界サブグラフ内部ノードのすべての調整が
、閾値量より
も小さくなるまで、前記ポーズグラフ最適化を繰り返し行うことを含む、請求項19に記載のシステム。
【請求項22】
前記
更新されたポーズグラフを取得する
ステップは、前記ポーズグラフ最適化を繰り返し行うことを含み、
個々の繰り返しについて
、ポーズサブグラフ最適化およ
び境界サブグラフ最適化が逐次行われる、請求項19に記載のシステム。
【請求項23】
前記ポーズグラフ最適化は、前記複数のポーズサブグラフのポーズサブグラフ最適化を実施することを含み、前記ポーズサブグラフ最適化は並列で実施され、2つ以上のポーズサブグラフに関して最適化動作が同時に行われる、請求項19に記載のシステム。
【請求項24】
前記ポーズサブグラフ最適化の前記並列の実施は
、複数のコンピュータシステムによって分散方式で行われる、請求項23に記載のシステム。
【請求項25】
それぞれのポーズは
、前記対応する車両の1つまたは複数のセンサがそれぞれの地図情報を取得する時点に対応する、請求項19に記載のシステム。
【請求項26】
前記ポーズグラフ最適化は、
それぞれのポーズサブグラフ境界ノードの境界ノードポーズを固定したままで、前記それぞれのポーズサブグラフ内部ノードの内部ノードポーズを調整することを含む、前記複数のポーズサブグラフのポーズサブグラフ最適化を行うこと、および
前記それぞれの境界サブグラフ境界ノードの境界ノードポーズを固定したままで、前記それぞれの境界サブグラフ内部ノードの内部ノードポーズを調整することを含む、前記1つまたは複数の境界サブグラフの境界サブグラフ最適化を行うこと
を含む、請求項19に記載のシステム。
【請求項27】
前記1つまたは複数の境界サブグラフのそれぞれの境界サブグラフを取得する
ステップは、
前記複数のポーズサブグラフの第1ポーズサブグラフの第1境界ノードを、前記それぞれの境界サブグラフの第1内部ノードとして特定すること、
前記複数のポーズサブグラフの第2ポーズサブグラフの第2境界ノードを、前記それぞれの境界サブグラフの第2内部ノードとして特定すること、
前記第1境界ノードが前記それぞれの境界サブグラフの前記第1内部ノードから離れた特定の数のエッジであることに基づいて、前記それぞれの境界サブグラフの前記第1境界ノードを特定すること、
および
前記第2境界ノードが前記それぞれの境界サブグラフの前記第2内部ノードから離れた前記特定の数のエッジであることに基づいて、前記それぞれの境界サブグラフの前記第2境界ノードを特定するこ
と
を含む、請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して自律走行車用の地図に関し、より具体的には、自律走行車のナビゲーション用高精度地図を生成するために、自律走行車によって取得されたデータの三次元表現の位置合わせを行うことに関する。
【背景技術】
【0002】
自動運転車、無人運転車、オートカーまたはロボットカーとしても知られる自律走行車は、車両の制御およびナビゲーションに人の運転者を必要としないで、出発地から目的地まで運転することができる。運転の自動化はいくつかの理由により難しい。例えば、自律走行車はセンサを使用して運転決定を瞬時に行うが、車両センサは常時すべてのものを観測できるわけではない。車両センサは曲がり角、起伏する丘および他の車両に遮られる可能性がある。車両センサが決定を行えるほど十分早くに一定のものを観測できない場合がある。さらに、車線および標識が道路上になかったり、倒されていたり、または灌木で隠れていたりして、センサで検出できない場合がある。また、通行優先権の道路標識が、車両がどこから来るかを判断するため、または緊急時に車線から逸脱するかもしくは外れるため、または止まっている障害物を避けて通らなければならないために、容易に視認できない場合がある。
【0003】
自律走行車は、センサデータに頼る代わりに、地図データを使用して上記の情報のいくつかを理解することができる。しかし、従来の地図は、自律走行車には使用し難いいくつかの欠点を有する。例えば、従来の地図は、安全なナビゲーションを助けるターゲット正確度レベル(例えば、30cm以下)を提供しない場合がある。全球測位衛星システム(GNSS : Global Navigation Satellite System)ベースのシステムは、約3~5メートルの正確度を提供するが、ある場合には、100mを超える正確度になりかねない大きな誤差状態を有する。このことが、当該システムで車両の位置情報を正確に判定するのを困難にする。
【0004】
また、従来の地図は、運転手を利用する測量チームが高解像度センサを備える特殊装備車両を用いて、地理的領域を走り回りながら計測を行って作成される。計測値が回収されて、地図編集者のチームがその計測値から地図を組み立てる。このプロセスは費用と時間がかかりすぎる(例えば、1つの地図を完成させるのに、おそらく数ヶ月かかる)。そのため、このような手法を用いて組み立てられた地図は新しいデータを有していない。例えば、道路は1年あたり約5~10%と頻繁に更新/修正される。しかし、測量車は高価で台数が限られているため、これらの更新のほとんどを取得できない。例えば、測量フリートは1千台の車を含む場合がある。米国の1つの州だけでも、1千台の車では、一定の安全パラメータ圏内で自動運転するために、地図を定期的に最新の状態に維持することはできないであろう。その結果、地図を維持する従来の手法は、ターゲット正確度レベル(例えば、安全性を閾値レベル内に維持する正確度レベル)での自律走行車のナビゲーションのために十分正確かつ最新である適切なデータを提供することはできない。
【発明の概要】
【0005】
一実施形態の一態様によると、動作は、複数のノードを備えるポーズグラフ(pose graph)を取得することを備えることができ、ポーズグラフの各ノードは複数の車両の対応する車両のそれぞれのポーズ(pose)を表し、それぞれのポーズは各々対応する車両の地理的位置情報および対応する車両の向きを備える。動作は、ポーズグラフを複数のポーズサブグラフ(pose subgraphs)に分割することを備えることもでき、各ポーズサブグラフは、1つまたは複数のそれぞれのポーズサブグラフ内部ノードおよび1つまたは複数のそれぞれのポーズサブグラフ境界ノードを備える。動作は、複数のポーズサブグラフに基づいて1つまたは複数の境界サブグラフを生成することを備えることもでき、1つまたは複数の境界サブグラフの各々は、1つまたは複数のそれぞれの境界サブグラフ境界ノードと、各々がそれぞれのポーズサブグラフ境界ノードである1つまたは複数のそれぞれの境界サブグラフ内部ノードと、を備える。動作は、ポーズグラフ最適化を行うことにより、最適化されたポーズグラフを取得することを備えることもできる。ポーズグラフ最適化は、複数のポーズサブグラフのポーズサブグラフ最適化を行うことを備えることができる。ポーズサブグラフ最適化を行うことは、それぞれのポーズサブグラフ境界ノードの境界ノードポーズを固定したままで、それぞれのポーズサブグラフ内部ノードの内部ノードポーズを調整することを備えることができる。ポーズグラフ最適化は、複数の境界サブグラフの境界サブグラフ最適化を行うことを備えることもできる。境界サブグラフ最適化を行うことは、それぞれの境界サブグラフ境界ノードの境界ノードポーズを固定したままで、それぞれの境界サブグラフ内部ノードの内部ノードポーズを調整することを備えることができる。
【図面の簡単な説明】
【0006】
【
図1】一実施形態による、多数の車両コンピューティングシステムと対話するHDマップシステムの全体的なシステム環境を示す。
【
図2】一実施形態による、車両コンピューティングシステムのシステムアーキテクチャを示す。
【
図3】一実施形態による、車両コンピューティングシステムのHDマップAPI内の様々な命令の層を示す。
【
図4】一実施形態による、HDマップシステムのシステムアーキテクチャを示す。
【
図5】一実施形態による、HDマップの成分を示す。
【
図6A】一実施形態による、HDマップで画定される地理的領域を示す。
【
図6B】一実施形態による、HDマップで画定される地理的領域を示す。
【
図7】一実施形態による、HDマップにおける車線の表現を示す。
【
図8A】一実施形態による、HDマップにおける車線要素および車線要素間の関係を示す。
【
図8B】一実施形態による、HDマップにおける車線要素および車線要素間の関係を示す。
【
図9A】一実施形態による、HDマップシステムで使用するための座標系を示す。
【
図9B】一実施形態による、HDマップシステムで使用するための座標系を示す。
【
図10】一実施形態による、HDマップシステムによるLIDAR点群展開のプロセスを示す。
【
図11】一実施形態による、大域的位置合わせモジュールのシステムアーキテクチャを示す。
【
図12A】は、一実施形態による単一トラックペアワイズ位置合わせプロセスを示す。
【
図12B】一実施形態による大域的位置合わせプロセスを示す。
【
図13】一実施形態によるポーズグラフの可視化を示す。
【
図14】一実施形態による、GNSSに基づくポーズ先行を含むポーズグラフの可視化を示す。
【
図15】一実施形態による、ポーズグラフ最適化を行うプロセスを例示するフローチャートを示す。
【
図16】一実施形態による、機械学習ベースのICP結果フィルタのシステムアーキテクチャを示す。
【
図17】一実施形態による、機械学習ベースのICP結果フィルタのモデルを訓練するプロセスを示す。
【
図18】一実施形態による、機械学習ベースのモデルを使用してICP結果フィルタを行うプロセスを示す。
【
図19A】一実施形態による、ポーズグラフからの例示的なサブグラフを示す。
【
図19B】一実施形態による、ポーズグラフ最適化の分散実行のためのポーズグラフのサブグラフへの分割を示す。
【
図20】一実施形態による、ポーズグラフの分散処理のプロセスを示す。
【
図21】一実施形態による、ポーズグラフの分散最適化のプロセスを示す。
【
図22】一実施形態による、ポーズグラフの増分更新のプロセスを例示する実施例を示す。
【
図23】一実施形態による、ポーズグラフの増分更新のプロセスを例示するフローチャートを示す。
【
図24】一実施形態によるHDマップシステムが行うICPプロセスを示す。
【
図25】一実施形態による、HDマップシステムによるLiDAR距離画像を使用した点群法線の推定を示す。
【
図26】一実施形態による、HDマップシステムによりLiDAR距離画像を使用して点群法線を決定するプロセスを示す。
【
図27】一実施形態による、表面の硬質/軟質の分類に基づいてペアワイズ位置合わせを行うプロセスを示す。
【
図28】一実施形態による、ペアワイズ位置合わせで使用するために、表面に沿った点の信頼度の尺度を判定するプロセスを示す。
【
図29】一実施形態による、点の信頼度の尺度を判定するプロセスを示す。
【
図30】一実施形態による、位置ずれホットスポットの自動検出プロセスを示す。
【
図31】一実施形態による、点群で表現される表面の位置ずれの検出プロセスを示す。
【
図32】一実施形態による、点群で表現される地面の位置ずれの検出を示す。
【
図33】一実施形態による、点群で表現される地表面の位置ずれの検出プロセスを示す。
【
図34】一実施形態による、点群で表現される垂直面の位置ずれの検出プロセスを示す。
【
図35】一実施形態による、点群で表現される壁などの垂直構造物の位置ずれの検出を例示する実施例を示す。
【
図36】一実施形態による、例示的なサブグラフのノードの種類を示す。
【
図37】一実施形態による、地理的領域、例えば、局所セクタからの例示的なサブグラフを示す。
【
図38】一実施形態による、境界サブグラフの成分を示す。
【
図39】一実施形態による、境界サブグラフを示す。
【
図40A】一実施形態による、ポーズインターロックの問題を示す。
【
図40B】一実施形態による、ポーズサブグラフおよび境界サブグラフ最適化のデカップリングを示す。
【
図41】一実施形態による、遅い収束につながる通信制限の問題を示す。
【
図42】ポーズグラフの分散最適化を行う例示的な方法のフローチャートを示す。
【
図43】マシン可読媒体からの命令を読み取って、プロセッサまたはコントローラでその命令を実行することのできるコンピューティングマシンの一実施形態を示す。
【発明を実施するための形態】
【0007】
図は、例示のためにのみ、本開示の様々な実施形態を図示している。当業者は、以下の考察から、本明細書で説明される開示の原理から逸脱することなく、本明細書で例示する構造および方法の代替実施形態を採用できることは容易に分かるであろう。
【0008】
概観
本開示の実施形態は、比較的高い精密さでの最新情報を含む高精度(HD : High Definition)マップの生成および使用に関する。HDマップは、自律走行車が人の手なく、または限定的な人の手有りで、その目的地まで安全にナビゲートするために使用されうる。本開示において、「安全なナビゲーション」とは、ターゲット安全閾値内でナビゲーションを行うことといえる。例えば、ターゲット安全閾値は、無事故での一定の運転時間数としてもよい。当該閾値は自動車メーカーまたは政府機関によって設定される場合もある。さらに、「最新」情報とは、必ずしも絶対的な最新を意味するのではなく、ターゲット時間閾値量内の最新を意味する。例えば、ターゲット時間閾値量は、前週中に発生した車道の任意の潜在的な変化を反映する地図を「最新」と見なせるように、1週間以下にしてもよい。当該ターゲット閾値時間量は、1ヶ月から1分までのいずれかに、または、ことによると、さらにそれ以下に変えてもよい。
【0009】
自律走行車とは、人の手なくその環境を感知して、ナビゲートすることが可能な車両である。自律走行車は、本明細書において、「無人運転車」、「自動運転車」または「ロボットカー」ということもある。HDマップとは、非常に高い精密さでデータを格納する地図をいう(例えば、2~30cm以内の精度レベル)。本開示の実施形態は、自律走行車が走行することのできる道路に関する空間幾何情報を含むHDマップを生成する。したがって、生成されたHDマップは、人の介入なく安全にナビゲートするために自律走行車が使用しうる情報を含む。費用および時間のかかりすぎる、高解像度センサを装備した車両を含む地図作成フリートプロセスを使用してHDマップ用のデータを収集する代わりに、本開示の実施形態は、自動運転車がその環境を通り抜けるときに、自動運転車自体のより低い解像度センサからのデータを使用することができる。車両がこれらの経路の、またはさらにその領域の以前の地図データを有していない場合がある。本開示の実施形態は、様々なメーカーの自律走行車が、各々本開示の本実施形態により作成される最新の情報にアクセスすることができるように、ロケーション・アズ・ア・サービス(LaaS : Location as a Service)を提供することもできる。
【0010】
実施形態は、安全なナビゲーションのために、正確で、最新の道路状態を含む高精度(HD)マップを生成して維持する。例えば、HDマップは、自律走行車が車線内を安全に運転できるよう十分精密に、道路の車線に対する自律走行車の現在の位置情報を提供する。
【0011】
HDマップは非常に大量の情報を格納するため、情報管理の課題に直面する。例えば、大きな地理的領域のHDマップは、車両のローカルストレージに収まらない場合がある。本開示のいくつかの実施形態は、車両がHDマップにおける自らの現在地を判定し、車両の位置に対する道路上の特徴を判定し、物理的拘束および法的拘束等に基づいて車両を移動するのが安全かどうかを判定することを可能にするHDマップの一部分を自律走行車に提供する。物理的拘束の例には壁などの物理的な障害物が含まれ、法的拘束の例には、法律上許される車線の移動方向、速度制限、譲れ(yields)、一時停止が含まれる。
【0012】
本開示の実施形態は、車両のローカルストレージに格納されているHDマップ部分からの情報の要求に対する応答を提供するための、例えば、10~20ミリ秒といった低レイテンシ、位置情報に関する高い正確度、例えば、5~30cm、またはことによるとある場合にはさらに5cm未満内の正確度、道路上の変化を反映するために合理的な時間枠内(例えば、ターゲット時間閾値量内)で地図を更新することによるデータの新しさ、およびHDマップに必要なストレージを低減または最小化することによるストレージ効率を提供することにより、自律走行車の安全なナビゲーションを可能にする。
【0013】
図1は、一実施形態による、多数の車両と対話するHDマップシステムの全体的なシステム環境を示す。HDマップシステム100は、複数の車両150と対話するオンラインHDマップシステム110を含む。車両150は自律走行車としてもよいが、そうである必要はない。オンラインHDマップシステム110は、車両のセンサが取得したセンサデータを受信し、車両150から受信したデータを結合して、HDマップを生成して維持する。オンラインHDマップシステム110は、車両の運転時に使用するために、HDマップデータを車両に送信する。一実施形態において、オンラインHDマップシステム110は分散型コンピューティングシステム、例えば、車両コンピューティングシステム120などのクライアントが情報およびサービスの要求を行うことを可能にするクラウドベースのサービスとして実装される。例えば、車両コンピューティングシステム120は、経路に沿って運転するためにHDマップデータの要求を行うことができ、オンラインHDマップシステム110は要求されたHDマップデータを提供する。
【0014】
図1および他の図面は、同様な参照番号を使用して、同様な要素を識別する。「105A」など、参照番号の後の文字は、本文が特にその特定の参照番号を有する要素に言及していることを示す。「105」など、後に続く文字のない本文内の参照番号は、図面において、その参照番号の付いた要素のいずれかまたは全部をいう(例えば、本文内の「105」は、図面における参照番号「105A」および/または「105N」をいう)。
【0015】
オンラインHDマップシステム110は、車両インターフェースモジュール160およびHDマップストア(map store)165を備える。オンラインHDマップシステム110は、車両インターフェースモジュール160を使用して、様々な車両150の車両コンピューティングシステム120と対話する。オンラインHDマップシステム110は、様々な地理的領域の地図情報をHDマップストア165に格納する。オンラインHDマップシステム110は、
図1に示されるもの以外の他のモジュール、例えば、
図4に図示される、および本明細書でさらに説明される様々な他のモジュールを含んでもよい。
【0016】
オンラインHDマップシステム110は、複数の車両150、例えば、数百台または数千台の車のセンサによって収集されるデータを受信する(115)。車両は様々な経路に沿って運転しながら取得されるセンサデータを提供し、それをオンラインHDマップシステム110に送信する。オンラインHDマップシステム110は、車両150から受信したデータを使用して、車両150が運転している領域を記述するHDマップを作成および更新する。オンラインHDマップシステム110は、車両150から受信した収集情報(collective information)に基づいて高精度地図を構築し、HDマップ情報をHDマップストア165に格納する。
【0017】
オンラインHDマップシステム110は、ナビゲーション中に車両150に使用されうるのがHDマップのどの部分かに基づいて、HDマップを個々の車両150に送信する(125)。例えば、自律走行車がある経路に沿って運転することが予定されている場合、自律走行車の車両コンピューティングシステム120は、走行される経路を記述する情報をオンラインHDマップシステム110に提供する。これに応答して、オンラインHDマップシステム110は、経路に沿って運転するために使用することのできるHDマップを提供する。
【0018】
一実施形態において、オンラインHDマップシステム110は、送信されるデータによる帯域幅の消費量がより少なくなるように、HDマップデータの複数の部分を圧縮形式で車両に送信する。オンラインHDマップシステム110は、様々な車両から、車両のローカルHDマップストア275に格納されているデータを記述する情報を受信する。車両がローカルHDマップストア275にローカルに格納されているHDマップの一定の部分を有していないと、オンラインHDマップシステム110が判定する場合、オンラインHDマップシステム110はHDマップのその部分を車両に送信する。車両が以前にHDマップのその特定の部分を受信したが、車両がデータを最後に受信してから対応データがオンラインHDマップシステム110によって更新されたと、オンラインHDマップシステム110が判定する場合、オンラインHDマップシステム110は車両に格納されているHDマップのその部分の更新を送信する。これにより、オンラインHDマップシステム110が、車両との通信データ量を低減または最小化することを可能にするとともに、車両にローカルに格納されるHDマップデータを定期的に更新し続けることも可能にする。
【0019】
車両150は、車両センサ105、車両コントロール(vehicle control)130および車両コンピューティングシステム120を含む。車両センサ105は、車両150が車両の周囲ならびに車両の現状を記述する情報、例えば、車両の位置情報および運動パラメータを記述する情報を検出することを可能にする。車両センサ105は、カメラ、光による検知と測距センサ(LIDAR : Light Detection and Ranging)、GNSSナビゲーションシステム、慣性計測装置(IMU : Inertial Measurement Unit)、および他のものを備える。車両は、車両の周囲の画像を取得する1つまたは複数のカメラを有する。LIDARは、レーザ光パルスでターゲットを照射し、反射パルスを計測することによって、そのターゲットまでの距離を計測して、車両の周囲を測量する。GNSSナビゲーションシステムは、人工衛星からの信号に基づいて、車両の位置を判定する。IMUは、加速度計およびジャイロスコープまたはその他の計測計器の組合せを使用して、例えば、速度、加速度、移動方向、速さ、角速度等の車両の運動データを計測して報告する電子機器である。
【0020】
車両コントロール130は、車両の物理的移動、例えば、加速度、方向変換、始動、停車等を制御する。車両コントロール130は、アクセル、ブレーキ、ハンドル等を制御する機械類を含む。車両コンピューティングシステム120は、車両コントロール130に制御信号を連続的に提供し、それによって自律走行車を選択された経路に沿って運転させる。
【0021】
車両コンピューティングシステム120は、センサが収集したデータおよびオンラインHDマップシステム110から受信した地図データの処理を含む様々なタスクを行う。車両コンピューティングシステム120は、オンラインHDマップシステム110に送信するデータも処理する。車両コンピューティングシステムの詳細は
図2に図示しており、
図2に関連して詳しく説明する。
【0022】
車両コンピューティングシステム120とオンラインHDマップシステム110との対話(interaction)は、通例、ネットワークを介して、例えば、インターネットを介して行われる。ネットワークは、車両コンピューティングシステム120とオンラインHDマップシステム110との間の通信を可能にする。一実施形態において、ネットワークは標準的な通信技術および/またはプロトコルを使用する。ネットワークで交換されるデータは、ハイパーテキスト・マークアップ言語(HTML : Hypertext Markup Language)、拡張可能なマークアップ言語(XML : Extensible Markup Language)等を含む技術および/またはフォーマットを使用して表現することができる。さらに、リンクの全部または一部を、例えば、セキュア・ソケット・レイヤ(SSL : Secure Socket Layer)、トランスポート・レイヤ・セキュリティ(TLS : Transport Layer Security)、仮想プライベート・ネットワーク(VPN : Virtual Private Network)、インターネット・プロトコル・セキュリティ(IPsec : Security Architecture for Internet Protocol)等の従来の暗号化技術を使用して暗号化することができる。別の実施形態では、エンティティは、上記説明したものの代わりに、または上記説明したものに追加して、カスタムおよび/または専用のデータ通信技術を使用することができる。
【0023】
図2は、一実施形態による、車両コンピューティングシステムのシステムアーキテクチャを示す。車両コンピューティングシステム120は、認識モジュール210、予測モジュール215、計画モジュール220、制御モジュール225、ローカルHDマップストア275、HDマップシステム・インターフェース280およびHDマップアプリケーション・プログラミング・インターフェース(API)205を備える。車両コンピューティングシステム120の様々なモジュールが、センサデータ230、挙動モデル(behavior model)235、経路240および物理的拘束(physical constraints)245を含む様々な種類のデータを処理する。他の実施形態では、車両コンピューティングシステム120は、これより多くの、または、これより少ないモジュールを有してもよい。特定のモジュールによって実施されると説明される機能は、他のモジュールによって実施されてもよい。
【0024】
認識モジュール210は、車両150のセンサ105からセンサデータ230を受信する。これには、車のカメラ、LIDAR、IMU、GNSSナビゲーションシステム等によって収集されるデータが含まれる。認識モジュール210はセンサデータを使用して、どのような物体が車両の周りにあるか、車両が走行中の道路の詳細等を判定する。認識モジュール210はセンサデータ230を処理して、センサデータを格納するデータ構造に移入し、情報を予測モジュール215に提供する。
【0025】
予測モジュール215は、認識モジュールによって提供されるデータを、認識された物体の挙動モデルを使用して解釈して、物体が動いているか、または動きそうかどうかを判定する。例えば、予測モジュール215は、道路標識を表す物体が動きそうにないと判定する一方、車両、人等と識別される物体が動いている、または動きそうであると判定することができる。予測モジュール215は、様々な種類の物体の挙動モデル235を使用して、それが動きそうかどうかを判定する。予測モジュール215は、様々な物体の予測を計画モジュール200に提供して、車両が次に取りうる後続の行動を計画する。
【0026】
計画モジュール200は、予測モジュール215から車両の周囲を記述する情報、車両の目的地を決定する経路240、および車両が目的地に着くために取るべき進路を受信する。計画モジュール200は、予測モジュール215からの情報および経路240を使用して、車両が、短時間の間隔内に、例えば、次の数秒内に取りうる一連の行動を計画する。一実施形態において、計画モジュール200は、車両が次に通り抜けるために使用しうる近くの場所を表現する1つまたは複数の点として、一連の行動を指定する。計画モジュール200は、車両が取るべき一連の行動を含む計画の詳細を制御モジュール225に提供する。計画は車両の後続の行動、例えば、車両が車線変更、方向転換、速度上昇による加速または減速等を行うかどうかを判定することができる。
【0027】
制御モジュール225は、計画モジュール200から受信される計画に基づいて、車両のコントロール130に送信するための制御信号を決定する。例えば、車両が現在A地点にいて、車両が次に付近のB地点に行くべきだと計画が指定する場合、制御モジュール225は、A地点からB地点まで安全かつスムーズに、例えば、A地点からB地点まで鋭角の曲がり角またはジグザグ道を通らずに、車両を向かわせるような、コントロール130用の制御信号を決定する。車両がA地点からB地点に向かうのに通る進路は、車両の現在の速さおよび方向、ならびにA地点に対するB地点の場所に左右されうる。例えば、車両の現在の速さが高速であれば、車両は、ゆっくり運転している車両と比べて、より大回りになりうる。
【0028】
制御モジュール225は、入力として、物理的拘束245も受信する。これには、その特定の車両の物理的な能力が含まれる。例えば、ある特定のメーカーおよびモデルの車は、異なるメーカーおよびモデルの別の車では安全に行うことのできないかもしれない、加速および方向転換などの一定の種類の車両の動きを安全に行うことができる場合がある。制御モジュール225は、制御信号の決定に、これらの物理的拘束を組み込む。制御モジュール225は、制御信号を車両コントロール130に送信して、車両を計画通りに動かす指定の一連の行動を車両に実行させる。上記のステップが数秒ごとに常に繰り返されて、車両を車両に計画された経路に沿って安全に運転させる。
【0029】
認識モジュール210、予測モジュール215および計画モジュール220を含む車両コンピューティングシステム120の様々なモジュールは、地図情報を受信して、そのそれぞれの計算を行う。車両100は、HDマップデータをローカルHDマップストア275に格納する。車両コンピューティングシステム120のモジュールは、モジュールが地図情報にアクセスするために呼び出すことのできる1組のアプリケーション・プログラミング・インターフェース(API)を提供するHDマップAPI205を使用して、地図データと対話する(interact)。HDマップシステム・インターフェース280は、車両コンピューティングシステム120がネットワーク(図面には図示していない)を介してオンラインHDマップシステム110と対話することを可能にする。ローカルHDマップストア275は、HDマップシステム110が指定するフォーマットで地図データを格納する。HDマップAPI205は、HDマップシステム110が提供する地図データフォーマットを処理することができる。HDマップAPI205は、車両コンピューティングシステム120に、HDマップデータと対話するためのインターフェースを提供する。HDマップAPI205は、自己位置推定(localization)API250、ランドマーク地
図API255、経路API265、3D地
図API270、地図更新API285等を含め、いくつかのAPIを含む。
【0030】
自己位置推定API250は、例えば、車両が始動するとき、および車両が経路に沿って移動するときに、車両の現在地を判定する。自己位置推定API250は、HDマップ内で車両の正確な位置情報を判定するローカライズ(localize)APIを含む。車両コンピューティングシステム120は、他のクエリ(queries)、例えば、本明細書でさらに説明される特徴クエリ、ナビゲート可能な空間クエリ、および占有地図クエリを作成するための正確な相対的位置決めとして、その位置情報を使用することができる。ローカライズAPIは、GNSSが提供する位置情報、IMUが提供する車両運動データ、LIDARスキャナデータおよびカメラ画像のうちの1つまたは複数を備える入力を受信する。ローカライズAPIは、車両の正確な位置情報を緯度および経度の座標として返す。ローカライズAPIが返す座標は、入力として使用されるGNSS座標と比べてより正確であり、例えば、ローカライズAPIの出力は5~10cmの精密な範囲を有することができる。一実施形態において、車両コンピューティングシステム120はローカライズAPIを呼び出して、例えば、10Hzの周波数で、スキャナデータを使用するLIDARに基づいて、定期的に車両の位置情報を判定する。車両コンピューティングシステム120は、ローカライズAPIを呼び出して、GNSS/IMUデータがそのレートで利用できる場合は、より高いレート(例えば、60Hz)で車両の位置情報を判定してもよい。車両コンピューティングシステム120は内部状態として、位置情報履歴記録を格納して、後続のローカライズコール(localize call)の正確度を改善する。位置情報履歴記録は、車がエンジンを切った/停車した時点からの位置情報の履歴を格納する。自己位置推定API250は、HDマップに基づいて車線を指定する正確な経路を生成する経路ローカライズ(localize-route)APIを含む。経路ローカライズAPIは、入力として、サードパーティ地図を介して出発地から目的地までの経路を受け取り、HDマップに基づいた入力経路に沿ったナビゲート可能な車線の連結グラフとして表現される高い精密さの経路を生成する。
【0031】
ランドマーク地
図API255は、車両の周りの世界の幾何記述および意味記述、例えば、車両が現在走行している車線の様々な部分の記述を提供する。ランドマーク地
図API255は、ランドマーク地図に基づいたクエリを可能にするAPI、例えば、車線取出しAPIおよび特徴取出しAPIを備える。車線取出しAPIは、車両および特徴取出しAPIに関連した車線情報を提供する。車線取出しAPIは、入力として、位置情報、例えば、車両の緯度および経度を使用して指定される車両の位置情報を受信し、入力された位置情報に関連した車線情報を返す。車線取出しAPIは、車線情報が取り出された入力位置情報に関連した距離を示す距離パラメータを指定することができる。特徴取出しAPIは、1つまたは複数の車線要素を特定する情報を受信して、指定された車線要素に関連したランドマーク特徴を返す。ランドマーク特徴は、各ランドマークに関して、ランドマークの種類に固有の空間記述を含む。
【0032】
3D地
図API265は、ローカルHDマップストア275に格納されている道路および道路の周りの様々な物理的な物体の空間3次元(3D)表現へのアクセスを提供する。3D地
図API365は、ナビゲート可能な表面取出し(fetch-navigable-surfaces)APIおよび占有グリッド取出し(fetch-occupancy-grid)APIを含む。ナビゲート可能な表面取出しAPIは、入力として、1つまたは複数の車線要素の識別子を受信して、指定される車線要素のナビゲート可能な境界を返す。占有グリッド取出しAPIは、入力として、位置情報、例えば、車両の緯度および経度を受信して、位置情報付近のHDマップ内で入手できる道路の表面および物体の大半または全部について、占有を記述する情報を返す。占有を記述する情報は、地図で占有されていると考えられる複数の位置の階層的体積グリッド(hierarchical volumetric grid)を含む。占有グリッドは、ナビゲート可能なエリア付近、例えば、縁石およびバンプでは高解像度の情報、重要性の低いエリア、例えば、縁石の向こうの樹木や壁では比較的低い解像度の情報を含む。占有グリッド取出しAPIは、障害物を検出し、必要または賢明な場合に方向を変えるのに便利である。
【0033】
3D地
図APIは、地図更新API、例えば、地図更新ダウンロードAPIおよび地図更新アップロードAPIも含む。地図更新ダウンロードAPIは、入力として、計画経路識別子を受信して、すべての計画経路に関連したデータまたは特定の計画経路に関する地図更新をダウンロードする。地図更新アップロードAPIは、車両コンピューティングシステム120が収集したデータをオンラインHDマップシステム110にアップロードする。これにより、オンラインHDマップシステム110は、様々な経路に沿って運転している車両のセンサが観測した地図データの変化に基づいて、オンラインHDマップシステム110に格納されるHDマップデータを最新の状態に保つことが可能になる。
【0034】
経路API270は、出発地と目的地との間の完全な経路と、車両が経路を走行しているときの経路の部分とを含む経路情報を返す。3D地
図API365はHDマップの照会を可能にする。経路API270は、計画経路追加APIおよび計画経路取得APIを含む。計画経路追加APIは、計画経路を記述する情報をオンラインHDマップシステム110に提供するので、関連のHDマップを記述する情報を車両コンピューティングシステム120によってダウンロードして、最新の状態に保つことができる。計画経路追加APIは、入力として、緯度および経度として表現されるポリライン(polylines)を使用して指定される経路と、さらに、その経過後に経路データを削除できる期間を指定する活動時間(TTL : Time To Live)パラメータとを受信する。したがって、計画経路追加APIは、車両が、自律移動として近い将来辿ることを予定している経路を示すことを可能にする。計画経路追加APIは、経路をHDマップと位置合わせし、経路およびそのTTL値を記録し、車両コンピューティングシステム120に格納される経路のHDマップデータが最新の状態であることを確実にする。計画経路取得APIは計画経路のリストを返し、経路識別子によって特定される経路を記述する情報を提供する。
【0035】
地図更新API285は、ローカルHDマップストア275およびオンラインHDマップシステム110に格納されているHDマップストア165の両方について、地図データの更新に関係する動作を管理する。したがって、車両コンピューティングシステム120内のモジュールは、必要ならローカルHDマップストア275に格納するために、データをオンラインHDマップシステム110から車両コンピューティングシステム120にダウンロードするため、地図更新API285を呼び出す。地図更新API285は、車両コンピューティングシステム120が、車両センサ105によって監視される情報がオンラインHDマップシステム110によって提供される地図情報内の不一致を示すかどうかを判定することも可能にし、データをオンラインHDマップシステム110にアップロードすると、オンラインHDマップシステム110が他の車両150に提供されるHDマップストア165に格納されている地図データを更新することになりうる。
【0036】
図4は、一実施形態による、車両コンピューティングシステムのHDマップAPIにおける様々な命令の層を示す。車両のメーカーが異なると、車両センサ105から情報を受信するための命令および車両コントロール130を制御するための命令は異なる。また、異なるベンダーは、自律運転能力、例えば、車両センサデータの回収および分析を有する異なるコンピュータプラットフォームを提供する。自律走行車用のコンピュータプラットフォームの例には、NVDIA、QUALCOMM、およびINTELなどのベンダーが提供するプラットフォームが含まれる。これらのプラットフォームは、自律走行車のメーカーが自律走行車の製造に使用するための機能を提供する。車両メーカーは自律走行車用の任意の1つまたはいくつかのコンピュータプラットフォームを使用することができる。オンラインHDマップシステム110は、車両のメーカーに固有の命令、および車両のベンダー固有プラットフォームに固有の命令に基づいて、HDマップを処理するためのライブラリを提供する。ライブラリは、HDマップデータへのアクセスを提供するとともに、車両がオンラインHDマップシステム110と対話することを可能にする。
【0037】
図3に図示するように、一実施形態において、HDマップAPIは、車両メーカーアダプタ(vehicle manufacturer adapter)310、コンピュータプラットフォームアダプタ320および共通HDマップAPI層330を含むライブラリとして実装してもよい。共通HDマップAPI層は、複数の車両コンピュータプラットフォームおよび車両メーカーにわたって使用することのできる汎用命令を備える。コンピュータプラットフォームアダプタ320は、各コンピュータプラットフォームに固有の命令を含む。例えば、共通HDマップAPI層330は、コンピュータプラットフォームアダプタ320を呼び出して、特定のコンピュータプラットフォームによってサポートされるセンサからのデータを受信することができる。車両メーカーアダプタ310は、車両メーカーに固有の命令を備える。例えば、共通HDマップAPI層330は、車両メーカーアダプタ310が提供する機能を呼び出して、特定の制御命令を車両コントロール130に送信することができる。
【0038】
オンラインHDマップシステム110は、複数のコンピュータプラットフォーム用のコンピュータプラットフォームアダプタ320と、複数の車両メーカー用の車両メーカーアダプタ310とを格納する。オンラインHDマップシステム110は、ある特定の自律走行車について、特定の車両メーカーおよび特定のコンピュータプラットフォームを判定する。オンラインHDマップシステム110は、特定の車両メーカーについて車両メーカーアダプタ310を選択し、その特定の車両の特定のコンピュータプラットフォームについてコンピュータプラットフォームアダプタ320を選択する。オンラインHDマップシステム110は、選択された車両メーカーアダプタ310および選択されたコンピュータプラットフォームアダプタ320の命令を、その特定の自律走行車の車両コンピューティングシステム120に送信する。その特定の自律走行車の車両コンピューティングシステム120は、受信した車両メーカーアダプタ310およびコンピュータプラットフォームアダプタ320をインストールする。車両コンピューティングシステム120は、オンラインHDマップシステム110がインストールされた車両メーカーアダプタ310およびコンピュータプラットフォームアダプタ320の更新を有するかどうかを定期的にチェックする。車両にインストールされているバージョンと比べて、より最近の更新が利用できる場合、車両コンピューティングシステム120は最新の更新を要求して受信し、それをインストールする。
【0039】
HDマップシステムのアーキテクチャ
図4は、一実施形態による、HDマップシステムのシステムアーキテクチャを示す。オンラインHDマップシステム110は、地図作成モジュール410、地図更新モジュール420、地図データ符号化モジュール(map data encoding module)430、ロードバランシングモジュール(load balancing module)440、地図正確度管理モジュール、車両インターフェースモジュール、およびHDマップストア165を備える。オンラインHDマップシステム110の他の実施形態は、
図4に図示するよりも多いモジュールまたは少ないモジュールを含んでもよい。特定のモジュールによって行われると示される機能は、他のモジュールによって実施されてもよい。一実施形態において、オンラインHDマップシステム110は、複数のプロセッサを備える分散型システムとしてもよい。
【0040】
地図作成モジュール410は、様々な経路に沿って運転しているいくつかの車両から収集される地図データから地図を作成する。地図更新モジュール420は、地図情報が変化した経路を最近走行した車両からより最近の情報を受信することにより、以前に計算された地図データを更新する。例えば、ある領域の工事の結果、ある道路標識が変更された、または車線情報が変更された場合、地図更新モジュール420はそれに応じて地図を更新する。地図データ符号化モジュール430は、他の手法と比較して、データを比較的効率的に格納するとともに、地図データを比較的効率的に車両150に送信することができるように、地図データを符号化する。ロードバランシングモジュール440は、車両からのデータの受信要求を様々な車両にわたってより均一に分配するのを助けるために、車両にわたって負荷を平衡させる。地図正確度管理モジュール450は、個々の車両から受信した情報が高い正確度を有していないとしても、様々な手法を使用して地図データの高い正確度を維持する。
【0041】
図5は、一実施形態による、HDマップの成分を示す。HDマップはいくつかの地理的領域の地図を備える。ある地理的領域のHDマップ510は、ランドマーク地図(Lマップ)520および占有地図(Oマップ)530を備える。ランドマーク地図は、車線の空間的位置情報を含む車線を記述する情報と、各車線に関する意味情報(semantic information)とを備える。車線の空間的位置情報は、高い精密さで、例えば、10cm以下の精密さで、緯度、経度および高度の幾何学的位置情報を備える。車線の意味情報は、方向、速さ、車線の種類(例えば、直進車線、左折車線、右折車線、出口車線、および同様なもの)などの制約、左折に関する制約、他の車線との連結性等を備える。ランドマーク地図は、一時停止線、譲れ線(yield line)、横断歩道の空間的位置情報、安全にナビゲート可能な空間、スピードバンプ(speed bump)、縁石および運転制限に関連した標識の空間的位置情報および種類を備える道路標識の空間的位置情報をさらに備えてもよい。HDマップに記述される道路標識の例には、一時停止標識、信号灯、速度制限、一方通行、進入禁止、譲れ(車両、歩行者、動物)等が含まれる。
【0042】
占有地
図530は、道路および道路の周りの物理的な物体の空間3次元(3D)表現を備える。占有地
図530に格納されるデータは、本明細書において占有グリッドデータともいう。3D表現は、その場所に存在する物体の可能性を示す信頼スコアに関連付けてもよい。占有地
図530は、多数の他の方法で表現されてもよい。一実施形態において、占有地
図530は、表面を覆う3Dメッシュ形状(三角形の集合体)として表現される。別の実施形態では、占有地
図530は表面を覆う3D点の集合体として表現される。別の実施形態では、占有地
図530は、5~10cmの解像度で、セルの3D体積グリッドを使用して表現される。各セルは、そのセルに表面が存在するかどうかを示し、表面が存在する場合、表面が向けられる方向を示す。
【0043】
占有地
図530は、ランドマーク地
図520と比べて、大量の記憶空間を占める場合がある。例えば、1GB/マイルのデータを占有地
図530が使用する場合があるが、米国(4百万マイルの道路を含む)の地図になると4×1015バイトまたは4ペタバイトを占めることになる。そのため、オンラインHDマップシステム110および車両コンピューティングシステム120は、データ圧縮技術を使用して地図データを格納および転送できるようにし、これによって記憶コストおよび送信コストを削減する。したがって、本明細書に開示される手法は、自律走行車の自動運転を可能にする。
【0044】
一実施形態において、HDマップは、住所、道路名、住所をジオコーディングする(geo-code)能力、および場所名または住所間の経路を計算する能力など、通例地図に含まれるデータを必要としなくてもよい、またはそれに頼らなくてもよい。車両コンピューティングシステム120またはオンラインHDマップシステム110は、他の地図システム、例えば、GOOGLEマップにアクセスして、この情報を取得する。したがって、車両コンピューティングシステム120またはオンラインHDマップシステム110は、GOOGLEマップなどのツールから経路に至るナビゲーション命令を受信して、その情報をHDマップ情報に基づいた経路に変換する。
【0045】
HDマップの地理的領域
オンラインHDマップシステム110は、大きな物理的エリアを複数の地理的領域に分割し、各地理的領域の表現を格納する。各地理的領域は、幾何学形状、例えば、方形または正方形によって区切られた連続したエリアを表す。一実施形態において、オンラインHDマップシステム110は、物理的エリアを、各地理的領域の表現を格納するのに必要なデータ量とは関係なく、同じサイズの複数の地理的領域に分割する。別の実施形態では、オンラインHDマップシステム110は、物理的エリアを異なるサイズの複数の地理的領域に分割し、各地理的領域のサイズはその地理的領域を表すために必要な情報量に基づいて決定される。例えば、多数の通りがある人口密集地を表す地理的領域は、通りが非常に少なく人口密度の低いエリアを表す地理的領域と比べて、小さい物理的エリアを表す。したがって、この実施形態では、オンラインHDマップシステム110は、HDマップにとって適切な物理的エリアの様々な要素を格納するために必要な情報量の推定に基づいて、地理的領域のサイズを決定する。
【0046】
一実施形態において、オンラインHDマップシステム110は、地理的領域の一意の識別子、地理的領域の一意の名称、地理的領域の境界の記述を含む様々な属性を備えるオブジェクトまたはデータ記録を使用して、例えば、緯度および経度の座標のバウンディングボックス(bounding box)、ならびにランドマーク特徴および占有グリッドデータの集合体を使用して、地理的領域を表す。
【0047】
図6A~
図6Bは、一実施形態による、HDマップに画定される地理的領域を示す。
図6Aは正方形の地理的領域610aを示す。
図6Bは、2つの隣り合った地理的領域610aおよび610bを示す。オンラインHDマップシステム110は地理的領域の表現内にデータを格納し、車両が地理的領域の境界線を跨がって運転するとき、ある地理的領域から別の地理的領域へのスムーズな移行を可能にする。
【0048】
一実施形態によると、
図6に図示するように、各地理的領域はその周りに所定の幅のバッファ(buffer)を有する。バッファは、(地理的領域が方形で区切られている場合)地理的領域の4辺全ての周りに冗長地図データを備える。
図6Aは、地理的領域610aの周りの50メートルのバッファの境界線620、および地理的領域610aの周りの100メートルのバッファの境界線630を示す。車両コンピューティングシステム120は、車両がこのバッファ内の閾値距離を越えると、車両の現在の地理的領域をある地理的領域から隣の地理的領域に切り換える。例えば、
図6Bに図示するように、車両は地理的領域610aの場所650aから始動する。車両は、経路に沿って横断して、地理的領域610の境界線を越えるが、バッファの境界線620内に留まる場所650bに到達する。したがって、車両コンピューティングシステム120は、車両の現在の地理的領域として、地理的領域610aを使用し続ける。車両が場所650cでバッファの境界線620を越えると、車両コンピューティングシステム120は、車両の現在の地理的領域を610aから地理的領域610bに切り換える。バッファの使用は、車両が地理的領域の境界線を厳密に追跡する経路を走行する結果として、車両の現在の地理的領域が急に切り換わるのを防止する。
【0049】
HDマップ内における車線の表現
HDマップシステム100は、HDマップ内に通りの車線情報を表す。本明細書で説明される実施形態は通りを参照するが、この手法は、車両が走行できる幹線道路、横道、大街路、大通り、または任意の他の小道に適用できる。HDマップシステム100は、経路設定のため、および車両の自己位置推定のための参照フレームとして車線を使用する。HDマップシステム100で表される車線は、明示的にマーキングされた車線、例えば、白色と黄色の縞の車線、暗示的な車線、例えば、線または縁石はないが2つの走行方向のある田舎道上の車線、車線として機能する暗示的な進路、例えば、ある車線に別の車線から進入するときに向きを変える車が進む進路を含む。HDマップシステム100は、車線に関連した情報、例えば、車線に関連した道路標識および信号灯などのランドマーク特徴、障害物検出のための車線に関連した占有グリッド、および車線に関連したナビゲート可能な空間も格納するため、車両が意図せず車線から出なければならない緊急時に、車両は効率的に計画/反応することができる。したがって、HDマップシステム100は、車線のネットワーク(a network of lanes)の表現を格納して、車両が出発地と目的地との間の合法的な進路を計画し、車両のリアルタイムの感知および制御のための参照のフレームを追加することを可能にする。HDマップシステム100は情報を格納し、車両が現在いる車線、車線形状に対する精密な車両の位置情報、ならびに車線および隣の車線および連結車線に関連した関連特徴/データを車両が判定することを可能にするAPIを提供する。
【0050】
図7は、一実施形態による、HDマップにおける車線の表現を示す。
図7は、交差点にいる車両710を示す。HDマップシステムは、車両の自律運転にとって関連ある地図データへのアクセスを車両に提供する。これには、例えば、車線に関連付けられているが、車両に最も接近した特徴ではないかもしれない特徴720aおよび720bが含まれる。そのため、HDマップシステム100は、車線と特徴との関係を表すデータの車線中心表現を格納して、車両が、車線が与えられると、比較的効率的に、特徴を抽出することができるようにする。
【0051】
HDマップシステム100は、複数の車線要素として、複数の車線の複数の部分を表す。車線要素は、車線の境界、および車両が車線要素内で走行することのできる合法的な方向、車両が車線要素内で運転することのできる速さ、車線要素が左折専用か、または右折専用かどうか等を含め、様々な拘束を規定する。HDマップシステム100は、1つの車両車線の連続的な幾何部分として、車線要素を表す。HDマップシステム100は、車線の幾何境界、車線の運転方向、車線内を運転するための車両の制約、例えば、速度制限、出入り車線を含む連結車線との関係、停止規制、例えば、車線が一時停止線、譲れ標識またはスピードバンプで終わっているかどうか、および自律運転にとって関連ある道路の特徴との関係、例えば、信号灯の位置情報、道路標識の位置情報等を表す情報を備える車線要素を表すオブジェクトまたはデータ構造を格納する。
【0052】
HDマップシステム100によって表される車線要素の例は、高速道路上の右側車線の区画、道路上の車線の区画、左折車線、左折車線から別の車線への曲がり角、オンランプからの合流車線、オフランプ上の出口車線、および私有道路を含む。HDマップシステム100は、各方向に1つずつ、2つの車線要素を使用して片側1車線の道路を表す。HDマップシステム100は、片側1車線道路と同様に共有される左折専用車線を表す。
【0053】
図8A~
図8Bは、一実施形態による、HDマップにおける車線要素および車線要素間の関係を示す。
図8Aは、道路のT字路の例を示し、右折車線810bを介して車線要素810cに連結されているとともに、左折車線810dを介して車線810eに連結されている車線要素810aを図示している。
図8Bは、道路のY字路の例を示し、車線810hに直接連結されるとともに、車線810gを介して車線810iに連結されているラベル810fを示している。HDマップシステム100は出発地から目的地までの経路を、出発地から目的地に到達するために通ることのできる一連の連結車線要素として判定する。
【0054】
座標系
図9A~
図9Bは、一実施形態による、HDマップシステムで使用するための座標系を示す。他の実施形態は他の座標系を使用することができる。
【0055】
一実施形態において、HDマップシステムは、X軸の正の方向が車両の前向き方向で、Y軸の正の方向が車両の前方に向かって左側で、Z軸の正の方向が上向きになるように、
図9Aに図示される車両座標系を使用する。すべての軸は、距離を、例えばメートルを使用して表す。座標系の原点は、地表面の高さが原点のz座標値、x座標値およびy座標値が車の中心付近になるように、車の中心付近の地面上とする。一実施形態において、X、Y座標の原点は車のLIDARセンサの中心である。
【0056】
別の実施形態において、HDマップシステムは、X軸の正の方向が車両の前方に向かって左側で、Y軸の正の方向が車両の前進方向で、Z軸の正の方向が上向きになるように、
図9Bに図示されるLIDAR座標系を使用する。すべての軸は、距離を、例えばメートルを使用して表す。座標系の原点はLIDARのパックデバイス(puck device)の物理的中心である。
【0057】
校正段階中、HDマップシステムは、LIDAR座標系を車両座標系にマッピングするために、座標変換Tl2cを決定する。例えば、点Plidarを与えられたとすると、車両における対応点Pcarを、変換Pcar=Tl2c*Plidarを行って取得することができる。点表現Pcarは、位置合わせおよび処理のために使用される。
【0058】
点群展開(POINT CLOUD UNWINDING)
図10は、一実施形態による、HDマップシステムによるLIDAR(またはLiDAR)点群展開のプロセスを示す。LiDARは移動する車両に搭載されている。したがって、LIDARはスキャン(scan)を行いながら移動している。例えば、時速65マイルの走行速度では、10HZでサンプリングするLIDARは各スキャン中に3.5mまで走行することができる。HDマップシステムは、生のLIDARスキャンデータを現実世界と一致する点群に変換するために、LIDARの運動(motion)を補償する。
【0059】
特定のタイムスタンプ時のLiDARの位置情報に関連した周囲環境の真の3D点群を回復する(recover)ために、HDマップシステムは展開(unwinding)と呼ばれるプロセスを行って、環境をスキャンしている最中に、LiDARの運動を補償する。
【0060】
スキャン中にLiDARが移動した運動をTと仮定する。LiDARビームは、距離画像(range image)においてその行および列のインデックス(index)で特定される。HDマップシステムは、スキャンの開始時刻に対する各LiDARビームの相対的なタイミングを導き出す。HDマップシステムは線形運動補間(linear motion interpolation)を使用して、各LiDARビームを、開始時刻に対してその補間された運動に応じて動かす(move)。各LiDARビームにこの追加運動補償を追加した後、HDマップシステムは展開された点群として静的な世界環境を回復する。
【0061】
異なる実施形態によると、各スキャンの最中に、LiDARの相対運動(T)、すなわち、展開変換(unwinding transform)を推定する別の方法がある。一実施形態において、HDマップシステムは、展開にGNSS-IMU(global positioning system - inertial measurement unit : 全地球測位システム-慣性計測装置)データを使用する。別の実施形態では、HDマップシステムは、生の連続したLiDAR点群を使用して、ペアワイズ点群のレジストレーション(pairwise point cloud registration)を実行する。別の実施形態では、HDマップシステムは大域的位置合わせを行ってから、隣接するLiDARのポーズから相対変換を計算する。
【0062】
大域的位置合わせ(GLOBAL ALIGNMENT)
トラックの集合体(これはGNSS-IMUデータおよびLiDARデータを含む)を与えられたとすると、HDマップシステムはGNSS-IMUデータとLiDARデータとを融合させて、各LiDARフレームについて大域的に整合した車両ポーズ(位置情報および向き)を計算する大域的位置合わせを行う。大域的な車両ポーズを用いて、HDマップシステムは整合性のある、統合された点群として複数のLiDARフレームを併合し(merges)、そこから3D HDマップを構築することができる。
【0063】
図11は、一実施形態による、大域的位置合わせモジュールのシステムアーキテクチャを示す。大域的位置合わせモジュールは、ポーズグラフ更新モジュール1110、ペアワイズ位置合わせモジュール1120、ICP(すなわち、反復最接近点:Iterative Closest Point)結果フィルタモジュール1130、表面分類モジュール1140、ポーズグラフ最適化モジュール1150、分散実行モジュール1160、位置ずれホットスポット検出モジュール1160、GNSSポーズ先行処理モジュール1170、およびポーズグラフストア1180を含む。各モジュールの機能は、本明細書で説明される様々なプロセスに関連して詳しく説明する。
【0064】
単一トラックペアワイズ位置合わせ
図12Aは、一実施形態による単一トラックペアワイズ位置合わせプロセスを示す。一実施形態において、単一ペアワイズ位置合わせプロセスはペアワイズ位置合わせモジュール1120によって実行される。HDマップシステムは各データ収集データをトラックとして編成する。トラックデータは少なくともGNSS-IMUデータおよびLiDARデータを含む。単一トラック位置合わせは、次のステップを行う事前処理ステップである:(1)単一トラックデータを受信するステップ1205、(1)車両校正変換にLiDARを行うステップ1210、(2)GNSS-IMUデータおよびLiDARデータの同期をこれらのタイムスタンプに基づいて行うステップ1215、(3)固定サンプル、例えば、車が信号灯で停止するときに取得されるサンプルを除去するステップ1220、(4)運動補償のために展開変換を計算するステップ1225、(5)同じトラック内の点群間のペアワイズレジストレーションを計算することによって、ペアワイズ位置合わせを行うステップ1230。HDマップシステムはICP結果フィルタも行う(1235)。
【0065】
車両が、例えば、赤の信号灯で停止するとき、LiDAR計測は冗長である。HDマップシステムは、トラックサンプルを事前フィルタリングすることによって、固定点群サンプルを除去する。HDマップシステムは各トラックについて最初のサンプルを保存する。HDマップシステムは、そのGNSS位置情報によって計測された過去の非固定サンプルとの距離が、メートルで計測される一定の閾値(例えば、0.1メートル)を超える場合、かつその場合に限り、後続サンプルを非固定サンプルとして認識する。GNSS計測は常に正確とは限らず、また突然のジャンプをもつおそれがあるが、GNSS計測は大域的に整合性があるため、HDマップシステムはGNSS位置情報を使用して、固定サンプルをふるい落とす。比較として、大域的LiDARポーズからの相対的な位置情報は、大域的最適化が計算される度に変わる可能性があるので、不安定な非固定サンプルになる。
【0066】
展開変換は、スキャンの最中(すなわち、スキャンの開始時刻から終了時刻まで)の相対運動である。そのため、HDマップシステムは、展開変換を推定するのに、必ず連続したLiDARサンプルを使用する。例えば、HDマップシステムは非固定サンプルiの展開変換を計算する場合があるが、サンプル(i+1)が非固定サンプルではなかったとしても、HDマップシステムは中間サンプル(i+1)を使用してこの展開変換を計算する。
【0067】
HDマップシステムは生のLiDAR点群を使用して展開変換を事前計算する。基本的な仮定は、生のLiDAR点群のみを使用して点対平面(point-to-plane)ICPを実行することによって、正確な運動を推定することができることである。この仮定は、定常運動(すなわち、速度または回転速度に変化がない)の場合は概ね真である。この仮定の下、展開変換は関係する点群の両方に同じ効果を有するため、それを無視してもなお2つの生の点群から妥当な運動推定を提供する。
【0068】
非固定サンプルiの展開変換を計算するために、HDマップシステムは連続するLiDARサンプル(i+1)を見つけて、次の設定を使用して点対平面ICPを実行する:(1)ソース点群(Source point cloud):LiDARサンプルi+1、(2)ターゲット点群:LiDARサンプルi。HDマップシステムは法線を推定し、ターゲット点群について空間インデキシングデータ構造(indexing data structure)(KDツリー)を構成し、点対平面ICPを展開変換として使用してソース点群の相対変換を計算する。ICPプロセスの初期推測のために、HDマップシステムはGNSS-IMUからの運動推定を使用する。展開変換を計算するICPは収束しない場合がある。その場合、HDマップシステムは非固定サンプルを無視する。
【0069】
すべての非固定サンプルの展開変換を計算したら、HDマップシステムは、それが現実世界と整合するように、展開変換を使用して関係する点群を運動補償する。HDマップシステムは同じトラックの非固定サンプル間のペアワイズ点群位置合わせを計算する。各非固定トラックサンプルについて、HDマップシステムは探索半径を使用して、近くの他の単一トラック非固定サンプルを見つける。HDマップシステムは、ICP計算のために、関係するサンプルを編成してICPペアのリストにする。各ICPペアは、潜在的に、並列計算フレームワークを介して、独立して計算することができる。各ICPペアについて、ソース点群およびターゲット点群が、まず、それらの対応する展開変換を使用して展開され、次いで入力として点対平面ICPプロセスに提供されてそれらの相対変換を得る。
【0070】
ペアワイズ点対平面ICPプロセスは変換行列(T)を計算し、6×6情報行列として、6DOF(自由度:Degree of Freedom)変換の信頼度も報告する。例えば、6-DOF運動推定が[tx,ty,tz,roll,pitch,yaw]である場合、6×6情報行列(Ω)は共分散行列の逆行列であり、これは各次元の信頼度尺度を提供する。例えば、車がx軸に沿った長い道路に進入する場合、点対平面ICPはx軸に沿った相対運動を正確に判定することができないため、HDマップシステムはtxに対応する情報行列の要素に低い信頼値(すなわち、txについて大きな分散)を割り当てる。
【0071】
クロストラックペアワイズ位置合わせ(Cross Track Pairwise Alignment)
異なるトラックからの複数のLiDARサンプルを併合するために、HDマップシステムは、異なるトラックからの複数のLiDARサンプルについてループ閉じ込みペアワイズ変換を計算する。各非固定サンプルについて、HDマップシステムは、ある半径内で他のトラックから近くの非固定サンプルを探索する。ICP計算のために、関係するサンプルを編成してICPペアのリストにする。各ICPペアは、並列計算フレームワークを介して、独立して計算することができる。各ICPペアについて、ソース点群およびターゲット点群が、まず、それらの対応する展開変換を使用して展開され、次いで点対平面ICPに送られて、それらの相対変換を得る。
【0072】
すべてのペアワイズ位置合わせを完了すると、HDマップシステムは大域的ポーズ最適化を行い、以下の問題を解く。
多数のトラックからN個のサンプルの集合{サンプルi}と、これらのサンプル間のそれらの相対的変換
【0073】
【0074】
【数2】
とが与えられるとすると、HDマップシステムは各サンプルについて大域的整合ポーズの集合
【0075】
【数3】
を計算するので、ペアワイズ変換間の不整合が低減または最小化される。
【0076】
【数4】
図12Bは、一実施形態による大域的位置合わせプロセスを示す。単一トラック位置合わせの完了時、大域的位置合わせモジュール400は、ループ閉じ込み目的で、異なるトラックからのLiDARサンプルについてクロストラックペアワイズ位置合わせ(cross-track pairwise alignment)を行う(1245)ことによって、大域的位置合わせを行う。HDマップシステムは、単一トラックペアワイズ位置合わせの結果とクロストラックペアワイズ位置合わせの結果とを組み合わせて、大域的ポーズグラフを構築する。HDマップシステムは、大域的ポーズ最適化を繰り返し行い(1255)、その結果のレビューおよび手動改善を行う(1260)。HDマップシステムは、大域的ポーズグラフの最適化を介して、最終的な車両のポーズを決定する(1270)。
【0077】
ポーズグラフの生成
一実施形態において、大域的最適化は、ポーズグラフの処理として行うことができる。HDマップシステムは、利用できるすべてのサンプルについて、各サンプルのポーズを表すためにノードを使用する({Vi=xi})。エッジは、ペアワイズ変換であり、ノード間のペアワイズ変換の対応する({Eij={Tij,Ωij}})情報行列である。
【0078】
図13は、一実施形態によるポーズグラフの可視化を示す。大域的ポーズ最適化の目的は、ポーズグラフ内の各ノードのポーズを最適化して、それらの相対的なペアワイズ変換が、対応する情報行列で重み付けされた、ペアワイズICPから計算したものにできるだけ近づくようにすることである。これは以下の式を使用して数学的に表すことができる。
【0079】
【0080】
【数6】
は、大域的ポーズから計算された、ノードiとノードjとの間のペアワイズ変換であり、
【0081】
【数7】
は、ICPから計算されたものと比べた、大域的ポーズから計算されたペアワイズ変換間の差であり、
【0082】
【数8】
は、大域的ポーズと情報行列Ω
ijによって重み付けされたペアワイズICPとの不整合によるエッジe
ijからの誤差項である。ICPの結果の信頼度が高くなるにつれて、Ω
ijが「大きく」なるため、誤差項が高くなる。
【0083】
ポーズグラフにポーズ先行を追加する
上記のポーズグラフ最適化は、ペアワイズ変換による拘束を追加し、そのため、すべてのノードへの任意のグローバル変換は、まだ有効な最適化の解である。一実施形態において、GNSS計測は一般に大域的に整合性があるため、HDマップシステムはポーズをGNSS計測とできるだけよく整合させておく。そのため、HDマップシステムはノードの部分集合(P)を選択し、それらの対応するGNSSポーズとの大域的ポーズ差を低減または最小化する。
【0084】
図14は、一実施形態による、GNSSに基づいたポーズ先行(pose priors)を含むポーズグラフの可視化を示す。
図14に図示されるように、単項エッジがポーズグラフ内のノードの部分集合に追加される。ピンク色のノードとして図示されるドット1410は、対応するグラフノードに追加されるポーズ先行である。
【0085】
大域的ポーズ先行を追加することは、ノードの部分集合に正則化項を追加することに相当する。xiはノードxiに追加される大域的GNSSポーズ先行であり、
【0086】
【数9】
は現在のポーズx
iとそのポーズ先行
x
i
とのポーズ差であり、Ω
iiは大域的ポーズ先行の強さ、または信頼度である。この情報が大きいほど、この大域的ポーズ先行について追加される重みが多くなる。様々な実施形態によると、ポーズ先行についてサンプルの部分集合を選択する方法には次のものがある:(1)固定距離間隔で各トラックからサンプルを選択する、(2)ランダムサンプリングを行う、(3)緯度/経度バウンディングボックスごとに1つのノードを選択する。実施形態は、GNSSポーズおよびペアワイズ位置合わせの質に応じて、ノード部分集合の作成を適合させることができる。例えば、選択プロセスは高品質のポーズをもつGNSSノードの選択を優先し、または低品質のペアワイズ位置合わせをもつ領域のサンプリング密度を高めてもよい。
【0087】
HDマップシステムは、GNSSポーズの信頼度尺度と同様に、大域的ポーズ先行の信頼度を判定する。信頼度は推定誤差分散の逆数を用いて計測することができる。したがって、HDマップシステムは、より低い分散をポーズのより高い信頼度に関連付ける。HDマップシステムは、位置を推定するために使用されるGNSS計算を行いながら、位置誤差分散を判定する。HDマップシステムは、人工衛星の相対位置および各人工衛星までの距離の残余誤差などの要因を考慮することによって、位置誤差分散を判定する。HDマップシステムは、GNSSポーズを他のセンサデータ(例えば、IMU、磁力計、ビジュアルオドメトリ等)と組み合わせるための計算の副産物として、フルポーズ(full pose)(位置および向き)の誤差分散を判定する。一実施形態において、HDマップシステムは、ポーズのすべての推定に関して誤差分散を出力するカルマンフィルタを使用する。HDマップシステムは、推定されたポーズがGNSSデータおよびIMUデータとよく一致するほど、ポーズにおける期待誤差分散が低く、我々の信頼度が高くなると判定する。位置およびポーズの誤差分散はともに、統合型GNSS/IMUデバイスの標準出力である。
【0088】
ポーズグラフの最適化
HDマップシステムは、正しい収束のために、ポーズグラフの初期化を行う。ポーズグラフ最適化は、多数の局所的最小値が存在することがある非線形最適化である。HDマップシステムは、GNSSポーズを使用して、ポーズグラフ内のすべてのポーズを初期化する。各GNSSポーズはかなりずれていることがあるが、GNSS計測はポーズ誤差に対して大域的束縛(global bound)を与える。ポーズグラフを初期化した後、HDマップシステムは非線形ソルバを使用してポーズグラフ全体を最適化する。
【0089】
自動構成されるポーズグラフは、ループ閉じ込みエッジがないこと、または高架道路、多層駐車場などの非平面構造物等により、誤差が生じやすい場合がある。HDマップシステムは、オペレータを割り当て、大域的ポーズと併合される点群の鮮鋭度(sharpness)をチェックすることで大域的に最適化されたポーズを検証する。HDマップシステムは、ポーズグラフの質を改善するために、オペレータがループ閉じ込みエッジを手動で追加することも可能にする。手動レビュープロセスの完了時、手動エッジが追加された新たなポーズグラフを最適化して、より正確な大域的ポーズ集合を生成できるようにする。HDマップシステムが手動レビューまたは改善の恩恵を受ける可能性がある箇所を自動的に特定するため、HDマップシステムは自動位置合わせホットスポット検出を提供する。
【0090】
位置合わせの全体的なプロセス
図15は、一実施形態による、ポーズグラフ最適化を行うプロセスを例示するフローチャートを示す。プロセスの様々なステップは、ポーズグラフ最適化モジュール1150およびGNSSポーズ先行処理モジュール1170によって行うことができる。HDマップシステムは、ポーズグラフをポーズグラフストア1180に格納する(1500)。ポーズは車両の位置情報および向きを表す。HDマップシステムはトラックデータを収集し、各トラックデータは経路に沿って運転する車両が収集するセンサデータ、例えば、自律走行車に搭載されているLIDARによって収集される距離画像を表すLIDARフレームを備える。ポーズグラフ内の2つのポーズ間のエッジは、2つの関連するノード、例えば、車両が経路に沿ってセンサデータを収集した連続する位置情報を表すノードを連結する。
【0091】
GNSSポーズ先行処理モジュール1170は、ポーズグラフからノードの部分集合を選択する(1510)。部分集合の各ノードについて、GNSSポーズ先行処理モジュール1170はステップ1520および1530を行う。GNSSポーズ先行処理モジュール1170はノードに対応するGNSSポーズを特定する(1520)。GNSSポーズ先行処理モジュール1170は、ノードとGNSSポーズとの間の大域的ポーズ差を低減または最小化する(1530)。
【0092】
ポーズグラフ最適化モジュール1150はポーズグラフを使用してポーズグラフ最適化を行う(1540)。HDマップシステムはセンサデータ、例えば、LIDARフレームを併合して、整合性のある、統合された点群を生成する。HDマップシステムは点群を使用して高精度地図を生成する。
【0093】
ICP結果のフィルタリング
従来のICP手法は、大域的最適解に収束することを保証しない。実際、ICPアルゴリズムの初期推測が不良であれば、ICPは局所的最小値にとらわれて、不正確な変換を返す可能性がある。そのため、実施形態は各ICP結果を評価する品質制御方法を使用して、不良なICP結果を除去する。HDマップシステムは、ICP計算中に収集することのできる様々な統計値に基づいて、ICP結果に自動QA方法を使用する。
【0094】
各ICPの最後の反復時、HDマップシステムは現在の対応集合
【0095】
【数10】
から統計値を収集する。これらの対応から、HDマップシステムは次の統計値を収集する:(1)対応間の平均符号付き距離誤差、(2)対応間の符号付き点対平面誤差の分散、(3)対応間の符号付き距離誤差の分布のヒストグラム。変換は6Dパラメータ空間(並進に3自由度(three degrees of freedom : 3DOF)、回転に3DOF)にあるため、HDマップシステムは、以下の式で示すように、コスト関数を二次コストとして近似化する。
【0096】
【0097】
【数12】
は、4×4変換行列を生成することができる6Dベクトルであり、ICP情報行列と呼ばれる。情報行列はICP最適化の各次元について不確かさを明らかにする。ICP情報行列について、HDマップシステムは次の属性を計算する:条件数および固有値。
【0098】
統計値に加えて、HDマップシステムはICP結果と対応するGNSS-IMUポーズとのポーズ差も計算する。各ICP結果について、HDマップシステムは、ICP結果とGNSS-IMUから計算したペアワイズポーズとの間のGNSS-IMUポーズ差から計算したペアワイズポーズと、ICP結果とのポーズ差を計算する。ポーズ差は6Dベクトル[delta_x,delta_y,delta_z,delta_roll,delta_pitch,delta_yaw]としてまとめることができる。この6DベクトルはSVMICP結果分類子の特徴ベクトルにも加えられる。
【0099】
統計値とICP情報行列の分析とを組み合わせて、HDマップシステムは、次の特徴を含む各ICPに関する特徴ベクトルを形成する:平均符号付き距離誤差、分散符号付き距離誤差、誤差ヒストグラム、条件数、固有値、GNSS-IMUポーズと他の可能性のある特徴との差、例えば、ビジュアルオドメトリ(visual odometry)間の差。HDマップシステムは、まず、人による検証済みのグランドトゥルース(human verified ground truth)ICP結果データセットの集合を構築し、各ICP結果について特徴ベクトルを計算する。この特徴ベクトルの集合体により、HDマップシステムがバイナリ分類子、例えば、SVM分類子を訓練することが可能になり、この分類子は対応する特徴ベクトルに従って現在のICP結果が正しい確率を予測することができる。訓練された機械学習モデル(例えば、SVMモデル)は、各ICP結果が正しい確率を報告し、これによりHDマップシステムが不良なICP結果をふるい落として、手動調整が必要となりうる不良なICP結果を人のラベラー(human labelers)に報告することを可能にする。
【0100】
図16は、一実施形態による、機械学習ベースのICP結果フィルタのシステムアーキテクチャを示す。ICP結果フィルタ480は、訓練モジュール1610、ICP結果フィルタモデル1620、特徴抽出モジュール1630、および訓練データストア1640を備える。訓練データストア1640は、ICP結果フィルタモデル1620を訓練するために使用される訓練データを格納する。特徴抽出モジュール1630は、訓練データストア1640に格納されているデータまたはICP結果フィルタモデル1620を使用して処理するために受信される入力データのいずれかから、特徴を抽出する。訓練モジュール1610は、訓練データストア1640に格納されている訓練データを使用してICP結果フィルタモデル1620を訓練する。
【0101】
図17は、一実施形態による、機械学習ベースのICP結果フィルタのモデルを訓練するプロセスを示す。訓練モジュール1610は、車両のセンサが取得したデータから決定される領域の3D表現を備える複数のデータセットを受信する(1700)。
【0102】
訓練モジュール1610は、ステップ1610、1620、1630、1640および1650を繰り返す。訓練モジュール1610は、ある地理的領域内の複数の物体の第1の3D表現および第2の3D表現を決定する(1710)。訓練モジュール1610は、反復最接近点(ICP)手法に基づいて、第1の3D表現を第2の3D表現にマッピングするための変換を決定する(1720)。特徴抽出モジュール1630は、ある特定のICP結果に基づいて、特徴を備える特徴ベクトルを抽出する(1730)。訓練モジュール1610はICP結果についてユーザからラベルを受信する(1750)。訓練モジュール1610はラベル付けされたICP結果を訓練データストア1740に格納する。
【0103】
訓練モジュール1610は、入力ICP結果が手動検証の恩恵を受ける可能性があるかどうかを示すスコアを生成するように構成されている機械学習ベースのICP結果フィルタモデル1620を訓練する。
【0104】
図18は、一実施形態による、機械学習ベースのモデルを使用してICP結果フィルタを行うプロセスを示す。ICP結果フィルタモジュール480は、ある地理的領域内を運転している自律走行車のセンサが取得したその領域の一部分のセンサデータを受信する(1800)。
【0105】
ICP結果フィルタモジュール480は、ステップ1810、1820、1830、1840、および1850を繰り返して、大域的ポーズ最適化を行う。ICP結果フィルタモジュール480は、その領域の一部分内の複数の物体の第1の3D表現および第2の3D表現を決定する(1810)。ICP結果フィルタモジュール480は、反復最接近点(ICP)手法に基づいて、第1の3D表現を第2の3D表現にマッピングするための変換を決定する(1820)。ICP結果フィルタモジュール480は、ICP結果に基づいて、特徴を備える特徴ベクトルを抽出する(1830)。ICP結果フィルタモジュール480は、ICP結果の正しさを示すスコアを判定するために、機械学習ベースのICP結果フィルタモデル1820に入力として特徴ベクトルを提供する(1840)。結果が不正確であることをスコアが示す場合、ICP結果フィルタモジュール480は手動検証のために結果を提供する。いくつかの実施形態において、結果の検証は自動エージェント、例えば、エキスパートシステムによって行われる。
【0106】
HDマップシステムは手動検証に基づいた結果を受信し、大域的ポーズ最適化に基づいたHDマップを生成する(1860)。
大域的位置合わせの分散実行
広大な地理的領域、例えば、大都市をカバーする地図を作成するためには、ポーズグラフは膨大な数のエッジを有する数十億個のサンプルを含有するかもしれない。1台のコンピューティングマシンでポーズグラフの最適化を行うことはほぼ不可能である。HDマップシステムの実施形態は、大きなポーズグラフを最適化するための分散型方法を実施する。
【0107】
図19A~Bは、一実施形態による、ポーズグラフ最適化の分散実行のための、ポーズグラフのサブグラフへの分割を示す。
図19Aに図示するように、大きなポーズグラフ1900が与えられると、HDマップシステムはポーズグラフをディスジョイントの複数のサブグラフ(disjoint sub graphs)1910に分割する。各サブグラフ1910について、HDマップシステムは、
図19に図示するように、いくらかマージンを付けてその境界を広げる。その結果、各サブグラフは、この特定のサブグラフによって処理されたノードであるコアノード1920の集合を含有する。さらに、これはバッファ領域において複数のバッファノード1930が取り囲んでいる。バッファ領域の境界上に、HDマップシステムは固定される複数の境界ノードを有する。
【0108】
図19Bに図示されるように、HDマップシステムはポーズグラフ1900全体を多数のサブグラフ1910に分割し、すべてのサブグラフのコアノード1920の和集合がオリジナルのポーズグラフ内のすべてのノードをカバーする。以下のプロセスは、ポーズグラフを分散方式で最適化する。
【0109】
図20は、一実施形態による、ポーズグラフの分散処理のプロセスを示す。一実施形態において、このプロセスのステップは、分散実行モジュール1160によって実行される。HDマップシステムはポーズグラフのノードおよびエッジを受信する(2000)。ポーズグラフ内のノードはサンプルのポーズを表し、ポーズグラフ内のエッジは1ペアのノード間のペアワイズ変換を表す。分散実行モジュール1160はポーズグラフを複数のポーズサブグラフに分割し(2010)、各ポーズサブグラフは、
図19に図示するように、コアポーズサブグラフ部分と境界ポーズサブグラフ部分とを備える。分散実行モジュール1160はサブグラフを複数のプロセッサに分散させ(2020)、各プロセッサには近傍のポーズサブグラフの集合が割り当てられる。HDマップシステム100は、複数のプロセッサを使用して、大域的ポーズグラフの最適化を並列で行う(2030)。
【0110】
図21は、一実施形態による、ポーズグラフの分散最適化のプロセスを示す。HDマップシステムは、各ポーズサブグラフについて以下のステップを繰り返す。以下のステップは、境界ノードポーズが反復(iterations)間で変化するとき、または境界ノード間の変化の総尺度が閾値よりも大きくなるときに、繰り返される。HDマップシステムは、境界ノードを固定したままで、ポーズサブグラフを最適化する(2100)。HDマップシステムは近傍のポーズサブグラフから境界ノードを更新する(2110)。HDマップシステムは境界ノードの変化量を判定する(2120)。HDマップシステムは、境界ノードに変化がない場合、または境界ノードの変化の尺度が閾値未満である場合に、サブグラフ最適化完了をマークする(2130)。
【0111】
HDマップシステムがポーズグラフをディスジョイントの複数のコアノード(disjoint core nodes)を有する複数のサブポーズグラフに分割する方法は、共有のポーズグラフの収束速度に影響する。サブポーズグラフは、本明細書においてポーズサブグラフともいう。誤差がポーズグラフ上で波のように上下に揺れていて、多数の反復の間に境界ノードの変化に繋がる場合には、長いフィードバックループがある。様々な実施形態。様々な実施形態は異なる再分割戦略に関する問題に対処する。一実施形態によると、HDマップシステムは緯度/経度バウンディングボックスに基づいて、ポーズグラフを再分割する。この戦略は多数の境界ノードをもたらすことになる場合があり、それが収束を遅くするおそれがある。別の実施形態では、HDマップシステムはグラフカット(graph cuts)に基づいてポーズグラフを再分割する。例えば、HDマップシステムは長い道路区間の中心でポーズグラフを切断することができる。これで、最小数の境界ノードになる。
【0112】
別の実施形態において、HDマップシステムは合流点でポーズグラフを切断する。合流点のサンプルは多くのエッジによって十分に制約されることが多いため、合流点でポーズグラフを切断すると、境界ノードの早い収束をもたらすことになりうるため、分散型ポーズグラフ最適化を迅速化する。概して、一実施形態において、HDマップシステムは車両によって返される多数のサンプルを有する地理的領域の部分を特定し、境界が当該領域を通過するように、ポーズグラフを複数のサブグラフに分割する。サブグラフの境界に多数のサンプルをもつ地理的領域の部分を通過させると、より早い収束に繋がる。
【0113】
大域的位置合わせの増分処理
HDマップシステムは、構造化されて最適化されるポーズグラフにトラックのデータの増分追加を可能にする。これにより、ポーズグラフおよびそのHDマップへの組み込みの定期的な更新が可能となる。
【0114】
図22は、一実施形態による、ポーズグラフの増分更新のプロセスを例示する実施例を示す。
図22は、トラック{Track
1,Track
2,…,Track
N}を含む既存のポーズグラフG
0を示す。新たなトラックの集合は、新たなトラックが収集された後にグラフG0に追加され、HDマップシステムはこれらM
new個のトラック{Track
N+1,Track
N+2,…,Track
N+M}を既存のポーズグラフに追加して、N+M個のすべてのトラックを含む新たなポーズグラフGを得る。
【0115】
図23は、一実施形態による、ポーズグラフの増分更新のプロセスを例示するフローチャートを示す。一実施形態において、プロセスの様々なステップは増分ポーズグラフ更新モジュール1110によって実行され、オンラインHDマップシステム110で行われる。
【0116】
HDマップシステムは、トラック{Track
1,Track
2,…,Track
N}の集合S1を含むポーズグラフG
0を生成する(2300)。一実施形態において、ポーズグラフG
0は、
図20および
図21に示されるプロセスを使用して生成されて、最適化される。HDマップシステムは、既存のポーズグラフG
0に追加するために、新たなトラック{Track
N+1,Track
N+2,…,Track
N+M}の集合S2を受信する(2310)。
【0117】
HDマップシステムは、TxおよびTyがともにM個の新たなトラックの集合S2から選択されるように、トラックTxおよびTyを含むトラックのペア間のペアワイズ位置合わせを行う(2320)。したがって、HDマップシステムは、新たなトラックについて、単一トラック展開変換および単一トラックペアワイズ変換を行う。
【0118】
HDマップシステムは、Tpが集合S1から選択され、Tqが集合S2から選択されるように、トラックのペア(Tp,Tq)間のペアワイズ位置合わせを行う(2330)。したがって、HDマップシステムは、新たなトラックを互いに関係付けるとともに、新たなトラックを既存のトラックに関係付けることによって、クロストラックペアワイズ位置合わせを行う。
図22に図示するように、M個の新たなトラック間のクロストラックペアワイズ位置合わせを計算することに加えて、HDマップシステムは、既存のN個のトラックとの新たなトラックのクロストラックペアワイズ位置合わせも計算する。新たな単一トラックおよびクロストラックペアワイズ位置合わせの結果を用いて、HDマップシステムは新たなポーズグラフGを構造化し、ここで、GのノードはG
0内のすべてのサンプルおよび新たなトラック内のサンプルのすべての和集合である。Gのエッジは、G
0ならびに新たに計算された単一トラックおよびクロストラックペアワイズICP結果からの両方のエッジを含む。
【0119】
HDマップシステムは、集合S1およびS2からのトラックに対してポーズグラフ最適化を行う(2340)。一実施形態において、HDマップシステムは、トラック{Track1,Track2,…,TrackN}の既存サンプルのポーズを変更することなく、ポーズグラフの最適化を行う。したがって、HDマップシステムはポーズグラフ最適化中、トラック{Track1,Track2,…,TrackN}の既存サンプルのポーズを凍結する(freezes)。その結果、HDマップシステムは新たなトラックサンプルポーズのみを最適化する。
【0120】
別の実施形態において、HDマップシステムは、トラック{Track1,Track2,…,TrackN}の既存のサンプルポーズに変更を行う。したがって、HDマップシステムは、ノードポーズのいずれも凍結することなく、新たな大域的最適化プロセス全体を始める。この場合、大域的最適化は、ポーズグラフGの新たな大域的最適化に類似している。
【0121】
HDマップシステムは、更新されたポーズグラフをポーズグラフストア2280に格納する(2350)。HDマップシステムはHDマップの更新に更新されたポーズグラフを使用し、更新されたHDマップを適切な領域内を運転している車両に提供する。
【0122】
ポーズグラフのパッチング(Patching of Pose Graph)
ポーズグラフの品質のために、HDマップシステムによって生成された最適化ポーズは、ポーズグラフ内のすべてのノードについて正確ではない場合がある。ときどき、ループ閉じ込みエッジがないため、または誤ったICPエッジが挿入されているために、最適化の結果が小さな領域で不正確な場合がある。この場合、HDマップシステムはユーザ、例えば、人のオペレータからの入力を受信する。受信した入力は問題のある領域に緯度/経度バウンディングボックスを用いてタグ付けする。その後、緯度/経度バウンディングボックスの中のポーズグラフの部分が、例えば手動で、固定される(fixed)。
【0123】
一実施形態によると、HDマップシステムは、緯度/経度バウンディングボックス内のポーズグラフの部分を表示するユーザインターフェースを提示する。HDマップシステムはユーザインターフェースを介して、不正確と特定されたエッジを除去する要求または新たに検証されたエッジを追加する要求を受信する。
【0124】
ユーザインターフェースを介して受信した要求に基づいてポーズグラフの編集を行った後、HDマップシステムはポーズグラフを再び最適化し、バウンディングボックスの中のすべてのノードについて補正されたポーズを生成する。一実施形態において、HDマップシステムは、編集されたポーズグラフの最適化を行っているときに、緯度/経度バウンディングボックス外のポーズは変更しない。したがって、HDマップシステムは、ポーズグラフ最適化中に、緯度/経度バウンディングボックス外のノードのポーズを凍結する。その結果、HDマップシステムは、指定された緯度/経度バウンディングボックスの中のサンプルポーズのみを最適化して更新する。別の実施形態において、HDマップシステムは、ノードポーズのいずれも凍結せずに、全体的な新たな大域的最適化を始める。この場合、大域的最適化は編集されたポーズグラフの新たな大域的最適化を行うのと類似している。
【0125】
一実施形態において、HDマップシステムは古いトラックの非推奨を可能にする。現在のポーズグラフG0が最適化されていると仮定すると、HDマップシステムは対応するトラックサンプルおよびそれに連結されているすべてのエッジを単純に除去する。その結果、非推奨にされたサンプルのない小さくなったポーズグラフとなる。この場合、HDマップシステムはトラックの非推奨化を受けてポーズグラフの最適化を行わない。
【0126】
硬質/軟質の表面の分類に基づくペアワイズ位置合わせ
HDマップシステムは、近くにある2つのサンプル間の相対的ペアワイズ変換を計算する。2つの点群が与えられるとすると、HDマップシステムは点対平面ICP(すなわち、反復最接近点)プロセスを使用して、情報行列を使用して表される、それらの相対的変換および対応する信頼度推定を得るが、これは共分散行列の逆行列である。
【0127】
HDマップシステムは、次のように、点対平面ICPプロセスを行う。HDマップシステムは、ソース点群およびターゲット点群と呼ばれる2つの点群を、周囲環境の疎な観測として特定し、ICPプロセスを使用して、ソース点群をその局所座標系からターゲット点群の座標系に変換する所望の変換を見つける。データの疎性のために、ソース点群およびターゲット点群が環境内に正確に同じ点をサンプリングすることは起こりそうにない。そのため、単純な点対点ICPは、疎なLiDAR点群では誤差になりやすい。通例、特に運転シナリオ下の環境は、たくさんの平面をもつことが多い。このような状況では、基本ICPプロセスに点対平面の誤差メトリックを使用すると、よりロバストな変換推定に繋がる。
【0128】
図24は、一実施形態による、HDマップシステムによって行われるICPプロセスを示す。対応が与えられるとすると、HDマップシステムは以下のコスト関数を最小化する点対平面ICPを行う。
【0129】
【数13】
上記式において、(n
i,d
i)はターゲット点群内の点であり、ここでn
iは点d
iの推定表面法線であり、s
iはソース点群内の対応する点であり、w
iは各対応に割り当てられる重みであり、これは最も単純な重み付け法の場合1.0に設定されるが、他の重み付けスキームでは異なる適応を有してもよい。最適化問題は、変換Tを調整することにより、ソースからターゲットへの点対平面誤差の総和を最小化する。各反復において、対応は最近傍探索により更新される。
【0130】
HDマップシステムは、異なる点の法線推定を、異なる信頼度の尺度を用いて扱う。例えば、HDマップシステムは道路表面、または建物表面の法線を高信頼度に関連付け、木の葉または低木の法線は、これらが安定した平面構造ではないため、低信頼度に関連付ける。法線計算中、各位置情報での法線ベクトルの計算に加えて、HDマップシステムは、近傍点の分布を推定することによって、各法線の信頼度(またはロバストネス)を推定する。近傍点はLiDAR距離画像から取得してもよい。
【0131】
図25は、一実施形態による、HDマップシステムによるLiDAR距離画像上の点群法線の推定を示す。
図25は、LIDAR点群を形成するLIDARスキャンのビームを示す。
図25は対応するLIDAR距離画像も示す。
【0132】
点対平面ICPを行いながらHDマップシステムによって行われるステップの1つが、ターゲット点群の表面法線を確実に推定することである。一実施形態において、HDマップシステムは、一定の半径におけるpの近傍点の統計分析により、特定の点pの表面法線を推定する。これは、自律運転車で使用されるLiDARのほとんどが限られた数のレーザービームしかもっていないため、難題である。収集されるLiDAR点群は同じレーザービームで収集される点については点密度がより高くなり、異なるレーザービーム間ではより疎になる。この点密度の不均一な分布は、従来の近傍探索に問題を生じさせる。したがって、探索半径を小さくすると、ほとんどが面ではなく線上になる、同じレーザービーム内の近傍が見つかり難くなる。他方で、異なる行からの近傍点を含む大きな探索半径は、他の平面表面からの点も含む場合がある。本開示の実施形態はこれらの問題の少なくともいくつかに対処し、LIDAR距離スキャン(range scans)の法線を推定することを可能にする。
【0133】
HDマップシステムは距離画像としてLiDAR点群の計測値を符号化し、その距離画像において行および列は事前校正されたピッチ角およびヨー角を符号化し、画素値は障害物までの距離を符号化する。最近傍に基づく法線推定の課題に対処するために、HDマップシステムはLiDAR距離画像で直接点群法線を推定する。この手法は次の利点の1つまたは複数を有しうる:(1)各レーザービーム内、およびレーザービーム間の点密度の差に対処するため、信頼度が高まる、(2)近傍探索が画像グリッド上で非常に速く、K-Dツリーなどの追加の空間探索構造を使用しなくてもよい、または必要としなくてもよいため、効率が高まる。
【0134】
図26は、一実施形態による、HDマップシステムによりLiDAR距離画像上の点群法線を決定するプロセスを示す。HDマップシステムは、特定の地理的領域内を運転している車両に搭載されているLIDARによって取得されるLIDARデータを受信する(2600)。HDマップシステムはLIDAR距離画像を生成する(2610)。LIDAR画像において、行および列はピッチ角およびヨー角を符号化し、画素値は障害物までのLIDARの距離を符号化する。
【0135】
各点Pについて、HDマップシステムは以下のステップ2630、2640および2650を行う。HDマップシステムは、少なくとも最低閾値距離離れているLiDAR距離画像内のデータ点の4つの直接の近傍ptop、pbottom、pleftおよびprightを判定する(2630)。上下の近傍または左右の近傍の両方がない場合、HDマップシステムは、その法線は空の値であると判定する。
【0136】
HDマップシステムは、直接の近傍に基づいて、データ点から水平および垂直ベクトルを決定する(2640)。HDマップシステムはpおよびその4つの近傍から最も適切な水平および垂直ベクトル
【0137】
【数14】
を決定する。水平ベクトルは次の通り計算され、垂直ベクトルは同様に計算される。
【0138】
【数15】
の両方が存在する場合、システムはそれらの角度をチェックする。角度が大きすぎる(すなわち、所定の閾値よりも大きい)とシステムが判定する場合、システムは
【0139】
【数16】
としてより短いものを取り、そうでなければ、システムは
【0140】
【0141】
HDマップシステムは、水平ベクトルおよび垂直ベクトル
【0142】
【数18】
のクロス積としてデータ点の法線を決定する(2650)。一実施形態において、法線ベクトルはLiDAR中心を指すように調整される。
【0143】
図27は、一実施形態による、硬質/軟質の表面の分類に基づいて、ペアワイズ位置合わせを行うプロセスを示す。フローチャートに示される様々なステップは、本明細書で示されるもの以外のモジュールで行ってもよい。一定のステップは、本明細書に示されるものとは異なる順序で行ってもよい。
【0144】
大域的位置合わせモジュール400は、ある地理的領域の一部分の複数の3D表現を決定する(2700)。3D表現は点群表現としてもよいが、3D物体および構造物をモデル化するための任意の他のメカニズムとすることもできるであろう。ある地理的領域の一部分の複数の3D表現は、その地理的領域のその部分の第1の3D表現R1および第2の3D表現R2を備える。ある地理的領域の部分は、複数の構造物または物体、例えば、建物、樹木、柵、壁などを備えてもよい。
【0145】
表面分類モジュール1140は、データ点に対応する表面の硬さの尺度を示す、データ点に関連付けられた信頼度の尺度を判定する(2710)。表面分類モジュール1140は、建物や壁のような構造物および物体が、樹木のような構造物または生物のような物体と比べて、相対的に硬い表面と考えられると見なす。表面分類モジュール1140は、構造物の表面上の点によって返されるLIDAR信号に関連付けられている様々な基準に基づいて、構造物の表面の硬さの尺度を判定する。一実施形態において、各基準はスコアに関連付けられている。表面の硬さの尺度は、表面に関連付けられているスコアの重み付き総計として判定される。構造物の表面の硬さの尺度を判定する基準は、表面上の点の法線ベクトルの分布である。構造物の表面の硬さの尺度を判定する別の基準は、表面によって反射される光の色である。例えば、表面分類モジュール1140は、一定の色、例えば緑を、植物を示すものと認識する。したがって、表面分類モジュール1140はこのような色を有する表面を、樹木または任意の種類の植物などの軟質の表面である可能性が高いと関連付ける。表面分類モジュール1140が使用する別の基準は、表面によって返されるレーザ信号の強度である。表面分類モジュール1140は、表面によって返されるより高い強度の信号を、硬質の表面の指標として関連付ける。一実施形態において、ある点またはある表面に関連する様々な特徴を特徴ベクトルとして抽出し、機械学習ベースのモデルに提供して、表面の硬さのレベルを示すスコアを判定する。一実施形態において、機械学習ベースのモデルは、表面を硬質表面または軟質表面として分類する分類子である。一実施形態において、機械学習ベースのモデルは、車両のセンサが取得する表面を記述するラベル付きサンプルを使用して訓練される。信頼度の尺度を判定するさらなる詳細は、
図28、
図24および
図26に関連して以下詳しく説明する。
【0146】
表面分類モジュール1140は、各データ点の信頼度の尺度に基づいてデータ点を重み付けすることによって、反復最接近点(iterative closest point : ICP)手法に基づいて第1の3D表現を第2の3D表現にマッピングするための変換Tを決定する(2730)。HDマップシステム100は、変換Tを使用して第1の3D表現R1を第2の3D表現R2と組み合わせることによって、地理的領域の高精度地図を決定する(2740)。HDマップシステム100は高精度地図を格納する。HDマップシステム100は、自律走行車の運転で使用するための高精度地図を使用する。
【0147】
図27に説明されるプロセスは、ヒューリスティック(heuristic)に基づくものであり、構造物の実際の硬さを計測しなくてもよい。例えば、樹木の硬い像は、それが堅くて動かすことができないとしても、軟質表面として分類されるであろう。しかし、この手法は、軟質表面によく似た像または堅い構造物に出会う可能性が低いために、実際には正確な結果を提供する。したがって、統計的に、実際に出会うほとんどの構造物および物体の結果は正確である。
【0148】
図28は、一実施形態による、ペアワイズ位置合わせで使用するために、表面に沿った点の信頼度の尺度を判定するプロセスを示す。表面分類モジュール1140は構造物の表面上の点を特定する。表面分類モジュール1140は、その点に対応する表面で法線を決定する。表面分類モジュール1140は、表面の近傍点の法線の分布の尺度を判定する。分布の尺度は統計的尺度、例えば、分散または標準偏差としてもよい。表面分類モジュール1140は、表面の近傍点の法線の分布の尺度に反比例する値として、表面の点の信頼度の尺度を判定する。したがって、表面分類モジュール1140は、表面の近傍点の法線の分布が低分散の点、例えば、壁、建物等に高信頼度を示すスコアを割り当てる。同様に、表面分類モジュール1140は、表面の近傍点の法線の分布が高分散の点、例えば、樹木に、低い信頼度を示すスコアを割り当てる。
【0149】
図29は、一実施形態による、点の信頼度の尺度を判定するプロセスを示す。
図29のプロセスは、推定法線
【0150】
【数19】
を有する各点Pについて繰り返される。表面分類モジュール1140は、カウンタN=0および変数V=0を初期化する(2910)。表面分類モジュール1140は、距離画像の方形窓内の点Pの近傍の各点Piについて、ステップ2920および2930を行う。表面分類モジュール1140は、式
【0151】
【数20】
を使用して、点Piの点対平面距離diを決定する(2920)。表面分類モジュール1140はdiを閾値と比較して、距離が閾値未満かどうかを判定する。距離値diが閾値未満であると判定される場合、表面分類モジュール1140は変数Vの値にdiの二乗を加え、すなわち、V=V+d
i
2とし、Nを1ずつ、例えば、N++を行うことによって増分させる。
【0152】
表面分類モジュール1140は、分散の値をV/Nとして決定する(2940)。表面分類モジュール1140は、分散の関数として、点Pの信頼度の尺度を判定する(2950)。一実施形態において、法線ベクトルの信頼度の尺度は、σがパラメータである場合、
【0153】
【数21】
として判定される。表面分類モジュール1140は、各法線の信頼値を判定し、以下の式に示されるように、より高い重みが高い法線信頼度(normal confidence)に対応するように、信頼値を各ICPコストの重みに組み合わせる。
【0154】
【数22】
いくつかの実施形態において、法線信頼度により各対応に重み付けすることに加えて、HDマップシステムは、対応する点間の距離に基づいて対応に重み付けをすることにより、ノイズおよび外れ値に対するさらなるロバストネスを達成する。対応
【0155】
【数23】
が与えられるとすると、HDマップシステムは、以下のようにローレンツ関数による対応する点対平面誤差により、対応に重み付けをする。
【0156】
【数24】
ローレンツ関数は、誤った対応にペナルティを与えることにより、結果をロバストにするのに役立つ。いくつかの実施形態において、表面分類モジュール1140は、各対応の最終的な重みとして、ローレンツの重みを法線信頼度に掛ける。
【0157】
軟質表面は、本明細書において、ソフトスケープ表面(softscape surfaces)とも呼ばれ、硬質表面は、本明細書において、ハードスケープ表面(hardscape surfaces)と呼ばれる。表面は、硬質または軟質とすることのできる表面タイプを有する。硬質表面タイプの表面とは硬い表面、例えば、壁であり、軟質表面タイプの表面とは柔らかい表面、例えば、樹木である。
【0158】
HDマップシステムは表面分類子として信頼度尺度を使用し、ここで「ハードスケープ」表面は高信頼度を有し、「ソフトスケープ」は低信頼度を有する。HDマップシステムはこのハードスケープ/ソフトスケープ分類法を使用して、一方のスキャンのハードスケープの点を他方のスキャンのソフトスケープにマッチングするのを防ぎ、信頼度の重みを使用してこの拘束を強化する。
【0159】
HDマップシステムは、ハードスケープ表面がソフトスケープよりも位置合わせにとって通常はるかに価値があるため、ハードスケープ表面により高い信頼度を関連付ける。これは、LIDARが壁などの硬質表面をスキャンすると、鮮明でよく構造化された点の集合を返すためである。そのため、壁の2回のスキャンをマッチングすることはかなり容易である。しかし、ソフトスケープ(低木のような)をスキャンするとき、点は極めてノイズが多くなり、信号がどれくらい深くまで低木に届くか、葉がどのように向いていたかなどによって、複雑なランダム構造を有する。そのため、HDマップシステムが低木の2回のスキャンをマッチングしようとすると、HDマップシステムは法線の重みを下げて、点をただ使用するのみとすることができる。
【0160】
概して、ハードスケープをハードスケープにマッチングすると強い拘束を提供し、HDマップシステムによってより大きい重みが付けられる。ソフトスケープ(植物)対ソフトスケープは便利であるが、1回のスキャンがある葉に当たり、2回目のスキャンは別の近くの葉に当たるかもしれないため、より弱い拘束を有する。したがって、HDマップシステムは、ソフトスケープとソフトスケープとの表面マッチングには、ハードスケープとハードスケープとの表面マッチングと比べて低い重みを付ける。また、HDマップシステムはハードスケープとソフトスケープとのマッチングには、それがマッチングエラーを示すため、最小の重みを付ける。
【0161】
したがって、HDマップシステムは、点が表面タイプの一致する表面を有する場合、異なる表面タイプを有する点と比べて、対応する点により高い重み付けをすることによって、第1の3D表現を第2の3D表現にマッピングするための変換を決定する。一実施形態において、HDマップシステムは、点が硬さの尺度の一致する表面上にある場合、対応する点により高い重みを付ける。したがって、2つの表面の硬さの尺度が互いに閾値以内である場合、2つの表面は一致する硬さの尺度を有する。また、HDマップシステムは、点が硬質表面上にある場合、ともに軟質表面上にある点と比べて、対応する点により高い重みを付ける。
【0162】
位置ずれホットスポットの検出(DETECTION OF MISALIGNMENT HOTSPOTS)
HDマップシステムが大域的位置合わせを行った後、さらなる分析、例えば、人によるまたは自動化ツールを使用した品質保証が必要となりうる潜在的な位置合わせ問題が存在することがよくある。人または自動化ツールは、位置合わせデータの改善のために、入力をさらに提供することができるであろう。しかし、大きなエリアをカバーするHDマップに存在するデータ量は膨大である。その結果、例えば、人のオペレータを使用して地図全体の品質保証をすることによって、地図全体の詳細なフォローアップ分析を行うことは現実的ではない。HDマップシステムの実施形態は、位置合わせ問題のある領域を自動的に特定する自動位置ずれホットスポット検出プロセスを実施する。したがって、フォローアップ分析は、HDマップ全体ではなく、特定されたホットスポットのみに行われる。これによりHDマップを仕上げるプロセスの効率を改善するとともに、結果の品質を改善する。例えば、HDマップは、経路に沿って運転している車両に提供することができるように、閾値時間量内に仕上げる必要がある場合がある。HDマップの検証および仕上げのプロセスに非常に長い時間がかかる場合、様々な自律走行車から受信される更新によるHDマップの変更を、経路に沿って運転している他の車両に伝播することはできない。実施形態は、HDマップの検証および品質保証のプロセスをより効率的にすることができ、これにより、HDマップが様々な経路に沿って運転する後続車両に間に合うように提供されることを可能にする。
【0163】
実施形態は、例えば、人の品質保証の形態で、さらなる分析および検証から益しうる以下の状況を自動的に特定する。HDマップシステムは位置ずれホットスポット検出プロセスにより次のことを検出する:(1)道路の非平面交差:例えば、高架道路/地下道、橋等。LIDARサンプルは重複をごくわずかしかもたないため、ICPを使用して位置合わせするのは難しいが、それらを位置合わせして大域的ポーズ整合性を保証するのに、人の入力から益しうる。(2)長距離ループ閉じ込み:ICPは重複する点群がないことから上手くいかない可能性があり、そのためHDマップシステムは互いに遠く離れた(例えば、25mを超える)点群を自動的に位置合わせしない。典型的なLiDARは非常に大きな範囲(~100m)を有するため、点群はまだ重複をもつ場合がある。この場合、HDマップシステムは情報をユーザに送り、遠く離れているが、それでも重複の部分がいくらかある点群間に拘束を追加することにより、ループを手動で閉じる。(3)次のことに繋がる位置合わせ誤差:Oマップ内で位置ずれした地面、位置ずれした垂直平面壁等。
【0164】
位置ずれホットスポットを検出する全体的なプロセス
図30は、一実施形態による、位置ずれホットスポットの自動検出に基づいて、高精度地図を生成するプロセスを示す。一実施形態において、
図30に図示される様々なステップは、オンラインHDマップシステム110、例えば、大域的位置合わせモジュール460によって行われる。他の実施形態では、プロセスのステップのいくつかを、車両コンピューティングシステム120によって行ってもよい。
【0165】
HDマップシステム100は、ある地理的領域を通り抜ける複数の車両のセンサからデータを受信する(3000)。例えば、多数の車両が同じ道路を運転し、ケアに搭載されているカメラによって取得される画像、LIDARスキャンデータ等を含むセンサデータを送信することができる。HDマップシステム100は、受信したデータに基づいて、点群の位置合わせを行う(3010)。例えば、車両V1から受信したセンサデータに基づいて判定されるある地理的領域の一部分の点群は、車両V2から受信したセンサデータに基づいて判定されるその地理的領域の同じ部分の点群とはやや異なる場合がある。大域的位置合わせモジュール460は異なる点群表現の位置合わせを行って、その地理的領域の総合点群表現を生成する。したがって、大域的位置合わせモジュール460は、受信したセンサデータに基づいてその領域の三次元表現を生成する。
【0166】
位置ずれホットスポット検出モジュール1160は、地理的領域の三次元表現における位置ずれホットスポットを特定する(3030)。位置ずれホットスポットを特定する(3030)ために、ホットスポット検出モジュール1160で使用される様々な手法を、本明細書でさらに詳しく説明する。一実施形態において、HDマップシステム100は、様々な位置ずれホットスポットを強調表示する地理的領域の視覚表現を構築し(3040)、例えば、視覚表現はヒートマップチャートとしてもよい。HDマップシステム100は、クライアントデバイスのディスプレイのユーザインターフェースを介して視覚表現を提示する(3050)。一実施形態において、HDマップシステム100は、ユーザインターフェースを介して地理的領域の高精度地図の修正要求を受信する(3060)。例えば、ユーザは視覚表現を見て、ホットスポットを分析して、位置合わせに関する問題を特定し、さらに位置合わせ結果を表すデータを補正することができる。別の実施形態において、自動エージェント、例えば、エキスパートシステムが特定(3030)された位置ずれホットスポットの分析を行って、HDマップデータの修正を推奨すること、またはその地理的領域のHDマップデータの修正を自動的に行うことができる。
【0167】
一実施形態において、位置ずれホットスポット検出モジュール1160は、ループ閉じ込みデータに基づいて位置ずれを検出する。位置ずれホットスポット検出モジュール1160は、非平面交差道路および長距離ループ閉じ込みエッジ(long-range loop closing edges)を検出する。どちらの場合も、2つの任意のサンプルが与えられるとすると、位置ずれホットスポット検出モジュール1160はそれらのグラフ距離(すなわち、ポーズグラフを通ることによって判定される最短経路距離)と、それらの測地的距離(geodesic distance)、すなわち、2点間の直線距離との比率を計算する。比率が高い場合、位置ずれホットスポット検出モジュール1160は、2つの点群が重複部分を有するが、ループ閉じ込みペアワイズ変換をもたない可能性が高いと判定する。したがって、位置ずれホットスポット検出モジュール1160は、これらの部分を位置ずれホットスポットとして示す。
【0168】
別の実施形態において、位置ずれホットスポット検出モジュール1160は、地理的領域の三次元表現で位置ずれしている地面を検出する。完璧に位置合わせされている地面は一層のノードであるはずであるが、実際、大域的位置合わせモジュール400によって判定された、位置合わせされている地面のノードは、非ゼロ値を有する厚さを有する。位置ずれホットスポット検出モジュール1160は、厚い層の地面ノードが不良位置合わせを示すのに対し、薄い層が良好な位置合わせを示すと判定する。したがって、位置ずれホットスポット検出モジュール1160は、地理的領域の一部分内の地面を表す層の厚さに直接関係する値として、位置ずれの可能性を判定する。
【0169】
図31は、一実施形態による、点群に表される表面の位置ずれの検出プロセスを示す。
図31に図示されるプロセスは、
図30に図示されるステップ3030の一実施形態である。位置ずれホットスポット検出モジュール1160は、ある地理的領域の三次元表現、例えば、点群表現内の表面を特定する(3100)。例えば、表面は地面または壁を表す場合がある。位置ずれホットスポット検出モジュール1160は、特定された表面の法線を決定する(3110)。位置ずれホットスポット検出モジュール1160は、点群表現内に、法線方向および法線の反対方向に沿ってデータ点を特定する(3120)。位置ずれホットスポット検出モジュール1160は特定された表面を表しそうな点のクラスタを選択する(3130)、例えば、位置ずれホットスポット検出モジュール1160は、特定されたデータ点をクラスタリングし、特定された表面に近接した最近傍点を表すクラスタを選択してもよい。
【0170】
一実施形態において、位置ずれホットスポット検出モジュール1160は、特定された表面に最も近接している、特定されたデータ点から始める。位置ずれホットスポット検出モジュール1160は、データ点の集合を、データ点がその集合内の少なくとも1つの他のデータ点の閾値距離内にあれば、データ点をその集合に加えることによって構築する。選択されたデータ点の集合に最も近いデータ点が閾値距離を超える場合、位置ずれホットスポット検出モジュール1160。
【0171】
位置ずれホットスポット検出モジュール1160は、表面を表すために判定された法線に沿って選択されたデータ点間の最大距離を決定する(3140)。位置ずれホットスポット検出モジュール1160は、表面に沿ったある特定のデータ点での位置ずれの尺度を、表面上のその特定のデータ点に対応する法線に沿って選択されたデータ点間の判定(3140)された最大距離に直接関係するかまたは正比例する値として判定する(QX50)。
【0172】
図32は、一実施形態による、点群に表される地面の位置ずれの検出を示す。Oマップ構築プロセスにおいて、HDマップシステムは、補間された地面の点を垂直列の一時メモリ記憶装置にインジェストする(ingests)。HDマップシステムがすべての地面の点をインジェストすると、その垂直列のz座標値のすべてに基づいて平均高さ値(Z軸に沿った)が計算される。位置ずれホットスポット検出モジュール1160は平均z値を判定し、垂直列内のz座標の最大値(max_z)とz座標の最小値(min_z)との差として、地面表現の厚さを決定する。位置ずれホットスポット検出モジュール1160は、位置ずれの指標として、垂直列に沿った地面の厚さの尺度を使用する。したがって、位置ずれホットスポット検出モジュール1160は、max_z値とmin_z値との差に正比例する(または直接関係する)値として、位置ずれの可能性を表すスコアを判定する。一実施形態において、位置ずれホットスポット検出モジュール1160は、位置ずれの可能性を表すために1バイト(0~255)を使用し、0は完璧に位置合わせされている地面を表し、255は差(max_z,min_z)>=50cmを表す。例えば、ノードz値のリストが[12,13,14,16]になれば、ノードzの平均は14(14にほぼ等しい13.75)であり、差(max_z,min_z)=4である。各ノードは約5センチメートルであり、そのためメートル値に変換すると、差は20センチメートルである。位置ずれホットスポット検出モジュール1160は、1バイト値を(255*20/50.0)=100(およそ)として判定する。
【0173】
図33は、一実施形態による、点群に表される地表面の位置ずれの検出プロセスを示す。
図31に図示されるプロセスは、
図30に図示されるステップ3030の一実施形態である。位置ずれホットスポット検出モジュール1160は、ある領域の三次元表現内の地表面の一部分を表すノードを特定する(3300)。位置ずれホットスポット検出モジュール1160は、ノードに対応する複数のデータ点を、三次元表現内の垂直列にマッピングする(3310)。地表面の法線は、垂直方向、すなわちZ軸と仮定する。垂直列は、z座標値を変えることにより、同じxおよびy座標値を有するデータ点を備える。位置ずれホットスポット検出モジュール1160は、複数のデータ点の中で、最大z座標値および最小z座標値を決定する(3320)。位置ずれホットスポット検出モジュール1160は、最大z座標値と最小z座標値との差に比例する値に基づいて、地面のその部分の位置ずれの尺度を判定する(3330)。
【0174】
図34は、一実施形態による、点群で表される垂直表面の位置ずれの検出プロセスを示す。
図34に図示されるプロセスは、
図30に図示されるステップ3030の一実施形態である。位置ずれホットスポット検出モジュール1160は、ある地理的領域の三次元表現内に非地面ノードを特定する(3400)。位置ずれホットスポット検出モジュール1160は、垂直平面表面を表すデータ点を特定する(3410)。一実施形態において、位置ずれホットスポット検出モジュール1160は、垂直平面表面を表すデータ点を特定する(3410)ために、平面セグメンテーション手法を使用する。
【0175】
位置ずれホットスポット検出モジュール1160は、垂直表面の各ノードまたは垂直表面のノードの少なくとも部分集合について、以下のステップ3420、3430、3440および3450を繰り返す。位置ずれホットスポット検出モジュール1160は、垂直表面の法線を特定する(3420)。法線は水平面のベクトルを表す。位置ずれホットスポット検出モジュール1160は法線方向および法線の反対方向に沿ってデータ点を特定した。位置ずれホットスポット検出モジュール1160は、垂直表面に近接している同じz座標値を有するデータ点のクラスタを選択する。位置ずれホットスポット検出モジュール1160は、クラスタ内で最も遠い点間の距離に比例する値として、ノードの位置ずれの尺度を判定する(3450)。
【0176】
位置ずれホットスポット検出モジュール1160は、ノードの各垂直列について、位置ずれの平均尺度をさらに判定する。位置ずれホットスポット検出モジュール1160はその結果を2Dヒートマップ画像に変換するので、各画像画素はある垂直列の位置ずれの平均確率を表す。
【0177】
図35は、一実施形態による、点群に表される壁などの垂直構造物の位置ずれの検出を例示する実施例を示す。地面の位置合わせと同様、位置ずれホットスポット検出モジュール1160は壁を薄い垂直平面層として扱う。しかし、位置ずれが二重の厚い壁の層を生じさせることがある。位置ずれホットスポット検出モジュール1160は、位置ずれしている壁または位置ずれしている任意の垂直表面内の部分を特定する。HDマップシステムは、各ノードの中心を点と考えることによって、構築されたOマップを点群として扱う。位置ずれホットスポット検出モジュール1160は、非地面ノードが垂直表面を表すため、非地面ノードを取得する。位置ずれホットスポット検出モジュール1160は、平面表面を得るために平面セグメンテーションアルゴリズム、例えば、サブウィンドウベース領域拡張(SBRG : sub-window-based region growing)アルゴリズムを使用する。点群がOマップから変換されるため、1つまたは複数(例えば、全部)の一時的な障害物点(例えば、車)は含まれない。位置ずれホットスポット検出モジュール1160はセグメント化された点を壁または垂直表面としてマークする。
【0178】
一実施形態によると、位置ずれホットスポット検出モジュール1160は以下のステップを行う。以下の説明において、地理的領域の三次元表現内の点をノードという。位置ずれホットスポット検出モジュール1160はすべての壁ノードを未知とマークする。
【0179】
位置ずれホットスポット検出モジュール1160は、各未知壁ノードについて、以下のステップを行う。位置ずれホットスポット検出モジュール1160はノードの法線を得る。法線方向および逆方向に沿って、位置ずれホットスポット検出モジュール1160は同じzレベルで最小x座標(min_x)、最大x座標(max_x)、最小y座標(min_y)および最大y座標(max_y)を見つける。見つけられたノードの法線は、処理されている現在の壁ノードの法線に一致するはずである。この目的は、壁ノードの反対側(the other side)を選択することではない。一実施形態において、位置ずれホットスポット検出モジュール1160は、すべての壁ノードのKDツリーを構築する。位置ずれホットスポット検出モジュール1160は、処理されている現在の壁ノードについて、閾値距離(例えば、1メートル)内のすべての壁ノードを探索する。位置ずれホットスポット検出モジュール1160は、壁ノードの最近傍点を特定する。ホットスポット検出モジュール1160は、一定の基準に基づき、点のうちのいくつかを排除(またはスキップ)する。位置ずれホットスポット検出モジュール1160は、ノードz座標が異なる場合に、点を排除する。位置ずれホットスポット検出モジュール1160は、現在のノードの法線と近傍ノードの法線との角度が閾値よりも大きい場合に、点を排除する。位置ずれホットスポット検出モジュール1160は、近傍ノードから現在のノードまでのベクトル方向が現在のノードの法線に平行ではない場合に、点を排除する。位置ずれホットスポット検出モジュール1160は、必要と見なされる場合、min_x値、max_x値、min_y値およびmax_y値を更新する。位置ずれホットスポット検出モジュール1160は最近傍ノードを済みとしてマークする。
【0180】
位置ずれホットスポット検出モジュール1160は、min_x、max_x、min_yおよびmax_yを使用して、位置ずれの厚さを示す距離を計算する。例えば、min_x=2、max_x=5、min_y=10、max_y=20の結果は10.4の距離になり、これはほぼ52(10.4*5cm)センチメートルに等しい。地面の位置ずれ確率値と同様に、一実施形態において、HDマップシステムは値を表すために1バイトを使用する。HDマップシステムは、すべてのこれらのノードについて、ある場合において再び計算する必要がないように、未知から済みとマークすることができる。
【0181】
すべての壁ノードが済んだら、位置ずれホットスポット検出モジュール1160は、各垂直列について、この垂直列内のすべての壁ノードの平均位置ずれ確率を判定し、その値をその垂直列に割り当てる。位置ずれ確率の平均を判定するために、位置ずれホットスポット検出モジュール1160は同じ垂直列内のすべての壁ノード位置ずれ確率を足す。位置ずれホットスポット検出モジュール1160は得られた値をその垂直列内の壁ノードの数で割って、平均位置ずれ確率を得る。
【0182】
一実施形態において、位置ずれホットスポット検出モジュール1160は、垂直列確率または地面位置ずれ確率をヒートマップとして2D画像としてエクスポートする。例えば、位置ずれホットスポット検出モジュール1160は、位置ずれの高確率を赤色に、十分に位置合わせされているx、y位置を緑色に色付けすることができる。HDマップシステムは生成されたヒートマップをユーザに提供して、ユーザがOマップを目視点検して、位置ずれの高確率を有するとして特定されたエリアに注目することができるようにする。
【0183】
生成されたヒートマップは、以下に説明する方法を使用することによって、ホットスポット位置情報を生成するためにも使用することができる。このプロセスは、地面位置ずれ確率および壁位置ずれ確率の両方のヒートマップに適用される。2Dヒートマップが生成されると、HDマップシステムは、n×n移動窓(例えば、n=5)を使用して、そこからホットスポット位置情報を決定する。100より大きい(位置ずれが約20cmであることを意味する。255*20cm/50cm=102)画素値が50%を超える場合(n=5のとき、実際の数字は13であり、25*0.5=12.5)、ホットスポットの緯度/経度が出力にエクスポートされる。このように、最終結果がホットスポット緯度/経度位置情報のリストとなり、これがレビューツールに提供されるので、オペレータがこれらの位置情報のデータをレビューして、位置合わせを手動でチェックすることが可能になる。
【0184】
別の実施形態によると、ホットスポットは、クラスタ直径の拘束をほぼ10cm(すなわち、位置合わせサンプリングの規模と同様な値)に維持しながら、近傍のクラスタを併合するクラスタリングアルゴリズムを使用して、100より大きい画素値をクラスタリングすることによって特定される。HDマップシステムは各クラスタについてホットスポットを生成し、それをレビューツールにエクスポートする。
【0185】
境界グラフに基づく分散実行
以下は、本明細書において、ポーズグラフに関して使用される表記である。
【0186】
【表1】
いくつかの実施形態において、HDマップシステムは、自動運転車のフリート(fleet)からのセンサデータを融合する(fusing)ことにより、HDマップを構築することができる。HDマップの生成の一部として、HDマップシステムは、任意の所定のタイムスタンプにおける、フリートの1つまたは複数の車両の各々について、大域的ポーズを推定することができる。いくつかの実施形態において、HDマップシステムは、車両の1つまたは複数のセンサがそれぞれのトラック情報を取得している時に、フリートの車両の全部の大域的ポーズを推定することができる。
【0187】
HDマップシステムはポーズグラフ最適化により大域的ポーズを推定することができ、そこで各ノードが特定のタイムスタンプにおけるそれぞれの車両の6Dポーズ(x,y,z座標を使用して表される並進およびロール、ピッチ、ヨーを使用して表される回転を使用して表される)を表し、各エッジは2つのノード間、またはノードと何か既知の特徴とのペアワイズ変換関係を表し、不確かさは6×6共分散行列として符号化する。一実施形態において、エッジは互いに閾値距離内にあるペアのノード間で表される。
【0188】
例えば、ポーズグラフG=(V,E)が与えられるとすると、この式において、各ノードui∈Vが特定のタイムスタンプ(xi)における車両のポーズを表し、各エッジe∈Eがノードuとその近傍の1つとのペアワイズ変換(
【0189】
【0190】
【数26】
がノード(u
i,u
j)間の推定ペアワイズ変換で、Ω
ijが情報行列と呼ばれる重み付け行列であり、これはペアワイズ推定の共分散行列の逆関数である。
【0191】
ポーズグラフ最適化は以下の式を使用して表すことができる。
【0192】
【数27】
上記式において、x
iは特定のタイムスタンプにおける車両のポーズである。
【0193】
【数28】
は大域的ポーズから計算される、ノードiとノードjとの間のペアワイズ変換である。
【0194】
【数29】
は大域的ポーズから計算したペアワイズ変換を、ペアワイズレジストレーションアルゴリズム、例えば、反復最接近点から計算したものと比べた差である。
【0195】
【数30】
は大域的ポーズと情報行列Ω
ij(共分散行列の逆行列としても知られる)によって重み付けされるペアワイズ推定との不整合によるエッジe
ijからの誤差項である。ペアワイズ推定の信頼性が高いほど、Ω
ijが「大きく」なり、そのため、誤差項が高くなるであろう。
【0196】
x
i
はノードxiに追加される大域的GPSポーズ先行である。
【0197】
【数31】
は現在のポーズx
iとそのポーズ先行
x
i
とのポーズの差である。
【0198】
Ωiiは大域的ポーズ先行の強さ、または信頼度である。
大規模なマッピングの場合、車両ポーズの数が非常に大きくなる可能性がある。そのため、最適化するポーズグラフは極めて大きく、例えば、数十億個のエッジをもつ数千万個のノードとなる可能性がある。このように、非常に大きいポーズグラフをすべてまとめて最適化することは、非現実的であるか、または難しい場合がある。例えば、1台のプロセッサマシンを使用して大きなポーズグラフを最適化するには、処理するノード数を考えると、多量の時間がかかりうる。
【0199】
したがって、本開示の1つまたは複数の実施形態は、任意に大きなポーズグラフの最適化を扱う分散型のスケーラブルな最適化フレームワークを使用することを含むことができる。ポーズグラフ最適化の分散性は、多数のプロセッサマシンによるポーズグラフの並列処理を可能にし、大きなポーズグラフの最適化に関して効率および速度を高めることを可能にする。システムは、位置ずれを特定すること、および地図の更新手順を実行することなど、他の動作も行ってもよい。
【0200】
分散型サブグラフ最適化
分散型ポーズグラフ最適化は、分割統治法戦略(divide-and-conquer strategy)を使用することができる。オリジナルのポーズグラフ(これは比較的大きくてもよい)を与えられるとすると、HDマップシステムはオリジナルのポーズグラフをサブグラフの集合に細分し、オリジナルポーズグラフの収束に到達するまで、(例えば、上記説明したポーズグラフ最適化式を使用して)ポーズサブグラフに関する最適化動作を繰り返し行う。最適化動作の反復でノードポーズになされる変化の各々が閾値量未満になることに応答して、収束に到達したと判定することができる。本開示では、任意のタイプのポーズグラフ(例えば、フルポーズグラフまたはポーズグラフの任意のサブグラフ)「の最適化」または「を最適化する」とは、収束のターゲットレベルが満たされるまで、最適化手順を行うことといえる。そのため、「グラフの最適化」、「グラフを最適化する」、または「最適化されたグラフ」とは、グラフができる限り「最適化される」ことを意味するのではなく、最適化の閾値レベルまで「最適化される」ことを意味し、これは収束の閾値レベルに基づいていてもよい。また、「オリジナルのポーズグラフ」とは、ポーズグラフ全体とポーズグラフ全体の細分化された部分(例えば、以下に説明されるサブグラフ)とを区別することのみが意図される。そのため、「オリジナルの」という用語は単にポーズグラフ全体を示すことが意図され、ポーズグラフが細分化動作などの任意の種類の動作を受けていないことを意味するのではない。
【0201】
オリジナルのポーズグラフは、いくつかの実施形態において、データ構造として恒久的記憶装置に格納しなくてもよい。例えば、いくつかの実施形態において、サブグラフは、すでに格納されているポーズグラフからではなく、直接車両センサデータから構築してもよい。例えば、ポーズグラフに対応する車両の互いに対する地理的位置情報を使用して、それぞれのサブグラフ内の対応するノードの配置を判定することができる。
【0202】
ポーズサブグラフ
いくつかの実施形態において、HDマップシステムは、オリジナルの大規模なポーズグラフをポーズサブグラフの集合に分割することができる。ポーズグラフをより小さなポーズサブグラフに分割する方法はたくさんあるが、全体的なプロセスは細分化方法とは独立している。例示的な細分化方法は、地理空間バウンディングボックスにより分割すること、グラフカットにより分割すること、例えば、主要幹線道路に沿ってグラフを切断すること等を含むことができる。異なるグラフ細分化方法は異なる収束率をもつかもしれないが、様々な実施形態によって使用される最適化戦略は同じ働きをする。
【0203】
一実施形態によると、HDマップシステムは局所セクタバウンディングボックス(local sector bounding box)によって細分化を行う。局所セクタは、一定のズームレベルで、方形の緯度/経度ボックスを表す。HDマップシステムは各ノードの生GPS座標を使用して、それがどのポーズサブグラフに属しているかを判定し、それによってサブグラフ分割の整合性を保証する。各ポーズサブグラフについて、そのバウンディングボックスの中にあるノードは内部ノードと呼ばれる。さらに、内部ノードはオリジナルのポーズグラフ内の内部ノードグループ外の他のノードとのエッジを有するため、HDマップシステムは、内部ノードと連結しているエッジを有するが、境界ノードとしてポーズサブグラフの内部ノードの集合内にないノードを特定する。そのため、いくつかの実施形態において、どの分割手法を使用するかの選択は、ターゲット収束率および/または手法の簡便さに基づいてもよい。例えば、ターゲット収束率の優先度が簡便さよりも低くてよい場合には、比較的単純な手法を使用してもよく、分割を行うために使用される処理量を低減しうる。
【0204】
図36は、一実施形態による、例示的なポーズサブグラフ3600のノードのタイプを示す。方形3610は局所セクタを表す。この実施例において、ポーズサブグラフ3600は、(1)対応する局所セクタ3610のバウンディングボックスの中にGPS座標をもつノードを備える内部ノード3620と、(2)局所セクタ3610のバウンディングボックス外にGPS座標をもつが、オリジナルのポーズグラフ内の内部ノード3620に連結しているエッジを有するノードでありうる、境界ノード3630とを含むことができる。
【0205】
図37は、一実施形態による、地理的領域、例えば、局所セクタからの例示的なポーズサブグラフを示す。
境界グラフ(Boundary Graph)
ポーズサブグラフに加えて、HDマップシステムは境界グラフを特定することができる。以下さらに詳細に述べるように、収束率の改善により、境界グラフの特定および使用が、オリジナルのポーズグラフの全体的な最適化を可能にする。
【0206】
境界グラフは複数のポーズサブグラフの境界条件を取得して示すことができる。例えば、複数のサブグラフの全部のサブグラフ境界ノードの和集合をシード(SEED)として考えると、対応する境界グラフの内部ノードは、シードから離れたエッジの数より少ない、オリジナルポーズグラフG内のノードの集合となりうる。エッジの数は、#buffer_edgesと呼ばれるバッファパラメータとして定義してもよい。バッファエッジの数は、ターゲット収束率および最適化時間に基づいてもよい。例えば、ある特定の境界サブグラフの最適化時間および処理は、エッジの数が増えるほど多くなりうるが、ポーズグラフの全体的な収束率も高くなりうる。
【0207】
図38は、一実施形態による、例示的な境界グラフ3800の成分を示す。
図38では、一実施例として#buffer_edges=2を使用すると、2つのノード3820aおよび3820b(大きい方の円として表される)は2つの別々のポーズサブグラフの境界ノードとすることができ、シードとして使用することができる。得られる境界グラフ3800の内部ノードは、シードから離れた多くて2つの#buffer_edgesである、オリジナルのポーズグラフ内のノードとなりうる(例えば、ノード3820aおよび3820b)。
【0208】
この#buffer_edgesがなぜ便利となりうるかの詳しい説明を、本明細書で詳しく説明する。上記説明した、境界ノードと内部ノードとの関係に関連する「境界条件(boundary conditions)」を有するサブグラフと同様に、境界グラフも「境界条件」を有し、これは境界グラフ内部ノードとのエッジを有するが、境界グラフ内部ノードの集合内にないノードの和集合となりうる。
【0209】
要約すると、境界グラフは次のものを含むことができる:(1)内部ノード:シードとしてすべてのサブグラフ境界ノードの和集合から始めて、任意のシードノードから離れた#buffer_edges内にあるすべてのノード、(2)境界ノード:オリジナルポーズグラフ内の、内部ノードとのエッジを有するが、内部ノード集合内にないノード。
【0210】
境界サブグラフ
いくつかの実施形態において、境界グラフは多数の境界サブグラフに分割することができる。境界サブグラフはオリジナルのポーズグラフのサブグラフと考えられるので、それを「ポーズサブグラフ」と考えることができる。しかし、本開示において、説明および上記説明したサブグラフと境界サブグラフとの区別をしやすくするのを助けるために、上記「ポーズサブグラフ」のセクションで説明したオリジナルのポーズグラフの分割の結果であるサブグラフに関しては、「ポーズサブグラフ」という用語を使用し、境界グラフのサブグラフでありうるサブグラフに関しては「境界サブグラフ」という用語を使用する。また、「サブグラフ」という総称は、ポーズサブグラフおよび/または境界サブグラフを含む場合がある。
【0211】
ポーズグラフを細分化する、例えば、サブグラフバウンディングボックスとして局所セクタを使用する、所定の方法について、対応する構造化された境界グラフがディスジョイントであり得る複数の境界サブグラフを有することができるように、#buffer_edgesは比較的小さくしてもよい。これは、おそらく、実際の道路網のカットをこのプロセスによって構築でき、道路が長距離にわたって1つの局所セクタ境界を走る可能性は低いからである。
【0212】
図39は、一実施形態による、境界サブグラフを示す。
境界グラフのこのディスジョイントの性質(disjointed nature)は、HDマップシステムが、境界グラフの各連結成分を境界サブグラフにするだけで、境界グラフを複数の境界サブグラフに分割することを可能にする。いくつかの実施形態において、他のサブグラフに関して行われる最適化動作と連動して、境界サブグラフに関する最適化動作を行うことができる。
【0213】
最適化手順
いくつかの実施形態において、ポーズグラフの最適化は、以下のような1つまたは複数の動作を含むことができる:
●ベクトルのポーズグラフのすべてのノードポーズ(all node poses of the pose graph in a vector):all_node_posesを記憶し、
●収束するまでループする
○ポーズサブグラフの内部ノードポーズを、互いに並列で、その境界ノードを固定して、最適化する
○境界サブグラフの内部ノードを、互いに並列で、その境界ノードを固定して、最適化する
○収束をチェックする
・すべてのノードポーズの変化が閾値よりも小さい場合、収束に到達する。
【0214】
上記動作の詳しい考察は、
図42の方法4200に関して以下提示する。
最適化プロセスは、分散型システム、例えば、マップリデュースフレームワーク(map-reduce framework)に上手く結びつけることができる。適切な量の計算資源および記憶資源があれば、この最適化フレームワークを使用して、任意のサイズのポーズグラフを最適化することができる。
【0215】
いくつかの実施形態において、最適化プロセスは境界グラフ(および対応する境界サブグラフ)に基づいていなくてもよく、またはそれを使用しなくてもよい。例えば、境界グラフに基づいていないプロセスは、以下のような1つまたは複数の動作を含むことができる。
【0216】
1.各ポーズサブグラフの境界ノードを固定し、それを独立して最適化する
2.すべてのノードポーズを更新し、収束を期待する
上記示したように、境界グラフおよびその対応する境界サブグラフの使用は最適化プロセスを改善しうる。例えば、境界グラフ(および対応するサブグラフ)の使用を省いた最適化プロセスは、プロセスの収束を妨げうる問題、または収束の遅れを引き起こしうる問題を有する場合がある。
【0217】
例えば、このプロセスに関する第1の問題は、ポーズインターロック(pose interlocking)と呼ばれることがある。
図40Aは、一実施形態による、ポーズインターロックの問題の実施例を示す。
図40Aはポーズサブグラフ1およびポーズサブグラフ2を含む。さらに、
図40Aは第1ノード4002および第2ノード4004を含む。第1ノード4002はポーズサブグラフ1の内部ノードとしてもよく、ポーズサブグラフ2の境界ノードとしてもよい。逆に、第2ノード4004はポーズサブグラフ2の内部ノードとしてもよく、ポーズサブグラフ1の境界ノードとしてもよい。
【0218】
ポーズサブグラフ1の最適化中、第2ノード4004のポーズは、第2ノード4004がポーズサブグラフ1の境界ノードでありうるため、固定されうる。しかし、第2ノード4004はポーズサブグラフ2の内部ノードでもありうる。そのため、第2ノード4004のポーズの固定が、ポーズサブグラフ2の内部ノードのポーズを変えるのを許さない場合がある。第1ノード4002がポーズサブグラフ2の境界ノードであるが、ポーズサブグラフ1の内部ノードでもありうるとすると、第1ノード4002に関しても同じ状況が起こりうる。その結果、ポーズインターロックは、異なるポーズサブグラフに関して内部ノードおよび境界ノードの両方でありうる任意のノードの更新を妨げるおそれがあり、ポーズサブグラフ最適化が収束しないおそれがあるか、または収束するのが遅くなりうることを意味する。
【0219】
境界サブグラフの使用は、異なるポーズサブグラフに関して内部ノードおよび境界ノードの両方でありうるポーズサブグラフのノードが、異なる境界サブグラフに関しては両方にならないようにすることができる。そのため、境界サブグラフおよびポーズサブグラフの最適化を一緒に行うことは、ポーズインターロック問題を避けるのに役立ち、オリジナルのポーズグラフの収束の迅速化につながりうる。
【0220】
一実施形態によると、HDマップシステムは#buffer_edgesバッファエッジを加えることができる。境界グラフを構造化するときにバッファエッジを加える利点は、収束までの最適化全体をスピードアップすることでありうる。バッファリングエッジは上記説明したポーズインターロック問題も打開しうる。例えば、
図40Bに図示するように、バッファエッジはポーズサブグラフ最適化と境界グラフ最適化とを分離して、境界ノードが大域的最適化ポーズに向かって小刻みに動くのを可能にする。
【0221】
境界グラフを使用しない最適化の別の問題は、サブグラフ間の通信(communication)が制限されることであり、これは遅い収束に繋がりうる。いくつかの実施形態において、制限される通信は、情報が直接隣り合うサブグラフ間にのみ流れるという問題を引き起こしうる。
【0222】
図41は、一実施形態による、遅い収束に繋がる制限された通信の問題を示す。
図41は、ポーズサブグラフ1、ポーズサブグラフ2、ポーズサブグラフ3およびポーズサブグラフ4を含む。
図41は、ポーズサブグラフ1の境界ノードとしてもよいノード4020a、4020b、4020cと、ポーズサブグラフ1の内部ノードとしてもよいノード4030a、4030b、および4030cも含む。
【0223】
図41の実施例に図示されるように、システムはその境界ノードが固定された状態で各サブグラフを最適化するため、サブグラフ1の3つの境界ノード4020a、4020b、4020cは互いに強固な通信をもたない場合がある。例えば、多数のノードが不整合を有しうる場合、サブグラフ1の境界ノードとして作用するノード4020a、4020b、4020c間の関係に関する拘束(constraints)が固定されているため、対応する矛盾は少しずつしか解決されないおそれがある。そのため、ノード4020a、4020bおよび4020c間の情報の流れはサブグラフ1のノード4030a、4030b、4030cを通りうるため、コンセンサス(consensus)に達するには多くの反復が必要でありうる。サブグラフ1の境界ノードとして作用する3つのノード4020a、4020b、4020cが直接的なコンセンサスに達するのは困難であるため、このことは遅い収束となりうる。反対に、境界グラフに基づく実施形態は、すべてのサブグラフ境界ノードを境界グラフ内部ノードとして扱うことができ、これを境界グラフの最適化中に一緒に最適化してもよい。その結果、はるかに早く収束に到達することができる。例えば、
図41はノード4020a、4020bおよび4020cが内部ノードでありうる例示的な境界サブグラフ4040を示す。
【0224】
図42は、本開示に説明される少なくとも1つの実施形態による、レプリカ交換プロセス(replica exchange process)中に温度(temperature)を調整する例示的な方法4200のフローチャートを示す。方法4200は任意の適切なシステム、装置、またはデバイスで行ってもよい。例えば、
図1のHDマップシステム100の1つまたは複数の要素を、方法4200の動作の1つまたは複数を行うように構成することができる。加えて、または代わりに、
図43のコンピュータシステム4300を、方法4200に関連する動作の1つまたは複数を行うように構成することができる。個別のブロックで描いているが、方法4200のブロックの1つまたは複数に関連するステップおよび動作は、特定の実施態様に応じて、追加のブロックに分割しても、より少ないブロックにまとめてもよく、または省いてもよい。
【0225】
方法4200は、ブロック4202から始めてもよく、ここではポーズグラフが取得されうる。ポーズグラフは多数のノードを含んでもよく、ポーズグラフの各ノードが多数の車両の対応する車両のそれぞれのポーズを表す。それぞれのポーズは、各々、対応する車両の地理的位置情報と、対応する車両の向きとを含むことができる。加えて、または代わりに、それぞれのポーズは、各々、対応する車両の1つまたは複数のセンサが、HDマップを生成するために使用しうるそれぞれの地図情報を取得する時点に対応してもよい。ポーズグラフは、上記説明したものなどの任意の適切な技術を使用して取得することができる。
【0226】
ブロック4204で、ポーズグラフは、上記説明したような、多数のポーズサブグラフに分割されうる。各ポーズサブグラフは1つまたは複数のそれぞれのポーズサブグラフ内部ノードを含むことができるとともに、1つまたは複数のそれぞれのポーズサブグラフ境界ノードを含むことができる。
【0227】
ブロック4206で、1つまたは複数の境界サブグラフが取得されうる。いくつかの実施形態において、1つまたは複数の境界サブグラフは、ポーズサブグラフ境界ノードに基づいて生成されることができる。例えば、1つまたは複数の境界サブグラフの各々は、1つまたは複数のそれぞれの境界サブグラフ境界ノードを含むことができるとともに、1つまたは複数のそれぞれの境界サブグラフ内部ノードを含むことができる。いくつかの実施形態において、それぞれの境界サブグラフの1つまたは複数のそれぞれの境界サブグラフ内部ノードは、上記説明したようなそれぞれのポーズサブグラフ境界ノードとすることができる。
【0228】
例えば、1つまたは複数の境界サブグラフのそれぞれの境界サブグラフを取得することは、複数のポーズサブグラフの第1ポーズサブグラフの第1境界ノードをそれぞれの境界サブグラフの第1内部ノードとして特定することを含むことができる。それぞれの境界サブグラフを取得することは、複数のポーズサブグラフの第2ポーズサブグラフの第2境界ノードをそれぞれの境界サブグラフの第2内部ノードとして特定することをさらに含むことができる。それぞれの境界サブグラフを取得することは、第1境界ノードがそれぞれの境界サブグラフの第1内部ノードから離れたある特定の数のエッジ(例えば、バッファエッジ)であることに基づいて、それぞれの境界サブグラフの第1境界ノードを特定することを含むこともできる。また、それぞれの境界サブグラフを取得することは、第2境界ノードがそれぞれの境界サブグラフの第2内部ノードから離れた特定の数のエッジであることに基づいて、それぞれの境界サブグラフの第2境界ノードを特定することを含むことができる。
【0229】
ブロック4208で、最適化されたポーズグラフを、ポーズグラフ最適化を行って取得しうる。ポーズグラフ最適化は、ポーズサブグラフおよび境界サブグラフに関して行われる最適化動作に基づいてもよく、ブロック4210およびブロック4212を含むことができる。
【0230】
ブロック4210で、ポーズサブグラフ最適化をポーズサブグラフに関して行いうる。ポーズサブグラフ最適化は、それぞれのポーズサブグラフ境界ノードの境界ノードポーズを固定したままで、それぞれのポーズサブグラフ内部ノードの内部ノードポーズを調整することを含むことができる。いくつかの実施形態において、ポーズサブグラフ最適化は、上記説明したような、任意の適切なポーズグラフ最適化技術を使用して行うことができる。加えて、または代わりに、ポーズサブグラフ最適化は、多数のポーズサブグラフと並列で行われてもよい。例えば、ポーズサブグラフ最適化は2つ以上のポーズサブグラフに関して同時に行うことができる。いくつかの実施形態において、ポーズサブグラフ最適化の並列処理を、多数のコンピュータシステムによって分散方式で行うことができる。
【0231】
上記説明したようにポーズグラフをサブグラフに分割することは、分散方式で並列処理を行うことを可能にし、それが1台のコンピュータシステムで最適化するには大きすぎるおそれのあるポーズグラフの最適化を可能にする。また、並列処理を行えることは、車両レベルおよび/またはクラウド内で処理を行うことを可能にする。上記示したように、並列処理を使用して大きなポーズグラフを最適化するために使用する能力が、より大きな地理的エリアに関係するHDマップの作成も可能にするように、ポーズグラフを使用してHDマップを生成することができる。
【0232】
ブロック4212で、境界サブグラフ最適化を、複数の境界サブグラフに関して行いうる。境界サブグラフ最適化は、それぞれの境界サブグラフ境界ノードの境界ノードポーズを固定したままで、それぞれの境界サブグラフ内部ノードの内部ノードポーズを調整することを含むことができる。いくつかの実施形態において、境界サブグラフ最適化は、上記説明したものなど、任意の適切なポーズグラフ最適化技術を使用して行ってもよい。加えて、または代わりに、境界サブグラフ最適化は多数の境界サブグラフに関して並列で行ってもよい。例えば、境界サブグラフ最適化は、2つ以上の境界サブグラフに関して同時に行うことができる。いくつかの実施形態において、境界サブグラフ最適化の並列処理は、多数のコンピュータシステムによって分散方式で行うことができる。
【0233】
いくつかの実施形態において、ブロック4208の動作は、ポーズグラフが収束したと判定されるまで、繰り返し行われうる。これらの実施形態または他の実施形態において、ブロック4210でポーズサブグラフの内部ノードに行われるすべての調整、およびブロック4212で境界サブグラフ内部ノードに行われるすべての調整が閾値量よりも小さいことに応答して、ポーズグラフが収束したと判定することができる。閾値量は、最適化されたポーズグラフに基づいて生成されうる得られるHDマップに関して、ターゲット収束率およびターゲット正確度レベルなどの任意の適切な考慮事項に基づいてもよい。例えば、ターゲット収束率を早くする場合、変化の閾値量を、遅いターゲット収束率の場合よりも大きくしてもよい。逆に、ターゲット正確度レベルを高くする場合、変化の閾値量を、低いターゲット正確度レベルの場合よりも小さくしてもよい。
【0234】
いくつかの実施形態において、ポーズサブグラフ最適化および境界サブグラフ最適化は、各反復について逐次行うことができる。例えば、ポーズサブグラフ最適化は、境界サブグラフ最適化を行う前に行うことができ、またはその逆にすることもできる。
【0235】
方法4200には、本開示の範囲を逸脱することなく、修正、追加または省略を行ってもよい。例えば、方法4200の動作は異なる順序で実施することができる。加えて、または代わりに、2つ以上の動作を同時に行ってもよい。また、概説される動作およびアクションは例として提供されるにすぎず、開示される実施形態の本質を損なうことなく、動作およびアクションのいくつかは任意としてもよく、より少ない動作およびアクションにまとめてもよく、または追加の動作およびアクションに拡大してもよい。
【0236】
例えば、いくつかの実施形態において、方法4200は、最適化されたポーズグラフに基づいたHDマップの生成に関わる1つまたは複数の動作を含むことができる。例えば、いくつかの実施形態において、方法4200は、上記説明したように、最適化されたポーズグラフに基づいて、複数の車両によって取得されたそれぞれの地図情報を位置合わせする(aligning)ことと、位置合わせされた地図情報を使用してHDマップを生成することとを含むことができる。
【0237】
マシンアーキテクチャの計算
図43は、1つまたは複数のマシン可読記憶媒体からの命令を読み取り、プロセッサ(またはコントローラ)でそれを実行することのできる例示的なマシンの構成要素を例示するブロック図である。具体的には、
図43は、本明細書で述べた方法論の任意の1つまたは複数をマシンに行わせるための複数の命令4324(例えば、ソフトウェア)が実行されうるコンピュータシステム4300の例示的な形態で、マシンの図表示を示す。代替実施形態において、マシンはスタンドアロンデバイスとして作動し、または他のマシンに接続(例えば、ネットワーク化)することができる。ネットワーク化された配置において、マシンは、サーバ・クライアントネットワーク環境ではサーバマシンまたはクライアントマシンの能力で、またはピア・トゥ・ピア(peer-to-peer)(または分散型)ネットワーク環境ではピアマシンとして作動することができる。
【0238】
マシンはサーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、スマートフォン、ウェブ機器、ネットワークルータ、スイッチもしくはブリッジ、またはそのマシンが取るアクションを指定する複数の命令4324(逐次またはその他)を実行することのできる任意のマシンとしてもよい。また、1台のマシンしか図示していないが、「マシン」という用語は、本明細書で述べる方法論の任意の1つまたは複数を行うために、複数の命令4324を個々にまたは連帯して実行するマシンの任意の集合体を含むとも解されるものとする。
【0239】
例示的なコンピュータシステム4300は、プロセッサ4302(例えば、中央処理装置(CPU)、グラフィクス処理装置(GPU)、デジタル信号プロセッサ(DSP)、1つもしくは複数の特定用途向け集積回路(ASIC)、1つもしくは複数の無線周波数集積回路(RFIC)、またはこれらの任意の組み合わせ)、メインメモリ4304、および静的メモリ4306を含み、これらはバス4308を介して互いに通信するように構成されている。コンピュータシステム4300は、グラフィクスディスプレイ装置4310(例えば、プラズマディスプレイパネル(PDP)、液晶ディスプレイ(LCD)、プロジェクタ、またはブラウン管(CRT))をさらに含むことができる。コンピュータシステム4300は、英数字入力デバイス4312(例えば、キーボード)、カーソル制御デバイス4314(例えば、マウス、トラックボール、ジョイスティック、モーションセンサ、または他のポインティング機器)、記憶装置4316、信号生成デバイス4318(例えば、スピーカー)、およびネットワークインターフェースデバイス4320を含むこともでき、これらもバス4308を介して通信するように構成されている。
【0240】
記憶装置4316は、本明細書に説明される方法または機能の任意の1つまたは複数を具現する複数の命令4324(例えば、ソフトウェア)が格納されるマシン可読媒体4322を含む。命令4324(例えば、ソフトウェア)は、コンピュータシステム4300がそれを実行中、完全にまたは少なくとも部分的に、メインメモリ4304内またはプロセッサ4302内(例えば、プロセッサのキャッシュメモリ内)に存在することもでき、メインメモリ4304およびプロセッサ4302はマシン可読媒体も構成する。命令4324(例えば、ソフトウェア)は、ネットワークインターフェースデバイス4320を介して、ネットワーク4326で送信または受信されてもよい。
【0241】
マシン可読媒体4322は、一例示的な実施形態において、1台の媒体であるように図示されているが、「マシン可読媒体」という用語は、命令(例えば、命令4324)を格納することのできる1台の媒体または多数の媒体(例えば、中央データベースもしくは分散化データベース、または関連するキャッシュおよびサーバ)を含むと解されるべきである。「マシン可読媒体」という用語は、マシンが実行するための命令(例えば、命令4324)を格納することが可能で、本明細書に開示される方法の1つまたは複数をマシンに行わせる任意の媒体も含むと解されるものとする。「マシン可読媒体」という用語は、ソリッドステートメモリ、光媒体および磁気媒体の形態のデータレポジトリを含むが、これだけに限定されない。
【0242】
追加構成の検討
以上の本開示の実施形態の説明は例示の目的で提示してきたが、網羅的なものであることも、または開示されるそのままの形態に本開示を制限することも意図していない。当業者は、上記開示を鑑みて、多くの修正または変型が可能であることを認識することができる。
【0243】
例えば、本明細書で説明される技術は自律走行車に適用されるが、この技術は他のアプリケーション、例えば、運転手のいる車両のためにHDマップを表示するため、携帯電話、ラップトップ、タブレット、またはディスプレイ画面をもつ任意のコンピューティングデバイスなどのクライアントデバイスのディスプレイにHDマップを表示するためにも適用することができる。本明細書に提示される技術は、コンピュータシミュレーションのための地図を、例えば、コンピュータゲーム等に表示するためにも適用することができる。
【0244】
本説明のある部分は、本開示の実施形態を情報に基づく動作のアルゴリズムおよび記号表現として記述している。これらのアルゴリズム記述および表現は、データ処理業界の当業者が、自らの仕事内容を他の当業者に効果的に伝えるために一般的に使用されるものである。これらの動作は、機能的、計算的または論理的に記述されているが、コンピュータプログラムもしくは同等の電気回路、マイクロコード、または同様な他のものによって実施されると理解される。また、一般性を損なうことなく、これらの動作の構成をモジュールということも時に便利であることが証明されている。説明される動作およびその関連モジュールは、ソフトウェア、ファームウェア、ハードウェアまたはその任意の組み合わせに具現してもよい。
【0245】
本明細書に説明されるステップ、動作またはプロセスのいずれも、1つまたは複数のハードウェアまたはソフトウェアモジュールを単独で用いて、または他のデバイスと組み合わせて行い、または実施してもよい。一実施形態において、ソフトウェアモジュールは、コンピュータプログラムコードを含むコンピュータ可読媒体を備えるコンピュータプログラムプロダクトを用いて実施され、該コンピュータプログラムコードは説明されるステップ、動作またはプロセスの一部または全部を行うために、コンピュータプロセッサによって実行することができる。
【0246】
本開示の実施形態は、本明細書の動作を行うための装置にも関わる。この装置は特定の目的のために特別に構成されてもよく、および/またはコンピュータ内に格納されているコンピュータプログラムによって選択的に起動され、もしくは再構成される汎用コンピューティングデバイスを備えてもよい。このようなコンピュータプログラムは、有形のコンピュータ可読記憶媒体、または電子的命令を格納するのに適し、コンピュータシステムバスに連結される任意のタイプの媒体に格納してもよい。また、本明細書に言及される任意のコンピューティングシステムは、1台のプロセッサを含んでもよく、または計算能力を高めるために、マルチプロセッサ設計を採用するアーキテクチャとしてもよい。
【0247】
本開示の実施形態は、搬送波において具体化されるコンピュータデータ信号にも関わることもでき、コンピュータデータ信号は本明細書で説明されるコンピュータプログラムプロダクトの任意の実施形態または他のデータの組合せを含む。コンピュータデータ信号は有形媒体または搬送波に提示され、有形の搬送波で変調またはその他の形で符号化され、任意の適切な送信方法に従って送信されるプロダクトである。
【0248】
本明細書で使用する言葉は、主に、読みやすさおよび説明の目的で選択されており、発明の主題を線引きするまたは制限するために選択されたものではない場合がある。そのため、本発明の範囲はこの詳細な説明によって限定されるのではなく、むしろ本明細書に基づいた出願時に発行する任意の請求項によって限定されることが意図される。
【0249】
また、本開示および特に添付の特許請求の範囲(例えば、添付の請求項の本体部)で使用される用語は、一般に「オープン」用語として意図される(例えば、「含む(including)」という用語は「含むが、それだけに限定されない」と解釈されるべきで、「有する(having)」をいう用語は「少なくとも有する」と解釈するべきで、「含む(includes)」という用語は「含むが、それだけに限定されない」と解釈されるべきである、等)。
【0250】
加えて、導入された請求項の記載の特定の数が意図される場合、このような意図はその請求項に明示的に記載されており、その記載がない場合、その意図は存在しない。例えば、理解の一助として、以下の添付の特許請求の範囲は、請求項の記載を導入するために「少なくとも1つの」および「1つまたは複数の」の導入句の使用を含むことができる。しかし、このような語句の使用は、同じ請求項が導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含む場合でも、不定冠詞「a」または「an」による請求項の記載の導入が、このように導入された請求項の記載を含む任意の特定の請求項を、このような記載を1つだけ含む実施形態に限定することを暗示すると解釈されるべきではない(例えば、不定冠詞「a」および/または「an」は「少なくとも1つの」または「1つまたは複数の」を意味すると解釈するべきである)。同じことが請求項の記載を導入するために使用される定冠詞の使用にも当てはまる。
【0251】
さらに、導入された請求項の記載の特定の数が明示的に記載される場合でも、その記載が少なくとも記載される数を意味すると解釈するべきであることを当業者は認識するであろう(例えば、他に修飾語のない、単に「2つの記載」という記載は、少なくとも2つの記載、または2つ以上の記載を意味する)。また、「A、B、およびC等の少なくとも1つ」または「A、B、およびC等の1つまたは複数」または「A,B,またはC等の少なくとも1つ」または「A、B、またはC等の1つまたは複数」と類似した慣用表現が使用される場合には、一般に、このような解釈は、Aのみ、Bのみ、Cのみ、AおよびBの両方、AおよびCの両方、BおよびCの両方、またはA、BおよびCのすべて、等を含むことが意図される。さらに、「および/または」という用語の使用も、このように解釈されることが意図される。
【0252】
さらに、明細書、特許請求の範囲または図面のいずれにあろうと、2つ以上の代替用語を提示するいかなる離接語または離接句も、その用語の1つ、その用語のいずれか、または両方の用語を含む可能性を意図すると理解されるべきである。例えば、「AまたはB」という語句は、他の箇所では「および/または」という用語が使用されていても、「A」もしくは「B」または「AおよびB」の可能性を含むと理解されるべきである。
【0253】
さらに、「第1」、「第2」、「第3」等の用語の使用は、本明細書において、必ずしも特定の順序または要素の特定の数を意味するために使用されるわけではない。一般に、「第1」、「第2」、「第3」等の用語は、総称識別子として異なる要素間を区別するために使用される。「第1」、「第2」、「第3」等という用語が特定の順序を意味するという説明がなければ、これらの用語は特定の順序を意味すると理解されるべきではない。また、「第1」、「第2」、「第3」等の用語が要素の特定の数を意味するという説明がなければ、これらの用語は要素の特定の数を意味すると理解されるべきではない。
【0254】
本開示に記載されるすべての実施例および条件語は、当該技術の促進に対して発明者が貢献する本開示および概念を読者が理解するのを助ける教授目的を意図しており、そのように具体的に記載される実施例および条件に限定されないと解釈するべきである。本開示の実施形態を詳細に説明してきたが、本開示の精神および範囲を逸脱することなく、これに様々な変更、代用、および改変を行うことができるであろう。