(57)【要約】【課題】本発明の実施形態は、概して自律走行車を動作させることに関する。より具体的には、本発明の実施形態は自律走行車の速度制御率を動的に調整することに関する。【解決手段】一実施形態において、自律走行車を動作させる速度制御命令に対して複数の速度制御率候補を決定する。各速度制御率候補に対して、複数のコストカテゴリーのうちの１つにそれぞれ対応する複数のコスト関数を用いることで、速度制御率候補に複数の独立コストを計算する。コスト関数から生じた独立コストに基づき、速度制御率候補の総コストを決定する。速度制御率候補のうち総コストが最も低い１つをターゲット速度制御率として選択する。選択された速度制御率候補に基づき、速度制御命令を生成して自律走行車の速度を制御する。【選択図】図７
2018108800.tif 000002
【特許請求の範囲】
【請求項１】
自律走行車を動作させる速度制御命令に対して複数の速度制御率候補を決定するステップと、
各前記速度制御率候補に対して、
複数のコストカテゴリーのうちの１つにそれぞれ対応する複数のコスト関数を用いることで前記速度制御率候補に対して複数の独立コストを計算し、かつ
前記コスト関数から生じた前記独立コストに基づき、前記速度制御率候補の総コストを計算するステップと、
前記速度制御率候補のうち総コストが最も低い１つをターゲット速度制御率として選択するステップと、
選択された前記速度制御率候補に基づき、前記速度制御命令を生成して前記自律走行車の速度を制御するステップとを含む、
自律走行車を動作させる速度制御率を決定するためのコンピュータ実装方法。
【請求項２】
前記速度制御率候補の前記独立コストを計算するステップは、前記自律走行車のターゲット速度制御位置と現在速度制御位置との差に基づき、第１コスト関数で第１独立コストを計算するステップを含む、請求項１に記載の方法。
【請求項３】
前記速度制御率候補が前記ターゲット速度制御位置と前記現在速度制御位置との差より大きい場合、前記第１独立コストを前記差として指定するステップと、
前記差が前記速度制御率候補以上である場合、前記第１独立コストを所定値として指定するステップとをさらに含む、請求項２に記載の方法。
【請求項４】
前記速度制御率候補の前記独立コストを計算するステップは、従来命令サイクルにおける前記自律走行車の従来ターゲット速度と実際速度との差に基づき、第２コスト関数で第２独立コストを計算するステップを含む、請求項１に記載の方法。
【請求項５】
前記自律走行車の前記従来ターゲット速度と前記実際速度との差に対して、前記速度制御率候補と最高の速度制御率候補との差に基づき、前記第２独立コストを計算するステップを含む、請求項４に記載の方法。
【請求項６】
前記速度制御率候補の前記独立コストを計算するステップは、ターゲット速度制御率とする前記速度制御率候補に対して、前記自律走行車の現在車両速度に基づき、第３コスト関数で第３独立コストを計算するステップを含む、請求項１に記載の方法。
【請求項７】
前記速度制御率候補が前記現在車両速度以上である場合、前記第３独立コストを前記現在車両速度と前記速度制御率候補との差として指定するステップと、
前記速度制御率候補が前記現在車両速度未満である場合、前記第３独立コストを所定値として指定するステップとをさらに含む、請求項６に記載の方法。
【請求項８】
前記速度制御率候補の前記独立コストを計算するステップは、ターゲット速度制御率とする前記速度制御率候補に基づき、第４コスト関数で第４独立コストを計算するステップを含む、請求項１に記載の方法。
【請求項９】
前記速度制御率候補の前記独立コストを計算するステップは、前記速度制御率候補に対して、前記自律走行車の現在ステアリング位置に基づき、第５独立コストを計算するステップを含む、請求項１に記載の方法。
【請求項１０】
前記速度制御率候補が前記ステアリング位置以上である場合、前記第５独立コストを前記ステアリング位置と前記速度制御率候補との差として指定するステップと、
前記速度制御率候補が前記ステアリング位置未満である場合、前記第５独立コストを所定値として指定するステップとをさらに含む、請求項９に記載の方法。
【請求項１１】
命令が記憶される非一時的機械可読媒体であって、
前記命令は、プロセッサにより実行される場合、前記プロセッサに動作を実行させ、前記動作には、
自律走行車を動作させる速度制御命令に対して複数の速度制御率候補を決定する動作と、
各前記速度制御率候補に対して、
複数のコストカテゴリーのうちの１つにそれぞれ対応する複数のコスト関数を用いることで前記速度制御率候補に対して複数の独立コストを計算し、かつ
前記コスト関数から生じた前記独立コストに基づき、前記速度制御率候補の総コストを計算する動作と、
前記速度制御率候補のうち総コストが最も低い１つをターゲット速度制御率として選択する動作と、
選択された前記速度制御率候補に基づき、前記速度制御命令を生成して前記自律走行車の速度を制御する動作とを含む、
命令が記憶される非一時的機械可読媒体。
【請求項１２】
前記速度制御率候補の前記独立コストを計算する動作は、前記自律走行車のターゲット速度制御位置と現在速度制御位置との差に基づき、第１コスト関数で第１独立コストを計算する動作を含む、請求項１１に記載の機械可読媒体。
【請求項１３】
前記動作は、さらに、
前記速度制御率候補が前記ターゲット速度制御位置と前記現在速度制御位置との差より大きい場合、前記第１独立コストを前記差として指定する動作と、
前記差が前記速度制御率候補以上である場合、前記第１独立コストを所定値として指定する動作とを含む、請求項１２に記載の機械可読媒体。
【請求項１４】
前記速度制御率候補の前記独立コストを計算する動作は、従来命令サイクルにおける前記自律走行車の従来ターゲット速度と実際速度との差に基づき、第２コスト関数で第２独立コストを計算する動作を含む、請求項１１に記載の機械可読媒体。
【請求項１５】
前記自律走行車の前記従来ターゲット速度と前記実際速度との差に対して、前記速度制御率候補と最高の速度制御率候補との差に基づき、前記第２独立コストを計算するステップを含む、請求項１４に記載の機械可読媒体。
【請求項１６】
前記速度制御率候補の前記独立コストを計算する動作は、ターゲット速度制御率とする前記速度制御率候補に対して、前記自律走行車の現在車両速度に基づき、第３コスト関数で第３独立コストを計算する動作を含む、請求項１１に記載の機械可読媒体。
【請求項１７】
前記動作は、さらに、
前記速度制御率候補が前記現在車両速度以上である場合、前記第３独立コストを前記現在車両速度と前記速度制御率候補との差として指定する動作と、
前記速度制御率候補が前記現在車両速度未満である場合、前記第３独立コストを所定値として指定する動作とを含む、請求項１６に記載の機械可読媒体。
【請求項１８】
前記速度制御率候補の前記独立コストを計算する動作は、ターゲット速度制御率とする前記速度制御率候補に基づき、第４コスト関数で第４独立コストを計算する動作を含む、請求項１１に記載の機械可読媒体。
【請求項１９】
前記速度制御率候補の前記独立コストを計算する動作は、前記速度制御率候補に対して、前記自律走行車の現在ステアリング位置に基づき、第５独立コストを計算する動作を含む、請求項１１に記載の機械可読媒体。
【請求項２０】
前記動作は、さらに、
前記速度制御率候補が前記ステアリング位置以上である場合、前記第５独立コストを前記ステアリング位置と前記速度制御率候補との差として指定する動作と、
前記速度制御率候補が前記ステアリング位置未満である場合、前記第５独立コストを所定値として指定する動作とを含む、請求項１９に記載の機械可読媒体。
【請求項２１】
プロセッサと、
前記プロセッサに接続され、命令を記憶するために用いられるメモリとを備え、
前記命令は、前記プロセッサにより実行される場合、前記プロセッサに動作を実行させ、前記動作には、
自律走行車を動作させる速度制御命令に対して複数の速度制御率候補を決定する動作と、
各前記速度制御率候補に対して、
複数のコストカテゴリーのうちの１つにそれぞれ対応する複数のコスト関数を用いることで前記速度制御率候補に対して複数の独立コストを計算し、かつ
前記コスト関数から生じた前記独立コストに基づき、前記速度制御率候補の総コストを計算する動作と、
前記速度制御率候補のうち総コストが最も低い１つをターゲット速度制御率として選択する動作と、
選択された前記速度制御率候補に基づき、前記速度制御命令を生成して前記自律走行車の速度を制御する動作とを含む、データ処理システム。
【請求項２２】
前記速度制御率候補の前記独立コストを計算する動作は、前記自律走行車のターゲット速度制御位置と現在速度制御位置との差に基づき、第１コスト関数で第１独立コストを計算する動作を含む、請求項２１に記載のシステム。
【請求項２３】
前記動作は、さらに、
前記速度制御率候補が前記ターゲット速度制御位置と前記現在速度制御位置との差より大きい場合、前記第１独立コストを前記差として指定する動作と、
前記差が前記速度制御率候補以上である場合、前記第１独立コストを所定値として指定する動作とを含む、請求項２２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、概して自律走行車（ＡＤＶ：ａｕｔｏｎｏｍｏｕｓ  ｄｒｉｖｉｎｇ  ｖｅｈｉｃｌｅ）を動作させることに関する。より具体的には、本発明の実施形態は自律走行車の速度制御率を動的に調整することに関する。
【背景技術】
【０００２】
自律モード（例えば、自律運転）で走行している車両は、乗員（特に運転者）を、特定の運転に関連する責任から解放できる。自律モードで走行している場合、車両は車載センサで様々な場所にナビゲートすることができ、それにより車両がヒューマンコンピュータインタラクションの最も少ない場合又はいくつかの乗客がない場合で運行することを可能にさせる。
【０００３】
運動計画及び制御は、自律走行の重要な動作（操作）である。しかしながら、従来の運動計画の動作は、主に経路の曲率と速度から所定の経路を完了する難度を推算したが、異なるタイプの車両の特徴の相違を考慮しなかった。通常、同一運動計画及び制御を全てのタイプの車両に応用しているが、いくつかの場合には、正確及び順調ではないこともある。
【０００４】
また、速度制御は自律走行の重要な一環としている。速度制御の正確性を求める場合、通常高い速度制御（例えば、スロットル、ブレーキ）変化率を必要とする。しかしながら、車両の次の移動を予測しにくく、乗客の不快感を引き起こす可能性があるため、高い変化率は危険につながる恐れがある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の一態様によれば、自律走行車を動作させる速度制御率を決定するためのコンピュータ実装方法を提供し、当該方法には、自律走行車を動作させる速度制御命令に対して複数の速度制御率候補を決定するステップと、各前記速度制御率候補に対して、複数のコストカテゴリーのうちの１つにそれぞれ対応する複数のコスト関数を用いることで前記速度制御率候補に対して複数の独立コストを計算し、かつ前記コスト関数から生じた前記独立コストに基づき、前記速度制御率候補の総コストを計算するステップと、前記速度制御率候補のうち総コストが最も低い１つをターゲット速度制御率として選択するステップと、選択された前記速度制御率候補に基づき、前記速度制御命令を生成して前記自律走行車の速度を制御するステップとを含む。
【０００６】
本発明の他の態様によれば、命令が記憶される非一時的機械可読媒体を提供し、その中で、前記命令は、プロセッサにより実行される場合、前記プロセッサに動作を実行させ、前記動作には、自律走行車を動作させる速度制御命令に対して複数の速度制御率候補を決定する動作と、各前記速度制御率候補に対して、複数のコストカテゴリーのうちの１つにそれぞれ対応する複数のコスト関数を用いることで前記速度制御率候補に対して複数の独立コストを計算し、かつ前記コスト関数から生じた前記独立コストに基づき、前記速度制御率候補の総コストを計算する動作と、前記速度制御率候補のうち総コストが最も低い１つをターゲット速度制御率として選択する動作と、選択された前記速度制御率候補に基づき、前記速度制御命令を生成して前記自律走行車の速度を制御する動作とを含む。
【０００７】
また、本発明の他の態様によれば、データ処理システムを提供し、その中で、プロセッサと、前記プロセッサに接続され、命令を記憶するために用いられるメモリとを備え、前記命令は、前記プロセッサにより実行される場合、前記プロセッサに動作を実行させ、前記動作には、自律走行車を動作させる速度制御命令に対して複数の速度制御率候補を決定する動作と、各前記速度制御率候補に対して、複数のコストカテゴリーのうちの１つそれぞれ対応する複数のコスト関数を用いることで前記速度制御率候補に対して複数の独立コストを計算し、かつ前記コスト関数から生じた前記独立コストに基づき、前記速度制御率候補の総コストを計算する動作と、前記速度制御率候補のうち総コストが最も低い１つをターゲット速度制御率として選択する動作と、選択された前記速度制御率候補に基づき、前記速度制御命令を生成して前記自律走行車の速度を制御する動作とを含む。
【図面の簡単な説明】
【０００８】
本発明の実施形態は、図面の各図に例として非限定的に示され、図面における同一符号は、類似の構成要素（部材）を示す。
【図１】一実施形態に係るネットワークシステムを示すブロック図である。
【図２】一実施形態に係る自律走行車の一例を示すブロック図である。
【図３】一実施形態に係る自律走行車と共に使用される感知及び計画システムの一例を示すブロック図である。
【図４】本発明の一実施形態に係る制御モジュールを示すブロック図である。
【図５】本発明の一実施形態に係る速度制御率の決定プロセスを示すデータ構造である。
【図６】本発明の一実施形態に係る速度制御率決定モデルを示す例である。
【図７】本発明の一実施形態に係る自律走行車を動作させる速度制御率の決定プロセスを示すフローチャートである。
【図８】本発明の別の実施形態に係る自律走行車を動作させる速度制御率の決定プロセスを示すフローチャートである。
【図９】一実施形態に係るデータ処理システムを示すブロック図である。
【発明を実施するための形態】
【０００９】
以下、説明の詳細を参照しながら、本出願の様々な実施形態及び方法を説明し、図面は、前記様々な実施形態を示す。以下の説明及び図面は、本出願を説明するためのものであり、本出願を限定するものではない。本出願の様々な実施形態を完全に把握するために、多数の特定の詳細を説明する。なお、いくつかの例では、本出願の実施形態に対する簡単な説明を提供するために、周知又は従来技術の詳細について説明していない。
【００１０】
本明細書では「一実施形態（一つの実施形態）」又は「実施形態」とは、当該実施形態について組み合わせて説明された特定特徴、構造又は特性が、本出願の少なくとも一つの実施形態に含まれてもよい。語句「一実施形態において」は、本明細書全体において同一実施形態を指すとは限らない。
【００１１】
いくつかの実施形態によれば、速度制御率決定システム又は予測モデルを提供し、所定の時点に計画された車両制御情報に基づいて速度制御率（例えば、スロットルレート又はブレーキレート）を決定又は推薦する。速度制御率決定システム又は予測モデルは、各種の運転条件において駆動する各種の車両から収集された大量運転統計情報に基づいて作成でき、機械学習システムでトレーニングできる。車両制御情報は、該時点の現在ターゲット速度制御位置（例えば、現在ターゲットスロットル又はブレーキ位置又は百分率）、現在速度制御位置、従来ターゲット速度制御位置、現在車速、従来車両速度、及び／又は現在ステアリング位置を含んでもよい。速度制御位置とは、それぞれの最大スロットル値又は最大ブレーキ値を１００部（１００％）として示すスロットル又はブレーキ位置である。車両の走行中に、車両制御情報は、車両の各種のセンサによって別途リアルタイムに収集できる。システム又は予測モデルの出力は、推薦された速度制御率（ターゲット速度制御率とも呼ばれる）を示し、後続の1つ以上の命令サイクルに速度制御命令を生成することに用いられ得る。速度制御率とは、スロットル百分率又はブレーキ百分率の形での速度制御命令の変化率又は変化量（例えば、増分又は減分）である。
【００１２】
一実施形態において、特定の自律走行車又は自律走行車の特定タイプの可能な速度制御率を示す１群の速度制御率候補を決定する。該群の速度制御率候補は、予め決定されてもよく、車両によって変化してもよい。各速度制御率候補に対して、1つ以上のコスト関数で速度制御率候補に対して1つ以上の独立コストを計算する。1つ以上の後続命令サイクルのターゲット速度制御率を決定した場合、各コスト関数は、配慮の必要がある１つのコストカテゴリーに対応する。各速度制御率候補の独立コストに基づいて総コストを計算する。全ての速度制御率候補の全ての総コストを決定した後、速度制御率候補のうち総コストが最も低い１つを1つ以上の後続命令サイクルの実際ターゲット速度制御率として選択する。
【００１３】
図１は一実施形態に係る自律走行車のネットワーク配置を示すブロック図である。図１を参照して、ネットワーク配置１００はネットワーク１０２によって１つ以上のサーバ１０３〜１０４に通信可能に接続することができる自律走行車１０１を含む。１つの自律走行車を示すが、ネットワーク１０２によって複数の自律走行車は互いに接続され、及び／又はサーバ１０３〜１０４に接続されることができる。ネットワーク１０２は、任意のタイプのネットワーク、例えば有線又は無線のローカルエリアネットワーク（ＬＡＮ）、例えばインターネット、セルラーネットワーク、衛星ネットワークの広域ネットワーク（ＷＡＮ）又はその組み合わせであってもよい。サーバ１０３〜１０４は任意のタイプのサーバ又はサーバクラスタ、例えばＷｅｂサーバ又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ又はその組み合わせであってもよい。サーバ１０３〜１０４は、データ分析サーバ、内容サーバ、交通情報サーバ、地図（マップ）及び興味のあるポイント（ＭＰＯＩ）サーバ又は位置サーバ等であってもよい。
【００１４】
自律走行車とは、自律モードになるように配置できる車両を指し、前記自律モードで車両が運転者からの入力が非常に少ない又はない場合にもナビゲーションして環境を通過する。このような自律走行車は、センサシステムを含んでもよく、前記センサシステムは車両走行環境に関連する情報を検出するように配置される１つ以上のセンサを有する。前記車両及びその関連するコントローラには検出した情報を使用してナビゲーションし環境を通過する。自律走行車１０１は、手動モード、完全自律モード又は部分自律モードで運行することができる。
【００１５】
一実施形態において、自律走行車１０１は、感知及び計画システム１１０と、車両制御システム１１１と、無線通信システム１１２と、ユーザインターフェースシステム１１３と、インフォテイメントシステム１１４と、センサシステム１１５とを含むが、これらに制限されない。自律走行車１０１は、通常の車両に含まれるある一般的な構成要素（部材）、例えばエンジン、車輪、ハンドル、変速器等をさらに含んでもよく、前記構成要素は、車両制御システム１１１及び／又は感知及び計画システム１１０により多種の通信信号及び／又は命令（例えば加速度信号又は命令、減速信号又は命令、ステアリング信号又は命令、ブレーキ信号又は命令等）を使用して制御することができる。
【００１６】
構成要素１１０〜１１５は、インターコネクト、バス、ネットワーク又はそれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素１１０〜１１５は、コントローラローカルエリアネットワーク（ＣＡＮ）バスを介して互いに通信可能に接続することができる。ＣＡＮバスは、マイクロコントローラ及び装置がホストコンピューターのない使用において互いに通信することを許可するような車両バス標準として設計される。それはメッセージに基づくプロトコルであり、最初に自動車内における複数の電線のために設計されたが、数多くのその他の環境（状況）にも用いられる。
【００１７】
現在、図２を参照して、一実施形態において、センサシステム１１５は、１つ以上のカメラ２１１と、全地球測位システム（ＧＰＳ）ユニット２１２と、慣性計測ユニット（ＩＭＵ）２１３と、レーダーユニット２１４と、ＬＩＤＡＲ（光検出及び測距）ユニット２１５とを含むが、これらに制限されない。ＧＰＳユニット２１２は、送受信機を含んでもよく、前記送受信機は、自律走行車の位置に関する情報を提供するように動作することができる。ＩＭＵユニット２１３は、慣性加速度に基づいて自律走行車の位置及び方向変化を感知することができる。レーダーユニット２１４は、無線信号を利用して自律走行車のローカル環境内の対象を感知するシステムを示すことができる。いくつかの実施形態において、対象を感知する以外、レーダーユニット２１４は、さらに対象の速度及び／又は進行方向を感知することができる。ＬＩＤＡＲユニット２１５はレーザを使用して自律走行車の所在する環境における対象を感知することができる。その他のシステム構成要素以外、ＬＩＤＡＲユニット２１５は１つ以上のレーザ光源、レーザースキャナ及び１つ以上の検出器をさらに含んでもよい。カメラ２１１は、自律走行車の周辺環境の画像をキャプチャするための１つ以上の装置を含んでもよい。カメラ２１１は、スチルカメラ及び／又はビデオカメラであってもよい。カメラは、例えば回転及び／又は傾斜のプラットフォームに取り付けられる、機械的に移動可能なものであってもよい。
【００１８】
センサシステム１１５は、その他のセンサ、例えばソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ、及びオーディオセンサ（例えばマイクロフォン）をさらに含んでもよい。オーディオセンサは、自律走行車周辺の環境から音をキャプチャするように配置されてもよい。ステアリングセンサは、ハンドル、車両の車輪又はその組み合わせのステアリング角を感知するように配置できる。スロットルセンサ及びブレーキセンサは、それぞれ車両のスロットル位置及びブレーキ位置を感知する。いくつかの場合、スロットルセンサ及びブレーキセンサは、集積型スロットル／ブレーキセンサに一体化されてもよい。
【００１９】
一実施形態において、車両制御システム１１１は、ステアリングユニット２０１と、スロットルユニット２０２（加速ユニットとも呼ばれる）と、ブレーキユニット２０３とを含むが、これらに制限されない。ステアリングユニット２０１は、車両の方向又は進行方向を調整することに用いられる。スロットルユニット２０２は、モーター又はエンジンの速度を制御して、続いて車両の速度及び加速度を制御することに用いられる。ブレーキユニット２０３は、摩擦を提供することによって車両の車輪又はタイヤをスローダウンして車両を減速させることに用いられる。注意すべきなのは、図２に示すような構成要素はハードウェア、ソフトウェア又はその組み合わせで実現されることができる。
【００２０】
図１を再び参照して、無線通信システム１１２は、自律走行車１０１と、例えば装置、センサ、その他の車両等の外部システムとの間に通信することを許可する。例えば、無線通信システム１１２は、１つ以上の装置に直接に又は通信ネットワークを介して無線通信し、例えばネットワーク１０２によってサーバ１０３〜１０４に通信することができる。無線通信システム１１２は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク（ＷＬＡＮ）（例えばＷｉＦｉ）を使用して他の構成要素やシステムに通信できる。無線通信システム１１２は、例えば赤外線リンク、ブルートゥース等を使用して装置（例えば、乗客の移動装置、表示装置、車両１０１内のスピーカー）に直接に通信できる。ユーザインターフェースシステム１１３は、車両１０１内で実行される周辺装置の一部であってもよく、例えばキーボード、タッチスクリーンディスプレイ装置、マイクロフォン、及びスピーカー等を含む。
【００２１】
自律走行車１０１の一部又は全ての機能は、特に自律運転モードで動作する場合、感知及び計画システム１１０により制御したり管理したりすることができる。感知及び計画システム１１０は、必要なハードウェア（例えば、プロセッサ、メモリ、メモリ）、及びソフトウェア（例えば、オペレーティングシステム、計画、及び経路プログラム）を含み、センサシステム１１５、車両制御システム１１１、無線通信システム１１２、及び／又はユーザインターフェースシステム１１３から情報を受信し、受信された情報を処理し、出発地から目的地までの経路やルートを計画し、そして計画及び制御情報に基づいて車両１０１を運転させる。あるいは、感知及び計画システム１１０と車両制御システム１１１とは一体化されてもよい。
【００２２】
例えば、乗客のユーザとして、例えばユーザインターフェースによって旅程の出発位置及び目的位置を指定することができる。感知及び計画システム１１０は旅関連データを取得する。例えば、感知及び計画システム１１０は、ＭＰＯＩサーバから位置及び経路情報を取得することができ、前記ＭＰＯＩサーバはサーバ１０３〜１０４の一部であってもよい。位置サーバは、位置サービスを提供し、かつＭＰＯＩサーバはマップサービス及びある位置のＰＯＩを提供する。あるいは、このような位置及びＭＰＯＩ情報は、感知及び計画システム１１０の永続的記憶装置（不揮発性メモリ）にローカルでキャッシュされることができる。
【００２３】
自律走行車１０１がルートに沿って移動する際に、感知及び計画システム１１０は、さらに交通情報システムやサーバ（ＴＩＳ）からリアルタイム交通情報を取得できる。注意すべきなのは、サーバ１０３〜１０４は、第三者エンティティにより動作できる。あるいは、サーバ１０３〜１０４の機能は、感知及び計画システム１１０と一体化されてもよい。リアルタイム交通情報、ＭＰＯＩ情報、位置情報、及びセンサシステム１１５が検出又は感知したリアルタイムなローカル環境データ（例えば、障害物、対象、付近車両）に基づいて、感知及び計画システム１１０は、安全で効果的に指定した目的地に到達するように、最適なルートを計画し、かつ計画したルートにより例えば車両制御システム１１１を介して車両１０１を運転することができる。
【００２４】
サーバ１０３は各種のクライアントに対してデータ分析サービスを実行するデータ分析システムであってもよい。一実施形態において、データ分析システム１０３はデータコレクタ１２１と機械学習エンジン１２２とを備える。データコレクタ１２１は、各種の車両（自律走行車であってもよく、人間運転者で運転された通常の車両であってもよい）から運転統計情報１２３を収集する。運転統計情報１２３には、異なる時点に車両のセンサにより収集され送信された運転命令（例えば、スロットル、ブレーキ、ステアリング命令）及び車両の応答（例えば、速度、加速度、減速度、方向）を指示する情報を含む。運転統計情報１２３は、異なる時点の運転環境を示す情報、例えば、経路（出発位置と目的地位置を含む）、ＭＰＯＩ、道路状況、天気条件等をさらに含んでもよい。
【００２５】
運転統計情報１２３に基づき、機械学習エンジン１２２は各種の目的のために１群のアルゴリズムや予測モデル１２４を実行したりトレーニングしたりする。一実施形態において、機械学習エンジン１２２は、1つ以上のコスト関数で形成された群やコスト予測モデル１２４を生成し、ターゲットの特定速度制御率のコストを決定したり予測したりする。コスト関数１２４は、1つ以上のコストカテゴリーの1つ以上の独立コストを計算するために1つ以上の独立したコスト関数を含んでもよい。コスト関数１２４は、特定の速度制御率をターゲットとする独立コストを計算するように設計される。
【００２６】
一実施形態において、コスト関数１２４はターゲット速度制御位置（例えば、スロットル位置）及び現在速度制御位置に基づき、第１コストを決定する第１コスト関数を含む。コスト関数１２４は、従来命令サイクルにおける従来ターゲット車両速度と従来車両速度に基づき第２コストを決定するための第２コスト関数をさらに含んでもよい。また、コスト関数１２４は、現在車両速度に基づき第３コストを決定する第３コスト関数をさらに含んでもよい。また、コスト関数１２４は、ターゲット速度制御率に基づき第４コストを決定する第４コスト関数をさらに含んでもよい。また、コスト関数１２４は、車両の現在ステアリング位置に基づき第５コストを決定する第５コスト関数をさらに含んでもよい。
【００２７】
一実施形態において、コスト関数１２４は、機械学習エンジン１２２が各種の車両から収集された運転統計情報１２３に基づいて決定され、作成される。機械学習エンジン１２２は、自律走行の運転統計情報を検査し、同一又は類似の運転環境において人間運転者が運転した車両の運転統計情報と比較する。自律走行と手動運転との差異によって、運転パラメータのコストを決定し、本例では、速度制御率であり、それにより人間運転者と同一又は類似の結果を実現する。一実施形態において、自律走行と手動運転との差異が小さい場合、コストが低くなる可能性があり、逆も同様である。コスト関数１２４が作成される場合、自律走行車にアップロードされ、計画のようにリアルタイムで動的に速度制御率を調整させ、車両に快適で順調・平穏に加速したり減速したりできる。
【００２８】
図３は、一実施形態に係る自律走行車１０１と共に使用される感知及び計画システム３００の例を示すブロック図である。システム３００は、図１の自律走行車１０１の一部（感知及び計画システム１１０、車両制御システム１１１及びセンサシステム１１５を含むが、これらに制限されない）となるように実現されることができる。図３を参照し、感知及び計画システム１１０は、位置決めモジュール３０１と、感知モジュール３０２と、決定モジュール３０３と、計画モジュール３０４と、制御モジュール３０５とを含むが、これらに制限されない。
【００２９】
モジュール３０１〜３０７における一部又は全部は、ソフトウェア、ハードウェア又はその組み合わせで実現されてもよい。例えば、これらのモジュールは、永続的記憶装置３５２に取り付けられ、メモリ３５１にロードされ、かつ１つ以上のプロセッサ（図示せず）により実行されてもよい。注意すべきなのは、これらのモジュールにおける一部又は全部は、図２の車両制御システム１１１の一部又は全部のモジュールに通信可能に接続されてもよく、一体化されてもよい。モジュール３０１〜３０７における一部は、一緒に集積モジュールとして一体化されてもよい。
【００３０】
位置決めモジュール３０１（地図及びルーティングモジュールとも言われる）は、ユーザの旅程又はルートに関連する任意のデータを管理する。ユーザは、例えばユーザインターフェースを介してログインするとともに旅程の出発位置及び目的位置を指定してもい。位置決めモジュール３０１は、旅程に関連するデータを取得するように、システム３００のその他の構成要素（例えば地図及びルート情報３１１）と通信する。例えば、位置決めモジュール３０１は、位置サーバと、地図及びＰＯＩ（ＭＰＯＩ）サーバから位置及びルート情報を取得することができる。位置サーバは、位置サービスを提供し、かつＭＰＯＩサーバは、地図及びルート情報３１１の一部としてキャッシュされてもよい地図サービスと特定な位置のＰＯＩとを提供する。システム３００を含む自律走行車がルートに沿って移動する場合、位置決めモジュール３０１は、さらに交通情報システムやサーバからリアルタイム交通情報を取得することができる。
【００３１】
センサシステム１１５により提供されたセンサデータ、及び位置決めモジュール３０１により得られた位置決め情報に基づいて、感知モジュール３０２は周辺環境に対する感知を決定する。感知情報は、普通の運転者が自分で運転している車両周辺から感知したもの（状況）を示すことができる。感知は、例えば対象形式で現される車線配置（例えば、ストレート又はカーブ）、トラフィック信号、他の車両の相対位置、歩行者、建築物、横断歩道又はその他の交通関連標識（例えば、停止標識、譲り標識）などを含んでもよい。
【００３２】
感知モジュール３０２は、コンピュータビジョンシステム又はコンピュータビジョンシステムの機能を含んでもよく、自律走行車環境における対象及び／又は特徴を認識するように、１つ以上のカメラによりキャプチャされた画像を処理及び分析することに用いられる。前記対象は交通信号、車道の境界線、他の車両、歩行者及び／又は障害物等を含んでもよい。コンピュータビジョンシステムは、対象認識アルゴリズム、ビデオトラッキング及びその他のコンピュータビジョン技術を使用することができる。いくつかの実施形態において、コンピュータビジョンシステムは、環境をマッピングし、対象を追跡し、かつ対象の速度を推定することなどができる。感知モジュール３０２は、その他のセンサ（例えばレーダーユニット２１４及び／又はＬＩＤＡＲユニット２１５）により提供されたその他のセンサデータに基づいて対象を検出することもできる。
【００３３】
それぞれの対象に対して、決定モジュール３０３は、如何に対象を処理する決定をする。例えば、特定な対象（例えば、交差ルートにおける他の車両）及び対象を記述するメタデータ（例えば、速度、方向、ステアリング角）に対して、決定モジュール３０３は、遇う対象に如何に対応する（例えば、追い越し、道譲り、停止、通過）ことを決定する。決定モジュール３０３は、永続的記憶装置３５２に記憶されてもよい１セットのルール（例えば運転／交通ルール３１２）に基づきこのような決定をすることができる。
【００３４】
感知したそれぞれ対象に対する決定に基づいて、計画モジュール３０４は、自律走行車のために経路又はルート及び運転パラメータ（例えば、距離、速度及び／又はステアリング角）を計画する。すなわち、所定対象に対して、決定モジュール３０３は前記対象に対して如何に対応するかを決定し、計画モジュール３０４は如何に実行するかを決定する。例えば、所定対象に対して、決定モジュール３０３は、前記対象を追い越すことを決定することができ、計画モジュール３０４は、前記対象の左側に追い越すか、右側に追い越すかを決定することができる。計画モジュール３０４は、計画及び制御データを生成し、システム３００を含む車両１０１が次の移動周期（例えば、次のルート／経路セグメント）に如何に移動するかを記述する情報を含む。例えば、計画及び制御データはシステム３００を含む車両１０１が毎時間３０マイル（ｍｐｈ）の速度で１０メートル移動し、次に２５ｍｐｈの速度で右車線まで変わることを指示することができる。
【００３５】
計画及び制御データに基づいて、制御モジュール３０５は計画及び制御データにより定義されたルート又は経路に基づいて、車両制御システム１１１へ適切な命令又は信号を送信することによって自律走行車を制御及び運転する。前記経路又はルートに沿って違う場所で適時に適切な車両設置又は駆動パラメータ（例えば、スロットル、ブレーキ及びステアリング命令）を使用して車両を第１点から第２点まで運転するように、計画及び制御データは十分な情報を含む。
【００３６】
注意すべきなのは、決定モジュール３０３及び計画モジュール３０４は、集積モジュールに一体化されてもよい。決定モジュール３０３／計画モジュール３０４は、自律走行車の運転経路を決定するために、ナビゲーションシステム又はナビゲーションシステムの機能を含んでもよい。例えば、ナビゲーションシステムは、自律走行車が以下の経路に沿って移動することを実現するための一連の速度及びディレクショナ進行方向を決定することができ、前記経路は、自律走行車を総体的に最終目的位置を向けて通じる車線経路に進ませると同時に、基本的に感知された障害物を避けることができる。目的地はユーザインターフェースシステム１１３により実現されたユーザ入力に基づいて設置できる。ナビゲーションシステムは、自律走行車が走行していると同時に走行経路を動的に更新することができる。ナビゲーションシステムは、自律走行車用の走行経路を決定するように、ＧＰＳシステム及び１つ以上の地図からのデータを合併することができる。
【００３７】
決定モジュール３０３／計画モジュール３０４は、自律走行車環境における潜在障害物を、認識・評価・回避又はその他の方式で迂回するために、衝突回避システム又は衝突回避システムの機能をさらに含んでもよい。例えば、衝突回避システムは、以下の方式によって自律走行車のナビゲーションにおける変更を実現することができ、車両制御システム１１１の中の１つ以上のサブシステムを動作してターン操縦、ステアリング操縦、ブレーキ操縦等を採る。衝突回避システムは、周辺の交通モード、道路状況等に基づいて障害物を回避可能な操縦を自動的に決定することができる。衝突回避システムは、その他のセンサシステムは、自律走行車がターンして入ろうとする隣接領域における車両、建築障害物等を検出する際にターン操縦を採らないように配置できる。衝突回避システムは、使用可能でありかつ自律走行車の乗員の安全性を最大化させる操縦を自動的に選択することができる。衝突回避システムは、自律走行車の乗員室内で最小の加速度を出現させることが予測された回避操縦を選択することができる。
【００３８】
一実施形態によれば、制御モジュール３０５は、車両速度を制御する速度制御モジュール３０６を備える。計画モジュール３０４で計画可能な車両速度変更要求に応答して、速度制御モジュール３０６は、1つ以上の速度制御率候補で形成された群を潜在的なターゲット速度制御率として決定する。車両又は車両タイプに対して速度制御率候補を予め決定し、永続的記憶装置３５２に記憶することができる。各速度制御率候補に対して、速度制御モジュール３０６は、潜在的なターゲット速度制御率とする速度制御率候補に基づき、速度制御命令を送信するコストを、1つ以上のコスト関数１２４で決定する。次に、速度制御モジュール３０６は、速度制御率候補のうち総コストが最も低い１つを後続命令サイクルのターゲット速度制御率として選択する。
【００３９】
速度制御率候補に関連するコストは、車両が該場合に計画どおり加速又は減速できる困難や危険度を示す。高コストは、検討された速度制御率候補に基づいて車両が加速又は減速を実現する困難度が比較的高い可能性があることを示す。或いは、コストは、車両が該場合に検討された速度制御率候補に基づいて加速又は減速する場合に乗客の快適さを示す。低いコストは、検討された速度制御率候補に基づいて車両が加速又は減速する場合、乗客がより快適になることを示す。
【００４０】
図４は本発明の一実施形態に係る制御モジュールを示すブロック図である。図４に示すように、制御モジュール３０５は、速度制御モジュール３０６と、現在位置に基づくコストモジュール４０１と、従来速度に基づくコストモジュール４０２と、現在速度に基づくコストモジュール４０３と、ターゲット率に基づくコストモジュール４０４と、ステアリング位置に基づくコストモジュール４０５とを備える。各コストモジュール４０１〜４０５は、コスト関数１２４のうちの対応する１つ（例えば現在位置に基づくコスト関数４１１、従来速度に基づくコスト関数４１２、現在速度に基づくコスト関数４１３、ターゲット率に基づくコスト関数４１４及びステアリング位置に基づくコスト関数４１５）を用いて、特定のコストカテゴリーの独立コストを計算する。コスト関数４１１〜４１５は、従来運転統計情報に基づいて機械学習エンジン（例えば図１の機械学習エンジン１２２）で作成できる。ここにおいて、５つの異なるコストカテゴリーを示す５つのコスト関数のみがあるが、より多く又はより少ないコスト関数を使用してもよい。
【００４１】
一実施形態において、速度制御率を決定する要求に応答して、1つ以上の速度制御率候補で形成された群を決定したり選択したりする。各速度制御率候補に対して、速度制御モジュール３０６は、コストモジュール４０１〜４０５のうちの１つ以上を呼び出して、1つ以上のコスト関数４１１〜４１５でそれぞれコストカテゴリーの1つ以上の独立コストを計算する。次に、コストモジュール４０１〜４０５で生成された独立コストに基づいて、少なくとも一部のコスト関数４１１〜４１５で速度制御率候補の総コストを計算する。速度制御率候補のうち総コストが最も低い１つを後続命令サイクルのターゲット速度制御率として選択する。速度制御位置とは、それぞれの最大スロットル値又は最大ブレーキ値を１００部（１００％）として示すスロットル又はブレーキ位置である。速度制御率とは、速度制御位置（例えば、スロットル又はブレーキ位置又は百分率）の変化量である。例えば、スロットル位置が３５％から５０％に変わる場合、スロットルレートは１５％の増分になる。
【００４２】
一実施形態において、現在位置に基づくコスト関数４１１は、現在位置に基づくコストモジュール４０１に使用され、潜在的なターゲット速度制御率を示す検討された速度制御率候補に対応して現在速度制御位置（例えば、スロットル又はブレーキ位置）及びターゲット速度制御位置に基づいてコストを計算する。一実施形態において、検討されたターゲット速度制御率に対応して、コスト関数４１１で現在速度制御位置とターゲット速度制御位置との差に基づいてコストを計算する。一実施形態において、ターゲット速度制御率が現在速度制御位置とターゲット速度制御位置との差以上である場合、コストをゼロとして指定する。一方、ターゲット速度制御率が現在速度制御位置とターゲット速度制御位置との差未満である場合、以下のように、コストを現在速度制御位置とターゲット速度制御位置との差からターゲット速度制御率（例えば、検討された速度制御率候補）を減算することとして指定する。
コスト＝差（ターゲット位置，現在位置）−ターゲット速度制御率
【００４３】
ここで図５を参照し、図５は１群の速度制御率候補５０１に対して異なるコスト関数でコストを計算するデータ構造を示し、速度制御率候補５０１に対してコスト５０２を計算する。該例では、現在速度制御位置と現在命令サイクルのターゲット速度制御位置との差が５０であることを仮定する。従って、潜在的なターゲット速度制御率とする速度制御率候補が３０であることに対して、上記した現在位置に基づくコスト関数４１１に基づいて、差５０が潜在的なターゲット速度制御率３０より大きいため、コストは２０（すなわち、差５０からターゲット速度制御率３０を減算する）になる。類似に、速度制御率候補が差５０以上であるため、速度制御率候補が６０及び８０であるコストは０になる。
【００４４】
一実施形態によれば、従来速度に基づくコスト関数４１２は、従来速度に基づくコストモジュール４０２に使用され、従来命令サイクルの従来ターゲット速度と従来命令サイクル終了時の従来実際速度との差（すなわち、「現在」速度と従来命令サイクルのターゲット速度との差）に基づいてコストを計算する。一実施形態において、従来命令サイクルとは、現在命令サイクルの直前の命令サイクルである。一実施形態において、設定された速度制御率候補に対して、従来速度に基づくコスト５０３を下記のように計算する。
コスト＝差（従来ターゲット速度，従来実際速度）＊１００／速度制御率候補
【００４５】
ここで、差（ｄｉｆｆ）とは、従来命令サイクルのターゲット車両速度と従来命令サイクルの終了時の実際車両速度との差である。
【００４６】
図５に示すように、該例では、従来ターゲット速度と従来実際速度との差が５であることを仮定する。速度制御率が３０であるため、コストは５＊１００／３０＝１６．６７になる。他の速度制御率候補６０及び８０のコストも上記アルゴリズムで計算でき、８．３及び６．２５になる。
【００４７】
一実施形態によれば、現在速度に基づくコスト５０４は、現在速度制御率候補に対して現在車両速度に基づいて、現在速度に基づくコストモジュール４０３（例えば、現在速度に基づくコスト関数４１３）で計算できる。一実施形態において、現在車両速度と検討された速度制御率候補との差に基づいてコスト５０４を決定できる。特定の実施形態では、速度制御率候補が現在速度以上である場合、コスト５０４は該差として指定され、さもないと、コストは所定値として指定され、本例では、図５に示すように、ゼロである。従って、車両速度が速度制御率候補より大きいため、速度制御率候補３０のコスト５０４はゼロになる。速度制御率候補６０及び８０のコスト５０４は、それぞれの差であり、すなわち１０及び３０になる。
【００４８】
一実施形態によれば、ターゲット率に基づくコストモジュール４０４は、例えばリニアコスト関数のターゲット率に基づくコスト関数４１４でターゲット率に基づくコスト５０５を計算できる。それをサポートする基本原理は、コストがターゲット速度制御率に比例し、従ってより速度制御率が高いほどコストが高いことである。簡単にするために、一実施形態において、設定された速度制御率候補のコストに対して、図５に示すように、ターゲット率に基づくコスト５０５は、速度制御率候補自体に等しく、３０、６０及び８０になる。
【００４９】
一実施形態によれば、現在ステアリング位置（単位が度である）及びターゲット速度制御率候補に基づいて、ステアリング位置に基づくコストモジュール４０５は、ステアリング位置に基づくコスト関数４１５でステアリング位置に基づくコスト５０６を計算できる。一実施形態において、現在ステアリング位置と検討された速度制御率候補との差に基づいてコスト５０６を決定できる。それをサポートする基本原理は、ステアリング位置が大きい場合、車両がステアリングしているため、加速又は減速のコストがより高くなることである。車両がより急激にステアリングする場合、より大きく加速又は減速する場合、より危険又は不快適になる。特定の実施形態では、速度制御率候補が現在ステアリング位置以上である場合、コスト５０６は該差として指定され、さもないと、コストは所定値として指定され、該例では、図５に示すように、ゼロになる。従って、現在ステアリング位置が４０であることを仮定すると、ステアリング位置が速度制御率候補より大きいため、速度制御率候補３０のコスト５０６はゼロになる。速度制御率候補６０及び８０のコスト５０６は、それぞれの差であり、すなわち２０及び４０になる。
【００５０】
各速度制御率候補５０１に対して全ての独立コスト５０２〜５０６を計算した後、各速度制御率候補５０１に対して総コスト５０７を計算し、例えば独立コスト５０２〜５０６を加算する。次に速度制御率候補５０１のうち総コストが最も低い（該例では、候補が１００である）１つを速度制御用の後続命令サイクルのターゲット速度制御率として選択する。
【００５１】
なお、図５に示す表は、スロットルレートの決定プロセスを示すことに用いられる。同一又は類似の技術でブレーキレートを決定してもよい。なお、上記技術は、各種の方式で達成できる。一実施形態において、速度制御率候補のコスト計算及び／又は選択は、図６に示す速度制御率モデル又は関数で実行できる。図６に示すように、例えばデータ分析システム１０３の機械学習エンジン１２２の機械学習エンジンで速度制御率決定モデル６００を作成してトレーニングすることができる。オフラインの大量運転統計情報１２３に基づいてモデル６００をトレーニングできる。
【００５２】
車両がリアルタイム又はオンライン状態で走行している場合、スロットル又はブレーキレート候補であってもよい１群の速度制御率候補６０２に対して、１群の運転統計情報６０１は収集されてモデル６００までに提供される。モデル６００は、少なくとも一部の上記操作を実行できて、速度制御率候補６０２のうちの１つを次の命令サイクルの速度制御命令を生成するためのターゲット速度制御率６０３を決定して選択する。命令サイクルとは、その間に生成して車両ハードウェアへ制御命令を送信する期間又は周波数である。例えば、０．１秒おきに１つの制御命令を送信する場合、０．１秒の期間を命令サイクルと呼ぶ。
【００５３】
図７は本発明の一実施形態に係る自律走行車を動作させる速度制御率の決定プロセスを示すフローチャートである。プロセス７００は、ソフトウェア、ハードウェア又はそれらの組合せを含む処理ロジックで実行されてもよい。例えば、プロセス７００は、制御モジュール３０５で実行されてもよい。図７に示すように、動作７０１では、処理ロジックは、ＡＤＶ（自律走行車）の速度制御（例えば、加速、減速又は定速度の維持）用の速度制御率候補の数を決定する。各速度制御率候補（例えば、スロットルレート又はブレーキレート）に対して、動作７０２では、処理ロジックは、ＡＤＶの運転への速度制御率候補の影響を示す1つ以上の独立コストを1つ以上のコスト関数で計算する。各コスト関数は１つのコストカテゴリー（例えば、現在位置に基づくカテゴリー、従来速度に基づくカテゴリー、現在速度に基づくカテゴリー、ターゲット率によるタイプ、及びステアリング位置に基づくカテゴリー）に対応する。動作７０３では、各速度制御率候補の独立コストに基づいて総コストを決定する。動作７０４では、速度制御率候補のうち総コストが最も低い１つをＡＤＶの速度制御用の後続命令サイクルのターゲット速度制御率として選択する。動作７０５では、ターゲット速度制御率に基づいて速度制御命令を生成してＡＤＶの速度を制御する。
【００５４】
図８は本発明の別の実施形態に係る自律走行車を動作させる速度制御率の決定プロセスを示すフローチャートである。プロセス８００は、ソフトウェア、ハードウェア又はそれらの組合せの処理ロジックで実行されてもよい。例えば、プロセス８００は、図７の動作７０２〜７０３の一部として、制御モジュール３０５で実行されてもよい。図８に示すように、動作８０１では、処理ロジックは、（現在命令サイクルの）ターゲット速度制御位置及び現在速度制御位置に基づき、第１コスト関数（例えば、現在位置に基づくコスト関数４１１）で第１コストを計算する。ターゲットと現在速度制御位置との差がターゲット速度制御率（例えば、検討された現在速度制御率候補）未満である場合、第１コストがゼロになり、さもないと、第１コストがターゲットと現在速度制御位置との差に等しい。
【００５５】
動作８０２では、処理ロジックは、従来命令サイクルの従来ターゲット速度及び従来命令サイクルの終了時の従来実際速度に基づき、第２コスト関数（例えば、従来速度に基づくコスト関数４１２）で第２コストを計算する。動作８０３では、処理ロジックはＡＤＶの現在車両速度に基づき、第３コスト関数（例えば、現在速度に基づくコスト関数４１３）で第３コストを計算する。動作８０４では、処理ロジックはターゲット速度制御率（例えば、検討された速度制御率候補）に基づき、第４コスト関数（例えば、ターゲット率に基づくコスト関数４１４）で第４コストを計算する。動作８０５では、処理ロジックはＡＤＶの現在ステアリング位置に基づき、第５コスト関数（例えば、ステアリング位置に基づくコスト関数４１５）で第５コストを計算する。動作８０６では、第１コスト、第２コスト、第３コスト、第４コスト、及び第５コストに基づいて総コストを計算する。
【００５６】
注意すべきなのは、前記の言及された一部又は全部の構成要素（部材）は、ソフトウェア、ハードウェア又はその組み合わせで実現できる。例えば、このような構成要素は、永続的記憶装置（不揮発性メモリ）にインストールされるとともに記憶されたソフトウェアとして実現されてもよく、前記ソフトウェアは、プロセッサ（図示せず）でメモリには、本出願にわたって記載の過程又は動作を実施するようにロードして実行されてもよい。あるいは、このような構成要素は、専用ハードウェア（例えば、集積回路（例えば専用集積回路（特定用途向け集積回路：ＡＳＩＣ)、デジタル信号プロセッサ（ＤＳＰ）、又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ））にプログラミングされ又は嵌め込みされた実行可能なコードとして実現されてもよく、前記実行可能なコードは、アプリケーションからの対応するドライバープログラム及び／又はオペレーティングシステムによってアクセスされてもよい。なお、このような構成要素は、プロセッサ又はプロセッサコアにおける特定のハードウェアロジックとして実現されてもよく、ソフトウェア構成要素が１つ以上の特定命令によってアクセスできる命令セットの一部とする。
【００５７】
図９は、本出願の一実施形態と組み合わせて使用されるデータ処理システムを例示的に示すブロック図である。例えば、システム１５００は、上記手順又は方法のいずれか（例えば、ルーティングモジュール３０６に実行された手順、及び図７に基づく検討の方法）を実行する上記任意のデータ処理システムを示してもよい。システム１５００は、多数の異なる構成要素を含んでもよい。これらの構成要素は、集積回路（ＩＣ）、集積回路の一部、分散型電子装置又は回路基板に適用された他のモジュール（例えばコンピュータシステムのマザーボード又はアドインカード）、又は他の方式でコンピュータシステムのシャシーに組み込まれた構成要素として実現されることができる。
【００５８】
さらに、システム１５００は、コンピュータシステムの多数の構成要素の高レベルビューを示すことを目的とする。しかしながら、いくつかの実現形態では、付加的構成要素が存在する場合があることを理解すべきである。また、他の実現形態において示される構成要素が異なる配置を有してもよい。システム１５００は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤー、パーソナルディジタルアシスタント（ＰＤＡ）、スマート腕時計、パーソナルコミュニケーター、ゲーム装置、ネットワークルータ又はハブ、無線アクセスポイント（ＡＰ）又はリピーター、セットトップボックス、又はそれらの組合せを示してもよい。また、単一の機器又はシステムのみを示したが、用語「機器」又は「システム」は、さらに、独立又は共同で１つ（又は複数）の命令セットを実行することにより本明細書に説明される任意の１種又は複数種の方法を実行する機器又はシステムの任意のセットを含むことを理解すべきである。
【００５９】
一実施形態において、システム１５００は、バス又は相互接続部材１５１０によって接続されたプロセッサ１５０１、メモリ１５０３及び装置１５０５〜１５０８を備える。プロセッサ１５０１は、単一のプロセッサコア又は複数のプロセッサコアを含む単一のプロセッサ又は複数のプロセッサであってもよい。プロセッサ１５０１は、マイクロプロセッサ、中央処理装置（ＣＰＵ）等のような1つ以上の汎用プロセッサであってもよい。より具体的には、プロセッサ１５０１は、複雑命令セット計算（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピュータ（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、又は他の命令セットを実現するプロセッサ、又は命令セットの組合せを実現するプロセッサであってもよい。プロセッサ１５０１は、さらに、専用集積回路（ＡＳＩＣ）、セルラ又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、グラフィックプロセッサ、通信プロセッサ、暗号プロセッサ、コプロセッサ、組み込みプロセッサのような1つ以上の専用プロセッサ、あるいは命令処理可能な任意の他のタイプのロジックであってもよい。
【００６０】
プロセッサ１５０１（超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよい）は、前記システムの各種構成要素と通信するための主処理ユニット及び中央ハブとして用いられてもよい。このようなプロセッサは、システムオンチップ（ＳｏＣ）として実現されることができる。プロセッサ１５０１は、命令を実行することにより本明細書に説明される動作及びステップを実行するための命令を実行するように構成される。また、システム１５００は、選択可能なグラフィックサブシステム１５０４と通信するグラフィックインターフェースをさらに含み、グラフィックサブシステム１５０４は、表示コントローラ、グラフィックプロセッサ及び／又は表示装置をさらに備えてもよい。
【００６１】
プロセッサ１５０１は、メモリ１５０３と通信してもよく、メモリ１５０３は、一実施形態において複数のメモリによって所定量のシステムメモリを提供する。メモリ１５０３は、ランダムアクセスメモリ（ＲＡＭ）、動的ＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、静的ＲＡＭ（ＳＲＡＭ）又は他のタイプのメモリのような1つ以上の揮発性記憶装置（又はメモリ）を備えてもよい。メモリ１５０３は、プロセッサ１５０１又は任意の他の装置により実行される命令列を含む情報を記憶できる。例えば、複数種のオペレーティングシステム、装置ドライバー、ファームウェア（例えば、基本入出力システム又はＢＩＯＳ）及び／又はアプリケーションの実行可能なコード及び／又はデータはメモリ１５０３にロードされ、プロセッサ１５０１により実行されてもよい。オペレーティングシステムは、ロボットオペレーティングシステム（ＲＯＳ）、Ｍｉｃｒｏｓｏｆｔ(R)会社からのＷｉｎｄｏｗｓ(R)オペレーティングシステム、アップル会社からのＭａｃ  ＯＳ(R)／ｉＯＳ(R)、Ｇｏｏｇｌｅ(R)会社からのＡｎｄｒｏｉｄ(R)、Ｌｉｎｕｘ、Ｕｎｉｘ又は他のリアルタイム又は組み込みオペレーティングシステムのような任意のタイプのオペレーティングシステムであってもよい。
【００６２】
システム１５００は、Ｉ／Ｏ装置、例えば装置１５０５〜１５０８をさらに備えてもよく、ネットワークインターフェース装置１５０５、選択可能な入力装置１５０６及び他の選択可能なＩ／Ｏ装置１５０７を備える。ネットワークインターフェース装置１５０５は、無線送受信機及び／又はネットワークインターフェースカード（ＮＩＣ）を備えてもよい。前記無線送受信機は、ＷｉＦｉ送受信機、赤外送受信機、ブルートゥース送受信機、ＷｉＭａｘ送受信機、無線セルラーホン送受信機、衛星送受信機（例えば、全地球測位システム（ＧＰＳ）送受信機）又は他の無線周波数（ＲＦ）送受信機又はそれらの組合せであってもよい。ＮＩＣはイーサネットカードであってもよい。
【００６３】
入力装置１５０６は、マウス、タッチパッド、タッチスクリーン（それは表示装置１５０４と一体化されてもよい）、ポインタデバイス（例えばスタイラス）及び／又はキーボード（例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード）を備えてもよい。例えば、入力装置１５０６は、タッチスクリーンに接続されるタッチスクリーンコントローラを含んでもよい。タッチスクリーン及びタッチスクリーンコントローラは、例えば複数種のタッチ感度技術（容量、抵抗、赤外及び表面音波の技術を含むが、それらに限定されない）のいずれか、及びタッチスクリーンの1つ以上の接触点を決定するための他の近接センサアレイ又は他の素子を用いてそのタッチ点及び移動又は断続を検出することができる。
【００６４】
Ｉ／Ｏ装置１５０７は音声装置を備えてもよい。音声装置は、スピーカ及び／又はマイクロホンを含んでもよく、それにより音声認識、音声コピー、デジタル記録及び／又は電話機能のような音声サポートの機能を促進する。他のＩ／Ｏ装置１５０７は、汎用シリアルバス（ＵＳＢ）ポート、パラレルポート、シリアルポート、印刷機、ネットワークインターフェース、バスブリッジ（例えば、ＰＣＩ−ＰＣＩブリッジ）、センサ（例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサ等のような動きセンサ）又はそれらの組合せをさらに備えてもよい。装置１５０７は、結像処理サブシステム（例えば、カメラ）をさらに備えてもよく、前記結像処理サブシステムは、カメラ機能（例えば、写真及びビデオ断片の記録）を促進するための電荷カップリング装置（ＣＣＤ）又は相補型金属酸化物半導体（ＣＭＯＳ）光学センサのような光学センサを備えてもよい。あるセンサは、センサハブ（図示せず）によって相互接続部材１５１０に接続されてもよく、キーボード又は熱センサのような他の装置は、組み込みコントローラ（図示せず）により制御されてもよく、これはシステム１５００の特定配置又は設計により決められる。
【００６５】
データ、アプリケーション、1つ以上のオペレーティングシステム等のような情報の永続的記憶を提供するために、大容量メモリ（図示せず）は、プロセッサ１５０１に接続されてもよい。様々な実施形態において、薄型化と軽量化のシステム設計を実現しかつシステムの応答能力を向上させるために、このような大容量メモリは、ソリッドステート装置（ＳＳＤ）によってされることが実現できる。なお、他の実施形態において、大容量メモリは、主にハードディスクドライブ（ＨＤＤ）で実現されてもよく、少量のＳＳＤ記憶量は、ＳＳＤキャッシュとして停電イベント期間にコンテキスト状態及び他のこのような情報の不揮発性記憶を実現し、それによりシステム動作が再開する時に通電を速く実現することができる。さらに、フラッシュデバイスは、例えばシリアルペリフェラルインターフェース（ＳＰＩ）によってプロセッサ１５０１に接続されてもよい。このようなフラッシュデバイスは、システムソフトウェアの不揮発性記憶に用いられてもよく、前記システムソフトウェアは、前記システムのＢＩＯＳ（基本入出力システム）及び他のファームウェアを備える。
【００６６】
記憶装置１５０８は、任意の１種又は複数種の本明細書に記載の方法又は機能を体現する1つ以上の命令セット又はソフトウェア（例えば、モジュール、ユニット及び／又はロジック１５２８）が記憶されるコンピュータアクセス可能な記憶媒体１５０９（機械可読記憶媒体又はコンピュータ可読媒体とも呼ばれる）を備えてもよい。処理モジュール／ユニット／ロジック１５２８は、例えば、制御モジュール３０５のような上記構成要素のいずれかを示してもよい。処理モジュール／ユニット／ロジック１５２８は、さらにデータ処理システム１５００により実行される期間にメモリ１５０３内及び／又はプロセッサ１５０１内に完全又は少なくとも部分的に存在してもよく、ここで、メモリ１５０３及びプロセッサ１５０１も、機器アクセス可能な記憶媒体を構成する。処理モジュール／ユニット／ロジック１５２８は、さらにネットワークによってネットワークインターフェース装置１５０５を経由して送受信されてもよい。
【００６７】
コンピュータ可読記憶媒体１５０９は、以上に説明されたいくつかのソフトウェア機能の一部又は全部を永続的に記憶してもよい。コンピュータ可読記憶媒体１５０９は、例示的な実施形態において単一の媒体として示されたが、用語「コンピュータ可読記憶媒体」は、前記1つ以上の命令セットが記憶される単一の媒体又は複数の媒体（例えば、集中型又は分散型データベース、及び／又は関連するキャッシュ及びサーバ）を備えることを理解すべきである。用語「コンピュータ可読記憶媒体」は、さらに命令セットを記憶又はコーディング可能な任意の媒体を備えることを理解すべきであり、前記命令セットは、機器により実行されかつ前記機器に本出願の任意の１種又は複数種の方法を実行させる。従って、用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ及び光学媒体と磁気媒体又は任意の他の非一時的機械可読媒体を備えるが、それらに限定されないことを理解すべきである。
【００６８】
本明細書に記載の処理モジュール／ユニット／ロジック１５２８、構成要素及び他の特徴は、ディスクリートハードウェアコンポーネントとして実現されてもよく、又はハードウェアコンポーネント（例えばＡＳＩＣｓ、ＦＰＧＡ、ＤＳＰ又は類似装置）の機能に統合されてもよい。さらに、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置内のファームウェア又は機能回路として実現されてもよい。また、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置及びソフトウェアコンポーネントの任意の組合せで実現されてもよい。
【００６９】
なお、システム１５００は、データ処理システムの各種の構成要素を有するように示されているが、構成要素に相互接続させる任意の具体的な構造又は方式を限定するものではないことに注意すべき、それは、このような詳細が本出願の実施形態に密接な関係がないためである。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ及び／又は他のデータ処理システムは、本出願の実施形態と共に使用されてもよい。
【００７０】
上記詳細な説明の一部は、コンピュータメモリにおけるデータビットに対する演算のアルゴリズム及び記号表現で示される。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。ここで、アルゴリズムは、通常、所望の結果につながる首尾一貫した操作列（ｓｅｑｕｅｎｃｅ  ｏｆ  ｏｐｅｒａｔｉｏｎｓ）と考えられる。これらの操作（動作）とは、物理量に対して物理的操作を行う必要となること（ステップ）を指す。
【００７１】
ただし、これらの全ての及び類似の用語は、いずれも適切な物理量に関連付けられ、かつただこれらの量に適用される適切なラベルであることに注意すべきである。特に断らない限り、本出願の全体にわたって用語（例えば、添付している特許請求の範囲に説明された用語）による説明とは、コンピュータシステム又は類似の電子計算装置の動作及び処理であり、前記コンピュータシステム又は電子計算装置は、コンピュータシステムのレジスタ及びメモリに物理（例えば、電子）量としてデータを示し、かつ前記データをコンピュータシステムメモリ又はレジスタ又は他のこのような情報メモリ、伝送又は表示装置内において類似に物理量として示される他のデータに変換する。
【００７２】
本出願の実施形態は、さらに本明細書における動作を実行するためのコンピュータプログラムに関する。このようなコンピュータプログラムは、非一時的コンピュータ可読媒体に記憶される。機器可読媒体は、機器（例えば、コンピュータ）可読な形態で情報を記憶する任意の機構を備える。例えば、機器可読（例えば、コンピュータ可読）媒体は、機器（例えば、コンピュータ）可読記憶媒体（例えば、読み出し専用メモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリメモリ）を備える。
【００７３】
上記図面に示される手順又は方法は、ハードウェア（例えば、回路、専用ロジック等）、ソフトウェア（例えば、非一時的コンピュータ可読媒体に具現化される）、又は両方の組合せを含む処理ロジックにより実行されてもよい。前記手順又は方法は、本明細書において特定の順序に応じて説明されるが、説明された動作の一部は、異なる順序に応じて実行されてもよい。また、いくつかの動作は、順番ではなく並行に実行されてもよい。
【００７４】
本出願の実施形態は、いずれかの特定のプログラミング言語を参照して説明されていないが、複数種のプログラミング言語で本明細書に記載の本出願の実施形態の教示を実現できることを理解すべきである。
【００７５】
以上の明細書では、本出願の具体的な例示的な実施形態を参照してその実施形態を説明した。明らかなように、添付している特許請求の範囲に記載の本出願のより広い趣旨及び範囲を逸脱しない限り、様々な変形が可能である。従って、限定的なものではなく例示的なものとして本明細書及び図面を理解すべきである。
【図１】
2018108800.tif 000003
【図２】
2018108800.tif 000004
【図３】
2018108800.tif 000005
【図４】
2018108800.tif 000006
【図５】
2018108800.tif 000007
【図６】
2018108800.tif 000008
【図７】
2018108800.tif 000009
【図８】
2018108800.tif 000010
【図９】
2018108800.tif 000011
【外国語明細書】
2018108800000001.pdf