(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-29
(45)【発行日】2023-10-10
(54)【発明の名称】自律的な乗り物のリアルタイムの位置特定のための方法およびシステム
(51)【国際特許分類】
G05D 1/00 20060101AFI20231002BHJP
G01S 17/931 20200101ALI20231002BHJP
【FI】
G05D1/00 Z
G01S17/931
(21)【出願番号】P 2022523024
(86)(22)【出願日】2020-07-02
(86)【国際出願番号】 CN2020099860
(87)【国際公開番号】W WO2021073165
(87)【国際公開日】2021-04-22
【審査請求日】2022-05-27
(32)【優先日】2019-10-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133569
【氏名又は名称】野村 進
(72)【発明者】
【氏名】ユアン・レン
(72)【発明者】
【氏名】ビンビン・リュウ
【審査官】藤崎 詔夫
(56)【参考文献】
【文献】国際公開第2018/140748(WO,A1)
【文献】特表2009-544966(JP,A)
【文献】特開2016-149090(JP,A)
【文献】特開2014-123200(JP,A)
【文献】国際公開第2012/176249(WO,A1)
【文献】米国特許出願公開第2012/0030255(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00
G01S 17/931
(57)【特許請求の範囲】
【請求項1】
自律的な乗り物の位置特定のための方法であって、
前記自律的な乗り物の光検出および測距(LIDAR: light detection and ranging)スキャンシステムによってキャプチャされた、前記自律的な乗り物の周囲の環境の三次元(3D)点群を受信するステップと、
前記3D点群に基づいて前記環境の二次元(2D)画像を生成するステップであって、前記2D画像が、複数のピクセルを含み、前記複数のピクセルのそれぞれのピクセルが、前記ピクセルの垂直分布値を示す第1のチャネルおよび前記ピクセルの強度値を示す第2のチャネルの少なくとも一方を有する、ステップと、
前記2D画像に粒子フィルタリングプロセスを適用することによって前記乗り物の位置を推定するステップ
であって、前記第1のチャネルおよび第2のチャネルの少なくとも一方の値に基づいて粒子の重み値を生成または更新することを含むステップと、
前記自律的な乗り物の車輪オドメトリユニットからオドメトリデータを取り出すステップであって、前記オドメトリデータが、前記自律的な乗り物の回転を示す回転データおよび前記自律的な乗り物の平行移動を示す平行移動データを含む、ステップと、
前記自律的な乗り物の場所を生成するステップであって、前記自律的な乗り物の前記場所が、前記オドメトリデータおよび前記自律的な乗り物の推定された位置に基づいて決定された前記乗り物の最終的な位置、ならびに前記自律的な乗り物の前記最終的な位置および前記環境の2D参照地図に基づいて決定された前記乗り物の高度を含む、ステップとを含む、方法。
【請求項2】
前記2D画像に基づいて、前記自律的な乗り物のヨー角値を推定するステップ、
前記オドメトリデータおよび前記乗り物の推定されたヨー角値に基づいて前記自律的な乗り物の最終的なヨー角を決定するステップをさらに含み、
前記自律的な乗り物の前記場所が、前記乗り物の前記最終的なヨー角をさらに含む請求項1に記載の方法。
【請求項3】
前記自律的な乗り物の慣性測定ユニット(IMU)からさらなるオドメトリデータを取り出すステップであって、前記さらなるオドメトリデータが、前記自律的な乗り物の3軸角速度および前記自律的な乗り物の3軸加速度を含み、前記自律的な乗り物の前記最終的な位置が、前記IMUから取り出された前記さらなるオドメトリデータに基づいてさらに決定される、ステップをさらに含む請求項1または2に記載の方法。
【請求項4】
前記IMUから取り出された前記
さらなるオドメトリデータに基づいて前記乗り物の最終的なロール値および最終的なピッチを決定するステップをさらに含み、
前記乗り物の前記場所が、前記自律的な乗り物の前記最終的なロール値および前記最終的なピッチ値をさらに含む請求項3に記載の方法。
【請求項5】
前記自律的な乗り物の前記最終的な位置が、拡張カルマンフィルタ(EKF)を使用して決定される請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記自律的な乗り物の最終的なヨー角値が、拡張カルマンフィルタ(EKF)を使用して決定される請求項2から5のいずれか一項に記載の方法。
【請求項7】
前記3D点群が、複数のデータ点を含み、各データ点が、強度値および1組の座標を有し、前記3D点群に基づいて前記環境の二次元(2D)画像を生成するステップが、
前記3D点群を平面に沿って複数のタイルに分割すること、
各タイルを複数のセルに分割することであって、各セルが、座標系のz軸に沿った長さTを有し、前記長さTが、前記3D点群の地表と平行に上限および下限によって定義され、前記複数のセルの各々が、前記座標系に基づく2D位置[x
k
L, y
k
L]およびヨー角値Θ
Lを有する、分割することと、
各タイルの各セルに関して、
前記セルを前記長さTに沿って、等しい高さの複数のs個のブロックに分割すること、
前記複数のs個のブロックの各々に関して、sビット2進数列が前記複数のセルの各々に関して生成され、前記sビット2進数列の各2進桁が前記セルの前記複数のs個のブロックの中の対応するブロックの割り当てられた値に等しいように、前記ブロックが前記3D点群からの少なくとも1つのデータ点を含むときに値1を割り当て、前記ブロックが前記3D点群からのいかなるデータ点も含まないときに値0を割り当てること、
前記sビット2進数列を対応する10進数に変換し、前記対応する10進数を前記セルを表すデータセットの前記第1のチャネルに保存すること、
前記セル内のすべてのデータ点の中で地面からの最も高い高度を有する前記セル内のデータ点の高さに基づいて前記セルの最高高度h
max
を決定すること、
前記セル内のすべてのデータ点の中で地面からの最も低い高度を有する前記セル内のデータ点の高さに基づいて前記セルの最低高度h
min
を決定すること、
h
max
とh
min
と間の差が所与の閾値h
th
未満であると判定されるとき、前記セル内の1つ以上のデータ点の最大強度値に基づいて強度値を決定し、前記強度値を前記セルを表す前記データセットの前記第2のチャネルに保存すること、
h
max
とh
min
と間の差が前記閾値h
th
以上であると判定されるとき、前記セルを表す前記データセットの前記第2のチャネルに値0を割り当てること、
各タイルに関して、各セルを表す前記データセットに基づいて、前記3D点群の2D画像を生成することを含む請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記2D画像の各ピクセルの前記第1のチャネルの値に基づいて前記2D画像の前記ピクセルをソートし、ソートされたピクセルから、最初のm百個のピクセルを前記2D画像の垂直分布に関する複数のキーポイントとして選択するステップであって、各キーポイントが、前記キーポイントのそれぞれの第1のチャネルのそれぞれの値に等しい垂直分布値
【数1】
を有する、ステップと、
前記複数のピクセルの各々のそれぞれの第2のチャネルのそれぞれの値に基づいて前記複数のピクセルを大きい方から小さい方に向かってソートし、ソートされたピクセルから、最初のl百個のピクセルを前記2D画像の強度に関する複数のキーポイントとして選択するステップであって、各キーポイントが、前記キーポイントのそれぞれの第2のチャネルのそれぞれの値に等しい強度値
【数2】
を有する、ステップと、
前記2D画像内の垂直分布に関する各キーポイントに関して、垂直分布に関する前記キーポイントの重要度利得値を計算し、記憶するステップと、
垂直分布に関する少なくとも1つのキーポイントの前記重要度利得値に基づいて、前記2D画像の垂直分布重み値を計算し、記憶するステップと、
強度に関する少なくとも1つのキーポイントに基づいて、前記2D画像の強度重み値を計算し、記憶するステップと、
前記垂直分布重み値および前記強度重み値の一方または両方を、少なくとも、前記垂直分布重み値および前記強度重み値の一方または両方の情報エントロピー値に基づいて更新するステップとをさらに含む請求項7に記載の方法。
【請求項9】
前記2D画像内の各キーポイントに関して、垂直分布に関する前記キーポイントの前記重要度利得値が、次の式、a
ij = -N
ij + N
max + kによって決定される値a
ijによって表され、iが、前記2D画像内の前記キーポイントの行番号を示し、jが、前記2D画像内の前記キーポイントの列番号を示し、N
maxが、前記2D画像内で最も高い点を有する前記2D画像内の点の総数を示し、N
minが、前記2D画像内で最も小さい非ゼロの点を有する前記2D画像内の点の総数を示し、kが、正の整数である請求項8に記載の方法。
【請求項10】
前記垂直分布重み値が、
【数3】
によって表され、式
【数4】
によって決定され、kが、1からnまでの整数であり、nが、それぞれの2D画像内の垂直分布に関するキーポイントの総数mであり、
【数5】
が、前記キーポイントの前記垂直分布値であり、a
kが、垂直分布に関する前記キーポイントの前記重要度利得値であり、
【数6】
が、前記2D参照地図からの前記キーポイントの対応する垂直分布値であり、
前記2D画像内の各キーポイントに関して、前記強度重み値が、式、
【数7】
によって定義される
【数8】
によって表され、kが、1からnまでの整数であり、nが、前記2D画像内の強度に関するキーポイントの総数lであり、
【数9】
が、前記キーポイントの前記強度値であり、
【数10】
が、前記2D参照地図からの前記キーポイントの対応する強度値である請求項9に記載の方法。
【請求項11】
前記2D画像に粒子フィルタリングプロセスを適用することによって前記乗り物の位置を推定するステップが、
前記垂直分布重み値
【数11】
および前記強度重み値
【数12】
の一方または両方を、少なくとも、前記垂直分布重み値
【数13】
および前記強度重み値
【数14】
の一方または両方の前記情報エントロピー値に基づいて更新することを含み、
前記垂直分布重み値の前記情報エントロピー値H
vertが、次の式、
【数15】
によって決定され、iが、1からNまでの整数であり、Nが、粒子フィルタの粒子の総数であり、
【数16】
が、第iの粒子の前記垂直分布重み値であり、
前記強度重み値の前記情報エントロピー値H
inteが、次の式、
【数17】
によって決定され、iが、1からNまでの整数であり、Nが、前記粒子フィルタの粒子の前記総数であり、
【数18】
が、前記第iの粒子の前記強度重み値であり、
H
vertおよびH
inteの一方または両方が所与の閾値未満であるとき、対応する垂直分布重み値
【数19】
および対応する強度重み値
【数20】
の一方または両方の更新がスキップされ、合併された重み
【数21】
が、前記粒子フィルタのすべての粒子を再サンプリングするために使用され、前記合併された重み
【数22】
が、式、
【数23】
に基づいて定義される請求項10に記載の方法。
【請求項12】
前記粒子フィルタの粒子の前記総数が、予め決められた値を有する請求項11に記載の方法。
【請求項13】
前記2D参照地図からの前記キーポイントの前記対応する垂直分布値が、前記2D参照地図内の前記ピクセルの地図座標に基づいて前記2D参照地図内の対応するピクセルの位置を突き止めることによって取得される請求項10から12のいずれか一項に記載の方法。
【請求項14】
前記乗り物の前記場所が、前記さらなるオドメトリデータが前記IMUによって取得される周波数と同等の周波数で出力される請求項3
または4に記載の方法。
【請求項15】
前記2D画像を生成する前に、前記3D点群を処理して前記3D点群のねじれを除去するステップをさらに含む請求項1から
14のいずれか一項に記載の方法。
【請求項16】
前記乗り物の初期位置に基づいて前記2D参照地図の1つ以上のタイルを動的にダウンロードするステップをさらに含む請求項1から
15のいずれか一項に記載の方法。
【請求項17】
前記2D参照地図の1つ以上のタイルの各々が、20メートルから200メートルまでの間の辺の長さを有する正方形タイルである請求項1から
16のいずれか一項に記載の方法。
【請求項18】
自律的な乗り物の位置特定のためのシステムであって、
プロセッサと、
前記プロセッサに結合されたメモリであって、前記プロセッサによって実行されるときにシステムに請求項1から
17のいずれか一項に記載の方法を実行させる実行可能な命令を有形で記憶する、メモリとを含む、システム。
【請求項19】
乗り物制御システムのプロセッサによって実行されるときに前記乗り物制御システムに請求項1から
17のいずれか一項に記載の方法を実行させる命令を含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、乗り物の位置特定に関し、特に、自律的な乗り物のリアルタイムの位置特定のための方法およびシステムに関する。
【背景技術】
【0002】
自律的な乗り物が非常に異なる領域において動作するときの自律的な乗り物の精密で堅牢な位置特定は、重要なタスクとなり得る。たとえば、自律的な乗り物が都市内で動作しているとき、陸橋が、乗り物がGPS衛星から信号を受信することを妨げる場合がある。幹線道路を走行するとき、自律的な乗り物のセンサーは、幹線道路の近くにある垂直な物体を十分に検出することができない場合がある。自律的な乗り物の軌道を決定するための経路計画を自律的な乗り物が実行するため、および計画された軌道に従うときの意思決定のために、自律的な乗り物の正確な位置特定が必要とされる。位置特定は、乗り物の場所の決定、すなわち、座標系における乗り物の位置および乗り物の向きの決定を含む。
【0003】
自律的な乗り物の位置特定は、既存の参照地図内の縁石、車線マーカー、および建物の角などの静的な物体を、自律的な乗り物に取り付けられたセンサーから受信されたリアルタイムのセンサーデータから生成された自律的な乗り物の周囲の環境の観測結果の中の静的な物体とマッチングすることによるいくつかの知られている乗り物の位置特定方法によって決定され得る。規則的な形状を有する静的な物体(たとえば、縁石、車線マーカー、および建物の角)が、ランドマーカー(land marker)として手動で選択されることが多い。この方法は、役に立たない環境情報を取り除くことができるが、それだけでなく、乗り物の周辺環境に対する適応性を阻害する。たとえば、予め定義されたランドマーカーが自律的な乗り物の周囲の環境の現在の観測結果の中に存在しない場合、知られている乗り物の位置特定方法は、自律的な乗り物の場所を正確に決定することができない。
【0004】
さらに、動的な物体および一時的な物体が、乗り物の位置特定の精度に影響を与え得る。一部の既存の乗り物の位置特定方法は、自律的な乗り物に取り付けられたセンサーから受信されたリアルタイムのセンサーデータから生成された乗り物の周囲の環境のリアルタイムの観測結果の中の動的な物体を物体追跡または物体検出方法を使用して特定し、検出された動的な物体を現実の観測結果から削除する。しかし、これらの乗り物の位置特定方法は、多大な量の計算リソースを必要とし、その結果、自律的な乗り物の限られた計算リソースに対する多大な要求を生じ得る。たとえば、物体追跡および物体検出を実行する機械学習アルゴリズムを実行するために、多大な計算リソースが必要とされる。
【0005】
ほとんどの知られている乗り物の位置特定方法は、自律的な乗り物の2D位置特定のみを実行することができ、つまり、これらの方法は、自律的な乗り物の2D位置[x, y]およびヨー角Θを生成するだけである。自律的な乗り物の高度(elevation)[z]、ロール、およびピッチは、やはり未知である。自律運転では、乗り物の場所の正確な表現が、必要とされる。したがって、既存の方法は、効率的で堅牢な方法で自律運転の要件を完全に満たすことができない。
【0006】
上述のおよびその他の理由で、乗り物の位置特定の改善が望ましい。
【発明の概要】
【課題を解決するための手段】
【0007】
本開示の態様において、自律的な乗り物の位置特定のための方法が提供される。方法は、自律的な乗り物の光検出および測距(LIDAR: light detection and ranging)スキャンシステムによってキャプチャされた、自律的な乗り物の周囲の環境の三次元(3D)点群を受信するステップと、3D点群に基づいて環境の二次元(2D)画像を生成するステップであって、2D画像が、複数のピクセルを含み、複数のピクセルのそれぞれのピクセルが、ピクセルの垂直分布値を示す第1のチャネルおよびピクセルの強度値を示す第2のチャネルの少なくとも一方を有する、ステップと、2D画像に粒子フィルタリングプロセスを適用することによって乗り物の位置を推定するステップと、自律的な乗り物の車輪オドメトリユニット(wheel odometry)からオドメトリデータを取り出すステップであって、オドメトリデータが、自律的な乗り物の回転を示す回転データおよび自律的な乗り物の平行移動(translation)を示す平行移動データを含む、ステップと、自律的な乗り物の場所を生成するステップであって、自律的な乗り物の場所が、オドメトリデータおよび自律的な乗り物の推定された位置に基づいて決定された乗り物の最終的な位置、ならびに自律的な乗り物の最終的な位置および環境の2D参照地図に基づいて決定された乗り物の高度を含む、ステップとを含む。
【0008】
本開示の別の態様において、方法は、2D画像に基づいて、自律的な乗り物のヨー角値を推定するステップ、オドメトリデータおよび乗り物の推定されたヨー角値に基づいて自律的な乗り物の最終的なヨー角を決定するステップを含み、自律的な乗り物の場所は、乗り物の最終的なヨー角をさらに含む。
【0009】
本開示の別の態様において、方法は、自律的な乗り物の慣性測定ユニット(IMU)からさらなるオドメトリデータを取り出すステップであって、さらなるオドメトリデータが、自律的な乗り物の3軸角速度および自律的な乗り物の3軸加速度を含み、自律的な乗り物の最終的な位置が、IMUから取り出されたさらなるオドメトリデータに基づいてさらに決定される、ステップを含む。
【0010】
本開示の別の態様において、方法は、IMUから取り出されたデータに基づいて乗り物の最終的なロール値および最終的なピッチを決定するステップを含み、乗り物の場所は、乗り物の最終的なロール値および最終的なピッチ値をさらに含む。
【0011】
本開示の別の態様において、自律的な乗り物の最終的な位置は、拡張カルマンフィルタ(EKF)を使用して決定される。
【0012】
本開示の別の態様において、自律的な乗り物の最終的なヨー角値は、拡張カルマンフィルタ(EKF)を使用して決定される。
【0013】
本開示の別の態様において、3D点群は、複数のデータ点を含み、各データ点は、強度値および1組の座標を有し、3D点群に基づいて環境の二次元(2D)画像を生成するステップは、3D点群を平面に沿って複数のタイルに分割することと、各タイルを複数のセルに分割することであって、各セルが、座標系のz軸に沿った長さTを有し、長さTが、3D点群の地表と平行に上限および下限によって定義され、複数のセルの各々が、座標系に基づく2D位置[xk
L, yk
L]およびヨー角値ΘLを有する、分割することと、各タイルの各セルに関して、セルを長さTに沿って、等しい高さの複数のs個のブロックに分割することと、複数のs個のブロックの各々に関して、sビット2進数列が複数のセルの各々に関して生成され、sビット2進数列の各2進桁がセルの複数のs個のブロックの中の対応するブロックの割り当てられた値に等しいように、ブロックが3D点群からの少なくとも1つのデータ点を含むときに値1を割り当て、ブロックが3D点群からのいかなるデータ点も含まないときに値0を割り当てることと、sビット2進数列を対応する10進数に変換し、対応する10進数をセルを表すデータセットの第1のチャネルに保存することと、セルが平坦であると判定されるとき、セル内の1つ以上のデータ点の最大強度値に基づいて強度値を決定し、強度値をセルを表すデータセットの第2のチャネルに保存することと、セルが平坦でないと判定されるとき、セルを表すデータセットの第2のチャネルに値0を割り当てることと、各タイルに関して、各セルを表すデータセットに基づいて、3D点群の2D画像を生成することを含む。
【0014】
本開示の別の態様において、方法は、2D画像の各ピクセルの第1のチャネルの値に基づいて2D画像のピクセルをソートし、ソートされたピクセルから、最初のm百個のピクセルを2D画像の垂直分布に関する複数のキーポイント(key point)として選択するステップであって、各キーポイントが、キーポイントのそれぞれの第1のチャネルのそれぞれの値に等しい垂直分布値
【数1】
を有する、ステップと、複数のピクセルの各々のそれぞれの第2のチャネルのそれぞれの値に基づいて複数のピクセルを大きい方から小さい方に向かってソートし、ソートされたピクセルから、最初のl百個のピクセルを2D画像の強度に関する複数のキーポイントとして選択するステップであって、各キーポイントが、キーポイントのそれぞれの第2のチャネルのそれぞれの値に等しい強度値
【数2】
を有する、ステップと、2D画像内の垂直分布に関する各キーポイントに関して、垂直分布に関するキーポイントの重要度利得値(importance gain value)を計算し、記憶するステップと、垂直分布に関する少なくとも1つのキーポイントの重要度利得値に基づいて、2D画像の垂直分布重み値を計算し、記憶するステップと、強度に関する少なくとも1つのキーポイントに基づいて、2D画像の強度重み値を計算し、記憶するステップと、垂直分布重み値および強度重み値の一方または両方を、少なくとも、垂直分布重み値および強度重み値の一方または両方の情報エントロピー値に基づいて更新するステップとを含む。
【0015】
本開示の別の態様において、2D画像内の各キーポイントに関して、垂直分布に関するキーポイントの重要度利得値は、次の式、aij = -Nij + Nmax + kによって決定される値aijによって表され、iは、2D画像内のキーポイントの行番号を示し、jは、2D画像内のキーポイントの列番号を示し、Nmaxは、2D画像内で最も高い点を有する2D画像内の点の総数を示し、Nminは、2D画像内で最も小さい非ゼロの点を有する2D画像内の点の総数を示し、kは、正の整数である。
【0016】
本開示の別の態様において、垂直分布重み値は、
【数3】
によって表され、式
【数4】
によって決定され、kは、1からnまでの整数であり、nは、それぞれの2D画像内の垂直分布に関するキーポイントの総数mであり、
【数5】
は、キーポイントの垂直分布値であり、a
kは、垂直分布に関するキーポイントの重要度利得値であり、
【数6】
は、2D参照地図からのキーポイントの対応する垂直分布値であり、2D画像内の各キーポイントに関して、強度重み値は、式、
【数7】
によって定義される
【数8】
によって表され、kは、1からnまでの整数であり、nは、2D画像内の強度に関するキーポイントの総数lであり、
【数9】
は、キーポイントの強度値であり、
【数10】
は、2D参照地図からのキーポイントの対応する強度値である。
【0017】
本開示の別の態様において、2D画像に粒子フィルタリングプロセスを適用することによって自律的な乗り物の位置を推定するステップは、垂直分布重み値
【数11】
および強度重み値
【数12】
の一方または両方を、少なくとも、垂直分布重み値
【数13】
および強度重み値
【数14】
の一方または両方の情報エントロピー値に基づいて更新することを含み、垂直分布重み値の情報エントロピー値H
vertは、次の式、
【数15】
によって決定され、iは、1からNまでの整数であり、Nは、粒子フィルタの粒子の総数であり、
【数16】
は、第iの粒子の垂直分布重み値であり、強度重み値の情報エントロピー値H
inteは、次の式、
【数17】
によって決定され、iは、1からNまでの整数であり、Nは、粒子フィルタの粒子の総数であり、
【数18】
は、第iの粒子の強度重み値であり、H
vertおよびH
inteの一方または両方が所与の閾値未満であるとき、対応する垂直分布重み値
【数19】
および対応する強度重み値
【数20】
の一方または両方の更新がスキップされ、合併された重み
【数21】
が、粒子フィルタのすべての粒子を再サンプリングするために使用され、合併された重み
【数22】
は、式、
【数23】
に基づいて定義される。
【0018】
本開示の別の態様において、粒子フィルタの粒子の総数は、予め決められた値を有する。
【0019】
本開示の別の態様において、2D参照地図からのキーポイントの対応する垂直分布値は、2D参照地図内のピクセルの地図座標に基づいて2D参照地図内の対応するピクセルの位置を突き止めることによって取得される。
【0020】
本開示の別の態様において、方法は、セルの最高高度hmaxおよびセルの最低高度hminを決定するステップ、hmaxとhminと間の差が所与の閾値hth未満であるとき、セルが平坦であると判定するステップをさらに含み、hmaxは、セル内のすべてのデータ点の中で地面からの最も高い高度を有するセル内のデータ点の高さに基づいて決定され、hminは、セル内のすべてのデータ点の中で地面からの最も低い高度を有するセル内のデータ点の高さに基づいて決定される。
【0021】
本開示の別の態様において、乗り物の場所は、さらなるオドメトリデータがIMUによって取得される周波数と同等の周波数で出力される。
【0022】
本開示の別の態様において、方法は、2D画像を生成する前に、3D点群を処理して3D点群のねじれを除去する(untwist)ステップをさらに含む。
【0023】
本開示の別の態様において、方法は、乗り物の初期位置に基づいて2D参照地図の1つ以上のタイルを動的にダウンロードするステップをさらに含む。
【0024】
本開示の別の態様において、2D参照地図の1つ以上のタイルの各々は、20メートルから200メートルまでの間の辺の長さを有する正方形タイルである。
【0025】
本開示の別の態様によれば、自律的な乗り物の位置特定のためのシステムが提供され、システムは、プロセッサと、プロセッサに結合されたメモリであって、プロセッサによって実行されるときにプロセッサに、自律的な乗り物の光検出および測距(LIDAR)スキャンシステムによってキャプチャされた、自律的な乗り物の周囲の環境の三次元(3D)点群を受信すること、3D点群に基づいて環境の二次元(2D)画像を生成することであって、2D画像が、複数のピクセルを含み、複数のピクセルのそれぞれのピクセルが、ピクセルの垂直分布値を示す第1のチャネルおよびピクセルの強度値を示す第2のチャネルの少なくとも一方を有する、生成すること、2D画像に粒子フィルタリングプロセスを適用することによって乗り物の位置を推定すること、自律的な乗り物の車輪オドメトリユニットからオドメトリデータを取り出すことであって、オドメトリデータが、自律的な乗り物の回転を示す回転データおよび自律的な乗り物の平行移動を示す平行移動データを含む、取り出すこと、自律的な乗り物の場所を生成することであって、自律的な乗り物の場所が、オドメトリデータおよび自律的な乗り物の推定された位置に基づいて決定された乗り物の最終的な位置、ならびに自律的な乗り物の最終的な位置および環境の2D参照地図に基づいて決定された乗り物の高度を含む、生成することを行わせる実行可能な命令を有形で記憶する、メモリとを含む。
【0026】
本開示のさらに別の態様によれば、上および本明細書に記載の方法を実行するための乗り物制御システムのプロセッサによる実行のための実行可能な命令を有形で記憶させた非一時的機械可読媒体が、提供される。
【0027】
本特許または出願ファイルは、カラーで作成された少なくとも1つの図面を含む。カラー図面をともなう本特許または特許出願公開のコピーは、請求と必要な手数料の支払いとに応じて特許庁によって提供される。
【図面の簡単な説明】
【0028】
【
図1】本開示の1つの例示的な実施形態による乗り物制御システムを含む乗り物のブロック図である。
【
図2】本開示の1つの例示的な実施形態による
図1の自律的な乗り物のLIDARスキャンシステムのブロック図である。
【
図3】本開示の1つの例示的な実施形態による、自律的な乗り物の位置およびヨー角を生成するための粒子フィルタモジュールを示すブロック図である。
【
図4】本開示の1つの例示的な実施形態による、粒子フィルタモジュールによって実行される更新プロセスを示すブロック図である。
【
図5】本開示の1つの例示的な実施形態による、自律的な乗り物の位置特定のための方法を示すブロック図である。
【
図6】本開示の1つの例示的な実施形態による、3D点群および3D点群の2D参照地図の正方形タイルを示す図である。
【
図7】本開示の1つの例示的な実施形態による、3Dの地域規模の(region-scale)点群のタイルと、タイル内の3Dの地域規模の点群のデータ点とを示す図である。
【
図8】3Dの地域規模の点群のサンプルタイルと、2D参照地図の対応するタイルとを示す図である。
【
図9】乗り物が点Aから点Bに移動するときの2D参照地図の2Dタイルの動的なロードを示す図である。
【
図10A】自律的な乗り物のLIDARスキャンシステムに固定された座標系からの2D画像のキーポイントの垂直分布を示す図である。
【
図11】本開示の1つの例示的な実施形態による、自律的な乗り物の2D位置およびヨー角を決定する方法の流れ図である。
【
図12】本開示の1つの例示的な実施形態による、自律的な乗り物の6DOFの場所を決定する方法の流れ図である。
【発明を実施するための形態】
【0029】
本開示は、実施形態が示される添付の図面を参照して行われる。しかし、多くの異なる実施形態が、使用されてよく、したがって、説明は、本明細書に記載された実施形態に限定されると解釈されるべきでない。むしろ、これらの実施形態は、本開示が徹底的で完全になるように提供される。同様の番号は、全体を通じて同様の要素を指し、プライム記号表記が、代替的な実施形態の同様の要素、動作、またはステップを示すために使用される。示されるシステムおよびデバイスの機能要素の別々の四角または図示される分割は、そのような要素の間の通信がいかなるそのような物理的な分割もせずにメッセージング、関数呼び出し、共有メモリ空間などによって行われてよいので、必ずしもそのような機能の物理的な分割を必要としない。したがって、機能は、物理的または論理的に分離されたプラットフォームに実装されるとは限らないが、本明細書においては説明を容易にするために別々に示される。一部のデバイスが一部の機能を機能の決められたハードウェアに実装するが、その他のデバイスは機械可読媒体から取得されたコードを用いるプログラミング可能なプロセッサにそのような機能を実装する場合があるように、異なるデバイスは、異なる設計を有してよい。
【0030】
便宜上、本開示は、自律的な乗り物の位置特定のための方法およびシステムの例示的な実施形態を説明する。自律的な乗り物は、自動車、トラック、バスなどのモータービークル(motor vehicle)、ボートまたは船、潜水艦、航空機、倉庫機器、建設機器、トラクターまたはその他の農業機器などの任意の種類の乗り物であってよい。本開示の教示は、乗り物または任意の特定の種類の乗り物に限定されず、現実のまたは仮想的なその他の物体、ならびに乗客を運ばない乗り物および乗客を運ぶ乗り物に適用されてよい。本開示の教示は、自律型掃除機、惑星探査機、芝刈り機、無人航空機(UAV)、およびその他の物体を含むがこれらに限定されない乗り物以外の移動ロボットに実装されてもよい。本明細書において説明される乗り物制御システムは、たとえ半自律運転または完全自律運転を容易にするために説明されたとしても、非自律運転モード中の乗り物にも使用され得る。
【0031】
図1は、本開示の例示的な実施形態による自律的な乗り物100の選択された構成要素を示す。乗り物100は、センサー110に接続される乗り物制御システム115と、駆動制御システム150と、機械システム190とを含む。乗り物100は、当技術分野で知られているが、本開示の教示を不明瞭にしないために本開示から省略された、フレーム、ドア、パネル、シート、窓、ミラーなどの様々な構造要素も含む。センサー110は、乗り物100の様々な場所で乗り物100の構造要素に取り付けられる。
【0032】
乗り物制御システム115は、通信バス(図示せず)を介して乗り物100の複数の内部構成要素に結合されるプロセッサ102を含む。プロセッサ102は、ランダムアクセスメモリ(RAM)122、読取り専用メモリ(ROM)124、フラッシュ消去可能プログラマブル読取り専用メモリ(EPROM)(フラッシュメモリ)などの永続的(不揮発性)メモリ126、ワイヤレスネットワークと無線周波数信号をやりとりするための1つ以上のワイヤレストランシーバ130、衛星ネットワークから衛星信号を受信するための衛星受信機132、リアルタイムクロック134に結合される。乗り物制御システム115は、センサー110、タッチスクリーン136、スピーカ138、マイクロフォン140、駆動制御システム150、および機械システム190を含む乗り物100のその他の構成要素にも結合される。
【0033】
1つ以上のワイヤレストランシーバ130は、異なるワイヤレスデータ通信プロトコルおよび規格を使用して複数の異なる無線アクセスネットワーク(たとえば、セルラネットワーク)と通信するための1つ以上のセルラ(RF)トランシーバを含んでよい。乗り物制御システム115は、その地理的なカバーエリア内のワイヤレスWAN(たとえば、セルラネットワーク)の複数の固定トランシーバ基地局のうちのいずれか1つと通信してよい。1つ以上のワイヤレストランシーバ130は、ワイヤレスWANを介して信号を送受信してよい。1つ以上のワイヤレストランシーバ130は、複数の無線周波数帯をサポートするマルチバンドセルラトランシーバを含んでよい。
【0034】
1つ以上のワイヤレストランシーバ130は、ワイヤレスローカルエリアネットワーク(WLAN)アクセスポイント(AP)を介してWLAN(図示せず)と通信するためのWLANトランシーバも含んでよい。WLANは、IEEE 802.11x規格(Wi-Fi(登録商標)と呼ばれることもある)またはその他の通信プロトコルに準拠するWi-Fiワイヤレスネットワークを含んでよい。
【0035】
1つ以上のワイヤレストランシーバ130は、スマートフォンまたはタブレットなどのモバイルコンピューティングデバイスと通信するための、Bluetooth(登録商標)トランシーバなどの近距離ワイヤレストランシーバも含んでよい。1つ以上のワイヤレストランシーバ130は、近距離無線通信(NFC: Near field communication)、IEEE 802.15.3a(ウルトラワイドバンド(UWB)とも呼ばれる)、Z-Wave、ZigBee、ANT/ANT+、または赤外線(たとえば、赤外線データ協会(IrDA: Infrared Data Association)通信)を含むがこれらに限定されないその他の近距離ワイヤレストランシーバも含んでよい。
【0036】
リアルタイムクロック134は、Atmel Corporationによって供給される水晶発振器などの、正確なリアルタイム情報を提供する水晶発振器を含んでよい。
【0037】
タッチスクリーン136は、電子コントローラに接続されたタッチ式入力面またはオーバーレイを有する、カラー液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、またはアクティブマトリックス有機発光ダイオード(AMOLED)ディスプレイなどのディスプレイを含む。ボタン、スイッチ、およびダイヤルを含む、プロセッサ102に結合された乗り物100の追加の入力デバイス(図示せず)が、提供される場合もある。
【0038】
乗り物制御システム115は、1つ以上のスピーカ138、1つ以上のマイクロフォン140、およびシリアルデータポート(たとえば、ユニバーサルシリアルバス(USB)データポート)などの1つ以上のデータポート142も含む。システムは、タイヤ空気圧センサー(TPS)、ドア接触スイッチ、光センサー、近接センサーなどのその他のセンサーも含んでよい。
【0039】
駆動制御システム150は、乗り物105の動きを制御するように働く。駆動制御システム150は、ステアリングユニット152、ブレーキユニット154、およびスロットル(またはアクセル)ユニット156を含み、これらの各々は、駆動制御システム150内のソフトウェアモジュールまたは制御ブロックとして実装されてよい。ステアリングユニット152、ブレーキユニット154、およびスロットルユニット156は、完全または半自律運転モードのときに、乗り物制御システム115のメモリ126に記憶された経路計画システム174からの受信された経路情報を処理し、計画された経路を走行するために乗り物105のステアリング、ブレーキ、およびスロットルをそれぞれ制御する制御信号を生成する。駆動制御システム150は、たとえば、方向指示器およびブレーキライトの制御を含む乗り物105のその他の点を制御するための追加の構成要素を含んでよい。
【0040】
機械システム190は、乗り物105の機械構成要素を動作させるための制御信号を駆動制御システム150から受信する。機械システム190は、乗り物105の物理的な動作を実現する。機械システム190は、エンジン192、トランスミッション194、および車輪196を含む。エンジン192は、たとえば、ガソリンエンジン、バッテリ駆動エンジン、ハイブリッドエンジン、電気エンジンであってよい。たとえば、方向指示器、ブレーキライト、ファン、および窓を含むその他の構成要素が、機械システム190に含まれてよい。
【0041】
グラフィカルユーザインターフェース(GUI)が、プロセッサ102によってタッチスクリーン136上にレンダリングされ、表示されてよい。ユーザは、ナビゲーション情報、運転情報、駐車情報、メディアプレーヤー情報、温度調節情報などの関連情報を表示するために、タッチスクリーンおよび任意でその他の入力デバイス(たとえば、ボタン、ダイヤル)を使用してGUIとインタラクションしてよい。GUIは、一連のトラバース可能な(traversable)コンテンツに固有のメニューを含んでよい。
【0042】
乗り物制御システム115のメモリ126は、プロセッサ102によって実行されるオペレーティングシステムソフトウェア160を記憶している。メモリ126は、GUIに加えて、自律運転システム162と総称されるいくつかのソフトウェアモジュールを記憶しており、自律運転システム162の各モジュールは、プロセッサ102によって実行可能な機械読取り可能な命令を含むソフトウェアである。自律運転システム162のモジュールは、乗り物位置特定164モジュール、駐車支援166モジュール、自律駐車168モジュール、半自律運転のための運転支援170モジュール、経路計画モジュール174、知覚モジュール176、およびその他のモジュール178を含む。その他のモジュール178は、たとえば、マッピングモジュール、ナビゲーションモジュール、温度調節モジュール、メディアプレーヤーモジュール、電話モジュール、およびメッセージングモジュールなどを含み、やはりメモリ126に記憶される。一部の実施形態において、乗り物位置特定モジュール164は、プロセッサ102によって実行されるとき、本明細書において説明される方法の動作を実行させる。
【0043】
駐車支援モジュール166、自律駐車モジュール168、半自律運転のための運転支援モジュール170、自律運転モジュール172、または経路計画モジュール174によって使用される場合がある別個のモジュールとして示されているが、知覚モジュール176は、その他の実施形態においてはその他のソフトウェアモジュールのうちの1つ以上と組み合わされてよい。
【0044】
メモリ126は、様々なデータ180も記憶する。データ180は、センサー110のうちの1つ以上によって感知されたセンサーデータ182と、ユーザの好み、設定、および任意で個人的なメディアファイル(たとえば、音楽、ビデオ、指示(direction)など)を含むユーザデータ184と、ワイヤレストランシーバ130を介してダウンロードされたデータを含むダウンロードキャッシュ186とを含んでよい。たとえば、メモリ126は、カメラ112から受信された画像データ、LIDARスキャンシステム114から受信されたLIDARデータ(すなわち、三次元点群)、SARユニット116から受信されたSARデータ、車輪オドメトリユニット117および/または慣性計測装置(IMU)118からのオドメトリデータ、ならびにその他のセンサー120からのデータを記憶してよい。車輪オドメトリユニット117から受信されたオドメトリデータは、乗り物100の回転を示す回転データと、乗り物100の平行移動を示す平行移動データとを含む。IMU 118から受信されたオドメトリデータは、乗り物100の3軸角速度および乗り物100の3軸加速度を含む。
【0045】
ダウンロードキャッシュ186は、たとえば、所定の量の時間後に定期的に削除されてよい。システムソフトウェア、ソフトウェアモジュール、特定のデバイスアプリケーション、またはそれらの一部は、ランタイムデータ変数およびその他の種類のデータまたは情報を記憶するために使用されるRAM 122などの揮発性ストアに一時的にロードされる場合がある。乗り物制御システム115によって受信されたデータも、RAM 122に記憶される場合がある。また、様々な種類のメモリに関して特定の機能が説明されるが、これは一例に過ぎず、メモリの種類への機能の異なる割り当てが使用されてもよい。
【0046】
乗り物制御システム115は、衛星ネットワーク内の複数の衛星から衛星受信機によって受信された信号を使用して自身の位置を決定してよい衛星受信機132を含む。衛星ネットワークは、通常、全地球的カバレッジで自律的な地理空間測位を提供する少なくとも1つの全地球航法衛星システム(GNSS)の一部である複数の衛星を含む。たとえば、衛星ネットワークは、GNSS衛星の集まりであってよい。例示的なGNSSは、米国のNAVSTAR Global Positioning System (GPS)またはロシアのGlobal NAvigation Satellite System (GLONASS)を含む。開発されたまたは開発中のその他の衛星ナビゲーションシステムは、欧州連合のGalileo測位システム、中国のBeiDou Navigation Satellite System (BDS)、インドの地域衛星ナビゲーションシステム、および日本の衛星ナビゲーションシステムを含む。
【0047】
図2は、本開示の1つの例示的な実施形態による乗り物100のLIDARスキャンシステム114の簡略化されたブロック図を示す。
【0048】
LIDARスキャンシステム114は、1つ以上のプロセッサ(たとえば、マイクロプロセッサ)を含むコントローラ113と、レーザ光源120と、レーザ光源120に光学的に結合された光スイッチ130と、1つ以上のアバランシェフォトダイオード(APD)、電荷結合素子(CCD)センサー、相補型金属酸化膜半導体(CMOS)センサー、または微小電気機械システム(MEMS)センサーなどの1つ以上の検出器を含む検出器サブシステム140とを含む。
【0049】
1つ以上のレーザを含むレーザ光源120は、レーザビームなどのレーザ光を生成し、送信するように構成される。レーザ光源120は、ガウシアンビームを生成してよい。レーザ光源120は、パルスレーザ光(たとえば、パルスビーム)を送信してよい。レーザ光源120は、概して、近赤外線(NIR)などの赤外線(IR)を放射するが、赤外線に加えてまたは赤外線の代わりに、1つ以上の種類の可視光および/または場合によっては紫外線(UV)を放射する場合がある。レーザ光源120は、複数のレーザを含んでよく、各レーザは、異なる種類の光を送信するように構成される。一例において、複数のレーザの各レーザは、赤外線または1つもしくは複数の種類の可視光のうちのそれぞれ1つを送信するように構成される。一例において、複数のレーザは、赤外線を送信するように構成された赤外線レーザ、青色光を送信するように構成された青色レーザ、赤色光を送信するように構成された赤色レーザ、および緑色光を送信するように構成された緑色レーザを含む。これらのレーザ光は、同時にまたは同時でなくレーザビームを送信するように制御されてよい。
【0050】
当業者は、LEDなどのその他の光源が、レーザ光源を置き換えるために適応されてよいことを理解するであろう。ただし、そのような置き換えは、システム要件を考慮しなければならず、要件を満たすために追加修正、たとえば、コリメーションをともなう場合がある。
【0051】
検出器サブシステム140は、反射されたレーザ光を1つ以上の検出器を使用して検出し、コントローラ113に送信される、受信されたレーザ光に対応するデータ信号を生成し、出力する。コントローラ113は、検出器サブシステム140からの出力を使用して、レーザ光のビーム(レーザビームとも呼ばれる)の送信とレーザ光のビームの反射の受信との間の時間に基づいて、LIDARスキャンシステム114から乗り物100の周囲の環境内の1つ以上の物体までの距離を決定するデジタル信号プロセッサ(DSP)を含んでよい。アナログデジタルコンバータ(ADC)が、検出器サブシステム140からのアナログ信号を、DSPによってさらに処理するためにデジタルデータに変換してよい。コントローラ113は、環境内の1つ以上の物体までの決定された距離に基づいて、乗り物100の周囲の環境の3D点群を生成してもよい。なお、説明された実施形態においてはDSPが使用されているが、その他の実施形態においては、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプロセッサが使用されてよい。代替的に、検出器サブシステム140によって生成されたデータは、乗り物制御システム115のプロセッサ102に送信されてよく、DSPの機能が、乗り物制御システムのプロセッサ102によって実行されてよい。
【0052】
コントローラ113は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせの1つまたは組み合わせを使用してLIDARスキャンシステム114を制御してよい。ソフトウェアは、コントローラ1130によって実行されてよい。本明細書において説明される機能を実行するためのソフトウェアのコーディングは、本開示を提供された当業者の範囲内である。説明される機能を実行するためにコントローラ113によって実行可能な機械可読コードが、LIDARスキャンシステム114の非一時的な機械可読媒体(図示せず)に記憶されてよい。代替的に、コントローラ113の機能は、乗り物制御システム115のプロセッサ102によって実行されてよい。
【0053】
検出器サブシステム140は、レーザ光源120によって放射された光の種類に対応する光を受信するように構成される。レーザ光源120が2つ以上の種類の光を送信するとき、検出器サブシステム140は、レーザ光源120によって(たとえば、複数のレーザによって)放射される異なる種類の光の各々を受信するように構成される。たとえば、LIDARスキャンシステム114が、赤外線を送信するように構成された赤外線レーザと、青色光を送信するように構成された青色レーザと、赤色光を送信するように構成された赤色レーザと、緑色光を送信するように構成された緑色レーザとを含むとき、検出器サブシステム140は、環境内の物体から反射された赤外線を受信するように構成された1つ以上の赤外線検出器と、環境内の物体から反射された青色光を受信するように構成された1つ以上の青色検出器と、環境内の物体から反射された赤色光を受信するように構成された1つ以上の赤色検出器と、環境内の物体から反射された緑色光を受信するように構成された1つ以上の緑色検出器とを含む。受信光学系アセンブリ(図示せず)が、検出器サブシステム140の1つ以上の検出器の前に設けられてよい。検出器サブシステム140の1つ以上の検出器は、光ファイバケーブル(図示せず)を介してコントローラに接続されてよい。複数のレーザ光の検出のために使用されるメカニズムは、所望の詳細な実装および要件に依存し、コヒーレント(ヘテロダインおよびホモダイン)またはインコヒーレント(強度に基づく)方式の両方に基づく場合がある。
【0054】
光スイッチ130は、レーザ光源120からレーザ光を受信するように構成された1つの入力ポートおよび複数の出力ポートを有する1xn光スイッチである。1xn光スイッチ130は、コントローラ113の制御の下で、光ビームをn方向に向けるために使用されてよいプログラミング可能なビームを提供する。レーザ光源120は、光スイッチ130の入力ポートに光学的に直接結合されてよい。代替的に、レーザ光源120は、光ファイバーケーブルなど(図示せず)を介して光スイッチ130の入力ポートに光学的に結合されてよい。
【0055】
光スイッチ130は、MEMS、シリコン上液晶(LCoS: liquid crystal on silicon)、シリコンフォトニクス(SiPh)、またはその他の好適な構造を使用して構築されてよい。スイッチアーキテクチャは、LIDARスキャンシステム114の最良の性能のためにカスタマイズされてよい。光スイッチ130を製造するために使用される技術に応じて、サブヘルツ(sub-hertz)からメガヘルツ(MHz)までの様々な掃引速度(すなわち、スキャンレート)が達成される場合がある。SiPhは、その他のアーキテクチャおよび比較に比べて、性能を向上させる場合がある。
【0056】
自律的な乗り物の位置特定は、乗り物の測位、すなわち、何らかの座標系における乗り物の位置、たとえば、2D地図上の[x, y]または3D地図上の[x, y, z]の決定が含まれる。3D空間内の乗り物の場所(すなわち、乗り物の位置および向き)を表現する1つの方法は、直交座標系における乗り物の3D位置[x, y, z]と、乗り物のロール、ヨー、およびピッチを含む乗り物の向きとを含む6自由度(6DOF)表現を使用することである。自律的な乗り物のLIDARスキャンユニット114から取得されたLIDARデータと、3D参照地図とを使用して、乗り物の場所の6DOF表現が決定され得る。しかし、リアルタイムで自律的な乗り物の場所の6DOF表現を決定することは、実世界の状況においては、以下の問題、すなわち、1)都市規模の3D参照地図が、大きすぎて自律的な乗り物のメモリに記憶され得ない、2)セルラデータネットワークを通じて都市規模の3D参照地図を自律的な乗り物に送信することが、実行不可能であり、3)点群登録(すなわち、LIDARスキャンユニットから取得されたLIDARデータから生成された3D点群を、3Dの都市規模の3D参照地図に重なるように回転および平行移動するプロセス)が、非常に時間のかかる動作であり、乗り物105の乗り物制御システム115のプロセッサ102による実行に適さないという問題を有する。
【0057】
本開示は、一部の実施形態において、乗り物のLIDARスキャンシステムから受信された現在の3D点群に基づく自律的な乗り物の6DOF位置特定のためのシステムおよび方法を説明する。方法は、1)都市、州、または国などの地域の地域規模の3D点群を取り出すステップと、2)地域規模の3D点群を2D参照地図に変換するステップと、3)特定の地図フォーマットに基づいて、2D参照地図を複数の2D参照地図タイルに分割するステップと、4)複数の2D参照地図タイルを乗り物にダウンロードするステップと、5)乗り物のLIDARスキャンシステムから現在の3D点群を取得し、3D点群を2D画像に変換するステップと、6)キーポイント抽出方法に基づいて、ダウンロードされた2D参照地図タイルに2D画像をマッピングするステップと、7)2D画像とダウンロードされた2D参照地図との間のマッピングに基づいて、乗り物の2D位置およびヨー角を決定するステップと、8)2D位置およびヨー角に基づいて、乗り物の最終的な3D位置および向きを生成するステップとを含んでよい。最終的な3D位置および向きは、高周波数の形態であることが可能である。本明細書における高周波数は、最低閾値よりも高い周波数値、たとえば、少なくとも50Hzの周波数を指す場合があり、一部の実施形態においては200Hz程度の高さである場合がある。
【0058】
開示される実施形態は、地域規模の2D参照地図を記憶し、通信ネットワークを介して乗り物に送信するのに好適なコンパクトなデータ形式を使用する。開示されるキーポイント抽出方法は、乗り物の位置の決定に対する動的な物体の影響を効果的に除去することができる。開示される実施形態は、乗り物がダウンロードされた2D参照地図を使用して6DOF位置特定を容易に生成することを可能にし、これは、都市規模の3D点群をリアルタイムで処理することを必要とするソリューションと比較して計算の複雑さを低減する。一部の実施形態において、2D参照地図は、2D参照地図である。一部の実施形態において、2D参照地図は、2Dの地域規模の画像地図(すなわち、画像フォーマットの地図)である。3Dの地域規模の点群地図から生成された2Dの地域規模の画像地図。3Dの地域規模の点群地図は、環境の以前にキャプチャされた観測結果を組み合わせることによって生成されてよく、各観測結果は、3D点群である。
【0059】
地域規模の2D参照地図の生成
ここで、本開示の例示的な実施形態による地域規模の三次元(3D)点群600および地域規模の3D点群600内のタイル610を示す
図6を参照する。地域規模の3D点群600は、土地の測量によって取得された地域規模(たとえば、都市、州、または国)の3D点群である。地域規模の3D点群600のサイズは、非常に大きく、乗り物のメモリ126への記憶または乗り物105のプロセッサ102によるリアルタイムの処理に適さない。したがって、乗り物100の位置特定に地域規模の3D点群600を使用するために、地域規模の3D点群600が、2D参照地図に変換される。2D参照地図は、以下でさらに詳細に説明されるように、複数の2D画像タイルに分割されてよい。
【0060】
絶対座標系(たとえば、ユニバーサル横メルカトル座標系)における地域規模の3D点群600は、座標系のx-y平面に沿って、同一サイズの複数の正方形タイル610に分割される。各正方形タイル610の辺625の長さは、20mから200mまで変わり得る。
図6に示される例示的な実施形態において、各正方形タイル610の辺の長さは、100mである。各正方形タイル610に関して、正方形タイル610の辺の長さおよび正方形タイル610の絶対位置が、データファイルに保存され得る。いくつかの例示的な実施形態において、正方形タイル610のそれぞれの絶対位置は、UTM座標系におけるタイルの左下の角の座標(または緯度/経度もしくは軍事グリッド参照系(Military Grid Reference System)などの別の好適な座標系における座標)である。各正方形タイル610は、同一サイズの複数のセル620にさらに分割される。各セル620の辺の長さは、0.05mから0.2mまでの範囲であることが可能である。たとえば、100m x 100mの正方形のタイル610は、1,000,000(すなわち、1000 x 1000)個のセル620を有する場合がある。いくつかの例示的な実施形態においては、各正方形タイル610内の3Dの地域規模の点群のデータ点の最小の絶対評価も、データファイルに保存される。正方形タイル610は、本開示全体を通じて参照を容易にするために、タイル610と呼ばれる場合がある。
【0061】
三次元空間において、各セル620は、正方形の底面を有する細い柱である。セル620は、3D領域空間点群600の0個、1つ、または複数のデータ点を含む場合がある。セル620に含まれるデータ点の特徴は、パラメータ化され、セル620を表すデータセットに保存されてよい。データセットは、各セル620に関して2つまたは3つのチャネルを含んでよい。たとえば、データセットは、以下に説明されるように、セル620に含まれるデータ点のパラメータを表すためにRGBカラーモデルを使用してよい。各セル620は、2D画像座標系におけるそれぞれの位置[xk
M, yk
M]を有する。
【0062】
図7は、本開示の1つの例示的な実施形態による、タイル610およびタイル610内にあるデータ点720a、720b、720c、720d、720eの断面図を示す。
図7に示される例においては、3Dの地域規模の点群600のタイル610から2D画像地図タイルを生成する方法を説明する目的で、タイル610は4つのセル620を含むものとして示される。タイル610に含まれるセル620の数がタイル610の辺の長さおよび各セル620の辺の長さに依存することは、理解されるであろう。
図7において、タイル610の4つのセル620は、参照番号730、732、734、736を用いて示される。セル730に含まれるデータ点の特徴は、パラメータ化され、セル730を表すデータセット700aに保存されてよい。同様に、セル732に含まれるデータ点の特徴は、パラメータ化され、セル732を表すデータセット700bに保存されてよく、セル733に含まれるデータ点の特徴は、パラメータ化され、セル733を表すデータセット700cに保存されてよく、セル736に含まれるデータ点の特徴は、パラメータ化され、セル736を表すデータセットに保存されてよい。一部の実施形態において、セル730、732、734、736を表すデータセットは、RGBカラーモードに基づいて構造化され、記憶される場合がある。たとえば、セル730を表すデータセット700aは、第1のチャネル(赤(red)のR)770a、第2のチャネル(緑(green)のG)780a、および第3のチャネル(青(blue)のB)790aを含んでよいRGBカラーモードの1つ以上のチャネルを含む場合がある。同様に、セル732を表すデータセット700bは、第1のチャネル770b、第2のチャネル780b、および第3のチャネル790bを含む場合がある。セル734を表すデータセット700cは、第1のチャネル770c、第2のチャネル780c、および第3のチャネル790cを含む場合がある。たとえR/G/Bチャネルが通常はピクセルの色情報を表すデータを記憶する場合があるとしても、本開示において、R/G/Bチャネルは、タイル610の各セル620のその他の特性を表す値を記憶してよいことを理解されたい。
【0063】
一部の実施形態においては、下で説明されるように、データセット700a、700b、700cに含まれる第1のチャネル770a、770b、770cが、セル730、732、734のそれぞれの垂直分布値を記憶してよく、データセット700a、700b、700cに含まれる第2のチャネル780a、780b、780cが、セル730、732、734のそれぞれの強度値を記憶してよく、それぞれの第3のチャネル790a、790b、790cが、セル730、732、734のそれぞれの高度値を記憶してよい。強度値は、一部の実施形態においては、地面の強度値であってよい。その他の実施形態において、強度値は、地面ではない物体の強度を指す場合がある。
【0064】
各セル730、732、734、736は、垂直軸(たとえば、z軸)に沿って、上限740と下限745との間で複数の等しいサイズのブロック710に分割されてよい。上限740は、よくある垂直な物体のほとんどを含むように使用される。上限740は、LIDARスキャンシステム114のレーザビームの数およびLIDARスキャンシステム114の垂直視野に基づいて定義されてよい。下限745は、一時的な物体を除去するために使用される。地面に落ちているゴミおよび道路付近の草などの多くの低い物体は、通常、時間とともに変化する。たとえば、上限740は地面から4.5メートルであり、下限745は地面から0.5メートルであるとそれぞれ定義されてよい。タイル610内の最低高度755が、タイル610内のすべてのデータ点の中で地面からの最も低い高度を有するセル620内の(地面からの)データ点に基づいて定義されてよい。
図7に示される実施形態において、最低高度755は、データ点720gがタイル610内のすべてのデータ点の中で地面からの最も低い高度を有するので、データ点720gの高さによって定義される。この例では、データ点720gが地面に接しているため、タイル610における最低高度755は0であってもよい。
【0065】
データ点の高度の高さは、3Dの地域規模のデータ点群600の座標系[x, y, z]のz軸に沿ったそのデータ点の位置に基づいて決定される場合がある。
【0066】
図7に示されるように、各セル730、732、734、736は、上限740と下限745との間で8つのブロック710に分割されてよい。各ブロック710は、0個以上のデータ点720a、720b、720c、720d、720e、720f、720gを含んでよい。
【0067】
上述のように、データセット700a、700b、700cに含まれる第1のチャネル770a、770b、770cは、セル730、732、734のそれぞれの垂直分布値を記憶する場合がある。タイル610がn個のセルを有する場合、セル730、732、734の垂直分布値
【数24】
は、1)セル730、732、734を長さR 743に沿って、等しい高さの複数のu個のブロック(たとえば8個のブロック)に分割することと、2)複数のu個のブロックの各々に関して、ブロック710a、710b、710c、710eが地域規模の3D点群600のタイル610の少なくとも1つのデータ点720a、720b、720c、720dを含むときに値1を割り当て、ブロック710が地域規模の3D点群のタイル610からのいかなるデータ点も含まないときに値0を割り当てることと、3)タイル610内の複数のセル730、732、734の各々に関して、uビット(たとえば、8ビット)の2進数列を生成することであって、uビットの各2進桁は、セルの複数のu個のブロックの中の対応するブロックの割り当てられた値に等しい、生成することと、4)uビット2進数列を対応する10進数に変換し、対応する10進数をセルの垂直分布
【数25】
としてセルの第1のチャネルに記憶することとによって計算される。uビット2進数列を10進数に変換するために、通常の変換方法が使用されてよい。
【0068】
たとえば、セル730は、上限740および下限745によって範囲を定められた8個のブロック710を有する。上限および下限740、745の外で見つかったデータ点720fは、これらのデータ点720fが地上を走行するときに乗り物100にとってほとんど意義がない傾向がある(たとえば、ゴミまたは鳥)ので、ブロック710によってキャプチャされない。たとえセル730がタイル610内の最低高度755に近い2つのデータ点720fを含んでいても、上限740および下限745の外にあるデータ点720fは、セル730の垂直分布値を計算するときに考慮されない。したがって、セル730の8ビット2進数列は、00000000であり、セル730の対応する垂直分布値は、0であり、セル730を表すデータセット700aに含まれる第1のチャネル770aに保存される。
【0069】
別の例として、セル732は、上限740および下限745によって範囲を定められた8個のブロック710a、710b、710cを有する。同様に、上限および下限740、745の外で見つかったデータ点は、ブロック710a、710b、710cによってキャプチャされない。ブロック710aは、少なくとも1つのデータ点720aを含み、ブロック710bは、少なくとも1つのデータ点720bを含み、ブロック710cは、少なくとも1つのデータ点720cを含む。示されるように、セル732の各ブロックは、少なくとも1つのデータ点を有する。したがって、セル732の8ビット2進数列は、11111111であり、セル732の対応する垂直分布値は、255であり、セル732を表すデータセット700bに含まれる第1のチャネル770bに保存される。
【0070】
さらに別の例として、セル734は、上限740および下限745によって範囲を定められた8個のブロック710d、710eを有する。同様に、上限および下限740、745の外で見つかったデータ点は、ブロック710d、710eによってキャプチャされない。ブロック710dは、いかなるデータ点も含まず、ブロック710eは、少なくとも1つのデータ点720dを含み、もう2つのブロックが、それぞれ、少なくとも1つのデータ点を含む。したがって、セル734の8ビット2進数列は、01110000であり、セル730の対応する垂直分布値は、112であり、セル734を表すデータセット700bに含まれる第1のチャネル770cに保存される。
【0071】
上述のように、データセット700a、700b、700cに含まれる第2のチャネル780a、780b、780cは、セル730、732、734のそれぞれの強度値を記憶する場合がある。タイル610がn個のセルを有する場合、セル730、732、734の強度値
【数26】
は、最高高度の高さおよび最低高度の高さに基づいて計算され、セル730、732、734を表すデータセット700a、700b、700cに含まれる第2のチャネルに記憶され得る。たとえば、セル736に関して、強度値
【数27】
は、1)セル736内のすべてのデータ点の中で地面からの最も高い高度を有するデータ点720hの高さに基づいてセル736の最高高度h
max_map 760を決定すること、2)セル736の最低高度h
min_map 765を決定することであって、h
min_mapが、セル736内のすべてのデータ点の中で地面からの最も低い高度を有するデータ点720gの高さに基づいて決定される、決定すること、3)h
max_mapとh
min_mapとの間の差が所与の閾値h
th_map未満であるとき、セル736内の1つ以上のデータ点の最大強度値に基づいて強度値
【数28】
を決定し、強度値
【数29】
をセル736を表すデータセット(図示せず)の第2のチャネルに保存し、h
max_mapとh
min_mapとの間の差が所定の閾値h
th_map以上であるとき、セル736を表すデータセット(図示せず)に含まれる第2のチャネルに値0を割り当てることによって生成されてよい。所与の閾値h
th_mapは、セルが十分に平坦であるかどうかを判定するために使用される。平坦なセルは、通常、路面の存在に関連付けられ、強度値は、路面状態のインジケーションである。したがって、セルが平坦でない場合、強度値は0であるべきである。
【0072】
第3のチャネル790a、790b、790cは、セル730、732、734のそれぞれの高度値を記憶してよい。タイル610がn個のセルを有する場合、セル730、732、734の高度の高さの値
【数30】
は、タイル610の最高高度の高さh
i 750a、750b、750cおよび最低高度の高さ755に基づいて計算され、セル730、732、734を表すデータセット700a、700b、700cに含まれる第3のチャネル790a、790b、790cに記憶され得る。高度の高さの値は、1)タイル610内のすべてのデータ点の中で地面からの最も低い高度を有するデータ点720gの高さに基づいてタイル610内のデータ点の最低高度の高さh
MapMinimum 755を決定し、保存することと、2)h
MapMinimumと上述のh
max_mapとの間の差を計算することに基づいて、高度の高さの値
【数31】
を決定することであって、
【数32】
である、決定することと、3)高度値
【数33】
を、セルを表すデータセットに含まれる第3のチャネルに記憶することとによって生成され得る。
【0073】
たとえば、セル730は、セル730を表すデータセット700aに含まれる第3のチャネル790aに記憶された高度の高さの値h
3 750aを有し、セル732は、セル732を表すデータセット700bに含まれる第3のチャネル790bに記憶された高度の高さの値h
2 750bを有し、セル734は、セル734を表すデータセット700cに含まれる第3のチャネル790cに記憶された高度の高さの値h
1 750cを有する。各ピクセル730、732、734の高度の高さの値をそれぞれの第3のチャネル790a、790b、790cに記憶する前に、変換方法が適用されてよい。適用されてよい例示的な変換方法は、メートルで表されたそれぞれの高度の高さの値
【数34】
750a、750b、750cに数値(たとえば、10)を乗じ、それから、結果の整数値を取得し、結果の整数値が255より大きい場合、結果の整数値は、255に設定され得る。
【0074】
データセット700a、700b、700cは、2D画像タイルを生成するために使用され、2D画像タイルの各ピクセルは、3Dの地域規模の点群のタイル610のセル620に対応する。2D画像タイルの各ピクセルは、ピクセルの垂直分布値を示す第1のチャネルと、ピクセルの強度値を示す第2のチャネルとを含む。ピクセルの垂直分布値は、セル620を表すデータセットに含まれる第1のチャネルから取得され、ピクセルの強度値は、セル620を表すデータセットに含まれる第2のチャネルから取得される。各2D画像タイルは、2Dの地域規模の画像地図(本明細書においては2D参照地図と呼ばれる)を形成するために組み合わされ得る。
【0075】
図7に示された例は4つのセル620のみを含むが、タイル610が任意の数のセル620に分割されてよいことは、理解されるであろう。
【0076】
2D参照地図タイルの動的ダウンロード
地域規模の3D点群600の各タイル610は、上で説明されたプロセスに基づいて、正方形毎に、20m x 20mのサイズから200m x 200mのサイズまでの間の2D画像タイルに変換され得る。
図8は、上で説明された方法を使用して処理され、上で説明された方法に基づいて対応する2D参照地図タイル820に変換される地域規模の3D点群600のサンプルタイル610を示す。2D参照地図タイル820に示されるように、赤は、道路付近の蓋然性の高い障害物および物体を表す垂直分布値を示し、緑は、路面の強度を示し、青は、路面の高度値を示す。一部の実施形態においては、建物および木の高度が、青チャネルに保存され得る。
【0077】
図9は、乗り物100が環境内を位置Aから位置Bに移動するときの、乗り物100の乗り物制御システム115のプロセッサ102による2D参照地図タイル820a、820b、820cの動的ダウンロードを示す。2D参照地図タイル820a、820b、820cは、乗り物100の現在位置に基づいて動的にダウンロードされる。1つの例示的な実施形態においては、任意の所与の時間に、乗り物100の位置が中央のタイル内に保たれると仮定して、9つの隣接する2D参照タイルが乗り物制御システム115のメモリ126にロードされる。たとえば、乗り物100が位置Aにあるとき、2D参照地図の2D画像タイル820a、820bが外部サーバ(図示せず)またはストレージデバイス(図示せず)からダウンロードされて、ロードされた2D参照地
図350aを形成する。乗り物100が位置Aから位置Bに移動するとき、ロードされた2D参照地
図350aの2D画像タイル820aが削除され、タイル820bを維持しながら2D参照地図の新しい2D画像タイル820cがダウンロードされて、ロードされた2D参照地
図350bを形成する。一部の実施形態においては、乗り物100の厳密な位置が、位置特定方法500によってリアルタイムで更新されてよく、2D参照地図の2D画像タイル820a、820b、820cは、乗り物100の更新された位置に基づいて動的にダウンロードされてよい。
【0078】
ここで、本開示の1つの例示的な実施形態による、乗り物105の位置およびヨー角360を生成するための乗り物位置特定モジュール164の粒子フィルタモジュール300を示すブロック図である
図3を参照する。粒子フィルタモジュール300は、プロセッサ102によって実行されるときにプロセッサ102に、粒子の重みを連続的に計算することによって乗り物の位置およびヨーを推定させる機械可読命令を含むソフトウェアモジュールである。
図3に示される例示的な実施形態における粒子フィルタモジュール300は、概して、予測モジュール310、更新モジュール320、再サンプリングモジュール340を含む。一部の実施形態において、粒子フィルタモジュール300は、マルコフ連鎖モンテカルロ法(MCMC)の原理に基づく方法を実施する。
【0079】
予測モジュール310は、粒子フィルタの初期化プロセス中に、複数の粒子をランダムに生成し、乗り物105の位置[x', y']およびヨー角Θ'(集合的に姿勢と呼ばれる)を予測するように構成される。最初、予測は、プロセッサにGPS信号を送信してよい衛星受信機132からの初期入力に基づいて生成されてよい。GPS信号は、乗り物105の初期地図座標[xini, yini]を含んでよい。初期ヨー角Θiniが、乗り物100の車輪オドメトリユニット117およびIMU 118から取り出されたオドメトリデータから決定されてよい。一部の実施形態においては、初期ヨー角Θiniは、LIDARスキャンシステム114に固定された座標系を地図の座標系とマッチングすることによって取得されてよい。
【0080】
乗り物100の初期姿勢に基づいて、更新モジュール320は、少なくとも、
図4を参照して下で詳細に説明される、ダウンロードされた2D参照地
図350、LIDARスキャンシステム114、車輪オドメトリユニット117、およびIMU 118からのデータに基づいて粒子のそれぞれの重み値を生成または更新するように構成される。
【0081】
粒子の重み値から計算された1つ以上の情報エントロピー値に基づいて、再サンプリングが必要とされる可能性があり、または必要とされない可能性がある(330)。再サンプリングが必要とされる場合、再サンプリングモジュール340が、更新モジュール320において取得された重み値に基づいて粒子を再サンプリングし、乗り物105の新しい姿勢を生成するように構成される。
【0082】
更新モジュール320は、粒子の重み値を出力し、それらの重み値が、乗り物105の低周波数の姿勢[x', y', Θ'] 360を生成するために使用される。たとえば、これらの粒子の加重平均が、乗り物105の姿勢の推定値である。
【0083】
図4は、本開示の1つの例示的な実施形態による、更新モジュール320によって部分的に実行される更新プロセス400を示すブロック図である。3D点群410は、LIDARスキャンシステム114から受信されてよく、オドメトリデータ415は、車輪オドメトリユニット117およびIMU 118から受信されてよい。3D点群410は、乗り物105に取り付けられたLIDARスキャンシステム114によって特定のスキャン周波数でキャプチャされた環境の現在の(すなわち、リアルタイムの)観測結果を表している。たとえば、LIDARスキャンシステム114は、5~20Hzの回転速度で乗り物の直近の周囲(たとえば、乗り物100の100~300メートル以内)のフルスキャンを完了する場合がある。
【0084】
一部の実施形態において、3D点群410は、オドメトリデータ415を使用して前処理される必要がある。ステップ420において、オドメトリデータ415は、乗り物100の運動によって引き起こされる3D点群410の変形を除去するために使用され得る。プロセス420は、ねじれ除去としても知られる。ねじれを除去された3D点群430は、その原点[0, 0, 0]が乗り物100の乗り物の後軸(rear axis)(たとえば、ベースリンクフレーム(base link frame))の中点と一致するように変換されている。ねじれ除去プロセス420の後、ベースリンクフレームのx軸、y軸、およびz軸は、それぞれ、乗り物100の車体の前、左、および上を指す。それから、ねじれを除去された3D点群430は、更新モジュール320によって、地域規模の3D点群600に関連して上で説明されたのと同様のプロセスで2D画像に変換されるが、以下で説明されるいくつかの違いがある。たとえば、正方形の高度の高さがここで計算されない。すなわち、ねじれを除去された3D点群430から変換された2D画像内のピクセルは、垂直分布チャネルと強度チャネルの一方または両方を有するだけである。別の例として、2D画像は一辺の長さが20~200メートルの正方形タイル、たとえば100m x 100mの正方形タイルであることが可能であるので、3D点群410またはねじれを除去された3D点群430を2D画像に変換する前に3D点群を複数のタイルに分割する必要はない。その他の実施形態において、2D画像は、長方形の形状などの異なる形状であってよい。
【0085】
一部の実施形態において、乗り物105のLIDARスキャンシステム114は、Velodyne(商標)およびQuanergy(商標)ブランドのLIDARシステムであってよく、8から128個のレーザビームを有する場合がある。これは、1つのLIDARフレームの2D画像が、地域の調査から生成される3Dの地域規模の点群から生成される2D参照地
図3501、350bよりも疎らであることを意味する。それでもなお、ねじれを除去された3D点群430に基づいて生成される2D画像1000は、生成するために多大な量の計算リソースを必要とし得る数千または数万の非ゼロのピクセルを含む場合がある。位置特定動作を高速化するために、以下で詳細に説明されるプロセスによって、キーポイントが定義され、2D画像1000内のこれらの非ゼロのピクセルから抽出される。垂直分布チャネルおよび強度チャネルのキーポイントは、別々に抽出される。各チャネルに関して、これらの非ゼロのピクセルの値がソートされ、大きな値を有する最初の数百ピクセルがキーポイントとして選択され得る。垂直分布値を記憶するチャネル(「垂直分布チャネル」とも呼ばれる)に関して、キーポイントは、通常、木、建物、信号機、街灯、および電柱などのこれらの高い物体に対応する。強度値を記憶するチャネル(「強度チャネル」とも呼ばれる)に関して、キーポイントは、通常、道路上のペイント標示に対応する。
【0086】
垂直分布チャネルに関して、キーポイントは、乗り物100を測位する際に異なる重要性を持つ。概して、高くて細い物体または建物の面に対応するキーポイントは、樹冠などの不定形の物体に対応するキーポイントよりも重要である。
【0087】
いくつかの例示的な実施形態においては、
図10Aに示されるように、生成された2D画像1000内のキーポイント1001が、座標[x
k, y
k]を有し、x軸が、乗り物100の移動方向に沿っている。一部の実施形態において、2D画像1000は、1000 x 1000ピクセルの解像度を有し、100m x 100mの物理的エリアを包含する。それから、各ピクセルのサイズは、10cm x 10cmである。LIDARスキャンシステム114は、2D画像1000の中心にある。したがって、m行n列にあるキーポイントは、座標[x
k, y
k]を有し、x
k =(n-499)x0.1であり、y
k =(500-m)x*0.1である。
【0088】
垂直分布および強度の重み値の更新
再び
図4を参照すると、更新モジュール320は、以下でさらに詳細に説明されるプロセス440によって、ねじれを除去された3D点群430を2D画像1000に変換するように構成される。ねじれを除去された3D点群430は、
図6を参照して上で説明されたタイル610と同等である。ねじれを除去された3D点群430は、複数のセル620に分割され、各セルは、3D空間において正方形の底面を持つ細い柱である。各セル620は、ねじれを除去された3D点群430からの0個、1つ、または複数のデータ点を含む場合がある。複数のセル620の各々は、プロセス440を通じて、少なくとも第1のチャネルおよび第2のチャネルを含むデータセットによって表される。各セル620は、座標系のz軸に沿った長さTを有する。長さTは、ねじれを除去された3D点群430の地面と平行に上限および下限によって定義され、各2D画像は、もともと衛星受信機132を介してGPSシステムから取得された位置[x
k
L, y
k
L]およびヨー角値Θ
Lを有する。各ピクセルに関して、更新モジュール320は、長さTに沿ってセル620を、等しい高さの複数のs個のブロックに分割するように構成される。そして、複数のs個のブロックの各々に関して、更新モジュール320は、sビット2進数列が複数のセル620の各々に関して生成され、sビットの各2進桁がセル620の複数のs個のブロックの中の対応するブロックの割り当てられた値に等しいように、ブロックがねじれを除去された3D点群430からの少なくとも1つのデータ点を含むときに値1を割り当て、ブロックがねじれを除去された3D点群430からのいかなるデータ点も含まないときに値0を割り当てるように構成される。
【0089】
更新モジュール320は、sビット2進数列を対応する10進数に変換し、対応する10進数をセルを表すデータセットに含まれる第1のチャネルに保存するように構成され、第1のチャネルは、セル620の垂直分布値を表す。それぞれのねじれを除去された3D点群430の各セル620に関して、2D参照地
図350の垂直分布値の生成に関連して上で説明されたのと同様のプロセスでセル620が平坦であると判定されるとき、更新モジュール320は、セル620内の1つ以上のデータ点の最大強度値に基づいて強度値を決定し、セル620を表すデータセットに含まれる第2のチャネルに強度値を保存するように構成され、セルが平坦ではないと判定されるとき、更新モジュール320は、セル620を表すデータセットの第2のチャネルに値0を割り当てるように構成される。セルを表すデータセットは、ねじれを除去された3D点群430に対応する2D画像タイルを生成するために使用され、2D画像タイルの各ピクセルは、3D点群のタイル610のセル620に対応する。2D画像タイルの各ピクセルは、ピクセルの垂直分布値を示す第1のチャネルと、ピクセルの強度値を示す第2のチャネルとを含む。ピクセルの垂直分布値は、セル620を表すデータセットに含まれる第1のチャネルから取得され、ピクセルの強度値は、セル620を表すデータセットに含まれる第2のチャネルから取得される。
【0090】
次に、更新モジュール320は、垂直分布に基づくキーポイント抽出および重み計算プロセス465によって、垂直分布に関する1つ以上のキーポイントを決定し、垂直分布に関するキーポイントを使用して1つ以上の垂直分布重み値460を計算するように構成される。
【0091】
一部の実施形態において、垂直分布に基づくキーポイント抽出および重み計算プロセス465は、プロセッサ102によって実行されることが可能であり、複数のピクセルの各々のそれぞれの第1のチャネルのそれぞれの値に基づいて複数のピクセルを大きい方から小さい方に向かってソートし、ソートされたピクセルの中から、最初のm百個のピクセルを2D画像の垂直分布に関するキーポイントとして選択するステップであって、各キーポイントが、キーポイントのそれぞれの第1のチャネルのそれぞれの値に等しい垂直分布値
【数35】
を有する、ステップを含む。
【0092】
次に、更新モジュール320は、2D画像内の垂直分布に関する各キーポイントに関して、垂直分布に関するキーポイントの重要度利得値を計算し、記憶するように構成される。重要度利得値は、各キーポイントの重要度を調整し、次の式、
aij = -Nij + Nmax + k
によって定義される値aijによって表され、iは、2D画像内のキーポイントの行番号を示し、jは、2D画像内のキーポイントの列番号を示し、Nmaxは、2D画像内で最も高い点を有する2D画像内の点の総数を示し、Nminは、2D画像内で最も小さい非ゼロの点を有する2D画像内の点の総数を示し、kは、正の整数である。
【0093】
精度と速度の間のトレードオフが存在することに留意されたい。たとえば、100 x 100mの2D画像1000が、サイズ10m x 10mから20m x 20mの複数のブロックに分割され得る。ブロック数が多すぎると、アルゴリズムは、リアルタイムの性能を実現することができない場合がある。
【0094】
次に、更新モジュール320は、少なくとも垂直分布に関するキーポイントの重要度利得値に基づいて、2D画像の垂直分布重み値460を計算するように構成される。2D画像の垂直分布重み値460は、式
【数36】
によって定義される
【数37】
により表され、kは、1からnまでの整数であり、nは、それぞれの2D画像内の垂直分布に関するキーポイントの総数mであり、
【数38】
は、キーポイントの垂直分布値であり、a
kは、垂直分布に関するキーポイントの重要度利得値であり、
【数39】
は、乗り物100の現在位置に基づいてリアルタイムでダウンロードされ得る2D参照地
図350からのキーポイントの対応する垂直分布値である。計算された重み
【数40】
460は、正規化される場合がある。
【0095】
一部の実施形態において、更新モジュール320は、強度に基づくキーポイント抽出および重み計算プロセス455によって、強度に関する1つ以上のキーポイントを決定し、強度に関するキーポイントを使用して1つ以上の強度重み値450を計算するように構成される。
【0096】
一部の実施形態において、強度に基づくキーポイント抽出および重み計算プロセス455は、プロセッサ102によって実行されることが可能であり、複数のピクセルの各々のそれぞれの第2のチャネルのそれぞれの値に基づいて複数のピクセルを大きい方から小さい方に向かってソートし、ソートされたピクセルの中から、最初のl百個のピクセルを2D画像の強度に関するキーポイントとして選択するステップであって、各キーポイントが、キーポイントのそれぞれの第2のチャネルのそれぞれの値に等しい強度値
【数41】
を有する、ステップを含む。
【0097】
更新モジュール320は、強度に関する少なくとも1つのキーポイントに基づいて、2D画像の強度重み値450を計算するように構成される。強度重み値450は、式
【数42】
によって定義される
【数43】
により表され、kは、1からnまでの整数であり、nは、2D画像内の強度に関するキーポイントの総数lであり、
【数44】
は、キーポイントの強度値であり、
【数45】
は、ロードされた2D参照地
図350a、350bからのキーポイントの対応する強度値である。計算された重み
【数46】
450は、正規化される場合がある。
【0098】
それぞれ、ロードされた2D参照地
図350a、350bからの各ピクセルの
【数47】
および
【数48】
である
【数49】
または
【数50】
をロードされた2D参照地
図350a、350bから取得するために、キーポイント変換が、更新モジュール320によって実行される。キーポイント変換は、次の式、
【数51】
によって行われることが可能であり、[x, y, Θ]は、キーポイントに関連する粒子によって与えられる姿勢であり、
【数52】
は、LIDARフレーム内の2D画像1000からのキーポイントの座標であり、
【数53】
は、ロードされた2D参照地
図350a、350bからのキーポイントの座標である。
【0099】
図10Bは、ロードされた2D参照地図上に
図10Aの2D画像1000が重ね合わされた状態のロードされた2D参照地
図350aを示す。キーポイント変換を使用して、2D画像1000は、2D参照地
図350aにマッチングされ、重ね合わされた(またはその中に配置された)。
【0100】
情報エントロピーによる垂直分布重み値と強度の重み値との合併
一部の実施形態において、垂直分布重み値および強度重み値は、粒子フィルタリングプロセス320を使用して更新モジュール320によって更新され得る。一部の実施形態において、測位は、垂直分布重み値または強度重み値のみを使用することによって行われ得る。本実施形態においては、垂直分布重み値460と強度重み値450とが、位置特定プロセスの堅牢性を高めるために更新モジュール320のサブモジュール470において合併される。更新モジュール320は、2D画像1000内の各キーポイントiに関して、垂直分布重み値
【数54】
460および強度重み値
【数55】
450の一方または両方を、少なくとも、垂直分布重み値
【数56】
460および強度重み値
【数57】
450の一方または両方の情報エントロピー値に基づいて更新するように構成される。
【0101】
垂直分布重み値460の情報エントロピー値H
vertは、次の式、
【数58】
によって定義され、iは、1からNまでの整数であり、Nは、粒子フィルタの粒子の総数であり、
【数59】
は、第iの粒子の垂直分布重み値であり、
【数60】
は、キーポイントの垂直分布重み値460である。
【0102】
強度重み値450の情報エントロピー値H
inteは、次の式、
【数61】
によって定義され、iは、1からNまでの整数であり、Nは、粒子フィルタの粒子の総数であり、
【数62】
は、第iの粒子の強度重み値であり、
【数63】
は、キーポイントの強度重み値460である。
【0103】
一部の実施形態において、粒子フィルタの粒子の総数Nは、予め決められた値を有する。たとえば、Nは、2000~5000の間の数であってよい。小さなNを用いる粒子フィルタリングプロセスは、高速である可能性があるが堅牢性に劣る可能性が高く、一方、大きなNを用いる粒子フィルタリングプロセスは、より低速であるが堅牢性により優れる可能性がある。
【0104】
各粒子442は、可能な姿勢[x, y, Θ]を含み、N個の粒子は、N個の可能な姿勢につながる。粒子フィルタリング更新モジュール320は、N個の姿勢を使用して、キーポイントの座標を2D画像1000から2D参照地
図350に移す。移されたキーポイントが2D参照地
図350と非常によく一致している場合、この可能な姿勢(粒子)は高い重み値を受け取ってよく、そうでない場合、重み値は小さくなる。
【0105】
サブプロセス482によって、H
vertおよびH
inteの一方または両方が所与の閾値未満である(たとえば、0に非常に近い)とき、対応する垂直分布重み値
【数64】
460および対応する強度重み値
【数65】
450の一方または両方の更新は、スキップされることが可能であり、合併された重み
【数66】
が、粒子フィルタのすべての粒子を再サンプリングするために使用され、合併された重み
【数67】
は、式、
【数68】
に基づいて定義される。
【0106】
それから、再サンプリングモジュール340が、合併された重みを用いて実行され得る。粒子フィルタ300における予測/更新/再サンプリングのサイクルを繰り返して、低周波数の2Dの姿勢が、更新された重み480を平均することに基づいて取得され得る。たとえば、これらの粒子の加重平均が、粒子フィルタモジュール300の出力である姿勢推定値[x', y', Θ'] 360である。出力周波数は、通常、10Hzなど、5~20Hzの間のLIDARスキャンシステム114の周波数と同じであってよい。これは、低周波数データと考えられる。
【0107】
より詳細には、姿勢推定値[x', y', Θ'] 360を生成するために、プロセッサ102は、2D画像内の各キーポイントに関して、2D画像1000内のキーポイントの位置[x
k
L, y
k
L](上で
【数69】
とも記述された)およびヨー角値Θ
Lに基づいて、ロードされた2D参照地
図350a、350bからキーポイントの対応する地図座標[x
k
M, y
k
M](上で
【数70】
とも記述された)を取得するように構成される。それから、プロセッサ102は、少なくとも1つのキーポイントの対応する地図座標[x
k
M, y
k
M]と、対応する垂直分布重み値460および強度重み値450の一方または両方とに基づいて、乗り物の推定された位置[x', y']を生成するように構成される。同様に、プロセッサ102は、少なくとも1つのキーポイントのヨー角値Θ
Lと、対応する垂直分布重み値460および強度重み値450の一方または両方とに基づいて、乗り物105の推定されたヨー角値Θ'を生成するように構成される。
【0108】
図11は、本開示の1つの例示的な実施形態による、乗り物の2D位置およびヨー角を決定する方法1100の流れ図である。方法1100は、たとえば、乗り物制御システム115のプロセッサ102によって実行されるソフトウェアにより実施されてよい。そのような方法1100を実施するためのソフトウェアのコーディングは、本開示を提供された当業者の範囲内である。方法1100は、追加のステップまたは図示されたおよび/もしくは説明されたよりも少ないステップを含む場合があり、異なる順序で実行される場合がある。方法1110を実行するためにプロセッサ102によって実行可能な機械可読コードが、乗り物制御システム115のメモリ126などの非一時的機械可読媒体に記憶されてよい。
【0109】
方法1100は、ステップ1101において始まる。ステップ1100において、乗り物105の初期位置が、GPSユニットから受信され、初期位置は、地図座標[x
ini, y
ini]によって表されてよい。ステップ1103において、2D参照地
図350が、乗り物100の初期位置に基づいてダウンロードされ、一部の実施形態においては、2D参照地図の1つ以上の画像タイルが、乗り物100の位置に基づいてダウンロードされてよく、各画像タイルは、たとえば、3メートルなど、2~5メートルの辺の長さの特定のサイズであってよい。ステップ1105において、LIDARサブシステム114からの3D点群410が、受信され、3D点群410は、ねじれを除去された3D点群430を生成するために処理され得る。ステップ1107において、3D点群(またはねじれを除去された3D点群)430が、複数のピクセルを含む2D画像に変換される。ステップ1107は、ステップ1109および1111を含んでよく、これらのステップは、同時にまたは逐次的に実行されてよい。ステップ1109において、3D点群(またはねじれを除去された3D点群)430の各セル620に関して、垂直分布値が決定され、セル620を表すデータセットに含まれる第1のチャネルに記憶される。ステップ1111において、3D点群(またはねじれを除去された3D点群)430の各セルに関して、強度値が決定され、セル620を表すデータセットに含まれる第2のチャネルに記憶される。ステップ1113において、3D点群に関する複数の垂直分布のキーポイントおよび複数の強度のキーポイントが生成される。ステップ1115において、データ点の垂直分布重み値および強度重み値が計算され、メモリ126に記憶される。ステップ1117において、適切な場合、情報エントロピー値に基づく1つ以上の重み値が更新される。ステップ1119において、乗り物105の推定された位置およびヨー角が、重み値に基づいて生成される。
【0110】
6DOFの位置および向きの生成
図5は、本開示の1つの例示的な実施形態による、自律的な乗り物のリアルタイムの位置特定のための方法500を示すブロック図である。
図12は、本開示の1つの例示的な実施形態による、自律的な乗り物のリアルタイムの位置特定のための方法1200の流れ図を示す。方法500、1200は、たとえば、乗り物制御システム115のプロセッサ102によって実行されるソフトウェアにより実施されてよい。そのような方法500、1200を実施するためのソフトウェアのコーディングは、本開示を提供された当業者の範囲内である。方法500、1200は、追加のステップまたは図示されたおよび/もしくは説明されたよりも少ないステップを含む場合があり、異なる順序で実行される場合がある。方法500、1200を実行するためにプロセッサ102によって実行可能な機械可読コードが、乗り物制御システム115のメモリ126などの非一時的機械可読媒体に記憶されてよい。
【0111】
方法500、1200は、ステップ1210において始まる。ステップ3103Dにおいて、点群410が、乗り物105のLIDARスキャンシステム114から受信され、オドメトリデータ415が、乗り物105の車輪オドメトリユニット117から受信される。任意で、さらなるオドメトリデータが、乗り物105のIMU 118から受信されてよい。任意のステップとして、3D点群410は、ねじれを除去された3D点群430を生成するために処理されてよい。ステップ1220において、ロードされた2D参照地
図350a、350bの一連の2D画像タイルが、乗り物100の初期位置に基づいて、(上述のように)外部ストレージからダウンロードされるか、または乗り物100のメモリ126から取得される。乗り物100の初期位置は、衛星受信機132を介してGPS衛星から受信されたGPS信号から取得される。乗り物100の初期位置は、乗り物100の座標[x
ini, y
ini]を含んでよい。一部の実施形態において、乗り物100の初期位置は、乗り物100の初期ヨー角値Θ
iniをさらに含んでよい。ステップ1230において、粒子フィルタプロセス300が、LIDARスキャンユニット114から取得された現在の3D点群410または現在の3D点群410から生成されたねじれを除去された3D点群430から2D画像1000を生成するために実行される。2D画像1000は、一辺の長さが20から200mの間の長方形または正方形(たとえば、100m x 100m)であってよい。ステップ1230において、乗り物100の低周波数(たとえば5~20Hz)の姿勢推定値[x', y', Θ'] 360が、上で
図4に関連して説明されたプロセスに基づいてやはり出力される。ステップ1210から1230と並列的であることが可能であるステップ1240において、乗り物100のIMU 118および/または車輪オドメトリユニット117からのオドメトリデータ415が、取得される。オドメトリデータ415は、IMU 118または車輪オドメトリユニット117の動作周波数に基づいて、50~200Hzの周波数で取得され得る。ステップ1250において、低周波数の2D姿勢推定値[x', y', Θ'] 360が、最終的な姿勢推定値[x
f, y
f, Θ
f] 530を取得するために拡張カルマンフ
ィルタ(EKF)520によってオドメトリデータ415と統合される。この最終的な姿勢推定値は、50から200Hzまでであることが可能であるIMUユニット118の周波数値と同等の周波数値で取得される。
【0112】
ステップ1260において、座標[x
f, y
f, Θ
f] 530をロードされた2D参照地
図350a、350bにマッピングし、ロードされた2D参照地
図350a、350bの画像タイル820a、820b、820c内の対応する画素の第3の(B)チャネル790に記憶された高度の高さの値を調べることによって、高度値Z
f 550が生成される。
【0113】
ステップ1210から1260と並行して、オドメトリデータ5400が、IMU 118から受信され、乗り物105の最終的なロールRfおよび最終的なピッチPf 570が、姿勢決定アルゴリズム560に基づいて決定される。
【0114】
ステップ1280において、乗り物105の最終的な6DOFの高周波数の姿勢580[xf, yf, zf]、ロールRf、ピッチPf、およびヨー角Θfが生成され、経路計画モジュール174などの乗り物100内の異なるユニットに出力される。
【0115】
ステップ1290において、乗り物100が、乗り物100の高周波数の姿勢または場所580[Xf, Yf, Zf, Θf, Rf, Pf]に基づいて乗り物制御システム115によって制御されてよい。乗り物コントローラ115のプロセッサ102は、駆動制御システム150のためのコマンドまたは命令を生成する自律運転モジュール172の命令を実行してよい。駆動制御システム150は、乗り物100を乗り物100の軌道に従わせるようにステアリングユニット152、ブレーキユニット154、およびスロットルユニット156を制御する。
【0116】
本開示は、背景技術の節で説明された問題に対処するためのいくつかの技術的解決策を提案する。たとえば、情報エントロピーおよび合併された重みの使用は、垂直分布情報と強度との両方を利用して堅牢な位置特定プロセスを実現する。また、一部の実施形態の提案された解決策は、情報利得行列を利用して、各キーポイントの基礎となる形状的構造に基づいてキーポイントの重要度を示す。この方法によれば、提案された粒子フィルタアルゴリズムは、特定の種類のランドマーカーが欠落しているときにも依然として機能する。
【0117】
既存の2D位置特定方法とは異なり、提案された解決策は、2D位置特定アルゴリズムの計算の複雑さで高周波数の3D位置および向きを生成することができる。絶対高度Zfは、地域規模の3D点群地図から事前に取得された2D参照地図に埋め込まれた対応する高度の高さの情報と2D座標をマッチングすることによって計算される。
【0118】
Intel i7 CPUおよびLinuxオペレーティングシステムを備えたデスクトップPCにおいて、マッチング周波数は、乗り物100のLIDARスキャンシステム114の例示周波数である10Hzに達し得る。
【0119】
本開示において導入された2D参照地図は、サイズが小さく、小さなメモリ空間を占有する。たとえば、それぞれの100m x 100mの地図タイルは、約300KBであり、これは、セルラデータネットワークを介して複数の地図タイルをリアルタイムでダウンロードまたは転送することを容易にする。
【0120】
エントロピーに基づく融合方法は、測位の精度および堅牢性を向上させる。ロードテストの結果は、都市環境内で、位置の誤差が20cm未満であることを示す。姿勢誤差は、0.2度未満である(RTK-GPSの出力がグラウンドトゥルース(ground truth)として使用される)。さらに、アルゴリズムは、強度が検出され得ないときにうまく機能する。
【0121】
一部の実施形態においては、2D画像1000を2D参照地
図350にマッピングするために異なるアルゴリズムが使用される場合がある。たとえば、正規分布変換(NDT: Normal Distributions Transform)、反復最近接点(ICP: Iterative Closest Point)、または改良されたNDTもしくはICPアルゴリズムが、使用され得る。しかし、これらの方法で必要とされる地図サイズは、本発明に記載の提案された解決策によって必要とされる地図サイズよりもはるかに大きい傾向があり、NDT、ICPアルゴリズムを実行する計算の複雑さも、本発明に記載の提案された解決策を実行するために必要とされるよりも高い傾向がある。
【0122】
本開示において導入された位置特定方法は、屋内または屋外の移動ロボットまたはUAVにおいても使用され得る。
【0123】
3D点群からの動的な物体のほとんどが、中に十分なレーザポイント(laser point)を持たないピクセルを排除することによって除去されたが、本開示において提案された特徴(たとえば、垂直分布および強度に基づくキーポイント)は、サイズが小さい。この解決策は、特徴のライフロングマッピング(lifelong mapping)に使用され得る。たとえば、特徴のサイズが比較的小さいので、乗り物は、セルラネットワークを通じて特徴データおよび位置特定結果を中央制御センターに送り返すことができる。中央制御センターは、これらの特徴データを使用して環境の変化を検出し、それに応じて地図を更新することができる。
【0124】
説明された上述の方法を実施するためのソフトウェアおよびソフトウェアモジュールのコーディングは、本開示を考慮する当業者の範囲内である。上述の方法を実行するための1つ以上のそれぞれのデバイスの1つ以上のプロセッサによる実行のためのソフトウェアコードおよび/またはソフトウェアモジュールの実行可能な命令が、乗り物制御システムのメモリとしての機械可読媒体に記憶されてよい。本明細書において説明された流れ図および図面のステップおよび/または動作は、例示のみを目的とする。本開示の教示から逸脱しないこれらのステップおよび/または動作に対する多くの変更が存在する可能性がある。たとえば、ステップが、異なる順序で実行される場合があり、またはステップが、追加されるか、削除されるか、もしくは修正される場合がある。プロセッサ102は、方法1100または方法1200の動作の多くを実行するものとして説明されているが、1つ以上の専用のデジタル信号プロセッサ(DSP)、グラフィックス処理ユニット(GPU)、または画像プロセッサが、説明された動作の一部を実行するために使用されてよい。説明された動作を実行する特定の処理エンティティは、本開示を限定するように意図されていない。
【0125】
開示された範囲内のすべての値および部分的な範囲も、開示される。また、本明細書において開示され、示されたシステム、デバイス、およびプロセスは、特定の数の要素/構成要素を含む場合があるが、システム、デバイス、および組立体は、追加の要素/構成要素またはより少ないそのような要素/構成要素を含むように修正されてよい。たとえば、開示された要素/構成要素のいずれかが単数であるものとして参照される場合があるが、本明細書において開示された実施形態は、複数のそのような要素/構成要素を含むように修正されてよい。本明細書において説明された対象は、テクノロジーのすべての適切な変化を網羅し、包含することを意図している。
【0126】
本開示が少なくとも部分的に方法の観点から説明されているが、当業者は、本開示が、ハードウェア(DSP、ASIC、またはFPGA)によるのか、ソフトウェアによるのか、またはそれらの組み合わせによるのかにかかわらず、説明された方法の態様および特徴の少なくとも一部を実行するための様々な構成要素も対象とすることを理解するであろう。したがって、本開示の技術的解決策は、処理デバイス(たとえば、乗り物制御システム)が本明細書において開示された方法の例を実行することを可能にする、その上に有形で記憶される実行可能な命令を記憶させた不揮発性または非一時的機械可読媒体(たとえば、光ディスク、フラッシュメモリなど)に具現化されてよい。
【0127】
本開示は、請求項の対象から逸脱することなしにその他の特定の形態で具現化される可能性がある。説明された例示的な実施形態は、すべての点において例示的とだけみなされるべきであり、限定的とみなされるべきではない。本開示は、テクノロジーのすべての適切な変化を網羅し、包含することを意図している。したがって、本開示の範囲は、上記の説明によってではなく添付の請求項によって示される。請求項の範囲は、例において説明された実施形態によって限定されるべきでなく、説明に合致する最も広い解釈をそのまますべて与えられるべきである。
【符号の説明】
【0128】
100 自律的な乗り物
102 プロセッサ
110 センサー
112 カメラ
113 コントローラ
114 LIDARスキャンシステム
115 乗り物制御システム、乗り物コントローラ
116 SARユニット
117 車輪オドメトリユニット
118 慣性計測装置(IMU)
120 その他のセンサー、レーザ光源
122 ランダムアクセスメモリ(RAM)
124 読み出し専用メモリ(ROM)
126 永続的(不揮発性)メモリ
130 ワイヤレストランシーバ、光スイッチ
132 衛星受信機
134 リアルタイムクロック
136 タッチスクリーン
138 スピーカ
140 マイクロフォン、検出器サブシステム
142 データポート
150 駆動制御システム
152 ステアリングユニット
154 ブレーキユニット
156 スロットル(またはアクセル)ユニット
160 オペレーティングシステムソフトウェア
162 自律運転システム
164 乗り物位置特定モジュール
166 駐車支援モジュール
168 自律駐車モジュール
170 運転支援モジュール
172 自律運転モジュール
174 経路計画モジュール
176 知覚モジュール
178 その他のモジュール
180 データ
182 センサーデータ
184 ユーザデータ
186 ダウンロードキャッシュ
190 機械システム
192 エンジン
194 トランスミッション
196 車輪
300 粒子フィルタモジュール
310 予測モジュール
320 更新モジュール
340 再サンプリングモジュール
350 2D参照地図
350a 2D参照地図
350b 2D参照地図
3501 2D参照地図
360 位置およびヨー角、姿勢[x', y', Θ']
400 更新プロセス
410 3D点群
415 オドメトリデータ
430 ねじれを除去された3D点群
440 プロセス
442 粒子
450 強度重み値
455 強度に基づくキーポイント抽出および重み計算プロセス
460 垂直分布重み値
465 垂直分布に基づくキーポイント抽出および重み計算プロセス
470 サブモジュール
480 更新された重み
482 サブプロセス
500 位置特定方法
520 拡張カルマンフィルタ(EKF)
530 最終的な姿勢推定値[xf, yf, Θf]
550 高度値Zf
560 姿勢決定アルゴリズム
570 最終的なロールRfおよび最終的なピッチPf
580 高周波数の姿勢または場所[Xf, Yf, Zf, Θf, Rf, Pf]
5400 オドメトリデータ
600 三次元(3D)点群
610 タイル
620 セル
625 辺
700a データセット
700b データセット
700c データセット
710 ブロック
710a ブロック
710b ブロック
710c ブロック
710d ブロック
710e ブロック
720a データ点
720b データ点
720c データ点
720d データ点
720e データ点
720f データ点
720g データ点
720h データ点
730 セル
732 セル
734 セル
736 セル
740 上限
743 長さR
745 下限
750a 最高高度の高さhi、高度の高さの値h3
750b 最高高度の高さhi、高度の高さの値h2
750c 最高高度の高さhi、高度の高さの値h1
755 最低高度の高さhMapMinimum
760 最高高度hmax_map
765 最低高度hmin_map
770a 第1のチャネル
770b 第1のチャネル
770c 第1のチャネル
780a 第2のチャネル
780b 第2のチャネル
780c 第2のチャネル
790 第3の(B)チャネル
790a 第3のチャネル
790b 第3のチャネル
790c 第3のチャネル
820 2D参照地図タイル
820a 2D参照地図タイル、2D画像タイル
820b 2D参照地図タイル、2D画像タイル
820c 2D参照地図タイル、2D画像タイル
1000 2D画像
1001 キーポイント
1100 方法
1200 方法