(57)【特許請求の範囲】
【請求項１】
自動運転車操作用のコンピュータ実装方法であって、
自動運転車と前記自動運転車の周囲の複数のオブジェクトとの相対位置及び相対速度に基づき、前記自動運転車の物理的な制限を踏まえて、前記自動運転車が前記複数のオブジェクトの中の少なくとも一つと衝突することが回避できないことを確定することと、
前記複数のオブジェクトの各々に対して１つ又は複数のコスト関数の集合を用いて前記自動運転車と前記オブジェクトの、前記衝突が生じた際の潜在的な損害を示す衝突コストを計算することであって、前記複数のコスト関数のそれぞれは、過去の運転統計データを利用して訓練した係数を有する関数であることと、
前記複数のオブジェクトのうち、前記衝突コストが最も低い１つのオブジェクトを選択することと、
前記自動運転車と選択されたオブジェクトとの衝突が生じた際の前記潜在的な損害が他のオブジェクトより最小化するように、選択されたオブジェクトへの軌跡を計画することとを含む方法。
【請求項２】
前記自動運転車とオブジェクトとの衝突コストを計算することは、前記オブジェクトの種類に基づいてオブジェクト衝突コストを特定することを含む請求項１に記載の方法。
【請求項３】
オブジェクト衝突コストを特定することは、
前記オブジェクトに対する感知情報に基づいて前記オブジェクトの種類を特定することと、
オブジェクト／コストマッピング表において検索操作を行って、前記オブジェクトの種類にマッチングするマッピングエントリを位置特定することにより、前記オブジェクトの種類に対応する予め定められた衝突コストを取得することとを含む請求項２に記載の方法。
【請求項４】
前記オブジェクト／コストマッピング表は、複数のマッピングエントリを含み、各マッピングエントリは、オブジェクトの特定の種類を、予め定められた衝突コストにマッピングする請求項３に記載の方法。
【請求項５】
前記自動運転車とオブジェクトとの衝突コストを計算することは、前記自動運転車の第一速度と前記オブジェクトの第二速度の差に基づいて速度衝突コストを計算することを更に含む請求項２に記載の方法。
【請求項６】
前記自動運転車とオブジェクトとの衝突コストを計算することは、前記自動運転車の第一の方向ベクトルと前記オブジェクトの第二の方向ベクトルに基づいて方向衝突コストを計算することを更に含むことを特徴とする請求項２に記載の方法。
【請求項７】
前記自動運転車とオブジェクトとの衝突コストを計算することは、前記オブジェクトとの前記衝突が前記自動運転車の運転手の座席に対する衝撃位置に基づき、衝撃位置衝突コストを計算することを更に含む請求項２に記載の方法。
【請求項８】
命令が記憶されている非一時的な機器可読媒体であって、
前記命令がプロセッサーにより実行される場合、前記プロセッサーに、
自動運転車と前記自動運転車の周囲の複数のオブジェクトとの相対位置及び相対速度に基づき、前記自動運転車の物理的な制限を踏まえて、前記自動運転車が前記複数のオブジェクトの中の少なくとも一つと衝突することが回避できないことを確定することと、
前記複数のオブジェクトの各々に対し、一つ又は複数のコスト関数の集合を用いて前記自動運転車と前記オブジェクトの、衝突が生じた際の潜在的な損害量を表す衝突コストを計算することであって、前記複数のコスト関数のそれぞれは、過去の運転統計データを利用して訓練した係数を有する関数であることと、
前記複数のオブジェクトのうち、前記衝突コストの最も低い一つのオブジェクトを選択することと、
前記自動運転車と選択されたオブジェクトとの衝突が生じた際の前記潜在的な損害が他のオブジェクトより最小化するように、選択されたオブジェクトへ軌跡を計画することとを含む操作を、実行させる機器可読媒体。
【請求項９】
前記自動運転車とオブジェクトとの衝突コストを計算することは、前記オブジェクトの種類に基づいてオブジェクト衝突コストを特定することを含む請求項８に記載の機器可読媒体。
【請求項１０】
オブジェクト衝突コストを特定することは、
前記オブジェクトに対する感知情報に基づいて前記オブジェクトの種類を特定することと、
オブジェクト／コストマッピング表において検索操作を行って、前記オブジェクトの種類にマッチングするマッピングエントリを位置特定することにより、前記オブジェクトの種類に対応する予め定められた衝突コストを取得することとを含む請求項９に記載の機器可読媒体。
【請求項１１】
前記オブジェクト／コストマッピング表は、複数のマッピングエントリを含み、各マッピングエントリは、オブジェクトの特定の種類を、予め定められた衝突コストにマッピングする請求項１０に記載の機器可読媒体。
【請求項１２】
前記自動運転車とオブジェクトとの衝突コストを計算することは、前記自動運転車の第一速度と前記オブジェクトの第二速度との間の差に基づいて速度衝突コストを計算することを更に含む請求項９に記載の機器可読媒体。
【請求項１３】
前記自動運転車とオブジェクトとの衝突コストを計算することは、前記自動運転車の第一の方向ベクトルと前記オブジェクトの第二の方向ベクトルに基づいて方向衝突コストを計算することを更に含む請求項９に記載の機器可読媒体。
【請求項１４】
前記自動運転車とオブジェクトとの衝突コストを計算することは、前記オブジェクトの前記衝突が前記自動運転車の運転手の座席に相対する衝撃位置に基づき、衝撃位置衝突コストを計算することを更に含む請求項９に記載の機器可読媒体。
【請求項１５】
プロセッサーと、前記プロセッサーに接続して命令を記憶するメモリとを含むデータ処理システムであって、
前記命令がプロセッサーにより実行される場合、前記プロセッサーに
自動運転車と前記自動運転車の周囲の複数のオブジェクトとの相対位置及び相対速度に基づき、前記自動運転車の物理的な制限を踏まえて、前記自動運転車が前記複数のオブジェクトの中の少なくとも一つのオブジェクトと衝突することが回避できないことを確定することと、
前記複数のオブジェクトの各々に対し、一つ又は複数のコスト関数の集合を用いて前記自動運転車と前記オブジェクトの、衝突が生じた際の潜在的な損害量を表す衝突コストを計算することであって、前記複数のコスト関数のそれぞれは、過去の運転統計データを利用して訓練した係数を有する関数であることと、
前記複数のオブジェクトのうち、前記衝突コストの最も低い一つのオブジェクトを選択することと、
前記自動運転車と選択されたオブジェクトの衝突が生じた時の前記潜在的な損害が他のオブジェクトより最小化するように、選択されたオブジェクトへ軌跡を計画することとを含む操作を、実行させるデータ処理システム。
【請求項１６】
前記自動運転車とオブジェクトとの衝突コストを計算することは、前記オブジェクトの種類に基づいてオブジェクト衝突コストを特定することを含む請求項１５に記載のシステム。
【請求項１７】
オブジェクト衝突コストを特定することは、
前記オブジェクトに対する感知情報に基づいて前記オブジェクトの種類を特定することと、
オブジェクト／コストマッピング表において検索操作を行って、前記オブジェクトの種類にマッチングするマッピングエントリを位置特定することにより、前記オブジェクトの種類に対応する予め定められた衝突コストを取得することとを含む請求項１６に記載のシステム。
【請求項１８】
前記オブジェクト／コストマッピング表は、複数のマッピングエントリを含み、各マッピングエントリは、オブジェクトの特定の種類を、予め定められた衝突コストにマッピングする請求項１７に記載のシステム。
【請求項１９】
前記自動運転車とオブジェクトとの衝突コストを計算することは、前記自動運転車の第一速度と前記オブジェクトの第二速度との間の差に基づいて速度衝突コストを計算することを更に含む請求項１６に記載のシステム。
【請求項２０】
前記自動運転車とオブジェクトとの衝突コストを計算することは、前記自動運転車の第一の方向ベクトルと前記オブジェクトの第二の方向ベクトルに基づいて方向衝突コストを計算することを更に含む請求項１６に記載のシステム。
【請求項２１】
前記自動運転車とオブジェクトとの衝突コストを計算することは、前記オブジェクトとの前記衝突が前記自動運転車の運転手の座席に対する衝撃位置に基づき、衝撃位置衝突コストを計算することを更に含む請求項１６に記載のシステム。
【請求項２２】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項１ないし請求項７のいずれか一項に記載の方法を実現するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願の実施形態は、総体的に自動運転車の操作に関し、具体的には、自動運転車の衝突後の車両動作の最適化に関する。
【背景技術】
【０００２】
自動運転モード（例えば、無人運転）で運行する車両は、乗員、特に運転手を、幾つかの運転関連の責務から解放できる。自動運転モードで走行する際に、車両は、車載センサーによって様々な位置にナビゲートされることにより、最小限のヒューマンマシンインタラクションで、または乗客なしの状況で運転することができる。
【０００３】
行動計画と制御は、自動運転の肝要な操作である。自動運転のオブジェクトは、交通ルールに従うことを前提として、開始位置から目的位置までの道路を計画及びナビケーションするとともに、如何なる衝突もできるだけ回避することである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、運転環境の予測不可能な変化又は突然の変化により、事故又は衝突が回避できない場合がある。通常、一般的な車両は、この場合に進行方向をそのままにするとともにできるだけ早く減速し又は車両を停止させる。しかし、この方法では、損害を最小限にするための最適な方法ではない可能性がある。
【課題を解決するための手段】
【０００５】
以下、検討の詳細を参考しながら、本願の各実施形態と各側面について説明する。また、図面にて、各実施形態が示される。以下の説明と図面は、本開示に対する解釈であり、本願に対する限定と理解すべきではない。本願の各実施形態が全面的に理解できるために、多数の特定な詳細を説明するが、本願の実施形態に対する簡潔な討論を提供するために、周知または通常の詳細については、説明を省く場合もある。
【０００６】
本明細書における「一つの実施形態」または「実施形態」の言及は、当該実施形態に関して説明する特定の特徴、構造または特性が、本願の少なくとも一つの実施形態に含まれる可能であることを意味する。本明細書の各箇所に現れる短句の「一つの実施形態において」は、必ずしも全部同一の実施形態を指すものではない。
【０００７】
幾つかの実施形態により、自動運転期間において、最も重要なオブジェクトは、交通ルールに従うと同時に、他のオブジェクトとの如何なる衝突又は事故もできるだけ回避することである。しかしながら、自動運転車両（ＡＤＶ）は、衝突又は事故を回避することができないと確定された場合、当該時点での周囲の運転環境を検査し分析することにより、取るべき行動を決定することによって、回避できない衝突又は事故により生じる潜在的な損害を低減する。当該時刻の運転環境が与えられた場合、一つ又は複数のコスト関数又はコストアルゴリズムを用いて複数の経路又は軌跡を特定することができ、ただし、それぞれの経路又は軌跡は、コストと関連することが可能であり、当該コストは、ＡＤＶが当該特定経路に従う場合に生じる可能な損害量を表す。コストの最も低い一つの経路又は軌跡を選択し、選出された経路に基づいてＡＤＶの運転をコントロールすることによって、回避できない衝突による潜在的な損害を明らかに低減することができる。
【０００８】
一つの実施形態により、ＡＤＶとＡＤＶの周囲のオブジェクトとの相対位置及び相対速度に基づき、ＡＤＶの物理的な制限を踏まえて、ＡＤＶがオブジェクトの中の少なくとも一つのオブジェクトと衝突することが回避できないことを確定する。オブジェクトは、他の車両、行人、自転車、静的障害物（例えば、ごみ箱、灯柱、建物、駐車された車両）であっても良い。それぞれのオブジェクトに対して、一つ又は複数のコスト関数又はコストアルゴリズムの集合を用いてＡＤＶとオブジェクトとの衝突コストを計算する。衝突コストは、衝突が生じた時の潜在的な損害量を表す。全てのオブジェクトの中の衝突コストの最も低い一つのオブジェクトを選択する。ＡＤＶと選択されたオブジェクトが潜在的に衝突した際の潜在的な損害が他のオブジェクトより最小化するように、ＡＤＶが選択されたオブジェクトへ走行する又は向かうための経路又は軌跡を計画する。
【０００９】
一つの実施形態においては、オブジェクトと関連する、オブジェクト種類に基づくオブジェクト衝突コストに基づいて、衝突コストを特定することができる。オブジェクト種類は、車両、人又は行人、ライダーがいる自転車又はバイク又は静的障害物であっても良い。それぞれの種類のオブジェクトを予め定義し、それぞれの種類のオブジェクトと特定のオブジェクト衝突コストとを関連づける。一つの実施形態においては、オブジェクトをオブジェクト衝突コスト（オブジェクト／コスト）のマッピングデータ構造又はマッピング表に記憶することによって、異なる種類のオブジェクトを異なる衝突コストにマッピングする。オブジェクト／コストマッピング表は、複数のマッピングエントリを含む。各マッピングエントリは、特定のオブジェクト種類を特定のオブジェクト衝突コストにマッピングする。自動運転期間において感知された特定のオブジェクトを与えてオブジェクトの種類を決め、例えば、センサー（例えば、ビデオカメラ）により撮影されたオブジェクトの画像に基づいてオブジェクトの種類を特定する。オブジェクトの種類に基づいてオブジェクト／コストマッピング表において検索操作を実行することによって、オブジェクトの種類にマッチングするマッピングエントリの位置を特定する。その後、マッチングする項目からオブジェクト衝突コストを取得する。
【００１０】
他の実施形態においては、ＡＤＶとオブジェクトとの衝突コストは、ＡＤＶの速度とオブジェクトの速度との間の差異に基づいて計算された速度衝突コストを含んでも良い。ＡＤＶとオブジェクトとの衝突コストは、ＡＤＶの方向ベクトル及びオブジェクトの方向ベクトル（例えば、ＡＤＶの方向ベクトルとオブジェクトの方向ベクトルとの間の角度）に基づいて計算された方向衝突コストを更に含んでも良い。ＡＤＶとオブジェクトの衝突コストは、オブジェクトとの潜在的な衝突の、ＡＤＶの運転手の座席に対するぶつかり又は接触位置に基づいて決められる、ぶつかり位置衝突コストを更に備えても良い。所定のコンポジット式（例えば、重み付き式）を用いてオブジェクト衝突コスト、速度衝突コスト、方向衝突コスト及びぶつかり位置衝突コストの中の、一つ又は複数のコストに基づいてＡＤＶとオブジェクトの最終的な衝突コストを計算する。
【図面の簡単な説明】
【００１１】
本開示の実施形態は、限定するためのものではなく、図面の各図において例示として示されている。図面の中の同じ参照符号は、類似する部材を示すものである。
【図１】一つの実施形態によるネットワークシステムを示すブロック図である。
【図２】一つの実施形態による自動運転車の例示を示すブロック図である。
【図３Ａ】一つの実施形態による自動運転車と共に使用される感知と計画システムの例示を示すブロック図である。
【図３Ｂ】一つの実施形態による自動運転車と共に使用される感知と計画システムの例示を示すブロック図である。
【図４】特定の運転環境の図を示す図である。
【図５】一つの実施形態による衝突コスト計算機の例示を示すブロック図である。
【図６Ａ】一つの実施形態による幾つかのコスト関数又は表の例示を示す図である。
【図６Ｂ】一つの実施形態による幾つかのコスト関数又は表の例示を示す図である。
【図６Ｃ】一つの実施形態による幾つかのコスト関数又は表の例示を示す図である。
【図６Ｄ】一つの実施形態による幾つかのコスト関数又は表の例示を示す図である。
【図７】一つの実施形態による自動運転車両を操作するプロセスのフローチャート図である。
【図８】一つの実施形態によるオブジェクトに関する衝突コストを計算するプロセスのフローチャート図である。
【図９】一つの実施形態によるデータ処理システムのブロック図である。
【発明を実施するための形態】
【００１２】
図１は、本願の一つの実施形態による自動運転車のネットワーク配置を示すブロック図である。図１を参照すると、ネットワーク配置１００は、ネットワーク１０２を介して一つまたは複数のサーバー１０３〜１０４に通信可能に接続する自動運転車１０１を含む。一台の自動運転車しか示されていないが、複数台の自動運転車がネットワーク１０２を介して互いに接続され、及び／またはサーバー１０３〜１０４に接続されても良い。ネットワーク１０２は、任意のタイプのネットワークであっても良く、例えば、有線または無線のローカルエリアネットワーク（ＬＡＮ）、インターネットのようなワイドエリアネットワーク（ＷＡＮ）、移動体通信ネットワーク、衛星ネットワークまたはその組み合わせであっても良い。サーバー１０３〜１０４は、任意のタイプのサーバーまたはサーバークラスタであっても良く、例えば、ネットワークまたはクラウドサーバー、アプリケーションサーバー、バックエンドサーバーまたはその組み合わせであっても良い。サーバー１０３〜１０４は、データ分析サーバー、コンテンツサーバー、交通情報サーバー、地図と関心地点（ＭＰＯＩ）サーバーまたは位置サーバー等であっても良い。
【００１３】
自動運転車は、自動運転モードとして配置できる車両を指す。前記自動運転モードにおいて、運転手からの入力が非常に少ない状況、または運転手からの入力がない状況において車両が環境を通過するようにナビゲートされる。このような自動運転車は、車両の運行環境と関係のある情報を計測する一つまたは複数のセンサーを有するように配置されるセンサーシステムを含んでも良い。前記車両と関連するコントローラは、計測した情報を使用して車両が前記環境を通過するようにナビゲートを行う。自動運転車１０１は、手動モード、全自動運転モードまたは部分自動運転モードで走行することができる。
【００１４】
一つの実施形態において、自動運転車１０１は、感知と計画システム１１０と、車両制御システム１１１と、無線通信システム１１２と、ユーザーインターフェースシステム１１３と、センサーシステム１１５とを含むが、これらに限定されない。自動運転車１０１は、さらに普通の車両に含まれる通常の部材、例えば、エンジン、ホイール、ステアリングホイール、トランスミッション等を含むことができ、前記部材は複数の種類の通信信号及び／または命令を使って車両制御システム１１１及び／または感知と計画システム１１０によってコントロールされることができる。当該複数の種類の通信信号及び／または命令は、例えば、加速信号または命令、減速信号または命令、ステアリング信号または命令、ブレーキ信号または命令等である。
【００１５】
部材１１０〜１１５は、インターコネクト、バス、ネットワークまたはその組み合わせを通じて互いに通信可能に接続することができる。部材１１０〜１１５は、コントローラエリアネットワーク（ＣＡＮ）バスを通じて互いに通信可能に接続することができる。ＣＡＮバスは、ホストコンピュータがない応用においてマイクロコントローラーと装置が互いに通信できるように設計された車両バス規格である。ＣＡＮバスは、最初は自動車内部の多重化電気配線用に設計されたメッセージベースのプロトコルであるが、多数のその他の環境においても使用される。
【００１６】
図２に示すように、一つの実施形態において、センサーシステム１１５は、一つまたは複数のカメラ２１１と、グローバル・ポジショニング・システム（ＧＰＳ）ユニット２１２と、慣性計測装置（ＩＭＵ）２１３と、レーダーユニット２１４と、光検出と測距（ＬＩＤＡＲ）ユニット２１５とを含むが、これらに限定されない。ＧＰＳシステムは、自動運転車の位置に関する情報を提供するように操作可能なトランシーバを含んでも良い。ＩＭＵユニット２１３は、慣性加速度に基づいて自動運転車の位置と向く方向の変化をセンシングすることができる。レーダーユニット２１４は、無線信号を使って自動運転車のローカル環境内のオブジェクトをセンシングするシステムを表すことができる。幾つかの実施形態において、オブジェクトをセンシングする以外に、レーダーユニット２１４は、さらにオブジェクトの速度及び／または進行方向をセンシングすることができる。ＬＩＤＡＲユニット２１５は、レーザーを使って自動運転車を取り巻く環境の中のオブジェクトをセンシングすることができる。その他のシステム部材以外に、ＬＩＤＡＲユニット２１５は、一つまたは複数のレーザー光源、レーザースキャンナー及び一つまたは複数の検出器を更に含むことができる。カメラ２１１は、自動運転車の周囲環境の画像を採集するために使う一つまたは複数の装置を含むことができる。カメラ２１１は、スチールカメラ及び／またはビデオカメラであっても良い。カメラは、機械的に移動できるものであっても良く、例えば、カメラを回転及び／または傾斜する台に取り付けられても良い。
【００１７】
センサーシステム１１５は、ソナーセンサー、赤外センサー、ステアリングセンサー、スロットルセンサー、ブレーキセンサー、及びオーディオセンサー（例えば、マイクロホン）のようなその他のセンサーを更に含むことができる。オーディオセンサーは、自動運転車の周囲環境から音声を採集するように配置されても良い。ステアリングセンサーは、ステアリングホイール、車両のホイールまたはその組み合わせのステアリング角度をセンシングするように配置されても良い。スロットルセンサーとブレーキセンサーは、それぞれ車両のスロットル位置とブレーキ位置をセンシングする。幾つかの状況において、スロットルセンサーとブレーキセンサーは、集積式スロットル／ブレーキセンサーとして集積されても良い。
【００１８】
一つの実施形態において、車両制御システム１１１は、ステアリングユニット２０１と、スロットルユニット２０２（加速ユニットとも呼ばれる）と、ブレーキユニット２０３とを含むが、これらに限定されない。ステアリングユニット２０１は、車両の方向または進行方法を調整するために使用される。スロットルユニット２０２は、モーターまたはエンジンの速度をコントロールするために使用され、モーターまたはエンジンの速度により、車両の速度と加速度を更にコントロールする。ブレーキユニット２０３は、摩擦を提供することによって車両のホイールまたはタイヤを減速させ、ひいては車両を減速させる。図２に示す部材は、ハードウェア、ソフトウェアまたはその組み合わせとして実装できることに注意すべきである。
【００１９】
図１の参照に戻り、無線通信システム１１２は、自動運転車１０１が例えば装置、センサー、その他の車両等の外部システムと通信できるように許可する。例えば、無線通信システム１１２は、一つまたは複数の装置と直接的に無線通信することができ、または通信ネットワークを通じて無線通信することができ、例えば、ネットワーク１０２を通じてサーバー１０３〜１０４と通信することができる。無線通信システム１１２は、任意の移動体通信ネットワークまたは無線ローカルエリアネットワーク（ＷＬＡＮ）を使用することができ、例えば、ＷＩＦＩを使って他の部材またはシステムと通信することができる。無線通信システム１１２は、例えば赤外線リンク、ブルートゥース（登録商標）等を使って装置（例えば、乗客のモバイル装置、ディスプレイ装置、車両１０１の内部のスピーカー）と直接通信することができる。ユーザーインターフェースシステム１１３は、車両１０１の内部で実装された周辺装置の部分であっても良く、例えば、キーボード、タッチパネルディスプレイ装置、マイクロホンとスピーカー等である。
【００２０】
特に自動運転モードで操作するとき、自動運転車１０１の機能の幾つかまたは全部は、感知と計画システムによってコントロールまたは管理することができる。感知と計画システム１１０は、センサーシステム１１５、車両制御システム１１１、無線通信システム１１２及び／またはユーザーインターフェースシステム１１３から情報を受信し、受信した情報を処理し、起点から目的地点までのルートまたは経路を計画し、そして計画と制御情報に基づいて車両１０１を運転するように、必要なハードウェア（例えば、プロセッサー、メモリ、記憶装置）とソフトウェア（例えば、オペレーティングシステム、計画とルーティングプログラム）を含む。その代わりに、感知と計画システム１１０は、車両制御システム１１１と一体に集積されても良い。
【００２１】
例えば、乗客としてのユーザーは、例えばユーザーインターフェースを通じて行程のスタート位置と目的地を指定することができる。感知と計画システム１１０は、行程に関するデータを取得する。例えば、感知と計画システム１１０は、ＭＰＯＩサーバーから位置とルートの情報を取得することができる。ＭＰＯＩサーバーは、サーバー１０３〜１０４の一部分であってもよい。位置サーバーは位置サービスを提供し、ＭＰＯＩサーバーは地図サービスと幾つかの位置のＰＯＩを提供する。その代わりに、この種類の位置とＭＰＯＩ情報は、感知と計画システム１１０の永続的記憶装置にローカル的にキャッシュされても良い。
【００２２】
自動運転車１０１がルートに沿って移動する時、感知と計画システム１１０は、交通情報システムまたはサーバー（ＴＩＳ）からリアルタイムの交通情報を更に取得することができる。サーバー１０３〜１０４は、サードパーティーによって操作されてもよいことに注意すべきである。その代わりに、サーバー１０３〜１０４の機能は、感知と計画システム１１０と一体に集積されても良い。安全でかつ効率よく指定の目的地に到達するように、リアルタイムの交通情報、ＭＰＯＩ情報、位置情報及びセンサーシステム１１５によって検出またはセンシングされたリアルタイムのローカル環境データ（例えば、障害物、オブジェクト、付近車両）に基づいて、感知と計画システム１１０は、最適なルートを計画し、そして計画されたルートに基づき、例えば車両制御システム１１１を通じて車両１０１を運転する。
【００２３】
サーバー１０３は、各種の顧客のためにデータ分析サービスを実行するデータ分析システムであっても良い。一つの実施形態において、データ分析システム１０３は、データ収集器１２１と機械学習エンジン１２２を含む。データ収集器１２１は、各種の車両（自動運転車または人間の運転手によって運転される通常の車両）から運転統計データ１２３を収集する。運転統計データ１２３は、出された運転命令（例えば、スロットル、ブレーキ、ステアリング命令）及び車両のセンサーが異なる時刻で捕捉した車両の反応（例えば、速度、加速度、減速度、方向）を表す情報を含む。運転統計データ１２３は、異なる時刻における運転環境を表す情報、例えば、ルート（スタート位置と目的地位置を含む）、ＭＰＯＩ、道路状況、気候状況等を更に含んでもよい。
【００２４】
運転統計データ１２３に基づき、各種の目的のために、機械学習エンジン１２２は、ルールセット、アルゴリズム及び／または予測モデル１２４を生成及び/または訓練する。一つの実施形態において、アルゴリズム１２４は、オブジェクト衝突コスト、速度衝突コスト、方向衝突コスト及び／又は衝突位置の衝突コストを計算するために、アルゴリズム、コスト関数及び／又はコストマッピング表を含み、さらに、オブジェクト衝突コスト、速度衝突コスト、方向衝突コスト及び／又は衝突位置の衝突コストのうちの一つ又は複数に基づいて総衝突コストを特定するアルゴリズムを含んでも良い。アルゴリズム又はコスト関数１２４のうちの幾つかをＡＤＶにアップロードしてリアルタイムで用いることによって、このような状況での衝突損害を最小化させる経路を計算してもよい。
【００２５】
図３Ａと図３Ｂは、一つの実施形態による自動運転車と一緒に使用される感知と計画システムの例示を示すブロック図である。システム３００は、図１の自動運転車１０１の一部分として実装することができ、感知と計画システム１１０と、車両制御システム１１１と、センサーシステム１１５とを含むが、これらに限定されない。図３Ａと図３Ｂに示すように、感知と計画システム１１０は、測位モジュール３０１と、感知モジュール３０２と、予測モジュール３０３と、決定モジュール３０４と、計画モジュール３０５と、制御モジュール３０６と、ルーティングモジュール３０７と、衝突コスト計算機３０８とを含むが、これらに限定されない。
【００２６】
モジュール３０１〜３０８の中の幾つかまたは全部は、ソフトウェア、ハードウェアまたはその組み合わせとして実装することができる。例えば、これらのモジュールは、永続的記憶装置３５２にインストールされ、メモリ３５１にロードされ、一つまたは複数のプロセッサー（示さず）によって実行されても良い。これらのモジュールの中の幾つかまたは全部は、図２の車両制御システム１１１の幾つかまたは全部のモジュールと通信可能的に接続され、または一体に集積されることができることに注意すべきである。モジュール３０１〜３０８の中の幾つかは、一体に集積モジュールとして集積されても良い。例えば、衝突コスト計算機３０８は、計画モジュール３０５及び／又は制御モジュール３０６の一部として実装することができる。
【００２７】
測位モジュール３０１は、自動運転車３００の現在位置（例えば、ＧＰＳユニット２１２を使って）を特定し、ユーザーの行程またはルートに関する任意のデータを管理する。測位モジュール３０１（地図とルートモジュールとも呼ばれる）は、ユーザーの行程またはルートに関する任意のデータを管理する。ユーザーは、例えばユーザーインターフェースを通じてログインし、行程のスタート位置と目的地を指定することができる。測位モジュール３０１は、行程に関するデータを取得するために、地図とルート情報３１１のような、自動運転車３００のその他の部材と通信する。例えば、測位モジュール３０１は、位置サーバーと、地図とＰＯＩ（ＭＰＯＩ）サーバーから位置とルートの情報を取得できる。位置サーバーは位置サービスを提供し、ＭＰＯＩサーバーは地図サービスと幾つかの位置のＰＯＩを提供する。それらは、地図とルート情報３１１の一部分としてキャッシュできる。自動運転車３００がルートに沿って移動する時、測位モジュール３０１は、交通情報システムまたはサーバーからリアルタイムの交通情報を取得することができる。
【００２８】
センサーシステム１１５から提供されたセンサーデータと測位モジュール３０１から取得した定位情報に基づき、感知モジュール３０２は、周囲環境に対する感知を特定する。感知情報は、普通の運転手が運転している車両の周囲から感知する情報を表すことができる。感知は、オブジェクトの形で、例えば車道配置（例えば、直線車道または曲がる車道）、交通信号、もう一つの車両の相対位置、歩行者、建築物、横断歩道またはその他の交通関連標識（例えば、停止標識、譲れ標識）等を含むことができる。
【００２９】
感知モジュール３０２は、一つまたは複数のカメラから採集した画像を処理分析し、自動運転車の環境の中のオブジェクト及び／または特徴を識別するように、コンピュータビジョンシステムまたはコンピュータビジョンシステムの機能を含むことができる。前記オブジェクトは、交通信号、道路の境界、他の車両、歩行者及び／または障害物等を含むことができる。コンピュータビジョンシステムは、オブジェクト識別アルゴリズム、ビデオトラッキング及びその他のコンピュータビジョン技術を使うことができる。幾つかの実施形態においては、コンピュータビジョンシステムは環境地図を描き、オブジェクトを追跡し、オブジェクトの速度を見積もることができる。感知モジュール３０２は、さらに、例えばレーダー及び／またはＬＩＤＡＲ等のようなその他のセンサーから提供されたその他のセンターデータに基づき、オブジェクトを検出することができる。
【００３０】
各々のオブジェクトに対して、予測モジュール３０３は、オブジェクトがこの状況においてどう振舞うかを予測する。予測は、地図／ルート情報３１１と交通ルール３１２を考慮した上、運転環境をその時刻で感知した感知データに基づいて実行される。例えば、オブジェクトは反対方向の車両であり、かつ現在の運転環境は交差点を含むなら、予測モジュール３０３は、車両が直進するか、または曲がるかを予測する。感知データは、交差点に交通信号がないと表しているなら、予測モジュール３０３は、車両は交差点に進入する前に完全停車する必要があるかもしれないと予測する。感知データは、車両が現在左折専用車線または右折専用車線にあると表しているなら、予測モジュール３０３は、車両が左折または右折する可能性がより高いと予測する。
【００３１】
各々のオブジェクトに対して、決定モジュール３０４は、オブジェクトをどう処置するかの決定を下す。例えば、特定のオブジェクト（例えば、交差するルートの中の別の車両）及びオブジェクトを記述するメタデータ（例えば、速度、方向、操舵角）に対して、決定モジュール３０４は、如何にして前記オブジェクトと遭遇するか（例えば、追い越し、譲り、停止、通過）を決定する。決定モジュール３０４は、例えば交通ルールまたは運転ルール３１２のようなルール集に従ってこれらの決定を下すことができる。前記ルール集は、永続的記憶装置に記憶されても良い。
【００３２】
ルーティングモジュール３０７は、起点から目的地までの一つまたは複数のルートまたは経路を与えるように配置される。スタート位置から目的地の位置までの所与の行程（例えば、ユーザーから受け取った）に対して、ルーティングモジュール３０７は、ルートと地図情報３１１を取得し、スタート位置から目的地の位置に到達するまでの全ての可能なルートまたは経路を特定する。ルーティングモジュール３０７は、地形図の形式で、その特定したスタート位置から目的地の位置に到達するまでの各ルートに対して、基準線を生成することができる。基準線とは、他の車両、障害物または交通状況という他のものからの如何なる干渉も受けない理想的なルートまたは経路を指す。すなわち、道路上に、他の車両、歩行者または障害物がない場合、ＡＤＶは、精確にまたはぴったりと基準線に従うべきである。そして、地形図は、決定モジュール３０４及び／または計画モジュール３０５に提供される。他のモジュールによって提供された他のデータ（例えば、測位モジュール３０１からの交通状況、感知モジュール３０２によって感知された運転環境、及び予測モジュール３０３によって予測された交通状況）に基づき、決定モジュール３０４及び／または計画モジュール３０５は、全ての可能なルートを検査して、最適なルートの中から一つのルートを選択して修正する。ＡＤＶをコントロールするための実際のルートまたは経路は、ルーティングモジュール３０７によって提供された基準線と接近しても良く、異なってもい。それは、その時刻における特定の運転環境に依存する。
【００３３】
感知されたオブジェクトの中の各々に対する決定に基づき、計画モジュール３０５は、ルーティングモジュール３０７の提供した基準線をベースに、自動運転車のためにルートまたは経路及び運転パラメータ（例えば、距離、速度及び／または操舵角）を計画する。言い換えれば、所与のオブジェクトに対して、決定モジュール３０４は、当該オブジェクトに対して何をするかを決定し、計画モジュール３０５は、どのようにそれをするかを決定する。例えば、所与のオブジェクトに対して、決定モジュール３０４は前記オブジェクトを通過すると決定することが可能であり、計画モジュール３０５は前記オブジェクトの左側から通過するか、または右側から通過するかを決定することが可能である。車両３００が次の移動サイクル（例えば、次のルート／経路区間）でどのように移動するかに関する情報を含む計画と制御データは、計画モジュール３０５によって生成される。例えば、計画と制御データは、車両３００が時速３０マイル（ｍｐｈ）の速度で１０メートルだけ移動してから、２５ｍｐｈの速度で右側車線に変更すると指示することができる。
【００３４】
計画と制御データに基づき、制御モジュール３０６は、計画と制御データによって限定されたルートまたは経路に従って、適切な命令または信号を車両制御システム１１１に送信することにより、自動運転車を制御と運転する。経路またはルートに沿って異なる時刻において適切な車両設置または運転パラメータ（例えば、スロットル、ブレーキと操舵命令）を使用し、車両をルートまたは経路の第１の地点から第２の地点まで運転できるように、前記計画と制御データは、十分の情報を含む。
【００３５】
一つの実施形態において、計画段階は、（命令周期とも呼ばれる）多数の計画周期で（例えば、１００ミリ秒（ｍｓ）の時間間隔で）実行される。計画周期または命令周期の各々に対して、計画データと制御データに基づいて一つまたは複数の制御命令を発行する。即ち、計画モジュール３０５は、１００ｍｓ毎に、次のルート区間または経路区間を、例えば、オブジェクト位置及びＡＤＶがオブジェクト位置に到着するまでの時間を含んで、計画する。その代わりに、計画モジュール３０５は、具体的な速度、方向及び／または操舵角等を特定できる。一つの実施形態において、計画モジュール３０５は、次の所定時間間隔（例えば、５秒）のためにルート区間または経路区間を計画する。各計画周期に対して、計画モジュール３０５は、前の周期で計画したオブジェクト位置に基づき、現在の周期（例えば、次の５秒）に使用されるオブジェクト位置を計画する。そして、制御モジュール３０６は、現在の周期の計画データと制御データに基づき、一つまたは複数の制御命令（例えば、スロットル命令、ブレーキ命令、操舵制御命令）を生成する。
【００３６】
決定モジュール３０４と計画モジュール３０５は、集積モジュールとして集積されてもよいことに注意すべきである。自動運転車の運転経路を決定するために、決定モジュール３０４／計画モジュール３０５は、ナビゲーションシステムまたはナビゲーションシステムの機能を含んでもよい。例えば、自動運転車が感知した障害物を大体避けながら最終目的地に到達する車道に基づく経路に沿って移動するように、ナビゲーションシステムは、一連の速度と進行方向を特定することができる。目的地は、ユーザーインターフェースシステム１１３を経由して行われたユーザーの入力によって設定することができる。ナビゲーションシステムは、自動運転車が運行していると同時に、動的に運転経路を更新できる。自動運転車の運転経路を決定するために、ナビゲーションシステムは、ＧＰＳシステムからのデータと、一つまたは複数の地図のデータとを合併してもよい。
【００３７】
決定モジュール３０４／計画モジュール３０５は、自動運転車の環境における潜在的な障害物を識別したり、評価したり、回避したり、他の方法で通過したりするために、衝突防止システム又は衝突防止システムの機能を含んでも良い。例えば、衝突防止システムは、車両制御システム１１１のうちの一つ又は複数のサブシステムが方向転換動作、操舵動作、ブレーキ動作等を取ることによって、自動運転車のナビゲートされる時の変化を実現することができる。衝突防止システムは、周囲の交通モードと、道路状況等に基づいて、障害物を回避するための実行可能な動作を自動的に特定することができる。衝突防止システムは、他のセンサーシステムにより、自動運転車が方向転換して入ろうとする隣接エリアに位置する車両、建物障害物等が検出された場合、方向転換動作をしないように配置されることができる。衝突防止システムは、使用可能で、かつ自動運転車の乗員の安全性を最大化させる動作を自動的に選択することができる。衝突防止システムは、自動運転車の乗員室において最小量の加速を生じさせると予測する退避操作を選択することができる。
【００３８】
一つの実施形態において、計画モジュール３０５は、交通をナビゲートするの経路を計画してみるとき、計画モジュール３０５は、ＡＤＶの周囲の少なくとも一つのオブジェクトと衝突することが回避できないことを確定することが可能である。計画モジュール３０５は、ＡＤＶの操作状態（例えば、速度及び前進の方向）に基づき周囲の運転環境に応じてこのような状況を確定することが可能である。例えば、ＡＤＶの現在の速度が与えられる場合、前方の車両が突然に異常の減速率で減速する場合、最大のブレーキ命令が発行されても、ＡＤＶが依然として前方の車両と衝突する恐れがある。類似的に、ＡＤＶの速度が与えられると、後方の車両が異常の加速率で接近する場合、ＡＤＶは、最大限の加速率を指示する最大のスロットル命令が与えられても、依然として後方からの車両の衝突を回避できない。
【００３９】
衝突が回避できないと確定されたことに応じて、衝突コスト計算機３０８が呼び出されてＡＤＶの周囲の各々のオブジェクトに対して、例えばコスト関数３１３を使用して、衝突コストを計算する。コスト関数３１３は、データ分析システム１０３により、様々な道路で走行する様々な車両から集められた運転統計データに基づいて作ったり訓練したりすることができる。計画モジュール３０５によっては、最小限の衝突コストを有するオブジェクトの中の一つのオブジェクトを選択することができる。計画モジュール３０５は、選択されたオブジェクトと衝突するように、選択されたオブジェクトへの経路を計画する。よって、他の物体と衝突したことによる損害に比べ、上述した衝突による損害を最小限にすることが確保できる。
【００４０】
図４は、特定の運転環境の例示を示している。図４に示すように、当該例示においては、ＡＤＶ４０１がオブジェクト４１１〜４１５に囲まれている。ＡＤＶ４０１の計画モジュール３０５は、感知モジュール３０２により提供された運転環境の感知情報及び予測モジュール３０３により提供されたオブジェクト４１１〜４１５の行動予測に基づき、オブジェクト４１１〜４１５のうちの少なくとも一つのオブジェクトと衝突することが回避できないことを確定する。例えば、ＡＤＶ４０１の速度と前方の車両４１１の速度との間の差異、及び、現在のＡＤＶ４０１と前方の車両４１１との間の距離から、ＡＤＶ４０１に最大のブレーキ命令を発行しても、ＡＤＶ４０１は、依然として車両４１１と衝突する可能性がある。同時に、隣接する車道には、オブジェクト４１２、４１３及び４１５が存在している。ＡＤＶ４０１は、車道を変えることを試みるならば、ＡＤＶ４０１は、オブジェクト４１２、４１３又は４１５のうちの一つのオブジェクトと衝突する可能性が高い。
【００４１】
類似的に、ＡＤＶ４０１の速度と後方から接近する車両４１４の速度との間の差分、及び、ＡＤＶ４０１と車両４１４との間の距離が与えられると、ＡＤＶ４０１は、車両４１４がＡＤＶ４０１の後端と衝突する可能性が高いかを確定することができる。衝突を避けるために、ＡＤＶ４０１は、前へ加速しなければならない可能性がある。加速するために、最大のスロットル命令をＡＤＶ４０１に用いても、車両４１４は、依然としてＡＤＶ４０１の後端と衝突する。また、前方に他の一台の車両４１１が存在しているので、ＡＤＶ４０１は、加速し過ぎると、ＡＤＶ４０１は、車両４１１と衝突する可能性がある。ＡＤＶ４０１は、車道を変えれば、ＡＤＶ４０１は、オブジェクト４１２、４１３及び４１５の中の少なくとも一つのオブジェクトと衝突する可能性がある。よって、衝突が避けられないが、ＡＤＶ４０１は、オブジェクト４１１〜４１５の中のどのオブジェクトと衝突すれば、損害を最小にすることができるかは、課題になる。
【００４２】
一つの実施形態においては、衝突コスト計算機３０８は、１組のコスト関数又はコストアルゴリズム３１３を用いてオブジェクト４１１〜４１５の中の各オブジェクトの衝突コストを計算する。従って、オブジェクト４１１〜４１５の中の各オブジェクトに対して計算された衝突コストが存在している。オブジェクトの種類、オブジェクトの速度、オブジェクトの進行方向及び／又は車両の衝突箇所に基づいてオブジェクトの衝突コストを計算する。オブジェクト４１１〜４１５と関連付ける衝突コストに基づき、計画モジュール３０５は、オブジェクト４１１〜４１５から衝突コストが最小である一つのオブジェクトを選択し、選択されたオブジェクトへの経路を計画することによって、ＡＤＶ４０１は、選択されたオブジェクトと衝突するようにさせる。例えば、オブジェクト４１５は、全てのオブジェクト４１１〜４１５において衝突コストが最小であると仮定する。当該例示においては、オブジェクト４１５は、電柱又はゴミ箱のような静的障害物であると仮定する。計画モジュール３０５は、オブジェクト４１５を選択して経路又は軌跡を計画することによって、ＡＤＶ４０１は、オブジェクト４１５と衝突することを許す。このように計画するのは、ＡＤＶを、なるべく人に与える傷害が少ない又は完全に傷害がないオブジェクトと衝突させることを目的とする。
【００４３】
図５は、一つの実施形態による衝突コスト計算機を示すブロック図である。図５に示すように、衝突コスト計算機３０８は、オブジェクトの衝突コスト計算機５０１と、速度衝突コスト計算機５０２と、方向衝突コスト計算機５０３と、衝撃位置衝突コスト計算機５０４とを備える。オブジェクト衝突コスト計算機５０１は、オブジェクトの種類に基づいてＡＤＶとオブジェクトの衝突に対してオブジェクト衝突コストを計算するように配置されている。一つの実施形態においては、オブジェクト衝突コスト計算機５０１は、オブジェクトと衝突コスト（オブジェクト／コスト）マッピング表５１１を用いることによって、オブジェクト衝突コストを計算する。オブジェクト／コストマッピング表５１１は、異なる種類のオブジェクトを、対応する衝突コストにマッピングするように配置されている。
【００４４】
図６Ａは、一つの実施形態によるオブジェクト／コストマッピング表の例示を示す図である。図６Ａに示すように、オブジェクト／コストマッピング表６００は、複数のマッピングエントリを含む。それぞれのマッピングエントリは、特定の種類のオブジェクト６０１を対応する衝突コスト６０２にマッピングする。図６Ａに示すように、人に関するオブジェクトの衝突コストが静的障害物に関するオブジェクトの衝突コストより高くなる。当該例において、通行人に関する衝突コストが静的障害物に関するオブジェクトの衝突コストより高くなる。その理由としては、通行人との衝突が通行人に傷害を与える可能性が高くなる一方、静的障害物との衝突が誰にも傷害を与えない可能性があるからである。類似的に、通行人の衝突コストは、車両の衝突コストより高くなる。その理由としては、車両内の運転手又は乗員が車両のフレームによってより良く保護されるので、潜在的な傷害が通行人との衝突による傷害より低いからである。人身傷害を招く如何なる衝突でも、より高い衝突コストを有する。
【００４５】
図５に戻り、速度衝突コスト計算機５０２は、速度衝突コスト関数５１２を用い、ＡＤＶの速度とオブジェクトの速度との差に基づき、ＡＤＶとオブジェクトの速度衝突コストを計算するように設置されている。速度衝突コスト関数５１２は、図６Ｂに示す曲線と類似する曲線で表すことができる。速度衝突コスト関数は、ｙ  ＝  ａ  ＊  ｅbx  ＋  ｃで表すことができ、但し、ｘは、速度の差異を示し、ｙは、速度衝突コストを示している。過去の運転統計データに基づいて係数ａ、ｂ及びｃを訓練して配置することができる。図６Ｂに示すように、比較的大きい速度の差は、比較的高い速度衝突コストを招き、その理由としては、速度の差が比較的高くなると、衝突の衝撃が大きいからである。
【００４６】
一つの実施形態において、方向衝突コスト計算機５０３は、方向衝突コスト関数５１３を用い、ＡＤＶの進行方向とオブジェクトの進行方向の差に基づき、ＡＤＶとオブジェクトの方向衝突コストを計算する。静的障害物が移動しないので、静的障害物の進行方向は、静的障害物が所在する車道又は道路の方向と同じ方向であると見なされる。方向衝突コスト関数５１３は、図６Ｃに示す曲線と類似する曲線で表すことができる。方向衝突コスト関数は、ｙ  ＝  ａ  ＊  ｅbx  ＋  ｃで表すことができ、但し、ｘは、進行方向の差異を示し、ｙは、方向衝突コストを示している。過去の運転統計データに基づいて係数又はパラメータａ、ｂ及びｃを訓練して配置することができる。図６Ｃに示すように、大きい進行方向の差は、高い方向衝突コストを招き、その理由としては、進行方向の差が大きくなると、衝突の衝撃が大きいからである。
【００４７】
一つの実施形態において、衝撃位置衝突コスト計算機５０４は、衝撃位置衝突コスト関数５１４を用い、ＡＤＶとオブジェクトの潜在的な衝突又は衝撃に基づき、衝撃位置衝突コストを計算するように配置されている。具体的には、特定の実施形態により、潜在的な衝突が生じた際に、ＡＤＶの運転手又は乗員とＡＤＶの衝突又は衝撃位置の間の距離に基づき、衝撃位置衝突コストを決める。衝撃位置衝突コスト関数５１４は、図６Ｄに示す曲線と類似する曲線で表すことができる。衝撃位置衝突コスト関数は、ｙ  ＝  ａ  ＊  ｅb/x  ＋  ｃで表すことができ、但し、ｘは、進行方向の差を示している。過去の運転統計データに基づいて係数又はパラメータａ、ｂ及びｃを訓練して配置することができる。具体的な実施形態においては、衝撃位置衝突コスト関数は、ｙ  ＝  ｅ1/x  −  １で表されている。図６Ｄに示すように、ＡＤＶの運転手又は乗員とＡＤＶの衝突位置の間の距離が大きくなると、コストがより低くなり、その理由としては、運転手又は乗員に与える潜在的な損害がより低いからである。
【００４８】
前記衝撃位置衝突コスト関数は、自己衝撃位置衝突コストと呼ばれ、ＡＤＶの運転手又は乗員とＡＤＶの衝突位置の間の距離に基づくものである。一つの実施形態により、オブジェクトの衝突位置とオブジェクトの乗用者又は乗員の間の距離に基づいてオブジェクトの衝撃位置衝突コストを計算する。オブジェクトは車両であれば、少なくとも運転手が車両に乗用していると仮定する。オブジェクトは、静的オブジェクトであれば、オブジェクトの衝撃位置衝突コストはゼロである。総衝撃位置衝突コストは、予め決められた式を用い、自己衝撃位置衝突コスト及びオブジェクトの衝撃位置衝突コストに基づいて、例えば、この２つの衝撃位置衝突コストに対して加算及び／又は乗算することにより決められる。
【００４９】
一つの実施形態においては、予め決められた式（例えば、重み付け式）を用い、オブジェクト衝突コスト、速度衝突コスト、方向衝突コスト及び衝撃位置衝突コストに基づいて総又は最終的な衝突コストを決める。一つの具体的な実施形態においては、総衝突コストは、次の式に基づいて決めることができる。
総コスト＝オブジェクト衝突コスト＊衝撃位置衝突コスト＊（速度衝突コスト＋方向衝突コスト）
【００５０】
図７は、一つの実施形態において自動運転車を操作するプロセスを示すフローチャート図である。プロセス７００は、ソフトウェア、ハードウェア又はその組み合わせを含む処理ロジックにより実行することができる。例えば、プロセス７００は、衝突コスト計算機３０８により実行することができる。図７に示すように、操作７０１においては、ＡＤＶとＡＤＶの周囲のオブジェクトの相対位置及び相対速度に基づき、ＡＤＶの物理的な制限を踏まえて、ＡＤＶが必ずオブジェクトの中の少なくとも一つのオブジェクトと衝突することを確定する。ＡＤＶの物理的な制限は、ＡＤＶの最大の加速度又は最大の減速度を含む。操作７０２においては、各オブジェクトに対して１つ又は複数の衝突コスト関数の集合を用いてＡＤＶとオブジェクトの衝突コストを計算する。衝突コストは、衝突が生じた際の潜在的な損害量を示している。操作７０３においては、全てのオブジェクトから衝突コストが最も低い１つのオブジェクトを選択する。操作７０４においては、選択されたオブジェクトへの軌跡を計画することによって、ＡＤＶと選択されたオブジェクトの潜在的な衝突が生じた際の潜在的な損害を最小化する。
【００５１】
図８は、一つの実施形態によるオブジェクトに関する衝突コストを計算するプロセスを示すフローチャート図である。プロセス８００は、操作７０２に係る操作の一部として実行することができる。図８に示すように、操作８０１においては、オブジェクトの種類に基づいてオブジェクト衝突コストを計算する。一つの実施形態においては、オブジェクトの種類に基づいてオブジェクト／コストマッピング表の中において検索操作を行ってオブジェクト衝突コストを取得する。操作８０２においては、ＡＤＶとオブジェクトの速度の差に基づき、速度衝突コスト関数を用いて速度衝突コストを計算する。操作８０３においては、ＡＤＶとオブジェクトの進行方向の差に基づき、方向衝突コスト関数を用いて方向衝突コストを計算する。操作８０４においては、潜在的な衝突の衝突又は衝撃位置に基づき、衝撃位置衝突コスト関数を用いて衝撃位置衝突コストを計算する。衝撃位置衝突コストは、自己衝撃位置衝突コスト及び対象衝撃位置衝突コストを含む。操作８０５においては、オブジェクト衝突コスト、速度衝突コスト、方向衝突コスト及び衝撃位置衝突コストに基づいて総衝突コストを決める。
【００５２】
前記文章で示され、説明された部材の中の幾つかまたは全部は、ソフトウェア、ハードウェアまたはその組み合わせとして実装することができる。例えば、この種類の部材は、永続的な記憶装置にインストールされ、かつ記憶されるソフトウェアとして実装することができる。当該ソフトウェアは、プロセッサー（図示せず）を通じてメモリにロードし、メモリの中で本願を貫いて説明したプロセスまたは操作を実行する。代替できるように、この種類の部材は、専用ハードウェア（例えば、集積回路（例えば、専用集積回路またはＡＳＩＣ）、デジタルシグナルプロセッサー（ＤＳＰ）または現場でプログラム可能なゲートアレイ（ＦＰＧＡ））にプログラムされたまたは埋め込まれた実行可能なコードとして実装することができる。当該実行可能なコードは、アプリケーションからの対応する駆動プログラム及び／またはオペレーティングシステムを通じてアクセスすることができる。さらに、この種類の部材は、ソフトウェアが一つまたは複数の特定の命令でアクセスできる命令集の一部分となるように、プロセッサーまたはプロセッサーのコアの中の特定のハードウェアロジックとして実装することができる。
【００５３】
図９は、本願の一つの実施形態と共に使用されるデータ処理システムの例示を示すブロック図である。例えば、システム１５００は、図１の感知と計画システム１１０またはサーバー１０３〜１０４の中の任意の一つのような、前記のプロセスまたは方法を実行する前記の任意のデータ処理システムの中の任意の一つを表すことができる。システム１５００は、多数の異なる部材を含むことができる。これらの部材は、集積回路（ＩＣ）、集積回路の一部分、独立な電子装置、または回路基板（例えば、コンピュータシステムのマザーボードまたはアドインカード）に用いられるその他のモジュールとして実装することができ、またはその他の方式でコンピュータシステムのシャーシに組み入れられる部材として実装することができる。
【００５４】
システム１５００の趣旨は、コンピュータシステムの複数の部材の高レベルの様子を示すことにあることに注意すべきである。幾つかの実施形態においては、付加的部材を有することができ、また、他の実施形態においては、図示部材の異なる配置を有することができる。システム１５００は、デスクトップコンピュータ、ラップトップコンピューター、タブレットコンピュータ、サーバー、携帯電話、メディアプレーヤー、パーソナルデジタルアシスタント（ＰＤＡ）、スマートウォッチ、パーソナルコミュニケータ、ゲーム装置、ネットワークルーターまたはハブ、ワイヤレスアクセスポイント（ＡＰ）またはリピーター、セットトップボックスまたはこれらの組み合わせを表すことができる。さらに、シングルの機器またはシステムしか示されていないが、用語“機器”または“システム”は、本願で検討した任意の一つまたは複数の方法を実行するように、単独的にまたは共同的に一つ（または複数の）命令集を実行する機器またはシステムの任意の集まりであると理解されるべきである。
【００５５】
一つの実施形態において、システム１５００は、バスまたはインターコネクト１５１０と通じて連結されるプロセッサー１５０１、メモリ１５０３及び装置１５０５〜１５０８を含む。プロセッサー１５０１は、シングルのプロセッサーコアまたは複数のプロセッサーコアを含むシングルのプロセッサーまたは複数のプロセッサーを表すことができる。プロセッサー１５０１は、一つまたは複数の、例えばマイクロプロセッサー、中央処理装置（ＣＰＵ）などのような汎用プロセッサーを表すことができる。より具体的に、プロセッサー１５０１は、複合命令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサー、縮小命令セットコンピューティング（ＲＩＳＣ）マイクロプロセッサー、超長命令語（ＶＬＩＷ）マイクロプロセッサー、またはその他の命令集を実行するプロセッサー、または命令集の組み合わせを実行するプロセッサーであっても良い。プロセッサー１５０１は、例えば、専用集積回路（ＡＳＩＣ）、移動体またはベースバンドプロセッサー、現場でプログラム可能なゲートアレイ（ＦＰＧＡ））、デジタルシグナルプロセッサー（ＤＳＰ）、ネットワークプロセッサー、グラフィックスプロセッサー、通信プロセッサー、暗号化プロセッサー、コプロセッサー、組み込みプロセッサー、または命令を処理できる任意のその他のタイプのロジックのような、一つまたは複数の専用プロセッサーであっても良い。
【００５６】
プロセッサー１５０１（低電力マルチコアプロセッサーソケットであっても良く、例えば超低電圧プロセッサー）は、前記システムの各種部材との通信の主プロセッサーユニットと中央ハブとして振舞うことができる。この種類のプロセッサーは、システムオンチップＩ（ＳｏＣ）として実装することができる。プロセッサー１５０１は、本願で議論した操作とプロセスを実行するための命令を実行するように配置される。システム１５００は、ディスプレイコントローラ、図形プロセッサー及び／またはディスプレイ装置を含むオプションの図形サブシステム１５０４と通信する図形インターフェースをさらに含むことができる。
【００５７】
プロセッサー１５０１は、メモリ１５０３と通信することができる。一つの実施形態において、メモリ１５０３は、複数のメモリ装置によって規定の量のシステムメモリを提供するように実装されることができる。メモリ１５０３は、例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、またはその他のタイプのメモリ装置のような、一つまたは複数の揮発性ストレージ（またはメモリ）装置を含むことができる。メモリ１５０３は、プロセッサー１５０１またはその他の任意の装置によって実行する命令シーケンスを含む情報を保存することができる。例えば、各種のオペレーティングシステム、デバイスドライバ、ファームウェア（例えば、入出力基本システムまたはＢＩＯＳ）、および／またはアプリケーションの実行可能なコード及び／またはデータは、メモリ１５０３にロードされ、プロセッサー１５０１に実行されることができる。オペレーティングシステムは、任意タイプのオペレーティングシステムであっても良く、例えば、ロボットオペレーティングシステム（ＲＯＳ）、Ｍｉｃｒｏｓｏｆｔ（登録商標）のＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム、ＡｐｐｌｅのＭａｃＯＳ（登録商標）／ｉＯＳ（登録商標）、Ｇｏｏｇｌｅ（登録商標）のＡｎｄｒｏｉｄ（登録商標）、ＬＩＮＵＸ、ＵＮＩＸ（登録商標）、その他のリアルタイムまたは組み込みオペレーティングシステムであっても良い。
【００５８】
システム１５００は、例えば、オプションのネットワークインターフェース装置１５０５、オプションの入力装置１５０６、及びその他のオプションのＩＯ装置１５０７を含む装置１５０５〜１５０８のようなＩＯ装置を更に含むことができる。ネットワークインターフェース１５０５は、無線トランシーバ及び／またはネットワークインターフェースカード（ＮＩＣ）を含むことができる。前記無線トランシーバは、ＷＩＦＩトランシーバ、赤外トランシーバ、ブルートゥーストランシーバ、ＷｉＭａｘトランシーバ、無線移動体電話トランシーバ、衛星トランシーバ（例えば、グローバル・ポジショニング・システム（ＧＰＳ））、またはその他の無線周波数（ＲＦ）トランシーバまたはそれらの組み合わせであっても良い。ＮＩＣはイーサネット（登録商標）カードであっても良い。
【００５９】
入力装置１５０６は、マウス、タッチパッド、タッチセンシティブ画面（表示装置１５０４と一体に集積されて）、ポインター装置（例えば、スタイラスペン）、および／またはキーボード（例えば物理的キーボード、またはタッチセンシティブ画面の一部分として表示される仮想キーボード）を含むことができる。例えば、入力装置１５０６は、タッチパネルに接続するタッチパネルコントローラを含むことができる。タッチパネルとタッチパネルコントローラは、例えば複数の種類のタッチセンシティブ技術（キャパシタンス、抵抗、赤外線および表面音波技術を含むが、これらに限定されない）を使用することができ、またはその他の類似するセンサーアレイまたはタッチパネルと接触する一つまたは複数の点を特定するために用いられるその他のデバイスを使用し、接触、移動または中断を検出することができる。
【００６０】
ＩＯ装置は、オーディオ装置を含むことができる。オーディオ装置は、例えば音声識別、音声複製、デジタル記録及び／または電話機能等の音の機能のサポートを促進するために、スピーカー及び／またはマイクロホンを含むことができる。その他のＩＯ装置１５０７は、ユニバーサル・シリアル・バス（ＵＳＢ）ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ（例えばＰＣＩ−ＰＣＩブリッジ）、センサー（例えば、加速度計運動センサー、ジャイロ、磁力計、光センサー、コンパス、近接センサー等）またはその組み合わせを更に含むことができる。装置１５０７は、画像処理サブシステム（例えば、カメラ）を更に含むことができる。当該画像処理サブシステムは、例えば電荷結合素子（ＣＣＤ）または相補型金属酸化物半導体（ＣＭＯＳ）光センサーのような、カメラ機能（例えば、写真やビデオクリップを記録する）を促進するために使用される光センサーを含むことができる。幾つかのセンサーは、センサーハブ（図示せず）を経由してインターコネクト１５１０に接続しても良く、例えばキーバードまたは熱センサーのようなその他の装置は、システム１５００の具体的な配置または設計に従って埋め込み式コントローサ（図示せず）によってコントロールされても良い。
【００６１】
データ、アプリケーション、一つまたは複数のオペレーティングシステム等の情報に対する永続的な保存を提供するために、大容量記憶装置（図示せず）はプロセッサー１５０１に接続しても良い。各種の実施形態において、より薄くより軽いシステム設計を実現し、システム応答性を改善するために、この種の大容量記憶装置は、ソリッドステートドライブ（ＳＳＤ）によって実装しても良い。しかし、その他の実施形態において、大容量記憶装置は、主にハードディスクドライブ（ＨＤＤ）を使用して実装し、それに加えて容量の比較的に小さいＳＳＤ記憶装置をＳＳＤキャッシとして使用し、これによって電源が切られたイベントおいて文脈状態及びその他のこの種類の情報の非揮発性保存を実現し、システムの活動が再び起動する時に素早い電源投入を実現する。なお、フラッシュメモリ装置は、例えばシリアル・ペリフェラル・インタフェース（ＳＰＩ）を経由してプロセッサー５０１に接続しても良い。この種類のフラッシュメモリ装置は、前記システムのＢＩＯＳ及びその他のファームウェアを含むシステムソフトウェアの非揮発性保存を提供する。
【００６２】
記憶装置１５０８は、本願で記述した一つまたは複数の方法または機能を具体的に表現する一つまたは複数の命令集またはソフトウェア（例えば、モジュール、ユニットまたはロジック１５２８）を記憶する、コンピュータのアクセス可能記憶メディア１５０９（機器可読媒体、コンピュータ読み取り可能メディアとも呼ばれる）を含むことができる。処理モジュール／ユニット／ロジック１５２８は、例えばドリフト補正モジュール３０８のような、前記部材の中の任意の一つを表すことができる。処理モジュール／ユニット／ロジック１５２８は、データ処理システム１５００、メモリ１５０３とプロセッサー１５０１によって実行されている期間において、完全にまたは少なくとも部分的にメモリ１５０３及び／またはプロセッサー１５０１の中に駐留することができ、メモリ１５０３とプロセッサー１５０１もコンピュータのアクセス可能な記憶メディアを構成する。処理モジュール／ユニット／ロジック１５２８は、ネットワークを通じて、ネットワークインターフェース装置１５０５を経由して送信と受信を行うことができる。
【００６３】
コンピュータ読み取り可能メディア１５０９は、前記で説明した幾つかのソフトウェア機能を永続的に記憶するためにも使用される。コンピュータ読み取り可能メディア１５０９は、例示的な実施形態においてはシングルのメディアとして示されているが、用語“コンピュータ読み取り可能メディア”は、前記一つまたは複数の命令集を記憶するシングルのメディアまたは複数のメディア（例えば、集中式または分布式データベース及び／または関連するキャッシュとサーバー）を含むと理解すべきである。用語“コンピュータ読み取り可能メディア”は、機器によって実行され、かつ本願の任意の一つまたは複数の方法を当該機器に実行させる命令集を、記憶するまたはエンコードすることができる任意のメディアを含むと理解すべきである。故に、用語“コンピュータ読み取り可能メディア”は、ソリッド・ステート・メモリ、光メディアと磁気メディア、または任意のその他の非一時的な機器可読媒体を含むが、これらに限定されないと理解すべきである。
【００６４】
本願で説明する処理モジュール／ユニット／ロジック１５２８、部材及びその他の特徴は、独立なハードウェア部材として実装しても良く、ハードウェア部材（例えば、ＡＳＩＣＳ、ＦＰＧＡ、ＤＳＰまたは類似の装置）の機能の中に集積しても良い。さらに、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置の中のファームウェアまたは機能回路として実装しても良い。なお、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置とソフトウェア部材との任意の組み合わせとして実装しても良い。
【００６５】
システム１５００は、データ処理システムの各種の部材を有するように示されているが、部材が互いに接続する任意の特定のアーキテクチャまたは方式を表すことではない。これは、この種類の詳細は本願の実施形態と密接な関係がないからである。より少ない部材またはより多い部材を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバー、および／または他のデータ処理システムは、本願の実施形態と一緒に使用しても良いと認識すべきである。
【００６６】
前述の詳細な説明の中の一部分は、コンピュータメモリ内のデータビットに対する演算のアルゴリズムおよび記号表現に従って提示した。これらのアルゴリズム記述および表現は、データ処理領域の当業者が、仕事の本質を最も有効的に同じ領域の当業者に伝えるように、使用する方式である。本願において、アルゴリズムは、予期の結果をもたらすセルフコンシステント操作のシーケンスであると一般的に考えられる。これらの操作は、物理量に対して物理的な動作を行う必要がある操作であることを指す。
【００６７】
これらのすべての用語と類似の用語は、適切な物理量と関連するためのものであり、便宜上にこれらの量に応用される標識に過ぎないと理解すべきである。以上の議論においてその他の方式で明確的に表明している時以外に、本願全体において、用語（例えば付属の特許請求の範囲の中で説明する用語）を利用して行った討論は、コンピュータシステムまたは類似の電子計算装置の動作と処理を指す。前記コンピュータシステムまたは類似の電子計算装置は、コンピュータシステムのレジスターとメモリの中の、物理（電子）量として表されているデータを動作し、前記データを、コンピュータシステムのメモリまたはレジスターまたはその他のこのような情報の記憶装置、転送装置またはディスプレイ装置の中の、類似的に物理量として表されているその他のデータへ変換する。
【００６８】
本願の実施形態は、本願文章の中の操作を実行するために用いられる設備にも関わる。この種のコンピュータプログラムは、非一時的なコンピュータ読み取り可能メディアの中に記憶される。機器可読媒体は、機器（例えば、コンピュータ）読み取り可能な形式で情報を記憶する任意の機構を含む。例えば、機器読み取り可能（例えば、コンピュータ読み取り可能）メディアは、機器（例えば、コンピュータ）読み取り可能な記憶メディア（例えば、リードオンリーメモリ（“ＲＯＭ”）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶メディア、光記憶メティア、フラッシュメモリ装置）を含む。
【００６９】
前記図面の中で説明されたプロセスまたは方法は、ハードウェア（例えば、回路、専用ロジックなど）、ソフトウェア（例えば、非一時性コンピュータ読み取りメディアに具現して）またはその組み合わせを含む処理ロジックによって実行されても良い。前記プロセスまたは方法は、上記の文章おいて幾つかの順序操作によって説明されていたが、前記操作の中の幾つかは異なる順序で実行されても良いと理解すべきである。さらに、幾つかの操作は、順序で実行されるのではなく、並列的に実行されても良い。
【００７０】
本願の実施形態は、何らかの特定のプログラミング言語を参考にして説明されているものではない。説明した本願の実施形態の教えは、複数のプログラミング言語を使って実装することができると認識すべきである。
【００７１】
以上の明細書において、本願の具体的で例示性のある実施形態を参考にして、本願の実施形態に対して説明を行った。添付する特許の請求範囲の中で論述した本願のより広範な精神と範囲を逸脱しない限り、本発明に対して各種の修正をすることができる。故に、制限性の意味ではなく、説明性の意味で本明細書と図面を理解すべきである。
【図１】
0006861272.tif 000002
【図２】
0006861272.tif 000003
【図３Ａ】
0006861272.tif 000004
【図３Ｂ】
0006861272.tif 000005
【図４】
0006861272.tif 000006
【図５】
0006861272.tif 000007
【図６Ａ】
0006861272.tif 000008
【図６Ｂ】
0006861272.tif 000009
【図６Ｃ】
0006861272.tif 000010
【図６Ｄ】
0006861272.tif 000011
【図７】
0006861272.tif 000012
【図８】
0006861272.tif 000013
【図９】
0006861272.tif 000014