(57)【要約】      （修正有）【課題】自動運転車両で使用されるカメラからの大量の画像データを処理可能な効率的なカメラデータ取得メカニズムが欠如している。【解決手段】センサユニット５００は、自動運転車両に取り付けられたセンサであるカメラに接続可能なセンサインターフェース５０４と、ホストシステム１１０に接続可能なホストインターフェース５０５と、を備える。ホストシステムは、カメラから取得された画像データに基づいて自動運転車両の周囲の走行環境を感知し、自律的に走行させる経路を計画する。センサユニットは、カメラに関連付けられたオリジナルフォーマットから所定のフォーマットへ再フォーマットし、生成した画像フレームをホストシステムに送信する。【選択図】図５Ｂ
2020074502.tif 000002
【特許請求の範囲】
【請求項１】
自動運転車両のためのセンサユニットであって、
前記自動運転車両（ＡＤＶ）の複数の位置に取り付けられた複数のカメラに接続されるセンサインターフェースと、
ホストシステムに接続されるホストインターフェースであって、前記ホストシステムは、少なくとも前記カメラから得られた画像データに基づいて前記自動運転車両の周囲の走行環境を感知し、前記自動運転車両を自律的に走行させるための経路を計画するように構成されるホストインターフェースと、
それぞれが複数のカメラのうちの１つに対応する複数のデータ取得モジュールと、
を備えるセンサユニットであって、
前記データ取得モジュールのそれぞれは、
画像データの画素を、対応するカメラに関連付けられたオリジナルフォーマットから所定のフォーマットへ再フォーマットするための画素アライメントモジュールと、
前記画素アライメントモジュールに接続されるフレーム処理モジュールであって、前記画素アライメントモジュールから受信された画像データに基づいて画像フレームを生成し、前記画像フレームを前記ホストシステムに送信するように構成されるフレーム処理モジュールと、
を備えるセンサユニット。
【請求項２】
各データ取得モジュールは、前記画素アライメントモジュールに接続されるカメラシミュレータをさらに備え、前記カメラシミュレータは、対応するカメラを使用せずに模擬画像データを生成するようにカメラをシミュレートするように構成される、請求項１に記載のセンサユニット。
【請求項３】
前記模擬画像データは、カメラと接続する必要なしに、前記画素アライメントモジュールおよび前記フレーム処理モジュールの機能をテストするために用いられる、請求項２に記載のセンサユニット。
【請求項４】
各データ取得モジュールは、前記フレーム処理モジュールに接続されるホストシミュレータをさらに備え、前記ホストシミュレータは、前記ホストシステムを使用せずに模擬ホストコマンドおよび応答を生成することによって前記ホストシステムをシミュレートするように構成される、請求項１に記載のセンサユニット。
【請求項５】
前記模擬ホストコマンドおよび応答は、前記ホストシステムと接続する必要なしに、前記画素アライメントモジュールおよび前記フレーム処理モジュールの機能をテストするために用いられる、請求項４に記載のセンサユニット。
【請求項６】
前記画素アライメントモジュールは、画像データを検査して画素エラーを検出するための画素エラー検出器をさらに備える、請求項１に記載のセンサユニット。
【請求項７】
前記画素エラー検出器は、前記画像データに十分な数の画素があるか否か、または前記画像データがカメラトランスミッションプロトコルに違反するか否かを検出するように構成されている、請求項６に記載のセンサユニット。
【請求項８】
各データ取得モジュールは、前記画像フレームを検査してフレームエラーを検出するためのフレームエラー検出器をさらに備える、請求項１に記載のセンサユニット。
【請求項９】
前記フレームエラー検出器は、前記画像フレームが短フレームであるかまたは長フレームであるかを検出するように構成されている、請求項８に記載のセンサユニット。
【請求項１０】
各データ取得モジュールは、新しい画像をキャプチャするために対応するカメラに送信された複数のトリガ信号をカウントするトリガカウントを格納するためのトリガカウンタをさらに備える、請求項１に記載のセンサユニット。
【請求項１１】
前記トリガカウントは、最新のトリガ信号に応答してキャプチャされた画像フレームに含まれる、請求項１０に記載のセンサユニット。
【請求項１２】
各データ取得モジュールは、対応するカメラから前記画像データを受信する時刻を記録するタイムスタンプを生成するためのタイムスタンプ生成器をさらに備え、前記タイムスタンプは、前記ホストシステムに送信されるべき画像フレームに含まれる、請求項１に記載のセンサユニット。  
【請求項１３】
前記画像データのオリジナルフォーマットと、ＹＵＶフォーマットおよびＲＧＢフォーマットの一方とは、互換性がある、請求項１に記載のセンサユニット。
【請求項１４】
前記センサインターフェースは、光検出・測距装置または１つ以上のカメラと接続されるイーサネットインターフェースを含む、請求項１に記載のセンサユニット。
【請求項１５】
前記センサインターフェースは、ＧＰＳ受信機および慣性計測装置のうちの少なくとも１つに接続される全地球測位システム（ＧＰＳ）インターフェースを含む、請求項１に記載のセンサユニット。
【請求項１６】
前記センサインターフェースは、前記自動運転車両のスロットル制御ロジック、ブレーキ制御ロジックおよびステアリング制御ロジックに接続されるコントローラエリアネットワーク（ＣＡＮ）インターフェースを含む、請求項１に記載のセンサユニット。
【請求項１７】
自動運転システムであって、
自動運転車両（ＡＤＶ）の複数の位置に取り付けられた複数のセンサと、
前記センサから得られたセンサデータに基づいて前記自動運転車両の周囲の走行環境を感知し、前記自動運転車両を自律的に走行させるための経路を計画するためのホストシステムと、
前記複数のセンサと前記ホストシステムとに接続されたセンサユニットと、
を備える自動運転システムであって、
前記センサユニットは、
前記自動運転車両に取り付けられた前記複数のセンサに接続されるセンサインターフェースと、
前記ホストシステムに接続されるホストインターフェースと、
それぞれが複数のカメラのうちの１つに対応する複数のデータ取得モジュールと、
を備え、
前記データ取得モジュールのそれぞれは、
画像データの画素を対応するカメラに関連付けられたオリジナルフォーマットから所定のフォーマットへ再フォーマットするための画素アライメントモジュールと、
前記画素アライメントモジュールに接続されるフレーム処理モジュールであって、前記画素アライメントモジュールから受信された画像データに基づいて画像フレームを生成し、前記画像フレームを前記ホストシステムに送信するように構成されるフレーム処理モジュールと、
を備える自動運転システム。
【請求項１８】
各データ取得モジュールは、前記画素アライメントモジュールに接続されるカメラシミュレータをさらに備え、前記カメラシミュレータは、対応するカメラを使用せずに模擬画像データを生成するようにカメラをシミュレートするように構成される、請求項１７に記載のシステム。
【請求項１９】
前記模擬画像データは、カメラと接続する必要なしに、前記画素アライメントモジュールおよび前記フレーム処理モジュールの機能をテストするために用いられる、請求項１８に記載のシステム。
【請求項２０】
各データ取得モジュールは、前記フレーム処理モジュールに接続されるホストシミュレータをさらに備え、前記ホストシミュレータは、前記ホストシステムを使用せずに模擬ホストコマンドおよび応答を生成することによって前記ホストシステムをシミュレートするように構成される、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、主に自動運転車両を動作させることに関する。より具体的に、本発明の実施形態は自動運転車両の周囲の走行環境を感知するための画像の画像データ取得に関する。
【背景技術】
【０００２】
自動運転モードで走行する（例えば、ドライバーレス）車両は、乗員、特に運転手をいくつかの運転に関する責務から解放させることができる。車両は、自動運転モードで走行する時に、車載センサを利用して様々な位置までナビゲートすることができるので、最小限のヒューマンマシンインタラクションや、乗員がいないなどの状況で車両を走行させることが可能となる。
【０００３】
運動計画および制御は自動運転における重要な操作である。運動計画および制御の正確性と効率は、車両のセンサに大きく依存している。センサが異なれば、要件や仕様も異なる可能性がある。自動運転車両で使用される最も人気があるセンサの１つはカメラである。カメラは、かなりの処理リソースを必要とする大量の画像データを生成することが可能である。大量の画像データを処理可能な効率的なカメラデータ取得メカニズムが欠如している。
【発明の概要】
【０００４】
本発明の一態様では、自動運転車両のためのセンサユニットであって、前記自動運転車両（ＡＤＶ）の複数の位置に取り付けられた複数のカメラに接続されるセンサインターフェースと、ホストシステムに接続されるホストインターフェースであって、前記ホストシステムは、少なくとも前記カメラから得られた画像データに基づいて前記ＡＤＶの周囲の走行環境を感知し、前記ＡＤＶを自律的に走行させるための経路を計画するように構成されるホストインターフェースと、それぞれが複数のカメラのうちの１つに対応する複数のデータ取得モジュールと、を備えるセンサユニットであって、
前記データ取得モジュールのそれぞれは、画像データの画素を対応するカメラに関連付けられたオリジナルフォーマットから所定のフォーマットへ再フォーマットするための画素アライメントモジュールと、前記画素アライメントモジュールに接続されるフレーム処理モジュールであって、前記画素アライメントモジュールから受信された画像データに基づいて画像フレームを生成し、前記画像フレームを前記ホストシステムに送信するように構成されるフレーム処理モジュールと、を備えるセンサユニットを提供する。
【０００５】
本発明の他の態様では、自動運転システムであって、自動運転車両（ＡＤＶ）の複数の位置に取り付けられた複数のセンサと、前記センサから得られたセンサデータに基づいて前記ＡＤＶの周囲の走行環境を感知し、前記ＡＤＶを自律的に走行させるための経路を計画するためのホストシステムと、前記複数のセンサと前記ホストシステムとに接続されたセンサユニットと、を備える自動運転システムであって、
前記センサユニットは、前記ＡＤＶに取り付けられた前記複数のセンサに接続されるセンサインターフェースと、前記ホストシステムに接続されるホストインターフェースと、それぞれが複数のカメラのうちの１つに対応する複数のデータ取得モジュールと、を備え、
前記データ取得モジュールのそれぞれは、画像データの画素を対応するカメラに関連付けられたオリジナルフォーマットから所定のフォーマットへ再フォーマットするための画素アライメントモジュールと、前記画素アライメントモジュールに接続されるフレーム処理モジュールであって、前記画素アライメントモジュールから受信された画像データに基づいて画像フレームを生成し、前記画像フレームを前記ホストシステムに送信するように構成されるフレーム処理モジュールと、を備える自動運転システムを提供する。
【図面の簡単な説明】
【０００６】
本発明の実施形態は、各図面において制限的ではなく例示的なものとして示され、図面における同様の符号は、同様の素子を示す。
【図１】一実施形態に係るネットワークシステムを示すブロック図である。
【図２】一実施形態に係る自動運転車両の一例を示すブロック図である。
【図３Ａ】一実施形態に係る自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。
【図３Ｂ】一実施形態に係る自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。
【図４】一実施形態に係る自動運転システムのアーキテクチャを示すブロック図である。
【図５Ａ】一実施形態に係るセンサユニットの一例を示すブロック図である。
【図５Ｂ】一実施形態に係るセンサユニットの一例を示すブロック図である。
【図６】一実施形態に係るセンサ処理モジュールの一例を示すブロック図である。
【図７】一実施形態に係る画像フレームのデータ構造を示すブロック図である。
【図８】一実施形態に係るセンサデータを取得するプロセスを示すフローチャートである。
【図９】一実施形態に係るデータ処理システムを示すブロック図である。
【発明を実施するための形態】
【０００７】
以下に説明される詳細を参照しながら本発明の様々な実施形態および態様を説明し、添付図面に様々な実施形態を示す。以下の説明および図面は、本発明を説明するためのものであり、本発明を限定するものではないことを理解されたい。本発明の様々な実施形態を完全に把握するために、多数の特定の詳細を説明する。なお、いくつかの場合、本発明の実施形態に対する簡潔的な説明を提供するように、周知または従来技術の詳細について説明していない。
【０００８】
本明細書において、「一実施形態」または「実施形態」とは、当該実施形態を参照しながら説明した特定の特徴、構造または特性が本発明の少なくとも一実施形態に含まれてもよいことを意味する。「一実施形態では」という語句は、本明細書の全体において同一の実施形態を指すとは限らない。
【０００９】
本発明の一態様によれば、自動運転車両（ＡＤＶ）で使用されるセンサユニットは、ＡＤＶの様々な位置に取り付けられたカメラのような、１つまたは複数の画像センサに接続可能なセンサインターフェースを備える。センサユニットは、ホストシステムに接続可能なホストインターフェースをさらに備える。ホストシステムは、少なくともカメラから取得された画像データに基づいてＡＤＶの周囲の走行環境を感知し、ＡＤＶを自律的に走行させるための経路を計画するように構成される。センサユニットは、それぞれがカメラのうちの１つに対応する１つまたは複数のデータ取得モジュールを更に備える。各データ取得モジュールは、画素アライメントモジュールとフレーム処理モジュールとを備える。画素アライメントモジュールは、画像データの画素を対応するカメラに関連付けられたオリジナルフォーマットから所定のフォーマットへ再フォーマットするように構成される。フレーム処理モジュールは、画素アライメントモジュールから受信された画像データに基づいて画像フレームを生成し、ホストインターフェースを介して画像フレームをホストシステムに送信するように構成される。
【００１０】
一実施形態では、各データ取得モジュールは、画素アライメントモジュールに接続されるカメラシミュレータをさらに備える。カメラシミュレータは、カメラの動作をシミュレートして、カメラを使用せずに模擬画像データを生成するように構成される。模擬画像データは、実際のカメラと接続せずに、画素アライメントモジュールおよびフレーム処理モジュールの機能をテストするために使用可能である。他の実施形態によれば、各データ取得モジュールは、フレーム処理モジュールに接続されるホストシミュレータをさらに備える。ホストシミュレータは、ホストシステムを使用せずに、模擬ホストコマンドおよび応答を生成することによってホストシステムをシミュレートするために使用することができる。模擬ホストコマンドおよび応答は、ホストシステムと接続せずに、画素アライメントモジュールおよびフレーム処理モジュールの機能をテストするために用いられる。
【００１１】
他の実施形態によれば、画素アライメントモジュールは、画像データを検査して画素エラーを検出するための画素エラー検出器を備える。画素エラー検出器は、画像データに十分な数の画素があるか否か、または画像データが対応するカメラに関連付けられたカメラトランスミッションプロトコルに違反するか否かを検出するように構成されている。データ取得モジュールは、画像フレームを検査してフレームエラーを検出するためのフレームエラー検出器をさらに備えていてもよい。フレームエラー検出器は、画像フレームが短フレームまたは長フレームなどの不規則フレームであるか否かを検出するように構成されている。
【００１２】
取得モジュールは、カメラに送信されたトリガ信号のカウントを格納するためのトリガカウンタをさらに備えていてもよく、トリガ信号は、シャッタ機構と同様に、カメラをトリガまたは起動して新しい画像をキャプチャするために利用される。トリガカウントは、最新のトリガ信号に応答してキャプチャされた画像フレームに含まれてもよく、該最新のトリガ信号はフレームパッケージのシーケンス番号として使用されてもよい。取得モジュールは、カメラから受信された各画像データについてタイムスタンプを生成するためのタイムスタンプ生成器をさらに備えていてもよい。タイムスタンプは、画像データが受信された時刻を表すことができる。タイムスタンプは、デバッグの目的で利用することができる。
【００１３】
本発明の他の態様によれば、自動運転システムは、ＡＤＶの様々な位置に取り付けられる複数のセンサを備える。自動運転システムはホストシステムをさらに備え、ホストシステムは感知モジュールと計画・制御モジュールとを備える。感知モジュールは、センサから取得されたセンサデータに基づいてＡＤＶの周囲の走行環境を感知するために用いられる。計画・制御モジュールは、感知データに基づいて経路を計画し、該経路に沿ってＡＤＶを走行させるために用いられる。自動運転システムは、センサおよびホストシステムに接続されるセンサユニットをさらに備える。センサユニットは、ＡＤＶの様々な位置に取り付けられたカメラのような、１つまたは複数の画像センサに接続可能なセンサインターフェースを備える。センサユニットは、ホストシステムに接続可能なホストインターフェースをさらに備える。ホストシステムは、少なくともカメラから取得された画像データに基づいてＡＤＶの周囲の走行環境を感知し、ＡＤＶを自律的に走行させるための経路を計画するように構成される。センサユニットは、それぞれがカメラのうちの１つに対応する１つまたは複数のデータ取得モジュールをさらに備える。各データ取得モジュールは、画素アライメントモジュールとフレーム処理モジュールとを備える。画素アライメントモジュールは、画像データの画素を対応するカメラに関連付けられたオリジナルフォーマットから所定のフォーマットへ再フォーマットするように構成される。フレーム処理モジュールは、画素アライメントモジュールから受信された画像データに基づいて画像フレームを生成し、ホストインターフェースを介して画像フレームをホストシステムに送信するように構成される。センサユニットは、上述したような特定の特徴をさらに備える。
【００１４】
図１は、本発明の一実施形態に係る自動運転車両のネットワーク構成を示すブロック図である。図１に示すように、ネットワーク構成１００には、ネットワーク１０２を介して１つまたは複数のサーバ１０３〜１０４に通信可能に接続される自動運転車両１０１が備えられる。一台の自動運転車両が示されたが、複数の自動運転車両がネットワーク１０２を介して互いに接続され、および／またはサーバ１０３〜１０４に接続されてもよい。ネットワーク１０２は、任意のタイプのネットワークであってもよく、例えば、有線または無線のローカルエリアネットワーク（ＬＡＮ）、インターネットなどのワイドエリアネットワーク（ＷＡＮ）、セルラーネットワーク、衛星ネットワーク、またはそれらの組み合わせが挙げられる。サーバ１０３〜１０４は、任意のタイプのサーバまたはサーバクラスタであってもよく、例えば、ネットワークまたはクラウドサーバ、アプリケーションサーバ、バックエンドサーバ、またはそれらの組み合わせが挙げられる。サーバ１０３〜１０４は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図・関心地点（ＭＰＯＩ）サーバまたは位置サーバなどであってもよい。
【００１５】
自動運転車両とは、運転手からの入力が非常に少ないまたはない場合に車両をナビゲートして環境を通過させる自動運転モードに配置可能な車両である。このような自動運転車両は、車両の走行環境に関する情報を検出するように配置される１つまたは複数のセンサを備えるセンサシステムを備えていてもよい。前記車両およびその関連コントローラは、検出された情報を使用して前記環境を通過するようにナビゲートする。自動運転車両１０１は、手動モード、完全自動運転モード、または部分自動運転モードで走行することができる。
【００１６】
一実施形態では、自動運転車両１０１は、感知・計画システム１１０、車両制御システム１１１、無線通信システム１１２、ユーザインターフェースシステム１１３およびセンサシステム１１５を含むが、それらに限定されない。自動運転車両１０１には、通常の車両に備えられているいくつかの一般的な構成要素、例えばエンジン、車輪、ステアリングホイール、変速機などが更に備えられてもよい。前記構成要素は、車両制御システム１１１および／または感知・計画システム１１０により複数種の通信信号および／またはコマンドを使用して制御可能である。これらの複数種の通信信号および／またはコマンドは、例えば、加速信号またはコマンド、減速信号またはコマンド、ステアリング信号またはコマンド、ブレーキ信号またはコマンドなどが挙げられる。
【００１７】
構成要素１１０〜１１５は、インターコネクタ、バス、ネットワークまたはこれらの組み合わせを介して互いに通信可能に接続されることができる。例えば、構成要素１１０〜１１５は、コントローラエリアネットワーク（ＣＡＮ）バスを介して互いに通信可能に接続されることができる。ＣＡＮバスは、ホストコンピュータなしのアプリケーションでマイクロコントローラおよびデバイスが相互に通信できるように設計された車両バス規格である。それは、もともと自動車内の多重電気配線のために設計されたメッセージに基づくプロトコルであるが、他の多くの環境にも用いられる。
【００１８】
ここで図２を参照し、一実施形態では、センサシステム１１５は、１つまたは複数のカメラ２１１、全地球測位システム（ＧＰＳ）ユニット２１２、慣性計測ユニット（ＩＭＵ）２１３、レーダユニット２１４および光検出・測距（ＬＩＤＡＲ）ユニット２１５を含むが、それらに限定されない。ＧＰＳユニット２１２は、自動運転車両の位置に関する情報を提供するように動作可能な送受信機を備えていてもよい。ＩＭＵユニット２１３は、慣性加速度に基づいて自動運転車両の位置および配向の変化を感知することができる。レーダユニット２１４は、無線信号を利用して自動運転車両のローカル環境内のオブジェクトを感知するシステムを表すことができる。いくつかの実施形態では、オブジェクトを感知することに加えて、レーダユニット２１４は、更にオブジェクトの速度および／または進行方向を感知することができる。ＬＩＤＡＲユニット２１５は、自動運転車両の所在環境内のオブジェクトをレーザで感知することができる。他のシステム構成要素に加えて、ＬＩＤＡＲユニット２１５は、更に１つまたは複数のレーザ光源、レーザスキャナおよび１つまたは複数の検出器を備えていてもよい。カメラ２１１は、自動運転車両の周囲環境の画像を取得するための１つまたは複数の装置を備えていてもよい。カメラ２１１は、スチルカメラおよび／またはビデオカメラであってもよい。カメラは、例えば、回転および／または傾斜のプラットフォームに取り付けられる機械的に移動可能なものであってもよい。
【００１９】
センサシステム１１５には、他のセンサ、例えばソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサおよびオーディオセンサ（例えば、マイクロホン）が含まれてもよい。オーディオセンサは、自動運転車両の周囲の環境から音声を取得するように構成されてもよい。ステアリングセンサは、ステアリングホイール、車両の車輪またはそれらの組み合わせの操舵角を感知するように構成されてもよい。スロットルセンサおよびブレーキセンサはそれぞれ車両のスロットル位置およびブレーキ位置を感知する。ある場合に、スロットルセンサおよびブレーキセンサは集積型スロットル／ブレーキセンサとして統合されてもよい。
【００２０】
一実施形態では、車両制御システム１１１はステアリングユニット２０１、スロットルユニット２０２（加速ユニットともいう）およびブレーキユニット２０３を含むが、それらに限定されない。ステアリングユニット２０１は車両の方向または進行方向を調整するために用いられる。スロットルユニット２０２は電動機またはエンジンの速度を制御するために用いられ、電動機またはエンジンの速度は更に車両の速度および加速度を制御するために用いられる。ブレーキユニット２０３は、摩擦を与えることによって車両の車輪またはタイヤを減速させることで、車両を減速させる。注意すべきなのは、図２に示された構成要素は、ハードウェア、ソフトウェアまたはそれらの組み合わせで実現されることができる。
【００２１】
図１を再び参照して、無線通信システム１１２は、自動運転車両１０１と、装置、センサ、他の車両などのような外部システムとの通信を可能にする。例えば、無線通信システム１１２は、直接または通信ネットワークを介して、１つまたは複数の装置と無線通信することができ、例えば、ネットワーク１０２を介してサーバ１０３〜１０４と通信することができる。無線通信システム１１２は、如何なるセルラー通信ネットワークまたは無線ローカルエリアネットワーク（ＷＬＡＮ）、例えばＷｉＦｉを使用して他の構成要素またはシステムと通信することができる。無線通信システム１１２は、例えば赤外線リンク、ブルートゥースなどを使用して、装置（例えば、乗員のモバイルデバイス、表示装置、車両１０１内のスピーカ）と直接通信することができる。ユーザインターフェースシステム１１３は、車両１０１内に実現された周辺装置の部分（例えば、キーボード、タッチスクリーン表示装置、マイクロホンおよびスピーカなどを含む）であってもよい。
【００２２】
自動運転車両１０１の機能のうちの一部または全部は、特に自動運転モードで動作する場合に、感知・計画システム１１０により制御されるか、または管理されることができる。感知・計画システム１１０は、センサシステム１１５、制御システム１１１、無線通信システム１１２および／またはユーザインターフェースシステム１１３から情報を受信し、受信された情報を処理し、出発地から目的地までのルートまたは経路を計画した後に、計画および制御情報に基づいて車両１０１を運転するために、必要なハードウェア（例えば、プロセッサ、メモリ、記憶デバイス）並びにソフトウェア（例えば、オペレーティングシステム、計画およびルーティングプログラム）を備える。あるいは、感知・計画システム１１０は車両制御システム１１１と一体に集積されてもよい。
【００２３】
例えば、乗員であるユーザは、例えばユーザインターフェースを介して旅程の出発地位置および目的地を指定することができる。感知・計画システム１１０は旅程に関連するデータを取得する。例えば、感知・計画システム１１０は、ＭＰＯＩサーバから位置およびルート情報を取得することができる。前記ＭＰＯＩサーバは、サーバ１０３〜１０４の一部であってもよい。位置サーバは位置サービスを提供し、ＭＰＯＩサーバは地図サービスおよび特定位置のＰＯＩを提供する。あるいは、このような位置およびＭＰＯＩ情報は、感知・計画システム１１０の永続性記憶装置にローカルキャッシュされてもよい。
【００２４】
自動運転車両１０１がルートに沿って移動している場合に、感知・計画システム１１０は交通情報システムまたはサーバ（ＴＩＳ）からリアルタイム交通情報を取得することもできる。なお、サーバ１０３〜１０４は第三者機関によって操作可能である。あるいは、サーバ１０３〜１０４の機能は、感知・計画システム１１０と一体に集積されてもよい。感知・計画システム１１０は、リアルタイム交通情報、ＭＰＯＩ情報および位置情報、並びにセンサシステム１１５により検出または感知されたリアルタイムローカル環境データ（例えば、障害物、オブジェクト、付近の車両）に基づいて、所定の目的地まで安全的且つ効率的に到達するために、最適なルートを計画し、且つ計画されたルートに従って例えば制御システム１１１を介して車両１０１を運転することができる。
【００２５】
サーバ１０３は、様々なクライアントに対してデータ解析サービスを実行するデータ解析システムであってもよい。一実施形態では、データ解析システム１０３は、データコレクタ１２１と、機械学習エンジン１２２とを備える。データコレクタ１２１は、様々な車両（自動運転車両または人間の運転手によって運転される一般車両）から運転統計データ１２３を収集する。運転統計データ１２３には、発行された運転コマンド（例えば、スロットルコマンド、ブレーキコマンド、ステアリングコマンド）を示す情報および異なる時点で車両のセンサによりキャプチャされた車両の応答（例えば、速度、加速度、減速度、方向）を示す情報が含まれる。運転統計データ１２３はさらに、異なる時点における走行環境を記述する情報、例えば、ルート（出発地位置および目的地位置を含む）、ＭＰＯＩ、道路状況、天気状況などを含んでもよい。
【００２６】
機械学習エンジン１２２は、運転統計データ１２３に基づいて、様々な目的に応じてルール、アルゴリズムおよび／または予測モデル１２４の集合を生成するかまたは訓練する。一実施形態では、アルゴリズム１２４は、以下でさらに詳細に説明する感知、予測、決定、計画および／または制御プロセスのためのルールまたはアルゴリズムを含むことができる。その後、アルゴリズム１２４を自動運転中にリアルタイムで利用するためにＡＤＶにアップロードすることができる。
【００２７】
図３Ａおよび図３Ｂは、一実施形態に係る自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。システム３００は、図１の自動運転車両１０１の一部として実現されてもよく、感知・計画システム１１０、制御システム１１１およびセンサシステム１１５を含むが、それらに限定されない。図３Ａおよび図３Ｂに示すように、感知・計画システム１１０は、測位モジュール３０１、感知モジュール３０２、予測モジュール３０３、決定モジュール３０４、計画モジュール３０５、制御モジュール３０６およびルーティングモジュール３０７を含むが、それらに限定されない。
【００２８】
モジュール３０１〜３０７のうちの一部または全部は、ソフトウェア、ハードウェアまたはそれらの組み合わせで実現されていてもよい。例えば、これらのモジュールは、永続性記憶装置３５２にインストールされ、メモリ３５１にロードされ、且つ１つまたは複数のプロセッサ（図示せず）により実行されてもよい。なお、これらのモジュールのうちの一部または全部は、図２の車両制御システム１１１の一部または全部のモジュールに通信可能に接続されるか、または統合されてもよい。モジュール３０１〜３０７のうちの一部は、集積モジュールとして一体に統合されてもよい。
【００２９】
測位モジュール３０１（地図・ルートモジュールともいう）は、ユーザの旅程またはルートに関連する如何なるデータを管理する。ユーザは、例えばユーザインターフェースを経由してログインして旅程の出発地位置および目的地を指定することができる。測位モジュール３０１は、自動運転車両３００における地図・ルート情報３１１のような他の構成要素と通信して旅程に関するデータを取得する。例えば、測位モジュール３０１は、位置サーバおよび地図・ＰＯＩ（ＭＰＯＩ）サーバから位置およびルート情報を取得することができる。位置サーバは位置サービスを提供し、ＭＰＯＩサーバは地図サービスおよび特定位置のＰＯＩを提供することにより、地図・ルート情報３１１の一部としてキャッシュされることができる。自動運転車両３００がルートに沿って移動する際に、測位モジュール３０１は交通情報システムまたはサーバからリアルタイム交通情報を取得することもできる。
【００３０】
感知モジュール３０２は、センサシステム１１５により提供されたセンサデータと、測位モジュール３０１により取得された測位情報とに基づいて、周辺の環境への感知を確定する。感知情報は、通常の運転手が運転している車両の周囲で何を感知するかを表すことができる。感知は、例えば、車線構成、信号機信号、他の車両の相対位置、歩行者、建築物、横断歩道またはオブジェクトの形式の他の交通関連標識（例えば、止まれ標識、ゆずれ標識）などを含むことができる。車線構成は、例えば、車線の形状（例えば、直線またはカーブ）、車線の幅、道路内の車線数、一方向または二方向車線、合流車線または分流車線、退出車線など、１つまたは複数の車線を記述する情報を含む。
【００３１】
感知モジュール３０２は、１つまたは複数のカメラによりキャプチャされた画像を処理し解析して自動運転車両の環境におけるオブジェクトおよび／または特徴を認識するために、コンピュータビジョンシステムまたはコンピュータビジョンシステムの機能を含むことができる。オブジェクトは、交通信号、道路の境界、他の車両、歩行者および／または障害物などを含むことができる。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオトラッキングおよび他のコンピュータビジョン技術を使用することができる。いくつかの実施形態では、コンピュータビジョンシステムは、環境のマッピング、オブジェクトの追跡、およびオブジェクトの速度推定などができる。感知モジュール３０２は、レーダおよび／またはＬＩＤＡＲのような他のセンサにより提供される他のセンサデータに基づいてオブジェクトを検出することもできる。
【００３２】
各オブジェクトについて、予測モジュール３０３は、この場合にオブジェクトがどのように挙動するかを予測する。前記予測は、地図・ルート情報３１１と交通ルール３１２のセットに応じて、該時点において走行環境が感知された感知データに基づいて実行される。例えば、オブジェクトが反対方向の車両であり、且つ現在の走行環境には交差点が含まれる場合、予測モジュール３０３は、該車両が直線する可能性があるのか、それとも旋回する可能性があるのかを予測する。交差点に信号機がないと感知データにより示された場合に、予測モジュール３０３は、該車両が交差点に入る前に完全に停車する必要があると予測することが可能である。車両が現在左折専用車線または右折専用車線にあると感知データにより示された場合に、予測モジュール３０３は、該車両がそれぞれ左折または右折する可能性が高いと予測可能である。
【００３３】
オブジェクトごとに対して、決定モジュール３０４はオブジェクトをどのように処置するかを判定する。例えば、特定のオブジェクト（例えば、交差のルートにおける他の車両）および該オブジェクトを記述するメタデータ（例えば、速度、方向、操舵角）について、決定モジュール３０４はオブジェクトと遇うときに如何に対応するか（例えば、追い越し、道譲り、停止、追い抜き）を決定する。決定モジュール３０４は、交通ルールまたは運転ルール３１２のルールセットに基づいてこのような決定を下すことができる、これらのルールは永続性記憶装置３５２に格納されることができる。
【００３４】
ルーティングモジュール３０７は、出発地から目的地までの１つまたは複数のルートまたは経路を提供するように構成される。例えばユーザから受信された出発地位置から目的地位置までの所定の旅程について、ルーティングモジュール３０７は地図・ルート情報３１１を取得し、出発地位置から目的地位置までの全ての走行可能なルートまたは経路を決定する。ルーティングモジュール３０７は、決定された各ルートについて出発地位置から目的地位置までの基準線を地形図の形で生成することができる。基準線とは、他の車両、障害物または交通状況など、他のものから干渉を受けていない理想的なルートまたは経路を指す。つまり、道路には他の車両、歩行者または障害物がない場合に、ＡＤＶは基準線に完全的にまたは密接的に従うべきである。そして、地形図を決定モジュール３０４および／または計画モジュール３０５に提供する。決定モジュール３０４および／または計画モジュール３０５は、他のモジュールにより提供された他のデータ（例えば測位モジュール３０１からの交通状况、感知モジュール３０２により感知された走行環境および予測モジュール３０３により予測された交通状况）に応じて、全ての走行可能なルートを検査して最適なルートのうちの一つを選択および補正する。該時点における特定の走行環境に応じて、ＡＤＶを制御するための実際の経路またはルートは、ルーティングモジュール３０７によって提供される基準線に近いかまたは異なっていてもよい。
【００３５】
感知されたオブジェクトのそれぞれに対する決定に基づいて、計画モジュール３０５は、ルーティングモジュール３０７によって提供された基準線をベースとし、自動運転車両の経路またはルートおよび運転パラメータ（例えば、距離、速度および／または操舵角）を計画する。すなわち、所与のオブジェクトについて、決定モジュール３０４はそのオブジェクトに何をすべきかを決定し、計画モジュール３０５はどのように実行するかを決定する。例えば、所与のオブジェクトについて、決定モジュール３０４は、オブジェクトを追い抜くかを決定することができ、計画モジュール３０５はオブジェクトを左側から追い抜くかまたは右側から追い抜くかを判定することができる。計画モジュール３０５は、車両３００が次の移動周期（例えば、次のルート／経路区間）にはどのように移動するかを記述する情報を含む計画・制御データを生成する。例えば、計画・制御データは、車両３００が３０マイル／時間（ｍｐｈ）の速度で１０メートル移動し、その後に２５ｍｐｈの速度で右車線に変更するように指示することができる。
【００３６】
制御モジュール３０６は、計画・制御データに基づいて、計画・制御データにより限定されたルートまたは経路に応じて適当なコマンド若しくは信号を車両制御システム１１１に送信することにより自動運転車両を制御および走行させる。前記計画・制御データは、適切な車両構成または経路またはルートに沿う異なる時点における運転パラメータ（例えば、スロットルコマンド、ブレーキコマンドおよびステアリングコマンド）を使用して、車両をルートまたは経路の第１の点から第２の点まで走行させるのに十分な情報を含む。
【００３７】
一実施形態では、計画段階は、例えば、時間間隔が１００ミリ秒（ｍｓ）の周期など、複数の計画周期（運転周期ともいう）で実行される。計画周期または運転周期のそれぞれについて、計画・制御データに基づいて１つまたは複数の制御コマンドを発する。つまり、１００ｍｓ毎に、計画モジュール３０５は次のルート区間または経路区間を計画し、例えば、目標位置およびＡＤＶが目標位置に到着するのに必要な時間が含まれる。あるいは、計画モジュール３０５は、特定の速度、方向、および／または操舵角などを更に指定することができる。一実施形態では、計画モジュール３０５は、次の所定期間（例えば、５秒）のルート区間または経路区間を計画する。各計画周期について、計画モジュール３０５は前の周期において計画された目標位置に基づいて現在の周期（例えば、次の５秒）における目標位置を計画する。そして、制御モジュール３０６は、現在の周期における計画・制御データに基づいて１つまたは複数の制御コマンド（例えば、スロットル制御コマンド、ブレーキ制御コマンド、ステアリング制御コマンド）を生成する。
【００３８】
なお、決定モジュール３０４と計画モジュール３０５は、集積モジュールとして集積されることができる。決定モジュール３０４／計画モジュール３０５は、自動運転車両の走行経路を決定するために、ナビゲーションシステムまたはナビゲーションシステムの機能を具備することができる。例えば、ナビゲーションシステムは、自動運転車両が下記の経路に沿って移動することに影響を与えるための一連の速度および進行方向を決定することができる。前記経路では、自動運転車両が最終的な目的地に通じる走行車線に基づく経路に沿って進行すると共に、感知された障害物を実質的に回避できる。目的地は、ユーザインターフェースシステム１１３を介してユーザ入力によって設定されることができる。ナビゲーションシステムは、自動運転車両が走行していると同時に走行経路を動的に更新することができる。ナビゲーションシステムは、自動運転車両の走行経路を決定するために、ＧＰＳシステムからのデータを１つまたは複数の地図に取り入れることができる。
【００３９】
図４は、一実施形態に係る自動運転のためのシステムアーキテクチャを示すブロック図である。システムアーキテクチャ４００は、図３Ａおよび図３Ｂに示すような自動運転システムのシステムアーキテクチャを表すことができる。図４を参照すると、システムアーキテクチャ４００は、アプリケーション層４０１、計画・制御（ＰＮＣ）層４０２、感知層４０３、デバイスドライバ層４０４、ファームウェア層４０５およびハードウェア層４０６を含むが、それらに限定されない。アプリケーション層４０１は、例えばユーザインターフェースシステム１１３に関連する機能のような、自動運転車両のユーザまたは乗員と対話するユーザインターフェースまたは構成アプリケーションを含むことができる。ＰＮＣ層４０２は、少なくとも計画モジュール３０５および制御モジュール３０６の機能を含むことができる。感知層４０３は、少なくとも感知モジュール３０２の機能を含むことができる。一実施形態では、予測モジュール３０３および／または決定モジュール３０４の機能を含む付加層がある。あるいは、これらの機能は、ＰＮＣ層４０２および／または感知層４０３に含まれてもよい。システムアーキテクチャ４００は、デバイスドライバ層４０４、ファームウェア層４０５、およびハードウェア層４０６をさらに含む。ファームウェア層４０５は、少なくともフィールドプログラマブルゲートアレイ（ＦＰＧＡ）の形態で実施可能なセンサシステム１１５の機能を表すことができる。ハードウェア層４０６は、制御システム１１１のような自動運転車両のハードウェアを表すことができる。層４０１〜層４０３は、デバイスドライバ層４０４を介してファームウェア層４０５およびハードウェア層４０６と通信することができる。
【００４０】
図５Ａは、本発明の一実施形態に係るセンサシステムの一例を示すブロック図である。図５Ａを参照すると、センサシステム１１５は、複数のセンサ５１０と、ホストシステム１１０に接続されるセンサユニット５００とを備える。ホストシステム１１０は、上述したような計画・制御システムを表し、計画・制御システムは図３Ａおよび図３Ｂに示されるモジュールの少なくとも一部を含んでいてもよい。センサユニット５００は、ＦＰＧＡデバイスまたはＡＳＩＣ（特定用途向け集積回路）デバイスの形態で実現されることができる。一実施形態では、センサユニット５００は、特に、１つまたは複数のセンサデータ処理モジュール５０１（単にセンサ処理モジュールともいう）、データ転送モジュール５０２、およびセンサ制御モジュールまたはロジック５０３を備える。モジュール５０１〜５０３は、センサインターフェース５０４を介してセンサ５１０と通信することができ、ホストインターフェース５０５を介してホストシステム１１０と通信することができる。任意選択で、データをバッファリングして処理するために内部または外部バッファ５０６を利用することができる。
【００４１】
一実施形態では、受信経路または上流方向に関して、センサ処理モジュール５０１は、センサインターフェース５０４を介してセンサからセンサデータを受信して処理（例えば、フォーマット変換、エラー検査）するように構成され、センサデータはバッファ５０６に一時的に格納可能である。データ転送モジュール５０２は、ホストインターフェース５０５と互換性のある通信プロトコルを使用して処理済みデータをホストシステム１１０に転送するように構成される。同様に、送信経路または下流方向に関して、データ転送モジュール５０２は、ホストシステム１１０からデータまたはコマンドを受信するように構成される。次いで、データは、センサ処理モジュール５０１によって、対応するセンサと互換性のあるフォーマットに処理される。次いで、処理済みデータはセンサに送信される。
【００４２】
一実施形態では、センサ制御モジュールまたはロジック５０３は、ホストインターフェース５０５を介してホストシステム（例えば、感知モジュール３０２）から受信されたコマンドに応答して、センサ５１０の特定の動作（例えば、センサデータをキャプチャする起動タイミング）を制御するように構成される。ホストシステム１１０は、センサデータを任意の時点で車両の周囲の走行環境を感知するために利用可能にするように、センサデータを協調的および／または同期的にキャプチャするようにセンサ５１０を構成することができる。
【００４３】
センサインターフェース５０４は、イーサネット、ＵＳＢ（ユニバーサルシリアルバス）、ＬＴＥ（ロングタームエボリューション）またはセルラー、ＷｉＦｉ、ＧＰＳ、カメラ、ＣＡＮ、シリアル（例えば、ユニバーサル非同期送受信機またはＵＡＲＴ）、ＳＩＭ（加入者識別モジュール）カード、およびその他の汎用入出力（ＧＰＩＯ）インターフェースのうちの１つまたは複数を含んでいてもよい。ホストインターフェース５０５は、ＰＣＩｅ（周辺構成要素相互接続またはＰＣＩエクスプレス）インターフェースのような任意の高速または高帯域幅インターフェースであってもよい。センサ５１０は、自動運転車両で利用される様々なセンサを含むことができ、例えば、カメラ、ＬＩＤＡＲデバイス、レーダーデバイス、ＧＰＳ受信機、ＩＭＵ、超音波センサ、ＧＮＳＳ（全地球航法衛星システム）受信機、ＬＴＥまたはセルラーＳＩＭカード、車両センサ（例えば、スロットルセンサ、ブレーキセンサ、ステアリングセンサ）およびシステムセンサ（例えば、温度センサ、湿度センサ、圧力センサ）などが挙げられる。
【００４４】
例えば、カメラは、イーサネットまたはＧＰＩＯインターフェースを介して接続されることができる。ＧＰＳセンサは、ＵＳＢまたは特定のＧＰＳインターフェースを介して接続されることができる。車両センサはＣＡＮインターフェースを介して接続されることができる。レーダーセンサまたは超音波センサは、ＧＰＩＯインターフェースを介して接続されることができる。ＬＩＤＡＲデバイスは、イーサネットインターフェースを介して接続されることができる。外部のＳＩＭモジュールはＬＴＥインターフェースを介して接続されることができる。同様に、内部のＳＩＭモジュールは、センサユニット５００のＳＩＭソケットに挿入可能である。ＵＡＲＴなどのシリアルインターフェースは、デバッグ目的でコンソールシステムと接続されることができる。
【００４５】
なお、センサ５１０は、様々な販売業者または供給業者によって提供される任意のタイプのセンサとすることができる。センサ処理モジュール５０１は、異なるタイプのセンサ並びにそれぞれのデータフォーマットおよび通信プロトコルを処理するように構成される。一実施形態によれば、各センサ５１０は、センサデータを処理してホストシステム１１０と対応するセンサとの間で処理済みセンサデータを転送するために、特定のチャネルに関連付けられている。各チャネルは、図５Ｂに示すように、対応するセンサデータおよびプロトコルを処理するように構成またはプログラムされた、特定のセンサ処理モジュールおよび特定のデータ転送モジュールを備える。
【００４６】
次に図５Ｂを参照すると、センサ処理モジュール５０１Ａ〜５０１Ｃは特に、センサ５１０Ａ〜５１０Ｃから得られたセンサデータを処理するように構成されている。なお、センサ５１０Ａ〜５１０Ｃは、同じタイプまたは異なるタイプのセンサであってもよい。センサ処理モジュール５０１Ａ〜５０１Ｃは、異なるタイプのセンサに対して異なるセンサプロセスを処理するように構成されることができる（例えば、ソフトウェア設定変更が可能である）。例えば、センサ５１０Ａがカメラである場合、処理モジュール５０１Ａは、カメラ５１０Ａによってキャプチャされた画像を表す特定の画素データに関する画素処理動作を処理するように構成されてもよい。同様に、センサ５１０ＡがＬＩＤＡＲデバイスである場合、処理モジュール５０１Ａは、特にＬＩＤＡＲデータを処理するように構成される。言い換えると、一実施形態によれば、特定のセンサの特定のタイプに応じて、その対応する処理モジュールは、センサデータの種類に対応する特定のプロセスまたは方法を使用して対応するセンサデータを処理するように構成されることができる。
【００４７】
同様に、データ転送モジュール５０２Ａ〜５０２Ｃは、異なる種類のセンサデータが、異なるサイズまたは異なる速度若しくはタイミング要件を必要とする感度であり得るので、異なるモードで動作するように構成されることができる。一実施形態によれば、データ転送モジュール５０２Ａ〜５０２Ｃのそれぞれは、低遅延モード、高帯域幅モードおよびメモリモード（固定メモリモードともいう）のうちの１つのモードで動作するように構成されることができる。
【００４８】
一実施形態によれば、低遅延モードで動作しているとき、データ転送モジュール（例えば、データ転送モジュール５０２）は、センサから受信されたセンサデータを遅延伴わずにまたは最小遅延で可能な限り早くホストシステムに送信するように構成される。センサデータの一部は、タイミングに関して非常に感度が高いものがあり、できるだけ早く処理する必要がある。そのようなセンサデータの例としては、車速、加速度、操舵角などのような車両状態を含む。
【００４９】
一実施形態によれば、高帯域幅モードで動作しているとき、データ転送モジュール（例えば、データ転送モジュール５０２）は、センサから受信されたセンサデータを所定の量まで累積するように構成されるが、依然としてデータ転送モジュールとホストシステム１１０との間の接続の帯域幅内にある。次いで、累積されたセンサデータは、データ転送モジュールとホストシステム１１０との間の接続の帯域幅を最大限に利用するバッチでホストシステム１１０に転送される。通常、高帯域幅モードは、大量のセンサデータを生成するセンサに利用される。そのようなセンサデータの例としては、カメラの画素データが挙げられる。
【００５０】
一実施形態によれば、メモリモードで動作するとき、データ転送モジュールは、センサから受信されたセンサデータを、共有メモリページと同様にホストシステム１１０のマップメモリのメモリ位置に直接書き込むように構成される。メモリモードを使用して転送されるセンサデータの例には、温度、ファン速度などのシステム状態データが含まれる。
【００５１】
一実施形態によれば、センサ５１０Ａ〜５１０Ｃのそれぞれは、センサ制御モジュール５０３Ａ〜５０３Ｃのような対応するセンサ制御モジュールと関連付けられている。あるいは、センサ制御モジュール５０３Ａ〜５０３Ｃのうちの少なくともいくつかは、センサ５１０Ａ〜５１０Ｃのうちの少なくともいくつかによって共有される統合センサ制御モジュールと一体に統合されてもよい。センサ制御モジュール５０３Ａ〜５０３Ｃのそれぞれは、対応するセンサおよびホストシステム１１０と通信するように構成されている。ホストシステム１１０から受信されたコマンドに応答して、センサ制御モジュールは、対応するセンサの動作の少なくとも一部を制御するために利用可能である。
【００５２】
一実施形態では、各センサ制御モジュールは、対応するセンサの特定の動作を制御するための制御信号を生成するように構成される。例えば、ホストシステム１１０の感知モジュールまたは計画モジュールは、車両の周囲の走行環境を確定し感知することの一部として、特定のカメラによって特定の時刻に画像をキャプチャするように要求されることが可能である。ホストシステムは、ホストインターフェース５０５を介して、カメラに関連付けられたセンサ制御モジュールにコマンドを送信して、カメラにその特定の時刻に画像をキャプチャするように要求することができる。該要求はさらに、特定のカメラが画像をどのくらいの頻度でキャプチャすべきかを指定する情報（たとえば、毎秒のフレーム数）および他のタイミング情報（たとえば、遅延オフセット、パルス幅および極性など）を指定する情報を含むことができる。該要求に基づいて、センサ制御モジュールは適切な制御信号を生成し、センサインターフェース５０４を介して制御信号をセンサに送信するように構成される。
【００５３】
なお、自動運転では、環境内をナビゲートして如何なる衝突を回避するために、走行環境の認識ができるだけ明確で正確であることが求められる。従って、ホストシステムは、異なるセンサを異なるタイミングおよび方式で動作するように協調的に制御することを望む可能性がある。例えば、前方に取り付けられたカメラは、車両の後方または側方に取り付けられたカメラとは異なるタイミングで動作することができる。特定のセンサ制御モジュールを利用することによって、ホストシステム１１０は、車両の周囲の走行環境をより良くより正確に感知することができる。
【００５４】
一実施形態によれば、センサ処理モジュール５０１Ａ〜５０１Ｃのそれぞれは、対応するセンサからセンサデータを取得するように構成されるデータ取得モジュールを備える。例えば、カメラなどの画像センサの場合、対応するセンサ処理モジュールは、カメラデータ取得モジュールを備えるか、またはそれとして実施される。
【００５５】
図６は、一実施形態に係るセンサ処理モジュールの一例を示すブロック図である。図６を参照すると、この例では、センサ５１０はカメラであり、センサ処理モジュール５０１はカメラ５１０から画像／カメラデータを取得するためのカメラデータ取得モジュールである。一実施形態によれば、センサ処理モジュール５０１は、センサインターフェースモジュール６０１と、画素アライメントモジュール（画素処理モジュールともいう）６０２と、フレーム処理モジュール６０３と、ホストインターフェースモジュール６０４とを備える。画素アライメントモジュール６０２は、カメラ５１０から受信された画像データを画素レベルで処理するように構成されている。
【００５６】
一実施形態では、画素アライメントモジュール６０２は、特定のタイプのカメラに対応する特定のフォーマット（例えば、ＹＵＶ、ＲＧＢ）から、ホストシステム１１０によって認識されるかまたはそれと合意される共通フォーマットへと画素データを処理することができる。画素アライメントモジュール６０２は、如何なる画素エラーを検出するために画素エラー検出器６１３を備えるかまたは呼び出すことができる。例えば、画素エラー検出器６１３は、画像データ内に十分な量の画素があるか否かを検出することができる。画素エラー検出器６１３はさらに、画像データがカメラトランスミッションプロトコルに違反しているか否かを検出することができる。
【００５７】
一実施形態では、フレーム処理モジュール６０３は、画素アライメントモジュール６０２によって処理された画素データを受信し、ホストシステム１１０の所定のフォーマットに一致する画像フレームまたは画像パケットを構築し、ホストシステム１１０に関連付けられた所定のトランスミッションプロトコルを使用して画像フレームをホストシステム１１０に送信するように構成される。フレーム処理モジュール６０３は、フレームレベルの如何なるエラーを検出するためにフレームエラー検出器６１４をさらに備えるかまたは呼び出すことができる。すなわち、画素エラー検出器６１３は画素レベルでデータの完全性を検査するように構成され、フレームエラー検出器６１４はフレームレベルでデータの完全性を検査するように構成される。例えば、フレームエラー検出器６１４は、画素アライメントモジュール６０２によって提供された画素データに基づいて構築された特定の画像フレームが規則的なフレーム（例えば、良好なフレーム）であるか否か、または不規則なフレーム（例えば、短フレームまたは長フレーム）であるか否かを判定する。ホストシステムがメタデータに基づいて画像フレームを処理できるように、エラー情報は、ホストシステムに送信されるフレームのメタデータの一部として画像フレームに含まれてもよい。
【００５８】
一実施形態によれば、センサインターフェースモジュール６０１は、センサシミュレータまたはシミュレーションモジュール６１１を備える。センサシミュレータ６１１は、実際のセンサを使用する必要なしに対応するセンサをシミュレートするように構成される。例えば、センサシミュレータ６１１は、対応するセンサによって生成可能なものをシミュレートする信号またはデータを生成することができる。センサシミュレータ６１１は、画素アライメントモジュール６０２および／またはフレーム処理モジュール６０３が実際のセンサと通信しているかのように、画素アライメントモジュール６０２および／またはフレーム処理モジュール６０３との通信に反応する。シミュレートされたデータは、実際のセンサを使用する必要なしに、センサ処理モジュール５０１、データ転送モジュール５０２、および／またはセンサ制御モジュール５０３の機能を試験または検証（例えば、デバッグ）するために利用することができる。
【００５９】
また、一実施形態では、センサインターフェースモジュール６０１は、センサ５１０から受信された各画像データについてタイムスタンプを生成するためのタイムスタンプ生成器またはロジック６１５をさらに備える。タイムスタンプ生成器６１５は、タイムスタンプを導出するために、タイムソースまたはクロックソース（例えば、ローカルクロックまたは発振器、ＧＰＳ信号源（図示せず））に接続されてもよい。タイムスタンプは、センサ５１０から画像データを受信する時刻を表すために利用される。タイムスタンプ情報は、ホストシステム１１０に送信されるためにフレーム処理モジュール６０３によって生成された画像フレームに含まれてもよい。タイムスタンプ情報は、テストまたはデバッグの目的だけでなく、走行環境の感知にも役立つ。
【００６０】
また、一実施形態によれば、センサ処理モジュール５０１は、センサ制御モジュール５０３からトリガタイミング情報を受信するためのトリガカウンタ（またはタイムスタンプ生成器）６１６をさらに備える。上述したように、センサ制御モジュール５０３は、センサ５１０の動作を制御するための制御コマンドまたは信号を生成し送信するように構成される。制御信号のうちの１つは、センサ５１０をトリガまたは起動するためのトリガ信号であり、この例では、センサは特定の時刻に画像をキャプチャするためのカメラである。センサ制御モジュール５０３がトリガ信号をセンサ５１０に送信すると、トリガカウンタ６１６は、例えば、トリガカウンタ６１６によって維持されているカウント値を逓増することによって更新される。従って、トリガカウンタ６１６によって維持されるカウント値はコマンド送信時刻を表し、タイムスタンプ生成器６１５によって生成されたタイムスタンプは画像データの受信時刻を表す。２つのタイムスタンプ間の差は、通常にセンサ５１０および／またはセンサユニットの動作遅延を表すことができる。
【００６１】
他の実施形態によれば、ホストインターフェースモジュール６０４は、ホストシミュレータまたはシミュレーションモジュール６１２を備える。ホストシミュレータ６１２は、実際のホストシステムを使用する必要なしに、ホストシステム１１０などのホストをシミュレートするように構成される。例えば、ホストシミュレータ６１２は、ホストシステムが生成可能なものをシミュレートするホスト信号またはデータを生成することができる。ホストシミュレータ６１２は、画素アライメントモジュール６０２および／またはフレーム処理モジュール６０３が実際のホストシステムと通信しているかのように、画素アライメントモジュール６０２および／またはフレーム処理モジュール６０３との通信に反応する。シミュレートされたデータまたはコマンドは、実際のホストシステムを使用する必要なしに、センサ処理モジュール５０１、データ転送モジュール５０２、および／またはセンサ制御モジュール５０３の機能を試験または検証（例えば、デバッグ）するために利用することができる。
【００６２】
なお、センサ処理モジュールは、センサデータをバッファするためにローカルメモリなどのローカルバッファを使用または維持する必要なしにデータ転送モジュールに接続される。データ転送モジュールは、ローカルメモリを使用する必要なしにセンサデータが高速またはオンザフライで処理されるように、ＰＣＩｅリンクなどの高帯域幅接続を介してホストシステムに接続される。
【００６３】
図７は、一実施形態に係る画像フレームのデータ構造の一例を示すブロック図である。画像フレーム７００は、フレーム処理モジュール６０３によって生成されてホストシステム１１０に送信されてもよい。図７を参照すると、画像フレームを表すデータ構造７００は、画像データを格納するためのデータ領域７０１を含む。データ構造７００は、少なくともフレームメタデータを格納するためのメタデータフィールド７０２〜７０６をさらに備える。メタデータは、センサ制御モジュールによってセンサに送信された複数のトリガ信号をカウントするトリガカウント７０２を含む。トリガタイムスタンプ７０３は、センサ制御モジュールがセンサにトリガ信号を送信するトリガ時刻を表すタイムスタンプであり、該トリガ信号によってセンサは画像データ７０１をキャプチャするように起動される。受信タイムスタンプ７０４は、画像データ７０１をセンサから受信する時刻を表すタイムスタンプを格納する。フレームマーカ７０５は、画像データ７０１を記述する任意のマーカまたは他の属性を格納する。例えば、フレームマーカ７０５は、画像データ７０１が有効な画像データであるか否かを示す情報を格納してもよい。エラーコード７０６は、画像フレーム７００が正常フレームであるか不規則フレーム（例えば、短フレームまたは長フレーム）であるかを示すコードまたはデータを格納するために使用される。短フレームの場合、処理ロジックは、残りの空き領域を埋めるために所定の画素値を埋め込むことができる。長フレームの場合、処理ロジックは、画像データをカットして予想されるフレームサイズに制限することができる。
【００６４】
図８は、一実施形態に係るセンサデータを取得および処理するプロセスを示すフローチャートである。プロセス８００は、処理ロジックにより実行可能であり、処理ロジックはソフトウェア、ハードウェア、またはそれらの組み合わせを備えていてもよい。例えば、プロセス８００は、図６に示すセンサ処理モジュール５０１によって実行されてもよい。図８を参照すると、動作８０１において、処理ロジックは、センサインターフェースを介してセンサからセンサデータを受信する。センサデータは、カメラから受信された画像または画素データであってもよい。センサインターフェースはさらに、受信されたセンサデータに、センサデータを受信した時刻を示すタイムスタンプを付けることができる。動作８０２において、処理ロジックは、センサデータ（例えば、生センサデータ）を、特定のセンサに対応するフォーマット（例えばＹＵＶ、ＲＧＢ）から所定のフォーマットまたはホストシステムと合意したフォーマットに変換する。処理ロジックは、センサデータに対してエラー検出をさらに実行してもよい。カメラから受信された画素データの例では、処理ロジックは、画像データに十分な量の画素があるか否か、または画像データがセンサまたはセンサインターフェースに関連する通信プロトコル（例えば、完全性検査失敗（ｆａｉｌｅｄ  ｉｎｔｅｇｒｉｔｙ））に違反しているか否かを検出することができる。動作８０３において、処理ロジックは、センサデータに基づいてフレーム（例えば、画像フレーム）を生成し、ここで、フレームとホストシステムとは、（例えば、所望のフレームレートに従って）互換性がある。動作８０４において、処理ロジックは、センサトリガ形成（例えば、コマンドまたは送信タイムスタンプ）、エラーコード、受信タイムスタンプ、フレームマーカなどのような特定のフレームメタデータを埋め込む。動作８０５において、フレームは処理のためにデータ転送モジュールに送信され、次いでホストインターフェースを介してホストシステムに送信される。
【００６５】
なお、上記に示し説明した構成要素のいくつかまたはすべては、ソフトウェア、ハードウェア、またはそれらの組み合わせで実現されていてもよい。例えば、これらの構成要素は、本発明を通じて説明されるプロセスまたは動作を実行するためにプロセッサ（図示せず）によってメモリにロードされ実行されることができる永続性記憶装置にインストールおよび格納されるソフトウェアとして実現されていてもよい。あるいは、これらの構成要素は、集積回路（例えば、特定用途向け集積回路またはＡＳＩＣ）、デジタルシグナルプロセッサ（ＤＳＰ）、またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のような専用ハードウェアにプログラミングされたかまたは埋め込まれた実行可能なコードとして実現されてもよく、これらのハードウェアは、対応するドライバおよび／またはオペレーティングシステムを介してアプリケーションからアクセスすることができる。また、これらの構成要素は、ソフトウェア構成要素が１つまたは複数の特定の命令によってアクセス可能な命令セットの一部として、プロセッサまたはプロセッサコアにおける特定のハードウェアロジックとして実現されることができる。
【００６６】
図９は、本発明の一実施形態と組み合わせて使用可能なデータ処理システムの一例を示すブロック図である。例えば、システム１５００は、図１の感知・計画システム１１０、またはサーバ１０３〜１０４のいずれかのような、上述した前記プロセスまたは方法のいずれかを実行するデータ処理システムのいずれかを表すことができる。システム１５００は、いくつかの異なる構成要素を備えていてもよい。これらの構成要素は、集積回路（ＩＣ）、集積回路の一部、ディスクリート型電子デバイス、または回路基板（例えば、コンピュータシステムのマザーボードまたはアドインカード）に適するその他のモジュールとして実現されることができ、または、他の形態でコンピュータシステムのシャーシ内に組み込まれた構成要素として実現されることができる。
【００６７】
なお、システム１５００は、コンピュータシステムのいくつかの構成要素の高レベルビューを示すことを意図している。しかしながら、理解すべきなのは、いくつかの実施例において付加的構成要素が存在してもよく、また、その他の実施例において示された構成要素を異なる構成にすることが可能である。システム１５００は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤ、パーソナルデジタルアシスタント（ＰＤＡ）、スマートウォッチ、パーソナルコミュニケーター、ゲーム装置、ネットワークルーターまたはハブ、無線アクセスポイント（ＡＰ）またはリピーター、セット・トップボックス、またはそれらの組み合わせを表すことができる。また、単一の機械またはシステムのみが示されたが、「機械」または「システム」という用語は、本明細書で説明されるいずれか１つまたは複数の方法を実行するための、１つ（または複数）の命令セットを単独でまたは共同で実行する機械またはシステムの任意の組み合わせも含まれることを理解されたい。
【００６８】
一実施形態では、システム１５００は、バスまたはインターコネクト１５１０を介して接続される、プロセッサ１５０１と、メモリ１５０３と、装置１５０５〜１５０８とを含む。プロセッサ１５０１は、単一のプロセッサコアまたは複数のプロセッサコアが含まれる単一のプロセッサまたは複数のプロセッサを表すことが可能である。プロセッサ１５０１は、マイクロプロセッサ、中央処理装置（ＣＰＵ）などのような、１つまたは複数の汎用プロセッサを表すことができる。より具体的には、プロセッサ１５０１は、複雑命令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピューティング（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、またはその他の命令セットを実行するプロセッサ、または命令セットの組み合わせを実行するプロセッサであってもよい。プロセッサ１５０１は更に、例えば、特定用途向け集積回路（ＡＳＩＣ）、セルラー若しくはベースバンドプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、ネットワークプロセッサ、グラフィックプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組込みプロセッサ、または命令を処理可能な任意の他のタイプのロジックのような、１つまたは複数の専用プロセッサであってもよい。
【００６９】
プロセッサ１５０１は、超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよく、前記システムの様々な構成要素と通信するための主処理ユニットおよび中央ハブとして機能することができる。このようなプロセッサは、システムオンチップ（ＳｏＣ）として実装されてもよい。プロセッサ１５０１は、本明細書で説明される動作およびステップを実行するための命令を実行するように構成される。システム１５００は、更に任意選択グラフィックサブシステム１５０４と通信するグラフィックインターフェースを含むことができ、グラフィックサブシステム１５０４は、表示コントローラ、グラフィックプロセッサ、および／または表示装置を含むことができる。
【００７０】
プロセッサ１５０１は、メモリ１５０３と通信することができ、メモリ１５０３は、一実施形態では、所定量のシステムメモリを提供するための複数のメモリ装置によって実現されることができる。メモリ１５０３は、例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、またはその他のタイプの記憶装置のような、１つまたは複数の揮発性記憶（またはメモリ）装置を含むことができる。メモリ１５０３は、プロセッサ１５０１またはその他の任意の装置により実行される命令シーケンスを含む情報を格納することができる。例えば、様々なオペレーティングシステム、デバイスドライバ、ファームウェア（例えば、ベーシックインプット／アウトプットシステムまたはＢＩＯＳ）、および／またはアプリケーションの実行可能なコードおよび／またはデータは、メモリ１５０３にロードされ、プロセッサ１５０１により実行されることができる。オペレーティングシステムは、例えば、ロボットオペレーティングシステム（ＲＯＳ）、Ｍｉｃｒｏｓｏｆｔ（登録商標）社のＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム、アップル社のＭａｃＯＳ（登録商標）／ｉＯＳ（登録商標）、Ｇｏｏｇｌｅ（登録商標）社のＡｎｄｒｏｉｄ（登録商標）、ＬＩＮＵＸ、ＵＮＩＸ、またはその他のリアルタイム若しくは組込みオペレーティングシステムのような、任意のタイプのオペレーティングシステムであってもよい。
【００７１】
システム１５００は、例えば、ネットワークインターフェース装置１５０５、任意選択入力装置１５０６、およびその他の任意選択Ｉ／Ｏ装置１５０７を含む装置１５０５〜１５０８のようなＩ／Ｏ装置を更に含むことができる。ネットワークインターフェース装置１５０５は、無線送受信機および／またはネットワークインターフェースカード（ＮＩＣ）を備えていてもよい。前記無線送受信機は、ＷｉＦｉ送受信機、赤外線送受信機、ブルートゥース送受信機、ＷｉＭａｘ送受信機、無線携帯電話送受信機、衛星送受信機（例えば、全地球測位システム（ＧＰＳ）送受信機）、またはその他の無線周波数（ＲＦ）送受信機、またはそれらの組み合わせであってもよい。ＮＩＣは、イーサネットカードであってもよい。
【００７２】
入力装置１５０６は、マウス、タッチパネル、タッチスクリーン（表示装置１５０４と統合されてもよい）、ポインター装置（例えば、スタイラス）、および／またはキーボード（例えば、物理キーボードまたはタッチスクリーンの一部として表示された仮想キーボード）を含むことができる。例えば、入力装置１５０６は、タッチスクリーンに接続されるタッチスクリーンコントローラを備えていてもよい。タッチスクリーンおよびタッチスクリーンコントローラは、例えば、様々なタッチ感応技術（コンデンサ、抵抗、赤外線、および表面弾性波の技術を含むが、それらに限定されない）のいずれか、並びにその他の近接センサアレイ、または、タッチスクリーンと接触する１つまたは複数の点を確定するためのその他の素子を用いて、それらの接触、移動または中断を検出することができる。
【００７３】
Ｉ／Ｏ装置１５０７は、音声装置を含むことができる。音声装置は、例えば、音声認識、音声複製、デジタル記録、および／または電話機能のような音声サポートの機能を促進するために、スピーカおよび／またはマイクロホンを含んでもよい。その他のＩ／Ｏ装置１５０７は、ユニバーサルシリアルバス（ＵＳＢ）ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ（例えば、ＰＣＩ−ＰＣＩブリッジ）、センサ（例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなどのモーションセンサ）、またはそれらの組み合わせを更に含むことができる。装置１５０７は、結像処理サブシステム（例えば、カメラ）を更に含むことができ、前記結像処理サブシステムは、写真およびビデオ断片の記録のようなカメラ機能を促進するための、電荷接続素子（ＣＣＤ）または相補型金属酸化物半導体（ＣＭＯＳ）光学センサのような光学センサを含むことができる。特定のセンサは、センサハブ（図示せず）を介してインターコネクト１５１０に接続されることができ、キーボードまたはサーマルセンサのようなその他の装置はシステム１５００の具体的な構成または設計により、組込みコントローラ（図示せず）により制御されることができる。
【００７４】
データ、アプリケーション、１つまたは複数のオペレーティングシステムなどの情報の永続性記憶を提供するために、プロセッサ１５０１には、大容量記憶装置（図示せず）が接続されることもできる。様々な実施形態において、より薄くてより軽量なシステム設計を可能にしながら、システムの応答性を向上するために、このような大容量記憶装置は、ソリッドステートデバイス（ＳＳＤ）によって実現されることができる。しかしながら、その他の実施形態では、大容量記憶装置は、主にハードディスクドライブ（ＨＤＤ）を使用して実現されることができ、より小さい容量のＳＳＤ記憶装置をＳＳＤキャッシュとして機能することで、停電イベントの間にコンテキスト状態および他のそのような情報の不揮発性記憶を可能にし、それによりシステム動作が再開するときに通電を速く実現することができる。また、フラッシュデバイスは、例えば、シリアルペリフェラルインターフェース（ＳＰＩ）を介してプロセッサ１５０１に接続されることができる。このようなフラッシュデバイスは、前記システムのＢＩＯＳおよびその他のファームウェアを含むシステムソフトウェアの不揮発性記憶のために機能することができる。
【００７５】
記憶装置１５０８は、コンピュータアクセス可能な記憶媒体１５０９（機械可読記憶媒体またはコンピュータ可読媒体ともいう）を含むことができ、前記コンピュータアクセス可能な記憶媒体１５０９には、本明細書で記載されたいずれか１つまたは複数の方法または機能を具現化する１つまたは複数の命令セットまたはソフトウェア（例えば、モジュール、ユニットおよび／またはロジック１５２８）が格納されている。処理モジュール／ユニット／ロジック１５２８は、計画モジュール３０５、制御モジュール３０６またはセンサユニット５００のような、前記構成要素のいずれかを表すことができる。処理モジュール／ユニット／ロジック１５２８は、更に、データ処理システム１５００、メモリ１５０３、およびプロセッサ１５０１による実行中に、メモリ１５０３内および／またはプロセッサ１５０１内に完全的にまたは少なくとも部分的に存在してもよく、データ処理システム１５００、メモリ１５０３およびプロセッサ１５０１も機械アクセス可能な記憶媒体を構成する。処理モジュール／ユニット／ロジック１５２８は、更に、ネットワークを介してネットワークインターフェース装置１５０５を経由して送受信されてもよい。
【００７６】
コンピュータ可読記憶媒体１５０９は、以上に説明されたいくつかのソフトウェア機能を永続的に格納するために用いることができる。コンピュータ可読記憶媒体１５０９は、例示的な実施形態において単一の媒体として示されるが、「コンピュータ可読記憶媒体」という用語は、前記１つまたは複数の命令セットが格納される単一の媒体または複数の媒体（例えば、集中型または分散型データベースおよび／または関連するキャッシュとサーバ）を含むと解釈されるものとする。「コンピュータ可読記憶媒体」という用語は、更に、命令セットを格納または符号化できる任意の媒体を含むと解釈されるものであり、前記命令セットは機械により実行され、本発明のいずれか１つまたは複数の方法を前記機械に実行させるためのものである。それゆえに、「コンピュータ可読記憶媒体」という用語は、ソリッドステートメモリ、光学媒体および磁気媒体、またはその他の任意の非一時的機械可読媒体を含むが、それらに限定されないと解釈されるものとする。
【００７７】
本明細書に記載された処理モジュール／ユニット／ロジック１５２８、構成要素およびその他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、またはＡＳＩＣＳ、ＦＰＧＡ、ＤＳＰまたは類似の装置のようなハードウェア構成要素の機能に統合されてもよい。更に、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置におけるファームウェアまたは機能性回路として実現されてもよい。更に、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置とソフトウェア構成要素の任意の組み合わせで実現されてもよい。
【００７８】
なお、システム１５００は、データ処理システムの様々な構成要素を有するものとして示されているが、構成要素を相互接続する任意の特定のアーキテクチャまたは方式を表すことを意図するものではなく、そのような詳細は、本発明の実施形態とは密接な関係がない。また、より少ない構成要素またはより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、および／またはその他のデータ処理システムも、本発明の実施形態と共に使用することができることを理解されたい。
【００７９】
上述した具体的な説明の一部は、既に、コンピュータメモリにおけるデータビットに対する演算のアルゴリズムと記号表現により示された。これらのアルゴリズムの説明および表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。本明細書では、一般的に、アルゴリズムは、所望の結果につながるセルフコンシステントシーケンスと考えられる。これらの動作は、物理量の物理的処置が必要なものである。
【００８０】
しかしながら、念頭に置くべきなのは、これらの用語および類似の用語の全ては、適切な物理量に関連付けられるものであり、これらの量を標識しやすくするためのものに過ぎない。以上の説明で他に明示的に記載されていない限り、本明細書の全体にわたって理解するべきなのは、添付された特許請求の範囲に記載するもののような用語による説明とは、コンピュータシステム、または類似の電子計算装置の動作およびプロセスを指し、前記コンピュータシステムまたは電子計算装置は、コンピュータシステムのレジスタおよびメモリにおける物理（電子）量として示されるデータを制御するとともに、前記データをコンピュータシステムメモリまたはレジスタまたはこのようなその他の情報記憶装置、伝送または表示装置において同様に物理量として示される別のデータに変換する。
【００８１】
本発明の実施形態は、本明細書の動作を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的コンピュータ可読媒体に格納される。機械可読媒体は、機械（例えば、コンピュータ）により読み取り可能な形式で情報を格納するための任意のメカニズムを含む。例えば、機械可読（例えば、コンピュータ可読）媒体は、機械（例えば、コンピュータ）可読記憶媒体（例えば、読み出し専用メモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置）を含む。
【００８２】
上述した図面において説明されたプロセスまたは方法は、ハードウェア（例えば、回路、専用ロジックなど）、ソフトウェア（例えば、非一時的コンピュータ可読媒体に具現化されるもの）、または両方の組み合わせを含む処理ロジックにより実行されることができる。前記プロセスまたは方法は、以上で特定の順序に応じて説明されたが、前記動作の一部が異なる順序で実行されてもよいことを理解されたい。また、一部の動作は、順番ではなく並行して実行されてもよい。
【００８３】
本発明の実施形態は、いずれの特定のプログラミング言語を参照することなく記載されている。理解すべきなのは、本明細書に記載の本発明の実施形態の教示を実現するために、様々なプログラミング言語を使用することができる。
【００８４】
本明細書において、本発明の実施形態は、既にその具体的な例示的な実施形態を参照しながら記載された。明らかなように、添付された特許請求の範囲に記載された本発明のより広い趣旨および範囲を逸脱しない限り、本発明に対して様々な変更を行うことができる。それゆえに、本明細書および図面は、限定的な意味でなく、例示的な意味で理解されるべきである。
【図１】
2020074502.tif 000003
【図２】
2020074502.tif 000004
【図３Ａ】
2020074502.tif 000005
【図３Ｂ】
2020074502.tif 000006
【図４】
2020074502.tif 000007
【図５Ａ】
2020074502.tif 000008
【図５Ｂ】
2020074502.tif 000009
【図６】
2020074502.tif 000010
【図７】
2020074502.tif 000011
【図８】
2020074502.tif 000012
【図９】
2020074502.tif 000013
【外国語明細書】
2020074502000001.pdf