(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022173118
(43)【公開日】2022-11-17
(54)【発明の名称】センサデータ処理方法、装置、コンピューティングデバイス及び記憶媒体
(51)【国際特許分類】
B60W 40/02 20060101AFI20221110BHJP
B60W 50/00 20060101ALI20221110BHJP
B60W 60/00 20200101ALI20221110BHJP
【FI】
B60W40/02
B60W50/00
B60W60/00
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2022075298
(22)【出願日】2022-04-28
(31)【優先権主張番号】202110495101.0
(32)【優先日】2021-05-07
(33)【優先権主張国・地域又は機関】CN
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WCDMA
2.ZIGBEE
(71)【出願人】
【識別番号】521254764
【氏名又は名称】北京図森智途科技有限公司
(74)【代理人】
【識別番号】110002217
【氏名又は名称】弁理士法人矢野内外国特許事務所
(72)【発明者】
【氏名】謝沐▲トウ▼
(72)【発明者】
【氏名】隋清宇
【テーマコード(参考)】
3D241
【Fターム(参考)】
3D241BA63
3D241CC01
3D241CC08
3D241CC17
(57)【要約】
【課題】本願はセンサデータ処理方法、装置、コンピューティングデバイス及び記憶媒体に関し、従来技術においてアルゴリズムモジュールに伝達されたセンサデータストリームが一致しないという問題を解決するために用いられる。
【解決手段】センサデータ処理方法は、処理対象の複数のデータストリームを受信するステップであって、各データストリームは1つのセンサに対応し、かつ前記データストリームにおけるデータフレームは生成タイムスタンプを携帯するステップと、各データフレームの生成タイムスタンプを補正し、補正タイムスタンプを得るステップと、各データフレームの補正タイムスタンプ及び予め設定されたデータ送信周期に基づき、各データストリームから各データ送信周期において送信すべきデータフレームを決定するステップと、を含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
センサデータ処理方法であって、
処理対象の複数のデータストリームを受信するステップであって、各データストリームは1つのセンサに対応し、かつ前記データストリームにおけるデータフレームは生成タイムスタンプを携帯するステップと、
各データフレームの生成タイムスタンプを補正し、補正タイムスタンプを得るステップと、
各データフレームの補正タイムスタンプ及び予め設定されたデータ送信周期に基づき、各データストリームから各データ送信周期において送信すべきデータフレームを決定するステップと、を含む、センサデータ処理方法。
【請求項2】
前記複数のデータストリームは、センサによって収集されたローデータストリーム、前記ローデータストリームを計算した後に得られた後処理データストリームのうちの少なくとも1つを含み、前記後処理データストリームには対応するローデータストリームの生成タイムスタンプが携帯される、請求項1に記載の方法。
【請求項3】
各データストリームは複数のデータフレームを含み、かつ処理対象の複数のデータストリームを受信するステップは、
各データストリームに対応するバッファキューを設置するステップと、
各データフレームの生成タイムスタンプに基づき、各データストリームのデータフレームを前記バッファキューに記憶するステップと、を含む、請求項1に記載の方法。
【請求項4】
各データフレームの生成タイムスタンプを補正するステップは、
各データストリームの許容誤差に基づいて該データストリームにおける各データフレームの生成タイムスタンプをそれに最も近い整数タイムスタンプに補正するステップを含み、
ここで、各データストリームはデータ収集周期を有し、かつ各データストリームの許容誤差は該データのデータ収集周期の因子でありかつ該データ収集周期の1/2より小さい、請求項1に記載の方法。
【請求項5】
各データストリームから各データ送信周期において送信すべきデータフレームを決定するステップは、
いずれか1つのデータストリームに対して、
該データストリームにおける現在のデータ送信周期に対応するターゲットタイムスタンプを決定するステップと、
該データストリームのあるデータフレームの補正タイムスタンプが前記ターゲットタイムスタンプとマッチングすれば、該データフレームを該データストリームが現在のデータ送信周期において送信すべきデータフレームと決定するステップと、
該データストリームに補正タイムスタンプが前記ターゲットタイムスタンプとマッチングするデータフレームが存在しなければ、該データストリームは現在のデータ送信周期において送信しようとするデータフレームがないと決定するステップと、を含む、請求項1に記載の方法。
【請求項6】
該データストリームにおける現在のデータ送信周期に対応するターゲットタイムスタンプを決定するステップは、
該データストリームに対応するセンサのデータ収集周期に基づき、該データストリームの所期のタイムスタンプシーケンスを決定するステップと、
前記所期のタイムスタンプシーケンスから現在のデータ送信周期に対応するターゲットタイムスタンプを選択するステップと、を含む、請求項5に記載の方法。
【請求項7】
前記所期のタイムスタンプシーケンスから現在のデータ送信周期に対応するターゲットタイムスタンプを選択するステップは、
前記所期のタイムスタンプシーケンスから少なくとも1つの候補タイムスタンプを選択するステップであって、前記候補タイムスタンプは現在のデータ送信周期の終了時刻より遅くないステップと、
前記少なくとも1つの候補タイムスタンプのうちの最大値を前記ターゲットタイムスタンプとするステップと、を含む、請求項6に記載の方法。
【請求項8】
複数のセンサは所定周期ごとに1回のデータフレームを同時に生成し、各データストリームから各データ送信周期において送信すべきデータフレームを決定するステップは、
いずれか1つのデータストリームに対して、
該データストリームにおける現在のデータフレームと現在の所定周期の開始データフレームとの補正タイムスタンプ差を計算するステップと、
該補正タイムスタンプ差と該データストリームのデータ収集周期との比が非整数であれば、該データフレームが該データストリームのエラーフレームであると決定し、かつ該エラーフレームを廃棄するステップと、を含む、請求項1に記載の方法。
【請求項9】
各データストリームから各データ送信周期において送信すべきデータフレームを決定するステップは、
いずれか1つのデータストリームに対して、
該データストリームにおける現在のデータフレームと前のデータフレームとの補正タイムスタンプ差を計算するステップと、
該補正タイムスタンプ差と該データストリームのデータ収集周期との比mを計算するステップと、
mが非整数であれば、該現在のデータフレームが該データストリームにおけるエラーフレームであると決定し、かつ該エラーフレームを廃棄するステップと、
mが1でない整数であれば、現在のデータフレームと前のデータフレームとの間でm-1フレームをロスしたと判定するステップと、を含む、請求項5に記載の方法。
【請求項10】
各データストリームから各データ送信周期において送信すべきデータフレームを決定するステップは、
あるデータストリームの前記ターゲットタイムスタンプにおけるフレームロスに応答し、該データストリームが現在のデータ送信周期において送信しようとするデータフレームがないと決定するステップと、
ターゲットタイムスタンプから開始する所定期間内にあるデータストリームの新規データフレームが受信されなかったことに応答し、該データストリームがタイムアウトであり、かつ該データストリームが現在のデータ送信周期において送信しようとするデータがないと判定するステップと、を含む、請求項5に記載の方法。
【請求項11】
決定された各データ送信周期において送信すべきデータフレームを組み合わせとして、アルゴリズムモジュールに伝達して計算するステップを更に含む、請求項1に記載の方法。
【請求項12】
コンピューティングデバイスであって、
1つ又は複数のプロセッサと、
1つ又は複数のプログラムを記憶し、前記1つ又は複数のプログラムが前記1つ又は複数のプロセッサにより実行される場合、前記1つ又は複数のプロセッサに、請求項1~11のいずれか一項に記載の方法を実現させるメモリと、を含む、コンピューティングデバイス。
【請求項13】
コンピュータ読み取り可能な記憶媒体であって、それにはコンピュータプログラムが記憶されており、前記コンピュータプログラムがプロセッサに実行される時に請求項1~11のいずれか一項に記載の方法を実現する、コンピュータ読み取り可能な記憶媒体。
【請求項14】
車両であって、請求項13に記載のコンピューティングデバイスを含む、車両。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、コンピュータ技術分野に関し、特に、センサデータ処理方法、装置、コンピューティングデバイス及び記憶媒体に関する。
【背景技術】
【0002】
自動運転システムにおいて、マルチセンサ融合はアルゴリズムフローにおいて1つの不可欠なリンクである。これらのセンサは、衛星測位システム、慣性測定ユニット、画像センサ、レーザレーダセンサ、ミリ波レーダセンサ等を含むが、これらに限定されない。最も高いアルゴリズム効果を達成するために、マルチセンサ融合アルゴリズムは、一般的には、入力されたデータ組み合わせが、同じ時刻に生成され、及び/又は同じ時刻に生成されたデータを後処理することによって生成されることを必要とする。しかしながら、実際に応用する場合、異なるセンサの遅延が一致せずかつ正確に予測することができないため、例えば画像センサは露光時間を有し、レーザレーダセンサは1回り回転する走査時間を有し、センサとサーバとの間のデータ伝送時間等であり、複数の異なる入力データストリームを整列させる解決手段を提供する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本願は、センサデータ処理方法、装置、コンピューティングデバイス、記憶媒体及び車両を提供し、複数のセンサデータストリームを整列することができ、後続のアルゴリズムモジュール計算の精度を向上させる。
【課題を解決するための手段】
【0004】
本願は、第1の態様において、センサデータ処理方法を提供し、処理対象の複数のデータストリームを受信するステップであって、各データストリームは1つのセンサに対応し、かつデータストリームにおけるデータフレームは生成タイムスタンプを携帯するステップと、各データフレームの生成タイムスタンプを補正し、補正タイムスタンプを得るステップと、各データフレームの補正タイムスタンプ及び予め設定されたデータ送信周期に基づき、各データストリームから各データ送信周期において送信すべきデータフレームを決定するステップと、を含む。
【0005】
本願は、第2の態様において、センサデータ処理装置を提供し、処理対象の複数のデータストリームを受信するために用いられるデータフレーム受信モジュールであって、各データストリームは1つのセンサに対応し、かつ前記データストリームにおけるデータフレームは生成タイムスタンプを携帯するデータフレーム受信モジュールと、各データフレームの生成タイムスタンプを補正し、補正タイムスタンプを得るために用いられるタイムスタンプ補正モジュールと、各データフレームの補正タイムスタンプ及び予め設定されたデータ送信周期に基づき、各データストリームから各データ送信周期において送信すべきデータフレームを決定するために用いられるデータフレーム整列モジュールと、を含む。
【0006】
本願は、第3の態様において、コンピューティングデバイスを提供し、1つ又は複数のプロセッサと、1つ又は複数のプログラムを記憶し、前記1つ又は複数のプログラムが前記1つ又は複数のプロセッサにより実行される場合、前記1つ又は複数のプロセッサに、本願に基づくセンサデータ処理方法を実現させるメモリと、を含む。
【0007】
本願は、第4の態様において、コンピュータ読み取り可能な記憶媒体を提供し、それにはプログラムが記憶されており、前記プログラムがプロセッサに実行される時に、本願に基づくセンサデータ処理方法を実現する。
【0008】
本願は、第4の態様において、車両を提供し、前述したコンピューティングデバイスを含む。
【発明の効果】
【0009】
本願の技術的解決手段に基づき、異なるセンサに一定の時間誤差、システムスケジューリングの影響及びデータストリーム処理プログラムの計算による遅延等がある場合、受信した各データストリームの生成タイムスタンプに基づいて複数のデータストリームを同一のトリガフレームに整列し、アルゴリズムモジュールに送信されたデータが同一時刻に収集されたものであるか又は同一時刻に収集されたデータを後処理して得られたものであることを保証し、アルゴリズムモジュールの計算の正確性を向上させる。
【図面の簡単な説明】
【0010】
本発明の実施例又は従来技術における技術的解決手段をより明確に説明するために、以下は実施例又は従来技術に対する説明における必要な図面を簡単に説明し、明らかに、当業者にとって、創造的な労働をしない前提で、これらの図面に基づいて他の図面を更に得ることができる。
【0011】
【
図1】本願の例示的な実施例に基づく車両100の概略図を示す。
【
図2】本願の例示的な実施例に基づくセンサデータ処理方法200のフローチャートを示す。
【
図3】本願の一例におけるデータバッファキューの概略図を示す。
【
図4】本願の一例におけるトリガフレームの異なるデータストリームでのマッピング関係の概略図を示す。
【
図5】(A)本願の一例における生成タイムスタンプの概略図を示し、(B)本願の一例における補正タイムスタンプの概略図を示す。
【
図6】(A)本願の一例におけるフレームロスやエラーフレーム及び高遅延検査の概略図を示し、(B)本願の別の例における高遅延検査の概略図を示す。
【
図7】本願の例示的な実施例におけるセンサデータ処理装置700の構造図を示す。
【
図8】本願の例示的な実施例に基づくコンピューティングデバイス800の構造図を示す。
【発明を実施するための形態】
【0012】
以下、図面を参照しながら本願の実施例における技術的解決手段を明瞭、完全に説明し、明らかに、説明された実施例は単に本発明の一部の実施例であり、全ての実施例ではない。本明細書における実施例に基づき、当業者は様々な変形及び変換を行うことができ、同等の方式で変換して得られた全ての技術的解決手段はいずれも本発明の保護範囲に属する。
【0013】
本願の実施例の技術的解決手段を明確に説明するために、本願の実施例において、「第1」、「第2」等の文字を用いて機能又は作用が基本的に同じである同一項目又は類似項目を区別し、当業者は「第1」、「第2」等の文字が数及び実行順序を限定しないと理解することができる。
【0014】
本明細書における用語「及び/又は」は、関連対象を説明する関連関係のみであり、3種類の関係が存在することを示し、例えば、A及び/又はBは、Aが単独で存在する場合と、AとBが同時に存在する場合と、Bが単独で存在する場合とを示すことができる。なお、本文において符号「/」は、一般的には、前後の関連対象が「又は」の関係であることを示す。
【0015】
本願の実施例はセンサデータ処理方法、装置、関連するコンピューティングデバイス、記憶媒体及び車両を提供し、同一時刻に生成されたデータを整列することができ、アルゴリズムモジュールに伝達されたデータの一致性を保証する。
【0016】
当業者が本開示をよりよく理解するために、以下、まず本開示の実施例に現れる一部の技術的用語を以下のように解釈する。
【0017】
センサ時間:センサのハードウェアに記録されたクロック源は、通常、衛星タイムサービス等の手段によってWall Time(すなわち現実時間t現実又は壁時計時間)と同期を保持し、両者の間の誤差は極めて小さい。
【0018】
サーバ時間:サーバのハードウェアに記録されたクロック源は、サーバのハードウェアにインストールされたソフトウェアに取得されてもよく、通常、衛星タイムサービス等の手段によってWall Time(すなわち現実時間又は壁時計時間)と同期を保持し、両者の間の誤差は極めて小さい。センサ時間はサーバ時間に等しいと考えてもよい。
【0019】
ハードトリガセンサ:センサ時間はあるクロック源と同期を保持し、両者の間の誤差は極めて小さく、固定されたデータ生成周波数(又はトリガ周波数と呼ばれる)を有し、実際の応用では一般的に50Hz、20Hz、10Hz等1秒で等分されることができる周波数である)であり、かつ1秒の開始時刻でデータを生成するセンサである。
【0020】
センサデータ:センサにより生成され、サーバ上のセンサドライバと合わせて取得したデータである。
【0021】
センサドライバ:非異常の場合に各フレームデータの生成タイムスタンプを得ることができ、かつセンサの信号を直接読み取ってセンサ時間を取得したり、サーバ時間を直接取得したり、又はあるアルゴリズムによって計算/スキュー取りを行って取得したりしても、該タイムスタンプと実際のデータとの生成時間誤差が極めて小さい。
【0022】
データストリーム:一連の連続し、フレームを単位とするデータである。
【0023】
データストリーム処理プログラム:1つの入力データストリームを受信し、各フレームを処理して1つの結果を生成し、該結果を新たなフレームとし、出力データストリームを生成するプログラムである。
【0024】
データタイムスタンプ:データの付加情報であり、あるクロック源を観測することによって生成する時間数値である。
【0025】
生成タイムスタンプ:センサデータに付帯するタイムスタンプで、通常、センサにより生成されかつセンサドライバにより取得され、センサドライバによりサーバ時間に基づいて直接生成されてもよい。該タイムスタンプは、データの生成時間と考えられ、トリガタイムスタンプと呼ばれることもある。
【0026】
補正タイムスタンプ:生成タイムスタンプを補正した後に取得したタイムスタンプである。
【0027】
到着タイムスタンプ:データがサーバに到着する時に観測した時間である。
【0028】
データ遅延:データフレームの到着タイムスタンプと生成タイムスタンプとの差である。データストリームにとって、遅延は不可避であり、一般的にデータ源(センサ、データストリーム処理プログラム)のデータ取得及び/又は計算時間、伝送時間、オペレーティングシステムスケジューリング等の要素の影響を受ける。
【0029】
トリガフレーム:1つの仮想フレームであって、各データ送信周期は該周期において送信すべきデータを1つのデータビッグフレームとしてアルゴリズムモジュールに伝達して計算し、該データ送信周期のある特定の時刻(例えば終了時刻又は開始時刻)も1つのアルゴリズムトリガ時刻であり、1つの仮想的なトリガフレームに対応する。
【0030】
図1は、その中に本願の様々な技術を実現することができる車両100の概略図である。車両100はセダン型自動車、トラック、オートバイ、バス、ボート、飛行機、ヘリコプター、芝刈り機、ショベルカー、スノーモービル、航空機、旅行カジュアル車、アミューズメントパーク車両、農場用装置、建設用装置、路面電車、ゴルフカート、列車、トロリーバス、又は他の車両であってもよい。車両100は完全に又は部分的に自動運転モードで運転することができる。車両100は、自動運転モードでその自身を制御することができ、例えば、車両100は車両の現在の状態及び車両が位置する環境の現在の状態を決定することができ、該環境における少なくとも1つの他の車両の予測行動を決定し、該少なくとも1つの他の車両が予測行動を実行する可能性に対応する信頼レベルを決定し、かつ決定された情報に基づいて車両100自身を制御する。自動運転モードにある場合、車両100は無人対話の状況で運転することができる。
【0031】
車両100は、様々な車両システム、例えば、駆動システム142、センサシステム144、制御システム146、ユーザインタフェースシステム148、制御コンピュータシステム150及び通信システム152を含むことができる。車両100は、より多くの又はより少ないシステムを含むことができ、各システムは複数のユニットを含むことができる。更に、車両100の各システム及びユニットの間は相互接続されてもよい。例えば、制御コンピュータシステム150はシステム142~148及び152のうちの1つ又は複数とデータ通信することができる。それによって、車両100の1つ又は複数の説明された機能は、追加の機能性コンポーネント又はエンティティコンポーネントに分割されるか、又はより少ない数の機能性コンポーネント又はエンティティコンポーネントに結合されてもよい。さらなる例では、追加の機能性コンポーネント又はエンティティコンポーネントは
図1に示される例に追加されてもよい。
【0032】
駆動システム142は車両100に運動エネルギーを提供する複数の操作可能なコンポネント(又はユニット)を含むことができる。一実施例において、駆動システム142は、エンジン又は電動機、車輪、変速機、電子システム及び動力(又は動力源)を含むことができる。エンジン又は電動機は、以下の装置、内燃機関、電気モータ、蒸気機関、燃料電池エンジン、プロパンエンジン、又は他の形態のエンジンもしくは電動機の任意の組み合わせであってもよい。いくつかの実施例において、エンジンは、1つの動力源を機械的エネルギーに変換することができる。いくつかの実施例において、駆動システム142は、複数種類のエンジン又は電動機を含んでもよい。例えば、ハイブリッド車両は、ガソリンエンジンと電動機とを含むものであってもよいし、その他のものを含むものであってもよい。
【0033】
車両100の車輪は標準的な車輪であってもよい。車両100の車輪は、一輪、二輪、三輪、又は四輪、例えばセダン型自動車又はトラックの四輪、を含む様々な形式の車輪とすることができる。他の数の車輪、例えば六輪以上の車輪も可能である。車両100の1つ又は複数の車輪は、他の車輪の回転方向とは異なるように操作されてもよい。車輪は、変速機に固定接続された少なくとも1つの車輪であってもよい。車輪は、金属とゴムとの組み合わせ、又は他の物質の組み合わせを含むことができる。変速機は、エンジンの機械的動力を車輪に伝達するように動作可能なユニットを含むことができる。この目的のために、変速機は、歯車箱、クラッチ、差動歯車及び伝動軸を含んでもよい。変速機は他のユニットも含んでもよい。伝動軸は、車輪とマッチングする1つ又は複数の輪軸を含んでもよい。電子システムは、車両100の電子信号を送信又は制御するためのユニットを含むことができる。これらの電子信号は、車両100における複数のランプ、複数のサーボ機構、複数の電動機及び他の電子駆動装置又は制御装置を作動させるために用いられることができる。動力源は、エンジン又は電動機に全体的又は部分的に動力を供給するエネルギーであってもよい。すなわち、エンジン又は電動機は、動力源を機械的エネルギーに変換することができる。例示的には、動力源は、ガソリン、石油、石油ベースの燃料、プロパン、他の圧縮ガス燃料、エタノール、燃料電池、ソーラーパネル、バッテリ及び他の電気エネルギーを含むことができる。動力源は、追加的又は代替的に、燃料タンク、バッテリ、コンデンサ又はフライホイールの任意の組み合わせを含んでもよい。動力源はまた、車両100の他のシステムにエネルギーを供給してもよい。
【0034】
センサシステム144は車両100の環境及び条件の情報を検知するための複数のセンサを含んでもよい。例えば、センサシステム144は、慣性測定ユニット(IMU)、全地球測位システム(GPS)トランシーバ、レーダ(RADAR)ユニット、レーザ距離計/LIDARユニット(又は他の距離測定装置)、音響センサ及びカメラ又は画像キャプチャ装置を含むことができる。センサシステム144は、車両100を監視するための複数のインダクタ(例えば、酸素(O2)モニタ、燃料残量計センサ、エンジン油圧センサ等)を含んでもよい。センサシステム144には他のセンサを配置してもよい。1つ又は複数のセンサの位置、向き又はその両方を更新するために、センサシステム144に含まれる1つ又は複数のセンサが個別に又は集合的に駆動されることができる。
【0035】
いくつかの実施例において、各センサは、ハードウェアトリガ又はソフトウェアトリガによってデータを収集し、異なるセンサは異なるトリガ周波数を有し、すなわち異なるデータ収集周波数を有し、それに対応して異なるデータ収集周期を有する。ハードウェアトリガに対して、トリガ源はNovatelから送信された秒パルス信号を利用してトリガ源信号とし、異なるセンサの必要なトリガ周波数に基づいて調整し、トリガ信号を生成して対応するセンサに送信し、それにより対応するセンサをトリガしてデータを収集させる。任意選択的に、カメラのトリガ周波数は20HZであり、LIDARのトリガ周波数は1HZ又は10HZであり、IMUのトリガ周波数は、100HZであり、当然のことながらこれらに限定されない。
【0036】
IMUは、センサの組み合わせ(例えば、加速器及びジャイロ)を含むことができ、慣性加速に基づいて車両100の位置変化及び方向変化を感知するために用いられる。GPSトランシーバは、車両100の地理的位置を推定するための任意のセンサであってもよい。この目的のために、GPSトランシーバは、地球に対する車両100の位置情報を提供するために、受信機/送信機を含むことができる。なお、GPSは全地球航法衛星システムの一例であり、そのため、いくつかの実施例において、GPSトランシーバは北斗衛星ナビゲーションシステムトランシーバ又はガリレオ衛星ナビゲーションシステムトランシーバに置き換えることができる。レーダユニットは、無線信号を用いて車両100が位置する環境内の対象を感知することができる。いくつかの実施例において、レーダユニットは、対象を感知することに加えて、車両100に接近する物体の速度及び進行方向を感知するために用いられることができる。レーザ距離計又はLIDARユニット(又は他の距離測定装置)は、レーザを用いて車両100が位置する環境内の物体を感知する任意のセンサであってもよい。一実施例において、レーザ距離計/LIDARユニットは、レーザ源、レーザスキャナー及び感知器を含むことができる。レーザ距離計/LIDARユニットは連続的な(例えばヘテロダイン検出を用いる)又は不連続的な検出モードで動作するために用いられる。カメラは車両100が位置する環境の複数の画像を取り込むための装置を含んでもよい。カメラは静止画像カメラ又は動的ビデオカメラであってもよい。
【0037】
制御システム146は、車両100及びそのコンポネント(又はユニット)の動作を制御するために用いられる。それに対応して、制御システム146は、例えばステアリングユニット、動力制御ユニット、制動ユニット及びナビゲーションユニット等の様々なユニットを含むことができる。
【0038】
ステアリングユニットは、車両100の進行方向を調整する機械の組み合わせであってもよい。動力制御ユニット(例えば、アクセルであってもよい)は、例えば、エンジンの運転速度、ひいては、車両100の速度を制御するために用いられてもよい。制動ユニットは、車両100を減速するための機械の組み合わせを含んでもよい。制動ユニットは、摩擦力を用いて標準的な方法で車両を減速させることができる。他の実施例において、制動ユニットは、車輪の運動エネルギーを電流に変換することができる。制動ユニットは、他の形態を採用してもよい。ナビゲーションユニットは、車両100の運転経路又は路線を決定する任意のシステムであってもよい。ナビゲーションユニットは、車両100の走行中に動的に運転経路を更新することもできる。制御システム146は、図示されない又は説明されない他のコンポネント(又はユニット)を追加的に又は代替的に含んでもよい。
【0039】
ユーザインタフェースシステム148は、車両100と外部センサ、他の車両、他のコンピュータシステム及び/又は車両100のユーザとの間のインタラクションを可能にするために用いられてもよい。例えば、ユーザインタフェースシステム148は、標準的な視覚表示装置(例えば、プラズマディスプレイ、液晶ディスプレイ(LCD)、タッチスクリーンディスプレイ、ヘッドマウントディスプレイ、又は他の同様のディスプレイ)、スピーカ又は他の音声出力装置、マイクロフォン又は他の音声入力装置を含むことができる。例えば、ユーザインタフェースシステム148は、ナビゲーションインタフェース及び車両100の内部環境(例えば、温度、ファン等)を制御するインタフェースを含んでもよい。
【0040】
通信システム152は、車両100に1つ又は複数の装置又は周囲の他の車両と通信する手段を提供することができる。例示的な一実施例において、通信システム152は、1つ又は複数の装置と直接又は通信ネットワークを介して通信することができる。通信システム152は、例えば無線通信システムであってもよい。例えば、通信システムは、3Gセルラ通信(例えば、CDMA、EVDO、GSM/GPRS)又は4Gセルラ通信(例えば、WiMAX又はLTE)を用いてもよいし、5Gセルラ通信を用いてもよい。任意選択的に、通信システムは、無線ローカルエリアネットワーク(WLAN)と通信(例えば、WIFI(登録商標)を用いる)してもよい。いくつかの実施例において、通信システム152は、例えば、赤外線、ブルートゥース(登録商標)、又はZIGBEEを用いて、1つ又は複数のデバイス又は周囲の他の車両と直接通信することができる。他の無線プロトコル、例えば様々な車載通信システムも、本願の開示範囲に属する。例えば、通信システムは、車両及び/又は路側局と公開又は秘密のデータ通信を行う1つ又は複数の専用狭域通信(DSRC)装置、V2V装置、又はV2X装置を含むことができる。
【0041】
制御コンピュータシステム150は、車両100の機能の一部又は全部を制御することができる。制御コンピュータシステム150における自動運転制御ユニットは、車両100が位置する環境内の潜在的な障害物を識別し、評価し、回避し、又は乗り越えるために用いられてもよい。一般的には、自動運転制御ユニットは、運転者がいない状況で車両100を制御するために、又は運転者が車両を制御するための支援を提供するために用いられてもよい。いくつかの実施例において、自動運転制御ユニットは、GPSトランシーバからのデータ、レーダデータ、LIDARデータ、カメラデータ及び他の車両システムからのデータを組み合わせて、車両100の走行経路又は軌跡を決定するために用いられる。車両100の自動運転モードでの運転を可能にするために自動運転制御ユニットは作動されることができる。
【0042】
制御コンピュータシステム150は、少なくとも1つのプロセッサ(それは少なくとも1つのマイクロプロセッサを含むことができる)を含むことができ、プロセッサは不揮発性コンピュータ読み取り可能な媒体(例えば、データ記憶装置又はメモリ)に記憶された処理命令(すなわち、機械実行可能な命令)を実行する。メモリには少なくとも1つの機械実行可能な命令が記憶され、プロセッサは少なくとも1つの機械実行可能な命令を実行して地図エンジン、測位モジュール、感知モジュール、ナビゲーション又は経路モジュール及び自動制御モジュール等を含む機能を実現する。地図エンジン及び測位モジュールは地図情報及び測位情報を提供するために用いられる。感知モジュールはセンサシステムが取得した情報及び地図エンジンが提供する地図情報に基づいて車両が位置する環境における物事を感知するために用いられる。ナビゲーション又は経路モジュールは地図エンジン、測位モジュール及び感知モジュールの処理結果に基づき、車両に走行経路を計画するために用いられる。自動制御モジュールはナビゲーション又は経路モジュール等のモジュールの意思決定情報入力を解析して車両制御システムに対する制御命令出力に変換し、かつ車載ネットワーク(例えばCANバス、ローカルエリアネットワーク、マルチメディア指向システム伝送等の方式で実現される車両内部電子ネットワークシステム)を介して制御命令を車両制御システムにおける対応するコンポーネントに送信し、車両に対する自動制御を実現し、自動制御モジュールは更に車載ネットワークによって車両における各コンポーネントの情報を取得することができる。
【0043】
制御コンピュータシステム150は複数のコンピューティング装置であってもよく、これらのコンピューティング装置は車両100のコンポーネント又はシステムを分散的に制御する。いくつかの実施例において、メモリは車両100の様々な機能を実現するためにプロセッサによって実行される処理命令(例えば、プログラムロジック)を含むことができる。一実施例において、制御コンピュータシステム150は、システム142、144、146、148及び/又は152とデータ通信することができる。制御コンピュータシステム内のインタフェースは、制御コンピュータシステム150とシステム142、144、146、148及び152との間のデータ通信を促進するために用いられる。
【0044】
メモリはまた、データ送信のための命令、データ受信のための命令、インタラクションのための命令、又は駆動システム142、センサシステム144、又は制御システム146、又はユーザインタフェースシステム148を制御するための命令を含む他の命令を含んでもよい。
【0045】
処理命令を記憶することに加えて、メモリは、画像処理パラメータ、道路地図及び経路情報等の様々な情報又はデータを記憶することができる。車両100が自動モード、半自動モード及び/又は手動モードで運転する間、これらの情報は車両100及び制御コンピュータシステム150に用いられることができる。
【0046】
自動運転制御ユニットはプロセッサ及びメモリとは別個に示されているが、いくつかの実施形態において、自動運転制御ユニットの機能の一部又は全部は、1つ又は複数のメモリ(又はデータ記憶装置)に常駐するプログラムコード命令によって実現されてもよくかつ1つ又は複数のプロセッサによって実行され、かつ自動運転制御ユニットは、場合によっては、同じプロセッサ及び/又はメモリ(又はデータ記憶装置)を用いて実現されてもよい。いくつかの実施形態において、自動運転制御ユニットは、様々な専用回路ロジック、様々なプロセッサ、様々なフィールドプログラマブルゲートアレイ(FPGA)、様々な特定用途向け集積回路(ASIC)、様々なリアルタイムコントローラ及びハードウェアを少なくとも部分的に用いて実現されることができる。
【0047】
制御コンピュータシステム150は、様々な車両システム(例えば、駆動システム142、センサシステム144及び制御システム146)から受信した入力、又はユーザインタフェースシステム148から受信した入力に従って、車両100の機能を制御することができる。例えば、制御コンピュータシステム150は、制御システム146からの入力を用いてステアリングユニットを制御することができ、それによってセンサシステム144に検出された障害物を回避する。一実施例において、制御コンピュータシステム150は、車両100及びそのシステムの複数の態様を制御するために用いることができる。
【0048】
図1には、車両100に集積された様々なコンポーネント(又はユニット)が示されているが、これらのコンポーネント(又はユニット)のうちの1つ又は複数は、車両100に搭載されてもよいし、車両100に個別に関連付けられてもよい。例えば、制御コンピュータシステムの一部又は全部は、車両100から独立して存在してもよい。したがって、車両100は分離の又は集積の装置ユニットの形態で存在することができる。車両105を構成するデバイスユニット間の相互通信は、有線通信又は無線通信の方式で実現されることができる。いくつかの実施例において、追加のコンポーネント又はユニットを個々のシステムに追加してもよく、又はシステムから1つ又は複数のコンポーネント又はユニットを除去してもよい(例えば、
図1に示されるLiDAR又はレーダ)。
【0049】
前述したように、マルチセンサ融合を実現するために、複数の異なる入力データストリームを整列する方法を提供する必要があり、整列された複数のデータストリームは1つのデータ組み合わせとすることができる。そのうちの1つの方法はある入力データストリームをメインデータストリームとし、他のデータストリームを補助データストリームとし、メインデータストリームが1フレームに到着する時、全ての補助データストリームにおけるデータタイムスタンプとメインデータストリームの新たに到着するデータタイムスタンプとが最も近い1フレームを見つけ、1つのデータ組み合わせとする。ただし、データストリーム間の遅延が一致しないため、ある遅延が大きいデータストリームが取得したデータはいずれも早い時刻で生成されたデータであることを引き起こす可能性がある。
【0050】
他の方法は異なるデータストリームの到着時刻を正確にマッチングし、異なるデータストリームにおける到着タイムスタンプが一致するデータを1つのデータ組み合わせとする。ただし、センサ内部のクロック源誤差、センサトリガ時刻の誤差、センサドライバ、ソフトウェアシステムスケジューリング等の様々な影響要因により、到着タイムスタンプに基づいてデータタイムスタンプを一致させることが難しく、誤差が大きい。また、センサハードウェアレベルからの最適化の難しさが比較的大きく、かつエラーを報告する感度が低い可能性がある場合、システムが不安定な状況でも最大遅延を制御することができることを保証することは困難である。
【0051】
このため、本願は、各センサデータの生成タイムスタンプに基づいてデータ整列を行う手段を提供し、同一時刻に生成されたデータをデータ組み合わせとしてアルゴリズムモジュールに伝達して計算を行う。
図2は、本願の例示的な実施例に基づくセンサデータ処理方法200のフローチャートである。
図2に示すように、該方法200は、ステップ202~206を含む。
【0052】
ステップ202において、処理対象の複数のデータストリームを受信し、各データストリームは1つのセンサに対応し、かつデータストリームにおけるデータフレームは生成タイムスタンプを携帯し、
ステップ204において、各データフレームの生成タイムスタンプを補正し、補正タイムスタンプを得て、
ステップ206において、各データフレームの補正タイムスタンプ及び予め設定されたデータ送信周期に基づき、各データストリームから各データ送信周期において送信すべきデータフレームを決定する。
【0053】
いくつかの実施例において、複数のデータストリームは、センサによって収集されたローデータストリーム、ローデータストリームを計算した後に得られた後処理データストリームのうちの少なくとも1つを含む。すなわち、複数のデータストリームは、少なくとも1つのローデータストリームと少なくとも1つの後処理データストリームのうちの少なくとも1つを含む。
【0054】
そのうち、ローデータストリームはハードトリガセンサから由来し、センサドライバにより生成され、かつ各ローデータストリームにおけるデータフレームはいずれも該データフレームが生成される時のタイムスタンプ、すなわち生成タイムスタンプを携帯する。後処理データストリームはローデータストリームを入力データストリームとするデータストリーム処理プログラムによって生成されたデータストリームを含み、また後処理データストリームを入力データストリームとするデータストリーム処理プログラムによって生成されたデータストリームを含む。すなわち、ローデータストリームに対して1回又は複数回の処理を行った後に得られたデータストリームはいずれも後処理データストリームである。
【0055】
データストリーム処理プログラムは入力データストリームのセンサデータタイムスタンプを保留し、かつ自身の出力フレームに表し、そのため後処理データストリームには対応するローデータストリームの生成タイムスタンプを携帯する。ローデータストリームのデータフレームはローデータフレームであり、後処理データストリームのデータフレームは後処理データフレームである場合、各後処理データフレームは対応するローデータフレームの生成タイムスタンプを携帯する。
【0056】
いくつかの実施例において、ステップS202では、処理対象の複数のデータストリームを受信するステップは、データを一時記憶するために、データバッファ領域に各データストリームに対応するバッファキューを設置するステップと、各データストリームにおける各データフレームの生成タイムスタンプに基づき、各データフレームを対応するバッファキューに記憶するステップと、を含む。
【0057】
図3は本願の例示的な実施例に基づく異なる入力データストリームのバッファキューの概略図である。各データストリームは対応するデータ収集周期(又はデータ生成周期又はセンサトリガ周期)及びバッファキューを有し、例えばデータストリーム1のセンサトリガ周波数は50HZであり、対応するデータ収集周期は20msであり、データストリーム2のセンサトリガ周波数は20HZであり、対応するデータ収集周期は50msであり、データストリームnのセンサトリガ周波数は10HZであり、対応するデータ収集周期は100msである。
【0058】
いくつかの実施例において、データバッファ領域はサーバ時間に基づく1つのタイムラインを有し、いずれかのデータストリームにデータが入った場合、バッファ領域はそのセンサトリガタイムスタンプを基準として、バッファキューにおけるハードトリガタイムスタンプに対応するタイムライン位置に配置され、データに対する一時記憶を実現する。
【0059】
また、入力データストリームはハードトリガ特性を有するため、複数のデータストリームは所定周期(例えば1s)ごとに1回のデータを同時に生成し、そのため複数のデータストリームは所定周期ごとに1回自動的に整列する。以上から分かるように、タイムラインの0時刻(すなわち1秒の開始位置)において、各バッファキューは1つのデータ点を有し、かつ各バッファキューにおけるデータ点はいずれも等間隔である。
【0060】
いくつかの実施例において、各データフレームは、1つのフレーム識別(すなわち、フレームID)を有し、各フレーム識別は、唯一の対応する生成タイムスタンプを有する。これらの生成タイムスタンプ及びフレーム識別を有するデータフレームはそれぞれ各データストリームに対応するバッファキューに記憶される。コンピューティングデバイスは各データフレームの生成タイムスタンプに基づいて同一のトリガフレームに整列する必要があるフレーム識別を決定し、決定されたフレーム識別に基づいてバッファキューに対応するデータフレームを問い合わせ、かつこれらのデータフレームを1つのトリガフレームに組み合わせ、アルゴリズムモジュールに送信する。いくつかの実施例において、コンピューティングデバイスは、サーバ時間に基づくタイムラインを維持し、かつ各データフレームの生成タイムスタンプに基づいて整列される必要がある各データストリーム内のフレームIDを決定する。
【0061】
いくつかの実施例において、ステップS204では、各データフレームの生成タイムスタンプを補正することは、各データストリームの許容誤差に基づいて該データストリームにおける各データフレームの生成タイムスタンプをそれに最も近い整数タイムスタンプに補正し、例えば、生成タイムスタンプが17msであれば、それを20msに補正することを含む。一般的には、新たなデータフレームがバッファ領域へ入れば、該新たなデータに対してデータ整列アルゴリズムを実行することができ、かつアルゴリズムモジュールが計算を実行する時に整列アルゴリズムの実行を一時停止することができ、それによってリソースを節約しかつリアルタイム性を保証する。また、2つのデータフレームの生成タイムスタンプが同じ整数タイムスタンプに補正されば、最初に到着したデータフレームを保留し、又は生成タイムスタンプが整数タイムスタンプに近いデータフレームのみを保留する。
【0062】
好ましくは、許容誤差がt誤差であり、あるデータフレームの生成タイムスタンプがt生成であれば、該データフレームの補正タイムスタンプt補正=└t生成/t誤差+a┘×t誤差である。ここで、「└┘」はインテジャを表し、aは予め設定された定数であり、例えば0.5であり、当然のことながらこれに限定されない。各データストリームの許容誤差は該データストリームのデータ収集周期の係数でありかつ該データ収集周期Tの1/2より小さく、すなわちt誤差<T/2である。例えば、10Hzのデータストリームの場合、そのデータ収集周期が100msであれば、t誤差は、5ms、10ms、20ms等の値に設定することができる。aがbの係数であることはaをbで割ることができることを表すことが理解される。
【0063】
いくつかの実施例において、ステップ206では、各データストリームから各データ送信周期において送信すべきデータフレームを決定することは、
いずれかのデータストリームに対して、該データストリームにおける現在のデータ送信周期に対応するターゲットタイムスタンプを決定するステップと、該データストリームのあるデータフレームの補正タイムスタンプがターゲットタイムスタンプとマッチングすれば、該データフレームを該データストリームが現在のデータ送信周期において送信すべきデータフレームと決定するステップと、該データストリームに補正タイムスタンプが前記ターゲットタイムスタンプとマッチングするデータフレームが存在しない場合、該データストリームは現在のデータ送信周期において送信しようとするデータフレームがないと決定するステップと、を含む。
【0064】
ここで、データ送信周期は1つのデータを組み合わせてアルゴリズムモジュールに送信する周期であり、各周期の終了時刻又は開始時刻に整列されたデータを組み合わせ、かつアルゴリズムモジュールに伝達して計算し、該終了時刻は1つの仮想的なトリガフレームに対応し、本願の目的の1つは異なるデータストリームにおける同一のトリガフレームに対応するデータフレームを決定し、これらのデータフレームを1つのデータビッグフレームとして、アルゴリズムモジュールに伝達して計算することである。例えばユーザは20Hzの周波数でモジュールアルゴリズムをトリガすることを期待すれば、タイムラインの0ms、50ms、100ms、150ms等の位置にそれぞれ1つのトリガフレームがある。異なるデータストリームのデータ収集周期が一致しないことを考慮し、そのためあるデータストリームの同一のデータフレームは1つ又は複数のトリガフレームに対応する可能性がある。例えば
図4のトリガフレームは異なるデータストリームのマッピング関係において、バッファキュー3における1つ目のデータフレームはトリガフレーム1にマッピングされ、またトリガフレーム2にマッピングされる。
【0065】
1つの実現形態において、該データストリームにおける現在のデータ送信周期に対応するターゲットタイムスタンプを決定することは、
該データストリームに対応するセンサのデータ収集周期に基づき、該データストリームの所期のタイムスタンプシーケンスを決定するステップと、所期のタイムスタンプシーケンスから現在のデータ送信周期に対応するターゲットタイムスタンプを選択するステップと、を含む。
【0066】
更に、所期のタイムスタンプシーケンスから現在のデータ送信周期に対応するターゲットタイムスタンプを選択することは、
所期のタイムスタンプシーケンスから少なくとも1つの候補タイムスタンプを選択し、かつ少なくとも1つの候補タイムスタンプのうちの最大値をターゲットタイムスタンプとするステップを含む。そのうち、候補タイムスタンプは現在のデータ送信周期の終了時刻より遅くなく、該終了時刻はすなわちトリガフレームのタイムスタンプである。
【0067】
現在のデータストリームの周波数がfであれば、そのデータ収集周期がT=1/fであるとすると、所期のタイムスタンプシーケンスはL={k・T,turnedAk∈N}であり、ここで、Nは自然数の集合である。例えば、データ収集周期が20msである場合、所期のタイムスタンプシーケンスは、0ms、20ms、40ms、60ms、……、等である。
【0068】
該データストリームのデータ送信周期の終了時刻をt終了とすると、候補タイムスタンプはt終了以下のタイムスタンプであり、ターゲットタイムスタンプ=max{t,t∈L ∩t≦t終了}である。トリガフレームのタイムスタンプを60msとすると、所期のタイムスタンプシーケンスから決定された候補タイムスタンプは0ms、20ms、40ms、60msであり、該候補タイムスタンプの最大値は60msであり、すなわちターゲットタイムスタンプである。
【0069】
いくつかの実施例において、あるデータフレームの補正タイムスタンプがターゲットタイムスタンプとマッチングすることは、該データフレームの補正タイムスタンプがターゲットタイムスタンプに等しいか又はそれに近いことを意味する。両者が等しい場合、該データフレームと対応するトリガフレームとのマッピング関係を構築する。本願は、各データ送信周期における各データストリームが送信すべきデータフレームを決定し、あるデータストリームが現在のデータ送信周期において送信すべきデータフレームを決定すると、該データフレームと現在のトリガフレームとのマッピング関係を構築する。パラメータの設定が合理的で、データストリームの伝送が正確である場合、データストリームに新たなデータが絶えず入力されることに伴い、1つのトリガフレームは徐々に各データストリームにおけるあるデータフレームとマッピング関係を生成する。
【0070】
いくつかの実施例において、複数のセンサは所定の周期ごとに1回のデータフレームを同時に生成し、そのためステップS206では、各データストリームから各データ送信周期において送信すべきデータフレームを決定することは、
いずれかのデータストリームに対して、該データストリームにおける現在のデータフレームと現在の所定周期の開始データフレームとの補正タイムスタンプ差を計算するステップと、該補正タイムスタンプ差と該データストリームのデータ収集周期との比が非整数であれば、該データフレームが該データストリームのエラーフレームであると決定し、かつ該エラーフレームを廃棄するステップと、を含む。例えば、あるトリガ周波数が10Hzのハードトリガデータストリームは、補正タイムスタンプが370msである1フレームのデータを生成し、370msは100msの整数倍ではなく、すなわち370ms位置のデータがエラーフレームであると判定することができる。
【0071】
いくつかの実施例において、ステップS206では、各データストリームから各データ送信周期において送信すべきデータフレームを決定することは、
いずれかのデータストリームに対して、該データストリームにおける現在のデータフレームと前のデータフレームとの補正タイムスタンプ差を計算するステップと、該補正タイムスタンプ差と該データストリームのデータ収集周期との比mを計算するステップと、mが非整数であれば、該データフレームが該データストリームにおけるエラーフレームであると決定し、かつ該エラーフレームを廃棄するステップと、mが1でない整数(すなわち2以上の整数)であれば、現在のデータフレームと前のデータフレームとの間でm-1フレームをロスしたと判定するステップと、を含む。
【0072】
任意選択的に、現在の所定周期は各1s周期であり、あるデータストリームに対して、現在のデータフレームの補正タイムスタンプと現在の1s周期の開始時刻(又は開始フレームの補正タイムスタンプ)との差Δt1を計算し、Δt1/Tが非整数であれば、該データフレームはエラーフレームである。また例えば、前後2フレームの補正タイムスタンプの差Δt2を計算し、Δt2/Tが非整数であれば、該データフレームはエラーフレームである。Δt2/Tが1でない整数であれば、その前後の両フレームにおいてΔt2/T-1フレームをロスし、対応するターゲットタイムスタンプの位置はフレームロスと判定することができる。
【0073】
例えば、データ収集周期は20msであるが、前のフレームの補正タイムスタンプは20msであり、現在のフレームの補正タイムスタンプは80msであり、この2つのフレームの間に2フレームをロスすると判定し、かつ40ms、60msの位置はフレームロスと判定する。又は1つの10Hzのハードトリガデータストリームに対して、その所期の時間差は100msであるが、データ補正フローを経て、前後2フレームの時間差が160msであれば、前後2フレームのうちの1フレームはエラーフレームである。データフレームは時間順に整列していると考えられるため、一般的には、後のフレームはエラーフレームであると考えられる。
【0074】
フレームロスの発生シーンは、センサがデータを生成しないこと、センサドライバがデータ取得に失敗すること、データストリーム処理プログラムの計算異常等を含むがこれらに限定されない。本願のフレームロス検査システムはタイムスタンプ補正の基礎で構築され、このように「ほぼ等しい」状況の発生を回避することができ、前後2フレームの時間差と所期の時間差との比が1でない整数倍であるか否かのみを判断すればよい。
【0075】
いくつかの実施形態において、現在のデータストリームのフレームロスを判定した後、方法200は更に以下の少なくとも1つのステップを含むことができ、それによりシステムはフレームロスをタイムリーに感知し、かつタイムリーに処理することができる。
【0076】
1)外部に現在のデータストリームの異常を報告し、
2)フレームロスが発生した時刻に対応するトリガフレームをロスフレームとマークし、後続の操作は該トリガフレームを考慮せず、
3)下流のアルゴリズムモジュールにフレームロスが発生する具体的な時間を知らせる。
【0077】
エラーフレームが発生するシーンは、センサ時間に異常が発生すること、サーバ時間に異常が発生すること、タイムサービスシステムに異常が発生すること、センサドライバのデータ取得異常、データストリーム処理プログラムの計算異常等を含むがこれらに限定されず、それはハードトリガ特性を有するデータストリームにおいて、前後2フレームのタイムスタンプの差が補正アルゴリズムによって所期の時間差(周波数の逆数)の整数倍に補正することができないと表現する。本願のエラーフレーム検査システムは同様にタイムスタンプ補正の基礎で構築され、前後2フレームの時間差が所期の時間差と比べて非整数倍であるか否かのみを判断すればよい。
【0078】
いくつかの実施形態において、現在のデータストリームにエラーフレームが発生したと判定した後、方法200は更に以下の少なくとも1つのステップを含むことができ、システムの運転安全を確保する。
【0079】
1)外部に現在のデータストリームの異常を報告し、
2)下流のアルゴリズムモジュールに該データストリームにエラーが発生し始まる可能性があることを知らせ、
3)エラーがある程度まで累積した後、バックアップシステムに切り替え又は安全動作を実行する。
【0080】
いくつかの実施例において、ステップS206では、各データストリームから各データ送信周期において送信すべきデータフレームを決定することは、
あるデータストリームにおけるターゲットタイムスタンプに対応する位置がフレームロスと判定されると(すなわちターゲットタイムスタンプでフレームドロップが発生することに応答する)、該データストリームが現在のデータ送信周期において送信しようとするデータフレームがないと決定するステップと、
ターゲットタイムスタンプから開始する所定期間内に、あるデータストリームの新たなデータフレームを受信しなければ、該データストリームがタイムアウトであり、かつ該データストリームが現在のデータ送信周期において送信しようとするデータがないと判定するステップと、を含む。
【0081】
いくつかの実施例において、あるタイムスタンプ位置がフレームロス、エラーフレーム又はタイムアウトと判定されると(すなわちあるタイムスタンプでフレームロス、エラーフレーム又はタイムアウトが発生することに応答する)、該タイムスタンプをフレームロス、エラーフレーム又はタイムアウトとマークすることができる。エラーフレームは直接廃棄することができ、あるターゲットタイムスタンプ位置がフレームロス又はタイムアウトとマークされると、現在のトリガフレームが該データストリームとマッピングを構築することができないことを表し、すなわち現在のデータ送信周期において送信しようとするデータがない。また、1つのトリガフレームに対して、マッピング関係を構築したデータストリームは「マッピング構築済み」とマークすることができ、データフレームのタイムアウトに対応するデータストリームは「タイムアウト」とマークすることができ、データフレームのフレームロスに対応するデータストリームは「フレームロス」とマークすることができる。該トリガフレームに対応する全てのデータストリームにいずれもマーク状態(「マッピング構築済み」、「タイムアウト」及び「フレームロス」を含む)が既にあると、該トリガフレームのマッピングが完了し、該トリガフレームが完全であり及び該データ送信周期のデータフレームが完全であることを表し、ただし、あるデータストリームにおいて空きフレームにマッピングする可能性がある。続いてマッピングが構築されたデータフレームを1つのビッグフレームとしてアルゴリズムモジュールに伝達することができる。
【0082】
いくつかの実施例において、所定期間は予め設定された許容遅延であってもよく、1つのグローバル許容遅延を設定してもよく、各データストリームに対応する許容遅延を個別に設定してもよく、本願はこれを限定しない。各不完全なトリガフレームに対して、データフレームに到着しない所期のタイムスタンプを計算し、現在のシステム時間と該所期のタイムスタンプとの差が設定された許容誤差より大きいと、対応するデータストリームがタイムアウトであり、かつ該データストリームが現在のデータ送信周期において送信しようとするデータがないと判定し、そうでなければ、該所期のデータフレームの到着を待ち続ける。
【0083】
理解されるように、いくつかのセンサ融合アルゴリズムにおいて、リアルタイム性を確保してデータロスを許容する必要がある状況が時々発生する可能性がある。例えば複数のセンサの物体追跡結果を融合して道路状況モデリングを行う1つのアルゴリズムは、それが複数のデータストリームからの入力を受信し、時にはあるデータストリームの入力を欠けてもアルゴリズムの正常な実行に影響を与えない。かつ、データフレーム整列アルゴリズムの実行フローによれば、最終的に生成されたビッグデータフレームの遅延時間は全てのデータストリームの遅延最大値であり、そのためあるデータストリームに異常が発生し、例えば遅延が高すぎ、データを生成しない等の現象が発生する場合、整列アルゴリズムの遅延が高すぎてひいては動作を停止することを引き起こす。
【0084】
そのため、本願はデータ整列システム以外に1つの遅延検査システムを追加し、両者の間は独立して動作しかつ通信を行うことができる。遅延検査システムは絶えず循環実行し、タイマ又は遅延トリガ等のメカニズムを用いてデータストリームのタイムアウト状態に対する定期検査を実現することができる。
【0085】
一実施形態において、タイマを設定して所定の周期ごとにデータストリームのタイムアウトがあるか否かを検査する。
【0086】
別の実現形態において、上記各データストリームに配置された許容遅延、現在のサーバの観測時間及びデータフレームのマッピング状況を結合し、不完全なトリガフレームのために1つのグローバル最遅時刻を計算し、この時刻の前にいずれかの新たなデータフレームを受信しないと、データのタイムアウトを判定することができる。
【0087】
具体的には、システムにおける最初のデータフレームが不完全なデータ送信周期(又は最初の不完全なトリガフレーム)に対して、各データストリームの所期のタイムスタンプ、許容遅延及びサーバにより観測された現実時間(システム時間とも呼ばれる)に基づき、1つのグローバル最遅時刻を算出する。グローバル最遅時刻の前に待つ各データストリームにいずれも新たなデータフレームが到着しないと、待つデータストリームがタイムアウトであると判定し、該データ送信周期はこれらのデータストリームにおいて空きフレームにマッピングされ、現在のトリガフレームは一部のデータフレームがタイムアウトした完全なトリガフレームである。グローバル最遅時刻の前にある又は複数の待ちデータストリームに1フレームの新たなデータが到着すると、整列アルゴリズムに基づいて該新たなデータフレームの補正タイムスタンプを計算し、整列アルゴリズムを再実行し、かつまだ到着していないデータフレームがあるか否かに基づいてグローバル最遅時刻を更新する必要があるか否かを判断する。
【0088】
ここで、各データ送信周期に対して、それは待たれた各データストリームにおいて1つの対応するローカル最遅時刻を有し、あるデータ送信周期はデータストリームkにおけるローカル最遅時刻tk,ローカルは所期のデータフレームの所期タイムスタンプtk,所期に該データストリームの許容遅延tk,遅延を加え、すなわちtk,ローカル=tk,所期+tk,遅延である。該データ送信周期のグローバル最遅時刻は、各到着していないデータストリームのローカル最遅時刻の最大値、すなわちtグローバル=max{tk,ローカル,turnedAk∈S未到着}=max{tk,所期+tk,遅延,turnedAk∈S未到着}であり、そのうち、S未到着は全ての到着していないデータフレームのデータストリームの集合である。
【0089】
例えば、現在のデータ送信周期がデータストリーム2及び3におけるデータフレームが到着していないとすると、該データ送信周期がデータストリーム4における所期のタイムスタンプが30msであり、許容遅延が20msである場合、該データ送信周期がデータストリーム4におけるローカル最遅時刻は50msである。該データ送信周期がデータストリーム5における所期のタイムスタンプが60msであり、許容遅延が30msである場合、該データ送信周期がデータストリーム5におけるローカル最遅時刻は90msである。したがって、該データ送信周期のグローバル最遅時刻は、2つのローカル最遅時刻の最大値、すなわち90msである。
【0090】
いくつかの実施例において、高遅延検査の現在のシステム時間において、システムは、「グローバル最遅時刻の到着」又は「待たれた新たなデータフレームの到着」のいずれかのイベントの発生を待つだけでよい。発生したイベントが「グローバル最遅時刻の到着」であれば、全ての到着していないデータフレームをいずれもタイムアウトに直接マークし、発生したイベントが「待たれた新たなデータフレームの到着」であれば、整列アルゴリズムを再実行し、該新たなデータフレームの補正タイムスタンプを計算し、該新たなデータフレームが該トリガフレームにマッピングすることができるか否かを判断する。また、現在のデータ送信周期にはまだ到着していないデータフレームがあるか否か(すなわち現在のトリガフレームにはまだマッピングされていないデータストリームがあるか否か)を判断する。まだ到着していないデータフレームがある場合、該トリガフレームがまだ完全でないことを表し、該データ送信周期のデータフレームが完全であるまで、該所期のデータフレームの所期のタイムスタンプ及び対応するデータストリームの許容遅延に基づいてグローバル最遅時刻を更新し続ける必要がある。
【0091】
更に別の実現形態において、あるトリガフレームが他の複数のデータストリームにおいていずれもマッピングを構築すると、高遅延検査アルゴリズムを起動して該トリガフレームが残りのデータストリームにおいてタイムアウトであるか否かを検査することができる。好ましくは、あるトリガフレームが他のデータストリームにおいていずれもマッピングを構築すると、高遅延検査アルゴリズムを起動して該トリガフレームが最後の1つのデータストリームにおいてタイムアウトであるか否かを検査することができる。
【0092】
検査が完了した後、あるトリガフレームに対して、全てのデータストリームの状態がいずれも「マッピングが構築された」又は「タイムアウトにマークされた」状態であると発見すると、該トリガフレームは空きデータを含む完全なトリガフレームであると考えられる。遅延検査によって整列アルゴリズムの最大遅延を許容遅延以内に制御することができ、単一のデータストリームの遅延が高すぎることによるシステムの動作異常等の問題を回避する。
【0093】
また、トリガフレームの完全性判断について、1つの実現形態において、現在のトリガフレーム(又は現在のデータ送信周期)と全てのデータストリームがいずれもマッピング関係を生成する場合、該トリガフレームが完全であると考えられ、逆にあるデータストリームがマッピング関係を生成しない場合、該トリガフレームが不完全であると考えられ、このような形態は主にデータの完全度に対する要求が比較的高いアルゴリズムモジュールに対するものである。別の実現形態において、各トリガフレームに対して、送信しようとするデータがないデータストリームを排除し、残りのデータストリームにいずれも対応するデータフレームが決定される(いずれもマッピング関係が構築される)と、該トリガフレームが完全であると決定し、又は空きデータを含有する完全なトリガフレームと呼ばれる。この形態は主にデータ完全度に対する要求が低いアルゴリズムモジュールに対するものである。
【0094】
したがって、本願は、アルゴリズムモジュールに伝達された計算精度要求に基づいてトリガフレームの判定要求を決定することができ、要求が高いアルゴリズムモジュールに対して各データストリームがいずれもマッピングされてからアルゴリズムモジュールに伝達しなければならず、要求が低いアルゴリズムモジュールに対してデータフレームを送信しようとするデータストリームにマッピング関係を構築すればよい。
【0095】
例えば、
図4におけるトリガフレーム1及びトリガフレーム2は3つのバッファキューにおいていずれも対応するデータフレームがあり、完全なトリガフレームと考えられ、トリガフレーム3はバッファキュー1におけるデータフレームのみとマッピング関係を構築し、しかしながらバッファキュー3が遅延検出アルゴリズムにマークされてタイムアウトしない場合、トリガフレーム3は空きデータを含有する完全なトリガフレームと考えられる。トリガフレーム4はいずれのバッファキューとマッピング関係を構築せず、不完全なトリガフレームと考えられる。トリガフレーム4がバッファキュー2とバッファキュー3における対応するターゲットタイムスタンプ位置においてフレームロス又はタイムアウトであると、該データストリームにおいて送信しようとするデータフレームがないと決定し、このときトリガフレーム4は空きデータを含有する完全なトリガフレームと考えてもよい。
【0096】
いくつかの実施例において、ステップS206の後、決定された各データ送信周期において送信すべきデータフレームを組み合わせとして、アルゴリズムモジュールに伝達して計算するステップを、更に含むことができる。ここで、データをアルゴリズムモジュールに送信して計算してもよく、アルゴリズムモジュールによってデータを読み取ってもよく、本願はこれを限定しない。
【0097】
本願の技術的解決手段に基づき、ハードトリガ特性を有するデータストリームを整列し、同じハードトリガタイムスタンプを有するデータフレームを1つのビッグフレームに組み合わせ、アルゴリズムモジュールに伝達して計算することができ、かつ誤差に対して一定の許容程度を有すると同時に、データの正確性を確保する。かつ、本願は、データストリームに異常が発生する時に、ハードトリガのタイムスタンプに誤りがあること、フレームロスが発生すること、データ遅延が高いこと等を含むがこれらに限定されず、異常をタイムリーに発見しかつ応答することができ、システムのリアルタイム性と安全性を確保する。
【0098】
以下は依然としてシステムに存在する3つのデータストリームを例として、本願のデータ解決手段を詳述する。
【0099】
データストリーム1はハードトリガセンサが生成したローデータストリームであり、そのセンサ時間とサーバ時間との誤差が極めて小さく、ハードウェアトリガ周波数f1=50Hzであり、すなわちデータ収集周期は20msである。センサドライバは各フレームデータの生成時間を正確に取得することができ、エラーが発生しない。遅延は約10msであり、2msの狭い範囲で変動する。データロスが発生する可能性がある。
【0100】
データストリーム2はハードトリガセンサが生成したローデータストリームであり、そのセンサ時間とサーバ時間との誤差が極めて小さく、センサドライバは各フレームデータの生成時間を正確に取得することができ、エラーが発生せず、ハードウェアトリガ周波数f2=20Hzであり、すなわちデータ収集周期は50msであり、いくつかの原因により、該センサは個別のタイムスタンプ偏差が大きいデータを生成する可能性があるが、全体は依然として安定しており、その遅延は約40msであり、10msの範囲で変動する。
【0101】
データストリーム3はデータストリーム処理プログラムによって生成される後処理データストリームであり、ハードウェアトリガ周波数f3=10Hzであり、すなわちデータ収集周期は100msであり、その遅延は不安定で、10msまで低くなる可能性があり、500msまで高くなる可能性もある。
【0102】
グローバル許容誤差t
誤差=10ms、データ送信周期(すなわちアルゴリズムモジュールトリガ周期)を50msと設定する。
図5(A)において異なるデータストリームの生成タイムスタンプの概略図を示し、データストリームの3つのデータフレームの生成タイムスタンプはそれぞれ0ms、19ms、43msであり、t
補正=└t
生成/t
誤差+0.5┘×t
誤差に代入し、得られる対応する補正タイムスタンプは0ms、20ms及び40msである。データストリーム2の2つのデータフレームの生成タイムスタンプは4ms、49msであり、対応する補正タイムスタンプは0ms、50msである。各データストリームの補正後のタイムスタンプを
図5(B)に示す。
【0103】
2番目のデータ送信周期(すなわちトリガフレーム2)に対して、データストリーム2において対応する所期のタイムスタンプシーケンスはL={0ms,50ms,100ms,…}であり、そのため候補タイムスタンプは{0ms,50ms}であり、ターゲットタイムスタンプはmax{0ms,50ms}=50msである。データストリーム2に補正タイムスタンプも50msであるデータフレームが1つあり、すなわち2番目のデータフレームであり、したがって、該データフレームとトリガフレーム2とのマッピング関係を構築する。
【0104】
図6(A)は本願のフレームロスやエラーフレーム及び高遅延検査の概略図であり、そのうちデータストリーム1は60msと100msの位置に前後2フレームのデータがあり、100ms-60ms=40ms=2*20msであり、したがって、この2フレームの間に1フレームがロスされ、フレームロス位置は80msのところである。データストリーム2におけるタイムスタンプが70msのフレームであり、前後2つのフレームの時間差が70ms-50ms=20ms=0.4×50msであり、0.4が非整数倍であるため、該フレームがエラーフレームであると判定する。
【0105】
いくつかの実施例において、システムの所在時刻が181msであるとすると、高遅延検査の実行を開始する。トリガフレーム3は、バッファキュー1とバッファキュー2において、100ms位置のデータマッピングを完了したことが知られているため、高遅延検査アルゴリズムは、バッファキュー3の遅延状況の検査を直接開始する。データストリーム3のデータ収集周期によって所期のタイムスタンプが100msであり、許容遅延が80msであり、181ms-100ms>80msであると計算され、それによりトリガフレーム3に対応するバッファキュー3をタイムアウトとマークする。この時、トリガフレーム3は全てのバッファキューのデータがいずれも「マッピング完了」又は「タイムアウト」状態にあり、それによりトリガフレーム3は1つの完全なトリガフレームになる。
【0106】
他の実施例において、サーバ観測の現実時間t現実が130msであるとすると、システムにおける最初の不完全なトリガフレームはトリガフレーム3であり、該トリガフレームはバッファキュー1及び2の100ms位置でのデータフレームが既に到着し、バッファキュー3の100ms位置に1フレームのデータがあると予想されるが、該データフレームは現在到着していない。この時に最も遅い時刻tグローバル=max{tk,所期+tk,遅延,turnedAk∈S未到着}を計算し、S未到着はデータストリーム3のみであり、該データストリームのローカル最遅時刻は180msであり、すなわち現在のシステムの高遅延検査の最も遅い時刻である。180msで待っているデータフレームが到着していないとすると、該データフレームをタイムアウトとマークする。高遅延検査システムの待ち時間を計算してtグローバル-t現実=180ms-130ms=50msであり、待ち期間において、データストリーム3には新たなデータフレームが到着しないと、待ち位置におけるデータフレームをいずれもタイムアウトとマークし、このときトリガフレーム3は全てのバッファキューにおけるデータがいずれもマーク状態を有し、したがって、タイムアウトデータを含む完全なトリガフレームであり、アルゴリズムモジュールに伝達して計算する。待たれたデータストリームに新たなデータフレームが到着すると、該新たに到着するデータフレームが該トリガフレームにマッピングすることができるか否かを判断し、できれば、該トリガフレームが完全であることを表す。
【0107】
更に他の実施例において、
図6(B)に示すように、サーバで観測された現実時間t
現実が160msであるとすると、システムにおける最初の不完全なトリガフレームはトリガフレーム4であり、該トリガフレームはバッファキュー3の100msの位置でのデータフレームが既に到着しており、バッファキュー1の140msの位置とバッファキュー2の150msの位置にそれぞれ1フレームのデータがあると予想されるが、この2フレームのデータがいずれも到着していない。このとき、データストリーム1及び2のローカル最遅時刻を計算してそれぞれ170msと210msであり、そのためグローバル最遅時刻は210msとなり、現在、グローバル最遅時刻からの待ち時間を210ms-160ms=50msと計算する。待ち期間に、待たれたデータストリーム1及び2はいずれも新たなデータフレームが到着していないと、バッファキュー1の140ms位置及びバッファキュー2の150ms位置をいずれもタイムアウトとマークし、このときトリガフレーム4がタイムアウトデータを含む完全なトリガフレームと判定し、アルゴリズムモジュールに伝達して計算する。
【0108】
図6(B)の50msの待ち期間において、例えば、t
現実=165msの時刻に、バッファキュー2が150msの位置にあるデータフレームが到着したとすると、この時にまだ1つのデータストリーム1のデータフレームが到着していないため、グローバル最遅時刻をデータストリーム1のローカル最遅時刻170msと更新し、かつ待ち時間を170ms-165ms=5msと更新する。このとき高遅延待ちシステムは更に5msを待つ必要があり、5ms内にデータストリーム1の新たなデータフレームが到着しないと、データストリーム1をタイムアウトとマークすることができる。
【0109】
あるいは、
図6(B)の50msの待ち期間において、例えば、t
現実=180msの時刻に、バッファキュー2の150ms位置でのデータフレームが到着しており、更新された後のグローバル最遅時刻は依然として170msのままであるが、現在のシステム時間がこのグローバル最遅時刻を超えているので、これ以上待つことなく、トリガフレーム4がタイムアウトデータ(バッファキュー1)を含む完全なトリガフレームと判定し、アルゴリズムモジュールに伝達して計算する。
【0110】
本願の技術的解決手段に基づき、ソフトウェアレベルで複数の入力データストリームに対してタイムスタンプの整列処理を行うことにより、アルゴリズムモジュールに伝達されたデータが同一時刻に複数のセンサによって生成され及び/又は同一時刻に生成されたデータに対して後処理を行って生成されることを保証し、マルチセンサ融合の入力データに対する要求をよりよく満たすことができ、アルゴリズムの正確度を向上させる。本願は、高効率で、予測可能なデータ整列システムを実現し、リアルタイム性に対する要求が高い自動運転システムにおいて、計算リソースを節約し、アルゴリズムの応答速度を向上させる等の効果を達成することができ、かつ結果の再現性はシステムに問題が発生する時のデバッグ作業を簡単にさせる。また、本願は、更に1つの自己診断のシステムを実現し、問題が発生した時に迅速に問題を発見しかつ外部に報告することができ、かつシステム自体は異なる異常状況に基づいて対応する処理を行うことができ、例えば自己補正を行うこと、システムを正確ではないが使用可能な状態に低下させること、バックアップシステムを起動することなどであり、それにより自動運転システムの安全性を向上させ、試験者の作業効率を向上させ、開発者の作業フローを簡略化することを実現する。
【0111】
図7は本願の1つの実施例に基づくセンサデータ処理装置700の概略図を示し、
図7に示すように、センサデータ処理装置700は、
処理対象の複数のデータストリームを受信するために用いられるデータフレーム受信モジュール702であって、各データストリームは1つのセンサに対応し、かつ前記データストリームにおけるデータフレームは生成タイムスタンプを携帯するデータフレーム受信モジュール702と、
各データフレームの生成タイムスタンプを補正し、補正タイムスタンプを得るために用いられるタイムスタンプ補正モジュール704と、
各データフレームの補正タイムスタンプ及び予め設定されたデータ送信周期に基づき、各データストリームから各データ送信周期において送信すべきデータフレームを決定するために用いられるデータフレーム整列モジュール706と、を含む。
【0112】
いくつかの実施例において、データフレーム受信モジュール702は、各データストリームに対応するバッファキューを設定し、かつ各データストリームにおける各データフレームの生成タイムスタンプに基づき、各データフレームを対応するバッファキューに記憶する。
【0113】
いくつかの実施例において、タイムスタンプ補正モジュール704は、各データストリームの許容誤差に基づいて該データストリームにおける各データフレームの生成タイムスタンプをそれに最も近い整数タイムスタンプに補正する。
【0114】
いくつかの実施例において、いずれかのデータストリームに対して、データフレーム整列モジュール706は、該データストリームにおける現在のデータ送信周期に対応するターゲットタイムスタンプを決定し、該データストリームのあるデータフレームの補正タイムスタンプがターゲットタイムスタンプとマッチングすれば、該データフレームを該データストリームが現在のデータ送信周期において送信すべきデータフレームと決定し、該データストリームに補正タイムスタンプが前記ターゲットタイムスタンプとマッチングするデータフレームが存在しない場合、該データストリームは現在のデータ送信周期において送信しようとするデータフレームがないと決定する。
【0115】
ここで、データフレーム整列モジュール706は、該データストリームに対応するセンサのデータ収集周期に基づき、該データストリームの所期のタイムスタンプシーケンスを決定し、所期のタイムスタンプシーケンスから現在のデータ送信周期に対応するターゲットタイムスタンプを選択する。更に、データフレーム整列モジュール706は、所期のタイムスタンプシーケンスから少なくとも1つの候補タイムスタンプを選択し、かつ該少なくとも1つの候補タイムスタンプのうちの最大値をターゲットタイムスタンプとする。
【0116】
いくつかの実施例において、いずれかのデータストリームに対して、データフレーム整列モジュール706は該データストリームにおける現在のデータフレームと現在の所定周期の開始データフレームとの補正タイムスタンプ差を計算し、該補正タイムスタンプ差と該データストリームのデータ収集周期との比が非整数であれば、該データフレームが該データストリームのエラーフレームであると決定し、かつ該エラーフレームを廃棄する。
【0117】
いくつかの実施例において、いずれかのデータストリームに対して、データフレーム整列モジュール706は該データストリームにおける現在のデータフレームと前のデータフレームとの補正タイムスタンプ差を計算し、該補正タイムスタンプ差と該データストリームのデータ収集周期との比mを計算し、mが非整数であれば、該データフレームが該データストリームにおけるエラーフレームであると決定し、かつ該エラーフレームを廃棄し、mが1でない整数であれば、現在のデータフレームと前のデータフレームとの間でm-1フレームをロスしたと判定する。
【0118】
いくつかの実施例において、データフレーム整列モジュール706はあるデータストリームにおいてターゲットタイムスタンプに対応する位置がフレームロスと判定された時(データフレーム整列モジュール706はあるデータストリームがターゲットタイムスタンプでフレームをロスすることに応答する)、該データストリームが現在のデータ送信周期において送信しようとするデータフレームがないと決定し、及び所定期間内にあるデータストリームの新たなデータフレームを受信しない場合、該データストリームがタイムアウトであると判定し、かつ該データストリームが前記所定期間内の各データ送信周期においていずれも送信しようとするデータがないと決定する。
【0119】
いくつかの実施例において、装置700は更にデータフレーム送信モジュール(図示せず)を含み、決定された各データ送信周期において送信すべきデータフレームを組み合わせとして、アルゴリズムモジュールに伝達して計算する。
【0120】
図8はコンピューティングデバイス800の例示的な形態の機械の図を示し、該コンピューティングデバイスにおいて命令集合が実行される時及び/又は処理ロジックが起動された時に該機械に本明細書で説明され及び/又は請求される方法のいずれか1つ又は複数を実行させることができる。候補実施例において、機械は独立したデバイスとして動作し、又は他の機械に接続(例えば、ネットワーク接続)されてもよい。ネットワーク接続の配置において、機械は、サーバ-クライアントネットワーク環境においてサーバ又はクライアント機械の身分で動作してもよく、又はピアツーピア(又は分散型)ネットワーク環境においてピアデバイスとして動作してもよい。機械は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、タブレットコンピューティングシステム、パーソナルデジタルアシスタント(PDA)、携帯電話、スマートフォン、ネットワークアプリケーション、セットトップボックス(STB)、ネットワークルータ、スイッチもしくはブリッジ又は該機械によってアクションを取るように指定する命令集合(順次又はその他)を実行することができるか、又は処理ロジックを起動することができる任意の機械であってもよい。更に、単一の機械のみが図示されているが、「機械」という用語は、本明細書で説明され及び/又は請求される方法のいずれか1つ又は複数を実行するための命令集合(又は複数の命令集合)を個別に又は組み合わせて実行する機械の任意の集合を含むと理解されてもよい。
【0121】
例示的なコンピューティングデバイス800は、バス806又は他のデータ伝送システムを介して互いに通信することができるデータプロセッサ802(例えば、システムチップ(SoC)、汎用処理コア、グラフィックコア及び任意選択することができる他の処理ロジック)及びメモリ804(例えば、メモリ)を含むことができる。コンピューティングデバイス800は、タッチスクリーンディスプレイ、オーディオジャック、音声インタフェース及び任意選択のネットワークインタフェース812等の様々な入力/出力(I/O)デバイス及び/又はインタフェース810を含むことができる。例示的な実施例において、ネットワークインタフェース812は1つ又は複数の無線トランシーバを含んでもよく、それは1つ又は複数の標準的な無線及び/又はセルラプロトコル又はアクセス技術(例えば、セルラシステムの第2世代(2G)、第2.5世代、第3世代(3G)、第4世代(4G)及び次世代無線アクセス、グローバル移動通信システム(GSM)、汎用パケット無線サービス(GPRS)、拡張データGSM環境(EDGE)、ワイドバンド符号分割多元接続(WCDMA)、LTE、CDMA2000、WLAN、無線ルータ(WR)グリッド等)に構成される。ネットワークインタフェース812は、更に様々な他の有線及び/又は無線通信プロトコル(TCP/IP、UDP、SIP、SMS、RTP、WAP、CDMA、TDMA、UMTS、UWB、WiFi、WiMax、Bluetooth(登録商標)、IEEE802.11x等を含む)と共に使用するように構成することもできる。本質的に、ネットワークインタフェース812は、任意の有線及び/又は無線通信及びデータ処理機構を実際に含むか又はサポートすることができ、該機構によって情報/データがネットワーク814を介してコンピューティングデバイス800と別のコンピューティング又は通信システムとの間で伝播することができる。
【0122】
メモリ804は、機械読み取り可能な媒体(又はコンピュータ読み取り可能な記憶媒体)を表すことができ、機械読み取り可能な媒体(又はコンピュータ読み取り可能な記憶媒体)には、本明細書で説明され及び/又は請求される方法又は機能のいずれか1つ又は複数を実施する1つ又は複数の命令集合、ソフトウェア、ファームウェア又は他の処理ロジック(例えば、ロジック808)が記憶されている。コンピューティングデバイス800に実行される期間中、ロジック808又はその一部もプロセッサ802内に完全に又は少なくとも部分的に常駐してもよい。したがって、メモリ804及びプロセッサ802も機械読み取り可能な媒体(又はコンピュータ読み取り可能な記憶媒体)を構成してもよい。ロジック808又はその一部も処理ロジック又はロジックとして構成されてもよく、該処理ロジック又はロジックの少なくとも一部はハードウェアに部分的に実現される。ロジック808又はその一部は、またネットワークインタフェース812を経てネットワーク814を介して送信又は受信されてもよい。例示的な実施例の機械読み取り可能な媒体(又はコンピュータ読み取り可能な記憶媒体)は単一の媒体であってもよいが、「機械読み取り可能な媒体」(又はコンピュータ読み取り可能な記憶媒体)という用語は、1つ又は複数の命令集合を記憶する単一の非一時的媒体又は複数の非一時的媒体(例えば、集中型又は分散型データベース及び/又は関連する高速キャッシュ及びコンピューティングシステム)を含むと理解されるべきである。用語「機械読み取り可能な媒体」(又はコンピュータ読み取り可能な記憶媒体)という用語は、機械に実行されるための命令集合を記憶、符号化又は携帯することができかつ様々な実施例の方法のいずれか1つ又は複数を機械に実行させることができ、又はそのような命令集合に利用され又はそれに関連するデータ構造を記憶、符号化又は携帯することができる任意の非一時的媒体を含むと理解することもできる。「機械読み取り可能な媒体」(又はコンピュータ読み取り可能な記憶媒体)という用語は、固体メモリ、光学媒体及び磁気媒体を含むが、これらに限定されないと理解されてもよい。本開示のコンピューティングデバイスは各データストリームにおける各データフレームの生成タイムスタンプ及びフレーム識別に基づき、整列が必要なフレームのフレーム識別を決定し、かつこれらのフレーム識別に基づいてバッファキューにおける対応するデータフレームを1つのトリガフレームとして、アルゴリズムモジュールに送信する。
【0123】
開示された実施例及び他の実施例、モジュール及び本明細書に記載された機能操作は、デジタル電子回路において、又はコンピュータソフトウェア、ファームウェア若しくはハードウェア(本明細書に開示された構造及びその構造的等価物を含む)において、又はそれらのうちの1つ又は複数の組み合わせにおいて実現されることができる。開示された実施例及び他の実施例は、1つ又は複数のコンピュータプログラム製品として実現されることができ、すなわち、コンピュータ読み取り可能な媒体に符号化され、それによりデータ処理装置によって実行され又は該データ処理装置の操作を制御するコンピュータプログラム命令の1つ又は複数のモジュールとして実現されることができる。コンピュータ読み取り可能な媒体は、機械読み取り可能な記憶装置、機械読み取り可能な記憶基板、メモリデバイス、機械読み取り可能な伝播信号に影響を及ぼす物質複合物又はそれらの1つ又は複数の組み合わせであってもよい。「データ処理装置」という用語は、データを処理するための全ての装置、デバイス及び機械を包含し、例えば、プログラマブルプロセッサ、コンピュータ又は複数のプロセッサ若しくはコンピュータを含む。ハードウェアに加えて、該装置は、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム又はそれらのうちの1つ又は複数の組み合わせを構成するコード等、検討中のコンピュータプログラムのための実行環境を作成するコードを含んでもよい。伝播信号は、人工的に生成された信号、例えば、機械によって生成された電気信号、光信号又は電磁信号であり、該信号は適切な受信装置に送信される情報を符号化するために生成される。
【0124】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト又はコードとも呼ばれる)は、任意の形態のプログラミング言語(コンパイル又はインタープリタ型言語を含む)で書き込まれてもよく、かつ該コンピュータプログラムは、独立型プログラムとして、又はモジュール、コンポーネント、サブルーチンもしくはコンピューティング環境での使用に適した別のユニットとしてのいずれかで配置されることを含む任意の形態で配置されてもよい。コンピュータプログラムは、ファイルシステム内のファイルに必ずしも対応するわけではない。プログラムは、他のプログラム又はデータ(例えば、マーク言語文書内に記憶される1つ又は複数のスクリプト)を保持するファイルの一部に記憶されてもよく、又は検討中のプログラムに専用される単一のファイルに記憶され、又は複数の協調ファイル(例えば、1つ又は複数のモジュール、サブプログラム又は一部のコードを記憶するファイル)に記憶されてもよい。コンピュータプログラムは、1つのコンピュータ上で実行され又は1つのサイトに位置決めされ又は複数のサイトに分散されかつ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配置されてもよい。
【0125】
本明細書に説明されるプロセス及びロジックフローは、入力データを操作しかつ出力を生成することによって機能を実行するために、1つ又は複数のコンピュータプログラムを実行する1つ又は複数のプログラマブルプロセッサによって実行されてもよい。プロセス及びロジックフローはまた専用ロジック回路システム(例えば、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路))によって実行されてもよく、かつ装置はまた専用ロジック回路(例えば、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路))として実現されてもよい。
【0126】
コンピュータプログラムを実行するために適したプロセッサは、例えば、汎用マイクロプロセッサ及び専用マイクロプロセッサの両方並びに任意の種類のデジタルコンピュータの任意の1つ又は複数のプロセッサを含む。一般的には、プロセッサは、リードオンリーメモリ又はランダムアクセスメモリ又はその両方からの命令及びデータを受信する。コンピュータの必須エレメントは、命令を実行するためのプロセッサ及び命令とデータを記憶するための1つ又は複数のメモリデバイスである。一般的には、コンピュータはまた、データを記憶するための1つ又は複数の大容量記憶装置(例えば、磁気ディスク、光磁気ディスク又は光ディスク)を含むか、又はコンピュータはまた1つ又は複数の大容量記憶装置からのデータを受信するか、又はデータを該1つ又は複数の大容量記憶装置に送信するか、又はその両方を行うように操作可能に結合される。しかしながら、コンピュータはこのようなデバイスを有する必要はない。コンピュータプログラム命令及びデータを記憶するために適したコンピュータ読み取り可能な媒体は、あらゆる形態の不揮発性メモリ、媒体及びメモリデバイスを含み、例えば、EPROM、EEPROM及びフラッシュメモリデバイスのような半導体メモリデバイス、内部ハードディスク又はリムーバブルディスクのような磁気ディスク、光磁気ディスク及びCD-ROMディスクとDVD-ROMディスクを含む。プロセッサ及びメモリは、専用ロジック回路によって補充されてもよく、又は専用ロジック回路に組み込まれてもよい。
【0127】
本願は多くの詳細を含むが、これらの詳細は任意の発明又は保護が請求される可能性がある内容の範囲を限定するものとしてではなく、特定の発明の特定の実施例に対する特徴の説明として解釈されるべきである。本願は、個別の実施例の文脈に説明された特定の特徴を、更に組み合わせて単一の実施例に実現することも可能である。逆に、単一の実施例の文脈に説明された各特徴も個別に又は任意の適切なサブ組み合わせという形態によって複数の実施例に実現されてもよい。更に、特徴は特定の組み合わせで機能するものとして上記で説明され、これらの特徴は、当初は同様に請求されてもよいが、場合によっては、請求された組み合わせからの1つ又は複数の特徴が組み合わせから削除されることがあり、請求された組み合わせはサブ組み合わせ又はサブ組み合わせの変形に向けられてもよい。
【0128】
類似的に、図面において操作は特定の順序で示されているが、このようにすることに示された特定の順序又は順番にそのような操作を実行し、又は図に示された全ての操作を実行すべきであり、それによって期待された結果を達成すると理解すべきではない。更に、本願に説明される実施例における様々なシステムコンポネントの分離は、全ての実施例においてそのような分離を必要とするものとして理解されるべきではない。
【0129】
いくつかの実現及び例のみが説明され、他の実現、補強及び変更は、本願に説明され及び図示される内容に基づいて行われてもよい。
【0130】
本明細書に説明される実施例の説明は、様々な実施例の構造に対する一般的な理解を提供することを意図しており、かつ本明細書に説明される構造のコンポーネント及びシステムを利用する可能性がある全てのエレメント及び特徴の完全な説明として機能することを意図していない。当業者にとって、本明細書に提供される説明を精査すると、多くの他の実施例は明らかである。本願の範囲から逸脱することなく、構造的及び論理的な置換及び変更を行うことができるように、他の実施例を利用し及び導出することができる。本明細書の図面は単に代表的なものであり、縮尺通りに描かれていない場合がある。いくつかの比率は増加される可能性もあり、他の比率は最小化される可能性もある。したがって、明細書及び図面は限定ではなく例示とみなされるべきである。
【0131】
いくつかの実施例は、2つ以上の特定の相互接続されたハードウェアモジュール又はデバイスにおいて機能を実現し、そのうち、関連する制御及びデータ信号はモジュール間でかつモジュールを介して伝達され、又は特定用途向け集積回路の一部とする。したがって、例示的なシステムは、ソフトウェア、ファームウェア及びハードウェアの実現に適する。
【0132】
本願の例示的な実施例又は例が図面を参照しながら説明されたが、上記の例示的な議論は、網羅的であること、又は本発明を開示された具体的な形態に限定することを意図しないことが理解されたい。上記の教示内容に基づき、多くの修正及び変形が可能である。したがって、開示される主題は、本明細書に記載される任意の単一の実施例又は例に限定されるべきではなく、添付の特許請求の範囲の広さ及び範囲に従って解釈されるべきである。