以下の詳細な説明は、添付図面を参照する。可能な場合には常に、図面及び以下の説明において、同じ又は同様の部分を指すのに同じ参照番号が使用される。幾つかの例示的な実施形態は、本明細書で説明されるが、変更形態、適応形態及び他の実装形態が可能である。例えば、図面に示す構成要素に対する置換形態、追加形態又は変更形態がなされ得、本明細書に記載される例示的な方法は、開示される方法のステップの置換、順序替え、削除又は追加により修正することができる。従って、以下の詳細な説明は、開示される実施形態及び例に限定されない。その代わり、適切な範囲は、添付の特許請求の範囲により規定される。
自律車両の概要
本開示の全体を通して使用するとき、「自律車両」という用語は、ドライバーの入力なしで少なくとも1つのナビゲーション変更を実施することができる車両を指す。「ナビゲーション変更」は、車両の操舵、ブレーキ、又は加速のうちの1つ又は複数の変更を指す。自律的であるために、車両は、完全に自動である(例えば、ドライバー又はドライバーの入力なしに完全に動作する)必要はない。むしろ、自律車両は、特定の時間期間中にドライバーの制御下で動作し、他の時間期間中にドライバーの制御なしで動作することができる車両を含む。自律車両は、(例えば、車両レーン制約間に車両コースを維持するために)操舵等の車両ナビゲーションの幾つかの側面のみを制御するが、他の側面(例えば、ブレーキ)をドライバーに任せ得る車両を含むこともできる。場合によっては、自律車両は、車両のブレーキ、速度制御及び/又は操舵の一部又は全部の側面を扱い得る。
人間のドライバーは、通常、車両を制御するために視覚的手掛かり及び観測に依存することから、交通基盤は、それに従って構築されており、レーンマーク、交通標識及び信号機は、視覚的情報を全てドライバーに提供するように設計されている。交通基盤のこれらの設計特性に鑑みて、自律車両は、カメラと、車両の環境から撮像される視覚的情報を分析する処理ユニットとを含み得る。視覚的情報は、例えば、ドライバーにより観測可能な交通基盤の構成要素(例えば、レーンマーク、交通標識、信号機等)及び他の障害物(例えば、他の車両、歩行者、瓦礫等)を含み得る。更に、自律車両は、ナビゲート時、車両の環境のモデルを提供する情報等の記憶される情報を使用することもできる。例えば、車両は、GPSデータ、センサデータ(例えば、加速度計、速度センサ、サスペンションセンサ等からの)及び/又は他のマップデータを使用して、車両が走行している間、車両の環境に関連する情報を提供し得、車両(及び他の車両)は情報を使用して、モデルでのそれ自体の位置を特定し得る。
本開示の幾つかの実施形態では、自律車両は、ナビゲート中に(例えば、カメラ、GPSデバイス、加速度計、速度センサ、サスペンションセンサ等から)得られた情報を使用し得る。他の実施形態では、自律車両は、ナビゲート中に、車両(又は他の車両)による過去のナビゲーションから得られた情報を使用し得る。更に他の実施形態では、自律車両は、ナビゲート中に得られた情報と過去のナビゲーションから得られた情報との組み合わせを使用し得る。以下の節は、開示される実施形態によるシステムの概要を提供し、続いて、そのシステムによる前向きの撮像システム及び方法の概要を提供する。以下の節では、自律車両ナビゲーションのための疎なマップを構築、使用、及び更新するためのシステム及び方法について開示される。
システム概要
図1は、開示される例示的な実施形態によるシステム100のブロック図表現である。システム100は、特定の実施例の要件に応じて様々な構成要素を含み得る。幾つかの実施形態では、システム100は、処理ユニット110、画像取得ユニット120、位置センサ130、1つ又は複数のメモリユニット140、150、マップデータベース160、ユーザインタフェース170及び無線送受信機172を含み得る。処理ユニット110は、1つ又は複数の処理デバイスを含み得る。幾つかの実施形態では、処理ユニット110は、アプリケーションプロセッサ180、画像プロセッサ190又は任意の他の適切な処理デバイスを含み得る。同様に、画像取得ユニット120は、特定の用途の要件に応じて任意の数の画像取得デバイス及び構成要素を含み得る。幾つかの実施形態では、画像取得ユニット120は、撮像デバイス122、撮像デバイス124、撮像デバイス126等のうちの1つ又は複数の撮像デバイス(例えば、カメラ)を含み得る。システム100は、処理デバイス110を画像取得デバイス120に通信可能に接続するデータインタフェース128を含むこともできる。例えば、データインタフェース128は、画像取得デバイス120によって取得される画像データを処理ユニット110に送信するためのうちの1つ又は複数の任意の有線リンク及び/又は無線リンクを含み得る。
無線送受信機172は、無線周波数、赤外線周波数、磁場又は電場の使用により無線インタフェースを介して伝送を1つ又は複数のネットワーク(例えば、セルラやインターネット等)と交換するように構成される1つ又は複数のデバイスを含み得る。無線送受信機172は、任意の既知の標準を使用してデータを送信及び/又は受信し得る(例えば、Wi-Fi(登録商標)、Bluetooth(登録商標)、Bluetooth Smart、802.15.4、ZigBee(登録商標)等)。かかる伝送は、ホスト車両から1つ又は複数の遠隔設置されるサーバへの通信を含み得る。かかる伝送は、(例えば、ホスト車両の環境内の目標車両を考慮して又はかかる目標車両と共にホスト車両のナビゲーションの調整を促進するための)ホスト車両とホスト車両の環境内のうちの1つ又は複数の目標車両との間の(単方向又は双方向)通信、更に伝送側の車両の付近にある未指定の受け手へのブロードキャスト伝送も含み得る。
アプリケーションプロセッサ180及び画像プロセッサ190の両方は、様々なタイプの処理デバイスを含み得る。例えば、アプリケーションプロセッサ180及び画像プロセッサ190のいずれか一方又は両方は、マイクロプロセッサ、プリプロセッサ(画像プリプロセッサ等)、グラフィックスプロセッシングユニット(GPU)、中央演算処理装置(CPU)、サポート回路、デジタル信号プロセッサ、集積回路、メモリ又はアプリケーションを実行し、画像を処理して分析するのに適する任意の他のタイプのデバイスを含み得る。幾つかの実施形態では、アプリケーションプロセッサ180及び/又は画像プロセッサ190は、任意のタイプのシングルコア又はマルチコアプロセッサ、モバイルデバイスマイクロコントローラ、中央演算処理装置等を含み得る。例えば、Intel(登録商標)、AMD(登録商標)等の製造業者から入手可能なプロセッサ、又はNVIDIA(登録商標)、ATI(登録商標)等の製造業者から入手可能なGPUを含め、様々な処理デバイスが使用可能であり得、様々なアーキテクチャ(例えば、x86プロセッサ、ARM(登録商標)等)を含み得る。
幾つかの実施形態では、アプリケーションプロセッサ180及び/又は画像プロセッサ190は、Mobileye(登録商標)から入手可能な任意のEyeQシリーズのプロセッサチップを含み得る。これらのプロセッサ設計は、それぞれローカルメモリ及び命令セットを有する複数の処理ユニットを含む。そのようなプロセッサは、複数の画像センサから画像データを受信するビデオ入力を含み得ると共に、ビデオ出力機能を含むこともできる。一例では、EyeQ2(登録商標)は、332MHzで動作する90nm-ミクロン技術を使用する。EyeQ2(登録商標)アーキテクチャは、2つの浮動小数点ハイパースレッド32ビットRISC CPU(MIPS32(登録商標)34K(登録商標)コア)、5つのビジョン計算エンジン(VCE)、3つのベクトルマイクロコードプロセッサ(VMP(登録商標))、Denali64ビットモバイルDDRコントローラ、128ビット内部音響相互接続、デュアル16ビットビデオ入力及び18ビットビデオ出力コントローラ、16チャネルDMA及び幾つかの周辺機器からなる。MIPS34K CPUは、5つのVCE、3つのVMP(商標)及びDMA、第2のMIPS34K CPU及びマルチチャネルDMA並びに他の周辺機器を管理する。5つのVCE、3つのVMP(登録商標)及びMIPS34K CPUは、多機能バンドルアプリケーションにより要求される集中的なビジョン計算を実行することができる。別の例では、開示される実施形態において、第3世代プロセッサであり、EyeQ2(登録商標)よりも6倍強力なEyeQ3(登録商標)を使用し得る。他の例では、EyeQ4(登録商標)及び/又はEyeQ5(登録商標)を開示される実施形態で使用することができる。当然ながら、それよりも新しい又は将来のEyeQ処理デバイスは、開示される実施形態と共に使用されることもある。
本明細書で開示される処理デバイスのいずれも特定の機能を実行するように構成することができる。記載のEyeQプロセッサ又は他のコントローラもしくはマイクロプロセッサのいずれか等の処理デバイスを、特定の機能を実行するように構成することは、コンピュータ実行可能命令をプログラムし、処理デバイスの動作中に実行するためにそれらの命令を処理デバイスに提供することを含み得る。幾つかの実施形態では、処理デバイスを構成することは、処理デバイスにアーキテクチャ的命令を直接プログラムすることを含み得る。例えば、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等の処理デバイス、及び同様のものは、例えば、1つ又は複数のハードウェア記述言語(HDL)を使用して構成され得る。
他の実施形態では、処理デバイスを構成することは、動作中に処理デバイスがアクセス可能なメモリ上に実行可能命令を記憶することを含み得る。例えば、処理デバイスは、動作中にメモリにアクセスして、記憶される命令を取得及び実行し得る。いずれにせよ、本明細書で開示される検知、画像分析及び/又はナビゲーション機能を実行するように構成される処理デバイスは、ホスト車両の複数のハードウェアベースの構成要素を制御する専用のハードウェアベースのシステムを表す。
図1は、処理ユニット110に含まれる2つの別個の処理デバイスを示すが、より多数又はより少数の処理デバイスを使用することもできる。例えば、幾つかの実施形態では、単一の処理デバイスを使用して、アプリケーションプロセッサ180及び画像プロセッサ190のタスクを達成し得る。他の実施形態では、これらのタスクは、3つ以上の処理デバイスにより実行され得る。更に、幾つかの実施形態では、システム100は、画像取得ユニット120等の他の構成要素を含まず、処理ユニット110のうちの1つ又は複数を含み得る。
処理ユニット110は、様々なタイプのデバイスを含み得る。例えば、処理ユニット110は、コントローラ、画像プリプロセッサ、中央演算処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)、サポート回路、デジタル信号プロセッサ、集積回路、メモリ又は画像を処理し分析する任意の他のタイプのデバイス等の様々なデバイスを含み得る。画像プリプロセッサは、画像センサから画像を撮像し、デジタル化し、処理するビデオプロセッサを含み得る。CPUは、任意の数のマイクロコントローラ又はマイクロプロセッサを含み得る。GPUはまた、任意の数のマイクロコントローラ又はマイクロプロセッサを含み得る。サポート回路は、キャッシュ、電源、クロック及び入出力回路を含め、当技術分野で一般に周知の任意の数の回路であり得る。メモリは、プロセッサにより実行されると、システムの動作を制御するソフトウェアを記憶し得る。メモリは、データベース及び画像処理ソフトウェアを含み得る。メモリは、任意の数のランダムアクセスメモリ、読み取り専用メモリ、フラッシュメモリ、ディスクドライブ、光学記憶装置、テープ記憶装置、リムーバブル記憶装置及び他のタイプの記憶装置を含み得る。一例では、メモリは、処理ユニット110とは別個であり得る。別の例では、メモリは、処理ユニット110に統合し得る。
各メモリ140、150は、プロセッサ(例えば、アプリケーションプロセッサ180及び/又は画像プロセッサ190)によって実行されるとき、システム100の様々な態様の動作を制御し得るソフトウェア命令を含み得る。これらのメモリユニットは、様々なデータベース及び画像処理ソフトウェア並びに例えばニューラルネットワーク又はディープニューラルネットワーク等のトレーニングされたシステムを含み得る。メモリユニットは、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、ディスクドライブ、光学記憶装置、テープ記憶装置、リムーバブル記憶装置及び/又は任意の他のタイプの記憶装置を含み得る。幾つかの実施形態では、メモリユニット140、150は、アプリケーションプロセッサ180及び/又は画像プロセッサ190とは別個であり得る。他の実施形態では、これらのメモリユニットは、アプリケーションプロセッサ180及び/又は画像プロセッサ190に統合され得る。
位置センサ130は、システム100の少なくとも1つの構成要素に関連付けられた位置を特定するのに適する任意のタイプのデバイスを含み得る。幾つかの実施形態では、位置センサ130はGPS受信機を含み得る。そのような受信機は、全地球測位システム衛星によりブロードキャストされる信号を処理することにより、ユーザの位置及び速度を特定することができる。位置センサ130からの位置情報は、アプリケーションプロセッサ180及び/又は画像プロセッサ190に提供し得る。
幾つかの実施形態では、システム100は、車両200の速度を測定するための速度センサ(例えば、回転速度計、速度計)及び/又は車両200の加速度を測定するための加速度計(単軸又は多軸のいずれか)等の構成要素を含み得る。
ユーザインタフェース170は、情報を提供するか、又はシステム100の1人もしくは複数のユーザから入力を受信するのに適する任意のデバイスを含み得る。幾つかの実施形態では、ユーザインタフェース170は、例えば、タッチスクリーン、マイクロフォン、キーボード、ポインタデバイス、トラックホイール、カメラ、つまみ、ボタン等を含め、ユーザ入力デバイスを含み得る。このような入力デバイスを用いて、ユーザは、命令もしくは情報をタイプし、音声コマンドを提供し、ボタン、ポインタもしくは目追跡機能を使用して、又は情報をシステム100に通信する任意の他の適する技法を通して画面上のメニュー選択肢を選択することにより、システム100に情報入力又はコマンドを提供可能であり得る。
ユーザインタフェース170は、ユーザに情報を提供するか、又はユーザから情報を受信し、例えばアプリケーションプロセッサ180による使用のためにその情報を処理するように構成される1つ又は複数の処理デバイスを備え得る。幾つかの実施形態では、そのような処理デバイスは、目の動きを認識して追跡する命令、音声コマンドを受信して解釈する命令、タッチスクリーンで行われたタッチ及び/又はジェスチャを認識して解釈する命令、キーボード入力又はメニュー選択に応答する命令等を実行し得る。幾つかの実施形態では、ユーザインタフェース170は、ディスプレイ、スピーカ、触覚デバイス及び/又は出力情報をユーザに提供する任意の他のデバイスを含み得る。
マップデータベース160は、システム100にとって有用なマップデータを記憶する任意のタイプのデータベースを含み得る。幾つかの実施形態では、マップデータベース160は、道路、水の特徴、地理的特徴、ビジネス、関心点、レストラン、ガソリンスタンド等を含め、様々な項目の、基準座標系での位置に関連するデータを含み得る。マップデータベース160は、そのような項目の位置のみならず、例えば記憶される特徴のいずれかに関連付けられた名称を含め、それらの項目に関連する記述子も記憶し得る。幾つかの実施形態では、マップデータベース160は、システム100の他の構成要素と共に物理的に配置し得る。代替又は追加として、マップデータベース160又はその一部は、システム100の他の構成要素(例えば、処理ユニット110)に関して遠隔に配置し得る。そのような実施形態では、マップデータベース160からの情報は、有線又は無線データ接続を介してネットワークにダウンロードし得る(例えば、セルラネットワーク及び/又はインターネット等を介して)。場合によっては、マップデータベース160は、特定の道路の特徴(例えば、レーンマーク)又はホスト車両の目標軌道の多項式表現を含む疎なデータモデルを記憶し得る。そのようなマップを生成するシステム及び方法については、図8から図19を参照して以下で論じる。
撮像デバイス122、124及び126は、それぞれ環境から少なくとも1つの画像を撮像するのに適する任意のタイプのデバイスを含み得る。更に、任意の数の撮像デバイスを使用して、画像プロセッサに入力する画像を取得し得る。幾つかの実施形態は、単一の撮像デバイスのみを含み得、他の実施形態は、2つ、3つ、更に4つ以上の撮像デバイスを含み得る。撮像デバイス122、124及び126については、図2Bから図2Eを参照して更に以下に説明する。
システム100又はシステム100の様々な構成要素は、様々な異なるプラットフォームに組み込み得る。幾つかの実施形態では、システム100は図2Aに示すように、車両200に含め得る。例えば、車両200は、図1に関して上記で説明したように、処理ユニット110及びシステム100の任意の他の構成要素を備え得る。幾つかの実施形態では、車両200は単一の撮像デバイス(例えば、カメラ)のみを備え得、図2Bから図2Eに関連して考察した実施形態等の他の実施形態では、複数の撮像デバイスが使用し得る。例えば、図2Aに示すように、車両200の撮像デバイス122及び124のいずれかは、ADAS(先進ドライバー支援システム)撮像セットの一部であり得る。
画像取得ユニット120の一部として車両200に含まれる撮像デバイスは、任意の適する位置に位置決めし得る。幾つかの実施形態では、図2Aから図2E及び図3Aから図3Cに示すように、撮像デバイス122は、バックミラーの近傍に配置決めし得る。この位置は、車両200のドライバーと同様の視線を提供し得、ドライバーにとって何が見え、何が見えないかの判断を支援し得る。撮像デバイス122は、バックミラーの近傍の任意の位置に位置し得るが、撮像デバイス122をミラーのドライバー側に配置することは、ドライバーの視野及び/又は視線を表す画像の取得を更に支援し得る。
画像取得ユニット120の撮像デバイスに他の位置を使用することもできる。例えば、撮像デバイス124は、車両200のバンパー上又はバンパー内に配置し得る。そのような位置は、広視野を有する撮像デバイスに特に適し得る。バンパーに配置される撮像デバイスの視線は、ドライバーの視線と異なることができ、従って、バンパー撮像デバイス及びドライバーは、同じ物体を常に見ているわけではない。撮像デバイス(例えば、撮像デバイス122、124及び126)は、他の位置に配置することもできる。例えば、撮像デバイスは、車両200のサイドミラーのうちの一方又は両方の中又は上、車両200のルーフ、車両200のフード、車両200のトランク、車両200の側部に配置し得、車両200の任意のウィンドウに搭載、背後に位置決め又は前方に位置決めし得、車両200の前部及び/又は後部のライト内又はその近傍等に搭載し得る。
撮像デバイスに加えて、車両200は、システム100の他の様々な構成要素を含み得る。例えば、処理ユニット110は、車両のエンジン制御ユニット(ECU)に統合されるか、又はECUとは別個に車両200に含まれ得る。車両200には、GPS受信機等の位置センサ130を備えることもでき、車両200は、マップデータベース160並びにメモリユニット140及び150を含むこともできる。
上述したように、無線送受信機172は、1つ又は複数のネットワーク(例えば、セルラネットワーク、インターネット等)を介してデータを及び/又は受信し得る。例えば、無線送受信機172は、システム100により収集されるデータを1つ又は複数のサーバにアップロードし、データを1つ又は複数のサーバからダウンロードし得る。無線送受信機172を介して、システム100は、例えば、定期的に又は需要時にマップデータベース160、メモリ140及び/又はメモリ150に記憶されるデータへの更新を受信し得る。同様に、無線送受信機172は、システム100からの任意のデータ(例えば、画像取得ユニット120により撮像された画像、位置センサ130、他のセンサ又は車両制御システムにより受信されるデータ等)及び/又は処理ユニット110により処理される任意のデータを1つ又は複数のサーバにアップロードし得る。
システム100は、プライバシーレベル設定に基づいてデータをサーバ(例えば、クラウド)にアップロードし得る。例えば、システム100は、サーバに送信される、車両及び/又は車両のドライバー/所有者を一意に識別し得るタイプのデータ(メタデータを含む)を規制又は制限するプライバシーレベル設定を実施し得る。そのような設定は、例えば、無線送受信機172を介してユーザにより設定され得るか、工場デフォルト設定により初期化され得るか、又は無線送受信機172により受信されるデータにより設定され得る。
幾つかの実施形態では、システム100は、「高」プライバシーレベルに従ってデータをアップロードし得、設定の設定下において、システム100は、特定の車両及び/又はドライバー/所有者についてのいかなる詳細もないデータ(例えば、ルートに関連する位置情報、撮像された画像等)を送信し得る。例えば、「高」プライバシー設定に従ってデータをアップロードする場合、システム100は、車両識別番号(VIN)又は車両のドライバーもしくは所有者の氏名を含み得ず、代わりに、撮像された画像及び/又はルートに関連する限られた位置情報等のデータを送信し得る。
他のプライバシーレベルが意図される。例えば、システム100は、「中」プライバシーレベルに従ってデータをサーバに送信し得、車両及び/又は車両タイプのメーカー及び/又はモデル(例えば、乗用車、スポーツユーティリティ車、トラック等)等の「高」プライバシーレベル下では含まれない追加情報を含み得る。幾つかの実施形態では、システム100は、「低」プライバシーレベルに従ってデータをアップロードし得る。「低」プライバシーレベル設定下では、システム100は、特定の車両、所有者/ドライバー及び/又は車両が走行したルートの一部又は全体を一意に識別するのに十分なデータをアップロードし、そのような情報を含み得る。そのような「低」プライバシーレベルデータは、例えば、VIN、ドライバー/所有者氏名、出発前の車両の出発点、車両の意図される目的地、車両のメーカー及び/又はモデル、車両のタイプ等のうちの1つ又は複数を含み得る。
図2Aは、開示される実施形態による例示的な車両撮像システムの側面図表現である。図2Bは、図2Aに示される実施形態の概略上面図である。図2Bに示すように、開示される実施形態は、バックミラーの近傍及び/又は車両200のドライバー近傍に位置決めされる第1の撮像デバイス122と、車両200のバンパー領域(例えば、バンパー領域210の1つ)上又はバンパー領域内に位置決めされる第2の撮像デバイス124と、処理ユニット110とを有するシステム100を本体内に含む車両200を含み得る。
図2Cに示すように、撮像デバイス122及び124の両方は、車両200のバックミラーの近傍及び/又はドライバーの近傍に位置決めし得る。更に、2つの撮像デバイス122及び124が図2B及び図2Cに示されているが、他の実施形態が3つ以上の撮像デバイスを含み得ることを理解されたい。例えば、図2D及び図2Eに示す実施形態では、第1の撮像デバイス122、第2の撮像デバイス124及び第3の撮像デバイス126が車両200のシステム100に含まれる。
図2Dに示すように、撮像デバイス122は、車両200のバックミラーの近傍及び/又はドライバーの近傍に位置決めし得、撮像デバイス124及び126は、車両200のバンパー領域(例えば、バンパー領域210の1つ)上又は中に位置決めし得る。また、図2Eに示すように、撮像デバイス122、124及び126は、車両200のバックミラーの近傍及び/又はドライバーシートの近傍に位置決めし得る。開示される実施形態は、いかなる特定の数及び構成の撮像デバイスにも限定されず、撮像デバイスは、車両200内及び/又は車両200上の任意の適する位置に位置決めし得る。
開示される実施形態が車両に限定されず、他の状況でも適用可能なことを理解されたい。開示される実施形態が特定のタイプの車両200に限定されず、自動車、トラック、トレーラ及び他のタイプの車両を含む全てのタイプの車両に適用可能であり得ることも理解されたい。
第1の撮像デバイス122は、任意の適するタイプの撮像デバイスを含み得る。撮像デバイス122は光軸を含み得る。一例では、撮像デバイス122は、グローバルシャッタを有するAptina M9V024 WVGAセンサを含み得る。他の実施形態では、撮像デバイス122は、1280×960ピクセルの解像度を提供し得、ローリングシャッタを含み得る。撮像デバイス122は、様々な光学要素を含み得る。幾つかの実施形態では、1枚又は複数枚のレンズが含まれて、例えば撮像デバイスの所望の焦点距離及び視野を提供し得る。幾つかの実施形態では、撮像デバイス122に6mmレンズ又は12mmレンズを関連付け得る。幾つかの実施形態では、撮像デバイス122は、図2Dに示すように、所望の視野(FOV)202を有する画像を撮像するように構成し得る。例えば、撮像デバイス122は、46度FOV、50度FOV、52度FOV又は52度FOVを超える度数を含め、40度から56度の範囲内等の通常のFOVを有するように構成し得る。或いは、撮像デバイス122は、28度FOV又は36度FOV等の23から40度の範囲の狭いFOVを有するように構成し得る。加えて、撮像デバイス122は、100から180度の範囲の広FOVを有するように構成し得る。幾つかの実施形態では、撮像デバイス122は、広角バンパーカメラ又は最高で180度FOVを有するバンパーカメラを含み得る。幾つかの実施形態では、撮像デバイス122は、約100度の水平FOVを有するアスペクト比約2:1(例えば、H×V=3800×1900ピクセル)の7.2Mピクセル撮像デバイスであり得る。そのような撮像デバイスは、3撮像デバイス構成の代わりに使用し得る。大きいレンズ歪みに起因して、そのような撮像デバイスの垂直FOVは、撮像デバイスが半径方向に対称なレンズを使用する実装形態では、50度よりはるかに低くなり得る。例えば、そのようなレンズは、半径方向で対称ではないことがあり、それにより、水平FOV100度で、50度よりも大きい垂直FOVが可能である。
第1の撮像デバイス122は、車両200に関連付けられたシーンに対して複数の第1の画像を取得し得る。複数の第1の画像は、それぞれ一連の画像走査線として取得し得、これらはローリングシャッタを使用して撮像し得る。各走査線は複数のピクセルを含み得る。
第1の撮像デバイス122は、第1の一連の画像走査線のそれぞれの取得に関連付けられた走査率を有し得る。走査率は、画像センサが、特定の走査線に含まれる各ピクセルに関連付けられた画像データを取得することができる率を指し得る。
撮像デバイス122、124及び126は、例えば、CCDセンサ又はCMOSセンサを含め、任意の適するタイプ及び数の画像センサを含み得る。1つの実施形態では、CMOS画像センサはローリングシャッタと共に利用し得、それにより、行内の各ピクセルは一度に1つずつ読み取られ、行の走査は、画像フレーム全体が撮像されるまで行ごとに進められる。幾つかの実施形態では、行は、フレームに対して上から下に順次撮像し得る。
幾つかの実施形態では、本明細書に開示される撮像デバイス(例えば、撮像デバイス122、124及び126)のうちの1つ又は複数は、高解像度イメージャを構成し得、5Mピクセル超、7Mピクセル超、10Mピクセル超又はそれを超える解像度を有し得る。
ローリングシャッタの使用により、異なる行内のピクセルは異なる時間に露出され撮像されることになり得、それにより、スキュー及び他の画像アーチファクトが撮像された画像フレームで生じ得る。一方、撮像デバイス122がグローバル又は同期シャッタを用いて動作するように構成される場合、全てのピクセルは、同量の時間にわたり、共通の露出期間中に露出し得る。その結果、グローバルシャッタを利用するシステムから収集されるフレーム内の画像データは、特定の時刻のFOV全体(FOV202等)のスナップショットを表す。それとは逆に、ローリングシャッタを適用する場合、フレーム内の各行が露出され、データは異なる時間に撮像される。従って、移動中の物体は、ローリングシャッタを有する撮像デバイスでは歪んで見えることがある。この現象について以下により詳細に説明する。
第2の撮像デバイス124及び第3の撮像デバイス126は、任意のタイプの撮像デバイスであり得る。第1の撮像デバイス122のように、撮像デバイス124及び126のそれぞれは、光軸を含み得る。1つの実施形態では、撮像デバイス124及び126のそれぞれは、グローバルシャッタを有するAptina M9V024 WVGAセンサを含み得る。或いは、撮像デバイス124及び126のそれぞれは、ローリングシャッタを含み得る。撮像デバイス122のように、撮像デバイス124及び126は、様々なレンズ及び光学要素を含むように構成し得る。幾つかの実施形態では、撮像デバイス124及び126に関連付けられたレンズは、撮像デバイス122に関連付けられたFOV(FOV202等)と同じであるか、又は狭いFOV(FOV204及び206等)を提供し得る。例えば、撮像デバイス124及び126は、40度、30度、26度、23度、20度又は20度以下のFOVを有し得る。
撮像デバイス124及び126は、車両200に関連付けられたシーンに対して複数の第2及び第3の画像を取得し得る。複数の第2及び第3の画像のそれぞれは、第2及び第3の一連の画像走査線として取得し得、これらはローリングシャッタを使用して撮像し得る。各走査線又は各行は、複数のピクセルを有し得る。撮像デバイス124及び126は、第2及び第3の一連内に含まれる各画像走査線の取得に関連付けられた第2及び第3の走査率を有し得る。
各撮像デバイス122、124及び126は、任意の適する位置に、車両200に対して任意の適する向きで位置決めし得る。撮像デバイス122、124及び126の相対位置決めは、撮像デバイスから取得される情報を一緒に融合させることを支援するように選択し得る。例えば、幾つかの実施形態では、撮像デバイス124に関連付けられたFOV(FOV204等)は、撮像デバイス122に関連付けられたFOV(FOV202等)及び撮像デバイス126に関連付けられたFOV(FOV206等)と部分的に、又は完全に重複し得る。
撮像デバイス122、124及び126は、任意の適する相対高さで車両200に配置し得る。一例では、撮像デバイス122、124及び126間に高さ差があり得、高さ差は、立体分析を可能にするのに十分な視差情報を提供し得る。例えば、図2Aに示すように、2つの撮像デバイス122及び124は異なる高さにある。撮像デバイス122、124及び126間には横方向変位差もあり得、例えば処理ユニット110による立体分析に追加の視差情報を与える。横方向変位差は、図2C及び図2Dに示すように、dxで示し得る。幾つかの実施形態では、前部変位又は後部変位(例えば、範囲変位)が、撮像デバイス122、124、126間に存在し得る。例えば、撮像デバイス122は、撮像デバイス124及び/又は撮像デバイス126の0.5から2メートル以上背後に配置し得る。このタイプの変位では、撮像デバイスの1つが、他の撮像デバイスの潜在的なブラインドスポットをカバー可能であり得る。
撮像デバイス122は、任意の適する解像度能力(例えば、画像センサに関連付けられたピクセル数)を有し得、撮像デバイス122に関連付けられた画像センサの解像度は、撮像デバイス124及び126に関連付けられた画像センサの解像度よりも高いか、低いか、又は同じであり得る。幾つかの実施形態では、撮像デバイス122及び/又は撮像デバイス124及び126に関連付けられた画像センサは、解像度640×480、1024×768、1280×960又は任意の他の適する解像度を有し得る。
フレームレート(例えば、撮像デバイスが、次の画像フレームに関連付けられたピクセルデータの撮像に移る前、1つの画像フレームのピクセルデータの組を取得する速度)は、制御可能であり得る。撮像デバイス122に関連付けられたフレームレートは、撮像デバイス124及び126に関連付けられたフレームレートよりも高いか、低いか、又は同じであり得る。撮像デバイス122、124及び126に関連付けられたフレームレートは、フレームレートのタイミングに影響を及し得る様々なファクタに依存し得る。例えば、撮像デバイス122、124及び126のうちの1つ又は複数は、撮像デバイス122、124及び/又は126内の画像センサのうちの1つ又は複数のピクセルに関連付けられた画像データの取得前又は取得後に課される選択可能なピクセル遅延期間を含み得る。一般に、各ピクセルに対応する画像データは、デバイスのクロックレート(例えば、1クロックサイクル当たり1ピクセル)に従って取得し得る。更に、ローリングシャッタを含む実施形態では、撮像デバイス122、124及び126のうちの1つ又は複数は、撮像デバイス122、124及び/又は126内の画像センサのピクセル行に関連付けられた画像データの取得前又は取得後に課される選択可能な水平ブランク期間を含み得る。更に、撮像デバイス122、124及び/又は126のうちの1つ又は複数は、撮像デバイス122、124及び126の画像フレームに関連付けられた画像データの取得前又は取得後に課される選択可能な垂直ブランク期間を含み得る。
これらのタイミング制御により、各撮像デバイスの線走査率が異なる場合でも、撮像デバイス122、124及び126に関連付けられたフレームレートを同期させることが可能になり得る。更に、以下に更に詳細に論じるように、ファクタ(例えば、画像センサ解像度、最高線走査率等)の中でも特に、これらの選択可能なタイミング制御により、撮像デバイス122の視野が撮像デバイス124及び126のFOVと異なる場合でも、撮像デバイス122のFOVが撮像デバイス124及び126のうちの1つ又は複数のFOVと重複するエリアからの画像撮像を同期させることが可能になり得る。
撮像デバイス122、124及び126でのフレームレートタイミングは、関連付けられた画像センサの解像度に依存し得る。例えば、両デバイスの線走査率が同様であると仮定し、一方のデバイスが解像度640×480を有する画像センサを含み、他方のデバイスが解像度1280×960を有する画像センサを含む場合、より高い解像度を有するセンサからの画像データのフレーム取得ほど、長い時間が必要になる。
撮像デバイス122、124及び126での画像データ取得のタイミングに影響を及し得る別のファクタは、最高線走査率である。例えば、撮像デバイス122、124及び126に含まれる画像センサからの画像データ行の取得は、何らかの最小時間量を必要とする。ピクセル遅延期間が追加されないと仮定すると、画像データ行を取得するこの最小時間量は、特定のデバイスの最高線走査率に関連することになる。高い最高線走査率を提供するデバイスほど、より低い最高線走査率を有するデバイスよりも高いフレームレートを提供する潜在性を有する。幾つかの実施形態では、撮像デバイス124及び126のうちの一方又は両方は、撮像デバイス122に関連付けられた最高線走査率よりも高い最高線走査率を有し得る。幾つかの実施形態では、撮像デバイス124及び/又は126の最高線走査率は、撮像デバイス122の最高線走査率の1.25倍、1.5倍、1.75倍又は2倍以上であり得る。
別の実施形態では、撮像デバイス122、124及び126は、同じ最高線走査率を有し得るが、撮像デバイス122は、その最高走査率よりも低い又はそれに等しい走査率で動作し得る。システムは、撮像デバイス124及び撮像デバイス126のうちの一方又は両方が撮像デバイス122の線走査率と等しい線走査率で動作するように構成し得る。他の例では、システムは、撮像デバイス124及び/又は撮像デバイス126の線走査率が、撮像デバイス122の線走査率の1.25倍、1.5倍、1.75倍又は2倍以上であり得るように構成し得る。
幾つかの実施形態では、撮像デバイス122、124及び126は非対称であり得る。すなわち、これら撮像デバイスは、異なる視野(FOV)及び焦点距離を有するカメラを含み得る。撮像デバイス122、124及び126の視野は、例えば、車両200の環境に対する任意の所望のエリアを含み得る。幾つかの実施形態では、撮像デバイス122、124及び126のうちの1つ又は複数は、車両200の前方の環境、車両200の背後の環境、車両200の両側の環境又はそれらの組み合わせから画像データを取得するように構成し得る。
更に、各撮像デバイス122、124及び/又は126に関連付けられた焦点距離は、各デバイスが車両200に対して所望の距離範囲にある物体の画像を取得するように選択可能であり得る(例えば、適切なレンズの包含等により)。例えば、幾つかの実施形態では、撮像デバイス122、124及び126は、車両から数メートル以内の近接物体の画像を取得し得る。撮像デバイス122、124、126は、車両からより離れた範囲(例えば、25m、50m、100m、150m以上)における物体の画像を取得するように構成することもできる。更に、撮像デバイス122、124及び126の焦点距離は、ある撮像デバイス(例えば、撮像デバイス122)が車両に比較的近い(例えば、10m以内又は20m以内)物体の画像を取得することができ、その他の撮像デバイス(例えば、撮像デバイス124及び126)が、車両200からより離れた物体(例えば、20m超、50m超、100m超、150m超等)の画像を取得することができるように選択し得る。
幾つかの実施形態によれば、1つ又は複数の撮像デバイス122、124及び126のFOVは、広角を有し得る。例えば、特に車両200の近傍エリアの画像撮像に使用し得る撮像デバイス122、124及び126には140度のFOVを有することが有利であり得る。例えば、撮像デバイス122は、車両200の右又は左のエリアの画像の撮像に使用し得、そのような実施形態では、撮像デバイス122が広FOV(例えば、少なくとも140度)を有することが望ましいことがあり得る。
撮像デバイス122、124及び126のそれぞれに関連付けられた視野は、各焦点距離に依存し得る。例えば、焦点距離が増大するにつれて、対応する視野は低減する。
撮像デバイス122、124及び126は、任意の適する視野を有するように構成し得る。特定の一例では、撮像デバイス122は、水平FOV46度を有し得、撮像デバイス124は水平FOV23度を有し得、撮像デバイス126は水平FOV23から46度を有し得る。別の例では、撮像デバイス122は水平FOV52度を有し得、撮像デバイス124は水平FOV26度を有し得、撮像デバイス126は、水平FOV26から52度を有し得る。幾つかの実施形態では、撮像デバイス122のFOVと撮像デバイス124及び/又は撮像デバイス126のFOVとの比率は、1.5から2.0で変化し得る。他の実施形態では、この比率は1.25から2.25で変化し得る。
システム100は、撮像デバイス122の視野が、撮像デバイス124及び/又は撮像デバイス126の視野と少なくとも部分的に又は完全に重複するように構成し得る。幾つかの実施形態では、システム100は、撮像デバイス124及び126の視野が、例えば、撮像デバイス122の視野内に入り(例えば、撮像デバイス122の視野よりも小さく)、撮像デバイス122の視野と共通の中心を共有するように構成し得る。他の実施形態では、撮像デバイス122、124及び126は、隣接するFOVを撮像し得、又は部分的に重複するFOVを有し得る。幾つかの実施形態では、撮像デバイス122、124及び126の視野は、FOVのより狭い撮像デバイス124及び/又は126の中心が、FOVがより広いデバイス122の視野の下半分に配置され得るように位置合わせし得る。
図2Fは、開示される実施形態による例示的な車両制御システムの図表現である。図2Fに示すように、車両200は、スロットルシステム220、ブレーキシステム230及び操舵システム240を含み得る。システム100は、1つ又は複数のデータリンク(例えば、1つ又は複数の任意の有線リンク及び/又は無線リンク又はデータを送信するリンク)を介して、スロットルシステム220、ブレーキシステム230及び操舵システム240のうちの1つ又は複数に入力(例えば、制御信号)を提供し得る。例えば、撮像デバイス122、124及び/又は126により取得される画像の分析に基づいて、システム100は、車両200をナビゲートする制御信号をスロットルシステム220、ブレーキシステム230及び操舵システム240のうちの1つ又は複数に提供し得る(例えば、加速、ターン、レーンシフト等を行わせることにより)。更に、システム100は、車両200の動作状況を示す入力(例えば、速度、車両200がブレーキ中及び/又はターン中であるか否か等)をスロットルシステム220、ブレーキシステム230及び操舵システム24のうちの1つ又は複数から受信し得る。以下では、更に詳細を図4から図7に関連して提供する。
図3Aに示すように、車両200は、車両200のドライバー又は乗員と対話するユーザインタフェース170を含むこともできる。例えば、車両アプリケーション内のユーザインタフェース170は、タッチスクリーン320、つまみ330、ボタン340及びマイクロフォン350を含み得る。車両200のドライバー又は乗員は、ハンドル(例えば、例えばウィンカーハンドルを含め、車両200の操舵コラム上又はその近傍に配置される)及びボタン(例えば、車両200のハンドルに配置される)、及び同様のものを使用して、システム100と対話することもできる。幾つかの実施形態では、マイクロフォン350はバックミラー310に隣接して位置決めし得る。同様に、幾つかの実施形態では、撮像デバイス122は、バックミラー310の近傍に配置し得る。幾つかの実施形態では、ユーザインタフェース170は、1つ又は複数のスピーカ360(例えば、車両オーディオシステムのスピーカ)を含むこともできる。例えば、システム100は、スピーカ360を介して様々な通知(例えば、アラート)を提供し得る。
図3Bから図3Dは、開示される実施形態による、バックミラー(例えば、バックミラー310)の背後に、車両フロントガラスと対向して位置決めされるように構成される例示的なカメラマウント370の図である。図3Bに示すように、カメラマウント370は、撮像デバイス122、124及び126を含み得る。撮像デバイス124及び126は、グレアシールド380の背後に位置決めし得、グレアシールド380は、車両フロントガラスに直接接触し得、フィルム及び/又は反射防止材料の組成物を含み得る。例えば、グレアシールド380は、シールドが、一致する傾斜を有する車両フロントガラスと対向して位置合わせされるように位置決めし得る。幾つかの実施形態では、撮像デバイス122、124及び126のそれぞれは、例えば、図3Dに示すように、グレアシールド380の背後に位置決めし得る。開示される実施形態は、撮像デバイス122、124及び126、カメラマウント370並びにグレアシールド380のいかなる特定の構成にも限定されない。図3Cは、前部から見た図3Bに示すカメラマウント370の図である。
本開示の恩恵を受ける当業者により理解されるように、上記開示される実施形態に対する多くの変形形態及び/又は変更形態がなされ得る。例えば、全ての構成要素がシステム100の動作にとって必須であるわけではない。更に、任意の構成要素がシステム100の任意の適切な部分に配置し得、構成要素は、開示される実施形態の機能を提供しながら、様々な構成に再配置し得る。従って、上記で論じた構成は例であり、上述した構成に関係なく、システム100は、車両200の周囲を分析し、分析に応答して車両200をナビゲートする広範囲の機能を提供することができる。
以下に更に詳細に論じるように、様々な開示される実施形態により、システム100は、自律走行及び/又はドライバー支援技術に関連する様々な特徴を提供し得る。例えば、システム100は、画像データ、位置データ(例えば、GPS位置情報)、マップデータ、速度データ及び/又は車両200に含まれるセンサからのデータを分析し得る。システム100は、例えば、画像取得ユニット120、位置センサ130及び他のセンサから、分析のためにデータを収集し得る。更に、システム100は、収集されるデータを分析して、車両200が特定の行動を取るべきか否かを特定し、次いで、人間の介入なしで、判断される動作を自動的にとり得る。例えば、車両200が人間の介入なしでナビゲートする場合、システム100は、車両200のブレーキ、加速度及び/又は操舵を自動的に制御し得る(例えば、制御信号をスロットルシステム220、ブレーキシステム230及び操舵システム240のうちの1つ又は複数に送信することにより)。更に、システム100は、収集されるデータを分析し、収集されるデータの分析に基づいて警告及び/又はアラートを車両の搭乗者に発行し得る。システム100により提供される様々な実施形態に関する更に詳細を以下に提供する。
前向きマルチ撮像システム
上記で論じたように、システム100は、マルチカメラシステムを使用する走行支援機能を提供し得る。マルチカメラシステムは、車両の前方方向を向いた1つ又は複数のカメラを使用し得る。他の実施形態では、マルチカメラシステムは、車両の側部又は車両の後方を向いた1つ又は複数のカメラを含み得る。1つの実施形態では、例えば、システム100は、2カメラ撮像システムを使用し得、その場合、第1のカメラ及び第2のカメラ(例えば、撮像デバイス122及び124)は、車両(例えば、車両200)の前部及び/又は側部に位置決めし得る。第1のカメラは、第2のカメラの視野よりも大きい、よりも小さい又は部分的に重複する視野を有し得る。更に、第1のカメラは、第1の画像プロセッサに接続されて、第1のカメラにより提供される画像の単眼画像分析を実行し得、第2のカメラは、第2の画像プロセッサに接続されて、第2のカメラにより提供される画像の単眼画像分析を実行し得る。第1及び第2の画像プロセッサの出力(例えば、処理される情報)は結合し得る。幾つかの実施形態では、第2の画像プロセッサは、第1のカメラ及び第2のカメラの両方からの画像を受信して、立体分析を実行し得る。別の実施形態では、システム100は3カメラ撮像システムを使用し得、この場合、各カメラは異なる視野を有する。従って、そのようなシステムは、車両の前方及び側部の両方の様々な距離に位置する物体から導出される情報に基づいて判断を下し得る。単眼画像分析との言及は、画像分析が単一視点から(例えば、単一のカメラ)撮像された画像に基づいて画像分析が実行される場合を指し得る。立体画像分析は、画像撮像パラメータのうちの1つ又は複数を変更した状態で撮像される2つ以上の画像に基づいて画像分析が実行される場合を指し得る。例えば、立体画像分析の実行に適した撮像された画像は、2つ以上の異なる位置から撮像された画像、異なる視野から撮像された画像、異なる焦点距離を使用して撮像された画像、視差情報付きで撮像された画像等を含み得る。
例えば、1つの実施形態では、システム100は、撮像デバイス122、124及び126を使用する3カメラ構成を実施し得る。そのような構成では、撮像デバイス122は、狭視野(例えば、34度又は約20から45度の範囲から選択される他の値等)を提供し得、撮像デバイス124は、広視野(例えば、150度又は約100から約180度の範囲から選択される他の値)を提供し得、撮像デバイス126は、中視野(例えば、46度又は約35から約60度の範囲から選択される他の値)を提供し得る。幾つかの実施形態では、撮像デバイス126は、主又は1次カメラとして動作し得る。撮像デバイス122、124、及び126は、バックミラー310の背後に位置決めされ、実質的に並んで(例えば、6cm離間)位置決めし得る。更に、幾つかの実施形態では、上記で論じたように、撮像デバイス122、124、及び126のうちの1つ又は複数は、車両200のフロントガラスと同一平面のグレアシールド380の背後に搭載し得る。そのようなシールドは、車内部からのいかなる反射の撮像デバイス122、124、及び126への影響も最小限に抑えるように動作し得る。
別の実施形態では、図3B及び図3Cに関連して上記で論じたように、広視野カメラ(例えば、上記例では撮像デバイス124)は、狭い主視野カメラ(例えば、上記例では撮像デバイス122及び126)よりも低く搭載し得る。この構成は、広視野カメラからの自由な視線を提供し得る。反射を低減するために、カメラは、車両200のフロントガラス近くに搭載し得、反射光を弱める偏光器をカメラに含み得る。
3カメラシステムは、特定の性能特性を提供し得る。例えば、幾つかの実施形態は、あるカメラによる物体の検出を別のカメラからの検出結果に基づいて検証する機能を含み得る。上記で論じた3カメラ構成では、処理ユニット110は、例えば、3つの処理デバイス(例えば、上記で論じたように3つのEyeQシリーズのプロセッサチップ)を含み得、各処理デバイスは、撮像デバイス122、124、及び126のうちの1つ又は複数により撮像された画像の処理に向けられる。
3カメラシステムでは、第1の処理デバイスは、主カメラ及び狭視野カメラの両方から画像を受信し得、狭FOVカメラのビジョン処理を実行して、例えば他の車両、歩行者、レーンマーク、交通標識、信号機及び他の道路物体を検出し得る。更に、第1の処理デバイスは、主カメラからの画像と狭カメラからの画像との間でのピクセルの不一致を計算し、車両200の環境の3D再構築を作成し得る。次いで、第1の処理デバイスは、3D再構築を3Dマップデータ又は別のカメラからの情報に基づいて計算される3D情報と結合し得る。
第2の処理デバイスは、主カメラから画像を受信し得、ビジョン処理を実行し、他の車両、歩行者、レーンマーク、交通標識、信号機及び他の道路物体を検出し得る。更に、第2の処理デバイスは、カメラ変位を計算し、変位に基づいて、連続画像間のピクセルの不一致を計算し、シーンの3D再構築(例えば、ストラクチャーフロムモーション)を作成し得る。第2の処理デバイスは、3D再構築に基づくストラクチャーフロムモーションを第1の処理デバイスに送信し、ストラクチャーフロムモーションを立体3D画像と結合し得る。
第3の処理デバイスは、画像を広FOVカメラから受信し、画像を処理して、車両、歩行者、レーンマーク、交通標識、信号機及び他の道路物体を検出し得る。第3の処理デバイスは、追加の処理命令を更に実行して、画像を分析し、レーン変更中の車両、歩行者等の画像内の移動中の物体を識別し得る。
幾つかの実施形態では、画像に基づく情報ストリームを独立して撮像させ、処理させることは、システムで冗長性を提供する機会を提供し得る。そのような冗長性は、例えば、第1の撮像デバイス及びそのデバイスから処理される画像を使用して、少なくとも第2の撮像デバイスから画像情報を撮像し処理することにより得られる情報を検証及び/又は撮像することを含み得る。
幾つかの実施形態では、システム100は、車両200にナビゲーション支援を提供するに当たり2つの撮像デバイス(例えば、撮像デバイス122及び124)を使用し得、第3の撮像デバイス(例えば、撮像デバイス126)を使用して、冗長性を提供し、他の2つの撮像デバイスから受信されるデータの分析を検証し得る。例えば、そのような構成では、撮像デバイス122及び124は、車両200をナビゲートするためのシステム100による立体分析の画像を提供し得、撮像デバイス126は、システム100による単眼分析に画像を提供して、撮像デバイス122及び/又は撮像デバイス124から撮像された画像に基づいて得られる情報の冗長性及び検証を提供し得る。すなわち、撮像デバイス126(及び対応する処理デバイス)は、撮像デバイス122及び124から導出される分析へのチェックを提供する冗長サブシステムを提供する(例えば、自動緊急ブレーキ(AEB)システムを提供するため)と見なし得る。更に幾つかの実施形態では、1つ又は複数のセンサ(例えば、レーダ、ライダ、音響センサ、車両外のうちの1つ又は複数の送受信機から受信される情報等)から受信される情報に基づいて受信されるデータの冗長性及び検証を補うことができる。
上記カメラ構成、カメラの配置、カメラ数、カメラの位置等が単なる例示であることを当業者は認識するであろう。全体システムに対して説明されるこれらの構成要素等は、開示される実施形態の範囲から逸脱せずに、様々な異なる構成で組み立て且つ使用し得る。ドライバー支援及び/又は自律車両機能を提供するためのマルチカメラシステムの使用に関する更に詳細が以下に続く。
図4は、開示される実施形態による1つ又は複数の動作を実行する命令を記憶/プログラムされ得るメモリ140及び/又は150の例示的な機能ブロック図である。以下ではメモリ140を参照するが、当業者は、命令がメモリ140及び/又は150に記憶し得ることを認識するであろう。
図4に示すように、メモリ140は、単眼画像分析モジュール402、立体画像分析モジュール404、速度及び加速度モジュール406並びにナビゲーション応答モジュール408を記憶し得る。開示される実施形態は、いかなる特定の構成のメモリ140にも限定されない。更に、アプリケーションプロセッサ180及び/又は画像プロセッサ190は、メモリ140に含まれる任意のモジュール402、404、406、及び408に記憶される命令を実行し得る。以下の考察での処理ユニット110の参照が、アプリケーションプロセッサ180及び画像プロセッサ190を個々に又はまとめて指し得ることを当業者は理解するであろう。従って、以下のプロセスのいずれかのステップは、1つ又は複数の処理デバイスにより実行され得る。
1つの実施形態では、単眼画像分析モジュール402は、処理ユニット110によって実行されるとき、撮像デバイス122、124及び126の1つによって取得される画像の組の単眼画像分析を実行する命令(コンピュータビジョンソフトウェア等)を記憶し得る。幾つかの実施形態では、処理ユニット110は、画像の組からの情報を追加の感覚情報(例えば、レーダやライダ等からの情報)と結合して単眼画像分析を実行し得る。図5Aから図5Dに関連して以下で説明するように、単眼画像分析モジュール402は、レーンマーク、車両、歩行者、道路標識、高速道路出口ランプ、信号機、危険物及び車両の環境に関連付けられた任意の他の特徴等、画像の組内の特徴の組を検出するための命令を含み得る。分析に基づいて、システム100は、ナビゲーション応答モジュール408に関連して以下で論じるように、ターン、レーンシフト及び加速度変更、及び同様のもの等のうちの1つ又は複数のナビゲーション応答を車両200において生じさせ得る(例えば、処理ユニット110を介して)。
1つの実施形態では、立体画像分析モジュール404は命令(コンピュータビジョンソフトウェア等)を記憶し得、命令は、処理ユニット110により実行されると、撮像デバイス122、124及び126のいずれから選択される撮像デバイスの組み合わせにより取得される第1及び第2の組の画像の立体画像分析を実行する。幾つかの実施形態では、処理ユニット110は、第1及び第2の組の画像からの情報を追加の感覚情報(例えば、レーダからの情報)と結合して、立体画像分析を実行し得る。例えば、立体画像分析モジュール404は、撮像デバイス124により取得される第1の組の画像及び撮像デバイス126により取得される第2の組の画像に基づいて、立体画像分析を実行する命令を含み得る。以下で図6に関連して説明するように、立体画像分析モジュール404は、レーンマーク、車両、歩行者、道路標識、高速道路出口ランプ、信号機及び危険物、及び同様のもの等の第1及び第2の組の画像内の特徴の組を検出する命令を含み得る。分析に基づいて、処理ユニット110は、ナビゲーション応答モジュール408に関連して以下で論じるように、ターン、レーンシフト及び加速度変更、及び同様のもの等のうちの1つ又は複数のナビゲーション応答を車両200において生じさせ得る。更に、幾つかの実施形態では、立体画像分析モジュール404は、トレーニングされたシステム(ニューラルネットワーク又はディープニューラルネットワーク等)又は、コンピュータビジョンアルゴリズムを使用して、感覚情報が撮像及び処理された環境内の物体を検出及び/又はラベル付けするように構成され得るシステム等のトレーニングされていないシステムに関連する技法を実装することができる。1つの実施形態では、立体画像分析モジュール404及び/又は他の画像処理モジュールは、トレーニングされたシステムとトレーニングされていないシステムとの組み合わせを使用するように構成され得る。
1つの実施形態では、速度及び加速度モジュール406は、車両200の速度及び/又は加速度を変更させるように構成される車両200内のうちの1つ又は複数の計算及び電気機械デバイスから受信されるデータを分析するように構成されるソフトウェアを記憶し得る。例えば、処理ユニット110は、速度及び加速度モジュール406に関連付けられた命令を実行して、単眼画像分析モジュール402及び/又は立体画像分析モジュール404の実行から導出されるデータに基づいて、車両200の目標速度を計算し得る。そのようなデータとしては、例えば、目標位置、速度及び/又は加速度、付近の車両、歩行者又は道路物体に対する車両200の位置及び/又は速度及び道路のレーンマークに対する車両200の位置情報、及び同様のものを挙げ得る。加えて、処理ユニット110は、感覚入力(例えば、レーダからの情報)と、車両200のスロットルシステム220、ブレーキシステム230及び/又は操舵システム240等の車両200の他のシステムからの入力とに基づいて、車両200の目標速度を計算し得る。計算される目標速度に基づいて、処理ユニット110は、電子信号を車両200のスロットルシステム220、ブレーキシステム230及び/又は操舵システム240に送信して、例えば車両200のブレーキを物理的に弱めるか、又はアクセルを弱めることにより速度及び/又は加速度の変更をトリガし得る。
1つの実施形態では、ナビゲーション応答モジュール408は、処理ユニット110により実行可能ソフトウェアを記憶して、単眼画像分析モジュール402及び/又は立体画像分析モジュール404の実行から導出されるデータに基づいて、所望のナビゲーション応答を決定し得る。そのようなデータは、付近の車両、歩行者及び道路物体に関連付けられた位置及び速度情報並びに車両200の目標位置情報、及び同様のものを含み得る。更に、幾つかの実施形態では、ナビゲーション応答は、マップデータ、車両200の所定の位置及び/又は車両200と、単眼画像分析モジュール402及び/又は立体画像分析モジュール404の実行から検出された1つ又は複数の物体との間の相対速度又は相対加速度に基づき得る(部分的に、又は完全に)。ナビゲーション応答モジュール408はまた、知覚入力(例えば、レーダからの情報)と、車両200のスロットルシステム220、ブレーキシステム230、及び操舵システム240等の車両200の他のシステムからの入力とに基づいて、所望のナビゲーション応答を決定するように構成され得る。所望のナビゲーション応答に基づいて、処理ユニット110は、電子信号を車両200のスロットルシステム220、ブレーキシステム230及び操舵システム240に送信して、例えば車両200のハンドルをターンさせ、所定の角度の回転を達成することにより、所望のナビゲーション応答をトリガし得る。幾つかの実施形態では、処理ユニット110は、車両200の速度変更を計算するための速度及び加速度モジュール406の実行への入力として、ナビゲーション応答モジュール408の出力(例えば、所望のナビゲーション応答)を使用し得る。
更に、本明細書で開示されるモジュール(例えば、モジュール402、404及び406)のいずれも、トレーニングされたシステム(ニューラルネットワーク又はディープニューラルネットワーク等)又はトレーニングされていないシステムに関連する技法を実装することができる。
図5Aは、開示される実施形態による、単眼画像分析に基づいて1つ又は複数のナビゲーション応答を生じさせる例示的なプロセス500Aを示すフローチャートである。ステップ510において、処理ユニット110は、処理ユニット110と画像取得ユニット120との間のデータインタフェース128を介して、複数の画像を受信し得る。例えば、画像取得ユニット120に含まれるカメラ(視野202を有する撮像デバイス122等)は、車両200の前方(又は例えば車両の側部もしくは後方)のエリアの複数の画像を撮像し、データ接続(例えば、デジタル、有線、USB、無線、Bluetooth等)を介してそれらを処理ユニット110にそれらを送信し得る。処理ユニット110は、単眼画像分析モジュール402を実行して、ステップ520において、以下で図5Bから図5Dに関連して更に詳細に説明するように、複数の画像を分析し得る。分析を実行することにより、処理ユニット110は、レーンマーク、車両、歩行者、道路標識、高速道路出口ランプ及び信号機、及び同様のもの等の画像の組内の特徴の組を検出し得る。
処理ユニット110は、ステップ520において、単眼画像分析モジュール402を実行して、例えばトラックタイヤの部品、落ちた道路標識、緩んだ貨物及び小動物、及び同様のもの等の様々な道路危険物を検出することもできる。道路危険物の構造、形状、サイズ及び色は様々であり得、そのような危険物の検出をより難しくし得る。幾つかの実施形態では、処理ユニット110は、単眼画像分析モジュール402を実行して、マルチフレーム分析を複数の画像に対して実行して、道路危険物を検出し得る。例えば、処理ユニット110は、連続画像フレーム間でのカメラの動きを推定し、フレーム間のピクセルの不一致を計算して、道路の3Dマップを構築し得る。次いで、処理ユニット110は、3Dマップを使用して、路面及び路面の上に存在する危険物を検出し得る。
ステップ530において、処理ユニット110は、ナビゲーション応答モジュール408を実行して、ステップ520において実行される分析及び図4に関連して上記で説明した技法に基づいて、車両200で1つ又は複数のナビゲーション応答を生じさせ得る。ナビゲーション応答は、例えば、ターン、レーンシフト及び加速度変更、及び同様のものを含み得る。幾つかの実施形態では、処理ユニット110は、速度及び加速度モジュール406の実行から導出されるデータを使用して、1つ又は複数のナビゲーション応答を生じさせ得る。更に、複数のナビゲーション応答は、同時に行われ得るか、順次行われ得るか、又はそれらの任意の組み合わせで行われ得る。例えば、処理ユニット110は、例えば、制御信号を車両200の操舵システム240及びスロットルシステム220に順次送信することにより、車両200に1レーンを越えさせ、それから例えば加速させ得る。或いは、処理ユニット110は、例えば、制御信号を車両200のブレーキシステム230及び操舵システム240に同時に送信することにより、車両200に、ブレーキをかけさせ、それと同時にレーンをシフトさせ得る。
図5Bは、開示される実施形態による、画像の組内のうちの1つ又は複数の車両及び/又は歩行者を検出する例示的なプロセス500Bを示すフローチャートである。処理ユニット110は、単眼画像分析モジュール402を実行して、プロセス500Bを実施し得る。ステップ540において、処理ユニット110は、存在する可能性がある車両及び/又は歩行者を表す候補物体の組を特定し得る。例えば、処理ユニット110は、1つ又は複数の画像を走査し、画像を1つ又は複数の所定のパターンと比較し、各画像内で、対象物体(例えば、車両、歩行者又はそれらの部分)を含み得る可能性がある位置を識別し得る。所定のパターンは、高率の「偽性ヒット」及び低率の「見逃し」を達成するように指定し得る。例えば、処理ユニット110は、所定のパターンへの低い類似性閾値を使用して、可能性のある車両又は歩行者として候補物体を識別し得る。そうすることにより、処理ユニット110は、車両又は歩行者を表す候補物体を見逃す(例えば、識別しない)確率を低減することができ得る。
ステップ542において、処理ユニット110は、候補物体の組をフィルタリングして、分類基準に基づいて特定の候補(例えば、無関係又は関係性の低い物体)を除外し得る。そのような基準は、データベース(例えば、メモリ140に記憶されるデータベース)に記憶される物体タイプに関連付けられた様々な特性から導出し得る。特性は、物体の形状、寸法、テクスチャ及び位置(例えば、車両200に対する)、及び同様のものを含み得る。従って、処理ユニット110は、1つ又は複数の組の基準を使用して、候補物体の組から偽性候補を拒否し得る。
ステップ544において、処理ユニット110は、複数の画像フレームを分析して、候補物体の組内の物体が車両及び/又は歩行者を表しているか否かを特定し得る。例えば、処理ユニット110は、連続フレームにわたり検出された候補物体を追跡し、検出された物体に関連付けられたフレーム毎データ(例えば、サイズ、車両200に対する位置等)を蓄積し得る。更に、処理ユニット110は、検出された物体のパラメータを推定し、物体のフレーム毎位置データを予測位置と比較し得る。
ステップ546において、処理ユニット110は、検出された物体の測定の組を構築し得る。そのような測定は、例えば、検出された物体に関連付けられた位置、速度及び加速度値(車両200に対する)を含み得る。幾つかの実施形態では、処理ユニット110は、カルマンフィルタ又は線形2次推定(LQE)等の一連の時間ベースの観測を使用する推定技法に基づいて及び/又は異なる物体タイプ(例えば、車、トラック、歩行者、自転車、道路標識等)で利用可能なモデリングデータに基づいて、測定を構築し得る。カルマンフィルタは、物体の尺度の測定に基づき得、ここで、尺度測定は衝突までの時間(例えば、車両200が物体に到達するまでの時間量)に比例する。従って、ステップ540から546を実行することにより、処理ユニット110は、撮像された画像の組内に現れる車両及び歩行者を識別し、車両及び歩行者に関連付けられた情報(例えば、位置、速度、サイズ)を導出し得る。識別及び導出される情報に基づいて、処理ユニット110は、図5Aに関連して上述したように、車両200で1つ又は複数のナビゲーション応答を生じさせ得る。
ステップ548において、処理ユニット110は、1つ又は複数の画像の光学フロー分析を実行して、「偽性ヒット」を検出する確率及び車両又は歩行者を表す候補物体を見逃す確率を低減し得る。光学フロー分析は、例えば、他の車両及び歩行者に関連付けられた1つ又は複数の画像内の車両200に対する、路面の動きとは異なる移動パターンを分析することを指し得る。処理ユニット110は、異なる時間に撮像される複数の画像フレームにわたる物体の異なる位置を観測することにより、候補物体の動きを計算し得る。処理ユニット110は、位置及び時間値を数学モデルへの入力として使用して、候補物体の動きを計算し得る。従って、光学フロー分析は、車両200の付近の車両及び歩行者を検出する別の方法を提供し得る。処理ユニット110は、ステップ540から546と組み合わせて光学フロー分析を実行して、車両及び歩行者を検出する冗長性を提供すると共に、システム100の信頼度を上げ得る。
図5Cは、開示される実施形態による、画像の組内の道路マーク及び/又はレーンジオメトリ情報を検出する例示的なプロセス500Cを示すフローチャートである。処理ユニット110は、単眼画像分析モジュール402を実行して、プロセス500Cを実施し得る。ステップ550において、処理ユニット110は、1つ又は複数の画像を走査することにより物体の組を検出し得る。レーンマークの区分、レーンジオメトリ情報及び他の関連道路マークを検出するために、処理ユニット110は、物体の組をフィルタリングして、無関連(例えば、小さい穴、小さい岩等)であると判断されるものを除外し得る。ステップ552において、処理ユニット110は、同じ道路マーク又はレーンマークに属する、ステップ550において検出された区分を一緒にグループ化し得る。グループ化に基づいて、処理ユニット110は、数学モデル等のモデルを開発して、検出された区分を表し得る。
ステップ554において、処理ユニット110は、検出された区分に関連付けられた測定の組を構築し得る。幾つかの実施形態では、処理ユニット110は、画像平面から実世界平面への検出区分の射影を作成し得る。射影は、検出された道路の位置、傾斜、曲率及び曲率微分等の物理特性に対応する係数を有する3次多項式を使用して特徴付け得る。射影を生成するに当たり、処理ユニット110は、路面変化並びに車両200に関連付けられたピッチ及びロール率を考慮に入れ得る。加えて、処理ユニット110は、位置及び路面に存在するモーションキューを分析することにより道路高をモデリングし得る。更に、処理ユニット110は、1つ又は複数の画像での特徴点の組を追跡することにより、車両200に関連付けられたピッチ率及びロール率を推定し得る。
ステップ556において、処理ユニット110は、例えば、連続した画像フレームにわたり検出区分を追跡し、検出区分に関連付けられたフレーム毎データを蓄積することにより、マルチフレーム分析を実行し得る。処理ユニット110はマルチフレーム分析を実行する場合、ステップ554において構築される測定の組はより信頼性の高いものになり得、ますます高い信頼度を関連付け得る。従って、ステップ550、552、554、及び556を実行することにより、処理ユニット110は、撮像された画像の組内に現れる道路マークを識別し、レーンジオメトリ情報を導出し得る。識別及び導出される情報に基づいて、処理ユニット110は、図5Aに関連して上述したように、車両200で1つ又は複数のナビゲーション応答を生じさせ得る。
ステップ558において、処理ユニット110は、追加の情報源を考慮して、車両の周囲の状況での車両200の安全モデルを更に開発し得る。処理ユニット110は、安全モデルを使用して、システム100が車両200の自律制御を安全に実行し得る状況を定義し得る。安全モデルを開発するために、幾つかの実施形態では、処理ユニット110は、他の車両の位置及び動き、検出された道路端部及び障壁及び/又はマップデータ(マップデータベース160からのデータ等)から抽出される一般道路形状記述を考慮し得る。追加の情報源を考慮することにより、処理ユニット110は、道路マーク及びレーンジオメトリを検出する冗長性を提供し、システム100の信頼性を上げ得る。
図5Dは、開示される実施形態による、画像の組内の信号機を検出する例示的なプロセス500Dを示すフローチャートである。処理ユニット110は、単眼画像分析モジュール402を実行して、プロセス500Dを実施し得る。ステップ560において、処理ユニット110は、画像の組を走査し、信号機を含む可能性が高い画像内の位置に現れる物体を識別し得る。例えば、処理ユニット110は、識別される物体をフィルタリングして、信号機に対応する可能性が低い物体を除外した候補物体の組を構築し得る。フィルタリングは、形状、寸法、テクスチャ及び位置(例えば、車両200に対する)、及び同様のもの等の信号機に関連付けられた様々な特性に基づいて行い得る。そのような特性は、信号機及び交通制御信号の多くの例に基づき得、データベースに記憶し得る。幾つかの実施形態では、処理ユニット110は、可能性のある信号機を反映した候補物体の組に対してマルチフレーム分析を実行し得る。例えば、処理ユニット110は、連続した画像フレームにわたり候補物体を追跡し、候補物体の現実世界の位置を推定し、移動している(信号機である可能性が低い)物体をフィルタリングして除去し得る。幾つかの実施形態では、処理ユニット110は、カラー分析を候補物体に対して実行し、可能性のある信号機内部に現れる検出された色の相対位置を識別し得る。
ステップ562において、処理ユニット110は、交差点のジオメトリを分析し得る。分析は、(i)車両200の両側で検出されたレーン数、(ii)道路で検出されたマーク(矢印マーク等)、及び(iii)マップデータ(マップデータベース160からのデータ等)から抽出される交差点の記述の任意の組み合わせに基づき得る。処理ユニット110は、単眼分析モジュール402の実行から導出される情報を使用して、分析を行い得る。加えて、処理ユニット110は、ステップ560において検出された信号機と、車両200近傍に現れるレーンとの対応性を特定し得る。
車両200が交差点に近づくにつれて、ステップ564において、処理ユニット110は、分析される交差点ジオメトリ及び検出された信号機に関連付けられた信頼度を更新し得る。例えば、交差点に実際に現れる数と比較した交差点に現れると推定される信号機の数は、信頼度に影響を及し得る。従って、信頼度に基づいて、処理ユニット110は、安全状況を改善するために、車両200のドライバーに制御を委任し得る。ステップ560、562、及び564を実行することにより、処理ユニット110は、撮像された画像の組内に現れる信号機を識別し、交差点ジオメトリ情報を分析し得る。識別及び分析に基づいて、処理ユニット110は、図5Aに関連して上述したように、車両200で1つ又は複数のナビゲーション応答を生じさせ得る。
図5Eは、開示される実施形態による、車両経路に基づいて車両200で1つ又は複数のナビゲーション応答を生じさせる例示的なプロセス500Eを示すフローチャートである。ステップ570において、処理ユニット110は、車両200に関連付けられた初期車両経路を構築し得る。車両経路は、座標(x,y)で表される点の組を使用して表し得、点の組内の2点間距離diは、1から5メートルの範囲内にあり得る。1つの実施形態では、処理ユニット110は、左右の道路多項式等の2つの多項式を使用して初期車両経路を構築し得る。処理ユニット110は、2つの多項式間のジオメトリ中間点を計算し、所定のオフセットがある場合(オフセットゼロは、レーンの中央での走行に対応し得る)、所定のオフセット(例えば、スマートレーンオフセット)だけ、結果として生成される車両経路に含まれる各点をオフセットさせ得る。オフセットは、車両経路内の任意の2点間の区分に垂直の方向であり得る。別の実施形態では、処理ユニット110は、1つの多項式及び推定レーン幅を使用して、推定レーン幅の半分に所定のオフセット(例えば、スマートレーンオフセット)を加えたものだけ車両経路の各点をオフセットさせ得る。
ステップ572において、処理ユニット110は、ステップ570において構築される車両経路を更新し得る。処理ユニット110は、車両経路を表す点の組内の2点間距離dkが、上述した距離diよりも短くなるように、より高い解像度を使用して、ステップ570において構築される車両経路を再構築し得る。例えば、距離dkは0.1から0.3メートルの範囲内にあり得る。処理ユニット110は、放物線スプラインアルゴリズムを使用して車両経路を再構築し得、これは、車両経路の全長(すなわち、車両経路を表す点の組に基づく)に対応する累積距離ベクトルSをもたらし得る。
ステップ574において、処理ユニット110は、ステップ572において構築された更新車両経路に基づいて、先読み点((xl,zl)として座標で表される)を特定し得る。処理ユニット110は、累積距離ベクトルSから先読み点を抽出し得、先読み点には、先読み距離及び先読み時間を関連付け得る。先読み距離は、10メートルから20メートルの下限の測距を有し得、車両200の速度と先読み時間との積として計算し得る。例えば、車両200の速度が下がるにつれて、先読み距離も短くなり得る(例えば、下限に到達するまで)。0.5秒から1.5秒の範囲であり得る先読み時間は、進行エラー追跡制御ループ等の車両200でナビゲーション応答を生じさせることに関連付けられた1つ又は複数の制御ループの利得に反比例し得る。例えば、進行エラー追跡制御ループの利得は、ヨー率ループ、操舵アクチュエータループ及び車横方向動力学、及び同様のものの帯域幅に依存し得る。従って、進行エラー追跡制御ループの利得が高いほど、先読み時間は短くなる。
ステップ576において、処理ユニット110は、ステップ574において特定される先読み点に基づいて、進行エラー及びヨー率コマンドを決定し得る。処理ユニット110は、先読み点の逆正接、例えば、arctan(xl/zl)を計算することにより、進行エラーを特定し得る。処理ユニット110は、進行エラーと高レベル制御利得との積としてヨー率コマンドを決定し得る。高レベル制御利得は、先読み距離が下限にない場合、(2/先読み時間)に等しい値であり得る。先読み距離が下限である場合、高レベル制御利得は、(2*車両200の速度/先読み距離)に等しい値であり得る。
図5Fは、開示される実施形態による、先行車両がレーンを変更中であるか否かを特定する例示的なプロセス500Fを示すフローチャートである。ステップ580において、処理ユニット110は、先行車両(例えば、車両200の前を走行中の車両)に関連付けられたナビゲーション情報を特定し得る。例えば、処理ユニット110は、図5A及び図5Bに関連して上述した技法を使用して、先行車両の位置、速度(例えば、方向及び速度)及び/又は加速度を特定し得る。処理ユニット110はまた、図5Eに関連して上述した技法を使用して、1つ又は複数の道路多項式、先読み点(車両200に関連付けられる)及び/又はスネイルトレイル(例えば、先行車両が取った経路を記述する点の組)を特定するように構成され得る。
ステップ582において、処理ユニット110は、ステップ580において特定されるナビゲーション情報を分析し得る。1つの実施形態では、処理ユニット110は、スネイルトレイルと道路多項式との距離(例えば、トレイルに沿った)を計算し得る。トレイルに沿ったこの距離の相違が所定の閾値(例えば、直線道路では0.1から0.2メートル、緩くカーブした道路では0.3から0.4メートル、急カーブの道路では0.5から0.6メートル)を超える場合、処理ユニット110は、先行車両がレーン変更中である可能性が高いと判断し得る。複数の車両が、車両200の前を走行中であることが検出された場合、処理ユニット110は、各車両に関連付けられたスネイルトレイルを比較し得る。比較に基づいて、処理ユニット110は、スネイルトレイルが他の車両のスネイルトレイルに一致しない車両が、レーン変更中である可能性が高いと判断し得る。処理ユニット110は更に、スネイルトレイル(先行車両に関連付けられた)の曲率を、先行車両が走行中の道路区分の予期される曲率と比較し得る。予期される曲率は、マップデータ(例えば、マップデータベース160からのデータ)、道路多項式、他の車両のスネイルトレイルから、道路についての事前知識、及び同様のものから抽出し得る。スネイルトレイルの曲率と道路区分の予期される曲率との差が、所定の閾値を超える場合、処理ユニット110は、先行車両がレーン変更中である可能性が高いと判断し得る。
別の実施形態では、処理ユニット110は、特定の時間期間(例えば、0.5から1.5秒)にわたり、先行車両の瞬間位置を先読み点(車両200に関連付けられた)と比較し得る。特定の時間期間中の先行車両の瞬間位置と先読み点との距離の差及び変化の累積和が、所定の閾値(例えば、直線道路では0.3から0.4メートル、緩くカーブした道路では0.7から0.8メートル、急カーブの道路では1.3から1.7メートル)を超える場合、処理ユニット110は、先行車両がレーン変更中である可能性が高いと判断し得る。別の実施形態では、処理ユニット110は、トレイルに沿って走行した横方向移動距離をスネイルトレイルの予期される曲率と比較することにより、スネイルトレイルのジオメトリを分析し得る。予期される曲率半径は、計算:(δz
2+δx
2)/2/(δx)に従って特定し得、式中、σxは横方向移動距離を表し、σzは縦方向移動距離を表す。横方向移動距離と予期される曲率との差が所定の閾値(例えば、500から700メートル)を超える場合、処理ユニット110は、先行車両がレーン変更中である可能性が高いと判断し得る。別の実施形態では、処理ユニット110は、先行車両の位置を分析し得る。先行車両の位置が道路多項式を曖昧にする(例えば、先行車両が道路多項式の上に重なる)場合、処理ユニット110は、先行車両がレーン変更中である可能性が高いと判断し得る。先行車両の位置が、別の車両が先行車両の前方で検出され、2つの車両のスネイルトレイルが平行ではないようなものである場合、処理ユニット110は、(より近い)先行車両がレーン変更中である可能性が高いと判断し得る。
ステップ584において、処理ユニット110は、ステップ582において実行される分析に基づいて、先行車両200がレーン変更中であるか否かを特定し得る。例えば、処理ユニット110は、ステップ582で実行された個々の分析の加重平均に基づいて決定を行い得る。そのような方式下では、例えば、特定のタイプの分析に基づいた、先行車両がレーン変更中である可能性が高いという処理ユニット110による判断には、値「1」を割り当て得る(「0」は、先行車両がレーン変更中である可能性が低いとの判断を表す)。ステップ582において実行される異なる分析には異なる重みを割り当て得、開示される実施形態は、分析及び重みのいかなる特定の組み合わせにも限定されない。
図6は、開示される実施形態による、立体画像分析に基づいて1つ又は複数のナビゲーション応答を生じさせる例示的なプロセス600を示すフローチャートである。ステップ610において、処理ユニット110は、データインタフェース128を介して第1及び第2の複数の画像を受信し得る。例えば、画像取得ユニット120に含まれるカメラ(視野202及び204を有する撮像デバイス122及び124等)は、車両200の前方のエリアの第1及び第2の複数の画像を撮像し、デジタル接続(例えば、USB、無線、Bluetooth等)を介してそれらを処理ユニット110に送信し得る。幾つかの実施形態では、処理ユニット110は、2つ以上のデータインタフェースを介して第1及び第2の複数の画像を受信し得る。開示される実施形態は、いかなる特定のデータインタフェース構成又はプロトコルにも限定されない。
ステップ620において、処理ユニット110は、立体画像分析モジュール404を実行して、第1及び第2の複数の画像の立体画像分析を実行して、車両の前方の道路の3Dマップを作成し、レーンマーク、車両、歩行者、道路標識、高速道路出口ランプ、信号機及び道路危険物、及び同様のもの等の画像内の特徴を検出し得る。立体画像分析は、図5Aから図5Dに関連して上述したステップと同様に実行され得る。例えば、処理ユニット110は、立体画像分析モジュール404を実行して、第1及び第2の複数の画像内の候補物体(例えば、車両、歩行者、道路マーク、信号機、道路危険物等)を検出し、様々な基準に基づいて候補物体のサブセットをフィルタリングして除外し、マルチフレーム分析を実行し、測定を構築し、残りの候補物体の信頼度を特定し得る。上記ステップを実行するに当たり、処理ユニット110は、画像の1つの組のみからの情報ではなく、第1及び第2の複数の画像の両方からの情報を考慮し得る。例えば、処理ユニット110は、第1及び第2の複数の画像の両方に現れる候補物体のピクセルレベルデータ(又は撮像された画像の2つのストリームの中からの他のデータサブセット)の差を分析し得る。別の例として、処理ユニット110は、物体が複数の画像の1枚に現れるが、他の画像では現れないことを観測することにより、又は2つの画像ストリームの場合に現れる物体に対して存在し得る他の差に対して、候補物体の位置及び/又は速度(例えば、車両200に対する)を推定し得る。例えば、車両200に対する位置、速度及び/又は加速度は、画像ストリームのうちの一方又は両方に現れる物体に関連付けられた特徴の軌道、位置、動きの特性等に基づいて特定し得る。
ステップ630において、処理ユニット110は、ナビゲーション応答モジュール408を実行して、ステップ620において実行される分析及び図4に関連して上記で説明した技法に基づいて、車両200で1つ又は複数のナビゲーション応答を生じさせ得る。ナビゲーション応答は、例えば、ターン、レーンシフト、加速度変更、速度変更及びブレーキ、及び同様のものを含み得る。幾つかの実施形態では、処理ユニット110は、速度及び加速度モジュール406の実行から導出されるデータを使用して、1つ又は複数のナビゲーション応答を生じさせ得る。更に、複数のナビゲーション応答は、同時に行われ得るか、順次行われ得るか、又はそれらの任意の組み合わせで行われ得る。
図7は、開示される実施形態による、3組の画像の分析に基づいて1つ又は複数のナビゲーション応答を生じさせる例示的なプロセス700を示すフローチャートである。ステップ710において、処理ユニット110は、データインタフェース128を介して第1、第2及び第3の複数の画像を受信し得る。例えば、画像取得ユニット120に含まれるカメラ(視野202、204及び206を有する撮像デバイス122、124及び126等)は、車両200の前方及び/又は側部のエリアの第1、第2及び第3の複数の画像を撮像し、デジタル接続(例えば、USB、無線、Bluetooth等)を介してそれらを処理ユニット110に送信し得る。幾つかの実施形態では、処理ユニット110は、3つ以上のデータインタフェースを介して第1、第2及び第3の複数の画像を受信し得る。例えば、撮像デバイス122、124及び126のそれぞれは、処理ユニット110にデータを通信する関連付けられたデータインタフェースを有し得る。開示される実施形態は、いかなる特定のデータインタフェース構成又はプロトコルにも限定されない。
ステップ720において、処理ユニット110は、第1、第2及び第3の複数の画像を分析して、レーンマーク、車両、歩行者、道路標識、高速道路出口ランプ、信号機及び道路危険物、及び同様のもの等の画像内の特徴を検出し得る。分析は、図5Aから図5D及び図6に関連して上述したステップと同様に実行され得る。例えば、処理ユニット110は、単眼画像分析を第1、第2及び第3の複数のそれぞれの画像に対して実行し得る(例えば、単眼画像分析モジュール402の実行を介して及び図5Aから図5Dに関連して上述したステップに基づいて)。或いは、処理ユニット110は、立体画像分析を第1及び第2の複数の画像、第2及び第3の複数の画像及び/又は第1及び第3の複数の画像に対して実行し得る(例えば、立体画像分析モジュール404の実行を介して及び図6に関連して上述したステップに基づいて)。第1、第2及び/又は第3の複数の画像の分析に対応する処理される情報は、結合し得る。幾つかの実施形態では、処理ユニット110は、単眼画像分析と立体画像分析との組み合わせを実行し得る。例えば、処理ユニット110は、単眼画像分析を第1の複数の画像に対して実行し(例えば、単眼画像分析モジュール402の実行を介して)、立体画像分析を第2及び第3の複数の画像に対して実行し得る(例えば、立体画像分析モジュール404の実行を介して)。撮像デバイス122、124及び126の構成 - 各位置及び視野202、204及び206を含め - は、第1、第2及び第3の複数の画像に対して行われる分析のタイプに影響を及し得る。開示される実施形態は、撮像デバイス122、124及び126の特定の構成又は第1、第2及び第3の複数の画像に対して行われる分析のタイプに限定されない。
幾つかの実施形態では、処理ユニット110は、ステップ710及び720において取得され分析される画像に基づいて、システム100にテストを実行し得る。そのようなテストは、撮像デバイス122、124及び126の特定の構成でのシステム100の全体性能の指標を提供し得る。例えば、処理ユニット110は、「偽性ヒット」(例えば、システム100が車両又は歩行者の存在を誤って判断する場合)及び「見落とし」の割合を特定し得る。
ステップ730において、処理ユニット110は、第1、第2及び第3の複数の画像の2つから導出される情報に基づいて、車両200でのうちの1つ又は複数のナビゲーション応答を生じさせ得る。第1、第2及び第3の複数の画像の2つの選択は、例えば、複数の画像のそれぞれで検出された物体の数、タイプ及びサイズ等の様々なファクタに依存し得る。処理ユニット110はまた、画像の品質及び解像度、画像に反映される有効視野、撮像フレーム数及び対象となる1つ又は複数の物体が実際にフレームに現れる程度(例えば、物体が現れるフレームの割合、物体がそのような各フレームで現れる割合等)、及び同様のものに基づいて選択を行うことができる。
幾つかの実施形態では、処理ユニット110は、ある画像源から導出される情報が、他の画像源から導出される情報と一貫する程度を特定することにより、第1、第2及び第3の複数の画像の2つから導出される情報を選択し得る。例えば、処理ユニット110は、撮像デバイス122、124及び126のそれぞれから導出される処理される情報(単眼分析であれ、立体分析であれ、又はそれら2つの任意の組み合わせであれ関係なく)を結合して、撮像デバイス122、124及び126のそれぞれから撮像された画像にわたり一貫する視覚的指標(例えば、レーンマーク、検出された車両及び/又はその位置及び/又は経路、検出された信号機等)を特定し得る。処理ユニット110は、撮像された画像にわたり一貫しない情報(例えば、レーンを変更中の車両、車両200に近すぎる車両を示すレーンモデル等)を除外することもできる。従って、処理ユニット110は、一貫情報及び非一貫情報の特定に基づいて、第1、第2及び第3の複数の画像の2つからの導出される情報を選択し得る。
ナビゲーション応答は、例えば、ターン、レーンシフト及び加速度変更、及び同様のものを含み得る。処理ユニット110は、ステップ720において実行される分析及び図4に関連して上記で説明した技法に基づいて、1つ又は複数のナビゲーション応答を生じさせ得る。処理ユニット110は、速度及び加速度モジュール406の実行から導出されるデータを使用して、1つ又は複数のナビゲーション応答を生じさせることもできる。幾つかの実施形態では、処理ユニット110は、車両200と第1、第2及び第3の複数の画像のいずれかで検出された物体との間の相対位置、相対速度及び/又は相対加速度に基づいて、1つ又は複数のナビゲーション応答を生じさせ得る。複数のナビゲーション応答は、同時に行われ得るか、順次行われ得るか、又はそれらの任意の組み合わせで行われ得る。
自律車両ナビゲーションのための疎な道路モデル
幾つかの実施形態では、開示されるシステム及び方法は、自律車両ナビゲーションのために疎なマップを使用し得る。具体的には、疎なマップは、道路区分に沿った自律車両ナビゲーションのためであり得る。例えば、疎なマップは、大量のデータを記憶及び/又は更新することなく、自律車両をナビゲートするための十分な情報を提供し得る。以下で更に詳細に論じるように、自律車両は、疎なマップを使用して、1つ又は複数の記憶される軌道に基づいて1つ又は複数の道路をナビゲートし得る。
自律車両ナビゲーションのための疎なマップ
幾つかの実施形態では、開示されるシステム及び方法は、自律車両ナビゲーションのために疎なマップを生成し得る。例えば、疎なマップは、過度のデータストレージ又はデータ転送速度を必要とすることなく、ナビゲーションに十分な情報を提供し得る。以下で更に詳細に論じるように、車両(自律車両であり得る)は、疎なマップを使用して1つ又は複数の道路をナビゲートし得る。例えば、幾つかの実施形態では、疎なマップは、道路に関連するデータ、及び車両ナビゲーションに十分であり得るが、小さなデータフットプリントも示す道路に沿った潜在的な陸標を含み得る。例えば、以下で詳細に説明する疎なデータマップは、道路に沿って収集される画像データ等の詳細なマップ情報を含むデジタルマップと比較して、必要な記憶領域及びデータ転送帯域幅が著しく少なくなり得る。
例えば、道路区分の詳細な表現を記憶するのではなく、疎なデータマップは、道路に沿った好ましい車両経路の3次元多項式表現を記憶し得る。これらの経路は、データ記憶領域をほとんど必要とし得ない。更に、説明される疎なデータマップでは、ナビゲーションを支援するために、陸標が識別され、疎なマップ道路モデルに含まれ得る。これらの陸標は、車両のナビゲーションを可能にするのに適した任意の間隔で配置され得るが、場合によっては、高密度及び短い間隔で、そのような陸標を識別し、モデルに含める必要はない。むしろ、場合によっては、少なくとも50メートル、少なくとも100メートル、少なくとも500メートル、少なくとも1キロメートル、又は少なくとも2キロメートルの間隔で離れた陸標に基づいてナビゲーションが可能であり得る。他の節でより詳細に論じるように、疎なマップは、車両が道路に沿って走行するときに、撮像デバイス、全地球測位システムセンサ、移動センサ等の様々なセンサ及びデバイスを備えた車両によって収集又は測定されるデータに基づいて生成され得る。場合によっては、疎なマップは、特定の道路に沿った1つ又は複数の車両の複数の走行中に収集されるデータに基づいて生成され得る。1つ又は複数の車両の複数の走行を使用して疎なマップを生成することは、疎なマップの「クラウドソーシング」と呼ばれ得る。
開示される実施形態によれば、自律車両システムは、ナビゲーションのために疎なマップを使用し得る。例えば、開示されるシステム及び方法は、自律車両のための道路ナビゲーションモデルを生成するための疎なマップを配信し得、疎なマップ及び/又は生成される道路ナビゲーションモデルを使用して道路区分に沿って自律車両をナビゲートし得る。本開示による疎なマップは、自律車両が関連付けられた道路区分に沿って移動するときに横断し得る所定の軌道を表し得る1つ又は複数の3次元輪郭を含み得る。
本開示による疎なマップはまた、1つ又は複数の道路の特徴を表すデータを含み得る。そのような道路の特徴には、認識される陸標、道路シグネチャプロファイル、及び車両のナビゲートに有用な任意の他の道路関連の特徴が含まれ得る。本開示による疎なマップは、疎なマップに含まれる比較的少量のデータに基づく車両の自律ナビゲーションを可能にし得る。例えば、道路端部、道路の曲率、道路区分に関連付けられた画像、又は道路区分に関連付けられた他の物理的特徴を詳細に示すデータ等、道路の詳細な表現を含めなくても、疎なマップの開示される実施形態は、比較的少ない記憶領域(及び疎なマップの一部が車両に転送されるときの比較的小さな帯域幅)は必要となり得るが、それでも自律車両ナビゲーションを適切に提供し得る。以下で更に詳細に論じる、開示される疎なマップの小さなデータフットプリントは、幾つかの実施形態では、少量のデータを必要とするが、それでも自律ナビゲーションを可能にする道路関連要素の表現を記憶することによって実現され得る。
例えば、道路の様々な側面の詳細な表現を記憶するのではなく、開示される疎なマップは、車両が道路を追従し得る1つ又は複数の軌道の多項式表現を記憶し得る。従って、開示される疎なマップを使用して、道路に沿ったナビゲーションを可能にするために道路の物理的性質に関する詳細を記憶する(又は転送する必要がある)のではなく、車両は、場合によっては、道路の物理的側面を解釈する必要なしに、むしろ、その走行経路を特定の道路区分に沿った軌道(例えば、多項式スプライン)に位置合わせすることによって、特定の道路区分に沿ってナビゲートされ得る。このようにして、車両は、主に、道路画像、道路パラメータ、道路レイアウト等の記憶を含む手法よりもはるかに少ない記憶領域を必要とし得る、記憶される軌道(例えば、多項式スプライン)に基づいてナビゲートされ得る。
道路区分に沿った軌道の記憶される多項式表現に加えて、開示される疎なマップはまた、道路の特徴を表し得る小さなデータオブジェクトを含み得る。幾つかの実施形態では、小さなデータオブジェクトは、道路区分に沿って走行する車両に搭載されたセンサ(例えば、カメラ又はサスペンションセンサ等の他のセンサ)によって取得されたデジタル画像(又はデジタル信号)から導出されるデジタルシグネチャを含み得る。デジタルシグネチャは、センサによって取得された信号と比較して縮小されたサイズとなり得る。幾つかの実施形態では、デジタルシグネチャは、例えば、後の走行中にセンサによって取得される信号から道路の特徴を検出及び識別するように構成される分類子関数と互換性があるように作成され得る。幾つかの実施形態では、デジタルシグネチャは、その後の時間に同じ道路区分に沿って走行する車両に搭載されるカメラによって撮像される道路の特徴の画像(又は、記憶されるシグネチャが画像に基づいていない、及び/又は他のデータを含んでいる場合は、センサによって生成されるデジタル信号)に基づいて、道路の特徴を記憶されるシグネチャと相関又は一致させる能力を保持しながら、デジタルシグネチャが可能な限り小さいフットプリントを有するように作成され得る。
幾つかの実施形態では、データオブジェクトのサイズは、道路の特徴の一意性に更に関連付けられ得る。例えば、車両に搭載されるカメラによって検出可能な道路の特徴について、車両に搭載されるカメラシステムが、特定のタイプの道路の特徴、例えば、道路標識に関連付けられているものとしてその道路の特徴に対応する画像データを区別できる分類子に結合されている場合、及びそのような道路標識がその領域で局所的に一意(例えば、付近に同一の道路標識又は同じタイプの道路標識がない)である場合、道路の特徴のタイプ及びその位置を示すデータを記憶するだけで十分であり得る。
以下で更に詳細に論じるように、道路の特徴(例えば、道路区分に沿った陸標)は、比較的数バイトで道路の特徴を表し得る小さなデータオブジェクトとして記憶され得、同時に、ナビゲーションのためにそのような特徴を認識及び使用するための十分な情報を提供し得る。一例では、道路標識は、車両のナビゲーションが基づき得る認識される陸標として識別され得る。道路標識の表現は、例えば、陸標のタイプを示す数バイトのデータ(例えば、一時停止標識)及び陸標の位置(例えば、座標)を示す数バイトのデータを含むように、疎なマップに記憶され得る。陸標のそのようなデータ観点の表現に基づいてナビゲートする(例えば、陸標に基づいて位置を特定し、認識し、ナビゲートするのに十分な表現を使用する)は、疎なマップに関連付けられたデータオーバーヘッドを著しく増加させることなく、疎なマップに関連付けられた所望のレベルのナビゲーション機能を提供し得る。このような陸標(及び他の道路の特徴)の無駄のない表現は、特定の道路の特徴を検出、識別、及び/又は分類するように構成される、そのような車両に搭載されて含まれるセンサ及びプロセッサを利用し得る。
例えば、標識、更に特定のタイプの標識が所与の領域で局所的に一意である場合(例えば、他の標識がない場合、又は同じタイプの他の標識がない場合)、疎なマップは、陸標(標識又は特定のタイプの標識)のタイプを示すデータを使用し得、自律車両に搭載されるカメラが標識(又は特定のタイプの標識)を含む領域の画像を撮像するときのナビゲーション(例えば、自律ナビゲーション)中、プロセッサは、画像を処理し、標識を検出し(実際に画像に存在する場合)、画像を標識として(又は特定のタイプの標識として)分類し、画像の位置を疎なマップに記憶されている標識の位置と相関させ得る。
疎なマップの生成
幾つかの実施形態では、疎なマップは、道路区分及び道路区分に関連付けられた複数の陸標に沿って広がる路面特徴の少なくとも1つの線表現を含み得る。特定の態様では、疎なマップは、「クラウドソーシング」を介して、例えば、1つ又は複数の車両が道路区分を横断するときに取得される複数の画像の画像分析を介して生成され得る。
図8は、1つ又は複数の車両、例えば、車両200(自律車両であり得る)が、自律車両ナビゲーションを提供するためにアクセスし得る疎なマップ800を示す。疎なマップ800は、メモリ140又は150等のメモリに記憶され得る。そのようなメモリデバイスは、任意のタイプの非一時的ストレージデバイス又はコンピュータ可読媒体を含み得る。例えば、幾つかの実施形態では、メモリ140又は150は、ハードドライブ、コンパクトディスク、フラッシュメモリ、磁気ベースのメモリデバイス、光学ベースのメモリデバイス等を含み得る。幾つかの実施形態では、疎なマップ800は、メモリ140もしくは150、又は他のタイプのストレージデバイスに記憶され得るデータベース(例えば、マップデータベース160)に記憶され得る。
幾つかの実施形態では、疎なマップ800は、車両200に搭載されるストレージデバイス又は非一時的コンピュータ可読媒体(例えば、車両200に搭載されるナビゲーションシステムに含まれるストレージデバイス)に記憶され得る。車両200に搭載されるプロセッサ(例えば、処理ユニット110)は、車両が道路区分を横断するときに自律車両200を誘導するためのナビゲーション命令を生成するために、車両200に搭載されるストレージデバイス又はコンピュータ可読媒体に記憶される疎なマップ800にアクセスし得る。
ただし、疎なマップ800は、車両に関してローカルに記憶する必要はない。幾つかの実施形態では、疎なマップ800は、車両200又は車両200に関連付けられたデバイスと通信する遠隔サーバ上に提供されるストレージデバイス又はコンピュータ可読媒体に記憶され得る。車両200に搭載されるプロセッサ(例えば、処理ユニット110)は、疎なマップ800に含まれるデータを遠隔サーバから受信し得、車両200の自律走行を誘導するためのデータを実行し得る。そのような実施形態では、遠隔サーバは、疎なマップ800の全て又はその一部のみを記憶し得る。従って、車両200及び/又は1つ又は複数の追加の車両に搭載されるストレージデバイス又はコンピュータ可読媒体は、疎なマップ800の残りの部分を記憶し得る。
更に、そのような実施形態では、疎なマップ800は、様々な道路区分を横断する複数の車両(例えば、数十、数百、数千、又は数百万の車両等)にアクセス可能にし得る。疎なマップ800は、複数のサブマップを含み得ることにも留意されたい。例えば、幾つかの実施形態では、疎なマップ800は、車両をナビゲートする際に使用され得る数百、数千、数百万、又はそれ以上のサブマップを含み得る。そのようなサブマップはローカルマップと呼ばれ得、道路に沿って走行する車両は、車両が走行している位置に関連する任意の数のローカルマップにアクセスし得る。疎なマップ800のローカルマップ区域は、疎なマップ800のデータベースへのインデックスとして、グローバルナビゲーション衛星システム(GNSS)キーと共に記憶され得る。従って、本システムでのホスト車両をナビゲートするための操舵角の計算は、ホスト車両のGNSS位置、道路の特徴、又は陸標に依存せずに実行され得るが、そのようなGNSS情報は、関連するローカルマップの取得に使用され得る。
一般に、疎なマップ800は、1つ又は複数の車両が道路に沿って走行するときに、1つ又は複数の車両から収集されるデータに基づいて生成され得る。例えば、1つ又は複数の車両に搭載されるセンサ(例えば、カメラ、速度計、GPS、加速度計等)を使用して、1つ又は複数の車両が道路に沿って走行する軌道を記録し得、道路に沿って後続の移動を行う車両の好ましい軌道の多項式表現は、1つ又は複数の車両によって走行される収集される軌道に基づいて決定され得る。同様に、1つ又は複数の車両によって収集されるデータは、特定の道路に沿った潜在的な陸標の識別を支援し得る。横断車両から収集されるデータは、道路幅プロファイル、道路粗さプロファイル、動線間隔プロファイル、道路条件等の道路プロファイル情報を識別するためにも使用され得る。収集される情報を使用して、疎なマップ800が生成され、1つ又は複数の自律車両のナビゲートに使用するために、(例えば、ローカルストレージのために、又はオンザフライデータ送信を介して)配信され得る。しかし、幾つかの実施形態では、マップ生成は、マップの初期生成時で終了し得ない。以下でより詳細に論じるように、疎なマップ800は、それらの車両が疎なマップ800に含まれる道路を横断し続けるときに、車両から収集されるデータに基づいて継続的又は定期的に更新され得る。
疎なマップ800に記録されるデータは、全地球測位システム(GPS)データに基づく位置情報を含み得る。例えば、位置情報は、例えば、陸標位置、道路プロファイル位置等を含む、様々なマップ要素の疎なマップ800に含まれ得る。疎なマップ800に含まれるマップ要素の位置は、道路を横断する車両から収集されるGPSデータを使用して取得し得る。例えば、識別される陸標を通過する車両は、車両に関連付けられたGPS位置情報を使用して識別される陸標の位置を決定し、(例えば、車両に搭載される1つ又は複数のカメラから収集されるデータの画像分析に基づいて)車両に対する識別される陸標の位置を決定し得る。識別される陸標(又は疎なマップ800に含まれる任意の他の特徴)のそのような位置決定は、追加の車両が識別される陸標の位置を通過するときに繰り返され得る。追加の位置決定の一部又は全部を使用して、識別される陸標に関連して疎なマップ800に記憶される位置情報を洗練させ得る。例えば、幾つかの実施形態では、疎なマップ800に記憶される特定の特徴に関連する複数の位置測定値を共に平均化し得る。しかし、他の任意の数学的演算を使用して、マップ要素の複数の決定された位置に基づいて、マップ要素の記憶される位置を洗練させることもできる。
開示される実施形態の疎なマップは、比較的少量の記憶されるデータを使用して車両の自律ナビゲーションを可能にし得る。幾つかの実施形態では、疎なマップ800は、道路1キロメートル当たり2MB未満、道路1キロメートル当たり1MB未満、道路1キロメートル当たり500KB未満、又は道路1キロメートル当たり100KB未満のデータ密度(例えば、目標軌道、陸標、及び任意の他の記憶された道路の特徴を表すデータを含む)を有し得る。幾つかの実施形態では、疎なマップ800のデータ密度は、道路1キロメートル当たり10KB未満、又は更に道路1キロメートル当たり2KB未満(例えば、1キロメートル当たり1.6KB)、又は道路1キロメートル当たり10KB以下、又は道路1キロメートル当たり20KB以下であり得る。幾つかの実施形態では、米国の道路の全てではないにしてもほとんどが、合計4GB以下のデータを有する疎なマップを使用して自律的にナビゲートされ得る。これらのデータ密度値は、疎なマップ800全体にわたる、疎なマップ800内のローカルマップにわたる、及び/又は疎なマップ800内の特定の道路区分にわたる平均を表し得る。
上記で述べたように、疎なマップ800は、道路区分に沿った自律走行又はナビゲーションを誘導するための複数の目標軌道810の表現を含み得る。そのような目標軌道は、3次元スプラインとして記憶され得る。疎なマップ800に記憶される目標軌道は、例えば、特定の道路区分に沿った車両の以前の横断の2つ以上の再構築される軌道に基づいて決定され得る。道路区分は、単一の目標軌道又は複数の目標軌道に関連付けられ得る。例えば、2レーン道路では、第1の目標軌道は、第1の方向の道路に沿った意図される走行経路を表すために記憶され得、第2の目標軌道は、別の方向(例えば、第1の方向と反対方向)の道路に沿った意図される走行経路を表すために記憶され得る。追加の目標軌道は、特定の道路区分に関して記憶され得る。例えば、複数レーンの道路では、複数レーンの道路に関連付けられた1つ又は複数のレーンの車両の意図される走行経路を表す1つ又は複数の目標軌道が記憶され得る。幾つかの実施形態では、複数レーンの道路の各レーンは、それ自体の目標軌道に関連付けられ得る。他の実施形態では、複数レーンの道路に存在するレーンよりも、記憶されている目標軌道が少なくなり得る。そのような場合、複数レーンの道路をナビゲートする車両は、記憶される目標軌道のいずれかを使用して、目標軌道が記憶されているレーンからのレーンオフセットの量を考慮してナビゲーションを誘導し得る(例えば、車両が3レーンの高速道路の左端レーンを走行していて、目標軌道が高速道路の中央レーンに対してのみ記憶されている場合、車両は、ナビゲーション命令を生成するときに、中央レーンと左端レーンとの間のレーンオフセットの量を考慮して、中央レーンの目標軌道を使用してナビゲートし得る)。
幾つかの実施形態では、目標軌道は、車両が走行するときに車両が取るべき理想的な経路を表し得る。目標軌道は、例えば、走行レーンのほぼ中心に配置され得る。その他の場合、目標軌道は道路区分に対して他の場所に配置され得る。例えば、目標軌道は、道路の中心、道路の端部、又はレーンの端部等とほぼ一致し得る。そのような場合、目標軌道に基づくナビゲーションは、目標軌道の位置に対して維持すべき決定された量のオフセットを含み得る。更に、幾つかの実施形態では、目標軌道の位置に対して維持すべきオフセットの決定された量は、車両のタイプに基づいて異なり得る(例えば、2つの車軸を含む乗用車は、目標軌道の少なくとも一部に沿って、3つ以上の車軸を含むトラックとは異なるオフセットを有し得る)。
疎なマップ800はまた、特定の道路区分、ローカルマップ等に関連付けられた複数の所定の陸標820に関連するデータを含み得る。以下でより詳細に論じるように、これらの陸標を使用して、自律車両をナビゲーションし得る。例えば、幾つかの実施形態では、陸標を使用して、記憶される目標軌道に対する車両の現在位置を決定し得る。この位置情報を使用して、自律車両は、決定された位置での目標軌道の方向に一致するように進行方向が調整可能であり得る。
複数の陸標820は、任意の適切な間隔で識別され、疎なマップ800に記憶され得る。幾つかの実施形態では、陸標は比較的高い密度で(例えば、数メートル以上ごとに)記憶され得る。しかし、幾つかの実施形態では、著しく大きな陸標間隔値を使用し得る。例えば、疎なマップ800では、識別される(又は認識される)陸標は、10メートル、20メートル、50メートル、100メートル、1キロメートル、又は2キロメートルの間隔で離れ得る。場合によっては、識別される陸標が更に2キロメートル超離れた距離に位置し得る。
陸標間、従って目標軌道に対する車両位置を決定する間には、車両は、車両がセンサを使用してエゴモーションを決定し、目標軌道に対する位置を推定する推測航法に基づいてナビゲートし得る。推測航法によるナビゲーション中に誤差が蓄積し得るため、経時的に目標軌道に対する位置決定の精度が次第に低下し得る。車両は、疎なマップ800(及びそれらの既知の位置)に存在する陸標を使用して、位置決定における推測航法によって誘発される誤差を除去し得る。このようにして、疎なマップ800に含まれる識別される陸標は、ナビゲーションアンカーとして機能し得、そこから、目標軌道に対する車両の正確な位置を決定し得る。位置決定では、ある程度の誤差が許容でき得るため、識別される陸標が自律車両で常に利用可能である必要はない。むしろ、上記で述べたように、10メートル、20メートル、50メートル、100メートル、500メートル、1キロメートル、2キロメートル、又はそれ以上の陸標間隔に基づいても、適切なナビゲーションが可能であり得る。幾つかの実施形態では、道路の1kmごとに1つの識別された陸標の密度は、1m以内の縦方向位置決定精度を維持するのに十分であり得る。従って、道路区分に沿って現れる全ての潜在的な陸標を疎なマップ800に記憶する必要があるとは限らない。
更に、幾つかの実施形態では、レーンマークは、陸標間隔の間の車両の位置特定のために使用され得る。陸標間隔の間にレーンマークを使用することにより、推測航法によるナビゲーション中の蓄積が最小限に抑えられ得る。
目標軌道及び識別される陸標に加えて、疎なマップ800は、他の様々な道路の特徴に関連する情報を含み得る。例えば、図9Aは、疎なマップ800に記憶され得る特定の道路区分に沿った曲線の表現を示す。幾つかの実施形態では、道路の単一レーンは、道路の左側及び右側の3次元多項式記述によってモデル化され得る。単一レーンの左側及び右側を表す、そのような多項式を図9Aに示す。道路が有し得るレーン数に関係なく、図9Aに示すのと同様の方法で、多項式を使用して道路を表し得る。例えば、複数レーンの道路の左側及び右側は、図9Aに示したものと同様の多項式で表し得、複数レーンの道路に含まれる中間のレーンマーク(例えば、レーンの境界を表す破線のマーク、異なる方向に走行するレーン間の境界を表す黄色の実線等)も、図9Aに示すような多項式を使用して表し得る。
図9Aに示すように、レーン900は、多項式(例えば、1次、2次、3次、又は任意の適切な次数の多項式)を使用して表し得る。説明のために、レーン900は2次元レーンとして示され、多項式は2次元多項式として示されている。図9Aに示すように、レーン900は左側910及び右側920を含む。幾つかの実施形態では、複数の多項式を使用して、道路又はレーンの境界の各側の位置を表し得る。例えば、左側910及び右側920のそれぞれは、任意の適切な長さの複数の多項式によって表し得る。場合によっては、多項式が約100mの長さになり得るが、100mより長い又は短い他の長さも使用し得る。更に、ホスト車両が道路に沿って走行するときに、その後に遭遇する多項式に基づいてナビゲートする際のシームレスな遷移を容易にするために、多項式を互いに重なり合わせることができる。例えば、左側910及び右側920のそれぞれは、長さが約100メートルの区分(第1の所定の範囲の例)に分離され、互いに約50メートル重なり合う複数の3次多項式によって表し得る。左側910及び右側920を表す多項式は、同じ順序であり得るか、又は同じ順序であり得ない。例えば、幾つかの実施形態では、幾つかの多項式は2次多項式であり得、幾つかは3次多項式であり得、幾つかは4次多項式であり得る。
図9Aに示す例では、レーン900の左側910は、3次多項式の2つのグループで表されている。第1のグループには、多項式区分911、912、及び913が含まれる。第2のグループには、多項式区分914、915、及び916が含まれる。2つのグループは、互いに実質的に平行であるが、道路のそれぞれの側の位置に従う。多項式区分911、912、913、914、915、及び916は約100メートルの長さであり、一連内の隣接する区分と約50メートル重なり合っている。ただし、前述のように、異なる長さ及び異なる重なり合う量の多項式も使用し得る。例えば、多項式は500m、1km、又はそれ以上の長さであり得、重なり合う量は0から50m、50mから100m、又は100m超に変化し得る。更に、図9Aは、2D空間(例えば、紙の表面上)に広がる多項式を表すものとして示され、これらの多項式は、X-Y曲率に加えて、道路区分の標高の変化を表すために、(例えば、高さ成分を含む)3次元に広がる曲線を表し得ることを理解されたい。図9Aに示す例では、レーン900の右側920は、多項式区分921、922、及び923を有する第1のグループ、並びに多項式区分924、925、及び926を有する第2のグループによって更に表される。
疎なマップ800の目標軌道に戻り、図9Bは、特定の道路区分に沿って走行する車両の目標軌道を表す3次元多項式を示す。目標軌道は、ホスト車両が特定の道路区分に沿って走行すべきX-Y経路だけでなく、ホスト車両が道路区分に沿って走行するときに経験する標高の変化も表す。従って、疎なマップ800内の各目標軌道は、図9Bに示す3次元多項式950のように、1つ又は複数の3次元多項式によって表し得る。疎なマップ800は、複数(例えば、世界中の道路に沿った様々な道路区分に沿った車両の軌道を表すために、数百万又は数十億以上)の軌道を含み得る。幾つかの実施形態では、各目標軌道は、3次元多項式区分を接続するスプラインに対応し得る。
疎なマップ800に記憶される多項式曲線のデータフットプリントに関して、幾つかの実施形態では、各3次多項式は、4つのパラメータによって表され、それぞれは4バイトのデータを必要とし得る。適切な表現は、100mごとに約192バイトのデータを必要とする3次多項式で取得し得る。これは、約100km/hrを走行するホスト車両のデータ使用量/転送要件で1時間当たり約200KBと言い換え得る。
疎なマップ800は、ジオメトリ記述子とメタデータとの組み合わせを使用してレーンネットワークを記述し得る。ジオメトリは、上記で説明したように多項式又はスプラインで記述し得る。メタデータは、レーンの数、特別な特性(カープールレーン等)、及び場合により他の疎なラベルを記述し得る。そのような指標の総フットプリントは、ごくわずかであり得る。
従って、本開示の実施形態による疎なマップは、道路区分に沿って広がる路面特徴の少なくとも1つの線表現を含み得、各線表現は、路面特徴に実質的に対応する道路区分に沿った経路を表す。幾つかの実施形態では、上記で論じたように、路面特徴の少なくとも1つの線表現は、スプライン、多項式表現、又は曲線を含み得る。更に、幾つかの実施形態では、路面特徴は、道路端部又はレーンマークのうちの少なくとも1つを含み得る。更に、「クラウドソーシング」に関して以下で論じるように、路面特徴は、1つ又は複数の車両が道路区分を横断するときに取得される複数の画像の画像分析によって識別され得る。
前述のように、疎なマップ800は、道路区分に関連付けられた複数の所定の陸標を含み得る。陸標の実際の画像を記憶して、例えば、撮像された画像及び記憶される画像に基づく画像認識分析に依存するのではなく、疎なマップ800の各陸標は、記憶される実際の画像が必要とするよりも少ないデータを使用して表現及び認識され得る。陸標を表すデータは、道路に沿った陸標を説明又は識別するための十分な情報を更に含み得る。陸標の実際の画像ではなく、陸標の特性を記述したデータを記憶することで、疎なマップ800のサイズを縮小し得る。
図10は、疎なマップ800で表され得る陸標のタイプの例を示す。陸標には、道路区分に沿った任意の可視及び識別可能な物体が含まれ得る。陸標は、固定されており、位置及び/又は内容に関して頻繁に変更されないように選択し得る。疎なマップ800に含まれる陸標は、車両が特定の道路区分を横断するときに、目標軌道に対する車両200の位置を決定するのに有用であり得る。陸標の例は、交通標識、方向標識、一般標識(例えば、長方形の標識)、路傍の備品(例えば、街灯柱、反射板等)、及び任意のその他の適切なカテゴリを含み得る。幾つかの実施形態では、道路上のレーンマークはまた、疎なマップ800の陸標として含まれ得る。
図10に示す陸標の例は、交通標識、方向標識、路傍の備品、及び一般標識を含む。交通標識は、例えば、制限速度標識(例えば、制限速度標識1000)、ゆずれの標識(例えば、ゆずれの標識1005)、路線番号標識(例えば、路線番号標識1010)、信号機標識(例えば、信号機標識1015)、とまれの標識(例えば、とまれの標識1020)を含み得る。方向標識は、異なる場所へのうちの1つ又は複数の方向を示す1つ又は複数の矢印を含む標識を含み得る。例えば、方向標識は、車両を異なる道路又は場所の方向を指示するための矢印を有する高速道路標識1025、車両を道路から出る方向を指示する矢印を有する出口標識1030等を含み得る。従って、複数の陸標のうちの少なくとも1つは、道路標識を含み得る。
一般標識は、交通に無関係であり得る。例えば、一般標識は、広告に使用される看板、又は2つの国、州、郡、市、又は町の間の境界に隣接するウェルカムボードを含み得る。図10は、一般標識1040(「Joe's Restaurant」)を示す。図10に示すように、一般標識1040は長方形の形状を有し得るが、一般標識1040は、正方形、円形、三角形等の他の形状を有し得る。
陸標はまた、路傍の備品を含み得る。路傍の備品は、標識ではない物体であり得、交通又は方向に関連し得ない。例えば、路傍の備品は、街灯柱(例えば、街灯柱1035)、電力線柱、信号機柱等を含み得る。
陸標はまた、自律車両ナビゲーションシステムで使用するために特別に設計され得るビーコンを含み得る。例えば、そのようなビーコンは、ホスト車両のナビゲートを支援するために所定の間隔で配置される独立型の構造物を含み得る。そのようなビーコンはまた、道路区分に沿って走行する車両によって識別又は認識され得る既存の道路標識(例えば、アイコン、エンブレム、バーコード等)に追加される視覚的/グラフィック情報を含み得る。そのようなビーコンはまた、電子部品を含み得る。そのような実施形態では、電子ビーコン(例えば、RFIDタグ等)を使用して、非視覚的情報をホスト車両に送信し得る。そのような情報は、例えば、ホスト車両が目標軌道に沿ったその位置を決定する際に使用し得る陸標識別及び/又は陸標位置情報を含み得る。
幾つかの実施形態では、疎なマップ800に含まれる陸標は、所定のサイズのデータオブジェクトによって表され得る。陸標を表すデータは、特定の陸標を識別するための任意の適切なパラメータを含み得る。例えば、幾つかの実施形態では、疎なマップ800に記憶される陸標は、陸標の物理的サイズ(例えば、既知のサイズ/スケールに基づく陸標までの距離の推定をサポートするため)、前の陸標までの距離、横方向のオフセット、高さ、タイプコード(例えば、陸標タイプ - 方向標識、交通標識等のタイプ)、GPS座標(例えば、グローバルローカリゼーションをサポートするため)、及び任意のその他の適切なパラメータ等のパラメータを含み得る。各パラメータは、データサイズに関連付けられ得る。例えば、陸標サイズは8バイトのデータを使用して記憶され得る。前の陸標までの距離、横方向のオフセット、及び高さは、12バイトのデータを使用して指定し得る。方向標識又は交通標識等の陸標に関連付けられたタイプコードには、約2バイトのデータが必要になり得る。一般標識の場合、一般標識の識別を可能にする画像シグネチャは、50バイトのデータストレージを使用して記憶され得る。陸標のGPS位置は、16バイトのデータストレージに関連付けられ得る。各パラメータのこれらのデータサイズは単なる例であり、他のデータサイズも使用し得る。
このようにして疎なマップ800で陸標を表現することは、データベース内の陸標を効率的に表現するための無駄のない解決策を提供し得る。幾つかの実施形態では、標識は、意味的標識及び非意味的標識と呼ばれ得る。意味的標識は、標準化される意味を持つ任意のクラスの標識(例えば、制限速度標識、警告標識、方向標識等)を含め得る。非意味的標識は、標準化される意味に関連付けられていない任意の標識(例えば、一般的な広告標識、ビジネスを識別する標識等)を含み得る。例えば、各意味的標識は、38バイトのデータ(例えば、サイズの8バイト、前の陸標までの距離、横方向のオフセット、高さの12バイト、タイプコードの2バイト、GPS座標の16バイト)で表し得る。疎なマップ800は、陸標タイプを表すためにタグシステムを使用し得る。場合によっては、各交通標識又は方向標識が独自のタグに関連付けられ得、陸標IDの一部としてデータベースに記憶され得る。例えば、データベースは、様々な交通標識を表すために1000ほどの異なるタグを含み、方向標識を表すために約10000ほどの異なるタグを含み得る。当然ながら、任意の適切な数のタグを使用し得、必要に応じて追加のタグを作成し得る。汎用標識は、幾つかの実施形態では、約100バイト未満を使用して表し得る(例えば、サイズの8バイト、前の陸標までの距離、横方向のオフセット、及び高さの12バイト、画像シグネチャの50バイト、及びGPS座標の16バイトを含む約86バイト)。
従って、画像シグネチャを必要としない意味的道路標識の場合、疎なマップ800へのデータ密度の影響は、50m当たり約1個の比較的高い陸標密度であっても、1キロメートル当たり約760バイトほどになり得る(例えば、1キロメートル当たり20個の陸標×1個の陸標当たり38バイト=760バイト)。画像シグネチャ成分を含む汎用標識の場合でも、データ密度への影響は1キロメートル当たり約1.72KBである(例えば、1キロメートル当たり20個の陸標×1個の陸標当たり86バイト=1,720バイト)。意味的道路標識の場合、これは100km/hrで走行する車両の1時間当たり約76KBのデータ使用量に相当する。汎用標識の場合、これは時速100km/hrで走行する車両の1時間当たり約170KBに相当する。
幾つかの実施形態では、長方形の標識等の概して長方形の物体は、100バイト以下のデータで疎なマップ800内に表し得る。疎なマップ800における概して長方形の物体(例えば、一般標識1040)の表現は、概して長方形の物体に関連付けられた凝縮画像シグネチャ(例えば、凝縮画像シグネチャ1045)を含み得る。この凝縮画像シグネチャは、例えば、認識される陸標として、例えば、汎用標識の識別を支援するために使用され得る。そのような凝縮画像シグネチャ(例えば、物体を表す実際の画像データから導出される画像情報)は、陸標を認識するために物体の実際の画像を記憶する必要性又は実際の画像に対して実行される比較画像分析の必要性を回避し得る。
図10を参照すると、疎なマップ800は、一般標識1040の実際の画像ではなく、一般標識1040に関連付けられた凝縮画像シグネチャ1045を含み得るか、又は記憶し得る。例えば、撮像デバイス(例えば、撮像デバイス122、124、又は126)が一般標識1040の画像を撮像した後、プロセッサ(例えば、画像プロセッサ190、又はホスト車両に対して搭載されているか、もしくは遠隔設置されているかのいずれかで画像を処理できる他の任意のプロセッサ)は、画像分析を実行して、一般標識1040に関連付けられた固有のシグネチャ又はパターンを含む凝縮画像シグネチャ1045を抽出/作成し得る。1つの実施形態では、凝縮画像シグネチャ1045は、一般標識1040を説明するために一般標識1040の画像から抽出され得る形状、色パターン、明るさパターン、又は任意の他の特徴を含み得る。
例えば、図10で、凝縮画像シグネチャ1045に示す円形、三角形、及び星形は、異なる色の領域を表し得る。円形、三角形、及び星形によって表されるパターンは、疎なマップ800に、例えば、画像シグネチャを含むように指定される50バイト内に記憶され得る。特に、円形、三角形、星は、必ずしもそのような形状が画像シグネチャの一部として記憶されていることを示すことを意味するわけではない。むしろ、これらの形状は、識別可能な色の違い、テキスト領域、グラフィック形状、又は汎用標識に関連付けられ得る特性の他の異形を有する認識可能な領域を概念的に表すことを意味している。そのような凝縮画像シグネチャは、一般標識の形態で陸標を識別するために使用できる。例えば、凝縮画像シグネチャを使用して、例えば、自律車両に搭載されるカメラを使用して撮像された画像データと、記憶される凝縮画像シグネチャとの比較に基づいて、同じか否か分析を実行できる。
従って、複数の陸標は、1つ又は複数の車両が道路区分を横断するときに取得される複数の画像の画像分析によって識別され得る。「クラウドソーシング」に関して以下で説明するように、幾つかの実施形態では、複数の陸標を識別するための画像分析は、陸標が現れる画像と陸標が現れない画像との比率が閾値を超える場合に、潜在的な陸標を受け入れることを含み得る。更に、幾つかの実施形態では、複数の陸標を識別するための画像分析は、陸標が現れない画像と陸標が現れる画像との比率が閾値を超える場合に、潜在的な陸標を拒否することを含み得る。
ホスト車両が特定の道路区分をナビゲートするために使用し得る目標軌道に戻り、図11Aは、疎なマップ800を構築又は維持するプロセス中に撮像する多項式表現の軌道を示す。疎なマップ800に含まれる目標軌道の多項式表現は、同じ道路区分に沿った車両の以前の横断の2つ以上の再構築される軌道に基づいて決定され得る。幾つかの実施形態では、疎なマップ800に含まれる目標軌道の多項式表現は、同じ道路区分に沿った車両の以前の横断の2つ以上の再構築される軌道の集約であり得る。幾つかの実施形態では、疎なマップ800に含まれる目標軌道の多項式表現は、同じ道路区分に沿った車両の以前の横断の2つ以上の再構築される軌道の平均であり得る。他の数学的演算を使用して、道路区分に沿って横断する車両から収集される再構築される軌道に基づいて、道路経路に沿った目標軌道を構築することもできる。
図11Aに示すように、道路区分1100は、異なる時間に複数の車両200によって走行され得る。各車両200は、車両が道路区分に沿って取った経路に関連するデータを収集し得る。特定の車両が走行する経路は、他の潜在的な情報源の中でも特に、カメラデータ、加速度計情報、速度センサ情報、及び/又はGPS情報に基づいて決定され得る。そのようなデータは、道路区分に沿って走行する車両の軌道を再構築するために使用され得、これらの再構築される軌道に基づいて、特定の道路区分の目標軌道(又は複数の目標軌道)が決定され得る。そのような目標軌道は、車両が道路区分に沿って走行するときの、(例えば、自律ナビゲーションシステムによって誘導される)ホスト車両の好ましい経路を表し得る。
図11Aに示す例では、第1の再構築される軌道1101は、第1の期間(例えば、1日目)に道路区分1100を横断する第1の車両から受信されるデータに基づいて決定され得、第2の再構築される軌道1102は、第2の期間(例えば、2日目)に道路区分1100を横断する第2の車両から取得され得、第3の再構築される軌道1103は、第3の期間(例えば、3日目)に道路区分1100を横断する第3の車両から取得され得る。各軌道1101、1102、及び1103は、3次元多項式等の多項式によって表し得る。幾つかの実施形態では、再構築される軌道のいずれかが、道路区分1100を横断する車両に提供され組み立てられ得ることに留意されたい。
追加又は代替として、そのような再構築される軌道は、道路区分1100を横断する車両から受信される情報に基づいて、サーバ側で決定され得る。例えば、幾つかの実施形態では、車両200は、道路区分1100に沿ったそれらの動き(例えば、とりわけ、操舵角、進行方向、時間、位置、速度、検知される道路のジオメトリ、及び/又は検知される陸標等)に関連するデータを1つ又は複数のサーバに送信し得る。サーバは、受信されるデータに基づいて車両200の軌道を再構築し得る。サーバはまた、第1、第2、及び第3の軌道1101、1102、及び1103に基づいて、後に同じ道路区分1100に沿って走行する自律車両のナビゲーションを誘導するための目標軌道を生成し得る。目標軌道は、道路区分の単一の以前の横断に関連付けられ得るが、幾つかの実施形態では、疎なマップ800に含まれる各目標軌道は、同じ道路区分を横断する車両の2つ以上の再構築される軌道に基づいて決定され得る。図11Aでは、目標軌道は1110によって表されている。幾つかの実施形態では、目標軌道1110は、第1、第2、及び第3の軌道1101、1102、及び1103の平均に基づいて生成され得る。幾つかの実施形態では、疎なマップ800に含まれる目標軌道1110は、2つ以上の再構築される軌道の集約(例えば、重み付けされる組み合わせ)であり得る。
図11B及び図11Cは、地理的領域1111内に存在する道路区分に関連付けられた目標軌道の概念を更に示す。図11Bに示すように、地理的領域1111内の第1の道路区分1120は、第1の方向への車両走行のために指定される2つのレーン1122、及び第1の方向とは反対の第2の方向への車両走行のために指定される2つの追加のレーン1124を含む複数レーンの道路を含み得る。レーン1122及びレーン1124は、二重の黄色い線1123によって分離され得る。地理的領域1111はまた、道路区分1120と交差する分岐道路区分1130を含み得る。道路区分1130は、2レーンの道路を含み得、各レーンは、異なる進行方向に指定される。地理的領域1111はまた、一時停止線1132、一時停止標識1134、制限速度標識1136、及び危険標識1138等の他の道路の特徴を含み得る。
図11Cに示すように、疎なマップ800は、地理的領域1111内の車両の自律ナビゲーションを支援するための道路モデルを含むローカルマップ1140を含み得る。例えば、ローカルマップ1140は、地理的領域1111内の道路区分1120及び/又は1130に関連付けられた1つ又は複数のレーンの目標軌道を含み得る。例えば、ローカルマップ1140は、自律車両がレーン1122を横断するときにアクセス又は依存し得る目標軌道1141及び/又は1142を含み得る。同様に、ローカルマップ1140は、自律車両がレーン1124を横断するときにアクセス又は依存し得る目標軌道1143及び/又は1144を含み得る。更に、ローカルマップ1140は、自律車両が道路区分1130を横断するときにアクセス又は依存し得る目標軌道1145及び/又は1146を含み得る。目標軌道1147は、レーン1120(具体的には、レーン1120の右端のレーンに関連付けられた目標軌道1141に対応)から道路区分1130(具体的には、道路区分1130の第1の側に関連付けられた目標軌道1145に対応)に移行するときに自律車両が進むべき好ましい経路を表す。同様に、目標軌道1148は、道路区分1130から(具体的には、目標軌道1146に対応)道路区分1124の一部(具体的には、示すように、レーン1124の左レーンに関連付けられた目標軌道1143に対応)に移行するときに自律車両が進むべき好ましい経路を表す。
疎なマップ800はまた、地理的領域1111に関連付けられた他の道路関連特徴の表現を含み得る。例えば、疎なマップ800はまた、地理的領域1111で識別される1つ又は複数の陸標の表現を含み得る。そのような陸標は、一時停止線1132に関連付けられた第1の陸標1150、一時停止標識1134に関連付けられた第2の陸標1152、制限速度標識1154に関連付けられた第3の陸標、及び危険標識1138に関連付けられた第4の陸標1156を含み得る。そのような陸標は、車両が、決定された位置での目標軌道の方向に一致するようにその進行方向を調整し得るように、例えば、自律車両が、示す目標軌道のいずれかに対する現在位置を決定するのを支援するために使用され得る。
幾つかの実施形態では、疎なマップ800はまた、道路シグネチャプロファイルを含み得る。そのような道路シグネチャプロファイルは、道路に関連付けられた少なくとも1つのパラメータの任意の識別可能/測定可能な変動に関連付けられ得る。例えば、場合によっては、そのようなプロファイルは、特定の道路区分の表面粗さの変化、特定の道路区分にわたる道路幅の変化、特定の道路区分に沿って描かれた破線の間の距離の変化、特定の道路区分に沿った道路の曲率の変化等の路面情報の変化と関連付けられ得る。図11Dは、道路シグネチャプロファイル1160の例を示す。プロファイル1160は、上記のパラメータのいずれか、又は他のパラメータを表し得るが、一例では、プロファイル1160は、例えば、車両が特定の道路区分を走行するときのサスペンション変位の量を示す出力を提供する1つ又は複数のセンサを監視することによって得られる、路面粗さの測度を表し得る。
或いは、又は同時に、プロファイル1160は、特定の道路区分を走行する車両に搭載されるカメラを介して取得される画像データに基づいて決定された、道路幅の変化を表し得る。そのようなプロファイルは、例えば、特定の目標軌道に対する自律車両の特定の位置を決定するのに有用であり得る。すなわち、自律車両が道路区分を横断するとき、自律車両は、道路区分に関連付けられた1つ又は複数のパラメータに関連付けられたプロファイルを測定し得る。測定されるプロファイルを、道路区分に沿った位置に関してパラメータの変化をプロットする所定のプロファイルと相関/一致させることができる場合、道路区分に沿った現在位置、従って、道路区分の目標軌道に対する現在位置を決定するために、(例えば、測定される所定のプロファイルの対応する区域を重なり合わせることによって)測定される所定のプロファイルを使用し得る。
幾つかの実施形態では、疎なマップ800は、自律車両のユーザ、環境条件、及び/又は走行に関連する他のパラメータに関連付けられた異なる特性に基づく異なる軌道を含み得る。例えば、幾つかの実施形態では、異なるユーザの好み及び/又はプロファイルに基づいて、異なる軌道が生成され得る。そのような異なる軌道を含む疎なマップ800は、異なるユーザの異なる自律車両に提供され得る。例えば、一部のユーザは有料道路を避ける方を好み得るが、他のユーザは、ルートに有料道路があるか否かに関係なく、最短又は最速のルートを取ることを好み得る。開示されるシステムは、そのような異なるユーザの好み又はプロファイルに基づいて、異なる軌道を有する異なる疎なマップを生成し得る。別の例として、一部のユーザは高速で移動するレーンを走行することを好み得るが、他のユーザは常に中央レーンの位置を維持することを好み得る。
異なる軌道は、昼及び夜、雪、雨、霧等の異なる環境条件に基づいて生成され、疎なマップ800に含まれ得る。異なる環境条件で走行する自律車両は、そのような異なる環境条件に基づいて生成される疎なマップ800を提供し得る。幾つかの実施形態では、自律車両に提供されるカメラは、環境条件を検出し得、疎なマップを生成及び提供するサーバにそのような情報を提供し得る。例えば、サーバは、既に生成された疎なマップ800を生成又は更新して、検出された環境条件下での自律走行により適し得る又はより安全であり得る軌道を含み得る。環境条件に基づく疎なマップ800の更新は、自律車両が道路に沿って走行しているときに動的に実行され得る。
走行に関連する他の異なるパラメータも、異なる自律車両に異なる疎なマップを生成及び提供するための基礎として使用され得る。例えば、自律車両が高速で走行している場合、ターンが困難になり得る。自律車両が特定の軌道を進むときに、その車両が特定のレーン内を維持し得るように、道路ではなく特定のレーンに関連付けられた軌道を疎なマップ800に含め得る。自律車両に搭載されるカメラによって撮像された画像が、車両がレーンの外側にドリフトした(例えば、レーンマークを越えた)ことを示している場合、特定の軌道に従って車両を指定されるレーンに戻すために、車両内で動作がトリガされ得る。
疎なマップのクラウドソーシング
幾つかの実施形態では、開示されるシステム及び方法は、自律車両ナビゲーションのために疎なマップを生成し得る。例えば、開示されるシステム及び方法は、クラウドソーシングによるデータを使用して、1つ又は複数の自律車両が道路のシステムに沿ってナビゲートするために使用し得る疎なマップを生成し得る。本明細書で使用される「クラウドソーシング」は、異なる時間に道路区分を走行する様々な車両(例えば、自律車両)からデータを受信し、そのようなデータを使用して道路モデルを生成及び/又は更新することを意味する。次に、モデルは、自律車両ナビゲーションを支援するために、後に道路区分に沿って走行する車両又は他の車両に送信され得る。道路モデルは、自律車両が道路区分を横断するときに進むべき好ましい軌道を表す複数の目標軌道を含み得る。目標軌道は、道路区分を横断する車両から収集される再構築される実際の軌道と同じであり得、車両からサーバに送信され得る。幾つかの実施形態では、目標軌道は、1つ又は複数の車両が道路区分を横断するときに以前に取った実際の軌道とは異なり得る。目標軌道は、実際の軌道に基づいて(例えば、平均化又は任意のその他の適切な動作によって)生成され得る。
車両がサーバにアップロードし得る車両軌道データは、車両の実際の再構築される軌道に対応し得るか、又は車両の実際の再構築される軌道に基づき得るか又は関連し得るが、実際の再構築される軌道とは異なり得る、推奨される軌道に対応し得る。例えば、車両は、実際の再構築される軌道を修正し、修正される実際の軌道をサーバに送信(例えば、推奨)し得る。道路モデルは、他の車両の自律ナビゲーションの目標軌道として、推奨される修正される軌道を使用し得る。
軌道情報に加えて、疎なデータマップ800を構築する際に潜在的に使用するための他の情報は、潜在的な陸標候補に関連する情報を含み得る。例えば、情報のクラウドソーシングによって、開示されるシステム及び方法は、環境内の潜在的な陸標を識別し、陸標の位置を洗練し得る。陸標は、目標軌道に沿った車両の位置を決定及び/又は調整するために、自律車両のナビゲーションシステムによって使用され得る。
車両が道路に沿って走行するときに車両が生成し得る再構築される軌道は、任意の適切な方法によって取得され得る。幾つかの実施形態では、再構築される軌道は、例えば、エゴモーション推定(例えば、カメラ、ひいては車両の本体の3次元並進及び3次元回転)を使用して、車両の動きの区分をつなぎ合わせることによって開発され得る。回転及び並進の推定は、慣性センサ及び速度センサ等の他のセンサ又はデバイスからの情報と共に、1つ又は複数の撮像デバイスによって撮像された画像の分析に基づいて決定され得る。例えば、慣性センサは、車両本体の並進及び/又は回転の変化を測定するように構成される加速度計又は他の適切なセンサを含み得る。車両は、車両の速度を測定する速度センサを含み得る。
幾つかの実施形態では、カメラ(ひいては、車両本体)のエゴモーションは、撮像された画像の光学フロー分析に基づいて推定され得る。一連の画像の光学フロー分析は、一連の画像からピクセルの動きを識別し、識別される動きに基づいて、車両の動きを決定する。エゴモーションは、道路区分に沿って経時的に積分され、車両が通った道路区分に関連付けられた軌道を再構築し得る。
異なる時間に道路区分に沿った複数の走行で複数の車両によって収集されるデータ(例えば、再構築される軌道)を使用して、疎なデータマップ800に含まれる道路モデル(例えば、目標軌道等を含む)を構築し得る。モデルの精度を高めるために、異なる時間に道路区分に沿った複数の走行で複数の車両によって収集されるデータも平均化され得る。幾つかの実施形態では、道路のジオメトリ及び/又は陸標に関するデータは、異なる時間に共通の道路区分を通って走行する複数の車両から受信され得る。異なる車両から受信されるそのようなデータを組み合わせて、道路モデルを生成及び/又は道路モデルを更新し得る。
道路区分に沿った再構築される軌道(及び目標軌道も)のジオメトリは、3次元多項式を接続するスプラインであり得る、3次元空間の曲線で表し得る。再構築される軌道曲線は、ビデオストリーム又は車両に設置されたカメラによって撮像される複数の画像の分析から決定し得る。幾つかの実施形態では、位置は、車両の現在位置より数メートル先の各フレーム又は画像で識別される。この位置は、車両が所定の期間内に走行すると予期される場所である。この動作はフレームごとに繰り返し得、同時に、車両はカメラのエゴモーション(回転及び並進)を計算し得る。各フレーム又は画像で、カメラに取り付けられた参照フレーム内の車両によって、所望の経路の短距離モデルが生成される。短距離モデルをつなぎ合わせて、任意の座標フレーム又は所定の座標フレームであり得る、幾つかの座標フレーム内の道路の3次元モデルを取得し得る。次いで、道路の3次元モデルは、適切な次数のうちの1つ又は複数の多項式を含み得る又は接続し得るスプラインによってフィットされ得る。
各フレームで短距離道路モデルを結論付けるために、1つ又は複数の検出モジュールを使用し得る。例えば、ボトムアップレーン検出モジュールを使用し得る。ボトムアップレーン検出モジュールは、レーンマークが道路に描かれている場合に有用であり得る。このモジュールは、画像内の端部を探し、それらを共に組み立ててレーンマークを形成し得る。第2のモジュールは、ボトムアップレーン検出モジュールと一緒に使用し得る。第2のモジュールは、入力画像から正確な短距離経路を予測するようにトレーニングし得る、エンドツーエンドのディープニューラルネットワークである。どちらのモジュールでも、道路モデルは画像座標フレームで検出され、カメラに仮想的に接続され得る3次元空間に変換され得る。
再構築される軌道モデリング方法は、雑音成分を含み得る、長期間にわたるエゴモーションの積分により、誤差の蓄積をもたらし得るが、生成されるモデルがローカルスケールでのナビゲーションに十分な精度を提供し得るため、そのような誤差は重要となり得ない。加えて、衛星画像又は測地測定等の外部情報源を使用して、積分誤差を取り消すことができる。例えば、開示されるシステム及び方法は、累積誤差を取り消すためにGNSS受信機を使用し得る。しかし、GNSS測位信号が常に利用可能で正確であるとは限らない。開示されるシステム及び方法は、GNSS測位の可用性及び精度に弱く依存する操舵アプリケーションを可能にし得る。そのようなシステムでは、GNSS信号の使用が制限され得る。例えば、幾つかの実施形態では、開示されるシステムは、データベースのインデックス作成の目的でのみGNSS信号を使用し得る。
幾つかの実施形態では、自律車両ナビゲーション操舵アプリケーションに関連し得る範囲スケール(例えば、ローカルスケール)は、50メートルほど、100メートルほど、200メートルほど、300メートルほど等であり得る。ジオメトリの道路モデルは、主に前方の軌道を計画すること、及び道路モデル上で車両の位置を特定することの2つの目的で使用されるため、そのような距離を使用し得る。幾つかの実施形態では、制御アルゴリズムが1.3秒先(又は1.5秒、1.7秒、2秒等の任意の他の時間)に位置する目標点に従って車両を操舵するとき、計画タスクは、40メートル先(又は20メートル、30メートル、50メートル等の任意の他の適切な前方距離)の典型的な範囲にわたってモデルを使用し得る。位置特定タスクでは、別の節でより詳細に説明する「テールアラインメント」と呼ばれる方法に従って、車の後ろ60メートルの典型的な範囲(又は50メートル、100メートル、150メートル等の任意の他の適切な距離)にわたって道路モデルを使用する。開示されるシステム及び方法は、計画される軌道が、例えば、レーン中心から30cm超逸脱しないように、100メートル等の特定の範囲にわたって十分な精度を有するジオメトリのモデルを生成し得る。
上述したように、3次元道路モデルは、短距離セクションを検出し、それらをつなぎ合わせることから構築され得る。つなぎ合わせることは、カメラによって撮像されるビデオ及び/又は画像、車両の動きを反映する慣性センサからのデータ、及びホスト車両の速度信号を使用して、6段階のエゴモーションモデルを計算することによって可能になり得る。累積誤差は、100メートルほど等の一部のローカル範囲スケールでは十分に小さくなり得る。この範囲スケール全てで、特定の道路区分は単一走行で完了させ得る。
幾つかの実施形態では、複数の走行を使用して、結果のモデルを平均化し、その精度を更に高め得る。同じ車が同じルートを複数回走行し得るか、又は複数の車が収集したモデルデータを中央サーバに送信し得る。いずれの場合も、マッチング手順を実行して、重複するモデルを識別し、目標軌道を生成するために平均化を有効にでき得る。構築されるモデル(例えば、目標軌道を含む)は、収束基準が満たされると、操舵に使用され得る。後の走行は、モデルを更に改善するため、及びインフラストラクチャの変更に対応するために使用され得る。
複数の車が中央サーバに接続されている場合、複数の車間での走行経験(検知データ等)の共有が可能になる。各車両クライアントは、現在位置に関連し得る普遍的道路モデルの部分的なコピーを記憶し得る。車両とサーバとの間の双方向の更新手順は、車両及びサーバによって実行され得る。上で論じた小さなフットプリントの概念は、開示されるシステム及び方法が非常に狭い帯域幅を使用して双方向更新を実行することを可能にする。
潜在的な陸標に関連する情報も決定され、中央サーバに転送され得る。例えば、開示されるシステム及び方法は、陸標を含む1つ又は複数の画像に基づいて、潜在的な陸標のうちの1つ又は複数の物理的特性を決定し得る。物理的特性は、陸標の物理的サイズ(例えば、高さ、幅)、車両から陸標までの距離、陸標と前の陸標との距離、陸標の横方向の位置(例えば、走行レーンに対する陸標の位置)、陸標のGPS座標、陸標のタイプ、陸標上のテキストの識別等を含み得る。例えば、車両は、カメラによって撮像される1つ又は複数の画像を分析して、制限速度標識等の潜在的な陸標を検出し得る。
車両は、1つ又は複数の画像の分析に基づいて、車両から陸標までの距離を決定し得る。幾つかの実施形態では、距離は、スケーリング法及び/又は光学フロー法等の適切な画像分析方法を使用した陸標の画像の分析に基づいて決定し得る。幾つかの実施形態では、開示されるシステム及び方法は、潜在的な陸標のタイプ又は分類を決定するように構成され得る。特定の潜在的な陸標が疎なマップに記憶される所定のタイプ又は分類に対応すると車両が判断した場合、車両は、陸標のタイプ又は分類の表示をその位置と共にサーバに通信するだけで十分であり得る。サーバはそのような表示を記憶し得る。後に、他の車両が陸標の画像を撮像し、画像を処理し(例えば、分類子を使用して)、画像を処理した結果を、サーバに記憶される陸標のタイプに関する表示と比較し得る。様々なタイプの陸標が存在し得、異なるタイプの陸標が、サーバにアップロード及び記憶される異なるタイプのデータに関連付けられ得、車両に搭載される異なる処理により、陸標が検出され、陸標に関する情報がサーバに伝達され得、車両に搭載されるシステムは、サーバから陸標データを受信し、陸標データを使用して自律ナビゲーションで陸標を識別し得る。
幾つかの実施形態では、道路区分上を走行する複数の自律車両は、サーバと通信し得る。車両(又はクライアント)は、任意の座標フレームでその走行を説明する曲線を生成し得る(例えば、エゴモーション積分によって)。車両は陸標を検出し、同じフレーム内に配置し得る。車両は曲線及び陸標をサーバにアップロードし得る。サーバは、複数の走行にわたり車両からデータを収集し、統一される道路モデルを生成し得る。例えば、図19に関して以下で論じるように、サーバは、アップロードされる曲線及び陸標を使用して、統一される道路モデルを有する疎なマップを生成し得る。
サーバはまた、モデルをクライアント(例えば、車両)に配信し得る。例えば、サーバは疎なマップを1つ又は複数の車両に配信し得る。サーバは、車両から新しいデータを受信すると、モデルを継続的又は定期的に更新し得る。例えば、サーバは新しいデータを処理して、サーバ上での更新又は新しいデータの作成をトリガすべき情報がデータに含まれているか否かを評価し得る。サーバは、自律車両ナビゲーションを提供するために、更新されるモデル又は更新を車両に配信し得る。
サーバは、車両から受信される新しいデータが、モデルの更新をトリガすべきか、又は新しいデータの作成をトリガすべきかを決定するために、1つ又は複数の基準を使用し得る。例えば、特定の位置で以前に認識される陸標が存在しないか、又は別の陸標に置き換えられたことを新しいデータが示す場合、サーバは新しいデータがモデルの更新をトリガすべきであると判断し得る。別の例として、新しいデータが道路区分が閉鎖されることを示している場合、及びこれが他の車両から受信されるデータによって裏付けられている場合、サーバは新しいデータがモデルの更新をトリガすべきであると判断し得る。
サーバは、更新されるモデル(又はモデルの更新される部分)を、モデルへの更新が関連付けられている道路区分を走行している1つ又は複数の車両に配信し得る。サーバはまた、モデルへの更新が関連付けられている、道路区分を走行しようとしている車両、又は道路区分を含む計画される移動の車両に、更新されるモデルを配信し得る。例えば、更新が関連付けられている道路区分に到達する前に、自律車両が別の道路区分に沿って走行している間、サーバは、車両が道路区分に到達する前に、更新又は更新されるモデルを自律車両に配信し得る。
幾つかの実施形態では、遠隔サーバは、複数のクライアント(例えば、共通の道路区分に沿って走行する車両)から軌道及び陸標を収集し得る。サーバは、陸標を使用して曲線を照合し、複数の車両から収集される軌道に基づいて平均的な道路モデルを作成し得る。サーバはまた、道路のグラフ及び道路区分の各ノード又は結合点で最も可能性の高い経路を計算し得る。例えば、遠隔サーバは軌道を位置合わせして、収集される軌道からクラウドソーシングによる疎なマップを生成し得る。
サーバは、弧長パラメータを決定し、各クライアント車両の経路に沿った位置特定及び速度校正をサポートするために、複数の車両によって測定される、ある陸標から別の陸標(例えば、道路区分に沿った前の陸標)まで間の距離等、共通の道路区分に沿って走行する複数の車両から受信される陸標プロパティを平均化し得る。サーバは、共通の道路区分に沿って走行し、同じ陸標を認識した複数の車両によって測定される陸標の物理的寸法を平均化し得る。平均化される物理的寸法を使用して、車両から陸標までの距離等の距離推定をサポートし得る。サーバは、共通の道路区分に沿って走行し、同じ陸標を認識した複数の車両によって測定される、陸標の横方向の位置(例えば、車両が走行しているレーンから陸標までの位置)を平均化し得る。平均化される横方向の位置を使用して、レーン割り当てをサポートし得る。サーバは、同じ道路区分に沿って走行し、同じ陸標を認識した複数の車両によって測定される陸標のGPS座標を平均化し得る。陸標の平均化されるGPS座標を使用して、道路モデル内の陸標のグローバルローカリゼーション又は位置決めをサポートし得る。
幾つかの実施形態では、サーバは、車両から受信されるデータに基づいて、工事、迂回、新しい標識、標識の除去等のモデル変更を識別し得る。サーバは、車両から新しいデータを受信すると、モデルを継続的又は定期的に、又は瞬時に更新し得る。サーバは、自律ナビゲーションを提供するために、モデルの更新又は更新されるモデルを車両に配信し得る。例えば、以下で更に論じるように、サーバはクラウドソーシングによるデータを使用して、車両によって検出された「ゴースト」陸標を除外し得る。
幾つかの実施形態では、サーバは、自律走行中のドライバーの介入を分析し得る。サーバは、介入が発生する時間及び位置で車両から受信されるデータ、及び/又は介入が発生する時間より前に受信されるデータを分析し得る。サーバは、介入を引き起こした、又は介入に密接に関連するデータの特定の部分、例えば、一時的なレーン閉鎖設定を示すデータ、道路の歩行者を示すデータを識別し得る。サーバは、識別されるデータに基づいてモデルを更新し得る。例えば、サーバはモデルに記憶されている1つ又は複数の軌道を修正し得る。
図12は、クラウドソーシングを使用して疎なマップを生成する(並びに、クラウドソーシングによる疎なマップを使用して配信及びナビゲートする)システムの概略図である。図12は、1つ又は複数のレーンを含む道路区分1200を示す。複数の車両1205、1210、1215、1220、及び1225は、道路区分1200上を同時に又は異なる時間に走行し得る(ただし、図12では同時に道路区分1200に現れるように示す)。車両1205、1210、1215、1220、及び1225のうちの少なくとも1つは、自律車両であり得る。本実施例を簡単にするために、車両1205、1210、1215、1220、及び1225の全てが自律車両であると仮定する。
各車両は、他の実施形態で開示される車両(例えば、車両200)と同様であり得、他の実施形態で開示される車両に含まれる、又は関連付けられた構成要素又はデバイスを含み得る。各車両は、撮像デバイス又はカメラ(例えば、撮像デバイス122又はカメラ122)を装備し得る。各車両は、点線で示すように、無線通信経路1235を通じて、1つ又は複数のネットワーク(例えば、セルラネットワーク及び/又はインターネット等を介して)を介して遠隔サーバ1230と通信し得る。各車両は、サーバ1230にデータを送信し、サーバ1230からデータを受信し得る。例えば、サーバ1230は、道路区分1200を異なる時間に走行する複数の車両からデータを収集し得、収集したデータを処理して、自律車両道路ナビゲーションモデル又はモデルの更新を生成し得る。サーバ1230は、自律車両道路ナビゲーションモデル又はモデルの更新を、サーバ1230にデータを送信した車両に送信し得る。サーバ1230は、自律車両道路ナビゲーションモデル又はモデルの更新を、後に道路区分1200を走行する他の車両に送信し得る。
車両1205、1210、1215、1220、及び1225が道路区分1200を走行するとき、車両1205、1210、1215、1220、及び1225によって収集(例えば、検出、検知、又は測定)されるナビゲーション情報は、サーバ1230に送信され得る。幾つかの実施形態では、ナビゲーション情報は、共通の道路区分1200に関連付けられ得る。ナビゲーション情報は、各車両が道路区分1200上を走行するときに、車両1205、1210、1215、1220、及び1225のそれぞれに関連付けられた軌道を含み得る。幾つかの実施形態では、軌道は、車両1205に提供される様々なセンサ及びデバイスによって検知されるデータに基づいて再構築され得る。例えば、加速度計データ、速度データ、陸標データ、道路のジオメトリ又はプロファイルデータ、車両位置データ、及びエゴモーションデータのうちの少なくとも1つに基づいて軌道を再構築し得る。幾つかの実施形態では、軌道は、加速度計等の慣性センサからのデータ、及び速度センサによって検知される車両1205の速度に基づいて再構築され得る。更に、幾つかの実施形態では、軌道は、3次元並進及び/又は3次元回転(又は回転運動)を示し得る、検知されるカメラのエゴモーションに基づいて(例えば、車両1205、1210、1215、1220、及び1225のそれぞれに搭載されるプロセッサによって)決定され得る。カメラ(ひいては、車両本体)のエゴモーションは、カメラによって撮像される1つ又は複数の画像の分析から決定され得る。
幾つかの実施形態では、車両1205の軌道は、車両1205に搭載されるプロセッサによって決定され、サーバ1230に送信され得る。他の実施形態では、サーバ1230は、車両1205に搭載される様々なセンサ及びデバイスによって検知されるデータを受信し、車両1205から受信されるデータに基づいて軌道を決定し得る。
幾つかの実施形態では、車両1205、1210、1215、1220、及び1225からサーバ1230に送信されるナビゲーション情報は、路面、道路のジオメトリ、又は道路プロファイルに関するデータを含み得る。道路区分1200のジオメトリは、レーン構造及び/又は陸標を含み得る。レーン構造は、道路区分1200のレーンの総数、レーンのタイプ(例えば、単方向レーン、双方向レーン、走行レーン、追越レーン等)、レーン上のマーク、レーン幅、等を含み得る。幾つかの実施形態では、ナビゲーション情報は、レーン割り当て、例えば、車両が複数のレーンのうちどのレーンを走行しているかを含み得る。例えば、レーン割り当てには、車両が左又は右から第3のレーンを走行していることを示す数値「3」が関連付けられ得る。別の例として、レーン割り当てには、車両が中央レーンを走行していることを示すテキスト値「中央レーン」が関連付けられ得る。
サーバ1230は、ナビゲーション情報を、ハードドライブ、コンパクトディスク、テープ、メモリ等の非一時的コンピュータ可読媒体に記憶し得る。サーバ1230は、複数の車両1205、1210、1215、1220、及び1225から受信されるナビゲーション情報に基づいて、共通の道路区分1200の自律車両道路ナビゲーションモデルの少なくとも一部を(例えば、サーバ1230に含まれるプロセッサを介して)生成し得、モデルを疎なマップの一部として記憶し得る。サーバ1230は、道路区分のレーンを異なる時間に走行する複数の車両(例えば、1205、1210、1215、1220、及び1225)から受信されるクラウドソーシングによるデータ(例えば、ナビゲーション情報)に基づいて、各レーンに関連付けられる軌道を決定し得る。サーバ1230は、クラウドソーシングナビゲーションデータに基づいて決定された複数の軌道に基づいて、自律車両道路ナビゲーションモデル又はモデルの一部(例えば、更新される部分)を生成し得る。サーバ1230は、モデル又はモデルの更新される部分を、道路区分1200を走行する自律車両1205、1210、1215、1220、及び1225又は車両のナビゲーションシステムに提供されている既存の自律車両道路ナビゲーションモデルを更新するために後で道路区分を走行する任意の他の自律車両のうちの1つ又は複数に送信し得る。自律車両道路ナビゲーションモデルは、自律車両が共通の道路区分1200に沿って自律的にナビゲートする際に使用され得る。
上述したように、自律車両道路ナビゲーションモデルは、疎なマップ(例えば、図8に示す疎なマップ800)に含まれ得る。疎なマップ800は、道路のジオメトリ及び/又は道路に沿った陸標に関連するデータの疎な記録を含み得、自律車両の自律ナビゲーションを誘導するのに十分な情報を提供し得るが、更に過度のデータストレージを必要とはしない。幾つかの実施形態では、自律車両道路ナビゲーションモデルは、疎なマップ800とは別個に記憶され得、モデルがナビゲーションのために実行されるとき、疎なマップ800からのマップデータを使用し得る。幾つかの実施形態では、自律車両道路ナビゲーションモデルは、自律車両1205、1210、1215、1220、及び1225又は後に道路区分1200に沿って走行する他の車両の自律ナビゲーションを誘導するために道路区分1200に沿った目標軌道を決定するために、疎なマップ800に含まれるマップデータを使用し得る。例えば、自律車両道路ナビゲーションモデルが、車両1205のナビゲーションシステムに含まれるプロセッサによって実行されるとき、モデルは、プロセッサに、車両1205から受信されるナビゲーション情報に基づいて決定された軌道を、疎なマップ800に含まれる所定の軌道と比較させて、車両1205の現在の走行コースを検証及び/又は修正し得る。
自律車両道路ナビゲーションモデルでは、道路の特徴又は目標軌道のジオメトリは、3次元空間内の曲線によって符号化され得る。1つの実施形態では、曲線は、1つ又は複数の接続3次元多項式を含む3次元スプラインであり得る。当業者が理解するように、スプラインは、データをフィッティングするための一連の多項式によって区分的に定義される数値関数であり得る。道路の3次元ジオメトリデータをフィッティングするためのスプラインは、線形スプライン(1次)、2次スプライン(2次)、3次スプライン(3次)、又は任意のその他のスプライン(他の次数)、又はそれらの組み合わせを含み得る。スプラインは、道路の3次元ジオメトリデータのデータポイントを接続(例えば、フィッティング)する異なる次数のうちの1つ又は複数の3次元多項式を含み得る。幾つかの実施形態では、自律車両道路ナビゲーションモデルは、共通の道路区分(例えば、道路区分1200)又は道路区分1200のレーンに沿った目標軌道に対応する3次元スプラインを含み得る。
上述したように、疎なマップに含まれる自律車両道路ナビゲーションモデルは、道路区分1200に沿った少なくとも1つの陸標の識別等、他の情報を含み得る。陸標は、車両1205、1210、1215、1220、及び1225のそれぞれに設置されるカメラ(例えば、カメラ122)の視野内に見え得る。幾つかの実施形態では、カメラ122は、陸標の画像を撮像し得る。車両1205に設けられたプロセッサ(例えば、プロセッサ180、190、又は処理ユニット110)は、陸標の画像を処理して、陸標の識別情報を抽出し得る。陸標の実際の画像ではなく、陸標識別情報が疎なマップ800に記憶され得る。陸標識別情報は、実際の画像よりもはるかに少ない記憶領域しか必要になり得ない。他のセンサ又はシステム(例えば、GPSシステム)も、陸標の特定の識別情報(例えば、陸標の位置)を提供し得る。陸標は、交通標識、矢印マーク、レーンマーク、破線レーンマーク、信号機、一時停止線、方向標識(例えば、方向を示す矢印が付いた高速道路の出口標識、異なる方向又は場所を指している矢印が付いた高速道路の標識)、陸標ビーコン、又は街灯柱のうちの少なくとも1つを含み得る。陸標ビーコンは、車両に設置される受信機に信号を送信又は反射する道路区分に沿って設置されるデバイス(例えば、RFIDデバイス)を指し、それにより、車両がそのデバイスのそばを通過したときに、車両によって受信されるビーコン及びデバイスの位置(例えば、デバイスのGPS位置から決定された)は、自律車両道路ナビゲーションモデル及び/又は疎なマップ800に含まれる陸標として使用され得る。
少なくとも1つの陸標の識別は、少なくとも1つの陸標の位置を含み得る。陸標の位置は、複数の車両1205、1210、1215、1220、及び1225に関連付けられたセンサシステム(例えば、全地球測位システム、慣性ベースの測位システム、陸標ビーコン等)を使用して実行される位置測定に基づいて決定され得る。幾つかの実施形態では、陸標の位置は、複数の走行を通じて異なる車両1205、1210、1215、1220、及び1225上のセンサシステムによって検出、収集、又は受信される位置測定値を平均化することによって決定され得る。例えば、車両1205、1210、1215、1220、及び1225は、位置測定データをサーバ1230に送信し得、サーバ1230は、位置測定を平均化し、平均位置測定を陸標の位置として使用し得る。陸標の位置は、後の走行で車両から受信される測定値によって継続的に洗練させ得る。
陸標の識別は、陸標のサイズを含み得る。車両(例えば、1205)に提供されるプロセッサは、画像の分析に基づいて陸標の物理的サイズを推定し得る。サーバ1230は、異なる走行を介して異なる車両から同じ陸標の物理的サイズの複数の推定値を受信し得る。サーバ1230は、異なる推定値を平均化して陸標の物理的サイズに至り、その陸標のサイズを道路モデルに記憶し得る。物理的サイズの推定値を使用して、車両から陸標までの距離を更に決定又は推定し得る。陸標までの距離は、車両の現在の速度及びカメラの拡大焦点に対する画像内に現れる陸標の位置に基づく拡大のスケールに基づいて推定され得る。例えば、陸標までの距離は、Z=V*dt*R/Dで推定し得、ここで、Vは車両の速度、Rは時刻t1の陸標から拡大焦点までの画像内の距離、Dはt1からt2までの画像内の陸標の距離の変化であり、dtは(t2-t1)を表す。例えば、陸標までの距離は、Z=V*dt*R/Dで推定し得、ここで、Vは車両の速度、Rは陸標と拡大焦点との間の画像内の距離、dtは時間間隔であり、Dはエピポーラ線に沿った陸標の画像変位である。Z=V*ω/Δω等、上記の式及び同等の他の式を使用して、陸標までの距離を推定し得る。ここで、Vは車両の速度、ωは画像の長さ(物体幅等)、Δωはその画像の長さの単位時間当たりの変化である。
陸標の物理的サイズがわかっている場合、陸標までの距離も次の式に基づいて決定し得る。Z=f*W/ω、ここで、fは焦点距離、Wは陸標のサイズ(例えば、高さ又は幅)、ωは陸標がその画像を通り過ぎるときのピクセル数である。上記の式から、距離Zの変化は、ΔZ=f*W*Δω/ω2+f*ΔW/ωを使用して計算し得、ここで、ΔWは平均化によってゼロに減衰し、Δωは画像内のバウンディングボックスの精度を表すピクセル数である。陸標の物理的サイズを推定する値は、サーバ側で複数の観測値を平均化することで計算し得る。距離推定の結果として生じる誤差は、非常に小さくなり得る。上記の式を使用するときに発生し得る2つの誤差源、すなわち、ΔW及びΔωがある。距離誤差への寄与は、ΔZ=f*W*Δω/ω2f*ΔW/ωによって与えられる。ただし、ΔWは平均化によってゼロに減衰する。従って、ΔZはΔω(例えば、画像のバウンディングボックスの不正確さ)によって決定される。
未知の寸法の陸標の場合、陸標までの距離は、連続するフレーム間で陸標上の特徴点を追跡することによって推定され得る。例えば、制限速度標識に表示する特定の特徴は、2つ以上の画像フレーム間で追跡し得る。これらの追跡される特徴に基づいて、特徴点ごとの距離分布が生成され得る。距離推定値は、距離分布から抽出し得る。例えば、距離分布に現れる最も頻度の高い距離を距離推定値として使用し得る。別の例として、距離分布の平均を距離推定値として使用し得る。
図13は、複数の3次元スプライン1301、1302、及び1303によって表される例示的な自律車両道路ナビゲーションモデルを示す。図13に示す曲線1301、1302、及び1303は、例示の目的のためだけのものである。各スプラインは、複数のデータポイント1310を接続する1つ又は複数の3次元多項式を含み得る。各多項式は、1次多項式、2次多項式、3次多項式、又は異なる次数を有する任意の適切な多項式の組み合わせであり得る。各データポイント1310は、車両1205、1210、1215、1220、及び1225から受信されるナビゲーション情報に関連付けられ得る。幾つかの実施形態では、各データポイント1310は、陸標(例えば、サイズ、位置、及び陸標の識別情報)及び/又は道路シグネチャプロファイル(例えば、道路のジオメトリ、道路粗さプロファイル、道路曲率プロファイル、道路幅プロファイル)に関連するデータに関連付けられ得る。幾つかの実施形態では、幾つかのデータポイント1310は、陸標に関連するデータに関連付けられ得、他のデータポイントは、道路シグネチャプロファイルに関連するデータに関連付けられ得る。
図14は、5つの別個の走行から受信される生の位置データ1410(例えば、GPSデータ)を示す。別個の車両が同時に横断した場合、同じ車両が別個の時間に横断した場合、又は別個の車両が別個の時間に横断した場合、ある走行は別の走行とは別個であり得る。位置データ1410の誤差、及び同じレーン内の車両の異なる位置(例えば、ある車両が別の車両よりもレーンの左寄りを走行し得る)を考慮するために、遠隔サーバ1230は、1つ又は複数の統計的技法を使用してマップスケルトン1420を生成し、生の位置データ1410の変化が実際の逸脱又は統計的誤差を表しているか否かを判断し得る。スケルトン1420内の各経路は、その経路を形成した生データ1410にリンクし直し得る。例えば、スケルトン1420内のAとBとの間の経路は、走行2、3、4、及び5からの生データ1410にリンクされているが、走行1からはリンクされていない。スケルトン1420は、(例えば、上述したスプラインとは異なり、同じ道路上の複数のレーンからの走行を組み合わせるため)車両のナビゲートに使用するには十分詳細ではないことがあり得るが、有用なトポロジ情報を提供し得、交差点を定義するために使用し得る。
図15は、マップスケルトンの区分(例えば、スケルトン1420内の区分AからB)内の疎なマップに対して追加の詳細を生成し得る例を示す。図15に示すように、データ(例えば、エゴモーションデータ、道路マークデータ、及び同様のもの)は、走行に沿った位置S(又はS1もしくはS2)の関数として示し得る。サーバ1230は、走行1510の陸標1501、1503、及び1505と、走行1520の陸標1507及び1509との間の一意の一致を識別することによって、疎なマップの陸標を識別し得る。そのような一致アルゴリズムは、陸標1511、1513、及び1515の識別につながり得る。しかし、他の一致アルゴリズムを使用し得ることを当業者は認識されよう。例えば、確率の最適化は、一意の一致の代わりに、又は一意の一致と組み合わせて使用され得る。サーバ1230は、走行を縦方向に位置合わせして、一致した陸標を位置合わせし得る。例えば、サーバ1230は、一方の走行(例えば、走行1520)を基準走行として選択し、次いで、位置合わせのために他方の走行(例えば、走行1510)をシフト及び/又は弾性的に伸張し得る。
図16は、疎なマップで使用するための位置合わせされる陸標データの例を示す。図16の例では、陸標1610は道路標識を含む。図16の例は、複数の走行1601、1603、1605、1607、1609、1611、及び1613からのデータを更に示す。図16の例では、走行1613からのデータは「ゴースト」陸標で構成され、走行1601、1603、1605、1607、1609、及び1611のいずれも走行1613内の識別される陸標の近傍にある陸標の識別を含まないため、従って、サーバ1230は陸標を「ゴースト」と識別し得る。従って、サーバ1230は、陸標が現れない画像に対する陸標が現れる画像の比率が閾値を超える場合、潜在的な陸標を受け入れ得、及び/又は、陸標が現れる画像に対する陸標が現れない画像の比率が閾値を超える場合、潜在的な陸標を拒否し得る。
図17は、疎なマップをクラウドソーシングするために使用し得る、走行データを生成するためのシステム1700を示す。図17に示すように、システム1700は、カメラ1701及び位置特定デバイス1703(例えば、GPSロケータ)を含み得る。カメラ1701及び位置特定デバイス1703は、車両(例えば、車両1205、1210、1215、1220、及び1225のうちの1つ)に搭載され得る。カメラ1701は、複数のタイプの複数のデータ、例えば、エゴモーションデータ、交通標識データ、道路データ、又は同様のものを生成し得る。カメラデータ及び位置データは、走行区分1705に区分され得る。例えば、走行区分1705はそれぞれ、1km未満の走行のカメラデータ及び位置データを有し得る。
幾つかの実施形態では、システム1700は、走行区分1705の冗長性を除去し得る。例えば、カメラ1701からの複数の画像に陸標が現れる場合、走行区分1705が陸標の位置及び陸標に関連する任意のメタデータの1つのコピーのみを含むように、システム1700は冗長データを取り除き得る。更なる例として、カメラ1701からの複数の画像にレーンマークが現れる場合、走行区分1705がレーンマークの位置及びレーンマークに関連する任意のメタデータの1つのコピーのみを含むように、システム1700は冗長データを取り除き得る。
システム1700はまた、サーバ(例えば、サーバ1230)を含む。サーバ1230は、車両から走行区分1705を受信し、走行区分1705を単一走行1707に再結合し得る。このような配置により、車両とサーバとの間でデータを転送するときの帯域幅要件を軽減でき得、サーバが走行全体に関連するデータも記憶でき得る。
図18は、疎なマップをクラウドソーシングするために更に構成される図17のシステム1700を示す。図17のように、システム1700は、例えば、カメラ(例えば、エゴモーションデータ、交通標識データ、道路データ、又は同様のものを生成する)及び位置特定デバイス(例えば、GPSロケータ)を使用して走行データを撮像する車両1810を含む。図17のように、車両1810は、収集したデータを走行区分(図18では「DS1 1」、「DS2 1」、「DSN 1」として示す)に区分する。次いで、サーバ1230は、走行区分を受信し、受信される区分から走行(図18に「走行1」として示す)を再構築する。
図18に更に示すように、システム1700はまた、追加の車両からデータを受信する。例えば、車両1820はまた、例えば、カメラ(例えば、エゴモーションデータ、交通標識データ、道路データ、又は同様のものを生成する)及び位置特定デバイス(例えば、GPSロケータ)を使用して走行データを撮像する。車両1810と同様に、車両1820は、収集されるデータを走行区分(図18では「DS1 2」、「DS2 2」、「DSN 2」として示す)に区分する。次いで、サーバ1230は、走行区分を受信し、受信される区分から走行(図18に「走行2」として示す)を再構築する。追加の車両は何台でも使用し得る。例えば、図18は、走行データを撮像し、走行区分(図18では「DS1 N」、「DS2 N」、「DSN N」として示す)に区分し、走行(図18では「走行N」として示す)に再構築するためにそれをサーバ1230に送信する「車N」も含む。
図18に示すように、サーバ1230は、複数の車両(例えば、「車1」(車両1810とも表記)、「車2」(車両1820とも表記)、及び「車N」)から収集される再構築される走行(例えば、「走行1」、「走行2」、及び「走行N」)を使用して、疎なマップ(「マップ」として示す)を構築し得る。
図19は、道路区分に沿った自律車両ナビゲーションのための疎なマップを生成するための例示的なプロセス1900を示すフローチャートである。プロセス1900は、サーバ1230に含まれる1つ又は複数の処理デバイスによって実行され得る。
プロセス1900は、1つ又は複数の車両が道路区分を横断するときに取得される複数の画像を受信することを含み得る(ステップ1905)。サーバ1230は、車両1205、1210、1215、1220、及び1225のうちの1つ又は複数に含まれるカメラから画像を受信し得る。例えば、カメラ122は、車両1205が道路区分1200に沿って走行するときに、車両1205を取り巻く環境のうちの1つ又は複数の画像を撮像し得る。幾つかの実施形態では、サーバ1230はまた、図17に関して上記で論じたように、車両1205上のプロセッサによって冗長性が除去される、取り除き済みの画像データを受信し得る。
プロセス1900は、複数の画像に基づいて、道路区分に沿って広がる路面特徴の少なくとも1つの線表現を識別することを更に含み得る(ステップ1910)。各線表現は、路面特徴に実質的に対応する道路区分に沿った経路を表し得る。例えば、サーバ1230は、カメラ122から受信される環境画像を分析して、道路端部又はレーンマークを識別し、道路端部又はレーンマークに関連付けられた道路区分1200に沿った走行の軌道を決定し得る。幾つかの実施形態では、軌道(又は線表現)は、スプライン、多項式表現、又は曲線を含み得る。サーバ1230は、ステップ1905において受信されるカメラのエゴモーション(例えば、3次元並進運動及び/又は3次元回転運動)に基づいて、車両1205の走行の軌道を決定し得る。
プロセス1900は、複数の画像に基づいて、道路区分に関連付けられた複数の陸標を識別することも含み得る(ステップ1910)。例えば、サーバ1230は、カメラ122から受信される環境画像を分析して、道路区分1200に沿った道路標識等のうちの1つ又は複数の陸標を識別し得る。サーバ1230は、1つ又は複数の車両が道路区分を横断するときに取得される複数の画像の分析を使用して陸標を識別し得る。クラウドソーシングを可能にするために、分析は、道路区分に関連付けられている可能性のある陸標の受け入れ及び拒否に関するルールを含み得る。例えば、分析は、陸標が現れない画像に対する陸標が現れる画像の比率が閾値を超える場合、潜在的な陸標を受け入れること、及び/又は、陸標が現れる画像に対する陸標が現れない画像の比率が閾値を超える場合、潜在的な陸標を拒否することを含み得る。
プロセス1900は、サーバ1230によって実行される他の動作又はステップを含み得る。例えば、ナビゲーション情報は、道路区分に沿って車両が走行するための目標軌道を含み得、プロセス1900は、以下で更に詳細に論じるように、サーバ1230によって、道路区分上を走行する複数の車両に関連する車両軌道をクラスタ化すること、及びクラスタ化された車両軌道に基づいて目標軌道を決定することを含み得る。車両軌道をクラスタ化することは、サーバ1230によって、車両の絶対的な進行方向又は車両のレーン割り当ての少なくとも1つに基づいて、道路区分上を走行する車両に関連する複数の軌道を複数のクラスタにクラスタ化することを含み得る。目標軌道を生成することは、サーバ1230によって、クラスタ化された軌道を平均化することを含み得る。更なる例として、プロセス1900は、ステップ1905で受信されるデータを位置合わせすることを含み得る。上記で説明したように、サーバ1230によって実行される他のプロセス又はステップも、プロセス1900に含まれ得る。
開示されるシステム及び方法は、他の特徴を含み得る。例えば、開示されるシステムは、グローバル座標ではなくローカル座標を使用し得る。自律走行の場合、一部のシステムはワールド座標でデータを表示し得る。例えば、地表面の経度緯度座標を使用し得る。操舵にマップを使用するために、ホスト車両は、マップに対する位置及び向きを決定し得る。マップ上に車両を位置決めするため、及び本体の参照フレームと世界の参照フレーム(例えば、北、東及び下)との間の回転変換を見つけるために、搭載されたGPSデバイスを使用するのは自然に思われる。本体の参照フレームがマップの参照フレームと位置合わせされると、本体の参照フレームで所望のルートを表し得、操舵コマンドを計算又は生成し得る。
開示されるシステム及び方法は、高価な測量機器の助けを借りずに自律車両自体によって収集され得る、低フットプリントのモデルで自律車両ナビゲーション(例えば、操舵制御)を可能にし得る。自律ナビゲーション(例えば、操舵アプリケーション)をサポートするために、道路モデルは、モデルに含まれる軌道に沿った車両の場所又は位置を決定するために使用し得る道路のジオメトリ、そのレーン構造、及び陸標を有する疎なマップを含み得る。上記で論じたように、疎なマップの生成は、道路を走行している車両と通信し、車両からデータを受信する遠隔サーバによって実行され得る。データは、検知されるデータ、検知されるデータに基づいて再構築される軌道、及び/又は修正される再構築される軌道を表し得る推奨される軌道を含み得る。以下で論じるように、サーバは、自律ナビゲーションを支援するために、後に道路を走行する車両又は他の車両にモデルを送信し得る。
図20は、サーバ1230のブロック図を示す。サーバ1230は、ハードウェア構成要素(例えば、通信制御回路、スイッチ、及びアンテナ)とソフトウェア構成要素(例えば、通信プロトコル、コンピュータコード)の両方を含み得る通信ユニット2005を含み得る。例えば、通信ユニット2005は、少なくとも1つのネットワークインタフェースを含み得る。サーバ1230は、通信ユニット2005を通じて車両1205、1210、1215、1220、及び1225と通信し得る。例えば、サーバ1230は、通信ユニット2005を通じて、車両1205、1210、1215、1220、及び1225から送信されるナビゲーション情報を受信し得る。サーバ1230は、通信ユニット2005を通じて、自律車両道路ナビゲーションモデルを1つ又は複数の自律車両に配信し得る。
サーバ1230は、ハードドライブ、コンパクトディスク、テープ等、少なくとも1つの非一時的記憶媒体2010を含み得る。ストレージデバイス1410は、車両1205、1210、1215、1220、及び1225から受信されるナビゲーション情報、及び/又はサーバ1230がナビゲーション情報に基づいて生成する自律車両道路ナビゲーションモデル等のデータを記憶するように構成され得る。ストレージデバイス2010は、疎なマップ(例えば、図8に関して上記で論じた疎なマップ800)等の任意の他の情報を記憶するように構成され得る。
ストレージデバイス2010に加えて、又はその代わりに、サーバ1230はメモリ2015を含み得る。メモリ2015は、メモリ140又は150と同様であり得るか又は異なり得る。メモリ2015は、フラッシュメモリ、ランダムアクセスメモリ等の非一時的メモリであり得る。メモリ2015は、プロセッサ(例えば、プロセッサ2020)によって実行可能なコンピュータコード又は命令、マップデータ(例えば、疎なマップ800のデータ)、自律車両道路ナビゲーションモデル、及び/又は車両1205、1210、1215、1220、及び1225から受信されるナビゲーション情報等のデータを記憶するように構成され得る。
サーバ1230は、様々な機能を実行するために、メモリ2015に記憶されるコンピュータコード又は命令を実行するように構成される少なくとも1つの処理デバイス2020を含み得る。例えば、処理デバイス2020は、車両1205、1210、1215、1220、及び1225から受信されるナビゲーション情報を分析し、その分析に基づいて自律車両道路ナビゲーションモデルを生成し得る。処理デバイス2020は、通信ユニット1405を制御して、自律車両道路ナビゲーションモデルを1つ又は複数の自律車両(例えば、車両1205、1210、1215、1220、及び1225のうちの1つ又は複数、又は後に道路区分1200を走行する任意の車両)に配信し得る。処理デバイス2020は、プロセッサ180、190、又は処理ユニット110と同様であり得るか、又は異なり得る。
図21は、自律車両ナビゲーションで使用するための道路ナビゲーションモデルを生成するためのうちの1つ又は複数の動作を実行するためのコンピュータコード又は命令を記憶し得る、メモリ2015のブロック図を示す。図21に示すように、メモリ2015は、車両ナビゲーション情報を処理するための動作を実行するためのうちの1つ又は複数のモジュールを記憶し得る。例えば、メモリ2015は、モデル生成モジュール2105及びモデル配信モジュール2110を含み得る。プロセッサ2020は、メモリ2015に含まれるモジュール2105及び2110のいずれかに記憶される命令を実行し得る。
モデル生成モジュール2105は、プロセッサ2020によって実行されると、車両1205、1210、1215、1220、及び1225から受信されるナビゲーション情報に基づいて、共通の道路区分(例えば、道路区分1200)の自律車両道路ナビゲーションモデルの少なくとも一部を生成し得る命令を記憶し得る。例えば、自律車両道路ナビゲーションモデルの生成では、プロセッサ2020は、共通の道路区分1200に沿った車両軌道を異なるクラスタにクラスタ化し得る。プロセッサ2020は、異なるクラスタのそれぞれについてクラスタ化された車両軌道に基づいて、共通の道路区分1200に沿った目標軌道を決定し得る。そのような動作は、各クラスタにおけるクラスタ化された車両軌道の平均又は平均軌道を(例えば、クラスタ化された車両軌道を表すデータを平均化することによって)見つけることを含み得る。幾つかの実施形態では、目標軌道は、共通の道路区分1200の単一レーンに関連付けられ得る。
道路モデル及び/又は疎なマップは、道路区分に関連付けられた軌道を記憶し得る。これらの軌道は、目標軌道と呼ばれ得、自律ナビゲーションのために自律車両に提供される。目標軌道は、複数の車両から受信し得るか、又は複数の車両から受信される実際の軌道又は推奨される軌道(幾つかの修正を加えた実際の軌道)に基づいて生成し得る。道路モデル又は疎なマップに含まれる目標軌道は、他の車両から受信される新しい軌道で継続的に更新(例えば、平均化)され得る。
道路区分を走行する車両は、様々なセンサによってデータを収集し得る。データは、陸標、道路シグネチャプロファイル、車両の動き(例えば、加速度計データ、速度データ)、車両位置(例えば、GPSデータ)を含み得、実際の軌道自体を再構築し得るか、又はデータをサーバに送信して、サーバが車両の実際の軌道を再構築し得る。幾つかの実施形態では、車両は、軌道(例えば、任意の参照フレームでの曲線)、陸標データ、及び走行経路に沿ったレーン割り当てに関連するデータをサーバ1230に送信し得る。複数の走行で同じ道路区分に沿って走行する様々な車両は、異なる軌道を有し得る。サーバ1230は、クラスタ化プロセスを通じて車両から受信される軌道から、各レーンに関連付けられたルート又は軌道を識別し得る。
図22は、共通の道路区分(例えば、道路区分1200)の目標軌道を決定するために、車両1205、1210、1215、1220、及び1225に関連付けられた車両軌道をクラスタ化するプロセスを示す。クラスタ化プロセスから決定された目標軌道又は複数の目標軌道は、自律車両道路ナビゲーションモデル又は疎なマップ800に含まれ得る。幾つかの実施形態では、道路区分1200に沿って走行する車両1205、1210、1215、1220、及び1225は、複数の軌道2200をサーバ1230に送信し得る。幾つかの実施形態では、サーバ1230は、車両1205、1210、1215、1220、及び1225から受信される陸標、道路のジオメトリ、及び車両運動情報に基づいて軌道を生成し得る。自律車両道路ナビゲーションモデルを生成するために、サーバ1230は、図22に示すように、車両軌道1600を複数のクラスタ2205、2210、2215、2220、2225、及び2230にクラスタ化し得る。
クラスタ化は、様々な基準を使用して実行され得る。幾つかの実施形態では、クラスタ内の全ての走行は、道路区分1200に沿った絶対的な進行方向に関して類似し得る。絶対的な進行方向は、車両1205、1210、1215、1220、及び1225によって受信されるGPS信号から取得し得る。幾つかの実施形態では、推測航法を使用して絶対的な進行方向を取得し得る。当業者が理解するように、推測航法を使用して、以前に決定された位置、推定速度等を使用して、現在位置、従って車両1205、1210、1215、1220、及び1225の進行方向を決定し得る。絶対的な進行方向によってクラスタ化された軌道は、道路に沿ったルートを識別するのに有用であり得る。
幾つかの実施形態では、クラスタ内の全ての走行は、道路区分1200の走行に沿ったレーン割り当て(例えば、交差点の前後の同じレーン)に関して類似し得る。レーン割り当てによってクラスタ化された軌道は、道路に沿ったレーンを識別するのに有用であり得る。幾つかの実施形態では、両方の基準(例えば、絶対的な進行方向及びレーン割り当て)をクラスタ化に使用し得る。
各クラスタ2205、2210、2215、2220、2225、及び2230では、軌道を平均化して、特定のクラスタに関連付けられた目標軌道を取得し得る。例えば、同じレーンクラスタに関連付けられた複数の走行からの軌道を平均化し得る。平均軌道は、特定のレーンに関連付けられた目標軌道であり得る。軌道のクラスタを平均化するために、サーバ1230は、任意の軌道C0の参照フレームを選択し得る。他の全ての軌道(C1、…、Cn)について、サーバ1230はCiをC0にマッピングする剛体変換を見つけ得、ここで、i=1、2、…、nであり、nは正の整数であり、クラスタに含まれる軌道の総数に対応する。サーバ1230は、C0参照フレームでの平均曲線又は軌道を計算し得る。
幾つかの実施形態では、陸標は、異なる走行間で一致する弧長を定義し得、弧長は、軌道をレーンと位置合わせするために使用し得る。幾つかの実施形態では、交差点の前後のレーンマークを使用して、軌道をレーンと位置合わせし得る。
軌道からレーンを組み立てるために、サーバ1230は、任意のレーンの参照フレームを選択し得る。サーバ1230は、部分的に重なり合うレーンを選択される参照フレームにマッピングし得る。サーバ1230は、全てのレーンが同じ参照フレームに入るまでマッピングを継続し得る。互いに隣り合っているレーンは、あたかも同じレーンであったかのように位置合わせし得、後に横方向にシフトされ得る。
道路区分に沿って認識される陸標は、最初にレーンレベルで、次いで、交差点レベルで共通の参照フレームにマッピングされ得る。例えば、同じ陸標が、複数の走行の複数の車両によって複数回認識され得る。異なる走行で受信される同じ陸標に関するデータは、わずかに異なり得る。そのようなデータは平均化され、C0参照フレーム等の同じ参照フレームにマッピングされ得る。追加又は代替として、複数の走行で受信される同じ陸標のデータの分散を計算し得る。
幾つかの実施形態では、道路区分120の各レーンは、目標軌道及び特定の陸標に関連付けられ得る。目標軌道又はそのような複数の目標軌道は、自律車両道路ナビゲーションモデルに含まれ得、自律車両道路ナビゲーションモデルは、後に同じ道路区分1200に沿って走行する他の自律車両によって使用され得る。車両1205、1210、1215、1220、及び1225が道路区分1200に沿って走行している間に、それらの車両によって識別される陸標は、目標軌道に関連付けて記録され得る。目標軌道及び陸標のデータは、後の走行で他の車両から受信される新しいデータで継続的又は定期的に更新し得る。
自律車両の位置特定のために、開示されるシステム及び方法は、拡張カルマンフィルタを使用し得る。車両の位置は、3次元位置データ及び/又は3次元方向データ、エゴモーションの積分による車両の現在位置よりも先の将来位置の予測に基づいて決定され得る。車両の位置は、陸標の画像観測により修正又は調整され得る。例えば、車両がカメラによって撮像された画像内の陸標を検出した場合、陸標は、道路モデル又は疎なマップ800内に記憶される既知の陸標と比較され得る。既知の陸標は、道路モデル及び/又は疎なマップ800に記憶される目標軌道に沿った既知の位置(例えば、GPSデータ)を有し得る。現在の速度及び陸標の画像に基づいて、車両から陸標までの距離を推定し得る。目標軌道に沿った車両の位置は、陸標までの距離及び陸標の既知の位置(道路モデル又は疎なマップ800に記憶される)に基づいて調整され得る。道路モデル及び/又は疎なマップ800に記憶される陸標の位置/場所データ(例えば、複数の走行からの平均値を意味する)は、正確であると推定され得る。
幾つかの実施形態では、開示されるシステムは、車両の6自由度(例えば、3次元位置データと3次元方向データ)の位置の推定が、自律車両をナビゲート(例えば、車輪を操舵)して所望の点(例えば、記憶される点の1.3秒先)に到達するために使用され得る、閉ループサブシステムを形成し得る。次に、操舵及び実際のナビゲーションから測定されるデータを使用して、6自由度の位置を推定し得る。
幾つかの実施形態では、街灯柱及び電力線柱又はケーブル線柱等、道路に沿った柱を、車両の位置特定のための陸標として使用し得る。交通標識、信号機、道路上の矢印、一時停止線、及び道路区分に沿った物体の静的な特徴又はシグネチャ等の他の陸標も、車両の位置を特定するための陸標として使用し得る。柱が位置特定に使用される場合、柱の底部が遮られて得、道路平面上にないことがあるため、y観測(すなわち、柱までの距離)ではなく、柱のx観測(すなわち、車両からの視角)が使用され得る。
図23は、クラウドソーシングによる疎なマップを使用した自律ナビゲーションに使用し得る、車両のためのナビゲーションシステムを示す。説明のために、車両は車両1205として参照される。図23に示す車両は、例えば、車両1210、1215、1220、及び1225、並びに他の実施形態に示す車両200を含む、本明細書に開示される任意の他の車両であり得る。図12に示すように、車両1205はサーバ1230と通信し得る。車両1205は、撮像デバイス122(例えば、カメラ122)を含み得る。車両1205は、車両1205が道路(例えば、道路区分1200)を走行するためのナビゲーションガイダンスを提供するように構成されるナビゲーションシステム2300を含み得る。車両1205は、速度センサ2320及び加速度計2325等の他のセンサも含み得る。速度センサ2320は、車両1205の速度を検出するように構成され得る。加速度計2325は、車両1205の加速又は減速を検出するように構成され得る。図23に示す車両1205は自律車両であり得、ナビゲーションシステム2300は、自律走行のためのナビゲーションガイダンスを提供するために使用され得る。或いは、車両1205はまた、非自律型の人間が制御する車両であり得、ナビゲーションシステム2300は、ナビゲーションガイダンスを提供するために依然として使用され得る。
ナビゲーションシステム2300は、通信経路1235を通じてサーバ1230と通信するように構成される通信ユニット2305を含み得る。ナビゲーションシステム2300は、GPS信号を受信して処理するように構成されるGPSユニット2310も含み得る。ナビゲーションシステム2300は、GPS信号、疎なマップ800からのマップデータ(車両1205に搭載されるストレージデバイスに記憶され得る、及び/又はサーバ1230から受信され得る)、道路プロファイルセンサ2330によって検知される道路のジオメトリ、カメラ122によって撮像された画像、及び/又はサーバ1230から受信される自律車両道路ナビゲーションモデル等のデータを処理するように構成される少なくとも1つのプロセッサ2315を更に含み得る。道路プロファイルセンサ2330は、路面粗さ、道路幅、道路高、道路曲率等、異なるタイプの道路プロファイルを測定するための異なるタイプのデバイスを含み得る。例えば、道路プロファイルセンサ2330は、車両2305のサスペンションの動きを測定して道路粗さプロファイルを導出するデバイスを含み得る。幾つかの実施形態では、道路プロファイルセンサ2330はレーダセンサを含み、車両1205から道路側(例えば、道路側の障壁)までの距離を測定し、それによって道路の幅を測定し得る。幾つかの実施形態では、道路プロファイルセンサ2330は、道路の上下の標高を測定するように構成されるデバイスを含み得る。幾つかの実施形態では、道路プロファイルセンサ2330は、道路曲率を測定するように構成されるデバイスを含み得る。例えば、カメラ(例えば、カメラ122又は別のカメラ)を使用して、道路曲率を示す道路の画像を撮像し得る。車両1205は、そのような画像を使用して道路曲率を検出し得る。
少なくとも1つのプロセッサ2315は、カメラ122から、車両1205に関連付けられた少なくとも1つの環境画像を受信するようにプログラムされ得る。少なくとも1つのプロセッサ2315は、車両1205に関連付けられたナビゲーション情報を決定するために、少なくとも1つの環境画像を分析し得る。ナビゲーション情報は、道路区分1200に沿った車両1205の走行に関連する軌道を含み得る。少なくとも1つのプロセッサ2315は、3次元並進運動及び3次元回転運動等のカメラ122(従って車両)の動きに基づいて軌道を決定し得る。幾つかの実施形態では、少なくとも1つのプロセッサ2315は、カメラ122によって取得される複数の画像の分析に基づいて、カメラ122の並進運動及び回転運動を決定し得る。幾つかの実施形態では、ナビゲーション情報は、レーン割り当て情報(例えば、車両1205が道路区分1200に沿ってそのレーンで走行しているか)を含み得る。車両1205からサーバ1230に送信されるナビゲーション情報は、サーバ1230によって使用され、自律車両道路ナビゲーションモデルを生成及び/又は更新し得、自律車両道路ナビゲーションモデルは、車両1205に自律ナビゲーションガイダンスを提供するために、サーバ1230から車両1205に送信され得る。
少なくとも1つのプロセッサ2315は、ナビゲーション情報を車両1205からサーバ1230に送信するようにプログラムすることもできる。幾つかの実施形態では、ナビゲーション情報は、道路情報と共にサーバ1230に送信され得る。道路位置情報は、GPSユニット2310によって受信されるGPS信号、陸標情報、道路のジオメトリ、レーン情報等のうちの少なくとも1つを含み得る。少なくとも1つのプロセッサ2315は、サーバ1230から、自律車両道路ナビゲーションモデル又はモデルの一部を受信し得る。サーバ1230から受信される自律車両道路ナビゲーションモデルは、車両1205からサーバ1230に送信されるナビゲーション情報に基づく少なくとも1つの更新を含み得る。サーバ1230から車両1205に送信されるモデルの部分は、モデルの更新される部分を含み得る。少なくとも1つのプロセッサ2315は、受信される自律車両道路ナビゲーションモデル又はモデルの更新される部分に基づいて、車両1205による少なくとも1つのナビゲーション操作(例えば、ターンを行う、ブレーキをかける、加速する、別の車両を追い越す等の操舵)を引き起こし得る。
少なくとも1つのプロセッサ2315は、通信ユニット1705、GPSユニット2315、カメラ122、速度センサ2320、加速度計2325、及び道路プロファイルセンサ2330を含む、車両1205に含まれる様々なセンサ及び構成要素と通信するように構成され得る。少なくとも1つのプロセッサ2315は、様々なセンサ及び構成要素から情報又はデータを収集し、通信ユニット2305を通じて情報又はデータをサーバ1230に送信し得る。代替又は追加として、車両1205の様々なセンサ又は構成要素はまた、サーバ1230と通信し、センサ又は構成要素によって収集されるデータ又は情報をサーバ1230に送信し得る。
幾つかの実施形態では、車両1205、1210、1215、1220、及び1225の少なくとも1つが、例えば、他の車両によって共有される情報に基づいて、クラウドソーシングを使用して自律車両道路ナビゲーションモデルを生成し得るように、車両1205、1210、1215、1220、及び1225は、互いに通信し得、ナビゲーション情報を互いに共有し得る。幾つかの実施形態では、車両1205、1210、1215、1220、及び1225は、ナビゲーション情報を互いに共有し得、各車両は、車両に提供される、それ自体の自律車両道路ナビゲーションモデルを更新し得る。幾つかの実施形態では、車両1205、1210、1215、1220、及び1225(例えば、車両1205)のうちの少なくとも1つは、ハブ車両として機能し得る。ハブ車両(例えば、車両1205)の少なくとも1つのプロセッサ2315は、サーバ1230によって実行される機能の一部又は全部を実行し得る。例えば、ハブ車両の少なくとも1つのプロセッサ2315は、他の車両と通信し、他の車両からナビゲーション情報を受信し得る。ハブ車両の少なくとも1つのプロセッサ2315は、他の車両から受信した共有情報に基づいて、自律車両道路ナビゲーションモデル又はモデルへの更新を生成し得る。ハブ車両の少なくとも1つのプロセッサ2315は、自律ナビゲーションガイダンスを提供するために、自律車両道路ナビゲーションモデル又はモデルへの更新を他の車両に送信し得る。
レーンマークのマッピング及びマッピングされたレーンマークに基づくナビゲーション
前述のように、自律車両道路ナビゲーションモデル及び/又は疎なマップ800は、道路区分に関連付けられた複数のマッピングされたレーンマークを含み得る。以下でより詳細に論じるように、これらのマッピングされたレーンマークは、自律車両がナビゲートするときに使用され得る。例えば、幾つかの実施形態では、マッピングされたレーンマークを使用して、計画される軌道に対する横方向位置及び/又は向きを決定し得る。この位置情報を使用して、自律車両は、決定された位置での目標軌道の方向に一致するように進行方向が調整可能であり得る。
車両200は、所与の道路区分におけるレーンマークを検出するように構成され得る。道路区分は、道路上の車両の交通量を案内するための道路上の任意のマークを含み得る。例えば、レーンマークは、走行レーンの端部を示す実線又は破線であり得る。レーンマークはまた、例えば、隣接するレーンでの通過が許可されるか否かを示す、二重の実線、二重の破線、又は実線及び破線の組み合わせ等の二重線を含み得る。レーンマークはまた、例えば、出口ランプの減速レーンを示す高速道路の入口及び出口のマーク、又はレーンがターンのみであること又はレーンが終了していることを示す点線を含み得る。マークは、作業区間、一時的なレーンシフト、交差点を通る走行経路、中央分離帯、専用レーン(例えば、自転車レーン、HOVレーン等)、又はその他の種々雑多なマーク(例えば、横断歩道、スピードハンプ、踏切、一時停止線等)を更に示し得る。
車両200は、画像取得ユニット120に含まれる撮像デバイス122及び124等のカメラを使用して、周囲のレーンマークの画像を撮像し得る。車両200は、画像を分析して、撮像された画像のうちの1つ又は複数内で識別された特徴に基づいて、レーンマークに関連付けられた点位置を検出し得る。これらの点位置は、疎なマップ800のレーンマークを表すためにサーバにアップロードされ得る。カメラの位置及び視野に応じて、単一の画像から車両の両側のレーンマークが同時に検出され得る。他の実施形態では、異なるカメラを使用して、車両の複数の側部で画像を撮像し得る。レーンマークの実際の画像をアップロードするのではなく、マークをスプライン又は一連の点として疎なマップ800に記憶し、従って、疎なマップ800のサイズ及び/又は車両によって遠隔でアップロードしなければならないデータを低減し得る。
図24Aから図24Dは、特定のレーンマークを表すために車両200によって検出され得る例示的な点位置を示す。上記で説明した陸標と同様に、車両200は、様々な画像認識アルゴリズム又はソフトウェアを使用して、撮像された画像内の点位置を識別し得る。例えば、車両200は、特定のレーンマークに関連付けられた一連の端点、角点、又は他の様々な点位置を認識し得る。図24Aは、車両200によって検出され得る連続レーンマーク2410を示す。レーンマーク2410は、連続した白線で表される道路の外側の端部を表し得る。図24Aに示すように、車両200は、レーンマークに沿った複数の端部位置点2411を検出するように構成され得る。位置点2411は、疎なマップ内にマッピングされたレーンマークを作成するのに十分な任意の間隔でレーンマークを表すために収集され得る。例えば、レーンマークは、検出された端部1メートルごとに1つの点、検出された端部の5メートルごとに1つの点、又はその他の適切な間隔によって表し得る。幾つかの実施形態では、間隔は、例えば、車両200が検出された点の位置の最高の信頼性ランキングを有する点に基づく等の設定された間隔ではなく、他の要因によって決定され得る。図24Aは、レーンマーク2410の内側端部上の端部位置点を示しているが、点は線の外側端部上又は両端部に沿って収集され得る。更に、単一の線が図24Aに示されているが、二重の実線についても同様の端点が検出され得る。例えば、点2411は、実線のうちの一方又は両方の端部に沿って検出され得る。
車両200はまた、レーンマークのタイプ又は形状に応じて異なるレーンマークを表し得る。図24Bは、車両200によって検出され得る例示的な破線のレーンマーク2420を示す。図24Aのように端点を識別するのではなく、車両は、破線の完全な境界を画定するために、レーン破線の角を表す一連の角点2421を検出し得る。図24Bは、所与の破線マークの各角が位置特定されていることを示しているが、車両200は、図に示されている点のサブセットを検出又はアップロードし得る。例えば、車両200は、所与の破線マークの前端部又は前角部を検出し得るか、又はレーンの内部に最も近い2つの角点を検出し得る。更に、全ての破線マークが撮像され得るわけではなく、例えば、車両200は、破線マークのサンプル(例えば、1つおき、3つおき、5つおき等)を表す点、又は事前定義された間隔(例えば、1メートルごと、5メートルごと、10メートルごと等)で破線マークを表す点を撮像及び/又は記録し得る。角点は、レーンが出口ランプ用であること示すマーク、特定のレーンが終了しようとしていることを示すマーク、又は検出可能な角点を有し得る他の様々なレーンマーク等の同様のレーンマークについても検出され得る。角点は、二重の破線又は実線と破線との組み合わせで構成されるレーンマークでも検出され得る。
幾つかの実施形態では、マッピングされたレーンマークを生成するためにサーバにアップロードされた点は、検出された端点又は角点以外の他の点を表し得る。図24Cは、所与のレーンマークの中心線を表し得る一連の点を示す。例えば、連続レーン2410は、レーンマークの中心線2440に沿った中心線点2441によって表し得る。幾つかの実施形態では、車両200は、畳み込みニューラルネットワーク(CNN)、スケール不変特徴変換(SIFT)、配向勾配のヒストグラム(HOG)特徴、又は他の技術等の様々な画像認識技術を使用してこれらの中心点を検出するように構成され得る。或いは、車両200は、図24Aに示す端点2411等の他の点を検出し得、例えば、各端部に沿った点を検出し、端点間の中間点を決定することによって、中心線点2441を計算し得る。同様に、破線レーンマーク2420は、レーンマークの中心線2450に沿った中心線点2451によって表し得る。中心線点は、図24Cに示すように、破線の端部、又は中心線に沿った他の様々な位置に配置し得る。例えば、各破線は、破線の幾何学的中心にある単一の点によって表し得る。点はまた、中心線に沿って所定の間隔(例えば、1メートルごと、5メートルごと、10メートルごと等)で間隔を空け得る。中心線点2451は、車両200によって直接検出され得るか、又は図24Bに示すように、角点2421等の他の検出された基準点に基づいて計算され得る。中心線はまた、上記と同様の技術を使用して、二重線等の他のレーンマークタイプを表すために使用し得る。
幾つかの実施形態では、車両200は、2つの交差するレーンマーク間の頂点等、他の特徴を表す点を識別し得る。図24Dは、2つのレーンマーク2460と2465との間の交差点を表す例示的な点を示す。車両200は、2つのレーンマーク間の交差点を表す頂点2466を計算し得る。例えば、レーンマーク2460又は2465の1つは、道路区分内の列車交差領域又は他の交差領域を表し得る。レーンマーク2460と2465は互いに垂直に交差しているように示されているが、他の様々な構成が検出され得る。例えば、レーンマーク2460及び2465は、他の角度で交差し得るか、又はレーンマークのうちの一方又は両方が、頂点2466で終了し得る。同様の技法は、破線又は他のレーンマークタイプ間の交差にも適用され得る。頂点2466に加えて、他の様々な点2467も検出され得、レーンマーク2460及び2465の向きについての更に情報を提供する。
車両200は、現実世界の座標をレーンマークの検出された各点に関連付け得る。例えば、各点の座標を含む位置識別子を生成して、レーンマークをマッピングするためにサーバにアップロードし得る。位置識別子は、点が角点、端点、中心点等を表すか否かを含む、点に関する他の識別情報を更に含み得る。従って、車両200は、画像の分析に基づいて各点の現実世界の位置を決定するように構成され得る。例えば、車両200は、レーンマークの現実世界の位置を特定するために、上記で説明した様々な陸標等の画像内の他の特徴を検出し得る。これは、検出された陸標に対する画像内のレーンマークの位置を決定すること、又は検出された陸標に基づいて車両の位置を決定し、次いで車両(又は車両の目標軌道)からレーンマークまでの距離を決定することを含み得る。陸標が利用できない場合、推測航法に基づいて決定された車両の位置に対して、レーンマーク点の位置を決定し得る。位置識別子に含まれる現実世界の座標は、絶対座標(例えば、緯度/経度座標)として表し得るか、又は、目標軌道に沿った縦方向位置及び目標軌道からの横方向の距離に基づく等、他の特徴に関連し得る。次いで、位置識別子は、ナビゲーションモデル(疎なマップ800等)でマッピングされたレーンマークを生成するために、サーバにアップロードされ得る。幾つかの実施形態では、サーバは、道路区分のレーンマークを表すスプラインを構築し得る。或いは、車両200はスプラインを生成し、サーバにアップロードして、ナビゲーションモデルに記録し得る。
図24Eは、マッピングされたレーンマークを含む対応する道路区分のナビゲーションモデル又は疎なマップの例を示す。疎なマップは、車両が道路区分に沿って追従する目標軌道2475を含み得る。上記で説明したように、目標軌道2475は、車両が対応する道路区分を走行するときに通る理想的な経路を表し得るか、又は道路上の他の場所(例えば、道路の中心線等)に配置され得る。目標軌道2475は、例えば、同じ道路区分を横断する車両の2つ以上の再構築された軌道の集約(例えば、重み付けされる組み合わせ)に基づいて、上記で説明した様々な方法で計算され得る。
幾つかの実施形態では、目標軌道は、全ての車両タイプ及び全ての道路、車両、及び/又は環境条件に対して等しく生成され得る。しかし、他の実施形態では、他の様々な要因又は変数もまた、目標軌道を生成する際に考慮され得る。異なるタイプの車両(例えば、自家用車、軽トラック、及びフルトレーラ)に対して、異なる目標軌道が生成され得る。例えば、小型の自家用車の場合、大型のセミトレーラトラックよりも回転半径が比較的狭い目標軌道が生成され得る。幾つかの実施形態では、道路、車両、及び環境条件も考慮され得る。例えば、異なる道路条件(例えば、濡れている、雪が積もっている、凍っている、乾燥している等)、車両条件(例えば、タイヤ条件又は推定されるタイヤ条件、ブレーキ条件又は推定されるブレーキ条件、燃料の残量等)又は環境要因(例えば、時刻、視界、天候等)に対して異なる目標軌道が生成され得る。目標軌道は、特定の道路区分のうちの1つ又は複数の態様又は特徴(例えば、制限速度、ターンの頻度及びサイズ、勾配等)にも依存し得る。幾つかの実施形態では、様々なユーザ設定を使用して、設定された走行モード(例えば、所望の積極的な走行、エコノミーモード等)等の目標軌道も決定し得る。
疎なマップは、道路区分に沿ったレーンマークを表すマッピングされたレーンマーク2470及び2480も含み得る。マッピングされたレーンマークは、複数の位置識別子2471及び2481によって表し得る。上記で説明したように、位置識別子は、検出されたレーンマークに関連付けられた点の現実世界の座標における位置を含み得る。モデルの目標軌道と同様に、レーンマークにも標高データが含まれ得、3次元空間の曲線として表され得る。例えば、曲線は、適切な次数の3次元多項式を接続するスプラインであり得るか、又は曲線は、位置識別子に基づいて計算され得る。マッピングされたレーンマークはまた、レーンマークのタイプの識別子(例えば、同じ進行方向を有する2つのレーン間、反対の進行方向を有する2つのレーン間、道路の端部等)及び/又はレーンマークの他の特性(例えば、実線、破線、単一の線、二重線、黄色い線、白線等)等、レーンマークに関する他の情報又はメタデータを含み得る。幾つかの実施形態では、マッピングされたレーンマークは、例えば、クラウドソーシング技術を使用して、モデル内で継続的に更新され得る。同じ車両は、同じ道路区分を走行する複数の機会の間に位置識別子をアップロードし得るか、又はデータは、異なる時間に道路区分を走行する複数の車両(1205、1210、1215、1220、及び1225等)から選択され得る。次いで、疎なマップ800は、車両から受信され、システムに記憶された後続の位置識別子に基づいて更新又は洗練され得る。マッピングされたレーンマークが更新及び洗練されると、更新された道路ナビゲーションモデル及び/又は疎なマップが複数の自律車両に配信され得る。
疎なマップ内にマッピングされたレーンマークを生成することは、画像又は実際のレーンマーク自体の異常に基づいて誤差を検出及び/又は軽減することも含み得る。図24Fは、レーンマーク2490の検出に関連付けられた例示的な異常2495を示している。異常2495は、例えば、カメラのレーンマークの視界を遮る物体、レンズ上のゴミ等から、車両200によって撮像された画像に現れ得る。場合によっては、異常はレーンマーク自体に起因し得、レーンマーク自体が、例えば、道路上の汚れ、破片、水、雪、又はその他の物質で損傷したり、摩耗したり、部分的に覆われたりし得る。異常2495は、車両200によって検出された誤った点2491を生じさせ得る。疎なマップ800は、正しくマッピングされたレーンマークを提供し、誤差を除外し得る。幾つかの実施形態では、車両200は、例えば、画像内の異常2495を検出することによって、又は異常の前後に検出されたレーンマーク点に基づいて誤差を識別することによって、誤差点2491を検出し得る。異常の検出に基づいて、車両は点2491を除外し得るか、又は他の検出された点と一致するように調整し得る。他の実施形態では、誤差は、点がアップロードされた後に、例えば、同じ走行中にアップロードされた他の点に基づいて、又は同じ道路区分に沿った以前の走行からのデータの集計に基づいて、点が予想閾値の範囲外であると判断することによって修正され得る。
ナビゲーションモデル及び/又は疎なマップにマッピングされたレーンマークは、対応する道路を横断する自律車両によるナビゲーションにも使用され得る。例えば、目標軌道に沿ってナビゲートする車両は、疎なマップ内のマッピングされたレーンマークを定期的に使用して、目標軌道にそれ自体を位置合わせし得る。上述したように、陸標間で、車両は、車両がセンサを使用してエゴモーションを決定し、目標軌道に対する位置を推定する推測航法に基づいてナビゲートし得る。誤差は経時的に蓄積し得、目標軌道に対する車両の位置決定の精度が次第に低下し得る。従って、車両は、疎なマップ800(及びそれらの既知の位置)で発生するレーンマークを使用して、位置決定における推測航法によって誘発される誤差を低減し得る。このようにして、疎なマップ800に含まれる識別されるレーンマークは、ナビゲーションアンカーとして機能し得、そこから、目標軌道に対する車両の正確な位置を決定し得る。
図25Aは、マッピングされたレーンマークに基づくナビゲーションに使用され得る車両の周囲環境の例示的な画像2500を示す。画像2500は、例えば、画像取得ユニット120に含まれる撮像デバイス122及び124を介して車両200によって撮像され得る。画像2500は、図25Aに示すように、少なくとも1つのレーンマーク2510の画像を含み得る。画像2500はまた、上記で説明したようにナビゲーションに使用される道路標識等のうちの1つ又は複数の陸標2521を含み得る。撮像された画像2500には表示されないが、車両200によって検出及び/又は決定される要素2511、2530、及び2520等、図25Aに示す幾つかの要素も参照のために示す。
図24Aから図24D及び図24Fに関して上記で説明した様々な技術を使用して、車両は、画像2500を分析して、レーンマーク2510を識別し得る。画像内のレーンマークの特徴に対応する様々な点2511が検出され得る。例えば、点2511は、レーンマークの端部、レーンマークの角、レーンマークの中間点、2つの交差するレーンマーク間の頂点、又は他の様々な特徴又は位置に対応し得る。点2511は、サーバから受信されるナビゲーションモデルに記憶された点の位置に対応するように検出され得る。例えば、マッピングされたレーンマークの中心線を表す点を含む疎なマップが受信される場合、点2511はまた、レーンマーク2510の中心線に基づいて検出され得る。
車両はまた、要素2520によって表され、目標軌道に沿って配置された縦方向位置を決定するように構成され得る。縦方向位置2520は、例えば、画像2500内の陸標2521を検出し、測定された位置を道路モデル又は疎なマップ800に記憶された既知の陸標位置と比較することによって、画像2500から決定され得る。次いで、目標軌道に沿った車両の位置は、陸標までの距離及び陸標の既知の位置に基づいて決定され得る。縦方向位置2520はまた、レーンマークの位置を決定するために使用されるもの以外の画像から決定され得る。例えば、縦方向位置2520は、画像2500と同時に又はほぼ同時に撮影された画像取得ユニット120内の他のカメラからの画像内の陸標を検出することによって決定され得る。場合によっては、車両は、縦方向位置2520を決定するための任意の陸標又は他の基準点の近くにない場合がある。そのような場合、車両は推測航法に基づいてナビゲートし得、従って、センサを使用してエゴモーションを決定し、目標軌道に対する縦方向位置2520を推定し得る。車両はまた、撮像された画像内で観察された車両とレーンマーク2510との実際の距離を表す距離2530を決定するように構成され得る。カメラの角度、車両の速度、車両の幅、又は他の様々な要因が、距離2530を決定する際に考慮され得る。
図25Bは、道路ナビゲーションモデルにおけるマッピングされたレーンマークに基づく車両の横方向の位置特定補正を示す。上記で説明したように、車両200は、車両200によって撮像された1つ又は複数の画像を使用して、車両200とレーンマーク2510との間の距離2530を決定し得る。車両200はまた、マッピングされたレーンマーク2550及び目標軌道2555を含み得る、疎なマップ800等の道路ナビゲーションモデルにアクセスし得る。マッピングされたレーンマーク2550は、例えば、複数の車両によって撮像されたクラウドソーシングによる位置識別子を使用して、上記で説明した技術を使用してモデル化され得る。目標軌道2555はまた、上記で説明した様々な技術を使用して生成され得る。車両200はまた、図25Aに関して上記で説明したように、目標軌道2555に沿った縦方向位置2520を決定又は推定するように構成され得る。次いで、車両200は、目標軌道2555と、縦方向位置2520に対応するマッピングされたレーンマーク2550との横方向距離に基づいて、予想距離2540を決定し得る。車両200の横方向の位置特定は、撮像された画像を使用して測定された実際の距離2530をモデルからの予想距離2540と比較することによって修正又は調整され得る。
図26Aは、開示される実施形態による、自律車両ナビゲーションで使用するためのレーンマークをマッピングするための例示的なプロセス2600Aを示すフローチャートである。ステップ2610において、プロセス2600Aは、検出されたレーンマークに関連付けられた2つ以上の位置識別子を受信することを含み得る。例えば、ステップ2610は、サーバ1230又はサーバに関連付けられた1つ又は複数のプロセッサによって実行され得る。位置識別子は、図24Eに関して上記で説明したように、検出されたレーンマークに関連付けられた点の現実世界の座標における位置を含み得る。幾つかの実施形態では、位置識別子はまた、道路区分又はレーンマークに関する追加情報等の他のデータを含み得る。加速度計データ、速度データ、陸標データ、道路のジオメトリ又はプロファイルデータ、車両位置データ、エゴモーションデータ、又は上記で説明した他の様々な形態のデータ等の追加のデータもまた、ステップ2610の間に受信され得る。位置識別子は、車両によって撮像された画像に基づいて、車両1205、1210、1215、1220、及び1225等の車両によって生成され得る。例えば、識別子は、ホスト車両に関連付けられたカメラからの、ホスト車両の環境を表す少なくとも1つの画像の取得、ホスト車両の環境におけるレーンマークを検出するための少なくとも1つの画像の分析、及び、ホスト車両に関連付けられた位置に対する検出されたレーンマークの位置を決定するための少なくとも1つの画像の分析に基づいて決定され得る。上記で説明したように、レーンマークは、様々な異なるマークタイプを含み得、位置識別子は、レーンマークに関連する様々な点に対応し得る。例えば、検出されたレーンマークがレーンの境界をマークする破線の一部である場合、点はレーンマークの検出された角に対応し得る。検出されたレーンマークがレーンの境界をマークする実線の一部である場合、点は、上記で説明したように、様々な間隔で、レーンマークの検出された端部に対応し得る。幾つかの実施形態では、点は、図24Cに示すように、検出されたレーンマークの中心線に対応し得るか、又は図24Dに示すように、2つの交差するレーンマークの間の頂点と交差するレーンマークに関連付けられた他の2つの点の少なくとも1つに対応し得る。
ステップ2612において、プロセス2600Aは、検出されたレーンマークを対応する道路区分に関連付けることを含み得る。例えば、サーバ1230は、ステップ2610の間に受信される現実世界の座標又は他の情報を分析し、座標又は他の情報を、自律車両道路ナビゲーションモデルに記憶された位置情報と比較し得る。サーバ1230は、レーンマークが検出された現実世界の道路区分に対応するモデル内の道路区分を決定し得る。
ステップ2614において、プロセス2600Aは、検出されたレーンマークに関連付けられた2つ以上の位置識別子に基づいて、対応する道路区分に関連する自律車両道路ナビゲーションモデルを更新することを含み得る。例えば、自律車両道路ナビゲーションモデルは疎なマップ800であり得、サーバ1230は、モデルにマッピングされたレーンマークを含むか又は調整するために疎なマップを更新し得る。サーバ1230は、図24Eに関して上記で説明した様々な方法又はプロセスに基づいてモデルを更新し得る。幾つかの実施形態では、自律車両道路ナビゲーションモデルを更新することは、検出されたレーンマークの現実世界の座標における位置のうちの1つ又は複数の指標を記憶することを含み得る。自律車両道路ナビゲーションモデルはまた、図24Eに示すように、対応する道路区分に沿って車両が追従する少なくとも1つの目標軌道を含み得る。
ステップ2616において、プロセス2600Aは、更新された自律車両道路ナビゲーションモデルを複数の自律車両に配信することを含み得る。例えば、サーバ1230は、更新された自律車両道路ナビゲーションモデルを、ナビゲーションのためにモデルを使用し得る車両1205、1210、1215、1220、及び1225に配信し得る。自律車両道路ナビゲーションモデルは、図12に示すように、無線通信経路1235を通じて、1つ又は複数のネットワークを介して(例えば、セルラネットワーク及び/又はインターネット等を介して)配信され得る。
幾つかの実施形態では、レーンマークは、図24Eに関して上記で説明したように、クラウドソーシング技術等を介して、複数の車両から受信されるデータを使用してマッピングされ得る。例えば、プロセス2600Aは、検出されたレーンマークに関連付けられた位置識別子を含む第1のホスト車両からの第1の通信を受信すること、及び検出されたレーンマークに関連付けられた追加の位置識別子を含む第2のホスト車両からの第2の通信を受信することを含み得る。例えば、第2の通信は、同じ道路区分を走行する後続の車両から、すなわち、同じ道路区分に沿って後続の移動する同じ車両から受信され得る。プロセス2600Aは、第1の通信で受信される位置識別子に基づき、第2の通信で受信される追加の位置識別子に基づいて、検出されたレーンマークに関連付けられた少なくとも1つの位置の決定を洗練することを更に含み得る。これには、複数の位置識別子の平均を使用すること及び/又はレーンマークの現実世界の位置を反映し得ない「ゴースト」識別子を除外することが含まれ得る。
図26Bは、マッピングされたレーンマークを使用して、道路区分に沿ってホスト車両を自律的にナビゲートするための例示的なプロセス2600Bを示すフローチャートである。プロセス2600Bは、例えば、自律車両200の処理ユニット110によって実行され得る。ステップ2620において、プロセス2600Bは、サーバベースのシステムから自律車両道路ナビゲーションモデルを受信することを含み得る。幾つかの実施形態では、自律車両道路ナビゲーションモデルは、道路区分に沿ったホスト車両の目標軌道、及び道路区分に関連付けられた1つ又は複数のレーンマークに関連付けられた位置識別子を含み得る。例えば、車両200は、疎なマップ800又はプロセス2600Aを使用して開発された別の道路ナビゲーションモデルを受信し得る。幾つかの実施形態では、目標軌道は、例えば、図9Bに示すように、3次元スプラインとして表し得る。図24Aから図24Fに関して上記で説明したように、位置識別子は、レーンマークに関連付けられた点(例えば、破線レーンマークの角点、実線のレーンマークの端点、2つの交差するレーンマークの間の頂点及び交差するレーンマークに関連付けられた他の点、レーンマークに関連付けられた中心線等)の現実世界の座標における位置を含み得る。
ステップ2621において、プロセス2600Bは、車両の環境を表す少なくとも1つの画像を受信することを含み得る。画像は、画像取得ユニット120に含まれる撮像デバイス122及び124等を介して、車両の撮像デバイスから受信され得る。画像は、上記で説明した画像2500と同様に、1つ又は複数のレーンマークの画像を含み得る。
ステップ2622において、プロセス2600Bは、目標軌道に沿ったホスト車両の縦方向位置を決定することを含み得る。図25Aに関して上記で説明したように、これは、撮像された画像内の他の情報(例えば、陸標等)に基づき得るか、又は検出された陸標間の車両の推測航法により得る。
ステップ2623において、プロセス2600Bは、目標軌道に沿ったホスト車両の決定された縦方向位置に基づいて、及び少なくとも1つのレーンマークに関連付けられた2つ以上の位置識別子に基づいて、レーンマークまでの予想横方向距離を決定することを含み得る。例えば、車両200は、疎なマップ800を使用して、レーンマークまでの予想横方向距離を決定し得る。図25Bに示すように、目標軌道2555に沿った縦方向位置2520は、ステップ2622で決定され得る。疎なマップ800を使用して、車両200は、縦方向位置2520に対応するマッピングされたレーンマーク2550までの予想距離2540を決定し得る。
ステップ2624において、プロセス2600Bは、少なくとも1つの画像を分析して、少なくとも1つのレーンマークを識別することを含み得る。車両200は、例えば、上記で説明したように、様々な画像認識技術又はアルゴリズムを使用して、画像内のレーンマークを識別し得る。例えば、レーンマーク2510は、図25Aに示すように、画像2500の画像分析を介して検出され得る。
ステップ2625において、プロセス2600Bは、少なくとも1つの画像の分析に基づいて、少なくとも1つのレーンマークまでの実際の横方向距離を決定することを含み得る。例えば、車両は、図25Aに示すように、車両とレーンマーク2510との実際の距離を表す距離2530を決定し得る。カメラの角度、車両の速度、車両の幅、車両に対するカメラの位置、又は他の様々な要因が、距離2530を決定する際に考慮され得る。
ステップ2626において、プロセス2600Bは、少なくとも1つのレーンマークまでの予想横方向距離と、少なくとも1つのレーンマークまでの決定された実際の横方向距離との差に基づいて、ホスト車両の自律操舵動作を決定することを含み得る。例えば、図25Bに関して上記で説明したように、車両200は、実際の距離2530を予想距離2540と比較し得る。実際の距離と予想距離との差は、車両の実際の位置と車両が追従する目標軌道との間の誤差(及びその大きさ)を示し得る。従って、車両は、その差に基づいて、自律操舵動作又は他の自律動作を決定し得る。例えば、図25Bに示すように、実際の距離2530が予想距離2540よりも短い場合、車両は、レーンマーク2510から離れて、車両を左に向けるための自律操舵動作を決定し得る。従って、目標軌道に対する車両の位置を修正し得る。プロセス2600Bは、例えば、陸標間の車両のナビゲーションを改善するために使用され得る。
電子視野を使用したマップ管理
処理能力及び記憶容量は増加し、コストは低くなっているが、それらをより効率的に使用することが依然として望ましいことがある。本明細書で開示されるシステム及び方法は、車両が移動中に使用し得ないマップデータの大規模なセットをロードするのではなく、車両がその走行ルートに関連するマップデータを動的に受信してロードすることを可能にし得る。そうすることで、システム及び方法は、車両が必要とする可能性のあるマップデータを受信して処理することにより、車両のハードウェア要件を軽減し得る。更に、システム及び方法は、車両と、例えば、マップデータを展開する中央サーバとの間で交換されるデータの送信コストの削減も可能にし得る。更に、開示されるシステム及び方法は、車両がより頻繁に必要とし得る最新のマップデータを車両が受信するとこを可能にし得る。例えば、システム及び方法は、車両の位置、速度、運転方向等のナビゲーション情報に基づいて、車両についての潜在的な移動エリア(又は潜在的な移動エンベロープ)を決定し得る。システム及び方法はまた、潜在的な移動エリアに関連する1つ又は複数の道路区分を車両から決定し、道路区分に関連するマップデータを車両に送信するように構成され得る。車両(及び/又はドライバー)は、受信したマップデータに従ってナビゲートし得る。
図27は、開示される実施形態による、1つ又は複数のマップ区分を1つ又は複数の車両に提供するための例示的なシステム2700を示す。図27に示すように、システム2700は、サーバ2701、1つ又は複数の車両2702、及び車両に関連付けられた1つ又は複数の車両デバイス2703、データベース2704、及びネットワーク2705を含み得る。サーバ2701は、1つ又は複数の車両(及び/又は車両に関連付けられた1つ又は複数の車両デバイス)から受信したナビゲーション情報に基づいて、1つ又は複数のマップ区分を1つ又は複数の車両に提供するように構成され得る。例えば、車両2702及び/又は車両デバイス2703は、ナビゲーション情報を収集し、ナビゲーション情報をサーバ2701に送信するように構成され得る。サーバ2701は、車両2702及び/又は車両デバイス2703に、受信したナビゲーション情報に基づく地理的領域のマップ情報を含む1つ又は複数のマップ区分を送信し得る。データベース2704は、システム2700の構成要素(例えば、サーバ2701、車両2702、及び/又は車両デバイス2703)に関する情報を記憶するように構成され得る。ネットワーク2705は、システム2700の構成要素間の通信を容易にするように構成され得る。
サーバ2701は、車両2702(及び/又は車両デバイス2703)からナビゲーション情報を受信するように構成され得る。幾つかの実施形態では、ナビゲーション情報は、車両2702の位置、車両2702の速度、及び車両2702の進行方向を含み得る。サーバ2701はまた、受信したナビゲーション情報を分析し、車両2702のための潜在的な移動エンベロープを決定するように構成され得る。車両の潜在的な移動エンベロープは、車両を取り囲むエリアであり得る。例えば、車両の潜在的な移動エンベロープは、車両の運転方向の車両からの第1の所定の距離、車両の運転方向とは反対の方向の車両からの第2の所定の距離、車両の左側への車両からの第3の所定の距離、車両の右側への車両からの第4の所定の距離をカバーするエリアを含み得る。幾つかの実施形態では、車両の運転方向の車両からの第1の所定の距離は、車両の電子視野を構成し得る車両前方の所定の距離を含み得る。幾つかの実施形態では、車両の潜在的な移動エンベロープは、車両の現在位置に対する車両のためのうちの1つ又は複数(又は全て)の可能な運転方向の車両からのうちの1つ又は複数の距離(1、2、3、…、n)を含み得る。例えば、車両がUターンする可能性があり得る道路では、車両の潜在的な移動エンベロープは、車両がUターンを実行し得、現在の移動方向とは(一般に)反対の方向にナビゲートし得るため、少なくとも前方方向の所定の距離に加えて、反対方向の車両からの所定の距離を含み得る。別の例として、現在位置で反対方向への走行が不可能(例えば、物理的障壁がある)であり、現在位置から少し先の距離でUターンが不可能な場合、潜在的な移動エンベロープには、反対方向の距離が含まれ得ない。現実世界の実際の視野と同様に、電子視野は、ホスト車両の現在の速度及び現在の進行方向に基づいて、特定の時間ウィンドウ内での車両の潜在的な移動距離に関連付けられ得る。サーバ2701は更に、車両2702の潜在的な移動エンベロープと少なくとも部分的に重複する地理的領域のマップ情報を含む1つ又は複数のマップ区分を車両に送信するように構成され得る。
幾つかの実施形態では、サーバ2701は、本明細書で開示される機能を実行するクラウドサーバであり得る。「クラウドサーバ」という用語は、インターネット等のネットワークを介してサービスを提供するコンピュータプラットフォームを指す。この構成例では、サーバ2701は、個々のハードウェアに対応し得ない仮想マシンを使用し得る。例えば、計算能力及び/又は記憶能力は、データセンタ又は分散コンピューティング環境等のスケーラブルなリポジトリから望ましい計算/記憶能力の適切な部分を割り当てることによって実装され得る。一例では、サーバ2701は、カスタマイズされたハードワイヤードロジック、1つ又は複数の特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)、ファームウェア、及び/又はコンピュータシステムと組み合わせてサーバ2701を専用マシンにするプログラムロジックを使用して、本明細書に記載の方法を実装し得る。
車両2702及び/又は車両デバイス2703は、ナビゲーション情報を収集し、ナビゲーション情報をサーバ2701に送信するように構成され得る。例えば、車両2702及び/又は車両デバイス2703は、1つ又は複数のセンサからデータを受信し、受信したデータに基づいて、車両の位置、速度、及び/又は運転方向等のナビゲーション情報を決定するように構成され得る。幾つかの実施形態では、ナビゲーション情報は、車両3302に関連付けられた1つ又は複数のセンサから(例えば、GPSデバイス、速度センサ、加速度計、サスペンションセンサ、カメラ、LIDARデバイス、視覚的検出及び測距(VIDAR)デバイス、又は同様のもの、或いはそれらの組み合わせから)受信したセンサデータを含み得る。車両2702及び/又は車両デバイス2703はまた、例えば、ネットワーク2705を介してナビゲーション情報をサーバ2701に送信するように構成され得る。代替又は追加として、車両2702及び/又は車両デバイス2703は、センサデータをサーバ2701に送信するように構成され得る。車両2702及び/又は車両デバイス2703はまた、例えば、ネットワーク2705を介してマップ情報をサーバ2701から受信するように構成され得る。マップ情報は、例えば、道路、水の特徴、地理的特徴、ビジネス、関心点、レストラン、ガソリンスタンド、特定の道路の特徴(例えば、レーンマーク)、ホスト車両の目標軌道、又は同様のもの、或いはそれらの組み合わせの多項式表現を含む疎なデータモデルを含む、様々な項目の基準座標系での位置に関連するデータを含み得る。幾つかの実施形態では、車両2702及び/又は車両デバイス2703は、マップ情報に従ってルーティング経路を計画し、及び/又は車両2702をナビゲートするように構成され得る。例えば、車両2702及び/又は車両デバイス2703は、マップ情報に基づいて目的地までのルートを決定するように構成され得る。代替又は追加として、車両2702及び/又は車両デバイス2703は、受信したマップ情報に基づいて、少なくとも1つのナビゲーション動作(例えば、ターンを行う、ある位置で停止する等)を実行するように構成され得る。幾つかの実施形態では、車両2702は、上記で説明したシステム100と同様の構成を有する、及び/又は同様の機能を実行するデバイスを含み得る。代替又は追加として、車両デバイス2703は、上記で説明したシステム100と同様の構成を有し得、及び/又は同様の機能を実行し得る。
データベース2704は、システム2700の構成要素(例えば、サーバ2701、車両2702、及び/又は車両デバイス2703)のマップデータを記憶するように構成されるマップデータベースを含み得る。幾つかの実施形態では、サーバ2701、車両2702、及び/又は車両デバイス2703は、データベース2704にアクセスし、ネットワーク2705を介してデータベース2704から記憶されたデータを取得し、及び/又はデータベース2704にデータをアップロードするように構成され得る。例えば、サーバ2701は、マップ情報に関するデータを、記憶するためにデータベース2704に送信し得る。車両2702及び/又は車両デバイス2703は、マップ情報及び/又はデータをデータベース2704からダウンロードし得る。幾つかの実施形態では、データベース2704は、道路、水の特徴、地理的特徴、ビジネス、関心点、レストラン、ガソリンスタンド、又は同様のもの、或いはそれらの組み合わせを含む、様々な項目の、基準座標系での位置に関連するデータを含み得る。幾つかの実施形態では、データベース2704は、本開示の他の場所に記載のマップデータベース160と同様のデータベースを含み得る。
ネットワーク2705は、通信を提供し、情報を交換し、及び/又はシステム2700の構成要素間の情報の交換を容易にする任意のタイプのネットワーク(インフラストラクチャを含む)であり得る。例えば、ネットワーク2705は、インターネット、ローカルエリアネットワーク、無線ネットワーク(例えば、Wi-Fi/302.11ネットワーク)、又は他の適切な接続を含むか、又はそれらの一部であり得る。他の実施形態では、システム2700のうちの1つ又は複数の構成要素は、例えば、電話ネットワーク、エクストラネット、イントラネット、インターネット、衛星通信、オフライン通信、無線通信、トランスポンダ通信、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、仮想プライベートネットワーク(VPN)、その他等の専用通信リンクを通じて直接通信し得る。
本開示の他の場所に記載されるように、車両2702は、ネットワーク2705を介してナビゲーション情報をサーバ2701に送信し得る。サーバ2701は、車両2702から受信したナビゲーション情報を分析し、ナビゲーション情報の分析に基づいて車両2702の潜在的な移動エンベロープを決定し得る。潜在的な移動エンベロープは、車両2702の位置を包含し得る。幾つかの実施形態では、潜在的な移動エンベロープは境界を含み得る。潜在的な移動エンベロープの境界は、例えば、三角形の形状、四角形の形状、平行四辺形の形状、長方形の形状、正方形(又は実質的に正方形)の形状、台形の形状、ダイヤモンドの形状、六角形の形状、八角形の形状、円形(又は実質的に円形)の形状、楕円形の形状、卵形の形状、不規則な形状、又は同様のもの、或いはそれらの組み合わせを含む形状を有し得る。図28Aから図28Dは、開示される実施形態による、エリア2800内の車両の例示的な潜在的な移動エンベロープを示す。図28Aに示すように、サーバ2701は、車両2702の台形の形状を含み得る境界2811を有する潜在的な移動エンベロープを決定し得る。別の例として、図28Bに示すように、サーバ2701は、車両2702の楕円形の形状を含み得る境界2812を有する潜在的な移動エンベロープを決定し得る。別の例として、図28Cに示すように、サーバ2701は、車両2702の三角形の形状を含み得る境界2813を有する潜在的な移動エンベロープを決定し得る。別の例として、図28Dに示すように、サーバ2701は、車両2702の長方形の形状を含み得る境界2814を有する潜在的な移動エンベロープを決定し得る。代替又は追加として、潜在的な移動エンベロープの形状は、車両の位置(例えば、現在位置)から出発して車両が走行し得る1つ又は複数の潜在的な経路によって決定される境界を有し得る。当業者であれば、潜在的な移動エンベロープの形状が、本開示に記載された例示的な形状に限定されないことを理解するであろう。他の形状も可能である。例えば、潜在的な移動エンベロープは、不規則な形状(例えば、国、州、郡、市、及び/又は道路等の管轄区域のうちの1つ又は複数の境界に基づいて決定される)及び/又は本明細書に記載の任意の形状の一部を含み得る。
本開示の他の場所に記載されるように、サーバ2701はまた、車両の潜在的な移動エンベロープと少なくとも部分的に重複する地理的領域のマップ情報を含む1つ又は複数のマップ区分を車両2702に送信するように構成され得る。幾つかの実施形態では、車両2702に送信される1つ又は複数のマップ区分は、所定の寸法の領域を表す1つ又は複数のタイルを含み得る。タイルのサイズ及び/又は形状は異なり得る。幾つかの実施形態では、領域内のタイルの寸法は、0.25平方キロメートルから1平方キロメートル、1平方キロメートルから10平方キロメートル、及び10平方キロメートルから25平方キロメートル、25平方キロメートルから50平方キロメートル、50平方キロメートルから100平方キロメートルの部分範囲に制限され得る、0.25平方キロメートルから100平方キロメートルの範囲であり得る。幾つかの実施形態では、タイルの所定の寸法は、10平方キロメートルよりも小さい又はそれに等しくあり得る。或いは、タイルの所定の寸法は、1平方キロメートルよりも小さい又はそれに等しくあり得る。或いは、タイルの所定の寸法は、10平方キロメートルよりも小さい又はそれに等しくあり得る。代替又は追加として、タイルのサイズは、タイルがある領域のタイプに基づいて変化し得る。例えば、地方又は道路の少ない地域のタイルのサイズは、都市部又は道路の多い地域のタイルのサイズよりも大きくなり得る。幾つかの実施形態では、タイルのサイズは、車両の現在位置(又はデータが取得される場所)周辺の情報の密度、車両のための可能な経路、エリア内の可能なルートの数、エリア内のルートのタイプ(例えば、幹線、都市部、地方、未舗装等)及び一般的なナビゲーションパターン、及び/又は関連エリア内の傾向に基づいて決定され得る。例えば、典型的には、特定のエリア又は領域の幹線道路上に車両の大部分が残っている場合、脇道に沿った短い距離のマップ情報を取得し得る。典型的には、車両が実際に通行量の少ない脇道をナビゲートする場合、脇道の(例えば、脇道に沿ったより長い距離の)より多くのマップ情報が取得及び/又は車両に送信され得る。幾つかの実施形態では、タイルは、長方形の形状、正方形の形状、六角形の形状、又は同様のもの、或いはそれらの組み合わせを有し得る。当業者であれば、タイルの形状が、本開示に記載された形状に限定されないことを理解するであろう。例えば、タイルは、不規則な形状(例えば、管轄区域(州、郡、市、又は町)又は他の領域(例えば、通り、高速道路)の少なくとも境界に従って決定される)を含み得る。代替又は追加として、タイルは、本明細書で開示される任意の形状の一部を含み得る。
図28Eから図28Hは、開示される実施形態による、車両の潜在的な移動エンベロープの例示的なマップタイルを示す。図28Eから図28Hに示すように、サーバ2701は、エリア2800(又はより小さい又はより大きいエリア)を複数のタイル2811に分割し得る。サーバ2701はまた、車両2702の潜在的な移動エンベロープと少なくとも部分的に重複する1つ又は複数のタイルを決定するように構成され得る。例えば、図28Eに示すように、サーバ2701は、車両2702の潜在的な移動エンベロープの境界2821と交差するか、又は境界2821内にあるタイルを有するエリア2831を決定し得る。別の例として、図28Fに示すように、サーバ2701は、車両2702の潜在的な移動エンベロープの境界2822と交差するか、又は境界2822内にあるタイルを有するエリア2832を決定し得る。別の例として、図28Gに示すように、サーバ2701は、車両2702の潜在的な移動エンベロープの境界2823と交差するか、又は境界2823内にあるタイルを有するエリア2833を決定し得る。別の例として、図28Hに示すように、サーバ2701は、車両2702の潜在的な移動エンベロープの境界2824と交差するか、又は境界2824内にあるタイルを有するエリア2834を決定し得る。幾つかの実施形態では、サーバ2701は、決定されたエリア内のうちの1つ又は複数の道路区分に関連するマップ情報及び/又はデータを車両2702に送信し得る。
図29A及び図29Bは、開示される実施形態による、例示的なマップタイルを示す。図29Aに示すように、エリア(又はマップ)は、異なるレベルで複数のタイルに分割され得る。例えば、幾つかの実施形態では、エリアは、レベル1で複数のタイルに分割され得、その各々は、レベル2で複数のタイルに分割され得る。レベル2のタイルの各々は、レベル3の複数のタイルに分割され得、以下同様である。図29Bは、領域内の複数のタイルを示す。代替又は追加として、地域又は国は、管轄区域(例えば、州、郡、市、町)及び/又は他の領域(例えば、通り、高速道路)に基づいて複数のタイルに分割され得る。幾つかの実施形態では、タイルの寸法は変化し得る。例えば、図29A及び図29Bに示すように、エリア(又はマップ)を異なるレベルに分割し得、特定のレベルのタイルは特定の寸法を有し得る。
幾つかの実施形態では、タイルは、メタデータブロック(例えば、64バイト)、シグネチャブロック(例えば、256バイト)、及びエンコードされたマップデータブロック(例えば、MapBox形式の様々なサイズ)を含み得る、データブロブで提示され得る。
幾つかの実施形態では、サーバ2701は、領域内のうちの1つ又は複数のタイルに関連するデータを取得し、そのデータを、例えば、ネットワーク2705を介して車両2702に送信し得る。
代替又は追加として、車両2702は、ストレージデバイスから1つ又は複数のタイルに関連するデータを取得し得る。例えば、車両2702は、本開示の他の場所に記載されるように、サーバ2701から1つ又は複数の道路区分を受信し得る。車両2702はまた、受信した1つ又は複数の道路区分をローカルストレージに記憶し、1つ又は複数の道路区分に含まれる1つ又は複数のタイルを処理のためにメモリにロードし得る。或いは、車両2702は、サーバ2701から1つ又は複数の道路区分を受信するのではなく、1つ又は複数の道路区分を記憶するように構成されるローカルストレージを含み得、そのローカルストレージから1つ又は複数の道路区分に関連するデータを取得し得る。
幾つかの実施形態では、車両2702は、車両の位置に基づいて、1つ又は複数のタイルに関連するデータ(例えば、マップ情報)を取得し得る。例えば、車両2702は、(本開示の他の場所に記載されるように)その現在位置を決定し、現在位置が存在する第1のタイルを決定し得る。車両2702はまた、第1のタイル及び第1のタイルに隣接する1つ又は複数(又は、全て)のタイルを取得し得る。代替又は追加として、車両2702は、第1のタイルから所定の距離内にある1つ又は複数(又は、全て)のタイルを取得し得る。代替又は追加として、車両2702は、第1のタイルから所定の分離度内にある1つ又は複数(又は、全て)のタイル(例えば、第2の分離度内にある1つ又は複数(又は、全て)のタイル、すなわち、第1のタイルに隣接するか、又は第1のタイルに隣接するタイルに隣接する1つ又は複数(又は、全て)のタイル)を取得し得る。車両2702が第2のタイルに移動すると、車両2702は第2のタイルを取得し得る。車両2702はまた、第1のタイル及び第2のタイルに隣接する1つ又は複数(又は、全て)のタイルを取得し得る。代替又は追加として、車両2702は、第2のタイルから所定の距離内にある1つ又は複数(又は、全て)のタイルを取得し得る。代替又は追加として、車両2702は、第2のタイルから所定の分離度内にある1つ又は複数(又は、全て)のタイル(例えば、第2の分離度内にある1つ又は複数(又は、全て)のタイル、すなわち、第2のタイルに隣接するか、又は第2のタイルに隣接するタイルに隣接する1つ又は複数(又は、全て)のタイル)を取得し得る。幾つかの実施形態では、車両2702はまた、第1のタイル及び/又は第2のタイルに隣接していない以前に取得されたタイルを削除(又は上書き)し得る。代替又は追加として、車両2702は、第2のタイルから所定の距離内にない1つ又は複数の以前に取得されたタイルを削除(又は上書き)し得る。代替又は追加として、車両2702は、第2のタイルから所定の分離度内にない1つ又は複数(又は、全て)の以前に取得されたタイルを削除(又は上書き)し得る。
図30は、1つ又は複数のタイルを取得するための例示的なプロセスを示す。図30に示すように、車両2702(及び/又はサーバ2701)は、車両2702の位置が時点1でタイル5にあると決定するように構成され得る。車両2702はまた、隣接するタイル1から4及び6から9を取得する(又はロードする)ように構成され得る。時点2で、車両2702(及び/又はサーバ2701)は、車両2702の位置がタイル5からタイル3に移動すると決定するように構成され得る。車両2702は、タイル3に隣接する新しいタイル10から14を取得する(又はロードする)ように構成され得る。車両2702はまた、タイル2、3、5、及び6を保持し、タイル1、4、及び7から9を削除するように構成され得る。従って、車両2702は、メモリ使用量及び/又は計算負荷を低減するために、一度にタイルのサブセット(例えば、9個のタイル)を取得(又はロード)し得る。幾つかの実施形態では、車両2702は、データをメモリにロードする前にタイルをデコードするように構成され得る。
代替又は追加として、車両2702は、タイル内に入っている車両の位置のタイルの部分の一部を決定し、その部分の一部に隣接するタイルをロードし得る。例として、図31Aに示すように、車両2702は、車両2702の位置がサブタイル(タイル5のドットのパターンを有するサブタイル)内にあると判断し、サブタイルに隣接するタイル(すなわち、タイル4、7、及び8)のマップデータを処理のためにメモリにロードし得る。別の例として、図31Bに示すように、車両2702は、車両2702の位置がタイル5の左上のサブタイル内にあると判断し得る。車両2702はまた、タイル5の左上のサブタイル(すなわち、タイル1、2、及び4)に隣接するタイルをロードし得る。従って、車両2702は、メモリ使用量及び/又は計算負荷を低減するために、一度にタイルのサブセット(例えば、4個のタイル)を取得(又はロード)し得る。別の例として、図31Cに示すように、車両2702は、車両2702の位置が右上のサブタイル内にあると判断し、サブタイルに隣接するタイル(すなわち、タイル2、3、及び6)のマップデータを処理のためにメモリにロードし得る。別の例として、図31Dに示すように、車両2702は、車両2702の位置が右下のサブタイル内にあると判断し、サブタイルに隣接するタイル(すなわち、タイル6、8、及び9)のマップデータを処理のためにメモリにロードし得る。幾つかの実施形態では、車両2702は、データをメモリにロードする前にタイルをデコードするように構成され得る。
図32は、開示される実施形態による、1つ又は複数のマップ区分を1つ又は複数の車両に提供するための例示的なプロセスを示すフローチャートである。プロセス3200のうちの1つ又は複数のステップは、車両(例えば、車両2702)、ホスト車両に関連付けられたデバイス(例えば、車両デバイス2703)、及び/又はサーバ(例えば、サーバ2701)によって実行され得る。以下に提供されるプロセス3200の説明は、例としてサーバ2701を使用するが、当業者であれば、プロセス3200のうちの1つ又は複数のステップが、車両(例えば、車両2702)及び車両デバイス(例えば、車両デバイス2703)によって実行され得ることを理解するであろう。例えば、車両2702は、ナビゲーション情報に基づいて潜在的な移動エンベロープを決定し得る。サーバ2701からマップデータを受信することに加えて、又はその代わりに、車両2702は、潜在的な移動エンベロープに関連するマップデータの一部をローカルストレージから取得し、取得したデータを処理のためにメモリにロードし得る。
ステップ3201において、車両からナビゲーション情報を受信し得る。例えば、サーバ2701は、例えば、ネットワーク2705を介して車両2702からナビゲーション情報を受信し得る。幾つかの実施形態では、車両から受信したナビゲーション情報は、車両の位置の指標、車両の速度の指標、及び車両の進行方向の指標を含み得る。例えば、車両2702は、例えば、GPSデバイス、速度センサ、加速度計、サスペンションセンサ、又は同様のもの、或いはそれらの組み合わせを含む1つ又は複数のセンサからデータを受信するように構成され得る。車両2702はまた、受信されるデータに基づいて、車両の位置、速度、及び/又は運転方向等のナビゲーション情報を決定するように構成し得る。車両2702はまた、例えば、ネットワーク2705を介してナビゲーション情報をサーバ2701に送信するように構成され得る。代替又は追加として、車両2702は、センサデータをサーバ2701に送信するように構成され得る。サーバ2701は、受信したセンサデータに基づいて、車両2702の位置、車両2702の速度、及び/又は車両2702の進行方向を含み得るナビゲーション情報を決定するように構成され得る。
幾つかの実施形態では、車両2702は、ナビゲーション情報(及び/又はセンサデータ)をサーバ2701に継続的に送信し得る。或いは、車両2702は、ナビゲーション情報(及び/又はセンサデータ)をサーバ2701に断続的に送信し得る。例えば、車両2702は、ナビゲーション情報(及び/又はセンサデータ)をある期間にわたって何度もサーバ2701に送信し得る。例として、車両2702は、1分間に1回、ナビゲーション情報(及び/又はセンサデータ)をサーバ2701に送信し得る。或いは、車両が、より信頼性があり、かつ/又はより高速なネットワークにアクセスできる場合(例えば、WiFi接続を介して、より強力な無線信号を有する等)、車両はナビゲーション情報を送信し得る。
ステップ3202において、受信したナビゲーション情報を分析し得、車両の潜在的な移動エンベロープを決定し得る。例えば、サーバ2701は、車両2702の位置、速度、及び/又は運転方向を分析し得、車両2702に対して決定されたエリアを含み得る潜在的な移動エンベロープを決定し得る。例として、図28Aに示すように、サーバ2701は、車両2702の位置を包含するエリアを決定し、決定されたエリアに基づいて、境界2811を有する潜在的な移動エンベロープを決定し得る。
幾つかの実施形態では、サーバ2701は、車両2702の位置から延在し、車両2702の位置を取り囲む潜在的な移動エンベロープを決定するように構成され得る。例えば、図28Aに示すように、サーバ2701は、車両2702の位置(又は車両2702の重心)を通過する線2802を決定し得る。サーバ2701はまた、車両2702の進行方向における潜在的な移動エンベロープの境界の側を決定し、進行方向と反対の方向における潜在的な移動エンベロープの境界の別の側を決定するように構成され得る。例として、サーバ2701は、車両2702の進行方向の潜在的な移動エンベロープの上方境界を決定し、車両2702の進行方向と反対の方向の潜在的な移動エンベロープの下方境界を決定し得る。幾つかの実施形態では、潜在的な移動エンベロープは、車両の進行方向と反対の方向よりも車両の進行方向に沿って更に延在し得る。例えば、図28Aに示すように、潜在的な移動エンベロープの上方境界は線2802(又は車両2702の位置からの第1の距離)から距離2803を有し得、潜在的な移動エンベロープの下方境界は線2802(又は車両2702の位置からの第2の距離)から距離2804を有する。距離2803は距離2804より大きくなり得る(及び/又は第1の距離は第2の距離より大きくなり得る)。幾つかの実施形態では、境界の重心の位置は、車両2702の進行方向に沿って車両2702の位置からオフセットされ得る。
代替又は追加として、車両2702の潜在的な移動エンベロープを決定する際に、サーバ2701は、ある期間(又は時間ウィンドウ)にわたる潜在的な移動距離を考慮に入れ得る。例えば、サーバ2701は、所定の時間量にわたる潜在的な移動距離を決定し、潜在的な移動距離を含む潜在的な移動エンベロープを決定し得る。幾つかの実施形態では、所定の時間量にわたる潜在的な移動距離は、車両2702の位置及び/又は車両2702の速度に基づいて決定され得る。幾つかの実施形態では、サーバ2701は、選択された、又は所定の時間ウィンドウに更に基づいて、潜在的な移動エンベロープを決定し得る。時間ウィンドウは、車両の速度の指標に基づいて選択又は決定し得る。所定の時間量(又は時間ウィンドウ)は、0.1秒から24時間の範囲であり得る。幾つかの実施形態では、所定の時間量(又は時間ウィンドウ)は、0.1秒から1秒、1秒から5秒、5秒から10秒、10秒から60秒、1分から5分、5分から10分、10分から60分、1時間から5時間、5時間から10時間、10時間から24時間の部分範囲に制限され得る。幾つかの実施形態では、所定の時間量(又は時間ウィンドウ)は、車両2702からサーバ2701へのナビゲーション情報の送信頻度に基づいて決定され得る。例えば、サーバ2701は、車両2702からのナビゲーション情報の2つの送信の間の間隔に基づいて、所定の時間量(又は時間ウィンドウ)を決定し得る。サーバ2701は、より長い送信間隔の潜在的な移動距離を決定するために、より長い期間を決定し得る。
幾つかの実施形態では、潜在的な移動エンベロープは境界を含み得る。潜在的な移動エンベロープの境界は、例えば、三角形の形状、四角形の形状、平行四辺形の形状、長方形の形状、正方形(又は実質的に正方形)の形状、台形の形状、ダイヤモンドの形状、六角形の形状、八角形の形状、円形(又は実質的に円形)の形状、楕円形の形状、卵形の形状、不規則な形状、又は同様のもの、或いはそれらの組み合わせを含む形状を有し得る。図28Aから図28Dは、開示される実施形態による、エリア2800内の車両の例示的な潜在的な移動エンベロープを示す。図28Aに示すように、サーバ2701は、車両2702の台形の形状を含み得る境界2811を有する潜在的な移動エンベロープを決定し得る。別の例として、図28Bに示すように、サーバ2701は、車両2702の楕円形の形状を含み得る境界2812を有する潜在的な移動エンベロープを決定し得る。別の例として、図28Cに示すように、サーバ2701は、車両2702の三角形の形状を含み得る境界2813を有する潜在的な移動エンベロープを決定し得る。別の例として、図28Dに示すように、サーバ2701は、車両2702の長方形の形状を含み得る境界2814を有する潜在的な移動エンベロープを決定し得る。
幾つかの実施形態では、車両2702(及び/又は車両デバイス2703)は、ナビゲーション情報に基づいて潜在的な移動エンベロープを決定し得る。
ステップ3203において、1つ又は複数のマップ区分を車両2702に送信し得る。幾つかの実施形態では、マップ区分は、車両2702の潜在的な移動エンベロープと少なくとも部分的に重複する地理的領域のマップ情報を含み得る。例えば、サーバ2701は、ネットワーク2705を介して、車両2702の潜在的な移動エンベロープと少なくとも部分的に重複する地理的領域のマップデータを含む1つ又は複数のマップ区分を送信し得る。
幾つかの実施形態では、1つ又は複数のマップ区分は、所定の寸法の領域を表す1つ又は複数のタイルを含む。例えば、図28Eに示すように、サーバ2701は、車両2702の潜在的な移動エンベロープ(すなわち、境界2821を有する潜在的な移動エンベロープ)と少なくとも部分的に重複する1つ又は複数のタイル2831を決定し、ネットワーク2705を介してタイル2831に関連するマップデータを車両2702に送信し得る。
幾つかの実施形態では、車両2702に送信されるタイルの寸法は変化し得る。例えば、図29A及び図29Bに示すように、エリア(又はマップ)を異なるレベルに分割し得、特定のレベルのタイルは特定の寸法を有し得る。幾つかの実施形態では、車両2702に送信されるタイルの所定の寸法は、0.25平方キロメートルから1平方キロメートル、1平方キロメートルから10平方キロメートル、10平方キロメートルから25平方キロメートル、25平方キロメートルから50平方キロメートル、及び50平方キロメートルから100平方キロメートルの部分範囲に制限され得る、0.25平方キロメートルから100平方キロメートルの範囲であり得る。幾つかの実施形態では、タイルの所定の寸法は、10平方キロメートルよりも小さい又はそれに等しくあり得る。或いは、タイルの所定の寸法は、1平方キロメートルよりも小さい又はそれに等しくあり得る。或いは、タイルの所定の寸法は、10平方キロメートルよりも小さい又はそれに等しくあり得る。幾つかの実施形態では、タイルは、長方形の形状、正方形の形状、六角形の形状、又は同様のもの、或いはそれらの組み合わせを有し得る。
幾つかの実施形態では、車両2702に送信されるマップ情報は、本開示の他の場所に記載されるように、1つ又は複数の道路区分に沿った目標軌道の多項式表現を含み得る。例えば、マップ情報は、図9A、図9B、及び図11Aに示す開示される実施形態による、道路区分の一部の多項式表現を含み得る。例えば、マップ情報は、1つ又は複数の道路区分に沿った車両の以前の横断の2つ以上の再構築される軌道に基づいて決定される目標軌道の多項式表現を含み得る。
幾つかの実施形態では、本開示の他の場所に記載されるように、車両2702は、1つ又は複数の道路区分を受信した後、1つ又は複数の道路区分に従ってナビゲートし得る。例えば、車両2702は、受信した1つ又は複数の道路区分に基づいて、1つ又は複数のナビゲーション動作(例えば、ターンを行う、ある位置で停止する等)を実行するように構成され得る。代替又は追加として、車両2702は、1つ又は複数の道路区分に沿った目標軌道の多項式表現に基づいて、1つ又は複数のナビゲーション動作を実行するように構成され得る。
幾つかの実施形態では、車両2702は、1つ又は複数の道路区分を受信し、1つ又は複数の道路区分をストレージデバイスに記憶し得る。車両2702はまた、1つ又は複数の道路区分に含まれる1つ又は複数のタイルを処理のためにメモリにロードし得る。例えば、図30に示すように、車両2702(及び/又はサーバ2701)は、車両2702の位置が時点1でタイル5にあると決定するように構成され得る。車両2702はまた、隣接するタイル1から4及び6から9を取得する(又はロードする)ように構成され得る。時点2で、車両2702(及び/又はサーバ2701)は、車両2702の位置がタイル5からタイル3に移動すると決定するように構成され得る。車両2702は、タイル3に隣接する新しいタイル10から14を取得する(又はロードする)ように構成され得る。車両2702はまた、タイル2、3、5、及び6を保持し、タイル1、4、及び7から9を削除するように構成され得る。
代替又は追加として、車両2702は、タイル内に入っている車両の位置のタイルの部分の一部を決定し、その部分の一部に隣接するタイルをロードし得る。例として、図31Aに示すように、車両2702は、車両2702の位置がサブタイル(タイル5のドットのパターンを有するサブタイル)内にあると判断し、サブタイルに隣接するタイル(すなわち、タイル4、7、及び8)のマップデータを処理のためにメモリにロードし得る。別の例として、図31Bに示すように、車両2702は、車両2702の位置がタイル5の左上のサブタイル内にあると判断し得る。車両2702はまた、タイル5の左上のサブタイル(すなわち、タイル1、2、及び4)に隣接するタイルをロードし得る。幾つかの実施形態では、車両2702は、データをメモリにロードする前にタイルをデコードするように構成され得る。
幾つかの実施形態では、ネットワーク2705を介してサーバ2701から1つ又は複数の道路区分を受信するのではなく、車両2702は、ローカルストレージから1つ又は複数の道路区分を取得し得る。例えば、車両2702は、ナビゲーション情報の分析に基づいて潜在的な移動エンベロープを決定し、車両2702の潜潜在的な移動エンベロープと少なくとも部分的に重複する地理的領域のマップ情報を含む1つ又は複数の道路区分を決定し得る。車両2702はまた、ローカルストレージから1つ又は複数の道路区分のデータを取得し得る。幾つかの実施形態では、車両2702は、処理のために1つ又は複数の道路区分のデータをそのメモリにロードし得る。
マップの生成及び洗練のための帯域幅管理
本開示の他の場所に記載されるように、車両によって収集された膨大な量のデータ(例えば、撮像された画像データ、マップデータ、GPSデータ、センサデータ等)を利用し解釈することは、多くの設計上の課題を提起する。例えば、車両によって収集されるデータをサーバにアップロードする必要があり得る。アップロードされる膨大な量のデータにより、車両の伝送帯域幅は容易に機能不全になり得るか、又は支障をきたし得る。更に、サーバが新しいデータを分析して、新しいデータに基づいてマップの関連部分を更新することも困難になり得る。更に、異なるタイプの特徴をマッピングするために、異なる密度レベルを使用し得る。例えば、意味的特徴の場合の1キロメートル当たり約20kBの密度レベルと比較して、非意味的特徴のマッピングには1キロメートル当たり330kBの密度レベルが必要になり得る。非意味的特徴情報を収集するために必要な計算リソース及び、各車両に課され得る特定のハードリミット帯域幅上限(例えば、年間100MB等)を考慮すると、非意味的特徴情報を常に収集するには、車両が利用可能なリソースが不十分になり得る。
システム及び方法は、走行データが収集されるか否かだけでなく、走行データがいつ、どのように収集されるかも制御することを可能にし得る。例えば、開示されるシステム及び方法は、ホスト車両が関心領域を含む区域に入っているか否かをサーバが判断することを可能にし得る。車両が区域に入ったことが確認されると、サーバは車両に高密度の非意味的特徴情報の収集を開始させることができる。車両が関心地点を通過したと判断された場合、サーバは車両に収集された非意味的特徴情報をアップロードさせることができる。車両が関心領域を通過していないと判断された場合、サーバは、収集された非意味的特徴情報をホスト車両に破棄させ得る。開示されるシステム及び方法はまた、サーバが、車両によって収集された非意味的特徴情報に基づいてマップを更新することを可能にし得る。
図33は、開示される実施形態による、1つ又は複数の道路区分に関連するナビゲーションマップを自動的に生成するための例示的なシステムを示す。図33に示すように、システム3300は、サーバ3301、1つ又は複数の車両3302、及び車両に関連付けられた1つ又は複数の車両デバイス3303、データベース3304、及びネットワーク3305を含み得る。例えば、車両3302及び/又は車両デバイス3303は、車両3302が関心のある地理的領域から所定の距離の外側を走行するときに、車両3302が横断する環境に関連付けられた第1のナビゲーション情報を第1の密度レベルで収集するように構成され得る。車両3302及び/又は車両デバイス3303はまた、車両3302が、関心のある地理的領域を移動するか、又は関心のある地理的領域から所定の距離内を走行するとき、第1の密度レベルより大きくなり得る第2の密度レベルで、車両3302が横断する環境に関連付けられた第2のナビゲーション情報を収集するように構成され得る。
サーバ3301は、車両3302が横断する環境に関連付けられた第1及び/又は第2のナビゲーション情報を受信するように構成され得る。データベース3304は、システム3300の構成要素(例えば、サーバ3301、車両3302、及び/又は車両デバイス3303)に関する情報を記憶するように構成され得る。ネットワーク3305は、システム3300の構成要素間の通信を容易にするように構成され得る。
サーバ3301は、車両3302が横断する環境に関連付けられた第1のナビゲーション情報の収集を引き起こすように構成され得る。第1のナビゲーション情報は、第1の密度レベルで収集され得る。サーバ3301はまた、車両3302に関連付けられたGPSセンサに関連付けられた出力に基づいて、車両3302の位置を決定するように構成され得る。サーバ3301は更に、車両3302が関心のある地理的領域(又はその境界)にいるか、又は関心のある地理的領域から所定の距離内にいるか否かを決定するように構成され得る。サーバ3301はまた、車両3302の位置が関心のある地理的領域にいるか、又は関心のある地理的領域から所定の距離内にいるという決定に基づいて、車両3302が横断する環境に関連付けられた第2のナビゲーション情報の収集を引き起こすように構成され得る。第2のナビゲーション情報は、第1の密度レベルよりも大きくなり得る第2の密度レベルで収集され得る。サーバ3301は更に、車両3302から収集された第1のナビゲーション情報又は収集された第2のナビゲーション情報(又はその一部)のうちの少なくとも1つを、車両3302にアップロードさせるように構成され得る。サーバ3301はまた、収集された第1のナビゲーション情報又は収集された第2のナビゲーション情報のアップロードされた少なくとも1つに基づいてナビゲーションマップを更新するように構成され得る。幾つかの実施形態では、サーバ3301は、本明細書で開示される機能を実行するクラウドサーバであり得る。「クラウドサーバ」という用語は、インターネット等のネットワークを介してサービスを提供するコンピュータプラットフォームを指す。この構成例では、サーバ3301は、個々のハードウェアに対応し得ない仮想マシンを使用し得る。例えば、計算能力及び/又は記憶能力は、データセンタ又は分散コンピューティング環境等のスケーラブルなリポジトリから望ましい計算/記憶能力の適切な部分を割り当てることによって実装され得る。一例では、サーバ3301は、カスタマイズされたハードワイヤードロジック、1つ又は複数の特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)、ファームウェア、及び/又はコンピュータシステムと組み合わせてサーバ3301を専用マシンにするプログラムロジックを使用して、本明細書に記載の方法を実装し得る。
車両3302及び/又は車両デバイス3303は、関心のある地理的領域(又はその境界)から所定の距離を超えて走行するときに、第1のナビゲーション情報を収集するように構成され得る。車両3302及び/又は車両デバイス3303はまた、関心のある地理的領域(又はその境界)で、又は関心のある地理的領域から所定の距離内で走行するときに、第2のナビゲーション情報を収集するように構成され得る。車両3302及び/又は車両デバイス3303は更に、収集された第1のナビゲーション情報及び収集された第2のナビゲーション情報(又はその一部)の少なくとも1つをアップロードするように構成され得る。幾つかの実施形態では、車両3302は、サーバ3301からマップ情報(例えば、更新されたマップ)を受信し得る。マップ情報は、例えば、道路、水の特徴、地理的特徴、ビジネス、関心点、レストラン、ガソリンスタンド、特定の道路の特徴(例えば、レーンマーク)、ホスト車両の目標軌道、又は同様のもの、或いはそれらの組み合わせの多項式表現を含む疎なデータモデルを含む、様々な項目の基準座標系での位置に関連するデータを含み得る。幾つかの実施形態では、車両3302及び/又は車両デバイス3303はまた、マップ情報に従ってルーティング経路を計画し、及び/又は車両3302をナビゲートするように構成され得る。例えば、車両3302及び/又は車両デバイス3303は、マップ情報に基づいて目的地までのルートを決定するように構成され得る。代替又は追加として、車両3302及び/又は車両デバイス3303は、受信したマップ情報に基づいて、少なくとも1つのナビゲーション動作(例えば、ターンを行う、ある位置で停止する等)を実行するように構成され得る。幾つかの実施形態では、車両3302は、上記で説明したシステム100と同様の構成を有する、及び/又は同様の機能を実行するデバイスを含み得る。代替又は追加として、車両デバイス3303は、上記で説明したシステム100と同様の構成を有し得、及び/又は同様の機能を実行し得る。
データベース3304は、システム3300の構成要素(例えば、サーバ3301、車両3302、及び/又は車両デバイス3303)のマップ情報を記憶するように構成されるマップデータベースを含み得る。幾つかの実施形態では、サーバ3301、車両3302、及び/又は車両デバイス3303は、データベース3304にアクセスし、ネットワーク3305を介してデータベース3304から記憶されたデータを取得し、及び/又はデータベース3304にデータをアップロードするように構成され得る。例えば、サーバ3301は、マップ情報に関するデータを、記憶するためにデータベース3304に送信し得る。車両3302及び/又は車両デバイス3303は、マップ情報及び/又はデータをデータベース3304からダウンロードし得る。幾つかの実施形態では、データベース3304は、道路、水の特徴、地理的特徴、ビジネス、関心点、レストラン、ガソリンスタンド、又は同様のもの、或いはそれらの組み合わせを含む、様々な項目の、基準座標系での位置に関連するデータを含み得る。幾つかの実施形態では、データベース3304は、本開示の他の場所に記載のマップデータベース160と同様のデータベースを含み得る。
ネットワーク3305は、通信を提供し、情報を交換し、及び/又はシステム3300の構成要素間の情報の交換を容易にする任意のタイプのネットワーク(インフラストラクチャを含む)であり得る。例えば、ネットワーク3305は、インターネット、ローカルエリアネットワーク、無線ネットワーク(例えば、Wi-Fi/302.11ネットワーク)、又は他の適切な接続を含むか、又はそれらの一部であり得る。他の実施形態では、システム3300のうちの1つ又は複数の構成要素は、例えば、電話ネットワーク、エクストラネット、イントラネット、インターネット、衛星通信、オフライン通信、無線通信、トランスポンダ通信、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、仮想プライベートネットワーク(VPN)、その他等の専用通信リンクを通じて直接通信し得る。
図34A、図34B、及び図34Cは、開示される実施形態による、ナビゲーション情報を収集するための例示的なプロセスを示す。図34Aに示されるように、車両3302は、領域3400を走行し得る。サーバ3301は、例えば、車両3302に関連付けられたGPSデバイスから受信したGPSデータに基づいて、車両3302の位置を決定するように構成され得る。サーバ3301はまた、車両3302が関心のある地理的領域3401から所定の距離dを超えていることを決定するように構成され得る。サーバ3301は更に、車両3302が横断する環境に関連付けられた第1のナビゲーション情報を第1の密度レベルで車両3302に収集させるように構成され得る。車両3302は、図34Bに示すように領域3400内を移動し得る。サーバ3301は、車両3302の位置に基づいて、車両3302が関心のある地理的領域3401から所定の距離d内にあると決定するように構成され得る。サーバ3301はまた、車両3302が横断する環境に関連付けられた第2のナビゲーション情報を、第1の密度レベルより大きくなり得る第2の密度レベルで、車両3302に収集させるように構成され得る。車両3302は、図34Cに示すように領域3400内を移動し得る。
密度レベルが高いほど、道路区分の単位長さ当たりの収集データ量が多いことを示し得る。例えば、第2の密度レベルで収集された第2のナビゲーション情報は、第1の密度レベルで収集された第1のナビゲーション情報よりも高密度の類似の物体のセット(例えば、より多くの陸標)を含み得る。代替又は追加として、第2の密度レベルで収集された第2のナビゲーション情報は、第1の密度レベルで収集された第1のナビゲーション情報よりも多くの収集データのカテゴリを含み得る。例えば、第2の密度レベルで収集された第2のナビゲーション情報は、第1のナビゲーション情報が有するよりも多くの非意味的特徴(例えば、記述子)を含み得、非意味的特徴は、意味的特徴と比較してより多くのデータを必要とし得る。幾つかの実施形態では、第2のナビゲーション情報は1つ又は複数の非意味的特徴を含み得るが、第1のナビゲーション情報は、いかなる非意味的特徴も含まれ得ない。意味的特徴及び非意味的特徴の例は、本開示で前述した。代替又は追加として、第2の密度レベルで収集された第2のナビゲーション情報は、第1の密度レベルで収集された第1のナビゲーション情報より多くの及び/又は第1のナビゲーション情報とは異なるセンサからのセンサデータを含み得る。例えば、第1のナビゲーション情報は、GPSセンサから受信したGPSデータを含み得る。第2のナビゲーション情報は、LIDARシステムから受信されたGPSデータ及びLIDARデータを含み得る。別の例として、第1のナビゲーション情報はGPSデータ及びLIDARデータを含み得、第2のナビゲーション情報はVIDARシステムから受信したGPSデータ及び画像(及び/又はVIDAR)データを含み得る。更に別の例として、第1のナビゲーション情報は、車両に設置されたカメラによって撮像された1つ又は複数の画像を含み得、第2のナビゲーション情報は、カメラによって撮像された1つ又は複数の画像、及びLIDARシステムから受信されたLIDARデータを含み得る。更に別の例として、第1のナビゲーション情報は、加速度計センサから受信したデータ及びLIDARシステムから受信したデータ、並びに加速度計センサから受信したデータ及びVIDARシステムから受信した画像(及び/又はVIDAR)データを含み得る。
幾つかの実施形態では、陸標は、物体の組み合わせが識別可能である限り、物体(又は陸標)の組み合わせを含み得る(物体の他の近くのセットと区別され得る)。例えば、組み合わせ陸標(意味的物体の組み合わせによって構成され得る陸標)を構成し得る陸標の組を含む同じタイプの陸標は、一定の距離(例えば、車両に関連付けられたGPSデバイスの最小解像度に対応する(又は等しい)距離)だけ互いに離れ得る。
サーバ3301は、車両3302が関心のある地理的領域3401内にあると決定するように構成され得る。車両3302は、関心のある地理的領域3401内を走行するとき、第2の密度レベルで第2のナビゲーション情報を収集し続けるように構成され得る。サーバ3301はまた、車両3302に、第1のナビゲーション情報及び第2のナビゲーション情報のうちの少なくとも1つをサーバ3301にアップロードさせるように構成され得る。
図35は、開示される実施形態による、1つ又は複数の道路区分に関連するナビゲーションマップを自動的に生成するための例示的なプロセスを示すフローチャートである。プロセス3500のうちの1つ又は複数のステップは、車両(例えば、車両3302)、ホスト車両に関連付けられたデバイス(例えば、車両デバイス3303)、及び/又はサーバ(例えば、サーバ3301)によって実行され得る。以下に提供されるプロセス3500の説明は、例としてサーバ3301を使用するが、当業者であれば、プロセス3500のうちの1つ又は複数のステップが、車両(例えば、車両3302)及び車両デバイス(例えば、車両デバイス2703)によって実行され得ることを理解するであろう。更に、本明細書に記載の様々なステップにおいて、車両は特定の情報及び/又はデータをサーバにアップロードし得、当業者であれば、代替又は追加として、車両がその情報及び/又はデータをネットワークを介してデータベース(例えば、データベース3304)にアップロードし得ることを理解するであろう。更に、当業者であれば、以下に提供されるプロセス3500の説明は例として車両3302を使用するが、プロセス3500は1つの車両に限定されないことを理解するであろう。例えば、サーバ3301は、複数の車両の位置を決定し、複数の車両に第1及び/又は第2のナビゲーション情報を収集させるように構成され得る。サーバ3301はまた、複数の車両に、収集された第1及び/又は第2のナビゲーション情報をアップロードさせ、受信した第1及び/又は第2のナビゲーション情報に基づいてナビゲーションマップを更新させるように構成され得る。
ステップ3501において、ホスト車両が横断する環境に関連付けられた第1のナビゲーション情報を収集し得る。例えば、サーバ3301は、車両3302が横断する環境に関連付けられた、第1の密度レベルでの車両3302による第1のナビゲーション情報の収集を引き起こすように構成され得る。例として、図34Aに示されるように、車両3302は、領域3400を走行し得る。サーバ3301は、第1のレベルでナビゲーション情報を収集する要求を車両3302に送信することによって、車両3302に車両3302の環境に関連付けられたナビゲーション情報を収集させるように構成され得る。
幾つかの実施形態では、車両3302は、GPSデバイス、速度センサ、加速度計、サスペンションセンサ、カメラ、及びLIDARデバイス、又は同様のもの、或いはそれらの組み合わせ等のうちの1つ又は複数のセンサから受信した信号に基づいて決定されたナビゲーション情報を収集し得る。例示的なナビゲーション情報は、車両の位置、車両の速度、車両の運転方向、1つ又は複数の道路区分、道路、1つ又は複数の道路の特徴、1つ又は複数のインフラストラクチャ物体、水の特徴、地理的特徴、関心点(例えば、オフィスビル、レストラン、ガソリンスタンド等)に関連付けられた陸標、1つ又は複数の道路区分に関連付けられた1つ又は複数の画像、1つ又は複数の道路区分に関連付けられたLIDARデータ、特定の道路の特徴(例えば、レーンマーク)、ホスト車両の目標軌道、又は同様のもの、或いはそれらの組み合わせの多項式表現を含む疎なデータモデルに関する情報及び/又はデータを含み得る。例えば、第1のナビゲーション情報は、1つ又は複数の道路区分に関連付けられた1つ又は複数の陸標に関連付けられた位置情報を含み得る。代替又は追加として、第1のナビゲーション情報は、1つ又は複数の道路区分に関連付けられた1つ又は複数の道路の特徴に関連付けられた位置情報を含み得る。
幾つかの実施形態では、第1のナビゲーション情報は、第1の密度レベルに関連付けられ得る。密度レベルは、収集するナビゲーション情報の特定のカテゴリ(例えば、収集された1つ又は複数のタイプのナビゲーション情報)、ナビゲーション情報の収集率(例えば、1秒当たり、1分当たり、1時間当たり等、単位時間当たりのデータポイント数)、ナビゲーション情報の精度レベル(例えば、データ解像度の高低)、又は同様のもの、或いはそれらの組み合わせを示し得る。幾つかの実施形態では、密度レベルは、データ密度(例えば、道路1キロメートル当たり10MB未満、道路1キロメートル当たり5MB未満、道路1キロメートル当たり2MB、道路1キロメートル当たり1MB未満、道路1キロメートル当たり500KB未満、道路1キロメートル当たり100KB未満、道路1キロメートル当たり10KB未満、又は道路1キロメートル当たり2KB未満)に関連付けられ得る。
幾つかの実施形態では、車両3302は、サーバ3301からの入力又は要求なしに、第1のナビゲーション情報を収集し得る。例えば、車両3302は、ナビゲーション情報が所定の密度レベル(例えば、第1の密度レベル)で収集される「既定」収集モードで動作し得る。或いは、車両3302は、車両3302の条件(例えば、速度、進行方向等)に関連付けられた設定に基づいて、所定の密度レベルでナビゲーション情報を収集し得る。更に別の代替として、車両3302は、サーバ3301から車両3302に送信された密度レベルに基づいてナビゲーション情報を収集し得る。
ステップ3502において、ホスト車両のうちの1つ又は複数のセンサに関連付けられた出力に基づいて、ホスト車両の位置を決定し得る。例えば、車両3302は、GPSセンサに関連付けられた出力を受信し、その出力をサーバ3301に送信するように構成され得る。サーバ3301は、GPSセンサに関連付けられた受信出力に基づいて車両3302の位置を決定するように構成され得る。代替又は追加として、車両3302は、GPSセンサに関連付けられた受信出力に基づいてその位置を決定し、車両3302の位置をサーバ3301に送信するように構成され得る。例示的なセンサは、速度センサ、加速度計、カメラ、LIDARデバイス、又は同様のもの、或いはそれらの組み合わせを含み得る。代替又は追加として、車両3302は、マップ情報を使用して位置を決定し得る。
幾つかの実施形態では、車両3302の位置は、所定の時間間隔で決定され得る。例えば、車両3302の位置は、毎秒又は毎分決定され得る。代替又は追加として、車両3302の位置は、車両3302の速度に基づいて決定され得る。例えば、車両3302がより高速で走行することが(車両3302及び/又はサーバ3301によって)決定される場合、車両3302の位置はより頻繁に決定され得る。代替又は追加として、車両3302の位置は、車両3302が存在する領域に基づいて決定され得る。例えば、車両3302が都市部にあると(車両3302及び/又はサーバ3301によって)決定された場合、車両3302の位置はより頻繁に(又は車両3302が地方にある場合はより少ない頻度で)決定され得る。
ステップ3503において、ホスト車両の位置が関心のある地理的領域にいるか、又は関心のある地理的領域から所定の距離内にいるか否かを決定し得る。例えば、図34A及び図34Bに示すように、サーバ3301は、関心のある地理的領域3401及び関心のある地理的領域3401(又はその境界)からの所定の距離dを決定するように構成され得る。サーバ3301はまた、車両3302が関心のある地理的領域3401にいるか、又は関心のある地理的領域(又はその境界)から所定の距離d内にいるか否かを決定するように構成され得る。図34Aに示すように、サーバ3301は、車両3302が関心のある地理的領域3401にいないか、又は関心のある地理的領域3401(又はその境界)から所定の距離d内にいないことを決定するように構成され得る。或いは、図34Bに示すように、サーバ3301は、車両3302が関心のある地理的領域3401にいるか、又は関心のある地理的領域3401(又はその境界)から所定の距離d内にいることを決定するように構成され得る。代替又は追加として、車両3302は、車両3302が関心のある地理的領域3401にいるか、又は関心のある地理的領域(又はその境界)から所定の距離d内にいるか否かを決定するように構成され得る。例えば、サーバ3301は、関心のある地理的領域3401、及び関心のある地理的領域3401(又はその境界)からの所定の距離dを車両3302に送信し得る。車両3302は、本開示の他の場所に基づいて記載されているように決定された車両3302の位置に基づいて、車両3302が関心のある地理的領域3401にいるか、又は地理的領域3401(又はその境界)から所定の距離d内にいるか否かを決定するように構成され得る。車両3302は、関心のある地理的領域3401にいる、又は関心のある地理的領域3401(又はその境界)から所定の距離d内(又は外側)にいるという決定の結果をサーバ3301に送信するように構成され得る。
幾つかの実施形態では、サーバ3301は、関心のある地理的領域の既存の情報に基づいて関心のある地理的領域を決定するように構成され得る。例えば、サーバ3301は、ある領域の既存のマップデータが不十分であり得る(例えば、その領域の道路区分に関連付けられた道路の特徴に関する特定の詳細を含まない)ことを決定するように構成され得る。例として、サーバ3301は、正確な位置合わせを必要とし得る特定の道路区分(例えば、長さ1km)を決定するように構成され得る。サーバ3301はまた、関心のある地理的領域(例えば、道路区分をカバーする正方形又は円形)を決定するように構成され得る。別の例として、サーバ3301は、領域のマップ情報を更新することを決定し得、その領域を関心のある地理的領域として指定し得る。
関心のある地理的領域は、マップ又は座標系の地理的領域であり得る。関心のある地理的領域は、道路区分、通り、交差点、高速道路、高速道路合流点、陸標、インフラストラクチャ物体、地理的特徴、関心点(ビジネス、レストラン、ガソリンスタンド等)、又は同様のもの、或いはそれらの組み合わせのうちの1つ又は複数を含み得る。関心のある地理的領域は、形状及び/又はサイズが変化し得る。関心のある地理的領域は、三角形の形状、四角形の形状、平行四辺形の形状、長方形の形状、正方形(又は実質的に正方形)の形状、台形の形状、ダイヤモンドの形状、六角形の形状、八角形の形状、円形(又は実質的に円形)の形状、楕円形の形状、卵形の形状、又は同様のもの、或いはそれらの組み合わせを含み得る。当業者であれば、関心のある地理的領域の形状が、本開示に記載された例示的な形状に限定されないことを理解するであろう。他の形状も可能である。例えば、関心のある地理的領域は、不規則な形状(例えば、国、州、郡、市、及び/又は道路等の管轄区域のうちの1つ又は複数の境界に基づいて決定される)及び/又は本明細書に記載の任意の形状の一部を含み得る。関心のある地理的領域のサイズは、1平方メートルから100平方キロメートルの範囲であり得る。幾つかの実施形態では、関心のある地理的領域のサイズは、1平方メートルから0.1平方キロメートル、0.1平方キロメートルから0.25平方キロメートル、0.25平方キロメートルから1平方キロメートル、1平方キロメートルから10平方キロメートル、及び10平方キロメートルから25平方キロメートル、25平方キロメートルから50平方キロメートル、及び50平方キロメートルから100平方キロメートルの部分範囲に制限され得る。
幾つかの実施形態では、所定の距離は、直線距離、ルート距離(例えば、ホスト車両が関心のある地理的領域まで走行する距離)、又は同様のもの、或いはそれらの組み合わせを含み得る。所定の距離は、1メートルから100キロメートルの範囲であり得る。幾つかの実施形態では、所定の距離は、1メートルから5メートル、5メートルから10メートル、10メートルから50メートル、50メートルから100メートル、100メートルから500メートル、500メートルから1000メートル、1キロメートルから5キロメートル、5キロメートルから10キロ、10キロメートルから50キロメートル、及び50キロメートルから100キロメートルの部分範囲に制限され得る。代替又は追加として、所定の距離は、街区数、高速道路の出口の数、又は同様のもの、或いはそれらの組み合わせで表した関心のある地理的領域(又はその境界)からの車両の分離に基づく距離指標を含み得る。例えば、所定の距離は、3つの街区を示す距離指標を含み得る。
幾つかの実施形態では、サーバ3301は、関心のある地理的領域に基づいて地理的領域の近似を決定するように構成され得る。例えば、サーバ3301は、関心のある地理的領域の境界に所定の距離を追加することによって関心のある地理的領域を拡張し、大まかな地理的領域が得られ得る。サーバ3301(及び/又は車両3302)はまた、車両3302の位置に基づいて、車両3302が大まかな地理的領域にいるか、又は大まかな地理的領域内にいるか否かを決定するように構成され得る。
幾つかの実施形態では、サーバ3301は、関心のある地理的領域及び/又は車両3302までの所定の距離に関する情報を送信し得る。例えば、サーバ3301は、関心のある地理的領域の境界及び/又は車両3302までの所定の距離を送信し得る。
ステップ3504において、ホスト車両の位置が関心のある地理的領域にいるか、又は関心のある地理的領域から所定の距離内にいるという決定に応答して、ホスト車両が横断する環境に関連付けられた第2のナビゲーション情報を収集し得る。例えば、サーバ3301は、車両3302の位置が関心のある地理的領域にいるか、又は関心のある地理的領域から所定の距離内にいるという決定に基づいて、車両3302が横断する環境に関連付けられた第2のナビゲーション情報の収集を引き起こすように構成され得る。
例えば、図34Bに示すように、サーバ3301は、車両3302が関心のある地理的領域3401内にいると決定するように構成され得る。サーバ3301はまた、車両3302に第2のナビゲーション情報を収集する命令を送信するように構成され得、車両3302は受信した命令に応答して第2のナビゲーション情報を収集し得る。
幾つかの実施形態では、第2のナビゲーション情報は、第1のナビゲーション情報よりも多くのカテゴリの情報を含み得る。例えば、第1のナビゲーション情報は、1つ又は複数の道路区分(すなわち、2つのカテゴリの情報)に関連付けられた陸標及び道路の特徴を含み得る。第2のナビゲーション情報は、1つ又は複数の道路区分に関連付けられた陸標及び道路の特徴だけでなく、1つ又は複数の道路区分に関連付けられた1つ又は複数のインフラストラクチャ物体、水の特徴、地理的特徴、及び/又は関心点も含み得る。
幾つかの実施形態では、第2のナビゲーション情報は、第1の密度レベルよりも高い第2の密度レベルに関連付けられ得る。例えば、第2の密度レベルは、第1の密度レベルよりも少なくとも2倍以上大きくなり得る。例として、第1のナビゲーション情報は、車両3302に関連付けられたLIDARデバイスによって第1の密度レベル(例えば、15メートルごとに300点)で測定された曇点データを含み得る。第2のナビゲーション情報は、第1の密度レベルよりも2倍以上大きい第2の密度レベル(例えば、15メートルごとに800点)でLIDARデバイスによって測定された曇点データを含み得る。別の例では、第2の密度レベルは、第1の密度レベルよりも少なくとも5倍以上大きくなり得る。別の例では、第2の密度レベルは、第1の密度レベルよりも少なくとも10倍以上大きくなり得る。
代替又は追加として、第2のナビゲーション情報は、第1のナビゲーション情報が収集される収集率よりも高い収集率で収集され得る。例として、第1のナビゲーション情報は、車両3302に搭載されたカメラによって第1の画像収集率で撮像された車両3302の環境の画像を含み得る。第2のナビゲーション情報は、第1の画像収集率よりも高い第2の画像収集率で車両3302に搭載されたカメラによって撮像された車両3302の環境の画像を含み得る。画像収集率は、車両3302が走行する時間及び/又は距離に基づく収集率を含み得る。例えば、第1の画像収集率は1秒当たり10フレーム(FPS)であり得、第2の画像収集率は30FPS又は60FPSであり得る。別の例として、第1の画像収集率は、車両3302が走行する1メートル当たり1フレームであり得、第2の画像収集率は、車両3302が走行する1メートル当たり5フレーム又は10フレームであり得る。代替又は追加として、第2のナビゲーション情報は、第1のナビゲーション情報に関連付けられた画像解像度よりも高い、車両3302に搭載されるカメラからの画像解像度に関連付けられる。例えば、第1のナビゲーション情報は、車両3302に搭載されたカメラによって1392×1024の第1の解像度で撮像された1つ又は複数の画像を含み得、第2のナビゲーション情報は、車両3302に搭載されたカメラによって1600×1200(又はそれ以上)の第2の解像度で撮像された1つ又は複数の画像を含み得る。
本開示の他の場所に記載されるように、例示的な第2のナビゲーション情報は、車両の位置、車両の速度、車両の運転方向、1つ又は複数の道路区分、道路、1つ又は複数の道路の特徴、1つ又は複数のインフラストラクチャ物体、水の特徴、地理的特徴、関心点(例えば、オフィスビル、レストラン、ガソリンスタンド等)に関連付けられた陸標、1つ又は複数の道路区分に関連付けられた1つ又は複数の画像、1つ又は複数の道路区分に関連付けられたLIDARデータ、特定の道路の特徴(例えば、レーンマーク)、ホスト車両の目標軌道、又は同様のもの、或いはそれらの組み合わせの多項式表現を含む疎なデータモデルに関する情報及び/又はデータを含み得る。例えば、第2のナビゲーション情報は、1つ又は複数の道路区分に関連付けられた1つ又は複数の陸標に関連付けられた位置情報を含み得る。代替又は追加として、第2のナビゲーション情報は、1つ又は複数の道路区分に関連付けられた1つ又は複数の道路の特徴に関連付けられた位置情報を含み得る。
幾つかの実施形態では、第1のナビゲーション情報及び/又は第2のナビゲーション情報は、ビデオ検出及び測距(VIDAR)データも含み得る。例えば、車両3302は、VIDAR技術を使用して、特定の時点での車両の環境の高密度点群を生成するように構成されるカメラのセットを含み得る。例として、車両3302(及び/又はサーバ3301)は、単眼特徴及び相関特徴を学習して、カメラのサブセット内の各ピクセルにおける深度を推測することによってその群を生成し得る。幾つかの実施形態では、第1のナビゲーション情報及び/又は第2のナビゲーション情報は、LIDAR及びVIDARデータの両方であり得る。幾つかの実施形態では、LIDAR及びVIDARデータはほぼ同時に収集され得る。
幾つかの実施形態では、第1のナビゲーション情報はLIDARデータを含み得、第2のナビゲーション情報は、LIDARデータよりも高い密度レベルを有し得るVIDARデータを含み得る。
幾つかの実施形態では、車両3302が関心のある地理的領域(又はその境界)にいるか、又は関心のある地理的領域から所定の距離内にいると決定された場合、車両3302は第2のナビゲーション情報を収集し続けるように構成され得る。例えば、サーバ3301(及び/又は車両3302)は、車両3302の位置を決定し、車両3302が、本開示の他の場所に記載されるように、関心のある地理的領域にいるか、又は関心のある地理的領域(又はその境界)から所定の距離内にいるか否かを決定するように構成され得る。サーバ3301は、第1のナビゲーション情報の収集に切り替える後続の命令が車両3302によって受信されない限り、第2のナビゲーション情報の収集を継続する命令を車両3302に送信し得る。幾つかの実施形態では、サーバ3301(及び/又は車両3302)は、車両3302が関心のある地理的領域3401にいるか、又は関心のある地理的領域3401から所定の距離内にいることが決定された後、車両3302が関心のある地理的領域3401から所定の距離を超えて走行するか否かを決定するように構成され得る。サーバ3301(及び/又は車両3302)はまた、車両3302を第1のナビゲーション情報の収集に戻らせるように構成され得る。
ステップ3505において、ホスト車両から収集された第1のナビゲーション情報又は収集された第2のナビゲーション情報のうちの少なくとも1つがアップロードされ得る。例えば、サーバ3301は、車両3302から収集された第1のナビゲーション情報又は収集された第2のナビゲーション情報(又はその一部)のうちの少なくとも1つを、車両3302にアップロードさせるように構成され得る。車両3302は、収集された第1のナビゲーション情報又は収集された第2のナビゲーション情報のうちの少なくとも1つを、車両3302に関連付けられた送受信機を介してアップロードし得る。幾つかの実施形態では、車両3302は、第1のナビゲーション情報及び/又は第2のナビゲーション情報(又は第1のナビゲーション情報の一部及び/又は第2のナビゲーション情報の一部)をサーバ3301に継続的に送信し得る。或いは、車両3302は、第1のナビゲーション情報及び/又は第2のナビゲーション情報(又は第1のナビゲーション情報の一部及び/又は第2のナビゲーション情報の一部)をサーバ3301に断続的に送信し得る。例えば、車両3302は、第1のナビゲーション情報及び/又は第2のナビゲーション情報(又は第1のナビゲーション情報の一部及び/又は第2のナビゲーション情報の一部)をある期間にわたって何度もサーバ3301に送信し得る。例として、車両3302は、第1のナビゲーション情報及び/又は第2のナビゲーション情報(又は第1のナビゲーション情報の一部及び/又は第2のナビゲーション情報の一部)を1分間に1回、サーバ3301に送信し得る。或いは、車両3302が、より信頼性があり、かつ/又はより高速なネットワークにアクセスできる場合(例えば、WiFi接続等を介して、より強力な無線信号を有する等)、車両は第1のナビゲーション情報及び/又は第2のナビゲーション情報(又は第1のナビゲーション情報の一部及び/又は第2のナビゲーション情報の一部)を送信し得る。幾つかの実施形態では、車両3302は、サーバ3301から受信した要求に応じて、第1のナビゲーション情報及び/又は第2のナビゲーション情報(又は第1のナビゲーション情報の一部及び/又は第2のナビゲーション情報の一部)を送信し得る。例えば、サーバ3301は、車両3302によって収集された第1のナビゲーション情報又は第2のナビゲーション情報のサブセットの送信を要求する要求を車両3302に送信し得る。車両3302は、受信した要求に基づいて、要求されたナビゲーション情報(例えば、第1のナビゲーション情報又は第2のナビゲーション情報のサブセット)を送信し得る。幾つかの実施形態では、要求は少なくとも1つのタイムスタンプを含み得る。
幾つかの実施形態では、車両3302は、第1及び第2のナビゲーション情報の両方をサーバ3301にアップロードするように構成され得、サーバ3301は、第1のナビゲーション情報及び第2のナビゲーション情報の両方を受信して記憶するように構成され得る。
幾つかの実施形態では、サーバ3301は、車両3302が関心のある地理的領域内を走行したか否かの決定に基づいて、収集された第2のナビゲーション情報(又はその一部)を車両3302にアップロードさせるように構成され得る。例えば、図34Cに示すように、サーバ3301は、車両3302が関心のある地理的領域3401内に走行したことを決定するように構成され得る。サーバ3301は、収集された第2のナビゲーション情報(又はその一部)を車両3302にサーバ3301へアップロードさせるように構成され得る。代替又は追加として、サーバ3301は、関心のある地理的領域3401に関連付けられた収集された第2のナビゲーション情報の一部を車両3302にサーバ3301へアップロードさせるように構成され得る。幾つかの実施形態では、サーバ3301はまた、関心のある地理的領域3401に関連付けられていない収集された第2のナビゲーション情報の一部を車両3302に破棄させるように構成され得る。
幾つかの実施形態では、サーバ3301は、車両3302が関心のある地理的領域内を走行しなかったと決定するように構成され得る。サーバ3301は更に、車両3302が関心のある地理的領域内を走行しなかった場合、車両3302に第2のナビゲーション情報の全部又は少なくとも一部をアップロードさせないようにするように構成され得る。代替又は追加として、サーバ3301は、車両3302が関心のある地理的領域内を走行しなかったという決定に基づいて、車両3302に第2のナビゲーション情報の全部又は少なくとも一部を破棄(及び/又は上書き)させる(又は、第2のナビゲーション情報の全部又は少なくとも一部を上書きの対象としてマークさせる)ように構成され得る。幾つかの実施形態では、サーバ3301は、車両3302が関心のある地理的領域3401に所定の距離内に接近し、次いで、関心のある地理的領域3401から少なくとも所定の距離を離れて遠くに移動したことを決定した後に、車両3302が関心のある地理的領域3401内を走行したか否かを決定するように構成され得る。
幾つかの実施形態では、車両3302は、サーバ3301からの入力又は命令なしに、第1のナビゲーション情報及び/又は第2のナビゲーション情報をアップロードし得る。例えば、車両2702は、第1及び/又は第2のナビゲーション情報(及び/又はセンサデータ)が収集されると、そのような情報をサーバ2701に送信し得る。或いは、車両2702は、トリガイベント時に、第1及び/又は第2のナビゲーション情報(及び/又はセンサデータ)をサーバ2701に送信し得る。例えば、車両3302は、最後の意味的物体が検出されてから所定の期間又は所定の距離が経過したと決定し得る。車両3302はまた、収集された第1及び/又は第2のナビゲーション情報(及び/又はセンサデータ)をサーバ2701にアップロードし得る。
ステップ3506において、ナビゲーションマップが更新される。例えば、サーバ3301は、収集された第1のナビゲーション情報又は収集された第2のナビゲーション情報のアップロードされた少なくとも1つに基づいてナビゲーションマップを更新するように構成され得る。例えば、サーバ3301は、車両3302によって収集された受信された第1及び/又は第2のナビゲーション情報に基づいて、関心のある地理的領域(及び/又は他の領域)に関連付けられたナビゲーションマップを更新するように構成され得る。サーバ3301はまた、更新されたナビゲーションマップをストレージ及び/又はデータベース(例えば、データベース3304)に記憶するように構成され得る。幾つかの実施形態では、サーバ3301は、更新されたナビゲーションマップを1つ又は複数の車両に送信し得る。例えば、サーバ3301は、例えば、ネットワーク3305を介して、更新されたナビゲーションマップを車両3302に送信し得る。代替又は追加として、サーバ3301は、更新されたナビゲーションマップをデータベース3304に記憶し得、1つ又は複数の車両(例えば、車両3302)は、データベース3304から更新されたナビゲーションマップを取得し得る。
幾つかの実施形態では、サーバ3301は、2つ以上の車両から受信した(第1及び/又は第2の)ナビゲーション情報に基づいてナビゲーションマップを更新し得る。例えば、サーバ3301は、同じ道路区分に関連付けられた2つ以上の車両から受信した第1及び/又は第2のナビゲーション情報を集約し得る。幾つかの実施形態では、車両が道路区分に沿った方向に走行するときに収集されるナビゲーション情報は、車両が同じ道路区分に沿っていても反対方向に走行するときに収集されるナビゲーション情報とは異なり得る。サーバ3301は、同じ運転方向(及び/又は同じ運転方向と反対の方向)の同じ道路区分に関連付けられた2つ以上の車両から受信した第1及び/又は第2のナビゲーション情報を集約し得る。例えば、サーバ3301は、ナビゲーション情報に基づいて決定された特徴点に基づいて、道路区分に沿って同じ方向に走行した2つ以上の車両から受信したナビゲーション情報を位置合わせさせ得る。サーバ3301はまた、集約された(第1及び/又は第2の)ナビゲーション情報に基づいてナビゲーションマップを更新し得る。
幾つかの実施形態では、サーバ3301は、関心のある地理的領域に関連付けられたナビゲーションマップの更新が完了した(又は少なくともある期間内に完了した)と決定するように構成され得る。サーバ3301は、関心のある地理的領域に関連付けられた第2のナビゲーション情報を収集しないように、1つ又は複数の車両に命令を送信するように構成され得る。
幾つかの実施形態では、サーバ3301は、サーバ3301が第1のナビゲーション情報を処理又は使用する場合と比較して、より多くのリソースを使用して第2のナビゲーション情報を処理又は使用し得る。
タイル接続性に基づくマップタイルの最適化
本開示に記載されるように、マッピングシステム(例えば、Road Experience Management(又はREM))マッピングシステム)は、複数の走行から収集されたクラウドソーシングによる情報を使用して、道路区分に関連付けられたマップを生成及び/又は洗練し得る。そのようなシステムでは、マップ(例えば、REMマップ)は、REMマップに関連付けられた車道のレーンに沿って走行する車両(例えば、ホスト又は目標/検出された車両)が利用可能な目標軌道(例えば、3次元スプライン)を含み得る。REMマップはまた、多様な検出可能な物体(例えば、道路標識、道路端部、レーンマーク、バス停、又は道路に関連付けられた任意の他の認識可能な特徴等)に対応し得る、マッピングされた陸標を含み得る。マッピングされた陸標は、マップ内で、陸標のうちの1つ又は複数に関連付けられた洗練された位置に関連付けられ得る。洗練された位置は、道路区分に沿った複数の個々の走行のそれぞれの間に決定されたクラウドソーシングによる位置情報に基づいて決定され得る。マップから検出された物体(例えば、陸標)とそれらの位置は、(例えば、REMマップからの目標軌道に対して車両がどこに位置するかを決定するのを支援することによって)自律車両又は部分自律車両をナビゲートする際に使用し得る。
クラウドソーシングによるREMマップを生成するために、道路区分に沿った複数の走行から走行情報を収集し得る。これは、例えば、道路区分又は他の領域を異なる時間に繰り返し横断する1台の車両から、及び/又は道路区分又は他の領域を横断する複数の異なる車両から、走行情報を収集することを含み得る。次いで、マッピングシステムは、収集された走行情報(例えば、車両が横断した実際の軌道、及び/又は1つ又は複数の物体検出、及び検出された物体の関連付けられた決定された位置)を位置合わせ及び集約して、クラウドソーシングによるREMマップを提供し得る。そのようなプロセスにより、走行データセット内の(例えば、特定の走行中の隠蔽等によって引き起こされる)穴を埋めることによって、物体の位置を洗練することによって、及び車両軌道を洗練することによって、マップの精度を高めることができる。
車両が地域をナビゲートするとき、車両のナビゲーションシステムは、マッピングシステム(例えば、REMマップを含む、例えば、マップ情報を記憶する1つ又は複数のサーバ)から道路区分のマップ情報を要求し得る。マッピングシステムは、道路区分又は道路区分の一部のためのマップ情報を含むマップセクション(又はタイル)を提供し得る。しかし、車両が走行を続けると、車両は、次の道路区分をナビゲートするために十分なマップ情報を手元に有するために、追加のマップセクション(例えば、タイル)を要求する必要があり得る。例えば、車両は、第1の道路区分から第2の道路区分にターンし得る。その結果、車両は、第2の道路区分に対して効果的にナビゲートするために、第2の道路区分のマップ情報を提供するマップセクション/タイルを必要とし得る。第2の道路区分に必要なマップセクション(例えば、タイル)を(遠隔サーバ又はローカルメモリストレージデバイスのいずれかから)取得する際に、少なくともいくらかの遅延が発生し得るため、車両が第2の道路区分にターンする前に、車両ナビゲーションシステムが、第2の道路区分に関連付けられたマップセクション/タイルが必要であり得ると決定することが有利であり得る。そのような決定に基づいて、車両ナビゲーションシステムは、車両が第2の道路区分にターンする前であっても、第2の道路区分を含むマップセクション(例えば、タイル)のダウンロード(又はアップロード)の要求を行い得る。一般に、特定の道路区分をナビゲートするために必要なマップセクション(例えば、タイル)に車両ナビゲーションシステムが確実にアクセスできるようにするには、車両が特定の道路区分をナビゲートする前に、そのようなマップセクション(例えば、タイル)が車両ナビゲーションシステムに提供されるべきである。従って、車両ナビゲーションシステムは、(例えば、現在の時間から所定の期間内の)将来のナビゲーションのためにどのマップセクション(例えば、タイル)が必要であり得るかを決定するように構成され得る。次いで、車両ナビゲーションシステムは、近い将来に最も必要になる可能性が高いと考えられるマップセクション(例えば、タイル)を取得し得る。更に、マッピングシステムは、将来のナビゲーションに必要だと予期されるマップセクション/タイルの効率的な配信を維持するために、定期的にマップセクション/タイルを提供すべきである。従って、車両が走行する可能性が高い道路のマップセクション/タイルを効率的且つ正確に提供するためのシステム及び方法が必要である。
場合によっては、例えば、メモリ、プロセッサ、及び/又は通信帯域幅の制約により、車両ナビゲーションシステムで利用可能なマップ区分の数(例えば、マップタイルの形態のマップ区分で、それぞれが所定の寸法の領域を表し得る)が制限され得る。例えば、場合によっては、メモリの制約により、データベースから車両ナビゲーションシステムに関連付けられたキャッシュ又はRAMにロードすむことができるタイルの数が制限され得る。他の場合では、通信帯域幅の制約により、特定の期間内に遠隔サーバから車両ナビゲーションシステムに転送できるタイルの数が制限され得る。従って、ナビゲーションシステムによってロードされた、及び/又はナビゲーションシステムによって要求されたマップタイルが、短期間のナビゲーション中にナビゲーションシステムによって使用される可能性が最も高いマップタイルに対応することを保証する必要がある。開示されるシステム及び方法は、車両内のうちの1つ又は複数のプロセッサとエンジン制御モジュール(ECU)との間で帯域幅使用を効率的に割り当てるために、車両によって要求される(例えば、車両に搭載された1つ又は複数のプロセッサによって要求される)1つ又は複数のタイルに優先度を付け得る。
幾つかの実施形態では、本出願の他の場所に記載されるように、マップ区分は、所定の寸法の領域を表す1つ又は複数のタイルを含み得る。タイル(すなわち、マップ区分)のサイズ及び/又は形状は異なり得る。幾つかの実施形態では、領域内のタイルの寸法は、0.25平方キロメートルから1平方キロメートル、1平方キロメートルから10平方キロメートル、及び10平方キロメートルから25平方キロメートル、25平方キロメートルから50平方キロメートル、50平方キロメートルから100平方キロメートルの部分範囲に制限され得る、0.25平方キロメートルから100平方キロメートルの範囲であり得る。幾つかの実施形態では、タイルの所定の寸法は、10平方キロメートルよりも小さい又はそれに等しくあり得る。或いは、タイルの所定の寸法は、1平方キロメートルよりも小さい又はそれに等しくあり得る。或いは、タイルの所定の寸法は、10平方キロメートルよりも小さい又はそれに等しくあり得る。代替又は追加として、タイルのサイズは、タイルがある領域のタイプに基づいて変化し得る。例えば、地方又は道路の少ない地域のタイルのサイズは、都市部又は道路の多い地域のタイルのサイズよりも大きくなり得る。幾つかの実施形態では、タイルのサイズは、車両の現在位置(又はデータが取得される場所)周辺の情報の密度、車両のための可能な経路、エリア内の可能なルートの数、エリア内のルートのタイプ(例えば、幹線、都市部、地方、未舗装等)及び一般的なナビゲーションパターン、及び/又は関連エリア内の傾向に基づいて決定され得る。例えば、典型的には、特定のエリア又は領域の幹線道路上に車両の大部分が残っている場合、脇道に沿った短い距離のマップ情報を取得し得る。典型的には、車両が実際に通行量の少ない脇道をナビゲートする場合、脇道の(例えば、脇道に沿ったより長い距離の)より多くのマップ情報が取得及び/又は車両に送信され得る。幾つかの実施形態では、タイルは、長方形の形状、正方形の形状、六角形の形状、又は同様のもの、或いはそれらの組み合わせを有し得る。当業者であれば、タイルの形状が、本開示に記載された形状に限定されないことを理解するであろう。例えば、タイルは、不規則な形状(例えば、管轄区域(州、郡、市、又は町)又は他の領域(例えば、通り、高速道路)の少なくとも境界に従って決定される)を含み得る。代替又は追加として、タイルは、本明細書で開示される任意の形状の一部を含み得る。
場合によっては、単純なタイル取得方式を使用し得る。例えば、ホスト車両が現在のタイル内に位置しているとナビゲーションシステムが決定した場合、システムは、車両が位置する現在のタイルを取り囲む全てのタイルを要求及び/又はロードし得る。しかし、そのようなシステムは、ある種の欠点に関連し得る。例えば、ホスト車両の進行方向は、周囲のタイルの一部のサブセットが、他の周囲のタイルよりも、ホスト車両が現在のタイルを離れるときに次に走行するタイルを含む可能性が高いことを示唆し得る。利用可能な走行方向に制限があり得る他の場合(例えば、アクセスが制限された高速道路、一方通行の道路等の場合)、ホスト車両は、現在のタイルから特定の周囲のタイルに横断することさえでき得ないか、又は、ホスト車両は、特定の周囲のタイルにアクセスする前に、1つ又は複数の他の周囲タイルに入る必要があり得る。そのような場合、周囲のタイルを全てロードするだけでは、帯域幅、メモリ、及び/又はプロセッサのリソースが、確率の低いタイルに対して消費されることになり得る。
開示されるシステム及び方法は、帯域幅、メモリ、及び/又はプロセッサのリソースがより優先度の高いタイル専用となり得るように、タイル要求に優先度を付ける機会を提供する。場合によっては、そのような優先度付けは、例えば、1)車両の位置及び/又は2)タイル間の接続性(例えば、道路区分が隣接するタイルを横断して互いに接続するか否か、及びどのように接続し得るか)に基づき得る。例えば、車両がより早く到達する可能性が高い道路区間のタイルは、取得の優先度が高くなり得、システムは、車両が走行する可能性が低い、又は現在位置から簡単に到達できない道路区間のタイルを要求するためにリソースを不必要に消費し得ない。更に、必要に応じてタイルを提供することにより、開示されるシステム及び方法は、コンピューティングリソース(例えば、帯域幅、メモリ等)を節約し得る。
幾つかの実施形態では、開示されるシステム及び方法は、ホスト車両が位置する場所のタイル、及びホスト車両が現在位置するタイルを取り囲むタイル(例えば、8つのタイル)を提供し得る。しかし、場合によっては、ホスト車両に搭載された車両ナビゲーションシステムが、ホスト車両が現在位置するタイルを取り囲んでいないタイルのグループを要求、ロード等をし得る。むしろ、ロード又は要求されたタイルは、ホスト車両が所定の期間内にこれらのタイルを横断する決定された可能性に基づいて識別されたタイルのセットに対応し得る。そのような優先度の決定は、ホスト車両の要求の変化に基づいて、例えば、要求されたタイルのセットを修正し得るように、任意の適切な周期で(例えば、1秒当たり複数回)行うことができる。上記で論じたように、ホスト車両がナビゲーションのための正確で有用なマップ情報を有するように、開示されるシステム及び方法は、ホスト車両が必要とする可能性が高いタイルを前もってホスト車両に提供し得る。更に、開示されるシステム及び方法は、定期的に新しいタイルを提供して、マップタイルの効率的な配信を維持し得る。
場合によっては、ホスト車両の現在位置に対するマップタイルの優先度は、マップタイル接続性に少なくとも部分的に基づいて決定され得る。マップタイル接続性は、2つのマップタイルが互いに隣接しているか否かを指し得る。しかし、より具体的には、マップタイル接続性は、隣接するマップタイルに含まれる道路区分、含まれる道路区分に沿った利用可能なレーンの進行方向、及びホスト車両が利用可能な道路区分に沿って1つのマップタイルから隣接するマップタイルに横断できるか否かに基づいて決定され得る。一例では、一方通行の道路は、ホスト車両が一方通行の道路区分に沿ってマップタイルAからマップタイルBに走行できるように、隣接する2つのマップタイル(例えば、マップタイルA及びマップタイルB)の境界をわたり得るが、同じ道路区分に沿ってマップタイルBからマップタイルAに走行することはできない。従って、これがマップタイルAとマップタイルBとの間の境界を横断する唯一の利用可能な道路区分である場合、マップタイルAは、マップタイルBとのマップタイル接続性を有していると示され得るが、マップタイルBは、マップタイルAとのマップタイル接続性を有していないと決定され得る。従って、ホスト車両がマップタイルA内に位置する場合、マップタイルBは、ロード及び/又はダウンロード等に対して高い優先度を有すると識別され得る。一方、ホスト車両がマップタイルBに位置する場合、マップタイルAは、マップタイルBに関連するマップタイル接続性を有していないため、ロード及び/又はダウンロードの優先度の低いマップタイルとして識別され得る。
同様の例には、アクセスが制限された高速道路も含まれ得る。例えば、双方向の高速道路は、マップタイルAとマップタイルBとの間の境界を横断し得る。しかし、高速道路へのアクセスが制限されているため、マップタイルAで高速道路に沿って走行しているホスト車両は、マップタイルBとのマップタイル接続性に基づいて、マップタイルBのロード及び/又はダウンロードの優先度が高いと決定され得る。しかし、ホスト車両がマップタイルBに入ると、高速道路に沿って同じ方向に走行し続けている間、マップタイルAは、ロード及び/又はダウンロードのための優先度の低いマップタイルとして識別され得る。マップタイルAはマップタイルBとマップの接続性を共有し得るが、マップタイルAから離れてマップタイルBを走行するホスト車両に対して、高速道路へのアクセスが制限されていることを考慮して、ホスト車両は、高速道路に沿って方向を変更し、高速道路に沿ってマップタイルBからマップタイルAに戻る前に、(他の幾つかのマップタイルに入る可能性がある)高速道路に沿って遠方まで走行する必要があり得る。その結果、マップタイルAは、この状況では低いマップタイル接続性値に関連付けられ得る。
図36は、開示される実施形態による、1つ又は複数のマップ区分を1つ又は複数の車両に提供するための例示的なシステム3600を示す。図36に示すように、システム3600は、サーバ3601、1つ又は複数の車両3602、及び車両に関連付けられた1つ又は複数の車両デバイス3603、データベース3604、及びネットワーク3605を含み得る。サーバ3601は、1つ又は複数の車両(及び/又は車両に関連付けられた1つ又は複数の車両デバイス)から受信したナビゲーション情報に基づいて、1つ又は複数のマップ区分を1つ又は複数の車両に提供するように構成され得る。例えば、車両3602及び/又は車両デバイス3603は、ナビゲーション情報を収集し、ナビゲーション情報をサーバ3601に送信するように構成され得る。サーバ3601は、車両3602及び/又は車両デバイス3603に、受信したナビゲーション情報及び/又は他の情報に基づく地理的領域のマップ情報を含む1つ又は複数のマップ区分を送信し得る。データベース3604は、システム3600の構成要素(例えば、サーバ3601、車両3602、及び/又は車両デバイス3603)に関する情報を記憶するように構成され得る。ネットワーク3605は、システム3600の構成要素間の通信を容易にするように構成され得る。
サーバ3601は、車両3602(及び/又は車両デバイス3603)からナビゲーション情報を受信するように構成され得る。幾つかの実施形態では、ナビゲーション情報は、車両3602の位置、車両3602の速度、及び/又は車両3602の進行方向の指標を含み得る。車両の位置の指標は、車両の実際の位置のセンチメートル以内(例えば、100センチメートル、50センチメートル、20センチメートル、10センチメートル、5センチメートル、又は1センチメートル)の精度を有し得る。例として、車両3602及び/又は車両デバイス3603は、1つ又は複数のセンサからデータを受信し、受信したデータに基づいて、車両の位置、速度、及び/又は運転方向等のナビゲーション情報を決定するように構成され得る。車両3602は、ナビゲーション情報をサーバ3601に送信するように構成され得る。
サーバ3601は、受信したナビゲーション情報を分析し、マップデータベース(例えば、ローカルデータベース及び/又はデータベース3604)から取得する複数の目標ナビゲーションマップ区分を決定するように構成され得る。マップデータベースは、それぞれが現実世界のエリアに対応する複数の記憶されたナビゲーションマップ区分を含み得る。幾つかの実施形態では、複数の目標ナビゲーションマップ区分の決定は、ナビゲーション情報(例えば、車両位置の指標)及び複数の記憶されたナビゲーションマップ区分に関連付けられたマップ区分接続性情報に基づき得る。例えば、マップ区分接続性情報は、隣接するナビゲーションマップ区分間(又は隣接するマップサブ区分間)で共有される1つ又は複数の境界を、少なくとも1つの道路区分に沿って走行する車両が横断できるか否かを示し得る。代替又は追加として、マップ接続性情報は、ナビゲーションマップ区分の境界を横断する道路区分に沿った利用可能な進行方向を説明し得る。例として、双方向の道路は双方向接続性を提供し得る。別の例として、一方通行の道路は一方向接続性のみを提供し得る。幾つかの実施形態では、マップ接続性情報は、複数のナビゲーションマップ区分のそれぞれに関連付けられた1つ又は複数の境界に関連付けられたブールビットとして記憶される。
サーバ3601は、タイルを作成するとき、又はマップタイルを更新するときに、各タイルのマップタイル接続性情報を計算し得る。接続性情報は、任意の適切な方法で各マップタイルに関連付けられ得る。場合によっては、例えば、特定のマップタイルに関連付けられた接続性情報を、マップタイルに関連付けられたフィールドに記憶し得る。フィールドは、マップタイルのヘッダであり得る。フィールドは、所定のサイズ(例えば、4バイト)を有し得る。マップタイルのヘッダに情報を有することで、車両に搭載されたプロセッサは、タイルヘッダを受信すると、タイルに関連付けられたマップデータを受信する必要なく、タイル取得優先度を計算することが可能になり得る。タイルヘッダ又はフィールドの分析により、特定のタイルが優先度の高いタイルであることが(例えば、ホスト車両の現在位置、進行方向、受信した1つ又は複数のマップタイルヘッダによって示されるマップタイル接続性、タイトルフィールド等に基づいて)示された場合、マップタイルペイロードをロード及び/又はダウンロードし得る。そのような技術により、マップタイルの優先度等を決定するために完全なタイルをデコードする必要性を回避し得る。
1つの実施形態では、各タイルの接続性情報は、所定のビット数(例えば、各タイルの区画当たり8ブールビット)を含み得る。各ビットは、マップタイルの特定の区画からそれを取り囲む他の8つのタイルの区画のいずれかに道路区分を介して接続性があるか否かを示し得る。合計で、各タイルには4バイトの接続性情報が含まれ得る(例えば、タイルの区画当たり8ビット、周囲の隣接する区画当たりのビット)。区画の分析により、現在の区画と比較して、車両が所定の期間内に到達する可能性のある他のマップタイルの区画を決定することにより、システムがタイルの優先度を決定することが可能になり得る。更に、マップタイルにまたがる区画の移動(例えば、接続)の数を決定すると、道路の接続性が考慮に入れられ得、所定の方式に従ってタイルをダウンロードする順序をシステムが決定することが可能になり得る。
幾つかの実施形態では、サーバ3601は、タイルフィールド又はタイルヘッダ情報を車両3602に送信し得る。車両3602は(例えば、その車両搭載ナビゲーションシステムを介して)タイルフィールド又はタイルヘッダ情報を使用して、マップタイルの優先度を決定し、どのタイルを要求し、どの順序でマップタイルをロード/ダウンロードすべきかを決定し得る。車両ナビゲーションシステムは、車両がマップタイルを通って(例えば、マップタイルの区画を通って)移動するときに、マップタイル要求の優先度を付け直し得る。例えば、所定の間隔で(例えば、場合によっては1秒当たり9回)、車両ナビゲーションシステムは、ロード及び/又はダウンロードのために要求される(又はロード及び/又はダウンロードのための待ち行列内の)タイルの優先度が変化したか否かを計算し得る。優先度が変更された場合、車両ナビゲーションシステムに関連付けられた1つ又は複数のプロセッサは、ロード/ダウンロード要求を変更(例えば、マップタイルのロード/ダウンロードの順序を変更する、等)し得、ロード/ダウンロード要求をキャンセル(例えば、以前に要求された1つ又は複数のタイルに対して)し得、及び/又は、新しいダウンロード要求を開始(例えば、ロード及び/又はダウンロードのために以前に要求されなかったタイルを含むために)し得る。ダウンロード要求をキャンセルする判断は、マップタイルのサイズ及びダウンロード時間に基づくこともあり得る。
幾つかの実施形態では、サーバ3601は更に、マップデータベースからの複数の目標ナビゲーションマップ区分のダウンロードを開始するように構成され得る。サーバ3601はまた、目標ナビゲーションマップ区分を車両3602に送信するように構成され得る。車両3602は、車両3602を、目標ナビゲーションマップ区分のうちの1つ又は複数に含まれる少なくとも1つの目標軌道に沿ってナビゲートさせるように構成され得る。
サーバ3601は、記憶されたマップ内のマップタイル間の接続性情報を含むように更新/維持されるデータベース(例えば、ロードブック)にマップ情報を記憶し得る。場合によっては、接続性情報がタイル全体に関連し得る。他の場合では、接続性は、マップタイルのサブ部分(例えば、マップタイルの区画)に関連し得る。タイル及び/又はマップタイルのサブ部分に関する接続性情報は、マップタイルに関連付けられたメタデータに(例えば、タイルに関連付けられたヘッダ又はフィールド内に)記憶され得る。
幾つかの実施形態では、上記で説明したマップデータベースから取得する複数の目標ナビゲーションマップ区分のサーバ3601による決定の代替又は追加として、車両3602は、マップデータベースから取得する目標ナビゲーションマップ区分を決定し得る。例えば、車両3602は、例えば、車両3602に搭載された1つ又は複数のセンサからの出力から、及び/又はそれに基づいて、車両3602のナビゲーション情報(例えば、車両位置の指標)を受信し得る。車両3602は、ナビゲーション情報及び/又は他の情報(例えば、マップ区分接続性)に基づいてマップデータベースから取得する複数の目標ナビゲーションマップ区分を決定するように構成され得る。車両3602はまた、例えば、サーバ3601及び/又はデータベース3640から、決定された目標ナビゲーションマップ区分のダウンロードを開始するように構成され得る。例えば、車両3602は、ネットワーク3605を介して、目標ナビゲーションマップ区分をサーバ3601及び/又はデータベース3640にダウンロードするための要求を送信し得る。サーバ3601及び/又はデータベース3640は、要求された目標ナビゲーションマップ区分を車両3602に送信し得る。車両3602は更に、マップデータベースからダウンロードされた複数の目標ナビゲーションマップ区分のうちの1つ又は複数に含まれる少なくとも1つの目標軌道に沿って車両3602をナビゲートさせるように構成され得る。
幾つかの実施形態では、車両3602は、上記で説明したシステム100と同様の構成を有する、及び/又は同様の機能を実行するデバイスを含み得る。代替又は追加として、車両デバイス3603は、上記で説明したシステム100と同様の構成を有し得、及び/又は同様の機能を実行し得る。
データベース3604は、システム3600の構成要素(例えば、サーバ3601、車両3602、及び/又は車両デバイス3603)に関するマップデータを記憶するように構成されるマップデータベースを含み得る。幾つかの実施形態では、サーバ3601、車両3602、及び/又は車両デバイス3603は、データベース3604にアクセスし、ネットワーク3605を介してデータベース3604から記憶されたデータを取得し、及び/又はデータベース3604にデータをアップロードするように構成され得る。例えば、サーバ3601は、マップ情報に関するデータを、記憶するためにデータベース3604に送信し得る。車両3602及び/又は車両デバイス3603は、マップ情報及び/又はデータをデータベース3604からダウンロードし得る。幾つかの実施形態では、データベース3604は、道路、水の特徴、地理的特徴、ビジネス、関心点、レストラン、ガソリンスタンド、又は同様のもの、或いはそれらの組み合わせを含む、様々な項目の、基準座標系での位置に関連するデータを含み得る。幾つかの実施形態では、データベース3604は、本開示の他の場所に記載のマップデータベース160と同様のデータベースを含み得る。
ネットワーク3605は、通信を提供し、情報を交換し、及び/又はシステム3600及び/又は他のシステムの構成要素間の情報の交換を容易にする任意のタイプのネットワーク(インフラストラクチャを含む)であり得る。例えば、ネットワーク3605は、インターネット、ローカルエリアネットワーク、無線ネットワーク(例えば、Wi-Fi/302.11ネットワーク)、又は他の適切な接続を含むか、又はそれらの一部であり得る。他の実施形態では、システム3600のうちの1つ又は複数の構成要素は、例えば、電話ネットワーク、エクストラネット、イントラネット、インターネット、衛星通信、オフライン通信、無線通信、トランスポンダ通信、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、仮想プライベートネットワーク(VPN)、その他等の専用通信リンクを通じて直接通信し得る。
論じたように、マップタイル及び/又はマップタイルのサブ部分間の接続性は、双方向でなくてもよく、一方向(例えば、一方通行の道路等)であってもよい。論じたように、タイルの優先度は、走行可能な経路(例えば、現在位置から車両が到達可能な道路)に基づき得る。更に、幾つかの実施形態では、システム3600(又はそのうちの1つ又は複数の構成要素)は、進行方向(又は速度)又は次のタイル(接続性が位置に基づく場合)への車両の近接性等の追加の情報を考慮に入れ得る。
図37は、例示的なマップタイル及びタイル区分の概略図である。図37に示す矢印は、隣接するマップタイルの区画(マップ区分のサブ区分であり得る)間の接続性を示す。論じたように、システム3600(又はそのうちの1つ又は複数の構成要素)によって使用される接続性の決定は、道路の進行方向、アクセス性等を考慮に入れ得る。例えば、区画Aが区画Bに接続され得るが、区画Bが区画Aに接続され得ないような一方通行の道路があり得る。図37では、矢印はタイル接続メタデータを表し、どのマップタイルの区画が物理的な道路によって接続されているか、及び特定のマップタイルの区画に位置するホスト車両が利用可能な道路に沿って隣接するマップタイルの区画を横断できるか否かを指定し得る。矢印の方向は、接続性の方向を示す。例えば、マップタイル1では、左上及び左下のマップタイルの区画は、これらのマップタイルの区画のいずれかに位置するホスト車両が、少なくとも1つの物理的な道路区分を介してこれらのマップタイルの区画の他方に走行できることを示す双方向接続性を有する。一方、マップタイル1の右上のマップタイルの区画と右下のマップタイルの区画との間に接続性はない。マップタイルの区画間の一方向接続性の例は、マップタイル12とマップタイル13との間、具体的には、マップタイル12の右下のマップタイルの区画とマップタイル13の左下のマップタイルの区画との間に示される。
システム3600(又はそのうちの1つ又は複数の構成要素)は、車両3602の位置タイルの接続性情報を使用して、次に要求される(及び/又はダウンロードされる)タイルの優先度を設定し得る。図38は、例示的なマップタイル及びタイル区分の概略図である。図38に示すように、車両3602はタイル#10の北東区画に位置し、北西方向に走行し得、車両が現在位置するマップタイルの区画に直接接続されているタイルの区画が含まれているため、取得される第1の優先度のタイルはタイル#5であり得る。タイル#6は、車両の現在の進行方向に沿って遭遇する次のタイルであり、タイル#5との接続性を有しているため、取得の次の優先度となり得る。更に、タイル#6は、タイル#5以外の他のタイルよりも車両の現在位置に近い。タイル#9は、車両3602が走行している道路が、現在のマップタイルの区画からタイル#9の右下のマップタイルの区画までのマップタイルの区画にまたがる双方向接続性を提供するため、取得の次の優先度であり得る。更に、タイル#9は、タイル#5及びタイル#6の次に車両3602の現在位置に近いタイルを表し得る。マップタイルのロード及び/又はダウンロードの優先度は、車両3602が道路区分に沿って走行するときに定期的に更新され得、本明細書で説明する要因(例えば、マップタイル接続性、マップタイルのサブ部分の接続性、現在の進行方向、現在の速度、現在位置から1つ又は複数のマップタイルの境界位置までの距離等)のいずれかを考慮に入れ得る。例えば、タイル#4は、マップタイル#1、タイル#4、タイル#5、及びタイル#9に関連付けられている接続性情報が、これらの隣接するタイルには、マップタイル#1、タイル#4、タイル#5、及びタイル#9のグループの外側のうちの1つ又は複数のマップタイルに最初にナビゲートせずに、車両がその現在位置からマップタイル#4内の位置を走行するための経路を提供するマップタイル接続性がないことを示しているため、タイル#1に近いにもかかわらず、優先度が低くなり得る。例えば、以下に示す例に基づいて、ホスト車両がマップタイル#4で表される物理的な場所をナビゲートするには、ホスト車両は、最初にタイル#1からタイル#9を走行し、次いで、タイル#14、タイル#13、タイル#8、及びタイル#3を走行してから、マップタイル#4で表される物理的な場所にアクセスすることが可能である必要があり得る。接続性データに基づいてナビゲートする経路がタイルにない場合、システム3600(又はそのうちの1つ又は複数の構成要素)は、そのタイルを要求しないことを選択し得る。
図39は、開示される実施形態による、例示的な車両3620のブロック図である。図39に示すように、車両3620は、少なくとも1つのプロセッサ(例えば、プロセッサ3910)、メモリ3920、少なくとも1つのストレージデバイス(例えば、ストレージデバイス3930)、通信ポート3940、1つ又は複数のセンサ3950、LIDARシステム3960、及びナビゲーションシステム3970を含み得る。
プロセッサ3910は、本開示に記載の車両3620のうちの1つ又は複数の機能を実行するように構成され得る。プロセッサ3910は、マイクロプロセッサ、プリプロセッサ(画像プリプロセッサ等)、グラフィックスプロセッシングユニット(GPU)、中央演算処理装置(CPU)、サポート回路、デジタル信号プロセッサ、集積回路、メモリ、或いは、アプリケーションの実行又はコンピューティングタスクの実行に適した任意の他のタイプのデバイスを含み得る。幾つかの実施形態では、プロセッサ3910は、任意のタイプのシングルコア又はマルチコアプロセッサ、モバイルデバイスマイクロコントローラ、中央演算処理装置等を含み得る。例えば、Intel(登録商標)、AMD(登録商標)等の製造業者から入手可能なプロセッサ、又はNVIDIA(登録商標)、ATI(登録商標)等の製造業者から入手可能なGPUを含め、様々な処理デバイスが使用し得、様々なアーキテクチャ(例えば、x86プロセッサ、ARM(登録商標)等)を含み得る。本明細書で開示される処理デバイスのいずれも特定の機能を実行するように構成することができる。記載のプロセッサ又は他のコントローラもしくはマイクロプロセッサのいずれか等の処理デバイスを、特定の機能を実行するように構成することは、コンピュータ実行可能命令をプログラムし、処理デバイスの動作中に実行するためにそれらの命令を処理デバイスに提供することを含み得る。幾つかの実施形態では、処理デバイスを構成することは、処理デバイスにアーキテクチャ的命令を直接プログラムすることを含み得る。例えば、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等の処理デバイス、及び同様のものは、例えば、1つ又は複数のハードウェア記述言語(HDL)を使用して構成され得る。
幾つかの実施形態では、プロセッサ3910は、回路3911及びメモリ3912を含み得る。メモリ3912は、回路3911によって実行されると、プロセッサ3910に、本明細書に記載のプロセッサ3910の機能を実行させ得る命令を記憶し得る。回路3911は、本明細書に記載の例の任意のうちの1つ又は複数を含み得る。
車両3620は、車両3602の様々な構成要素のための命令を記憶し得るメモリ3920を含み得る。例えば、メモリ3920は、プロセッサ3910によって実行されると、プロセッサ3910に本明細書に記載のうちの1つ又は複数の機能を実行させるように構成され得る命令を記憶し得る。メモリ3920は、任意の数のランダムアクセスメモリ、読み取り-専用メモリ、フラッシュメモリ、ディスクドライブ、光学記憶装置、テープ記憶装置、リムーバブル記憶装置、及び他のタイプの記憶装置を含み得る。一例では、メモリ3920は、プロセッサ3910とは別個であり得る。別の例では、メモリ3920は、プロセッサ3910に統合され得る。幾つかの実施形態では、メモリ3920は、1つ又は複数のコンピューティングタスクを実行するためのソフトウェア、並びにニューラルネットワーク又はディープニューラルネットワーク等のトレーニングされたシステムを含み得る。
ストレージデバイス3930は、車両3620のうちの1つ又は複数の構成要素に関する様々なデータ及び情報を記憶するように構成され得る。ストレージデバイス3930は、1つ又は複数のハードドライブ、テープ、1つ又は複数のソリッドステートドライブ、データの書き込み及び読み取りに適した任意のデバイス、又は同様のもの、或いは、それらの組み合わせを含み得る。ストレージデバイス3930は、プロセッサ3910によってアクセスされ得る、例えば、1つ又は複数のマップ区分のデータを含むマップデータを記憶し得る。幾つかの実施形態では、ストレージデバイス3930はマップデータベースを記憶し得る。プロセッサ3910は、マップデータベースから1つ又は複数の目標マップ区分のデータを取得し得る。
通信ポート3940は、ネットワーク3630を介して、車両3620とシステム3600のうちの1つ又は複数の構成要素との間のデータ通信を容易にするように構成され得る。例えば、通信ポート3940は、インターネット、イントラネット、WAN(ワイドエリアネットワーク)、MAN(メトロポリタンエリアネットワーク)、IEEE802.11a/b/g/n規格に準拠した無線ネットワーク、専用回線、又は同様のものを含む1つ又は複数のパブリック又はプライベートネットワークを介して、サーバ3610からデータを受信し、サーバ3610にデータを送信するように構成され得る。
センサ3950は、車両3620及び/又は車両3620の環境に関する情報を収集するように構成され得る。センサ3950は、画像センサ(例えば、カメラ)、測位デバイス(例えば、全地球測位システム(GPS)デバイス)、加速度計、ジャイロセンサ、速度計、又は同様のもの、或いはそれらの組み合わせのうちの1つ又は複数を含み得る。例えば、車両3620は、物体(又は少なくともその一部)の表現を含み得る、その環境のうちの1つ又は複数の画像を撮像するように構成される画像センサ(例えば、カメラ)を含み得る。別の例として、車両3620は、ある期間にわたって車両3620の位置に関連付けられた位置データを収集するように構成されるGPSデバイスを含み得る。
LIDARシステム3960は、1つ又は複数のLIDARユニットを含み得る。幾つかの実施形態では、1つ又は複数のLIDARユニットを車両3620の屋根の上に位置決めし得る。そのようなユニットは、車両3620の周囲の360度の視野内で、又は360度の視野の任意のサブ区分(例えば、それぞれが360度未満を表す1つ又は複数のFOV)から、LIDAR反射情報を収集するように構成された回転ユニットを含み得る。幾つかの実施形態では、LIDARユニットは、車両3620の前方位置(例えば、ヘッドライト付近、フロントグリル内、フォグランプ近く、前方バンパー内、又は任意の他の適切な位置)に位置決めされ得る。場合によっては、車両3620の前方部分に設置された1つ又は複数のLIDARユニットが、車両3620の前方環境の視野から反射情報を収集し得る。LIDARシステム3960によって収集されるデータは、プロセッサ3910に提供され得る。代替又は追加として、データは、ネットワーク3630を介してサーバ3610及び/又はデータベース3640に送信され得る。
任意の適切なタイプのLIDARユニットを車両3620に含め得る。場合によっては、LIDARシステム3960は、LIDAR視野(FOV)全体が単一のレーザパルスで照射される1つ又は複数のフラッシュLIDARユニット(例えば、3DフラッシュLIDAR)及び、返された光強度及び飛行時間/深度情報を記録するピクセルの行及び列を含むセンサを含み得る。そのようなフラッシュシステムは、シーンを照射し、LIDARの「画像」を1秒当たり複数回収集し得る。走査LIDARユニットを使用することもできる。そのような走査LIDARユニットは、特定のFOVにわたってレーザビームを分散させるためのうちの1つ又は複数の技術に依存し得る。場合によっては、走査LIDARユニットは、FOV内の物体に向けてレーザビームを偏向及び誘導する走査ミラーを含み得る。走査ミラーは、所定のFOVにレーザを誘導するために、360度全方向に回転し得るか、又は単軸又は360度未満の多軸に沿って回転し得る。場合によっては、LIDARユニットは1水平ラインを走査し得る。他の場合では、LIDARユニットはFOV内の複数の水平ラインを走査し、特定のFOVを1秒当たり複数回効果的にラスタ化し得る。
LIDARシステム3960のLIDARユニットは、任意の適切なレーザ光源を含み得る。幾つかの実施形態では、LIDARユニットは、連続レーザを使用し得る。他の場合では、LIDARユニットはパルスレーザ発光に依存し得る。更に、任意の適切なレーザ波長を使用し得る。場合によっては、約600nmから約1000nmの間の波長を使用し得る。
LIDARシステム3960のLIDARユニットはまた、任意の適切なタイプのセンサを含み、任意の適切なタイプの出力を提供し得る。場合によっては、LIDARユニットのセンサは、1つ又は複数のフォトダイオード又は光電子増倍管等の固体光検出器を含み得る。センサは、任意の数のピクセルを含む1つ又は複数のCMOS又はCCDデバイスも含み得る。これらのセンサは、LIDAR FOV内のシーンから反射されたレーザ光に敏感であり得る。センサは、LIDARユニットからの様々なタイプの出力を可能にし得る。場合によっては、LIDARユニットは、生の光強度値と、各センサ又は特定のセンサの各ピクセル又は従属構成要素で収集された反射レーザ光を表す飛行時間情報を出力し得る。追加又は代替として、LIDARユニットは、収集された各点に対する光強度及び深度/距離情報を含み得る点群(例えば、3D点群)を出力し得る。LIDARユニットはまた、光の反射振幅及び視野内の点までの距離を表す様々なタイプの深度マップを出力し得る。LIDARユニットは、LIDARの光源からの光が最初にFOVに向かって投射された時間を記録し、入射レーザ光がLIDARユニット内のセンサによって受信された時間を記録することにより、FOV内の特定の点に対する深度又は距離の情報を提供し得る。時間差は飛行時間を表し得、入射レーザ光がレーザ光源から反射物体まで進み、LIDARユニットに戻る往復距離に直接関係し得る。個々のレーザスポット又はLIDAR FOVの小さな区分に関連付けられた飛行時間情報を監視することで、FOV内の複数の点の正確な距離情報(例えば、FOV内の物体の微少な特徴へのマッピング)が提供され得る。場合によっては、LIDARユニットは、1つ又は複数のレーザ反射を、レーザ反射が取得された物体のタイプと関連付ける分類情報等、より複雑な情報を出力し得る。
ナビゲーションシステム3970は、車両3620のドライバーが車両3620を操作することを支援するように構成され得る。代替又は追加として、ナビゲーションシステム3970は、本開示の他の場所に記載されるように、車両3620の動きを制御するように構成される自律車両ナビゲーションシステムを含み得る。例えば、ナビゲーションシステム3980は、プロセッサ3910から受信した命令に基づいて車両3602を制御するように構成され得る。例えば、プロセッサ3910は、ナビゲーションシステム3980に車両3602を制御させて、マップデータベースからダウンロードされた複数の目標ナビゲーションマップ区分のうちの1つ又は複数に含まれる少なくとも1つの目標軌道に沿ってナビゲートし得る。幾つかの実施形態では、ナビゲーションシステム3970は、最新ドライバー支援システム(ADAS)システムを含み得る。
図40は、開示される実施形態による、車両をナビゲートするための例示的なプロセス4000を示すフローチャートである。プロセス4000のうちの1つ又は複数のステップは、車両(例えば、車両3602)、ホスト車両に関連付けられたデバイス(例えば、車両デバイス3603)、及び/又はサーバ(例えば、サーバ3601)によって実行され得る。以下に提供されるプロセス4000の説明は、例として車両3602を使用するが、当業者であれば、プロセス4000のうちの1つ又は複数のステップが、サーバ(例えば、サーバ3601)及び/又は車両デバイス(例えば、車両デバイス3603)によって実行され得ることを理解するであろう。例えば、1つの実施形態では、車両をナビゲートするためのシステムは、回路及びメモリを有する少なくとも1つのプロセッサを含む。メモリは、回路によって実行されると、少なくとも1つのプロセッサに、本明細書及び/又は図40に関連して論じた動作のいずれか等のうちの1つ又は複数の動作を実行させる命令を含む。別の例として、別の実施形態では、非一時的コンピュータ可読媒体は、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、本明細書及び/又は図40に関連して論じた動作のいずれか等のうちの1つ又は複数の動作を実行させる命令を含む。
ステップ4001において、少なくとも1つのプロセッサ(例えば、プロセッサ3910)が、車両(例えば、車両3602)に関連付けられたナビゲーション情報を受信する。幾つかの実施形態では、ナビゲーション情報は、車両3602の位置の指標を少なくとも含み得る。例えば、プロセッサ3910は、車両3602の位置を示す1つ又は複数のセンサ3950(例えば、GPSセンサ、速度センサ、加速度計、サスペンションセンサ等)からナビゲーション情報を受信し得る。幾つかの実施形態では、ナビゲーション情報は、例えば、車両の速度の指標及び車両の進行方向の指標を含む、車両3602の他の情報を含み得る。
ステップ4002において、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、マップデータベースから取得する複数の目標ナビゲーションマップ区分を決定する。例えば、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、受信したナビゲーション情報及び複数の記憶されたナビゲーションマップ区分に関連付けられたマップ区分接続性情報に基づいて、複数の目標ナビゲーションマップ区分を決定し得る。本開示の他の場所に記載されるように、マップ区分接続性情報は、隣接するナビゲーションマップ区分間で共有される1つ又は複数の境界を、少なくとも1つの道路区分に沿って走行する車両3602が横断できるか否かを示し得る。代替又は追加として、マップ接続性情報は、ナビゲーションマップ区分の境界を横断する道路区分に沿った利用可能な進行方向を説明し得る。例として、双方向の道路は双方向接続性を提供し得る。別の例として、一方通行の道路は一方向接続性のみを提供し得る。幾つかの実施形態では、マップ接続性情報は、複数のナビゲーションマップ区分のそれぞれに関連付けられた1つ又は複数の境界に関連付けられたブールビットとして記憶される。
幾つかの実施形態では、マップデータベースは、それぞれが現実世界のエリアに対応する複数の記憶されたナビゲーションマップ区分を含み得る。例として、図38を参照すると、マップデータベースは、図38に示す、全てのマップタイルを含み得るが、車両3602は、記憶されたマップタイルの一部(すなわち、複数の目標ナビゲーションマップ区分)を取得するように要求し得る。幾つかの実施形態では、複数の記憶されたナビゲーションマップ区分のそれぞれは、複数のマップサブ区分を含み得、複数のマップサブ区分のそれぞれは、そのマップサブ区分に特有のマップ区分接続性情報を含む。例えば、図38に示すように、マップタイルのそれぞれは、4つの区画のタイルを含み得る。タイルの区画のそれぞれは、本開示の他の場所に記載のマップ区分の接続性情報と同様であり得る、それ自体の接続性情報を含み得る。
少なくとも1つのプロセッサ(例えば、プロセッサ3910)が目標ナビゲーションマップ区分を取得するマップデータベースは、少なくとも1つのプロセッサ(例えば、プロセッサ3910)に対してローカルであり得る。例えば、マップデータベースをストレージデバイス3930に記憶し得、少なくとも1つのプロセッサ(例えば、プロセッサ3910)がマップデータベースから1つ又は複数の目標ナビゲーションマップ区分を取得し得る。代替又は追加として、マップデータベースは、車両3602から遠隔にある(又はサーバ3601が複数の目標ナビゲーションマップ区分を決定する場合、サーバ3601から遠隔にある)データベースを含み得る。例えば、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、ネットワーク2705を介して、サーバ3601及び/又はデータベース2740に記憶されたデータベースから1つ又は複数の目標ナビゲーションマップ区分を要求し得る。幾つかの実施形態では、記憶されたマップ区分は、タイル(図37及び図38に示すマップタイル等)に配置され得る。
幾つかの実施形態では、マップデータベースは、本開示に記載のマップデータベース(例えば、マップデータベース160)と同様であり得る。
幾つかの実施形態では、マップデータベース(及び/又はストレージデバイス及び/又はストレージ媒体)は、ナビゲーションマップ区分をデジタルマップの形態で記憶し得、ナビゲーションマップ区分のそれぞれは、現実世界のエリアに対応し得る。幾つかの実施形態では、デジタルマップはまた、ナビゲーションマップ区分のそれぞれについて、本開示の他の場所に記載されるマップ区分接続性情報を含み得る。例えば、デジタルマップはまた、複数のナビゲーションマップ区分のそれぞれについて、隣接するナビゲーションマップ区分と共有される各境界に関連付けられた少なくとも1つのマップ区分接続性指標を含み得る。少なくとも1つのマップ区分接続性指標は、ブールビットとしてコンピュータ可読媒体に記憶され得る。幾つかの実施形態では、隣接するナビゲーションマップ区分と共有される各境界に関連付けられた少なくとも1つのマップ区分接続性指標は、隣接するナビゲーションマップ区分間で共有される境界が、少なくとも1つの道路区分に沿って走行する車両が横断できるか否かを示し得る。代替又は追加として、隣接するナビゲーションマップ区分と共有される各境界に関連付けられた少なくとも1つのマップ区分接続性指標は、単方向境界又は双方向境界を示し得る。幾つかの実施形態では、デジタルマップは、本開示の他の場所に記載されるように、デジタルマップに表された道路区分を横断するときに車両ナビゲーションシステム(例えば、ナビゲーションシステム3970)が追従する目標軌道の表現を含む。代替又は追加として、デジタルマップは、本開示の他の場所に記載されるように、目標軌道の少なくとも1つに対する車両位置を特定するために、車両ナビゲーションシステム(例えば、ナビゲーションシステム3970)によって使用される認識された陸標の表現を含み得る。幾つかの実施形態では、マップデータベース(又はストレージデバイス又は媒体)に記憶されたデジタルマップは、図29Aに示され、上記で説明した異なるレベルで複数のタイルを有するデジタルマップ(又はその一部)を含み得る。
幾つかの実施形態では、複数の記憶されたナビゲーションマップ区分のそれぞれは、マップ区分接続性情報が記憶されるフィールド又はヘッダを含み得る。フィールド又はヘッダは、所定のサイズ(例えば、4バイト)を有し得る。ヘッダに情報を有することにより、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、区分フィールド又はヘッダを受信すると、区分に関連付けられたマップデータを受信する必要なく、区分取得優先度を計算でき得る。例えば、少なくとも1つのプロセッサ(例えば、プロセッサ3910)が、区分ヘッダ又はフィールドに基づいて、(例えば、車両3602の現在位置、進行方向、受信した1つ又は複数のマップ区分ヘッダ、フィールド等によって示されるマップタイル接続性に基づいて)特定の区分が優先度の高い区分であると決定した場合、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、マップ区分をロード及び/又はダウンロードし得る。
幾つかの実施形態では、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、マップ区分接続性情報に基づいて、車両3602が現在のナビゲーションマップ区分から直接ナビゲートできない現在のマップ区分(すなわち、車両3602が現在位置しているマップ区分)に隣接する1つ又は複数のナビゲーションマップ区分を決定し得ない。少なくとも1つのプロセッサ(例えば、プロセッサ3910)はまた、決定された1つ又は複数のナビゲーションマップ区分を、取得する目標ナビゲーションマップ区分から除外し得る。
幾つかの実施形態では、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、車両3602の速度の指標及び車両3602の進行方向の指標の少なくとも1つに基づいて、取得する複数の目標ナビゲーションマップ区分を決定し得る。例えば、図38を参照すると、車両3602はタイル#10に位置し得る。少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、1つ又は複数のセンサ3950から受信したデータに基づいて、車両3602が南西方向に向かっていると決定し得る。少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、車両3602の決定された進行方向に基づいて、取得する複数の目標ナビゲーションマップ区分を決定し得る。例として、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、マップデータベースから取得するタイル#9及びタイル#14を決定し得る。
幾つかの実施形態では、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、マップ区分接続性情報に基づいて、決定された目標ナビゲーションマップ区分に優先度を付け得る。少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、目標ナビゲーションマップ区分の優先度に基づいて、目標ナビゲーションマップ区分をダウンロード及び/又はロードし得る。例えば、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、第1のナビゲーションマップ区分が、現在のナビゲーションマップ区分に対して、車両3602が第2のナビゲーションマップ区分と現在のナビゲーションマップ区分との間のナビゲート可能な接続よりも短い距離に位置しているナビゲート可能な接続性を有するというマップ区分接続性情報による指示に基づいて、第1のナビゲーションマップ区分に第2のナビゲーションマップ区分よりも高い優先度を割り当て得る。少なくとも1つのプロセッサ(例えば、プロセッサ3910)はまた、第1及び第2のナビゲーションマップ区分間の優先度に基づいて、第2のナビゲーションマップ区分をダウンロード(及び/又はロード)する前に、第1のナビゲーションマップ区分をダウンロード(及び/又はロード)し得る。幾つかの実施形態では、第1のナビゲーションマップ区分は現在のナビゲーションマップ区分と境界を共有し得ないが、第2のナビゲーションマップ区分は現在のナビゲーションマップ区分と境界を共有し得る。
幾つかの実施形態では、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、複数の記憶されたマップ区分のうちの1つ又は複数を取得する前に、複数の記憶されたナビゲーションマップ区分の少なくとも2つのフィールド又はヘッダにアクセスし、アクセスされるフィールド又はヘッダに記憶されたマップ区分接続性情報を分析することによって、複数の目標ナビゲーションマップ区分に優先度を付け得る。例えば、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、車両が位置する現在のマップ区分の近くにある所定数のマップ区分のフィールド又はヘッダにアクセスし得る。例として、図38を参照すると、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、車両3602が現在位置しているタイル#10に隣接する2つのタイル(例えば、タイル#9及びタイル#14)のフィールド又はヘッダにアクセスし得る。別の例として、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、車両3602が位置する中央タイル(すなわち、タイル#10)を取り囲む8つのタイル(周囲のタイルの幾つかは、図38ではラベル付けされていない)のフィールド又はヘッダにアクセスし得る。或いは、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、中央タイルを取り囲む24個(又は他の適切な数)のタイルのフィールド又はヘッダにアクセスし得る。幾つかの実施形態では、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、車両の進行方向又は車両の速度の少なくとも1つに基づいて、候補区分のフィールド又はヘッダにアクセスし得る。例えば、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、車両3602が南西に向かっていると決定し得る。少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、タイル#9及びタイル#14のフィールド又はヘッダにアクセスし得るが、タイル#4も中央タイルに隣接しているにもかかわらず、タイル#4にはアクセスし得ない。代替又は追加として、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、車両3602の速度を決定し、車両3602の速度に基づいてフィールド又はヘッダがアクセスされ得る区分の数を決定し得る。例えば、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、現在の速度が比較的遅いと決定し、車両3602が位置する中央タイル(すなわち、タイル#10)を取り囲む8つのタイルのフィールド又はヘッダにアクセスし得る。別の例として、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、現在の速度が比較的高いと決定し、中央タイルを取り囲む24個(又はそれ以上)のタイルのフィールド又はヘッダにアクセスし得る。
幾つかの実施形態では、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、マップデータベースから取得する複数の目標ナビゲーションマップ区分を定期的に更新し得る。例えば、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、車両3602が道路区分に沿って走行するときに、マップデータベースから取得する複数の目標ナビゲーションマップ区分を定期的に更新し得、本開示に記載の要因(例えば、マップタイル接続性、マップタイルのサブ部分の接続性、現在の進行方向、現在の速度、現在位置から1つ又は複数のマップタイルの境界位置までの距離等)のいずれかを考慮に入れ得る。幾つかの実施形態では、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、所定の時間間隔に従って取得する複数の目標ナビゲーションマップ区分を更新し得る。目標ナビゲーションマップ区分を更新するための所定の時間間隔は、0.01秒から0.1秒、0.1秒から1秒、1秒から10秒、10秒から60秒、1分から5分、5から10分、10分から39分、及び39分から60分の部分範囲に制限され得る、0.01秒から1時間の範囲であり得る。幾つかの実施形態では、定期的な更新は、1秒当たり2回以上の割合で行われ得る。例として、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、0.1秒ごとにマップデータベースから取得する目標ナビゲーションマップ区分を更新し得る。代替又は追加として、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、1つ又は複数のセンサ3950(例えば、GPSセンサ、カメラ)のデータ取得率に基づいてマップデータベースから取得する目標ナビゲーションマップ区分を更新し得る。例えば、車載カメラは、1/9秒当たり1画像の速度で画像を撮像し得、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、1/9秒ごとに1回、マップデータベースから取得する目標ナビゲーションマップ区分を更新し得る。代替又は追加として、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、車両3602の速度に基づいて取得する目標ナビゲーションマップ区分を更新し得る。例えば、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、車両3602が比較的高速(例えば、50km/h)で走行している場合、目標ナビゲーションマップ区分をより頻繁に更新し得る(例えば、0.01秒ごとに目標ナビゲーションマップ区分を更新する)。別の例として、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、車両3602が比較的低速(例えば、39km/h)で走行している場合、目標ナビゲーションマップ区分をあまり頻繁には更新し得ない(例えば、0.1秒ごとに目標ナビゲーションマップ区分を更新する)。幾つかの実施形態では、定期的な更新は、決定された複数の目標ナビゲーションマップ区分の全てがマップデータベースから取得される(或いは、ダウンロード又はロードされる)前に発生し得る。例えば、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、目標ナビゲーションマップ区分の次のバッチを更新する前に、(ステップ4003に関連して以下で説明するように)決定された目標ナビゲーションマップ区分を全てダウンロードし得る。或いは、取得するための目標ナビゲーションマップ区分は、定期的に(例えば、1/9秒ごとに更新する速度で)更新、再編成、及び/又は最優先化され得る。場合によっては、全てのタイルが既に取得されていることもある。他の場合では、更新、再優先化、再編成が行われるときに、一部のタイルがダウンロードされていないことがある。更に、各再優先化(及び、更新)の後、幾つかの新しいタイルが追加され得、他のタイルが削除され得る。幾つかの実施形態では、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、上記で説明した目標ナビゲーションマップ区分を更新するためのプロセスと同様に、マップデータベースから取得する複数の目標ナビゲーションマップ区分を定期的に更新し得る。
ステップ4003において、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、マップデータベースから複数の目標ナビゲーションマップ区分のダウンロード(及び/又はロード)を開始する。例えば、マップデータベースが車両3602から遠隔に位置する場合(例えば、サーバ3601及び/又はデータベース2740に関連付けられたストレージデバイスに記憶される)、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、サーバ3601及び/又はデータベース2740に目標ナビゲーションマップ区分をダウンロードするための要求を送信することによって、ダウンロードを開始し得る。サーバ3601及び/又はデータベース2740は、ネットワーク2705を介して、要求された目標ナビゲーションマップ区分を車両3602に送信し得る。或いは、マップデータベースが、ストレージデバイス3930に記憶される等、少なくとも1つのプロセッサ(例えば、プロセッサ3910)に対してローカルである場合、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、マップデータベースから目標ナビゲーションマップ区分を取得し得る。幾つかの実施形態では、上記で説明したように、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、マップデータベースから取得する目標ナビゲーションマップ区分を定期的に更新し得る。例えば、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、定期的に更新される目標ナビゲーションマップ区分に基づいてダウンロード(及び/又はロード)を開始し得る。
ステップ4004において、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、マップデータベースからダウンロードされた複数の目標ナビゲーションマップ区分のうちの1つ又は複数に含まれる少なくとも1つの目標軌道に沿って車両をナビゲートさせる。例えば、少なくとも1つのプロセッサ(例えば、プロセッサ3910)は、本開示の他の場所に記載されるように、マップデータベースからダウンロードされた複数の目標ナビゲーションマップ区分のうちの1つ又は複数に含まれる少なくとも1つの目標軌道に沿って車両3602をナビゲートするように搭載ナビゲーションシステム(例えば、ナビゲーションシステム3970)に制御させ得る。
前述の説明は、例示の目的のために提示されたものである。これは網羅的ではなく、開示された正確な形態又は実施形態に限定されない。修正及び適合は、考察及び開示される実施形態の実施から当業者には明らかになるであろう。更に、開示される実施形態の態様は、メモリに記憶されていると説明されているが、これらの態様は、2次ストレージデバイス、例えば、ハードディスク又はCD-ROM、又は他の形態のRAMもしくはROM、USBメディア、DVD、Blu-ray(登録商標)、4K Ultra HD Blu-ray、又はその他の光学ドライブメディア等他のタイプのコンピュータ可読媒体にも記憶できることを当業者なら理解するであろう。
記載された説明及び開示された方法に基づくコンピュータプログラムは、経験豊富な開発者のスキル内である。様々なプログラム又はプログラムモジュールは、当業者に既知の技術のいずれかを使用して作成できるか、又は既存のソフトウェアに関連付けて設計できる。例えば、プログラムセクション又はプログラムモジュールは、.Net Framework、.Net Compact Framework(及び、Visual Basic(登録商標)、C等の関連言語)、Java(登録商標)、C++、Objective-C、HTML、HTML/AJAXの組み合わせ、XML、又はJavaアプレットを含むHTMLにおいて、又はこれらを使用して設計できる。
更に、例示的な実施形態が本明細書に記載されるが、範囲には、本開示に基づいて当業者によって理解されるように、同等の要素、修正、省略、(例えば、様々な実施形態にわたる態様の)組み合わせ、適合、及び/又は変更を有する任意の及び全ての実施形態が含まれる。請求項における限定は、請求項で使用されている文言に基づいて広く解釈されるべきであり、本明細書に記載される実施例又は本出願の審査中の実施例に限定されない。実施例は非排他的であると解釈されるべきである。更に、開示された方法のステップは、ステップの並べ替え及び/又はステップの挿入又は削除を含む、任意の方法で修正され得る。従って、本明細書及び実施例は例示としてのみ考慮されることを意図しており、真の範囲及び精神は、以下の特許請求の範囲及びそれらの同等物の全範囲によって示す。