(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、説明の詳細を参照しながら、本開示の様々な実施形態及び態様を説明し、図面には、上記の様々な実施形態が示される。以下の説明及び図面は、本開示を説明するためのものであり、本開示を限定するものではないと理解されるべきである。本開示の様々な実施形態を完全に把握するために、多数の特定の詳細を説明する。なお、いくつかの場合、本開示の実施形態に対する簡潔的な説明を提供するように、周知又は従来技術の詳細について説明していない。
【0010】
本明細書においては、「一実施形態」又は「実施形態」とは、当該実施形態を参照しながら説明された特定の特徴、構造又は特性が、本開示の少なくとも一実施形態に含まれてもよいと意味する。「一実施形態では」という語句は、本明細書全体において同一の実施形態を指すとは限らない。
【0011】
いくつかの実施形態によれば、ADVが基準線に基づいて生成された軌跡上で走行する時、予測されたADVの将来位置に基づいて将来の計画周期に用いられる新たな基準又は将来基準線を並行して予め算出するように、個別のスレッドを実行する。あるいは、すでにルート及び地図の情報に基づいて初期の基準ルートが決定された時、基準線に沿った、車両が到達可能な一組の将来位置を予測する。将来位置のそれぞれに対し、基準線を再計算して平滑化する。予め算出された基準線がメモリ又は永続性記憶装置におけるデータ構成に記憶されている。最終的にADVが予測された将来位置に到達した時、当該位置に対応する基準線を取得することが容易である。それに、当該特定位置の時点で同様の基準線を算出する必要なく、当該基準線を利用して当該位置から始まる新たな軌跡を生成する。よって、システムは、最初から基準線を算出する必要がないため、計画周期内で軌跡を生成するのに十分な時間がある。
【0012】
一実施形態によれば、第1処理スレッドを介して、第1位置から始まる第1基準線に基づいて生成された第1軌跡に従ってADVを制御する。同時に、第2処理スレッドを介して、ADVが将来の所定期間内で到達可能な第1軌跡又は第1基準線の第2位置に基づいて第2基準線を生成する。所定期間は、ADVに用いられる基準線の生成に必要な時間量以上となる。第2基準線は、ADVが第1軌跡に従って移動し且つ第2位置に到達する前に生成される。その後、ADVが第2位置の所定の近接領域内にあると確定されたことに応答し、第2位置で第2基準線を計算する必要なしに、第2基準線に基づいて第2軌跡を生成する。それに、第2軌跡に従ってADVを制御する。
【0013】
他の実施形態によれば、ADVは第1処理スレッドを介して第1軌跡に従って走行する時、相応した異なる処理スレッドを介して、複数の将来基準線を同時に生成することができる。将来基準線のそれぞれが、予測されたADVが到達可能な将来位置における、異なる位置の一つから始まる。それに、基準線をメモリ又は永続性記憶装置のような記憶位置に記憶する。例えば、基準線は、基準線(位置/基準線)のマッピングテーブルの位置に記憶されてもよい。位置/基準線のマッピングテーブルには、多数のマッピングエントリが含まれている。マッピングエントリのそれぞれには、特定位置をマッピング位置(例えば、基準線の開始位置)に対応した特定の基準線にマッピングされる。その後、ADVが特定位置に移動した時、ADVの現在位置に基づいて、位置/基準線のマッピングテーブルにおいて検索動作を実行し、現在位置(例えば、マッチング位置の所定の近接領域内)と一致するマッピングエントリを特定する。それに、マッチング位置に対応する基準線を取得し、当該基準線が当該時点で基準線を計算する必要なしに次の計画周期の軌跡の生成に用いることができる。
【0014】
図1は、本開示の一実施形態による自動運転車両のネットワーク構成を示すブロック図である。
図1に示すように、ネットワーク構成100には、ネットワーク102を介して一つ以上のサーバ103〜104に通信可能に接続される自動運転車両101が備えられる。一つの自動運転車両が示されたが、ネットワーク102を介して複数の自動運転車両が互いに接続され、及び/又はサーバ103〜104に接続されてもよい。ネットワーク102は、如何なるタイプのネットワーク、例えば有線又は無線のローカルエリアネットワーク(LAN)、例えばインターネットのようなワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク又はそれらの組み合わせであってもよい。サーバ103〜104は、如何なるタイプのサーバ又はサーバクラスタであってもよく、例えば、ネットワーク又はクラウドサーバ、アプリサーバ、バックエンドサーバ又はそれらの組み合わせが挙げられる。サーバ103〜104は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図及び興味点(MPOI)サーバ又は位置サーバ等であってもよい。
【0015】
自動運転車両とは、運転手からの入力が非常に少ない又はない場合に車両を案内して環境を通過させる自動運転モードに設置可能な車両である。このような自動運転車両には、車両が走行している環境に係る情報を検出するように配置される一つ以上のセンサを有するセンサシステムが含まれてもよい。上記の車両及びその関連するコントローラは、検出された情報で案内して環境を通過する。自動運転車両101は、手動モード、完全自動運転モード又は部分自動運転モードで走行することができる。
【0016】
一実施形態では、自動運転車両101には、感知及び計画システム110と、車両制御システム111と、無線通信システム112と、ユーザインターフェースシステム113と、インフォティメントシステム114と、センサシステム115とが含まれているが、これらに限定されない。自動運転車両101は、一般車両に含まれるいくつかの一般的な構成要素、例えば、エンジン、車輪、ステアリングホイール、変速機等を更に含んでもよく、前記構成要素は、車両制御システム111及び/又は感知及び計画システム110によって多種の通信信号及び/又はコマンド(例えば、加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンド等)で制御されることができる。
【0017】
構成要素110〜115は、インターコネクト、バス、ネットワーク又はそれらの組み合わせを介して互いに通信可能に接続されることができる。例えば、構成要素110〜115は、コントローラローカルエリアネットワーク(CAN)バスを介して互いに通信可能に接続されることができる。CANバスは、ホストコンピュータなしのアプリケーションでマイクロコントローラ及びデバイスが相互に通信できるように設計された車両バス規格である。それは、もともと自動車内における多重電気配線のために設計されたメッセージに基づくプロトコルであるが、他の多くの環境にも用いられる。
【0018】
ここで
図2を参照すれば、一実施形態では、センサシステム115には、一つ以上のカメラ211と、全地球測位システム(GPS)ユニット212と、慣性計測ユニット(IMU)213と、レーダユニット214と、光検出及び測距(LIDAR)ユニット215とが含まれているが、これらに限定されない。GPSシステム212には、自動運転車両の位置に関する情報を提供するように動作可能な送受信機が含まれてもよい。IMUユニット213は、慣性加速度に基づいて自動運転車両の位置及び方位の変化を感知することができる。レーダユニット214は、無線信号を利用して自動運転車両のローカル環境内のオブジェクトを感知するシステムを示すことができる。いくつかの実施形態では、オブジェクトを感知することに加えて、レーダユニット214は、更にオブジェクトの速度及び/又は進行方向を感知することができる。LIDARユニット215は、レーザを使用して自動運転車両の所在環境におけるオブジェクトを感知することができる。他のシステム構成要素に加えて、LIDARユニット215には、更に一つ以上のレーザ光源、レーザスキャナ及び一つ以上の検出装置が含まれてもよい。カメラ211には、自動運転車両の周辺環境の画像をキャプチャするための一つ以上の装置が含まれてもよい。カメラ211は、スチルカメラ及び/又はビデオカメラであってもよい。カメラは、例えば回転及び/又は傾斜のプラットフォームに取り付けることで機械的に移動可能なものであってもよい。
【0019】
センサシステム115には、更に他のセンサ、例えばソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ及びオーディオセンサ(例えば、マイクロフォン)が含まれてもよい。オーディオセンサは、自動運転車両の周辺環境から音をキャプチャするように配置されてもよい。ステアリングセンサは、ステアリングホイール、車両の車輪又はそれらの組み合わせの操舵角を感知するように配置されることができる。スロットルセンサ及びブレーキセンサは、それぞれ車両のスロットル位置及びブレーキ位置を感知する。いくつかの場合、スロットルセンサ及びブレーキセンサは、集積型スロットル/ブレーキセンサとして一体化されてもよい。
【0020】
一実施形態では、車両制御システム111には、ステアリングユニット201と、スロットルユニット202(加速ユニットともいう)と、ブレーキユニット203とが含まれているが、これらに限定されない。ステアリングユニット201は、車両の方向又は進行方向を調整するために用いられる。スロットルユニット202は、モータ又はエンジンの速度を制御するために用いられ、更にモータ又はエンジンの速度によって車両の速度及び加速度を制御する。ブレーキユニット203は、摩擦を提供することによって車両の車輪又はタイヤを減速させることで車両を減速させる。注意すべきなのは、
図2に示される構成要素は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現可能である。
【0021】
図1を再び参照して、無線通信システム112は、自動運転車両101と、例えば装置、センサ、他の車両等の外部システムとの通信を可能にする。例えば、無線通信システム112は、直接又は通信ネットワークを介して一つ以上の装置と無線通信することができ、例えば、ネットワーク102を介してサーバ103〜104と通信することができる。無線通信システム112は、如何なるセルラー通信ネットワーク又は無線ローカルエリアネットワーク(WLAN)、例えば、WiFiを利用して他の構成要素やシステムと通信することができる。無線通信システム112は、例えば赤外線リンク、ブルートゥース等を利用して、装置(例えば、乗客のモバイルデバイス、表示装置、車両101内のスピーカ)と直接通信することができる。ユーザインターフェースシステム113は、車両101内で実行される周辺機器の一部であってもよく、例えばキーボードと、タッチスクリーン表示装置と、マイクロフォン及びスピーカ等を含む。
【0022】
自動運転車両101の機能のうちの一部又は全ては、特に自動運転モードで動作する場合、感知及び計画システム110により制御されたり管理されたりすることができる。感知及び計画システム110は、必要なハードウェア(例えば、プロセッサ、メモリ、記憶装置)と、ソフトウェア(例えば、オペレーティングシステム、計画及びルーティングプログラム)とを含み、センサシステム115、制御システム111、無線通信システム112、及び/又はユーザインターフェースシステム113から情報を受信し、受信された情報を処理し、出発地から目的地までのルートや経路を計画し、そして計画及び制御情報に基づいて車両101を走行させる。あるいは、感知及び計画システム110と車両制御システム111とは一体化されてもよい。
【0023】
例えば、乗員であるユーザは、例えばユーザインターフェースを介して旅程の出発地位置及び目的地を指定することができる。感知及び計画システム110は、旅程に関するデータを取得する。例えば、感知及び計画システム110は、MPOIサーバから位置及びルート情報を取得することができ、上記のMPOIサーバはサーバ103〜104の一部であってもよい。位置サーバは、位置サービスを提供し、かつMPOIサーバは地図サービス及びある位置のPOIを提供する。あるいは、このような位置及びMPOI情報は、感知及び計画システム110における永続性記憶装置にローカルキャッシュされることができる。
【0024】
自動運転車両101がルートに沿って移動する時に、感知及び計画システム110は、交通情報システムやサーバ(TIS)からリアルタイム交通情報を取得してもよい。注意すべきなのは、サーバ103〜104は、第三者エンティティにより動作させることができる。あるいは、サーバ103〜104の機能は、感知及び計画システム110と一体化されてもよい。感知及び計画システム110は、リアルタイム交通情報、MPOI情報、位置情報及びセンサシステム115により検出又は感知されたリアルタイムなローカル環境データ(例えば、障害物、オブジェクト、付近の車両)に基づいて、指定した目的地まで安全的且つ効果的に到達するために、最適なルートを計画し、かつ計画されたルートに従って例えば制御システム111を介して車両101を運転することができる。
【0025】
サーバ103は、様々なクライアントに対してデータ解析サービスを提供するデータ解析システムであってもよい。一実施形態では、データ解析システム103には、データコレクタ121と、機械学習エンジン122とが含まれている。データコレクタ121は、様々な車両(自動運転車両又は人間の運転手によって運転される一般車両)から運転統計データ123を収集する。運転統計データ123には、発信された運転コマンド(例えば、スロットル、ブレーキ、ステアリングコマンド)、及び車両のセンサによって異なる時点でキャプチャされた車両の応答(例えば、速度、加速度、減速度、方向)を指示する情報が含まれている。運転統計データ123には、更に、異なる時点での運転環境を記述する情報、例えば、(出発地位置及び目的地位置が含まれる)ルート、MPOI、道路状況、天気状況等が含まれている。
【0026】
機械学習エンジン122は、運転統計データ123に基づいて、様々な目的で一組のルール、アルゴリズム及び/又は予測モデル124を生成するか又は訓練する。ルール/アルゴリズム124には、基準線を計算するためのルール又はアルゴリズムが含まれてもよい。一実施形態では、ルール124には、個別のスレッドを介して新たな基準線を同時に計算するために、ADVの現在の位置からどれだけ離れる時にADVの将来位置を選択すべきかを指示する情報が含まれてもよい。例えば、基準線の算出には1秒がかかると、車両が1秒、2秒、3秒などの時間内で到達する位置から将来位置を選択すべきであり、ここで、これらの位置が1秒後の位置、2秒後の位置、3秒後の位置などという。当該時点での車両の速度に基づいてこのような将来位置を動的に決定してもよい。特定のタイプの車両に対する過去の運転統計データに基づいてこのようなアルゴリズムを生成してもよい。
【0027】
図3A及び
図3Bは、一実施形態に係る自動運転車両とともに使用される感知及び計画システムの一例を示すブロック図である。システム300は、
図1における自動運転車両101の一部として実現されてもよく、感知及び計画システム110と、車両制御システム111と、センサシステム115とを含むが、それらに限定されない。
図3A及び
図3Bに示すように、感知及び計画システム110は、測位モジュール301と、感知モジュール302と、予測モジュール303と、決定モジュール304と、計画モジュール305と、制御モジュール306と、ルーティングモジュール307と、基準線ジェネレータ又は生成モジュール308を含むが、それらに限定されない。
【0028】
モジュール301〜308の一部又は全部は、ソフトウェア、ハードウェア又はそれらの組み合わせによって実現されてもよい。例えば、これらのモジュールは、永続性記憶装置352にインストールされ、メモリ351にロードされ、それに一つ以上のプロセッサ(図示せず)によって実行されてもよい。注意すべきなのは、これらのモジュールのうちの一部又は全部は、
図2の車両制御システム111の一部又は全部のモジュールに通信可能に接続るか、又はそれらと一体に集積されてもよい。モジュール301〜308のうちの一部が集積モジュールとして一体に集積されてもよい。
【0029】
測位モジュール301は、自動運転車両300の現在位置(例えば、GPSユニット212を利用し)を決定し、ユーザの旅程又はルートに関連する如何なるデータを管理する。測位モジュール301(地図及びルートモジュールともいう)は、ユーザの旅程又はルートに関連する如何なるデータを管理する。ユーザは、例えばユーザインターフェースを介して登録し、且つ旅程の出発地位置及び目的地を指定することができる。測位モジュール301は、自動運転車両300における地図及びルート情報311のような他の構成要素と通信して旅程に関するデータを取得する。例えば、測位モジュール301は、位置サーバ並びに地図及びPOI(MPOI)サーバから位置及びルート情報を取得することができる。位置サーバは、位置サービスを提供し、かつ、MPOIサーバは、地図サービス及びある位置のPOIを提供することによって、地図及びルート情報311の一部としてキャッシュされることができる。自動運転車両300がルートに沿って移動する時に、測位モジュール301は、交通情報システム又はサーバからリアルタイム交通情報を取得することができる。
【0030】
センサシステム115により提供されたセンサデータ、及び測位モジュール301により取得された位置特定情報に基づいて、感知モジュール302は周辺の環境に対する感知を決定する。感知情報は、一般の運転手が運転手により運転されている車両の周辺における感知すべきものを示すことができる。感知とは、例えばオブジェクト形式で現される車線配置(例えば、直進車線又はカーブ車線)、信号機信号、他の車両の相対位置、歩行者、建築物、横断歩道又は他の交通関連標識(例えば、止まれ標識、ゆずれ標識)などを含んでもよい。
【0031】
感知モジュール302は、一つ以上のカメラにより取り込まれた画像を処理し解析して自動運転車両の環境におけるオブジェクト及び/又は特徴を認識するために、コンピュータビジョンシステム又はコンピュータビジョンシステムの機能を含んでもよい。前記オブジェクトには、交通信号、道路の境界線、他の車両、歩行者及び/又は障害物等が含まれてもよい。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオトラッキング及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態では、コンピュータビジョンシステムは、環境の地図を描き、オブジェクトを追跡し、かつオブジェクトの速度を推定することなどができる。感知モジュール302は、レーダ及び/又はLIDARのような他のセンサにより提供された他のセンサデータに基づいてオブジェクトを検出することもできる。
【0032】
それぞれのオブジェクトに対し、予測モジュール303は、当該場合でオブジェクトがどのように挙動するかを予測する。地図及びルート情報311と交通ルール312のセットに応じて、当該時点において運転環境が感知された感知データに基づいて予測を実行する。例えば、オブジェクトが反対方向における車両であり、かつ現在の運転環境に交差点が含まれると、予測モジュール303は、車両が直進するか、又はカーブ走行するかを予測する。感知データが交差点に信号機がないことを示す場合、予測モジュール303は、車両が交差点に進入する前に完全に停止する必要があると予測する可能性がある。感知データが車両が現在左折専用車線又は右折専用車線にあることを示す場合、予測モジュール303は、車両がそれぞれ左折又は右折する可能性がより高いと予測することができる。
【0033】
それぞれのオブジェクトに対し、決定モジュール304は、オブジェクトを如何に対応するかを決定する。例えば、特定のオブジェクト(例えば、交差ルートにおける他の車両)及びオブジェクトを記述するメタデータ(例えば、速度、方向、操舵角)について、決定モジュール304は、前記オブジェクトと遇うときに如何に対応するか(例えば、追い越し、道譲り、停止、追い抜き)を決定する。決定モジュール304は、交通ルール又は運転ルール312のような、永続性記憶装置352に記憶可能なルールセットに基づいて、このような決定を下すことができる。
【0034】
ルーティングモジュール307は、出発地から目的地までの一つ以上のルート又は経路を提供するように配置されている。ルーティングモジュール307は、出発地位置から目的地位置までの所与の旅程(例えば、ユーザから受信された所与の旅程)について、ルート及び地図情報311を取得し、出発地位置から目的地位置までのすべての可能なルート又は経路を決定する。ルーティングモジュール307は、決定された開始地位置から目的地位置までのルートのそれぞれに用いられる基準線を地形図の形で生成してもよい。あるいは、基準線が基準線ジェネレータ308によって生成されてもよい。基準線とは、その他に、例えば他の車両、障害物又は交通状况からの如何なる干渉も受けない理想的ルート又は経路を指す。即ち、道路には他の車両、歩行者又は障害物が存在しない場合、ADVは、基準線に正確的に又は密接的に従うべきである。それに、地形図を決定モジュール304及び/又は計画モジュール305に提供する。決定モジュール304及び/又は計画モジュール305は、他のモジュールにより提供された他のデータ(例えば測位モジュール301からの交通状况、感知モジュール302により感知された運転環境及び予測モジュール303により予測された交通状况)に応じて、全ての走行可能なルートを検査して最適ルートの一つを選択及び補正する。当該時点における特定の運転環境に応じて、ADVを制御するための実際の経路又はルートは、ルーティングモジュール307によって提供された基準線に近いか又は異なっていてもよい。
【0035】
感知されたオブジェクトのそれぞれに対する决定に基づいて、計画モジュール305は、ルーティングモジュール307によって提供された基準線を準拠として、自動運転車両に対して経路又はルート並びに運転パラメータ(例えば、距離、速度及び/又は操舵角)を計画する。換言すれば、特定のオブジェクトに対し、決定モジュール304は当該オブジェクトに対して何をするかを決定し、計画モジュール305は、どのようにするかを決定する。例えば、所定のオブジェクトに対し、決定モジュール304は、前記オブジェクトを追い抜くかを決定することができ、計画モジュール305は、前記オブジェクトを左側から追い抜くか、又は右側から追い抜くかを決定することができる。計画及び制御データは、計画モジュール305によって生成され、車両300が次の移動周期(例えば、次のルート/経路区間)に如何に移動するかを記述する情報を含む。例えば、計画及び制御データは、車両300が30マイル/時間(mph)の速度で10メートル移動し、次に25mphの速度で右車線に変更するように指示することができる。
【0036】
制御モジュール306は、計画及び制御データに基づいて、計画及び制御データにより限定されたルート又は経路に応じて、車両制御システム111へ適切なコマンド又は信号を送信することによって自動運転車両を制御及び運転する。前記計画及び制御データは、経路又はルートに沿って異なる時点で適切な車両配置又は運転パラメータ(例えば、スロットル、ブレーキ、及びステアリングコマンド)を使用して、車両をルート又は経路の第1の点から第2の点まで運転するのに十分な情報を含む。
【0037】
一実施形態では、計画段階は、複数の計画周期(コマンドサイクルともいう)で実行され、例えば、100ミリ秒(ms)の時間間隔ごとに実行される。計画周期又はコマンドサイクルのそれぞれに対し、計画及び制御データに基づいて一つ以上の制御コマンドを発信する。即ち、100msごとに、計画モジュール305は、次のルート区間又は経路区間(例えば、目標位置及びADVが目標位置に到達するのに必要な時間が含まれる)を計画する。あるいは、計画モジュール305は、具体的な速度、方向及び/又は操舵角等を更に指定することができる。一実施形態では、計画モジュール305は、次の所定期間(例えば、5秒)のルート区間又は経路区間を計画する。計画周期のそれぞれに対し、計画モジュール305は、前の周期において計画された目標位置に基づいて、現在の周期(例えば、次の5秒)に用いられる目標位置を計画する。制御モジュール306は、次に、現在の周期の計画及び制御データに基づいて、一つ以上の制御コマンド(例えば、スロットル、ブレーキ、ステアリング制御コマンド)を生成する。
【0038】
注意すべきなのは、決定モジュール304及び計画モジュール305は、集積モジュールとして一体化されてもよい。決定モジュール304/計画モジュール305には、自動運転車両の走行経路を決定するために、ナビゲーションシステム又はナビゲーションシステムの機能が含まれてもよい。例えば、ナビゲーションシステムは、自動運転車両が以下の経路に沿って移動することを実現するための一連の速度及び進行方向を決定することができ、前記経路については、最終的な目的地に通じる走行車線に基づく経路に沿って自動運転車両が進行するとともに、感知された障害物を実質的に避けることができる。目的地は、ユーザインターフェースシステム113により行われたユーザ入力に応じて設定されることができる。ナビゲーションシステムは、自動運転車両が走行していると同時に走行経路を動的に更新することができる。ナビゲーションシステムは、自動運転車両用の走行経路を決定するために、GPSシステム及び一つ以上の地図からのデータをマージすることができる。
【0039】
決定モジュール304/計画モジュール305は、自動運転車両の環境における潜在的な障害物を、認識、評価、回避又はその他の方式で追い抜くための衝突防止システム又は衝突防止システムの機能を更に含んでもよい。例えば、衝突防止システムは、制御システム111の一つ以上のサブシステムを動作させることで、方向変更動作、カーブ走行動作、ブレーキ動作などを行うことによって、自動運転車両のナビゲーションにおける変更を実現することができる。衝突防止システムは、周辺の交通モード、道路状況等に応じて実現可能な障害物回避動作を自動的に決定することができる。衝突防止システムは、その他のセンサシステムにより自動運転車両が方向変更して入ろうとする隣接領域における車両、建築障害物等が検出された際に方向変更動作をしないように配置されることができる。衝突防止システムは、使用可能でありかつ自動運転車両の乗員の安全性を最大化させる動作を自動的に選択することができる。衝突防止システムは、自動運転車両の客室内に最小値の加速度を発生させると予測される回避動作を選択することができる。
【0040】
一実施形態によれば、ルーティングモジュール307から初期基準線を決定し且つ受信した時、基準線ジェネレータ308は、第1基準線を生成するように配置されている。一般的には、初期基準線は、ルート及び地図情報に基づいて作成されている。一般的に、道路は、複数の道路区間で表わされる。初期基準線は、通常に各道路区間の中心線となる。よって、初期基準線は、互いに接続されている中心線分の集合であり、且つ、特に2つの隣接区間の接続箇所で、このような初期基準線は平滑ではない。基準線ジェネレータ308は、初期基準線に基づいて初期基準線を最適化して平滑化基準線を生成する。
【0041】
一実施形態では、基準線ジェネレータ308は、初期基準線における選択された制御点に対してスプライン最適化を実行する。スプラインは、曲線を形成するために互いに接続された一つ以上の(例えば、区分的)多項式によって表される曲線である。例えば、多項式又は多項式関数は、隣接制御点(制約点ともいう)の間の区間を表すことができる。それぞれの制御点がいずれも、初期制約、等式制約及び不等式制約を含む一組の制約に関連付けられている。
【0042】
初期の制約は、ADVの初期の条件に対応する一組の制約を含み、例えばADVの直接方向及び/又は地理位置が挙げられる。等式制約は、いくつかの同等条件(例えば、完全に又は実質的に一致すること)を満足しなければならないと主張する一組の等式制約を含む。例えば、等式制約には、接合平滑性を確保する、及び/又は、いくつかの点ごとの制約(例えば、スプラインが、前方の複数の点を経由するか、又は前方の複数の特定の点を有すること)を満足する一組の制約が含まれてもよい。不等式制約は、スプラインがいくつかの境界内にあることを確保する(例えば、いくつかの制約値又は公差よりも小さいか又は大きい)一組の制約を含む。不等式制約及び等式制約は、いずれも厳しい制約であり、それらが満たされることが必要である。生成された基準線は、平滑になる。
【0043】
一実施形態によれば、動的計画法技術を利用して初期基準線を生成することができる。このような基準線は、概略の基準線と呼ばれてもよく、平滑ではない。動的計画法(又は動的最適化)は、解決すべき問題を一連の価値関数に分解し、これらの価値関数のそれぞれを一度だけ解決してそれらの解を記憶する数学的最適化手法である。次に同様の価値関数が現る時、その解を再計算する必要がなく、前に算出された解を検索すればよく、よって、計算時間が節約される。一旦、初期又は概略の基準線が生成されると、最適化プロセスによって初期基準線を平滑化することができる。一実施形態では、二次計画法技術により基準線の平滑最適化を実行する。二次計画法は、境界、線形等式、及び/又は不等式制約を受ける目的関数(例えば、いくつかの変数を有する二次関数)を最小化又は最大化することに関する。動的計画法と二次計画法との間の1つの相違点は、二次計画法が基準線上の全ての点について全ての候補運動を一度に最適化することである。
【0044】
しかしながら、上記の最適化動作には時間がかかり、且つ、計画周期の持続時間と比べると、基準線を計算し平滑化することにかなりの時間がかかる。従来のシステムは、通常に、基準線を一度に一つずつ算出する。システムは、計画周期ごとに基準線を生成しなければならない。通常に、計画周期の範囲が0.1秒〜0.2秒である。基準線の計算時間が0.1秒に近いか、又は計画周期の大部分を占めると、計画周期内で他の動作を実行するには十分な時間がない恐れがある。基準線は、通常に200メートルの経路を表す。システムが十分な時間を有するように確保するために、従来のシステムは、基準線を70メートルに限定しなければならず、逆に基準線の計算時間を短縮させる。しかしながら、短い基準線については、高速道路上での計画には長さが足りない恐れがあり、通常に、高速道路上で計画するには200メートルが必要となる。高速道路上では、車両は、急カーブ又は前方で停止している自動車を予測するために、次の200メートルを計画しなければならない。
【0045】
一実施形態によれば、システムは第1基準線から生成された軌跡に従ってADVを制御する時、基準線ジェネレータ308は、軌跡上の、ADVがある時点で到達すると予測された第2位置(即ち、将来位置)に基づいて、個別の処理スレッドを介して、第2基準線を予め算出する。異なるスレッドを使用して第2基準線を並行して算出しつつ、ADVが第2位置に到達する前に依然として軌跡に従って走行する。ADVが第2位置の付近に移動した時、第2位置で第2基準線を計算する必要なしに、予め算出された第2基準線が次の計画周期に用いられる。よって、システムは、次の計画周期(例えば、次の200メートル)を計画するには十分な時間がある。
【0046】
図4は、一実施形態に係る複数のスレッドを使用して基準線を生成するプロセスを示す図である。
図4に示すように、ADVが第1基準線401に基づいて生成された軌跡上で走行していると仮定する。更に、車両が基準線401の第1位置411に位置していると仮定し、当該第1位置411が第1処理スレッド(例えば、計画モジュール305及び/又は制御モジュール306)によって計画及び制御される。位置411においては、基準線ジェネレータ308は、位置411に対する将来時間での第2位置412を決定する。位置412と位置411との間の距離(s)は、車両が位置412に到達するのにかかる時間の量(本明細書では(t))に基づいて決定されてもよい。距離sは、車両の位置411での現在速度(v)に基づいて決定されてもよい。
【0047】
一実施形態では、車両が位置411から位置412までにかかる時間の量が、基準線ジェネレータ308が新たな基準線を算出するのにかかる時間の量以上となる。例えば、基準線ジェネレータ308は、基準線の算出にtをかかると、s=t*vに基づいて位置411と位置412との間の距離sを決定することができ、ただし、vは、車両の位置411での速度を指す。当該要件の裏にある基本原理は、基準線402の生成を完了するためにΔtを要するということである。車両は、第2位置412に到達するのにかかる時間がΔtよりも短い場合、車両が位置412に到達した時、基準線402が使用不可又は未完成である可能性がある。
【0048】
よって、位置411では、第2処理スレッドを介して、基準線ジェネレータ308が位置412の初期位置を有する第2基準線402を同時に生成する。注意すべきなのは、第2基準線402を計算する第2処理スレッドに対し、第1基準線401に基づいて生成された軌跡に従って車両を運転する第1処理スレッドを同時に実行する。車両が位置412に到達する前に第2基準線402を計算する。車両が位置412の所定の近接領域内の位置に到達した時、基準線402を取り戻し、当該基準線402を利用して次の計画周期に用いられる新たな軌跡を生成する。位置412では、車両が基準線401から基準線402に切り替えられる。同様に、車両が基準線402から生成された軌跡上で走行している時、他の新たな基準線を計算するために新たな処理スレッドを実行し、当該例示では、基準線403は位置413から始まり、他も同様である。即ち、車両が予め算出された基準線の相応した位置(例えば、出発地)に到達する前に、個別の処理スレッドを使用し特定の計画周期に使用しようとする基準線のそれぞれを予め算出する。よって、対応する位置では、システムは、基準線を算出するために時間を費やす必要がなくなる。
【0049】
一実施形態によれば、一つ以上の個別の処理スレッドを使用して、複数の将来基準線を予め算出して記憶位置(例えば、メモリ又は永続メモリ)に記憶されることができる。例えば、位置411では、基準線ジェネレータ308が例えば位置412〜位置414の将来の位置を予測及び選択し、いくつかの処理スレッドを起動して選択された位置に対応する将来基準線、例えば、基準線402〜基準線404を計算することができる。一実施形態では、
図5に示すように、個別の処理スレッドを起動して将来基準線のそれぞれを計算する。
【0050】
ここで
図5を参照し、特定の基準線501に基づいて、複数の基準線
処理スレッド511〜513を起動して将来基準線521〜523をそれぞれ計算する。あるいは、一つの個別の処理スレッドは複数の将来基準線を算出することができる。基準線521〜基準線523が共有記憶位置に記憶されてもよく、例えばシステムメモリ又は永続性記憶装置(例えば、ハードウェア)の専用記憶位置に記憶されてもよい。その後、車両が現在位置である特定位置に到達した時、次の計画周期については、現在位置が基準線521〜基準線523に関連する対応位置(例えば、開始位置)と一致するように、基準線ジェネレータ308が現在位置をチェックして基準線521〜基準線523が含まれる記憶位置を検索する。現在位置が基準線521〜基準線523に関連する位置のいずれかと一致する場合、記憶位置から一致した基準線を取り戻す。それに、計画モジュール305は、取り戻された基準線を利用して新たな軌跡を計画し、同様の計画周期のために同様の基準線を算出する必要がない。
【0051】
一実施形態によれば、
図6に示すように、基準線521〜基準線523が位置及び基準線(位置/基準線)マッピングテーブルに記憶されており、当該マッピングテーブルがメモリ及び/又は永続性記憶装置に保持されてもよい。
図6を参照し、一実施形態では、位置/基準線マッピングテーブル
313には、多数のマッピングエントリが含まれている。マッピングエントリのそれぞれが特定位置601を特定の基準線602にマッピングする。位置601は、基準線602の開始位置を示す。車両の現在位置を特定し、現在位置に基づいて検索動作を実行し、現在位置と一致する位置601を有するマッピングエントリを位置特定する。それにマッチングエントリから基準線602を取り戻し、次のコマンドサイクルに用いられる軌跡を生成する。
【0052】
車両が前進するにつれて、より多くの予め算出された基準線602が消費され、且つ、さらに、上記のような複数の処理スレッドを使用してより多くの新たな基準線が生成される。それに、新たな基準線を位置/基準線マッピングテーブルに記憶し、例えば、位置601に基づいて索引付けされる。同時に、車両がすでに関連した位置を通過した如何なるマッピングエントリをテーブル
313から削除する。マッピングエントリのこのようなハウスキーピング操作は、個別のハウスキーピングスレッドによって実行されてもよい。あるいは、ハウスキーピング操作は、基準線を消費又は取り戻すように処理スレッドによって実行されてもよく、又は新たな基準線が挿入された処理スレッドによって実行されてもよい。
【0053】
図7は、一実施形態に係る基準線を生成するプロセスを示すフローチャートである。プロセス700は、処理ロジックによって実行されてもよく、前記処理ロジックがソフトウェア、ハードウェア又はそれらの組み合わせを含んでもよい。例えば、プロセス700は、基準線ジェネレータ308によって実行されてもよい。
図7を参照し、動作701においては、処理ロジックが第1処理スレッドを介して第1基準線に基づいて生成された第1軌跡に従ってADVを制御し、当該第1基準線が第1位置から始まる。動作702においては、第2処理スレッドを介して、処理ロジックは、第1軌跡に沿った第2位置に基づいて第2基準線を同時に生成し、当該第2位置がADVが所定の期間内で近い将来に到達可能な位置である。ADVが第2位置の所定の近接領域内にあると決定されたことに応答し、動作703においては、処理ロジックは第2基準線に基づいて第2軌跡を生成し、第2位置に近い時点で第2基準線を算出する必要がなくなる。動作704においては、第2位置から始まる第2軌跡に基づいてADVを制御する。
【0054】
図8は、他の実施形態に係る基準線を生成するプロセスを示すフローチャートである。プロセス800は、処理ロジックによって実行されてもよく、前記処理ロジックがソフトウェア、ハードウェア又はそれらの組み合わせを含んでもよい。例えば、プロセス800は、基準線ジェネレータ308によって実行されてもよい。
図8を参照し、動作801においては、処理ロジックは、地図及びルート情報に基づいて開始位置から終了位置までの経路を計画する。動作802においては、処理ロジックはADVの現在位置に基づいて経路に用いられる第1基準線を生成する。動作803においては、処理ロジックは、車両が第1基準線に沿って到達可能な一つ以上の将来位置を決定して選択する。将来位置のそれぞれに対し、動作804においては、個別の処理スレッドを介して、処理ロジックは、対応する将来位置に用いられる将来基準線を予め算出し、同時に第1基準線に沿って車両を制御する。動作805においては、将来基準線を記憶位置(例えば、位置/基準線マッピングテーブル)に記憶する。
【0055】
図9は、他の実施形態に係る基準線を生成するプロセスを示すフローチャートである。プロセス900は、処理ロジックによって実行されてもよく、前記処理ロジックがソフトウェア、ハードウェア又はそれらの組み合わせを含んでもよい。例えば、プロセス900は、基準線ジェネレータ308によって実行されてもよい。
図9に示すように、動作901においては、処理ロジックは、例えばGPS及び/又はIMUユニットから受信した情報に基づいてADVの現在位置を確定する。動作902においては、処理ロジックは、現在位置に基づいて所定の記憶位置(例えば、位置/基準線マッピングテーブル)において検索動作を実行し、現在位置と一致するマッチングエントリを位置特定する。動作903においては、処理ロジックは、マッチングエントリから予め算出された基準線を取得する。動作904においては、マッチングエントリから取得された基準線に基づいて軌跡を生成する。動作905においては、軌跡に従って移動するようにADVを制御する。注意すべきなのは、プロセス900は、プロセス800の第2処理スレッドの一部として実行されてもよい。あるいは、プロセス900は、個別のスレッドである第3処理スレッドを介して実行されてもよい。
【0056】
注意すべきなのは、以上に例示及び説明された構成要素の一部又は全ては、ソフトウェア、ハードウェア又はそれらの組み合わせで実現されることができる。例えば、このような構成要素は、永続性記憶装置にインストールされるとともに記憶されたソフトウェアとして実現されてもよく、前記ソフトウェアは、本願にわたって記載されたプロセス又は動作を実施するように、プロセッサ(図示せず)でメモリにロードして実行されてもよい。あるいは、このような構成要素は、集積回路(例えば特定用途向け集積回路又はASIC)、デジタルシグナルプロセッサ(DSP)、又はフィールドプログラマブルゲートアレイ(FPGA)のような専用ハードウェアにプログラミング又は埋め込まれた実行可能なコードとして実現されてもよく、前記実行可能なコードは、アプリケーションからの対応するドライバー及び/又はオペレーティングシステムを介してアクセスすることができる。なお、このような構成要素は、ソフトウェア構成要素が一つ以上の特定の命令によってアクセス可能な命令セットの一部として、プロセッサ又はプロセッサコアにおける特定のハードウェアロジックとして実現されることができる。
【0057】
図10は、本開示の一実施形態と共に使用可能なデータ処理システムの一例を示すブロック図である。例えば、システム1500は、
図1の感知及び計画システム110、又はサーバ103〜104のいずれかのような、前記プロセス又は方法のいずれかを実行する前記データ処理システムのいずれかを表すことができる。システム1500は、いくつかの異なる構成要素を含むことができる。これらの構成要素は、集積回路(IC)、集積回路の一部、ディスクリート型電子デバイス、又は回路基板(例えば、コンピュータシステムのマザーボード又はアドインカード)に適するその他のモジュールとして実現されることができ、又は、他の形態でコンピュータシステムのシャーシ内に組み込まれた構成要素として実現されることができる。
【0058】
なお、システム1500は、コンピュータシステムのいくつかの構成要素の高レベルビューを示すことを意図している。しかしながら、理解すべきなのは、いくつかの実施例において付加的構成要素が存在してもよく、また、その他の実施例において示された構成要素を異なる配置にすることが可能である。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤ、パーソナルデジタルアシスタント(PDA)、スマートウォッチ、パーソナルコミュニケーター、ゲーム装置、ネットワークルーター又はハブ、無線アクセスポイント(AP)又はリピーター、セット・トップボックス、又はそれらの組み合わせを表すことができる。さらに、単一の機械又はシステムのみが示されたが、「機械」又は「システム」という用語は、本明細書で説明されるいずれか一種以上の方法を実行するための、単独で又は共同で一つ(又は複数)の命令セットを実行する機械又はシステムの任意の組み合わせも含まれると解釈されるものとする。
【0059】
一実施形態では、システム1500は、バス又はインターコネクト1510を介して接続される、プロセッサ1501と、メモリ1503と、装置1505〜1508とを含む。プロセッサ1501は、単一のプロセッサコア又は複数のプロセッサコアが含まれる単一のプロセッサ又は複数のプロセッサを表すことができる。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)などのような、一つ以上の汎用プロセッサを表すことができる。より具体的には、プロセッサ1501は、複雑命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又はその他の命令セットを実行するプロセッサ、又は命令セットの組み合わせを実行するプロセッサであってもよい。プロセッサ1501は更に、例えば、特定用途向け集積回路(ASIC)、セルラー又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、グラフィックプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組込みプロセッサ、又は命令を処理可能な任意の他のタイプのロジックのような、一つ以上の専用プロセッサであってもよい。
【0060】
プロセッサ1501は、超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよく、前記システムの様々な構成要素と通信するための主処理ユニット及び中央ハブとして機能することができる。このようなプロセッサは、システムオンチップ(SoC)として実現されることができる。プロセッサ1501は、本明細書で説明される動作及びステップを実行するための命令を実行するように構成される。システム1500は、更に所望によるグラフィックサブシステム1504と通信するグラフィックインターフェースを含むことができ、グラフィックサブシステム1504は、表示コントローラ、グラフィックプロセッサ、及び/又は表示装置を含むことができる。
【0061】
プロセッサ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、又はその他のリアルタイム若しくは組込みオペレーティングシステムのような、任意のタイプのオペレーティングシステムであってもよい。
【0062】
システム1500は、例えば、ネットワークインターフェース装置1505、所望による入力装置1506、及びその他の所望によるIO装置1507を含む装置1505〜1508のようなIO装置を更に含むことができる。ネットワークインターフェース装置1505は、無線送受信機及び/又はネットワークインターフェースカード(NIC)を含むことができる。前記無線送受信機は、WiFi送受信機、赤外線送受信機、ブルートゥース送受信機、WiMax送受信機、無線携帯電話送受信機、衛星送受信機(例えば、全地球測位システム(GPS)送受信機)、又はその他の無線周波数(RF)送受信機、又はそれらの組み合わせであってもよい。NICは、イーサネットカードであってもよい。
【0063】
入力装置1506は、マウス、タッチパネル、タッチスクリーン(表示装置1504と統合されてもよい)、ポインター装置(例えば、スタイラス)、及び/又はキーボード(例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード)を含むことができる。例えば、入力装置1506は、タッチスクリーンと接続するタッチスクリーンコントローラを含むことができる。タッチスクリーン及びタッチスクリーンコントローラは、例えば、様々なタッチ感応技術(コンデンサ、抵抗、赤外線、及び表面弾性波の技術を含むが、それらに限定されない)のいずれか、並びにその他の近接センサアレイ、又は、タッチスクリーンと接触する一つ以上の点を決定するためのその他の素子を用いて、それらの接触及び移動又は中断を検出することができる。
【0064】
IO装置1507は、音声装置を含むことができる。音声装置は、例えば、音声認識、音声複製、デジタル記録、及び/又は電話機能のような音声サポートの機能を促進するために、スピーカ及び/又はマイクロフォンを含んでもよい。その他のIO装置1507は、ユニバーサルシリアルバス(USB)ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ(例えば、PCIーPCIブリッジ)、センサ(例えば、加速度計のようなモーションセンサ、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなど)、又はそれらの組み合わせを更に含むことができる。装置1507は、更に結像処理サブシステム(例えば、カメラ)を含むことができ、前記結像処理サブシステムは、写真及びビデオ断片の記録のようなカメラ機能を促進するための光学センサを含むことができ、例えば、電荷結合素子(CCD)又は相補型金属酸化物半導体(CMOS)光学センサが挙げられる。特定のセンサは、センサハブ(図示せず)を介してインターコネクト1510に接続されることができ、キーボード又はサーマルセンサのようなその他の装置はシステム1500の具体的な配置又は設計により、組込みコントローラ(図示せず)により制御されることができる。
【0065】
データ、アプリケーション、一つ以上のオペレーティングシステムなどの情報の永続性記憶を提供するために、プロセッサ1501には、大容量記憶装置(図示せず)が接続されることもできる。様々な実施形態において、より薄くてより軽量なシステム設計を可能にしながら、システムの応答性を向上するために、このような大容量記憶装置は、ソリッドステートデバイス(SSD)によって実現されることができる。しかしながら、その他の実施形態では、大容量記憶装置は、主にハードディスクドライブ(HDD)を使用して実現されることができ、より小さい容量のSSD記憶装置をSSDキャッシュとして機能することで、停電イベントの間にコンテキスト状態及び他のそのような情報の不揮発性記憶を可能にし、それによりシステム動作が再開するときに通電を速く実現することができる。また、フラッシュデバイスは、例えば、シリアルペリフェラルインターフェース(SPI)を介してプロセッサ1501に接続されることができる。このようなフラッシュデバイスは、前記システムのBIOS及びその他のファームウェアを含むシステムソフトウェアの不揮発性記憶のために機能することができる。
【0066】
記憶装置1508は、コンピュータアクセス可能な記憶媒体1509(機械可読記憶媒体又はコンピュータ可読媒体ともいう)を含むことができ、前記コンピュータアクセス可能な記憶媒体1509には、本明細書で記載されたいずれか一種以上の方法又は機能を具現化する一つ以上の命令セット又はソフトウェア(例えば、モジュール、ユニット、及び/又はロジック1528)が記憶されている。処理モジュール/ユニット/ロジック1528は、計画モジュール305、制御モジュール306及び/又は基準線ジェネレータ308のような、前記構成要素のいずれかを表すことができる。処理モジュール/ユニット/ロジック1528は、更に、データ処理システム1500、メモリ1503、及びプロセッサ1501による実行中に、メモリ1503内及び/又はプロセッサ1501内に完全的に又は少なくとも部分的に存在してもよく、データ処理システム1500、メモリ1503、及びプロセッサ1501も機械アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528は、更に、ネットワークを介してネットワークインターフェース装置1505を経由して送受信されてもよい。
【0067】
コンピュータ可読記憶媒体1509は、以上に説明されたいくつかのソフトウェア機能を永続的に記憶するために用いることができる。コンピュータ可読記憶媒体1509は、例示的な実施形態において単一の媒体として示されるが、「コンピュータ可読記憶媒体」という用語は、前記一つ以上の命令セットが記憶される単一の媒体又は複数の媒体(例えば、集中型又は分散型データベース、及び/又は関連するキャッシュとサーバ)を含むと解釈されるものとする。「コンピュータ可読記憶媒体」という用語は更に、命令セットを記憶又は符号化できる任意の媒体を含むと解釈されるものであり、前記命令セットは機械により実行され、本開示のいずれか一種以上の方法を前記機械に実行させるためのものである。それゆえに、「コンピュータ可読記憶媒体」という用語は、ソリッドステートメモリ、光学媒体及び磁気媒体、又はその他の任意の非一時的な機械可読媒体を含むが、それらに限定されないと解釈されるものとする。
【0068】
本明細書に記載の処理モジュール/ユニット/ロジック1528、構成要素及びその他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はASICS、FPGA、DSP又は類似の装置のようなハードウェア構成要素の機能に統合されてもよい。更に、処理モジュール/ユニット/ロジック1528は、ハードウェア装置におけるファームウェア又は機能性回路として実現されてもよい。更に、処理モジュール/ユニット/ロジック1528は、ハードウェア装置とソフトウェア構成要素の任意の組み合わせで実現されてもよい。
【0069】
なお、システム1500は、データ処理システムの様々な構成要素を有するものとして示されているが、構成要素を相互接続する任意の特定のアーキテクチャ又は方式を表すことを意図するものではなく、そのような詳細は、本開示の実施形態と密接な関係がない。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、及び/又はその他のデータ処理システムも、本開示の実施形態と共に使用することができることを理解されたい。
【0070】
前記具体的な説明の一部は、既に、コンピュータメモリにおけるデータビットに対する演算のアルゴリズムと記号表現で示される。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。本明細書では、一般的に、アルゴリズムは、所望の結果につながるセルフコンシステントシーケンスと考えられる。これらの動作は、物理量の物理的処置が必要なものである。
【0071】
しかしながら、念頭に置くべき
ことは、これらの用語及び類似の用語の全ては、適切な物理量に関連付けられるものであり、これらの量を標識しやすくするためのものに過ぎない。以上の説明で他に明示的に記載されていない限り、本明細書の全体にわたって理解するべき
ことは、添付された特許請求の範囲に記載するもののような用語による説明とは、コンピュータシステム、又は類似の電子計算装置の動作及びプロセスを指し、前記コンピュータシステム又は電子計算装置は、コンピュータシステムのレジスタ及びメモリにおける物理(電子)量として示されるデータを制御するとともに、前記データをコンピュータシステムメモリ又はレジスタ又はこのようなその他の情報記憶装置、伝送又は表示装置において同様に物理量として示される別のデータに変換する。
【0072】
本開示の実施形態は、本明細書の動作を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的なコンピュータ可読媒体に記憶される。機械可読媒体は、機械(例えば、コンピュータ)により読み取り可能な形式で情報を記憶するための任意のメカニズムを含む。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置)を含む。
【0073】
上述した図面において説明されたプロセス又は方法は、ハードウェア(例えば、回路、専用ロジックなど)、ソフトウェア(例えば、非一時的なコンピュータ可読媒体に具現化されるもの)、又は両方の組み合わせを含む処理ロジックにより実行されることができる。前記プロセス又は方法は、以上で特定の順序に応じて説明されたが、前記動作の一部が異なる順序で実行されてもよいことを理解されたい。また、一部の動作は、順番ではなく並行して実行できる。
【0074】
本開示の実施形態は、いずれの特定のプログラミング言語を参照することなく記載されている。理解すべきなのは、本明細書に記載の本開示の実施形態の教示を実現するために、様々なプログラミング言語を使用することができる。
【0075】
前記明細書において、本開示の実施形態は、既にその具体的な例示的な実施形態を参照しながら記載された。明らかなように、添付された特許請求の範囲に記載された本開示のより広い趣旨及び範囲を逸脱しない限り、本発明に対して様々な変更を行うことができる。それゆえに、本明細書及び図面は、限定的な意味でなく、例示的な意味で理解されるべきである。
なお、本願の出願当初の開示事項を維持するために、本願の出願当初の請求項1〜21の記載内容を以下に追加する。
(請求項1)
自動運転車両を動作させるための基準線を生成するコンピュータ実施方法であって、
第1処理スレッドを介して、第1位置から始まる第1基準線に基づいて生成された第1軌跡に従って、自動運転車両を制御するステップと、
同時に、第2処理スレッドを介して、前記自動運転車両が将来の所定期間内に到達する見込みのある前記第1軌跡の第2位置に基づいて、第2基準線を生成するステップと、
前記自動運転車両が前記第2位置の所定の近接領域内にあると確定されたことに応答し、前記第2位置で前記第2基準線を計算する必要なしに、前記第2基準線に基づいて第2軌跡を生成するステップと、
前記第2位置から始まる前記第2軌跡に従って、前記自動運転車両を制御するステップと、を含む、
コンピュータ実施方法。
(請求項2)
前記所定期間は、前記自動運転車両に用いられる基準線の生成に必要な時間の量以上となる、
請求項1に記載の方法。
(請求項3)
前記第2位置は、前記自動運転車両が将来に到達する見込みのある前記第1軌跡から選択された複数の第3位置のうちの一つである、
請求項1に記載の方法。
(請求項4)
前記第2基準線を生成するステップは、
前記第3位置のそれぞれに対し、個別の処理スレッドを介して、前記第3位置に用いられる第3基準線を同時に生成することと、
前記自動運転車両が前記第1軌跡に従って移動する間に前記第3基準線を記憶領域に記憶することと、を含む、
請求項3に記載の方法。
(請求項5)
前記記憶領域には、複数のマッピングエントリを有するマッピングテーブルが含まれており、
マッピングエントリのそれぞれには、前記第3位置のうちの一つが対応する第3基準線のうちの一つにマッピングされる、
請求項4に記載の方法。
(請求項6)
前記自動運転車両の現在位置を確定するステップと、
関連位置が前記現在位置と一致する前記第3基準線のうちの一つを取得するために、前記自動運転車両の前記現在位置に基づいて、前記記憶領域において検索するステップと、
次の計画周期のために前記自動運転車両を制御するために、取得された第3基準線に基づいて次の軌跡を生成するステップと、を更に含む、
請求項4に記載の方法。
(請求項7)
前記自動運転車両が前記第1軌跡に従って前記第2位置に到達する前に、前記第2基準線を生成する、
請求項1に記載の方法。
(請求項8)
命令が記憶されている非一時的な機械可読媒体であって、前記命令は、プロセッサによって実行される時に、
第1処理スレッドを介して、第1位置から始まる第1基準線に基づいて生成された第1軌跡に従って、自動運転車両を制御するステップと、
同時に、第2処理スレッドを介して、前記自動運転車両が将来の所定期間内に到達する見込みのある前記第1軌跡の第2位置に基づいて、第2基準線を生成するステップと、
前記自動運転車両が前記第2位置の所定の近接領域内にあると確定されたことに応答し、前記第2位置で前記第2基準線を計算する必要なしに、前記第2基準線に基づいて第2軌跡を生成するステップと、
前記第2位置から始まる前記第2軌跡に従って、前記自動運転車両を制御するステップと、
を含む動作を前記プロセッサに実行させる、
非一時的な機械可読媒体。
(請求項9)
前記所定期間は、前記自動運転車両に用いられる基準線の生成に必要な時間の量以上となる、
請求項8に記載の機械可読媒体。
(請求項10)
前記第2位置は、前記自動運転車両が将来に到達する見込みのある前記第1軌跡から選択された複数の第3位置のうちの一つである、
請求項8に記載の機械可読媒体。
(請求項11)
前記第2基準線を生成するステップは、
前記第3位置のそれぞれに対し、個別の処理スレッドを介して、前記第3位置に用いられる第3基準線を同時に生成することと、
前記自動運転車両が前記第1軌跡に従って移動する間に前記第3基準線を記憶領域に記憶することとを含む、
請求項10に記載の機械可読媒体。
(請求項12)
前記記憶領域には、複数のマッピングエントリを有するマッピングテーブルが含まれており、
マッピングエントリのそれぞれには、前記第3位置のうちの一つが対応する第3基準線のうちの一つにマッピングされる、
請求項11に記載の機械可読媒体。
(請求項13)
前記動作は、
前記自動運転車両の現在位置を確定するステップと、
関連位置が前記現在位置と一致する前記第3基準線のうちの一つを取得するために、前記自動運転車両の前記現在位置に基づいて、前記記憶領域において検索するステップと、
次の計画周期のために前記自動運転車両を制御するために、取得された第3基準線に基づいて次の軌跡を生成するステップと、を更に含む、
請求項11に記載の機械可読媒体。
(請求項14)
前記自動運転車両が前記第1軌跡に従って前記第2位置に到達する前に、前記第2基準線を生成する、
請求項8に記載の機械可読媒体。
(請求項15)
プロセッサと、
命令を記憶するために、前記プロセッサに接続されるメモリであって、前記命令は、前記プロセッサによって実行される時に、
第1処理スレッドを介して、第1位置から始まる第1基準線に基づいて生成された第1軌跡に従って、自動運転車両を制御するステップと、
同時に、第2処理スレッドを介して、前記自動運転車両が将来の所定期間内に到達する見込みのある前記第1軌跡の第2位置に基づいて、第2基準線を生成するステップと、
前記自動運転車両が前記第2位置の所定の近接領域内にあると確定されたことに応答し、前記第2位置で前記第2基準線を計算する必要なしに、前記第2基準線に基づいて第2軌跡を生成するステップと、
前記第2位置から始まる前記第2軌跡に従って、前記自動運転車両を制御するステップと、
を含む動作を前記プロセッサに実行させるメモリと、を備える、
データ処理システム。
(請求項16)
前記所定期間は、前記自動運転車両に用いられる基準線の生成に必要な時間の量以上となる、
請求項15に記載のシステム。
(請求項17)
前記第2位置は、前記自動運転車両が将来に到達する見込みのある前記第1軌跡から選択された複数の第3位置のうちの一つである、
請求項15に記載のシステム。
(請求項18)
前記第2基準線を生成するステップは、
前記第3位置のそれぞれに対し、個別の処理スレッドを介して、前記第3位置に用いられる第3基準線を同時に生成することと、
前記自動運転車両が前記第1軌跡に従って移動する間に前記第3基準線を記憶領域に記憶することとを含む、
請求項17に記載のシステム。
(請求項19)
前記記憶領域には、複数のマッピングエントリを有するマッピングテーブルが含まれており、
マッピングエントリのそれぞれには、前記第3位置のうちの一つが対応する第3基準線のうちの一つにマッピングされる、
請求項18に記載のシステム。
(請求項20)
前記動作は、
前記自動運転車両の現在位置を確定するステップと、
関連位置が前記現在位置と一致する前記第3基準線のうちの一つを取得するために、前記自動運転車両の前記現在位置に基づいて、前記記憶領域において検索するステップと、
次の計画周期のために前記自動運転車両を制御するために、取得された第3基準線に基づいて次の軌跡を生成するステップと、を更に含む、
請求項18に記載のシステム。
(請求項21)
前記自動運転車両が前記第1軌跡に従って前記第2位置に到達する前に、前記第2基準線を生成する、
請求項15に記載のシステム。