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

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

▶ バイドゥ・ユーエスエイ・リミテッド・ライアビリティ・カンパニーの特許一覧

特許6998342カメラを用いた画像データ取得のための自動運転車両の画像データ取得ロジック
<>
  • 特許-カメラを用いた画像データ取得のための自動運転車両の画像データ取得ロジック 図1
  • 特許-カメラを用いた画像データ取得のための自動運転車両の画像データ取得ロジック 図2
  • 特許-カメラを用いた画像データ取得のための自動運転車両の画像データ取得ロジック 図3A
  • 特許-カメラを用いた画像データ取得のための自動運転車両の画像データ取得ロジック 図3B
  • 特許-カメラを用いた画像データ取得のための自動運転車両の画像データ取得ロジック 図4
  • 特許-カメラを用いた画像データ取得のための自動運転車両の画像データ取得ロジック 図5A
  • 特許-カメラを用いた画像データ取得のための自動運転車両の画像データ取得ロジック 図5B
  • 特許-カメラを用いた画像データ取得のための自動運転車両の画像データ取得ロジック 図6
  • 特許-カメラを用いた画像データ取得のための自動運転車両の画像データ取得ロジック 図7
  • 特許-カメラを用いた画像データ取得のための自動運転車両の画像データ取得ロジック 図8
  • 特許-カメラを用いた画像データ取得のための自動運転車両の画像データ取得ロジック 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-22
(45)【発行日】2022-01-18
(54)【発明の名称】カメラを用いた画像データ取得のための自動運転車両の画像データ取得ロジック
(51)【国際特許分類】
   H04N 5/232 20060101AFI20220111BHJP
   B60W 40/02 20060101ALI20220111BHJP
   G08G 1/16 20060101ALI20220111BHJP
   G01S 17/93 20200101ALI20220111BHJP
【FI】
H04N5/232 290
B60W40/02
H04N5/232 300
G08G1/16 A
G01S17/93
【請求項の数】 18
【外国語出願】
(21)【出願番号】P 2019127674
(22)【出願日】2019-07-09
(65)【公開番号】P2020074502
(43)【公開日】2020-05-14
【審査請求日】2019-11-15
(31)【優先権主張番号】16/112,370
(32)【優先日】2018-08-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】516267603
【氏名又は名称】バイドゥ・ユーエスエイ・リミテッド・ライアビリティ・カンパニー
【氏名又は名称原語表記】Baidu USA LLC
(74)【代理人】
【識別番号】100099623
【弁理士】
【氏名又は名称】奥山 尚一
(74)【代理人】
【識別番号】100107319
【弁理士】
【氏名又は名称】松島 鉄男
(74)【代理人】
【識別番号】100125380
【弁理士】
【氏名又は名称】中村 綾子
(74)【代理人】
【識別番号】100142996
【弁理士】
【氏名又は名称】森本 聡二
(74)【代理人】
【識別番号】100166268
【弁理士】
【氏名又は名称】田中 祐
(74)【代理人】
【識別番号】100170379
【弁理士】
【氏名又は名称】徳本 浩一
(74)【代理人】
【識別番号】100180231
【弁理士】
【氏名又は名称】水島 亜希子
(74)【代理人】
【識別番号】100096769
【弁理士】
【氏名又は名称】有原 幸一
(72)【発明者】
【氏名】ヂャン,マンジィァン
(72)【発明者】
【氏名】ヨウ,シィァンタオ
(72)【発明者】
【氏名】ヂャン,ティファニー
【審査官】吉川 康男
(56)【参考文献】
【文献】特開2013-239995(JP,A)
【文献】特開2008-190868(JP,A)
【文献】米国特許出願公開第2017/0269601(US,A1)
【文献】特開2018-022953(JP,A)
【文献】特開2006-113751(JP,A)
【文献】特開2008-259190(JP,A)
【文献】特表2018-510373(JP,A)
【文献】特表2013-544696(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 5/232
B60W 40/02
G08G 1/16
G01S 17/93
(57)【特許請求の範囲】
【請求項1】
自動運転車両のためのセンサユニットであって、
前記自動運転車両(ADV)の複数の位置に取り付けられた複数のカメラに接続されるセンサインターフェースと、
ホストシステムに接続されるホストインターフェースであって、前記ホストシステムは、少なくとも前記カメラから得られた画像データに基づいて前記自動運転車両の周囲の走行環境を感知し、前記自動運転車両を自律的に走行させるための経路を計画するように構成されるホストインターフェースと、
それぞれが複数のカメラのうちの1つに対応する複数のデータ取得モジュールと、
を備えるセンサユニットであって、
前記データ取得モジュールのそれぞれは、
画像データの画素を、対応するカメラに関連付けられたオリジナルフォーマットから所定のフォーマットへ再フォーマットするための画素アライメントモジュールと、
前記画素アライメントモジュールに接続されるフレーム処理モジュールであって、前記画素アライメントモジュールから受信された画像データに基づいて画像フレームを生成し、前記画像フレームを前記ホストシステムに送信するように構成されるフレーム処理モジュールと、
前記フレーム処理モジュールに接続されるホストシミュレータであって、前記ホストシステムを使用せずに模擬ホストコマンドおよび応答を生成することによって前記ホストシステムをシミュレートするように構成されるホストシミュレータと、
を備えるセンサユニット。
【請求項2】
各データ取得モジュールは、前記画素アライメントモジュールに接続されるカメラシミュレータをさらに備え、前記カメラシミュレータは、対応するカメラを使用せずに模擬画像データを生成するようにカメラをシミュレートするように構成される、請求項1に記載のセンサユニット。
【請求項3】
前記模擬画像データは、カメラと接続する必要なしに、前記画素アライメントモジュールおよび前記フレーム処理モジュールの機能をテストするために用いられる、請求項2に記載のセンサユニット。
【請求項4】
前記模擬ホストコマンドおよび応答は、前記ホストシステムと接続する必要なしに、前記画素アライメントモジュールおよび前記フレーム処理モジュールの機能をテストするために用いられる、請求項に記載のセンサユニット。
【請求項5】
前記画素アライメントモジュールは、画像データを検査して画素エラーを検出するための画素エラー検出器をさらに備える、請求項1に記載のセンサユニット。
【請求項6】
前記画素エラー検出器は、前記画像データに十分な数の画素があるか否か、または前記画像データがカメラトランスミッションプロトコルに違反するか否かを検出するように構成されている、請求項に記載のセンサユニット。
【請求項7】
各データ取得モジュールは、前記画像フレームを検査してフレームエラーを検出するためのフレームエラー検出器をさらに備える、請求項に記載のセンサユニット。
【請求項8】
前記フレームエラー検出器は、前記画像フレームが短フレームであるかまたは長フレームであるかを検出するように構成されている、請求項に記載のセンサユニット。
【請求項9】
各データ取得モジュールは、新しい画像をキャプチャするために対応するカメラに送信された複数のトリガ信号をカウントするトリガカウントを格納するためのトリガカウンタをさらに備える、請求項1に記載のセンサユニット。
【請求項10】
前記トリガカウントは、最新のトリガ信号に応答してキャプチャされた画像フレームに含まれる、請求項に記載のセンサユニット。
【請求項11】
各データ取得モジュールは、対応するカメラから前記画像データを受信する時刻を記録するタイムスタンプを生成するためのタイムスタンプ生成器をさらに備え、前記タイムスタンプは、前記ホストシステムに送信されるべき画像フレームに含まれる、請求項1に記載のセンサユニット。
【請求項12】
前記画像データのオリジナルフォーマットと、YUVフォーマットおよびRGBフォーマットの一方とは、互換性がある、請求項1に記載のセンサユニット。
【請求項13】
前記センサインターフェースは、光検出・測距装置または1つ以上のカメラと接続されるイーサネットインターフェースを含む、請求項1に記載のセンサユニット。
【請求項14】
前記センサインターフェースは、GPS受信機および慣性計測装置のうちの少なくとも1つに接続される全地球測位システム(GPS)インターフェースを含む、請求項1に記載のセンサユニット。
【請求項15】
前記センサインターフェースは、前記自動運転車両のスロットル制御ロジック、ブレーキ制御ロジックおよびステアリング制御ロジックに接続されるコントローラエリアネットワーク(CAN)インターフェースを含む、請求項1に記載のセンサユニット。
【請求項16】
自動運転システムであって、
自動運転車両(ADV)の複数の位置に取り付けられた複数のセンサと、
前記センサから得られたセンサデータに基づいて前記自動運転車両の周囲の走行環境を感知し、前記自動運転車両を自律的に走行させるための経路を計画するためのホストシステムと、
前記複数のセンサと前記ホストシステムとに接続されたセンサユニットと、
を備える自動運転システムであって、
前記センサユニットは、
前記自動運転車両に取り付けられた前記複数のセンサに接続されるセンサインターフェースと、
前記ホストシステムに接続されるホストインターフェースと、
それぞれが複数のカメラのうちの1つに対応する複数のデータ取得モジュールと、
を備え、
前記データ取得モジュールのそれぞれは、
画像データの画素を対応するカメラに関連付けられたオリジナルフォーマットから所定のフォーマットへ再フォーマットするための画素アライメントモジュールと、
前記画素アライメントモジュールに接続されるフレーム処理モジュールであって、前記画素アライメントモジュールから受信された画像データに基づいて画像フレームを生成し、前記画像フレームを前記ホストシステムに送信するように構成されるフレーム処理モジュールと、
前記フレーム処理モジュールに接続されるホストシミュレータであって、前記ホストシステムを使用せずに模擬ホストコマンドおよび応答を生成することによって前記ホストシステムをシミュレートするように構成されるホストシミュレータと、
を備える自動運転システム。
【請求項17】
各データ取得モジュールは、前記画素アライメントモジュールに接続されるカメラシミュレータをさらに備え、前記カメラシミュレータは、対応するカメラを使用せずに模擬画像データを生成するようにカメラをシミュレートするように構成される、請求項16に記載のシステム。
【請求項18】
前記模擬画像データは、カメラと接続する必要なしに、前記画素アライメントモジュールおよび前記フレーム処理モジュールの機能をテストするために用いられる、請求項17に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、主に自動運転車両を動作させることに関する。より具体的に、本発明の実施形態は自動運転車両の周囲の走行環境を感知するための画像の画像データ取得に関する。
【背景技術】
【0002】
自動運転モードで走行する(例えば、ドライバーレス)車両は、乗員、特に運転手をいくつかの運転に関する責務から解放させることができる。車両は、自動運転モードで走行する時に、車載センサを利用して様々な位置までナビゲートすることができるので、最小限のヒューマンマシンインタラクションや、乗員がいないなどの状況で車両を走行させることが可能となる。
【0003】
運動計画および制御は自動運転における重要な操作である。運動計画および制御の正確性と効率は、車両のセンサに大きく依存している。センサが異なれば、要件や仕様も異なる可能性がある。自動運転車両で使用される最も人気があるセンサの1つはカメラである。カメラは、かなりの処理リソースを必要とする大量の画像データを生成することが可能である。大量の画像データを処理可能な効率的なカメラデータ取得メカニズムが欠如している。
【発明の概要】
【0004】
本発明の一態様では、自動運転車両のためのセンサユニットであって、前記自動運転車両(ADV)の複数の位置に取り付けられた複数のカメラに接続されるセンサインターフェースと、ホストシステムに接続されるホストインターフェースであって、前記ホストシステムは、少なくとも前記カメラから得られた画像データに基づいて前記ADVの周囲の走行環境を感知し、前記ADVを自律的に走行させるための経路を計画するように構成されるホストインターフェースと、それぞれが複数のカメラのうちの1つに対応する複数のデータ取得モジュールと、を備えるセンサユニットであって、
前記データ取得モジュールのそれぞれは、画像データの画素を対応するカメラに関連付けられたオリジナルフォーマットから所定のフォーマットへ再フォーマットするための画素アライメントモジュールと、前記画素アライメントモジュールに接続されるフレーム処理モジュールであって、前記画素アライメントモジュールから受信された画像データに基づいて画像フレームを生成し、前記画像フレームを前記ホストシステムに送信するように構成されるフレーム処理モジュールと、を備えるセンサユニットを提供する。
【0005】
本発明の他の態様では、自動運転システムであって、自動運転車両(ADV)の複数の位置に取り付けられた複数のセンサと、前記センサから得られたセンサデータに基づいて前記ADVの周囲の走行環境を感知し、前記ADVを自律的に走行させるための経路を計画するためのホストシステムと、前記複数のセンサと前記ホストシステムとに接続されたセンサユニットと、を備える自動運転システムであって、
前記センサユニットは、前記ADVに取り付けられた前記複数のセンサに接続されるセンサインターフェースと、前記ホストシステムに接続されるホストインターフェースと、それぞれが複数のカメラのうちの1つに対応する複数のデータ取得モジュールと、を備え、
前記データ取得モジュールのそれぞれは、画像データの画素を対応するカメラに関連付けられたオリジナルフォーマットから所定のフォーマットへ再フォーマットするための画素アライメントモジュールと、前記画素アライメントモジュールに接続されるフレーム処理モジュールであって、前記画素アライメントモジュールから受信された画像データに基づいて画像フレームを生成し、前記画像フレームを前記ホストシステムに送信するように構成されるフレーム処理モジュールと、を備える自動運転システムを提供する。
【図面の簡単な説明】
【0006】
本発明の実施形態は、各図面において制限的ではなく例示的なものとして示され、図面における同様の符号は、同様の素子を示す。
図1】一実施形態に係るネットワークシステムを示すブロック図である。
図2】一実施形態に係る自動運転車両の一例を示すブロック図である。
図3A】一実施形態に係る自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。
図3B】一実施形態に係る自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。
図4】一実施形態に係る自動運転システムのアーキテクチャを示すブロック図である。
図5A】一実施形態に係るセンサユニットの一例を示すブロック図である。
図5B】一実施形態に係るセンサユニットの一例を示すブロック図である。
図6】一実施形態に係るセンサ処理モジュールの一例を示すブロック図である。
図7】一実施形態に係る画像フレームのデータ構造を示すブロック図である。
図8】一実施形態に係るセンサデータを取得するプロセスを示すフローチャートである。
図9】一実施形態に係るデータ処理システムを示すブロック図である。
【発明を実施するための形態】
【0007】
以下に説明される詳細を参照しながら本発明の様々な実施形態および態様を説明し、添付図面に様々な実施形態を示す。以下の説明および図面は、本発明を説明するためのものであり、本発明を限定するものではないことを理解されたい。本発明の様々な実施形態を完全に把握するために、多数の特定の詳細を説明する。なお、いくつかの場合、本発明の実施形態に対する簡潔的な説明を提供するように、周知または従来技術の詳細について説明していない。
【0008】
本明細書において、「一実施形態」または「実施形態」とは、当該実施形態を参照しながら説明した特定の特徴、構造または特性が本発明の少なくとも一実施形態に含まれてもよいことを意味する。「一実施形態では」という語句は、本明細書の全体において同一の実施形態を指すとは限らない。
【0009】
本発明の一態様によれば、自動運転車両(ADV)で使用されるセンサユニットは、ADVの様々な位置に取り付けられたカメラのような、1つまたは複数の画像センサに接続可能なセンサインターフェースを備える。センサユニットは、ホストシステムに接続可能なホストインターフェースをさらに備える。ホストシステムは、少なくともカメラから取得された画像データに基づいてADVの周囲の走行環境を感知し、ADVを自律的に走行させるための経路を計画するように構成される。センサユニットは、それぞれがカメラのうちの1つに対応する1つまたは複数のデータ取得モジュールを更に備える。各データ取得モジュールは、画素アライメントモジュールとフレーム処理モジュールとを備える。画素アライメントモジュールは、画像データの画素を対応するカメラに関連付けられたオリジナルフォーマットから所定のフォーマットへ再フォーマットするように構成される。フレーム処理モジュールは、画素アライメントモジュールから受信された画像データに基づいて画像フレームを生成し、ホストインターフェースを介して画像フレームをホストシステムに送信するように構成される。
【0010】
一実施形態では、各データ取得モジュールは、画素アライメントモジュールに接続されるカメラシミュレータをさらに備える。カメラシミュレータは、カメラの動作をシミュレートして、カメラを使用せずに模擬画像データを生成するように構成される。模擬画像データは、実際のカメラと接続せずに、画素アライメントモジュールおよびフレーム処理モジュールの機能をテストするために使用可能である。他の実施形態によれば、各データ取得モジュールは、フレーム処理モジュールに接続されるホストシミュレータをさらに備える。ホストシミュレータは、ホストシステムを使用せずに、模擬ホストコマンドおよび応答を生成することによってホストシステムをシミュレートするために使用することができる。模擬ホストコマンドおよび応答は、ホストシステムと接続せずに、画素アライメントモジュールおよびフレーム処理モジュールの機能をテストするために用いられる。
【0011】
他の実施形態によれば、画素アライメントモジュールは、画像データを検査して画素エラーを検出するための画素エラー検出器を備える。画素エラー検出器は、画像データに十分な数の画素があるか否か、または画像データが対応するカメラに関連付けられたカメラトランスミッションプロトコルに違反するか否かを検出するように構成されている。データ取得モジュールは、画像フレームを検査してフレームエラーを検出するためのフレームエラー検出器をさらに備えていてもよい。フレームエラー検出器は、画像フレームが短フレームまたは長フレームなどの不規則フレームであるか否かを検出するように構成されている。
【0012】
取得モジュールは、カメラに送信されたトリガ信号のカウントを格納するためのトリガカウンタをさらに備えていてもよく、トリガ信号は、シャッタ機構と同様に、カメラをトリガまたは起動して新しい画像をキャプチャするために利用される。トリガカウントは、最新のトリガ信号に応答してキャプチャされた画像フレームに含まれてもよく、該最新のトリガ信号はフレームパッケージのシーケンス番号として使用されてもよい。取得モジュールは、カメラから受信された各画像データについてタイムスタンプを生成するためのタイムスタンプ生成器をさらに備えていてもよい。タイムスタンプは、画像データが受信された時刻を表すことができる。タイムスタンプは、デバッグの目的で利用することができる。
【0013】
本発明の他の態様によれば、自動運転システムは、ADVの様々な位置に取り付けられる複数のセンサを備える。自動運転システムはホストシステムをさらに備え、ホストシステムは感知モジュールと計画・制御モジュールとを備える。感知モジュールは、センサから取得されたセンサデータに基づいてADVの周囲の走行環境を感知するために用いられる。計画・制御モジュールは、感知データに基づいて経路を計画し、該経路に沿ってADVを走行させるために用いられる。自動運転システムは、センサおよびホストシステムに接続されるセンサユニットをさらに備える。センサユニットは、ADVの様々な位置に取り付けられたカメラのような、1つまたは複数の画像センサに接続可能なセンサインターフェースを備える。センサユニットは、ホストシステムに接続可能なホストインターフェースをさらに備える。ホストシステムは、少なくともカメラから取得された画像データに基づいてADVの周囲の走行環境を感知し、ADVを自律的に走行させるための経路を計画するように構成される。センサユニットは、それぞれがカメラのうちの1つに対応する1つまたは複数のデータ取得モジュールをさらに備える。各データ取得モジュールは、画素アライメントモジュールとフレーム処理モジュールとを備える。画素アライメントモジュールは、画像データの画素を対応するカメラに関連付けられたオリジナルフォーマットから所定のフォーマットへ再フォーマットするように構成される。フレーム処理モジュールは、画素アライメントモジュールから受信された画像データに基づいて画像フレームを生成し、ホストインターフェースを介して画像フレームをホストシステムに送信するように構成される。センサユニットは、上述したような特定の特徴をさらに備える。
【0014】
図1は、本発明の一実施形態に係る自動運転車両のネットワーク構成を示すブロック図である。図1に示すように、ネットワーク構成100には、ネットワーク102を介して1つまたは複数のサーバ103~104に通信可能に接続される自動運転車両101が備えられる。一台の自動運転車両が示されたが、複数の自動運転車両がネットワーク102を介して互いに接続され、および/またはサーバ103~104に接続されてもよい。ネットワーク102は、任意のタイプのネットワークであってもよく、例えば、有線または無線のローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク、またはそれらの組み合わせが挙げられる。サーバ103~104は、任意のタイプのサーバまたはサーバクラスタであってもよく、例えば、ネットワークまたはクラウドサーバ、アプリケーションサーバ、バックエンドサーバ、またはそれらの組み合わせが挙げられる。サーバ103~104は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図・関心地点(MPOI)サーバまたは位置サーバなどであってもよい。
【0015】
自動運転車両とは、運転手からの入力が非常に少ないまたはない場合に車両をナビゲートして環境を通過させる自動運転モードに配置可能な車両である。このような自動運転車両は、車両の走行環境に関する情報を検出するように配置される1つまたは複数のセンサを備えるセンサシステムを備えていてもよい。前記車両およびその関連コントローラは、検出された情報を使用して前記環境を通過するようにナビゲートする。自動運転車両101は、手動モード、完全自動運転モード、または部分自動運転モードで走行することができる。
【0016】
一実施形態では、自動運転車両101は、感知・計画システム110、車両制御システム111、無線通信システム112、ユーザインターフェースシステム113およびセンサシステム115を含むが、それらに限定されない。自動運転車両101には、通常の車両に備えられているいくつかの一般的な構成要素、例えばエンジン、車輪、ステアリングホイール、変速機などが更に備えられてもよい。前記構成要素は、車両制御システム111および/または感知・計画システム110により複数種の通信信号および/またはコマンドを使用して制御可能である。これらの複数種の通信信号および/またはコマンドは、例えば、加速信号またはコマンド、減速信号またはコマンド、ステアリング信号またはコマンド、ブレーキ信号またはコマンドなどが挙げられる。
【0017】
構成要素110~115は、インターコネクタ、バス、ネットワークまたはこれらの組み合わせを介して互いに通信可能に接続されることができる。例えば、構成要素110~115は、コントローラエリアネットワーク(CAN)バスを介して互いに通信可能に接続されることができる。CANバスは、ホストコンピュータなしのアプリケーションでマイクロコントローラおよびデバイスが相互に通信できるように設計された車両バス規格である。それは、もともと自動車内の多重電気配線のために設計されたメッセージに基づくプロトコルであるが、他の多くの環境にも用いられる。
【0018】
ここで図2を参照し、一実施形態では、センサシステム115は、1つまたは複数のカメラ211、全地球測位システム(GPS)ユニット212、慣性計測ユニット(IMU)213、レーダユニット214および光検出・測距(LIDAR)ユニット215を含むが、それらに限定されない。GPSユニット212は、自動運転車両の位置に関する情報を提供するように動作可能な送受信機を備えていてもよい。IMUユニット213は、慣性加速度に基づいて自動運転車両の位置および配向の変化を感知することができる。レーダユニット214は、無線信号を利用して自動運転車両のローカル環境内のオブジェクトを感知するシステムを表すことができる。いくつかの実施形態では、オブジェクトを感知することに加えて、レーダユニット214は、更にオブジェクトの速度および/または進行方向を感知することができる。LIDARユニット215は、自動運転車両の所在環境内のオブジェクトをレーザで感知することができる。他のシステム構成要素に加えて、LIDARユニット215は、更に1つまたは複数のレーザ光源、レーザスキャナおよび1つまたは複数の検出器を備えていてもよい。カメラ211は、自動運転車両の周囲環境の画像を取得するための1つまたは複数の装置を備えていてもよい。カメラ211は、スチルカメラおよび/またはビデオカメラであってもよい。カメラは、例えば、回転および/または傾斜のプラットフォームに取り付けられる機械的に移動可能なものであってもよい。
【0019】
センサシステム115には、他のセンサ、例えばソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサおよびオーディオセンサ(例えば、マイクロホン)が含まれてもよい。オーディオセンサは、自動運転車両の周囲の環境から音声を取得するように構成されてもよい。ステアリングセンサは、ステアリングホイール、車両の車輪またはそれらの組み合わせの操舵角を感知するように構成されてもよい。スロットルセンサおよびブレーキセンサはそれぞれ車両のスロットル位置およびブレーキ位置を感知する。ある場合に、スロットルセンサおよびブレーキセンサは集積型スロットル/ブレーキセンサとして統合されてもよい。
【0020】
一実施形態では、車両制御システム111はステアリングユニット201、スロットルユニット202(加速ユニットともいう)およびブレーキユニット203を含むが、それらに限定されない。ステアリングユニット201は車両の方向または進行方向を調整するために用いられる。スロットルユニット202は電動機またはエンジンの速度を制御するために用いられ、電動機またはエンジンの速度は更に車両の速度および加速度を制御するために用いられる。ブレーキユニット203は、摩擦を与えることによって車両の車輪またはタイヤを減速させることで、車両を減速させる。注意すべきなのは、図2に示された構成要素は、ハードウェア、ソフトウェアまたはそれらの組み合わせで実現されることができる。
【0021】
図1を再び参照して、無線通信システム112は、自動運転車両101と、装置、センサ、他の車両などのような外部システムとの通信を可能にする。例えば、無線通信システム112は、直接または通信ネットワークを介して、1つまたは複数の装置と無線通信することができ、例えば、ネットワーク102を介してサーバ103~104と通信することができる。無線通信システム112は、如何なるセルラー通信ネットワークまたは無線ローカルエリアネットワーク(WLAN)、例えばWiFiを使用して他の構成要素またはシステムと通信することができる。無線通信システム112は、例えば赤外線リンク、ブルートゥースなどを使用して、装置(例えば、乗員のモバイルデバイス、表示装置、車両101内のスピーカ)と直接通信することができる。ユーザインターフェースシステム113は、車両101内に実現された周辺装置の部分(例えば、キーボード、タッチスクリーン表示装置、マイクロホンおよびスピーカなどを含む)であってもよい。
【0022】
自動運転車両101の機能のうちの一部または全部は、特に自動運転モードで動作する場合に、感知・計画システム110により制御されるか、または管理されることができる。感知・計画システム110は、センサシステム115、制御システム111、無線通信システム112および/またはユーザインターフェースシステム113から情報を受信し、受信された情報を処理し、出発地から目的地までのルートまたは経路を計画した後に、計画および制御情報に基づいて車両101を運転するために、必要なハードウェア(例えば、プロセッサ、メモリ、記憶デバイス)並びにソフトウェア(例えば、オペレーティングシステム、計画およびルーティングプログラム)を備える。あるいは、感知・計画システム110は車両制御システム111と一体に集積されてもよい。
【0023】
例えば、乗員であるユーザは、例えばユーザインターフェースを介して旅程の出発地位置および目的地を指定することができる。感知・計画システム110は旅程に関連するデータを取得する。例えば、感知・計画システム110は、MPOIサーバから位置およびルート情報を取得することができる。前記MPOIサーバは、サーバ103~104の一部であってもよい。位置サーバは位置サービスを提供し、MPOIサーバは地図サービスおよび特定位置のPOIを提供する。あるいは、このような位置およびMPOI情報は、感知・計画システム110の永続性記憶装置にローカルキャッシュされてもよい。
【0024】
自動運転車両101がルートに沿って移動している場合に、感知・計画システム110は交通情報システムまたはサーバ(TIS)からリアルタイム交通情報を取得することもできる。なお、サーバ103~104は第三者機関によって操作可能である。あるいは、サーバ103~104の機能は、感知・計画システム110と一体に集積されてもよい。感知・計画システム110は、リアルタイム交通情報、MPOI情報および位置情報、並びにセンサシステム115により検出または感知されたリアルタイムローカル環境データ(例えば、障害物、オブジェクト、付近の車両)に基づいて、所定の目的地まで安全的且つ効率的に到達するために、最適なルートを計画し、且つ計画されたルートに従って例えば制御システム111を介して車両101を運転することができる。
【0025】
サーバ103は、様々なクライアントに対してデータ解析サービスを実行するデータ解析システムであってもよい。一実施形態では、データ解析システム103は、データコレクタ121と、機械学習エンジン122とを備える。データコレクタ121は、様々な車両(自動運転車両または人間の運転手によって運転される一般車両)から運転統計データ123を収集する。運転統計データ123には、発行された運転コマンド(例えば、スロットルコマンド、ブレーキコマンド、ステアリングコマンド)を示す情報および異なる時点で車両のセンサによりキャプチャされた車両の応答(例えば、速度、加速度、減速度、方向)を示す情報が含まれる。運転統計データ123はさらに、異なる時点における走行環境を記述する情報、例えば、ルート(出発地位置および目的地位置を含む)、MPOI、道路状況、天気状況などを含んでもよい。
【0026】
機械学習エンジン122は、運転統計データ123に基づいて、様々な目的に応じてルール、アルゴリズムおよび/または予測モデル124の集合を生成するかまたは訓練する。一実施形態では、アルゴリズム124は、以下でさらに詳細に説明する感知、予測、決定、計画および/または制御プロセスのためのルールまたはアルゴリズムを含むことができる。その後、アルゴリズム124を自動運転中にリアルタイムで利用するためにADVにアップロードすることができる。
【0027】
図3Aおよび図3Bは、一実施形態に係る自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。システム300は、図1の自動運転車両101の一部として実現されてもよく、感知・計画システム110、制御システム111およびセンサシステム115を含むが、それらに限定されない。図3Aおよび図3Bに示すように、感知・計画システム110は、測位モジュール301、感知モジュール302、予測モジュール303、決定モジュール304、計画モジュール305、制御モジュール306およびルーティングモジュール307を含むが、それらに限定されない。
【0028】
モジュール301~307のうちの一部または全部は、ソフトウェア、ハードウェアまたはそれらの組み合わせで実現されていてもよい。例えば、これらのモジュールは、永続性記憶装置352にインストールされ、メモリ351にロードされ、且つ1つまたは複数のプロセッサ(図示せず)により実行されてもよい。なお、これらのモジュールのうちの一部または全部は、図2の車両制御システム111の一部または全部のモジュールに通信可能に接続されるか、または統合されてもよい。モジュール301~307のうちの一部は、集積モジュールとして一体に統合されてもよい。
【0029】
測位モジュール301(地図・ルートモジュールともいう)は、ユーザの旅程またはルートに関連する如何なるデータを管理する。ユーザは、例えばユーザインターフェースを経由してログインして旅程の出発地位置および目的地を指定することができる。測位モジュール301は、自動運転車両300における地図・ルート情報311のような他の構成要素と通信して旅程に関するデータを取得する。例えば、測位モジュール301は、位置サーバおよび地図・POI(MPOI)サーバから位置およびルート情報を取得することができる。位置サーバは位置サービスを提供し、MPOIサーバは地図サービスおよび特定位置のPOIを提供することにより、地図・ルート情報311の一部としてキャッシュされることができる。自動運転車両300がルートに沿って移動する際に、測位モジュール301は交通情報システムまたはサーバからリアルタイム交通情報を取得することもできる。
【0030】
感知モジュール302は、センサシステム115により提供されたセンサデータと、測位モジュール301により取得された測位情報とに基づいて、周辺の環境への感知を確定する。感知情報は、通常の運転手が運転している車両の周囲で何を感知するかを表すことができる。感知は、例えば、車線構成、信号機信号、他の車両の相対位置、歩行者、建築物、横断歩道またはオブジェクトの形式の他の交通関連標識(例えば、止まれ標識、ゆずれ標識)などを含むことができる。車線構成は、例えば、車線の形状(例えば、直線またはカーブ)、車線の幅、道路内の車線数、一方向または二方向車線、合流車線または分流車線、退出車線など、1つまたは複数の車線を記述する情報を含む。
【0031】
感知モジュール302は、1つまたは複数のカメラによりキャプチャされた画像を処理し解析して自動運転車両の環境におけるオブジェクトおよび/または特徴を認識するために、コンピュータビジョンシステムまたはコンピュータビジョンシステムの機能を含むことができる。オブジェクトは、交通信号、道路の境界、他の車両、歩行者および/または障害物などを含むことができる。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオトラッキングおよび他のコンピュータビジョン技術を使用することができる。いくつかの実施形態では、コンピュータビジョンシステムは、環境のマッピング、オブジェクトの追跡、およびオブジェクトの速度推定などができる。感知モジュール302は、レーダおよび/またはLIDARのような他のセンサにより提供される他のセンサデータに基づいてオブジェクトを検出することもできる。
【0032】
各オブジェクトについて、予測モジュール303は、この場合にオブジェクトがどのように挙動するかを予測する。前記予測は、地図・ルート情報311と交通ルール312のセットに応じて、該時点において走行環境が感知された感知データに基づいて実行される。例えば、オブジェクトが反対方向の車両であり、且つ現在の走行環境には交差点が含まれる場合、予測モジュール303は、該車両が直線する可能性があるのか、それとも旋回する可能性があるのかを予測する。交差点に信号機がないと感知データにより示された場合に、予測モジュール303は、該車両が交差点に入る前に完全に停車する必要があると予測することが可能である。車両が現在左折専用車線または右折専用車線にあると感知データにより示された場合に、予測モジュール303は、該車両がそれぞれ左折または右折する可能性が高いと予測可能である。
【0033】
オブジェクトごとに対して、決定モジュール304はオブジェクトをどのように処置するかを判定する。例えば、特定のオブジェクト(例えば、交差のルートにおける他の車両)および該オブジェクトを記述するメタデータ(例えば、速度、方向、操舵角)について、決定モジュール304はオブジェクトと遇うときに如何に対応するか(例えば、追い越し、道譲り、停止、追い抜き)を決定する。決定モジュール304は、交通ルールまたは運転ルール312のルールセットに基づいてこのような決定を下すことができる、これらのルールは永続性記憶装置352に格納されることができる。
【0034】
ルーティングモジュール307は、出発地から目的地までの1つまたは複数のルートまたは経路を提供するように構成される。例えばユーザから受信された出発地位置から目的地位置までの所定の旅程について、ルーティングモジュール307は地図・ルート情報311を取得し、出発地位置から目的地位置までの全ての走行可能なルートまたは経路を決定する。ルーティングモジュール307は、決定された各ルートについて出発地位置から目的地位置までの基準線を地形図の形で生成することができる。基準線とは、他の車両、障害物または交通状況など、他のものから干渉を受けていない理想的なルートまたは経路を指す。つまり、道路には他の車両、歩行者または障害物がない場合に、ADVは基準線に完全的にまたは密接的に従うべきである。そして、地形図を決定モジュール304および/または計画モジュール305に提供する。決定モジュール304および/または計画モジュール305は、他のモジュールにより提供された他のデータ(例えば測位モジュール301からの交通状况、感知モジュール302により感知された走行環境および予測モジュール303により予測された交通状况)に応じて、全ての走行可能なルートを検査して最適なルートのうちの一つを選択および補正する。該時点における特定の走行環境に応じて、ADVを制御するための実際の経路またはルートは、ルーティングモジュール307によって提供される基準線に近いかまたは異なっていてもよい。
【0035】
感知されたオブジェクトのそれぞれに対する決定に基づいて、計画モジュール305は、ルーティングモジュール307によって提供された基準線をベースとし、自動運転車両の経路またはルートおよび運転パラメータ(例えば、距離、速度および/または操舵角)を計画する。すなわち、所与のオブジェクトについて、決定モジュール304はそのオブジェクトに何をすべきかを決定し、計画モジュール305はどのように実行するかを決定する。例えば、所与のオブジェクトについて、決定モジュール304は、オブジェクトを追い抜くかを決定することができ、計画モジュール305はオブジェクトを左側から追い抜くかまたは右側から追い抜くかを判定することができる。計画モジュール305は、車両300が次の移動周期(例えば、次のルート/経路区間)にはどのように移動するかを記述する情報を含む計画・制御データを生成する。例えば、計画・制御データは、車両300が30マイル/時間(mph)の速度で10メートル移動し、その後に25mphの速度で右車線に変更するように指示することができる。
【0036】
制御モジュール306は、計画・制御データに基づいて、計画・制御データにより限定されたルートまたは経路に応じて適当なコマンド若しくは信号を車両制御システム111に送信することにより自動運転車両を制御および走行させる。前記計画・制御データは、適切な車両構成または経路またはルートに沿う異なる時点における運転パラメータ(例えば、スロットルコマンド、ブレーキコマンドおよびステアリングコマンド)を使用して、車両をルートまたは経路の第1の点から第2の点まで走行させるのに十分な情報を含む。
【0037】
一実施形態では、計画段階は、例えば、時間間隔が100ミリ秒(ms)の周期など、複数の計画周期(運転周期ともいう)で実行される。計画周期または運転周期のそれぞれについて、計画・制御データに基づいて1つまたは複数の制御コマンドを発する。つまり、100ms毎に、計画モジュール305は次のルート区間または経路区間を計画し、例えば、目標位置およびADVが目標位置に到着するのに必要な時間が含まれる。あるいは、計画モジュール305は、特定の速度、方向、および/または操舵角などを更に指定することができる。一実施形態では、計画モジュール305は、次の所定期間(例えば、5秒)のルート区間または経路区間を計画する。各計画周期について、計画モジュール305は前の周期において計画された目標位置に基づいて現在の周期(例えば、次の5秒)における目標位置を計画する。そして、制御モジュール306は、現在の周期における計画・制御データに基づいて1つまたは複数の制御コマンド(例えば、スロットル制御コマンド、ブレーキ制御コマンド、ステアリング制御コマンド)を生成する。
【0038】
なお、決定モジュール304と計画モジュール305は、集積モジュールとして集積されることができる。決定モジュール304/計画モジュール305は、自動運転車両の走行経路を決定するために、ナビゲーションシステムまたはナビゲーションシステムの機能を具備することができる。例えば、ナビゲーションシステムは、自動運転車両が下記の経路に沿って移動することに影響を与えるための一連の速度および進行方向を決定することができる。前記経路では、自動運転車両が最終的な目的地に通じる走行車線に基づく経路に沿って進行すると共に、感知された障害物を実質的に回避できる。目的地は、ユーザインターフェースシステム113を介してユーザ入力によって設定されることができる。ナビゲーションシステムは、自動運転車両が走行していると同時に走行経路を動的に更新することができる。ナビゲーションシステムは、自動運転車両の走行経路を決定するために、GPSシステムからのデータを1つまたは複数の地図に取り入れることができる。
【0039】
図4は、一実施形態に係る自動運転のためのシステムアーキテクチャを示すブロック図である。システムアーキテクチャ400は、図3Aおよび図3Bに示すような自動運転システムのシステムアーキテクチャを表すことができる。図4を参照すると、システムアーキテクチャ400は、アプリケーション層401、計画・制御(PNC)層402、感知層403、デバイスドライバ層404、ファームウェア層405およびハードウェア層406を含むが、それらに限定されない。アプリケーション層401は、例えばユーザインターフェースシステム113に関連する機能のような、自動運転車両のユーザまたは乗員と対話するユーザインターフェースまたは構成アプリケーションを含むことができる。PNC層402は、少なくとも計画モジュール305および制御モジュール306の機能を含むことができる。感知層403は、少なくとも感知モジュール302の機能を含むことができる。一実施形態では、予測モジュール303および/または決定モジュール304の機能を含む付加層がある。あるいは、これらの機能は、PNC層402および/または感知層403に含まれてもよい。システムアーキテクチャ400は、デバイスドライバ層404、ファームウェア層405、およびハードウェア層406をさらに含む。ファームウェア層405は、少なくともフィールドプログラマブルゲートアレイ(FPGA)の形態で実施可能なセンサシステム115の機能を表すことができる。ハードウェア層406は、制御システム111のような自動運転車両のハードウェアを表すことができる。層401~層403は、デバイスドライバ層404を介してファームウェア層405およびハードウェア層406と通信することができる。
【0040】
図5Aは、本発明の一実施形態に係るセンサシステムの一例を示すブロック図である。図5Aを参照すると、センサシステム115は、複数のセンサ510と、ホストシステム110に接続されるセンサユニット500とを備える。ホストシステム110は、上述したような計画・制御システムを表し、計画・制御システムは図3Aおよび図3Bに示されるモジュールの少なくとも一部を含んでいてもよい。センサユニット500は、FPGAデバイスまたはASIC(特定用途向け集積回路)デバイスの形態で実現されることができる。一実施形態では、センサユニット500は、特に、1つまたは複数のセンサデータ処理モジュール501(単にセンサ処理モジュールともいう)、データ転送モジュール502、およびセンサ制御モジュールまたはロジック503を備える。モジュール501~503は、センサインターフェース504を介してセンサ510と通信することができ、ホストインターフェース505を介してホストシステム110と通信することができる。任意選択で、データをバッファリングして処理するために内部または外部バッファ506を利用することができる。
【0041】
一実施形態では、受信経路または上流方向に関して、センサ処理モジュール501は、センサインターフェース504を介してセンサからセンサデータを受信して処理(例えば、フォーマット変換、エラー検査)するように構成され、センサデータはバッファ506に一時的に格納可能である。データ転送モジュール502は、ホストインターフェース505と互換性のある通信プロトコルを使用して処理済みデータをホストシステム110に転送するように構成される。同様に、送信経路または下流方向に関して、データ転送モジュール502は、ホストシステム110からデータまたはコマンドを受信するように構成される。次いで、データは、センサ処理モジュール501によって、対応するセンサと互換性のあるフォーマットに処理される。次いで、処理済みデータはセンサに送信される。
【0042】
一実施形態では、センサ制御モジュールまたはロジック503は、ホストインターフェース505を介してホストシステム(例えば、感知モジュール302)から受信されたコマンドに応答して、センサ510の特定の動作(例えば、センサデータをキャプチャする起動タイミング)を制御するように構成される。ホストシステム110は、センサデータを任意の時点で車両の周囲の走行環境を感知するために利用可能にするように、センサデータを協調的および/または同期的にキャプチャするようにセンサ510を構成することができる。
【0043】
センサインターフェース504は、イーサネット、USB(ユニバーサルシリアルバス)、LTE(ロングタームエボリューション)またはセルラー、WiFi、GPS、カメラ、CAN、シリアル(例えば、ユニバーサル非同期送受信機またはUART)、SIM(加入者識別モジュール)カード、およびその他の汎用入出力(GPIO)インターフェースのうちの1つまたは複数を含んでいてもよい。ホストインターフェース505は、PCIe(周辺構成要素相互接続またはPCIエクスプレス)インターフェースのような任意の高速または高帯域幅インターフェースであってもよい。センサ510は、自動運転車両で利用される様々なセンサを含むことができ、例えば、カメラ、LIDARデバイス、レーダーデバイス、GPS受信機、IMU、超音波センサ、GNSS(全地球航法衛星システム)受信機、LTEまたはセルラーSIMカード、車両センサ(例えば、スロットルセンサ、ブレーキセンサ、ステアリングセンサ)およびシステムセンサ(例えば、温度センサ、湿度センサ、圧力センサ)などが挙げられる。
【0044】
例えば、カメラは、イーサネットまたはGPIOインターフェースを介して接続されることができる。GPSセンサは、USBまたは特定のGPSインターフェースを介して接続されることができる。車両センサはCANインターフェースを介して接続されることができる。レーダーセンサまたは超音波センサは、GPIOインターフェースを介して接続されることができる。LIDARデバイスは、イーサネットインターフェースを介して接続されることができる。外部のSIMモジュールはLTEインターフェースを介して接続されることができる。同様に、内部のSIMモジュールは、センサユニット500のSIMソケットに挿入可能である。UARTなどのシリアルインターフェースは、デバッグ目的でコンソールシステムと接続されることができる。
【0045】
なお、センサ510は、様々な販売業者または供給業者によって提供される任意のタイプのセンサとすることができる。センサ処理モジュール501は、異なるタイプのセンサ並びにそれぞれのデータフォーマットおよび通信プロトコルを処理するように構成される。一実施形態によれば、各センサ510は、センサデータを処理してホストシステム110と対応するセンサとの間で処理済みセンサデータを転送するために、特定のチャネルに関連付けられている。各チャネルは、図5Bに示すように、対応するセンサデータおよびプロトコルを処理するように構成またはプログラムされた、特定のセンサ処理モジュールおよび特定のデータ転送モジュールを備える。
【0046】
次に図5Bを参照すると、センサ処理モジュール501A~501Cは特に、センサ510A~510Cから得られたセンサデータを処理するように構成されている。なお、センサ510A~510Cは、同じタイプまたは異なるタイプのセンサであってもよい。センサ処理モジュール501A~501Cは、異なるタイプのセンサに対して異なるセンサプロセスを処理するように構成されることができる(例えば、ソフトウェア設定変更が可能である)。例えば、センサ510Aがカメラである場合、処理モジュール501Aは、カメラ510Aによってキャプチャされた画像を表す特定の画素データに関する画素処理動作を処理するように構成されてもよい。同様に、センサ510AがLIDARデバイスである場合、処理モジュール501Aは、特にLIDARデータを処理するように構成される。言い換えると、一実施形態によれば、特定のセンサの特定のタイプに応じて、その対応する処理モジュールは、センサデータの種類に対応する特定のプロセスまたは方法を使用して対応するセンサデータを処理するように構成されることができる。
【0047】
同様に、データ転送モジュール502A~502Cは、異なる種類のセンサデータが、異なるサイズまたは異なる速度若しくはタイミング要件を必要とする感度であり得るので、異なるモードで動作するように構成されることができる。一実施形態によれば、データ転送モジュール502A~502Cのそれぞれは、低遅延モード、高帯域幅モードおよびメモリモード(固定メモリモードともいう)のうちの1つのモードで動作するように構成されることができる。
【0048】
一実施形態によれば、低遅延モードで動作しているとき、データ転送モジュール(例えば、データ転送モジュール502)は、センサから受信されたセンサデータを遅延伴わずにまたは最小遅延で可能な限り早くホストシステムに送信するように構成される。センサデータの一部は、タイミングに関して非常に感度が高いものがあり、できるだけ早く処理する必要がある。そのようなセンサデータの例としては、車速、加速度、操舵角などのような車両状態を含む。
【0049】
一実施形態によれば、高帯域幅モードで動作しているとき、データ転送モジュール(例えば、データ転送モジュール502)は、センサから受信されたセンサデータを所定の量まで累積するように構成されるが、依然としてデータ転送モジュールとホストシステム110との間の接続の帯域幅内にある。次いで、累積されたセンサデータは、データ転送モジュールとホストシステム110との間の接続の帯域幅を最大限に利用するバッチでホストシステム110に転送される。通常、高帯域幅モードは、大量のセンサデータを生成するセンサに利用される。そのようなセンサデータの例としては、カメラの画素データが挙げられる。
【0050】
一実施形態によれば、メモリモードで動作するとき、データ転送モジュールは、センサから受信されたセンサデータを、共有メモリページと同様にホストシステム110のマップメモリのメモリ位置に直接書き込むように構成される。メモリモードを使用して転送されるセンサデータの例には、温度、ファン速度などのシステム状態データが含まれる。
【0051】
一実施形態によれば、センサ510A~510Cのそれぞれは、センサ制御モジュール503A~503Cのような対応するセンサ制御モジュールと関連付けられている。あるいは、センサ制御モジュール503A~503Cのうちの少なくともいくつかは、センサ510A~510Cのうちの少なくともいくつかによって共有される統合センサ制御モジュールと一体に統合されてもよい。センサ制御モジュール503A~503Cのそれぞれは、対応するセンサおよびホストシステム110と通信するように構成されている。ホストシステム110から受信されたコマンドに応答して、センサ制御モジュールは、対応するセンサの動作の少なくとも一部を制御するために利用可能である。
【0052】
一実施形態では、各センサ制御モジュールは、対応するセンサの特定の動作を制御するための制御信号を生成するように構成される。例えば、ホストシステム110の感知モジュールまたは計画モジュールは、車両の周囲の走行環境を確定し感知することの一部として、特定のカメラによって特定の時刻に画像をキャプチャするように要求されることが可能である。ホストシステムは、ホストインターフェース505を介して、カメラに関連付けられたセンサ制御モジュールにコマンドを送信して、カメラにその特定の時刻に画像をキャプチャするように要求することができる。該要求はさらに、特定のカメラが画像をどのくらいの頻度でキャプチャすべきかを指定する情報(たとえば、毎秒のフレーム数)および他のタイミング情報(たとえば、遅延オフセット、パルス幅および極性など)を指定する情報を含むことができる。該要求に基づいて、センサ制御モジュールは適切な制御信号を生成し、センサインターフェース504を介して制御信号をセンサに送信するように構成される。
【0053】
なお、自動運転では、環境内をナビゲートして如何なる衝突を回避するために、走行環境の認識ができるだけ明確で正確であることが求められる。従って、ホストシステムは、異なるセンサを異なるタイミングおよび方式で動作するように協調的に制御することを望む可能性がある。例えば、前方に取り付けられたカメラは、車両の後方または側方に取り付けられたカメラとは異なるタイミングで動作することができる。特定のセンサ制御モジュールを利用することによって、ホストシステム110は、車両の周囲の走行環境をより良くより正確に感知することができる。
【0054】
一実施形態によれば、センサ処理モジュール501A~501Cのそれぞれは、対応するセンサからセンサデータを取得するように構成されるデータ取得モジュールを備える。例えば、カメラなどの画像センサの場合、対応するセンサ処理モジュールは、カメラデータ取得モジュールを備えるか、またはそれとして実施される。
【0055】
図6は、一実施形態に係るセンサ処理モジュールの一例を示すブロック図である。図6を参照すると、この例では、センサ510はカメラであり、センサ処理モジュール501はカメラ510から画像/カメラデータを取得するためのカメラデータ取得モジュールである。一実施形態によれば、センサ処理モジュール501は、センサインターフェースモジュール601と、画素アライメントモジュール(画素処理モジュールともいう)602と、フレーム処理モジュール603と、ホストインターフェースモジュール604とを備える。画素アライメントモジュール602は、カメラ510から受信された画像データを画素レベルで処理するように構成されている。
【0056】
一実施形態では、画素アライメントモジュール602は、特定のタイプのカメラに対応する特定のフォーマット(例えば、YUV、RGB)から、ホストシステム110によって認識されるかまたはそれと合意される共通フォーマットへと画素データを処理することができる。画素アライメントモジュール602は、如何なる画素エラーを検出するために画素エラー検出器613を備えるかまたは呼び出すことができる。例えば、画素エラー検出器613は、画像データ内に十分な量の画素があるか否かを検出することができる。画素エラー検出器613はさらに、画像データがカメラトランスミッションプロトコルに違反しているか否かを検出することができる。
【0057】
一実施形態では、フレーム処理モジュール603は、画素アライメントモジュール602によって処理された画素データを受信し、ホストシステム110の所定のフォーマットに一致する画像フレームまたは画像パケットを構築し、ホストシステム110に関連付けられた所定のトランスミッションプロトコルを使用して画像フレームをホストシステム110に送信するように構成される。フレーム処理モジュール603は、フレームレベルの如何なるエラーを検出するためにフレームエラー検出器614をさらに備えるかまたは呼び出すことができる。すなわち、画素エラー検出器613は画素レベルでデータの完全性を検査するように構成され、フレームエラー検出器614はフレームレベルでデータの完全性を検査するように構成される。例えば、フレームエラー検出器614は、画素アライメントモジュール602によって提供された画素データに基づいて構築された特定の画像フレームが規則的なフレーム(例えば、良好なフレーム)であるか否か、または不規則なフレーム(例えば、短フレームまたは長フレーム)であるか否かを判定する。ホストシステムがメタデータに基づいて画像フレームを処理できるように、エラー情報は、ホストシステムに送信されるフレームのメタデータの一部として画像フレームに含まれてもよい。
【0058】
一実施形態によれば、センサインターフェースモジュール601は、センサシミュレータまたはシミュレーションモジュール611を備える。センサシミュレータ611は、実際のセンサを使用する必要なしに対応するセンサをシミュレートするように構成される。例えば、センサシミュレータ611は、対応するセンサによって生成可能なものをシミュレートする信号またはデータを生成することができる。センサシミュレータ611は、画素アライメントモジュール602および/またはフレーム処理モジュール603が実際のセンサと通信しているかのように、画素アライメントモジュール602および/またはフレーム処理モジュール603との通信に反応する。シミュレートされたデータは、実際のセンサを使用する必要なしに、センサ処理モジュール501、データ転送モジュール502、および/またはセンサ制御モジュール503の機能を試験または検証(例えば、デバッグ)するために利用することができる。
【0059】
また、一実施形態では、センサインターフェースモジュール601は、センサ510から受信された各画像データについてタイムスタンプを生成するためのタイムスタンプ生成器またはロジック615をさらに備える。タイムスタンプ生成器615は、タイムスタンプを導出するために、タイムソースまたはクロックソース(例えば、ローカルクロックまたは発振器、GPS信号源(図示せず))に接続されてもよい。タイムスタンプは、センサ510から画像データを受信する時刻を表すために利用される。タイムスタンプ情報は、ホストシステム110に送信されるためにフレーム処理モジュール603によって生成された画像フレームに含まれてもよい。タイムスタンプ情報は、テストまたはデバッグの目的だけでなく、走行環境の感知にも役立つ。
【0060】
また、一実施形態によれば、センサ処理モジュール501は、センサ制御モジュール503からトリガタイミング情報を受信するためのトリガカウンタ(またはタイムスタンプ生成器)616をさらに備える。上述したように、センサ制御モジュール503は、センサ510の動作を制御するための制御コマンドまたは信号を生成し送信するように構成される。制御信号のうちの1つは、センサ510をトリガまたは起動するためのトリガ信号であり、この例では、センサは特定の時刻に画像をキャプチャするためのカメラである。センサ制御モジュール503がトリガ信号をセンサ510に送信すると、トリガカウンタ616は、例えば、トリガカウンタ616によって維持されているカウント値を逓増することによって更新される。従って、トリガカウンタ616によって維持されるカウント値はコマンド送信時刻を表し、タイムスタンプ生成器615によって生成されたタイムスタンプは画像データの受信時刻を表す。2つのタイムスタンプ間の差は、通常にセンサ510および/またはセンサユニットの動作遅延を表すことができる。
【0061】
他の実施形態によれば、ホストインターフェースモジュール604は、ホストシミュレータまたはシミュレーションモジュール612を備える。ホストシミュレータ612は、実際のホストシステムを使用する必要なしに、ホストシステム110などのホストをシミュレートするように構成される。例えば、ホストシミュレータ612は、ホストシステムが生成可能なものをシミュレートするホスト信号またはデータを生成することができる。ホストシミュレータ612は、画素アライメントモジュール602および/またはフレーム処理モジュール603が実際のホストシステムと通信しているかのように、画素アライメントモジュール602および/またはフレーム処理モジュール603との通信に反応する。シミュレートされたデータまたはコマンドは、実際のホストシステムを使用する必要なしに、センサ処理モジュール501、データ転送モジュール502、および/またはセンサ制御モジュール503の機能を試験または検証(例えば、デバッグ)するために利用することができる。
【0062】
なお、センサ処理モジュールは、センサデータをバッファするためにローカルメモリなどのローカルバッファを使用または維持する必要なしにデータ転送モジュールに接続される。データ転送モジュールは、ローカルメモリを使用する必要なしにセンサデータが高速またはオンザフライで処理されるように、PCIeリンクなどの高帯域幅接続を介してホストシステムに接続される。
【0063】
図7は、一実施形態に係る画像フレームのデータ構造の一例を示すブロック図である。画像フレーム700は、フレーム処理モジュール603によって生成されてホストシステム110に送信されてもよい。図7を参照すると、画像フレームを表すデータ構造700は、画像データを格納するためのデータ領域701を含む。データ構造700は、少なくともフレームメタデータを格納するためのメタデータフィールド702~706をさらに備える。メタデータは、センサ制御モジュールによってセンサに送信された複数のトリガ信号をカウントするトリガカウント702を含む。トリガタイムスタンプ703は、センサ制御モジュールがセンサにトリガ信号を送信するトリガ時刻を表すタイムスタンプであり、該トリガ信号によってセンサは画像データ701をキャプチャするように起動される。受信タイムスタンプ704は、画像データ701をセンサから受信する時刻を表すタイムスタンプを格納する。フレームマーカ705は、画像データ701を記述する任意のマーカまたは他の属性を格納する。例えば、フレームマーカ705は、画像データ701が有効な画像データであるか否かを示す情報を格納してもよい。エラーコード706は、画像フレーム700が正常フレームであるか不規則フレーム(例えば、短フレームまたは長フレーム)であるかを示すコードまたはデータを格納するために使用される。短フレームの場合、処理ロジックは、残りの空き領域を埋めるために所定の画素値を埋め込むことができる。長フレームの場合、処理ロジックは、画像データをカットして予想されるフレームサイズに制限することができる。
【0064】
図8は、一実施形態に係るセンサデータを取得および処理するプロセスを示すフローチャートである。プロセス800は、処理ロジックにより実行可能であり、処理ロジックはソフトウェア、ハードウェア、またはそれらの組み合わせを備えていてもよい。例えば、プロセス800は、図6に示すセンサ処理モジュール501によって実行されてもよい。図8を参照すると、動作801において、処理ロジックは、センサインターフェースを介してセンサからセンサデータを受信する。センサデータは、カメラから受信された画像または画素データであってもよい。センサインターフェースはさらに、受信されたセンサデータに、センサデータを受信した時刻を示すタイムスタンプを付けることができる。動作802において、処理ロジックは、センサデータ(例えば、生センサデータ)を、特定のセンサに対応するフォーマット(例えばYUV、RGB)から所定のフォーマットまたはホストシステムと合意したフォーマットに変換する。処理ロジックは、センサデータに対してエラー検出をさらに実行してもよい。カメラから受信された画素データの例では、処理ロジックは、画像データに十分な量の画素があるか否か、または画像データがセンサまたはセンサインターフェースに関連する通信プロトコル(例えば、完全性検査失敗(failed integrity))に違反しているか否かを検出することができる。動作803において、処理ロジックは、センサデータに基づいてフレーム(例えば、画像フレーム)を生成し、ここで、フレームとホストシステムとは、(例えば、所望のフレームレートに従って)互換性がある。動作804において、処理ロジックは、センサトリガ形成(例えば、コマンドまたは送信タイムスタンプ)、エラーコード、受信タイムスタンプ、フレームマーカなどのような特定のフレームメタデータを埋め込む。動作805において、フレームは処理のためにデータ転送モジュールに送信され、次いでホストインターフェースを介してホストシステムに送信される。
【0065】
なお、上記に示し説明した構成要素のいくつかまたはすべては、ソフトウェア、ハードウェア、またはそれらの組み合わせで実現されていてもよい。例えば、これらの構成要素は、本発明を通じて説明されるプロセスまたは動作を実行するためにプロセッサ(図示せず)によってメモリにロードされ実行されることができる永続性記憶装置にインストールおよび格納されるソフトウェアとして実現されていてもよい。あるいは、これらの構成要素は、集積回路(例えば、特定用途向け集積回路またはASIC)、デジタルシグナルプロセッサ(DSP)、またはフィールドプログラマブルゲートアレイ(FPGA)のような専用ハードウェアにプログラミングされたかまたは埋め込まれた実行可能なコードとして実現されてもよく、これらのハードウェアは、対応するドライバおよび/またはオペレーティングシステムを介してアプリケーションからアクセスすることができる。また、これらの構成要素は、ソフトウェア構成要素が1つまたは複数の特定の命令によってアクセス可能な命令セットの一部として、プロセッサまたはプロセッサコアにおける特定のハードウェアロジックとして実現されることができる。
【0066】
図9は、本発明の一実施形態と組み合わせて使用可能なデータ処理システムの一例を示すブロック図である。例えば、システム1500は、図1の感知・計画システム110、またはサーバ103~104のいずれかのような、上述した前記プロセスまたは方法のいずれかを実行するデータ処理システムのいずれかを表すことができる。システム1500は、いくつかの異なる構成要素を備えていてもよい。これらの構成要素は、集積回路(IC)、集積回路の一部、ディスクリート型電子デバイス、または回路基板(例えば、コンピュータシステムのマザーボードまたはアドインカード)に適するその他のモジュールとして実現されることができ、または、他の形態でコンピュータシステムのシャーシ内に組み込まれた構成要素として実現されることができる。
【0067】
なお、システム1500は、コンピュータシステムのいくつかの構成要素の高レベルビューを示すことを意図している。しかしながら、理解すべきなのは、いくつかの実施例において付加的構成要素が存在してもよく、また、その他の実施例において示された構成要素を異なる構成にすることが可能である。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤ、パーソナルデジタルアシスタント(PDA)、スマートウォッチ、パーソナルコミュニケーター、ゲーム装置、ネットワークルーターまたはハブ、無線アクセスポイント(AP)またはリピーター、セット・トップボックス、またはそれらの組み合わせを表すことができる。また、単一の機械またはシステムのみが示されたが、「機械」または「システム」という用語は、本明細書で説明されるいずれか1つまたは複数の方法を実行するための、1つ(または複数)の命令セットを単独でまたは共同で実行する機械またはシステムの任意の組み合わせも含まれることを理解されたい。
【0068】
一実施形態では、システム1500は、バスまたはインターコネクト1510を介して接続される、プロセッサ1501と、メモリ1503と、装置1505~1508とを含む。プロセッサ1501は、単一のプロセッサコアまたは複数のプロセッサコアが含まれる単一のプロセッサまたは複数のプロセッサを表すことが可能である。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)などのような、1つまたは複数の汎用プロセッサを表すことができる。より具体的には、プロセッサ1501は、複雑命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、またはその他の命令セットを実行するプロセッサ、または命令セットの組み合わせを実行するプロセッサであってもよい。プロセッサ1501は更に、例えば、特定用途向け集積回路(ASIC)、セルラー若しくはベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、グラフィックプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組込みプロセッサ、または命令を処理可能な任意の他のタイプのロジックのような、1つまたは複数の専用プロセッサであってもよい。
【0069】
プロセッサ1501は、超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよく、前記システムの様々な構成要素と通信するための主処理ユニットおよび中央ハブとして機能することができる。このようなプロセッサは、システムオンチップ(SoC)として実装されてもよい。プロセッサ1501は、本明細書で説明される動作およびステップを実行するための命令を実行するように構成される。システム1500は、更に任意選択グラフィックサブシステム1504と通信するグラフィックインターフェースを含むことができ、グラフィックサブシステム1504は、表示コントローラ、グラフィックプロセッサ、および/または表示装置を含むことができる。
【0070】
プロセッサ1501は、メモリ1503と通信することができ、メモリ1503は、一実施形態では、所定量のシステムメモリを提供するための複数のメモリ装置によって実現されることができる。メモリ1503は、例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、またはその他のタイプの記憶装置のような、1つまたは複数の揮発性記憶(またはメモリ)装置を含むことができる。メモリ1503は、プロセッサ1501またはその他の任意の装置により実行される命令シーケンスを含む情報を格納することができる。例えば、様々なオペレーティングシステム、デバイスドライバ、ファームウェア(例えば、ベーシックインプット/アウトプットシステムまたはBIOS)、および/またはアプリケーションの実行可能なコードおよび/またはデータは、メモリ1503にロードされ、プロセッサ1501により実行されることができる。オペレーティングシステムは、例えば、ロボットオペレーティングシステム(ROS)、Microsoft(登録商標)社のWindows(登録商標)オペレーティングシステム、アップル社のMacOS(登録商標)/iOS(登録商標)、Google(登録商標)社のAndroid(登録商標)、LINUX、UNIX、またはその他のリアルタイム若しくは組込みオペレーティングシステムのような、任意のタイプのオペレーティングシステムであってもよい。
【0071】
システム1500は、例えば、ネットワークインターフェース装置1505、任意選択入力装置1506、およびその他の任意選択I/O装置1507を含む装置1505~1508のようなI/O装置を更に含むことができる。ネットワークインターフェース装置1505は、無線送受信機および/またはネットワークインターフェースカード(NIC)を備えていてもよい。前記無線送受信機は、WiFi送受信機、赤外線送受信機、ブルートゥース送受信機、WiMax送受信機、無線携帯電話送受信機、衛星送受信機(例えば、全地球測位システム(GPS)送受信機)、またはその他の無線周波数(RF)送受信機、またはそれらの組み合わせであってもよい。NICは、イーサネットカードであってもよい。
【0072】
入力装置1506は、マウス、タッチパネル、タッチスクリーン(表示装置1504と統合されてもよい)、ポインター装置(例えば、スタイラス)、および/またはキーボード(例えば、物理キーボードまたはタッチスクリーンの一部として表示された仮想キーボード)を含むことができる。例えば、入力装置1506は、タッチスクリーンに接続されるタッチスクリーンコントローラを備えていてもよい。タッチスクリーンおよびタッチスクリーンコントローラは、例えば、様々なタッチ感応技術(コンデンサ、抵抗、赤外線、および表面弾性波の技術を含むが、それらに限定されない)のいずれか、並びにその他の近接センサアレイ、または、タッチスクリーンと接触する1つまたは複数の点を確定するためのその他の素子を用いて、それらの接触、移動または中断を検出することができる。
【0073】
I/O装置1507は、音声装置を含むことができる。音声装置は、例えば、音声認識、音声複製、デジタル記録、および/または電話機能のような音声サポートの機能を促進するために、スピーカおよび/またはマイクロホンを含んでもよい。その他のI/O装置1507は、ユニバーサルシリアルバス(USB)ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ(例えば、PCI-PCIブリッジ)、センサ(例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなどのモーションセンサ)、またはそれらの組み合わせを更に含むことができる。装置1507は、結像処理サブシステム(例えば、カメラ)を更に含むことができ、前記結像処理サブシステムは、写真およびビデオ断片の記録のようなカメラ機能を促進するための、電荷接続素子(CCD)または相補型金属酸化物半導体(CMOS)光学センサのような光学センサを含むことができる。特定のセンサは、センサハブ(図示せず)を介してインターコネクト1510に接続されることができ、キーボードまたはサーマルセンサのようなその他の装置はシステム1500の具体的な構成または設計により、組込みコントローラ(図示せず)により制御されることができる。
【0074】
データ、アプリケーション、1つまたは複数のオペレーティングシステムなどの情報の永続性記憶を提供するために、プロセッサ1501には、大容量記憶装置(図示せず)が接続されることもできる。様々な実施形態において、より薄くてより軽量なシステム設計を可能にしながら、システムの応答性を向上するために、このような大容量記憶装置は、ソリッドステートデバイス(SSD)によって実現されることができる。しかしながら、その他の実施形態では、大容量記憶装置は、主にハードディスクドライブ(HDD)を使用して実現されることができ、より小さい容量のSSD記憶装置をSSDキャッシュとして機能することで、停電イベントの間にコンテキスト状態および他のそのような情報の不揮発性記憶を可能にし、それによりシステム動作が再開するときに通電を速く実現することができる。また、フラッシュデバイスは、例えば、シリアルペリフェラルインターフェース(SPI)を介してプロセッサ1501に接続されることができる。このようなフラッシュデバイスは、前記システムのBIOSおよびその他のファームウェアを含むシステムソフトウェアの不揮発性記憶のために機能することができる。
【0075】
記憶装置1508は、コンピュータアクセス可能な記憶媒体1509(機械可読記憶媒体またはコンピュータ可読媒体ともいう)を含むことができ、前記コンピュータアクセス可能な記憶媒体1509には、本明細書で記載されたいずれか1つまたは複数の方法または機能を具現化する1つまたは複数の命令セットまたはソフトウェア(例えば、モジュール、ユニットおよび/またはロジック1528)が格納されている。処理モジュール/ユニット/ロジック1528は、計画モジュール305、制御モジュール306またはセンサユニット500のような、前記構成要素のいずれかを表すことができる。処理モジュール/ユニット/ロジック1528は、更に、データ処理システム1500、メモリ1503、およびプロセッサ1501による実行中に、メモリ1503内および/またはプロセッサ1501内に完全的にまたは少なくとも部分的に存在してもよく、データ処理システム1500、メモリ1503およびプロセッサ1501も機械アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528は、更に、ネットワークを介してネットワークインターフェース装置1505を経由して送受信されてもよい。
【0076】
コンピュータ可読記憶媒体1509は、以上に説明されたいくつかのソフトウェア機能を永続的に格納するために用いることができる。コンピュータ可読記憶媒体1509は、例示的な実施形態において単一の媒体として示されるが、「コンピュータ可読記憶媒体」という用語は、前記1つまたは複数の命令セットが格納される単一の媒体または複数の媒体(例えば、集中型または分散型データベースおよび/または関連するキャッシュとサーバ)を含むと解釈されるものとする。「コンピュータ可読記憶媒体」という用語は、更に、命令セットを格納または符号化できる任意の媒体を含むと解釈されるものであり、前記命令セットは機械により実行され、本発明のいずれか1つまたは複数の方法を前記機械に実行させるためのものである。それゆえに、「コンピュータ可読記憶媒体」という用語は、ソリッドステートメモリ、光学媒体および磁気媒体、またはその他の任意の非一時的機械可読媒体を含むが、それらに限定されないと解釈されるものとする。
【0077】
本明細書に記載された処理モジュール/ユニット/ロジック1528、構成要素およびその他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、またはASICS、FPGA、DSPまたは類似の装置のようなハードウェア構成要素の機能に統合されてもよい。更に、処理モジュール/ユニット/ロジック1528は、ハードウェア装置におけるファームウェアまたは機能性回路として実現されてもよい。更に、処理モジュール/ユニット/ロジック1528は、ハードウェア装置とソフトウェア構成要素の任意の組み合わせで実現されてもよい。
【0078】
なお、システム1500は、データ処理システムの様々な構成要素を有するものとして示されているが、構成要素を相互接続する任意の特定のアーキテクチャまたは方式を表すことを意図するものではなく、そのような詳細は、本発明の実施形態とは密接な関係がない。また、より少ない構成要素またはより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、および/またはその他のデータ処理システムも、本発明の実施形態と共に使用することができることを理解されたい。
【0079】
上述した具体的な説明の一部は、既に、コンピュータメモリにおけるデータビットに対する演算のアルゴリズムと記号表現により示された。これらのアルゴリズムの説明および表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。本明細書では、一般的に、アルゴリズムは、所望の結果につながるセルフコンシステントシーケンスと考えられる。これらの動作は、物理量の物理的処置が必要なものである。
【0080】
しかしながら、念頭に置くべきなのは、これらの用語および類似の用語の全ては、適切な物理量に関連付けられるものであり、これらの量を標識しやすくするためのものに過ぎない。以上の説明で他に明示的に記載されていない限り、本明細書の全体にわたって理解するべきなのは、添付された特許請求の範囲に記載するもののような用語による説明とは、コンピュータシステム、または類似の電子計算装置の動作およびプロセスを指し、前記コンピュータシステムまたは電子計算装置は、コンピュータシステムのレジスタおよびメモリにおける物理(電子)量として示されるデータを制御するとともに、前記データをコンピュータシステムメモリまたはレジスタまたはこのようなその他の情報記憶装置、伝送または表示装置において同様に物理量として示される別のデータに変換する。
【0081】
本発明の実施形態は、本明細書の動作を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的コンピュータ可読媒体に格納される。機械可読媒体は、機械(例えば、コンピュータ)により読み取り可能な形式で情報を格納するための任意のメカニズムを含む。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置)を含む。
【0082】
上述した図面において説明されたプロセスまたは方法は、ハードウェア(例えば、回路、専用ロジックなど)、ソフトウェア(例えば、非一時的コンピュータ可読媒体に具現化されるもの)、または両方の組み合わせを含む処理ロジックにより実行されることができる。前記プロセスまたは方法は、以上で特定の順序に応じて説明されたが、前記動作の一部が異なる順序で実行されてもよいことを理解されたい。また、一部の動作は、順番ではなく並行して実行されてもよい。
【0083】
本発明の実施形態は、いずれの特定のプログラミング言語を参照することなく記載されている。理解すべきなのは、本明細書に記載の本発明の実施形態の教示を実現するために、様々なプログラミング言語を使用することができる。
【0084】
本明細書において、本発明の実施形態は、既にその具体的な例示的な実施形態を参照しながら記載された。明らかなように、添付された特許請求の範囲に記載された本発明のより広い趣旨および範囲を逸脱しない限り、本発明に対して様々な変更を行うことができる。それゆえに、本明細書および図面は、限定的な意味でなく、例示的な意味で理解されるべきである。
なお、本願の出願当初の開示事項を維持するために、本願の出願当初の請求項1~20の記載内容を以下に追加する。
(請求項1)
自動運転車両のためのセンサユニットであって、
前記自動運転車両(ADV)の複数の位置に取り付けられた複数のカメラに接続されるセンサインターフェースと、
ホストシステムに接続されるホストインターフェースであって、前記ホストシステムは、少なくとも前記カメラから得られた画像データに基づいて前記自動運転車両の周囲の走行環境を感知し、前記自動運転車両を自律的に走行させるための経路を計画するように構成されるホストインターフェースと、
それぞれが複数のカメラのうちの1つに対応する複数のデータ取得モジュールと、
を備えるセンサユニットであって、
前記データ取得モジュールのそれぞれは、
画像データの画素を、対応するカメラに関連付けられたオリジナルフォーマットから所定のフォーマットへ再フォーマットするための画素アライメントモジュールと、
前記画素アライメントモジュールに接続されるフレーム処理モジュールであって、前記画素アライメントモジュールから受信された画像データに基づいて画像フレームを生成し、前記画像フレームを前記ホストシステムに送信するように構成されるフレーム処理モジュールと、
を備えるセンサユニット。
(請求項2)
各データ取得モジュールは、前記画素アライメントモジュールに接続されるカメラシミュレータをさらに備え、前記カメラシミュレータは、対応するカメラを使用せずに模擬画像データを生成するようにカメラをシミュレートするように構成される、請求項1に記載のセンサユニット。
(請求項3)
前記模擬画像データは、カメラと接続する必要なしに、前記画素アライメントモジュールおよび前記フレーム処理モジュールの機能をテストするために用いられる、請求項2に記載のセンサユニット。
(請求項4)
各データ取得モジュールは、前記フレーム処理モジュールに接続されるホストシミュレータをさらに備え、前記ホストシミュレータは、前記ホストシステムを使用せずに模擬ホストコマンドおよび応答を生成することによって前記ホストシステムをシミュレートするように構成される、請求項1に記載のセンサユニット。
(請求項5)
前記模擬ホストコマンドおよび応答は、前記ホストシステムと接続する必要なしに、前記画素アライメントモジュールおよび前記フレーム処理モジュールの機能をテストするために用いられる、請求項4に記載のセンサユニット。
(請求項6)
前記画素アライメントモジュールは、画像データを検査して画素エラーを検出するための画素エラー検出器をさらに備える、請求項1に記載のセンサユニット。
(請求項7)
前記画素エラー検出器は、前記画像データに十分な数の画素があるか否か、または前記画像データがカメラトランスミッションプロトコルに違反するか否かを検出するように構成されている、請求項6に記載のセンサユニット。
(請求項8)
各データ取得モジュールは、前記画像フレームを検査してフレームエラーを検出するためのフレームエラー検出器をさらに備える、請求項1に記載のセンサユニット。
(請求項9)
前記フレームエラー検出器は、前記画像フレームが短フレームであるかまたは長フレームであるかを検出するように構成されている、請求項8に記載のセンサユニット。
(請求項10)
各データ取得モジュールは、新しい画像をキャプチャするために対応するカメラに送信された複数のトリガ信号をカウントするトリガカウントを格納するためのトリガカウンタをさらに備える、請求項1に記載のセンサユニット。
(請求項11)
前記トリガカウントは、最新のトリガ信号に応答してキャプチャされた画像フレームに含まれる、請求項10に記載のセンサユニット。
(請求項12)
各データ取得モジュールは、対応するカメラから前記画像データを受信する時刻を記録するタイムスタンプを生成するためのタイムスタンプ生成器をさらに備え、前記タイムスタンプは、前記ホストシステムに送信されるべき画像フレームに含まれる、請求項1に記載のセンサユニット。
(請求項13)
前記画像データのオリジナルフォーマットと、YUVフォーマットおよびRGBフォーマットの一方とは、互換性がある、請求項1に記載のセンサユニット。
(請求項14)
前記センサインターフェースは、光検出・測距装置または1つ以上のカメラと接続されるイーサネットインターフェースを含む、請求項1に記載のセンサユニット。
(請求項15)
前記センサインターフェースは、GPS受信機および慣性計測装置のうちの少なくとも1つに接続される全地球測位システム(GPS)インターフェースを含む、請求項1に記載のセンサユニット。
(請求項16)
前記センサインターフェースは、前記自動運転車両のスロットル制御ロジック、ブレーキ制御ロジックおよびステアリング制御ロジックに接続されるコントローラエリアネットワーク(CAN)インターフェースを含む、請求項1に記載のセンサユニット。
(請求項17)
自動運転システムであって、
自動運転車両(ADV)の複数の位置に取り付けられた複数のセンサと、
前記センサから得られたセンサデータに基づいて前記自動運転車両の周囲の走行環境を感知し、前記自動運転車両を自律的に走行させるための経路を計画するためのホストシステムと、
前記複数のセンサと前記ホストシステムとに接続されたセンサユニットと、
を備える自動運転システムであって、
前記センサユニットは、
前記自動運転車両に取り付けられた前記複数のセンサに接続されるセンサインターフェースと、
前記ホストシステムに接続されるホストインターフェースと、
それぞれが複数のカメラのうちの1つに対応する複数のデータ取得モジュールと、
を備え、
前記データ取得モジュールのそれぞれは、
画像データの画素を対応するカメラに関連付けられたオリジナルフォーマットから所定のフォーマットへ再フォーマットするための画素アライメントモジュールと、
前記画素アライメントモジュールに接続されるフレーム処理モジュールであって、前記画素アライメントモジュールから受信された画像データに基づいて画像フレームを生成し、前記画像フレームを前記ホストシステムに送信するように構成されるフレーム処理モジュールと、
を備える自動運転システム。
(請求項18)
各データ取得モジュールは、前記画素アライメントモジュールに接続されるカメラシミュレータをさらに備え、前記カメラシミュレータは、対応するカメラを使用せずに模擬画像データを生成するようにカメラをシミュレートするように構成される、請求項17に記載のシステム。
(請求項19)
前記模擬画像データは、カメラと接続する必要なしに、前記画素アライメントモジュールおよび前記フレーム処理モジュールの機能をテストするために用いられる、請求項18に記載のシステム。
(請求項20)
各データ取得モジュールは、前記フレーム処理モジュールに接続されるホストシミュレータをさらに備え、前記ホストシミュレータは、前記ホストシステムを使用せずに模擬ホストコマンドおよび応答を生成することによって前記ホストシステムをシミュレートするように構成される、請求項17に記載のシステム。
図1
図2
図3A
図3B
図4
図5A
図5B
図6
図7
図8
図9