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

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

▶ ザ・リージェンツ・オブ・ザ・ユニバーシティ・オブ・ミシガンの特許一覧

特許7262776シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法
<>
  • 特許-シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法 図1
  • 特許-シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法 図2A
  • 特許-シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法 図2B
  • 特許-シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法 図3A
  • 特許-シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法 図3B
  • 特許-シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法 図4
  • 特許-シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法 図5
  • 特許-シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法 図6
  • 特許-シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法 図7
  • 特許-シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法 図8A
  • 特許-シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法 図8B
  • 特許-シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法 図9
  • 特許-シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法 図10
  • 特許-シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-14
(45)【発行日】2023-04-24
(54)【発明の名称】シーンの2次元表現を生成する方法、及び、移動可能な物体の位置を判定するための方法
(51)【国際特許分類】
   G05D 1/02 20200101AFI20230417BHJP
   G06T 7/00 20170101ALI20230417BHJP
   G01S 17/89 20200101ALI20230417BHJP
   G01C 21/28 20060101ALI20230417BHJP
【FI】
G05D1/02 H
G06T7/00 C
G01S17/89
G01C21/28
【請求項の数】 20
(21)【出願番号】P 2019540329
(86)(22)【出願日】2018-01-26
(65)【公表番号】
(43)【公表日】2020-03-19
(86)【国際出願番号】 US2018015480
(87)【国際公開番号】W WO2018140748
(87)【国際公開日】2018-08-02
【審査請求日】2021-01-08
(31)【優先権主張番号】62/450,616
(32)【優先日】2017-01-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】511000957
【氏名又は名称】ザ・リージェンツ・オブ・ザ・ユニバーシティ・オブ・ミシガン
【氏名又は名称原語表記】THE REGENTS OF THE UNIVERSITY OF MICHIGAN
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】オルソン、エドウィン
(72)【発明者】
【氏名】カーショウ、カール
【審査官】稲垣 浩司
(56)【参考文献】
【文献】米国特許第09037396(US,B2)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00 - 1/12
G06T 7/00
G01S 17/89
G01C 21/28
(57)【特許請求の範囲】
【請求項1】
シーンの3次元点データを受信することと、
前記シーンの地面を複数のセルへと区画化することと、
前記3次元点データからの点を前記複数のセル内へと射影することと、
前記複数のセル中の各セルについて、前記セル内で前記点が生じる高さを記録することであって、前記高さは、列ベクトルで記録され、前記列ベクトル中の各要素は、異なる高さの範囲に対応している、記録することと、
前記複数のセル中の各セルについて、前記複数のセルにルール・セットを適用することによって、前記セル内の前記点の特性を判定することと、
前記複数のセル中の各セル内で判定された前記特性から、前記シーンの2次元表現を生成することと
を含む、シーンの2次元表現を生成する方法。
【請求項2】
前記3次元点データをLiDARセンサから取り込むことを更に含む、請求項1に記載の方法。
【請求項3】
前記セル内で前記点が生じる高さを記録することは、高さを列ベクトルの要素へと量子化し、このことにより複数のベクトル列を形成することを含み、前記列ベクトル中の各要素は、基準点よりも上にある異なる高さの範囲に対応している、請求項1に記載の方法。
【請求項4】
列ベクトルの要素において高さを量子化することは、所与の要素における点の存在又は不在を二値数としてコード化することを更に含む、請求項3に記載の方法。
【請求項5】
列ベクトル中の要素の数は、処理ユニットの整数データ型のサイズ以下である、請求項3に記載の方法。
【請求項6】
各セルは、前記列ベクトル中の各ビットの値をシフトさせる高さオフセット値を含む、請求項3に記載の方法。
【請求項7】
所与のセル内の前記点の特性を、前記所与のセルに対してポピュレーション・カウントを実行することによって判定することを更に含む、請求項3に記載の方法。
【請求項8】
所与のセル内の前記点の特性を、前記所与のセルに対するビット論理積及びポピュレーション・カウントのシークエンスを通して判定することを更に含む、請求項3に記載の方法。
【請求項9】
前記点が生じる高さを記録することは、所与の列ベクトルによって定義された前記高さの範囲外にある新しい点を受信することと、前記所与の列ベクトル中の要素をビット・シフトさせることによって前記高さの範囲を調整することと、を更に含む、請求項3に記載の方法。
【請求項10】
前記複数のセルにルール・セットを適用することによって、セル内の前記点の特性を判定することであって、前記ルール・セットは、静止した構造を前記シーン内で検出された他の物体から区別する、判定すること、を更に含む、請求項1に記載の方法。
【請求項11】
移動可能な物体の位置を判定するための方法であって、
前記移動可能な物体の周囲にあるシーンの3次元点データを収集することと、
前記シーン内で検出された任意の構造の垂直度を列ベクトルで表すことによって、前記3次元点データを前記シーン内の現在の2次元マップに変換することであって、前記列ベクトル中の各要素は、基準点よりも上にある異なる高さの範囲に対応している、変換することと、
前記現在の2次元マップを2次元候補マップのセットのうちの1つ又は複数とマッチングさせることであって、前記2次元候補マップのセット中の各2次元候補マップはグローバル座標を含む、マッチングさせることと、
1つ又は複数のマッチングした2次元候補マップを使用して、前記移動可能な物体の位置を判定することと、を含む、方法。
【請求項12】
前記3次元点データを2次元マップに変換することは、
前記シーンの地面を複数のセルへと区画化することと、
前記3次元点データからの点を前記複数のセル内へと射影することと、
前記複数のセル中の各セルについて、前記セル内で前記点が生じる高さを記録することと、
前記複数のセル中の各セルについて、前記セル内の前記点の特性を判定することと、
前記複数のセル中の各セル内で判定された前記特性から、前記シーンの2次元表現を生成することと、
を含む、請求項11に記載の方法。
【請求項13】
前記セル内で前記点が生じる高さを記録することは、高さを列ベクトルの要素へと量子化し、このことにより複数のベクトル列を形成することを含み、前記列ベクトル中の各要素は、基準点よりも上にある異なる高さの範囲に対応している、請求項12に記載の方法。
【請求項14】
前記現在の2次元マップを2次元候補マップのセットのうちの1つ又は複数とマッチングすることは、
前記移動可能な物体の現在の位置を推定することと、
前記移動可能な物体の前記現在の位置を使用して、複数の所定の2次元マップから、前記2次元候補マップのセットを識別することと、を含む、請求項11に記載の方法。
【請求項15】
前記現在の2次元マップを2次元候補マップのセットのうちの1つ又は複数とマッチングさせることは、前記現在の2次元マップを前記2次元候補マップのセット中の各2次元候補マップと位置整合させ、このことにより前記2次元候補マップのセット中の各2次元候補マップと関連させて、前記現在の2次元マップに関する地点推定値を決定することを含む、請求項11に記載の方法。
【請求項16】
前記現在の2次元マップを前記2次元候補マップのセット中の各2次元候補マップと位置整合させることは、前記現在の2次元マップと前記2次元候補マップのセット中の各2次元候補マップとの間の剛性変換を演算することを含む、請求項15に記載の方法。
【請求項17】
前記移動可能な物体の位置を判定することの前に、前記現在の2次元マップとの位置整合に基づいて前記2次元候補マップのセットをフィルタリングすることを更に含む、請求項16に記載の方法。
【請求項18】
粒子フィルタを使用して前記移動可能な物体の位置を判定することを更に含む、請求項15に記載の方法。
【請求項19】
前記移動可能な物体の位置を判定することは、
前記2次元候補マップのセット中の各2次元候補マップと関連している前記現在の2次元マップに関する前記地点推定値を使用して、ファクター・グラフを構築することであって、前記ファクター・グラフ中のノードは、前記移動可能な物体の既知及び未知の位置を表し、前記ファクター・グラフ中のエッジは、ノードの値を互いに関連させる観測を表す、構築することと、
非線形最小二乗法を使用してファクター・グラフを解くことと、を含む、請求項15に記載の方法。
【請求項20】
様々な位置において前記シーンの3次元点データを収集することと、前記様々な位置において前記移動可能な物体の位置を判定するためのステップを繰り返すことと、を更に含む、請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
政府条項
本発明は、米国海軍研究局が授与した助成金番号N00014-13-1-0217、及び米国内務省/国防高等研究計画局が授与した助成金番号D13AP00059の政府支援を受けて成された。政府は本発明において一定の権利を有する。
【0002】
関連出願の相互参照
本出願は、2017年1月26日に出願された米国仮出願62/450,616号の利益を主張する。上記出願の開示全体が、参照により本明細書に組み込まれている。
【0003】
本開示は、3D点データにおける垂直構造を取り込む2Dマップを使用する、ロボット又は車両などの物体の高速位置推定のための技法に関する。
【背景技術】
【0004】
最も基本的なタスクを実行するためでさえ、自律型車両は高速且つ正確な位置の推定を必要とする。車線維持などの単純動作でさえ、その地点推定の小さな(例えば、0.5m)誤差に起因して、通常動作から破局的なものへと変わり得る。消費者グレードのGPSはこれらの必要性をサポートするには正確度が不十分であり、このことが、LiDAR及びカメラからのデータに基づいたアルゴリズムの開発へとつながっている。
【0005】
3D式LiDARは、正確度と周囲の環境についての高速の360°視野(FOV:field of view)情報を生み出す能力とに起因して、最新式の自律型車両において特に一般的になっている。更に、3D式LiDARセンサは、2D式LiDARセンサよりも遮蔽に対してロバストである。しかしながら、これらのセンサからのデータは、位置推定用途で使用するのが困難である。3Dマッチング作業をサポートするために必要な高密度な事前3Dマップは大量の保存スペースを占めるため、大きな地理的領域の完全な3Dマップをローカルに保存するのは現実的ではない。実際のところ、都市部の小さな領域でさえ、数百MBのストレージを要し得る。他方で、遠隔のソースからオン・デマンドでデータをフェッチすることで生じるリスクは、システムにとって容認できない。
【0006】
保存の課題が克服されているとしても、6自由度での位置整合及び位置推定には依然として課題が見られる。反復最近傍点法(ICP:Iterative Closest Point)などの従来の3D位置整合アルゴリズムは収束特性が悪く、高品質の位置整合を得るためには初期の良好な重ね合わせが必要である。3D式LiDARのデータが不均一であると、収束問題が悪化し得る。
【0007】
多くの環境において2D式LiDARセンサが使用されて、大きな効果を上げてきた。事前マップ表現はコンパクトであり、マッチングの対象とするのに効率的である。しかしながら、これらのセンサはその平面的な性質により、一過性の障害物による遮蔽に起因する誤差を生じ易く、又は、面外の危険要因を全く観測できない可能性がある。したがって、リッチ且つロバストな3D式LiDARの情報を、既存の2Dデータと同程度に効率的に使用するための方法を見付けることが望ましい。
【先行技術文献】
【非特許文献】
【0008】
【文献】T. Korahら著、「Strip Histogram Grid for Efficient LiDAR Segmentation from Urban Environments」、Computer Vision and Pattern Recognition Workshops(CVPRW)、2011 IEEE Computer Society Conference(2011)
【文献】Edwin Olson著、表題「M3RSM: Many-to-Many Multi-Resolution Scan Matching」、Proceedings - IEEE International Conference on Robotics and Automation (June 2015)
【文献】Edwin Olsonら著、表題「Inference on Networks of Mixtures for Robust Robot Mapping」、International Journal of Robotics Research、32(7):826~840頁、2013年6月
【発明の概要】
【課題を解決するための手段】
【0009】
本項目は本開示の一般的概要を提供するものであって、その全範囲の又はその特徴の全ての包括的な開示ではない。
【0010】
1つの態様では、シーン中の構造の2次元表現を生成する方法が提供される。方法は、シーンの3次元点データを受信することと、シーンの地面を複数のセルへと区画化することと、3次元点データからの点を複数のセル内へと射影することと、複数のセル中の各セルについて、セル内で点が生じる高さを記録することと、複数のセル中の各セルについて、セル内の点の特性を判定することと、複数のセル中の各セル内で判定された特性から、シーンの2次元表現を生成することと、を含む。3次元点データは、LiDARセンサ又は別のタイプのセンサを使用して取り込むことができる。
【0011】
セル内で点が生じる高さを記録することは、高さを列ベクトルの要素へと量子化し、このことにより複数のベクトル列を形成することを含み、列ベクトル中の各要素は、基準点よりも上にある異なる高さの範囲に対応している。いくつかの実施例では、列ベクトルの要素における高さは、所与の要素における点の存在又は不在を二値数としてコード化することによって量子化される。列ベクトル中の要素の数は、処理ユニットの整数データ型のサイズ以下である。更に、各セルは、列ベクトル中の各ビットの意味をシフトさせる高さオフセット値を含んでもよい。
【0012】
1つの実施例では、所与のセルに対してポピュレーション・カウントを行うことによって、所与のセル内の点の特性が判定される。他の実施例では、所与のセル内の点の特性が、その所与のセルに対するビットAND及びポピュレーション・カウントのシークエンスを通して判定される。
【0013】
所与の列ベクトルによって定義される高さの範囲外にある新しい点を受信すると、高さの範囲は、その所与の列ベクトル中の要素をビット・シフトさせることによって調整される。
【0014】
別の態様では、移動可能な物体の位置を判定するための方法が提示される。方法は、移動可能な物体の周囲にあるシーンの3次元点データを収集することと、シーン内で検出された任意の構造の垂直度を列ベクトルで表すことによって、3次元点データをシーン内の現在の構造の2次元マップに変換することであって、列ベクトル中の各要素は、基準点よりも上にある異なる高さの範囲に対応している、変換することと、現在の2次元マップを2次元候補マップのセットのうちの1つ又は複数とマッチングさせることであって、2次元候補マップのセット中の各2次元候補マップはグローバル座標を含む、マッチングさせることと、1つ又は複数のマッチングした2次元候補マップを使用して、移動可能な物体の位置を判定することと、を含む。
【0015】
現在の2次元マップを2次元候補マップのセットのうちの1つ又は複数とマッチングさせることは、移動可能な物体の現在の位置を推定することと、移動可能な物体の現在の位置を使用して、複数の所定の2次元マップから、2次元候補マップのセットを識別することと、を含む。現在の2次元マップを2次元候補マップのセットのうちの1つ又は複数とマッチングさせることは、現在の2次元マップを2次元候補マップのセット中の各2次元候補マップと位置整合させ、このことにより2次元候補マップのセット中の各2次元候補マップと関連付けて、現在の2次元マップに関する地点推定値を決定することを更に含み得る。2次元候補マップのセットはまた、移動可能な物体の位置を判定するステップの前に、現在の2次元マップとの位置整合に基づいて、フィルタリングすることもできる。
【0016】
1つの実施例では、移動可能な物体の位置は、粒子フィルタを使用して判定される。
【0017】
他の実施例では、移動可能な物体の測位は、2次元候補マップのセット中の各2次元候補マップと関連している現在の2次元マップに関する地点推定値を使用して、ファクター・グラフを構築することと、非線形最小二乗法を使用してファクター・グラフを解くこととを、含み、この場合、ファクター・グラフ中のノードは、移動可能な物体の既知及び未知の位置を表し、ファクター・グラフ中のエッジは、ノードの値を互いに関連付ける観測を表す。
【0018】
本明細書で提供される記載から、適用可能な更なる領域が明らかになるであろう。本概要中の記載及び特定の実例は、例示のみを目的として意図されており、本開示の範囲を限定することは意図していない。
【0019】
本明細書に記載する図面は、全ての可能な実装ではなく、選択された実施例の例示のみを目的としており、本開示の範囲を限定することは意図していない。
【図面の簡単な説明】
【0020】
図1】3次元点データからシーン中の構造の2次元表現を生成するための改善された方法を記述するフローチャートである。
図2A】停止標識の垂直度を表す列ベクトルの図である。
図2B】高架交差路の垂直度を表す列ベクトルの図である。
図3A】列ベクトルが観測される最低高さに位置整合されるようにビットがシフトするのを示す図である。
図3B】列ベクトルが観測される最低高さに位置整合されるようにビットがシフトするのを示す図である。
図4】移動可能な物体の位置を判定するための実例としての方法を記述するフローチャートである。
図5】未知の2Dマップを複数の所定の2Dマップのうちの1つ又は複数とマッチングさせるための実例としての方法を記述するフローチャートである。
図6】部分的なファクター・グラフの図である。
図7】様々な高さの障害物を表す実例としての2Dマップである。
図8A】SLAMシステムが作り出した開ループの軌道についてのマップである。
図8B】SLAMシステムが作り出した修正された軌道についてのマップである。
図9】垂直構造分類の様々な閾値に基づく、位置推定に関するラジアン単位の角度誤差の度数を示すグラフである。
図10】極座標系の占有マップ、デカルト座標系の占有グリッド、及びフィル・イン(fill-in)を適用したデカルト座標系の占有グリッドに基づく、位置推定に関するラジアン単位の角度誤差の度数を示すグラフである。
図11】開ループの走行距離計測法を本発明者らの最終的な位置推定システムと比較した、位置推定に関するラジアン単位の角度誤差の度数を示すグラフである。
【発明を実施するための形態】
【0021】
図面のいくつかの図の全てにわたって、対応する参照符号は対応する部分を示す。
【0022】
ここで実例としての実施例について、添付の図面を参照してより十分に記載する。
【0023】
最も一般的に適用される2D構造抽出法は、XY空間における世界の量子化を中心にして構築される。最も単純な場合では、地面からの指定されたz高さ帯域内に収まる範囲戻り値(range return)が、このグリッド内へと射影され、障害物としてマークされる。これは危険要因推定に関して良好に機能するが、ノイズの影響を非常に受け易い。別法として、世界を複数のボクセルへと区画化し、ある垂直線上の占有されたボクセルの数が指定された閾値を上回る場合にだけ2D要約マップ上の構造をマークすることができる。このことにより、検出された構造において、あるレベルの垂直度が(高い再現性で)確保される。これらの方法の1つの弱点は、それらが目立たない障害物(negative obstacle)に対処できないことである。目立たない障害物は、範囲戻り値を全く生成しないか又は非常に離れた範囲戻り値を生成し、このためこれらがマップ上に全く現れなくなる場合がある。ノイズに起因する量子化誤差からも、問題が生じる。
【0024】
図1には、3次元点データからシーン中の構造の2次元表現を生成するための改善された方法が記述されている。最初に、12に示すように、シーンの3D点データが受信される。3D点データは、例えば、ロボット又は車両などの移動可能な物体に装着された、LiDARセンサによって取り込むことができる。説明を容易にするために、本出願では、ロボットであるものとして移動可能な物体に言及する。他のタイプの移動可能な物体が本開示の範囲内にあることが理解される。本開示はまた、3D点データを取り込むための他の技法も企図している。
【0025】
シーンを区画化するために、3D点データからの点が、シーンのX-Y平面(例えば地面)上のセル上へと射影される。例えば、13において、データ点を上へとXYグリッド上へと射影することができる。14において、XYグリッド内の各セルについて、所与のセル内で検出された任意の物体の垂直度(又は高さ)が判定される。例えば、停止標識を包含するセルは、観測される最低の高さから地面より上に約213.36センチメートル(7フィート)までの垂直度を有するが、213.36センチメートル(7フィート)を超える垂直度は有さないであろう。高架交差路の場合、垂直度は地面から365.76センチメートル(12フィート)から426.72センチメートル(14フィート)の間で生じ得るが、これを上回る又は下回ることはない。これらの実例から、異なる垂直度を有する物体の様々なタイプとセル内で点が生じる高さとが記録されることが、理解されるであろう。
【0026】
XYグリッド中の各セルについて、15において、検出された任意の物体の垂直度が列ベクトル(すなわちm×1マトリックス)によって表され、この列ベクトル中の各要素は、何らかの規準高さを超える、異なる高さの範囲に対応している。規準高さは、全てのセルについて固定することができるか、又は各セルについて動的に調整することができる。後者の場合、m×1の列ベクトルが最大範囲の有用な垂直度を有するように、最低垂直度の高さを規準高さとして使用することができる。XYグリッド内の各セルを列ベクトルで表す結果、複数の列ベクトルが得られる。上述した実例から引き続き、図2Aに示すような列ベクトル中のシェーディングしたボックスによって、停止標識の垂直度が表され、一方、図2Bに示すような列ベクトル中のシェーディングされたボックスによって、高架交差路の垂直度が表される。この図では、全てのセルについて、規準高さはロボットの高さである。このタイプのボクセル表現は、コンパクト且つ高速である。規準高さは、各セルについて調整すると、局所的な地形高さへの適合性が増す。
【0027】
実例としての実施例では、空間の垂直度が64個の要素を有する列ベクトルによって表されており、各要素は二進値を保存する。最小z高さを保存するために1つの要素を使用することもできる。ベクトルの各要素は、垂直方向範囲の固定された帯域(例えば10cm)に対応している。この範囲は、最小z高さを基準にした特定の関心領域(すなわち20cmから200cm)に焦点が合うように調節することができる。このz高さは、観測が追加されるにしたがって、例えば関心領域を観測される最低点と関連するようにシフトさせることによって、動的に更新することができる。図3A及び3Bに見られるような単純なビット・シフトを介して、最小z高さの更新を行うことができる。
【0028】
この実施例では、垂直構造の識別は、列ベクトルに対するPOPCOUNT演算を用いて行うことができる、すなわち、1に設定されているビットの数が閾値を上回る場合、そのセルは垂直度テストに合格し、構造としてマークされる。更に、データのより小さい垂直方向の帯域を、ビット・マスキング演算を用いて効率的に分離することができる、すなわち、例えば、車両と同じ高さの障害物を分離すること、又は道路の高架交差路と同じ高さの障害物を分離することができる。ビット・マスキング及びPOPCOUNTを介して、広範囲の有用な分類指標(classifier)を効率的に実施することができる。
【0029】
これらの表現は、極座標で作業することによって更に改善され得る。ほとんどの3D式LiDARセンサは、複数のレーザから成る垂直な扇形の回転によって機能し、この結果、データと極座標枠との間に明らかな関連性が生じる。極座標でビンすることにより、デカルト座標への高コストな射影が回避される。同様に、この場合、量子化誤差は、X及びYの両方においてではなく、範囲の次元においてのみ生じる。SHGは極座標ビニング法の例であって、T. Korahら著、「Strip Histogram Grid for Efficient LiDAR Segmentation from Urban Environments」、Computer Vision and Pattern Recognition Workshops(CVPRW)、2011 IEEE Computer Society Conference(2011)に記載されており、同文献は参照によって本明細書に組み込まれている。
【0030】
図1に戻ると、16において、複数のベクトル列からシーンの2次元表現が生成される。複数のベクトル列にルール・セットを適用することによって、シーン内の静止した構造の2次元表現を生成することができ、これらのルール・セットは、静止した構造をシーン内で検出された他の物体から区別する。例えば、列ベクトルが少なくとも何らかの決定的な数のビットのセットを有する場合、又はこれらのビットが特定のz高さに亘る場合、又はこれらのビットがz高さの何らかの重要な範囲内での物体検出を表している場合、分類指標はその所与のx,yセルを、障害物を包含するものとして分類することができる。本開示の肝要な寄与は、LiDARの表現がビット・ベクトルになり、これらのタイプのテストを効率的に演算できることである。使用される特定の分類規準は当然ながら特定の用途と相関しており、一般には経験的に見出されるものである。ただし、これらのルールを機械学習ツールを使用して、例えば、分類指標の出力とグラウンド・トゥルースなデータセットとの間の一致を最大にすることによって、最適化することもまた可能である。
【0031】
2D構造表現の拡張の1つは、1つの2Dマップにおいて構造の複数の分類を表すことである。ナビゲーション用途では、危険要因と、ナビゲーションにとっての障害物と、SLAM可能な構造、すなわち高い信頼性でスキャン・マッチングさせることのできる垂直構造と、を区別するのが有用であると考えられる。この場合、ナビゲーション・システム及び位置推定システムが、どちらの性能にも悪影響を与えることなく、同じデータ・ストリームでサポートされる。このことは、物体の様々なタイプに合わせて微調整された複数の分類指標を使用することによって達成される。各分類指標が各グリッドセルに適用されて、各(x,y)セル用の複数のラベルが生み出される。これらは相互に排他的である必要はない、すなわち、単一の(x,y)セルが、例えば「樹木」及び「障害物」の両方として認識されてもよい。
【0032】
この場合、シーンの2次元マップを様々な用途で使用することができる。例えば、移動可能な物体(例えば、ロボット)の位置を判定するための方法が、図4に示されている。前提として、グローバル及びローカルの2つの座標系が定義されており、ロボットはこれらの中で動作できる。1つの実施例では、ロボットのローカル座標はその開ループ走行距離計測法によって決定されるが、一方、ロボットのグローバル座標は、世界におけるロボットの実際の地点である(例えば緯度及び経度の地理的座標)。位置推定の目標は、ロボットのローカル座標をグローバル座標へと転換できる変換を演算することである。本開示において提示されている方法は、同時位置推定及び地図生成(SLAM:simultaneous localization and mapping)システムの一部として実装することもできる。
【0033】
ロボットの周囲にあるシーンの3次元点データが、41において、例えばそのロボットに装着されたLIDARセンサによって収集される。3次元点データは次いで42で、上記のように2次元マップに変換される。このマップ中の各ピクセルは、セルの垂直度ベクトルに対して作用する分類指標の出力である。位置推定のために、分類指標は典型的には、大きな静止した物体(例えば標識及び建造物)を保持するが非永続的な物体(雪、歩行者、自動車、等)は棄却するものとなるように選ばれる。このマップは二値化されていてもよく(すなわち、分類指標が「静止した物体」と告げている場合は1、そうでない場合はゼロ)、又は、連続値化されていてもよい(すなわち、より大きい値は、物体が静止している信頼度がより高いことを示す)。この2Dマップは以下で、未知の2Dマップと呼ばれる場合がある。
【0034】
グローバル座標を決定するために、43において、未知の2次元マップを複数の所定の2次元マップのうちの1つとマッチングさせる。複数の所定の2次元マップは、ロボットによって前もって決定され、データ保存部に保存されている。各所定の2Dマップは様々な位置におけるシーンを描写しており、グローバル座標、又はローカル座標をグローバル座標に移し替えるための別の手段を含む。2Dマップは、以下で更に記載するようなスキャン・マッチング法を使用して、複数の所定の2Dマップのうちの1つ又は複数とマッチングされる。
【0035】
図5には、未知の2Dマップを複数の所定の2Dマップのうちの1つ又は複数とマッチングさせるための、実例としての実施例が描かれている。開始点として、51で、データ保存部から複数の所定の2Dマップが取得される。各所定の2Dマップは、2Dマップを導出するために使用されるデータを取り込んだ場所のグローバル座標、及び/又は、マップ中の各点のグローバル座標の演算を可能にする追加の情報を含む。
【0036】
更に、52において、ロボットの地点の初期推定が行われる。ロボットの現在の地点は、グローバル座標、すなわち、未知の2Dマップを導出するために使用されるデータをロボットが収集した場所の位置として表現される。1つの実例では、現在の位置は、ロボットに設置されているGPS受信機から取得することができる。別の実例では、使用者が表示されたマップ上でロボットの現在の位置を指定してもよい。本開示では、ロボットの開始位置を判定するための他の方法が企図されている。52によって得られた推定値は一般に、正確度及び/又は信頼性が低いものであると想定できる。
【0037】
53において、ロボットの現在の位置を使用して、複数の所定の2Dマップから、候補2Dマップのサブセットを抽出する。例えば、候補2Dマップのサブセットは、ロボットの推定された現在の位置に近いマップであってもよく、この場合「近さ」は、推定された現在の位置の信頼度の関数である。或いは、ロボットは単純に、ロボットの推定された現在の位置からの距離が何らかの閾値距離(例えば100メートル)未満である全てのマップを使用してもよい。候補マップによっては、位置整合処理に適さないという理由で棄却される場合がある。この棄却の考えられる理由には、有するピクセルが非常に少ないこと、各方向におけるマッチング処理を制約しないピクセルを有すること、又は位置整合を不明確にする繰り返し構造を有することを含めることができる。
【0038】
次いで54において、候補2Dマップのサブセット中の候補2Dマップの各々に対して、位置整合手続きが実行される。すなわち、未知の2Dマップと候補2Dマップの各々との間の剛性変換が演算される。スキャン・マッチング法を含め、剛性変換を演算するための様々な技法が知られている。この用途での使用に適した実例としての1つのスキャン・マッチング法は、Edwin Olson著、表題「M3RSM: Many-to-Many Multi-Resolution Scan Matching」、Proceedings - IEEE International Conference on Robotics and Automation (June 2015)の論文に見出すことができ、同文献は参照によってその全体が本明細書に組み込まれている。各剛性変換はロボットの位置推定と等価であるが、その理由は、これが現在のマップにおけるロボットの位置を事前マップにおけるロボットの位置に関連付けるからであり、事前マップの全体座標系における地点は既知である。実例としての他の可能なスキャン・マッチング法としては、極座標の使用、ヒストグラム・ベースの方法、特徴ベースの方法、及び反復最近傍点法が挙げられる。
【0039】
いくつかの実施例では、55において、剛体変換の出力に基づいて、候補2Dマップのセットを更にフィルタリング又は削減することができる。1つの実例では、位置整合手続きによって得られる位置整合の性能指数が低い場合、所与の候補2Dマップを除外してもよい。例えば、マップ間の重なり合いが少ないとき(例えば、マッチングするピクセルが100個未満)、又は、性能指数が類似している位置整合が複数見つかる場合(このことは解の曖昧さを示している)、位置整合が棄却される場合がある。
【0040】
各剛体変換は、ロボットの現在の地点に関する証拠を包含している。この証拠を組み合わせるための1つの方法は、粒子フィルタである。粒子フィルタの背後にある発想は、各候補軌道が高次元空間において「粒子」となるように、車両の可能な軌道のセットを維持する、というものである。各剛体変換が、各粒子が主張する信念(belief)と比較される。軌道がこれらの変換と最もよく揃う粒子には高いスコアが付き、一方、よく揃わない粒子には低いスコアが付く。最高のスコアの粒子が最も可能性の高い軌道と解釈される。粒子フィルタのこうした適用は当技術分野で知られている。
【0041】
別法として、剛体変換のセットを最適化問題と見なすことができ、この場合目標は、変換と最もよく一致する現在の車両地点を見付けることである。ロボットの位置の最適化された推定値を決定するために、逐次非線形最小二乗アプローチを採用することができる。当技術分野で知られていることであるが、この最小二乗問題は、「ファクター・グラフ」として視覚的に描写することができ、図6で示すように、未知の値をシェーディングした円で、既知の値を空の円で、及び値同士を関連付ける等式(又は観測)をエッジで描くように、選択してもよい。好ましい実施例では、ファクター・グラフが構築される。結果的なグラフを解くことにより、ロボットに関する現時点の位置が得られる。時間とともに、ファクター・グラフにロボットの軌道に関する追加のノードが追加され、グラフを解くことによりこれらの追加の軌道点に関する位置推定値もまた得られるようになる。位置推定をグラフ解決問題として定式化することの1つの利点は、最大値混合エッジ(max mixture edge)のような概念を解決法に組み込むことができることである。最大値混合エッジにより、システムは、例えばスキャン・マッチングの不良又はGPSフィックス(GPS fix)の不良に起因する、誤った観測値を棄却して、位置推定値の急で破局的なシフトを防止することができる。粒子フィルタに対するグラフ解決手法の別の利点は、粒子の消尽が起こり得ないことである。
【0042】
図6を参照すると、ファクター・グラフの実例が更に記載されている。グラフ中のシェーディングされたノードは、ロボットの未知の位置を表す。特に、ノード61によってロボットの開始位置が指定されており、ノード62によってロボットの軌道に沿った別の位置が指定されている。これらの2つのノードの間のエッジ64は、2つの位置の間の相対移動を表す。1つの実施例では、この移動は、走行距離計又は加速度計などの搭載センサ上で値が導出される、等式のセットによって定義される。ロボットが移動するにつれ、周期的な演算間隔で、より多くの位置が未知であるノードがグラフに追加される。
【0043】
グラフ中の残りのノード63は、候補2Dマップと関連付けられた既知の位置を表す。第1の演算間隔において、剛性変換ステップから第1の候補2Dマップのセットに関する出力が受信され、この場合各候補2Dマップは、既知の位置を含む。次いでグラフに各候補2Dマップに関するノードが追加され、これが開始ノード61に接続されるが、このとき対応する剛性変換は、所与の候補2Dマップと開始ノード61との間のエッジの役割を果たす。言い換えれば、エッジはノード間の位置の違いを表す。1つの実施例では、この違いは、剛性変換によって出力される等式のセットによって定義される。グラフに他の因子(例えば、GPS観測値)を組み込んでもよいが、その因子はスキャン・マッチングに関する因子よりもかなり小さく重み付けされることが企図されている。
【0044】
ロボットは、移動していく際、周囲にあるシーンの3D点データの収集を継続し、周期的な演算間隔で新しい2Dマップを生成する。各新しい2Dマップについて、上述した位置推定処理を繰り返し、このことによりもう1つの候補2Dマップのセットを生成できる。第2の候補2Dマップのセットが、ノード62と関連付けられる。多くの場合、候補2Dマップに関するノードはファクター・グラフ中に既に見出されている。これらの場合、これらのノードをノード62に接続する新しいエッジがグラフに追加される。場合によっては、第2の候補2Dマップのセット中の所与の候補2Dマップに関するノードは、グラフ中には見られない。これらの場合、対応する新しいノードがグラフに追加される。各新しい候補2Dマップのセットについて、このようにしてファクター・グラフを更新できることが企図されている。
【0045】
残念ながら、この定式化にはコストが必要となる。車両の動作時間が長くなるほどより多くのノード及びファクターがグラフ内に蓄積され、この結果、メモリ消費の増加及び解決時間(solve time)の遅れがもたらされる。過剰な蓄積を防止するために、グラフ中のノードの最大数を固定する。新しい観測の結果この閾値が超過されることになる場合には、グラフから最も古い観測値を削除して、位置推定システムが固定されたメモリ・フットプリントで及び安定した解決時間で動作できるようにする。当技術分野で知られている他のグラフ単純化アルゴリズムもまた適用可能であり、それらは本開示の範囲内にある。
【0046】
図5に戻ると、57において、ファクター・グラフを解くことによってロボットの未知の位置が推定される。一般的には、この問題を解くためにロバストな非線形最小二乗解法を使用することができ。そのような解法は当技術分野で容易に見つかる。実例としての1つの具体的な方法は、Edwin Olsonら著、表題「Inference on Networks of Mixtures for Robust Robot Mapping」、International Journal of Robotics Research、32(7):826~840頁、2013年6月、の論文に記載されている最大値混合の手法であり、同文献は参照によってその全体が本明細書に組み込まれている。非線形最小二乗問題を解くための他の方法もまた、本開示の範囲内にある。
【0047】
上で指摘したように、ロボットは周囲にあるシーンの3D点データの収集を継続し、58に示すように、周囲にあるシーンに関する新しい2Dマップを生成する。59では、新しい各演算間隔において、ロボットによって位置の相対変化に関する判定が行われる。この位置の相対変化はファクター・グラフを構築するために使用されることになるもので、走行距離計又は加速度計などの搭載センサから導出することができる。更に、この位置の相対変化は、53において、新しい候補2Dマップのセットを識別するために使用することができる。新しい未知の2Dマップ及び対応するロボットの地点が与えられると、この処理が繰り返される。
【0048】
ファクター・グラフを漸進的に作り上げその後解くことの主要な利点は、ロボットの現在の地点についてのより多くの情報を同時に活用できることである。ファクター・グラフ中の各追加のエッジにより、適正でない測定値を識別すること、及び、個別の各エッジに対するノイズの効果を軽減することが、より容易になる。したがって、ロボットの現在の位置を、高い正確度及び高いロバスト性で見付けることが可能である。
【0049】
いくつかの実施例では、ロボットは、GPS及び既知のマップに対するスキャン・マッチングを含むがこれらに限定されない、ローカルからグローバルへの座標推定値を生成することのできる1つ又は複数のシステムを有してもよい。これらの推定値を統合する課題を、同時位置推定及び地図生成問題の解決と等価なものとして定式化することが便利な場合がある、すなわち、ローカルからグローバルへの各推定法は、一定量の信頼度が置かれるノイズの多い観測値を生み出す。この場合、これらの個別の推定値間の誤差を最小にすることによって、最尤推定値(MEL:Maximum Likelihood Estimate)を見付けることができる。
【0050】
上記した地図生成及び位置推定技法の実験結果について検討する。実例としてのシステムのバリエーションを、2つのプラットフォーム、すなわちSmartCarts自律型ゴルフ・カートと、MAGIC2.0マッピングロボットと、で展開した:。いずれのプラットフォームも、クロック周波数が2.8GHzでRAMが8GBのIntel i7-4900MQを装備した、Ubuntu 14.04ラップトップで駆動される。
【0051】
2D構造分類を、2つのシーンで検証した、すなわち、1つは、危険要因検出閾値マップが実世界の傾斜を有する障害物によく適合していることを実証するためのものであり、もう1つは、部分的な遮蔽が存在しても広範囲の垂直構造を分類できることを検証するためのものである。
【0052】
提案された方法が実世界のナビゲーション危険要因間の区別を適正に行えることを証明するために、傾斜度10、14.5、及び16°の斜面を包含するシーンを創出した。これらの角度は、実例としての15°の危険要因閾値と近くなるように選択した。10及び14.5°の傾斜が安全であるとしてマークされる一方、16°の傾斜は危険要因であるとしてマークされることが、予想される。ロボットは、数メートル離れたところから、斜面をその低い方の地面レベルの端部から見て、シーンを取り込んだ。地形分類指標は、閾値に基づいて予想されるように、10°の斜面を運転可能として、及び16°の斜面を危険要因であるとして、マークすることに成功した。センサ・ノイズに起因して、14.5°の傾斜の複数の部分もまた、危険要因であるとしてマークされた。このことは、危険要因検出システムは適正に機能しているが、ノイズに対して完全にロバストなわけではないことを実証している。
【0053】
提案した方法が、部分的に遮蔽された構造についての情報を保持でき、スキャン・マッチング用の有用な特徴がマップから除去されないことが保証されることを実証するために、追加のシーンを設定した。このシーンは、高さの低い順に並べられて均等に離間された、高さが0.1mから1mの範囲の、いくつかの垂直構造から成るものであった。ロボットを、より高い構造がより短い構造によって部分的に見えなくなるような状態で、このシーンを端から見るように、配置した。
【0054】
図7に見られるように、ロボットの前方に構造の5つの帯がはっきりと見えている。最も小さい物体である高さ0.1mのボックスには、LiDAR照射(LiDAR strike)のただ1つの帯域しか当たらなかった。この結果、その垂直面は検出されず、危険要因となる、SLAM化不可能な構造としてしかマークされなかった。しかしながら、残りの構造は、SLAM化可能としてマークされるのに十分な垂直度を有するとして適正に識別され、グリッド・マップ内に正確に配置された。このことは、提案したアルゴリズムが、環境中の垂直構造を2Dスキャン・マッチングにおいて使用するために適正に識別及び表示できることを示している。
【0055】
2D保存の1つの利点は、マップ表現のコンパクトさである。占有グリッド実装では、各セル用の分類ラベルは単一のバイトを使用して保存され、各セルは世界の中の5×5cmのエリアに対応している。図8A及び8Bに、SLAMシステムが作り出す事前マップを見ることができる。このマップは74×85mの領域をカバーしている。このマップは圧縮されていない状態で、2.5MBのスペースしか占めない。しかしながら、この表現は単純であるため良好に圧縮を行うことができる。マップはgzipの適用後、たった84kBまで圧縮される。このことは予想と一致しており、マップは圧縮が容易な開放空間の大きな領域を包含している。
【0056】
更に、屋内/屋外両用に設計されたシステムであるMAGIC2.0プラットフォーム上で、位置推定経路を試験した。MAGIC2.0ロボットには、MEMSグレードのジャイロと、ホイール・エンコーダと、地上約0.6mに装着されたVelodyne社のVPL-16と、を装備した。光ファイバ・ジャイロ(FOG:fiber-optic gyro)を使用して、建造物の1回の通過のスケールにわたって、グラウンド・トゥルースに近い向き推定値を取得した。手動による個別の走行のログに基づいて、本発明者らの建造物の3階のマップを、位置推定システムで生成及び評価した。図8A及び8Bに、開ループの姿勢に関する結果、及びこれに対する修正したグローバルの姿勢に関する結果を見ることができる。開ループ走行距離計測法でドリフトが生じても、位置推定システムはこれらの誤差を修正して、ロボットを常に廊下の中央に維持することができる。
【0057】
次に、SLAMシステムの様々な部分を、θにわたる回転を測定するFOGのグラウンド・トゥルースからの結果と対比して、数値的に評価した。様々な占有グリッド生成経路を採用した場合に、FOGのθ推定値と位置推定によって得られたグローバルな推定値とを対比することによって、実施するのに最良の特徴の組み合わせ及び適切なパラメータ化が特定される。位置推定の品質を定量化するために、個別の時間幅でサンプリングされたシータ誤差の分布を提示し、0.005ラジアン(およそ0.25°に等しい)の角度誤差幅でビンした。
【0058】
最初に、この傾斜度ベースの方法における、垂直構造検出のための様々な閾値設定の影響を調べた。過剰に高い及び低い値はスキャン・マッチング結果に好ましくない影響を与え、この結果位置推定の品質が低くなると予想される。構造閾値を70、80、及び85°に設定して、本発明者らの試験環境の走行について位置推定の試験を行った。観測された角度誤差の結果的な分布を、図9に見ることができる。
【0059】
中間の閾値である80°が最も良好に機能することが分かる。これは本発明者らの予想と一致している。85°の閾値に基づいて構築したマップは、おそらくはセンサ・ノイズに起因して、垂直構造をマークする頻度が低い。スキャン・マッチング部は、構造のマッチングを制約するには構造が少ないか又は不十分である場合、得られるマッチングの品質が結果的に低い。対照的に、70°の閾値は許容範囲が広過ぎ、非垂直構造がマークされており、場合によっては垂直構造が拡張されている。スキャン・マッチング部による良好なマッチングの獲得は明瞭簡潔な(crisp)構造に依存しており、したがってこの拡張はマッチング(及びしたがって位置推定)品質を損なう。
【0060】
次に、フィル・インを行う傾斜度法及び行わない傾斜度法と比較した、コンパクトな極座標ベースのpopcount法を採用する影響を調べた。フィル・インにより性能が上がると予想されるが、その理由は、スキャン・マッチング部が離れた観測値をより効果的にマッチングさせることができるからである。極座標系の方法及びデカルト座標系の方法は、その他の点では同様の性能であると予想される。
【0061】
各方法について、最高の条件の性能が提供されるようにビン・サイズ・パラメータを微調整した。傾斜度法については、グリップ分解能を5cmに設定し、SLAM化可能閾値を80°に設定した。フィル・インは、使用する場合、互いから25cm以内の点に対して実行した。極座標系のpopcount法は、θが幅0.5°、距離(range)が5cmのビンを有するように設定した。少なくとも2ビットがマークされている構造をビンに入れマークした。観測された角度誤差の結果的な分布を、図10に見ることができる。
【0062】
フィル・インは傾斜度ベースの方法に対して予想通りの影響を有し、誤差の分布がより0°近くにシフトした。予想されていなかったが、極座標系のpopcountは両傾斜度法よりも著しく性能が悪く、2.5°を超えて誤差が大きく尾を引いている。このことが、極座標系の枠におけるビン・サイズが大きな距離でより拡開することに起因していると仮定する。ビンの自然な拡開はスキャン・マッチングに好ましくない影響を与えるが、その理由は、長距離の観測値がますます広いエリアに広がってぼやけてしまうからである。このことは、結果に見られるより大きい角度誤差として現れている。
【0063】
最後に、先の分析からの本発明者らの最良の方法と、開ループのMEMs走行距離計測法との間の比較を提示する。走行距離計測法ベースの推定値は、最初にグローバル座標枠と位置整合されるが、その後は自然なドリフトに任せられる。これらの結果は図11に見ることができる。
【0064】
ロボットのMEMsグレードのIMUに基づいて得られたθ推定値は、建造物の10分の走行にわたって大きくドリフトし、ほぼ9°の最大誤差を蓄積する。逆に、傾斜度ベースの構造マップに基づく2Dスキャン・マッチングは、時間の87%でグラウンド・トゥルースから1°、時間の97%で1.5°でロボットの位置を推定することができ、最悪の場合でもグラウンド・トゥルースからたった2.5°未満しか逸脱しない。
【0065】
本発明者らのSmartCarts自律型ゴルフ・カートのプラットフォーム上で、位置推定経路を屋外試験した。車両には、ヨー推定用FOGと、左後輪上のエンコーダと、スキャン・マッチング用のVelodyne社のHDL-32Eと、を装備した。手で描きこんだレーンを試験前に集めた環境のSLAMマップと重ね合わせた。その後ロボットを開始位置まで駆動し、道路ネットワーク中のいくつかのウェイポイントの間で自律的に駆動するようタスクを与えた。開ループの走行距離計測法では、FOGのような高品位のセンサを用いる場合でさえ、時間をかけて誤差が蓄積される。スキャンを2D構造マップに対してマッチングさせることによってこの誤差が補正されるが、試験の間を通してこのSmartCartをそのレーン内に維持される。
【0066】
本開示では、3D式LiDARセンサによって提供されるリッチな構造データを利用するが、演算及び保存の効率は2D方法のものである、位置推定システムが提示される。3D式LiDARから2Dスキャン・マッチングをサポートする2D構造情報を抽出するための2つの方法、並びにGraph-SLAMアルゴリズムに基づく位置推定方法を導入した。これらの方法の性能は実世界のシステムにおいて定量化され、FOGから得られる高品質の推定値に対して、予測された向き推定値が評価される。
【0067】
上記の記載のいくつかの部分は、本明細書に記載する技法を、情報に対する操作のアルゴリズム及び記号的表現の観点から提示している。アルゴリズムに基づいたこれらの記載及び表現は、データ処理技術の当業者が自身の取り組みの本質を他の当業者に最も効果的に伝えるために使用する手段である。これらの動作は、機能の観点で又は論理の観点で記載されているが、コンピュータ・プログラムによって実装されるものと理解される。更に、場合によっては動作のこれらの構成を、モジュール、又は機能に関する名称で呼称すると、一般性を失うことなく、都合がよいことも分かっている。
【0068】
そうではないと明確に述べられていない限り、上記の考察から明らかであるように、記載の全体を通して、「処理する」又は「演算する」又は「計算する」又は「判定する」又は「表示する」などのような用語を利用する考察は、コンピュータ・システムのメモリ又はレジスタ又は他のそのような情報記憶、伝送、若しくは表示デバイス内の物理(電子)量として表されているデータを、コンピュータ・システム又は類似の電子演算デバイスが操作及び変換する動作及び処理を指していることが諒解される。
【0069】
記載されている技法の特定の態様は、本明細書においてアルゴリズムの形態で記載されている処理ステップ及び命令を含む。記載されている処理ステップ及び命令を、ソフトウェア、ファームウェア、又はハードウェアにおいて具現化でき、ソフトウェアにおいて具現化される場合、リアルタイム・ネットワークのオペレーティング・システムによって使用される異なるプラットフォーム上にダウンロードして常駐させ、そこから動作させることが可能であることに、留意すべきである。
【0070】
本開示はまた、本明細書中の動作を実行するための装置にも関する。この装置は、要求される目的に合わせて特別に構築されてもよく、又は、コンピュータがアクセス可能なコンピュータ可読媒体に保存されたコンピュータ・プログラムによって選択的に起動若しくは又は構成変更される、汎用コンピュータを備えてもよい。かかるコンピュータ・プログラムは、限定するものではないが、フロッピー(登録商標)・ディスク、光学ディスク、CD-ROM、磁気-光学ディスクを含む、任意のタイプのディスク、読み出し専用メモリ(ROM:read-only memory)、ランダム・アクセス・メモリ(RAM:random access memory)、EPROM、EEPROM、磁気カード若しくは光学カード、特定用途向け集積回路(ASIC:application specific integrated circuit)、又は電子的命令を保存するのに好適な任意のタイプの媒体などの、有形のコンピュータ可読記憶媒体に保存することができ、いずれもコンピュータ・システムのバスに結合される。更に、本明細書において言及されるコンピュータは、単一のプロセッサを含み得るか、又は、演算能力を高めるための複数プロセッサ設計を採用するアーキテクチャであり得る。
【0071】
本明細書に提示するアルゴリズム及び動作は、どのような特定のコンピュータ又は他の装置とも本来的な関連を有さない。本明細書の教示に従うプログラムを有する様々な汎用システムを使用することもでき、又は、要求される方法ステップを実行することにより特化された装置を構築するのが便利である場合もある。これらの様々なシステムに要求される構造、並びに等価な変形は、当業者には明らかであろう。更に、本開示は、記載にあたってどのような特定のプログラミング言語も参照していない。本明細書に記載されているような本開示の教示を実装するために、様々なプログラム原語を使用できることが諒解される。
【0072】
実施例の前述の説明は、例示及び説明のために与えられている。網羅的であること又は本開示を限定することは意図されていない。特定の実施例の個々の要素又は特徴は、一般にその特定の実施例に限定されず、適切であれば、入れ替え可能であり、特定的に示されていない又は記載されていない場合でも、ある選択した実施例において使用することができる。それらはまた、多くの点で変更されてもよい。そのような変更は本開示からの逸脱と見なすべきではなく、そのような修正は全て、本開示の範囲内に含まれることが意図されている。
図1
図2A
図2B
図3A
図3B
図4
図5
図6
図7
図8A
図8B
図9
図10
図11