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