(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024146718
(43)【公開日】2024-10-15
(54)【発明の名称】クエリされたコンテンツ取得のためのモバイルコンピューティングネットワークプログラミング
(51)【国際特許分類】
G06F 8/30 20180101AFI20241004BHJP
G08G 1/00 20060101ALI20241004BHJP
G06F 8/60 20180101ALI20241004BHJP
【FI】
G06F8/30
G08G1/00 A
G06F8/60
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023185776
(22)【出願日】2023-10-30
(31)【優先権主張番号】18/194,506
(32)【優先日】2023-03-31
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】521042770
【氏名又は名称】ウーブン・バイ・トヨタ株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100147555
【弁理士】
【氏名又は名称】伊藤 公一
(74)【代理人】
【識別番号】100123593
【弁理士】
【氏名又は名称】関根 宣夫
(74)【代理人】
【識別番号】100133835
【弁理士】
【氏名又は名称】河野 努
(74)【代理人】
【識別番号】100135976
【弁理士】
【氏名又は名称】宮本 哲夫
(72)【発明者】
【氏名】ジャーン-フランスワー バスティエン
【テーマコード(参考)】
5B376
5H181
【Fターム(参考)】
5B376AB40
5B376BC31
5B376FA21
5H181AA01
5H181BB04
5H181BB05
5H181CC03
5H181CC04
5H181CC11
5H181CC12
5H181CC14
5H181EE10
5H181FF04
5H181FF05
5H181FF10
(57)【要約】
【課題】モバイルコンピューティングネットワークプログラミングを提供する。
【解決手段】クエリされたコンテンツ取得に対するモバイルコンピューティングネットワークプログラミングは、クライアントデバイスからモバイルコンピューティングネットワーク群によって取得可能なデータのターゲットコンテンツに対するクエリを受信し、クエリはターゲットコンテンツを識別するターゲットコンテンツ識別子を含み、ターゲットコンテンツを取得するタスクをプログラミングし、タスクはモバイルコンピューティングネットワークの利用可能なリソースを用いて各モバイルコンピューティングネットワークによって実行可能にプログラムされ、タスクを各モバイルコンピューティングネットワークに送信し、モバイルコンピューティングネットワーク群の中の各モバイルコンピューティングネットワークからターゲットコンテンツを含むデータを受信することによって実行される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
クライアントデバイスから、モバイルコンピューティングネットワーク群によって取得可能なデータのターゲットコンテンツに対するクエリを受信することであって、前記クエリは前記ターゲットコンテンツを識別するターゲットコンテンツ識別子を含む、クエリを受信することと、
前記ターゲットコンテンツを取得するタスクをプログラミングすることであって、当該タスクは、モバイルコンピューティングネットワークの利用可能なリソースを用いて、それぞれのモバイルコンピューティングネットワークによって実行可能にプログラミングされる、タスクをプログラミングすることと、
それぞれのモバイルコンピューティングネットワークにタスクを送信することと、
モバイルコンピューティングネットワーク群の中のそれぞれのモバイルコンピューティングネットワークから前記ターゲットコンテンツを含むデータを受信すること、
とを含む方法。
【請求項2】
前記タスクをプログラミングすることは、
モバイルコンピューティングネットワーク群の中から、前記ターゲットコンテンツを直接検出するための組み込み機能を有するそれぞれのモバイルコンピューティングネットワークを決定することと、
前記組み込み機能を有さないそれぞれのモバイルコンピューティングネットワークに対して、前記ターゲットコンテンツを検出するためのタスク内の検出サブタスクをプログラミングすることと、を含む請求項1に記載の方法。
【請求項3】
前記タスクを送信することは、
モバイルコンピューティングネットワークへの接続が帯域幅閾値よりも高い帯域幅を有することの検出に応答して、それぞれのモバイルコンピューティングネットワークに前記検出サブタスクを送信すること、を含む請求項2に記載の方法。
【請求項4】
前記クエリは、前記ターゲットコンテンツの優先度値を含んでおり、
前記タスクをプログラミングすることは、同時に実行されるタスクの他の優先度値に対する優先度値に基づいて、それぞれのモバイルコンピューティングネットワークの保持ポリシーを調整することを含み、
前記タスクを送信することは、それぞれのモバイルコンピューティングネットワークにタスク及び調整された前記保持ポリシーを送信することを含む、請求項1に記載の方法。
【請求項5】
前記保持ポリシーは、取得された前記ターゲットコンテンツのそれぞれのインスタンスをパージする確率を含んでおり、パージの確率は優先度値に逆相関する、請求項4に記載の方法。
【請求項6】
パージの確率は、経過時間及び優先度値の関数である、請求項5に記載の方法。
【請求項7】
前記保持ポリシーは、取得された前記ターゲットコンテンツのそれぞれのインスタンスをフィルタリングする確率を含んでおり、フィルタリングする確率は優先度値に反比例し且パージの確率よりも大きい、請求項5に記載の方法。
【請求項8】
前記タスクをプログラミングすることは、
取得された前記ターゲットコンテンツのそれぞれのインスタンスをフィルタリングするためにタスク内のフィルタリングサブタスクをプログラミングすることであって、フィルタリングサブタスクは、モバイルコンピューティングネットワークの利用可能なリソースを使用してそれぞれのモバイルコンピューティングネットワークによって実行されるようにプログラミングされる、フィルタリングサブタスクをプログラミングすることを含む、請求項7に記載の方法。
【請求項9】
前記保持ポリシーは、取得された前記ターゲットコンテンツのそれぞれのインスタンスを圧縮する確率を含んでおり、圧縮の確率は優先度値に逆相関し、パージの確率よりも大きい、請求項5に記載の方法。
【請求項10】
前記タスクをプログラミングすることは、
取得された前記ターゲットコンテンツのそれぞれのインスタンスを圧縮するためにタスク内の圧縮サブタスクをプログラミングすることであって、圧縮サブタスクは、モバイルコンピューティングネットワークの利用可能なリソースを使用してそれぞれのモバイルコンピューティングネットワークによって実行されるようにプログラミングされる、圧縮サブタスクをプログラミングすることを含む、請求項9に記載の方法。
【請求項11】
更に、前記ターゲットコンテンツの目標量が受信されるまでの遅延を推定することを含み、
前記クエリは、前記ターゲットコンテンツの目標量を含む、請求項1に記載の方法。
【請求項12】
前記遅延は、モバイルコンピューティングネットワークのそれぞれに対して、モバイルコンピューティングネットワークが前記ターゲットコンテンツに遭遇する尤度、モバイルコンピューティングネットワークへの接続の帯域幅、モバイルコンピューティングネットワークの利用可能なリソースの数に基づいて推定される、請求項11に記載の方法。
【請求項13】
更に、前記ターゲットコンテンツの目標量を取得し且つ送信するための、モバイルコンピューティングネットワーク群によるエネルギー消費を推定することを含む、請求項11に記載の方法。
【請求項14】
前記エネルギー消費は、モバイルコンピューティングネットワークのそれぞれに対して、タスクの複雑さ、モバイルコンピューティングネットワークへの接続の種類に基づいて推定される、請求項13に記載の方法。
【請求項15】
更に、推定された前記遅延及び推定された前記エネルギー消費を前記クライアントデバイスに送信することを更に含む、請求項13に記載の方法。
【請求項16】
前記データを受信することは、取得された前記ターゲットコンテンツのそれぞれのインスタンスのメタデータを受信することを含む、請求項1~15の何れか一項に記載の方法。
【請求項17】
前記データを受信することは、取得された前記ターゲットコンテンツのそれぞれのインスタンスのメタデータの受信に応答して、取得された前記ターゲットコンテンツのそれぞれのインスタンスに対応する送信優先度値を含むコンテンツ送信ポリシーを送信することを含む、請求項16に記載の方法。
【請求項18】
前記データを受信することは、前記送信優先度値に基づいた順序において、取得された前記ターゲットコンテンツのそれぞれのインスタンスの中から、取得された前記ターゲットコンテンツの第1のインスタンスを受信することを含む、請求項17に記載の方法。
【請求項19】
クライアントデバイスから、モバイルコンピューティングネットワーク群によって取得可能なデータのターゲットコンテンツに対するクエリを受信することであって、前記クエリは前記ターゲットコンテンツを識別するターゲットコンテンツ識別子を含む、クエリを受信することと、
前記ターゲットコンテンツを取得するタスクをプログラミングすることであって、当該タスクは、モバイルコンピューティングネットワークの利用可能なリソースを用いて、それぞれのモバイルコンピューティングネットワークによって実行可能にプログラムされる、タスクをプログラミングすることと、
それぞれのモバイルコンピューティングネットワークにタスクを送信することと、
モバイルコンピューティングネットワーク群の中のそれぞれのモバイルコンピューティングネットワークから前記ターゲットコンテンツを含むデータを受信すること、
を含む処理をプロセッサに動作を実行させるためのプロセッサによって実行可能な命令を含む非一時的なコンピュータ可読媒体。
【請求項20】
クライアントデバイスから、モバイルコンピューティングネットワーク群によって取得可能なデータのターゲットコンテンツに対するクエリを受信することであって、前記クエリは前記ターゲットコンテンツを識別するターゲットコンテンツ識別子を含む、クエリを受信することと、
前記ターゲットコンテンツを取得するタスクをプログラミングすることであって、当該タスクは、モバイルコンピューティングネットワークの利用可能なリソースを用いて、それぞれのモバイルコンピューティングネットワークによって実行可能にプログラムされる、タスクをプログラミングすることと、
それぞれのモバイルコンピューティングネットワークにタスクを送信することと、
モバイルコンピューティングネットワーク群の中のそれぞれのモバイルコンピューティングネットワークから前記ターゲットコンテンツを含むデータを受信すること、
を含む処理を実行するように構成された回路を含むコントローラを有する装置。
【発明の詳細な説明】
【背景技術】
【0001】
分散型データベースは通常、データベースを複製し、すべてのクエリを元のデータベースではなく複製に送信することによってクエリ(要求検索、問い合わせ)を実行する。異なる製品間の接続性が高まるにつれ、ソフトウェア開発者は、ユーザが異なる製品でのエクスペリエンスをカスタマイズできるようにするための新しいアプリケーションの開発を模索している。アプリケーションを開発するために、ソフトウェア開発者は、製品上で確実に動作するアプリケーションを開発するために、製品内のデータ構造に依存する。場合によっては、アプリケーションプログラムインターフェイス(API)を使用すると、アプリケーションを製品に合わせて特別に調整することなく、アプリケーションが製品とデータを交換できるようになる。ただし、場合によっては、製品内で利用可能なデータの種類とそのデータの形式を理解すると、ソフトウェア開発者がアプリケーションを強化して製品のユーザエクスペリエンスを向上させるのに役立つ。
【発明の概要】
【0002】
本開示の態様は、添付の図面とともに以下の詳細な説明を読むことにより最もよく理解される。業界の標準的な慣行に従って、さまざまな特徴が一定の縮尺で描かれていないことに注意されたい。実際、議論を明確にするために、さまざまな特徴の寸法を任意に拡大または縮小することができる。
【図面の簡単な説明】
【0003】
【
図1】本開示の少なくともいくつかの実施形態によるモバイルコンピューティングネットワークコンテンツクエリおよびキャプチャ(取得)のためのシステムの模式図である。
【
図2】本開示の少なくともいくつかの実施形態によるモバイルコンピューティングネットワークコンテンツクエリのためのグラフィカルユーザインターフェース(GUI)の図である。
【
図3】本開示の少なくともいくつかの実施形態によるコンテンツ検索タスクのデータ構造の図である。
【
図4】本開示の少なくともいくつかの実施形態によるクエリされたコンテンツ検索システムの概略図である。
【
図5】本開示の少なくともいくつかの実施形態によるモバイルコンピューティングネットワークコンテンツのクエリおよび取得の動作フローである。
【
図6】本開示の少なくともいくつかの実施形態によるコンテンツクエリを受信するための動作フローである。
【
図7】本開示の少なくともいくつかの実施形態によるコンテンツクエリタスクをプログラミングするための動作フローである。
【
図8】本開示の少なくともいくつかの実施形態によるコンテンツクエリを送信するための動作フローである。
【
図9】本開示の少なくともいくつかの実施形態によるクエリされたコンテンツを受信するための動作フローである。
【
図10】本開示の少なくともいくつかの実施形態によるモバイルコンピューティングネットワークコンテンツのクエリおよび取得のためのハードウェア構成の図である。
【発明を実施するための形態】
【0004】
以下の開示は、提供される主題の異なる特徴を実装するための多くの異なる実施形態または例を提供する。本開示を簡略化するために、コンポーネント、値、動作、材料、配置などの具体例を以下に説明する。もちろん、これらは単なる例であり、限定することを意図したものではない。他のコンポーネント、値、動作、材料、配置などが考えられる。例えば、以下の説明における第2の特徴の上方(over)または上(on)に第1の特徴を形成することには、第1の特徴と第2の特徴が直接接触して形成される実施形態が含まれる場合があり、また、第1および第2の特徴が直接接触しないように、追加の特徴が第1の特徴と第2の特徴との間に形成される実施形態も含まれる場合がある。さらに、本開示は、さまざまな例において参照番号および/または文字を繰り返す場合がある。この繰り返しは、簡略化および明確化を目的としたものであり、それ自体が、議論される様々な実施形態および/または構成の間の関係を規定するものではない。
【0005】
さらに、本明細書では、「下(beneath)」、「下(below)」、「下(lower)」、「上(above)」、「上(upper)」などの空間的に相対的な用語が、ある要素または特徴と別の要素または特徴との関係を説明するために、説明を容易にするために使用される場合がある。空間的に相対的な用語は、図面に示されている向きに加えて、使用中または動作中の装置の異なる向きを包含するように意図されている。装置は、他の向き(90度回転されるか、または他の向き)であってもよく、本明細書で使用される空間的に相対的な記述子は、同様に、それに応じて解釈されてもよい。
【0006】
分散型データベースとしての車両群は、すべてのデータを各車両からアップロードする必要があり、その接続と帯域幅が不安定で高価であるため、複製に費用と時間がかかる。分散型データベースに直接クエリを実行する場合は、クエリによってシステムがクラッシュしないように注意して行う必要がある。
【0007】
分散型データベースの動作状態、すなわち、群内の各車両の動作状態を維持するのを助けるために、本明細書の少なくともいくつかの実施形態は、実現可能性についてクエリを選別し、群内の異なるモデルに合わせてクエリを調整する。
【0008】
少なくともいくつかの実施形態では、モデルに対してクエリを調整することは、計算リソースのデータベースを参照することと、そのモデルに対してプロセスを実行することを含む。少なくともいくつかの実施形態では、プロセスは、特定のモデルで実行されるように作成され、そのモデルの車両がリソース不足を回避できるようにする。少なくともいくつかの実施形態では、計算リソースの量が少ないモデルであっても、より複雑なタスクを実行するようにプログラムされており、データ収集にかかる時間が極端に長い場合にはクエリ作成者に通知される。少なくともいくつかの実施形態では、クエリエンジンは、要求されたデータを生成するイベントに遭遇する尤度(可能性)、サーバへの帯域幅、およびモデルの計算リソースに基づいて、結果がいつ得られるかを推定する。
【0009】
少なくともいくつかの実施形態では、車両は、要求されたデータを収集するためにクエリを実行するように構成される。少なくともいくつかの実施形態では、車両は、データをアップロードするための1つ以上の条件が満たされるまで、要求されたデータを車両内に記憶するように構成される。少なくともいくつかの実施形態では、車両は、複数のクエリを実行し、アップロードするまで要求されたデータの複数のインスタンスを保存するように構成される。少なくともいくつかの実施形態では、車両は、利用できないストレージリソースに応じて、サーバによって確立された対応する優先度値に従って、要求されたデータを圧縮、フィルタリング、またはパージ(除去)するように構成される。本明細書の少なくともいくつかの実施形態は、分散型データベースに直接クエリを実行し、結果を受信する可能性および待ち時間を、それらのクエリに通知することを可能にする。
【0010】
ソフトウェア開発者、保険会社、市場調査員、法執行官などのユーザは、オンデマンドデータ取得(on-demand data retrieval:ODDR)システムを使用して、グラフィカルインターフェイス(GUI)などのユーザインターフェイスにデータ要求を入力できる。ソフトウェア開発者とは、例えば車両上で動作するアプリケーションやミドルウェア、OS(オペレーティングシステム)などを開発するソフトウェア開発者である。アプリケーションの例には、物体認識アプリケーション、道路認識アプリケーション、センサフュージョンアプリケーション、位置推定アプリケーション、パスプランナアプリケーション、コントローラアプリケーションなどの自動運転システムアプリケーションが含まれる。データ要求は分析され、サーバに格納され、サーバによって車両に送信される。サーバ側では、データ要求がストレージユニットに保存され、保存された要求に基づいて要求キューが生成される。ユーザは、データ要求のステータスの更新を確認したり要求したりできる。たとえば、データ要求が車両に送信される前にまだサーバ内にあるにもかかわらず、ステータスが「保留中」と表示される場合がある。サーバがデータ要求を車両に送信すると、ステータスが「送信済み」に更新される場合がある。これにより、ユーザは車両に対して行われたデータ要求のステータスを確認および追跡できるようになる。当業者であれば、説明を明確にするために一台の車両について言及していることを認識するであろう。ただし、この説明は1台の車両だけでなく、車両のグループにも適用できる。
【0011】
データ要求を生成するためのユーザインターフェイスには、車両識別情報、要求されるデータの種類、開始時刻及び終了時刻に関連するフォームが含まれる。いくつかの実施形態では、開始時間および終了時間は、Unix(登録商標)エポック時間からの経過時間であるUnix(登録商標)時間などの絶対時間である。いくつかの実施形態では、開始時間および終了時間は、データ要求が車両によって受信された時間に対する相対的な時間である。いくつかの実施形態では、開始時間および終了時間は、トリガイベントに対する相対時間である。トリガイベントは、ユーザがデータを求めているか、車両によるデータ要求の受信を求めている車両内または車両周囲の環境での出来事である。例えば、車両の周囲の環境に起因するトリガイベントには、急加速、急ブレーキ、データ要求のターゲットの画像のキャプチャ、データ要求のターゲットの検出、または他の適切な出来事が含まれる。データ要求のステータスを監視するためのユーザ情報には、データ要求の識別情報と、保留中または送信済みなどのデータ要求のステータスが含まれる。
【0012】
いくつかの実施形態では、データ要求が車両によって受信されると、データ要求は、データ要求のソースに関して依存しないデータ要求となるように処理される。いくつかの実施形態では、データ要求識別子(ID)が、車両によって、例えば車両内の要求アブストラクタによって、受信されたデータ要求に割り当てられる。いくつかの実施形態では、データ要求を車両に送信する前に、データ要求IDがデータ要求に割り当てられる。いくつかの実施形態では、データ要求は車両内で実行されているアプリケーションによって生成され、アプリケーションはデータ要求IDを割り当てる。言い換えれば、データ要求を車両に送信するプログラムやシステムに関係なく、データは一貫した方法で処理される。いくつかの実施形態では、データ要求は車両内に格納されたソフトウェアコンポーネントによって生成され、データは外部装置から受信したデータ要求と一致して処理される。これは、アプリケーションがロガーへのデータ収集要求を生成するトリガデータ収集と、ODDRベースの外部データ収集要求との間で同じデータ収集ソフトウェアコンポーネントを共有するのに役立つ。
【0013】
いくつかの実施形態では、データ要求が車両によって受信されると、データ要求が車両内のセンサおよびサーバに依存しないように処理される。いくつかの実施形態では、データ要求は、車両内で実行されているアプリケーションによって生成される。いくつかの実施形態では、アプリケーションプログラミングインターフェース(API)を使用して、アプリケーションから車両内のセンサまたはサーバからの情報に依存しないデータ要求を行うことができる。これにより、特定のセンサーモデルに対する要求をプログラムすることなく、ユーザのデータ収集能力を最大限に高めることができる。その後、データ要求はデータコレクタに転送され、トリガイベントの発生に応じて要求されたデータが収集される。交通事故など、トリガイベントがすでに発生している状況では、車両内の記憶装置に保存されているデータに基づいてデータ要求が満たされる。収集されたデータの時間枠、つまり開始時刻及び終了時刻は、データ要求に基づいて決定される。収集されたデータはサーバに転送される。
【0014】
収集されたデータはサーバに格納され、データ要求の完了に関する通知がユーザに送信される。たとえば、ユーザインターフェイス上でデータ要求のステータスが「完了」に更新される。
【0015】
場合によっては、予算管理システムまたは支払いシステムがサーバ側または車両側に実装されており、ユーザはデータ要求に対して料金を請求される。料金は、要求の送信時またはデータ収集の完了時に支払われる。料金は、要求されるデータの種類と量に基づいて調整できる。いくつかの実施形態では、ユーザに請求される料金の総額がユーザの予算の最大閾値に達すると、ユーザからのデータ要求は拒否される。
【0016】
このODDRシステムにより、ユーザは車両ごとに収集された情報にオンデマンドスタイルでアクセスできる。つまり、データは必ずしも継続的に収集される必要はなく、ユーザの特定の欲求を満たすために収集される可能性がある。いくつかの実施形態では、ODDRシステムは、ソフトウェア開発者などのユーザが、収集されたデータに基づいて探索的な方法でソフトウェアの設計、実装、およびパラメータ調整を更新するためのデータを収集するのを支援し、その結果、ユーザは、たとえば、無線(OTA)アップデートとして、ネットワーク経由でサーバから車両にアップデートすることを提供することによってソフトウェアを継続的に改善することができる。いくつかの実施形態では、ODDRシステムは、データを収集するアプリケーション用の機械学習モデルを開発する機械学習開発者が、モデルの弱点や問題を継続的に修正するためにモデルを更新できるように、モデルが最初に開発されたときには利用できなかったデータを用いてモデルを教育するのに役立つ。場合によっては、保険会社が交通事故に関連するデータを収集できる場合がある。場合によっては、法執行機関が犯罪や交通事故に関連する情報を収集できる場合がある。
【0017】
図1は、いくつかの実施形態による要求検索システム100の概略図である。要求検索システム100は、ユーザインターフェース(UI)110を含む。UI110は、車両140からのデータに対するユーザ要求を受信するように構成されている。要求検索システム100は、UI110からユーザ要求を受信し、ユーザ要求を車両140に送信し、車両140からデータを受信し、アクセス可能なコンソール150を介してユーザへデータを提供するように構成されたサーバ120をさらに含む。サーバ120は、UI110および車両140と通信するための通信部130を含む。要求検索システム100はさらに、車両140から収集されたデータをユーザへ通信するように構成されたアクセス可能なコンソール150を含む。
【0018】
UI110は、ユーザから入力命令を受信するように構成されている。いくつかの実施形態では、ユーザにはソフトウェア開発者が含まれる。いくつかの実施形態では、ユーザには機械学習モデルの開発者が含まれる。いくつかの実施形態では、ユーザには保険会社が含まれる。いくつかの実施形態では、ユーザには法執行職員が含まれる。いくつかの実施形態では、ユーザには市場調査会社が含まれる。UI110は、どの種類の車両およびどの種類のデータが要求されているかを選択するためのオプションをユーザに提供する。いくつかの実施形態では、UI110は、車両識別情報、要求されるデータの種類、開始時刻および終了時刻に関連するフォームを使用してデータ要求を生成することができる。いくつかの実施形態では、開始時間および終了時間は、Unix(登録商標)エポック時間からの経過時間であるUnix(登録商標)時間などの絶対時間である。いくつかの実施形態では、開始時間および終了時間は、データ要求が車両によって受信された時間に対する相対的な時間である。いくつかの実施形態では、開始時間および終了時間は、トリガイベントに対する相対時間である。いくつかの実施形態では、UI110は、トリガイベントおよびトリガイベントに関連するデータ収集期間を選択するためのオプションもユーザに提供する。いくつかの実施形態では、UI110は、データが要求される車両の種類に関連する情報を含む。いくつかの実施形態では、UI110は、要求のターゲットとして車両を一意に識別できる車両IDを含む。例えば、車両IDには、UUID(Universally Unique Identifier)形式が含まれる。いくつかの実施形態では、UI110は、ユーザが収集したいデータのソースを識別できるデータタイプを含む。たとえば、データタイプには、センサデータが収集されるセンサのセンサID、アプリケーションログが収集されるアプリケーションのアプリケーションIDが含まれる。いくつかの実施形態では、センサIDおよびアプリケーションIDのフォーマットは、ユニバーサルユニーク識別子(UUID)フォーマットを含む。いくつかの実施形態では、UI110はドロップダウンメニューを含む。いくつかの実施形態では、UI110は、データ要求に関連する情報を受信するための編集可能なフィールドを含む。いくつかの実施形態では、UI110は、どのようなデータオプションの種類がユーザに利用可能であるかに関する情報を提供する。いくつかの実施形態では、利用可能なデータオプションの種類はユーザに依存する。例えば、いくつかの実施形態では、法執行機関は保険会社よりも多くのデータオプションを選択することができる。
【0019】
いくつかの実施形態では、UI110はグラフィカルユーザインターフェース(GUI)を含む。いくつかの実施形態では、UI110は、サーバ120に接続可能な携帯電話などのモバイル端末を含む。いくつかの実施形態では、UI110は、RESTfulAPIなどのウェブインターフェースを含む。いくつかの実施形態では、UI110は、サーバ120に接続可能なコンピュータを含む。いくつかの実施形態では、UI110は、サーバ120に無線接続することができる。いくつかの実施形態では、UIは、有線接続を介してサーバ120に接続可能である。UI110は、データ要求のステータスに関する更新をユーザに提供することもできる。いくつかの実施形態では、UI110は、ユーザによる追加のクエリに応答して、データ要求に関するステータス更新を提供する。いくつかの実施形態では、UI110は、サーバ120から更新情報を受信すると、ユーザの介入なしに自動的にデータ要求に関するステータス更新を提供する。いくつかの実施形態では、ステータス更新により、UI110がユーザに対して警報を発する。いくつかの実施形態では、警報は、音声または視覚的な警報を含む。
【0020】
いくつかの実施形態では、UI110は、ユーザから料金の支払いを受け入れる手段を含む。いくつかの実施形態では、UI110は、ユーザが支払いカード情報を入力できるようにするデータ入力フィールドを含む。いくつかの実施形態では、UI110は、磁気ストライプリーダ、バーコードリーダ、チップリーダ、または別の適切なリーダなど、ペイメントカード情報を検出するためのリーダを含む。
【0021】
サーバ120は、UI110および車両140と通信するように構成された通信部130を含む。通信部130は、UI110からデータ要求を受信するように構成された受信器131を含む。いくつかの実施形態では、受信器131は無線受信器を含む。いくつかの実施形態では、受信器は、有線接続を介してデータ要求を受信するように構成される。いくつかの実施形態では、受信器131は、受信したデータ要求に対して初期処理を実行するようにさらに構成される。いくつかの実施形態では、受信されたデータ要求は優先度レベル情報を含む。いくつかの実施形態では、受信器131は、データ要求を提出したユーザの身元(identity)、またはデータ要求を提出したユーザによって支払われた料金に基づいて、データ要求に優先度レベルを割り当てるように構成される。いくつかの実施形態では、受信器131は、受信した各データ要求に要求識別(ID)番号を割り当てるように構成されている。いくつかの実施形態では、サーバ120は、ユーザの身元に基づいて車両140内の特定のセンサへのアクセスを制限するように構成されている。例えば、いくつかの実施形態では、第三者ユーザは、車両140の安全機能に関連するセンサにアクセスすることができない。
【0022】
通信部130は、受信器131によって受信されたデータ要求を記憶するように構成されたメモリユニット132をさらに含む。いくつかの実施形態では、メモリユニット132は、ランダムアクセスメモリ、半導体メモリ、または別の種類のメモリを含む。いくつかの実施形態では、メモリユニット132は、データ要求をデータ要求のステータスとともに記憶するように構成される。いくつかの実施形態では、データ要求のステータスには保留中(車両140へのデータ要求の送信前)、送信後(車両140へのデータ要求の送信に続く)及び完了(車両140から要求されたデータを受信した後)が含まれる。いくつかの実施形態では、メモリユニット132はユーザによってアクセス可能である。いくつかの実施形態では、メモリユニット132内の情報の更新は、メモリユニット132内で更新された情報に関連するユーザの通知をトリガする。いくつかの実施形態では、メモリユニット132は、データ要求を、データ要求が受信された時刻を示すタイムスタンプデータと併せて格納する。いくつかの実施形態では、メモリユニット132は、優先度レベルに関連付けてデータ要求を格納する。いくつかの実施形態では、優先度レベルは、ユーザの身元に基づいて決定される。例えば、いくつかの実施形態では、法執行機関は保険会社よりも高い優先順位を有し、保険会社はソフトウェア開発者などの通常のユーザよりも高い優先順位を有する。いくつかの実施形態では、優先度レベルは、ユーザによって支払われた料金に基づいて決定される。例えば、いくつかの実施形態では、ユーザは、要求されたデータをより早く取得するために、要求の優先度レベルを上げるために料金を支払うことができる。いくつかの実施形態では、データ要求の最初の記憶と車両へのデータ要求の送信との間の時間が増加するにつれて、データ要求の優先度レベルが増加する。
【0023】
通信部130は、送信器133をさらに含む。送信器133は、データ要求のステータスをUI110に送信するように構成される。いくつかの実施形態では、データ要求のステータスはUI110に無線で送信される。いくつかの実施形態では、データ要求のステータスは、有線接続を介してUI110に送信される。いくつかの実施形態では、送信器133は、メモリユニット132内の更新に応答してデータ要求の更新を自動的に提供するように構成されている。いくつかの実施形態では、送信器133は、ユーザからの受信された更新要求に応答して、データ要求の更新を提供するように構成されている。いくつかの実施形態では、送信器133は、最初にデータ要求をメモリユニット132に保存する際に、要求IDを自動的に送信するように構成される。いくつかの実施形態では、データ要求のステータスは、データ要求の優先度レベルを含む。いくつかの実施形態では、データ要求のステータスには、データ要求が車両140に送信されるまでの推定時間が含まれる。
【0024】
通信部130は、車両140への送信のためにデータ要求を優先度順位に従って格納するように構成されたクエリキュー134をさらに含む。いくつかの実施形態では、クエリキュー134はメモリユニット132に統合される。いくつかの実施形態では、クエリキュー134は、メモリユニット132から分離される。いくつかの実施形態では、クエリキュー134は、優先度レベルおよびタイムスタンプ情報に基づいてメモリユニット132からデータ要求を読み出すように構成される。いくつかの実施形態では、クエリキュー134は、優先度レベルに基づいて、及び、同じ優先度レベルを有するデータ要求に応答してメモリユニット132に最初に保存してからの時間によって、データ要求を順序付けるように構成される。
【0025】
通信部130は、クエリキュー134から車両140にデータ要求を送信するように構成された送信器135をさらに含む。送信器135は、クエリキュー134内のデータ要求の順序に基づいてデータ要求を車両140に送信するように構成されている。いくつかの実施形態では、データ要求は車両140に無線で送信される。いくつかの実施形態では、データ要求は有線接続によって車両140に送信される。車両140に送信されるデータ要求には、トリガイベント情報、トリガイベントの前後どれくらいの時間にデータを収集すべきかに関するデータ持続時間情報、およびデータを収集すべき車両140のセンサの種類を示すセンサ情報が含まれる。いくつかの実施形態では、車両140に送信されるデータ要求は優先度レベル情報を含む。いくつかの実施形態では、車両140がデータ要求を車両140に送信するための要求をサーバ120に送信するときに、送信器135はデータ要求を車両140に送信するように構成されている。いくつかの実施形態では、車両140が新しいデータ要求を受け入れることができないことを示す情報を通信部130が受信していない限り、通信部130が車両140へデータ要求を送信するのに十分な接続性を有するときはいつでも、送信器135はデータ要求を車両140に送信するように構成される。いくつかの実施形態では、送信器135は、車両140が新しいデータ要求を受信でき、且つ、送信器135が車両140への十分な接続性を有する限り、定期的にデータ要求を車両140に送信するように構成される。いくつかの実施形態では、送信器135は、5個のデータ要求、20個のデータ要求、または他の数のデータ要求のグループなど、データ要求をバッチで車両140に送信するように構成されている。いくつかの実施形態では、送信器135は、車両140からのデータ要求の受信確認を要求するように構成されている。所定の期間車両からの受信確認の受信に失敗したことに応答して、送信器135は、データ要求を再送信するように構成されている。いくつかの実施形態では、メモリユニット132に記憶されたデータ要求のステータスは、通信部130が車両140からデータ要求の受信確認を受信したことに応答して、車両140への提出を示すように更新される。
【0026】
通信部130は、車両140からトリガイベントの発生の通知を受信するように構成された受信器136をさらに含む。いくつかの実施形態では、トリガイベントの発生は、データ要求の受信である。いくつかの実施形態では、受信器136は、トリガイベントの通知を無線で受信するように構成されている。いくつかの実施形態では、受信器136は、有線接続を介してトリガイベントの通知を受信するように構成されている。いくつかの実施形態では、受信器136は、通知されたトリガイベントに関連するデータ要求のステータスを更新するためにメモリユニット132に信号を送信するように構成される。
【0027】
通信部130は、送信器135によって送信されたデータ要求に応答して車両140からデータを受信するように構成された受信器137をさらに含む。いくつかの実施形態では、データは、車両140によって、車両140からサーバ120への送信の単位であるデータパケットに分割され、受信器137は、車両140からデータパケットを受信する。いくつかの実施形態では、受信器137は、データを無線で受信するように構成される。いくつかの実施形態では、受信器137は、有線接続を介してデータを受信するように構成されている。いくつかの実施形態では、受信器137は、要求されたデータの受信に関連するデータ要求のステータスを更新するためにメモリユニット132に信号を送信するように構成される。いくつかの実施形態では、単一のデータ要求に応答するデータは、車両140から単一のパケットで受信される。いくつかの実施形態では、単一のデータ要求に応答するデータは、車両140から複数のパケットで受信される。受信器137は、受信したデータをプリプロセッサ122に転送する。
【0028】
サーバ120は、受信器137からデータを受信し、そのデータに対して前処理を実行して収集データを生成するように構成されたプリプロセッサ122をさらに含む。いくつかの実施形態では、前処理には、データ要求に応じてデータをコンパイルするために複数のパケットからのデータを再構成することが含まれる。いくつかの実施形態では、前処理には、受信したバイトアレイから構造化データをコンパイルするためのデータのパラレル化(de-serializing)が含まれる。いくつかの実施形態では、前処理は、送信前にデータが車両140によって圧縮されている場合、データの解凍を含む。いくつかの実施形態では、前処理には、リードソロモン(RS)符号、ボーズ・チョードリ・ホッケンゲム(BCH)符号、低密度パリティチェック(LDPC)符号などの誤り訂正符号(ECC)による誤り訂正が含まれる。いくつかの実施形態では、前処理は、ユーザに不正確なデータを報告するリスクを低減するために外れ値を除去することによるデータの平滑化を含む。いくつかの実施形態では、前処理は、データ要求ID情報、優先度レベル情報、または他の適切な情報を受信器137から受信したデータに関連付けることを含む。いくつかの実施形態では、情報が理解しやすいフォーマットで利用者に提供され、情報を識別するための専門知識または装置に依存しないように、データは前処理される。
【0029】
サーバ120は、データプリプロセッサ122によって生成された収集データを格納するように構成されたデータストレージ126をさらに含む。いくつかの実施形態では、データストレージ126はメモリユニット132と統合されている。いくつかの実施形態では、データストレージ126はデータストレージ126とは分離される。いくつかの実施形態では、データストレージ126は、ソリッドステートドライブ(SSD)、ランダムアクセスメモリ、または別の適切なメモリを含む。いくつかの実施形態では、データストレージ126は、例えば、UI110またはアクセス可能なコンソール150を使用して、ユーザによってアクセス可能である。いくつかの実施形態では、データストレージ126は、データ要求に関連するデータに応答してユーザに通知するように構成される。いくつかの実施形態では、通知にはユーザへの警報が含まれる。いくつかの実施形態では、警報は、音声または視覚的な警報を含む。いくつかの実施形態では、データストレージ126は、UI110またはアクセス可能なコンソール150に、収集されたデータの利用可能性の通知を自動的に表示させるように構成される。いくつかの実施形態では、データストレージ126は、ユーザがデータ要求を提出することなく、アクセス可能なコンソール150を使用してユーザによってアクセス可能である。いくつかの実施形態では、データストレージ126内のデータは、アクセス可能なコンソール150を介してユーザによって検索可能である。いくつかの実施形態では、収集されたデータはコンソール150内で視覚化される。
【0030】
要求検索システム100は、車両140をさらに含む。車両140は、車両140の内部状態と車両140の周囲の外部環境の両方を検出するセンサを含む。いくつかの実施形態では、センサには、カメラ、LiDARセンサ、RADARセンサ、SONARセンサ、加速度計、ステアリングホイール位置、速度計、または他の適切なセンサが含まれる。車両140は、無線または有線接続を介してデータ要求を受信することができる。
【0031】
いくつかの実施形態では、データ要求の受信に応答して、車両140は、受信したデータ要求にデータ要求IDを割り当てるように構成され、データ要求は、データ要求の発信元のシステムまたはプログラムに依存しないように処理される。別の実施形態では、車両140の代わりに通信部130がデータ要求IDを割り当て、データ要求IDは、通信部130から車両140に送信されるデータ要求に含まれる。データ要求がデータ要求の発信元のシステムまたはプログラムに依存しないようにすることは、異なるユーザおよびシステムからの広範囲のデータ要求を受信して処理するための車両140の能力を拡張するのに役立つ。車両140は、データ要求を処理し、車両140で利用可能などのセンサからのどのタイプの情報がデータ要求を満たすことができるかを決定するためのプロセッサを含む。少なくともいくつかの実施形態では、車両140は、コントローラエリアネットワーク(CAN)などのプロセッサ、コントローラ、またはそれらの組み合わせのネットワークであるモバイルコンピューティングネットワークを含む。少なくともいくつかの実施形態では、各プロセッサは電子制御ユニット(ECU)である。車両140は、センサからのデータを保存するためのメモリをさらに含む。いくつかの実施形態では、プロセッサはメモリにアクセスして、格納されたデータがデータ要求を満たすことができるかどうかを判断する。車両140はさらに、データ要求を満たすとみなされるデータを無線または有線接続を介してサーバ120に送信することができる。いくつかの実施形態では、プロセッサは、受信したデータ要求の優先度レベルに基づいた優先順位で受信したデータ要求を満たすことを試みるように構成される。いくつかの実施形態では、車両140は、受信したデータ要求の優先度レベルに基づいて、データをサーバに優先的に送信するように構成されている。
【0032】
いくつかの実施形態では、車両140のメモリおよびプロセッサは、車両140内の電子制御ユニット(ECU)にソフトウェアアプリケーションを格納および実行するように構成されている。いくつかの実施形態では、データ要求は、ECUに格納されているソフトウェアアプリケーションによって生成される。いくつかの実施形態では、データ要求は、突然の加速、突然のブレーキ、ソフトウェアアプリケーション内で事前定義された特定の物体または特定の風景を含むセンサデータを取得すること、ソフトウェアアプリケーションの「クラッシュ」、ソフトウェアアプリケーション内で検出された異常、または別の適切な検出された発生などのトリガイベントに応答して生成される。いくつかの実施形態では、車両140は、ソフトウェアアプリケーションに関連するトリガイベントの検出に応答して、ソフトウェアアプリケーションの保守者、例えばユーザへの通知を生成するように構成される。いくつかの実施形態では、通知は、無線または有線接続を介して、例えばUI110を通じてユーザに直接送信される。いくつかの実施形態において、通知は、サーバ120を介して、無線又は有線接続を介して、ユーザに送信される。いくつかの実施形態では、通知には音声または視覚的な通知が含まれる。いくつかの実施形態では、通知は、ユーザの介入なしにUI110に通知を自動的に表示させるように構成される。
【0033】
要求検索システム100は、アクセス可能なコンソール150をさらに含む。アクセス可能なコンソール150により、ユーザは、データストレージ126に格納された収集データにアクセスできるようになる。いくつかの実施形態では、アクセス可能なコンソール150は、UI110と統合される。いくつかの実施形態では、アクセス可能なコンソール150は、UI110とは分離される。いくつかの実施形態では、アクセス可能なコンソール150は、サーバ120とは分離した別のサーバを含む。いくつかの実施形態では、アクセス可能なコンソール150は、データストレージ126による収集データの受信に応じて、ユーザからのデータ要求に関連する収集されたデータを自動的に受信する。いくつかの実施形態では、アクセス可能なコンソール150は、ユーザがデータストレージ126を検索して、ユーザがデータ要求を提出することなくデータストレージ126に格納されている収集データのいずれかがユーザにとって有用であるかどうかを、判定することを可能にする。
【0034】
要求検索システム100を使用することにより、ユーザは、受信データを要求したり読み取ったりするための専用機器に頼ることなく、理解しやすい形式で1台以上の車両140から情報を取得することができる。要求検索システム100においてデータ要求に優先順位を付ける機能は、法執行機関または他のユーザがデータを確実に取得できるようにするのに役立つと同時に、ユーザがより速くデータを取得するために料金を支払うことも可能にする。この柔軟性は、広範囲のユーザにとって要求検索システム100の有用性を向上させるのに役立つ。
【0035】
図2は、いくつかの実施形態による要求検索システムのグラフィカルユーザインターフェース(GUI)200および250の図である。いくつかの実施形態では、GUI200は、要求検索システム100(
図1)のUI110として使用可能である。いくつかの実施形態では、GUI200は、受信器131(
図1)による受信のためのデータ要求を生成するために使用可能である。GUI200は、GUI200がユーザから受け入れることができる情報の種類を識別する複数の情報タイプ210を含む。GUI200はさらに、GUI200の対応する情報タイプ210に関連する情報を受け取るように構成された複数のフィールド220を含む。GUI200はさらに、フィールド220内の情報に基づいて、データ要求をサーバ、例えばサーバ120(
図1)に提出するように構成された提出ボタン230を含む。当業者であれば、複数の情報タイプ210の名前および数は単に例示的なものであり、異なる数および種類の情報も本開示の範囲内に含まれることを認識するであろう。
【0036】
いくつかの実施形態では、フィールド220は、ユーザが車両ID、データの種類、開始時刻、および終了時刻を入力するためのフィールドを含む。いくつかの実施形態では、フィールド220は、ユーザがデータ要求の優先度レベルを入力するためのフィールドをさらに含む。いくつかの実施形態では、GUI200は、それぞれの利用可能な優先度レベルに関連付けられた料金を示すなど、ユーザがデータ要求の優先度レベルをどのように高めることができるかに関する情報をさらに含む。いくつかの実施形態では、GUI200は、ユーザがログイン情報を入力してユーザの身元を確立できるようにするためのフィールド220を含む。いくつかの実施形態では、GUI200は、ログイン情報を受信した後にユーザの優先度レベルを表示するように構成されている。いくつかの実施形態では、GUI200は、データ要求の優先度レベルを確立するための料金に関連する支払情報を受け取るためのフィールド220をさらに含む。
【0037】
GUI250は、ユーザがGUI200上の提出ボタン230を選択した後にユーザに表示されるように構成される。いくつかの実施形態では、GUI250は、ODDRシステム100(
図1)のGUI110として使用可能である。GUI250は、データ要求が受信されたことを示す情報を含む。GUI250は、クエリIDラベル260およびクエリIDフィールド270を含む。クエリIDフィールド270に入力するための情報は、サーバがデータ要求を受信して格納した後、サーバ、例えばサーバ120(
図1)から受信される。いくつかの実施形態では、GUI250は車両IDの情報を含む。いくつかの実施形態では、GUI250は、データ要求の優先度レベルに関連する情報を含む。いくつかの実施形態では、GUI250は、保留中、提出済み、完了などのデータ要求のステータスに関する情報を含む。いくつかの実施形態では、GUI250は、データ要求が車両、例えば、車両140(
図1)に提出されるまでの推定時間に関連する情報を含む。少なくともいくつかの実施形態では、GUI250は、要求されたデータが受信されるまでの推定時間に関連する情報を含む。少なくともいくつかの実施形態では、GUI250は、要求されたデータを受信するための推定エネルギー消費に関連する情報を含む。いくつかの実施形態では、GUI250は、サーバからのクエリID情報の受信に応答して自動的に表示される。いくつかの実施形態では、GUI250は、アップロードされたデータ要求に対する更新の要求を提出するユーザに応答して表示される。
【0038】
図3は、いくつかの実施形態による要求検索コマンド310のデータ構造300の図である。いくつかの実施形態では、取得要求コマンド310は、サーバ120から車両140(
図1)に送信される。要求検索コマンド310は、車両、例えば車両140(
図1)へのデータ要求によって求められるデータの種類に関連する情報を含む。
【0039】
要求検索コマンド310には、データ要求の優先度レベルを示す転送優先度パラメータ311が含まれる。要求検索コマンド310はさらに、車両上の他のアプリケーションからデータがあればどの種類のデータを取得すべきかを示すログレベルパラメータ312を含む。例えば、いくつかの実施形態では、要求検索コマンド310は、オブジェクト認識アプリケーションからデータを取得する。ログレベルパラメータ312は、エラーレベルやクリティカルレベルなど、他のアプリケーションからどの種類のデータを取得するかを決定する。いくつかの実施形態では、ログレベルパラメータ312は、要求検索コマンド310から省略されるか、またはログレベルパラメータ312がヌル状態のまま残される。要求検索コマンド310は、データを収集するためのトリガイベントの前および/または後の期間を示す収集時間範囲パラメータ313をさらに含む。時間範囲は、ユーザがGUI200(
図2)に入力した開始時間と終了時間に対応する。要求検索コマンド310はさらに、データ要求に応答して収集されたデータの宛先を示すユニフォームリソースロケータ(URL)エンドポイントパラメータ314を含む。要求検索コマンド310はさらに、時間範囲313からデータをサンプリングする必要がある場合、どのくらいの頻度でデータをサンプリングすべきかを示す頻度パラメータ315を含む。例えば、イベント時刻がt=100秒の場合、時間範囲は開始時刻=-1秒、終了時刻=2秒、頻度が10Hz(100ミリ秒周期)の場合、要求検索コマンドによりt=99.0秒、99.1秒、99.2秒、…、101.9秒、102.0秒のデータが収集される。要求検索コマンド310は、データ要求によって要求されたデータを収集するために使用可能なセンサおよび/またはアプリケーションの種類を示すログIDパラメータ316をさらに含む。いくつかの実施形態では、一意のID(ユニバーサル一意識別子(UUID)など)がすべてのセンサおよびアプリケーションに事前に割り当てられ、ユーザがデータを収集したい一意のIDは、ログIDパラメータ316で指定される。要求検索コマンド310は、データ要求を行ったユーザの身元を示す要求者IDパラメータ317をさらに含む。要求検索コマンド310は、データ要求に関連付けられたトリガイベントを示すイベントIDパラメータ318をさらに含む。要求検索コマンド310は、データ要求を満たすために車両、例えば車両140(
図1)のリソースをどれだけ割り当てるべきかを示す予算IDパラメータ319をさらに含む。当業者であれば、要求検索コマンド310において追加のパラメータが可能であることを理解するであろう。例えば、いくつかの実施形態では、要求検索コマンド310は、トリガイベントが発生する可能性がある地理的領域を示す車両位置パラメータを含む。当業者であれば、要求検索コマンド310が
図3のパラメータのすべてを必ずしも含むわけではないことも理解するであろう。例えば、いくつかの実施形態では、予算IDパラメータ319が省略される。
【0040】
図4は、いくつかの実施形態による要求検索システム400のブロック図である。いくつかの実施形態では、要求検索システム400は、要求検索システム100(
図1)の一部である。いくつかの実施形態では、要求検索システム400は、要求検索システム100(
図1)と連携して使用可能である。いくつかの実施形態では、要求検索システム400は、要求検索システム100(
図1)とは別個である。
【0041】
要求検索システム400は、車両または車両の周囲に関する情報を取得するように構成された検出車両システム410を含む。検出車両システム110は、車両および周囲の情報を取得し、その情報をサーバに送信する。要求検索システム400は、情報を受信し、情報を符号化し、情報をユーザ端末460に配布するように構成されたサーバ440をさらに含む。
【0042】
検出車両システム410は、センサ414、全地球測位システム(GPS)416、および地
図418からデータを受信するように構成された電子制御ユニット(ECU)420を含む。ECU420は、状況検出器422と、データ特定器432と、ログ収集器434と、ログ送信器436を含む。状況検出器422は、車両制御監視器424、物体検出器426、およびシーン(風景)検出器428を含む。
【0043】
いくつかの実施形態では、ECU420は、GPS416および地
図418からデータを受信し、検出された物体および/または既知の物体および/または道路の位置に対する車両の位置および車両の姿勢および状態を決定するように構成された位置推定ユニットをさらに含む。姿勢は、道路などの基準点に対する車両の向きである。いくつかの実施形態では、車両の位置は、車両の位置ベクトルも指す。車両の姿勢および状態とは、車両の速度および方位を指す。いくつかの実施形態では、車両の姿勢および状態は、車両の速度ベクトル、加速度ベクトル、およびジャークベクトルも指す。いくつかの実施形態では、位置ベクトル、速度ベクトル、加速度ベクトル、およびジャークベクトルは角度ベクトルを含む。いくつかの実施形態では、車両の状態は、車両のエンジンまたはモータが作動しているかどうかも指す。
【0044】
センサ414は、車両の周囲の環境の画像などの情報を取得するように構成されている。いくつかの実施形態では、センサ414は、可視光カメラ、IRカメラを含む。いくつかの実施形態では、センサ414は、LiDARセンサ、RADARセンサ、SONARセンサ、または他の適切なセンサと置き換えられるか、またはさらに付随される。いくつかの実施形態では、センサ414は、車両上の他の位置に配置された追加のカメラを含む。例えば、いくつかの実施形態では、観察している車両の左右の環境の大部分を検出するために、追加のカメラが車両の両側面に配置される。車両の乗員は車両の側窓から外を見ることができるため、追加のカメラを使用して車両の周囲の環境の大部分を検出すると、車両の周囲の物体や風景の検出精度が向上する。例えば、いくつかの実施形態では、車両後方の環境の大部分を検出するために、追加のカメラが車両の後側に配置される。この情報は、物体に関する情報を取得するのに役立つ。いくつかの実施形態では、センサ414からのデータは、センサ414からのデータを他のコンポーネントからのデータと同期するのを助けるために、タイムスタンプまたは他のメタデータを含む。
【0045】
GPS416は、車両の位置を決定するように構成されている。観察している車両の位置を知ることは、物体または風景を地
図418上の決定された位置と関連付けるのに役立つ。
【0046】
地
図418は、道路および道路沿いの既知の物体に関する情報を含む。いくつかの実施形態では、地
図418は、車両の位置および方位を決定するためにGPS416と連携して使用可能である。いくつかの実施形態では、地
図418は、サーバ440などの外部装置から受信される。いくつかの実施形態では、地
図418は、センサ414および/またはGPS416からの情報に基づいて定期的に更新される。いくつかの実施形態では、地
図418は、外部装置から受信した情報に基づいて定期的に更新される。いくつかの実施形態では、地
図418は、同時位置推定およびマッピング(SLAM)アルゴリズムによってセンサデータから生成される。マップ418を含めることは、物体が既知の物体であるかどうかを判断するのに役立つ。既知の物体を有するマップ118を含むことは、新しい物体検出の精度を高めるのに役立つ。
【0047】
状況検出器422は、車両および車両内のシステムの性能に関する情報を生成するように構成されている。状況検出器422は、センサ414、ブレーキシステム、加速システム、および他の適切な構成要素などの車両内の構成要素から情報を収集することができる。この情報を利用して、状況検出器422は車両の性能を判断することができる。いくつかの実施形態では、状況検出器422は、車両内のソフトウェアおよびネットワーク動作の性能を監視するようにさらに構成される。例えば、いくつかの実施形態では、状況検出器422は、車両内のソフトウェアまたはアプリケーションの「クラッシュ」に関連する情報を受信するように構成されている。いくつかの実施形態では、状況検出器422は、車両内のメモリ装置の記憶容量に関する情報を収集するように構成されている。いくつかの実施形態では、状況検出器422は、車両内のプロセッサの処理能力に関する情報を受信するように構成されている。
【0048】
車両制御監視器424は、車両の現在の動作に関連するセンサデータおよび制御ログを受信するように構成されている。いくつかの実施形態では、センサデータは、車速、加速度、ジャーク、ブレーキング、ステアリング、ピッチング、ローリング、ヨーイング、ハザードランプの点滅、ホーンのビープ音、または他の適切な情報に関連する情報を含む。
車両制御監視器424は、受信したセンサデータのいずれかが、要求を満たすための基準の充足を示すかどうか、例えば、トリガイベントが検出されたかどうかを判断するように構成されている。
【0049】
物体検出器426は、センサ414からセンサデータを受信して、道路に異常な物体が存在するかどうかを判定するように構成されている。いくつかの実施形態では、物体検出器426は、道路に沿って、または道路に隣接して物体が存在するかどうかを判定するようにさらに構成される。いくつかの実施形態では、センサ414からのセンサデータは画像を含み、物体検出器426は、異常な物体を識別するために、例えば教育されたニューラルネットワークを使用して、受け取った画像に対して画像認識を実行するように構成される。いくつかの実施形態では、物体検出器426は、識別された物体の種類を決定するのを助けるために、任意の識別された物体をGPS416および地
図418からの情報と比較するように構成される。いくつかの実施形態では、物体検出器426は、物体、例えば、タイヤ、自動車の部品など、動物、道路にできた穴(ポットホール)、交通規制板、緊急車両、ハザードライトが作動している車両、または他の適切な物体を物体として識別するように構成されている。
【0050】
シーン検出器428は、センサ414からセンサデータを受信して、要求を満たすための条件を満たす風景が車両の周囲の環境に位置するかどうかを判断するように構成される。いくつかの実施形態では、シーン検出器428は、2台以上の車両が互いに接触していること、または車両が複数の落下物に囲まれていることの検出に応答して、車両事故が発生したと判定するように構成されている。いくつかの実施形態では、シーン検出器428は、近接する複数の建設車両の検出に基づいて、工事が行われていると判定するように構成される。いくつかの実施形態では、シーン検出器428は、車両が車道に隣接して位置し、動いていないか、または他の車両よりも著しくゆっくりと移動しているとの判定に基づいて、車両が道路の路肩に駐車していると判定するように構成されている。いくつかの実施形態では、シーン検出器428は、教育されたニューラルネットワークなどによる画像認識を使用して、車両の周囲の風景の内容を決定するように構成される。
【0051】
いくつかの実施形態では、物体検出器426およびシーン検出器428のそれぞれは、車両の動作期間全体、例えば車両のエンジンまたはモータが作動している間、機能している。いくつかの実施形態では、物体検出器426またはシーン検出器428のうちの少なくとも1つは、車両制御監視器424が特定の動作、例えばトリガイベントが検出されたと判定したことに応答して起動される。
【0052】
データ特定器432は、要求の履行が実行されたか、トリイベントが検出されたという判定を受信するように構成される。データ特定器432は、受信した情報を分析して、受信したデータに基づいてセンサ414からのどのようなセンサデータを収集するかを決定するように構成される。たとえば、ドライバによる異常なステアリング挙動が検出されたいくつかの実施形態では、データ特定器432がセンサ414のフロントカメラからの画像データを取得することを決定するように構成される。さらに、データ特定器432は、検出された状況の時間に基づいて決定されたセンサからのデータを収集する必要がある期間を決定するように構成される。いくつかの実施形態では、データ特定器432は、ユーザから受信した要求内の命令に基づいてデータを収集するセンサ414を決定するように構成される。
【0053】
いくつかの実施形態では、データ特定器432は、検出された状況に関連する受信したセンサデータの領域を決定するように構成される。いくつかの実施形態では、受信したセンサデータの領域は、センサデータにおいて、たとえば物体検出器426またはシーン検出器428で実行された物体認識に基づいて識別される。いくつかの実施形態では、センサデータが異常な状況のログで情報の量を減らすための画像ではない場合、データ特定器432は、センサデータから受信した画像を切り取るか、または、センサデータから異質なデータを除去する。いくつかの実施形態では、データ特定器432は、センサデータからナンバープレート、人間の顔などの個人情報を除去するように構成される。
【0054】
ログ収集器434は、データ特定器432からデータを受信するように構成される。いくつかの実施形態では、ログ収集器434は、データ特定器432によって提供されるデータに基づいて、センサ414、GPS416、または状況検出器422から直接データを受信するように構成される。ログ収集器434は、GPS416または地
図418からの位置情報、センサ414からの画像情報、データ特定器432からのトリミングまたは縮小された情報、物体または風景が検出された時間に関連するタイムスタンプ情報、または他の適切な情報など、物体の種類と位置を識別するのに役立つ情報を決定するように構成される。
【0055】
ログ収集器434は、トリミングされた画像や位置データなど、受信および相関したデータに基づいてログデータを生成する。ログ収集器434は、収集されたデータの同期を支援し、サーバ440内のキューの優先度のためにタイムスタンプ情報をログデータに関連付ける。いくつかの実施形態では、ログ収集器434は、トリミングされた画像と関連付けられた世界座標をさらに含めるように、ログデータをさらに生成する。いくつかの実施形態では、ログ収集器434がログデータを生成して、トリミングされた画像に関連付けられたマップの位置をさらに含める。いくつかの実施形態では、ログ収集器434には、物体または風景を決定する精度の向上を支援するための追加情報が含まれる。
【0056】
上記の説明は、センサ414からの画像に基づいてログデータを生成することに関連しているが、当業者であれば、ログ収集器434が画像に基づいてログデータを生成することだけに限定されないことを理解するであろう。いくつかの実施形態では、ログ収集器434は、RADAR、LiDAR、または他の適切なセンサなど、車両に取り付けられた他のセンサからの情報に基づいてログデータを生成するように構成される。搭乗者がスマートグラスを装着しているいくつかの実施形態では、ログ収集器434は、スマートグラスから受信した情報に基づいてログデータを生成するようにさらに構成される。
【0057】
ログ送信器436は、ログ収集器434からログデータを受信し、ログデータをサーバ440に送信するように構成される。いくつかの実施形態では、ログ送信器436は、ログデータを無線で送信するように構成される。いくつかの実施形態では、ログ送信器436は、有線接続を介してログデータを送信するように構成される。いくつかの実施形態では、ログ送信器436は、ログデータをユーザ端末460に直接送信するように構成される。いくつかの実施形態では、ログ送信器436は、ログデータをユーザがアクセス可能なモバイル装置に送信するように構成され、モバイル装置は、ログデータをサーバ440に送信するように構成される。いくつかの実施形態では、ログ送信器436は、Bluetooth(登録商標)または他の適切な無線技術を使用して、ログデータをモバイル装置に送信するように構成される。いくつかの実施形態では、ECU420は、モバイル装置からサーバ440へのデータ転送速度が、ログ送信器436からサーバ440への転送速度よりも高いか否かを判定するように構成される。モバイル装置からサーバ440へのデータ転送速度の方が高速であるという判定に応答して、ログ送信器436は、ログデータをモバイル装置に送信してサーバ440に送信するように構成される。モバイル装置からサーバ440へのデータ転送レートがより高くないと判定されたことに応答して、ログ送信器436は、モバイル装置にログデータを転送することなく、車両システム410からサーバ440に直接ログデータを送信するように構成される。
【0058】
いくつかの実施形態では、検出車両システム410は、車両に取り付けられたセンサからのセンサデータを記憶するように構成されたメモリをさらに含む。いくつかの実施形態では、メモリは、以前に検出された物体または風景に関連する情報を記憶するようにさらに構成される。いくつかの実施形態では、以前の物体または風景と一致する物体または風景を検出することに応答して、データ特定器432は、一致する物体または風景に基づく結果を提供するように構成される。いくつかの実施形態では、検出車両システム410は、検出車両が、状況検出器422からの決定された物体または風景と一致する物体または風景に関連する情報をサーバ440から受信したかどうかを決定するようにさらに構成される。いくつかの実施形態では、検出車両が、決定された物体または風景に関連する情報を既に受信していると判定することに応答して、検出車両システム410は、サーバ440へのログデータの送信を防止するように構成される。サーバ440への冗長な情報の送信を回避することは、サーバ440に送信されるデータを削減するのに役立ち、検出車両システム410による電力消費を最小限に抑えるのに役立つ。ある実施形態では、以前の要求の保存はキャッシュと呼ばれる。当業者であれば、キャッシングとは、ハードウェアまたはソフトウェアを使用してデータを保存し、そのデータに対する将来の要求がより速く処理されるようにすることであると理解するであろう。
【0059】
サーバ440は、ログ送信器436からログデータを受信するように構成されたログデータ受信器442を含む。いくつかの実施形態では、ログデータ受信器442は、モバイル装置からログデータを受信するように構成される。サーバ440は、ログデータを符号化するように構成されたログエンコーダ444をさらに含む。サーバ440は、符号化されたログデータをユーザ端末160に送信するように構成されたログ転送器446をさらに含む。サーバ440は、ユーザ端末460から要求またはルールを受信するように構成された要求/ルール受信器448をさらに含む。
【0060】
ログデータ受信器442は、ログ送信器436からログデータを受信するように構成される。いくつかの実施形態では、ログデータ受信器442は、モバイル装置からログデータを受信するように構成される。いくつかの実施形態において、ログデータ受信器442は、ログデータを無線で受信するように構成される。いくつかの実施形態において、ログデータ受信器442は、有線接続を介してログデータを受信するように構成される。いくつかの実施形態において、ログデータ受信器442は、ログデータがログデータ受信器442に受信された時間のタイムスタンプをログデータに添付するように構成される。
【0061】
ログエンコーダ444は、受信したログデータを所定の符号化プロトコルに従って符号化するように構成される。所定の符号化プロトコルに従ってログデータを符号化することは、ユーザ端末460が、ユーザ端末460による使用のためにログデータを確実に復号できることを保証するのに役立つ。いくつかの実施形態では、ログエンコーダ444は、ログデータの圧縮、画像エンコード、サムネイル画像作成、または他の適切な符号化プロトコルを実行するように構成される。いくつかの実施形態では、ログエンコーダ444は、ログデータの暗号化を実行するように構成される。いくつかの実施形態では、ログエンコーダ444は、データをユーザにとってより見やすくするために超解像(high-resolution)を実行するようにさらに構成される。当業者であれば、超解像は、低解像度画像から高解像度画像を受信するプロセスであることを理解するであろう。ログデータの解像度を向上させることは、偽陽性または偽陰性を減少させるのに役立つ。
【0062】
いくつかの実施形態では、サーバ440は、受信したログデータを格納するためのデータベースをさらに含む。いくつかの実施形態では、ログデータは、ログエンコーダ444による符号化の前および/または後にデータベースに格納される。いくつかの実施形態では、ログデータは、優先順位キューにおいてデータベースに格納される。いくつかの実施形態において、優先順位キューの優先順位は、物体又は風景、例えば、トリガイベントが検出された時間、ログデータがログデータ受信器442によって受信された時間、物体又は風景の種類、検出車両のドライバの身元、又は他の適切な優先順位基準に基づいて決定される。
【0063】
ログ転送器446は、ログエンコーダ444から符号化されたログデータを受信するように構成されている。ログ転送器446は、符号化されたログデータをユーザ端末460に送信するように構成される。いくつかの実施形態では、ログ転送器446は、符号化されたログデータを、ユーザによってアクセス可能なモバイル装置に送信するように構成される。いくつかの実施形態では、ログ転送器446は、符号化されたログデータを無線で転送するように構成される。いくつかの実施形態では、ログ転送器446は、有線接続を介して符号化されたログデータを転送するように構成される。いくつかの実施形態では、ログ転送器446は、符号化されたログデータと共に符号化プロトコル情報を送信するように構成される。符号化されたログデータの符号化プロトコル情報を送信することは、モバイル装置またはユーザ端末460が、ユーザ端末460による使用のために符号化されたログデータを正確に復号化するのに役立つ。
【0064】
要求/ルール受信器448は、新しいまたは更新されたルールまたはデータの要求をユーザから受信するように構成される。いくつかの実施形態では、要求/ルール受信器448は、新規または更新されたルールまたは要求を無線で受信するように構成される。いくつかの実施形態では、要求/ルール受信器448は、有線接続を介して新規または更新されたルールまたは要求を受信するように構成される。いくつかの実施形態では、UI110(
図1)からの要求/ルール受信器448がある。
【0065】
いくつかの実施形態では、サーバ440は、複数の車両から形成中の位置を受信するように構成される。いくつかの実施形態では、サーバ440は、複数の車両からナビゲーション計画を受信するように構成される。いくつかの実施形態では、ログ転送器446は、検出されたトリガイベントの所定距離内にある車両のみに符号化ログデータの送信を制限するように構成される。
【0066】
いくつかの実施形態では、サーバ440は、新たに検出されたトリガイベントに関連するログデータのみを送信するように構成される。すなわち、トリガイベントがサーバ440によって既に報告されているならば、このトリガイベントは再度報告されない。トリガイベントを繰り返して報告することを制限することは、サーバ440に対してユーザ端末が受信する冗長なデータを削減するのに役立つ。
【0067】
ユーザ端末460は、満たされた要求に関連付けられたユーザによってアクセス可能なユーザ端末である。いくつかの実施形態では、ユーザ端末460はGUIを含む。いくつかの実施形態において、ユーザ端末460は、サーバ440からの受信データに応答して警報を自動的に生成するように構成される。いくつかの実施形態において、警報は音声または視覚の警報を含む。
【0068】
当業者であれば、要求検索システム400に対する変更が本開示の範囲内であることを理解するであろう。例えば、いくつかの実施形態では、検出車両システム410は、無線ネットワークなどのネットワークを介してユーザ端末460にログデータを直接送信することができる。いくつかの実施形態では、検出車両の搭乗者のモバイル装置は、無線ネットワークなどのネットワークを介して、ログデータをユーザ端末460に直接送信することができる。
【0069】
車両内または車両の周囲の環境で検出されたルールまたは要求の充足に関連する情報を自動的に識別して発信することにより、ユーザは、車両の処理システム、例えばECU420を使用して実行されるアプリケーションまたはソフトウェアの性能を向上させることができる。いくつかの実施形態では、ユーザは、事故などのイベントに関連する情報をオブジェクト化することができる。
【0070】
図5は、本開示の少なくともいくつかの実施形態によるモバイルコンピューティングネットワークコンテンツのクエリおよび取得のための動作フローである。動作フローは、モバイルコンピューティングネットワークコンテンツのクエリおよび取得の方法を提供する。少なくともいくつかの実施形態において、本方法は、
図1に示されるサーバ120または
図4に示されるサーバ440などのサーバによって実行される。少なくともいくつかの実施形態では、本方法は、
図10に示すプロセッサ1002のような、特定の動作を実行するためのセクションを含むサーバのプロセッサによって実行されるが、これについては以下で説明する。
【0071】
S550において、プロセッサのクエリ受信部は、クエリを受信する。少なくともいくつかの実施形態において、クエリ受信部は、クライアントデバイスから、モバイルコンピューティングネットワーク群によって取得可能なデータのターゲットコンテンツに対するクエリを受信し、クエリは、ターゲットコンテンツを識別するターゲットコンテンツ識別子を含む。少なくともいくつかの実施形態において、クライアントデバイスは、
図1のアクセス可能なコンソール150などのアクセス可能なコンソール、または
図4のユーザ端末460などのユーザ端末である。少なくともいくつかの実施形態において、クエリ受信部は、以下に説明する
図6に示す動作フローを実行する。
【0072】
S552において、プロセッサのプログラミング部は、モバイルコンピューティングネットワーク群内の車両のモデルに対するタスクをプログラミングする。少なくともいくつかの実施形態において、プログラミング部は、ターゲットコンテンツを取得するタスクをプログラミングし、タスクは、モバイルコンピューティングネットワークの利用可能なリソースを使用して各モバイルコンピューティングネットワークによって実行されるようにプログラミングされる。少なくともいくつかの実施形態において、プログラミング部は、車両モデルのデータベースを参照して、モデルの総リソース及び現在実行されているタスクを決定する。少なくともいくつかの実施形態において、プログラミング部は、少なくとも1つのセンサからターゲットコンテンツを検出するための命令を含むようにタスクをプログラミングする。少なくともいくつかの実施形態において、プログラミング部は、利用可能なリソースを消費し、且つ、他の同時に実行されるタスクとの干渉を回避するようにタスクをプログラミングする。少なくともいくつかの実施形態において、プログラミング部は、以下に説明する
図7に示す動作フローを実行する。
【0073】
S553において、プロセッサは、全てのモデルにタスクがプログラミングされているか否かを判定する。少なくともいくつかの実施形態において、プロセッサは、車両モデルのデータベースを参照して、全てのモデルがプログラミングされているか否かを判定する。少なくともいくつかの実施形態において、モバイルコンピューティングネットワーク群は、1つの車両モデルのみを含む。プロセッサが、タスクがプログラミングされていないモデルが残っていると判定した場合、動作フローは、S552においてモデルタスクのプログラミングに戻り、他の車両モデルのタスクをプログラムする。プロセッサが、全てのモデルにタスクがプログラミングされたと判定した場合、運用フローは、S555においてタスク送信に進む。
【0074】
S555において、プロセッサの送信部は、タスクを車両に送信する。少なくともいくつかの実施形態において、送信部は、コンテンツ検索タスクおよびサブタスクを車両に送信する。少なくともいくつかの実施形態において、S555における動作の反復が進むにつれて、送信部は、タスクを各モバイルコンピューティングネットワークに送信する。少なくともいくつかの実施形態では、送信部は、以下説明する
図8に示す動作フローを実行する。
【0075】
S556において、プロセッサは、タスクが全ての車両に送信されたか否かを判定する。少なくともいくつかの実施形態では、プロセッサは、モバイルコンピューティングネットワーク群内の車両のデータベースを参照して、タスクが全ての車両に送信されたか否かを判定する。タスクが送信されていない車両が残っているとプロセッサが判断した場合、動作フローはS555でタスク送信に戻り、他の車両にタスクを送信する。全ての車両にタスクが送信されたとプロセッサが判断した場合、動作フローはS558のデータ受信に進む。
【0076】
S558において、プロセッサのデータ受信部は、クエリされたコンテンツデータを受信する。少なくともいくつかの実施形態において、データ受信部は、モバイルコンピューティングネットワーク群のうちの各モバイルコンピューティングネットワークから、ターゲットコンテンツを含むデータを受信する。少なくともいくつかの実施形態において、データ受信部は、コンテンツ送信ポリシーに従った優先度による順位で車両からターゲットコンテンツのインスタンスを受信する。少なくともいくつかの実施形態において、データ受信部は、以下に説明する
図9に示す動作フローを実行する。
【0077】
図6は、本開示の少なくともいくつかの実施形態によるコンテンツクエリを受信するための運用フローである。動作フローは、コンテンツクエリを受信する方法を提供する。
少なくともいくつかの実施形態では、本方法は、
図1に示すサーバ120または
図4に示すサーバ440などのサーバによって実行される。少なくともいくつかの実施形態では、本方法は、
図10に示すプロセッサ1002などのサーバのプロセッサのクエリ受信部によって実行されるが、これについては後述する。
【0078】
S660において、クエリ受信部は、初期クエリを受信する。少なくともいくつかの実施形態において、クエリ受信部は、クライアントデバイスから、モバイルコンピューティングネットワーク群によって取得可能なデータのターゲットコンテンツに対するドラフトクエリ(draft query)を受信する。
【0079】
S662において、クエリ受信部は、遅延を推定する。少なくともいくつかの実施形態において、クエリ受信部は、ターゲットコンテンツの目標量が受信されるまでの遅延を推定する。少なくともいくつかの実施形態において、クエリは、ターゲットコンテンツの目標量を含む。少なくともいくつかの実施形態において、クエリ受信部は、各モバイルコンピューティングネットワークに対して、モバイルコンピューティングネットワークがターゲットコンテンツに遭遇する尤度(likelihood)、モバイルコンピューティングネットワークへの接続の帯域幅、およびモバイルコンピューティングネットワークの利用可能なリソースの数に基づいて、遅延を推定する。
【0080】
S664において、クエリ受信部は、エネルギー消費を推定する。少なくともいくつかの実施形態において、クエリ受信部は、ターゲットコンテンツの目標量を取得および送信するためのモバイルコンピューティングネットワーク群によるエネルギー消費を推定する。少なくともいくつかの実施形態において、クエリ受信部は、各モバイルコンピューティングネットワークに対して、タスクの複雑さ、およびモバイルコンピューティングネットワークへの接続の種類に基づいて、エネルギー消費を推定する。少なくともいくつかの実施形態において、クエリ受信部は、モバイルコンピューティングネットワークだけでなく、車両、接続のサービスプロバイダ、およびプロセスにおいてエネルギーを消費する任意の他のエンティティ、特にエネルギー消費に対して料金を請求するエンティティのエネルギー消費を推定する。少なくともいくつかの実施形態では、エネルギー消費は、ターゲットコンテンツの目標量の取得および送信のコストを表す。
【0081】
S666において、クエリ受信部は、推定値をクライアントデバイスに送信する。少なくともいくつかの実施形態において、クエリ受信部は、推定された遅延時間および推定されたエネルギー消費をクライアントデバイスに送信する。
【0082】
S668において、クエリ受信部は、推定値が許容可能であるか否かを判定する。少なくともいくつかの実施形態では、クエリ受信部は、推定された遅延および推定されたエネルギー消費を送信した後に確認を要求する。クエリ受信部が、推定値が許容されないと判定した場合、動作フローは、修正されたクエリを受信し(S669)、S662の遅延の推定に戻る。クエリ受信部が推定値は許容されると判断した場合、動作フローは終了する。
【0083】
図7は、本開示の少なくともいくつかの実施形態によるコンテンツクエリタスクをプログラミングするための操作フローである。動作フローは、コンテンツクエリタスクをプログラミングする方法を提供する。なくともいくつかの実施形態において、本方法は、
図1に示すサーバ120または
図4に示すサーバ440などのサーバによって実行される。少なくともいくつかの実施形態では、本方法は、
図10に示すプロセッサ1002などのサーバのプロセッサのプログラミング部によって実行されるが、これについては以下で説明する。
【0084】
S770において、プログラミング部は、車両モデルが組み込み検出機能を含むか否かを判定する。少なくともいくつかの実施形態において、プログラミング部は、モバイルコンピューティングネットワーク群の中から、ターゲットコンテンツを直接検出するための組み込み機能を有する各モバイルコンピューティングネットワークを決定する。プログラミング部が、車両モデルが組み込み検出機能を含まないと決定した場合、動作フローは、S771における検出サブタスクプログラミングに進む。車両モデルに検出機能が組み込まれているとプログラミング部が判断した場合、動作フローはS773の保持ポリシー調整に進む。
【0085】
S771において、プログラミング部は、検出サブタスクをプログラミングする。少なくともいくつかの実施形態において、プログラミング部は、組み込み機能を有していない各モバイルコンピューティングネットワークに対して、ターゲットコンテンツを検出するタスク内の検出サブタスクをプログラミングする。少なくともいくつかの実施形態において、プログラミング部は、画像センサからターゲットコンテンツを認識するための画像認識アルゴリズムをプログラミングする。
【0086】
S773において、プログラミング部は、保持ポリシーを調整する。少なくともいくつかの実施形態において、クエリは、ターゲットコンテンツの優先度値を含む。少なくともいくつかの実施形態において、プログラミング部は、同時に実行されるタスクの他の優先度値に対する優先度値に基づいて、各モバイルコンピューティングネットワークの保持ポリシーを調整する。少なくともいくつかの実施形態において、保持ポリシーは、取得されたターゲットコンテンツの各インスタンスをパージ(除去、削除)する確率を含み、パージする確率は、優先度値に反比例する。少なくともいくつかの実施形態では、パージする確率は、経過時間(age)および優先度値の関数である。
【0087】
S775において、プログラミング部は、保持ポリシーがフィルタリングを含むか否かを判定する。少なくともいくつかの実施形態では、保持ポリシーは、パージの代替としてフィルタリングを含む。少なくともいくつかの実施形態において、保持ポリシーは、取得されたターゲットコンテンツの各インスタンスをフィルタリングする確率を含み、フィルタリングする確率は、優先度値に逆相関し、パージの確率よりも大きい。少なくともいくつかの実施形態では、フィルタリングの確率は、経過時間と優先度の関数である。プログラミング部が、保持ポリシーがフィルタリングを含むと決定した場合、動作フローは、S776においてフィルタリングサブタスクプログラミングに進む。プログラミング部が、保持ポリシーがフィルタリングを含まないと判定した場合、運用フローは、S778での圧縮判定に進む。
【0088】
S776において、プログラミング部は、フィルタリングサブタスクをプログラミングする。少なくともいくつかの実施形態において、プログラミング部は、取得されたターゲットコンテンツの各インスタンスをフィルタリングするタスク内のフィルタリングサブタスクをプログラミングし、フィルタリングサブタスクは、モバイルコンピューティングネットワークの利用可能なリソースを使用して各モバイルコンピューティングネットワークによって実行されるようにプログラミングされる。
【0089】
S778において、プログラミング部は、保持ポリシーが圧縮を含むか否かを判定する。少なくともいくつかの実施形態では、保持ポリシーは、パージの代替として圧縮を含む。少なくともいくつかの実施形態において、保持ポリシーは、取得されたターゲットコンテンツの各インスタンスを圧縮する確率を含み、圧縮する確率は、優先度値に逆相関し、パージの確率よりも大きい。少なくともいくつかの実施形態では、圧縮の確率は、経過時間および優先度値の関数である。プログラミング部が、保持ポリシーが圧縮を含むと決定した場合、動作フローは、S779において圧縮サブタスクプログラミングに進む。プログラミング部が、保持ポリシーが圧縮を含まないと決定した場合、動作フローは終了する。
【0090】
S779において、プログラミング部は、圧縮サブタスクをプログラミングする。少なくともいくつかの実施形態において、プログラミング部は、取得されたターゲットコンテンツの各インスタンスを圧縮するタスク内の圧縮サブタスクをプログラミングし、圧縮サブタスクは、モバイルコンピューティングネットワークの利用可能なリソースを使用して各モバイルコンピューティングネットワークによって実行されるようにプログラミングされる。
【0091】
図8は、本開示の少なくともいくつかの実施形態によるコンテンツクエリを送信するための動作フローである。この動作フローは、コンテンツクエリを送信する方法を提供する。少なくともいくつかの実施形態において、本方法は、
図1に示すサーバ120または
図4に示すサーバ440などのサーバによって実行される。少なくともいくつかの実施形態では、本方法は、
図10に示すプロセッサ1002などのサーバのプロセッサの送信部によって実行されるが、これについては以下で説明する。
【0092】
S880において、送信部はタスクを送信する。少なくともいくつかの実施形態において、送信部は、タスクをそれぞれのモバイルコンピューティングネットワークに送信する。少なくともいくつかの実施形態において、S555の反復が進むにつれて、送信部は、各モバイルコンピューティングネットワークにタスクを送信する。
【0093】
S882において、送信部は、保持ポリシーを送信する。少なくともいくつかの実施形態において、送信は、タスクおよび調整された保持ポリシーをそれぞれのモバイルコンピューティングネットワークに送信することを含む。少なくともいくつかの実施形態において、S555の反復が進むにつれて、送信部は、タスクおよび調整された保持ポリシーをそれぞれのモバイルコンピューティングネットワークに送信する。
【0094】
S884において、送信部は、モバイルコンピューティングネットワークとサーバとの間の接続の帯域幅が閾値より高いか否かを判定する。少なくともいくつかの実施形態では、送信部は、サブタスクなどの大きなデータペイロードを、高帯域幅の接続を介してのみ送信する。送信部が、モバイルコンピューティングネットワークとサーバとの間の接続の帯域幅が閾値より高いと判断した場合、動作フローは、S886でサブタスク送信に進む。送信部が、モバイルコンピューティングネットワークとサーバとの間の接続の帯域幅が閾値より高くないと判定した場合、動作フローは、S884で帯域幅判定に戻る。
【0095】
S886において、送信部は、サブタスクを車両に送信する。少なくともいくつかの実施形態において、送信部は、モバイルコンピューティングネットワークへの接続が閾値の帯域幅値よりも高い帯域幅を有することを検出したことに応答して、検出サブタスクを各モバイルコンピューティングネットワークに送信する。少なくともいくつかの実施形態において、送信部は、モバイルコンピューティングネットワークへの接続が閾値の帯域幅値よりも高い帯域幅を有することを検出することに応答して、フィルタリングサブタスクを各モバイルコンピューティングネットワークに送信する。少なくともいくつかの実施形態において、送信部は、モバイルコンピューティングネットワークへの接続が閾値帯域幅値よりも高い帯域幅を有することを検出することに応答して、圧縮サブタスクを各モバイルコンピューティングネットワークに送信する。少なくともいくつかの実施形態では、送信部は、帯域幅が閾値を下回ったことに応答して送信を停止し、帯域幅が閾値を超えたことに応答して送信を再開する。
【0096】
図9は、本開示の少なくともいくつかの実施形態によるクエリされたコンテンツを受信するための動作フローである。この動作フローは、クエリされたコンテンツを受信する方法を提供する。少なくともいくつかの実施形態において、本方法は、
図1に示すサーバ120または
図4に示すサーバ440などのサーバによって実行される。少なくともいくつかの実施形態では、本方法は、
図10に示すプロセッサ1002などのサーバのプロセッサのデータ受信部によって実行されるが、これについては以下で説明する。
【0097】
S990において、データ受信部は、メタデータを受信する。少なくともいくつかの実施形態では、データ受信部は、取得されたターゲットコンテンツの各インスタンスのメタデータを受信する。少なくともいくつかの実施形態では、メタデータは、取得されたターゲットコンテンツのそれぞれのインスタンスを説明する記述またはキーワードを提供する。
【0098】
S993において、データ受信部は、コンテンツ送信ポリシーを送信する。少なくともいくつかの実施形態において、データ受信部は、取得されたターゲットコンテンツの各インスタンスのメタデータを受信したことに応答して、取得されたターゲットコンテンツの各インスタンスに対応する送信優先度値を含むコンテンツ送信ポリシーをサーバから送信する。
【0099】
S996において、データ受信部は、取得されたターゲットコンテンツのインスタンスを受信する。少なくともいくつかの実施形態において、データ受信部は、送信優先度値に基づく順序において、取得されたターゲットコンテンツの各インスタンスのうち取得されたターゲットコンテンツの第1のインスタンスを受信する。少なくともいくつかの実施形態において、送信優先度値は、コンテンツ送信ポリシーの送信優先度値の関数に基づき、送信優先度値の関数は、第1のインスタンスのサイズ、第1のインスタンスの経過時間およびサーバへの接続の帯域幅に基づく。
【0100】
S999において、データ受信部は、全ての取得されたターゲットコンテンツを受信したか否かを判断する。データ受信部が、取得されたターゲットコンテンツがまだ受信されていないと判断した場合、動作フローはS996に戻る。データ受信部が、全ての取得されたターゲットコンテンツを受信したと判断した場合、動作フローは終了する。
【0101】
図10は、いくつかの実施形態による要求検索システムを実装するためのシステム1000の図である。システム1000は、ハードウェアプロセッサ1002と、コンピュータプログラムコード1006、すなわち実行可能な命令のセットで符号化された、すなわち格納された、非一時的なコンピュータ可読記憶媒体(メモリ)1004とを含む。コンピュータ可読記憶媒体1004はまた、外部装置と相互作用するための命令1007で符号化されている。プロセッサ1002は、バス1008を介してコンピュータ可読記憶媒体1004に電気的に結合されている。プロセッサ1002はまた、バス1008によってI/Oインターフェース1010に電気的に結合されている。ネットワークインターフェース1012も、バス1008を介してプロセッサ1002に電気的に接続されている。ネットワークインターフェース1012はネットワーク1014に接続されており、プロセッサ1002およびコンピュータ可読記憶媒体1004は、ネットワーク1014を介して外部要素に接続できるようになっている。プロセッサ1002は、ODDRシステム100(
図1)、ODDRシステム400(
図4)または方法600(
図6)で説明したような動作の一部または全部を実行するためにシステム1000を使用可能にするために、コンピュータ可読記憶媒体1004に符号化されたコンピュータプログラムコード1006を実行するように構成される。
【0102】
いくつかの実施形態では、プロセッサ1002は、中央処理装置(CPU)、マルチプロセッサ、分散処理システム、特定用途向け集積回路(ASIC)、および/または適切な処理装置である。
【0103】
いくつかの実施形態では、コンピュータ可読記憶媒体1004は、電子、磁気、光学、電磁、赤外線、および/または半導体システム(または装置またはデバイス)である。例えば、コンピュータ可読記憶媒体1004は、半導体またはソリッドステートメモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、硬質磁気ディスク、および/または光ディスクを含む。光ディスクを使用するいくつかの実施形態では、コンピュータ可読記憶媒体1004は、コンパクトディスク(登録商標)-読み取り専用メモリ(CD-ROM)、コンパクトディスク(登録商標)-読み取り/書き込み(CD-R/W)、および/またはデジタルビデオディスク(DVD(登録商標))を含む。
【0104】
いくつかの実施形態では、記憶媒体1004は、ODDRシステム100(
図1)、ODDRシステム400(
図4)または方法600(
図6)に記載されているような動作の一部または全部をシステム1000に実行させるように構成されたコンピュータプログラムコード1006を記憶する。いくつかの実施形態では、記憶媒体(メモリ)1004は、ODDRシステム100(
図1)、ODDRシステム400(
図4)または方法600(
図6)で説明されているような操作の一部または全部を実行するために必要な情報、ならびに、優先度レベルパラメータ1016、クエリIDパラメータ1018、クエリステータスパラメータ1020、クエリデータパラメータ1022、および/またはODDRシステム100(
図1)、ODDRシステム400(
図4)、または方法600(
図6)に記載されている動作の一部または全部を実行するための実行可能命令のセットなどのような、ODDRシステム100(
図1)、ODDRシステム400(
図4)または方法600(
図6)で説明されているような操作の一部または全部を実行する間に生成された情報も記憶する。
【0105】
いくつかの実施形態では、記憶媒体1004は、製造機械と相互作用するための命令1007を記憶する。命令1007は、プロセッサ1002が、製造プロセス中に方法400を効果的に実施するために、製造機械によって読み取り可能な製造命令を生成することを可能にする。
【0106】
システム1000はI/Oインターフェース1010を含む。I/Oインターフェース1010は、外部回路に結合される。いくつかの実施形態では、I/Oインターフェース1010は、プロセッサ1002に情報および命令を伝達するためのキーボード、キーパッド、マウス、トラックボール、トラックパッド、および/またはカーソル方向キーを含む。
【0107】
システム1000は、プロセッサ1002に結合されたネットワークインターフェース1012も含む。ネットワークインターフェース1012は、システム1000が、1つまたは複数の他のコンピュータシステムが接続されているネットワーク1014と通信することを可能にする。ネットワークインターフェース1012は、BLUETOOTH(登録商標)、WIFI(登録商標)、WIMAX(登録商標)、GPRS、またはWCDMA(登録商標)のような無線ネットワークインターフェース;またはETHERNET(登録商標)、USB、またはIEEE-1394のような有線ネットワークインターフェースを含む。いくつかの実施形態では、ODDRシステム100(
図1)、ODDRシステム400(
図4)、または方法600(
図6)で説明されるような動作の一部または全部が、2つ以上のシステム1000で実施され、優先度レベル、クエリID、クエリステータス、およびクエリデータなどの情報が、ネットワーク1014を介して異なるシステム1000間で交換される。
【0108】
クエリされたコンテンツ取得のためのモバイルコンピューティングネットワークプログラミングは、クライアントデバイスから、モバイルコンピューティングネットワーク群によって取得可能なデータのターゲットコンテンツのクエリを受信し、クエリは、ターゲットコンテンツを識別するターゲットコンテンツ識別子を含み、ターゲットコンテンツを取得するタスクをプログラミングし、タスクは、モバイルコンピューティングネットワークの利用可能なリソースを使用して各モバイルコンピューティングネットワークによって実行されるようにプログラミングされ、タスクを各モバイルコンピューティングネットワークに送信し、モバイルコンピューティングネットワーク群の中の各モバイルコンピューティングネットワークからターゲットコンテンツを含むデータを受信する、ことによって実行される。
【0109】
以上、当業者が本開示の態様をよりよく理解できるように、いくつかの実施形態の特徴を概説した。当業者は、本開示を、本明細書で紹介する実施形態と同じ目的を遂行し、および/または同じ利点を達成するための他のプロセスおよび構造を設計または修正するための基礎として容易に使用し得ることを理解すべきである。当業者はまた、そのような等価な構造は、本開示の精神および範囲から逸脱せず、本開示の精神および範囲から逸脱することなく、本明細書において様々な変更、置換、および改変を行ってもよいことを理解すべきである。
【外国語明細書】