(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-28
(45)【発行日】2022-01-20
(54)【発明の名称】自動運転車の高速計画のための多項式フィッティングベースの基準線平滑化方法
(51)【国際特許分類】
B60W 60/00 20200101AFI20220112BHJP
B60W 30/10 20060101ALI20220112BHJP
G01C 21/34 20060101ALI20220112BHJP
【FI】
B60W60/00
B60W30/10
G01C21/34
(21)【出願番号】P 2019555123
(86)(22)【出願日】2018-12-26
(86)【国際出願番号】 CN2018123936
(87)【国際公開番号】W WO2020132952
(87)【国際公開日】2020-07-02
【審査請求日】2019-11-29
(73)【特許権者】
【識別番号】518091956
【氏名又は名称】バイドゥ ドットコム タイムス テクノロジー (ベイジン) カンパニー リミテッド
(73)【特許権者】
【識別番号】516357421
【氏名又は名称】バイドゥ ユーエスエイ エルエルシー
【氏名又は名称原語表記】Baidu USA LLC
(74)【代理人】
【識別番号】100105924
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】ヂュ、ファン
(72)【発明者】
【氏名】マ、リン
(72)【発明者】
【氏名】シュ、シン
【審査官】山本 賢明
(56)【参考文献】
【文献】特開平11-086182(JP,A)
【文献】国際公開第2018/089435(WO,A1)
【文献】特開2018-047836(JP,A)
【文献】国際公開第2018/179235(WO,A1)
【文献】特開2006-126980(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B60W 60/00
B60W 30/10
G01C 21/34
(57)【特許請求の範囲】
【請求項1】
自動運転車を操作するためのコンピュータ実施方法であって、
自動運転車(ADV)のために生成され
、他の事物の干渉のない理想的な走行ルートである、複数の離散点を含む基準線を、グローバル座標系からローカル座標系に転換するステップと、
ローカル座標系において、前記基準線上の各点の水平座標に対して、前記複数の離散点に最もフィッティングする多項式曲線を使用して、新しい垂直座標を決定するステップ
であって、前記水平座標及び前記決定された新しい垂直座標を有する点が前記多項式曲線上の点に対応するように前記垂直座標を決定する、ステップと、
各新しい垂直座標及びそれに対応する水平座標で表される点を、前記グローバル座標系に転換し直すステップと、及び
前記多項式曲線を使用して
、前記グローバル座標系に転換
し直された各点の進行方向、
曲率及び
曲率の割合を決定するステップとを含むことを特徴とする自動運転車を操作するためのコンピュータ実施方法。
【請求項2】
前記転換
し直された点及び転換
し直された各点の前記進行方向、前記
曲率及び前記
曲率の割合は、前記ADVの新しい基準線を生成するために使用されることを特徴とする請求項1に記載の自動運転車を操作するためのコンピュータ実施方法。
【請求項3】
前記基準線は、計画段階のために生成された最初の基準線の一部であり、前記基準線は、所定の条件セットに基づいて前記最初の基準線を分割することによって作成されることを特徴とする請求項1に記載の自動運転車を操作するためのコンピュータ実施方法。
【請求項4】
前記基準線上の各点は、前記計画段階での特定の時点で前記ADVが存在する位置を表すことを特徴とする請求項3に記載の自動運転車を操作するためのコンピュータ実施方法。
【請求項5】
前記多項式曲線は、Y=C
3*X
3+C
2*X
2+C
1*X
1+C
0*X
0の形式であ
り、ただし、Xは水平座標を示し、Yは垂直座標を示す、ことを特徴とする請求項1に記載の自動運転車を操作するためのコンピュータ実施方法。
【請求項6】
前記ADVは、所定の値を超える速度で移動することを特徴とする請求項1に記載の自動運転車を操作するためのコンピュータ実施方法。
【請求項7】
前記ADVが前記所定の値と同じ、または低い速度で移動する場合、前記ADVは、異なる基準線平滑化方法を実施する他のプロセスに切り替えることを特徴とする請求項6に記載の自動運転車を操作するためのコンピュータ実施方法。
【請求項8】
指令が記憶されている非一時的な機械可読媒体であって、
前記指令がプロセッサによって実行されると、前記プロセッサに操作を実行させ、前記操作は、
自動運転車(ADV)のために生成され
、他の事物の干渉のない理想的な走行ルートである、複数の離散点を含む基準線を、グローバル座標系からローカル座標系に転換するステップと、
ローカル座標系において、前記基準線上の各点の水平座標に対して、前記複数の離散点に最もフィッティングする多項式曲線を使用して、新しい垂直座標を決定するステップ
であって、前記水平座標及び前記決定された新しい垂直座標を有する点が前記多項式曲線上の点に対応するように前記垂直座標を決定する、ステップと、
各新しい垂直座標及びそれに対応する水平座標で表される点を、前記グローバル座標系に転換し直すステップと、及び
前記多項式曲線を使用して
前記グローバル座標系に転換
し直された各点の進行方向、
曲率及び
曲率の割合を決定するステップとを含むことを特徴とする非一時的な機械可読媒体。
【請求項9】
前記転換
し直された点及び転換
し直された各点の前記進行方向、前記
曲率及び前記
曲率の割合を決定するステップとを含むことを特徴とする非一時的な機械可読媒体。
は、前記ADVの新しい基準線を生成するために使用されることを特徴とする請求項8に記載の非一時的な機械可読媒体。
【請求項10】
前記基準線は、計画段階のために生成された最初の基準線の一部であり、前記基準線は、所定の条件セットに基づいて前記最初の基準線を分割することによって作成されることを特徴とする請求項8に記載の非一時的な機械可読媒体。
【請求項11】
前記基準線上の各点は、前記計画段階での特定の時点で前記ADVが存在する位置を表すことを特徴とする請求項10に記載の非一時的な機械可読媒体。
【請求項12】
前記多項式曲線は、Y=C
3*X
3+C
2*X
2+C
1*X
1+C
0*X
0の形式であ
り、ただし、Xは水平座標を示し、Yは垂直座標を示す、ことを特徴とする請求項8に記載の非一時的な機械可読媒体。
【請求項13】
前記ADVは、所定の値を超える速度で移動することを特徴とする請求項8に記載の非一時的な機械可読媒体。
【請求項14】
前記ADVが前記所定の値と同じ、または低い速度で移動する場合、前記ADVは、異なる基準線平滑化方法を実施する他のプロセスに切り替えることを特徴とする請求項13に記載の非一時的な機械可読媒体。
【請求項15】
プロセッサと、及び
指令を記憶するために前記プロセッサに接続されたメモリとを含むデータ処理システムであって、
前記指令がプロセッサによって実行されると、前記プロセッサに操作を実行させ、前記操作は、
自動運転車(ADV)のために生成され、
他の事物の干渉のない理想的な走行ルートである、複数の離散点を含む基準線を、グローバル座標系からローカル座標系に転換するステップと、
ローカル座標系において、前記基準線上の各点の水平座標に対して、前記複数の離散点に最もフィッティングする多項式曲線を使用して、新しい垂直座標を決定するステップ
であって、前記水平座標及び前記決定された新しい垂直座標を有する点が前記多項式曲線上の点に対応するように前記垂直座標を決定する、ステップと、
各新しい垂直座標及びそれに対応する水平座標で表される点を、前記グローバル座標系に転換し直すステップと、及び
前記多項式曲線を使用して
前記グローバル座標系に転換
し直された各点の進行方向、
曲率及び
曲率の割合を決定するステップとを含むことを特徴とするデータ処理システム。
【請求項16】
前記転換
し直された点及び転換
し直された各点の前記進行方向、前記
曲率及び前記
曲率の割合は、前記ADVの新しい基準線を生成するために使用されることを特徴とする請求項15に記載のデータ処理システム。
【請求項17】
前記基準線は、計画段階のために生成された最初の基準線の一部であり、前記基準線は、所定の条件セットに基づいて前記最初の基準線を分割することによって作成されることを特徴とする請求項15に記載のデータ処理システム。
【請求項18】
前記基準線上の各点は、前記計画段階での特定の時点で前記ADVが存在する位置を表すことを特徴とする請求項17に記載のデータ処理システム。
【請求項19】
前記多項式曲線は、Y=C
3*X
3+C
2*X
2+C
1*X
1+C
0*X
0の形式であ
り、ただし、Xは水平座標を示し、Yは垂直座標を示す、ことを特徴とする請求項15に記載のデータ処理システム。
【請求項20】
前記ADVは、所定の値を超える速度で移動し、前記ADVが前記所定の値と同じ、または低い速度で移動する場合、前記ADVは、異なる基準線平滑化方法を実施する他のプロセスに切り替えることを特徴とする請求項15に記載のデータ処理システム。
【請求項21】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項1ないし7のいずれか一項に記載の方法を実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、概して、自動運転車の操作に関する。より具体的に、本開示の実施形態は、自動運転車における基準線平滑化方法に関する。
【背景技術】
【0002】
自動運転モード(例えば、無人運転)で動作する車両は、運転に関連する義務から乗客(特に、運転者)を開放することができる。自動運転モードで動作する場合、車両は、オンボードセンサーと高解像度地図を使用して各位置にナビゲートすることができ、車両が最少のヒューマンインタラクションの状況、または乗客のない状況で運転できるようにする。
【0003】
自動運転車(ADV)は、様々なモジュールに依存して軌跡を計画する。通常、計画された各軌跡に対して、地形図の形式で基準線を生成することができ、基準線は、他の車両、障害物、または交通状況などの干渉のない、理想的なルートまたはパスを表すことができる。快適な走行のために、様々な技術を使用して基準線を平滑化することができる。
【0004】
しかし、ADVが高速で移動する場合、特定の求心加速度を維持するために、経路点の曲率及びそれらの導関数に対する要求がより高い。一般に、既存の平滑化技術は、高速環境の要求を満たすことができない。
【発明の概要】
【0005】
本開示の態様において、本開示の実施形態は、自動運転車(ADV)のために生成された、複数の離散点を含む基準線を、グローバル座標系からローカル座標系に転換するステップと、基準線上の各点の水平座標に対して、複数の点に最もフィッティングする多項式曲線を使用して、新しい垂直座標を決定するステップと、各新しい垂直座標及びそれに対応する水平座標で表される点をグローバル座標系に転換し直すステップと、及び多項式曲線を使用して各転換点の進行方向、kappa及びdkappaを決定するステップとを含む自動運転車を操作するためのコンピュータ実施方法を提供する。
【0006】
本開示の他の態様において、本開示の実施形態は、指令が記憶された非一時的な機械可読媒体であって、前記指令がプロセッサによって実行されると、前記プロセッサに操作を実行させ、前記操作は、自動運転車(ADV)のために生成された、複数の離散点を含む基準線を、グローバル座標系からローカル座標系に転換するステップと、基準線上の各点の水平座標に対して、複数の点に最もフィッティングする多項式曲線を使用して、新しい垂直座標を決定するステップと、各新しい垂直座標及びそれに対応する水平座標で表される点をグローバル座標系に転換し直すステップと、及び多項式曲線を使用して各転換点の進行方向、kappa及びdkappaを決定するステップとを含む非一時的な機械可読媒体を提供する。
【0007】
本開示の他の態様において、本開示の実施形態は、プロセッサと、及び指令を記憶するために前記プロセッサに接続されたメモリとを含むデータ処理システムであって、前記指令がプロセッサによって実行されると、前記プロセッサに操作を実行させ、前記操作は、自動運転車(ADV)のために生成された、複数の離散点を含む基準線を、グローバル座標系からローカル座標系に転換するステップと、基準線上の各点の水平座標に対して、複数の点に最もフィッティングする多項式曲線を使用して、新しい垂直座標を決定するステップと、各新しい垂直座標及びそれに対応する水平座標で表される点をグローバル座標系に転換し直すステップと、及び多項式曲線を使用して各転換点の進行方向、kappa及びdkappaを決定するステップとを含むデータ処理システムを提供する。
【図面の簡単な説明】
【0008】
本発明の実施形態は、添付されたそれぞれの図面において限定ではなく、例示として示され、図面において類似の参照符号は類似の素子を指す。
【0009】
【
図1】一実施形態に係るネットワーク化されたシステムを示すブロック図である。
【0010】
【
図2】一実施形態に係る自動運転車の例示を示すブロック図である。
【0011】
【
図3A】一実施形態に係る自動運転車と一緒に使用される感知及び計画システムの例示を示すブロック図である。
【
図3B】一実施形態に係る自動運転車と一緒に使用される感知及び計画システムの例示を示すブロック図である。
【0012】
【
図4】実施形態に係る多項式フィッティングベースの基準線平滑化コンポーネントがADVで操作される環境を示す。
【0013】
【
図5】実施形態に係る多項式フィッティングベースの基準線平滑化コンポーネントをさらに示す。
【0014】
【
図6A】実施形態に係る多項式フィッティングベースの基準線平滑化方法をグラフで示す。
【
図6B】実施形態に係る多項式フィッティングベースの基準線平滑化方法をグラフで示す。
【
図6C】実施形態に係る多項式フィッティングベースの基準線平滑化方法をグラフで示す。
【
図6D】実施形態に係る多項式フィッティングベースの基準線平滑化方法をグラフで示す。
【
図6E】実施形態に係る多項式フィッティングベースの基準線平滑化方法をグラフで示す。
【0015】
【
図7】実施形態に係る基準線を平滑化する例示のプロセスを示すフローチャートである。
【0016】
【
図8】一実施形態と一緒に使用可能なデータ処理システムの例示を示すブロック図である。
【発明を実施するための形態】
【0017】
本開示の様々な実施形態及び態様は、以下で議論される詳細を参照して説明され、図面は前記様々な実施形態を示す。以下の説明及び図面は、本開示を説明するものであり、限定するものとして解釈されるべきではない。本開示の様々な実施形態の包括的な理解を提供するために、多くの特定の詳細が記載されている。しかし、本開示の実施形態の簡単な説明を提供するために、周知または通常の詳細は説明されていない。
【0018】
本明細書における「一実施形態」または「実施形態」の列挙は、当該実施形態に結び付いて説明される特定の特徴、構造、または特性が本開示の少なくとも一つの実施形態に含まれ得ることを意味する。「一実施形態において」は、本明細書の各所に記載は、必ずしもすべて同じ実施形態を指していることではない。
【0019】
いくつかの実施形態によれば、多項式フィッティング曲線を使用して基準線を平滑化するシステム及び方法を説明する。例示的な方法において、高解像度地図及びルーティング定式化結果に従って最初の基準線を生成することができ、所定の式に基づいて最初の基準線を分割することができる。分割された最初の基準線は、複数の点を含むことができ、各点は、グローバル座標系における自動運転車の位置を表す。複数の点は、ローカル座標系における点に転換されることができ、ローカル座標系で前記点に最も多項式曲線を生成する。
【0020】
その後、複数の点の各点の水平座標に対して、多項式曲線を使用して新しい垂直座標を生成することができる。新しい垂直座標及び対応する水平座標は、グローバル座標系に転換し直すことができる。多項式曲線は、グローバル座標系中の各点の進行方向、kappa及びdkappaを導出するために使用されることができる。転換点及び各点の進行方向、kappa及びdkappaは、ADVのために新しい基準線を作成するために使用される。
【0021】
実施形態において、多項式曲線の一次導関数、二次導関数及び三次導関数を使用して各転換点の進行方向、kappa及びdkappaをそれぞれ計算することができる。多項式曲線は、連続して、平滑で且つ切り目のない線であるため、その一次導関数、二次導関数及び三次導関数も平滑であり、従って転換点の進行方向、kappa及びdkappaを平滑且つ連続にする。
【0022】
従って、上記の方法を使用して生成された基準線は、より滑らかでより快適な運転を可能にする。本開示で説明される実施形態は、高速道路条件で移動するように設計されたADVに特に適用される。
【0023】
実施形態において、最初の基準線は、複数の運転/計画サイクルを含み得る計画段階のために生成されることができる。最初の基準線上の各点は、計画サイクル期間内の特定の時点にあるADVの位置を表すことができる。
【0024】
実施形態において、多項式曲線はY=C_3*X^3+C_2*X^2+C_1*X^1+C_0*X^0の形式であることができる。ADVが所定の値を超える速度で移動する場合、上記の基準線平滑化方法を使用することができる。ADVが所定の値と同じ、または低い速度で移動する場合、ADVは、異なる基準線平滑化方法を実施する他のプロセスに自動的に切り替えることができる。
【0025】
自動運転車
【0026】
図1は、本開示の一実施形態に係る自動運転車ネットワーク構成のブロック図である。
図1を参照すると、ネットワーク構成100は、ネットワーク102を介して一つまたは複数のサーバ103乃至104に通信可能に接続され得る自動運転車101を含む。一つの自動運転車を示すが、複数の自動運転車がネットワーク102を介してお互いにおよび/またはサーバ103乃至104に接続されることができる。ネットワーク102は、有線または無線ローカルエリアネットワーク(LAN)、セルラーネットワーク、衛星ネットワークまたはそれらの組合せなどのウェブのワイドエリアネットワーク(WAN)のような任意のタイプのネットワークであってもよい。サーバ103乃至104は、ネットワークまたはクラウドサーバ、アプリケーションサーバ、バックエンドサーバまたはそれらの組合せなどの任意のタイプのサーバまたはサーバのクラスターであってもよい。サーバ103乃至104は、データ分析サーバ、コンテンツサーバ、交通情報サーバ、地図及びポイントオブインタレスト(MPOI)サーバまたはロケーションサーバなどであってもよい。
【0027】
自動運転車とは、運転者からの入力がほとんどまたは全くない環境をナビゲートする自動運転モードに設定可能な車両を指す。このような自動運転車は、センサーシステムを含むことができ、前記センサーシステムは、車両運転環境に関連する情報を検出するように構成される一つまたは複数のセンサーを備える。前記車両とそれに関連するコントローラーは、検出された情報を使用して環境をナビゲートする。自動運転車101は、手動モード、完全自動運転モードまたは部分的自動運転モードで動作する。
【0028】
一実施形態において、自動運転車101は、感知及び計画システム110、車両制御システム111、無線通信システム112、ユーザインターフェースシステム113及びセンサーシステム115を含むが、これらに限定されない。自動運転車101は、エンジン、ホイール、ステアリングホイール、変速機などの通常の車両に含まれる特定の共通コンポーネントをさらに含むことができ、前記コンポーネントは、車両制御システム111および/または感知及び計画システム110によって、様々な通信信号および/または命令を使用して制御されることができ、当該様々な通信信号および/または命令は、加速信号または命令、減速信号または命令、ステアリング信号または命令、ブレーキ信号または命令などであってもよい。
【0029】
コンポーネント110乃至115は、相互接続コンポーネント、バス、ネットワークまたはそれらの組合せを介してお互いに通信可能に接続されることができる。例えば、コンポーネント110乃至115は、コントローラーローカルエリアネットワーク(CAN)バスを介してお互いに通信可能に接続されることができる。CANバスは、ホストコンピューターなしでアプリケーションでマイクロコントローラーとデバイスが相互に通信できるように設計された車両バス標準である。これは、最初は自動車内の多重電気配線用に設計されたメッセージベースのプロトコルであるが、他の多くの環境でも使用される。
【0030】
図2を参照すると、一実施形態において、センサーシステム115は、一つまたは複数のカメラ211、全地球測位システム(GPS)ユニット212、慣性測定ユニット(IMU)213、レーダーユニット214及び光検出と測距(LIDAR)ユニット215を含むが、これらに限定されない。GPS
ユニット212は、自動運転車の位置に関連する情報を提供するように操作可能なトランシーバを含む。IMUユニット213は、慣性加速度に基づいて自動運転車の位置及び配向変更を感知することができる。レーダーユニット214は、無線信号を利用して自動運転車のローカル環境内の対象を検知するシステムを表すことができる。いくつかの実施形態において、対象の検知以外に、レーダーユニット214は、対象の速度および/または進行方向をさらに検知することができる。LIDARユニット215は、レーザーを使用して自動運転車が配置されている環境中の対象を検知することができる。他のシステムコンポーネント以外に、LIDARユニット215は、一つまたは複数のレーザー源、レーザースキャナー及び一つまたは複数の検出器をさらに含むことができる。カメラ211は、自動運転車周囲環境の画像を収集するための一つまたは複数のデバイスを含むことができる。カメラ211は、スチルカメラおよび/またはビデオカメラであることができる。カメラは、回転および/または傾斜されたプラットフォームにカメラを取り付けることにより、機械的に移動可能であってもよい。
【0031】
センサーシステム115は、ソナーセンサー、赤外線センサー、ステアリングセンサー、スロットルセンサー、ブレーキセンサー、及び音声センサー(例えば、マイク)などの他のセンサーをさらに含むことができる。オーディオセンサーは、自動運転車を取り巻く環境からの音をキャプチャするように構成されることができる。ステアリングセンサーは、ステアリングホイール、車両のホイールまたはそれらの組合せのステアリング角度を感知するように構成されることができる。アクセルセンサーとブレーキセンサーは、車両のアクセル位置とブレーキ位置をそれぞれ感知する。場合によって、アクセルセンサーとブレーキセンサーは、アクセル/ブレーキセンサーとして統合されることができる。
【0032】
一実施形態において、車両制御システム111は、ステアリングユニット201、アクセルユニット202(加速ユニットとも呼ばれる)とブレーキユニット203を含むが、これらに限定されない。ステアリングユニット201は、車両の方向または進行方向を調整するために使用される。アクセルユニット202は、モーターまたはエンジンの速度を制御するために使用され、モーターまたはエンジンの速度は、さらに車両の速度と加速度を制御する。ブレーキユニット203は、摩擦を提供することにより車両のホイールまたはタイヤを減速させて、車両を減速させる。注意すべきことは、
図2に示されたコンポーネントは、ハードウェア、ソフトウェアまたはそれらの組合せで実装することができる。
【0033】
図1に戻ると、無線通信システム112は、自動運転車101とデバイス、センサー、他の車両などのような外部システムとの間の通信を可能にするものである。例えば、無線通信システム112は、一つまたは複数のデバイスと直接に無線通信することができ、または通信ネットワークを介して無線通信することができ、例えば、ネットワーク102とサーバ103乃至104を介して通信する。無線通信システム112は、他のコンポーネントまたはシステムと通信するために、WiFi(登録商標)のような任意のセルラーネットワークまたは無線ローカルエリアネットワーク(WLAN)を使用することができる。無線通信システム112は、例えば赤外線リンク、ブルートゥース(登録商標)などを使用して、デバイス(例えば、乗客のモバイルデバイス、ディスプレイデバイス、車両101内のスピーカー)と直接通信することができる。ユーザインターフェースシステム113は、例えば、キーボード、タッチスクリーンディスプレイデバイス、マイクロフォン、およびスピーカーなどを含む車両101内で実装される周辺デバイスの一部であることができる。
【0034】
自動運転車101の機能中の一部または全部は、特に、自動運転モードで操作する場合、感知及び計画システム110によって制御または管理することができる。感知及び計画システム110は、センサーシステム115、制御システム111、無線通信システム112および/またはユーザインターフェースシステム113から情報を受信し、受信した情報を処理し、出発地点から目的地点までの経路または経路を計画し、その後、計画及び制御情報に基づいて車両101を運転するために、必要なハードウェア(例えば、プロセッサ、メモリ、ストレージ)とソフトウェア(例えば、操作システム、計画及びルーティングプログラム)を含む。
【0035】
例えば、乗客としてのユーザーは、例えばユーザーインターフェースを介して、旅程の開始位置と目的地を指定することができる。感知及び計画システム110は、旅程に関連するデータを取得する。例えば、感知及び計画システム110は、MPOIサーバから位置とルート情報を取得することができ、前記MPOIサーバは、サーバ103乃至104の一部であることができる。ロケーションサーバは、ロケーションサービスを提供し、MPOIサーバは地図サービスと特定の位置のPOIを提供する。代替的に、このような位置及びMPOI情報は、感知及び計画システム110の永続的記憶装置にローカルにキャッシュされてもよい。
【0036】
自動運転車101がルートを沿って移動する場合、感知及び計画システム110は、交通情報システムまたはサーバ(TIS)からリアルタイム交通情報を取得することもできる。注意すべきことは、サーバ103乃至104は、サードパーティのエンティティによって操作されることができる。代替的に、サーバ103乃至104の機能は、感知及び計画システム110と統合されることができる。リアルタイム交通情報、MPOI情報と位置情報及びセンサーシステム115によって検出または感知されたリアルタイムローカル環境データ(例えば、障害物、オブジェクト、近くの車両)に基づいて,感知及び計画システム110は、最適なルートを計画することができ、計画されたルートは、指定された目的地に安全かつ効率的に到達するために、例えば制御システム111を介して車両101を運転することができる。
【0037】
サーバ103は、様々なクライアントのためのデータ分析サービスを実行するためのデータ分析システムであることができる。一実施形態において、データ分析システム103は、データ収集器121及び機械学習エンジン122を含む。データ収集器121は、様々な車両(自動運転車または人間運転者によって運転される通常の車両)から運転統計テータ123を収集する。運転統計テータ123は、異なるタイミングで送信された運転命令(例えば、アクセル命令、ブレーキ命令、ステアリング命令)及び車両のセンサーによって捕捉された車両の応答(例えば、速度、加速、減速、方向)を表す情報を含む。運転統計テータ123は、例えばルート(開始位置と目的地位置を含む)、MPOI、道路状況、天気状況などの異なるタイミングでの運転環境を説明する情報をさらに含むことができる。
【0038】
運転統計テータ123に基づいて、機械学習エンジン122は、さまざまな目的のために、規則、アルゴリズム、および/または予測モデル124のセットを生成または訓練する。一実施形態において、アルゴリズム124は、感知、計画、及び制御プロセスのアルゴリズムを含むことができ、これについては以下でさらに詳細に説明する。そして、アルゴリズム124をADVにアップロードして、自動運転中にリアルタイムで使用することができる。
【0039】
図3Aと
図3Bは、一実施形態による自動運転車と一緒に使用される感知及び計画システムの例示を示すブロック図である。システム300は、
図1の自動運転車101の一部として実装されることができ、感知及び計画システム110、制御システム111及びセンサーシステム115を含むが、これらに限定されない。
図3A乃至
図3Bを参照すると、感知及び計画システム110は、ローカリゼーションモジュール301、感知モジュール302、予測モジュール303、決定モジュール304、計画モジュール305、制御モジュール306、及びルーティングモジュール307を含むが、これらに限定されない。
【0040】
一部または全部モジュール301乃至307は、ソフトウェア、ハードウェアまたはそれらの組合せで実現されることができる。例えば、これらのモジュールは、永続的記憶装置352にインストールされ、メモリ351にロードされ、一つまたは複数のプロセッサ(図示せず)によって実行されることができる。注意すべきことは、これらの一部または全部モジュールは、
図2の車両制御システム111の一部または全部モジュールに通信可能に接続または統合されることができる。一部のモジュール301乃至307は、統合モジュールとして統合されることができる。
【0041】
ローカリゼーションモジュール301は、自動運転車300の現在の位置(例えば、GPSユニット212を利用する)を確定し、ユーザーの旅程またはルートに関連する任意のデータを管理する。ローカリゼーションモジュール301(地図とルートモジュールとも呼ばれる)は、ユーザーの旅程またはルートに関連する任意のデータを管理する。ユーザーは、例えば、ユーザーインターフェースにログインして、旅程の開始位置と目的地を指定することができる。ローカリゼーションモジュール301は、自動運転車300の地図とルート情報311などの他のコンポーネントと通信して、旅程に関連するデータを取得する。例えば、ローカリゼーションモジュール301は、ロケーションサーバと地図及びPOI(MPOI)サーバから位置とルート情報を取得することができる。ロケーションサーバは、ロケーションサービスを提供し、MPOIサーバは地図サービスと特定の位置のPOIを提供して、地図とルート情報311の一部としてキャッシュされることができる。自動運転車300がルートを沿って移動する場合、ローカリゼーションモジュール301は、交通情報システムまたはサーバからリアルタイム交通情報を取得することもできる。
【0042】
センサーシステム115によって提供されたセンサーデータと、ローカリゼーションモジュール301によって取得されたローカリゼーション情報に基づいて、感知モジュール302は、周囲環境に対する感知を確定する。感知情報は、通常の運転者が運転中の車両の周囲で感知されるものを表すことができる。感知は、例えば、オブジェクトの形式を使用した車線構成、信号機、別の車両の相対位置、歩行者、建物、横断歩道、またはその他の交通関連標識(例えば、一時停止標識、譲れの標識)などを含むことができる。車線配置は、例えば、車線の形状(例えば、直線または曲率)、車線の幅、道路内の車線の数、片道または双方向車線、合流車線または迂回車線、出口車線などの一つまたは複数の車線を説明する情報を含む。
【0043】
感知モジュール302は、自動運転車環境中のオブジェクトおよび/または特徴を認識するために、一つまたは複数のカメラによってキャプチャされた画像を処理及び分析するコンピュータビジョンシステムまたはコンピュータビジョンシステムの機能を含むことができる。前記オブジェクトは、交通信号、道路の境界、他の車両、歩行者、および/または障害物などを含むことができる。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオ追跡、及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態において、コンピュータビジョンシステムは、環境をマッピングし、オブジェクトを追跡し、オブジェクトの速度などを推定することができる。感知モジュール302は、レーダーおよび/またはLIDARなどの他のセンサーによって提供される他のセンサーデータに基づいてオブジェクトを検出することもできる。
【0044】
それぞれのオブジェクトについて、予測モジュール303は、前記状況で前記オブジェクトがどのような動作をするかを予測する。特定のタイミングで感知された運転環境の感知データに基づいて、地図/ルート情報311及び交通ルール312のセットに従って前記予測を実行する。例えば、オブジェクトが反対方向の車両であり、現在の運転環境が交差点を含む場合、予測モジュール303は、当該車両が前に直進するか、曲がるかを予測する。感知データが交差点に信号機がないと示す場合、予測モジュール303は、当該車両が交差点に入る前に完全に停止することを予測することができる。感知データが当該車両が現在左折専用車線または右折専用車線にあることを示す場合、予測モジュール303は、当該車両が左折する可能性が高いか、右折する可能性が高いかをそれぞれ予測することができる。
【0045】
それぞれのオブジェクトについて、決定モジュール304は、オブジェクトをどのように扱うかを決定する。例えば、特定のオブジェクト(例えば、交差ルートでの他の車両)及びオブジェクトを説明するメタデータ(例えば、速度、方向、回転角度)について、決定モジュール304は、前記オブジェクトとどのように遭遇する(例えば、追い越し、譲れ、停止、経過)かを決定する。決定モジュール304は、永続的記憶装置352に記憶されることができる交通ルールまたは運転ルール312のルールのセットに従って、このような決定を行うことができる。
【0046】
ルーティングモジュール307は、出発点から目的地までの一つまたは複数のルートまたは経路を提供するように構成される。例えば、ユーザーから受信された開始位置から目的地位置までの所定の旅程について、ルーティングモジュール307は、地図とルート情報311を取得し、開始位置から目的地位置に到達するすべての可能なルートまたは経路を確定する。ルーティングモジュール307は、出発点から目的地までのルート中のそれぞれの基準線を生成することができる。基準線は、例えば、他の車両、障害物または交通状況の他の干渉のない理想的なルートまたは理想的な経路を表す。即ち、道路に他の車両、歩行者または障害物がない場合、ADVは、正確にまたは厳密に基準線を従う必要がある。その後、決定モジュール304および/または計画モジュール305に地形図を提供することができる。他のモジュールによって提供された他のデータ(例えば、ローカリゼーションモジュール301からの交通情報、感知モジュール302によって感知された運転環境と予測モジュール303によって予測された交通状況)に従って、決定モジュール304および/または計画モジュール305は、考えられるすべてのルートを検査して、最適なルート中の一つを選択及び修正する。ADVを制御するための実際の経路または経路は、ルーティングモジュール307によって提供される基準線に近いか、または異なるかは、その時点での特定の運転環境に依存する。
【0047】
感知されたオブジェクトに対するそれぞれの決定に基づいて、計画モジュール305は、ルーティングモジュール307によって提供された基準線路をベースとして使用し、自動運転車のために経路またはルート及び運転パラメータ(例えば、距離、速度および/または回転角度)を計画する。即ち、あるオブジェクトについて、決定モジュール304は、当該オブジェクトに何をするかを決定し、計画モジュール305は、どのようにするかを決定する。例えば、あるオブジェクトについて、決定モジュール304は、前記オブジェクトを追い越すことを決定することができ、計画モジュール305は、前記オブジェクトの左側を通過するか右側を通過するかを決定することができる。計画及び制御データは、計画モジュール305によって生成され、車両300が次の移動サイクルの(例えば、次のルート/経路セグメント)でどのように移動するかを説明する情報を含む。例えば、計画及び制御データは、車両300が30マイルの時速(mph)の速度で10メートルを移動し、25mphの速度で右側の車線に変更することを示すことができる。
【0048】
計画及び制御データに基づいて、制御モジュール306は、計画及び制御データによって定義されたルートまたは経路に従って、適切な命令または信号を車両制御システム111に送信して、自動運転車を制御及び運転する。前記計画及び制御データは、十分な情報を含み、経路またはルートに沿って異なるタイミングで適切な車両の設置または運転パラメータ(例えば、アクセル、ブレーキ及びステアリング命令)を使用して、車両をルートまたは経路の第1点から第2点に運転する。
【0049】
一実施形態において、計画段階は、複数の計画サイクル(運転サイクルとも呼ばれる)で実行され、例えば、100ミリ秒(ms)の時間間隔ごとなどで実行される。それぞれの計画サイクルまたは運転サイクルは、計画及び制御データに基づいて一つまたは複数の制御命令を送信する。即ち、100msごとに、計画モジュール305が次のルートセグメントまたは経路セグメントを計画し、例えば、目標位置とADVが当該目標位置に到達するのに必要な時間を含む。代替的に、計画モジュール305は、具体的な速度、方向および/またはステアリング角度などを指定することもできる。一実施形態において、計画モジュール305は、次の所定の期間(例えば、5秒)でルートセグメントまたは経路セグメントを計画する。それぞれの計画サイクルについて、計画モジュール305は、前のサイクルで計画した目標位置に基づいて現在のサイクル(例えば、次の5秒)のために目標位置を計画する。その後、制御モジュール306は、その後現在のサイクルの計画及び制御データに基づいて一つまたは複数の制御命令(例えば、アクセル制御命令、ブレーキ制御命令、ステアリング制御命令)を生成する。
【0050】
注意すべきことは、決定モジュール304と計画モジュール305は、統合モジュールに統合されることができる。決定モジュール304/計画モジュール305は、自動運転車の運転経路を決定するためのナビゲーションシステムまたはナビゲーションシステム機能を含むことができる。例えば、ナビゲーションシステムは、自動運転車が以下の経路に沿って移動する一連のことを実現するための速度と進行方向を決定する。前記経路は、自動運転車を最終目的地に至る車線の経路に沿って前進すると同時に、感知された障害物を基本的に回避する。目的地は、ユーザインターフェースシステム113を介して行われるユーザーの入力によって設定されることができる。ナビゲーションシステムは、自動運転車が動作すると同時に、動的に運転経路を更新することができる。ナビゲーションシステムは、自動運転車の運転経路を決定するために、GPSシステム及び一つまたは複数の地図からのデータを組み込むことができる。
【0051】
注意すべきことは、上記で示して説明したコンポーネントの一部または全部は、ソフトウェア、ハードウェアまたはそれらの組合せで実装されることができる。例えば、このようなコンポーネントは、永続的記憶装置にインストールされ且つ記憶されるソフトウェアとして実装されることができ、前記ソフトウェアは、プロセッサ(図示せず)を介してメモリにロードされ、メモリで実行されて、本発明の全文で説明されたプロセスまたは操作を実装することができる。代替的に、このようなコンポーネントは、集積回路(例えば、特定用途向け集積回路またはASIC)、デジタルシグナルプロセッサ(DSP)またはフィールドプログラマブルゲートアレイ(FPGA)などの専用ハードウェアにプログラムまたは埋め込まれた実行可能なコードとして実装されることができ、前記実行可能なコードは、アプリケーションから対応するドライバーおよび/または操作システムを介してアクセスすることができる。なお、このようなコンポーネントは、一つまたは複数の特定の指令を介してソフトウェアコンポーネントからアクセス可能な指令セットの一部として、プロセッサまたはプロセッサコアの特定のハードウェアロジックとして実装されることができる。
【0052】
多項式フィッティングベースの基準線の平滑化
【0053】
図4は、実施形態に係る多項式フィッティングベースの基準線平滑化コンポーネントがADVで操作される環境を示す。
図4に示すように、感知及び計画システム110のルーティングモジュール307は、汎用基準線平滑化コンポーネント401及び多項式フィッティングベースの基準線平滑化コンポーネント403を含むことができる。使用される基準線平滑化コンポーネントは、特定の道路セグメントでのADVの予想速度を含む複数の要因に基づくことができる。
【0054】
例えば、ADVが1時間あたり70マイルの制限速度で高速道路に走行する場合、ADVは1マイルあたり35マイルの制限速度でローカル道路セグメントを走行することよりも高速で高速走行することを期待することができる。従って、ADVは、多項式フィッティングベースの基準線平滑化コンポーネント403を呼び出して、高速道路の道路セグメントに対して生成された基準線を平滑化することができる。
【0055】
本明細書で使用されるように、一実施形態において、基準線は、ルーティングモジュール307によって確定された出発点から目的地までの可能な経路ごとに地形図の形態で作成されることができる。
【0056】
ADVが高速道路を降りて、所定の値(例えば、45マイル/時)より低い制限速度で道路セグメントを走行し始めたことが検出された場合、ADVは、基準線を平滑化するための汎用基準線平滑化コンポーネント401に切り替えることができる。多項式フィッティングベースの基準線平滑化コンポーネント403は、多項式曲線を使用して、より平滑でより正確な基準線を生成するプロセスを実現することができる。
【0057】
図5は、実施形態に係る多項式フィッティングベースの基準線平滑化コンポーネントをさらに示す。一実施形態において、基準線の平滑化処理は、多項式フィッティングベースの基準線平滑化コンポーネント403によって実現することができる。平滑化処理は、基準線を生成するように構成された複数の操作を含むことができ、高速環境でのより快適な運転体験を提供することができる。
【0058】
図5に示すように、ADVが高速道路セグメントに進入したことを検出すると、ルーティングモジュール307によってグローバル座標系501における最初の基準線を生成することができる。最初の基準線501は、一連の離散点を含むことができ、これらの離散点は、計画段階(例えば、30秒)の開始位置から目的地位置まで連結する線を生成する。実施形態において、100ミリ秒(ms)の時間間隔で、複数の計画サイクルで計画段階を実行することができる。ADVのルーティング結果と高解像度地図に基づいて、一連の点を生成することができる。一実施形態において、ルーティング結果は、開始位置から目的地位置までの様々な可能なルートを含むことができる。最初の基準線上の各点は、グローバル座標系でのADVの位置を表しているため、経度の値と緯度の値によって参照されることができる。
【0059】
図5にさらに示すように、分割された最初の基準線503になるように最初の基準
線501を分割することができる。所定の式に基づいて分割することができる。一例示において、分割された最初の基準線は、式「現在の速度*12秒+30メートル」を使用して計算された長さを有することができる。12秒と30メートルの数値は履歴データに基づいて評価され、他の数値セットに変更されることができる。
【0060】
分割された基準線503は、ローカル座標系で分割された最初の基準線505を作成するために、ローカル座標系における一連の離散点に転換されることができ、ここで、x軸は、計画段階の開始時のADVの進行方向である。ローカル座標系において、分割された基準線上の各離散点ごとに、座標セット(例えば、水平座標X及び垂直座標Y)が存在する。一連の離散点に最もフィッティングする多項式曲線507を認識することができ、多項式曲線507を使用して各水平座標の新しい垂直座標509を計算することができる。各新しく計算された垂直座標及びそれに対応する水平座標は、多項式曲線で表される新しい平滑化された基準線上の点に対応する。平滑化された基準線上の各点は、グローバル座標系の対応位置511に転換し直せることができる。
【0061】
ADVが新しく生成された基準線で使用するようにするために、多項式曲線とローカル座標系から転換し直された点に従って、各点に対して複数のパラメータを決定し、前記パラメータは、位置、進行方向、kappa及びdkappaを含む。
【0062】
実施形態において、各点の位置は、経度の値と緯度の値によって表されることができる。各点の進行方向は、フィッティングされた多項式曲線から導出することができ、例えば、式y=atan2(3*C3*newx*new_x+2*C2*new_x+C2,1)-target_heading+new_heading)を使用して導出する。上記の式において、新しいyを生成する最適な曲線に同じxが提供される場合、「new_x」はxと同じであり、「new_heading」は、元のグローバル座標系における第1点の進行方向であり、及び「target_heading」は、対応する座標系における第1点の進行方向であり、常に0であることができる。
【0063】
実施形態において、kappa情報は、例えば、式(2*C2+6*C3*new_x)を使用して、フィッティングされた多項式曲線から導出することができる。dkappa情報は、例えば、式(6*C3)を使用して、フィッティングされた多項式曲線から導出することができる。
【0064】
実施形態において、atan2(y,x)は、2つの数値x及びyのアークタンジェントを返す関数である。結果は、ラジアンで表された角度である。上記の例において、atan2の第1パラメータ3*C3*newx*new_x+2*C2*new_x+C2は、最適なフィッティング曲線の一次導関数である。各点のkappa情報を計算するために使用される式は、最適なフィッティング曲線の二次導関数である。各点のdkappa情報を計算するために使用される式は、最適なフィッティング曲線の三次導関数である。実施形態において、点のkappaは曲率であることができ、当該点のdkappaは曲率の割合(dkappa/dt)であることができる。
【0065】
多項式曲線は平滑であるので、異なる次数の微分も平滑である。このような平滑な基準線は、特定の加速度を維持するために曲率に対するより高い要件が必要な高速環境で、より平滑で快適な運転体験を提供する。求心加速度の大きさはV2/Rで表すことができる。上記の式で、VはADVの速度であり、Rは特定の点での曲率半径である。
【0066】
図6A乃至
図6Eは、実施形態に係る多項式フィッティングベースの基準線平滑化方法をグラフで示す。
図6Aにおいて、最初の基準線は、ADVのルーティングモジュールによって生成される。最初の基準線は、グローバル座標系の一連の離散点を含み、ここで、離散点は、計画段階で開始位置から目的地位置まで連結する線に形成される。
図6Bにおいて、所定の式に基づいて、最初の基準線を分割して分割された最初の基準線515を作成し、分割された最初の基準線515は、一連の離散点505乃至513を含むことができる。各点は、経度の値と緯度の値によって参照されることができる。
図6Cにおいて、一連の離散点505乃至513をローカル座標系に転換することができ、ここで、x軸は、計画段階の開始時または座標変更時のADVの進行方向であることができる。
図6Dは、ローカル座標系の一連の離散点505乃至513に最もフィッティングする多項式曲線を示す。
図6Dに示すように、最適なフィッティング多項式曲線は、
Y=C3*X3+C2*X2+C1*X1+C0*X0の形式であることができる。
図6Eは、グローバル座標系の一連の新しい点515乃至523を示す。一連の新しい点515乃至523のそれぞれは、ローカル座標系の最適なフィッティング多項式曲線上の点に対応することができる。ルーティングモジュールは、最適なフィッティング多項式曲線を使用して、最適なフィッティング曲線上の各離散点の進行方向、kappa及びdkappaを計算することができる。計算情報を有する一連の離散点は、高速環境での平滑な基準線を表す。
【0067】
図7は、実施形態に係る基準線を平滑化する例示のプロセスを示すフローチャートである。プロセス700は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、プロセッサ、処理デバイス、中央処理装置(CPU)、システムオンチップ(SoC)など)、ソフトウェア(例えば、処理デバイスで実行/実行する指令)、ファームウェア(例えば、マイクロコードなど)、またはそれらの組み合わせを含む処理ロジックによって実行される。いくつかの実施形態において、プロセス700は、
図3Aと
図3Bに示された感知モジュール302、計画モジュール305及びルーティングモジュール307中の一つまたは複数によって実行されてもよい。
【0068】
図7を参照すると、処理701において、自動運転車のために生成された基準線をグローバル座標系からローカル座標系に転換する。基準線は、計画段階において高解像度地図と計画情報に基づいてADVのルーティングモジュールによって生成された最初の基準線の一部であることができる。最初の基準線は、一連の離散点を含むことができ、各点は、計画段階のある時点での予想位置を表し、各点は、経度の値と緯度の値によって参照される。基準線をグローバル座標系からローカル座標系に転換することにより、ADVのルーティングモジュールは、各離散点の位置値をグローバル座標形式(例えば、経度の値と緯度の値)からローカル座標形式(例えば、垂直座標と水平座標)に転換する。転換を実行する場合、ルーティングモジュールはADVの進行方向をx軸として使用する。
【0069】
処理703において、分割された基準線上の一連の点中の各点の水平座標に対して、分割された基準線上の離散点に最もフィッティングまたはマッチングする多項式曲線を使用して、ローカル座標系の新しい垂直座標を決定することができる。実施形態において、回帰および交差検証技術を使用して最適合なフィッティング曲線を見つけることができ、上記最適合なフィッティング曲線は三次多項式関数であってもよい。
【0070】
処理705において、新しい垂直座標と対応する水平座標によって表される一連の点をグローバル座標系に転換し直すことができる。
【0071】
処理707において、最適なフィッティング多項式曲線を使用して、各転換点の進行方向、kappa及びdkappaを決定する。グローバル座標系に転換し直された一連の点と各点の上記で決定された情報は、より高い曲率要件がある高速環境で、より平滑で快適な運転体験を提供するために、ADVに十分な情報を提供することができる。
【0072】
注意すべきことは、上記で示して説明したコンポーネントの一部または全部は、ソフトウェア、ハードウェアまたはそれらの組合せで実装されることができる。例えば、このようなコンポーネントは、永続的記憶装置にインストールされ且つ記憶されるソフトウェアとして実装されることができ、前記ソフトウェアは、プロセッサ(図示せず)を介してメモリにロードされ、メモリで実行されて、本発明の全文で説明されたプロセスまたは操作を実装することができる。代替的に、このようなコンポーネントは、集積回路(例えば、特定用途向け集積回路またはASIC)、デジタルシグナルプロセッサ(DSP)またはフィールドプログラマブルゲートアレイ(FPGA)などの専用ハードウェアにプログラムまたは埋め込まれた実行可能なコードとして実装されることができ、前記実行可能なコードは、アプリケーションから対応するドライバーおよび/または操作システムを介してアクセスすることができる。なお、このようなコンポーネントは、一つまたは複数の特定の指令を介してソフトウェアコンポーネントからアクセス可能な指令セットの一部として、プロセッサまたはプロセッサコアの特定のハードウェアロジックとして実装されることができる。
【0073】
図8は、本発明の一実施形態と一緒に使用され得るデータ処理システムの例を示すブロック図である。例えば、システム1500は、
図3Aのルーティングモジュール307のような上記のプロセスまたは方法中のいずれかを実行する任意のデータ処理システムを表すことができる。システム1500は、複数の異なるコンポーネントを含むことができる。これらのコンポーネントは、集積回路(IC)、集積回路の一部、ディスクリート電子デバイスまたはコンピューターシステムのマザーボードまたはアドインカードなどの回路基板に適した他のモジュールとして実装され、または他の方法でコンピューターシステムのシャーシ内に組み込まれるコンポーネントとして実装されることができる。
【0074】
さらに注意すべきことは、システム1500は、コンピューターシステムを示す複数のコンポーネントの高レベルビューを示す。しかし、特定の実施形態では追加のコンポーネントが存在する可能性があり、なお、他の実施形態では示されたコンポーネントの異なる配置がある可能性があることを理解されたい。システム1500は、デスクトップ、ラップトップ、タブレット、サーバ、携帯電話、メディアプレーヤー、携帯情報端末(PDA)、スマートウォッチ、パーソナルコミュニケーター、ゲームデバイス、ネットワークルーターまたはハブ、ワイヤレスアクセスポイント(AP)またはリピーター、セットトップボックス、またはそれらの組み合わせを表すことができる。なお、単一の機器またはシステムのみを示すが、「機器」または「システム」という用語は、一つ(または複数)の指令を個別にまたは共同で実行して本明細書で議論されたいずれかの一つまたは複数の方法の機器またはシステムの任意のセットを含むものとみなされる。
【0075】
一実施形態において、システム1500は、バスまたは相互接続コンポーネント1510を介して接続されるプロセッサ1501、メモリ1503及びデバイス1505乃至1508を含む。プロセッサ1501は、単一のプロセッサコアまたは複数のプロセッサコアを含む単一のプロセッサまたは複数のプロセッサを表すことができる。プロセッサ1501は、マイクロプロセッサ、中央処理ユニット(CPU)などの一つまたは複数の汎用プロセッサを表すことができる。さらに具体的に、プロセッサ1501は、複雑な指令セットコンピューティング(CISC)マイクロプロセッサ、縮小指令セットコンピューティング(RISC)マイクロプロセッサ、超長指令ワード(VLIW)マイクロプロセッサ、または他の指令セットを実装するプロセッサ、または指令セットの組合せを実装するプロセッサであることができる。プロセッサ1501は、特定用途向け集積回路(ASIC)、セルラーまたはベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、グラフィックスプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組み込みプロセッサ、または指令を処理できる任意の他のタイプのロジックのような一つまたは複数の専用プロセッサであることができる。
【0076】
プロセッサ1501は、超低電圧プロセッサなどの低電力マルチコアプロセッサソケットであってもよく、前記システムの様々なコンポーネントと通信するためのメイン処理ユニット及び中央ハブとして機能してもよい。このようなプロセッサは、システムオンチップ(SoC)として実装されることができる。プロセッサ1501は、本明細書で議論される操作及びステップを実行するための指令を実行するように構成される。システム1500は、ディスプレイコントローラ、グラフィックプロセッサ、および/またはディスプレイデバイスを含むことができる選択可能なグラフィックサブシステム1504と通信するグラフィックインターフェースをさらに含むことができる。
【0077】
プロセッサ1501は、メモリ1503と通信することができ、メモリ1503は、一実施形態において、所与の量のシステムメモリを提供するために、複数のメモリデバイスを介して実装されることができる。メモリ1503は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、スタティックRAM(SRAM)、または他のタイプの記憶装置などの一つまたは複数の揮発性ストレージ(またはメモリ)デバイスを含むことができる。メモリ1503は、プロセッサ1501または他のデバイスによって実行される指令のシーケンスを含む情報を記憶することができる。例えば、様々な操作システム、デバイスドライバ、ファームウェア(例えば、入出力基本システムまたはBIOS)および/またはアプリケーションの実行可能なコードおよび/またはデータをメモリ1503にロードし、プロセッサ1501によって実行する。操作システムは、任意のタイプの操作システム,例えば、ロボット操作システム(ROS)、Microsoft(登録商標)社からのWindows(登録商標)操作システム、アップル社からのMac OS(登録商標)/iOS(登録商標)、Google(登録商標)社からのAndroid(登録商標)、LINUX(登録商標)、UNIX(登録商標),または他のリアルタイムまたは組み込み操作システムであることができる。
【0078】
システム1500は、ネットワークインターフェースデバイス1505、選択可能な入力デバイス1506、及び他の選択可能なIOデバイス1507をさらに含むことができる。ネットワークインターフェースデバイス1505は、ワイヤレストランシーバおよび/またはネットワークインターフェイスカード(NIC)を含むことができる。前記ワイヤレストランシーバは、WiFi(登録商標)トランシーバ、赤外線トランシーバ、ブルートゥース(登録商標)トランシーバ、WiMaxトランシーバ、ワイヤレスセルラーテレフォニートランシーバ、衛星トランシーバ(例えば、全地球測位システム(GPS)トランシーバ)または他の無線周波数(RF)トランシーバまたはそれらの組合せであることができる。NICは、イーサネット(登録商標)カードであることができる。
【0079】
入力デバイス1506は、マウス、タッチパッド、タッチセンシティブスクリーン(ディスプレイデバイス1504と統合されることができる)、スタイラスなどのポインタデバイス、および/またはキーボード(例えば、物理キーボードまたはタッチセンシティブ画面の一部として表示される仮想キーボード)を含むことができる。
【0080】
例えば、入力デバイス1506は、タッチスクリーンに接続されたタッチスクリーンコントローラを含むことができる。タッチスクリーンとタッチスクリーンコントローラーは、例えば、容量性、抵抗性、赤外線、および表面音響波技術を含むがこれらに限定されない複数のタッチセンシティブ技術のいずれか、及び他の近接センサーアレイまたはタッチスクリーンとの一つまたは複数の接触点を決定するためのその他の要素を使用して、その接触及び移動または破損を検出することができる。
【0081】
IOデバイス1507は、オーディオデバイスを含むことができる。オーディオデバイスは、音声認識、音声複製、デジタル記録、および/または電話機能などの音声対応機能を容易にするために、スピーカーおよび/またはマイクを含むことができる。他のIOデバイス1507は、ユニバーサルシリアルバス(USB)ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ(例えば、PCI-PCIブリッジ)、センサー(例えば、加速度計、ジャイロスコープ、磁力計、光センサー、コンパス、近接センサーなどのモーションセンサー)、またはそれらの組み合わせをさらに含むことができる。デバイス1507は、カメラ機能を促進するために利用される電荷接続素子(CCD)または相補型金属酸化物半導体(CMOS)光学センサなどの光学センサを含むことができる撮像処理サブシステム(例えばカメラ)をさらに含むことができる。特定のセンサーは、センサーハブ(図示せず)を介して相互接続コンポーネント1510に接続されることができるが、キーボードまたは熱センサーなどの他のデバイスは、システム1500の具体的な構成または設計に応じて、組み込みコントローラー(図示せず)によって制御されることができる。
【0082】
データ、アプリケーション、一つまたは複数の操作システムなどの情報の永続的なストレージを提供するために、大容量ストレージ(図示せず)もプロセッサ1501に接続することができる。様々な実施形態において、より薄くて軽いシステム設計を実現し、システムの応答性を改善するために、この大容量ストレージは、ソリッドステートデバイス(SSD)を介して実装されることができる。しかし、他の実施形態において、大容量ストレージは主に、パワーダウンイベント中にコンテキスト状態やその他の情報の不揮発性ストレージを有効にするSSDキャッシュとして機能するSSDストレージの少ないハードディスクドライブ(HDD)を使用して実装され、そのため、システムアクティビティの再起動時に高速電源投入を実現することができる。また、フラッシュデバイスは、例えば、シリアル周辺インターフェース(SPI)を介してプロセッサ1501に接続されることができる。このフラッシュデバイスは、前記システムのBIOS及び他のファームウェアを含むシステムソフトウェアの不揮発性ストレージを提供することができる。
【0083】
記憶装置1508は、一つまたは複数の命令セットまたはソフトウェア(例えば、モジュール、ユニット、および/またはロジック1528)が記憶されるコンピュータ可読記憶媒体1509(機械可読記憶媒体またはコンピュータ可読媒体としても知られる)を含むことができる。処理モジュール/ユニット/ロジック1528は、例えば、計画モジュール305、制御モジュール306、またはキャリブレーションテーブルジェネレータ125などの上記のコンポーネントのいずれかを表すことができる。処理モジュール/ユニット/ロジック1528はさらに、データ処理システム1500、メモリ1503及びプロセッサ1501によって実行される期間にメモリ1503内および/またはプロセッサ1501内に完全にまたは少なくとも部分的に留まることができ、データ処理システム1500、メモリ1503及びプロセッサ1501は、機械アクセス可能記憶媒体も構成する。処理モジュール/ユニット/ロジック1528はさらに、ネットワークを介してネットワークインターフェースデバイス1505によって送信または受信することができる。
【0084】
コンピュータ可読記憶媒体1509はまた、上記のいくつかのソフトウェア機能を永続的に記憶するために使用されることができる。例示的な実施形態では、コンピュータ可読記憶媒体1509が単一の媒体であるように示されたが、用語「コンピュータ可読記憶媒体」は、単一の媒体または複数の媒体(例えば、集中型または分散型データベース、および/または関連するキャッシュとサーバ)が一つまたは複数の命令セットを記憶するとみなされるべきである。用語「コンピューター可読記憶媒体」は、機械による実行のための命令セットを記憶またはエンコードすることができ、機械が本発明で開示されたいずれかの一つまたは複数の方法を実行させる任意の媒体も含むものとみなされるべきである。従って、用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ、光学及び磁気媒体、またはその他の非一時的な機械可読媒体を含むと解釈されるが、これらに限定されない。
【0085】
本明細書で説明する処理モジュール/ユニット/ロジック1528、コンポーネント、及びその他の特徴は、個別のハードウェアコンポーネントとして実装されるか、ASIC、FPGA、DSP、または類似のデバイスなどのハードウェアコンポーネントの機能に統合されることができる。なお、処理モジュール/ユニット/ロジック1528は、ハードウェアデバイス内のファームウェアまたは機能回路として実装されることができる。なお、処理モジュール/ユニット/ロジック1528は、ハードウェアデバイスとソフトウェアコンポーネントの任意の組み合わせで実装されることができる。
【0086】
システム1500は、データ処理システムの様々なコンポーネントを有すると示されたが、コンポーネントを相互接続する特定のアーキテクチャまたは方法を表すことを意図していないことに留意されたい。このような詳細は、本開示の実施形態と密接な関係がないためである。より少ないコンポーネントまたはより多くのコンポーネントを有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、および/または他のデータ処理システムも本開示の実施形態と一緒に使用できることも認識されるべきである。
【0087】
前述の詳細な説明の一部は、コンピューターメモリ内のデータビットに対する操作のアルゴリズム及び記号表現によって提示されている。これらのアルゴリズムの説明と表現は、データ処理の分野の当業者が自分の仕事の内容を他の当業者に最も効果的に伝えるために使用する方法である。本明細書において、アルゴリズムは、一般的に望ましい結果を導く一貫した操作のシーケンスであると考えられる。これらの操作は、物理量を物理的に操作するための操作を指す。
【0088】
しかし、これらの用語及び類似の用語はすべて、適切な物理量に関連するものであり、これらの量に適用される単なる便利なラベルであることに留意されたい。上記の議論で他の方法で明確に指定されていない限り、全体の明細書において、以下の特許請求の範囲に記載されている用語などの用語を使用する議論は、コンピューターシステムまたは同様の電子コンピューティングデバイスのアクション及びプロセスを指し、前記コンピューターシステムまたは電子計算デバイスは、コンピューターシステムのレジスター及びメモリー内の物理(電子)量として表されるデータを制御し、前記データをコンピューターシステムメモリまたはレジスターまたは他のこのタイプの情報ストレージに変換し、デバイス内の物理量として類似的に表される他のデータを伝送または表示することを理解すべきである。
【0089】
本開示の実施形態は、本明細書の操作を実行するための装置にも関する。このようなコンピュータープログラムは、非一時的なコンピューター可読媒体に記憶される。機械可読媒体は、機械(例えば、コンピューター)によって読み取り可能な形式で情報を記憶するための任意のメカニズムを含む。例えば、機械可読(例えば、コンピューター可読)媒体は、機械(例えば、コンピューター)可読記憶媒体(例えば、読み取り専用メモリー(「ROM」)、ランダムアクセスメモリー(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイスを含む。
【0090】
上記の図に示されたプロセスまたは方法は、ハードウェア(たとえば、回路、専用ロジックなど)、ソフトウェア(たとえば、非一時的なコンピューター可読媒体上で実装される)、またはそれらの組み合わせを含む処理ロジックによって実行されることができる。前記プロセスまたは方法は、いくつかのシーケンシャル操作に応じて上で説明したが、前記操作のいくつかは異なる順序で実行されてもよいことを理解すべきである。なお、一部の操作は、順序にではなく並行して実行されることができる。
【0091】
本開示の実施形態は、特定のプログラミング言語を参照して説明されていない。本明細書で説明する本開示の実施形態の教示を実装するために、様々なプログラミング言語を使用できることを理解すべきである。
【0092】
上記の明細書において、本開示の実施形態は、具体的な例示的実施形態を参照して説明された。添付の特許請求の範囲に記載される本開示のより広い精神及び範囲から逸脱することなく、本開示に様々な修正を加えることができることは明らかであろう。従って、本明細書及び図面は、制限的な意味ではなく、例示的な意味で見なされるべきである。