特許第6578439号(P6578439)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ バイドゥ・ユーエスエイ・リミテッド・ライアビリティ・カンパニーの特許一覧

特許6578439自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法
<>
  • 特許6578439-自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法 図000002
  • 特許6578439-自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法 図000003
  • 特許6578439-自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法 図000004
  • 特許6578439-自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法 図000005
  • 特許6578439-自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法 図000006
  • 特許6578439-自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法 図000007
  • 特許6578439-自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法 図000008
  • 特許6578439-自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法 図000009
  • 特許6578439-自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法 図000010
  • 特許6578439-自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法 図000011
  • 特許6578439-自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法 図000012
  • 特許6578439-自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法 図000013
  • 特許6578439-自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法 図000014
  • 特許6578439-自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法 図000015
  • 特許6578439-自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6578439
(24)【登録日】2019年8月30日
(45)【発行日】2019年9月18日
(54)【発明の名称】自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法
(51)【国際特許分類】
   B60W 30/02 20120101AFI20190909BHJP
【FI】
   B60W30/02 300
【請求項の数】21
【全頁数】24
(21)【出願番号】特願2018-517633(P2018-517633)
(86)(22)【出願日】2017年1月18日
(65)【公表番号】特表2019-500256(P2019-500256A)
(43)【公表日】2019年1月10日
(86)【国際出願番号】US2017013930
(87)【国際公開番号】WO2018063428
(87)【国際公開日】20180405
【審査請求日】2018年4月5日
(31)【優先権主張番号】15/278,719
(32)【優先日】2016年9月28日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】516267603
【氏名又は名称】バイドゥ・ユーエスエイ・リミテッド・ライアビリティ・カンパニー
【氏名又は名称原語表記】Baidu USA LLC
(74)【代理人】
【識別番号】110001416
【氏名又は名称】特許業務法人 信栄特許事務所
(72)【発明者】
【氏名】チュー,ファン
(72)【発明者】
【氏名】コン,チー
(72)【発明者】
【氏名】ヤン,コアン
(72)【発明者】
【氏名】ワン,チンカオ
【審査官】 三宅 龍平
(56)【参考文献】
【文献】 特開2018−024286(JP,A)
【文献】 米国特許出願公開第2016/0075341(US,A1)
【文献】 特開2017−074838(JP,A)
【文献】 特開2014−069766(JP,A)
【文献】 特開2012−252406(JP,A)
【文献】 特開2017−154554(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B60W 30/00 − 50/16
G08G 1/00 − 99/00
B62D 6/00 − 6/10
B60T 7/12 − 8/1769
B60T 8/32 − 8/96
F02D 43/00 − 45/00
(57)【特許請求の範囲】
【請求項1】
自律走行車を走行させるためのコンピュータ実施方法であって、
自律走行車の次の移動に用いられる運転シナリオを認識するステップであって、前記運転シナリオは1つ以上の予め決められた所定のパラメータのセットで表されるステップと、
前記運転シナリオに対応する物理モデルを用いて、前記自律走行車の第1の次の移動を計算するステップと、
当該予め決められた所定のパラメータのセットに横滑り予測モデルを適用して、前記運転シナリオが与えられる場合の前記自律走行車の横滑りを予測するステップであって、前記横滑りは、車両の到達する予定である第1の場所又は位置と、車両の運転条件により実際に到達した第2の場所又は位置との間の距離又は経路の差を意味するステップと、
前記自律走行車の前記第1の次の移動と、前記自律走行車により予測された横滑りとに基づいて、前記自律走行車の第2の次の移動を決定するステップと、
前記第2の次の移動に基づいて、計画及び制御データを生成するステップと、
前記計画及び制御データに基づいて前記自律走行車を制御し、走行させるステップと、を含む、
ことを特徴とする方法。
【請求項2】
前記横滑り予測モデルは、複数の異なるタイプの車両により複数の運転シナリオにおいて測定して記録された横滑りと、対応する運転パラメータとに基づいて、機械学習によって生成される、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記横滑りは、前記自律走行車の実際の位置と、前記自律走行車により前記物理モデルに基づいて計算された位置との間の距離を示す、
ことを特徴とする請求項1に記載の方法。
【請求項4】
前記第2の次の移動を決定するステップは、
元の位置、車輪の動き、及び前記予測された横滑りに基づいて、前記自律走行車の最終の位置を計算するステップを含む、
ことを特徴とする請求項1に記載の方法。
【請求項5】
前記予測された横滑りは、前記物理モデルに基づいて計算された、前記自律走行車の前記第1の次の移動を補正するために使用される、
ことを特徴とする請求項1に記載の方法。
【請求項6】
前記運転シナリオは、前記自律走行車の回転のシナリオを含む、
ことを特徴とする請求項1に記載の方法。
【請求項7】
前記所定のパラメータは、道路の種類、気象条件、前記自律走行車の速度、前記自律走行車の目標角度、前記自律走行車の加速度又は減速度、及び前記自律走行車のステアリング角のうちの1つ以上を含む、
ことを特徴とする請求項1に記載の方法。
【請求項8】
コマンドが記憶されており、前記コマンドがプロセッサにより実行されると、前記プロセッサに、自律走行車を動作させる処理を実行させる、不発揮性の機械可読媒体であって、
前記処理は、
次の移動に用いられる自律走行車の運転シナリオを認識し、前記運転シナリオは1つ以上の予め決められた所定のパラメータのセットで表されることと、
前記運転シナリオに対応する物理モデルを用いて、前記自律走行車の第1の次の移動を計算することと、
当該予め決められた所定のパラメータのセットに横滑り予測モデルを適用して、前記運転シナリオが与えられる場合の前記自律走行車の横滑りを予測することであって、前記横滑りは、車両の到達する予定である第1の場所又は位置と、車両の運転条件により実際に到達した第2の場所又は位置との間の距離又は経路の差を意味することと、
前記自律走行車の前記第1の次の移動と、前記自律走行車により予測された横滑りとに基づいて、前記自律走行車の第2の次の移動を決定することと、
前記第2の次の移動に基づいて、計画及び制御データを生成することと、
前記計画及び制御データに基づいて前記自律走行車を制御し、走行させることと、を含む、
ことを特徴とする不発揮性の機械可読媒体。
【請求項9】
前記横滑り予測モデルは、複数の異なるタイプの車両により複数の運転シナリオにおいて測定して記録された横滑りと、対応する運転パラメータとに基づいて、機械学習によって生成される、
ことを特徴とする請求項8に記載の機械可読媒体。
【請求項10】
前記横滑りは、前記横滑りは、前記自律走行車の実際の位置と、前記自律走行車により前記物理モデルに基づいて計算された位置との間の距離を示す、
ことを特徴とする請求項8に記載の機械可読媒体。
【請求項11】
前記第2の次の移動を決定することは、
元の位置、車輪の動き、及び前記予測された横滑りに基づいて、前記自律走行車の最終の位置を計算することを含む、
ことを特徴とする請求項8に記載の機械可読媒体。
【請求項12】
前記予測された横滑りは、前記物理モデルに基づいて計算された前記自律走行車の前記第1の次の移動を補正するために使用される、
ことを特徴とする請求項8に記載の機械可読媒体。
【請求項13】
前記運転シナリオは、前記自律走行車の回転のシナリオを含む、
ことを特徴とする請求項8に記載の機械可読媒体。
【請求項14】
前記所定のパラメータは、道路の種類、気象条件、前記自律走行車の速度、前記自律走行車の目標角度、前記自律走行車の加速度又は減速度、及び前記自律走行車のステアリング角のうちの1つ以上を含む、
ことを特徴とする請求項8に記載の機械可読媒体。
【請求項15】
プロセッサと、
前記プロセッサに連結されてコマンドを記憶するメモリと、を含み、
前記コマンドが前記プロセッサによって実行されるとき、前記プロセッサに、自律走行車を動作させる処理を実行させる、データ処理システムであって、
前記処理は、
次の移動に用いられる自律走行車の運転シナリオを認識し、前記運転シナリオは1つ以上の予め決められた所定のパラメータのセットで表されることと、
前記運転シナリオに対応する物理モデルを用いて、前記自律走行車の第1の次の移動を計算することと、
当該予め決められた所定のパラメータのセットに横滑り予測モデルを適用して、前記運転シナリオが与えられる場合の前記自律走行車の横滑りを予測することであって、前記横滑りは、車両の到達する予定である第1の場所又は位置と、車両の運転条件により実際に到達した第2の場所又は位置との間の距離又は経路の差を意味することと、
前記自律走行車の前記第1の次の移動と、前記自律走行車により予測された横滑りとに基づいて、前記自律走行車の第2の次の移動を決定することと、
前記第2の次の移動に基づいて、計画及び制御データを生成することと、
前記計画及び制御データに基づいて前記自律走行車を制御し、走行させることと、を含む、
ことを特徴とするデータ処理システム。
【請求項16】
前記横滑り予測モデルは、複数の異なるタイプの車両により複数の運転シナリオにおいて測定して記録された横滑りと、対応する運転パラメータとに基づいて、機械学習によって生成される、
ことを特徴とする請求項15に記載のシステム。
【請求項17】
前記横滑りは、前記自律走行車の実際の位置と、前記自律走行車により前記物理モデルに基づいて計算された位置との間の距離を示す、
ことを特徴とする請求項15に記載のシステム。
【請求項18】
前記第2の次の移動を決定することは、
元の位置、車輪の動き、及び前記予測された横滑りに基づいて、前記自律走行車の最終の位置を計算することを含む、
ことを特徴とする請求項15に記載のシステム。
【請求項19】
前記予測された横滑りは、前記物理モデルに基づいて計算された前記自律走行車の前記第1の次の移動を補正するために使用される、
ことを特徴とする請求項15に記載のシステム。
【請求項20】
前記運転シナリオは、前記自律走行車の回転のシナリオを含む、
ことを特徴とする請求項15に記載のシステム。
【請求項21】
前記所定のパラメータは、道路の種類、気象条件、前記自律走行車の速度、前記自律走行車の目標角度、前記自律走行車の加速度又は減速度、及び前記自律走行車のステアリング角のうちの1つ以上を含む、
ことを特徴とする請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、一般的に自律走行車を走行させることに関するものである。より具体的に、本発明の実施形態は、物理モデル及び機械学習方法を利用して、車両の移動をシミュレートすることに関するものである。
【背景技術】
【0002】
車両が自律走行モード(例えば、無人運転)で走行している場合、乗員、特に運転者を運転に関連するいくつかの責任から解放することができる。自律走行モードで走行している場合、当該車両が車載センサを利用して様々な場所へ案内されることができ、それによりヒューマン・インタラクションの最も少ない場合、又は乗客なしの場合に走行することを可能にする。
【発明の概要】
【発明が解決しようとする課題】
【0003】
モーション計画及び制御は、自律走行において重要な動作である。しかし、自律走行車は、予想外の非常に複雑な移動行為がある可能性がある。異なる道路において異なる速度とステアリング角で走行する異なる車両は、異なる回転半径を有する可能性がある。このような異なる回転半径は、特に、車両が回転するとき正確な制御に影響を与える。多くの場合には、特にUターン、左折又は右折のような回転する場合には、車両は道路状況に応じて、横に滑る可能性がある。これらの横滑り(sideslip)又は滑り(skid)は、制御エラーを招来して、車両に乗る乗客に危険を与える可能性もある。
【0004】
また、現在の状態および実行されるコマンドに基づいて、次の処理サイクルでの車両状況や状態を決定したり、予測したりすることが重要である。しかし、このような決定や予測を実現するための利用可能な最新の方法がない。
【課題を解決するための手段】
【0005】
本発明の一つの態様によると、自動運転車両を運転するためのコンピュータ実施方法を提供し、この方法は、自律走行車の次の移動に用いられる運転シナリオを認識するステップであって、前記運転シナリオは1つ以上の予め決められたパラメータのセットで表されるステップと、前記運転シナリオに対応する物理モデルを用いて、前記自律走行車の第1の次の移動を計算するステップと、予め決定されたパラメータのセットに横滑り予測モデルを適用して、前記運転シナリオが与えられる場合の前記自律走行車の横滑りを予測するステップと、前記自律走行車の前記第1の次の移動と、前記自律走行車により予測された横滑りとに基づいて、前記自律走行車の第2の次の移動を決定するステップと、前記第2の次の移動に基づいて、計画及び制御データを生成するステップと、前記計画及び制御データに基づいて前記自律走行車を制御し、走行させるステップと、を含む。
【0006】
本発明の別の態様によると、コマンドが記憶されており、前記コマンドがプロセッサにより実行されるとき、前記プロセッサに、自律走行車を動作させる処理を実行させる、不発揮性の機械可読媒体を提供し、前記処理は、次の移動に用いられる自律走行車の運転シナリオを認識し、前記運転シナリオは1つ以上の予め決められたパラメータのセットで表されることと、前記運転シナリオに対応する物理モデルを用いて、前記自律走行車の第1の次の移動を計算することと、予め決定されたパラメータのセットに横滑り予測モデルを適用して、前記運転シナリオが与えられる場合の前記自律走行車の横滑りを予測することと、前記自律走行車の前記第1の次の移動と、前記自律走行車により予測された横滑りとに基づいて、前記自律走行車の第2の次の移動を決定することと、前記第2の次の移動に基づいて、計画及び制御データを生成することと、前記計画及び制御データに基づいて前記自律走行車を制御し、走行させることと、を含む。
【0007】
本発明の別の態様によると、プロセッサと、前記プロセッサに連結されてコマンドを記憶するメモリと、を含み、前記メモリがプロセッサにより実行されるとき、前記プロセッサに、自律走行車を動作させる処理を実行させる、データ処理システムを提供し、前記処理は、次の移動に用いられる自律走行車の運転シナリオを認識し、前記運転シナリオは1つ以上の予め決められたパラメータのセットで表されることと、前記運転シナリオに対応する物理モデルを用いて、前記自律走行車の第1の次の移動を計算することと、予め決定されたパラメータのセットに横滑り予測モデルを適用して、前記運転シナリオが与えられる場合の前記自律走行車の横滑りを予測することと、前記自律走行車の前記第1の次の移動と、前記自律走行車により予測された横滑りとに基づいて、前記自律走行車の第2の次の移動を決定することと、前記第2の次の移動に基づいて、計画及び制御データを生成することと、前記計画及び制御データに基づいて前記自律走行車を制御し、走行させることと、を含む。
【0008】
本発明の実施形態は図面の各図において限定的ではなく例示的な形態で示され、図面における同じ図面符号が類似する素子を示す。
【図面の簡単な説明】
【0009】
図1図1は、本発明の一実施形態に係るネットワークシステムを示すブロック図である。
図2図2は、本発明の一実施形態に係る自律走行車の一例を示すブロック図である。
図3図3は、本発明の一実施形態に係る自律走行車とともに使用されるデータ処理システムの一例を示すブロック図である。
図4A図4Aは、横滑り補償のある車両の運転パターン及び横滑り補償のない車両の運転パターンを示す概略図である。
図4B図4Bは、横滑り補償のある車両の運転パターン及び横滑り補償のない車両の運転パターンを示す概略図である。
図5図5は、本発明の一実施形態に係る、横滑り予測モデルを作成するためのメカニズムを示すブロック図である。
図6図6は、本発明の一実施形態に係る自律走行車の横滑りを補償するための手順を示す処理フローである。
図7図7は、本発明の一実施形態に係る自律走行車を動作させる手順を示すフローチャートである。
図8図8は、本発明の一実施形態に係る、横滑り予測モデルを作成するための手順を示すフローチャートである。
図9図9は、本発明の一実施形態に係る運転シナリオ-横滑りのマッピングデータ構造の一例を示すブロック図である。
図10A図10Aは、横滑り補償のある車両の運転パターン及び横滑り補償のない車両の運転パターンを示す概略図である。
図10B図10Bは、横滑り補償のある車両の運転パターン及び横滑り補償のない車両の運転パターンを示す概略図である。
図11図11は、本発明の一実施形態に係る、運転シナリオ-横滑りのマッピングデータ構造を生成する手順を示すフローチャートである。
図12図12は、本発明の他の実施形態に係る自律走行車を動作させる手順を示すフローチャートである。
図13図13は、一実施形態に係るデータ処理システムを示すブロック図である。
【発明を実施するための形態】
【0010】
以下、説明の詳細を参照しながら、本出願の様々な実施形態及び方法を説明し、図面は、前記様々な実施形態を示す。以下の説明及び図面は、本出願を説明するためのものであり、本出願を限定するものではない。本出願の様々な実施形態を完全に把握するために、多数の特定の詳細を説明する。なお、いくつかの例では、本出願の実施形態に対する簡単な説明を提供するために、周知又は従来技術の詳細について説明していない。
【0011】
本明細書では「一実施形態」又は「実施形態」とは、当該実施形態について組み合わせて説明された特定特徴、構造又は特性が、本出願の少なくとも一つの実施形態に含まれてもよい。語句「一実施形態では」は、本明細書全体において同一の実施形態を指すとは限らない。
【0012】
本発明の一態様よると、次の移動サイクルにおける次のルート又は経路セグメントの次の移動(例えば、回転)を決定するとき、計画されたルート情報に基づいて、物理モデル(例えば、所定の公式又はルールセット)によって、車両の次の状況や状態が計算されたり、決定されたりする。計画及び制御データは、当該物理モデルに基づいて生成され、計画及び制御データは、車両が次の移動サイクルでどのように動くかを制御するための十分なデータやコマンドを含む。また、横滑り予測モデルは、計画及び制御データに関連する少なくとも運転パラメータ(driving parameter)のセット及びその時点の運転条件(例えば、道路状況、天候)に適用される。計画及び制御データによって記述された運転シナリオでの横滑り又は滑りが、横滑り予測モデルにより予測される。それから、そのような横滑りを補償するために、予測された横滑りに基づいて計画及び制御データを修正することができる。次に、車両は変更又は補償された計画及び制御データに基づいて制御され、運転される。
【0013】
一実施形態では、自律走行車の次の移動(next movement)の運転シナリオは認識され、運転シナリオは1つ以上の所定のパラメータのセットで表れる。運転シナリオに対応する物理モデルを利用して、自律走行車の第1の次の移動が計算される。横滑り予測モデルは、当該所定のパラメータのセットに適用され、運転シナリオでの自律走行車の横滑りが予測される。自律走行車の第2の次の移動は、自律走行車の第1の次の移動と予測された横滑りとに基づいて決定される。予測された横滑りは、横滑りを補償するために第1の次の移動の修正に使用される。第2の次の移動の計画及び制御データは生成され、自律走行車は、当該計画及び制御データに基づいて制御され、運転される。
【0014】
本発明の他の実施形態によると、様々な運転環境や条件において、様々な車両の走行統計情報が車両によって記録されキャプチャされる。また、異なる運転環境や運転シナリオにおける車両の横滑りが測定され、決定される。それから、走行統計情報はデータ分析システムやサーバなどの中央装置によって収集される。走行統計情報及び測定された横滑りを分析して、運転シナリオのリストを作成する。それぞれの運転シナリオは、同一又は類似の運転シナリオで発生する可能性がある特定の横滑りや滑りと関連付けられる。運転シナリオ-横滑り(シナリオ/横滑り)マッピングテーブル又はデータベースが生成される。シナリオ/横滑りマッピングテーブルは、同一又は類似のタイプの様々な車両の走行統計情報及び測定された横滑りに基づいて決定された横滑りに、各運転シナリオをマッピングする。
【0015】
特定の車両の次の移動をオンラインで決定するとき、その時点で、次の移動のための運転シナリオが決定される。決定された運転シナリオに基づいて、シナリオ/横滑りマッピングテーブルでルックアップ動作が実行され、その時点での運転シナリオに対応する所定の横滑りを取得する。所定の横滑りが次の移動のための計画及び制御データを生成する際に考慮される。車両は、同一又は類似の運転環境や条件で予測された横滑りに対して補償された計画及び制御データに基づいて制御され、運転される。
【0016】
一実施形態では、運転シナリオのセットが異なるタイプの車両に対して決定される。各運転シナリオは、特定タイプの自律走行車の特定の移動に対応する。各タイプの自律走行車の運転シナリオごとに走行統計情報のセットが取得される。走行統計情報は、車両を制御して走行させるために使用される1つ以上の運転パラメータ(例えば、速度、回転角度)、その時点の運転条件(例えば、道路状況、天候)、及び運転シナリオにおいて運転パラメータと運転条件による横滑りが含まれる。運転シナリオ/横滑りマッピングテーブル又はデータベースが構築される。シナリオ/横滑りマッピングテーブルは、数多くのマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオを、走行統計情報に基づいて計算された横滑りにマッピングする。それから、当該シナリオ/横滑りマッピングテーブルは、類似の運転環境での横滑りを予測するのに利用されて、走行計画及び制御が補償される。
【0017】
図1は本発明に係る一実施形態に係る自律走行車のネットワーク配置を示すブロック図である。図1を参照して、ネットワーク配置100はネットワーク102によって1つ以上のサーバ103〜104に通信可能に接続することができる自律走行車101を含む。1つの自律走行車が示されているが、ネットワーク102によって複数の自律走行車は互いに接続され、及び/又はサーバ103〜104に接続されることができる。ネットワーク102は、任意のタイプのネットワーク、例えば有線又は無線のローカルエリアネットワーク(LAN)、例えばインターネットのような広域ネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク又はその組み合わせであってもよい。サーバ103〜104は任意のタイプのサーバ又はサーバクラスタ、例えばWebサーバ又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ又はその組み合わせであってもよい。サーバ103〜104は、データ分析サーバ、内容サーバ、交通情報サーバ、地図(マップ)及び興味のあるポイント(POI)サーバ又は位置サーバ等であってもよい。
【0018】
自律走行車とは、運転者からの入力が非常に少ない又はない場合に案内して環境を通過する自律走行モードに設置される車両である。このような自律走行車は、車両が走行している環境にかかる情報を検出するように配置される1つ又は複数のセンサを含むセンサシステムを備える。車両及びその関連しているコントローラが、検出された情報で案内して環境を通過する。自律走行車101が手動モード、完全自律走行モード又は部分自律走行モードで運転されることができる。
【0019】
一実施形態では、自律走行車101は、データ処理システム110と、車両制御システム111と、無線通信システム112と、ユーザインターフェースシステム113と、インフォテイメントシステム114と、センサシステム115とを含むが、これらに制限されない。自律走行車101は、通常の車両に含まれるある一般的な構成要素(部材)、例えばエンジン、車輪、ハンドル、変速器等をさらに含んでもよく、前記構成要素は、車両制御システム111及び/又はデータ処理システム110により多種の通信信号及び/又はコマンド(例えば加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンド等)を使用して制御されることができる。
【0020】
構成要素110〜115は、インターコネクト、バス、ネットワーク又はそれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素110〜115は、コントローラローカルエリアネットワーク(CAN)バスを介して互いに通信可能に接続することができる。CANバスは、マイクロコントローラ及び装置がホストコンピューターのない応用において互いに通信することを許可するような車両バス標準として設計される。それは、最初に自動車内における多重(multiplex)電線のために設計されたメッセージに基づくプロトコルであるが、他のたくさんの環境(状況)にも用いられる。
【0021】
ここで、図2を参照して、一実施形態では、センサシステム115は、1つ以上のカメラ211と、全地球測位システム(GPS)ユニット212と、慣性計測ユニット(IMU)213と、レーダーユニット214と、光検出及び測距(LIDAR)ユニット215とを含むが、これらに限定されない。GPSユニット212は、送受信機を含んでもよく、前記送受信機は、自律走行車の位置に関する情報を提供するように処理されることができる。IMUユニット213は、慣性加速度に基づいて自律走行車の位置及び方向の変化を感知することができる。レーダーユニット214は、無線信号を利用して自律走行車のローカル環境内の対象を感知するシステムを示すことができる。いくつかの実施形態において、対象を感知する以外、レーダーユニット214は、さらに対象の速度及び/又は走行方向を感知することができる。LIDARユニット215はレーザを使用して自律走行車の位置する環境における対象を感知することができる。その他のシステム構成要素以外、LIDARユニット215は1つ以上のレーザ光源、レーザースキャナ及び1つ以上の検出器をさらに含んでもよい。カメラ211は、自律走行車の周辺環境の画像をキャプチャするための1つ以上の装置を含んでもよい。カメラ211は、スチルカメラ及び/又はビデオカメラであってもよい。カメラは、例えば回転及び/又は傾斜のプラットフォームに取り付けられる、機械的に移動可能なものであってもよい。
【0022】
センサシステム115は、その他のセンサ、例えばソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ、及びオーディオセンサ(例えばマイクロフォン)をさらに含んでもよい。オーディオセンサは、自律走行車周辺の環境から音をキャプチャするように配置されてもよい。ステアリングセンサは、ハンドル、車両の車輪又はその組み合わせのステアリング角を感知するように配置されることができる。スロットルセンサ及びブレーキセンサは、それぞれ車両のスロットル位置及びブレーキ位置を感知する。いくつかの場合、スロットルセンサ及びブレーキセンサは、集積型スロットル/ブレーキセンサに一体化されてもよい。
【0023】
一実施形態では、車両制御システム111は、ステアリングユニット201、スロットルユニット202(加速ユニットでも呼ばれる)、ブレーキユニット203、コンピュータビジョンシステム204、ナビゲーションユニット205(ナビゲーションとルートシステム、又はナビゲーション/ルートシステムとも呼ばれる)及び衝突回避ユニット206(障害物回避システムでも呼ばれる)を含むが、これらに限定されない。ステアリングユニット201は、車両の方向又は走行方向を調整することに用いられる。スロットルユニット202は、モーター又はエンジンの速度を制御して、さらに車両の速度及び加速度を制御することに用いられる。ブレーキユニット203は、摩擦を提供することによって車両の車輪又はタイヤをスローダウンして車両を減速させることに用いられる。
【0024】
コンピュータビジョンシステム204は、自律走行車の環境内の対象及び/又は特徴を認識するために1つ以上のカメラ211によってキャプチャされた画像を処理し、分析するものである。対象は、交通信号、道路境界、他の車両、歩行者、及び/又は障害物などを含むことができる。コンピュータビジョンシステム204は、対象認識アルゴリズム、ビデオ追跡及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態では、コンピュータビジョンシステム204は、環境をマッピングして、対象を追跡し、対象の速度を推定することなどができる。
【0025】
ナビゲーションシステム205は、自律走行車の走行経路を決定するものである。例えば、ナビゲーションシステムは、自律走行車を最終的な目的地に至る車道ベースの経路に沿って一般的に前進させるとともに、感知された障害物をだいたい避けるような経路に沿って移動する一連の速度と進行方向(directional heading)を決定することができる。目的地は、ユーザインターフェースを介してユーザ入力に応じて設定されてもよい。ナビゲーションシステム205は、自律走行車が走行している間、走行経路を動的に更新することができる。ナビゲーションシステム205は、自律走行車に用いられる走行経路を決定するためにGPSシステム、及び1つ以上のマップからのデータを統合してもよい。
【0026】
衝突回避システム206は、自律走行車の環境での潜在的な障害物を認識、評価、回避又は他の方法で乗り越えるものである。例えば、衝突回避システム206は、緊急回避(swerve)処理、回転処理、制動処理などを行うために、制御システムの1つ以上のサブシステムを処理することで、自律走行車のナビゲーションにおける変化を実現することができる。衝突回避システム206は、周辺の交通パターン、道路状況等に基づいて、実現可能な障害物回避処理を自動的に決定することができる。衝突回避システム206は、自律走行車が緊急回避して進入しようとする隣接領域における車両、建築の障害物などが他のセンサシステムにより検出されたとき、緊急回避処理が行われないように構成されることができる。衝突回避システム206が、使用可能でありながら自律走行車の乗員の安全性を最大化する処理を自動的に選択することができる。衝突回避システム206は、自律運行車両の乗客室に対して最低限の加速を引き起こすと予想される回避処理を選択することができる。注意すべきなことは、図2に示される構成要素はハードウェア、ソフトウェア又はその組み合わせで実現されてもよい。
【0027】
図1を再び参照して、無線通信システム112は、自律走行車101と、例えば装置、センサ、その他の車両等の外部システムとの間に通信することを可能にする。例えば、無線通信システム112は、1つ以上の装置に直接に又は通信ネットワークを介して無線通信し、例えばネットワーク102によってサーバ103〜104に通信することができる。無線通信システム112は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク(WLAN)(例えばWiFi)を使用して他の構成要素やシステムに通信することができる。無線通信システム112は、例えば赤外線リンク、ブルートゥース(登録商標)等を使用して装置(例えば、乗客の移動装置、表示装置、車両101内のスピーカー)に直接に通信することができる。ユーザインターフェースシステム113は、車両101内で実行される周辺装置の一部であってもよく、例えばキーボード、タッチスクリーンディスプレイ装置、マイクロフォン、及びスピーカー等を含む。
【0028】
自律走行車101の一部又は全ての機能は、特に自律走行モードで処理される場合、データ処理システム110により制御されたり管理されたりすることができる。データ処理システム110は、必要なハードウェア(例えば、プロセッサ、メモリ、記憶装置)、及びソフトウェア(例えば、オペレーティングシステム、計画及びルーティングプログラム)を含み、センサシステム115、車両制御システム111、無線通信システム112、及び/又はユーザインターフェースシステム113から情報を受信し、受信された情報を処理し、出発地から目的地までのルートや経路を計画し、そして計画及び制御情報に基づいて車両101を走行させる。あるいは、データ処理システム110と車両制御システム111とは一体化されてもよい。
【0029】
例えば、乗客であるユーザは、例えばユーザインターフェースによって旅程の出発位置及び目的位置を指定することができる。データ処理システム110は、自律走行車101の他の構成要素と通信して旅程関連データを取得する。例えば、データ処理システム110は、位置サーバ及び地図及びPOI(MPOI)サーバから位置及びルート情報を取得することができ、前記MPOIサーバはサーバ103〜104の一部であってもよい。位置サーバは、位置サービスを提供し、かつMPOIサーバはマップサービス及びある位置のPOIを提供する。あるいは、このような位置及びMPOI情報は、感知及び計画システム110の不揮発性記憶装置にローカルにキャッシュされることができる。
【0030】
自律走行車101がルートに沿って走行する期間に、データ処理システム110は、さらに交通情報システムやサーバ(TIS)からリアルタイム交通情報を取得できる。注意すべきなのは、サーバ103〜104は、第三者エンティティにより動作されることができる。あるいは、サーバ103〜104の機能は、データ処理システム110と一体化されてもよい。リアルタイム交通情報、MPOI情報、位置情報、及びセンサシステム115が検出又は感知したリアルタイムなローカル環境データ(例えば、障害物、対象、付近車両)に基づいて、データ処理システム110は、指定された目的地に安全で効果的に到達するように、最適なルートを計画し、かつ計画したルートにより例えば車両制御システム111を介して車両101を運転することができる。
【0031】
一実施形態によると、自律走行車101は、車両101の乗客に情報とエンターテインメントを提供するインフォテイメントシステム114をさらに含むことができる。情報及びエンターテイメントコンテンツは、ローカル及び/又はリモートに(例えば、サーバ103乃至104によって提供される)記憶されたコンテンツ情報に基づいて、受信、コンパイル、及びレンダリングされる。例えば、情報はネットワーク102を介して任意のサーバ103乃至104からリアルタイムでストリーミングされて車両101のディスプレイ装置上に表示される。情報は、例えば、1つ以上のカメラでリアルタイムにキャプチャされたローカル情報によって拡張される(augmented)ことができ、それから、拡張されたコンテンツは、仮想現実の方法で表示されてもよい。
【0032】
一実施形態では、位置及びルート情報、MPOI情報、及び/又はリアルタイムの交通情報に基づいて、インフォテインメントシステム114及び/又はデータ処理システム110は、現在の交通環境(例えば、MPOI)に適切なあるタイプのコンテンツを決定する。システムは、例えばリアルタイムの走行情報に基づいて、リストコンテンツアイテム(例えば、スポンサーされたコンテンツや広告)をコンテンツアイテムの候補として認識するために、コンテンツのインデックス(図示せず)においてルックアップ処理を実行する。選択されたコンテンツアイテムは、その後、自律走行車のディスプレイ装置上に描画して表示される。なお、一部の実施形態によれば、インフォテインメントシステム114は、データ処理システム110と一体化されてもよい。
【0033】
一実施形態では、次の移動サイクルにおける次のルート又は経路セグメントの次の移動(例えば、回転)を決定するとき、データ処理システム110は、計画されたルート情報に基づいて、物理モデル(例えば、所定の公式又はルールセット)によって、車両の次の状況や状態を計算したり、決定したりする。物理モデルは、車両の周囲の環境に対する感知をもとに自律走行車の移動を計画し制御するように構成されたルール又はアルゴリズムのセットを意味する。計画及び制御データは、当該物理モデルに基づいて生成され、計画及び制御データは、車両が次の移動サイクルでどのように動くかを制御するための十分なデータやコマンドを含む。また、横滑り予測モデルは、計画及び制御データに関連する少なくとも運転パラメータのセット及びその時点の運転条件(例えば、道路状況、天候)に適用される。計画及び制御データによって記述された運転シナリオでの横滑り又は滑りが、横滑り予測モデルにより予測される。それから、そのような横滑りを補償するために、予測された横滑りに基づいて計画及び制御データを修正することができる。次に、車両は変更又は補償された計画及び制御データに基づいて制御され、運転される。
【0034】
横滑り予測モデルは、データ処理システム110に保存されることができ、データ分析システム(この例ではサーバ103)によって横滑り予測モデル165の一部として提供されてもよい。一実施形態では、データ分析システム103は、データコレクタ又は収集モジュール151、分析モジュール152及び機械学習エンジン160を含むが、これらに限定されるものではない。データコレクタ151は、様々な運転環境や運転条件で通って運転された様々な走行車両から走行統計情報155を収集する。
【0035】
車両の走行統計情報は、車両の1つ以上のセンサにより記録されキャプチャされる。走行統計情報は、異なる運転シナリオを示す異なる時点で車両に適用される、ある運転パラメータ又はコマンドを含むことができる。たとえば、特定の運転環境で走行するとき、速度、回転角度、加速度(例えば、アクセルペダルに与えられる圧力のようなスロットルパラメータ)、減速度(例えば、ブレーキペダルに与えられる圧力のようなブレーキパラメータ)のようないくつかの運転パラメータが記録されてもよい。また、様々な環境での車両の横滑りは、対応する運転パラメータのセットと関連付けされるように測定され、記録される。横滑りは、車両の到達する予定である第1の場所又は位置(図4Aに示される)と、車両の運転条件により実際に到達した第2の場所又は位置(図4Bに示される)との間の距離又は経路の差を意味する。運転条件は、道路状況、天候、車両の具体的な重量又は寸法、速度、回転角度、加速度、又は減速度のうちの1つ以上に基づいて決定されることができる。車両の予想位置は、計画どおりに運転パラメータが定められて、所定の公式(物理モデルでも呼ばれる)によって決定されることができる。つまり、車両の予想位置は、道路状況や気象条件を考慮せずに、車両と関連付けられている物理モデルに基づいて決定される。
【0036】
一実施形態によると、様々な運転シナリオにおいて、様々な車両の横滑り及びキャプチャされた運転パラメータが、機械学習技術を利用した機械学習エンジン160によって分析されて、1つ以上の横滑り予測モデル165を生成することができる。機械学習は、データから学習することができ、データを予測できるアルゴリズムの研究および構造を探索する。これらのアルゴリズムは、データ駆動型の予測又は決定を行うために、静的プログラムコマンド(static program instruction)を厳密に従うより、例示の入力からモデルが作成されることで処理される。
【0037】
図5を参照すると、車両の横滑りを予測するとき、機械学習エンジン160の入力は、大量の走行統計情報とそれに対応する測定された横滑りのパラメータ501である。機械学習エンジン160は、走行統計情報155に基づいて、横滑りが発生する運転パターンを「学習」して、機械学習の結果として、予測モデル165の一部でもよい横滑り予測モデル502を生成する。各タイプの車両は、異なる横滑りをもたらす異なる構成と物理寸法を持つ可能性があるため、各予測モデル165は、特定タイプ又はカテゴリの車両と関連付けられてもよい。それから、横滑り予測モデル165は、オンライン横滑り予測のために、車両にアップロードされてもよい。
【0038】
他の実施形態によれば、図1を再び参照すると、分析モジュール152は、一連の運転シナリオを認識するために、走行統計情報155の分析を実行する。運転シナリオは、特定の速度(一定の速度、加速度、又は減速度を維持する)で特定の距離を走行すること、特定の速度により特定の回転角度で回転すること、特定の速度および/又は角度で車線を変更することなどの特定の運転パターンを指す。各運転シナリオについては、分析モジュール152は、走行統計情報155から対応する運転シナリオの間に発生した横滑りを決定する。特定の運転シナリオの横滑りは、同一又は類似する運転シナリオにおいて、同一又は類似のタイプの数多くの車両が発生した大量の横滑りに基づいて決定されることができる。たとえば、類似する運転環境において測定された複数の類似車両の横滑りの平均をとることにより、横滑りが決定されてもよい。
【0039】
分析に基づいて、シナリオ/横滑りマッピングテーブル又はデータベース170が生成される。各シナリオ/横滑りマッピングテーブルは、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオを横滑りにマッピングする。横滑りは回転半径で表されることができる。車両の各タイプ又はカテゴリに対して、1つのシナリオ/横滑りマッピングテーブルを提供することができる。シナリオ/横滑りマッピングテーブル170は、対応する車両にロードされてリアルタイムの運転期間に使用される。
【0040】
図3は、本発明の一実施形態に係る自律走行車とともに使用されるデータ処理システムの一例を示すブロック図である。システム300は、図1の自律走行車101の一部として実現されてもよく、データ処理システム110、制御システム111およびセンサシステム115を含むが、これらに限定されない。図3を参照すると、データ処理システム110は、ビジュアルシステムモジュール(VSM、visual system module)301、位置決めジュール(302、localization module)、感知モジュール303、計画モジュール304、制御モジュール305および横滑り決定モジュール306を含む。
【0041】
これらのモジュールの一部又は全部は、ソフトウェア、ハードウェア、又はこれらを組み合わせて実現されてもよい。例えば、これらのモジュールは、不揮発性の記憶装置352に設置され、メモリ351にロードされ、1つ以上のプロセッサ(図示せず)によって実行される。これらのモジュールの一部又は全部は、図2の車両制御システム111の一部又はすべてのモジュールと通信可能に連結又は一体化されてもよい。例えば、VSMモジュール301は、コンピュータビジョンシステム204と、少なくとも部分的に一体化されてもよい。感知モジュール303、計画モジュール304および/又は制御モジュール305は、ナビゲーションユニット205と衝突回避ユニット206と、少なくとも部分的に一体化されてもよい。
【0042】
一実施形態によると、センサシステム115によってキャプチャされたセンサデータ(例えば、画像)に応答して、VSMモジュール301は、センサデータの分析を実行して、自律走行車の周辺環境を記述するメタデータを導出する。たとえば、オンボードカメラでキャプチャされた画像が与えられると、VSMモジュール301は、画像によって表現されたコンテンツを決定するために、画像の画像認識を行うことができる。画像によって表現されたコンテンツは、人、ビルのような背景、標識、交通信号灯の信号、走行中の車両又は物体、車路構成などを含んでもよい。
【0043】
位置決めモジュール302(地図及びルートモジュールとも呼ばれる)は、ユーザの行程やルートに関連する任意のデータを管理する。ユーザは、例えば、ユーザインターフェースを介してログインして行程の出発位置と目的地を指定することができる。位置決めモジュール302は、地図及びルート情報311のような自律走行車300の他の構成要素と通信して、行程関連のデータを取得する。たとえば、位置決めモジュール302は、位置サーバ及び地図及びPOI(MPOI)サーバから、位置及びルート情報を取得することができる。位置サーバは、位置情報サービスを提供し、MPOIサーバは地図サービスと、ある場所のPOIを提供し、これは地図及びルート情報311の一部としてキャッシュされる。自律走行車300がルートに沿って移動する間に、位置決めモジュール302は、また、交通情報システム、又はサーバからリアルタイムの交通情報を取得することができる。
【0044】
VSM301によって提供された分析と、位置決めモジュール302によって取得されたローカリゼーション情報とに基づいて、感知モジュール303は周囲の環境の感知を決定する。感知情報は、普通の運転者が運転している車両の周辺から感知したもの(状況)を示すことができる。感知情報は、例えば対象形式で現される車線配置(例えば、直線またはカーブ)、交通信号灯の信号、他の車両の相対位置、歩行者、建築物、横断歩道またはその他の交通関連標識(例えば、停止標識、譲り標識)などを含んでもよい。それぞれのアイテムは、対象とみなされる。
【0045】
感知情報に基づいて、計画モジュール304は、自律走行車のための経路又はルート及び運転パラメータ(例えば、距離、速度)を計画するものである。計画及び制御データは、計画モジュール304によって生成され、車両300が、次のルート又はルートセグメント(また、次の移動サイクルとも呼ばれる)でどのように移動するかを記述する情報を含む。たとえば、計画及び制御データは、車両が時速30マイル(mph)の速度で100m移動して、25mphの速度で右側車線に変更するよう指示することができる。
【0046】
計画及び制御データに基づいて、制御モジュール305は、計画及び制御データによって定義されたルート又は経路に基づいて、車両制御システム111に適切なコマンド又は信号を送信することにより、自律走行車を制御する。計画及び制御データには、経路、又はルート上の異なる時点で、適切な車両設定又は運転パラメータ(例えば、スロットル、ブレーキ、および回転コマンド)を使用して、ルート又は経路の第1地点から第2地点までの車両を走行させることができる十分な情報が含まれている。
【0047】
一実施形態によると、車両の次の移動を計画するとき、計画モジュール304は、横滑り決定モジュール306を呼び出して、次の移動の運転シナリオの横滑りを決定したり予測したりする。計画モジュール304は、感知モジュール303によって提供される感知情報に基づいて、物理モデル、又は、あらかじめ決定された式312を使用して、次の移動を決定することができる。次の移動に応答して、横滑り決定モジュール306は、図6に示すように、横滑り予測モデル313を物理モデル312によって生成された運転パラメータのセットに適用することにより、次の移動に関連した横滑りを決定する。
【0048】
図6を参照すると、次の移動に用いられる1セットの運転パラメータ601が、物理モデル312と横滑り予測モデル313の両方に送り込まれる。運転パラメータは、道路の種類や状態、天候(例えば、温度、湿度)、車両速度、車両の目標角度、車両加速度/減速度、ステアリング角、転向目標角度、ステアリング速度及びステアリング方向のうちの1つ以上を含んでもよい。運転パラメータ601により、物理モデル312は、次の移動602(例えば、横滑り補償なしの予定移動)を決定することができる。例えば、物理モデル312は、前輪の角度、前輪と後輪との間の距離により、現在移動経路の曲率を計算することができる。車両の速度と経路の長さによって、車両の位置移動が決定されることができる。
【0049】
また、横滑り予測モデル313は、運転パラメータ601によって表現された運転シナリオにおいて横滑りを推測又は予測する1セットの運転パラメータ601に適用される。計算された移動602に基づいて、計画モジュール304は、計算された移動602を変更して、補償された移動604を生成することにより、予測された横滑り603に基づいて、横滑りを補償することができる。一実施形態では、車両の変更又は補償された位置は、物理モデル、車輪の動きおよび予測された横滑りに基づいて、本来の計算された位置に基づいて(例えば、追加することにより、)決定されることができる。次の移動のための計画及び制御データは、補償された移動604に基づいて生成され、車両は当該計画及び制御データに基づいて制御され、運転される。
【0050】
図7は、本発明の一実施形態に係る自律走行車を動作させる手順を示すフローチャートである。手順700は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されることができる。例えば、手順700は、データ処理システム110によって実行されてもよい。図7を参照すると、ブロック701において、オンライン走行中に、処理ロジックは、物理モデル(又は予め決定されたアルゴリズム又はルールのセット)を利用して、運転パラメータのセットに基づいて、自律走行車の次の移動(例えば、次の状態又は状況)を計算する。ブロック702において、処理ロジックは、横滑り予測モデルを、特定の運転シナリオを示す運転パラメータのセットに適用して、横滑りを予測する。ブロック703において、処理ロジックは、運転パラメータを変更することにより、予測された横滑りに基づいて、車両の次の移動を補償する。ブロック704において、処理ロジックは、補償された次の移動に基づいて、計画及び制御データを生成する。ブロック705において、自律走行車は、計画及び制御データに基づいて制御され、運転される。
【0051】
図8は、本発明の一実施形態に係る機械学習を利用して、横滑り予測モデルを生成する手順を示すフローチャートである。手順800は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されることができる。手順800は、図1のサーバ103のようなデータ分析システムによって実行されてもよい。図8を参照すると、ブロック801において、処理ロジックは、様々な運転シナリオにおける様々な車両の走行統計情報を収集し、当該走行統計情報は、適用された運転パラメータ又はコマンドと、前述した状況で車両によって測定された横滑りとを含む。ブロック802において、各タイプ又はカテゴリの車両については、処理ロジックは、機械学習技術を利用して、対応する走行統計情報に基づいて、横滑り予測モデルを訓練させる。ブロック803において、横滑り予測モデルは、次のリアルタイムのオンボード横滑り補償のために自律走行車に提供される(例えば、送信、アップロードされる)。
【0052】
図3を再度参照すれば、一実施形態によると、横滑りを決定する要求に応答して、横滑り決定モジュール306は、その時点での運転シナリオを決定する。当該運転シナリオは、計画モジュール304によって提供される、計画された次の移動の運転パラメータと、その時点での運転条件(例えば、道路や気象条件)とに基づいて決定されることができる。例えば、運転シナリオは、乾燥した道路において200度のステアリング角及び30mphの速度でUターンすること、ぬれている道路において150度のステアリング角及び20mphの速度で左折をすること、乾燥した道路において100度のステアリング角及び25mphの速度で右折をすることのうちの一つ以上であってもよい。
【0053】
決定された運転シナリオに基づいて、横滑り決定モジュール306は、シナリオ/横滑りマッピングテーブル314においてルックアップを実行して、その時点の運転シナリオに適合するマッピングエントリを位置決めする。一実施形態によれば、シナリオ/横滑りマッピングテーブル314の一例が図9に示されている。横滑りは、マッピングエントリから取得される。その後、横滑りを補償するために、計画モジュール304は、当該横滑りを利用して計算された運転パラメータを修正する。一実施形態では、ステアリング角は、ルール又は物理モデルのゼットを利用して、次の移動と関連付けられているルート又はルートセグメントに必要な速度に基づいて決定される。次に、ステアリング角は、シナリオ/横滑りマッピングテーブルから取得された、予測された横滑りに基づいて修正される。修正されたステアリング角は自律走行車を計画し制御するために使用される。
【0054】
例えば、図10Aに示すように、現在の目標が右折をすることである場合には、例えば、物理モデルを利用して、ステアリング角が15度として計算される。車両は高速で走行する場合、横滑りが発生する可能性がある。ステアリング角は、システムによって車両の滑りの発生が検出されたときにいつでも変更されることができるが、横滑りの原因で依然として大きなルートエラーが存在する。前述したような横滑りの補正を行う場合、車両の次の移動を計画するとき、当該状況下で滑りを考慮することが比較的によく、例えば図10Bに示すように、ステアリング角を20度に調整することにより、当該状況下で、車両が計画された経路に近づく。
【0055】
図11は、本発明の一実施形態に係る、横滑りマッピングデータ構造に運転シナリオを生成する手順を示すフローチャートである。手順1100は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されることができる。手順1100は、図1のサーバ103のようなデータ分析システムによって実行されてもよい。図11を参照すると、ブロック1101において、処理ロジックは、様々な運転環境で様々な車両の走行統計情報(例えば、運転パラメータ、状態、設定および運転条件)を受信する。ブロック1102において、処理ロジックは、走行統計情報に基づいて、回転(例えば、Uターン、左折又は右折)を行う複数の運転シナリオを決定する。決定された運転シナリオごとに、ブロック1103において、処理ロジックは、走行統計情報から運転パラメータ又は設定(例えば、速度、ステアリング角、道路状況、天候)を認識する。ブロック1104において、処理ロジックは、走行統計情報から横滑りを測定し決定する。ブロック1105において、シナリオ/横滑りマッピングテーブルが生成される。シナリオ/横滑りマッピングテーブルには、複数のマッピングエントリが含まれており、各マッピングエントリは、運転シナリオを横滑り又は回転半径にマッピングする。シナリオ/横滑りマッピングテーブルは、それからオンボードの走行期間に横滑りを補償するために用いられることができる。
【0056】
図12は、本発明の一実施形態に係る自律走行車を動作させる手順を示すフローチャートである。手順1200は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されることができる。例えば、手順1200は、データ処理システム110によって実行されてもよい。図12を参照すると、ブロック1201において、処理ロジックは、自律走行車の次の移動が計画されたルートデータに基づいて行われた回転(例えば、Uターン、左折又は右折)であると検出する。ブロック1202において、処理ロジックは、計画されたルートデータに基づいて、次の移動の運転シナリオ(例えば、速度、加速度/減速度、ステアリング角、道路状況と気象条件)を決定する。ブロック1203において、処理ロジックは、決定された運転シナリオとマッチングするマッピングエントリを位置決めするために、決定された運転シナリオに基づいて、シナリオ/横滑りマッピングテーブルでルックアップ動作を実行する。運転シナリオに対応する横滑りは、マッピングエントリから取得される。ブロック1204において、処理ロジックは、横滑りを補償するために、少なくとも一部の計画された運転パラメータ(例えば、ステアリング角、速度、又はコマンドの発行タイミング)を修正する。ブロック1205において、処理ロジックは、修正された運転パラメータに基づいて計画及び制御データを生成する。ブロック1206において、自律走行車は、計画及び制御データに基づいて制御されて運転される。
【0057】
注意すべき点は、前記の示されたとともに記述された一部又は全部の構成要素は、ソフトウェア、ハードウェア又はその組み合わせで実現されることができる。例えば、このような構成要素は、永続記憶装置にインストールされるとともに記憶されたソフトウェアとして実現されてもよく、前記ソフトウェアは、本出願にわたって記載の手順又は動作を実施するように、プロセッサ(図示せず)でメモリにロードして実行されてもよい。あるいは、このような構成要素は、集積回路(例えば特定用途向けIC又はASIC)、デジタル信号プロセッサ(DSP)、又はフィールドプログラマブルゲートアレイ(FPGA、Field Programmable Gate Array)にプログラミングされ又は嵌め込みされた専用ハードウェアにおける実行可能なコードとして実現されてもよく、前記実行可能なコードは、対応するドライバープログラム及び/又はオペレーティングシステムによってアプリケーションからアクセスされてもよい。なお、このような構成要素は、プロセッサ又はプロセッサコアにおける特定のハードウェアロジックとして実現されてもよく、ソフトウェア構成要素が1つ以上の特定コマンドによってアクセス可能なコマンドセットの一部とする。
【0058】
図13は、本発明の一つの実施形態と組み合わせて使用されるデータ処理システムを例示的に示すブロック図である。例えば、システム1500は、上記プロセス又は方法のいずれかを実行する上記任意のデータ処理システム(例えば、図1のデータ処理システム110、及びサーバ103〜104のいずれか)を示してもよい。システム1500は、多数の異なる構成要素を含んでもよい。これらの構成要素は、集積回路(IC)、集積回路の一部、分散型電子装置又は回路基板に適用された他のモジュール(例えば、コンピュータシステムのマザーボード又はアドインカード)、又は他の方式でコンピュータシステムのシャシーに組み込まれた構成要素として実現されることできる。
【0059】
さらに、システム1500は、コンピュータシステムの多数の構成要素の高レベルビューを示すことを目的とする。しかしながら、いくつかの実現形態では、付加的構成要素が存在する場合もあることを理解すべきである。また、他の実現形態において示される構成要素が異なる配置を有してもよい。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤー、パーソナルディジタルアシスタント(PDA)、スマート腕時計、パーソナルコミュニケーター、ゲーム装置、ネットワークルータ又はハブ、無線アクセスポイント(AP)又はリピーター、セットトップボックス、又はそれらの組合せを示してもよい。また、単一の機器又はシステムのみを示したが、用語「機器」又は「システム」は、さらに、独立又は共同で一つ(又は複数)のコマンドセットを実行することにより本明細書に説明される任意の1種又は複数種の方法を実行する機器又はシステムの任意のセットを含むことを理解すべきである。
【0060】
一つの実施形態において、システム1500は、バス又は相互接続部材1510によって接続されたプロセッサ1501、メモリ1503及び装置1505〜1508を備える。プロセッサ1501は、単一のプロセッサコア又は複数のプロセッサコアを含む単一のプロセッサ又は複数のプロセッサを示してもよい。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)等のような一つ又は複数の汎用プロセッサであってもよい。より具体的には、プロセッサ1501は、複雑コマンドセット計算(CISC)マイクロプロセッサ、縮小コマンドセットコンピュータ(RISC)マイクロプロセッサ、超長コマンド語(VLIW)マイクロプロセッサ、又は他のコマンドセットを実現するプロセッサ、又はコマンドセットの組合せを実現するプロセッサであってもよい。プロセッサ1501は、さらに、専用集積回路(ASIC)、セルラー又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、グラフィックプロセッサ、ネットワークプロセッサ、通信プロセッサ、暗号プロセッサ、コプロセッサ、組み込みプロセッサのような一つ又は複数の専用プロセッサ、あるいはコマンド処理可能な任意の他のタイプのロジックであってもよい。
【0061】
プロセッサ1501(超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよい)は、前記システムの各種構成要素と通信するための主処理ユニット及び中央ハブとして用いられてもよい。このようなプロセッサは、システムオンチップ(SoC)として実現されることができる。プロセッサ1501は、コマンドを実行することにより本明細書に説明される動作及びステップを実行するためのコマンドを実行するように構成される。また、システム1500は、選択可能なグラフィックサブシステム1504と通信するグラフィックインターフェースをさらに含んでもよく、グラフィックサブシステム1504は、表示コントローラ、グラフィックプロセッサ及び/又は表示装置をさらに備えてもよい。
【0062】
プロセッサ1501は、メモリ1503と通信してもよく、メモリ1503は、一つの実施形態において複数のメモリによって所定量のシステムメモリを提供する。メモリ1503は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)又は他のタイプの記憶装置のような一つ又は複数の揮発性記憶(又はメモリ)装置を備えてもよい。メモリ1503は、プロセッサ1501又は任意の他の装置により実行されるコマンド列を含む情報を記憶することができる。例えば、複数種のオペレーティングシステム、装置ドライバー、ファームウェア(例えば、基本入出力システム又はBIOS)及び/又はアプリケーションの実行可能なコード及び/又はデータはメモリ1503にロードされてもよく、プロセッサ1501により実行されてもよい。オペレーティングシステムは、ロボットオペレーティングシステム(ROS)、Microsoft(登録商標)会社からのWindows(登録商標)オペレーティングシステム、アップル会社からのMac OS(登録商標)/iOS(登録商標)、Google(登録商標)会社からのAndroid(登録商標)、Linux(登録商標)、Unix(登録商標)又は他のリアルタイム又は組み込みオペレーティングシステム(のような任意のタイプのオペレーティングシステムであってもよい。
【0063】
システム1500は、I/O装置、例えば装置1505〜1508をさらに備えてもよく、ネットワークインターフェース装置1505、選択可能な入力装置1506及び他の選択可能なI/O装置1507を備える。ネットワークインターフェース装置1505は、無線送受信機及び/又はネットワークインターフェースカード(NIC)を備えてもよい。前記無線送受信機は、WiFi送受信機、赤外送受信機、ブルートゥース(登録商標)送受信機、WiMax送受信機、無線セルラーホン送受信機、衛星送受信機(例えば、全地球測位システム(GPS)送受信機)又は他の無線周波数(RF)送受信機又はそれらの組合せであってもよい。NICはイーサネット(登録商標)カードであってもよい。
【0064】
入力装置1506は、マウス、タッチパッド、タッチスクリーン(それは表示装置1504と集積されてもよい)、ポインタデバイス(例えばスタイラス)及び/又はキーボード(例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード)を備えてもよい。例えば、入力装置1506は、タッチスクリーンに接続されるタッチスクリーンコントローラを含んでもよい。タッチスクリーン及びタッチスクリーンコントローラは、例えば複数種のタッチ感度技術(容量式、抵抗式、赤外式及び表面音波技術を含むが、それらに限定されない)のいずれか、及びタッチスクリーンの一つ又は複数の接触点を決定するための他の近接センサアレイ又は他の素子を用いてそのタッチ点及び移動又は断続を検出することができる。
【0065】
I/O装置1507は音声装置を備えてもよい。音声装置は、スピーカー及び/又はマイクロフォンを含んでもよく、それにより音声認識、音声コピー、デジタル記録及び/又は電話機能のような音声サポートの機能を促進する。他のI/O装置1507は、汎用シリアルバス(USB)ポート、パラレルポート、シリアルポート、印刷機、ネットワークインターフェース、バスブリッジ(例えば、PCI−PCIブリッジ)、センサ(例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサ等のような動きセンサ)又はそれらの組合せをさらに備えてもよい。装置1507は、結像処理サブシステム(例えば、カメラ)をさらに備えてもよく、前記結像処理サブシステムは、カメラ機能(例えば、写真及びビデオ断片の記録)を促進するための電荷カップリング装置(CCD)又は相補型金属酸化物半導体(CMOS)光学センサのような光学センサを備えてもよい。あるセンサは、センサハブ(図示せず)によって相互接続部材1510に接続されてもよく、キーボード又は熱センサのような他の装置は、組み込みコントローラ(図示せず)により制御されてもよく、これはシステム1500の特定配置又は設計により決められる。
【0066】
データ、アプリケーション、一つ又は複数のオペレーティングシステム等のような情報の永久記憶を提供するために、大容量記憶装置(図示せず)は、プロセッサ1501に接続されてもよい。様々な実施形態において、薄型化と軽量化のシステム設計を実現し且つシステムの応答能力を向上させるために、このような大容量記憶装置は、ソリッドステート装置(SSD)によって実現されることができる。なお、他の実施形態において、大容量記憶装置は、主にハードディスクドライブ(HDD)で実現されてもよく、容量が小さいSSD記憶装置は、SSDキャッシュとして停電イベント期間にコンテキスト状態及び他のこのような情報の永久記憶を実現し、それによりシステム動作が再開するときに通電を速く実現することができる。さらに、フラッシュデバイスは、例えばシリアルペリフェラルインターフェース(SPI)によってプロセッサ1501に接続されてもよい。このようなフラッシュデバイスは、システムソフトウェアの不揮発性記憶に用いられてもよく、前記システムソフトウェアは、前記システムのBIOS及び他のファームウェアを備える。
【0067】
記憶装置1508は、任意の1種又は複数種の本明細書に記載の方法又は機能を体現する一つ又は複数のコマンドセット又はソフトウェア(例えば、モジュール、ユニット及び/又はロジック1528)が記憶されるコンピュータアクセス可能な記憶媒体1509(機械可読記憶媒体又はコンピュータ可読媒体とも呼ばれる)を備えてもよい。モジュール/ユニット/ロジック1528は、機械学習エンジン160、データコレクタ151、分析モジュール152又は横滑り決定モジュール306のような上記構成要素のいずれかを示してもよい。モジュール/ユニット/ロジック1528は、さらにデータ処理システム1500により実行される期間にメモリ1503内及び/又はプロセッサ1501内に完全又は少なくとも部分的に存在してもよく、ここで、メモリ1503及びプロセッサ1501も、機器アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528は、さらにネットワークによってネットワークインターフェース装置1505を経由して送受信されてもよい。
【0068】
コンピュータ可読記憶媒体1509は、以上に説明されたいくつかのソフトウェア機能を永続的に記憶してもよい。コンピュータ可読記憶媒体1509は、例示的な実施形態において単一の媒体として示されたが、用語「コンピュータ可読記憶媒体」は、前記一つ又は複数のコマンドセットが記憶される単一の媒体又は複数の媒体(例えば、集中型又は分散型データベース、及び/又は関連するキャッシュ及びサーバ)を備えることを理解すべきである。用語「コンピュータ可読記憶媒体」は、さらにコマンドセットを記憶又はコーディング可能な任意の媒体を備えることを理解すべきであり、前記コマンドセットは、機器により実行され且つ前記機器に本出願の任意の1種又は複数種の方法を実行させる。従って、用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ及び光学媒体と磁気媒体又は任意の他の非一時的機械可読媒体を備えるが、それらに限定されないことを理解すべきである。
【0069】
本明細書に記載の処理モジュール/ユニット/ロジック1528、構成要素及び他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はハードウェア構成要素(例えばASIC、FPGA、DSP又は類似装置)の機能に統合されてもよい。さらに、処理モジュール/ユニット/ロジック1528は、ハードウェア装置内のファームウェア又は機能回路として実現されてもよい。また、処理モジュール/ユニット/ロジック1528は、ハードウェア装置及びソフトウェアコンポーネントの任意の組合せで実現されてもよい。
【0070】
なお、システム1500は、データ処理システムの各種の構成要素を有するように示されているが、構成要素の相互接続のいかなる特定のアーキテクチャー又は方式を示すものではないことに注意すべきであり、それは、このような詳細が本出願の実施形態に密接な関係がないためである。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ及び/又は他のデータ処理システムは、本出願の実施形態と共に使用されてもよい。
【0071】
上記詳細な説明の一部は、コンピュータメモリにおけるデータビットに対する演算のアルゴリズム及び記号表現で示される。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。ここで、アルゴリズムは、通常、所望の結果につながる首尾一貫した動作列(sequence of operations)と考えられる。これらの動作とは、物理量に対して物理的動作を行う必要となるステップを指す。
【0072】
ただし、これらの全て及び類似の用語は、いずれも適切な物理量に関連付けられ、且つただこれらの量に適用される適切なラベルであることに注意すべきである。特に断らない限り、本出願の全体にわたって用語(例えば、添付している特許請求の範囲に説明された用語)による説明とは、コンピュータシステム又は類似の電子計算装置の動作及び処理であり、前記コンピュータシステム又は電子計算装置は、コンピュータシステムのレジスタ及びメモリに物理(例えば、電子)量としてデータを示し、且つ前記データをコンピュータシステムメモリ又はレジスタ又は他のこのような情報記憶装置、伝送又は表示装置内において類似に物理量として示される他のデータに変換する。
【0073】
本出願の実施形態は、さらに本明細書における動作を実行するための装置に関する。このようなコンピュータプログラムは、不揮発性のコンピュータ可読媒体に記憶される。機器可読媒体は、機器(例えば、コンピュータ)可読な形態で情報を記憶する任意の機構を備える。例えば、機器可読(例えば、コンピュータ可読)媒体は、機器(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリメモリ)を備える。
【0074】
上記図面に示される手順又は方法は、ハードウェア(例えば、回路、専用ロジック等)、ソフトウェア(例えば、不揮発性のコンピュータ可読媒体に具現化される)、又は両方の組合せを含む処理ロジックにより実行されてもよい。前記手順又は方法は、本明細書において特定の順序に応じて説明されるが、説明された動作の一部は、異なる順序に応じて実行されてもよい。また、いくつかの動作は、順番ではなく並行に実行されてもよい。
【0075】
本出願の実施形態は、いずれかの特定のプログラミング言語を参照して説明されていないが、複数種のプログラミング言語で本明細書に記載の本出願の実施形態の教示を実現できることを理解すべきである。
【0076】
以上の明細書では、本出願の具体的な例示的な実施形態を参照してその実施形態を説明した。明らかなように、添付している特許請求の範囲に記載の本出願のより広い趣旨及び範囲を逸脱しない限り、様々な変形が可能である。従って、限定的なものではなく例示的なものとして本明細書及び図面を理解すべきである。
図1
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10A
図10B
図11
図12
図13