(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための最良の形態】
【0015】
以下、説明の詳細を参照しながら本願の様々な実施形態及び態様を説明し、図面には、上記様々な実施形態が示される。以下の説明及び図面は、本願を例示するためのものであり、限定するものとして解釈されるべきではない。本願の様々な実施形態を全面的に理解するために、多くの特定の詳細を説明する。ところが、いくつかの場合には、本願の実施形態に対する簡単な説明を提供するために、周知又は従来技術の詳細について説明していない。
本明細書において、「一実施形態」又は「実施形態」とは、当該実施形態に組み合わせて説明された特定の特徴、構造又は特性が本願の少なくとも一実施形態に含まれてもよいと意味する。「一実施形態では」という表現は、本明細書全体において同一の実施形態を指すとは限らない。
【0016】
複数の実施形態によれば、ADVは、障害物の軌跡によりADVに対してナビゲーションの調整が請求されるか否かを確定するための障害物処理モジュールを含む。障害物とは、ADVをナビゲーションする際にADVの感知及び計画モジュールにより考慮される必要がある物体(一般的に、移動している物体)である。障害物処理モジュールは、単一のADVに対して複数の障害物を処理することができる。ADVの感知及び計画モジュールは、障害物に従い、障害物の軌跡線路のそれぞれからADVまでの距離を確定する。障害物の軌跡線路は、例えば100個の点で示されることができる。ADVの感知及び計画モジュールは、ADVに対してナビゲーション参照線路を生成することができ、当該ナビゲーション参照線路がADV計画のルートに示される。ADV参照線路は、例えば1000個の点で示される。障害物の軌跡の点のそれぞれに対して、感知及び計画モジュールは、ADV参照線路に最も近い点を確定することができ、それは、障害物の軌跡点からADV参照線路までの最小距離を示す。数学用語で説明すれば、障害物の軌跡線路の各点がADV参照線路の点へ投影される。障害物の軌跡線路の各点について、障害物の軌跡線路の点と、ADV参照線路における点への当該点の投影との間の距離を確定する。仮に、障害物がその軌跡線路に従い且つADVがそのナビゲーション参照線路に従うと、障害物の軌跡の点とADV参照線路における点への障害物の軌跡の点の投影との間の距離の最小値は、障害物がADVに最も近接している可能性がある場合に対応する。障害物がADVの最小閾値の距離内にある可能性があれば、障害物を回避するように、ADVに対してナビゲーションの調整を行わなければならない可能性がある。
【0017】
一方面によれば、障害物がADVとほぼ同じ方向に進行しているか否かを確定し、又は、障害物がADVとほぼ反対方向に進行しているか否かを確定する方法とする。任意の場合に、ADVの感知及び計画モジュールは、障害物の軌跡、ADVのナビゲーション参照線路を確定することができ、且つ、障害物がその軌跡線路に従うとともにADVがそのナビゲーション参照線路に従う際に、障害物とADVとが隔てられる最小距離を有効的に確定する。障害物とADVとが同じ方向又は反対方向に進行していない場合、感知及び計画システムは、本明細書に記述された障害回避処理以外の他の障害回避処理を実行してもよい。
【0018】
実施形態において、非一時的なコンピュータ可読媒体には実行可能な指令が記憶され、これらの指令が処理システムによって実行されると、任意の上記機能を実行することができる。
【0019】
他の一実施形態において、実行可能な指令を利用してプログラミングされたメモリに接続した処理システムは、これらの指令が処理システムに実行される際に任意の上記機能を実行することができる。実施形態において、処理システムには、少なくとも1つのハードウェアプロセッサが含まれている。
【0020】
図1は、本願の一実施形態に係る自動運転車のネットワーク構成を示すブロック図である。
図1に示すように、ネットワーク構成100は、ネットワーク102を介して1つ以上のサーバ103〜104に通信可能に接続される自動運転車101を含む。1つの自動運転車が示されているが、複数の自動運転車が、ネットワーク102を介して、互いに接続され、及び/又はサーバ103〜104に接続されてもよい。ネットワーク102は、任意のタイプのネットワークであってもよく、例えば、有線又は無線のローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク、又はこれらの組み合わせが挙げられる。サーバ103〜104は、任意のタイプのサーバ又はサーバクラスタであってもよく、例えば、ネットワーク又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ、又はこれらの組み合わせが挙げられる。サーバ103〜104は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図及び関心地点(MPOI)サーバ、又は位置サーバなどであってもよい。
【0021】
自動運転車とは、自動運転モードになるように構成可能な車両を示し、上記自動運転モードにおいて、車両が運転手からの入力がほとんど又は全くない場合に環境を通過するようにナビゲートされる。このような自動運転車は、車両動作環境に関連する情報を検出するように構成された1つ以上のセンサを有するセンサシステムを含んでもよい。上記車両及びその関連コントローラは、検出された情報を使用して上記環境を通過するようにナビゲートする。自動運転車101は、手動モード、全自動運転モード、又は部分自動運転モードで動作することができる。
【0022】
一実施形態では、自動運転車101は、感知及び計画システム110、車両制御システム111、無線通信システム112、ユーザインターフェースシステム113、インフォテインメントシステム114、及びセンサシステム115を含むが、これらに限定されない。自動運転車101は更に、エンジン、車輪、ステアリングホイール、変速機などの従来の車両に含まれるいくつかの共通構成要素を含んでもよい。上記構成要素は、車両制御システム111及び/又は感知及び計画システム110によって様々な通信信号及び/又はコマンドで制御されることができ、これらの様々な通信信号及び/又はコマンドは、例えば加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンドなどを含む。
【0023】
構成要素110〜115は、インターコネクト、バス、ネットワーク、又はこれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素110〜115は、コントローラエリアネットワーク(CAN)バスを介して互いに通信可能に接続することができる。CANバスは、ホストコンピュータなしのアプリケーションでマイクロコントローラ及びデバイスが相互に通信できるように設計された車両バス規格である。これは、もともと自動車内の多重電気配線のために設計されたメッセージベースのプロトコルであるが、他の多くの環境でも使用される。
【0024】
ここで、
図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は、スチルカメラ及び/又はビデオカメラであってもよい。カメラは、例えば、回転及び/又は傾斜のプラットフォームにカメラを取り付けることによって、機械的に移動されてもよい。
【0025】
センサシステム115は、ソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ、及びオーディオセンサ(例えば、マイクロフォン)などの他のセンサを更に含むことができる。オーディオセンサは、自動運転車の周囲の環境から音を取得するように構成されてもよい。ステアリングセンサは、ステアリングホイール、車両の車輪、又はそれらの組み合わせの操舵角を検知するように構成されてもよい。スロットルセンサ及びブレーキセンサそれぞれは、車両のスロットル位置及びブレーキ位置を検出する。場合によっては、スロットルセンサとブレーキセンサを統合型スロットル/ブレーキセンサとして一体化することができる。
【0026】
一実施形態では、車両制御システム111は、ステアリングユニット201、スロットルユニット202(加速ユニットともいう)、及びブレーキユニット203を含むが、これらに限定されない。ステアリングユニット201は、車両の方向又は進行方向を調整するために用いられる。スロットルユニット202は、モータ又はエンジンの速度を制御するために用いられ、モータ又はエンジンの速度によって更に車両の速度及び加速度を制御する。ブレーキユニット203は、摩擦を提供することによって車両の車輪又はタイヤを減速させることで、車両を減速させる。なお、
図2に示す構成要素は、ハードウェア、ソフトウェア、又はこれらの組み合わせで実現されることができる。
【0027】
図1を再び参照して、無線通信システム112は、自動運転車101と、装置、センサ、他の車両などの外部システムとの間の通信を可能にするものである。例えば、無線通信システム112は、1つ以上の装置と無線で直接通信し、又は通信ネットワークを介して無線で通信することができ、例えば、ネットワーク102を介してサーバ103〜104と通信することができる。無線通信システム112は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク(WLAN)を使用することができ、例えば、WiFi(登録商標)を使用して別の構成要素又はシステムと通信することができる。無線通信システム112は、例えば、赤外線リンク、ブルートゥース(登録商標)などを使用して、装置(例えば、乗客のモバイルデバイス、表示装置、車両101内のスピーカ)と直接通信することができる。ユーザインターフェースシステム113は、例えば、キーワード、タッチスクリーン表示装置、マイクロホン、及びスピーカなどを含む、車両101内に実現された周辺装置の部分であってもよい。
【0028】
特に自動運転モードで動作するときに、自動運転車101の機能の一部又は全部は、感知及び計画システム110によって制御又は管理することができる。感知及び計画システム110は、必要なハードウェア(例えば、プロセッサ、メモリ、記憶装置)及びソフトウェア(例えば、オペレーティングシステム、計画及びルーティングプログラム)を備え、センサシステム115、制御システム111、無線通信システム112、及び/又はユーザインターフェースシステム113から情報を受信し、受信された情報を処理し、出発地から目的地までのルート又は経路を計画し、その後、計画及び制御情報に基づいて車両101を運転するようにする。あるいは、感知及び計画システム110を車両制御システム111と統合することができる。
【0029】
例えば、乗客としてのユーザは、例えば、ユーザインターフェースを介して、行程の出発地及び目的地を指定することができる。感知及び計画システム110は、行程関連データを取得する。例えば、感知及び計画システム110は、MPOIサーバから位置及びルート情報を取得することができ、上記MPOIサーバはサーバ103〜104の一部であってもよい。位置サーバは位置サービスを提供し、MPOIサーバは地図サービス及び特定の位置のPOIを提供する。あるいは、そのような位置及びMPOI情報は、感知及び計画システム110の永続性記憶装置にローカルキャッシュされることができる。
【0030】
自動運転車101がルートに沿って移動するとき、感知及び計画システム110は交通情報システム又はサーバ(TIS)からリアルタイム交通情報を得ることもできる。なお、サーバ103〜104は第三者エンティティによって動作されてもよい。あるいは、サーバ103〜104の機能は、感知及び計画システム110と統合することができる。リアルタイム交通情報、MPOI情報、及び位置情報、並びにセンサシステム115によって検出又は検知されたリアルタイムローカル環境データ(例えば、障害物、オブジェクト、周辺車両)に基づいて、感知及び計画システム110は、指定された目的地までに安全かつ効率的に到着するように、最適なルートを計画し、計画されたルートに従って、例えば、制御システム111によって車両101を運転するようにする。計画されたルートには、ナビゲーション参照線路が含まれてもよい。
【0031】
サーバ103は、様々なクライアントに対してデータ解析サービスを行うためのデータ解析システムであってもよい。一実施形態では、データ解析システム103は、データコレクタ121と、機械学習エンジン122とを含む。データコレクタ121は、様々な車両(自動運転車又は人間の運転手によって運転される一般車両)から運転統計データ123を収集する。運転統計データ123は、発行された運転コマンド(例えば、スロットル、ブレーキ、ステアリングコマンド)及び車両のセンサによって異なるタイミングで取得された車両の応答(例えば、速度、加速度、減速度、方向)を示す情報を含む。運転統計データ123は、異なるタイミングにおける運転環境を記述する情報、例えば、ルート(出発地位置及び目的地位置を含む)、MPOI、道路状況、天気状況などを更に含んでもよい。
【0032】
機械学習エンジン122は、運転統計データ123に基づいて、様々な目的で一組のルール、アルゴリズム及び/又は予測モデル124を生成又はトレーニングする。一実施形態において、例えば、アルゴリズム124には、経路計画及び速度計画を最適化するための最適化方法が含まれてもよい。当該最適化方法には、経路セグメント又は時間帯を示すコスト関数及び多項式関数のセットが含まれてもよい。これらのファンクションは、円滑経路をリアルタイムで生成するために自動運転車にアップデートされることができる。
【0033】
図3A及び
図3Bは、一実施形態による自動運転車とともに使用される感知及び計画システムの例示を示すブロック図である。システム300は、
図1における自動運転車101の一部として実現され、感知及び計画システム110と、車両制御システム111と、センサシステム115とを含むことができるが、それらに限定されない。
図3A及び
図3Bを参照し、感知及び計画システム110は、位置決めモジュール301と、感知モジュール302と、予測モジュール303と、決定モジュール304と、計画モジュール305と、制御モジュール306と、ルーティングモジュール(routing module)307と、障害物処理モジュール308とを含むが、それらに限定されない。
【0034】
モジュール301〜308の一部又はすべてのモジュールは、ソフトウェア、ハードウェア又はその組み合わせによって実現されてもよい。例えば、これらのモジュールが永続性記憶装置352にインストールされ、メモリ351にロードされ、1つ又は複数のプロセッサ(図示せず)によって実行されてもよい。注意すべきなのは、これらのモジュールの一部又は全部のモジュールは、
図2の車両制御システム111の一部又は全部のモジュールに通信可能に接続されてもよく、あるいは、集積されてもよい。モジュール301〜308における複数のモジュールが集積モジュールとして集積されてもよい。例えば、決定モジュール304と計画モジュール305とが単一モジュールとして集積されてもよく、且つ、ルーティングモジュール307と障害物処理モジュール308とが単一モジュールとして集積されてもよい。。
【0035】
位置決めモジュール301は、自動運転車300の現在位置(例えば、GPSユニット212を利用し)を確定し、ユーザのトリップ又はルートに関する如何なるデータを管理する。位置決めモジュール301(マップ及びルートモジュールとも呼ばれる)は、ユーザのトリップ又はルートに関する如何なるデータを管理する。ユーザは、例えばユーザインターフェースを介して登録し、且つトリップの初期位置及び目的地を指定することができる。位置決めモジュール301は、トリップに関するデータ、例えばマップ及びルート情報311を取得するように、自動運転車300の他の部品と通信する。例えば、位置決めモジュール301は、位置サーバとマップ及びPOI(MPOI)サーバから位置及びルート情報を取得することができる。位置サーバは、位置サービスを提供し、かつ、MPOIサーバは、マップサービス及びある位置のPOIを提供することによって、マップ及びルート情報311の一部としてキャッシュさてもよい。自動運転車300がルートに沿って移動する時に、位置決めモジュール301は、交通情報システム又はサーバからリアルタイム交通情報を取得することができる。
【0036】
センサシステム115に提供されたセンサデータ、及び位置決めモジュール301に取得られた位置決め情報に基づいて、感知モジュール302は、周辺環境に対する感知を確定する。感知情報は、一般運転手が自分で運転している車両周辺から感知されるものを示すことができる。感知情報は、例えば対象形式で現される車線配置(例えば、直線車線又は曲線車線)、交通信号機、他の車両の相対位置、歩行者、建築物、横断歩道又は他の交通関連標識(例えば、停止標識、譲り標識)などを含んでもよい。対象は、ADV101のナビゲーション経路に対する障害物であってもよい。
【0037】
感知モジュール302は、コンピュータビジョンシステム又はコンピュータビジョンシステムの機能を含んでもよく、自動運転車の環境における対象及び/又は特徴を認識するように、1つ又は複数のカメラによりキャプチャされた画像を処理及び解析することに用いられる。上記対象には、交通信号機、車道の境界線、他の車両、歩行者及び/又は障害物等が含まれてもよい。コンピュータビジョンシステムは、対象認識アルゴリズム、ビデオトラッキング及び他のコンピュータビジョン技術を使用することができる。複数の実施形態においては、コンピュータビジョンシステムは、環境のマップを描き、対象を追跡し、かつ対象の速度を推定することなどができる。感知モジュール302は、レーダー及び/又はLIDARを例としての他のセンサにより提供された他のセンサデータに基づいて対象を検出することもできる。
【0038】
各対象に対し、予測モジュール303は、当該場合における対象の行為を予測する。ある時点で感知された運転環境の感知データに基づいて、マップ及びルート情報311及び交通ルール312のセットによって、上記予測を実行する。例えば、対象が反対方向の車両であり、かつ現在の運転環境に交差点があると、予測モジュール303は、車両が直線に前向きに移動するか、折れ曲がるか、を予測する。交差点に交通信号機がないと感知データが示す場合、予測モジュール303は、車両が交差点に進入する前にフルストップしなければならないことを予測する可能性がある。車両が現在に左折専用車線又は右折専用車線にあると感知データが示す場合、予測モジュール303は、それぞれの場合、車両が左折するか、右折するか、を予測してもよい。
【0039】
各対象に対し、決定モジュール304は、対象を如何に処理するかの決定を行う。例えば、特定の対象(例えば、交差ルートにおける他の車両)及び対象を記述するメタデータ(例えば、速度、方向、操舵角)に対して、決定モジュール304は、対象と如何に遇う(例えば、追い越し、道譲り、停止、通過)ことを決定する。決定モジュール304は、交通ルール、又は永続性記憶装置352に記憶可能な1セットのルールである運転ルール312に基づいて、このような決定をすることができる。
【0040】
感知された対象のそれぞれに対する决定に基づいて、計画モジュール305は、自動運転車のために経路又はルート及び運転パラメータ(例えば、距離、速度及び/又は操舵角)を計画する。感知及び計画システム110は、ナビゲーション経路又はルートに基づいて、自動運転車に対してナビゲーション参照線路を生成することができる。即ち、所定の対象に対して、決定モジュール304は当該対象に対して何をするかを決定し、計画モジュール305はどのようにするかを決定する。例えば、所定の対象に対して、決定モジュール304は、前記対象を追い越すことを決定することができ、計画モジュール305は、前記対象の左側から追い越すか、右側から追い越すか、を決定する。計画及び制御データは、計画モジュール305によって生成され、車両300が次の移動周期(例えば、次のルート/経路セグメント)において如何に移動するかを記述する情報を含む。例えば、計画及び制御データは、車両300が30マイル/時間(mph)の速度で10メートル移動し、次に25mphの速度で右車線に変更するように示すことができる。
【0041】
計画及び制御データに基づいて、制御モジュール306は、計画及び制御データにより限定されたルート又は経路に従って、車両制御システム111へ適切なコマンド又は信号を送信することによって、自動運転車を制御し運転するようにする。前記ルート又は経路に沿って違う時点で適切な車両設置又は運転パラメータ(例えば、アクセル、ブレーキ及びステアリングコマンド)を使用して車両を第1点から第2点まで運転するように、計画及び制御データは十分な情報を含む。
【0042】
一実施形態において、計画段階は、複数の計画周期(コマンド周期とも呼ばれる)に実行し、例えば、100ミリ秒(ms)おきの周期に実行する。計画周期又はコマンド周期のそれぞれに対して、計画及び制御データに基づいて、1つ又は複数の制御コマンドを発出する。即ち、100msごとに、計画モジュール305は、次のルートセグメント又は経路セグメントを計画し、例えば、目標位置及びADVの目標位置に到達するのに必要な時間が含まれる。その代わり、計画モジュール305は、さらに、具体的な速度、方向及び/又は操舵角等を指定することができる。一実施形態において、計画モジュール305は、次の所定の時間帯(例えば、5秒)に対してルートセグメント又は経路セグメントを計画する。計画周期のそれぞれに対して、計画モジュール305は、前の周期において計画された目標位置に基づいて、現在の周期(例えば、次の5秒)に対する目標位置を計画する。制御モジュール306は、次に、現在の周期の計画及び制御データに基づいて、1つ又は複数の制御コマンド(例えば、アクセル、ブレーキ、ステアリングの制御コマンド)を生成する。
【0043】
注意すべきなのは、決定モジュール304及び計画モジュール305は、集積モジュールに一体化されてもよい。決定モジュール304/計画モジュール305には、自動運転車の運転経路を決定するために、ナビゲーションシステム又はナビゲーションシステムの機能が含まれてもよい。例えば、ナビゲーションシステムは、自動運転車が経路に沿って移動することを実現するための一連の速度及び進行方向を決定することができ、前記経路において、最終目的地に至る車線に基づく経路に沿って自動運転車を進行させるとともに、感知された障害物を大体避けることができる。目的地は、ユーザインターフェースシステム113により実現されたユーザ入力に基づいて設定されることができる。ナビゲーションシステムは、自動運転車が挙動していると同時に走行経路を動的に更新することができる。ナビゲーションシステムは、自動運転車用の走行経路を決定するように、GPSシステム及び1つ又は複数のマップからのデータを合併することができる。
【0044】
決定モジュール304/計画モジュール305は、自動運転車環境における潜在障害物を、認識・評価・回避又はその他の方式で迂回するように、衝突回避システム又は衝突回避システムの機能を更に含んでもよい。例えば、衝突回避システムは、制御システム111の中の1つ又は複数のサブシステムを動作してターン操縦、ステアリング操縦、ブレーキ操縦等をすることによって、自動運転車のナビゲーションにおける変更を実現することができる。衝突回避システムは、周辺の交通モード、道路状況等に基づいて、障害物を回避可能な操縦を自動的に決定することができる。衝突回避システムは、自動運転車がターンして入る隣接領域における車両、建築障害物等がその他のセンサシステムにより検出された際にターン操縦しないように配置されることができる。衝突回避システムは、使用可能でありかつ自動運転車の乗員の安全性を最大化する操縦を自動的に選択することができる。衝突回避システムは、自動運転車の乗員室内で最小限の加速度を出現させることが予測された回避操縦を選択することができる。
【0045】
ルーティングモジュール307は、例えばマップ情報(例えば、ルートセグメント、ルートセグメントの車線及び車線の縁石からの距離の情報)から参照ルートを生成することができる。例えば、道路は、三つのルートセグメントを示すように、{A、BとC}のセクター又はセグメントに区画される。ルートセグメントAの三つの車線は、{A1、A2とA3}と挙げられる。参照線路に沿って参照点を生成することによって、ナビゲーション参照線路又はナビゲーション参照ルートを生成する。例えば、車線に対して、ルーティングモジュール307は、マップデータによって提供された車線における二つの対向の縁石又は道路沿線の中点を連結することができる。前に異なる時点で車線上に走行している車両の収集されたデータ点を示す中点及び機械学習データに基づいて、ルーティングモジュール307は、車線の所定の近接範囲内で收集されたデータ点のサブセットを選択し、收集されたデータ点のサブセットによって中点に円滑関数を適用することによって、参照点を算出することができる。
【0046】
参照点又は車線参照点に基づいて、ルーティングモジュール307は、参照点に対して補間処理を行うことによって、参照線路を生成し、車線上のADVを制御するための参照線路として生成された参照線路を用いられるようにする。複数の実施形態において、ADVがADVの地理位置及び運転方向に基づいて参照線路を生成するように、参照線路を代表する参照点テーブル及びルートセグメントテーブルがADVにリアルタイムでダウンロードされることができる。例えば、一実施形態において、ADVは、前方に来かかるルートセグメントを示す経路セグメントの識別コード、及び/又はADVに基づくGPS位置を利用して、経路セグメントに用いられるルーティングサービスを要求することにより、参照線路を生成することができる。経路セグメントの識別コードに基づいて、ルーティングサービスは、ADVの参照点テーブルに戻ることができる。前記ADVの参照点テーブルには、注目ルートセグメントに用いられるすべての車線の参照点が含まれている。ADVは、経路セグメントの車線の参照点を調べて、車線上のADVを制御するための参照線路を生成することができる。
【0047】
障害物処理モジュール308は、自動運転車のナビゲーション経路における障害物について自動運転車のナビゲーションの調整が請求されるか否かを確定することができる。必要な場合、感知及び計画システム110は、適切なナビゲーション変更を決定することができる。障害物処理モジュール308は、感知及び計画システム110により感知された物体又は障害物のそれぞれに対して、軌跡線路を生成することができる。実施形態において、障害物の軌跡の線路は、点の集合(例えば、110個の点)で示す。上記ように、計画モジュール305は、自動運転車のためにナビゲーション参照線路を生成することができる。ナビゲーション参照線路は、点の集合(例えば、1000個の点)で示す。障害物処理モジュール308は、障害物の軌跡線路中における点のそれぞれに対して、ナビゲーション参照線路上において障害物の軌跡の点に離れる最小距離を有する点を決定することができる。数学用語で説明すれば、障害物処理モジュール308は、障害物の軌跡線路の点のそれぞれを自動運転車のナビゲーション線路上へ投影したのに近似することを行う。「投影したのに近似する」というのは、ナビゲーション線路が不連続であり、且つナビゲーション線路が点の集合で示されるからである。よって、障害物の軌跡上における、ナビゲーション参照線路の点集合における単一の点に離れる最小距離を有する点が、障害物の軌跡の点のナビゲーション参照線路上への投影に近似している。障害物は、車両の自動運転時、即ち、障害物の軌跡の点がナビゲーション参照線路点上へ投影した距離の値が最も小さい時に最も近接している可能性がある。当該最小値が閾値より小さいと、計画モジュール305は、自動運転車のナビゲーションを調整して障害物を回避するよう必要となる可能性がある。
【0048】
上記ように、ルート又はルーティングモジュール307は、ユーザのトリップ又はルートに関する如何なるデータを管理する。ADVのユーザは、出発位置及び目的地位置を指定してトリップに関するデータを取得する。トリップに関するデータには、ルートセグメント及びルートセグメントの参照線路又は参照点が含まれる。例えば、ルートマップ情報311に基づいて、ルートモジュール307は、ルート又はルートセグメントテーブル及び参照点テーブルを生成する。参照点は、ルートセグメントテーブルにおけるルートセグメント及び/又は車線に関する。参照点は、ADVを制御するための1つ又は複数の参照線路を形成するように補間される。参照点は、ルートセグメント及び/又はルートセグメントの具体車線に限られても良い。
【0049】
例えば、ルートセグメントテーブルは、ルートセグメントA〜Dの前の車線及び次の車線が含まれるように、名称と値のペアにしてもよい。例えば、車線1を有するルートセグメントA〜Dについて、ルートセグメントテーブルは{(A1,B1),(B1,C1),(C1,D1)}であってもよい。参照点テーブルには、ルートセグメント車線に用いられるx−yの座標形式の参照点、例えば{(A1,(x1,y1)),(B1,(x2,y2)),(C1,(x3,y3)),(D1,(x4,y4))}が含まれてもよく、ここで、A1〜D1は、ルートセグメントA〜Dの車線1を示し、且つ(x1,y1)〜(x4,y4)は、相応する現実世界における座標である。一実施形態において、ルートセグメント及び/又は車線は、所定の長さ、例えば約200メートルのルートセグメント/車線で区画されている。他の実施形態において、道路の曲率を例とする道路条件によって、ルートセグメント及び/又は車線は、長さ可変な段/車線で区画されている。複数の実施形態において、ルートセグメント及び/又は車線のそれぞれには、若干の参照点が含まれてもよい。複数の実施形態において、参照点については、例えば、緯度と経度のような他の座標系に転換されてもよい。
【0050】
複数の実施形態において、参照点について、相対座標系における、例えば基点−横変位(SL)の座標に転換されてもい。基点−横変位の座標系は、固定の参照点を参照して参照線路に従う座標系である。例えば、(S,L)=(1,0)という座標は、0メートルの横変位を有する参照線路上における基点(即ち、参照点)から1メートル前を示すことができる。(S,L)=(2,1)という参照点は、参照線路に沿う固定の参照点から2メートル前、且つ、参照線路から1メートルの横変位を有すること、例えば、左側に1メートル変位したことを示すことができる。
【0051】
一実施形態において、決定モジュール304は、ルーティングモジュール307に提供された参照線路とともに、ADVにより感知されたADVの周辺の障害物及び/又は交通情報に基づいて、初期経路配置ファイルを生成する。初期経路配置ファイルは、経路/速度配置ファイル313の一部であってもよく、前記初期経路配置ファイルは、永続性記憶装置352に記憶されることができる。初期経路配置ファイルは、参照線路に沿って点を選択することで生成されてもよい。点のそれぞれについて、他の点が一定に保持される場合、決定モジュール304は、前記対象と如何に遇うかのに関する1つ又は複数の障害物決定に基づいて、当該点を参照線路の左側又は右側へ移動(例えば、候補移動)する。前記候補移動は、候補経路に対して動的計画を使用することで反復的に実行され、ただし、
図3Aにおけるコスト関数315の一部であるコスト関数を使用して最小経路コストを有する候補経路を検索することで、初期経路配置ファイルを生成する。コスト関数の例示として、ルート経路の曲率、ADVから感知された障害物までの距離及びADVから参照線路までの距離という項目に基づくコストが含まれる。一実施形態において、生成された初期経路配置ファイルには基点−横変位図が含まれ、前記基点−横変位図は、SL図/ST
図314の一部とするように、永続性記憶装置352に記憶されてもよい。
【0052】
一実施形態において、決定モジュール304は、生成された初期経路配置ファイル(経路/速度配置ファイル313の一部である)に基づいて、初期速度配置ファイルを生成する。初期速度配置ファイルは、特定の時点でADVの最適な速度を制御することを示す。初期経路配置ファイルと類似するように、動的計画を使用して異なる時点での候補速度を反復し、ただし、ADVにより感知された障害物によって、コスト関数(
図3Aのコスト関数315の一部である)に基づいて、最小速度コストを有する候補速度(例えば、加速又は減速)を検索する。初期速度配置ファイルは、ADVが障害物を追い越すべきか、回避すべきかを決定し、さらに、障害物の左側へ走行すべきか、右側へ走行すべきかを決定する。一実施形態において、初期速度配置ファイルには、基点−時間(ST)図(SL図/ST
図314の一部である)が含まれている。基点−時間図は、走行の距離と時間との関係を示す。
【0053】
一実施形態において、計画モジュール305は、障害物決定及び/又は人為的障害に基づいて、初期経路配置ファイルを改めて算出することで、計画モジュール305により前記障害の幾何学的空間が検索されることを禁止する。例えば、初期速度配置ファイルによって左側から障害物に掠れることが確定されたと、計画モジュール305は、ADVに対する右側から障害物に掠れる計算を防止するように、障害物の右側に障害(障害物の形式で)を設置することができる。一実施形態において、二次計画(QP)を使用して経路コスト関数(コスト関数315の一部である)に対して最適化を行うことで、初期経路配置ファイルを改めて算出する。一実施形態において、改めて算出された初期経路配置ファイルには、基点−横変位図(SL図/ST
図314の一部である)が含まれている。
【0054】
一実施形態において、計画モジュール305は、二次計画(QP)を使用して初期速度配置ファイル改めて算出することで、速度コスト関数(コスト関数315の一部である)に対して最適化を行う。禁じされた幾つかの速度をQPオプティマイザが検索することを禁止するように、類似する速度障害制約を追加することができる。一実施形態において、改めて算出された初期速度配置ファイルには、基点−時間図(SL図/ST
図314の一部である)が含まれている。
【0055】
注意すべきなのは、前文に示されたとともに記述された一部又は全部の部品は、ソフトウェア、ハードウェア又はその組み合わせで実現されることができる。例えば、このような部品は、永続性記憶装置にインストールされるとともに記憶されたソフトウェアとして実現されてもよく、前記ソフトウェアは、本出願にわたって記載のプロセス又は操作を実施するように、プロセッサ(図示せず)でメモリにロードして実行されてもよい。あるいは、このような部品は、専用ハードウェア(例えば、集積回路(例えば特定用途向け集積回路又はASIC)、デジタル信号プロセッサ(DSP)、又はフィールドプログラマブルゲートアレイ(FPGA))にプログラミングされ又は嵌め込みされた実行可能なコードとして実現されてもよく、前記実行可能なコードは、対応するドライバープログラム及び/又はオペレーティングシステムによってアプリケーションからアクセスされてもよい。なお、このような部品は、プロセッサ又はプロセッサコアにおける特定のハードウェアロジックとして実現されてもよく、ソフトウェア部品が一つ以上の特定コマンドによってアクセス可能なコマンドセットの一部とする。
【0056】
図4は、一実施形態による決定及び計画プロセスの例示を示すブロック図である。
図5Aは、一実施形態による決定モジュールの例示を示すブロック図である。
図5Bは、一実施形態による計画モジュールの例示を示すブロック図である。
図4を参照すれば、決定及び計画プロセス400には、ルーティングモジュール307と、障害物処理モジュール308(ルーティングモジュール307と集積可能)と、位置決め/感知データ401と、経路決定プロセス403と、速度決定プロセス405と、経路計画プロセス407と、速度計画プロセス409と、アグリゲーター411と、軌跡計算器413が含まれている。
【0057】
経路決定プロセス403及び速度決定プロセス405は、
図5Aにおける決定モジュール304の経路決定モジュール501及び速度決定モジュール503によってそれぞれ実行される。
図4及び
図5Aを参照すれば、経路決定プロセス403又は経路決定モジュール501には、経路状態装置505と、経路交通ルール507と、基点−横変位図生成器509が含まれている。経路決定プロセス403又は経路決定モジュール501は、経路計画プロセス407及び速度計画プロセス409の初期制約として、動的計画を使用して初期経路配置ファイルを生成する。一実施形態において、経路状態装置505は、クルーズ状態、車線変更状態及び待機状態との少なくとも三種の状態を含む。経路状態装置505は、この前の計画結果及び重要な情報を提供し、例えば、ADVがクルーズしたか、車線変更したか、を提供する。
図3Aにおける運転/交通ルール312の一部である経路交通ルール507には、経路決定モジュールによる結果に影響を与えられる交通ルールが含まれる。例えば、経路交通ルール507には、例えば工事交通標識の交通情報が含まれてもよく、これによって、ADVがこのような工事標識を有する車線を回避することができる。通過状態、交通ルール、ルーティングモジュール307に提供された参照線路及びADVにより感知された障害物に基づいて、経路決定プロセス403は、感知された障害物を如何に処理(即ち、無視、追い越し、道譲り、ストップ、通過)するか、を決定することができる。前記决定は、初期経路配置ファイルの一部とする。
【0058】
例えば、一実施形態において、初期経路配置ファイルがコスト関数によって生成され、前記コスト関数には、経路の曲率に基づくコストと、参照線路及び/又は参照点から障害物までの距離に基づくコストとが含まれている。候補経路を示す候補移動として、参照線路上における点を選択し、参照線路上における点を参照線路の左側又は右側に移動する。候補移動のそれぞれは、関連コストを備える。参照線路上における1つ又は複数の点の候補移動による関連コストは、最適なコストが得られるように、動的計画を使用して順次に(毎回に一個の点)求めされる。一実施形態において、SL図生成器509は、初期経路配置ファイルの一部として、基点−横変位図を生成する。前記基点−横変位図は、ADVにより感知された障害物情報が含まれている二次元の幾何学的地図(x−y座標面に類似)である。SL図から、経路決定プロセス403は、障害物決定に従うADV経路を案配することができる。動的計画(又は動的最適化)が数学最適化方法であり、当該方法は、求めようとする問題を一連の価値関数に分割し、一度にこれらの価値関数における1つの関数だけを解決してその解答を記憶する。次に同じな価値関数が現る時に、解答を改めて算出する必要なく、前に算出された解答を検索するだけで済み、再計算に掛かる時間を節約することができる。
【0059】
速度決定プロセス405又は速度決定モジュール503には、速度状態装置511と、速度交通ルール513と、基点−時間図生成器515が含まれている。速度決定プロセス405又は速度決定モジュール503は、経路計画プロセス407及び速度計画プロセス409の初期制約として、動的計画を使用して初期速度配置ファイルを生成することができる。一実施形態において、速度状態装置511には、加速状態と減速状態との少なくとも二種の状態が含まれている。
図3Aの運転/交通ルール312の一部である速度交通ルール513には、速度決定モジュールによる結果に影響を与えられる交通ルールが含まれている。例えば、速度交通ルール513には、例えば赤/青の交通信号と、交差点ルートにおける他の車両などの交通情報が含まれてもよい。速度状態装置の状態、速度交通ルール、決定プロセス403に生成された初期経路配置ファイル/SL図及び感知された障害物によって、速度決定プロセス405は、初期速度配置ファイルを生成してADVがいつ加速及び/又は減速するかを制御する。基点−時間図生成器515は、初期速度配置ファイルの一部として、基点−時間図を生成することができる。
【0060】
図4及び
図5Bを参照すれば、経路計画プロセス407又は経路計画モジュール521には、基点−横変位
図525と、幾何的スムーザー(geometry smoother)527と、経路コストモジュール529が含まれている。基点−横変位
図525には、経路決定プロセス403のSL図生成器509に生成された基点ー横変位図が含まれてもよい。経路計画プロセス407又は経路計画モジュール521は、二次計画を使用して最適な参照線路を改めて算出するように、初期制約として初期経路配置ファイル(例えば、基点−横変位図)を使用することができる。二次計画は、境界、線形等式及び/又は不等式制約の制限で目的関数(例えば、若干の変数を有する二次関数)を最小化又は最大化させることに関する。動的計画と二次計画との1つの差異は、二次計画が、参照線路上におけるすべての点に用いられるすべての候補移動を一度限りに最適化させることにある。幾何的スムーザー527は、出力された基点−横変位図に平滑化アルゴリズム(例えば、B−spline又はリターン)を適用することができる。経路コストモジュール529は、(
図3Aのコスト関数315の一部である)経路コスト関数を利用して参照線路を改めて算出することができ、例えば、QPモジュール540に実行されたQP最適化を使用して参照点の候補移動の総計コストに対して最適化を行う。
【0061】
速度計画プロセス409又は速度計画モジュール523には、基点−時間
図531と、タイミングスムーザー(sequence smoother)533と、速度コストモジュール535が含まれている。基点−時間
図531には、速度決定プロセス405のST図生成器515によって生成された基点−時間(ST)の図が含まれてもよい。速度計画プロセス409又は速度計画モジュール523は、最適な基点−時間のカーブを算出するように、初期速度配置ファイル(例えば、基点−時間図)及び経路計画プロセス407による結果を初期制約として使用してもよい。タイミングスムーザー533は、点の時系列に平滑化アルゴリズム(例えば、B−spline又はリターン)を適用することができる。速度コストモジュール535は、(
図3Aのコスト関数315の一部である)速度コスト関数を利用してST図を改めて算出することができ、異なる時点の候補移動(例えば、加速/減速)の総計コストを最適化させる。
【0062】
アグリゲーター411は、経路計画結果と速度計画結果を集合する機能を実現する。例えば、一実施形態において、アグリゲーター411は、二次元のST図とSL図を三次元のSLT図に組み合わせる。他の実施形態において、アグリゲーター411は、SL参照線路又はSTカーブにおける2つの連続点に基づいて内挿補間を行う(又は付加点を充填する)ことができる。他の実施形態において、アグリゲーター411は、参照点を(S,L)座標から(x,y)座標に転換することができる。軌跡生成器413は、ADVを制御するための最終軌跡を算出することができる。例えば、アグリゲーター411により提供されたSLT図に基づいて、軌跡生成器413は1列の(x,y,T)点を算出し、前記(x,y,T)点は、ADVは、特定の(x,y)座標をいつ通過すべきかを示す。
【0063】
よって、
図4を再び参照すれば、経路決定プロセス403及び速度決定プロセス405は、障害物及び/又は交通状况を考慮した上で初期経路配置ファイル及び初期速度配置ファイルを生成する。障害物に関するすべての経路決定及び速度決定に基づいて、経路計画プロセス407及び速度計画プロセス409は、最小経路コスト及び/又は速度コストを有する最適な軌跡を生成するするように、前記障害物に従ってQP計画を使用して初期経路配置ファイル及び速度配置ファイルに対して最適化を行う。
【0064】
図6A〜
図6Cは、一実施形態によるADVの障害物の軌跡によりADVに対してナビゲーションの調整が請求されるか否かを確定する例示を示す。
図6A〜
図6Cの例示において、障害物の進行方向612とADVの進行方向607とがほぼ同じである。下記のように、
図9Aを参照して
図6A〜
図6Cに記述された方法を説明する。
【0065】
図6Aを参照すれば、ADV605は、
図1を参照して記述された上記ADV101であってもよい。例えば車両610である障害物は、点P
0、P
1、P
2、P
3 ... P
Mで示される障害物の軌跡615を有する。実施形態において、Mは100であってもよい。実施形態において、障害物の軌跡615における点P
0...P
Mは、順序集合{P
0..P
M}を形成することができる。ADV感知及び計画システム110は、障害物610の軌跡を確定することができる。ADV605は、ADV感知及び計画システム110を利用してADV605の参照ナビゲーション線路620を確定することができる。ADV参照線路620は、点R
0..R
Nで示される。実施形態において、Nは1000であってもよい。実施形態において、ADV参照線路620における点R
0..R
Nは、順序集合{R
0..R
N}を形成することができる。
【0066】
ADVが障害物610を回避するようにナビゲーションを調整する必要があるか否かを確定するために、感知及び計画モジュール110の障害物処理モジュール308は、障害物610がADV605に近接できる程度を確定し、障害物610が軌跡615上に進行し続け且つADV605が参照線路620上に進行し続けると仮設する。障害物の軌跡615の{P
0..P
M}における点P
i(i=0〜M)のそれぞれに対して、障害物処理モジュール308は、{R
0..R
N}における点S
iを確定することができ、当該点S
iは、P
iからADV参照線路620の{R
0..R
N}における任意の点S
iまでの最小距離を有する。障害物の軌跡615の点P
0について、P
0から{R
0..R
N}における点のそれぞれまでの距離を算出する。ADV参照線路の点S
0は、{R
0..R
N}におけるP
0までの距離が最も小さい点である。よって、P
0距離からの距離が最も短いS
0を捜し出すために、{R
0..R
N}におけるすべての点を検索してもよい。ADV参照線路620の後続点S
i(i=1〜M)を捜し出すために、下記のように
図6Bを参照して記述されるように、ADV参照線路620の{R0..RN}からより少ない点を検索してもよい。仮に{P
0..P
M}における点P
iのそれぞれが(x,y)座標ペアに示され、且つ{R
0..R
N}における点S
iのそれぞれも(x,y)座標ペアに示されば、P
iとS
iとの間の距離は、
【0067】
【数2】
【0068】
に示されることが可能である。他の座標系について、例えば点の極座標で示される他の距離数式を使用してもよい。
【0069】
ここで、
図6Bを参照すれば、障害物の軌跡615の{P
1..P
M}における後続点P
i(i=1〜M)について、{R
0..R
N}における点S
iから障害物の軌跡の点P
iまでに対する検索はR
0から開始する必要がない。逆に、後続点Siに対する検索は、最終に確定されたS
i(即ち、S
i−1)から開始されてもよい。例えば、障害物の軌跡線路615の点P
1について、R
0でADV参照線路620の出発位置から検索することではなく、ADV参照線路620における、障害物の軌跡615のP
1までの距離が最も短い点S
1に対する検索は、最終に確定されたS
i(即ち、S
0)から開始することができる。よって、i=1且つP
i=P
1について、S
i=S
1に対する検索は、ADV参照線路620上における点S
i−1=S
0から開始する。障害物の軌跡615の{P
1..P
M}におけるP
iのそれぞれからADV参照線路620上における点S
iまでの最短距離を確定するように、インデックス変数“i”の値のそれぞれに対してて当該プロセスを重複することができる。
【0070】
上記ように、ADV605の進行方向607と障害物610の進行方向612とがほぼ同じ方向であると、
図6A及び
図6Bにおいて記述されたプロセスを使用する。障害物610の進行方向θ
OBSからADV605の進行方向θ
ADVを引いた絶対値が閾値より小さく、即ち、|θ
OBS−θ
ADV|<閾値となると、ADV605と障害物610とがほぼ同じ方向に進行している。実施形態において、閾値は、30°〜40°であってもよい。実施形態において、ADV605及び障害物610の両方の高密度(HD)地図における位置はADV605と障害物610とが車行線の同一側の同一又は異なる車線にあることを示し、且つ、HD地図は車線が同じ方向に交通を実現すること示すと、ADV605と障害物610とが同じ方向に進行していることが確定される。下記のように
図7A及び
図7Cを参照してADV605と障害物610とがほぼ反対方向に進行している実施形態を記述する。
【0071】
図6Cは、ADV参照線路620において点の集合{S
0..S
M}を捜し出すプロセスの完全反復を示し、ただし、i=0〜Mについて、{S
0..S
M}におけるS
iのそれぞれから{P
0..P
M}におけるP
iまでの距離が最も短くなる。
【0072】
図7A〜
図7Cは、一実施形態によるADVの障害物の軌跡によりADVに対してナビゲーションの調整が請求されるか否かを確定する例示を示す。
図7A〜
図7Cの例示において、障害物710の進行方向712とADV705の進行方向707とがほぼ反対となる。下記のように
図9Bを参照して
図7A〜
図7Cに記述された方法を記述する。
【0073】
図7Aを参照すれば、ADV705は、
図1を参照して記述された上記ADV101であってもよい。例えば車両710である障害物は、点P0、P1、P2、P3 ... PMに示される障害物の軌跡715を有する。ADV感知及び計画システム110は、障害物710の軌跡を確定することができる。ADV705は、ADV感知及び計画システム110を利用してADV705の参照ナビゲーション線路720を確定することができる。実施形態において、障害物の軌跡715は、点P0...PMに示される線であってもよい。実施形態において、Mは100であってもよい。実施形態において、障害物の軌跡715の点P
0...P
Mは、順序集合{P
0...P
M}を形成することができる。ADV参照線路720は、点R
0..R
Nで示される。実施形態において、Nは1000であってもよい。実施形態において、ADV参照線路720の点R
0..R
Nは、順序集合{R
0..R
N}を形成することができる。
【0074】
ADVが障害物710を回避するようにナビゲーションを調整する必要があるか否かについて確定するために、感知及び計画モジュール110の障害物処理モジュール308は、障害物710が軌跡715上に進行し続け且ADV705が参照線路720上に進行し続ける場合に、障害物710がADV705に何程近接できるか、を確定することができる。障害物の軌跡715の{P
0..P
M}における点P
i(i=0〜M)のそれぞれに対して、障害物処理モジュール308は、{R
0..R
N}における点S
iを確定することができ、当該点S
iは、P
iからADV参照線路720の{R
0..R
N}における任意の点S
iまでの最小距離を有する。障害物の軌跡715の点P
Mについて、P
Mから{R
0..R
N}における点のそれぞれまでの距離を算出する。ADV参照線路点S
Mは、{R
0..R
N}におけるP
Mまでの距離が最も小さい点である。よって、P
Mからの距離が最も短いS
Mを捜し出すために、{R
0..R
N}におけるすべての点を検索してもよい。{P
0..P
M−1}における後続点Piについて、ADV参照線路720の後続点S
i(i=M−1〜0)を捜し出すために、ADV参照線路720の{R
0..R
N}からより少ない点を検索してもよい。
【0075】
ここで、
図7Bを参照すれば、障害物の軌跡715の{P
0..P
M−1}における後続点P
i(i=M−1〜0)について、{R
0..R
N}における最も近い点S
iに対する検索がR
Nから開始する必要がない。逆に、後続点S
iに対する検索は、最終に確定されたS
i(即ち、S
i+1)から開始されてもよい。例えば、障害物の軌跡線路715の点P
i=P
M−1(ただし、i=M−1)について、R
NでADV参照線路720の出発位置から検索することではなく、ADV参照線路720における、障害物の軌跡715のP
M−1までの距離が最も短い点S
i=S
M−1に対する検索は、最終に確定されたS
i+1=S
Mから開始することができる。よって、i=M−1且つP
i=P
M−1について、S
i=S
M−1に対する検索は、ADV参照線路720上における点S
i+1=S
Mから開始する。ADV参照線路720上において障害物の軌跡715の{P
0..P
M−1}におけるP
i(ただし、i=M−1〜0)のそれぞれからの距離が最も短い点S
iを捜し出すように、インデックス変数“i”の値それぞれについて当該プロセスを重複することができる。
【0076】
ADV705と障害物710とがほぼ反対方向に進行している時に、
図7A及び
図7Bに記述されたプロセスを使用する。実施形態において、θ
OBSからθ
ADVを引いさらに180°を引いた絶対値が閾値より小さく、即ち、|θ
OBS−θ
ADV−180°|<閾値となると、障害物710とADV705とがほぼ反対方向に進行している。実施形態において、ADV705及び障害物710の両方のHD地図における位置はADV705が第一方向に沿って進行する車線における第一側車行線の車線に位置し、かつ障害物710がADV705と大体反対方向に沿って走行する車線における第二側車行線に位置することを示すと、ADV705と障害物710とが反対方向に進行していることが確定される。
【0077】
ADV705と障害物710とがほぼ反対方向に進行している実施形態は、上記ように
図7A及び
図7Bに記述されたプロセスに類似する。下記のように
図9Aを参照して
図6A〜
図6Cのプロセスを記述する。下記のように
図9Bを参照して、ADVと障害物とが反対方向に進行している際のプロセスを記述する。
【0078】
図7Cは、ADV参照線路720において障害物の軌跡線路715の点の集合{P
0..P
M}における点のそれぞれまでの距離が最も短い点の集合{S
0..S
M}を捜し出すプロセスの完全反復を示す。
【0079】
図8は、一実施形態によるADVの障害物の軌跡によりADVに対してナビゲーションの調整が請求されるか否かを確定する方法800を示すフローチャートである。同一の障害物610又は710に対して方法800を複数回実行することができる。ADV605又は705についての複数の障害物610又は710のそれぞれに対して、方法800を一回又は複数回実行してもよい。
【0080】
処理805において、感知及び計画モジュール110は、ADVの障害物の軌跡を確定することができる。軌跡は、M個の分散点の集合{P
0..P
M}で示される。実施形態において、M=100である。実施形態において、M個の分散点の集合が点の順序集合を形成する。
【0081】
処理810において、感知及び計画モジュール110は、ADVのナビゲーション参照線路を確定することができる。ナビゲーション参照線路は、N個の分散点の集合{R
0..R
N}で示される。実施形態において、N=1000である。実施形態において、N個の分散点の集合が順序集合であってもよい。
【0082】
処理815において、感知及び計画モジュール110は、ADVに対する障害物の相対方向を確定することができる。以上で
図6A〜
図6C及び
図7A〜
図7Cを参照して記述したように、障害物とADVとの相対方向について、多種の方式で確定される。
【0083】
処理815において、ADVと障害物とが、ほぼ同じ方向又はほぼ反対方向に進行するか、或いは同じでもなく反対でもない方向に進行するかを確定することができる。ADVの進行方向θ
ADVと障害物の進行方向θ
OBSとの間の差の絶対値が閾値より小さくなると、ADVと障害物とがほぼ同じ方向に進行している。実施形態において、ADVによって検索された高解像度(HD)地図が、ADV及び障害物の両者がともに同じ方向を示す車線で進行していることを示すと、ADVと障害物とが同じ方向に進行している。実施形態において、θ
ADV−θ
OBS−180°の絶対値が閾値より小さくなると、ADVと障害物とがほぼ反対方向に進行している。実施形態において、閾値は、30°〜40°であってもよい。実施形態において、ADVによって検索されたHD地図が、ADV及び障害物が反対方向を有する車線を占めたことを示すと、ADVと障害物とがほぼ反対方向に進行している。
【0084】
処理820において、ADVと障害物とが、同じ又はほぼ同じ方向に進行しているか否かを確定することができる。そうであれば、方法800は処理900で継続し、そうでなければ、方法800は処理825で継続する。
【0085】
処理825において、ADVと障害物とが、反対又はほぼ反対方向に進行しているか否かを確定することができる。そうであれば、方法800は処理950で継続し、そうでなければ、方法800は処理830で継続する。
【0086】
処理830において、ADVと障害物とが、同じ方向又は反対方向に進行していないことが確定された。そのため、感知及び計画モジュール110の他の処理(方法800には、この処理が記述されず)によって、障害物によりADVに対してナビゲーションの調整が請求されるか否かを確定し、且つ、方法800を終了する。
【0087】
処理900において、下記のように
図9Aを参照して記述する方法900によって、ADV参照線路上において、障害物の相応点{P
0..P
M}からの距離が最も短い点の集合{S
0..S
M}をそれぞれ確定する。方法800は、処理835で継続する。
【0088】
処理950において、下記のように
図9Bを参照して記述する方法950によって、ADV参照線路上において、障害物の相応点{P
0..P
M}からの距離が最も短い点の集合{S
0..S
M}をそれぞれ確定する。方法800は、処理835で継続する。
【0089】
処理835において、すべての、P
iとS
i(ただし、i=0..M)との間の距離の最小値を確定する。障害物がその軌跡を維持し且つADVがADV参照線路によってナビゲーションを維持すると仮定し、当該最小距離は、障害物がADVに最も近接している可能性がある場合に対応する。実施形態において、処理835において確定された当該最小値を、処理900又は処理950の一部として確定してもよい。
【0090】
処理840において、障害物からADVまでの最小距離が閾値の安全量より小さくなるか否かを確定することができる。そうであれば、感知及び計画モジュール110は、ADVに対してナビゲーションの調整を行うことを決定する。方法800は終了する。
【0091】
図9A及び
図9Bは、一実施形態によるADVの障害物の軌跡によりADVに対してナビゲーションの調整が請求されるか否かを確定する方法を示すフローチャートである。
【0092】
図9Aは、障害物とADVとがほぼ同じ方向に進行している際にADVナビゲーション線路の{S
0..S
M}における点S
iを確定する方法900を示し、ただし、i=0..Mのそれぞれについて、{S
0..S
M}における任意の点S
iも{P
0..P
M}におけるP
iまでの最も短い距離を有する。
【0093】
処理905において、{P
0..P
M}における第一点P
0について、P
0まで最小距離になる点S
0を{R
0..R
N}から捜し出すように、参照線路{R
0..R
N}におけるすべての点を検索する。
【0094】
処理910において、i=1〜Mのそれぞれについて、処理915を実行することができる。サイクルが終了した際に、i>Mとなると、方法900は、方法800の処理835にリターンする。
【0095】
処理915において、ループカウンターiの値及び障害物の軌跡点P
iについて、参照線路での検索された部分における任意の点からP
iまでの距離が最も小さいS
iを捜し出すように、ナビゲーション参照線路の一部を検索する。参照線路での検索された部分が、一番新しく捜し出したS
i(即ち、S
i−1)から参照線路の終端R
Nまでの部分であってもよい。そのため、参照線路でのS
iを検索した部分が{S
i−1..R
N}となる。
【0096】
図9Bは、障害物とADVとがほぼ反対方向に進行している際にADVナビゲーション線路の{S
M..S
0}における点S
iを確定する方法950を示し、ただし、i=M..0のそれぞれについて、S
iのそれぞれが{R
0..R
N}における任意の点から{P
M..P
0}におけるP
iまでの最も短い距離を有する。
【0097】
処理955において、{P
M..P
0}における第一点P
Mについて、P
Mまでの距離が最も小さい点S
Mを{R
0..R
N}から捜し出すように、参照線路{R
0..R
N}におけるすべての点を検索する。
【0098】
処理960において、i=M−1〜0のそれぞれについて、処理965を実行することができる。サイクルが終了した際に、i<0となると、方法900が方法800の処理835にリターンする。
【0099】
処理965において、ループカウンターiの値及び障害物の軌跡点P
iについて、参照線路での検索された部分における任意の点からP
iまでの距離が最も小さいS
iを捜し出すように、ナビゲーション参照線路の一部を検索する。参照線路での検索された部分が、一番新しく捜し出したS
i(即ち、S
i+1)から参照線路の終端R
0までの部分であってもよい。そのため、参照線路でのS
iを検索した部分が{R
0..S
i+1}となる。
【0100】
図10は、本願の一実施形態と共に使用可能なデータ処理システムの例を示すブロック図である。例えば、システム1000は、上記プロセス又は方法のいずれかを実行する上記データ処理システムのいずれか(例えば、
図1の感知及び計画システム110、又はサーバ103〜104のいずれか)を表すことができる。システム1000は、複数の異なる構成要素を含むことができる。これらの構成要素は、集積回路(IC)、集積回路の一部、ディスクリート型電子デバイス、又は回路基板(例えば、コンピュータシステムのマザーボード若しくはアドインカード)に適するその他のモジュールとして実現されることができ、又は、他の形態でコンピュータシステムのシャーシ内に組み込まれる構成要素として実現されることができる。
【0101】
なお、システム1000は、コンピュータシステムの複数の構成要素の高レベルビューを示すことを意図している。しかしながら、理解すべきのは、特定の実施例において付加的構成要素が存在してもよく、また、その他の実施例において示された構成要素を異なる配置にすることが可能である。システム1000は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレイヤー、パーソナルデジタルアシスタント(PDA)、スマートウォッチ、パーソナルコミュニケーター、ゲーム装置、ネットワークルーター又はハブ、無線アクセスポイント(AP)又はリピーター、セット・トップボックス、又はこれらの組み合わせを表すことができる。さらに、単一の機器又はシステムのみが示されたが、「機器」又は「システム」という用語は、本明細書で説明されるいずれか一種以上の方法を実現するための、単独で又は共同で1つ(又は複数)のコマンドセットを実行する機器又はシステムのいずれかの組み合わせも含まれると解釈されるものとする。
【0102】
一実施形態では、システム1000は、バス又はインターコネクト1510を介して接続される、プロセッサ1001と、メモリ1003と、装置1005〜1008とを含む。プロセッサ1001は、単一のプロセッサコア又は複数のプロセッサコアが含まれる単一のプロセッサ又は複数のプロセッサを表すことができる。プロセッサ1001は、マイクロプロセッサ、中央処理装置(CPU)などのような、一つ以上の汎用プロセッサを表すことができる。より具体的には、プロセッサ1001は、複雑コマンドセットコンピューティング(CISC)マイクロプロセッサ、縮小コマンドセットコンピューティング(RISC)マイクロプロセッサ、超長コマンド語(VLIW)マイクロプロセッサ、又はその他のコマンドセットを実行するプロセッサ、又はコマンドセットの組み合わせを実行するプロセッサであってもよい。プロセッサ1001は更に、例えば、特定用途向け集積回路(ASIC)、セルラー又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、グラフィックプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組込みプロセッサ、又はコマンドを処理可能な任意の他のタイプのロジックのような、一つ以上の専用プロセッサであってもよい。
【0103】
プロセッサ1001は、超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよく、上記システムの様々な構成要素と通信するための主処理ユニット及び中央ハブとして機能することができる。このようなプロセッサは、システムオンチップ(SoC)として実現されることができる。プロセッサ1001は、本明細書で説明される動作及びステップを実行するためのコマンドを実行するように構成される。システム1000は、さらに所望によるグラフィックサブシステム1004と通信するグラフィックインターフェースを含むことができ、グラフィックサブシステム1004は、表示コントローラ、グラフィックプロセッサ、及び/又は表示装置を含むことができる。
【0104】
プロセッサ1001は、メモリ1003と通信することができ、メモリ1003は、一実施形態では、所定量のシステムメモリを提供するための複数のメモリ装置によって実現されることができる。メモリ1003は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、又はその他のタイプの記憶装置のような、一つ以上の揮発性記憶(又はメモリ)装置を含むことができる。メモリ1003は、プロセッサ1001又はその他の任意の装置により実行されるコマンドシーケンスを含む情報を記憶することができる。例えば、様々なオペレーティングシステム、デバイスドライバ、ファームウェア(例えば、ベーシックインプット/アウトプットシステム又はBIOS)、及び/又はアプリケーションの実行可能なコード及び/又はデータは、メモリ1003にロードされ、プロセッサ1001により実行されることができる。オペレーティングシステムは、例えば、ロボットオペレーティングシステム(ROS)、Microsoft(登録商標)社のWindows(登録商標)オペレーティングシステム、アップル社のMacOS(登録商標)/iOS(登録商標)、Google(登録商標)社のAndroid(登録商標)、LINUX(登録商標)、UNIX(登録商標)、又はその他のリアルタイム若しくは組込みオペレーティングシステムのような、任意のタイプのオペレーティングシステムであってもよい。
【0105】
システム1000は、さらに、ネットワークインターフェース装置1005、所望による入力装置1006、及びその他の所望によるI/O装置1007を含む装置1005〜1008のようなI/O装置を含むことができる。ネットワークインターフェース装置1005は、無線送受信機及び/又はネットワークインターフェースカード(NIC)を含むことができる。上記無線送受信機は、WiFi送受信機、赤外線送受信機、ブルートゥース送受信機、WiMax(登録商標)送受信機、無線携帯電話送受信機、衛星送受信機(例えば、全地球位置決めシステム(GPS)送受信機)、又はその他の無線周波数(RF)送受信機、又はこれらの組み合わせであってもよい。NICは、イーサネット(登録商標)カード(Ethernetcard)であってもよい。
【0106】
入力装置1006は、マウス、タッチパネル、タッチスクリーン(表示装置1004と統合されてもよい)、ポインター装置(例えば、スタイラス)、及び/又はキーボード(例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード)を含むことができる。例えば、入力装置1006は、タッチスクリーンと接続するタッチスクリーンコントローラを含むことができる。タッチスクリーン及びタッチスクリーンコントローラは、例えば、様々なタッチ感応技術(コンデンサ、抵抗、赤外線、及び表面音波の技術を含むが、これらに限定されない)のいずれか、並びにその他の近接センサアレイ、又は、タッチスクリーンと接触する一つ以上の点を決定するためのその他の素子を用いて、それらの接触及び移動又は間欠を検出することができる。
【0107】
I/O装置1007は、音声装置を含むことができる。音声装置は、音声認識、音声複製、デジタル記録、及び/又は電話機能のような音声サポート機能を促進するために、スピーカ及び/又はマイクロフォンを含んでもよい。その他のI/O装置1007は、さらに、ユニバーサルシリアルバス(USB)ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ(例えば、PCI−PCIブリッジ)、センサ(例えば、加速度計のようなモーションセンサ、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなど)、又はこれらの組み合わせを含むことができる。装置1007は、さらに結像処理サブシステム(例えば、カメラ)を含むことができ、上記結像処理サブシステムは、写真及びビデオ断片の記録のようなカメラ機能を促進するための、電荷結合素子(CCD)又は相補型金属酸化物半導体(CMOS)光学センサのような光学センサを含むことができる。特定のセンサは、センサハブ(図示せず)を介してインターコネクト1510に接続されることができ、キーボード又はサーマルセンサのようなその他の装置はシステム1000の具体的な配置又は設計により、組込みコントローラ(図示せず)により制御されることができる。
【0108】
データ、アプリケーション、一つ以上のオペレーティングシステムなどの情報の永続性記憶を提供するために、プロセッサ1001には、大容量記憶装置(図示せず)が接続されることができる。様々な実施形態において、より薄くて軽量なシステム設計を可能にしながら、システムの応答性を向上するために、このような大容量記憶装置は、ソリッドステート装置(SSD)によって実現されることができる。しかしながら、その他の実施形態において、大容量記憶装置は、主にハードディスクドライブ(HDD)を使用して実現することができ、より小さい容量のSSD記憶装置をSSDキャッシュとして機能することで、停電イベントの間にコンテキスト状態及び他のそのような情報の不揮発性記憶を可能にし、それによりシステム動作が再開するときに通電を速く実現することができる。また、フラッシュデバイスは、例えば、シリアルペリフェラルインターフェース(SPI)を介してプロセッサ1001に接続されることができる。このようなフラッシュデバイスは、上記システムのBIOS及びその他のファームウェアを含むシステムソフトウェアの不揮発性記憶のために機能することができる。
【0109】
記憶装置1008は、コンピュータアクセス可能な記憶媒体1009(機械可読記憶媒体又はコンピュータ可読媒体ともいう)を含むことができ、上記コンピュータアクセス可能な記憶媒体1009には、本明細書で記載されたいずれか一種以上の方法又は機能を具体化する一つ以上のコマンドセット又はソフトウェア(例えば、モジュール、ユニット、及び/又はロジック1028)が記憶されている。処理モジュール/ユニット/ロジック1028は、計画モジュール305、制御モジュール306などの上記構成要素のいずれかを表すことができる。処理モジュール/ユニット/ロジック1028は、さらに、データ処理システム1000、メモリ1003、及びプロセッサ1001による実行中に、メモリ1003内及び/又はプロセッサ1001内に完全的に又は少なくとも部分的に存在してもよく、データ処理システム1000、メモリ1003、及びプロセッサ1001も機械アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1028は、さらに、ネットワークによってネットワークインターフェース装置1005を経由して送受信されてもよい。
【0110】
コンピュータ可読記憶媒体1009は、以上に説明されたいくつかのソフトウェア機能を永続的に記憶するために用いることができる。コンピュータ可読記憶媒体1009は、例示的な実施形態において単一の媒体として示されるが、「コンピュータ可読記憶媒体」という用語は、上記一つ以上のコマンドセットが記憶される単一の媒体又は複数の媒体(例えば、集中型又は分散型データベース、及び/又は関連するキャッシュとサーバ)を含むと解釈されるものとする。また、「コンピュータ可読記憶媒体」という用語は、コマンドセットを記憶又は符号化できる任意の媒体を含むと解釈されるものであり、上記コマンドセットは機械により実行され、本願のいずれか一種以上の方法を上記機械に実行させるためのものである。それゆえに、「コンピュータ可読記憶媒体」という用語は、ソリッドステートメモリ、光学媒体及び磁気媒体、又はその他の任意の非一時的な機械可読媒体を含むが、これらに限定されないと解釈されるものとする。
【0111】
本明細書に記載の処理モジュール/ユニット/ロジック1028、構成要素及びその他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はハードウェア構成要素(例えば、ASICS、FPGA、DSP又は類似の装置)の機能に統合されてもよい。さらに、処理モジュール/ユニット/ロジック1028は、ハードウェア装置におけるファームウェア又は機能性回路として実現されてもよい。さらに、処理モジュール/ユニット/ロジック1028は、ハードウェア装置とソフトウェア構成要素の任意の組み合わせで実現されてもよい。
【0112】
なお、システム1000は、データ処理システムの様々な構成要素を有するものとして示されているが、構成要素を相互接続する任意の特定のアーキテクチャ又は方式を表すことを意図するものではなく、そのような詳細は、本願の実施形態と密接な関係がない。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、及び/又はその他のデータ処理システムも、本願の実施形態と共に使用することができることを理解されたい。
【0113】
上記具体的な説明の一部は、既に、コンピュータメモリにおけるデータビットに対する演算のアルゴリズムと記号表現で示される。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。本明細書では、一般的に、アルゴリズムは、所望の結果につながるセルフコンシステントシーケンスと考えられる。これらの動作は、物理量の物理的処置が必要なものである。
【0114】
しかしながら、念頭に置くべきのは、これらの用語及び類似の用語の全ては、適切な物理量に関連付けられるものであり、これらの量を標識しやすくするためのものに過ぎない。以上の説明で他に明示的に記載されていない限り、本明細書の全体にわたって理解すべきのは、用語(例えば、添付された特許請求の範囲に記載のもの)による説明とは、コンピュータシステム、又は類似の電子計算装置の動作又はプロセスを指し、上記コンピュータシステム又は電子計算装置は、コンピュータシステムのレジスタ及びメモリにおける物理(電子)量として示されたデータを制御するとともに、上記データをコンピュータシステムメモリ又はレジスタ又はこのようなその他の情報記憶装置、伝送又は表示装置において同様に物理量として示された別のデータに変換する。
【0115】
本願の実施形態は、本明細書の動作を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的なコンピュータ可読媒体に記憶される。機械可読媒体は、機械(例えば、コンピュータ)により読み取り可能な形式で情報を記憶するための任意のメカニズムを含む。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置)を含む。
【0116】
上述した図面において説明されたプロセス又は方法は、ハードウェア(例えば、回路、専用ロジックなど)、ソフトウェア(例えば、非一時的なコンピュータ可読媒体に具現化されるもの)、又は両方の組み合わせを含む処理ロジックにより実行されることができる。上記プロセス又は方法は、以上で特定の順序に応じて説明されたが、上記動作の一部が異なる順序で実行されてもよいことを理解されたい。また、一部の動作は、順番ではなく並行して実行されてもよい。
【0117】
本願の実施形態は、いずれの特定のプログラミング言語を参照することなく記載されている。理解すべきのは、本明細書に記載の本願の実施形態の教示を実現するために、様々なプログラミング言語を使用することができる。
【0118】
上記明細書において、本願の実施形態は、既にその具体的な例示的な実施形態を参照しながら記載された。明らかなように、添付された特許請求の範囲に記載された本願のより広い趣旨及び範囲を逸脱しない限り、本発明に対して様々な変更を行うことができる。それゆえに、本明細書及び図面は、限定的な意味でなく、例示的な意味で理解されるべきである。