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