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