IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アマゾン・テクノロジーズ・インコーポレーテッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-27
(54)【発明の名称】車載分散コンピューティング環境
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240319BHJP
   B60R 16/02 20060101ALI20240319BHJP
【FI】
G06F9/50 150C
B60R16/02 660H
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023559084
(86)(22)【出願日】2022-03-30
(85)【翻訳文提出日】2023-09-26
(86)【国際出願番号】 US2022022516
(87)【国際公開番号】W WO2022212480
(87)【国際公開日】2022-10-06
(31)【優先権主張番号】17/219,711
(32)【優先日】2021-03-31
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】507303550
【氏名又は名称】アマゾン・テクノロジーズ・インコーポレーテッド
(74)【代理人】
【識別番号】100098394
【弁理士】
【氏名又は名称】山川 茂樹
(72)【発明者】
【氏名】メンデス・ロドリゲス,エドウィン・リカルド
(72)【発明者】
【氏名】フランシス,ブレット
(72)【発明者】
【氏名】ミフスッド,デイヴィッド・ジョセフ
(72)【発明者】
【氏名】ガルシア,マイケル
(57)【要約】
1つ以上のコンピュータを含むシステムは合成センササービスを実装し、この合成センササービスは、車載分散コンピューティング環境を実装する車載コンピューティングデバイスに合成センサを展開するように構成される。合成センサは、車両内の単一コンピューティングデバイス(例えば、ECU)にモノリシックに配置されてもよく、または合成センサが必要とするリソースもしくは入力をそれぞれ有する車両の複数のコンピューティングデバイス(例えば、複数のECU)にモジュラで配置されてもよい。合成センサのモジュラコンポーネントは、車載分散コンピューティング環境のランタイム環境で実行することができ、その結果、モジュラコンポーネントは、車両の異なるコンピューティングデバイス(例えば、異なるECU)上に配置されている場合でも、統合された合成センサとして機能する。
【選択図】図5A
【特許請求の範囲】
【請求項1】
車両に設置された、または設置されるように構成された複数の電子制御ユニット(ECU)を含むシステムであって、
前記ECUのうち1つまたは複数は、車載分散コンピューティング環境を実装するためのプログラム命令を格納し、
前記車載分散コンピューティング環境は、
前記車両に展開するための合成センサパッケージを受信するように構成され、前記合成センサパッケージは合成センサのロジック及び前記合成センサのマッピングを含み、
前記合成センサの配置位置を、
前記ECUのそれぞれのECUでの前記合成センサパッケージの前記マッピングのためのデータ入力のそれぞれの可用性、及び
前記合成センサパッケージに含まれる前記ロジックを実行するための前記ECUの前記それぞれのECUのそれぞれのリソース容量、
に基づいて決定するように構成され、
前記それぞれのECUの2つ以上の異なるECUに配置された2つ以上のモジュラコンポーネントとして前記合成センサを配置するように構成され、前記2つ以上のモジュラコンポーネントは前記車載分散コンピューティング環境内に前記合成センサを集合的に実装する、前記システム。
【請求項2】
前記合成センサの前記2つ以上のモジュラコンポーネントは、
前記2つ以上のECUのうち第一ECUに配置されたロジックモジュール、及び
前記2つ以上のECUのうち第二ECUに配置された入力モジュール、
を含み、
前記ロジックモジュール及び前記入力モジュールは、前記車載分散コンピューティング環境のランタイム環境で実行する、請求項1に記載のシステム。
【請求項3】
前記入力モジュールは、
前記第二ECUの1つ以上のデータソースからの情報を、
プラットフォーム抽象化層、
ハードウェア抽象化層、または
車両抽象化層、
を介して受信し、
前記第二ECUの前記データソースからの前記情報を、前記車載分散コンピューティング環境の通信層を介して、前記第一ECUの前記ロジックモジュールに提供する、
ように構成される、請求項2に記載のシステム。
【請求項4】
前記車載分散コンピューティング環境は、
前記ECUの現在の容量または能力に基づいて、及び前記ECUのそれぞれのECUにおけるデータ入力の可用性に基づいて、合成センサの配置を決定するように構成されたオーケストレーションコンポーネントと、
1つ以上の合成センサのモジュラコンポーネントが実行するランタイム環境と、
前記ECUから容量または能力情報を収集するために標準化されたインタフェースを実装するように構成された監視コンポーネントと、
前記車載分散コンピューティング環境の1つ以上のプロトコルに従って通信をフォーマットするように構成された通信層と、
を含む、請求項1から3のいずれかに記載のシステム。
【請求項5】
プログラム命令を格納する1つ以上の非一時的なコンピュータ可読媒体であって、
前記プログラム命令は、1つ以上のプロセッサ上で、またはそれらの間で実行されるとき、前記1つ以上のプロセッサに車載分散コンピューティング環境を実装させ、
前記車載分散コンピューティング環境は、
車両に展開するための合成センサパッケージを受信するように構成され、前記合成センサパッケージは合成センサのロジック及び前記合成センサのマッピングを含み、
前記合成センサの配置位置を、
前記車載分散コンピューティング環境内のそれぞれの配置位置での前記合成センサパッケージの前記マッピングのためのデータ入力のそれぞれの可用性、及び
前記車載分散コンピューティング環境内の前記それぞれの配置位置のそれぞれのリソース容量または能力、
に基づいて決定するように構成され、
前記車載分散コンピューティング環境内の前記配置位置の2つ以上の異なる配置位置に配置された2つ以上のモジュラコンポーネントとして前記合成センサを配置するように構成され、前記2つ以上のモジュラコンポーネントは前記車載分散コンピューティング環境内に前記合成センサを集合的に実装する、前記1つ以上の非一時的なコンピュータ可読媒体。
【請求項6】
前記車載分散コンピューティング環境は、さらに、
前記車両内での展開用に別の合成センサパッケージを受信するように構成され、他の合成センサパッケージはロジック及びマッピングを含み、
前記他の合成センサが、未分割合成センサとして単一位置に配置されるべきか、前記他の合成センサの2つ以上のモジュラコンポーネントとして2つ以上の異なる配置位置に配置されるべきかを決定するように構成され、
前記決定に基づいて、
前記他の合成センサを前記未分割合成センサとして前記車載分散コンピューティング環境内の前記単一配置位置に配置する、または
前記他の合成センサを前記車載分散コンピューティング環境内の前記2つ以上の異なる配置位置に配置された前記2つ以上のモジュラコンポーネントとして配置する、
ように構成される、請求項5に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項7】
前記車載分散コンピューティング環境内の前記それぞれの配置位置は、前記車両内の異なるそれぞれの電子制御ユニット(ECU)を含む、請求項5または請求項6に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項8】
前記異なるそれぞれのECUは、
前記それぞれのECUが位置している車両ドメイン、または
前記ECUに接続されたセンサから前記それぞれのECUに提供されたセンサデータ、
に少なくとも部分的に基づいて、データ入力の異なるそれぞれの可用性を有する、請求項7に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項9】
前記合成センサの前記2つ以上のモジュラコンポーネントは、
少なくとも1つのロジックモジュール、及び
少なくとも1つの入力モジュール、
を含み、
前記少なくとも1つの入力モジュールは、その配置位置で1つ以上のデータソースからの情報を、
プラットフォーム抽象化層、
ハードウェア抽象化層、または
車両抽象化層、
を介して受信するように構成され、
前記少なくとも1つの入力モジュールの前記配置位置で前記データソースからの前記情報を、前記車載分散コンピューティング環境の通信層を介して、異なる配置位置で前記ロジックモジュールに提供するように構成される、請求項5から8のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項10】
前記合成センサの前記2つ以上のモジュラコンポーネントは、第三配置位置に配置された追加の入力モジュールをさらに含み、
前記少なくとも1つの入力モジュールは第二配置位置に配置され、
前記少なくとも1つの入力モジュール及び前記追加の入力モジュールは、前記第二配置位置及び前記第三配置位置でのデータソースからの情報を、第一配置位置に配置された前記ロジックモジュールに提供する、請求項9に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項11】
前記少なくとも1つのロジックモジュールは、
第一タイプのプロセッサを有する電子制御ユニット(ECU)を含む配置位置に配置された第一部分、及び
第二タイプのプロセッサを有する異なる電子制御ユニット(ECU)を含む別の配置位置に配置された第二部分、
を含み、
前記少なくとも1つのロジックモジュールの前記第一部分及び前記第二部分ならびに前記少なくとも1つの入力モジュールは、前記車載分散コンピューティング環境のランタイム環境で実行する、請求項9に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項12】
前記車載分散コンピューティング環境は、
複数の異なるメーカーによって製造された複数の車両、
異なるメーカーによって製造された複数の車両コンポーネント、または
複数の異なる車両メーカーによって製造された複数の車両であって、それぞれが異なるメーカーにより製造された複数の車両コンポーネントを含む、前記複数の車両、
での展開用の合成センサに均一な展開環境を提供するように構成される、請求項5から11のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項13】
前記車載分散コンピューティング環境は、
第一ランタイム環境、及び
第二ランタイム環境、
を含み、
前記第二ランタイム環境は1つ以上の安全基準に準拠するように構成されるため、前記第二ランタイム環境に配置された合成センサは前記安全基準を満たす、請求項5から12のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項14】
前記合成センサに利用可能な配置位置は、前記車両の外部のハードウェアに実装され、ネットワーク接続を介して前記車両に接続された仮想電子制御ユニット(vECU)での配置をさらに含む、請求項5から13のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項15】
前記車載分散コンピューティング環境は、
前記車載分散コンピューティング環境における変化に応答して、前記合成センサまたは前記合成センサの前記2つ以上のモジュラコンポーネントを別の配置位置に自動的に再配置するようにさらに構成される、請求項5から14のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【0001】
自動車、トラック、オートバイなどの現代の車両は、多くの場合、電子センサを備えて製造されており、それらのような電子センサから入力を取得して車両または車両に実装されたシステムに実行される様々な制御アクションを決定する制御アルゴリズムでプログラムされたコンピュータシステム(例えば、電子制御ユニット(ECU))を含む。高レベルの安全性を保証するために、これらのようなセンサ及び制御アルゴリズムは、自動車用安全度水準(ASILレベル)などの様々なパフォーマンスレベルを満たすように厳密にテストされて認定されている。例えば、センサまたはアルゴリズムの重要度に応じて、より高いまたはより低い認定レベルが必要になる場合がある。
【0002】
多くの場合、車両には複数のECUが含まれる。例えば、一部の車両では、ラジオが第一ECUを使用して実装されるエンターテインメントオペレーティングシステムドメインの一部であり得、シートベルト及びエアバッグ用のセンサは、高いASIL認定レベルを必要とし、第二ECUを使用して実装されるセーフティオペレーティングシステムドメインに含まれる場合がある。
【0003】
また、車両に含まれる異なるECUは、車両内の他のECUと比較して、異なる能力または容量を有する場合がある。例えば、一部のECUには、他のECUよりも多くのプロセッサ及び/またはより強力なプロセッサが含まれる場合がある。同様に、一部のECUは他のECUとは異なるセンサ入力にアクセスできる場合がある。
【図面の簡単な説明】
【0004】
図1】いくつかの実施形態による、合成センササービスを示し、合成センササービスは、合成センササービスのクライアントから合成センサを展開するための命令を受信し、合成センサをリモートで車両に展開させる。
図2】いくつかの実施形態による、合成センササービスから車載分散コンピューティング環境に展開され得る合成センサパッケージのより詳細な図を示し、合成センサパッケージは、合成センサパッケージのエンベロープ内にコードロジック及びマッピングを含み、そのうえエンベロープの外側の合成センサに対するアノテーションも含む。
図3】いくつかの実施形態による、車載分散コンピューティング環境フレームワークのコンポーネントを示すブロック図である。
図4A】いくつかの実施形態による、完全な合成センサを構成し得るモジュラコンポーネントを示すブロック図である。
図4B】いくつかの実施形態による、限定的な合成センサオーケストレーション環境を実装し、車載分散コンピューティング環境に接続される例示的な電子制御ユニット(ECU)のコンピューティングスタックを示すブロック図である。
図4C】いくつかの実施形態による、完全な合成センサオーケストレーション環境を実装し、車載分散コンピューティング環境に接続される例示的な電子制御ユニット(ECU)のコンピューティングスタックを示すブロック図である。
図5A】いくつかの実施形態による、車載分散コンピューティング環境を介して接続される電子制御ユニット(ECU)を示すブロック図であり、車載分散コンピューティング環境のオーケストレーションコンポーネントは、車載分散コンピューティング環境に展開される合成センサの配置位置を決定する。
図5B】いくつかの実施形態による、車載分散コンピューティング環境内の第一配置位置にモノリシック合成センサとして配置された第一合成センサと、車載分散コンピューティング環境内の2つの異なる配置位置にある2つのモジュラコンポーネントとして配置された第二合成センサとを示すブロック図である。
図5C】いくつかの実施形態による、2つのロジックモジュール及び1つの入力モジュールを使用して配置された合成センサを示すブロック図であり、2つのロジックモジュール及び1つの入力モジュールは、車載分散コンピューティング環境のランタイム環境で実行する。
図5D】いくつかの実施形態による、2つの入力モジュール及び1つのロジックモジュールを使用して配置された合成センサを示すブロック図であり、2つの入力モジュール及び1つのロジックモジュールは、車載分散コンピューティング環境のランタイム環境で実行する。
図5E】いくつかの実施形態による、車載分散コンピューティング環境の監視コンポーネントを示すブロック図であり、監視コンポーネントは、車載分散コンピューティング環境のオーケストレーションコンポーネントにECU能力及び現在のステートを報告する。
図6】いくつかの実施形態による、共通の合成センサパッケージを様々なタイプの車両に展開するように構成される合成センササービスを示す。
図7】いくつかの実施形態による、合成センササービスだけでなく、プロバイダネットワークによって提示された他のクラウドサービスを含む例示的なプロバイダネットワークを示す。
図8】いくつかの実施形態による、合成センササービスのクライアントコンソールの一例を示す。
図9】いくつかの実施形態による、車両に関連付けられたコードを実行する仮想ドメイン制御ユニット(仮想DCU)及び仮想電子制御ユニット(仮想ECU)を示す。
図10】いくつかの実施形態による、センサなど、車両の物理コンポーネントと、車両に対して異なる位置に実装される仮想DCU/ECUとの間の一方向トリップレイテンシの例を示す。
図11】いくつかの実施形態による、合成センササービスの操作のフローチャートを示す。
図12】いくつかの実施形態による、車載分散コンピューティング環境の操作のフローチャートを示す。
図13】いくつかの実施形態による、車載分散コンピューティング環境で実行された故障したECUへの応答のフローチャートを示す。
図14】いくつかの実施形態による、車載分散コンピューティング環境内の物理センサ及び/または物理センサのモジュールを再シャッフルするためのフローチャートを示す。
図15】いくつかの実施形態による、本明細書で説明される技術の一部またはすべてを実装する例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0005】
いくつかの実施形態及び例示の図面の例として実施形態が本明細書中に記載されているが、当業者は、実施形態が、記載された実施形態または図面に限定されないことを認識するであろう。それらについての図面及び詳細な説明は、実施形態を特定の開示される形式に限定することを意図しておらず、逆に、その意図は、添付の特許請求の範囲によって定義される趣旨及び範囲内にある全ての修正物、均等物、及び代替物をカバーすることが理解されるべきである。本明細書で使用される見出しは、構成のみを目的としており、説明及び請求項の範囲を限定するために使用されることを意味しない。本出願の全体を通じて使用されるように、用語「する場合がある(may)」は、必須という意味ではなく(すなわち、必要であることを意味する)、許容的な意味(すなわち、~する見込みを有することを意味する)において使用される。同様に、用語「含む(include)」、「含む(including)」、及び「(含む)includes」は、限定しないが、含むことを意味する。
【0006】
本明細書で説明されるシステム及び方法は、合成センササービスを実装するための技術、及び車両内で合成センサを実行するための車載分散コンピューティング環境を実装するための技術を含む。例えば、自動車メーカー、自動車部品メーカー、または別の第三者は、新しいタイプの合成センサを使用する新しいアプリケーションを開発する場合があり、それらのような新しいタイプのアプリケーション及び/または合成センサを消費者に既に販売されている車両に展開する場合がある。合成センサの展開は、合成センササービスと車両との間のネットワーク接続を介してリモートで達成され得、車両の車載コンピューティングデバイス(例えば、電子制御ユニット(ECU))のセットは、複数の完全または限定的な合成センサオーケストレーション環境を含み得る車載分散コンピューティング環境を実装し、これら合成センサオーケストレーション環境は、必要な入力データが車両内の既存の物理センサ、ECU、または他の合成センサから新しい合成センサ(またはそのモジュラコンポーネント)に流れることを可能にするコンフィグレーション操作をさらに実行する。また合成センサオーケストレーション環境は、合成センサからの出力データが合成センサの出力先に流れることを可能にするコンフィグレーション操作を実行することができる。合成センサは、車両の所与のECUの単一の合成センサオーケストレーション環境に配置されるモノリシック合成センサとして車載分散コンピューティング環境に配置されてもよく、または合成センサは、モジュラで配置されてもよく、合成センサは、車載分散コンピューティングサービスのランタイム環境で実行するモジュラコンポーネントに分割される。合成センサのモジュラコンポーネントは、車載分散コンピューティング環境を介してすべて接続されている様々なECUの様々な合成センサオーケストレーション環境に配置されてもよい。状況によっては、ランタイム環境を介して接続されたモジュラ合成センサコンポーネントによって合成センサを複数のECUに配置することを可能にすると、合成センサが単一ECUに配置された場合よりも適切な配置が提供される可能性がある。例えば、合成センサは、いかなる単一ECUにも利用できないが、異なるそれぞれのECUには部分的に利用できる処理能力及び入力要件を必要とする場合がある。したがって、モジュラ展開により、その要件を満たすECUに合成センサを配置することが可能になってもよい。
【0007】
さらに、いくつかの実施形態では、合成センササービスを使用して、車両の運転者による使用に既に利用可能になっている車両に合成センサを展開することに加えて、またはその代わりに、自動車メーカーなどのクライアントは、合成センササービスを使用して、車両の製造プロセス中に合成センサを車両に展開することができる。例えば、車両の製造プロセスの一部の間、オンボードコンピューティングシステムが設置されて車両の通信バスに接続された後、車両の電子システムの品質保証テストを実行するために、及び/または車両の製造及びテストで使用する合成センサからの出力データを提供するために、合成センサが合成センサオーケストレーション環境に展開されてもよい。
【0008】
いくつかの実施形態では、システムは、車両に設置された、または設置されるように構成された複数の電子制御ユニット(ECU)を含む。1つ以上のECUには、車載分散コンピューティング環境を実装するためのプログラム命令が格納される。プログラム命令は、1つ以上のECU上で実行されるとき、少なくとも1つのECUのプロセッサに、車両に展開するための合成センサパッケージを受信させ、合成センサパッケージは、合成センサ用のロジック及び合成センサ用のマッピングを含む。プログラム命令はさらに、少なくとも1つのECUのプロセッサに、合成センサパッケージに含まれるロジックを実行するために、ECUのそれぞれのECUに合成センサパッケージのマッピング用のデータ入力のそれぞれの可用性に基づいて、またそれぞれのECUのそれぞれのリソース容量に基づいて、合成センサの配置位置を決定させる。さらに、プログラム命令は、少なくとも1つのECUのプロセッサに、それぞれのECUの2つ以上の異なるECU上に配置された2つ以上のモジュラコンポーネントとして合成センサを配置させ、2つ以上のモジュラコンポーネントは、車載分散コンピューティング環境内で合成センサを集合的に実装する。
【0009】
例えば、2つ以上のモジュラコンポーネントは、車両の第一ECUに配置されるロジックモジュールと、車両の第二ECUに配置される入力モジュールとを含んでもよく、ロジックモジュールは、合成センサパッケージに含まれたロジックを実装し、入力モジュールは、合成センサに関連付けられたマッピングに従ってロジックモジュールにデータ入力を提供する。ロジックモジュール及び入力モジュールは、車載分散コンピューティング環境のランタイム環境で実行する。例えば、車載分散コンピューティング環境の通信層は、部分的な作業結果(入力モジュールから受信した入力データなど)をエンコードし得、それらの部分的な作業結果を、第二ECUに実装されるロジックモジュールなど、ランタイム環境で実行する他のコンポーネントに通信することができる。いくつかの実施形態では、入力モジュールが配置される第一ECUは、ロジックモジュールが配置される第二ECUでは利用できないデータ入力にアクセスできてもよい。同様に、第一ECUには、ロジックモジュールが配置される第二ECUで利用できる処理能力、容量、または優先順位が不足している可能性がある。したがって、合成センサをロジックモジュール及び入力モジュールに分割することによって、合成センサが必要なデータ入力にアクセスできるうえ、必要なコンピューティング能力、容量、または優先順位にアクセスできるように、複数のECUでの配置は実現されることができる。
【0010】
いくつかの実施形態では、入力モジュールは、完全または限定的な合成センサオーケストレーション環境を実装するECUに配置されてもよい。ただし、完全な合成センサオーケストレーション環境と限定的な合成センサオーケストレーション環境との両方は、プラットフォーム抽象化層、ハードウェア抽象化層、及び車両抽象化層を含む車両サービスを提示するECUに含まれる場合がある。したがって、完全または限定的な合成センサオーケストレーション環境の車両サービスは、特定の車両要件(例えば、特定の車両メーカーまたは車両モデルに専用のフォーマットまたはエンコード要件)を満たすために、特定のプラットフォーム要件(例えば、特定の車両ドメインまたはバスに専用のフォーマットまたはエンコード要件)を満たすために、または特定のハードウェア要件(例えば、ハードウェアドライバインタフェース要件など)を満たすために各合成センサをカスタムコードする必要なく、標準合成センサパッケージを使用して、合成センサ(モノリシックかモジュラかいずれかのコンポーネントを含む)をそのような完全または限定的な合成センサオーケストレーション環境に配置されることができるような、特定の専用コンフィグレーション詳細を考慮しなくてもよい。代わりに、完全または限定的な合成センサオーケストレーション環境の車両サービスコンポーネントは、これらの詳細をプラットフォーム抽象化層、ハードウェア抽象化層、及び車両抽象化層を介して処理する場合がある。さらに、異なるECUに実装された完全または限定的な合成センサオーケストレーション環境は、特定のECUのハードウェア容量もしくは能力制限などの制限境界、または各ECUがどのタイプの入力にアクセスできるかに関する入力制限などの制限境界が、合成センサのニーズを満たす各ECUにモジュラ方式で合成センサを展開することによって克服されることができるような、車載分散コンピューティング環境を介して相互に接続されてもよく、車載分散コンピューティング環境のランタイム環境により、モジュラで配置された合成センサのモジュール間にシームレスな作業フローが可能になる。
【0011】
さらに、いくつかの実施形態では、車載分散コンピューティング環境は、仮想ECUに接続されてもよく、仮想ECUは、車両の別のECUのように見えるが、実際には、サービスプロバイダネットワークのエッジロケーションまたはデータセンターなどのリモートハードウェアを使用して実装される。例えば、仮想ECUは、車両の仮想マシン(例えば、クラウドコンピュートリソース)として機能することができる。いくつかの実施形態では、車両のECUは、仮想ECUへのインタフェースを実装することができる。いくつかの実施形態では、仮想ドメイン制御ユニットは、車載分散コンピューティングネットワークに接続されてもよく、仮想ドメイン制御ユニット(DCU)は、プロバイダネットワークのエッジロケーションまたはデータセンターなどのリモートハードウェアを使用して追加の車両ドメインを実装する。いくつかの実施形態では、仮想ECU及び仮想DCUが、合成センサ、モジュラに配置された合成センサのロジックモジュール、またはその両方の配置に使用されるために利用できるクラウドコンピューティングリソースとして機能し得ることに留意されたい。
【0012】
いくつかの実施形態では、1つ以上の非一時的なコンピュータ可読記憶媒体はプログラム命令を格納し、これらプログラム命令は、1つ以上のコンピューティングデバイス上でまたはそれらにわたって実行されるとき、1つ以上のコンピューティングデバイスに、合成センサ用のロジック及び合成センサ用のマッピングを含む合成センサパッケージを受信させる。またプログラム命令は、車載分散コンピューティング環境内のそれぞれの配置位置で合成センサのマッピングのためのデータ入力のそれぞれの可用性、及び車載分散コンピューティング環境内のそれぞれの配置位置のそれぞれのリソース容量または能力に基づいて、1つ以上のコンピューティングデバイスに合成センサの配置位置を決定させる。さらに、プログラム命令は、1つ以上のコンピューティングデバイスに、車載分散コンピューティング環境内の配置位置の2つ以上の異なる配置位置に配置された2つ以上のモジュラコンポーネントとして合成センサを配置させ、2つ以上のモジュラコンポーネントは、車載分散コンピューティング環境内に合成センサを集合的に実装する。
【0013】
いくつかの実施形態では、方法は、車両の車載分散コンピューティング環境で合成センサパッケージを受信することを含み、合成センサパッケージは、合成センサ用のロジック及び合成センサ用のマッピングを含む。方法は、車載分散コンピューティング環境内のそれぞれの配置位置で合成センサのマッピングのためのデータ入力のそれぞれの可用性、及び車載分散コンピューティング環境のそれぞれの配置位置のそれぞれのリソース容量に基づいて合成センサの配置位置を決定することをさらに含む。さらに、方法は、車載分散コンピューティング環境内の配置位置の2つ以上の異なる配置位置に配置された2つ以上のモジュラコンポーネントとして合成センサを配置することを含み、2つ以上のモジュラコンポーネントは、車載分散コンピューティング環境内に合成センサを集合的に実装する。
【0014】
車両は多くの場合、電子センサと、電子センサからのセンサデータを制御アルゴリズムへの入力として取得する制御アルゴリズムを実行するコンピューティングデバイスとを搭載して製造される。ただし、車両で使用される電子センサの通信インタフェースは、車両メーカーによって異なることが多く、同じ車両メーカーが製造する異なるモデル間でさえ異なる。さらに、電子センサ及び関連する制御アルゴリズムは、車両の特定の目的を果たす別個のシステムとして実装されることが多いが、車両の他のシステムとセンサデータを共有するように構成されていない。例えば、車両のエンターテインメントシステムには、ボリュームコントロールなどの電子センサが実装されている場合があるが、センサデータを車両の他のシステムと共有するように構成されていない場合がある。場合によっては、これは、別個のシステムは別個に保持され、別個のハードウェア要件及び別個の制御アルゴリズム要件に基づいて別々に認定されるように、車両の別個のシステムが異なる認定要件を有するために行われる。
【0015】
また、車両は多くの場合、センサデータを共有するための固定アルゴリズム及びルールを用いて製造されるため、センサデータを共有するための固定アルゴリズムまたはルールを変更するには負担が大きい、及び/または時間がかかる。例えば、データを共有するためのアルゴリズム及びルールは、多くの場合、車両の設計段階中に決定され、車両の製造後に変更されることができない、またはセンサデータを共有するための固定アルゴリズムもしくはルールを変更するには、コンピューティングデバイスなどの部品を物理的に交換する必要がある場合もある。
【0016】
同様に、車両は多くの場合、個別のECUを搭載して製造されており、それぞれが独自のコンピューティング容量を有し、多くの場合、特定の目的に専用に設計されている。ECUは、例えばCANバスを介して、相互に通信することが可能になってもよい。ECUのコンピューティング容量及び能力は事実上サイロ化される。例えば、第一ECUで実行するアプリケーションが第一ECUで利用できるよりも多くの、またはより高速なコンピューティングを必要とする場合、アプリケーションは車両内の他のECUの予備のコンピューティング容量を利用できない。同様に、アプリケーションが所与のECU上で実行する必要がある場合、アプリケーションは所与のECUで利用可能なデータ入力に制限されてもよく、または第二ECUでは第一ECUで利用できるものと同じサンプリングレートでデータ入力にアクセスできなくてもよい。したがって、異なるECUで計算容量がサイロ化される可能性があるだけでなく、データ入力の可用性もサイロ化される可能性がある。ただし、合成センサを異なるECUに配置し、共有ランタイム環境での実行によって接続することを可能にする車載分散コンピューティング環境を実装することで、これらのサイロ境界を克服することができる。
【0017】
別の例として、合成センササービスは、合成センサオーケストレーション環境を実装するためのプログラム命令を格納する1つ以上のコンピューティングデバイスを車両に設置した後の車両の製造プロセス中に、1つ以上の合成センサパッケージを車両に提供することができる。1つ以上の合成センサは、製造プロセス中に車両をテストするために使用される出力を生成するように構成され得る。例えば、合成センサは車両の他のコンポーネントをテストして、コンポーネントが車両に適切にインストールされており、設定されていることを決定することができる。
【0018】
さらに、いくつかの実施形態では、合成センササービス及び/または車載分散コンピューティング環境は、様々なインタフェースを備えた車両に配置される合成センサに均一な展開メカニズムを提供することができる。例えば、様々なタイプの車両の合成センサオーケストレーション環境は、様々なタイプの車両の物理センサからのセンサデータのフローを許可または禁止するインタフェースを含む場合があるが、合成センササービスから展開された共通の合成センサパッケージを受信するように構成される場合がある。例えば、第一車両メーカーと第二車両メーカーは、異なる通信インタフェースを有する異なるタイプのシート重量センサを使用する場合がある。ただし、異なるタイプの車両のそれぞれでの合成センサオーケストレーション環境は、共通の合成センサパッケージを受信し、合成センサの配置と、既存のセンサからのデータが新しい合成センサに流れることを可能にするために行われる必要があるコンフィグレーション操作とをローカルで決定するように構成されてもよい。したがって、第三者開発者は、単一バージョンの合成センサを開発し、合成センササービスを使用して、様々なセンサ通信インタフェースを有する複数の異なるタイプの車両内の合成センサオーケストレーション環境に新しい合成センサを展開することができ、配置は、車両の車載分散コンピューティング環境のオーケストレーションコンポーネントによって、それぞれの合成センサオーケストレーション環境内でローカルに決定される。
【0019】
さらに、いくつかの実施形態では、合成センササービスから車両内の合成センサオーケストレーション環境に展開される合成センサパッケージは、新しい合成センサの制御ロジック及びマッピングをエンベロープする合成センサパッケージのエンベロープの外側にある1つ以上のアノテーションを含むことができる。これらのようなアノテーションは、新しい合成センサの配置を決定するために、車載分散コンピューティング環境のオーケストレーションコンポーネントによって使用される場合がある。さらに、オーケストレーションコンポーネントはアノテーションを使用して、特定のシステムドメイン内の新しい合成センサの配置が他の合成センサに与えるエフェクトをさらに決定することができる。例えば、新たに配置された合成センサは、別の合成センサのアノテーションに任意選択の入力としてリストされる出力を提供することができ、任意選択の入力の存在により、他の合成センサをより高い認定レベルまでアップグレードすることが可能になる、またはその他の方法でより信頼できる出力を提供することが可能になる。
【0020】
例えば、アノテーションは、新しい合成センサのコード自体(ロジック素子及びマッピングなど)の外部にあるメタデータとして合成センサパッケージに含まれることができる。したがって、車載分散コンピューティング環境のオーケストレーションコンポーネントは、配置決定を決定するためにエンベロープ内に含まれる新しい合成センサのコード(例えば、ロジック素子及びマッピング)をパースする必要なく、合成センサパッケージのメタデータに含まれるアノテーションを読み出し、新しい合成センサの配置決定を決定することができる。
【0021】
いくつかの実施形態では、合成センサは、既存のセンサからのセンサデータを使用して新しい合成センサ出力を決定するコードを含むことができる。また、いくつかの実施形態では、合成センサは、既存のセンサからのセンサデータを使用して新しい合成センサ出力を決定する1つ以上の機械学習モデルを含み得る。例えば、機械学習モデルは、合成センサのロジック素子であってもよく、物理センサ入力または他の入力は、機械学習モデルにマッピングされ、さらに、機械学習モデルの出力は、合成センサの出力を決定するために合成センサによって使用される。
【0022】
いくつかの実施形態では、OEMメーカー、OEM部品メーカー、及び/または第三者開発者は、新しいタイプの合成センサを使用する車両用の新しいアプリケーションを開発することができる。これらのような実施形態では、クライアントはアプリケーションストアから新しいアプリケーションを購入することができ、アプリケーションストアは、購入した新しいアプリケーションを実装するために、合成センササービスに1つ以上の合成センサパッケージをクライアントの車両に展開するように指令する提案を車両のOEMに提供することができる。いくつかの実施形態では、異なる車両内の合成センササービス及びそれぞれの合成センサオーケストレーション環境は、車両が製造された後、及び/または消費者が使用開始した後、更新されたコードで使用されるようにセンサデータを制御するための一貫した視点を提供することができる。例えば、合成センサオーケストレーション環境により、センサデータは車両内では、複数の個別の垂直方向の制御ドメインに限定されるのではなく、水平方向に共有されることが可能になってもよい。さらに、車載分散コンピューティング環境により、車両内では計算容量、能力、優先順位などは、複数の個別の垂直方向の制御ドメインに限定されるのではなく、水平方向に共有されることが可能になってもよい。
【0023】
例えば、OEMメーカー、OEM部品メーカー、または別の第三者は、合成センササービスのコンソールを使用して新しい合成センサを開発する場合がある。合成センサの開発者(例えば、OEMメーカー、OEM部品メーカー、または第三者)は、既存のセンサから利用可能なセンサデータタイプのリストから、合成センサの入力として使用するセンサデータを選択することができる。開発者は、選択された入力を受信するために、アルゴリズム(ルールなど)またはモデル(機械学習モデルなど)などのロジック素子を選択することもできる。開発者はさらに、入力、ロジック素子(例えば、ルール及び/またはモデル)から新しい合成センサの出力の間のマッピングを決定することができる。いくつかの実施形態では、マッピングは、JSONオブジェクトまたはXMLコードとして表されてもよく、新しい合成センサ用のパッケージが展開される車両内の合成センサオーケストレーション環境は、JSONオブジェクトまたはXMLコードをパースして、入力、ロジック素子(例えば、ルール及び/またはモデル)、及び出力の間の関係を決定する。次いで、合成センサオーケストレーション環境は、合成センサパッケージのコードロジックにマッピングされたロジック素子(例えば、ルール及び/またはモデル)を実装するために、1つ以上のコンフィグレーション操作を実行させることができる。合成センサオーケストレーション環境はさらに、合成センサパッケージのコードロジックに含まれるマッピングに従ってセンサデータが合成センサのコンポーネントに流れることを可能にするために、1つ以上の追加のコンフィグレーション操作を実行させることができる。いくつかの実施形態では、ロジック素子及びマッピングはエンベロープ環境に含まれてもよく、合成センサパッケージ(エンベロープの外側)のメタデータとして格納された1つ以上のアノテーションは、必要な入力、任意選択の入力、出力、認定レベル、合成センサの依存関係、故障モードなど、合成センサの特性を指示し得る。
【0024】
さらに、いくつかの実施形態では、OEMメーカー、OEM部品メーカー、または別の第三者は、合成センササービスのコンソールを使用して、所与の合成センサの処理容量、能力、または優先順位を定義することができる。例えば、合成センササービス顧客(例えば、OEMメーカー、OEM部品メーカー、または他の第三者)は、合成センサがグラフィックスプロセッシングユニット(GPU)、汎用グラフィックスプロセッシングユニット(GGPU)、特定のタイプの中央処理装置(CPU)へのアクセスを提供されること、少なくとも最小量の処理リソースが割り振られること、及び/または配置位置(例えば、ECU)で実行する他のアプリケーションと比較して配置位置リソースに対して指定された優先順位を有することを指定することができる。
【0025】
いくつかの実施形態では、OEMメーカー、OEM部品メーカー、または別の第三者は、コンソールを含むサービスインタフェース、または合成センサ設計コンソールとは別個のサービスインタフェースを使用して、合成センサを受信する資格のある特定の車両または車両クラスに1つ以上の合成センサを展開するように合成センササービスに指令することができる。例えば、OEMメーカー、OEM部品メーカー、または別の第三者は、新しいタイプの合成センサを使用して有効になる新しいタイプの特徴にアクセスできるために、アップグレードパッケージの購入を消費者に要求する場合がある。
【0026】
いくつかの実施形態では、合成センサは、OEMメーカーまたはOEM部品メーカーによって製造された車両に展開された合成センサが特定の品質及び/または認定要件を満たすことを保証するために、OEMメーカー及び/またはOEM部品メーカーによって開発されて、制御されてもよい。他の実施形態では、他の第三者は、OEMまたは複数の異なるOEMなど、別の当事者によって製造された車両に新しいタイプの合成センサを開発して展開することが可能になってもよい。
【0027】
いくつかの実施形態では、車両に含まれる様々なドメインまたはオペレーティングシステムは、インフォテインメントドメイン/OS、コックピットまたは制御ドメイン/OS、通信ドメイン/OS、セーフティシステムドメイン/OS、車両サーバドメイン/OS、テレマティクス通信ユニットドメイン/OS、先進運転支援システムドメイン/OS、クラウドドメイン/OS、エッジ処理ドメイン/OS(セルラー通信塔などに部分的に実装され得る)、及び/またはゲートウェイドメイン/OSを含み得る。車両には共通の通信バスが含まれる場合があるが、異なるドメインはバスから離れた別個のブランチであってもよく、またはバス上のデータフローはドメインのすべてにアクセスできなくてもよい。
【0028】
いくつかの実施形態では、合成センサオーケストレーション環境は、合成センサからの出力を、合成センサオーケストレーション環境の外部の別の車両システムに提供することができる。いくつかの実施形態では、他の車両システムは、合成センサから受信した出力に基づいて1つ以上の制御アクションを実行することができる。例えば、合成センサが、乗客が前部座席に座っているかどうかを決定する合成センサである場合、合成センサの出力は、前部座席調整機構コントローラなどの合成センサオーケストレーション環境の外側の車両システムに提供されてもよく、前部座席調整機構コントローラは、前部座席に誰も座っていない場合に、後部座席の乗客の足元の空間が広くなるように、前部座席を自動的に前方に移動させる。
【0029】
いくつかの実施形態では、合成センサオーケストレーション環境は、合成センサからの出力を車両の外部のリモートシステムに提供することができる。例えば、車両用のインフォテインメントシステムの一部は、クラウドベースのリソースを使用してリモートで実装されてもよく、合成センサの出力は車両の外部のクラウドプロバイダに提供されてもよい。一例として、「子供が車両内で座っている?」という出力は、合成センサによって、車両に提供されるメディアコンテンツをカスタマイズするリモートサーバに提供されてもよく、子供が車両内に座っているかどうかに基づいて、メディアコンテンツの異なるカスタマイズが実行されてもよい。
【0030】
図1は、いくつかの実施形態による、合成センササービスを示し、合成センササービスは、合成センササービスのクライアントから合成センサを展開するための命令を受信し、車載合成センサオーケストレーション環境を各含む車両にそれぞれ合成センサをリモートで展開させる。
【0031】
いくつかの実施形態では、合成センササービス102など、車両用の合成センササービスは、ネットワーク140などのネットワークを介して、クライアント120a~120nなどのクライアントから新しい合成センサを定義するための命令を受信するように構成される。いくつかの実施形態では、クライアント120a~120nは、車両オリジナルエクイップメントマニュファクチュアラ(例えば、車両OEM)、車両部品オリジナルエクイップメントマニュファクチュアラ(例えば、部品OEM)、またはアプリケーション開発者などの第三者を含み得る。
【0032】
いくつかの実施形態では、合成センササービス102は、クライアント120a~120nのいずれか1つから受信した命令に基づいて合成センサパッケージ146を生成し、ネットワーク122を介して、車両124、148、150などの1つ以上の車両の合成センサオーケストレーション環境140に合成センサパッケージを展開することができる。例えば、ネットワーク122は、合成センササービス102と合成センサオーケストレーション環境140を実装する車載コンピューティングシステム152との間のデータ通信を可能にするセルラー、衛星または他のネットワークなどの無線ネットワークであってもよい。
【0033】
いくつかの実施形態では、合成センササービス102などの合成センササービスは、コードロジックデポジトリ104、物理センサリスト106、サービスインタフェース108、マッピング及びアノテーション生成器110、アプリケーションインタフェース112、ならびに車両通信インタフェース114を含むことができる。
【0034】
いくつかの実施形態では、サービスインタフェース108など、合成センササービスのサービスインタフェースは、図6に示されるようなサービスコンソール、クライアント120a~120nから合成センサ命令を受信するように構成されたアプリケーションプログラマティックインタフェース、コマンドラインインタフェース、グラフィカルユーザインタフェース、または合成センサオーケストレーション環境を含む車両に展開される新しい合成センサをクライアントが選択する及び/または設計することを可能にする他の適切なインタフェースを実装することができる。いくつかの実施形態では、車両124などの車両が製造時に合成センサオーケストレーション環境140を含むように製造されることができることに留意されたい。そこでは合成センサオーケストレーション環境140により、製造後、及び車両124の所有者または運転者によって使用された後、新しい合成センサを車両124に展開することが可能になる。
【0035】
いくつかの実施形態では、サービスインタフェース108によって実装されるコンソールは、新しい合成センサを設計するために使用され得る車両に含まれる利用可能なセンサをクライアント120に提供し得る。例えば、物理センサリスト106は、合成センササービス102に加入する様々なタイプの車両に含まれる利用可能なセンサの更新されたリストを格納することができる。また、サービスインタフェース108によって実装されるコンソールは、合成センサを設計するために使用されることができる利用可能なルール、モデルなどをクライアントに提供することができる。例えば、コードロジックデポジトリ104は、新しい合成センサのコードロジックを定義するために使用されることができる利用可能なルール、モデルなどのロジック素子を格納することができる。さらに、いくつかの実施形態では、クライアントは、新しい合成センサで使用されるクライアントが生成したルール、モデルなどをサブミットすることができる。いくつかの実施形態では、サービスインタフェース108は、「ドラッグアンドドロップ」グラフィカルユーザインタフェース(GUI)を提供することができ、クライアントは、新しい合成センサで使用されるルールモデルなどのロジック素子をドラッグアンドドロップし、入力をロジック素子に接続し、さらにロジック素子を合成センサの1つ以上の出力に接続するラインを引くことによって、新しい合成センサを通るデータフローをさらに定義する。いくつかの実施形態では、クライアントは、ドラッグアンドドロップして新しい合成センサを定義するために予め定義されたロジック素子から選択してもよく、またはクライアントは、ドラッグアンドドロップし、さらに他のコード素子、入力、出力などと接続して新しい合成センサを定義するためにクライアントが定義したロジック素子を提供してもよい。
【0036】
いくつかの実施形態では、その後、マッピング及びアノテーション生成器110は、サービスインタフェース108を介してクライアントによって定義された合成センサパッケージを生成することができる。いくつかの実施形態では、クライアントは、合成センサパッケージに含まれるアノテーションを指定してもよく、またはマッピング及びアノテーション生成器110は、サービスインタフェース108を介して受信した合成センサ定義に基づいてアノテーションを自動的に決定してもよい。
【0037】
いくつかの実施形態では、アプリケーションは、アプリケーションを車両に実装することを可能にするために展開される合成センサを要求することができ、アプリケーションインタフェース112はそのような要求を受信することができる。
【0038】
いくつかの実施形態では、車両通信インタフェース114は、車載コンピューティングデバイス(複数可)152とのネットワーク接続を確立してもよく、展開のために合成センサパッケージ146を合成センサオーケストレーション環境140に伝送してもよい。
【0039】
いくつかの実施形態では、車両124、148、150などのいずれかのような車両は、オペレーティングシステムドメイン136~138などの1つまたは複数のオペレーティングシステムドメインを実装する1つまたは複数の車載コンピューティングデバイス152を含み得る。さらに、車載コンピューティングデバイス152は、オペレーティングシステムドメイン136及び138など、1つまたは複数のオペレーティングシステムドメインにまたがる車載分散コンピューティング環境140を実装することができる。いくつかの実施形態では、各オペレーティングシステムドメインは、別個の車載コンピューティングデバイス(例えば、ECU)上に実装されてもよく、または共通の車載コンピューティングデバイス上に実装されてもよい。また、いくつかの実施形態では、車載分散コンピューティング環境140は、オペレーティングシステムドメインのうちの1つまたは複数と同じ車載コンピューティングデバイス上に実装されてもよく、またはそれぞれのオペレーティングシステムドメイン136~138を実装する他の車載コンピューティングデバイスとインタフェースする別個の車載コンピューティングデバイス上に実装されてもよい。また、いくつかの実施形態では、車両は、車載コンピューティングデバイス152を物理センサ126、128、及び130などの物理センサに接続する通信バス132を含んでもよい。いくつかの実施形態では、1つまたは複数の異なるタイプのインタフェース134は物理センサを通信バス132に接続することができる。また、いくつかの実施形態では、合成センサ車載分散コンピューティング環境140は、合成センサ142及び144などの1つまたは複数の合成センサを実装することができる。いくつかの実施形態では、合成センサは、特定のオペレーティングシステムドメインで実装されてもよく、または通信バス132などの通信バスを介して車両の他の部分と通信することが可能になってもよい。さらに、合成センサ142、144などは、オペレーティングシステムドメイン136~138のうちの異なるオペレーティングシステム内の異なるECU上に配置された1つまたは複数の入力モジュール及び1つまたは複数のロジックモジュールを含むなど、モジュラに配置された合成センサとして車載分散コンピューティング環境140に実装され得る。
【0040】
図2は、いくつかの実施形態による、合成センササービスから車載分散コンピューティング環境に展開され得る合成センサパッケージのより詳細な図を示し、合成センサパッケージは、合成センサパッケージのエンベロープ内にコードロジック及びマッピングを含み、そのうえエンベロープの外側の合成センサに対するアノテーションも含む。
【0041】
いくつかの実施形態では、図1に示される合成センサパッケージ146などの合成センサパッケージは、合成センサパッケージ202について図2に説明されたものと同様のフォーマットを含むことができる。
【0042】
合成センサパッケージ202は、ロジック及びマッピング206を定義するコードをエンベロープするエンベロープ204を含む。また、エンベロープ204の外側に、合成センサパッケージ202はアノテーション208を含む。いくつかの実施形態では、アノテーションは、合成センサの要求入力、合成センサの任意選択の入力、合成センサの処理要件、ECUリソースに関する合成センサの優先順位要件、合成センサの認定レベル(複数可)、合成センサの故障緊急時対応計画、合成センサの依存関係チェーンなどを含むことができる。いくつかの実施形態では、故障緊急時対応計画は、特定の要求入力または任意選択の入力が利用できない場合に、合成センサによって使用される代替入力を指示し得る。別の例として、故障緊急時対応計画は、合成センサのモジュラコンポーネントを、モジュラコンポーネントが最初に配置されていたECUで故障に応じて、複製/再生成し、バックアップECUに配置することを指示する場合がある。また、認定レベル及び/または故障緊急時対応計画は、利用可能な要求及び/または任意選択の入力の数に基づいて、合成センサに起因する異なる認定レベルを指示する場合がある。また、合成センサの認定レベルは、合成センサが実装されているドメインに依存する場合がある。例えば、セーフティドメインで使用されるハードウェアは、エンターテインメントドメインで使用されるハードウェアよりもロバストである可能性がある。したがって、より高レベルの認定を達成するには、所与の認定レベルの要件を満たす、よりロバストなハードウェアを含むドメインに合成センサを実装する必要がある場合がある。
【0043】
いくつかの実施形態では、ルールA、B、C及びDならびにモデルA及びBなどのロジック素子は、図1に説明されるように、コードロジックデポジトリ104から選択され得る。また、いくつかの実施形態では、ルールA、B、C、もしくはDまたはモデルAもしくはBのうちの1つ以上がクライアント120によって提供されてもよい。マッピング204は、要求及び任意選択の入力、出力、ならびにルールA、B、C及びD、及びモデルA及びBの間のデータフローを定義することができる。いくつかの実施形態では、クライアントは、合成センサタイプを定義するために、サービスインタフェース108を使用してマッピング204のラインを引くことができる。
【0044】
いくつかの実施形態では、アノテーション208は、合成センサ出力が別のタイプの合成センサへの入力であることをさらに示してもよく、及び/または別のタイプの合成センサからの出力が所与の合成センサへの要求または任意選択の入力であることを示してもよい。いくつかの実施形態では、アノテーションは、合成センサが展開される特定のオペレーティングシステムドメインを示し得る。例えば、特定の認定レベルを達成するには、特定の認定レベルの要件を満たすハードウェアまたはプロセスを備えたオペレーティングシステムドメインに合成センサを展開する必要がある場合がある。さらに、アノテーションは、モジュラに配置された合成センサのロジックモジュールが特定の認定レベルを達成するのに専用のオペレーティングシステムドメインに配置され、合成センサに必要な入力を有する別の専用のオペレーティングシステムドメインに入力モジュールが配置されることを示す場合がある。さらに別の例として、アノテーションは、配置されている合成センサにモジュラ展開が可能であるというインジケーションを含んでもよく、モジュラ展開が可能でない場合、オーケストレーション環境はモノリシック展開を選択する。また、他の実施形態では、モジュラ展開がデフォルトで可能になってもよく、合成センサパッケージのアノテーションは、モノリシック展開が要求されていることを示してもよい。また、図8でさらに説明されるように、いくつかの実施形態では、合成センサパッケージを要求/設計する顧客(例えば、OEM、第三者部品サプライヤなど)は、展開戦略(例えば、モノリシック対モジュラ)を指定することができる。また、顧客はモジュラに配置された合成センサのロジックモジュールの配置要件を指定することもできる。これらのような実施形態では、ロジックモジュールの要件をアノテーションに指示することができる。同様に、顧客は、入力モジュールの配置を制限する可能性のある入力冗長性を指定することができ、それらのような要件もアノテーションに指示することができる。
【0045】
またアノテーション208などのアノテーションは、1つまたは複数の任意選択の入力が利用可能であるときに、所与の合成センサをより高い認定レベルにアップグレードすることができることを示し得る。いくつかの実施形態では、合成センサオーケストレーションサービスは、新しい合成センサが追加されるときに、既に実装されている合成センサのアノテーションをスキャンして、その新しい合成センサが、既に実装されている合成センサの1つまたは複数に対する任意選択の入力であるかどうかを決定することができる。また、合成センサオーケストレーション環境は、新たに追加された合成センサの出力を1つ以上の既に実装された合成センサへの入力として利用することによって、合成センサのうちの所与のものをより高い認定レベルにアップグレードすることができるように、1つ以上の合成センサの配置を自動的に変更する(例えば、合成センサを再シャッフルする)ことができる。いくつかの実施形態では、所与の合成センサの認定レベルのアップグレードにより、より高い認定レベルに準拠する入力(アップグレードされた合成センサからの出力)を受信することによって、他の合成センサをアップグレードすることがさらに可能になってもよい。
【0046】
図3は、いくつかの実施形態による、車載分散コンピューティング環境フレームワークのコンポーネントを示すブロック図である。
【0047】
いくつかの実施形態では、図1に示される車載分散コンピューティング環境140などの車載分散コンピューティング環境は、合成センサ及び合成センサのモジュールの配置を決定するオーケストレーションコンポーネント302、合成センサのモジュールが実行するランタイムコンポーネント304、ECUなどの車載分散コンピューティング環境のコンピューティングデバイスからステータス及び能力情報を収集するためのインタフェースを提供する監視コンポーネント306を含んでもよい。さらに、車載分散コンピューティング環境140は、車載分散コンピューティング環境140のコンポーネント間で通信を送信するためのプロトコル及びエンコードを提供する通信層308を含む。また、車載分散コンピューティング環境140は、作業310を含み、この作業は、ランタイムコンポーネント304によって提供されるランタイム環境で実行する、モジュラに配置された合成センサの異なるモジュラコンポーネントによって実行されるジョブのタスクであり得る。
【0048】
いくつかの実施形態では、ランタイムコンポーネント302は、実行環境の切り替え、作業310の実行の促進、モジュラコンポーネント間での部分結果の伝送、着信する部分結果の集約などの機能を担う。
【0049】
いくつかの実施形態では、監視コンポーネント306は、ECUの容量、能力、優先順位などをオーケストレーションコンポーネント302に報告する機能を担う。
【0050】
いくつかの実施形態では、通信層308は、通信プロトコルがECUを仮想オーケストレーションコンポーネント302に接続することを可能にし、作業310(部分結果を含む)が合成センサのモジュラコンポーネント間で通信されることを可能にする。
【0051】
オーケストレーションコンポーネント302は、車載分散コンピューティング環境のECUのうちの1つに実装されるが、それがどのECU上に配置されるかについては問わない。例えば、オーケストレーションコンポーネント302は、オーケストレーションコンポーネント302をホストする同じECU、または車載分散コンピューティング環境の別のECU上に着信する合成センサを配置することができる。さらに、オーケストレーションコンポーネントは、合成センサパッケージに対して示されたアノテーションに基づいて、そして監視コンポーネント306によって提供されたステータス情報に基づいて、合成センサを配置することができる。オーケストレーションコンポーネント302は、車載分散コンピューティング環境140のECUのステートのグローバルビューを保持し、このグローバルビュー及び作業のそれぞれの要件に基づいて、それぞれのECUに作業を割り当てることができる。
【0052】
いくつかの実施形態では、作業310は、車載分散コンピューティング環境140に接続された所与のECUで実行される必要があるステートレスアルゴリズムである。
【0053】
いくつかの実施形態では、車載分散コンピューティング環境140は、ECUがフレームワークに参加する場合のインタフェースを定義し、監視コンポーネント306を介してヘルスデータ(例えば、容量情報、能力情報、ステータス情報など)を送信するための合意をECUから取得するフレームワークを提供する。いくつかの実施形態では、通信層308は、車両のCANバス、Flex-Rayバス、またはイーサネットバスなどの車両の他の適切なバス上にあり得る。いくつかの実施形態では、バスは、診断インデックスを維持し得るため、監視コンポーネント306は、必ずしもオーケストレーションコンポーネント302に診断情報を報告する必要はないが、代わりに、オーケストレーションコンポーネント302が、バスなどの別のエンティティによって維持され得るような、診断インデックスにアクセスできることを確保する。
【0054】
図4Aは、いくつかの実施形態による、完全な合成センサを構成し得るモジュラコンポーネントを示すブロック図である。
【0055】
本明細書で論じられるように、合成センサは、合成センサ402について示されるように、完全な合成センサとしてモノリシックに配置されてもよく、または入力モジュール404及びロジックモジュール406などの複数のモジュラコンポーネントとして配置されてもよい。
【0056】
図4Bは、いくつかの実施形態による、限定的な合成センサオーケストレーション環境を実装し、車載分散コンピューティング環境に接続される例示的な電子制御ユニット(ECU)のコンピューティングスタックを示すブロック図である。
【0057】
限定的な合成センサオーケストレーション環境410の一例として、ECU408は車両サービス414を含んでもよく、この車両サービスは、プラットフォーム抽象化層422、ハードウェア抽象化層420、及び車両抽象化層418、ならびにインタフェース層416を提供する。車両サービス414は、ECU408のオペレーティングシステム424及びデータドライバ426の詳細が、車載分散コンピューティング環境412とインタフェースするインタフェース層416において考慮されないような、抽象化層を提供することができる。例えば、インタフェース層416を介して車載分散コンピューティング環境412に受け渡され、ロジックモジュール428に向けられる作業430は、車載分散コンピューティング環境412の通信層308の通信プロトコルに従ってよい。このようにして、作業を受信する別のECUは、オペレーティングシステム424またはデータドライバ426によって使用されるエンコードプロトコルなどに関するいかなる専門的な情報も必要とせずに、作業をインタプリタすることができる。例えば、合成センサ/合成センサモジュールは、車両サービス414によって提供される、任意の合成センサにアクセス可能なアプリケーションプログラマティックインタフェース(API)を介して、生のセンサデータにアクセスすることができる(例えば、合成センサはAPIと通信するのに専用にコード化される必要がない)。
【0058】
一例として、GPSデータにアクセスしたい合成センサは、単にGPSデータのAPIを呼び出すように書き込まれてもよく、合成センサは、車両または車両オペレーティングシステム間で変動する可能性がある基礎的な詳細に関係なく作業する方法でコード化されることができる。車両サービス414により、合成センサコードは、様々な車両プラットフォーム、メーカー、モデルなどにわたってポータブルである。
【0059】
図4Cは、いくつかの実施形態による、完全な合成センサオーケストレーション環境を実装し、車載分散コンピューティング環境に接続される例示的な電子制御ユニット(ECU)のコンピューティングスタックを示すブロック図である。
【0060】
完全な合成センサオーケストレーション環境452は、図4Bで説明される車両サービス414と同じまたは類似の抽象化層を含むことができる車両サービス464を含み、抽象化層は、ECU450のオペレーティングシステム466及びデータドライバ468に関する詳細を考慮しない。しかしながら、完全な合成センサオーケストレーション環境452は、車載分散コンピューティング環境462への接続を有する、合成センササービス456も含む。なお、車載通信環境462、車載通信環境414は、図1に示される車載通信環境140と同じであってもよい。例えば、作業430は、車載分散コンピューティング環境412、464を介してECU408から合成センササービス456に送信されてもよい(またその逆も同様)。さらに、他の入力モジュール472からの作業は、車載分散コンピューティング環境462を介してECU450に送信されてもよく、発信作業は、ECU450から車載分散コンピューティング環境462を介して他のECUのロジックモジュール470に送信されてもよい。
【0061】
いくつかの実施形態では、合成センササービス456は、ECU450に配置された合成センサのロジック作業コンポーネント、または他のECUに配置された入力モジュールからのロジック作業コンポーネントを実行する合成センサロジック層460をさらに含むことができ、ロジック作業は、他のECUの入力モジュールからのデータを使用してECU450で実行され、他のECUの入力モジュールは、車載分散コンピューティング環境462のランタイム環境で実行する。さらに、通信層458は、合成センサロジック層460内の合成センサの所与のロジックコンポーネントとインタラクトするアプリケーションにインタフェースを提供することができる。
【0062】
図5Aは、いくつかの実施形態による、車載分散コンピューティング環境を介して接続される電子制御ユニット(ECU)を示すブロック図であり、車載分散コンピューティング環境のオーケストレーションコンポーネントは、車載分散コンピューティング環境に展開される合成センサの配置位置を決定する。
【0063】
いくつかの実施形態では、合成センサパッケージ146A及び146Bは、関連する合成センサの配置決定を決定する、オーケストレーションコンポーネント524を介して車載分散コンピューティング環境152に受信される。例えば、合成センサ「A」518は、ECU502の合成センサオーケストレーション環境518にモノリシックに配置される。対照的に、合成センサ「C」は、ECU506の合成センサオーケストレーション環境514に配置されるロジックモジュール520、及びECU508の限定的な合成センサオーケストレーション環境516に配置される入力モジュール522として、モジュラに配置され得る。いくつかの実施形態では、オーケストレーションコンポーネント524は、合成センサパッケージ146A及び/または146Bに関連付けられたアノテーション、それぞれの配置位置(例えば、ECU502、504、508など)での入力の可用性、CPUリソース、汎用GPUリソース(GGPU)、ハードウェア、例えば、運転支援システム/自動運転ハードウェア、コックピットハードウェアなどの配置位置(例えば、ECU502、504、508など)で利用可能なリソース、ネットワーク接続性、バス可用性などに基づいて配置を決定する。例えば、ADAS/AD ECU502は、ゲートウェイECU508よりも多くの計算容量を有し得るが、ゲートウェイECU508は、センサ1~Nなどのセンサへのより多くのアクセスを有し得る。例えば、いくつかの実施形態では、センサ1~Nは、カメラ、タイヤ空気圧センサ、バックアップセンサ、シートベルトセンサ、ウインドシールドワイパセンサなどを含むことができる。また、ゲートウェイECU508で利用可能な他の入力は、衛星通信インタフェース、V2X、LTE/5G、Wi-Fiなどを含むことができる。
【0064】
また、図14にさらに論じられるように、車載分散コンピューティング環境512内の配置は、状況(既存の負荷、リソースの可用性など)の動的な再評価に応答して再シャッフルされ得る。さらに、管理者は配置に関する制約を指示することができ、再シャッフルにより管理者が指示した制約を満たすように配置を移動することができる。
【0065】
図5Bは、いくつかの実施形態による、車載分散コンピューティング環境内の第一配置位置にモノリシック合成センサとして配置された第一合成センサと、車載分散コンピューティング環境内の2つの異なる配置位置にある2つのモジュラコンポーネントとして配置された第二合成センサとを示すブロック図である。
【0066】
モジュラ展開の一例として、合成センサ「C」が配置されると、入力モジュール522及びロジックモジュール520はランタイム環境526で実行し、作業528を共有することができる。
【0067】
図5Cは、いくつかの実施形態による、2つのロジックモジュール及び1つの入力モジュールを使用して配置された合成センサを示すブロック図であり、2つのロジックモジュール及び1つの入力モジュールは、車載分散コンピューティング環境のランタイム環境で実行する。
【0068】
いくつかの実施形態では、合成センサのロジック部分は、複数のロジックモジュールにわたって分散され得る。例えば、図5Cでは、合成センサ「Y」のロジックモジュール530はECU502内に配置され、合成センサ「Y」のロジックモジュール532はECU506内に配置され、合成センサ「Y」の入力モジュール534はECU508内に配置される。
【0069】
ロジックモジュールが大量のデータを処理している、いくつかの実施形態では、同じロジックの複数のインスタンスは、複数のロジックモジュール上に実装され得、それぞれのロジックモジュールのそれぞれはデータの一部を処理する。次に、一例として、処理の結果は、さらに別のロジックモジュールによって集約されてもよい。また、別の例として、第一ロジックモジュールは、一次ロジックモジュールとして機能し得、同じく第一ロジックモジュールとともにランタイム環境で実行する二次ロジックモジュールにタスクを委譲することができる。
【0070】
図5Dは、いくつかの実施形態による、2つの入力モジュール及び1つのロジックモジュールを使用して配置された合成センサを示すブロック図であり、2つの入力モジュール及び1つのロジックモジュールは、車載分散コンピューティング環境のランタイム環境で実行する。
【0071】
さらに別の例として、いくつかの実施形態では、合成センサは、複数の入力モジュールをモジュラに配置され得る。例えば、合成センサ「M」は、入力モジュール540がECU502に配置されており、入力モジュール544がECU508に配置されており、ロジックモジュール542がECU506に配置されている状態で配置される。
【0072】
図5Eは、いくつかの実施形態による、車載分散コンピューティング環境の監視コンポーネントを示すブロック図であり、監視コンポーネントは、車載分散コンピューティング環境のオーケストレーションコンポーネントにECU能力及び現在のステートを報告する。
【0073】
図5Eに示されるように、車載分散コンピューティング環境512の監視コンポーネント550は、ヘルス情報を収集し、オーケストレーションコンポーネント524に提供することができる。
【0074】
図6は、いくつかの実施形態による、車載合成センサオーケストレーション環境を各実装する、様々なタイプの車両に共通合成センサパッケージを展開するように構成される合成センササービスを示す。
【0075】
いくつかの実施形態では、合成センサオーケストレーション環境への入力インタフェースは、合成センサオーケストレーション環境が、合成センササービスから共通の合成センサパッケージを受信することができると同時に、異なるタイプの車両に含まれる電子センサの異なる通信インタフェースともインタフェースすることができるように、標準化されてもよい。例えば、合成センササービス102は、共通の合成センサパッケージ608を、自動車602、トラック604、及びバン606などの複数の異なるタイプの車両のそれぞれに展開することができ、これらの車両は、異なる車両メーカーによって製造され得、異なる部品メーカーによって製造された電気センサを含み得る。
【0076】
図7は、いくつかの実施形態による、合成センササービスだけでなく、プロバイダネットワークによって提示された他のクラウドサービスを含む例示的なプロバイダネットワークを示す。
【0077】
いくつかの実施形態では、プロバイダネットワーク702などのプロバイダネットワークは、クラウドサービス710を実装するネットワーキングデバイス704、コンピューティングデバイス706、及びデータストレージデバイス708を含む。いくつかの実施形態では、プロバイダネットワークは、合成センササービスに加えて、複数のクラウドサービスを実装することができる。例えば、プロバイダネットワーク702は、IoTソフトウェアアップデートサービス712、コンピュートサービス714、データストレージサービス716、機械学習サービス718、ワークフローサービス720、及び他のサービス722を含むクラウドサービス710を実装する。クラウドサービス710には、合成センササービス102も含まれる。
【0078】
いくつかの実施形態では、IoTソフトウェアアップデートサービス712などのIoTソフトウェアアップデートサービスは、図1に示される車両124、148、及び150、または図6に示される車両602、604、及び606など、IoTソフトウェアアップデートサービスに接続されたデバイス上のソフトウェア更新を容易にすることができる。いくつかの実施形態では、IoTソフトウェアアップデートサービスは、接続されたデバイス上のファームウェアをさらに更新することができ、更新を実行するために暗号化された通信を利用することができる。いくつかの実施形態では、IoTソフトウェアアップデートサービスは、未承認のエンティティが車両など、接続されたデバイス上のソフトウェアを変更することを防止するためのアイデンティティ認証プロトコルを含むこともでき、ソフトウェア更新への変更を防止するために接続されたデバイスへの通信を暗号化することもできる。
【0079】
いくつかの実施形態では、コンピュートサービス714などのコンピュートサービスは、仮想コンピュートマシンを実装するコンピューティングデバイスを含み得、これら仮想コンピュートマシンを使用して、収集された車両使用情報を分析してもよく、及び/またはこれら仮想コンピュートマシンを使用して、合成センササービスを実装してもよい。
【0080】
いくつかの実施形態では、データストレージサービス716などのデータストレージサービスは、オブジェクトベースのストレージ用の仮想データストレージボリュームまたは仮想ストレージコンテナなど、仮想化されたデータストレージを実装するデータストレージデバイスを含むことができる。いくつかの実施形態では、データストレージサービス716などのデータストレージサービスを使用して、クライアントの収集された車両使用情報を格納することができる。また、いくつかの実施形態では、データストレージサービス716などのデータストレージサービスを使用して、合成センササービスのコンポーネントを実装することができる。例えば、いくつかの実施形態では、コードロジックデポジトリ104及び物理合成センサリスト106は、データストレージサービス716の仮想ストレージリソースを使用して実装され得る。
【0081】
いくつかの実施形態では、機械学習サービスは、合成センサで使用される関係を決定するための、ワークフローサービスを最適化するための、または別のサービスを最適化するための、1つまたは複数の機械学習アルゴリズムを実行することができる。例えば、いくつかの実施形態では、機械学習サービス718などの機械学習サービスは、合成センサ用のソフトウェアを最適化するために使用されることができ、合成センサオーケストレーション環境140などの合成センサオーケストレーション環境から収集された車両使用情報を利用して、そのような機械学習を実行してもよく、または機械学習推論出力を生成してもよい。
【0082】
いくつかの実施形態では、ワークフローサービス720などのワークフローサービスは、入力データ及び格納または開発されたワークフローに基づいてワークフローを実行することができる。例えば、いくつかの実施形態では、ワークフローサービス720などのワークフローサービスは、収集された車両使用情報に基づいて取るべきアクションを決定することができる。一例として、ワークフローサービスは、収集された車両使用情報を1つ以上の格納または開発されたワークフローに適用することに基づいて、フィルタ、ホース、または流体の変更または交換の必要性を決定する場合がある。いくつかの実施形態では、機械学習サービス718などの機械学習サービスを使用して、ワークフローサービス720によって実行されるワークフローを開発してもよく、または改善してもよい。
【0083】
いくつかの実施形態では、クラウドサービス710は、他のサービス722などの様々な他のクラウドサービスを含み得る。
【0084】
図8は、いくつかの実施形態による、合成センササービスのクライアントコンソールの一例を示す。
【0085】
図8では、特定のオペレーティングシステムのプラットフォーム及びトリムレベルを有する2009、2010、または2011年モデルの「OEM A」車両内の既存の物理センサを示す「センサアクセス」タブが選択されている。また、図8に示されるように、一部のセンサからの一部のセンサデータは、第一者アプリケーション(例えば、OEMメーカーアプリケーション)に利用可能であってもよく、他のセンサからのセンサデータは、第二者アプリケーション(例えば、OEM部品メーカーアプリケーション)に利用可能であってもよく、別のセンサセットからのセンサデータは、自動車オープンシステムアーキテクチャ(例えば、Auto SAR)では、第一者OEMまたは第二者OEM部品メーカーではないアプリケーション開発者などの第三者に利用可能であってもよい。例えば、第三者アプリケーションは、OEMの開発者のエコシステムからのものであってもよく、または既存のアプリケーションストアの開発者のエコシステムからのアプリケーションであってもよい。また、図8に示されていないが、システムアクセスタブを選択して、どのシステム(例えば、セーフティシステムドメイン、エンターテインメントドメイン、車載制御ドメインなど)が第一者、第二者、第三者及び/またはAuto SARアプリケーションによってアクセスされることができるかを確認してもよい。さらに、「コンピュートユニット制御」タブを選択して、第一者、第二者、第三者及び/またはAuto SARアプリケーションがそれぞれのドメイン内のコンピュータコントローラとインタラクトすることができるかどうかを決定してもよい。図8に示されるようなインタフェースを使用して、入力センサを選択し、図2に示されるような合成センサ定義にドラッグアンドドロップすることができる。
【0086】
また、いくつかの実施形態では、図8に示されるユーザインタフェースにより、顧客は、例えば、モノリシックに配置された合成センサ、またはモジュラに配置された合成センサのロジックモジュールなどの、1つ以上のプロセッサ要件を指定することが可能になってもよい。例えば、顧客は、GPU、汎用GPU、マルチコアCPUなど、特定のタイプのプロセッサを備えたECU(または仮想ECU)での配置を指定することができる。
【0087】
また、いくつかの実施形態では、図8に示されるユーザインタフェースにより、顧客は、自動再シャッフルの有効化(図14でさらに説明する)、モジュール展開の有効化もしくは制限、または他の顧客指定の配置ルールなど、他の合成センサ配置要件を指定することが可能になってもよい。
【0088】
図9は、いくつかの実施形態による、仮想ドメイン制御ユニット(仮想DCU)及び仮想電子制御ユニット(仮想ECU)を示し、これらは、車両のローカル仮想DCU/ECUオーケストレーション環境内で車両に関連付けられたコードを実行し、そのうえ、車両から離れたリモート仮想DCU/ECUオーケストレーション環境内で車両に関連付けられたコードも実行する。
【0089】
サービスプロバイダネットワーク902は、仮想ドメイン制御ユニット(DCU)サービス904と、サービスプロバイダネットワークサービス920及びサービスプロバイダネットワークサービス928などのサービスプロバイダネットワークサービスとを実装する。いくつかの実施形態では、サービスプロバイダネットワーク902は、サービスプロバイダネットワーク902を実装するコンピューティングデバイス、データストレージデバイス、ネットワーキングデバイス、及び/または他のデバイスをそれぞれ含むサービスプロバイダネットワークの1つまたは複数の領域内に1つまたは複数のデータセンターを含み得る。例えば、サービスプロバイダネットワークサービス920は、データセンターコンピューティングデバイス922及びデータセンターストレージデバイス924を含む/それらを使用して実装される。同様の方法では、サービスプロバイダネットワークサービス928は、データセンターコンピューティングデバイス930及びデータセンターストレージデバイス932を含む/それらを使用して実装される。いくつかの実施形態では、データセンターコンピューティングデバイス及びデータセンターストレージデバイスは、データセンターのデータホール内に取り付けられたサーバなどのラックマウントコンピューティングデバイスを含み得る。
【0090】
仮想ドメイン制御ユニットサービス904は、サービスプロバイダネットワーク902の他のサービスのリソースを使用して、例えば、サービスプロバイダネットワークのコンピューティングサービスのコンピューティングリソースを使用して、そして例えばサービスプロバイダネットワークサービス920または928のサービスなど、サービスプロバイダネットワーク902のストレージサービスのデータストレージリソースを使用して、実装され得る。
【0091】
いくつかの実施形態では、仮想ドメイン制御ユニットサービス904は、サービスインタフェース906、車両通信インタフェース908、及びリモート仮想DCU/ECUオーケストレーション環境910を含む。いくつかの実施形態では、仮想ドメイン制御サービス904を使用して、コードパッケージを仮想DCU、仮想ECU、またはその両方に展開することができることに留意されたい。また、いくつかの実施形態では、仮想ドメイン制御ユニットサービス904は、仮想DCUサービス904の顧客によって、仮想DCU、仮想ECU、またはその両方を予約し、割り振り、割り振り解除し、管理するために使用され得る。
【0092】
いくつかの実施形態では、サービスインタフェース906など、仮想DCU/ECUサービスのサービスインタフェースは、サービスコンソール、アプリケーションプログラマティックインタフェースを実装することができ、このアプリケーションプログラマティックインタフェースは、コマンドラインインタフェース、グラフィカルユーザインタフェース、または仮想DCU/ECUオーケストレーション環境を含む車両に展開される新しい車両コードパッケージ/仮想DCUパッケージ/仮想ECUパッケージをクライアントが選択する、及び/または設計することを可能にするその他の適切なインタフェースを通じて、クライアントから車両コードパッケージ/仮想DCUパッケージ/仮想ECUパッケージの命令を受信するように構成されてもよい。いくつかの実施形態では、車両124などの車両は、製造時に車載分散コンピューティング環境140内に仮想DCU/ECU接続性を有するように製造されることができることに留意されたい。その中で、仮想DCU/ECU接続性により、製造後及び車両124の所有者または運転者による使用後、新しい車両コードパッケージ/仮想DCUパッケージ/仮想ECUパッケージを車両124に展開することが可能になる。
【0093】
いくつかの実施形態では、車両コードパッケージ(モジュラに配置された合成センサのロジックモジュールなど)は、車両と通信するように構成されるリモート仮想DCU/ECUに配置され得る。例えば、車両コードパッケージは、サービスプロバイダネットワーク領域に含まれる仮想ECU912または仮想DCU914に配置され得、仮想DCU/ECUリモートオーケストレーション環境910に実装され得る。別の例として、車両コードパッケージは、無線ネットワークエッジロケーション938内に含まれる仮想DCU948または仮想ECU950に配置され得、この無線ネットワークエッジロケーションは、車両124との無線接続958を確立する無線通信デバイス940も含む。無線接続958が無線エッジロケーション938と車両124との間に直接あるが、仮想DCU/ECUリモートオーケストレーション環境910を実装するコンピューティングデバイスをホストするデータセンターへの接続956は、ネットワーク936を介した中間ネットワーキングデバイス/ホップを含み得ることに留意されたい。例えば、いくつかの実施形態では、サービスプロバイダエッジコンピューティングデバイス942及びサービスプロバイダエッジストレージデバイス944は、無線通信デバイス940を含む無線エッジロケーションにコロケートされてもよい。さらなる例として、無線通信デバイス940は、5G無線ネットワークを実装する無線アンテナであってもよく、サービスプロバイダエッジコンピューティングデバイス942及びサービスプロバイダエッジストレージデバイス944は、無線アンテナと同じまたは隣接する施設内に物理的に位置していてもよい。また、サービスプロバイダエッジコンピューティングデバイス942及びサービスプロバイダエッジストレージデバイス944は、仮想DCU/ECUエッジオーケストレーション環境946を実装することができる。
【0094】
いくつかの実施形態では、1つまたは複数の第一仮想DCUまたは仮想ECUからの出力は、同じまたは異なる位置内の他の仮想DCUまたは仮想ECUへの入力となり得る。このようにして、低レイテンシを必要とするタスクが車両または無線ネットワークエッジロケーションの仮想DCU/ECUでローカルに実行されるように、仮想DCU/ECUのネットワークを形成することができ、レイテンシの影響をあまり受けない他のタスクは、仮想ECU912及び/または仮想DCU914など、遠隔地データセンターの仮想DCU/ECUを使用して実行されることができる。また、いくつかの実施形態では、仮想DCU/ECUは、タスクまたはジョブをサービスプロバイダネットワーク902の他のサービスにアウトソーシングすることができる。例えば、V-DCUタスク/ジョブ926は、仮想DCU914によってサービスプロバイダネットワークサービス920にアウトソーシングされている。また、V-ECUタスク/ジョブ934はサービスプロバイダネットワークサービス928に委譲されている。例えば、いくつかの実施形態では、無線ネットワークエッジロケーションの仮想DCU948または仮想ECU950は、V-ECUタスク/ジョブ934をサービスプロバイダネットワークサービス928に委譲していてもよい。
【0095】
いくつかの実施形態では、車両コードパッケージのリモート実行環境は、標準化されたコーディングパラダイムを実装/使用することができ、その結果、仮想DCU/ECUを介して実行される車両コードパッケージの開発者は、共通のコーディングパラダイムを使用して、異なるメーカーによって製造される車両に展開される車両コードパッケージ、及び/または異なる位置(例えば、ローカル、エッジ、リモートなど)にある異なる仮想DCU/ECUオーケストレーション環境に配置される車両コードパッケージを開発することができる。
【0096】
図10は、いくつかの実施形態による、センサなど、車両の物理コンポーネントと、車両に対して異なる位置に実装される仮想DCU/ECUとの間の一方向トリップレイテンシの例を示す。
【0097】
上で論じたように、いくつかの実施形態では、車両コードパッケージ/仮想DCUパッケージ/仮想ECUパッケージの配置は、車両コードのレイテンシ要件に基づいて選択され得る。例えば、一部のタイプのコードでは、車両コンポーネント間のレイテンシを低くすることが必要な場合がある。例えば、道路内で障害物を検出する車両コードを使用して実装されたアプリケーションでは、センサと出力デバイスとの間のレイテンシを低くすることが必要な場合がある。ただし、別の例として、乗客が車両に乗車するときに乗客の座席の位置を調整するアプリケーションでは、より高いレイテンシを許容することができる場合がある。さらに別の例として、例えば曲の推奨を提供する、アプリケーションは、他のアプリケーションと同程度にレイテンシの影響を受けにくい場合がある。これらの異なる例では、アプリケーションの車両コードパッケージはレイテンシ要件を示すことができ、これらのアプリケーションを実装するためのコードを含む車両コードパッケージは、異なるレベルのレイテンシ及び/または異なる容量、例えば、異なるコンピューティング容量、異なるストレージ、容量、他のプロバイダネットワークサービスへの異なるアクセスなどを提供する異なる位置の仮想DCU/ECU上に配置されることができる。
【0098】
図10に示されるように、いくつかの実施形態では、エッジ無線ネットワーク位置ではセンサから仮想DCU/ECUまでの一方向のレイテンシは、10ミリ秒の範囲内にあり得る。
【0099】
いくつかの実施形態では、リモート仮想DCU/ECUオーケストレーション環境は、150ミリ秒の範囲内の一方向レイテンシを有することができ、これは、ストレージまたはコンピュート要件が高いが、レイテンシへの感度が低いアプリケーションの一例として、曲の推奨には満足できるものであり得る。
【0100】
図11は、いくつかの実施形態による、合成センササービスの操作のフローチャートを示す。
【0101】
1102では、合成センササービスは、車両メーカー、部品メーカー、または他の第三者にインタフェースを提供する。このインタフェースは、合成センササービスのクライアントが新しいタイプの合成センサを設計することを可能にしてもよい。またインタフェースを使用することができると、クライアントによって設計されたものなど、特定のタイプの合成センサを特定の車両に展開することもできる。いくつかの実施形態では、インタフェースがAPIをアプリケーションストアに提供することができると、合成センサを使用する特定の車両用に購入されたアプリケーションに応答して、合成センサパッケージを特定の車両に自動的に展開することができる。
【0102】
1104では、合成センササービスは、インタフェースを介して、車両の合成感覚オーケストレーション環境に展開される1つまたは複数の合成センサ(または合成センサを作成するためのマッピング)の選択を受信する。
【0103】
1106では、合成センササービスは、車両の合成センサオーケストレーション環境に展開するために、選択された(または作成された)1つまたは複数の合成センサの1つまたは複数の合成センサパッケージを生成し、1つまたは複数の合成センサパッケージは、エンベロープ化フォーマットのコードロジック及びマッピングによって、そしてエンベロープの外側の合成センサに対する1つまたは複数のアノテーションによってフォーマットされる。
【0104】
1108では、合成センササービスは、車両の製造プロセス中に展開するために、車両に展開するための1つまたは複数の合成センサパッケージを提供する。いくつかの実施形態では、1つまたは複数の合成センサパッケージに関連付けられた1つまたは複数の合成センサは、製造プロセス及び/または製造中の車両のテストを支援することができる。いくつかの実施形態では、1つまたは複数の合成センサパッケージは、車両に電力が供給され(例えば、バッテリが設置され)、車両に車載コンピュータが設置され、車載コンピュータにワイヤハーネスが取り付けられた後の製造プロセス中に展開され得る。いくつかの実施形態では、1つまたは複数の合成センサパッケージに関連付けられた1つまたは複数のセンサは、品質保証モデルを実行して、設置された物理センサ及びコンピューティングシステムの品質をチェックすることができる。いくつかの実施形態では、車両が品質保証テストに合格すると、合成センサは合成センサオーケストレーション環境から解放されてもよい。
【0105】
1110では、合成センササービスは、車両へのネットワーク接続を介して車両に展開するための1つまたは複数の合成センサパッケージを提供し、1つまたは複数のセンサパッケージは、車両が車両のオペレータによって使用可能になった後(例えば、車両が既に消費者に販売された後)、合成センサまたは他の特徴を車両に追加するために提供される。
【0106】
いくつかの実施形態では、合成センササービスは、車両に対して1108と1110との両方を実行してもよく、または一方のみを実行してもよいが、他方は実行しなくてもよい。
【0107】
図12は、いくつかの実施形態による、車載分散コンピューティング環境の操作のフローチャートを示す。
【0108】
1202では、車両の車載コンピュータデバイスは車載分散コンピューティング環境を実装し、この車載分散コンピューティング環境は、車両へのネットワーク接続を介して合成センサパッケージを受信するように構成され、車両の製造中、または車両の所有者もしくは運転者による車両の使用後、新しい合成センサを実装するように構成される。
【0109】
1204では、車載分散コンピューティング環境は、車両の車載バスを介して、車両の既存の物理センサ及び/またはECUと車載分散コンピューティング環境との間の通信チャネルを確立する。
【0110】
1206では、車載分散コンピューティング環境は、合成センササービスへのネットワーク接続を介して、または製造現場のローカル生産ネットワークを介して、1つまたは複数の合成センサパッケージを車両で受信し、合成センサパッケージは、エンベロープ化フォーマットのコードロジック及びマッピングと、エンベロープの外側の合成センサに対する1つまたは複数のアノテーションとを含む。
【0111】
1208/1210では、車載分散コンピューティング環境は、合成センサパッケージの1つまたは複数のアノテーション、異なる配置位置でのデータ入力のそれぞれの可用性、及び異なる配置位置でのそれぞれのプロセッサ容量及び/または能力に基づいて、所与の合成センサが単一合成センサとして車載分散コンピューティング環境に配置されるべきか、2つ以上のモジュラコンポーネントとして車載分散コンピューティング環境に配置されるべきかを決定する。
【0112】
1212では、モノリス配置が決定される場合、車載分散コンピューティング環境は、要求されたデータ入力及びプロセッサ能力、容量、優先順位などを有する単一配置位置に合成センサを配置する。
【0113】
1214では、モジュラ配置が決定される場合、車載分散コンピューティング環境は、合成センサを、要求されたデータ入力及びプロセッサ能力、容量、優先順位などを有する複数の配置位置の配置に複数のモジュラコンポーネントとして配置する。
【0114】
1216では、車載分散コンピューティング環境は、モジュラコンポーネント間で通信されるデータをエンコードするために通信層を提供する車載分散コンピューティング環境のランタイム環境でモジュラコンポーネントを実行する。
【0115】
図13は、いくつかの実施形態による、車載分散コンピューティング環境で実行された故障したECUへの応答のフローチャートを示す。
【0116】
1302では、車載分散コンピューティング環境は、車両の電子制御ユニット(ECU)の故障を検出する。
【0117】
1304では、車載分散コンピューティング環境は、故障したECUで以前に実行されたタスクを実装するために、合成センサモジュール/合成センサを生成または複製する。
【0118】
1306では、車載分散コンピューティング環境は、生成または複製された合成センサモジュール/合成センサを故障していないECUに実装し、故障したECU上で以前に実行されたタスクを実行する。
【0119】
1308では、車載分散コンピューティング環境は、故障したECUが評価/交換されることができるまで、少なくとも閾値の時間または距離にわたって車両の中断のない操作を提供する。
【0120】
図14は、いくつかの実施形態による、車載分散コンピューティング環境内の物理センサ及び/または物理センサのモジュールを再シャッフルするためのフローチャートを示す。
【0121】
1402では、車載分散コンピューティングフレームワークのオーケストレーションコンポーネントは、追加の物理センサが車両の1つ以上の配置位置(例えば、ECU)に追加されたかどうか、または追加の配置位置(例えば、追加のECU)が車両に追加されたかどうかを検出する。
【0122】
1404では、車載分散コンピューティングフレームワークのオーケストレーションコンポーネントは、既存の物理センサからの通信が1つ以上の配置位置(例えば、ECU)で失われたかどうかを検出する。
【0123】
1406では、車載分散コンピューティングフレームワークのオーケストレーションコンポーネントは、1つ以上の配置位置(例えば、ECU)における負荷、ロジックモジュールに利用可能なリソースなどの変化を検出する。
【0124】
1408では、車載分散コンピューティングフレームワークのオーケストレーションコンポーネントは、合成センサオーケストレーション環境に実装された合成センサに対して、または合成センサオーケストレーション環境とセンサデータを共有する物理センサに関連して、認定レベルにおける1つ以上の変更が行われたかどうかを決定する。
【0125】
1410では、車載分散コンピューティングフレームワークのオーケストレーションコンポーネントは、車両のコンピュートリソースの使用を最適化する機会を決定する。例えば、信頼できるネットワーク接続が利用可能である場合、車両に搭載されたECUの寿命を延ばすために、ロジックモジュールを仮想ECUにシャッフルすることができる。一例として、信頼できるネットワーク接続性を有する位置で車両が充電されているとき、充電プロセス中にアクティブにしておく必要があるバッテリまたはインバータの制御などの特定の操作は、仮想ECUに再配置される場合がある。これにより、夜間の充電時間を仮想ECUに移行することで、車両内のECUのアクティブな動作時間が大幅に短縮される可能性がある。
【0126】
1412では、車載分散コンピューティングフレームワークのオーケストレーションコンポーネントは、1402、1404、1406、1408、または1410で行われた変更の数または重要性が、再シャッフル操作の実行を引き起こす1つまたは複数の閾値を超えるかどうかを決定する。再シャッフル操作では、車載分散コンピューティングフレームワークのオーケストレーションコンポーネントは、既に実装された合成センサまたは合成センサモジュール(例えば、入力モジュールまたはロジックモジュール)の配置を再評価して、既に実装された合成センサ/モジュールのうちの1つまたは複数を異なる配置位置に配置することにより、システムパフォーマンスが改善されるか、合成センサの認定レベルが高まるか、その他の方法でパフォーマンスが良くなるかを決定することができる。1412で1つ以上の閾値を超えなかった場合、車載分散コンピューティングフレームワークのオーケストレーションコンポーネントは、追加の変更を監視し続ける。
【0127】
1412、1414から1418で1つ以上の閾値を超えた場合、車載分散コンピューティングフレームワークのオーケストレーションコンポーネントは、1つ以上の既に実装された合成センサ/モジュールを異なる配置位置に再配置するエフェクトを決定する。例えば、再配置する合成センサは、再配置された合成センサ、または合成センサが既に実装されているドメイン内の合成センサに任意選択の入力を提供する場合がある。これらのような追加の任意選択の入力により、合成センサの少なくとも一部をより高い認定レベルにアップグレードすることが可能になる場合がある。
【0128】
1420では、車載分散コンピューティングフレームワークのオーケストレーションコンポーネントは、決定されたエフェクトに基づいて、再シャッフルの一部として再配置される合成センサ/モジュールのそれぞれの配置を選択する。
【0129】
コンピュータシステムの例
様々なコンピュータシステムのいずれも、合成センササービス、合成センサオーケストレーション環境、車載分散コンピューティング環境、ECU、合成センササービスを実装するプロバイダネットワーク、車両もしくはデバイス内のオペレーティングシステム、または上記の図の任意の他のコンポーネントに関連付けられたプロセスを実装するように構成され得る。例えば図15は、いくつかの実施形態による、本明細書で説明される技術の一部またはすべてを実装する例示的なコンピュータシステムを示すブロック図である。様々な実施形態では、合成センササービス、合成センサオーケストレーション環境、合成センササービス及び他のクラウドサービスを実装するプロバイダネットワーク、車両もしくはデバイス内のオペレーティングシステム、または上記の図、図1図14の任意の他のコンポーネントは、図15に示されるような1つまたは複数のコンピュータシステム1400をそれぞれ含むことができる。
【0130】
示される実施形態では、コンピュータシステム1500は、入力/出力(I/O)インタフェース1530を介してシステムメモリ1520に接続された1つ以上のプロセッサ1510を含む。コンピュータシステム1500はさらに、I/Oインタフェース1530に接続されたネットワークインタフェース1540を含む。いくつかの実施形態では、コンピュータシステム1500は、エンタープライズロジックまたはダウンロード可能なアプリケーションを実装するサーバの例示的なものであってもよいが、他の実施形態では、サーバは、コンピュータシステム1500よりも多い、少ない、またはそれとは異なる素子を含むことができる。
【0131】
様々な実施形態では、コンピューティングデバイス1500は、1つのプロセッサを含むユニプロセッサシステム、またはいくつかのプロセッサ1510A~1510N(例えば、2つ、4つ、8つ、または別の好適な数)を含むマルチプロセッサシステムであってもよい。プロセッサ1510A~1510Nは、命令を実行可能な任意の好適なプロセッサを含み得る。例えば、様々な実施形態では、プロセッサ1510A~1510Nは、様々な命令集合アーキテクチャ(ISA)、例えばx86、PowerPC、SPARC、もしくはMIPS ISA、または任意の他の好適なISAなどのうちのいずれかを実施するプロセッサであり得る。いくつかの実施形態では、プロセッサ1510A~1510Nは、グラフィックスプロセッシングユニット(GPU)、特定用途向け集積回路(ASIC)などの専用プロセッサを含むことができる。マルチプロセッサシステムでは、プロセッサ1510A~1510Nのそれぞれは、同じISAを実装することが一般的であってもよいが、必ずしもそうでなくてもよい。
【0132】
システムメモリ1520は、プロセッサ(複数可)1510A~1510Nによってアクセス可能なプログラム命令及びデータを格納するように構成され得る。様々な実施形態では、システムメモリ1520は、スタティックランダムアクセスメモリ(SRAM)、同期ダイナミックRAM(SDRAM)、不揮発性/フラッシュ型メモリ、または任意の他のタイプのメモリなどの任意の適切なメモリ技術を使用して実装され得る。示される実施形態では、前述の方法、技術、及びデータなどの1つ以上の所望の機能を実施するプログラム命令及びデータは、システムメモリ1520内にコード(すなわち、プログラム命令)1525及びデータ1526として格納されることが示される。
【0133】
一実施形態では、I/Oインタフェース1530は、プロセッサ1510A~1510Nと、システムメモリ1520と、ネットワークインタフェース1540または他の周辺インタフェースを含むデバイス内の任意の周辺デバイスとの間のI/Oトラフィックを調整するように構成され得る。いくつかの実施形態では、I/Oインタフェース1530は、1つの構成要素(例えばシステムメモリ1520)からのデータ信号を、別の構成要素(例えばプロセッサ1510)が使用するのに好適な形式に変換するために、任意の必要なプロトコル変換、タイミング変換、または他のデータ変換を実行し得る。いくつかの実施形態では、I/Oインタフェース1530は、例えば周辺構成要素相互接続(PCI)バス規格または汎用シリアルバス(USB)規格の変形など、様々なタイプの周辺バスを介して取り付けられるデバイスのサポートを含み得る。いくつかの実施形態では、I/Oインタフェース1530は、自動車CANバスなどを介して取り付けられたデバイスのサポートを含み得る。いくつかの実施形態では、I/Oインタフェース1530の機能は、例えばノースブリッジ及びサウスブリッジなどの2つ以上の別個の構成要素に分割されてもよい。また、いくつかの実施形態では、システムメモリ1520へのインタフェースなどのI/Oインタフェース1530の機能の一部または全ては、プロセッサ1510A~1510Nに直接組み込まれてもよい。
【0134】
ネットワークインタフェース1540は、データが、コンピューティングデバイス1500と、1つまたは複数のネットワーク1550に取設される他のデバイス1560との間で交換されることを可能にするように構成され得る。様々な実施形態では、ネットワークインタフェース1540は、例えば、イーサネットネットワーク、セルラーネットワーク、Bluetoothネットワーク、Wi-Fiネットワーク、超広帯域ネットワークのタイプなど、任意の好適な有線または無線一般データネットワークを介した通信をサポートし得る。さらに、ネットワークインタフェース1540は、アナログ音声ネットワークまたはデジタルファイバ通信ネットワークなどの電気通信/テレフォニネットワークを介した、ファイバチャネルSANなどのストレージエリアネットワークを介した、または任意の他の適切なタイプのネットワーク及び/またはプロトコルを介した通信をサポートし得る。
【0135】
一部の実施形態では、システムメモリ1520は、対応する方法、システム、及び装置の実施形態を実装するための上述されるようなプログラム命令及びデータを格納するように構成されたコンピュータ可読(すなわち、コンピュータアクセス可能な)媒体の一実施形態であってもよい。しかし、別の実施形態では、プログラム命令及び/またはデータは、異なる種類のコンピュータ可読媒体上で受信、送信、または格納され得る。一般的に言えば、コンピュータ可読媒体は、I/Oインタフェース1530を介してコンピューティングデバイス1500に連結される、磁気媒体または光媒体、例えば、ディスクまたはDVD/CDなどの非一時的記憶媒体またはメモリ媒体を含み得る。1つ以上の非一時的コンピュータ可読記憶媒体はまた、システムメモリ1520または別のタイプのメモリとして、コンピューティングデバイス1500の一部の実施形態に含まれても良い、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROMなど等の任意の揮発性または非揮発性媒体を含んでも良い。さらに、コンピュータ可読媒体は、ネットワークインタフェース1540を介して実装され得るような、ネットワーク及び/または無線リンクなどの通信媒体を介して伝送される伝送媒体または電気信号、電磁信号、もしくはデジタル信号などの信号を含み得る。図15に示されるような複数のコンピューティングデバイスのうちの一部またはすべては、様々な実施形態では、記載される機能性を実装するために使用され得て、例えば、様々な異なるデバイス及びサーバ上で実行するソフトウェアコンポーネントが、機能性を提供するために協働し得る。いくつかの実施形態では、説明された機能の一部は、ストレージデバイス、ネットワークデバイス、または様々なタイプのコンピュータシステムを使用して実装され得る。「コンピューティングデバイス」という用語は、本明細書で使用される場合、少なくともすべてのこれらのタイプのデバイスを指し、これらのタイプのデバイスに限定されない。
【0136】
本開示の実施形態は、以下の条項を鑑みて説明することができる。
【0137】
条項1.車両に設置された、または設置されるように構成された複数の電子制御ユニット(ECU)を含むシステムであって、
前記ECUのうち1つまたは複数は、車載分散コンピューティング環境を実装するためのプログラム命令を格納し、
前記車載分散コンピューティング環境は、
前記車両に展開するための合成センサパッケージを受信するように構成され、前記合成センサパッケージは合成センサのロジック及び前記合成センサのマッピングを含み、
前記合成センサの配置位置を、
前記ECUのそれぞれのECUでの前記合成センサパッケージの前記マッピングのためのデータ入力のそれぞれの可用性、及び
前記合成センサパッケージに含まれる前記ロジックを実行するための前記ECUの前記それぞれのECUのそれぞれのリソース容量、
に基づいて決定するように構成され、
前記それぞれのECUの2つ以上の異なるECUに配置された2つ以上のモジュラコンポーネントとして前記合成センサを配置するように構成され、前記2つ以上のモジュラコンポーネントは前記車載分散コンピューティング環境内に前記合成センサを集合的に実装する、前記システム。
【0138】
条項2.前記合成センサの前記2つ以上のモジュラコンポーネントは、
前記2つ以上のECUのうち第一ECUに配置されたロジックモジュール、及び
前記2つ以上のECUのうち第二ECUに配置された入力モジュール、
を含み、
前記ロジックモジュール及び前記入力モジュールは、前記車載分散コンピューティング環境のランタイム環境で実行する、条項1に記載のシステム。
【0139】
条項3.前記入力モジュールは、
プラットフォーム抽象化層、
ハードウェア抽象化層、または
車両抽象化層、
を介して前記第二ECUの1つ以上のデータソースからの情報を受信し、
前記車載分散コンピューティング環境の通信層を介して、前記第二ECUの前記データソースから前記第一ECUの前記ロジックモジュールに前記情報を提供する、
ように構成される、条項2に記載のシステム。
【0140】
条項4.前記車載分散コンピューティング環境は、さらに、
前記車両内での展開用に別の合成センサパッケージを受信するように構成され、他の合成センサパッケージは別の合成センサのロジック及び前記他の合成センサのマッピングを含み、
前記他の合成センサの配置位置を、
前記ECUのそれぞれのECUでの前記他の合成センサパッケージの前記マッピングのためのデータ入力のそれぞれの可用性、及び
前記他の合成センサパッケージの前記ロジックを実行するための前記ECUの前記それぞれのECUのそれぞれのリソース容量、
に基づいて決定するように構成され、
前記他の合成センサを、前記ECUの単一ECU上の決定された配置位置に配置するように構成される、条項1から3のいずれかに記載のシステム。
【0141】
条項5.前記車載分散コンピューティング環境は、
前記ECUの現在の容量または能力に基づいて、及び前記ECUのそれぞれのECUにおけるデータ入力の可用性に基づいて、合成センサの配置を決定するように構成されたオーケストレーションコンポーネントと、
1つ以上の合成センサのモジュラコンポーネントが実行するランタイム環境と、
前記ECUから容量または能力情報を収集するために標準化されたインタフェースを実装するように構成された監視コンポーネントと、
前記車載分散コンピューティング環境の1つ以上のプロトコルに従って通信をフォーマットするように構成された通信層と、
を含む、条項1から4のいずれかに記載のシステム。
【0142】
条項6.プログラム命令を格納する1つ以上の非一時的なコンピュータ可読媒体であって、
前記プログラム命令は、1つ以上のプロセッサ上で、またはそれらの間で実行されるとき、前記1つ以上のプロセッサに車載分散コンピューティング環境を実装させ、
前記車載分散コンピューティング環境は、
車両に展開するための合成センサパッケージを受信するように構成され、前記合成センサパッケージは合成センサのロジック及び前記合成センサのマッピングを含み、
前記合成センサの配置位置を、
前記車載分散コンピューティング環境内のそれぞれの配置位置での前記合成センサパッケージの前記マッピングのためのデータ入力のそれぞれの可用性、及び
前記車載分散コンピューティング環境内の前記それぞれの配置位置のそれぞれのリソース容量または能力、
に基づいて決定するように構成され、
前記車載分散コンピューティング環境内の前記配置位置の2つ以上の異なる配置位置に配置された2つ以上のモジュラコンポーネントとして前記合成センサを配置するように構成され、前記2つ以上のモジュラコンポーネントは前記車載分散コンピューティング環境内に前記合成センサを集合的に実装する、前記1つ以上の非一時的なコンピュータ可読媒体。
【0143】
条項7.前記車載分散コンピューティング環境は、さらに、
前記車両内での展開用に別の合成センサパッケージを受信するように構成され、他の合成センサパッケージはロジック及びマッピングを含み、
前記他の合成センサが未分割合成センサとして単一位置に配置されるべきか、前記他の合成センサの2つ以上のモジュラコンポーネントとして2つ以上の異なる配置位置に配置されるべきかを決定するように構成され、
前記決定に基づいて、
前記他の合成センサを前記未分割合成センサとして前記車載分散コンピューティング環境内の前記単一配置位置に配置する、または
前記他の合成センサを前記車載分散コンピューティング環境内の前記2つ以上の異なる配置位置に配置された前記2つ以上のモジュラコンポーネントとして配置する、
ように構成される、条項6に記載の1つ以上の非一時的なコンピュータ可読媒体。
【0144】
条項8.前記車載分散コンピューティング環境内の前記それぞれの配置位置は、前記車両内の異なるそれぞれの電子制御ユニット(ECU)を含む、条項6または条項7に記載の1つ以上の非一時的なコンピュータ可読媒体。
【0145】
条項9.前記異なるECUは、
前記異なるそれぞれのECUに含まれる異なるそれぞれのタイプのプロセッサ、または
前記異なるそれぞれのECUに含まれる異なる数のプロセッサ、
に少なくとも部分的に基づいて、異なるそれぞれのリソース容量または能力を有する、条項8に記載の1つ以上の非一時的なコンピュータ可読媒体。
【0146】
条項10.前記異なるそれぞれのタイプのプロセッサを有する前記ECUの前記異なるそれぞれのECUは、
中央処理装置(CPU)、
グラフィックスプロセッシングユニット(GPU)、または
汎用グラフィックスプロセッシングユニット(GPGPU)、
のうちの異なるものを含む、条項9に記載の1つ以上の非一時的なコンピュータ可読媒体。
【0147】
条項11.前記異なるそれぞれのECUは、
前記それぞれのECUが位置している車両ドメイン、または
前記ECUに接続されたセンサから前記それぞれのECUに提供されるセンサデータ、
に少なくとも部分的に基づいて、データ入力の異なるそれぞれの可用性を有する、条項8から10のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【0148】
条項12.前記合成センサの前記2つ以上のモジュラコンポーネントは、
少なくとも1つのロジックモジュール、及び
少なくとも1つの入力モジュール、
を含み、
前記少なくとも1つの入力モジュールは、その配置位置で1つ以上のデータソースからの情報を、
プラットフォーム抽象化層、
ハードウェア抽象化層、または
車両抽象化層、
を介して受信するように構成され、
前記少なくとも1つの入力モジュールの前記配置位置で前記データソースからの前記情報を、前記車載分散コンピューティング環境の通信層を介して、異なる配置位置で前記ロジックモジュールに提供するように構成される、条項6から11のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【0149】
条項13.前記合成センサの前記2つ以上のモジュラコンポーネントは、第三配置位置に配置された追加の入力モジュールをさらに含み、
前記少なくとも1つの入力モジュールは第二配置位置に配置され、
前記少なくとも1つの入力モジュール及び前記追加の入力モジュールは、前記第二配置位置及び前記第三配置位置でのデータソースからの情報を、第一配置位置に配置された前記ロジックモジュールに提供する、条項12に記載の1つ以上の非一時的なコンピュータ可読媒体。
【0150】
条項14.前記少なくとも1つのロジックモジュールは、
第一タイプのプロセッサを有する電子制御ユニット(ECU)を含む配置位置に配置された第一部分、及び
第二タイプのプロセッサを有する異なる電子制御ユニット(ECU)を含む別の配置位置に配置された第二部分、
を含み、
前記少なくとも1つのロジックモジュールの前記第一部分及び前記第二部分ならびに前記少なくとも1つの入力モジュールは、前記車載分散コンピューティング環境のランタイム環境で実行する、条項12に記載の1つ以上の非一時的なコンピュータ可読媒体。
【0151】
条項15.前記車載分散コンピューティング環境は、
複数の異なるメーカーによって製造された複数の車両、
異なるメーカーによって製造された複数の車両コンポーネント、または
複数の異なる車両メーカーによって製造された複数の車両であって、それぞれが異なるメーカーにより製造された複数の車両コンポーネントを含む、前記複数の車両、
での展開用の合成センサに均一な展開環境を提供するように構成される、条項6から14のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【0152】
条項16.前記車載分散コンピューティング環境は、
第一ランタイム環境、及び
第二ランタイム環境、
を含み、
前記第二ランタイム環境は1つ以上の安全基準に準拠するように構成されるため、前記第二ランタイム環境に配置された合成センサは前記安全基準を満たす、条項6から15のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【0153】
条項17.前記合成センサに利用可能な配置位置は、
前記車両の外部のハードウェアに実装され、ネットワーク接続を介して前記車両に接続された仮想電子制御ユニット(vECU)での配置をさらに含む、条項6から16のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【0154】
条項18.前記車載分散コンピューティング環境は、前記車両内の電子制御ユニット(ECU)の故障に応答して、前記車両内の別の故障していないECUに合成センサを実装するようにさらに構成され、
前記実装された合成センサは、前記故障したECUによって以前に実行されたタスクを実行するロジックモジュールを含む、条項6から17のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【0155】
条項19.前記故障したECUによって以前に実行されたタスクを実行する前記合成センサは、少なくとも閾値の時間または距離にわたって前記車両の操作の中断を防止する、条項18に記載の1つ以上の非一時的なコンピュータ可読媒体。
【0156】
条項20.前記車載分散コンピューティング環境は、前記車載分散コンピューティング環境における変化に応答して、前記合成センサまたは前記合成センサの前記2つ以上のモジュラコンポーネントを別の配置位置に自動的に再配置するようにさらに構成される、条項6から19のいずれかに記載の1つ以上の非一時的なコンピュータ可読媒体。
【0157】
条項21.前記車載分散コンピューティング環境における前記変化は、
別の合成センサの追加、
前記合成センサへの既存もしくは追加の入力の可用性における変化、
前記合成センサの認定レベルの変更、または
前記配置位置でのリソースの可用性における変化、もしくは代替の配置位置でのリソースの可用性における変化、
のうちの1つ以上を含む、条項20に記載の1つ以上の非一時的なコンピュータ可読媒体。
【0158】
条項22.車両の車載分散コンピューティング環境で合成センサパッケージを受信することであって、前記合成センサパッケージは合成センサのロジック及び前記合成センサのマッピングを含む、前記受信することと、
前記合成センサの配置位置を、
前記車載分散コンピューティング環境内のそれぞれの配置位置での前記合成センサの前記マッピングのためのデータ入力のそれぞれの可用性、及び
前記車載分散コンピューティング環境の前記それぞれの配置位置のそれぞれのリソース容量、
に基づいて決定することと、
前記車載分散コンピューティング環境内の前記配置位置の2つ以上の異なる配置位置に配置された2つ以上のモジュラコンポーネントとして前記合成センサを配置することであって、前記2つ以上のモジュラコンポーネントは前記車載分散コンピューティング環境内に前記合成センサを集合的に実装する、前記配置することと、
を含む、方法。
【0159】
本明細書で図に例示され、説明される様々な方法は、方法の例示的な実施形態を表す。本方法は、ソフトウェア、ハードウェア、またはこれらの組み合わせに手動で実装され得る。あらゆる方法の順序を変更することができ、様々な要素の追加、並べ替え、組み合わせ、省略、変更などが可能である。例えば、一実施形態では、方法は、プロセッサに結合されたコンピュータ可読記憶媒体に格納されたプログラム命令を実行するプロセッサを含むコンピュータシステムによって実施され得る。プログラム命令は、本明細書で説明される機能(例えば、データ転送ツール、様々なサービス、データベース、デバイス及び/または他の通信デバイスの機能など)を実装するように構成され得る。
【0160】
本開示の利点を有する当業者に明白であるように、種々の変形及び変更を行ってもよい。全てのそのような変形及び変更を含むことを意図しており、したがって、上記説明が限定的な意味ではなく、例示的であると考えるべきである。
【0161】
様々な実施形態は、命令の受信、送信、もしくは格納、及び/またはコンピュータアクセス可能媒体に関する前述の説明に従って実行されたデータをさらに含み得る。概して、コンピュータアクセス可能媒体は、磁気メディアまたは光学式メディア、例えば、ディスクまたはDVD/CD-ROM、RAM(例えば、SDRAM、DDR、RDRAM、SRAM等)、ROM等の揮発性メディアもしくは非揮発性メディア等の記憶メディアまたはメメモリメディアと、ネットワーク及び/または無線リンク等の通信媒体を介して伝えられる電気信号、電磁信号、またはデジタル信号等の送信メディアまたは送信信号と、を含んでも良い。
図1
図2
図3
図4A
図4B
図4C
図5A
図5B
図5C
図5D
図5E
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
【国際調査報告】