(58)【調査した分野】(Int.Cl.,DB名)
前記加速度測定値及び前記予想加速度に基づいてフィードバック誤差を確定するステップは、前記フィードバック誤差を所定の最小値/最大値に制限することを含む請求項1に記載の方法。
【発明を実施するための形態】
【0020】
以下に説明される詳細を参照しながら本発明の様々な実施形態及び態様を説明し、添付図面には上記の様々な実施形態が示される。以下の説明及び図面は、本発明を例示するためのものであり、限定するものとして解釈されるべきではない。本発明の様々な実施形態を全面的に理解するために、多くの特定の詳細を説明する。なお、本発明の実施形態を簡潔的に説明するように、周知又は従来技術の詳細について説明していない場合もある。
【0021】
本明細書において、「一実施形態」又は「実施形態」とは、当該実施形態に基づいて説明された特定の特徴、構造又は特性が本発明の少なくとも一実施形態に含まれてもよいと意味する。「一実施形態では」という表現は、本明細書の全体において全てが同一の実施形態を指すとは限らない。
【0022】
スピード制御は、ADVの制御モジュールが計画軌跡に正確に従うことを可能にする。通常、車両モデル及び/又はADVの瞬間負荷に従って出力加速度及び/又は速度を調整するために、スピード制御は、(例えば、較正行列及び/又は較正テーブルを使用して)較正される。較正された出力は、計画周期にわたってADVが車両の計画スピードをオーバーシュート又はアンダーシュートするのを防止することができる。較正テーブルは通常、ADVがオフラインの間に手動で較正される。しかしながら、各車両は個別に較正されなければならないので、手動較正は面倒である可能性がある。さらに、車両の性能は時間とともに劣化するので、再較正が必要である。また、異なる重量/負荷がかけられた同車両に対して、テーブルは一定のままにすると、もはや正確ではない可能性がある。従って、制御及びセンサからの入力に基づいて、較正テーブルはリアルタイムで自動的に更新され、時間や手間を省いた。
【0023】
一態様によれば、システムは、ADVの第1の制御コマンド及びスピード測定値を受信する。システムは、スピード測定値及び第1の制御コマンドに基づいてADVの予想加速度を確定する。システムは、ADVの加速度測定値を受信する。システムは、加速度測定値及び予想加速度に基づいてフィードバック誤差を確定する。システムは、確定されたフィードバック誤差に基づいて較正テーブルの一部を更新する。システムは、更新された部分を有する較正テーブルに基づいてADVを制御するための第2の制御コマンドを生成し、第2の制御コマンドに従ってADVを自律的に制御する。
【0024】
図1は、本発明の一実施形態に係る自動運転車両のネットワーク構成を示すブロック図である。
図1に示すように、ネットワーク構成100は、ネットワーク102を介して1つ又は複数のサーバ103〜104に通信可能に接続される自動運転車両101を含む。一台の自動運転車両のみが示されているが、複数の自動運転車両が、ネットワーク102を介して、互いに接続されるか、及び/又はサーバ103〜104に接続されてもよい。ネットワーク102は、任意のタイプのネットワーク、例えば、有線又は無線のローカルエリアネットワーク(LAN)、インターネットのようなワイドエリアネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク又はそれらの組み合わせであってもよい。サーバ103〜104は、任意のタイプのサーバ又はサーバクラスタであってもよく、例えば、ネットワーク又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ、又はそれらの組み合わせが挙げられる。サーバ103〜104は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図・ポイントオブインタレスト(MPOI)サーバ、又は位置サーバなどであってもよい。
【0025】
自動運転車両とは、自動運転モードになるように構成可能な車両を指し、前記自動運転モードにおいて、車両が運転手からの入力がほとんど又は全くない場合に環境を通過するようにナビゲートされる。このような自動運転車両は、車両の動作環境に関連する情報を検出するように構成された1つ又は複数のセンサを有するセンサシステムを備えていてもよい。前記車両及びその関連コントローラは、検出された情報を使用して前記環境を通過するようにナビゲートする。自動運転車両101は、手動モード、全自動運転モード、又は部分自動運転モードで動作することができる。
【0026】
一実施形態では、自動運転車両101は、感知・計画システム110、車両制御システム111、無線通信システム112、ユーザインターフェースシステム113及びセンサシステム115を含むが、それらに限定されない。自動運転車両101は更に、エンジン、車輪、ステアリングホイール、変速機などの従来の車両に含まれるいくつかの共通構成要素を含んでもよい。前記構成要素は、車両制御システム111及び/又は感知・計画システム110によって様々な通信信号及び/又はコマンドで制御されることができ、これらの様々な通信信号及び/又はコマンドは、例えば加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンドなどが挙げられる。
【0027】
構成要素110〜115は、インターコネクト、バス、ネットワーク、又はそれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素110〜115は、コントローラエリアネットワーク(CAN)バスを介して互いに通信可能に接続することができる。CANバスは、ホストコンピュータなしのアプリケーションでマイクロコントローラ及びデバイスが相互に通信できるように設計された車両バス規格である。それは、もともと自動車内の多重電気配線のために設計されたメッセージに基づくプロトコルであるが、他の多くの環境にも用いられる。
【0028】
ここで
図2を参照すると、一実施形態では、センサシステム115は、1つ又は複数のカメラ211、全地球測位システム(GPS)ユニット212、慣性計測ユニット(IMU)213、レーダユニット214及び光検出・測距(LIDAR)ユニット215及び車載V2X通信ユニット(vehicle−to−everything unit)216を備えるが、それらに限定されない。GPSユニット212は、自動運転車両の位置に関する情報を提供するように動作可能な送受信機を含んでもよい。IMUユニット213は、慣性加速度に基づいて自動運転車両の位置及び配向の変化を検知することができる。レーダユニット214は、自動運転車両のローカル環境内のオブジェクトを検知するために無線信号を利用するシステムを表すことができる。いくつかの実施形態では、オブジェクトを検知することに加えて、レーダユニット214は、オブジェクトのスピード及び/又は進行方向をさらに検知することができる。LIDARユニット215は、レーザを使用して自動運転車両が位置する環境内のオブジェクトを検知することができる。LIDARユニット215は、他のシステム構成要素のほかに、1つ又は複数のレーザ源、レーザスキャナ及び1つ又は複数の検出器を更に備えていてもよい。カメラ211は、自動運転車両の周りの環境における画像を取り込むための1つ以上の装置を含んでいてもよい。カメラ211は、スチルカメラ及び/又はビデオカメラであってもよい。カメラは、例えば、回転及び/又は傾斜のプラットフォームに取り付けることによって、機械的に移動されていてもよい。
【0029】
センサシステム115は、ソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ、及びオーディオセンサ(例えば、マイクロホン)などの他のセンサを更に含むことができる。オーディオセンサは、自動運転車両の周囲の環境から音を取得するように構成されてもよい。ステアリングセンサは、ステアリングホイール、車両の車輪、又はそれらの組み合わせの操舵角を検知するように構成されてもよい。スロットルセンサ及びブレーキセンサそれぞれは、車両のスロットル位置及びブレーキ位置を検知する。場合によっては、スロットルセンサとブレーキセンサを統合型スロットル/ブレーキセンサとして一体化することができる。
【0030】
一実施形態では、車両制御システム111は、ステアリングユニット201、スロットルユニット202(加速ユニットともいう)、及びブレーキユニット203を含むが、それらに限定されない。ステアリングユニット201は車両の方向又は進行方向を調整するために用いられる。スロットルユニット202は電動機又はエンジンのスピードを制御するために用いられ、電動機又はエンジンのスピードは更に車両のスピード及び加速度を制御するために用いられる。ブレーキユニット203は、摩擦を与えることによって車両の車輪又はタイヤを減速させることで、車両を減速させる。注意すべきなのは、
図2に示された構成要素は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されることができる。
【0031】
図1を再び参照して、無線通信システム112は、自動運転車両101と、装置、センサ、他の車両などの外部システムとの間の通信を可能にするものである。例えば、無線通信システム112は、直接又は通信ネットワークを介して、1つ又は複数の装置と無線通信することができ、例えば、ネットワーク102を介してサーバ103〜104と通信することができる。無線通信システム112は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク(WLAN)を使用することができ、例えば、WiFi(登録商標)を使用して別の構成要素又はシステムと通信することができる。無線通信システム112は、例えば、赤外線リンク、ブルートゥース(登録商標)などを使用して、装置(例えば、乗客のモバイルデバイス、表示装置、車両101内のスピーカ)と直接通信することができる。ユーザインターフェースシステム113は、車両101内に実現された周辺装置の部分(例えば、キーボード、タッチスクリーン表示装置、マイクロホン及びスピーカなどを含む)であってもよい。
【0032】
自動運転車両101の機能の一部又は全部は、特に自動運転モードで動作しているときに、感知・計画システム110によって制御するか又は管理することができる。感知・計画システム110は、必要なハードウェア(例えば、プロセッサ、メモリ、記憶装置)及びソフトウェア(例えば、オペレーティングシステム、計画及びルーティングプログラム)を備え、センサシステム115、制御システム111、無線通信システム112及び/又はユーザインターフェースシステム113から情報を受信し、受信した情報を処理し、出発地から目的地までのルート又は経路を計画し、その後、計画及び制御情報に基づいて車両101を走行させる。あるいは、感知・計画システム110を車両制御システム111と一体に統合することができる。
【0033】
例えば、乗員としてのユーザは、例えば、ユーザインターフェースを介して、旅程の出発地位置及び目的地を指定することができる。感知・計画システム110は、旅程関連データを取得する。例えば、感知・計画システム110は、MPOIサーバから位置及びルート情報を取得することができ、前記MPOIサーバはサーバ103〜104の一部であってもよい。位置サーバは位置サービスを提供し、MPOIサーバは地図サービス及び特定の位置のPOIを提供する。あるいは、そのような位置及びMPOI情報は、感知・計画システム110の永続性記憶装置にローカルキャッシュされることができる。
【0034】
自動運転車両101がルートに沿って移動している間、感知・計画システム110は交通情報システム又はサーバ(TIS)からリアルタイム交通情報を取得していてもよい。なお、サーバ103〜104は第三者機関によって操作されてもよい。あるいは、サーバ103〜104の機能は、感知・計画システム110と一体に統合されてもよい。リアルタイム交通情報、MPOI情報、及び位置情報、並びにセンサシステム115によって検出又は検知されたリアルタイムローカル環境データ(例えば、障害物、オブジェクト、周辺車両)に基づいて、感知・計画システム110は、指定された目的地までに安全かつ効率的に到着するように、最適なルートを計画し、計画されたルートに従って、例えば、制御システム111によって車両101を走行させる。
【0035】
サーバ103は、様々な顧客に対してデータ解析サービスを行うためのデータ解析システムであってもよい。一実施形態では、データ解析システム103は、データコレクタ121と、機械学習エンジン122とを備える。データコレクタ121は、様々な車両(自動運転車両又は人間の運転手によって運転される一般車両)から運転統計データ123を収集する。運転統計データ123は、発された運転命令(例えば、スロットル、ブレーキ、ステアリングの命令)及び車両のセンサによって異なる時点で取得された車両の応答(例えば、速度、加速度、減速度、方向)を示す情報を含む。運転統計データ123は更に、異なる時点における走行環境を記述する情報、例えば、ルート(出発地位置及び目的地位置を含む)、MPOI、道路状況、天気状況などを含んでもよい。
【0036】
機械学習エンジン122は、運転統計データ123に基づいて、様々な目的でルールセット、アルゴリズム及び/又はモデル124を生成又は訓練する。一実施形態では、例えば、アルゴリズム/モデル124は、逆距離加重補間モデルなどの様々な補間モデルを含んでいてもよい。逆距離加重補間は、近くのサンプルポイントからの属性の加重平均を使用してサンプリングされていない位置におけるその属性の大きさを推定する補間技術である。逆距離加重補間モデルは、リアルタイムでADVによって使用されるようにADVにアップロードすることができる。
【0037】
図3A及び
図3Bは、一実施形態に係る自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。システム300は、
図1の自動運転車両101の一部として実現することができ、感知・計画システム110、制御システム111及びセンサシステム115を含むが、それらに限定されない。
図3A〜
図3Bに示すように、感知・計画システム110には、測位モジュール301、感知モジュール302、予測モジュール303、決定モジュール304、計画モジュール305、制御モジュール306、ルーティング/サンプリングモジュール307及び自動較正モジュール308が含まれるが、それらに限定されない。
【0038】
モジュール301〜308のうちの一部又は全部は、ソフトウェア、ハードウェア又はそれらの組み合わせで実現されていてもよい。例えば、これらのモジュールは、永続性記憶装置352にインストールされ、メモリ351にロードされ、1つ又は複数のプロセッサ(図示せず)によって実行されていてもよい。なお、これらのモジュールの一部又は全部は、
図2の車両制御システム111のモジュールの一部又は全部と通信可能に接続されるか、又は一体に統合されていてもよい。モジュール301〜308の一部は、集積モジュールとして一体化されていてもよい。例えば、自動較正モジュール308及び制御モジュール306は単一のモジュールとして統合されてもよい。
【0039】
測位モジュール301は、自動運転車両300の現在の位置(例えば、GPSユニット212を利用して)を特定し、ユーザの旅程又はルートに関連する如何なるデータを管理する。測位モジュール301(地図・ルートモジュールともいう)は、ユーザの旅程又はルートに関連する如何なるデータを管理する。ユーザは、例えば、ユーザインターフェースを介してログインして、旅程の出発地位置及び目的地を指定することができる。測位モジュール301は、自動運転車両300の地図・ルート情報311のような他の構成要素と通信して、旅程関連データを取得する。例えば、測位モジュール301は、位置サーバ及び地図・ポイントオブインタレスト(MPOI)サーバから位置及びルート情報を取得することができる。位置サーバは位置サービスを提供し、MPOIサーバは、地図サービス及び特定位置のPOIを提供し、地図・ルート情報311の一部としてキャッシュすることができる。自動運転車両300がルートに沿って移動するとき、測位モジュール301は交通情報システム又はサーバからリアルタイム交通情報を得ることも可能である。
【0040】
感知モジュール302は、センサシステム115により提供されたセンサデータと、測位モジュール301により取得された測位情報とに基づいて、周囲環境への感知を決定する。感知情報は、一般的な運転手が運転手により運転されている車両の周囲で感知すべきものを表すことができる。感知は、例えばオブジェクトの形態を採用する車線構成(例えば、直進車線又はカーブ車線)、信号機信号、他の車両の相対位置、歩行者、建築物、横断歩道、又は他の交通関連標識(例えば、止まれ標識、ゆずれ標識)などを含んでもよい。車線構成は、例えば、車線の形状(例えば、直線又は湾曲)、車線の幅、道路内の車線数、一方向又は二方向車線、合流車線又は分流車線、退出車線など、1つ又は複数の車線を記述する情報を含む。
【0041】
感知モジュール302は、1つ又は複数のカメラによって取り込まれた画像を処理及び解析して、自動運転車両の環境内のオブジェクト及び/又は特徴を認識するためのコンピュータビジョンシステム又はコンピュータビジョンシステムの機能を含むことができる。前記オブジェクトは、交通信号、道路境界、他の車両、歩行者及び/又は障害物などを含むことができる。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオトラッキング、及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態では、コンピュータビジョンシステムは、環境地図の描画、オブジェクトの追跡、及びオブジェクトの速度の推定などができる。感知モジュール302は、レーダ及び/又はLIDARのような他のセンサによって提供される他のセンサデータに基づいてオブジェクトを検出することもできる。
【0042】
各オブジェクトについて、予測モジュール303は、その場合にオブジェクトがどのように挙動するかを予測する。この予測は、地図・ルート情報311と交通ルール312のセットを考慮した時点で走行環境を感知する感知データに基づいて実行される。例えば、オブジェクトが反対方向の車両であり、かつ現在の走行環境が交差点を含む場合、予測モジュール303は、車両が直進するか又は旋回するかを予測する。感知データが、交差点に信号機がないことを示す場合、予測モジュール303は、交差点に入る前に車両が完全に停止する必要があると予測する可能性がある。感知データが、車両が現在左折専用車線又は右折専用車線にあることを示す場合、予測モジュール303は、車両がそれぞれ左折又は右折する可能性がより高いと予測することが可能である。
【0043】
オブジェクトごとに対して、決定モジュール304はオブジェクトをどのように処置するかを決定する。例えば、特定のオブジェクト(例えば、交差のルートにおける他の車両)及びオブジェクトを記述するメタデータ(例えば、速度、方向、操舵角)について、決定モジュール304は前記オブジェクトと遇うときに如何に対応するか(例えば、追い越し、道譲り、停止、追い抜き)を決定する。決定モジュール304は、交通ルール又は運転ルール312のようなルールセットに基づいてそのような決定を行うことができ、前記ルールセットは永続性記憶装置352に記憶されていてもよい。
【0044】
ルーティングモジュール307は、出発地から目的地までの1つ又は複数のルート又は経路を提供するように構成される。ルーティングモジュール307は、出発地位置から目的地位置までの所与の旅程(例えば、ユーザから受信された所与の旅程)について、地図・ルート情報311を取得し、出発地位置から目的地位置までのすべての可能なルート又は経路を決定する。ルーティングモジュール307は、出発地位置から目的地位置までの各ルートを決定する地形図形態の基準線を生成することができる。基準線とは、他の車両、障害物又は交通状況などからの如何なる干渉を受けていない理想的なルート又は経路をいう。つまり、道路に他の車両、歩行者又は障害物がない場合、ADVは基準線に精確的に又は密接的に従うべきである。そして、地形図を決定モジュール304及び/又は計画モジュール305に提供する。決定モジュール304及び/又は計画モジュール305は、他のモジュールにより提供された他のデータ(例えば測位モジュール301からの交通状況、感知モジュール302により感知された走行環境及び予測モジュール303により予測された交通状況)に応じて、全ての走行可能なルートを検査して最適ルートのうちの一つを選択及び補正する。その時点における特定の走行環境に応じて、ADVを制御するための実際の経路又はルートは、ルーティングモジュール307によって提供された基準線に近いか又は異なっていてもよい。
【0045】
計画モジュール305は、感知されたオブジェクトのそれぞれに対する決定に基づいて、自動運転車両に経路又はルート並びに運転パラメータ(例えば、距離、速度及び/又は操舵角)を計画する。言い換えれば、特定のオブジェクトについて、決定モジュール304は該オブジェクトに対して何をするかを決定し、計画モジュール305はどのようにするかを決定する。例えば、特定のオブジェクトについて、決定モジュール304は前記オブジェクトを追い抜くか否かを決定することができ、計画モジュール305は前記オブジェクトを左側から追い抜くか又は右側から追い抜くかを決定することができる。計画及び制御データは、計画モジュール305により生成され、車両300が次の移動周期(例えば、次のルート/経路区間)にはどのように移動するかを記述する情報を含む。例えば、計画及び制御データは、車両300に時速30マイル(mph)で10m移動し、次に25マイル(mph)で右車線に変更するように指示することができる。
【0046】
制御モジュール306は、計画及び制御データに基づいて、計画及び制御データにより定義されたルート又は経路に応じて適当なコマンド若しくは信号を車両制御システム111に送信することにより自動運転車両を制御及び走行させる。前記計画及び制御データは、経路又はルートに沿って異なる時点で適切な車両構成又は運転パラメータ(例えば、スロットル、ブレーキ、及びステアリングコマンド)を使用して、車両をルート又は経路の第1のポイントから第2のポイントまで走行させるのに十分な情報を含む。
【0047】
一実施形態では、計画段階は、コマンドサイクルともいう複数の計画周期で実行され、例えば、100ミリ秒(ms)の時間間隔ごとに実行される。計画周期又はコマンドサイクルのそれぞれについて、計画及び制御データに基づいて1つ又は複数の制御コマンドを発する。すなわち、100msごとに、計画モジュール305は、次のルート区間又は経路区間(例えば、目標位置及びADVが目標位置に到着するのに必要な時間が含まれる)を計画する。あるいは、計画モジュール305は、具体的な速度、方向、及び/又は操舵角などを更に指定することができる。一実施形態では、計画モジュール305は、次の所定期間(例えば、5秒)のルート区間又は経路区間を計画する。計画周期のそれぞれに対し、計画モジュール305は、前の周期で計画された目標位置に基づいて、現在の周期(例えば、次の5秒)のための目標位置を計画する。制御モジュール306は、次に、現在の周期における計画及び制御データに基づいて1つ又は複数の制御コマンド(例えば、スロットル、ブレーキ、ステアリング制御コマンド)を生成する。
【0048】
なお、決定モジュール304及び計画モジュール305は、集積モジュールとして一体化されてもよい。決定モジュール304/計画モジュール305は、自動運転車両の走行経路を決定するためのナビゲーションシステム又はナビゲーションシステムの機能を備えていてもよい。例えば、ナビゲーションシステムは、自動運転車両の以下の経路に沿った移動を達成するための一連の速度及び進行方向を決定することができる。前記経路では、自動運転車両が最終的な目的地に通じる走行車線ベースの経路に沿って前進するとともに、感知した障害物を実質的に回避できる。目的地は、ユーザインターフェースシステム113を介したユーザ入力に従って設定することができる。ナビゲーションシステムは、自動運転車両が走行している間に走行経路を動的に更新することができる。ナビゲーションシステムは、自動運転車両のための走行経路を決定するために、GPSシステム及び1つ又は複数の地図からのデータを取り入れることができる。
【0049】
決定モジュール304/計画モジュール305は、更に、自動運転車両の環境における潜在的な障害物を認識、評価、回避又は他の方法で通過するための衝突防止システム又は衝突防止システムの機能を備えていてもよい。例えば、衝突防止システムは、制御システム111の1つ以上のサブシステムを動作させることで、ステアリング動作、旋回動作、ブレーキ動作などを行うことによって、自動運転車両のナビゲーション中の変更を実現することができる。衝突防止システムは、周囲の交通パターンや道路状況などに基づいて、実行可能な障害物回避動作を自動的に決定することができる。衝突防止システムは、他のセンサシステムが、自動運転車両が方向変更して進入しようとする隣接領域における車両、建築障害物などを検出したときに、ステアリング動作を行わないように構成されることができる。衝突防止システムは、自動運転車両の乗員の安全性を最大限にするとともに、利用可能な動作を自動的に選択することができる。衝突防止システムは、自動運転車両の客室内に最も少ない加速度を発生させると予測される回避動作を選択することができる。
【0050】
図4は、一実施形態に係る自動較正モジュールの一例を示すブロック図である。
図4を参照すると、自動較正モジュール308は、車両のスピード制御較正テーブル/マトリックス313を自動的に較正するために、車両のセンサシステム115及び制御モジュール306に接続されている。制御モジュール306は、後続の計画周期においてスピード制御コマンドを生成するために較正テーブル313を使用することができる。次に、スピード制御コマンドに対するフィードバック誤差に基づいて較正テーブル313を更新することができ、その後、コマンド生成及び較正テーブル更新プロセスを繰り返すことができる。
【0051】
図4を参照すると、自動較正モジュール308は、加速度決定器モジュール401、フィードバック誤差決定器及び/又はフィードバック誤差リミッタモジュール403、ならびに較正テーブルアップデーターモジュール405を備えていてもよい。加速度決定器モジュール401は、ADVの加速度を決定することができる。フィードバック誤差決定器/リミッタモジュール403は、ADVのスピード制御のためのフィードバック誤差を決定する(及び/又はフィードバック誤差を所定の最小値/最大値に制限する)ことができる。較正テーブルアップデーターモジュール405は、スピード制御フィードバック誤差に基づいて較正テーブルを更新することができる。
【0052】
図5は、一実施形態に係る較正テーブルの一例である。
図5を参照すると、較正テーブル313は、三次元で示される二次元加重曲線(two dimensional weighted curve)であってもよい。テーブル313は、x−yの2次元を有することができ、そのz次元が表にした重み値であり、ここで、xはスピード(speed)又は速度(velocity)(m/s)であり、yはスピード制御コマンド(%)、及びzは加速度(m/s
2)である。ここで、一実施形態では、制御コマンドは、スロットルコマンド(例えば、給油する)及び/又はブレーキコマンドに対して100%〜−100%の範囲内で変化してもよく、加速度は−10〜10m/s
2の範囲内、スピードは0〜30m/sの範囲内で変化してもよい。x及びzが分かっているときにyをルックアップする場合、又はx及びyがわかっているときにzをルックアップする場合、較正テーブル313を使用することができる。
【0053】
例えば、10.1m/sのスピード(x)及び1.8%のスピード制御コマンド(y)が与えられると、そのような較正テーブルを使用して0.5m/s
2の予想加速度を確定することができる。テーブル313は、有限エントリを含み、すなわち不連続であるので、逆距離加重補間モデルのような補間モデルを使用して較正テーブルを読み取り、又は更新可能である。例えば、較正テーブルは10m/s、10.5m/sにおける離散スピード値、及び1%、2%の制御コマンドなどを含んでいてもよい。この場合、10.1m/sのスピード及び1.8%の制御コマンドはエントリに対応しないが、10m/s及び10.5m/sのスピード並びに1%、2%の制御コマンドに対する隣接エントリに対応するエントリを使用して値を補間することができる。較正テーブルも同様に補間モデルを使用して更新することができる。
【0054】
図6は、一実施形態に係る例示的なフィードバック誤差リミッタを示すブロック図である。
図6を参照すると、フィードバック誤差リミッタ600は、
図4のフィードバック誤差決定器/リミッタモジュール403の一部であってもよい。フィードバック誤差リミッタは、自動較正モジュールのフィードバック応答を制限するために用いられる。例えば、較正テーブルの更新とコマンドの生成は、計画周期ごとに継続的に実行できる。しかしながら、最小のフィードバック誤差は、較正テーブルの更新へのトリガを回避する必要があり、それは必要ではない可能性があり、コンピューティングリソースの無駄遣いにつながることがある。また、最大のフィードバック誤差は、如何なる不安定性を回避するために、最大のフィードバック誤差値への較正テーブルの更新をトリガすることができる。一実施形態では、フィードバックリミッタ600は、フィードバック値が所定の最小値よりも大きい限りフィードバック誤差を出力するように構成することができる。例えば、所定の最小値よりも小さいフィードバック値については、フィードバック誤差を提供せず、較正テーブルを更新しない。別の実施形態では、フィードバックリミッタは、所定の最大値に制限されたフィードバック誤差を出力するように構成できる。この場合、最大値を超える如何なるフィードバック誤差について、較正テーブルは最大制限値に従って更新される。最小値/最大値の例としては、それぞれ0.1及び1.0であってもよい。
【0055】
図7は、一実施形態に係る較正テーブルの一部の一例を示すブロック図である。
図7を参照すると、較正テーブルの一部700は、
図5の較正テーブル313からの任意の数の表にした値であってもよい。例えば、テーブルの一部700は、4つのエントリ値701〜704、及びポイントオブインタレスト705を含むことができる。エントリ701〜704は、それぞれポイント705から離れた距離d1、距離d2、距離d3、距離d4であってもよい。例えば、x−yエントリ値について、値701〜704は、(x,y)={(10.0m/s,2%),(10.5m/s,2%),(10.0m/s,1%),(10.5m/s,1%)}にそれぞれ対応することができ、ポイント705は、(x,y)=(10.1,1.8%)に対応することができる。ここで、ポイント705の値は、次式を用いてテーブルの一部700から確定することができる。
【数1】
式中、zはポイントオブインタレストの値、z
iはポイントオブインタレストの周囲のエントリ値、d
iは周囲の各エントリからの距離である。
【0056】
一実施形態では、ポイント705の値又はval(705)は、(val(701)/d1+val(702)/d2+val(703)/d3+val(704)/d4)/(1/d1+1/d2+1/d3+1/d4)に等しい。別の実施形態では、較正テーブルの一部700を更新するために、ポイント705の値は、次の加重公式を使用して逆距離加重補間モデルを通じてテーブルの一部700内のエントリ値を更新することができる。
【数2】
式中、weight(重み)はd
jに対応するテーブルエントリに適用され、d
iはポイントオブインタレストに対するそれぞれの周囲のエントリの距離である。
【0057】
図8A〜
図8Dは、一実施形態に係る自動較正更新の一例を示すブロック図である。
図8A〜
図8Dを参照すると、一実施形態では、
図8A〜
図8Cは、較正テーブルの、第1の計画周期による更新の前後の画像に対応することができる。
図8B〜
図8Dは、較正テーブルの、第2の計画周期による更新の前後の画像に対応することができる。図示のように、
図8Aに比較して
図8Cの周囲のポイントのエントリのうち、4つのエントリが更新され、
図8Bに比較して
図8Dの周囲のポイントのエントリのうち、4つのエントリが更新される。ここでは、エントリの異なる色合いは、異なる大きさのテーブルエントリ値を示す。
【0058】
従って、自動較正モジュール308によって実行されるプロセスは、以下の例に要約することができる。
図4〜
図6を参照すると、一実施形態では、第1の計画周期で、自動較正モジュール308は、センサシステム115を介してADV101のIMUユニットからスピード/速度(velocity)測定値411を取得することができ、制御モジュール306を介して制御コマンド・状態413(例えば、成功/失敗)を取得することができる。スピード測定値及び制御コマンドならびにその状態に基づいて、加速度決定器モジュール401は較正テーブル313を使用して予想加速度を確定する。上述したように、限定された較正テーブルの場合、テーブルエントリにないポイントオブインタレストに対する予想加速度を確定するために、いくつかの補間アルゴリズム又はモデルを使用することができる。
【0059】
第2の(後続の)計画周期について、例えば200ms後に、加速度が有効になると、自動較正モジュール308は、IMUユニットを介して加速度測定値を取得し、加速度測定値と予想加速度とを比較してデルタ加速度(例えば、フィードバック誤差)を計算する。計算されたデルタ加速度又はフィードバック誤差に基づいて、フィードバック誤差リミッタモジュール403は、較正テーブル313に適用されるべき実際のフィードバック誤差を確定する。次いで、較正テーブルアップデーターモジュール405は、補間アルゴリズムを使用して較正テーブルを更新する。次に、ADV101は較正テーブルを使用して、それぞれの計画周期についてのADVの計画スピードに基づいて後続のスピード制御コマンドを生成することができる。その後、較正テーブル更新及びコマンド生成プロセスを繰り返す。
【0060】
図9は、一実施形態に係る方法を示すフローチャートである。プロセス900は、処理ロジックにより実行可能であり、処理ロジックはソフトウェア、ハードウェア、又はそれらの組み合わせを含んでもよい。例えば、プロセス900は
図3Aの自動較正モジュール308によって実行可能である。
図9を参照すると、ブロック901において、処理ロジックはADVの第1の制御コマンド及びスピード測定値を受信する。ブロック902において、処理ロジックは、スピード測定値及び第1の制御コマンドに基づいてADVの予想加速度を確定する。ブロック903において、処理ロジックはADVの加速度測定値を受信する。ブロック904において、処理ロジックは、加速度測定値及び予想加速度に基づいてフィードバック誤差を確定する。ブロック905において、処理ロジックは、確定されたフィードバック誤差に基づいて較正テーブルの一部を更新する。ブロック906において、処理ロジックは、更新された部分を有する較正テーブルに基づいてADVを制御するための第2の制御コマンドを生成し、第2の制御コマンドに従ってADVを自律的に制御する。
【0061】
一実施形態では、スピード及び加速度の測定は、ADVの慣性計測装置(IMU)センサによって行われる。一実施形態では、スピード測定値及び第1の制御コマンドに基づいて較正テーブルを使用して予想加速度を確定する。
【0062】
一実施形態では、較正テーブルの一部を更新するステップは、第1の制御コマンド及びスピード測定値に基づいて較正テーブルにおける更新ポイントを決定することをさらに含む。一実施形態では、較正テーブルは、制御コマンド、スピード、及び加速度の次元を有するテーブルエントリを備える三次元テーブルである。
【0063】
一実施形態では、制御コマンドは、加速又はブレーキコマンドを含み、100%〜−100%の範囲を有する。別の実施形態では、テーブルエントリは離散化エントリである。別の実施形態では、テーブルエントリは空間補間モデルに従って更新される。別の実施形態では、空間補間モデルは逆距離加重補間モデルを含む。別の実施形態では、更新ポイントから距離d1にあるテーブルエントリは、(1/d1)/(1/d1+1/d2+1/d3+1/d4)の重み係数に基づいて更新され、ここでは、d1、d2、d3、及びd4は、それぞれ特定の加速度に対する4つの周囲のエントリの距離である。
【0064】
図10は、一実施形態に係る方法を示すフローチャートである。プロセス1000は、処理ロジックにより実行可能であり、処理ロジックはソフトウェア、ハードウェア、又はそれらの組み合わせを含んでもよい。例えば、プロセス1000は
図3Aの自動較正モジュール308によって実行可能である。
図10を参照すると、ブロック1001において、処理ロジックはADVの現在のスピードを受信する。ブロック1002において、処理ロジックは、ADVの計画スピード及び現在のスピードに基づいて加速度を計算する。ブロック1003において、処理ロジックは、算出された加速度と受信されたADVの現在のスピードとに基づいて、較正テーブルを使用して第2の制御コマンドを決定する。ブロック1004において、処理ロジックは第2の制御コマンドを生成する。
【0065】
なお、以上に例示及び説明された構成要素の一部又は全ては、ソフトウェア、ハードウェア、又はそれらの組み合わせで実現されることが可能である。例えば、このような構成要素は、永続性記憶装置にインストールされるとともに格納されるソフトウェアとして実現されてもよく、前記ソフトウェアは、本発明にわたって記載されたプロセス又は処理を実施するように、プロセッサ(図示せず)を介してメモリにロードして実行されてもよい。あるいは、このような構成要素は、集積回路(例えば、特定用途向け集積回路又はASIC)、デジタルシグナルプロセッサ(DSP)、又はフィールドプログラマブルゲートアレイ(FPGA)のような専用ハードウェアにプログラミング又は埋め込まれた実行可能なコードとして実現されてもよく、前記実行可能なコードは、アプリケーションからの対応するドライバー及び/又はオペレーティングシステムを介してアクセスすることができる。また、このような構成要素は、ソフトウェア構成要素が1つ又は複数の特定の命令によってアクセス可能な命令セットの一部として、プロセッサ又はプロセッサコアにおける特定のハードウェアロジックとして実現されることができる。
【0066】
図11は、本発明の一実施形態と共に使用可能なデータ処理システムの一例を示すブロック図である。例えば、システム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は、例えば、
図3Aの自動較正モジュール308など、前記構成要素のいずれかを表すことができる。処理モジュール/ユニット/ロジック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】
本明細書において、本発明の実施形態は、既にその具体的な例示的な実施形態を参照しながら記載された。明らかなように、添付された特許請求の範囲に記載された本発明のより広い趣旨及び範囲を逸脱しない限り、本発明に対して様々な変更を行うことができる。それゆえに、本明細書及び図面は、限定的な意味でなく、例示的な意味で理解されるべきである。