本発明の実施形態は、主に自動運転車両を動作させることに関する。より具体的に、本発明の実施形態は、自動運転車両のための経路又はルートの決定に関する。
自動運転モード(例えば、ドライバーレス)で走行している車両は、乗員、特に運転手を運転関連の責任から解放させることができる。車両は、自動運転モードで走行しているとき、搭載されたセンサを使用して様々な場所にナビゲートすることができ、ヒューマンコンピュータインタラクションが最小限に抑えられた場合、又は乗客がいない状況などで車両を走行させることができる。
運動計画及び制御は、自動運転における重要な動作である。具体的に、軌跡計画は、自動運転システムの重要な構成要素である。従来の軌跡計画技術は、安定した軌跡を生成するために高品質の基準線に大きく依存しており、前記基準線は、道路の中央線などのような自動運転車両のための案内経路である。
本発明の実施形態は、図面の各図において限定的ではなく例示的な形態で示され、図面における同じ図面符号が類似の素子を示す。
いくつかの実施形態に係るネットワークシステムを示すブロック図である。
いくつかの実施形態に係る自動運転車両の一例を示すブロック図である。
いくつかの実施形態に係る自動運転車両と共に使用される感知及び計画システムの一例を示すブロック図である。
いくつかの実施形態に係る自動運転車両と共に使用される感知及び計画システムの一例を示すブロック図である。
いくつかの実施形態に係る感知モジュールの一例を示すブロック図である。
いくつかの実施形態に係る予測モジュールの一例を示すブロック図である。
いくつかの実施形態に係る計画モジュールの一例を示すブロック図である。
いくつかの実施形態に係る例示的なグラフを示す図である。
いくつかの実施形態に係る例示的なグラフを示す図である。
いくつかの実施形態に係る例示的なグラフを示す図である。
いくつかの実施形態に係る例示的なグラフを示す図である。
いくつかの実施形態に係る道路を走行する自動運転車両の一例を示す図である。
いくつかの実施形態に係る道路を走行する自動運転車両の一例を示す図である。
いくつかの実施形態に係る自動運転車両の経路を決定するためのプロセスの一例を示すフローチャートである。
一実施形態に係るデータ処理システムを示すブロック図である。
以下、説明の詳細を参照しながら本発明の様々な実施形態及び態様を説明し、前記様々な実施形態が図面に示される。以下の説明及び図面は、本発明を例示するためのものであり、限定するものとして解釈されるべきではない。本発明の様々な実施形態を全面的に理解するために、多くの特定の詳細を説明する。なお、いくつかの場合、本発明の実施形態に対する簡潔的な説明を提供するように、周知又は従来技術の詳細について説明していない。
本明細書において、「一実施形態」又は「実施形態」とは、当該実施形態に組み合わせて説明された特定の特徴、構造又は特性が本発明の少なくとも一実施形態に含まれてもよいと意味する。「一実施形態において」という表現は、本明細書の全体において全てが同一の実施形態を指すとは限らない。
いくつかの実施形態によると、自動運転車両(ADV)の経路を決定する新たな方法を使用した。様々な移動障害物/オブジェクトは、ADVが走行する/位置する領域と同一な地理的領域内に位置する可能性がある。これらの移動障害物は、予想外に移動する可能性がある。例えば、歩行者は経路に沿って移動しているかもしれないが、歩行者は突然方向を変える(例えば、左に曲がる)か、又は加速/減速する可能性がある。移動オブジェクトとの衝突、ぶつかり、又は衝撃を避けるために、移動オブジェクトの経路を予測しようとする時に、問題を引き起こす可能性がある。したがって、移動障害物が移動して到達する可能性のある位置を含む領域を確定(例えば、計算、演算、取得など)することは有用であり得る。
ADVは、移動障害物が移動して到達する可能性のある領域を含む予測領域を確定することができる。予測領域は、移動障害物が移動する可能性のある位置のうちの大きな割合(例えば、99.7%)を含んでもよい。これにより、ADVは、予測領域を回避するADVのための経路を決定及び/又は計画することができる。ADVは、予測領域(移動障害物が移動する可能性のある領域)を回避する場合、移動障害物との衝突を避ける確率を高めることを可能にする。
図1は、本発明のいくつかの実施形態に係る自動運転車両のネットワーク構成を示すブロック図である。図1に示すように、ネットワーク構成100は、ネットワーク102を介して1つ以上のサーバ103〜104に通信可能に接続される自動運転車両101を含む。一台の自動運転車両のみが示されているが、複数の自動運転車両が、ネットワーク102を介して、互いに接続されるか、及び/又はサーバ103〜104に接続されてもよい。ネットワーク102は、任意のタイプのネットワーク、例えば、有線又は無線のローカルエリアネットワーク(LAN)、インターネットのようなワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク又はそれらの組み合わせであってもよい。サーバ103〜104は、任意のタイプのサーバ又はサーバクラスタであってもよく、例えば、ネットワーク又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ、又はこれらの組み合わせが挙げられる。サーバ103〜104は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図及び関心地点(MPOI)サーバ、又は位置サーバなどであってもよい。図1は、本発明のいくつかの実施形態に係る自動運転車両のネットワーク構成を示すブロック図である。図1に示すように、ネットワーク構成100は、ネットワーク102を介して1つ以上のサーバ103〜104に通信可能に接続される自動運転車両101を含む。一台の自動運転車両のみが示されているが、複数の自動運転車両が、ネットワーク102を介して、互いに接続されるか、及び/又はサーバ103〜104に接続されてもよい。ネットワーク102は、任意のタイプのネットワーク、例えば、有線又は無線のローカルエリアネットワーク(LAN)、インターネットのようなワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク又はそれらの組み合わせであってもよい。サーバ103〜104は、任意のタイプのサーバ又はサーバクラスタであってもよく、例えば、ネットワーク又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ、又はこれらの組み合わせが挙げられる。サーバ103〜104は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図及び関心地点(MPOI)サーバ、又は位置サーバなどであってもよい。
自動運転車両とは、自動運転モードになるように構成可能な車両を指し、前記自動運転モードにおいて、車両が運転手からの入力がほとんど又は全くない場合に環境を通過するようにナビゲートされる。このような自動運転車両は、車両の動作環境に関連する情報を検出するように構成された1つ以上のセンサを有するセンサシステムを含んでもよい。前記車両及びその関連コントローラは、検出された情報を使用して前記環境を通過するようにナビゲートする。自動運転車両101は、手動モード、全自動運転モード、又は部分自動運転モードで動作することができる。
一実施形態において、自動運転車両101は、感知及び計画システム110、車両制御システム111、無線通信システム112、ユーザインターフェースシステム113、インフォティメントシステム114と、並びにセンサシステム115を含むが、それらに限定されない。自動運転車両101は更に、エンジン、車輪、ステアリングホイール、変速機などの従来の車両に含まれるいくつかの共通構成要素を含んでもよい。前記構成要素は、車両制御システム111及び/又は感知及び計画システム110によって様々な通信信号及び/又はコマンドで制御されることができ、これらの様々な通信信号及び/又はコマンドは、例えば加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンドなどを含む。
構成要素110〜115は、インターコネクト、バス、ネットワーク、又はこれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素110〜115は、コントローラエリアネットワーク(CAN)バスを介して互いに通信可能に接続することができる。CANバスは、ホストコンピュータなしのアプリケーションでマイクロコントローラ及びデバイスが相互に通信できるように設計された車両バス規格である。それは、もともと自動車内の多重電気配線のために設計されたメッセージに基づくプロトコルであるが、他の多くの環境にも用いられる。
ここで図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は、スチルカメラ及び/又はビデオカメラであってもよい。カメラは、例えば、回転及び/又は傾斜のプラットフォームに取り付けることによって、機械的に移動されてもよい。
センサシステム115は、ソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ、及びオーディオセンサ(例えば、マイクロホン)などの他のセンサを更に含むことができる。オーディオセンサは、自動運転車両の周囲の環境から音を取得するように構成されてもよい。ステアリングセンサは、ステアリングホイール、車両の車輪、又はそれらの組み合わせの操舵角を検知するように構成されてもよい。スロットルセンサ及びブレーキセンサそれぞれは、車両のスロットル位置及びブレーキ位置を検知する。場合によっては、スロットルセンサとブレーキセンサを統合型スロットル/ブレーキセンサとして一体化することができる。
一実施形態において、車両制御システム111は、ステアリングユニット201、スロットルユニット202(加速ユニットともいう)、及びブレーキユニット203を含むが、それらに限定されない。ステアリングユニット201は、車両の方向又は進行方向を調整するために用いられる。スロットルユニット202は、モータ又はエンジンの速度を制御するために用いられ、モータ又はエンジンの速度によって更に車両の速度及び加速度が制御される。ブレーキユニット203は、摩擦を与えることによって車両の車輪又はタイヤを減速させることで、車両を減速させる。なお、図2に示す構成要素は、ハードウェア、ソフトウェア、又はそれらの組み合わせで実現されてもよい。
図1を再び参照して、無線通信システム112は、自動運転車両101と、装置、センサ、他の車両などの外部システムとの間の通信を可能にするものである。例えば、無線通信システム112は、直接又は通信ネットワークを介して一つ以上の装置と無線通信することができ、例えば、ネットワーク102を介してサーバ103〜104と通信することができる。無線通信システム112は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク(WLAN)を使用することができ、例えば、WiFiを使用して別の構成要素又はシステムと通信することができる。無線通信システム112は、例えば、赤外線リンク、ブルートゥース(登録商標)などを使用して、装置(例えば、乗客のモバイルデバイス、表示装置、車両101内のスピーカ)と直接通信することができる。ユーザインターフェースシステム113は、車両101内に実現された周辺装置の部分(例えば、キーボード、タッチスクリーン表示装置、マイクロホン、及びスピーカなどを含む)であってもよい。
自動運転車両101の機能の一部又は全部は、特に自動運転モードで動作しているときに、感知及び計画システム110によって制御又は管理することができる。感知及び計画システム110は、必要なハードウェア(例えば、プロセッサ、メモリ、記憶装置)及びソフトウェア(例えば、オペレーティングシステム、計画及びルーティングプログラム)を備え、センサシステム115、制御システム111、無線通信システム112、及び/又はユーザインターフェースシステム113から情報を受信し、受信した情報を処理し、出発地から目的地までのルート又は経路を計画し、その後、計画及び制御情報に基づいて車両101を走行させる。あるいは、感知及び計画システム110は車両制御システム111と一体に統合されてもよい。
例えば、乗客としてのユーザは、例えば、ユーザインターフェースを介して、旅程の出発地位置及び目的地を指定することができる。感知及び計画システム110は、旅程関連データを取得する。例えば、感知及び計画システム110は、MPOIサーバから位置及びルート情報を取得することができ、前記MPOIサーバはサーバ103〜104の一部であってもよい。位置サーバは位置サービスを提供し、MPOIサーバは地図サービス及びいくつかの位置のPOIを提供する。あるいは、そのような位置及びMPOI情報は、感知及び計画システム110の永続性記憶装置にローカルキャッシュされることができる。いくつかの実施形態において、感知及び計画システム110は、MPOI情報(例えば、地図データ)を有さなくてもよい。例えば、感知及び計画システム110は、他の環境又は地理的領域/位置に使用される地図データを有さなくてもよい。感知及び計画システム110は、自動運転車両101は、現在走行しているか又は位置する環境又は地理的領域/位置に使用される地図データを有さなくてもよい(例えば、感知及び計画システム110は、ある都市についての地図データを有していてもよいが、他の都市についての地図データを有していなくてもよい)。他の例において、感知及び計画システム110は、いかなる地図データ又はMPOI情報を有さなくてもよい(例えば、感知及び計画システム110は、いかなる地図データを格納していない可能性がある)。
自動運転車両101がルートに沿って移動するとき、感知及び計画システム110は交通情報システム又はサーバ(TIS)からリアルタイム交通情報を取得することもできる。なお、サーバ103〜104は第三者機関によって動作されてもよい。あるいは、サーバ103〜104の機能は、感知及び計画システム110と統合されてもよい。リアルタイム交通情報、MPOI情報、及び位置情報、並びにセンサシステム115によって検出又は検知されたリアルタイムローカル環境データ(例えば、障害物、オブジェクト、周辺車両)に基づいて、感知及び計画システム110は、指定された目的地までに安全かつ効率的に到着するように、最適なルートを計画し、計画されたルートに従って、例えば、制御システム111によって車両101を走行させる。
サーバ103は、様々なクライアントのためのデータ解析サービスを行うためのデータ解析システムであってもよい。一実施形態において、データ解析システム103は、データコレクタ121と、機械学習エンジン122とを含む。データコレクタ121は、様々な車両(自動運転車両又は人間の運転手によって運転される一般車両)から運転統計データ123を収集する。運転統計データ123は、発行された運転命令(例えば、スロットル、ブレーキ、ステアリングの命令)及び車両のセンサによって異なる時点で取得された車両の応答(例えば、速度、加速度、減速度、方向)を指示する情報を含む。運転統計データ123は更に、異なる時点における走行環境を記述する情報、例えば、ルート(出発地位置及び目的地位置を含む)、MPOI、道路状況、気候状況などを含んでもよい。
機械学習エンジン122は、運転統計データ123に基づいて、様々な目的でルール、アルゴリズム及び/又は予測モデル124のセットを生成するか又は訓練する。例えば、初期係数又はパラメータを使用して、5次多項式関数の集合を選択及び定義することができる。なお、運転統計データ123から取得可能なセンサの仕様及び特定の車両設計のようなハードウェアの特性に基づいて、制約の集合を定義することができる。
図3A及び図3Bは、いくつかの実施形態に係る自動運転車両と共に使用される感知及び計画システムの一例を示すブロック図である。システム300は、図1の自動運転車両101の一部として実現することができ、感知及び計画システム110、制御システム111、及びセンサシステム115を含むが、それらに限定されない。図3A及び図3Bに示すように、感知及び計画システム110は、測位モジュール301、感知モジュール302、予測モジュール303、決定モジュール304、計画モジュール305、制御モジュール306及びルーティングモジュール307を含むが、これらに限定されない。
モジュール301〜307のうちの一部又は全部は、ソフトウェア、ハードウェア又はそれらの組み合わせで実現されてもよい。例えば、これらのモジュールは、永続性記憶装置352にインストールされ、メモリ351にロードされ、1つ以上のプロセッサ(図示せず)によって実行されてもよい。なお、これらのモジュールの一部又は全部は、図2の車両制御システム111のモジュールの一部又は全部と通信可能に接続されるか、又は一体化されてもよい。モジュール301〜307の一部は、集積モジュールとして一体化されてもよい。
測位モジュール301は、自動運転車両300の現在の位置(例えば、GPSユニット212を利用して)を確定し、ユーザの旅程又はルートに関連する如何なるデータを管理する。測位モジュール301(地図及びルートモジュールともいう)は、ユーザの旅程又はルートに関連する如何なるデータを管理する。ユーザは、例えば、ユーザインターフェースを介してログインし、旅程の出発地位置及び目的地を指定することができる。測位モジュール301は、自動運転車両300の地図及びルート情報311のような他の構成要素と通信して、旅程関連データを取得する。例えば、測位モジュール301は、位置サーバ並びに地図及びPOI(MPOI)サーバから位置及びルート情報を取得することができる。位置サーバは位置サービスを提供し、MPOIサーバは、地図サービス及びある位置のPOIを提供し、地図及びルート情報311の一部としてキャッシュすることができる。自動運転車両300がルートに沿って移動するとき、測位モジュール301は交通情報システム又はサーバからリアルタイム交通情報を得ることも可能である。一実施形態において、地図及びルート情報311は、事前に永続性記憶装置352に格納されてもよい。例えば、地図及びルート情報311は、事前に永続性記憶装置352にダウンロード又はコピーされてもよい。
感知モジュール302は、センサシステム115により提供されたセンサデータと、測位モジュール301により取得された測位情報とに基づいて、周囲環境への感知を特定する。感知情報は、一般的な運転手が運転手により運転されている車両の周囲で感知すべきものを表すことができる。感知は、例えばオブジェクトの形態を採用する車線構成(例えば、直進車線又はカーブ車線)、信号機信号、他の車両の相対位置、歩行者、建築物、横断歩道、又は他の交通関連標識(例えば、止まれ標識、ゆずれ標識)などを含んでもよい。
感知モジュール302は、1つ以上のカメラによって取り込まれた画像を処理及び解析して、自動運転車両の環境内のオブジェクト及び/又は特徴を認識するためのコンピュータビジョンシステム又はコンピュータビジョンシステムの機能を含むことができる。前記オブジェクトは、交通信号、道路境界、他の車両、歩行者及び/又は障害物などを含むことができる。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオトラッキング、及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態において、コンピュータビジョンシステムは、環境地図を描き、オブジェクトを追跡し、オブジェクトの速度などを推定することができる。感知モジュール302は、レーダ及び/又はLIDARのような他のセンサによって提供される他のセンサデータに基づいてオブジェクトを検出することもできる。
各オブジェクトについて、予測モジュール303は、その場合にオブジェクトがどのように挙動するかを予測する。この予測は、地図及びルート情報311と交通ルール312のセットを考慮した時点で運転環境を感知する感知データに基づいて実行される。例えば、オブジェクトが反対方向の車両であり、かつ現在の運転環境が交差点を含む場合、予測モジュール303は、車両が直進するか、又はカーブ走行するかを予測する。感知データが、交差点に信号機がないことを示す場合、予測モジュール303は、交差点に入る前に車両が完全に停止する必要があると予測する可能性がある。感知データが、車両が現在左折専用車線又は右折専用車線にあることを示す場合、予測モジュール303は、車両がそれぞれ左折又は右折する可能性がより高いと予測することができる。いくつかの実施形態において、環境又は地理的領域/位置に用いられる地図及びルート情報311は、以下で詳細に説明するように、自動運転車両が当該環境又は地理的領域/位置を通過する際に、動的に生成される(例えば、感知モジュール302によって生成される)ことが可能である。
それぞれのオブジェクトについて、決定モジュール304はオブジェクトをどのように処理するかを決定する。例えば、特定のオブジェクト(例えば、交差のルートにおける他の車両)及びオブジェクトを記述するメタデータ(例えば、速度、方向、操舵角)について、決定モジュール304は前記オブジェクトと遇うときに如何に対応するか(例えば、追い越し、道譲り、停止、追い抜き)を決定する。決定モジュール304は、永続性記憶装置352に記憶可能な、交通ルール又は運転ルール312のようなルールセットに基づいてそのような決定を行うことができる。
様々な移動障害物/オブジェクトは、予測不可能に移動する可能性がある。例えば、歩行者が経路に沿って移動しているが、突然方向を変える(例えば、左に曲がる)ことがあり、又は、加速/減速する可能性がある。移動オブジェクトとの衝突、ぶつかり、又は衝撃を避けるために、移動オブジェクトの経路を予測しようとする時に、問題を引き起こす可能性がある。したがって、移動障害物が移動して到達する可能性のある位置を含む領域を確定(例えば、計算、演算、取得など)することは有用であり得る。これにより、ADVは、移動障害物を回避する確率を高めることができる。
ルーティングモジュール307は、出発地から目的地までの1つ以上のルート又は経路を提供するように構成される。ルーティングモジュール307は、出発地位置から目的地位置までの特定の旅程(例えば、ユーザから受信された特定の旅程)について、ルート及び地図情報311を取得し、出発地位置から目的地位置までのすべての可能なルート又は経路を決定する。いくつかの実施形態において、地図及びルート情報311は、以下で詳細に説明されるように、感知モジュール302により生成されてもよい。ルーティングモジュール307は、出発地位置から目的地位置までの各ルートを特定する地形図の形の基準線を生成することができる。基準線とは、他の車両、障害物、又は交通状況などからの如何なる干渉を受けていない理想的なルート又は経路を指す。つまり、道路に他の車両、歩行者又は障害物がない場合、ADVは基準線に精確的に又は密接的に従うべきである。そして、地形図を決定モジュール304及び/又は計画モジュール305に提供する。決定モジュール304及び/又は計画モジュール305は、可能性のあるすべてのルートを調べて、他のモジュールによって提供される他のデータに基づいて最適なルートの1つを選択及び補正し、他のデータとは、測位モジュール301からの交通状況、感知モジュール302によって感知された走行環境、並びに予測モジュール303によって予測された交通状況などが挙げられる。特定時点における特定の走行環境に応じて、ADVを制御するための実際の経路又はルートは、ルーティングモジュール307によって提供される基準線に近いか又は異なっていてもよい。
感知されたオブジェクトのそれぞれに対する決定に基づいて、計画モジュール305は、ルーティングモジュール307によって提供される基準線をベースに、自動運転車両に対して経路又はルート並びに運転パラメータ(例えば、距離、速度及び/又は操舵角)を計画する。言い換えれば、特定のオブジェクトについて、決定モジュール304は当該オブジェクトに対して何をするかを決定し、計画モジュール305はどのようにするかを決定する。例えば、特定のオブジェクトについて、決定モジュール304は前記オブジェクトを追い抜くかを決定することができ、計画モジュール305は前記オブジェクトを左側から追い抜くか又は右側から追い抜くかを判定することができる。計画及び制御データは、計画モジュール305により生成され、車両300が次の移動周期(例えば、次のルート/経路区間)にはどのように移動するかを記述する情報を含む。例えば、計画及び制御データは、車両300に時速30マイル(mph)で10m移動し、次に25マイル(mph)で右車線に変更するように指示することができる。
制御モジュール306は、計画及び制御データに基づいて、計画及び制御データにより限定されたルート又は経路に応じて適当なコマンド又は信号を車両制御システム111に送信することにより自動運転車両を制御及び走行させる。前記計画及び制御データは、経路又はルートに沿って異なる時点で適切な車両配置又は運転パラメータ(例えば、スロットル、ブレーキ、及びステアリングコマンド)を使用して、車両をルート又は経路の第1の点から第2の点まで走行させるのに十分な情報を含む。
一実施形態において、計画段階は、例えば、時間間隔が100ミリ秒(ms)の周期など、複数の計画周期(命令周期ともいう)で実行される。計画周期又は命令周期のそれぞれについて、計画及び制御データに基づいて1つ以上の制御命令を発する。すなわち、100msごとに、計画モジュール305は、次のルート区間又は経路区間(例えば、目標位置及びADVが目標位置に到着するのに必要な時間が含まれる)を計画する。あるいは、計画モジュール305は、具体的な速度、方向、及び/又は操舵角などを更に指定することができる。一実施形態において、計画モジュール305は、次の所定期間(例えば、5秒)のルート区間又は経路区間を計画する。計画周期のそれぞれに対し、計画モジュール305は、前の周期で計画された目標位置に基づいて、現在の周期(例えば、次の5秒)のための目標位置を計画する。次に、制御モジュール306は、現在の周期の計画及び制御データに基づいて、1つ以上の制御命令(例えば、スロットル、ブレーキ、ステアリングの制御命令)を生成する。
なお、決定モジュール304及び計画モジュール305は、集積モジュールとして一体化されてもよい。決定モジュール304/計画モジュール305は、自動運転車両の走行経路を決定するためのナビゲーションシステム又はナビゲーションシステムの機能を含んでもよい。例えば、ナビゲーションシステムは、自動運転車両の以下の経路に沿った移動を達成するための一連の速度及び進行方向を決定することができる。前記経路では、自動運転車両が最終的な目的地に通じる走行車線ベースの経路に沿って前進するとともに、感知した障害物を実質的に回避できる。目的地は、ユーザインターフェースシステム113を介したユーザ入力に従って設定することができる。ナビゲーションシステムは、自動運転車両が走行している間に走行経路を動的に更新することができる。ナビゲーションシステムは、自動運転車両のための走行経路を決定するために、GPSシステム及び一つ以上の地図からのデータ(感知モジュール302により生成されてもよいし、事前に格納又はダウンロードされてもよい)を取り入れることができる。
決定モジュール304/計画モジュール305は、更に、自動運転車両の環境における潜在的な障害物を認識、評価、回避又は他の方法で通過するための衝突防止システム又は衝突防止システムの機能を含むことができる。例えば、衝突防止システムは、制御システム111の1つ以上のサブシステムを動作させて、ステアリング動作、旋回動作、ブレーキ動作などを行うことによって、自動運転車両のナビゲーション中の変更を実現することができる。衝突防止システムは、周囲の交通パターンや道路状況などに基づいて、実行可能な障害物回避動作を自動的に判定することができる。衝突防止システムは、他のセンサシステムが、自動運転車両が方向変更して進入しようとする隣接領域における車両、建築障害物などを検出したときに、ステアリング動作を行わないように構成されることができる。衝突防止システムは、自動運転車両の乗員の安全性を最大限にするとともに、利用可能な動作を自動的に選択することができる。衝突防止システムは、自動運転車両の客室内に最も少ない加速度を発生させると予測される回避動作を選択することができる。
ルーティングモジュール307は、地図情報(例えば、道路区間情報、道路区間の車線情報、及び車線から縁石までの距離の情報など)から基準ルートを生成することができる。例えば、道路は、3つの道路区間を表すために区間又はセグメント{A、B、及びC}に分画できる。道路区間Aの3車線は、{A1、A2、及びA3}を列挙することができる。基準ルートは、基準ルートに沿った基準点を生成することによって生成される。例えば、車両の車線について、ルーティングモジュール307は、地図データ(感知モジュール302により生成されてもよいし、事前に格納又はダウンロードされてもよい)によって提供される車両の車線の2つの対向する縁石又は端点の中間点を連結することができる。異なる時点で以前に車両の車線上を走行した車両の収集されたデータ点を表す中間点及び機械学習データに基づいて、ルーティングモジュール307は、車両車線の所定の近接範囲内に収集されたデータ点のサブセットを選択し、収集されたデータ点のサブセットに応じて中間点に平滑化関数を適用することによって、基準点を計算することができる。
基準点又は車線基準点に基づいて、ルーティングモジュール307は、生成された基準線が車両車線上のADVを制御するための基準線として使用されるように、基準点を補間することによって基準線を生成することができる。いくつかの実施形態において、基準線を表す基準点テーブル及び道路区間テーブルは、ADVがADVの地理的位置及び走行方向に基づいて基準線を生成できるように、ADVにリアルタイムでダウンロードされる。例えば、一実施形態において、ADVは、前方の今後の道路区間を表す経路区間識別子によって、及び/又はADVのGPS位置に基づいて、経路区間のルーティングサービスを要求することによって基準線を生成することができる。経路区間識別子に基づいて、ルーティングサービスは、関心のある道路区間の全ての車線に対する基準点を含むADV基準点テーブルに戻ることができる。ADVは、車両車線上のADVを制御するための基準線を生成するために、経路区間のための車線に対する基準点を調べることができる。
図4Aは、いくつかの実施形態に係る感知モジュール302の一例を示すブロック図である。図4Aを参照すると、感知モジュール302は、センサ要素411及び障害物要素412を含むが、これらに限定されない。これらの要素411〜412は、ソフトウェア、ハードウェア、又はそれらの組み合わせで実現されてもよい。センサ要素411は、ADVの一つ又は複数のセンサからセンサデータを取得してもよい。例えば、センサ要素411は、一つ又は複数のセンサからのセンサデータを定期的に要求又はポーリングしてもよい(例えば、数ミリ秒、毎秒、又は、特定の他の適当な時間セグメントごとに、センサからのセンサデータを要求することができる)。もう一つの例において、センサ要素411は、一つ又は複数のセンサからの受信待ちセンサデータを、モニタリングするか、又は待機してもよい。例えば、センサ要素411は、バス、通信チャネル(有線又は無線)、電線、ワイヤ、ピン、トレースなどを連続的にモニタリングするように配置されてもよく、それによってセンサ要素411は、一つ又は複数のセンサによってセンサデータが生成される際にセンサデータをすぐに受信できる。
一実施形態において、センサは、カメラ(例えば、デジタルカメラ、ビデオカメラ、ビデオレコーダなど)又は画像をキャプチャ又は記録できる他の何らかのデバイスであってもよい。カメラによって生成され、センサ要素411によって受信されたセンサデータは、ビデオデータともいう。ビデオデータの例としては、デジタル画像(例えば、ジェイペグ(JPEG)画像)、ビデオフレーム、ムービング・ピクチャー・エクスパーツ・グループ(MPEG)データ、又は、カメラによってキャプチャされた光学画像を表すのに適した他のデータを含んでもよいが、これらに限定されない。もう一つの実施形態において、センサは、レーダユニット(例えば、図2に示したレーダユニット214)又は無線電波(例えば、RF波又は信号)を使用してADV周囲のオブジェクトの位置、範囲、角度、及び/又は、速度を確定できる何らかの他の機器であってもよい。レーダユニットによって生成されたセンサデータは、レーダデータともいう。レーダデータは、レーダユニットによって検出されたオブジェクトの位置、範囲、角度、及び/又は、速度を指すデータであってもよい。もう一つの実施形態において、センサは、LIDARユニット(例えば、図2に示したLIDARユニット215)又は光(例えば、レーザ)を使用してADV周囲のオブジェクトの位置、範囲、角度、及び/又は、速度を確定できる何らかの他の機器であってもよい。LIDARユニットによって生成されたセンサデータは、LIDARユニットによって検出されたオブジェクトの位置、範囲、角度、及び/又は、速度を指すデータであってもよい。他の実施形態において、他のタイプのセンサは、センサ要素111に提供できる他のタイプのデータを生成してもよい。環境又は地理位置/領域内のオブジェクト(例えば、歩行者、車両、バリケード、障害物、バリア、車線、標識、信号機など)の位置、範囲、角度、及び/又は、速度を検出するための任意のタイプのセンサは、いずれも本明細書で述べる実施形態、実現方法、及び/又は、例示で使用可能である。もう一つの実施形態において、センサは、GPS受信機又はユニット(例えば、図2に示したGPSユニット212)又はADVの位置(例えば、物理的又は地理的位置)を特定できる他のデバイスであってもよい。GPS受信機によって生成されるセンサデータは、GPSデータ(GPS座標ともいう)であってもよい。
一実施形態において、センサデータは、ADVが現在位置しているか又は走行している環境又は地理的領域もしくは位置に関する情報を示すことが可能である。例えば、センサデータは、オブジェクト(例えば、歩行者、車両、バリケード、障害物、バリア、車線、標識、信号機など)の位置、及び/又はレイアウトを示すことが可能である。もう一つの例において、センサデータは、環境又は地理的領域の道路条件(例えば、道路が、乾いた道路、湿った道路、平坦な道路、でこぼこ道路などであるか否か)を示すことが可能である。もう一つの例において、センサデータは、環境又は地理的領域の天気条件(例えば、温度、雨、風、雪、雹などがあるか否か)を示すことが可能である。
一実施形態において、障害物要素412は、センサ要素411によって取得又は受信されたセンサデータに基づいて、一つ又は複数の移動障害物を検出してもよい。例えば、障害物要素412は、カメラによってキャプチャされた画像又はビデオ(例えば、ビデオデータ)を解析することによって、ADVが位置している/走行している地理的領域内における移動障害物を識別可能である。もう一つの例において、障害物地図要素412は、レーダデータを解析することによって、ADVが位置している/走行している地理的領域内における移動障害物を識別可能である。もう一つの例において、障害物要素412は、LIDARデータを解析することによって、ADVが位置している/走行している地理的領域内における移動障害物を識別可能である。
一実施形態において、地図要素412は、様々な技術、方法、アルゴリズム、動作などを使用することによって、センサデータに基づいて移動障害物を識別可能である。例えば、障害物要素412は、画像又はビデオ処理/解析技術又はアルゴリズムを使用することによって、ビデオデータに基づいて移動障害物を識別可能である。もう一つの例において、地図要素412は、様々なオブジェクト検出技術又はアルゴリズムを使用することによって、レーダ及び/又はLIDARデータに基づいて移動障害物を識別可能である。記述した例、実現方法及び/又は実施形態において、様々なタイプのセンサデータ及び/又は様々な関数、技術、方法、アルゴリズム、操作などによって、移動障害物を識別可能である。例えば、地図要素412は、機械学習、人工知能、統計モデル、ニューラルネットワーク、クラスタリング技術などを使用可能である。
図4Bは、いくつかの実施形態に係る予測モジュール303の一例を示すブロック図である。図4Bを参照すると、予測モジュール303は、経路要素431と、変動要素432と、領域要素433とを含むが、これらに限定されない。これらのモジュール431〜433は、ソフトウェア、ハードウェア、又はそれらの組み合わせで実現されてもよい。基準線ジェネレータ435は、ADVのための基準線を生成するように構成される。上記のように、感知モジュール302(例えば、図3A、3B及び4Aに示すように)は、ADVが位置している地理的領域内の移動障害物を検出可能である。例えば、感知モジュール302は、ADVが位置している/走行している街道もしくは道路上で歩く歩行者を検出可能である。もう一つの例において、感知モジュール302は、ADVが位置している/走行している街道もしくは道路上の自転車乗用者を検出可能である。上記のように、感知モジュール302は、一つ又は複数のセンサ(例えば、カメラ、レーダユニット、LIDARユニットなど)によって生成されたセンサデータ(例えば、ビデオデータ、レーダデータ、LIDARデータなど)に基づいて移動障害物を検出可能である。
一実施形態において、経路要素431は、移動障害物の経路を決定することができる。上記のように、感知モジュール302は、センサデータに基づいてADVが位置しているか又は走行している地理的領域内の移動障害物(例えば、歩行者、自転車乗用者など)を検出可能である。経路要素431は、センサデータに基づいて移動障害物が進行又は採用可能な経路を決定することができる。移動障害物が進行可能な経路は、予測経路、推定経路、可能な経路などともいう。
一実施形態において、経路要素431は、ADVが位置しているか又は走行している地理的領域内の1組又は複数の予測点を判定することによって、移動障害物の予測経路を決定することができる。例えば、経路要素431は、カルマンフィルタを使用して1組又は複数の予測点を特定することができる。カルマンフィルタは、経時的に観測された一連の測定結果によって、未知変数の推定又は予測を生成することができる。カルマンフィルタは、それぞれのタイムフレームの変数にわたる同時確率分布も推定することができる。カルマンフィルタは、線形二次推定(LQE)ともいう。本発明は、カルマンフィルタに言及し得るが、他の実施形態において、様々な他のフィルタ、アルゴリズム、方法、関数、操作、プロセスなどによって1組又は複数の予測点を特定可能である。
一実施形態において、経路要素431は、一つ又は複数の多項式関数(例えば、5次多項式、3次多項式など)を定義及び/又は生成することによって、移動障害物の予測経路を表現又はモデル化することができる。例えば、多項式関数は、X−Y平面上の予測点を含む線(例えば、予測点が多項式関数によって定義される線に位置し、線が予測する経路を表す)を定義してもよい。更に、様々な境界又は制約に基づいて、一つ又は複数の多項式関数を生成、確定又は計算可能である。境界又は制約は、図3Aに示した制約313の一部として事前構成及び/又は格納されてもよい。経路要素431によって使用される多項式関数は、図3Aに示した多項式関数314の一部として事前構成及び/又は格納されてもよい。
一実施形態において、領域要素433は、ADVの予測経路(経路要素431によって確定される)に基づいて、予測領域を確定してもよい。領域要素433は、以下で更に詳細に説明するように、一つ又は複数の予測点に基づいて、予測領域を確定してもよい。例えば、領域要素433は、予測経路を囲む領域を確定してもよい。上記のように、移動障害物のモーションは、予測不可能又は不確実なものである可能性がある。例えば、地理的領域(ADVが位置しているか又は走行している領域)内で歩く歩行者は、加速(例えば、もっと速く歩く)、減速(例えば、もっとゆっくりと歩く)、又は、方向を変える(例えば、左に曲がり、右に曲がり、旋回など)可能性がある。
一実施形態において、領域要素433は、変動要素432によって確定された複数の周囲領域に基づいて、予測領域を確定してもよい。変動要素432は、以下で更に詳細に説明するように、経路要素431によって特定(例えば、取得、計算、生成など)された予測点ごとについて、周囲領域を確定可能である。例えば、変動要素432は、経路要素431によって生成された予測点ごとの周囲領域を確定可能である。それぞれの周囲領域は、対応する予測点からの閾値標準偏差に基づいて確定可能である。例えば、周囲領域のサイズ(例えば、長さ、幅など)は、対応する予測点からの3つの標準偏差に等しくなってもよい。周囲領域は、X−シグマ(X−σ)領域ともいい、ただし、Xは対応する予測点からの標準偏差の数である。例えば、周囲領域のサイズ(例えば、長さ、幅など)が、対応する予測点からの3つの標準偏差に等しい場合、周囲領域は3−シグマ(3−σ)領域ともいう。3−σ領域は、移動障害物が当該3−σ領域の境界外に移動しない可能性(例えば、確率)が99.7%である領域であってもよい。いくつかの実施形態において、異なる数の標準偏差を使用すると、周囲領域のサイズは異なる可能性がある。例えば、サイズが対応する予測点からの2つの標準偏差に等しい周囲領域(2−シグマ(2−σ)領域ともいう)は、サイズが対応する予測点からの3つの標準偏差に等しい周囲領域(例えば、3−σ領域)よりも小さくなってもよい。2−σ領域は、移動障害物が当該2−σ領域の境界外に移動しない可能性(例えば、確率)が95%である領域であってもよい。
一実施形態において、変動要素432によって確定された周囲領域は、形状(例えば、幾何学的形状、規則形状、不規則形状など)を有してもよい。例えば、予測点の周囲領域は、円形の形状を有してもよい(例えば、円形でもよい)。もう一つの例において、予測点の周囲領域は、楕円体の形状を有してもよい(例えば、楕円形でもよい)。図面及び本発明は、円及び/又は楕円を指すことがあるが、他の実施形態において他の形状を使用してもよい。
一実施形態において、領域要素433は、変動要素432によって確定された一つ又は複数の周囲領域に基づいて、予測領域の一つ又は複数の境界点を確定してもよい。例えば、領域要素433は、周囲領域ごとに一つ又は複数の境界点を確定してもよい。境界点を連結して予測領域を形成する場合、周囲領域の最も外側のエッジが境界点内に含まれる可能性がある。領域要素433は、境界点に基づいて、予測領域を確定してもよい。例えば、予測領域は、境界点によって囲まれてもよい。もう一つの例において、境界点は、予測領域のエッジ又は境界を定義可能である。いくつかの実施形態において、予測経路は、予測領域内に位置してもよい。例えば、予測経路は、予測領域の中央領域又は中央エリアに位置してもよい。もう一つの例において、予測領域は、予測経路を含むか、又は、囲むことができる。
いくつかの実施形態において、予測領域は、移動障害物が移動する可能性がある可能な位置を含んでもよい。例えば、移動障害物は、歩行者である可能性がある。歩行者は地理的領域を移動/行進して通過する際に予想外に動くことがある。予測領域を確定するための周囲領域の閾値標準偏差に基づいて、予測領域には歩行者が移動する可能性がある可能な位置の割合が含まれてもよい。例えば、3−シグマ(3−σ)周囲領域を使用して予測領域を確定する場合、予測領域は、99.7%の歩行者が移動する可能性がある可能な位置を含んでもよい。したがって、ADVが予測領域を回避すると、ADVは99.7%の回避確率(例えば、移動障害物に当たらない)を有する可能性がある。これにより、ADVは、移動障害物の移動の不確実性又は予測不可能性を考慮、計画又は準備することができる。
図4Cは、いくつかの実施形態に係る計画モジュール305の一例を示すブロック図である。図4Cを参照すると、計画モジュール305は、セグメンタ401と、多項式関数ジェネレータ402と、サンプル点ジェネレータ403と、経路ジェネレータ404と、基準線ジェネレータ405とを含むが、これらに限定されない。これらのモジュール401〜405は、ソフトウェア、ハードウェア、又はそれらの組み合わせで実現されてもよい。基準線ジェネレータ405は、ADVのための基準線を生成するように構成される。上記のように、安定な軌跡を生成するために、基準線は、道路の中央線などのようなADVのガイド経路であってもよい。基準線ジェネレータ405は、地図及びルート情報311(図3A及び3Bに示す)に基づいて、基準線を生成可能である。上記のように、地図及びルート情報311は、事前に存在する地図データ(例えば、事前にダウンロード又は格納された地図データ)であってもよい。一実施形態において、基準線ジェネレータ405は、予測モジュール303によって確定(例えば、生成、計算、演算など)された予測領域及び/又は予測経路に基づいて、基準線を生成可能である。基準線ジェネレータ405は、予測領域及び/又は予測経路を回避する基準線を生成可能である。例えば、X−Y平面で示される場合、基準線は、予測領域及び/又は予測経路を横切ったり交差したりしない可能性がある。
セグメンタ401は、基準線を複数の基準線セグメントに分割するように構成される。基準線は、基準線セグメントに分割されて、基準線の個別のセグメント又は区間を生成してもよい。多項式関数ジェネレータ402は、基準線セグメントごとに、多項式関数を定義及び生成して、対応する基準線セグメントを表す又はモデル化するように構成されてもよい。サンプル点ジェネレータ403は、基準線に基づいて、サンプル点を生成可能である。例えば、以下で更に詳細に説明するように、サンプル点ジェネレータ403は、基準線に概して従うことができる1組又は複数組のサンプル点(例えば、一つ又は複数のサンプル点のグループ)を生成することができる。一実施形態において、サンプル点ジェネレータ40は、予測モジュール303によって確定(例えば、生成、計算、演算など)された予測領域及び/又は予測経路に基づいて、1組又は複数組のサンプル点を生成することができる。サンプル点ジェネレータ403は、予測領域及び/又は予測経路を回避するサンプル点の集合を生成することができる。例えば、X−Y平面で示される場合、サンプル点の集合は、予測領域内に位置しないか、及び/又は、予測経路に位置しなくてもよい。
多項式関数ジェネレータ402は、複数組のサンプル点を互いに連結してもよい。例えば、以下で更に詳細に説明するように、多項式関数ジェネレータ402は、1組のサンプル点のうちのそれぞれのサンプル点と、次の組の隣接するサンプル点のうちのそれぞれのサンプル点との間で、一つ又は複数のセグメント(例えば、連結)を生成してもよい。多項式関数ジェネレータ402は、サンプル点間のセグメントを表すために使用可能な一つ又は複数の多項式を更に生成、計算又は確定することができる。例えば、多項式関数ジェネレータ402は、2つのサンプル点間のセグメントごとについて、多項式関数を生成、確定、又は計算などすることができる。様々な境界又は制約に基づいて、セグメントを表す多項式関数を生成、確定又は計算することができる。境界又は制約は、図3Aに示した制約313の一部として事前構成及び/又は格納してもよい。計画モジュール305によって使用される(例えば、多項式関数ジェネレータ402によって使用される)多項式関数は、図3Aに示した多項式関数314の一部として、事前構成及び/又は格納されてもよい。
以下で更に詳細に説明するように、経路ジェネレータ404は、サンプル点間のセグメントに基づいて、ADVの経路を決定することができる。例えば、経路ジェネレータ404は、それぞれのセグメントのコストを確定することができる。コストは、セグメントが基準線からどれだけ離れているか、セグメント内のサンプル点が基準線からどれだけ離れているか、セグメント又はセグメント内のサンプル点の曲率変化率、セグメントの曲率、サンプル点に位置する可能性がある障害物(例えば、車両、歩行者、障害物など)などのような、様々な要因又はパラメータを含むが、これらに限定されない。コストは、重みともいう。経路ジェネレータ404は、最も低い総コスト(最も低い総重み)を有する経路のセグメントを識別又は選択して形成してもよい。
図5Aは、いくつかの実施形態に係る例示的なグラフ500Aを示す図面である。グラフ500Aは、図5AのX軸及びY軸によって示されるようにデカルト座標系を使用してX−Y平面を表すことができる。例えば、X−Y座標を使用してグラフ500A上の点の位置を表すことができる。もう一つの例において、一つ又は複数の式/関数(例えば、線形関数、3次多項式、5次多項式など)を使用して、グラフ500A上の線及び/又は領域を表すことができる。上記のように、ADV(例えば、図3A、図3B及び図4Aに示した感知モジュール302)は、ADVが位置している地理的領域内の移動障害物を検出することができる。例えば、ADVは、センサデータに基づいて、ADVが位置している/走行している街道もしくは道路(例えば、地理的領域)で歩いている/走っている歩行者を検出することができる。図5Aに示すように、ADV(例えば、図3Bに示した予測モジュール302、図4Bに示した経路要素431など)は、センサデータに基づいて移動障害物の進行可能又は採用可能な経路を確定することができる。移動障害物の進行可能な経路は、予測経路、推定経路、可能な経路などともいう。移動障害物(例えば、歩行者)の予測経路は、線505で表される。線505(例えば、移動障害物の予測経路)は、点511、513、515、517及び519を含む(例えば、点511、513、515、517、519は、505に位置するか又は505上にある)。点511、513、515、517は、予測点ともいう。
一実施形態において、上記のように、ADVは、カルマンフィルタを使用して線505(例えば、移動障害物の予測経路)及び/又は点511、513、515、517及び519(例えば、予測点)を確定することができる。本発明は、カルマンフィルタに言及し得るが、他の実施形態において、様々な他のフィルタ、アルゴリズム、方法、関数、操作、プロセスなどを使用して、1組/複数の予測点を確定することができる。線505は、上記のように、線形関数、多項式関数(例えば、3次多項式、5次多項式など)のような、関数/式によって表すことができる。
図5Bは、いくつかの実施形態に係る例示的なグラフ500Bを示す図面である。上記のように、グラフ500Bは、図5BのX軸及びY軸によって示されるように、デカルト座標系を使用してX−Y平面を表すことができる。なお、上記のように、ADVは、ADVが位置する地理的領域(例えば、道路、街道など)内の移動障害物(例えば、歩行者、自転車乗用者など)を検出することができる。図5Bに示すように、ADVは、センサデータに基づいて、移動障害物の進行可能又は採用可能な経路を確定することができる。移動障害物の進行可能な経路は、予測経路、推定経路、可能な経路などともいう。移動障害物(例えば、歩行者)の予測経路は、線505によって表される。線505(例えば、移動障害物の予測経路)は、点511、513、515、517及び519(例えば、点511、513、515、517及び519は、505に位置するか又は505上にある)を含む。点511、513、515、517は、予測点ともいう。
一実施形態において、ADV(例えば、図3Bに示した予測モジュール302、図4Bに示した変動要素432など)は、点511、513、515、515、517及び519に基づいて(例えば、一つ又は複数の予測点に基づいて)、周囲領域523、525、527及び529(例えば、図5Bの楕円によって表される)を確定することができる。例えば、ADVは、点513について周囲領域523を確定し、点515について周囲領域525を確定し、点517について周囲領域527を確定し、点519について周囲領域529を確定することができる。
周囲領域523、525、527及び529は、楕円で示されているが、他の実施形態において、周囲領域523、525、527及び529は、他の形状を有してもよい。例えば、予測点の周囲領域は、円形の形状を有してもよい(例えば、円であってもよい)。もう一つの例において、予測点の周囲領域は、楕円形状を有してもよい(例えば、楕円であってもよい)。図面及び本発明は、円及び/又は楕円に言及し得るが、他の実施形態において、他の形状を使用してもよい。いくつかの実施形態において、周囲領域523、525、527及び529の長さ及び幅は、移動障害物の全経路(線505によって表される)に基づくことができる。例えば、線505のX軸に沿う距離がY軸に沿う距離よりも大きい(例えば、線の長さが線の幅よりも大きい)。したがって、周囲領域523、525、527及び529の長さ(例えば、楕円の長さ)が周囲領域523、525、527及び529の幅(例えば、楕円の幅)よりも大きくしてもよい。もう一つの例において、線が45°の角度に接近するか又は45°に近い場合(例えば、線の長さが線の幅と実質的に等しい)、周囲領域の長さと幅は等しくてもよい(例えば、周囲領域は、楕円形でなく、円形でもよい)。
一実施形態において、対応する予測点からの閾値標準偏差に基づいて、周囲領域523、525、527及び529のそれぞれを確定することができる。例えば、周囲領域517の長さ及び幅は、点517からの標準偏差の閾値の数と等しくてもよい。上記のように、周囲領域523、525、527及び529は、X−シグマ(X−σ)領域ともいい、ただし、Xは、対応する予測点からの標準偏差の数(例えば、3−シグマ(3−σ)領域は、周囲領域の長さ及び幅が点からの3つの標準偏差であることを示す)である。いくつかの実施形態において、周囲領域523、525、527及び529は、3−シグマ(3−σ)領域であってもよい。3−σ領域は、移動障害物が当該3−σ領域の境界外に移動しない可能性(例えば、確率)が99.7%である領域である。他の実施形態において、周囲領域523、525、527及び529は、異なるX−シグマ領域であってもよい。例えば、周囲領域523、525、527及び529は、2−シグマ(2−σ)領域であってもよい。もう一つの例において、周囲領域523は、3−シグマ(3−σ)領域であってもよく、周囲領域529は、2−シグマ(2−σ)領域であってもよい。
図5Cは、いくつかの実施形態に係る例示的なグラフ500Cを示す図面である。上記のように、グラフ500Cは、図5CのX軸及びY軸によって示されるように、デカルト座標系を使用してX−Y平面を表すことができる。なお、上記のように、ADVは、ADVが位置する地理的領域(例えば、道路、街道など)内の移動障害物(例えば、歩行者、自転車乗用者など)を検出することができる。図5Cに示すように、ADVは、センサデータに基づいて、移動障害物の進行可能又は採用可能な経路を確定することができる。移動障害物の進行可能な経路は、予測経路、推定経路、可能な経路などともいう。移動障害物(例えば、歩行者)の予測経路は、線505によって表される。線505(例えば、移動障害物の予測経路)は、点511、513、515、517及び519を含む(例えば、点511、513、515、517及び519は505に位置するか又は505上にある)。点511、513、515、517は、予測点ともいう。同様に、図5Cに示すように、ADVは、周囲領域523、525、527及び529を確定することができる。周囲領域523、525、527、529のそれぞれは、上記のように、対応する予測点からの閾値標準偏差に基づいて確定することができる。例えば、周囲領域517の長さ及び幅は、点517からの標準偏差の閾値の数と等しくてもよい。
一実施形態において、ADV(例えば、図3Bに示した予測モジュール303、図4Bに示した領域要素433など)は、変動要素432によって確定された一つ又は複数の周囲領域に基づいて、予測領域の一つ又は複数の境界点を確定することができる。例えば、ADVは、周囲領域523について境界点531、532を確定し、周囲領域525について境界点533、534を確定し、周囲領域527について境界点535、536を確定し、周囲領域529について境界点537、538を確定することができる。いくつかの実施形態において、以下で更に詳細に説明するように、境界点531〜538は、境界点が連結されて領域(例えば、予測領域)を形成する場合、周囲領域523、525、527及び529の最も外側のエッジが境界点内に含まれるように確定されることができる。
図5Dは、いくつかの実施形態に係る例示的なグラフ500Dを示す図面である。上記のように、グラフ500Dは、図5DのX軸及びY軸によって示されるように、デカルト座標系を使用してX−Y平面を表すことができる。なお、上記のように、ADVは、ADVが位置する地理的領域(例えば、道路、街道など)内の移動障害物(例えば、歩行者、自転車乗用者など)を検出することができる。ADVは、センサデータに基づいて、移動障害物の進行可能又は採用可能な経路を確定することができる。移動障害物の進行可能な経路は、予測経路、推定経路、可能な経路などともいう。ADVは、周囲領域523、525、527及び529を更に確定することができる。ADVは、周囲領域523、525、527及び529に基づいて境界点531〜538を更に確定することができる。
一実施形態において、領域要素433は、境界点531〜538に基づいて予測領域550(斜線領域で示す)を確定することができる。図に示すように、境界点531〜538が連結されて予測領域550を形成する。例えば、点511は、境界点532、531に連結され、境界点531は、境界点533に連結され、境界点533は、境界点535に連結され、境界点535は、境界点537に連結され、境界点532は、境界点534に連結され、境界点534は、境界点536に連結され、境界点536は、境界点538に連結され、境界点537は、境界点538に連結されてもよい。連結された点(例えば、点511及び境界点531〜538)は、予測領域550を形成してもよい。境界点531〜538は、予測領域550内に包含又は含まれてもよい。例えば、境界点531〜538は、予測領域550のエッジ又は境界周囲に位置してもよい。図5A〜図5Cに示した予測経路(例えば、線505)は、予測領域550内に位置してもよい。
いくつかの実施形態において、予測領域550は、移動障害物が移動する可能性のある可能な位置を包含又は含んでもよい。例えば、移動障害物は、予測経路(例えば、図5A〜図5Cに示した線505)に沿って進行可能な歩行者であってもよい。移動する障害物(例えば、歩行者)は地理的領域を移動/行進して通過する際に予想外に動くことがあるため、移動する障害物が移動可能性のある可能な位置を含む領域を確定することは、有用である可能性がある。予測領域を確定するための周囲領域の閾値標準偏差に基づいて、予測領域には、歩行者が移動する可能性のある可能な位置の割合が含まれてもよい。例えば、それぞれの周囲領域523、525、527及び529が3−シグマ(3−σ)周囲領域である場合、予測領域は、歩行者が移動する可能性のある可能な位置の99.7%を含む可能性がある。したがって、ADVが予測領域550を回避すると、ADVは、99.7%の回避可能性(例えば、移動障害物に当たらない)を有する可能性がある。これにより、ADVは、移動障害物の移動の不確実性又は予測不可能性を考慮、計画又は準備することができる。これにより、ADVが移動障害物との衝突、ぶつかり、又は衝撃を避ける可能性を増加させることで、ADVをもっと安全に動作させることができる。
図6Aは、いくつかの実施形態に係る環境600A(例えば、地理的領域/位置)内を走行(例えば、移動、運転など)するADV605の一例を示す図面である。環境600Aは、道路610(例えば、街道、車線、幹線道路、無料道路、高速道路など)及び車両615を含む。道路610は、車線611及び車線612の2つの車線を有する。2つの車線は、車線613によって分割され、道路の境界は、車線616、617によって限定される。環境600Aは、更に、歩行者630(例えば、移動障害物)を含み、歩行者630は移動して(例えば、歩く、走るなど)環境600Aを通過している。道路610、車線611、612、車線613、616、617、ADV605の位置、歩行者630の位置、及び/又は、図5Aに示された他の要素は、図5AのX軸及びY軸に示されるように、デカルト座標系を使用して表されてもよい。例えば、ADV605の位置は、X−Y座標で表されてもよい。
上記のように、ADV605は、センサデータに基づいて(例えば、ビデオデータ、レーダデータ、LIDARデータなどに基づいて)、歩行者630を検出及び/又は識別することができる。ADV605は、上記のように、歩行者630の予測経路を確定することができる。ADV605は、上記のように、更に、予測経路の点に基づいて複数の周囲領域を確定することができる。ADV605は、上記のように、周囲領域について複数の境界点を確定し、複数の境界点に基づいて予測領域635を確定することができる。
いくつかの実施形態において、予測領域635は、歩行者630が移動する可能性のある可能な位置を包含又は含んでもよい。歩行者630が移動/行進して環境600Aを通過する時に、予想外に動く可能性があるため、移動障害物が移動する可能性のある可能な位置を含む領域を確定することは、有用である可能性がある。3−シグマ(3−σ)周囲領域を使用して予測領域635を確定する場合、予測領域635は、歩行者630が移動可能性のある可能な位置の99.7%を含む可能性がある。したがって、ADVが予測領域635を回避すると、ADVは歩行者630を回避する確率が99.7%である(例えば、衝突しない)。これにより、ADVが移動障害物との衝突、ぶつかり、又は衝撃を避ける可能性を増加させることで、ADVをもっと安全に動作させることができる。
図6Bは、いくつかの実施形態に係る環境600B(例えば、地理的領域/位置)で走行(例えば、移動、運転など)するADV605の一例を示す図面である。環境600Bは、道路610、車線613、616、617及び車両615を含む。上記のように、基準線ジェネレータ405(図4に示す)は、基準線を生成可能である。基準線は、ADV605の道路610の中央線のようなガイド経路であってもよい。同様に、上記のように、セグメンタ401(図4に示す)は、基準線を基準線セグメントに分割(例えば、区画、分離など)することができる。サンプル点ジェネレータ403は、上記のように、サンプル点650(図6Bの黒点で示す)を生成することができる。サンプル点650は、サンプル点のグループ又は組にグループ化されてもよい。図5Bに示すように、サンプル点607は、3組のサンプル点にグループ化される。道路610、サンプル点650、基準線630及び/又は図5に示された他の要素は、図5BのX軸及びY軸に示されるように、デカルト座標系を使用して表すことができる。例えば、ADV605の位置は、X−Y座標で示されてもよい。もう一つの例において、サンプル点650は、X−Y座標で示されてもよい。他の実施形態において、異なる数の基準線セグメント、異なる数のサンプル点、異なる数の組、組に含まれる異なる数のサンプル点、異なる位置のサンプル点を使用してもよい。
一実施形態において、一つ又は複数の多項式関数を使用して、基準線を表すことができる。例えば、多項式関数ジェネレータ402は、基準線セグメントを表すことができる多項式関数を生成することができる。多項式関数ジェネレータ402は、基準線セグメントごとに一つの多項式関数を生成することができる。5次関数ジェネレータ402は、基準線セグメントごとについて5次多項式関数θ(s)を生成することができる。一実施形態において、それぞれの5次多項式関数は、対応する基準線セグメントの開始基準点の方向を表す。5次多項式関数の導関数(例えば、1次導関数)は、基準線セグメントの開始基準点の曲率を表し、K=dshi−ta/dsである。5次多項式関数の2次導関数は、曲率変化又は曲率変化率を表し、dK/dsである。
各区分的螺旋経路は、開始方向(θ0)、開始曲率(dθ0)、開始曲率の導関数(d2θ0)、終了方向(θ1)、終了曲率(dθ1)、終了曲率の導関数(d2θ1)、及び、開始点と終了点との間の曲線長さ(Δs)からなる7つのパラメータによって決定される。一実施形態において、多項式関数は、5次多項式関数であってもよい。5次多項式関数は、式(1)(例えば、公式、関数など)によって以下のように定義されることができる。
また、式(1)は、以下を満たす。
もう一つの実施形態において、多項式関数は、3次多項式であってもよい。一つの3次多項式は、式(8)によって以下のように定義されることができる。
また、3次多項式は、式(2)〜(7)に示された同じ条件を満たす(5次多項式関数に関して上で示された)。
上記の制約に基づいて、すべての基準線セグメントのすべての多項式関数に対して最適化を行うことによって、ゼロセグメント長における基準線セグメント(i)を表す多項式関数の出力が、対応する基準線セグメント(i)の開始基準点における方向と同様又は類似するようになる。多項式関数の1次導関数は、基準線セグメント(i)の開始基準点における曲率と同様又は類似すべきである。多項式関数の2次導関数は、基準線セグメント(i)の開始基準点における曲率変化率と同様又は類似すべきである。同様に、全セグメント長における、基準線セグメント(i)を表す多項式関数の出力は、次の基準線セグメント(i+1)の開始基準点における方向と同様又は類似すべきである。前記開始基準点は、現在の基準線セグメント(i)の終了基準点である。多項式関数の1次導関数は、次の基準線セグメント(i+1)の開始基準点における曲率と同様又は類似すべきである。多項式関数の2次導関数は、次の基準線セグメント(i+1)の開始基準点における曲率変化率と同様又は類似すべきである。
例えば、基準線セグメント501について、対応する多項式関数θ(0)の出力は、基準線セグメントの開始点の方向又は角度を表す。θ(Δs0)は、基準線セグメントの終了点の方向を表し、ここで、基準線セグメントの終了点は、次の基準線セグメントの開始点でもある。θ(0)の1次導関数は、基準線セグメントの開始点(x0, y0)における曲率を表し、θ(0)の2次導関数は、基準線セグメントの終了点における曲率変化率を表す。θ(s0)の1次導関数は、基準線セグメントの終了点の曲率を表し、θ(s0)の2次導関数は、基準線セグメントの終了点の曲率変化率を表す。
θ(s)=as5+bs4+cs3+ds2+es+f (9)
5次多項式関数の1次導関数は、経路の点における曲率を表す。
dθ=5as4+4bs3+3cs2+2ds+e (10)
5次多項式関数の2次導関数は、経路の点における曲率変化率を表す。
d2θ=20as3+12bs2+6cs+2d (11)
特定の螺旋経路又は基準線セグメントについて、開始点及び終了点の2つの点に関わり、ここで、各点の方向、曲率及び曲率変化率は、それぞれ上記の3つの式によって表すことができる。したがって、それぞれの螺旋経路又は基準線セグメントについて、合計で6つの式がある。これらの6つの式は、対応する5次多項式関数の係数a、b、c、d、e、fを決定するために使用可能である。
螺旋経路がデカルト空間内の連続基準点間の曲線を表す場合、螺旋経路曲線の長さとデカルト空間内の位置との間で、接続又はブリッジを構築する必要がある。{θi,dθi,d2θi,θi+1,dθi+1,d2θi+1,Δs}によって定義される螺旋経路θi(s)、及び、経路開始点pi=(xi,yi)が特定されると、点p=(x,y)の座標及び特定の如何なるs=[0,Δs]を確定する必要がある。一実施形態において、特定の点の座標は、以下の式(例えば、公式、関数など)によって取得されることができる。
s=Δsである場合、曲線θi及び開始座標pi=(xi,yi)を特定して、終了座標pi+1を取得する。螺旋経路の関数の総出力が最小限になると同時に、上記の1組の制約を満たすように関数を最適化する。なお、最適化から導き出された終点の座標は、初期基準線の対応する座標に関して所定の範囲(例えば、許容誤差、誤差許容範囲)内にあることが要求される。即ち、それぞれの最適化された点と初期基準線の対応する点との間の差が、所定の閾値内にあるべきである。
いくつかの実施形態において、経路ジェネレータ404は、動的プログラミングアルゴリズム、関数、動作などによって、ADV605の経路を決定することができる。例えば、経路ジェネレータ404は、Dijkstraアルゴリズムを使用して、セグメントのコスト(例えば、重み)に基づいて、ADV605のコストが最も低い経路を確定することができる。ADVの経路は、最も左側のサンプル点の組と中間のサンプル点の組との間の9つのセグメントのうちの一つ、及び、中間サンプル点の組と最も右側のサンプル点の組との間の9つのセグメントのうちの一つを含んでもよい。複数の経路が同一の最低のコストを有する場合、経路ジェネレータ404は、様々な要因に基づいて複数の経路のうちの一つを選択することが可能である。例えば、経路ジェネレータ404は、基準線に最も近い経路(例えば、基準線からの逸脱が最も少ない経路)を選択することが可能である。
図7は、いくつかの実施形態に係る自動運転車両(例えば、ADV)の経路を確定するためのプロセス700の一例を示すフローチャートである。プロセス700は、処理ロジックによって実行可能であり、処理ロジックはソフトウェア、ハードウェア、又はそれらの組み合わせを含んでもよい。プロセス700は、処理ロジックによって実行可能であり、処理ロジックは、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、プロセッサ、処理装置、中央処理装置(CPU)、システムオンチップ(SoC)など)、ソフトウェア(例えば、処理装置で運行/実行される命令)、ファームウェア(例えば、マイクロコード)、又は、それらの組み合わせを含んでもよい。いくつかの実施形態において、プロセス700は、図3B、図4A、図4B及び図4Cに示された感知モジュール302、予測モジュール303及び計画モジュール305のうちの一つ又は複数によって実行可能である。図7を参照すると、ブロック705において、処理ロジックは、移動障害物を識別及び/又は検出する。例えば、処理ロジックは、センサデータに基づいて、移動障害物(例えば歩行者)を検出することができる。ブロック710において、処理ロジックは、移動障害物の予測経路を確定することができる。例えば、処理ロジックは、センサデータに基づいて予測経路を表す一つ又は複数の点(例えば、予測点)を確定することができる。
ブロック715において、処理ロジックは、予測点の周囲領域を確定することができる。例えば、上記のように、処理ロジックは、閾値標準偏差(例えば、3つの標準偏差)を確定し、閾値標準偏差に基づいて周囲領域を確定することができる。ブロック720において、処理ロジックは、周囲領域に基づいて、境界点を確定することができる。例えば、処理ロジックは、境界点が連結されると、周囲領域の最も外側のエージが境界点内に含まれるように境界点を確定することができる。ブロック725において、処理ロジックは、境界点に基づいて予測領域を確定することができる。例えば、上記のように、処理ロジックは、境界点を連結することによって、予測領域を形成することができる。
ブロック730において、処理ロジックは、予測領域に基づいてADVの経路を決定することができる。例えば、上記のように、処理ロジックは、予測領域を回避する基準線を確定することができる。処理ロジックは、基準線に基づいてサンプル点を確定することができる。上記のように、サンプル点は、予測領域を回避することもできる。上記のように、処理ロジックは、更にサンプル点に基づいて複数のセグメントを確定することができる。上記のように、処理ロジックは、更に、複数のセグメントに基づいてADVの経路を決定することができる。ブロック735において、処理ロジックは、経路に従ってADVを制御することができる。例えば、処理ロジックは、ADVを経路に従って移動及び/又は走行させることができる。
なお、以上に例示及び説明された構成要素の一部又は全ては、ソフトウェア、ハードウェア、又はそれらの組み合わせで実現されることが可能である。例えば、このような構成要素は、永続性記憶装置にインストールされるとともに記憶されるソフトウェアとして実現されてもよく、前記ソフトウェアは、本願にわたって記載されたプロセス又は動作を実現するように、プロセッサ(図示せず)によってメモリにロードして実行されてもよい。あるいは、このような構成要素は、集積回路(例えば、特定用途向け集積回路又はASIC)、デジタルシグナルプロセッサ(DSP)、又はフィールドプログラマブルゲートアレイ(FPGA)のような専用ハードウェアにプログラミング又は埋め込まれた実行可能なコードとして実現されてもよく、前記実行可能なコードは、アプリケーションからの対応するドライバー及び/又はオペレーティングシステムを介してアクセスすることができる。また、このような構成要素は、ソフトウェア構成要素が一つ以上の特定の命令によってアクセス可能な命令セットの一部として、プロセッサ又はプロセッサコアにおける特定のハードウェアロジックとして実現されることができる。
図11は、本発明の一実施形態と共に使用可能なデータ処理システムの一例を示すブロック図である。例えば、システム1500は、前記プロセス又は方法のいずれかを実行する前記データ処理システムのいずれか(例えば、図1の感知及び計画システム110、又はサーバ103〜104のいずれか)を表すことができる。システム1500は、いくつかの異なる構成要素を含んでもよい。これらの構成要素は、集積回路(IC)、集積回路の一部、ディスクリート型電子デバイス、又は回路基板(例えば、コンピュータシステムのマザーボード若しくはアドインカード)に適するその他のモジュールとして実現されることができ、又は、他の形態でコンピュータシステムのシャーシ内に組み込まれる構成要素として実現されることが可能である。
なお、システム1500は、コンピュータシステムのいくつかの構成要素の高レベルビューを示すことを意図している。しかしながら、特定の実施例において付加的構成要素が存在してもよく、また、その他の実施例において示された構成要素を異なる配置にすることが可能であると理解すべきである。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレヤー、パーソナルデジタルアシスタント(PDA)、スマートウォッチ、パーソナルコミュニケーター、ゲーム装置、ネットワークルーター又はハブ、無線アクセスポイント(AP)又はリピーター、セット・トップボックス、又はそれらの組み合わせを表すことができる。また、単一の機械又はシステムのみが示されたが、「機械」又は「システム」という用語は、本明細書で説明されるいずれか一種以上の方法を実現するための、単独で又は共同で1つ(又は複数)の命令セットを実行する機械又はシステムのいずれかの組み合わせも含まれると解釈されるものとする。
一実施形態において、システム1500は、バス又はインターコネクト1510を介して接続される、プロセッサ1501と、メモリ1503と、装置1505〜1508とを含む。プロセッサ1501は、単一のプロセッサコア又は複数のプロセッサコアが含まれる単一のプロセッサ又は複数のプロセッサを表すことができる。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)などのような、一つ以上の汎用プロセッサを表すことができる。より具体的には、プロセッサ1501は、複雑命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又はその他の命令セットを実行するプロセッサ、又は命令セットの組み合わせを実行するプロセッサであってもよい。プロセッサ1501は更に、例えば、特定用途向け集積回路(ASIC)、セルラー又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、グラフィックプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組込みプロセッサ、又は命令を処理可能な任意の他のタイプのロジックのような、一つ以上の専用プロセッサであってもよい。
プロセッサ1501は、超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよく、前記システムの様々な構成要素と通信するための主処理ユニット及び中央ハブとして機能することができる。このようなプロセッサは、システムオンチップ(SoC)として実現されることができる。プロセッサ1501は、本明細書で説明される動作及びステップを実行するための命令を実行するように構成される。システム1500は、更に所望によるグラフィックサブシステム1504と通信するグラフィックインターフェースを含むことができ、グラフィックサブシステム1504は、表示コントローラ、グラフィックプロセッサ、及び/又は表示装置を含むことができる。
プロセッサ1501は、メモリ1503と通信することができ、メモリ1503は、一実施形態では、所定量のシステムメモリを提供するための複数のメモリ装置によって実現されることができる。メモリ1503は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、又はその他のタイプの記憶装置のような、一つ以上の揮発性記憶(又はメモリ)装置を含むことができる。メモリ1503は、プロセッサ1501又はその他の任意の装置により実行される命令シーケンスを含む情報を記憶することができる。例えば、様々なオペレーティングシステム、デバイスドライバ、ファームウェア(例えば、ベーシックインプット/アウトプットシステム又はBIOS)、及び/又はアプリケーションの実行可能なコード及び/又はデータは、メモリ1503にロードされ、プロセッサ1501により実行されることができる。オペレーティングシステムは、例えば、ロボットオペレーティングシステム(ROS)、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は、コンピュータアクセス可能な記憶媒体1509(機械可読記憶媒体又はコンピュータ可読媒体ともいう)を含むことができ、前記コンピュータアクセス可能な記憶媒体1509には、本明細書で記載されたいずれか一種以上の方法又は機能を具現化する一つ以上の命令セット又はソフトウェア(例えば、モジュール、ユニット、及び/又はロジック1528)が記憶されている。処理モジュール/ユニット/ロジック1528は、計画モジュール305、制御モジュール306などの前記構成要素のいずれかを表すことができる。処理モジュール/ユニット/ロジック1528は、更に、データ処理システム1500、メモリ1503、及びプロセッサ1501による実行中に、メモリ1503内及び/又はプロセッサ1501内に完全的に又は少なくとも部分的に存在してもよく、データ処理システム1500、メモリ1503、及びプロセッサ1501も機械アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528は、更に、ネットワークを介して、ネットワークインターフェース装置1505を経由して送受信可能である。
コンピュータ可読記憶媒体1509は、以上に説明されたいくつかのソフトウェア機能を永続的に記憶するために用いることができる。コンピュータ可読記憶媒体1509は、例示的な実施形態において単一の媒体として示されるが、「コンピュータ可読記憶媒体」という用語は、前記一つ以上の命令セットが記憶される単一の媒体又は複数の媒体(例えば、集中型又は分散型データベース、及び/又は関連するキャッシュとサーバ)を含むと解釈されるものとする。「コンピュータ可読記憶媒体」という用語は、更に、命令セットを記憶又は符号化できる任意の媒体を含むと解釈されるものであり、前記命令セットは機械により実行され、本発明のいずれか一種以上の方法を前記機械に実行させるためのものである。それゆえに、「コンピュータ可読記憶媒体」という用語は、ソリッドステートメモリ、光学媒体及び磁気媒体、又はその他の任意の非一時的な機械可読媒体を含むが、それらに限定されないと解釈されるものとする。
本明細書に記載の処理モジュール/ユニット/ロジック1528、構成要素及びその他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はハードウェア構成要素(例えば、ASICS、FPGA、DSP又は類似の装置)の機能に統合されてもよい。また、処理モジュール/ユニット/ロジック1528は、ハードウェア装置におけるファームウェア又は機能性回路として実現されてもよい。また、処理モジュール/ユニット/ロジック1528は、ハードウェア装置とソフトウェア構成要素の任意の組み合わせで実現されてもよい。
なお、システム1500は、データ処理システムの様々な構成要素を有するものとして示されているが、構成要素を相互接続する任意の特定のアーキテクチャ又は方式を表すことを意図するものではなく、そのような詳細は、本発明の実施形態とは密接な関係がない。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、及び/又はその他のデータ処理システムも、本発明の実施形態と共に使用することができることを理解されたい。
前記具体的な説明の一部は、既に、コンピュータメモリにおけるデータビットに対する演算のアルゴリズムと記号表現で示される。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。本明細書では、一般的に、アルゴリズムは、所望の結果につながるセルフコンシステントシーケンスと考えられる。これらの動作は、物理量の物理的処置が必要なものである。
しかしながら、念頭に置くべきは、これらの用語及び類似の用語の全ては、適切な物理量に関連付けられるものであり、これらの量を標識しやすくするためのものに過ぎない。以上の説明で他に明示的に記載されていない限り、本明細書全体を通じて理解するべきは、添付された特許請求の範囲に記載するもののような用語を利用する論述とは、コンピュータシステム、又は類似の電子計算装置の動作またはプロセスを指し、前記コンピュータシステムまたは電子計算装置は、コンピュータシステムのレジスタ及びメモリにおける物理(電子)量として示されるデータを制御するとともに、前記データをコンピュータシステムメモリ又はレジスタ又はこのようなその他の情報記憶装置、送信又はディスプレイデバイスにおいて同様に物理量として示される別のデータに変換する。
本発明の実施形態は、本明細書の動作を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的なコンピュータ可読媒体に記憶される。機械可読媒体は、機械(例えば、コンピュータ)により読み取り可能な形式で情報を記憶するための任意のメカニズムを含む。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置)を含む。
上述した図面において説明されたプロセス又は方法は、ハードウェア(例えば、回路、専用ロジックなど)、ソフトウェア(例えば、非一時的なコンピュータ可読媒体に具現化されるもの)、又は両方の組み合わせを含む処理ロジックにより実行されることができる。前記プロセス又は方法は、以上で特定の順序に応じて説明されたが、前記動作の一部が異なる順序で実行されてもよいことを理解されたい。また、一部の動作は、順番ではなく並行して実行されてもよい。
本発明の実施形態は、いずれの特定のプログラミング言語を参照することなく記載されている。理解すべきは、本明細書に記載の本発明の実施形態の教示を実現するために、様々なプログラミング言語を使用することができる。
前記明細書において、本発明の実施形態は、既にその具体的な例示的な実施形態を参照しながら記載された。明らかなように、添付された特許請求の範囲に記載された本発明のより広い趣旨及び範囲を逸脱しない限り、本発明に対して様々な変更を行うことができる。それゆえに、本明細書及び図面は、限定的な意味でなく、例示的な意味で理解されるべきである。
本発明の実施形態は、主に自動運転車両を動作させることに関する。より具体的に、本発明の実施形態は、自動運転車両のための経路又はルートの決定に関する。
自動運転モード(例えば、ドライバーレス)で走行している車両は、乗員、特に運転手を運転関連の責任から解放させることができる。車両は、自動運転モードで走行しているとき、搭載されたセンサを使用して様々な場所にナビゲートすることができ、ヒューマンコンピュータインタラクションが最小限に抑えられた場合、又は乗客がいない状況などで車両を走行させることができる。
運動計画及び制御は、自動運転における重要な動作である。具体的に、軌跡計画は、自動運転システムの重要な構成要素である。従来の軌跡計画技術は、安定した軌跡を生成するために高品質の基準線に大きく依存しており、前記基準線は、道路の中央線などのような自動運転車両のための案内経路である。
本願の一態様によると、自動運転車両を動作させるためのコンピュータ実施方法であって、
移動障害物の予測経路を確定するステップと、
前記移動障害物の前記予測経路に基づいて、前記予測経路を含む予測領域を確定するステップと、
前記予測領域に基づいて、前記予測領域を回避するように前記自動運転車両の経路を決定するステップと、
前記経路に基づいて、前記自動運転車両を制御するステップと、を含む、コンピュータ実施方法が提供される。
本願のもう一つの態様によると、命令が格納されている非一時的機械可読媒体であって、前記命令がプロセッサによって実行されると、
移動障害物の予測経路を確定するステップと、
前記移動障害物の前記予測経路に基づいて、前記予測経路を含む予測領域を確定するステップと、
前記予測領域に基づいて、前記予測領域を回避するように前記自動運転車両の経路を決定するステップと、
前記経路に基づいて、前記自動運転車両を制御するステップと、を含む、動作を前記プロセッサに実行させる、非一時的機械可読媒体が提供される。
本願のさらなる一態様によると、
プロセッサと、
命令を格納するために前記プロセッサに結合されたメモリであって、前記命令が前記プロセッサによって実行されると、
移動障害物の予測経路を確定するステップと、
前記移動障害物の前記予測経路に基づいて、前記予測経路を含む予測領域を確定するステップと、
前記予測領域に基づいて、前記予測領域を回避するように前記自動運転車両の経路を確定するステップと、
前記経路に基づいて、前記自動運転車両を制御するステップと、
を含む動作を前記プロセッサに実行させるメモリと、を備える、データ処理システムが提供される。
本発明の実施形態は、図面の各図において限定的ではなく例示的な形態で示され、図面における同じ図面符号が類似の素子を示す。
いくつかの実施形態に係るネットワークシステムを示すブロック図である。
いくつかの実施形態に係る自動運転車両の一例を示すブロック図である。
いくつかの実施形態に係る自動運転車両と共に使用される感知及び計画システムの一例を示すブロック図である。
いくつかの実施形態に係る自動運転車両と共に使用される感知及び計画システムの一例を示すブロック図である。
いくつかの実施形態に係る感知モジュールの一例を示すブロック図である。
いくつかの実施形態に係る予測モジュールの一例を示すブロック図である。
いくつかの実施形態に係る計画モジュールの一例を示すブロック図である。
いくつかの実施形態に係る例示的なグラフを示す図である。
いくつかの実施形態に係る例示的なグラフを示す図である。
いくつかの実施形態に係る例示的なグラフを示す図である。
いくつかの実施形態に係る例示的なグラフを示す図である。
いくつかの実施形態に係る道路を走行する自動運転車両の一例を示す図である。
いくつかの実施形態に係る道路を走行する自動運転車両の一例を示す図である。
いくつかの実施形態に係る自動運転車両の経路を決定するためのプロセスの一例を示すフローチャートである。
一実施形態に係るデータ処理システムを示すブロック図である。
以下、説明の詳細を参照しながら本発明の様々な実施形態及び態様を説明し、前記様々な実施形態が図面に示される。以下の説明及び図面は、本発明を例示するためのものであり、限定するものとして解釈されるべきではない。本発明の様々な実施形態を全面的に理解するために、多くの特定の詳細を説明する。なお、いくつかの場合、本発明の実施形態に対する簡潔的な説明を提供するように、周知又は従来技術の詳細について説明していない。
本明細書において、「一実施形態」又は「実施形態」とは、当該実施形態に組み合わせて説明された特定の特徴、構造又は特性が本発明の少なくとも一実施形態に含まれてもよいと意味する。「一実施形態において」という表現は、本明細書の全体において全てが同一の実施形態を指すとは限らない。
いくつかの実施形態によると、自動運転車両(ADV)の経路を決定する新たな方法を使用した。様々な移動障害物/オブジェクトは、ADVが走行する/位置する領域と同一な地理的領域内に位置する可能性がある。これらの移動障害物は、予想外に移動する可能性がある。例えば、歩行者は経路に沿って移動しているかもしれないが、歩行者は突然方向を変える(例えば、左に曲がる)か、又は加速/減速する可能性がある。移動オブジェクトとの衝突、ぶつかり、又は衝撃を避けるために、移動オブジェクトの経路を予測しようとする時に、問題を引き起こす可能性がある。したがって、移動障害物が移動して到達する可能性のある位置を含む領域を確定(例えば、計算、演算、取得など)することは有用であり得る。
ADVは、移動障害物が移動して到達する可能性のある領域を含む予測領域を確定することができる。予測領域は、移動障害物が移動する可能性のある位置のうちの大きな割合(例えば、99.7%)を含んでもよい。これにより、ADVは、予測領域を回避するADVのための経路を決定及び/又は計画することができる。ADVは、予測領域(移動障害物が移動する可能性のある領域)を回避する場合、移動障害物との衝突を避ける確率を高めることを可能にする。
図1は、本発明のいくつかの実施形態に係る自動運転車両のネットワーク構成を示すブロック図である。図1に示すように、ネットワーク構成100は、ネットワーク102を介して1つ以上のサーバ103〜104に通信可能に接続される自動運転車両101を含む。一台の自動運転車両のみが示されているが、複数の自動運転車両が、ネットワーク102を介して、互いに接続されるか、及び/又はサーバ103〜104に接続されてもよい。ネットワーク102は、任意のタイプのネットワーク、例えば、有線又は無線のローカルエリアネットワーク(LAN)、インターネットのようなワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク又はそれらの組み合わせであってもよい。サーバ103〜104は、任意のタイプのサーバ又はサーバクラスタであってもよく、例えば、ネットワーク又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ、又はこれらの組み合わせが挙げられる。サーバ103〜104は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図及び関心地点(MPOI)サーバ、又は位置サーバなどであってもよい。図1は、本発明のいくつかの実施形態に係る自動運転車両のネットワーク構成を示すブロック図である。図1に示すように、ネットワーク構成100は、ネットワーク102を介して1つ以上のサーバ103〜104に通信可能に接続される自動運転車両101を含む。一台の自動運転車両のみが示されているが、複数の自動運転車両が、ネットワーク102を介して、互いに接続されるか、及び/又はサーバ103〜104に接続されてもよい。ネットワーク102は、任意のタイプのネットワーク、例えば、有線又は無線のローカルエリアネットワーク(LAN)、インターネットのようなワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク又はそれらの組み合わせであってもよい。サーバ103〜104は、任意のタイプのサーバ又はサーバクラスタであってもよく、例えば、ネットワーク又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ、又はこれらの組み合わせが挙げられる。サーバ103〜104は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図及び関心地点(MPOI)サーバ、又は位置サーバなどであってもよい。
自動運転車両とは、自動運転モードになるように構成可能な車両を指し、前記自動運転モードにおいて、車両が運転手からの入力がほとんど又は全くない場合に環境を通過するようにナビゲートされる。このような自動運転車両は、車両の動作環境に関連する情報を検出するように構成された1つ以上のセンサを有するセンサシステムを含んでもよい。前記車両及びその関連コントローラは、検出された情報を使用して前記環境を通過するようにナビゲートする。自動運転車両101は、手動モード、全自動運転モード、又は部分自動運転モードで動作することができる。
一実施形態において、自動運転車両101は、感知及び計画システム110、車両制御システム111、無線通信システム112、ユーザインターフェースシステム113、並びにセンサシステム115を含むが、それらに限定されない。自動運転車両101は更に、エンジン、車輪、ステアリングホイール、変速機などの従来の車両に含まれるいくつかの共通構成要素を含んでもよい。前記構成要素は、車両制御システム111及び/又は感知及び計画システム110によって様々な通信信号及び/又はコマンドで制御されることができ、これらの様々な通信信号及び/又はコマンドは、例えば加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンドなどを含む。
構成要素110〜115は、インターコネクト、バス、ネットワーク、又はこれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素110〜115は、コントローラエリアネットワーク(CAN)バスを介して互いに通信可能に接続することができる。CANバスは、ホストコンピュータなしのアプリケーションでマイクロコントローラ及びデバイスが相互に通信できるように設計された車両バス規格である。それは、もともと自動車内の多重電気配線のために設計されたメッセージに基づくプロトコルであるが、他の多くの環境にも用いられる。
ここで図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は、スチルカメラ及び/又はビデオカメラであってもよい。カメラは、例えば、回転及び/又は傾斜のプラットフォームに取り付けることによって、機械的に移動されてもよい。
センサシステム115は、ソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ、及びオーディオセンサ(例えば、マイクロホン)などの他のセンサを更に含むことができる。オーディオセンサは、自動運転車両の周囲の環境から音を取得するように構成されてもよい。ステアリングセンサは、ステアリングホイール、車両の車輪、又はそれらの組み合わせの操舵角を検知するように構成されてもよい。スロットルセンサ及びブレーキセンサそれぞれは、車両のスロットル位置及びブレーキ位置を検知する。場合によっては、スロットルセンサとブレーキセンサを統合型スロットル/ブレーキセンサとして一体化することができる。
一実施形態において、車両制御システム111は、ステアリングユニット201、スロットルユニット202(加速ユニットともいう)、及びブレーキユニット203を含むが、それらに限定されない。ステアリングユニット201は、車両の方向又は進行方向を調整するために用いられる。スロットルユニット202は、モータ又はエンジンの速度を制御するために用いられ、モータ又はエンジンの速度によって更に車両の速度及び加速度が制御される。ブレーキユニット203は、摩擦を与えることによって車両の車輪又はタイヤを減速させることで、車両を減速させる。なお、図2に示す構成要素は、ハードウェア、ソフトウェア、又はそれらの組み合わせで実現されてもよい。
図1を再び参照して、無線通信システム112は、自動運転車両101と、装置、センサ、他の車両などの外部システムとの間の通信を可能にするものである。例えば、無線通信システム112は、直接又は通信ネットワークを介して一つ以上の装置と無線通信することができ、例えば、ネットワーク102を介してサーバ103〜104と通信することができる。無線通信システム112は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク(WLAN)を使用することができ、例えば、WiFiを使用して別の構成要素又はシステムと通信することができる。無線通信システム112は、例えば、赤外線リンク、ブルートゥース(登録商標)などを使用して、装置(例えば、乗客のモバイルデバイス、表示装置、車両101内のスピーカ)と直接通信することができる。ユーザインターフェースシステム113は、車両101内に実現された周辺装置の部分(例えば、キーボード、タッチスクリーン表示装置、マイクロホン、及びスピーカなどを含む)であってもよい。
自動運転車両101の機能の一部又は全部は、特に自動運転モードで動作しているときに、感知及び計画システム110によって制御又は管理することができる。感知及び計画システム110は、必要なハードウェア(例えば、プロセッサ、メモリ、記憶装置)及びソフトウェア(例えば、オペレーティングシステム、計画及びルーティングプログラム)を備え、センサシステム115、制御システム111、無線通信システム112、及び/又はユーザインターフェースシステム113から情報を受信し、受信した情報を処理し、出発地から目的地までのルート又は経路を計画し、その後、計画及び制御情報に基づいて車両101を走行させる。あるいは、感知及び計画システム110は車両制御システム111と一体に統合されてもよい。
例えば、乗客としてのユーザは、例えば、ユーザインターフェースを介して、旅程の出発地位置及び目的地を指定することができる。感知及び計画システム110は、旅程関連データを取得する。例えば、感知及び計画システム110は、MPOIサーバから位置及びルート情報を取得することができ、前記MPOIサーバはサーバ103〜104の一部であってもよい。位置サーバは位置サービスを提供し、MPOIサーバは地図サービス及びいくつかの位置のPOIを提供する。あるいは、そのような位置及びMPOI情報は、感知及び計画システム110の永続性記憶装置にローカルキャッシュされることができる。いくつかの実施形態において、感知及び計画システム110は、MPOI情報(例えば、地図データ)を有さなくてもよい。例えば、感知及び計画システム110は、他の環境又は地理的領域/位置に使用される地図データを有さなくてもよい。感知及び計画システム110は、自動運転車両101は、現在走行しているか又は位置する環境又は地理的領域/位置に使用される地図データを有さなくてもよい(例えば、感知及び計画システム110は、ある都市についての地図データを有していてもよいが、他の都市についての地図データを有していなくてもよい)。他の例において、感知及び計画システム110は、いかなる地図データ又はMPOI情報を有さなくてもよい(例えば、感知及び計画システム110は、いかなる地図データを格納していない可能性がある)。
自動運転車両101がルートに沿って移動するとき、感知及び計画システム110は交通情報システム又はサーバ(TIS)からリアルタイム交通情報を取得することもできる。なお、サーバ103〜104は第三者機関によって動作されてもよい。あるいは、サーバ103〜104の機能は、感知及び計画システム110と統合されてもよい。リアルタイム交通情報、MPOI情報、及び位置情報、並びにセンサシステム115によって検出又は検知されたリアルタイムローカル環境データ(例えば、障害物、オブジェクト、周辺車両)に基づいて、感知及び計画システム110は、指定された目的地までに安全かつ効率的に到着するように、最適なルートを計画し、計画されたルートに従って、例えば、制御システム111によって車両101を走行させる。
サーバ103は、様々なクライアントのためのデータ解析サービスを行うためのデータ解析システムであってもよい。一実施形態において、データ解析システム103は、データコレクタ121と、機械学習エンジン122とを含む。データコレクタ121は、様々な車両(自動運転車両又は人間の運転手によって運転される一般車両)から運転統計データ123を収集する。運転統計データ123は、発行された運転命令(例えば、スロットル、ブレーキ、ステアリングの命令)及び車両のセンサによって異なる時点で取得された車両の応答(例えば、速度、加速度、減速度、方向)を指示する情報を含む。運転統計データ123は更に、異なる時点における走行環境を記述する情報、例えば、ルート(出発地位置及び目的地位置を含む)、MPOI、道路状況、気候状況などを含んでもよい。
機械学習エンジン122は、運転統計データ123に基づいて、様々な目的でルール、アルゴリズム及び/又は予測モデル124のセットを生成するか又は訓練する。例えば、初期係数又はパラメータを使用して、5次多項式関数の集合を選択及び定義することができる。なお、運転統計データ123から取得可能なセンサの仕様及び特定の車両設計のようなハードウェアの特性に基づいて、制約の集合を定義することができる。
図3A及び図3Bは、いくつかの実施形態に係る自動運転車両と共に使用される感知及び計画システムの一例を示すブロック図である。システム300は、図1の自動運転車両101の一部として実現することができ、感知及び計画システム110、制御システム111、及びセンサシステム115を含むが、それらに限定されない。図3A及び図3Bに示すように、感知及び計画システム110は、測位モジュール301、感知モジュール302、予測モジュール303、決定モジュール304、計画モジュール305、制御モジュール306及びルーティングモジュール307を含むが、これらに限定されない。
モジュール301〜307のうちの一部又は全部は、ソフトウェア、ハードウェア又はそれらの組み合わせで実現されてもよい。例えば、これらのモジュールは、永続性記憶装置352にインストールされ、メモリ351にロードされ、1つ以上のプロセッサ(図示せず)によって実行されてもよい。なお、これらのモジュールの一部又は全部は、図2の車両制御システム111のモジュールの一部又は全部と通信可能に接続されるか、又は一体化されてもよい。モジュール301〜307の一部は、集積モジュールとして一体化されてもよい。
測位モジュール301は、自動運転車両300の現在の位置(例えば、GPSユニット212を利用して)を確定し、ユーザの旅程又はルートに関連する如何なるデータを管理する。測位モジュール301(地図及びルートモジュールともいう)は、ユーザの旅程又はルートに関連する如何なるデータを管理する。ユーザは、例えば、ユーザインターフェースを介してログインし、旅程の出発地位置及び目的地を指定することができる。測位モジュール301は、自動運転車両300の地図及びルート情報311のような他の構成要素と通信して、旅程関連データを取得する。例えば、測位モジュール301は、位置サーバ並びに地図及びPOI(MPOI)サーバから位置及びルート情報を取得することができる。位置サーバは位置サービスを提供し、MPOIサーバは、地図サービス及びある位置のPOIを提供し、地図及びルート情報311の一部としてキャッシュすることができる。自動運転車両300がルートに沿って移動するとき、測位モジュール301は交通情報システム又はサーバからリアルタイム交通情報を得ることも可能である。一実施形態において、地図及びルート情報311は、事前に永続性記憶装置352に格納されてもよい。例えば、地図及びルート情報311は、事前に永続性記憶装置352にダウンロード又はコピーされてもよい。
感知モジュール302は、センサシステム115により提供されたセンサデータと、測位モジュール301により取得された測位情報とに基づいて、周囲環境への感知を特定する。感知情報は、一般的な運転手が運転手により運転されている車両の周囲で感知すべきものを表すことができる。感知は、例えばオブジェクトの形態を採用する車線構成(例えば、直進車線又はカーブ車線)、信号機信号、他の車両の相対位置、歩行者、建築物、横断歩道、又は他の交通関連標識(例えば、止まれ標識、ゆずれ標識)などを含んでもよい。
感知モジュール302は、1つ以上のカメラによって取り込まれた画像を処理及び解析して、自動運転車両の環境内のオブジェクト及び/又は特徴を認識するためのコンピュータビジョンシステム又はコンピュータビジョンシステムの機能を含むことができる。前記オブジェクトは、交通信号、道路境界、他の車両、歩行者及び/又は障害物などを含むことができる。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオトラッキング、及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態において、コンピュータビジョンシステムは、環境地図を描き、オブジェクトを追跡し、オブジェクトの速度などを推定することができる。感知モジュール302は、レーダ及び/又はLIDARのような他のセンサによって提供される他のセンサデータに基づいてオブジェクトを検出することもできる。
各オブジェクトについて、予測モジュール303は、その場合にオブジェクトがどのように挙動するかを予測する。この予測は、地図及びルート情報311と交通ルール312のセットを考慮した時点で運転環境を感知する感知データに基づいて実行される。例えば、オブジェクトが反対方向の車両であり、かつ現在の運転環境が交差点を含む場合、予測モジュール303は、車両が直進するか、又はカーブ走行するかを予測する。感知データが、交差点に信号機がないことを示す場合、予測モジュール303は、交差点に入る前に車両が完全に停止する必要があると予測する可能性がある。感知データが、車両が現在左折専用車線又は右折専用車線にあることを示す場合、予測モジュール303は、車両がそれぞれ左折又は右折する可能性がより高いと予測することができる。いくつかの実施形態において、環境又は地理的領域/位置に用いられる地図及びルート情報311は、以下で詳細に説明するように、自動運転車両が当該環境又は地理的領域/位置を通過する際に、動的に生成される(例えば、感知モジュール302によって生成される)ことが可能である。
それぞれのオブジェクトについて、決定モジュール304はオブジェクトをどのように処理するかを決定する。例えば、特定のオブジェクト(例えば、交差のルートにおける他の車両)及びオブジェクトを記述するメタデータ(例えば、速度、方向、操舵角)について、決定モジュール304は前記オブジェクトと遇うときに如何に対応するか(例えば、追い越し、道譲り、停止、追い抜き)を決定する。決定モジュール304は、永続性記憶装置352に記憶可能な、交通ルール又は運転ルール312のようなルールセットに基づいてそのような決定を行うことができる。
様々な移動障害物/オブジェクトは、予測不可能に移動する可能性がある。例えば、歩行者が経路に沿って移動しているが、突然方向を変える(例えば、左に曲がる)ことがあり、又は、加速/減速する可能性がある。移動オブジェクトとの衝突、ぶつかり、又は衝撃を避けるために、移動オブジェクトの経路を予測しようとする時に、問題を引き起こす可能性がある。したがって、移動障害物が移動して到達する可能性のある位置を含む領域を確定(例えば、計算、演算、取得など)することは有用であり得る。これにより、ADVは、移動障害物を回避する確率を高めることができる。
ルーティングモジュール307は、出発地から目的地までの1つ以上のルート又は経路を提供するように構成される。ルーティングモジュール307は、出発地位置から目的地位置までの特定の旅程(例えば、ユーザから受信された特定の旅程)について、ルート及び地図情報311を取得し、出発地位置から目的地位置までのすべての可能なルート又は経路を決定する。いくつかの実施形態において、地図及びルート情報311は、以下で詳細に説明されるように、感知モジュール302により生成されてもよい。ルーティングモジュール307は、出発地位置から目的地位置までの各ルートを特定する地形図の形の基準線を生成することができる。基準線とは、他の車両、障害物、又は交通状況などからの如何なる干渉を受けていない理想的なルート又は経路を指す。つまり、道路に他の車両、歩行者又は障害物がない場合、ADVは基準線に精確的に又は密接的に従うべきである。そして、地形図を決定モジュール304及び/又は計画モジュール305に提供する。決定モジュール304及び/又は計画モジュール305は、可能性のあるすべてのルートを調べて、他のモジュールによって提供される他のデータに基づいて最適なルートの1つを選択及び補正し、他のデータとは、測位モジュール301からの交通状況、感知モジュール302によって感知された走行環境、並びに予測モジュール303によって予測された交通状況などが挙げられる。特定時点における特定の走行環境に応じて、ADVを制御するための実際の経路又はルートは、ルーティングモジュール307によって提供される基準線に近いか又は異なっていてもよい。
感知されたオブジェクトのそれぞれに対する決定に基づいて、計画モジュール305は、ルーティングモジュール307によって提供される基準線をベースに、自動運転車両に対して経路又はルート並びに運転パラメータ(例えば、距離、速度及び/又は操舵角)を計画する。言い換えれば、特定のオブジェクトについて、決定モジュール304は当該オブジェクトに対して何をするかを決定し、計画モジュール305はどのようにするかを決定する。例えば、特定のオブジェクトについて、決定モジュール304は前記オブジェクトを追い抜くかを決定することができ、計画モジュール305は前記オブジェクトを左側から追い抜くか又は右側から追い抜くかを判定することができる。計画及び制御データは、計画モジュール305により生成され、車両300が次の移動周期(例えば、次のルート/経路区間)にはどのように移動するかを記述する情報を含む。例えば、計画及び制御データは、車両300に時速30マイル(mph)で10m移動し、次に25マイル(mph)で右車線に変更するように指示することができる。
制御モジュール306は、計画及び制御データに基づいて、計画及び制御データにより限定されたルート又は経路に応じて適当なコマンド又は信号を車両制御システム111に送信することにより自動運転車両を制御及び走行させる。前記計画及び制御データは、経路又はルートに沿って異なる時点で適切な車両配置又は運転パラメータ(例えば、スロットル、ブレーキ、及びステアリングコマンド)を使用して、車両をルート又は経路の第1の点から第2の点まで走行させるのに十分な情報を含む。
一実施形態において、計画段階は、例えば、時間間隔が100ミリ秒(ms)の周期など、複数の計画周期(命令周期ともいう)で実行される。計画周期又は命令周期のそれぞれについて、計画及び制御データに基づいて1つ以上の制御命令を発する。すなわち、100msごとに、計画モジュール305は、次のルート区間又は経路区間(例えば、目標位置及びADVが目標位置に到着するのに必要な時間が含まれる)を計画する。あるいは、計画モジュール305は、具体的な速度、方向、及び/又は操舵角などを更に指定することができる。一実施形態において、計画モジュール305は、次の所定期間(例えば、5秒)のルート区間又は経路区間を計画する。計画周期のそれぞれに対し、計画モジュール305は、前の周期で計画された目標位置に基づいて、現在の周期(例えば、次の5秒)のための目標位置を計画する。次に、制御モジュール306は、現在の周期の計画及び制御データに基づいて、1つ以上の制御命令(例えば、スロットル、ブレーキ、ステアリングの制御命令)を生成する。
なお、決定モジュール304及び計画モジュール305は、集積モジュールとして一体化されてもよい。決定モジュール304/計画モジュール305は、自動運転車両の走行経路を決定するためのナビゲーションシステム又はナビゲーションシステムの機能を含んでもよい。例えば、ナビゲーションシステムは、自動運転車両の以下の経路に沿った移動を達成するための一連の速度及び進行方向を決定することができる。前記経路では、自動運転車両が最終的な目的地に通じる走行車線ベースの経路に沿って前進するとともに、感知した障害物を実質的に回避できる。目的地は、ユーザインターフェースシステム113を介したユーザ入力に従って設定することができる。ナビゲーションシステムは、自動運転車両が走行している間に走行経路を動的に更新することができる。ナビゲーションシステムは、自動運転車両のための走行経路を決定するために、GPSシステム及び一つ以上の地図からのデータ(感知モジュール302により生成されてもよいし、事前に格納又はダウンロードされてもよい)を取り入れることができる。
決定モジュール304/計画モジュール305は、更に、自動運転車両の環境における潜在的な障害物を認識、評価、回避又は他の方法で通過するための衝突防止システム又は衝突防止システムの機能を含むことができる。例えば、衝突防止システムは、制御システム111の1つ以上のサブシステムを動作させて、ステアリング動作、旋回動作、ブレーキ動作などを行うことによって、自動運転車両のナビゲーション中の変更を実現することができる。衝突防止システムは、周囲の交通パターンや道路状況などに基づいて、実行可能な障害物回避動作を自動的に判定することができる。衝突防止システムは、他のセンサシステムが、自動運転車両が方向変更して進入しようとする隣接領域における車両、建築障害物などを検出したときに、ステアリング動作を行わないように構成されることができる。衝突防止システムは、自動運転車両の乗員の安全性を最大限にするとともに、利用可能な動作を自動的に選択することができる。衝突防止システムは、自動運転車両の客室内に最も少ない加速度を発生させると予測される回避動作を選択することができる。
ルーティングモジュール307は、地図情報(例えば、道路区間情報、道路区間の車線情報、及び車線から縁石までの距離の情報など)から基準ルートを生成することができる。例えば、道路は、3つの道路区間を表すために区間又はセグメント{A、B、及びC}に分画できる。道路区間Aの3車線は、{A1、A2、及びA3}を列挙することができる。基準ルートは、基準ルートに沿った基準点を生成することによって生成される。例えば、車両の車線について、ルーティングモジュール307は、地図データ(感知モジュール302により生成されてもよいし、事前に格納又はダウンロードされてもよい)によって提供される車両の車線の2つの対向する縁石又は端点の中間点を連結することができる。異なる時点で以前に車両の車線上を走行した車両の収集されたデータ点を表す中間点及び機械学習データに基づいて、ルーティングモジュール307は、車両車線の所定の近接範囲内に収集されたデータ点のサブセットを選択し、収集されたデータ点のサブセットに応じて中間点に平滑化関数を適用することによって、基準点を計算することができる。
基準点又は車線基準点に基づいて、ルーティングモジュール307は、生成された基準線が車両車線上のADVを制御するための基準線として使用されるように、基準点を補間することによって基準線を生成することができる。いくつかの実施形態において、基準線を表す基準点テーブル及び道路区間テーブルは、ADVがADVの地理的位置及び走行方向に基づいて基準線を生成できるように、ADVにリアルタイムでダウンロードされる。例えば、一実施形態において、ADVは、前方の今後の道路区間を表す経路区間識別子によって、及び/又はADVのGPS位置に基づいて、経路区間のルーティングサービスを要求することによって基準線を生成することができる。経路区間識別子に基づいて、ルーティングサービスは、関心のある道路区間の全ての車線に対する基準点を含むADV基準点テーブルに戻ることができる。ADVは、車両車線上のADVを制御するための基準線を生成するために、経路区間のための車線に対する基準点を調べることができる。
図4Aは、いくつかの実施形態に係る感知モジュール302の一例を示すブロック図である。図4Aを参照すると、感知モジュール302は、センサ要素411及び障害物要素412を含むが、これらに限定されない。これらの要素411〜412は、ソフトウェア、ハードウェア、又はそれらの組み合わせで実現されてもよい。センサ要素411は、ADVの一つ又は複数のセンサからセンサデータを取得してもよい。例えば、センサ要素411は、一つ又は複数のセンサからのセンサデータを定期的に要求又はポーリングしてもよい(例えば、数ミリ秒、毎秒、又は、特定の他の適当な時間セグメントごとに、センサからのセンサデータを要求することができる)。もう一つの例において、センサ要素411は、一つ又は複数のセンサからの受信待ちセンサデータを、モニタリングするか、又は待機してもよい。例えば、センサ要素411は、バス、通信チャネル(有線又は無線)、電線、ワイヤ、ピン、トレースなどを連続的にモニタリングするように配置されてもよく、それによってセンサ要素411は、一つ又は複数のセンサによってセンサデータが生成される際にセンサデータをすぐに受信できる。
一実施形態において、センサは、カメラ(例えば、デジタルカメラ、ビデオカメラ、ビデオレコーダなど)又は画像をキャプチャ又は記録できる他の何らかのデバイスであってもよい。カメラによって生成され、センサ要素411によって受信されたセンサデータは、ビデオデータともいう。ビデオデータの例としては、デジタル画像(例えば、ジェイペグ(JPEG)画像)、ビデオフレーム、ムービング・ピクチャー・エクスパーツ・グループ(MPEG)データ、又は、カメラによってキャプチャされた光学画像を表すのに適した他のデータを含んでもよいが、これらに限定されない。もう一つの実施形態において、センサは、レーダユニット(例えば、図2に示したレーダユニット214)又は無線電波(例えば、RF波又は信号)を使用してADV周囲のオブジェクトの位置、範囲、角度、及び/又は、速度を確定できる何らかの他の機器であってもよい。レーダユニットによって生成されたセンサデータは、レーダデータともいう。レーダデータは、レーダユニットによって検出されたオブジェクトの位置、範囲、角度、及び/又は、速度を指すデータであってもよい。もう一つの実施形態において、センサは、LIDARユニット(例えば、図2に示したLIDARユニット215)又は光(例えば、レーザ)を使用してADV周囲のオブジェクトの位置、範囲、角度、及び/又は、速度を確定できる何らかの他の機器であってもよい。LIDARユニットによって生成されたセンサデータは、LIDARユニットによって検出されたオブジェクトの位置、範囲、角度、及び/又は、速度を指すデータであってもよい。他の実施形態において、他のタイプのセンサは、センサ要素411に提供できる他のタイプのデータを生成してもよい。環境又は地理位置/領域内のオブジェクト(例えば、歩行者、車両、バリケード、障害物、バリア、車線、標識、信号機など)の位置、範囲、角度、及び/又は、速度を検出するための任意のタイプのセンサは、いずれも本明細書で述べる実施形態、実現方法、及び/又は、例示で使用可能である。もう一つの実施形態において、センサは、GPS受信機又はユニット(例えば、図2に示したGPSユニット212)又はADVの位置(例えば、物理的又は地理的位置)を特定できる他のデバイスであってもよい。GPS受信機によって生成されるセンサデータは、GPSデータ(GPS座標ともいう)であってもよい。
一実施形態において、センサデータは、ADVが現在位置しているか又は走行している環境又は地理的領域もしくは位置に関する情報を示すことが可能である。例えば、センサデータは、オブジェクト(例えば、歩行者、車両、バリケード、障害物、バリア、車線、標識、信号機など)の位置、及び/又はレイアウトを示すことが可能である。もう一つの例において、センサデータは、環境又は地理的領域の道路条件(例えば、道路が、乾いた道路、湿った道路、平坦な道路、でこぼこ道路などであるか否か)を示すことが可能である。もう一つの例において、センサデータは、環境又は地理的領域の天気条件(例えば、温度、雨、風、雪、雹などがあるか否か)を示すことが可能である。
一実施形態において、障害物要素412は、センサ要素411によって取得又は受信されたセンサデータに基づいて、一つ又は複数の移動障害物を検出してもよい。例えば、障害物要素412は、カメラによってキャプチャされた画像又はビデオ(例えば、ビデオデータ)を解析することによって、ADVが位置している/走行している地理的領域内における移動障害物を識別可能である。もう一つの例において、障害物要素412は、レーダデータを解析することによって、ADVが位置している/走行している地理的領域内における移動障害物を識別可能である。もう一つの例において、障害物要素412は、LIDARデータを解析することによって、ADVが位置している/走行している地理的領域内における移動障害物を識別可能である。
一実施形態において、障害物要素412は、様々な技術、方法、アルゴリズム、動作などを使用することによって、センサデータに基づいて移動障害物を識別可能である。例えば、障害物要素412は、画像又はビデオ処理/解析技術又はアルゴリズムを使用することによって、ビデオデータに基づいて移動障害物を識別可能である。もう一つの例において、障害物要素412は、様々なオブジェクト検出技術又はアルゴリズムを使用することによって、レーダ及び/又はLIDARデータに基づいて移動障害物を識別可能である。記述した例、実現方法及び/又は実施形態において、様々なタイプのセンサデータ及び/又は様々な関数、技術、方法、アルゴリズム、操作などによって、移動障害物を識別可能である。例えば、障害物要素412は、機械学習、人工知能、統計モデル、ニューラルネットワーク、クラスタリング技術などを使用可能である。
図4Bは、いくつかの実施形態に係る予測モジュール303の一例を示すブロック図である。図4Bを参照すると、予測モジュール303は、経路要素431と、変動要素432と、領域要素433とを含むが、これらに限定されない。これらの構成要素431〜433は、ソフトウェア、ハードウェア、又はそれらの組み合わせで実現されてもよい。基準線ジェネレータ405は、ADVのための基準線を生成するように構成される。上記のように、感知モジュール302(例えば、図3A、3B及び4Aに示すように)は、ADVが位置している地理的領域内の移動障害物を検出可能である。例えば、感知モジュール302は、ADVが位置している/走行している街道もしくは道路上で歩く歩行者を検出可能である。もう一つの例において、感知モジュール302は、ADVが位置している/走行している街道もしくは道路上の自転車乗用者を検出可能である。上記のように、感知モジュール302は、一つ又は複数のセンサ(例えば、カメラ、レーダユニット、LIDARユニットなど)によって生成されたセンサデータ(例えば、ビデオデータ、レーダデータ、LIDARデータなど)に基づいて移動障害物を検出可能である。
一実施形態において、経路要素431は、移動障害物の経路を決定することができる。上記のように、感知モジュール302は、センサデータに基づいてADVが位置しているか又は走行している地理的領域内の移動障害物(例えば、歩行者、自転車乗用者など)を検出可能である。経路要素431は、センサデータに基づいて移動障害物が進行又は採用可能な経路を決定することができる。移動障害物が進行可能な経路は、予測経路、推定経路、可能な経路などともいう。
一実施形態において、経路要素431は、ADVが位置しているか又は走行している地理的領域内の1組又は複数の予測点を判定することによって、移動障害物の予測経路を決定することができる。例えば、経路要素431は、カルマンフィルタを使用して1組又は複数の予測点を特定することができる。カルマンフィルタは、経時的に観測された一連の測定結果によって、未知変数の推定又は予測を生成することができる。カルマンフィルタは、それぞれのタイムフレームの変数にわたる同時確率分布も推定することができる。カルマンフィルタは、線形二次推定(LQE)ともいう。本発明は、カルマンフィルタに言及し得るが、他の実施形態において、様々な他のフィルタ、アルゴリズム、方法、関数、操作、プロセスなどによって1組又は複数の予測点を特定可能である。
一実施形態において、経路要素431は、一つ又は複数の多項式関数(例えば、5次多項式、3次多項式など)を定義及び/又は生成することによって、移動障害物の予測経路を表現又はモデル化することができる。例えば、多項式関数は、X−Y平面上の予測点を含む線(例えば、予測点が多項式関数によって定義される線に位置し、線が予測する経路を表す)を定義してもよい。更に、様々な境界又は制約に基づいて、一つ又は複数の多項式関数を生成、確定又は計算可能である。境界又は制約は、図3Aに示した制約313の一部として事前構成及び/又は格納されてもよい。経路要素431によって使用される多項式関数は、図3Aに示した多項式関数314の一部として事前構成及び/又は格納されてもよい。
一実施形態において、領域要素433は、ADVの予測経路(経路要素431によって確定される)に基づいて、予測領域を確定してもよい。領域要素433は、以下で更に詳細に説明するように、一つ又は複数の予測点に基づいて、予測領域を確定してもよい。例えば、領域要素433は、予測経路を囲む領域を確定してもよい。上記のように、移動障害物のモーションは、予測不可能又は不確実なものである可能性がある。例えば、地理的領域(ADVが位置しているか又は走行している領域)内で歩く歩行者は、加速(例えば、もっと速く歩く)、減速(例えば、もっとゆっくりと歩く)、又は、方向を変える(例えば、左に曲がり、右に曲がり、旋回など)可能性がある。
一実施形態において、領域要素433は、変動要素432によって確定された複数の周囲領域に基づいて、予測領域を確定してもよい。変動要素432は、以下で更に詳細に説明するように、経路要素431によって特定(例えば、取得、計算、生成など)された予測点ごとについて、周囲領域を確定可能である。例えば、変動要素432は、経路要素431によって生成された予測点ごとの周囲領域を確定可能である。それぞれの周囲領域は、対応する予測点からの閾値標準偏差に基づいて確定可能である。例えば、周囲領域のサイズ(例えば、長さ、幅など)は、対応する予測点からの3つの標準偏差に等しくなってもよい。周囲領域は、X−シグマ(X−σ)領域ともいい、ただし、Xは対応する予測点からの標準偏差の数である。例えば、周囲領域のサイズ(例えば、長さ、幅など)が、対応する予測点からの3つの標準偏差に等しい場合、周囲領域は3−シグマ(3−σ)領域ともいう。3−σ領域は、移動障害物が当該3−σ領域の境界外に移動しない可能性(例えば、確率)が99.7%である領域であってもよい。いくつかの実施形態において、異なる数の標準偏差を使用すると、周囲領域のサイズは異なる可能性がある。例えば、サイズが対応する予測点からの2つの標準偏差に等しい周囲領域(2−シグマ(2−σ)領域ともいう)は、サイズが対応する予測点からの3つの標準偏差に等しい周囲領域(例えば、3−σ領域)よりも小さくなってもよい。2−σ領域は、移動障害物が当該2−σ領域の境界外に移動しない可能性(例えば、確率)が95%である領域であってもよい。
一実施形態において、変動要素432によって確定された周囲領域は、形状(例えば、幾何学的形状、規則形状、不規則形状など)を有してもよい。例えば、予測点の周囲領域は、円形の形状を有してもよい(例えば、円形でもよい)。もう一つの例において、予測点の周囲領域は、楕円体の形状を有してもよい(例えば、楕円形でもよい)。図面及び本発明は、円及び/又は楕円を指すことがあるが、他の実施形態において他の形状を使用してもよい。
一実施形態において、領域要素433は、変動要素432によって確定された一つ又は複数の周囲領域に基づいて、予測領域の一つ又は複数の境界点を確定してもよい。例えば、領域要素433は、周囲領域ごとに一つ又は複数の境界点を確定してもよい。境界点を連結して予測領域を形成する場合、周囲領域の最も外側のエッジが境界点内に含まれる可能性がある。領域要素433は、境界点に基づいて、予測領域を確定してもよい。例えば、予測領域は、境界点によって囲まれてもよい。もう一つの例において、境界点は、予測領域のエッジ又は境界を定義可能である。いくつかの実施形態において、予測経路は、予測領域内に位置してもよい。例えば、予測経路は、予測領域の中央領域又は中央エリアに位置してもよい。もう一つの例において、予測領域は、予測経路を含むか、又は、囲むことができる。
いくつかの実施形態において、予測領域は、移動障害物が移動する可能性がある可能な位置を含んでもよい。例えば、移動障害物は、歩行者である可能性がある。歩行者は地理的領域を移動/行進して通過する際に予想外に動くことがある。予測領域を確定するための周囲領域の閾値標準偏差に基づいて、予測領域には歩行者が移動する可能性がある可能な位置の割合が含まれてもよい。例えば、3−シグマ(3−σ)周囲領域を使用して予測領域を確定する場合、予測領域は、99.7%の歩行者が移動する可能性がある可能な位置を含んでもよい。したがって、ADVが予測領域を回避すると、ADVは99.7%の回避確率(例えば、移動障害物に当たらない)を有する可能性がある。これにより、ADVは、移動障害物の移動の不確実性又は予測不可能性を考慮、計画又は準備することができる。
図4Cは、いくつかの実施形態に係る計画モジュール305の一例を示すブロック図である。図4Cを参照すると、計画モジュール305は、セグメンタ401と、多項式関数ジェネレータ402と、サンプル点ジェネレータ403と、経路ジェネレータ404と、基準線ジェネレータ405とを含むが、これらに限定されない。これらのモジュール401〜405は、ソフトウェア、ハードウェア、又はそれらの組み合わせで実現されてもよい。基準線ジェネレータ405は、ADVのための基準線を生成するように構成される。上記のように、安定な軌跡を生成するために、基準線は、道路の中央線などのようなADVのガイド経路であってもよい。基準線ジェネレータ405は、地図及びルート情報311(図3A及び3Bに示す)に基づいて、基準線を生成可能である。上記のように、地図及びルート情報311は、事前に存在する地図データ(例えば、事前にダウンロード又は格納された地図データ)であってもよい。一実施形態において、基準線ジェネレータ405は、予測モジュール303によって確定(例えば、生成、計算、演算など)された予測領域及び/又は予測経路に基づいて、基準線を生成可能である。基準線ジェネレータ405は、予測領域及び/又は予測経路を回避する基準線を生成可能である。例えば、X−Y平面で示される場合、基準線は、予測領域及び/又は予測経路を横切ったり交差したりしない可能性がある。
セグメンタ401は、基準線を複数の基準線セグメントに分割するように構成される。基準線は、基準線セグメントに分割されて、基準線の個別のセグメント又は区間を生成してもよい。多項式関数ジェネレータ402は、基準線セグメントごとに、多項式関数を定義及び生成して、対応する基準線セグメントを表す又はモデル化するように構成されてもよい。サンプル点ジェネレータ403は、基準線に基づいて、サンプル点を生成可能である。例えば、以下で更に詳細に説明するように、サンプル点ジェネレータ403は、基準線に概して従うことができる1組又は複数組のサンプル点(例えば、一つ又は複数のサンプル点のグループ)を生成することができる。一実施形態において、サンプル点ジェネレータ40は、予測モジュール303によって確定(例えば、生成、計算、演算など)された予測領域及び/又は予測経路に基づいて、1組又は複数組のサンプル点を生成することができる。サンプル点ジェネレータ403は、予測領域及び/又は予測経路を回避するサンプル点の集合を生成することができる。例えば、X−Y平面で示される場合、サンプル点の集合は、予測領域内に位置しないか、及び/又は、予測経路に位置しなくてもよい。
多項式関数ジェネレータ402は、複数組のサンプル点を互いに連結してもよい。例えば、以下で更に詳細に説明するように、多項式関数ジェネレータ402は、1組のサンプル点のうちのそれぞれのサンプル点と、次の組の隣接するサンプル点のうちのそれぞれのサンプル点との間で、一つ又は複数のセグメント(例えば、連結)を生成してもよい。多項式関数ジェネレータ402は、サンプル点間のセグメントを表すために使用可能な一つ又は複数の多項式を更に生成、計算又は確定することができる。例えば、多項式関数ジェネレータ402は、2つのサンプル点間のセグメントごとについて、多項式関数を生成、確定、又は計算などすることができる。様々な境界又は制約に基づいて、セグメントを表す多項式関数を生成、確定又は計算することができる。境界又は制約は、図3Aに示した制約313の一部として事前構成及び/又は格納してもよい。計画モジュール305によって使用される(例えば、多項式関数ジェネレータ402によって使用される)多項式関数は、図3Aに示した多項式関数314の一部として、事前構成及び/又は格納されてもよい。
以下で更に詳細に説明するように、経路ジェネレータ404は、サンプル点間のセグメントに基づいて、ADVの経路を決定することができる。例えば、経路ジェネレータ404は、それぞれのセグメントのコストを確定することができる。コストは、セグメントが基準線からどれだけ離れているか、セグメント内のサンプル点が基準線からどれだけ離れているか、セグメント又はセグメント内のサンプル点の曲率変化率、セグメントの曲率、サンプル点に位置する可能性がある障害物(例えば、車両、歩行者、障害物など)などのような、様々な要因又はパラメータを含むが、これらに限定されない。コストは、重みともいう。経路ジェネレータ404は、最も低い総コスト(最も低い総重み)を有する経路のセグメントを識別又は選択して形成してもよい。
図5Aは、いくつかの実施形態に係る例示的なグラフ500Aを示す図面である。グラフ500Aは、図5AのX軸及びY軸によって示されるようにデカルト座標系を使用してX−Y平面を表すことができる。例えば、X−Y座標を使用してグラフ500A上の点の位置を表すことができる。もう一つの例において、一つ又は複数の式/関数(例えば、線形関数、3次多項式、5次多項式など)を使用して、グラフ500A上の線及び/又は領域を表すことができる。上記のように、ADV(例えば、図3A、図3B及び図4Aに示した感知モジュール302)は、ADVが位置している地理的領域内の移動障害物を検出することができる。例えば、ADVは、センサデータに基づいて、ADVが位置している/走行している街道もしくは道路(例えば、地理的領域)で歩いている/走っている歩行者を検出することができる。図5Aに示すように、ADV(例えば、図3Bに示した予測モジュール302、図4Bに示した経路要素431など)は、センサデータに基づいて移動障害物の進行可能又は採用可能な経路を確定することができる。移動障害物の進行可能な経路は、予測経路、推定経路、可能な経路などともいう。移動障害物(例えば、歩行者)の予測経路は、線505で表される。線505(例えば、移動障害物の予測経路)は、点511、513、515、517及び519を含む(例えば、点511、513、515、517、519は、505に位置するか又は505上にある)。点511、513、515、517及び519は、予測点ともいう。
一実施形態において、上記のように、ADVは、カルマンフィルタを使用して線505(例えば、移動障害物の予測経路)及び/又は点511、513、515、517及び519(例えば、予測点)を確定することができる。本発明は、カルマンフィルタに言及し得るが、他の実施形態において、様々な他のフィルタ、アルゴリズム、方法、関数、操作、プロセスなどを使用して、1組/複数の予測点を確定することができる。線505は、上記のように、線形関数、多項式関数(例えば、3次多項式、5次多項式など)のような、関数/式によって表すことができる。
図5Bは、いくつかの実施形態に係る例示的なグラフ500Bを示す図面である。上記のように、グラフ500Bは、図5BのX軸及びY軸によって示されるように、デカルト座標系を使用してX−Y平面を表すことができる。なお、上記のように、ADVは、ADVが位置する地理的領域(例えば、道路、街道など)内の移動障害物(例えば、歩行者、自転車乗用者など)を検出することができる。図5Bに示すように、ADVは、センサデータに基づいて、移動障害物の進行可能又は採用可能な経路を確定することができる。移動障害物の進行可能な経路は、予測経路、推定経路、可能な経路などともいう。移動障害物(例えば、歩行者)の予測経路は、線505によって表される。線505(例えば、移動障害物の予測経路)は、点511、513、515、517及び519(例えば、点511、513、515、517及び519は、505に位置するか又は505上にある)を含む。点511、513、515、517及び519は、予測点ともいう。
一実施形態において、ADV(例えば、図3Bに示した予測モジュール302、図4Bに示した変動要素432など)は、点511、513、515、515、517及び519に基づいて(例えば、一つ又は複数の予測点に基づいて)、周囲領域523、525、527及び529(例えば、図5Bの楕円によって表される)を確定することができる。例えば、ADVは、点513について周囲領域523を確定し、点515について周囲領域525を確定し、点517について周囲領域527を確定し、点519について周囲領域529を確定することができる。
周囲領域523、525、527及び529は、楕円で示されているが、他の実施形態において、周囲領域523、525、527及び529は、他の形状を有してもよい。例えば、予測点の周囲領域は、円形の形状を有してもよい(例えば、円であってもよい)。もう一つの例において、予測点の周囲領域は、楕円形状を有してもよい(例えば、楕円であってもよい)。図面及び本発明は、円及び/又は楕円に言及し得るが、他の実施形態において、他の形状を使用してもよい。いくつかの実施形態において、周囲領域523、525、527及び529の長さ及び幅は、移動障害物の全経路(線505によって表される)に基づくことができる。例えば、線505のX軸に沿う距離がY軸に沿う距離よりも大きい(例えば、線の長さが線の幅よりも大きい)。したがって、周囲領域523、525、527及び529の長さ(例えば、楕円の長さ)が周囲領域523、525、527及び529の幅(例えば、楕円の幅)よりも大きくしてもよい。もう一つの例において、線が45°の角度に接近するか又は45°に近い場合(例えば、線の長さが線の幅と実質的に等しい)、周囲領域の長さと幅は等しくてもよい(例えば、周囲領域は、楕円形でなく、円形でもよい)。
一実施形態において、対応する予測点からの閾値標準偏差に基づいて、周囲領域523、525、527及び529のそれぞれを確定することができる。例えば、周囲領域517の長さ及び幅は、点517からの標準偏差の閾値の数と等しくてもよい。上記のように、周囲領域523、525、527及び529は、X−シグマ(X−σ)領域ともいい、ただし、Xは、対応する予測点からの標準偏差の数(例えば、3−シグマ(3−σ)領域は、周囲領域の長さ及び幅が点からの3つの標準偏差であることを示す)である。いくつかの実施形態において、周囲領域523、525、527及び529は、3−シグマ(3−σ)領域であってもよい。3−σ領域は、移動障害物が当該3−σ領域の境界外に移動しない可能性(例えば、確率)が99.7%である領域である。他の実施形態において、周囲領域523、525、527及び529は、異なるX−シグマ領域であってもよい。例えば、周囲領域523、525、527及び529は、2−シグマ(2−σ)領域であってもよい。もう一つの例において、周囲領域523は、3−シグマ(3−σ)領域であってもよく、周囲領域529は、2−シグマ(2−σ)領域であってもよい。
図5Cは、いくつかの実施形態に係る例示的なグラフ500Cを示す図面である。上記のように、グラフ500Cは、図5CのX軸及びY軸によって示されるように、デカルト座標系を使用してX−Y平面を表すことができる。なお、上記のように、ADVは、ADVが位置する地理的領域(例えば、道路、街道など)内の移動障害物(例えば、歩行者、自転車乗用者など)を検出することができる。図5Cに示すように、ADVは、センサデータに基づいて、移動障害物の進行可能又は採用可能な経路を確定することができる。移動障害物の進行可能な経路は、予測経路、推定経路、可能な経路などともいう。移動障害物(例えば、歩行者)の予測経路は、線505によって表される。線505(例えば、移動障害物の予測経路)は、点511、513、515、517及び519を含む(例えば、点511、513、515、517及び519は505に位置するか又は505上にある)。点511、513、515、517及び519は、予測点ともいう。同様に、図5Cに示すように、ADVは、周囲領域523、525、527及び529を確定することができる。周囲領域523、525、527、529のそれぞれは、上記のように、対応する予測点からの閾値標準偏差に基づいて確定することができる。例えば、周囲領域517の長さ及び幅は、点517からの標準偏差の閾値の数と等しくてもよい。
一実施形態において、ADV(例えば、図3Bに示した予測モジュール303、図4Bに示した領域要素433など)は、変動要素432によって確定された一つ又は複数の周囲領域に基づいて、予測領域の一つ又は複数の境界点を確定することができる。例えば、ADVは、周囲領域523について境界点531、532を確定し、周囲領域525について境界点533、534を確定し、周囲領域527について境界点535、536を確定し、周囲領域529について境界点537、538を確定することができる。いくつかの実施形態において、以下で更に詳細に説明するように、境界点531〜538は、境界点が連結されて領域(例えば、予測領域)を形成する場合、周囲領域523、525、527及び529の最も外側のエッジが境界点内に含まれるように確定されることができる。
図5Dは、いくつかの実施形態に係る例示的なグラフ500Dを示す図面である。上記のように、グラフ500Dは、図5DのX軸及びY軸によって示されるように、デカルト座標系を使用してX−Y平面を表すことができる。なお、上記のように、ADVは、ADVが位置する地理的領域(例えば、道路、街道など)内の移動障害物(例えば、歩行者、自転車乗用者など)を検出することができる。ADVは、センサデータに基づいて、移動障害物の進行可能又は採用可能な経路を確定することができる。移動障害物の進行可能な経路は、予測経路、推定経路、可能な経路などともいう。ADVは、周囲領域523、525、527及び529を更に確定することができる。ADVは、周囲領域523、525、527及び529に基づいて境界点531〜538を更に確定することができる。
一実施形態において、領域要素433は、境界点531〜538に基づいて予測領域550(斜線領域で示す)を確定することができる。図に示すように、境界点531〜538が連結されて予測領域550を形成する。例えば、点511は、境界点532、531に連結され、境界点531は、境界点533に連結され、境界点533は、境界点535に連結され、境界点535は、境界点537に連結され、境界点532は、境界点534に連結され、境界点534は、境界点536に連結され、境界点536は、境界点538に連結され、境界点537は、境界点538に連結されてもよい。連結された点(例えば、点511及び境界点531〜538)は、予測領域550を形成してもよい。境界点531〜538は、予測領域550内に包含又は含まれてもよい。例えば、境界点531〜538は、予測領域550のエッジ又は境界周囲に位置してもよい。図5A〜図5Cに示した予測経路(例えば、線505)は、予測領域550内に位置してもよい。
いくつかの実施形態において、予測領域550は、移動障害物が移動する可能性のある可能な位置を包含又は含んでもよい。例えば、移動障害物は、予測経路(例えば、図5A〜図5Cに示した線505)に沿って進行可能な歩行者であってもよい。移動する障害物(例えば、歩行者)は地理的領域を移動/行進して通過する際に予想外に動くことがあるため、移動する障害物が移動可能性のある可能な位置を含む領域を確定することは、有用である可能性がある。予測領域を確定するための周囲領域の閾値標準偏差に基づいて、予測領域には、歩行者が移動する可能性のある可能な位置の割合が含まれてもよい。例えば、それぞれの周囲領域523、525、527及び529が3−シグマ(3−σ)周囲領域である場合、予測領域は、歩行者が移動する可能性のある可能な位置の99.7%を含む可能性がある。したがって、ADVが予測領域550を回避すると、ADVは、99.7%の回避可能性(例えば、移動障害物に当たらない)を有する可能性がある。これにより、ADVは、移動障害物の移動の不確実性又は予測不可能性を考慮、計画又は準備することができる。これにより、ADVが移動障害物との衝突、ぶつかり、又は衝撃を避ける可能性を増加させることで、ADVをもっと安全に動作させることができる。
図6Aは、いくつかの実施形態に係る環境600A(例えば、地理的領域/位置)内を走行(例えば、移動、運転など)するADV605の一例を示す図面である。環境600Aは、道路610(例えば、街道、車線、幹線道路、無料道路、高速道路など)及び車両615を含む。道路610は、車線611及び車線612の2つの車線を有する。2つの車線は、車線613によって分割され、道路の境界は、車線616、617によって限定される。環境600Aは、更に、歩行者630(例えば、移動障害物)を含み、歩行者630は移動して(例えば、歩く、走るなど)環境600Aを通過している。道路610、車線611、612、車線613、616、617、ADV605の位置、歩行者630の位置、及び/又は、図6Aに示された他の要素は、図6AのX軸及びY軸に示されるように、デカルト座標系を使用して表されてもよい。例えば、ADV605の位置は、X−Y座標で表されてもよい。
上記のように、ADV605は、センサデータに基づいて(例えば、ビデオデータ、レーダデータ、LIDARデータなどに基づいて)、歩行者630を検出及び/又は識別することができる。ADV605は、上記のように、歩行者630の予測経路を確定することができる。ADV605は、上記のように、更に、予測経路の点に基づいて複数の周囲領域を確定することができる。ADV605は、上記のように、周囲領域について複数の境界点を確定し、複数の境界点に基づいて予測領域635を確定することができる。
いくつかの実施形態において、予測領域635は、歩行者630が移動する可能性のある可能な位置を包含又は含んでもよい。歩行者630が移動/行進して環境600Aを通過する時に、予想外に動く可能性があるため、移動障害物が移動する可能性のある可能な位置を含む領域を確定することは、有用である可能性がある。3−シグマ(3−σ)周囲領域を使用して予測領域635を確定する場合、予測領域635は、歩行者630が移動可能性のある可能な位置の99.7%を含む可能性がある。したがって、ADVが予測領域635を回避すると、ADVは歩行者630を回避する確率が99.7%である(例えば、衝突しない)。これにより、ADVが移動障害物との衝突、ぶつかり、又は衝撃を避ける可能性を増加させることで、ADVをもっと安全に動作させることができる。
図6Bは、いくつかの実施形態に係る環境600B(例えば、地理的領域/位置)で走行(例えば、移動、運転など)するADV605の一例を示す図面である。環境600Bは、道路610、車線613、616、617及び車両615を含む。上記のように、基準線ジェネレータ405(図4に示す)は、基準線を生成可能である。基準線は、ADV605の道路610の中央線のようなガイド経路であってもよい。同様に、上記のように、セグメンタ401(図4に示す)は、基準線を基準線セグメントに分割(例えば、区画、分離など)することができる。サンプル点ジェネレータ403は、上記のように、サンプル点650(図6Bの黒点で示す)を生成することができる。サンプル点650は、サンプル点のグループ又は組にグループ化されてもよい。図6Bに示すように、サンプル点607は、3組のサンプル点にグループ化される。道路610、サンプル点650、基準線630及び/又は図6Bに示された他の要素は、図6BのX軸及びY軸に示されるように、デカルト座標系を使用して表すことができる。例えば、ADV605の位置は、X−Y座標で示されてもよい。もう一つの例において、サンプル点650は、X−Y座標で示されてもよい。他の実施形態において、異なる数の基準線セグメント、異なる数のサンプル点、異なる数の組、組に含まれる異なる数のサンプル点、異なる位置のサンプル点を使用してもよい。
一実施形態において、一つ又は複数の多項式関数を使用して、基準線を表すことができる。例えば、多項式関数ジェネレータ402は、基準線セグメントを表すことができる多項式関数を生成することができる。多項式関数ジェネレータ402は、基準線セグメントごとに一つの多項式関数を生成することができる。5次関数ジェネレータ402は、基準線セグメントごとについて5次多項式関数θ(s)を生成することができる。一実施形態において、それぞれの5次多項式関数は、対応する基準線セグメントの開始基準点の方向を表す。5次多項式関数の導関数(例えば、1次導関数)は、基準線セグメントの開始基準点の曲率を表し、K=dshi−ta/dsである。5次多項式関数の2次導関数は、曲率変化又は曲率変化率を表し、dK/dsである。
各区分的螺旋経路は、開始方向(θ0)、開始曲率(dθ0)、開始曲率の導関数(d2θ0)、終了方向(θ1)、終了曲率(dθ1)、終了曲率の導関数(d2θ1)、及び、開始点と終了点との間の曲線長さ(Δs)からなる7つのパラメータによって決定される。一実施形態において、多項式関数は、5次多項式関数であってもよい。5次多項式関数は、式(1)(例えば、公式、関数など)によって以下のように定義されることができる。
また、式(1)は、以下を満たす。
もう一つの実施形態において、多項式関数は、3次多項式であってもよい。一つの3次多項式は、式(8)によって以下のように定義されることができる。
また、3次多項式は、式(2)〜(7)に示された同じ条件を満たす(5次多項式関数に関して上で示された)。
上記の制約に基づいて、すべての基準線セグメントのすべての多項式関数に対して最適化を行うことによって、ゼロセグメント長における基準線セグメント(i)を表す多項式関数の出力が、対応する基準線セグメント(i)の開始基準点における方向と同様又は類似するようになる。多項式関数の1次導関数は、基準線セグメント(i)の開始基準点における曲率と同様又は類似すべきである。多項式関数の2次導関数は、基準線セグメント(i)の開始基準点における曲率変化率と同様又は類似すべきである。同様に、全セグメント長における、基準線セグメント(i)を表す多項式関数の出力は、次の基準線セグメント(i+1)の開始基準点における方向と同様又は類似すべきである。前記開始基準点は、現在の基準線セグメント(i)の終了基準点である。多項式関数の1次導関数は、次の基準線セグメント(i+1)の開始基準点における曲率と同様又は類似すべきである。多項式関数の2次導関数は、次の基準線セグメント(i+1)の開始基準点における曲率変化率と同様又は類似すべきである。
例えば、基準線セグメント501について、対応する多項式関数θ(0)の出力は、基準線セグメントの開始点の方向又は角度を表す。θ(Δs0)は、基準線セグメントの終了点の方向を表し、ここで、基準線セグメントの終了点は、次の基準線セグメントの開始点でもある。θ(0)の1次導関数は、基準線セグメントの開始点(x0, y0)における曲率を表し、θ(0)の2次導関数は、基準線セグメントの終了点における曲率変化率を表す。θ(s0)の1次導関数は、基準線セグメントの終了点の曲率を表し、θ(s0)の2次導関数は、基準線セグメントの終了点の曲率変化率を表す。
θ(s)=as5+bs4+cs3+ds2+es+f (9)
5次多項式関数の1次導関数は、経路の点における曲率を表す。
dθ=5as4+4bs3+3cs2+2ds+e (10)
5次多項式関数の2次導関数は、経路の点における曲率変化率を表す。
d2θ=20as3+12bs2+6cs+2d (11)
特定の螺旋経路又は基準線セグメントについて、開始点及び終了点の2つの点に関わり、ここで、各点の方向、曲率及び曲率変化率は、それぞれ上記の3つの式によって表すことができる。したがって、それぞれの螺旋経路又は基準線セグメントについて、合計で6つの式がある。これらの6つの式は、対応する5次多項式関数の係数a、b、c、d、e、fを決定するために使用可能である。
螺旋経路がデカルト空間内の連続基準点間の曲線を表す場合、螺旋経路曲線の長さとデカルト空間内の位置との間で、接続又はブリッジを構築する必要がある。{θi,dθi,d2θi,θi+1,dθi+1,d2θi+1,Δs}によって定義される螺旋経路θi(s)、及び、経路開始点pi=(xi,yi)が特定されると、点p=(x,y)の座標及び特定の如何なるs=[0,Δs]を確定する必要がある。一実施形態において、特定の点の座標は、以下の式(例えば、公式、関数など)によって取得されることができる。
s=Δsである場合、曲線θi及び開始座標pi=(xi,yi)を特定して、終了座標pi+1を取得する。螺旋経路の関数の総出力が最小限になると同時に、上記の1組の制約を満たすように関数を最適化する。なお、最適化から導き出された終点の座標は、初期基準線の対応する座標に関して所定の範囲(例えば、許容誤差、誤差許容範囲)内にあることが要求される。即ち、それぞれの最適化された点と初期基準線の対応する点との間の差が、所定の閾値内にあるべきである。
いくつかの実施形態において、経路ジェネレータ404は、動的プログラミングアルゴリズム、関数、動作などによって、ADV605の経路を決定することができる。例えば、経路ジェネレータ404は、Dijkstraアルゴリズムを使用して、セグメントのコスト(例えば、重み)に基づいて、ADV605のコストが最も低い経路を確定することができる。ADVの経路は、最も左側のサンプル点の組と中間のサンプル点の組との間の9つのセグメントのうちの一つ、及び、中間サンプル点の組と最も右側のサンプル点の組との間の9つのセグメントのうちの一つを含んでもよい。複数の経路が同一の最低のコストを有する場合、経路ジェネレータ404は、様々な要因に基づいて複数の経路のうちの一つを選択することが可能である。例えば、経路ジェネレータ404は、基準線に最も近い経路(例えば、基準線からの逸脱が最も少ない経路)を選択することが可能である。
図7は、いくつかの実施形態に係る自動運転車両(例えば、ADV)の経路を確定するためのプロセス700の一例を示すフローチャートである。プロセス700は、処理ロジックによって実行可能であり、処理ロジックはソフトウェア、ハードウェア、又はそれらの組み合わせを含んでもよい。プロセス700は、処理ロジックによって実行可能であり、処理ロジックは、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、プロセッサ、処理装置、中央処理装置(CPU)、システムオンチップ(SoC)など)、ソフトウェア(例えば、処理装置で運行/実行される命令)、ファームウェア(例えば、マイクロコード)、又は、それらの組み合わせを含んでもよい。いくつかの実施形態において、プロセス700は、図3B、図4A、図4B及び図4Cに示された感知モジュール302、予測モジュール303及び計画モジュール305のうちの一つ又は複数によって実行可能である。図7を参照すると、ブロック705において、処理ロジックは、移動障害物を識別及び/又は検出する。例えば、処理ロジックは、センサデータに基づいて、移動障害物(例えば歩行者)を検出することができる。ブロック710において、処理ロジックは、移動障害物の予測経路を確定することができる。例えば、処理ロジックは、センサデータに基づいて予測経路を表す一つ又は複数の点(例えば、予測点)を確定することができる。
ブロック715において、処理ロジックは、予測点の周囲領域を確定することができる。例えば、上記のように、処理ロジックは、閾値標準偏差(例えば、3つの標準偏差)を確定し、閾値標準偏差に基づいて周囲領域を確定することができる。ブロック720において、処理ロジックは、周囲領域に基づいて、境界点を確定することができる。例えば、処理ロジックは、境界点が連結されると、周囲領域の最も外側のエージが境界点内に含まれるように境界点を確定することができる。ブロック725において、処理ロジックは、境界点に基づいて予測領域を確定することができる。例えば、上記のように、処理ロジックは、境界点を連結することによって、予測領域を形成することができる。
ブロック730において、処理ロジックは、予測領域に基づいてADVの経路を決定することができる。例えば、上記のように、処理ロジックは、予測領域を回避する基準線を確定することができる。処理ロジックは、基準線に基づいてサンプル点を確定することができる。上記のように、サンプル点は、予測領域を回避することもできる。上記のように、処理ロジックは、更にサンプル点に基づいて複数のセグメントを確定することができる。上記のように、処理ロジックは、更に、複数のセグメントに基づいてADVの経路を決定することができる。ブロック735において、処理ロジックは、経路に従ってADVを制御することができる。例えば、処理ロジックは、ADVを経路に従って移動及び/又は走行させることができる。
なお、以上に例示及び説明された構成要素の一部又は全ては、ソフトウェア、ハードウェア、又はそれらの組み合わせで実現されることが可能である。例えば、このような構成要素は、永続性記憶装置にインストールされるとともに記憶されるソフトウェアとして実現されてもよく、前記ソフトウェアは、本願にわたって記載されたプロセス又は動作を実現するように、プロセッサ(図示せず)によってメモリにロードして実行されてもよい。あるいは、このような構成要素は、集積回路(例えば、特定用途向け集積回路又はASIC)、デジタルシグナルプロセッサ(DSP)、又はフィールドプログラマブルゲートアレイ(FPGA)のような専用ハードウェアにプログラミング又は埋め込まれた実行可能なコードとして実現されてもよく、前記実行可能なコードは、アプリケーションからの対応するドライバー及び/又はオペレーティングシステムを介してアクセスすることができる。また、このような構成要素は、ソフトウェア構成要素が一つ以上の特定の命令によってアクセス可能な命令セットの一部として、プロセッサ又はプロセッサコアにおける特定のハードウェアロジックとして実現されることができる。
図11は、本発明の一実施形態と共に使用可能なデータ処理システムの一例を示すブロック図である。例えば、システム1500は、前記プロセス又は方法のいずれかを実行する前記データ処理システムのいずれか(例えば、図1の感知及び計画システム110、又はサーバ103〜104のいずれか)を表すことができる。システム1500は、いくつかの異なる構成要素を含んでもよい。これらの構成要素は、集積回路(IC)、集積回路の一部、ディスクリート型電子デバイス、又は回路基板(例えば、コンピュータシステムのマザーボード若しくはアドインカード)に適するその他のモジュールとして実現されることができ、又は、他の形態でコンピュータシステムのシャーシ内に組み込まれる構成要素として実現されることが可能である。
なお、システム1500は、コンピュータシステムのいくつかの構成要素の高レベルビューを示すことを意図している。しかしながら、特定の実施例において付加的構成要素が存在してもよく、また、その他の実施例において示された構成要素を異なる配置にすることが可能であると理解すべきである。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレヤー、パーソナルデジタルアシスタント(PDA)、スマートウォッチ、パーソナルコミュニケーター、ゲーム装置、ネットワークルーター又はハブ、無線アクセスポイント(AP)又はリピーター、セット・トップボックス、又はそれらの組み合わせを表すことができる。また、単一の機械又はシステムのみが示されたが、「機械」又は「システム」という用語は、本明細書で説明されるいずれか一種以上の方法を実現するための、単独で又は共同で1つ(又は複数)の命令セットを実行する機械又はシステムのいずれかの組み合わせも含まれると解釈されるものとする。
一実施形態において、システム1500は、バス又はインターコネクト1510を介して接続される、プロセッサ1501と、メモリ1503と、装置1505〜1508とを含む。プロセッサ1501は、単一のプロセッサコア又は複数のプロセッサコアが含まれる単一のプロセッサ又は複数のプロセッサを表すことができる。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)などのような、一つ以上の汎用プロセッサを表すことができる。より具体的には、プロセッサ1501は、複雑命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又はその他の命令セットを実行するプロセッサ、又は命令セットの組み合わせを実行するプロセッサであってもよい。プロセッサ1501は更に、例えば、特定用途向け集積回路(ASIC)、セルラー又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、グラフィックプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組込みプロセッサ、又は命令を処理可能な任意の他のタイプのロジックのような、一つ以上の専用プロセッサであってもよい。
プロセッサ1501は、超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよく、前記システムの様々な構成要素と通信するための主処理ユニット及び中央ハブとして機能することができる。このようなプロセッサは、システムオンチップ(SoC)として実現されることができる。プロセッサ1501は、本明細書で説明される動作及びステップを実行するための命令を実行するように構成される。システム1500は、更に所望によるグラフィックサブシステム1504と通信するグラフィックインターフェースを含むことができ、グラフィックサブシステム1504は、表示コントローラ、グラフィックプロセッサ、及び/又は表示装置を含むことができる。
プロセッサ1501は、メモリ1503と通信することができ、メモリ1503は、一実施形態では、所定量のシステムメモリを提供するための複数のメモリ装置によって実現されることができる。メモリ1503は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、又はその他のタイプの記憶装置のような、一つ以上の揮発性記憶(又はメモリ)装置を含むことができる。メモリ1503は、プロセッサ1501又はその他の任意の装置により実行される命令シーケンスを含む情報を記憶することができる。例えば、様々なオペレーティングシステム、デバイスドライバ、ファームウェア(例えば、ベーシックインプット/アウトプットシステム又はBIOS)、及び/又はアプリケーションの実行可能なコード及び/又はデータは、メモリ1503にロードされ、プロセッサ1501により実行されることができる。オペレーティングシステムは、例えば、ロボットオペレーティングシステム(ROS)、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は、コンピュータアクセス可能な記憶媒体1509(機械可読記憶媒体又はコンピュータ可読媒体ともいう)を含むことができ、前記コンピュータアクセス可能な記憶媒体1509には、本明細書で記載されたいずれか一種以上の方法又は機能を具現化する一つ以上の命令セット又はソフトウェア(例えば、モジュール、ユニット、及び/又はロジック1528)が記憶されている。処理モジュール/ユニット/ロジック1528は、計画モジュール305、制御モジュール306などの前記構成要素のいずれかを表すことができる。処理モジュール/ユニット/ロジック1528は、更に、データ処理システム1500、メモリ1503、及びプロセッサ1501による実行中に、メモリ1503内及び/又はプロセッサ1501内に完全的に又は少なくとも部分的に存在してもよく、データ処理システム1500、メモリ1503、及びプロセッサ1501も機械アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528は、更に、ネットワークを介して、ネットワークインターフェース装置1505を経由して送受信可能である。
コンピュータ可読記憶媒体1509は、以上に説明されたいくつかのソフトウェア機能を永続的に記憶するために用いることができる。コンピュータ可読記憶媒体1509は、例示的な実施形態において単一の媒体として示されるが、「コンピュータ可読記憶媒体」という用語は、前記一つ以上の命令セットが記憶される単一の媒体又は複数の媒体(例えば、集中型又は分散型データベース、及び/又は関連するキャッシュとサーバ)を含むと解釈されるものとする。「コンピュータ可読記憶媒体」という用語は、更に、命令セットを記憶又は符号化できる任意の媒体を含むと解釈されるものであり、前記命令セットは機械により実行され、本発明のいずれか一種以上の方法を前記機械に実行させるためのものである。それゆえに、「コンピュータ可読記憶媒体」という用語は、ソリッドステートメモリ、光学媒体及び磁気媒体、又はその他の任意の非一時的な機械可読媒体を含むが、それらに限定されないと解釈されるものとする。
本明細書に記載の処理モジュール/ユニット/ロジック1528、構成要素及びその他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はハードウェア構成要素(例えば、ASICS、FPGA、DSP又は類似の装置)の機能に統合されてもよい。また、処理モジュール/ユニット/ロジック1528は、ハードウェア装置におけるファームウェア又は機能性回路として実現されてもよい。また、処理モジュール/ユニット/ロジック1528は、ハードウェア装置とソフトウェア構成要素の任意の組み合わせで実現されてもよい。
なお、システム1500は、データ処理システムの様々な構成要素を有するものとして示されているが、構成要素を相互接続する任意の特定のアーキテクチャ又は方式を表すことを意図するものではなく、そのような詳細は、本発明の実施形態とは密接な関係がない。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、及び/又はその他のデータ処理システムも、本発明の実施形態と共に使用することができることを理解されたい。
前記具体的な説明の一部は、既に、コンピュータメモリにおけるデータビットに対する演算のアルゴリズムと記号表現で示される。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。本明細書では、一般的に、アルゴリズムは、所望の結果につながるセルフコンシステントシーケンスと考えられる。これらの動作は、物理量の物理的処置が必要なものである。
しかしながら、念頭に置くべきは、これらの用語及び類似の用語の全ては、適切な物理量に関連付けられるものであり、これらの量を標識しやすくするためのものに過ぎない。以上の説明で他に明示的に記載されていない限り、本明細書全体を通じて理解するべきは、添付された特許請求の範囲に記載するもののような用語を利用する論述とは、コンピュータシステム、又は類似の電子計算装置の動作またはプロセスを指し、前記コンピュータシステムまたは電子計算装置は、コンピュータシステムのレジスタ及びメモリにおける物理(電子)量として示されるデータを制御するとともに、前記データをコンピュータシステムメモリ又はレジスタ又はこのようなその他の情報記憶装置、送信又はディスプレイデバイスにおいて同様に物理量として示される別のデータに変換する。
本発明の実施形態は、本明細書の動作を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的なコンピュータ可読媒体に記憶される。機械可読媒体は、機械(例えば、コンピュータ)により読み取り可能な形式で情報を記憶するための任意のメカニズムを含む。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置)を含む。
上述した図面において説明されたプロセス又は方法は、ハードウェア(例えば、回路、専用ロジックなど)、ソフトウェア(例えば、非一時的なコンピュータ可読媒体に具現化されるもの)、又は両方の組み合わせを含む処理ロジックにより実行されることができる。前記プロセス又は方法は、以上で特定の順序に応じて説明されたが、前記動作の一部が異なる順序で実行されてもよいことを理解されたい。また、一部の動作は、順番ではなく並行して実行されてもよい。
本発明の実施形態は、いずれの特定のプログラミング言語を参照することなく記載されている。理解すべきは、本明細書に記載の本発明の実施形態の教示を実現するために、様々なプログラミング言語を使用することができる。
前記明細書において、本発明の実施形態は、既にその具体的な例示的な実施形態を参照しながら記載された。明らかなように、添付された特許請求の範囲に記載された本発明のより広い趣旨及び範囲を逸脱しない限り、本発明に対して様々な変更を行うことができる。それゆえに、本明細書及び図面は、限定的な意味でなく、例示的な意味で理解されるべきである。