本開示の態様は、付随する図面と共に下記の詳細な記述を読むことにより最も良好に理解される。当業界における標準的な慣行に従って、種々の特徴は一定の縮尺で描かれていないことに留意されたい。実際、種々の特徴の寸法は、説明を明確にするために任意に増減され得る。
下記の開示は、提供される主題の異なる特徴を実現するための多くの異なる実施形態、または例を提供する。構成要素、値、動作、材料、配置などの具体的な例は、本開示を簡潔にするために下記に記述される。もちろん、これらは単なる例にすぎず、限定的であることは意図されていない。他の構成要素、値、動作、材料、配置なども考えられる。例えば、後に続く記述における第2の特徴上への第1の特徴の形成は、第1および第2の特徴が直接接触して形成される実施形態を含むことができ、また、第1および第2の特徴が直接接触しなくてもよいように、追加的特徴を、第1および第2の特徴との間に形成できる実施形態を含むことができる。加えて、本開示は、種々の例において、参照番号および/または文字を繰り返すこともあり得る。この繰り返しは、簡潔性と明確性の目的のためであり、それ自体は、検討されている種々の実施形態および/または構成間の関係に影響しない。
更に、「~の下」、「~の下方」、「下部の」、「~の上方」、「上部の」などのような空間的相対位置を示す用語は、ここにおいては、図において例示されているように、1つの要素または特徴の、他の要素または特徴との関係を記述するための記述を容易にするために使用することもあり得る。空間的相対位置を示す用語は、図において示されている向きに加えて、使用中または動作中の装置の異なる向きも含むことが意図されている。装置は他の向きにすることができ(90度回転、または他の向き)、ここにおいて使用されている空間的相対位置を示す記述子も同様にそれに応じて解釈できる。
ソフトウェア開発者、保険プロバイダ、市場調査員、および法の執行機関などのようなユーザは、グラフィカルユーザインタフェース(GUI)などのようなユーザインタフェースにデータ要求を入力するためにオンデマンドデータ検索(ODDR)システムを使用することができる。ソフトウェア開発者とは、例えば、車両上で作動させるアプリケーション、ミドルウェア、またはOS(オペレーティングシステム)を開発するソフトウェア開発者である。アプリケーションの例としては、対象物認識アプリケーション、道路認識アプリケーション、センサフュージョンアプリケーション、位置特定アプリケーション、経路計画アプリケーション、コントローラアプリケーションなどのような自動運転システムアプリケーションが含まれる。データ要求は、サーバにおいて解析されて格納され、サーバにより車両に送信される。サーバ側においては、データ要求は格納ユニットに格納され、格納された要求に基づいて要求キューが生成される。ユーザは、データ要求のステータスの更新を見ることができまたは要求することができる。例えば、車両への送信の前にサーバ内に依然としてデータ要求がある間は、ステータスを「未処理」と示すことができる。サーバがデータ要求を車両に送信すると、ステータスを「提出済み」に更新することができる。このことは、ユーザが、車両に対してなされたデータ要求のステータスを見て追跡することを可能にする。当業者は、記述が明確性のために車両に言及しているが、記述は単一の車両に加えて車両のグループに適用可能であるということを認識するであろう。
データ要求を生成するためのユーザインタフェースは、車両識別情報、要求されているデータタイプ、開始時間および終了時間に関する形態を含んでいる。幾つかの実施形態においては、開始時間および終了時間は、ユニックスエポックタイムからの経過時間であるユニックス時間などのような絶対時間である。幾つかの実施形態においては、開始時間および終了時間は、データ要求が車両により受信された時間に対する相対時間である。幾つかの実施形態においては、開始時間および終了時間は、トリガーイベント(trigger event)に対する相対時間である。トリガーイベントは、ユーザがデータを得ようとしている車両内の出来事、車両の周囲の環境における出来事、または車両によるデータ要求の受信である。例えば、車両の周囲の環境に起因するトリガーイベントには、急加速、急ブレーキ、データ要求の対象の画像の取り込み、データ要求の対象の検出、または他の適切な出来事が含まれる。データ要求のステータスを監視するためのユーザ情報は、データ要求の識別情報と、未処理または提出済みなどのようなデータ要求のステータスとを含んでいる。
幾つかの実施形態においては、データ要求が車両により受信されると、データ要求は、データ要求がデータ要求のソースに依存しないように処理される。幾つかの実施形態においては、データ要求識別表示(ID)が、例えば車両における要求抽出器(request abstractor)によって、車両によって受信されたデータ要求に対して割り当てられる。幾つかの実施形態においては、データ要求IDは、データ要求の車両への送信よりも前にデータ要求に割り当てられる。幾つかの実施形態においては、データ要求は、車両において作動しているアプリケーションにより生成され、アプリケーションがデータ要求IDを割り当てる。言い換えれば、データは、データ要求を車両に送信するプログラムまたはシステムとは関係なく、一貫した態様で処理される。幾つかの実施形態においては、データ要求は、車両内に格納されているソフトウェア構成要素により生成され、データは、外部装置から受信されたデータ要求との一貫性を有して処理される。このことは、アプリケーションが、ロガーへのデータ収集要求と、ODDRベースの外部データ収集要求とを生成する場合に、トリガーデータ収集の間で同じデータ収集ソフトウェア構成要素を共有することを支援する。
幾つかの実施形態においては、データ要求が車両により受信されると、データ要求は、データ要求が車両内のセンサおよびサーバに対して依存しないように処理される。幾つかの実施形態においては、データ要求は、車両において作動しているアプリケーションにより生成される。幾つかの実施形態においては、アプリケーションからのデータ要求が車両内のセンサまたはサーバからの情報に依存しないように、アプリケーションプログラミングインタフェース(API)が使用可能である。このことは、特定のセンサモデルについての要求をプログラムすることなくデータを収集するユーザの能力を最大にすることを支援する。その後、データ要求はデータ収集器に転送され、要求されたデータは、トリガーイベントの発生に応答して収集される。交通事故などのようなトリガーイベントがすでに発生している状況においては、データ要求は、車両内の格納装置内に格納されているデータに基づいて実行される。収集されたデータの時間フレーム、すなわち開始時間および終了時間は、データ要求に基づいて決定される。収集されたデータはサーバに転送される。
その後、収集されたデータはサーバに格納され、データ要求の完了に関する通知がユーザに送信される。例えば、データ要求のステータスは、ユーザインタフェース上で「完了」に更新される。
幾つかの例においては、データ要求に対する料金がユーザに課金されるように、予算管理システムまたは支払いシステムが、サーバ側または車両側において実装される。料金は、要求を提出したとき、またはデータ収集が完了したときに支払可能である。料金は、要求されたデータのタイプおよび量に基づいて調整可能である。幾つかの実施形態においては、ユーザに課金される料金の合計がユーザの予算の最大閾値に達すると、そのユーザからのデータ要求が拒絶される。
ODDRシステムは、車両により収集された情報にユーザがオンデマンドのスタイルでアクセスすることを可能にする。つまり、データは、必ずしも連続して収集されるわけではなく、ユーザの特定の所望を満たすために収集される。幾つかの実施形態においては、ODDRシステムは、例えばオーバーザエア(OTA)更新として、ネットワークを介してサーバから車両に更新を送達することによって、ユーザがソフトウェアを連続的に改良することができるように、ソフトウェア開発者のようなデータを収集するユーザが、収集されたデータに基づく探究的な方法で、彼らのソフトウェアの設計、実装およびパラメータ調整を更新することを支援する。幾つかの実施形態においては、ODDRシステムは、データを収集するアプリケーションのための機械学習モデルを開発する機械学習開発者が連続的にモデルを更新してモデルの弱点および問題を修正することができるように、機械学習開発者が、モデルが最初に開発されたときには利用可能でなかったデータでモデルを学習することを支援する。幾つかの例においては、保険プロバイダは、交通事故に関するデータを収集することができる。幾つかの実例においては、法の執行機関は、犯罪または交通事故に関する情報を収集することができる。
図1は、幾つかの実施形態に従う、オンデマンドデータ検索(ODDR)システム100の模式図である。ODDRシステム100はユーザインタフェース(UI)110を含んでいる。UI110は、データに対するユーザ要求を車両140から受信するように構成されている。ODDRシステム100は更にサーバ120を含み、サーバ120は、UI110からユーザ要求を受信し、ユーザ要求を車両140に送信し、車両140からデータを受信し、アクセス可能なコンソール150を介してデータをユーザに提供するように構成されている。サーバ120は、UI110および車両140と通信するための通信セクション130を含んでいる。ODDRシステム100は更に、車両140から収集されたデータをユーザに伝達するように構成されているアクセス可能なコンソール150を含んでいる。
UI110は、ユーザから入力指示を受信するように構成されている。幾つかの実施形態においては、ユーザにはソフトウェア開発者が含まれる。幾つかの実施形態においては、ユーザには機械学習モデル開発者が含まれる。幾つかの実施形態においては、ユーザには保険プロバイダが含まれる。幾つかの実施形態においては、ユーザには法の執行機関が含まれる。幾つかの実施形態においては、ユーザには市場調査会社が含まれる。UI110は、ユーザが車両のタイプおよび要求されるデータのタイプを選択するためのオプションを提供する。幾つかの実施形態においては、UI110は、車両識別情報、要求されているデータタイプ、開始時間および終了時間に関する形態を使用してデータ要求を生成することができる。幾つかの実施形態においては、開始時間および終了時間は、ユニックスエポックタイムからの経過時間であるユニックス時間などのような絶対時間である。幾つかの実施形態においては、開始時間および終了時間は、データ要求が車両により受信された時間に対する相対時間である。幾つかの実施形態においては、開始時間および終了時間は、トリガーイベントに対する相対時間である。幾つかの実施形態においては、UI110はまた、トリガーイベントと、トリガーイベントに対するデータ収集継続時間とを選択するためのオプションをユーザに提供する。幾つかの実施形態においては、UI110は、データが要求された車両のタイプに関する情報を含んでいる。幾つかの実施形態においては、UI110は、世界中の車両を一意的に識別することができる車両IDを含んでいる。例えば、車両IDは、汎用固有識別子(UUID)フォーマットを含んでいる。幾つかの実施形態においては、UI110は、ユーザが収集したいと所望するデータのソースを識別することができるデータタイプを含んでいる。例えば、データタイプは、センサデータが収集されるセンサのセンサID、アプリケーションログが収集されるアプリケーションのアプリケーションIDを含んでいる。幾つかの実施形態においては、センサIDおよびアプリケーションIDのフォーマットは、汎用固有識別子(UUID)フォーマットを含んでいる。幾つかの実施形態においては、UI110は、ドロップダウンメニューを含んでいる。幾つかの実施形態においては、UI110は、データ要求に関する情報を受信するための編集可能フィールドを含んでいる。幾つかの実施形態においては、UI110は、何れのデータオプションタイプがユーザに利用可能かに関する情報を提供する。幾つかの実施形態においては、利用可能なデータオプションタイプは、ユーザに依存している。例えば、幾つかの実施形態においては、法の執行機関は、保険プロバイダよりも多くのデータオプションを選択することができる。
幾つかの実施形態においては、UI110は、グラフィカルユーザインタフェース(GUI)を含んでいる。幾つかの実施形態においては、UI110は、モバイルテレフォンなどのような、サーバ120に接続可能なモバイル端末を含んでいる。幾つかの実施形態においては、UI110は、RESTful APIなどのようなウェブインタフェースを含んでいる。幾つかの実施形態においては、UI110は、サーバ120に接続可能なコンピュータを含んでいる。幾つかの実施形態においては、UI110は、サーバ120への無線接続が可能である。幾つかの実施形態においては、UI110は、有線接続によりサーバ120に接続可能である。UI110はまた、データ要求のステータスに関する更新をユーザに提供することができる。幾つかの実施形態においては、UI110は、ユーザによる追加の問い合わせに応答して、データ要求に関するステータスの更新を提供する。幾つかの実施形態においては、UI110は、サーバ120から更新された情報を受信すると、ユーザの介在なしにデータ要求に関するステータスの更新を自動的に提供する。幾つかの実施形態においては、ステータスの更新は、ユーザに対する警告をUI110に発動させる。幾つかの実施形態においては、警告は可聴警告または可視警告を含んでいる。
幾つかの実施形態においては、UI110は、ユーザからの料金の支払いを受け入れる手段を含んでいる。幾つかの実施形態においては、UI110は、ユーザが支払いカード情報を入力することを可能にするデータ入力フィールドを含んでいる。幾つかの実施形態においては、UI110は、磁気ストライプリーダ、バーコードリーダ、チップリーダ、または他の適切なリーダなどのような、支払いカード情報を検出するためのリーダを含んでいる。
サーバ120は、UI110および車両140と通信するように構成されている通信セクション130を含んでいる。通信セクション130は、UI110からデータ要求を受信するように構成されている受信機131を含んでいる。幾つかの実施形態においては、受信機131には無線受信機が含まれる。幾つかの実施形態においては、受信機は、データ要求を有線接続を介して受信するように構成されている。幾つかの実施形態においては、受信機131は更に、受信したデータ要求に対して初期処理を実行するように構成されている。幾つかの実施形態においては、受信されたデータ要求は、優先度レベル情報を含んでいる。幾つかの実施形態においては、受信機131は、データ要求を提出したユーザのアイデンティティ、および/またはデータ要求を提出したユーザにより支払われた料金に基づいて、データ要求に優先度レベルを割り当てるように構成されている。幾つかの実施形態においては、受信機131は、各受信されたデータ要求に対して要求識別(ID)番号を割り当てるように構成されている。幾つかの実施形態においては、サーバ120は、ユーザのアイデンティティに基づいて、車両140内のあるセンサへのアクセスを制限するように構成されている。例えば、サードパーティのユーザは、幾つかの実施形態においては、車両140の安全機能に関するセンサにアクセスすることができない。
通信セクション130は更に、受信機131により受信されたデータ要求を格納するように構成されているメモリユニット132を含んでいる。幾つかの実施形態においては、メモリユニット132は、ランダムアクセスメモリ、ソリッドステートメモリ、または他のタイプのメモリを含んでいる。幾つかの実施形態においては、メモリユニット132は、データ要求のステータスと共にデータ要求を格納するように構成されている。幾つかの実施形態においては、データ要求のステータスは、未処理(車両140へのデータ要求の送信の前)、提出済み(車両140へのデータ要求の送信の後)、および完了(車両140からの要求されたデータの受信の後)を含んでいる。幾つかの実施形態においては、メモリユニット132はユーザによりアクセス可能である。幾つかの実施形態においては、メモリユニット132における情報の更新は、メモリユニット132において更新された情報と関連付けられているユーザの通知を引き起こす。幾つかの実施形態においては、メモリユニット132は、データ要求が受信された時間を示すタイムスタンプデータと併せてデータ要求を格納する。幾つかの実施形態においては、メモリユニット132は、優先度レベルと関連付けてデータ要求を格納する。幾つかの実施形態においては、優先度レベルはユーザのアイデンティティに基づいて決定される。例えば、幾つかの実施形態においては、法の執行機関は、ソフトウェア開発者などのような通常のユーザよりも高い優先度を有している保険プロバイダよりも高い優先度を有している。幾つかの実施形態においては、優先度レベルは、ユーザにより支払われた料金に基づいて決定される。例えば、幾つかの実施形態においては、ユーザは、要求されたデータをより早く得るために、それらの要求の優先度レベルを高めるために料金を支払うことができる。幾つかの実施形態においては、データ要求の優先度レベルは、データ要求の最初の格納とデータ要求の車両への送信との間の時間が長くなるにつれて高くされる。
通信セクション130は更に、送信機133を含んでいる。送信機133は、データ要求のステータスをUI110に送信するように構成されている。幾つかの実施形態においては、データ要求のステータスはUI110に無線で送信される。幾つかの実施形態においては、データ要求のステータスはUI110に有線接続を介して送信される。幾つかの実施形態においては、送信機133は、メモリユニット132における更新に応答して、データ要求の更新を自動的に提供するように構成されている。幾つかの実施形態においては、送信機133は、ユーザから受信した更新要求に応答して、データ要求の更新を提供するように構成されている。幾つかの実施形態においては、送信機133は、最初にデータ要求をメモリユニット132に保存したときに要求IDを自動的に送信するように構成されている。幾つかの実施形態においては、データ要求のステータスは、データ要求の優先度レベルを含んでいる。幾つかの実施形態においては、データ要求のステータスは、データ要求が車両140に送信されるまでの推定時間を含んでいる。
通信セクション130は更に、車両140への送信についての優先度の順序でデータ要求を格納するように構成されているクエリキュー(query queue)134を含んでいる。幾つかの実施形態においては、クエリキュー134は、メモリユニット132に統合されている。幾つかの実施形態においては、クエリキュー134は、メモリユニット132とは分離している。幾つかの実施形態においては、クエリキュー134は、優先度レベルおよびタイムスタンプ情報に基づいてメモリユニット132からデータ要求を取り出すように構成されている。幾つかの実施形態においては、クエリキュー134は、優先度レベルに基づいてデータ要求を順序付け、そして、データ要求が同じ優先度レベルを有していることに応答して、メモリユニット132への最初の保存からの時間によりデータ要求を順序付けるように構成されている。
通信セクション130は更に、クエリキュー134から車両140にデータ要求を送信するように構成されている送信機135を含んでいる。送信機135は、クエリキュー134におけるデータ要求の順序に基づいて、データ要求を車両140に送信するように構成されている。幾つかの実施形態においては、データ要求は車両140に無線で送信される。幾つかの実施形態においては、データ要求は車両140に有線接続により送信される。車両140に送信されたデータ要求は、トリガーイベント情報と、トリガーイベントの前後でどのくらい長くデータが収集されるべきかに関するデータ継続時間情報と、データを収集すべき車両140のセンサのタイプを示すセンサ情報とを含んでいる。幾つかの実施形態においては、車両140に送信されたデータ要求は、優先度レベル情報を含んでいる。幾つかの実施形態においては、送信機135は、データ要求を車両140に送信する要求を車両140がサーバ120に送信するときにと、車両140にデータ要求を送信するように構成されている。幾つかの実施形態においては、送信機135は、車両140が新しいデータ要求を受け入れることができないということを示す情報を通信セクション130が受信していない限り、データ要求を送信するための車両140への十分な接続性を通信セクション130が有しているときはいつでも、車両140にデータ要求を送信するように構成されている。幾つかの実施形態においては、送信機135は、車両140が新しいデータ要求を受信でき且つ送信機135が車両140への十分な接続性を有している限り、車両140にデータ要求を定期的に送信するように構成されている。幾つかの実施形態においては、送信機135は、5つのデータ要求、20個のデータ要求、または、他の数のデータ要求のグループなどのように一括してデータ要求を車両140に送信するように構成されている。幾つかの実施形態においては、送信機135は、車両140からデータ要求の受信の確認を要求するように構成されている。所定期間の間、車両から受信の確認を受信しないことに応答して、送信機135は、データ要求を再送信するように構成されている。幾つかの実施形態においては、メモリユニット132に格納されているデータ要求のステータスは、通信セクション130が車両140からデータ要求の受信の確認を受信したことに応答して、車両140への提出を示すように更新される。
通信セクション130は更に、トリガーイベントの発生の通知を車両140から受信するように構成されている受信機136を含んでいる。幾つかの実施形態においては、トリガーイベントの発生は、データ要求の受信である。幾つかの実施形態においては、受信機136は、トリガーイベントの通知を無線で受信するように構成されている。幾つかの実施形態においては、受信機136は、トリガーイベントの通知を有線接続を介して受信するように構成されている。幾つかの実施形態においては、受信機136は、通知されたトリガーイベントに関するデータ要求のステータスを更新するために、メモリユニット132に信号を送信するように構成されている。
通信セクション130は更に、送信機135により送信されたデータ要求に応答して、車両140からデータを受信するように構成されている受信機137を含んでいる。幾つかの実施形態においては、データは、車両140により、車両140からサーバ120への送信の単位であるデータパケットに分割され、受信機137は車両140からデータパケットを受信する。幾つかの実施形態においては、受信機137はデータを無線で受信するように構成されている。幾つかの実施形態においては、受信機137は、データを有線接続を介して受信するように構成されている。幾つかの実施形態においては、受信機137は、要求されたデータの受信に関するデータ要求のステータスを更新するために、信号をメモリユニット132に送信するように構成されている。幾つかの実施形態においては、単一のデータ要求に応答するデータは、車両140からの単一のパケットで受信される。幾つかの実施形態においては、単一のデータ要求に応答するデータは、車両140からの複数のパケットで受信される。受信機137は、受信したデータをプリプロセッサ122に転送する。
サーバ120は更にプリプロセッサ122を含み、プリプロセッサ122は、受信機137からデータを受信し、収集されたデータを生成するためにデータに対して前処理を実行するように構成されている。幾つかの実施形態においては、前処理は、データ要求に応答するデータをコンパイルするために複数のパケットからのデータを改変成することを含んでいる。幾つかの実施形態においては、前処理は、受信されたバイトアレイからの構造化データをコンパイルするためにデータのシリアル化を解除することを含んでいる。幾つかの実施形態においては、前処理は、データが送信前に車両140により圧縮される場合には、データの解凍を含んでいる。幾つかの実施形態においては、前処理は、リード・ソロモン(RS)符号、BCH(Bose-Chaudhuri-Hocquenghem)符号、低密度パリティ検査(LDPC)符号などのような誤り訂正符号(ECC)による誤り訂正を含んでいる。幾つかの実施形態においては、前処理は、ユーザに正しくないデータを報告するリスクを削減するために、異常値を除去することによりデータを円滑にすることを含んでいる。幾つかの実施形態においては、前処理は、データ要求ID情報、優先度レベル情報、または他の適切な情報を、受信機137からの受信データと関連付けることを含んでいる。幾つかの実施形態においては、理解が容易で、情報を認識するための特殊な知識または装備に頼ることのないフォーマットで情報がユーザに提供されるように、データが前処理される。
サーバ120は更に、データプリプロセッサ122により生成された、収集されたデータを格納するように構成されているデータ格納装置126を含んでいる。幾つかの実施形態においては、データ格納装置126はメモリユニット132と統合されている。幾つかの実施形態においては、データ格納装置126はメモリユニット132とは分離されている。幾つかの実施形態においては、データ格納装置126は、ソリッドステートドライブ(SSD)、ランダムアクセスメモリ、または他の適切なメモリを含んでいる。幾つかの実施形態においては、データ格納装置126は、例えば、UI110またはアクセス可能なコンソール150を使用してユーザによりアクセス可能である。幾つかの実施形態においては、データ格納装置126は、データ要求に関するデータが利用可能であることに応答して、ユーザに通知するように構成されている。幾つかの実施形態においては、通知は、ユーザへの警告を含んでいる。幾つかの実施形態においては、警告は、可聴警告または可視警告を含んでいる。幾つかの実施形態においては、データ格納装置126は、収集されたデータの利用可能性の通知をUI110またはアクセス可能なコンソール150に自動的に表示させるように構成されている。幾つかの実施形態においては、データ格納装置126は、ユーザがデータ要求を提出することなく、アクセス可能なコンソール150を使用してユーザによりアクセス可能である。幾つかの実施形態においては、データ格納装置126内のデータは、アクセス可能なコンソール150を介してユーザが検索可能である。幾つかの実施形態においては、収集されたデータは、コンソール150において視覚化される。
ODDRシステム100は更に、車両140を含んでいる。車両140は、車両140の内部ステータスおよび車両140の周囲の外部環境の両方を検出するためのセンサを含んでいる。幾つかの実施形態においては、センサには、カメラ、光検出と測距(LiDAR)センサ、電波検出と測距(RADAR)センサ、音響航法と測距(SONAR)センサ、加速度計、ステアリングホイール位置、速度計、または他の適切なセンサが含まれる。車両140は、無線でまたは有線接続を介してデータ要求を受信することができる。
幾つかの実施形態においては、データ要求を受信したことに応答して、車両140は、受信したデータ要求にデータ要求IDを割り当てるように構成されており、データ要求は、要求元のシステムまたはデータ要求のプログラムに対して依存しないように処理される。他の実施形態においては、通信セクション130が車両140の代わりにデータ要求IDを割り当て、データ要求IDは、通信セクション130から車両140に送信されるデータ要求に含まれる。データ要求を、要求元のシステムまたはデータ要求のプログラムに対して依存しないようにすることは、車両140が、種々のユーザおよびシステムから広範囲のデータ要求を受信して処理する機能を拡張することを支援する。車両140はプロセッサを含み、プロセッサは、データ要求を処理し、車両140において利用可能な何れのセンサからの何れのタイプの情報がデータ要求を満たすことができるかを判定するためのプロセッサを含んでいる。車両140は更に、センサからのデータを格納するためのメモリを含んでいる。幾つかの実施形態においては、プロセッサは、何れかの格納されているデータが、データ要求を満たすことができるかどうかを判定するためにメモリにアクセスする。車両140は更に、データ要求を満たすと考えられるデータを、無線でまたは有線接続を介してサーバ120に送信することができる。幾つかの実施形態においては、プロセッサは、データ要求の受信した優先度レベルに基づいて、優先度の順序で、受信したデータ要求を満たすことを試みるように構成されている。幾つかの実施形態においては、車両140は、データ要求の受信した優先度レベルに基づいて、サーバに優先的にデータを送信するように構成されている。
幾つかの実施形態においては、車両140のメモリおよびプロセッサは、車両140内の電子制御ユニット(ECU)においてソフトウェアアプリケーションを格納して実行するように構成されている。幾つかの実施形態においては、データ要求は、ECUに格納されているソフトウェアアプリケーションにより生成される。幾つかの実施形態においては、データ要求は、急加速、急ブレーキ、ソフトウェアアプリケーションにおいて予め決められている特定の対象物または特定のシーンを含むセンサデータの取り込み、ソフトウェアアプリケーションの「クラッシュ」、ソフトウェアアプリケーションにおける検出された異常、または他の適切な検出された出来事などのようなトリガーイベントに応答して生成される。幾つかの実施形態においては、車両140は、ソフトウェアアプリケーションと関連付けられているトリガーイベントを検出することに応答して、ソフトウェアアプリケーションの保守者、例えば、ユーザへの通知を生成するように構成されている。幾つかの実施形態においては、通知は、無線でまたは有線接続を介して、ユーザに直接、例えば、UI110を介して送信される。幾つかの実施形態においては、通知は、無線でまたは有線接続を介して、ユーザにサーバ120を介して送信される。幾つかの実施形態においては、通知は、可聴通知または可視通知を含んでいる。幾つかの実施形態においては、通知は、UI110に、ユーザの介在なしで通知を自動的に表示させるように構成されている。
ODDRシステム100は更に、アクセス可能なコンソール150を含んでいる。アクセス可能なコンソール150は、データ格納装置126に格納されている収集されたデータにユーザがアクセスすることを可能にする。幾つかの実施形態においては、アクセス可能なコンソール150はUI110と統合されている。幾つかの実施形態においては、アクセス可能なコンソール150はUI110とは分離されている。幾つかの実施形態においては、アクセス可能なコンソール150は、サーバ120とは別個の他のサーバを含んでいる。幾つかの実施形態においては、アクセス可能なコンソール150は、データ格納装置126により、収集されたデータを受信すると、ユーザからのデータ要求に関する収集されたデータを自動的に受信する。幾つかの実施形態においては、アクセス可能なコンソール150は、ユーザがデータ要求を提出することなく、データ格納装置126に格納されている収集されたデータの何れかがユーザにとって有用であるかどうかを判定するために、ユーザがデータ格納装置126を検索することを可能にする。
ODDRシステム100を使用することは、ユーザが、受信したデータを要求しまたは読み出すための特殊な装備に頼ることなく理解することが容易なフォーマットで、1台以上の車両140から情報を得ることを可能にする。ODDRシステム100におけるデータ要求の優先度を決定する機能は、法の執行機関が、公共の安全に関連するデータを得ることができることを確実にし、一方、ユーザがデータをより早く得るために料金を支払うことを可能にすることを支援する。この柔軟性は、広範囲のユーザに対して、ODDRシステム100の有用性を高めることを支援する。
図2は、幾つかの実施形態に従う、ODDRシステムに対するグラフィカルユーザインタフェース(GUI)200および250の図である。幾つかの実施形態においては、GUI200は、ODDRシステム100(図1)におけるUI110として使用可能である。幾つかの実施形態においては、GUI200は、受信機131(図1)による受信のためのデータ要求を生成するために使用可能である。GUI200は、GUI200がユーザから受け入れることができる情報のタイプを識別する複数の情報タイプ210を含んでいる。GUI200は更に、GUI200の対応する情報タイプ210に関する情報を受信するように構成されている。GUI200は更に、フィールド220における情報に基づいて、サーバ、例えば、サーバ120(図1)にデータ要求を提出するように構成されている提出ボタン230を含んでいる。当業者は、複数の情報タイプ210の名前と数は単なる例にすぎず、異なる数とタイプの情報もまた本開示の範囲内であるということを認識するであろう。
幾つかの実施形態においては、フィールド220は、ユーザが、車両ID、データタイプ、開始時間および終了時間を入力するためのフィールドを含んでいる。幾つかの実施形態においては、フィールド220は更に、ユーザがデータ要求の優先度レベルを入力するためのフィールドを含んでいる。幾つかの実施形態においては、GUI200は更に、それぞれの利用可能な優先度レベルと関連付けられた料金を示すような、ユーザがどのようにしてデータ要求の優先度レベルを上げることができるかに関する情報を含んでいる。幾つかの実施形態においては、GUI200は、ユーザがユーザのアイデンティティを確立するためにログイン情報を入力することを可能にするためのフィールド220を含んでいる。幾つかの実施形態においては、GUI200は、ログイン情報を受信した後に、ユーザの優先度レベルを表示するように構成されている。幾つかの実施形態においては、GUI200は更に、データ要求の優先度レベルを確立するための料金に関する支払い情報を受信するためのフィールド220を含んでいる。
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は、サーバからクエリID情報を受信することに応答して自動的に表示される。幾つかの実施形態においては、GUI250は、アップロードされたデータ要求についての更新に対する要求をユーザが提出したことに応答して表示される。
図3は、幾つかの実施形態に従う、ODDRシステムに対するGUI300および350の図である。幾つかの実施形態においては、GUI300は、ODDRシステム100(図1)におけるUI110として使用可能である。幾つかの実施形態においては、GUI300は、データ要求、例えば、受信機131(図1)により受信可能なデータ要求を生成するために使用可能である。GUI300は、データ要求のステータスに関する情報を含んでいる。GUI300は、クエリIDラベル310を、種々のクエリIDを含むフィールド315と共に含んでいる。GUI300更に、ステータスラベル320と、関連付けられたクエリIDに対応するステータス情報を含むフィールド325を含んでいる。GUI300においては、クエリIDのABC123およびDEF456の両方は、「未処理」のステータスを有している。幾つかの実施形態においては、未処理ステータスは、データ要求が、サーバ、例えばサーバ120(図1)により受信されたが、車両、例えば車両140(図1)にはまだ送信されていないことを示している。幾つかの実施形態においては、GUI300は、車両IDラベルと、クエリ(問合せ)に対応している車両IDを含むフィールドとを含んでいる。幾つかの実施形態においては、GUI300は、ユーザと関連付けられているすべてのデータ要求を表示するように構成されている。幾つかの実施形態においては、GUI300は、ユーザと関連付けられているすべてのデータ要求よりも少ない数のデータ要求を表示するように構成されている。当業者は、図3におけるクエリIDの数は単なる例にすぎず、より多くのまたはより少ない数のクエリIDを表示することが本開示の範囲内であるということを認識するであろう。
GUI350は、データ要求のステータスに関する情報を含んでいる。幾つかの実施形態においては、GUI350は、ODDRシステム100(図1)におけるUI110として使用可能である。GUI300と類似して、GUI350は、クエリIDラベル360と、種々のクエリIDを有するフィールド365とを含んでいる。GUI350は更に、ステータスラベル370と、関連付けられたクエリIDに対応しているステータス情報を含むフィールド375とを含んでいる。GUI300とは異なり、GUI350は、「提出済み」であるクエリIDのABC123のステータスを含んでいる。幾つかの実施形態においては、ステータス「提出済み」は、データ要求が、車両、例えば車両140(図1)に送信されたが、データ要求に関するデータが車両から受信されていないことを示している。幾つかの実施形態においては、GUI300は、更新されたステータス情報の受信に応答して、GUI350に自動的に変わるように構成されている。幾つかの実施形態においては、GUI300は、更新されたステータスに対するユーザからの受信した要求に応答して、GUI350に変わるように構成されている。幾つかの実施形態においては、GUI350は、データ要求のステータスが更新されると、ユーザに警告を自動的に提供するように構成されている。幾つかの実施形態においては、警告は可聴警告または可視警告を含んでいる。幾つかの実施形態においては、警告は、ユーザにより制御可能なモバイル装置上にGUI350を自動的に表示させる。幾つかの実施形態においては、更新されたステータスを有するデータ要求のみがGUI350上に表示される。幾つかの実施形態においては、GUI350は、更新されたステータスを有するデータ要求を、異なる方法で、例えば、更新されたステータスを有していないデータ要求よりも強調して表示するように構成されている。
図4は、幾つかの実施形態に従う、ODDRシステム400の模式図である。幾つかの実施形態においては、ODDRシステム400はODDRシステム100(図1)として使用可能である。ODDRシステム400は、ユーザ410からのデータ要求に関する情報を受信するように構成されているサーバ420を含んでいる。幾つかの実施形態においては、ユーザ410は、車両430に送信されるデータ要求に対する情報を入力するために、GUI、例えばGUI200(図2)などのようなUI、例えばUI110(図1)を使用することができる。幾つかの実施形態においては、UIは、コマンドラインインタフェース(CLI)または構造化クエリ言語(SQL)インタフェースを含んでいる。
サーバ420は、GUIインタプリタ421を使用して、ユーザ410からデータ要求を受信するように構成されている。当業者は、GUIは単なる例にすぎず、CLIまたはSQLインタプリタもまたODDRシステム400において使用可能であるということを認識するであろう。幾つかの実施形態においては、GUIインタプリタ421は、受信機131(図1)と類似の機能を含んでいる。GUIインタプリタ421は、データ要求を受信し、サーバ420におけるメモリ、例えばメモリユニット(図1)にデータ要求を格納することを指示するように構成されている。
サーバ420は更に、ODDRコマンドパブリッシャ422を使用して、データ要求を送信するように構成されている。幾つかの実施形態においては、ODDRコマンドパブリッシャ422は、クエリキュー134および送信機135(図1)と類似している機能を含んでいる。ODDRコマンドパブリッシャ422は、車両430にデータ要求を送信するように構成されている。幾つかの実施形態においては、データ要求は無線で送信される。幾つかの実施形態においては、データ要求は有線接続を介して送信される。幾つかの実施形態においては、ODDRコマンドパブリッシャ422は、データ要求の優先度レベルに基づいて、データ要求の送信の優先度を決定するように構成されている。幾つかの実施形態においては、データ要求の優先度レベルは、ユーザ410のアイデンティティ、ユーザ410が支払った料金、サーバ420がユーザ410からそのデータ要求を受信した時間、または他の適切なパラメータに基づいて決定される。幾つかの実施形態においては、サーバ420から車両430に転送されるデータ要求はODDRコマンドと呼ばれる。
サーバ420は更に、データ受信機423を使用して、車両430からデータを受信するように構成されている。幾つかの実施形態においては、データ受信機423は、受信機137(図1)と類似の機能を含んでいる。データ受信機423は、データ要求に応答して、センサデータおよびアプリケーションログなどのようなデータを車両430から受信するように構成されている。幾つかの実施形態においては、センサデータは、カメラ画像、点群データ、レーダーデータ、ソナーデータ、または他の適切なデータを含んでいる。幾つかの実施形態においては、データ受信機423は、受信したデータに対して前処理を実行するように構成されている。データ受信機423は、受信したデータを、サーバ420における格納のためにデータ格納器425に転送するように構成されている。
サーバ420は更に、イベント受信機424を使用して、車両430からイベントデータを受信するように構成されている。幾つかの実施形態においては、イベント受信機424は、受信機136(図1)と類似の機能を含んでいる。イベント受信機424は、データ要求と関連付けられているトリガーイベントの発生に関する情報を受信するように構成されている。イベント受信機424は、サーバ420における格納のために、イベントデータをデータ格納器425に転送するように構成されている。
サーバ420は更に、データ格納器425を使用して、イベントデータと、受信したデータとを格納するように構成されている。幾つかの実施形態においては、データ格納器425は、メモリユニット132またはデータ格納装置126(図1)の少なくとも1つと類似している機能を含んでいる。データ格納器425は、受信したデータに関するイベントデータと併せて、受信したデータを格納するように構成されている。データ格納器425は、受信したデータにより満たされるデータ要求と関連付けられているクエリIDと併せて、受信したデータを格納するように構成されている。幾つかの実施形態においては、データ格納器425は、ソリードステートメモリ、ランダムアクセスメモリ、または他の適切なタイプのメモリを含んでいる。
サーバ420は更に、データ要求を満たすデータを受信したことに応答して、完了通知器426を使用してユーザ410に通知するように構成されている。幾つかの実施形態においては、完了通知器426は、データ格納装置126(図1)と類似の機能を含んでいる。完了通知器426は、データ要求が満たされたということをユーザ410に警告するように構成されている。幾つかの実施形態においては、警告は、可聴警告または可視警告を含んでいる。幾つかの実施形態においては、警告は、ユーザ410により制御可能なモバイル装置に警告を表示させる。幾つかの実施形態においては、モバイル装置は、アクセス可能なコンソール150またはUI110(図1)の少なくとも1つに統合され、またはこれらに接続可能である。幾つかの実施形態においては、完了通知器426は、データ要求のすべてが満たされたときにのみユーザ410に警告するように構成されている。幾つかの実施形態においては、完了通知器426は、データ要求の一部が満たされたときにユーザ410に警告するように構成されている。幾つかの実施形態においては、完了通知器426は、データ格納器425からのデータを警告と共に送信するように構成されている。幾つかの実施形態においては、完了通知器426は、例えば、アクセス可能なコンソール150(図1)を使用して、データにアクセスすることをユーザに促すように構成されている。幾つかの実施形態においては、完了通知器426は、データ要求と関連付けられているクエリIDを警告と共に送信するように構成されている。
ODDRシステム400は更に車両430を含み、車両430は、サーバ420からデータ要求を受信し、車両430に取り付けられているセンサからデータを収集し、そのデータをサーバ420に送信するように構成されている。車両430は、ODDRコマンド受信機431を使用して、データ要求を受信するように構成されている。ODDRコマンド受信機431は、サーバ420からデータ要求を受信し、データ要求を要求抽出器(request abstractor)434に転送するように構成されている。幾つかの実施形態においては、ODDRコマンド受信機431は、データ要求の前処理、例えば、データ要求の優先度レベルを決定すること、またはデータ要求に関するデータを取り込むことができる車両430内のセンサを識別することを実行するように構成されている。幾つかの実施形態においては、ODDRコマンド受信機431は、サーバ420と、データ収集器435などのような車両430の構成要素との間の通信を促進するために、データ要求を処理するように構成されている。
車両430は更に、車両430におけるプロセッサ上で作動しているアプリケーション432を含んでいる。幾つかの実施形態においては、アプリケーション432は、対象物認識アプリケーション、道路認識アプリケーション、センサフュージョンアプリケーション、位置特定アプリケーション、経路計画アプリケーション、コントローラアプリケーションなどのような自動運転システムアプリケーションを含んでいる。幾つかの実施形態においては、アプリケーション432は、センサデータと、アプリケーション432の内部ステータスと、車両430の性能と、車両430の周囲の環境とを監視するように構成されている。アプリケーション432は、加速度の急な変更、車両430の周囲の対象物の画像の取り込み、または他の適切なイベントなどのようなイベント(トリガーイベント)の条件が満たされたかどうかを判定するように構成されている。トリガーイベントが発生したというアプリケーション432による判定に応答して、アプリケーション432は、トリガーコマンド受信機433を介して要求抽出器434にデータ要求を送る。幾つかの実施形態においては、アプリケーション432は、アプリケーション432の内部ステータスおよび内部イベントを格納しているアプリケーションログを生成するように構成されており、アプリケーションログはデータ収集器435に定期的に送信され、アプリケーションログは、サーバ420がアプリケーションログを収集するために車両430にデータ要求を送ると、データ転送器436に送信される。
車両430は更に、データ要求をアプリケーション432から受信するように構成されているトリガーコマンド受信機433を含んでいる。トリガーコマンド受信機433は、アプリケーションからのデータ要求を要求抽出器に転送するように構成されている。トリガーコマンド受信機433は、車両430内のプロセス間通信(IPC)などのような特定の通信プロトコルを処理するように構成されている。
車両430は更に、要求抽出器434を含んでいる。データ収集器435は、アプリケーション432またはサーバ420の何れかからデータ要求を受信するように構成されている。データ要求がサーバ420から受信されると、データ要求は、サーバ420と車両430との間の特定の通信プロトコルを処理するように構成されているODDRコマンド受信機431により処理される。データ要求がアプリケーション432から受信されると、データ要求はトリガーコマンド受信機433により処理される。要求抽出器434は、データ要求がサーバ420から受信されるかアプリケーション432から受信されるかに関わらず、抽出されたデータ要求が通信プロトコルおよびデータ収集器435とは無関係になるように、データ要求を抽出するように構成されている。このようにして、データ収集器435は、データ要求の発信元に依存しなくなり、その発生元に関係なくデータ要求を処理することができる。幾つかの実施形態においては、要求抽出器434は、データ要求を解析し、データ要求が何れのタイプのトリガーイベントを対象としているかを決定するように構成されている。幾つかの実施形態においては、要求抽出器434は要求者タイプをODDRコマンドに追加する。例えば、幾つかの実施形態においては、要求抽出器434は、ODDRコマンドが車両の外部からのものなのかまたは車両内のアプリケーションからのものなのかを示す、抽出された要求者について情報を含んでいる。幾つかの実施形態においては、要求者タイプ情報は、ODDRコマンドが車両の外部から受信されたことを示すブール演算子を含んでいる。幾つかの実施形態においては、要求者タイプ情報は要求者IDを含んでいる。幾つかの実施形態においては、データ要求の受信はトリガーイベントを構成する。ODDRコマンド受信機431またはトリガーコマンド受信機433からのデータ要求の受信に応答して、要求抽出器434はまた、抽出されたデータ要求をデータ収集器435に送信するように構成されている。
車両430は更に、要求抽出器434からの指示に応答して、車両430におけるメモリから、または1つ以上のアプリケーション432におけるアプリケーションログからデータを取り出すように構成されているデータ収集器435を含んでいる。データ収集器435は、要求抽出器434からの抽出された要求に基づいて、何れのデータを収集するかを決定する。幾つかの実施形態においては、データ収集器435により受信された指示は、トリガーイベントの前後のデータを収集する継続時間に関する情報を含んでいる。幾つかの実施形態においては、データ収集器435により受信された指示は、トリガーイベントの発生に応答して、センサのタイプなどのような、収集するデータのタイプに関する情報を含んでいる。幾つかの実施形態においては、データ収集器435は、データ要求と関連付けられているトリガーイベントの発生の通知をイベント転送器437に送信するように構成されている。幾つかの実施形態においては、トリガーイベントが発生したかどうかの判定は、サーバ420またはアプリケーション432からのデータ要求の受信により判定される。幾つかの実施形態においては、トリガーイベントが発生したかどうかの判定は、車両のセンサから受信したデータが、受信したデータ要求において決定されたトリガー条件を満たすことに基づいて判定される。データ収集器435は、データ要求を満たすための収集されたデータをデータ転送器436に送信するように構成されている。
データ転送器436は、データ収集器435からのデータをサーバ420に送信するように構成されている。幾つかの実施形態においては、データ転送器436は、データを無線で送信するように構成されている。幾つかの実施形態においては、データ転送器436は、データを有線接続を介して送信するように構成されている。幾つかの実施形態においては、データ転送器436は、データ要求のクエリIDと共にデータを送信するように構成されている。幾つかの実施形態においては、データ転送器436は、送信されているデータが、データ要求を部分的または完全に満たすかどうかを示す情報を送信するように構成されている。幾つかの実施形態においては、データ転送器436は、データによって少なくとも部分的に満たされたデータ要求と関連付けられている優先度レベル情報を送信するように構成されている。
イベント転送器437は、データ収集器435からのトリガーイベントデータをサーバ420に送信するように構成されている。幾つかの実施形態においては、イベント転送器437は、トリガーイベントデータを無線で送信するように構成されている。幾つかの実施形態においては、イベント転送器437は、トリガーイベントデータを有線接続を介して送信するように構成されている。幾つかの実施形態においては、イベント転送器437は、データ要求のクエリIDと共にトリガーイベントデータを送信するように構成されている。幾つかの実施形態においては、イベント転送器437は、トリガーイベントデータに関するデータ要求と関連付けられている優先度レベル情報を送信するように構成されている。幾つかの実施形態においては、イベント転送器437は、トリガーイベントが発生していることの検出に応答して、トリガーイベントと関連付けられているメタデータを送信するように構成されている。トリガーイベント時間およびデータ収集時間範囲などのようなメタデータは、サーバ420がデータ処理を最適化することを支援するためにデータ転送器436からのセンサデータが送信されるということをサーバ420が知ることを支援する。幾つかの実施形態においては、イベント転送器437は省略され、メタデータはデータ転送器436により送信される。
ODDRシステム400を使用することは、受信したデータを要求しまたは読み出すために特殊な装備に頼ることなく理解することが容易なフォーマットで、ユーザが1台以上の車両430から情報を得ることを可能にする。ODDRシステム400におけるデータ要求の優先度を決定する機能は、法の執行機関が公共の安全に関するデータを得ることができることを確実にすることを支援し、一方、ユーザがデータをより早く得るために料金を支払うことを可能にする。この柔軟性は、広範囲のユーザに対して、ODDRシステム400の有用性を高めることを支援する。
図5は、幾つかの実施形態に従う、ODDRコマンド510のデータ構造500の図である。幾つかの実施形態においては、ODDRコマンド510はサーバ420から車両430(図4)に送信される。ODDRコマンド510は、車両、例えば車両430(図4)または車両140(図1)へのデータ要求により取得されようとしているデータのタイプに関する情報を含んでいる。
ODDRコマンド510は、データ要求の優先度レベルを示す転送優先度パラメータ511を含んでいる。ODDRコマンド510は更に、もしあれば、何れのタイプのデータを車両上の他のアプリケーションから取り出すべきかを示すログレベルパラメータ512を含んでいる。例えば、幾つかの実施形態においては、ODDRコマンド510は対象物認識アプリケーションからデータを取り出す。ログレベルパラメータ512は、エラーレベルまたは臨界レベル(critical level)などのような何れのタイプのデータを他のアプリケーションから取り出すかを決定する。幾つかの実施形態においては、ログレベルパラメータ512はODDRコマンド510から省略され、またはログレベルパラメータ512は空の状態のままにされる。ODDRコマンド510は更に、データを収集するためのトリガーイベントの前および/または後の期間を示す、収集される時間範囲パラメータ513を含んでいる。時間範囲は、ユーザによりGUI200において入力された開始時間および終了時間に対応している。ODDRコマンド510は更に、データ要求に応答して収集されたデータの目的地を示すURL(ユニフォームリソースロケータ)終点パラメータ514を含んでいる。ODDRコマンド510は更に、もし行うのであれば、どのくらいの頻度でデータを時間範囲513からサンプリングすべきかを示す頻度パラメータ515を含んでいる。例えば、イベント時間がt=100秒で、時間範囲が開始時間=-1秒および終了時間=2秒を含み、頻度が10Hz(100ミリ秒サイクル)のときには、t=99.0秒、99.1秒、99.2秒、...、101.9秒、102.0秒におけるデータが、ODDRコマンド510により収集される。ODDRコマンド510は更に、データ要求により要求されたデータを収集するために使用可能なセンサのタイプおよび/またはアプリケーションを示すログIDパラメータ516を含んでいる。幾つかの実施形態においては、固有ID(例えば汎用固有識別子(UUID))がすべてのセンサとアプリケーションに対して予め割り当てられ、ユーザがデータを収集したいと所望する固有IDが、ログIDパラメータ516において特定される。ODDRコマンド510は更に、データ要求を出したユーザのアイデンティティを示す要求者IDパラメータ517を含んでいる。ODDRコマンド510は更に、データ要求と関連付けられているトリガーイベントを示すイベントIDパラメータ518を含んでいる。ODDRコマンド510は更に、車両、例えば車両140(図1)または車両430(図4)のリソースのどのくらいの量がデータ要求を満たすために割り当てられるべきかを示す予算(リソース割当て計画)IDパラメータ519を含んでいる。当業者は、ODDRコマンド510において追加的なパラメータが可能であるということを理解するであろう。例えば、幾つかの実施形態においては、ODDRコマンド510は、トリガーイベントが起こる可能性のある地理的領域を示す車両位置パラメータを含んでいる。当業者は、ODDRコマンド510が、図5におけるパラメータのすべてを常に含んでいるわけではないということも理解するであろう。例えば、幾つかの実施形態においては、予算IDパラメータ519は省略される。
図6は、幾つかの実施形態に従う、ODDRシステムを使用する方法600のフローチャートである。方法600は、ユーザからの受信したデータ要求に基づいている。当業者は、上記の記述に基づいて、車両において作動しているアプリケーションにより生成されたデータ要求に対応するように、方法600をどのように修正するかを理解するであろう。幾つかの実施形態においては、方法600は、ODDRシステム100(図1)、ODDRシステム400(図4)、または他の適切なODDRシステムを使用して実現される。方法600は、開発者などの、データ要求に対するクエリ条件をGUIに入力したユーザからサーバがデータ要求を受信する動作605を含んでいる。幾つかの実施形態においては、GUIは、ユーザにより制御可能なモバイル装置を含んでいる。サーバ、例えばサーバ120(図1)またはサーバ420(図4)は、データ要求を無線でまたは有線接続を介して受信するように構成されている。
方法600は更に、ODDRコマンドが、1台以上の車両、例えば車両140(図1)または車両430(図4)に送信される動作610を含んでいる。ODDRコマンドは、サーバにより受信されたデータ要求に対応しており、データ要求を満たすためのデータを車両に収集させるためのトリガーイベントを識別するためのイベントID情報を含んでいる。幾つかの実施形態においては、データ要求はトリガーイベントを構成する。
方法600は更に、車両、例えば車両140(図1)または車両430(図4)がODDRコマンドを受信する動作615を含んでいる。幾つかの実施形態においては、ODDRコマンドは、ODDRコマンド510(図5)と類似しているデータ構造500を有している。ODDRコマンドは、無線でまたは有線接続を介して受信される。幾つかの実施形態においては、ODDRコマンドは、前処理され、例えば、データ要求の優先度レベルが決定され、またはデータ要求に関するデータを取り込むことができる車両におけるセンサが識別される。幾つかの実施形態においては、ODDRコマンドは、サーバと、データ収集器(435)または要求抽出器(434、図4)などのような車両の構成要素との間の通信を促進するために処理される。
方法600は更に動作620を含み、動作620では、要求抽出器、例えば要求抽出器434(図4)が、ODDRコマンドをサーバと車両との間の通信プロトコルと無関係にするためにODDRコマンドを抽出する。抽出されたODDRコマンドは、トリガーイベントが発生したかどうかを判定するためにデータおよびイベント情報を収集することを車両における構成要素に指示するために使用可能であり、トリガーイベントが発生したことに応答してデータ要求を満たすためにデータを収集するための指示を提供するために使用可能である。幾つかの実施形態においては、イベントデータは、トリガーイベントが発生したかどうかを判定するために、車両におけるプロセッサ上で作動しているアプリケーションに基づいて収集される。幾つかの実施形態においては、車両におけるメモリに格納されているデータは、トリガーイベントが発生したという決定に応答して編集される(compiled)。
方法600は更に、イベント情報がサーバに送られる動作625を含んでいる。幾つかの実施形態においては、イベント情報はイベント転送器437(図4)によりサーバに送られる。イベント情報は、無線でまたは有線接続を介してサーバに送られる。イベント情報は、トリガーイベントの発生を示している。幾つかの実施形態においては、イベント情報は、トリガーイベントと関連付けられたクエリIDを含んでいる。
方法600は更に、サーバが車両からイベント情報を受信する動作630を含んでいる。幾つかの実施形態においては、イベント情報は、イベント受信機424(図4)により受信される。幾つかの実施形態においては、イベント情報は受信機136(図1)により受信される。幾つかの実施形態においては、サーバは、イベント情報を受信したことに応答して、ユーザに通知するように構成されている。幾つかの実施形態においては、通知は可聴警告または可視警告を含んでいる。幾つかの実施形態においては、通知は、ユーザにより制御可能なモバイル装置上に自動的に表示されるように構成されている。
方法600は更に、データ要求を少なくとも部分的に満たすデータが車両からサーバに送信される動作635を含んでいる。幾つかの実施形態においては、データはデータ転送器436(図4)によりサーバに送信される。データは無線でまたは有線接続を介して送信される。幾つかの実施形態においては、データは、データによって少なくとも部分的に満たされるデータ要求と関連付けられたクエリIDを含んでいる。データが、データ要求を満たすためのすべてのデータよりも少ないデータを含んでいる幾つかの実施形態においては、データは、データ要求の何れの部分がデータによって満たされていないのかを示す情報を含んでいる。データがデータ要求を完全に満たしている幾つかの実施形態においては、データは、データ要求の全体がデータによって満たされていることを示す情報を含んでいる。幾つかの実施形態においては、データは、車両に取り付けられているセンサから収集されたデータ、アプリケーションログデータ、または他の適切な情報を含んでいる。
方法600は更に、サーバが車両からデータを受信する動作640を含んでいる。幾つかの実施形態においては、データはデータ受信機423(図4)により受信される。幾つかの実施形態においては、データは受信機137(図1)により受信される。
方法600は更に、データがデータベースに格納される動作645を含んでいる。幾つかの実施形態においては、データはデータ格納装置126(図1)に格納される。幾つかの実施形態においては、データはデータ格納器425(図4)に格納される。幾つかの実施形態においては、データは、イベント情報と関連付けられて格納される。
方法600は更に、利用可能なデータがユーザに通知される動作650を含んでいる。幾つかの実施形態においては、完了通知器426(図4)を使用してユーザに通知する。幾つかの実施形態においては、通知はデータを含んでいる。幾つかの実施形態においては、通知は、データが利用可能であることを示すものを含んでいる。幾つかの実施形態においては、通知は、ユーザにより制御可能なモバイル装置上に警告を自動的に表示させる。幾つかの実施形態においては、通知は可視警告または可聴警告を含んでいる。
幾つかの実施形態においては、方法600は追加的な動作を含んでいる。例えば、幾つかの実施形態においては、方法600は、データ要求の優先度レベルに基づいて、ODDRコマンドの車両への送信の優先度を決定することを含んでいる。幾つかの実施形態においては、少なくとも1つの動作が方法600から省略される。例えば、幾つかの実施形態においては、イベント情報はサーバに送信されない。幾つかの実施形態においては、方法600の動作の順序が変更される。例えば、幾つかの実施形態においては、イベント情報は、トリガーイベントと関連付けられているデータの編集(動作620)よりも前にサーバに送信される(動作625)。
方法600は、受信したデータを要求しまたは読み出すために特殊な装備に頼ることなく理解することが容易なフォーマットで、ユーザが1台以上の車両から情報を得ることを可能にする。この柔軟性は、幾つかの実施形態においては、ユーザが、ソフトウェア製品の有用性を高めるために、実世界のデータを使用してソフトウェアを開発する能力を向上させることを支援する。
図7は、幾つかの実施形態に従う、ODDRシステムを実施するためのシステム700の図である。システム700は、ハードウェアプロセッサ702および非一時的コンピュータ可読格納媒体704を含み、コンピュータ可読格納媒体704は、コンピュータプログラムコード706、すなわち、一組の実行可能な命令が符号化され、すなわちそれを格納している。コンピュータ可読格納媒体704にはまた、外部装置とのインタフェースを取るための命令707が符号化されている。プロセッサ702は、バス708を介してコンピュータ可読格納媒体704に電気的に結合されている。プロセッサ702はまた、バス708によりI/Oインタフェース710に電気的に結合されている。ネットワークインタフェース712はまた、バス708を介してプロセッサ702に電気的に接続されている。ネットワークインタフェース712は、プロセッサ702およびコンピュータ可読格納媒体704がネットワーク714を介して外部要素に接続することができるように、ネットワーク714に接続されている。プロセッサ702は、ODDRシステム100(図1)、ODDRシステム400(図4)または方法600(図6)で記述されているような動作の一部またはすべてを実行するためにシステム700が使用可能となるように、コンピュータ可読格納媒体704において符号化されているコンピュータプログラムコード706を実行するように構成されている。
幾つかの実施形態においては、プロセッサ702は中央演算処理装置(CPU)、マルチプロセッサ、分散型処理システム、特定用途向け集積回路(ASIC)、および/または、適切な処理ユニットである。
幾つかの実施形態においては、コンピュータ可読格納媒体704は、電子的、磁気的、光学的、電磁的、赤外線、および/または半導体システム(または装置若しくはデバイス)である。例えば、コンピュータ可読格納媒体704は、半導体メモリまたはソリッドステートメモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、剛体磁気ディスク、および/または光ディスクを含んでいる。光ディスクを使用する幾つかの実施形態においては、コンピュータ可読格納媒体704は、コンパクトディスクリードオンリメモリ(CD-ROM)、コンパクトディスクリード/ライト(CD-R/W)、および/またはデジタルビデオディスク(DVD)を含んでいる。
幾つかの実施形態においては、格納媒体704は、ODDRシステム100(図1)、ODDRシステム400(図4)または方法600(図6)において記述されているような動作の一部またはすべてをシステム700に実行させるように構成されているコンピュータプログラムコード706を格納している。幾つかの実施形態においては、格納媒体704はまた、優先度レベルパラメータ716、クエリIDパラメータ718、クエリステータスパラメータ720、クエリデータパラメータ722、および/または、ODDRシステム100(図1)、ODDRシステム400(図4)または方法600(図6)において記述されているような動作の一部またはすべてを実行するための一組の実行可能な命令などのような、ODDRシステム100(図1)、ODDRシステム400(図4)または方法600(図6)において記述されているような動作の一部またはすべてを実行している間に生成される情報と共に、ODDRシステム100(図1)、ODDRシステム400(図4)または方法600(図6)において記述されているような動作の一部またはすべてを実行するために必要な情報を格納している。
幾つかの実施形態においては、格納媒体704は、製造機械とのインタフェースを取るための命令707を格納している。命令707は、製造プロセスの間に方法600を効果的に実施するために、製造機械により読み取り可能な製造命令をプロセッサ702が生成することを可能にする。
システム700はI/Oインタフェース710を含んでいる。I/Oインタフェース710は外部回路に結合されている。幾つかの実施形態においては、I/Oインタフェース710は、情報およびコマンドをプロセッサ702に伝達するためのキーボード、キーパッド、マウス、トラックボール、トラックパッド、および/またはカーソル方向キーを含んでいる。
システム700はまた、プロセッサ702に結合されているネットワークインタフェース712を含んでいる。ネットワークインタフェース712は、システム700が、1つ以上の他のコンピュータシステムが接続されているネットワーク714と通信することを可能にする。ネットワークインタフェース712には、BLUETOOTH(ブルートゥース)(登録商標)、WIFI(登録商標)、WIMAX(登録商標)、GPRS(登録商標)、またはWCDMA(登録商標)などのような無線ネットワークインタフェース、または、ETHERNET(イーサネット(登録商標))、USB、またはIEEE-1394などのような有線ネットワークインタフェースが含まれる。幾つかの実施形態においては、ODDRシステム100(図1)、ODDRシステム400(図4)または方法600(図6)において記述されているような動作の一部またはすべては、2つ以上のシステム700において実施され、優先度レベル、クエリID、クエリステータス、およびクエリデータなどのような情報は、ネットワーク714を介して異なるシステム700間で交換される。この記述の1つの態様はシステムに関する。システムは、命令を格納するように構成されている非一時的コンピュータ可読媒体を含んでいる。システムは更に、非一時的コンピュータ可読媒体に接続されているプロセッサを含んでいる。プロセッサは、データ要求についてのユーザインタフェース(UI)からの情報を受信するために命令を実行するように構成されている。プロセッサは更に、データ要求に識別情報を割り当てるために命令を実行するように構成されている。プロセッサは更に、識別情報と関連付けてデータ要求を格納するために命令を実行するように構成されている。プロセッサは更に、データ要求を車両に送信するために命令を実行するように構成されている。プロセッサは更に、送信されたデータ要求に応答して、車両におけるソースからデータを受信するために命令を実行するように構成されている。プロセッサは更に、受信したデータをユーザに通知するために命令を実行するように構成されている。幾つかの実施形態においては、プロセッサは更に、データ要求に基づいて、データ要求を受信する車両を識別するために命令を実行するように構成されている。幾つかの実施形態においては、プロセッサは更に、UIから受信したデータ要求の優先度レベルを決定するために命令を実行するように構成されている。幾つかの実施形態においては、プロセッサは更に、UIから受信した支払い情報に基づいて、データ要求の優先度レベルを決定するために命令を実行するように構成されている。幾つかの実施形態においては、プロセッサは更に、ユーザの決定されたアイデンティティに基づいて、車両におけるセンサへのアクセスを制限するために命令を実行するように構成されている。幾つかの実施形態においては、プロセッサは更に、データ要求を車両に送信したことに応答して、データ要求のステータスを更新し、および、データ要求のステータスをユーザに提供することをUIに指示するために命令を実行するように構成されている。幾つかの実施形態においては、プロセッサは更に、車両からセンサデータを受信したことに応答して、データ要求のステータスを更新し、データ要求のステータスをユーザに提供することをUIに指示するために命令を実行するように構成されている。幾つかの実施形態においては、プロセッサは更に、ユーザへの通知と共に受信したセンサデータをユーザに送信するために命令を実行するように構成されている。幾つかの実施形態においては、プロセッサは更に、受信したセンサデータのユーザへの通知を送信したことに応答して、受信したセンサデータにユーザがアクセスすることを可能にするために命令を実行するように構成されている。
この記述の1つの態様は方法に関する。方法は、データ要求についてのユーザインタフェース(UI)からの情報を受信することを含んでいる。方法は更に、データ要求に識別情報を割り当てることを含んでいる。方法は更に、識別情報と関連付けてデータ要求を格納することを含んでいる。方法は更に、データ要求を車両に送信することを含んでいる。方法は更に、送信されたデータ要求に応答して、車両におけるソースからデータを受信することを含んでいる。方法は更に、受信したデータをユーザに通知することを含んでいる。幾つかの実施形態においては、方法は更に、データ要求に基づいて、データ要求を受信するための車両を識別することを含んでいる。幾つかの実施形態においては、方法は更に、UIから受信したデータ要求の優先度レベルを決定することを含んでいる。幾つかの実施形態においては、データ要求の優先度レベルを決定することは、UIから受信した支払い情報に基づいて、データ要求の優先度レベルを決定することを含んでいる。幾つかの実施形態においては、方法は更に、ユーザの決定されたアイデンティティに基づいて、車両におけるセンサへのアクセスを制限することを含んでいる。幾つかの実施形態においては、方法は更に、データ要求を車両に送信したことに応答して、データ要求のステータスを更新することと、データ要求のステータスをユーザに提供することをUIに指示することとを含んでいる。幾つかの実施形態においては、方法は更に、車両からセンサデータを受信したことに応答して、データ要求のステータスを更新することと、データ要求のステータスをユーザに提供することをUIに指示することとを含んでいる。幾つかの実施形態においては、方法は更に、ユーザへの通知と共に受信したセンサデータをユーザに送信することを含んでいる。幾つかの実施形態においては、方法は更に、受信したセンサデータのユーザへの通知を送信したことに応答して、受信したセンサデータにユーザがアクセスすることを可能にすることを含んでいる。
この記述の1つの態様はシステムに関する。システムはセンサを含んでいる。システムは更に、命令を格納するように構成されている非一時的コンピュータ可読媒体を含んでいる。システムは更に、非一時的コンピュータ可読媒体に接続されているプロセッサを含んでいる。プロセッサは、ユーザから受信した情報に基づいて、トリガーイベント情報を含むデータ要求を受信するために命令を実行するように構成されている。プロセッサは更に、非一時的コンピュータ可読媒体に格納されているアプリケーションに基づいて、トリガーイベント情報によって示されているトリガーイベントが発生したかどうかを判定するために命令を実行するように構成されている。プロセッサは更に、トリガーイベントが発生したという判定に応答して、センサからのデータを編集するために命令を実行するように構成されており、トリガーイベントの前およびトリガーイベントの後の編集されたデータの期間は、受信したデータ要求に基づいている。プロセッサは更に、トリガーイベントが発生したことを示すものをサーバに送信することを第1送信機に指示するために命令を実行するように構成されている。プロセッサは更に、編集されたデータをサーバに送信することを第2送信機に指示するために命令を実行するように構成されている。幾つかの実施形態においては、システムは更に車両を含み、センサは車両に取り付けられている。
前述したものは、当業者が、本開示の態様をより良好に理解できるように、幾つかの実施形態の特徴の要点を述べている。当業者は、ここにおいて提示されている実施形態の、同じ目的を実行するためにおよび/または同じ利点を達成するために、他のプロセスおよび構造を設計または修正するための根拠として本開示を容易に使用できるということを認識すべきである。当業者はまた、そのような等価な構成は、本開示の思想および範囲から逸脱するものではなく、本開示の思想および範囲から逸脱することなく、ここにおいて種々の変更、置換、および修正を行うことができるということも認識すべきである。