(58)【調査した分野】(Int.Cl.,DB名)
前記最低コスト経路は、先行サンプル点の各候補点から、サンプル点の各候補点を通して、次のサンプル点の各候補点までナビゲートするコストの合計を求めることにより確定される請求項1に記載の方法。
前記自動運転車両が前記先行サンプル点の候補点から前記サンプル点の候補点に近づくときの、前記自動運転車両の第1の速度と方向ベクトルに基づいて、及び前記サンプル点の候補点から前記次のサンプル点の候補点までの前記自動運転車両の第2の速度と方向ベクトルに基づいて確定された角度から、前記サンプル点の各候補点を通るコストを確定する請求項5に記載の方法。
前記最低コスト経路は、先行サンプル点の各候補点から、サンプル点の各候補点を通して、次のサンプル点の各候補点までナビゲートするコストの合計を求めることにより確定される請求項8に記載の媒体。
前記自動運転車両が前記先行サンプル点の候補点から前記サンプル点の候補点に近づくときの、前記自動運転車両の第1の速度と方向ベクトルに基づいて、及び前記サンプル点の候補点から前記次のサンプル点の候補点までの前記自動運転車両の第2の速度と方向ベクトルに基づいて確定された角度から、前記サンプル点の各候補点を通るコストを確定する請求項12に記載の媒体。
プロセッサと、命令を格納するために前記プロセッサに接続されるメモリと、を備えるデータ処理システムであって、前記命令は、前記プロセッサによって実行されると、前記プロセッサに動作を実行させ、前記動作は、
道路の第1部分の車線の中心線から複数の点をサンプリングして複数のサンプル点を生成するステップと、
前記複数のサンプル点のそれぞれについて、前記サンプル点に関連付けられる複数の調整点を生成するステップであって、前記調整点は前記サンプル点を囲む領域に位置し、前記サンプル点および前記サンプル点に関連付けられる複数の調整点は、最低コスト経路を計算するための前記サンプル点の候補点とされる、ステップと、
前記複数のサンプル点のそれぞれに対する候補点を通る第1の最低コスト経路を生成するステップと、
前記道路の前記第1の部分に対して、前記第1の最低コスト経路に沿って前記自動運転車両をナビゲートするステップと、を含み、
前記道路をサンプリングするための曲線部分におけるサンプル点の密度が、前記道路の直線部分におけるサンプル点の密度よりも大きい、データ処理システム。
前記自動運転車両が前記先行サンプル点の候補点から前記サンプル点の候補点に近づくときの、前記自動運転車両の第1の速度と方向ベクトルに基づいて、及び前記サンプル点の候補点から前記次のサンプル点の候補点までの前記自動運転車両の第2の速度と方向ベクトルに基づいて確定された角度から、前記サンプル点の各候補点を通るコストを確定する請求項19に記載のシステム。
【発明を実施するための形態】
【0009】
以下に説明される詳細を参照しながら本開示の様々な実施形態および態様を説明し、添付図面には上記の各実施形態が示される。以下の説明及び図面は、本開示を例示するためのものであり、限定するものとして解釈されるべきではない。本開示の様々な実施形態を全面的に理解するために、多くの特定の詳細を説明する。なお、本開示の実施形態を簡潔的に説明するように、周知または従来技術の詳細について説明していない場合もある。
【0010】
本明細書において、「一実施形態」又は「実施形態」とは、当該実施形態に基づいて説明された特定の特徴、構造または特性が本開示の少なくとも一実施形態に含まれてもよいと意味する。「一実施形態において」という表現は、本明細書の全体において全てが同一の実施形態を指すとは限らない。
【0011】
第1の実施形態では、自動運転車両(ADV)をナビゲートする方法は、道路の第1の部分の車線の中心線から複数の点をサンプリングして、複数のサンプル点を生成するステップを含む。複数のサンプル点のそれぞれについて、サンプル点に関連付けられている複数の調整点が生成される。調整点は、サンプル点を囲む領域にある。サンプル点、およびサンプル点に対する複数の調整点は、サンプル点の候補点である。第1の複数のサンプル点について、複数のサンプル点のうちの各サンプル点の候補点を通して第1の最低コスト経路曲線が生成される。ADVは、道路の第1の部分の第1の最低コスト経路に沿ってナビゲートされる。一実施形態では、道路の第2の部分に対して第2の最低コスト経路が生成される。道路の第1の部分と第2の部分のための組み合わせ経路を生成するために、第1の最低コスト経路と第2の最低コスト経路が組み合わせされる。ADVは、組み合わせ経路を使用して、道路の第1の部分と第2の部分に沿ってナビゲートできる。一実施形態では、スプラインアルゴリズムにより、第1の最低コスト経路と第2の最低コスト経路を組み合わせすることができる。一実施形態では、各サンプル点での調整点は、サンプル点における道路の中心線に実質的に垂直な線上に生成することができる。一実施形態では、中心線に沿った点のサンプリングの密度は、中心線の曲率または真直度に基づくことができる。サンプル点は、中心線が曲線である箇所にはより密集にされ、中心線が直線である箇所にはより疎にされる場合がある。中心線の曲率半径が小さくなると、中心線の曲がった部分におけるサンプル点の密度が高くなることができる。道路の一部のための最低コスト経路は、先行サンプル点の各候補点から、サンプル点の各候補点を通して、次のサンプル点の各候補点までナビゲートするコストの合計を求めることによって確定できる。一実施形態では、サンプル点での各候補点を通るコストは、ADVが先行サンプル点での候補点からサンプル点での候補点に近づくときの、ADVの第1の速度と方向ベクトルに基づいて、及びサンプル点での候補点から次のサンプル点での候補点までのADVの第2の速度と方向ベクトルに基づいて求められた角度から確定できる。サンプル点での各候補点を通るコストは、候補点と中心線の間の距離にさらに基づくことができる。経路候補の総コストは、候補経路を形成する各候補点のコストの合計に基づいて確定される。
【0012】
第2の実施形態では、非一時的コンピュータ可読媒体に格納された命令を実行することにより、上記の方法動作のいずれかを実施でき、命令は、少なくとも1つのハードウェアプロセッサを備えるADVの処理システムによって実行される。
【0013】
第3の実施形態では、上記の方法の動作のいずれも、実行可能な命令でプログラミングされたメモリを備えるシステム上で実行でき、該メモリは少なくとも1つのハードウェアプロセッサを有する処理システムに接続され、命令は処理システムによって実行されると、前記方法の動作を実行する。
【0014】
図1は、本開示の一実施形態に係る自動運転車両のネットワーク構成を示すブロック図である。
図1に示すように、ネットワーク構成100は、ネットワーク102を介して1つまたは複数のサーバ103〜104に通信可能に接続される自動運転車両101を含む。一台の自動運転車両のみが示されているが、複数の自動運転車両が、ネットワーク102を介して、互いに接続されるか、及び/又はサーバ103〜104に接続されてもよい。ネットワーク102は、任意のタイプのネットワーク、例えば、有線又は無線のローカルエリアネットワーク(LAN)、インターネットのようなワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク又はそれらの組み合わせであってもよい。サーバ103〜104は、任意のタイプのサーバまたはサーバクラスタであってもよく、例えば、ネットワークまたはクラウドサーバ、アプリケーションサーバ、バックエンドサーバ、またはそれらの組み合わせが挙げられる。サーバ103〜104は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図・ポイントオブインタレスト(MPOI)サーバ又は位置サーバなどであってもよい。
【0015】
自動運転車両(ADV)101とは、自動運転モードで走行できるように構成可能な車両を指し、前記自動運転モードにおいて、車両が運転手からの入力がほとんど又は全くない場合に環境を通過するようにナビゲートされる。このようなADVは、ADV101の走行環境に関する情報を検出するように配置される1つまたは複数のセンサを備えるセンサシステム115を備えていてもよい。ADV101及びその関連コントローラは、検出された情報を使用して前記環境を通過するようにナビゲートする。ADV101は、手動モード、完全自動運転モード、又は部分自動運転モードで動作することができる。手動モードでは、ADV101は、ADVに搭載されたロジックに対する補助がほとんど、またはまったくない場合に、人間の運転手によって操作できる。完全自動運転モードでは、ADV101は、人間の運転手による補助がほとんど、またはまったくない場合に操作できる。部分自動運転モードでは、ADV101は、一部またはすべての運転ロジックサブシステムがアクティブ状態であり、人間の運転手によるいくつかの運転制御入力が提供された場合に動作できる。
【0016】
一実施形態において、自動運転車両101は、感知・計画システム110、車両制御システム111、無線通信システム112、ユーザインターフェースシステム113、インフォテインメントシステム(図示せず)およびセンサシステム115を含むが、それらに限定されない。自動運転車両101は更に、エンジン、車輪、ステアリングホイール、変速機などの一般車両に含まれるいくつかの共通構成要素を備えていてもよい。前記構成要素は、車両制御システム111及び/又は感知・計画システム110によって複数種の通信信号及び/又はコマンドで制御されることができ、これらの複数種の通信信号及び/又はコマンドは、例えば加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンドなどが挙げられる。
【0017】
構成要素110〜115は、インターコネクト、バス、ネットワーク、又はそれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素110〜115は、コントローラエリアネットワーク(CAN)バスを介して互いに通信可能に接続することができる。CANバスは、ホストコンピュータなしのアプリケーションでマイクロコントローラおよびデバイスが相互に通信できるように設計された車両バス規格である。それは、もともと自動車内の多重電気配線のために設計されたメッセージに基づくプロトコルであるが、他の多くの環境にも用いられる。
【0018】
ここで
図2を参照すると、一実施形態において、センサシステム115は、1つまたは複数のカメラ211、全地球測位システム(GPS)ユニット212、慣性計測ユニット(IMU)213、レーダユニット214及び光検出・測距(LIDAR)ユニット215を含むが、それらに限定されない。GPSユニット212は、自動運転車両の位置に関する情報を提供するように動作可能な送受信機を備えていてもよい。IMUユニット213は、慣性加速度に基づいて自動運転車両の位置および向きの変化を検知することができる。レーダユニット214は、自動運転車両のローカル環境内のオブジェクトを検知するために無線信号を利用するシステムを表すことができる。いくつかの実施形態において、オブジェクトを検知することに加えて、レーダユニット214はさらに、オブジェクトの速度および/または進行方向を検知することができる。LIDARユニット215は、レーザを使用して自動運転車両が位置する環境内のオブジェクトを検知することができる。LIDARユニット215は、他のシステム構成要素のほかに、1つまたは複数のレーザ源、レーザスキャナおよび1つまたは複数の検出器を更に備えていてもよい。カメラ211は、自動運転車両の周囲の環境における画像を取り込むための1つまたは複数の装置を備えていてもよい。カメラ211は、スチルカメラ及び/又はビデオカメラであってもよい。カメラは、例えば、回転及び/又は傾斜のプラットフォームに取り付けることによって機械的に移動可能なものであってもよい。
【0019】
センサシステム115は、ソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ及びオーディオセンサ(例えば、マイクロホン)などの他のセンサを更に備えることができる。オーディオセンサは、自動運転車両の周囲の環境から音を取得するように構成されてもよい。ステアリングセンサは、ステアリングホイールの操舵角、車両の車輪の操舵角又はそれらの組み合わせを検知するように構成されてもよい。スロットルセンサ及びブレーキセンサはそれぞれ車両のスロットル位置及びブレーキ位置を感知する。場合によっては、スロットルセンサとブレーキセンサは統合型スロットル/ブレーキセンサとして一体化されてもよい。
【0020】
センサシステム115は、ADVの経路に対する障害物を検出することができる。これらの障害物は、人間の運転行動をエミュレートする最低コスト経路モジュールによって考慮することができる。
【0021】
一実施形態では、車両制御システム111は、ステアリングユニット201、スロットルユニット202(加速ユニットとも呼ばれる)、およびブレーキユニット203を含むが、これらに限定されない。ステアリングユニット201は、車両の方向または進行方向を調整するためのものである。スロットルユニット202は、モータまたはエンジンの速度を制御するためのものであり、モータ又はエンジンの速度は更に車両の速度及び加速度を制御するために用いられる。制動ユニット203は、車両の車輪またはタイヤを減速させる摩擦を提供することにより車両を減速させるものである。なお、
図2に示された構成要素は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。ステアリングユニット201は、少なくとも部分的に、ルートに沿ってADVをナビゲートするための経路を確定することに関与する最低コスト経路モジュールによって制御され得る。
【0022】
図1を再び参照して、無線通信システム112は、自動運転車両101と、デバイス、センサ、他の車両などの外部システムとの間の通信を可能にするものである。例えば、無線通信システム112は、直接又は通信ネットワークを介して1つまたは複数のデバイスと無線通信することができ、例えば、ネットワーク102を介してサーバ103〜104と通信することができる。無線通信システム112は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク(WLAN)を使用することができ、例えば、WiFiを使用して別の構成要素又はシステムと通信することができる。無線通信システム112は、例えば、赤外線リンク、ブルートゥースなどを使用して、デバイス(例えば、乗員のモバイルデバイス、表示装置、車両101内のスピーカ)と直接通信することができる。ユーザインターフェースシステム113は、車両101内に実現された周辺装置の部分(例えば、キーボード、タッチスクリーン表示装置、マイクロホン及びスピーカなどを含む)であってもよい。
【0023】
自動運転車両101の機能の一部又は全部は、特に自動運転モードで動作しているときに、感知・計画システム110によって制御又は管理することができる。感知・計画システム110は、必要なハードウェア(例えば、プロセッサ、メモリ、記憶デバイス)及びソフトウェア(例えば、オペレーティングシステム、計画・ルーティングプログラム)を備え、センサシステム115、制御システム111、無線通信システム112及び/又はユーザインターフェースシステム113から情報を受信し、受信した情報を処理し、出発地から目的地までのルート又は経路を計画し、その後、計画及び制御情報に基づいて車両101を走行させる。あるいは、感知・計画システム110を車両制御システム111と一体に統合することができる。
【0024】
例えば、乗員としてのユーザは、例えば、ユーザインターフェースを介して、旅程の出発地位置及び目的地を指定することができる。感知・計画システム110は、旅程関連データを取得する。例えば、感知・計画システム110は、MPOIサーバから位置及びルート情報を取得することができ、前記MPOIサーバはサーバ103〜104の一部であってもよい。位置サーバは位置サービスを提供し、MPOIサーバは地図サービス及び特定の位置のPOIを提供する。あるいは、そのような位置およびMPOI情報は、感知・計画システム110の永続性記憶装置にローカルキャッシュされることができる。
【0025】
自動運転車両101がルートに沿って移動している間、感知・計画システム110は交通情報システムまたはサーバ(TIS)からリアルタイム交通情報を取得していてもよい。なお、サーバ103〜104は第三者機関によって操作されてもよい。あるいは、サーバ103〜104の機能は、感知・計画システム110と一体に統合されてもよい。リアルタイム交通情報、MPOI情報及び位置情報、並びにセンサシステム115によって検出又は検知されたリアルタイムローカル環境データ(例えば、障害物、オブジェクト、周辺車両)に基づいて、感知・計画システム110は、指定された目的地までに安全かつ効率的に到着するように、最適なルートを計画し、計画されたルートに従って、例えば、制御システム111によって車両101を運転する。
【0026】
サーバ103は、様々な顧客に対してデータ解析サービスを行うためのデータ解析システムであってもよい。一実施形態において、データ解析システム103は、データコレクタ121と、機械学習エンジン122とを備える。データコレクタ121は、様々な車両(自動運転車両又は人間の運転手によって運転される一般車両)から運転統計データ123を収集する。運転統計データ123は、発行された運転コマンド(例えば、スロットル、ブレーキ、ステアリングコマンド)及び車両のセンサによって異なる時点で取得された車両の応答(例えば、速度、加速、減速、方向)を示す情報を含む。運転統計データ123は更に、異なる時点における運転環境を記述する情報、例えば、ルート(出発地位置及び目的地位置を含む)、MPOI、道路状況、天気状況などを含んでもよい。
【0027】
一実施形態では、データコレクタ121は、ADVのルートの一部の初期経路及び該ルートの該一部の選択された最低コスト経路のための運転統計データ123を含むデータを記録することができる。また、初期経路は、たとえば、道路の車線の中心線をトラバースする経路であってもよい。最低コスト経路は、経路の一部をよりスムーズに通過するために人間の運転をエミュレートするために初期経路から逸脱する場合がある。運転統計データ123は、センサデータと、ADVが該ルートの一部の最低コスト経路に沿って運転するときにADVに関連付けられる制御入力データとを含むこともできる。最低コスト経路のための運転統計データ123には、速度、進行方向、操舵入力、ブレーキ入力(その入力がある場合)、並びにセンサデータを含んでもよく、センサデータにはADVが最低コスト経路に沿って走行する際に乗員の乗り快適感に影響を与える可能性がある横方向の力、加速度および制動力などが含まれる。機械学習エンジン122は、運転統計データ123を使用してアルゴリズムおよびモデル124を生成することができ、該アルゴリズムおよびモデル124は、ADV運転ロジックをアップグレードして経路の一部のADV最低コスト経路の確定への改善に使用できる。
【0028】
その後、アルゴリズム124を自動運転中にリアルタイムで利用するためにADVにアップロードすることができる。一実施形態では、ADV101は、ADVにダウンロードしてその最低コスト経路モジュール308を更新できるアルゴリズムおよびモデル124のクラウドソースドラーニングを促進するために、運転統計データをサーバ103にアップロードすることができる。たとえば、機械学習エンジン122は、乗員の快適感に影響を与える速度と操舵入力との関係を確定でき、ここで、速度と操舵入力は両方とも許容範囲内ですが、IMUまたはロールピッチによって検出される乗員の快適感は、乗員の快適感に影響を与えるレベルを示す。同様に、最低コスト経路モジュールによって生成されたデータを使用して、より少ない曲がり角でより快適な乗り心地とより大きな速度を提供するアルゴリズムおよびモデル124を確定することができる。
【0029】
図3A及び
図3Bは、一実施形態に係る自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。システム300は、
図1の自動運転車両101の一部として実現されてもよく、感知・計画システム110、制御システム111及びセンサシステム115を含むが、これらに限定されない。
図3A〜
図3Bに示すように、感知・計画システム110は、測位モジュール301、感知モジュール302、予測モジュール303、決定モジュール304、計画モジュール305、制御モジュール306、ルーティングモジュール307及び最低コスト経路モジュール308を含むが、それらに限定されない。
【0030】
モジュール301〜307のうちの一部または全部は、ソフトウェア、ハードウェアまたはそれらの組み合わせで実現されていてもよい。例えば、これらのモジュールは、永続性記憶装置352にインストールされ、メモリ351にロードされ、1つまたは複数のプロセッサ(図示せず)によって実行されていてもよい。なお、これらのモジュールの一部または全部は、
図2の車両制御システム111のモジュールの一部または全部と通信可能に接続されるか、または一体に統合されていてもよい。モジュール301〜308の一部は、集積モジュールとして一体化されていてもよい。
【0031】
測位モジュール301は、自動運転車両300の現在の位置(例えば、GPSユニット212を利用して)を特定し、ユーザの旅程またはルートに関連する如何なるデータを管理する。測位モジュール301(地図・ルートモジュールとも呼ばれる)は、ユーザの旅程又はルートに関連する如何なるデータを管理する。ユーザは、例えば、ユーザインターフェースを介してログインして、旅程の出発地位置及び目的地を指定することができる。測位モジュール301は、自動運転車両300の地図・ルート情報311のような他の構成要素と通信して、旅程関連データを取得する。例えば、測位モジュール301は、位置サーバ及び地図・ポイントオブインタレスト(MPOI)サーバから位置及びルート情報を取得することができる。位置サーバは位置サービスを提供し、MPOIサーバは、地図サービス及び特定位置のPOIを提供し、これらは地図・ルート情報311の一部としてキャッシュすることができる。自動運転車両300がルートに沿って移動するとき、測位モジュール301は交通情報システム又はサーバからリアルタイム交通情報を得ることも可能である。
【0032】
感知モジュール302は、センサシステム115により提供されたセンサデータと、測位モジュール301により取得された測位情報とに基づいて、周囲環境への感知を確定する。感知情報は、一般運転手が運転手により運転されている車両の周囲で感知するものを表すことができる。感知とは、例えばオブジェクトの形式で、車線配置、信号機信号、他の車両の相対位置、歩行者、建築物、横断歩道又は他の交通関連標識(例えば、止まれ標識、ゆずれ標識)などを含むことができる。車線構成は、例えば、車線の形状(例えば、直線または湾曲)、車線の幅、道路内の車線数、一方向または二方向車線、合流車線または分流車線、退出車線など、1つまたは複数の車線を記述する情報を含む。
【0033】
感知モジュール302は、1つまたは複数のカメラによって取り込まれた画像を処理及び解析して、自動運転車両の環境内のオブジェクト及び/又は特徴を認識するためのコンピュータビジョンシステム又はコンピュータビジョンシステムの機能を含むことができる。前記オブジェクトは、交通信号、道路境界、他の車両、歩行者および/または障害物などを含んでいてもよい。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオトラッキング、および他のコンピュータビジョン技術を使用することができる。いくつかの実施形態において、コンピュータビジョンシステムは、環境地図の描画、オブジェクトの追跡、及びオブジェクトの速度の推定などができる。感知モジュール302は、レーダ及び/又はLIDARのような他のセンサによって提供される他のセンサデータに基づいてオブジェクトを検出することもできる。
【0034】
各オブジェクトについて、予測モジュール303は、その場合にオブジェクトがどのように挙動するかを予測する。この予測は、地図・ルート情報311と交通ルール312のセットを考慮した時点で運転環境を感知する感知データに基づいて実行される。例えば、オブジェクトが反対方向の車両であり、かつ現在の運転環境が交差点を含む場合、予測モジュール303は、車両が直進するか又は曲がるかを予測する。感知データが、交差点に信号機がないことを示す場合、予測モジュール303は、交差点に入る前に車両が完全に停止する必要があると予測する可能性がある。感知データが、車両が現在左折専用車線または右折専用車線にあることを示す場合、予測モジュール303は、車両がそれぞれ左折または右折する可能性がより高いと予測することが可能である。
【0035】
オブジェクトごとに対して、決定モジュール304はオブジェクトをどのように処置するかを決定する。例えば、特定のオブジェクト(例えば、交差ルートにおける他の車両)及びオブジェクトを記述するメタデータ(例えば、速度、方向、曲がり角)について、決定モジュール304は前記オブジェクトと遇うときに如何に対応するか(例えば、追い越し、道譲り、停止、追い抜き)を決定する。決定モジュール304は、交通ルールまたは運転ルール312などのルールセットに基づいてそのような決定を行うことができ、前記ルールセットは永続性記憶装置352に格納されていてもよい。
【0036】
ルーティングモジュール307は、出発地から目的地までの1つまたは複数のルート又は経路を提供するように構成される。ルーティングモジュール307は、出発地位置から目的地位置までの特定の旅程(例えば、ユーザから受信された特定の旅程)について、地図・ルート情報311を取得し、出発地位置から目的地位置までのすべての可能なルート又は経路を確定する。ルーティングモジュール307は、出発地位置から目的地位置までの各ルートを確定する地形図形態の基準線を生成することができる。基準線とは、他の車両、障害物または交通状況などからの如何なる干渉を受けていない理想的なルートまたは経路をいう。つまり、道路に他の車両、歩行者または障害物がない場合、ADVは基準線に精確的にまたは密接的に従うべきである。そして、地形図を決定モジュール304および/または計画モジュール305に提供する。計画モジュール305は、人間の運転と同様にADV101をナビゲートするための滑らかな基準線を提供するために、最低コスト経路モジュール308を含むことができる。決定モジュール304および/または計画モジュール305は、他のモジュールにより提供された他のデータ(例えば測位モジュール301からの交通状况、感知モジュール302により感知された運転環境および予測モジュール303により予測された交通状况)に応じて、全ての走行可能なルートを検査して最適ルートのうちの一つを選択及び変更する。その時点における特定の運転環境に応じて、ADVを制御するための実際の経路又はルートは、ルーティングモジュール307によって提供された基準線に近いか又は異なっていてもよい。
【0037】
感知されたオブジェクトのそれぞれに対する決定に基づいて、計画モジュール305は、ルーティングモジュール307によって提供された基準線をベースとし、自動運転車両に対して経路又はルート並びに運転パラメータ(例えば、距離、速度および/または曲がり角)を計画する。言い換えれば、特定のオブジェクトについて、決定モジュール304は該オブジェクトに対して何をするかを決定し、計画モジュール305はどのようにするかを確定する。例えば、特定のオブジェクトについて、決定モジュール304は前記オブジェクトを追い抜くか否かを決定することができ、計画モジュール305は前記オブジェクトを左側から追い抜くか又は右側から追い抜くかを確定することができる。計画及び制御データは、計画モジュール305により生成され、車両300が次の移動周期(例えば、次のルート/経路区間)にはどのように移動するかを記述する情報を含む。例えば、計画及び制御データは、車両300に時速30マイル(mph)で10m移動し、次に25マイル(mph)の速度で右車線に変更するように指示することができる。
【0038】
制御モジュール306は、計画及び制御データに基づいて、計画及び制御データにより定義されたルートまたは経路に応じて適当なコマンド若しくは信号を車両制御システム111に送信することにより自動運転車両を制御および運転する。前記計画及び制御データは、経路又はルートに沿って異なる時点で適切な車両構成又は運転パラメータ(例えば、スロットル、ブレーキ、及びステアリング制御コマンド)を使用して、車両をルート又は経路の第1点から第2点まで走行させるのに十分な情報を含む。
【0039】
一実施形態において、計画段階は、例えば、時間間隔が100ミリ秒(ms)の周期など、複数の計画周期(運転周期ともいう)で実行される。計画周期または運転周期のそれぞれについて、計画及び制御データに基づいて1つまたは複数の制御コマンドを発する。すなわち、100msごとに、計画モジュール305は、次のルートセグメントまたは経路区間(例えば、目標位置およびADVが目標位置に到着するのに必要な時間が含まれる)を計画する。あるいは、計画モジュール305は、具体的な速度、方向および/または操舵角などを更に指定することができる。一実施形態において、計画モジュール305は、次の所定期間(例えば、5秒)のルートセグメントまたは経路区間を計画する。計画周期のそれぞれに対し、計画モジュール305は、前の周期で計画された目標位置に基づいて、現在の周期(例えば、次の5秒)のための目標位置を計画する。制御モジュール306は、次に、現在の周期における計画及び制御データに基づいて1つまたは複数の制御コマンド(例えば、スロットル、ブレーキ、ステアリング制御コマンド)を生成する。
【0040】
なお、決定モジュール304及び計画モジュール305は、集積モジュールとして一体化されてもよい。決定モジュール304/計画モジュール305は、自動運転車両の運転経路を決定するためのナビゲーションシステムまたはナビゲーションシステムの機能を含んでいてもよい。例えば、ナビゲーションシステムは、自動運転車両が最終的な目的地に通じる走行車線に基づく経路に沿って進行すると共に感知された障害物を実質的に回避するように、自動運転車両をその経路に沿って移動させることを実現するための一連の速度および進行方向を確定することができる。目的地は、ユーザインターフェースシステム113を介したユーザ入力に従って設定することができる。ナビゲーションシステムは、自動運転車両が走行している間に運転経路を動的に更新することができる。ナビゲーションシステムは、自動運転車両のための運転経路を確定するために、GPSシステムおよび1つまたは複数の地図からのデータを統合することができる。
【0041】
最低コスト経路モジュール308は、人間の運転スタイルをエミュレートする道路の車線の一部を通る経路の滑らかな基準線を確定することができる。走行ルートの経路における1つ以上のターンに直面している運転手は、多くの場合、ターンに近づくと車線内の異なる位置を選択し、経路上の車線の中心線の一方側または他方側に向きを変え、車両によって実行されるターンのシャープネスを滑らかにしようとする。最低コスト経路モジュール308は、一連の経路を分析することにより人間の運転行動をエミュレートすることができ、各経路はいずれもADVをナビゲートするための経路の一部である。最低コスト経路モジュール308は、
図3Bに示すように、計画モジュール305の一部を形成することができ、以下により詳細に説明される。
【0042】
次に、
図4Aから
図4Cを参照して、最低コスト経路モジュール308についてさらに説明する。
図4Aは、いくつかの実施形態に係る、自動運転車両のための人間の運転行動を模倣するための滑らかな基準線を生成する方法における、道路の中心線点、およびサンプル点における調整点のサンプルを示している。
図4Bは、いくつかの実施形態に係る、自動運転車両のための滑らかな基準線を生成して人間の運転行動を模倣する方法における、調整点を有する中心線点のサンプルに対する候補調整点(サンプル点の候補点と総称する)、および候補点を通る可能な経路の例を示している。
図4Cは、いくつかの実施形態に係る、自動運転車両のための人間の運転行動を模倣するための滑らかな基準線を生成する方法の基準経路に結合されるサブカーブを示している。
【0043】
ここで
図4Aを参照すると、一実施形態では、最低コスト経路モジュール308は、まず、道路の車線の中心線410を確定することができ、該車線はADV101の走行方向に関して左境界405および右境界415を有する。単一車線の道路では、車線は、例えば、縁石、歩道又は塗装された車線のストライプなど、左右の物理的道路の境界で画定できる。多車線道路では、物理的車線の境界も同様に、ペイントストライプ、縁石、歩道、またはこれらの組み合わせによって確定されることができる。一実施形態では、車線幅はセンサシステム115によって確定されることができ、中心線は1つの物理的境界(左または右)およびセンサシステム115によって確定された車線幅によって確定され得る。最低コスト経路モジュール308は、多車線道路が、同じ方向に向かうトラフィックを運ぶ複数の車線で構成されるか、反対方向にトラフィックを運ぶ複数の車線で構成されるかを考慮することができる。最低コスト経路モジュール308は、トラフィックの方向とADV101の速度を考慮に入れることができ、中心線を確定する際に、ADV101とADV101の近くにある他の車両または障害物との間のバッファスペースを多かれ少なかれ残すことができる。
【0044】
道路の車線の中心線が確定された後、最低コスト経路モジュール308は、中心線を表すために中心線に沿って複数のiのサンプル点420(ここで、i=0,…,m)を生成することができる。一実施形態では、最低コスト経路モジュール308は、中心線がより直線である場合に中心線のより少ないサンプル点420を生成でき、中心線の曲率が増加するにつれて中心線のサンプル点420の数を増加できる。サンプル点420が生成された後、最低コスト経路モジュール308は、各サンプル点420を囲む領域に調整点425をさらに生成することができる。一実施形態では、最低コスト経路モジュール308は、サンプル点420の近くにある中心線の各側に2つまたは3つの調整点425を生成することができる。サンプル点420に関連する最低コスト経路を計算するために、各サンプル点420、およびそれに関連付けられる調整点は、サンプル点420の候補点と呼ばれる。一実施形態では、サンプル点420の候補点は、サンプル点420における中心線に実質的に垂直な線上に生成される。
【0045】
ここで
図4Bを参照すると、最低コスト経路モジュール308は、次いで、中心線410に沿って、経路の一部を含む経路に関連付けられるサンプル点420のサブセットを選択することができる。サンプル点i−1、サンプル点i、サンプル点i+1の各トライアドについて、サンプル点i−1の各候補点からサンプル点iの各候補点を通してサンプル点i+1の各候補点までの各候補経路のコストを確定する。各候補経路は、サンプル点i−1の候補点からサンプル点iの候補点までのベクトルV
1と、サンプル点iの候補点からサンプル点i+1の候補点までのベクトルV
2を含む。一実施形態では、各サンプル点iにおいて、候補点には、例えば、-2、-1、0、1、および2をインデックス付けしてもよく、サンプル点は、インデックス0を有する候補点である。なお、サンプル点i=0では、i=0がADVの現在位置を表すため、唯一の候補点はi=0でのサンプル点である。
【0046】
図4Bに示される例を続けると、i=1のとき、サンプル点i-1はi=0であり、サンプル点i+1はi=2である。候補経路は、候補点(0,0)、(1,1)、および(2,1)で表される。ベクトルV
0は、候補点(0,0)でのADV101の現在の速度と方向を表す。ベクトルV
1は、候補点(0,0)から候補点(1,1)までのADV101の速度と方向を表す。ベクトルV
2は、候補点(1,1)から候補点(2,1)までの速度と方向を表す。候補点(0,0)から候補点(1,1)まで、ADV101は角度
で左への操舵入力を行う。点(1,1)は、道路の車線の中心線にあるサンプル点i=1からの距離D
1である。候補点(0,0)から候補点(1,1)までにV
1をトラバースするコストには、少なくとも2つの成分cost
1およびcost
2が含まれる。
【数1】
【0047】
ここで、f
1およびf
2は、任意の単調増加関数であり得る。一実施形態では、f
1およびf
2は異なる単調増加関数であり得る。同様に、候補点(1,1)から候補点(2,1)まで、ADV101は角度
で右への操舵入力を行う。点(2,1)は、道路の車線の中心線にあるサンプル点i=i+1からの距離D
2である。候補点(1,1)から候補点(2,1)までにV
2をトラバースするコストには、少なくとも2つの成分cost
1およびcost
2が含まれる。
【数2】
【0048】
サンプル点i−1、サンプル点i、およびサンプル点i+1での候補点の順列ごとに、上記のコスト関数を使用してコストを確定する。コスト計算は、サンプル点のトライアドよりも多く、例えばi=1からm、またはその如何なるサブセットに拡張できる。例えば、
図4Aから4Cに示されるように、経路は、曲線Cと呼ばれる経路の部分、例えば曲線C
1、曲線C
2、および曲線C
3に分割されてもよい。曲線は、サンプル点i=0,…,mのサブセットによって表される道路の車線の一部として、数学的な意味で広く解釈されている。曲線には、直線、カーブ、または両方の車線の部分が含まれる場合がある。各曲線Cについて、最低コスト経路を確定する。
図4Cに示すように、各曲線の最低コスト経路をスプラインアルゴリズムを使用してスプライン化して、最低コスト経路を表す候補点を通る最低コスト経路を生成する。道路の一部のための最低コスト経路曲線Cの候補点を使用し、各曲線Cは、変数xおよびyの2次元(2D)多項式関数などの関数として表現できる。
【数3】
【0049】
関数g
1およびg
2を時間tでの位置の関数に変換することにより、曲線Cは次のように表すことができる。
【数4】
【0050】
任意の数のサンプル点を通る最低コスト経路のための一般的な関数は、次のように表すことができる。
【数5】
【0052】
曲線C(例えば、C
1、C
2、およびC
3)のための最低コスト経路を計算した後、
図4Cに示すように、スプラインアルゴリズムを使用して曲線を組み合わせることができる。
【0053】
なお、以上に例示及び説明された構成要素の一部又は全ては、ソフトウェア、ハードウェア、またはそれらの組み合わせで実現されることができる。例えば、このような構成要素は、永続性記憶装置にインストールされるとともに格納されるソフトウェアとして実現されてもよく、前記ソフトウェアは、本開示にわたって記載されたプロセス又は動作を実施するように、プロセッサ(図示せず)を介してメモリにロードして実行されてもよい。あるいは、このような構成要素は、集積回路(例えば、特定用途向け集積回路又はASIC)、デジタルシグナルプロセッサ(DSP)、またはフィールドプログラマブルゲートアレイ(FPGA)のような専用ハードウェアにプログラミングまたは埋め込まれた実行可能なコードとして実現されてもよく、前記実行可能なコードは、アプリケーションからの対応するドライバーおよび/またはオペレーティングシステムを介してアクセスすることができる。また、このような構成要素は、ソフトウェア部材が1つまたは複数の特定の命令によってアクセス可能な命令セットの一部として、プロセッサ又はプロセッサコアにおける特定のハードウェアロジックとして実現されることができる。
【0054】
図5は、いくつかの実施形態による、人間の運転行動を模倣して自動運転車両のための最低コストの滑らかな基準線を確定する方法500の概要をブロック図形式で示す。
【0055】
動作505において、道路の一部の車線の中心線を表す点が、高精度(HD)地図から抽出される。HD地図は、ADV101メモリに格納されたHD地図、またはADV101の通信システムを介してHD地図サービスからダウンロードされてもよい。道路の車線の左右境界を確定するために、道路のHD地図データは、搭載されたセンサシステム115のセンサデータによって補足され得る。境界は、縁石、歩道、ペイントストライプまたはレフレクタなどの物理的境界であってもよい。左および右は、ADV101の走行方向に対するものであり得る。一実施形態において、車線は、右の物理的境界または左の物理的境界を使用して、ADVの幅とADV感知モジュールによって検出されたADV101を囲む障害物までの距離を考慮した推定車線幅とを組み合わせて確定することができる。車線の中心線は、車線の左右の境界から等距離にあるとすることができる。一実施形態では、ADVセンサデータにより、例えばADVの右側に多数の歩行者または他の障害物があることが判定され、安全性を高めるために中心線を障害物からわずかに離れるようにすることができる。
【0056】
動作510において、最低コスト経路モジュール308は、HD地図から抽出された中心線の点をサンプリングすることができる。中心線における点のサンプリングは、道路の車線の直線部分ではより疎にされ、道路の車線の曲率の増加につれてより密にされることができる。
【0057】
動作515において、最低コスト経路モジュール308は、サンプル点を囲む領域内の各サンプル点のための調整点を確定することができる。一実施形態では、調整点は、サンプル点における車線の中心線に垂直な線上にあり得る。調整点の数は、サンプル点における道路の車線の中心線の両側に、例えば、2つまたは3つであってもよい。一実施形態では、5〜7個の調整点があり得る。一実施形態では、調整点は0.2から0.5メートル離間することができる。一実施形態では、中心線の各側の調整点の数は異なり得る。一実施形態では、生成される調整点の数は、最低コスト経路の計算を実行するプロセッサの計算能力の増加に関連して増加することができる。各サンプル点では、最低コスト経路分析のための候補点のセットには、サンプル点と調整点が含まれる。
【0058】
動作600において、サンプル候補点(各サンプル点におけるサンプル点と調整点)を使用して、最低コスト経路曲線を生成することができる。以下で
図6を参照しながら動作600を詳細に説明する。
【0059】
動作520において、道路の車線の第2の部分について前記動作505から動作600を繰り返すことができる。当業者は、道路の第1の部分と第2の部分の両方に対して動作505から515のいくつかを同時に実行でき、道路の第1の部分または第2の部分の最低コストの確定を別々に実行できることを理解されたい。例えば、ルートに沿った道路の第1の部分と道路の第2の部分の両方について道路の車線の中心線を確定できる。一実施形態では、ルートのナビゲーションを開始する前に、ルートの開始から終了までのルート全体にわたる道路の車線の中心線を確定できる。道路の車線の中心線のサンプリング、および/または各サンプル点での調整点の提供は、道路の車線の複数の部分に対して一度に行われてもよい。
【0060】
動作525において、道路の車線の第1の部分および第2の部分のそれぞれについての最低コスト経路を組み合わせて、道路の車線の両部分について単一の最低コスト経路を生成することができる。一実施形態では、道路の両部分のための最低コスト経路は、スプラインアルゴリズムを使用して組み合わせることができる。
【0061】
動作530において、ADV101は、
図4Cに示されるように、道路の両部分を通るように組み合わせされた最低コスト経路の最低コスト経路に沿ってナビゲートされ得る。
【0062】
動作535において、最低コスト経路モジュール308は、分析のために、道路の組み合わせされた部分の中心線データおよび組み合わせされた最低コスト経路をリモートサーバにアップロードすることができる。一実施形態では、ADVロジックは、ADVが道路の組み合わせされた部分のための最低コスト経路をトラバースする間に測定されたセンサデータおよび制御データをアップロードすることもできる。制御データには、操舵入力、スロットル入力、ブレーキ入力および速度データが含まれる。センサデータには慣性測定データが含まれてもよい。一実施形態では、アップロードされた制御データおよびセンサデータは、最低コスト経路に沿った各サンプル点でのサンプル点および/または候補点と関連付けることができる。
【0063】
図6は、いくつかの実施形態による、人間の運転行動を模倣するために、自動運転車両のための道路の車線の一部を通る最低コスト経路を生成する方法600の詳細をブロック図形式で示している。最低コスト経路の確定は、道路の車線の一部における各サンプル点での候補点のすべての順列をトラバースするコストを計算する反復プロセスである。上記のように、ADVの最大可能操舵入力よりも大きい操舵入力角度を必要とする候補点のトラバースに基づいて、いくつかの候補点トラバースを順列のリストから除外することができる。推定された慣性値に基づいて、候補点のトラバースを除外することもできる。ここで、推定された慣性値は、例えば候補点を次の候補点までトラバースする横方向の力であり、該横方向の力はADV101の乗員に不快感を与える閾値よりも大きい。上に示すように、
図4Bを参照すると、各サンプル点を囲む中心線の両側に、例えば2つまたは3つの調整点があり得、候補点にはサンプル点と調整点が含まれる。一実施形態では、5〜7個の調整点があり得る。一実施形態では、調整点は0.2から0.5メートル離間することができる。
図6では、各サンプル点での中心線の両側にある2つの調整点の例が使用される。したがって、候補点を−2、−1、0、1、および2にインデックス付けすることができ、ここで、如何なる特定のサンプル点について、0の候補点インデックスはサンプル点を表し、残りの候補点は道路の車線の中心線から離れるサンプル点としてインデックス付けされる。当業者は、中心線の各側に2より多いかまたは少ない調整点があり得ることを理解されたい。また、上記のように、サンプル点での中心線の両側の調整点の数は異なっていてもよい。
【0064】
動作605において、サンプル点SP
iは、ループ変数i=1,…,mによってインデックス付けされ得る。
【0065】
動作610において、各サンプル点SP
iについて、サンプル点SP
iの候補点は、ループ変数k:候補点CP
(i,k)によってインデックス付けされ得る。上記のように、kは例えば−2、−1、0、1、および2の値でインデックス付けでき、ここで、インデックスk=0はサンプル点SP
iを表す。
【0066】
動作615において、サンプル点SP
i−1の候補点は、ループ変数j:CP
(i−1,j)によってインデックス付けされ得る。上記のように、jは−2、−1、0、1、および2の値でインデックス付けでき、ここで、インデックスj=0はサンプル点SP
i−1を表す。
【0067】
動作620において、各サンプル点SP
i+1について、サンプル点SP
i+1の候補点は、変数l(小文字L):CP
(i+1,l)によってインデックス付けされ得る。上記のように、ループ変数lは例えば−2、−1、0、1、および2の値でインデックス付けでき、ここで、インデックスl=0はサンプル点SP
i+1を表す。
【0068】
動作625において、サンプル点SP
i−1の候補点CP
(i−1,j)からサンプル点SP
iの候補点CP
(i,k)まで、サンプル点SP
i+1の候補点CP
(i+1,l)までの経路をトラバースするコストを確定できる。上記で計算の詳細は、
図4Bを参照して説明された。候補点CP
(i−1,j)、CP
(i,k)及びCP
(i+1,l)のトラバースに関連するコストは、サンプル点SP
iを参照して格納できる。一実施形態では、候補点CP
(i−1,j)、CP
(i,k)およびCP
(i+1,l)をトラバースするのに必要な操舵入力角度も格納することができる。さらに、一実施形態では、推定された慣性測定値、候補点CP
(i−1,j)、CP
(i,k)およびCP
(i+1,l)をトラバースする最低コスト、並びに候補点CP
(i−1,j)、CP
(i,k)、CP
(i+1,l)のトラバースに関連付けられる操舵角データを格納することができる。最低コスト経路モジュール308は、操舵角および推定された慣性測定値を利用して、この候補経路を、動作670の最低コスト経路の確定において考慮から除外すべきかどうかを決定することができ、これは、ADVが必要な操舵角を満たせないか、または推定された慣性測定値がADVの乗員に不快感を与える可能性があるためである。
【0069】
動作630では、トラバースすべき候補点CP
(i+1,l)がさらにあるかどうかを判定することができる。そうである場合、動作635でl(小文字のL)が次のインデックス値とされ、方法600を動作620に続く。そうでなければ、方法600を動作640に続く。
【0070】
動作640では、トラバースすべき候補点CP
(i−1,j)がさらにあるかどうかを判定することができる。そうである場合、動作645でjが次のインデックス値とされ、方法600を動作615に続く。そうでなければ、方法600を動作650に続く。
【0071】
動作650では、トラバースすべき候補点CP
(i,k)がさらにあるかどうかを判定することができる。そうである場合、動作655でkが次のインデックス値とされ、方法600を動作610に続く。そうでなければ、方法600を動作660に続く。
【0072】
動作660では、トラバースすべき候補点SP
iがさらにあるかどうかを判定することができる。そうである場合、動作665でiが次のインデックス値とされ、方法600を動作605に続く。そうでなければ、方法600を動作670に続く。
【0073】
動作670において、すべてのi=1,…,mについてのCP
(i−1、j)からCP
(i,k)へのCP
(i+1、l)へのすべての経路をトラバースして、ADVのルート上の道路の車線の部分の候補点を通る最低コスト経路を確定することができる。確定された最低コスト経路は、分析が実行された道路の車線の部分に関連付けられて格納することができる。
【0074】
図7は、本開示の一実施形態と一緒に使用可能なデータ処理システムの一例を示すブロック図である。例えば、システム1500は、上述した前記プロセスまたは方法のいずれかを実行するデータ処理システムのいずれか(例えば、
図1の感知・計画システム110、またはサーバ103〜104のいずれか)を表すことができる。システム1500は、いくつかの異なる構成要素を備えていてもよい。これらの構成要素は、集積回路(IC)、集積回路の一部、ディスクリート型電子デバイス、又は回路基板(例えば、コンピュータシステムのマザーボード若しくはアドインカード)に適するその他のモジュールとして実現されることができ、又は、他の形態でコンピュータシステムのシャーシ内に組み込まれる構成要素として実現されることが可能である。
【0075】
なお、システム1500は、コンピュータシステムのいくつかの構成要素の高レベルビューを示すことを意図している。しかしながら、特定の実施例においては付加的構成要素が存在してもよく、また、その他の実施例においては示された構成要素を異なる配置にすることも可能であることを理解されたい。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレヤー、パーソナルデジタルアシスタント(PDA)、スマートウォッチ、パーソナルコミュニケーター、ゲーミングデバイス、ネットワークルーター又はハブ、無線アクセスポイント(AP)又はリピーター、セット・トップボックス、又はそれらの組み合わせを表すことができる。また、単一の機械又はシステムのみが示されたが、「機械」又は「システム」という用語は、本明細書で説明されるいずれか1つまたは複数の方法を実行するための、1つ(又は複数)の命令セットを単独で又は共同で実行する機械又はシステムの任意の組み合わせも含まれることを理解されたい。
【0076】
一実施形態において、システム1500は、バスまたはインターコネクト1510を介して接続される、プロセッサ1501、メモリ1503並びにデバイス1505〜1508を含む。プロセッサ1501は、単一のプロセッサコアまたは複数のプロセッサコアが含まれる単一のプロセッサまたは複数のプロセッサを表すことができる。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)などのような、1つまたは複数の汎用プロセッサを表すことができる。より具体的には、プロセッサ1501は、複雑命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、またはその他の命令セットを実行するプロセッサ、または命令セットの組み合わせを実行するプロセッサであってもよい。プロセッサ1501は更に1つまたは複数の専用プロセッサであってもよい。例えば、特定用途向け集積回路(ASIC)、セルラー又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、グラフィックプロセッサ、通信プロセッサ、暗号プロセッサ、コプロセッサ、組み込みプロセッサ、又は命令を処理可能な任意の他のタイプのロジックが挙げられる。
【0077】
プロセッサ1501は、超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよく、前記システムの様々な構成要素と通信するための主処理ユニット及び中央ハブとして機能することができる。このようなプロセッサは、システムオンチップ(SoC)として実現されることができる。プロセッサ1501は、本明細書で説明される動作およびステップを実行するための命令を実行するように構成される。システム1500は、更に任意選択グラフィックサブシステム1504と通信するグラフィックインターフェースを含むことができ、グラフィックサブシステム1504は、表示コントローラ、グラフィックプロセッサおよび/または表示装置を含んでいてもよい。
【0078】
プロセッサ1501は、メモリ1503と通信することができ、メモリ1503は、一実施形態において、所定量のシステムメモリを提供するための複数のメモリデバイスによって実現されることができる。メモリ1503は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、又はその他のタイプの記憶装置のような、1つまたは複数の揮発性記憶(又はメモリ)装置を含むことができる。メモリ1503は、プロセッサ1501又はその他の任意の装置により実行される命令シーケンスを含む情報を格納することができる。例えば、様々なオペレーティングシステム、デバイスドライバ、ファームウェア(例えば、基本入出力システム又はBIOS)、及び/又はアプリケーションの実行可能なコード及び/又はデータは、メモリ1503にロードされ、プロセッサ1501により実行されることができる。オペレーティングシステムは、例えば、ロボットオペレーティングシステム(ROS)、Microsoft(登録商標)社のWindows(登録商標)オペレーティングシステム、アップル社のMacOS(登録商標)/iOS(登録商標)、Google(登録商標)社のAndroid(登録商標)、LINUX、UNIX、またはその他のリアルタイム若しくは組込みオペレーティングシステムのような、任意のタイプのオペレーティングシステムであってもよい。
【0079】
システム1500は、更に、ネットワークインターフェースデバイス1505、任意選択入力デバイス1506、及びその他の任意選択I/Oデバイス1507を含むデバイス1505〜1508のようなI/Oデバイスを含むことができる。ネットワークインターフェースデバイス1505は、無線送受信機及び/又はネットワークインターフェースカード(NIC)を含むことができる。前記無線送受信機は、WiFi送受信機、赤外線送受信機、ブルートゥース送受信機、WiMax送受信機、無線携帯電話送受信機、衛星送受信機(例えば、全地球測位システム(GPS)送受信機)、またはその他の無線周波数(RF)送受信機、またはそれらの組み合わせであってもよい。NICは、イーサネットカードであってもよい。
【0080】
入力デバイス1506は、マウス、タッチパッド、タッチスクリーン(表示装置1504と一体に統合されてもよい)、ポインターデバイス例えば、スタイラス)、及び/又はキーボード(例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード)を含むことができる。例えば、入力デバイス1506は、タッチスクリーンと接続されるタッチスクリーンコントローラを含むことができる。タッチスクリーン及びタッチスクリーンコントローラは、例えば、様々なタッチ感応技術(コンデンサ、抵抗、赤外線、及び表面弾性波の技術を含むが、それらに限定されない)のいずれか、並びにその他の近接センサアレイ、又は、タッチスクリーンと接触する1つまたは複数の点を確定するためのその他の素子を用いて、それらの接触、移動または中断を検出することができる。
【0081】
I/Oデバイス1507は、音声装置を含むことができる。音声装置は、音声認識、音声複製、デジタル記録、及び/又は電話機能のような音声サポート機能を促進するために、スピーカ及び/又はマイクロホンを含んでもよい。その他のI/Oデバイス1507は、更に、ユニバーサルシリアルバス(USB)ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ(例えば、PCI−PCIブリッジ)、センサ(例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなどのモーションセンサ)、又はそれらの組み合わせを含むことができる。デバイス1507は、更に結像処理サブシステム(例えば、カメラ)を含むことができ、前記結像処理サブシステムは、写真及びビデオ断片の記録のようなカメラ機能を促進するための、電荷結合素子(CCD)又は相補型金属酸化物半導体(CMOS)光学センサのような光学センサを含むことができる。いくつかのセンサは、センサハブ(図示せず)を介してインターコネクト1510に接続されることができ、キーボード又はサーマルセンサのようなその他のデバイスはシステム1500の具体的な構成又は設計により、組込みコントローラ(図示せず)により制御されることができる。
【0082】
データ、アプリケーション、1つまたは複数のオペレーティングシステムなどの情報の永続性記憶を提供するために、プロセッサ1501には、大容量記憶デバイス(図示せず)が接続されることができる。様々な実施形態において、より薄くてより軽量なシステム設計を可能にしながら、システムの応答性を向上するために、このような大容量記憶デバイスは、ソリッドステートデバイス(SSD)によって実現されることができる。しかしながら、その他の実施形態において、大容量記憶デバイスは、主にハードディスクドライブ(HDD)を使用して実現することができ、より小さい容量のSSD記憶デバイスをSSDキャッシュとして機能することで、停電イベントの間にコンテキスト状態及び他のそのような情報の不揮発性記憶を可能にし、それによりシステム動作が再開するときに通電を速く実現することができる。また、フラッシュデバイスは、例えば、シリアルペリフェラルインターフェース(SPI)を介してプロセッサ1501に接続されることができる。このようなフラッシュデバイスは、システムソフトウェアの不揮発性記憶のために機能することができ、前記システムソフトウェアは前記システムのBIOS及びその他のファームウェアを含む。
【0083】
記憶デバイス1508は、コンピュータアクセス可能な記憶媒体1509(機械可読記憶媒体又はコンピュータ可読媒体ともいう)を含むことができ、前記コンピュータアクセス可能な記憶媒体1509には、本明細書で記載されたいずれか1つまたは複数の方法又は機能を具現化する1つまたは複数の命令セット又はソフトウェア(例えば、モジュール、ユニット及び/又はロジック1528)が格納されている。処理モジュール/ユニット/ロジック1528は、例えば、計画モジュール305、制御モジュール306、ルーティングモジュール307及び最低コスト経路モジュール308のような、前記構成要素のいずれかを表すことができる。処理モジュール/ユニット/ロジック1528は、更に、データ処理システム1500、メモリ1503およびプロセッサ1501による実行中に、メモリ1503内および/またはプロセッサ1501内に完全的にまたは少なくとも部分的に存在してもよく、データ処理システム1500、メモリ1503、及びプロセッサ1501も機械アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528は、更に、ネットワークによってネットワークインターフェースデバイス1505を経由して送受信されてもよい。
【0084】
コンピュータ可読記憶媒体1509は、以上に説明されたいくつかのソフトウェア機能を永続的に格納するために用いることができる。コンピュータ可読記憶媒体1509は、例示的な実施形態において単一の媒体として示されるが、「コンピュータ可読記憶媒体」という用語は、前記1つまたは複数の命令セットが格納される単一の媒体または複数の媒体(例えば、集中型または分散型データベースおよび/または関連するキャッシュとサーバ)を含むと解釈されるものとする。「コンピュータ可読記憶媒体」という用語は、更に、命令セットを格納または符号化できる任意の媒体を含むと解釈されるものであり、前記命令セットは機械により実行され、本開示のいずれか1つまたは複数の方法を前記機械に実行させるためのものである。それゆえに、「コンピュータ可読記憶媒体」という用語は、ソリッドステートメモリ、光学媒体および磁気媒体、またはその他の任意の非一時的機械可読媒体を含むが、それらに限定されないと解釈されるものとする。
【0085】
本明細書に記載の処理モジュール/ユニット/ロジック1528、構成要素及びその他の特徴は、ディスクリートハードウェア部材として実現されてもよく、又はハードウェア部材(例えば、ASICS、FPGA、DSP又は類似のデバイス)の機能に統合されてもよい。さらに、処理モジュール/ユニット/ロジック1528は、ハードウェアデバイスにおけるファームウェアまたは機能性回路として実現されていてもよい。また、処理モジュール/ユニット/ロジック1528は、ハードウェアデバイスとソフトウェア部材の任意の組み合わせで実現されてもよい。
【0086】
なお、システム1500は、データ処理システムの様々な構成要素を有するものとして示されているが、構成要素を相互接続する任意の特定のアーキテクチャまたは方式を表すことを意図するものではなく、そのような詳細は、本開示の実施形態とは密接な関係がない。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、及び/又はその他のデータ処理システムも、本開示の実施形態と一緒に使用可能であることを理解されたい。
【0087】
上述した具体的な説明の一部は、既に、コンピュータメモリにおけるデータビットに対する演算のアルゴリズムと記号表現により示された。これらのアルゴリズムの説明および表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。本明細書では、一般的に、アルゴリズムは、所望の結果につながるセルフコンシステントシーケンスと考えられる。これらの操作は、物理量の物理的処置が必要とされるものである。
【0088】
しかしながら、念頭に置くべきなのは、これらの用語および類似の用語の全ては、適切な物理量に関連付けられるものであり、これらの量を標識しやすくするためのものに過ぎない。以上の説明で他に明示的に記載されていない限り、本明細書の全体にわたって理解すべきなのは、用語(例えば、添付された特許請求の範囲に記載のもの)による説明とは、コンピュータシステム、または類似の電子式計算装置の動作および処理を指し、前記コンピュータシステムまたは電子式計算装置は、コンピュータシステムのレジスタおよびメモリにおける物理(電子)量として示されたデータを制御するとともに、前記データをコンピュータシステムメモリまたはレジスタまたはこのようなその他の情報記憶装置、伝送または表示装置において同様に物理量として示された別のデータに変換する。
【0089】
本開示の実施形態は、本明細書の動作を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的コンピュータ可読媒体に格納される。機械可読媒体は、機械(例えば、コンピュータ)により読み取り可能な形式で情報を格納するための任意のメカニズムを含む。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置)を含む。
【0090】
上述した図面において説明されたプロセス又は方法は、ハードウェア(例えば、回路、専用ロジックなど)、ソフトウェア(例えば、非一時的コンピュータ可読媒体に具現化されるもの)、又は両方の組み合わせを含む処理ロジックにより実行されることができる。前記プロセス又は方法は、以上で特定の順序に応じて説明されたが、前記操作の一部が異なる順序で実行されてもよいことを理解されたい。また、一部の操作は、順番ではなく並行して実行されてもよい。
【0091】
本開示の実施形態は、いずれの特定のプログラミング言語を参照することなく記載されている。理解すべきのは、本明細書に記載の本開示の実施形態の教示を実現するために、様々なプログラミング言語を使用することができる。
【0092】
本明細書において、本開示の実施形態は、既にその具体的な例示的な実施
形態を参照しながら記載された。明らかなように、添付された特許請求の範囲に記載された本開示のより広い趣旨及び範囲を逸脱しない限り、本開示に対して様々な変更を行うことができる。それゆえに、本明細書および図面は、限定的な意味でなく、例示的な意味で理解されるべきである。