(57)【要約】  一実施形態では、ステアリング制御遅延を測定し、ここで、ステアリング遅延は、ステアリング制御コマンドを発行する時間と自律走行車の１つ以上の車輪から受信された応答時間との間の遅延を示す。速度制御遅延は、速度制御コマンドを発行した時間と、自律走行車の１つ以上の車輪からの応答時間或はガスペダル又はブレーキペダルに圧力を与える時間との間で測定される。その後、定められたルートに応答して、全体のシステム遅延は、予め決められたアルゴリズムを使用してステアリング制御遅延又は速度制御遅延に基づいて決定される。自律走行車を走行させるための計画及び制御データは、システム遅延を考慮して生成される。【選択図】図３
2019503294.tif 000002
【特許請求の範囲】
【請求項１】
自律走行車を走行させるためのコンピュータ実施方法であって、
ステアリング制御コマンドを発行する時間と、自律走行車の１つ以上の車輪からの第１の応答時間との間のステアリング制御遅延を測定するステップと、
速度制御コマンドを発行する時間と、前記自律走行車の１つ以上の車輪からの第２の応答時間との間の速度制御遅延を測定するステップと、
定められたルートに応答して、予め決定されたアルゴリズムを用いて前記ステアリング制御遅延と前記速度制御遅延とに基づいて、全体のシステム遅延を推定するステップと、
前記定められたルートに従って前記自律走行車を走行させるように、前記システム遅延に基づいて計画及び制御データを生成するステップと、を含む、ことを特徴とする方法。
【請求項２】
前記ステアリング制御遅延は、ステアリング制御コマンドを発行することと、前記ステアリング制御コマンドによって指定された角度で前記１つ以上の車輪の位置を決めることとの間の時間に基づいて測定される、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記速度制御遅延は、加速コマンドを発行する時間と、前記自律走行車が加速を開始する時間との差を示す加速遅延を含む、ことを特徴とする請求項１に記載の方法。
【請求項４】
前記速度制御遅延は、ブレーキコマンドを発行する時間と、前記自律走行車が減速を開始する時間との差を示す減速遅延を含む、ことを特徴とする請求項１に記載の方法。
【請求項５】
前記予め決定されたアルゴリズムは、加重アルゴリズムであり、且つ、前記ステアリング制御遅延及び前記速度制御遅延のそれぞれに、特定の運転シナリオに用いられる特定の加重係数が割り当てられる、ことを特徴とする請求項１に記載の方法。
【請求項６】
前記自律走行車が回転する直前に、前記ステアリング制御遅延に用いられる加重係数をより高く調整する、ことを特徴とする請求項５に記載の方法。
【請求項７】
前記自律走行車の現在速度と目標速度との差が大きくなると、前記速度制御遅延に用いられる加重係数をより高く調整する、ことを特徴とする請求項５に記載の方法。
【請求項８】
前記自律走行車の制御システムが制御コマンドを生成して発行するのにかかる時間を示す演算遅延を決定するステップと、
前記自律走行車の通信バスを介して制御コマンドを送信する時間遅延を示す通信遅延を決定するステップであって、前記システム遅延は、さらに、前記演算遅延及び前記通信遅延に基づいて推定されるステップと、をさらに含む、ことを特徴とする請求項１に記載の方法。
【請求項９】
コマンドが記憶されており、前記コマンドがプロセッサにより実行されるとき、前記プロセッサに自律走行車のシステム遅延を決定する処理を実行させる、不発揮性の機械可読媒体であって、
前記処理は、
ステアリング制御コマンドを発行する時間と、自律走行車の１つ以上の車輪からの第１の応答時間との間のステアリング制御遅延を測定することと、
速度制御コマンドを発行する時間と、前記自律走行車の１つ以上の車輪からの第２の応答時間との間の速度制御遅延を測定することと、
定められたルートに応答して、予め決定されたアルゴリズムを用いて前記ステアリング制御遅延と前記速度制御遅延とに基づいて、全体のシステム遅延を推定することと、
前記定められたルートに従って前記自律走行車を走行させるように、前記システム遅延に基づいて計画及び制御データを生成することと、を含む、ことを特徴とする不発揮性の機械可読媒体。
【請求項１０】
前記ステアリング制御遅延は、ステアリング制御コマンドを発行することと、前記ステアリング制御コマンドによって指定された角度で前記１つ以上の車輪の位置を決めることとの間の時間に基づいて測定される、ことを特徴とする請求項９に記載の機械可読媒体。
【請求項１１】
前記速度制御遅延は、加速コマンドを発行する時間と、前記自律走行車が加速を開始する時間との差を示す加速遅延を含む、ことを特徴とする請求項９に記載の機械可読媒体。
【請求項１２】
前記速度制御遅延は、ブレーキコマンドを発行する時間と、前記自律走行車が減速を開始する時間との差を示す減速遅延を含む、ことを特徴とする請求項９に記載の機械可読媒体。
【請求項１３】
前記予め決定されたアルゴリズムは、加重アルゴリズムであり、且つ、前記ステアリング制御遅延及び前記速度制御遅延のそれぞれに、特定の運転シナリオに用いられる特定の加重係数が割り当てられる、ことを特徴とする請求項９に記載の機械可読媒体。
【請求項１４】
前記自律走行車が回転する直前に、前記ステアリング制御遅延に用いられる加重係数をより高く調整する、ことを特徴とする請求項１３に記載の機械可読媒体。
【請求項１５】
前記自律走行車の現在速度と目標速度の差が大きくなると、前記速度制御遅延のための加重係数をより高く調整する、ことを特徴とする請求項１３に記載の機械可読媒体。
【請求項１６】
前記処理は、
前記自律走行車の制御システムが制御コマンドを生成して発行するのにかかる時間を示す演算遅延を決定することと、
前記自律走行車の通信バスを介して制御コマンドを送信する時間遅延を示す通信遅延を決定することであって、前記システム遅延は、さらに、前記演算遅延及び前記通信遅延に基づいて推定されることと、をさらに含む、ことを特徴とする請求項９に記載の機械可読可能媒体。
【請求項１７】
プロセッサと、
前記プロセッサに連結されてコマンドを記憶するメモリと、を含み、
前記コマンドが前記プロセッサによって実行されるとき、前記プロセッサに自律走行車のシステム遅延を決定する処理を実行させる、データ処理システムであって、
前記処理は、
ステアリング制御コマンドを発行する時間と、自律走行車の１つ以上の車輪からの第１の応答時間との間のステアリング制御遅延を測定することと、
速度制御コマンドを発行する時間と、前記自律走行車の１つ以上の車輪からの第２の応答時間との間の速度制御遅延を測定することと、
定められたルートに応答して、予め決定されたアルゴリズムを用いて前記ステアリング制御遅延と前記速度制御遅延とに基づいて、全体のシステム遅延を推定することと、
前記定められたルートに従って前記自律走行車を走行させるように、前記システム遅延に基づいて計画及び制御データを生成することと、を含む、ことを特徴とするデータ処理システム。
【請求項１８】
前記ステアリング制御遅延は、ステアリング制御コマンドを発行することと、前記ステアリング制御コマンドによって指定された角度で前記１つ以上の車輪の位置を決めることとの間の時間に基づいて測定される、ことを特徴とする請求項１７に記載のデータ処理システム。
【請求項１９】
前記速度制御遅延は加速コマンドを発行する時間と、前記自律走行車が加速を開始する時間との差を示す加速遅延を含む、ことを特徴とする請求項１７に記載のデータ処理システム。
【請求項２０】
前記速度制御遅延は、ブレーキコマンドを発行する時間と、前記自律走行車が減速を開始する時間との差を示す減速遅延を含む、ことを特徴とする請求項１７に記載のデータ処理システム。
【請求項２１】
前記予め決定されたアルゴリズムは、加重アルゴリズムであり、且つ、前記ステアリング制御遅延及び前記速度制御遅延のそれぞれに、特定の運転シナリオに用いられる特定の加重係数が割り当てられる、ことを特徴とする請求項１７に記載のデータ処理システム。
【請求項２２】
前記自律走行車が回転する直前に、前記ステアリング制御遅延に用いられる加重係数をより高く調整する、ことを特徴とする請求項２１に記載のデータ処理システム。
【請求項２３】
前記自律走行車の現在速度と目標速度の差が大きくなると、前記速度制御遅延のための加重係数をより高く調整する、ことを特徴とする請求項２１に記載のデータ処理システム。
【請求項２４】
前記処理は、
前記自律走行車の制御システムが制御コマンドを生成して発行するのにかかる時間を示す演算遅延を決定することと、
前記自律走行車の通信バスを介して制御コマンドを送信する時間遅延を示す通信遅延を決定することであって、前記システム遅延は、さらに、前記演算遅延及び前記通信遅延に基づいて推定されることと、をさらに含む、ことを特徴とする請求項１７に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一般的に、自律走行車を走行させることに関するものである。特に、本発明の実施形態は、自律走行車を走行させるときに自律走行車のシステム遅延を推定することに関するものである。
【背景技術】
【０００２】
車両が自律走行モード（例えば、無人運転）で走行している場合、乗員、特に運転者を運転に関連するいくつかの責任から解放することができる。自律走行モードで走行している場合、当該車両が車載センサを利用して様々な場所へ案内されることができ、それによりヒューマン・インタラクションの最も少ない場合、又は乗客なしの場合に走行することを可能にする。
【０００３】
モーション計画及び制御は、自律走行において重要な動作である。しかし、システムのある構成又は設計の原因で、あるシステム遅延が、制御コマンドを発行することと、車両からの応答との間に発生する可能性がある。このようなシステム遅延を原因として、ある状況では、車両を計画及び制御する精度などの問題が発生する可能性がある。このようなシステム遅延を判断したり、推定したりすることは困難である。
【０００４】
本発明の実施形態は図面の各図において限定的ではなく例示的な形態で示され、図面における同じ図面符号が類似する素子を示す。
【図面の簡単な説明】
【０００５】
【図１】本発明の一実施形態に係るネットワークシステムを示すブロック図である。
【図２】本発明の一実施形態に係る自律走行車の一例を示すブロック図である。
【図３】本発明の一実施形態に係る自律走行車に使用されるデータ処理システムの一例を示すブロック図である。
【図４】システム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。
【図５】本発明の一実施形態に係る運転シナリオ−システム遅延マッピングテーブルの一例を示すブロック図である。
【図６Ａ】本発明の一実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。
【図６Ｂ】本発明の一実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。
【図７Ａ】本発明の他の実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。
【図７Ｂ】本発明の他の実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。
【図８】本発明の一実施形態に係る自律走行車のシステム遅延を推定する手順を示すフローチャートである。
【図９】本発明の他の実施形態に係る自律走行車のシステム遅延を推定する手順を示すフローチャートである。
【図１０】本発明の一実施形態に係るシステム遅延の補償を利用して自律走行車を走行させる手順を示すフローチャートである。
【図１１】一実施形態に係るデータ処理システムを示すブロック図である。
【発明を実施するための形態】
【０００６】
以下、説明の詳細を参照しながら、本出願の様々な実施形態及び方法を説明し、図面は、前記様々な実施形態を示す。以下の説明及び図面は、本出願を説明するためのものであり、本出願を限定するものではない。本出願の様々な実施形態を完全に把握するために、多数の特定の詳細を説明する。なお、いくつかの例では、本出願の実施形態に対する簡単な説明を提供するために、周知又は従来技術の詳細について説明していない。
【０００７】
本明細書では「一実施形態」又は「実施形態」とは、当該実施形態について組み合わせて説明された特定特徴、構造又は特性が、本出願の少なくとも一つの実施形態に含まれてもよい。語句「一実施形態では」は、本明細書全体において同一の実施形態を指すとは限らない。
【０００８】
本発明の一実施形態によると、遅延推定機構を使用して異なる走行状況において自律走行車で発生した異なる種類の遅延を推定する。遅延推定機構は、これらの遅延を利用して遅延補償（delay corrected）された位置を最もよく反映する最良の車両位置を推論する。一実施形態では、システム遅延は、様々な異なる遅延に基づいて決定されることができ、様々な異なる遅延は、自律走行車のステアリング制御遅延、速度制御遅延、計算遅延、及び通信遅延を含むが、これらに限定されるものではない。これらの遅延におけるいくつかの遅延（例えば、ステアリング制御遅延と速度制御遅延）は、特定のセンサを使用して測定されることができる。計算遅されることができる。そして、システム遅延は、予め決定された公式（例えば、加重アルゴリズム（weighted algorithm））を使用して、これらの遅延のうちの少なくとも一部に基づいて決定されることができる。その後、システム遅延を利用して、自律走行車を走行させる間に制御コマンドが発行されるタイミングを調整することができる。
【０００９】
一実施形態では、ステアリング制御遅延が測定され、ここでステアリング遅延は、ステアリング制御コマンドを発行した時間と自律走行車の１つ以上の車輪から受信された応答時間との間の遅延を示す。速度制御遅延は、速度制御コマンドを発行した時間と、自律走行車の１つ以上の車輪から受信された応答時間（或は、アクセルペダル又はブレーキペダルへ圧力を与える時間）との間で測定される。その後、既定のルートに応答して、全体のシステム遅延は、予め決められたアルゴリズムを使用してステアリング制御遅延及び速度制御遅延に基づいて決定される。自律走行車を走行させるための計画及び制御データは、システム遅延に基づいて生成される。
【００１０】
本発明の他の実施形態によると、異なる車両のある運転パラメータが異なる運転シナリオで記録される。運転シナリオは、特定の速度（例えば、一定の速度、加速度、又は減速を維持する）で特定の距離を走行させること、特定の速度で特定の回転角度により回転すること、特定の速度及び／又は角度で車線を変更することなどの具体的な走行パターンを指す。ガスペダル及び／又はブレーキペダルに適用される圧力も記録することができる。また、ステアリング制御遅延、速度制御遅延、演算遅延及び／又は通信遅延を含む、各車両が各運転シナリオにおいて関連制御コマンドを発行することと関連するシステム遅延が決定されたり、推定されたりする。データベース又は運転シナリオ−システム遅延（シナリオ／遅延）マッピングテーブルが生成される。シナリオ／遅延マッピングテーブルは、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオをシステム遅延にマッピングする。その後、同じ又は類似の運転シナリオや走行環境で自律走行車を計画及び制御する際に、シナリオ／遅延マッピングテーブルは、リアルタイムの走行期間に適用されてシステム遅延を補償する。
【００１１】
一実施形態では、運転シナリオは、自律走行車の次のルートセグメント（route segment）又はルートに対して決定される。それに応答して、ルックアップ動作は、シナリオ／遅延マッピングテーブルにおいてルックアップ処理を実行して決定された運転シナリオとマッチングするマッピングエントリを位置決めする。シナリオ／遅延マッピングテーブルは、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオを、当該特定の運転シナリオについて算出されたシステム遅延にマッピングする。その後、自律走行車は、その時点での運転シナリオに対応するシステム遅延に基づいて制御かつ走行され、これは、当該状況下で、システム遅延を補償するタイミングに応じて制御コマンドを発行することを含む。
【００１２】
図１は本発明に係る一実施形態に係る自律走行車のネットワーク配置を示すブロック図である。図１を参照して、ネットワーク配置１００はネットワーク１０２によって１つ以上のサーバ１０３〜１０４に通信可能に接続することができる自律走行車１０１を含む。１つの自律走行車が示されているが、ネットワーク１０２によって複数の自律走行車は互いに接続され、及び／又はサーバ１０３〜１０４に接続されることができる。ネットワーク１０２は、任意のタイプのネットワーク、例えば有線又は無線のローカルエリアネットワーク（ＬＡＮ）、例えばインターネットのような広域ネットワーク（ＷＡＮ）、セルラーネットワーク、衛星ネットワーク又はその組み合わせであってもよい。サーバ１０３〜１０４は任意のタイプのサーバ又はサーバクラスタ、例えばＷｅｂサーバ又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ又はその組み合わせであってもよい。サーバ１０３〜１０４は、データ分析サーバ、内容サーバ、交通情報サーバ、地図（マップ）及び興味のあるポイント（ＰＯＩ）サーバ又は位置サーバ等であってもよい。
【００１３】
自律走行車とは、運転者からの入力が非常に少ない又はない場合に案内して環境を通過する自律走行モードに設置される車両である。このような自律走行車は、車両が走行している環境にかかる情報を検出するように配置される１つ又は複数のセンサを含むセンサシステムを備える。車両及びその関連しているコントローラが、検出された情報で案内して環境を通過する。自律走行車１０１が手動モード、完全自律走行モード又は部分自律走行モードで運転されることができる。
【００１４】
一実施形態では、自律走行車１０１は、データ処理システム１１０と、車両制御システム１１１と、無線通信システム１１２と、ユーザインターフェースシステム１１３と、インフォテイメントシステム１１４と、センサシステム１１５とを含むが、これらに制限されない。自律走行車１０１は、通常の車両に含まれるある一般的な構成要素（部材）、例えばエンジン、車輪、ハンドル、変速器等をさらに含んでもよく、前記構成要素は、車両制御システム１１１及び／又はデータ処理システム１１０により多種の通信信号及び／又はコマンド（例えば加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンド等）を使用して制御されることができる。
【００１５】
構成要素１１０〜１１５は、インターコネクト、バス、ネットワーク又はそれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素１１０〜１１５は、コントローラローカルエリアネットワーク（ＣＡＮ）バスを介して互いに通信可能に接続することができる。ＣＡＮバスは、マイクロコントローラ及び装置がホストコンピューターのない応用において互いに通信することを許可するような車両バス標準として設計される。それは、最初に自動車内における多重（multiplex）電線のために設計されたメッセージに基づくプロトコルであるが、他のたくさんの環境（状況）にも用いられる。
【００１６】
ここで、図２を参照して、一実施形態では、センサシステム１１５は、１つ以上のカメラ２１１と、全地球測位システム（ＧＰＳ）ユニット２１２と、慣性計測ユニット（ＩＭＵ）２１３と、レーダーユニット２１４と、光検出及び測距（ＬＩＤＡＲ）ユニット２１５とを含むが、これらに限定されない。ＧＰＳシステム２１２は、送受信機を含んでもよく、前記送受信機は、自律走行車の位置に関する情報を提供するように処理されることができる。ＩＭＵユニット２１３は、慣性加速度に基づいて自律走行車の位置及び方向の変化を感知することができる。レーダーユニット２１４は、無線信号を利用して自律走行車のローカル環境内の対象を感知するシステムを示すことができる。いくつかの実施形態において、対象を感知する以外、レーダーユニット２１４は、さらに対象の速度及び／又は走行方向を感知することができる。ＬＩＤＡＲユニット２１５はレーザを使用して自律走行車の位置する環境における対象を感知することができる。その他のシステム構成要素以外、ＬＩＤＡＲユニット２１５は１つ以上のレーザ光源、レーザースキャナ及び１つ以上の検出器をさらに含んでもよい。カメラ２１１は、自律走行車の周辺環境の画像をキャプチャするための１つ以上の装置を含んでもよい。カメラ２１１は、スチルカメラ及び／又はビデオカメラであってもよい。カメラは、例えば回転及び／又は傾斜のプラットフォームに取り付けられる、機械的に移動可能なものであってもよい。
【００１７】
センサシステム１１５は、その他のセンサ、例えばソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ、及びオーディオセンサ（例えばマイクロフォン）をさらに含んでもよい。オーディオセンサは、自律走行車周辺の環境から音をキャプチャするように配置されてもよい。ステアリングセンサは、ハンドル、車両の車輪又はその組み合わせのステアリング角を感知するように配置されることができる。スロットルセンサ及びブレーキセンサは、それぞれ車両のスロットル位置及びブレーキ位置を感知する。いくつかの場合、スロットルセンサ及びブレーキセンサは、集積型スロットル／ブレーキセンサに一体化されてもよい。
【００１８】
一実施形態では、車両制御システム１１１は、ステアリングユニット２０１、スロットルユニット２０２（加速ユニットでも呼ばれる）、ブレーキユニット２０３、コンピュータビジョンシステム２０４、ナビゲーションユニット２０５（ナビゲーションとルートシステム、又はナビゲーション／ルートシステムとも呼ばれる）及び衝突回避ユニット２０６（障害物回避システムでも呼ばれる）を含むが、これらに限定されない。ステアリングユニット２０１は、車両の方向又は走行方向を調整することに用いられる。スロットルユニット２０２は、モーター又はエンジンの速度を制御して、さらに車両の速度及び加速度を制御することに用いられる。ブレーキユニット２０３は、摩擦を提供することによって車両の車輪又はタイヤをスローダウンして車両を減速させることに用いられる。
【００１９】
コンピュータビジョンユニット又はシステム２０４は、自律走行車の環境内の対象及び／又は特徴を認識するために１つ以上のカメラ２１１によってキャプチャされた画像を処理し、分析するものである。対象は、交通信号、道路境界、他の車両、歩行者、及び／又は障害物などを含むことができる。コンピュータビジョンシステム２０４は、対象認識アルゴリズム、ビデオ追跡及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態では、コンピュータビジョンシステム２０４は、環境をマッピングして、対象を追跡し、対象の速度を推定することなどができる。
【００２０】
ナビゲーションユニット又はシステム２０５は、自律走行車の走行経路を決定するものである。例えば、ナビゲーションシステムは、自律走行車を最終的な目的地に至る車道ベースの経路に沿って一般的に前進させるとともに、感知された障害物をだいたい避けるような経路に沿って移動する一連の速度と進行方向（directional heading）を決定することができる。目的地は、ユーザインタフェースを介してユーザ入力に応じて設定されてもよい。ナビゲーションシステム２０５は、自律走行車が走行している間、走行経路を動的に更新することができる。ナビゲーションシステム２０５は、自律走行車に用いられる走行経路を決定するためにＧＰＳシステム、及び１つ以上のマップからのデータを統合してもよい。
【００２１】
衝突回避ユニット又はシステム２０６は、自律走行車の環境での潜在的な障害物を識別、評価、回避又は他の方法で乗り越えるものである。例えば、衝突回避システム２０６は、緊急回避（swerve）処理、回転処理、制動処理などを行うために、制御システムの１つ以上のサブシステムを処理することで、自律走行車のナビゲーションにおける変化を実現することができる。衝突回避システム２０６は、周辺の交通パターン、道路状況等に基づいて、実現可能な障害物回避処理を自動的に決定することができる。衝突回避システム２０６は、自律走行車が緊急回避して進入しようとする隣接領域における車両、建築の障害物などが他のセンサシステムにより検出されたとき、緊急回避処理が行われないように構成されることができる。衝突回避システム２０６が、使用可能でありながら自律走行車の乗員の安全性を最大化する処理を自動的に選択することができる。衝突回避システム２０６は、自律運行車両の乗客室に対して最低限の加速を引き起こすと予想される回避処理を選択することができる。注意すべきなことは、図２に示される構成要素はハードウェア、ソフトウェア又はその組み合わせで実現されてもよい。
【００２２】
図１を再び参照して、無線通信システム１１２は、自律走行車１０１と、例えば装置、センサ、その他の車両等の外部システムとの間に通信することを可能にする。例えば、無線通信システム１１２は、１つ以上の装置に直接に又は通信ネットワークを介して無線通信し、例えばネットワーク１０２によってサーバ１０３〜１０４に通信することができる。無線通信システム１１２は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク（ＷＬＡＮ）（例えばＷｉＦｉ）を使用して他の構成要素やシステムに通信することができる。無線通信システム１１２は、例えば赤外線リンク、ブルートゥース等を使用して装置（例えば、乗客の移動装置、表示装置、車両１０１内のスピーカ）に直接に通信することができる。ユーザインターフェースシステム１１３は、車両１０１内で実行される周辺装置の一部であってもよく、例えばキーワード、タッチスクリーンディスプレイ装置、マイクロフォン、及びスピーカ等を含む。
【００２３】
自律走行車１０１全ての一部の機能は、特に自律走行モードで処理される場合、データ処理システム１１０により制御されたり管理されたりすることができる。データ処理システム１１０は、必要なハードウェア（例えば、プロセッサ、メモリ、記憶装置）、及びソフトウェア（例えば、オペレーティングシステム、計画及びルーティングプログラム）を含み、センサシステム１１５、制御システム１１１、無線通信システム１１２、及び／又はユーザインターフェースシステム１１３から情報を受信し、受信された情報を処理し、出発地から目的地までのルートや経路を計画し、そして計画及び制御情報に基づいて車両１０１を走行させる。あるいは、データ処理システム１１０と車両制御システム１１１とは一体化されてもよい。
【００２４】
例えば、乗客であるユーザは、例えばユーザインタフェースによって旅程の出発位置及び目的位置を指定することができる。データ処理システム１１０は、自律走行車１０１の他の構成要素と通信して旅程関連データを取得する。例えば、データ処理システム１１０は、位置サーバ及び地図及びＰＯＩ（ＭＰＯＩ）サーバから位置及びルート情報を取得することができ、前記ＭＰＯＩサーバはサーバ１０３〜１０４の一部であってもよい。位置サーバは、位置サービスを提供し、かつＭＰＯＩサーバはマップサービス及びある位置のＰＯＩを提供する。あるいは、このような位置及びＭＰＯＩ情報は、感知及び計画システム１１０の不揮発性記憶装置にローカルにキャッシュされることができる。
【００２５】
自律走行車１０１がルートに沿って走行する期間に、データ処理システム１１０は、さらに交通情報システムやサーバ（ＴＩＳ）からリアルタイム交通情報を取得できる。注意すべきなのは、サーバ１０３〜１０４は、第三者エンティティにより動作されることができる。あるいは、サーバ１０３〜１０４の機能は、データ処理システム１１０と一体化されてもよい。リアルタイム交通情報、ＭＰＯＩ情報、位置情報、及びセンサシステム１１５が検出又は感知したリアルタイムなローカル環境データ（例えば、障害物、対象、付近車両）に基づいて、データ処理システム１１０は、指定された目的地に安全で効果的に到達するように、最適なルートを計画し、かつ計画したルートにより例えば制御システム１１１を介して車両１０１を運転することができる。
【００２６】
一実施形態によると、自律走行車１０１は、車両１０１の乗客に情報とエンターテインメントを提供するインフォテイメントシステム１１４をさらに含むことができる。情報及びエンターテイメントコンテンツは、ローカル及び／又はリモートに（例えば、サーバ１０３乃至１０４によって提供される）記憶されたコンテンツ情報に基づいて、受信、コンパイル、及びレンダリングされる。例えば、情報はネットワーク１０２を介して任意のサーバ１０３乃至１０４からリアルタイムでストリーミングされて車両１０１のディスプレイ装置上に表示される。情報は、例えば、１つ以上のカメラでリアルタイムにキャプチャされたローカル情報によって拡張される（augmented）ことができ、それから、拡張されたコンテンツは、仮想現実の方法で表示されてもよい。
【００２７】
一実施形態では、位置及びルート情報、ＭＰＯＩ情報、及び／又はリアルタイムの交通情報に基づいて、インフォテインメントシステム１１４及び／又はデータ処理システム１１０は、現在の交通環境（例えば、ＭＰＯＩ）に適切なあるタイプのコンテンツを決定する。システムは、例えばリアルタイムの走行情報に基づいて、リストコンテンツアイテム（例えば、スポンサーされたコンテンツや広告）をコンテンツアイテムの候補として認識するために、コンテンツのインデックス（図示せず）においてルックアップ処理を実行する。
【００２８】
一実施形態では、システムは、様々なランキングアルゴリズムを使用してリスト内のコンテンツアイテムの順位を決定する。コンテンツアイテムは、ユーザのユーザプロファイルに基づいて、順位を決定してもよい。例えば、コンテンツアイテムは、ユーザプロファイルから導出できる、ユーザの好み（preference）に基づいて、順位を決定してもよい。ユーザプロファイルは、過去のユーザ操作の履歴に基づいて、コンパイルされることができる。一実施形態では、システムは、各コンテンツアイテムのランキングスコアを決定するために、１つ以上のコンテンツのランキングモデルをコンテンツアイテムのそれぞれに適用する。所定のしきい値を超えるランキングスコアを有するコンテンツアイテムを選択することができる。コンテンツランキングモデルは、過去の類似する移動環境や交通状況を表す既知の特徴のセットによってトレーニングされることができる。コンテンツランキングモデルは、類似するユーザのユーザプロファイルに基づいて訓練されてもよい。
【００２９】
選択されたコンテンツアイテムをレンダリングして、自律走行車内のディスプレイ装置上に表示する。一実施形態では、システムは、自律走行車の１つ以上のカメラを使用してある時点でキャプチャされた画像上に、選択されたコンテンツアイテムを追加して拡張させる。一実施形態では、画像に画像認識を実行し、画像によって表現されたコンテンツを導出したり理解したりする。例えば、画像やＰＯＩを記述するために、１つ以上のキーワードが導出される。コンテンツアイテムのリストは、画像によって表現された１つ以上のキーワード又はＰＯＩに基づいて認識されてもよい。その後、システムは、選択されたコンテンツアイテムをイメージに拡張して、コンテンツアイテムが画像上に重畳される拡張画像を生成する。拡張画像は、自律走行車のディスプレイ装置上に表示される。いくつかの実施形態によれば、インフォテイメントシステム１１４は、データ処理システム１１０と一体化されてもよい。
【００３０】
代案としては、ユーザは、ネットワーク（例えば、クラウドネットワーク）を介してコンテンツプロバイダのコンテンツサーバから定期的に更新できる、コンテンツ記憶装置又はデータベースからのプリコンパイルされたコンテンツ（例えば、ビデオ、映画）のリストから特に選択することができる。したがって、ユーザは、例えば、データ記憶装置１２５から取得されたディスプレイ装置上に表示しようとする、リアルタイムでキャプチャされたリアルタイムの実際コンテンツ又は事前レンダリングされたコンテンツを特に選択することができる。例えば、自律走行車１０１が、ニューヨーク市で雪の降る日に走行する場合には、ユーザはハワイで明るい環境を表示するようにディスプレイ装置をスイッチングすることができ、まるで自律走行車１０１が晴れた日に走行するようである。コンテンツは、協力又は協調の方法で（つまり、仮想現実方法で）複数のディスプレイ装置（例えば、複数のウィンドウ）に表示されてもよい。
【００３１】
図１を再び参照すると、一実施形態によると、次のルート又は次のルートセグメントを計画するとき、データ処理システム１１０は、システム遅延を考慮する。具体的には、次の移動を計画するとき、システムはその時点の運転シナリオを決定し、運転シナリオに対応するシステム遅延を取得する。システムは、（例えば、システム遅延を考慮して適切なタイミング、大きさ、及び／又は回転角度に関する制御コマンドを発行することにより）関連するシステム遅延をもとに計画及び制御データを生成する。システム遅延は、自律走行車の走行期間にオンラインで決定されてもよい。代案として、システム遅延は、様々な運転シナリオ又は条件下での大量の車両の多くの運転統計に基づいてオフラインで決定されてもよい。
【００３２】
一実施形態によると、システム遅延は、大量の異なる車両の大量の走行統計に基づいて、サーバ１０３のような分析システムによって決定されてもよい。そして、システム遅延は、リアルタイム又はオンラインの走行期間に使用されるように、データベースやテーブルのようなデータ構造で自律走行車１０１上にロードされる。一実施形態では、サーバとして動作するデータ分析システム１０３は、データコレクタ１５１と、データ分析モジュール１５２とを含むが、これらに限定されるものではない。データコレクタ１５１は、異なる運転シナリオ及び／又は条件下で、様々な車両から記録されキャプチャされた様々な走行統計１５３を収集する。また、走行統計１５３は、走行動作の間に、車両の様々なセンサによって測定及び／又は推定された特定のシステム遅延をさらに含む。
【００３３】
一実施形態では、システム遅延は、様々な異なる遅延に基づいて決定されることができ、様々な異なる遅延は、自律走行車におけるステアリング制御遅延、速度制御遅延、演算遅延及び通信遅延を含むが、これらに限定されない。これらの遅延のうちのいくつかの遅延（ステアリング制御遅延及び速度制御遅延など）は、特定のセンサ（例えば、ステアリングセンサ、ホイールセンサ、スロットルセンサやブレーキセンサなど）によって測定されることができる。演算遅延や通信遅延のような他の遅延が推定されてもよい。そして、システム遅延は、予め決定された公式（例えば、加重アルゴリズム）によって、これらの遅延に基づいて決定される。
【００３４】
走行統計１５３に基づいて、分析モジュール１５２は、異なる運転シナリオや状況に対応するシステム遅延を決定する分析を実行する。分析モジュール１５２は、異なる運転シナリオに対応するシステム遅延を記憶するシナリオ／遅延マッピングテーブル１５０を生成する。一実施形態では、シナリオ／遅延マッピングテーブル１５０は、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオをシステム遅延にマッピングする。システム遅延は、ステアリング制御遅延、速度制御遅延、演算遅延又は通信遅延など、様々な種類の遅延に基づいて計算されることができる。代案としては、それぞれのマッピングエントリは、特定の運転シナリオを個別のステアリング制御遅延、速度制御遅延、演算遅延と通信遅延のセットにマッピングする。
【００３５】
そして、シナリオ／遅延マッピングテーブル１５０は、自律走行車にアップロードされ、ここで、シナリオ／遅延マッピングテーブル１５０は、自律走行車を制御して走行させるための制御コマンドを発行するタイミングを決定することによるシステム遅延を補償するように適用されてもよい。代案として、ステアリング制御遅延、速度制御遅延、演算遅延や通信遅延などのシステム遅延は、自律走行車を走行させる間に、リアルタイムで測定されたり推定されたりすることができる。これらのシステム遅延は、当該時点での具体的な運転シナリオの影響を受けずに制御コマンドを発行する処理を補償するために適用されてもよい。シナリオ／遅延マッピングテーブル１５０は、データベース又は他のルックアップテーブルのような、様々なデータ構造で実現されてもよい。
【００３６】
図３は、本発明の一実施形態に係る自律走行車とともに使用されるデータ処理システムの一例を示すブロック図である。システム３００は、図１のシステム１０１の一部として実現されてもよい。図３を参照すると、データ処理システム１１０は、計画モジュール３０１、制御モジュール３０２、マップ及びルートモジュール３０３及びシステム遅延決定モジュール（又はシステム遅延決定計算機）３０４を含むが、これらに限定されない。モジュール３０１〜３０４は、ソフトウェア、ハードウェア、又はこれらの組み合わせで実現されてもよい。例えば、任意のモジュール３０１〜３０４は、永続記憶装置３１２（例えば、ハードディスク）に設置され、メモリ３１１にロードされ、１つ以上のプロセッサ（図示せず）によって実行されることができる。
【００３７】
計画モジュール３０１は、センサシステム１１５から受信されたセンサデータ及び／又は様々なソース（例えば、位置、地図、地図と興味点の一部としてのＰＯＩ、又はマップとルートモジュール３０３によって提供されるＭＰＯＩデータベース）から受信されたリアルタイム情報のような様々な情報に基づいて、自律走行車のための経路又はルートを計画するものである。計画及び制御データは、計画モジュール３０１によって生成される。計画及び制御データに基づいて、制御モジュール３０２は、計画及び制御データによって定義されたルート又は経路に沿って、車両制御システム１１１に適切なコマンド又は信号を送信することにより、自律走行車を制御するものである。計画及び制御データには、経路、又はルートに沿って異なる時点において、適切な車両設定又は運転パラメータ（例えば、スロットル、ブレーキ、及び回転コマンド）を使用して、ルート又は経路の第１点から第２点まで車両を走行させることができる十分な情報が含まれている。計画モジュール３０１と制御モジュール３０２は、図２の車両制御システム１１１のナビゲーションユニット２０５に通信可能に接続されたり、ナビゲーションユニット２０５と一体化されたりしてもよい。
【００３８】
一実施形態によると、システム遅延決定モジュール３０４（単に遅延計算機とも称する）は、自律走行車３００のシステム全体の遅延を決定する。一実施形態では、これらのシステム遅延は、特定の状況におけるステアリング制御遅延３２１、速度制御遅延３２２、演算遅延３２３、通信遅延３２４又は他の遅延に（個別の遅延とも呼ばれる）のうちの少なくとも一つに基づいて算出されたり決定されたりすることができる。これらの遅延３２１〜３２４は、大量の異なる運転シナリオ又は運転条件で大量の車両による大量の走行記録に基づいて測定されたり推定されたりすることができる。これらの遅延３２１〜３２４は、大量の走行統計を収集し、分析することで、データ分析システム１０３のようなデータ分析システムによってオフラインで決定されてもよい。例えば、特定のタイプの遅延は、同一又は類似のタイプの大量の車両から発生する同じタイプの平均遅延に基づいて決定されることができる。
【００３９】
代案として、遅延３２１〜３２４は、遅延決定モジュール３０４によってリアルタイムで決定されたり測定されたりすることができる。しかし、このような方法は、オンライン走行の間に性能が低下したり、計算する時間が長くかかる可能性がある。これとは反対に、専用のデータ分析システムによってオフラインで遅延３２１〜３２４を算出することにより、オンラインで遅延３２１〜３２４を使用することができ、遅延３２１〜３２４を決定する時間を短縮することができる。一実施形態では、遅延３２１〜３２４は、自律走行車３００内のオンライン測定及び／又はデータ分析システムによって様々な車両のオフライン遅延計算に基づいて定期的に更新されてもよい。
【００４０】
一実施形態では、システム遅延決定モジュール３０４は、ステアリング制御遅延３２１を決定するためのステアリング制御遅延決定モジュール（図示せず）を含む。ステアリング制御遅延３２１は、ステアリング制御コマンドが発行される時間と、車両３００の１つ以上の車輪から応答が受信された時間との間で測定されることができる。ステアリング制御遅延３２１は、ステアリング制御コマンドが発行されることと、車両の車輪がステアリング制御コマンドによって指定される角度で位置決められることとの間の時間に基づいて測定されることができ、これは１つ以上のステアリングセンサによって感知されてもよい。
【００４１】
システム遅延決定モジュール３０４は、加速のとき、減速のとき又は同じ速度を維持するときの遅延を含む速度制御遅延３２２を決定するための速度制御遅延決定モジュール（図示せず）をさらに含むことができる。速度制御遅延３２２は、速度制御コマンド（例えば、加速、減速又は制動）を発行する時間と、車両が速度の変更を開始することを示す応答を車両の車輪から受信した時間との間で測定されてもよい。速度制御遅延３２２は、加速又はスロットルコマンドを発行する時間と、車両が加速を開始する時間との差を示す加速遅延を含む。速度制御遅延３２２は、減速又は制動コマンドを発行する時間と、車両が減速を開始する時間との差を示す減速遅延を含むことができる。
【００４２】
演算遅延３２３は、システム（例えば、計画モジュール３０１、制御モジュール３０２、制御システム１１１及びＣＡＮバスなどの通信バス）が制御コマンドを生成して発行するのにかかる演算時間を指す。演算遅延はスリープ時間をさらに含むことができる。例えば、演算が１０ヘルツ（Ｈｚ）の周波数で実行される場合（例えば、運転パラメータを０．１秒ごとに演算する）、平均スリープ時間は５０ミリ秒（ｍｓ）である。このスリープ時間は、演算遅延の一部としてみなされ、スリープ時間の間に、システムが如何なるコマンドや応答を処理する可能性が低いためである。通信遅延３２４は、制御システム、通信バスと車からの応答の間の遅延又は通信コストを指す。演算遅延３２３及び通信遅延３２４は、同一又は類似のタイプの一つ以上の車両の前の動作に基づいて推定されることができる。
【００４３】
一実施形態では、システム遅延決定モジュール３０４は、予め決定された遅延アルゴリズムを使用して、ステアリング制御遅延３２１、速度制御遅延３２２、演算遅延３２３又は通信遅延３２４のうちの１つ以上の遅延に基づいて、全体又は最終システム遅延を算出する。一実施形態では、予め決定されたアルゴリズムは、加重アルゴリズムであり、計算においてかかるステアリング制御遅延３２１、速度制御遅延３２２、演算遅延３２３又は通信遅延３２４のそれぞれは、加重因子又は係数が割り当てられる。具体的な運転シナリオ又は環境によって、計算においてかかる個別の遅延のそれぞれの加重係数又は係数は異なってもよい。例えば、車両が曲がろうとすると、ステアリング制御遅延３２１に対応する加重係数をより高く調整することができる。車両が直進すると、速度制御遅延３２２に対応する加重係数を、特に、車両の現在速度と目標速度との差が比較的に大きいとき（例えば、予め決定されたしきい値よりも大きい場合）に、より高く調整ことができる。具体的な状況に応じて上記の調整をリアルタイムで適用することができる。算出されたシステム遅延は、制御コマンドを発行する時点と車両からの遅延応答の時点を補償するのに使用することができる。
【００４４】
例えば、ここで、図４を参照すると、車両が位置４０１にあると仮定する。システム遅延が考慮されると、制御コマンドが発行されるとき、車両は位置４０２で制御コマンドを受信し応答することができる。この遅延は、運転パラメータ（例えば、スロットル、ブレーキパラメータ）を決定するときに誤差を発生させる可能性があり、したがって、乗客に不快感を与える可能性がある。車両が制御コマンドを受信するとき、車両は、制御コマンドが決定された元の位置４０１に位置しない可能性がある。もっと正確に言えば、車両が位置４０２にある可能性がある。その結果、車両が受信された制御コマンドを実行するとき、たいへん遅くなる可能性があり、制御システムは、他のコマンドを発行することにより、このような状況を補正しなければならない。システム遅延を算出して了解することにより、システム遅延に基づいて制御コマンドに関連する時点及び運転パラメータを調整し計画して、システム遅延を補償することができる。たとえば、この例では、制御コマンドは、システム遅延を考慮してより早く発行されることができる。
【００４５】
図３を再び参照すると、一実施形態では、データ処理システム１１０は、図１のシステム１０３のようなデータ分析システムによってオフラインで生成されることができるシナリオ／遅延マッピングテーブル１５０をさらに維持（maintain）することができる。前述したように、異なる運転状況において、ステアリング、スロットルとブレーキの時間遅延は、大量の走行データに基づいて測定され、記録される。例えば、異なる運転状況は、１００ｍにおいて時速５マイル（ｍｐｈ）で加速すること、速度を維持して１００メートルを走行すること、１００メートルにおいて１０ｍｐｈで減速すること、１００ｍにおいて４０ｍｐｈで右車線に合流すること、アスファルト道路及びセメント道路で走行すること、３０℃又は７０℃温度下で動作すること、高性能のコンピュータ又は低性能のコンピュータで実行されるアルゴリズムを制御することなどを含むことができるが、これらに限定されない。スロットル圧力、ブレーキ圧力、ホイールの角度、ギアのような自律走行コマンドが記録されてもよい。現在速度、ホイールの角度などを含む状態が記録されてもよい。
【００４６】
シナリオ／遅延マッピングテーブル１５０は、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオをシステム遅延にマッピングする。一実施形態に係るシナリオ／遅延マッピングテーブルの例が図５に示されている。運転シナリオは、特定の速度で特定の距離を走行すること、特定の速度及び特定の回転角度で曲がることのような具体的な走行パターンを指す。ガスペダル及び／又はブレーキペダルに与えられる圧力が記録されてもよい。また、各運転シナリオにおいて各車両がかかる制御コマンドを発行することに関連するシステム遅延（ステアリング制御遅延、速度制御遅延、演算遅延及び／又は通信遅延を含む）が決定又は推定される。その後、類似する運転シナリオ又は環境で自律走行車を計画及び制御する際に、シナリオ／遅延マッピングテーブル１５０は、リアルタイムの走行期間に適用されてシステム遅延を補償する。
【００４７】
一実施形態では、次のルート又はルートセグメントを計画するとき、計画モジュール３０１は、自律走行車の次のルートセグメント又はルートに対応する運転シナリオを決定する。ルックアップ動作はシナリオ／遅延マッピングテーブルで実行され、決定された運転シナリオとマッチングするマッピングエントリを位置決めする。その後、計画モジュール３０１及び／又は制御モジュール３０２は、その時点での運転シナリオに対応するシステム遅延を考慮して自律走行車を制御し、ここで、当該状況におけるシステム遅延を補償するためのタイミングに応じて、制御コマンドを発行することを含む。
【００４８】
これにより、オンライン走行の期間に、システムは、まず状況や運転シナリオをチェックして、例えば、シナリオ／遅延マッピングテーブルに検索することにより、オフラインデータ及びリアルタイム記録に基づいて、システムの時間遅延を決定する。そして、システムは、リアルタイムではなく、当該時間遅延を使用して、将来のステアリング、スロットル及びブレーキを計算する。たとえば、図６Ａ及び図６Ｂを参照すると、点線で示すように、現在の走行計画は３０ｍにおいて車線を右車線に変更することを仮定する。遅延補償なしにステアリング角度コマンド（この例では、５度）が発行されると、車両は０．１秒の遅延で応答し、図６Ａに示される実線の通り、実際のルートは、予想又は計画されるルートから外れる。上記した技術を使用して、決定されたシステム遅延を考慮することにより、実際の行動をとるための０．１秒の遅延があるため（例えば、シナリオ／遅延マッピングテーブルからのマッチング運転シナリオに基づいて）、コマンドは０．９秒（きちんと１秒でない）に送られるべきである。その結果、図６Ｂに示すように、車両は期待どおりに応答して、実際のルートと計画ルートがだいたいマッチングすることができる。
【００４９】
類似して、図７Ａ及び図７Ｂを参照すると、車両が回転するとき、システム遅延は、図７Ａに示す実線で示されたように、車両に遅延された方式で反応させる可能性がある。ある状況では、車両が計画されたルートに従わないことを検出するとき、実線で示されたような過剰反応を行う可能性があり、乗客に不快感を引き起こす可能性がある。ルートを計画する際に、システム遅延及び他の運転パラメータ（例えば、速度、回転角度）を考慮することで、コマンドは早く及び／又は異なる回転角度で発行されることができるので、車が図７Ｂで示されたような計画されたルートを厳密に従うことができる。
【００５０】
図８は、本発明の一実施形態に係る自律走行車のシステム遅延を推定する手順を示すフローチャートである。手順８００は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されてもよい。例えば、手順８００は、図３のシステム遅延決定モジュール３０４によって実行されてもよい。代案として、手順８００は、様々な車両から収集された走行統計に基づいて、データ分析システム１０３によって実行されてもよい。図８を参照すると、ブロック８０１において、処理ロジックは、車両のステアリング制御遅延を測定する。ステアリング制御遅延はステアリング制御コマンドを発行する時間と車両のステアリングセンサから応答を受信した時間との差を示す。ブロック８０２において、処理ロジックは、車両の速度制御遅延を測定する。速度制御遅延は速度制御コマンド（例えば、加速、減速／制動、一定の速度を維持すること）を発行する時間と車両からの応答時間（例えば、加速、減速を開始する時間）との差を示す。
【００５１】
ブロック８０３において、処理ロジックは、車両の演算遅延を推定する。演算遅延は、車両の制御システムが制御コマンドを生成し発行するのにかかる時間を指す。ブロック８０４において、処理ロジックは、車両の通信遅延を推定する。通信遅延は、制御システム、通信バス（例えばＣＡＮバス）と車両からの応答の間の遅延を示す。そして、ステアリング制御遅延、速度制御遅延、演算遅延及び／又は通信遅延は、データ構造に記憶され、当該データ構造は、後続の制御コマンドを調整して、それらのコマンドを発行する時点を補償するために使用されることができる。
【００５２】
図９は、本発明の他の実施形態に係る自律走行車のシステム遅延を決定する手順を示すフローチャートである。手順９００は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されてもよい。例えば、手順９００は、図３のシステム遅延決定モジュール３０４によって実行されてもよい。代案として、手順９００は、様々な車両から収集された走行統計に基づいて、データ分析システム１０３によって実行されてもよい。図９を参照すると、ブロック９０１において、処理ロジックは、特定のタイプの自律走行車について複数の運転シナリオを決定する。ブロック９０２において、それぞれの運転シナリオについて、処理ロジックは、車両が同一又は類似する運転シナリオ又は運転条件において走行中のテアリング制御遅延を測定し記録する。
【００５３】
ブロック９０３において、処理ロジックは、車両が同一又は類似する運転シナリオ又は運転条件において走行しているときのスロットル制御遅延（例えば、加速遅延）を測定し記録する。ブロック９０４において、処理ロジックは、車両が同一又は類似する運転シナリオ又は運転条件において走行しているときのブレーキ制御遅延（例えば、減速遅延）を測定し記録する。ブロック９０５において、ステアリング制御遅延、スロットル制御遅延及びブレーキ制御遅延は、特定のタイプの自律走行車のシナリオ／遅延マッピングデータ構造に記憶される。前記動作は、同じタイプ又は類似するタイプの大量の車両に対して繰り返し実行されてもよい。そして、遅延は、様々な車両の平均遅延をもとに計算されることができる。
【００５４】
図１０は、本発明の一実施形態に係る自律走行車を動作させる手順を示すフローチャートである。手順１０００は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されてもよい。例えば、手順１０００は、図１のシステム１１０によって実行されてもよい。図１０を参照すると、ブロック１００１において、処理ロジックは、自律走行車に装着された様々なセンサのセンサデータに基づいて決定された、走行環境に対する感知に基づいて、運転シナリオを決定する。ブロック１００２において、処理ロジックは、シナリオ／遅延マッピングテーブルにおいてルックアップ動作を実行して、運転シナリオに対応するマッピングエントリを位置決めする。シナリオ／遅延マッピングテーブルは、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオを、同一又は類似する運転シナリオにおいて様々な車両によって測定された１つ以上の遅延セットにマッピングする。ブロック１００３において、処理ロジックは、マッピングエントリからシステム遅延を検出して決定する。システム遅延は、前述したようなステアリング制御遅延、速度制御遅延、演算遅延及び通信遅延のうち少なくとも一つに基づいて決定されることができる。ブロック１００４において、処理ロジックは、システム遅延を考慮してルート又はルートセグメントを計画し、計画及び制御データを生成する。ブロック１００５において、処理ロジックは、計画及び制御データに基づいて、ルート又はルートセグメントに沿って自律走行車を走行させて制御する。
【００５５】
注意すべきな点は、前記の示されたとともに記述された一部又は全部の構成要素は、ソフトウェア、ハードウェア又はその組み合わせで実現されることができる。例えば、このような構成要素は、永続記憶装置にインストールされるとともに記憶されたソフトウェアとして実現されてもよく、前記ソフトウェアは、本出願にわたって記載の手順又は動作を実施するように、プロセッサ（図示せず）でメモリにロードして実行されてもよい。あるいは、このような構成要素は、集積回路（例えば特定用途向けＩＣ又はＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、又はフィールドプログラマブルゲートアレイ（FPGA、Field Programmable Gate Array）にプログラミングされ又は嵌め込みされた専用ハードウェアにおける実行可能なコードとして実現されてもよく、前記実行可能なコードは、対応するドライバープログラム及び／又はオペレーティングシステムによってアプリケーションからアクセスされてもよい。なお、このような構成要素は、プロセッサ又はプロセッサコアにおける特定のハードウェアロジックとして実現されてもよく、ソフトウェア構成要素が１つ以上の特定コマンドによってアクセス可能なコマンドセットの一部とする。
【００５６】
図１１は、本発明の一つの実施形態と組み合わせて使用されるデータ処理システムを例示的に示すブロック図である。例えば、システム１５００は、上記プロセス又は方法のいずれかを実行する上記任意のデータ処理システム（例えば、図１のデータ処理システム１１０、及びサーバ１０３〜１０４のいずれか）を示してもよい。システム１５００は、多数の異なる構成要素を含んでもよい。これらの構成要素は、集積回路（ＩＣ）、集積回路の一部、分散型電子装置又は回路基板に適用された他のモジュール（例えばコンピュータシステムのマザーボード又はアドインカード）、又は他の方式でコンピュータシステムのシャシーに組み込まれた構成要素として実現されることできる。
【００５７】
さらに、システム１５００は、コンピュータシステムの多数の構成要素の高レベルビューを示すことを目的とする。しかしながら、いくつかの実現形態では、付加的構成要素が存在する場合もあることを理解すべきである。また、他の実現形態において示される構成要素が異なる配置を有してもよい。システム１５００は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤー、パーソナルディジタルアシスタント（ＰＤＡ）、スマート腕時計、パーソナルコミュニケーター、ゲーム装置、ネットワークルータ又はハブ、無線アクセスポイント（ＡＰ）又はリピーター、セットトップボックス、又はそれらの組合せを示してもよい。また、単一の機器又はシステムのみを示したが、用語「機器」又は「システム」は、さらに、独立又は共同で一つ（又は複数）のコマンドセットを実行することにより本明細書に説明される任意の１種又は複数種の方法を実行する機器又はシステムの任意のセットを含むことを理解すべきである。
【００５８】
一つの実施形態において、システム１５００は、バス又は相互接続部材１５１０によって接続されたプロセッサ１５０１、メモリ１５０３及び装置１５０５〜１５０８を備える。プロセッサ１５０１は、単一のプロセッサコア又は複数のプロセッサコアを含む単一のプロセッサ又は複数のプロセッサを示してもよい。プロセッサ１５０１は、マイクロプロセッサ、中央処理装置（ＣＰＵ）等のような一つ又は複数の汎用プロセッサであってもよい。より具体的には、プロセッサ１５０１は、複雑コマンドセット計算（ＣＩＳＣ）マイクロプロセッサ、縮小コマンドセットコンピュータ（ＲＩＳＣ）マイクロプロセッサ、超長コマンド語（ＶＬＩＷ）マイクロプロセッサ、又は他のコマンドセットを実現するプロセッサ、又はコマンドセットの組合せを実現するプロセッサであってもよい。プロセッサ１５０１は、さらに、専用集積回路（ＡＳＩＣ）、セルラ又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、グラフィックプロセッサ、ネットワークプロセッサ、通信プロセッサ、暗号プロセッサ、コプロセッサ、組み込みプロセッサのような一つ又は複数の専用プロセッサ、あるいはコマンド処理可能な任意の他のタイプのロジックであってもよい。
【００５９】
プロセッサ１５０１（超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよい）は、前記システムの各種構成要素と通信するための主処理ユニット及び中央ハブとして用いられてもよい。このようなプロセッサは、システムオンチップ（ＳｏＣ）として実現されることができる。プロセッサ１５０１は、コマンドを実行することにより本明細書に説明される動作及びステップを実行するためのコマンドを実行するように構成される。また、システム１５００は、選択可能なグラフィックサブシステム１５０４と通信するグラフィックインターフェースをさらに含んでもよく、グラフィックサブシステム１５０４は、表示コントローラ、グラフィックプロセッサ及び／又は表示装置をさらに備えてもよい。
【００６０】
プロセッサ１５０１は、メモリ１５０３と通信してもよく、メモリ１５０３は、一つの実施形態において複数のメモリによって所定量のシステムメモリを提供する。メモリ１５０３は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）又は他のタイプの記憶装置のような一つ又は複数の揮発性記憶（又はメモリ）装置を備えてもよい。メモリ１５０３は、プロセッサ１５０１又は任意の他の装置により実行されるコマンド列を含む情報を記憶することができる。例えば、複数種のオペレーティングシステム、装置ドライバー、ファームウェア（例えば、基本入出力システム又はＢＩＯＳ）及び／又はアプリケーションの実行可能なコード及び／又はデータはメモリ１５０３にロードされてもよく、プロセッサ１５０１により実行されてもよい。オペレーティングシステムは、ロボットオペレーティングシステム（ＲＯＳ）、Ｍｉｃｒｏｓｏｆｔ（登録商標）会社からのＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム、アップル会社からのＭａｃ  ＯＳ（登録商標）／ｉＯＳ（登録商標）、Ｇｏｏｇｌｅ（登録商標）会社からのＡｎｄｒｏｉｄ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｕｎｉｘ（登録商標）又は他のリアルタイム又は組み込みオペレーティングシステム（のような任意のタイプのオペレーティングシステムであってもよい。
【００６１】
システム１５００は、Ｉ／Ｏ装置、例えば装置１５０５〜１５０８をさらに備えてもよく、ネットワークインターフェース装置１５０５、選択可能な入力装置１５０６及び他の選択可能なＩ／Ｏ装置１５０７を備える。ネットワークインターフェース装置１５０５は、無線送受信機及び／又はネットワークインターフェースカード（ＮＩＣ）を備えてもよい。前記無線送受信機は、ＷｉＦｉ送受信機、赤外送受信機、ブルートゥース送受信機、ＷｉＭａｘ送受信機、無線セルラーホン送受信機、衛星送受信機（例えば、全地球測位システム（ＧＰＳ）送受信機）又は他の無線周波数（ＲＦ）送受信機又はそれらの組合せであってもよい。ＮＩＣはイーサネットカードであってもよい。
【００６２】
入力装置１５０６は、マウス、タッチパッド、タッチスクリーン（それは表示装置１５０４と集積されてもよい）、ポインタデバイス（例えばスタイラス）及び／又はキーボード（例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード）を備えてもよい。例えば、入力装置１５０６は、タッチスクリーンに接続されるタッチスクリーンコントローラを含んでもよい。タッチスクリーン及びタッチスクリーンコントローラは、例えば複数種のタッチ感度技術（容量式、抵抗式、赤外式及び表面音波技術を含むが、それらに限定されない）のいずれか、及びタッチスクリーンの一つ又は複数の接触点を決定するための他の近接センサアレイ又は他の素子を用いてそのタッチ点及び移動又は断続を検出することができる。
【００６３】
Ｉ／Ｏ装置１５０７は音声装置を備えてもよい。音声装置は、スピーカ及び／又はマイクロフォンを含んでもよく、それにより音声認識、音声コピー、デジタル記録及び／又は電話機能のような音声サポートの機能を促進する。他のＩ／Ｏ装置１５０７は、汎用シリアルバス（ＵＳＢ）ポート、パラレルポート、シリアルポート、印刷機、ネットワークインターフェース、バスブリッジ（例えば、ＰＣＩ−ＰＣＩブリッジ）、センサ（例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサ等のような動きセンサ）又はそれらの組合せをさらに備えてもよい。装置１５０７は、結像処理サブシステム（例えば、カメラ）をさらに備えてもよく、前記結像処理サブシステムは、カメラ機能（例えば、写真及びビデオ断片の記録）を促進するための電荷カップリング装置（ＣＣＤ）又は相補型金属酸化物半導体（ＣＭＯＳ）光学センサのような光学センサを備えてもよい。あるセンサは、センサハブ（図示せず）によって相互接続部材１５１０に接続されてもよく、キーボード又は熱センサのような他の装置は、組み込みコントローラ（図示せず）により制御されてもよく、これはシステム１５００の特定配置又は設計により決められる。
【００６４】
データ、アプリケーション、一つ又は複数のオペレーティングシステム等のような情報の永久記憶を提供するために、大容量記憶装置（図示せず）は、プロセッサ１５０１に接続されてもよい。様々な実施形態において、薄型化と軽量化のシステム設計を実現し且つシステムの応答能力を向上させるために、このような大容量記憶装置は、ソリッドステート装置（ＳＳＤ）によって実現されることができる。なお、他の実施形態において、大容量記憶装置は、主にハードディスクドライブ（ＨＤＤ）で実現されてもよく、容量が小さいＳＳＤ記憶装置は、ＳＳＤキャッシュとして停電イベント期間にコンテキスト状態及び他のこのような情報の永久記憶を実現し、それによりシステム動作が再開するときに通電を速く実現することができる。さらに、フラッシュデバイスは、例えばシリアルペリフェラルインターフェース（ＳＰＩ）によってプロセッサ１５０１に接続されてもよい。このようなフラッシュデバイスは、システムソフトウェアの不揮発性記憶に用いられてもよく、前記システムソフトウェアは、前記システムのＢＩＯＳ及び他のファームウェアを備える。
【００６５】
記憶装置１５０８は、任意の１種又は複数種の本明細書に記載の方法又は機能を体現する一つ又は複数のコマンドセット又はソフトウェア（例えば、モジュール、ユニット及び／又はロジック１５２８）が記憶されるコンピュータアクセス可能な記憶媒体１５０９（機械可読記憶媒体又はコンピュータ可読媒体とも呼ばれる）を備えてもよい。モジュール／ユニット／ロジック１５２８は、計画モジュール３０１、制御モジュール３０２、システム遅延決定モジュール３０４、データコレクタ１５１又は分析モジュール１５２のような上記構成要素のいずれかを示してもよい。モジュール／ユニット／ロジック１５２８は、さらにデータ処理システム１５００により実行される期間にメモリ１５０３内及び／又はプロセッサ１５０１内に完全又は少なくとも部分的に存在してもよく、ここで、メモリ１５０３及びプロセッサ１５０１も、機器アクセス可能な記憶媒体を構成する。処理モジュール／ユニット／ロジック１５２８は、さらにネットワークによってネットワークインターフェース装置１５０５を経由して送受信されてもよい。
【００６６】
コンピュータ可読記憶媒体１５０９は、以上に説明されたいくつかのソフトウェア機能を永続的に記憶してもよい。コンピュータ可読記憶媒体１５０９は、例示的な実施形態において単一の媒体として示されたが、用語「コンピュータ可読記憶媒体」は、前記一つ又は複数のコマンドセットが記憶される単一の媒体又は複数の媒体（例えば、集中型又は分散型データベース、及び／又は関連するキャッシュ及びサーバ）を備えることを理解すべきである。用語「コンピュータ可読記憶媒体」は、さらにコマンドセットを記憶又はコーディング可能な任意の媒体を備えることを理解すべきであり、前記コマンドセットは、機器により実行され且つ前記機器に本出願の任意の１種又は複数種の方法を実行させる。従って、用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ及び光学媒体と磁気媒体又は任意の他の非一時的機械可読媒体を備えるが、それらに限定されないことを理解すべきである。
【００６７】
本明細書に記載の処理モジュール／ユニット／ロジック１５２８、構成要素及び他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はハードウェア構成要素（例えばＡＳＩＣＳ、ＦＰＧＡ、ＤＳＰ又は類似装置）の機能に統合されてもよい。さらに、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置内のファームウェア又は機能回路として実現されてもよい。また、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置及びソフトウェアコンポーネントの任意の組合せで実現されてもよい。
【００６８】
なお、システム１５００は、データ処理システムの各種の構成要素を有するように示されているが、構成要素の相互接続のいかなる特定のアーキテクチャー又は方式を示すものではないことに注意すべきであり、それは、このような詳細が本出願の実施形態に密接な関係がないためである。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ及び／又は他のデータ処理システムは、本出願の実施形態と共に使用されてもよい。
【００６９】
上記詳細な説明の一部は、コンピュータメモリにおけるデータビットに対する演算のアルゴリズム及び記号表現で示される。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。ここで、アルゴリズムは、通常、所望の結果につながる首尾一貫した動作列（sequence of operations）と考えられる。これらの動作とは、物理量に対して物理的動作を行う必要となるステップを指す。
【００７０】
ただし、これらの全て及び類似の用語は、いずれも適切な物理量に関連付けられ、且つただこれらの量に適用される適切なラベルであることに注意すべきである。特に断らない限り、本出願の全体にわたって用語（例えば、添付している特許請求の範囲に説明された用語）による説明とは、コンピュータシステム又は類似の電子計算装置の動作及び処理であり、前記コンピュータシステム又は電子計算装置は、コンピュータシステムのレジスタ及びメモリに物理（例えば、電子）量としてデータを示し、且つ前記データをコンピュータシステムメモリ又はレジスタ又は他のこのような情報記憶装置、伝送又は表示装置内において類似に物理量として示される他のデータに変換する。
【００７１】
本出願の実施形態は、さらに本明細書における動作を実行するための装置に関する。このようなコンピュータプログラムは、不揮発性のコンピュータ可読媒体に記憶される。機器可読媒体は、機器（例えば、コンピュータ）可読な形態で情報を記憶する任意の機構を備える。例えば、機器可読（例えば、コンピュータ可読）媒体は、機器（例えば、コンピュータ）可読記憶媒体（例えば、読み出し専用メモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリメモリ）を備える。
【００７２】
上記図面に示される手順又は方法は、ハードウェア（例えば、回路、専用ロジック等）、ソフトウェア（例えば、不揮発性のコンピュータ可読媒体に具現化される）、又は両方の組合せを含む処理ロジックにより実行されてもよい。前記手順又は方法は、本明細書において特定の順序に応じて説明されるが、説明された動作の一部は、異なる順序に応じて実行されてもよい。また、いくつかの動作は、順番ではなく並行に実行されてもよい。
【００７３】
本出願の実施形態は、いずれかの特定のプログラミング言語を参照して説明されていないが、複数種のプログラミング言語で本明細書に記載の本出願の実施形態の教示を実現できることを理解すべきである。
【００７４】
以上の明細書では、本出願の具体的な例示的な実施形態を参照してその実施形態を説明した。明らかなように、添付している特許請求の範囲に記載の本出願のより広い趣旨及び範囲を逸脱しない限り、様々な変形が可能である。従って、限定的なものではなく例示的なものとして本明細書及び図面を理解すべきである。
【図１】
2019503294.tif 000003
【図２】
2019503294.tif 000004
【図３】
2019503294.tif 000005
【図４】
2019503294.tif 000006
【図５】
2019503294.tif 000007
【図６Ａ】
2019503294.tif 000008
【図６Ｂ】
2019503294.tif 000009
【図７Ａ】
2019503294.tif 000010
【図７Ｂ】
2019503294.tif 000011
【図８】
2019503294.tif 000012
【図９】
2019503294.tif 000013
【図１０】
2019503294.tif 000014
【図１１】
2019503294.tif 000015
【手続補正書】
【提出日】平成30年4月3日(2018.4.3)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一般的に、自律走行車を走行させることに関するものである。特に、本発明の実施形態は、自律走行車を走行させるときに自律走行車のシステム遅延を推定することに関するものである。
【背景技術】
【０００２】
車両が自律走行モード（例えば、無人運転）で走行している場合、乗員、特に運転者を運転に関連するいくつかの責任から解放することができる。自律走行モードで走行している場合、当該車両が車載センサを利用して様々な場所へ案内されることができ、それによりヒューマン・インタラクションの最も少ない場合、又は乗客なしの場合に走行することを可能にする。
【０００３】
モーション計画及び制御は、自律走行において重要な動作である。しかし、システムのある構成又は設計の原因で、あるシステム遅延が、制御コマンドを発行することと、車両からの応答との間に発生する可能性がある。このようなシステム遅延を原因として、ある状況では、車両を計画及び制御する精度などの問題が発生する可能性がある。このようなシステム遅延を判断したり、推定したりすることは困難である。
【発明の概要】
【課題を解決するための手段】
【０００４】
本発明の一つの実施形態によると、自動運転車両を運転するためのコンピュータ実施方法を提供し、この方法は、ステアリング制御コマンドを発行する時間と、自律走行車の１つ以上の車輪からの第１の応答時間との間のステアリング制御遅延を測定するステップと、速度制御コマンドを発行する時間と、前記自律走行車の１つ以上の車輪からの第２の応答時間との間の速度制御遅延を測定するステップと、定められたルートに応答して、予め決定されたアルゴリズムを用いて前記ステアリング制御遅延と前記速度制御遅延とに基づいて、全体のシステム遅延を推定するステップと、前記定められたルートに従って前記自律走行車を走行させるように、前記システム遅延に基づいて計画及び制御データを生成するステップと、を含む。
【０００５】
本発明の他の実施形態によると、コマンドが記憶されており、前記コマンドがプロセッサにより実行されるとき、前記プロセッサに自律走行車のシステム遅延を決定する処理を実行させる、不発揮性の機械可読媒体を提供し、前記処理は、ステアリング制御コマンドを発行する時間と、自律走行車の１つ以上の車輪からの第１の応答時間との間のステアリング制御遅延を測定することと、速度制御コマンドを発行する時間と、前記自律走行車の１つ以上の車輪からの第２の応答時間との間の速度制御遅延を測定することと、定められたルートに応答して、予め決定されたアルゴリズムを用いて前記ステアリング制御遅延と前記速度制御遅延とに基づいて、全体のシステム遅延を推定することと、前記定められたルートに従って前記自律走行車を走行させるように、前記システム遅延に基づいて計画及び制御データを生成することと、を含む。
【０００６】
本発明の他の実施形態によると、プロセッサと、前記プロセッサに連結されてコマンドを記憶するメモリと、を含み、前記コマンドが前記プロセッサによって実行されるとき、前記プロセッサに自律走行車のシステム遅延を決定する処理を実行させる、データ処理システムを提供し、前記処理は、ステアリング制御コマンドを発行する時間と、自律走行車の１つ以上の車輪からの第１の応答時間との間のステアリング制御遅延を測定することと、速度制御コマンドを発行する時間と、前記自律走行車の１つ以上の車輪からの第２の応答時間との間の速度制御遅延を測定することと、定められたルートに応答して、予め決定されたアルゴリズムを用いて前記ステアリング制御遅延と前記速度制御遅延とに基づいて、全体のシステム遅延を推定することと、前記定められたルートに従って前記自律走行車を走行させるように、前記システム遅延に基づいて計画及び制御データを生成することとを含む。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態に係るネットワークシステムを示すブロック図である。
【図２】本発明の一実施形態に係る自律走行車の一例を示すブロック図である。
【図３】本発明の一実施形態に係る自律走行車に使用されるデータ処理システムの一例を示すブロック図である。
【図４】システム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。
【図５】本発明の一実施形態に係る運転シナリオ−システム遅延マッピングテーブルの一例を示すブロック図である。
【図６Ａ】本発明の一実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。
【図６Ｂ】本発明の一実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。
【図７Ａ】本発明の他の実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。
【図７Ｂ】本発明の他の実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。
【図８】本発明の一実施形態に係る自律走行車のシステム遅延を推定する手順を示すフローチャートである。
【図９】本発明の他の実施形態に係る自律走行車のシステム遅延を推定する手順を示すフローチャートである。
【図１０】本発明の一実施形態に係るシステム遅延の補償を利用して自律走行車を走行させる手順を示すフローチャートである。
【図１１】一実施形態に係るデータ処理システムを示すブロック図である。
【発明を実施するための形態】
【０００８】
以下、説明の詳細を参照しながら、本出願の様々な実施形態及び方法を説明し、図面は、前記様々な実施形態を示す。以下の説明及び図面は、本出願を説明するためのものであり、本出願を限定するものではない。本出願の様々な実施形態を完全に把握するために、多数の特定の詳細を説明する。なお、いくつかの例では、本出願の実施形態に対する簡単な説明を提供するために、周知又は従来技術の詳細について説明していない。
【０００９】
本明細書では「一実施形態」又は「実施形態」とは、当該実施形態について組み合わせて説明された特定特徴、構造又は特性が、本出願の少なくとも一つの実施形態に含まれてもよい。語句「一実施形態では」は、本明細書全体において同一の実施形態を指すとは限らない。
【００１０】
本発明の一実施形態によると、遅延推定機構を使用して異なる走行状況において自律走行車で発生した異なる種類の遅延を推定する。遅延推定機構は、これらの遅延を利用して遅延補償（delay corrected）された位置を最もよく反映する最良の車両位置を推論する。一実施形態では、システム遅延は、様々な異なる遅延に基づいて決定されることができ、様々な異なる遅延は、自律走行車のステアリング制御遅延、速度制御遅延、計算遅延、及び通信遅延を含むが、これらに限定されるものではない。これらの遅延におけるいくつかの遅延（例えば、ステアリング制御遅延と速度制御遅延）は、特定のセンサを使用して測定されることができる。計算遅されることができる。そして、システム遅延は、予め決定された公式（例えば、加重アルゴリズム（weighted algorithm））を使用して、これらの遅延のうちの少なくとも一部に基づいて決定されることができる。その後、システム遅延を利用して、自律走行車を走行させる間に制御コマンドが発行されるタイミングを調整することができる。
【００１１】
一実施形態では、ステアリング制御遅延が測定され、ここでステアリング遅延は、ステアリング制御コマンドを発行した時間と自律走行車の１つ以上の車輪から受信された応答時間との間の遅延を示す。速度制御遅延は、速度制御コマンドを発行した時間と、自律走行車の１つ以上の車輪から受信された応答時間（或は、アクセルペダル又はブレーキペダルへ圧力を与える時間）との間で測定される。その後、既定のルートに応答して、全体のシステム遅延は、予め決められたアルゴリズムを使用してステアリング制御遅延及び速度制御遅延に基づいて決定される。自律走行車を走行させるための計画及び制御データは、システム遅延に基づいて生成される。
【００１２】
本発明の他の実施形態によると、異なる車両のある運転パラメータが異なる運転シナリオで記録される。運転シナリオは、特定の速度（例えば、一定の速度、加速度、又は減速を維持する）で特定の距離を走行させること、特定の速度で特定の回転角度により回転すること、特定の速度及び／又は角度で車線を変更することなどの具体的な走行パターンを指す。ガスペダル及び／又はブレーキペダルに適用される圧力も記録することができる。また、ステアリング制御遅延、速度制御遅延、演算遅延及び／又は通信遅延を含む、各車両が各運転シナリオにおいて関連制御コマンドを発行することと関連するシステム遅延が決定されたり、推定されたりする。データベース又は運転シナリオ−システム遅延（シナリオ／遅延）マッピングテーブルが生成される。シナリオ／遅延マッピングテーブルは、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオをシステム遅延にマッピングする。その後、同じ又は類似の運転シナリオや走行環境で自律走行車を計画及び制御する際に、シナリオ／遅延マッピングテーブルは、リアルタイムの走行期間に適用されてシステム遅延を補償する。
【００１３】
一実施形態では、運転シナリオは、自律走行車の次のルートセグメント（route segment）又はルートに対して決定される。それに応答して、ルックアップ動作は、シナリオ／遅延マッピングテーブルにおいてルックアップ処理を実行して決定された運転シナリオとマッチングするマッピングエントリを位置決めする。シナリオ／遅延マッピングテーブルは、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオを、当該特定の運転シナリオについて算出されたシステム遅延にマッピングする。その後、自律走行車は、その時点での運転シナリオに対応するシステム遅延に基づいて制御かつ走行され、これは、当該状況下で、システム遅延を補償するタイミングに応じて制御コマンドを発行することを含む。
【００１４】
図１は本発明に係る一実施形態に係る自律走行車のネットワーク配置を示すブロック図である。図１を参照して、ネットワーク配置１００はネットワーク１０２によって１つ以上のサーバ１０３〜１０４に通信可能に接続することができる自律走行車１０１を含む。１つの自律走行車が示されているが、ネットワーク１０２によって複数の自律走行車は互いに接続され、及び／又はサーバ１０３〜１０４に接続されることができる。ネットワーク１０２は、任意のタイプのネットワーク、例えば有線又は無線のローカルエリアネットワーク（ＬＡＮ）、例えばインターネットのような広域ネットワーク（ＷＡＮ）、セルラーネットワーク、衛星ネットワーク又はその組み合わせであってもよい。サーバ１０３〜１０４は任意のタイプのサーバ又はサーバクラスタ、例えばＷｅｂサーバ又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ又はその組み合わせであってもよい。サーバ１０３〜１０４は、データ分析サーバ、内容サーバ、交通情報サーバ、地図（マップ）及び興味のあるポイント（ＰＯＩ）サーバ又は位置サーバ等であってもよい。
【００１５】
自律走行車とは、運転者からの入力が非常に少ない又はない場合に案内して環境を通過する自律走行モードに設置される車両である。このような自律走行車は、車両が走行している環境にかかる情報を検出するように配置される１つ又は複数のセンサを含むセンサシステムを備える。車両及びその関連しているコントローラが、検出された情報で案内して環境を通過する。自律走行車１０１が手動モード、完全自律走行モード又は部分自律走行モードで運転されることができる。
【００１６】
一実施形態では、自律走行車１０１は、データ処理システム１１０と、車両制御システム１１１と、無線通信システム１１２と、ユーザインターフェースシステム１１３と、インフォテイメントシステム１１４と、センサシステム１１５とを含むが、これらに制限されない。自律走行車１０１は、通常の車両に含まれるある一般的な構成要素（部材）、例えばエンジン、車輪、ハンドル、変速器等をさらに含んでもよく、前記構成要素は、車両制御システム１１１及び／又はデータ処理システム１１０により多種の通信信号及び／又はコマンド（例えば加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンド等）を使用して制御されることができる。
【００１７】
構成要素１１０〜１１５は、インターコネクト、バス、ネットワーク又はそれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素１１０〜１１５は、コントローラローカルエリアネットワーク（ＣＡＮ）バスを介して互いに通信可能に接続することができる。ＣＡＮバスは、マイクロコントローラ及び装置がホストコンピューターのない応用において互いに通信することを許可するような車両バス標準として設計される。それは、最初に自動車内における多重（multiplex）電線のために設計されたメッセージに基づくプロトコルであるが、他のたくさんの環境（状況）にも用いられる。
【００１８】
ここで、図２を参照して、一実施形態では、センサシステム１１５は、１つ以上のカメラ２１１と、全地球測位システム（ＧＰＳ）ユニット２１２と、慣性計測ユニット（ＩＭＵ）２１３と、レーダーユニット２１４と、光検出及び測距（ＬＩＤＡＲ）ユニット２１５とを含むが、これらに限定されない。ＧＰＳユニット２１２は、送受信機を含んでもよく、前記送受信機は、自律走行車の位置に関する情報を提供するように処理されることができる。ＩＭＵユニット２１３は、慣性加速度に基づいて自律走行車の位置及び方向の変化を感知することができる。レーダーユニット２１４は、無線信号を利用して自律走行車のローカル環境内の対象を感知するシステムを示すことができる。いくつかの実施形態において、対象を感知する以外、レーダーユニット２１４は、さらに対象の速度及び／又は走行方向を感知することができる。ＬＩＤＡＲユニット２１５はレーザを使用して自律走行車の位置する環境における対象を感知することができる。その他のシステム構成要素以外、ＬＩＤＡＲユニット２１５は１つ以上のレーザ光源、レーザースキャナ及び１つ以上の検出器をさらに含んでもよい。カメラ２１１は、自律走行車の周辺環境の画像をキャプチャするための１つ以上の装置を含んでもよい。カメラ２１１は、スチルカメラ及び／又はビデオカメラであってもよい。カメラは、例えば回転及び／又は傾斜のプラットフォームに取り付けられる、機械的に移動可能なものであってもよい。
【００１９】
センサシステム１１５は、その他のセンサ、例えばソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ、及びオーディオセンサ（例えばマイクロフォン）をさらに含んでもよい。オーディオセンサは、自律走行車周辺の環境から音をキャプチャするように配置されてもよい。ステアリングセンサは、ハンドル、車両の車輪又はその組み合わせのステアリング角を感知するように配置されることができる。スロットルセンサ及びブレーキセンサは、それぞれ車両のスロットル位置及びブレーキ位置を感知する。いくつかの場合、スロットルセンサ及びブレーキセンサは、集積型スロットル／ブレーキセンサに一体化されてもよい。
【００２０】
一実施形態では、車両制御システム１１１は、ステアリングユニット２０１、スロットルユニット２０２（加速ユニットでも呼ばれる）、ブレーキユニット２０３、コンピュータビジョンシステム２０４、ナビゲーションユニット２０５（ナビゲーションとルートシステム、又はナビゲーション／ルートシステムとも呼ばれる）及び衝突回避ユニット２０６（障害物回避システムでも呼ばれる）を含むが、これらに限定されない。ステアリングユニット２０１は、車両の方向又は走行方向を調整することに用いられる。スロットルユニット２０２は、モーター又はエンジンの速度を制御して、さらに車両の速度及び加速度を制御することに用いられる。ブレーキユニット２０３は、摩擦を提供することによって車両の車輪又はタイヤをスローダウンして車両を減速させることに用いられる。
【００２１】
コンピュータビジョンシステム２０４は、自律走行車の環境内の対象及び／又は特徴を認識するために１つ以上のカメラ２１１によってキャプチャされた画像を処理し、分析するものである。対象は、交通信号、道路境界、他の車両、歩行者、及び／又は障害物などを含むことができる。コンピュータビジョンシステム２０４は、対象認識アルゴリズム、ビデオ追跡及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態では、コンピュータビジョンシステム２０４は、環境をマッピングして、対象を追跡し、対象の速度を推定することなどができる。
【００２２】
ナビゲーションシステム２０５は、自律走行車の走行経路を決定するものである。例えば、ナビゲーションシステムは、自律走行車を最終的な目的地に至る車道ベースの経路に沿って一般的に前進させるとともに、感知された障害物をだいたい避けるような経路に沿って移動する一連の速度と進行方向（directional heading）を決定することができる。目的地は、ユーザインタフェースを介してユーザ入力に応じて設定されてもよい。ナビゲーションシステム２０５は、自律走行車が走行している間、走行経路を動的に更新することができる。ナビゲーションシステム２０５は、自律走行車に用いられる走行経路を決定するためにＧＰＳシステム、及び１つ以上のマップからのデータを統合してもよい。
【００２３】
衝突回避システム２０６は、自律走行車の環境での潜在的な障害物を識別、評価、回避又は他の方法で乗り越えるものである。例えば、衝突回避システム２０６は、緊急回避（swerve）処理、回転処理、制動処理などを行うために、制御システムの１つ以上のサブシステムを処理することで、自律走行車のナビゲーションにおける変化を実現することができる。衝突回避システム２０６は、周辺の交通パターン、道路状況等に基づいて、実現可能な障害物回避処理を自動的に決定することができる。衝突回避システム２０６は、自律走行車が緊急回避して進入しようとする隣接領域における車両、建築の障害物などが他のセンサシステムにより検出されたとき、緊急回避処理が行われないように構成されることができる。衝突回避システム２０６が、使用可能でありながら自律走行車の乗員の安全性を最大化する処理を自動的に選択することができる。衝突回避システム２０６は、自律運行車両の乗客室に対して最低限の加速を引き起こすと予想される回避処理を選択することができる。注意すべきなことは、図２に示される構成要素はハードウェア、ソフトウェア又はその組み合わせで実現されてもよい。
【００２４】
図１を再び参照して、無線通信システム１１２は、自律走行車１０１と、例えば装置、センサ、その他の車両等の外部システムとの間に通信することを可能にする。例えば、無線通信システム１１２は、１つ以上の装置に直接に又は通信ネットワークを介して無線通信し、例えばネットワーク１０２によってサーバ１０３〜１０４に通信することができる。無線通信システム１１２は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク（ＷＬＡＮ）（例えばＷｉＦｉ）を使用して他の構成要素やシステムに通信することができる。無線通信システム１１２は、例えば赤外線リンク、ブルートゥース等を使用して装置（例えば、乗客の移動装置、表示装置、車両１０１内のスピーカ）に直接に通信することができる。ユーザインターフェースシステム１１３は、車両１０１内で実行される周辺装置の一部であってもよく、例えばキーボード、タッチスクリーンディスプレイ装置、マイクロフォン、及びスピーカ等を含む。
【００２５】
自律走行車１０１の一部又は全ての機能は、特に自律走行モードで処理される場合、データ処理システム１１０により制御されたり管理されたりすることができる。データ処理システム１１０は、必要なハードウェア（例えば、プロセッサ、メモリ、記憶装置）、及びソフトウェア（例えば、オペレーティングシステム、計画及びルーティングプログラム）を含み、センサシステム１１５、車両制御システム１１１、無線通信システム１１２、及び／又はユーザインターフェースシステム１１３から情報を受信し、受信された情報を処理し、出発地から目的地までのルートや経路を計画し、そして計画及び制御情報に基づいて車両１０１を走行させる。あるいは、データ処理システム１１０と車両制御システム１１１とは一体化されてもよい。
【００２６】
例えば、乗客であるユーザは、例えばユーザインタフェースによって旅程の出発位置及び目的位置を指定することができる。データ処理システム１１０は、自律走行車１０１の他の構成要素と通信して旅程関連データを取得する。例えば、データ処理システム１１０は、位置サーバ及び地図及びＰＯＩ（ＭＰＯＩ）サーバから位置及びルート情報を取得することができ、前記ＭＰＯＩサーバはサーバ１０３〜１０４の一部であってもよい。位置サーバは、位置サービスを提供し、かつＭＰＯＩサーバはマップサービス及びある位置のＰＯＩを提供する。あるいは、このような位置及びＭＰＯＩ情報は、感知及び計画システム１１０の不揮発性記憶装置にローカルにキャッシュされることができる。
【００２７】
自律走行車１０１がルートに沿って走行する期間に、データ処理システム１１０は、さらに交通情報システムやサーバ（ＴＩＳ）からリアルタイム交通情報を取得できる。注意すべきなのは、サーバ１０３〜１０４は、第三者エンティティにより動作されることができる。あるいは、サーバ１０３〜１０４の機能は、データ処理システム１１０と一体化されてもよい。リアルタイム交通情報、ＭＰＯＩ情報、位置情報、及びセンサシステム１１５が検出又は感知したリアルタイムなローカル環境データ（例えば、障害物、対象、付近車両）に基づいて、データ処理システム１１０は、指定された目的地に安全で効果的に到達するように、最適なルートを計画し、かつ計画したルートにより例えば車両制御システム１１１を介して車両１０１を運転することができる。
【００２８】
一実施形態によると、自律走行車１０１は、車両１０１の乗客に情報とエンターテインメントを提供するインフォテイメントシステム１１４をさらに含むことができる。情報及びエンターテイメントコンテンツは、ローカル及び／又はリモートに（例えば、サーバ１０３乃至１０４によって提供される）記憶されたコンテンツ情報に基づいて、受信、コンパイル、及びレンダリングされる。例えば、情報はネットワーク１０２を介して任意のサーバ１０３乃至１０４からリアルタイムでストリーミングされて車両１０１のディスプレイ装置上に表示される。情報は、例えば、１つ以上のカメラでリアルタイムにキャプチャされたローカル情報によって拡張される（augmented）ことができ、それから、拡張されたコンテンツは、仮想現実の方法で表示されてもよい。
【００２９】
一実施形態では、位置及びルート情報、ＭＰＯＩ情報、及び／又はリアルタイムの交通情報に基づいて、インフォテインメントシステム１１４及び／又はデータ処理システム１１０は、現在の交通環境（例えば、ＭＰＯＩ）に適切なあるタイプのコンテンツを決定する。システムは、例えばリアルタイムの走行情報に基づいて、リストコンテンツアイテム（例えば、スポンサーされたコンテンツや広告）をコンテンツアイテムの候補として認識するために、コンテンツのインデックス（図示せず）においてルックアップ処理を実行する。
【００３０】
一実施形態では、システムは、様々なランキングアルゴリズムを使用してリスト内のコンテンツアイテムの順位を決定する。コンテンツアイテムは、ユーザのユーザプロファイルに基づいて、順位を決定してもよい。例えば、コンテンツアイテムは、ユーザプロファイルから導出できる、ユーザの好み（preference）に基づいて、順位を決定してもよい。ユーザプロファイルは、過去のユーザ操作の履歴に基づいて、コンパイルされることができる。一実施形態では、システムは、各コンテンツアイテムのランキングスコアを決定するために、１つ以上のコンテンツのランキングモデルをコンテンツアイテムのそれぞれに適用する。所定のしきい値を超えるランキングスコアを有するコンテンツアイテムを選択することができる。コンテンツランキングモデルは、過去の類似する移動環境や交通状況を表す既知の特徴のセットによってトレーニングされることができる。コンテンツランキングモデルは、類似するユーザのユーザプロファイルに基づいて訓練されてもよい。
【００３１】
選択されたコンテンツアイテムをレンダリングして、自律走行車内のディスプレイ装置上に表示する。一実施形態では、システムは、自律走行車の１つ以上のカメラを使用してある時点でキャプチャされた画像上に、選択されたコンテンツアイテムを追加して拡張させる。一実施形態では、画像に画像認識を実行し、画像によって表現されたコンテンツを導出したり理解したりする。例えば、画像やＰＯＩを記述するために、１つ以上のキーワードが導出される。コンテンツアイテムのリストは、画像によって表現された１つ以上のキーワード又はＰＯＩに基づいて認識されてもよい。その後、システムは、選択されたコンテンツアイテムをイメージに拡張して、コンテンツアイテムが画像上に重畳される拡張画像を生成する。拡張画像は、自律走行車のディスプレイ装置上に表示される。いくつかの実施形態によれば、インフォテイメントシステム１１４は、データ処理システム１１０と一体化されてもよい。
【００３２】
代案としては、ユーザは、ネットワーク（例えば、クラウドネットワーク）を介してコンテンツプロバイダのコンテンツサーバから定期的に更新できる、コンテンツ記憶装置又はデータベースからのプリコンパイルされたコンテンツ（例えば、ビデオ、映画）のリストから特に選択することができる。したがって、ユーザは、例えば、データ記憶装置１２５から取得されたディスプレイ装置上に表示しようとする、リアルタイムでキャプチャされたリアルタイムの実際コンテンツ又は事前レンダリングされたコンテンツを特に選択することができる。例えば、自律走行車１０１が、ニューヨーク市で雪の降る日に走行する場合には、ユーザはハワイで明るい環境を表示するようにディスプレイ装置をスイッチングすることができ、まるで自律走行車１０１が晴れた日に走行するようである。コンテンツは、協力又は協調の方法で（つまり、仮想現実方法で）複数のディスプレイ装置（例えば、複数のウィンドウ）に表示されてもよい。
【００３３】
図１を再び参照すると、一実施形態によると、次のルート又は次のルートセグメントを計画するとき、データ処理システム１１０は、システム遅延を考慮する。具体的には、次の移動を計画するとき、システムはその時点の運転シナリオを決定し、運転シナリオに対応するシステム遅延を取得する。システムは、（例えば、システム遅延を考慮して適切なタイミング、大きさ、及び／又は回転角度に関する制御コマンドを発行することにより）関連するシステム遅延をもとに計画及び制御データを生成する。システム遅延は、自律走行車の走行期間にオンラインで決定されてもよい。代案として、システム遅延は、様々な運転シナリオ又は条件下での大量の車両の多くの運転統計に基づいてオフラインで決定されてもよい。
【００３４】
一実施形態によると、システム遅延は、大量の異なる車両の大量の走行統計に基づいて、サーバ１０３のような分析システムによって決定されてもよい。そして、システム遅延は、リアルタイム又はオンラインの走行期間に使用されるように、データベースやテーブルのようなデータ構造で自律走行車１０１上にロードされる。一実施形態では、サーバとして動作するデータ分析システム１０３は、データコレクタ１５１と、データ分析モジュール１５２とを含むが、これらに限定されるものではない。データコレクタ１５１は、異なる運転シナリオ及び／又は条件下で、様々な車両から記録されキャプチャされた様々な走行統計１５３を収集する。また、走行統計１５３は、走行動作の間に、車両の様々なセンサによって測定及び／又は推定された特定のシステム遅延をさらに含む。
【００３５】
一実施形態では、システム遅延は、様々な異なる遅延に基づいて決定されることができ、様々な異なる遅延は、自律走行車におけるステアリング制御遅延、速度制御遅延、演算遅延及び通信遅延を含むが、これらに限定されない。これらの遅延のうちのいくつかの遅延（ステアリング制御遅延及び速度制御遅延など）は、特定のセンサ（例えば、ステアリングセンサ、ホイールセンサ、スロットルセンサやブレーキセンサなど）によって測定されることができる。演算遅延や通信遅延のような他の遅延が推定されてもよい。そして、システム遅延は、予め決定された公式（例えば、加重アルゴリズム）によって、これらの遅延に基づいて決定される。
【００３６】
走行統計１５３に基づいて、分析モジュール１５２は、異なる運転シナリオや状況に対応するシステム遅延を決定する分析を実行する。分析モジュール１５２は、異なる運転シナリオに対応するシステム遅延を記憶するシナリオ／遅延マッピングテーブル１５０を生成する。一実施形態では、シナリオ／遅延マッピングテーブル１５０は、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオをシステム遅延にマッピングする。システム遅延は、ステアリング制御遅延、速度制御遅延、演算遅延又は通信遅延など、様々な種類の遅延に基づいて計算されることができる。代案としては、それぞれのマッピングエントリは、特定の運転シナリオを個別のステアリング制御遅延、速度制御遅延、演算遅延と通信遅延のセットにマッピングする。
【００３７】
そして、シナリオ／遅延マッピングテーブル１５０は、自律走行車にアップロードされ、ここで、シナリオ／遅延マッピングテーブル１５０は、自律走行車を制御して走行させるための制御コマンドを発行するタイミングを決定することによるシステム遅延を補償するように適用されてもよい。代案として、ステアリング制御遅延、速度制御遅延、演算遅延や通信遅延などのシステム遅延は、自律走行車を走行させる間に、リアルタイムで測定されたり推定されたりすることができる。これらのシステム遅延は、当該時点での具体的な運転シナリオの影響を受けずに制御コマンドを発行する処理を補償するために適用されてもよい。シナリオ／遅延マッピングテーブル１５０は、データベース又は他のルックアップテーブルのような、様々なデータ構造で実現されてもよい。
【００３８】
図３は、本発明の一実施形態に係る自律走行車とともに使用されるデータ処理システムの一例を示すブロック図である。システム３００は、図１のシステム１０１の一部として実現されてもよい。図３を参照すると、データ処理システム１１０は、計画モジュール３０１、制御モジュール３０２、マップ及びルートモジュール３０３及びシステム遅延決定モジュール（又はシステム遅延決定計算機）３０４を含むが、これらに限定されない。モジュール３０１〜３０４は、ソフトウェア、ハードウェア、又はこれらの組み合わせで実現されてもよい。例えば、任意のモジュール３０１〜３０４は、永続記憶装置３１２（例えば、ハードディスク）に設置され、メモリ３１１にロードされ、１つ以上のプロセッサ（図示せず）によって実行されることができる。
【００３９】
計画モジュール３０１は、センサシステム１１５から受信されたセンサデータ及び／又は様々なソース（例えば、位置、地図、地図と興味点の一部としてのＰＯＩ、又はマップとルートモジュール３０３によって提供されるＭＰＯＩデータベース）から受信されたリアルタイム情報のような様々な情報に基づいて、自律走行車のための経路又はルートを計画するものである。計画及び制御データは、計画モジュール３０１によって生成される。計画及び制御データに基づいて、制御モジュール３０２は、計画及び制御データによって定義されたルート又は経路に沿って、車両制御システム１１１に適切なコマンド又は信号を送信することにより、自律走行車を制御するものである。計画及び制御データには、経路、又はルートに沿って異なる時点において、適切な車両設定又は運転パラメータ（例えば、スロットル、ブレーキ、及び回転コマンド）を使用して、ルート又は経路の第１点から第２点まで車両を走行させることができる十分な情報が含まれている。計画モジュール３０１と制御モジュール３０２は、図２の車両制御システム１１１のナビゲーションユニット２０５に通信可能に接続されたり、ナビゲーションユニット２０５と一体化されたりしてもよい。
【００４０】
一実施形態によると、システム遅延決定モジュール３０４（単に遅延計算機とも称する）は、自律走行車３００のシステム全体の遅延を決定する。一実施形態では、これらのシステム遅延は、特定の状況におけるステアリング制御遅延３２１、速度制御遅延３２２、演算遅延３２３、通信遅延３２４又は他の遅延に（個別の遅延とも呼ばれる）のうちの少なくとも一つに基づいて算出されたり決定されたりすることができる。これらの遅延３２１〜３２４は、大量の異なる運転シナリオ又は運転条件で大量の車両による大量の走行記録に基づいて測定されたり推定されたりすることができる。これらの遅延３２１〜３２４は、大量の走行統計を収集し、分析することで、データ分析システム１０３のようなデータ分析システムによってオフラインで決定されてもよい。例えば、特定のタイプの遅延は、同一又は類似のタイプの大量の車両から発生する同じタイプの平均遅延に基づいて決定されることができる。
【００４１】
代案として、遅延３２１〜３２４は、遅延決定モジュール３０４によってリアルタイムで決定されたり測定されたりすることができる。しかし、このような方法は、オンライン走行の間に性能が低下したり、計算する時間が長くかかる可能性がある。これとは反対に、専用のデータ分析システムによってオフラインで遅延３２１〜３２４を算出することにより、オンラインで遅延３２１〜３２４を使用することができ、遅延３２１〜３２４を決定する時間を短縮することができる。一実施形態では、遅延３２１〜３２４は、自律走行車３００内のオンライン測定及び／又はデータ分析システムによって様々な車両のオフライン遅延計算に基づいて定期的に更新されてもよい。
【００４２】
一実施形態では、システム遅延決定モジュール３０４は、ステアリング制御遅延３２１を決定するためのステアリング制御遅延決定モジュール（図示せず）を含む。ステアリング制御遅延３２１は、ステアリング制御コマンドが発行される時間と、車両３００の１つ以上の車輪から応答が受信された時間との間で測定されることができる。ステアリング制御遅延３２１は、ステアリング制御コマンドが発行されることと、車両の車輪がステアリング制御コマンドによって指定される角度で位置決められることとの間の時間に基づいて測定されることができ、これは１つ以上のステアリングセンサによって感知されてもよい。
【００４３】
システム遅延決定モジュール３０４は、加速のとき、減速のとき又は同じ速度を維持するときの遅延を含む速度制御遅延３２２を決定するための速度制御遅延決定モジュール（図示せず）をさらに含むことができる。速度制御遅延３２２は、速度制御コマンド（例えば、加速、減速又は制動）を発行する時間と、車両が速度の変更を開始することを示す応答を車両の車輪から受信した時間との間で測定されてもよい。速度制御遅延３２２は、加速又はスロットルコマンドを発行する時間と、車両が加速を開始する時間との差を示す加速遅延を含む。速度制御遅延３２２は、減速又は制動コマンドを発行する時間と、車両が減速を開始する時間との差を示す減速遅延を含むことができる。
【００４４】
演算遅延３２３は、システム（例えば、計画モジュール３０１、制御モジュール３０２、車両制御システム１１１及びＣＡＮバスなどの通信バス）が制御コマンドを生成して発行するのにかかる演算時間を指す。演算遅延はスリープ時間をさらに含むことができる。例えば、演算が１０ヘルツ（Ｈｚ）の周波数で実行される場合（例えば、運転パラメータを０．１秒ごとに演算する）、平均スリープ時間は５０ミリ秒（ｍｓ）である。このスリープ時間は、演算遅延の一部としてみなされ、スリープ時間の間に、システムが如何なるコマンドや応答を処理する可能性が低いためである。通信遅延３２４は、制御システム、通信バスと車の間にコマンドを発行する及び応答を受信する遅延又は通信コストを指す。演算遅延３２３及び通信遅延３２４は、同一又は類似のタイプの一つ以上の車両の前の動作に基づいて推定されることができる。
【００４５】
一実施形態では、システム遅延決定モジュール３０４は、予め決定された遅延アルゴリズムを使用して、ステアリング制御遅延３２１、速度制御遅延３２２、演算遅延３２３又は通信遅延３２４のうちの１つ以上の遅延に基づいて、全体又は最終システム遅延を算出する。一実施形態では、予め決定されたアルゴリズムは、加重アルゴリズムであり、計算においてかかるステアリング制御遅延３２１、速度制御遅延３２２、演算遅延３２３又は通信遅延３２４のそれぞれは、加重因子又は係数が割り当てられる。具体的な運転シナリオ又は環境によって、計算においてかかる個別の遅延のそれぞれの加重係数又は係数は異なってもよい。例えば、車両が曲がろうとすると、ステアリング制御遅延３２１に対応する加重係数をより高く調整することができる。車両が直進すると、速度制御遅延３２２に対応する加重係数を、特に、車両の現在速度と目標速度との差が比較的に大きいとき（例えば、予め決定されたしきい値よりも大きい場合）に、より高く調整ことができる。具体的な状況に応じて上記の調整をリアルタイムで適用することができる。算出されたシステム遅延は、制御コマンドを発行する時点と車両からの遅延応答の時点を補償するのに使用することができる。
【００４６】
例えば、ここで、図４を参照すると、車両が位置４０１にあると仮定する。システム遅延が考慮されると、制御コマンドが発行されるとき、車両は位置４０２で制御コマンドを受信し応答することができる。この遅延は、運転パラメータ（例えば、スロットル、ブレーキパラメータ）を決定するときに誤差を発生させる可能性があり、したがって、乗客に不快感を与える可能性がある。車両が制御コマンドを受信するとき、車両は、制御コマンドが決定された元の位置４０１に位置しない可能性がある。もっと正確に言えば、車両が位置４０２にある可能性がある。その結果、車両が受信された制御コマンドを実行するとき、たいへん遅くなる可能性があり、制御システムは、他のコマンドを発行することにより、このような状況を補正しなければならない。システム遅延を算出して了解することにより、システム遅延に基づいて制御コマンドに関連する時点及び運転パラメータを調整し計画して、システム遅延を補償することができる。たとえば、この例では、制御コマンドは、システム遅延を考慮してより早く発行されることができる。
【００４７】
図３を再び参照すると、一実施形態では、データ処理システム１１０は、図１のシステム１０３のようなデータ分析システムによってオフラインで生成されることができるシナリオ／遅延マッピングテーブル１５０をさらに維持（maintain）することができる。前述したように、異なる運転状況において、ステアリング、スロットルとブレーキの時間遅延は、大量の走行データに基づいて測定され、記録される。例えば、異なる運転状況は、１００ｍにおいて時速５マイル（ｍｐｈ）で加速すること、速度を維持して１００メートルを走行すること、１００メートルにおいて１０ｍｐｈで減速すること、１００ｍにおいて４０ｍｐｈで右車線に合流すること、アスファルト道路及びセメント道路で走行すること、３０℃又は７０℃温度下で動作すること、高性能のコンピュータ又は低性能のコンピュータで実行されるアルゴリズムを制御することなどを含むことができるが、これらに限定されない。スロットル圧力、ブレーキ圧力、ホイールの角度、ギアのような自律走行コマンドが記録されてもよい。現在速度、ホイールの角度などを含む状態が記録されてもよい。
【００４８】
シナリオ／遅延マッピングテーブル１５０は、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオをシステム遅延にマッピングする。一実施形態に係るシナリオ／遅延マッピングテーブルの例が図５に示されている。運転シナリオは、特定の速度で特定の距離を走行すること、特定の速度及び特定の回転角度で曲がることのような具体的な走行パターンを指す。ガスペダル及び／又はブレーキペダルに与えられる圧力が記録されてもよい。また、各運転シナリオにおいて各車両がかかる制御コマンドを発行することに関連するシステム遅延（ステアリング制御遅延、速度制御遅延、演算遅延及び／又は通信遅延を含む）が決定又は推定される。その後、類似する運転シナリオ又は環境で自律走行車を計画及び制御する際に、シナリオ／遅延マッピングテーブル１５０は、リアルタイムの走行期間に適用されてシステム遅延を補償する。
【００４９】
一実施形態では、次のルート又はルートセグメントを計画するとき、計画モジュール３０１は、自律走行車の次のルートセグメント又はルートに対応する運転シナリオを決定する。ルックアップ動作はシナリオ／遅延マッピングテーブルで実行され、決定された運転シナリオとマッチングするマッピングエントリを位置決めする。その後、計画モジュール３０１及び／又は制御モジュール３０２は、その時点での運転シナリオに対応するシステム遅延を考慮して自律走行車を制御し、ここで、当該状況におけるシステム遅延を補償するためのタイミングに応じて、制御コマンドを発行することを含む。
【００５０】
これにより、オンライン走行の期間に、システムは、まず状況や運転シナリオをチェックして、例えば、シナリオ／遅延マッピングテーブルに検索することにより、オフラインデータ及びリアルタイム記録に基づいて、システムの時間遅延を決定する。そして、システムは、リアルタイムではなく、当該時間遅延を使用して、将来のステアリング、スロットル及びブレーキを計算する。たとえば、図６Ａ及び図６Ｂを参照すると、点線で示すように、現在の走行計画は３０ｍにおいて車線を右車線に変更することを仮定する。遅延補償なしにステアリング角度コマンド（この例では、５度）が発行されると、車両は０．１秒の遅延で応答し、図６Ａに示される実線の通り、実際のルートは、予想又は計画されるルートから外れる。上記した技術を使用して、決定されたシステム遅延を考慮することにより、実際の行動をとるための０．１秒の遅延があるため（例えば、シナリオ／遅延マッピングテーブルからのマッチング運転シナリオに基づいて）、コマンドは０．９秒（きちんと１秒でない）に送られるべきである。その結果、図６Ｂに示すように、車両は期待どおりに応答して、実際のルートと計画ルートがだいたいマッチングすることができる。
【００５１】
類似して、図７Ａ及び図７Ｂを参照すると、車両が回転するとき、システム遅延は、図７Ａに示す実線で示されたように、車両に遅延された方式で反応させる可能性がある。ある状況では、車両が計画されたルートに従わないことを検出するとき、実線で示されたような過剰反応を行う可能性があり、乗客に不快感を引き起こす可能性がある。ルートを計画する際に、システム遅延及び他の運転パラメータ（例えば、速度、回転角度）を考慮することで、コマンドは早く及び／又は異なる回転角度で発行されることができるので、車が図７Ｂで示されたような計画されたルートを厳密に従うことができる。
【００５２】
図８は、本発明の一実施形態に係る自律走行車のシステム遅延を推定する手順を示すフローチャートである。手順８００は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されてもよい。例えば、手順８００は、図３のシステム遅延決定モジュール３０４によって実行されてもよい。代案として、手順８００は、様々な車両から収集された走行統計に基づいて、データ分析システム１０３によって実行されてもよい。図８を参照すると、ブロック８０１において、処理ロジックは、車両のステアリング制御遅延を測定する。ステアリング制御遅延はステアリング制御コマンドを発行する時間と車両のステアリングセンサから応答を受信した時間との差を示す。ブロック８０２において、処理ロジックは、車両の速度制御遅延を測定する。速度制御遅延は速度制御コマンド（例えば、加速、減速／制動、一定の速度を維持すること）を発行する時間と車両からの応答時間（例えば、加速、減速を開始する時間）との差を示す。
【００５３】
ブロック８０３において、処理ロジックは、車両の演算遅延を推定する。演算遅延は、車両の制御システムが制御コマンドを生成し発行するのにかかる時間を指す。ブロック８０４において、処理ロジックは、車両の通信遅延を推定する。通信遅延は、制御システム、通信バス（例えばＣＡＮバス）と車両の間にコマンドを発行する及び応答を受信する遅延を示す。そして、ブロック８０５において、ステアリング制御遅延、速度制御遅延、演算遅延及び／又は通信遅延は、データ構造に記憶され、当該データ構造は、後続の制御コマンドを調整して、それらのコマンドを発行する時点を補償するために使用されることができる。
【００５４】
図９は、本発明の他の実施形態に係る自律走行車のシステム遅延を決定する手順を示すフローチャートである。手順９００は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されてもよい。例えば、手順９００は、図３のシステム遅延決定モジュール３０４によって実行されてもよい。代案として、手順９００は、様々な車両から収集された走行統計に基づいて、データ分析システム１０３によって実行されてもよい。図９を参照すると、ブロック９０１において、処理ロジックは、特定のタイプの自律走行車について複数の運転シナリオを決定する。ブロック９０２において、それぞれの運転シナリオについて、処理ロジックは、車両が同一又は類似する運転シナリオ又は運転条件において走行中のテアリング制御遅延を測定し記録する。
【００５５】
ブロック９０３において、処理ロジックは、車両が同一又は類似する運転シナリオ又は運転条件において走行しているときのスロットル制御遅延（例えば、加速遅延）を測定し記録する。ブロック９０４において、処理ロジックは、車両が同一又は類似する運転シナリオ又は運転条件において走行しているときのブレーキ制御遅延（例えば、減速遅延）を測定し記録する。ブロック９０５において、ステアリング制御遅延、スロットル制御遅延及びブレーキ制御遅延は、特定のタイプの自律走行車のシナリオ／遅延マッピングデータ構造に記憶される。前記動作は、同じタイプ又は類似するタイプの大量の車両に対して繰り返し実行されてもよい。そして、遅延は、様々な車両の平均遅延をもとに計算されることができる。
【００５６】
図１０は、本発明の一実施形態に係る自律走行車を動作させる手順を示すフローチャートである。手順１０００は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されてもよい。例えば、手順１０００は、図１のシステム１１０によって実行されてもよい。図１０を参照すると、ブロック１００１において、処理ロジックは、自律走行車に装着された様々なセンサのセンサデータに基づいて決定された、走行環境に対する感知に基づいて、運転シナリオを決定する。ブロック１００２において、処理ロジックは、シナリオ／遅延マッピングテーブルにおいてルックアップ動作を実行して、運転シナリオに対応するマッピングエントリを位置決めする。シナリオ／遅延マッピングテーブルは、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオを、同一又は類似する運転シナリオにおいて様々な車両によって測定された１つ以上の遅延セットにマッピングする。ブロック１００３において、処理ロジックは、マッピングエントリからシステム遅延を検出して決定する。システム遅延は、前述したようなステアリング制御遅延、速度制御遅延、演算遅延及び通信遅延のうち少なくとも一つに基づいて決定されることができる。ブロック１００４において、処理ロジックは、システム遅延を考慮してルート又はルートセグメントを計画し、計画及び制御データを生成する。ブロック１００５において、処理ロジックは、計画及び制御データに基づいて、ルート又はルートセグメントに沿って自律走行車を走行させて制御する。
【００５７】
注意すべき点は、前記の示されたとともに記述された一部又は全部の構成要素は、ソフトウェア、ハードウェア又はその組み合わせで実現されることができる。例えば、このような構成要素は、永続記憶装置にインストールされるとともに記憶されたソフトウェアとして実現されてもよく、前記ソフトウェアは、本出願にわたって記載の手順又は動作を実施するように、プロセッサ（図示せず）でメモリにロードして実行されてもよい。あるいは、このような構成要素は、集積回路（例えば特定用途向けＩＣ又はＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、又はフィールドプログラマブルゲートアレイ（FPGA、Field Programmable Gate Array）にプログラミングされ又は嵌め込みされた専用ハードウェアにおける実行可能なコードとして実現されてもよく、前記実行可能なコードは、対応するドライバープログラム及び／又はオペレーティングシステムによってアプリケーションからアクセスされてもよい。なお、このような構成要素は、プロセッサ又はプロセッサコアにおける特定のハードウェアロジックとして実現されてもよく、ソフトウェア構成要素が１つ以上の特定コマンドによってアクセス可能なコマンドセットの一部とする。
【００５８】
図１１は、本発明の一つの実施形態と組み合わせて使用されるデータ処理システムを例示的に示すブロック図である。例えば、システム１５００は、上記プロセス又は方法のいずれかを実行する上記任意のデータ処理システム（例えば、図１のデータ処理システム１１０、及びサーバ１０３〜１０４のいずれか）を示してもよい。システム１５００は、多数の異なる構成要素を含んでもよい。これらの構成要素は、集積回路（ＩＣ）、集積回路の一部、分散型電子装置又は回路基板に適用された他のモジュール（例えばコンピュータシステムのマザーボード又はアドインカード）、又は他の方式でコンピュータシステムのシャシーに組み込まれた構成要素として実現されることできる。
【００５９】
さらに、システム１５００は、コンピュータシステムの多数の構成要素の高レベルビューを示すことを目的とする。しかしながら、いくつかの実現形態では、付加的構成要素が存在する場合もあることを理解すべきである。また、他の実現形態において示される構成要素が異なる配置を有してもよい。システム１５００は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤー、パーソナルディジタルアシスタント（ＰＤＡ）、スマート腕時計、パーソナルコミュニケーター、ゲーム装置、ネットワークルータ又はハブ、無線アクセスポイント（ＡＰ）又はリピーター、セットトップボックス、又はそれらの組合せを示してもよい。また、単一の機器又はシステムのみを示したが、用語「機器」又は「システム」は、さらに、独立又は共同で一つ（又は複数）のコマンドセットを実行することにより本明細書に説明される任意の１種又は複数種の方法を実行する機器又はシステムの任意のセットを含むことを理解すべきである。
【００６０】
一つの実施形態において、システム１５００は、バス又は相互接続部材１５１０によって接続されたプロセッサ１５０１、メモリ１５０３及び装置１５０５〜１５０８を備える。プロセッサ１５０１は、単一のプロセッサコア又は複数のプロセッサコアを含む単一のプロセッサ又は複数のプロセッサを示してもよい。プロセッサ１５０１は、マイクロプロセッサ、中央処理装置（ＣＰＵ）等のような一つ又は複数の汎用プロセッサであってもよい。より具体的には、プロセッサ１５０１は、複雑コマンドセット計算（ＣＩＳＣ）マイクロプロセッサ、縮小コマンドセットコンピュータ（ＲＩＳＣ）マイクロプロセッサ、超長コマンド語（ＶＬＩＷ）マイクロプロセッサ、又は他のコマンドセットを実現するプロセッサ、又はコマンドセットの組合せを実現するプロセッサであってもよい。プロセッサ１５０１は、さらに、専用集積回路（ＡＳＩＣ）、セルラ又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、グラフィックプロセッサ、ネットワークプロセッサ、通信プロセッサ、暗号プロセッサ、コプロセッサ、組み込みプロセッサのような一つ又は複数の専用プロセッサ、あるいはコマンド処理可能な任意の他のタイプのロジックであってもよい。
【００６１】
プロセッサ１５０１（超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよい）は、前記システムの各種構成要素と通信するための主処理ユニット及び中央ハブとして用いられてもよい。このようなプロセッサは、システムオンチップ（ＳｏＣ）として実現されることができる。プロセッサ１５０１は、コマンドを実行することにより本明細書に説明される動作及びステップを実行するためのコマンドを実行するように構成される。また、システム１５００は、選択可能なグラフィックサブシステム１５０４と通信するグラフィックインターフェースをさらに含んでもよく、グラフィックサブシステム１５０４は、表示コントローラ、グラフィックプロセッサ及び／又は表示装置をさらに備えてもよい。
【００６２】
プロセッサ１５０１は、メモリ１５０３と通信してもよく、メモリ１５０３は、一つの実施形態において複数のメモリによって所定量のシステムメモリを提供する。メモリ１５０３は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）又は他のタイプの記憶装置のような一つ又は複数の揮発性記憶（又はメモリ）装置を備えてもよい。メモリ１５０３は、プロセッサ１５０１又は任意の他の装置により実行されるコマンド列を含む情報を記憶することができる。例えば、複数種のオペレーティングシステム、装置ドライバー、ファームウェア（例えば、基本入出力システム又はＢＩＯＳ）及び／又はアプリケーションの実行可能なコード及び／又はデータはメモリ１５０３にロードされてもよく、プロセッサ１５０１により実行されてもよい。オペレーティングシステムは、ロボットオペレーティングシステム（ＲＯＳ）、Ｍｉｃｒｏｓｏｆｔ（登録商標）会社からのＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム、アップル会社からのＭａｃ  ＯＳ（登録商標）／ｉＯＳ（登録商標）、Ｇｏｏｇｌｅ（登録商標）会社からのＡｎｄｒｏｉｄ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｕｎｉｘ（登録商標）又は他のリアルタイム又は組み込みオペレーティングシステム（のような任意のタイプのオペレーティングシステムであってもよい。
【００６３】
システム１５００は、Ｉ／Ｏ装置、例えば装置１５０５〜１５０８をさらに備えてもよく、ネットワークインターフェース装置１５０５、選択可能な入力装置１５０６及び他の選択可能なＩ／Ｏ装置１５０７を備える。ネットワークインターフェース装置１５０５は、無線送受信機及び／又はネットワークインターフェースカード（ＮＩＣ）を備えてもよい。前記無線送受信機は、ＷｉＦｉ送受信機、赤外送受信機、ブルートゥース送受信機、ＷｉＭａｘ送受信機、無線セルラーホン送受信機、衛星送受信機（例えば、全地球測位システム（ＧＰＳ）送受信機）又は他の無線周波数（ＲＦ）送受信機又はそれらの組合せであってもよい。ＮＩＣはイーサネットカードであってもよい。
【００６４】
入力装置１５０６は、マウス、タッチパッド、タッチスクリーン（それは表示装置１５０４と集積されてもよい）、ポインタデバイス（例えばスタイラス）及び／又はキーボード（例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード）を備えてもよい。例えば、入力装置１５０６は、タッチスクリーンに接続されるタッチスクリーンコントローラを含んでもよい。タッチスクリーン及びタッチスクリーンコントローラは、例えば複数種のタッチ感度技術（容量式、抵抗式、赤外式及び表面音波技術を含むが、それらに限定されない）のいずれか、及びタッチスクリーンの一つ又は複数の接触点を決定するための他の近接センサアレイ又は他の素子を用いてそのタッチ点及び移動又は断続を検出することができる。
【００６５】
Ｉ／Ｏ装置１５０７は音声装置を備えてもよい。音声装置は、スピーカ及び／又はマイクロフォンを含んでもよく、それにより音声認識、音声コピー、デジタル記録及び／又は電話機能のような音声サポートの機能を促進する。他のＩ／Ｏ装置１５０７は、汎用シリアルバス（ＵＳＢ）ポート、パラレルポート、シリアルポート、印刷機、ネットワークインターフェース、バスブリッジ（例えば、ＰＣＩ−ＰＣＩブリッジ）、センサ（例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサ等のような動きセンサ）又はそれらの組合せをさらに備えてもよい。装置１５０７は、結像処理サブシステム（例えば、カメラ）をさらに備えてもよく、前記結像処理サブシステムは、カメラ機能（例えば、写真及びビデオ断片の記録）を促進するための電荷カップリング装置（ＣＣＤ）又は相補型金属酸化物半導体（ＣＭＯＳ）光学センサのような光学センサを備えてもよい。あるセンサは、センサハブ（図示せず）によって相互接続部材１５１０に接続されてもよく、キーボード又は熱センサのような他の装置は、組み込みコントローラ（図示せず）により制御されてもよく、これはシステム１５００の特定配置又は設計により決められる。
【００６６】
データ、アプリケーション、一つ又は複数のオペレーティングシステム等のような情報の永久記憶を提供するために、大容量記憶装置（図示せず）は、プロセッサ１５０１に接続されてもよい。様々な実施形態において、薄型化と軽量化のシステム設計を実現し且つシステムの応答能力を向上させるために、このような大容量記憶装置は、ソリッドステート装置（ＳＳＤ）によって実現されることができる。なお、他の実施形態において、大容量記憶装置は、主にハードディスクドライブ（ＨＤＤ）で実現されてもよく、容量が小さいＳＳＤ記憶装置は、ＳＳＤキャッシュとして停電イベント期間にコンテキスト状態及び他のこのような情報の永久記憶を実現し、それによりシステム動作が再開するときに通電を速く実現することができる。さらに、フラッシュデバイスは、例えばシリアルペリフェラルインターフェース（ＳＰＩ）によってプロセッサ１５０１に接続されてもよい。このようなフラッシュデバイスは、システムソフトウェアの不揮発性記憶に用いられてもよく、前記システムソフトウェアは、前記システムのＢＩＯＳ及び他のファームウェアを備える。
【００６７】
記憶装置１５０８は、任意の１種又は複数種の本明細書に記載の方法又は機能を体現する一つ又は複数のコマンドセット又はソフトウェア（例えば、モジュール、ユニット及び／又はロジック１５２８）が記憶されるコンピュータアクセス可能な記憶媒体１５０９（機械可読記憶媒体又はコンピュータ可読媒体とも呼ばれる）を備えてもよい。モジュール／ユニット／ロジック１５２８は、計画モジュール３０１、制御モジュール３０２、システム遅延決定モジュール３０４、データコレクタ１５１又は分析モジュール１５２のような上記構成要素のいずれかを示してもよい。モジュール／ユニット／ロジック１５２８は、さらにデータ処理システム１５００により実行される期間にメモリ１５０３内及び／又はプロセッサ１５０１内に完全又は少なくとも部分的に存在してもよく、ここで、メモリ１５０３及びプロセッサ１５０１も、機器アクセス可能な記憶媒体を構成する。処理モジュール／ユニット／ロジック１５２８は、さらにネットワークによってネットワークインターフェース装置１５０５を経由して送受信されてもよい。
【００６８】
コンピュータ可読記憶媒体１５０９は、以上に説明されたいくつかのソフトウェア機能を永続的に記憶してもよい。コンピュータ可読記憶媒体１５０９は、例示的な実施形態において単一の媒体として示されたが、用語「コンピュータ可読記憶媒体」は、前記一つ又は複数のコマンドセットが記憶される単一の媒体又は複数の媒体（例えば、集中型又は分散型データベース、及び／又は関連するキャッシュ及びサーバ）を備えることを理解すべきである。用語「コンピュータ可読記憶媒体」は、さらにコマンドセットを記憶又はコーディング可能な任意の媒体を備えることを理解すべきであり、前記コマンドセットは、機器により実行され且つ前記機器に本出願の任意の１種又は複数種の方法を実行させる。従って、用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ及び光学媒体と磁気媒体又は任意の他の非一時的機械可読媒体を備えるが、それらに限定されないことを理解すべきである。
【００６９】
本明細書に記載の処理モジュール／ユニット／ロジック１５２８、構成要素及び他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はハードウェア構成要素（例えばＡＳＩＣ、ＦＰＧＡ、ＤＳＰ又は類似装置）の機能に統合されてもよい。さらに、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置内のファームウェア又は機能回路として実現されてもよい。また、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置及びソフトウェアコンポーネントの任意の組合せで実現されてもよい。
【００７０】
なお、システム１５００は、データ処理システムの各種の構成要素を有するように示されているが、構成要素の相互接続のいかなる特定のアーキテクチャー又は方式を示すものではないことに注意すべきであり、それは、このような詳細が本出願の実施形態に密接な関係がないためである。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ及び／又は他のデータ処理システムは、本出願の実施形態と共に使用されてもよい。
【００７１】
上記詳細な説明の一部は、コンピュータメモリにおけるデータビットに対する演算のアルゴリズム及び記号表現で示される。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。ここで、アルゴリズムは、通常、所望の結果につながる首尾一貫した動作列（sequence of operations）と考えられる。これらの動作とは、物理量に対して物理的動作を行う必要となるステップを指す。
【００７２】
ただし、これらの全て及び類似の用語は、いずれも適切な物理量に関連付けられ、且つただこれらの量に適用される適切なラベルであることに注意すべきである。特に断らない限り、本出願の全体にわたって用語（例えば、添付している特許請求の範囲に説明された用語）による説明とは、コンピュータシステム又は類似の電子計算装置の動作及び処理であり、前記コンピュータシステム又は電子計算装置は、コンピュータシステムのレジスタ及びメモリに物理（例えば、電子）量としてデータを示し、且つ前記データをコンピュータシステムメモリ又はレジスタ又は他のこのような情報記憶装置、伝送又は表示装置内において類似に物理量として示される他のデータに変換する。
【００７３】
本出願の実施形態は、さらに本明細書における動作を実行するための装置に関する。このようなコンピュータプログラムは、不揮発性のコンピュータ可読媒体に記憶される。機器可読媒体は、機器（例えば、コンピュータ）可読な形態で情報を記憶する任意の機構を備える。例えば、機器可読（例えば、コンピュータ可読）媒体は、機器（例えば、コンピュータ）可読記憶媒体（例えば、読み出し専用メモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリメモリ）を備える。
【００７４】
上記図面に示される手順又は方法は、ハードウェア（例えば、回路、専用ロジック等）、ソフトウェア（例えば、不揮発性のコンピュータ可読媒体に具現化される）、又は両方の組合せを含む処理ロジックにより実行されてもよい。前記手順又は方法は、本明細書において特定の順序に応じて説明されるが、説明された動作の一部は、異なる順序に応じて実行されてもよい。また、いくつかの動作は、順番ではなく並行に実行されてもよい。
【００７５】
本出願の実施形態は、いずれかの特定のプログラミング言語を参照して説明されていないが、複数種のプログラミング言語で本明細書に記載の本出願の実施形態の教示を実現できることを理解すべきである。
【００７６】
以上の明細書では、本出願の具体的な例示的な実施形態を参照してその実施形態を説明した。明らかなように、添付している特許請求の範囲に記載の本出願のより広い趣旨及び範囲を逸脱しない限り、様々な変形が可能である。従って、限定的なものではなく例示的なものとして本明細書及び図面を理解すべきである。
【国際調査報告】
2019503294.tif 000016