(57)【特許請求の範囲】
【請求項１】
自動運転車両を制御するためのコンピュータ実施方法であって、
前記自動運転車両の第１の制御コマンド及びスピード測定値を受信するステップと、
前記スピード測定値及び前記第１の制御コマンドに基づいて、較正テーブルを用いて、前記自動運転車両の予想加速度を確定するステップと、
前記自動運転車両の加速度測定値を受信するステップと、
前記加速度測定値及び前記予想加速度に基づいてフィードバック誤差を確定するステップと、
確定されたフィードバック誤差に基づいて較正テーブルの一部を更新するステップと、
更新された部分を有する較正テーブルに基づいて前記自動運転車両を制御するための第２の制御コマンドを生成し、前記第２の制御コマンドに従って前記自動運転車両を自律的に制御するステップと、を含み、
前記較正テーブルは、離散化のエントリを座標点（ｘ，ｙ）とし、エントリの対応するエントリ値を座標点の重み値（ｚ）とする二次元加重曲線で示されており、ただし、ｘは、エントリにおけるスピードを表し、ｙは、エントリにおける制御コマンドを表し、ｚは、エントリの対応する加速度値を表すように構成され、
前記較正テーブルの一部を更新するステップは、
前記第１の制御コマンド及び前記スピード測定値に基づいて前記二次元加重曲線において、更新対象の座標点を決定することと、
前記決定された更新対象の座標点は、前記較正テーブルのエントリに対応していない場合、前記更新対象の座標点の周囲の、前記較正テーブルのエントリに対応する座標点の重み値を変更することと、をさらに含む、
コンピュータ実施方法。
【請求項２】
前記スピード及び前記加速度の測定は、前記自動運転車両の慣性計測装置のセンサによって実行される請求項１に記載の方法。
【請求項３】
前記エントリは、空間補間モデルに従って更新される請求項１に記載の方法。
【請求項４】
前記空間補間モデルは、逆距離加重補間モデルを含む請求項３に記載の方法。
【請求項５】
前記更新対象の座標点から距離ｄ１にある座標点に対応するエントリは、（１／ｄ１）／（１／ｄ１＋１／ｄ２＋１／ｄ３＋１／ｄ４）の重み係数に基づいて更新され、ここで、ｄ１、ｄ２、ｄ３及びｄ４はそれぞれ、特定の加速度に対する４つの周囲にあるエントリの距離である請求項４に記載の方法。
【請求項６】
前記加速度測定値及び前記予想加速度に基づいてフィードバック誤差を確定するステップは、前記フィードバック誤差を所定の最小値／最大値に制限することを含む請求項１に記載の方法。
【請求項７】
前記第２の制御コマンドを生成するステップは、
前記自動運転車両の現在のスピードを受信することと、
前記自動運転車両の計画スピード及び現在のスピードに基づいて加速度を計算することと、
算出された加速度と受信された前記自動運転車両の現在のスピードとに基づいて、前記較正テーブルを使用して前記第２の制御コマンドを決定することと、
前記第２の制御コマンドを生成することと、を含む請求項１に記載の方法。
【請求項８】
命令が格納されている非一時的機械可読媒体であって、前記命令はプロセッサにより実行されると、前記プロセッサに
自動運転車両の第１の制御コマンド及びスピード測定値を受信するステップと、
前記スピード測定値及び前記第１の制御コマンドに基づいて、較正テーブルを用いて、前記自動運転車両の予想加速度を確定するステップと、
前記自動運転車両の加速度測定値を受信するステップと、
前記加速度測定値及び前記予想加速度に基づいてフィードバック誤差を確定するステップと、
確定されたフィードバック誤差に基づいて較正テーブルの一部を更新するステップと、
更新された部分を有する較正テーブルに基づいて前記自動運転車両を制御するための第２の制御コマンドを生成し、前記第２の制御コマンドに従って前記自動運転車両を自律的に制御するステップと、
を含み、
前記較正テーブルは、離散化のエントリを座標点（ｘ，ｙ）とし、エントリの対応するエントリ値を座標点の重み値（ｚ）とする二次元加重曲線で示されており、ただし、ｘは、エントリにおけるスピードを表し、ｙは、エントリにおける制御コマンドを表し、ｚは、エントリの対応する加速度値を表すように構成され、
前記較正テーブルの一部を更新するステップは、
前記第１の制御コマンド及び前記スピード測定値に基づいて前記二次元加重曲線において、更新対象の座標点を決定することと、
前記決定された更新対象の座標点は、前記較正テーブルのエントリに対応していない場合、前記更新対象の座標点の周囲の、前記較正テーブルのエントリに対応する座標点の重み値を変更することと、をさらに含む、
動作を実行させる非一時的機械可読媒体。
【請求項９】
前記スピード及び前記加速度の測定は、前記自動運転車両の慣性計測装置のセンサによって実行される請求項８に記載の非一時的機械可読媒体。
【請求項１０】
プロセッサと、
命令を格納するために前記プロセッサに接続されるメモリと、を備えるデータ処理システムであって、
前記命令は、前記プロセッサにより実行されると、前記プロセッサに
自動運転車両の第１の制御コマンド及びスピード測定値を受信するステップと、
前記スピード測定値及び前記第１の制御コマンドに基づいて、較正テーブルを用いて、前記自動運転車両の予想加速度を確定するステップと、
前記自動運転車両の加速度測定値を受信するステップと、
前記加速度測定値及び前記予想加速度に基づいてフィードバック誤差を確定するステップと、
確定されたフィードバック誤差に基づいて較正テーブルの一部を更新するステップと、
更新された部分を有する較正テーブルに基づいて前記自動運転車両を制御するための第２の制御コマンドを生成し、前記第２の制御コマンドに従って前記自動運転車両を自律的に制御するステップと、
を含み、
前記較正テーブルは、離散化のエントリを座標点（ｘ，ｙ）とし、エントリの対応するエントリ値を座標点の重み値（ｚ）とする二次元加重曲線で示されており、ただし、ｘは、エントリにおけるスピードを表し、ｙは、エントリにおける制御コマンドを表し、ｚは、エントリの対応する加速度値を表すように構成され、
前記較正テーブルの一部を更新するステップは、
前記第１の制御コマンド及び前記スピード測定値に基づいて前記二次元加重曲線において、更新対象の座標点を決定することと、
前記決定された更新対象の座標点は、前記較正テーブルのエントリに対応していない場合、前記更新対象の座標点の周囲の、前記較正テーブルのエントリに対応する座標点の重み値を変更することと、をさらに含む、
動作を実行させるデータ処理システム。
【請求項１１】
前記スピード及び前記加速度の測定は、前記自動運転車両の慣性計測装置のセンサによって実行される請求項１０に記載のシステム。
【請求項１２】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項１〜７のいずれか１項に記載の方法を実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、主に自動運転車両を動作させることに関する。より具体的には、本発明の実施形態は、自動運転車両（ＡＤＶ）のためのスピード制御コマンド自動較正システムに関する。
【背景技術】
【０００２】
自動運転モード（例えば、ドライバーレス）で走行している車両は、乗員、特に運転手を運転関連職務から解放することができる。車両は、自動運転モードで走行しているとき、搭載されたセンサを使用して様々な場所にナビゲートすることができ、最小限のヒューマンコンピュータインタラクションや、乗客がいないなどの状況で車両を走行させることができる。
【０００３】
運動計画及び制御はＡＤＶにおける重要な処理である。しかしながら、従来の運動計画処理は、異なる種類の車両の特徴の違いを考慮せずに、主にその曲率及びスピードに基づいて所与の経路を計画する。同じ運動計画及び制御は、異なる種類の車両に適用されるか、又は同じ種類であるものの異なる負荷を有する車両に適用されると、実際の速度（ｖｅｌｏｃｉｔｙ）出力が異なる可能性がある。
【０００４】
車両の速度はＡＤＶの制御モジュールにとって重要な入力であるが、（１）車両が異なり、（２）車両の負荷が異なると、ＡＤＶの速度は異なっていてもよい。車両の速度を較正するための効率的な方法が欠けている。
【発明の概要】
【０００５】
第１の態様では、本発明は、自動運転車両（ＡＤＶ）を制御するためのコンピュータ実施方法であって、ＡＤＶの第１の制御コマンド及びスピード測定値を受信するステップと、スピード測定値及び第１の制御コマンドに基づいてＡＤＶの予想加速度を確定するステップと、ＡＤＶの加速度測定値を受信するステップと、加速度測定値及び予想加速度に基づいてフィードバック誤差を確定するステップと、確定されたフィードバック誤差に基づいて較正テーブルの一部を更新するステップと、更新された部分を有する較正テーブルに基づいてＡＤＶを制御するための第２の制御コマンドを生成し、第２の制御コマンドに従ってＡＤＶを自律的に制御するステップと、を含むコンピュータ実施方法を提供する。
【０００６】
第２の態様では、本発明は、命令が格納されている非一時的機械可読媒体であって、命令はプロセッサにより実行されると、プロセッサに動作を実行させ、前記動作は、ＡＤＶの第１の制御コマンドとスピード測定値を受信するステップと、スピード測定値及び第１の制御コマンドに基づいてＡＤＶの予想加速度を確定するステップと、ＡＤＶの加速度測定値を受信するステップと、加速度測定値及び予想加速度に基づいてフィードバック誤差を確定するステップと、確定されたフィードバック誤差に基づいて較正テーブルの一部を更新するステップと、更新された部分を有する較正テーブルに基づいてＡＤＶを制御するための第２の制御コマンドを生成し、第２の制御コマンドに従ってＡＤＶを自律的に制御するステップと、を含む非一時的機械可読媒体を提供する。
【０００７】
第３の態様では、本発明は、プロセッサと、命令を格納するためにプロセッサに接続されるメモリとを備えるデータ処理システムであって、命令はプロセッサにより実行されると、プロセッサに動作を実行させ、前記動作は、ＡＤＶの第１の制御コマンド及びスピード測定値を受信するステップと、スピード測定値及び第１の制御コマンドに基づいてＡＤＶの予想加速度を確定するステップと、ＡＤＶの加速度測定値を受信するステップと、加速度測定値及び予想加速度に基づいてフィードバック誤差を確定するステップと、確定されたフィードバック誤差に基づいて較正テーブルの一部を更新するステップと、更新された部分を有する較正テーブルに基づいてＡＤＶを制御するための第２の制御コマンドを生成し、第２の制御コマンドに従ってＡＤＶを自律的に制御するステップと、を含むデータ処理システムを提供する。
【図面の簡単な説明】
【０００８】
本発明の実施形態は、図面の各図において限定的ではなく例示的な形態で示され、図面における同じ図面符号が類似の素子を示す。
【０００９】
【図１】一実施形態に係るネットワークシステムを示すブロック図である。
【００１０】
【図２】一実施形態に係る自動運転車両によって使用されるセンサ及び制御システムの一例を示すブロック図である。
【００１１】
【図３Ａ】いくつかの実施形態に係る自動運転車両によって使用される感知・計画システムの一例を示すブロック図である。
【図３Ｂ】いくつかの実施形態に係る自動運転車両によって使用される感知・計画システムの一例を示すブロック図である。
【００１２】
【図４】一実施形態に係る自動較正モジュールの一例を示すブロック図である。
【００１３】
【図５】一実施形態に係る較正テーブルの一例を示す図である。
【００１４】
【図６】一実施形態に係る例示的なフィードバック誤差リミッタを示すブロック図である。
【００１５】
【図７】一実施形態に係る較正テーブルの一部の一例を示すブロック図である。
【００１６】
【図８Ａ】一実施形態に係る自動較正更新の一例を示すブロック図である。
【図８Ｂ】一実施形態に係る自動較正更新の一例を示すブロック図である。
【図８Ｃ】一実施形態に係る自動較正更新の一例を示すブロック図である。
【図８Ｄ】一実施形態に係る自動較正更新の一例を示すブロック図である。
【００１７】
【図９】一実施形態に係る方法を示すフローチャートである。
【００１８】
【図１０】一実施形態に係る方法を示すフローチャートである。
【００１９】
【図１１】一実施形態に係るデータ処理システムの一例を示すブロック図である。
【発明を実施するための形態】
【００２０】
以下に説明される詳細を参照しながら本発明の様々な実施形態及び態様を説明し、添付図面には上記の様々な実施形態が示される。以下の説明及び図面は、本発明を例示するためのものであり、限定するものとして解釈されるべきではない。本発明の様々な実施形態を全面的に理解するために、多くの特定の詳細を説明する。なお、本発明の実施形態を簡潔的に説明するように、周知又は従来技術の詳細について説明していない場合もある。
【００２１】
本明細書において、「一実施形態」又は「実施形態」とは、当該実施形態に基づいて説明された特定の特徴、構造又は特性が本発明の少なくとも一実施形態に含まれてもよいと意味する。「一実施形態では」という表現は、本明細書の全体において全てが同一の実施形態を指すとは限らない。
【００２２】
スピード制御は、ＡＤＶの制御モジュールが計画軌跡に正確に従うことを可能にする。通常、車両モデル及び／又はＡＤＶの瞬間負荷に従って出力加速度及び／又は速度を調整するために、スピード制御は、（例えば、較正行列及び／又は較正テーブルを使用して）較正される。較正された出力は、計画周期にわたってＡＤＶが車両の計画スピードをオーバーシュート又はアンダーシュートするのを防止することができる。較正テーブルは通常、ＡＤＶがオフラインの間に手動で較正される。しかしながら、各車両は個別に較正されなければならないので、手動較正は面倒である可能性がある。さらに、車両の性能は時間とともに劣化するので、再較正が必要である。また、異なる重量／負荷がかけられた同車両に対して、テーブルは一定のままにすると、もはや正確ではない可能性がある。従って、制御及びセンサからの入力に基づいて、較正テーブルはリアルタイムで自動的に更新され、時間や手間を省いた。
【００２３】
一態様によれば、システムは、ＡＤＶの第１の制御コマンド及びスピード測定値を受信する。システムは、スピード測定値及び第１の制御コマンドに基づいてＡＤＶの予想加速度を確定する。システムは、ＡＤＶの加速度測定値を受信する。システムは、加速度測定値及び予想加速度に基づいてフィードバック誤差を確定する。システムは、確定されたフィードバック誤差に基づいて較正テーブルの一部を更新する。システムは、更新された部分を有する較正テーブルに基づいてＡＤＶを制御するための第２の制御コマンドを生成し、第２の制御コマンドに従ってＡＤＶを自律的に制御する。
【００２４】
図１は、本発明の一実施形態に係る自動運転車両のネットワーク構成を示すブロック図である。図１に示すように、ネットワーク構成１００は、ネットワーク１０２を介して１つ又は複数のサーバ１０３〜１０４に通信可能に接続される自動運転車両１０１を含む。一台の自動運転車両のみが示されているが、複数の自動運転車両が、ネットワーク１０２を介して、互いに接続されるか、及び／又はサーバ１０３〜１０４に接続されてもよい。ネットワーク１０２は、任意のタイプのネットワーク、例えば、有線又は無線のローカルエリアネットワーク（ＬＡＮ）、インターネットのようなワイドエリアネットワーク（ＷＡＮ）、セルラーネットワーク、衛星ネットワーク又はそれらの組み合わせであってもよい。サーバ１０３〜１０４は、任意のタイプのサーバ又はサーバクラスタであってもよく、例えば、ネットワーク又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ、又はそれらの組み合わせが挙げられる。サーバ１０３〜１０４は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図・ポイントオブインタレスト（ＭＰＯＩ）サーバ、又は位置サーバなどであってもよい。
【００２５】
自動運転車両とは、自動運転モードになるように構成可能な車両を指し、前記自動運転モードにおいて、車両が運転手からの入力がほとんど又は全くない場合に環境を通過するようにナビゲートされる。このような自動運転車両は、車両の動作環境に関連する情報を検出するように構成された１つ又は複数のセンサを有するセンサシステムを備えていてもよい。前記車両及びその関連コントローラは、検出された情報を使用して前記環境を通過するようにナビゲートする。自動運転車両１０１は、手動モード、全自動運転モード、又は部分自動運転モードで動作することができる。
【００２６】
一実施形態では、自動運転車両１０１は、感知・計画システム１１０、車両制御システム１１１、無線通信システム１１２、ユーザインターフェースシステム１１３及びセンサシステム１１５を含むが、それらに限定されない。自動運転車両１０１は更に、エンジン、車輪、ステアリングホイール、変速機などの従来の車両に含まれるいくつかの共通構成要素を含んでもよい。前記構成要素は、車両制御システム１１１及び／又は感知・計画システム１１０によって様々な通信信号及び／又はコマンドで制御されることができ、これらの様々な通信信号及び／又はコマンドは、例えば加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンドなどが挙げられる。
【００２７】
構成要素１１０〜１１５は、インターコネクト、バス、ネットワーク、又はそれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素１１０〜１１５は、コントローラエリアネットワーク（ＣＡＮ）バスを介して互いに通信可能に接続することができる。ＣＡＮバスは、ホストコンピュータなしのアプリケーションでマイクロコントローラ及びデバイスが相互に通信できるように設計された車両バス規格である。それは、もともと自動車内の多重電気配線のために設計されたメッセージに基づくプロトコルであるが、他の多くの環境にも用いられる。
【００２８】
ここで図２を参照すると、一実施形態では、センサシステム１１５は、１つ又は複数のカメラ２１１、全地球測位システム（ＧＰＳ）ユニット２１２、慣性計測ユニット（ＩＭＵ）２１３、レーダユニット２１４及び光検出・測距（ＬＩＤＡＲ）ユニット２１５及び車載Ｖ２Ｘ通信ユニット（ｖｅｈｉｃｌｅ−ｔｏ−ｅｖｅｒｙｔｈｉｎｇ  ｕｎｉｔ）２１６を備えるが、それらに限定されない。ＧＰＳユニット２１２は、自動運転車両の位置に関する情報を提供するように動作可能な送受信機を含んでもよい。ＩＭＵユニット２１３は、慣性加速度に基づいて自動運転車両の位置及び配向の変化を検知することができる。レーダユニット２１４は、自動運転車両のローカル環境内のオブジェクトを検知するために無線信号を利用するシステムを表すことができる。いくつかの実施形態では、オブジェクトを検知することに加えて、レーダユニット２１４は、オブジェクトのスピード及び／又は進行方向をさらに検知することができる。ＬＩＤＡＲユニット２１５は、レーザを使用して自動運転車両が位置する環境内のオブジェクトを検知することができる。ＬＩＤＡＲユニット２１５は、他のシステム構成要素のほかに、１つ又は複数のレーザ源、レーザスキャナ及び１つ又は複数の検出器を更に備えていてもよい。カメラ２１１は、自動運転車両の周りの環境における画像を取り込むための１つ以上の装置を含んでいてもよい。カメラ２１１は、スチルカメラ及び／又はビデオカメラであってもよい。カメラは、例えば、回転及び／又は傾斜のプラットフォームに取り付けることによって、機械的に移動されていてもよい。
【００２９】
センサシステム１１５は、ソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ、及びオーディオセンサ（例えば、マイクロホン）などの他のセンサを更に含むことができる。オーディオセンサは、自動運転車両の周囲の環境から音を取得するように構成されてもよい。ステアリングセンサは、ステアリングホイール、車両の車輪、又はそれらの組み合わせの操舵角を検知するように構成されてもよい。スロットルセンサ及びブレーキセンサそれぞれは、車両のスロットル位置及びブレーキ位置を検知する。場合によっては、スロットルセンサとブレーキセンサを統合型スロットル／ブレーキセンサとして一体化することができる。
【００３０】
一実施形態では、車両制御システム１１１は、ステアリングユニット２０１、スロットルユニット２０２（加速ユニットともいう）、及びブレーキユニット２０３を含むが、それらに限定されない。ステアリングユニット２０１は車両の方向又は進行方向を調整するために用いられる。スロットルユニット２０２は電動機又はエンジンのスピードを制御するために用いられ、電動機又はエンジンのスピードは更に車両のスピード及び加速度を制御するために用いられる。ブレーキユニット２０３は、摩擦を与えることによって車両の車輪又はタイヤを減速させることで、車両を減速させる。注意すべきなのは、図２に示された構成要素は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されることができる。
【００３１】
図１を再び参照して、無線通信システム１１２は、自動運転車両１０１と、装置、センサ、他の車両などの外部システムとの間の通信を可能にするものである。例えば、無線通信システム１１２は、直接又は通信ネットワークを介して、１つ又は複数の装置と無線通信することができ、例えば、ネットワーク１０２を介してサーバ１０３〜１０４と通信することができる。無線通信システム１１２は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク（ＷＬＡＮ）を使用することができ、例えば、ＷｉＦｉ（登録商標）を使用して別の構成要素又はシステムと通信することができる。無線通信システム１１２は、例えば、赤外線リンク、ブルートゥース（登録商標）などを使用して、装置（例えば、乗客のモバイルデバイス、表示装置、車両１０１内のスピーカ）と直接通信することができる。ユーザインターフェースシステム１１３は、車両１０１内に実現された周辺装置の部分（例えば、キーボード、タッチスクリーン表示装置、マイクロホン及びスピーカなどを含む）であってもよい。
【００３２】
自動運転車両１０１の機能の一部又は全部は、特に自動運転モードで動作しているときに、感知・計画システム１１０によって制御するか又は管理することができる。感知・計画システム１１０は、必要なハードウェア（例えば、プロセッサ、メモリ、記憶装置）及びソフトウェア（例えば、オペレーティングシステム、計画及びルーティングプログラム）を備え、センサシステム１１５、制御システム１１１、無線通信システム１１２及び／又はユーザインターフェースシステム１１３から情報を受信し、受信した情報を処理し、出発地から目的地までのルート又は経路を計画し、その後、計画及び制御情報に基づいて車両１０１を走行させる。あるいは、感知・計画システム１１０を車両制御システム１１１と一体に統合することができる。
【００３３】
例えば、乗員としてのユーザは、例えば、ユーザインターフェースを介して、旅程の出発地位置及び目的地を指定することができる。感知・計画システム１１０は、旅程関連データを取得する。例えば、感知・計画システム１１０は、ＭＰＯＩサーバから位置及びルート情報を取得することができ、前記ＭＰＯＩサーバはサーバ１０３〜１０４の一部であってもよい。位置サーバは位置サービスを提供し、ＭＰＯＩサーバは地図サービス及び特定の位置のＰＯＩを提供する。あるいは、そのような位置及びＭＰＯＩ情報は、感知・計画システム１１０の永続性記憶装置にローカルキャッシュされることができる。
【００３４】
自動運転車両１０１がルートに沿って移動している間、感知・計画システム１１０は交通情報システム又はサーバ（ＴＩＳ）からリアルタイム交通情報を取得していてもよい。なお、サーバ１０３〜１０４は第三者機関によって操作されてもよい。あるいは、サーバ１０３〜１０４の機能は、感知・計画システム１１０と一体に統合されてもよい。リアルタイム交通情報、ＭＰＯＩ情報、及び位置情報、並びにセンサシステム１１５によって検出又は検知されたリアルタイムローカル環境データ（例えば、障害物、オブジェクト、周辺車両）に基づいて、感知・計画システム１１０は、指定された目的地までに安全かつ効率的に到着するように、最適なルートを計画し、計画されたルートに従って、例えば、制御システム１１１によって車両１０１を走行させる。
【００３５】
サーバ１０３は、様々な顧客に対してデータ解析サービスを行うためのデータ解析システムであってもよい。一実施形態では、データ解析システム１０３は、データコレクタ１２１と、機械学習エンジン１２２とを備える。データコレクタ１２１は、様々な車両（自動運転車両又は人間の運転手によって運転される一般車両）から運転統計データ１２３を収集する。運転統計データ１２３は、発された運転命令（例えば、スロットル、ブレーキ、ステアリングの命令）及び車両のセンサによって異なる時点で取得された車両の応答（例えば、速度、加速度、減速度、方向）を示す情報を含む。運転統計データ１２３は更に、異なる時点における走行環境を記述する情報、例えば、ルート（出発地位置及び目的地位置を含む）、ＭＰＯＩ、道路状況、天気状況などを含んでもよい。
【００３６】
機械学習エンジン１２２は、運転統計データ１２３に基づいて、様々な目的でルールセット、アルゴリズム及び／又はモデル１２４を生成又は訓練する。一実施形態では、例えば、アルゴリズム／モデル１２４は、逆距離加重補間モデルなどの様々な補間モデルを含んでいてもよい。逆距離加重補間は、近くのサンプルポイントからの属性の加重平均を使用してサンプリングされていない位置におけるその属性の大きさを推定する補間技術である。逆距離加重補間モデルは、リアルタイムでＡＤＶによって使用されるようにＡＤＶにアップロードすることができる。
【００３７】
図３Ａ及び図３Ｂは、一実施形態に係る自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。システム３００は、図１の自動運転車両１０１の一部として実現することができ、感知・計画システム１１０、制御システム１１１及びセンサシステム１１５を含むが、それらに限定されない。図３Ａ〜図３Ｂに示すように、感知・計画システム１１０には、測位モジュール３０１、感知モジュール３０２、予測モジュール３０３、決定モジュール３０４、計画モジュール３０５、制御モジュール３０６、ルーティング／サンプリングモジュール３０７及び自動較正モジュール３０８が含まれるが、それらに限定されない。
【００３８】
モジュール３０１〜３０８のうちの一部又は全部は、ソフトウェア、ハードウェア又はそれらの組み合わせで実現されていてもよい。例えば、これらのモジュールは、永続性記憶装置３５２にインストールされ、メモリ３５１にロードされ、１つ又は複数のプロセッサ（図示せず）によって実行されていてもよい。なお、これらのモジュールの一部又は全部は、図２の車両制御システム１１１のモジュールの一部又は全部と通信可能に接続されるか、又は一体に統合されていてもよい。モジュール３０１〜３０８の一部は、集積モジュールとして一体化されていてもよい。例えば、自動較正モジュール３０８及び制御モジュール３０６は単一のモジュールとして統合されてもよい。
【００３９】
測位モジュール３０１は、自動運転車両３００の現在の位置（例えば、ＧＰＳユニット２１２を利用して）を特定し、ユーザの旅程又はルートに関連する如何なるデータを管理する。測位モジュール３０１（地図・ルートモジュールともいう）は、ユーザの旅程又はルートに関連する如何なるデータを管理する。ユーザは、例えば、ユーザインターフェースを介してログインして、旅程の出発地位置及び目的地を指定することができる。測位モジュール３０１は、自動運転車両３００の地図・ルート情報３１１のような他の構成要素と通信して、旅程関連データを取得する。例えば、測位モジュール３０１は、位置サーバ及び地図・ポイントオブインタレスト（ＭＰＯＩ）サーバから位置及びルート情報を取得することができる。位置サーバは位置サービスを提供し、ＭＰＯＩサーバは、地図サービス及び特定位置のＰＯＩを提供し、地図・ルート情報３１１の一部としてキャッシュすることができる。自動運転車両３００がルートに沿って移動するとき、測位モジュール３０１は交通情報システム又はサーバからリアルタイム交通情報を得ることも可能である。
【００４０】
感知モジュール３０２は、センサシステム１１５により提供されたセンサデータと、測位モジュール３０１により取得された測位情報とに基づいて、周囲環境への感知を決定する。感知情報は、一般的な運転手が運転手により運転されている車両の周囲で感知すべきものを表すことができる。感知は、例えばオブジェクトの形態を採用する車線構成（例えば、直進車線又はカーブ車線）、信号機信号、他の車両の相対位置、歩行者、建築物、横断歩道、又は他の交通関連標識（例えば、止まれ標識、ゆずれ標識）などを含んでもよい。車線構成は、例えば、車線の形状（例えば、直線又は湾曲）、車線の幅、道路内の車線数、一方向又は二方向車線、合流車線又は分流車線、退出車線など、１つ又は複数の車線を記述する情報を含む。
【００４１】
感知モジュール３０２は、１つ又は複数のカメラによって取り込まれた画像を処理及び解析して、自動運転車両の環境内のオブジェクト及び／又は特徴を認識するためのコンピュータビジョンシステム又はコンピュータビジョンシステムの機能を含むことができる。前記オブジェクトは、交通信号、道路境界、他の車両、歩行者及び／又は障害物などを含むことができる。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオトラッキング、及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態では、コンピュータビジョンシステムは、環境地図の描画、オブジェクトの追跡、及びオブジェクトの速度の推定などができる。感知モジュール３０２は、レーダ及び／又はＬＩＤＡＲのような他のセンサによって提供される他のセンサデータに基づいてオブジェクトを検出することもできる。
【００４２】
各オブジェクトについて、予測モジュール３０３は、その場合にオブジェクトがどのように挙動するかを予測する。この予測は、地図・ルート情報３１１と交通ルール３１２のセットを考慮した時点で走行環境を感知する感知データに基づいて実行される。例えば、オブジェクトが反対方向の車両であり、かつ現在の走行環境が交差点を含む場合、予測モジュール３０３は、車両が直進するか又は旋回するかを予測する。感知データが、交差点に信号機がないことを示す場合、予測モジュール３０３は、交差点に入る前に車両が完全に停止する必要があると予測する可能性がある。感知データが、車両が現在左折専用車線又は右折専用車線にあることを示す場合、予測モジュール３０３は、車両がそれぞれ左折又は右折する可能性がより高いと予測することが可能である。
【００４３】
オブジェクトごとに対して、決定モジュール３０４はオブジェクトをどのように処置するかを決定する。例えば、特定のオブジェクト（例えば、交差のルートにおける他の車両）及びオブジェクトを記述するメタデータ（例えば、速度、方向、操舵角）について、決定モジュール３０４は前記オブジェクトと遇うときに如何に対応するか（例えば、追い越し、道譲り、停止、追い抜き）を決定する。決定モジュール３０４は、交通ルール又は運転ルール３１２のようなルールセットに基づいてそのような決定を行うことができ、前記ルールセットは永続性記憶装置３５２に記憶されていてもよい。
【００４４】
ルーティングモジュール３０７は、出発地から目的地までの１つ又は複数のルート又は経路を提供するように構成される。ルーティングモジュール３０７は、出発地位置から目的地位置までの所与の旅程（例えば、ユーザから受信された所与の旅程）について、地図・ルート情報３１１を取得し、出発地位置から目的地位置までのすべての可能なルート又は経路を決定する。ルーティングモジュール３０７は、出発地位置から目的地位置までの各ルートを決定する地形図形態の基準線を生成することができる。基準線とは、他の車両、障害物又は交通状況などからの如何なる干渉を受けていない理想的なルート又は経路をいう。つまり、道路に他の車両、歩行者又は障害物がない場合、ＡＤＶは基準線に精確的に又は密接的に従うべきである。そして、地形図を決定モジュール３０４及び／又は計画モジュール３０５に提供する。決定モジュール３０４及び／又は計画モジュール３０５は、他のモジュールにより提供された他のデータ（例えば測位モジュール３０１からの交通状況、感知モジュール３０２により感知された走行環境及び予測モジュール３０３により予測された交通状況）に応じて、全ての走行可能なルートを検査して最適ルートのうちの一つを選択及び補正する。その時点における特定の走行環境に応じて、ＡＤＶを制御するための実際の経路又はルートは、ルーティングモジュール３０７によって提供された基準線に近いか又は異なっていてもよい。
【００４５】
計画モジュール３０５は、感知されたオブジェクトのそれぞれに対する決定に基づいて、自動運転車両に経路又はルート並びに運転パラメータ（例えば、距離、速度及び／又は操舵角）を計画する。言い換えれば、特定のオブジェクトについて、決定モジュール３０４は該オブジェクトに対して何をするかを決定し、計画モジュール３０５はどのようにするかを決定する。例えば、特定のオブジェクトについて、決定モジュール３０４は前記オブジェクトを追い抜くか否かを決定することができ、計画モジュール３０５は前記オブジェクトを左側から追い抜くか又は右側から追い抜くかを決定することができる。計画及び制御データは、計画モジュール３０５により生成され、車両３００が次の移動周期（例えば、次のルート／経路区間）にはどのように移動するかを記述する情報を含む。例えば、計画及び制御データは、車両３００に時速３０マイル（ｍｐｈ）で１０ｍ移動し、次に２５マイル（ｍｐｈ）で右車線に変更するように指示することができる。
【００４６】
制御モジュール３０６は、計画及び制御データに基づいて、計画及び制御データにより定義されたルート又は経路に応じて適当なコマンド若しくは信号を車両制御システム１１１に送信することにより自動運転車両を制御及び走行させる。前記計画及び制御データは、経路又はルートに沿って異なる時点で適切な車両構成又は運転パラメータ（例えば、スロットル、ブレーキ、及びステアリングコマンド）を使用して、車両をルート又は経路の第１のポイントから第２のポイントまで走行させるのに十分な情報を含む。
【００４７】
一実施形態では、計画段階は、コマンドサイクルともいう複数の計画周期で実行され、例えば、１００ミリ秒（ｍｓ）の時間間隔ごとに実行される。計画周期又はコマンドサイクルのそれぞれについて、計画及び制御データに基づいて１つ又は複数の制御コマンドを発する。すなわち、１００ｍｓごとに、計画モジュール３０５は、次のルート区間又は経路区間（例えば、目標位置及びＡＤＶが目標位置に到着するのに必要な時間が含まれる）を計画する。あるいは、計画モジュール３０５は、具体的な速度、方向、及び／又は操舵角などを更に指定することができる。一実施形態では、計画モジュール３０５は、次の所定期間（例えば、５秒）のルート区間又は経路区間を計画する。計画周期のそれぞれに対し、計画モジュール３０５は、前の周期で計画された目標位置に基づいて、現在の周期（例えば、次の５秒）のための目標位置を計画する。制御モジュール３０６は、次に、現在の周期における計画及び制御データに基づいて１つ又は複数の制御コマンド（例えば、スロットル、ブレーキ、ステアリング制御コマンド）を生成する。
【００４８】
なお、決定モジュール３０４及び計画モジュール３０５は、集積モジュールとして一体化されてもよい。決定モジュール３０４／計画モジュール３０５は、自動運転車両の走行経路を決定するためのナビゲーションシステム又はナビゲーションシステムの機能を備えていてもよい。例えば、ナビゲーションシステムは、自動運転車両の以下の経路に沿った移動を達成するための一連の速度及び進行方向を決定することができる。前記経路では、自動運転車両が最終的な目的地に通じる走行車線ベースの経路に沿って前進するとともに、感知した障害物を実質的に回避できる。目的地は、ユーザインターフェースシステム１１３を介したユーザ入力に従って設定することができる。ナビゲーションシステムは、自動運転車両が走行している間に走行経路を動的に更新することができる。ナビゲーションシステムは、自動運転車両のための走行経路を決定するために、ＧＰＳシステム及び１つ又は複数の地図からのデータを取り入れることができる。
【００４９】
決定モジュール３０４／計画モジュール３０５は、更に、自動運転車両の環境における潜在的な障害物を認識、評価、回避又は他の方法で通過するための衝突防止システム又は衝突防止システムの機能を備えていてもよい。例えば、衝突防止システムは、制御システム１１１の１つ以上のサブシステムを動作させることで、ステアリング動作、旋回動作、ブレーキ動作などを行うことによって、自動運転車両のナビゲーション中の変更を実現することができる。衝突防止システムは、周囲の交通パターンや道路状況などに基づいて、実行可能な障害物回避動作を自動的に決定することができる。衝突防止システムは、他のセンサシステムが、自動運転車両が方向変更して進入しようとする隣接領域における車両、建築障害物などを検出したときに、ステアリング動作を行わないように構成されることができる。衝突防止システムは、自動運転車両の乗員の安全性を最大限にするとともに、利用可能な動作を自動的に選択することができる。衝突防止システムは、自動運転車両の客室内に最も少ない加速度を発生させると予測される回避動作を選択することができる。
【００５０】
図４は、一実施形態に係る自動較正モジュールの一例を示すブロック図である。図４を参照すると、自動較正モジュール３０８は、車両のスピード制御較正テーブル／マトリックス３１３を自動的に較正するために、車両のセンサシステム１１５及び制御モジュール３０６に接続されている。制御モジュール３０６は、後続の計画周期においてスピード制御コマンドを生成するために較正テーブル３１３を使用することができる。次に、スピード制御コマンドに対するフィードバック誤差に基づいて較正テーブル３１３を更新することができ、その後、コマンド生成及び較正テーブル更新プロセスを繰り返すことができる。
【００５１】
図４を参照すると、自動較正モジュール３０８は、加速度決定器モジュール４０１、フィードバック誤差決定器及び／又はフィードバック誤差リミッタモジュール４０３、ならびに較正テーブルアップデーターモジュール４０５を備えていてもよい。加速度決定器モジュール４０１は、ＡＤＶの加速度を決定することができる。フィードバック誤差決定器／リミッタモジュール４０３は、ＡＤＶのスピード制御のためのフィードバック誤差を決定する（及び／又はフィードバック誤差を所定の最小値／最大値に制限する）ことができる。較正テーブルアップデーターモジュール４０５は、スピード制御フィードバック誤差に基づいて較正テーブルを更新することができる。
【００５２】
図５は、一実施形態に係る較正テーブルの一例である。図５を参照すると、較正テーブル３１３は、三次元で示される二次元加重曲線（ｔｗｏ  ｄｉｍｅｎｓｉｏｎａｌ  ｗｅｉｇｈｔｅｄ  ｃｕｒｖｅ）であってもよい。テーブル３１３は、ｘ−ｙの２次元を有することができ、そのｚ次元が表にした重み値であり、ここで、ｘはスピード（ｓｐｅｅｄ）又は速度（ｖｅｌｏｃｉｔｙ）（ｍ／ｓ）であり、ｙはスピード制御コマンド（％）、及びｚは加速度（ｍ／ｓ２）である。ここで、一実施形態では、制御コマンドは、スロットルコマンド（例えば、給油する）及び／又はブレーキコマンドに対して１００％〜−１００％の範囲内で変化してもよく、加速度は−１０〜１０ｍ／ｓ２の範囲内、スピードは０〜３０ｍ／ｓの範囲内で変化してもよい。ｘ及びｚが分かっているときにｙをルックアップする場合、又はｘ及びｙがわかっているときにｚをルックアップする場合、較正テーブル３１３を使用することができる。
【００５３】
例えば、１０．１ｍ／ｓのスピード（ｘ）及び１．８％のスピード制御コマンド（ｙ）が与えられると、そのような較正テーブルを使用して０．５ｍ／ｓ２の予想加速度を確定することができる。テーブル３１３は、有限エントリを含み、すなわち不連続であるので、逆距離加重補間モデルのような補間モデルを使用して較正テーブルを読み取り、又は更新可能である。例えば、較正テーブルは１０ｍ／ｓ、１０．５ｍ／ｓにおける離散スピード値、及び１％、２％の制御コマンドなどを含んでいてもよい。この場合、１０．１ｍ／ｓのスピード及び１．８％の制御コマンドはエントリに対応しないが、１０ｍ／ｓ及び１０．５ｍ／ｓのスピード並びに１％、２％の制御コマンドに対する隣接エントリに対応するエントリを使用して値を補間することができる。較正テーブルも同様に補間モデルを使用して更新することができる。
【００５４】
図６は、一実施形態に係る例示的なフィードバック誤差リミッタを示すブロック図である。図６を参照すると、フィードバック誤差リミッタ６００は、図４のフィードバック誤差決定器／リミッタモジュール４０３の一部であってもよい。フィードバック誤差リミッタは、自動較正モジュールのフィードバック応答を制限するために用いられる。例えば、較正テーブルの更新とコマンドの生成は、計画周期ごとに継続的に実行できる。しかしながら、最小のフィードバック誤差は、較正テーブルの更新へのトリガを回避する必要があり、それは必要ではない可能性があり、コンピューティングリソースの無駄遣いにつながることがある。また、最大のフィードバック誤差は、如何なる不安定性を回避するために、最大のフィードバック誤差値への較正テーブルの更新をトリガすることができる。一実施形態では、フィードバックリミッタ６００は、フィードバック値が所定の最小値よりも大きい限りフィードバック誤差を出力するように構成することができる。例えば、所定の最小値よりも小さいフィードバック値については、フィードバック誤差を提供せず、較正テーブルを更新しない。別の実施形態では、フィードバックリミッタは、所定の最大値に制限されたフィードバック誤差を出力するように構成できる。この場合、最大値を超える如何なるフィードバック誤差について、較正テーブルは最大制限値に従って更新される。最小値／最大値の例としては、それぞれ０．１及び１．０であってもよい。
【００５５】
図７は、一実施形態に係る較正テーブルの一部の一例を示すブロック図である。図７を参照すると、較正テーブルの一部７００は、図５の較正テーブル３１３からの任意の数の表にした値であってもよい。例えば、テーブルの一部７００は、４つのエントリ値７０１〜７０４、及びポイントオブインタレスト７０５を含むことができる。エントリ７０１〜７０４は、それぞれポイント７０５から離れた距離ｄ１、距離ｄ２、距離ｄ３、距離ｄ４であってもよい。例えば、ｘ−ｙエントリ値について、値７０１〜７０４は、（ｘ，ｙ）＝｛（１０．０ｍ／ｓ，２％），（１０．５ｍ／ｓ，２％），（１０．０ｍ／ｓ，１％），（１０．５ｍ／ｓ，１％）｝にそれぞれ対応することができ、ポイント７０５は、（ｘ，ｙ）＝（１０．１，１．８％）に対応することができる。ここで、ポイント７０５の値は、次式を用いてテーブルの一部７００から確定することができる。
【数１】
0006952117.tif 000002
式中、ｚはポイントオブインタレストの値、ｚｉはポイントオブインタレストの周囲のエントリ値、ｄｉは周囲の各エントリからの距離である。
【００５６】
一実施形態では、ポイント７０５の値又はｖａｌ（７０５）は、（ｖａｌ（７０１）／ｄ１＋ｖａｌ（７０２）／ｄ２＋ｖａｌ（７０３）／ｄ３＋ｖａｌ（７０４）／ｄ４）／（１／ｄ１＋１／ｄ２＋１／ｄ３＋１／ｄ４）に等しい。別の実施形態では、較正テーブルの一部７００を更新するために、ポイント７０５の値は、次の加重公式を使用して逆距離加重補間モデルを通じてテーブルの一部７００内のエントリ値を更新することができる。
【数２】
0006952117.tif 000003
式中、ｗｅｉｇｈｔ（重み）はｄｊに対応するテーブルエントリに適用され、ｄｉはポイントオブインタレストに対するそれぞれの周囲のエントリの距離である。
【００５７】
図８Ａ〜図８Ｄは、一実施形態に係る自動較正更新の一例を示すブロック図である。図８Ａ〜図８Ｄを参照すると、一実施形態では、図８Ａ〜図８Ｃは、較正テーブルの、第１の計画周期による更新の前後の画像に対応することができる。図８Ｂ〜図８Ｄは、較正テーブルの、第２の計画周期による更新の前後の画像に対応することができる。図示のように、図８Ａに比較して図８Ｃの周囲のポイントのエントリのうち、４つのエントリが更新され、図８Ｂに比較して図８Ｄの周囲のポイントのエントリのうち、４つのエントリが更新される。ここでは、エントリの異なる色合いは、異なる大きさのテーブルエントリ値を示す。
【００５８】
従って、自動較正モジュール３０８によって実行されるプロセスは、以下の例に要約することができる。図４〜図６を参照すると、一実施形態では、第１の計画周期で、自動較正モジュール３０８は、センサシステム１１５を介してＡＤＶ１０１のＩＭＵユニットからスピード／速度（ｖｅｌｏｃｉｔｙ）測定値４１１を取得することができ、制御モジュール３０６を介して制御コマンド・状態４１３（例えば、成功／失敗）を取得することができる。スピード測定値及び制御コマンドならびにその状態に基づいて、加速度決定器モジュール４０１は較正テーブル３１３を使用して予想加速度を確定する。上述したように、限定された較正テーブルの場合、テーブルエントリにないポイントオブインタレストに対する予想加速度を確定するために、いくつかの補間アルゴリズム又はモデルを使用することができる。
【００５９】
第２の（後続の）計画周期について、例えば２００ｍｓ後に、加速度が有効になると、自動較正モジュール３０８は、ＩＭＵユニットを介して加速度測定値を取得し、加速度測定値と予想加速度とを比較してデルタ加速度（例えば、フィードバック誤差）を計算する。計算されたデルタ加速度又はフィードバック誤差に基づいて、フィードバック誤差リミッタモジュール４０３は、較正テーブル３１３に適用されるべき実際のフィードバック誤差を確定する。次いで、較正テーブルアップデーターモジュール４０５は、補間アルゴリズムを使用して較正テーブルを更新する。次に、ＡＤＶ１０１は較正テーブルを使用して、それぞれの計画周期についてのＡＤＶの計画スピードに基づいて後続のスピード制御コマンドを生成することができる。その後、較正テーブル更新及びコマンド生成プロセスを繰り返す。
【００６０】
図９は、一実施形態に係る方法を示すフローチャートである。プロセス９００は、処理ロジックにより実行可能であり、処理ロジックはソフトウェア、ハードウェア、又はそれらの組み合わせを含んでもよい。例えば、プロセス９００は図３Ａの自動較正モジュール３０８によって実行可能である。図９を参照すると、ブロック９０１において、処理ロジックはＡＤＶの第１の制御コマンド及びスピード測定値を受信する。ブロック９０２において、処理ロジックは、スピード測定値及び第１の制御コマンドに基づいてＡＤＶの予想加速度を確定する。ブロック９０３において、処理ロジックはＡＤＶの加速度測定値を受信する。ブロック９０４において、処理ロジックは、加速度測定値及び予想加速度に基づいてフィードバック誤差を確定する。ブロック９０５において、処理ロジックは、確定されたフィードバック誤差に基づいて較正テーブルの一部を更新する。ブロック９０６において、処理ロジックは、更新された部分を有する較正テーブルに基づいてＡＤＶを制御するための第２の制御コマンドを生成し、第２の制御コマンドに従ってＡＤＶを自律的に制御する。
【００６１】
一実施形態では、スピード及び加速度の測定は、ＡＤＶの慣性計測装置（ＩＭＵ）センサによって行われる。一実施形態では、スピード測定値及び第１の制御コマンドに基づいて較正テーブルを使用して予想加速度を確定する。
【００６２】
一実施形態では、較正テーブルの一部を更新するステップは、第１の制御コマンド及びスピード測定値に基づいて較正テーブルにおける更新ポイントを決定することをさらに含む。一実施形態では、較正テーブルは、制御コマンド、スピード、及び加速度の次元を有するテーブルエントリを備える三次元テーブルである。
【００６３】
一実施形態では、制御コマンドは、加速又はブレーキコマンドを含み、１００％〜−１００％の範囲を有する。別の実施形態では、テーブルエントリは離散化エントリである。別の実施形態では、テーブルエントリは空間補間モデルに従って更新される。別の実施形態では、空間補間モデルは逆距離加重補間モデルを含む。別の実施形態では、更新ポイントから距離ｄ１にあるテーブルエントリは、（１／ｄ１）／（１／ｄ１＋１／ｄ２＋１／ｄ３＋１／ｄ４）の重み係数に基づいて更新され、ここでは、ｄ１、ｄ２、ｄ３、及びｄ４は、それぞれ特定の加速度に対する４つの周囲のエントリの距離である。
【００６４】
図１０は、一実施形態に係る方法を示すフローチャートである。プロセス１０００は、処理ロジックにより実行可能であり、処理ロジックはソフトウェア、ハードウェア、又はそれらの組み合わせを含んでもよい。例えば、プロセス１０００は図３Ａの自動較正モジュール３０８によって実行可能である。図１０を参照すると、ブロック１００１において、処理ロジックはＡＤＶの現在のスピードを受信する。ブロック１００２において、処理ロジックは、ＡＤＶの計画スピード及び現在のスピードに基づいて加速度を計算する。ブロック１００３において、処理ロジックは、算出された加速度と受信されたＡＤＶの現在のスピードとに基づいて、較正テーブルを使用して第２の制御コマンドを決定する。ブロック１００４において、処理ロジックは第２の制御コマンドを生成する。
【００６５】
なお、以上に例示及び説明された構成要素の一部又は全ては、ソフトウェア、ハードウェア、又はそれらの組み合わせで実現されることが可能である。例えば、このような構成要素は、永続性記憶装置にインストールされるとともに格納されるソフトウェアとして実現されてもよく、前記ソフトウェアは、本発明にわたって記載されたプロセス又は処理を実施するように、プロセッサ（図示せず）を介してメモリにロードして実行されてもよい。あるいは、このような構成要素は、集積回路（例えば、特定用途向け集積回路又はＡＳＩＣ）、デジタルシグナルプロセッサ（ＤＳＰ）、又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のような専用ハードウェアにプログラミング又は埋め込まれた実行可能なコードとして実現されてもよく、前記実行可能なコードは、アプリケーションからの対応するドライバー及び／又はオペレーティングシステムを介してアクセスすることができる。また、このような構成要素は、ソフトウェア構成要素が１つ又は複数の特定の命令によってアクセス可能な命令セットの一部として、プロセッサ又はプロセッサコアにおける特定のハードウェアロジックとして実現されることができる。
【００６６】
図１１は、本発明の一実施形態と共に使用可能なデータ処理システムの一例を示すブロック図である。例えば、システム１５００は、例えば、図１の感知・計画システム１１０、又はサーバ１０３〜１０４など、上述した前記プロセス又は方法のいずれかを実行するデータ処理システムのいずれかを表すことができる。システム１５００は、いくつかの異なる構成要素を備えていてもよい。これらの構成要素は、集積回路（ＩＣ）、集積回路の一部、ディスクリート型電子デバイス、又は回路基板（例えば、コンピュータシステムのマザーボード若しくはアドインカード）に適するその他のモジュールとして実現されることができ、又は、他の形態でコンピュータシステムのシャーシ内に組み込まれる構成要素として実現されることが可能である。
【００６７】
なお、システム１５００は、コンピュータシステムのいくつかの構成要素の高レベルビューを示すことを意図している。しかしながら、特定の実施例においては付加的構成要素が存在してもよく、また、その他の実施例においては示された構成要素を異なる配置にすることも可能であることを理解されたい。システム１５００は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレヤー、パーソナルデジタルアシスタント（ＰＤＡ）、スマートウォッチ、パーソナルコミュニケーター、ゲーム装置、ネットワークルーター又はハブ、無線アクセスポイント（ＡＰ）又はリピーター、セット・トップボックス、又はそれらの組み合わせを表すことができる。また、単一の機械又はシステムのみが示されたが、「機械」又は「システム」という用語は、本明細書で説明されるいずれか１つ又は複数の方法を実行するための、１つ（又は複数）の命令セットを単独で又は共同で実行する機械又はシステムの任意の組み合わせも含まれることを理解されたい。
【００６８】
一実施形態では、システム１５００は、バス又はインターコネクト１５１０を介して接続される、プロセッサ１５０１と、メモリ１５０３と、装置１５０５〜１５０８とを含む。プロセッサ１５０１は、単一のプロセッサコア又は複数のプロセッサコアが含まれる単一のプロセッサ又は複数のプロセッサを表すことができる。プロセッサ１５０１は、マイクロプロセッサ、中央処理装置（ＣＰＵ）などのような、１つ又は複数の汎用プロセッサを表すことができる。より具体的には、プロセッサ１５０１は、複雑命令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピューティング（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、又はその他の命令セットを実行するプロセッサ、又は命令セットの組み合わせを実行するプロセッサであってもよい。プロセッサ１５０１は更に、例えば、特定用途向け集積回路（ＡＳＩＣ）、セルラー若しくはベースバンドプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、ネットワークプロセッサ、グラフィックプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組込みプロセッサ、又は命令を処理可能な任意の他のタイプのロジックのような、１つ又は複数の専用プロセッサであってもよい。
【００６９】
プロセッサ１５０１は、超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよく、前記システムの様々な構成要素と通信するための主処理ユニット及び中央ハブとして機能することができる。このようなプロセッサは、システムオンチップ（ＳｏＣ）として実現されることができる。プロセッサ１５０１は、本明細書で説明される動作及びステップを実行するための命令を実行するように構成される。システム１５００は、更に任意選択グラフィックサブシステム１５０４と通信するグラフィックインターフェースを含むことができ、グラフィックサブシステム１５０４は、表示コントローラ、グラフィックプロセッサ及び／又は表示装置を含んでいてもよい。
【００７０】
プロセッサ１５０１は、メモリ１５０３と通信することができ、メモリ１５０３は、一実施形態では、所定量のシステムメモリを提供するための複数のメモリ装置によって実現されることができる。メモリ１５０３は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、又はその他のタイプの記憶装置のような、１つ又は複数の揮発性記憶（又はメモリ）装置を含むことができる。メモリ１５０３は、プロセッサ１５０１又はその他の任意の装置により実行される命令シーケンスを含む情報を格納することができる。例えば、様々なオペレーティングシステム、デバイスドライバ、ファームウェア（例えば、ベーシックインプット／アウトプットシステム又はＢＩＯＳ）、及び／又はアプリケーションの実行可能なコード及び／又はデータは、メモリ１５０３にロードされ、プロセッサ１５０１により実行されることができる。オペレーティングシステムは、例えば、ロボットオペレーティングシステム（ＲＯＳ）、Ｍｉｃｒｏｓｏｆｔ（登録商標）社のＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム、アップル社のＭａｃＯＳ（登録商標）／ｉＯＳ（登録商標）、Ｇｏｏｇｌｅ（登録商標）社のＡｎｄｒｏｉｄ（登録商標）、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、又はその他のリアルタイム若しくは組込みオペレーティングシステムのような、任意のタイプのオペレーティングシステムであってもよい。
【００７１】
システム１５００は、更に、ネットワークインターフェース装置１５０５、任意選択入力装置１５０６、及びその他の任意選択Ｉ／Ｏ装置１５０７を含む装置１５０５〜１５０８のようなＩ／Ｏ装置を含むことができる。ネットワークインターフェース装置１５０５は、無線送受信機及び／又はネットワークインターフェースカード（ＮＩＣ）を含むことができる。前記無線送受信機は、ＷｉＦｉ（登録商標）送受信機、赤外線送受信機、ブルートゥース（登録商標）送受信機、ＷｉＭａｘ送受信機、無線携帯電話送受信機、衛星送受信機（例えば、全地球測位システム（ＧＰＳ）送受信機）、又はその他の無線周波数（ＲＦ）送受信機、又はそれらの組み合わせであってもよい。ＮＩＣは、イーサネット（登録商標）カードであってもよい。
【００７２】
入力装置１５０６は、マウス、タッチパネル、タッチスクリーン（表示装置１５０４と一体に統合されてもよい）、ポインター装置（例えば、スタイラス）、及び／又はキーボード（例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード）を含むことができる。例えば、入力装置１５０６は、タッチスクリーンと接続されるタッチスクリーンコントローラを含むことができる。タッチスクリーン及びタッチスクリーンコントローラは、例えば、様々なタッチ感応技術（コンデンサ、抵抗、赤外線、及び表面弾性波の技術を含むが、それらに限定されない）のいずれか、並びにその他の近接センサアレイ、又は、タッチスクリーンと接触する１つ又は複数のポイントを決定するためのその他の素子を用いて、それらの接触、移動又は中断を検出することができる。
【００７３】
Ｉ／Ｏ装置１５０７は、音声装置を含むことができる。音声装置は、音声認識、音声複製、デジタル記録、及び／又は電話機能のような音声サポート機能を促進するために、スピーカ及び／又はマイクロホンを含んでもよい。その他のＩ／Ｏ装置１５０７は、更に、ユニバーサルシリアルバス（ＵＳＢ）ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ（例えば、ＰＣＩ−ＰＣＩブリッジ）、センサ（例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなどのモーションセンサ）、又はそれらの組み合わせを含むことができる。装置１５０７は、更に結像処理サブシステム（例えば、カメラ）を含むことができ、前記結像処理サブシステムは、写真及びビデオ断片の記録のようなカメラ機能を促進するための、電荷結合素子（ＣＣＤ）又は相補型金属酸化物半導体（ＣＭＯＳ）光学センサのような光学センサを含むことができる。いくつかのセンサは、センサハブ（図示せず）を介してインターコネクト１５１０に接続されることができ、キーボード又はサーマルセンサのようなその他の装置はシステム１５００の具体的な配置又は設計により、組込みコントローラ（図示せず）により制御されることができる。
【００７４】
データ、アプリケーション、１つ又は複数のオペレーティングシステムなどの情報の永続性記憶を提供するために、プロセッサ１５０１には、大容量記憶装置（図示せず）が接続されることができる。様々な実施形態において、より薄くてより軽量なシステム設計を可能にしながら、システムの応答性を向上するために、このような大容量記憶装置は、ソリッドステート装置（ＳＳＤ）によって実現されることができる。しかしながら、その他の実施形態において、大容量記憶装置は、主にハードディスクドライブ（ＨＤＤ）を使用して実現することができ、より小さい容量のＳＳＤ記憶装置をＳＳＤキャッシュとして機能することで、停電イベントの間にコンテキスト状態及び他のそのような情報の不揮発性記憶を可能にし、それによりシステム動作が再開するときに通電を速く実現することができる。また、フラッシュデバイスは、例えば、シリアルペリフェラルインターフェース（ＳＰＩ）を介してプロセッサ１５０１に接続されることができる。このようなフラッシュデバイスは、前記システムのＢＩＯＳ及びその他のファームウェアを含むシステムソフトウェアの不揮発性記憶のために機能することができる。
【００７５】
記憶装置１５０８は、コンピュータアクセス可能な記憶媒体１５０９（機械可読記憶媒体又はコンピュータ可読媒体ともいう）を含むことができ、前記コンピュータアクセス可能な記憶媒体１５０９には、本明細書で記載されたいずれか１つ又は複数の方法又は機能を具現化する１つ又は複数の命令セット又はソフトウェア（例えば、モジュール、ユニット及び／又はロジック１５２８）が格納されている。処理モジュール／ユニット／ロジック１５２８は、例えば、図３Ａの自動較正モジュール３０８など、前記構成要素のいずれかを表すことができる。処理モジュール／ユニット／ロジック１５２８は、更に、データ処理システム１５００、メモリ１５０３及びプロセッサ１５０１による実行中に、メモリ１５０３内及び／又はプロセッサ１５０１内に完全的に又は少なくとも部分的に存在してもよく、データ処理システム１５００、メモリ１５０３、及びプロセッサ１５０１も機械アクセス可能な記憶媒体を構成する。処理モジュール／ユニット／ロジック１５２８は、更に、ネットワークによってネットワークインターフェース装置１５０５を経由して送受信されてもよい。
【００７６】
コンピュータ可読記憶媒体１５０９は、以上に説明されたいくつかのソフトウェア機能を永続的に格納するために用いることができる。コンピュータ可読記憶媒体１５０９は、例示的な実施形態において単一の媒体として示されるが、「コンピュータ可読記憶媒体」という用語は、前記１つ又は複数の命令セットが格納される単一の媒体又は複数の媒体（例えば、集中型又は分散型データベース及び／又は関連するキャッシュとサーバ）を含むと解釈されるものとする。「コンピュータ可読記憶媒体」という用語は、更に、命令セットを格納又は符号化できる任意の媒体を含むと解釈されるものであり、前記命令セットは機械により実行され、本発明のいずれか１つ又は複数の方法を前記機械に実行させるためのものである。それゆえに、「コンピュータ可読記憶媒体」という用語は、ソリッドステートメモリ、光学媒体及び磁気媒体、又はその他の任意の非一時的機械可読媒体を含むが、それらに限定されないと解釈されるものとする。
【００７７】
本明細書に記載の処理モジュール／ユニット／ロジック１５２８、構成要素及びその他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はハードウェア構成要素（例えば、ＡＳＩＣＳ、ＦＰＧＡ、ＤＳＰ又は類似の装置）の機能に統合されてもよい。さらに、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置におけるファームウェア又は機能性回路として実現されていてもよい。また、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置とソフトウェア構成要素の任意の組み合わせで実現されてもよい。
【００７８】
なお、システム１５００は、データ処理システムの様々な構成要素を有するものとして示されているが、構成要素を相互接続する任意の特定のアーキテクチャ又は方式を表すことを意図するものではなく、そのような詳細は、本発明の実施形態とは密接な関係がない。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、及び／又はその他のデータ処理システムも、本発明の実施形態と共に使用可能であることを理解されたい。
【００７９】
上述した具体的な説明の一部は、既に、コンピュータメモリにおけるデータビットに対する演算のアルゴリズムと記号表現により示された。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。本明細書では、一般的に、アルゴリズムは、所望の結果につながるセルフコンシステントシーケンスと考えられる。これらの動作は、物理量の物理的処置が必要なものである。
【００８０】
しかしながら、念頭に置くべきなのは、これらの用語及び類似の用語の全ては、適切な物理量に関連付けられるものであり、これらの量を標識しやすくするためのものに過ぎない。以上の説明で他に明示的に記載されていない限り、本明細書の全体にわたって理解すべきなのは、用語（例えば、添付された特許請求の範囲に記載のもの）による説明とは、コンピュータシステム、又は類似の電子式計算装置の動作及び処理を指し、前記コンピュータシステム又は電子式計算装置は、コンピュータシステムのレジスタ及びメモリにおける物理（電子）量として示されたデータを制御するとともに、前記データをコンピュータシステムメモリ又はレジスタ又はこのようなその他の情報記憶装置、伝送又は表示装置において同様に物理量として示された別のデータに変換する。
【００８１】
本発明の実施形態は、本明細書の処理を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的コンピュータ可読媒体に格納される。機械可読媒体は、機械（例えば、コンピュータ）により読み取り可能な形式で情報を格納するための任意のメカニズムを含む。例えば、機械可読（例えば、コンピュータ可読）媒体は、機械（例えば、コンピュータ）可読記憶媒体（例えば、読み出し専用メモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置）を含む。
【００８２】
上述した図面において説明されたプロセス又は方法は、ハードウェア（例えば、回路、専用ロジックなど）、ソフトウェア（例えば、非一時的コンピュータ可読媒体に具現化されるもの）、又は両方の組み合わせを含む処理ロジックにより実行されることができる。前記プロセス又は方法は、以上で特定の順序に応じて説明されたが、前記処理の一部が異なる順序で実行されてもよいことを理解されたい。また、一部の処理は、順番ではなく並行して実行されてもよい。
【００８３】
本発明の実施形態は、いずれの特定のプログラミング言語を参照することなく記載されている。理解すべきことは、本明細書に記載の本発明の実施形態の教示を実現するために、様々なプログラミング言語を使用することができる。
【００８４】
本明細書において、本発明の実施形態は、既にその具体的な例示的な実施形態を参照しながら記載された。明らかなように、添付された特許請求の範囲に記載された本発明のより広い趣旨及び範囲を逸脱しない限り、本発明に対して様々な変更を行うことができる。それゆえに、本明細書及び図面は、限定的な意味でなく、例示的な意味で理解されるべきである。
【図１】
0006952117.tif 000004
【図２】
0006952117.tif 000005
【図３Ａ】
0006952117.tif 000006
【図３Ｂ】
0006952117.tif 000007
【図４】
0006952117.tif 000008
【図５】
0006952117.tif 000009
【図６】
0006952117.tif 000010
【図７】
0006952117.tif 000011
【図８】
0006952117.tif 000012
【図９】
0006952117.tif 000013
【図１０】
0006952117.tif 000014
【図１１】
0006952117.tif 000015