(58)【調査した分野】(Int.Cl.,DB名)
現在の運転サイクルの現在の進行方向とその前の運転サイクルの予想進行方向との間の差異に基づいて進行方向誤差を判定するステップを更に含み、前記操舵角は、前記経路追跡制御システムにより更に前記進行方向誤差に基づいて生成されたものである、
請求項4に記載のコンピュータ実施方法。
前記現在の運転サイクルと前記その前の運転サイクルとの間の持続時間を考慮し、前記現在の進行方向と前記予想進行方向との間の差異に基づいて進行方向誤差変化率を判定するステップを更に含み、前記操舵角は、前記経路追跡制御システムにより更に前記進行方向誤差変化率に基づいて生成されたものである、
請求項5に記載のコンピュータ実施方法。
前記動作は、前記第2の横方向距離誤差及び前記第2の横方向距離誤差変化率に基づいて、前記経路追跡制御システムにより前記ステアリングコマンドを生成するための操舵角を生成するステップを更に含む、
請求項9に記載の非一時的な機械可読媒体。
前記動作は、現在の運転サイクルの現在の進行方向とその前の運転サイクルの予想進行方向との間の差異に基づいて進行方向誤差を判定するステップを更に含み、前記操舵角は、前記経路追跡制御システムにより更に前記進行方向誤差に基づいて生成されたものである、
請求項12に記載の非一時的な機械可読媒体。
前記動作は、前記現在の運転サイクルと前記その前の運転サイクルとの間の持続時間を考慮し、前記現在の進行方向と前記予想進行方向との間の差異に基づいて、進行方向誤差変化率を判定するステップを更に含み、前記操舵角は、前記経路追跡制御システムにより更に前記進行方向誤差変化率に基づいて生成されたものである、
請求項13に記載の非一時的な機械可読媒体。
前記動作は、前記第2の横方向距離誤差及び前記第2の横方向距離誤差変化率に基づいて、前記経路追跡制御システムにより前記ステアリングコマンドを生成するための操舵角を生成するステップを更に含む、
請求項15に記載のシステム。
【発明を実施するための形態】
【0017】
以下に説明される詳細を参照しながら本開示の様々な実施形態及び態様を説明し、添付図面に上記の様々な実施形態を示す。以下の説明及び図面は、本開示を説明するためのものであり、本開示を限定するものとして解釈すべきではない。本開示の様々な実施形態を全面的に理解するために、多くの特定の詳細を説明するが、いくつかの場合、本開示の実施形態に対する簡潔的な説明を提供するように、周知又は従来技術の詳細について説明していない。
【0018】
本明細書において、「一実施形態」又は「実施形態」とは、当該実施形態を参照しながら説明された特定の特徴、構造又は特性が本開示の少なくとも一実施形態に含まれてもよいと意味する。「一実施形態においては」という表現は、本明細書の全体において全てが同一の実施形態を指すとは限らない。
【0019】
LQR経路追跡モデルは、横方向距離誤差、横方向距離誤差変化率、進行方向誤差及び進行方向誤差変化率のような誤差変数を追跡するために用いられる。LQR経路追跡モデルは、フィードバック誤差を処理するために設計したものではないが、PIDコントローラモデルは、LQR制御モデルと集積されることによって、横方向のドリフト誤差のようなフィードバック誤差を処理することができる。一実施形態においては、システムは、ADVが従うべき基準経路を含む基準軌跡を受信する。システムは、経路追跡アルゴリズムを用いてADVを基準経路に沿って制御する。当該制御は、第1の横方向距離誤差を判定することと、比例−積分−微分(PID)制御システムを用いて第1の横方向距離誤差に基づいて横方向のドリフト誤差(例えば、ADVの車輪のミスアライメントなどによる片側への走行ずれ等)を補正する第2の横方向距離誤差を決定することと、経路追跡アルゴリズムを用いて第2の横方向距離誤差に基づいてステアリングコマンドを生成して、ADVによって取られる実際の経路と基準経路との間の横方向距離などの横方向距離誤差を最小化するようにADVを制御する。
【0020】
図1は、本開示の一実施形態に係る自動運転車両のネットワーク構成を示すブロック図である。
図1に示すように、構成100は、ネットワーク102を介して1つ又は複数のサーバ103〜104に通信可能に接続される自動運転車両101を備える。1つの自動運転車両のみが示されたが、複数の自動運転車両は、ネットワーク102を介して相互に接続され、及び/又はサーバ103〜104に接続されてもよい。ネットワーク102は、任意のタイプのネットワーク(有線又は無線のローカルエリアネットワーク(LAN)、例えば、インターネット、セルラーネットワーク、衛星ネットワークなどのワイドエリアネットワーク(WAN)又はそれらの組み合わせ)であってもよい。サーバ103〜104は、任意のタイプのサーバ又はサーバクラスタであってもよく、例えば、ネットワーク又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバー又はそれらの組み合わせが挙げられる。サーバ103〜104は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図及び関心地点(MPOI)サーバ又は位置サーバなどであってもよい。
【0021】
自動運転車両とは、運転手からの入力が非常に少ない又はない場合に車両をナビゲートして環境を通過させる自動運転モードに配置可能な車両である。このような自動運転車両は、車両の走行環境に関する情報を検出するように配置される一つ以上のセンサを備えるセンサシステムを含んでもよい。前記車両とその関連するコントローラは、検出された情報を使用して前記環境を通過するようにナビゲートを行う。自動運転車両101は、手動モード、完全自動運転モード又は部分自動運転モードで走行することができる。
【0022】
一実施形態において、自動運転車両101は、感知及び計画システム110と、車両制御システム111と、無線通信システム112と、ユーザインターフェースシステム113と、センサシステム115とを含むが、これらに限定されない。自動運転車両101は、更に普通の車両に含まれるいくつかの一般的な構成要素、例えば、エンジン、車輪、ステアリングホイール、変速機などを含むことができ、前記構成要素は、車両制御システム111及び/又は感知及び計画システム110により複数種の通信信号及び/又はコマンド(例えば、加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンドなど)を使用して制御可能である。
【0023】
構成要素110〜115は、インターコネクト、バス、ネットワーク又はそれらの組み合わせを介して互いに通信可能に接続されることができる。構成要素110〜115は、コントローラエリアネットワーク(CAN)バスを介して互いに通信可能に接続されることができる。CANバスは、ホストコンピュータなしのアプリケーションでマイクロコントローラ及びデバイスが互いに通信できるように設計された車両バス規格である。CANバスは、メッセージに基づくプロトコルであり、もともと自動車内の多重電気配線のために設計されたが、他の多くの環境にも用いられる。
【0024】
ここで
図2に示すように、一実施形態において、センサシステム115は、一つ又は複数のカメラ211と、全地球測位システム(GPS)ユニット212と、慣性計測ユニット(IMU)213と、レーダユニット214と、光検出及び測距(LIDAR)ユニット215とを含むが、これらに限定されない。GPSシステム212は、自動運転車両の位置に関する情報を提供するように動作可能な送受信機を含んでもよい。IMUユニット213は、慣性加速度に基づいて自動運転車両の位置及び配向の変化を感知することができる。レーダユニット214は、無線信号を使って自動運転車両のローカル環境におけるオブジェクトを感知するシステムを表すことができる。いくつかの実施形態において、オブジェクトを感知することに加えて、レーダユニット214は、更にオブジェクトの速度及び/又は進行方向を感知することができる。LIDARユニット215は、レーザを使って自動運転車両の所在環境におけるオブジェクトを感知することができる。その他のシステム構成要素に加えて、LIDARユニット215は、一つ又は複数のレーザ光源、レーザスキャナ及び一つ又は複数の検出器を更に含むことができる。カメラ211は、自動運転車両の周辺環境の画像を取り込むための一つ又は複数の装置を含むことができる。カメラ211は、スチルカメラ及び/又はビデオカメラであってもよい。カメラは、例えば、回転及び/又は傾斜のプラットフォームに取り付けることによって、機械的に移動されてもよい。
【0025】
センサシステム115は、更にその他のセンサ、例えば、ソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ、及びオーディオセンサ(例えば、マイクロホン)を含むことができる。オーディオセンサは、自動運転車両の周辺環境から音声を取得するように配置されてもよい。ステアリングセンサは、ステアリングホイール、車両の車輪又はそれらの組み合わせの操舵角を感知するように配置されてもよい。スロットルセンサ及びブレーキセンサは、それぞれ車両のスロットル位置及びブレーキ位置を感知する。いくつかの場合において、スロットルセンサ及びブレーキセンサは、集積型スロットル/ブレーキセンサとして集積されてもよい。
【0026】
一実施形態において、車両制御システム111は、ステアリングユニット201と、スロットルユニット202(加速ユニットともいう)と、ブレーキユニット203とを含むが、これらに限定されない。ステアリングユニット201は、車両の方向又は進行方向を調整するために使用される。スロットルユニット202は、モータ又はエンジンの速度を制御するために使用され、更にモータ又はエンジンの速度によって車両の速度及び加速度を制御する。ブレーキユニット203は、摩擦を提供することによって車両の車輪又はタイヤを減速させ、ひいては車両を減速させる。
図2に示す構成要素は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現できることに注意すべきである。
【0027】
図1を再び参照して、無線通信システム112は、自動運転車両101と、装置、センサ、他の車両などのような外部システムとの通信を可能にする。例えば、無線通信システム112は、直接又は通信ネットワークを介して一つ又は複数の装置と無線通信することができ、例えば、ネットワーク102を介してサーバ103〜104と通信することができる。無線通信システム112は、任意の移動体通信ネットワーク又は無線ローカルエリアネットワーク(WLAN)(例えばWiFi(登録商標))を使用して他の構成要素又はシステムと通信することができる。無線通信システム112は、例えば赤外線リンク、ブルートゥース(登録商標)などを使用して装置(例えば、乗客のモバイルデバイス、表示装置、車両101内のスピーカ)と直接通信することができる。ユーザインターフェースシステム113は、車両101内に実施された周辺装置の部分(例えば、
キーボード、タッチスクリーン表示装置、マイクロホン及びスピーカなどを含む)であってもよい。
【0028】
自動運転車両101の機能のうちの一部又は全部は、特に自動運転モードで動作する場合に、感知及び計画システム110により制御されるか、又は管理されることができる。感知及び計画システム110は、必要なハードウェア(例えば、プロセッサ、メモリ、記憶装置)及びソフトウェア(例えば、オペレーティングシステム、計画及びルーティングプログラム)を備え、センサシステム115、制御システム111、無線通信システム112、及び/又はユーザインターフェースシステム113から情報を受信し、受信した情報を処理し、出発地から目的地までのルート又は経路を計画し、その後、計画及び制御情報に基づいて車両101を走行させる。あるいは、感知及び計画システム110は、車両制御システム111と一体に集積されてもよい。
【0029】
例えば、乗客であるユーザは、例えば、ユーザインターフェースを介して旅程の出発地位置及び目的地を指定することができる。感知及び計画システム110は、旅程に関するデータを取得する。例えば、感知及び計画システム110は、MPOIサーバから位置及びルート情報を取得することができ、前記MPOIサーバは、サーバ103〜104の一部であってもよい。位置サーバは、位置サービスを提供し、MPOIサーバは、地図サービス及びいくつかの位置のPOIを提供する。あるいは、このような位置及びMPOI情報は、感知及び計画システム110の永続性記憶装置にローカルキャッシュされてもよい。
【0030】
自動運転車両101がルートに沿って移動する時、感知及び計画システム110は、交通情報システム又はサーバ(TIS)からリアルタイム交通情報を取得することができる。サーバ103〜104は、第三者機関により動作可能であることに注意すべきである。あるいは、サーバ103〜104の機能は、感知及び計画システム110と一体に集積されてもよい。リアルタイム交通情報、MPOI情報及び位置情報、並びにセンサシステム115によって検出されたか又は検知されたリアルタイムローカル環境データ(例えば、障害物、オブジェクト、周辺車両)に基づいて、感知及び計画システム110は、指定された目的地までに安全かつ効率的に到着するように、最適なルートを計画し、計画されたルートに従って、例えば、制御システム111によって、車両101を走行させることができる。
【0031】
サーバ103は、様々なクライアントに対して、データ解析サービスを実行するデータ解析システムであってもよい。一実施形態において、データ解析システム103は、データコレクタ121と機械学習エンジン122を含む。データコレクタ121は、様々な車両(自動運転車両又は人間の運転手によって運転される一般車両)から運転統計データ123を収集する。運転統計データ123には、発行された運転コマンド(例えば、スロットルコマンド、ブレーキコマンド、ステアリングコマンド)を示す情報及び異なる時点で車両のセンサにより取得された車両の応答(例えば、速度、加速度、減速度、方向)を示す情報が含まれる。運転統計データ123は、異なる時刻における運転環境を記述する情報を更に含むことができ、例えば、ルート(出発地及び目的地を含む)、MPOI、天気状況、並びに、高速道路での低速交通、交通渋滞、自動車事故、道路工事、臨時迂回路、未知の障害物などの道路状況が挙げられる。
【0032】
運転統計データ123に基づいて、機械学習エンジン122は、PIDコントローラ及びLQRコントローラをモデル化して、横方向距離誤差、横方向距離誤差変化率、進行方向誤差及び進行方向誤差変化率変数などのようなADVのための誤差変数を追跡することを含む様々な目的のために、ルール、アルゴリズム及び/又はモデル124の集合を生成又は訓練する。
ルール、アルゴリズム及び/又はモデル124は、ADVが従うべき交通ルール及び走行軌跡を計算するためのアルゴリズムを更に含んでもよい。次いで、
ルール、アルゴリズム及び/又はモデル124は、自律走行にリアルタイムで利用するためにADVにアップロードすることができる。
【0033】
図3A及び
図3Bは、一実施形態に係る自動運転車両と一緒に使用される感知及び計画システムの一例を示すブロック図である。システム300は、
図1の自動運転車両101の一部として実現されてもよく、感知及び計画システム110と、制御システム111と、センサシステム115とを含むが、これらに限定されない。
図3A〜
図3Bに示すように、感知及び計画システム110は、測位モジュール301と、感知モジュール302と、予測モジュール303と、決定モジュール304と、計画モジュール305と、制御モジュール306と、ルート選択モジュール307と、経路追跡モジュール308とを含むが、これらに限定されない。
【0034】
モジュール301〜308のうちの一部又は全部は、ソフトウェア、ハードウェア又はそれらの組み合わせで実現することができる。例えば、これらのモジュールは、永続性記憶装置352にインストールされ、メモリ351にロードされ、一つ又は複数のプロセッサ(図示せず)によって実行されてもよい。これらのモジュールのうちの一部又は全部は、
図2の車両制御システム111の一部又は全部のモジュールに通信可能に接続されるか、又はそれらと一体に集積されることができることに注意すべきである。モジュール301〜308のうちの一部は、集積モジュールとして一体に集積されてもよい。例えば、決定モジュール304と計画モジュール305は、集積モジュールであってもよい。経路追跡モジュール308は、制御モジュール306の一部として集積されてもよい。
【0035】
測位モジュール301は、(例えば、GPSユニット212により)自動運転車両300の現在の位置を確定し、ユーザの旅程又はルートに関する如何なるデータを管理する。測位モジュール301(地図及びルート選択モジュールともいう)は、ユーザの旅程又はルートに関連する如何なるデータを管理する。ユーザは、例えば、ユーザインターフェースを介してログインし、旅程の出発地位置及び目的地を指定することができる。測位モジュール301は、地図及びルート情報311のような自動運転車両300における他の構成要素と通信して、旅程関連データを取得する。例えば、測位モジュール301は、位置サーバ並びに地図及びPOI(MPOI)サーバから位置及びルート情報を取得することができる。位置サーバは、位置サービスを提供し、MPOIサーバは、地図サービス及びある位置のPOIを提供することにより、地図及びルート情報311の一部としてキャッシュされることができる。自動運転車両300がルートに沿って移動する時、測位モジュール301は、交通情報システム又はサーバからリアルタイム交通情報を取得することができる。
【0036】
感知モジュール302は、センサシステム115から提供されたセンサデータと、測位モジュール301から取得された測位情報に基づいて、周囲環境に対する感知を確定する。感知情報は、普通の運転手が運転している車両の周辺から感知するものを表すことができる。感知は、例えば、車線配置(例えば、直進車線又はカーブ車線)、信号機信号、他の車両の相対位置、歩行者、建築物、横断歩道又はオブジェクトの形式の他の交通関連標識(例えば、止まれ標識、ゆずれ標識)などを含むことができる。
【0037】
感知モジュール302は、一つ又は複数のカメラにより取り込まれた画像を処理して解析し、自動運転車両の環境におけるオブジェクト及び/又は特徴を認識するように、コンピュータビジョンシステム又はコンピュータビジョンシステムの機能を含むことができる。前記オブジェクトは、交通信号、道路の境界、他の車両、歩行者及び/又は障害物などを含むことができる。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオトラッキング及びその他のコンピュータビジョン技術を使うことができる。いくつかの実施形態においては、コンピュータビジョンシステムは、環境地図を描き、オブジェクトを追跡し、オブジェクトの速度などを推定することができる。感知モジュール302は、レーダ及び/又はLIDARのような他のセンサにより提供される他のセンサデータに基づいて、オブジェクトを検出することができる。
【0038】
オブジェクトのそれぞれについて、予測モジュール303は、オブジェクトが様々な状況においてどのように挙動するかを予測する。予測は、地図
及びルート情報311と
運転/交通ルール312の集合を考慮した上で、走行環境をある時刻で感知した感知データに基づいて実行される。例えば、オブジェクトが反対方向の車両であり、かつ現在の走行環境が交差点を含むなら、予測モジュール303は、車両が直進するか、又はカーブ走行するかを予測する。交差点に信号機がないと感知データにより示された場合に、予測モジュール303は、車両が交差点に進入する前に完全に停車する必要があると予測可能である。車両が現在左折専用車線又は右折専用車線にあると感知データにより示された場合に、予測モジュール303は、車両がそれぞれ左折又は右折する可能性が高いと予測可能である。
【0039】
それぞれのオブジェクトに対して、決定モジュール304は、オブジェクトをどのように処理するかの決定を下す。例えば、特定のオブジェクト(例えば、交差するルートにおける他の車両)及び当該オブジェクトを記述するメタデータ(例えば、速度、方向、操舵角)について、決定モジュール304は、前記オブジェクトと遭遇するときに如何に対応するか(例えば、追い越し、道譲り、停止、追い抜き)を決定する。決定モジュール304は、交通ルール又は運転ルール312のような、永続性記憶装置352に記憶可能なルールセットに基づいて、そのような決定を下すことができる。
【0040】
ルート選択モジュール307は、出発地から目的地までの一つ又は複数のルート又は経路を提供するように配置される。例えば、ユーザから受信した出発地から目的地までの所定の旅程について、ルート選択モジュール307はルート及び地図情報311を取得し、出発地から目的地までの全ての走行可能なルート又は経路を決定する。ルート選択モジュール307は、決定された出発地から目的地までの各ルートに対して、地形図の形式で基準線を生成することができる。基準線とは、例えば、その他の車両、障害物又は交通状況などからの如何なる干渉を受けていない理想的なルート又は経路を指す。すなわち、道路にはその他の車両、歩行者又は障害物がない場合に、ADVは、基準線に完全的に又は密接的に従うべきである。そして、地形図は、決定モジュール304及び/又は計画モジュール305に提供される。決定モジュール304及び/又は計画モジュール305は、その他のモジュールによって提供されたその他のデータ(例えば、測位モジュール301からの交通状況、感知モジュール302によって感知された走行環境及び予測モジュール303によって予測された交通状況など)を考慮して、全ての走行可能なルートを検査して最適なルートのうちの一つを選択及び補正する。ADVを制御するための実際の経路又はルートは、その時刻における特定の走行環境に応じて、ルート選択モジュール307によって提供された基準線に近いか又は異なっていてもよい。
【0041】
感知されたオブジェクトのそれぞれに対する決定に基づいて、計画モジュール305は、ルート選択モジュール307によって提供された基準線をベースに、自動運転車両のために経路又はルート並びに運転パラメータ(例えば、距離、速度及び/又は操舵角)を計画する。言い換えれば、特定のオブジェクトに対して、決定モジュール304は、当該オブジェクトに対して何をするかを決定し、計画モジュール305は、どのようにするかを決定する。例えば、特定のオブジェクトに対して、決定モジュール304は、前記オブジェクトを追い抜くかを決定することができ、計画モジュール305は、前記オブジェクトを左側から追い抜くか又は右側から追い抜くかを決定することができる。車両300が次の移動サイクル(例えば、次のルート/経路セグメント)でどのように移動するかに関する情報を含む計画及び制御データは、計画モジュール305によって生成される。例えば、計画及び制御データは、車両300が時速30マイル(mph)で10メートル移動してから、25mphの速度で右側車線へ変更するように指示することができる。
【0042】
制御モジュール306は、計画及び制御データに基づいて、計画及び制御データによって限定されたルート又は経路に従って、適切なコマンド又は信号を車両制御システム111に送信することによって、自動運転車両を制御及び運転する。前記計画及び制御データは、経路又はルートに沿って異なる時刻において適切な車両設置又は運転パラメータ(例えば、スロットル、ブレーキ及びステアリングコマンド)を使用し、車両をルート又は経路の第1の点から第2の点まで運転するのに、十分な情報を含む。
【0043】
計画段階は、多数の計画サイクル(コマンドサイクルともいう)で実行されることができ、例えば、時間間隔100ミリ秒(ms)で実行される。計画サイクル又はコマンドサイクルのそれぞれに対して、計画及び制御データに基づいて一つ又は複数の制御コマンドを発する。即ち、計画モジュール305は、100msごとに次のルートセグメント又は経路セグメント(例えば、目標位置と、ADVが目標位置に到着するのに必要な時間とが含まれる)を計画する。あるいは、計画モジュール305は、特定の速度、方向及び/又は操舵角などを更に指定することができる。例えば、計画モジュール305は、次の予定時間間隔(例えば、5秒)のルートセグメント又は経路セグメントを計画することができる。各計画サイクルに対して、計画モジュール305は、前のサイクルで計画された目標位置に基づいて、現在のサイクル(例えば、次の5秒)に使用される目標位置を計画する。そして、制御モジュール306は、現在のサイクルの計画及び制御データに基づいて、一つ又は複数の制御コマンド(例えば、スロットル、ブレーキ、ステアリングの制御コマンド)を生成する。
【0044】
決定モジュール304及び計画モジュール305は、集積モジュールとして集積されることができることに注意すべきである。決定モジュール304/計画モジュール305は、自動運転車両の走行経路を決定するために、ナビゲーションシステム又はナビゲーションシステムの機能を含むことができる。例えば、ナビゲーションシステムは、自動運転車両が下記の経路に沿って移動することを実現するための一連の速度及び進行方向を決定することができる。前記経路では、自動運転車両が最終的な目的地に通じる車線に基づく経路に沿って進行すると共に、感知された障害物を実質的に回避できる。目的地は、ユーザインターフェースシステム113により行われたユーザ入力に従って設定されることができる。ナビゲーションシステムは、自動運転車両が走行していると同時に走行経路を動的に更新することができる。ナビゲーションシステムは、自動運転車両のための走行経路を決定するために、GPSシステム及び一つ以上の地図からのデータを取り入れることができる。
【0045】
決定モジュール304/計画モジュール305は、自動運転車両の環境における潜在的な障害物を認識、評価、回避、又は、他の方法で追い抜くための衝突防止システム又は衝突防止システムの機能を更に含むことができる。例えば、衝突防止システムは、車両制御システム111における1つ又は複数のサブシステムを動作させることでステアリング動作、カーブ走行動作、ブレーキ動作などを行うことによって、自動運転車両のナビゲーション中の変更を実現することができる。衝突防止システムは、周辺の交通モード、道路状況などに応じて実現可能な障害物回避動作を自動的に決定することができる。衝突防止システムは、自動運転車両が方向変更して進入しようとする隣接領域における車両、建築障害物などが他のセンサシステムにより検出された時にステアリング動作を行わないように配置されることができる。衝突防止システムは、実行可能で、且つ自動運転車両の乗員の安全性を最大化させる動作を自動的に選択することができる。衝突防止システムは、自動運転車両の客室内に最小値の加速度を発生させると予測される回避動作を選択することができる。
【0046】
一実施形態においては、経路追跡モジュール308は、ADV101の横方向距離誤差、横方向距離誤差変化率、進行方向誤差及び進行方向誤差変化率などの誤差変数を追跡することができる。誤差変数は、ADV101が用いる実際の経路と基準経路を比較することで追跡することができる。経路追跡モジュール308は、制御モジュール306の一部として実現してもよい。一実施形態においては、経路追跡モジュール308は、ADVが従うべき基準経路を含む基準軌跡を受信することができる。経路追跡モジュール308は、経路追跡アルゴリズムを用いてADVを基準経路に沿って制御する。当該制御は、第1の横方向距離誤差を判定するステップと、比例−積分−微分(PID)制御システムにより第1の横方向距離誤差に基づいて横方向ドリフトを補償するための経路追跡アルゴリズムに用いられる第2の横方向距離誤差を判定するステップと、経路追跡アルゴリズムを用いて第2の横方向距離誤差に基づいてステアリングコマンドを生成して、ADVが用いる実際の経路と基準経路との間の横方向距離などの横方向距離誤差を最小化するようにADVを制御するステップとを含む。
【0047】
図4は、一実施形態に係る経路追跡モジュールの一例を示すブロック図である。
図4に示すように、経路追跡モジュール308は、基準経路401と、実際の経路403と、横方向距離誤差判定装置405と、横方向距離誤差変化率判定装置407と、進行方向誤差判定装置409と、進行方向誤差変化率判定装置411とを含んでもよい。基準経路401は、ADVの計画モジュールにより提供される軌跡の経路又は経路セグメントであってもよい。実際の経路403は、ADVが用いる実際の経路であってもよい。横方向距離誤差判定装置405は、現在の経路(例えば、実際の経路403)におけるADVの現在の位置と基準経路401との間の横方向距離誤差又は横方向距離を判定することができる。横方向距離誤差変化率判定装置407は、その前の運転サイクル及び現在の運転サイクルの横方向距離誤差に基づいて横方向距離誤差変化率を判定することができる。進行方向誤差判定装置409は、ADVの現在の進行方向及び基準経路401の予期進行方向に基づいて進行方向誤差を判定することができる。進行方向誤差変化率判定装置411は、その前の運転サイクル及び現在の運転サイクル(例えば、2つの連続する運転サイクル)で判定された進行方向誤差に基づいて進行方向誤差変化率を判定することができる。モジュール405、407、409及び411は、所望により特定の構成に応じてより少ないモジュール又は単一のモジュールに集積することができることに注意すべきである。
【0048】
図5は、一実施形態に係るLQR経路追跡システムの例示的構成を示すブロック図である。LQRは、線形二次制御システムの具体的な形態である。線形二次制御システムは、二次費用関数を最小化するために、特定のシステム(例えば、車両及び基準経路)をモデル化することで、ある最適な基準を実現可能な線形制御システムである。LQRは、システムを調整したり、システムを安定な状態に保たせたりすることもできる。例えば、LQRシステムは、安定な状態で最適な基準を実現した車両及び基準経路に対してモデル化することができる。
【0049】
図5に示すように、一実施形態においては、LQR経路追跡システム500は、LQR制御システム513(LQR制御モデル313の一部として)を含む。LQR制御システム513は、線形状態−空間制御システムを含むことができ、ADV101の横方向ダイナミクスを次のようにモデル化する:
【数1】
式中、x=(e e
・ θ θ
・)
T、δ=Kxは、現在の操舵角の入力であり、eは、横方向距離誤差判定装置405により判定された横方向距離誤差501(例えば、ADVの重心から基準経路までの横方向距離)であり、e
・は、横方向距離誤差変化率判定装置407により判定された横方向距離誤差変化率502であり、θは、進行方向誤差判定装置409により判定された基準経路に対するADVの進行方向誤差503であり、θ
・は、進行方向誤差変化率判定装置411により判定された進行方向誤差変化率504であり、x
・は、xの変化率であり、r
・desは、ADVのS経路(例えば、r(s))に対する所望のヨーレートであり、A、B
1、B
2は、所定の定数である。一実施形態においては、A、B
1、B
2は、次の通りであってもよい。
【数2】
式中、mは、ADVの質量であり、vは、ADVの基準経路に沿った縦方向の速度であり、I=ml
fl
rは、ADVの慣性モーメントであり、l
r及びl
fは、それぞれ中心線に沿って後輪の後軸及び前輪の前軸からADVの重力の中心までの距離であり、c
r及びc
fは、それぞれ後輪及び前輪のコーナーリングスティフネスパラメータである。一実施形態においては、コーナーリングスティフネスパラメータは、ADVの後輪及び前輪のデータ表に基づいて評価及び/又は決定できる。
【0050】
一実施形態においては、横方向距離誤差変化率502は、
横方向距離誤差変化率判定装置407により横方向距離誤差501に基づいて判定される。一実施形態においては、進行方向誤差変化率504は、
進行方向誤差変化率判定装置411により進行方向誤差503に基づいて判定される。一実施形態においては、変化率判定装置407、411は、現在の制御及び/又は計画サイクル(例えば、運転サイクル)及びその前の運転サイクル(又は、2つの連続する運転サイクル)などの2つの連続する離散運転サイクルに基づいて変化率を判定する。一実施形態においては、その前の運転サイクルの横方向距離誤差及び/又は進行方向誤差は、変化率判定装置407、411によりバッファリングすることによって、それぞれ横方向距離誤差変化率及び進行方向誤差変化率を計算する。一実施形態においては、運転サイクルは、0.1秒の時間間隔であってもよく、当該時間間隔においては、計画及び制御モジュールは、ADVを制御するための計算サイクルを完了する。
【0051】
一実施形態においては、最小化される離散化LQR制御目的二次費用関数は
【数3】
であってもよい。
式中、δ=Kx=k
1e+k
2e
・+k
3θ+k
4θ
・であり、Kマトリックスは、最小化される目的二次費用関数の線形システムモデルであり、Q及びRは、LQR制御システムの調整パラメータである。一実施形態においては、Q及びRは、次の通りであってもよい。
【数4】
式中、q1、q2、q3、q4それぞれは、e、e
・、θ及びθ
・の追跡ペナルティ係数である。
【0052】
K又は線形制御システムモデルが決定されると、LQR制御システムは、ADVの横方向距離誤差、横方向距離誤差変化率、進行方向誤差又は進行方向誤差変化率を最小化するように、操舵角(及びステアリングコマンド)を生成することができる。しかし、LQR制御システムは、横方向ドリフトなどのフィードバック誤差を処理しない。
【0053】
図6は、一実施形態に係る埋め込みPID制御システムを有するLQR経路追跡システムの例示的構成を示すブロック図である。
図7は、一実施形態に係るPIDコントローラの一例を示している。
図6に示すように、LQR経路追跡システム600は、LQR経路追跡システム500に類似してもよく、その相違点は、横方向ドリフトを補償するために、PID制御システム514(PID制御モデル314の一部として)がフィードバック制御としてLQR制御システム513の横方向距離誤差501の入力ポートに接続されている。
【0054】
PID制御システムは、所望の設定ポイント(SP)と計測されたプロセス変数(PV)との間の差分値として誤差値を連続的に計算し、誤差の比例、積分及び微分の係数に基づいて補正を適用する制御回路フィードバックメカニズムである。
図7に示すように、一実施形態においては、PID制御システム514は、フィードバック回路に用いられるPIDコントローラ701、プロセス干渉703及びセンサシステム115を備える。PIDコントローラ701は、計算された誤差値に用いられる比例項、積分項及び微分項を含む。一実施形態においては、P、I及びDの係数それぞれは、1、0.5及び0.1であってもよい。
【0055】
一実施形態においては、PIDコントローラ701は、ゼロ横方向ドリフトの所望のSP値(例えば、ゼロ横方向距離誤差)を受信することができる。誤差値は、ゼロSP及びPV601のフィードバックに基づいて計算され、なお、PV601は、センサシステム115により検知された実際の横方向距離誤差(例えば、第1の横方向距離誤差)である。そして、計算された誤差値の比例、積分及び微分の係数に基づいて、出力501を補正値(例えば、第2の横方向距離誤差)として計算する。横方向距離誤差を調整するために、出力501又は横方向距離誤差値がLQR制御システム513にフィードバックされる。例えば、出力501は、LQR制御システム513に横方向距離誤差を補正させることができる比較的大きな値に積分することができる。一実施形態においては、PID制御システム514は、PIDコントローラにより出力された横方向距離誤差をリアルタイムで連続的に更新する。
【0056】
図8は、一実施形態に係るADVにより実行される方法を示すフローチャートである。プロセス800は、ソフトウェア、ハードウェア又はそれらの組み合わせを含む処理ロジックにより実行することができる。例えば、プロセス800は、
図3Aに示す経路追跡モジュール308により実行することができる。
図8に示すように、ブロック801においては、処理ロジックは、ADVが従うべき基準経路を含む基準軌跡を受信する。ブロック802においては、処理ロジックは、経路追跡
アルゴリズムを用いて基準経路に沿ってADVを制御し、前記制御は、ブロック803において第1の横方向距離誤差を判定するステップと、ブロック804において比例−積分−微分(PID)制御システムにより第1の横方向距離誤差に基づいて横方向ドリフト誤差を補正するための第2の横方向距離誤差を判定するステップと、ブロック805において経路追跡制御システムを用いて第2の横方向距離誤差に基づいてステアリングコマンドを生成して、ADVが用いる実際の経路と基準経路との間の横方向距離を最小化するようにADVを制御するステップとを含む。
【0057】
一実施形態においては、経路追跡制御システムは、線形二次レギュレータ(LQR)制御システムである。また、一実施形態においては、処理ロジックは、現在の運転サイクル及びその前の運転サイクルで判定された第2の横方向距離誤差に基づいて横方向距離誤差変化率を判定する。処理ロジックは、経路追跡制御システムを用いて第2の横方向距離誤差及び第2の横方向距離誤差変化率に基づいてステアリングコマンドを生成して、ADVが用いる実際の経路と基準経路との間の横方向距離を最小化するようにADVを制御する。
【0058】
もう一つの実施形態においては、現在の運転サイクル及びその前の運転サイクルに対して判定された第2の横方向距離誤差に基づいて第2の横方向距離誤差変化率を判定することは、その前の運転サイクルに対して前に判定された第2の横方向距離誤差をバッファリングすることと、前に判定された第2の横方向距離誤差及び現在判定された第2の横方向距離誤差の変化に基づいて第2の横方向距離誤差変化率を判定することとを更に含む。もう一つの実施形態においては、処理ロジックは、第2の横方向距離誤差及び第2の横方向距離誤差変化率に基づいてステアリングコマンドを生成するための操舵角を生成する。
【0059】
もう一つの実施形態においては、処理ロジックは、現在の運転サイクルの現在の進行方向及びその前の運転サイクルの予想進行方向との間の差異に基づいて進行方向の誤差を判定し、なお、操舵角は、経路追跡制御システムを用いて更に進行方向の誤差に基づいて生成されたものである。もう一つの実施形態においては、処理ロジックは、現在の運転サイクルとその前の運転サイクルとの間の持続時間を考慮し、現在の進行方向と予想進行方向との間の差異に基づいて進行方向誤差変化率を判定し、なお、操舵角は、経路追跡制御システムにより進行方向誤差変化率に基づいて生成されたものである。
【0060】
一実施形態においては、PID制御システムは、所望の横方向距離誤差を判定するステップと、所望の横方向距離誤差及び第1の横方向距離誤差に基づいて差分値を計算するステップと、差分値の比例項、積分項又は微分項に基づいて第2の横方向距離誤差を計算するステップと、PID制御システムの横方向ドリフトを考慮して第2の横方向距離誤差をフィードバックして、差分値の計算をリアルタイムで継続的に更新するステップとによって第2の横方向距離誤差を判定する。一実施形態においては、PID制御システムの比例、積分及び微分の係数それぞれは、約1、0.5及び0.1である。
【0061】
なお、以上に例示及び説明された構成要素の一部又は全ては、ソフトウェア、ハードウェア、又はこれらの組み合わせで実現されることができる。例えば、このような構成要素は、永続性記憶装置にインストールされるとともに記憶されたソフトウェアとして実現されてもよく、前記ソフトウェアは、本願にわたって記載されたプロセス又は動作を実施するように、プロセッサ(図示せず)でメモリにロードして実行されてもよい。あるいは、このような構成要素は、集積回路(例えば、特定用途向け集積回路又はASIC)、デジタルシグナルプロセッサ(DSP)、又はフィールドプログラマブルゲートアレイ(FPGA)のような専用ハードウェアにプログラミングされたか又は埋め込まれた実行可能なコードとして実現されてもよく、前記実行可能なコードはアプリケーションからの対応するドライバー及び/又はオペレーティングシステムを介してアクセスすることができる。更に、このような構成要素は、ソフトウェア構成要素が一つ以上の特定の命令によってアクセス可能な命令セットの一部として、プロセッサ又はプロセッサコアにおける特定のハードウェアロジックとして実現されることができる。
【0062】
図9は、本開示の一実施形態と組み合わせて使用可能なデータ処理システムを例示的に示すブロック図である。例えば、システム1500は、前記プロセス又は方法のいずれかを実行する前記データ処理システムのいずれか(例えば、
図1の制御システム111、又はサーバ103〜104のいずれか)を表すことができる。システム1500は、いくつかの異なる構成要素を含むことができる。これらの構成要素は、集積回路(IC)、集積回路の一部、ディスクリート型電子デバイス、又は回路基板に適するその他のモジュール(例えば、コンピュータシステムのマザーボード又はアドインカード)として実現されることができ、又は、他の形態でコンピュータシステムのシャーシ内に組み込まれた構成要素として実現されることができる。
【0063】
なお、システム1500は、コンピュータシステムのいくつかの構成要素の高レベルビューを示すことを意図している。しかしながら、理解すべきことは、特定の実施形態において付加的構成要素が存在してもよく、また、その他の実施形態において示された構成要素を異なる配置にすることが可能である。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤ、パーソナルデジタルアシスタント(PDA)、スマートウォッチ、パーソナルコミュニケーター、ゲーム装置、ネットワークルーター又はハブ、無線アクセスポイント(AP)又はリピーター、セット・トップボックス、又はそれらの組み合わせを表すことができる。また、単一の機械又はシステムのみが示されたが、「機械」又は「システム」という用語は、本明細書で説明されるいずれか一種以上の方法を実行するための、単独で又は共同で一つ(又は複数)の命令セットを実行する機械又はシステムの任意の組み合わせも含まれると解釈されるものとする。
【0064】
一実施形態では、システム1500は、バス又はインターコネクト1510を介して接続される、プロセッサ1501と、メモリ1503と、装置1505〜1508とを含む。プロセッサ1501は、単一のプロセッサコア又は複数のプロセッサコアが含まれる単一のプロセッサ又は複数のプロセッサを表すことができる。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)などのような、一つ以上の汎用プロセッサを表すことができる。より具体的には、プロセッサ1501は、複雑命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又はその他の命令セットを実行するプロセッサ、又は命令セットの組み合わせを実行するプロセッサであってもよい。プロセッサ1501は、更に一つ以上の専用プロセッサであってもよく、例えば、特定用途向け集積回路(ASIC)、セルラー又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、グラフィックプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組込みプロセッサ、又は命令を処理可能な任意の他のタイプのロジックが挙げられる。
【0065】
プロセッサ1501は、超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよく、前記システムの様々な構成要素と通信するための主処理ユニット及び中央ハブとして機能することができる。このようなプロセッサは、システムオンチップ(SoC)として実現されることができる。プロセッサ1501は、本明細書で説明される動作及びステップを実行するための命令を実行するように構成される。システム1500は、更に所望によるグラフィックサブシステム1504と通信するグラフィックインターフェースを含むことができ、グラフィックサブシステム1504は、表示コントローラ、グラフィックプロセッサ、及び/又は表示装置を含むことができる。
【0066】
プロセッサ1501は、メモリ1503と通信することができ、メモリ1503は、一実施形態では、所定量のシステムメモリを提供するための複数のメモリ装置によって実現されることができる。メモリ1503は、一つ以上の揮発性記憶(又はメモリ)装置を含むことができ、例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、又はその他のタイプの記憶装置が挙げられる。メモリ1503は、プロセッサ1501又はその他の任意の装置により実行される命令シーケンスを含む情報を記憶することができる。例えば、様々なオペレーティングシステム、デバイスドライバ、ファームウェア(例えば、ベーシックインプット/アウトプットシステム又はBIOS)、及び/又はアプリケーションの実行可能なコード及び/又はデータは、メモリ1503にロードされ、プロセッサ1501により実行されることができる。オペレーティングシステムは、任意のタイプのオペレーティングシステムであってもよく、例えば、ロボットオペレーティングシステム(ROS)、Microsoft(登録商標)社のWindows(登録商標)オペレーティングシステム、アップル社のMacOS(登録商標)/iOS(登録商標)、Google(登録商標)社のAndroid(登録商標)、LINUX(登録商標)、UNIX(登録商標)、又はその他のリアルタイム若しくは組込みオペレーティングシステムが挙げられる。
【0067】
システム1500は、例えば、ネットワークインターフェース装置1505、所望による入力装置1506、及びその他の所望によるI/O装置1507を含む装置1505〜1508のようなI/O装置を更に含むことができる。ネットワークインターフェース装置1505は、無線送受信機及び/又はネットワークインターフェースカード(NIC)を含むことができる。前記無線送受信機は、WiFi送受信機、赤外線送受信機、ブルートゥース送受信機、WiMax送受信機、無線携帯電話送受信機、衛星送受信機(例えば、全地球測位システム(GPS)送受信機)、又はその他の無線周波数(RF)送受信機、又はそれらの組み合わせであってもよい。NICは、イーサネット(登録商標)カードであってもよい。
【0068】
入力装置1506は、マウス、タッチパネル、タッチスクリーン(表示装置1504と集積されてもよい)、ポインター装置(例えば、スタイラス)、及び/又はキーボード(例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード)を含むことができる。例えば、入力装置1506は、タッチスクリーンと接続するタッチスクリーンコントローラを含むことができる。タッチスクリーン及びタッチスクリーンコントローラは、例えば、様々なタッチ感応技術(コンデンサ、抵抗、赤外線、及び表面弾性波の技術を含むが、それらに限定されない)のいずれか、並びにタッチスクリーンと接触する一つ以上の接点を確定するためのその他の近接センサアレイ又はその他の素子を用いて、それらの接触及び移動又は間欠を検出することができる。
【0069】
I/O装置1507は、音声装置を含むことができる。音声装置は、スピーカ及び/又はマイクロホンを含んで、音声認識、音声複製、デジタル記録、及び/又は電話機能のような音声サポートの機能を促進することができる。その他のI/O装置1507は、更に、ユニバーサルシリアルバス(USB)ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ(例えば、PCI−PCIブリッジ)、センサ(例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなどのようなモーションセンサ)、又はそれらの組み合わせを含むことができる。装置1507は、更に結像処理サブシステム(例えば、カメラ)を含むことができ、前記結像処理サブシステムは、写真及びビデオ断片の記録のようなカメラ機能を促進するための光学センサを含むことができ、例えば、電荷結合素子(CCD)又は相補型金属酸化物半導体(CMOS)光学センサが挙げられる。いくつかのセンサは、センサハブ(図示せず)を介してインターコネクト1510に接続されることができ、キーボード又はサーマルセンサのようなその他の装置は、システム1500の具体的な配置又は設計に応じて組込みコントローラ(図示せず)により制御されることができる。
【0070】
データ、アプリケーション、一つ以上のオペレーティングシステムなどの情報の永続性記憶を提供するために、プロセッサ1501には、大容量記憶装置(図示せず)が接続されることができる。様々な実施形態において、より薄くてより軽量なシステム設計を可能にしながら、システムの応答性を向上するために、このような大容量記憶装置は、ソリッドステート装置(SSD)によって実現されることができる。しかしながら、その他の実施形態において、大容量記憶装置は、主にハードディスクドライブ(HDD)を使用して実現することができ、より小さい容量のSSD記憶装置をSSDキャッシュとして機能することで、停電イベントの間にコンテキスト状態及び他のそのような情報の不揮発性記憶を可能にし、それによりシステム動作が再開するときに通電を速く実現することができる。また、フラッシュデバイスは、例えば、シリアルペリフェラルインターフェース(SPI)を介してプロセッサ1501に接続されることができる。このようなフラッシュデバイスは、前記システムのBIOS及びその他のファームウェアを含むシステムソフトウェアの不揮発性記憶のために機能することができる。
【0071】
記憶装置1508は、コンピュータアクセス可能な記憶媒体1509(機械可読記憶媒体又はコンピュータ可読媒体ともいう)を含むことができ、前記コンピュータアクセス可能な記憶媒体1509には、本明細書で記載されたいずれか一種以上の方法又は機能を具現化する一つ以上の命令セット又はソフトウェア(例えば、モジュール、ユニット及び/又はロジック1528)が記憶されている。処理モジュール/ユニット/ロジック1528は、例えば、
図3Aの経路追跡モジュール308のような、前記構成要素のいずれかを表すことができる。処理モジュール/ユニット/ロジック1528は、更に、データ処理システム1500、メモリ1503、及びプロセッサ1501による実行中に、メモリ1503内及び/又はプロセッサ1501内に完全的に又は少なくとも部分的に存在してもよく、データ処理システム1500、メモリ1503及びプロセッサ1501も機械アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528は、更に、ネットワークを介してネットワークインターフェース装置1505を経由して送受信されてもよい。
【0072】
コンピュータ可読記憶媒体1509は、以上に説明されたいくつかのソフトウェア機能を永続的に記憶するために用いることができる。コンピュータ可読記憶媒体1509は、例示的な実施形態において単一の媒体として示されるが、「コンピュータ可読記憶媒体」という用語は、前記一つ以上の命令セットが記憶される単一の媒体又は複数の媒体(例えば、集中型又は分散型データベース、及び/又は関連するキャッシュとサーバ)を含むと解釈されるものとする。「コンピュータ可読記憶媒体」という用語は、更に、命令セットを記憶又は符号化できる任意の媒体を含むと解釈されるものであり、前記命令セットは機械により実行され、本開示のいずれか一種以上の方法を前記機械に実行させるためのものである。それゆえに、「コンピュータ可読記憶媒体」という用語は、ソリッドステートメモリ、光学媒体及び磁気媒体、又はその他の任意の非一時的な機械可読媒体を含むが、それらに限定されないと解釈されるものとする。
【0073】
本明細書に記載の処理モジュール/ユニット/ロジック1528、構成要素及びその他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はASIC、FPGA、DSP又は類似の装置のようなハードウェア構成要素の機能に統合されてもよい。更に、処理モジュール/ユニット/ロジック1528は、ハードウェア装置におけるファームウェア又は機能性回路として実現されてもよい。更に、処理モジュール/ユニット/ロジック1528は、ハードウェア装置とソフトウェア構成要素の任意の組み合わせで実現されてもよい。
【0074】
なお、システム1500は、データ処理システムの様々な構成要素を有するものとして示されているが、構成要素を相互接続する任意の特定のアーキテクチャ又は方式を表すことを意図するものではなく、そのような詳細は、本開示の実施形態とは密接な関係がない。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、及び/又はその他のデータ処理システムも、本開示の実施形態と共に使用することができることを理解されたい。
【0075】
前記具体的な説明の一部は、既に、コンピュータメモリにおけるデータビットに対する演算のアルゴリズムと記号表現で示される。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。本明細書では、一般的に、アルゴリズムは、所望の結果につながるセルフコンシステントシーケンスと考えられる。これらの動作は、物理量の物理的処置が必要なものである。
【0076】
しかしながら、念頭に置くべきことは、これらの用語及び類似の用語の全ては、適切な物理量に関連付けられるものであり、これらの量を標識しやすくするためのものに過ぎない。以上の説明で他に明示的に記載されていない限り、本明細書の全体にわたって理解すべきことは、用語(例えば、添付された特許請求の範囲に記載のもの)による説明とは、コンピュータシステム、又は類似の電子式計算装置の動作又はプロセスを指し、前記コンピュータシステム又は電子式計算装置は、コンピュータシステムのレジスタ及びメモリにおける物理(電子)量として示されたデータを制御するとともに、前記データをコンピュータシステムメモリ又はレジスタ又はこのようなその他の情報記憶装置、伝送又は表示装置において同様に物理量として示された別のデータに変換する。
【0077】
本開示の実施形態は、本明細書の動作を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的なコンピュータ可読媒体に記憶される。機械可読媒体は、機械(例えば、コンピュータ)により読み取り可能な形式で情報を記憶するための任意のメカニズムを含む。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置)を含む。
【0078】
上述した図面において説明されたプロセス又は方法は、ハードウェア(例えば、回路、専用ロジックなど)、ソフトウェア(例えば、非一時的なコンピュータ可読媒体に具現化されるもの)、又は両方の組み合わせを含む処理ロジックにより実行されることができる。前記プロセス又は方法は、以上で特定の順序に応じて説明されたが、前記動作の一部が異なる順序で実行されてもよいことを理解されたい。また、一部の動作は、順番ではなく並行して実行されてもよい。
【0079】
本開示の実施形態は、いずれの特定のプログラミング言語を参照することなく記載されている。理解するべきことは、本明細書に記載の本開示の実施形態の教示を実現するために、様々なプログラミング言語を使用することができる。
【0080】
前記明細書において、本開示の実施形態は、既にその具体的な例示的な実施形態を参照しながら記載された。明らかなように、添付された特許請求の範囲に記載された本開示のより広い趣旨及び範囲を逸脱しない限り、本発明に対して様々な変更を行うことができる。それゆえに、本明細書及び図面は、限定的な意味でなく、例示的な意味で理解されるべきである。