本開示の実施形態は主に自動運転車両の動作に関し、更に詳しくは、自動運転車両(ADV)の地図データの更新に関する。
自律走行モード(例えば、無人運転)で走行する車両は、乗員、特に運転手を運転関連の作業から解放することができる。自律走行モードで運行している場合、車両は車両センサを使用して、任意の場所までナビゲートされることが可能である。そのため、車両は、ヒューマンインタラクションが最も少ない場合、又は乗員がいない場合などに車両を走行させることが可能となる。
動作の計画と制御は、自律走行における重要な操作である。特に、軌跡計画は自律走行システムにおける重要な要素である。従来の軌跡計画技術は、安定した軌跡を生成するために、自動運転車両の案内経路(例えば、道路の中心線)である高品質の基準線に大きく依存している。そのような情報は、地図から取得できる。
自律走行システムのカメラベースの検知スキームは、車線、信号機、交通標識などのいくつかのリアルタイムの地図情報を検出する。これらのリアルタイムの地図情報は、高解像度(HD)地図と比較して、最新の地図情報を反映できる。例えば、HD地図に存在しない、新設された横断歩道を、感知によって検出することができる。ただし、このような地図情報はリアルタイムで計算されたものであるため、精度が高解像度地図に及ばない。
本開示の実施形態は実施例で示されるが、添付される図面に限定されない。なお、図面中、同一要素には同一符号を付すこととする。
いくつかの実施形態によるネットワークシステムを示すブロック図である。
いくつかの実施形態による自動運転車両の一例を示すブロック図である。
いくつかの実施形態による自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。
いくつかの実施形態による自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。
いくつかの実施形態による感知モジュールの一例を示すブロック図である。
いくつかの実施形態による計画モジュールの一例を示すブロック図である。
自動運転車両(ADV)が現在位置している、および/または以前に位置していた可能性がある環境の例示的な地図を示す図である。
いくつかの実施形態による例示的なシステムアーキテクチャを示す図である。
いくつかの実施形態による例示的な地図部材を示す図である。
いくつかの実施形態による地図データを生成するプロセスの一例を示すフローチャートである。
いくつかの実施形態によるデータ処理システムを示すブロック図である。
以下に説明される詳細を参照しながら本開示の様々な実施形態及び態様を説明し、添付図面には上記の各実施形態が示される。以下の説明および図面は、本開示を例示するものであり、本開示を限定するものとして解釈されてはならない。本開示の様々な実施形態への完全な理解に供するために複数の特定の詳細が記載されているが、本開示の実施形態をめぐる簡潔な説明に供するために周知または従来技術の詳細が記載されない場合もある。
本明細書における「一実施形態」または「実施形態」への言及は、実施形態に関連して説明される特定の特徴、構造、または特性が本開示の少なくとも一つの実施形態に含まれ得ることを意味する。本明細書の様々な場所における「一実施形態では」という表現は、必ずしもすべてが同じ実施形態を指すとは限らない。
いくつかの実施形態によれば、環境内の交通制御装置の変化を検出するための新しい方法が利用され得る。ADVおよび/または他の車両は、環境内の一つまたは複数の交通制御装置が変化したことを示すレポートメッセージおよび/またはセンサデータ(例えば、クラウドソーシングレポートスキーム)を送信することができる。サーバは、レポートメッセージおよび/またはセンサデータを受信および/または処理することができる。別の実施形態によれば、環境の更新された地図データを生成するための新しい方法が利用され得る。サーバは、レポートメッセージおよび/またはセンサデータの一つまたは複数の基準、パラメータ、条件などが満たされているかどうかを判断することができる。一つまたは複数の基準、パラメータ、条件などが満たされた場合、サーバは更新された地図データを生成し、交通制御装置の変化(交通制御装置の新設、除去、別の場所への移動など)を表すことができる。本明細書で説明される実施形態、実施方式、例示などは、サーバが環境内の交通制御装置の変化をより迅速かつ効率的に検出できるようにする。本明細書で説明される実施形態、実施方式、例示などはさらに、サーバが環境内の交通制御装置の変化を反映するために更新された地図データを生成し、更新された地図データをADVに送信できるようにする。
図1は、本開示のいくつかの実施形態による自動運転車両のネットワーク構成を示すブロック図である。図1を参照すると、ネットワーク構成100には、ネットワーク102を介して一つまたは複数のサーバ103〜104に通信可能に接続され得る自動運転車両101が含まれる。一台の自動運転車両しか示されていないが、複数の自動運転車両はネットワーク102を介して互いに接続および/または103〜104に接続されることができる。ネットワーク102は、有線または無線のローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク、またはそれらの組み合わせなど、任意のタイプのネットワークであり得る。サーバ103〜104は、ネットワークまたはクラウドサーバ、アプリケーションサーバ、バックエンドサーバ、またはそれらの組み合わせなど、任意のタイプのサーバまたはサーバクラスターであり得る。サーバ103〜104は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図および関心地点(MPOI)サーバ、またはロケーションサーバなどであり得る。
自動運転車両とは、運転者からの入力がほとんどまたはまったくない状態で車両がナビゲートされて環境を通過する自律走行モードになるように構成できる車両を指す。そのような自動運転車両は、車両の走行環境に関連する情報を検出するように構成された一つまたは複数のセンサを有するセンサシステムを含み得る。前記車両とそれに関連するコントローラは、検出された情報によりナビゲートされて前記環境を通過する。自動運転車両101は、手動モード、全自律走行モード、または部分自律走行モードで走行することができる。
一実施形態では、自動運転車両101は、感知・計画システム110、車両制御システム111、無線通信システム112、ユーザインターフェースシステム113、インフォティメントシステム114およびセンサシステム115を含むが、これらに限定されない。自動運転車両1011は、エンジン、車輪、ステアリングホイール、変速機などのような、一般車両に含まれる特定の共通構成要素も含み得る。車両制御システム111および/または感知・計画システム110は、加速信号またはコマンド、減速信号またはコマンド、ステアリング信号またはコマンド、ブレーキ信号またはコマンドなどのような様々な通信信号および/またはコマンドを通じて、前記構成要素を制御することができる。
構成要素110〜115は、インターコネクタ、バス、ネットワーク、またはそれらの組み合わせを介して互いに通信可能に接続されることができる。例えば、構成要素110〜115は、コントローラエリアネットワーク(CAN)バスを介して互いに通信可能に接続されることができる。CANバスは、マイクロコントローラーとデバイスがホストなしでアプリケーションにおいて互いに通信できるように設計された車両バス規格である。もともとは車内の多重化された電気配線用に設計されたメッセージベースのプロトコルであるが、他の多くの環境でも使用されている。
ここで図2を参照すると、一実施形態では、センサシステム115は、一つまたは複数のカメラ211、全地球測位システム(GPS)ユニット212、慣性測定ユニット(IMU)213、レーダユニット214、および光検出・測距(LIDAR)ユニット215を含むが、これらに限定されない。GPSユニット212は、自動運転車両の位置に関する情報を提供するように動作可能な送受信機を含み得る。IMUユニット213は、慣性加速度に基づいて自動運転車両の位置および向きの変化を感知することができる。レーダユニット214は、自動運転車両のローカル環境内のオブジェクトを検知するために無線信号を利用するシステムを表すことができる。一部の実施形態では、オブジェクトの検知に加えて、レーダユニット214は、オブジェクトの速度および/または進行方向をさらに検知することができる。LIDARユニット215は、レーザを使用して、自動運転車両が位置する環境内のオブジェクトを感知することができる。他のシステム構成要素に加えて、LIDARユニット215は、一つまたは複数のレーザー源、レーザースキャナー、および一つまたは複数の検出器も含み得る。カメラ211は、自動運転車両を取り巻く環境の画像を取得するための一つまたは複数の装置を含み得る。カメラ211は、スチルカメラおよび/またはビデオカメラであり得る。カメラは、例えば、回転および/または傾斜プラットフォームに取り付けられることにより、機械的に移動可能となり得る。
センサシステム115はさらに、ソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ、および音声センサ(例えば、マイク)などの他のセンサも含み得る。音声センサは、自動運転車両を取り巻く環境から音を収集するように構成されることができる。ステアリングセンサは、ステアリングホイールの操舵角、車両の車輪の変向角度、またはそれらの組み合わせを感知するように構成されることができる。スロットルセンサとブレーキセンサは、それぞれ車両のスロットル位置とブレーキ位置を検出する。場合によっては、スロットルセンサとブレーキセンサを統合スロットル/ブレーキセンサとして統合することができる。
一実施形態では、車両制御システム111は、ステアリングユニット201、スロットルユニット202(「加速ユニット」とも呼ばれる)、およびブレーキユニット203を含むが、これらに限定されない。ステアリングユニット201は、車両の向きまたは進行方向を調整するために使用される。スロットルユニット202は、電気モータまたはエンジンの速度を制御するために使用され、これにより、車両の速度および加速度が制御される。ブレーキユニット203は、車両の車輪またはタイヤを減速させる摩擦を提供することにより車両を減速させる。図2に示される構成要素は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実施できることに留意されたい。
図1に戻ると、無線通信システム112は、自動運転車両101と、デバイス、センサ、他の車両などの外部システムとの間の通信を可能にする。例えば、無線通信システム112は、一つまたは複数の装置と直接無線通信することができ、またはネットワーク102を介して無線通信することができる。例えば、ネットワーク102を介してサーバ103〜104と通信することができる。無線通信システム112は、任意のセルラー通信ネットワークまたは無線ローカルエリアネットワーク(WLAN)(例えば、WiFi)を使用して別の構成要素またはシステムと通信することができる。無線通信システム112は、例えば、赤外線リンク、ブルートゥースなどを使用して、装置(例えば、乗員のモバイルデバイス、表示装置、車両101内のスピーカ)と直接通信することができる。ユーザインターフェースシステム113は、例えば、キーボード、タッチスクリーンディスプレイデバイス、マイクロホン、およびスピーカを含む、車両101内において実施された周辺機器の一部であり得る。
自動運転車両101の機能の一部または全部は、特に自律走行モードで動作している場合、感知・計画システム110によって制御または管理され得る。感知・計画システム110は、必要なハードウェア(例えば、プロセッサ、メモリ、記憶装置)およびソフトウェア(例えば、オペレーティングシステム、計画およびルーティングプログラム)を含むことにより、センサシステム115、制御システム111、無線通信システム112、および/またはユーザインターフェースシステム113から情報を受信し、受信した情報を処理し、出発地から目的地までの経路またはルートを計画し、そして計画および制御情報に基づいて車両101を運転することができる。あるいは、感知・計画システム110と車両制御システム111を統合することもできる。
例えば、乗員としてのユーザは、例えばユーザインターフェイスを介して、旅程の出発地と目的地を指定することができる。感知・計画システム110は、旅程関連データを取得する。例えば、感知・計画システム110は、サーバ103〜104の一部であり得るMPOIサーバから位置およびルート情報を取得することができる。ロケーションサーバはロケーションサービスを提供し、MPOIサーバは地図サービスと特定のロケーションのPOIを提供する。あるいは、そのような位置およびMPOI情報は、感知・計画システム110の永続性記憶装置にローカルキャッシュされることができる。
感知・計画システム110はまた、自動運転車両101がルートに沿って移動するときに、交通情報システムまたはサーバ(TIS)からリアルタイムの交通情報を取得することもできる。サーバ103〜104は第三者機関によって操作され得ることに留意されたい。あるいは、サーバ103〜104の機能を感知・計画システム110に統合することができる。リアルタイムの交通情報、MPOI情報と位置情報、およびセンサシステム115によって検出または検知されたリアルタイムのローカル環境データ(障害物、オブジェクト、近くの車両など)に基づいて、感知・計画システム110は最適なルートを計画し、かつ計画された経路に従って、例えば制御システム111を介して車両101を運転して、指定された目的地に安全かつ効率的に到着することができる。
サーバ103は、様々なクライアントのためのデータ解析サービスを実行するデータ解析システムであり得る。一実施形態では、データ解析システム103は、データコレクタ121と機械学習エンジン122を含む。データコレクタ121は、様々な車両(自動運転車両または人間の運転手によって運転される一般車両)から運転統計データ123を収集する。運転統計データ123は、異なる時点で発行された運転コマンド(例えば、スロットルコマンド、ブレーキコマンド、制御コマンド)情報と、車両のセンサにより捕捉された車両の応答(例えば、速度、加速、減速、方向)情報を含む。運転統計データ123はさらに、例えば、ルート(出発地および目的地を含む)、MPOI、道路状態、気象状態などの異なる時点での運転環境を記述する情報も含み得る。
運転統計123に基づいて、機械学習エンジン122は、さまざまな目的のために、ルール、アルゴリズムおよび/またはモデル124のセットを生成または訓練する。例えば、運転統計データ123から取得できるハードウェアの特徴(センサ仕様や特定の車両設計など)に基づいて、制約のセットを定義することもできる。
図3Aおよび3Bは、いくつかの実施形態による自動運転車両と共に使用するための感知・計画システムの一例を示すブロック図である。システム300は、感知・計画システム110、制御システム111、およびセンサシステム115を含むがこれらに限定されない、図1の自動運転車両101の一部として実施することができる。図3Aおよび図3Bを参照すると、感知・計画システム110は、測位モジュール301、感知モジュール302、予測モジュール303、決定モジュール304、計画モジュール305、制御モジュール306、およびルーティングモジュール307を含むが、これらに限定されない。
モジュール301から307の一部または全部は、ソフトウェア、ハードウェア、またはそれらの組み合わせで実施され得る。例えば、これらのモジュールは、永続性記憶装置352にインストールされ、メモリ351にロードされ、かつ一つまたは複数のプロセッサ(図示せず)によって実行され得る。これらのモジュールの一部または全部が、図2の車両制御システム111のモジュールの一部または全部に通信可能に接続または統合され得ることに留意されたい。モジュール301から307のいくつかは、統合モジュールとして一体に統合されることができる。
測位モジュール301は、(例えば、GPSユニット212を利用して)自動運転車両300の現在の位置を確定し、ユーザの旅程またはルートに関連するすべてのデータを管理する。測位モジュール301(「地図およびルートモジュール」とも呼ばれる)は、ユーザの旅程またはルートに関連するすべてのデータを管理する。ユーザは、例えば、ユーザインターフェイスを介してログインし、旅程の出発地と目的地を指定することができる。測位モジュール301は、地図およびルート情報311などの自動運転車両300の他の構成要素と通信して、旅程関連データを取得する。例えば、測位モジュール301は、ロケーションサーバや地図およびPOI(MPOI)サーバからロケーションおよびルート情報を取得することができる。ロケーションサーバはロケーションサービスを提供し、MPOIサーバは地図サービスと特定のロケーションのPOIを提供するため、地図およびルート情報311の一部としてキャッシュされることができる。自動運転車両300がルートに沿って移動するとき、測位モジュール301は、交通情報システムまたはサーバからリアルタイムの交通情報を取得することもできる。一実施形態では、地図およびルート情報311はあらかじめ永続性記憶装置352に格納されることができる。例えば、地図・ルート情報311はあらかじめ永続性記憶装置352にダウンロードまたはコピーされることができる。
センサシステム115によって提供されたセンサデータと、測位モジュール301によって取得された測位情報に基づいて、感知モジュール302は、周囲環境への感知を確定する。感知情報は、一般運転手ならば運転手が運転している車両の周りで何を感知するかを表すことができる。感知には、例えば、オブジェクトの形態の車線構成(例:直進車線または曲線車線)、信号機の信号、他の車両の相対位置、歩行者、建物、横断歩道、またはその他の交通関連標識(例えば、止まれ標識、ゆずれ標識)などが含まれ得る。
感知モジュール302は、一つまたは複数のカメラによって取得された画像を処理および分析して、自動運転車両の環境内のオブジェクトおよび/または特徴を識別するコンピュータビジョンシステムまたはコンピュータビジョンシステムの機能を含み得る。オブジェクトには、交通信号、道路境界、他の車両、歩行者および/または障害物などが含まれ得る。コンピュータビジョンシステムでは、オブジェクト認識アルゴリズム、ビデオトラッキング、その他のコンピュータビジョン技術を使用できる。いくつかの実施形態では、コンピュータビジョンシステムは、環境地図の作成、オブジェクトの追跡、オブジェクトの速度推定などをすることができる。感知モジュール302は、レーダおよび/またはLIDARなどの他のセンサによって提供される他のセンサデータに基づいてオブジェクトを検出することもできる。
各オブジェクトについて、予測モジュール303は、このオブジェクトがこの状況下でどのように挙動するかを予測する。この時点で運転環境を感知した感知データに基づき、地図・ルート情報311と交通ルール312のセットを考慮して予測が実行される。例えば、オブジェクトが反対方向の車両であり、かつ現在の運転環境に交差点が含まれる場合、予測モジュール303は、該車両が直進するか曲がるかを予測する。感知データは交差点に信号機がないことを示した場合、予測モジュール303は、車両が交差点に入る前に完全に停止する必要があるかもしれないと予測することができる。感知データは、車両が現在左折専用車線または右折専用車線にあることを示した場合、予測モジュール303は、車両がそれぞれ左折または右折する可能性が高いと予測することができる。いくつかの実施形態では、以下でより詳しく説明されるように、自動運転車両が環境または地理的領域/場所を移動するときに、走行中において環境または地理的領域/場所の地図・ルート情報311を生成することができる。
各オブジェクトについて、決定モジュール304は、オブジェクトをどのように処理するかに関して決定を下す。例えば、特定のオブジェクト(例えば、交差ルートにおける他の車両)およびオブジェクトを説明するメタデータ(例えば、速度、方向、曲がり角)について、決定モジュール304は、オブジェクトに会う方法(例えば、追い越し、譲り、停止、超過)を決定する。決定モジュール304は、永続性記憶装置352に格納され得る交通ルールまたは運転ルール312のルールセットに基づいてそのような決定を行うことができる。
ルーティングモジュール307は、出発地から目的地までの一つまたは複数のルートまたは経路を提供するように構成されている。例えば、ユーザから受信した出発地ロケーションから目的地ロケーションまでの所定の旅程について、ルーティングモジュール307は、地図・ルート情報311を取得し、出発地ロケーションから目的地ロケーションまでのすべての可能なルートまたは経路を確定する。いくつかの実施形態では、地図・ルート情報311は、以下でより詳しく説明されるように、感知モジュール302によって生成され得る。決定された出発地ロケーションから目的地ロケーションまでの各ルートについて、ルーティングモジュール307は、地形図の形で基準線を生成することができる。基準線とは、他の車両、障害物、または交通状況に干渉されない理想的なルートまたは経路を指す。言い換えると、道路に他の車両、歩行者、障害物がない場合、ADVは基準線に完全にまたは厳密に従わなければならない。次いで、地形図は決定モジュール304および/または計画モジュール305に提供される。決定モジュール304および/または計画モジュール305は、すべての可能なルートを調べることにより、他のモジュールによって提供された他のデータ(例えば、測位モジュール301からの交通状況、感知モジュール302によって感知された運転環境、および予測モジュール303によって予測された交通状況)に基づいて、最適なルートの一つを選択して修正する。その時点での特定の運転環境によっては、ADVを制御するために使用される実際の経路またはルートは、ルーティングモジュール307によって提供された基準線に近いか、または異なる場合がある。
感知されたオブジェクトのそれぞれに対する決定に基づいて、計画モジュール305は、ルーティングモジュール307によって提供された基準線を基準として、自動運転車両のために経路またはルートおよび運転パラメータ(例えば、距離、速度、および/または曲がり角)を計画する。言い換えると、指定されたオブジェクトについて、決定モジュール304はこのオブジェクトに対して何をするかを決定し、計画モジュール305はどのようにするかを決定する。例えば、指定されたオブジェクトについて、決定モジュール304はこのオブジェクトを追い越すことを決定することができ、計画モジュール305はこのオブジェクトを左側から追い越すか、それとも右側から追い越すかを決定することができる。計画および制御データは、計画モジュール305によって生成され、車両300が次の移動サイクル(例えば、次のルート/経路区間)でどのように移動するかを記述する情報を含む。例えば、計画および制御データは、30マイル/時(mph)で10メートルを移動し、次に25mphで右車線に移動するように車両300に命令することができる。
計画および制御データに基づいて、制御モジュール306は、計画および制御データによって定義されたルートまたは経路に従って、適切なコマンドまたは信号を車両制御システム111に送信することにより、自動運転車両を制御および運転する。かかる計画および制御データには、ルートまたは経路に沿って異なる時点で適切な車両設定または運転パラメータ(例えば、スロットル、ブレーキ、ターニングコマンド)を使用してルートまたは経路の第1箇所から第2箇所まで車両を運転するための十分な情報が含まれる。
一実施形態では、計画段階は、複数の計画サイクル(「コマンドサイクル」とも呼ばれる。例えば、100ミリ秒(ms)間隔)で実行される。計画サイクルまたはコマンドサイクルごとに、計画および制御データに基づいて、一つまたは複数の制御コマンドが発行される。言い換えると、100msごとに、計画モジュール305は、例えば、目標位置およびADVが目標位置に到達するために必要な時間を含む次のルートセグメントまたは経路区間を計画する。あるいは、計画モジュール305は、特定の速度、方向、および/または操舵角などをさらに指定することができる。一実施形態では、計画モジュール305は、次の所定の期間(例えば、5秒)のルートセグメントまたは経路区間を計画する。各計画サイクルについて、計画モジュール305は、前のサイクルで計画された目標位置に基づいて、現在の期間(例えば、次の5秒)の目標位置を計画する。次いで、制御モジュール306は、現在のサイクルの計画および制御データに基づいて、一つまたは複数の制御コマンド(例えば、スロットル制御コマンド、ブレーキ制御コマンド、ステアリング制御コマンド)を生成する。
決定モジュール304および計画モジュール305は、統合モジュールとして統合できることに留意されたい。決定モジュール304/計画モジュール305は、自動運転車両の走行経路を確定するナビゲーションシステムまたはナビゲーションシステムの機能を含み得る。例えば、ナビゲーションシステムは、自動運転車両を次のような経路に沿って移動させるための一連の速度および進行方向を決定することができる。かかる経路は、自動運転車両が最終目的地までの道路ベースの経路を前進しながら、感知された障害物をほとんど回避することを可能にする。目的地は、ユーザインターフェースシステム113を介したユーザ入力によって設定されることができる。ナビゲーションシステムは、自動運転車両の走行中において走行経路を動的に更新できる。ナビゲーションシステムは、自動運転車両の走行経路を決定するために、GPSシステムと一つまたは複数の地図からのデータ(感知モジュール302によって生成されたか、またはあらかじめ格納/ダウンロードされたもの)を統合することができる。
決定モジュール304/計画モジュール305はさらに、自動運転車両の環境内の潜在的な障害物を識別、評価、回避するか、またはその他の形で追い越すための衝突防止システムまたは衝突防止システムの機能も含み得る。例えば、衝突防止システムは、制御システム111内の一つまたは複数のサブシステムを操作して急ハンドル操作、曲がり操作、ブレーキ操作などを行うことにより、自動運転車両のナビゲーション中の変化を実現することができる。衝突防止システムは、周囲の交通パターン、道路状況などに基づいて、実行可能な障害物回避操作を自動的に決定することができる。衝突防止システムは、自動運転車両が急ハンドルして進入しようとする隣接エリアにある車両、建物障害物などを他のセンサシステムが検出したときに急ハンドル操作が行われないように構成されることができる。衝突防止システムは、実行可能でかつ自動運転車両の乗員の安全性を最優先する操作を自動的に選択することができる。衝突防止システムは、自動運転車両の車室内において最小限の加速の発生が見込まれる回避操作を選択することができる。
ルーティングモジュール307は、地図情報(例えば、道路セグメントの情報、道路セグメントの車両車線、車線から縁石までの距離)に基づいて、基準線を生成することができる。例えば、道路を、三つの道路セグメントを表すセクションまたはセグメント{A、B、C}に分割することができる。道路セグメントAの三つの車線{A1、A2、A3}を例示することができる。基準線は、基準線に沿って基準点を生成することにより生成される。例えば、車両車線の場合、ルーティングモジュール307は、地図データ(感知モジュール302によって生成されたか、またはあらかじめ格納/ダウンロードされたもの)によって提供された二つの対向する縁石またはエンドポイントの中間点を結ぶことができる。該中間点と、収集された異なる時点でこの車両車線で以前に運転された車両のデータポイントを表す機械学習データに基づいて、ルーティングモジュール307は、車両車線の所定の近接範囲内で収集されたデータポイントのサブセットを選択し、収集されたデータポイントのサブセットを考慮して該中間点に平滑化関数を適用することにより、基準点を計算することができる。
基準点または車線基準点に基づいて、ルーティングモジュール307は、生成された基準線が車両車線上のADVを制御するための基準線として使用されるように基準点を補間することにより基準線を生成することができる。いくつかの実施形態では、基準線を表す基準点テーブルおよび道路セグメントテーブルは、ADVがADVの地理的位置および運転方向に基づいて基準線を生成できるように、リアルタイムでADVにダウンロードされる。例えば、一実施形態では、ADVは、前方の次の道路セグメントを表す経路セグメント識別子によって経路セグメントのルーティングサービスを要求することにより、および/またはADVのGPS位置に基づいて、基準線を生成することができる。経路セグメント識別子に基づいて、ルーティングサービスは、対象の道路セグメントのすべての車線の基準点を含むADV基準点テーブルに戻ることができる。ADVは、経路セグメントの車線の基準点を検索して、車両車線におけるADVを制御するための基準線を生成することができる。
図4Aは、いくつかの実施形態による感知モジュール302の一例を示すブロック図である。図4Aを参照すると、感知モジュール302は、センサ部材411および履歴部材413を含むが、これらに限定されない。モジュール411〜413は、ソフトウェア、ハードウェア、またはそれらの組み合わせで実施することができる。センサ部材411は、ADVの一つまたは複数のセンサからセンサデータを取得することができる。例えば、センサ部材411は、一つまたは複数のセンサからセンサデータを定期的に要求または問い合わせることができる(例えば、数秒ごと、毎秒、または他の適切な期間ごとにセンサからセンサデータを要求することができる)。別の例では、センサ部材411は、一つまたは複数のセンサから受信するセンサデータを聞きまたは待つことができる。例えば、センサ部材411はバス、通信チャネル(有線または無線)、配線、ワイヤ、ピン、トラックなどを継続的に監視するように構成できるため、一つまたは複数のセンサがセンサデータを生成したとたん、センサ部材411はセンサデータを受信することができる。
一実施形態では、センサは、カメラ(例えば、デジタルカメラ、ビデオカメラ、ビデオレコーダなど)または画像をキャプチャまたは記録することができる他の装置であり得る。カメラによって生成され、センサ部材411によって受信されるセンサデータは、「ビデオデータ」と呼ばれる。ビデオデータの例は、デジタル画像(例:Joint Photographic Experts Group(JPEG)画像)、ビデオフレーム、Motion Picture Experts Group(MPEG)データ、またはカメラでキャプチャされた光学画像を表すのに適したその他のデータを含むが、これらに限定されない。別の実施形態では、センサは、レーダユニット(例えば、図2に示されるレーダユニット214)または電波(例えば、高周波または信号)を使用してADVを囲むオブジェクトの位置、範囲、角度、および/または速度を特定できる他の装置であり得る。レーダユニットによって生成されたセンサデータは、「レーダデータ」と呼ばれる。レーダデータは、レーダユニットによって検出されたオブジェクトの位置、範囲、角度、および/または速度を示すデータであり得る。さらに別の実施形態では、センサは、LIDARユニット(例えば、図2に示されるLIDARユニット215)であってもよく、または光(例えば、レーザー)を使用してADVを囲むオブジェクトの位置、範囲、角度、および/または速度を特定できるその他の装置であってもよい。LIDARユニットによって生成されたセンサデータは、LIDARユニットによって検出されたオブジェクトの位置、範囲、角度、および/または速度を示すデータであり得る。別の実施形態では、他のタイプのセンサは、センサ部材111に提供され得る他のタイプのセンサデータを生成し得る。環境または地理的位置/エリア内のオブジェクト(歩行者、車両、バリケード、障害物、障壁、道路区画線、標識、信号機など)の位置、範囲、角度、および/または速度を検出するために使用できる任意のタイプのセンサは、本明細書で説明される実施形態、実施方式、および/または例で使用することができる。別の実施形態では、センサは、GPS受信機またはユニット(例えば、図2に示されるGPSユニット212)またはADVの位置(例えば、物理的位置または地理的位置)を確定できる他の装置であり得る。GPS受信機によって生成されるセンサデータは、GPSデータ(「GPS座標」と呼ばれることもある)であり得る。
一実施形態では、センサデータは、ADVが現在位置しているまたは走行している環境または地理的エリア/場所に関する情報を示すことができる。例えば、センサデータは、オブジェクト(例えば、歩行者、車両、バリケード、障害物、障壁、道路区画線、標識、信号機など)の位置および/またはレイアウトを示すことができる。別の例では、センサデータは、環境または地理的領域の道路状況(例えば、道路が乾燥した道路、湿った道路、滑らかな道路、でこぼこした道路であるかどうかなど)を示すことができる。さらに別の例では、センサデータは、環境または地理的地域の気象条件(例えば、気温や、雨、風、雪、雹の有無など)を示すことができる。
図4Bは、いくつかの実施形態による計画モジュール305の一例を示すブロック図である。図4Bを参照すると、計画モジュール305は、セグメンター401、5次関数ジェネレーター402、サンプルポイントジェネレーター403、経路ジェネレーター404、および基準線ジェネレーター405を含むが、これらに限定されない。これらのモジュール401から405は、ソフトウェア、ハードウェア、またはそれらの組み合わせで実施することができる。基準線ジェネレーター405は、ADVの基準線を生成するように構成される。上述のように、基準線は、安定した軌跡を生成するためのADVの案内経路(例えば、道路の中心線)であり得る。基準線ジェネレーター405は、地図・ルート情報311(図3Aおよび3Bに示される)に基づいて基準線を生成することができる。上述のように、地図・ルート情報311は、既存の地図データ(例えば、あらかじめダウンロードまたは格納された地図データ)および/または走行中に生成された地図データ(例えば、ADVが地域/場所を移動するときに生成されたこのエリア/場所の地図データ)であり得る。セグメンター401は、基準線をいくつかの基準線セグメントに分割するように構成される。基準線を基準線セグメントに分割して、基準線の個別のセグメントまたは部分を生成することができる。基準線セグメントのそれぞれについて、多項式関数ジェネレーター402は、多項式関数を定義または生成して、対応する基準線セグメントを表すか、または対応する基準線セグメントをモデル化するように構成されることができる。サンプルポイントジェネレーター403は、基準線に基づいてサンプルポイントを生成することができる。例えば、サンプルポイントジェネレーター403は、以下でより詳しく説明されるように、一般に基準線に従うことができるサンプルポイントの一つまたは複数のセット(例えば、一つまたは複数のサンプルポイントのグループ)を生成することができる。サンプルポイントの各セットは、以下でより詳しく説明されるように、サンプルポイントの第1サブセットおよびサンプルポイントの第2サブセットを含み得る。
多項式関数ジェネレーター402は、サンプルポイントの複数のセットを互いに接続することができる。例えば、多項式関数ジェネレーター402は、以下でより詳しく説明されるように、サンプルポイントのセット内の各サンプルポイントと次の隣接するサンプルポイントのセット内の各サンプルポイントとの間の一つまたは複数のセグメント(例えば、接続)を生成することができる。多項式関数ジェネレーター402はまた、サンプルポイント間のセグメントを表すために使用され得る一つまたは複数の多項式を生成、計算、確定などすることができる。例えば、多項式関数ジェネレーター402は、二つのサンプルポイント間の各セグメントについて多項式関数を生成、確定、および計算することができる。さらに、さまざまな境界または制約に基づいて、セグメントを表す多項式関数を生成、確定、および計算することもできる。この境界または制約は、図3Aに示される制約313の一部として、あらかじめ構成および/または格納されることができる。計画モジュール305によって使用される(例えば、多項式関数ジェネレーター402によって使用される)多項式関数は、図3Aに示される多項式関数314の一部として、あらかじめ構成および/または格納されることができる。
以下でより詳しく説明されるように、経路ジェネレーター404は、サンプルポイント間のセグメントに基づいてADVの経路を決定することができる。例えば、経路ジェネレーター404は、各セグメントのコストを確定することができる。このコストは、さまざまな要因またはパラメータ(基準線からセグメントまでの距離、基準線からセグメント内のサンプルポイントまでの距離、セグメントの曲率の変化率またはセグメント内のサンプルポイントの曲率の変化率、セグメントの曲率、サンプルポイントに位置する可能性のある障害物(車両、歩行者、障害物など)を含むが、これらに限定されない)によるものであってもよい。このコストは「ウェイト」とも呼ばれる。経路ジェネレーター404は、最低の総コスト(最低の総ウェイト)を有する経路を形成するセグメントを識別または選択することができる。
図5は、自動運転車両(ADV)101が現在位置している、および/または以前に位置していた環境505の例示的な地図500を示す図である。環境505は、地理的エリアおよび/または場所であり得る。環境505は、街路、道路、車道、国道、自動車道路、高速道路、快速道路、ルート、坂道、出口、および交通制御装置を含み得る。ADV101、街路、道路、車道、国道、自動車道路、高速道路、快速道路、ルート、坂道、出口、および交通制御装置などの位置は、図5のX軸とY軸に示されるようなデカルト座標系を使用して表されることができる。例えば、ADV101の位置および/または交通制御装置の位置は、X-Y座標を使用して表されることができる。
上述のように、ADV101は、一つまたは複数のセンサ(例えば、カメラ、レーダユニット、LIDARユニットなど)からセンサデータを取得することができる。センサデータは、環境505内におけるADV101を囲むオブジェクトの位置、範囲、角度、および/または速度を示すことができる。例えば、センサデータは、道路および交通制御装置510〜513の位置および/またはレイアウトを示すことができる。
環境505は、複数の交通制御装置を含み得る。交通制御装置は、環境505に位置し、および/または環境505を移動できるADV101、歩行者、サイクリスト、モーターサイクリストなどの動きへの管理、制御、調整、案内、命令、支配、誘導などに使用されることができる。一実施形態では、交通制御装置は、環境505内の交通流(例えば、ADV101、他の車両、モーターサイクリスト、サイクリスト、歩行者などの動き)を制御するために使用できる任意のアイテム、装置、オブジェクト、マーク、標識などであり得る。交通制御装置の例には、ライト、発光/照明標識、駐車灯、横断歩道ライト、横断歩道、標識(例えば、止れ標識、速度制限標識、重量制限標識、一方通行標識、学区標識など)、車線/道路標識(例えば、道路、街路、高速道路などのペイント車線など)、矢印(例えば、一方通行の矢印など)が含まれる。
図5に示されるように、地理的領域505はさらに、複数の交通制御装置510、511、512、および513も含む。例えば、交通制御装置510は、ADV101が道路に沿って前進または走行できる場合にADV101を命令および/または誘導するために使用できる信号機(例えば、ストップライト、赤色灯など)であり得る。別の例では、交通制御装置511は、道路/交差点でさらに前進するかまたは進行するまで道路/交差点上の点で停止するようにADV101を命令および/または誘導できる止れ標識であり得る。また別の例では、交通制御装置512は、この道路に沿った交通の方向(例えば、他の車両の方向)が単なる一方通行標識によって示された方向であることをADV101に示すことができる一方通行標識であり得る。さらに別の例では、交通制御装置513は、交差点で反対の交通(例えば、対向車)を優先させるようにADV101を命令および/または誘導することができる譲れ標識であり得る。
いくつかの実施形態では、ADV101は、環境505内の一つまたは複数の交通制御装置の一つまたは複数の変化を検出することができる。例えば、ADV101は、ADV101の現在の位置の近くに止れ標識(例えば、交通制御装置511)があることを示す地図データ(例えば、道路、街路、高速道路などの地理的位置、GPS座標、位置、道路、街路、高速道路などの距離、交通制御装置などの位置および/またはタイプを示すデータ)を有し得る。しかしながら、ADV101の一つまたは複数のセンサ(例えば、カメラ)は、ADV101の現在の位置の近くにおいて止れ標識の代わりに譲れ標識(例えば、交通制御装置513)を検出し得る。ADV101は、地図データがADV101の現在の位置において譲れ標識があることを示していないと判断し得る(例えば、ADV101は、交通制御装置がとある位置/エリアに新設されたと判断し得る)。ADV101はまた、地図データが、ADV101の現在の位置の近くに止れ標識があることを示していると判断し得るが、ADV101は、止れ標識を検出しなかった場合がある(例えば、ADV101は、交通制御装置がある場所/エリアから削除されたことを確定し得る)。
環境505内の交通制御装置が変化(例えば、新設、除去、異なる場所へ移動)した場合、環境505の地図データが更新されるまでは、時間がかかる場合がある。例えば、サーバは環境505の地図データをADV101に提供することができる。しかし、環境505の交通制御装置が変化した場合、サーバは、これらの変化が運転手によって報告されるまで、これらの変化がADV101に対して更新された地図データを生成していないことを把握していない可能性がある。これにより、ADV101は、古くなった地図データを長期間に亘って使用することになりがちである。古い地図データを使用すると、ADV101において安全問題が発生する恐れがある。
いくつかの実施形態では、ADV101(および/または他の車両)がレポートメッセージ(例えば、メッセージ、レポート、アラートなど)を一つまたは複数のサーバ(例えば、一つまたは複数のサーバコンピュータ、コンピューティングデバイスなど)に送信することにより、環境505(例えば、場所/エリア)における交通制御装置の一つまたは複数の変化をADV101が検出したことを示すのは、有用であり得る。ADV101および/または他の車両は以前に環境505を移動しており、および/または現在環境505に位置している可能性があるため、ADV101および/または他の車両は、環境505における交通制御装置の変化に関するより最近の情報を有する可能性がある。一つまたは複数のレポートメッセージを一つまたは複数のサーバに送信することにより、サーバは、環境内の交通制御装置の変化をより迅速に検出することができる。これにより、サーバは環境505の交通制御装置が変化したかどうか(例えば、新しい交通制御装置が新設されたか、既存の交通制御装置が除去されたか、既存の交通制御装置が新しい場所まで移動されたかなど)を確定することができる。
サーバは、一つまたは複数の基準、パラメータ、条件などを使用して、環境505内の交通制御装置が変化したかどうかを判断することもできる。これにより、サーバは環境内の交通制御装置が変化したことをより正確に検出することができる。サーバは、ADV101および/または他の車両から受信したレポートメッセージに基づいて、更新された地図データを生成することができる。サーバは、更新された地図データをADV101および/または他の車両に送信して、更新された地図データをより迅速および/または効率的にADV101に提供することができる。これにより、サーバは地図データをより迅速かつ効率的に更新して、交通制御装置の変化を反映することができる。
図6は、いくつかの実施形態による例示的なシステムアーキテクチャ600を示す図である。システムアーキテクチャ600は、ADV101、ネットワーク102、およびサーバ104を含む。ネットワーク102は、パブリックネットワーク(例えば、インターネット)、プライベートネットワーク(例えば、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN))、またはそれらの組み合わせであり得る。一実施形態では、ネットワーク102は、一つまたは複数の無線通信システム(例えば、ネットワーク102に接続された無線忠実度(WiFi)ホットスポットおよび/またはさまざまなデータ処理機器、通信塔(セルラー塔など)を使用して実施できるワイヤレスキャリアシステム)によって提供され得る有線または無線のインフラストラクチャを含み得る。ADV101およびサーバ104は、ネットワーク102を介して互いに通信可能に接続され得る。ネットワーク102は、ADV101とサーバ104の間の通信(例えば、データ、メッセージ、データパケット、フレームなど)を実現することができる。
上述のように、ADV101は、一つまたは複数の地理的位置/地域を移動するか、または一つまたは複数の地理的位置/地域を移動する自動運転車両であり得る。各ADV101は、地図データ612の一部または全部を含み得る。各ADV101は、地図データ612を使用して、ADV101の経路を確定することができる。例えば、上述のように、ADV101は、地図データ612を使用して、出発地から目的地まで移動するためにどの道路、高速道路などを利用すべきかを決定することができる。
各ADV101は、センサシステム115とセンサ部材411を含む。センサシステム115は、一つまたは複数のセンサを含み得る。一実施形態では、センサは、カメラまたは画像をキャプチャもしくは記録することができる他の装置であり得る。カメラによって生成され、センサ部材411によって受信されたセンサデータは、「ビデオデータおよび/または画像データ」と呼ばれることができる。別の実施形態では、センサはレーダユニット、または電波を使用してADV101を囲むオブジェクトの位置、範囲、角度および/または速度を特定できる他のいくつかの装置であり得る。レーダユニットによって生成されたセンサデータは、「レーダデータ」と呼ばれることができる。別の実施形態では、センサはLIDARユニット、または光を使用してADV101を囲むオブジェクトの位置、範囲、角度および/または速度を特定できる他のいくつかの装置であり得る。LIDARユニットによって生成されたセンサデータは、「LIDARデータ」と呼ばれることができる。別の実施形態では、センサは、GPS受信機またはユニット、またはADV101の位置を特定できる他のいくつかの装置であり得る。GPS受信機によって生成されたセンサデータは、「GPSデータ」と呼ばれることができる。別の実施形態では、他のタイプのセンサは、センサ部材411に提供され得る他のタイプのセンサデータを生成することができる。
一実施形態では、センサデータは、ADVが現在位置しているまたは走行している環境または地理的エリア/場所に関する情報を示すことができる。例えば、センサデータは、交通制御装置の位置および/またはレイアウト、環境または地理的領域の道路状況、環境または地理的領域の気象条件などを示すことができる。
サーバ104は、コンピューティングデバイス、および/または複数のコンピューティングデバイスのグループであり得る。例えば、サーバ104はサーバクラスターであってもよく、一つまたは複数の仮想マシン、一つまたは複数のコンテナであってもよい。サーバ106は、地図データ612および地図部材610を含む。地図データ612は、ADVが位置/走行する可能性のある異なる環境(例えば、地理的位置および/または地域)に関する情報を示すことができる。例えば、地図データ612は、道路、車線、標識(例えば、止れ標識、譲れ標識など)、信号機、障害物、建物、歩道、通路、人道、障壁などの場所、位置、向き、長さ、幅、距離、レイアウトなどを示すことができる。
一実施形態では、地図部材610は、ADV101のセット(例えば、一つまたは複数のADV101)からレポートメッセージのセット(例えば、一つまたは複数のメッセージ)を受信することができる。レポートメッセージのセットは、ADV101が環境において検出した交通制御装置の第1のセットを示したり、識別したりすることができる。例えば、レポートメッセージのセットは、ADV101のセットが検出した交通制御装置のタイプ(例えば、道路上の標識、照明、ペイントマーキングなど)および/または位置を示すことができる。
一実施形態では、ADV101から受信した(例えば、センサ部材411から受信した)レポートメッセージのセットはさらに、センサデータも含み得る。例えば、レポートメッセージのセットは、カメラによって取得および/または生成された画像データおよび/またはビデオデータを含み得る。別の例では、レポートメッセージのセットは、レーダユニットによって取得および/または生成されたレーダデータを含み得る。別の例では、レポートメッセージのセットは、LIDARユニットによって生成されたLIDARデータを含み得る。さらに別の例では、レポートメッセージのセットは、GPSユニットによって生成されたGPSデータを含み得る。
一実施形態では、レポートメッセージのセットは、ADV101が環境(例えば、図5に示される環境505)において検出したすべての交通制御装置を示すことができる。例えば、センサ部材411は、ADV101のセンサシステム115によって検出された標識、車線マーキング、ライトなどのすべてを示せるレポートメッセージのセットを送信することができる。別の実施形態では、レポートメッセージのセットは、ADV101の地図データで示される交通制御装置と一致しない一つまたは複数の交通制御装置(環境内でADV101によって検出される)を示すことができる。例えば、ADV101は、環境(例えば、地理的エリア/場所)における交通制御装置のタイプおよび/または位置を示すことができる地図データ(例えば、既存の地図データ、ダウンロードされた地図データなど)を有し得る。ADV101のセンサシステム115(例えば、一つまたは複数のセンサ)は、環境内の第1交通制御装置を検出することができる。ADV101のセンサ部材411は、地図データに示されていない第1交通制御装置が検出されたと判断することができる。センサ部材411はネットワーク102を介して、第1交通制御装置のタイプおよび/または位置を示す一つまたは複数のレポートメッセージをサーバ104に送信することができる。
一実施形態では、(サーバ104の)地図部材610は、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと、地図データ612によって示された交通制御装置の第2セットの間に一つまたは複数の相違が存在するかどうかを判断することができる。例えば、地図部材610は、レポートメッセージによって示された交通制御装置のタイプおよび/または位置を特定することができる。地図部材610は、レポートメッセージによって示された交通制御装置のタイプおよび/または位置を、地図データ612によって示された交通制御装置のタイプおよび/または位置と比較して、相違があるかどうかを判断することができる。別の例では、レポートメッセージは、地図データ612と一致しない一つまたは複数の交通制御装置を示すことができる。
一実施形態では、地図部材610は、一つまたは複数の基準、パラメータ、条件に基づいて、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと地図データ612によって示された交通制御装置の第2セットの間に一つまたは複数の相違があるかどうかを判断することができる。一つの基準、条件、パラメータなどは、閾値台数のADV101および/または車両が環境に関するレポートメッセージを送信したかどうかであり得る。例えば、地図部材610は、少なくとも5、少なくとも10、または他の適切な台数のADV101および/または車両が環境内の交通制御装置の変化を示すレポートメッセージを送信したかどうかを判断することができる。少なくとも閾値台数のADV101および/または車両が環境内の交通制御装置の変化を示すレポートメッセージを送信した場合、地図部材610は、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと地図データ612によって示された交通制御装置の第2セットの間に一つまたは複数の相違が存在すると判断することができる。
一実施形態では、別の基準、条件、パラメータなどは、閾値通数の環境に関するレポートメッセージが受信されたかどうかであり得る。例えば、地図部材610は、環境内の交通制御装置の変化を示す少なくとも5、少なくとも10、または他の適切な通数のレポートメッセージが受信されたかどうかを判断することができる。少なくとも閾値通数のレポートメッセージが受信された場合、地図部材610は、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと地図データ612によって示された交通制御装置の第2セットの間に一つまたは複数の相違が存在すると判断することができる。
一実施形態では、別の基準、条件、パラメータなどは、センサ部材411がレポートメッセージを受信および/または生成した時間であり得る。例えば、ADVのセンサシステム115は、夜間または環境内の日光が少ない他の時間帯は信頼できない場合がある。例えば、カメラは夜間に鮮明な画像やビデオをキャプチャできない場合がある。地図部材610は、レポートメッセージ(例えば、一つまたは複数のレポートメッセージ)のセットが受信される時間のセット(例えば、一つまたは複数の時間)を判断することができる。地図部材610は、夜間に受信したメッセージに対して低いウェイト(例えば、ウェイト値、スケール因子など)を割り当てて、日中(または環境に日光がより多い他の時間)に受信したレポートメッセージに対して高いウェイトを割り当てることができる。
一実施形態では、別の基準、条件、パラメータなどは、センサ部材411がレポートメッセージを受信および/または生成したときの環境内の気象条件であり得る。例えば、環境内の気象条件によっては、ADVのセンサシステム115は信頼できない場合がある。例えば、濃い霧がある場合、ADV101のカメラは鮮明な画像やビデオをキャプチャできない場合がある。別の例では、LIDARユニットは雨の中で効果的に動作できない場合がある。レポートメッセージのセット(例えば、一つまたは複数のレポートメッセージ)が受信されたときに、地図部材610は環境内の気象条件を判断することができる。地図部材610は、特定の気象条件(例えば、雨、霧、雲などの悪天候)で受信したメッセージに対して低いウェイト(例えば、ウェイト値、スケール因子など)を割り当てて、良い気象条件(日光など)で受信したレポートメッセージに対して高いウェイトを割り当てることができる。
一実施形態では、別の基準、条件、パラメータなどは、センサ部材411がレポートメッセージを受信および/または生成したときの環境内の交通条件であり得る。例えば、環境内において多くのトラフィックがある場合(例えば、環境内に多くのADV101および/または他の車両がある場合)、ADVのセンサシステム115は信頼できない場合がある。例えば、環境には大量のトラフィックがあり、他のADVおよび/または車両は、カメラが画像および/またはビデオを適切にキャプチャするのを妨げる可能性がある(例えば、交通制御装置が他の車両によって遮られる可能性がある)。レポートメッセージのセット(例えば、一つまたは複数のレポートメッセージ)が受信されたときに、地図部材610は、環境内の交通状況を判断することができる。地図部材610は混雑した交通状況(例えば、トラフィックが多い場合)の間で受信したメッセージに対して低いウェイト(例えば、ウェイト値、スケール因子など)を割り当てて、それほど混雑していないまたは良好な交通状況(例えば、トラフィックが少ない場合)の間で受信したレポートメッセージに対して高いウェイトを割り当てることができる。
一実施形態では、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと、地図データ612によって示された交通制御装置の第2セットとの間に一つまたは複数の相違があるという判断に対応して、地図部材610は、更新された地図データを生成することができる。例えば、地図部材610は、地図データ612を更新して、一つまたは複数の交通制御装置を地図データ612に追加することができる。更新された地図データ612は、環境に新設された一つまたは複数の交通制御装置(例えば、以前にその地理的領域/場所に位置していなかった一つまたは複数の交通制御装置)のタイプ(例えば、標識のタイプ、車線表示のタイプ、ライトのタイプなど)および/または位置(例えば、GPS座標など)を示すことができる。別の例では、地図部材610は、地図データ612を更新して、地図データ612から一つまたは複数の交通制御装置を削除することができる。更新された地図データ612は、環境から除去された一つまたは複数の交通制御装置(例えば、地理的エリア/場所から除去された一つまたは複数の交通制御装置)の表示を削除または除去することができる。別の例では、地図部材610は、地図データ612を更新して、一つまたは複数の交通制御装置の一つまたは複数の新しい位置を示すことができる。例えば、標識(例えば、交通制御装置)は、道路の片側から反対側に移動した可能性がある。別の例では、地面に描かれた矢印(例えば、左折矢印)は特定の距離だけ移動し、以前よりも交差点寄りになった可能性がある。
一実施形態では、地図部材610によって生成された更新された地図データ612は、一つまたは複数の交通制御装置が一時的なものであることを示すことができる。例えば、道路は、工事、保守などのために一定期間閉鎖される場合がある。工事/保守作業では、一時的な道路標識(例えば、一時的な交通制御装置など)を設置して、道路の一部または全部が一時的に閉鎖され得ることを示す場合がある。一時的な道路標識はさらに、使用され得る一つまたは複数の迂回路(例えば、代替道路など)を示す場合もある。更新された地図データ612は、一時的な道路標識の位置を示すことができる。更新された地図データ612はまた、一時的な道路標識が環境(例えば、地理的エリア/場所)に存在し得る期間を示すことができる。例えば、更新された地図データ612は、一つまたは複数の一時的な交通制御装置が2日間、1週間、または他の何らかの適切な期間に亘って環境に配備または設置され得ることを示すことができる。
一実施形態では、更新された地図データ612は、環境(例えば、地理的エリア/場所)における一つまたは複数の交通制御装置が変化し得ることを示すことができる。例えば、更新された地図データ612は、ADV101および/または他の車両が環境内の一つまたは複数の交通制御装置の可能な変化を検出したことを示すことができる。しかしながら、地図部材610は、一つまたは複数の交通制御装置の可能な変化を判断することができない場合がある。例えば、地図部材610は、環境内の交通制御装置が変化したことを示したADV101および/または車両の台数が十分でないと判断する場合がある。別の例では、地図部材610は、センサデータに基づいて、一つまたは複数の交通制御装置がどのように変化したかを判断できない場合がある。
一実施形態では、地図部材610は、異なる期間ごとに更新された地図データ612を生成することができる。例えば、地図部材610は、地図データ612を更新する必要があるかどうかを定期的に判定し、更新された地図データを生成することができる(例えば、5分ごと、2時間ごと、毎日、または他の適切な期間ごとに更新するかどうかおよび/または更新された地図データを生成するかどうかを判定することができる)。別の例では、地図部材610は、環境内の交通制御装置が変化したと地図部材610が判断したときに、更新された地図データ612を生成することができる。
一実施形態では、地図部材610は、センサデータに基づいて様々な技術、方法、アルゴリズム、操作などにより、更新された地図データを生成することができる。例えば、地図部材610は、ビデオ/画像データに基づいて、画像またはビデオ処理/分析技術またはアルゴリズムを使用して、環境内の一つまたは複数の交通制御装置を識別することができる。別の例では、地図部材610は、レーダおよび/またはLIDARデータに基づいて、様々なオブジェクト検出技術またはアルゴリズムを使用して、環境内の一つまたは複数の交通制御装置を識別することができる。別の例では、地図部材610は、GPSデータ(例えば、GPS座標)を使用して、環境内の一つまたは複数の交通制御装置の位置を識別することができる。説明した例、実現方式、および/または実施形態は、さまざまなタイプのセンサデータおよび/またはさまざまな機能、技術、方法、アルゴリズム、操作などにより、地図データを生成することができる。例えば、地図部材610は、機械学習、人工知能、統計モデル、ニューラルネットワーク、クラスタリング技術などを使用することができる。
別の実施形態では、地図部材610は、ユーザ入力を受信し、かつユーザ入力に基づいて更新された地図データを生成することができる。例えば、地図部材610は、レポートメッセージおよび/またはセンサデータをユーザ(例えば、管理者)に提供することができる。ユーザはレポートメッセージやセンサデータを確認し、環境内の交通制御装置が変化したかどうか、変化した場合どのように変化したかを示す入力を行うことができる。例えば、ユーザ入力は、交通制御装置がとある場所に新設されたことを示すことができる。別の例では、ユーザ入力は、交通制御装置がとある場所から除去されたことを示すことができる。地図部材610は、ユーザ入力に基づいて地図データを更新することができる。
一実施形態では、地図部材610は、更新された地図データをADV101に送信することができる。例えば、一つまたは複数の交通制御装置が環境内で変化した(例えば、一つまたは複数の交通制御装置が新設、除去、移動などされた)と判断した後、地図部材610は、更新された地図データ612を生成し、かつ更新された地図データ612をADV101に送信することができる。
一実施形態では、地図部材610は、レポートメッセージおよび/またはセンサデータに基づいて、ADV101のセンサ部材411に問題、エラー、トラブルなどがあるかどうかを判断することができる。例えば、特定のADV101は環境内の場所で新しい交通制御装置が検出されたと報告している場合、地図部材610は、他のADV101も新しい交通制御装置を報告しているかどうかを判断することができる。閾値未満のADV101が新しい交通制御装置を報告している場合、地図部材610は、センサ部材411にエラーがあると判断することができる。例えば、地図部材610は、センサ部材411のニューラルネットワーク、機械学習システム、画像処理システムなどを更新すべきであると判断することができる。例えば、地図部材610は、ADV101がニューラルネットワークのより新しいバージョンをインストールし、更新されたニューラルネットワークを使用して画像を処理すべきであることをADV101に示すことができる。
説明されたように、ADV101(および/または他の車両)は、ADV101が環境(例えば、場所/エリア)内の交通制御装置の一つまたは複数の変化を検出したことを示すために、レポートメッセージ(例えば、メッセージ、レポート、アラートなど)および/またはセンサデータをサーバ104に送信することは、有用かもしれない。ADV101および/または他の車両は以前に環境を移動したことがあり、および/または現在その環境にある可能性があるため、ADV101および/または他の車両は環境内の交通制御装置の変化に関するより最近の情報を有し得る。これにより、サーバ104は、環境内の交通制御装置が変化したかどうかをより迅速かつ効率的に判断できるようになる。これにより、サーバ104は、(環境内の交通制御装置の変化を反映する)更新された地図データをより迅速かつ効率的に生成し、かつ更新された地図データをADV101に送信することができる。
図7は、いくつかの実施形態による例示的な地図部材610を示す図である。地図部材610は、ハードウェア(例えば、処理装置、ASIC、FPGA、回路など)、ソフトウェア(例えば、アプリケーション、ニューラルネットワーク、機械学習アプリケーションなど)、ファームウェア、またはそれらの組み合わせであり得る。地図部材610は、センサデータ部材720、検出部材730、および更新部材740を含む。センサデータ部材720、検出部材730、および更新部材740のそれぞれは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせを含み得る。
一実施形態では、センサデータ部材720は、ADVのセットからレポートメッセージのセットを受信することができる。レポートメッセージのセットは、ADVのセットによって環境内で検出された交通制御装置の第1セットを示したり、識別したりすることができる。ADVから受信したレポートメッセージのセットはさらに、センサデータ(例えば、ビデオデータ、画像データ、レーダデータ、LIDARデータなど)を含み得る。
一実施形態では、検出部材730は、環境内の一つまたは複数の交通制御装置が変化したかどうかを検出することができる。例えば、検出部材730は、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと、地図データ(例えば、図6に示される地図データ612)によって示された交通制御装置の第2セットの間に一つまたは複数の相違があるかどうかを判断することができる。
一実施形態では、検出部材730は、一つまたは複数の基準、パラメータ、条件に基づいて、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと、地図データによって示された交通制御装置の第2セットの間に一つまたは複数の相違があるかどうかを判定することができる。一つの基準、条件、パラメータなどは、閾値台数のADVおよび/または車両が環境に関するレポートメッセージを送信したかどうかであり得る。別の基準、条件、パラメータなどは、閾値通数の環境に関するレポートメッセージを受信したかどうかであり得る。もう一つの別の基準、条件、パラメータなどは、センサ部材がレポートメッセージを受信および/または生成した時間であり得る。さらなる別の基準、条件、パラメータなどは、センサ部材がレポートメッセージを受信および/または生成したときの環境内の気象条件であり得る。更に別の基準、条件、パラメータなどは、センサ部材411がレポートメッセージを受信および/または生成したときの環境内の交通条件であり得る。
一実施形態では、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと、地図データによって示された交通制御装置の第2セットとの間に一つまたは複数の相違が存在するという判断に応じて、更新部材740は、更新された地図データを生成することができる。例えば、更新部材740は、地図データを更新して、地図に示される一つまたは複数の交通制御装置の位置を追加、削除、および/または変更することができる。一実施形態では、更新部材740によって生成された更新された地図データは、一つまたは複数の交通制御装置が一時的なものであり得ることを示すことができる。別の実施形態では、更新部材740は、異なる期間ごとに更新された地図データ612を生成することができる。一実施形態では、更新部材740は、センサデータに基づいて、様々な技術、方法、アルゴリズム、操作などにより、更新された地図データを生成することができる。例えば、更新部材740は、画像またはビデオ処理/分析技術またはアルゴリズム、オブジェクト検出技術またはアルゴリズム、機械学習、人工知能、統計モデル、ニューラルネットワーク、クラスタリング技術などを使用することができる。
図8は、いくつかの実施形態による自動運転車両の経路を確定するためのプロセスの一例を示すフローチャートである。プロセス800は、ソフトウェア、ハードウェア、またはそれらの組み合わせを含み得る処理ロジックによって実行されることができる。また、プロセス800は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、プロセッサ、処理装置、中央処理装置(CPU)、システムオンチップ(SoC)など)、ソフトウェア(例えば、処理装置で稼動/実行される命令)、ファームウェア(例えば、マイクロコード)、またはそれらの組み合わせを含み得る処理ロジックによって実行されることができる。いくつかの実施形態では、プロセス800は、図1、図6、および図7に示されるサーバコンピュータ104、地図部材610、センサ部材720、検出部材730、および更新部材のうちの一つまたは複数によって実行されることができる。
プロセス800はブロック805から始まる。ブロック805において、プロセス800は、ADVのセットからレポートメッセージのセットを受信することができる。上記のように、レポートメッセージのセットは、ADVのセットによって環境内で検出された交通制御装置の第1セットを示したり、識別したりすることができる。ADVから受信したレポートメッセージのセットはさらに、センサデータ(ビデオデータ、画像データ、レーダデータ、LIDARデータなど)を含み得る。別の実施形態では、センサデータは、レポートメッセージとは別に受信されることができる。
ブロック810において、プロセス800は、環境内の一つまたは複数の交通制御装置が変化したかどうかを判断することができる。例えば、プロセス800は、レポートメッセージが、地図データに示されていない交通制御装置の存在を示しているかどうかを判断することができる。別の例では、プロセス800は、センサデータを分析して、地図データに示されていない交通制御装置を識別することができる。プロセス800は、一つまたは複数の基準、パラメータ、条件に基づいて、環境内の一つまたは複数の交通制御装置が変化したかどうか(例えば、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと、地図データによって示された交通制御装置の第2セットの間に一つまたは複数の相違があるかどうか)を判断することができる。一つの基準、条件、パラメータなどは、閾値台数のADVおよび/または車両が環境に関するレポートメッセージを送信したかどうかであり得る。別の基準、条件、パラメータなどは、閾値通数の環境に関するレポートメッセージを受信したかどうかであり得る。また別の基準、条件、パラメータなどは、センサ部材がレポートメッセージを受信および/または生成した時間であり得る。さらに別の基準、条件、パラメータなどは、センサ部材がレポートメッセージを受信および/または生成したときの環境内の気象条件であり得る。さらなる別の基準、条件、パラメータなどは、センサ部材がレポートメッセージを受信および/または生成したときの環境内の交通条件であり得る。
環境(例えば、地理的エリア/場所)の一つまたは複数の交通制御装置が変化していない場合、プロセス800は終了する。環境内の一つまたは複数の交通制御装置が変化した場合、プロセス800は、ブロック815において、センサデータを処理することができる。例えば、プロセス800は、画像データ、レーダデータ、LIDARデータ、GPSデータなどを分析して、新設、除去、または異なる場所に移動された交通制御装置を識別することができる。ブロック820において、プロセス800は、センサデータに基づいて、更新された地図データを生成する。例えば、プロセス800は、センサデータに基づいて交通制御装置とその位置(例えばGPS座標)を識別することができる。ブロック825において、プロセス800は、更新された地図データを一つまたは複数のADVに送信することができる。
上記に示され説明された構成要素の一部または全部は、ソフトウェア、ハードウェア、またはそれらの組み合わせで実施できることに留意されたい。例えば、かかる構成要素は、永続性記憶装置にインストールおよび格納されたソフトウェアとして実施することができる。このソフトウェアは、プロセッサ(図示せず)によってメモリにロードされ、メモリによって実行されることにより、本願に記載するプロセスや操作全体を実施することができる。あるいは、そのような構成要素は、集積回路(例えば、特定用途向け集積回路またはASIC)、デジタル信号プロセッサ(DSP)、またはフィールドプログラマブルゲートアレイ(FPGA)などの専用ハードウェアにプログラミングされまたは埋め込まれる実行可能コードとして実施することができる。この実行可能コードは、アプリケーションによるそれ相応のドライバーおよび/またはオペレーティングシステムを介してアクセスすることができる。さらに、そのような構成要素は、プロセッサまたはプロセッサコアの特定のハードウェアロジックとして、一つまたは複数の特定の命令を介してソフトウェア部材からアクセスできる命令セットの一部となり得る。
図9は、本開示の一実施形態とともに使用できるデータ処理システムの例を示すブロック図である。例えば、システム1500は、上述のプロセスまたは方法のいずれかを実行する上述のデータ処理システムのいずれか(例えば、地図部材610または図1のサーバ103〜104のいずれか)を表すことができる。システム1500は、さまざまな構成要素を含み得る。これらの構成要素は、集積回路(IC)、集積回路の一部、ディスクリート電子デバイス、または回路基板(例えば、コンピュータシステムのマザーボードやアドインカード)での使用に適した他のモジュール、またはコンピュータシステムのシャーシ内に組み込まれている構成要素として実施することができる。
システム1500は、コンピュータシステムの多くの構成要素の高レベルビューを示すことを意図していることにも留意されたい。ただし、特定の実施例は、追加の構成要素を有してもよく、さらに、他の実施例は、示された構成要素の異なるレイアウトを有してもよいことを理解されたい。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤー、パーソナルデジタルアシスタント(PDA)、スマートウォッチ、パーソナルコミュニケーター、ゲーミングデバイス、ネットワークルーターもしくはハブ、ワイヤレスアクセスポイント(AP)もしくはリピーター、セットトップボックス、またはそれらの組み合わせを表すことができる。さらに、単一の機械またはシステムのみが示されているが、「機械」または「システム」という用語は、単独でまたは共同して一つ(または複数)の命令セットを実行して、ここで説明される一つまたは複数の方法を実行する機械またはシステムの任意の組み合わせも含まれると解釈されるべきである。
一実施形態では、システム1500は、バスまたはインターコネクト1510を介して接続されるプロセッサ1501、メモリ1503、およびデバイス1505〜1508を含む。プロセッサ1501は、単一のプロセッサコアまたは複数のプロセッサコアを含む単一のプロセッサまたは複数のプロセッサを表し得る。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)など、一つまたは複数の汎用プロセッサを表し得る。より詳しくは、プロセッサ1501は、複雑命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実施するプロセッサ、または命令セットの組み合わせを実施するプロセッサであり得る。プロセッサ1501は、特定用途向け集積回路(ASIC)、セルラーもしくはベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、グラフィックスプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組み込みプロセッサ、または命令を処理できる他のタイプのロジックなど、一つまたは複数の専用プロセッサであり得る。
プロセッサ1501(超低電圧プロセッサなど、低電力マルチコアプロセッサソケットであり得る)は、システムのさまざまな構成要素と通信するための主処理ユニットおよび中央ハブとして機能し得る。このようなプロセッサは、システムオンチップ(SoC)として実施することができる。プロセッサ1501は、本明細書で説明される動作およびステップを実行するための命令を実行するように構成される。システム1500は、表示コントローラ、グラフィックプロセッサ、および/または表示装置を含み得るオプションのグラフィックサブシステム1504と通信するグラフィカルインターフェースをさらに含み得る。
プロセッサ1501は、メモリ1503と通信することができる。一実施形態では、メモリ1503は、所定の量のシステムメモリを提供するために複数のメモリ装置を介して実施することができる。メモリ1503は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、または他のタイプの記憶装置など、一つまたは複数の揮発性記憶(またはメモリ)装置を含み得る。メモリ1503は、プロセッサ1501または任意の他の装置によって実行される一連の命令を含む情報を格納することができる。例えば、様々なオペレーティングシステム、デバイスドライバ、ファームウェア(例えば、基本入出力システムまたはBIOS)、および/またはアプリケーションの実行可能コードおよび/またはデータは、メモリ1503にロードされ、プロセッサ1501によって実行され得る。オペレーティングシステムは、ロボットオペレーティングシステム(RОS)、Microsoft(登録商標)社のWindows(登録商標)オペレーティングシステム、アップル社のMacOS(登録商標)/iOS(登録商標)、Google(登録商標)社のAndroid(登録商標)、LINUX、UNIX、またはその他のリアルタイムまたは組み込みオペレーティングシステムなど、任意のタイプのオペレーティングシステムであり得る。
システム1500はさらに、ネットワークインターフェースデバイス1505、オプションの入力デバイス1506、および他のオプションのI/Oデバイス1507を含むデバイス1505〜1508などのI/Oデバイスを含み得る。ネットワークインターフェースデバイス1505は、無線送受信機および/またはネットワークインターフェースカード(NIC)を含み得る。この無線送受信機は、WiFi送受信機、赤外線送受信機、ブルートゥース送受信機、WiMax送受信機、無線携帯電話送受信機、衛星送受信機(全地球測位システム(GPS)送受信機)、もしくはその他の無線周波数(RF)送受信機またはそれらの組み合わせであり得る。NICはイーサネットカードであり得る。
入力デバイス1506は、マウス、タッチパッド、タッチスクリーン(表示装置1504と統合することができる)、ポインターデバイス(例えば、スタイラス)、および/またはキーボード(例えば、物理キーボードまたはタッチスクリーンの一部として表示される仮想キーボード)を含み得る。例えば、入力デバイス1506は、タッチスクリーンに接続されたタッチスクリーンコントローラを含み得る。タッチスクリーンおよびタッチスクリーンコントローラは、例えば、さまざまなタッチセンシティブテクノロジー(コンデンサ、抵抗、赤外線および表面弾性波技術を含むがこれらに限定されない)のいずれか、並びに、その他の近接センサアレイまたはタッチスクリーンと接触する一つまたは複数の点を判断するための他の素子を使用して、それらの接触、移動または中断を検出することができる。
I/Oデバイス1507は、音声装置を含み得る。音声装置は、音声認識、音声複製、デジタル録音、および/または電話機能などの音声対応機能を容易にするために、スピーカおよび/またはマイクロホンを含み得る。他のI/Oデバイス1507はさらに、ユニバーサルシリアルバス(USB)ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ(例えば、PCI−PCIブリッジ)、センサ(例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなどのモーションセンサ)、またはそれらの組み合わせを含み得る。デバイス1507はさらに、結像処理サブシステム(例えば、カメラ)を含み得る。この結像処理サブシステムは、電荷結合素子(CCD)または相補型金属酸化物半導体(CMOS)光学センサなど、カメラ機能(例えば、写真およびビデオセグメントの記録)を促進するための光学センサを含み得る。一部のセンサは、センサハブ(図示せず)を介してインターコネクト1510に接続されることができるが、キーボードやサーマルセンサなどの他のデバイスは、システム1500の特定の構成または設計に応じて、組み込みコントローラー(図示せず)によって制御されることができる。
データ、アプリケーション、一つまたは複数のオペレーティングシステムなどの情報の永続性記憶を実現するために、大容量記憶装置(図示せず)もプロセッサ1501に接続され得る。様々な実施形態においては、より薄くてより軽量なシステム設計を実現しながら、システムの応答性を改善するために、かかる大容量記憶装置はソリッドステートデバイス(SSD)を介して実施することができる。ただし、別の実施形態では、大容量記憶装置は主にハードディスクドライブ(HDD)を使用して実施できる。ここでは、より小さい容量のSSD記憶装置がSSDのキャッシュとして機能し、停電イベント期間中のコンテキスト状態および他のかかる情報の不揮発性記憶を実現する。これにより、システムアクティビティが再開するときに通電を速く実現することができる。加えて、フラッシュデバイスは、例えば、シリアルペリフェラルインターフェース(SPI)を介してプロセッサ1501に接続され得る。かかるフラッシュデバイスは、システムのBIOSや他のファームウェアを含むシステムソフトウェアの不揮発性記憶を実現することができる。
記憶デバイス1508は、本明細書で説明される方法または機能のいずれか一つまたは複数を具現化する一つまたは複数の命令セットまたはソフトウェア(例えば、モジュール、ユニット、および/またはロジック1528)が格納されるコンピュータアクセス可能記憶媒体1509(「機械可読記憶媒体」または「コンピュータ可読媒体」とも呼ばれる)を含み得る。処理モジュール/ユニット/ロジック1528は、上記構成要素(例えば、地図部材610、センサ部材411など)のいずれかを表し得る。処理モジュール/ユニット/ロジック1528はさらに、データ処理システム1500、メモリ1503およびプロセッサ1501によって実行される期間中に、完全にまたは少なくとも部分的にメモリ1503内および/またはプロセッサ1501内に存在し得る。データ処理システム1500、メモリ1503およびプロセッサ1501はまた、機械アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528はさらに、ネットワークを通じて、ネットワークインターフェースデバイス1505を介して送信または受信することができる。
コンピュータ可読記憶媒体1509を使用して、上記のソフトウェア機能の一部を永続的に保存することもできる。例示的な実施形態では、コンピュータ可読記憶媒体1509は単一の媒体として示されているが、「コンピュータ可読記憶媒体」という用語は、一つまたは複数の命令セットを格納する単一の媒体または複数の媒体(例えば、集中型または分散型データベースおよび/または関連するキャッシュとサーバ)を含むものとする。「コンピュータ可読記憶媒体」という用語はまた、機械によって実行され、この機械に本開示の方法のいずれか一つまたは複数を実行させる命令セットを格納または符号化することができる任意の媒体を含むものとする。したがって、「コンピュータ可読記憶媒体」という用語は、ソリッドステートメモリ、光学および磁気媒体、またはその他の非一時的機械可読媒体を含むが、これらに限定されないものとする。
本明細書で説明された処理モジュール/ユニット/ロジック1528、構成要素、および他の特徴は、ディスクリートハードウェア構成要素として実施するか、またはASIC、FPGA、DSP、もしくは同様のデバイスなどのハードウェア部材の機能に統合することができる。また、処理モジュール/ユニット/ロジック1528は、ハードウェアデバイス内のファームウェアまたは機能性回路として実施することができる。さらに、処理モジュール/ユニット/ロジック1528は、ハードウェアデバイスとソフトウェア部材の任意の組み合わせで実施することができる。
システム1500は、データ処理システムの様々な構成要素を有するように示されているが、構成要素を相互接続する任意の特定のアーキテクチャまたは方法を表すことを意図していないことに留意されたい。というのは、そのような詳細は、本開示の実施形態とは密接な関係がないからである。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、および/または他のデータ処理システムは、本開示の実施形態とともに使用できることを理解されたい。
前述の詳細な説明の一部は、コンピュータメモリ内のデータビットに対する演算のアルゴリズムおよび記号表現の観点から提示されている。これらのアルゴリズムの説明と表現は、データ処理の分野の当業者がそれらの作業実質を所属分野の他の当業者に最も効果的に伝達するために使用する方法である。ここでは、アルゴリズムは、一般的に、望ましい結果を導く一貫した操作のシーケンスであると考えられる。これらの操作とは、物理量の物理的処置が必要とされるものである。
ただし、これらの用語および類似の用語はすべて適切な物理量に関連付けられるものであり、これらの量を標識しやすくするためのものに過ぎないことに留意されたい。上記の説明において他の形で明記しない限り、本明細書全体において、用語(例えば、添付の特許請求の範囲に記載されている用語)による説明とは、コンピュータシステムまたは類似の電子式計算装置の動作および処理を指し、かかるコンピュータシステムまたは電子式計算装置は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されるデータを制御するとともに前記データをコンピュータシステムメモリもしくはレジスタまたは他のこのような情報記憶装置、伝送もしくは表示装置内の同様に物理量として表される他のデータに変換する。
本開示の実施形態は、本明細書の動作を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的コンピュータ可読媒体に保存される。機械可読媒体は、機械(例えば、コンピュータ)によって読み取り可能な形式で情報を保存するための任意のメカニズムを含む。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械(例えば、コンピュータ)可読記憶媒体(例えば、読み取り専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス)を含み得る。
前の図に示されているプロセスまたは方法は、ハードウェア(例えば、回路、専用ロジックなど)、ソフトウェア(例えば、非一時的コンピュータ可読媒体で具体化されるもの)、またはそれらの組み合わせを含む処理ロジックによって実行されることができる。プロセスまたは方法は、以上で特定の順序に応じて説明されたが、前記動作の一部が異なる順序で実行できることを理解されたい。さらに、一部の動作は、順番ではなく並行して実行されることができる。
本開示の実施形態は、いずれの特定のプログラミング言語を参照することなく記載されている。本明細書で説明される本開示の実施形態の教示を実施するために、様々なプログラミング言語を使用できることを理解されたい。
上記の明細書において、本開示の実施形態は、その特定の例示的な実施形態を参照しながら説明されてきた。添付の特許請求の範囲に記載された本開示のより広い精神および範囲から逸脱することなく、それに様々な変更を加えることができることは明らかであろう。したがって、本明細書と図面は、限定的な意味でなく、例示的な意味で理解されるべきである。
本開示の実施形態は主に自動運転車両の動作に関し、更に詳しくは、自動運転車両(ADV)の地図データの更新に関する。
自律走行モード(例えば、無人運転)で走行する車両は、乗員、特に運転手を運転関連の作業から解放することができる。自律走行モードで運行している場合、車両は車両センサを使用して、任意の場所までナビゲートされることが可能である。そのため、車両は、ヒューマンインタラクションが最も少ない場合、又は乗員がいない場合などに車両を走行させることが可能となる。
動作の計画と制御は、自律走行における重要な操作である。特に、軌跡計画は自律走行システムにおける重要な要素である。従来の軌跡計画技術は、安定した軌跡を生成するために、自動運転車両の案内経路(例えば、道路の中心線)である高品質の基準線に大きく依存している。そのような情報は、地図から取得できる。
自律走行システムのカメラベースの検知スキームは、車線、信号機、交通標識などのいくつかのリアルタイムの地図情報を検出する。これらのリアルタイムの地図情報は、高解像度(HD)地図と比較して、最新の地図情報を反映できる。例えば、HD地図に存在しない、新設された横断歩道を、感知によって検出することができる。ただし、このような地図情報はリアルタイムで計算されたものであるため、精度が高解像度地図に及ばない。
本開示の一態様によれば、自動運転車両に対して地図データを生成するためのコンピュータ実施方法であって、自動運転車両のセットから、前記自動運転車両のセットによって環境中に検出された交通制御装置の第1セットを示すレポートメッセージのセットを受信するステップと、交通制御装置の前記第1セットと前記環境の地図データが示した交通制御装置の第2セットの間に一つまたは複数の相違が存在するかどうかを判定するステップと、交通制御装置の前記第1セットと交通制御装置の前記第2セットの間に一つまたは複数の相違が存在するという判定に応じて、更新された地図データを生成するステップと、更新された地図データを前記自動運転車両のセットまで送信するステップと、を備えるコンピュータ実施方法が提供される。
本開示のもう一つの態様によれば、命令が格納されている非一時的機械可読媒体であって、前記命令はプロセッサによって実行されると、前記プロセッサに操作を実行させ、前記操作は、自動運転車両のセットから、前記自動運転車両のセットによって環境中に検出された交通制御装置の第1セットを示すレポートメッセージのセットを受信するステップと、交通制御装置の前記第1セットと前記環境の地図データが示した交通制御装置の第2セットの間に一つまたは複数の相違が存在するかどうかを判定するステップと、交通制御装置の前記第1セットと交通制御装置の前記第2セットの間に一つまたは複数の相違が存在するという判定に応じて、更新された地図データを生成するステップと、更新された地図データを前記自動運転車両のセットまで送信するステップと、を備える非一時的機械可読媒体が提供される。
本開示の更なる一態様によれば、プロセッサと前記プロセッサに接続して命令を格納するメモリとを備えるデータ処理システムであって、前記命令は前記プロセッサによって実行される際に前記プロセッサに操作を実行させ、前記操作は、自動運転車両のセットから、前記自動運転車両のセットによって環境中に検出された交通制御装置の第1セットを示すレポートメッセージのセットを受信するステップと、交通制御装置の前記第1セットと前記環境の地図データが示した交通制御装置の第2セットの間に一つまたは複数の相違が存在するかどうかを判定するステップと、交通制御装置の前記第1セットと交通制御装置の前記第2セットの間に一つまたは複数の相違が存在するという判定に応じて、更新された地図データを生成するステップと、更新された地図データを前記自動運転車両のセットまで送信するステップと、を備えるデータ処理システムが提供される。
本開示の実施形態は実施例で示されるが、添付される図面に限定されない。なお、図面中、同一要素には同一符号を付すこととする。
いくつかの実施形態によるネットワークシステムを示すブロック図である。
いくつかの実施形態による自動運転車両の一例を示すブロック図である。
いくつかの実施形態による自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。
いくつかの実施形態による自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。
いくつかの実施形態による感知モジュールの一例を示すブロック図である。
いくつかの実施形態による計画モジュールの一例を示すブロック図である。
自動運転車両(ADV)が現在位置している、および/または以前に位置していた可能性がある環境の例示的な地図を示す図である。
いくつかの実施形態による例示的なシステムアーキテクチャを示す図である。
いくつかの実施形態による例示的な地図部材を示す図である。
いくつかの実施形態による地図データを生成するプロセスの一例を示すフローチャートである。
いくつかの実施形態によるデータ処理システムを示すブロック図である。
以下に説明される詳細を参照しながら本開示の様々な実施形態及び態様を説明し、添付図面には上記の各実施形態が示される。以下の説明および図面は、本開示を例示するものであり、本開示を限定するものとして解釈されてはならない。本開示の様々な実施形態への完全な理解に供するために複数の特定の詳細が記載されているが、本開示の実施形態をめぐる簡潔な説明に供するために周知または従来技術の詳細が記載されない場合もある。
本明細書における「一実施形態」または「実施形態」への言及は、実施形態に関連して説明される特定の特徴、構造、または特性が本開示の少なくとも一つの実施形態に含まれ得ることを意味する。本明細書の様々な場所における「一実施形態では」という表現は、必ずしもすべてが同じ実施形態を指すとは限らない。
いくつかの実施形態によれば、環境内の交通制御装置の変化を検出するための新しい方法が利用され得る。ADVおよび/または他の車両は、環境内の一つまたは複数の交通制御装置が変化したことを示すレポートメッセージおよび/またはセンサデータ(例えば、クラウドソーシングレポートスキーム)を送信することができる。サーバは、レポートメッセージおよび/またはセンサデータを受信および/または処理することができる。別の実施形態によれば、環境の更新された地図データを生成するための新しい方法が利用され得る。サーバは、レポートメッセージおよび/またはセンサデータの一つまたは複数の基準、パラメータ、条件などが満たされているかどうかを判断することができる。一つまたは複数の基準、パラメータ、条件などが満たされた場合、サーバは更新された地図データを生成し、交通制御装置の変化(交通制御装置の新設、除去、別の場所への移動など)を表すことができる。本明細書で説明される実施形態、実施方式、例示などは、サーバが環境内の交通制御装置の変化をより迅速かつ効率的に検出できるようにする。本明細書で説明される実施形態、実施方式、例示などはさらに、サーバが環境内の交通制御装置の変化を反映するために更新された地図データを生成し、更新された地図データをADVに送信できるようにする。
図1は、本開示のいくつかの実施形態による自動運転車両のネットワーク構成を示すブロック図である。図1を参照すると、ネットワーク構成100には、ネットワーク102を介して一つまたは複数のサーバ103〜104に通信可能に接続され得る自動運転車両101が含まれる。一台の自動運転車両しか示されていないが、複数の自動運転車両はネットワーク102を介して互いに接続および/または103〜104に接続されることができる。ネットワーク102は、有線または無線のローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク、またはそれらの組み合わせなど、任意のタイプのネットワークであり得る。サーバ103〜104は、ネットワークまたはクラウドサーバ、アプリケーションサーバ、バックエンドサーバ、またはそれらの組み合わせなど、任意のタイプのサーバまたはサーバクラスターであり得る。サーバ103〜104は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図および関心地点(MPOI)サーバ、またはロケーションサーバなどであり得る。
自動運転車両とは、運転者からの入力がほとんどまたはまったくない状態で車両がナビゲートされて環境を通過する自律走行モードになるように構成できる車両を指す。そのような自動運転車両は、車両の走行環境に関連する情報を検出するように構成された一つまたは複数のセンサを有するセンサシステムを含み得る。前記車両とそれに関連するコントローラは、検出された情報によりナビゲートされて前記環境を通過する。自動運転車両101は、手動モード、全自律走行モード、または部分自律走行モードで走行することができる。
一実施形態では、自動運転車両101は、感知・計画システム110、車両制御システム111、無線通信システム112、ユーザインターフェースシステム113およびセンサシステム115を含むが、これらに限定されない。自動運転車両1011は、エンジン、車輪、ステアリングホイール、変速機などのような、一般車両に含まれる特定の共通構成要素も含み得る。車両制御システム111および/または感知・計画システム110は、加速信号またはコマンド、減速信号またはコマンド、ステアリング信号またはコマンド、ブレーキ信号またはコマンドなどのような様々な通信信号および/またはコマンドを通じて、前記構成要素を制御することができる。
構成要素110〜115は、インターコネクタ、バス、ネットワーク、またはそれらの組み合わせを介して互いに通信可能に接続されることができる。例えば、構成要素110〜115は、コントローラエリアネットワーク(CAN)バスを介して互いに通信可能に接続されることができる。CANバスは、マイクロコントローラーとデバイスがホストなしでアプリケーションにおいて互いに通信できるように設計された車両バス規格である。もともとは車内の多重化された電気配線用に設計されたメッセージベースのプロトコルであるが、他の多くの環境でも使用されている。
ここで図2を参照すると、一実施形態では、センサシステム115は、一つまたは複数のカメラ211、全地球測位システム(GPS)ユニット212、慣性測定ユニット(IMU)213、レーダユニット214、および光検出・測距(LIDAR)ユニット215を含むが、これらに限定されない。GPSユニット212は、自動運転車両の位置に関する情報を提供するように動作可能な送受信機を含み得る。IMUユニット213は、慣性加速度に基づいて自動運転車両の位置および向きの変化を感知することができる。レーダユニット214は、自動運転車両のローカル環境内のオブジェクトを検知するために無線信号を利用するシステムを表すことができる。一部の実施形態では、オブジェクトの検知に加えて、レーダユニット214は、オブジェクトの速度および/または進行方向をさらに検知することができる。LIDARユニット215は、レーザを使用して、自動運転車両が位置する環境内のオブジェクトを感知することができる。他のシステム構成要素に加えて、LIDARユニット215は、一つまたは複数のレーザー源、レーザースキャナー、および一つまたは複数の検出器も含み得る。カメラ211は、自動運転車両を取り巻く環境の画像を取得するための一つまたは複数の装置を含み得る。カメラ211は、スチルカメラおよび/またはビデオカメラであり得る。カメラは、例えば、回転および/または傾斜プラットフォームに取り付けられることにより、機械的に移動可能となり得る。
センサシステム115はさらに、ソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ、および音声センサ(例えば、マイク)などの他のセンサも含み得る。音声センサは、自動運転車両を取り巻く環境から音を収集するように構成されることができる。ステアリングセンサは、ステアリングホイールの操舵角、車両の車輪の変向角度、またはそれらの組み合わせを感知するように構成されることができる。スロットルセンサとブレーキセンサは、それぞれ車両のスロットル位置とブレーキ位置を検出する。場合によっては、スロットルセンサとブレーキセンサを統合スロットル/ブレーキセンサとして統合することができる。
一実施形態では、車両制御システム111は、ステアリングユニット201、スロットルユニット202(「加速ユニット」とも呼ばれる)、およびブレーキユニット203を含むが、これらに限定されない。ステアリングユニット201は、車両の向きまたは進行方向を調整するために使用される。スロットルユニット202は、電気モータまたはエンジンの速度を制御するために使用され、これにより、車両の速度および加速度が制御される。ブレーキユニット203は、車両の車輪またはタイヤを減速させる摩擦を提供することにより車両を減速させる。図2に示される構成要素は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実施できることに留意されたい。
図1に戻ると、無線通信システム112は、自動運転車両101と、デバイス、センサ、他の車両などの外部システムとの間の通信を可能にする。例えば、無線通信システム112は、一つまたは複数の装置と直接無線通信することができ、またはネットワーク102を介して無線通信することができる。例えば、ネットワーク102を介してサーバ103〜104と通信することができる。無線通信システム112は、任意のセルラー通信ネットワークまたは無線ローカルエリアネットワーク(WLAN)(例えば、WiFi)を使用して別の構成要素またはシステムと通信することができる。無線通信システム112は、例えば、赤外線リンク、ブルートゥースなどを使用して、装置(例えば、乗員のモバイルデバイス、表示装置、車両101内のスピーカ)と直接通信することができる。ユーザインターフェースシステム113は、例えば、キーボード、タッチスクリーンディスプレイデバイス、マイクロホン、およびスピーカを含む、車両101内において実施された周辺機器の一部であり得る。
自動運転車両101の機能の一部または全部は、特に自律走行モードで動作している場合、感知・計画システム110によって制御または管理され得る。感知・計画システム110は、必要なハードウェア(例えば、プロセッサ、メモリ、記憶装置)およびソフトウェア(例えば、オペレーティングシステム、計画およびルーティングプログラム)を含むことにより、センサシステム115、制御システム111、無線通信システム112、および/またはユーザインターフェースシステム113から情報を受信し、受信した情報を処理し、出発地から目的地までの経路またはルートを計画し、そして計画および制御情報に基づいて車両101を運転することができる。あるいは、感知・計画システム110と車両制御システム111を統合することもできる。
例えば、乗員としてのユーザは、例えばユーザインターフェイスを介して、旅程の出発地と目的地を指定することができる。感知・計画システム110は、旅程関連データを取得する。例えば、感知・計画システム110は、サーバ103〜104の一部であり得るMPOIサーバから位置およびルート情報を取得することができる。ロケーションサーバはロケーションサービスを提供し、MPOIサーバは地図サービスと特定のロケーションのPOIを提供する。あるいは、そのような位置およびMPOI情報は、感知・計画システム110の永続性記憶装置にローカルキャッシュされることができる。
感知・計画システム110はまた、自動運転車両101がルートに沿って移動するときに、交通情報システムまたはサーバ(TIS)からリアルタイムの交通情報を取得することもできる。サーバ103〜104は第三者機関によって操作され得ることに留意されたい。あるいは、サーバ103〜104の機能を感知・計画システム110に統合することができる。リアルタイムの交通情報、MPOI情報と位置情報、およびセンサシステム115によって検出または検知されたリアルタイムのローカル環境データ(障害物、オブジェクト、近くの車両など)に基づいて、感知・計画システム110は最適なルートを計画し、かつ計画された経路に従って、例えば制御システム111を介して車両101を運転して、指定された目的地に安全かつ効率的に到着することができる。
サーバ103は、様々なクライアントのためのデータ解析サービスを実行するデータ解析システムであり得る。一実施形態では、データ解析システム103は、データコレクタ121と機械学習エンジン122を含む。データコレクタ121は、様々な車両(自動運転車両または人間の運転手によって運転される一般車両)から運転統計データ123を収集する。運転統計データ123は、異なる時点で発行された運転コマンド(例えば、スロットルコマンド、ブレーキコマンド、制御コマンド)情報と、車両のセンサにより捕捉された車両の応答(例えば、速度、加速、減速、方向)情報を含む。運転統計データ123はさらに、例えば、ルート(出発地および目的地を含む)、MPOI、道路状態、気象状態などの異なる時点での運転環境を記述する情報も含み得る。
運転統計123に基づいて、機械学習エンジン122は、さまざまな目的のために、ルール、アルゴリズムおよび/またはモデル124のセットを生成または訓練する。例えば、運転統計データ123から取得できるハードウェアの特徴(センサ仕様や特定の車両設計など)に基づいて、制約のセットを定義することもできる。
図3Aおよび3Bは、いくつかの実施形態による自動運転車両と共に使用するための感知・計画システムの一例を示すブロック図である。システム300は、感知・計画システム110、制御システム111、およびセンサシステム115を含むがこれらに限定されない、図1の自動運転車両101の一部として実施することができる。図3Aおよび図3Bを参照すると、感知・計画システム110は、測位モジュール301、感知モジュール302、予測モジュール303、決定モジュール304、計画モジュール305、制御モジュール306、およびルーティングモジュール307を含むが、これらに限定されない。
モジュール301から307の一部または全部は、ソフトウェア、ハードウェア、またはそれらの組み合わせで実施され得る。例えば、これらのモジュールは、永続性記憶装置352にインストールされ、メモリ351にロードされ、かつ一つまたは複数のプロセッサ(図示せず)によって実行され得る。これらのモジュールの一部または全部が、図2の車両制御システム111のモジュールの一部または全部に通信可能に接続または統合され得ることに留意されたい。モジュール301から307のいくつかは、統合モジュールとして一体に統合されることができる。
測位モジュール301は、(例えば、GPSユニット212を利用して)自動運転車両300の現在の位置を確定し、ユーザの旅程またはルートに関連するすべてのデータを管理する。測位モジュール301(「地図およびルートモジュール」とも呼ばれる)は、ユーザの旅程またはルートに関連するすべてのデータを管理する。ユーザは、例えば、ユーザインターフェイスを介してログインし、旅程の出発地と目的地を指定することができる。測位モジュール301は、地図およびルート情報311などの自動運転車両300の他の構成要素と通信して、旅程関連データを取得する。例えば、測位モジュール301は、ロケーションサーバや地図およびPOI(MPOI)サーバからロケーションおよびルート情報を取得することができる。ロケーションサーバはロケーションサービスを提供し、MPOIサーバは地図サービスと特定のロケーションのPOIを提供するため、地図およびルート情報311の一部としてキャッシュされることができる。自動運転車両300がルートに沿って移動するとき、測位モジュール301は、交通情報システムまたはサーバからリアルタイムの交通情報を取得することもできる。一実施形態では、地図およびルート情報311はあらかじめ永続性記憶装置352に格納されることができる。例えば、地図・ルート情報311はあらかじめ永続性記憶装置352にダウンロードまたはコピーされることができる。
センサシステム115によって提供されたセンサデータと、測位モジュール301によって取得された測位情報に基づいて、感知モジュール302は、周囲環境への感知を確定する。感知情報は、一般運転手ならば運転手が運転している車両の周りで何を感知するかを表すことができる。感知には、例えば、オブジェクトの形態の車線構成(例:直進車線または曲線車線)、信号機の信号、他の車両の相対位置、歩行者、建物、横断歩道、またはその他の交通関連標識(例えば、止まれ標識、ゆずれ標識)などが含まれ得る。
感知モジュール302は、一つまたは複数のカメラによって取得された画像を処理および分析して、自動運転車両の環境内のオブジェクトおよび/または特徴を識別するコンピュータビジョンシステムまたはコンピュータビジョンシステムの機能を含み得る。オブジェクトには、交通信号、道路境界、他の車両、歩行者および/または障害物などが含まれ得る。コンピュータビジョンシステムでは、オブジェクト認識アルゴリズム、ビデオトラッキング、その他のコンピュータビジョン技術を使用できる。いくつかの実施形態では、コンピュータビジョンシステムは、環境地図の作成、オブジェクトの追跡、オブジェクトの速度推定などをすることができる。感知モジュール302は、レーダおよび/またはLIDARなどの他のセンサによって提供される他のセンサデータに基づいてオブジェクトを検出することもできる。
各オブジェクトについて、予測モジュール303は、このオブジェクトがこの状況下でどのように挙動するかを予測する。この時点で運転環境を感知した感知データに基づき、地図・ルート情報311と交通ルール312のセットを考慮して予測が実行される。例えば、オブジェクトが反対方向の車両であり、かつ現在の運転環境に交差点が含まれる場合、予測モジュール303は、該車両が直進するか曲がるかを予測する。感知データは交差点に信号機がないことを示した場合、予測モジュール303は、車両が交差点に入る前に完全に停止する必要があるかもしれないと予測することができる。感知データは、車両が現在左折専用車線または右折専用車線にあることを示した場合、予測モジュール303は、車両がそれぞれ左折または右折する可能性が高いと予測することができる。いくつかの実施形態では、以下でより詳しく説明されるように、自動運転車両が環境または地理的領域/場所を移動するときに、走行中において環境または地理的領域/場所の地図・ルート情報311を生成することができる。
各オブジェクトについて、決定モジュール304は、オブジェクトをどのように処理するかに関して決定を下す。例えば、特定のオブジェクト(例えば、交差ルートにおける他の車両)およびオブジェクトを説明するメタデータ(例えば、速度、方向、曲がり角)について、決定モジュール304は、オブジェクトに会う方法(例えば、追い越し、譲り、停止、超過)を決定する。決定モジュール304は、永続性記憶装置352に格納され得る交通ルールまたは運転ルール312のルールセットに基づいてそのような決定を行うことができる。
ルーティングモジュール307は、出発地から目的地までの一つまたは複数のルートまたは経路を提供するように構成されている。例えば、ユーザから受信した出発地ロケーションから目的地ロケーションまでの所定の旅程について、ルーティングモジュール307は、地図・ルート情報311を取得し、出発地ロケーションから目的地ロケーションまでのすべての可能なルートまたは経路を確定する。いくつかの実施形態では、地図・ルート情報311は、以下でより詳しく説明されるように、感知モジュール302によって生成され得る。決定された出発地ロケーションから目的地ロケーションまでの各ルートについて、ルーティングモジュール307は、地形図の形で基準線を生成することができる。基準線とは、他の車両、障害物、または交通状況に干渉されない理想的なルートまたは経路を指す。言い換えると、道路に他の車両、歩行者、障害物がない場合、ADVは基準線に完全にまたは厳密に従わなければならない。次いで、地形図は決定モジュール304および/または計画モジュール305に提供される。決定モジュール304および/または計画モジュール305は、すべての可能なルートを調べることにより、他のモジュールによって提供された他のデータ(例えば、測位モジュール301からの交通状況、感知モジュール302によって感知された運転環境、および予測モジュール303によって予測された交通状況)に基づいて、最適なルートの一つを選択して修正する。その時点での特定の運転環境によっては、ADVを制御するために使用される実際の経路またはルートは、ルーティングモジュール307によって提供された基準線に近いか、または異なる場合がある。
感知されたオブジェクトのそれぞれに対する決定に基づいて、計画モジュール305は、ルーティングモジュール307によって提供された基準線を基準として、自動運転車両のために経路またはルートおよび運転パラメータ(例えば、距離、速度、および/または曲がり角)を計画する。言い換えると、指定されたオブジェクトについて、決定モジュール304はこのオブジェクトに対して何をするかを決定し、計画モジュール305はどのようにするかを決定する。例えば、指定されたオブジェクトについて、決定モジュール304はこのオブジェクトを追い越すことを決定することができ、計画モジュール305はこのオブジェクトを左側から追い越すか、それとも右側から追い越すかを決定することができる。計画および制御データは、計画モジュール305によって生成され、車両300が次の移動サイクル(例えば、次のルート/経路区間)でどのように移動するかを記述する情報を含む。例えば、計画および制御データは、30マイル/時(mph)で10メートルを移動し、次に25mphで右車線に移動するように車両300に命令することができる。
計画および制御データに基づいて、制御モジュール306は、計画および制御データによって定義されたルートまたは経路に従って、適切なコマンドまたは信号を車両制御システム111に送信することにより、自動運転車両を制御および運転する。かかる計画および制御データには、ルートまたは経路に沿って異なる時点で適切な車両設定または運転パラメータ(例えば、スロットル、ブレーキ、ターニングコマンド)を使用してルートまたは経路の第1箇所から第2箇所まで車両を運転するための十分な情報が含まれる。
一実施形態では、計画段階は、複数の計画サイクル(「コマンドサイクル」とも呼ばれる。例えば、100ミリ秒(ms)間隔)で実行される。計画サイクルまたはコマンドサイクルごとに、計画および制御データに基づいて、一つまたは複数の制御コマンドが発行される。言い換えると、100msごとに、計画モジュール305は、例えば、目標位置およびADVが目標位置に到達するために必要な時間を含む次のルートセグメントまたは経路区間を計画する。あるいは、計画モジュール305は、特定の速度、方向、および/または操舵角などをさらに指定することができる。一実施形態では、計画モジュール305は、次の所定の期間(例えば、5秒)のルートセグメントまたは経路区間を計画する。各計画サイクルについて、計画モジュール305は、前のサイクルで計画された目標位置に基づいて、現在の期間(例えば、次の5秒)の目標位置を計画する。次いで、制御モジュール306は、現在のサイクルの計画および制御データに基づいて、一つまたは複数の制御コマンド(例えば、スロットル制御コマンド、ブレーキ制御コマンド、ステアリング制御コマンド)を生成する。
決定モジュール304および計画モジュール305は、統合モジュールとして統合できることに留意されたい。決定モジュール304/計画モジュール305は、自動運転車両の走行経路を確定するナビゲーションシステムまたはナビゲーションシステムの機能を含み得る。例えば、ナビゲーションシステムは、自動運転車両を次のような経路に沿って移動させるための一連の速度および進行方向を決定することができる。かかる経路は、自動運転車両が最終目的地までの道路ベースの経路を前進しながら、感知された障害物をほとんど回避することを可能にする。目的地は、ユーザインターフェースシステム113を介したユーザ入力によって設定されることができる。ナビゲーションシステムは、自動運転車両の走行中において走行経路を動的に更新できる。ナビゲーションシステムは、自動運転車両の走行経路を決定するために、GPSシステムと一つまたは複数の地図からのデータ(感知モジュール302によって生成されたか、またはあらかじめ格納/ダウンロードされたもの)を統合することができる。
決定モジュール304/計画モジュール305はさらに、自動運転車両の環境内の潜在的な障害物を識別、評価、回避するか、またはその他の形で追い越すための衝突防止システムまたは衝突防止システムの機能も含み得る。例えば、衝突防止システムは、制御システム111内の一つまたは複数のサブシステムを操作して急ハンドル操作、曲がり操作、ブレーキ操作などを行うことにより、自動運転車両のナビゲーション中の変化を実現することができる。衝突防止システムは、周囲の交通パターン、道路状況などに基づいて、実行可能な障害物回避操作を自動的に決定することができる。衝突防止システムは、自動運転車両が急ハンドルして進入しようとする隣接エリアにある車両、建物障害物などを他のセンサシステムが検出したときに急ハンドル操作が行われないように構成されることができる。衝突防止システムは、実行可能でかつ自動運転車両の乗員の安全性を最優先する操作を自動的に選択することができる。衝突防止システムは、自動運転車両の車室内において最小限の加速の発生が見込まれる回避操作を選択することができる。
ルーティングモジュール307は、地図情報(例えば、道路セグメントの情報、道路セグメントの車両車線、車線から縁石までの距離)に基づいて、基準線を生成することができる。例えば、道路を、三つの道路セグメントを表すセクションまたはセグメント{A、B、C}に分割することができる。道路セグメントAの三つの車線{A1、A2、A3}を例示することができる。基準線は、基準線に沿って基準点を生成することにより生成される。例えば、車両車線の場合、ルーティングモジュール307は、地図データ(感知モジュール302によって生成されたか、またはあらかじめ格納/ダウンロードされたもの)によって提供された二つの対向する縁石またはエンドポイントの中間点を結ぶことができる。該中間点と、収集された異なる時点でこの車両車線で以前に運転された車両のデータポイントを表す機械学習データに基づいて、ルーティングモジュール307は、車両車線の所定の近接範囲内で収集されたデータポイントのサブセットを選択し、収集されたデータポイントのサブセットを考慮して該中間点に平滑化関数を適用することにより、基準点を計算することができる。
基準点または車線基準点に基づいて、ルーティングモジュール307は、生成された基準線が車両車線上のADVを制御するための基準線として使用されるように基準点を補間することにより基準線を生成することができる。いくつかの実施形態では、基準線を表す基準点テーブルおよび道路セグメントテーブルは、ADVがADVの地理的位置および運転方向に基づいて基準線を生成できるように、リアルタイムでADVにダウンロードされる。例えば、一実施形態では、ADVは、前方の次の道路セグメントを表す経路セグメント識別子によって経路セグメントのルーティングサービスを要求することにより、および/またはADVのGPS位置に基づいて、基準線を生成することができる。経路セグメント識別子に基づいて、ルーティングサービスは、対象の道路セグメントのすべての車線の基準点を含むADV基準点テーブルに戻ることができる。ADVは、経路セグメントの車線の基準点を検索して、車両車線におけるADVを制御するための基準線を生成することができる。
図4Aは、いくつかの実施形態による感知モジュール302の一例を示すブロック図である。図4Aを参照すると、感知モジュール302は、センサ部材411を含むが、これに限定されない。モジュール411は、ソフトウェア、ハードウェア、またはそれらの組み合わせで実施することができる。センサ部材411は、ADVの一つまたは複数のセンサからセンサデータを取得することができる。例えば、センサ部材411は、一つまたは複数のセンサからセンサデータを定期的に要求または問い合わせることができる(例えば、数秒ごと、毎秒、または他の適切な期間ごとにセンサからセンサデータを要求することができる)。別の例では、センサ部材411は、一つまたは複数のセンサから受信するセンサデータを聞きまたは待つことができる。例えば、センサ部材411はバス、通信チャネル(有線または無線)、配線、ワイヤ、ピン、トラックなどを継続的に監視するように構成できるため、一つまたは複数のセンサがセンサデータを生成したとたん、センサ部材411はセンサデータを受信することができる。
一実施形態では、センサは、カメラ(例えば、デジタルカメラ、ビデオカメラ、ビデオレコーダなど)または画像をキャプチャまたは記録することができる他の装置であり得る。カメラによって生成され、センサ部材411によって受信されるセンサデータは、「ビデオデータ」と呼ばれる。ビデオデータの例は、デジタル画像(例:Joint Photographic Experts Group(JPEG)画像)、ビデオフレーム、Motion Picture Experts Group(MPEG)データ、またはカメラでキャプチャされた光学画像を表すのに適したその他のデータを含むが、これらに限定されない。別の実施形態では、センサは、レーダユニット(例えば、図2に示されるレーダユニット214)または電波(例えば、高周波または信号)を使用してADVを囲むオブジェクトの位置、範囲、角度、および/または速度を特定できる他の装置であり得る。レーダユニットによって生成されたセンサデータは、「レーダデータ」と呼ばれる。レーダデータは、レーダユニットによって検出されたオブジェクトの位置、範囲、角度、および/または速度を示すデータであり得る。さらに別の実施形態では、センサは、LIDARユニット(例えば、図2に示されるLIDARユニット215)であってもよく、または光(例えば、レーザー)を使用してADVを囲むオブジェクトの位置、範囲、角度、および/または速度を特定できるその他の装置であってもよい。LIDARユニットによって生成されたセンサデータは、LIDARユニットによって検出されたオブジェクトの位置、範囲、角度、および/または速度を示すデータであり得る。別の実施形態では、他のタイプのセンサは、センサ部材411に提供され得る他のタイプのセンサデータを生成し得る。環境または地理的位置/エリア内のオブジェクト(歩行者、車両、バリケード、障害物、障壁、道路区画線、標識、信号機など)の位置、範囲、角度、および/または速度を検出するために使用できる任意のタイプのセンサは、本明細書で説明される実施形態、実施方式、および/または例で使用することができる。別の実施形態では、センサは、GPS受信機またはユニット(例えば、図2に示されるGPSユニット212)またはADVの位置(例えば、物理的位置または地理的位置)を確定できる他の装置であり得る。GPS受信機によって生成されるセンサデータは、GPSデータ(「GPS座標」と呼ばれることもある)であり得る。
一実施形態では、センサデータは、ADVが現在位置しているまたは走行している環境または地理的エリア/場所に関する情報を示すことができる。例えば、センサデータは、オブジェクト(例えば、歩行者、車両、バリケード、障害物、障壁、道路区画線、標識、信号機など)の位置および/またはレイアウトを示すことができる。別の例では、センサデータは、環境または地理的領域の道路状況(例えば、道路が乾燥した道路、湿った道路、滑らかな道路、でこぼこした道路であるかどうかなど)を示すことができる。さらに別の例では、センサデータは、環境または地理的地域の気象条件(例えば、気温や、雨、風、雪、雹の有無など)を示すことができる。
図4Bは、いくつかの実施形態による計画モジュール305の一例を示すブロック図である。図4Bを参照すると、計画モジュール305は、セグメンター401、多項式関数ジェネレーター402、サンプルポイントジェネレーター403、経路ジェネレーター404、および基準線ジェネレーター405を含むが、これらに限定されない。これらのモジュール401から405は、ソフトウェア、ハードウェア、またはそれらの組み合わせで実施することができる。基準線ジェネレーター405は、ADVの基準線を生成するように構成される。上述のように、基準線は、安定した軌跡を生成するためのADVの案内経路(例えば、道路の中心線)であり得る。基準線ジェネレーター405は、地図・ルート情報311(図3Aおよび3Bに示される)に基づいて基準線を生成することができる。上述のように、地図・ルート情報311は、既存の地図データ(例えば、あらかじめダウンロードまたは格納された地図データ)および/または走行中に生成された地図データ(例えば、ADVが地域/場所を移動するときに生成されたこのエリア/場所の地図データ)であり得る。セグメンター401は、基準線をいくつかの基準線セグメントに分割するように構成される。基準線を基準線セグメントに分割して、基準線の個別のセグメントまたは部分を生成することができる。基準線セグメントのそれぞれについて、多項式関数ジェネレーター402は、多項式関数を定義または生成して、対応する基準線セグメントを表すか、または対応する基準線セグメントをモデル化するように構成されることができる。サンプルポイントジェネレーター403は、基準線に基づいてサンプルポイントを生成することができる。例えば、サンプルポイントジェネレーター403は、以下でより詳しく説明されるように、一般に基準線に従うことができるサンプルポイントの一つまたは複数のセット(例えば、一つまたは複数のサンプルポイントのグループ)を生成することができる。サンプルポイントの各セットは、以下でより詳しく説明されるように、サンプルポイントの第1サブセットおよびサンプルポイントの第2サブセットを含み得る。
多項式関数ジェネレーター402は、サンプルポイントの複数のセットを互いに接続することができる。例えば、多項式関数ジェネレーター402は、以下でより詳しく説明されるように、サンプルポイントのセット内の各サンプルポイントと次の隣接するサンプルポイントのセット内の各サンプルポイントとの間の一つまたは複数のセグメント(例えば、接続)を生成することができる。多項式関数ジェネレーター402はまた、サンプルポイント間のセグメントを表すために使用され得る一つまたは複数の多項式を生成、計算、確定などすることができる。例えば、多項式関数ジェネレーター402は、二つのサンプルポイント間の各セグメントについて多項式関数を生成、確定、および計算することができる。さらに、さまざまな境界または制約に基づいて、セグメントを表す多項式関数を生成、確定、および計算することもできる。この境界または制約は、図3Aに示される制約313の一部として、あらかじめ構成および/または格納されることができる。計画モジュール305によって使用される(例えば、多項式関数ジェネレーター402によって使用される)多項式関数は、図3Aに示される多項式関数314の一部として、あらかじめ構成および/または格納されることができる。
以下でより詳しく説明されるように、経路ジェネレーター404は、サンプルポイント間のセグメントに基づいてADVの経路を決定することができる。例えば、経路ジェネレーター404は、各セグメントのコストを確定することができる。このコストは、さまざまな要因またはパラメータ(基準線からセグメントまでの距離、基準線からセグメント内のサンプルポイントまでの距離、セグメントの曲率の変化率またはセグメント内のサンプルポイントの曲率の変化率、セグメントの曲率、サンプルポイントに位置する可能性のある障害物(車両、歩行者、障害物など)を含むが、これらに限定されない)によるものであってもよい。このコストは「ウェイト」とも呼ばれる。経路ジェネレーター404は、最低の総コスト(最低の総ウェイト)を有する経路を形成するセグメントを識別または選択することができる。
図5は、自動運転車両(ADV)101が現在位置している、および/または以前に位置していた環境505の例示的な地図500を示す図である。環境505は、地理的エリアおよび/または場所であり得る。環境505は、街路、道路、車道、国道、自動車道路、高速道路、快速道路、ルート、坂道、出口、および交通制御装置を含み得る。ADV101、街路、道路、車道、国道、自動車道路、高速道路、快速道路、ルート、坂道、出口、および交通制御装置などの位置は、図5のX軸とY軸に示されるようなデカルト座標系を使用して表されることができる。例えば、ADV101の位置および/または交通制御装置の位置は、X-Y座標を使用して表されることができる。
上述のように、ADV101は、一つまたは複数のセンサ(例えば、カメラ、レーダユニット、LIDARユニットなど)からセンサデータを取得することができる。センサデータは、環境505内におけるADV101を囲むオブジェクトの位置、範囲、角度、および/または速度を示すことができる。例えば、センサデータは、道路および交通制御装置510〜513の位置および/またはレイアウトを示すことができる。
環境505は、複数の交通制御装置を含み得る。交通制御装置は、環境505に位置し、および/または環境505を移動できるADV101、歩行者、サイクリスト、モーターサイクリストなどの動きへの管理、制御、調整、案内、命令、支配、誘導などに使用されることができる。一実施形態では、交通制御装置は、環境505内の交通流(例えば、ADV101、他の車両、モーターサイクリスト、サイクリスト、歩行者などの動き)を制御するために使用できる任意のアイテム、装置、オブジェクト、マーク、標識などであり得る。交通制御装置の例には、ライト、発光/照明標識、駐車灯、横断歩道ライト、横断歩道、標識(例えば、止れ標識、速度制限標識、重量制限標識、一方通行標識、学区標識など)、車線/道路標識(例えば、道路、街路、高速道路などのペイント車線など)、矢印(例えば、一方通行の矢印など)が含まれる。
図5に示されるように、地理的領域505はさらに、複数の交通制御装置510、511、512、および513も含む。例えば、交通制御装置510は、ADV101が道路に沿って前進または走行できる場合にADV101を命令および/または誘導するために使用できる信号機(例えば、ストップライト、赤色灯など)であり得る。別の例では、交通制御装置511は、道路/交差点でさらに前進するかまたは進行するまで道路/交差点上の点で停止するようにADV101を命令および/または誘導できる止れ標識であり得る。また別の例では、交通制御装置512は、この道路に沿った交通の方向(例えば、他の車両の方向)が単なる一方通行標識によって示された方向であることをADV101に示すことができる一方通行標識であり得る。さらに別の例では、交通制御装置513は、交差点で反対の交通(例えば、対向車)を優先させるようにADV101を命令および/または誘導することができる譲れ標識であり得る。
いくつかの実施形態では、ADV101は、環境505内の一つまたは複数の交通制御装置の一つまたは複数の変化を検出することができる。例えば、ADV101は、ADV101の現在の位置の近くに止れ標識(例えば、交通制御装置511)があることを示す地図データ(例えば、道路、街路、高速道路などの地理的位置、GPS座標、位置、道路、街路、高速道路などの距離、交通制御装置などの位置および/またはタイプを示すデータ)を有し得る。しかしながら、ADV101の一つまたは複数のセンサ(例えば、カメラ)は、ADV101の現在の位置の近くにおいて止れ標識の代わりに譲れ標識(例えば、交通制御装置513)を検出し得る。ADV101は、地図データがADV101の現在の位置において譲れ標識があることを示していないと判断し得る(例えば、ADV101は、交通制御装置がとある位置/エリアに新設されたと判断し得る)。ADV101はまた、地図データが、ADV101の現在の位置の近くに止れ標識があることを示していると判断し得るが、ADV101は、止れ標識を検出しなかった場合がある(例えば、ADV101は、交通制御装置がある場所/エリアから削除されたことを確定し得る)。
環境505内の交通制御装置が変化(例えば、新設、除去、異なる場所へ移動)した場合、環境505の地図データが更新されるまでは、時間がかかる場合がある。例えば、サーバは環境505の地図データをADV101に提供することができる。しかし、環境505の交通制御装置が変化した場合、サーバは、これらの変化が運転手によって報告されるまで、これらの変化がADV101に対して更新された地図データを生成していないことを把握していない可能性がある。これにより、ADV101は、古くなった地図データを長期間に亘って使用することになりがちである。古い地図データを使用すると、ADV101において安全問題が発生する恐れがある。
いくつかの実施形態では、ADV101(および/または他の車両)がレポートメッセージ(例えば、メッセージ、レポート、アラートなど)を一つまたは複数のサーバ(例えば、一つまたは複数のサーバコンピュータ、コンピューティングデバイスなど)に送信することにより、環境505(例えば、場所/エリア)における交通制御装置の一つまたは複数の変化をADV101が検出したことを示すのは、有用であり得る。ADV101および/または他の車両は以前に環境505を移動しており、および/または現在環境505に位置している可能性があるため、ADV101および/または他の車両は、環境505における交通制御装置の変化に関するより最近の情報を有する可能性がある。一つまたは複数のレポートメッセージを一つまたは複数のサーバに送信することにより、サーバは、環境内の交通制御装置の変化をより迅速に検出することができる。これにより、サーバは環境505の交通制御装置が変化したかどうか(例えば、新しい交通制御装置が新設されたか、既存の交通制御装置が除去されたか、既存の交通制御装置が新しい場所まで移動されたかなど)を確定することができる。
サーバは、一つまたは複数の基準、パラメータ、条件などを使用して、環境505内の交通制御装置が変化したかどうかを判断することもできる。これにより、サーバは環境内の交通制御装置が変化したことをより正確に検出することができる。サーバは、ADV101および/または他の車両から受信したレポートメッセージに基づいて、更新された地図データを生成することができる。サーバは、更新された地図データをADV101および/または他の車両に送信して、更新された地図データをより迅速および/または効率的にADV101に提供することができる。これにより、サーバは地図データをより迅速かつ効率的に更新して、交通制御装置の変化を反映することができる。
図6は、いくつかの実施形態による例示的なシステムアーキテクチャ600を示す図である。システムアーキテクチャ600は、ADV101、ネットワーク102、およびサーバ104を含む。ネットワーク102は、パブリックネットワーク(例えば、インターネット)、プライベートネットワーク(例えば、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN))、またはそれらの組み合わせであり得る。一実施形態では、ネットワーク102は、一つまたは複数の無線通信システム(例えば、ネットワーク102に接続された無線忠実度(WiFi)ホットスポットおよび/またはさまざまなデータ処理機器、通信塔(セルラー塔など)を使用して実施できるワイヤレスキャリアシステム)によって提供され得る有線または無線のインフラストラクチャを含み得る。ADV101およびサーバ104は、ネットワーク102を介して互いに通信可能に接続され得る。ネットワーク102は、ADV101とサーバ104の間の通信(例えば、データ、メッセージ、データパケット、フレームなど)を実現することができる。
上述のように、ADV101は、一つまたは複数の地理的位置/地域を移動するか、または一つまたは複数の地理的位置/地域を移動する自動運転車両であり得る。各ADV101は、地図データ612の一部または全部を含み得る。各ADV101は、地図データ612を使用して、ADV101の経路を確定することができる。例えば、上述のように、ADV101は、地図データ612を使用して、出発地から目的地まで移動するためにどの道路、高速道路などを利用すべきかを決定することができる。
各ADV101は、センサシステム115とセンサ部材411を含む。センサシステム115は、一つまたは複数のセンサを含み得る。一実施形態では、センサは、カメラまたは画像をキャプチャもしくは記録することができる他の装置であり得る。カメラによって生成され、センサ部材411によって受信されたセンサデータは、「ビデオデータおよび/または画像データ」と呼ばれることができる。別の実施形態では、センサはレーダユニット、または電波を使用してADV101を囲むオブジェクトの位置、範囲、角度および/または速度を特定できる他のいくつかの装置であり得る。レーダユニットによって生成されたセンサデータは、「レーダデータ」と呼ばれることができる。別の実施形態では、センサはLIDARユニット、または光を使用してADV101を囲むオブジェクトの位置、範囲、角度および/または速度を特定できる他のいくつかの装置であり得る。LIDARユニットによって生成されたセンサデータは、「LIDARデータ」と呼ばれることができる。別の実施形態では、センサは、GPS受信機またはユニット、またはADV101の位置を特定できる他のいくつかの装置であり得る。GPS受信機によって生成されたセンサデータは、「GPSデータ」と呼ばれることができる。別の実施形態では、他のタイプのセンサは、センサ部材411に提供され得る他のタイプのセンサデータを生成することができる。
一実施形態では、センサデータは、ADVが現在位置しているまたは走行している環境または地理的エリア/場所に関する情報を示すことができる。例えば、センサデータは、交通制御装置の位置および/またはレイアウト、環境または地理的領域の道路状況、環境または地理的領域の気象条件などを示すことができる。
サーバ104は、コンピューティングデバイス、および/または複数のコンピューティングデバイスのグループであり得る。例えば、サーバ104はサーバクラスターであってもよく、一つまたは複数の仮想マシン、一つまたは複数のコンテナであってもよい。サーバ106は、地図データ612および地図部材610を含む。地図データ612は、ADVが位置/走行する可能性のある異なる環境(例えば、地理的位置および/または地域)に関する情報を示すことができる。例えば、地図データ612は、道路、車線、標識(例えば、止れ標識、譲れ標識など)、信号機、障害物、建物、歩道、通路、人道、障壁などの場所、位置、向き、長さ、幅、距離、レイアウトなどを示すことができる。
一実施形態では、地図部材610は、ADV101のセット(例えば、一つまたは複数のADV101)からレポートメッセージのセット(例えば、一つまたは複数のメッセージ)を受信することができる。レポートメッセージのセットは、ADV101が環境において検出した交通制御装置の第1のセットを示したり、識別したりすることができる。例えば、レポートメッセージのセットは、ADV101のセットが検出した交通制御装置のタイプ(例えば、道路上の標識、照明、ペイントマーキングなど)および/または位置を示すことができる。
一実施形態では、ADV101から受信した(例えば、センサ部材411から受信した)レポートメッセージのセットはさらに、センサデータも含み得る。例えば、レポートメッセージのセットは、カメラによって取得および/または生成された画像データおよび/またはビデオデータを含み得る。別の例では、レポートメッセージのセットは、レーダユニットによって取得および/または生成されたレーダデータを含み得る。別の例では、レポートメッセージのセットは、LIDARユニットによって生成されたLIDARデータを含み得る。さらに別の例では、レポートメッセージのセットは、GPSユニットによって生成されたGPSデータを含み得る。
一実施形態では、レポートメッセージのセットは、ADV101が環境(例えば、図5に示される環境505)において検出したすべての交通制御装置を示すことができる。例えば、センサ部材411は、ADV101のセンサシステム115によって検出された標識、車線マーキング、ライトなどのすべてを示せるレポートメッセージのセットを送信することができる。別の実施形態では、レポートメッセージのセットは、ADV101の地図データで示される交通制御装置と一致しない一つまたは複数の交通制御装置(環境内でADV101によって検出される)を示すことができる。例えば、ADV101は、環境(例えば、地理的エリア/場所)における交通制御装置のタイプおよび/または位置を示すことができる地図データ(例えば、既存の地図データ、ダウンロードされた地図データなど)を有し得る。ADV101のセンサシステム115(例えば、一つまたは複数のセンサ)は、環境内の第1交通制御装置を検出することができる。ADV101のセンサ部材411は、地図データに示されていない第1交通制御装置が検出されたと判断することができる。センサ部材411はネットワーク102を介して、第1交通制御装置のタイプおよび/または位置を示す一つまたは複数のレポートメッセージをサーバ104に送信することができる。
一実施形態では、(サーバ104の)地図部材610は、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと、地図データ612によって示された交通制御装置の第2セットの間に一つまたは複数の相違が存在するかどうかを判断することができる。例えば、地図部材610は、レポートメッセージによって示された交通制御装置のタイプおよび/または位置を特定することができる。地図部材610は、レポートメッセージによって示された交通制御装置のタイプおよび/または位置を、地図データ612によって示された交通制御装置のタイプおよび/または位置と比較して、相違があるかどうかを判断することができる。別の例では、レポートメッセージは、地図データ612と一致しない一つまたは複数の交通制御装置を示すことができる。
一実施形態では、地図部材610は、一つまたは複数の基準、パラメータ、条件に基づいて、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと地図データ612によって示された交通制御装置の第2セットの間に一つまたは複数の相違があるかどうかを判断することができる。一つの基準、条件、パラメータなどは、閾値台数のADV101および/または車両が環境に関するレポートメッセージを送信したかどうかであり得る。例えば、地図部材610は、少なくとも5、少なくとも10、または他の適切な台数のADV101および/または車両が環境内の交通制御装置の変化を示すレポートメッセージを送信したかどうかを判断することができる。少なくとも閾値台数のADV101および/または車両が環境内の交通制御装置の変化を示すレポートメッセージを送信した場合、地図部材610は、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと地図データ612によって示された交通制御装置の第2セットの間に一つまたは複数の相違が存在すると判断することができる。
一実施形態では、別の基準、条件、パラメータなどは、閾値通数の環境に関するレポートメッセージが受信されたかどうかであり得る。例えば、地図部材610は、環境内の交通制御装置の変化を示す少なくとも5、少なくとも10、または他の適切な通数のレポートメッセージが受信されたかどうかを判断することができる。少なくとも閾値通数のレポートメッセージが受信された場合、地図部材610は、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと地図データ612によって示された交通制御装置の第2セットの間に一つまたは複数の相違が存在すると判断することができる。
一実施形態では、別の基準、条件、パラメータなどは、センサ部材411がレポートメッセージを受信および/または生成した時間であり得る。例えば、ADVのセンサシステム115は、夜間または環境内の日光が少ない他の時間帯は信頼できない場合がある。例えば、カメラは夜間に鮮明な画像やビデオをキャプチャできない場合がある。地図部材610は、レポートメッセージ(例えば、一つまたは複数のレポートメッセージ)のセットが受信される時間のセット(例えば、一つまたは複数の時間)を判断することができる。地図部材610は、夜間に受信したメッセージに対して低いウェイト(例えば、ウェイト値、スケール因子など)を割り当てて、日中(または環境に日光がより多い他の時間)に受信したレポートメッセージに対して高いウェイトを割り当てることができる。
一実施形態では、別の基準、条件、パラメータなどは、センサ部材411がレポートメッセージを受信および/または生成したときの環境内の気象条件であり得る。例えば、環境内の気象条件によっては、ADVのセンサシステム115は信頼できない場合がある。例えば、濃い霧がある場合、ADV101のカメラは鮮明な画像やビデオをキャプチャできない場合がある。別の例では、LIDARユニットは雨の中で効果的に動作できない場合がある。レポートメッセージのセット(例えば、一つまたは複数のレポートメッセージ)が受信されたときに、地図部材610は環境内の気象条件を判断することができる。地図部材610は、特定の気象条件(例えば、雨、霧、雲などの悪天候)で受信したメッセージに対して低いウェイト(例えば、ウェイト値、スケール因子など)を割り当てて、良い気象条件(日光など)で受信したレポートメッセージに対して高いウェイトを割り当てることができる。
一実施形態では、別の基準、条件、パラメータなどは、センサ部材411がレポートメッセージを受信および/または生成したときの環境内の交通条件であり得る。例えば、環境内において多くのトラフィックがある場合(例えば、環境内に多くのADV101および/または他の車両がある場合)、ADVのセンサシステム115は信頼できない場合がある。例えば、環境には大量のトラフィックがあり、他のADVおよび/または車両は、カメラが画像および/またはビデオを適切にキャプチャするのを妨げる可能性がある(例えば、交通制御装置が他の車両によって遮られる可能性がある)。レポートメッセージのセット(例えば、一つまたは複数のレポートメッセージ)が受信されたときに、地図部材610は、環境内の交通状況を判断することができる。地図部材610は混雑した交通状況(例えば、トラフィックが多い場合)の間で受信したメッセージに対して低いウェイト(例えば、ウェイト値、スケール因子など)を割り当てて、それほど混雑していないまたは良好な交通状況(例えば、トラフィックが少ない場合)の間で受信したレポートメッセージに対して高いウェイトを割り当てることができる。
一実施形態では、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと、地図データ612によって示された交通制御装置の第2セットとの間に一つまたは複数の相違があるという判断に対応して、地図部材610は、更新された地図データを生成することができる。例えば、地図部材610は、地図データ612を更新して、一つまたは複数の交通制御装置を地図データ612に追加することができる。更新された地図データ612は、環境に新設された一つまたは複数の交通制御装置(例えば、以前にその地理的領域/場所に位置していなかった一つまたは複数の交通制御装置)のタイプ(例えば、標識のタイプ、車線表示のタイプ、ライトのタイプなど)および/または位置(例えば、GPS座標など)を示すことができる。別の例では、地図部材610は、地図データ612を更新して、地図データ612から一つまたは複数の交通制御装置を削除することができる。更新された地図データ612は、環境から除去された一つまたは複数の交通制御装置(例えば、地理的エリア/場所から除去された一つまたは複数の交通制御装置)の表示を削除または除去することができる。別の例では、地図部材610は、地図データ612を更新して、一つまたは複数の交通制御装置の一つまたは複数の新しい位置を示すことができる。例えば、標識(例えば、交通制御装置)は、道路の片側から反対側に移動した可能性がある。別の例では、地面に描かれた矢印(例えば、左折矢印)は特定の距離だけ移動し、以前よりも交差点寄りになった可能性がある。
一実施形態では、地図部材610によって生成された更新された地図データ612は、一つまたは複数の交通制御装置が一時的なものであることを示すことができる。例えば、道路は、工事、保守などのために一定期間閉鎖される場合がある。工事/保守作業では、一時的な道路標識(例えば、一時的な交通制御装置など)を設置して、道路の一部または全部が一時的に閉鎖され得ることを示す場合がある。一時的な道路標識はさらに、使用され得る一つまたは複数の迂回路(例えば、代替道路など)を示す場合もある。更新された地図データ612は、一時的な道路標識の位置を示すことができる。更新された地図データ612はまた、一時的な道路標識が環境(例えば、地理的エリア/場所)に存在し得る期間を示すことができる。例えば、更新された地図データ612は、一つまたは複数の一時的な交通制御装置が2日間、1週間、または他の何らかの適切な期間に亘って環境に配備または設置され得ることを示すことができる。
一実施形態では、更新された地図データ612は、環境(例えば、地理的エリア/場所)における一つまたは複数の交通制御装置が変化し得ることを示すことができる。例えば、更新された地図データ612は、ADV101および/または他の車両が環境内の一つまたは複数の交通制御装置の可能な変化を検出したことを示すことができる。しかしながら、地図部材610は、一つまたは複数の交通制御装置の可能な変化を判断することができない場合がある。例えば、地図部材610は、環境内の交通制御装置が変化したことを示したADV101および/または車両の台数が十分でないと判断する場合がある。別の例では、地図部材610は、センサデータに基づいて、一つまたは複数の交通制御装置がどのように変化したかを判断できない場合がある。
一実施形態では、地図部材610は、異なる期間ごとに更新された地図データ612を生成することができる。例えば、地図部材610は、地図データ612を更新する必要があるかどうかを定期的に判定し、更新された地図データを生成することができる(例えば、5分ごと、2時間ごと、毎日、または他の適切な期間ごとに更新するかどうかおよび/または更新された地図データを生成するかどうかを判定することができる)。別の例では、地図部材610は、環境内の交通制御装置が変化したと地図部材610が判断したときに、更新された地図データ612を生成することができる。
一実施形態では、地図部材610は、センサデータに基づいて様々な技術、方法、アルゴリズム、操作などにより、更新された地図データを生成することができる。例えば、地図部材610は、ビデオ/画像データに基づいて、画像またはビデオ処理/分析技術またはアルゴリズムを使用して、環境内の一つまたは複数の交通制御装置を識別することができる。別の例では、地図部材610は、レーダおよび/またはLIDARデータに基づいて、様々なオブジェクト検出技術またはアルゴリズムを使用して、環境内の一つまたは複数の交通制御装置を識別することができる。別の例では、地図部材610は、GPSデータ(例えば、GPS座標)を使用して、環境内の一つまたは複数の交通制御装置の位置を識別することができる。説明した例、実現方式、および/または実施形態は、さまざまなタイプのセンサデータおよび/またはさまざまな機能、技術、方法、アルゴリズム、操作などにより、地図データを生成することができる。例えば、地図部材610は、機械学習、人工知能、統計モデル、ニューラルネットワーク、クラスタリング技術などを使用することができる。
別の実施形態では、地図部材610は、ユーザ入力を受信し、かつユーザ入力に基づいて更新された地図データを生成することができる。例えば、地図部材610は、レポートメッセージおよび/またはセンサデータをユーザ(例えば、管理者)に提供することができる。ユーザはレポートメッセージやセンサデータを確認し、環境内の交通制御装置が変化したかどうか、変化した場合どのように変化したかを示す入力を行うことができる。例えば、ユーザ入力は、交通制御装置がとある場所に新設されたことを示すことができる。別の例では、ユーザ入力は、交通制御装置がとある場所から除去されたことを示すことができる。地図部材610は、ユーザ入力に基づいて地図データを更新することができる。
一実施形態では、地図部材610は、更新された地図データをADV101に送信することができる。例えば、一つまたは複数の交通制御装置が環境内で変化した(例えば、一つまたは複数の交通制御装置が新設、除去、移動などされた)と判断した後、地図部材610は、更新された地図データ612を生成し、かつ更新された地図データ612をADV101に送信することができる。
一実施形態では、地図部材610は、レポートメッセージおよび/またはセンサデータに基づいて、ADV101のセンサ部材411に問題、エラー、トラブルなどがあるかどうかを判断することができる。例えば、特定のADV101は環境内の場所で新しい交通制御装置が検出されたと報告している場合、地図部材610は、他のADV101も新しい交通制御装置を報告しているかどうかを判断することができる。閾値未満のADV101が新しい交通制御装置を報告している場合、地図部材610は、センサ部材411にエラーがあると判断することができる。例えば、地図部材610は、センサ部材411のニューラルネットワーク、機械学習システム、画像処理システムなどを更新すべきであると判断することができる。例えば、地図部材610は、ADV101がニューラルネットワークのより新しいバージョンをインストールし、更新されたニューラルネットワークを使用して画像を処理すべきであることをADV101に示すことができる。
説明されたように、ADV101(および/または他の車両)は、ADV101が環境(例えば、場所/エリア)内の交通制御装置の一つまたは複数の変化を検出したことを示すために、レポートメッセージ(例えば、メッセージ、レポート、アラートなど)および/またはセンサデータをサーバ104に送信することは、有用かもしれない。ADV101および/または他の車両は以前に環境を移動したことがあり、および/または現在その環境にある可能性があるため、ADV101および/または他の車両は環境内の交通制御装置の変化に関するより最近の情報を有し得る。これにより、サーバ104は、環境内の交通制御装置が変化したかどうかをより迅速かつ効率的に判断できるようになる。これにより、サーバ104は、(環境内の交通制御装置の変化を反映する)更新された地図データをより迅速かつ効率的に生成し、かつ更新された地図データをADV101に送信することができる。
図7は、いくつかの実施形態による例示的な地図部材610を示す図である。地図部材610は、ハードウェア(例えば、処理装置、ASIC、FPGA、回路など)、ソフトウェア(例えば、アプリケーション、ニューラルネットワーク、機械学習アプリケーションなど)、ファームウェア、またはそれらの組み合わせであり得る。地図部材610は、センサデータ部材720、検出部材730、および更新部材740を含む。センサデータ部材720、検出部材730、および更新部材740のそれぞれは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせを含み得る。
一実施形態では、センサデータ部材720は、ADVのセットからレポートメッセージのセットを受信することができる。レポートメッセージのセットは、ADVのセットによって環境内で検出された交通制御装置の第1セットを示したり、識別したりすることができる。ADVから受信したレポートメッセージのセットはさらに、センサデータ(例えば、ビデオデータ、画像データ、レーダデータ、LIDARデータなど)を含み得る。
一実施形態では、検出部材730は、環境内の一つまたは複数の交通制御装置が変化したかどうかを検出することができる。例えば、検出部材730は、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと、地図データ(例えば、図6に示される地図データ612)によって示された交通制御装置の第2セットの間に一つまたは複数の相違があるかどうかを判断することができる。
一実施形態では、検出部材730は、一つまたは複数の基準、パラメータ、条件に基づいて、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと、地図データによって示された交通制御装置の第2セットの間に一つまたは複数の相違があるかどうかを判定することができる。一つの基準、条件、パラメータなどは、閾値台数のADVおよび/または車両が環境に関するレポートメッセージを送信したかどうかであり得る。別の基準、条件、パラメータなどは、閾値通数の環境に関するレポートメッセージを受信したかどうかであり得る。もう一つの別の基準、条件、パラメータなどは、センサ部材がレポートメッセージを受信および/または生成した時間であり得る。さらなる別の基準、条件、パラメータなどは、センサ部材がレポートメッセージを受信および/または生成したときの環境内の気象条件であり得る。更に別の基準、条件、パラメータなどは、センサ部材411がレポートメッセージを受信および/または生成したときの環境内の交通条件であり得る。
一実施形態では、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと、地図データによって示された交通制御装置の第2セットとの間に一つまたは複数の相違が存在するという判断に応じて、更新部材740は、更新された地図データを生成することができる。例えば、更新部材740は、地図データを更新して、地図に示される一つまたは複数の交通制御装置の位置を追加、削除、および/または変更することができる。一実施形態では、更新部材740によって生成された更新された地図データは、一つまたは複数の交通制御装置が一時的なものであり得ることを示すことができる。別の実施形態では、更新部材740は、異なる期間ごとに更新された地図データ612を生成することができる。一実施形態では、更新部材740は、センサデータに基づいて、様々な技術、方法、アルゴリズム、操作などにより、更新された地図データを生成することができる。例えば、更新部材740は、画像またはビデオ処理/分析技術またはアルゴリズム、オブジェクト検出技術またはアルゴリズム、機械学習、人工知能、統計モデル、ニューラルネットワーク、クラスタリング技術などを使用することができる。
図8は、いくつかの実施形態による自動運転車両の経路を確定するためのプロセスの一例を示すフローチャートである。プロセス800は、ソフトウェア、ハードウェア、またはそれらの組み合わせを含み得る処理ロジックによって実行されることができる。また、プロセス800は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、プロセッサ、処理装置、中央処理装置(CPU)、システムオンチップ(SoC)など)、ソフトウェア(例えば、処理装置で稼動/実行される命令)、ファームウェア(例えば、マイクロコード)、またはそれらの組み合わせを含み得る処理ロジックによって実行されることができる。いくつかの実施形態では、プロセス800は、図1、図6、および図7に示されるサーバコンピュータ104、地図部材610、センサデータ部材720、検出部材730、および更新部材740のうちの一つまたは複数によって実行されることができる。
プロセス800はブロック805から始まる。ブロック805において、プロセス800は、ADVのセットからレポートメッセージのセットを受信することができる。上記のように、レポートメッセージのセットは、ADVのセットによって環境内で検出された交通制御装置の第1セットを示したり、識別したりすることができる。ADVから受信したレポートメッセージのセットはさらに、センサデータ(ビデオデータ、画像データ、レーダデータ、LIDARデータなど)を含み得る。別の実施形態では、センサデータは、レポートメッセージとは別に受信されることができる。
ブロック810において、プロセス800は、環境内の一つまたは複数の交通制御装置が変化したかどうかを判断することができる。例えば、プロセス800は、レポートメッセージが、地図データに示されていない交通制御装置の存在を示しているかどうかを判断することができる。別の例では、プロセス800は、センサデータを分析して、地図データに示されていない交通制御装置を識別することができる。プロセス800は、一つまたは複数の基準、パラメータ、条件に基づいて、環境内の一つまたは複数の交通制御装置が変化したかどうか(例えば、一つまたは複数のレポートメッセージによって示された交通制御装置の第1セットと、地図データによって示された交通制御装置の第2セットの間に一つまたは複数の相違があるかどうか)を判断することができる。一つの基準、条件、パラメータなどは、閾値台数のADVおよび/または車両が環境に関するレポートメッセージを送信したかどうかであり得る。別の基準、条件、パラメータなどは、閾値通数の環境に関するレポートメッセージを受信したかどうかであり得る。また別の基準、条件、パラメータなどは、センサ部材がレポートメッセージを受信および/または生成した時間であり得る。さらに別の基準、条件、パラメータなどは、センサ部材がレポートメッセージを受信および/または生成したときの環境内の気象条件であり得る。さらなる別の基準、条件、パラメータなどは、センサ部材がレポートメッセージを受信および/または生成したときの環境内の交通条件であり得る。
環境(例えば、地理的エリア/場所)の一つまたは複数の交通制御装置が変化していない場合、プロセス800は終了する。環境内の一つまたは複数の交通制御装置が変化した場合、プロセス800は、ブロック815において、センサデータを処理することができる。例えば、プロセス800は、画像データ、レーダデータ、LIDARデータ、GPSデータなどを分析して、新設、除去、または異なる場所に移動された交通制御装置を識別することができる。ブロック820において、プロセス800は、センサデータに基づいて、更新された地図データを生成する。例えば、プロセス800は、センサデータに基づいて交通制御装置とその位置(例えばGPS座標)を識別することができる。ブロック825において、プロセス800は、更新された地図データを一つまたは複数のADVに送信することができる。
上記に示され説明された構成要素の一部または全部は、ソフトウェア、ハードウェア、またはそれらの組み合わせで実施できることに留意されたい。例えば、かかる構成要素は、永続性記憶装置にインストールおよび格納されたソフトウェアとして実施することができる。このソフトウェアは、プロセッサ(図示せず)によってメモリにロードされ、メモリによって実行されることにより、本願に記載するプロセスや操作全体を実施することができる。あるいは、そのような構成要素は、集積回路(例えば、特定用途向け集積回路またはASIC)、デジタル信号プロセッサ(DSP)、またはフィールドプログラマブルゲートアレイ(FPGA)などの専用ハードウェアにプログラミングされまたは埋め込まれる実行可能コードとして実施することができる。この実行可能コードは、アプリケーションによるそれ相応のドライバーおよび/またはオペレーティングシステムを介してアクセスすることができる。さらに、そのような構成要素は、プロセッサまたはプロセッサコアの特定のハードウェアロジックとして、一つまたは複数の特定の命令を介してソフトウェア部材からアクセスできる命令セットの一部となり得る。
図9は、本開示の一実施形態とともに使用できるデータ処理システムの例を示すブロック図である。例えば、システム1500は、上述のプロセスまたは方法のいずれかを実行する上述のデータ処理システムのいずれか(例えば、地図部材610または図1のサーバ103〜104のいずれか)を表すことができる。システム1500は、さまざまな構成要素を含み得る。これらの構成要素は、集積回路(IC)、集積回路の一部、ディスクリート電子デバイス、または回路基板(例えば、コンピュータシステムのマザーボードやアドインカード)での使用に適した他のモジュール、またはコンピュータシステムのシャーシ内に組み込まれている構成要素として実施することができる。
システム1500は、コンピュータシステムの多くの構成要素の高レベルビューを示すことを意図していることにも留意されたい。ただし、特定の実施例は、追加の構成要素を有してもよく、さらに、他の実施例は、示された構成要素の異なるレイアウトを有してもよいことを理解されたい。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤー、パーソナルデジタルアシスタント(PDA)、スマートウォッチ、パーソナルコミュニケーター、ゲーミングデバイス、ネットワークルーターもしくはハブ、ワイヤレスアクセスポイント(AP)もしくはリピーター、セットトップボックス、またはそれらの組み合わせを表すことができる。さらに、単一の機械またはシステムのみが示されているが、「機械」または「システム」という用語は、単独でまたは共同して一つ(または複数)の命令セットを実行して、ここで説明される一つまたは複数の方法を実行する機械またはシステムの任意の組み合わせも含まれると解釈されるべきである。
一実施形態では、システム1500は、バスまたはインターコネクト1510を介して接続されるプロセッサ1501、メモリ1503、およびデバイス1505〜1508を含む。プロセッサ1501は、単一のプロセッサコアまたは複数のプロセッサコアを含む単一のプロセッサまたは複数のプロセッサを表し得る。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)など、一つまたは複数の汎用プロセッサを表し得る。より詳しくは、プロセッサ1501は、複雑命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実施するプロセッサ、または命令セットの組み合わせを実施するプロセッサであり得る。プロセッサ1501は、特定用途向け集積回路(ASIC)、セルラーもしくはベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、グラフィックスプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組み込みプロセッサ、または命令を処理できる他のタイプのロジックなど、一つまたは複数の専用プロセッサであり得る。
プロセッサ1501(超低電圧プロセッサなど、低電力マルチコアプロセッサソケットであり得る)は、システムのさまざまな構成要素と通信するための主処理ユニットおよび中央ハブとして機能し得る。このようなプロセッサは、システムオンチップ(SoC)として実施することができる。プロセッサ1501は、本明細書で説明される動作およびステップを実行するための命令を実行するように構成される。システム1500は、表示コントローラ、グラフィックプロセッサ、および/または表示装置を含み得るオプションのグラフィックサブシステム1504と通信するグラフィカルインターフェースをさらに含み得る。
プロセッサ1501は、メモリ1503と通信することができる。一実施形態では、メモリ1503は、所定の量のシステムメモリを提供するために複数のメモリ装置を介して実施することができる。メモリ1503は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、または他のタイプの記憶装置など、一つまたは複数の揮発性記憶(またはメモリ)装置を含み得る。メモリ1503は、プロセッサ1501または任意の他の装置によって実行される一連の命令を含む情報を格納することができる。例えば、様々なオペレーティングシステム、デバイスドライバ、ファームウェア(例えば、基本入出力システムまたはBIOS)、および/またはアプリケーションの実行可能コードおよび/またはデータは、メモリ1503にロードされ、プロセッサ1501によって実行され得る。オペレーティングシステムは、ロボットオペレーティングシステム(RОS)、Microsoft(登録商標)社のWindows(登録商標)オペレーティングシステム、アップル社のMacOS(登録商標)/iOS(登録商標)、Google(登録商標)社のAndroid(登録商標)、LINUX、UNIX、またはその他のリアルタイムまたは組み込みオペレーティングシステムなど、任意のタイプのオペレーティングシステムであり得る。
システム1500はさらに、ネットワークインターフェースデバイス1505、オプションの入力デバイス1506、および他のオプションのI/Oデバイス1507を含むデバイス1505〜1508などのI/Oデバイスを含み得る。ネットワークインターフェースデバイス1505は、無線送受信機および/またはネットワークインターフェースカード(NIC)を含み得る。この無線送受信機は、WiFi送受信機、赤外線送受信機、ブルートゥース送受信機、WiMax送受信機、無線携帯電話送受信機、衛星送受信機(全地球測位システム(GPS)送受信機)、もしくはその他の無線周波数(RF)送受信機またはそれらの組み合わせであり得る。NICはイーサネットカードであり得る。
入力デバイス1506は、マウス、タッチパッド、タッチスクリーン(表示装置1504と統合することができる)、ポインターデバイス(例えば、スタイラス)、および/またはキーボード(例えば、物理キーボードまたはタッチスクリーンの一部として表示される仮想キーボード)を含み得る。例えば、入力デバイス1506は、タッチスクリーンに接続されたタッチスクリーンコントローラを含み得る。タッチスクリーンおよびタッチスクリーンコントローラは、例えば、さまざまなタッチセンシティブテクノロジー(コンデンサ、抵抗、赤外線および表面弾性波技術を含むがこれらに限定されない)のいずれか、並びに、その他の近接センサアレイまたはタッチスクリーンと接触する一つまたは複数の点を判断するための他の素子を使用して、それらの接触、移動または中断を検出することができる。
I/Oデバイス1507は、音声装置を含み得る。音声装置は、音声認識、音声複製、デジタル録音、および/または電話機能などの音声対応機能を容易にするために、スピーカおよび/またはマイクロホンを含み得る。他のI/Oデバイス1507はさらに、ユニバーサルシリアルバス(USB)ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ(例えば、PCI−PCIブリッジ)、センサ(例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなどのモーションセンサ)、またはそれらの組み合わせを含み得る。デバイス1507はさらに、結像処理サブシステム(例えば、カメラ)を含み得る。この結像処理サブシステムは、電荷結合素子(CCD)または相補型金属酸化物半導体(CMOS)光学センサなど、カメラ機能(例えば、写真およびビデオセグメントの記録)を促進するための光学センサを含み得る。一部のセンサは、センサハブ(図示せず)を介してインターコネクト1510に接続されることができるが、キーボードやサーマルセンサなどの他のデバイスは、システム1500の特定の構成または設計に応じて、組み込みコントローラー(図示せず)によって制御されることができる。
データ、アプリケーション、一つまたは複数のオペレーティングシステムなどの情報の永続性記憶を実現するために、大容量記憶装置(図示せず)もプロセッサ1501に接続され得る。様々な実施形態においては、より薄くてより軽量なシステム設計を実現しながら、システムの応答性を改善するために、かかる大容量記憶装置はソリッドステートデバイス(SSD)を介して実施することができる。ただし、別の実施形態では、大容量記憶装置は主にハードディスクドライブ(HDD)を使用して実施できる。ここでは、より小さい容量のSSD記憶装置がSSDのキャッシュとして機能し、停電イベント期間中のコンテキスト状態および他のかかる情報の不揮発性記憶を実現する。これにより、システムアクティビティが再開するときに通電を速く実現することができる。加えて、フラッシュデバイスは、例えば、シリアルペリフェラルインターフェース(SPI)を介してプロセッサ1501に接続され得る。かかるフラッシュデバイスは、システムのBIOSや他のファームウェアを含むシステムソフトウェアの不揮発性記憶を実現することができる。
記憶デバイス1508は、本明細書で説明される方法または機能のいずれか一つまたは複数を具現化する一つまたは複数の命令セットまたはソフトウェア(例えば、モジュール、ユニット、および/またはロジック1528)が格納されるコンピュータアクセス可能記憶媒体1509(「機械可読記憶媒体」または「コンピュータ可読媒体」とも呼ばれる)を含み得る。処理モジュール/ユニット/ロジック1528は、上記構成要素(例えば、地図部材610、センサ部材411など)のいずれかを表し得る。処理モジュール/ユニット/ロジック1528はさらに、データ処理システム1500、メモリ1503およびプロセッサ1501によって実行される期間中に、完全にまたは少なくとも部分的にメモリ1503内および/またはプロセッサ1501内に存在し得る。データ処理システム1500、メモリ1503およびプロセッサ1501はまた、機械アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528はさらに、ネットワークを通じて、ネットワークインターフェースデバイス1505を介して送信または受信することができる。
コンピュータ可読記憶媒体1509を使用して、上記のソフトウェア機能の一部を永続的に保存することもできる。例示的な実施形態では、コンピュータ可読記憶媒体1509は単一の媒体として示されているが、「コンピュータ可読記憶媒体」という用語は、一つまたは複数の命令セットを格納する単一の媒体または複数の媒体(例えば、集中型または分散型データベースおよび/または関連するキャッシュとサーバ)を含むものとする。「コンピュータ可読記憶媒体」という用語はまた、機械によって実行され、この機械に本開示の方法のいずれか一つまたは複数を実行させる命令セットを格納または符号化することができる任意の媒体を含むものとする。したがって、「コンピュータ可読記憶媒体」という用語は、ソリッドステートメモリ、光学および磁気媒体、またはその他の非一時的機械可読媒体を含むが、これらに限定されないものとする。
本明細書で説明された処理モジュール/ユニット/ロジック1528、構成要素、および他の特徴は、ディスクリートハードウェア構成要素として実施するか、またはASIC、FPGA、DSP、もしくは同様のデバイスなどのハードウェア部材の機能に統合することができる。また、処理モジュール/ユニット/ロジック1528は、ハードウェアデバイス内のファームウェアまたは機能性回路として実施することができる。さらに、処理モジュール/ユニット/ロジック1528は、ハードウェアデバイスとソフトウェア部材の任意の組み合わせで実施することができる。
システム1500は、データ処理システムの様々な構成要素を有するように示されているが、構成要素を相互接続する任意の特定のアーキテクチャまたは方法を表すことを意図していないことに留意されたい。というのは、そのような詳細は、本開示の実施形態とは密接な関係がないからである。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、および/または他のデータ処理システムは、本開示の実施形態とともに使用できることを理解されたい。
前述の詳細な説明の一部は、コンピュータメモリ内のデータビットに対する演算のアルゴリズムおよび記号表現の観点から提示されている。これらのアルゴリズムの説明と表現は、データ処理の分野の当業者がそれらの作業実質を所属分野の他の当業者に最も効果的に伝達するために使用する方法である。ここでは、アルゴリズムは、一般的に、望ましい結果を導く一貫した操作のシーケンスであると考えられる。これらの操作とは、物理量の物理的処置が必要とされるものである。
ただし、これらの用語および類似の用語はすべて適切な物理量に関連付けられるものであり、これらの量を標識しやすくするためのものに過ぎないことに留意されたい。上記の説明において他の形で明記しない限り、本明細書全体において、用語(例えば、添付の特許請求の範囲に記載されている用語)による説明とは、コンピュータシステムまたは類似の電子式計算装置の動作および処理を指し、かかるコンピュータシステムまたは電子式計算装置は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されるデータを制御するとともに前記データをコンピュータシステムメモリもしくはレジスタまたは他のこのような情報記憶装置、伝送もしくは表示装置内の同様に物理量として表される他のデータに変換する。
本開示の実施形態は、本明細書の動作を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的コンピュータ可読媒体に保存される。機械可読媒体は、機械(例えば、コンピュータ)によって読み取り可能な形式で情報を保存するための任意のメカニズムを含む。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械(例えば、コンピュータ)可読記憶媒体(例えば、読み取り専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス)を含み得る。
前の図に示されているプロセスまたは方法は、ハードウェア(例えば、回路、専用ロジックなど)、ソフトウェア(例えば、非一時的コンピュータ可読媒体で具体化されるもの)、またはそれらの組み合わせを含む処理ロジックによって実行されることができる。プロセスまたは方法は、以上で特定の順序に応じて説明されたが、前記動作の一部が異なる順序で実行できることを理解されたい。さらに、一部の動作は、順番ではなく並行して実行されることができる。
本開示の実施形態は、いずれの特定のプログラミング言語を参照することなく記載されている。本明細書で説明される本開示の実施形態の教示を実施するために、様々なプログラミング言語を使用できることを理解されたい。
上記の明細書において、本開示の実施形態は、その特定の例示的な実施形態を参照しながら説明されてきた。添付の特許請求の範囲に記載された本開示のより広い精神および範囲から逸脱することなく、それに様々な変更を加えることができることは明らかであろう。したがって、本明細書と図面は、限定的な意味でなく、例示的な意味で理解されるべきである。