(57)【特許請求の範囲】
【請求項１】
ネットワークを介して、複数の自律走行車に通信可能に接続されるクラウドサーバが、前記複数の自律走行車からそれぞれの車両ＩＤおよび車両情報を周期的に受信するステップと、
前記クラウドサーバが、前記車両情報に基づき、前記複数の自律走行車の地理的隣接情報を記憶する隣接車両データ構造を更新するステップと、
前記クラウドサーバが、前記隣接車両データ構造に基づき、前記複数の自律走行車のうちの第１の自律走行車の所定の地理的近接度内の１つまたは複数の自律走行車を決定するステップであって、前記所定の地理的近接度は、前記第１の自律走行車の走行に影響を与える可能性がある距離である、ステップと、
前記第１の自律走行車が、前記クラウドサーバから前記１つまたは複数の自律走行車の前記車両ＩＤのリストを受信するステップと、
前記第１の自律走行車が、前記車両ＩＤのリストにおける前記１つまたは複数の自律走行車から選択した第２の自律走行車と無線ローカルエリアネットワークを介して通信して、前記第２の自律走行車と走行状態を交換するステップと、を含み、
前記隣接車両データ構造はｋ−次元（ｋ−ｄ）木を含み、その中で、前記ｋ−ｄ木は階層構造の複数のノードを含み、各ノードは前記クラウドサーバで管理される前記複数の自律走行車のうちの１つに対応し、
前記１つまたは複数の自律走行車を決定するステップにおいて、前記クラウドサーバは、前記隣接車両データ構造において、与えられた入力点に最も近いｋ−ｄ木上の点を探す最近傍検索を実行して、前記１つまたは複数の自律走行車を決定する、
自律走行車間に車両間通信を提供するための方法。
【請求項２】
前記車両ＩＤのリストにおける自律走行車は、前記第１の自律走行車の位置情報、および前記１つまたは複数の自律走行車の位置情報に基づいて決定される
請求項１に記載の方法。
【請求項３】
前記リストにおける各車両ＩＤは、対応する自律走行車に関連付けられたインターネットプロトコル（ＩＰ）アドレスおよびドメインを含み、前記無線ローカルエリアネットワークによる通信に用いられる
請求項１に記載の方法。
【請求項４】
前記走行状態は、前記第１の自律走行車が現在前記第１の自律走行車の占有している第１の車線から現在前記第２の自律走行車の占有している第２の車線に変更しようとする状態である
請求項１に記載の方法。
【請求項５】
前記第２の自律走行車は、前記クラウドサーバを利用してその車両情報を周期的に更新し、
前記第２の自律走行車は、前記クラウドサーバから、前記第１の自律走行車を含む１つまたは複数の周辺自律走行車の第２のリストを受信する
請求項１に記載の方法。
【請求項６】
第１および第２の命令が記憶された非一時的機械可読媒体であって、
前記第１の命令は、複数の自律走行車に通信可能に接続されるクラウドサーバの第１のプロセッサにより実行される場合、前記第１のプロセッサに第１の手段を実行させ、
前記第２の命令は、前記複数の自律走行車の中の第１の自律走行車の第２のプロセッサにより実行される場合、前記第２のプロセッサに第２の手段を実行させ、
前記第１の手段は、
ネットワークを介して、前記クラウドサーバが、前記複数の自律走行車からそれぞれの車両ＩＤおよび車両情報を周期的に受信する手段と、
前記クラウドサーバが、前記車両情報に基づき、前記複数の自律走行車の地理的隣接情報を記憶する隣接車両データ構造を更新する手段と、
前記クラウドサーバが、前記隣接車両データ構造に基づき、前記第１の自律走行車の所定の地理的近接度内の１つまたは複数の自律走行車を決定する手段であって、前記所定の地理的近接度は、前記第１の自律走行車の走行に影響を与える可能性がある距離である、手段と、
前記クラウドサーバが、前記１つまたは複数の自律走行車の前記車両ＩＤのリストを前記ネットワークを介して前記第１の自律走行車に伝送する手段と、を含み、
前記第２の手段は、
前記第１の自律走行車が、前記車両ＩＤのリストにおける前記１つまたは複数の自律走行車から選択した第２の自律走行車と無線ローカルエリアネットワークを介して通信して、前記第２の自律走行車と走行状態を交換する手段を含み、
前記隣接車両データ構造はｋ−次元（ｋ−ｄ）木を含み、前記ｋ−ｄ木は階層構造の複数のノードを含み、各ノードは前記クラウドサーバで管理される前記複数の自律走行車のうちの１つに対応し、
１つまたは複数の自律走行車を決定する手段は、前記隣接車両データ構造において、与えられた入力点に最も近いｋ−ｄ木上の点を探す最近傍検索を実行して、前記１つまたは複数の自律走行車を決定する、
非一時的機械可読媒体。
【請求項７】
前記車両ＩＤのリストにおける自律走行車は、前記第１の自律走行車の車両情報、および前記１つまたは複数の自律走行車の車両情報に基づいて決定される
請求項６に記載の非一時的機械可読媒体。
【請求項８】
前記リストにおける各車両ＩＤは、対応する自律走行車に関連付けられたインターネットプロトコル（ＩＰ）アドレスおよびドメインを含み、前記無線ローカルエリアネットワークによる通信に用いられる
請求項６に記載の非一時的機械可読媒体。
【請求項９】
前記走行状態は、前記第１の自律走行車が現在前記第１の自律走行車の占有している第１の車線から現在前記第２の自律走行車の占有している第２の車線に変更しようとする状態である
請求項６に記載の非一時的機械可読媒体。
【請求項１０】
前記第２の自律走行車は、前記クラウドサーバを利用してその車両情報を周期的に更新し、
前記第２の自律走行車は、前記クラウドサーバから、前記第１の自律走行車を含む１つまたは複数の周辺自律走行車の第２のリストを受信する
請求項６に記載の非一時的機械可読媒体。
【請求項１１】
複数の自律走行車に通信可能に接続されるクラウドサーバの第１のプロセッサと、
前記第１のプロセッサに接続され、第１の命令を記憶するために用いられる前記クラウドサーバの第１のメモリと、
前記複数の自律走行車の中の第１の自律走行車の第２のプロセッサと、
前記第２のプロセッサに接続され、第２の命令を記憶するために用いられる前記第１の自律走行車の第２のメモリと、を含み、
前記第１の命令は、前記第１のプロセッサにより実行される場合、前記第１のプロセッサに第１の手段を実行させ、
前記第２の命令は、前記第２のプロセッサにより実行される場合、前記第２のプロセッサに第２の手段を実行させ、
前記第１の手段は、
ネットワークを介して、前記クラウドサーバが、前記複数の自律走行車からそれぞれの車両ＩＤおよび車両情報を周期的に受信する手段と、
前記クラウドサーバが、前記車両情報に基づき、前記複数の自律走行車の地理的隣接情報を記憶する隣接車両データ構造を更新する手段と、
前記クラウドサーバが、前記隣接車両データ構造に基づき、前記第１の自律走行車の所定の地理的近接度内の１つまたは複数の自律走行車を決定する手段であって、前記所定の地理的近接度は、前記第１の自律走行車の走行に影響を与える可能性がある距離である、手段と、
前記クラウドサーバが、前記１つまたは複数の自律走行車の前記車両ＩＤのリストを前記ネットワークを介して前記第１の自律走行車に伝送する手段と、を含み、
前記第２の手段は、
前記第１の自律走行車が、前記車両ＩＤのリストにおける前記１つまたは複数の自律走行車から選択した第２の自律走行車と無線ローカルエリアネットワークを介して通信して、前記第２の自律走行車と走行状態を交換する手段を含み、
前記隣接車両データ構造はｋ−次元（ｋ−ｄ）木を含み、前記ｋ−ｄ木は階層構造の複数のノードを含み、各ノードは前記クラウドサーバで管理される前記複数の自律走行車のうちの１つに対応し、
前記１つまたは複数の自律走行車を決定する手段は、前記隣接車両データ構造において、与えられた入力点に最も近いｋ−ｄ木上の点を探す最近傍検索を実行して、前記１つまたは複数の自律走行車を決定する、
データ処理システム。
【請求項１２】
前記車両ＩＤリストにおける自律走行車は、前記第１の自律走行車の車両情報、および前記１つまたは複数の自律走行車の車両情報に基づいて決定される
請求項１１に記載のシステム。
【請求項１３】
前記リストにおける各車両ＩＤは、対応する自律走行車に関連付けられたインターネットプロトコル（ＩＰ）アドレスおよびドメインを含み、前記無線ローカルエリアネットワークによる通信に用いられる
請求項１１に記載のシステム。
【請求項１４】
前記走行状態は、前記第１の自律走行車が現在前記第１の自律走行車の占有している第１の車線から現在前記第２の自律走行車の占有している第２の車線に変更しようとする状態である
請求項１１に記載のシステム。
【請求項１５】
前記第２の自律走行車は、前記クラウドサーバを利用してその車両情報を周期的に更新し、
前記第２の自律走行車は、前記クラウドサーバから、前記第１の自律走行車を含む１つまたは複数の周辺自律走行車の第２のリストを受信する
請求項１１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願の実施形態は、一般的には自律走行車に関する。より具体的には、本出願の実施形態は、自律走行車間に車両間通信を提供することに関する。
【背景技術】
【０００２】
自律モード（例えば、自律走行や自動運転）で運転される車両は、乗員、特に運転者を運転関連作業から解放することを可能にする。自律モードで運転する場合、自律走行車は車載センサを利用して様々な位置に導かれることができ、それによって、ヒューマンインタラクションが最小化である場合、または乗員がない状況で車両走行を可能にする。適時な予測および正確な運転決定にするために、自律走行車は、周囲環境の客観的な状況に加えて周辺のほかの車両の主観的な意図を検知する必要がある。例えば、右車線上の車両が車線を変更して自律走行車の前方の空間を占有しようとする場合、自律走行車にとっては、加速の好適な時機ではなく、間もなくブレーキをかける必要があると推定する可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従来から、人間の運転者は、交通信号、ミラーを観察したり、直接に振り返ったりすることによりこのような情報を取得する。自律走行車間での情報を交換するために、ローカルネットワークを介した直接通信は、さらに効率的且つ確実的な手法である。しかしながら、自律走行車専用のこのような通信ネットワークの構築および維持は、いまだに困難な課題として残されている。
【課題を解決するための手段】
【０００４】
ネットワークを介して第１の自律走行車の車両識別子（ＩＤ）および車両情報を、複数の自律走行車に通信可能に接続されるクラウドサーバへ伝送するステップと、前記クラウドサーバから１つまたは複数の車両識別子（ＩＤ）のリストを受信し、その中で、前記車両ＩＤは、前記第１の自律走行車の所定の地理的近接度内の１つまたは複数の自律走行車を識別するステップと、無線ローカルエリアネットワークを介して前記１つまたは複数の自律走行車の第１のリストから選択された第２の自律走行車と通信して、前記第１の自律走行車と前記第２の自律走行車とが走行状態を交換するステップと、を含む自律走行車間での車両間通信用のコンピュータ実装方法。
【０００５】
命令が記憶された非一時的機械可読媒体であって、前記命令は、プロセッサにより実行される場合、車両間通信の操作を前記プロセッサに実行させ、前記操作は、ネットワークを介して第１の自律走行車の車両識別子（ＩＤ）および車両情報を、複数の自律走行車に通信可能に接続されるクラウドサーバへ伝送するステップと、前記クラウドサーバから１つまたは複数の車両識別子（ＩＤ）のリストを受信し、その中で、前記車両ＩＤは、前記第１の自律走行車の所定の地理的近接度内の１つまたは複数の自律走行車を識別するステップと、無線ローカルエリアネットワークを介して前記１つまたは複数の自律走行車の第１のリストから選択された第２の自律走行車と通信して、前記第１の自律走行車と前記第２の自律走行車とが走行状態を交換するステップと、を含む非一時的機械可読媒体。
【０００６】
プロセッサと、前記プロセッサに接続され、命令を記憶するために用いられるメモリと、を含み、前記命令は、前記プロセッサにより実行される場合、前記プロセッサに操作を実行させ、前記操作は、ネットワークを介して第１の自律走行車の車両識別子（ＩＤ）および車両情報を、複数の自律走行車に通信可能に接続されるクラウドサーバへ伝送するステップと、前記クラウドサーバから１つまたは複数の車両識別子（ＩＤ）のリストを受信し、その中で、前記車両ＩＤは、前記第１の自律走行車の所定の地理的近接度内の１つまたは複数の自律走行車を識別するステップと、無線ローカルエリアネットワークを介して前記１つまたは複数の自律走行車の第１のリストから選択された第２の自律走行車と通信して、前記第１の自律走行車と前記第２の自律走行車とが走行状態を交換するステップと、を含む自律走行車内において操作するデータ処理システム。
【０００７】
ネットワークを介して前記クラウドサーバに通信可能に接続される複数の自律走行車の車両メタデータを記憶する隣接車両データ構造をクラウドサーバで維持するステップと、前記自律走行車のうちの第１の自律走行車から、前記第１の自律走行車の第１の車両識別子（ＩＤ）および現在の車両メタデータを含む第１の更新要求を受信するステップと、前記第１の更新要求に応答して、前記隣接車両データ構造をトラバースし、前記第１の自律走行車の前記第１の車両ＩＤおよび前記現在の車両メタデータに基づき、前記第１の自律走行車に対応する第１のノードを更新するステップと、前記第１の自律走行車の所定の地理的近接度内の１つまたは複数の自律走行車を識別する１つまたは複数の車両ＩＤのリストを前記ネットワークを介して前記第１の自律走行車に伝送し、それにより前記第１の自律走行車が無線ローカルエリアネットワークを介して前記リストにおけるいずれかの自律走行車と直接通信できるステップと、を含む自律走行車の状態を管理するためのコンピュータ実装方法。
【図面の簡単な説明】
【０００８】
本出願の実施形態は、図面の各図に例として非限定的に示され、図面における同一符号は、類似の構成要素を示す。
【０００９】
【図１】本出願の一実施形態に係るネットワーク化システムを示すブロック図である。
【図２】本出願の一実施形態に係る自律走行車の処理フローを示すフローチャートである。
【図３】本出願の一実施形態に係るネットワーク構成を示すブロック図である。
【図４】本出願の一実施形態に係る自律走行車マネージャーを示すブロック図である。
【図５】本出願の一実施形態に係る車両情報を記憶するデータ構造の例を示すブロック図である。
【図６】本出願の一実施形態に係る自律走行車間の通信プロセスを示すフローチャートである。
【図７】本出願の一実施形態に係る自律走行車間の通信プロセスを示すフローチャートである。
【図８】一実施形態に係るデータ処理システムを示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、説明の詳細を参照しながら、本出願の様々な実施形態および方法を説明し、図面は、前記様々な実施形態を示す。以下の説明および図面は、本出願を説明するためのものであり、本出願を限定するものではない。本出願の様々な実施形態を完全に把握するために、多数の特定の詳細を説明する。なお、いくつかの例では、本出願の実施形態に対する簡単な説明を提供するために、周知または従来技術の詳細について説明していない。
【００１１】
本明細書では「一つの実施形態」または「実施形態」とは、当該実施形態について組み合わせて説明した特定特徴、構造または特性が、本出願の少なくとも一つの実施形態に含まれる。語句「一つの実施形態では」は、本明細書全体において同一実施形態を指すとは限らない。
【００１２】
一実施形態によれば、自律走行車の一部または全部がネットワーク（例えば、クラウドネットワーク）によって集中型サーバ（例えば、クラウドサーバ）に通信可能に接続される。サーバは、周期的に自律走行車から特定の車両情報、例えば、地理的位置、速度、移動方向等を受信する。サーバは、当該サーバに登録された自律走行車の車両情報を記憶するデータ構造またはデータベースを維持する。データ構造は、隣接車両データ構造とも呼ばれ、自律走行車から受信された更新コンテンツに応答して周期的に更新される。データ構造は、自律走行車のうち特定の１つに対して周辺自律走行車を指示する情報をさらに記憶する。このようなデータ構造は、隣接または周辺車両データ構造とも呼ばれる。
【００１３】
一実施形態では、車両から受信された要求または更新に応答して、隣接車両データ構造（例えば、車両位置、速度および移動方向に基づいて分類する）を更新する以外、サーバは、隣接車両データ構造に記憶された車両情報に基づき、周辺の１つまたは複数の自律走行車のリストを決定する。周辺自律走行車のリストを、サーバから自律走行車に伝送して自律走行車が無線ローカルエリアネットワークを介してほかの周辺自律走行車と通信し、例えば自律走行車の走行状態を交換することができる。
【００１４】
本出願の一態様によれば、第１の自律走行車は、ネットワークを介して第１の自律走行車の車両識別子（ＩＤ）および車両情報をクラウドサーバへ伝送する。車両情報は、第１の自律走行車の位置情報、速度または移動方向を含んでもよい。クラウドサーバは、ネットワークを介して複数の自律走行車に通信可能に接続される。クラウドサーバは、データ構造またはデータベースを維持して自律走行車の車両情報をコンパイルして記憶することができる。車両情報の一部は、自律走行車から受信されるが、ほかの情報は、自律走行車が受信した更新済み情報に基づきサーバでコンパイルされて生成されるようにしてもよい。第１の自律走行車は、サーバから１つまたは複数の自律走行車を識別する１つまたは複数の車両ＩＤのリストを受信する。サーバは、第１の自律走行車の所定の地理的近接度内の１つまたは複数の自律走行車を識別する。車両ＩＤに基づき、第１の自律走行車が無線ローカルエリアネットワークを介して前記リストから選ばれた第２の自律走行車と通信し、これにより、第２の自律走行車と第１の自律走行車との走行状態を交換する。
【００１５】
本出願の別の態様によれば、クラウドサーバは、複数の自律走行車の車両情報または車両メタデータを記憶する隣接車両データ構造を維持し、前記複数の自律走行車は、ネットワーク（例えばインターネットのようなクラウドネットワーク）を介してクラウドサーバに通信可能に接続される。サーバは、第１の自律走行車から第１の更新要求を受信する。前記第１の更新要求は、第１の自律走行車の第１の車両識別子（ＩＤ）および現在の車両メタデータを含む。第１の更新要求に応答して、サーバは隣接車両データ構造をトラバースして、第１の自律走行車の第１の車両ＩＤ、および現在の車両情報またはメタデータに基づき、第１の自律走行車に対応する第１のノードを更新する。サーバは、ネットワークを介して第１の自律走行車に第１の自律走行車の所定の地理的近接度内の１つまたは複数の自律走行車を識別する１つまたは複数の車両ＩＤのリストを伝送することにより、第１の自律走行車は、無線ローカルエリアネットワークを介してリストにおけるいずれかの自律走行車と直接通信できる。
【００１６】
図１は、本出願の一実施形態に係る自律走行車のネットワーク構成を示すブロック図である。図１を参照し、この例では、複数の自律走行車１０１Ａ〜１０１Ｄは、ネットワークを介して１つまたは複数の集中型サーバ１０２に通信可能に接続される。図１では、４つの自律走行車を示しているが、自律走行車の数を増減してもよい。特定の状況または利用可能な信号の品質に応じて、自律走行車１０１Ａ〜１０１Ｄのそれぞれは、サーバ１０２との接続を連続的または周期的に維持する。自律走行車１０１Ａ〜１０１Ｄのそれぞれは、サーバ１０２に特定の車両情報を周期的に送信し、サーバ１０２は、特定の車両情報を記憶して維持する。車両情報は、自律走行車の位置と、経路情報、速度情報および／または移動方向とを含んでもよい。車両情報は、自律走行車により取得されたリアルタイム交通または通行情報、例えば、地図や興味点（ＭＰＯＩ）またはリアルタイム交通状況情報をさらに含んでもよい。これらの情報の一部は、サーバ１０２により取得されてもよく、コンパイルされてもよい。
【００１７】
図示していないが、自律走行車から受信された更新済み情報に応答して、サーバ１０２は、データベース（例えば、車両状態／状況データベース、または隣接／周辺車両データ構造）を更新する。また、サーバ１０２は、さらに受信した車両情報を解析して自律走行車の所定の近接度内の１つまたは複数の自律走行車のリストを決定する。続いて、自律走行車の車両ＩＤをサーバ１０２から要求中の自律走行車へ伝送する。自律走行車は、周辺車両ＩＤを使用してほかの周辺自律走行車と通信できる。周辺自律走行車は、ローカルエリアネットワークまたはコミュニティを示す１組の自律走行車を形成してもよい。この例では、車両情報に基づき、自律走行車１０１Ａ〜１０１Ｃは１つのグループ、自律走行車１０１Ｃ〜１０１Ｄはもう１つのグループとして考えられる。周辺自律走行車の車両ＩＤを有する場合に、同一グループの自律走行車は、無線ローカルエリアネットワークを介して直接通信して情報（例えば、走行状態）を交換することができる。
【００１８】
図２は、本出願の一実施形態に係る自律走行車の処理フローを示すフローチャートである。プロセス２００は、図１のネットワーク構成１００により実行されてもよい。図２を参照し、自律走行車１０１Ａは経路２０１を介して車両情報の更新コンテンツを１つまたは複数の集中型サーバ１０２へ周期的に送信する。同様に、自律走行車１０１Ｂは経路２０２を介して車両情報の更新コンテンツをサーバ１０２へ周期的に送信する。上記のように、サーバ１０２は、複数の自律走行車に通信可能に接続されてもよく、自律走行車のそれぞれは対応する車両情報の更新コンテンツをサーバ１０２へ周期的に送信する。自律走行車（この例では、自律走行車１０１Ａ〜１０１Ｂ）から受信された更新コンテンツに応答して、ブロック２０３では、サーバ１０２はデータベース（例えば車両状態または状況データベース）における車両情報を更新する。また、自律走行車１０１Ａ〜１０１Ｂのそれぞれに対して、サーバ１０２は、前記自律走行車に対する周辺自律走行車のリストを決定し、当該リストは自律走行車の車両情報に基づいて決定されてもよい。
【００１９】
続いて、サーバ１０２は、経路２０４を介して自律走行車１０１Ａに対する１つまたは複数の周辺自律走行車のリストを自律走行車１０１Ａに送信する。この例では、周辺自律走行車のリストは、自律走行車１０１Ｂを識別する車両ＩＤを含んでもよい。サーバ１０２は、経路２０５を介して自律走行車１０１Ｂに対する１つまたは複数の周辺自律走行車のリストを自律走行車１０１Ｂへ送信する。同様に、この例では、周辺自律走行車のリストは、自律走行車１０１Ａを識別する車両ＩＤを含んでもよい。ブロック２０６〜２０７では、自律走行車１０１Ａ〜１０１Ｂは、例えばローカル永久記憶装置またはローカルメモリにおけるローカル車両情報を更新してもよい。続いて、自律走行車１０１Ａ〜１０２Ｂは、経路２０８を介して相手車両ＩＤを使用して互いに通信でき、例えば自律走行車１０１Ａ〜１０１Ｂの走行状態を交換する。
【００２０】
図３は、本出願の一実施形態に係るネットワーク構成を示すブロック図である。ネットワーク構成３００は図１のネットワーク構成１００の少なくとも一部を示してもよい。図３を参照し、ネットワーク構成３００は、ネットワーク１０３を介して集中型サーバ１０２に通信可能に接続される自律走行車１０１を含む。ここで１つの自律走行車を示しているが、複数の自律走行車がネットワーク１０３を介してサーバ１０２に接続され且つそれに管理されるようにしてもよい。例えば、自律走行車１０１は図１に示される自律走行車１０１Ａ〜１０１Ｄのうちのいずれかであってもよい。ネットワーク１０３は、任意のタイプのネットワーク、例えば、有線や無線のローカルエリアネットワーク（ＬＡＮ）、およびインターネット、セルラーネットワーク、衛星ネットワークのようなワイドエリアネットワーク（ＷＡＮ）、またはその組合せであってもよい。サーバ１０２は、任意のタイプのサーバまたはサーバクラスター、例えばネットワークまたはクラウドサーバ、アプリケーションサーバ、バックエンドサーバまたはその組合せであってもよい。
【００２１】
一実施形態において、自律走行車１０１は、センサシステム１１５およびデータ処理システム１１０を含むが、それらに限定されない。センサシステム１１５は、自律走行車１０１が様々な道路や場所をナビゲートできるための複数種のセンサまたは検知装置を含む。例えば、センサシステム１１５は、１つまたは複数のカメラ、マイクロホン、全地球測位システム（ＧＰＳ）、慣性計測ユニット（ＩＭＵ）、レーダーシステムおよび／または光検出および距離測定（ＬＩＤＡＲ）システムを備えてもよい。データ処理システム１１０は、例えばバス、相互接続部材、またはネットワークを介してセンサシステム１１５に通信可能に接続される。データ処理システム１１０は、センサシステム１１５から受信された全てのデータを処理し且つセンサシステム１１５を管理したり制御したりし、ネットワーク１０３を介してサーバ１０２と通信するように操作できる。データ処理システム１１０は、センサシステム１１５から受信された情報を処理し自律走行車１０１を制御したり運転したりすることに必要なソフトウェアおよびハードウェアが配置された専用コンピュータであってもよい。
【００２２】
一実施形態において、データ処理システム１１０は、行程モジュール１２１、クラウドインターフェースモジュール１２２、コンテンツ表示モジュール１２３、接続マネージャー１２４、およびデータストア１２５を含むが、それらに限定されない。モジュール１２１〜１２４は、ソフトウェア、ハードウェアまたはその組合せにより実現できる。例えば、モジュール１２１〜１２４は、システムメモリにロードされ且つデータ処理システム１１０の１つまたは複数のプロセッサにより実行されてもよい。行程モジュール１２１は、自律走行車１０１に乗るユーザーの行程に関連する全てのデータを管理する。ユーザーは、ユーザインタフェースによってログインし且つ行程の開始位置および目的地を指定してもよい。行程モジュール１２１が自律走行車１０１の他の構成要素と通信して行程関連データを取得する。例えば、行程モジュール１２１は、位置サービスサーバ１０６と地図およびＰＯＩ（ＭＰＯＩ）サーバ１０５から、位置および経路情報を取得できる。位置サービスサーバ１０６は、位置サービスを提供し、且つ、ＭＰＯＩサーバ１０５は、地図サービス、およびいくつかの位置のＰＯＩを提供する。自律走行車１０１が経路に沿って走行する期間、行程モジュール１２１は、さらに交通情報システムまたはサーバ（ＴＩＳ）１０４からリアルタイム交通情報を取得できる。なお、サーバ１０４〜１０６は、第三者エンティティにより操作されてもよい。必要に応じて、サーバ１０４〜１０６の機能は、サーバ１０２と一体化されてもよく、その中で、自律走行車１０１はサーバ１０２から同一情報を取得できる。
【００２３】
一実施形態では、位置および経路情報、ＭＰＯＩ情報および／またはリアルタイム交通情報に基づき、コンテンツ表示モジュール１２３は、データストア１２５のコンテンツデータベースにおいて検索して当該時点の状況に応じて表示に適するコンテンツアイテム（例えば、映画、特殊コンテンツ、またはＡｄのようなスポンサー付きコンテンツ）リストを識別する。自律走行車１０１に乗るユーザーのユーザープロファイルに基づき、選択したコンテンツを識別してもよい。所定のランキングアルゴリズムまたはランキングモデルに基づき、コンテンツアイテムをランキングしてもよい。例えば、ユーザーのユーザープロファイルから取得されたユーザー情報に基づき、コンテンツアイテムをランキングし、前記ユーザープロファイルがデータストア１２５に記憶されてもよい。ユーザー情報は、ユーザーに関連するユーザーの好み、以前の挙動、または履歴ログを含んでもよい。その後、前記ランキングに基づいてコンテンツアイテムを選択する。コンテンツ表示モジュール１２３によって選択されたコンテンツアイテムをレンダリングしてユーザーに示し、例えば表示装置に表示する。
【００２４】
データストア１２５は、永久記憶装置（例えば、ハードディスクのような不揮発性記憶装置）に記憶されてもよく、前記永久記憶装置には、コンテンツデータベース、ユーザープロファイル、行程関連情報（例えば、位置および経路情報、ＰＯＩ情報）を含むが、それらに限定されない複数種のデータが記憶される。データストア１２５に記憶されたデータは、複数種のデータソースから取得されてもよく、前記データソースは、サーバ１０２、交通情報サーバ１０４、地図およびＰＯＩサーバ１０５と、位置サービスサーバ１０６であってもよい。例えば、コンテンツデータおよびユーザープロファイルは、サーバ１０２のデータストア１３０に記憶されたコンテンツデータベースおよびユーザプロファイル（図示せず）により提供され、且つキャッシュされてもよい。データ処理システム１１０は、さらに、他の構成要素、例えば１つまたは複数のプロセッサ（例えば、中央処理装置またはＣＰＵ）、システムメモリ、あるいは通信インターフェース（例えば、無線通信インターフェース）等を含む。
【００２５】
一実施形態では、データ処理システム１１０は、さらに接続マネージャー１２４およびクラウドインターフェースモジュール１２２を含む。クラウドインターフェースモジュール１２２は、クラウドサーバ１０２の自律走行車（ＡＶ）マネージャー１５０と通信するためのものである。換言すれば、ＡＶマネージャー１５０は、ネットワーク１０３を介して複数の自律走行車と通信してそれらを管理するように配置される。接続マネージャー１２４は、周辺のほかの自律走行車と通信し、それらとの接続を維持するように配置される。
【００２６】
一実施形態では、行程モジュール１２１は、例えばセンサシステム１１５、サーバ１０４〜１０６と通信することにより自律走行車１０１の現在の車両情報を取得する。上記のように、車両情報は位置および経路情報、速度、移動方向、または現在の交通状況等を含むが、それらに限定されない。クラウドインターフェースモジュール１２２は、行程モジュール１２１から車両情報を受信し、サーバ１０２に更新要求を送信してＡＶ状態データベース１３１に記憶された自律走行車１０１の車両情報および／またはデータストア１３０に記憶された隣接ＡＶ情報１３２を更新する。前記要求は、自律走行車１０１を識別する車両ＩＤ、および行程モジュール１２１から取得された車両情報の少なくとも一部を含んでもよい。前記更新要求に応答して、ＡＶマネージャー１５０は、ＡＶ状態データベース１３１における自律走行車１０１の現在の車両情報および／または隣接ＡＶ情報１３２を更新する。
【００２７】
また、ＡＶマネージャー１５０は、隣接ＡＶ情報１３２に基づき、自律走行車１０１に対して所定の地理的近接度内の１つまたは複数の自律走行車を決定し、ここで、ＡＶ状態データベース１３１に記憶された自律走行車の車両情報に基づき、隣接ＡＶ情報１３２をコンパイルしてもよい。なお、ＡＶ状態データベース１３１と隣接ＡＶ情報１３２は、単一のデータベースまたは単一のデータ構造（例えばｋ次元（ｋ−ｄ）データ構造）に保存されてもよい。ＡＶマネージャー１５０は、ネットワーク１０３を介して周辺自律走行車を識別する車両ＩＤリストを自律走行車１０１に伝送し、当該車両ＩＤリストは、クラウドインターフェースモジュール１２２によって受信されてもよく、ローカルでデータストア１２５にキャッシュまたはバッファされてもよい。続いて、自律走行車１０１の接続マネージャー１２４は、周辺自律走行車のうちの任意の１つまたは複数の自律走行車と通信できる。周辺自律走行車が所定の地理的近接度内（サーバ１０２から受信された隣接ＡＶ情報により指示されてもよい）であれば、接続マネージャー１２４は、周辺自律走行車との接続を維持できる。
【００２８】
自律走行車からの各更新要求に応答して、サーバ１０２から隣接ＡＶ情報を伝送するようにしてもよい。あるいは、自律走行車は、任意の時点で隣接ＡＶ情報に対する特定要求を送信できる。例えば、自律走行車が車線を変更しようとする際に、自律走行車は隣接ＡＶ情報を要求し、それにより前記自律走行車が隣接ＡＶに車線変更を通知することができる。別の例では、１つの自律走行車のユーザーが周辺自律走行車の別のユーザーとを対話しようとする場合、このユーザーは、隣接ＡＶ情報に対する要求を確立してほかの自律走行車のほかのユーザーと通信することができる。
【００２９】
図４は、本出願の一実施形態に係る自律走行車マネージャーを示すブロック図である。図４を参照し、ＡＶマネージャー１５０は、ＡＶ速度決定モジュール２０１、ＡＶ方向決定モジュール２０２、ＡＶ情報更新モジュール２０３、および隣接ＡＶ決定モジュール２０４を含むが、それらに限定されない。ＡＶ速度決定モジュールは、自律走行車から周期的に受信した車両情報（例えば、位置情報）に基づき自律走行車の移動速度を計算する。同様に、ＡＶ方向決定モジュールは、自律走行車の車両情報に基づき自律走行車の移動方向を決定する。ＡＶ速度決定モジュール２０１およびＡＶ方向決定モジュール２０２を有さなくてもよく、速度および移動方向は、自律走行車から受信されてもよい。
【００３０】
ＡＶ情報更新モジュール２０３は、自律走行車から受信された車両情報に基づき、ＡＶ状態データベース１３１を更新する。隣接ＡＶ決定モジュール２０４は、各自律走行車または特定の自律走行車に対する１つまたは複数の周辺自律走行車を決定し、且つ隣接ＡＶ情報１３２を更新する。一実施形態では、隣接ＡＶ情報１３２は、ｋ−ｄ木に記憶される。前記ｋ−ｄ木は、階層構造として形成される複数のノードを含む。各ノードは、サーバに通信可能に接続される自律走行車のうちの１つを示す。各ノードは、対応する自律走行車の車両情報、例えば図５に示される情報を記憶したり引用したりする。
【００３１】
ｋ−ｄ木は、ｋ次元空間にある点を分類するための空間分割データ構造である。ｋ−ｄ木は、多次元検索キーワードに関する検索（例えば、範囲検索および最近傍検索）のようないくつかのアプリケーションに有用なデータ構造である。ｋ−ｄ木は、バイナリ空間分割木の特殊ケースである。最近傍（ＮＮ）検索アルゴリズムは、与えられた入力点に最も近いｋ−ｄ木上の点を探すことを目的とする。このような検索は、木の特性を使用して検索空間の大部分を迅速に捨てることにより、効率的に行うことができる。
【００３２】
自律走行車から車両情報更新コンテンツを受信する場合、ＡＶ情報更新モジュール２０３は、車両ＩＤに基づきＡＶ状態データベース１３１および／または隣接ＡＶ情報１３２において検索を実行して自律走行車に対応するエントリーを特定し、新規自律走行車がサーバに接続される場合に新規エントリーまたはノードを追加し、あるいは自律走行車とサーバとの接続が遮断される場合に既存のエントリーまたはノードを削除すること等を含む。隣接ＡＶ決定モジュール２０４は、要求中の自律走行車に対して所定の地理的近接度内の複数の自律走行車を決定する。例えば、隣接ＡＶ決定モジュール２０４は、隣接ＡＶ情報１３２（例えば、ｋ−ｄ木）において最近傍検索を実行して周辺自律走行車を識別する。次に、識別された周辺自律走行車を、要求中の自律走行車に返送する。周辺自律走行車の数は、サーバに決定されてもよく、要求中の自律走行車またはそれに乗るユーザーによって要求されてもよい。同様に、周辺自律走行車を制限するための地理的近接度は、サーバにより決定されてもよく、要求中の自律走行車またはそれに乗るユーザーにより指定されてもよい。
【００３３】
一実施形態では、自律走行車は、既存のローカル通信を有するか、新規のローカル通信を構築する必要があるかにかかわらず、各自律走行車は、現在の位置情報をクラウドサーバへ周期的に送信する必要がある。従来のＧＰＳ読みに由来する概略位置は、十分である可能性があり、それにより例えばクラウドサーバがほかのソース（例えば、位置および経路サーバ、地図と、興味点サーバおよび／またはリアルタイム交通情報サーバ等）から取得された追加情報に基づき、自律走行車の正確な地理的位置を導出したり決定したりするできる。
【００３４】
システムの各自律走行車からの車両情報更新コンテンツを受信する場合、クラウドサーバでほとんどの計算または協調を実行する。この操作は、各車両が現在の「周辺」車両リストを算出できることを目的とする。ここで、用語「周辺」は、自律走行のコンテキストにより定義される。距離測度以外、ほかの関連要素、例えば相対位置および移動方向を考慮してもよい。例えば、「周辺」リストは、前方の長距離での車両を含むが後方の短距離での車両を含まないようにしてもよい。また、同一道路上で反対方向に走行する車両の影響が小さい。これらの仮定は、人間の運転者が関心する道路についての観察リストを如何に形成するかのケースと類似する。
【００３５】
システムにおけるすべての車両の周辺車両リストを計算するアルゴリズム自体に対して、車両の特定メタデータを含む修正されたｋ−ｄ木を使用できる。一実施形態では、次元ｋは相応に緯度と経度に用いられる少なくとも２つの次元を含む。都市地区では、マルチ道路交差点または駐車場構造などを考慮するように、第３次元として海抜を含んでもよい。例えば、走行方向の追加メタデータが木ノードに整合され、それにより上記検索プロセスでは、ガイドまたはフィルタリングに寄与する。ｋ−ｄ木を効果的なインデックスデータ構造として使用することにより、クラウドサーバは、ｌｏｇ（ｎ）時間内に最近傍検索を実現でき、且つデータ構造を効率的に維持できる。従って、大量の自律走行車を高次元検索木に記録できることにより、複数のこのようなデータ構造（ここで、データノードがそれらの間で連続的に移動する）を管理する大量処理プロセスを回避する。
【００３６】
別の実施形態によれば、上記周辺自律走行車リストは、次に、それぞれ登録された自律走行車にクラウドサーバから返される。なお、車両リストのみであり、クラウドサーバは、各車両の現在の通信リストの状態を把握していない。それにより、例えば、接続消失または構成要素変更の場合、システムは接続を遮断し且つロバストになる。クラウドサーバからネットワークアイデンティティ（例えば、ＩＰまたはドメイン名）形式の周辺車両リストを受信する場合、各車両において２つの構成要素がこのリストを処理する。
【００３７】
１つの構成要素（例えば、接続マネージャー１２４）は、新たに発見された周辺車両の新規接続を構築し、接続しているが周辺車両（例えば、クラウドサーバから受信された最新リストにない）ではなくなる車両の接続を解除することを目的とする。なお、これらの接続は、クラウド層を経由しない高応答性の直接ピア・ツー・ピア接続となる。さらに、前記接続は、グローバルインターネット接続に基づくものであってもよく、グローバルインターネット接続に基づかないものであってもよい。接続タイプとして、ＷｉＦｉによるピア・ツー・ピア接続、ＷｉＦｉ直接接続およびブルートゥース（登録商標）等を含む。ほかの構成要素（例えば、クラウドインターフェースモジュール１２２）は、すべての現在のアクティブな接続用の同期トピック、サービス、およびほかの形式の自律走行関連ＡＰＩとなる。
【００３８】
図５は、本出願の一実施形態に係る車両情報を記憶するデータ構造の例を示すブロック図である。データ構造５００は、図３のＡＶ状態データベース１３１および／または隣接ＡＶ情報１３２を示してもよい。図５を参照し、この例では、データ構造５００は、１つのテーブルとして示される。しかしながら、データ構造５００は、様々な形式、例えばデータベースで実現されてもよい。一実施形態では、ＡＶ状態表５００は、複数のエントリーを含み、各エントリーが車両ＩＤ  ５０１により識別される。車両ＩＤ  ５０１は、車両に関連するネットワークアドレス（例えば、インターネットプロトコルまたはＩＰアドレス、メディアアクセス制御またはＭＡＣアドレス）であってもよい。各エントリーは、自律走行車を管理するサーバに現在接続されている自律走行車の１つに対応付けられる。各エントリーは、特定の自律走行車についての車両情報を記憶し、緯度５０２、経度５０３、および／または海抜５０４で示される位置情報を含む。また、車両情報は、さらに速度５０５および移動方向５０６を含んでもよい。
【００３９】
情報５０２〜５０６は、自律走行車から受信されてもよい。あるいは、前記情報の一部は、自律走行車の概略位置情報に基づきサーバで決定されてもよい。例えば、自律走行車は、自律走行車についての概略全地球測位システム（ＧＰＳ）情報をサーバへ伝送する。前記概略ＧＰＳ情報に基づき、サーバは、位置サービスサーバと通信することにより、さらに正確な位置情報（例えば、緯度５０２、経度５０３、および／または海抜５０４）を決定する。サーバは、さらに例えば現在の位置情報と以前の位置情報とを比較することにより、自律走行車の速度５０５および移動方向５０６を決定してもよい。
【００４０】
図６は、本出願の一実施形態に係る自律走行車間の通信プロセスを示すフローチャートである。プロセス６００は、処理ロジックにより実行されてもよく、前記処理ロジックは、ソフトウェア、ハードウェア、またはそれらの組合せを含んでもよい。例えば、プロセス６００は、図１のデータ処理システム１１０により実行されてもよい。図６を参照し、ブロック６０１では、処理ロジックは、第１の自律走行車の車両情報、例えば位置情報（例えば、緯度、経度および／または海抜）を取得する。処理ロジックは、そのセンサシステム（例えば、ＧＰＳナビゲーションシステム）からこのような情報を取得してもよい。ブロック６０２では、処理ロジックは、ネットワーク（例えば、クラウドネットワーク）により、第１の自律走行車の車両ＩＤを含む車両情報を、集中型サーバ（例えば、クラウドサーバ）へ伝送する。
【００４１】
ブロック６０３では、処理ロジックは、サーバから１つまたは複数の自律走行車を識別する１つまたは複数の車両ＩＤのリストを受信する。前記リストにおける自律走行車は、第１の自律走行車に対して所定の地理的近接度内にある。サーバは、第１の自律走行車により提供される車両情報、およびほかのソースから取得されたほかの情報に基づきこれらの自律走行車を識別する。ブロック６０４では、処理ロジックは、前記リストにおける第２の自律走行車（例えば、第１の自律走行車の走行に影響を与える可能性がある自律走行車）を識別する。ブロック６０５では、第１の自律走行車は、無線ローカルエリアネットワークを介して第２の自律走行車の車両ＩＤ（例えば、ＩＰアドレス）を使用して第２の自律走行車と通信する。例えば、第１の自律走行車が移動方向を変更して第２の自律走行車の車線に入ろうとする場合、第１の自律走行車は、発生する可能性がある破壊または衝突を回避するように、第２の自律走行車に通知する。あるいは、第１の自律走行車に乗るユーザーは、第２の自律走行車に乗るユーザーとチャットしたりゲームをしたりする。
【００４２】
図７は、本出願の一実施形態に係る自律走行車間の通信プロセスを示すフローチャートである。プロセス７００は、処理ロジックにより実行されてもよく、前記処理ロジックは、ソフトウェア、ハードウェア、またはそれらの組合せを含んでもよい。例えば、プロセス７００は、図１のサーバ１０２により実行されてもよい。図７を参照し、ブロック７０１では、処理ロジックは、ネットワークを介してサーバに通信可能に接続される複数の自律走行車から車両情報を受信する。前記車両情報は、少なくとも自律走行車の位置情報（例えば、緯度、経度、海抜）、速度、または自律走行車の移動方向を含む。ブロック７０２では、処理ロジックは、ＡＶ状態データベース、および／または隣接ＡＶデータ構造（例えば、ｋ−ｄ木）を更新する。更新操作は、車両情報に基づき、隣接ＡＶデータ構造をさらに分類してもよく、周辺自律走行車を示しているノードまたはエントリーは、互いに近接したり隣接したりして記憶される。
【００４３】
続いて、ブロック７０３では、第１の自律走行車から要求を受信し、第１の自律走行車に近い自律走行車を識別する。前記要求は、第１の自律走行車から受信された車両情報の更新要求の一部であってもよい。あるいは、前記要求は、例えば第１の自律走行車の乗客が移動方向を変更する操作、またはユーザー動作に応答して第１の自律走行車から受信された特定の要求または個別の要求であってもよい。前記要求に応答して、ブロック７０４では、処理ロジックは、第１の自律走行車の車両ＩＤに基づき隣接ＡＶ情報データ構造において検索し、１つまたは複数の自律走行車を識別する。識別された自律走行車は、現在第１の自律走行車に対して所定の地理的近接度内にある。例えば、処理ロジックは、隣接ＡＶ情報データ構造を示すｋ−ｄ木において近傍検索アルゴリズムを呼び出して周辺自律走行車を識別する。ブロック７０５では、処理ロジックは、周辺自律走行車を識別する車両ＩＤ（例えば、ＩＰアドレス）リストを第１の自律走行車へ伝送することにより、第１の自律走行車が周辺自律走行車のうちのいずれかと通信できる。
【００４４】
上記自律走行車とは、車両が運転者からの入力が非常に少なくまたはない場合でもナビゲーションして環境を通過するように自律走行モードに設定できる車両である。このような自律走行車は、車両走行環境に関連する情報を検出するための１つまたは複数のセンサを含むセンサシステムを備えてもよい。前記車両およびそれに関連するコントローラは、検出された情報を用いてナビゲーションして前記環境を通過できる。前記センサシステムは、１つまたは複数のカメラ、マイクロホン、全地球測位システム（ＧＰＳ）、慣性計測ユニット（ＩＭＵ）、レーダーシステムおよび／または光検出および距離測定（ＬＩＤＡＲ）システムを備えてもよい。
【００４５】
ＧＰＳシステムは、自律走行車の地理的位置を推定できる。ＧＰＳシステムは、送受信機を備えてもよく、前記送受信機は、自律走行車の位置に関連する情報を提供するように動作できる。ＩＭＵユニットは、慣性加速度に基づいて自律走行車の位置および方位変化を検知できる。レーダーユニットは、無線信号を利用して自律走行車のローカル環境内の対象を検知するシステムを示すことができる。いくつかの実施形態において、検知対象以外に、レーダーユニットはさらに対象の速度および／または前進方向を検知できる。ＬＩＤＡＲユニットは、レーザで自律走行車が位置する環境における対象を検知してもよい。他のシステムの構成要素以外に、ＬＩＤＡＲユニットはさらに１つまたは複数のレーザ光源、レーザスキャナーおよび１つまたは複数の検出器を備えてもよい。カメラは、自律走行車の周辺環境の画像をキャプチャするための１つまたは複数の装置を備えてもよい。カメラはスチルカメラまたはビデオカメラであってもよい。カメラは、カメラが取り付けられたプラットフォームを回転および／または傾斜させるように機械的に移動してもよい。マイクロホンは、自律走行車の周辺環境から音声をキャプチャするように構成されてもよい。
【００４６】
自律走行車は、自律走行車環境における対象および／または特徴を識別するように１つまたは複数のカメラによりキャプチャされた画像を処理して分析するためのコンピュータビジョンシステムをさらに備えてもよい。前記対象は、交通信号、車道境界、他の車両、通行人および／または障害物等を含んでもよい。コンピュータビジョンシステムは、対象認識アルゴリズム、ビデオ追跡および他のコンピュータビジョン技術を用いてもよい。いくつかの実施形態において、コンピュータビジョンシステムは、環境地図の描画、対象追跡、対象速度の推定等を行うことができる。
【００４７】
自律走行車は、自律走行車の走行経路を決定するためのナビゲーションシステムをさらに備えてもよい。例えば、ナビゲーションシステムは、自律走行車が大体最終目的地に到着する車道経路に沿って前進するとともに、検知した障害物を基本的に回避するように一連の速度および所定の前進方向を決定してもよい。目的地はユーザインタフェースによるユーザ入力に基づいて設定されてもよい。ナビゲーションシステムは自律走行車が走行していると同時に走行経路を動的に更新してもよい。ナビゲーションシステムは、ＧＰＳシステムおよび１つまたは複数の地図からのデータを合併して自律走行車用の走行経路を決定する。
【００４８】
自律走行車は、自律走行車環境における潜在的障害物を識別し、評価し且つ回避して、または他の方式で迂回するための衝突防止システムをさらに備えてもよい。例えば、衝突防止システムは、制御システムにおける１つまたは複数のサブシステムが旋回動作、方向転換動作、ブレーキ動作等を行うように操作することによって自律走行車のナビゲーション中の変更を実現してもよい。衝突防止システムは、周囲の交通モード、道路状況等に基づいて実現可能な障害物回避動作を自動的に決定してもよい。衝突防止システムは、他のセンサシステムにより自律走行車が旋回して入る隣接領域に位置する車両、建築障害物等を検出した場合に旋回動作を行わないように構成されてもよい。衝突防止システムは、利用可能で自律走行車の乗客の安全性を最大化する動作を自動的に選択してもよい。衝突防止装置は、自律走行車の車室に最小の加速度をもたらすように、予測した回避動作を選択してもよい。
【００４９】
自律走行車は、その周辺環境内に位置する外部システム（例えば装置、センサ、他の車両等）および／またはコントローラ、サーバ等との通信を可能にする無線通信システムをさらに備えてもよく、前記外部システムおよび／またはコントローラ、サーバ等は、車両の周辺環境に関連する有用な情報、例えば交通情報、天気情報等を提供できる。例えば、無線通信システムは、直接的にまたは通信ネットワークを介して１つまたは複数の装置と無線で通信できる。無線通信システムは、任意のセルラ通信ネットワークまたは無線ＬＡＮ（ＷＬＡＮ）、例えばＷｉＦｉを用いてもよい。無線通信システムは、例えば赤外リンク、ブルートゥース（登録商標）等を用いて装置と直接的に通信できる。
【００５０】
なお、上記の構成要素の一部または全部は、ソフトウェア、ハードウェアまたはそれらの組合せにより実現できる。例えば、このような構成要素は、永久記憶装置にインストールされ且つ記憶されたソフトウェアとして実現でき、前記ソフトウェアは、プロセッサ（図示せず）でメモリにおいてロードされ且つ実行されることにより、本出願の全体にわたって説明されるプロセスまたは操作を実行する。あるいは、このような構成要素は専用ハードウェア（例えば集積回路（例えば、専用集積回路またはＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ））にプログラミングされまたは組み込まれた実行可能なコードとして実現されてもよく、前記実行可能なコードは対応するドライバーおよび／またはオペレーティングシステムによってアプリケーションからアクセスできる。また、このような構成要素は、プロセッサまたはプロセッサコアにおける特定ハードウェアロジックとして実現されてもよく、ソフトウェア構成要素が１つまたは複数の特定命令によってアクセスされる命令セットの一部となる。
【００５１】
図８は、本出願の一実施形態と組み合わせて使用されるデータ処理システムを例示的に示すブロック図である。例えば、システム１５００は、上記プロセスまたは方法のいずれかを実行する上記任意のデータ処理システム、例えば図１のデータ処理システム１１０またはサーバ１０２を示してもよい。システム１５００は、多数の異なる構成要素を含んでもよい。これらの構成要素は、集積回路（ＩＣ）、集積回路の一部、分散型電子装置または回路基板に適用された他のモジュール（例えばコンピュータシステムのマザーボードまたはアドインカード）、または他の方式でコンピュータシステムのシャシーに組み込まれた構成要素として実現できる。
【００５２】
さらに、システム１５００は、コンピュータシステムの多数の構成要素の詳細ビューを示すことを目的とする。しかしながら、いくつかの実現形態では、付加的構成要素を要してもよいことを理解すべきである。また、他の実現形態において示される構成要素が異なる配置を有してもよい。システム１５００は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤー、パーソナルディジタルアシスタント（ＰＤＡ）、スマート腕時計、パーソナルコミュニケーター、ゲーム装置、ネットワークルータまたはハブ、無線アクセスポイント（ＡＰ）またはリピーター、セットトップボックス、またはそれらの組合せを示してもよい。また、単一の機器またはシステムのみを示したが、用語「機器」または「システム」は、さらに、独立または共同で１つ（または複数）の命令セットを実行することにより本明細書に説明される任意の１種または複数種の方法を実行する機器またはシステムの任意のセットを含むことを理解すべきである。
【００５３】
一実施形態において、システム１５００は、バスまたは相互接続部材１５１０によって接続されたプロセッサ１５０１、メモリ１５０３および装置１５０５〜１５０８を備える。プロセッサ１５０１は、単一のプロセッサコアまたは複数のプロセッサコアを含む単一のプロセッサまたは複数のプロセッサを備えてもよい。プロセッサ１５０１は、マイクロプロセッサ、中央処理装置（ＣＰＵ）等のような１つまたは複数の汎用プロセッサであってもよい。より具体的には、プロセッサ１５０１は、複雑命令セット計算（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピュータ（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、または他の命令セットを実現するプロセッサ、または命令セットの組合せを実現するプロセッサであってもよい。プロセッサ１５０１は、さらに、専用集積回路（ＡＳＩＣ）、セルラまたはベースバンドプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、グラフィックスプロセッサ、通信プロセッサ、暗号プロセッサ、コプロセッサ、組み込みプロセッサのような１つまたは複数の専用プロセッサ、あるいは命令処理可能な任意の他のタイプのロジックであってもよい。
【００５４】
プロセッサ１５０１（超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよい）は、前記システムの各種構成要素と通信するための主処理ユニットおよび中央ハブとして機能できる。このようなプロセッサは、システムオンチップ（ＳｏＣ）として実現できる。プロセッサ１５０１は、命令を実行することにより本明細書に説明される操作およびステップを実行するための命令を実行ように構成される。また、システム１５００は、選択可能なグラフィックスサブシステム（表示コントローラおよび／または表示装置）１５０４と通信するグラフィックスインターフェースをさらに含み、グラフィックスサブシステム（表示コントローラおよび／または表示装置）１５０４は、表示コントローラ、グラフィックスプロセッサおよび／または表示装置をさらに備えてもよい。
【００５５】
プロセッサ１５０１は、メモリ１５０３と通信してもよく、メモリ１５０３は、一実施形態において複数のメモリによって所定量のシステムメモリを提供する。メモリ１５０３は、ランダムアクセスメモリ（ＲＡＭ）、動的ＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、静的ＲＡＭ（ＳＲＡＭ）または他のタイプの記憶装置のような１つまたは複数の揮発性記憶（またはメモリ）装置を備えてもよい。メモリ１５０３は、プロセッサ１５０１または任意の他の装置により実行される命令列を含む情報を記憶できる。例えば、複数種のオペレーティングシステム、装置ドライバー、ファームウェア（例えば、入力出力基本システムまたはＢＩＯＳ）および／またはアプリケーションの実行可能なコードおよび／またはデータはメモリ１５０３にロードされてもよく、プロセッサ１５０１により実行される。オペレーティングシステムは、Ｍｉｃｒｏｓｏｆｔ（登録商標）会社からのＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム、アップル会社からのＭａｃ  ＯＳ（登録商標）／ｉＯＳ（登録商標）、Ｇｏｏｇｌｅ（登録商標）会社からのＡｎｄｒｏｉｄ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｕｎｉｘ（登録商標）または他のリアルタイムまたは組み込みオペレーティングシステム（例えばＶｘＷｏｒｋｓ）のような任意のタイプのオペレーティングシステムであってもよい。
【００５６】
システム１５００は、ＩＯ装置、例えば装置１５０５〜１５０８をさらに備えてもよく、ネットワークインターフェース装置１５０５、選択可能な入力装置１５０６および他の選択可能なＩＯ装置１５０７を備える。ネットワークインターフェース装置１５０５は、無線送受信機および／またはネットワークインターフェースカード（ＮＩＣ）を備えてもよい。前記無線送受信機は、ＷｉＦｉ送受信機、赤外送受信機、ブルートゥース（登録商標）送受信機、ＷｉＭａｘ送受信機、無線セルラーホン送受信機、衛星送受信機（例えば、全地球測位システム（ＧＰＳ）送受信機）または他の無線周波数（ＲＦ）送受信機またはそれらの組合せであってもよい。ＮＩＣはイーサネット（登録商標）カードであってもよい。
【００５７】
入力装置１５０６は、マウス、タッチパッド、タッチスクリーン（それは表示装置１５０４と一体化されてもよい）、ポインタデバイス（例えばスタイラス）および／またはキーボード（例えば、物理キーボードまたはタッチスクリーンの一部として表示された仮想キーボード）を備えてもよい。例えば、入力装置１５０６は、タッチスクリーンに接続されるタッチスクリーンコントローラを含んでもよい。タッチスクリーンおよびタッチスクリーンコントローラは、例えば複数種のタッチ感度技術（容量、抵抗、赤外および表面音波の技術を含むが、それらに限定されない）のいずれか、およびタッチスクリーンの１つまたは複数の接触点を決定するための他の近接センサアレイまたは他の素子を用いてそのタッチ点および移動または断続を検出できる。
【００５８】
ＩＯ装置１５０７は音声装置を備えてもよい。音声装置は、スピーカおよび／またはマイクロホンを含んでもよく、それにより音声認識、音声コピー、デジタル記録および／または電話機能のような音声サポートの機能を促進する。他のＩＯ装置１５０７は、汎用シリアルバス（ＵＳＢ）ポート、パラレルポート、シリアルポート、印刷機、ネットワークインターフェース、バスブリッジ（例えば、ＰＣＩ−ＰＣＩブリッジ）、センサ（例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサ等のような動きセンサ）またはそれらの組合せをさらに備えてもよい。装置１５０７は、結像処理サブシステム（例えば、カメラ）をさらに備えてもよく、前記結像処理サブシステムは、カメラ機能（例えば、写真およびビデオ断片の記録）を促進するための電荷カップリング装置（ＣＣＤ）または相補型金属酸化物半導体（ＣＭＯＳ）光学センサのような光学センサを備えてもよい。あるセンサは、センサハブ（図示せず）によって相互接続部材１５１０に接続されてもよく、キーボードまたは熱センサのような他の装置は、組み込みコントローラ（図示せず）により制御されてもよく、これはシステム１５００の特定配置または設計により決められる。
【００５９】
データ、アプリケーション、１つまたは複数のオペレーティングシステム等のような情報の永久記憶を提供するために、大容量記憶装置（図示せず）は、プロセッサ１５０１に接続されてもよい。様々な実施形態において、薄型化と軽量化のシステム設計を実現し且つシステムの応答能力を向上させるために、このような大容量記憶装置は、ソリッドステート装置（ＳＳＤ）によって実現できる。なお、他の実施形態において、大容量記憶装置は、主にハードディスクドライブ（ＨＤＤ）で実現されてもよく、少量のＳＳＤ記憶量は、ＳＳＤキャッシュとして停電イベント期間にコンテキスト状態および他のこのような情報の不揮発性記憶を実現し、それによりシステム動作が再開する時に通電を速く実現できる。さらに、フラッシュデバイスは、例えばシリアルペリフェラルインターフェース（ＳＰＩ）によってプロセッサ１５０１に接続されてもよい。このようなフラッシュデバイスは、システムソフトウェアの不揮発性記憶に用いられてもよく、前記システムソフトウェアは、前記システムの基本入力／出力ソフトウェア（ＢＩＯＳ）および他のファームウェアを備える。
【００６０】
記憶装置１５０８は、任意の１種または複数種の本明細書に記載の方法または機能を体現する１つまたは複数の命令セットまたはソフトウェア（例えば、モジュール、ユニットおよび／またはロジック１５２８）が記憶されるコンピュータアクセス可能な記憶媒体１５０９（機械可読記憶媒体またはコンピュータ可読媒体とも呼ばれる）を備えてもよい。モジュール／ユニット／ロジック１５２８は、上記した検索エンジン、エンコーダ、インタラクションログ記録モジュールのような上記構成要素のいずれかを示してもよい。モジュール／ユニット／ロジック１５２８は、さらにデータ処理システム１５００により実行される期間にメモリ１５０３内および／またはプロセッサ１５０１内に完全または少なくとも部分的に存在してもよく、ここで、メモリ１５０３およびプロセッサ１５０１も、機器アクセス可能な記憶媒体を構成する。モジュール／ユニット／ロジック１５２８は、さらにネットワークを介してネットワークインターフェース装置１５０５を経由して送受信されてもよい。
【００６１】
コンピュータ可読記憶媒体１５０９は、以上に説明されたいくつかのソフトウェア機能を永続的に記憶してもよい。コンピュータ可読記憶媒体１５０９は、例示的な実施形態において単一の媒体として示されたが、用語「コンピュータ可読記憶媒体」は、前記１つまたは複数の命令セットが記憶される単一の媒体または複数の媒体（例えば、集中型または分散型データベース、および／または関連するキャッシュおよびサーバ）を備えることを理解すべきである。用語「コンピュータ可読記憶媒体」は、さらに命令セットを記憶またはコーディング可能な任意の媒体を備えることを理解すべきであり、前記命令セットは、機器により実行され且つ前記機器に本出願の任意の１種または複数種の方法を実行させる。従って、用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリおよび光学媒体と磁気媒体または任意の他の非一時的機械可読媒体を備えるが、それらに限定されないことを理解すべきである。
【００６２】
本明細書に記載のモジュール／ユニット／ロジック１５２８、構成要素および他の特徴は、ディスクリートハードウェアコンポーネントとして実現されてもよく、またはハードウェアコンポーネント（例えばＡＳＩＣＳ、ＦＰＧＡ、ＤＳＰまたは類似装置）の機能に統合されてもよい。さらに、モジュール／ユニット／ロジック１５２８は、ハードウェア装置内のファームウェアまたは機能回路として実現されてもよい。また、モジュール／ユニット／ロジック１５２８は、ハードウェア装置およびソフトウェアコンポーネントの任意の組合せで実現されてもよい。
【００６３】
なお、システム１５００は、データ処理システムの各種の構成要素を有するように示されているが、任意の具体的な構造または構成要素の相互接続方式を限定するものではないことに注意すべき、それは、このような詳細が本出願の実施形態に密接な関係がないためである。また、より少ない構成要素またはより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバおよび／または他のデータ処理システムは、本出願の実施形態と共に使用されてもよい。
【００６４】
上記詳細な説明の一部は、コンピュータメモリにおけるデータビットに対する演算のアルゴリズムおよび記号表現で示される。これらのアルゴリズムの説明および表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。ここで、アルゴリズムは、通常、所望の結果につながる首尾一貫した操作列（ｓｅｑｕｅｎｃｅ  ｏｆ  ｏｐｅｒａｔｉｏｎｓ）と考えられる。これらの操作とは、物理量に対して物理的操作を行う必要となるステップを指す。
【００６５】
ただし、これらの全ておよび類似の用語は、いずれも適切な物理量に関連付けられ、且つただこれらの量に適用される適切なラベルであることに注意すべきである。特に断らない限り、本出願の全体にわたって用語（例えば、添付している特許請求の範囲に説明された用語）による説明とは、コンピュータシステムまたは類似の電子計算装置の動作および処理であり、前記コンピュータシステムまたは電子計算装置は、コンピュータシステムのレジスタおよびメモリに物理（例えば、電子）量としてデータを示し、且つ前記データをコンピュータシステムメモリまたはレジスタまたは他のこのような情報メモリ、伝送または表示装置内において類似に物理量として示される他のデータに変換する。
【００６６】
本出願の実施形態は、さらに本明細書における操作を実行するための装置に関する。このようなコンピュータプログラムは、非一時的コンピュータ可読媒体に記憶される。機器可読媒体は、機器（例えば、コンピュータ）可読な形態で情報を記憶する任意の機構を備える。例えば、機器可読（例えば、コンピュータ可読）媒体は、機器（例えば、コンピュータ）可読記憶媒体（例えば、読み出し専用メモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリメモリ）を備える。
【００６７】
上記図面に示されるプロセスまたは方法は、ハードウェア（例えば、回路、専用ロジック等）、ソフトウェア（例えば、非一時的コンピュータ可読媒体に具現化される）、または両方の組合せを含む処理ロジックにより実行されてもよい。前記プロセスまたは方法は、本明細書において特定の順序に応じて説明されるが、説明された操作の一部は、異なる順序に応じて実行されてもよい。また、いくつかの操作は、順番ではなく並行に実行されてもよい。
【００６８】
本出願の実施形態は、いずれかの特定のプログラミング言語を参照して説明されていないが、複数種のプログラミング言語で本明細書に記載の本出願の実施形態の教示を実現できることを理解すべきである。
【００６９】
以上の明細書では、本出願の具体的な例示的な実施形態を参照してその実施形態を説明した。明らかなように、添付している特許請求の範囲に記載の本出願のより広い趣旨および範囲を逸脱しない限り、様々な変形が可能である。従って、限定的なものではなく例示的なものとして本明細書および図面を理解すべきである。
【図１】
0006742224.tif 000002
【図２】
0006742224.tif 000003
【図３】
0006742224.tif 000004
【図４】
0006742224.tif 000005
【図５】
0006742224.tif 000006
【図６】
0006742224.tif 000007
【図７】
0006742224.tif 000008
【図８】
0006742224.tif 000009